aku-aku: v.. To move a tall, flat bottomed object (such as a bookshelf) by swiveling it alternatively on its corners in a "walking" fashion. [After the book by Thor Heyerdahl theorising the statues of Easter Island were moved in this fashion.] source: LangMaker.com. Aku Aku also has another meaning to the islanders: a spiritual guide.
« brazil to open source java? | Main Page | murphy's law unleashed »
j2me bluetooth gps mo-pho-weblogging
Posted by dav at 2004 October 8 12:08 PM
File under: Geek

I was going to wait to write this up until I actually had something I considered to be of release quality, but I find my self re-telling the story too much so I'll go ahead and type it out once and for all.

Quick Version:

I've created a system that allows a Nokia camphone to take a photo, attach GPS coordinates obtained from a bluetooth GPS device, and post it to a weblog along with an interactive map showing the location. I wrote it in J2ME, but I plan on rewriting it in C++.

Long Version:

I wanted to let Mie add location information to her camphone blog posts, like I had done for her when she lived in Japan. In Japan, the cellphones have GPS built in, so all I needed to do was extract the information on the server side after she emailed the photos. In the USA no cellphones (yet) have a camera and a GPS built in (US cellphones do have location awareness in emergencies, but that functionality is not made available to the consumer or independent developer), hence the need for a bluetooth GPS solution.

I needed to write an cellphone application that would communicate with the bluetooth device. J2ME was chosen since Java is my strongest language. I have written a couple of small J2ME apps before, but they were on a Windows workstation that I no longer have, so I had to set up a J2ME development environement on my MAC OS X Powerbook. For some reason, I was thinking that Russell Beattie was a Mac user, and I knew he did mobile development, so I asked him about setting up the proper environment. It turns out he's not a Mac user, but he pointed me to Rael Dornfest's site which had the information I needed. As I started researching what was needed, I realized that Linux was better supported than Mac OS X, so I ended up just installing Sun's J2ME development kit (WTK2.1) on my Linux box and doing my compiling remotely.

Bluetooth hacking was something new to me, and it turns out that the WTK2.1 doesn't have the javax.bluetooth packages in it. WTK 2.2 does, but of course that's only available for Windows. I poked around and found a two week trial version of a commercial bluetooth library and downloaded it, but in the end I went with the opensource JavaBluetooth.org package.

After reading numerous PDFs about the Bluetooth protocol, I felt I understood the technology enough to start coding. Russell had sent me his example bluetooth application source, but I ended up not even unzipping it since the example source in the Nokia PDFs worked fine. Soon I had code running on Mie's old Nokia 6600 that could discover all of the bluetooth devices in the vicinity and report each one's unique Bluetooh Address (like a MAC address). W00t!

Pretty quickly I hit the first major snag though. Once you've discovered the address of a bluetooth device, the API allows you to connect to it and request a list of services. The request needs to be made in such a way that it includes one or more 128 bit unique identifiers (UID), and the services returned must match all of them. The Nokia example code used a specific UID that was hardcoded into the client and server, but the Belkin GPS device did not come with any information on what 128 bit number it was registering its services under. 128 bits is a lot of possible UIDs.

I was stumped on this for a ridiculously long time. The goal was to get the necessary connection string, a URL that starts with btspp:// and identifies the device and service you want to connect to. In the JSR-82 Bluetooth API, this information comes from a call to ServiceRecord.getConnectionURL(). First, I found that there were a few general UIDs that should return generic services for such things as RFCOMM (bluetooth serial communication). I tried these, and indeed I did get back ServiceRecord objects, but calls to the getConnectionURL() method failed mysteriously. In fact, calls to any of the object's methods did the same thing.

The code->build->install->test cycle was pretty slow. After building, I had to scp the application to my Mac, and then bluetooth file-transfer it to the phone, then install it on the phone, then run it. I couldn't run bluetooth code in the WTK2.1 emulator There's no console on a phone to help you debug, so I had to explicitly write any and all debug messages to a LogScreen portion of the MIDlet. The code was failing without throwing any Exceptions(!) so I was trying all sorts of crazy debug output with lots of [add new debug lines]->[build]->[copy to mac]->[bluetooth to phone]->[install]->[test] cycles. I was stuck in this mode for hours, which translated into days since I only had a couple of hours a day to work on it.

The 128bit UIDs were originally only 16 or 32 bit long, so a lot of early bluetooth code still has the shorter UIDs. There is a base 128 bit string that these can be added to to create a valid 128 bit UID. Since the range of 32 bit values is far less than that of 128 bit values, I wrote an app that ran on the phone and sequenced through querying the GPS device with all the 32 bit UIDs to see which ones worked. I let it run for hours before turning it off (enough to cover all the 16 bit values I think) and ended up with a handful of the generic UIDs that returned a ServiceRecord object, but all the objects still failed quietly. I started to accept that this line of exploration wasn't going to yield any results.

I tried it on another Nokia phone, same problem.

I was convinced that I needed to know the proper 128 bit UID number in order to get the right ServiceRecord object, the one that would work. I called Belkin sales and begged someone to tell me the s3kr3t UID. A sales drone said she'd have a product manager call me, no one ever did.

Finally someone in the Nokia developer forums suggested I change my try-catch code to look for Throwable instead of Exception (Throwable is the parent class of Exception). Doh! /me slaps his forehead. All of the method calls were throwing java.lang.IncompatibleClassChangeError. Compared to Exceptions, Errors are pretty rare in Java development and usually indicate a problem in the JVM environment as opposed to the application itself. To quote Sun's own documentation, "an Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch." Unless you're dealing with J2ME!

I changed my code to try ServiceRecords from any bluetooth device, such as my Powerbook. They all failed with the same IncompatibleClassChangeError. Apparently Nokia's java bluetooth implementation is buggy? In any case it appeared out of my hands, there's nothing I'm aware of that I could change in my code to get these method calls to work. Maybe it's a javac verson problem?

At this point I was considering tossing in the towell and returning the GPS unit for a refund. But I let it sit for a few days and then went back into research mode. Finally I stumbled across a post by someone who had managed to connect to their bluetooth GPS device using the connection URL of btspp://<btaddr>:1 where <btaddr> is the device's bluetooth address, and 1 is the chennel number. Since I had the GPS bluetooth address since day one, this was an easy thing to try.

It worked! I really hope that I've mentioned GPS, J2ME and bluetooth enough so that it ranks high in a google search and saves some other poor developer a headache. Although it was a learning experience, it's frustrating to think how many hours I wasted.

Now I was able to read a stream of bytes from the bluetooth connection. They seemed to be ASCII, so I figured I could just parse the data to extract location information. Rich on #geo pointed me at a reference for common NMEA sentences and I recognized several of them in the data stream. In short order I was reporting the latitude and longitude, success!

Wednesday afternoon I attended an Institute for the Future geoweb conference I'd been invited to, and when I got home that night I was determined to not sleep until I got the application working.

The next step was to somehow connect the coordinates to a jpeg, and the first requirement for that was to get a jpeg. It turns out that J2ME code cannot access jpgs created by the Nokia camera application! J2ME does not have access to the phone filesystem at all, it persists data between invocations in a Record Management System (RMS) that is sandboxed off from the rest of the phone OS. This realization led to some cussing.

J2ME does have a Mobile Multimedia API which can access the camera and create its own jpgs, but (and there's always a 'but' in J2ME I've learned) the quality of mmapi jpegs are far, far worse than those the native camera application is capable of producing. I've done a lot of web searching on this issue, and it seems universally accepted. It was past midnight at this point, so I said "screw the quality" and moved on.

I found an open source XML-RPC library purportedly for J2ME and tried using it to do some test posts to Moveable Type, but I couldn't get it to work. Older and wiser, I put "try { } (catch Throwable)" statements all over the relevant code and found that the xml-rpc library calls were throwing some other weird Error that I forget now, because I dropped the XML-RPC library route in exasperation as soon as I saw the Error.

No problem, I thought, I'll just use the J2ME HttpConnection class to talk to the XML-RPC server and craft my XML data myself. Much weirdness ensued. The HttpConnection could connect to some socket dumping code I was running on my server, and it would pass raw jpeg data but if I tried converting the jpeg bytes to Base64 URL encoding that would be needed for an HTTP POST, the HTTP header (including a correct Content-length: header) would make it across and then the connection would hang and the encode bytes would never go across.

Giving up on that finally, I decided to use SocketConnection instead and forget about XML-RPC altogether. Well it turned out that SocketConnection is only available on the MIDP 2.0 version of J2ME. I figured there was a decent chance that the Nokia supported MIDP 2.0, but I couldn't get my build environment to compile in that mode, despite the fact that I was referencing the WTK2.1/lib/midpapi20.jar. It was around 3AM at this point, so I decided to go back to HttpConnection, but treat it like a SocketConnection. That is, I used the HTtpConnection class, but POSTed the data in pure binary format instead of Base 64 URL encoding it. This means I couldn't use a normal HTTP server to accept the POSTed data. Instead I converted my simple socket dumping server code to save the incoming bytes into a jpeg file. This worked. By 3:30AM I had added the latitude and longitude data to the stream.

On the server side I parsed the data, wrote the jpeg to my website filesystem and used XML-RPC to create a new weblog post. I used the US Census Bureu's TIGER Mapping Service to pinpoint the coordinates on a map and linked it to Mapquest for interactivity.

I noticed that pinpoint was nowhere near where it should be. Rather than being at my house on Potrero Hill in San Francisco, it was down in Silicon Valley somewhere. But it was 4:30AM and I decided to try and sleep. Tossing and turning, all I could think about was that the damn coordinates were wrong, so I got back up and looked into it some more.

The coordinates were coming from the GPS unit in this format: 3745.3661N, which I was taking to mean 37.453661 decimal degrees north. I claim the "up all night hacking, brain not working" excuse here. It really means 37 degrees 45 minutes 3661 seconds north...gyagh! In a stupor I hacked out some code to parse and convert it to decimal format (it's (degrees + (minutes/60) + (seconds/3600)) in case you're wondering). This got the pinpoint much closer, but still a block or two away. I think I can fix it by enforcing a certain number of significant figures, but I haven't got around to that yet.

By 9AM I was showered, fed and back at the conference. Mike, one of the IFTF organizers and a fellow member of the Locative Media Lab, wanted me to get up and present it, but


  1. I didn't think it was at a presentable stage yet, and
  2. the mere thought of public speaking puts me into panic mode

I do think this system will be presentable with some more features though, but it nees a lot more work.


Minimum:


  • The camera quality needs to be better. For this I think my only choice is to rewrite the J2ME part in C++ for Symbian OS so I can just access the jpgs created by the default camera application.
  • It needs to be able to send more than one photo, and accept additional text and metadata (e.g. post title).
  • It needs to be more configurable. Everything is hardcoded to use my server and GPS device.
  • Make the server portion connect to Flickr and Thingster in addition to an MT blog.

Other nice things would be adding del.icio.us-style tags for thingster/flickr posting, creative overlays, maps downloaded to the phone so you can adjust the location in case you took the photos indoors and had to go outside to get a GPS signal, etc, etc, etc.

Additionally, Mie really wants an app that will create a GPS tracklog (which this GPS device does not support natively) so when she gets lost (as she often does) she can go back later and laugh about how far off in the wrong direction she went.

In fact, now that I can get location information on a cell phone, there are myriad opportunities for locative mobile apps I can play with. It's quite exciting!

Comments:

I'm jumping up and down in excitement too! This will be so much fun. I'll be your guinnea pig any time :)

Posted by: Mie on October 8, 2004 04:16 PM


Nice post! I love narratives of working out how to get shit running.

You should've opened my zip! The Bluetooth stuff wouldn't have done much for you (the sample code you used does pretty much the same). But I did have code in there for posting to Blogger API... it would've saved you some time.

The "Throwable" tip is *very* nice. I've run into the "disapearing app" problem lots of times - it never dawned on me to catch Throwable.

You're working on *which* Nokia phones? They're not generic - even the Series 60 phones. Each version is slightly different than the other one. Something that works on the 3650 won't work on the 6600, bugs in the 6600 aren't in the 7610, but might be in the 6620, etc.

When you get to the part of interpolating over the points on a map and converting from lat/lons to pixel coordinates, taking into account the curvature of the Earth... don't call me. I've played that game and I'm not good at it. ;-)

-Russ

Posted by: Russell Beattie on October 9, 2004 10:10 AM

Nice post. You can get the j2me compiles happening on your mac. Its a little bit of an effort but you basically take the classes.zip and the various external classes from the nokia dev kit and put them in the wtk on the mac. Reference them in the classpath and you can then use javac or ant/antenna etc to compile and run the preverifier. Then bluetooth the jar to your phone. Its not as nice as the compile/test/fix/compile/test/fix cycle on the emulators but for a mac developer its not bad.

Posted by: Ben on October 9, 2004 10:35 AM

Nice one! Gotta get you and Jiri Komzak (Mr HitMaps) to work together... I'm pointing him to this right away...

Posted by: Marc Eisenstadt on October 13, 2004 07:54 AM

Hi,

I have been developing with J2ME for some time and would love to look into developing something like this further.

Would it be possible to obtain a test version of your application to try out?

Thanks,


Pete

Posted by: Pete11 on October 14, 2004 01:54 AM

This is a really great idea -- and very a helpful article! I'm completely new to java, and was looking for a way to code a bluetooth clicker for my laptop: this was one of the first results on google, and much appreceated. As Pete says, "Would it be possible to obtain a test version of your application to try out?" Or some source please -- I'm struggling!

Thanks,

alex

Posted by: ch424 on October 27, 2004 04:59 AM

sorry, my email address didn't appear: [fullname]@gmail.com

alex

Posted by: ch424 on October 27, 2004 05:28 AM

Oops, the comment-forwarding on this post wasn't being handled right for this post. The 'Pho' part of the title was causing it to get stucking into my "Pho:" mailing list folder instead, so I didn't realize I had gotten any comments! Sorry about that.

Posted by: dav on October 29, 2004 01:04 PM

Hiya, like all the others I congradulate you on a great writeup. I sent you an email but now I guess you get asked the same question quite a bit. If you are releasing your code I would find it very helpfull for writing my own code for my p900. mail@dave-mitchell.com if you get time. Thanks alot and I look forward to reading about your next programming challenge.

Posted by: machoman on November 10, 2004 09:27 AM

Hi, I stumbled across this page (again) while researching a bit on J2ME / Bluetooth and GPSes, so I think your strategy worked. ;) We're currently in the process of porting an existing application from personal java over to MIDP2, which operates in the same sphere. We presented our work earlier this year at "UbiGIS 2004 - First International Workshop on Ubiquitous GIS" (June 10th 2004) in Gävle, Sweden, were we has done something very similar.

The currently live gateway into our repository can be seen at:

http://www.onemap.org/ch/geometa/browse.php?WMS=Demis

And our presentation etc is available at:

http://www.onemap.org/pages/Archive.html

There is also an article on the way that we have written about the project and metadata in MMSes, which should be published in an upcoming geoinformatics journal. The concept is the same, and this is indeed very much fun :) Hope to see people discover even more fantastic uses for this technology in the future, and don't hesitate to contact me for further information!

Posted by: fisk on November 10, 2004 12:26 PM

nice post! can the JSR 179 do someting for this topic? I am thinking to wrap a BT GPS receiver as a JSR 179 services on the handset. Then, the user/application should get the location more easily.

Posted by: java.fun on November 21, 2004 09:50 AM

Wonderful! You described so many details that I experienced recently too!

BTW, do you know if btspp://where;1 can access any bt gps receiver? If the BT is class 2 and have no security requirement, we can for sure, but if it is class 1 which usually has higher security level and needs "Authendication", JSR82 leaves the BCC implementation to vendors and does not give you a way to input a password for pairing even though you know the password. Do you have experience on pairing BT devices from j2me level?

Thanks,
ltr514

Posted by: ltr514 on February 4, 2005 02:39 PM

Hi,

I am now able to establish a Bluetooth Serial Port connection to my Belkin GPS device and read the NMEA codes, but I seem to have to make 2 connections to make sense of the data.

The first time I connect and receive data back, the codes seem mixed up.

The 2nd time it is fine.

Does anyone know if it is some how necessary to initialise the device first in order to receieve the NMEA codes properly?


Thanks,


Pete

Posted by: Pete11 on February 7, 2005 07:21 AM

Hey
First of all, Great post.
Second I am doing almost the exact same thing for a project ( I need the GPS to tell the PDA to tell the labtop where it is, all through bluetooth).

If you had any ideas/comments besides what is written above, could you plz send them to me. If you had any code/examples, old versions, ect. that you are willing to send I'd appreciate it.
e-mail@s4i75@unb.ca

Thanks in Advance

HardcoreCoder

Posted by: HardcoreCoder on February 22, 2005 08:29 AM

hi, it's an excellent article, I really want to learn about it, can you send me the source code, or part of if?? Thanks. pablogil@grupomovil.net

Posted by: mdg on March 8, 2005 07:30 AM

Hi, this is an excellent article. Thank you for including all the useful URL to the resources you used in this project. As some people have requested, can you please post or send me (tygerzone@yahoo.com) the source code for this project? I am working on something similar with PDA and is struggling...

Thanks in advance.

Tonie

Posted by: Tonie on March 12, 2005 11:38 PM

Hi.

Nice Post. I'm student in Dokuz Eylül University Computer Engineering Department. I'm making a project in J2ME,Gps,bluetooth. Something like yours.If you extended your help I will be glad. if you sent me detailed documentation or code. It will help my project.
Thanks.

Mail: edursunl@stx.cs.deu.edu.tr

Posted by: emreceng on April 6, 2005 07:56 AM

Great, any hints or experiences with sonyericsson devices? I'm Especially interested in K700i and similar (no pda)
thanks

Posted by: carefree on May 13, 2005 01:49 AM

I'm a Stanford student working on a GPS/Bluetooth project and it would be very helpful to get a copy of your source code. Please contact me at jje (at) stanford.edu if possible.

Thanks,
Jon

Posted by: jje007 on May 22, 2005 05:33 AM

Hi,

I'm working on project using Nokia phones for geo-based tracking and communication. I've would be more than happy if I also could get a peek at the source code for project.

Thanks,
Martin, skafte@post1.tele.dk

Posted by: M_Skafte on May 25, 2005 01:12 AM

Hi.

I'm student in Budapest Tech.John von Neumann Faculty of Informatics,Hungary. I'm making a project in J2ME,Gps,bluetooth,Nokia phone. Something like yours.If you extended your help I will be glad. If you sent me detailed documentation or code. It will help my project.
Thanks for your help.

Mail: rodicaindia@yahoo.com

Posted by: rodicaindia on October 29, 2005 02:50 PM

Hi, I was reading your story while searching for a subject for my graduation paper. I absolutely wanted to do something involving mobile technology and GPS and one of the first things a stumbled in was your narrative story. So i've decided to go with your idea and maybe updating it a bit. So if you are willing to help me in any way possible (giving the fact that i'm brand new in j2me) here's my email adress: sorinbuiga@yahoo.com

Posted by: Sorin on November 21, 2005 08:21 AM

Hi, I was reading your story while searching for a subject for my graduation paper. I absolutely wanted to do something involving mobile technology and GPS and one of the first things a stumbled in was your narrative story. So i've decided to go with your idea and maybe updating it a bit. So if you are willing to help me in any way possible (giving the fact that i'm brand new in j2me) here's my email adress: sorinbuiga@yahoo.com

Posted by: Sorin on November 21, 2005 08:22 AM

Hi, I was reading your story while searching for a subject for my graduation paper. I absolutely wanted to do something involving mobile technology and GPS and one of the first things a stumbled in was your narrative story. So i've decided to go with your idea and maybe updating it a bit. So if you are willing to help me in any way possible (giving the fact that i'm brand new in j2me) here's my email adress: sorinbuiga@yahoo.com

Posted by: Sorin on November 21, 2005 08:22 AM

Hi, I was reading your story while searching for a subject for my graduation paper. I absolutely wanted to do something involving mobile technology and GPS and one of the first things a stumbled in was your narrative story. So i've decided to go with your idea and maybe updating it a bit. So if you are willing to help me in any way possible (giving the fact that i'm brand new in j2me) here's my email adress:
sorinbuiga@yahoo.com

Posted by: Sorin on November 21, 2005 08:23 AM

Hi, I was reading your story while searching for a subject for my graduation paper. I absolutely wanted to do something involving mobile technology and GPS and one of the first things a stumbled in was your narrative story. So i've decided to go with your idea and maybe updating it a bit. So if you are willing to help me in any way possible (giving the fact that i'm brand new in j2me) here's my email adress:
sorinbuiga@yahoo.com

Posted by: Sorin on November 21, 2005 08:24 AM

average penis size

Posted by: penis enlargement on November 26, 2005 03:13 PM

Three phrases should be among the most common in our daily usage. They are: Thank you, I am grateful and I appreciate.

Posted by: penis enlargement on November 26, 2005 03:14 PM

Hi!! I'm a student at Barcelone University. I'n thinking on developing this idea in order to localize the position of people in a server to give them the posibility of meeting them depending on their preferences. can you please post or send me (vic.gillloret@terra.es) the source code for this project?
Thank you
Victor

Posted by: vicgil on December 13, 2005 02:49 PM

Hi,

You have done a great job. Do you share your code with others - if so, please let me have a look on your code, I am doing a similar project at my spare times. My email address is - kazisabbir@yahoo.com

Posted by: sabbir on January 2, 2006 11:21 PM

Hi,

As I am new to rpc, I wanted to write a Simple RPC client in c++. I don't find any libraries by which I can do it. If u r able to send me the Source code(either in j2me or c++) would be helpfull. please send me your code to my email id:-shanvaz.m@patni.com

Thanks & Regards
Shaan

Posted by: shaan on February 24, 2006 02:57 AM

You done a good job, as I am also writing the same kind of application, so if you share your code with me it will be helpfull to me to proced further. please send me the code to my mail id :- shanvaz.m@patni.com

Posted by: shaan on February 24, 2006 03:05 AM

Hello,
if it wouldn't be to mush troble for you, could I also get a copy of the source code of the J2ME client application you develouped ? I'am trying to get my own midlet to work which uses location api, but as you probably guessed I haven't

Regards,
Kom

Posted by: kompiainen on March 1, 2006 01:16 PM

i think this is a better option for lazy ones like me....they have a software called GPS Watch for $15, i think its worth the bucks i paid....the most interesting one is the performance statistics, check out their features page, its pretty interesting

Posted by: K750Freak on March 17, 2006 10:03 AM

sorry for not mentioning the link for GPSWatch, its www.i10n.com

Posted by: K750Freak on March 17, 2006 10:06 AM

http://bloggercrab.com/blogs/mark/15073
http://bloggercrab.com/blogs/mark/15074
http://bloggercrab.com/blogs/mark/15075
http://bloggercrab.com/blogs/mark/15076
http://bloggercrab.com/blogs/mark/15077
http://bloggercrab.com/blogs/mark/15078
http://bloggercrab.com/blogs/mark/15079
http://bloggercrab.com/blogs/mark/15080
http://bloggercrab.com/blogs/mark/15081
http://bloggercrab.com/blogs/mark/15082
http://bloggercrab.com/blogs/mark/15083
http://bloggercrab.com/blogs/mark/15084
http://bloggercrab.com/blogs/mark/15085
http://bloggercrab.com/blogs/mark/15086
http://bloggercrab.com/blogs/mark/15087
http://bloggercrab.com/blogs/mark/15088
http://bloggercrab.com/blogs/mark/15089
http://bloggercrab.com/blogs/mark/15090
http://bloggercrab.com/blogs/mark/15091
http://bloggercrab.com/blogs/mark/15092
http://bloggercrab.com/blogs/mark/15093
http://bloggercrab.com/blogs/mark/15094
http://bloggercrab.com/blogs/mark/15095
http://bloggercrab.com/blogs/mark/15096
http://bloggercrab.com/blogs/mark/15097
http://bloggercrab.com/blogs/mark/15098
http://bloggercrab.com/blogs/mark/15099
http://bloggercrab.com/blogs/mark/15100
http://bloggercrab.com/blogs/mark/15101
http://bloggercrab.com/blogs/mark/15102
http://bloggercrab.com/blogs/mark/15103
http://bloggercrab.com/blogs/mark/15104
http://bloggercrab.com/blogs/mark/15105
http://bloggercrab.com/blogs/mark/15106
http://bloggercrab.com/blogs/mark/15107
http://bloggercrab.com/blogs/mark/15108
http://bloggercrab.com/blogs/mark/15109
http://bloggercrab.com/blogs/mark/15110
http://bloggercrab.com/blogs/mark/15111
http://bloggercrab.com/blogs/mark/15116
http://bloggercrab.com/blogs/mark/15117
http://bloggercrab.com/blogs/mark/15118
http://bloggercrab.com/blogs/mark/15119
http://bloggercrab.com/blogs/mark/15120
http://bloggercrab.com/blogs/mark/15121
http://bloggercrab.com/blogs/mark/15122
http://bloggercrab.com/blogs/mark/15123
http://bloggercrab.com/blogs/mark/15124
http://bloggercrab.com/blogs/mark/15125
http://bloggercrab.com/blogs/mark/15126
http://bloggercrab.com/blogs/mark/15127
http://bloggercrab.com/blogs/mark/15128
http://bloggercrab.com/blogs/mark/15129
http://bloggercrab.com/blogs/mark/15130
http://bloggercrab.com/blogs/mark/15131
http://bloggercrab.com/blogs/mark/15132
http://bloggercrab.com/blogs/mark/15133
http://bloggercrab.com/blogs/mark/15134
http://bloggercrab.com/blogs/mark/15135
http://bloggercrab.com/blogs/mark/15136
http://bloggercrab.com/blogs/mark/15137
http://bloggercrab.com/blogs/mark/15138
http://bloggercrab.com/blogs/mark/15139
http://bloggercrab.com/blogs/mark/15140
http://bloggercrab.com/blogs/mark/15141
http://bloggercrab.com/blogs/mark/15142
http://bloggercrab.com/blogs/mark/15143
http://bloggercrab.com/blogs/mark/15144
http://bloggercrab.com/blogs/mark/15145
http://bloggercrab.com/blogs/mark/15146
http://bloggercrab.com/blogs/mark/15147
http://bloggercrab.com/blogs/mark/15148
http://bloggercrab.com/blogs/mark/15149
http://bloggercrab.com/blogs/mark/15150
http://bloggercrab.com/blogs/mark/15151
http://bloggercrab.com/blogs/mark/15152
http://bloggercrab.com/blogs/mark/15153
http://bloggercrab.com/blogs/mark/15154
http://bloggercrab.com/blogs/mark/15155
http://bloggercrab.com/blogs/mark/15156
http://bloggercrab.com/blogs/mark/15157
http://bloggercrab.com/blogs/mark/15158
http://bloggercrab.com/blogs/mark/15159
http://bloggercrab.com/blogs/mark/15160
http://bloggercrab.com/blogs/mark/15161
http://bloggercrab.com/blogs/mark/15162
http://bloggercrab.com/blogs/mark/15163
http://bloggercrab.com/blogs/mark/15164
http://bloggercrab.com/blogs/mark/15165
http://bloggercrab.com/blogs/mark/15166
http://bloggercrab.com/blogs/mark/15167
http://bloggercrab.com/blogs/mark/15168
http://bloggercrab.com/blogs/mark/15169
http://bloggercrab.com/blogs/mark/15170
http://bloggercrab.com/blogs/mark/15171
http://bloggercrab.com/blogs/mark/15172
http://bloggercrab.com/blogs/mark/15173
http://bloggercrab.com/blogs/mark/15174
http://bloggercrab.com/blogs/mark/15175
http://bloggercrab.com/blogs/mark/15176
http://bloggercrab.com/blogs/mark/15177
http://bloggercrab.com/blogs/mark/15178
http://bloggercrab.com/blogs/mark/15179
http://bloggercrab.com/blogs/mark/15180
http://bloggercrab.com/blogs/mark/15181
http://bloggercrab.com/blogs/mark/15182
http://bloggercrab.com/blogs/mark/15183
http://bloggercrab.com/blogs/mark/15184
http://bloggercrab.com/blogs/mark/15185
http://bloggercrab.com/blogs/mark/15186
http://bloggercrab.com/blogs/mark/15187
http://bloggercrab.com/blogs/mark/15188
http://bloggercrab.com/blogs/mark/15189
http://bloggercrab.com/blogs/mark/15190
http://bloggercrab.com/blogs/mark/15191
http://bloggercrab.com/blogs/mark/15192
http://bloggercrab.com/blogs/mark/15193
http://bloggercrab.com/blogs/mark/15194
http://bloggercrab.com/blogs/mark/15195
http://bloggercrab.com/blogs/mark/15196
http://bloggercrab.com/blogs/mark/15197
http://bloggercrab.com/blogs/mark/15198
http://bloggercrab.com/blogs/mark/15199
http://bloggercrab.com/blogs/mark/15200
http://bloggercrab.com/blogs/mark/15201
http://bloggercrab.com/blogs/mark/15202
http://bloggercrab.com/blogs/mark/15203
http://bloggercrab.com/blogs/mark/15204
http://bloggercrab.com/blogs/mark/15205
http://bloggercrab.com/blogs/mark/15206
http://bloggercrab.com/blogs/mark/15207
http://bloggercrab.com/blogs/mark/15208
http://bloggercrab.com/blogs/mark/15209
http://bloggercrab.com/blogs/mark/15210
http://bloggercrab.com/blogs/mark/15211
http://bloggercrab.com/blogs/mark/15212
http://bloggercrab.com/blogs/mark/15213
http://bloggercrab.com/blogs/mark/15214
http://bloggercrab.com/blogs/mark/15215
http://bloggercrab.com/blogs/mark/15216
http://bloggercrab.com/blogs/mark/15217
http://bloggercrab.com/blogs/mark/15218
http://bloggercrab.com/blogs/mark/15219
http://bloggercrab.com/blogs/mark/15220
http://bloggercrab.com/blogs/mark/15221
http://bloggercrab.com/blogs/mark/15222
http://bloggercrab.com/blogs/mark/15223
http://bloggercrab.com/blogs/mark/15224
http://bloggercrab.com/blogs/mark/15225
http://bloggercrab.com/blogs/mark/15226
http://bloggercrab.com/blogs/mark/15227
http://bloggercrab.com/blogs/mark/15228
http://bloggercrab.com/blogs/mark/15229
http://bloggercrab.com/blogs/mark/15230
http://bloggercrab.com/blogs/mark/15231
http://bloggercrab.com/blogs/mark/15232
http://bloggercrab.com/blogs/mark/15233
http://bloggercrab.com/blogs/mark/15234
http://bloggercrab.com/blogs/mark/15235
http://bloggercrab.com/blogs/mark/15236
http://bloggercrab.com/blogs/mark/15237
http://bloggercrab.com/blogs/mark/15238
http://bloggercrab.com/blogs/mark/15239
http://bloggercrab.com/blogs/mark/15240
http://bloggercrab.com/blogs/mark/15241
http://bloggercrab.com/blogs/mark/15242
http://bloggercrab.com/blogs/mark/15243
http://bloggercrab.com/blogs/mark/15244
http://bloggercrab.com/blogs/mark/15245
http://bloggercrab.com/blogs/mark/15246
http://bloggercrab.com/blogs/mark/15247
http://bloggercrab.com/blogs/mark/15248
http://bloggercrab.com/blogs/mark/15249
http://bloggercrab.com/blogs/mark/15250
http://bloggercrab.com/blogs/mark/15251
http://bloggercrab.com/blogs/mark/15252
http://bloggercrab.com/blogs/mark/15253
http://bloggercrab.com/blogs/mark/15254
http://bloggercrab.com/blogs/mark/15255
http://bloggercrab.com/blogs/mark/15256
http://bloggercrab.com/blogs/mark/15257
http://bloggercrab.com/blogs/mark/15258
http://bloggercrab.com/blogs/mark/15259
http://bloggercrab.com/blogs/mark/15260
http://bloggercrab.com/blogs/mark/15261
http://bloggercrab.com/blogs/mark/15262
http://bloggercrab.com/blogs/mark/15263
http://bloggercrab.com/blogs/mark/15264
http://bloggercrab.com/blogs/mark/15265
http://bloggercrab.com/blogs/mark/15266
http://bloggercrab.com/blogs/mark/15267
http://bloggercrab.com/blogs/mark/15268
http://bloggercrab.com/blogs/mark/15269
http://bloggercrab.com/blogs/mark/15270
http://bloggercrab.com/blogs/mark/15271
http://bloggercrab.com/blogs/mark/15272
http://bloggercrab.com/blogs/mark/15273
http://bloggercrab.com/blogs/mark/15274
http://bloggercrab.com/blogs/mark/15275
http://bloggercrab.com/blogs/mark/15276
http://bloggercrab.com/blogs/mark/15277
http://bloggercrab.com/blogs/mark/15278
http://bloggercrab.com/blogs/mark/15279
http://bloggercrab.com/blogs/mark/15280
http://bloggercrab.com/blogs/mark/15281
http://bloggercrab.com/blogs/mark/15282
http://bloggercrab.com/blogs/mark/15283
http://bloggercrab.com/blogs/mark/15284
http://bloggercrab.com/blogs/mark/15285
http://bloggercrab.com/blogs/mark/15286
http://bloggercrab.com/blogs/mark/15287
http://bloggercrab.com/blogs/mark/15288
http://bloggercrab.com/blogs/mark/15289
http://bloggercrab.com/blogs/mark/15290
http://bloggercrab.com/blogs/mark/15291
http://bloggercrab.com/blogs/mark/15292
http://bloggercrab.com/blogs/mark/15293
http://bloggercrab.com/blogs/mark/15294
http://bloggercrab.com/blogs/mark/15295
http://bloggercrab.com/blogs/mark/15296
http://bloggercrab.com/blogs/mark/15297
http://bloggercrab.com/blogs/mark/15298
http://bloggercrab.com/blogs/mark/15299
http://bloggercrab.com/blogs/mark/15300
http://bloggercrab.com/blogs/mark/15301
http://bloggercrab.com/blogs/mark/15302
http://bloggercrab.com/blogs/mark/15303
http://bloggercrab.com/blogs/mark/15304
http://bloggercrab.com/blogs/mark/15305
http://bloggercrab.com/blogs/mark/15306
http://bloggercrab.com/blogs/mark/15307
http://bloggercrab.com/blogs/mark/15308
http://bloggercrab.com/blogs/mark/15309
http://bloggercrab.com/blogs/mark/15310
http://bloggercrab.com/blogs/mark/15311
http://bloggercrab.com/blogs/mark/15312
http://bloggercrab.com/blogs/mark/15313
http://bloggercrab.com/blogs/mark/15314
http://bloggercrab.com/blogs/mark/15315
http://bloggercrab.com/blogs/mark/15316
http://bloggercrab.com/blogs/mark/15317
http://bloggercrab.com/blogs/mark/15318
http://bloggercrab.com/blogs/mark/15319
http://bloggercrab.com/blogs/mark/15320
http://bloggercrab.com/blogs/mark/15321
http://bloggercrab.com/blogs/mark/15322
http://bloggercrab.com/blogs/mark/15323
http://bloggercrab.com/blogs/mark/15324
http://bloggercrab.com/blogs/mark/15325
http://bloggercrab.com/blogs/mark/15326
http://bloggercrab.com/blogs/mark/15327
http://bloggercrab.com/blogs/mark/15328
http://bloggercrab.com/blogs/mark/15329
http://bloggercrab.com/blogs/ffl/15333
http://bloggercrab.com/blogs/ffl/15334
http://bloggercrab.com/blogs/ffl/15335
http://bloggercrab.com/blogs/ffl/15336
http://bloggercrab.com/blogs/ffl/15337
http://bloggercrab.com/blogs/ffl/15338
http://bloggercrab.com/blogs/ffl/15339
http://bloggercrab.com/blogs/ffl/15340
http://bloggercrab.com/blogs/ffl/15341
http://bloggercrab.com/blogs/ffl/15342
http://bloggercrab.com/blogs/ffl/15343
http://bloggercrab.com/blogs/ffl/15344
http://bloggercrab.com/blogs/ffl/15345
http://bloggercrab.com/blogs/ffl/15346
http://bloggercrab.com/blogs/ffl/15347
http://bloggercrab.com/blogs/ffl/15348
http://bloggercrab.com/blogs/ffl/15349
http://bloggercrab.com/blogs/ffl/15350
http://bloggercrab.com/blogs/ffl/15351
http://bloggercrab.com/blogs/ffl/15352
http://bloggercrab.com/blogs/ffl/15353
http://bloggercrab.com/blogs/ffl/15354
http://bloggercrab.com/blogs/ffl/15355
http://bloggercrab.com/blogs/ffl/15356
http://bloggercrab.com/blogs/ffl/15357
http://bloggercrab.com/blogs/ffl/15358
http://bloggercrab.com/blogs/ffl/15359
http://bloggercrab.com/blogs/ffl/15360
http://bloggercrab.com/blogs/ffl/15361
http://bloggercrab.com/blogs/ffl/15362
http://bloggercrab.com/blogs/ffl/15363
http://bloggercrab.com/blogs/ffl/15364
http://bloggercrab.com/blogs/ffl/15365
http://bloggercrab.com/blogs/ffl/15366
http://bloggercrab.com/blogs/ffl/15367
http://bloggercrab.com/blogs/ffl/15368
http://bloggercrab.com/blogs/ffl/15369
http://bloggercrab.com/blogs/ffl/15370
http://bloggercrab.com/blogs/ffl/15371
http://bloggercrab.com/blogs/ffl/15372
http://bloggercrab.com/blogs/ffl/15373
http://bloggercrab.com/blogs/ffl/15374
http://bloggercrab.com/blogs/ffl/15375
http://bloggercrab.com/blogs/ffl/15376
http://bloggercrab.com/blogs/ffl/15377
http://bloggercrab.com/blogs/ffl/15378
http://bloggercrab.com/blogs/ffl/15379
http://bloggercrab.com/blogs/ffl/15380
http://bloggercrab.com/blogs/ffl/15381
http://bloggercrab.com/blogs/ffl/15382
http://bloggercrab.com/blogs/ffl/15383
http://bloggercrab.com/blogs/ffl/15384
http://bloggercrab.com/blogs/ffl/15385
http://bloggercrab.com/blogs/ffl/15386
http://bloggercrab.com/blogs/ffl/15387
http://bloggercrab.com/blogs/ffl/15388
http://bloggercrab.com/blogs/ffl/15389
http://bloggercrab.com/blogs/ffl/15390
http://bloggercrab.com/blogs/ffl/15391
http://bloggercrab.com/blogs/ffl/15392
http://bloggercrab.com/blogs/ffl/15393
http://bloggercrab.com/blogs/ffl/15394
http://bloggercrab.com/blogs/ffl/15395
http://bloggercrab.com/blogs/ffl/15396
http://bloggercrab.com/blogs/ffl/15397
http://bloggercrab.com/blogs/ffl/15398
http://bloggercrab.com/blogs/ffl/15399
http://bloggercrab.com/blogs/ffl/15400
http://bloggercrab.com/blogs/ffl/15401
http://bloggercrab.com/blogs/ffl/15402
http://bloggercrab.com/blogs/ffl/15403
http://bloggercrab.com/blogs/ffl/15404
http://bloggercrab.com/blogs/ffl/15405
http://bloggercrab.com/blogs/ffl/15406
http://bloggercrab.com/blogs/ffl/15407
http://bloggercrab.com/blogs/ffl/15408
http://bloggercrab.com/blogs/ffl/15409
http://bloggercrab.com/blogs/ffl/15410
http://bloggercrab.com/blogs/ffl/15411
http://bloggercrab.com/blogs/ffl/15412
http://bloggercrab.com/blogs/ffl/15413
http://bloggercrab.com/blogs/ffl/15414
http://bloggercrab.com/blogs/ffl/15415
http://bloggercrab.com/blogs/ffl/15416
http://bloggercrab.com/blogs/ffl/15417
http://bloggercrab.com/blogs/ffl/15418
http://bloggercrab.com/blogs/ffl/15419
http://bloggercrab.com/blogs/ffl/15420
http://bloggercrab.com/blogs/ffl/15421
http://bloggercrab.com/blogs/ffl/15422
http://bloggercrab.com/blogs/ffl/15423
http://bloggercrab.com/blogs/ffl/15424
http://bloggercrab.com/blogs/ffl/15425
http://bloggercrab.com/blogs/ffl/15426
http://bloggercrab.com/blogs/ffl/15427
http://bloggercrab.com/blogs/ffl/15428
http://bloggercrab.com/blogs/ffl/15429
http://bloggercrab.com/blogs/ffl/15430
http://bloggercrab.com/blogs/ffl/15431
http://bloggercrab.com/blogs/ffl/15432
http://bloggercrab.com/blogs/ffl/15433
http://bloggercrab.com/blogs/ffl/15434
http://bloggercrab.com/blogs/ffl/15435
http://bloggercrab.com/blogs/ffl/15436
http://bloggercrab.com/blogs/ffl/15437
http://bloggercrab.com/blogs/ffl/15438
http://bloggercrab.com/blogs/ffl/15439
http://bloggercrab.com/blogs/ffl/15440
http://bloggercrab.com/blogs/ffl/15441
http://bloggercrab.com/blogs/ffl/15442
http://bloggercrab.com/blogs/ffl/15443
http://bloggercrab.com/blogs/ffl/15444
http://bloggercrab.com/blogs/ffl/15445
http://bloggercrab.com/blogs/ffl/15446
http://bloggercrab.com/blogs/ffl/15447
http://bloggercrab.com/blogs/ffl/15448
http://bloggercrab.com/blogs/ffl/15449
http://bloggercrab.com/blogs/ffl/15450
http://bloggercrab.com/blogs/ffl/15451
http://bloggercrab.com/blogs/ffl/15452
http://bloggercrab.com/blogs/ffl/15453
http://bloggercrab.com/blogs/ffl/15454
http://bloggercrab.com/blogs/ffl/15455
http://bloggercrab.com/blogs/ffl/15456
http://bloggercrab.com/blogs/ffl/15457
http://bloggercrab.com/blogs/ffl/15458
http://bloggercrab.com/blogs/ffl/15459
http://bloggercrab.com/blogs/ffl/15460
http://bloggercrab.com/blogs/ffl/15461
http://bloggercrab.com/blogs/ffl/15462
http://bloggercrab.com/blogs/ffl/15463
http://bloggercrab.com/blogs/ffl/15464
http://bloggercrab.com/blogs/ffl/15465
http://bloggercrab.com/blogs/ffl/15466
http://bloggercrab.com/blogs/ffl/15467
http://bloggercrab.com/blogs/ffl/15468
http://bloggercrab.com/blogs/ffl/15469
http://bloggercrab.com/blogs/ffl/15470
http://bloggercrab.com/blogs/ffl/15471
http://bloggercrab.com/blogs/ffl/15472
http://bloggercrab.com/blogs/ffl/15473
http://bloggercrab.com/blogs/ffl/15474
http://bloggercrab.com/blogs/ffl/15475
http://bloggercrab.com/blogs/ffl/15476
http://bloggercrab.com/blogs/ffl/15477
http://bloggercrab.com/blogs/ffl/15478
http://bloggercrab.com/blogs/ffl/15479
http://bloggercrab.com/blogs/ffl/15480
http://bloggercrab.com/blogs/ffl/15481
http://bloggercrab.com/blogs/ffl/15482
http://bloggercrab.com/blogs/ffl/15483
http://bloggercrab.com/blogs/ffl/15484
http://bloggercrab.com/blogs/ffl/15485
http://bloggercrab.com/blogs/ffl/15486
http://bloggercrab.com/blogs/ffl/15487
http://bloggercrab.com/blogs/ffl/15488
http://bloggercrab.com/blogs/ffl/15489
http://bloggercrab.com/blogs/ffl/15490
http://bloggercrab.com/blogs/ffl/15491
http://bloggercrab.com/blogs/ffl/15492
http://bloggercrab.com/blogs/ffl/15493
http://bloggercrab.com/blogs/ffl/15494
http://bloggercrab.com/blogs/ffl/15495
http://bloggercrab.com/blogs/ffl/15496
http://bloggercrab.com/blogs/ffl/15497
http://bloggercrab.com/blogs/ffl/15498
http://bloggercrab.com/blogs/ffl/15499
http://bloggercrab.com/blogs/ffl/15500
http://bloggercrab.com/blogs/ffl/15501
http://bloggercrab.com/blogs/ffl/15502
http://bloggercrab.com/blogs/ffl/15503
http://bloggercrab.com/blogs/ffl/15504
http://bloggercrab.com/blogs/ffl/15505
http://bloggercrab.com/blogs/ffl/15506
http://bloggercrab.com/blogs/ffl/15507
http://bloggercrab.com/blogs/ffl/15508
http://bloggercrab.com/blogs/ffl/15509
http://bloggercrab.com/blogs/ffl/15510
http://bloggercrab.com/blogs/ffl/15511
http://bloggercrab.com/blogs/ffl/15512
http://bloggercrab.com/blogs/ffl/15513
http://bloggercrab.com/blogs/ffl/15514
http://bloggercrab.com/blogs/ffl/15515
http://bloggercrab.com/blogs/ffl/15516
http://bloggercrab.com/blogs/ffl/15517
http://bloggercrab.com/blogs/ffl/15518
http://bloggercrab.com/blogs/ffl/15519
http://bloggercrab.com/blogs/ffl/15520
http://bloggercrab.com/blogs/ffl/15521
http://bloggercrab.com/blogs/ffl/15522
http://bloggercrab.com/blogs/ffl/15523
http://bloggercrab.com/blogs/ffl/15524
http://bloggercrab.com/blogs/ffl/15525
http://bloggercrab.com/blogs/ffl/15526
http://bloggercrab.com/blogs/ffl/15527
http://bloggercrab.com/blogs/ffl/15528
http://bloggercrab.com/blogs/ffl/15529
http://bloggercrab.com/blogs/ffl/15530
http://bloggercrab.com/blogs/ffl/15531
http://bloggercrab.com/blogs/ffl/15532
http://bloggercrab.com/blogs/ffl/15533
http://bloggercrab.com/blogs/ffl/15534
http://bloggercrab.com/blogs/ffl/15535
http://bloggercrab.com/blogs/ffl/15536
http://bloggercrab.com/blogs/ffl/15537
http://bloggercrab.com/blogs/ffl/15538
http://bloggercrab.com/blogs/ffl/15539
http://bloggercrab.com/blogs/ffl/15540
http://bloggercrab.com/blogs/ffl/15541
http://bloggercrab.com/blogs/ffl/15542
http://bloggercrab.com/blogs/ffl/15543
http://bloggercrab.com/blogs/ffl/15544
http://bloggercrab.com/blogs/ffl/15545
http://bloggercrab.com/blogs/ffl/15546
http://bloggercrab.com/blogs/ffl/15547
http://bloggercrab.com/blogs/ffl/15548
http://bloggercrab.com/blogs/ffl/15549
http://bloggercrab.com/blogs/ffl/15550
http://bloggercrab.com/blogs/ffl/15551
http://bloggercrab.com/blogs/ffl/15552
http://bloggercrab.com/blogs/ffl/15553
http://bloggercrab.com/blogs/ffl/15554
http://bloggercrab.com/blogs/ffl/15555
http://bloggercrab.com/blogs/ffl/15556
http://bloggercrab.com/blogs/ffl/15557
http://bloggercrab.com/blogs/rpl/15585
http://bloggercrab.com/blogs/rpl/15586
http://bloggercrab.com/blogs/rpl/15587
http://bloggercrab.com/blogs/rpl/15588
http://bloggercrab.com/blogs/rpl/15589
http://bloggercrab.com/blogs/rpl/15590
http://bloggercrab.com/blogs/rpl/15591
http://bloggercrab.com/blogs/rpl/15592
http://bloggercrab.com/blogs/rpl/15593
http://bloggercrab.com/blogs/rpl/15594
http://bloggercrab.com/blogs/rpl/15595
http://bloggercrab.com/blogs/rpl/15596
http://bloggercrab.com/blogs/rpl/15597
http://bloggercrab.com/blogs/rpl/15598
http://bloggercrab.com/blogs/rpl/15599
http://bloggercrab.com/blogs/rpl/15600
http://bloggercrab.com/blogs/rpl/15601
http://bloggercrab.com/blogs/rpl/15602
http://bloggercrab.com/blogs/rpl/15603
http://bloggercrab.com/blogs/rpl/15604
http://bloggercrab.com/blogs/rpl/15605
http://bloggercrab.com/blogs/rpl/15606
http://bloggercrab.com/blogs/rpl/15607
http://bloggercrab.com/blogs/rpl/15608
http://bloggercrab.com/blogs/rpl/15609
http://bloggercrab.com/blogs/rpl/15610
http://bloggercrab.com/blogs/rpl/15611
http://bloggercrab.com/blogs/rpl/15612
http://bloggercrab.com/blogs/rpl/15613
http://bloggercrab.com/blogs/rpl/15614
http://bloggercrab.com/blogs/rpl/15615
http://bloggercrab.com/blogs/rpl/15616
http://bloggercrab.com/blogs/rpl/15617
http://bloggercrab.com/blogs/rpl/15618
http://bloggercrab.com/blogs/rpl/15619
http://bloggercrab.com/blogs/rpl/15620
http://bloggercrab.com/blogs/rpl/15621
http://bloggercrab.com/blogs/rpl/15622
http://bloggercrab.com/blogs/rpl/15623
http://bloggercrab.com/blogs/rpl/15624
http://bloggercrab.com/blogs/rpl/15625
http://bloggercrab.com/blogs/rpl/15626
http://bloggercrab.com/blogs/rpl/15627
http://bloggercrab.com/blogs/rpl/15628
http://bloggercrab.com/blogs/rpl/15629
http://bloggercrab.com/blogs/rpl/15630
http://bloggercrab.com/blogs/rpl/15631
http://bloggercrab.com/blogs/rpl/15632
http://bloggercrab.com/blogs/rpl/15633
http://bloggercrab.com/blogs/rpl/15634
http://bloggercrab.com/blogs/rpl/15635
http://bloggercrab.com/blogs/rpl/15636
http://bloggercrab.com/blogs/rpl/15637
http://bloggercrab.com/blogs/rpl/15638
http://bloggercrab.com/blogs/rpl/15639
http://bloggercrab.com/blogs/rpl/15640
http://bloggercrab.com/blogs/rpl/15641
http://bloggercrab.com/blogs/rpl/15642
http://bloggercrab.com/blogs/rpl/15643
http://bloggercrab.com/blogs/rpl/15644
http://bloggercrab.com/blogs/rpl/15645
http://bloggercrab.com/blogs/rpl/15646
http://bloggercrab.com/blogs/rpl/15647
http://bloggercrab.com/blogs/rpl/15648
http://bloggercrab.com/blogs/rpl/15649
http://bloggercrab.com/blogs/rpl/15650
http://bloggercrab.com/blogs/rpl/15651
http://bloggercrab.com/blogs/rpl/15652
http://bloggercrab.com/blogs/rpl/15653
http://bloggercrab.com/blogs/rpl/15654
http://bloggercrab.com/blogs/rpl/15655
http://bloggercrab.com/blogs/rpl/15656
http://bloggercrab.com/blogs/rpl/15657
http://bloggercrab.com/blogs/rpl/15658
http://bloggercrab.com/blogs/rpl/15659
http://bloggercrab.com/blogs/rpl/15660
http://bloggercrab.com/blogs/rpl/15661
http://bloggercrab.com/blogs/rpl/15662
http://bloggercrab.com/blogs/rpl/15663
http://bloggercrab.com/blogs/rpl/15664
http://bloggercrab.com/blogs/rpl/15665
http://bloggercrab.com/blogs/rpl/15666
http://bloggercrab.com/blogs/rpl/15667
http://bloggercrab.com/blogs/rpl/15668
http://bloggercrab.com/blogs/rpl/15669
http://bloggercrab.com/blogs/rpl/15670
http://bloggercrab.com/blogs/rpl/15671
http://bloggercrab.com/blogs/rpl/15672
http://bloggercrab.com/blogs/rpl/15673
http://bloggercrab.com/blogs/rpl/15674
http://bloggercrab.com/blogs/rpl/15675
http://bloggercrab.com/blogs/rpl/15676
http://bloggercrab.com/blogs/rpl/15677
http://bloggercrab.com/blogs/rpl/15678
http://bloggercrab.com/blogs/rpl/15679
http://bloggercrab.com/blogs/rpl/15680
http://bloggercrab.com/blogs/rpl/15681
http://bloggercrab.com/blogs/rpl/15682
http://bloggercrab.com/blogs/rpl/15683
http://bloggercrab.com/blogs/rpl/15684
http://bloggercrab.com/blogs/rpl/15685
http://bloggercrab.com/blogs/rpl/15686
http://bloggercrab.com/blogs/rpl/15687
http://bloggercrab.com/blogs/rpl/15688
http://bloggercrab.com/blogs/rpl/15689
http://bloggercrab.com/blogs/rpl/15690
http://bloggercrab.com/blogs/rpl/15691
http://bloggercrab.com/blogs/rpl/15692
http://bloggercrab.com/blogs/rpl/15693
http://bloggercrab.com/blogs/rpl/15694
http://bloggercrab.com/blogs/rpl/15695
http://bloggercrab.com/blogs/rpl/15696
http://bloggercrab.com/blogs/rpl/15697
http://bloggercrab.com/blogs/rpl/15698
http://bloggercrab.com/blogs/rpl/15699
http://bloggercrab.com/blogs/rpl/15700
http://bloggercrab.com/blogs/rpl/15701
http://bloggercrab.com/blogs/rpl/15702
http://bloggercrab.com/blogs/rpl/15703
http://bloggercrab.com/blogs/rpl/15704
http://bloggercrab.com/blogs/rpl/15705
http://bloggercrab.com/blogs/rpl/15706
http://bloggercrab.com/blogs/rpl/15707
http://bloggercrab.com/blogs/rpl/15708
http://bloggercrab.com/blogs/rpl/15709
http://bloggercrab.com/blogs/rpl/15710
http://bloggercrab.com/blogs/rpl/15711
http://bloggercrab.com/blogs/rpl/15712
http://bloggercrab.com/blogs/rpl/15713
http://bloggercrab.com/blogs/rpl/15714
http://bloggercrab.com/blogs/rpl/15715
http://bloggercrab.com/blogs/rpl/15716
http://bloggercrab.com/blogs/rpl/15717
http://bloggercrab.com/blogs/rpl/15718
http://bloggercrab.com/blogs/rpl/15719
http://bloggercrab.com/blogs/rpl/15720
http://bloggercrab.com/blogs/rpl/15721
http://bloggercrab.com/blogs/rpl/15722
http://bloggercrab.com/blogs/rpl/15723
http://bloggercrab.com/blogs/rpl/15724
http://bloggercrab.com/blogs/rpl/15725
http://bloggercrab.com/blogs/rpl/15726
http://bloggercrab.com/blogs/rpl/15727
http://bloggercrab.com/blogs/rpl/15728
http://bloggercrab.com/blogs/rpl/15729
http://bloggercrab.com/blogs/rpl/15730
http://bloggercrab.com/blogs/rpl/15731
http://bloggercrab.com/blogs/rpl/15732
http://bloggercrab.com/blogs/rpl/15733
http://bloggercrab.com/blogs/rpl/15734
http://bloggercrab.com/blogs/rpl/15735
http://bloggercrab.com/blogs/rpl/15736
http://bloggercrab.com/blogs/rpl/15737
http://bloggercrab.com/blogs/rpl/15738
http://bloggercrab.com/blogs/rpl/15739
http://bloggercrab.com/blogs/rpl/15740
http://bloggercrab.com/blogs/rpl/15741
http://bloggercrab.com/blogs/rpl/15742
http://bloggercrab.com/blogs/rpl/15743
http://bloggercrab.com/blogs/rpl/15744
http://bloggercrab.com/blogs/rpl/15745
http://bloggercrab.com/blogs/rpl/15746
http://bloggercrab.com/blogs/rpl/15747
http://bloggercrab.com/blogs/rpl/15748
http://bloggercrab.com/blogs/rpl/15749
http://bloggercrab.com/blogs/rpl/15750
http://bloggercrab.com/blogs/rpl/15751
http://bloggercrab.com/blogs/rpl/15752
http://bloggercrab.com/blogs/rpl/15753
http://bloggercrab.com/blogs/rpl/15754
http://bloggercrab.com/blogs/rpl/15755
http://bloggercrab.com/blogs/rpl/15756
http://bloggercrab.com/blogs/rpl/15757
http://bloggercrab.com/blogs/rpl/15758
http://bloggercrab.com/blogs/rpl/15759
http://bloggercrab.com/blogs/rpl/15760
http://bloggercrab.com/blogs/rpl/15761
http://bloggercrab.com/blogs/rpl/15762
http://bloggercrab.com/blogs/rpl/15763
http://bloggercrab.com/blogs/rpl/15764
http://bloggercrab.com/blogs/rpl/15765
http://bloggercrab.com/blogs/rpl/15766
http://bloggercrab.com/blogs/rpl/15767
http://bloggercrab.com/blogs/rpl/15768
http://bloggercrab.com/blogs/rpl/15769
http://bloggercrab.com/blogs/rpl/15770
http://bloggercrab.com/blogs/rpl/15771
http://bloggercrab.com/blogs/rpl/15772
http://bloggercrab.com/blogs/rpl/15773
http://bloggercrab.com/blogs/rpl/15774
http://bloggercrab.com/blogs/rpl/15775
http://bloggercrab.com/blogs/rpl/15776
http://bloggercrab.com/blogs/rpl/15777
http://bloggercrab.com/blogs/rpl/15778
http://bloggercrab.com/blogs/rpl/15779
http://bloggercrab.com/blogs/rpl/15780
http://bloggercrab.com/blogs/rpl/15781
http://bloggercrab.com/blogs/rpl/15782
http://bloggercrab.com/blogs/rpl/15783
http://bloggercrab.com/blogs/rpl/15784
http://bloggercrab.com/blogs/rpl/15785
http://bloggercrab.com/blogs/rpl/15786
http://bloggercrab.com/blogs/rpl/15787
http://bloggercrab.com/blogs/rpl/15788
http://bloggercrab.com/blogs/rpl/15789
http://bloggercrab.com/blogs/rpl/15790
http://bloggercrab.com/blogs/rpl/15791
http://bloggercrab.com/blogs/rpl/15792
http://bloggercrab.com/blogs/rpl/15793
http://bloggercrab.com/blogs/rpl/15794
http://bloggercrab.com/blogs/rpl/15795
http://bloggercrab.com/blogs/rpl/15796
http://bloggercrab.com/blogs/rpl/15797
http://bloggercrab.com/blogs/rpl/15798
http://bloggercrab.com/blogs/rpl/15799
http://bloggercrab.com/blogs/rpl/15800
http://bloggercrab.com/blogs/rpl/15801
http://bloggercrab.com/blogs/rpl/15802
http://bloggercrab.com/blogs/rpl/15803
http://bloggercrab.com/blogs/rpl/15804
http://bloggercrab.com/blogs/rpl/15805
http://bloggercrab.com/blogs/rpl/15806
http://bloggercrab.com/blogs/rpl/15807
http://bloggercrab.com/blogs/rpl/15808
http://bloggercrab.com/blogs/rpl/15809
http://bloggercrab.com/blogs/rpl/15810
http://bloggercrab.com/blogs/rpl/15811
http://bloggercrab.com/blogs/rpl/15812
http://bloggercrab.com/blogs/rpl/15813
http://bloggercrab.com/blogs/rpl/15814
http://bloggercrab.com/blogs/rpl/15815
http://bloggercrab.com/blogs/rpl/15816
http://bloggercrab.com/blogs/rpl/15817
http://bloggercrab.com/blogs/rpl/15818
http://bloggercrab.com/blogs/rpl/15819
http://bloggercrab.com/blogs/rpl/15820
http://bloggercrab.com/blogs/rpl/15821
http://bloggercrab.com/blogs/rpl/15822
http://bloggercrab.com/blogs/rpl/15823
http://bloggercrab.com/blogs/rpl/15824
http://bloggercrab.com/blogs/rpl/15825
http://bloggercrab.com/blogs/rpl/15826
http://bloggercrab.com/blogs/rpl/15827
http://bloggercrab.com/blogs/rpl/15828
http://bloggercrab.com/blogs/rpl/15829
http://bloggercrab.com/blogs/rpl/15830
http://bloggercrab.com/blogs/rpl/15831
http://bloggercrab.com/blogs/rpl/15832
http://bloggercrab.com/blogs/rpl/15833
http://bloggercrab.com/blogs/rpl/15834
http://bloggercrab.com/blogs/rpl/15835
http://bloggercrab.com/blogs/mmc/15837
http://bloggercrab.com/blogs/mmc/15838
http://bloggercrab.com/blogs/mmc/15839
http://bloggercrab.com/blogs/mmc/15840
http://bloggercrab.com/blogs/mmc/15841
http://bloggercrab.com/blogs/mmc/15842
http://bloggercrab.com/blogs/mmc/15843
http://bloggercrab.com/blogs/mmc/15844
http://bloggercrab.com/blogs/mmc/15845
http://bloggercrab.com/blogs/mmc/15846
http://bloggercrab.com/blogs/mmc/15847
http://bloggercrab.com/blogs/mmc/15848
http://bloggercrab.com/blogs/mmc/15849
http://bloggercrab.com/blogs/mmc/15850
http://bloggercrab.com/blogs/mmc/15851
http://bloggercrab.com/blogs/mmc/15852
http://bloggercrab.com/blogs/mmc/15853
http://bloggercrab.com/blogs/mmc/15854
http://bloggercrab.com/blogs/mmc/15855
http://bloggercrab.com/blogs/mmc/15856
http://bloggercrab.com/blogs/mmc/15857
http://bloggercrab.com/blogs/mmc/15858
http://bloggercrab.com/blogs/mmc/15859
http://bloggercrab.com/blogs/mmc/15860
http://bloggercrab.com/blogs/mmc/15861
http://bloggercrab.com/blogs/mmc/15862
http://bloggercrab.com/blogs/mmc/15863
http://bloggercrab.com/blogs/mmc/15864
http://bloggercrab.com/blogs/mmc/15865
http://bloggercrab.com/blogs/mmc/15866
http://bloggercrab.com/blogs/mmc/15867
http://bloggercrab.com/blogs/mmc/15868
http://bloggercrab.com/blogs/mmc/15869
http://bloggercrab.com/blogs/mmc/15870
http://bloggercrab.com/blogs/mmc/15871
http://bloggercrab.com/blogs/mmc/15872
http://bloggercrab.com/blogs/mmc/15873
http://bloggercrab.com/blogs/mmc/15874
http://bloggercrab.com/blogs/mmc/15875
http://bloggercrab.com/blogs/mmc/15876
http://bloggercrab.com/blogs/mmc/15877
http://bloggercrab.com/blogs/mmc/15878
http://bloggercrab.com/blogs/mmc/15879
http://bloggercrab.com/blogs/mmc/15880
http://bloggercrab.com/blogs/mmc/15881
http://bloggercrab.com/blogs/mmc/15882
http://bloggercrab.com/blogs/mmc/15883
http://bloggercrab.com/blogs/mmc/15884
http://bloggercrab.com/blogs/mmc/15885
http://bloggercrab.com/blogs/mmc/15886
http://bloggercrab.com/blogs/mmc/15887
http://bloggercrab.com/blogs/mmc/15888
http://bloggercrab.com/blogs/mmc/15889
http://bloggercrab.com/blogs/mmc/15890
http://bloggercrab.com/blogs/mmc/15891
http://bloggercrab.com/blogs/mmc/15892
http://bloggercrab.com/blogs/mmc/15893
http://bloggercrab.com/blogs/mmc/15894
http://bloggercrab.com/blogs/mmc/15895
http://bloggercrab.com/blogs/mmc/15896
http://bloggercrab.com/blogs/mmc/15897
http://bloggercrab.com/blogs/mmc/15898
http://bloggercrab.com/blogs/mmc/15899
http://bloggercrab.com/blogs/mmc/15900
http://bloggercrab.com/blogs/mmc/15901
http://bloggercrab.com/blogs/mmc/15902
http://bloggercrab.com/blogs/mmc/15903
http://bloggercrab.com/blogs/mmc/15904
http://bloggercrab.com/blogs/mmc/15905
http://bloggercrab.com/blogs/mmc/15906
http://bloggercrab.com/blogs/mmc/15907
http://bloggercrab.com/blogs/mmc/15908
http://bloggercrab.com/blogs/mmc/15909
http://bloggercrab.com/blogs/mmc/15910
http://bloggercrab.com/blogs/mmc/15911
http://bloggercrab.com/blogs/mmc/15912
http://bloggercrab.com/blogs/mmc/15913
http://bloggercrab.com/blogs/mmc/15914
http://bloggercrab.com/blogs/mmc/15915
http://bloggercrab.com/blogs/mmc/15916
http://bloggercrab.com/blogs/mmc/15917
http://bloggercrab.com/blogs/mmc/15918
http://bloggercrab.com/blogs/mmc/15919
http://bloggercrab.com/blogs/mmc/15920
http://bloggercrab.com/blogs/mmc/15921
http://bloggercrab.com/blogs/mmc/15922
http://bloggercrab.com/blogs/mmc/15923
http://bloggercrab.com/blogs/mmc/15924
http://bloggercrab.com/blogs/mmc/15925
http://bloggercrab.com/blogs/mmc/15926
http://bloggercrab.com/blogs/mmc/15927
http://bloggercrab.com/blogs/mmc/15928
http://bloggercrab.com/blogs/mmc/15929
http://bloggercrab.com/blogs/mmc/15930
http://bloggercrab.com/blogs/mmc/15931
http://bloggercrab.com/blogs/mmc/15932
http://bloggercrab.com/blogs/mmc/15933
http://bloggercrab.com/blogs/mmc/15934
http://bloggercrab.com/blogs/mmc/15935
http://bloggercrab.com/blogs/mmc/15936
http://bloggercrab.com/blogs/mmc/15937
http://bloggercrab.com/blogs/mmc/15938
http://bloggercrab.com/blogs/mmc/15939
http://bloggercrab.com/blogs/mmc/15940
http://bloggercrab.com/blogs/mmc/15941
http://bloggercrab.com/blogs/mmc/15942
http://bloggercrab.com/blogs/mmc/15943
http://bloggercrab.com/blogs/mmc/15944
http://bloggercrab.com/blogs/mmc/15945
http://bloggercrab.com/blogs/mmc/15946
http://bloggercrab.com/blogs/mmc/15947
http://bloggercrab.com/blogs/mmc/15948
http://bloggercrab.com/blogs/mmc/15949
http://bloggercrab.com/blogs/mmc/15950
http://bloggercrab.com/blogs/mmc/15951
http://bloggercrab.com/blogs/mmc/15952
http://bloggercrab.com/blogs/mmc/15953
http://bloggercrab.com/blogs/mmc/15954
http://bloggercrab.com/blogs/mmc/15955
http://bloggercrab.com/blogs/mmc/15956
http://bloggercrab.com/blogs/mmc/15957
http://bloggercrab.com/blogs/mmc/15958
http://bloggercrab.com/blogs/mmc/15959
http://bloggercrab.com/blogs/mmc/15960
http://bloggercrab.com/blogs/mmc/15961
http://bloggercrab.com/blogs/mmc/15962
http://bloggercrab.com/blogs/mmc/15963
http://bloggercrab.com/blogs/mmc/15964
http://bloggercrab.com/blogs/mmc/15965
http://bloggercrab.com/blogs/mmc/15966
http://bloggercrab.com/blogs/mmc/15967
http://bloggercrab.com/blogs/mmc/15968
http://bloggercrab.com/blogs/mmc/15969
http://bloggercrab.com/blogs/mmc/15970
http://bloggercrab.com/blogs/mmc/15971
http://bloggercrab.com/blogs/mmc/15972
http://bloggercrab.com/blogs/mmc/15973
http://bloggercrab.com/blogs/mmc/15974
http://bloggercrab.com/blogs/mmc/15975
http://bloggercrab.com/blogs/mmc/15976
http://bloggercrab.com/blogs/mmc/15977
http://bloggercrab.com/blogs/mmc/15978
http://bloggercrab.com/blogs/mmc/15979
http://bloggercrab.com/blogs/mmc/15980
http://bloggercrab.com/blogs/mmc/15981
http://bloggercrab.com/blogs/mmc/15982
http://bloggercrab.com/blogs/mmc/15983
http://bloggercrab.com/blogs/mmc/15984
http://bloggercrab.com/blogs/mmc/15985
http://bloggercrab.com/blogs/mmc/15986
http://bloggercrab.com/blogs/mmc/15987
http://bloggercrab.com/blogs/mmc/15988
http://bloggercrab.com/blogs/mmc/15989
http://bloggercrab.com/blogs/mmc/15990
http://bloggercrab.com/blogs/mmc/15991
http://bloggercrab.com/blogs/mmc/15992
http://bloggercrab.com/blogs/mmc/15993
http://bloggercrab.com/blogs/mmc/15994
http://bloggercrab.com/blogs/mmc/15995
http://bloggercrab.com/blogs/mmc/15996
http://bloggercrab.com/blogs/mmc/15997
http://bloggercrab.com/blogs/mmc/15998
http://bloggercrab.com/blogs/mmc/15999
http://bloggercrab.com/blogs/mmc/16000
http://bloggercrab.com/blogs/mmc/16001
http://bloggercrab.com/blogs/mmc/16002
http://bloggercrab.com/blogs/mmc/16003
http://bloggercrab.com/blogs/mmc/16004
http://bloggercrab.com/blogs/mmc/16005
http://bloggercrab.com/blogs/mmc/16006
http://bloggercrab.com/blogs/mmc/16007