Matrix Games Forums

Forums  Register  Login  Photo Gallery  Member List  Search  Calendars  FAQ 

My Profile  Inbox  Address Book  My Subscription  My Forums  Log Out

RE: Fixing some problems with 0.5a

 
View related threads: (in this forum | in all forums)

Logged in as: Guest
Users viewing this topic: none
  Printable Version
All Forums >> [Current Games From Matrix.] >> [World War II] >> War In The Pacific - Struggle Against Japan 1941 - 1945 >> RE: Fixing some problems with 0.5a Page: <<   < prev  1 2 [3] 4 5   next >   >>
Login
Message << Older Topic   Newer Topic >>
RE: Fixing some problems with 0.5a - 1/1/2008 2:51:13 PM   
Yava


Posts: 2129
Joined: 7/21/2006
From: Poland/Kolobrzeg
Status: offline

quote:

ORIGINAL: Woos

A new version (0.5a) is available from http://extweb.retsiemuab.de/witp/witpdecoder0.5a.zip . It is the whole zip file (and not only the jar) since I also included a new version of hsqldb.jar (although that didn't help with the Load Batch problem)).

Fixed:

  • CHS 157/158 problem: Now witpDecoder simply uses 127 as durability and warns you about it.
  • Scenario 2 & 5: Missing HQs for Airgroups are now allowed, so the scenarios should load. Be aware that if all planes of one type have missing HQs, they will only show in the "AC classes" tab if "All nationalities" are selected.
  • Load Batch might now work. I could reproduce Martti's problems with the Allies and "fixed" it by increasing the checkpoint frequency. Of course that is not really a fix but it seems to work now.
  • On special request from VSWG the numbers of Ships Available/Building/Sunk are now listed per class in the "Ship classes" tab. Note that for witpdecoder each update is an own class, so to see all ship, select the "All" choice for "Availability". Otherwise you will not see ships building for future updates and (once you have updated) won't see ships of out-of-date classes anymore.





And so it works

_____________________________


Art by Dixie.

(in reply to Woos)
Post #: 61
RE: witpDecoder 0.5 released - 1/1/2008 10:06:46 PM   
kfmiller41


Posts: 1063
Joined: 3/25/2003
From: Saint Marys, Ga
Status: offline
could someone please post or explain how to get a password set up in wipdecoder please. I am having trouble with it for some reason

_____________________________

You have the ability to arouse various emotions in me: please select carefully.

(in reply to VSWG)
Post #: 62
RE: witpDecoder 0.5 released - 1/1/2008 10:47:08 PM   
Nomad


Posts: 5905
Joined: 9/5/2001
From: West Yellowstone, Montana
Status: offline
try this Ken

echo off
REM java -Djava.library.path=%CD% -jar witpdecoder2.jar PasswordHere
java -Djava.library.path=. -jar witpdecoder2.jar password

Also note, you can not use a password on the turn I sent. You will need to open
the game file, setting your password, and then save it to a slot. You can then use
the saved file. the file I sent will NOT have your password in it yet - next turn it
will and you can use it.

_____________________________


(in reply to kfmiller41)
Post #: 63
RE: witpDecoder 0.5 released - 1/1/2008 11:04:55 PM   
kfmiller41


Posts: 1063
Joined: 3/25/2003
From: Saint Marys, Ga
Status: offline
worked for my other game as allies, thanks a bunch



_____________________________

You have the ability to arouse various emotions in me: please select carefully.

(in reply to Nomad)
Post #: 64
RE: Fixing some problems with 0.5a - 1/2/2008 1:26:30 PM   
VSWG


Posts: 3432
Joined: 5/31/2006
From: Germany
Status: offline

quote:

ORIGINAL: Woos

A new version (0.5a) is available from http://extweb.retsiemuab.de/witp/witpdecoder0.5a.zip . It is the whole zip file (and not only the jar) since I also included a new version of hsqldb.jar (although that didn't help with the Load Batch problem)).

Fixed:

  • CHS 157/158 problem: Now witpDecoder simply uses 127 as durability and warns you about it.
  • Scenario 2 & 5: Missing HQs for Airgroups are now allowed, so the scenarios should load. Be aware that if all planes of one type have missing HQs, they will only show in the "AC classes" tab if "All nationalities" are selected.
  • Load Batch might now work. I could reproduce Martti's problems with the Allies and "fixed" it by increasing the checkpoint frequency. Of course that is not really a fix but it seems to work now.
  • On special request from VSWG the numbers of Ships Available/Building/Sunk are now listed per class in the "Ship classes" tab. Note that for witpdecoder each update is an own class, so to see all ship, select the "All" choice for "Availability". Otherwise you will not see ships building for future updates and (once you have updated) won't see ships of out-of-date classes anymore.



Thank you very much!

_____________________________


(in reply to Woos)
Post #: 65
RE: witpDecoder 0.5 released - 1/2/2008 1:37:47 PM   
VSWG


Posts: 3432
Joined: 5/31/2006
From: Germany
Status: offline

quote:

ORIGINAL: Eskil

It is working now as well apart from tab with historical ship movement but that is most likely due to user error. This information is only available once you have loaded multiple save files, right?

Yes.

quote:

If this is the case, what's a good strategy to handle to the save slots? I read somewhere that you get get auto saves weekly and daily, are these overwritten or renamed so you can use those?

I guess it doesn't matter if you're using an auto save slot or a regular slot. However, you must load every single turn into witpdecoder in order to make full use of the ship movement tab. You can do this manually, or use the batch load feature, but you need a save for every turn.

_____________________________


(in reply to Eskil)
Post #: 66
RE: witpDecoder 0.5 released - 1/2/2008 3:16:38 PM   
Eskil

 

Posts: 25
Joined: 9/19/2004
Status: offline

quote:

ORIGINAL: VSWG


quote:

ORIGINAL: Eskil

If this is the case, what's a good strategy to handle to the save slots? I read somewhere that you get get auto saves weekly and daily, are these overwritten or renamed so you can use those?

I guess it doesn't matter if you're using an auto save slot or a regular slot. However, you must load every single turn into witpdecoder in order to make full use of the ship movement tab. You can do this manually, or use the batch load feature, but you need a save for every turn.


Right.. Perhaps something to use in a larger scenario in that case..

/Eskil

(in reply to VSWG)
Post #: 67
RE: witpDecoder 0.5 released - 1/6/2008 7:14:32 AM   
FeurerKrieg


Posts: 3397
Joined: 6/15/2005
From: Denver, CO
Status: offline
Does WITPDecorder care whether a turn has been ended or not? I'd like batch in all my old turns, but the files I have are the ones that I email off to my opponent.

Thanks

_____________________________


Upper portion used with permission of www.subart.net, copyright John Meeks

(in reply to Eskil)
Post #: 68
RE: witpDecoder 0.5 released - 1/6/2008 1:18:43 PM   
Woos

 

Posts: 683
Joined: 6/5/2005
From: Germany
Status: offline
In principle it should work. But I never tried it. You should get something similar to as if you read in a save game you saved directly before turn execution in an AI game. And that works.

(in reply to FeurerKrieg)
Post #: 69
RE: witpDecoder 0.5 released - 1/6/2008 1:19:40 PM   
Mistmatz

 

Posts: 1399
Joined: 10/16/2005
Status: offline
I believe the decoder uses WitPload to extract data in csv format from the scenario files. Those files are then used for setting up a database on top of which the turns are loaded.

Unfortunately RHS scenario 070 is not converted correctly by WitPload and setting up the database is not working therefore. This can easily be seen when the 'delay' fields are checked, most of them are wrong, although the format (yymmdd) is correct.
El Cid guided me to WitPExcel which generates a single huge file with all the data and the entries seem to be correct.

I was now thinking if it would be possible to input a fileset (csv) into the decoder that I extract more or less manually from the WitPExcel database rather than using the standard method. Would this be possible?

(in reply to FeurerKrieg)
Post #: 70
RE: witpDecoder 0.5 released - 1/6/2008 11:14:40 PM   
Woos

 

Posts: 683
Joined: 6/5/2005
From: Germany
Status: offline
quote:

ORIGINAL: Mistmatz
I believe the decoder uses WitPload to extract data in csv format from the scenario files. Those files are then used for setting up a database on top of which the turns are loaded.

Correct.

quote:


I was now thinking if it would be possible to input a fileset (csv) into the decoder that I extract more or less manually from the WitPExcel database rather than using the standard method. Would this be possible?

Yes, albeit it sounds like a lot of work. Although I guess if it is really a problem of witpload your approach is the only way to resolve it since I doubt witpload will be fixed so it also works with all mods. But you can of course ask.
Otherwise follow the "remove witpload.exe" approach described in section 3.3 of the doc to load the hand generated .csv files into witpDecoder.


< Message edited by Woos -- 1/6/2008 11:16:20 PM >

(in reply to Mistmatz)
Post #: 71
RE: witpDecoder 0.5 released - 1/7/2008 1:18:25 AM   
Historiker


Posts: 4742
Joined: 7/4/2007
From: Deutschland
Status: offline
quote:

Could not create or initialize the database

java.syl.SQLException: bad TEXT table source file - line number: 271
java.lang.NumberFOrmatException For input string: "MG" in statement [
SET TABLE WITPDEV SOURCE "WITPdec.csv;ignore_first=true"]

what to do?


_____________________________

Without any doubt: I am the spawn of evil - and the Bavarian Beer Monster (BBM)!

There's only one bad word and that's taxes. If any other word is good enough for sailors; it's good enough for you. - Ron Swanson

(in reply to Woos)
Post #: 72
RE: witpDecoder 0.5 released - 1/7/2008 2:25:51 AM   
Woos

 

Posts: 683
Joined: 6/5/2005
From: Germany
Status: offline
> java.lang.NumberFOrmatException For input string: "MG" in statement [
> SET TABLE WITPDEV SOURCE "WITPdec.csv;ignore_first=true"]

Did you type that by hand? Because normally the file is called WITPdev.csv, not WITPdec.csv.

If that is not the problem, you have most probably some device name with an apostrophe (') in it without proper inclusion in double quotes (i.e. not following the proper .csv way). Should be around line 271 in the file and have an MG in it. You can solve it by editing the csv file to either put quotes around the name or remove the apostrophe. Then follow the "remove witpload.exe" from section 3.3 in the documentation.

(in reply to Historiker)
Post #: 73
RE: witpDecoder 0.5 released - 1/7/2008 4:18:39 AM   
Nomad


Posts: 5905
Joined: 9/5/2001
From: West Yellowstone, Montana
Status: offline
I am not sure what senario you are using Historiker, but I had a simular problem with a file I made and used things like 3" mortar. It really confuses things in the CSV file. To me, it looks like you have something like .5" MG in your device table.

_____________________________


(in reply to Woos)
Post #: 74
RE: witpDecoder 0.5 released - 1/7/2008 3:54:22 PM   
Historiker


Posts: 4742
Joined: 7/4/2007
From: Deutschland
Status: offline
I wanted to use it for 075 RHS EOS
I used the database editor to change the 271 and removed the " " in it.
Now this message is coming:




Attachment (1)

_____________________________

Without any doubt: I am the spawn of evil - and the Bavarian Beer Monster (BBM)!

There's only one bad word and that's taxes. If any other word is good enough for sailors; it's good enough for you. - Ron Swanson

(in reply to Nomad)
Post #: 75
RE: witpDecoder 0.5 released - 1/7/2008 5:11:33 PM   
Nomad


Posts: 5905
Joined: 9/5/2001
From: West Yellowstone, Montana
Status: offline
As far as I know, WitPDecoder will not work with RHS. It doesn't like circular paths in the upgrades or something.

But, you can look up ship class 800 with the editor and see. Most likely it points to an undefined ship class slot - just change it to point to itself and try again.

< Message edited by Nomad -- 1/7/2008 5:12:26 PM >


_____________________________


(in reply to Historiker)
Post #: 76
RE: witpDecoder 0.5 released - 1/7/2008 5:16:28 PM   
Mistmatz

 

Posts: 1399
Joined: 10/16/2005
Status: offline

quote:

ORIGINAL: Historiker

I wanted to use it for 075 RHS EOS
I used the database editor to change the 271 and removed the " " in it.
Now this message is coming:
...


I learned that WitPload does not handle the RHS scenario files correctly (at least RHSCVO scen. 70). WitPExcel on the other hand seems to work but is not compatible with the decoder.

When I have some spare time I'll try to input the WitPExel data into the decoder, I believe this should work, see also my above postings.

Btw. initially I had the same message you have historiker and it was _NOT_ due to circular upgrade paths, or at least not with class 800.

(in reply to Historiker)
Post #: 77
RE: witpDecoder 0.5 released - 1/7/2008 5:37:20 PM   
Historiker


Posts: 4742
Joined: 7/4/2007
From: Deutschland
Status: offline
Alles klar, danke! Dann werde ich es wohl per Hand machen müssen :(

_____________________________

Without any doubt: I am the spawn of evil - and the Bavarian Beer Monster (BBM)!

There's only one bad word and that's taxes. If any other word is good enough for sailors; it's good enough for you. - Ron Swanson

(in reply to Mistmatz)
Post #: 78
RE: witpDecoder 0.5 released - 1/7/2008 6:02:57 PM   
Historiker


Posts: 4742
Joined: 7/4/2007
From: Deutschland
Status: offline

quote:

ORIGINAL: Nomad

As far as I know, WitPDecoder will not work with RHS. It doesn't like circular paths in the upgrades or something.

But, you can look up ship class 800 with the editor and see. Most likely it points to an undefined ship class slot - just change it to point to itself and try again.

seems so :(
with CHS it works fine!

_____________________________

Without any doubt: I am the spawn of evil - and the Bavarian Beer Monster (BBM)!

There's only one bad word and that's taxes. If any other word is good enough for sailors; it's good enough for you. - Ron Swanson

(in reply to Nomad)
Post #: 79
RE: witpDecoder 0.5 released - 1/7/2008 7:07:59 PM   
Historiker


Posts: 4742
Joined: 7/4/2007
From: Deutschland
Status: offline

quote:

ORIGINAL: Mistmatz


quote:

ORIGINAL: Historiker

I wanted to use it for 075 RHS EOS
I used the database editor to change the 271 and removed the " " in it.
Now this message is coming:
...


I learned that WitPload does not handle the RHS scenario files correctly (at least RHSCVO scen. 70). WitPExcel on the other hand seems to work but is not compatible with the decoder.

When I have some spare time I'll try to input the WitPExel data into the decoder, I believe this should work, see also my above postings.

Btw. initially I had the same message you have historiker and it was _NOT_ due to circular upgrade paths, or at least not with class 800.

What would have to be done to make the Decoder usable for RHS?

_____________________________

Without any doubt: I am the spawn of evil - and the Bavarian Beer Monster (BBM)!

There's only one bad word and that's taxes. If any other word is good enough for sailors; it's good enough for you. - Ron Swanson

(in reply to Mistmatz)
Post #: 80
RE: Fixing some problems with 0.5a - 1/7/2008 11:42:17 PM   
Roger Neilson II


Posts: 1517
Joined: 7/16/2006
From: Newcastle upon Tyne. England
Status: offline

quote:

ORIGINAL: Woos

A new version (0.5a) is available from http://extweb.retsiemuab.de/witp/witpdecoder0.5a.zip . It is the whole zip file (and not only the jar) since I also included a new version of hsqldb.jar (although that didn't help with the Load Batch problem)).

Fixed:

  • CHS 157/158 problem: Now witpDecoder simply uses 127 as durability and warns you about it.
  • Scenario 2 & 5: Missing HQs for Airgroups are now allowed, so the scenarios should load. Be aware that if all planes of one type have missing HQs, they will only show in the "AC classes" tab if "All nationalities" are selected.
  • Load Batch might now work. I could reproduce Martti's problems with the Allies and "fixed" it by increasing the checkpoint frequency. Of course that is not really a fix but it seems to work now.
  • On special request from VSWG the numbers of Ships Available/Building/Sunk are now listed per class in the "Ship classes" tab. Note that for witpdecoder each update is an own class, so to see all ship, select the "All" choice for "Availability". Otherwise you will not see ships building for future updates and (once you have updated) won't see ships of out-of-date classes anymore.



Ok worked fine for a week or so of game time then I get this new message....

Roger




Attachment (1)

_____________________________


(in reply to Woos)
Post #: 81
RE: witpDecoder 0.5 released - 1/8/2008 12:09:59 AM   
Nomad


Posts: 5905
Joined: 9/5/2001
From: West Yellowstone, Montana
Status: offline

quote:

ORIGINAL: Historiker


quote:

ORIGINAL: Mistmatz


quote:

ORIGINAL: Historiker

I wanted to use it for 075 RHS EOS
I used the database editor to change the 271 and removed the " " in it.
Now this message is coming:
...


I learned that WitPload does not handle the RHS scenario files correctly (at least RHSCVO scen. 70). WitPExcel on the other hand seems to work but is not compatible with the decoder.

When I have some spare time I'll try to input the WitPExel data into the decoder, I believe this should work, see also my above postings.

Btw. initially I had the same message you have historiker and it was _NOT_ due to circular upgrade paths, or at least not with class 800.

What would have to be done to make the Decoder usable for RHS?


Could you send me the senario files you are using? nomad(dot)pbem(at)gmail(dot)com


_____________________________


(in reply to Historiker)
Post #: 82
RE: witpDecoder 0.5 released - 1/8/2008 3:23:39 AM   
Nomad


Posts: 5905
Joined: 9/5/2001
From: West Yellowstone, Montana
Status: offline
If people will read things, this would be a lot easier. ship class 800 in senario 75 upgrades to ship class 1700. Ship Class 1700 is undefined. change ship class 800 to upgrade to itself and the DB will initialize with three warnings about three different ship classes having more than 127 torpedeos. I do not know if Cid wanted that or not - I don't know if it is an error or design.

the bottom line is if you will read the error message and fix things RHS is usable with WitPDecoder.

< Message edited by Nomad -- 1/8/2008 3:24:12 AM >


_____________________________


(in reply to Nomad)
Post #: 83
RE: Fixing some problems with 0.5a - 1/8/2008 6:39:00 PM   
Mistmatz

 

Posts: 1399
Joined: 10/16/2005
Status: offline
Woos, could you please elaborate in which order the files from witpload (or in my case the local ones) are read in?

I'm getting the message:
Could not create or initialize the databasejava.sql.SQLException: bad TEXT table source file - line number: 81 Attempt to insert null into a non-nullable column: column: NAME table: WITPSHIP in statement [
SET TABLE WITPSHIP SOURCE "WITPcls.csv;ignore_first=true"]
java.sql.SQLException: bad TEXT table source file - line number: 81 Attempt to insert null into a non-nullable column: column: NAME table: WITPSHIP in statement [


I checked the ship file (esp. around line 81) and couldn't find any problems. But maybe the problem is in one of the files it is depending on, eg the classes file?


(in reply to Yava)
Post #: 84
RE: Fixing some problems with 0.5a - 1/8/2008 9:01:06 PM   
Woos

 

Posts: 683
Joined: 6/5/2005
From: Germany
Status: offline
quote:

ORIGINAL: Roger Neilson II

Ok worked fine for a week or so of game time then I get this new message....




I should make you beta tester.

The factory update routines were rewritten for 0.5a and what you have seems to be a problem with them (you shouldn't get that problem with 0.5). Please send me the usual stuff (save game, .csv files, password if necessary) PLUS the previous save game (this is an update problem so I need the previous state of your database). If you don't have that anymore please tell me. I will then have to try to find the problem by hand.

*edited* Wrong numbering of versions. 0.5a has the new routines, 0.5 should be the version without the problem

quote:

Mistmatz
SET TABLE WITPSHIP SOURCE "WITPcls.csv;ignore_first=true

You have a problem in WITPcls.csv (which is the ship classes file, not the ship file). Most probably you edited it with a spreadsheet program (yes, I know I suggest everyone to use one to avoid syntax errors) which removed some cells only containing a blank so those fields are now empty (i.e. you will see two commas directly after each other). As that would constitute a NULL value and the DB does not like those values, you get the error. If you look closely at the error message you will see that the column in question is the NAME column.

< Message edited by Woos -- 1/10/2008 12:56:28 AM >

(in reply to Roger Neilson II)
Post #: 85
RE: Fixing some problems with 0.5a - 1/9/2008 12:41:23 AM   
Mistmatz

 

Posts: 1399
Joined: 10/16/2005
Status: offline
You're right Woos, should have read the whole message... ;)

Nevertheless I went ahead and came back to the famous ship class 800 issue. No cycle here and when I change it to upgrade to itself the next time I get a complaint about 799 and 800.
Fixing 799 leads to complaint about 798, 799 and 800 and so on.

So I checked and class 800 is not used in the ships file at all. Could that be a problem or should the decoder handle that?

(in reply to Woos)
Post #: 86
RE: Fixing some problems with 0.5a - 1/9/2008 10:27:53 PM   
Woos

 

Posts: 683
Joined: 6/5/2005
From: Germany
Status: offline
You get the error with class 800 because it does not get added to the Database. You get the "wrong" message (about the cycle) because witpDecoder assumes a correct set of ship classes (i.e. classes updated to also exist) and assumes all problems stem from cycles.

The DB initialization routine for ship classes first inserts all ship classes into the DB which update to itself (or nothing) as those are the end of the upgrade paths. In further passes all classes are inserted which upgrade to classes already in the DB until such an insert does no longer expand the Db (i.e. a fixpoint is reached). Then it is checked whether all classes in the .csv file are also in the DB. If not their class numbers are shown.
This ensures that the DB is cycle free and that the join I precompute is really precomputed. (In the very first versions of witpDecoder things were read in linearly much faster but then modders started to upgrade ships to lower numbers so linear reading didn't work anymore ......)

I don't know why you get problems with 799 after you fixed 800, but either you created a cycle or some other problem. If class 800 is really not used by the scenario you can remove it without problems (witpDecoder knows nothing about class usage during DB initialization as that is only apparent once ships are added and those are only read from the save file).

Best is to not use witpDecoder with RHS.

(in reply to Mistmatz)
Post #: 87
RE: Fixing some problems with 0.5a - 1/10/2008 12:32:11 AM   
Mistmatz

 

Posts: 1399
Joined: 10/16/2005
Status: offline

quote:

ORIGINAL: Woos

You get the error with class 800 because it does not get added to the Database. You get the "wrong" message (about the cycle) because witpDecoder assumes a correct set of ship classes (i.e. classes updated to also exist) and assumes all problems stem from cycles.

The DB initialization routine for ship classes first inserts all ship classes into the DB which update to itself (or nothing) as those are the end of the upgrade paths. In further passes all classes are inserted which upgrade to classes already in the DB until such an insert does no longer expand the Db (i.e. a fixpoint is reached). Then it is checked whether all classes in the .csv file are also in the DB. If not their class numbers are shown.
This ensures that the DB is cycle free and that the join I precompute is really precomputed. (In the very first versions of witpDecoder things were read in linearly much faster but then modders started to upgrade ships to lower numbers so linear reading didn't work anymore ......)

I don't know why you get problems with 799 after you fixed 800, but either you created a cycle or some other problem. If class 800 is really not used by the scenario you can remove it without problems (witpDecoder knows nothing about class usage during DB initialization as that is only apparent once ships are added and those are only read from the save file).

Best is to not use witpDecoder with RHS.



Thanks for your explainations and support Woos.

Not using the decoder with RHS is simply no option, this tool is just too valuable to not use it.
When time permits I'll continue working on this issue, I'm still optimistic.

(in reply to Woos)
Post #: 88
RE: Fixing some problems with 0.5a - 1/10/2008 1:54:49 PM   
Historiker


Posts: 4742
Joined: 7/4/2007
From: Deutschland
Status: offline
What to do?




Attachment (1)

_____________________________

Without any doubt: I am the spawn of evil - and the Bavarian Beer Monster (BBM)!

There's only one bad word and that's taxes. If any other word is good enough for sailors; it's good enough for you. - Ron Swanson

(in reply to Mistmatz)
Post #: 89
RE: Fixing some problems with 0.5a - 1/12/2008 11:29:25 AM   
Roger Neilson II


Posts: 1517
Joined: 7/16/2006
From: Newcastle upon Tyne. England
Status: offline
Sorry, been away.... will pull the stuff together over the weekend and get it to you.

Roger

_____________________________


(in reply to Woos)
Post #: 90
Page:   <<   < prev  1 2 [3] 4 5   next >   >>
All Forums >> [Current Games From Matrix.] >> [World War II] >> War In The Pacific - Struggle Against Japan 1941 - 1945 >> RE: Fixing some problems with 0.5a Page: <<   < prev  1 2 [3] 4 5   next >   >>
Jump to:





New Messages No New Messages
Hot Topic w/ New Messages Hot Topic w/o New Messages
Locked w/ New Messages Locked w/o New Messages
 Post New Thread
 Reply to Message
 Post New Poll
 Submit Vote
 Delete My Own Post
 Delete My Own Thread
 Rate Posts


Forum Software © ASPPlayground.NET Advanced Edition 2.4.5 ANSI

1.859