Cruisers Forum
 

Go Back   Cruisers & Sailing Forums > Seamanship, Navigation & Boat Handling > OpenCPN
Cruiser Wiki Click Here to Login
Register Vendors FAQ Community Calendar Today's Posts Log in

Reply
  This discussion is proudly sponsored by:
Please support our sponsors and let them know you heard about their products on Cruisers Forums. Advertise Here
 
Thread Tools Search this Thread Rate Thread Display Modes
Old 04-01-2011, 10:05   #16
Registered User
 
HappySeagull's Avatar

Join Date: Dec 2010
Location: B.C.,Canada
Boat: 29'
Posts: 2,423
Quote:
Originally Posted by GPS-Marco View Post
Maybe KapGen can help you. At least the readme of kapgen (MCE66 - Software) can give you some ideas.

For example, regarding UTM:

Code:
   TRANSVERSE MERCATOR:
Lat0 is 0. If the map is in Transverse Mercator just leave
MapCal-II to calculate Lon0. If the Map is in Universal Transverse
Mercator (UTM) you must read the Fuse or Zone (1 to 60), then calculate
Lon0 = Fuse*6-183. Ex. Zone=15 -> Lon0 = 15*6-183 = -93 (93°W)
Ciao, Marco.
Hi,Marcos.The info is great but sadly,KapGen stumbles where it wants a checksum (MD5)...I'm guessing this'd be derived from a downloaded map but mine are not.Certainly MapCal ain'tgenerating one for me!
Excuse my venting here but,
In all this,it's too bad MapCal_2 and any other calibrators won't work with an original tif in the first place...all this converting!bmps,pngs,tifs...bsb,map,hdr,kap...wpt, gpx,etc etc.I appreciate that Developers want to keep proprietorship of format as their payoff and all but sometimes it almost seems as if the challenge of hacking and converting is intended to distract you more-capable engineers. ...re:Cellphones crushed by iphones because the other phones Wouldn't let people play mp3s on em or download apps as a for-instance.

Frustrating too,because gps on a chart is just an automatic cursor(a Mouse) on an xy graphic,right?
HappySeagull is offline   Reply With Quote
Old 04-01-2011, 12:24   #17
Registered User

Join Date: Sep 2009
Location: Rome
Posts: 320
Quote:
Originally Posted by HappySeagull View Post
Frustrating too,because gps on a chart is just an automatic cursor(a Mouse) on an xy graphic,right?
... well, GPS gives you a lat/lon (referred to a map-datum). Geographical projection is the way to map (to project) a given lat/lon over an x/y. Not that simple, unfortunately...

I mentioned KapGen just to give you some info about UTM charts and how to calculate meridian of projection.

You can use KapGen+MapCal to calibrate maps, but this is another story...

Ciao, Marco.
GPS-Marco is offline   Reply With Quote
Old 04-01-2011, 13:07   #18
Obsfucator, Second Class
 
dacust's Avatar

Join Date: Feb 2008
Location: Southeast USA.
Boat: 1982 Sea Ray SRV360
Posts: 1,745
Quote:
Originally Posted by HappySeagull View Post
...
Excuse my venting here but,
In all this,it's too bad MapCal_2 and any other calibrators won't work with an original tif in the first place...all this converting!bmps,pngs,tifs...bsb,map,hdr,kap...wpt, gpx,etc etc.I appreciate that Developers want to keep proprietorship of format as their payoff and all but sometimes it almost seems as if the challenge of hacking and converting is intended to distract you more-capable engineers. ...re:Cellphones crushed by iphones because the other phones Wouldn't let people play mp3s on em or download apps as a for-instance.
...
Actually, they would have to write separate code to handle each different graphics type. So, instead, they wrote one or two and then let existing more complicated code be used to convert from all those types to ones they coded for.

As to making it easy, we spent just a few weeks putting together the mapcal - imagemagick - mc2bsbh - tif2bsb solution good enough for an advanced user to make it work. It could take months and months to enhance that so it is a polished simple to use system. Maybe years. It would be complicated enough just to write an install program to look at what you have on your system, install the missing pieces and insure that the paths are correct so everything can be found at run time. And then people will complain if you don't make it automatically work on each and every platform out there.

When enough programmers come along with the desire to do that, then you can have it. But until that, you are stuck with the somewhat complicated way we have now.

People that aren't programmers often have a hard time realizing just how much work goes into a simple piece of code. mc2bsbh really does nothing but take a text file in one format and convert it to another format. That's all it does. I spent about 40 hours on it. Then several other programmers spent more than that enhancing it. So, 80-100 hours for one little simple program. There are probably thousands of hours that have gone into OpenCPN.

-dan
dacust is offline   Reply With Quote
Old 04-01-2011, 16:01   #19
Registered User
 
HappySeagull's Avatar

Join Date: Dec 2010
Location: B.C.,Canada
Boat: 29'
Posts: 2,423
Hey,and I Absolutely appreciate it.I'm just whining.
The multitude of formats....If I get your drift,they are based on the bmp,the wav,the avi and so on in Windows (or whatever depending on the os).And then,RealAudio or the CHS for that matter, builds something on it for its perfectly good purpose...sure.But down the road,trying to read ALL the formats -well,I DO appreciate the work that goes into it.Just Looking at code stuns me.Thank you for mc2bsbh!I had NO possibility of accessing my kaps and bsbs without it and MapCal_2 and tiff2bsb.
But it is a pain,all these formats.Today,I'm a little angry because I can't get some of my notes and stuff from Nobletec Marks without one-fingered typing.It does export em sort of.They do convert,sort of.But it was so easy puttin' em in!
HappySeagull is offline   Reply With Quote
Old 04-01-2011, 18:28   #20
Obsfucator, Second Class
 
dacust's Avatar

Join Date: Feb 2008
Location: Southeast USA.
Boat: 1982 Sea Ray SRV360
Posts: 1,745
Quote:
Originally Posted by HappySeagull View Post
Hey,and I Absolutely appreciate it.I'm just whining.
The multitude of formats....If I get your drift,they are based on the bmp,the wav,the avi and so on in Windows (or whatever depending on the os).And then,RealAudio or the CHS for that matter, builds something on it for its perfectly good purpose...sure.But down the road,trying to read ALL the formats -well,I DO appreciate the work that goes into it.Just Looking at code stuns me.Thank you for mc2bsbh!I had NO possibility of accessing my kaps and bsbs without it and MapCal_2 and tiff2bsb.
But it is a pain,all these formats.Today,I'm a little angry because I can't get some of my notes and stuff from Nobletec Marks without one-fingered typing.It does export em sort of.They do convert,sort of.But it was so easy puttin' em in!
Yep. I get frustrated as well. I was looking for a way to create KAPs for about 5 years. Periodically I would go on another treasure hunt looking for a way, only to be annoyed yet again.

Then out of the blue, Marco revealed that he understood something about CHARTCAL.DIR and what the header should look like for tif2bsb. Then COOL, all the pieces fell together.

We will eventually come up with a way to do it better. The gdal approach is looking good to maybe have a automatic way to convert GeoTiffs.

We just need a good open source georeferencing tool that we can integrate into a jobstream and create charts easily.

I envision a referencing tool that can import an image, convert it to a single type for referencing, then, after the hand work of referencing, based on the original type, do the conversions, create the header and then the KAP, all with the click of one button.

We'll get there. Someday.

-dan
dacust is offline   Reply With Quote
Old 05-01-2011, 09:44   #21
Registered User
 
HappySeagull's Avatar

Join Date: Dec 2010
Location: B.C.,Canada
Boat: 29'
Posts: 2,423
Quote:
Originally Posted by GPS-Marco View Post
... well, GPS gives you a lat/lon (referred to a map-datum). Geographical projection is the way to map (to project) a given lat/lon over an x/y. Not that simple, unfortunately...

I mentioned KapGen just to give you some info about UTM charts and how to calculate meridian of projection.

You can use KapGen+MapCal to calibrate maps, but this is another story...

Ciao, Marco.
MARCO!It works!("Of course it does!" you are fuming)The checksum was a hurdle...but Cagney mentioned I needed a better editor than Notepad so I got one,found a checksum and after a few struggles up the rocky slope...IE:I started calibrating a BMP ?instead of a PNG...anyways,I eventually got to this:
************************************************
* KapGen: converting images maps to BSB format *
* By Marco Certelli. Use at your own risk *
************************************************
Enter command [ -h | -l | -q | MAP ]: SecretCove
Create SECRETCOVE.hdr
Conversion of img\SecretCove.PNG into img\SecretCove.tif OK
ERROR: This SecretCove.hdr cannot be used with SecretCove.PNG for a MD5 mismatch!
Maybe Img/SecretCove.PNG is older or newer than calibration data
Obtain a new file (if older) or calibrate this one (if newer)
Calibration\SecretCove.png is Ready. Use MapCal-II for update CHARTCAL.DIR
After calibration, put following MD5 in CHARTCAL.DIR, section [SecretCove.png]
9d532f26a3c5e85d7217ca440f0902de *SecretCove.png

So,after alittle notepadding of CHARTCAL.DIR (no way I'm going to calibrate again)

Enter command [ -h | -l | -q | MAP ]: SecretCove
Create SECRETCOVE.hdr
Conversion of img\SecretCove.PNG into img\SecretCove.tif OK
MD5 Verified! Header calibration data apply to SecretCove.PNG
TIFFReadDirectory: Warning, img\SecretCove.tif: invalid TIFF directory; tags are not sorted in ascending order.
SUCCESS! New map SecretCove.kap is stored in BSB\ folder.
MAP copyright (source image & calibration data):
Enter command [ -h | -l | -q | MAP ]:

I mean,it's a little hard to interpret errors after trying to follow the recipe exactly over and over...ie:I didn't make the tif so how could it be in wrong directory?but hey!who cares?there's the kap!
Thanks!
ps:it's wonderfully verbose!I like how it offers a new checksum and gives a clue what to do with it!
HappySeagull is offline   Reply With Quote
Old 05-01-2011, 10:28   #22
Registered User

Join Date: Sep 2009
Location: Rome
Posts: 320
Great!

The tif is generated by KapGen automatically. The error you get is from tif2bsb that does not like completely the tif as generated by KapGen (well, the real conversion tool is nconvert.exe in bin/ folder that is a command line tool from XnView package). But anyway the kap should work fine.

Can you please post the CHARTCAL.DIR so I can tell you if there is something to improve? (you can attach any file to a forum post if the extention is .doc so just zip it and call it chartcal.zip.doc)

Actually the MD5 can be put in the MapCal "OtherInformation" box without opening chartcal.dir with a text editor (see the shot)

Ciao, Marco.
Attached Thumbnails
Click image for larger version

Name:	S1.png
Views:	165
Size:	29.9 KB
ID:	22570  
GPS-Marco is offline   Reply With Quote
Old 05-01-2011, 10:44   #23
Registered User
 
HappySeagull's Avatar

Join Date: Dec 2010
Location: B.C.,Canada
Boat: 29'
Posts: 2,423
Quote:
Originally Posted by GPS-Marco View Post
Great!

The tif is generated by KapGen automatically. The error you get is from tif2bsb that does not like completely the tif as generated by KapGen (well, the real conversion tool is nconvert.exe in bin/ folder that is a command line tool from XnView package). But anyway the kap should work fine.

Can you please post the CHARTCAL.DIR so I can tell you if there is something to improve? (you can attach any file to a forum post if the extention is .doc so just zip it and call it chartcal.zip.doc)

Actually the MD5 can be put in the MapCal "OtherInformation" box without opening chartcal.dir with a text editor (see the shot)

Ciao, Marco.
[SECRETCOVE.PNG]
NA=SecretCove
FN=SecretCove.PNG
GR=0
PY=1
QU=0
SC=10000
BC=4
B1=49.5504641228834,-123.992592665809
B2=49.5090488717579,-123.992628972678
B3=49.5090352668233,-123.93979114859
B4=49.5504532544375,-123.939750651109
CC=4
C1=574,1921,49.533158333333,-123.984716666667
C2=575,3766,49.516491666667,-123.984716666667
C3=2978,3765,49.516491666667,-123.951383333333
C4=2976,1921,49.533158333333,-123.951383333333
GD=WGS84
NU=11
PR=1
DS=0,0
WI=3819
HE=4595
DX=1
DY=1
LAT0=0
LON0=0
DT=0
LATS=0
LATN=0
DU=1
PC=0
CR=MD5SUM 9d532f26a3c5e85d7217ca440f0902de *SecretCove.png
IMGMOD SecretCove.PNG
HappySeagull is offline   Reply With Quote
Old 05-01-2011, 11:07   #24
Registered User
 
HappySeagull's Avatar

Join Date: Dec 2010
Location: B.C.,Canada
Boat: 29'
Posts: 2,423
Quote:
Originally Posted by GPS-Marco View Post
Great!
etc...
Actually the MD5 can be put in the MapCal "OtherInformation" box without opening chartcal.dir with a text editor (see the shot)

Ciao, Marco.
ThePost above is from CHARTCAL.DIR in Calibration folder(I renamed the original to start because it saved scrolling down to see what was happening.But this is the one per my previous post.I DID edit it in Notepad after my first attempt you saw in that post to get the second "good" result...
Oh,Yes,Marco.I did use the MapCal comment box the first time entering a checksum that HXD made for me.Then KapGen came back with the NEW checksum you see in theCHARTCAL.DIR

The DIFFICULTY is the checksum thing in the first place.Who needs it?I mean,I'm twisting your original purpose to my own simpler ends(apology) but I couldn't care less about updating and checksums I just want to calibrate a picture for OpenCPN.
HappySeagull is offline   Reply With Quote
Old 05-01-2011, 11:19   #25
Registered User

Join Date: Sep 2009
Location: Rome
Posts: 320
Very well!

Now if you want to exploit the full "power" of KapGen, you can also leave Kapgen to:
- download image file (if it can be downloaded straight from a URL)
- convert any format to png/tiff and reduce number of colours (if needed)
- add missing KAP information (like date of last update)
- etc.

the core is the CR= field. This is one of mine:

Code:
CR=BSBHDR CED/SE=2008,RE=218,ED=12/24/2010
 BSBHDR KNP/SD=LOWEST ASTRONOMICAL TIDE
 MD5SUM 73876a51122fa44291f4aa35d7ffeb8d
 GETMAP http://charts.linz.govt.nz/tifs/nz6142.tif
 IMGMOD nz6142.tif 0 216 6078 7650 5996
 WARNING! Not to be used for navigation.
 MAPCPR Sourced from Land Information New Zealand data. Crown Copyright Reserved.
 CALCPR Calibration by Marco Certelli. Free for PERSONAL (non-commercial) use only.
Note the space in front of all the lines after CR=
Note also that the CR field is just the "Other Information" box in MapCal, so you can manage CR field from there...

For the meaning of all the lines, plaese read the KapGen readme.

Actually I've extensively used kapgen for charts that were already in tif format. If you have suggestions to simplify the handling of non tif images, let me know.

Ciao, Marco.
GPS-Marco is offline   Reply With Quote
Old 05-01-2011, 11:27   #26
Registered User

Join Date: Sep 2009
Location: Rome
Posts: 320
Quote:
Originally Posted by HappySeagull View Post
ThePost above is from CHARTCAL.DIR in Calibration folder(I renamed the original to start because it saved scrolling down to see what was happening.But this is the one per my previous post.I DID edit it in Notepad after my first attempt you saw in that post to get the second "good" result...
Oh,Yes,Marco.I did use the MapCal comment box the first time entering a checksum that HXD made for me.Then KapGen came back with the NEW checksum you see in theCHARTCAL.DIR

The DIFFICULTY is the checksum thing in the first place.Who needs it?I mean,I'm twisting your original purpose to my own simpler ends(apology) but I couldn't care less about updating and checksums I just want to calibrate a picture for OpenCPN.
KapGen is intended to manage chart calibrations in a structured manner. Since charts may be updated by the hydrographic service owner keeping the original file name, it is vital that a calibration made on a chart cannot be used on a different (updated) chart without at least a warning. The MD5 assures that the "calibrator" cannot unintentionally use calibration data made on a chart on a different one.

Ciao, Marco.
GPS-Marco is offline   Reply With Quote
Old 05-01-2011, 11:55   #27
Registered User
 
HappySeagull's Avatar

Join Date: Dec 2010
Location: B.C.,Canada
Boat: 29'
Posts: 2,423
Quote:
Originally Posted by GPS-Marco View Post
KapGen is intended to manage chart calibrations in a structured manner. Since charts may be updated by the hydrographic service owner keeping the original file name, it is vital that a calibration made on a chart cannot be used on a different (updated) chart without at least a warning. The MD5 assures that the "calibrator" cannot unintentionally use calibration data made on a chart on a different one.

Ciao, Marco.
Is there a way to cancel all that?
a command I can use to stop the md5 requirement?
HappySeagull is offline   Reply With Quote
Old 08-01-2011, 07:43   #28
Registered User

Join Date: Aug 2010
Posts: 5
Here is the chart header of a CHS chart that I would like to run in OpenCPN. While the main chart shows up fine I would like to get the inserts working. So far in the thread I cannot see where the bug is:
!Copyright NDI/CHS 1996-2000. All Rights Reserved.
CHT/NA=ALBERNI INLET,NU=3668
CHF/APPROACH
CED/SE=0000,RE=06,ED=04/07/2000
NTM/NE=20030912,ND=09/26/2003
VER/3.07
CRR/ELECTRONIC CERTIFICATE OF CHART AUTHENTICITY. This chart was produced by
NDI under agreement with Her Majesty in Right of Canada with authorization
and certification for release by the Canadian Hydrographic Service (CHS).
"digital ocean" is a registered trademark of Nautical Data International,
Inc.
CHK/4,366801,366802,366803,366804
ORG/CHS
MFR/NDI
K01/NA=ALBERNI INLET,NU=366801,TY=BASE,FN=366801.kap
K02/NA=PORT ALBERNI,NU=366802,TY=INSET,FN=366802.kap
K03/NA=ROBBERS PASSAGE,NU=366803,TY=INSET,FN=366803.kap
K04/NA=ENTRANCE TO/ENTRÉE A USELESS INLET,NU=366804,TY=INSET,FN=366804.kap
N003668010001/RT=N,KN=366801,CA=MainTitleBlock,DE=Title Information
P1=2278,1916,P2=800,1916,P3=800,376,P4=2278,376
N003668010002/RT=N,KN=366801,CA=TidesCurrents,DE=Tidal Information,P1=2264,2336
P2=832,2336,P3=832,1968,P4=2264,1968
N003668010003/RT=N,KN=366801,CA=TidesCurrents,DE=Current Velocities Info
P1=2260,2672,P2=832,2672,P3=832,2342,P4=2260,2342
N003668010004/RT=N,KN=366801,CA=Cables,DE=Cable Info,P1=2264,3086,P2=838,3086
P3=838,2672,P4=2264,2672
N003668010005/RT=N,KN=366801,CA=VesselTrafficServices,DE=Vessel Traffic Info
P1=2264,3322,P2=834,3322,P3=834,3078,P4=2264,3078
N003668010006/RT=N,KN=366801,CA=ConversionTable,DE=Conversion Table
P1=2258,3552,P2=844,3552,P3=844,3322,P4=2258,3322
N003668010007/RT=N,KN=366801,CA=SourceClassification
DE=Source Classification
Info,P1=2510,4984,P2=586,4984,P3=586,3598
P4=2510,3598
N003668010008/RT=N,KN=366801,CA=ScaleBar,DE=Scale Bar,P1=7760,9112,P2=5820,9112
P3=5820,8872,P4=7760,8872
N003668020009/RT=N,KN=366802,CA=MainTitleBlock,DE=Title Information,P1=982,353
P2=394,353,P3=394,145,P4=982,145
N003668020010/RT=N,KN=366802,CA=ScaleBar,DE=Scale Bar,P1=1226,489,P2=134,489
P3=134,325,P4=1226,325
N003668030011/RT=N,KN=366803,CA=MainTitleBlock,DE=Title Information,P1=1857,441
P2=1119,441,P3=1119,243,P4=1857,243
N003668030012/RT=N,KN=366803,CA=ScaleBar,DE=Scale Bar,P1=1901,557,P2=1103,557
P3=1103,451,P4=1901,451
N003668040013/RT=N,KN=366804,CA=MainTitleBlock,DE=Title Information,P1=1179,356
P2=125,356,P3=125,120,P4=1179,120
N003668040014/RT=N,KN=366804,CA=ScaleBar,DE=Scale Bar,P1=997,452,P2=185,452
P3=185,348,P4=997,348
N003668010015/RT=L,KN=366801,LK=N003668010005,DE=Vessel Traffic Info
P1=7551,3361
N003668010016/RT=L,KN=366801,LK=N003668010005,DE=Vessel Traffic Info
P1=6655,6052
N003668010017/RT=L,KN=366801,LK=N003668010005,DE=Vessel Traffic Info
P1=3508,9073
Help
John
Paradocs is offline   Reply With Quote
Old 08-01-2011, 08:13   #29
Registered User

Join Date: Dec 2005
Location: Helsingborg
Boat: Dufour 35
Posts: 3,891
Paradocs
It looks like you have copied the "bsb" file to your post. The bsb files are not used by OpenCPN, only the kap files are used.

You can see the corresponding kap files here
Quote:
CHK/4,366801,366802,366803,366804
Where 366801 is the "big" chart and the others are he inserts.
None of these charts are Polyconic so they will show up if you have them. Works OK for me.

Thomas
cagney is offline   Reply With Quote
Old 10-01-2011, 09:53   #30
Registered User
 
HappySeagull's Avatar

Join Date: Dec 2010
Location: B.C.,Canada
Boat: 29'
Posts: 2,423
Quote:
Originally Posted by cagney View Post
Luckily I actually had a few Canadian charts, and found about 65 Polyconical BC charts.
First, in OpenCPN 1.3.6 Polyconical charts were treated as Mercator charts and displayed OK.
With 2.1.0 came "quilting" and problems connected with this.
Polyconical charts came up when BlueGillBoy had problems quilting Polyconical US Raster Charts covering the Great Lake Area. These Charts are BSB ver 3, and works fine with OpenCPN 2.3.1. I'm sure that Dave did not know about these Canadian charts. I was unaware of their existence until yesterday. One reason for this is that these charts earlier was treated as Mercator, so the problem was hided.
Just changing the PR and PP vales n the header brings these charts back up as Mercator charts. So it's a bug in the handling of these Polyconical charts.
I also found another "hidden problem" among the Canadian BC charts.
The charts 344102.KAP ,344101.KAP and344001.KAP have the prjection type "PR=UTM". The code is only looking for the word "TRANSVERSE" when classifying a chart as a TMERC, hence these charts are then classified as mercator. They don't show up at all because with UTM the PP value is the longitude and with Mercator it is the latitude(simplyfied). Guess what happens with a latitude of -128 !!
So these are clearly bugs and I have entered them in the tracker as#325 and #326.



In my mind this is making a strait forward thing really complicated, and creating a "crap" header in the process.
I have published a script,link on this page Chart Formats | Official OpenCPN Homepage, that directly converts an ozi map + pic to a kap. It may need some tweaking for windows, but works really well for me on Linux.

The roundabout way of creating a header file via MapCal etc obviously has its pitfalls. In the end the user must be able to judge the header file anyway.
In your case for example you get these unreasonable values.
DU=0 ,don't think so! Available from "tiffinfo" for example
PP=UNKNOWN , anyone can do better than that!
UN=UNKNOWN , published on any chart
SD=UNKNOWN, published on most charts

To fix these charts now, and not wait for a bugfix release:
Polyconical: Change PR to MERCATOR in a binary/hex editor.
Set PP to ~ the middle latitde of the chart
Run "bsbfix" on the edited file.
Don't expect perfect quilting with these charts

UTM:Change UTM to "TRANSVERSE MERCATOR" , run bsbfix as above.
These charts will not quilt.

Then run "Force full database rebuild" to make sure the changes reaches the chart database.

Thomas
I can confirm this behaviour with UTM charts as well,Thomas.I get an Opencpn Error with these and it "must shut down".something to do with "msvcr70.dll"
HappySeagull is offline   Reply With Quote
Reply

Tags
charts


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Version 2.3.0 Will Not Open Streamsta OpenCPN 2 20-12-2010 01:57
Pilot Charts Now Available as Digital Charts cagney OpenCPN 21 11-09-2010 13:29
For Sale: Maxsea Time Zero Navigator + AIS module + East Coast Australia Charts + All US Charts TrevC Classifieds Archive 10 28-07-2010 09:05
Looking for open concept TeddyBear Monohull Sailboats 0 25-06-2010 01:07

Advertise Here


All times are GMT -7. The time now is 15:44.


Google+
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Social Knowledge Networks
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

ShowCase vBulletin Plugins by Drive Thru Online, Inc.