FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   ASIS: Advanced Simple Installer Script (https://fileforums.com/showthread.php?t=99481)

Titeuf 03-02-2019 13:16

1 Attachment(s)
Quote:

Originally Posted by KaktoR (Post 479243)
Look

Nice job, Nice job and Nice work again!

Titeuf 03-02-2019 13:24

Quote:

Originally Posted by Schabik (Post 479237)
Exactly!! :-)

Oh and the inisettings work with all ini files? I mean steam_emu and orbit_api?

for now I only tried with a steam_emu.ini file and yes it works very well!

Titeuf 03-02-2019 13:28

@KaktoR,
translation missing in fileCustomMessages.iss for the part: "Your system does partially meet the hardware reuirements."
here is the complete translation with google translation for other languages except French

Quote:

English.HwPartiallyGood=Your system does partially meet the hardware reuirements.
Hebrew.HwPartiallyGood=המערכת שלך עונה באופן חלקי בלבד על דרישות החומרה.
French.HwPartiallyGood=Votre système ne répond que partiellement aux exigences matérielles.
German.HwPartiallyGood=Ihr System erfüllt die Hardwareanforderungen nur teilweise.
Italian.HwPartiallyGood=Il sistema soddisfa solo parzialmente i requisiti hardware.
Spanish.HwPartiallyGood=Su sistema solo cumple parcialmente los requisitos de hardware.
Polish.HwPartiallyGood=Twój system tylko częściowo spełnia wymagania sprzętowe.
Russian.HwPartiallyGood=Ваша система только частично отвечает требованиям к оборудованию.
PortugueseBrazil.HwPartiallyGood=Seu sistema atende apenas parcialmente aos requisitos de hardware.

Titeuf 05-02-2019 04:15

Hello KaktoR,
when do you think you can download the next beta version?
in advance thank you for your answer,
cordially

KaktoR 06-02-2019 03:45

1 Attachment(s)
Here is new beta 5 which adds the text input for user name for INI files

Components for language archives is a bit more complicated then I thought. Could take a while.

Titeuf 06-02-2019 05:18

Quote:

Originally Posted by KaktoR (Post 479322)
Here is new beta 5 which adds the text input for user name for INI files

Components for language archives is a bit more complicated then I thought. Could take a while.

Hello KaktoR,
Ok thanks for your work.

Schabik 06-02-2019 10:07

Quote:

Originally Posted by KaktoR (Post 479322)
Here is new beta 5 which adds the text input for user name for INI files

Components for language archives is a bit more complicated then I thought. Could take a while.

You're the best KaktoR, I know You can do it :-)

kocchi96x 07-02-2019 02:02

Quote:

Originally Posted by KaktoR (Post 479322)
Here is new beta 5 which adds the text input for user name for INI files

Components for language archives is a bit more complicated then I thought. Could take a while.

https://i.imgur.com/20KqaWt.jpg

This happens if you use compact mode didnt get it from non compact though.

Titeuf 07-02-2019 02:06

Quote:

Originally Posted by kocchi96x (Post 479360)
https://i.imgur.com/20KqaWt.jpg

This happens if you use compact mode didnt get it from non compact though.

Hello kocchi96x, I have not seen this problem because I have not used the compact mode yet on this new version !

@Schabik: have you seen this problem?

KaktoR 07-02-2019 02:20

Open Settings.iss and add this to somewhere

Code:

#define Value ReadIni(SourcePath + "\Settings.ini", "INISettings", "Value", "")
Open Settings.ini and add this to [INISettings] section
Code:

Value=yourname
Because you don't have a type-in field in compact mode.

Titeuf 07-02-2019 02:45

Quote:

Originally Posted by KaktoR (Post 479362)
Open Settings.iss and add this to somewhere

Because you don't have a type-in field in compact mode.


Hello KaktoR,
Is it me who forgot something but in normal mode the input field is not displayed!
hmm maybe i'm so tired! lol

KaktoR 07-02-2019 03:18

Sorry :D

Code:

[INISettings]
// Enable Yes (1) or No (0).
Enable=1
INIFile={app}\steam_emu.ini
Section=Settings
Key=UserName
Value=


Titeuf 07-02-2019 05:43

Quote:

Originally Posted by KaktoR (Post 479365)
Sorry :D

Code:

[INISettings]
// Enable Yes (1) or No (0).
Enable=1
INIFile={app}\steam_emu.ini
Section=Settings
Key=UserName
Value=


KaktoR, thank you for your work this work very well!
just one thing, to be more aesthetic in my language, I need to add spaces for the checks (md5) look at my picture:

https://i.imgur.com/PqujW8V.jpg

the ideal would be that it must be like this (in French)!
Quote:

Total des fichiers: 48 Fichiers traités: 21 Ok:21 manquants:0 mauvais: 0
Where do I have to add spaces, please?

doofoo24 07-02-2019 08:17

is it possible to change WizardForm.BorderStyle color ?

kocchi96x 07-02-2019 12:39

Quote:

Originally Posted by KaktoR (Post 479362)
Open Settings.iss and add this to somewhere

Code:

#define Value ReadIni(SourcePath + "\Settings.ini", "INISettings", "Value", "")
Open Settings.ini and add this to [INISettings] section
Code:

Value=yourname
Because you don't have a type-in field in compact mode.

it worked now thanks :)

Quote:

Originally Posted by Titeuf (Post 479363)
Hello KaktoR,
Is it me who forgot something but in normal mode the input field is not displayed!
hmm maybe i'm so tired! lol

i was going to say this to because i didn't see it as well when I converted that compact one i did to a normal one. I'll check with your Post to test.

KaktoR 07-02-2019 12:59

1 Attachment(s)
Need some translations

Code:

Hebrew.EnterPlayerName=Enter your player name:

French.EnterPlayerName=Enter your player name:

German.EnterPlayerName=Enter your player name:

Italian.EnterPlayerName=Enter your player name:

Spanish.EnterPlayerName=Enter your player name:

Polish.EnterPlayerName=Enter your player name:

Russian.EnterPlayerName=Enter your player name:

PortugueseBrazil.EnterPlayerName=Enter your player name:


Titeuf 07-02-2019 22:41

Quote:

Originally Posted by KaktoR (Post 479375)
Need some translations

Code:

Hebrew.EnterPlayerName=Enter your player name:

French.EnterPlayerName=Enter your player name:

German.EnterPlayerName=Enter your player name:

Italian.EnterPlayerName=Enter your player name:

Spanish.EnterPlayerName=Enter your player name:

Polish.EnterPlayerName=Enter your player name:

Russian.EnterPlayerName=Enter your player name:

PortugueseBrazil.EnterPlayerName=Enter your player name:


Hi,

translated with google translation (except French)

Quote:

Hebrew.EnterPlayerName=הזן את שם הנגן שלך:

French.EnterPlayerName=Entrez votre nom de joueur:

German.EnterPlayerName=Geben Sie Ihren Spielernamen ein:

Italian.EnterPlayerName=Inserisci il nome del tuo giocatore:

Spanish.EnterPlayerName=Ingrese su nombre de jugador:

Polish.EnterPlayerName=Wpisz swoją nazwę gracza:

Russian.EnterPlayerName=Введите имя игрока:

PortugueseBrazil.EnterPlayerName=Digite o nome do seu jogador:

Titeuf 08-02-2019 06:47

hello,
here is the translation (Google translation, except for French) for "Create unistaller" in the file "CustomMessages"

Quote:

English.CreateUninstall=Create uninstaller
Hebrew.CreateUninstall=צור מסיר
French.CreateUninstall=Créer un programme de désinstallation
German.CreateUninstall=Deinstallationsprogramm erstellen
Italian.CreateUninstall=Crea un programma di disinstallazione
Spanish.CreateUninstall=Crear desinstalador
Polish.CreateUninstall=Stwórz dezinstalator
Russian.CreateUninstall=Создать деинсталлятор
PortugueseBrazil.CreateUninstall=Criar desinstalador

KaktoR 11-02-2019 03:53

1 Attachment(s)
Code:

beta6

- Fixed french translation for CRC check page (forgot some spaces)
- Fixed some other things
- Added RazorTools
  > ZSTD Precompressor
  > FIFA 19 Cas Decryption Tool + Precompressor
  > Project CARS 2 Bff Decryption Tool


Titeuf 11-02-2019 04:38

Quote:

Originally Posted by KaktoR (Post 479461)
Code:

beta6

- Fixed french translation for CRC check page (forgot some spaces)
- Fixed some other things
- Added RazorTools
  > ZSTD Precompressor
  > FIFA 19 Cas Decryption Tool + Precompressor
  > Project CARS 2 Bff Decryption Tool


Hello KaktoR,
Thank you for this new version.
Excellent work (as usual) !!
for the moment this version works very well.
Warmest looks

Titeuf 11-02-2019 05:22

Hi,
How to display the text: Elapsed & Remaining
https://i.imgur.com/PHEmyuY.jpg
Please, because the text is not displayed!
Thank

KaktoR 12-02-2019 06:02

Change
Code:

ElapsedLabel.Caption := Format('%s', [TicksToStr(CurTick - StartTick)]);
to
Code:

ElapsedLabel.Caption := ExpandConstant('{cm:ElapsedTime}') + ': ' + Format('%s', [TicksToStr(CurTick - StartTick)]);
For correct time remaining i have to pass pcoftotal to isarcextract and define it for each archive. It's not the way I want it because I want it without set a value for each archive in use. And that's why I have time remaining deactivated in current release (with current system you will get incorrect times). Will see if there is a other way to make without do it manually.

KaktoR 12-02-2019 13:42

1 Attachment(s)
New one for components (first test)

Code:

beta 6(2)

- Added components
  > With this you can unpack language archives
  > Set them in Settings.ini
  > You don't need to add them to Records.ini

With included archives it works well. I haven't tested it with any compression or more data but it should work anyways.

Schabik 12-02-2019 20:54

Quote:

Originally Posted by KaktoR (Post 479492)
New one for components (first test)

Code:

beta 6(2)

- Added components
  > With this you can unpack language archives
  > Set them in Settings.ini
  > You don't need to add them to Records.ini

With included archives it works well. I haven't tested it with any compression or more data but it should work anyways.

Will test it today, lately tomorrow :-)

LilKil 13-02-2019 10:39

Quote:

Originally Posted by KaktoR (Post 479492)
New one for components (first test)

Code:

beta 6(2)

- Added components
  > With this you can unpack language archives
  > Set them in Settings.ini
  > You don't need to add them to Records.ini

With included archives it works well. I haven't tested it with any compression or more data but it should work anyways.

Works good but there's a problem when you disable "Component" in "Settings.ini" and then try to run the script:

https://i.gyazo.com/4000d2d149cdf4a2...2a7b7cd858.png

Is there something I need to do or is that a bug?

KaktoR 13-02-2019 11:27

It's not a bug, I just forgot something :) Will post a fix asap

LilKil 13-02-2019 13:16

Quote:

Originally Posted by KaktoR (Post 479509)
It's not a bug, I just forgot something :) Will post a fix asap

Cool, thank you! Also, is there a way to force the Setup to use the english language only instead of letting the user choose his own?

And I couldn't manage to change the .exe icon even by changing the "Setup.ico", it only changes the icon within the setup, no idea if you already noticed it.

Thank you for your great work! :)

KaktoR 13-02-2019 13:43

No, but you can change ShowLanguageBox=0 (installer starts in OS language then. If Installer doesn't support OS language, english will be used as default).

Move Setup.exe to somewhere else. It's a windows problem for not updating icons properly.

pakrat2k2 13-02-2019 14:18

Quote:

Originally Posted by KaktoR (Post 479509)
It's not a bug, I just forgot something :) Will post a fix asap

I used 712 beta6(2) & compiled perfectly fine.. maybe he's using wrong version of inno ?

Schabik 14-02-2019 03:51

1 Attachment(s)
KaktoR,


I have a suggestion about components page,


Instead of checkboxes can You use RadioButtons?


Or some "if" statements so if one checkbox is checked then other isn't It will block the installation of many languages at once.

pakrat2k2 14-02-2019 05:56

@ Schabik

The issue with that is if someone wants 2 or more languages ( say english & Brazil Portuguese ) then that choice would not be available, or many others as well.

Schabik 14-02-2019 06:04

Quote:

Originally Posted by pakrat2k2 (Post 479521)
@ Schabik

The issue with that is if someone wants 2 or more languages ( say english & Brazil Portuguese ) then that choice would not be available, or many others as well.


I think that the best solution is to get both.
If you want to use many lang files than an option for that, to enable it, if you want to use one lang at the time second option to that to enable. You know what I mean?

For some games like AC1 there can't be more than one language at the time, for polish there are files that are patched so the Polish lang can work.

LilKil 14-02-2019 07:31

Quote:

Originally Posted by KaktoR (Post 479512)
No, but you can change ShowLanguageBox=0 (installer starts in OS language then. If Installer doesn't support OS language, english will be used as default).

Move Setup.exe to somewhere else. It's a windows problem for not updating icons properly.

Thank you for the clarification!

Quote:

Originally Posted by pakrat2k2 (Post 479513)
I used 712 beta6(2) & compiled perfectly fine.. maybe he's using wrong version of inno ?

I use the latest unicode version available, do I need to use another version?

KaktoR 14-02-2019 15:43

^
Open "Components.iss" and replace with this (replace all in this file)

Code:

[Components]
#if UseComponents == "1"
  Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed
  Name: "englisharch"; Description: {cm:CompEnglish}; Types: full
  Name: "frencharch"; Description: {cm:CompFrench}; Types: full
  Name: "germanarch"; Description: {cm:CompGerman}; Types: full
  Name: "italianarch"; Description: {cm:CompItalian}; Types: full
  Name: "spanisharch"; Description: {cm:CompSpanish}; Types: full
  Name: "polisharch"; Description: {cm:CompPolish}; Types: full
  Name: "russianarch"; Description: {cm:CompRussian}; Types: full
  Name: "portuguesebrazilarch"; Description: {cm:CompPortugueseBrazil}; Types: full
#endif


Titeuf 16-02-2019 02:33

1 Attachment(s)
Quote:

Originally Posted by KaktoR (Post 479492)
New one for components (first test)

Code:

beta 6(2)

- Added components
  > With this you can unpack language archives
  > Set them in Settings.ini
  > You don't need to add them to Records.ini

With included archives it works well. I haven't tested it with any compression or more data but it should work anyways.

Hello KaktoR,
I'm going to do a test with the language files, and I want to put the language files in a subdirectory, can you tell me what are the changes to make for this work please?
thanks in advance

Edit: After compilation I have these messages that appears in Inno (look at me picture).
Thank you

Schabik 16-02-2019 10:21

Quote:

Originally Posted by Titeuf (Post 479554)
Hello KaktoR,
I'm going to do a test with the language files, and I want to put the language files in a subdirectory, can you tell me what are the changes to make for this work please?
thanks in advance

Edit: After compilation I have these messages that appears in Inno (look at me picture).
Thank you

Why bother? If the game don't have hebrew so it won't be nessesary.

Checked for compression afr+srepmax+lolz for lang files and it runs smoothly.

KaktoR 16-02-2019 11:11

@Titeuf: Ingnore this messages. I didn't translate Hebrew, and probably didn't do it anymore (because it's like arabic, it reads from right to left and installer is mirrored this way. I didn't test installer yet with hebrew language, if all buttons/text/etc are on the right place. Maybe I will deactivate it in future releases).

Will work on the script in the next weeks again (spare time at the moment).

Titeuf 16-02-2019 11:20

hello KaktoR,
ok thank you for your answer!
I thought I made a mistake
cordially

Schabik 22-02-2019 03:50

Hey there guys,

I did a little research for setting components not as checkboxes but as Radiobuttons, and I've managed to achieve the goal

If someone want to integrate the code with ASIS please, be my guest :)
The modifications were tested by me and work for example with Assassins Creed 1 MultiLang (With Czech,Polish,English,French,Italian,German and Spanish).

The Modifications I presented are as Follows:

Code for Components.iss

Code:

[Components]
#if RadioInsteadCheckbox == "1"
Name: "main"; Description: {cm:MainFiles}; Types: full compact custom; Flags: fixed
Name: "Lang"; Description: {cm:GameLang}; Types: full compact custom; Flags: fixed
Name: "Lang\czecharch"; Description: {cm:CompCzech}; Types: custom; Flags: exclusive;
Name: "Lang\englisharch"; Description: {cm:CompEnglish}; Types: custom; Flags: exclusive;
Name: "Lang\frencharch"; Description: {cm:CompFrench}; Types: custom; Flags: exclusive
Name: "Lang\germanarch"; Description: {cm:CompGerman}; Types: custom; Flags: exclusive
Name: "Lang\italianarch"; Description: {cm:CompItalian}; Types: custom; Flags: exclusive
Name: "Lang\polisharch"; Description: {cm:CompPolish}; Types: custom; Flags: exclusive
Name: "Lang\spanisharch"; Description: {cm:CompSpanish}; Types: custom; Flags: exclusive
#endif
#if RadioInsteadCheckbox == "0"
Name: "main"; Description: {cm:MainFiles}; Types: full compact custom; Flags: fixed
Name: "Lang"; Description: {cm:GameLang}; Types: full compact custom; Flags: fixed
Name: "Lang\czecharch"; Description: {cm:CompCzech}; Types: custom;
Name: "Lang\englisharch"; Description: {cm:CompEnglish}; Types: custom
Name: "Lang\frencharch"; Description: {cm:CompFrench}; Types: custom
Name: "Lang\germanarch"; Description: {cm:CompGerman}; Types: custom
Name: "Lang\italianarch"; Description: {cm:CompItalian}; Types: custom
Name: "Lang\polisharch"; Description: {cm:CompPolish}; Types: custom
Name: "Lang\spanisharch"; Description: {cm:CompSpanish}; Types: custom
#endif

Code for Settings.iss (Component Section):

Code:

// Component
#define UseComponents ReadIni(SourcePath + "\Settings.ini", "Component", "Enable", "")
#define RadioInsteadCheckbox ReadIni(SourcePath + "\Settings.ini", "Component", "EnableRadiobutton", "")
#define EnglishArch ReadIni(SourcePath + "\Settings.ini", "Component", "EnglishArch", "")
#define FrenchArch ReadIni(SourcePath + "\Settings.ini", "Component", "FrenchArch", "")
#define GermanArch ReadIni(SourcePath + "\Settings.ini", "Component", "GermanArch", "")
#define ItalianArch ReadIni(SourcePath + "\Settings.ini", "Component", "ItalianArch", "")
#define SpanishArch ReadIni(SourcePath + "\Settings.ini", "Component", "SpanishArch", "")
#define PolishArch ReadIni(SourcePath + "\Settings.ini", "Component", "PolishArch", "")
#define CzechArch ReadIni(SourcePath + "\Settings.ini", "Component", "CzechArch", "")

Code for Settings.ini (also Component section):

Code:

[Component]
Enable=1
EnableRadiobutton=1
EnglishArch=
FrenchArch=
GermanArch=
ItalianArch=
SpanishArch=
PolishArch=
CzechArch=

In Registry.iss You can add something like this, if a language registry key is required, for tests I've added something like this:

Code:

[Registry]
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\Ubisoft\Assassin's Creed; ValueType: string; ValueName: "Language"; ValueData: "Polish"; Flags: uninsdeletekey; Components: Lang\polisharch;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\Ubisoft\Assassin's Creed; ValueType: string; ValueName: "Language"; ValueData: "Czech"; Flags: uninsdeletekey; Components: Lang\czecharch;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\Ubisoft\Assassin's Creed; ValueType: string; ValueName: "Language"; ValueData: "English"; Flags: uninsdeletekey; Components: Lang\englisharch;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\Ubisoft\Assassin's Creed; ValueType: string; ValueName: "Language"; ValueData: "French"; Flags: uninsdeletekey; Components: Lang\frencharch;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\Ubisoft\Assassin's Creed; ValueType: string; ValueName: "Language"; ValueData: "German"; Flags: uninsdeletekey; Components: Lang\germanarch;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\Ubisoft\Assassin's Creed; ValueType: string; ValueName: "Language"; ValueData: "Italian"; Flags: uninsdeletekey; Components: Lang\italianarch;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\Ubisoft\Assassin's Creed; ValueType: string; ValueName: "Language"; ValueData: "Spanish"; Flags: uninsdeletekey; Components: Lang\spanisharch;

In main script in code for extracting the language components I had to make some adjustments.
I've made them as following:

Code:

#if UseComponents == "1"
  {Unpack selected components}
  if IsComponentSelected('Lang\englisharch') then
    if FileExists(GetIniString('Component', 'EnglishArch', '', ExpandConstant('{tmp}\Settings.ini'))) then
      if ISDoneError = False then
        ISArcExtract(0, 0, ExpandConstant('{src}\' + GetIniString('Component', 'EnglishArch', '', ExpandConstant('{tmp}\Settings.ini'))), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false);

  if IsComponentSelected('Lang\frencharch') then
    if FileExists(GetIniString('Component', 'FrenchArch', '', ExpandConstant('{tmp}\Settings.ini'))) then
      if ISDoneError = False then
        ISArcExtract(0, 0, ExpandConstant('{src}\' + GetIniString('Component', 'FrenchArch', '', ExpandConstant('{tmp}\Settings.ini'))), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false);

  if IsComponentSelected('Lang\germanarch') then
    if FileExists(GetIniString('Component', 'GermanArch', '', ExpandConstant('{tmp}\Settings.ini'))) then
      if ISDoneError = False then
        ISArcExtract(0, 0, ExpandConstant('{src}\' + GetIniString('Component', 'GermanArch', '', ExpandConstant('{tmp}\Settings.ini'))), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false);

  if IsComponentSelected('Lang\italianarch') then
    if FileExists(GetIniString('Component', 'ItalianArch', '', ExpandConstant('{tmp}\Settings.ini'))) then
      if ISDoneError = False then
        ISArcExtract(0, 0, ExpandConstant('{src}\' + GetIniString('Component', 'ItalianArch', '', ExpandConstant('{tmp}\Settings.ini'))), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false);

  if IsComponentSelected('Lang\spanisharch') then
    if FileExists(GetIniString('Component', 'SpanishArch', '', ExpandConstant('{tmp}\Settings.ini'))) then
      if ISDoneError = False then
        ISArcExtract(0, 0, ExpandConstant('{src}\' + GetIniString('Component', 'SpanishArch', '', ExpandConstant('{tmp}\Settings.ini'))), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false);

  if IsComponentSelected('Lang\polisharch') then
    if FileExists(GetIniString('Component', 'PolishArch', '', ExpandConstant('{tmp}\Settings.ini'))) then
      if ISDoneError = False then
        ISArcExtract(0, 0, ExpandConstant('{src}\' + GetIniString('Component', 'PolishArch', '', ExpandConstant('{tmp}\Settings.ini'))), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false);

  if IsComponentSelected('Lang\czecharch') then
    if FileExists(GetIniString('Component', 'CzechArch', '', ExpandConstant('{tmp}\Settings.ini'))) then
      if ISDoneError = False then
        ISArcExtract(0, 0, ExpandConstant('{src}\' + GetIniString('Component', 'CzechArch', '', ExpandConstant('{tmp}\Settings.ini'))), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), false);
#endif

@KaktoR if You see and accept these changes I will be honored if You add them to the next beta :)

Titeuf 22-02-2019 04:45

Hello Schabik,
maybe can you put pictures?
thank you in advance


All times are GMT -7. The time now is 03:47.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com