From 5474d10c6cd618df790b1a6b18dd134fcb701047 Mon Sep 17 00:00:00 2001 From: lsuper Date: Tue, 22 Jan 2019 10:52:24 +0800 Subject: [PATCH] Add 10.3.0 v26.0.32429.4364 Activator --- 10.3.0/Activator/Activator.bdsproj | 183 ++ 10.3.0/Activator/Activator.dpr | 33 + 10.3.0/Activator/Activator.res | Bin 0 -> 10464 bytes 10.3.0/Activator/Activator_0.inc | 20 + 10.3.0/Activator/Activator_1.inc | 9 + 10.3.0/Activator/Activator_2.inc | 4 + 10.3.0/Activator/Activator_3.inc | 4 + 10.3.0/Activator/Activator_4.inc | 4 + 10.3.0/Activator/Admin.res | Bin 0 -> 1432 bytes 10.3.0/Activator/FileUtils.pas | 65 + 10.3.0/Activator/MainFrm.dfm | 425 ++++ 10.3.0/Activator/MainFrm.pas | 766 +++++++ 10.3.0/Activator/MainFrm_1.inc | 49 + 10.3.0/Activator/PatchData.inc | 2976 +++++++++++++++++++++++++++ 10.3.0/Activator/PatchData.pas | 26 + 10.3.0/Activator/TMainForm.inc | 1 + 10.3.0/Activator/TMainFormclass.inc | 1 + 10.3.0/Activator/WinUtils.pas | 383 ++++ 10.3.0/Activator/uses.inc | 9 + 10.3.0/Dcu/dirinfo.txt | 1 + 10.3.0/Keygen/AnsiStrings.pas | 7 + 10.3.0/Keygen/FGInt.pas | 2282 ++++++++++++++++++++ 10.3.0/Keygen/RadKeygen.pas | 392 ++++ 10.3.0/Keygen/RadLicense.pas | 339 +++ 10.3.0/Keygen/RadVersion.pas | 85 + 10.3.0/Keygen/SHFolderDll.pas | 894 ++++++++ 10.3.0/Keygen/Sha1.pas | 251 +++ 10.3.0/Release/Activator.exe | Bin 0 -> 232216 bytes 10.3.0/Release/Readme.txt | 28 + 29 files changed, 9237 insertions(+) create mode 100644 10.3.0/Activator/Activator.bdsproj create mode 100644 10.3.0/Activator/Activator.dpr create mode 100644 10.3.0/Activator/Activator.res create mode 100644 10.3.0/Activator/Activator_0.inc create mode 100644 10.3.0/Activator/Activator_1.inc create mode 100644 10.3.0/Activator/Activator_2.inc create mode 100644 10.3.0/Activator/Activator_3.inc create mode 100644 10.3.0/Activator/Activator_4.inc create mode 100644 10.3.0/Activator/Admin.res create mode 100644 10.3.0/Activator/FileUtils.pas create mode 100644 10.3.0/Activator/MainFrm.dfm create mode 100644 10.3.0/Activator/MainFrm.pas create mode 100644 10.3.0/Activator/MainFrm_1.inc create mode 100644 10.3.0/Activator/PatchData.inc create mode 100644 10.3.0/Activator/PatchData.pas create mode 100644 10.3.0/Activator/TMainForm.inc create mode 100644 10.3.0/Activator/TMainFormclass.inc create mode 100644 10.3.0/Activator/WinUtils.pas create mode 100644 10.3.0/Activator/uses.inc create mode 100644 10.3.0/Dcu/dirinfo.txt create mode 100644 10.3.0/Keygen/AnsiStrings.pas create mode 100644 10.3.0/Keygen/FGInt.pas create mode 100644 10.3.0/Keygen/RadKeygen.pas create mode 100644 10.3.0/Keygen/RadLicense.pas create mode 100644 10.3.0/Keygen/RadVersion.pas create mode 100644 10.3.0/Keygen/SHFolderDll.pas create mode 100644 10.3.0/Keygen/Sha1.pas create mode 100644 10.3.0/Release/Activator.exe create mode 100644 10.3.0/Release/Readme.txt diff --git a/10.3.0/Activator/Activator.bdsproj b/10.3.0/Activator/Activator.bdsproj new file mode 100644 index 0000000..0b458d4 --- /dev/null +++ b/10.3.0/Activator/Activator.bdsproj @@ -0,0 +1,183 @@ + + + + + + + + + + + + Activator.dpr + + + 7.0 + + + 8 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + Classes=;mirror= + + False + + False + True + False + True + True + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\Release + ..\Dcu + + + ..\KOL + vcl;rtl + KOL_MCK;NOT_USE_RICHEDIT;USE_MHTOOLTIP;xDEBUGMODE + + False + + + + + + False + + + True + False + + + False + + + True + False + 26 + 0 + 32429 + 4364 + False + False + False + False + False + 1033 + 1252 + + + + + 26.0.32429.4364 + + + + + + 26.0.32429.4364 + + + + + diff --git a/10.3.0/Activator/Activator.dpr b/10.3.0/Activator/Activator.dpr new file mode 100644 index 0000000..daea8d9 --- /dev/null +++ b/10.3.0/Activator/Activator.dpr @@ -0,0 +1,33 @@ +{ KOL MCK } // Do not remove this line! +program Activator; + +uses +KOL, + FileUtils in 'FileUtils.pas', + PatchData in 'PatchData.pas', + WinUtils in 'WinUtils.pas', + + AnsiStrings in '..\Keygen\AnsiStrings.pas', + FGInt in '..\Keygen\FGInt.pas', + RadKeygen in '..\Keygen\RadKeygen.pas', + RadLicense in '..\Keygen\RadLicense.pas', + RadVersion in '..\Keygen\RadVersion.pas', + Sha1 in '..\Keygen\Sha1.pas', + SHFolderDll in '..\Keygen\SHFolderDll.pas', + + MainFrm in 'MainFrm.pas' {MainForm}; + +{$R *.res} + +begin // PROGRAM START HERE -- Please do not remove this comment + +{$IF Defined(KOL_MCK)} {$I Activator_0.inc} {$ELSE} + + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TMainForm, MainForm); + Application.Run; + +{$IFEND} + +end. diff --git a/10.3.0/Activator/Activator.res b/10.3.0/Activator/Activator.res new file mode 100644 index 0000000000000000000000000000000000000000..8257ddb2487c178d9597e27a27374d5fdc95778a GIT binary patch literal 10464 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 statement, which prevents running of application + in some cases. TIP: always use Applet for such checks + and make it invisible until final decision if to run + application or not. } + diff --git a/10.3.0/Activator/Activator_2.inc b/10.3.0/Activator/Activator_2.inc new file mode 100644 index 0000000..830ed7f --- /dev/null +++ b/10.3.0/Activator/Activator_2.inc @@ -0,0 +1,4 @@ +{ KOL MCK } // Do not remove this line! +{ Activator_2.inc + Do not modify this file manually - it is generated automatically. } + diff --git a/10.3.0/Activator/Activator_3.inc b/10.3.0/Activator/Activator_3.inc new file mode 100644 index 0000000..5f758d7 --- /dev/null +++ b/10.3.0/Activator/Activator_3.inc @@ -0,0 +1,4 @@ +{ Activator_3.inc + This file is for you. Place here any code to run it + after forms creating, but before Run call, if necessary. } + diff --git a/10.3.0/Activator/Activator_4.inc b/10.3.0/Activator/Activator_4.inc new file mode 100644 index 0000000..3e4c27b --- /dev/null +++ b/10.3.0/Activator/Activator_4.inc @@ -0,0 +1,4 @@ +{ Activator_4.inc + This file is for you. Place here any code to be inserted + after Run call, if necessary. } + diff --git a/10.3.0/Activator/Admin.res b/10.3.0/Activator/Admin.res new file mode 100644 index 0000000000000000000000000000000000000000..5e2a64c62a540aec70de607e5da17b56da031951 GIT binary patch literal 1432 zcma)6U2oGc6fF`wFlp~RMtMYX^PMJBx@np~ngD^c4W1qQy0b{^U_0F^#BU#V+jI$g zD2~!3KG)~ob9~*|Y&P@k{q(fE?dxRRy&3R#Hs;k93ukX%4?)$%W7~LZP?}4z^rLy` zdmxCUT&$M<-R(zI_?|XcP~1oXOMe5}zc@cVsj$}2*3HJV1VS(UUWqeJ?xDpRwVWua zB{PV~_6+NGzK(pa#ey@?=KDC?nChB>Fx+fTPdqyWZf(Asz5_MCv0M*Wfxm+~B?)LP z)ukf$+yF7Xva#>?@Ig*I58bt&Hk-}{J#dl4e&F&_&_wahSn21}JXJ8pwxJyeTOQfi zg|0fgcsFA%_eSi2EjXAnRpcNy#)a(IcJqVgFN1yaA6!uRpyyYzZKXh0QWzy0y%#jB zI_S+OdI$K3TZgc|ZaDb_n_Kx4Y%kRzrudpSumU}Tw^bcNK0I0ixAC80 z4UN~h-=*(huHcfkTySj^Hd6Us&o7BZly~1T_=^b;_HofO_%;}h{GsKvjvK>G)HMd zGK4b*C=3e<00~W4_-Cr@1xJ!aNl}*=Wwf*$tfr`dm?9jfX&A>DD-(Q-BgHX`3rJ9w z)Fn#OG(t5l38HyPQ=H-)lHwRg#PUT>7C9)}; +{$ELSE} +{$I uses.inc} + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, mirror; +{$ENDIF} + +type + {$IF Defined(KOL_MCK)} + {$I MCKfakeClasses.inc} + {$IFDEF KOLCLASSES} {$I TMainFormclass.inc} {$ELSE OBJECTS} PMainForm = ^TMainForm; {$ENDIF CLASSES/OBJECTS} + {$IFDEF KOLCLASSES}{$I TMainForm.inc}{$ELSE} TMainForm = object(TObj) {$ENDIF} + Form: PControl; + {$ELSE not_KOL_MCK} + TMainForm = class(TForm) + {$IFEND KOL_MCK} + btnAbout: TKOLButton; + btnActive: TKOLButton; + btnExit: TKOLButton; + btnReset: TKOLButton; + btnRunX10: TKOLButton; + kolActivator: TKOLProject; + kolMainForm: TKOLForm; + procedure btnAboutClick(Sender: PObj); + procedure btnActiveClick(Sender: PObj); + procedure btnExitClick(Sender: PObj); + procedure btnResetClick(Sender: PObj); + procedure btnRunX10Click(Sender: PObj); + procedure kolMainFormDestroy(Sender: PObj); + procedure kolMainFormFormCreate(Sender: PObj); + function kolMainFormMessage(var Msg: TMsg; var Rslt: Integer): Boolean; + procedure kolMainFormShow(Sender: PObj); + private + FAppPath, + FBdsPath: string; + FCurFileBuild: Integer; + FSerialNumber, + FRegCode, + FInformation: string; + private + function FindBdsPath: Boolean; + + function GetSystemHostsFile: string; + + procedure BeginCursor; + procedure EndCursor; + + procedure BuildGenuineCglmFile(const ASerialNumber: string = ''); + procedure BuildGenuineSlipFile; + + procedure BuildTrialCglmFile; + procedure BuildTrialSlipFile; + + procedure CopyFile(const ASrcFile, ADestFile: string); + + procedure DeleteFile(const AFile: string); + procedure DeleteFiles(const AFileMask: string); + + procedure GenerateRegistrationCode; + procedure GenerateKeyGenLicense; + + procedure PatchLicenseHostsFile; + procedure RestoreLicenseHostsFile; + + procedure PatchBdsFile; + procedure RestoreBdsFile; + + procedure DeleteTrialFiles; + procedure DeleteTrialRegKeys; + + procedure DoActive; + procedure DoReset; + procedure DoRunX10; + + procedure ShowAboutMessage; + + procedure Execute; + end; + +var + MainForm {$IFDEF KOL_MCK} : PMainForm {$ELSE} : TMainForm {$ENDIF} ; + +{$IFDEF KOL_MCK} +procedure NewMainForm( var Result: PMainForm; AParent: PControl ); +{$ENDIF} + +implementation + +{.$DEFINE DEBUGMODE} + +uses + SysUtils, ShellAPI, Registry, FileUtils, PatchData, WinUtils, RadKeygen, RadVersion, SHFolderDll; + +{$IF Defined(KOL_MCK)}{$ELSE}{$R *.DFM}{$IFEND} + +{$IFDEF KOL_MCK} +{$I MainFrm_1.inc} +{$ENDIF} + +{$R 'Admin.res'} { Ա } + +const + CSIDL_APPDATA = $001A; // Application Data, new for NT4, \Application Data + CSIDL_COMMON_APPDATA = $0023; // All Users\Application Data + + UM_SHOWABOUT = 100; + +const + defAppMessage = 'Many thanks to elseif, tonzi, freecat, unis, x-force, cjack and others who worked for this keygen!'; + defAppVersion = '15.0'; + + defAppHelperFileName = 'SHFolder.dll'; + + defBdsVersion = '20.0'; + + defBdsLicenseFile = 'RADStudio10_2.slip'; + defBdsLicenseManager = '"%s" -reg -skey 8220_21 -loadKey 2026 -a'; + + defBdsPatchFileName = 'SHFolder.dll'; + + defLicenseHosts: array[0..11] of string = ( + '127.0.0.1 comapi.embarcadero.com', + '127.0.0.1 license.embarcadero.com', + '127.0.0.1 track.embarcadero.com', + '127.0.0.1 external.ws.sanctx.embarcadero.com', + '127.0.0.1 object.ws.sanctx.embarcadero.com', + '127.0.0.1 license.codegear.com', + '127.0.0.1 license-stage.codegear.com', + '127.0.0.1 services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 LicenseRenewalServicesImpl.services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 LicenseUsageServicesImpl.services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 RegistrationServicesImpl.services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 embt.usertility.com' + ); + +{ TMainForm } + +procedure TMainForm.BeginCursor; +begin + SetCursor(LoadCursor(0, IDC_WAIT)); +end; + +procedure TMainForm.btnAboutClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('About'); +{$ENDIF} + ShowAboutMessage; +end; + +procedure TMainForm.btnActiveClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Active'); +{$ENDIF} + BeginCursor; + try + DoActive; + finally + EndCursor; + end; +end; + +procedure TMainForm.btnExitClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Exit'); +{$ENDIF} + Self.Form.Close; +end; + +procedure TMainForm.btnResetClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Reset'); +{$ENDIF} + BeginCursor; + try + DoReset; + finally + EndCursor; + end; +end; + +procedure TMainForm.btnRunX10Click(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Run'); +{$ENDIF} + BeginCursor; + try + DoRunX10; + finally + EndCursor; + end; +end; + +procedure TMainForm.BuildGenuineCglmFile(const ASerialNumber: string); +var + F: AnsiString; + S: string; +begin + SetLength(F, Length(defCglmFileDatas)); + Move(defCglmFileDatas, Pointer(F)^, Length(defCglmFileDatas)); + if ASerialNumber <> '' then + F := AnsiString(StringReplace(string(F), defCglmSerialNumber, ASerialNumber, [rfReplaceAll])); + S := FBdsPath + 'Bin\cglm.ini'; + SaveDataToFile(S, Pointer(F)^, Length(F)); + S := GetShellFolderPath(CSIDL_COMMON_APPDATA) + 'Embarcadero\Studio\' + defBdsVersion + '\cglm.ini'; + SaveDataToFile(S, Pointer(F)^, Length(F)); +end; + +procedure TMainForm.BuildGenuineSlipFile; +var + S: string; +begin + S := FBdsPath + 'License\*.slip'; + DeleteFiles(S); + S := FBdsPath + 'License\' + defBdsLicenseFile; + SaveDataToFile(S, defGenuineLicFileDatas, Length(defGenuineLicFileDatas)); +end; + +procedure TMainForm.BuildTrialCglmFile; +var + S: string; +begin + S := FBdsPath + 'Bin\cglm.ini'; + SaveDataToFile(S, defCglmFileDatas, Length(defCglmFileDatas)); +end; + +procedure TMainForm.BuildTrialSlipFile; +var + S: string; +begin + S := FBdsPath + 'License\*.slip'; + DeleteFiles(S); + S := FBdsPath + 'License\' + defBdsLicenseFile; + SaveDataToFile(S, defTrialLicFileDatas, Length(defTrialLicFileDatas)); +end; + +procedure TMainForm.CopyFile(const ASrcFile, ADestFile: string); +{$IFDEF DEBUGMODE} +var + bRet: Boolean; +{$ENDIF} +begin +{$IFDEF DEBUGMODE} + bRet := Windows.CopyFile(PChar(ASrcFile), PChar(ADestFile), False); + if bRet then + LogMessage('CopyFile.OK: ' + ADestFile) + else LogMessage('CopyFile.Error: ' + ADestFile + ', ' + SysErrorMessage(GetLastError)); +{$ELSE} + Windows.CopyFile(PChar(ASrcFile), PChar(ADestFile), False); +{$ENDIF} +end; + +procedure TMainForm.DeleteFile(const AFile: string); +{$IFDEF DEBUGMODE} +var + bRet: Boolean; +{$ENDIF} +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteFile: ' + AFile + ' ...'); + bRet := Windows.DeleteFile(PChar(AFile)); + if bRet then + LogMessage('DeleteFile.OK: ' + AFile) + else LogMessage('DeleteFile.Error: ' + AFile + ', ' + SysErrorMessage(GetLastError)); +{$ELSE} + Windows.DeleteFile(PChar(AFile)); +{$ENDIF} +end; + +procedure TMainForm.DeleteFiles(const AFileMask: string); + //////////////////////////////////////////////////////////////////////////////// + //: Lsuper 2005.09.21 + //: жļ + // + //////////////////////////////////////////////////////////////////////////////// + function IsDirNotation(const AName: string): Boolean; + begin + Result := (AName = '.') or (AName = '..'); + end; +var + cSearchRec: TSearchRec; + strFilePath: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteFiles: ' + AFileMask + ' ...'); +{$ENDIF} + strFilePath := ExtractFilePath(AFileMask); + if FindFirst(AFileMask, faAnyFile, cSearchRec) = 0 then + repeat + if (cSearchRec.Name <> '') and not IsDirNotation(cSearchRec.Name) then + begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteFiles, File: ' + strFilePath + cSearchRec.Name); +{$ENDIF} + SysUtils.DeleteFile(strFilePath + cSearchRec.Name); + end; + until FindNext(cSearchRec) <> 0; + SysUtils.FindClose(cSearchRec); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2011.01.05 +//ܣȨϢ +// +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.DeleteTrialFiles; +var + AllUsersPath, UserPath: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteTrialFiles'); +{$ENDIF} + AllUsersPath := GetShellFolderPath(CSIDL_COMMON_APPDATA) + 'Embarcadero\'; + UserPath := GetShellFolderPath(CSIDL_APPDATA) + 'Embarcadero\'; + +{$IFDEF DEBUGMODE} + LogMessage('DeleteTrialFiles.AllUsersPath: ' + AllUsersPath); + LogMessage('DeleteTrialFiles.UserPath: ' + UserPath); +{$ENDIF} + + DeleteFile(UserPath + '.cgb_license'); + DeleteFile(AllUsersPath + '.cgb_license'); + + DeleteFile(UserPath + '.licenses\.cg_license'); + DeleteFile(AllUsersPath + '.licenses\.cg_license'); + + DeleteFile(AllUsersPath + 'RAD Studio Activation.slip'); + + DeleteFiles(AllUsersPath + '.82*.slip'); +end; + +procedure TMainForm.DeleteTrialRegKeys; +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteTrialRegKeys'); +{$ENDIF} +end; + +procedure TMainForm.DoActive; +var + S: string; + nBuild: Integer; +begin +{$IFDEF DEBUGMODE} + LogMessage('DoActive'); +{$ENDIF} + if not FindBdsPath then + begin + ShowError('No BDS find!'); + Exit; + end; + S := FBdsPath + 'Bin\bds.exe'; + nBuild := GetFileBuildVersion(S); + if nBuild <> FCurFileBuild then + begin + ShowError('BDS version not support!'); + Exit; + end; + BuildTrialCglmFile; + BuildTrialSlipFile; + RestoreBdsFile; + + GenerateRegistrationCode; + GenerateKeyGenLicense; + BuildGenuineCglmFile; + BuildGenuineSlipFile; + PatchBdsFile; + PatchLicenseHostsFile; +{ + ShowMessage('Active', 'OK!'); +} + ShowMessage('Active', 'OK! Code: ' + FRegCode + ', Serial: ' + FSerialNumber); +end; + +procedure TMainForm.DoReset; +begin +{$IFDEF DEBUGMODE} + LogMessage('DoReset'); +{$ENDIF} + if not FindBdsPath then + begin + ShowError('No BDS find!'); + Exit; + end; + DeleteTrialFiles; + DeleteTrialRegKeys; + BuildTrialCglmFile; + BuildTrialSlipFile; + RestoreBdsFile; + RestoreLicenseHostsFile; + ShowMessage('Reset', 'OK!'); +end; + +procedure TMainForm.DoRunX10; +var + BdsExe: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('DoRunX10'); +{$ENDIF} + if not FindBdsPath then + begin + ShowError('No BDS find!'); + Exit; + end; + FBdsPath := FBdsPath + 'Bin'; + BdsExe := FBdsPath + '\bds.exe'; + ShellExecute(0, 'open', PChar(BdsExe), '-pDelphi', PChar(FBdsPath), SW_NORMAL); + Delay(20); +end; + +procedure TMainForm.EndCursor; +begin + SetCursor(LoadCursor(0, IDC_ARROW)); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2011.09.20 +//ܣֱִ Lite İװ +// +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.Execute; +var + S: string; + nBuild: Integer; +begin + if not FindBdsPath then + begin + LogMessage('No BDS find!'); + Exit; + end; + S := FBdsPath + 'Bin\bds.exe'; + nBuild := GetFileBuildVersion(S); + if nBuild <> FCurFileBuild then + begin + LogMessage('BDS version not support!'); + Exit; + end; + + GenerateRegistrationCode; + GenerateKeyGenLicense; + BuildGenuineCglmFile; + BuildGenuineSlipFile; + PatchBdsFile; + PatchLicenseHostsFile; +{ + LogMessage('Done.'); +} + LogMessage('Done. Code: ' + FRegCode + ', Serial: ' + FSerialNumber); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.02.15 +//ܣ Delphi +// +//////////////////////////////////////////////////////////////////////////////// +function TMainForm.FindBdsPath: Boolean; +begin + Result := False; + with TRegistry.Create do + try + Access := KEY_READ; + RootKey := HKEY_LOCAL_MACHINE; + if OpenKeyReadOnly('SOFTWARE\Embarcadero\BDS\' + defBdsVersion) then + begin + FBdsPath := ReadString('RootDir'); + CloseKey; + end; + finally + Free; + end; + if FBdsPath <> '' then + begin + FBdsPath := IncludeTrailingPathDelimiter(FBdsPath); + Result := FileExists(FBdsPath + 'Bin\bds.exe'); + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.05.01 +//ܣ +// +//ע⣺û IPC ֪ͨͨѶ +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.GenerateKeyGenLicense; + + function CurrentRadStudioVersion: PRadStudioVersion; inline; + begin + Assert(RadStudioVersionList.Count > 0); + Result := PRadStudioVersion(RadStudioVersionList.Objects[0]); + end; +begin +{$IFDEF DEBUGMODE} + LogMessage('GenerateKeyGenLicense'); +{$ENDIF} + FSerialNumber := RadKeygen.GenerateSerialNumber; + FRegCode := RadKeygen.GetRegistrationCode; + RadKeygen.GenerateLicenseFile(FSerialNumber, FRegCode, CurrentRadStudioVersion, FInformation); +end; + +//////////////////////////////////////////////////////////////////////////////// +//: Lsuper 2006.09.19 +//: ע +// +//ע⣺û IPC ֪ͨͨѶ +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.GenerateRegistrationCode; +var + si: TStartupInfo; + pi: TProcessInformation; + nExitCode: LongWord; + strHelper, strCommandLine, strWorkDir: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('GenerateRegistrationCode'); +{$ENDIF} + strHelper := FAppPath + defAppHelperFileName; + if not FileExists(strHelper) then + SaveDataToFile(strHelper, defHelperDatas, Length(defHelperDatas)); + strWorkDir := FBdsPath + 'Bin'; + strCommandLine := Format('%s\LicenseManager.exe', [strWorkDir]); + if not FileExists(strCommandLine) then + raise Exception.CreateFmt('File %s not exists!', [strCommandLine]); + strCommandLine := Format(defBdsLicenseManager, [strCommandLine]); + FillChar(si, SizeOf(TStartupInfo), 0); + with si do + begin + cb := SizeOf(TStartupInfo); + dwFlags := STARTF_USESHOWWINDOW + STARTF_FORCEONFEEDBACK; + wShowWindow := SW_HIDE; + end; + if CreateProcessEx(nil, PChar(strCommandLine), nil, nil, False, 0, nil, PChar(strWorkDir), si, pi, AnsiString(strHelper)) then + try + WaitForSingleObject(pi.hProcess, INFINITE); + GetExitCodeProcess(pi.hProcess, nExitCode); + if nExitCode = 0 then + raise Exception.Create('BdsReg error!'); + finally + CloseHandle(pi.hThread); + CloseHandle(pi.hProcess); + end + else RaiseLastOSError; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2009.01.30 +//ܣȡWindowsϵͳĿ¼ +// +//////////////////////////////////////////////////////////////////////////////// +function TMainForm.GetSystemHostsFile: string; +const + defHostsFilePath = 'drivers\etc\hosts'; +var + nRet: LongWord; +begin + SetLength(Result, MAX_PATH); + nRet := GetSystemDirectory(PChar(Result), MAX_PATH); + if nRet = 0 then + Result := '' + else begin + SetLength(Result, nRet); + Result := IncludeTrailingPathDelimiter(Result) + defHostsFilePath; + end; +end; + +procedure TMainForm.kolMainFormDestroy(Sender: PObj); +begin + LogMessage('Destroy'); +{$IFNDEF DEBUGMODE} + DeleteFiles(FAppPath + '*.*'); + RemoveDirectory(PChar(FAppPath)); +{$ENDIF} +end; + +procedure TMainForm.kolMainFormFormCreate(Sender: PObj); +var + S: string; +begin + LogMessage('Create'); + + FAppPath := GetShellFolderPath(CSIDL_APPDATA); + FAppPath := IncludeTrailingPathDelimiter(FAppPath) + 'Activator\' + defAppVersion + '\'; + ForceDirectories(FAppPath); + S := GetModuleName(HInstance); + FCurFileBuild := GetFileBuildVersion(S); + + SetEnvironmentVariable('SESSIONNAME', 'Conso1e'); + + if ParamStr(1) = '-process' then + begin + Execute; + Halt(1); + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2003.09.21 +//ܣϵͳ˵ +// +//////////////////////////////////////////////////////////////////////////////// +function TMainForm.kolMainFormMessage(var Msg: TMsg; + var Rslt: Integer): Boolean; +begin + if (Msg.message = WM_SYSCOMMAND) and (Msg.WParam = UM_SHOWABOUT) then + ShowAboutMessage; + Result := False; +end; + +procedure TMainForm.kolMainFormShow(Sender: PObj); +var + hMain : HMENU; +begin + LogMessage('Show'); + + hMain := GetSystemMenu(Self.Form.Handle, False); + AppendMenu(hMain, MF_SEPARATOR, 0, nil); + AppendMenu(hMain, MF_STRING{ or MF_CHECKED}, UM_SHOWABOUT, 'About ...'); + SetMainFormHandle(Self.Form.Handle); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2011.09.21 +//ܣ޸ BDS.exe ļ +// +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.PatchBdsFile; + + function CurrentRadStudioVersion: PRadStudioVersion; inline; + begin + Assert(RadStudioVersionList.Count > 0); + Result := PRadStudioVersion(RadStudioVersionList.Objects[0]); + end; +var + S: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('PatchBdsFile'); +{$ENDIF} + S := FBdsPath + 'Bin\' + defBdsPatchFileName; +{$IFDEF DEBUGMODE} + LogMessage('Patch: ' + S); +{$ENDIF} + SHFolderDll.CreateSHFolderData(CurrentRadStudioVersion); + SaveDataToFile(S, SHFolderData, SizeOf(SHFolderData)); +end; + +procedure TMainForm.PatchLicenseHostsFile; +var + F, S: string; + nIndex, I: Integer; + pList, pHosts: PStrListEx; +begin +{$IFDEF DEBUGMODE} + LogMessage('PatchLicenseHostsFile'); +{$ENDIF} + F := GetSystemHostsFile; + pHosts := NewStrListEx; + with pHosts^ do + try + if FileExists(F) then + LoadFromFile(F); + pList := NewStrListEx; + for S in defLicenseHosts do + pList.Add(S); + for I := 0 to Count - 1 do + begin + S := Trim(Items[I]); + nIndex := pList.IndexOf(S); + if nIndex >= 0 then + pList.Delete(nIndex); + end; + if pList.Count > 0 then + try +{$IFDEF DEBUGMODE} + LogMessage('PatchLicenseHostsFile, SaveToFile: ' + F); +{$ENDIF} + AddStrings(pList); + FileSetReadOnly(F, False); + SaveToFile(F); + except + on E: Exception do + LogMessage('Disable Hosts Error: ' + E.Message); + end; + pList.Free; + finally + Free; + end; +end; + +procedure TMainForm.RestoreBdsFile; +var + S: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('RestoreBdsFile'); +{$ENDIF} + S := FBdsPath + 'Bin\' + defBdsPatchFileName; +{$IFDEF DEBUGMODE} + LogMessage('Restore: ' + S); +{$ENDIF} + Self.DeleteFile(S);; +end; + +procedure TMainForm.RestoreLicenseHostsFile; +var + F, S: string; + nIndex, nRet, I: Integer; + pList, pHosts: PStrListEx; +begin +{$IFDEF DEBUGMODE} + LogMessage('RestoreLicenseHostsFile'); +{$ENDIF} + F := GetSystemHostsFile; + if not FileExists(F) then + Exit; + pHosts := NewStrListEx; + with pHosts^ do + try + LoadFromFile(F); + pList := NewStrListEx; + for S in defLicenseHosts do + pList.Add(S); + nRet := 0; + for I := Count - 1 downto 0 do + begin + S := Trim(Items[I]); + nIndex := pList.IndexOf(S); + if nIndex < 0 then + Continue; + pHosts.Delete(I); + Inc(nRet); + end; + if nRet > 0 then + try +{$IFDEF DEBUGMODE} + LogMessage('RestoreLicenseHostsFile, SaveToFile: ' + F); +{$ENDIF} + FileSetReadOnly(F, False); + SaveToFile(F); + except + on E: Exception do + LogMessage('Disable Hosts Error: ' + E.Message); + end; + pList.Free; + finally + Free; + end; +end; + +procedure TMainForm.ShowAboutMessage; +begin + with Self.Form^ do + ShellAbout(Handle, PChar(string(Caption) + ', Lsuper'), PAnsiChar(AnsiString(defAppMessage)), Icon); +end; + +end. diff --git a/10.3.0/Activator/MainFrm_1.inc b/10.3.0/Activator/MainFrm_1.inc new file mode 100644 index 0000000..0fa614c --- /dev/null +++ b/10.3.0/Activator/MainFrm_1.inc @@ -0,0 +1,49 @@ +{ KOL MCK } // Do not remove this line! + +procedure NewMainForm( var Result: PMainForm; AParent: PControl ); +begin + + {$IFDEF KOLCLASSES} + Result := PMainForm.Create; + {$ELSE OBJECTS} + New( Result, Create ); + {$ENDIF KOL CLASSES/OBJECTS} + Result.Form := NewForm( AParent, 'Delphi 10.3 Activator' ).SetPosition( 8, 8 ); + Applet := Result.Form; + Result.Form.Add2AutoFree( Result ); + Result.Form.Style := Result.Form.Style and not (WS_MINIMIZEBOX or WS_MAXIMIZEBOX); + Result.Form.SetClientSize( 534, 122 ); + Result.Form.OnMessage := Result.kolMainFormMessage; + Result.Form.OnShow := Result.kolMainFormShow; + Result.Form.OnDestroy := Result.kolMainFormDestroy; + Result.btnAbout := NewButton( Result.Form, '&About' ).SetPosition( 325, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnAbout.Hint.Text := 'About'; + {$ENDIF USE_MHTOOLTIP} + Result.btnReset := NewButton( Result.Form, 'Re&set' ).SetPosition( 222, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnReset.Hint.Text := 'Reset Delphi 10.3'; + {$ENDIF USE_MHTOOLTIP} + Result.btnExit := NewButton( Result.Form, '&Exit' ).SetPosition( 428, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnExit.Hint.Text := 'Exit'; + {$ENDIF USE_MHTOOLTIP} + Result.btnRunX10 := NewButton( Result.Form, '&Run' ).SetPosition( 119, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnRunX10.Hint.Text := 'Run Delphi 10.3'; + {$ENDIF USE_MHTOOLTIP} + Result.btnActive := NewButton( Result.Form, '&Active' ).SetPosition( 16, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnActive.Hint.Text := 'Active Delphi 10.3'; + {$ENDIF USE_MHTOOLTIP} + Result.btnAbout.OnClick := Result.btnAboutClick; + Result.btnReset.OnClick := Result.btnResetClick; + Result.btnExit.OnClick := Result.btnExitClick; + Result.btnRunX10.OnClick := Result.btnRunX10Click; + Result.btnActive.OnClick := Result.btnActiveClick; + Result.Form.CenterOnParent.CanResize := False; + Result.Form.Perform( WM_INITMENU, 0, 0 ); + Result.kolMainFormFormCreate( Result ); + +end; + diff --git a/10.3.0/Activator/PatchData.inc b/10.3.0/Activator/PatchData.inc new file mode 100644 index 0000000..ad341a1 --- /dev/null +++ b/10.3.0/Activator/PatchData.inc @@ -0,0 +1,2976 @@ + defCglmSerialNumber = ''; + + defCglmFileDatas: array[0..255] of Byte = ( + $5B, $45, $6D, $62, $61, $72, $63, $61, $64, $65, $72, $6F, $20, $4C, $69, $63, + $65, $6E, $73, $65, $20, $4D, $61, $6E, $61, $67, $65, $6D, $65, $6E, $74, $5D, + $0D, $0A, $52, $6F, $6F, $74, $44, $69, $72, $3D, $24, $7B, $4D, $4F, $44, $55, + $4C, $45, $5F, $44, $49, $52, $7D, $5C, $2E, $2E, $0D, $0A, $4C, $69, $63, $65, + $6E, $73, $65, $44, $69, $72, $3D, $24, $7B, $52, $4F, $4F, $54, $44, $49, $52, + $7D, $5C, $4C, $69, $63, $65, $6E, $73, $65, $0D, $0A, $49, $6E, $66, $6F, $44, + $69, $72, $3D, $24, $7B, $43, $4F, $4D, $4D, $4F, $4E, $5F, $41, $50, $50, $44, + $41, $54, $41, $7D, $5C, $45, $6D, $62, $61, $72, $63, $61, $64, $65, $72, $6F, + $5C, $2E, $6C, $69, $63, $65, $6E, $73, $65, $73, $0D, $0A, $53, $6C, $69, $70, + $44, $69, $72, $3D, $24, $7B, $43, $4F, $4D, $4D, $4F, $4E, $5F, $41, $50, $50, + $44, $41, $54, $41, $7D, $5C, $45, $6D, $62, $61, $72, $63, $61, $64, $65, $72, + $6F, $5C, $0D, $0A, $52, $65, $67, $45, $78, $65, $3D, $4C, $69, $63, $65, $6E, + $73, $65, $4D, $61, $6E, $61, $67, $65, $72, $2E, $65, $78, $65, $0D, $0A, $4C, + $6F, $63, $6B, $54, $79, $70, $65, $3D, $35, $0D, $0A, $5B, $45, $6D, $62, $61, + $72, $63, $61, $64, $65, $72, $6F, $20, $53, $4C, $49, $50, $20, $46, $69, $6C, + $65, $73, $5D, $0D, $0A, $53, $4C, $49, $50, $46, $69, $6C, $65, $3D, $0D, $0A + ); + + defGenuineLicFileDatas: array[0..1919] of Byte = ( + $CC, $8F, $F6, $42, $00, $00, $07, $78, $D6, $E1, $23, $6F, $D7, $83, $D2, $45, + $8F, $73, $42, $E9, $D6, $CF, $61, $F1, $5D, $6B, $8B, $F9, $9C, $46, $CC, $77, + $1E, $DF, $BB, $D4, $40, $F4, $70, $2B, $CA, $EB, $BB, $5D, $BD, $52, $59, $99, + $C3, $E9, $17, $E8, $3B, $49, $92, $A3, $91, $44, $8B, $34, $03, $DF, $B3, $9A, + $25, $A2, $09, $54, $85, $AC, $A4, $2D, $DC, $0E, $5C, $B4, $F6, $8B, $09, $C4, + $5B, $67, $F3, $B3, $F8, $6E, $9F, $49, $7C, $F8, $C1, $FC, $52, $DD, $7D, $51, + $A6, $9B, $8D, $39, $F3, $30, $64, $93, $FC, $A9, $16, $9A, $2C, $5F, $97, $D4, + $F1, $38, $88, $40, $05, $AC, $82, $BC, $68, $D6, $59, $20, $B1, $AF, $B1, $61, + $9B, $4B, $07, $A6, $AD, $EC, $28, $A2, $07, $39, $99, $EB, $A2, $5D, $CD, $08, + $63, $BC, $9B, $CC, $46, $E2, $14, $5C, $8B, $E2, $86, $1C, $84, $77, $46, $9B, + $C0, $F9, $6C, $A7, $17, $51, $A2, $A4, $B0, $1B, $88, $00, $7C, $BD, $8B, $AD, + $39, $CE, $74, $7F, $DA, $D1, $D3, $61, $F9, $5A, $69, $AD, $85, $83, $3F, $F5, + $21, $43, $E8, $DB, $AC, $5A, $EB, $78, $04, $B7, $8F, $86, $74, $C1, $15, $5C, + $AF, $83, $A0, $0E, $FC, $75, $11, $F0, $A7, $D5, $44, $F0, $55, $7D, $AE, $BC, + $95, $3E, $A6, $28, $1C, $B9, $D0, $83, $1E, $C5, $51, $71, $95, $F7, $DD, $5B, + $DD, $49, $4B, $C7, $FD, $A2, $5E, $8F, $35, $65, $FA, $AC, $D0, $3C, $BD, $6E, + $6A, $DF, $FA, $EA, $3F, $9C, $06, $37, $97, $A4, $E6, $44, $D6, $7D, $6C, $8B, + $E9, $F2, $09, $DD, $63, $0A, $C5, $FF, $B4, $1A, $E3, $7D, $5E, $FD, $EB, $E0, + $76, $F3, $7E, $62, $A7, $B9, $D3, $0C, $FB, $68, $06, $E4, $9D, $99, $36, $AB, + $08, $53, $B1, $88, $FD, $00, $C3, $0D, $41, $F4, $E5, $D0, $7C, $EE, $78, $53, + $8D, $E4, $B5, $02, $AC, $17, $77, $96, $8A, $94, $3D, $80, $34, $5E, $83, $E8, + $A4, $14, $83, $09, $7C, $98, $89, $F8, $35, $E8, $60, $04, $FA, $8C, $A2, $3A, + $9B, $28, $1A, $BA, $A0, $CB, $25, $F1, $63, $15, $D8, $9B, $9F, $2E, $B2, $0C, + $76, $B6, $84, $8E, $07, $DA, $19, $50, $9E, $CB, $E1, $14, $F1, $1B, $57, $FF, + $AD, $96, $0A, $9B, $62, $24, $D1, $C2, $B8, $5B, $E5, $6A, $02, $97, $A4, $AF, + $2B, $AE, $10, $7A, $F2, $C9, $91, $57, $CC, $6F, $1D, $A7, $D9, $D7, $7D, $B6, + $6E, $50, $F7, $D6, $E0, $3A, $C1, $0D, $1D, $DC, $FD, $E4, $05, $C5, $0A, $2D, + $82, $FB, $D8, $49, $D9, $3B, $4B, $9D, $EA, $89, $6F, $F8, $5F, $32, $CA, $AC, + $81, $39, $BC, $26, $48, $8E, $E1, $CC, $27, $FA, $56, $55, $E6, $B7, $F5, $55, + $8F, $33, $33, $D4, $84, $D0, $5B, $D2, $59, $72, $B2, $FB, $C6, $2A, $A9, $78, + $41, $8C, $DE, $DB, $7D, $B7, $33, $77, $F4, $B9, $92, $6F, $83, $0A, $2C, $C5, + $92, $D2, $03, $E5, $5B, $1B, $D5, $BC, $80, $29, $8D, $52, $6F, $8E, $ED, $AF, + $15, $A6, $7D, $1F, $90, $EF, $EA, $7C, $ED, $1C, $31, $95, $B0, $C2, $7F, $D1, + $6A, $74, $AB, $A3, $DD, $42, $8E, $7A, $55, $94, $F4, $D9, $38, $C0, $71, $52, + $F5, $B0, $DC, $04, $AF, $37, $61, $8A, $CD, $86, $6C, $C2, $3D, $16, $9B, $FB, + $B9, $78, $B4, $16, $40, $B0, $89, $A5, $7C, $81, $05, $0B, $8E, $CD, $CF, $6C, + $8E, $70, $48, $D1, $EE, $E5, $73, $E7, $5E, $3D, $EE, $9D, $D9, $61, $E9, $53, + $4B, $D6, $B4, $F9, $7A, $DC, $5B, $75, $AE, $E2, $96, $4B, $BE, $13, $62, $90, + $B6, $97, $53, $D7, $3F, $23, $C5, $FE, $EA, $11, $A1, $52, $6B, $BD, $94, $87, + $4C, $CD, $0A, $6A, $9D, $DC, $87, $43, $A3, $46, $5D, $B4, $81, $FE, $73, $9F, + $10, $70, $EC, $88, $91, $21, $9A, $15, $40, $F0, $EB, $F5, $21, $EF, $7B, $7F, + $A1, $96, $FB, $26, $C6, $2F, $3E, $E6, $F1, $B3, $3D, $E2, $5F, $08, $86, $D8, + $B0, $1E, $FF, $06, $48, $F6, $B9, $BB, $4F, $AF, $49, $6F, $E5, $FF, $DB, $75, + $B3, $5A, $04, $FC, $D1, $C9, $50, $96, $73, $0E, $93, $9B, $86, $10, $B7, $78, + $7E, $AB, $DE, $F4, $34, $9B, $41, $6D, $C9, $D7, $B6, $18, $9F, $79, $57, $90, + $98, $99, $63, $A2, $32, $37, $9B, $CE, $B0, $2D, $B1, $7A, $64, $81, $DC, $80, + $5A, $F9, $32, $41, $F7, $9E, $E1, $5E, $FD, $29, $2D, $AA, $B2, $AB, $06, $F1, + $1A, $41, $EE, $87, $FA, $28, $8B, $1B, $7D, $DD, $86, $9A, $4C, $BD, $25, $2A, + $E2, $97, $CA, $37, $E1, $68, $0E, $D4, $B0, $FC, $46, $85, $0D, $18, $AD, $8D, + $FB, $51, $B1, $31, $06, $A4, $BA, $F0, $1D, $A3, $15, $7C, $BB, $A7, $8D, $35, + $F2, $43, $01, $9E, $E7, $82, $58, $C6, $25, $7F, $F0, $E6, $B4, $6B, $E4, $43, + $1C, $97, $AF, $A6, $4E, $C7, $62, $31, $89, $A5, $D6, $6B, $DF, $3F, $03, $EC, + $A7, $D1, $2B, $F4, $2A, $58, $B1, $DB, $9C, $0D, $82, $59, $78, $F1, $9D, $87, + $09, $E9, $5D, $2C, $8E, $B1, $9F, $46, $D7, $30, $30, $BA, $F8, $F5, $62, $87, + $0D, $03, $8D, $9D, $F3, $1F, $8E, $79, $04, $FF, $AB, $D4, $44, $90, $79, $65, + $DF, $D2, $A1, $17, $B5, $73, $0F, $FB, $B9, $FD, $5B, $E2, $3E, $41, $B5, $D2, + $95, $09, $82, $41, $0C, $D4, $BA, $A3, $48, $D2, $7E, $14, $86, $AE, $9D, $13, + $9C, $49, $60, $E0, $95, $B1, $7F, $96, $26, $39, $C2, $A5, $F1, $03, $A2, $54, + $66, $87, $F2, $D8, $67, $EE, $2D, $4B, $95, $8E, $DF, $1A, $E5, $4F, $6E, $D7, + $A8, $C1, $38, $95, $77, $03, $C6, $FA, $F3, $63, $A8, $13, $00, $89, $C2, $F3, + $7C, $A8, $48, $2B, $8E, $84, $EE, $18, $A4, $01, $08, $BF, $CB, $A7, $3B, $CA, + $54, $59, $BA, $C2, $A4, $64, $A9, $61, $3F, $B5, $F3, $C2, $55, $F6, $36, $2B, + $A0, $CB, $F5, $74, $92, $37, $68, $EE, $A9, $B4, $21, $AD, $02, $6C, $C3, $F1, + $87, $40, $DB, $35, $3B, $90, $ED, $EA, $5C, $86, $12, $58, $C1, $8D, $FA, $71, + $B5, $71, $3B, $9A, $D2, $85, $68, $D6, $67, $18, $BD, $D0, $A0, $3F, $A4, $0F, + $58, $FD, $84, $92, $65, $E0, $2B, $4D, $91, $B3, $AC, $4A, $FF, $3D, $1D, $A4, + $CE, $E0, $47, $B5, $32, $59, $C2, $BC, $8C, $6F, $DF, $68, $5F, $E5, $B7, $B4, + $04, $FF, $60, $6E, $F1, $F7, $CC, $06, $D3, $62, $39, $EC, $CC, $FD, $26, $E6, + $54, $47, $FA, $8B, $89, $21, $B4, $3B, $32, $F6, $B5, $CA, $58, $DF, $45, $51, + $D2, $A1, $8F, $46, $E7, $52, $67, $FA, $DA, $D3, $6B, $DD, $02, $74, $AD, $FE, + $86, $31, $AF, $55, $47, $E4, $EB, $B9, $02, $CB, $39, $3C, $94, $84, $99, $68, + $EB, $34, $2E, $81, $F7, $E7, $75, $AE, $39, $64, $C4, $83, $A5, $4E, $C1, $00, + $49, $CB, $FB, $DD, $1C, $8B, $77, $59, $B4, $C1, $C4, $75, $9B, $7E, $0F, $D4, + $8E, $F5, $65, $E6, $25, $49, $98, $DC, $93, $28, $B9, $46, $52, $99, $F0, $F7, + $7C, $96, $56, $3D, $D0, $AB, $F3, $4A, $D1, $1F, $73, $9F, $DF, $BB, $01, $B6, + $56, $41, $A8, $E6, $C1, $19, $D7, $25, $7B, $90, $C9, $CA, $60, $FA, $47, $3A, + $8E, $BE, $9B, $58, $F9, $24, $24, $DD, $D9, $A2, $42, $C0, $29, $26, $F5, $B4, + $B6, $43, $AA, $01, $13, $FA, $9D, $EC, $0E, $E4, $7C, $1C, $ED, $E6, $84, $14, + $EE, $62, $79, $85, $DD, $A2, $57, $94, $4D, $51, $BD, $B3, $AD, $1F, $C8, $24, + $6A, $D7, $90, $8C, $2B, $B4, $59, $5F, $D1, $E1, $C0, $4B, $E8, $21, $31, $F8, + $A0, $DE, $0F, $FC, $3B, $29, $BD, $CB, $D4, $51, $AE, $1F, $3A, $A2, $D8, $EB, + $5B, $D8, $76, $48, $DA, $AE, $E3, $4B, $B4, $45, $4E, $E5, $EF, $9F, $74, $90, + $30, $2E, $BA, $C8, $B6, $2F, $E6, $16, $33, $B7, $F4, $A8, $3B, $D9, $4B, $60, + $F3, $9F, $CA, $7D, $F8, $07, $2E, $88, $9A, $95, $27, $F5, $09, $5A, $AC, $B4, + $F7, $5C, $D4, $71, $0E, $D6, $EF, $FE, $3C, $C2, $17, $20, $E9, $B4, $88, $6D, + $CC, $58, $4E, $F4, $F9, $FE, $2E, $A4, $6A, $26, $EC, $9E, $CD, $23, $8E, $40, + $08, $C1, $90, $CF, $2B, $C8, $0F, $65, $F5, $C4, $86, $76, $F7, $41, $1C, $8E, + $8C, $A2, $06, $C8, $22, $59, $F7, $8F, $E7, $4F, $C6, $35, $39, $8C, $E2, $E8, + $24, $D0, $59, $77, $CE, $B7, $91, $04, $D9, $48, $6F, $CC, $8A, $D5, $4D, $D0, + $1F, $3E, $CB, $F7, $E0, $4A, $83, $4A, $3B, $CC, $D8, $95, $05, $FA, $71, $77, + $F7, $8D, $C3, $7F, $EE, $6F, $0D, $D6, $C9, $AB, $66, $A7, $44, $22, $DA, $AF, + $CC, $52, $D6, $71, $5A, $C4, $FB, $89, $0F, $C5, $63, $62, $DD, $B8, $E8, $3E, + $DC, $09, $56, $98, $92, $FD, $5F, $F0, $7E, $46, $B8, $90, $D1, $2A, $C8, $4B, + $13, $D8, $83, $CC, $5C, $B3, $4D, $01, $8E, $E9, $A4, $1E, $C4, $1B, $05, $E1, + $D9, $EB, $10, $FC, $70, $56, $AB, $8C, $9F, $5B, $A7, $6D, $6B, $A3, $B0, $E1, + $3B, $E2, $44, $27, $C3, $A0, $F3, $44, $E5, $42, $27, $E2, $C0, $9A, $26, $DF, + $52, $3D, $B2, $F7, $81, $1F, $FA, $11, $61, $F9, $E9, $87, $4C, $FA, $7F, $33, + $8C, $85, $D8, $66, $F2, $48, $38, $F0, $BD, $84, $2B, $FF, $7F, $6B, $D5, $9E, + $BF, $69, $B6, $3E, $57, $CA, $96, $93, $09, $BB, $7D, $3C, $D9, $DC, $D1, $58, + $83, $12, $7C, $C7, $E8, $C9, $13, $B4, $53, $64, $FB, $8C, $C9, $63, $E6, $14, + $26, $C4, $C9, $F7, $56, $AE, $6B, $26, $D6, $C2, $B2, $77, $D0, $13, $1A, $E8, + $C4, $B5, $0E, $D8, $66, $44, $D0, $B7, $CB, $63, $94, $68, $0F, $E2, $E3, $9E, + $5D, $A0, $6B, $2C, $EB, $88, $BB, $33, $9F, $28, $7F, $A8, $A2, $B9, $33, $EC, + $54, $62, $D9, $BE, $86, $1A, $8E, $08, $55, $F5, $B6, $A8, $5C, $DD, $3E, $6E, + $B7, $9C, $97, $40, $FB, $31, $17, $DD, $F7, $9C, $21, $AD, $5E, $2B, $AE, $D1, + $8E, $6B, $8C, $60, $1B, $C7, $F0, $85, $13, $F3, $6D, $62, $BE, $C6, $B3, $76, + $87, $09, $7B, $A3, $ED, $AC, $2D, $D9, $7C, $18, $DE, $FC, $97, $00, $A0, $32, + $64, $99, $F7, $CA, $38, $A8, $58, $6E, $AA, $C9, $AC, $58, $A6, $59, $68, $9D, + $C5, $F2, $5F, $9C, $53, $68, $A8, $B3, $95, $64, $8B, $3F, $07, $ED, $BF, $F4, + $0E, $8C, $44, $12, $81, $E5, $A6, $16, $8A, $17, $11, $A7, $F6, $81, $14, $D8, + $14, $55, $C8, $E5, $9E, $60, $FA, $79, $24, $BD, $AA, $AB, $79, $FC, $06, $3C, + $FC, $DC, $98, $7B, $E5, $2F, $7D, $DA, $9B, $CA, $7B, $83, $44, $29, $E9, $BC, + $D3, $05, $C1, $14, $68, $87, $8B, $A5, $0B, $EC, $2E, $57, $E5, $CB, $90, $45, + $DE, $47, $62, $9B, $C8, $93, $3C, $C7, $3C, $08, $AE, $BC, $FE, $5D, $FC, $6A, + $4E, $A8, $A4, $DF, $06, $F5, $52, $29, $95, $A5, $D8, $1D, $F4, $16, $4E, $B5, + $A6, $C8, $10, $EF, $77, $34, $C9, $99, $A4, $7E, $A2, $3C, $22, $A2, $85, $FB, + $65, $D8, $68, $1E, $EC, $F6, $DD, $3E, $D7, $70, $62, $83, $E9, $E1, $27, $AF, + $2F, $39, $F4, $BD, $80, $3E, $F3, $3A, $0F, $C1, $F0, $F0, $16, $CE, $45, $42, + $B1, $BA, $C1, $57, $B1, $7C, $27, $EA, $F4, $9E, $15, $E1, $2A, $29, $9D, $FA, + $C0, $16, $DD, $3D, $70, $CB, $C2, $94, $7B, $FE, $4F, $0A, $9B, $DA, $9A, $0B + ); + + defTrialLicFileDatas: array[0..1919] of Byte = ( + $CC, $8F, $F6, $42, $00, $00, $07, $78, $D6, $E1, $23, $6F, $D7, $83, $D2, $45, + $8F, $73, $42, $E9, $D6, $CF, $61, $F1, $5D, $6B, $8B, $F9, $9C, $46, $CC, $77, + $1E, $DF, $BB, $D4, $40, $F4, $70, $2B, $CA, $EB, $BB, $5D, $BD, $52, $59, $99, + $C3, $E9, $17, $E8, $3B, $49, $92, $A3, $91, $44, $8B, $34, $03, $DF, $B3, $9A, + $25, $A2, $09, $54, $85, $AC, $A4, $2D, $DC, $0E, $5C, $B4, $F6, $8B, $09, $C4, + $5B, $67, $F3, $B3, $F8, $6E, $9F, $49, $7C, $F8, $C1, $FC, $52, $DD, $7D, $51, + $A6, $9B, $8D, $39, $F3, $30, $64, $93, $FC, $A9, $16, $9A, $2C, $5F, $97, $D4, + $F1, $38, $88, $40, $05, $AC, $82, $BC, $68, $D6, $59, $20, $B1, $AF, $B1, $61, + $9B, $4B, $07, $A6, $AD, $EC, $28, $A2, $07, $39, $99, $EB, $A2, $5D, $CD, $08, + $63, $BC, $9B, $CC, $46, $E2, $14, $5C, $8B, $E2, $86, $1C, $84, $77, $46, $9B, + $C0, $F9, $6C, $A7, $17, $51, $A2, $A4, $B0, $1B, $88, $00, $7C, $BD, $8B, $AD, + $39, $CE, $74, $7F, $DA, $D1, $D3, $61, $F9, $5A, $69, $AD, $85, $83, $3F, $F5, + $21, $43, $E8, $DB, $AC, $5A, $EB, $78, $04, $B7, $8F, $86, $74, $C1, $15, $5C, + $AF, $83, $A0, $0E, $FC, $75, $11, $F0, $A7, $D5, $44, $F0, $55, $7D, $AE, $BC, + $95, $3E, $A6, $28, $1C, $B9, $D0, $83, $1E, $C5, $51, $71, $95, $F7, $DD, $5B, + $DD, $49, $4B, $C7, $FD, $A2, $5E, $8F, $35, $65, $FA, $AC, $D0, $3C, $BD, $6E, + $6A, $DF, $FA, $EA, $3F, $9C, $06, $37, $97, $A4, $E6, $44, $D6, $7D, $6C, $8B, + $E9, $F2, $09, $DD, $63, $0A, $C5, $FF, $B4, $1A, $E3, $7D, $5E, $FD, $EB, $E0, + $76, $F3, $7E, $62, $A7, $B9, $D3, $0C, $FB, $68, $06, $E4, $9D, $99, $36, $AB, + $08, $53, $B1, $88, $FD, $00, $C3, $0D, $41, $F4, $E5, $D0, $7C, $EE, $78, $53, + $8D, $E4, $B5, $02, $AC, $17, $77, $96, $8A, $94, $3D, $80, $34, $5E, $83, $E8, + $A4, $14, $83, $09, $7C, $98, $89, $F8, $35, $E8, $60, $04, $FA, $8C, $A2, $3A, + $9B, $28, $1A, $BA, $A0, $CB, $25, $F1, $63, $15, $D8, $9B, $9F, $2E, $B2, $0C, + $76, $B6, $84, $8E, $07, $DA, $19, $50, $9E, $CB, $E1, $14, $F1, $1B, $57, $FF, + $AD, $96, $0A, $9B, $62, $24, $D1, $C2, $B8, $5B, $E5, $6A, $02, $97, $A4, $AF, + $2B, $AE, $10, $7A, $F2, $C9, $91, $57, $CC, $6F, $1D, $A7, $D9, $D7, $7D, $B6, + $6E, $50, $F7, $D6, $E0, $3A, $C1, $0D, $1D, $DC, $FD, $E4, $05, $C5, $0A, $2D, + $82, $FB, $D8, $49, $D9, $3B, $4B, $9D, $EA, $89, $6F, $F8, $5F, $32, $CA, $AC, + $81, $39, $BC, $26, $48, $8E, $E1, $CC, $27, $FA, $56, $55, $E6, $B7, $F5, $55, + $8F, $33, $33, $D4, $84, $D0, $5B, $D2, $59, $72, $B2, $FB, $C6, $2A, $A9, $78, + $41, $8C, $DE, $DB, $7D, $B7, $33, $77, $F4, $B9, $92, $6F, $83, $0A, $2C, $C5, + $92, $D2, $03, $E5, $5B, $1B, $D5, $BC, $80, $29, $8D, $52, $6F, $8E, $ED, $AF, + $15, $A6, $7D, $1F, $90, $EF, $EA, $7C, $ED, $1C, $31, $95, $B0, $C2, $7F, $D1, + $6A, $74, $AB, $A3, $DD, $42, $8E, $7A, $55, $94, $F4, $D9, $38, $C0, $71, $52, + $F5, $B0, $DC, $04, $AF, $37, $61, $8A, $CD, $86, $6C, $C2, $3D, $16, $9B, $FB, + $B9, $78, $B4, $16, $40, $B0, $89, $A5, $7C, $81, $05, $0B, $8E, $CD, $CF, $6C, + $8E, $70, $48, $D1, $EE, $E5, $73, $E7, $5E, $3D, $EE, $9D, $D9, $61, $E9, $53, + $4B, $D6, $B4, $F9, $7A, $DC, $5B, $75, $AE, $E2, $96, $4B, $BE, $13, $62, $90, + $B6, $97, $53, $D7, $3F, $23, $C5, $FE, $EA, $11, $A1, $52, $6B, $BD, $94, $87, + $4C, $CD, $0A, $6A, $9D, $DC, $87, $43, $A3, $46, $5D, $B4, $81, $FE, $73, $9F, + $10, $70, $EC, $88, $91, $21, $9A, $15, $40, $F0, $EB, $F5, $21, $EF, $7B, $7F, + $A1, $96, $FB, $26, $C6, $2F, $3E, $E6, $F1, $B3, $3D, $E2, $5F, $08, $86, $D8, + $B0, $1E, $FF, $06, $48, $F6, $B9, $BB, $4F, $AF, $49, $6F, $E5, $FF, $DB, $75, + $B3, $5A, $04, $FC, $D1, $C9, $50, $96, $73, $0E, $93, $9B, $86, $10, $B7, $78, + $7E, $AB, $DE, $F4, $34, $9B, $41, $6D, $C9, $D7, $B6, $18, $9F, $79, $57, $90, + $98, $99, $63, $A2, $32, $37, $9B, $CE, $B0, $2D, $B1, $7A, $64, $81, $DC, $80, + $5A, $F9, $32, $41, $F7, $9E, $E1, $5E, $FD, $29, $2D, $AA, $B2, $AB, $06, $F1, + $1A, $41, $EE, $87, $FA, $28, $8B, $1B, $7D, $DD, $86, $9A, $4C, $BD, $25, $2A, + $E2, $97, $CA, $37, $E1, $68, $0E, $D4, $B0, $FC, $46, $85, $0D, $18, $AD, $8D, + $FB, $51, $B1, $31, $06, $A4, $BA, $F0, $1D, $A3, $15, $7C, $BB, $A7, $8D, $35, + $F2, $43, $01, $9E, $E7, $82, $58, $C6, $25, $7F, $F0, $E6, $B4, $6B, $E4, $43, + $1C, $97, $AF, $A6, $4E, $C7, $62, $31, $89, $A5, $D6, $6B, $DF, $3F, $03, $EC, + $A7, $D1, $2B, $F4, $2A, $58, $B1, $DB, $9C, $0D, $82, $59, $78, $F1, $9D, $87, + $09, $E9, $5D, $2C, $8E, $B1, $9F, $46, $D7, $30, $30, $BA, $F8, $F5, $62, $87, + $0D, $03, $8D, $9D, $F3, $1F, $8E, $79, $04, $FF, $AB, $D4, $44, $90, $79, $65, + $DF, $D2, $A1, $17, $B5, $73, $0F, $FB, $B9, $FD, $5B, $E2, $3E, $41, $B5, $D2, + $95, $09, $82, $41, $0C, $D4, $BA, $A3, $48, $D2, $7E, $14, $86, $AE, $9D, $13, + $9C, $49, $60, $E0, $95, $B1, $7F, $96, $26, $39, $C2, $A5, $F1, $03, $A2, $54, + $66, $87, $F2, $D8, $67, $EE, $2D, $4B, $95, $8E, $DF, $1A, $E5, $4F, $6E, $D7, + $A8, $C1, $38, $95, $77, $03, $C6, $FA, $F3, $63, $A8, $13, $00, $89, $C2, $F3, + $7C, $A8, $48, $2B, $8E, $84, $EE, $18, $A4, $01, $08, $BF, $CB, $A7, $3B, $CA, + $54, $59, $BA, $C2, $A4, $64, $A9, $61, $3F, $B5, $F3, $C2, $55, $F6, $36, $2B, + $A0, $CB, $F5, $74, $92, $37, $68, $EE, $A9, $B4, $21, $AD, $02, $6C, $C3, $F1, + $87, $40, $DB, $35, $3B, $90, $ED, $EA, $5C, $86, $12, $58, $C1, $8D, $FA, $71, + $B5, $71, $3B, $9A, $D2, $85, $68, $D6, $67, $18, $BD, $D0, $A0, $3F, $A4, $0F, + $58, $FD, $84, $92, $65, $E0, $2B, $4D, $91, $B3, $AC, $4A, $FF, $3D, $1D, $A4, + $CE, $E0, $47, $B5, $32, $59, $C2, $BC, $8C, $6F, $DF, $68, $5F, $E5, $B7, $B4, + $04, $FF, $60, $6E, $F1, $F7, $CC, $06, $D3, $62, $39, $EC, $CC, $FD, $26, $E6, + $54, $47, $FA, $8B, $89, $21, $B4, $3B, $32, $F6, $B5, $CA, $58, $DF, $45, $51, + $D2, $A1, $8F, $46, $E7, $52, $67, $FA, $DA, $D3, $6B, $DD, $02, $74, $AD, $FE, + $86, $31, $AF, $55, $47, $E4, $EB, $B9, $02, $CB, $39, $3C, $94, $84, $99, $68, + $EB, $34, $2E, $81, $F7, $E7, $75, $AE, $39, $64, $C4, $83, $A5, $4E, $C1, $00, + $49, $CB, $FB, $DD, $1C, $8B, $77, $59, $B4, $C1, $C4, $75, $9B, $7E, $0F, $D4, + $8E, $F5, $65, $E6, $25, $49, $98, $DC, $93, $28, $B9, $46, $52, $99, $F0, $F7, + $7C, $96, $56, $3D, $D0, $AB, $F3, $4A, $D1, $1F, $73, $9F, $DF, $BB, $01, $B6, + $56, $41, $A8, $E6, $C1, $19, $D7, $25, $7B, $90, $C9, $CA, $60, $FA, $47, $3A, + $8E, $BE, $9B, $58, $F9, $24, $24, $DD, $D9, $A2, $42, $C0, $29, $26, $F5, $B4, + $B6, $43, $AA, $01, $13, $FA, $9D, $EC, $0E, $E4, $7C, $1C, $ED, $E6, $84, $14, + $EE, $62, $79, $85, $DD, $A2, $57, $94, $4D, $51, $BD, $B3, $AD, $1F, $C8, $24, + $6A, $D7, $90, $8C, $2B, $B4, $59, $5F, $D1, $E1, $C0, $4B, $E8, $21, $31, $F8, + $A0, $DE, $0F, $FC, $3B, $29, $BD, $CB, $D4, $51, $AE, $1F, $3A, $A2, $D8, $EB, + $5B, $D8, $76, $48, $DA, $AE, $E3, $4B, $B4, $45, $4E, $E5, $EF, $9F, $74, $90, + $30, $2E, $BA, $C8, $B6, $2F, $E6, $16, $33, $B7, $F4, $A8, $3B, $D9, $4B, $60, + $F3, $9F, $CA, $7D, $F8, $07, $2E, $88, $9A, $95, $27, $F5, $09, $5A, $AC, $B4, + $F7, $5C, $D4, $71, $0E, $D6, $EF, $FE, $3C, $C2, $17, $20, $E9, $B4, $88, $6D, + $CC, $58, $4E, $F4, $F9, $FE, $2E, $A4, $6A, $26, $EC, $9E, $CD, $23, $8E, $40, + $08, $C1, $90, $CF, $2B, $C8, $0F, $65, $F5, $C4, $86, $76, $F7, $41, $1C, $8E, + $8C, $A2, $06, $C8, $22, $59, $F7, $8F, $E7, $4F, $C6, $35, $39, $8C, $E2, $E8, + $24, $D0, $59, $77, $CE, $B7, $91, $04, $D9, $48, $6F, $CC, $8A, $D5, $4D, $D0, + $1F, $3E, $CB, $F7, $E0, $4A, $83, $4A, $3B, $CC, $D8, $95, $05, $FA, $71, $77, + $F7, $8D, $C3, $7F, $EE, $6F, $0D, $D6, $C9, $AB, $66, $A7, $44, $22, $DA, $AF, + $CC, $52, $D6, $71, $5A, $C4, $FB, $89, $0F, $C5, $63, $62, $DD, $B8, $E8, $3E, + $DC, $09, $56, $98, $92, $FD, $5F, $F0, $7E, $46, $B8, $90, $D1, $2A, $C8, $4B, + $13, $D8, $83, $CC, $5C, $B3, $4D, $01, $8E, $E9, $A4, $1E, $C4, $1B, $05, $E1, + $D9, $EB, $10, $FC, $70, $56, $AB, $8C, $9F, $5B, $A7, $6D, $6B, $A3, $B0, $E1, + $3B, $E2, $44, $27, $C3, $A0, $F3, $44, $E5, $42, $27, $E2, $C0, $9A, $26, $DF, + $52, $3D, $B2, $F7, $81, $1F, $FA, $11, $61, $F9, $E9, $87, $4C, $FA, $7F, $33, + $8C, $85, $D8, $66, $F2, $48, $38, $F0, $BD, $84, $2B, $FF, $7F, $6B, $D5, $9E, + $BF, $69, $B6, $3E, $57, $CA, $96, $93, $09, $BB, $7D, $3C, $D9, $DC, $D1, $58, + $83, $12, $7C, $C7, $E8, $C9, $13, $B4, $53, $64, $FB, $8C, $C9, $63, $E6, $14, + $26, $C4, $C9, $F7, $56, $AE, $6B, $26, $D6, $C2, $B2, $77, $D0, $13, $1A, $E8, + $C4, $B5, $0E, $D8, $66, $44, $D0, $B7, $CB, $63, $94, $68, $0F, $E2, $E3, $9E, + $5D, $A0, $6B, $2C, $EB, $88, $BB, $33, $9F, $28, $7F, $A8, $A2, $B9, $33, $EC, + $54, $62, $D9, $BE, $86, $1A, $8E, $08, $55, $F5, $B6, $A8, $5C, $DD, $3E, $6E, + $B7, $9C, $97, $40, $FB, $31, $17, $DD, $F7, $9C, $21, $AD, $5E, $2B, $AE, $D1, + $8E, $6B, $8C, $60, $1B, $C7, $F0, $85, $13, $F3, $6D, $62, $BE, $C6, $B3, $76, + $87, $09, $7B, $A3, $ED, $AC, $2D, $D9, $7C, $18, $DE, $FC, $97, $00, $A0, $32, + $64, $99, $F7, $CA, $38, $A8, $58, $6E, $AA, $C9, $AC, $58, $A6, $59, $68, $9D, + $C5, $F2, $5F, $9C, $53, $68, $A8, $B3, $95, $64, $8B, $3F, $07, $ED, $BF, $F4, + $0E, $8C, $44, $12, $81, $E5, $A6, $16, $8A, $17, $11, $A7, $F6, $81, $14, $D8, + $14, $55, $C8, $E5, $9E, $60, $FA, $79, $24, $BD, $AA, $AB, $79, $FC, $06, $3C, + $FC, $DC, $98, $7B, $E5, $2F, $7D, $DA, $9B, $CA, $7B, $83, $44, $29, $E9, $BC, + $D3, $05, $C1, $14, $68, $87, $8B, $A5, $0B, $EC, $2E, $57, $E5, $CB, $90, $45, + $DE, $47, $62, $9B, $C8, $93, $3C, $C7, $3C, $08, $AE, $BC, $FE, $5D, $FC, $6A, + $4E, $A8, $A4, $DF, $06, $F5, $52, $29, $95, $A5, $D8, $1D, $F4, $16, $4E, $B5, + $A6, $C8, $10, $EF, $77, $34, $C9, $99, $A4, $7E, $A2, $3C, $22, $A2, $85, $FB, + $65, $D8, $68, $1E, $EC, $F6, $DD, $3E, $D7, $70, $62, $83, $E9, $E1, $27, $AF, + $2F, $39, $F4, $BD, $80, $3E, $F3, $3A, $0F, $C1, $F0, $F0, $16, $CE, $45, $42, + $B1, $BA, $C1, $57, $B1, $7C, $27, $EA, $F4, $9E, $15, $E1, $2A, $29, $9D, $FA, + $C0, $16, $DD, $3D, $70, $CB, $C2, $94, $7B, $FE, $4F, $0A, $9B, $DA, $9A, $0B + ); + + defHelperDatas: array[0..43287] of Byte = ( + $4D, $5A, $50, $00, $02, $00, $00, $00, $04, $00, $0F, $00, $FF, $FF, $00, $00, + $B8, $00, $00, $00, $00, $00, $00, $00, $40, $00, $1A, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, + $BA, $10, $00, $0E, $1F, $B4, $09, $CD, $21, $B8, $01, $4C, $CD, $21, $90, $90, + $54, $68, $69, $73, $20, $70, $72, $6F, $67, $72, $61, $6D, $20, $6D, $75, $73, + $74, $20, $62, $65, $20, $72, $75, $6E, $20, $75, $6E, $64, $65, $72, $20, $57, + $69, $6E, $33, $32, $0D, $0A, $24, $37, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $50, $45, $00, $00, $4C, $01, $08, $00, $A4, $61, $01, $5C, $00, $00, $00, $00, + $00, $00, $00, $00, $E0, $00, $8E, $A1, $0B, $01, $02, $19, $00, $46, $00, $00, + $00, $34, $00, $00, $00, $00, $00, $00, $D4, $60, $00, $00, $00, $10, $00, $00, + $00, $70, $00, $00, $00, $00, $40, $00, $00, $10, $00, $00, $00, $02, $00, $00, + $04, $00, $00, $00, $00, $00, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $01, $00, $00, $04, $00, $00, $77, $49, $01, $00, $02, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $00, $00, $10, $00, $00, + $00, $00, $00, $00, $10, $00, $00, $00, $00, $C0, $00, $00, $6B, $00, $00, $00, + $00, $B0, $00, $00, $12, $06, $00, $00, $00, $E0, $00, $00, $00, $16, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $7E, $00, $00, $18, $2B, $00, $00, + $00, $D0, $00, $00, $38, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $74, $B1, $00, $00, $E8, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $2E, $74, $65, $78, $74, $00, $00, $00, + $48, $42, $00, $00, $00, $10, $00, $00, $00, $44, $00, $00, $00, $04, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $00, $00, $60, + $2E, $69, $74, $65, $78, $74, $00, $00, $EC, $00, $00, $00, $00, $60, $00, $00, + $00, $02, $00, $00, $00, $48, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $20, $00, $00, $60, $2E, $64, $61, $74, $61, $00, $00, $00, + $04, $0D, $00, $00, $00, $70, $00, $00, $00, $0E, $00, $00, $00, $4A, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $C0, + $2E, $62, $73, $73, $00, $00, $00, $00, $1C, $28, $00, $00, $00, $80, $00, $00, + $00, $00, $00, $00, $00, $58, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $C0, $2E, $69, $64, $61, $74, $61, $00, $00, + $12, $06, $00, $00, $00, $B0, $00, $00, $00, $08, $00, $00, $00, $58, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $C0, + $2E, $65, $64, $61, $74, $61, $00, $00, $6B, $00, $00, $00, $00, $C0, $00, $00, + $00, $02, $00, $00, $00, $60, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $40, $2E, $72, $65, $6C, $6F, $63, $00, $00, + $38, $04, $00, $00, $00, $D0, $00, $00, $00, $06, $00, $00, $00, $62, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $42, + $2E, $72, $73, $72, $63, $00, $00, $00, $00, $16, $00, $00, $00, $E0, $00, $00, + $00, $16, $00, $00, $00, $68, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $7E, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $FF, $25, $CC, $B1, $40, $00, $8B, $C0, $FF, $25, $C8, $B1, $40, $00, $8B, $C0, + $FF, $25, $C4, $B1, $40, $00, $8B, $C0, $FF, $25, $C0, $B1, $40, $00, $8B, $C0, + $FF, $25, $BC, $B1, $40, $00, $8B, $C0, $FF, $25, $B8, $B1, $40, $00, $8B, $C0, + $FF, $25, $8C, $B1, $40, $00, $8B, $C0, $FF, $25, $B4, $B1, $40, $00, $8B, $C0, + $FF, $25, $B0, $B1, $40, $00, $8B, $C0, $FF, $25, $AC, $B1, $40, $00, $8B, $C0, + $FF, $25, $7C, $B1, $40, $00, $8B, $C0, $FF, $25, $78, $B1, $40, $00, $8B, $C0, + $FF, $25, $74, $B1, $40, $00, $8B, $C0, $FF, $25, $A8, $B1, $40, $00, $8B, $C0, + $FF, $25, $A4, $B1, $40, $00, $8B, $C0, $53, $83, $C4, $BC, $BB, $0A, $00, $00, + $00, $54, $E8, $C1, $FF, $FF, $FF, $F6, $44, $24, $2C, $01, $74, $05, $0F, $B7, + $5C, $24, $30, $8B, $C3, $83, $C4, $44, $5B, $C3, $8B, $C0, $FF, $25, $A0, $B1, + $40, $00, $8B, $C0, $FF, $25, $9C, $B1, $40, $00, $8B, $C0, $FF, $25, $98, $B1, + $40, $00, $8B, $C0, $FF, $25, $88, $B1, $40, $00, $8B, $C0, $FF, $FF, $FF, $FF, + $57, $00, $00, $00, $46, $61, $73, $74, $4D, $4D, $20, $42, $6F, $72, $6C, $61, + $6E, $64, $20, $45, $64, $69, $74, $69, $6F, $6E, $20, $A9, $20, $32, $30, $30, + $34, $2C, $20, $32, $30, $30, $35, $20, $50, $69, $65, $72, $72, $65, $20, $6C, + $65, $20, $52, $69, $63, $68, $65, $20, $2F, $20, $50, $72, $6F, $66, $65, $73, + $73, $69, $6F, $6E, $61, $6C, $20, $53, $6F, $66, $74, $77, $61, $72, $65, $20, + $44, $65, $76, $65, $6C, $6F, $70, $6D, $65, $6E, $74, $00, $F0, $0F, $B0, $11, + $C3, $8D, $40, $00, $8B, $08, $89, $0A, $8B, $48, $04, $8B, $40, $08, $89, $4A, + $04, $89, $42, $08, $C3, $8D, $40, $00, $8B, $08, $89, $0A, $8B, $48, $04, $89, + $4A, $04, $8B, $48, $08, $89, $4A, $08, $8B, $48, $0C, $8B, $40, $10, $89, $4A, + $0C, $89, $42, $10, $C3, $8D, $40, $00, $8B, $08, $89, $0A, $8B, $48, $04, $89, + $4A, $04, $8B, $48, $08, $89, $4A, $08, $8B, $48, $0C, $89, $4A, $0C, $8B, $48, + $10, $89, $4A, $10, $8B, $48, $14, $8B, $40, $18, $89, $4A, $14, $89, $42, $18, + $C3, $8D, $40, $00, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $8B, + $48, $20, $89, $4A, $20, $DF, $7A, $18, $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, + $C3, $8D, $40, $00, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $DF, + $68, $20, $8B, $48, $28, $89, $4A, $28, $DF, $7A, $20, $DF, $7A, $18, $DF, $7A, + $10, $DF, $7A, $08, $DF, $3A, $C3, $90, $DF, $28, $DF, $68, $08, $DF, $68, $10, + $DF, $68, $18, $DF, $68, $20, $DF, $68, $28, $8B, $48, $30, $89, $4A, $30, $DF, + $7A, $28, $DF, $7A, $20, $DF, $7A, $18, $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, + $C3, $8D, $40, $00, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $DF, + $68, $20, $DF, $68, $28, $DF, $68, $30, $8B, $48, $38, $89, $4A, $38, $DF, $7A, + $30, $DF, $7A, $28, $DF, $7A, $20, $DF, $7A, $18, $DF, $7A, $10, $DF, $7A, $08, + $DF, $3A, $C3, $90, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $DF, + $68, $20, $DF, $68, $28, $DF, $68, $30, $DF, $68, $38, $8B, $48, $40, $89, $4A, + $40, $DF, $7A, $38, $DF, $7A, $30, $DF, $7A, $28, $DF, $7A, $20, $DF, $7A, $18, + $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, $C3, $8D, $40, $00, $83, $E9, $0C, $01, + $C8, $01, $CA, $F7, $D9, $79, $13, $DF, $2C, $01, $DF, $6C, $01, $08, $DF, $7C, + $11, $08, $DF, $3C, $11, $83, $C1, $10, $78, $ED, $DF, $2C, $01, $DF, $3C, $11, + $8B, $44, $01, $08, $89, $44, $11, $08, $C3, $8D, $40, $00, $83, $E9, $04, $01, + $C8, $01, $CA, $F7, $D9, $DF, $2C, $01, $DF, $3C, $11, $83, $C1, $08, $78, $F5, + $8B, $04, $01, $89, $04, $11, $C3, $90, $8B, $48, $04, $8B, $10, $39, $D1, $89, + $11, $89, $4A, $04, $74, $02, $C3, $90, $81, $E9, $90, $87, $40, $00, $89, $CA, + $C1, $E9, $03, $0F, $B6, $D6, $B8, $FE, $FF, $FF, $FF, $D3, $C0, $21, $04, $95, + $10, $87, $40, $00, $75, $E0, $B8, $FE, $FF, $FF, $FF, $89, $D1, $D3, $C0, $21, + $05, $0C, $87, $40, $00, $C3, $8B, $C0, $81, $EA, $30, $0B, $00, $00, $C1, $EA, + $08, $81, $EA, $FF, $03, $00, $00, $19, $C9, $21, $CA, $81, $C2, $FF, $03, $00, + $00, $8D, $0C, $D5, $90, $87, $40, $00, $8B, $51, $04, $39, $CA, $89, $08, $89, + $50, $04, $89, $02, $89, $41, $04, $74, $03, $C3, $90, $90, $81, $E9, $90, $87, + $40, $00, $89, $CA, $C1, $E9, $03, $0F, $B6, $D6, $B8, $01, $00, $00, $00, $D3, + $E0, $09, $04, $95, $10, $87, $40, $00, $B8, $01, $00, $00, $00, $89, $D1, $D3, + $E0, $09, $05, $0C, $87, $40, $00, $C3, $83, $3D, $08, $87, $40, $00, $00, $75, + $03, $C3, $90, $90, $A1, $04, $87, $40, $00, $F6, $40, $FC, $01, $75, $25, $83, + $48, $FC, $08, $8B, $15, $08, $87, $40, $00, $29, $D0, $8D, $4A, $03, $89, $48, + $FC, $89, $54, $02, $F8, $81, $FA, $30, $0B, $00, $00, $0F, $83, $67, $FF, $FF, + $FF, $C3, $90, $90, $BA, $F0, $FF, $FF, $FF, $23, $50, $FC, $81, $FA, $30, $0B, + $00, $00, $72, $12, $E8, $0F, $FF, $FF, $FF, $A1, $04, $87, $40, $00, $BA, $F0, + $FF, $FF, $FF, $23, $50, $FC, $8B, $0D, $08, $87, $40, $00, $29, $C8, $01, $CA, + $EB, $B9, $C3, $90, $53, $8B, $D8, $E8, $8C, $FF, $FF, $FF, $6A, $04, $68, $00, + $10, $00, $00, $68, $F0, $FF, $13, $00, $6A, $00, $E8, $CD, $FC, $FF, $FF, $85, + $C0, $74, $4D, $8B, $15, $F4, $86, $40, $00, $8B, $C8, $C7, $01, $F0, $86, $40, + $00, $A3, $F4, $86, $40, $00, $89, $51, $04, $89, $02, $8B, $D0, $81, $C2, $F0, + $FF, $13, $00, $8B, $CA, $83, $E9, $04, $C7, $01, $02, $00, $00, $00, $B9, $E0, + $FF, $13, $00, $2B, $CB, $89, $0D, $08, $87, $40, $00, $2B, $D3, $8B, $C2, $A3, + $04, $87, $40, $00, $83, $CB, $02, $8B, $D0, $83, $EA, $04, $89, $1A, $5B, $C3, + $33, $C0, $A3, $08, $87, $40, $00, $33, $C0, $5B, $C3, $90, $80, $3D, $35, $80, + $40, $00, $00, $74, $3D, $EB, $29, $80, $3D, $9D, $85, $40, $00, $00, $75, $20, + $6A, $00, $E8, $65, $FC, $FF, $FF, $B9, $90, $A7, $40, $00, $B2, $01, $33, $C0, + $E8, $C7, $FC, $FF, $FF, $84, $C0, $74, $19, $6A, $0A, $E8, $4C, $FC, $FF, $FF, + $B9, $90, $A7, $40, $00, $B2, $01, $33, $C0, $E8, $AE, $FC, $FF, $FF, $84, $C0, + $75, $C5, $C3, $90, $53, $56, $57, $55, $8B, $E8, $8D, $B5, $10, $00, $01, $00, + $4E, $83, $C6, $04, $81, $E6, $00, $00, $FF, $FF, $6A, $04, $68, $00, $10, $10, + $00, $56, $6A, $00, $E8, $03, $FC, $FF, $FF, $8B, $D8, $85, $DB, $74, $30, $8B, + $FB, $89, $6F, $08, $83, $CE, $04, $89, $77, $0C, $E8, $7D, $FF, $FF, $FF, $A1, + $98, $A7, $40, $00, $C7, $07, $94, $A7, $40, $00, $89, $1D, $98, $A7, $40, $00, + $89, $47, $04, $89, $18, $C6, $05, $90, $A7, $40, $00, $00, $83, $C3, $10, $8B, + $C3, $5D, $5F, $5E, $5B, $C3, $8B, $C0, $53, $56, $57, $55, $83, $C4, $DC, $8B, + $F0, $83, $EE, $10, $E8, $43, $FF, $FF, $FF, $8B, $C6, $8B, $10, $89, $14, $24, + $8B, $50, $04, $89, $54, $24, $04, $8B, $50, $0C, $F6, $C2, $08, $75, $1A, $68, + $00, $80, $00, $00, $6A, $00, $56, $E8, $98, $FB, $FF, $FF, $85, $C0, $74, $04, + $33, $FF, $EB, $3F, $83, $CF, $FF, $EB, $3A, $8B, $DE, $8B, $EA, $83, $E5, $F0, + $33, $FF, $6A, $1C, $8D, $44, $24, $0C, $50, $53, $E8, $39, $FB, $FF, $FF, $68, + $00, $80, $00, $00, $6A, $00, $53, $E8, $68, $FB, $FF, $FF, $85, $C0, $75, $05, + $83, $CF, $FF, $EB, $0E, $8B, $74, $24, $14, $3B, $EE, $76, $06, $2B, $EE, $01, + $F3, $EB, $CF, $85, $FF, $75, $13, $8B, $44, $24, $04, $8B, $14, $24, $89, $10, + $8B, $04, $24, $8B, $54, $24, $04, $89, $50, $04, $C6, $05, $90, $A7, $40, $00, + $00, $8B, $C7, $83, $C4, $24, $5D, $5F, $5E, $5B, $C3, $90, $53, $56, $57, $55, + $83, $C4, $E0, $8B, $F2, $8B, $F8, $8B, $C7, $83, $E8, $04, $8B, $00, $8B, $D8, + $83, $E3, $F0, $83, $EB, $14, $3B, $DE, $0F, $83, $E1, $00, $00, $00, $8B, $D3, + $C1, $EA, $02, $03, $D3, $3B, $D6, $76, $04, $8B, $EA, $EB, $02, $8B, $EE, $8B, + $D7, $83, $EA, $10, $83, $E0, $F0, $03, $D0, $89, $14, $24, $6A, $1C, $8D, $44, + $24, $08, $50, $8B, $44, $24, $08, $50, $E8, $9B, $FA, $FF, $FF, $81, $7C, $24, + $14, $00, $00, $01, $00, $75, $70, $81, $64, $24, $10, $00, $00, $FF, $FF, $8B, + $D6, $2B, $D3, $8B, $44, $24, $10, $3B, $D0, $73, $5C, $8B, $D5, $2B, $D3, $81, + $C2, $00, $00, $01, $00, $4A, $81, $E2, $00, $00, $FF, $FF, $8B, $DA, $3B, $C3, + $73, $02, $8B, $D8, $6A, $04, $68, $00, $20, $00, $00, $53, $8B, $44, $24, $0C, + $50, $E8, $86, $FA, $FF, $FF, $85, $C0, $74, $2D, $6A, $04, $68, $00, $10, $00, + $00, $53, $8B, $44, $24, $0C, $50, $E8, $70, $FA, $FF, $FF, $85, $C0, $74, $17, + $8B, $C7, $83, $E8, $10, $89, $70, $08, $8B, $D0, $03, $5A, $0C, $83, $CB, $08, + $89, $5A, $0C, $8B, $DF, $EB, $77, $8B, $C5, $E8, $7A, $00, $00, $00, $8B, $D8, + $85, $DB, $74, $6A, $81, $FD, $2C, $0A, $04, $00, $76, $08, $8B, $C3, $83, $E8, + $10, $89, $70, $08, $8B, $C7, $83, $E8, $10, $8B, $40, $08, $8B, $D3, $8B, $CF, + $91, $E8, $E6, $FB, $FF, $FF, $8B, $C7, $E8, $CF, $03, $00, $00, $EB, $3F, $D1, + $EB, $3B, $F3, $72, $0A, $8B, $DF, $83, $EF, $10, $89, $77, $08, $EB, $2F, $8B, + $C6, $E8, $32, $00, $00, $00, $8B, $D8, $85, $DB, $74, $22, $81, $FE, $2C, $0A, + $04, $00, $76, $08, $8B, $C7, $83, $E8, $10, $89, $70, $08, $8B, $D3, $8B, $C7, + $8B, $CE, $E8, $D5, $FB, $FF, $FF, $8B, $C7, $E8, $8E, $03, $00, $00, $8B, $C3, + $83, $C4, $20, $5D, $5F, $5E, $5B, $C3, $8D, $50, $03, $C1, $EA, $03, $3D, $2C, + $0A, $00, $00, $53, $8A, $0D, $35, $80, $40, $00, $0F, $87, $48, $02, $00, $00, + $84, $C9, $0F, $B6, $82, $A8, $85, $40, $00, $8D, $1C, $C5, $28, $70, $40, $00, + $75, $56, $8B, $53, $04, $8B, $42, $08, $B9, $F8, $FF, $FF, $FF, $39, $DA, $74, + $17, $83, $42, $0C, $01, $23, $48, $FC, $89, $4A, $08, $89, $50, $FC, $74, $28, + $C6, $03, $00, $5B, $C3, $90, $90, $90, $8B, $53, $10, $0F, $B7, $4B, $02, $01, + $C1, $3B, $43, $0C, $77, $76, $83, $42, $0C, $01, $89, $4B, $08, $C6, $03, $00, + $89, $50, $FC, $5B, $C3, $90, $90, $90, $8B, $4A, $04, $89, $59, $14, $89, $4B, + $04, $C6, $03, $00, $5B, $C3, $90, $90, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $23, $74, $9F, $83, $C3, $20, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $23, $74, + $91, $83, $C3, $20, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $23, $74, $83, $83, + $EB, $40, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, $75, $CB, $6A, $00, $E8, + $28, $F9, $FF, $FF, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $23, $0F, $84, $5F, + $FF, $FF, $FF, $6A, $0A, $E8, $12, $F9, $FF, $FF, $EB, $AC, $56, $57, $80, $3D, + $35, $80, $40, $00, $00, $74, $39, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $25, + $00, $87, $40, $00, $74, $2A, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, $75, + $E6, $6A, $00, $E8, $E4, $F8, $FF, $FF, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $25, $00, $87, $40, $00, $74, $09, $6A, $0A, $E8, $CE, $F8, $FF, $FF, $EB, $C7, + $0F, $BE, $73, $01, $23, $35, $0C, $87, $40, $00, $74, $70, $0F, $BC, $C6, $8D, + $34, $C5, $00, $00, $00, $00, $8B, $0C, $85, $10, $87, $40, $00, $0F, $BC, $C9, + $8D, $0C, $B1, $8D, $3C, $CD, $90, $87, $40, $00, $8B, $77, $04, $8B, $56, $04, + $89, $57, $04, $89, $3A, $39, $D7, $75, $17, $BA, $FE, $FF, $FF, $FF, $D3, $C2, + $21, $14, $85, $10, $87, $40, $00, $75, $07, $0F, $B3, $05, $0C, $87, $40, $00, + $BF, $F0, $FF, $FF, $FF, $23, $7E, $FC, $81, $FF, $60, $0A, $01, $00, $72, $6C, + $89, $FA, $0F, $B7, $7B, $1A, $29, $FA, $8D, $04, $37, $8D, $4A, $03, $89, $48, + $FC, $89, $54, $02, $F8, $E8, $8E, $FA, $FF, $FF, $EB, $55, $0F, $B7, $4B, $18, + $8B, $3D, $08, $87, $40, $00, $39, $CF, $72, $26, $8B, $35, $04, $87, $40, $00, + $0F, $B7, $4B, $1A, $8D, $91, $30, $0B, $00, $00, $39, $D7, $72, $02, $89, $CF, + $29, $FE, $29, $3D, $08, $87, $40, $00, $89, $35, $04, $87, $40, $00, $EB, $21, + $0F, $B7, $43, $1A, $89, $C7, $E8, $19, $FB, $FF, $FF, $89, $C6, $85, $C0, $75, + $10, $A2, $00, $87, $40, $00, $88, $03, $5F, $5E, $5B, $C3, $80, $64, $37, $FC, + $F7, $8D, $4F, $06, $89, $4E, $FC, $31, $C0, $A2, $00, $87, $40, $00, $89, $1E, + $89, $46, $08, $C7, $46, $0C, $01, $00, $00, $00, $89, $73, $10, $8D, $46, $20, + $0F, $B7, $4B, $02, $8D, $14, $01, $89, $53, $08, $01, $F7, $29, $CF, $89, $7B, + $0C, $C6, $03, $00, $89, $70, $FC, $5F, $5E, $5B, $C3, $90, $B8, $00, $01, $00, + $00, $F0, $0F, $B0, $25, $00, $87, $40, $00, $74, $4B, $F3, $90, $80, $3D, $9D, + $85, $40, $00, $00, $75, $E6, $6A, $00, $E8, $9F, $F7, $FF, $FF, $B8, $00, $01, + $00, $00, $F0, $0F, $B0, $25, $00, $87, $40, $00, $74, $2A, $6A, $0A, $E8, $89, + $F7, $FF, $FF, $EB, $C7, $90, $90, $90, $3D, $2C, $0A, $04, $00, $0F, $87, $0D, + $01, $00, $00, $8D, $98, $D3, $00, $00, $00, $81, $E3, $00, $FF, $FF, $FF, $83, + $C3, $30, $84, $C9, $75, $A6, $8D, $93, $D0, $F4, $FF, $FF, $89, $D1, $C1, $EA, + $0D, $C1, $E9, $08, $B8, $FF, $FF, $FF, $FF, $D3, $E0, $23, $04, $95, $10, $87, + $40, $00, $74, $0C, $83, $E1, $E0, $0F, $BC, $C0, $09, $C1, $EB, $5E, $90, $90, + $B8, $FE, $FF, $FF, $FF, $89, $D1, $D3, $E0, $23, $05, $0C, $87, $40, $00, $74, + $17, $0F, $BC, $D0, $8B, $04, $95, $10, $87, $40, $00, $0F, $BC, $C8, $89, $D0, + $C1, $E0, $05, $09, $C1, $EB, $35, $90, $8B, $0D, $08, $87, $40, $00, $29, $D9, + $72, $1A, $A1, $04, $87, $40, $00, $29, $D8, $A3, $04, $87, $40, $00, $89, $0D, + $08, $87, $40, $00, $83, $CB, $02, $89, $58, $FC, $EB, $07, $89, $D8, $E8, $F1, + $F9, $FF, $FF, $C6, $05, $00, $87, $40, $00, $00, $5B, $C3, $56, $57, $8D, $3C, + $CD, $90, $87, $40, $00, $8B, $77, $04, $8B, $46, $04, $89, $47, $04, $89, $38, + $39, $C7, $75, $17, $B8, $FE, $FF, $FF, $FF, $D3, $C0, $21, $04, $95, $10, $87, + $40, $00, $75, $07, $0F, $B3, $15, $0C, $87, $40, $00, $BF, $F0, $FF, $FF, $FF, + $23, $7E, $FC, $89, $FA, $29, $DA, $74, $1F, $8D, $04, $33, $8D, $4A, $03, $89, + $48, $FC, $89, $54, $02, $F8, $81, $FA, $30, $0B, $00, $00, $72, $0F, $E8, $C5, + $F8, $FF, $FF, $EB, $08, $90, $90, $90, $80, $64, $37, $FC, $F7, $8D, $4B, $02, + $89, $4E, $FC, $C6, $05, $00, $87, $40, $00, $00, $89, $F0, $5F, $5E, $5B, $C3, + $5B, $85, $C0, $0F, $89, $2B, $FA, $FF, $FF, $31, $C0, $C3, $8B, $50, $FC, $F6, + $C2, $07, $89, $C1, $53, $8A, $1D, $35, $80, $40, $00, $0F, $85, $E3, $00, $00, + $00, $84, $DB, $8B, $1A, $75, $61, $83, $6A, $0C, $01, $8B, $42, $08, $74, $2C, + $85, $C0, $89, $4A, $08, $8D, $40, $01, $89, $41, $FC, $74, $07, $31, $C0, $88, + $03, $5B, $C3, $90, $8B, $4B, $04, $89, $5A, $14, $89, $4A, $04, $89, $51, $14, + $89, $53, $04, $C6, $03, $00, $31, $C0, $5B, $C3, $90, $90, $85, $C0, $74, $13, + $8B, $42, $14, $8B, $4A, $04, $89, $48, $04, $89, $41, $14, $31, $C0, $39, $53, + $10, $75, $03, $89, $43, $0C, $88, $03, $89, $D0, $8B, $52, $FC, $8A, $1D, $35, + $80, $40, $00, $E9, $85, $00, $00, $00, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $23, $74, $94, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, $75, $EA, $51, $52, + $6A, $00, $E8, $C5, $F5, $FF, $FF, $5A, $59, $B8, $00, $01, $00, $00, $F0, $0F, + $B0, $23, $0F, $84, $6F, $FF, $FF, $FF, $51, $52, $6A, $0A, $E8, $AB, $F5, $FF, + $FF, $5A, $59, $EB, $C3, $90, $90, $90, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $25, $00, $87, $40, $00, $74, $42, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, + $75, $E6, $6A, $00, $E8, $83, $F5, $FF, $FF, $B8, $00, $01, $00, $00, $F0, $0F, + $B0, $25, $00, $87, $40, $00, $74, $21, $6A, $0A, $E8, $6D, $F5, $FF, $FF, $EB, + $C7, $90, $90, $90, $F6, $C2, $05, $0F, $85, $E7, $00, $00, $00, $83, $E2, $F0, + $84, $DB, $89, $D3, $56, $89, $C6, $75, $AF, $F7, $44, $33, $FC, $01, $00, $00, + $00, $8B, $4C, $33, $FC, $75, $35, $83, $C9, $08, $89, $4C, $33, $FC, $F6, $46, + $FC, $08, $75, $40, $81, $FB, $E0, $FF, $13, $00, $74, $50, $8D, $43, $03, $89, + $46, $FC, $89, $5C, $33, $F8, $89, $F0, $89, $DA, $E8, $59, $F7, $FF, $FF, $C6, + $05, $00, $87, $40, $00, $00, $31, $C0, $5E, $5B, $C3, $90, $8D, $04, $33, $83, + $E1, $F0, $01, $CB, $81, $F9, $30, $0B, $00, $00, $72, $C2, $E8, $F7, $F6, $FF, + $FF, $EB, $BB, $90, $8B, $4E, $F8, $29, $CE, $01, $CB, $81, $F9, $30, $0B, $00, + $00, $72, $B1, $89, $F0, $E8, $DE, $F6, $FF, $FF, $EB, $A8, $81, $3D, $08, $87, + $40, $00, $E0, $FF, $13, $00, $75, $2C, $83, $EE, $10, $8B, $06, $8B, $56, $04, + $89, $50, $04, $89, $02, $C6, $05, $00, $87, $40, $00, $00, $68, $00, $80, $00, + $00, $6A, $00, $56, $E8, $AB, $F4, $FF, $FF, $83, $F8, $01, $19, $C0, $5E, $5B, + $C3, $90, $90, $90, $8D, $9E, $E0, $FF, $13, $00, $E8, $39, $F7, $FF, $FF, $C7, + $43, $FC, $02, $00, $00, $00, $C7, $05, $08, $87, $40, $00, $E0, $FF, $13, $00, + $89, $1D, $04, $87, $40, $00, $C6, $05, $00, $87, $40, $00, $00, $31, $C0, $5E, + $5B, $C3, $90, $90, $5B, $F6, $C2, $03, $0F, $84, $9A, $F8, $FF, $FF, $B8, $FF, + $FF, $FF, $FF, $C3, $8B, $48, $FC, $F6, $C1, $07, $53, $56, $89, $C6, $0F, $85, + $88, $00, $00, $00, $8B, $19, $0F, $B7, $4B, $02, $83, $E9, $04, $39, $D1, $72, + $37, $8D, $1C, $95, $40, $00, $00, $00, $39, $CB, $72, $04, $5E, $5B, $C3, $90, + $89, $D3, $89, $D0, $E8, $4F, $FA, $FF, $FF, $85, $C0, $74, $16, $89, $D9, $89, + $C2, $89, $C3, $89, $F0, $E8, $02, $F6, $FF, $FF, $89, $F0, $E8, $BB, $FD, $FF, + $FF, $89, $D8, $5E, $5B, $C3, $90, $90, $8D, $4C, $09, $20, $57, $89, $D7, $31, + $C0, $29, $D1, $83, $D0, $FF, $21, $C8, $01, $D0, $E8, $19, $FA, $FF, $FF, $85, + $C0, $74, $24, $81, $FF, $2C, $0A, $04, $00, $76, $03, $89, $78, $F8, $0F, $B7, + $4B, $02, $83, $E9, $04, $89, $C2, $89, $C7, $89, $F0, $FF, $53, $1C, $89, $F0, + $E8, $77, $FD, $FF, $FF, $89, $F8, $5F, $5E, $5B, $C3, $90, $F6, $C1, $05, $0F, + $85, $67, $02, $00, $00, $89, $CB, $83, $E1, $F0, $57, $8D, $3C, $01, $83, $E9, + $04, $83, $E3, $0F, $39, $CA, $55, $0F, $87, $0F, $01, $00, $00, $8D, $2C, $12, + $39, $CD, $72, $08, $5D, $5F, $5E, $5B, $C3, $90, $90, $90, $81, $FA, $2C, $0B, + $00, $00, $73, $15, $81, $FA, $CC, $02, $00, $00, $0F, $82, $C4, $00, $00, $00, + $BA, $2C, $0B, $00, $00, $39, $D1, $76, $DB, $8D, $AA, $D3, $00, $00, $00, $81, + $E5, $00, $FF, $FF, $FF, $83, $C5, $30, $83, $C1, $04, $29, $E9, $80, $3D, $35, + $80, $40, $00, $00, $74, $46, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $25, $00, + $87, $40, $00, $74, $2F, $F3, $90, $80, $3D, $9D, $85, $40, $00, $00, $75, $E6, + $51, $6A, $00, $E8, $44, $F3, $FF, $FF, $59, $B8, $00, $01, $00, $00, $F0, $0F, + $B0, $25, $00, $87, $40, $00, $74, $0C, $51, $6A, $0A, $E8, $2C, $F3, $FF, $FF, + $59, $EB, $C3, $90, $BB, $0F, $00, $00, $00, $23, $5E, $FC, $09, $EB, $89, $5E, + $FC, $89, $CB, $8B, $57, $FC, $F6, $C2, $01, $75, $09, $83, $CA, $08, $89, $57, + $FC, $EB, $17, $90, $89, $F8, $83, $E2, $F0, $01, $D3, $01, $D7, $81, $FA, $30, + $0B, $00, $00, $72, $05, $E8, $EE, $F4, $FF, $FF, $89, $5F, $F8, $8D, $43, $03, + $89, $44, $2E, $FC, $81, $FB, $30, $0B, $00, $00, $72, $0A, $8D, $04, $2E, $89, + $DA, $E8, $12, $F5, $FF, $FF, $C6, $05, $00, $87, $40, $00, $00, $89, $F0, $5D, + $5F, $5E, $5B, $C3, $89, $D7, $89, $D0, $E8, $DB, $F8, $FF, $FF, $85, $C0, $74, + $16, $89, $C5, $89, $C2, $89, $F0, $89, $F9, $E8, $8E, $F4, $FF, $FF, $89, $F0, + $E8, $47, $FC, $FF, $FF, $89, $E8, $5D, $5F, $5E, $5B, $C3, $8B, $47, $FC, $A8, + $01, $0F, $84, $ED, $00, $00, $00, $83, $E0, $F0, $8D, $2C, $01, $39, $EA, $0F, + $87, $DF, $00, $00, $00, $80, $3D, $35, $80, $40, $00, $00, $74, $5B, $B8, $00, + $01, $00, $00, $F0, $0F, $B0, $25, $00, $87, $40, $00, $74, $33, $F3, $90, $80, + $3D, $9D, $85, $40, $00, $00, $75, $E6, $51, $52, $6A, $00, $E8, $5B, $F2, $FF, + $FF, $5A, $59, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $25, $00, $87, $40, $00, + $74, $0E, $51, $52, $6A, $0A, $E8, $41, $F2, $FF, $FF, $5A, $59, $EB, $BF, $90, + $BB, $0F, $00, $00, $00, $23, $5E, $FC, $8B, $47, $FC, $A8, $01, $74, $7E, $83, + $E0, $F0, $8D, $2C, $01, $39, $EA, $77, $74, $3D, $30, $0B, $00, $00, $72, $0B, + $89, $F8, $51, $52, $E8, $0F, $F4, $FF, $FF, $5A, $59, $89, $C8, $C1, $E8, $02, + $01, $C8, $31, $FF, $29, $D0, $83, $D7, $FF, $21, $F8, $8D, $84, $02, $D3, $00, + $00, $00, $25, $00, $FF, $FF, $FF, $83, $C0, $30, $8D, $55, $04, $29, $C2, $77, + $0B, $83, $24, $2E, $F7, $83, $C5, $04, $EB, $1E, $90, $90, $89, $54, $2E, $FC, + $8D, $7A, $03, $89, $7C, $30, $FC, $89, $C5, $81, $FA, $30, $0B, $00, $00, $72, + $07, $01, $F0, $E8, $00, $F4, $FF, $FF, $09, $DD, $89, $6E, $FC, $C6, $05, $00, + $87, $40, $00, $00, $89, $F0, $5D, $5F, $5E, $5B, $C3, $90, $90, $C6, $05, $00, + $87, $40, $00, $00, $89, $C8, $C1, $E8, $02, $01, $C8, $31, $FF, $29, $D0, $83, + $D7, $FF, $21, $F8, $01, $D0, $89, $C5, $89, $CF, $52, $E8, $A8, $F7, $FF, $FF, + $5A, $85, $C0, $74, $D1, $81, $FD, $2C, $0A, $04, $00, $76, $03, $89, $50, $F8, + $89, $C5, $89, $C2, $89, $F0, $89, $F9, $E8, $1F, $F3, $FF, $FF, $89, $F0, $E8, + $08, $FB, $FF, $FF, $89, $E8, $5D, $5F, $5E, $5B, $C3, $90, $5E, $5B, $F6, $C1, + $03, $0F, $84, $25, $F6, $FF, $FF, $31, $C0, $C3, $8B, $C0, $53, $8D, $58, $FF, + $83, $E3, $FC, $E8, $60, $F7, $FF, $FF, $83, $F8, $01, $19, $C9, $8D, $14, $03, + $09, $CB, $81, $FB, $2C, $0A, $04, $00, $73, $10, $F7, $DB, $D9, $EE, $DD, $14, + $13, $83, $C3, $08, $78, $F8, $89, $0A, $DD, $C0, $5B, $C3, $8B, $C8, $8B, $D1, + $83, $EA, $04, $8B, $12, $83, $E2, $F0, $03, $D1, $8B, $C2, $8B, $D0, $83, $EA, + $04, $8B, $12, $83, $E2, $F0, $85, $D2, $75, $02, $33, $C0, $C3, $8D, $40, $00, + $83, $3D, $08, $87, $40, $00, $00, $74, $1A, $8B, $15, $04, $87, $40, $00, $3B, + $D0, $72, $10, $8B, $D0, $81, $C2, $F0, $FF, $13, $00, $3B, $15, $04, $87, $40, + $00, $73, $04, $83, $C0, $10, $C3, $81, $3D, $08, $87, $40, $00, $E0, $FF, $13, + $00, $74, $07, $A1, $04, $87, $40, $00, $EB, $02, $33, $C0, $C3, $8D, $40, $00, + $53, $56, $8B, $D8, $83, $C3, $20, $89, $1A, $8B, $10, $3B, $42, $10, $75, $08, + $8B, $5A, $08, $3B, $5A, $0C, $76, $19, $8B, $F0, $8B, $DE, $83, $EB, $04, $8B, + $1B, $83, $E3, $F0, $03, $DE, $0F, $B7, $42, $02, $2B, $D8, $89, $19, $5E, $5B, + $C3, $8B, $42, $08, $48, $89, $01, $5E, $5B, $C3, $8B, $C0, $57, $89, $D7, $83, + $C0, $01, $BA, $41, $5F, $70, $89, $F7, $E2, $C1, $E8, $1E, $89, $D1, $81, $E2, + $FF, $FF, $FF, $1F, $C1, $E9, $1D, $8D, $14, $92, $01, $C2, $89, $C8, $83, $C8, + $30, $88, $07, $89, $D0, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $1C, $81, $E2, + $FF, $FF, $FF, $0F, $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, + $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $1B, $81, $E2, $FF, $FF, $FF, $07, + $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, + $83, $DF, $FF, $C1, $E8, $1A, $81, $E2, $FF, $FF, $FF, $03, $09, $C1, $83, $C8, + $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, $83, $DF, $FF, $C1, + $E8, $19, $81, $E2, $FF, $FF, $FF, $01, $09, $C1, $83, $C8, $30, $88, $07, $8D, + $04, $92, $8D, $14, $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $18, $81, $E2, + $FF, $FF, $FF, $00, $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, + $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $17, $81, $E2, $FF, $FF, $7F, $00, + $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, + $83, $DF, $FF, $C1, $E8, $16, $81, $E2, $FF, $FF, $3F, $00, $09, $C1, $83, $C8, + $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, $83, $DF, $FF, $C1, + $E8, $15, $81, $E2, $FF, $FF, $1F, $00, $09, $C1, $83, $C8, $30, $88, $07, $8D, + $04, $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $14, $83, $C8, $30, $88, $07, + $8D, $47, $01, $5F, $C3, $8D, $40, $00, $53, $56, $8B, $F1, $8B, $DA, $8B, $D3, + $8B, $CE, $E8, $45, $0B, $00, $00, $8B, $C3, $03, $C6, $5E, $5B, $C3, $8B, $C0, + $55, $8B, $EC, $53, $8B, $D0, $81, $FA, $FF, $FF, $00, $00, $76, $68, $F6, $C2, + $03, $75, $63, $8B, $55, $08, $8B, $52, $E4, $8B, $C8, $3B, $D1, $77, $10, $8B, + $5D, $08, $8B, $5D, $08, $03, $53, $F0, $83, $C1, $04, $3B, $D1, $73, $17, $8B, + $55, $08, $33, $C9, $89, $4A, $F0, $6A, $1C, $8B, $55, $08, $83, $C2, $E4, $52, + $50, $E8, $C2, $EE, $FF, $FF, $8B, $45, $08, $83, $78, $F0, $04, $72, $1E, $8B, + $45, $08, $81, $78, $F4, $00, $10, $00, $00, $75, $12, $8B, $45, $08, $F6, $40, + $F8, $F6, $74, $09, $8B, $45, $08, $F6, $40, $F9, $01, $74, $04, $33, $C0, $EB, + $07, $B0, $01, $5B, $5D, $C3, $33, $C0, $5B, $5D, $C3, $90, $55, $8B, $EC, $53, + $56, $57, $8B, $FA, $8B, $D8, $81, $FF, $E8, $03, $00, $00, $7D, $65, $8B, $45, + $08, $50, $8B, $C3, $83, $C0, $B4, $E8, $64, $FF, $FF, $FF, $59, $84, $C0, $74, + $52, $8B, $45, $08, $50, $8B, $C3, $83, $C0, $DC, $E8, $51, $FF, $FF, $FF, $59, + $84, $C0, $74, $3F, $8B, $C3, $83, $C0, $DC, $8B, $30, $8B, $C3, $83, $C0, $B4, + $3B, $18, $75, $27, $85, $F6, $74, $27, $8B, $45, $08, $50, $8B, $C6, $E8, $2D, + $FF, $FF, $FF, $59, $84, $C0, $74, $13, $8B, $45, $08, $50, $8D, $57, $01, $8B, + $06, $E8, $96, $FF, $FF, $FF, $59, $84, $C0, $75, $04, $33, $C0, $EB, $06, $B0, + $01, $EB, $02, $33, $C0, $5F, $5E, $5B, $5D, $C3, $8B, $C0, $55, $8B, $EC, $83, + $C4, $E4, $53, $8B, $18, $33, $C0, $89, $45, $F0, $55, $33, $D2, $8B, $C3, $E8, + $68, $FF, $FF, $FF, $59, $84, $C0, $75, $02, $33, $DB, $8B, $C3, $5B, $8B, $E5, + $5D, $C3, $8B, $C0, $80, $3D, $35, $80, $40, $00, $00, $74, $3D, $EB, $29, $80, + $3D, $9D, $85, $40, $00, $00, $75, $20, $6A, $00, $E8, $0D, $EE, $FF, $FF, $B9, + $A8, $A7, $40, $00, $B2, $01, $33, $C0, $E8, $6F, $EE, $FF, $FF, $84, $C0, $74, + $19, $6A, $0A, $E8, $F4, $ED, $FF, $FF, $B9, $A8, $A7, $40, $00, $B2, $01, $33, + $C0, $E8, $56, $EE, $FF, $FF, $84, $C0, $75, $C5, $83, $3D, $A4, $A7, $40, $00, + $00, $75, $18, $6A, $04, $68, $00, $10, $00, $00, $68, $00, $00, $01, $00, $6A, + $00, $E8, $B6, $ED, $FF, $FF, $A3, $A4, $A7, $40, $00, $83, $3D, $A4, $A7, $40, + $00, $00, $0F, $95, $C0, $C3, $8B, $C0, $53, $8B, $D8, $E8, $84, $FF, $FF, $FF, + $84, $C0, $74, $29, $A1, $A4, $A7, $40, $00, $81, $38, $FE, $3F, $00, $00, $7D, + $1C, $A1, $A4, $A7, $40, $00, $8B, $00, $8B, $15, $A4, $A7, $40, $00, $89, $5C, + $82, $04, $A1, $A4, $A7, $40, $00, $FF, $00, $B0, $01, $EB, $02, $33, $C0, $C6, + $05, $A8, $A7, $40, $00, $00, $5B, $C3, $53, $56, $57, $8B, $F0, $BF, $A4, $A7, + $40, $00, $33, $DB, $83, $3F, $00, $74, $3F, $E8, $36, $FF, $FF, $FF, $84, $C0, + $74, $36, $8B, $07, $8B, $10, $4A, $85, $D2, $7C, $26, $42, $33, $C0, $8B, $0F, + $3B, $74, $81, $04, $75, $17, $8B, $17, $8B, $12, $8B, $0F, $8B, $14, $91, $8B, + $0F, $89, $54, $81, $04, $8B, $17, $FF, $0A, $B3, $01, $EB, $04, $40, $4A, $75, + $DD, $C6, $05, $A8, $A7, $40, $00, $00, $8B, $C3, $5F, $5E, $5B, $C3, $8B, $C0, + $55, $8B, $EC, $83, $C4, $E0, $53, $56, $57, $89, $45, $FC, $8B, $45, $FC, $8B, + $00, $81, $E8, $28, $70, $40, $00, $C1, $E8, $05, $C1, $E0, $08, $8B, $55, $08, + $8D, $B4, $C2, $00, $48, $FE, $FF, $8D, $4D, $E4, $8D, $55, $E8, $8B, $45, $FC, + $E8, $2B, $FC, $FF, $FF, $E9, $FD, $00, $00, $00, $8B, $45, $E8, $83, $E8, $04, + $F6, $00, $01, $0F, $85, $E2, $00, $00, $00, $8B, $45, $E8, $E8, $57, $FF, $FF, + $FF, $84, $C0, $0F, $85, $D2, $00, $00, $00, $8B, $45, $08, $C6, $80, $FF, $47, + $FE, $FF, $00, $33, $DB, $8B, $45, $E8, $E8, $5F, $FE, $FF, $FF, $8B, $F8, $85, + $FF, $0F, $85, $88, $00, $00, $00, $8B, $45, $E8, $81, $38, $00, $01, $00, $00, + $0F, $83, $A1, $00, $00, $00, $8B, $45, $E8, $83, $C0, $04, $8B, $00, $89, $45, + $F4, $83, $7D, $F4, $00, $0F, $8E, $8C, $00, $00, $00, $8B, $45, $FC, $8B, $00, + $0F, $B7, $40, $02, $83, $E8, $0D, $3B, $45, $F4, $7C, $7B, $8B, $45, $E8, $83, + $C0, $08, $89, $45, $F0, $C6, $45, $EF, $01, $8B, $45, $F4, $85, $C0, $7E, $2A, + $89, $45, $E0, $80, $7D, $EF, $00, $74, $10, $8B, $45, $F0, $80, $38, $20, $72, + $08, $8B, $45, $F0, $80, $38, $80, $72, $04, $33, $C0, $EB, $02, $B0, $01, $88, + $45, $EF, $FF, $45, $F0, $FF, $4D, $E0, $75, $D9, $80, $7D, $EF, $00, $74, $37, + $8B, $45, $F0, $80, $38, $00, $75, $2F, $BB, $01, $00, $00, $00, $EB, $28, $BB, + $02, $00, $00, $00, $3B, $3C, $DE, $74, $0F, $83, $3C, $DE, $00, $74, $09, $43, + $81, $FB, $FF, $00, $00, $00, $7E, $EC, $81, $FB, $FF, $00, $00, $00, $7F, $05, + $89, $3C, $DE, $EB, $02, $33, $DB, $FF, $44, $DE, $04, $8B, $45, $FC, $8B, $00, + $0F, $B7, $40, $02, $01, $45, $E8, $8B, $45, $E8, $3B, $45, $E4, $0F, $86, $F7, + $FE, $FF, $FF, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $8B, $C0, $55, $8B, $EC, $50, + $B8, $27, $00, $00, $00, $81, $C4, $04, $F0, $FF, $FF, $50, $48, $75, $F6, $8B, + $45, $FC, $81, $C4, $DC, $F6, $FF, $FF, $53, $56, $57, $8D, $85, $00, $48, $FE, + $FF, $33, $C9, $BA, $00, $B8, $01, $00, $E8, $E7, $08, $00, $00, $8D, $85, $D8, + $07, $FE, $FF, $33, $C9, $BA, $00, $40, $00, $00, $E8, $D5, $08, $00, $00, $33, + $C0, $89, $85, $F8, $47, $FE, $FF, $C6, $85, $FF, $47, $FE, $FF, $01, $8B, $3D, + $F4, $86, $40, $00, $E9, $82, $00, $00, $00, $8B, $C7, $E8, $70, $FA, $FF, $FF, + $8B, $D8, $85, $DB, $74, $72, $8B, $C3, $83, $E8, $04, $8B, $30, $F7, $C6, $01, + $00, $00, $00, $75, $56, $F7, $C6, $04, $00, $00, $00, $74, $0B, $55, $8B, $C3, + $E8, $2B, $FE, $FF, $FF, $59, $EB, $43, $81, $BD, $F8, $47, $FE, $FF, $00, $10, + $00, $00, $7D, $37, $83, $E6, $F0, $83, $EE, $04, $89, $B5, $EC, $47, $FE, $FF, + $8B, $C3, $E8, $B1, $FD, $FF, $FF, $84, $C0, $75, $20, $C6, $85, $FF, $47, $FE, + $FF, $00, $8B, $85, $F8, $47, $FE, $FF, $8B, $95, $EC, $47, $FE, $FF, $89, $94, + $85, $D8, $07, $FE, $FF, $FF, $85, $F8, $47, $FE, $FF, $8B, $C3, $E8, $DA, $F9, + $FF, $FF, $8B, $D8, $85, $DB, $75, $8E, $8B, $7F, $04, $81, $FF, $F0, $86, $40, + $00, $0F, $85, $72, $FF, $FF, $FF, $8B, $1D, $98, $A7, $40, $00, $EB, $37, $8B, + $C3, $83, $C0, $10, $E8, $5F, $FD, $FF, $FF, $84, $C0, $75, $26, $C6, $85, $FF, + $47, $FE, $FF, $00, $8B, $73, $0C, $83, $E6, $F0, $83, $EE, $04, $83, $EE, $10, + $8B, $85, $F8, $47, $FE, $FF, $89, $B4, $85, $D8, $07, $FE, $FF, $FF, $85, $F8, + $47, $FE, $FF, $8B, $5B, $04, $81, $FB, $94, $A7, $40, $00, $74, $0C, $81, $BD, + $F8, $47, $FE, $FF, $00, $10, $00, $00, $7C, $B5, $80, $BD, $FF, $47, $FE, $FF, + $00, $0F, $85, $58, $02, $00, $00, $C6, $85, $F7, $47, $FE, $FF, $00, $33, $C0, + $89, $85, $E8, $47, $FE, $FF, $8D, $95, $D8, $87, $FD, $FF, $B8, $88, $28, $40, + $00, $B9, $28, $00, $00, $00, $E8, $FD, $FA, $FF, $FF, $8B, $D8, $C7, $85, $F0, + $47, $FE, $FF, $37, $00, $00, $00, $C7, $85, $DC, $47, $FE, $FF, $2A, $70, $40, + $00, $8D, $85, $FC, $4F, $FE, $FF, $89, $85, $D8, $47, $FE, $FF, $8B, $85, $DC, + $47, $FE, $FF, $0F, $B7, $00, $83, $E8, $04, $89, $85, $E4, $47, $FE, $FF, $C6, + $85, $F6, $47, $FE, $FF, $00, $BF, $FF, $00, $00, $00, $8B, $85, $D8, $47, $FE, + $FF, $8B, $F0, $8D, $85, $D7, $FF, $FD, $FF, $3B, $D8, $0F, $87, $09, $01, $00, + $00, $83, $3E, $00, $0F, $86, $F3, $00, $00, $00, $80, $BD, $F7, $47, $FE, $FF, + $00, $75, $1A, $B8, $B4, $28, $40, $00, $B9, $27, $00, $00, $00, $8B, $D3, $E8, + $84, $FA, $FF, $FF, $8B, $D8, $C6, $85, $F7, $47, $FE, $FF, $01, $80, $BD, $F6, + $47, $FE, $FF, $00, $75, $4F, $C6, $03, $0D, $43, $C6, $03, $0A, $43, $8B, $85, + $E8, $47, $FE, $FF, $40, $8B, $D3, $E8, $40, $F9, $FF, $FF, $8B, $D8, $C6, $03, + $20, $43, $C6, $03, $2D, $43, $C6, $03, $20, $43, $8B, $D3, $8B, $85, $E4, $47, + $FE, $FF, $E8, $25, $F9, $FF, $FF, $8B, $D8, $B8, $DC, $28, $40, $00, $B9, $08, + $00, $00, $00, $8B, $D3, $E8, $2E, $FA, $FF, $FF, $8B, $D8, $C6, $85, $F6, $47, + $FE, $FF, $01, $EB, $08, $C6, $03, $2C, $43, $C6, $03, $20, $43, $8B, $C7, $83, + $E8, $01, $72, $04, $74, $17, $EB, $2A, $B8, $E8, $28, $40, $00, $B9, $07, $00, + $00, $00, $8B, $D3, $E8, $FF, $F9, $FF, $FF, $8B, $D8, $EB, $39, $B8, $F0, $28, + $40, $00, $B9, $06, $00, $00, $00, $8B, $D3, $E8, $EA, $F9, $FF, $FF, $8B, $D8, + $EB, $24, $8D, $95, $D8, $86, $FD, $FF, $8B, $46, $FC, $E8, $38, $08, $00, $00, + $0F, $B6, $8D, $D8, $86, $FD, $FF, $8D, $85, $D9, $86, $FD, $FF, $8B, $D3, $E8, + $C4, $F9, $FF, $FF, $8B, $D8, $C6, $03, $20, $43, $C6, $03, $78, $43, $C6, $03, + $20, $43, $8B, $06, $8B, $D3, $E8, $91, $F8, $FF, $FF, $8B, $D8, $4F, $83, $EE, + $08, $83, $FF, $FF, $0F, $85, $E9, $FE, $FF, $FF, $8B, $85, $E4, $47, $FE, $FF, + $89, $85, $E8, $47, $FE, $FF, $81, $85, $D8, $47, $FE, $FF, $00, $08, $00, $00, + $83, $85, $DC, $47, $FE, $FF, $20, $FF, $8D, $F0, $47, $FE, $FF, $0F, $85, $9A, + $FE, $FF, $FF, $83, $BD, $F8, $47, $FE, $FF, $00, $7E, $7A, $80, $BD, $F7, $47, + $FE, $FF, $00, $74, $10, $C6, $03, $0D, $43, $C6, $03, $0A, $43, $C6, $03, $0D, + $43, $C6, $03, $0A, $43, $B8, $F8, $28, $40, $00, $B9, $3C, $00, $00, $00, $8B, + $D3, $E8, $42, $F9, $FF, $FF, $8B, $D8, $8B, $BD, $F8, $47, $FE, $FF, $4F, $85, + $FF, $72, $43, $47, $C7, $85, $E0, $47, $FE, $FF, $00, $00, $00, $00, $8D, $B5, + $D8, $07, $FE, $FF, $83, $BD, $E0, $47, $FE, $FF, $00, $74, $08, $C6, $03, $2C, + $43, $C6, $03, $20, $43, $8B, $06, $8B, $D3, $E8, $EE, $F7, $FF, $FF, $8B, $D8, + $8D, $85, $D7, $FF, $FD, $FF, $3B, $D8, $77, $0C, $FF, $85, $E0, $47, $FE, $FF, + $83, $C6, $04, $4F, $75, $CE, $B8, $38, $29, $40, $00, $B9, $03, $00, $00, $00, + $8B, $D3, $E8, $E1, $F8, $FF, $FF, $68, $10, $20, $00, $00, $68, $3C, $29, $40, + $00, $8D, $85, $D8, $87, $FD, $FF, $50, $6A, $00, $E8, $B1, $E7, $FF, $FF, $5F, + $5E, $5B, $8B, $E5, $5D, $C3, $00, $00, $41, $6E, $20, $75, $6E, $65, $78, $70, + $65, $63, $74, $65, $64, $20, $6D, $65, $6D, $6F, $72, $79, $20, $6C, $65, $61, + $6B, $20, $68, $61, $73, $20, $6F, $63, $63, $75, $72, $72, $65, $64, $2E, $20, + $00, $00, $00, $00, $54, $68, $65, $20, $75, $6E, $65, $78, $70, $65, $63, $74, + $65, $64, $20, $73, $6D, $61, $6C, $6C, $20, $62, $6C, $6F, $63, $6B, $20, $6C, + $65, $61, $6B, $73, $20, $61, $72, $65, $3A, $0D, $0A, $00, $20, $62, $79, $74, + $65, $73, $3A, $20, $00, $00, $00, $00, $55, $6E, $6B, $6E, $6F, $77, $6E, $00, + $53, $74, $72, $69, $6E, $67, $00, $00, $54, $68, $65, $20, $73, $69, $7A, $65, + $73, $20, $6F, $66, $20, $75, $6E, $65, $78, $70, $65, $63, $74, $65, $64, $20, + $6C, $65, $61, $6B, $65, $64, $20, $6D, $65, $64, $69, $75, $6D, $20, $61, $6E, + $64, $20, $6C, $61, $72, $67, $65, $20, $62, $6C, $6F, $63, $6B, $73, $20, $61, + $72, $65, $3A, $20, $00, $00, $00, $00, $0D, $0A, $00, $00, $55, $6E, $65, $78, + $70, $65, $63, $74, $65, $64, $20, $4D, $65, $6D, $6F, $72, $79, $20, $4C, $65, + $61, $6B, $00, $00, $56, $57, $33, $C0, $33, $F6, $BA, $2A, $70, $40, $00, $80, + $3D, $EE, $86, $40, $00, $00, $74, $05, $F6, $02, $0F, $75, $1D, $0F, $B7, $3A, + $C1, $EF, $03, $8B, $CE, $03, $C9, $03, $C9, $3B, $F8, $76, $0B, $88, $88, $A8, + $85, $40, $00, $40, $3B, $F8, $77, $F5, $8B, $C7, $46, $83, $C2, $20, $83, $FE, + $37, $75, $CC, $5F, $5E, $C3, $8B, $C0, $53, $56, $57, $BE, $37, $00, $00, $00, + $BB, $44, $70, $40, $00, $83, $3B, $00, $75, $06, $C7, $03, $5C, $12, $40, $00, + $8D, $43, $E4, $89, $43, $F8, $8D, $43, $E4, $89, $43, $E8, $33, $C0, $89, $43, + $F0, $C7, $43, $EC, $01, $00, $00, $00, $0F, $B7, $43, $E6, $03, $C0, $03, $C0, + $8D, $04, $40, $05, $EF, $00, $00, $00, $25, $00, $FF, $FF, $FF, $83, $C0, $30, + $3D, $30, $0B, $00, $00, $73, $05, $B8, $30, $0B, $00, $00, $05, $D0, $04, $00, + $00, $C1, $E8, $0D, $83, $F8, $07, $76, $05, $B8, $07, $00, $00, $00, $8B, $C8, + $B2, $FF, $D2, $E2, $88, $53, $E5, $C1, $E0, $0D, $66, $05, $30, $0B, $66, $89, + $43, $FC, $0F, $B7, $7B, $E6, $0F, $B7, $C7, $8B, $C8, $C1, $E1, $04, $8D, $0C, + $49, $81, $C1, $EF, $00, $00, $00, $81, $E1, $00, $FF, $FF, $FF, $83, $C1, $30, + $81, $F9, $30, $73, $00, $00, $73, $05, $B9, $30, $73, $00, $00, $81, $F9, $30, + $FF, $00, $00, $76, $05, $B9, $30, $FF, $00, $00, $8B, $C1, $83, $E8, $20, $0F, + $B7, $D7, $8B, $CA, $33, $D2, $F7, $F1, $66, $F7, $EF, $66, $05, $EF, $00, $66, + $25, $00, $FF, $66, $83, $C0, $30, $66, $89, $43, $FE, $83, $C3, $20, $4E, $0F, + $85, $30, $FF, $FF, $FF, $E8, $DA, $FE, $FF, $FF, $C7, $05, $F0, $86, $40, $00, + $F0, $86, $40, $00, $C7, $05, $F4, $86, $40, $00, $F0, $86, $40, $00, $BE, $00, + $04, $00, $00, $BA, $90, $87, $40, $00, $8B, $C2, $89, $00, $89, $40, $04, $83, + $C2, $08, $4E, $75, $F3, $C7, $05, $94, $A7, $40, $00, $94, $A7, $40, $00, $C7, + $05, $98, $A7, $40, $00, $94, $A7, $40, $00, $5F, $5E, $5B, $C3, $8D, $40, $00, + $53, $56, $57, $55, $BB, $F0, $86, $40, $00, $BE, $94, $A7, $40, $00, $8B, $7B, + $04, $EB, $12, $8B, $6F, $04, $68, $00, $80, $00, $00, $6A, $00, $57, $E8, $C1, + $E5, $FF, $FF, $8B, $FD, $3B, $FB, $75, $EA, $BA, $37, $00, $00, $00, $B8, $28, + $70, $40, $00, $8B, $C8, $89, $48, $14, $8B, $C8, $89, $48, $04, $C7, $40, $08, + $01, $00, $00, $00, $33, $C9, $89, $48, $0C, $83, $C0, $20, $4A, $75, $E4, $89, + $1B, $89, $5B, $04, $BA, $00, $04, $00, $00, $B9, $90, $87, $40, $00, $8B, $C1, + $89, $00, $89, $40, $04, $83, $C1, $08, $4A, $75, $F3, $8B, $5E, $04, $EB, $12, + $8B, $7B, $04, $68, $00, $80, $00, $00, $6A, $00, $53, $E8, $64, $E5, $FF, $FF, + $8B, $DF, $3B, $DE, $75, $EA, $89, $36, $89, $76, $04, $5D, $5F, $5E, $5B, $C3, + $83, $3D, $AC, $A7, $40, $00, $00, $74, $12, $A1, $AC, $A7, $40, $00, $50, $E8, + $50, $E5, $FF, $FF, $33, $C0, $A3, $AC, $A7, $40, $00, $80, $3D, $9C, $85, $40, + $00, $00, $74, $05, $E8, $63, $F9, $FF, $FF, $83, $3D, $A4, $A7, $40, $00, $00, + $74, $19, $68, $00, $80, $00, $00, $6A, $00, $A1, $A4, $A7, $40, $00, $50, $E8, + $10, $E5, $FF, $FF, $33, $C0, $A3, $A4, $A7, $40, $00, $E8, $20, $FF, $FF, $FF, + $C3, $8D, $40, $00, $85, $C0, $7E, $13, $FF, $15, $08, $77, $40, $00, $85, $C0, + $74, $02, $F3, $C3, $B0, $01, $E9, $C5, $00, $00, $00, $31, $C0, $F3, $C3, $90, + $85, $C0, $74, $0A, $FF, $15, $0C, $77, $40, $00, $85, $C0, $75, $02, $F3, $C3, + $B0, $02, $E9, $A9, $00, $00, $00, $C3, $8B, $08, $85, $C9, $74, $32, $85, $D2, + $74, $18, $50, $89, $C8, $FF, $15, $10, $77, $40, $00, $59, $09, $C0, $74, $19, + $89, $01, $C3, $B0, $02, $E9, $86, $00, $00, $00, $89, $10, $89, $C8, $FF, $15, + $0C, $77, $40, $00, $09, $C0, $75, $EB, $C3, $B0, $01, $E9, $70, $00, $00, $00, + $85, $D2, $74, $10, $50, $89, $D0, $FF, $15, $08, $77, $40, $00, $59, $09, $C0, + $74, $E7, $89, $01, $C3, $8D, $40, $00, $89, $15, $04, $70, $40, $00, $E8, $95, + $0C, $00, $00, $C3, $53, $56, $8B, $F2, $8B, $D8, $80, $E3, $7F, $83, $3D, $08, + $80, $40, $00, $00, $74, $0A, $8B, $D6, $8B, $C3, $FF, $15, $08, $80, $40, $00, + $84, $DB, $75, $0D, $E8, $33, $13, $00, $00, $8B, $98, $04, $00, $00, $00, $EB, + $0F, $80, $FB, $18, $77, $0A, $0F, $B6, $C3, $0F, $B6, $98, $20, $77, $40, $00, + $0F, $B6, $C3, $8B, $D6, $E8, $AE, $FF, $FF, $FF, $5E, $5B, $C3, $8D, $40, $00, + $83, $E0, $7F, $8B, $14, $24, $E9, $A9, $FF, $FF, $FF, $C3, $53, $8B, $D8, $E8, + $F8, $12, $00, $00, $89, $98, $04, $00, $00, $00, $5B, $C3, $39, $D0, $74, $31, + $83, $F9, $20, $77, $7C, $83, $E9, $08, $7F, $07, $FF, $24, $8D, $F4, $2C, $40, + $00, $DF, $2C, $01, $DF, $28, $83, $F9, $08, $7E, $11, $DF, $68, $08, $83, $F9, + $10, $7E, $06, $DF, $68, $10, $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, $DF, $3C, + $11, $C3, $90, $90, $D1, $2C, $40, $00, $52, $2D, $40, $00, $58, $2D, $40, $00, + $5F, $2D, $40, $00, $6C, $2D, $40, $00, $71, $2D, $40, $00, $7C, $2D, $40, $00, + $89, $2D, $40, $00, $94, $2D, $40, $00, $52, $DF, $28, $8D, $44, $01, $F8, $8D, + $4C, $0A, $F8, $DF, $28, $51, $F7, $D9, $83, $E2, $F8, $8D, $4C, $0A, $08, $5A, + $DF, $2C, $01, $DF, $3C, $11, $83, $C1, $08, $7C, $F5, $DF, $3A, $5A, $DF, $3A, + $C3, $7E, $2E, $39, $D0, $77, $D1, $29, $CA, $39, $D0, $8D, $14, $11, $76, $C8, + $83, $E9, $08, $51, $DF, $2C, $01, $DF, $28, $01, $D1, $83, $E1, $F8, $29, $D1, + $DF, $2C, $01, $DF, $3C, $11, $83, $E9, $08, $7F, $F5, $59, $DF, $3A, $DF, $3C, + $11, $C3, $0F, $B6, $08, $88, $0A, $C3, $0F, $B7, $08, $66, $89, $0A, $C3, $66, + $8B, $08, $8A, $40, $02, $66, $89, $0A, $88, $42, $02, $C3, $8B, $08, $89, $0A, + $C3, $8B, $08, $8A, $40, $04, $89, $0A, $88, $42, $04, $C3, $8B, $08, $66, $8B, + $40, $04, $89, $0A, $66, $89, $42, $04, $C3, $8B, $08, $8B, $40, $03, $89, $0A, + $89, $42, $03, $C3, $DF, $28, $DF, $3A, $C3, $8D, $40, $00, $53, $56, $8B, $D8, + $33, $F6, $0F, $B7, $43, $04, $66, $3D, $B1, $D7, $72, $2F, $66, $3D, $B3, $D7, + $77, $29, $66, $25, $B2, $D7, $66, $3D, $B2, $D7, $75, $07, $8B, $C3, $FF, $53, + $1C, $8B, $F0, $85, $F6, $75, $07, $8B, $C3, $FF, $53, $24, $8B, $F0, $85, $F6, + $74, $1B, $8B, $C6, $E8, $B3, $FE, $FF, $FF, $EB, $12, $81, $FB, $38, $80, $40, + $00, $74, $0A, $B8, $67, $00, $00, $00, $E8, $9F, $FE, $FF, $FF, $8B, $C6, $5E, + $5B, $C3, $8B, $C0, $83, $FA, $20, $88, $CD, $7C, $3D, $66, $89, $08, $66, $89, + $48, $02, $66, $89, $48, $04, $66, $89, $48, $06, $83, $EA, $10, $DD, $00, $DD, + $14, $02, $DD, $54, $02, $08, $89, $C1, $83, $E1, $07, $83, $E9, $08, $29, $C8, + $01, $CA, $01, $D0, $F7, $DA, $DD, $14, $02, $DD, $54, $02, $08, $83, $C2, $10, + $7C, $F4, $DD, $C0, $C3, $90, $90, $90, $85, $D2, $7E, $50, $88, $4C, $02, $FF, + $83, $E2, $FE, $F7, $DA, $8D, $14, $55, $8C, $2E, $40, $00, $FF, $E2, $90, $90, + $66, $89, $48, $1C, $66, $89, $48, $1A, $66, $89, $48, $18, $66, $89, $48, $16, + $66, $89, $48, $14, $66, $89, $48, $12, $66, $89, $48, $10, $66, $89, $48, $0E, + $66, $89, $48, $0C, $66, $89, $48, $0A, $66, $89, $48, $08, $66, $89, $48, $06, + $66, $89, $48, $04, $66, $89, $48, $02, $66, $89, $08, $C3, $C3, $8D, $40, $00, + $FF, $25, $84, $B1, $40, $00, $8B, $C0, $53, $33, $DB, $6A, $00, $E8, $EE, $FF, + $FF, $FF, $83, $F8, $07, $75, $1C, $6A, $01, $E8, $E2, $FF, $FF, $FF, $25, $00, + $FF, $00, $00, $3D, $00, $0D, $00, $00, $74, $07, $3D, $00, $04, $00, $00, $75, + $02, $B3, $01, $8B, $C3, $5B, $C3, $90, $55, $8B, $EC, $83, $C4, $F4, $0F, $B7, + $05, $0C, $70, $40, $00, $89, $45, $F8, $8D, $45, $FC, $50, $6A, $01, $6A, $00, + $68, $60, $2F, $40, $00, $68, $02, $00, $00, $80, $E8, $69, $E1, $FF, $FF, $85, + $C0, $75, $4D, $33, $C0, $55, $68, $39, $2F, $40, $00, $64, $FF, $30, $64, $89, + $20, $C7, $45, $F4, $04, $00, $00, $00, $8D, $45, $F4, $50, $8D, $45, $F8, $50, + $6A, $00, $6A, $00, $68, $7C, $2F, $40, $00, $8B, $45, $FC, $50, $E8, $3E, $E1, + $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $40, $2F, $40, $00, $8B, + $45, $FC, $50, $E8, $18, $E1, $FF, $FF, $C3, $E9, $F6, $02, $00, $00, $EB, $EF, + $0F, $B7, $05, $0C, $70, $40, $00, $66, $25, $C0, $FF, $0F, $B7, $55, $F8, $66, + $83, $E2, $3F, $66, $0B, $C2, $66, $A3, $0C, $70, $40, $00, $8B, $E5, $5D, $C3, + $53, $4F, $46, $54, $57, $41, $52, $45, $5C, $42, $6F, $72, $6C, $61, $6E, $64, + $5C, $44, $65, $6C, $70, $68, $69, $5C, $52, $54, $4C, $00, $46, $50, $55, $4D, + $61, $73, $6B, $56, $61, $6C, $75, $65, $00, $00, $00, $00, $DB, $E3, $9B, $D9, + $2D, $0C, $70, $40, $00, $C3, $8B, $C0, $B0, $05, $E9, $E1, $FC, $FF, $FF, $C3, + $8B, $00, $89, $C2, $8B, $C2, $C3, $90, $56, $57, $89, $D7, $8B, $70, $D4, $31, + $C9, $8A, $0E, $41, $F3, $A4, $5F, $5E, $C3, $8D, $40, $00, $85, $C0, $74, $07, + $B2, $01, $8B, $08, $FF, $51, $FC, $C3, $53, $56, $57, $31, $C9, $31, $FF, $8A, + $1A, $EB, $02, $8B, $00, $8B, $70, $CC, $85, $F6, $74, $15, $66, $8B, $3E, $83, + $C6, $02, $8A, $4E, $06, $38, $D9, $74, $15, $66, $8B, $0E, $01, $CE, $4F, $75, + $F1, $8B, $40, $DC, $85, $C0, $75, $DB, $EB, $18, $8A, $1A, $EB, $EB, $B5, $00, + $8A, $5C, $31, $06, $32, $1C, $11, $80, $E3, $DF, $75, $EE, $49, $75, $F1, $8B, + $46, $02, $5F, $5E, $5B, $C3, $8B, $C0, $80, $3D, $10, $70, $40, $00, $01, $76, + $11, $6A, $00, $6A, $00, $6A, $00, $68, $DF, $FA, $ED, $0E, $FF, $15, $10, $80, + $40, $00, $C3, $90, $80, $3D, $10, $70, $40, $00, $00, $74, $17, $50, $50, $52, + $54, $6A, $02, $6A, $00, $68, $E4, $FA, $ED, $0E, $FF, $15, $10, $80, $40, $00, + $83, $C4, $08, $58, $C3, $8D, $40, $00, $54, $6A, $01, $6A, $00, $68, $E0, $FA, + $ED, $0E, $FF, $15, $10, $80, $40, $00, $83, $C4, $04, $58, $C3, $8D, $40, $00, + $80, $3D, $10, $70, $40, $00, $01, $76, $07, $50, $53, $E9, $D8, $FF, $FF, $FF, + $C3, $8D, $40, $00, $85, $C9, $74, $19, $8B, $41, $01, $80, $39, $E9, $74, $0C, + $80, $39, $EB, $75, $0C, $0F, $BE, $C0, $41, $41, $EB, $03, $83, $C1, $05, $01, + $C1, $C3, $8B, $C0, $80, $3D, $10, $70, $40, $00, $01, $76, $1D, $50, $52, $51, + $E8, $CF, $FF, $FF, $FF, $51, $54, $6A, $01, $6A, $00, $68, $E1, $FA, $ED, $0E, + $FF, $15, $10, $80, $40, $00, $59, $59, $5A, $58, $C3, $90, $80, $3D, $10, $70, + $40, $00, $01, $76, $12, $52, $54, $6A, $01, $6A, $00, $68, $E2, $FA, $ED, $0E, + $FF, $15, $10, $80, $40, $00, $5A, $C3, $50, $52, $80, $3D, $10, $70, $40, $00, + $01, $76, $10, $54, $6A, $02, $6A, $00, $68, $E3, $FA, $ED, $0E, $FF, $15, $10, + $80, $40, $00, $5A, $58, $C3, $8B, $C0, $8B, $44, $24, $04, $F7, $40, $04, $06, + $00, $00, $00, $0F, $85, $13, $01, $00, $00, $81, $38, $DE, $FA, $ED, $0E, $8B, + $50, $18, $8B, $48, $14, $74, $6E, $FC, $E8, $5F, $FE, $FF, $FF, $8B, $15, $0C, + $80, $40, $00, $85, $D2, $0F, $84, $F1, $00, $00, $00, $FF, $D2, $85, $C0, $0F, + $84, $E7, $00, $00, $00, $8B, $54, $24, $0C, $8B, $4C, $24, $04, $81, $39, $CE, + $FA, $EF, $0E, $74, $37, $E8, $DA, $FE, $FF, $FF, $80, $3D, $14, $70, $40, $00, + $00, $76, $29, $80, $3D, $10, $70, $40, $00, $00, $77, $20, $8D, $4C, $24, $04, + $50, $51, $E8, $A1, $DE, $FF, $FF, $83, $F8, $00, $58, $0F, $84, $AB, $00, $00, + $00, $89, $C2, $8B, $44, $24, $04, $8B, $48, $0C, $EB, $30, $89, $C2, $8B, $44, + $24, $04, $8B, $48, $0C, $80, $3D, $14, $70, $40, $00, $01, $76, $1E, $80, $3D, + $10, $70, $40, $00, $00, $77, $15, $50, $8D, $44, $24, $08, $52, $51, $50, $E8, + $64, $DE, $FF, $FF, $83, $F8, $00, $59, $5A, $58, $74, $70, $83, $48, $04, $02, + $53, $31, $DB, $56, $57, $55, $64, $8B, $1B, $53, $50, $52, $51, $8B, $54, $24, + $28, $6A, $00, $50, $68, $E0, $31, $40, $00, $52, $FF, $15, $14, $80, $40, $00, + $8B, $7C, $24, $28, $E8, $A3, $0D, $00, $00, $FF, $B0, $00, $00, $00, $00, $89, + $A0, $00, $00, $00, $00, $8B, $6F, $08, $8B, $5F, $04, $C7, $47, $04, $0C, $32, + $40, $00, $83, $C3, $05, $E8, $66, $FE, $FF, $FF, $FF, $E3, $E9, $CB, $00, $00, + $00, $E8, $76, $0D, $00, $00, $8B, $88, $00, $00, $00, $00, $8B, $11, $89, $90, + $00, $00, $00, $00, $8B, $41, $08, $E9, $90, $FD, $FF, $FF, $B8, $01, $00, $00, + $00, $C3, $8B, $C0, $8B, $44, $24, $04, $F7, $40, $04, $06, $00, $00, $00, $0F, + $84, $8F, $00, $00, $00, $53, $31, $DB, $56, $57, $55, $55, $68, $B4, $32, $40, + $00, $64, $FF, $33, $64, $89, $23, $64, $8B, $1B, $8B, $50, $18, $8B, $48, $14, + $53, $50, $52, $51, $8B, $7C, $24, $34, $E8, $1F, $0D, $00, $00, $FF, $B0, $00, + $00, $00, $00, $89, $A0, $00, $00, $00, $00, $8B, $4F, $04, $8B, $6F, $08, $C7, + $47, $04, $B4, $32, $40, $00, $83, $C1, $05, $E8, $16, $FE, $FF, $FF, $FF, $D1, + $E8, $F7, $0C, $00, $00, $8B, $88, $00, $00, $00, $00, $8B, $11, $89, $90, $00, + $00, $00, $00, $83, $C4, $14, $31, $C0, $5A, $59, $59, $64, $89, $10, $5D, $5F, + $5E, $5B, $EB, $20, $E9, $23, $00, $00, $00, $E8, $CE, $0C, $00, $00, $8B, $88, + $00, $00, $00, $00, $8B, $11, $89, $90, $00, $00, $00, $00, $8B, $41, $08, $E9, + $E8, $FC, $FF, $FF, $B8, $01, $00, $00, $00, $C3, $8B, $C0, $8B, $44, $24, $04, + $8B, $54, $24, $08, $F7, $40, $04, $06, $00, $00, $00, $74, $1F, $8B, $4A, $04, + $C7, $42, $04, $0C, $33, $40, $00, $53, $56, $57, $55, $8B, $6A, $08, $83, $C1, + $05, $E8, $9E, $FD, $FF, $FF, $FF, $D1, $5D, $5F, $5E, $5B, $B8, $01, $00, $00, + $00, $C3, $8B, $C0, $8B, $44, $24, $30, $C7, $40, $04, $5F, $33, $40, $00, $E8, + $68, $0C, $00, $00, $8B, $90, $00, $00, $00, $00, $8B, $0A, $89, $88, $00, $00, + $00, $00, $8B, $42, $0C, $83, $60, $04, $FD, $81, $38, $DE, $FA, $ED, $0E, $74, + $0D, $8B, $42, $08, $E8, $73, $FC, $FF, $FF, $E8, $CA, $FC, $FF, $FF, $31, $C0, + $83, $C4, $14, $64, $8B, $10, $59, $8B, $12, $89, $11, $5D, $5F, $5E, $5B, $B8, + $01, $00, $00, $00, $C3, $8D, $40, $00, $E8, $1F, $0C, $00, $00, $8B, $90, $00, + $00, $00, $00, $8B, $0A, $89, $88, $00, $00, $00, $00, $8B, $42, $08, $E8, $39, + $FC, $FF, $FF, $5A, $8B, $64, $24, $2C, $31, $C0, $59, $64, $89, $08, $58, $5D, + $E8, $37, $FD, $FF, $FF, $FF, $E2, $C3, $31, $D2, $8B, $4C, $24, $08, $8B, $44, + $24, $04, $83, $C1, $05, $64, $89, $02, $FF, $D1, $C2, $0C, $00, $C3, $8B, $C0, + $55, $8B, $EC, $8B, $55, $08, $8B, $02, $3D, $92, $00, $00, $C0, $7F, $2C, $74, + $5C, $3D, $8E, $00, $00, $C0, $7F, $15, $74, $57, $2D, $05, $00, $00, $C0, $74, + $5C, $2D, $87, $00, $00, $00, $74, $3D, $48, $74, $4E, $EB, $60, $05, $71, $FF, + $FF, $3F, $83, $E8, $02, $72, $36, $74, $30, $EB, $52, $3D, $96, $00, $00, $C0, + $7F, $11, $74, $3D, $2D, $93, $00, $00, $C0, $74, $2E, $48, $74, $13, $48, $74, + $24, $EB, $3A, $2D, $FD, $00, $00, $C0, $74, $2F, $83, $E8, $3D, $74, $26, $EB, + $2C, $B0, $C8, $EB, $2A, $B0, $C9, $EB, $26, $B0, $CD, $EB, $22, $B0, $CF, $EB, + $1E, $B0, $C8, $EB, $1A, $B0, $D7, $EB, $16, $B0, $CE, $EB, $12, $B0, $D8, $EB, + $0E, $B0, $DA, $EB, $0A, $B0, $D9, $EB, $06, $B0, $CA, $EB, $02, $B0, $FF, $0F, + $B6, $C0, $8B, $52, $0C, $E8, $DE, $F7, $FF, $FF, $5D, $C2, $04, $00, $8B, $C0, + $8B, $44, $24, $04, $F7, $40, $04, $06, $00, $00, $00, $0F, $85, $89, $00, $00, + $00, $80, $3D, $10, $70, $40, $00, $00, $77, $0F, $8D, $44, $24, $04, $50, $E8, + $A4, $DB, $FF, $FF, $83, $F8, $00, $74, $71, $8B, $44, $24, $04, $FC, $E8, $09, + $FB, $FF, $FF, $8B, $54, $24, $08, $6A, $00, $50, $68, $96, $34, $40, $00, $52, + $FF, $15, $14, $80, $40, $00, $8B, $5C, $24, $04, $81, $3B, $DE, $FA, $ED, $0E, + $8B, $53, $14, $8B, $43, $18, $74, $1D, $8B, $15, $0C, $80, $40, $00, $85, $D2, + $0F, $84, $FA, $FE, $FF, $FF, $89, $D8, $FF, $D2, $85, $C0, $0F, $84, $EE, $FE, + $FF, $FF, $8B, $53, $0C, $E8, $1E, $FC, $FF, $FF, $8B, $0D, $04, $80, $40, $00, + $85, $C9, $74, $02, $FF, $D1, $8B, $4C, $24, $04, $B8, $D9, $00, $00, $00, $8B, + $51, $14, $89, $14, $24, $E9, $EA, $03, $00, $00, $31, $C0, $C3, $8D, $40, $00, + $31, $D2, $8D, $45, $F4, $64, $8B, $0A, $64, $89, $02, $89, $08, $C7, $40, $04, + $50, $34, $40, $00, $89, $68, $08, $A3, $B4, $A7, $40, $00, $C3, $8D, $40, $00, + $31, $D2, $A1, $B4, $A7, $40, $00, $85, $C0, $74, $1C, $64, $8B, $0A, $39, $C8, + $75, $08, $8B, $00, $64, $89, $02, $C3, $8B, $09, $83, $F9, $FF, $74, $08, $39, + $01, $75, $F5, $8B, $00, $89, $01, $C3, $55, $8B, $EC, $53, $56, $57, $A1, $B8, + $A7, $40, $00, $85, $C0, $74, $4E, $8B, $1D, $BC, $A7, $40, $00, $8B, $78, $04, + $33, $C0, $55, $68, $81, $35, $40, $00, $64, $FF, $30, $64, $89, $20, $85, $DB, + $7E, $15, $4B, $89, $1D, $BC, $A7, $40, $00, $8B, $74, $DF, $04, $85, $F6, $74, + $02, $FF, $D6, $85, $DB, $7F, $EB, $33, $C0, $5A, $59, $59, $64, $89, $10, $EB, + $14, $E9, $82, $FB, $FF, $FF, $E8, $AD, $FF, $FF, $FF, $E8, $84, $FD, $FF, $FF, + $E8, $D3, $FD, $FF, $FF, $5F, $5E, $5B, $5D, $C3, $8B, $C0, $55, $8B, $EC, $51, + $53, $56, $57, $A1, $B8, $A7, $40, $00, $85, $C0, $74, $51, $8B, $38, $33, $DB, + $8B, $40, $04, $89, $45, $FC, $33, $C0, $55, $68, $E9, $35, $40, $00, $64, $FF, + $30, $64, $89, $20, $3B, $FB, $7E, $17, $8B, $45, $FC, $8B, $34, $D8, $43, $89, + $1D, $BC, $A7, $40, $00, $85, $F6, $74, $02, $FF, $D6, $3B, $FB, $7F, $E9, $33, + $C0, $5A, $59, $59, $64, $89, $10, $EB, $14, $E9, $1A, $FB, $FF, $FF, $E8, $45, + $FF, $FF, $FF, $E8, $1C, $FD, $FF, $FF, $E8, $6B, $FD, $FF, $FF, $5F, $5E, $5B, + $59, $5D, $C3, $90, $51, $56, $57, $BE, $B0, $A7, $40, $00, $8D, $7D, $C4, $B9, + $0B, $00, $00, $00, $F3, $A5, $8F, $05, $D0, $A7, $40, $00, $8F, $05, $CC, $A7, + $40, $00, $89, $2D, $C4, $A7, $40, $00, $89, $1D, $C8, $A7, $40, $00, $A3, $B8, + $A7, $40, $00, $89, $15, $C0, $A7, $40, $00, $8D, $4D, $C4, $89, $0D, $B0, $A7, + $40, $00, $31, $C9, $83, $7D, $0C, $00, $75, $02, $8B, $08, $89, $0D, $BC, $A7, + $40, $00, $B8, $08, $10, $40, $00, $A3, $10, $80, $40, $00, $B8, $10, $10, $40, + $00, $A3, $14, $80, $40, $00, $E8, $85, $FE, $FF, $FF, $8B, $45, $0C, $40, $A2, + $D8, $A7, $40, $00, $48, $59, $8B, $11, $89, $15, $D4, $A7, $40, $00, $74, $07, + $3C, $03, $7D, $03, $FF, $14, $81, $51, $8B, $4C, $24, $08, $85, $C9, $74, $08, + $8B, $45, $0C, $8B, $55, $10, $FF, $D1, $59, $8B, $45, $0C, $3C, $03, $7C, $03, + $FF, $14, $81, $83, $3D, $1C, $80, $40, $00, $00, $75, $0D, $C6, $05, $24, $80, + $40, $00, $01, $D9, $3D, $0C, $70, $40, $00, $8B, $45, $0C, $48, $0F, $85, $29, + $01, $00, $00, $E8, $D4, $FE, $FF, $FF, $C2, $04, $00, $C3, $53, $56, $57, $BF, + $44, $77, $40, $00, $B3, $10, $8B, $35, $00, $70, $40, $00, $8B, $C6, $B9, $0A, + $00, $00, $00, $99, $F7, $F9, $80, $C2, $30, $0F, $B6, $C3, $88, $14, $07, $B9, + $0A, $00, $00, $00, $8B, $C6, $99, $F7, $F9, $89, $C6, $4B, $85, $F6, $75, $DC, + $B3, $1C, $8B, $35, $04, $70, $40, $00, $8B, $C6, $83, $E0, $0F, $0F, $B6, $80, + $64, $77, $40, $00, $0F, $B6, $D3, $88, $04, $17, $B9, $10, $00, $00, $00, $8B, + $C6, $33, $D2, $F7, $F1, $89, $C6, $4B, $85, $F6, $75, $DC, $5F, $5E, $5B, $C3, + $31, $C0, $87, $05, $00, $70, $40, $00, $F7, $D8, $19, $C0, $40, $BF, $B0, $A7, + $40, $00, $8B, $5F, $18, $8B, $6F, $14, $FF, $77, $1C, $FF, $77, $20, $8B, $37, + $B9, $0B, $00, $00, $00, $F3, $A5, $5F, $5E, $C9, $C2, $0C, $00, $C3, $8B, $C0, + $51, $80, $3D, $34, $80, $40, $00, $00, $74, $57, $66, $81, $3D, $08, $82, $40, + $00, $B2, $D7, $75, $14, $83, $3D, $10, $82, $40, $00, $00, $76, $0B, $B8, $04, + $82, $40, $00, $FF, $15, $20, $82, $40, $00, $6A, $00, $8D, $44, $24, $04, $50, + $6A, $1E, $68, $44, $77, $40, $00, $6A, $F5, $E8, $62, $D8, $FF, $FF, $50, $E8, + $7C, $D8, $FF, $FF, $6A, $00, $8D, $44, $24, $04, $50, $6A, $02, $68, $E8, $37, + $40, $00, $6A, $F5, $E8, $47, $D8, $FF, $FF, $50, $E8, $61, $D8, $FF, $FF, $5A, + $C3, $80, $3D, $18, $70, $40, $00, $00, $75, $13, $6A, $00, $68, $3C, $77, $40, + $00, $68, $44, $77, $40, $00, $6A, $00, $E8, $53, $D8, $FF, $FF, $5A, $C3, $00, + $FF, $FF, $FF, $FF, $02, $00, $00, $00, $0D, $0A, $00, $00, $53, $56, $57, $55, + $BB, $B0, $A7, $40, $00, $BF, $30, $80, $40, $00, $80, $7B, $28, $00, $75, $14, + $83, $3F, $00, $74, $0F, $8B, $07, $89, $C6, $33, $C0, $89, $07, $FF, $D6, $83, + $3F, $00, $75, $F1, $83, $3D, $04, $70, $40, $00, $00, $74, $11, $E8, $AA, $FE, + $FF, $FF, $E8, $39, $FF, $FF, $FF, $33, $C0, $A3, $04, $70, $40, $00, $80, $7B, + $28, $02, $75, $0E, $83, $3D, $00, $70, $40, $00, $00, $75, $05, $33, $C0, $89, + $43, $0C, $E8, $F1, $FC, $FF, $FF, $80, $7B, $28, $01, $76, $09, $83, $3D, $00, + $70, $40, $00, $00, $74, $23, $8B, $7B, $10, $85, $FF, $74, $1C, $8B, $C7, $E8, + $40, $05, $00, $00, $8B, $6B, $10, $8B, $75, $10, $3B, $75, $04, $74, $0A, $85, + $F6, $74, $06, $56, $E8, $BF, $D7, $FF, $FF, $E8, $92, $FC, $FF, $FF, $80, $7B, + $28, $01, $75, $03, $FF, $53, $24, $80, $7B, $28, $00, $74, $05, $E8, $9E, $FE, + $FF, $FF, $83, $3B, $00, $75, $1A, $83, $3D, $18, $80, $40, $00, $00, $74, $06, + $FF, $15, $18, $80, $40, $00, $A1, $00, $70, $40, $00, $50, $E8, $77, $D7, $FF, + $FF, $8B, $03, $8B, $F0, $8B, $FB, $B9, $0B, $00, $00, $00, $F3, $A5, $E9, $6B, + $FF, $FF, $FF, $5D, $5F, $5E, $5B, $C3, $A3, $00, $70, $40, $00, $E8, $1A, $FF, + $FF, $FF, $C3, $90, $8F, $05, $04, $70, $40, $00, $E9, $E9, $FF, $FF, $FF, $C3, + $8B, $10, $85, $D2, $74, $1C, $C7, $00, $00, $00, $00, $00, $8B, $4A, $F8, $49, + $7C, $10, $F0, $FF, $4A, $F8, $75, $0A, $50, $8D, $42, $F8, $E8, $BF, $F2, $FF, + $FF, $58, $C3, $90, $53, $56, $89, $C3, $89, $D6, $8B, $13, $85, $D2, $74, $1A, + $C7, $03, $00, $00, $00, $00, $8B, $4A, $F8, $49, $7C, $0E, $F0, $FF, $4A, $F8, + $75, $08, $8D, $42, $F8, $E8, $96, $F2, $FF, $FF, $83, $C3, $04, $4E, $75, $DA, + $5E, $5B, $C3, $90, $85, $D2, $74, $24, $8B, $4A, $F8, $41, $7F, $1A, $50, $52, + $8B, $42, $FC, $E8, $30, $00, $00, $00, $89, $C2, $58, $52, $8B, $48, $FC, $E8, + $48, $F3, $FF, $FF, $5A, $58, $EB, $04, $F0, $FF, $42, $F8, $87, $10, $85, $D2, + $74, $14, $8B, $4A, $F8, $49, $7C, $0E, $F0, $FF, $4A, $F8, $75, $08, $8D, $42, + $F8, $E8, $4A, $F2, $FF, $FF, $C3, $90, $85, $C0, $7E, $24, $50, $83, $C0, $0A, + $83, $E0, $FE, $50, $E8, $1B, $F2, $FF, $FF, $5A, $66, $C7, $44, $02, $FE, $00, + $00, $83, $C0, $08, $5A, $89, $50, $FC, $C7, $40, $F8, $01, $00, $00, $00, $C3, + $31, $C0, $C3, $90, $53, $56, $57, $89, $C3, $89, $D6, $89, $CF, $89, $F8, $E8, + $C4, $FF, $FF, $FF, $89, $F9, $89, $C7, $85, $F6, $74, $09, $89, $C2, $89, $F0, + $E8, $D7, $F2, $FF, $FF, $89, $D8, $E8, $14, $FF, $FF, $FF, $89, $3B, $5F, $5E, + $5B, $C3, $8B, $C0, $52, $89, $E2, $B9, $01, $00, $00, $00, $E8, $C3, $FF, $FF, + $FF, $5A, $C3, $90, $57, $50, $51, $89, $D7, $31, $C0, $F2, $AE, $75, $02, $F7, + $D1, $58, $01, $C1, $58, $5F, $E9, $A9, $FF, $FF, $FF, $C3, $85, $D2, $74, $46, + $8B, $08, $85, $C9, $0F, $84, $2A, $FF, $FF, $FF, $53, $56, $57, $89, $C3, $89, + $D6, $8B, $79, $FC, $8B, $56, $FC, $01, $FA, $70, $26, $39, $CE, $74, $17, $E8, + $A8, $02, $00, $00, $89, $F0, $8B, $4E, $FC, $8B, $13, $01, $FA, $E8, $6A, $F2, + $FF, $FF, $5F, $5E, $5B, $C3, $E8, $91, $02, $00, $00, $8B, $03, $89, $F9, $EB, + $E8, $E9, $52, $F5, $FF, $FF, $C3, $90, $53, $56, $57, $52, $50, $89, $D3, $31, + $FF, $8B, $4C, $94, $14, $85, $C9, $74, $0C, $39, $08, $75, $08, $89, $CF, $8B, + $41, $FC, $4A, $EB, $02, $31, $C0, $8B, $4C, $94, $14, $85, $C9, $74, $0B, $03, + $41, $FC, $70, $5F, $39, $CF, $75, $02, $31, $FF, $4A, $75, $EA, $85, $FF, $74, + $17, $89, $C2, $8B, $04, $24, $8B, $77, $FC, $E8, $3E, $02, $00, $00, $8B, $3C, + $24, $FF, $37, $03, $37, $4B, $EB, $08, $E8, $DB, $FE, $FF, $FF, $50, $89, $C6, + $8B, $44, $9C, $18, $89, $F2, $85, $C0, $74, $0A, $8B, $48, $FC, $01, $CE, $E8, + $E8, $F1, $FF, $FF, $4B, $75, $E9, $5A, $58, $85, $FF, $75, $0C, $85, $D2, $74, + $03, $FF, $4A, $F8, $E8, $6B, $FE, $FF, $FF, $5A, $5F, $5E, $5B, $58, $8D, $24, + $94, $FF, $E0, $E9, $C0, $F4, $FF, $FF, $C3, $8D, $40, $00, $39, $D0, $74, $30, + $85, $D0, $74, $40, $0F, $B6, $08, $2A, $0A, $75, $25, $53, $8B, $58, $FC, $2B, + $5A, $FC, $53, $83, $D1, $FF, $21, $D9, $2B, $48, $FC, $29, $C8, $29, $CA, $8B, + $1C, $01, $33, $1C, $11, $75, $0A, $83, $C1, $04, $78, $F3, $58, $01, $C0, $5B, + $C3, $0F, $BC, $DB, $C1, $EB, $03, $01, $D9, $79, $F1, $8A, $04, $01, $3A, $04, + $11, $5B, $5B, $C3, $85, $C0, $74, $08, $85, $D2, $75, $B8, $39, $50, $FC, $C3, + $3B, $42, $FC, $C3, $85, $C0, $74, $0A, $C3, $FF, $FF, $FF, $FF, $00, $00, $00, + $00, $00, $B8, $41, $3B, $40, $00, $C3, $53, $85, $C0, $74, $2D, $8B, $58, $FC, + $85, $DB, $74, $26, $4A, $7C, $1B, $39, $DA, $7D, $1F, $29, $D3, $85, $C9, $7C, + $19, $39, $D9, $7F, $11, $01, $C2, $8B, $44, $24, $08, $E8, $34, $FE, $FF, $FF, + $EB, $11, $31, $D2, $EB, $E5, $89, $D9, $EB, $EB, $8B, $44, $24, $08, $E8, $5D, + $FD, $FF, $FF, $5B, $C2, $04, $00, $C3, $53, $56, $83, $C4, $F0, $85, $D2, $74, + $4E, $85, $C0, $74, $4A, $8B, $72, $FC, $8B, $58, $FC, $39, $DE, $7C, $40, $85, + $DB, $7E, $3C, $4B, $01, $D6, $01, $DA, $89, $74, $24, $08, $01, $D8, $89, $54, + $24, $04, $F7, $DB, $0F, $B6, $08, $89, $1C, $24, $0F, $85, $99, $00, $00, $00, + $83, $EE, $02, $89, $74, $24, $0C, $3A, $0A, $74, $41, $3A, $4A, $01, $74, $4C, + $83, $C2, $02, $3B, $54, $24, $0C, $72, $0A, $3B, $54, $24, $08, $72, $E8, $31, + $C0, $EB, $30, $3A, $0A, $74, $25, $3A, $4A, $01, $74, $30, $3A, $4A, $02, $74, + $18, $3A, $4A, $03, $74, $23, $83, $C2, $04, $3B, $54, $24, $0C, $72, $E4, $3B, + $54, $24, $08, $72, $C2, $31, $C0, $EB, $0A, $83, $C2, $02, $42, $89, $D0, $2B, + $44, $24, $04, $83, $C4, $10, $5E, $5B, $C3, $83, $C2, $02, $83, $C2, $02, $31, + $C0, $3B, $54, $24, $08, $77, $06, $89, $D0, $2B, $44, $24, $04, $83, $C4, $10, + $5E, $5B, $C3, $3A, $0A, $74, $75, $3A, $4A, $01, $74, $43, $3A, $4A, $02, $74, + $68, $3A, $4A, $03, $74, $36, $83, $C2, $04, $3B, $54, $24, $0C, $72, $E4, $3B, + $54, $24, $08, $72, $0B, $31, $C0, $EB, $4A, $83, $EE, $02, $89, $74, $24, $0C, + $3A, $0A, $74, $48, $3A, $4A, $01, $74, $16, $83, $C2, $02, $3B, $54, $24, $0C, + $72, $C1, $3B, $54, $24, $08, $72, $E8, $31, $C0, $EB, $27, $83, $C2, $02, $8B, + $34, $24, $0F, $B7, $1C, $30, $66, $3B, $5C, $32, $01, $75, $DC, $83, $C6, $02, + $7C, $F0, $83, $C2, $02, $31, $C0, $3B, $54, $24, $08, $77, $06, $89, $D0, $2B, + $44, $24, $04, $83, $C4, $10, $5E, $5B, $C3, $83, $C2, $02, $8B, $34, $24, $0F, + $B7, $1C, $30, $66, $3B, $1C, $32, $75, $AB, $83, $C6, $02, $7C, $F1, $42, $89, + $D0, $2B, $44, $24, $04, $83, $C4, $10, $5E, $5B, $C3, $90, $53, $56, $57, $89, + $C3, $89, $D6, $31, $FF, $85, $D2, $7E, $48, $8B, $03, $85, $C0, $74, $23, $83, + $78, $F8, $01, $75, $1D, $83, $E8, $08, $83, $C2, $09, $50, $89, $E0, $E8, $E5, + $EE, $FF, $FF, $58, $83, $C0, $08, $89, $03, $89, $70, $FC, $C6, $04, $06, $00, + $EB, $28, $89, $D0, $E8, $6F, $FC, $FF, $FF, $89, $C7, $8B, $03, $85, $C0, $74, + $10, $89, $FA, $8B, $48, $FC, $39, $F1, $7C, $02, $89, $F1, $E8, $7B, $EF, $FF, + $FF, $89, $D8, $E8, $B8, $FB, $FF, $FF, $89, $3B, $5F, $5E, $5B, $C3, $8B, $C0, + $B0, $11, $E9, $49, $EF, $FF, $FF, $C3, $55, $8B, $EC, $83, $C4, $F8, $53, $56, + $57, $89, $45, $FC, $A1, $20, $70, $40, $00, $89, $45, $F8, $83, $7D, $F8, $00, + $74, $39, $33, $C0, $55, $68, $73, $3D, $40, $00, $64, $FF, $30, $64, $89, $20, + $8B, $5D, $F8, $8B, $45, $FC, $FF, $53, $04, $33, $C0, $5A, $59, $59, $64, $89, + $10, $EB, $0A, $E9, $90, $F3, $FF, $FF, $E8, $EB, $F5, $FF, $FF, $8B, $45, $F8, + $8B, $00, $89, $45, $F8, $83, $7D, $F8, $00, $75, $C7, $5F, $5E, $5B, $59, $59, + $5D, $C3, $8B, $C0, $8B, $15, $1C, $70, $40, $00, $89, $10, $A3, $1C, $70, $40, + $00, $C3, $8B, $C0, $55, $8B, $EC, $51, $89, $45, $FC, $33, $D2, $55, $68, $08, + $3E, $40, $00, $64, $FF, $32, $64, $89, $22, $8B, $45, $FC, $8B, $40, $04, $E8, + $74, $FF, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $0F, $3E, $40, + $00, $8B, $45, $FC, $3B, $05, $1C, $70, $40, $00, $75, $0C, $8B, $45, $FC, $8B, + $00, $A3, $1C, $70, $40, $00, $EB, $1F, $A1, $1C, $70, $40, $00, $85, $C0, $74, + $16, $8B, $10, $3B, $55, $FC, $75, $09, $8B, $55, $FC, $8B, $12, $89, $10, $EB, + $06, $8B, $00, $85, $C0, $75, $EA, $C3, $E9, $27, $F4, $FF, $FF, $EB, $C2, $59, + $5D, $C3, $8B, $C0, $FF, $25, $94, $B1, $40, $00, $8B, $C0, $55, $8B, $EC, $33, + $C0, $55, $68, $70, $3E, $40, $00, $64, $FF, $30, $64, $89, $20, $FF, $05, $A0, + $85, $40, $00, $75, $2D, $B8, $38, $80, $40, $00, $E8, $5D, $EF, $FF, $FF, $B8, + $04, $82, $40, $00, $E8, $53, $EF, $FF, $FF, $B8, $D0, $83, $40, $00, $E8, $49, + $EF, $FF, $FF, $E8, $F8, $EC, $FF, $FF, $B8, $24, $70, $40, $00, $E8, $7E, $FA, + $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $77, $3E, $40, $00, $C3, + $E9, $BF, $F3, $FF, $FF, $EB, $F8, $5D, $C3, $8D, $40, $00, $FF, $25, $E8, $B1, + $40, $00, $8B, $C0, $FF, $25, $E4, $B1, $40, $00, $8B, $C0, $FF, $25, $E0, $B1, + $40, $00, $8B, $C0, $FF, $25, $DC, $B1, $40, $00, $8B, $C0, $FF, $25, $D8, $B1, + $40, $00, $8B, $C0, $FF, $25, $D4, $B1, $40, $00, $8B, $C0, $50, $6A, $40, $E8, + $C8, $FF, $FF, $FF, $C3, $8D, $40, $00, $B8, $08, $00, $00, $00, $C3, $8B, $C0, + $53, $E8, $F2, $FF, $FF, $FF, $8B, $D8, $85, $DB, $74, $36, $83, $3D, $74, $77, + $40, $00, $FF, $75, $0A, $B8, $E2, $00, $00, $00, $E8, $F5, $F9, $FF, $FF, $8B, + $C3, $E8, $C6, $FF, $FF, $FF, $85, $C0, $75, $0C, $B8, $E2, $00, $00, $00, $E8, + $E0, $F9, $FF, $FF, $EB, $0C, $50, $A1, $74, $77, $40, $00, $50, $E8, $A2, $FF, + $FF, $FF, $5B, $C3, $B8, $08, $00, $00, $00, $85, $C0, $74, $1F, $E8, $7A, $FF, + $FF, $FF, $A3, $74, $77, $40, $00, $E8, $A4, $FF, $FF, $FF, $A1, $74, $77, $40, + $00, $50, $E8, $75, $FF, $FF, $FF, $A3, $E8, $A7, $40, $00, $C3, $8D, $40, $00, + $B8, $08, $00, $00, $00, $85, $C0, $74, $2B, $83, $3D, $74, $77, $40, $00, $FF, + $74, $22, $A1, $74, $77, $40, $00, $50, $E8, $4F, $FF, $FF, $FF, $85, $C0, $74, + $13, $50, $E8, $2D, $FF, $FF, $FF, $6A, $00, $A1, $74, $77, $40, $00, $50, $E8, + $40, $FF, $FF, $FF, $C3, $8D, $40, $00, $B8, $08, $00, $00, $00, $85, $C0, $74, + $19, $E8, $BA, $FF, $FF, $FF, $83, $3D, $74, $77, $40, $00, $FF, $74, $0B, $A1, + $74, $77, $40, $00, $50, $E8, $0A, $FF, $FF, $FF, $C3, $90, $8A, $0D, $DC, $A7, + $40, $00, $A1, $74, $77, $40, $00, $84, $C9, $75, $26, $64, $8B, $15, $2C, $00, + $00, $00, $8B, $04, $82, $C3, $E8, $15, $FF, $FF, $FF, $A1, $74, $77, $40, $00, + $50, $E8, $E6, $FE, $FF, $FF, $85, $C0, $74, $01, $C3, $A1, $E8, $A7, $40, $00, + $C3, $50, $E8, $D5, $FE, $FF, $FF, $85, $C0, $74, $DB, $C3, $B8, $78, $77, $40, + $00, $E8, $BE, $FD, $FF, $FF, $C3, $90, $BA, $78, $77, $40, $00, $83, $7D, $0C, + $01, $75, $2A, $50, $52, $C6, $05, $DC, $A7, $40, $00, $01, $8B, $4D, $08, $89, + $0D, $E0, $A7, $40, $00, $89, $4A, $04, $C7, $42, $08, $00, $00, $00, $00, $C7, + $42, $0C, $00, $00, $00, $00, $E8, $C1, $FF, $FF, $FF, $5A, $58, $FF, $35, $E4, + $A7, $40, $00, $B9, $90, $77, $40, $00, $E8, $E7, $F5, $FF, $FF, $C3, $8B, $C0, + $FF, $25, $54, $B2, $40, $00, $8B, $C0, $FF, $25, $50, $B2, $40, $00, $8B, $C0, + $FF, $25, $4C, $B2, $40, $00, $8B, $C0, $FF, $25, $48, $B2, $40, $00, $8B, $C0, + $FF, $25, $44, $B2, $40, $00, $8B, $C0, $FF, $25, $40, $B2, $40, $00, $8B, $C0, + $FF, $25, $3C, $B2, $40, $00, $8B, $C0, $FF, $25, $38, $B2, $40, $00, $8B, $C0, + $FF, $25, $34, $B2, $40, $00, $8B, $C0, $FF, $25, $30, $B2, $40, $00, $8B, $C0, + $FF, $25, $2C, $B2, $40, $00, $8B, $C0, $FF, $25, $28, $B2, $40, $00, $8B, $C0, + $FF, $25, $24, $B2, $40, $00, $8B, $C0, $FF, $25, $20, $B2, $40, $00, $8B, $C0, + $FF, $25, $1C, $B2, $40, $00, $8B, $C0, $FF, $25, $18, $B2, $40, $00, $8B, $C0, + $FF, $25, $14, $B2, $40, $00, $8B, $C0, $FF, $25, $10, $B2, $40, $00, $8B, $C0, + $FF, $25, $08, $B2, $40, $00, $8B, $C0, $FF, $25, $04, $B2, $40, $00, $8B, $C0, + $FF, $25, $00, $B2, $40, $00, $8B, $C0, $FF, $25, $FC, $B1, $40, $00, $8B, $C0, + $FF, $25, $F8, $B1, $40, $00, $8B, $C0, $FF, $25, $F4, $B1, $40, $00, $8B, $C0, + $FF, $25, $F0, $B1, $40, $00, $8B, $C0, $92, $E8, $AE, $EB, $FF, $FF, $C3, $90, + $55, $8B, $EC, $33, $C0, $55, $68, $2B, $41, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $EC, $A7, $40, $00, $75, $14, $83, $3D, $F0, $A7, $40, $00, $00, + $74, $0B, $A1, $F0, $A7, $40, $00, $50, $E8, $0B, $FF, $FF, $FF, $33, $C0, $5A, + $59, $59, $64, $89, $10, $68, $32, $41, $40, $00, $C3, $E9, $04, $F1, $FF, $FF, + $EB, $F8, $5D, $C3, $55, $8B, $EC, $83, $C4, $EC, $53, $56, $57, $55, $68, $E6, + $43, $40, $00, $64, $FF, $35, $00, $00, $00, $00, $64, $89, $25, $00, $00, $00, + $00, $8B, $F8, $85, $C0, $0F, $84, $7D, $02, $00, $00, $C6, $45, $FF, $00, $33, + $D2, $C7, $45, $F8, $04, $00, $00, $00, $33, $C9, $89, $4D, $EC, $0F, $B6, $30, + $40, $66, $83, $FE, $66, $75, $09, $C7, $45, $F8, $02, $00, $00, $00, $EB, $26, + $66, $83, $FE, $67, $75, $06, $C6, $45, $FF, $01, $EB, $1A, $8B, $CE, $66, $81, + $E1, $E7, $00, $66, $83, $F9, $26, $74, $0D, $8B, $CE, $83, $C1, $9C, $66, $83, + $E9, $02, $72, $02, $B2, $01, $84, $D2, $74, $C3, $66, $83, $FE, $0F, $75, $16, + $0F, $B6, $30, $0F, $B7, $D6, $0F, $B7, $0C, $55, $A0, $79, $40, $00, $66, $81, + $C6, $00, $0F, $40, $EB, $0B, $0F, $B7, $D6, $0F, $B7, $0C, $55, $A0, $77, $40, + $00, $F6, $C1, $38, $0F, $84, $9A, $01, $00, $00, $0F, $B6, $10, $8B, $DA, $80, + $E3, $07, $0F, $B6, $DB, $89, $5D, $F4, $40, $8B, $DA, $80, $E3, $C0, $80, $EB, + $40, $74, $07, $80, $EB, $40, $74, $0B, $EB, $21, $C7, $45, $F0, $01, $00, $00, + $00, $EB, $1D, $80, $7D, $FF, $00, $74, $09, $C7, $45, $F0, $02, $00, $00, $00, + $EB, $0E, $C7, $45, $F0, $04, $00, $00, $00, $EB, $05, $33, $DB, $89, $5D, $F0, + $8B, $DA, $80, $E3, $C0, $80, $FB, $C0, $0F, $95, $C3, $22, $5D, $FF, $75, $31, + $83, $7D, $F4, $04, $75, $16, $8B, $DA, $80, $E3, $C0, $80, $FB, $C0, $74, $0C, + $0F, $B6, $18, $80, $E3, $07, $0F, $B6, $DB, $89, $5D, $F4, $F6, $C2, $C0, $75, + $0D, $83, $7D, $F4, $05, $75, $07, $C7, $45, $F0, $04, $00, $00, $00, $03, $45, + $F0, $8B, $D9, $83, $E3, $38, $83, $FB, $08, $0F, $85, $05, $01, $00, $00, $0F, + $B7, $CE, $81, $C1, $28, $FF, $FF, $FF, $83, $F9, $1F, $0F, $87, $B0, $00, $00, + $00, $0F, $B6, $89, $8F, $42, $40, $00, $FF, $24, $8D, $AF, $42, $40, $00, $03, + $04, $05, $06, $07, $08, $09, $0A, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $02, $31, + $43, $40, $00, $DB, $42, $40, $00, $E2, $42, $40, $00, $EB, $42, $40, $00, $F4, + $42, $40, $00, $FD, $42, $40, $00, $06, $43, $40, $00, $0F, $43, $40, $00, $18, + $43, $40, $00, $21, $43, $40, $00, $2A, $43, $40, $00, $33, $C9, $89, $4D, $EC, + $EB, $4F, $C7, $45, $EC, $01, $00, $00, $00, $EB, $46, $C7, $45, $EC, $02, $00, + $00, $00, $EB, $3D, $C7, $45, $EC, $03, $00, $00, $00, $EB, $34, $C7, $45, $EC, + $04, $00, $00, $00, $EB, $2B, $C7, $45, $EC, $05, $00, $00, $00, $EB, $22, $C7, + $45, $EC, $06, $00, $00, $00, $EB, $19, $C7, $45, $EC, $07, $00, $00, $00, $EB, + $10, $C7, $45, $EC, $08, $00, $00, $00, $EB, $07, $C7, $45, $EC, $09, $00, $00, + $00, $8B, $CA, $80, $E1, $C0, $80, $F9, $C0, $74, $1D, $0F, $B6, $D2, $C1, $EA, + $03, $83, $E2, $07, $8B, $4D, $EC, $03, $C9, $03, $C9, $8D, $0C, $CD, $A0, $7B, + $40, $00, $0F, $B7, $0C, $51, $EB, $1C, $0F, $B6, $D2, $C1, $EA, $03, $83, $E2, + $07, $8B, $4D, $EC, $03, $C9, $03, $C9, $8D, $0C, $CD, $A0, $7B, $40, $00, $0F, + $B7, $4C, $51, $10, $81, $E1, $00, $0C, $00, $00, $81, $E9, $00, $04, $00, $00, + $74, $12, $81, $E9, $00, $04, $00, $00, $74, $0D, $81, $E9, $00, $04, $00, $00, + $74, $0A, $EB, $0D, $40, $EB, $41, $83, $C0, $02, $EB, $3C, $03, $45, $F8, $EB, + $37, $66, $81, $EE, $9A, $00, $74, $15, $83, $C6, $FA, $66, $83, $EE, $04, $72, + $19, $66, $83, $EE, $24, $74, $0E, $66, $83, $EE, $22, $75, $1B, $03, $45, $F8, + $83, $C0, $02, $EB, $13, $83, $C0, $03, $EB, $0E, $80, $7D, $FF, $00, $74, $05, + $83, $C0, $02, $EB, $03, $83, $C0, $04, $8B, $D8, $2B, $DF, $33, $C0, $5A, $59, + $59, $64, $89, $10, $EB, $0C, $E9, $1D, $ED, $FF, $FF, $33, $DB, $E8, $76, $EF, + $FF, $FF, $8B, $C3, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $90, $53, $56, $57, $55, + $51, $8B, $EA, $89, $04, $24, $33, $DB, $8B, $34, $24, $8B, $C6, $E8, $22, $FD, + $FF, $FF, $8B, $F8, $03, $F7, $03, $DF, $83, $FB, $05, $72, $EE, $8B, $CB, $8B, + $14, $24, $8B, $C5, $E8, $BF, $FC, $FF, $FF, $8B, $C5, $8B, $D0, $03, $D3, $C6, + $02, $E9, $2B, $F0, $2B, $F3, $83, $EE, $05, $42, $89, $32, $8B, $C3, $5A, $5D, + $5F, $5E, $5B, $C3, $55, $8B, $EC, $83, $C4, $F0, $53, $56, $57, $89, $4D, $F8, + $89, $55, $FC, $C6, $45, $F7, $00, $8B, $D0, $66, $81, $3A, $FF, $25, $75, $07, + $8B, $42, $02, $8B, $18, $EB, $02, $8B, $D8, $8D, $45, $F0, $50, $6A, $40, $6A, + $05, $53, $E8, $31, $FC, $FF, $FF, $85, $C0, $74, $7C, $33, $D2, $55, $68, $E9, + $44, $40, $00, $64, $FF, $32, $64, $89, $22, $6A, $40, $68, $00, $10, $00, $00, + $68, $00, $10, $00, $00, $6A, $00, $E8, $FC, $FB, $FF, $FF, $8B, $F0, $8B, $FB, + $89, $3E, $8B, $D6, $83, $C2, $05, $8B, $C3, $E8, $4E, $FF, $FF, $FF, $8B, $D6, + $83, $C2, $04, $88, $02, $C6, $03, $E9, $8B, $45, $FC, $2B, $C7, $83, $E8, $05, + $47, $89, $07, $8D, $45, $F0, $50, $8B, $45, $F0, $50, $6A, $05, $53, $E8, $D5, + $FB, $FF, $FF, $83, $C6, $05, $8B, $45, $F8, $89, $30, $C6, $45, $F7, $01, $33, + $C0, $5A, $59, $59, $64, $89, $10, $EB, $0E, $E9, $1A, $EC, $FF, $FF, $C6, $45, + $F7, $00, $E8, $71, $EE, $FF, $FF, $0F, $B6, $45, $F7, $5F, $5E, $5B, $8B, $E5, + $5D, $C3, $8B, $C0, $55, $8B, $EC, $83, $C4, $F8, $53, $56, $57, $8B, $F8, $B3, + $01, $33, $D2, $55, $68, $75, $45, $40, $00, $64, $FF, $32, $64, $89, $22, $8B, + $C7, $8B, $D0, $83, $EA, $05, $8B, $32, $48, $0F, $B6, $00, $89, $45, $F8, $8D, + $45, $FC, $50, $6A, $40, $6A, $05, $56, $E8, $6B, $FB, $FF, $FF, $8B, $4D, $F8, + $8B, $D7, $8B, $C6, $E8, $9F, $FB, $FF, $FF, $8D, $45, $FC, $50, $8B, $45, $FC, + $50, $6A, $05, $56, $E8, $4F, $FB, $FF, $FF, $8B, $C7, $83, $E8, $05, $68, $00, + $80, $00, $00, $6A, $00, $50, $E8, $35, $FB, $FF, $FF, $33, $C0, $5A, $59, $59, + $64, $89, $10, $EB, $0C, $E9, $8E, $EB, $FF, $FF, $33, $DB, $E8, $E7, $ED, $FF, + $FF, $8B, $C3, $5F, $5E, $5B, $59, $59, $5D, $C3, $8B, $C0, $85, $C0, $74, $75, + $85, $D2, $74, $6D, $57, $53, $31, $FF, $8B, $58, $FC, $89, $D9, $2B, $5A, $FC, + $83, $D7, $FF, $53, $21, $FB, $89, $C7, $29, $CB, $7D, $13, $29, $DF, $29, $DA, + $8B, $04, $1F, $8B, $0C, $1A, $31, $C8, $75, $13, $83, $C3, $04, $7C, $F1, $58, + $5B, $5F, $C3, $8B, $04, $1F, $8B, $0C, $1A, $31, $C8, $74, $ED, $A9, $DF, $DF, + $DF, $DF, $75, $3E, $01, $C0, $01, $C0, $85, $C8, $75, $36, $81, $E1, $5F, $5F, + $5F, $5F, $81, $C1, $3F, $3F, $3F, $3F, $81, $E1, $7F, $7F, $7F, $7F, $81, $C1, + $66, $66, $66, $66, $85, $C1, $75, $1A, $83, $C3, $04, $7C, $C6, $58, $5B, $5F, + $C3, $8B, $40, $FC, $C3, $85, $D2, $74, $03, $2B, $42, $FC, $C3, $83, $C3, $01, + $7D, $EB, $0F, $B6, $04, $1F, $0F, $B6, $0C, $1A, $83, $E8, $61, $83, $E9, $61, + $3C, $19, $77, $03, $83, $E8, $20, $80, $F9, $19, $77, $03, $83, $E9, $20, $29, + $C8, $74, $DA, $59, $5B, $5F, $C3, $90, $39, $D0, $74, $19, $09, $C0, $74, $17, + $09, $D2, $74, $14, $8B, $48, $FC, $3B, $4A, $FC, $75, $0C, $E8, $3B, $FF, $FF, + $FF, $85, $C0, $75, $03, $B0, $01, $C3, $31, $C0, $C3, $90, $55, $8B, $EC, $83, + $C4, $F8, $53, $56, $57, $33, $C9, $89, $4D, $F8, $8B, $F2, $89, $45, $FC, $33, + $C0, $55, $68, $CB, $46, $40, $00, $64, $FF, $30, $64, $89, $20, $8B, $C6, $85, + $C0, $74, $05, $83, $E8, $04, $8B, $00, $8B, $F8, $85, $FF, $7E, $27, $0F, $B6, + $5C, $3E, $FF, $84, $DB, $74, $1E, $8D, $45, $F8, $8B, $D3, $E8, $33, $F3, $FF, + $FF, $8B, $45, $F8, $8B, $55, $FC, $E8, $DC, $F4, $FF, $FF, $85, $C0, $75, $05, + $4F, $85, $FF, $7F, $D9, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $D2, $46, + $40, $00, $8D, $45, $F8, $E8, $16, $F2, $FF, $FF, $C3, $E9, $64, $EB, $FF, $FF, + $EB, $F0, $8B, $C7, $5F, $5E, $5B, $59, $59, $5D, $C3, $90, $53, $56, $57, $8B, + $FA, $8B, $D8, $8B, $D3, $B8, $10, $47, $40, $00, $E8, $6D, $FF, $FF, $FF, $8B, + $F0, $57, $8D, $56, $01, $B9, $FF, $FF, $FF, $7F, $8B, $C3, $E8, $47, $F4, $FF, + $FF, $5F, $5E, $5B, $C3, $00, $00, $00, $FF, $FF, $FF, $FF, $01, $00, $00, $00, + $5C, $00, $00, $00, $53, $56, $57, $55, $81, $C4, $00, $FC, $FF, $FF, $8B, $F2, + $8B, $F8, $8B, $C6, $E8, $B7, $F1, $FF, $FF, $68, $00, $04, $00, $00, $8D, $44, + $24, $04, $50, $8B, $C7, $E8, $FA, $F3, $FF, $FF, $8B, $E8, $55, $E8, $FE, $F8, + $FF, $FF, $8B, $D8, $81, $FB, $00, $04, $00, $00, $7D, $0D, $8B, $D4, $8B, $C6, + $8B, $CB, $E8, $4D, $F2, $FF, $FF, $EB, $19, $8B, $D3, $4A, $8B, $C6, $E8, $69, + $F5, $FF, $FF, $53, $8B, $06, $E8, $C9, $F3, $FF, $FF, $50, $55, $E8, $CE, $F8, + $FF, $FF, $81, $C4, $00, $04, $00, $00, $5D, $5F, $5E, $5B, $C3, $8D, $40, $00, + $53, $56, $81, $C4, $F8, $FE, $FF, $FF, $8B, $F2, $8B, $D8, $68, $05, $01, $00, + $00, $8D, $44, $24, $04, $50, $53, $E8, $AC, $F8, $FF, $FF, $8B, $C8, $8B, $D4, + $8B, $C6, $E8, $FD, $F1, $FF, $FF, $81, $C4, $08, $01, $00, $00, $5E, $5B, $C3, + $FF, $FF, $FF, $FF, $02, $00, $00, $00, $00, $00, $00, $00, $55, $8B, $EC, $83, + $C4, $F8, $53, $56, $57, $8B, $F1, $8B, $FA, $8B, $D8, $C6, $45, $FF, $00, $8B, + $C3, $E8, $5E, $F3, $FF, $FF, $50, $6A, $00, $6A, $02, $E8, $A0, $F8, $FF, $FF, + $89, $45, $F8, $83, $7D, $F8, $00, $74, $64, $83, $7D, $F8, $FF, $74, $5E, $33, + $C0, $55, $68, $46, $48, $40, $00, $64, $FF, $30, $64, $89, $20, $56, $6A, $00, + $6A, $00, $6A, $02, $8B, $45, $F8, $50, $E8, $6B, $F8, $FF, $FF, $8B, $D8, $85, + $DB, $75, $07, $E8, $80, $EB, $FF, $FF, $EB, $33, $8B, $D3, $8B, $C7, $8B, $CE, + $E8, $77, $E4, $FF, $FF, $53, $E8, $65, $F8, $FF, $FF, $C6, $45, $FF, $01, $33, + $C0, $5A, $59, $59, $64, $89, $10, $68, $4D, $48, $40, $00, $8B, $45, $F8, $50, + $E8, $DB, $F7, $FF, $FF, $C3, $E9, $E9, $E9, $FF, $FF, $EB, $EF, $0F, $B6, $45, + $FF, $5F, $5E, $5B, $59, $59, $5D, $C3, $55, $8B, $EC, $83, $C4, $F8, $53, $56, + $8B, $F2, $8B, $D8, $C6, $45, $FF, $00, $8B, $C3, $E8, $C5, $F2, $FF, $FF, $50, + $6A, $00, $6A, $02, $E8, $07, $F8, $FF, $FF, $89, $45, $F8, $83, $7D, $F8, $00, + $74, $64, $83, $7D, $F8, $FF, $74, $5E, $33, $C0, $55, $68, $DF, $48, $40, $00, + $64, $FF, $30, $64, $89, $20, $56, $6A, $00, $6A, $00, $6A, $02, $8B, $45, $F8, + $50, $E8, $D2, $F7, $FF, $FF, $8B, $D8, $85, $DB, $75, $07, $E8, $E7, $EA, $FF, + $FF, $EB, $33, $8B, $C3, $33, $C9, $8B, $D6, $E8, $36, $E5, $FF, $FF, $53, $E8, + $CC, $F7, $FF, $FF, $C6, $45, $FF, $01, $33, $C0, $5A, $59, $59, $64, $89, $10, + $68, $E6, $48, $40, $00, $8B, $45, $F8, $50, $E8, $42, $F7, $FF, $FF, $C3, $E9, + $50, $E9, $FF, $FF, $EB, $EF, $0F, $B6, $45, $FF, $5E, $5B, $59, $59, $5D, $C3, + $55, $8B, $EC, $33, $C0, $55, $68, $21, $49, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $F4, $A7, $40, $00, $75, $0A, $B8, $E0, $7C, $40, $00, $E8, $CD, + $EF, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $28, $49, $40, $00, + $C3, $E9, $0E, $E9, $FF, $FF, $EB, $F8, $5D, $C3, $8B, $C0, $FF, $25, $00, $A8, + $40, $00, $C3, $90, $FF, $25, $04, $A8, $40, $00, $C3, $90, $55, $8B, $EC, $6A, + $00, $53, $33, $C0, $55, $68, $FC, $49, $40, $00, $64, $FF, $30, $64, $89, $20, + $8D, $45, $FC, $BA, $04, $01, $00, $00, $E8, $6F, $F3, $FF, $FF, $68, $04, $01, + $00, $00, $8B, $45, $FC, $E8, $CA, $F1, $FF, $FF, $50, $E8, $F0, $F6, $FF, $FF, + $8B, $D8, $8D, $45, $FC, $8B, $D3, $E8, $50, $F3, $FF, $FF, $8B, $45, $FC, $80, + $7C, $18, $FF, $5C, $74, $0D, $8D, $45, $FC, $BA, $10, $4A, $40, $00, $E8, $69, + $F0, $FF, $FF, $8D, $45, $FC, $BA, $1C, $4A, $40, $00, $E8, $5C, $F0, $FF, $FF, + $8B, $45, $FC, $E8, $8C, $F1, $FF, $FF, $50, $E8, $C2, $F6, $FF, $FF, $A3, $FC, + $A7, $40, $00, $83, $3D, $FC, $A7, $40, $00, $00, $76, $2A, $68, $2C, $4A, $40, + $00, $A1, $FC, $A7, $40, $00, $50, $E8, $8C, $F6, $FF, $FF, $A3, $00, $A8, $40, + $00, $68, $40, $4A, $40, $00, $A1, $FC, $A7, $40, $00, $50, $E8, $77, $F6, $FF, + $FF, $A3, $04, $A8, $40, $00, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $03, + $4A, $40, $00, $8D, $45, $FC, $E8, $E5, $EE, $FF, $FF, $C3, $E9, $33, $E8, $FF, + $FF, $EB, $F0, $5B, $59, $5D, $C3, $00, $FF, $FF, $FF, $FF, $01, $00, $00, $00, + $5C, $00, $00, $00, $FF, $FF, $FF, $FF, $0C, $00, $00, $00, $73, $68, $66, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $00, $00, $00, $53, $48, $47, $65, + $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $00, $00, $00, + $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, + $00, $00, $00, $00, $A1, $FC, $A7, $40, $00, $50, $E8, $C9, $F5, $FF, $FF, $C3, + $55, $8B, $EC, $33, $C0, $55, $68, $8C, $4A, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $F8, $A7, $40, $00, $75, $05, $E8, $D6, $FF, $FF, $FF, $33, $C0, + $5A, $59, $59, $64, $89, $10, $68, $93, $4A, $40, $00, $C3, $E9, $A3, $E7, $FF, + $FF, $EB, $F8, $5D, $C3, $8D, $40, $00, $55, $8B, $EC, $83, $C4, $EC, $53, $56, + $89, $45, $FC, $E8, $90, $F5, $FF, $FF, $8B, $F0, $B8, $0E, $00, $00, $00, $BA, + $F4, $7C, $40, $00, $8D, $4D, $EE, $0F, $B6, $1A, $88, $19, $41, $42, $48, $75, + $F6, $33, $C0, $8B, $C8, $03, $C9, $03, $C9, $8B, $D6, $D3, $EA, $83, $E2, $0F, + $0F, $B6, $92, $E4, $7C, $40, $00, $B9, $0D, $00, $00, $00, $2B, $C8, $88, $54, + $0D, $EE, $40, $83, $F8, $08, $75, $DB, $8B, $45, $FC, $8D, $55, $EE, $B9, $0E, + $00, $00, $00, $E8, $EC, $EE, $FF, $FF, $5E, $5B, $8B, $E5, $5D, $C3, $8B, $C0, + $55, $8B, $EC, $83, $C4, $F8, $53, $56, $33, $D2, $89, $55, $FC, $8B, $D8, $33, + $C0, $55, $68, $75, $4B, $40, $00, $64, $FF, $30, $64, $89, $20, $33, $F6, $85, + $DB, $74, $3C, $8D, $45, $F8, $50, $53, $E8, $AB, $F5, $FF, $FF, $85, $C0, $74, + $2E, $E8, $02, $F5, $FF, $FF, $3B, $45, $F8, $75, $24, $8D, $45, $FC, $E8, $55, + $FF, $FF, $FF, $8B, $45, $FC, $E8, $E9, $EF, $FF, $FF, $50, $E8, $17, $F5, $FF, + $FF, $8B, $F0, $0F, $B7, $C6, $50, $53, $E8, $63, $F5, $FF, $FF, $8B, $F0, $33, + $C0, $5A, $59, $59, $64, $89, $10, $68, $7C, $4B, $40, $00, $8D, $45, $FC, $E8, + $6C, $ED, $FF, $FF, $C3, $E9, $BA, $E6, $FF, $FF, $EB, $F0, $8B, $C6, $5E, $5B, + $59, $59, $5D, $C3, $53, $56, $81, $C4, $F8, $FE, $FF, $FF, $8B, $F2, $8B, $D8, + $68, $05, $01, $00, $00, $8D, $44, $24, $04, $50, $53, $E8, $18, $F5, $FF, $FF, + $8B, $C8, $8B, $D4, $8B, $C6, $E8, $F9, $ED, $FF, $FF, $81, $C4, $08, $01, $00, + $00, $5E, $5B, $C3, $53, $56, $81, $C4, $F8, $FE, $FF, $FF, $8B, $F2, $8B, $D8, + $68, $05, $01, $00, $00, $8D, $44, $24, $04, $50, $53, $E8, $00, $F5, $FF, $FF, + $8B, $C8, $8B, $D4, $8B, $C6, $E8, $C9, $ED, $FF, $FF, $81, $C4, $08, $01, $00, + $00, $5E, $5B, $C3, $55, $8B, $EC, $6A, $00, $53, $56, $8B, $5D, $08, $33, $C0, + $55, $68, $69, $4C, $40, $00, $64, $FF, $30, $64, $89, $20, $83, $CE, $FF, $8D, + $55, $FC, $8B, $C3, $E8, $7B, $FF, $FF, $FF, $BA, $84, $4C, $40, $00, $8B, $45, + $FC, $E8, $22, $FA, $FF, $FF, $84, $C0, $74, $22, $83, $3D, $10, $A8, $40, $00, + $00, $75, $08, $89, $1D, $10, $A8, $40, $00, $EB, $28, $83, $3D, $14, $A8, $40, + $00, $00, $75, $1F, $89, $1D, $14, $A8, $40, $00, $EB, $17, $BA, $94, $4C, $40, + $00, $8B, $45, $FC, $E8, $EF, $F9, $FF, $FF, $84, $C0, $74, $06, $89, $1D, $18, + $A8, $40, $00, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $70, $4C, $40, $00, + $8D, $45, $FC, $E8, $78, $EC, $FF, $FF, $C3, $E9, $C6, $E5, $FF, $FF, $EB, $F0, + $8B, $C6, $5E, $5B, $59, $5D, $C2, $08, $00, $00, $00, $00, $FF, $FF, $FF, $FF, + $05, $00, $00, $00, $54, $45, $64, $69, $74, $00, $00, $00, $FF, $FF, $FF, $FF, + $05, $00, $00, $00, $54, $4D, $65, $6D, $6F, $00, $00, $00, $55, $8B, $EC, $83, + $C4, $E0, $6A, $00, $68, $E4, $4B, $40, $00, $8B, $45, $08, $8B, $40, $08, $50, + $E8, $FB, $F3, $FF, $FF, $83, $3D, $10, $A8, $40, $00, $00, $74, $09, $83, $3D, + $14, $A8, $40, $00, $00, $75, $04, $33, $C0, $EB, $02, $B0, $01, $84, $C0, $74, + $5D, $8D, $45, $F0, $50, $A1, $10, $A8, $40, $00, $50, $E8, $E8, $F3, $FF, $FF, + $8D, $45, $E0, $50, $A1, $14, $A8, $40, $00, $50, $E8, $D9, $F3, $FF, $FF, $8B, + $45, $E4, $3B, $45, $F4, $7D, $16, $A1, $14, $A8, $40, $00, $8B, $15, $10, $A8, + $40, $00, $89, $15, $14, $A8, $40, $00, $A3, $10, $A8, $40, $00, $83, $3D, $10, + $A8, $40, $00, $00, $74, $12, $83, $3D, $14, $A8, $40, $00, $00, $74, $09, $83, + $3D, $18, $A8, $40, $00, $00, $75, $04, $33, $C0, $EB, $02, $B0, $01, $8B, $E5, + $5D, $C3, $8B, $C0, $55, $8B, $EC, $6A, $00, $53, $56, $8B, $F0, $33, $C0, $55, + $68, $9F, $4D, $40, $00, $64, $FF, $30, $64, $89, $20, $8D, $55, $FC, $B8, $B4, + $4D, $40, $00, $E8, $BC, $F9, $FF, $FF, $83, $7D, $FC, $00, $74, $2B, $BA, $00, + $04, $00, $00, $8B, $45, $FC, $E8, $ED, $FA, $FF, $FF, $8B, $DE, $85, $DB, $74, + $05, $83, $EB, $04, $8B, $1B, $8B, $C6, $E8, $B7, $ED, $FF, $FF, $8B, $D0, $8B, + $CB, $8B, $45, $FC, $E8, $33, $FA, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, + $10, $68, $A6, $4D, $40, $00, $8D, $45, $FC, $E8, $42, $EB, $FF, $FF, $C3, $E9, + $90, $E4, $FF, $FF, $EB, $F0, $5E, $5B, $59, $5D, $C3, $00, $FF, $FF, $FF, $FF, + $07, $00, $00, $00, $4D, $65, $6D, $46, $69, $6C, $65, $00, $55, $8B, $EC, $53, + $8B, $D8, $53, $8B, $45, $08, $8B, $40, $08, $50, $FF, $15, $0C, $A8, $40, $00, + $8B, $55, $08, $89, $42, $FC, $5B, $5D, $C3, $8D, $40, $00, $55, $8B, $EC, $33, + $C9, $51, $51, $51, $51, $51, $53, $56, $57, $33, $C0, $55, $68, $83, $4F, $40, + $00, $64, $FF, $30, $64, $89, $20, $8D, $55, $F8, $8B, $45, $08, $E8, $82, $FD, + $FF, $FF, $BA, $A0, $4F, $40, $00, $8B, $45, $F8, $E8, $29, $F8, $FF, $FF, $84, + $C0, $75, $22, $BA, $BC, $4F, $40, $00, $8B, $45, $F8, $E8, $18, $F8, $FF, $FF, + $84, $C0, $75, $11, $BA, $D8, $4F, $40, $00, $8B, $45, $F8, $E8, $07, $F8, $FF, + $FF, $84, $C0, $74, $1E, $55, $33, $C0, $E8, $7F, $FF, $FF, $FF, $59, $68, $BB, + $07, $00, $00, $E8, $E8, $F1, $FF, $FF, $50, $E8, $3A, $F2, $FF, $FF, $E9, $15, + $01, $00, $00, $BA, $F4, $4F, $40, $00, $8B, $45, $F8, $E8, $D8, $F7, $FF, $FF, + $84, $C0, $74, $49, $8D, $55, $F8, $8B, $45, $08, $E8, $45, $FD, $FF, $FF, $8B, + $45, $F8, $BA, $04, $50, $40, $00, $E8, $60, $EC, $FF, $FF, $75, $20, $55, $33, + $C0, $E8, $36, $FF, $FF, $FF, $59, $6A, $00, $6A, $06, $68, $11, $01, $00, $00, + $8B, $45, $08, $50, $E8, $47, $F2, $FF, $FF, $E9, $CA, $00, $00, $00, $55, $8B, + $45, $0C, $E8, $15, $FF, $FF, $FF, $59, $E9, $BB, $00, $00, $00, $BA, $20, $50, + $40, $00, $8B, $45, $F8, $E8, $7E, $F7, $FF, $FF, $84, $C0, $0F, $84, $9C, $00, + $00, $00, $55, $33, $C0, $E8, $F2, $FE, $FF, $FF, $59, $8B, $45, $08, $E8, $2D, + $FC, $FF, $FF, $8B, $D8, $8B, $C3, $E8, $C4, $E0, $FF, $FF, $8B, $F0, $BA, $2C, + $50, $40, $00, $8B, $C6, $E8, $DE, $E0, $FF, $FF, $89, $C7, $33, $D2, $8B, $C3, + $FF, $D7, $55, $E8, $A4, $FD, $FF, $FF, $59, $84, $C0, $74, $6B, $8D, $55, $F4, + $A1, $10, $A8, $40, $00, $E8, $AA, $FC, $FF, $FF, $8D, $55, $F0, $A1, $14, $A8, + $40, $00, $E8, $9D, $FC, $FF, $FF, $8D, $55, $EC, $A1, $18, $A8, $40, $00, $E8, + $90, $FC, $FF, $FF, $FF, $75, $F4, $68, $44, $50, $40, $00, $FF, $75, $F0, $68, + $44, $50, $40, $00, $FF, $75, $EC, $8D, $45, $F8, $BA, $05, $00, $00, $00, $E8, + $04, $EB, $FF, $FF, $8B, $45, $F8, $E8, $E8, $FD, $FF, $FF, $68, $BB, $07, $00, + $00, $E8, $DA, $F0, $FF, $FF, $50, $E8, $2C, $F1, $FF, $FF, $EB, $0A, $55, $8B, + $45, $0C, $E8, $55, $FE, $FF, $FF, $59, $33, $C0, $5A, $59, $59, $64, $89, $10, + $68, $8A, $4F, $40, $00, $8D, $45, $EC, $BA, $04, $00, $00, $00, $E8, $82, $E9, + $FF, $FF, $C3, $E9, $AC, $E2, $FF, $FF, $EB, $EB, $8B, $45, $FC, $5F, $5E, $5B, + $8B, $E5, $5D, $C2, $08, $00, $00, $00, $FF, $FF, $FF, $FF, $10, $00, $00, $00, + $54, $54, $72, $69, $61, $6C, $57, $69, $7A, $61, $72, $64, $46, $6F, $72, $6D, + $00, $00, $00, $00, $FF, $FF, $FF, $FF, $12, $00, $00, $00, $54, $41, $64, $76, + $61, $6E, $63, $65, $64, $4C, $69, $63, $65, $6E, $73, $65, $55, $49, $00, $00, + $FF, $FF, $FF, $FF, $10, $00, $00, $00, $54, $53, $69, $6D, $70, $6C, $65, $4C, + $69, $63, $65, $6E, $73, $65, $55, $49, $00, $00, $00, $00, $FF, $FF, $FF, $FF, + $06, $00, $00, $00, $23, $33, $32, $37, $37, $30, $00, $00, $FF, $FF, $FF, $FF, + $11, $00, $00, $00, $52, $61, $64, $20, $53, $74, $75, $64, $69, $6F, $20, $4B, + $65, $79, $67, $65, $6E, $00, $00, $00, $FF, $FF, $FF, $FF, $08, $00, $00, $00, + $54, $46, $72, $6D, $4D, $61, $69, $6E, $00, $00, $00, $00, $0C, $42, $75, $74, + $74, $6F, $6E, $31, $43, $6C, $69, $63, $6B, $00, $00, $00, $FF, $FF, $FF, $FF, + $01, $00, $00, $00, $2C, $00, $00, $00, $55, $8B, $EC, $6A, $00, $6A, $00, $33, + $C0, $55, $68, $EF, $50, $40, $00, $64, $FF, $30, $64, $89, $20, $8D, $55, $F8, + $33, $C0, $E8, $19, $F7, $FF, $FF, $8B, $45, $F8, $8D, $55, $FC, $E8, $6A, $F6, + $FF, $FF, $BA, $04, $51, $40, $00, $8B, $45, $FC, $E8, $B9, $F5, $FF, $FF, $84, + $C0, $75, $11, $BA, $20, $51, $40, $00, $8B, $45, $FC, $E8, $A8, $F5, $FF, $FF, + $84, $C0, $74, $40, $8D, $55, $FC, $B8, $3C, $51, $40, $00, $E8, $73, $F6, $FF, + $FF, $8B, $45, $FC, $BA, $50, $51, $40, $00, $E8, $2E, $EA, $FF, $FF, $75, $24, + $68, $58, $51, $40, $00, $E8, $96, $EF, $FF, $FF, $68, $64, $51, $40, $00, $50, + $E8, $93, $EF, $FF, $FF, $B9, $0C, $A8, $40, $00, $BA, $DC, $4D, $40, $00, $E8, + $70, $F3, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $F6, $50, $40, + $00, $8D, $45, $F8, $BA, $02, $00, $00, $00, $E8, $16, $E8, $FF, $FF, $C3, $E9, + $40, $E1, $FF, $FF, $EB, $EB, $59, $59, $5D, $C3, $00, $00, $FF, $FF, $FF, $FF, + $12, $00, $00, $00, $4C, $69, $63, $65, $6E, $73, $65, $4D, $61, $6E, $61, $67, + $65, $72, $2E, $65, $78, $65, $00, $00, $FF, $FF, $FF, $FF, $13, $00, $00, $00, + $52, $61, $64, $53, $74, $75, $64, $69, $6F, $4B, $65, $79, $67, $65, $6E, $2E, + $65, $78, $65, $00, $FF, $FF, $FF, $FF, $0B, $00, $00, $00, $53, $45, $53, $53, + $49, $4F, $4E, $4E, $41, $4D, $45, $00, $FF, $FF, $FF, $FF, $07, $00, $00, $00, + $43, $6F, $6E, $73, $6F, $31, $65, $00, $75, $73, $65, $72, $33, $32, $2E, $64, + $6C, $6C, $00, $00, $53, $68, $6F, $77, $57, $69, $6E, $64, $6F, $77, $00, $00, + $A1, $0C, $A8, $40, $00, $85, $C0, $74, $05, $E8, $86, $F3, $FF, $FF, $C3, $90, + $55, $8B, $EC, $33, $C0, $55, $68, $AC, $51, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $08, $A8, $40, $00, $75, $05, $E8, $D2, $FF, $FF, $FF, $33, $C0, + $5A, $59, $59, $64, $89, $10, $68, $B3, $51, $40, $00, $C3, $E9, $83, $E0, $FF, + $FF, $EB, $F8, $5D, $C3, $8D, $40, $00, $55, $8B, $EC, $33, $C0, $55, $68, $D7, + $51, $40, $00, $64, $FF, $30, $64, $89, $20, $33, $C0, $5A, $59, $59, $64, $89, + $10, $68, $DE, $51, $40, $00, $C3, $E9, $58, $E0, $FF, $FF, $EB, $F8, $5D, $C3, + $0C, $00, $00, $00, $E8, $51, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $60, $40, $00, $1C, $3E, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $98, $60, $40, $00, $F0, $40, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $AC, $60, $40, $00, $F0, $48, $40, $00, + $B4, $60, $40, $00, $60, $4A, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $C4, $60, $40, $00, $80, $51, $40, $00, + $00, $00, $00, $00, $B8, $51, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $83, $2D, $A0, $85, $40, $00, $01, $0F, $83, $87, $00, $00, $00, $E8, $86, $C9, + $FF, $FF, $C6, $05, $08, $70, $40, $00, $02, $C7, $05, $10, $80, $40, $00, $08, + $10, $40, $00, $C7, $05, $14, $80, $40, $00, $10, $10, $40, $00, $C6, $05, $36, + $80, $40, $00, $02, $C7, $05, $00, $80, $40, $00, $30, $3D, $40, $00, $E8, $55, + $CE, $FF, $FF, $84, $C0, $74, $05, $E8, $7C, $CE, $FF, $FF, $E8, $3B, $CF, $FF, + $FF, $66, $C7, $05, $3C, $80, $40, $00, $B0, $D7, $66, $C7, $05, $08, $82, $40, + $00, $B0, $D7, $66, $C7, $05, $D4, $83, $40, $00, $B0, $D7, $E8, $CF, $AF, $FF, + $FF, $A3, $2C, $80, $40, $00, $E8, $FD, $AF, $FF, $FF, $A3, $28, $80, $40, $00, + $E8, $8F, $DD, $FF, $FF, $A3, $A4, $85, $40, $00, $E8, $E1, $AF, $FF, $FF, $A3, + $20, $80, $40, $00, $C3, $8D, $40, $00, $83, $2D, $EC, $A7, $40, $00, $01, $73, + $07, $33, $C0, $A3, $F0, $A7, $40, $00, $C3, $8D, $40, $00, $83, $2D, $F4, $A7, + $40, $00, $01, $C3, $83, $2D, $F8, $A7, $40, $00, $01, $73, $05, $E8, $7A, $E8, + $FF, $FF, $C3, $90, $83, $2D, $08, $A8, $40, $00, $01, $73, $05, $E8, $76, $EF, + $FF, $FF, $C3, $90, $55, $8B, $EC, $83, $C4, $C4, $B8, $E0, $51, $40, $00, $E8, + $F4, $DE, $FF, $FF, $E8, $03, $D7, $FF, $FF, $8D, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $02, $8D, $40, $00, $32, $13, $8B, $C0, + $00, $8D, $40, $00, $00, $8D, $40, $00, $00, $8D, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $C4, $10, $40, $00, $00, $00, $10, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $24, $11, $40, $00, $00, $00, $18, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $38, $11, $40, $00, $00, $00, $20, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $58, $11, $40, $00, $00, $00, $28, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $84, $11, $40, $00, $00, $00, $30, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $A4, $11, $40, $00, $00, $00, $38, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $C8, $11, $40, $00, $00, $00, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $F4, $11, $40, $00, $00, $00, $48, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $24, $12, $40, $00, $00, $00, $50, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $58, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $68, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $78, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $88, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $90, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $98, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $A0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $B0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $D0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $F0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $A0, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $A0, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $03, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $03, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $03, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $04, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $04, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $F0, $04, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $05, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $05, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $06, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $07, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $07, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $08, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $50, $09, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $0A, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $0A, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $0A, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $C8, $16, $40, $00, $4C, $1A, $40, $00, + $44, $1C, $40, $00, $5C, $1F, $40, $00, $F8, $22, $40, $00, $38, $23, $40, $00, + $00, $CB, $CC, $C8, $C9, $D7, $CF, $C8, $CD, $CE, $DB, $D8, $DA, $D9, $CA, $DC, + $DD, $DE, $DF, $E0, $E1, $E3, $00, $E4, $E5, $8D, $40, $00, $45, $72, $72, $6F, + $72, $00, $8B, $C0, $52, $75, $6E, $74, $69, $6D, $65, $20, $65, $72, $72, $6F, + $72, $20, $20, $20, $20, $20, $61, $74, $20, $30, $30, $30, $30, $30, $30, $30, + $30, $00, $8B, $C0, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41, $42, + $43, $44, $45, $46, $FF, $FF, $FF, $FF, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $68, $3F, $40, $00, $04, $3F, $40, $00, $C0, $3E, $40, $00, $30, $3F, $40, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $80, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $80, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $80, + $11, $02, $E4, $02, $11, $00, $E4, $00, $01, $04, $42, $0C, $00, $00, $00, $80, + $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, + $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, + $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, + $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, + $00, $00, $00, $80, $E4, $00, $1A, $42, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $0C, $E4, $2C, $00, $04, $E4, $24, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, + $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, + $10, $05, $A0, $0D, $10, $05, $A0, $05, $11, $02, $E4, $02, $11, $A2, $E4, $A2, + $11, $42, $E4, $42, $11, $20, $E4, $20, $E3, $42, $E4, $20, $E3, $00, $A0, $01, + $00, $00, $46, $E0, $46, $E0, $46, $E0, $46, $E0, $46, $E0, $46, $E0, $46, $E0, + $00, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, + $01, $81, $42, $81, $01, $03, $42, $03, $00, $00, $00, $00, $00, $00, $00, $00, + $01, $04, $42, $0C, $00, $00, $00, $00, $00, $80, $00, $80, $00, $00, $00, $00, + $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, + $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, + $10, $45, $A0, $45, $00, $08, $00, $00, $E4, $20, $E4, $20, $10, $45, $A0, $4D, + $00, $00, $00, $00, $00, $08, $00, $00, $00, $00, $00, $04, $00, $00, $00, $00, + $10, $41, $A0, $41, $10, $41, $A0, $41, $00, $84, $00, $84, $00, $00, $00, $80, + $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, + $00, $14, $00, $14, $00, $14, $00, $14, $01, $84, $42, $84, $01, $06, $42, $06, + $00, $1C, $00, $1C, $00, $00, $00, $14, $07, $80, $47, $80, $07, $02, $47, $02, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $08, $00, $08, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $41, $A0, $01, + $18, $01, $20, $01, $E4, $20, $E4, $20, $FF, $FF, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $10, $01, $00, $00, $2D, $05, + $3F, $00, $3F, $02, $3F, $00, $3F, $02, $3F, $00, $3F, $00, $3F, $00, $3F, $02, + $10, $01, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, + $23, $40, $23, $40, $23, $02, $23, $02, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, + $3F, $00, $3F, $02, $2F, $00, $3F, $02, $3D, $00, $3D, $00, $3F, $00, $3F, $00, + $00, $00, $00, $80, $00, $80, $00, $80, $00, $00, $00, $00, $FF, $FF, $FF, $FF, + $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, + $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, + $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, + $27, $42, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, + $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $65, $00, $ED, $00, + $ED, $04, $A8, $04, $A8, $04, $A8, $04, $ED, $00, $ED, $00, $ED, $00, $00, $00, + $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $65, $02, $ED, $02, + $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, + $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, + $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, + $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, + $00, $00, $00, $00, $00, $80, $E4, $02, $E4, $47, $E4, $43, $11, $C2, $E4, $C2, + $00, $00, $00, $00, $00, $00, $E4, $42, $E4, $47, $E4, $43, $20, $00, $E4, $20, + $11, $C2, $E4, $C2, $E4, $20, $E4, $42, $E4, $20, $E4, $22, $54, $21, $1C, $21, + $FF, $FF, $FF, $FF, $A0, $05, $E4, $42, $E4, $20, $E4, $20, $54, $21, $1C, $21, + $11, $A2, $E4, $A2, $3F, $04, $24, $02, $65, $04, $AC, $24, $3F, $04, $28, $81, + $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, + $FF, $FF, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $02, $AC, $20, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $3F, $00, $ED, $02, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $FF, $FF, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $00, $00, + $10, $05, $FF, $FF, $10, $41, $10, $41, $10, $81, $10, $81, $10, $81, $10, $81, + $10, $05, $FF, $FF, $10, $41, $10, $41, $10, $81, $10, $81, $10, $81, $10, $81, + $A0, $0D, $FF, $FF, $A0, $41, $A0, $41, $A0, $81, $A0, $81, $A0, $81, $A0, $81, + $A0, $0D, $FF, $FF, $A0, $41, $A0, $41, $A0, $81, $A0, $81, $A0, $81, $A0, $81, + $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, + $36, $00, $36, $00, $30, $00, $30, $00, $36, $00, $36, $00, $36, $00, $36, $00, + $20, $01, $FF, $FF, $20, $01, $20, $01, $10, $01, $18, $01, $10, $01, $18, $01, + $30, $00, $30, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, + $36, $00, $36, $00, $36, $00, $36, $00, $FF, $FF, $00, $00, $FF, $FF, $FF, $FF, + $20, $01, $FF, $FF, $20, $01, $20, $01, $FF, $FF, $30, $01, $FF, $FF, $30, $01, + $36, $00, $36, $00, $36, $00, $36, $00, $00, $00, $36, $00, $36, $00, $00, $00, + $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, + $36, $02, $36, $02, $30, $00, $30, $00, $36, $02, $36, $02, $36, $02, $36, $02, + $28, $01, $FF, $FF, $28, $01, $28, $01, $10, $01, $FF, $FF, $10, $01, $18, $01, + $30, $00, $30, $00, $30, $00, $30, $00, $30, $00, $30, $00, $FF, $FF, $FF, $FF, + $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, + $36, $02, $36, $02, $30, $00, $36, $02, $36, $02, $36, $02, $36, $02, $36, $02, + $18, $01, $FF, $FF, $18, $01, $18, $01, $30, $01, $28, $01, $30, $01, $28, $01, + $30, $00, $30, $00, $30, $00, $30, $00, $00, $00, $36, $00, $36, $00, $FF, $FF, + $B8, $47, $40, $00, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41, $42, + $43, $44, $45, $46, $44, $65, $6C, $70, $68, $69, $30, $30, $30, $30, $30, $30, + $30, $30, $8B, $C0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $8C, $B0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $5C, $B2, $00, $00, + $74, $B1, $00, $00, $9C, $B0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $9C, $B2, $00, $00, $84, $B1, $00, $00, $AC, $B0, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $D8, $B2, $00, $00, $94, $B1, $00, $00, $EC, $B0, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $D2, $B3, $00, $00, $D4, $B1, $00, $00, + $08, $B1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $2C, $B4, $00, $00, + $F0, $B1, $00, $00, $28, $B1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $B6, $B4, $00, $00, $10, $B2, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $6A, $B2, $00, $00, + $7E, $B2, $00, $00, $8E, $B2, $00, $00, $00, $00, $00, $00, $A8, $B2, $00, $00, + $BA, $B2, $00, $00, $CA, $B2, $00, $00, $00, $00, $00, $00, $E6, $B2, $00, $00, + $F0, $B2, $00, $00, $F8, $B2, $00, $00, $06, $B3, $00, $00, $16, $B3, $00, $00, + $2C, $B3, $00, $00, $3C, $B3, $00, $00, $4E, $B3, $00, $00, $60, $B3, $00, $00, + $6E, $B3, $00, $00, $7C, $B3, $00, $00, $88, $B3, $00, $00, $A4, $B3, $00, $00, + $B0, $B3, $00, $00, $C2, $B3, $00, $00, $00, $00, $00, $00, $E0, $B3, $00, $00, + $EE, $B3, $00, $00, $FC, $B3, $00, $00, $06, $B4, $00, $00, $12, $B4, $00, $00, + $1E, $B4, $00, $00, $00, $00, $00, $00, $38, $B4, $00, $00, $48, $B4, $00, $00, + $64, $B4, $00, $00, $76, $B4, $00, $00, $86, $B4, $00, $00, $92, $B4, $00, $00, + $A2, $B4, $00, $00, $00, $00, $00, $00, $C4, $B4, $00, $00, $D6, $B4, $00, $00, + $E4, $B4, $00, $00, $F4, $B4, $00, $00, $06, $B5, $00, $00, $1A, $B5, $00, $00, + $2E, $B5, $00, $00, $3E, $B5, $00, $00, $4E, $B5, $00, $00, $60, $B5, $00, $00, + $76, $B5, $00, $00, $88, $B5, $00, $00, $9C, $B5, $00, $00, $B2, $B5, $00, $00, + $CC, $B5, $00, $00, $E2, $B5, $00, $00, $F6, $B5, $00, $00, $04, $B6, $00, $00, + $00, $00, $00, $00, $6A, $B2, $00, $00, $7E, $B2, $00, $00, $8E, $B2, $00, $00, + $00, $00, $00, $00, $A8, $B2, $00, $00, $BA, $B2, $00, $00, $CA, $B2, $00, $00, + $00, $00, $00, $00, $E6, $B2, $00, $00, $F0, $B2, $00, $00, $F8, $B2, $00, $00, + $06, $B3, $00, $00, $16, $B3, $00, $00, $2C, $B3, $00, $00, $3C, $B3, $00, $00, + $4E, $B3, $00, $00, $60, $B3, $00, $00, $6E, $B3, $00, $00, $7C, $B3, $00, $00, + $88, $B3, $00, $00, $A4, $B3, $00, $00, $B0, $B3, $00, $00, $C2, $B3, $00, $00, + $00, $00, $00, $00, $E0, $B3, $00, $00, $EE, $B3, $00, $00, $FC, $B3, $00, $00, + $06, $B4, $00, $00, $12, $B4, $00, $00, $1E, $B4, $00, $00, $00, $00, $00, $00, + $38, $B4, $00, $00, $48, $B4, $00, $00, $64, $B4, $00, $00, $76, $B4, $00, $00, + $86, $B4, $00, $00, $92, $B4, $00, $00, $A2, $B4, $00, $00, $00, $00, $00, $00, + $C4, $B4, $00, $00, $D6, $B4, $00, $00, $E4, $B4, $00, $00, $F4, $B4, $00, $00, + $06, $B5, $00, $00, $1A, $B5, $00, $00, $2E, $B5, $00, $00, $3E, $B5, $00, $00, + $4E, $B5, $00, $00, $60, $B5, $00, $00, $76, $B5, $00, $00, $88, $B5, $00, $00, + $9C, $B5, $00, $00, $B2, $B5, $00, $00, $CC, $B5, $00, $00, $E2, $B5, $00, $00, + $F6, $B5, $00, $00, $04, $B6, $00, $00, $00, $00, $00, $00, $61, $64, $76, $61, + $70, $69, $33, $32, $2E, $64, $6C, $6C, $00, $00, $00, $00, $52, $65, $67, $51, + $75, $65, $72, $79, $56, $61, $6C, $75, $65, $45, $78, $41, $00, $00, $00, $00, + $52, $65, $67, $4F, $70, $65, $6E, $4B, $65, $79, $45, $78, $41, $00, $00, $00, + $52, $65, $67, $43, $6C, $6F, $73, $65, $4B, $65, $79, $00, $75, $73, $65, $72, + $33, $32, $2E, $64, $6C, $6C, $00, $00, $00, $00, $47, $65, $74, $4B, $65, $79, + $62, $6F, $61, $72, $64, $54, $79, $70, $65, $00, $00, $00, $44, $65, $73, $74, + $72, $6F, $79, $57, $69, $6E, $64, $6F, $77, $00, $00, $00, $4D, $65, $73, $73, + $61, $67, $65, $42, $6F, $78, $41, $00, $6B, $65, $72, $6E, $65, $6C, $33, $32, + $2E, $64, $6C, $6C, $00, $00, $00, $00, $47, $65, $74, $41, $43, $50, $00, $00, + $00, $00, $53, $6C, $65, $65, $70, $00, $00, $00, $56, $69, $72, $74, $75, $61, + $6C, $46, $72, $65, $65, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $41, + $6C, $6C, $6F, $63, $00, $00, $00, $00, $47, $65, $74, $43, $75, $72, $72, $65, + $6E, $74, $54, $68, $72, $65, $61, $64, $49, $64, $00, $00, $00, $00, $56, $69, + $72, $74, $75, $61, $6C, $51, $75, $65, $72, $79, $00, $00, $00, $00, $47, $65, + $74, $53, $74, $61, $72, $74, $75, $70, $49, $6E, $66, $6F, $41, $00, $00, $00, + $47, $65, $74, $43, $6F, $6D, $6D, $61, $6E, $64, $4C, $69, $6E, $65, $41, $00, + $00, $00, $46, $72, $65, $65, $4C, $69, $62, $72, $61, $72, $79, $00, $00, $00, + $45, $78, $69, $74, $50, $72, $6F, $63, $65, $73, $73, $00, $00, $00, $57, $72, + $69, $74, $65, $46, $69, $6C, $65, $00, $00, $00, $55, $6E, $68, $61, $6E, $64, + $6C, $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, + $65, $72, $00, $00, $00, $00, $52, $74, $6C, $55, $6E, $77, $69, $6E, $64, $00, + $00, $00, $52, $61, $69, $73, $65, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, + $00, $00, $00, $00, $47, $65, $74, $53, $74, $64, $48, $61, $6E, $64, $6C, $65, + $00, $00, $6B, $65, $72, $6E, $65, $6C, $33, $32, $2E, $64, $6C, $6C, $00, $00, + $00, $00, $54, $6C, $73, $53, $65, $74, $56, $61, $6C, $75, $65, $00, $00, $00, + $54, $6C, $73, $47, $65, $74, $56, $61, $6C, $75, $65, $00, $00, $00, $54, $6C, + $73, $46, $72, $65, $65, $00, $00, $00, $54, $6C, $73, $41, $6C, $6C, $6F, $63, + $00, $00, $00, $00, $4C, $6F, $63, $61, $6C, $46, $72, $65, $65, $00, $00, $00, + $4C, $6F, $63, $61, $6C, $41, $6C, $6C, $6F, $63, $00, $00, $75, $73, $65, $72, + $33, $32, $2E, $64, $6C, $6C, $00, $00, $00, $00, $53, $65, $6E, $64, $4D, $65, + $73, $73, $61, $67, $65, $41, $00, $00, $00, $00, $47, $65, $74, $57, $69, $6E, + $64, $6F, $77, $54, $68, $72, $65, $61, $64, $50, $72, $6F, $63, $65, $73, $73, + $49, $64, $00, $00, $00, $00, $47, $65, $74, $57, $69, $6E, $64, $6F, $77, $54, + $65, $78, $74, $41, $00, $00, $00, $00, $47, $65, $74, $57, $69, $6E, $64, $6F, + $77, $52, $65, $63, $74, $00, $00, $00, $47, $65, $74, $50, $72, $6F, $70, $41, + $00, $00, $00, $00, $47, $65, $74, $43, $6C, $61, $73, $73, $4E, $61, $6D, $65, + $41, $00, $00, $00, $45, $6E, $75, $6D, $43, $68, $69, $6C, $64, $57, $69, $6E, + $64, $6F, $77, $73, $00, $00, $6B, $65, $72, $6E, $65, $6C, $33, $32, $2E, $64, + $6C, $6C, $00, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $50, $72, $6F, + $74, $65, $63, $74, $00, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $46, + $72, $65, $65, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $41, $6C, $6C, + $6F, $63, $00, $00, $00, $00, $55, $6E, $6D, $61, $70, $56, $69, $65, $77, $4F, + $66, $46, $69, $6C, $65, $00, $00, $00, $54, $65, $72, $6D, $69, $6E, $61, $74, + $65, $50, $72, $6F, $63, $65, $73, $73, $00, $00, $00, $00, $4F, $70, $65, $6E, + $46, $69, $6C, $65, $4D, $61, $70, $70, $69, $6E, $67, $41, $00, $00, $00, $00, + $4D, $61, $70, $56, $69, $65, $77, $4F, $66, $46, $69, $6C, $65, $00, $00, $00, + $4C, $6F, $61, $64, $4C, $69, $62, $72, $61, $72, $79, $41, $00, $00, $00, $00, + $47, $6C, $6F, $62, $61, $6C, $46, $69, $6E, $64, $41, $74, $6F, $6D, $41, $00, + $00, $00, $47, $65, $74, $53, $79, $73, $74, $65, $6D, $44, $69, $72, $65, $63, + $74, $6F, $72, $79, $41, $00, $00, $00, $47, $65, $74, $50, $72, $6F, $63, $41, + $64, $64, $72, $65, $73, $73, $00, $00, $00, $00, $47, $65, $74, $4D, $6F, $64, + $75, $6C, $65, $48, $61, $6E, $64, $6C, $65, $41, $00, $00, $00, $00, $47, $65, + $74, $4D, $6F, $64, $75, $6C, $65, $46, $69, $6C, $65, $4E, $61, $6D, $65, $41, + $00, $00, $00, $00, $47, $65, $74, $45, $6E, $76, $69, $72, $6F, $6E, $6D, $65, + $6E, $74, $56, $61, $72, $69, $61, $62, $6C, $65, $41, $00, $00, $00, $47, $65, + $74, $43, $75, $72, $72, $65, $6E, $74, $50, $72, $6F, $63, $65, $73, $73, $49, + $64, $00, $00, $00, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, $50, $72, + $6F, $63, $65, $73, $73, $00, $00, $00, $46, $72, $65, $65, $4C, $69, $62, $72, + $61, $72, $79, $00, $00, $00, $43, $6C, $6F, $73, $65, $48, $61, $6E, $64, $6C, + $65, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $3C, $C0, $00, $00, + $01, $00, $00, $00, $02, $00, $00, $00, $02, $00, $00, $00, $28, $C0, $00, $00, + $30, $C0, $00, $00, $38, $C0, $00, $00, $34, $49, $00, $00, $2C, $49, $00, $00, + $49, $C0, $00, $00, $5A, $C0, $00, $00, $01, $00, $00, $00, $53, $48, $46, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $53, $48, $47, $65, $74, $46, $6F, + $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $53, $48, $47, $65, $74, $46, + $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $10, $00, $00, $E0, $00, $00, $00, $02, $30, $0A, $30, $12, $30, $1A, $30, + $22, $30, $2A, $30, $32, $30, $3A, $30, $42, $30, $4A, $30, $52, $30, $5A, $30, + $62, $30, $6A, $30, $72, $30, $9E, $30, $A6, $30, $AE, $30, $B6, $30, $BA, $32, + $D0, $32, $E1, $32, $04, $33, $1E, $33, $34, $33, $43, $33, $4A, $33, $55, $33, + $65, $33, $9A, $33, $A8, $33, $D5, $33, $DD, $33, $E2, $33, $07, $34, $10, $34, + $23, $34, $2E, $34, $39, $34, $48, $34, $61, $34, $B0, $34, $B6, $34, $BC, $34, + $C7, $34, $6C, $35, $D6, $36, $E5, $36, $EC, $36, $76, $37, $A0, $37, $B0, $37, + $BA, $37, $D1, $37, $E6, $37, $F9, $37, $06, $38, $23, $38, $2C, $38, $62, $38, + $6C, $38, $84, $38, $8A, $38, $A2, $38, $BA, $38, $F5, $38, $FF, $38, $16, $39, + $5E, $39, $7B, $39, $87, $39, $9A, $39, $A3, $39, $AA, $39, $B0, $39, $C5, $39, + $D1, $39, $EE, $39, $F7, $39, $35, $3A, $57, $3A, $BF, $3A, $D7, $3A, $11, $3B, + $1B, $3B, $32, $3B, $91, $3B, $CE, $3B, $E7, $3B, $18, $3C, $22, $3C, $28, $3C, + $3F, $3D, $4F, $3D, $59, $3D, $72, $3D, $D8, $3D, $27, $3E, $37, $3E, $41, $3E, + $5C, $3E, $EF, $3E, $FF, $3E, $B2, $3F, $BB, $3F, $CD, $3F, $D9, $3F, $E4, $3F, + $00, $20, $00, $00, $B0, $00, $00, $00, $86, $32, $91, $32, $A0, $32, $B9, $32, + $CC, $32, $E7, $32, $ED, $32, $05, $33, $12, $33, $1A, $33, $23, $33, $31, $33, + $3E, $33, $83, $33, $A3, $33, $30, $35, $BD, $35, $C9, $35, $08, $36, $3D, $36, + $5D, $36, $B4, $36, $0A, $37, $39, $37, $4E, $37, $F6, $37, $57, $38, $6D, $38, + $5B, $39, $61, $39, $7F, $39, $A1, $39, $AC, $39, $7C, $3A, $80, $3A, $86, $3A, + $8A, $3A, $94, $3A, $A7, $3A, $AB, $3A, $B1, $3A, $B5, $3A, $C5, $3A, $CA, $3A, + $EF, $3A, $1A, $3B, $52, $3B, $5A, $3B, $67, $3B, $6D, $3B, $7B, $3B, $8A, $3B, + $97, $3B, $AA, $3B, $C6, $3B, $E7, $3B, $00, $3C, $19, $3C, $2A, $3C, $3F, $3C, + $4C, $3C, $6C, $3C, $AD, $3C, $D4, $3C, $D8, $3C, $DC, $3C, $E0, $3C, $E4, $3C, + $E8, $3C, $EC, $3C, $F0, $3C, $F4, $3C, $DD, $3D, $48, $3E, $92, $3E, $D1, $3E, + $E1, $3E, $F7, $3E, $15, $3F, $2B, $3F, $43, $3F, $58, $3F, $91, $3F, $00, $00, + $00, $30, $00, $00, $04, $01, $00, $00, $1A, $30, $2E, $30, $36, $30, $4C, $30, + $64, $30, $72, $30, $A6, $30, $C2, $30, $CE, $30, $E2, $30, $EC, $30, $FF, $30, + $2F, $31, $5C, $31, $65, $31, $97, $31, $A0, $31, $D5, $31, $DC, $31, $FE, $31, + $4D, $32, $82, $32, $F3, $32, $1B, $33, $63, $34, $8B, $34, $92, $34, $AA, $34, + $CC, $34, $00, $35, $08, $35, $13, $35, $3F, $35, $49, $35, $54, $35, $65, $35, + $A4, $35, $BA, $35, $D1, $35, $08, $36, $18, $36, $1E, $36, $24, $36, $2A, $36, + $2F, $36, $35, $36, $3E, $36, $4E, $36, $53, $36, $58, $36, $5D, $36, $62, $36, + $70, $36, $7A, $36, $A5, $36, $AE, $36, $B5, $36, $D0, $36, $D8, $36, $04, $37, + $10, $37, $34, $37, $3E, $37, $63, $37, $6D, $37, $77, $37, $7F, $37, $85, $37, + $93, $37, $AE, $37, $C3, $37, $CD, $37, $D2, $37, $F1, $37, $F6, $37, $16, $38, + $2A, $38, $36, $38, $4F, $38, $99, $38, $A2, $38, $A7, $38, $C9, $38, $D6, $38, + $43, $3B, $45, $3D, $56, $3D, $96, $3D, $9D, $3D, $AF, $3D, $CD, $3D, $D6, $3D, + $E2, $3D, $E9, $3D, $16, $3E, $23, $3E, $2F, $3E, $36, $3E, $40, $3E, $4A, $3E, + $59, $3E, $6B, $3E, $7E, $3E, $86, $3E, $8E, $3E, $96, $3E, $9E, $3E, $A6, $3E, + $CE, $3E, $F8, $3E, $13, $3F, $1D, $3F, $28, $3F, $3B, $3F, $43, $3F, $5A, $3F, + $78, $3F, $80, $3F, $8E, $3F, $93, $3F, $AC, $3F, $BC, $3F, $CD, $3F, $D9, $3F, + $E7, $3F, $F1, $3F, $00, $40, $00, $00, $00, $01, $00, $00, $0F, $30, $14, $30, + $22, $30, $2A, $30, $32, $30, $3A, $30, $42, $30, $4A, $30, $52, $30, $5A, $30, + $62, $30, $6A, $30, $72, $30, $7A, $30, $82, $30, $8A, $30, $92, $30, $9A, $30, + $A2, $30, $AA, $30, $B2, $30, $BA, $30, $C2, $30, $CA, $30, $D2, $30, $DA, $30, + $E2, $30, $F7, $30, $03, $31, $0B, $31, $13, $31, $26, $31, $3F, $31, $BA, $31, + $CD, $31, $84, $32, $8B, $32, $AF, $32, $B3, $32, $B7, $32, $BB, $32, $BF, $32, + $C3, $32, $C7, $32, $CB, $32, $CF, $32, $D3, $32, $D7, $32, $4E, $33, $6B, $33, + $7F, $34, $15, $35, $73, $36, $BE, $36, $E6, $36, $F3, $37, $38, $38, $8C, $38, + $D1, $38, $F7, $38, $03, $39, $0A, $39, $1C, $39, $2E, $39, $36, $39, $46, $39, + $8A, $39, $97, $39, $AF, $39, $B5, $39, $BD, $39, $C2, $39, $CD, $39, $D2, $39, + $D7, $39, $E2, $39, $EF, $39, $55, $3A, $67, $3A, $73, $3A, $87, $3A, $B0, $3A, + $D3, $3A, $13, $3B, $68, $3B, $F2, $3B, $0A, $3C, $1C, $3C, $25, $3C, $2D, $3C, + $36, $3C, $3D, $3C, $4F, $3C, $5C, $3C, $A5, $3C, $B7, $3C, $C0, $3C, $D6, $3C, + $E5, $3C, $F8, $3C, $FE, $3C, $04, $3D, $09, $3D, $0F, $3D, $18, $3D, $21, $3D, + $41, $3D, $4F, $3D, $92, $3D, $CC, $3D, $ED, $3D, $03, $3E, $14, $3E, $25, $3E, + $54, $3E, $73, $3E, $AE, $3E, $DF, $3E, $01, $3F, $0E, $3F, $1B, $3F, $28, $3F, + $30, $3F, $71, $3F, $00, $50, $00, $00, $40, $00, $00, $00, $53, $30, $73, $30, + $84, $30, $98, $30, $A5, $30, $B1, $30, $BB, $30, $C6, $30, $CB, $30, $DD, $30, + $71, $31, $87, $31, $93, $31, $A7, $31, $BF, $31, $D2, $31, $E4, $31, $F0, $31, + $F4, $31, $00, $32, $04, $32, $18, $32, $1C, $32, $20, $32, $24, $32, $38, $32, + $3C, $32, $44, $32, $00, $60, $00, $00, $34, $00, $00, $00, $02, $30, $14, $30, + $1B, $30, $1F, $30, $25, $30, $29, $30, $2F, $30, $36, $30, $3A, $30, $54, $30, + $5D, $30, $66, $30, $72, $30, $7C, $30, $86, $30, $90, $30, $9A, $30, $A4, $30, + $AE, $30, $B6, $30, $C6, $30, $DB, $30, $00, $70, $00, $00, $30, $00, $00, $00, + $24, $30, $44, $30, $64, $30, $84, $30, $A4, $30, $C4, $30, $E4, $30, $04, $31, + $24, $31, $08, $37, $0C, $37, $10, $37, $14, $37, $18, $37, $1C, $37, $90, $37, + $94, $37, $98, $37, $9C, $37, $E0, $3C, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $AC, $01, $81, $4D, $00, $00, $00, $00, $00, $00, $04, $00, + $03, $00, $00, $00, $30, $00, $00, $80, $0A, $00, $00, $00, $48, $00, $00, $80, + $0E, $00, $00, $00, $68, $00, $00, $80, $10, $00, $00, $00, $80, $00, $00, $80, + $00, $00, $00, $00, $AC, $01, $81, $4D, $00, $00, $00, $00, $00, $00, $01, $00, + $01, $00, $00, $00, $98, $00, $00, $80, $00, $00, $00, $00, $AC, $01, $81, $4D, + $00, $00, $00, $00, $02, $00, $00, $00, $60, $01, $00, $80, $B0, $00, $00, $80, + $6E, $01, $00, $80, $C8, $00, $00, $80, $00, $00, $00, $00, $AC, $01, $81, $4D, + $00, $00, $00, $00, $01, $00, $00, $00, $86, $01, $00, $80, $E0, $00, $00, $80, + $00, $00, $00, $00, $AC, $01, $81, $4D, $00, $00, $00, $00, $00, $00, $01, $00, + $01, $00, $00, $00, $F8, $00, $00, $80, $00, $00, $00, $00, $AC, $01, $81, $4D, + $00, $00, $00, $00, $00, $00, $01, $00, $04, $08, $00, $00, $10, $01, $00, $00, + $00, $00, $00, $00, $AC, $01, $81, $4D, $00, $00, $00, $00, $00, $00, $01, $00, + $00, $00, $00, $00, $20, $01, $00, $00, $00, $00, $00, $00, $AC, $01, $81, $4D, + $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $30, $01, $00, $00, + $00, $00, $00, $00, $AC, $01, $81, $4D, $00, $00, $00, $00, $00, $00, $01, $00, + $04, $08, $00, $00, $40, $01, $00, $00, $00, $00, $00, $00, $AC, $01, $81, $4D, + $00, $00, $00, $00, $00, $00, $01, $00, $04, $08, $00, $00, $50, $01, $00, $00, + $98, $E1, $00, $00, $A8, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $40, $F2, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $50, $F2, $00, $00, $90, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $E0, $F2, $00, $00, $14, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $F4, $F2, $00, $00, $94, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $06, $00, $44, $00, $56, $00, $43, $00, $4C, $00, $41, $00, $4C, $00, $0B, $00, + $50, $00, $41, $00, $43, $00, $4B, $00, $41, $00, $47, $00, $45, $00, $49, $00, + $4E, $00, $46, $00, $4F, $00, $08, $00, $4D, $00, $41, $00, $49, $00, $4E, $00, + $49, $00, $43, $00, $4F, $00, $4E, $00, $28, $00, $00, $00, $20, $00, $00, $00, + $40, $00, $00, $00, $01, $00, $20, $00, $00, $00, $00, $00, $00, $10, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $55, $5F, $55, $00, $80, $80, $80, $00, + $AA, $7F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $A4, $A0, $A0, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, + $55, $3F, $55, $00, $55, $5F, $2A, $00, $55, $5F, $55, $00, $55, $3F, $55, $00, + $55, $5F, $55, $00, $55, $5F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, + $55, $3F, $55, $00, $55, $5F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $80, $80, $80, $00, $55, $5F, $55, $00, $80, $80, $80, $00, $55, $5F, $55, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $AA, $7F, $7F, $00, $80, $80, $80, $00, + $AA, $9F, $AA, $00, $55, $5F, $55, $00, $FF, $7F, $7F, $00, $AA, $7F, $55, $00, + $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, + $55, $3F, $55, $00, $55, $BF, $D4, $00, $55, $9F, $AA, $00, $55, $9F, $FF, $00, + $00, $BF, $D4, $00, $55, $BF, $FF, $00, $55, $9F, $AA, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $AA, $7F, $7F, $00, + $55, $7F, $7F, $00, $AA, $7F, $55, $00, $55, $3F, $55, $00, $80, $80, $80, $00, + $55, $5F, $55, $00, $AA, $5F, $7F, $00, $55, $7F, $7F, $00, $AA, $7F, $7F, $00, + $80, $80, $80, $00, $55, $5F, $55, $00, $AA, $7F, $55, $00, $A4, $A0, $A0, $00, + $AA, $7F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $7F, $55, $00, + $55, $3F, $55, $00, $55, $9F, $AA, $00, $55, $7F, $AA, $00, $00, $DF, $D4, $00, + $55, $DF, $FF, $00, $00, $BF, $D4, $00, $55, $BF, $D4, $00, $55, $3F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $55, $5F, $55, $00, $55, $5F, $55, $00, + $80, $80, $80, $00, $55, $5F, $55, $00, $AA, $7F, $7F, $00, $55, $7F, $7F, $00, + $FF, $BF, $AA, $00, $55, $5F, $7F, $00, $A4, $A0, $A0, $00, $FF, $9F, $7F, $00, + $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $2A, $00, + $55, $5F, $55, $00, $55, $9F, $AA, $00, $55, $9F, $D4, $00, $00, $BF, $FF, $00, + $55, $BF, $D4, $00, $55, $DF, $FF, $00, $00, $9F, $D4, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, $AA, $7F, $7F, $00, + $AA, $7F, $7F, $00, $80, $80, $80, $00, $AA, $7F, $7F, $00, $55, $5F, $55, $00, + $55, $5F, $55, $00, $55, $5F, $55, $00, $55, $7F, $7F, $00, $80, $80, $80, $00, + $AA, $BF, $D4, $00, $55, $5F, $55, $00, $FF, $7F, $7F, $00, $AA, $9F, $7F, $00, + $AA, $7F, $55, $00, $AA, $5F, $2A, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, + $55, $3F, $55, $00, $AA, $9F, $AA, $00, $55, $9F, $AA, $00, $AA, $BF, $D4, $00, + $00, $BF, $FF, $00, $00, $BF, $FF, $00, $55, $DF, $D4, $00, $55, $3F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $55, $7F, $7F, $00, + $80, $80, $80, $00, $FF, $9F, $7F, $00, $AA, $9F, $AA, $00, $AA, $9F, $7F, $00, + $AA, $9F, $7F, $00, $AA, $7F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $AA, $9F, $AA, $00, $55, $9F, $D4, $00, $AA, $BF, $D4, $00, + $FF, $FF, $FF, $00, $55, $5F, $7F, $00, $AA, $9F, $55, $00, $FF, $9F, $AA, $00, + $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, + $55, $5F, $55, $00, $55, $BF, $AA, $00, $00, $9F, $D4, $00, $55, $DF, $FF, $00, + $AA, $DF, $D4, $00, $55, $DF, $FF, $00, $00, $9F, $D4, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, + $AA, $9F, $7F, $00, $A4, $A0, $A0, $00, $FF, $9F, $7F, $00, $AA, $9F, $7F, $00, + $A4, $A0, $A0, $00, $80, $80, $80, $00, $AA, $7F, $AA, $00, $55, $9F, $AA, $00, + $55, $7F, $AA, $00, $55, $9F, $AA, $00, $AA, $9F, $AA, $00, $55, $9F, $D4, $00, + $AA, $BF, $D4, $00, $55, $7F, $55, $00, $55, $3F, $55, $00, $55, $3F, $55, $00, + $55, $5F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, $55, $5F, $2A, $00, + $55, $3F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, $55, $3F, $55, $00, + $55, $5F, $55, $00, $00, $3F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $FF, $9F, $AA, $00, + $AA, $BF, $7F, $00, $FF, $9F, $7F, $00, $AA, $9F, $7F, $00, $FF, $9F, $AA, $00, + $80, $80, $80, $00, $55, $9F, $AA, $00, $55, $9F, $AA, $00, $55, $7F, $AA, $00, + $55, $5F, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $55, $00, $55, $3F, $55, $00, + $AA, $9F, $D4, $00, $55, $5F, $55, $00, $55, $9F, $D4, $00, $55, $9F, $FF, $00, + $00, $1F, $AA, $00, $55, $3F, $D4, $00, $00, $3F, $D4, $00, $FF, $7F, $7F, $00, + $00, $5F, $55, $00, $AA, $BF, $AA, $00, $55, $7F, $55, $00, $55, $9F, $55, $00, + $55, $BF, $7F, $00, $55, $BF, $AA, $00, $55, $BF, $55, $00, $55, $3F, $55, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $A4, $A0, $A0, $00, $A4, $A0, $A0, $00, + $FF, $9F, $AA, $00, $FF, $BF, $7F, $00, $A4, $A0, $A0, $00, $A4, $A0, $A0, $00, + $80, $80, $80, $00, $55, $9F, $D4, $00, $55, $7F, $D4, $00, $55, $3F, $7F, $00, + $C0, $DC, $C0, $00, $80, $80, $80, $00, $AA, $9F, $AA, $00, $AA, $7F, $AA, $00, + $C0, $DC, $C0, $00, $AA, $5F, $55, $00, $00, $7F, $FF, $00, $55, $7F, $D4, $00, + $55, $5F, $D4, $00, $00, $3F, $AA, $00, $55, $3F, $D4, $00, $00, $3F, $AA, $00, + $55, $3F, $55, $00, $55, $9F, $55, $00, $55, $9F, $55, $00, $55, $BF, $7F, $00, + $55, $BF, $AA, $00, $55, $BF, $7F, $00, $55, $9F, $55, $00, $55, $3F, $55, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $FF, $9F, $AA, $00, $C0, $DC, $C0, $00, + $FF, $9F, $AA, $00, $A4, $A0, $A0, $00, $FF, $BF, $AA, $00, $80, $80, $80, $00, + $55, $7F, $D4, $00, $55, $9F, $AA, $00, $55, $5F, $AA, $00, $00, $3F, $7F, $00, + $C0, $DC, $C0, $00, $FF, $BF, $D4, $00, $55, $9F, $AA, $00, $AA, $9F, $AA, $00, + $C0, $DC, $C0, $00, $55, $5F, $7F, $00, $55, $7F, $D4, $00, $55, $9F, $D4, $00, + $00, $1F, $D4, $00, $55, $3F, $D4, $00, $00, $5F, $D4, $00, $55, $1F, $AA, $00, + $55, $5F, $55, $00, $AA, $BF, $AA, $00, $00, $7F, $55, $00, $55, $BF, $7F, $00, + $55, $BF, $AA, $00, $55, $BF, $7F, $00, $55, $9F, $7F, $00, $55, $5F, $55, $00, + $AA, $7F, $7F, $00, $AA, $9F, $AA, $00, $C0, $DC, $C0, $00, $F0, $CA, $A6, $00, + $C0, $DC, $C0, $00, $FF, $BF, $AA, $00, $A4, $A0, $A0, $00, $55, $7F, $AA, $00, + $00, $7F, $D4, $00, $55, $7F, $D4, $00, $00, $5F, $AA, $00, $00, $3F, $55, $00, + $FF, $CC, $FF, $00, $C0, $DC, $C0, $00, $55, $5F, $7F, $00, $00, $3F, $55, $00, + $A4, $A0, $A0, $00, $55, $5F, $7F, $00, $55, $9F, $D4, $00, $00, $7F, $D4, $00, + $55, $5F, $D4, $00, $00, $3F, $D4, $00, $00, $3F, $D4, $00, $AA, $7F, $AA, $00, + $55, $3F, $55, $00, $55, $BF, $AA, $00, $55, $9F, $55, $00, $55, $9F, $55, $00, + $55, $BF, $AA, $00, $55, $BF, $7F, $00, $55, $BF, $7F, $00, $55, $3F, $55, $00, + $80, $80, $80, $00, $A4, $A0, $A0, $00, $FF, $DF, $D4, $00, $FF, $BF, $D4, $00, + $F0, $CA, $A6, $00, $C0, $DC, $C0, $00, $AA, $9F, $AA, $00, $00, $5F, $AA, $00, + $55, $7F, $D4, $00, $00, $5F, $D4, $00, $55, $5F, $AA, $00, $00, $3F, $55, $00, + $FF, $DF, $D4, $00, $AA, $BF, $D4, $00, $55, $5F, $7F, $00, $00, $3F, $7F, $00, + $AA, $BF, $D4, $00, $55, $5F, $55, $00, $55, $9F, $D4, $00, $55, $7F, $D4, $00, + $00, $1F, $D4, $00, $55, $3F, $AA, $00, $55, $5F, $D4, $00, $00, $3F, $D4, $00, + $55, $5F, $55, $00, $80, $80, $80, $00, $55, $7F, $55, $00, $55, $BF, $7F, $00, + $55, $BF, $7F, $00, $55, $BF, $AA, $00, $55, $BF, $7F, $00, $55, $5F, $2A, $00, + $80, $80, $80, $00, $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, + $C0, $DC, $C0, $00, $FF, $DF, $FF, $00, $80, $80, $80, $00, $00, $5F, $D4, $00, + $00, $5F, $AA, $00, $55, $5F, $AA, $00, $00, $5F, $AA, $00, $00, $1F, $7F, $00, + $C0, $DC, $C0, $00, $AA, $BF, $D4, $00, $55, $3F, $55, $00, $55, $5F, $AA, $00, + $AA, $BF, $D4, $00, $AA, $9F, $AA, $00, $55, $5F, $7F, $00, $55, $5F, $55, $00, + $55, $5F, $55, $00, $55, $5F, $7F, $00, $55, $5F, $55, $00, $55, $5F, $55, $00, + $55, $5F, $7F, $00, $55, $5F, $55, $00, $55, $5F, $55, $00, $55, $5F, $7F, $00, + $55, $5F, $55, $00, $55, $5F, $55, $00, $55, $5F, $55, $00, $AA, $9F, $AA, $00, + $80, $80, $80, $00, $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $C0, $DC, $C0, $00, + $FF, $BF, $D4, $00, $C0, $DC, $C0, $00, $55, $5F, $AA, $00, $00, $5F, $AA, $00, + $55, $5F, $D4, $00, $00, $5F, $AA, $00, $55, $3F, $AA, $00, $00, $3F, $55, $00, + $FF, $DF, $D4, $00, $A4, $A0, $A0, $00, $00, $5F, $7F, $00, $00, $3F, $7F, $00, + $55, $7F, $D4, $00, $AA, $DF, $D4, $00, $AA, $BF, $D4, $00, $AA, $9F, $D4, $00, + $C0, $DC, $C0, $00, $FF, $DF, $FF, $00, $AA, $BF, $D4, $00, $AA, $9F, $AA, $00, + $AA, $BF, $D4, $00, $AA, $DF, $FF, $00, $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, + $FF, $BF, $D4, $00, $AA, $9F, $AA, $00, $AA, $9F, $7F, $00, $AA, $9F, $AA, $00, + $55, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $00, $3F, $AA, $00, $55, $3F, $AA, $00, + $00, $5F, $AA, $00, $00, $5F, $AA, $00, $00, $5F, $AA, $00, $55, $1F, $55, $00, + $AA, $DF, $FF, $00, $A4, $A0, $A0, $00, $55, $3F, $55, $00, $55, $5F, $AA, $00, + $00, $5F, $AA, $00, $55, $7F, $D4, $00, $55, $7F, $D4, $00, $00, $80, $80, $00, + $55, $5F, $AA, $00, $C0, $DC, $C0, $00, $80, $80, $80, $00, $55, $3F, $55, $00, + $55, $7F, $D4, $00, $55, $BF, $D4, $00, $AA, $9F, $D4, $00, $55, $9F, $AA, $00, + $80, $80, $80, $00, $AA, $9F, $7F, $00, $A4, $A0, $A0, $00, $80, $80, $80, $00, + $AA, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, $00, $5F, $AA, $00, $00, $3F, $AA, $00, + $55, $3F, $AA, $00, $00, $3F, $AA, $00, $00, $3F, $AA, $00, $00, $3F, $55, $00, + $FF, $DF, $D4, $00, $AA, $BF, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $7F, $00, + $55, $7F, $D4, $00, $55, $5F, $AA, $00, $00, $7F, $D4, $00, $55, $3F, $7F, $00, + $55, $5F, $7F, $00, $C0, $DC, $C0, $00, $AA, $9F, $AA, $00, $00, $3F, $55, $00, + $55, $7F, $AA, $00, $AA, $9F, $D4, $00, $55, $BF, $D4, $00, $AA, $7F, $AA, $00, + $80, $80, $80, $00, $AA, $9F, $7F, $00, $80, $80, $80, $00, $AA, $9F, $AA, $00, + $55, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, $55, $3F, $7F, $00, $00, $3F, $AA, $00, + $00, $5F, $AA, $00, $55, $5F, $AA, $00, $55, $5F, $AA, $00, $00, $1F, $55, $00, + $C0, $DC, $C0, $00, $AA, $9F, $D4, $00, $55, $5F, $55, $00, $00, $3F, $AA, $00, + $55, $5F, $AA, $00, $00, $7F, $D4, $00, $55, $5F, $AA, $00, $00, $5F, $7F, $00, + $55, $5F, $AA, $00, $C0, $DC, $C0, $00, $AA, $7F, $AA, $00, $00, $3F, $7F, $00, + $55, $7F, $AA, $00, $55, $9F, $D4, $00, $55, $9F, $D4, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $AA, $7F, $AA, $00, $80, $80, $80, $00, + $AA, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $00, $5F, $AA, $00, $55, $5F, $7F, $00, + $00, $5F, $AA, $00, $55, $7F, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $7F, $00, + $FF, $DF, $D4, $00, $A4, $A0, $A0, $00, $00, $3F, $7F, $00, $55, $3F, $7F, $00, + $00, $5F, $AA, $00, $00, $5F, $D4, $00, $55, $5F, $AA, $00, $00, $3F, $7F, $00, + $80, $80, $80, $00, $AA, $BF, $D4, $00, $80, $80, $80, $00, $55, $3F, $7F, $00, + $00, $7F, $AA, $00, $55, $9F, $D4, $00, $55, $9F, $FF, $00, $80, $80, $80, $00, + $55, $5F, $55, $00, $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $55, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $AA, $9F, $AA, $00, $55, $5F, $AA, $00, + $55, $5F, $D4, $00, $AA, $9F, $D4, $00, $55, $5F, $AA, $00, $00, $1F, $55, $00, + $FF, $DF, $D4, $00, $A4, $A0, $A0, $00, $55, $3F, $7F, $00, $00, $3F, $7F, $00, + $00, $5F, $AA, $00, $55, $5F, $AA, $00, $00, $3F, $AA, $00, $00, $1F, $55, $00, + $AA, $7F, $D4, $00, $C0, $DC, $C0, $00, $55, $7F, $7F, $00, $00, $3F, $55, $00, + $55, $7F, $D4, $00, $55, $7F, $D4, $00, $80, $80, $80, $00, $55, $7F, $7F, $00, + $80, $80, $80, $00, $AA, $7F, $55, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $FF, $DF, $D4, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, $55, $9F, $AA, $00, + $C0, $DC, $C0, $00, $55, $7F, $AA, $00, $55, $5F, $AA, $00, $00, $1F, $55, $00, + $C0, $DC, $C0, $00, $AA, $9F, $AA, $00, $55, $3F, $55, $00, $00, $00, $80, $00, + $00, $5F, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $55, $00, $55, $5F, $7F, $00, + $C0, $DC, $C0, $00, $AA, $9F, $D4, $00, $55, $3F, $7F, $00, $00, $3F, $AA, $00, + $55, $7F, $AA, $00, $00, $7F, $D4, $00, $55, $7F, $AA, $00, $55, $3F, $55, $00, + $55, $5F, $55, $00, $55, $5F, $7F, $00, $55, $7F, $55, $00, $AA, $7F, $7F, $00, + $80, $80, $80, $00, $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $CC, $FF, $00, + $AA, $BF, $AA, $00, $55, $5F, $AA, $00, $00, $3F, $7F, $00, $00, $1F, $55, $00, + $FF, $CC, $FF, $00, $C0, $DC, $C0, $00, $00, $3F, $7F, $00, $00, $1F, $55, $00, + $00, $1F, $55, $00, $00, $1F, $55, $00, $55, $5F, $AA, $00, $FF, $BF, $D4, $00, + $C0, $DC, $C0, $00, $80, $80, $80, $00, $00, $3F, $55, $00, $00, $5F, $AA, $00, + $00, $7F, $D4, $00, $55, $5F, $D4, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $55, $5F, $55, $00, $55, $5F, $55, $00, $AA, $5F, $7F, $00, $55, $7F, $55, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $55, $9F, $D4, $00, $55, $7F, $AA, $00, $55, $5F, $7F, $00, $00, $1F, $55, $00, + $C0, $DC, $C0, $00, $C0, $DC, $C0, $00, $AA, $9F, $AA, $00, $80, $80, $80, $00, + $55, $7F, $AA, $00, $FF, $BF, $AA, $00, $AA, $BF, $D4, $00, $C0, $DC, $C0, $00, + $AA, $7F, $AA, $00, $00, $1F, $7F, $00, $00, $3F, $AA, $00, $55, $5F, $AA, $00, + $00, $5F, $AA, $00, $55, $7F, $AA, $00, $80, $80, $80, $00, $55, $7F, $55, $00, + $AA, $5F, $55, $00, $55, $5F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $AA, $BF, $AA, $00, $55, $5F, $AA, $00, $00, $3F, $7F, $00, $00, $1F, $55, $00, + $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $FF, $CC, $FF, $00, $C0, $DC, $C0, $00, + $FF, $DF, $D4, $00, $AA, $BF, $D4, $00, $AA, $9F, $AA, $00, $55, $3F, $7F, $00, + $00, $1F, $55, $00, $00, $3F, $7F, $00, $55, $5F, $AA, $00, $00, $5F, $AA, $00, + $55, $7F, $AA, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, $AA, $5F, $7F, $00, + $80, $80, $80, $00, $55, $5F, $55, $00, $80, $80, $80, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $AA, $9F, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $55, $00, + $00, $1F, $55, $00, $00, $1F, $55, $00, $00, $1F, $55, $00, $00, $1F, $55, $00, + $00, $1F, $55, $00, $00, $1F, $55, $00, $00, $1F, $55, $00, $00, $3F, $7F, $00, + $00, $3F, $7F, $00, $00, $3F, $AA, $00, $00, $3F, $AA, $00, $00, $5F, $AA, $00, + $AA, $7F, $AA, $00, $AA, $9F, $7F, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, + $AA, $7F, $7F, $00, $80, $80, $80, $00, $55, $7F, $55, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $A4, $A0, $A0, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $AA, $9F, $AA, $00, $55, $3F, $7F, $00, + $00, $3F, $7F, $00, $00, $1F, $7F, $00, $00, $3F, $55, $00, $00, $1F, $7F, $00, + $00, $3F, $55, $00, $00, $1F, $7F, $00, $00, $3F, $7F, $00, $00, $3F, $7F, $00, + $00, $3F, $AA, $00, $00, $3F, $AA, $00, $55, $5F, $7F, $00, $AA, $9F, $AA, $00, + $AA, $9F, $7F, $00, $AA, $9F, $7F, $00, $AA, $9F, $7F, $00, $80, $80, $80, $00, + $AA, $9F, $7F, $00, $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $FF, $DF, $D4, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, + $80, $80, $80, $00, $00, $5F, $7F, $00, $55, $3F, $7F, $00, $00, $3F, $7F, $00, + $00, $3F, $7F, $00, $00, $3F, $7F, $00, $00, $3F, $7F, $00, $55, $3F, $AA, $00, + $55, $5F, $7F, $00, $80, $80, $80, $00, $AA, $BF, $D4, $00, $FF, $9F, $7F, $00, + $AA, $9F, $AA, $00, $FF, $9F, $7F, $00, $AA, $9F, $AA, $00, $AA, $7F, $7F, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $DF, $FF, $00, $C0, $DC, $C0, $00, $AA, $BF, $AA, $00, + $AA, $9F, $AA, $00, $A4, $A0, $A0, $00, $AA, $9F, $D4, $00, $AA, $BF, $AA, $00, + $C0, $DC, $C0, $00, $C0, $DC, $C0, $00, $FF, $9F, $AA, $00, $AA, $BF, $7F, $00, + $FF, $9F, $7F, $00, $AA, $9F, $7F, $00, $AA, $9F, $7F, $00, $AA, $9F, $7F, $00, + $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $FF, $DF, $D4, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $C0, $DC, $C0, $00, $FF, $CC, $FF, $00, + $F0, $CA, $A6, $00, $F0, $CA, $A6, $00, $AA, $BF, $AA, $00, $FF, $9F, $AA, $00, + $AA, $BF, $AA, $00, $FF, $9F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, $A4, $A0, $A0, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $FF, $DF, $D4, $00, + $C0, $DC, $C0, $00, $FF, $CC, $CC, $00, $FF, $BF, $AA, $00, $AA, $BF, $AA, $00, + $FF, $9F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, + $FF, $BF, $D4, $00, $C0, $DC, $C0, $00, $FF, $BF, $AA, $00, $AA, $9F, $AA, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, $A4, $A0, $A0, $00, + $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $CC, $CC, $00, + $C0, $DC, $C0, $00, $A4, $A0, $A0, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $FF, $C0, $00, $00, $FF, $00, $00, $00, $FC, $00, $00, $00, $F8, $00, $00, $00, + $F0, $00, $00, $00, $E0, $00, $00, $00, $C0, $00, $00, $00, $C0, $00, $00, $00, + $80, $00, $00, $00, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $00, $00, $01, $80, $00, $00, $01, + $C0, $00, $00, $03, $C0, $00, $00, $03, $E0, $00, $00, $07, $F0, $00, $00, $0F, + $F8, $00, $00, $1F, $FC, $00, $00, $3F, $FF, $00, $00, $FF, $FF, $C0, $03, $FF, + $26, $3D, $4F, $38, $C2, $82, $37, $B8, $F3, $24, $42, $03, $17, $9B, $3A, $83, + $00, $00, $10, $8C, $00, $00, $00, $00, $0C, $00, $00, $00, $01, $54, $53, $48, + $46, $6F, $6C, $64, $65, $72, $00, $1C, $4B, $57, $69, $6E, $64, $6F, $77, $73, + $00, $10, $55, $54, $79, $70, $65, $73, $00, $00, $81, $53, $79, $73, $49, $6E, + $69, $74, $00, $00, $C7, $53, $79, $73, $74, $65, $6D, $00, $00, $4E, $48, $65, + $6C, $70, $65, $72, $55, $74, $69, $6C, $73, $00, $00, $43, $57, $69, $6E, $64, + $6F, $77, $55, $74, $69, $6C, $73, $00, $00, $3F, $49, $70, $63, $55, $69, $6C, + $73, $00, $00, $15, $44, $65, $6C, $55, $74, $69, $6C, $73, $00, $00, $82, $41, + $70, $69, $55, $74, $69, $6C, $73, $00, $1C, $33, $4D, $65, $73, $73, $61, $67, + $65, $73, $00, $00, $CC, $53, $68, $65, $6C, $6C, $55, $74, $69, $6C, $73, $00, + $00, $00, $01, $00, $01, $00, $20, $20, $20, $00, $01, $00, $20, $00, $A8, $10, + $00, $00, $01, $00, $94, $02, $34, $00, $00, $00, $56, $00, $53, $00, $5F, $00, + $56, $00, $45, $00, $52, $00, $53, $00, $49, $00, $4F, $00, $4E, $00, $5F, $00, + $49, $00, $4E, $00, $46, $00, $4F, $00, $00, $00, $00, $00, $BD, $04, $EF, $FE, + $00, $00, $01, $00, $00, $00, $1A, $00, $0C, $11, $AD, $7E, $00, $00, $1A, $00, + $0C, $11, $AD, $7E, $3F, $00, $00, $00, $00, $00, $00, $00, $04, $00, $00, $00, + $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $F2, $01, $00, $00, $00, $00, $53, $00, $74, $00, $72, $00, $69, $00, $6E, $00, + $67, $00, $46, $00, $69, $00, $6C, $00, $65, $00, $49, $00, $6E, $00, $66, $00, + $6F, $00, $00, $00, $CE, $01, $00, $00, $00, $00, $30, $00, $34, $00, $30, $00, + $39, $00, $30, $00, $34, $00, $45, $00, $34, $00, $00, $00, $22, $00, $01, $00, + $01, $00, $43, $00, $6F, $00, $6D, $00, $70, $00, $61, $00, $6E, $00, $79, $00, + $4E, $00, $61, $00, $6D, $00, $65, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $2A, $00, $01, $00, $01, $00, $46, $00, $69, $00, $6C, $00, $65, $00, $44, $00, + $65, $00, $73, $00, $63, $00, $72, $00, $69, $00, $70, $00, $74, $00, $69, $00, + $6F, $00, $6E, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $10, $00, + $01, $00, $46, $00, $69, $00, $6C, $00, $65, $00, $56, $00, $65, $00, $72, $00, + $73, $00, $69, $00, $6F, $00, $6E, $00, $00, $00, $00, $00, $32, $00, $36, $00, + $2E, $00, $30, $00, $2E, $00, $33, $00, $32, $00, $34, $00, $32, $00, $39, $00, + $2E, $00, $34, $00, $33, $00, $36, $00, $34, $00, $00, $00, $22, $00, $01, $00, + $01, $00, $49, $00, $6E, $00, $74, $00, $65, $00, $72, $00, $6E, $00, $61, $00, + $6C, $00, $4E, $00, $61, $00, $6D, $00, $65, $00, $00, $00, $00, $00, $00, $00, + $26, $00, $01, $00, $01, $00, $4C, $00, $65, $00, $67, $00, $61, $00, $6C, $00, + $43, $00, $6F, $00, $70, $00, $79, $00, $72, $00, $69, $00, $67, $00, $68, $00, + $74, $00, $00, $00, $00, $00, $00, $00, $2A, $00, $01, $00, $01, $00, $4C, $00, + $65, $00, $67, $00, $61, $00, $6C, $00, $54, $00, $72, $00, $61, $00, $64, $00, + $65, $00, $6D, $00, $61, $00, $72, $00, $6B, $00, $73, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $2A, $00, $01, $00, $01, $00, $4F, $00, $72, $00, $69, $00, + $67, $00, $69, $00, $6E, $00, $61, $00, $6C, $00, $46, $00, $69, $00, $6C, $00, + $65, $00, $6E, $00, $61, $00, $6D, $00, $65, $00, $00, $00, $00, $00, $00, $00, + $22, $00, $01, $00, $01, $00, $50, $00, $72, $00, $6F, $00, $64, $00, $75, $00, + $63, $00, $74, $00, $4E, $00, $61, $00, $6D, $00, $65, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $44, $00, $10, $00, $01, $00, $50, $00, $72, $00, $6F, $00, + $64, $00, $75, $00, $63, $00, $74, $00, $56, $00, $65, $00, $72, $00, $73, $00, + $69, $00, $6F, $00, $6E, $00, $00, $00, $32, $00, $36, $00, $2E, $00, $30, $00, + $2E, $00, $33, $00, $32, $00, $34, $00, $32, $00, $39, $00, $2E, $00, $34, $00, + $33, $00, $36, $00, $34, $00, $00, $00, $1A, $00, $01, $00, $01, $00, $43, $00, + $6F, $00, $6D, $00, $6D, $00, $65, $00, $6E, $00, $74, $00, $73, $00, $00, $00, + $00, $00, $00, $00, $44, $00, $00, $00, $00, $00, $56, $00, $61, $00, $72, $00, + $46, $00, $69, $00, $6C, $00, $65, $00, $49, $00, $6E, $00, $66, $00, $6F, $00, + $00, $00, $00, $00, $24, $00, $04, $00, $00, $00, $54, $00, $72, $00, $61, $00, + $6E, $00, $73, $00, $6C, $00, $61, $00, $74, $00, $69, $00, $6F, $00, $6E, $00, + $00, $00, $00, $00, $09, $04, $E4, $04, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $18, $2B, $00, $00, $00, $02, $02, $00, $30, $82, $2B, $08, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $2A, $F9, $30, $82, $2A, $F5, $02, + $01, $01, $31, $0B, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, $30, + $4C, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $04, $A0, $3E, $30, + $3C, $30, $17, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $0F, $30, + $09, $03, $01, $00, $A0, $04, $A2, $02, $80, $00, $30, $21, $30, $09, $06, $05, + $2B, $0E, $03, $02, $1A, $05, $00, $04, $14, $AB, $19, $52, $9F, $F7, $AE, $9F, + $6F, $D1, $58, $EE, $8C, $FD, $3E, $8A, $D2, $93, $5E, $68, $F7, $A0, $82, $03, + $C6, $30, $82, $03, $C2, $30, $82, $02, $AE, $A0, $03, $02, $01, $02, $02, $10, + $79, $8B, $C8, $C7, $16, $0A, $2E, $8B, $4D, $CD, $3D, $3F, $BF, $8F, $57, $7D, + $30, $09, $06, $05, $2B, $0E, $03, $02, $1D, $05, $00, $30, $54, $31, $0B, $30, + $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, $30, $13, $06, $03, + $55, $04, $0A, $13, $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, + $6F, $31, $2E, $30, $2C, $06, $03, $55, $04, $03, $13, $25, $53, $75, $70, $65, + $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, + $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $2D, $20, $47, + $31, $30, $1E, $17, $0D, $31, $35, $30, $35, $30, $34, $31, $36, $30, $30, $30, + $30, $5A, $17, $0D, $33, $35, $30, $35, $30, $34, $31, $36, $30, $30, $30, $30, + $5A, $30, $60, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, + $31, $15, $30, $13, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $01, $16, + $06, $4C, $73, $75, $70, $65, $72, $31, $15, $30, $13, $06, $03, $55, $04, $0A, + $13, $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $23, + $30, $21, $06, $03, $55, $04, $03, $13, $1A, $53, $75, $70, $65, $72, $20, $43, + $6F, $64, $65, $20, $53, $69, $67, $6E, $69, $6E, $67, $20, $43, $41, $20, $2D, + $20, $47, $31, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, + $0D, $01, $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, $82, $01, $0A, $02, + $82, $01, $01, $00, $BF, $43, $F2, $EE, $5F, $CD, $DE, $AE, $E7, $5A, $59, $B8, + $44, $03, $0A, $D0, $27, $19, $FD, $43, $2C, $A8, $55, $76, $E4, $17, $2B, $E4, + $B9, $52, $DF, $E4, $23, $89, $56, $62, $CE, $1B, $F3, $31, $AE, $12, $EC, $EF, + $F3, $28, $EA, $CA, $CA, $66, $53, $20, $9D, $84, $BC, $65, $27, $89, $48, $9F, + $65, $9A, $2C, $83, $11, $6D, $F2, $50, $46, $B8, $65, $19, $9B, $18, $AA, $74, + $90, $1B, $FE, $ED, $B8, $17, $7C, $9F, $BE, $79, $80, $BE, $FF, $38, $78, $BF, + $B9, $B8, $91, $2A, $74, $05, $E1, $FE, $7B, $69, $2F, $3C, $A4, $FB, $34, $7B, + $A2, $1F, $B3, $81, $5B, $37, $97, $16, $8A, $2F, $F1, $24, $64, $B8, $94, $0E, + $B7, $B2, $39, $EE, $BE, $0D, $16, $7D, $35, $B1, $42, $A6, $A0, $87, $22, $55, + $75, $BF, $FC, $06, $31, $81, $1F, $C1, $27, $CE, $B8, $AD, $7E, $F5, $C2, $3A, + $0C, $67, $3E, $E3, $AB, $96, $8C, $F0, $04, $80, $ED, $2E, $78, $25, $0E, $08, + $E2, $6A, $1D, $83, $DE, $12, $C8, $D3, $91, $B9, $F7, $CE, $13, $0B, $9C, $4A, + $72, $86, $6A, $C3, $47, $8C, $5B, $75, $E7, $91, $02, $E1, $12, $46, $DB, $A5, + $78, $19, $09, $C6, $B6, $0E, $AB, $37, $46, $3A, $DD, $E4, $7A, $F2, $2F, $6A, + $A5, $0A, $2A, $59, $57, $5E, $78, $6A, $26, $1C, $FC, $6A, $02, $1D, $10, $43, + $AE, $18, $C2, $61, $DC, $AE, $56, $7E, $8C, $5F, $BA, $CD, $C4, $12, $AC, $2B, + $11, $9E, $E3, $85, $02, $03, $01, $00, $01, $A3, $81, $8B, $30, $81, $88, $30, + $81, $85, $06, $03, $55, $1D, $01, $04, $7E, $30, $7C, $80, $10, $61, $1A, $C5, + $8D, $DA, $A6, $48, $41, $C6, $90, $F2, $6E, $42, $9B, $11, $44, $A1, $56, $30, + $54, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, + $30, $13, $06, $03, $55, $04, $0A, $13, $0C, $53, $75, $70, $65, $72, $20, $53, + $74, $75, $64, $69, $6F, $31, $2E, $30, $2C, $06, $03, $55, $04, $03, $13, $25, + $53, $75, $70, $65, $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, + $66, $69, $63, $61, $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, + $20, $2D, $20, $47, $31, $82, $10, $61, $BD, $CF, $00, $4B, $64, $D3, $AC, $49, + $E3, $71, $A3, $37, $CE, $15, $65, $30, $09, $06, $05, $2B, $0E, $03, $02, $1D, + $05, $00, $03, $82, $01, $01, $00, $14, $1F, $B4, $72, $73, $27, $8A, $64, $32, + $30, $5A, $78, $A2, $F9, $B5, $0F, $33, $1F, $5C, $8E, $9F, $3C, $BE, $48, $35, + $04, $C5, $A0, $50, $D8, $91, $23, $B9, $42, $49, $FA, $64, $CF, $47, $F5, $FF, + $61, $9D, $78, $DF, $99, $FC, $8E, $B1, $DB, $AF, $B8, $0D, $F3, $64, $1A, $B6, + $82, $B7, $E6, $F5, $DB, $F5, $D7, $F0, $DD, $A2, $3B, $5F, $78, $EE, $2F, $EE, + $10, $55, $99, $1B, $5B, $DC, $ED, $A3, $EE, $72, $7F, $C5, $3C, $6C, $09, $30, + $87, $CE, $B6, $AB, $29, $1C, $80, $B9, $8F, $0E, $53, $3E, $E8, $A2, $C9, $34, + $DB, $6C, $C6, $3D, $D6, $A2, $1D, $6B, $6E, $FB, $DE, $7A, $D6, $F7, $5C, $DB, + $49, $6B, $DA, $B8, $FC, $5B, $9A, $52, $0A, $4F, $AB, $01, $65, $F4, $DE, $85, + $58, $7E, $8B, $61, $4C, $A7, $80, $1B, $4C, $E5, $AF, $B8, $C8, $6A, $6A, $D7, + $7B, $F6, $58, $C5, $4E, $2D, $0B, $D1, $BA, $DA, $D0, $33, $6B, $C0, $10, $F2, + $85, $51, $16, $05, $25, $61, $B2, $66, $64, $33, $6C, $B8, $85, $02, $7B, $E8, + $6B, $A6, $6A, $EA, $34, $8C, $3F, $0C, $95, $AF, $93, $6A, $AD, $1D, $8C, $A2, + $77, $0E, $DA, $12, $C7, $ED, $02, $39, $BE, $7C, $8D, $93, $A8, $6A, $82, $90, + $2E, $AC, $8B, $0E, $3B, $DB, $46, $76, $0E, $3C, $37, $19, $98, $7D, $A0, $D3, + $59, $67, $D9, $03, $5E, $FE, $85, $BE, $26, $7B, $78, $72, $69, $2B, $87, $13, + $04, $1B, $A6, $28, $66, $AF, $71, $31, $82, $26, $C9, $30, $82, $26, $C5, $02, + $01, $01, $30, $68, $30, $54, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, + $02, $43, $4E, $31, $15, $30, $13, $06, $03, $55, $04, $0A, $13, $0C, $53, $75, + $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $2E, $30, $2C, $06, $03, + $55, $04, $03, $13, $25, $53, $75, $70, $65, $72, $20, $52, $6F, $6F, $74, $20, + $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $65, $20, $41, $75, $74, $68, + $6F, $72, $69, $74, $79, $20, $2D, $20, $47, $31, $02, $10, $79, $8B, $C8, $C7, + $16, $0A, $2E, $8B, $4D, $CD, $3D, $3F, $BF, $8F, $57, $7D, $30, $09, $06, $05, + $2B, $0E, $03, $02, $1A, $05, $00, $A0, $81, $84, $30, $19, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $09, $03, $31, $0C, $06, $0A, $2B, $06, $01, $04, $01, + $82, $37, $02, $01, $04, $30, $23, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $09, $04, $31, $16, $04, $14, $EE, $45, $3E, $5D, $04, $78, $12, $43, $CC, $2B, + $89, $E8, $BA, $D2, $66, $8D, $A2, $E3, $6A, $9D, $30, $42, $06, $0A, $2B, $06, + $01, $04, $01, $82, $37, $02, $01, $0C, $31, $34, $30, $32, $A0, $18, $80, $16, + $00, $44, $00, $65, $00, $6C, $00, $70, $00, $68, $00, $69, $00, $20, $00, $4C, + $00, $69, $00, $74, $00, $65, $A1, $16, $80, $14, $77, $77, $77, $2E, $65, $6D, + $62, $61, $72, $63, $61, $64, $65, $72, $6F, $2E, $63, $6F, $6D, $20, $30, $0D, + $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $04, $82, $01, + $00, $B3, $36, $85, $E5, $C7, $1E, $00, $01, $41, $75, $49, $6A, $67, $49, $0D, + $2B, $D1, $76, $E7, $9D, $94, $55, $DF, $37, $76, $10, $00, $61, $69, $D6, $36, + $39, $FB, $8C, $18, $E7, $92, $FD, $6F, $51, $D4, $58, $06, $A8, $8B, $64, $E5, + $5F, $99, $85, $70, $6B, $FA, $CC, $8E, $4F, $71, $F6, $88, $72, $96, $82, $C1, + $99, $4D, $84, $98, $58, $4E, $BF, $40, $FC, $70, $37, $FC, $F3, $6A, $63, $FC, + $A1, $76, $90, $3A, $6B, $25, $00, $CC, $6A, $2E, $DF, $9F, $5C, $DF, $05, $04, + $10, $99, $CE, $87, $53, $C8, $73, $24, $27, $C4, $1E, $28, $82, $64, $5E, $18, + $BF, $D8, $68, $71, $EE, $FC, $25, $CB, $8F, $27, $42, $E2, $2A, $7D, $71, $D7, + $1F, $F3, $8D, $19, $28, $7B, $63, $72, $EA, $AE, $E8, $7A, $19, $3A, $8C, $33, + $AC, $0E, $6F, $17, $6C, $89, $FE, $3E, $14, $51, $90, $77, $A5, $13, $92, $A0, + $11, $4F, $5E, $94, $D1, $07, $2B, $DE, $68, $8A, $DF, $50, $BB, $46, $D3, $FA, + $F8, $42, $08, $A8, $10, $05, $3F, $83, $56, $78, $74, $FE, $9F, $D2, $04, $79, + $89, $13, $DE, $D0, $C6, $CB, $23, $34, $F4, $94, $F4, $FE, $E1, $F9, $93, $DD, + $8A, $AD, $90, $39, $53, $6A, $5E, $26, $5D, $A1, $DE, $D0, $37, $30, $A4, $D9, + $12, $FA, $42, $9B, $FB, $50, $59, $9A, $79, $C1, $3B, $3D, $E3, $DB, $F0, $FB, + $4E, $2F, $FA, $72, $72, $E3, $84, $82, $68, $42, $A4, $B9, $2D, $38, $10, $93, + $48, $A1, $82, $24, $AF, $30, $82, $0E, $7B, $06, $0A, $2B, $06, $01, $04, $01, + $82, $37, $03, $03, $01, $31, $82, $0E, $6B, $30, $82, $0E, $67, $06, $09, $2A, + $86, $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $0E, $58, $30, $82, $0E, $54, + $02, $01, $03, $31, $0B, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, + $30, $81, $CA, $06, $0B, $2A, $86, $48, $86, $F7, $0D, $01, $09, $10, $01, $04, + $A0, $81, $BA, $04, $81, $B7, $30, $81, $B4, $02, $01, $01, $06, $08, $2B, $06, + $01, $04, $01, $EB, $42, $03, $30, $21, $30, $09, $06, $05, $2B, $0E, $03, $02, + $1A, $05, $00, $04, $14, $85, $3A, $97, $6F, $C8, $91, $AA, $B0, $B3, $12, $2B, + $BA, $21, $3E, $9A, $89, $21, $74, $3A, $81, $02, $10, $58, $A2, $50, $D8, $20, + $2D, $A7, $09, $BF, $75, $46, $FD, $A1, $3D, $D3, $D7, $18, $0F, $32, $30, $31, + $38, $31, $31, $33, $30, $31, $36, $31, $33, $33, $38, $5A, $30, $0A, $02, $01, + $01, $80, $02, $01, $F4, $81, $01, $64, $A0, $53, $A4, $51, $30, $4F, $31, $0B, + $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, + $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, + $4C, $69, $6D, $69, $74, $65, $64, $31, $24, $30, $22, $06, $03, $55, $04, $03, + $13, $1B, $57, $6F, $53, $69, $67, $6E, $20, $54, $69, $6D, $65, $20, $53, $74, + $61, $6D, $70, $69, $6E, $67, $20, $53, $69, $67, $6E, $65, $72, $A0, $82, $0A, + $C3, $30, $82, $05, $45, $30, $82, $03, $2D, $A0, $03, $02, $01, $02, $02, $10, + $25, $1F, $5D, $98, $81, $82, $17, $2E, $3C, $41, $9E, $01, $4F, $B0, $40, $4C, + $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $05, $05, $00, $30, + $55, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $1A, + $30, $18, $06, $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, $6E, $20, + $43, $41, $20, $4C, $69, $6D, $69, $74, $65, $64, $31, $2A, $30, $28, $06, $03, + $55, $04, $03, $13, $21, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $69, + $6F, $6E, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $6F, $66, $20, + $57, $6F, $53, $69, $67, $6E, $30, $1E, $17, $0D, $30, $39, $30, $38, $30, $38, + $30, $31, $30, $30, $30, $35, $5A, $17, $0D, $32, $34, $30, $38, $30, $38, $30, + $31, $30, $30, $30, $35, $5A, $30, $4F, $31, $0B, $30, $09, $06, $03, $55, $04, + $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, $0A, $13, $11, + $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, $74, $65, + $64, $31, $24, $30, $22, $06, $03, $55, $04, $03, $13, $1B, $57, $6F, $53, $69, + $67, $6E, $20, $54, $69, $6D, $65, $20, $53, $74, $61, $6D, $70, $69, $6E, $67, + $20, $53, $69, $67, $6E, $65, $72, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, + $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, + $82, $01, $0A, $02, $82, $01, $01, $00, $A5, $D0, $68, $BA, $82, $CB, $DB, $A7, + $6D, $55, $B9, $31, $A7, $DA, $F4, $9C, $6B, $03, $54, $4F, $A2, $1C, $EF, $1C, + $B5, $96, $44, $1F, $56, $41, $3F, $61, $B0, $03, $59, $4B, $82, $0E, $DB, $15, + $C8, $D0, $CC, $E0, $87, $C6, $09, $75, $8A, $84, $E3, $ED, $97, $C2, $C8, $92, + $34, $C0, $F1, $64, $53, $60, $51, $34, $48, $90, $B1, $4F, $89, $69, $F5, $2E, + $A0, $2A, $16, $54, $2F, $C0, $37, $58, $FF, $35, $52, $1B, $52, $08, $CF, $B9, + $EC, $5A, $27, $52, $5A, $83, $EB, $68, $B1, $B9, $F8, $B2, $A9, $08, $F3, $4F, + $AB, $17, $0F, $2E, $BD, $4F, $E5, $12, $8A, $BF, $7C, $B7, $E7, $65, $32, $3B, + $83, $41, $02, $22, $3A, $24, $3B, $6A, $A3, $3C, $AF, $EB, $79, $42, $17, $56, + $74, $C8, $61, $63, $DD, $8C, $2F, $3E, $EF, $3A, $A3, $47, $52, $04, $3B, $00, + $18, $AE, $26, $71, $E0, $7A, $04, $8D, $75, $82, $2D, $65, $4E, $C1, $B8, $F2, + $8C, $DE, $0F, $63, $03, $D4, $C3, $52, $60, $72, $8C, $88, $CC, $6F, $96, $D5, + $C7, $7D, $29, $DB, $26, $04, $9E, $A2, $B4, $BF, $5A, $B5, $6E, $F2, $46, $0F, + $29, $81, $C5, $C0, $4F, $A6, $87, $8C, $7C, $21, $07, $54, $1F, $50, $F0, $42, + $5C, $55, $7C, $CF, $44, $2E, $41, $3D, $18, $8D, $5F, $D9, $68, $E6, $47, $91, + $8F, $CF, $DC, $7D, $90, $60, $FF, $CB, $48, $E4, $61, $5E, $4F, $73, $45, $0D, + $C8, $34, $89, $03, $D5, $FE, $0B, $C3, $02, $03, $01, $00, $01, $A3, $82, $01, + $15, $30, $82, $01, $11, $30, $0E, $06, $03, $55, $1D, $0F, $01, $01, $FF, $04, + $04, $03, $02, $06, $C0, $30, $16, $06, $03, $55, $1D, $25, $01, $01, $FF, $04, + $0C, $30, $0A, $06, $08, $2B, $06, $01, $05, $05, $07, $03, $08, $30, $0C, $06, + $03, $55, $1D, $13, $01, $01, $FF, $04, $02, $30, $00, $30, $30, $06, $03, $55, + $1D, $1F, $04, $29, $30, $27, $30, $25, $A0, $23, $A0, $21, $86, $1F, $68, $74, + $74, $70, $3A, $2F, $2F, $63, $72, $6C, $73, $31, $2E, $77, $6F, $73, $69, $67, + $6E, $2E, $63, $6F, $6D, $2F, $63, $61, $31, $2E, $63, $72, $6C, $30, $67, $06, + $08, $2B, $06, $01, $05, $05, $07, $01, $01, $04, $5B, $30, $59, $30, $27, $06, + $08, $2B, $06, $01, $05, $05, $07, $30, $01, $86, $1B, $68, $74, $74, $70, $3A, + $2F, $2F, $6F, $63, $73, $70, $31, $2E, $77, $6F, $73, $69, $67, $6E, $2E, $63, + $6F, $6D, $2F, $63, $61, $31, $30, $2E, $06, $08, $2B, $06, $01, $05, $05, $07, + $30, $02, $86, $22, $68, $74, $74, $70, $3A, $2F, $2F, $61, $69, $61, $31, $2E, + $77, $6F, $73, $69, $67, $6E, $2E, $63, $6F, $6D, $2F, $63, $61, $31, $2D, $74, + $73, $61, $2E, $63, $65, $72, $30, $1D, $06, $03, $55, $1D, $0E, $04, $16, $04, + $14, $DF, $6E, $12, $D5, $0C, $54, $2E, $5A, $14, $CA, $DE, $03, $DE, $AB, $4E, + $D4, $98, $0C, $46, $B5, $30, $1F, $06, $03, $55, $1D, $23, $04, $18, $30, $16, + $80, $14, $E1, $66, $CF, $0E, $D1, $F1, $B3, $4B, $B7, $06, $20, $14, $FE, $87, + $12, $D5, $F6, $FE, $FB, $3E, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, + $01, $01, $05, $05, $00, $03, $82, $02, $01, $00, $7C, $98, $2F, $BB, $C3, $D2, + $AE, $C2, $2A, $8F, $A6, $97, $76, $56, $86, $32, $C4, $CD, $36, $68, $8B, $EC, + $D7, $80, $1A, $31, $79, $B0, $5E, $56, $B9, $69, $EB, $B9, $0B, $32, $A9, $83, + $26, $DC, $77, $5D, $7A, $56, $B2, $46, $A0, $7D, $15, $D6, $6D, $F9, $AC, $F8, + $35, $73, $78, $36, $02, $60, $22, $20, $1C, $EF, $18, $8F, $7E, $66, $B2, $4F, + $E7, $71, $93, $5A, $2B, $E6, $E5, $8D, $3D, $5D, $2E, $27, $4B, $46, $CB, $1D, + $04, $F3, $0B, $8C, $3F, $13, $A8, $0D, $D4, $CD, $E8, $28, $E8, $2A, $9C, $55, + $C8, $E3, $FF, $9D, $A9, $22, $49, $6E, $E8, $E7, $88, $92, $37, $57, $80, $60, + $44, $18, $27, $43, $58, $18, $04, $6D, $86, $C0, $65, $47, $05, $57, $55, $50, + $91, $E6, $73, $50, $EE, $3F, $10, $A9, $8F, $05, $2F, $DA, $68, $11, $53, $6E, + $1F, $AD, $98, $F3, $76, $3E, $85, $D0, $57, $A3, $CF, $E4, $C1, $1A, $4C, $64, + $06, $A6, $44, $AB, $4E, $1E, $E2, $4B, $D5, $A4, $6D, $71, $F8, $6B, $CB, $66, + $13, $A6, $47, $1F, $21, $2A, $A1, $AE, $4C, $89, $A4, $7D, $28, $77, $17, $4F, + $88, $8D, $B1, $D1, $5D, $B1, $C4, $93, $5A, $BF, $22, $92, $6C, $AB, $67, $82, + $68, $ED, $D7, $21, $CB, $63, $BC, $93, $C4, $17, $8E, $87, $19, $25, $AD, $17, + $54, $B4, $79, $D2, $A5, $93, $73, $BC, $7C, $BB, $E4, $80, $0F, $8F, $CC, $AA, + $0A, $D0, $E4, $93, $75, $AA, $6C, $CF, $49, $7D, $75, $EC, $82, $28, $5C, $73, + $F0, $42, $BF, $9E, $A6, $13, $2E, $DE, $6C, $EE, $80, $03, $A6, $EE, $88, $36, + $A0, $1B, $B2, $82, $E8, $3D, $BB, $A6, $1A, $D5, $11, $AE, $0A, $0B, $62, $D6, + $51, $36, $97, $23, $17, $52, $26, $ED, $F1, $C5, $B6, $21, $75, $39, $15, $07, + $E0, $42, $F1, $2A, $89, $04, $77, $66, $AD, $14, $04, $D2, $C7, $D4, $7C, $4F, + $6C, $DD, $4E, $DC, $ED, $8E, $A9, $F6, $86, $17, $E7, $E1, $59, $66, $BB, $D0, + $7A, $D0, $94, $42, $EB, $AF, $C1, $54, $CA, $E2, $1A, $A4, $A9, $B6, $A5, $D4, + $81, $CA, $15, $26, $FA, $6F, $B4, $DF, $78, $10, $04, $8C, $48, $18, $BC, $28, + $59, $66, $9A, $B8, $18, $F1, $D9, $5E, $5B, $82, $FF, $FE, $11, $D7, $D4, $04, + $36, $30, $9F, $51, $1D, $3C, $C8, $64, $40, $75, $7C, $D8, $35, $83, $EF, $B1, + $E5, $28, $76, $0A, $05, $3D, $E9, $B8, $1E, $70, $50, $3A, $60, $E2, $A5, $01, + $88, $88, $9C, $04, $CC, $6A, $F2, $15, $85, $D1, $0C, $B7, $4A, $6D, $93, $4E, + $82, $CA, $29, $E9, $75, $0B, $42, $E4, $3A, $47, $24, $08, $6D, $80, $5C, $E6, + $6A, $67, $2C, $B6, $13, $08, $C9, $4F, $D8, $66, $53, $B9, $B6, $7F, $E2, $EA, + $39, $95, $6F, $71, $77, $96, $03, $AF, $B9, $E3, $CC, $E3, $A1, $B9, $F1, $01, + $C6, $6E, $BE, $FC, $97, $5C, $B2, $D1, $F1, $7B, $FB, $33, $C6, $65, $EA, $E6, + $18, $F9, $AB, $3A, $27, $1A, $2D, $20, $6B, $E6, $30, $82, $05, $76, $30, $82, + $03, $5E, $A0, $03, $02, $01, $02, $02, $10, $5E, $68, $D6, $11, $71, $94, $63, + $50, $56, $00, $68, $F3, $3E, $C9, $C5, $91, $30, $0D, $06, $09, $2A, $86, $48, + $86, $F7, $0D, $01, $01, $05, $05, $00, $30, $55, $31, $0B, $30, $09, $06, $03, + $55, $04, $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, $0A, + $13, $11, $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, + $74, $65, $64, $31, $2A, $30, $28, $06, $03, $55, $04, $03, $13, $21, $43, $65, + $72, $74, $69, $66, $69, $63, $61, $74, $69, $6F, $6E, $20, $41, $75, $74, $68, + $6F, $72, $69, $74, $79, $20, $6F, $66, $20, $57, $6F, $53, $69, $67, $6E, $30, + $1E, $17, $0D, $30, $39, $30, $38, $30, $38, $30, $31, $30, $30, $30, $31, $5A, + $17, $0D, $33, $39, $30, $38, $30, $38, $30, $31, $30, $30, $30, $31, $5A, $30, + $55, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $1A, + $30, $18, $06, $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, $6E, $20, + $43, $41, $20, $4C, $69, $6D, $69, $74, $65, $64, $31, $2A, $30, $28, $06, $03, + $55, $04, $03, $13, $21, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $69, + $6F, $6E, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $6F, $66, $20, + $57, $6F, $53, $69, $67, $6E, $30, $82, $02, $22, $30, $0D, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $03, $82, $02, $0F, $00, $30, $82, + $02, $0A, $02, $82, $02, $01, $00, $BD, $CA, $8D, $AC, $B8, $91, $15, $56, $97, + $7B, $6B, $5C, $7A, $C2, $DE, $6B, $D9, $A1, $B0, $C3, $10, $23, $FA, $A7, $A1, + $B2, $CC, $31, $FA, $3E, $D9, $A6, $29, $6F, $16, $3D, $E0, $6B, $F8, $B8, $40, + $5F, $DB, $39, $A8, $00, $7A, $8B, $A0, $4D, $54, $7D, $C2, $22, $78, $FC, $8E, + $09, $B8, $A8, $85, $D7, $CC, $95, $97, $4B, $74, $D8, $9E, $7E, $F0, $00, $E4, + $0E, $89, $AE, $49, $28, $44, $1A, $10, $99, $32, $0F, $25, $88, $53, $A4, $0D, + $B3, $0F, $12, $08, $16, $0B, $03, $71, $27, $1C, $7F, $E1, $DB, $D2, $FD, $67, + $68, $C4, $05, $5D, $0A, $0E, $5D, $70, $D7, $D8, $97, $A0, $BC, $53, $41, $9A, + $91, $8D, $F4, $9E, $36, $66, $7A, $7E, $56, $C1, $90, $5F, $E6, $B1, $68, $20, + $36, $A4, $8C, $24, $2C, $2C, $47, $0B, $59, $76, $66, $30, $B5, $BE, $DE, $ED, + $8F, $F8, $9D, $D3, $BB, $01, $30, $E6, $F2, $F3, $0E, $E0, $2C, $92, $80, $F3, + $85, $F9, $28, $8A, $B4, $54, $2E, $9A, $ED, $F7, $76, $FC, $15, $68, $16, $EB, + $4A, $6C, $EB, $2E, $12, $8F, $D4, $CF, $FE, $0C, $C7, $5C, $1D, $0B, $7E, $05, + $32, $BE, $5E, $B0, $09, $2A, $42, $D5, $C9, $4E, $90, $B3, $59, $0D, $BB, $7A, + $7E, $CD, $D5, $08, $5A, $B4, $7F, $D8, $1C, $69, $11, $F9, $27, $0F, $7B, $06, + $AF, $54, $83, $18, $7B, $E1, $DD, $54, $7A, $51, $68, $6E, $77, $FC, $C6, $BF, + $52, $4A, $66, $46, $A1, $B2, $67, $1A, $BB, $A3, $4F, $77, $A0, $BE, $5D, $FF, + $FC, $56, $0B, $43, $72, $77, $90, $CA, $9E, $F9, $F2, $39, $F5, $0D, $A9, $F4, + $EA, $D7, $E7, $B3, $10, $2F, $30, $42, $37, $21, $CC, $30, $70, $C9, $86, $98, + $0F, $CC, $58, $4D, $83, $BB, $7D, $E5, $1A, $A5, $37, $8D, $B6, $AC, $32, $97, + $00, $3A, $63, $71, $24, $1E, $9E, $37, $C4, $FF, $74, $D4, $37, $C0, $E2, $FE, + $88, $46, $60, $11, $DD, $08, $3F, $50, $36, $AB, $B8, $7A, $A4, $95, $62, $6A, + $6E, $B0, $CA, $6A, $21, $5A, $69, $F3, $F3, $FB, $1D, $70, $39, $95, $F3, $A7, + $6E, $A6, $81, $89, $A1, $88, $C5, $3B, $71, $CA, $A3, $52, $EE, $83, $BB, $FD, + $A0, $77, $F4, $E4, $6F, $E7, $42, $DB, $6D, $4A, $99, $8A, $34, $48, $BC, $17, + $DC, $E4, $80, $08, $22, $B6, $F2, $31, $C0, $3F, $04, $3E, $EB, $9F, $20, $79, + $D6, $B8, $06, $64, $64, $02, $31, $D7, $A9, $CD, $52, $FB, $84, $45, $69, $09, + $00, $2A, $DC, $55, $8B, $C4, $06, $46, $4B, $C0, $4A, $1D, $09, $5B, $39, $28, + $FD, $A9, $AB, $CE, $00, $F9, $2E, $48, $4B, $26, $E6, $30, $4C, $A5, $58, $CA, + $B4, $44, $82, $4F, $E7, $91, $1E, $33, $C3, $B0, $93, $FF, $11, $FC, $81, $D2, + $CA, $1F, $71, $29, $DD, $76, $4F, $92, $25, $AF, $1D, $81, $B7, $0F, $2F, $8C, + $C3, $06, $CC, $2F, $27, $A3, $4A, $E4, $0E, $99, $BA, $7C, $1E, $45, $1F, $7F, + $AA, $19, $45, $96, $FD, $FC, $3D, $02, $03, $01, $00, $01, $A3, $42, $30, $40, + $30, $0E, $06, $03, $55, $1D, $0F, $01, $01, $FF, $04, $04, $03, $02, $01, $06, + $30, $0F, $06, $03, $55, $1D, $13, $01, $01, $FF, $04, $05, $30, $03, $01, $01, + $FF, $30, $1D, $06, $03, $55, $1D, $0E, $04, $16, $04, $14, $E1, $66, $CF, $0E, + $D1, $F1, $B3, $4B, $B7, $06, $20, $14, $FE, $87, $12, $D5, $F6, $FE, $FB, $3E, + $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $05, $05, $00, $03, + $82, $02, $01, $00, $A8, $CB, $72, $40, $B2, $76, $C1, $7E, $7B, $FC, $AD, $64, + $E3, $32, $7B, $CC, $3C, $B6, $5D, $46, $D3, $F5, $2C, $E2, $70, $5D, $C8, $2E, + $D8, $06, $7D, $98, $D1, $0B, $21, $A0, $89, $59, $24, $01, $9D, $F9, $AF, $09, + $7D, $0A, $23, $82, $34, $D5, $FC, $7C, $72, $99, $B9, $A3, $D7, $54, $F4, $EA, + $52, $70, $0E, $C5, $F5, $D6, $3B, $E1, $3A, $09, $32, $E6, $21, $39, $93, $BD, + $B3, $15, $EA, $4F, $6A, $F4, $F5, $8B, $3F, $2F, $7C, $8D, $58, $2E, $C5, $E1, + $39, $A0, $3E, $C7, $3D, $4A, $73, $9E, $40, $7A, $C0, $2B, $61, $A9, $67, $C9, + $F3, $24, $B9, $B3, $6D, $55, $2C, $5A, $1D, $9E, $25, $72, $CE, $0B, $AD, $AA, + $C7, $55, $62, $0B, $BE, $FB, $63, $B3, $61, $44, $23, $A3, $CB, $E1, $1A, $0E, + $F7, $9A, $06, $4D, $DE, $D4, $23, $4E, $21, $96, $5B, $39, $5B, $57, $1D, $2F, + $5D, $08, $5E, $09, $79, $FF, $7C, $97, $B5, $4D, $83, $AE, $0D, $D6, $E6, $A3, + $79, $E0, $33, $D0, $99, $96, $02, $30, $A7, $3E, $FF, $D2, $A3, $43, $3F, $05, + $5A, $06, $EA, $44, $02, $DA, $7C, $F8, $48, $D0, $33, $A9, $F9, $07, $C7, $95, + $E1, $F5, $3E, $F5, $5D, $71, $BA, $F2, $95, $A9, $74, $88, $61, $59, $E3, $BF, + $CA, $5A, $13, $BA, $72, $B4, $8C, $5D, $36, $87, $E9, $A6, $C5, $3C, $13, $BF, + $DE, $D0, $44, $26, $EE, $B7, $EC, $2E, $70, $FA, $D7, $9D, $B7, $AC, $E5, $C5, + $40, $5A, $E6, $D7, $6C, $7B, $2C, $C3, $56, $9B, $47, $CD, $0B, $CE, $FA, $1B, + $B4, $21, $D7, $B7, $66, $B8, $F4, $25, $30, $8B, $5C, $0D, $B9, $EA, $67, $B2, + $F4, $6D, $AE, $D5, $A1, $9E, $4F, $D8, $9F, $E9, $27, $02, $B0, $1D, $06, $D6, + $8F, $E3, $FB, $48, $12, $9F, $7F, $11, $A1, $10, $3E, $4C, $51, $3A, $96, $B0, + $D1, $13, $F1, $C7, $D8, $26, $AE, $3A, $CA, $91, $C4, $69, $9D, $DF, $01, $29, + $64, $51, $6F, $68, $DA, $14, $EC, $08, $41, $97, $90, $8D, $D0, $B2, $80, $F2, + $CF, $C2, $3D, $BF, $91, $68, $C5, $80, $67, $1E, $C4, $60, $13, $55, $D5, $61, + $99, $57, $7C, $BA, $95, $0F, $61, $49, $3A, $CA, $75, $BC, $C9, $0A, $93, $3F, + $67, $0E, $12, $F2, $28, $E2, $31, $1B, $C0, $57, $16, $DF, $08, $7C, $19, $C1, + $7E, $0F, $1F, $85, $1E, $0A, $36, $7C, $5B, $7E, $27, $BC, $7A, $BF, $E0, $DB, + $F4, $DA, $52, $BD, $DE, $0C, $54, $70, $31, $91, $43, $95, $C8, $BC, $F0, $3E, + $DD, $09, $7E, $30, $64, $50, $ED, $7F, $01, $A4, $33, $67, $4D, $68, $4F, $BE, + $15, $EF, $B0, $F6, $02, $11, $A2, $1B, $13, $25, $3A, $DC, $C2, $59, $F1, $E3, + $5C, $46, $BB, $67, $2C, $02, $46, $EA, $1E, $48, $A6, $E6, $5B, $D9, $B5, $BC, + $51, $A2, $92, $96, $DB, $AA, $C6, $37, $22, $A6, $FE, $CC, $20, $74, $A3, $2D, + $A9, $2E, $6B, $CB, $C0, $82, $11, $21, $B5, $93, $79, $EE, $44, $86, $BE, $D7, + $1E, $E4, $1E, $FB, $31, $82, $02, $AC, $30, $82, $02, $A8, $02, $01, $01, $30, + $69, $30, $55, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, + $31, $1A, $30, $18, $06, $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, + $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, $74, $65, $64, $31, $2A, $30, $28, + $06, $03, $55, $04, $03, $13, $21, $43, $65, $72, $74, $69, $66, $69, $63, $61, + $74, $69, $6F, $6E, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $6F, + $66, $20, $57, $6F, $53, $69, $67, $6E, $02, $10, $25, $1F, $5D, $98, $81, $82, + $17, $2E, $3C, $41, $9E, $01, $4F, $B0, $40, $4C, $30, $09, $06, $05, $2B, $0E, + $03, $02, $1A, $05, $00, $A0, $82, $01, $18, $30, $1A, $06, $09, $2A, $86, $48, + $86, $F7, $0D, $01, $09, $03, $31, $0D, $06, $0B, $2A, $86, $48, $86, $F7, $0D, + $01, $09, $10, $01, $04, $30, $1C, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $09, $05, $31, $0F, $17, $0D, $31, $38, $31, $31, $33, $30, $31, $36, $31, $33, + $33, $38, $5A, $30, $23, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $04, + $31, $16, $04, $14, $D6, $04, $5A, $93, $D6, $4E, $E9, $35, $D7, $3A, $A5, $BD, + $9E, $9C, $B1, $94, $0B, $A2, $86, $A1, $30, $81, $B6, $06, $0B, $2A, $86, $48, + $86, $F7, $0D, $01, $09, $10, $02, $0C, $31, $81, $A6, $30, $81, $A3, $30, $81, + $A0, $30, $16, $04, $14, $54, $09, $B5, $6C, $89, $BB, $1A, $88, $1D, $E1, $A3, + $2C, $95, $0D, $40, $FD, $6B, $94, $C7, $4E, $30, $81, $85, $04, $14, $B9, $42, + $94, $BF, $91, $EA, $8F, $B6, $4B, $E6, $10, $97, $C7, $FB, $00, $13, $59, $B6, + $76, $CB, $30, $6D, $30, $59, $A4, $57, $30, $55, $31, $0B, $30, $09, $06, $03, + $55, $04, $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, $0A, + $13, $11, $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, + $74, $65, $64, $31, $2A, $30, $28, $06, $03, $55, $04, $03, $13, $21, $43, $65, + $72, $74, $69, $66, $69, $63, $61, $74, $69, $6F, $6E, $20, $41, $75, $74, $68, + $6F, $72, $69, $74, $79, $20, $6F, $66, $20, $57, $6F, $53, $69, $67, $6E, $02, + $10, $5E, $68, $D6, $11, $71, $94, $63, $50, $56, $00, $68, $F3, $3E, $C9, $C5, + $91, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, + $04, $82, $01, $00, $21, $52, $29, $E0, $B7, $77, $A6, $A5, $AB, $15, $51, $94, + $89, $91, $D5, $20, $F5, $D7, $AE, $CF, $CE, $F8, $FB, $F3, $82, $1E, $DB, $19, + $24, $F1, $EC, $B0, $E8, $BB, $E8, $66, $C6, $33, $03, $4E, $55, $C7, $E6, $DE, + $DB, $CF, $E9, $B5, $31, $6F, $C9, $D2, $1D, $FB, $1B, $95, $DE, $3D, $EC, $E5, + $44, $83, $26, $47, $52, $A6, $67, $21, $57, $EF, $F6, $81, $AC, $AD, $15, $05, + $AA, $01, $38, $2C, $17, $A7, $00, $DE, $64, $9C, $CD, $EF, $BC, $0D, $6F, $FE, + $81, $69, $D4, $07, $1B, $D8, $D7, $8B, $C6, $67, $95, $64, $83, $CE, $85, $22, + $CE, $87, $76, $62, $B9, $31, $6F, $66, $18, $FC, $BE, $3F, $6D, $D4, $E6, $2F, + $32, $E7, $BA, $48, $C1, $99, $8C, $64, $38, $88, $B0, $C6, $EC, $46, $A7, $8A, + $50, $C8, $33, $7D, $7F, $7E, $04, $CE, $41, $03, $8E, $33, $D4, $25, $08, $1C, + $77, $63, $B7, $D7, $03, $D7, $DA, $9C, $89, $4F, $07, $B6, $E9, $27, $AD, $A6, + $A6, $85, $B6, $F3, $12, $24, $6B, $2C, $99, $CA, $53, $F6, $D7, $9E, $F7, $A8, + $25, $E2, $21, $A6, $45, $52, $E6, $51, $3B, $62, $31, $49, $20, $67, $EC, $47, + $05, $C2, $6E, $92, $FC, $3F, $A5, $9A, $D9, $7A, $4E, $DF, $39, $2D, $87, $AE, + $7C, $0F, $61, $E4, $49, $62, $32, $AB, $91, $08, $8F, $F8, $75, $AE, $63, $63, + $B7, $62, $18, $5B, $09, $AD, $2A, $75, $7B, $22, $0B, $BA, $7B, $D8, $8F, $00, + $8B, $AF, $90, $B7, $30, $82, $16, $2C, $06, $0A, $2B, $06, $01, $04, $01, $82, + $37, $02, $04, $01, $31, $82, $16, $1C, $30, $82, $16, $18, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $16, $09, $30, $82, $16, $05, $02, + $01, $01, $31, $0F, $30, $0D, $06, $09, $60, $86, $48, $01, $65, $03, $04, $02, + $01, $05, $00, $30, $5C, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, + $04, $A0, $4E, $30, $4C, $30, $17, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, + $02, $01, $0F, $30, $09, $03, $01, $00, $A0, $04, $A2, $02, $80, $00, $30, $31, + $30, $0D, $06, $09, $60, $86, $48, $01, $65, $03, $04, $02, $01, $05, $00, $04, + $20, $3A, $7C, $96, $4E, $A3, $4C, $CE, $8C, $FC, $63, $EB, $3E, $9A, $D4, $B5, + $6A, $AE, $72, $22, $00, $A3, $55, $1D, $F9, $63, $38, $B8, $EA, $7F, $E9, $B8, + $56, $A0, $82, $04, $CE, $30, $82, $04, $CA, $30, $82, $02, $B2, $A0, $03, $02, + $01, $02, $02, $10, $2F, $A7, $24, $D1, $84, $61, $9A, $B9, $40, $B4, $C6, $A5, + $60, $C6, $04, $31, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, + $0B, $05, $00, $30, $54, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, + $43, $4E, $31, $15, $30, $13, $06, $03, $55, $04, $0A, $13, $0C, $53, $75, $70, + $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $2E, $30, $2C, $06, $03, $55, + $04, $03, $13, $25, $53, $75, $70, $65, $72, $20, $52, $6F, $6F, $74, $20, $43, + $65, $72, $74, $69, $66, $69, $63, $61, $74, $65, $20, $41, $75, $74, $68, $6F, + $72, $69, $74, $79, $20, $2D, $20, $47, $32, $30, $1E, $17, $0D, $31, $35, $30, + $35, $30, $34, $31, $36, $30, $30, $30, $30, $5A, $17, $0D, $33, $35, $30, $35, + $30, $34, $31, $36, $30, $30, $30, $30, $5A, $30, $60, $31, $0B, $30, $09, $06, + $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, $30, $13, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $09, $01, $16, $06, $4C, $73, $75, $70, $65, $72, $31, + $15, $30, $13, $06, $03, $55, $04, $0A, $13, $0C, $53, $75, $70, $65, $72, $20, + $53, $74, $75, $64, $69, $6F, $31, $23, $30, $21, $06, $03, $55, $04, $03, $13, + $1A, $53, $75, $70, $65, $72, $20, $43, $6F, $64, $65, $20, $53, $69, $67, $6E, + $69, $6E, $67, $20, $43, $41, $20, $2D, $20, $47, $32, $30, $82, $01, $22, $30, + $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $03, $82, + $01, $0F, $00, $30, $82, $01, $0A, $02, $82, $01, $01, $00, $DD, $1D, $1E, $AE, + $62, $65, $5F, $B5, $3C, $04, $2E, $14, $2E, $79, $E4, $94, $51, $5A, $9A, $FD, + $82, $57, $AD, $DD, $12, $37, $3A, $95, $FF, $43, $0B, $71, $4A, $63, $3F, $B8, + $25, $FC, $91, $DC, $0F, $54, $FB, $39, $76, $E5, $E2, $04, $FF, $7A, $EB, $67, + $8B, $D4, $1E, $67, $BB, $E6, $71, $33, $09, $AC, $D5, $BF, $67, $28, $6C, $2F, + $4C, $DE, $01, $78, $11, $B5, $5E, $72, $B3, $CB, $3C, $16, $48, $71, $EC, $A5, + $97, $31, $13, $45, $32, $1E, $E8, $C5, $99, $CC, $33, $EF, $CB, $4E, $CF, $A9, + $E2, $0B, $0C, $E8, $A3, $B8, $BF, $47, $EF, $E0, $4E, $AA, $79, $ED, $35, $F0, + $7C, $48, $68, $51, $00, $CD, $B0, $40, $60, $43, $45, $28, $7A, $DF, $84, $13, + $A1, $16, $51, $0F, $93, $86, $3F, $53, $A4, $FD, $C5, $BD, $03, $C9, $70, $38, + $93, $17, $18, $9C, $20, $7D, $97, $16, $D9, $19, $40, $1B, $35, $22, $63, $4B, + $0A, $EF, $E1, $C1, $1E, $8A, $C1, $31, $BE, $CA, $33, $04, $E3, $C8, $F9, $DD, + $BB, $A4, $B1, $3E, $1F, $5D, $54, $CC, $E8, $81, $52, $09, $29, $0E, $DE, $BC, + $30, $16, $3E, $C3, $2E, $DF, $44, $93, $F5, $4F, $0D, $49, $AB, $8C, $B3, $B8, + $FE, $19, $88, $E9, $6B, $BC, $7E, $55, $6B, $B5, $13, $B2, $7E, $C9, $D6, $03, + $33, $2F, $A7, $E9, $B5, $45, $BB, $5C, $A5, $C9, $5E, $67, $38, $CC, $18, $2D, + $2E, $85, $00, $FE, $1D, $0F, $1F, $E0, $D7, $24, $BF, $AB, $02, $03, $01, $00, + $01, $A3, $81, $8B, $30, $81, $88, $30, $81, $85, $06, $03, $55, $1D, $01, $04, + $7E, $30, $7C, $80, $10, $7F, $28, $4D, $8C, $3E, $5E, $15, $FF, $B0, $11, $66, + $B1, $16, $C8, $E0, $C9, $A1, $56, $30, $54, $31, $0B, $30, $09, $06, $03, $55, + $04, $06, $13, $02, $43, $4E, $31, $15, $30, $13, $06, $03, $55, $04, $0A, $13, + $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $2E, $30, + $2C, $06, $03, $55, $04, $03, $13, $25, $53, $75, $70, $65, $72, $20, $52, $6F, + $6F, $74, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $65, $20, $41, + $75, $74, $68, $6F, $72, $69, $74, $79, $20, $2D, $20, $47, $32, $82, $10, $FE, + $1E, $21, $8F, $FB, $D4, $48, $BA, $44, $FB, $30, $CF, $DB, $F6, $57, $72, $30, + $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $0B, $05, $00, $03, $82, + $02, $01, $00, $A8, $F1, $42, $48, $8C, $E3, $E3, $8F, $8B, $71, $4E, $50, $34, + $2D, $10, $63, $5C, $B1, $5E, $91, $75, $1E, $24, $E1, $9B, $1C, $60, $80, $A4, + $91, $60, $B9, $09, $01, $74, $E2, $F7, $A1, $D6, $57, $FF, $75, $F1, $B2, $A2, + $CF, $AB, $D1, $77, $67, $EE, $E3, $C4, $57, $CF, $E7, $15, $B5, $CB, $4B, $DF, + $2B, $CD, $D4, $DF, $0B, $F1, $9C, $F1, $F2, $5F, $18, $DB, $45, $6F, $60, $19, + $FC, $01, $4D, $13, $92, $BC, $B6, $FE, $D2, $BA, $A7, $B2, $D4, $28, $13, $E1, + $58, $BD, $E7, $FA, $42, $14, $A3, $B0, $80, $71, $E3, $D1, $FB, $4E, $4B, $FB, + $67, $09, $9E, $14, $9F, $52, $8B, $19, $AE, $C6, $B9, $8B, $AD, $D1, $C9, $C1, + $B8, $F5, $54, $E4, $78, $29, $B0, $D4, $6B, $5E, $45, $B6, $CC, $CE, $12, $2D, + $8A, $6D, $F4, $B3, $E9, $F3, $0C, $7C, $0B, $25, $0A, $C7, $5B, $FA, $48, $29, + $1E, $01, $09, $E5, $F9, $CC, $FE, $B9, $CD, $98, $A6, $68, $F5, $62, $9C, $35, + $DE, $D6, $0A, $30, $34, $6B, $FD, $34, $5F, $8C, $78, $15, $F5, $99, $FE, $D4, + $0D, $C5, $98, $44, $DA, $81, $C1, $36, $40, $BD, $E1, $A5, $3A, $CF, $98, $25, + $DA, $CB, $81, $DF, $1E, $73, $93, $15, $A2, $6A, $C8, $E5, $3F, $59, $69, $7C, + $9A, $DC, $C7, $BE, $D2, $3C, $B0, $BD, $DA, $B9, $1F, $CE, $95, $DB, $A5, $5B, + $24, $46, $7B, $9A, $C3, $FB, $A0, $B0, $1A, $79, $59, $6A, $A1, $91, $AC, $79, + $77, $FD, $CF, $9A, $EB, $C2, $27, $17, $BF, $73, $44, $94, $FE, $E6, $7A, $5C, + $A7, $83, $98, $4A, $F8, $15, $E2, $1E, $57, $CA, $80, $6E, $7D, $1F, $F0, $A6, + $C6, $D5, $9A, $DA, $24, $E6, $35, $7D, $A1, $1E, $BD, $EC, $59, $66, $74, $5B, + $3D, $94, $BF, $CE, $70, $12, $D3, $0F, $46, $5C, $E1, $BE, $28, $3C, $7E, $0D, + $9E, $A2, $E4, $C3, $D6, $2D, $48, $CB, $DA, $FF, $CD, $FD, $58, $00, $C6, $5D, + $6C, $4B, $CB, $49, $58, $2B, $9D, $F7, $92, $D9, $01, $9E, $A1, $A7, $A1, $83, + $A0, $FD, $33, $6C, $23, $DD, $31, $56, $95, $A9, $69, $77, $C9, $56, $35, $40, + $27, $BC, $D7, $30, $2A, $C0, $52, $91, $32, $2E, $AB, $47, $8D, $44, $FE, $15, + $E6, $06, $F1, $F1, $D9, $C3, $1F, $EB, $44, $DB, $71, $03, $D0, $BA, $AE, $5E, + $54, $57, $58, $40, $6D, $B1, $39, $E4, $6A, $73, $D2, $37, $87, $34, $7E, $D6, + $A2, $9E, $2C, $23, $15, $76, $07, $5C, $3A, $C3, $A5, $C6, $EA, $28, $50, $4F, + $4C, $28, $52, $0A, $C1, $F2, $4F, $DD, $82, $24, $5A, $BB, $58, $E4, $0E, $F6, + $F0, $21, $3E, $CA, $DA, $D2, $3F, $D4, $F6, $FF, $70, $C2, $0A, $D8, $77, $BD, + $62, $2C, $1F, $89, $DD, $54, $98, $03, $4A, $6A, $6D, $30, $06, $5D, $89, $F4, + $A2, $2E, $BF, $D8, $BF, $3C, $58, $42, $61, $D7, $7B, $9F, $EF, $B7, $1A, $56, + $10, $02, $D3, $BD, $FA, $0B, $C9, $3D, $68, $17, $88, $EC, $99, $10, $29, $32, + $7D, $E1, $39, $31, $82, $10, $BD, $30, $82, $10, $B9, $02, $01, $01, $30, $68, + $30, $54, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, + $15, $30, $13, $06, $03, $55, $04, $0A, $13, $0C, $53, $75, $70, $65, $72, $20, + $53, $74, $75, $64, $69, $6F, $31, $2E, $30, $2C, $06, $03, $55, $04, $03, $13, + $25, $53, $75, $70, $65, $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, + $69, $66, $69, $63, $61, $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, + $79, $20, $2D, $20, $47, $32, $02, $10, $2F, $A7, $24, $D1, $84, $61, $9A, $B9, + $40, $B4, $C6, $A5, $60, $C6, $04, $31, $30, $0D, $06, $09, $60, $86, $48, $01, + $65, $03, $04, $02, $01, $05, $00, $A0, $81, $A3, $30, $11, $06, $0A, $2A, $86, + $48, $86, $F7, $0D, $01, $09, $19, $04, $31, $03, $02, $01, $01, $30, $19, $06, + $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $03, $31, $0C, $06, $0A, $2B, $06, + $01, $04, $01, $82, $37, $02, $01, $04, $30, $2F, $06, $09, $2A, $86, $48, $86, + $F7, $0D, $01, $09, $04, $31, $22, $04, $20, $BB, $24, $C7, $56, $1A, $E1, $A4, + $15, $AC, $B9, $75, $CD, $1F, $C5, $6E, $AD, $F9, $B0, $2F, $64, $2B, $C4, $44, + $46, $C9, $2E, $AB, $8D, $E0, $37, $A5, $AC, $30, $42, $06, $0A, $2B, $06, $01, + $04, $01, $82, $37, $02, $01, $0C, $31, $34, $30, $32, $A0, $18, $80, $16, $00, + $44, $00, $65, $00, $6C, $00, $70, $00, $68, $00, $69, $00, $20, $00, $4C, $00, + $69, $00, $74, $00, $65, $A1, $16, $80, $14, $77, $77, $77, $2E, $65, $6D, $62, + $61, $72, $63, $61, $64, $65, $72, $6F, $2E, $63, $6F, $6D, $20, $30, $0D, $06, + $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $04, $82, $01, $00, + $BE, $B6, $0F, $57, $99, $86, $CD, $7A, $23, $38, $B3, $6F, $CD, $E9, $34, $A5, + $D7, $E1, $BB, $2D, $F6, $0E, $D0, $83, $91, $05, $53, $50, $CD, $BD, $FF, $48, + $7B, $38, $4C, $4C, $92, $85, $48, $15, $4F, $9D, $38, $60, $3B, $33, $73, $CB, + $AD, $77, $14, $E1, $6E, $81, $B6, $6A, $D3, $B3, $B3, $70, $B3, $3B, $9E, $91, + $E1, $DE, $10, $2A, $0C, $47, $79, $54, $50, $60, $1C, $D0, $91, $0D, $30, $C0, + $DD, $BD, $CE, $69, $AE, $DB, $2D, $C8, $A9, $AA, $4F, $9F, $44, $6C, $E4, $CD, + $59, $08, $BD, $F8, $D6, $A3, $52, $22, $B7, $02, $56, $4F, $DC, $13, $FC, $20, + $2F, $8F, $E4, $7D, $5F, $88, $DF, $41, $D5, $39, $CD, $3C, $E5, $0A, $FB, $03, + $E1, $E3, $22, $F1, $04, $B8, $D3, $82, $90, $CE, $92, $10, $93, $FB, $44, $B8, + $31, $86, $2A, $6F, $33, $76, $42, $9F, $F8, $6D, $64, $BB, $01, $AB, $66, $6A, + $D4, $3E, $5D, $F4, $A3, $04, $0E, $D9, $CB, $BA, $50, $9E, $CF, $2B, $73, $2A, + $A0, $15, $65, $2F, $9C, $EE, $D4, $B0, $F4, $DB, $07, $B6, $CC, $F4, $AD, $49, + $20, $A2, $61, $A1, $2A, $3C, $B1, $6D, $91, $C3, $F8, $38, $FC, $51, $04, $44, + $A2, $30, $BB, $D7, $15, $1A, $27, $30, $D2, $FC, $6A, $12, $81, $4F, $96, $C7, + $F9, $93, $EA, $8E, $F1, $83, $FC, $B4, $12, $22, $5E, $ED, $E1, $E0, $09, $21, + $74, $39, $A1, $59, $42, $24, $83, $24, $71, $33, $FB, $33, $0F, $9E, $7E, $5C, + $A1, $82, $0E, $80, $30, $82, $0E, $7C, $06, $0A, $2B, $06, $01, $04, $01, $82, + $37, $03, $03, $01, $31, $82, $0E, $6C, $30, $82, $0E, $68, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $0E, $59, $30, $82, $0E, $55, $02, + $01, $03, $31, $0B, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, $30, + $81, $CB, $06, $0B, $2A, $86, $48, $86, $F7, $0D, $01, $09, $10, $01, $04, $A0, + $81, $BB, $04, $81, $B8, $30, $81, $B5, $02, $01, $01, $06, $08, $2B, $06, $01, + $04, $01, $EB, $42, $03, $30, $21, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, + $05, $00, $04, $14, $2D, $94, $AB, $30, $94, $02, $56, $C9, $AD, $11, $D2, $4B, + $9C, $46, $0A, $30, $B0, $44, $94, $18, $02, $11, $00, $F0, $9A, $0C, $13, $E2, + $C5, $50, $B9, $10, $5B, $71, $57, $1A, $47, $57, $21, $18, $0F, $32, $30, $31, + $38, $31, $31, $33, $30, $31, $36, $31, $33, $33, $38, $5A, $30, $0A, $02, $01, + $01, $80, $02, $01, $F4, $81, $01, $64, $A0, $53, $A4, $51, $30, $4F, $31, $0B, + $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, + $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, + $4C, $69, $6D, $69, $74, $65, $64, $31, $24, $30, $22, $06, $03, $55, $04, $03, + $13, $1B, $57, $6F, $53, $69, $67, $6E, $20, $54, $69, $6D, $65, $20, $53, $74, + $61, $6D, $70, $69, $6E, $67, $20, $53, $69, $67, $6E, $65, $72, $A0, $82, $0A, + $C3, $30, $82, $05, $45, $30, $82, $03, $2D, $A0, $03, $02, $01, $02, $02, $10, + $25, $1F, $5D, $98, $81, $82, $17, $2E, $3C, $41, $9E, $01, $4F, $B0, $40, $4C, + $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $05, $05, $00, $30, + $55, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $1A, + $30, $18, $06, $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, $6E, $20, + $43, $41, $20, $4C, $69, $6D, $69, $74, $65, $64, $31, $2A, $30, $28, $06, $03, + $55, $04, $03, $13, $21, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $69, + $6F, $6E, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $6F, $66, $20, + $57, $6F, $53, $69, $67, $6E, $30, $1E, $17, $0D, $30, $39, $30, $38, $30, $38, + $30, $31, $30, $30, $30, $35, $5A, $17, $0D, $32, $34, $30, $38, $30, $38, $30, + $31, $30, $30, $30, $35, $5A, $30, $4F, $31, $0B, $30, $09, $06, $03, $55, $04, + $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, $0A, $13, $11, + $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, $74, $65, + $64, $31, $24, $30, $22, $06, $03, $55, $04, $03, $13, $1B, $57, $6F, $53, $69, + $67, $6E, $20, $54, $69, $6D, $65, $20, $53, $74, $61, $6D, $70, $69, $6E, $67, + $20, $53, $69, $67, $6E, $65, $72, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, + $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, + $82, $01, $0A, $02, $82, $01, $01, $00, $A5, $D0, $68, $BA, $82, $CB, $DB, $A7, + $6D, $55, $B9, $31, $A7, $DA, $F4, $9C, $6B, $03, $54, $4F, $A2, $1C, $EF, $1C, + $B5, $96, $44, $1F, $56, $41, $3F, $61, $B0, $03, $59, $4B, $82, $0E, $DB, $15, + $C8, $D0, $CC, $E0, $87, $C6, $09, $75, $8A, $84, $E3, $ED, $97, $C2, $C8, $92, + $34, $C0, $F1, $64, $53, $60, $51, $34, $48, $90, $B1, $4F, $89, $69, $F5, $2E, + $A0, $2A, $16, $54, $2F, $C0, $37, $58, $FF, $35, $52, $1B, $52, $08, $CF, $B9, + $EC, $5A, $27, $52, $5A, $83, $EB, $68, $B1, $B9, $F8, $B2, $A9, $08, $F3, $4F, + $AB, $17, $0F, $2E, $BD, $4F, $E5, $12, $8A, $BF, $7C, $B7, $E7, $65, $32, $3B, + $83, $41, $02, $22, $3A, $24, $3B, $6A, $A3, $3C, $AF, $EB, $79, $42, $17, $56, + $74, $C8, $61, $63, $DD, $8C, $2F, $3E, $EF, $3A, $A3, $47, $52, $04, $3B, $00, + $18, $AE, $26, $71, $E0, $7A, $04, $8D, $75, $82, $2D, $65, $4E, $C1, $B8, $F2, + $8C, $DE, $0F, $63, $03, $D4, $C3, $52, $60, $72, $8C, $88, $CC, $6F, $96, $D5, + $C7, $7D, $29, $DB, $26, $04, $9E, $A2, $B4, $BF, $5A, $B5, $6E, $F2, $46, $0F, + $29, $81, $C5, $C0, $4F, $A6, $87, $8C, $7C, $21, $07, $54, $1F, $50, $F0, $42, + $5C, $55, $7C, $CF, $44, $2E, $41, $3D, $18, $8D, $5F, $D9, $68, $E6, $47, $91, + $8F, $CF, $DC, $7D, $90, $60, $FF, $CB, $48, $E4, $61, $5E, $4F, $73, $45, $0D, + $C8, $34, $89, $03, $D5, $FE, $0B, $C3, $02, $03, $01, $00, $01, $A3, $82, $01, + $15, $30, $82, $01, $11, $30, $0E, $06, $03, $55, $1D, $0F, $01, $01, $FF, $04, + $04, $03, $02, $06, $C0, $30, $16, $06, $03, $55, $1D, $25, $01, $01, $FF, $04, + $0C, $30, $0A, $06, $08, $2B, $06, $01, $05, $05, $07, $03, $08, $30, $0C, $06, + $03, $55, $1D, $13, $01, $01, $FF, $04, $02, $30, $00, $30, $30, $06, $03, $55, + $1D, $1F, $04, $29, $30, $27, $30, $25, $A0, $23, $A0, $21, $86, $1F, $68, $74, + $74, $70, $3A, $2F, $2F, $63, $72, $6C, $73, $31, $2E, $77, $6F, $73, $69, $67, + $6E, $2E, $63, $6F, $6D, $2F, $63, $61, $31, $2E, $63, $72, $6C, $30, $67, $06, + $08, $2B, $06, $01, $05, $05, $07, $01, $01, $04, $5B, $30, $59, $30, $27, $06, + $08, $2B, $06, $01, $05, $05, $07, $30, $01, $86, $1B, $68, $74, $74, $70, $3A, + $2F, $2F, $6F, $63, $73, $70, $31, $2E, $77, $6F, $73, $69, $67, $6E, $2E, $63, + $6F, $6D, $2F, $63, $61, $31, $30, $2E, $06, $08, $2B, $06, $01, $05, $05, $07, + $30, $02, $86, $22, $68, $74, $74, $70, $3A, $2F, $2F, $61, $69, $61, $31, $2E, + $77, $6F, $73, $69, $67, $6E, $2E, $63, $6F, $6D, $2F, $63, $61, $31, $2D, $74, + $73, $61, $2E, $63, $65, $72, $30, $1D, $06, $03, $55, $1D, $0E, $04, $16, $04, + $14, $DF, $6E, $12, $D5, $0C, $54, $2E, $5A, $14, $CA, $DE, $03, $DE, $AB, $4E, + $D4, $98, $0C, $46, $B5, $30, $1F, $06, $03, $55, $1D, $23, $04, $18, $30, $16, + $80, $14, $E1, $66, $CF, $0E, $D1, $F1, $B3, $4B, $B7, $06, $20, $14, $FE, $87, + $12, $D5, $F6, $FE, $FB, $3E, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, + $01, $01, $05, $05, $00, $03, $82, $02, $01, $00, $7C, $98, $2F, $BB, $C3, $D2, + $AE, $C2, $2A, $8F, $A6, $97, $76, $56, $86, $32, $C4, $CD, $36, $68, $8B, $EC, + $D7, $80, $1A, $31, $79, $B0, $5E, $56, $B9, $69, $EB, $B9, $0B, $32, $A9, $83, + $26, $DC, $77, $5D, $7A, $56, $B2, $46, $A0, $7D, $15, $D6, $6D, $F9, $AC, $F8, + $35, $73, $78, $36, $02, $60, $22, $20, $1C, $EF, $18, $8F, $7E, $66, $B2, $4F, + $E7, $71, $93, $5A, $2B, $E6, $E5, $8D, $3D, $5D, $2E, $27, $4B, $46, $CB, $1D, + $04, $F3, $0B, $8C, $3F, $13, $A8, $0D, $D4, $CD, $E8, $28, $E8, $2A, $9C, $55, + $C8, $E3, $FF, $9D, $A9, $22, $49, $6E, $E8, $E7, $88, $92, $37, $57, $80, $60, + $44, $18, $27, $43, $58, $18, $04, $6D, $86, $C0, $65, $47, $05, $57, $55, $50, + $91, $E6, $73, $50, $EE, $3F, $10, $A9, $8F, $05, $2F, $DA, $68, $11, $53, $6E, + $1F, $AD, $98, $F3, $76, $3E, $85, $D0, $57, $A3, $CF, $E4, $C1, $1A, $4C, $64, + $06, $A6, $44, $AB, $4E, $1E, $E2, $4B, $D5, $A4, $6D, $71, $F8, $6B, $CB, $66, + $13, $A6, $47, $1F, $21, $2A, $A1, $AE, $4C, $89, $A4, $7D, $28, $77, $17, $4F, + $88, $8D, $B1, $D1, $5D, $B1, $C4, $93, $5A, $BF, $22, $92, $6C, $AB, $67, $82, + $68, $ED, $D7, $21, $CB, $63, $BC, $93, $C4, $17, $8E, $87, $19, $25, $AD, $17, + $54, $B4, $79, $D2, $A5, $93, $73, $BC, $7C, $BB, $E4, $80, $0F, $8F, $CC, $AA, + $0A, $D0, $E4, $93, $75, $AA, $6C, $CF, $49, $7D, $75, $EC, $82, $28, $5C, $73, + $F0, $42, $BF, $9E, $A6, $13, $2E, $DE, $6C, $EE, $80, $03, $A6, $EE, $88, $36, + $A0, $1B, $B2, $82, $E8, $3D, $BB, $A6, $1A, $D5, $11, $AE, $0A, $0B, $62, $D6, + $51, $36, $97, $23, $17, $52, $26, $ED, $F1, $C5, $B6, $21, $75, $39, $15, $07, + $E0, $42, $F1, $2A, $89, $04, $77, $66, $AD, $14, $04, $D2, $C7, $D4, $7C, $4F, + $6C, $DD, $4E, $DC, $ED, $8E, $A9, $F6, $86, $17, $E7, $E1, $59, $66, $BB, $D0, + $7A, $D0, $94, $42, $EB, $AF, $C1, $54, $CA, $E2, $1A, $A4, $A9, $B6, $A5, $D4, + $81, $CA, $15, $26, $FA, $6F, $B4, $DF, $78, $10, $04, $8C, $48, $18, $BC, $28, + $59, $66, $9A, $B8, $18, $F1, $D9, $5E, $5B, $82, $FF, $FE, $11, $D7, $D4, $04, + $36, $30, $9F, $51, $1D, $3C, $C8, $64, $40, $75, $7C, $D8, $35, $83, $EF, $B1, + $E5, $28, $76, $0A, $05, $3D, $E9, $B8, $1E, $70, $50, $3A, $60, $E2, $A5, $01, + $88, $88, $9C, $04, $CC, $6A, $F2, $15, $85, $D1, $0C, $B7, $4A, $6D, $93, $4E, + $82, $CA, $29, $E9, $75, $0B, $42, $E4, $3A, $47, $24, $08, $6D, $80, $5C, $E6, + $6A, $67, $2C, $B6, $13, $08, $C9, $4F, $D8, $66, $53, $B9, $B6, $7F, $E2, $EA, + $39, $95, $6F, $71, $77, $96, $03, $AF, $B9, $E3, $CC, $E3, $A1, $B9, $F1, $01, + $C6, $6E, $BE, $FC, $97, $5C, $B2, $D1, $F1, $7B, $FB, $33, $C6, $65, $EA, $E6, + $18, $F9, $AB, $3A, $27, $1A, $2D, $20, $6B, $E6, $30, $82, $05, $76, $30, $82, + $03, $5E, $A0, $03, $02, $01, $02, $02, $10, $5E, $68, $D6, $11, $71, $94, $63, + $50, $56, $00, $68, $F3, $3E, $C9, $C5, $91, $30, $0D, $06, $09, $2A, $86, $48, + $86, $F7, $0D, $01, $01, $05, $05, $00, $30, $55, $31, $0B, $30, $09, $06, $03, + $55, $04, $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, $0A, + $13, $11, $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, + $74, $65, $64, $31, $2A, $30, $28, $06, $03, $55, $04, $03, $13, $21, $43, $65, + $72, $74, $69, $66, $69, $63, $61, $74, $69, $6F, $6E, $20, $41, $75, $74, $68, + $6F, $72, $69, $74, $79, $20, $6F, $66, $20, $57, $6F, $53, $69, $67, $6E, $30, + $1E, $17, $0D, $30, $39, $30, $38, $30, $38, $30, $31, $30, $30, $30, $31, $5A, + $17, $0D, $33, $39, $30, $38, $30, $38, $30, $31, $30, $30, $30, $31, $5A, $30, + $55, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $1A, + $30, $18, $06, $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, $6E, $20, + $43, $41, $20, $4C, $69, $6D, $69, $74, $65, $64, $31, $2A, $30, $28, $06, $03, + $55, $04, $03, $13, $21, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $69, + $6F, $6E, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $6F, $66, $20, + $57, $6F, $53, $69, $67, $6E, $30, $82, $02, $22, $30, $0D, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $03, $82, $02, $0F, $00, $30, $82, + $02, $0A, $02, $82, $02, $01, $00, $BD, $CA, $8D, $AC, $B8, $91, $15, $56, $97, + $7B, $6B, $5C, $7A, $C2, $DE, $6B, $D9, $A1, $B0, $C3, $10, $23, $FA, $A7, $A1, + $B2, $CC, $31, $FA, $3E, $D9, $A6, $29, $6F, $16, $3D, $E0, $6B, $F8, $B8, $40, + $5F, $DB, $39, $A8, $00, $7A, $8B, $A0, $4D, $54, $7D, $C2, $22, $78, $FC, $8E, + $09, $B8, $A8, $85, $D7, $CC, $95, $97, $4B, $74, $D8, $9E, $7E, $F0, $00, $E4, + $0E, $89, $AE, $49, $28, $44, $1A, $10, $99, $32, $0F, $25, $88, $53, $A4, $0D, + $B3, $0F, $12, $08, $16, $0B, $03, $71, $27, $1C, $7F, $E1, $DB, $D2, $FD, $67, + $68, $C4, $05, $5D, $0A, $0E, $5D, $70, $D7, $D8, $97, $A0, $BC, $53, $41, $9A, + $91, $8D, $F4, $9E, $36, $66, $7A, $7E, $56, $C1, $90, $5F, $E6, $B1, $68, $20, + $36, $A4, $8C, $24, $2C, $2C, $47, $0B, $59, $76, $66, $30, $B5, $BE, $DE, $ED, + $8F, $F8, $9D, $D3, $BB, $01, $30, $E6, $F2, $F3, $0E, $E0, $2C, $92, $80, $F3, + $85, $F9, $28, $8A, $B4, $54, $2E, $9A, $ED, $F7, $76, $FC, $15, $68, $16, $EB, + $4A, $6C, $EB, $2E, $12, $8F, $D4, $CF, $FE, $0C, $C7, $5C, $1D, $0B, $7E, $05, + $32, $BE, $5E, $B0, $09, $2A, $42, $D5, $C9, $4E, $90, $B3, $59, $0D, $BB, $7A, + $7E, $CD, $D5, $08, $5A, $B4, $7F, $D8, $1C, $69, $11, $F9, $27, $0F, $7B, $06, + $AF, $54, $83, $18, $7B, $E1, $DD, $54, $7A, $51, $68, $6E, $77, $FC, $C6, $BF, + $52, $4A, $66, $46, $A1, $B2, $67, $1A, $BB, $A3, $4F, $77, $A0, $BE, $5D, $FF, + $FC, $56, $0B, $43, $72, $77, $90, $CA, $9E, $F9, $F2, $39, $F5, $0D, $A9, $F4, + $EA, $D7, $E7, $B3, $10, $2F, $30, $42, $37, $21, $CC, $30, $70, $C9, $86, $98, + $0F, $CC, $58, $4D, $83, $BB, $7D, $E5, $1A, $A5, $37, $8D, $B6, $AC, $32, $97, + $00, $3A, $63, $71, $24, $1E, $9E, $37, $C4, $FF, $74, $D4, $37, $C0, $E2, $FE, + $88, $46, $60, $11, $DD, $08, $3F, $50, $36, $AB, $B8, $7A, $A4, $95, $62, $6A, + $6E, $B0, $CA, $6A, $21, $5A, $69, $F3, $F3, $FB, $1D, $70, $39, $95, $F3, $A7, + $6E, $A6, $81, $89, $A1, $88, $C5, $3B, $71, $CA, $A3, $52, $EE, $83, $BB, $FD, + $A0, $77, $F4, $E4, $6F, $E7, $42, $DB, $6D, $4A, $99, $8A, $34, $48, $BC, $17, + $DC, $E4, $80, $08, $22, $B6, $F2, $31, $C0, $3F, $04, $3E, $EB, $9F, $20, $79, + $D6, $B8, $06, $64, $64, $02, $31, $D7, $A9, $CD, $52, $FB, $84, $45, $69, $09, + $00, $2A, $DC, $55, $8B, $C4, $06, $46, $4B, $C0, $4A, $1D, $09, $5B, $39, $28, + $FD, $A9, $AB, $CE, $00, $F9, $2E, $48, $4B, $26, $E6, $30, $4C, $A5, $58, $CA, + $B4, $44, $82, $4F, $E7, $91, $1E, $33, $C3, $B0, $93, $FF, $11, $FC, $81, $D2, + $CA, $1F, $71, $29, $DD, $76, $4F, $92, $25, $AF, $1D, $81, $B7, $0F, $2F, $8C, + $C3, $06, $CC, $2F, $27, $A3, $4A, $E4, $0E, $99, $BA, $7C, $1E, $45, $1F, $7F, + $AA, $19, $45, $96, $FD, $FC, $3D, $02, $03, $01, $00, $01, $A3, $42, $30, $40, + $30, $0E, $06, $03, $55, $1D, $0F, $01, $01, $FF, $04, $04, $03, $02, $01, $06, + $30, $0F, $06, $03, $55, $1D, $13, $01, $01, $FF, $04, $05, $30, $03, $01, $01, + $FF, $30, $1D, $06, $03, $55, $1D, $0E, $04, $16, $04, $14, $E1, $66, $CF, $0E, + $D1, $F1, $B3, $4B, $B7, $06, $20, $14, $FE, $87, $12, $D5, $F6, $FE, $FB, $3E, + $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $05, $05, $00, $03, + $82, $02, $01, $00, $A8, $CB, $72, $40, $B2, $76, $C1, $7E, $7B, $FC, $AD, $64, + $E3, $32, $7B, $CC, $3C, $B6, $5D, $46, $D3, $F5, $2C, $E2, $70, $5D, $C8, $2E, + $D8, $06, $7D, $98, $D1, $0B, $21, $A0, $89, $59, $24, $01, $9D, $F9, $AF, $09, + $7D, $0A, $23, $82, $34, $D5, $FC, $7C, $72, $99, $B9, $A3, $D7, $54, $F4, $EA, + $52, $70, $0E, $C5, $F5, $D6, $3B, $E1, $3A, $09, $32, $E6, $21, $39, $93, $BD, + $B3, $15, $EA, $4F, $6A, $F4, $F5, $8B, $3F, $2F, $7C, $8D, $58, $2E, $C5, $E1, + $39, $A0, $3E, $C7, $3D, $4A, $73, $9E, $40, $7A, $C0, $2B, $61, $A9, $67, $C9, + $F3, $24, $B9, $B3, $6D, $55, $2C, $5A, $1D, $9E, $25, $72, $CE, $0B, $AD, $AA, + $C7, $55, $62, $0B, $BE, $FB, $63, $B3, $61, $44, $23, $A3, $CB, $E1, $1A, $0E, + $F7, $9A, $06, $4D, $DE, $D4, $23, $4E, $21, $96, $5B, $39, $5B, $57, $1D, $2F, + $5D, $08, $5E, $09, $79, $FF, $7C, $97, $B5, $4D, $83, $AE, $0D, $D6, $E6, $A3, + $79, $E0, $33, $D0, $99, $96, $02, $30, $A7, $3E, $FF, $D2, $A3, $43, $3F, $05, + $5A, $06, $EA, $44, $02, $DA, $7C, $F8, $48, $D0, $33, $A9, $F9, $07, $C7, $95, + $E1, $F5, $3E, $F5, $5D, $71, $BA, $F2, $95, $A9, $74, $88, $61, $59, $E3, $BF, + $CA, $5A, $13, $BA, $72, $B4, $8C, $5D, $36, $87, $E9, $A6, $C5, $3C, $13, $BF, + $DE, $D0, $44, $26, $EE, $B7, $EC, $2E, $70, $FA, $D7, $9D, $B7, $AC, $E5, $C5, + $40, $5A, $E6, $D7, $6C, $7B, $2C, $C3, $56, $9B, $47, $CD, $0B, $CE, $FA, $1B, + $B4, $21, $D7, $B7, $66, $B8, $F4, $25, $30, $8B, $5C, $0D, $B9, $EA, $67, $B2, + $F4, $6D, $AE, $D5, $A1, $9E, $4F, $D8, $9F, $E9, $27, $02, $B0, $1D, $06, $D6, + $8F, $E3, $FB, $48, $12, $9F, $7F, $11, $A1, $10, $3E, $4C, $51, $3A, $96, $B0, + $D1, $13, $F1, $C7, $D8, $26, $AE, $3A, $CA, $91, $C4, $69, $9D, $DF, $01, $29, + $64, $51, $6F, $68, $DA, $14, $EC, $08, $41, $97, $90, $8D, $D0, $B2, $80, $F2, + $CF, $C2, $3D, $BF, $91, $68, $C5, $80, $67, $1E, $C4, $60, $13, $55, $D5, $61, + $99, $57, $7C, $BA, $95, $0F, $61, $49, $3A, $CA, $75, $BC, $C9, $0A, $93, $3F, + $67, $0E, $12, $F2, $28, $E2, $31, $1B, $C0, $57, $16, $DF, $08, $7C, $19, $C1, + $7E, $0F, $1F, $85, $1E, $0A, $36, $7C, $5B, $7E, $27, $BC, $7A, $BF, $E0, $DB, + $F4, $DA, $52, $BD, $DE, $0C, $54, $70, $31, $91, $43, $95, $C8, $BC, $F0, $3E, + $DD, $09, $7E, $30, $64, $50, $ED, $7F, $01, $A4, $33, $67, $4D, $68, $4F, $BE, + $15, $EF, $B0, $F6, $02, $11, $A2, $1B, $13, $25, $3A, $DC, $C2, $59, $F1, $E3, + $5C, $46, $BB, $67, $2C, $02, $46, $EA, $1E, $48, $A6, $E6, $5B, $D9, $B5, $BC, + $51, $A2, $92, $96, $DB, $AA, $C6, $37, $22, $A6, $FE, $CC, $20, $74, $A3, $2D, + $A9, $2E, $6B, $CB, $C0, $82, $11, $21, $B5, $93, $79, $EE, $44, $86, $BE, $D7, + $1E, $E4, $1E, $FB, $31, $82, $02, $AC, $30, $82, $02, $A8, $02, $01, $01, $30, + $69, $30, $55, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, + $31, $1A, $30, $18, $06, $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, + $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, $74, $65, $64, $31, $2A, $30, $28, + $06, $03, $55, $04, $03, $13, $21, $43, $65, $72, $74, $69, $66, $69, $63, $61, + $74, $69, $6F, $6E, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $6F, + $66, $20, $57, $6F, $53, $69, $67, $6E, $02, $10, $25, $1F, $5D, $98, $81, $82, + $17, $2E, $3C, $41, $9E, $01, $4F, $B0, $40, $4C, $30, $09, $06, $05, $2B, $0E, + $03, $02, $1A, $05, $00, $A0, $82, $01, $18, $30, $1A, $06, $09, $2A, $86, $48, + $86, $F7, $0D, $01, $09, $03, $31, $0D, $06, $0B, $2A, $86, $48, $86, $F7, $0D, + $01, $09, $10, $01, $04, $30, $1C, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $09, $05, $31, $0F, $17, $0D, $31, $38, $31, $31, $33, $30, $31, $36, $31, $33, + $33, $38, $5A, $30, $23, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $04, + $31, $16, $04, $14, $40, $9A, $86, $46, $DF, $CE, $F4, $78, $04, $F7, $E9, $F8, + $E8, $C4, $AF, $AE, $EF, $AB, $68, $1F, $30, $81, $B6, $06, $0B, $2A, $86, $48, + $86, $F7, $0D, $01, $09, $10, $02, $0C, $31, $81, $A6, $30, $81, $A3, $30, $81, + $A0, $30, $16, $04, $14, $54, $09, $B5, $6C, $89, $BB, $1A, $88, $1D, $E1, $A3, + $2C, $95, $0D, $40, $FD, $6B, $94, $C7, $4E, $30, $81, $85, $04, $14, $B9, $42, + $94, $BF, $91, $EA, $8F, $B6, $4B, $E6, $10, $97, $C7, $FB, $00, $13, $59, $B6, + $76, $CB, $30, $6D, $30, $59, $A4, $57, $30, $55, $31, $0B, $30, $09, $06, $03, + $55, $04, $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, $0A, + $13, $11, $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, + $74, $65, $64, $31, $2A, $30, $28, $06, $03, $55, $04, $03, $13, $21, $43, $65, + $72, $74, $69, $66, $69, $63, $61, $74, $69, $6F, $6E, $20, $41, $75, $74, $68, + $6F, $72, $69, $74, $79, $20, $6F, $66, $20, $57, $6F, $53, $69, $67, $6E, $02, + $10, $5E, $68, $D6, $11, $71, $94, $63, $50, $56, $00, $68, $F3, $3E, $C9, $C5, + $91, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, + $04, $82, $01, $00, $36, $C5, $FD, $B8, $F4, $F9, $A6, $DB, $06, $F0, $4E, $97, + $D4, $CA, $21, $30, $03, $45, $30, $27, $38, $36, $05, $78, $67, $BD, $C2, $E9, + $6C, $00, $E0, $FE, $D7, $0D, $43, $76, $24, $B4, $86, $4E, $F1, $71, $FD, $F0, + $19, $2D, $B2, $88, $0D, $54, $FA, $BA, $E3, $C9, $90, $E1, $BE, $75, $AA, $76, + $64, $F3, $5E, $5E, $86, $35, $B2, $FF, $DE, $66, $82, $E9, $29, $83, $5C, $DB, + $B6, $79, $35, $1C, $F2, $FD, $94, $65, $C2, $4B, $AA, $A8, $DB, $CB, $E0, $9E, + $6A, $77, $EE, $2A, $1B, $61, $F1, $F2, $83, $64, $AA, $A2, $32, $B8, $3D, $84, + $17, $89, $24, $13, $4F, $BB, $7E, $CE, $6F, $A3, $B2, $8B, $27, $1A, $7C, $6C, + $2A, $F8, $96, $AD, $87, $7F, $48, $38, $4A, $71, $13, $B5, $54, $1B, $05, $94, + $ED, $51, $54, $A2, $91, $B1, $C7, $3B, $CA, $81, $C2, $F0, $90, $1F, $7B, $F9, + $04, $44, $6C, $01, $11, $BA, $1E, $C7, $6D, $A8, $78, $00, $66, $36, $CB, $18, + $86, $8C, $67, $D4, $2B, $34, $3B, $51, $22, $CC, $6F, $D0, $05, $6C, $BE, $07, + $D9, $39, $CC, $58, $16, $3B, $D8, $19, $D2, $04, $14, $9E, $4D, $05, $CF, $3F, + $83, $B0, $1D, $D9, $15, $09, $E9, $F3, $FD, $34, $5B, $5E, $56, $2E, $30, $1C, + $61, $7C, $01, $C5, $39, $71, $B4, $04, $23, $7E, $33, $AB, $F6, $60, $74, $0B, + $FB, $A9, $93, $6C, $37, $48, $25, $B1, $6A, $C2, $B9, $7C, $39, $11, $C9, $88, + $EA, $9C, $83, $D6, $00, $00, $00, $00 + ); + diff --git a/10.3.0/Activator/PatchData.pas b/10.3.0/Activator/PatchData.pas new file mode 100644 index 0000000..4ac0440 --- /dev/null +++ b/10.3.0/Activator/PatchData.pas @@ -0,0 +1,26 @@ +{ *********************************************************************** } +{ } +{ ߵԪ } +{ } +{ ƣLsuper 2013.02.16 } +{ ע } +{ ˣ } +{ } +{ Copyright (c) 1998-2014 Super Studio } +{ } +{ *********************************************************************** } + +unit PatchData; + +interface + +uses + SysUtils, Classes; + +const + +{$I PatchData.inc} { ļ } + +implementation + +end. diff --git a/10.3.0/Activator/TMainForm.inc b/10.3.0/Activator/TMainForm.inc new file mode 100644 index 0000000..5de11a9 --- /dev/null +++ b/10.3.0/Activator/TMainForm.inc @@ -0,0 +1 @@ +TMainForm = class(TObj) diff --git a/10.3.0/Activator/TMainFormclass.inc b/10.3.0/Activator/TMainFormclass.inc new file mode 100644 index 0000000..547a4cd --- /dev/null +++ b/10.3.0/Activator/TMainFormclass.inc @@ -0,0 +1 @@ +TMainForm = class; PMainForm = TMainForm; diff --git a/10.3.0/Activator/WinUtils.pas b/10.3.0/Activator/WinUtils.pas new file mode 100644 index 0000000..7168e4e --- /dev/null +++ b/10.3.0/Activator/WinUtils.pas @@ -0,0 +1,383 @@ +{ *********************************************************************** } +{ } +{ Win Ԫ } +{ } +{ ƣLsuper 2013.04.26 } +{ ע } +{ ˣ } +{ } +{ Copyright (c) 1998-2014 Super Studio } +{ } +{ *********************************************************************** } + +unit WinUtils; + +{$WARNINGS OFF} + +interface + +uses + SysUtils, Windows; + +function GetCommandLineOutput(const ACommandLine, AWorkDir: string; + out ExitCode: LongWord): string; +function GetFileBuildVersion(const AFile: string): Integer; +function GetShellFolderPath(nFolder: Integer): string; +function GetWindowsPath: string; + +function TaskMessageBox(const AHandle: THandle; const AText, ACaption: string; + const Icon, Buttons: Integer): Integer; +function IsWindowsVista: Boolean; + +procedure Delay(ASeconds: Double); + +function CreateProcessEx(lpApplicationName: PChar; lpCommandLine: PChar; + lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; + bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; + lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo; + var lpProcessInformation: TProcessInformation; const ALibraryName: AnsiString): Boolean; +function InjectLibraryModule(AProcessID: LongWord; const ALibraryName: AnsiString): Boolean; + +procedure LogMessage(const AMessage: string); + +procedure ShowMessage(const ACaption, AMessage: string); +procedure ShowError(const AMessage: string); + +procedure SetMainFormHandle(const AHandle: HWND); + +implementation + +uses + ShlObj; + +const + TD_BUTTON_OK = 01; + TD_BUTTON_YES = 02; + TD_BUTTON_NO = 04; + TD_BUTTON_CANCEL = 08; + TD_BUTTON_RETRY = 16; + TD_BUTTON_CLOSE = 32; + + TD_ICON_BLANK = 00; + TD_ICON_WARNING = 84; + TD_ICON_QUESTION = 99; + TD_ICON_ERROR = 98; + TD_ICON_INFORMATION = 81; + + TD_ICON_SHIELD_QUESTION = 104; + TD_ICON_SHIELD_ERROR = 105; + TD_ICON_SHIELD_OK = 106; + TD_ICON_SHIELD_WARNING = 107; + +var + MainFormHandle: HWND = 0; + +//////////////////////////////////////////////////////////////////////////////// +// ˵ӳn +// ASeconds -- ӳ +//////////////////////////////////////////////////////////////////////////////// +procedure Delay(ASeconds: Double); + //////////////////////////////////////////////////////////////////////////////// + //: Lsuper 2004.11.10 + //: Ϣѭֹ + // + //////////////////////////////////////////////////////////////////////////////// + procedure ProcessMessages; + const + WM_QUIT = $0012; + var + Msg: TMsg; + begin + while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do + begin + if Msg.Message = WM_QUIT then + Halt(Msg.wParam); + TranslateMessage(Msg); + DispatchMessage(Msg); + end; + end; +var + nTimeOut: TDateTime; + nHours, nMins, nSeconds, nMilliSecs: Integer; +begin + nSeconds := Trunc(ASeconds); + nMilliSecs := Round(Frac(ASeconds) * 1000); + nHours := nSeconds div 3600; + nMins := (nSeconds mod 3600) div 60; + nSeconds := nSeconds mod 60; + nTimeOut := Now + EncodeTime(nHours, nMins, nSeconds, nMilliSecs); + // wait until the TimeOut time + while Now < nTimeOut do + ProcessMessages; +end; + +//////////////////////////////////////////////////////////////////////////////// +//: Lsuper 2003.09.21 +//: ȡе +// +//////////////////////////////////////////////////////////////////////////////// +function GetCommandLineOutput(const ACommandLine, AWorkDir: string; + out ExitCode: LongWord): string; +var + strCommandLine, + strWorkDir: string; + strOutLine, + strBuffer: AnsiString; + bRunResult: Boolean; + nBytesRead: Cardinal; + nStdOutPipeRead, + nStdOutPipeWrite: THandle; + PI: TProcessInformation; + SA: TSecurityAttributes; + SI: TStartupInfo; +begin + with SA do + begin + nLength := SizeOf(SA); + bInheritHandle := True; + lpSecurityDescriptor := nil; + end; + if not CreatePipe(nStdOutPipeRead, nStdOutPipeWrite, @SA, 0) then + RaiseLastOSError; + try + with SI do + begin + FillChar(SI, SizeOf(SI), 0); + cb := SizeOf(SI); + dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES; + wShowWindow := SW_HIDE; + hStdInput := GetStdHandle(STD_INPUT_HANDLE); + hStdOutput := nStdOutPipeWrite; + hStdError := nStdOutPipeWrite; + end; + if DirectoryExists(AWorkDir) then + strWorkDir := AWorkDir + else strWorkDir := GetCurrentDir; + strCommandLine := ACommandLine; + UniqueString(strCommandLine); + bRunResult := CreateProcess(nil, PChar(strCommandLine), nil, nil, True, 0, nil, + PChar(strWorkDir), SI, PI); + CloseHandle(nStdOutPipeWrite); + if bRunResult then + try + strOutLine := ''; + SetLength(strBuffer, MAXBYTE); + repeat + nBytesRead := 0; + bRunResult := ReadFile(nStdOutPipeRead, PAnsiChar(strBuffer)^, Length(strBuffer), nBytesRead, nil); + if nBytesRead > 0 then + strOutLine := strOutLine + Copy(strBuffer, 1, nBytesRead); + until not bRunResult or (nBytesRead = 0); + WaitForSingleObject(PI.hProcess, INFINITE); + GetExitCodeProcess(PI.hProcess, ExitCode); + finally + CloseHandle(PI.hThread); + CloseHandle(PI.hProcess); + end + else RaiseLastOSError; + finally + CloseHandle(nStdOutPipeRead); + Result := string(strOutLine); + end; +end; + +function GetFileBuildVersion(const AFile: string): Integer; +var + nInfoSize, dwHandle: DWORD; + cFileInfo: PVSFixedFileInfo; + nVerSize: DWORD; + strBuffer: AnsiString; +begin + Result := 0; + nInfoSize := GetFileVersionInfoSize(PChar(AFile), dwHandle); + if nInfoSize = 0 then + Exit; + SetLength(strBuffer, nInfoSize); + if not GetFileVersionInfo(PChar(AFile), dwHandle, nInfoSize, Pointer(strBuffer)) then + Exit; + if VerQueryValue(Pointer(strBuffer), '\', Pointer(cFileInfo), nVerSize) then + Result := LOWORD(cFileInfo.dwFileVersionLS); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2010.04.09 +//ܣȡ Shell ļλã GetSpecialFolderPath(CSIDL_COMMON_APPDATA) +// +//////////////////////////////////////////////////////////////////////////////// +function GetShellFolderPath(nFolder: Integer): string; +begin + SetLength(Result, MAX_PATH); + SHGetSpecialFolderPath(0, PChar(Result), nFolder, False); + SetLength(Result, StrLen(PChar(Result))); + if (Result <> '') and (Result[Length(Result)] <> '\') then + Result := Result + '\'; +end; + +function GetWindowsPath: string; +var + nRet: LongWord; +begin + SetLength(Result, MAX_PATH); + nRet := GetWindowsDirectory(PChar(Result), MAX_PATH); + if nRet = 0 then + Result := '' + else begin + SetLength(Result, nRet); + if (Result <> '') and (Result[Length(Result)] <> '\') then + Result := Result + '\'; + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.05.01 +//ܣע +// +//ע⣺ 500ms ȴʱ䣬ȷ dll سɹִ +//////////////////////////////////////////////////////////////////////////////// +function CreateProcessEx(lpApplicationName: PChar; lpCommandLine: PChar; + lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; + bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; + lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo; + var lpProcessInformation: TProcessInformation; const ALibraryName: AnsiString): Boolean; +begin + Result := False; + if not CreateProcess(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags or CREATE_SUSPENDED, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) then + Exit; + Result := InjectLibraryModule(lpProcessInformation.hProcess, ALibraryName); +{ + Result := uallHook.InjectLibrary(lpProcessInformation.dwProcessId, PChar(ALibraryName)); +} + Sleep(500); + ResumeThread(lpProcessInformation.hThread); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.05.01 +//ܣע DLL +// +//////////////////////////////////////////////////////////////////////////////// +function InjectLibraryModule(AProcessID: LongWord; const ALibraryName: AnsiString): Boolean; +var + dwProcessID2: DWord; + dwMemSize: DWord; + dwWritten: DWord; + dwThreadID: DWord; + pLLA: Pointer; + pTargetMemory: Pointer; +begin + Assert(ALibraryName <> ''); + Result := False; + dwProcessID2 := OpenProcess(PROCESS_ALL_ACCESS, False, AProcessID); + if (dwProcessID2 <> 0) then + AProcessID := dwProcessID2; + dwMemSize := Length(ALibraryName) + 1; + pTargetMemory := VirtualAllocEx(AProcessID, nil, dwMemSize, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE); + pLLA := GetProcAddress(GetModuleHandleA('kernel32.dll'), 'LoadLibraryA'); + if (pLLA <> nil) and (pTargetMemory <> nil) then + begin + if WriteProcessMemory(AProcessID, pTargetMemory, PChar(ALibraryName), dwMemSize, dwWritten) and (dwWritten = dwMemSize) then + Result := CreateRemoteThread(AProcessID, nil, 0, pLLA, pTargetMemory, 0, dwThreadID) <> 0; + end; + if (dwProcessID2 <> 0) then + CloseHandle(dwProcessID2); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2009.10.25 +//ܣжǷ Vista/7 +// +//////////////////////////////////////////////////////////////////////////////// +function IsWindowsVista: Boolean; +var + hKernel32: HMODULE; +begin + hKernel32 := GetModuleHandle('kernel32'); + if hKernel32 > 0 then + Result := GetProcAddress(hKernel32, 'GetLocaleInfoEx') <> nil + else Result := false; +end; + +procedure LogMessage(const AMessage: string); +begin + OutputDebugString(PChar(AMessage)); +end; + +procedure SetMainFormHandle(const AHandle: HWND); +begin + MainFormHandle := AHandle; +end; + +procedure ShowError(const AMessage: string); +begin + TaskMessageBox(MainFormHandle, AMessage, 'Error', TD_ICON_ERROR, TD_BUTTON_OK); +end; + +procedure ShowMessage(const ACaption, AMessage: string); +begin + TaskMessageBox(MainFormHandle, AMessage, ACaption, TD_ICON_INFORMATION, TD_BUTTON_OK); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2009.10.25 +//: ڲʹõʾԻĺӦ Vista/7 ϵͳ +// +//ע⣺ο Application MessageBox Dialogs 룬Զʾжϴ +// http://www.tmssoftware.com/site/atbdev5.asp +//////////////////////////////////////////////////////////////////////////////// +function TaskMessageBox(const AHandle: THandle; const AText, ACaption: string; + const Icon, Buttons: Integer): Integer; +const + conTaskDialogProcName = 'TaskDialog'; +var + DLLHandle: THandle; + wTitle, wContent: array[0..1024] of widechar; + TaskDialogProc: function(HWND: THandle; hInstance: THandle; cTitle, + cDescription, cContent: PWideChar; Buttons: Integer; Icon: Integer; + ResButton: PInteger): Integer; cdecl stdcall; + Flags: Integer; +begin + Result := 0; + if IsWindowsVista then + begin + DLLHandle := LoadLibrary(comctl32); + @TaskDialogProc := GetProcAddress(DLLHandle, conTaskDialogProcName); + end + else TaskDialogProc := nil; + if Assigned(TaskDialogProc) then + begin + StringToWideChar(ACaption, wTitle, SizeOf(wTitle)); + StringToWideChar(AText, wContent, SizeOf(wContent)); + TaskDialogProc(AHandle, 0, wTitle, nil, wContent, Buttons, Icon, @Result); + end + else begin + Flags := 0; + if Buttons = TD_BUTTON_OK then + Flags := MB_OK; + if Buttons = TD_BUTTON_OK or TD_BUTTON_CANCEL then + Flags := MB_OKCANCEL; + if Buttons = TD_BUTTON_CLOSE or TD_BUTTON_RETRY or TD_BUTTON_CANCEL then + Flags := MB_ABORTRETRYIGNORE; + if Buttons = TD_BUTTON_YES or TD_BUTTON_NO or TD_BUTTON_CANCEL then + Flags := MB_YESNOCANCEL; + if Buttons = TD_BUTTON_YES or TD_BUTTON_NO then + Flags := MB_YESNO; + if Buttons = TD_BUTTON_RETRY or TD_BUTTON_CANCEL then + Flags := MB_RETRYCANCEL; + case Icon of + TD_ICON_BLANK: + ; + TD_ICON_WARNING, TD_ICON_SHIELD_WARNING: + Flags := Flags or MB_ICONWARNING; + TD_ICON_QUESTION, TD_ICON_SHIELD_QUESTION: + Flags := Flags or MB_ICONQUESTION; + TD_ICON_ERROR, TD_ICON_SHIELD_ERROR: + Flags := Flags or MB_ICONERROR; + TD_ICON_INFORMATION, TD_ICON_SHIELD_OK: + Flags := Flags or MB_ICONINFORMATION; + end; + Result := Windows.MessageBox(AHandle, PChar(AText), PChar(ACaption), Flags); + end; +end; + +end. + diff --git a/10.3.0/Activator/uses.inc b/10.3.0/Activator/uses.inc new file mode 100644 index 0000000..62c25ab --- /dev/null +++ b/10.3.0/Activator/uses.inc @@ -0,0 +1,9 @@ +{ KOL MCK } // Do not remove this line! +{ uses.inc + This file is generated automatically - do not modify it manually. + It is included to be recognized by compiler, but replacing word + with compiler directive <$I uses.inc> fakes auto-completion + preventing it from automatic references adding to VCL units into + uses clause aimed for KOL environment only. } + +uses diff --git a/10.3.0/Dcu/dirinfo.txt b/10.3.0/Dcu/dirinfo.txt new file mode 100644 index 0000000..38bc9b2 --- /dev/null +++ b/10.3.0/Dcu/dirinfo.txt @@ -0,0 +1 @@ +This directory is intended as a common place for sample application's EXE files \ No newline at end of file diff --git a/10.3.0/Keygen/AnsiStrings.pas b/10.3.0/Keygen/AnsiStrings.pas new file mode 100644 index 0000000..a0e5ad5 --- /dev/null +++ b/10.3.0/Keygen/AnsiStrings.pas @@ -0,0 +1,7 @@ +unit AnsiStrings; + +interface + +implementation + +end. diff --git a/10.3.0/Keygen/FGInt.pas b/10.3.0/Keygen/FGInt.pas new file mode 100644 index 0000000..e0e032c --- /dev/null +++ b/10.3.0/Keygen/FGInt.pas @@ -0,0 +1,2282 @@ +{License, info, etc + ------------------ +This implementation is made by me, Walied Othman, to contact me +mail to rainwolf@submanifold.be or triade@submanifold.be , +always mention wether it 's about the FGInt or about the 6xs, +preferably in the subject line. +This source code is free, but only to other free software, +it's a two-way street, if you use this code in an application from which +you won't make any money of (e.g. software for the good of mankind) +then go right ahead, I won't stop you, I do demand acknowledgement for +my work. However, if you're using this code in a commercial application, +an application from which you'll make money, then yes, I charge a +license-fee, as described in the license agreement for commercial use, see +the textfile in this zip-file. +If you 're going to use these implementations, let me know, so I ca, put a link +on my page if desired, I 'm always curious as to see where the spawn of my +mind ends up in. If any algorithm is patented in your country, you should +acquire a license before using this software. Modified versions of this +software must contain an acknowledgement of the original author (=me). + +This implementation is available at +http://www.submanifold.be + +copyright 2000, Walied Othman +This header may not be removed.} + +Unit FGInt; + +{$H+} + +{$WARN COMBINING_SIGNED_UNSIGNED OFF} + +Interface + +Uses SysUtils, Math; + +Type + TCompare = (Lt, St, Eq, Er); + TSign = (negative, positive); + TFGInt = Record + Sign : TSign; + Number : Array Of LongWord; + End; + +Procedure zeronetochar8(Var g : AnsiChar; Const x : AnsiString); +Procedure zeronetochar6(Var g : integer; Const x : AnsiString); +Procedure initialize8(Var trans : Array Of AnsiString); +Procedure initialize6(Var trans : Array Of AnsiString); +Procedure initialize6PGP(Var trans : Array Of AnsiString); +Procedure ConvertBase256to64(Const str256 : AnsiString; Var str64 : AnsiString); +Procedure ConvertBase64to256(Const str64 : AnsiString; Var str256 : AnsiString); +Procedure ConvertBase256to2(Const str256 : AnsiString; Var str2 : AnsiString); +Procedure ConvertBase64to2(Const str64 : AnsiString; Var str2 : AnsiString); +Procedure ConvertBase2to256(str2 : AnsiString; Var str256 : AnsiString); +Procedure ConvertBase2to64(str2 : AnsiString; Var str64 : AnsiString); +Procedure ConvertBase256StringToHexString(Str256 : AnsiString; Var HexStr : AnsiString); +Procedure ConvertHexStringToBase256String(HexStr : AnsiString; Var Str256 : AnsiString); +Procedure PGPConvertBase256to64(Var str256, str64 : AnsiString); +Procedure PGPConvertBase64to256(str64 : AnsiString; Var str256 : AnsiString); +Procedure PGPConvertBase64to2(str64 : AnsiString; Var str2 : AnsiString); +Procedure FGIntToBase2String(Const FGInt : TFGInt; Var S : AnsiString); +Procedure Base2StringToFGInt(S : AnsiString; Var FGInt : TFGInt); +Procedure FGIntToBase256String(Const FGInt : TFGInt; Var str256 : AnsiString); +Procedure Base256StringToFGInt(str256 : AnsiString; Var FGInt : TFGInt); +Procedure PGPMPIToFGInt(PGPMPI : AnsiString; Var FGInt : TFGInt); +Procedure FGIntToPGPMPI(FGInt : TFGInt; Var PGPMPI : AnsiString); +Procedure Base10StringToFGInt(Base10 : AnsiString; Var FGInt : TFGInt); +Procedure FGIntToBase10String(Const FGInt : TFGInt; Var Base10 : AnsiString); +Procedure FGIntDestroy(Var FGInt : TFGInt); +Function FGIntCompareAbs(Const FGInt1, FGInt2 : TFGInt) : TCompare; +Procedure FGIntAdd(Const FGInt1, FGInt2 : TFGInt; Var Sum : TFGInt); +Procedure FGIntChangeSign(Var FGInt : TFGInt); +Procedure FGIntSub(Var FGInt1, FGInt2, dif : TFGInt); +Procedure FGIntMulByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord); +Procedure FGIntMulByIntbis(Var FGInt : TFGInt; by : LongWord); +Procedure FGIntDivByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord; Var modres : LongWord); +Procedure FGIntDivByIntBis(Var FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Procedure FGIntModByInt(Const FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Procedure FGIntAbs(Var FGInt : TFGInt); +Procedure FGIntCopy(Const FGInt1 : TFGInt; Var FGInt2 : TFGInt); +Procedure FGIntShiftLeft(Var FGInt : TFGInt); +Procedure FGIntShiftRight(Var FGInt : TFGInt); +Procedure FGIntShiftRightBy31(Var FGInt : TFGInt); +Procedure FGIntShiftLeftBy31Times(Var FGInt : TFGInt; times : LongWord); +Procedure FGIntAddBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Procedure FGIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Procedure FGIntMul(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt); +Procedure FGIntSquare(Const FGInt : TFGInt; Var Square : TFGInt); +Procedure FGIntExp(Const FGInt, exp : TFGInt; Var res : TFGInt); +Procedure FGIntFac(Const FGInt : TFGInt; Var res : TFGInt); +Procedure FGIntShiftLeftBy31(Var FGInt : TFGInt); +Procedure FGIntDivMod(Var FGInt1, FGInt2, QFGInt, MFGInt : TFGInt); +Procedure FGIntDiv(Var FGInt1, FGInt2, QFGInt : TFGInt); +Procedure FGIntMulByIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt; divInt : LongWord); +Procedure FGIntMod(Var FGInt1, FGInt2, MFGInt : TFGInt); +Procedure FGIntSquareMod(Var FGInt, Modb, FGIntSM : TFGInt); +Procedure FGIntAddMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Procedure FGIntMulMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Procedure FGIntModExp(Var FGInt, exp, modb, res : TFGInt); +Procedure FGIntModBis(Const FGInt : TFGInt; Var FGIntOut : TFGInt; b, head : LongWord); +Procedure FGIntMulModBis(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt; b, head : LongWord); +Procedure FGIntMontgomeryMod(Const GInt, base, baseInv : TFGInt; Var MGInt : TFGInt; b : Longword; head : LongWord); +Procedure FGIntMontgomeryModExp(Var FGInt, exp, modb, res : TFGInt); +Procedure FGIntGCD(Const FGInt1, FGInt2 : TFGInt; Var GCD : TFGInt); +Procedure FGIntLCM(Const FGInt1, FGInt2 : TFGInt; Var LCM : TFGInt); +Procedure FGIntTrialDiv9999(Const FGInt : TFGInt; Var ok : boolean); +Procedure FGIntRandom1(Var Seed, RandomFGInt : TFGInt); +Procedure FGIntRabinMiller(Var FGIntp : TFGInt; nrtest : Longword; Var ok : boolean); +Procedure FGIntBezoutBachet(Var FGInt1, FGInt2, a, b : TFGInt); +Procedure FGIntModInv(Const FGInt1, base : TFGInt; Var Inverse : TFGInt); +Procedure FGIntPrimetest(Var FGIntp : TFGInt; nrRMtests : integer; Var ok : boolean); +Procedure FGIntLegendreSymbol(Var a, p : TFGInt; Var L : integer); +Procedure FGIntSquareRootModP(Square, Prime : TFGInt; Var SquareRoot : TFGInt); + + + +Implementation + +Var + primes : Array[1..1228] Of integer = + (3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, + 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, + 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, + 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, + 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, + 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, + 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, + 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, + 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, + 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, + 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, + 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, + 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, + 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, + 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, + 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, + 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, + 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, + 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, + 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, + 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, + 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, + 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, + 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, + 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, + 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, + 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, + 3989, 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129, + 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259, 4261, 4271, 4273, + 4283, 4289, 4297, 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457, + 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, + 4639, 4643, 4649, 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751, 4759, 4783, 4787, 4789, + 4793, 4799, 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951, 4957, + 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011, 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087, 5099, 5101, + 5107, 5113, 5119, 5147, 5153, 5167, 5171, 5179, 5189, 5197, 5209, 5227, 5231, 5233, 5237, 5261, 5273, 5279, 5281, + 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387, 5393, 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443, + 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507, 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, 5623, + 5639, 5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689, 5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, + 5783, 5791, 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857, 5861, 5867, 5869, 5879, 5881, 5897, 5903, + 5923, 5927, 5939, 5953, 5981, 5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079, 6089, 6091, 6101, + 6113, 6121, 6131, 6133, 6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269, + 6271, 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367, 6373, 6379, 6389, 6397, + 6421, 6427, 6449, 6451, 6469, 6473, 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571, 6577, 6581, 6599, + 6607, 6619, 6637, 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761, 6763, 6779, + 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833, 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, 6947, + 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013, 7019, 7027, 7039, 7043, 7057, 7069, 7079, 7103, + 7109, 7121, 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253, 7283, + 7297, 7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457, 7459, 7477, 7481, 7487, + 7489, 7499, 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561, 7573, 7577, 7583, 7589, 7591, 7603, 7607, + 7621, 7639, 7643, 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723, 7727, 7741, 7753, 7757, 7759, 7789, + 7793, 7817, 7823, 7829, 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919, 7927, 7933, 7937, 7949, 7951, + 7963, 7993, 8009, 8011, 8017, 8039, 8053, 8059, 8069, 8081, 8087, 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161, + 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237, 8243, 8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, + 8317, 8329, 8353, 8363, 8369, 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443, 8447, 8461, 8467, 8501, 8513, 8521, + 8527, 8537, 8539, 8543, 8563, 8573, 8581, 8597, 8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677, 8681, + 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741, 8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, + 8837, 8839, 8849, 8861, 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941, 8951, 8963, 8969, 8971, 8999, 9001, 9007, + 9011, 9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091, 9103, 9109, 9127, 9133, 9137, 9151, 9157, 9161, 9173, 9181, + 9187, 9199, 9203, 9209, 9221, 9227, 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323, 9337, 9341, 9343, + 9349, 9371, 9377, 9391, 9397, 9403, 9413, 9419, 9421, 9431, 9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, + 9497, 9511, 9521, 9533, 9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629, 9631, 9643, 9649, 9661, 9677, 9679, + 9689, 9697, 9719, 9721, 9733, 9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, 9817, 9829, 9833, 9839, + 9851, 9857, 9859, 9871, 9883, 9887, 9901, 9907, 9923, 9929, 9931, 9941, 9949, 9967, 9973); + chr64 : Array[1..64] Of AnsiChar = ('a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', + 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', + 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', + 'z', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '='); + PGPchr64 : Array[1..64] Of AnsiChar = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', + 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'); + + + +Procedure zeronetochar8(Var g : AnsiChar; Const x : AnsiString); +Var + i : Integer; + b : byte; +Begin + b := 0; + For i := 1 To 8 Do + Begin + If copy(x, i, 1) = '1' Then + b := b Or (1 Shl (8 - I)); + End; + g := AnsiChar(b); +End; + + +Procedure zeronetochar6(Var g : integer; Const x : AnsiString); +Var + I : Integer; +Begin + G := 0; + For I := 1 To Length(X) Do + Begin + If I > 6 Then + Break; + If X[I] <> '0' Then + G := G Or (1 Shl (6 - I)); + End; + Inc(G); +End; + + +Procedure initialize8(Var trans : Array Of AnsiString); +Var + c1, c2, c3, c4, c5, c6, c7, c8 : integer; + x : AnsiString; + g : AnsiChar; +Begin + For c1 := 0 To 1 Do + For c2 := 0 To 1 Do + For c3 := 0 To 1 Do + For c4 := 0 To 1 Do + For c5 := 0 To 1 Do + For c6 := 0 To 1 Do + For c7 := 0 To 1 Do + For c8 := 0 To 1 Do + Begin + x := AnsiChar(48+c1) + AnsiChar(48+c2) + AnsiChar(48+c3) + AnsiChar(48+c4) + AnsiChar(48+c5) + AnsiChar(48+c6) + AnsiChar(48+c7) + AnsiChar(48+c8); + zeronetochar8(g, x); + trans[ord(g)] := x; + End; +End; + + +Procedure initialize6(Var trans : Array Of AnsiString); +Var + c1, c2, c3, c4, c5, c6 : integer; + x : AnsiString; + g : integer; +Begin + For c1 := 0 To 1 Do + For c2 := 0 To 1 Do + For c3 := 0 To 1 Do + For c4 := 0 To 1 Do + For c5 := 0 To 1 Do + For c6 := 0 To 1 Do + Begin + x := AnsiChar(48+c1) + AnsiChar(48+c2) + AnsiChar(48+c3) + AnsiChar(48+c4) + AnsiChar(48+c5) + AnsiChar(48+c6); + zeronetochar6(g, x); + trans[ord(chr64[g])] := x; + End; +End; + +Procedure initialize6PGP(Var trans : Array Of AnsiString); +Var + c1, c2, c3, c4, c5, c6 : integer; + x : AnsiString; + g : integer; +Begin + For c1 := 0 To 1 Do + For c2 := 0 To 1 Do + For c3 := 0 To 1 Do + For c4 := 0 To 1 Do + For c5 := 0 To 1 Do + For c6 := 0 To 1 Do + Begin + x := AnsiChar(48+c1) + AnsiChar(48+c2) + AnsiChar(48+c3) + AnsiChar(48+c4) + AnsiChar(48+c5) + AnsiChar(48+c6); + zeronetochar6(g, x); + trans[ord(PGPchr64[g])] := x; + End; +End; + + +// Convert base 8 strings to base 6 strings and visa versa + +Procedure ConvertBase256to64(Const str256 : AnsiString; Var str64 : AnsiString); +Var + temp : AnsiString; + trans : Array[0..255] Of AnsiString; + i, len6 : longint; + g : integer; +Begin + initialize8(trans); + temp := ''; + For i := 1 To length(str256) Do temp := temp + trans[ord(str256[i])]; + While (length(temp) Mod 6) <> 0 Do temp := temp + '0'; + len6 := length(temp) Div 6; + str64 := ''; + For i := 1 To len6 Do + Begin + zeronetochar6(g, copy(temp, 1, 6)); + str64 := str64 + chr64[g]; + delete(temp, 1, 6); + End; +End; + + +Procedure ConvertBase64to256(Const str64 : AnsiString; Var str256 : AnsiString); +Var + temp : AnsiString; + trans : Array[0..255] Of AnsiString; + i, len8 : longint; + g : AnsiChar; +Begin + initialize6(trans); + temp := ''; + For i := 1 To length(str64) Do temp := temp + trans[ord(str64[i])]; + str256 := ''; + len8 := length(temp) Div 8; + For i := 1 To len8 Do + Begin + zeronetochar8(g, copy(temp, 1, 8)); + str256 := str256 + g; + delete(temp, 1, 8); + End; +End; + + +// Convert base 8 & 6 bit strings to base 2 strings and visa versa + +Procedure ConvertBase256to2(Const str256 : AnsiString; Var str2 : AnsiString); +Var + trans : Array[0..255] Of AnsiString; + i : longint; +Begin + str2 := ''; + initialize8(trans); + For i := 1 To length(str256) Do str2 := str2 + trans[ord(str256[i])]; +End; + + +Procedure ConvertBase64to2(Const str64 : AnsiString; Var str2 : AnsiString); +Var + trans : Array[0..255] Of AnsiString; + i : longint; +Begin + str2 := ''; + initialize6(trans); + For i := 1 To length(str64) Do str2 := str2 + trans[ord(str64[i])]; +End; + + +Procedure ConvertBase2to256(str2 : AnsiString; Var str256 : AnsiString); +Var + i, len8 : longint; + g : AnsiChar; +Begin + str256 := ''; + While (length(str2) Mod 8) <> 0 Do str2 := '0' + str2; + len8 := length(str2) Div 8; + For i := 1 To len8 Do + Begin + zeronetochar8(g, copy(str2, 1, 8)); + str256 := str256 + g; + delete(str2, 1, 8); + End; +End; + + +Procedure ConvertBase2to64(str2 : AnsiString; Var str64 : AnsiString); +Var + i, len6 : longint; + g : integer; +Begin + str64 := ''; + While (length(str2) Mod 6) <> 0 Do str2 := '0' + str2; + len6 := length(str2) Div 6; + For i := 1 To len6 Do + Begin + zeronetochar6(g, copy(str2, 1, 6)); + str64 := str64 + chr64[g]; + delete(str2, 1, 6); + End; +End; + + +// Convert base 256 strings to base 16 (HexaDecimal) strings and visa versa + +Procedure ConvertBase256StringToHexString(Str256 : AnsiString; Var HexStr : AnsiString); +Var + i : longint; + b : byte; +Begin + HexStr := ''; + For i := 1 To length(str256) Do + Begin + b := ord(str256[i]); + If (b Shr 4) < 10 Then HexStr := HexStr + AnsiChar(48 + (b Shr 4)) + Else HexStr := HexStr + AnsiChar(55 + (b Shr 4)); + If (b And 15) < 10 Then HexStr := HexStr + AnsiChar(48 + (b And 15)) + Else HexStr := HexStr + AnsiChar(55 + (b And 15)); + End; +End; + + +Procedure ConvertHexStringToBase256String(HexStr : AnsiString; Var Str256 : AnsiString); +Var + i : longint; + b, h1, h2 : byte; + temp : AnsiString; +Begin + Str256 := ''; + If (length(Hexstr) mod 2) = 1 Then temp := '0' + HexStr Else temp := HexStr; + For i := 1 To (length(temp) Div 2) Do + Begin + h2 := ord(temp[2 * i]); + h1 := ord(temp[2 * i - 1]); + If h1 < 58 Then + b := ((h1 - 48) Shl 4) + Else + b := ((h1 - 55) Shl 4); + If h2 < 58 Then + b := (b Or (h2 - 48)) + Else + b := (b Or ((h2 - 55) and 15)); + Str256 := Str256 + AnsiChar(b); + End; +End; + + +// Convert base 256 strings to base 64 strings and visa versa, PGP style + +Procedure PGPConvertBase256to64(Var str256, str64 : AnsiString); +Var + temp, x, a : AnsiString; + i, len6 : longint; + g : integer; + trans : Array[0..255] Of AnsiString; +Begin + initialize8(trans); + temp := ''; + For i := 1 To length(str256) Do temp := temp + trans[ord(str256[i])]; + If (length(temp) Mod 6) = 0 Then a := '' Else + If (length(temp) Mod 6) = 4 Then + Begin + temp := temp + '00'; + a := '=' + End + Else + Begin + temp := temp + '0000'; + a := '==' + End; + str64 := ''; + len6 := length(temp) Div 6; + For i := 1 To len6 Do + Begin + x := copy(temp, 1, 6); + zeronetochar6(g, x); + str64 := str64 + PGPchr64[g]; + delete(temp, 1, 6); + End; + str64 := str64 + a; +End; + + +Procedure PGPConvertBase64to256(str64 : AnsiString; Var str256 : AnsiString); +Var + temp, x : AnsiString; + i, j, len8 : longint; + g : AnsiChar; + trans : Array[0..255] Of AnsiString; +Begin + initialize6PGP(trans); + temp := ''; + str256 := ''; + If str64[length(str64) - 1] = '=' Then j := 2 Else + If str64[length(str64)] = '=' Then j := 1 Else j := 0; + For i := 1 To (length(str64) - j) Do temp := temp + trans[ord(str64[i])]; + If j <> 0 Then delete(temp, length(temp) - 2 * j + 1, 2 * j); + len8 := length(temp) Div 8; + For i := 1 To len8 Do + Begin + x := copy(temp, 1, 8); + zeronetochar8(g, x); + str256 := str256 + g; + delete(temp, 1, 8); + End; +End; + +// Convert base 64 strings to base 2 strings, PGP style + + +Procedure PGPConvertBase64to2(str64 : AnsiString; Var str2 : AnsiString); +Var + i, j : longint; + trans : Array[0..255] Of AnsiString; +Begin + str2 := ''; + initialize6(trans); + If str64[length(str64) - 1] = '=' Then j := 2 Else + If str64[length(str64)] = '=' Then j := 1 Else j := 0; + For i := 1 To (length(str64) - j) Do str2 := str2 + trans[ord(str64[i])]; + delete(str2, length(str2) - 2 * j + 1, 2 * j); +End; + + +// Convert a FGInt to a binary AnsiString (base 2) & visa versa + +Procedure FGIntToBase2String(Const FGInt : TFGInt; Var S : AnsiString); +Var + i : LongWord; + j : integer; +Begin + S := ''; + For i := 1 To FGInt.Number[0] Do + Begin + For j := 0 To 30 Do + If (1 And (FGInt.Number[i] Shr j)) = 1 Then + S := '1' + S + Else + S := '0' + S; + End; + While (length(S) > 1) And (S[1] = '0') Do + delete(S, 1, 1); + If S = '' Then S := '0'; +End; + + +Procedure Base2StringToFGInt(S : AnsiString; Var FGInt : TFGInt); +Var + i, j, size : LongWord; +Begin + While (S[1] = '0') And (length(S) > 1) Do + delete(S, 1, 1); + size := length(S) Div 31; + If (length(S) Mod 31) <> 0 Then size := size + 1; + SetLength(FGInt.Number, (size + 1)); + FGInt.Number[0] := size; + j := 1; + FGInt.Number[j] := 0; + i := 0; + While length(S) > 0 Do + Begin + If S[length(S)] = '1' Then + FGInt.Number[j] := FGInt.Number[j] Or (1 Shl i); + i := i + 1; + If i = 31 Then + Begin + i := 0; + j := j + 1; + If j <= size Then FGInt.Number[j] := 0; + End; + delete(S, length(S), 1); + End; + FGInt.Sign := positive; +End; + + +// Convert a FGInt to an base 256 AnsiString & visa versa + +Procedure FGIntToBase256String(Const FGInt : TFGInt; Var str256 : AnsiString); +Var + temp1 : AnsiString; + i, len8 : LongWord; + g : AnsiChar; +Begin + FGIntToBase2String(FGInt, temp1); + While (length(temp1) Mod 8) <> 0 Do temp1 := '0' + temp1; + len8 := length(temp1) Div 8; + str256 := ''; + For i := 1 To len8 Do + Begin + zeronetochar8(g, copy(temp1, 1, 8)); + str256 := str256 + g; + delete(temp1, 1, 8); + End; +End; + + +Procedure Base256StringToFGInt(str256 : AnsiString; Var FGInt : TFGInt); +Var + temp1 : AnsiString; + i : longint; + trans : Array[0..255] Of AnsiString; +Begin + temp1 := ''; + initialize8(trans); + For i := 1 To length(str256) Do temp1 := temp1 + trans[ord(str256[i])]; + While (temp1[1] = '0') And (temp1 <> '0') Do delete(temp1, 1, 1); + Base2StringToFGInt(temp1, FGInt); +End; + +// Convert an MPI (Multiple Precision Integer, PGP style) to an FGInt & +// visa versa + +Procedure PGPMPIToFGInt(PGPMPI : AnsiString; Var FGInt : TFGInt); +Var + temp : AnsiString; +Begin + temp := PGPMPI; + delete(temp, 1, 2); + Base256StringToFGInt(temp, FGInt); +End; + + +Procedure FGIntToPGPMPI(FGInt : TFGInt; Var PGPMPI : AnsiString); +Var + len, i : word; + c : AnsiChar; + b : byte; +Begin + FGIntToBase256String(FGInt, PGPMPI); + len := length(PGPMPI) * 8; + c := PGPMPI[1]; + For i := 7 Downto 0 Do If (ord(c) Shr i) = 0 Then len := len - 1 Else break; + b := len Mod 256; + PGPMPI := AnsiChar(b) + PGPMPI; + b := len Div 256; + PGPMPI := AnsiChar(b) + PGPMPI; +End; + + +// Convert a base 10 AnsiString to a FGInt + +Procedure Base10StringToFGInt(Base10 : AnsiString; Var FGInt : TFGInt); +Var + i, size : LongWord; + j : word; + S, x : AnsiString; + sign : TSign; + + Procedure GIntDivByIntBis1(Var GInt : TFGInt; by : LongWord; Var modres : word); + Var + i, size, rest, temp : LongWord; + Begin + size := GInt.Number[0]; + temp := 0; + For i := size Downto 1 Do + Begin + temp := temp * 10000; + rest := temp + GInt.Number[i]; + GInt.Number[i] := rest Div by; + temp := rest Mod by; + End; + modres := temp; + While (GInt.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> GInt.Number[0] Then + Begin + SetLength(GInt.Number, size + 1); + GInt.Number[0] := size; + End; + End; + +Begin + While (Not (Base10[1] In ['-', '0'..'9'])) And (length(Base10) > 1) Do + delete(Base10, 1, 1); + If copy(Base10, 1, 1) = '-' Then + Begin + Sign := negative; + delete(Base10, 1, 1); + End + Else + Sign := positive; + While (length(Base10) > 1) And (copy(Base10, 1, 1) = '0') Do + delete(Base10, 1, 1); + size := length(Base10) Div 4; + If (length(Base10) Mod 4) <> 0 Then size := size + 1; + SetLength(FGInt.Number, size + 1); + FGInt.Number[0] := size; + For i := 1 To (size - 1) Do + Begin + x := copy(Base10, length(Base10) - 3, 4); + FGInt.Number[i] := StrToInt(string(x)); + delete(Base10, length(Base10) - 3, 4); + End; + FGInt.Number[size] := StrToInt(string(Base10)); + + S := ''; + While (FGInt.Number[0] <> 1) Or (FGInt.Number[1] <> 0) Do + Begin + GIntDivByIntBis1(FGInt, 2, j); + S := AnsiString(inttostr(j)) + S; + End; + If S = '' Then S := '0'; + FGIntDestroy(FGInt); + Base2StringToFGInt(S, FGInt); + FGInt.Sign := sign; +End; + + +// Convert a FGInt to a base 10 AnsiString + +Procedure FGIntToBase10String(Const FGInt : TFGInt; Var Base10 : AnsiString); +Var + S : AnsiString; + j : LongWord; + temp : TFGInt; +Begin + FGIntCopy(FGInt, temp); + Base10 := ''; + While (temp.Number[0] > 1) Or (temp.Number[1] > 0) Do + Begin + FGIntDivByIntBis(temp, 10000, j); + S := AnsiString(IntToStr(j)); + While Length(S) < 4 Do + S := '0' + S; + Base10 := S + Base10; + End; + Base10 := '0' + Base10; + While (length(Base10) > 1) And (Base10[1] = '0') Do + delete(Base10, 1, 1); + If FGInt.Sign = negative Then Base10 := '-' + Base10; +End; + + +// Destroy a FGInt to free memory + +Procedure FGIntDestroy(Var FGInt : TFGInt); +Begin + FGInt.Number := Nil; +End; + + +// Compare 2 FGInts in absolute value, returns +// Lt if FGInt1 > FGInt2, St if FGInt1 < FGInt2, Eq if FGInt1 = FGInt2, +// Er otherwise + +Function FGIntCompareAbs(Const FGInt1, FGInt2 : TFGInt) : TCompare; +Var + size1, size2, i : LongWord; +Begin + FGIntCompareAbs := Er; + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + If size1 > size2 Then FGIntCompareAbs := Lt Else + If size1 < size2 Then FGIntCompareAbs := St Else + Begin + i := size2; + While (FGInt1.Number[i] = FGInt2.Number[i]) And (i > 1) Do i := i - 1; + If FGInt1.Number[i] = FGInt2.Number[i] Then FGIntCompareAbs := Eq Else + If FGInt1.Number[i] < FGInt2.Number[i] Then FGIntCompareAbs := St Else + If FGInt1.Number[i] > FGInt2.Number[i] Then FGIntCompareAbs := Lt; + End; +End; + + +// Add 2 FGInts, FGInt1 + FGInt2 = Sum + +Procedure FGIntAdd(Const FGInt1, FGInt2 : TFGInt; Var Sum : TFGInt); +Var + i, size1, size2, size, rest, Trest : LongWord; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + If size1 < size2 Then + FGIntAdd(FGInt2, FGInt1, Sum) + Else + Begin + If FGInt1.Sign = FGInt2.Sign Then + Begin + Sum.Sign := FGInt1.Sign; + setlength(Sum.Number, (size1 + 2)); + rest := 0; + For i := 1 To size2 Do + Begin + Trest := FGInt1.Number[i]; + Trest := Trest + FGInt2.Number[i]; + Trest := Trest + rest; + Sum.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + For i := (size2 + 1) To size1 Do + Begin + Trest := FGInt1.Number[i] + rest; + Sum.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + size := size1 + 1; + Sum.Number[0] := size; + Sum.Number[size] := rest; + While (Sum.Number[size] = 0) And (size > 1) Do + size := size - 1; + If Sum.Number[0] <> size Then SetLength(Sum.Number, size + 1); + Sum.Number[0] := size; + End + Else + Begin + If FGIntCompareAbs(FGInt2, FGInt1) = Lt Then + FGIntAdd(FGInt2, FGInt1, Sum) + Else + Begin + SetLength(Sum.Number, (size1 + 1)); + rest := 0; + For i := 1 To size2 Do + Begin + Trest := 2147483648; + TRest := Trest + FGInt1.Number[i]; + TRest := Trest - FGInt2.Number[i]; + TRest := Trest - rest; + Sum.Number[i] := Trest And 2147483647; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + End; + For i := (size2 + 1) To size1 Do + Begin + Trest := 2147483648; + TRest := Trest + FGInt1.Number[i]; + TRest := Trest - rest; + Sum.Number[i] := Trest And 2147483647; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + End; + size := size1; + While (Sum.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> size1 Then SetLength(Sum.Number, size + 1); + Sum.Number[0] := size; + Sum.Sign := FGInt1.Sign; + End; + End; + End; +End; + + + +Procedure FGIntChangeSign(Var FGInt : TFGInt); +Begin + If FGInt.Sign = negative Then FGInt.Sign := positive Else FGInt.Sign := negative; +End; + + +// Substract 2 FGInts, FGInt1 - FGInt2 = dif + +Procedure FGIntSub(Var FGInt1, FGInt2, dif : TFGInt); +Begin + FGIntChangeSign(FGInt2); + FGIntAdd(FGInt1, FGInt2, dif); + FGIntChangeSign(FGInt2); +End; + + +// multiply a FGInt by an integer, FGInt * by = res, by < 2147483648 + +Procedure FGIntMulByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord); +Var + i, size, rest : LongWord; + Trest : int64; +Begin + size := FGInt.Number[0]; + setlength(res.Number, (size + 2)); + rest := 0; + For i := 1 To size Do + Begin + Trest := FGInt.Number[i]; + TRest := Trest * by; + TRest := Trest + rest; + res.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + If rest <> 0 Then + Begin + size := size + 1; + Res.Number[size] := rest; + End + Else + SetLength(Res.Number, size + 1); + Res.Number[0] := size; + Res.Sign := FGInt.Sign; +End; + + +// multiply a FGInt by an integer, FGInt * by = res, by < 1000000000 + +Procedure FGIntMulByIntbis(Var FGInt : TFGInt; by : LongWord); +Var + i, size, rest : LongWord; + Trest : int64; +Begin + size := FGInt.Number[0]; + Setlength(FGInt.Number, size + 2); + rest := 0; + For i := 1 To size Do + Begin + Trest := FGInt.Number[i]; + TRest := Trest * by; + TRest := Trest + rest; + FGInt.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + If rest <> 0 Then + Begin + size := size + 1; + FGInt.Number[size] := rest; + End + Else + SetLength(FGInt.Number, size + 1); + FGInt.Number[0] := size; +End; + + +// divide a FGInt by an integer, FGInt = res * by + modres + +Procedure FGIntDivByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord; Var modres : LongWord); +Var + i, size : LongWord; + rest : int64; +Begin + size := FGInt.Number[0]; + setlength(res.Number, (size + 1)); + modres := 0; + For i := size Downto 1 Do + Begin + rest := modres; + rest := rest Shl 31; + rest := rest Or FGInt.Number[i]; + res.Number[i] := rest Div by; + modres := rest Mod by; + End; + While (res.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> FGInt.Number[0] Then SetLength(res.Number, size + 1); + res.Number[0] := size; + Res.Sign := FGInt.Sign; + If FGInt.sign = negative Then modres := by - modres; +End; + + +// divide a FGInt by an integer, FGInt = FGInt * by + modres + +Procedure FGIntDivByIntBis(Var FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Var + i, size : LongWord; + temp, rest : int64; +Begin + size := FGInt.Number[0]; + temp := 0; + For i := size Downto 1 Do + Begin + temp := temp Shl 31; + rest := temp Or FGInt.Number[i]; + FGInt.Number[i] := rest Div by; + temp := rest Mod by; + End; + modres := temp; + While (FGInt.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> FGInt.Number[0] Then + Begin + SetLength(FGInt.Number, size + 1); + FGInt.Number[0] := size; + End; +End; + + +// Reduce a FGInt modulo by (=an integer), FGInt mod by = modres + +Procedure FGIntModByInt(Const FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Var + i, size : LongWord; + temp, rest : int64; +Begin + size := FGInt.Number[0]; + temp := 0; + For i := size Downto 1 Do + Begin + temp := temp Shl 31; + rest := temp Or FGInt.Number[i]; + temp := rest Mod by; + End; + modres := temp; + If FGInt.sign = negative Then modres := by - modres; +End; + + +// Returns the FGInt in absolute value + +Procedure FGIntAbs(Var FGInt : TFGInt); +Begin + FGInt.Sign := positive; +End; + + +// Copy a FGInt1 into FGInt2 + +Procedure FGIntCopy(Const FGInt1 : TFGInt; Var FGInt2 : TFGInt); +Begin + FGInt2.Sign := FGInt1.Sign; + FGInt2.Number := Nil; + FGInt2.Number := Copy(FGInt1.Number, 0, FGInt1.Number[0] + 1); +End; + + +// Shift the FGInt to the left in base 2 notation, ie FGInt = FGInt * 2 + +Procedure FGIntShiftLeft(Var FGInt : TFGInt); +Var + l, m, i, size : LongWord; +Begin + size := FGInt.Number[0]; + l := 0; + For i := 1 To Size Do + Begin + m := FGInt.Number[i] Shr 30; + FGInt.Number[i] := ((FGInt.Number[i] Shl 1) Or l) And 2147483647; + l := m; + End; + If l <> 0 Then + Begin + setlength(FGInt.Number, size + 2); + FGInt.Number[size + 1] := l; + FGInt.Number[0] := size + 1; + End; +End; + + +// Shift the FGInt to the right in base 2 notation, ie FGInt = FGInt div 2 + +Procedure FGIntShiftRight(Var FGInt : TFGInt); +Var + l, m, i, size : LongWord; +Begin + size := FGInt.Number[0]; + l := 0; + For i := size Downto 1 Do + Begin + m := FGInt.Number[i] And 1; + FGInt.Number[i] := (FGInt.Number[i] Shr 1) Or l; + l := m Shl 30; + End; + If (FGInt.Number[size] = 0) And (size > 1) Then + Begin + setlength(FGInt.Number, size); + FGInt.Number[0] := size - 1; + End; +End; + + +// FGInt = FGInt / 2147483648 + +Procedure FGIntShiftRightBy31(Var FGInt : TFGInt); +Var + size, i : LongWord; +Begin + size := FGInt.Number[0]; + If size > 1 Then + Begin + For i := 1 To size - 1 Do + Begin + FGInt.Number[i] := FGInt.Number[i + 1]; + End; + SetLength(FGInt.Number, Size); + FGInt.Number[0] := size - 1; + End + Else + FGInt.Number[1] := 0; +End; + + +// FGInt1 = FGInt1 + FGInt2, FGInt1 > FGInt2 + +Procedure FGIntAddBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Var + i, size1, size2, Trest, rest : LongWord; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + rest := 0; + For i := 1 To size2 Do + Begin + Trest := FGInt1.Number[i] + FGInt2.Number[i] + rest; + rest := Trest Shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + For i := size2 + 1 To size1 Do + Begin + Trest := FGInt1.Number[i] + rest; + rest := Trest Shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + If rest <> 0 Then + Begin + SetLength(FGInt1.Number, size1 + 2); + FGInt1.Number[0] := size1 + 1; + FGInt1.Number[size1 + 1] := rest; + End; +End; + + +// FGInt1 = FGInt1 - FGInt2, use only when 0 < FGInt2 < FGInt1 + +Procedure FGIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Var + i, size1, size2, rest, Trest : LongWord; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + rest := 0; + For i := 1 To size2 Do + Begin + Trest := (2147483648 Or FGInt1.Number[i]) - FGInt2.Number[i] - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + FGInt1.Number[i] := Trest And 2147483647; + End; + For i := size2 + 1 To size1 Do + Begin + Trest := (2147483648 Or FGInt1.Number[i]) - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + FGInt1.Number[i] := Trest And 2147483647; + End; + i := size1; + While (FGInt1.Number[i] = 0) And (i > 1) Do + i := i - 1; + If i <> size1 Then + Begin + SetLength(FGInt1.Number, i + 1); + FGInt1.Number[0] := i; + End; +End; + + +// Multiply 2 FGInts, FGInt1 * FGInt2 = Prod + +Procedure FGIntMul(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt); +Var + i, j, size, size1, size2, rest : LongWord; + Trest : int64; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + size := size1 + size2; + SetLength(Prod.Number, (size + 1)); + For i := 1 To size Do + Prod.Number[i] := 0; + + For i := 1 To size2 Do + Begin + rest := 0; + For j := 1 To size1 Do + Begin + Trest := FGInt1.Number[j]; + Trest := Trest * FGInt2.Number[i]; + Trest := Trest + Prod.Number[j + i - 1]; + Trest := Trest + rest; + Prod.Number[j + i - 1] := Trest And 2147483647; + rest := Trest Shr 31; + End; + Prod.Number[i + size1] := rest; + End; + + Prod.Number[0] := size; + While (Prod.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> Prod.Number[0] Then + Begin + SetLength(Prod.Number, size + 1); + Prod.Number[0] := size; + End; + If FGInt1.Sign = FGInt2.Sign Then + Prod.Sign := Positive + Else + prod.Sign := negative; +End; + + +// Square a FGInt, FGInt?= Square + +Procedure FGIntSquare(Const FGInt : TFGInt; Var Square : TFGInt); +Var + size, size1, i, j, rest : LongWord; + Trest : int64; +Begin + size1 := FGInt.Number[0]; + size := 2 * size1; + SetLength(Square.Number, (size + 1)); + Square.Number[0] := size; + For i := 1 To size Do + Square.Number[i] := 0; + For i := 1 To size1 Do + Begin + Trest := FGInt.Number[i]; + Trest := Trest * FGInt.Number[i]; + Trest := Trest + Square.Number[2 * i - 1]; + Square.Number[2 * i - 1] := Trest And 2147483647; + rest := Trest Shr 31; + For j := i + 1 To size1 Do + Begin + Trest := FGInt.Number[i] Shl 1; + Trest := Trest * FGInt.Number[j]; + Trest := Trest + Square.Number[i + j - 1]; + Trest := Trest + rest; + Square.Number[i + j - 1] := Trest And 2147483647; + rest := Trest Shr 31; + End; + Square.Number[i + size1] := rest; + End; + Square.Sign := positive; + While (Square.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> (2 * size1) Then + Begin + SetLength(Square.Number, size + 1); + Square.Number[0] := size; + End; +End; + + +// Exponentiate a FGInt, FGInt^exp = res + +Procedure FGIntExp(Const FGInt, exp : TFGInt; Var res : TFGInt); +Var + temp2, temp3 : TFGInt; + S : AnsiString; + i : LongWord; +Begin + FGIntToBase2String(exp, S); + If S[length(S)] = '0' Then Base10StringToFGInt('1', res) Else FGIntCopy(FGInt, res); + FGIntCopy(FGInt, temp2); + If length(S) > 1 Then + For i := (length(S) - 1) Downto 1 Do + Begin + FGIntSquare(temp2, temp3); + FGIntCopy(temp3, temp2); + If S[i] = '1' Then + Begin + FGIntMul(res, temp2, temp3); + FGIntCopy(temp3, res); + End; + End; +End; + + +// Compute FGInt! = FGInt * (FGInt - 1) * (FGInt - 2) * ... * 3 * 2 * 1 + +Procedure FGIntFac(Const FGInt : TFGInt; Var res : TFGInt); +Var + one, temp, temp1 : TFGInt; +Begin + FGIntCopy(FGInt, temp); + Base10StringToFGInt('1', res); + Base10StringToFGInt('1', one); + + While Not (FGIntCompareAbs(temp, one) = Eq) Do + Begin + FGIntMul(temp, res, temp1); + FGIntCopy(temp1, res); + FGIntSubBis(temp, one); + End; + + FGIntDestroy(one); + FGIntDestroy(temp); +End; + + +// FGInt = FGInt * 2147483648 + +Procedure FGIntShiftLeftBy31(Var FGInt : TFGInt); +Var + f1, f2 : LongWord; + i, size : longint; +Begin + size := FGInt.Number[0]; + SetLength(FGInt.Number, size + 2); + f1 := 0; + For i := 1 To (size + 1) Do + Begin + f2 := FGInt.Number[i]; + FGInt.Number[i] := f1; + f1 := f2; + End; + FGInt.Number[0] := size + 1; +End; + +Procedure FGIntShiftLeftBy31Times(Var FGInt : TFGInt; times : LongWord); +Var + i, size : longint; +Begin + size := FGInt.Number[0]; + SetLength(FGInt.Number, size + 1 + times); + For i := size Downto 1 Do + Begin + FGInt.Number[i + times] := FGInt.Number[i]; + End; + For i := 1 To times Do + Begin + FGInt.Number[i] := 0; + End; + FGInt.Number[0] := size + times; +End; + + +// Divide 2 FGInts, FGInt1 = FGInt2 * QFGInt + MFGInt, MFGInt is always positive + +Procedure FGIntDivMod(Var FGInt1, FGInt2, QFGInt, MFGInt : TFGInt); +Var + one, zero, temp1 : TFGInt; + s1, s2 : TSign; + j, s, t : LongWord; + i, k : int64; +Begin + s1 := FGInt1.Sign; + s2 := FGInt2.Sign; + FGIntAbs(FGInt1); + FGIntAbs(FGInt2); + FGIntCopy(FGInt1, MFGInt); + FGIntCopy(FGInt2, temp1); + + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + s := FGInt1.Number[0] - FGInt2.Number[0]; + SetLength(QFGInt.Number, (s + 2)); + QFGInt.Number[0] := s + 1; + For t := 1 To s Do + Begin + FGIntShiftLeftBy31(temp1); + QFGInt.Number[t] := 0; + End; + j := s + 1; + QFGInt.Number[j] := 0; + While FGIntCompareAbs(MFGInt, FGInt2) <> St Do + Begin + While FGIntCompareAbs(MFGInt, temp1) <> St Do + Begin + If MFGInt.Number[0] > temp1.Number[0] Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + i := i Div (temp1.Number[temp1.Number[0]] + 1); + End + Else +// i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + Begin + If (MFGInt.Number[0] > 1) And (FGInt2.Number[0] > 1) Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + k := temp1.Number[temp1.Number[0]]; + k := k shl 31; + k := k + temp1.Number[temp1.Number[0] - 1] + 1; + i := i Div k; + End + Else + i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + End; + If (i <> 0) Then + Begin + FGIntMulByIntSubBis(MFGInt, temp1, i); + QFGInt.Number[j] := QFGInt.Number[j] + i; + End + Else + Begin + QFGInt.Number[j] := QFGInt.Number[j] + 1; + FGIntSubBis(MFGInt, temp1); + End; + End; + If MFGInt.Number[0] <= temp1.Number[0] Then + If FGIntCompareAbs(temp1, FGInt2) <> Eq Then + Begin + FGIntShiftRightBy31(temp1); + j := j - 1; + End; + End; + End + Else + Base10StringToFGInt('0', QFGInt); + s := QFGInt.Number[0]; + While (s > 1) And (QFGInt.Number[s] = 0) Do + s := s - 1; + If s < QFGInt.Number[0] Then + Begin + setlength(QFGInt.Number, s + 1); + QFGInt.Number[0] := s; + End; + QFGInt.Sign := positive; + + FGIntDestroy(temp1); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + If s1 = negative Then + Begin + If FGIntCompareAbs(MFGInt, zero) <> Eq Then + Begin + FGIntadd(QFGInt, one, temp1); + FGIntDestroy(QFGInt); + FGIntCopy(temp1, QFGInt); + FGIntDestroy(temp1); + FGIntsub(FGInt2, MFGInt, temp1); + FGIntDestroy(MFGInt); + FGIntCopy(temp1, MFGInt); + FGIntDestroy(temp1); + End; + If s2 = positive Then QFGInt.Sign := negative; + End + Else + QFGInt.Sign := s2; + FGIntDestroy(one); + FGIntDestroy(zero); + + FGInt1.Sign := s1; + FGInt2.Sign := s2; +End; + + +// Same as above but doesn 't compute MFGInt + +Procedure FGIntDiv(Var FGInt1, FGInt2, QFGInt : TFGInt); +Var + one, zero, temp1, MFGInt : TFGInt; + s1, s2 : TSign; + j, s, t : LongWord; + i, k : int64; +Begin + s1 := FGInt1.Sign; + s2 := FGInt2.Sign; + FGIntAbs(FGInt1); + FGIntAbs(FGInt2); + FGIntCopy(FGInt1, MFGInt); + FGIntCopy(FGInt2, temp1); + + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + s := FGInt1.Number[0] - FGInt2.Number[0]; + SetLength(QFGInt.Number, (s + 2)); + QFGInt.Number[0] := s + 1; + For t := 1 To s Do + Begin + FGIntShiftLeftBy31(temp1); + QFGInt.Number[t] := 0; + End; + j := s + 1; + QFGInt.Number[j] := 0; + While FGIntCompareAbs(MFGInt, FGInt2) <> St Do + Begin + While FGIntCompareAbs(MFGInt, temp1) <> St Do + Begin + If MFGInt.Number[0] > temp1.Number[0] Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + i := i Div (temp1.Number[temp1.Number[0]] + 1); + End + Else +// i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + Begin + If (MFGInt.Number[0] > 1) And (FGInt2.Number[0] > 1) Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + k := temp1.Number[temp1.Number[0]]; + k := k shl 31; + k := k + temp1.Number[temp1.Number[0] - 1] + 1; + i := i Div k; + End + Else + i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + End; + If (i <> 0) Then + Begin + FGIntMulByIntSubBis(MFGInt, temp1, i); + QFGInt.Number[j] := QFGInt.Number[j] + i; + End + Else + Begin + QFGInt.Number[j] := QFGInt.Number[j] + 1; + FGIntSubBis(MFGInt, temp1); + End; + End; + If MFGInt.Number[0] <= temp1.Number[0] Then + If FGIntCompareAbs(temp1, FGInt2) <> Eq Then + Begin + FGIntShiftRightBy31(temp1); + j := j - 1; + End; + End; + End + Else + Base10StringToFGInt('0', QFGInt); + s := QFGInt.Number[0]; + While (s > 1) And (QFGInt.Number[s] = 0) Do + s := s - 1; + If s < QFGInt.Number[0] Then + Begin + setlength(QFGInt.Number, s + 1); + QFGInt.Number[0] := s; + End; + QFGInt.Sign := positive; + + FGIntDestroy(temp1); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + If s1 = negative Then + Begin + If FGIntCompareAbs(MFGInt, zero) <> Eq Then + Begin + FGIntadd(QFGInt, one, temp1); + FGIntDestroy(QFGInt); + FGIntCopy(temp1, QFGInt); + FGIntDestroy(temp1); + FGIntsub(FGInt2, MFGInt, temp1); + FGIntDestroy(MFGInt); + FGIntCopy(temp1, MFGInt); + FGIntDestroy(temp1); + End; + If s2 = positive Then QFGInt.Sign := negative; + End + Else + QFGInt.Sign := s2; + FGIntDestroy(one); + FGIntDestroy(zero); + FGIntDestroy(MFGInt); + + FGInt1.Sign := s1; + FGInt2.Sign := s2; +End; + + + +// FGInt1 = FGInt1 - divInt * FGInt2, use only when 0 < FGInt2 < FGInt1 + +Procedure FGIntMulByIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt; divInt : LongWord); +Var + i, size1, size2, rest, Trest, mRest : LongWord; + mTmpRest : int64; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + rest := 0; + mRest := 0; + For i := 1 To size2 Do + Begin + mTmpRest := FGInt2.Number[i]; + mTmpRest := mTmpRest * divInt; + mTmpRest := mTmpRest + mRest; + Trest := (2147483648 Or FGInt1.Number[i]) - (mTmpRest And 2147483647) - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + mRest := mTmpRest shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + For i := size2 + 1 To size1 Do + Begin + Trest := (2147483648 Or FGInt1.Number[i]) - mRest - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + mRest := mRest shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + i := size1; + While (FGInt1.Number[i] = 0) And (i > 1) Do + i := i - 1; + If i <> size1 Then + Begin + SetLength(FGInt1.Number, i + 1); + FGInt1.Number[0] := i; + End; +End; + + + +Procedure FGIntMod(Var FGInt1, FGInt2, MFGInt : TFGInt); +Var + zero, temp1 : TFGInt; + s1, s2 : TSign; + s: LongWord; + i, j : int64; +Begin + s1 := FGInt1.Sign; + s2 := FGInt2.Sign; + FGIntAbs(FGInt1); + FGIntAbs(FGInt2); + FGIntCopy(FGInt1, MFGInt); + FGIntCopy(FGInt2, temp1); + + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + s := FGInt1.Number[0] - FGInt2.Number[0]; +// For t := 1 To s Do + FGIntShiftLeftBy31Times(temp1,s); + While FGIntCompareAbs(MFGInt, FGInt2) <> St Do + Begin + While FGIntCompareAbs(MFGInt, temp1) <> St Do + Begin + If MFGInt.Number[0] > temp1.Number[0] Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + i := i Div (temp1.Number[temp1.Number[0]] + 1); + End + Else +// i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + Begin + If (MFGInt.Number[0] > 1) And (FGInt2.Number[0] > 1) Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + j := temp1.Number[temp1.Number[0]]; + j := j shl 31; + j := j + temp1.Number[temp1.Number[0] - 1] + 1; + i := i Div j; + End + Else + i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + End; + If (i <> 0) Then + Begin + FGIntMulByIntSubBis(MFGInt, temp1, i); + End + Else + FGIntSubBis(MFGInt, temp1); + End; + If MFGInt.Number[0] <= temp1.Number[0] Then + If FGIntCompareAbs(temp1, FGInt2) <> Eq Then FGIntShiftRightBy31(temp1); + End; + End; + + FGIntDestroy(temp1); + Base10StringToFGInt('0', zero); + If s1 = negative Then + Begin + If FGIntCompareAbs(MFGInt, zero) <> Eq Then + Begin + FGIntSub(FGInt2, MFGInt, temp1); + FGIntDestroy(MFGInt); + FGIntCopy(temp1, MFGInt); + FGIntDestroy(temp1); + End; + End; + FGIntDestroy(zero); + + FGInt1.Sign := s1; + FGInt2.Sign := s2; +End; + + +// Square a FGInt modulo Modb, FGInt^2 mod Modb = FGIntSM + +Procedure FGIntSquareMod(Var FGInt, Modb, FGIntSM : TFGInt); +Var + temp : TFGInt; +Begin + FGIntSquare(FGInt, temp); + FGIntMod(temp, Modb, FGIntSM); + FGIntDestroy(temp); +End; + + +// Add 2 FGInts modulo base, (FGInt1 + FGInt2) mod base = FGIntres + +Procedure FGIntAddMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Var + temp : TFGInt; +Begin + FGIntadd(FGInt1, FGInt2, temp); + FGIntMod(temp, base, FGIntres); + FGIntDestroy(temp); +End; + + +// Multiply 2 FGInts modulo base, (FGInt1 * FGInt2) mod base = FGIntres + +Procedure FGIntMulMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Var + temp : TFGInt; +Begin + FGIntMul(FGInt1, FGInt2, temp); + FGIntMod(temp, base, FGIntres); + FGIntDestroy(temp); +End; + + +// Exponentiate 2 FGInts modulo base, (FGInt1 ^ FGInt2) mod modb = res + +Procedure FGIntModExp(Var FGInt, exp, modb, res : TFGInt); +Var + temp2, temp3 : TFGInt; + i : LongWord; + S : AnsiString; +Begin + If (Modb.Number[1] Mod 2) = 1 Then + Begin + FGIntMontgomeryModExp(FGInt, exp, modb, res); + exit; + End; + FGIntToBase2String(exp, S); + Base10StringToFGInt('1', res); + FGIntcopy(FGInt, temp2); + + For i := length(S) Downto 1 Do + Begin + If S[i] = '1' Then + Begin + FGIntmulMod(res, temp2, modb, temp3); + FGIntCopy(temp3, res); + End; + FGIntSquareMod(temp2, Modb, temp3); + FGIntCopy(temp3, temp2); + End; + FGIntDestroy(temp2); +End; + + +// Procedures for Montgomery Exponentiation + +Procedure FGIntModBis(Const FGInt : TFGInt; Var FGIntOut : TFGInt; b, head : LongWord); +Var + i : LongWord; +Begin + If b <= FGInt.Number[0] Then + Begin + SetLength(FGIntOut.Number, (b + 1)); + For i := 0 To b Do + FGIntOut.Number[i] := FGInt.Number[i]; + FGIntOut.Number[b] := FGIntOut.Number[b] And head; + i := b; + While (FGIntOut.Number[i] = 0) And (i > 1) Do + i := i - 1; + If i < b Then SetLength(FGIntOut.Number, i + 1); + FGIntOut.Number[0] := i; + FGIntOut.Sign := positive; + End + Else + FGIntCopy(FGInt, FGIntOut); +End; + + +Procedure FGIntMulModBis(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt; b, head : LongWord); +Var + i, j, size, size1, size2, t, rest : LongWord; + Trest : int64; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + size := min(b, size1 + size2); + SetLength(Prod.Number, (size + 1)); + For i := 1 To size Do + Prod.Number[i] := 0; + + For i := 1 To size2 Do + Begin + rest := 0; + t := min(size1, b - i + 1); + For j := 1 To t Do + Begin + Trest := FGInt1.Number[j]; + Trest := Trest * FGInt2.Number[i]; + Trest := Trest + Prod.Number[j + i - 1]; + Trest := Trest + rest; + Prod.Number[j + i - 1] := Trest And 2147483647; + rest := Trest Shr 31; + End; + If (i + size1) <= b Then Prod.Number[i + size1] := rest; + End; + + Prod.Number[0] := size; + If size = b Then Prod.Number[b] := Prod.Number[b] And head; + While (Prod.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size < Prod.Number[0] Then + Begin + SetLength(Prod.Number, size + 1); + Prod.Number[0] := size; + End; + If FGInt1.Sign = FGInt2.Sign Then + Prod.Sign := Positive + Else + prod.Sign := negative; +End; + + +Procedure FGIntMontgomeryMod(Const GInt, base, baseInv : TFGInt; Var MGInt : TFGInt; b : Longword; head : LongWord); +Var + m, temp, temp1 : TFGInt; + r : LongWord; +Begin + FGIntModBis(GInt, temp, b, head); + FGIntMulModBis(temp, baseInv, m, b, head); + FGIntMul(m, base, temp1); + FGIntDestroy(temp); + FGIntAdd(temp1, GInt, temp); + FGIntDestroy(temp1); + MGInt.Number := copy(temp.Number, b - 1, temp.Number[0] - b + 2); + MGInt.Sign := positive; + MGInt.Number[0] := temp.Number[0] - b + 1; + FGIntDestroy(temp); + If (head Shr 30) = 0 Then FGIntDivByIntBis(MGInt, head + 1, r) + Else FGIntShiftRightBy31(MGInt); + If FGIntCompareAbs(MGInt, base) <> St Then FGIntSubBis(MGInt, base); + FGIntDestroy(temp); + FGIntDestroy(m); +End; + + +Procedure FGIntMontgomeryModExp(Var FGInt, exp, modb, res : TFGInt); +Var + temp2, temp3, baseInv, r, zero : TFGInt; + i, j, t, b, head : LongWord; + S: AnsiString; +Begin + Base2StringToFGInt('0', zero); + FGIntMod(FGInt, modb, res); + If FGIntCompareAbs(res, zero)=Eq then + Begin + FGIntDestroy(zero); + Exit; + End else FGIntDestroy(res); + FGIntDestroy(zero); + + FGIntToBase2String(exp, S); + t := modb.Number[0]; + b := t; + + If (modb.Number[t] Shr 30) = 1 Then t := t + 1; + SetLength(r.Number, (t + 1)); + r.Number[0] := t; + r.Sign := positive; + For i := 1 To t Do + r.Number[i] := 0; + If t = modb.Number[0] Then + Begin + head := 2147483647; + For j := 29 Downto 0 Do + Begin + head := head Shr 1; + If (modb.Number[t] Shr j) = 1 Then + Begin + r.Number[t] := 1 Shl (j + 1); + break; + End; + End; + End + Else + Begin + r.Number[t] := 1; + head := 2147483647; + End; + + FGIntModInv(modb, r, temp2); + If temp2.Sign = negative Then + FGIntCopy(temp2, BaseInv) + Else + Begin + FGIntCopy(r, BaseInv); + FGIntSubBis(BaseInv, temp2); + End; +// FGIntBezoutBachet(r, modb, temp2, BaseInv); + FGIntAbs(BaseInv); + FGIntDestroy(temp2); + FGIntMod(r, modb, res); + FGIntMulMod(FGInt, res, modb, temp2); + FGIntDestroy(r); + + For i := length(S) Downto 1 Do + Begin + If S[i] = '1' Then + Begin + FGIntmul(res, temp2, temp3); + FGIntDestroy(res); + FGIntMontgomeryMod(temp3, modb, baseinv, res, b, head); + FGIntDestroy(temp3); + End; + FGIntSquare(temp2, temp3); + FGIntDestroy(temp2); + FGIntMontgomeryMod(temp3, modb, baseinv, temp2, b, head); + FGIntDestroy(temp3); + End; + FGIntDestroy(temp2); + FGIntMontgomeryMod(res, modb, baseinv, temp3, b, head); + FGIntCopy(temp3, res); + FGIntDestroy(temp3); + FGIntDestroy(baseinv); +End; + + +// Compute the Greatest Common Divisor of 2 FGInts + +Procedure FGIntGCD(Const FGInt1, FGInt2 : TFGInt; Var GCD : TFGInt); +Var + k : TCompare; + zero, temp1, temp2, temp3 : TFGInt; +Begin + k := FGIntCompareAbs(FGInt1, FGInt2); + If (k = Eq) Then FGIntCopy(FGInt1, GCD) Else + If (k = St) Then FGIntGCD(FGInt2, FGInt1, GCD) Else + Begin + Base10StringToFGInt('0', zero); + FGIntCopy(FGInt1, temp1); + FGIntCopy(FGInt2, temp2); + While (temp2.Number[0] <> 1) Or (temp2.Number[1] <> 0) Do + Begin + FGIntMod(temp1, temp2, temp3); + FGIntCopy(temp2, temp1); + FGIntCopy(temp3, temp2); + FGIntDestroy(temp3); + End; + FGIntCopy(temp1, GCD); + FGIntDestroy(temp2); + FGIntDestroy(zero); + End; +End; + + +// Compute the Least Common Multiple of 2 FGInts + +Procedure FGIntLCM(Const FGInt1, FGInt2 : TFGInt; Var LCM : TFGInt); +Var + temp1, temp2 : TFGInt; +Begin + FGIntGCD(FGInt1, FGInt2, temp1); + FGIntmul(FGInt1, FGInt2, temp2); + FGIntdiv(temp2, temp1, LCM); + FGIntDestroy(temp1); + FGIntDestroy(temp2); +End; + + +// Trialdivision of a FGInt upto 9999 and stopping when a divisor is found, returning ok=false + +Procedure FGIntTrialDiv9999(Const FGInt : TFGInt; Var ok : boolean); +Var + j : LongWord; + i : integer; +Begin + If ((FGInt.Number[1] Mod 2) = 0) Then ok := false + Else + Begin + i := 0; + ok := true; + While ok And (i < 1228) Do + Begin + i := i + 1; + FGIntmodbyint(FGInt, primes[i], j); + If j = 0 Then ok := false; + End; + End; +End; + + +// A prng + +Procedure FGIntRandom1(Var Seed, RandomFGInt : TFGInt); +Var + temp, base : TFGInt; +Begin + Base10StringToFGInt('281474976710656', base); + Base10StringToFGInt('44485709377909', temp); + FGIntMulMod(seed, temp, base, RandomFGInt); + FGIntDestroy(temp); + FGIntDestroy(base); +End; + + +// Perform a Rabin Miller Primality Test nrtest times on FGIntp, returns ok=true when FGIntp passes the test + +Procedure FGIntRabinMiller(Var FGIntp : TFGInt; nrtest : Longword; Var ok : boolean); +Var + j, b, i : LongWord; + m, z, temp1, temp2, temp3, zero, one, two, pmin1 : TFGInt; + ok1, ok2 : boolean; +Begin + randomize; + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + Base10StringToFGInt('2', two); + FGIntsub(FGIntp, one, temp1); + FGIntsub(FGIntp, one, pmin1); + + b := 0; + While (temp1.Number[1] Mod 2) = 0 Do + Begin + b := b + 1; + FGIntShiftRight(temp1); + End; + m := temp1; + + i := 0; + ok := true; + Randomize; + While (i < nrtest) And ok Do + Begin + j := 0; + i := i + 1; + Base10StringToFGInt(AnsiString(inttostr(Primes[Random(1227) + 1])), temp2); + FGIntMontGomeryModExp(temp2, m, FGIntp, z); + FGIntDestroy(temp2); + ok1 := (FGIntCompareAbs(z, one) = Eq); + ok2 := (FGIntCompareAbs(z, pmin1) = Eq); + If Not (ok1 Or ok2) Then + Begin + + While (ok And (j < b)) Do + Begin + If (j > 0) And ok1 Then ok := false + Else + Begin + j := j + 1; + If (j < b) And (Not ok2) Then + Begin + FGIntSquaremod(z, FGIntp, temp3); + FGIntCopy(temp3, z); + ok1 := (FGIntCompareAbs(z, one) = Eq); + ok2 := (FGIntCompareAbs(z, pmin1) = Eq); + If ok2 Then j := b; + End + Else If (Not ok2) And (j >= b) Then ok := false; + End; + End; + + End + End; + + FGIntDestroy(zero); + FGIntDestroy(one); + FGIntDestroy(two); + FGIntDestroy(m); + FGIntDestroy(z); + FGIntDestroy(pmin1); +End; + + +// Compute the coefficients from the Bezout Bachet theorem, FGInt1 * a + FGInt2 * b = GCD(FGInt1, FGInt2) + +Procedure FGIntBezoutBachet(Var FGInt1, FGInt2, a, b : TFGInt); +Var + zero, r1, r2, r3, ta, gcd, temp, temp1, temp2 : TFGInt; +Begin + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + FGIntcopy(FGInt1, r1); + FGIntcopy(FGInt2, r2); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', a); + Base10StringToFGInt('0', ta); + + Repeat + FGIntdivmod(r1, r2, temp, r3); + FGIntDestroy(r1); + r1 := r2; + r2 := r3; + + FGIntmul(ta, temp, temp1); + FGIntsub(a, temp1, temp2); + FGIntCopy(ta, a); + FGIntCopy(temp2, ta); + FGIntDestroy(temp1); + + FGIntDestroy(temp); + Until FGIntCompareAbs(r3, zero) = Eq; + + FGIntGCD(FGInt1, FGInt2, gcd); + FGIntmul(a, FGInt1, temp1); + FGIntsub(gcd, temp1, temp2); + FGIntDestroy(temp1); + FGIntdiv(temp2, FGInt2, b); + FGIntDestroy(temp2); + + FGIntDestroy(ta); + FGIntDestroy(r1); + FGIntDestroy(r2); + FGIntDestroy(gcd); + End + Else FGIntBezoutBachet(FGInt2, FGInt1, b, a); +End; + + +// Find the (multiplicative) Modular inverse of a FGInt in a finite ring +// of additive order base + +Procedure FGIntModInv(Const FGInt1, base : TFGInt; Var Inverse : TFGInt); +Var + zero, one, r1, r2, r3, tb, gcd, temp, temp1, temp2 : TFGInt; +Begin + Base10StringToFGInt('1', one); + FGIntGCD(FGInt1, base, gcd); + If FGIntCompareAbs(one, gcd) = Eq Then + Begin + FGIntcopy(base, r1); + FGIntcopy(FGInt1, r2); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('0', inverse); + Base10StringToFGInt('1', tb); + + Repeat + FGIntDestroy(r3); + FGIntdivmod(r1, r2, temp, r3); + FGIntCopy(r2, r1); + FGIntCopy(r3, r2); + + FGIntmul(tb, temp, temp1); + FGIntsub(inverse, temp1, temp2); + FGIntDestroy(inverse); + FGIntDestroy(temp1); + FGIntCopy(tb, inverse); + FGIntCopy(temp2, tb); + + FGIntDestroy(temp); + Until FGIntCompareAbs(r3, zero) = Eq; + + If inverse.Sign = negative Then + Begin + FGIntadd(base, inverse, temp); + FGIntCopy(temp, inverse); + End; + + FGIntDestroy(tb); + FGIntDestroy(r1); + FGIntDestroy(r2); + End; + FGIntDestroy(gcd); + FGIntDestroy(one); +End; + + +// Perform a (combined) primality test on FGIntp consisting of a trialdivision upto 8192, +// if the FGInt passes perform nrRMtests Rabin Miller primality tests, returns ok when a +// FGInt is probably prime + +Procedure FGIntPrimetest(Var FGIntp : TFGInt; nrRMtests : integer; Var ok : boolean); +Begin + FGIntTrialdiv9999(FGIntp, ok); + If ok Then FGIntRabinMiller(FGIntp, nrRMtests, ok); +End; + + +// Computes the Legendre symbol for a any number and +// p a prime, returns 0 if p divides a, 1 if a is a +// quadratic residu mod p, -1 if a is a quadratic +// nonresidu mod p + +Procedure FGIntLegendreSymbol(Var a, p : TFGInt; Var L : integer); +Var + temp1, temp2, temp3, temp4, temp5, zero, one : TFGInt; + i : LongWord; + ok1, ok2 : boolean; +Begin + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + FGIntMod(a, p, temp1); + If FGIntCompareAbs(zero, temp1) = Eq Then + Begin + FGIntDestroy(temp1); + L := 0; + End + Else + Begin + FGIntDestroy(temp1); + FGIntCopy(p, temp1); + FGIntCopy(a, temp2); + L := 1; + While FGIntCompareAbs(temp2, one) <> Eq Do + Begin + If (temp2.Number[1] Mod 2) = 0 Then + Begin + FGIntSquare(temp1, temp3); + FGIntSub(temp3, one, temp4); + FGIntDestroy(temp3); + FGIntDivByInt(temp4, temp3, 8, i); + If (temp3.Number[1] Mod 2) = 0 Then ok1 := false Else ok1 := true; + FGIntDestroy(temp3); + FGIntDestroy(temp4); + If ok1 = true Then L := L * (-1); + FGIntDivByIntBis(temp2, 2, i); + End + Else + Begin + FGIntSub(temp1, one, temp3); + FGIntSub(temp2, one, temp4); + FGIntMul(temp3, temp4, temp5); + FGIntDestroy(temp3); + FGIntDestroy(temp4); + FGIntDivByInt(temp5, temp3, 4, i); + If (temp3.Number[1] Mod 2) = 0 Then ok2 := false Else ok2 := true; + FGIntDestroy(temp5); + FGIntDestroy(temp3); + If ok2 = true Then L := L * (-1); + FGIntMod(temp1, temp2, temp3); + FGIntCopy(temp2, temp1); + FGIntCopy(temp3, temp2); + End; + End; + FGIntDestroy(temp1); + FGIntDestroy(temp2); + End; + FGIntDestroy(zero); + FGIntDestroy(one); +End; + + +// Compute a square root modulo a prime number +// SquareRoot^2 mod Prime = Square + +Procedure FGIntSquareRootModP(Square, Prime : TFGInt; Var SquareRoot : TFGInt); +Var + one, n, b, s, r, temp, temp1, temp2, temp3 : TFGInt; + a, i, j : longint; + L : Integer; +Begin + Base2StringToFGInt('1', one); + Base2StringToFGInt('10', n); + a := 0; + FGIntLegendreSymbol(n, Prime, L); + While L <> -1 Do + Begin + FGIntAddBis(n, one); + FGIntLegendreSymbol(n, Prime, L); + End; + FGIntCopy(Prime, s); + s.Number[1] := s.Number[1] - 1; + While (s.Number[1] Mod 2) = 0 Do + Begin + FGIntShiftRight(s); + a := a + 1; + End; + FGIntMontgomeryModExp(n, s, Prime, b); + FGIntAdd(s, one, temp); + FGIntShiftRight(temp); + FGIntMontgomeryModExp(Square, temp, Prime, r); + FGIntDestroy(temp); + FGIntModInv(Square, Prime, temp1); + + For i := 0 To (a - 2) Do + Begin + FGIntSquareMod(r, Prime, temp2); + FGIntMulMod(temp1, temp2, Prime, temp); + FGIntDestroy(temp2); + For j := 1 To (a - i - 2) Do + Begin + FGIntSquareMod(temp, Prime, temp2); + FGIntDestroy(temp); + FGIntCopy(temp2, temp); + FGIntDestroy(temp2); + End; + If FGIntCompareAbs(temp, one) <> Eq Then + Begin + FGIntMulMod(r, b, Prime, temp3); + FGIntDestroy(r); + FGIntCopy(temp3, r); + FGIntDestroy(temp3); + End; + FGIntDestroy(temp); + FGIntDestroy(temp2); + If i = (a - 2) Then break; + FGIntSquareMod(b, Prime, temp3); + FGIntDestroy(b); + FGIntCopy(temp3, b); + FGIntDestroy(temp3); + End; + + FGIntCopy(r, SquareRoot); + FGIntDestroy(r); + FGIntDestroy(s); + FGIntDestroy(b); + FGIntDestroy(temp1); + FGIntDestroy(one); + FGIntDestroy(n); +End; + + +End. diff --git a/10.3.0/Keygen/RadKeygen.pas b/10.3.0/Keygen/RadKeygen.pas new file mode 100644 index 0000000..0a2dd39 --- /dev/null +++ b/10.3.0/Keygen/RadKeygen.pas @@ -0,0 +1,392 @@ +unit RadKeygen; + +interface +uses SysUtils,Classes,Windows,Registry,SHFolder,Sha1,FGInt,RadVersion,RadLicense,SHFolderDll; + + + function GenerateSerialNumber():string; + function GetRegistrationCode():string; + function GenerateLicenseFile(SerialNumber,RegistrationCode:string;RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; + function PatchFile(RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; + + + +implementation + +function GetAppDataPath():string; +var + Path:array [0..MAX_PATH-1] of Char; +begin + if Succeeded(SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 0, 0, @Path[0])) then + Result:=string(Path) + else + Result:=''; +end; + + + +function GenerateSerialNumber():string; +const + StrMap:string='ABC2DE34FGHJKLM5NPQRST6U7VWX8YZ9'; + ByteMap:array[0..255] of Byte=($00, $07, $0E, $09, $1C, $1B, $12, $15, $38, $3F, + $36, $31, $24, $23, $2A, $2D, $70, $77, $7E, $79, + $6C, $6B, $62, $65, $48, $4F, $46, $41, $54, $53, + $5A, $5D, $E0, $E7, $EE, $E9, $FC, $FB, $F2, $F5, + $D8, $DF, $D6, $D1, $C4, $C3, $CA, $CD, $90, $97, + $9E, $99, $8C, $8B, $82, $85, $A8, $AF, $A6, $A1, + $B4, $B3, $BA, $BD, $C7, $C0, $C9, $CE, $DB, $DC, + $D5, $D2, $FF, $F8, $F1, $F6, $E3, $E4, $ED, $EA, + $B7, $B0, $B9, $BE, $AB, $AC, $A5, $A2, $8F, $88, + $81, $86, $93, $94, $9D, $9A, $27, $20, $29, $2E, + $3B, $3C, $35, $32, $1F, $18, $11, $16, $03, $04, + $0D, $0A, $57, $50, $59, $5E, $4B, $4C, $45, $42, + $6F, $68, $61, $66, $73, $74, $7D, $7A, $89, $8E, + $87, $80, $95, $92, $9B, $9C, $B1, $B6, $BF, $B8, + $AD, $AA, $A3, $A4, $F9, $FE, $F7, $F0, $E5, $E2, + $EB, $EC, $C1, $C6, $CF, $C8, $DD, $DA, $D3, $D4, + $69, $6E, $67, $60, $75, $72, $7B, $7C, $51, $56, + $5F, $58, $4D, $4A, $43, $44, $19, $1E, $17, $10, + $05, $02, $0B, $0C, $21, $26, $2F, $28, $3D, $3A, + $33, $34, $4E, $49, $40, $47, $52, $55, $5C, $5B, + $76, $71, $78, $7F, $6A, $6D, $64, $63, $3E, $39, + $30, $37, $22, $25, $2C, $2B, $06, $01, $08, $0F, + $1A, $1D, $14, $13, $AE, $A9, $A0, $A7, $B2, $B5, + $BC, $BB, $96, $91, $98, $9F, $8A, $8D, $84, $83, + $DE, $D9, $D0, $D7, $C2, $C5, $CC, $CB, $E6, $E1, + $E8, $EF, $FA, $FD, $F4, $F3); +var + i,v1,v2,v3,v4,v5,v6,v7,v8,v9:Integer; + SumValue:string; + ByteArray:array[0..19] of Byte; +begin + Randomize(); + v1:=0; + v2:=0; + v3:=0; + v4:=0; + v5:=1; + v6:=8217; + v7:=53; + v8:= Random(32) shl 8; + v8:=v8 xor Random(32); + v8:= v8 mod $10000; + SumValue:=Format('%d',[v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8]); + v9:=0; + + for i := 0 to Length(SumValue)-1 do + begin + v9:=v9 xor ByteMap[Ord(SumValue[i+1])]; + end; + ByteArray[0] := ((v8 shr 1) and 8) or ((v8 shr 5) and 4) or (2 * v5 and 2); + ByteArray[1] := ((v7 shr 1) and 16) or ((v7 shr 4) and 8) or ((v6 shr 5) and 2) or ((v6 shr 8) and 1); + ByteArray[2] := (2 * v7 and 16) or (8 * v8 and 8) or ((v5 shr 1) and 4) or ((v6 shr 4) and 2) or (v3 and 1); + ByteArray[3] := (4 * v5 and 16); + ByteArray[4] := (4 * v9 and 16) or ((v6 shr 4) and 8); + ByteArray[5] := (8 * v4 and 8) or ((v8 shr 1) and 4) or ((v8 shr 12) and 2); + ByteArray[6] := ((v9 shr 3) and 8) or ((v8 shr 4) and 4) or (2 * v1 and 2); + ByteArray[7] := ((v8 shr 11) and 16) or ((v8 shr 7) and 8) or (4 * v6 and 4) or ((v5 shr 3) and 2); + ByteArray[8] := ((v8 shr 7) and 16) or ((v6 shr 1) and 1); + ByteArray[9] := (4 * v6 and 16) or (v9 and 8) or (v8 and 4); + ByteArray[10] := ((v8 shr 9) and 8); + ByteArray[11] := (4 * v9 and 8) or (4 * v9 and 4) or (v8 and 2) or ((v8 shr 5) and 1); + ByteArray[12] := ((v8 shr 8) and 1); + ByteArray[13] := ((v6 shr 7) and 16) or ((v9 shr 7) and 1); + ByteArray[14] := (2 * v7 and 2) or ((v7 shr 1) and 1); + ByteArray[15] := (v6 and 8) or ((v6 shr 2) and 4) or ((v8 shr 9) and 1); + ByteArray[16] := (16 * v2 and 16) or (2 * v7 and 8) or ((v5 shr 1) and 1); + ByteArray[17] := ((v9 shr 3) and 2); + ByteArray[18] := (v7 and 16) or ((v6 shr 6) and 8) or ((v6 shr 8) and 4) or ((v8 shr 13) and 2) or ((v9 shr 5) and 1); + ByteArray[19] := ((v6 shr 9) and 16) or ((v7 shr 3) and 8) or ((v6 shr 11) and 2); + + Result:=''; + for i := 0 to Length(ByteArray)-1 do + begin + if (i=4) or (i=10) or (i=16) then Result:=Result+'-'; + Result:=Result+StrMap[ByteArray[i]+1]; + end; + +end; + +function GetRegistrationCode():string; + function GetKey():DWORD; + const + KeyMap:string='ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890X'; + var + ComputerName:array[0..MAX_PATH-1] of Char; + Key:string; + nSize:Cardinal; + i,j:Integer; + begin + Result:=$ED864640; + if (GetComputerName(@ComputerName[0],nSize)=False) then + Key:='localhost' + else + Key:=string(ComputerName); + + Key:=UpperCase(Key); + for i := 0 to Length(Key)-1 do + begin + for j := 0 to Length(KeyMap)-1 do + begin + if (Key[i+1]=KeyMap[j+1]) then Break; + end; + if j>=Length(KeyMap) then + Result:=Result+16*88 + else + Result:=Result+16*Ord(KeyMap[36-j]); + end; + end; + +var + FileName:string; + MemoryStream:TMemoryStream; + dwVerify,dwSize:DWORD; + pBuf,p:PByte; + i,j,eax,ebx,esi:Cardinal; + +begin + Result:=''; + MemoryStream:=TMemoryStream.Create; + try + if GetAppDataPath<>'' then + begin + FileName:=GetAppDataPath+'\Embarcadero\.licenses\.cg_license'; + if FileExists(FileName) then + begin + MemoryStream.LoadFromFile(FileName); + end + else + begin + FileName:=GetAppDataPath+'\Embarcadero\.cg_license'; + if FileExists(FileName) then + begin + MemoryStream.LoadFromFile(FileName); + end; + end; + end; + if MemoryStream.Size>8 then + begin + MemoryStream.Position:=0; + MemoryStream.Read(dwVerify,SizeOf(dwVerify)); + MemoryStream.Read(dwSize,SizeOf(dwSize)); + dwVerify:=(Swap(loWord(dwVerify)) shl 16) or Swap(HiWord(dwVerify)); + dwSize:=(Swap(loWord(dwSize)) shl 16) or Swap(HiWord(dwSize)); + pBuf:=AllocMem(dwSize); + MemoryStream.Read(pBuf^,dwSize); + p:=pBuf; + eax:=GetKey(); + for i := 0 to dwSize-1 do + begin + esi:=p^; + if (esi and $80)=$80 then esi:=esi or $ffffff00; + ebx:=(eax shr 24) and $FF; + p^:=p^ xor ebx; + inc(p); + eax:=eax xor esi; + ebx:=eax shl 8; + eax:=eax xor ebx; + ebx:=eax shl 16; + eax:= eax xor ebx; + ebx:=eax shl 24; + eax:=eax xor ebx; + end; + eax:=eax and $7FFFFFFF; + if eax=dwVerify then + begin + for i := 0 to dwSize-1 do + begin + if PByte(Cardinal(pBuf)+i)^=36 then Break; //$ + end; + Inc(i); + j:=0; + while (i13) and (j<10) do + begin + Result:=Result+Chr(PByte(Cardinal(pBuf)+i)^); + Inc(i); + inc(j); + end; + end; + FreeMem(pBuf,dwSize); + end; + finally + MemoryStream.Free; + end; + +end; + + +procedure PatchmOasisRuntime(RadStudioVersion:PRadStudioVersion); +var + Stream:TMemoryStream; + FileName:string; + P:PByte; +begin + FileName:=Format('%s\%s\OFFLINE\mOasisDesigntime.dll\mOasisRuntime.dll',[GetAppDataPath,RadStudioVersion^.SetupGUID]); + if FileExists(FileName) then + begin + if SHA1Print(SHA1File(FileName))=RadStudioVersion^.mOasisRuntimePatchInfo.Sha1 then + begin + Stream:=TMemoryStream.Create; + try + Stream.LoadFromFile(FileName); + P:= PByte(DWORD(Stream.Memory)+RadStudioVersion^.mOasisRuntimePatchInfo.PatchOffset); + P^:=$EB; + Stream.SaveToFile(FileName); + finally + Stream.Free; + end; + end; + end; +end; + +function GenerateLicenseFile(SerialNumber,RegistrationCode:string;RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; +const + ModStr:string='8EBD9E688D7106E57BCF63D41BADCE133FEB4CDB718F48F7BF39F6A26EB60BAE'+ + '0E930DC984FDED2537750C9DCFBB87D7AC7F3AA4D65D9E35C2D277BCB0ECDCA0'+ + '2D7DAE739AC8BCAE86914F6E77C17A82C77438421FC315DC38F09C7E840AF41E'+ + '663C5562222E661ED22578A234B58481F862CEABF477C89AE70F15134F83BC7E'+ + 'C2EF57E7274EB74353DE22283113485D9803D4050EF46DB1467EE9D066B104EB'+ + '385D3C36BD29B58E237E22C0BE66D450BDFCED524481B6DCE3F83BBEC547F926'+ + 'AD23057504DEDB9723EBFD26218167AAC79485FF608F8881D9A6AF5C57BE9A2F'+ + 'B52047ABA92F806955580517F6D147BA1FD5DB3EEF1CEE4CA250D1C0FA824CD9'; + ExpStr:string='7E8325B1791B628766F2EB82057E4895DB234C1D7B4B09DB3B8BBE433D68F075'+ + '36C9B38096F51088D9DC4E7058BBD7AC9A60B1B383A3BA23E026F6A53112DE80'+ + 'C191115BB9268DC509D424D8BE1FA7DBDDB7EE5CFD15C57C48A349B1008B4CCE'+ + 'DCC240D31784945260E3814612FD871242FA203F5C1006A6F47FF3A807E3B4DE'+ + '39535FB5523ABED7B4337606E69245EC13BF9B553FD6F45B0FD290D7CBBEB8C8'+ + 'DF2252DE7EB6A83A679873CC9842B52A093ED00742F11CD23CB5278873253E79'+ + '0E30B16AC72B7ACF9824B568ED971D768B95CA9D4C9A40C884542B8696AADF58'+ + '184CE6376E51451EF8D266ECA691ECAB25E15AA8E527312755A55C2B7D390AD9'; +var + Slip,Tmp:AnsiString; + Len,v2,v5:Cardinal; + FGInt,exp,modb,res:TFGInt; + i:Integer; + Stream:TMemoryStream; + SearchRec:TSearchRec; +begin + Result:=False; + if (Trim(SerialNumber)='') or (Trim(RegistrationCode)='') or + (TryStrToInt(Trim(RegistrationCode),i)=False) then Exit; + + Slip:=AnsiString(CreateLicenseText(SerialNumber,RegistrationCode,RadStudioVersion)); + + Len:= Length(Slip); + Len:=(Swap(loWord(Len)) shl 16) or Swap(HiWord(Len)); + Tmp:=PChar(@Len)^+(PChar(@Len)+1)^+(PChar(@Len)+2)^+(PChar(@Len)+3)^+Slip; + Tmp:='01'+StringOfChar('F',66)+'00'+UpperCase(SHA1Print(SHA1String(Tmp))); + + ConvertHexStringToBase256String(Tmp,Tmp); + Base256StringToFGInt(Tmp,FGInt); + + ConvertHexStringToBase256String(ExpStr,Tmp); + Base256StringToFGInt(Tmp,exp); + + ConvertHexStringToBase256String(ModStr,Tmp); + Base256StringToFGInt(Tmp,modb); + + FGIntModExp(FGInt,exp,modb,res); + FGIntToBase256String(res,Tmp); + PGPConvertBase256to64(Tmp,Tmp); + + FGIntDestroy(FGInt); + FGIntDestroy(exp); + FGIntDestroy(modb); + FGIntDestroy(res); + + Slip:=StringReplace(Slip,'e.sign'#10'0'#10,'e.sign'#10'CgeEeu66fCgQJBaqKQwwyiqyHYb22nc2VZRmQVasSDnZAtB/QTLt0CYdgdN16XCz/Nt032fMwTsytchG0l2UeA=='#10,[rfReplaceAll]); + Slip:=StringReplace(Slip,'e.sign2'#10'0'#10,'e.sign2'#10'JWKzOwTKBL+zOP5wrouG5ta/mH+Fvsgb7hb8oJTzu4r3gK/6sh95zKAWKiydqsgvV9pxPXTAlkxv9wAecqJKTQ=='#10,[rfReplaceAll]); + Slip:=StringReplace(Slip,'e.sign3'#10'0'#10,'e.sign3'#10+Tmp+#10,[rfReplaceAll]); + + v2:=$E7F931C2; + for i := 0 to Length(Slip) - 1 do + begin + Slip[i+1]:= AnsiChar(Chr(Ord(Slip[i+1]) xor ((v2 shr 24) and $FF))); + v5:=Ord(Slip[i+1]); + if (v5 and $80)=$80 then v5:=v5 or $ffffff00; + v5:= v5 xor v2; + v5:=(v5 shl 8) xor v5; + v5:=(v5 shl 16) xor v5; + v5:=(v5 shl 24) xor v5; + v2:=v5; + end; + + v2:=(Swap(loWord(v2)) shl 16) or Swap(HiWord(v2)); + Len:=Length(Slip); + Len:=(Swap(loWord(Len)) shl 16) or Swap(HiWord(Len)); + + Stream:=TMemoryStream.Create; + try + Stream.Write(v2,4); + Stream.Write(Len,4); + Stream.Write(Slip[1],Length(Slip)); + if (FileName='') or (not DirectoryExists(ExtractFilePath(FileName))) then + begin + if DirectoryExists(GetAppDataPath+'\Embarcadero') then + begin + Tmp:=Format('%s\Embarcadero\.%d_%d.19*.slip',[GetAppDataPath,RadStudioVersion^.LicHostPID,RadStudioVersion^.LicHostSKU]); +{ + if (FindFirst(Tmp,faAnyFile,SearchRec)=0) and + (MessageBox(0,PAnsiChar(Format('Do you want to Delete the old slip file int %s folder',[GetAppDataPath])), 'Rad Studio Keygen',MB_YESNO + MB_ICONQUESTION) = IDYES) then +} + if (FindFirst(Tmp,faAnyFile,SearchRec)=0) then + begin + DeleteFile(PAnsiChar(Format('%s\Embarcadero\%s',[GetAppDataPath,SearchRec.Name]))); + while FindNext(SearchRec)=0 do + begin + DeleteFile(PAnsiChar(Format('%s\Embarcadero\%s',[GetAppDataPath,SearchRec.Name]))); + end; + end; + SysUtils.FindClose(SearchRec); + FileName:=Format('%s\Embarcadero\.%d_%d.19%d%d%d%d%d%d%d%d%d%d%d.slip',[GetAppDataPath,RadStudioVersion^.LicHostPID,RadStudioVersion^.LicHostSKU, + Random(10),Random(10),Random(10),Random(10),Random(10), + Random(10),Random(10),Random(10),Random(10),Random(10),Random(10)]); + end + else + FileName:=ExtractFileDir(ParamStr(0))+'\RAD Studio Activation.slip'; + end; + Stream.SaveToFile(FileName); + PatchmOasisRuntime(RadStudioVersion); + Result:=True; + finally + Stream.Free; + end; +end; + +function PatchFile(RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; +var + Stream:TMemoryStream; + Reg:TRegistry; + RootDir:string; +begin + Result:=False; + RootDir:=''; + FileName:=''; + Reg:=TRegistry.Create; + try + Reg.RootKey:=HKEY_LOCAL_MACHINE; + Reg.OpenKey(Format('SOFTWARE\Embarcadero\BDS\%s',[RadStudioVersion^.BDSVersion]), False); + RootDir:=Reg.ReadString('RootDir'); + finally + Reg.Free; + end; + if DirectoryExists(RootDir+'\Bin') and FileExists(RootDir+'\Bin\bds.exe') and FileExists(RootDir+'\Bin\LicenseManager.exe') then + begin + if (SHA1Print(SHA1File(RootDir+'\Bin\bds.exe'))=RadStudioVersion^.BdsPatchInfo.Sha1) and + (SHA1Print(SHA1File(RootDir+'\Bin\LicenseManager.exe'))=RadStudioVersion^.LicenseManagerPatchInfo.Sha1) then + begin + CreateSHFolderData(RadStudioVersion); + FileName:= RootDir+'\Bin\SHFolder.dll'; + Stream:=TMemoryStream.Create; + try + Stream.Write(SHFolderData,Length(SHFolderData)); + Stream.SaveToFile(FileName); + Result:=True; + finally + Stream.Free; + end; + end; + end; +end; + +end. diff --git a/10.3.0/Keygen/RadLicense.pas b/10.3.0/Keygen/RadLicense.pas new file mode 100644 index 0000000..970d5b1 --- /dev/null +++ b/10.3.0/Keygen/RadLicense.pas @@ -0,0 +1,339 @@ +unit RadLicense; + +interface +uses RadVersion,SysUtils; + +function CreateLicenseText(SerialNumber,ActiveCode:string;RadStudioVersion:PRadStudioVersion):string; + +implementation + +function CreateLicenseText(SerialNumber,ActiveCode:string;RadStudioVersion:PRadStudioVersion):string; +var + pid,skuid:string; +begin + pid:=IntToStr(RadStudioVersion^.LicHostPID); + skuid:=IntToStr(RadStudioVersion^.LicHostSKU); + + Result:='11'#10; + Result:=Result+'e.pkg'#10'RAD Studio '+ RadStudioVersion^.LicVerStr +' Architect'#10; + Result:=Result+'e.pt'#10'10'#10; + Result:=Result+'e.sign'#10'0'#10; + Result:=Result+'e.sign2'#10'0'#10; + Result:=Result+'e.sign3'#10'0'#10; + Result:=Result+'export.allowed'#10'0'#10; + Result:=Result+'import.allowed'#10'1'#10; + Result:=Result+'import.silent'#10'1'#10; + Result:=Result+'licensed.serialno'#10+SerialNumber+#10; + Result:=Result+'nodelock.node'#10'0'#10; + Result:=Result+'nodelock.session'#10+ActiveCode+#10; + + Result:=Result+'6'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'2000'#10; + Result:=Result+'productid'#10+ RadStudioVersion^.LicDelphiPID +#10; + Result:=Result+'productid_label'#10'Delphi '+ RadStudioVersion^.LicVerStr +#10; + Result:=Result+'productsku'#10+skuid+#10; + Result:=Result+'productsku_label'#10'Architect'#10; + Result:=Result+'rndkey'#10'15687805'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10+skuid+#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Permanent'#10; + Result:=Result+'title'#10'Delphi '+ RadStudioVersion^.LicVerStr +' Architect'#10; + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'25'#10; + Result:=Result+'26'#10; + Result:=Result+'Android'#10'T'#10; + Result:=Result+'DESIGNDIAGRAMS'#10'TRUE'#10; + Result:=Result+'DESIGNPROJECTS'#10'TRUE'#10; + Result:=Result+'Desktop'#10'T'#10; + Result:=Result+'FULLQA'#10'TRUE'#10; + Result:=Result+'FulliOS'#10'T'#10; + Result:=Result+'Linux64'#10'T'#10; + Result:=Result+'MODELLING'#10'TRUE'#10; + Result:=Result+'Mobile'#10'T'#10; + Result:=Result+'OSX32'#10'T'#10; + Result:=Result+'Win32'#10'T'#10; + Result:=Result+'Win64'#10'T'#10; + Result:=Result+'a100'#10'MakeThingsHappen'#10; + Result:=Result+'a1000'#10'PrintMoreMoney'#10; + Result:=Result+'a101'#10'ImGivinItAllShesGot'#10; + Result:=Result+'a200'#10'StampIt'#10; + Result:=Result+'a250'#10'ItsToolTimeBaby'#10; + Result:=Result+'a300'#10'TheMalteseFalcon'#10; + Result:=Result+'a301'#10'GlueSolvent'#10; + Result:=Result+'hostsuite'#10+pid+#10; + Result:=Result+'iOSDevice'#10'T'#10; + Result:=Result+'iOSDevice32'#10'T'#10; + Result:=Result+'iOSDevice64'#10'T'#10; + Result:=Result+'iOSSimulator'#10'T'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'updates'#10'1'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'4000'#10; + Result:=Result+'productid'#10+ RadStudioVersion^.LicCBuilderPID +#10; + Result:=Result+'productid_label'#10'C++Builder '+ RadStudioVersion^.LicVerStr +#10; + Result:=Result+'productsku'#10+skuid+#10; + Result:=Result+'productsku_label'#10'Architect'#10; //Architect + Result:=Result+'rndkey'#10'15687805'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10+skuid+#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Permanent'#10; + Result:=Result+'title'#10'C++Builder '+ RadStudioVersion^.LicVerStr +' Architect'#10; + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'19'#10; + Result:=Result+'25'#10; + Result:=Result+'Android'#10'T'#10; + Result:=Result+'DESIGNDIAGRAMS'#10'TRUE'#10; + Result:=Result+'DESIGNPROJECTS'#10'TRUE'#10; + Result:=Result+'Desktop'#10'T'#10; + Result:=Result+'FULLQA'#10'TRUE'#10; + Result:=Result+'FulliOS'#10'T'#10; + Result:=Result+'MODELLING'#10'TRUE'#10; + Result:=Result+'Mobile'#10'T'#10; + Result:=Result+'OSX32'#10'T'#10; + Result:=Result+'Win32'#10'T'#10; + Result:=Result+'Win64'#10'T'#10; + Result:=Result+'a100'#10'MakeThingsHappen'#10; + Result:=Result+'a1000'#10'PrintMoreMoney'#10; + Result:=Result+'a101'#10'ImGivinItAllShesGot'#10; + Result:=Result+'a200'#10'StampIt'#10; + Result:=Result+'a250'#10'ItsToolTimeBaby'#10; + Result:=Result+'a300'#10'TheMalteseFalcon'#10; + Result:=Result+'a301'#10'GlueSolvent'#10; + Result:=Result+'hostsuite'#10+pid+#10; + Result:=Result+'iOSDevice'#10'T'#10; + Result:=Result+'iOSDevice32'#10'T'#10; + Result:=Result+'iOSDevice64'#10'T'#10; + Result:=Result+'iOSSimulator'#10'T'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'updates'#10'1'#10; + + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'0'#10; + Result:=Result+'platform_label'#10'All'#10; + Result:=Result+'product'#10'7000'#10; + Result:=Result+'productid'#10'7111'#10; + Result:=Result+'productid_label'#10'InterBase XE7'#10; //InterBase XE7 + Result:=Result+'productsku'#10'0'#10; + Result:=Result+'productsku_label'#10'Server'#10; //Server + Result:=Result+'rndkey'#10'15687805'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'0'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Unlimited'#10; + Result:=Result+'title'#10'InterBase XE7 Server'#10; //InterBase XE7 Server + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'6'#10; + Result:=Result+'21'#10; + Result:=Result+'changeView'#10'1'#10; + Result:=Result+'connectionMonitoring'#10'1'#10; + Result:=Result+'connectionsPerUser'#10'200'#10; + Result:=Result+'customVarId'#10' '#10; + Result:=Result+'databaseAccess'#10'1'#10; + Result:=Result+'dbEncryption'#10'1'#10; + Result:=Result+'ddlOperations'#10'1'#10; + Result:=Result+'devLicense'#10'1'#10; + Result:=Result+'externalFileAccess'#10'1'#10; + Result:=Result+'internetAccess'#10'1'#10; + Result:=Result+'languages'#10'ALL'#10; + Result:=Result+'licensedCpus'#10'32'#10; + Result:=Result+'licensedUsers'#10'5000'#10; + Result:=Result+'nodeID'#10' '#10; + Result:=Result+'otwEncryption'#10'1'#10; + Result:=Result+'remoteAccess'#10'1'#10; + Result:=Result+'serverAccess'#10'1'#10; + Result:=Result+'togoAccess'#10'0'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'useAddons'#10'0'#10; + Result:=Result+'version'#10'12'#10; + + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'0'#10; + Result:=Result+'platform_label'#10'All'#10; + Result:=Result+'product'#10'7000'#10; + Result:=Result+'productid'#10'7111'#10; + Result:=Result+'productid_label'#10'InterBase XE7'#10; //InterBase XE7 + Result:=Result+'productsku'#10'16'#10; + Result:=Result+'productsku_label'#10'ToGo Edition'#10; //ToGo Edition + Result:=Result+'rndkey'#10'15687805'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'16'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Unlimited'#10; + Result:=Result+'title'#10'InterBase XE7 ToGo Edition'#10; //InterBase XE7 ToGo Edition + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'6'#10; + Result:=Result+'21'#10; + Result:=Result+'changeView'#10'1'#10; + Result:=Result+'connectionMonitoring'#10'1'#10; + Result:=Result+'connectionsPerUser'#10'200'#10; + Result:=Result+'customVarId'#10' '#10; + Result:=Result+'databaseAccess'#10'1'#10; + Result:=Result+'dbEncryption'#10'1'#10; + Result:=Result+'ddlOperations'#10'1'#10; + Result:=Result+'devLicense'#10'1'#10; + Result:=Result+'externalFileAccess'#10'1'#10; + Result:=Result+'internetAccess'#10'1'#10; + Result:=Result+'languages'#10'ALL'#10; + Result:=Result+'licensedCpus'#10'32'#10; + Result:=Result+'licensedUsers'#10'5000'#10; + Result:=Result+'nodeID'#10' '#10; + Result:=Result+'otwEncryption'#10'1'#10; + Result:=Result+'remoteAccess'#10'1'#10; + Result:=Result+'serverAccess'#10'1'#10; + Result:=Result+'togoAccess'#10'1'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'useAddons'#10'0'#10; + Result:=Result+'version'#10'12'#10; + + + + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'14100'#10; + Result:=Result+'productid'#10'14110'#10; + Result:=Result+'productid_label'#10'ER/Studio 2016'#10; + Result:=Result+'productsku'#10'15'#10; + Result:=Result+'productsku_label'#10'Developer MultiPlatform'#10; //Developer MultiPlatform + Result:=Result+'rndkey'#10'15687805'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'15'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Permanent'#10; + Result:=Result+'title'#10'ER/Studio Developer 2016'#10; + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'10'#10; + Result:=Result+'30'#10; + Result:=Result+'CaErwin3Erx'#10'T'#10; + Result:=Result+'CaErwin3ErxImport.MicrosoftOfficeVisio'#10'T'#10; + Result:=Result+'CaErwin4Xml'#10'T'#10; + Result:=Result+'CaErwin7ModelManager'#10'T'#10; + Result:=Result+'CaErwin7Xml'#10'T'#10; + Result:=Result+'CaErwin8ModelManager'#10'T'#10; + Result:=Result+'CaErwin8Xml'#10'T'#10; + Result:=Result+'CaErwin9Mart'#10'T'#10; + Result:=Result+'CaErwin9Xml'#10'T'#10; + Result:=Result+'CaMart9'#10'T'#10; + Result:=Result+'CaModelManager7'#10'T'#10; + Result:=Result+'CaModelManager8'#10'T'#10; + Result:=Result+'CrossPlatform'#10'T'#10; + Result:=Result+'IbmInfoSphereDiscoveryImport.CaErwinDataProfiler'#10'T'#10; + Result:=Result+'IbmRationalDataArchitect'#10'T'#10; + Result:=Result+'IbmRationalDataArchitectImport.IbmDb2DataWarehouse'#10'T'#10; + Result:=Result+'IbmRationalRose98Import.MicrosoftVisualStudioModeler'#10'T'#10; + Result:=Result+'OmgCwmXmiImport.CaErwinDataProfiler'#10'T'#10; + Result:=Result+'OmgUml2XmiImport.PowerDesignerOom'#10'T'#10; + Result:=Result+'OmgUml2XmiImport.SparxEA'#10'T'#10; + Result:=Result+'OmgUmlXmiImport.SparxEA'#10'T'#10; + Result:=Result+'OmgUmlXmiImport.SybasePowerDesignerOom'#10'T'#10; + Result:=Result+'OracleDesigner'#10'T'#10; + Result:=Result+'SybasePowerDesignerCdm06'#10'T'#10; + Result:=Result+'SybasePowerDesignerCdm07'#10'T'#10; + Result:=Result+'SybasePowerDesignerLdm15'#10'T'#10; + Result:=Result+'SybasePowerDesignerPdm07'#10'T'#10; + Result:=Result+'baseLicense'#10'Developer'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'updates'#10'1'#10; + + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'2700'#10; + Result:=Result+'productid'#10'2705'#10; + Result:=Result+'productid_label'#10'HTML5 Builder'#10; //HTML5 Builder + Result:=Result+'productsku'#10'0'#10; + Result:=Result+'productsku_label'#10'RadPHP'#10; //RadPHP + Result:=Result+'rndkey'#10'15687805'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'0'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Permanent'#10; + Result:=Result+'title'#10'HTML5 Builder'#10; //HTML5 Builder + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'5'#10; + Result:=Result+'1'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + +end; + + +end. diff --git a/10.3.0/Keygen/RadVersion.pas b/10.3.0/Keygen/RadVersion.pas new file mode 100644 index 0000000..88c63f1 --- /dev/null +++ b/10.3.0/Keygen/RadVersion.pas @@ -0,0 +1,85 @@ +unit RadVersion; + +interface +uses Windows,Classes,SysUtils; +type + TPatchInfo=record + Crc:DWORD; + Sha1:string; + PatchOffset:DWORD; + FinalizeArrayOffset:DWORD; + end; + + TRadStudioVersion=record + Name:string; // Rad Studio 10.2 Tokyo Update2 + Ver:string; // 25.0.29039.2004 + BDSVersion:string; // 19.0 + LicVerStr:string; // 10.2 Tokyo + LicHostPID:Integer; // 8219 + LicHostSKU:Integer; // 52 + LicDelphiPID:string; // 2025 + LicCBuilderPID:string; // 4022 + BdsPatchInfo:TPatchInfo; + LicenseManagerPatchInfo:TPatchInfo; + mOasisRuntimePatchInfo:TPatchInfo; + SetupGUID:string; + ISOUrl:string; + ISOMd5:string; + end; + PRadStudioVersion=^TRadStudioVersion; +var + RadStudioVersionList:TStringList; +implementation + +procedure InitRadStudioVersion(VerList:TStringList); +var + RadStudioVersion:PRadStudioVersion; +begin + New(RadStudioVersion); + with RadStudioVersion^ do + begin + Name := 'Rad Studio 10.3 Rio 4364 Architect'; + Ver := '26.0.32429.4364'; + BDSVersion := '20.0'; + LicVerStr := '10.3 Rio'; + LicHostPID := 8220; + LicHostSKU := 53; + LicDelphiPID := '2026'; + LicCBuilderPID := '4023'; + BdsPatchInfo.Crc := $C426EC4A; + BdsPatchInfo.Sha1 := '43BB879FE9EFD7B8752F2B5D99DF31F7CD948D68'; + BdsPatchInfo.PatchOffset := $1F724; + BdsPatchInfo.FinalizeArrayOffset := $11EF7C; + LicenseManagerPatchInfo.Crc := $0D512F70; + LicenseManagerPatchInfo.Sha1 := '8D16D4521BCC12D537EB20B33864654E7A5B81C0'; + LicenseManagerPatchInfo.PatchOffset := $1F002C; + LicenseManagerPatchInfo.FinalizeArrayOffset := $6227A4; + mOasisRuntimePatchInfo.Sha1 := '101FC6D71A1DDEAF3B079477560DD0307ADE3C80'; + mOasisRuntimePatchInfo.PatchOffset := $0016CFE9; + SetupGUID := '{426A3606-6CB8-4CF8-87A8-44388377C47D}'; + ISOUrl := 'http://altd.embarcadero.com/download/radstudio/10.3/delphicbuilder10_3_0_94364.iso'; + ISOMd5 := '0882D58CB53A7D0A828CC45D06C6ECD0'; + end; + VerList.AddObject(RadStudioVersion^.Name, TObject(RadStudioVersion)); +end; + +procedure FinallyRadStudioVersion(VerList:TStringList); +var + RadStudioVersion:PRadStudioVersion; +begin + while VerList.Count>0 do + begin + RadStudioVersion:=PRadStudioVersion(VerList.Objects[0]); + if RadStudioVersion<>nil then Dispose(RadStudioVersion); + VerList.Delete(0); + end; +end; + +initialization + RadStudioVersionList:= TStringList.Create; + InitRadStudioVersion(RadStudioVersionList); +finalization + FinallyRadStudioVersion(RadStudioVersionList); + FreeAndNil(RadStudioVersionList); + +end. diff --git a/10.3.0/Keygen/SHFolderDll.pas b/10.3.0/Keygen/SHFolderDll.pas new file mode 100644 index 0000000..f91c8c4 --- /dev/null +++ b/10.3.0/Keygen/SHFolderDll.pas @@ -0,0 +1,894 @@ +unit SHFolderDll; + +interface +uses RadVersion,Windows; + + procedure CreateSHFolderData(RadStudioVersion:PRadStudioVersion); + +var + SHFolderData: array[0..13823] of byte = ( + $4D, $5A, $90, $00, $03, $00, $00, $00, $04, $00, $00, $00, $FF, $FF, $00, $00, + $B8, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $D8, $00, $00, $00, + $0E, $1F, $BA, $0E, $00, $B4, $09, $CD, $21, $B8, $01, $4C, $CD, $21, $54, $68, + $69, $73, $20, $70, $72, $6F, $67, $72, $61, $6D, $20, $63, $61, $6E, $6E, $6F, + $74, $20, $62, $65, $20, $72, $75, $6E, $20, $69, $6E, $20, $44, $4F, $53, $20, + $6D, $6F, $64, $65, $2E, $0D, $0D, $0A, $24, $00, $00, $00, $00, $00, $00, $00, + $C9, $E7, $94, $1A, $8D, $86, $FA, $49, $8D, $86, $FA, $49, $8D, $86, $FA, $49, + $68, $DF, $FE, $48, $88, $86, $FA, $49, $84, $FE, $69, $49, $88, $86, $FA, $49, + $8D, $86, $FB, $49, $A7, $86, $FA, $49, $7F, $DF, $F3, $48, $8A, $86, $FA, $49, + $7F, $DF, $FA, $48, $8C, $86, $FA, $49, $7F, $DF, $05, $49, $8C, $86, $FA, $49, + $7F, $DF, $F8, $48, $8C, $86, $FA, $49, $52, $69, $63, $68, $8D, $86, $FA, $49, + $00, $00, $00, $00, $00, $00, $00, $00, $50, $45, $00, $00, $4C, $01, $05, $00, + $E1, $70, $F1, $55, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $00, $02, $21, + $0B, $01, $0E, $00, $00, $1C, $00, $00, $00, $18, $00, $00, $00, $00, $00, $00, + $80, $18, $00, $00, $00, $10, $00, $00, $00, $30, $00, $00, $00, $00, $00, $10, + $00, $10, $00, $00, $00, $02, $00, $00, $05, $00, $01, $00, $00, $00, $00, $00, + $05, $00, $01, $00, $00, $00, $00, $00, $00, $70, $00, $00, $00, $04, $00, $00, + $FD, $77, $00, $00, $02, $00, $40, $05, $00, $00, $10, $00, $00, $10, $00, $00, + $00, $00, $10, $00, $00, $10, $00, $00, $00, $00, $00, $00, $10, $00, $00, $00, + $B0, $36, $00, $00, $6B, $00, $00, $00, $28, $38, $00, $00, $3C, $00, $00, $00, + $00, $50, $00, $00, $E0, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $00, $00, $E0, $01, $00, $00, + $30, $36, $00, $00, $1C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $50, $36, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $30, $00, $00, $B0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $2E, $74, $65, $78, $74, $00, $00, $00, $0D, $1A, $00, $00, $00, $10, $00, $00, + $00, $1C, $00, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $20, $00, $00, $60, $2E, $72, $64, $61, $74, $61, $00, $00, + $32, $0C, $00, $00, $00, $30, $00, $00, $00, $0E, $00, $00, $00, $20, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $2E, $64, $61, $74, $61, $00, $00, $00, $8C, $05, $00, $00, $00, $40, $00, $00, + $00, $04, $00, $00, $00, $2E, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $C0, $2E, $72, $73, $72, $63, $00, $00, $00, + $E0, $01, $00, $00, $00, $50, $00, $00, $00, $02, $00, $00, $00, $32, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $2E, $72, $65, $6C, $6F, $63, $00, $00, $E0, $01, $00, $00, $00, $60, $00, $00, + $00, $02, $00, $00, $00, $34, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $42, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $51, $53, $56, $33, $F6, $56, $68, $80, $00, $00, $00, $6A, $03, $56, $6A, $01, + $68, $00, $00, $00, $80, $51, $FF, $15, $00, $30, $00, $10, $8B, $D8, $83, $FB, + $FF, $0F, $84, $81, $00, $00, $00, $57, $8D, $44, $24, $0C, $89, $74, $24, $0C, + $50, $53, $FF, $15, $04, $30, $00, $10, $8B, $F8, $83, $FF, $FF, $74, $61, $39, + $74, $24, $0C, $75, $5B, $55, $56, $56, $56, $6A, $02, $56, $53, $FF, $15, $08, + $30, $00, $10, $8B, $E8, $83, $FD, $FF, $74, $45, $56, $56, $56, $6A, $04, $55, + $FF, $15, $0C, $30, $00, $10, $8B, $D0, $85, $D2, $74, $2C, $83, $CE, $FF, $8B, + $CA, $85, $FF, $74, $1A, $0F, $B6, $01, $8D, $49, $01, $33, $C6, $C1, $EE, $08, + $0F, $B6, $C0, $33, $34, $85, $D0, $30, $00, $10, $83, $EF, $01, $75, $E6, $52, + $F7, $D6, $FF, $15, $10, $30, $00, $10, $55, $FF, $15, $14, $30, $00, $10, $5D, + $53, $FF, $15, $14, $30, $00, $10, $5F, $8B, $C6, $5E, $5B, $59, $C3, $CC, $CC, + $C7, $44, $24, $10, $00, $00, $00, $00, $C7, $44, $24, $0C, $00, $00, $00, $00, + $FF, $25, $A4, $30, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $FF, $25, $A8, $30, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $33, $C0, $40, $C2, $04, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $81, $B9, $F0, $0F, $00, $00, $78, $56, $34, $12, $53, $8D, $99, $F0, $0F, + $00, $00, $74, $52, $56, $57, $8B, $3D, $18, $30, $00, $10, $8D, $44, $24, $0C, + $50, $6A, $40, $8D, $B1, $40, $F6, $02, $00, $6A, $02, $56, $FF, $D7, $B8, $B3, + $01, $00, $00, $66, $89, $06, $8D, $44, $24, $0C, $50, $FF, $74, $24, $10, $6A, + $02, $56, $FF, $D7, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $04, $53, $FF, $D7, + $8D, $44, $24, $0C, $C7, $03, $78, $56, $34, $12, $50, $FF, $74, $24, $10, $6A, + $04, $53, $FF, $D7, $5F, $5E, $5B, $59, $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $5C, $24, $14, $56, $57, $8B, $7C, $24, $18, $53, $57, $FF, $74, $24, + $1C, $FF, $74, $24, $1C, $FF, $15, $44, $45, $00, $10, $8B, $F0, $85, $F6, $75, + $5C, $85, $DB, $74, $58, $F7, $C7, $00, $00, $FF, $FF, $74, $50, $66, $39, $07, + $74, $4B, $8B, $57, $04, $F7, $C2, $00, $00, $FF, $FF, $74, $40, $8B, $CA, $66, + $39, $02, $74, $13, $66, $8B, $01, $83, $C1, $02, $66, $83, $F8, $5C, $0F, $44, + $D1, $66, $83, $39, $00, $75, $ED, $0F, $B7, $02, $83, $F8, $73, $74, $05, $83, + $F8, $53, $75, $17, $68, $D0, $34, $00, $10, $52, $FF, $15, $1C, $30, $00, $10, + $85, $C0, $75, $07, $8B, $0B, $E8, $15, $FF, $FF, $FF, $8B, $C6, $5F, $5E, $5B, + $C2, $10, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $50, $A1, $54, $45, $00, $10, $3B, $44, $24, $04, $75, $06, $8B, $45, $2C, $C6, + $00, $01, $58, $FF, $25, $58, $45, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $5C, $24, $08, $56, $8B, $74, $24, $10, $57, $56, $53, $FF, $15, $3C, + $45, $00, $10, $8B, $F8, $85, $FF, $75, $77, $3B, $1D, $5C, $45, $00, $10, $75, + $6F, $F7, $C6, $00, $00, $FF, $FF, $74, $67, $B9, $F4, $34, $00, $10, $8B, $C6, + $8A, $10, $3A, $11, $75, $1A, $84, $D2, $74, $12, $8A, $50, $01, $3A, $51, $01, + $75, $0E, $83, $C0, $02, $83, $C1, $02, $84, $D2, $75, $E4, $33, $C0, $EB, $05, + $1B, $C0, $83, $C8, $01, $85, $C0, $74, $32, $B8, $10, $35, $00, $10, $66, $90, + $8A, $0E, $3A, $08, $75, $1A, $84, $C9, $74, $12, $8A, $4E, $01, $3A, $48, $01, + $75, $0E, $83, $C6, $02, $83, $C0, $02, $84, $C9, $75, $E4, $33, $C0, $EB, $05, + $1B, $C0, $83, $C8, $01, $85, $C0, $8B, $C7, $75, $05, $B8, $E0, $10, $00, $10, + $5F, $5E, $5B, $C2, $08, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $55, $8B, $6C, $24, $0C, $8B, $5C, $24, $10, $8B, $4C, $24, $14, $8B, $44, + $24, $18, $8B, $54, $24, $1C, $F0, $0F, $C7, $4D, $00, $5D, $5B, $C2, $14, $00, + $74, $67, $60, $8B, $4D, $0C, $03, $C8, $8D, $51, $02, $81, $3A, $49, $6E, $74, + $65, $75, $4F, $81, $7A, $04, $72, $6C, $6F, $63, $75, $46, $81, $7A, $08, $6B, + $65, $64, $43, $75, $3D, $81, $7A, $0C, $6F, $6D, $70, $61, $75, $34, $81, $7A, + $10, $72, $65, $45, $78, $75, $2B, $81, $7A, $14, $63, $68, $61, $6E, $75, $22, + $81, $7A, $18, $67, $65, $36, $34, $75, $19, $80, $7A, $1C, $00, $75, $13, $B8, + $B0, $12, $00, $10, $8B, $55, $14, $89, $02, $61, $33, $C0, $FF, $25, $4C, $45, + $00, $10, $61, $FF, $25, $50, $45, $00, $10, $B8, $7A, $00, $00, $C0, $FF, $25, + $4C, $45, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $56, $8B, $35, $24, $30, $00, $10, $68, $30, $35, $00, $10, $FF, $D6, $68, + $4C, $35, $00, $10, $A3, $60, $45, $00, $10, $FF, $D6, $8B, $35, $28, $30, $00, + $10, $68, $3C, $45, $00, $10, $68, $64, $35, $00, $10, $FF, $35, $60, $45, $00, + $10, $A3, $5C, $45, $00, $10, $FF, $D6, $BA, $10, $12, $00, $10, $8B, $C8, $E8, + $1A, $0B, $00, $00, $68, $74, $35, $00, $10, $FF, $35, $64, $45, $00, $10, $FF, + $D6, $85, $C0, $0F, $84, $6F, $01, $00, $00, $83, $3D, $60, $45, $00, $10, $00, + $0F, $84, $62, $01, $00, $00, $8B, $0D, $64, $45, $00, $10, $53, $55, $8D, $98, + $00, $FC, $FF, $FF, $8B, $51, $3C, $57, $8D, $78, $C0, $8B, $6C, $0A, $2C, $03, + $E9, $8B, $4C, $0A, $1C, $03, $CD, $3B, $DD, $89, $4C, $24, $10, $0F, $42, $DD, + $3B, $FB, $0F, $86, $2D, $01, $00, $00, $8D, $77, $03, $0F, $1F, $44, $00, $00, + $8B, $07, $25, $FF, $F8, $FF, $00, $3D, $C1, $E8, $1F, $00, $0F, $85, $E4, $00, + $00, $00, $8D, $56, $08, $8B, $CE, $3B, $F2, $0F, $83, $D7, $00, $00, $00, $90, + $8B, $01, $25, $FF, $F8, $FF, $00, $3D, $80, $E0, $01, $00, $74, $0A, $41, $3B, + $CA, $72, $ED, $E9, $BE, $00, $00, $00, $3B, $CA, $0F, $83, $B6, $00, $00, $00, + $83, $C1, $03, $8D, $51, $08, $3B, $CA, $0F, $83, $A8, $00, $00, $00, $66, $90, + $8B, $01, $25, $FF, $C7, $FF, $00, $3D, $88, $45, $13, $00, $74, $0A, $41, $3B, + $CA, $72, $ED, $E9, $8E, $00, $00, $00, $3B, $CA, $0F, $83, $86, $00, $00, $00, + $83, $C1, $03, $8D, $41, $08, $3B, $C8, $0F, $83, $78, $00, $00, $00, $BA, $0F, + $85, $00, $00, $66, $39, $11, $74, $07, $41, $3B, $C8, $72, $F6, $EB, $67, $3B, + $C8, $73, $63, $83, $C1, $06, $8D, $51, $08, $3B, $CA, $73, $59, $0F, $1F, $00, + $8B, $01, $25, $FF, $C7, $FF, $00, $3D, $8B, $45, $0C, $00, $74, $07, $41, $3B, + $CA, $72, $ED, $EB, $41, $3B, $CA, $73, $3D, $83, $C1, $03, $8D, $41, $08, $3B, + $C8, $73, $33, $BA, $0F, $84, $00, $00, $66, $39, $11, $74, $07, $41, $3B, $C8, + $72, $F6, $EB, $22, $3B, $C8, $73, $1E, $8D, $51, $06, $03, $51, $02, $3B, $D5, + $72, $14, $3B, $54, $24, $10, $73, $0E, $80, $3A, $B8, $75, $09, $81, $7A, $01, + $7A, $00, $00, $C0, $74, $10, $4F, $4E, $3B, $FB, $0F, $87, $00, $FF, $FF, $FF, + $5F, $5D, $5B, $5E, $59, $C3, $8D, $41, $06, $A3, $50, $45, $00, $10, $8D, $42, + $05, $68, $40, $45, $00, $10, $BA, $D0, $12, $00, $10, $A3, $4C, $45, $00, $10, + $E8, $99, $09, $00, $00, $5F, $5D, $5B, $5E, $59, $C3, $CC, $CC, $CC, $CC, $CC, + $81, $EC, $14, $01, $00, $00, $53, $8B, $1D, $50, $30, $00, $10, $55, $56, $57, + $33, $FF, $33, $ED, $57, $6A, $01, $68, $68, $45, $00, $10, $FF, $D3, $8B, $35, + $6C, $30, $00, $10, $85, $C0, $74, $1D, $83, $FF, $20, $73, $04, $6A, $00, $EB, + $02, $6A, $01, $FF, $D6, $6A, $00, $6A, $01, $68, $68, $45, $00, $10, $47, $FF, + $D3, $85, $C0, $75, $E3, $39, $2D, $6C, $45, $00, $10, $75, $1A, $6A, $00, $6A, + $00, $6A, $00, $FF, $15, $44, $30, $00, $10, $A3, $6C, $45, $00, $10, $85, $C0, + $75, $0A, $8D, $68, $09, $EB, $05, $BD, $01, $00, $00, $00, $6A, $00, $68, $68, + $45, $00, $10, $FF, $15, $40, $30, $00, $10, $85, $ED, $0F, $85, $BC, $00, $00, + $00, $68, $8C, $35, $00, $10, $FF, $15, $24, $30, $00, $10, $68, $44, $45, $00, + $10, $68, $A0, $35, $00, $10, $50, $A3, $64, $45, $00, $10, $FF, $15, $28, $30, + $00, $10, $BA, $60, $11, $00, $10, $8B, $C8, $E8, $E0, $08, $00, $00, $85, $C0, + $0F, $85, $87, $00, $00, $00, $32, $C0, $8D, $7C, $24, $10, $B9, $14, $01, $00, + $00, $F3, $AA, $8D, $44, $24, $10, $C7, $44, $24, $10, $14, $01, $00, $00, $50, + $FF, $15, $20, $30, $00, $10, $85, $C0, $74, $13, $83, $7C, $24, $20, $02, $75, + $07, $83, $7C, $24, $14, $05, $77, $05, $E8, $43, $FD, $FF, $FF, $33, $FF, $57, + $6A, $01, $68, $68, $45, $00, $10, $FF, $D3, $85, $C0, $74, $20, $0F, $1F, $00, + $83, $FF, $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $D6, $6A, $00, $6A, + $01, $68, $68, $45, $00, $10, $47, $FF, $D3, $85, $C0, $75, $E3, $83, $3D, $6C, + $45, $00, $10, $00, $74, $0A, $B9, $01, $00, $00, $00, $E8, $ED, $06, $00, $00, + $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, $00, $10, $5F, $5E, $5D, + $5B, $81, $C4, $14, $01, $00, $00, $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $1D, $50, $30, $00, $10, $56, $33, $F6, $56, $6A, $01, $68, $68, $45, + $00, $10, $FF, $D3, $85, $C0, $74, $26, $57, $8B, $3D, $6C, $30, $00, $10, $90, + $83, $FE, $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $D7, $6A, $00, $6A, + $01, $68, $68, $45, $00, $10, $46, $FF, $D3, $85, $C0, $75, $E3, $5F, $83, $3D, + $6C, $45, $00, $10, $00, $5E, $5B, $74, $07, $33, $C9, $E8, $7D, $06, $00, $00, + $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, $00, $10, $E9, $51, $07, + $00, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $57, $68, $AC, $35, $00, $10, $FF, $15, $2C, $30, $00, $10, $8B, $F8, $85, + $FF, $0F, $84, $80, $00, $00, $00, $53, $56, $68, $C8, $35, $00, $10, $57, $FF, + $15, $28, $30, $00, $10, $8B, $1D, $18, $30, $00, $10, $8B, $F0, $85, $F6, $74, + $24, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $05, $56, $FF, $D3, $8D, $44, $24, + $0C, $C7, $06, $33, $C0, $C2, $0C, $50, $FF, $74, $24, $10, $C6, $46, $04, $00, + $6A, $FF, $56, $FF, $D3, $68, $D8, $35, $00, $10, $57, $FF, $15, $28, $30, $00, + $10, $8B, $F0, $85, $F6, $74, $24, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $05, + $56, $FF, $D3, $8D, $44, $24, $0C, $C7, $06, $33, $C0, $C2, $0C, $50, $FF, $74, + $24, $10, $C6, $46, $04, $00, $6A, $FF, $56, $FF, $D3, $5E, $5B, $C6, $05, $48, + $45, $00, $10, $00, $5F, $59, $C3, $C6, $05, $48, $45, $00, $10, $01, $5F, $59, + $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $81, $EC, $14, $04, $00, $00, $53, $56, $57, $6A, $00, $FF, $15, $24, $30, $00, + $10, $8B, $D8, $8D, $44, $24, $10, $68, $08, $02, $00, $00, $50, $53, $FF, $15, + $30, $30, $00, $10, $66, $83, $7C, $24, $10, $00, $8D, $4C, $24, $10, $8B, $F1, + $74, $13, $66, $8B, $01, $83, $C1, $02, $66, $83, $F8, $5C, $0F, $44, $F1, $66, + $83, $39, $00, $75, $ED, $8B, $3D, $1C, $30, $00, $10, $68, $EC, $35, $00, $10, + $56, $FF, $D7, $85, $C0, $75, $25, $8D, $4C, $24, $10, $E8, $10, $F8, $FF, $FF, + $3D, $DC, $A6, $26, $96, $74, $07, $3D, $E2, $F5, $99, $11, $75, $72, $8D, $83, + $49, $14, $05, $00, $8D, $BB, $84, $45, $26, $00, $EB, $28, $68, $FC, $35, $00, + $10, $56, $FF, $D7, $85, $C0, $75, $58, $8D, $4C, $24, $10, $E8, $DF, $F7, $FF, + $FF, $3D, $18, $4A, $31, $3B, $75, $48, $8D, $83, $B5, $8F, $1E, $00, $8D, $BB, + $E0, $29, $67, $00, $8B, $35, $18, $30, $00, $10, $A3, $54, $45, $00, $10, $8B, + $07, $A3, $58, $45, $00, $10, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $04, $57, + $FF, $D6, $8D, $44, $24, $0C, $C7, $07, $F0, $11, $00, $10, $50, $FF, $74, $24, + $10, $6A, $04, $57, $FF, $D6, $E8, $75, $FE, $FF, $FF, $E8, $B0, $FC, $FF, $FF, + $5F, $5E, $5B, $81, $C4, $14, $04, $00, $00, $C3, $CC, $CC, $CC, $CC, $CC, $CC, + $8B, $44, $24, $08, $83, $F8, $03, $77, $2F, $FF, $24, $85, $C0, $18, $00, $10, + $E8, $FB, $FE, $FF, $FF, $B8, $01, $00, $00, $00, $C2, $0C, $00, $80, $3D, $48, + $45, $00, $10, $00, $74, $12, $E8, $35, $FE, $FF, $FF, $B8, $01, $00, $00, $00, + $C2, $0C, $00, $E8, $B8, $FD, $FF, $FF, $B8, $01, $00, $00, $00, $C2, $0C, $00, + $B3, $18, $00, $10, $90, $18, $00, $10, $9D, $18, $00, $10, $9D, $18, $00, $10, + $56, $8B, $35, $88, $45, $00, $10, $33, $C0, $85, $F6, $74, $12, $8B, $15, $80, + $45, $00, $10, $3B, $0A, $74, $0B, $40, $83, $C2, $28, $3B, $C6, $72, $F4, $83, + $C8, $FF, $5E, $C3, $8B, $0D, $80, $45, $00, $10, $85, $C9, $75, $2B, $68, $00, + $05, $00, $00, $51, $FF, $35, $6C, $45, $00, $10, $C7, $05, $84, $45, $00, $10, + $20, $00, $00, $00, $FF, $15, $74, $30, $00, $10, $8B, $C8, $89, $0D, $80, $45, + $00, $10, $85, $C9, $75, $3D, $33, $C0, $C3, $8B, $15, $88, $45, $00, $10, $A1, + $84, $45, $00, $10, $3B, $D0, $72, $31, $6B, $C0, $50, $50, $51, $6A, $00, $FF, + $35, $6C, $45, $00, $10, $FF, $15, $70, $30, $00, $10, $8B, $C8, $85, $C9, $74, + $D5, $A1, $84, $45, $00, $10, $03, $C0, $89, $0D, $80, $45, $00, $10, $A3, $84, + $45, $00, $10, $8B, $15, $88, $45, $00, $10, $6B, $C2, $28, $03, $C1, $42, $89, + $15, $88, $45, $00, $10, $C3, $55, $8B, $EC, $81, $EC, $D8, $02, $00, $00, $A1, + $04, $40, $00, $10, $33, $C5, $89, $45, $FC, $8B, $C1, $C7, $85, $30, $FD, $FF, + $FF, $01, $00, $01, $00, $56, $8D, $8D, $30, $FD, $FF, $FF, $89, $85, $28, $FD, + $FF, $FF, $51, $50, $8B, $F2, $FF, $15, $7C, $30, $00, $10, $85, $C0, $0F, $84, + $C3, $00, $00, $00, $53, $83, $FE, $FF, $75, $0A, $8B, $1D, $88, $45, $00, $10, + $33, $F6, $EB, $03, $8D, $5E, $01, $3B, $F3, $0F, $83, $A7, $00, $00, $00, $6B, + $D6, $28, $2B, $DE, $57, $8B, $BD, $28, $FD, $FF, $FF, $89, $95, $2C, $FD, $FF, + $FF, $8B, $35, $80, $45, $00, $10, $8B, $45, $08, $03, $F2, $83, $E8, $00, $74, + $1A, $83, $E8, $01, $74, $10, $83, $E8, $01, $75, $12, $8B, $7E, $14, $C1, $E7, + $1D, $C1, $FF, $1F, $EB, $07, $33, $FF, $47, $EB, $02, $33, $FF, $8B, $56, $14, + $8B, $C2, $C1, $E0, $1E, $C1, $F8, $1F, $3B, $C7, $74, $41, $85, $FF, $74, $70, + $C1, $EA, $03, $33, $C9, $83, $E2, $0F, $76, $14, $0F, $B6, $44, $0E, $18, $03, + $06, $39, $85, $E8, $FD, $FF, $FF, $74, $4D, $41, $3B, $CA, $72, $EC, $33, $C9, + $85, $C9, $74, $19, $8D, $85, $30, $FD, $FF, $FF, $89, $8D, $E8, $FD, $FF, $FF, + $50, $FF, $B5, $28, $FD, $FF, $FF, $FF, $15, $88, $30, $00, $10, $8B, $95, $2C, + $FD, $FF, $FF, $83, $C2, $28, $89, $95, $2C, $FD, $FF, $FF, $83, $EB, $01, $0F, + $85, $6C, $FF, $FF, $FF, $5F, $5B, $8B, $4D, $FC, $33, $CD, $5E, $E8, $50, $0E, + $00, $00, $8B, $E5, $5D, $C3, $0F, $B6, $4C, $31, $20, $03, $4E, $08, $EB, $B0, + $F6, $C2, $01, $74, $0D, $8B, $0E, $8D, $41, $FB, $39, $85, $E8, $FD, $FF, $FF, + $74, $9E, $C1, $EA, $03, $33, $C9, $83, $E2, $0F, $76, $92, $0F, $B6, $44, $0E, + $20, $03, $46, $08, $39, $85, $E8, $FD, $FF, $FF, $74, $0A, $41, $3B, $CA, $72, + $EB, $E9, $78, $FF, $FF, $FF, $0F, $B6, $4C, $31, $18, $03, $0E, $E9, $6E, $FF, + $FF, $FF, $55, $8B, $EC, $83, $EC, $20, $A1, $04, $40, $00, $10, $33, $C5, $89, + $45, $FC, $56, $57, $6A, $00, $6A, $04, $8B, $F1, $FF, $15, $68, $30, $00, $10, + $8B, $F8, $83, $FF, $FF, $0F, $84, $AE, $00, $00, $00, $8D, $45, $E0, $C7, $45, + $E0, $1C, $00, $00, $00, $50, $57, $FF, $15, $58, $30, $00, $10, $E9, $88, $00, + $00, $00, $83, $7D, $E0, $10, $72, $70, $FF, $15, $80, $30, $00, $10, $39, $45, + $EC, $75, $65, $FF, $15, $5C, $30, $00, $10, $39, $45, $E8, $74, $5A, $83, $3E, + $00, $75, $22, $68, $00, $02, $00, $00, $6A, $00, $FF, $35, $6C, $45, $00, $10, + $C7, $46, $04, $80, $00, $00, $00, $FF, $15, $74, $30, $00, $10, $89, $06, $85, + $C0, $74, $4F, $EB, $25, $8B, $46, $04, $39, $46, $08, $72, $1D, $C1, $E0, $03, + $50, $FF, $36, $6A, $00, $FF, $35, $6C, $45, $00, $10, $FF, $15, $70, $30, $00, + $10, $85, $C0, $74, $2D, $D1, $66, $04, $89, $06, $8B, $56, $08, $8B, $0E, $8B, + $45, $E8, $89, $04, $91, $FF, $46, $08, $8D, $45, $E0, $C7, $45, $E0, $1C, $00, + $00, $00, $50, $57, $FF, $15, $54, $30, $00, $10, $85, $C0, $0F, $85, $70, $FF, + $FF, $FF, $57, $FF, $15, $14, $30, $00, $10, $8B, $4D, $FC, $5F, $33, $CD, $5E, + $E8, $1D, $0D, $00, $00, $8B, $E5, $5D, $C3, $55, $8B, $EC, $51, $53, $56, $8B, + $F1, $89, $55, $FC, $33, $DB, $89, $1E, $89, $5E, $04, $89, $5E, $08, $E8, $FF, + $FE, $FF, $FF, $39, $1E, $74, $42, $57, $8B, $FB, $39, $5E, $08, $76, $39, $8B, + $06, $FF, $34, $B8, $53, $6A, $5A, $FF, $15, $8C, $30, $00, $10, $8B, $D8, $85, + $DB, $74, $1C, $53, $FF, $15, $60, $30, $00, $10, $FF, $75, $08, $8B, $55, $FC, + $8B, $CB, $E8, $6F, $FD, $FF, $FF, $59, $53, $FF, $15, $14, $30, $00, $10, $47, + $6A, $00, $5B, $3B, $7E, $08, $72, $C7, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $56, + $8B, $F1, $83, $3E, $00, $74, $44, $57, $33, $FF, $39, $7E, $08, $76, $2B, $53, + $8B, $06, $FF, $34, $B8, $6A, $00, $6A, $5A, $FF, $15, $8C, $30, $00, $10, $8B, + $D8, $85, $DB, $74, $0E, $53, $FF, $15, $64, $30, $00, $10, $53, $FF, $15, $14, + $30, $00, $10, $47, $3B, $7E, $08, $72, $D7, $5B, $FF, $36, $6A, $00, $FF, $35, + $6C, $45, $00, $10, $FF, $15, $48, $30, $00, $10, $5F, $5E, $C3, $55, $8B, $EC, + $83, $EC, $10, $53, $6B, $D9, $28, $56, $57, $6A, $05, $8B, $F2, $03, $1D, $80, + $45, $00, $10, $58, $89, $75, $F0, $89, $45, $FC, $F6, $43, $14, $01, $8B, $3B, + $89, $7D, $F8, $74, $0B, $2B, $F8, $6A, $07, $58, $89, $7D, $F8, $89, $45, $FC, + $8D, $4D, $F4, $51, $6A, $40, $50, $57, $FF, $15, $18, $30, $00, $10, $85, $C0, + $75, $05, $6A, $0A, $58, $EB, $7F, $85, $F6, $74, $1D, $C6, $07, $E9, $8B, $43, + $04, $2B, $C7, $83, $E8, $05, $89, $47, $01, $F6, $43, $14, $01, $74, $29, $8B, + $03, $66, $C7, $00, $EB, $F9, $EB, $20, $F6, $43, $14, $01, $74, $0F, $8D, $73, + $0C, $A5, $66, $A5, $A4, $8B, $7D, $F8, $8B, $75, $F0, $EB, $0B, $8B, $43, $0C, + $89, $07, $8A, $43, $10, $88, $47, $04, $8D, $45, $F4, $50, $FF, $75, $F4, $FF, + $75, $FC, $57, $FF, $15, $18, $30, $00, $10, $FF, $75, $FC, $57, $FF, $15, $4C, + $30, $00, $10, $50, $FF, $15, $84, $30, $00, $10, $83, $E6, $01, $8B, $CE, $83, + $E1, $FD, $8D, $04, $36, $0B, $C8, $8B, $43, $14, $03, $C9, $83, $E0, $F9, $0B, + $C8, $33, $C0, $89, $4B, $14, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $55, $8B, $EC, + $83, $EC, $10, $53, $8B, $1D, $88, $45, $00, $10, $8B, $D1, $56, $57, $33, $FF, + $89, $55, $FC, $8B, $F7, $85, $DB, $0F, $84, $83, $00, $00, $00, $8B, $0D, $80, + $45, $00, $10, $83, $C1, $14, $8B, $01, $C1, $E0, $1E, $C1, $F8, $1F, $3B, $C2, + $75, $0A, $46, $83, $C1, $28, $3B, $F3, $72, $EC, $EB, $64, $83, $FE, $FF, $74, + $5F, $33, $C0, $8D, $4D, $F0, $85, $D2, $0F, $95, $C0, $83, $CA, $FF, $50, $E8, + $25, $FE, $FF, $FF, $8B, $15, $88, $45, $00, $10, $59, $3B, $F2, $73, $39, $8B, + $4D, $FC, $6B, $DE, $28, $A1, $80, $45, $00, $10, $8B, $44, $03, $14, $C1, $E0, + $1E, $C1, $F8, $1F, $3B, $C1, $74, $18, $8B, $D1, $8B, $CE, $E8, $AC, $FE, $FF, + $FF, $8B, $F8, $85, $FF, $75, $11, $8B, $15, $88, $45, $00, $10, $8B, $4D, $FC, + $46, $83, $C3, $28, $3B, $F2, $72, $CD, $8D, $4D, $F0, $E8, $3F, $FE, $FF, $FF, + $8B, $C7, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $56, $33, $F6, $EB, $12, $83, $FE, + $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $15, $6C, $30, $00, $10, $46, + $6A, $00, $6A, $01, $68, $68, $45, $00, $10, $FF, $15, $50, $30, $00, $10, $85, + $C0, $75, $DB, $5E, $C3, $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, + $00, $10, $C3, $57, $E8, $C0, $FF, $FF, $FF, $83, $3D, $6C, $45, $00, $10, $00, + $74, $70, $33, $C9, $E8, $04, $FF, $FF, $FF, $8B, $F8, $85, $FF, $75, $66, $A1, + $74, $45, $00, $10, $53, $33, $DB, $89, $1D, $74, $45, $00, $10, $85, $C0, $74, + $17, $56, $8B, $30, $68, $00, $80, $00, $00, $53, $50, $FF, $15, $90, $30, $00, + $10, $8B, $C6, $85, $F6, $75, $EB, $5E, $FF, $35, $80, $45, $00, $10, $53, $FF, + $35, $6C, $45, $00, $10, $FF, $15, $48, $30, $00, $10, $FF, $35, $6C, $45, $00, + $10, $FF, $15, $78, $30, $00, $10, $89, $1D, $6C, $45, $00, $10, $89, $1D, $80, + $45, $00, $10, $89, $1D, $84, $45, $00, $10, $89, $1D, $88, $45, $00, $10, $5B, + $EB, $03, $6A, $02, $5F, $E8, $6B, $FF, $FF, $FF, $8B, $C7, $5F, $C3, $55, $8B, + $EC, $83, $EC, $30, $A1, $04, $40, $00, $10, $33, $C5, $89, $45, $FC, $8B, $45, + $08, $53, $56, $57, $8B, $FA, $89, $45, $D0, $89, $7D, $D4, $8B, $F1, $33, $DB, + $E8, $14, $FF, $FF, $FF, $39, $1D, $6C, $45, $00, $10, $0F, $84, $EB, $00, $00, + $00, $8B, $CE, $E8, $8A, $04, $00, $00, $85, $C0, $0F, $84, $D8, $00, $00, $00, + $8B, $CF, $E8, $7B, $04, $00, $00, $85, $C0, $0F, $84, $C9, $00, $00, $00, $8B, + $CE, $E8, $CA, $F9, $FF, $FF, $83, $F8, $FF, $0F, $85, $B5, $00, $00, $00, $E8, + $9D, $03, $00, $00, $8B, $F8, $85, $FF, $0F, $84, $A2, $00, $00, $00, $8B, $45, + $D4, $8D, $4D, $D8, $89, $75, $D8, $89, $45, $DC, $89, $7D, $E0, $E8, $E2, $00, + $00, $00, $85, $C0, $74, $7E, $E8, $B9, $F9, $FF, $FF, $8B, $D0, $85, $D2, $74, + $6F, $8B, $45, $D8, $8B, $4D, $E8, $8B, $7D, $E0, $83, $E1, $0F, $89, $02, $8B, + $45, $DC, $89, $42, $04, $8B, $45, $E4, $83, $E0, $01, $C1, $E1, $03, $0B, $C8, + $89, $7A, $08, $8B, $42, $14, $83, $E0, $80, $0B, $C8, $8B, $45, $EC, $89, $42, + $18, $8B, $45, $F0, $89, $42, $1C, $8B, $45, $F4, $89, $42, $20, $8B, $45, $F8, + $89, $4A, $14, $89, $42, $24, $39, $5D, $E4, $74, $0F, $83, $C6, $FB, $8D, $7A, + $0C, $A5, $66, $A5, $A4, $8B, $7D, $E0, $EB, $0B, $8B, $06, $89, $42, $0C, $8A, + $46, $04, $88, $42, $10, $8B, $45, $D0, $85, $C0, $74, $23, $89, $38, $EB, $1F, + $6A, $09, $EB, $02, $6A, $08, $5B, $8B, $CF, $E8, $67, $03, $00, $00, $EB, $0F, + $6A, $09, $EB, $0A, $6A, $03, $EB, $06, $6A, $07, $EB, $02, $6A, $02, $5B, $E8, + $41, $FE, $FF, $FF, $8B, $4D, $FC, $8B, $C3, $5F, $5E, $33, $CD, $5B, $E8, $EF, + $08, $00, $00, $8B, $E5, $5D, $C2, $04, $00, $56, $8B, $F1, $8A, $06, $84, $C0, + $74, $0C, $3C, $90, $74, $08, $3C, $CC, $74, $04, $33, $C0, $5E, $C3, $33, $C9, + $41, $3B, $D1, $76, $0A, $38, $04, $31, $75, $F0, $41, $3B, $CA, $72, $F6, $33, + $C0, $40, $5E, $C3, $55, $8B, $EC, $83, $EC, $58, $A1, $04, $40, $00, $10, $33, + $C5, $89, $45, $FC, $53, $33, $DB, $C6, $45, $AC, $E8, $56, $8B, $F1, $89, $5D, + $AD, $8A, $C3, $89, $75, $C4, $57, $C6, $45, $BC, $E9, $89, $5D, $BD, $66, $C7, + $45, $B4, $0F, $80, $89, $5D, $B6, $88, $45, $DF, $89, $5D, $D8, $89, $5D, $D4, + $89, $5E, $0C, $89, $5E, $10, $0F, $B6, $C8, $8D, $55, $E0, $8B, $46, $08, $0F, + $B6, $FB, $03, $C1, $03, $3E, $89, $4D, $A8, $8B, $CF, $89, $45, $C8, $E8, $2C, + $03, $00, $00, $F7, $45, $F8, $00, $10, $00, $00, $8B, $C8, $89, $4D, $D0, $0F, + $85, $19, $02, $00, $00, $89, $7D, $CC, $80, $FB, $05, $0F, $82, $84, $00, $00, + $00, $8B, $C7, $33, $D2, $2B, $45, $C8, $83, $E8, $05, $42, $6A, $05, $89, $45, + $BD, $8D, $45, $BC, $59, $89, $45, $CC, $89, $4D, $D0, $89, $55, $D4, $8B, $45, + $D8, $3B, $F8, $73, $0C, $0F, $B6, $45, $E0, $3B, $C8, $0F, $85, $DD, $01, $00, + $00, $8B, $45, $A8, $03, $C1, $83, $F8, $20, $0F, $87, $CF, $01, $00, $00, $8B, + $46, $10, $83, $F8, $08, $0F, $83, $C3, $01, $00, $00, $8A, $55, $DF, $88, $5C, + $30, $14, $8B, $46, $10, $02, $5D, $E0, $88, $54, $30, $1C, $8A, $C2, $8B, $7E, + $08, $FF, $46, $10, $03, $7D, $A8, $02, $45, $D0, $8B, $75, $CC, $8B, $55, $D4, + $88, $45, $DF, $F3, $A4, $85, $D2, $0F, $85, $2E, $01, $00, $00, $8B, $75, $C4, + $E9, $41, $FF, $FF, $FF, $8A, $55, $E6, $80, $FA, $E8, $75, $23, $0F, $B6, $45, + $E0, $2B, $45, $C8, $83, $C0, $FB, $03, $45, $F0, $03, $C7, $89, $45, $AD, $8D, + $45, $AC, $6A, $05, $59, $89, $45, $CC, $89, $4D, $D0, $E9, $6E, $FF, $FF, $FF, + $8A, $C2, $24, $FD, $3C, $E9, $75, $50, $0F, $B6, $4D, $E0, $03, $CF, $80, $FA, + $EB, $75, $08, $0F, $BE, $45, $F0, $03, $C8, $EB, $03, $03, $4D, $F0, $8B, $06, + $3B, $C1, $77, $1D, $83, $C0, $05, $3B, $C8, $73, $16, $8B, $45, $D8, $3B, $C1, + $0F, $83, $BD, $00, $00, $00, $89, $4D, $D8, $8B, $4D, $D0, $E9, $2D, $FF, $FF, + $FF, $2B, $4D, $C8, $8D, $45, $BC, $83, $E9, $05, $89, $45, $CC, $6A, $05, $89, + $4D, $BD, $59, $89, $4D, $D0, $EB, $29, $8A, $75, $E7, $8A, $E2, $80, $E4, $F0, + $80, $FC, $70, $74, $2C, $8A, $C2, $24, $FC, $3C, $E0, $74, $24, $8A, $C6, $24, + $F0, $3C, $80, $74, $1C, $80, $E2, $FE, $80, $FA, $C2, $0F, $85, $ED, $FE, $FF, + $FF, $8B, $45, $D8, $3B, $F8, $1B, $D2, $42, $89, $55, $D4, $E9, $E0, $FE, $FF, + $FF, $8A, $45, $E0, $0F, $B6, $C8, $03, $CF, $80, $FC, $70, $74, $0D, $8A, $C2, + $24, $FC, $3C, $E0, $74, $05, $03, $4D, $F0, $EB, $06, $0F, $BE, $45, $F0, $03, + $C8, $8B, $06, $3B, $C1, $77, $0B, $83, $C0, $05, $3B, $C8, $0F, $82, $69, $FF, + $FF, $FF, $8A, $C2, $24, $FC, $3C, $E0, $0F, $84, $90, $00, $00, $00, $0F, $B6, + $C2, $80, $FA, $0F, $75, $03, $0F, $B6, $C6, $2B, $4D, $C8, $24, $0F, $0C, $80, + $83, $E9, $06, $88, $45, $B5, $8D, $45, $B4, $89, $4D, $B6, $6A, $06, $E9, $01, + $FF, $FF, $FF, $8B, $4D, $D0, $E9, $76, $FE, $FF, $FF, $80, $FB, $05, $73, $59, + $8B, $7D, $C4, $0F, $B6, $F3, $6A, $05, $5A, $8B, $07, $2B, $D6, $03, $C6, $8B, + $C8, $89, $45, $C4, $E8, $90, $FD, $FF, $FF, $85, $C0, $75, $3C, $80, $FB, $02, + $73, $11, $8B, $4D, $C4, $6A, $02, $5A, $2B, $D6, $E8, $7A, $FD, $FF, $FF, $85, + $C0, $74, $2B, $8B, $0F, $83, $C1, $FB, $E8, $F5, $00, $00, $00, $85, $C0, $74, + $1D, $8B, $0F, $6A, $05, $83, $E9, $05, $5A, $E8, $5B, $FD, $FF, $FF, $85, $C0, + $74, $0C, $C7, $47, $0C, $01, $00, $00, $00, $33, $C0, $40, $EB, $02, $33, $C0, + $8B, $4D, $FC, $5F, $5E, $33, $CD, $5B, $E8, $25, $06, $00, $00, $8B, $E5, $5D, + $C3, $8B, $15, $74, $45, $00, $10, $56, $33, $F6, $EB, $07, $39, $72, $04, $75, + $4F, $8B, $12, $85, $D2, $75, $F5, $6A, $40, $68, $00, $30, $00, $00, $68, $00, + $10, $00, $00, $56, $FF, $15, $94, $30, $00, $10, $8B, $D0, $85, $D2, $74, $41, + $8D, $4A, $20, $89, $72, $04, $89, $72, $08, $8B, $F1, $2B, $F2, $8B, $42, $04, + $83, $C6, $20, $89, $01, $89, $4A, $04, $83, $C1, $20, $81, $FE, $E0, $0F, $00, + $00, $76, $EA, $A1, $74, $45, $00, $10, $89, $02, $89, $15, $74, $45, $00, $10, + $85, $D2, $74, $0D, $8B, $42, $04, $5E, $8B, $08, $FF, $42, $08, $89, $4A, $04, + $C3, $33, $C0, $5E, $C3, $8B, $15, $74, $45, $00, $10, $8B, $C1, $56, $33, $F6, + $25, $00, $F0, $FF, $FF, $EB, $08, $3B, $D0, $74, $0A, $8B, $F2, $8B, $12, $85, + $D2, $75, $F4, $5E, $C3, $8B, $42, $04, $89, $01, $83, $6A, $08, $01, $89, $4A, + $04, $75, $1D, $8B, $02, $85, $F6, $74, $04, $89, $06, $EB, $05, $A3, $74, $45, + $00, $10, $68, $00, $80, $00, $00, $6A, $00, $52, $FF, $15, $90, $30, $00, $10, + $5E, $C3, $55, $8B, $EC, $83, $EC, $1C, $6A, $1C, $8D, $45, $E4, $50, $51, $FF, + $15, $98, $30, $00, $10, $81, $7D, $F4, $00, $10, $00, $00, $75, $0B, $F6, $45, + $F8, $F0, $74, $05, $33, $C0, $40, $EB, $02, $33, $C0, $8B, $E5, $5D, $C3, $55, + $8B, $EC, $83, $EC, $24, $8B, $C1, $89, $55, $E8, $53, $57, $89, $45, $DC, $8B, + $D8, $33, $C0, $C7, $45, $EC, $10, $40, $00, $10, $6A, $1C, $89, $45, $F0, $8B, + $FA, $88, $45, $FF, $32, $C0, $59, $F3, $AA, $B5, $10, $8A, $0B, $43, $0F, $B6, + $C1, $88, $4D, $FE, $83, $F8, $66, $7F, $30, $74, $25, $83, $F8, $26, $74, $17, + $83, $F8, $2E, $74, $12, $83, $F8, $36, $74, $0D, $83, $F8, $3E, $74, $08, $83, + $C0, $9C, $83, $F8, $01, $77, $50, $80, $4D, $FF, $40, $88, $4A, $03, $EB, $42, + $80, $4D, $FF, $08, $88, $4A, $04, $EB, $39, $83, $E8, $67, $74, $2D, $2D, $89, + $00, $00, $00, $74, $1D, $48, $83, $E8, $01, $74, $0E, $83, $E8, $01, $75, $27, + $80, $4D, $FF, $04, $88, $4A, $01, $EB, $19, $80, $4D, $FF, $02, $88, $4A, $01, + $EB, $10, $80, $4D, $FF, $20, $88, $4A, $02, $EB, $07, $80, $4D, $FF, $10, $88, + $4A, $05, $80, $ED, $01, $75, $84, $8A, $6D, $FF, $0F, $B6, $C5, $C1, $E0, $17, + $89, $42, $18, $84, $ED, $75, $05, $FE, $C5, $88, $6D, $FF, $88, $4A, $06, $80, + $F9, $0F, $75, $12, $8A, $0B, $43, $88, $4D, $FE, $88, $4A, $07, $C7, $45, $EC, + $5A, $40, $00, $10, $EB, $18, $8A, $C1, $04, $60, $3C, $03, $77, $10, $F6, $C5, + $10, $74, $05, $80, $CD, $08, $EB, $03, $80, $E5, $F7, $88, $6D, $FF, $0F, $B6, + $F9, $56, $8B, $F7, $8B, $C7, $C1, $EE, $02, $25, $03, $00, $00, $80, $79, $05, + $48, $83, $C8, $FC, $40, $8B, $55, $EC, $89, $45, $E4, $8B, $45, $EC, $0F, $B6, + $04, $06, $03, $45, $E4, $8A, $04, $10, $8B, $55, $E8, $89, $45, $F4, $3C, $FF, + $75, $1F, $81, $4A, $18, $00, $30, $00, $00, $8B, $C7, $83, $E0, $FD, $C6, $45, + $F4, $00, $83, $F8, $24, $75, $07, $B0, $01, $89, $45, $F4, $EB, $03, $8B, $45, + $F4, $C6, $45, $E0, $00, $84, $C0, $79, $19, $8B, $55, $EC, $0F, $B6, $C0, $83, + $E0, $7F, $0F, $B7, $04, $10, $8B, $55, $E8, $89, $45, $F4, $C1, $E8, $08, $89, + $45, $E0, $8A, $42, $07, $84, $C0, $74, $1A, $0F, $B6, $86, $40, $41, $00, $10, + $8B, $75, $E4, $84, $AC, $30, $40, $41, $00, $10, $74, $07, $81, $4A, $18, $00, + $30, $00, $00, $8B, $45, $F4, $A8, $01, $0F, $84, $C2, $02, $00, $00, $83, $4A, + $18, $01, $8A, $03, $8A, $E0, $88, $42, $08, $C0, $EC, $06, $88, $65, $FB, $88, + $62, $09, $8A, $E0, $C0, $E8, $03, $80, $E4, $07, $24, $07, $88, $65, $FC, $88, + $62, $0B, $88, $45, $FD, $88, $42, $0A, $8B, $45, $E0, $84, $C0, $74, $16, $8A, + $4D, $FD, $0F, $B6, $C0, $D3, $E0, $8A, $4D, $FE, $84, $C0, $79, $07, $81, $4A, + $18, $00, $30, $00, $00, $8A, $62, $07, $84, $E4, $75, $43, $8A, $C1, $04, $27, + $3C, $06, $77, $3B, $80, $C1, $27, $80, $7D, $FB, $03, $75, $13, $0F, $B6, $45, + $FD, $0F, $B6, $C9, $8A, $84, $C8, $08, $41, $00, $10, $8A, $4D, $FC, $EB, $0C, + $0F, $B6, $C1, $8A, $4D, $FD, $8A, $80, $01, $41, $00, $10, $8A, $6D, $FF, $8A, + $62, $07, $D2, $E0, $84, $C0, $79, $07, $81, $4A, $18, $00, $30, $00, $00, $BE, + $DB, $41, $00, $10, $F6, $C5, $20, $74, $5E, $80, $7D, $FB, $03, $75, $09, $81, + $4A, $18, $00, $90, $00, $00, $EB, $4F, $8A, $45, $FE, $8A, $C8, $84, $E4, $74, + $0E, $BE, $C9, $41, $00, $10, $C7, $45, $E0, $DB, $41, $00, $10, $EB, $11, $8A, + $C8, $C7, $45, $E0, $C9, $41, $00, $10, $BE, $B1, $41, $00, $10, $80, $E1, $FE, + $38, $0E, $74, $0A, $83, $C6, $02, $3B, $75, $E0, $75, $F4, $EB, $0D, $0F, $B6, + $46, $01, $8A, $4D, $FD, $D3, $E0, $84, $C0, $79, $07, $81, $4A, $18, $00, $90, + $00, $00, $BE, $DB, $41, $00, $10, $8A, $4A, $07, $8B, $C7, $84, $C9, $74, $43, + $83, $E8, $20, $74, $22, $83, $E8, $01, $74, $0A, $83, $E8, $01, $74, $18, $83, + $E8, $01, $75, $3C, $8A, $45, $FD, $C6, $45, $FB, $03, $3C, $04, $0F, $84, $A6, + $00, $00, $00, $3C, $05, $EB, $11, $8A, $45, $FD, $C6, $45, $FB, $03, $3C, $04, + $0F, $87, $93, $00, $00, $00, $3C, $01, $0F, $85, $92, $00, $00, $00, $E9, $86, + $00, $00, $00, $2D, $8C, $00, $00, $00, $74, $79, $48, $83, $E8, $01, $74, $68, + $80, $7D, $FB, $03, $75, $39, $84, $C9, $74, $0C, $BE, $EA, $41, $00, $10, $BF, + $14, $42, $00, $10, $EB, $05, $BF, $EA, $41, $00, $10, $8A, $4D, $FE, $38, $0E, + $74, $09, $83, $C6, $03, $3B, $F7, $75, $F5, $EB, $58, $84, $6E, $01, $74, $53, + $0F, $B6, $46, $02, $8A, $4D, $FD, $D3, $E0, $84, $C0, $79, $3C, $EB, $41, $84, + $C9, $74, $3D, $83, $EF, $50, $74, $14, $83, $EF, $75, $74, $2C, $83, $EF, $11, + $74, $0F, $83, $EF, $01, $74, $05, $83, $EF, $20, $75, $24, $F6, $C5, $09, $EB, + $03, $F6, $C5, $06, $75, $13, $EB, $18, $8A, $45, $FD, $3C, $01, $74, $0A, $3C, + $05, $EB, $04, $80, $7D, $FD, $05, $76, $07, $81, $4A, $18, $00, $10, $01, $00, + $8A, $4D, $FE, $8A, $43, $01, $83, $C3, $02, $80, $7D, $FD, $01, $88, $45, $FA, + $77, $14, $80, $F9, $F6, $75, $06, $80, $4D, $F4, $02, $EB, $09, $80, $F9, $F7, + $75, $04, $80, $4D, $F4, $10, $8A, $4D, $FB, $0F, $B6, $C1, $83, $E8, $00, $74, + $65, $83, $E8, $01, $74, $57, $83, $E8, $01, $8A, $45, $FC, $75, $0D, $C6, $45, + $F0, $02, $F6, $C5, $10, $75, $04, $C6, $45, $F0, $04, $80, $F9, $03, $74, $5C, + $3C, $04, $75, $58, $F6, $C5, $10, $75, $53, $8A, $4D, $FA, $83, $4A, $18, $02, + $8A, $C1, $C0, $E8, $06, $43, $88, $42, $0D, $8A, $C1, $C0, $E8, $03, $24, $07, + $88, $4A, $0C, $88, $42, $0E, $0F, $B6, $C1, $83, $E0, $07, $88, $42, $0F, $3C, + $05, $75, $29, $F6, $45, $FB, $01, $75, $23, $FE, $C8, $EB, $22, $8A, $45, $FC, + $C6, $45, $F0, $01, $EB, $B5, $8A, $45, $FC, $F6, $C5, $10, $74, $0A, $3C, $06, + $75, $A9, $C6, $45, $F0, $02, $EB, $A3, $3C, $05, $EB, $99, $8B, $45, $F0, $0F, + $B6, $F0, $4B, $8B, $C6, $83, $E8, $01, $74, $26, $83, $E8, $01, $74, $14, $48, + $83, $E8, $01, $75, $24, $81, $4A, $18, $80, $00, $00, $00, $8B, $03, $89, $42, + $14, $EB, $16, $83, $4A, $18, $40, $66, $8B, $03, $66, $89, $42, $14, $EB, $09, + $83, $4A, $18, $20, $8A, $03, $88, $42, $14, $8B, $45, $F4, $03, $DE, $EB, $0C, + $F6, $C5, $20, $74, $07, $81, $4A, $18, $00, $90, $00, $00, $5E, $A8, $10, $74, + $44, $A8, $40, $74, $1F, $F6, $C5, $08, $0F, $84, $84, $00, $00, $00, $81, $4A, + $18, $08, $01, $00, $00, $66, $8B, $03, $83, $C3, $02, $66, $89, $42, $10, $E9, + $91, $00, $00, $00, $F6, $C5, $08, $74, $10, $83, $4A, $18, $08, $66, $8B, $03, + $83, $C3, $02, $66, $89, $42, $10, $EB, $0C, $83, $4A, $18, $10, $8B, $03, $83, + $C3, $04, $89, $42, $10, $8B, $4D, $F4, $F6, $C1, $04, $74, $31, $8B, $42, $18, + $A8, $10, $74, $05, $83, $C8, $08, $EB, $09, $A8, $08, $74, $11, $0D, $00, $08, + $00, $00, $89, $42, $18, $66, $8B, $03, $66, $89, $42, $14, $EB, $0D, $83, $C8, + $08, $89, $42, $18, $66, $8B, $03, $66, $89, $42, $10, $83, $C3, $02, $F6, $C1, + $02, $74, $0A, $83, $4A, $18, $04, $8A, $03, $43, $88, $42, $10, $F6, $C1, $40, + $74, $11, $81, $4A, $18, $10, $01, $00, $00, $8B, $03, $83, $C3, $04, $89, $42, + $10, $EB, $12, $F6, $C1, $20, $74, $0D, $81, $4A, $18, $04, $01, $00, $00, $8A, + $03, $43, $88, $42, $10, $2B, $5D, $DC, $5F, $88, $1A, $80, $FB, $0F, $5B, $76, + $0A, $81, $4A, $18, $00, $50, $00, $00, $C6, $02, $0F, $0F, $B6, $02, $8B, $E5, + $5D, $C3, $3B, $0D, $04, $40, $00, $10, $F2, $75, $02, $F2, $C3, $F2, $E9, $28, + $00, $00, $00, $55, $8B, $EC, $6A, $00, $FF, $15, $38, $30, $00, $10, $FF, $75, + $08, $FF, $15, $3C, $30, $00, $10, $68, $09, $04, $00, $C0, $FF, $15, $4C, $30, + $00, $10, $50, $FF, $15, $34, $30, $00, $10, $5D, $C3, $55, $8B, $EC, $81, $EC, + $24, $03, $00, $00, $6A, $17, $E8, $EB, $00, $00, $00, $85, $C0, $74, $05, $6A, + $02, $59, $CD, $29, $A3, $20, $43, $00, $10, $89, $0D, $1C, $43, $00, $10, $89, + $15, $18, $43, $00, $10, $89, $1D, $14, $43, $00, $10, $89, $35, $10, $43, $00, + $10, $89, $3D, $0C, $43, $00, $10, $66, $8C, $15, $38, $43, $00, $10, $66, $8C, + $0D, $2C, $43, $00, $10, $66, $8C, $1D, $08, $43, $00, $10, $66, $8C, $05, $04, + $43, $00, $10, $66, $8C, $25, $00, $43, $00, $10, $66, $8C, $2D, $FC, $42, $00, + $10, $9C, $8F, $05, $30, $43, $00, $10, $8B, $45, $00, $A3, $24, $43, $00, $10, + $8B, $45, $04, $A3, $28, $43, $00, $10, $8D, $45, $08, $A3, $34, $43, $00, $10, + $8B, $85, $DC, $FC, $FF, $FF, $C7, $05, $70, $42, $00, $10, $01, $00, $01, $00, + $A1, $28, $43, $00, $10, $A3, $2C, $42, $00, $10, $C7, $05, $20, $42, $00, $10, + $09, $04, $00, $C0, $C7, $05, $24, $42, $00, $10, $01, $00, $00, $00, $C7, $05, + $30, $42, $00, $10, $01, $00, $00, $00, $6A, $04, $58, $6B, $C0, $00, $C7, $80, + $34, $42, $00, $10, $02, $00, $00, $00, $6A, $04, $58, $6B, $C0, $00, $8B, $0D, + $04, $40, $00, $10, $89, $4C, $05, $F8, $6A, $04, $58, $C1, $E0, $00, $8B, $0D, + $00, $40, $00, $10, $89, $4C, $05, $F8, $68, $C0, $30, $00, $10, $E8, $E1, $FE, + $FF, $FF, $8B, $E5, $5D, $C3, $FF, $25, $9C, $30, $00, $10, $C3, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $14, $39, $00, $00, $22, $39, $00, $00, $30, $39, $00, $00, $46, $39, $00, $00, + $56, $39, $00, $00, $68, $39, $00, $00, $76, $39, $00, $00, $88, $39, $00, $00, + $94, $39, $00, $00, $A4, $39, $00, $00, $B8, $39, $00, $00, $CA, $39, $00, $00, + $DA, $39, $00, $00, $02, $3C, $00, $00, $E4, $3B, $00, $00, $C8, $3B, $00, $00, + $32, $3A, $00, $00, $48, $3A, $00, $00, $56, $3A, $00, $00, $62, $3A, $00, $00, + $76, $3A, $00, $00, $94, $3A, $00, $00, $A4, $3A, $00, $00, $B4, $3A, $00, $00, + $CA, $3A, $00, $00, $DA, $3A, $00, $00, $EA, $3A, $00, $00, $06, $3B, $00, $00, + $0E, $3B, $00, $00, $1C, $3B, $00, $00, $28, $3B, $00, $00, $36, $3B, $00, $00, + $4A, $3B, $00, $00, $60, $3B, $00, $00, $78, $3B, $00, $00, $8C, $3B, $00, $00, + $9A, $3B, $00, $00, $A8, $3B, $00, $00, $B8, $3B, $00, $00, $16, $3C, $00, $00, + $00, $00, $00, $00, $FE, $39, $00, $00, $12, $3A, $00, $00, $00, $00, $00, $00, + $0C, $2A, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $20, $42, $00, $10, $70, $42, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $96, $30, $07, $77, $2C, $61, $0E, $EE, $BA, $51, $09, $99, + $19, $C4, $6D, $07, $8F, $F4, $6A, $70, $35, $A5, $63, $E9, $A3, $95, $64, $9E, + $32, $88, $DB, $0E, $A4, $B8, $DC, $79, $1E, $E9, $D5, $E0, $88, $D9, $D2, $97, + $2B, $4C, $B6, $09, $BD, $7C, $B1, $7E, $07, $2D, $B8, $E7, $91, $1D, $BF, $90, + $64, $10, $B7, $1D, $F2, $20, $B0, $6A, $48, $71, $B9, $F3, $DE, $41, $BE, $84, + $7D, $D4, $DA, $1A, $EB, $E4, $DD, $6D, $51, $B5, $D4, $F4, $C7, $85, $D3, $83, + $56, $98, $6C, $13, $C0, $A8, $6B, $64, $7A, $F9, $62, $FD, $EC, $C9, $65, $8A, + $4F, $5C, $01, $14, $D9, $6C, $06, $63, $63, $3D, $0F, $FA, $F5, $0D, $08, $8D, + $C8, $20, $6E, $3B, $5E, $10, $69, $4C, $E4, $41, $60, $D5, $72, $71, $67, $A2, + $D1, $E4, $03, $3C, $47, $D4, $04, $4B, $FD, $85, $0D, $D2, $6B, $B5, $0A, $A5, + $FA, $A8, $B5, $35, $6C, $98, $B2, $42, $D6, $C9, $BB, $DB, $40, $F9, $BC, $AC, + $E3, $6C, $D8, $32, $75, $5C, $DF, $45, $CF, $0D, $D6, $DC, $59, $3D, $D1, $AB, + $AC, $30, $D9, $26, $3A, $00, $DE, $51, $80, $51, $D7, $C8, $16, $61, $D0, $BF, + $B5, $F4, $B4, $21, $23, $C4, $B3, $56, $99, $95, $BA, $CF, $0F, $A5, $BD, $B8, + $9E, $B8, $02, $28, $08, $88, $05, $5F, $B2, $D9, $0C, $C6, $24, $E9, $0B, $B1, + $87, $7C, $6F, $2F, $11, $4C, $68, $58, $AB, $1D, $61, $C1, $3D, $2D, $66, $B6, + $90, $41, $DC, $76, $06, $71, $DB, $01, $BC, $20, $D2, $98, $2A, $10, $D5, $EF, + $89, $85, $B1, $71, $1F, $B5, $B6, $06, $A5, $E4, $BF, $9F, $33, $D4, $B8, $E8, + $A2, $C9, $07, $78, $34, $F9, $00, $0F, $8E, $A8, $09, $96, $18, $98, $0E, $E1, + $BB, $0D, $6A, $7F, $2D, $3D, $6D, $08, $97, $6C, $64, $91, $01, $5C, $63, $E6, + $F4, $51, $6B, $6B, $62, $61, $6C, $1C, $D8, $30, $65, $85, $4E, $00, $62, $F2, + $ED, $95, $06, $6C, $7B, $A5, $01, $1B, $C1, $F4, $08, $82, $57, $C4, $0F, $F5, + $C6, $D9, $B0, $65, $50, $E9, $B7, $12, $EA, $B8, $BE, $8B, $7C, $88, $B9, $FC, + $DF, $1D, $DD, $62, $49, $2D, $DA, $15, $F3, $7C, $D3, $8C, $65, $4C, $D4, $FB, + $58, $61, $B2, $4D, $CE, $51, $B5, $3A, $74, $00, $BC, $A3, $E2, $30, $BB, $D4, + $41, $A5, $DF, $4A, $D7, $95, $D8, $3D, $6D, $C4, $D1, $A4, $FB, $F4, $D6, $D3, + $6A, $E9, $69, $43, $FC, $D9, $6E, $34, $46, $88, $67, $AD, $D0, $B8, $60, $DA, + $73, $2D, $04, $44, $E5, $1D, $03, $33, $5F, $4C, $0A, $AA, $C9, $7C, $0D, $DD, + $3C, $71, $05, $50, $AA, $41, $02, $27, $10, $10, $0B, $BE, $86, $20, $0C, $C9, + $25, $B5, $68, $57, $B3, $85, $6F, $20, $09, $D4, $66, $B9, $9F, $E4, $61, $CE, + $0E, $F9, $DE, $5E, $98, $C9, $D9, $29, $22, $98, $D0, $B0, $B4, $A8, $D7, $C7, + $17, $3D, $B3, $59, $81, $0D, $B4, $2E, $3B, $5C, $BD, $B7, $AD, $6C, $BA, $C0, + $20, $83, $B8, $ED, $B6, $B3, $BF, $9A, $0C, $E2, $B6, $03, $9A, $D2, $B1, $74, + $39, $47, $D5, $EA, $AF, $77, $D2, $9D, $15, $26, $DB, $04, $83, $16, $DC, $73, + $12, $0B, $63, $E3, $84, $3B, $64, $94, $3E, $6A, $6D, $0D, $A8, $5A, $6A, $7A, + $0B, $CF, $0E, $E4, $9D, $FF, $09, $93, $27, $AE, $00, $0A, $B1, $9E, $07, $7D, + $44, $93, $0F, $F0, $D2, $A3, $08, $87, $68, $F2, $01, $1E, $FE, $C2, $06, $69, + $5D, $57, $62, $F7, $CB, $67, $65, $80, $71, $36, $6C, $19, $E7, $06, $6B, $6E, + $76, $1B, $D4, $FE, $E0, $2B, $D3, $89, $5A, $7A, $DA, $10, $CC, $4A, $DD, $67, + $6F, $DF, $B9, $F9, $F9, $EF, $BE, $8E, $43, $BE, $B7, $17, $D5, $8E, $B0, $60, + $E8, $A3, $D6, $D6, $7E, $93, $D1, $A1, $C4, $C2, $D8, $38, $52, $F2, $DF, $4F, + $F1, $67, $BB, $D1, $67, $57, $BC, $A6, $DD, $06, $B5, $3F, $4B, $36, $B2, $48, + $DA, $2B, $0D, $D8, $4C, $1B, $0A, $AF, $F6, $4A, $03, $36, $60, $7A, $04, $41, + $C3, $EF, $60, $DF, $55, $DF, $67, $A8, $EF, $8E, $6E, $31, $79, $BE, $69, $46, + $8C, $B3, $61, $CB, $1A, $83, $66, $BC, $A0, $D2, $6F, $25, $36, $E2, $68, $52, + $95, $77, $0C, $CC, $03, $47, $0B, $BB, $B9, $16, $02, $22, $2F, $26, $05, $55, + $BE, $3B, $BA, $C5, $28, $0B, $BD, $B2, $92, $5A, $B4, $2B, $04, $6A, $B3, $5C, + $A7, $FF, $D7, $C2, $31, $CF, $D0, $B5, $8B, $9E, $D9, $2C, $1D, $AE, $DE, $5B, + $B0, $C2, $64, $9B, $26, $F2, $63, $EC, $9C, $A3, $6A, $75, $0A, $93, $6D, $02, + $A9, $06, $09, $9C, $3F, $36, $0E, $EB, $85, $67, $07, $72, $13, $57, $00, $05, + $82, $4A, $BF, $95, $14, $7A, $B8, $E2, $AE, $2B, $B1, $7B, $38, $1B, $B6, $0C, + $9B, $8E, $D2, $92, $0D, $BE, $D5, $E5, $B7, $EF, $DC, $7C, $21, $DF, $DB, $0B, + $D4, $D2, $D3, $86, $42, $E2, $D4, $F1, $F8, $B3, $DD, $68, $6E, $83, $DA, $1F, + $CD, $16, $BE, $81, $5B, $26, $B9, $F6, $E1, $77, $B0, $6F, $77, $47, $B7, $18, + $E6, $5A, $08, $88, $70, $6A, $0F, $FF, $CA, $3B, $06, $66, $5C, $0B, $01, $11, + $FF, $9E, $65, $8F, $69, $AE, $62, $F8, $D3, $FF, $6B, $61, $45, $CF, $6C, $16, + $78, $E2, $0A, $A0, $EE, $D2, $0D, $D7, $54, $83, $04, $4E, $C2, $B3, $03, $39, + $61, $26, $67, $A7, $F7, $16, $60, $D0, $4D, $47, $69, $49, $DB, $77, $6E, $3E, + $4A, $6A, $D1, $AE, $DC, $5A, $D6, $D9, $66, $0B, $DF, $40, $F0, $3B, $D8, $37, + $53, $AE, $BC, $A9, $C5, $9E, $BB, $DE, $7F, $CF, $B2, $47, $E9, $FF, $B5, $30, + $1C, $F2, $BD, $BD, $8A, $C2, $BA, $CA, $30, $93, $B3, $53, $A6, $A3, $B4, $24, + $05, $36, $D0, $BA, $93, $06, $D7, $CD, $29, $57, $DE, $54, $BF, $67, $D9, $23, + $2E, $7A, $66, $B3, $B8, $4A, $61, $C4, $02, $1B, $68, $5D, $94, $2B, $6F, $2A, + $37, $BE, $0B, $B4, $A1, $8E, $0C, $C3, $1B, $DF, $05, $5A, $8D, $EF, $02, $2D, + $73, $00, $61, $00, $6E, $00, $63, $00, $74, $00, $75, $00, $61, $00, $72, $00, + $79, $00, $6C, $00, $69, $00, $62, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, + $00, $00, $00, $00, $41, $64, $64, $43, $6C, $69, $70, $62, $6F, $61, $72, $64, + $46, $6F, $72, $6D, $61, $74, $4C, $69, $73, $74, $65, $6E, $65, $72, $00, $00, + $52, $65, $6D, $6F, $76, $65, $43, $6C, $69, $70, $62, $6F, $61, $72, $64, $46, + $6F, $72, $6D, $61, $74, $4C, $69, $73, $74, $65, $6E, $65, $72, $00, $00, $00, + $6B, $00, $65, $00, $72, $00, $6E, $00, $65, $00, $6C, $00, $33, $00, $32, $00, + $2E, $00, $64, $00, $6C, $00, $6C, $00, $00, $00, $00, $00, $75, $00, $73, $00, + $65, $00, $72, $00, $33, $00, $32, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, + $00, $00, $00, $00, $47, $65, $74, $50, $72, $6F, $63, $41, $64, $64, $72, $65, + $73, $73, $00, $00, $4C, $64, $72, $47, $65, $74, $50, $72, $6F, $63, $65, $64, + $75, $72, $65, $41, $64, $64, $72, $65, $73, $73, $00, $00, $6E, $00, $74, $00, + $64, $00, $6C, $00, $6C, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, $00, $00, + $4C, $64, $72, $4C, $6F, $61, $64, $44, $6C, $6C, $00, $00, $77, $00, $69, $00, + $6E, $00, $74, $00, $72, $00, $75, $00, $73, $00, $74, $00, $2E, $00, $64, $00, + $6C, $00, $6C, $00, $00, $00, $00, $00, $57, $69, $6E, $56, $65, $72, $69, $66, + $79, $54, $72, $75, $73, $74, $00, $00, $57, $69, $6E, $56, $65, $72, $69, $66, + $79, $54, $72, $75, $73, $74, $45, $78, $00, $00, $00, $00, $62, $00, $64, $00, + $73, $00, $2E, $00, $65, $00, $78, $00, $65, $00, $00, $00, $4C, $00, $69, $00, + $63, $00, $65, $00, $6E, $00, $73, $00, $65, $00, $4D, $00, $61, $00, $6E, $00, + $61, $00, $67, $00, $65, $00, $72, $00, $2E, $00, $65, $00, $78, $00, $65, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $E1, $70, $F1, $55, $00, $00, $00, $00, $0D, $00, $00, $00, + $0C, $01, $00, $00, $1C, $37, $00, $00, $1C, $27, $00, $00, $00, $00, $00, $00, + $5C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $04, $40, $00, $10, + $00, $00, $00, $00, $00, $00, $00, $00, $B0, $30, $00, $10, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $E1, $70, $F1, $55, $00, $00, $00, $00, $EC, $36, $00, $00, + $01, $00, $00, $00, $02, $00, $00, $00, $02, $00, $00, $00, $D8, $36, $00, $00, + $E0, $36, $00, $00, $E8, $36, $00, $00, $B0, $10, $00, $00, $D0, $10, $00, $00, + $F9, $36, $00, $00, $0A, $37, $00, $00, $00, $00, $01, $00, $73, $68, $66, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $53, $48, $47, $65, $74, $46, $6F, + $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $53, $48, $47, $65, $74, $46, + $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, $00, $00, $47, $43, $54, $4C, + $00, $10, $00, $00, $0D, $1A, $00, $00, $2E, $74, $65, $78, $74, $24, $6D, $6E, + $00, $00, $00, $00, $00, $30, $00, $00, $B0, $00, $00, $00, $2E, $69, $64, $61, + $74, $61, $24, $35, $00, $00, $00, $00, $B0, $30, $00, $00, $04, $00, $00, $00, + $2E, $30, $30, $63, $66, $67, $00, $00, $C0, $30, $00, $00, $EC, $05, $00, $00, + $2E, $72, $64, $61, $74, $61, $00, $00, $B0, $36, $00, $00, $6B, $00, $00, $00, + $2E, $65, $64, $61, $74, $61, $00, $00, $1C, $37, $00, $00, $0C, $01, $00, $00, + $2E, $72, $64, $61, $74, $61, $24, $7A, $7A, $7A, $64, $62, $67, $00, $00, $00, + $28, $38, $00, $00, $28, $00, $00, $00, $2E, $69, $64, $61, $74, $61, $24, $32, + $00, $00, $00, $00, $50, $38, $00, $00, $14, $00, $00, $00, $2E, $69, $64, $61, + $74, $61, $24, $33, $00, $00, $00, $00, $64, $38, $00, $00, $B0, $00, $00, $00, + $2E, $69, $64, $61, $74, $61, $24, $34, $00, $00, $00, $00, $14, $39, $00, $00, + $1E, $03, $00, $00, $2E, $69, $64, $61, $74, $61, $24, $36, $00, $00, $00, $00, + $00, $40, $00, $00, $14, $02, $00, $00, $2E, $64, $61, $74, $61, $00, $00, $00, + $20, $42, $00, $00, $6C, $03, $00, $00, $2E, $62, $73, $73, $00, $00, $00, $00, + $00, $50, $00, $00, $58, $00, $00, $00, $2E, $72, $73, $72, $63, $24, $30, $31, + $00, $00, $00, $00, $60, $50, $00, $00, $80, $01, $00, $00, $2E, $72, $73, $72, + $63, $24, $30, $32, $00, $00, $00, $00, $64, $38, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $F0, $39, $00, $00, $00, $30, $00, $00, $08, $39, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $26, $3A, $00, $00, $A4, $30, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $14, $39, $00, $00, $22, $39, $00, $00, $30, $39, $00, $00, + $46, $39, $00, $00, $56, $39, $00, $00, $68, $39, $00, $00, $76, $39, $00, $00, + $88, $39, $00, $00, $94, $39, $00, $00, $A4, $39, $00, $00, $B8, $39, $00, $00, + $CA, $39, $00, $00, $DA, $39, $00, $00, $02, $3C, $00, $00, $E4, $3B, $00, $00, + $C8, $3B, $00, $00, $32, $3A, $00, $00, $48, $3A, $00, $00, $56, $3A, $00, $00, + $62, $3A, $00, $00, $76, $3A, $00, $00, $94, $3A, $00, $00, $A4, $3A, $00, $00, + $B4, $3A, $00, $00, $CA, $3A, $00, $00, $DA, $3A, $00, $00, $EA, $3A, $00, $00, + $06, $3B, $00, $00, $0E, $3B, $00, $00, $1C, $3B, $00, $00, $28, $3B, $00, $00, + $36, $3B, $00, $00, $4A, $3B, $00, $00, $60, $3B, $00, $00, $78, $3B, $00, $00, + $8C, $3B, $00, $00, $9A, $3B, $00, $00, $A8, $3B, $00, $00, $B8, $3B, $00, $00, + $16, $3C, $00, $00, $00, $00, $00, $00, $FE, $39, $00, $00, $12, $3A, $00, $00, + $00, $00, $00, $00, $8F, $00, $43, $72, $65, $61, $74, $65, $46, $69, $6C, $65, + $57, $00, $F0, $01, $47, $65, $74, $46, $69, $6C, $65, $53, $69, $7A, $65, $00, + $8C, $00, $43, $72, $65, $61, $74, $65, $46, $69, $6C, $65, $4D, $61, $70, $70, + $69, $6E, $67, $57, $00, $00, $57, $03, $4D, $61, $70, $56, $69, $65, $77, $4F, + $66, $46, $69, $6C, $65, $00, $D6, $04, $55, $6E, $6D, $61, $70, $56, $69, $65, + $77, $4F, $66, $46, $69, $6C, $65, $00, $52, $00, $43, $6C, $6F, $73, $65, $48, + $61, $6E, $64, $6C, $65, $00, $EF, $04, $56, $69, $72, $74, $75, $61, $6C, $50, + $72, $6F, $74, $65, $63, $74, $00, $00, $45, $05, $6C, $73, $74, $72, $63, $6D, + $70, $69, $57, $00, $A4, $02, $47, $65, $74, $56, $65, $72, $73, $69, $6F, $6E, + $45, $78, $57, $00, $18, $02, $47, $65, $74, $4D, $6F, $64, $75, $6C, $65, $48, + $61, $6E, $64, $6C, $65, $57, $00, $00, $45, $02, $47, $65, $74, $50, $72, $6F, + $63, $41, $64, $64, $72, $65, $73, $73, $00, $00, $3F, $03, $4C, $6F, $61, $64, + $4C, $69, $62, $72, $61, $72, $79, $57, $00, $00, $14, $02, $47, $65, $74, $4D, + $6F, $64, $75, $6C, $65, $46, $69, $6C, $65, $4E, $61, $6D, $65, $57, $00, $00, + $4B, $45, $52, $4E, $45, $4C, $33, $32, $2E, $64, $6C, $6C, $00, $00, $BF, $00, + $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $41, + $00, $00, $C3, $00, $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, + $61, $74, $68, $57, $00, $00, $53, $48, $45, $4C, $4C, $33, $32, $2E, $64, $6C, + $6C, $00, $EC, $02, $49, $6E, $74, $65, $72, $6C, $6F, $63, $6B, $65, $64, $45, + $78, $63, $68, $61, $6E, $67, $65, $00, $CD, $02, $48, $65, $61, $70, $43, $72, + $65, $61, $74, $65, $00, $00, $CF, $02, $48, $65, $61, $70, $46, $72, $65, $65, + $00, $00, $C0, $01, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, $50, $72, + $6F, $63, $65, $73, $73, $00, $E9, $02, $49, $6E, $74, $65, $72, $6C, $6F, $63, + $6B, $65, $64, $43, $6F, $6D, $70, $61, $72, $65, $45, $78, $63, $68, $61, $6E, + $67, $65, $00, $00, $C4, $04, $54, $68, $72, $65, $61, $64, $33, $32, $4E, $65, + $78, $74, $00, $00, $C3, $04, $54, $68, $72, $65, $61, $64, $33, $32, $46, $69, + $72, $73, $74, $00, $C5, $01, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, + $54, $68, $72, $65, $61, $64, $49, $64, $00, $00, $BA, $04, $53, $75, $73, $70, + $65, $6E, $64, $54, $68, $72, $65, $61, $64, $00, $13, $04, $52, $65, $73, $75, + $6D, $65, $54, $68, $72, $65, $61, $64, $00, $00, $BE, $00, $43, $72, $65, $61, + $74, $65, $54, $6F, $6F, $6C, $68, $65, $6C, $70, $33, $32, $53, $6E, $61, $70, + $73, $68, $6F, $74, $00, $00, $B2, $04, $53, $6C, $65, $65, $70, $00, $D2, $02, + $48, $65, $61, $70, $52, $65, $41, $6C, $6C, $6F, $63, $00, $CB, $02, $48, $65, + $61, $70, $41, $6C, $6C, $6F, $63, $00, $CE, $02, $48, $65, $61, $70, $44, $65, + $73, $74, $72, $6F, $79, $00, $86, $02, $47, $65, $74, $54, $68, $72, $65, $61, + $64, $43, $6F, $6E, $74, $65, $78, $74, $00, $00, $C1, $01, $47, $65, $74, $43, + $75, $72, $72, $65, $6E, $74, $50, $72, $6F, $63, $65, $73, $73, $49, $64, $00, + $58, $01, $46, $6C, $75, $73, $68, $49, $6E, $73, $74, $72, $75, $63, $74, $69, + $6F, $6E, $43, $61, $63, $68, $65, $00, $91, $04, $53, $65, $74, $54, $68, $72, + $65, $61, $64, $43, $6F, $6E, $74, $65, $78, $74, $00, $00, $85, $03, $4F, $70, + $65, $6E, $54, $68, $72, $65, $61, $64, $00, $00, $EC, $04, $56, $69, $72, $74, + $75, $61, $6C, $46, $72, $65, $65, $00, $E9, $04, $56, $69, $72, $74, $75, $61, + $6C, $41, $6C, $6C, $6F, $63, $00, $00, $F1, $04, $56, $69, $72, $74, $75, $61, + $6C, $51, $75, $65, $72, $79, $00, $00, $D3, $04, $55, $6E, $68, $61, $6E, $64, + $6C, $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, + $65, $72, $00, $00, $A5, $04, $53, $65, $74, $55, $6E, $68, $61, $6E, $64, $6C, + $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, $65, + $72, $00, $C0, $04, $54, $65, $72, $6D, $69, $6E, $61, $74, $65, $50, $72, $6F, + $63, $65, $73, $73, $00, $00, $04, $03, $49, $73, $50, $72, $6F, $63, $65, $73, + $73, $6F, $72, $46, $65, $61, $74, $75, $72, $65, $50, $72, $65, $73, $65, $6E, + $74, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $B1, $19, $BF, $44, $4E, $E6, $40, $BB, $00, $00, $00, $00, $00, $00, $00, $00, + $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, + $AA, $AA, $AA, $AA, $AA, $AA, $AA, $AA, $AC, $AA, $B2, $AA, $9F, $9F, $9F, $9F, + $B5, $A3, $A3, $A4, $AA, $AA, $BA, $AA, $96, $AA, $A8, $AA, $C3, $C3, $96, $96, + $B7, $AE, $D6, $BD, $A3, $C5, $A3, $A3, $9F, $C3, $9C, $AA, $AA, $AC, $AA, $BF, + $03, $7F, $11, $7F, $01, $7F, $01, $3F, $01, $01, $90, $82, $7D, $97, $59, $59, + $59, $59, $59, $7F, $59, $59, $60, $7D, $7F, $7F, $59, $59, $59, $59, $59, $59, + $59, $59, $59, $59, $59, $59, $9A, $88, $7D, $59, $50, $50, $50, $50, $59, $59, + $59, $59, $61, $94, $61, $9E, $59, $59, $85, $59, $92, $A3, $60, $60, $59, $59, + $59, $59, $59, $59, $59, $59, $59, $59, $59, $9F, $01, $03, $01, $04, $03, $D5, + $03, $CC, $01, $BC, $03, $F0, $10, $10, $10, $10, $50, $50, $50, $50, $14, $20, + $20, $20, $20, $01, $01, $01, $01, $C4, $02, $10, $00, $00, $00, $00, $01, $01, + $C0, $C2, $10, $11, $02, $03, $11, $03, $03, $04, $00, $00, $14, $00, $02, $00, + $00, $C6, $C8, $02, $02, $02, $02, $00, $00, $FF, $FF, $FF, $FF, $00, $00, $00, + $FF, $CA, $01, $01, $01, $00, $06, $00, $04, $00, $C0, $C2, $01, $01, $03, $01, + $FF, $FF, $01, $00, $03, $C4, $C4, $C6, $03, $01, $01, $01, $FF, $03, $03, $03, + $C8, $40, $00, $0A, $00, $04, $00, $00, $00, $00, $7F, $00, $33, $01, $00, $00, + $00, $00, $00, $00, $FF, $BF, $FF, $FF, $00, $00, $00, $00, $07, $00, $00, $FF, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FF, + $00, $00, $00, $BF, $00, $00, $00, $00, $00, $00, $00, $00, $7F, $00, $00, $FF, + $4A, $4A, $4A, $4A, $4B, $52, $4A, $4A, $4A, $4A, $4F, $4C, $4A, $4A, $4A, $4A, + $4A, $4A, $4A, $4A, $55, $45, $40, $4A, $4A, $4A, $45, $59, $4D, $46, $4A, $5D, + $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $61, $63, + $67, $4E, $4A, $4A, $6B, $6D, $4A, $4A, $45, $6D, $4A, $4A, $44, $45, $4A, $4A, + $00, $00, $00, $02, $0D, $06, $06, $06, $06, $0E, $00, $00, $00, $00, $06, $06, + $06, $00, $06, $06, $02, $06, $00, $0A, $0A, $07, $07, $06, $02, $05, $05, $02, + $02, $00, $00, $04, $04, $04, $04, $00, $00, $00, $0E, $05, $06, $06, $06, $01, + $06, $00, $00, $08, $00, $10, $00, $18, $00, $20, $00, $28, $00, $30, $00, $80, + $01, $82, $01, $86, $00, $F6, $CF, $FE, $3F, $AB, $00, $B0, $00, $B1, $00, $B3, + $00, $BA, $F8, $BB, $00, $C0, $00, $C1, $00, $C7, $BF, $62, $FF, $00, $8D, $FF, + $00, $C4, $FF, $00, $C5, $FF, $00, $FF, $FF, $EB, $01, $FF, $0E, $12, $08, $00, + $13, $09, $00, $16, $08, $00, $17, $09, $00, $2B, $09, $00, $AE, $FF, $07, $B2, + $FF, $00, $B4, $FF, $00, $B5, $FF, $00, $C3, $01, $00, $C7, $FF, $BF, $E7, $08, + $00, $F0, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, + $18, $00, $00, $00, $18, $00, $00, $80, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $01, $00, $02, $00, $00, $00, $30, $00, $00, $80, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, + $09, $04, $00, $00, $48, $00, $00, $00, $60, $50, $00, $00, $7D, $01, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $3C, $3F, $78, $6D, $6C, $20, $76, $65, $72, $73, $69, $6F, $6E, $3D, $27, $31, + $2E, $30, $27, $20, $65, $6E, $63, $6F, $64, $69, $6E, $67, $3D, $27, $55, $54, + $46, $2D, $38, $27, $20, $73, $74, $61, $6E, $64, $61, $6C, $6F, $6E, $65, $3D, + $27, $79, $65, $73, $27, $3F, $3E, $0D, $0A, $3C, $61, $73, $73, $65, $6D, $62, + $6C, $79, $20, $78, $6D, $6C, $6E, $73, $3D, $27, $75, $72, $6E, $3A, $73, $63, + $68, $65, $6D, $61, $73, $2D, $6D, $69, $63, $72, $6F, $73, $6F, $66, $74, $2D, + $63, $6F, $6D, $3A, $61, $73, $6D, $2E, $76, $31, $27, $20, $6D, $61, $6E, $69, + $66, $65, $73, $74, $56, $65, $72, $73, $69, $6F, $6E, $3D, $27, $31, $2E, $30, + $27, $3E, $0D, $0A, $20, $20, $3C, $74, $72, $75, $73, $74, $49, $6E, $66, $6F, + $20, $78, $6D, $6C, $6E, $73, $3D, $22, $75, $72, $6E, $3A, $73, $63, $68, $65, + $6D, $61, $73, $2D, $6D, $69, $63, $72, $6F, $73, $6F, $66, $74, $2D, $63, $6F, + $6D, $3A, $61, $73, $6D, $2E, $76, $33, $22, $3E, $0D, $0A, $20, $20, $20, $20, + $3C, $73, $65, $63, $75, $72, $69, $74, $79, $3E, $0D, $0A, $20, $20, $20, $20, + $20, $20, $3C, $72, $65, $71, $75, $65, $73, $74, $65, $64, $50, $72, $69, $76, + $69, $6C, $65, $67, $65, $73, $3E, $0D, $0A, $20, $20, $20, $20, $20, $20, $20, + $20, $3C, $72, $65, $71, $75, $65, $73, $74, $65, $64, $45, $78, $65, $63, $75, + $74, $69, $6F, $6E, $4C, $65, $76, $65, $6C, $20, $6C, $65, $76, $65, $6C, $3D, + $27, $61, $73, $49, $6E, $76, $6F, $6B, $65, $72, $27, $20, $75, $69, $41, $63, + $63, $65, $73, $73, $3D, $27, $66, $61, $6C, $73, $65, $27, $20, $2F, $3E, $0D, + $0A, $20, $20, $20, $20, $20, $20, $3C, $2F, $72, $65, $71, $75, $65, $73, $74, + $65, $64, $50, $72, $69, $76, $69, $6C, $65, $67, $65, $73, $3E, $0D, $0A, $20, + $20, $20, $20, $3C, $2F, $73, $65, $63, $75, $72, $69, $74, $79, $3E, $0D, $0A, + $20, $20, $3C, $2F, $74, $72, $75, $73, $74, $49, $6E, $66, $6F, $3E, $0D, $0A, + $3C, $2F, $61, $73, $73, $65, $6D, $62, $6C, $79, $3E, $0D, $0A, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $10, $00, $00, $54, $01, $00, $00, $18, $30, $34, $30, $4F, $30, $62, $30, + $86, $30, $94, $30, $9B, $30, $A3, $30, $C2, $30, $D2, $30, $08, $31, $77, $31, + $C5, $31, $CC, $31, $F2, $31, $05, $32, $1F, $32, $2B, $32, $3A, $32, $6A, $32, + $9C, $32, $20, $33, $2E, $33, $35, $33, $40, $33, $54, $33, $59, $33, $60, $33, + $65, $33, $6D, $33, $72, $33, $77, $33, $7D, $33, $82, $33, $89, $33, $95, $33, + $9B, $33, $AB, $33, $B8, $33, $FA, $34, $02, $35, $07, $35, $0C, $35, $29, $35, + $38, $35, $40, $35, $5A, $35, $67, $35, $75, $35, $7A, $35, $8F, $35, $95, $35, + $A2, $35, $A8, $35, $AD, $35, $B2, $35, $B8, $35, $BE, $35, $C3, $35, $F2, $35, + $13, $36, $32, $36, $3F, $36, $53, $36, $59, $36, $73, $36, $7E, $36, $8B, $36, + $A2, $36, $B0, $36, $C3, $36, $C9, $36, $E3, $36, $E9, $36, $FA, $36, $01, $37, + $07, $37, $36, $37, $3D, $37, $6F, $37, $79, $37, $9D, $37, $B0, $37, $D7, $37, + $DC, $37, $0D, $38, $36, $38, $3B, $38, $42, $38, $58, $38, $8C, $38, $9F, $38, + $C0, $38, $C4, $38, $C8, $38, $CC, $38, $D3, $38, $DF, $38, $F6, $38, $06, $39, + $0C, $39, $16, $39, $1E, $39, $2B, $39, $30, $39, $41, $39, $47, $39, $52, $39, + $5A, $39, $5F, $39, $65, $39, $71, $39, $80, $39, $A8, $39, $BC, $39, $E3, $39, + $59, $3A, $D9, $3A, $EC, $3A, $09, $3B, $1A, $3B, $25, $3B, $3C, $3B, $49, $3B, + $67, $3B, $6D, $3B, $96, $3B, $A5, $3B, $E9, $3B, $F6, $3B, $0B, $3C, $3B, $3C, + $48, $3C, $4F, $3C, $60, $3C, $66, $3C, $7F, $3C, $AA, $3C, $05, $3D, $0F, $3D, + $16, $3D, $46, $3D, $5F, $3D, $96, $3D, $A6, $3D, $C9, $3D, $FB, $3D, $05, $3E, + $0B, $3E, $18, $3E, $1E, $3E, $2B, $3E, $40, $3E, $49, $3E, $5D, $3E, $6A, $3E, + $71, $3E, $77, $3E, $7D, $3E, $83, $3E, $89, $3E, $8F, $3E, $95, $3E, $9B, $3E, + $B5, $3E, $D7, $3E, $00, $20, $00, $00, $78, $00, $00, $00, $1B, $30, $B3, $32, + $D6, $32, $04, $33, $0C, $33, $27, $33, $5E, $33, $6C, $33, $81, $33, $B6, $33, + $70, $34, $0C, $35, $16, $35, $97, $35, $A8, $35, $C0, $35, $E2, $35, $E9, $35, + $F4, $35, $F9, $35, $23, $36, $8B, $36, $90, $36, $97, $36, $D4, $38, $EA, $38, + $F3, $38, $FE, $38, $05, $39, $25, $39, $2B, $39, $31, $39, $37, $39, $3D, $39, + $43, $39, $4A, $39, $51, $39, $58, $39, $5F, $39, $66, $39, $6D, $39, $74, $39, + $7C, $39, $84, $39, $8C, $39, $98, $39, $A1, $39, $A6, $39, $AC, $39, $B6, $39, + $C0, $39, $D0, $39, $E0, $39, $F0, $39, $F9, $39, $08, $3A, $00, $30, $00, $00, + $14, $00, $00, $00, $B0, $30, $C0, $30, $C4, $30, $8C, $36, $98, $36, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 +); +implementation +const + BDS_CRC_OFFSET:DWORD=$00000BF1; + BDS_PATCH_OFFSET:DWORD=$00000C00; + BDS_FUNC_OFFSET:DWORD=$00000C06; + LM_CRC_OFFSET:DWORD=$00000C22; + LM_PATCH_OFFSET:DWORD=$00000C2A; + LM_FUNC_OFFSET:DWORD=$00000C30; + +procedure CreateSHFolderData(RadStudioVersion:PRadStudioVersion); +begin + PDWORD(@SHFolderData[BDS_CRC_OFFSET])^:=RadStudioVersion^.BdsPatchInfo.Crc; + PDWORD(@SHFolderData[BDS_PATCH_OFFSET])^:=RadStudioVersion^.BdsPatchInfo.PatchOffset; + PDWORD(@SHFolderData[BDS_FUNC_OFFSET])^:=RadStudioVersion^.BdsPatchInfo.FinalizeArrayOffset; + PDWORD(@SHFolderData[LM_CRC_OFFSET])^:=RadStudioVersion^.LicenseManagerPatchInfo.Crc; + PDWORD(@SHFolderData[LM_PATCH_OFFSET])^:=RadStudioVersion^.LicenseManagerPatchInfo.PatchOffset; + PDWORD(@SHFolderData[LM_FUNC_OFFSET])^:=RadStudioVersion^.LicenseManagerPatchInfo.FinalizeArrayOffset; +end; + +end. diff --git a/10.3.0/Keygen/Sha1.pas b/10.3.0/Keygen/Sha1.pas new file mode 100644 index 0000000..2029e4f --- /dev/null +++ b/10.3.0/Keygen/Sha1.pas @@ -0,0 +1,251 @@ +{ + +*************************************************** +* A binary compatible SHA1 implementation * +* written by Dave Barton (davebarton@bigfoot.com) * +*************************************************** +* 160bit hash size * +*************************************************** + +} +unit SHA1; + +interface +uses + Windows,SysUtils; + +type + TSHA1Digest = array[0..19] of byte; + TSHA1Context = record + Hash: array[0..4] of DWord; + Hi, Lo: integer; + Buffer: array[0..63] of byte; + Index: integer; + end; + +procedure SHA1Init(var Context: TSHA1Context); +procedure SHA1Update(var Context: TSHA1Context; Buffer: pointer; Len: integer); +procedure SHA1Final(var Context: TSHA1Context; var Digest: TSHA1Digest); + + +function SHA1String(M: AnsiString): TSHA1Digest; +function SHA1File(N: string): TSHA1Digest; +function SHA1Print(Digest: TSHA1Digest): AnsiString; + +//****************************************************************************** +implementation +{ +$R- +} + +function LRot16(X: Word; c: longint): Word; +begin + LRot16 := (X shl c) or (X shr (16 - c)); +end; + + +function RRot16(X: Word; c: longint): Word; +begin + RRot16 := (X shr c) or (X shl (16 - c)); +end; + + +function LRot32(X: DWord; c: longint): DWord; +begin + LRot32 := (X shl c) or (X shr (32 - c)); +end; + + +function RRot32(X: DWord; c: longint): DWord; +begin + RRot32 := (X shr c) or (X shl (32 - c)); +end; + + + +//****************************************************************************** + +function F1(x, y, z: DWord): DWord; +begin + Result := z xor (x and (y xor z)); +end; + +function F2(x, y, z: DWord): DWord; +begin + Result := x xor y xor z; +end; + +function F3(x, y, z: DWord): DWord; +begin + Result := (x and y) or (z and (x or y)); +end; + +//****************************************************************************** + +function RB(A: DWord): DWord; +begin + Result := (A shr 24) or ((A shr 8) and $FF00) or ((A shl 8) and $FF0000) or (A shl 24); +end; + +procedure SHA1Compress(var Data: TSHA1Context); +var + A, B, C, D, E, T: DWord; + W: array[0..79] of DWord; + i: integer; +begin + Move(Data.Buffer, W, Sizeof(Data.Buffer)); + for i := 0 to 15 do + W[i] := RB(W[i]); + for i := 16 to 79 do + W[i] := LRot32(W[i - 3] xor W[i - 8] xor W[i - 14] xor W[i - 16], 1); + A := Data.Hash[0]; B := Data.Hash[1]; C := Data.Hash[2]; D := Data.Hash[3]; E := Data.Hash[4]; + for i := 0 to 19 do + begin + T := LRot32(A, 5) + F1(B, C, D) + E + W[i] + $5A827999; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + for i := 20 to 39 do + begin + T := LRot32(A, 5) + F2(B, C, D) + E + W[i] + $6ED9EBA1; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + for i := 40 to 59 do + begin + T := LRot32(A, 5) + F3(B, C, D) + E + W[i] + $8F1BBCDC; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + for i := 60 to 79 do + begin + T := LRot32(A, 5) + F2(B, C, D) + E + W[i] + $CA62C1D6; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + Data.Hash[0] := Data.Hash[0] + A; + Data.Hash[1] := Data.Hash[1] + B; + Data.Hash[2] := Data.Hash[2] + C; + Data.Hash[3] := Data.Hash[3] + D; + Data.Hash[4] := Data.Hash[4] + E; + FillChar(W, Sizeof(W), 0); + FillChar(Data.Buffer, Sizeof(Data.Buffer), 0); +end; + +//****************************************************************************** + +procedure SHA1Init(var Context: TSHA1Context); +begin + Context.Hi := 0; Context.Lo := 0; + Context.Index := 0; + FillChar(Context.Buffer, Sizeof(Context.Buffer), 0); + Context.Hash[0] := $67452301; + Context.Hash[1] := $EFCDAB89; + Context.Hash[2] := $98BADCFE; + Context.Hash[3] := $10325476; + Context.Hash[4] := $C3D2E1F0; +end; + +//****************************************************************************** + +procedure SHA1UpdateLen(var Context: TSHA1Context; Len: integer); +var + i, k: integer; +begin + for k := 0 to 7 do + begin + i := Context.Lo; + Inc(Context.Lo, Len); + if Context.Lo < i then + Inc(Context.Hi); + end; +end; + +//****************************************************************************** + +procedure SHA1Update(var Context: TSHA1Context; Buffer: pointer; Len: integer); +type + PByte = ^Byte; +begin + SHA1UpdateLen(Context, Len); + while Len > 0 do + begin + Context.Buffer[Context.Index] := PByte(Buffer)^; + Inc(PByte(Buffer)); + Inc(Context.Index); + Dec(Len); + if Context.Index = 64 then + begin + Context.Index := 0; + SHA1Compress(Context); + end; + end; +end; + +//****************************************************************************** + +procedure SHA1Final(var Context: TSHA1Context; var Digest: TSHA1Digest); +type + PDWord = ^DWord; +begin + Context.Buffer[Context.Index] := $80; + if Context.Index >= 56 then + SHA1Compress(Context); + PDWord(@Context.Buffer[56])^ := RB(Context.Hi); + PDWord(@Context.Buffer[60])^ := RB(Context.Lo); + SHA1Compress(Context); + Context.Hash[0] := RB(Context.Hash[0]); + Context.Hash[1] := RB(Context.Hash[1]); + Context.Hash[2] := RB(Context.Hash[2]); + Context.Hash[3] := RB(Context.Hash[3]); + Context.Hash[4] := RB(Context.Hash[4]); + Move(Context.Hash, Digest, Sizeof(Digest)); + FillChar(Context, Sizeof(Context), 0); +end; + + +function SHA1String(M: AnsiString): TSHA1Digest; +var + Context: TSHA1Context; +begin + SHA1Init(Context); + SHA1Update(Context, PAnsiChar(M), length(M)); + SHA1Final(Context, Result); +end; + +function SHA1File(N: string): TSHA1Digest; +var + FileHandle: THandle; + MapHandle: THandle; + ViewPointer: pointer; + Context: TSHA1Context; +begin + SHA1Init(Context); + FileHandle := CreateFile(pChar(N), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, + nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_SEQUENTIAL_SCAN, 0); + if FileHandle <> INVALID_HANDLE_VALUE then try + MapHandle := CreateFileMapping(FileHandle, nil, PAGE_READONLY, 0, 0, nil); + if MapHandle <> 0 then try + ViewPointer := MapViewOfFile(MapHandle, FILE_MAP_READ, 0, 0, 0); + if ViewPointer <> nil then try + SHA1Update(Context, ViewPointer, GetFileSize(FileHandle, nil)); + finally + UnmapViewOfFile(ViewPointer); + end; + finally + CloseHandle(MapHandle); + end; + finally + CloseHandle(FileHandle); + end; + SHA1Final(Context, Result); +end; + +function SHA1Print(Digest: TSHA1Digest): AnsiString; +var + I: byte; +const + Digits: array[0..15] of AnsiChar = + ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'); +begin + Result := ''; + for I := 0 to 19 do Result := Result + Digits[(Digest[I] shr 4) and $0F] + Digits[Digest[I] and $0F]; +end; + +end. \ No newline at end of file diff --git a/10.3.0/Release/Activator.exe b/10.3.0/Release/Activator.exe new file mode 100644 index 0000000000000000000000000000000000000000..abf353d5d394319ee6699504d716f04c6d64de1d GIT binary patch literal 232216 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%0DRd-;@4BQ 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

^_FF;sL9Ncq+xk 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 literal 0 HcmV?d00001 diff --git a/10.3.0/Release/Readme.txt b/10.3.0/Release/Readme.txt new file mode 100644 index 0000000..63004f8 --- /dev/null +++ b/10.3.0/Release/Readme.txt @@ -0,0 +1,28 @@ +为了便于在 Lite 15.x 中使用大侠们的特别补丁,初步写成这个:Activator.exe + +他的主要作用: + +1、整合各位大虾的 Keygen +2、相对原始部署方式,这个 Activator 实现“一键激活”! + +使用方法: + +1、执行 Activator.exe + +发布历史: + +2018.11.26 - v15.0 + +1、根据 26.0.32429.4364 原版制作,基于 RadStudioKeygenSourceCodeV10.3.4364.rar 的成果 + +已知问题: + +1、在一些操作系统上如果出现安全提示,直接确定即可。 + +特别感谢: + +1、elseif, tonzi, freecat, unis, x-force, cjack 等大侠的特别补丁,感谢诸位我知道的不知道的的大虾们的辛勤劳动! +2、iny、nevergrief、snakejiao、star5、tintin1943、ti9er、wang_80919、wuxiangyang 等等我知道的不知道的的网友们的热情测试! +3、andreas hausladen 等大虾们的无私贡献! + +O(∩_∩)O~