找回密码  加入

AUTOIT CN

搜索
查看: 490|回复: 19

请教:如何验证代码加密成功?

[复制链接]
发表于 2018-5-15 19:48:40 | 显示全部楼层 |阅读模式
本帖最后由 131738 于 2018-5-15 19:49 编辑

我对加密/解密一窍不通, 所有有此一问

这几天在研究英网的一个 au3 脚本加密工具,
测试一个 2 行代码的 MsgBox 消息框脚本加密后,脚本到 595 行(不包括空行),
这个加密后的脚本同原 2 行代码的运行效果一样.

问题: 如何验证代码加密确实成功? 595 行代码的脚本确实能防止不知道加密密钥的人解密吗?
发表于 2018-5-16 10:12:21 | 显示全部楼层
估计是迷惑吧~ 方便的话前辈可以把加密后的代码贴出来看看
 楼主| 发表于 2018-5-16 14:00:55 | 显示全部楼层
迷惑就是混淆吧,这个工具混淆的脚本不能正常运行....
下面贴出使用这个工具执行加密操作的代码:
  1. #pragma compile(inputboxres, true)
  2. Global Const $MB_SYSTEMMODAL = 4096
  3. Global Const $UHID_MB = 0x00
  4. Global Const $UHID_CPU = 0x02
  5. Global Const $STR_STRIPALL = 8
  6. Global Const $UBOUND_ROWS = 1
  7. Global Const $UBOUND_COLUMNS = 2
  8. Global Const $OPEN_EXISTING = 3
  9. Global Const $FILE_SHARE_READ = 0x00000001
  10. Global Const $FILE_SHARE_WRITE = 0x00000002
  11. Global Const $FILE_SHARE_READWRITE = BitOR($FILE_SHARE_READ, $FILE_SHARE_WRITE)
  12. Global Enum $TOKENPRIMARY = 1, $TOKENIMPERSONATION
  13. Global Enum $SECURITYANONYMOUS = 0, $SECURITYIDENTIFICATION, $SECURITYIMPERSONATION, $SECURITYDELEGATION
  14. Global Enum $TOKENUSER = 1, $TOKENGROUPS, $TOKENPRIVILEGES, $TOKENOWNER, $TOKENPRIMARYGROUP, $TOKENDEFAULTDACL, $TOKENSOURCE, $TOKENTYPE, $TOKENIMPERSONATIONLEVEL, $TOKENSTATISTICS, $TOKENRESTRICTEDSIDS, $TOKENSESSIONID, $TOKENGROUPSANDPRIVILEGES, $TOKENSESSIONREFERENCE, $TOKENSANDBOXINERT, $TOKENAUDITPOLICY, $TOKENORIGIN, $TOKENELEVATIONTYPE, $TOKENLINKEDTOKEN, $TOKENELEVATION, $TOKENHASRESTRICTIONS, $TOKENACCESSINFORMATION, $TOKENVIRTUALIZATIONALLOWED, $TOKENVIRTUALIZATIONENABLED, $TOKENINTEGRITYLEVEL, $TOKENUIACCESS, $TOKENMANDATORYPOLICY, $TOKENLOGONSID
  15. Global Enum $NOT_USED_ACCESS = 0, $GRANT_ACCESS, $SET_ACCESS, $DENY_ACCESS, $REVOKE_ACCESS, $SET_AUDIT_SUCCESS, $SET_AUDIT_FAILURE
  16. Global Enum $TRUSTEE_IS_UNKNOWN = 0, $TRUSTEE_IS_USER, $TRUSTEE_IS_GROUP, $TRUSTEE_IS_DOMAIN, $TRUSTEE_IS_ALIAS, $TRUSTEE_IS_WELL_KNOWN_GROUP, $TRUSTEE_IS_DELETED, $TRUSTEE_IS_INVALID, $TRUSTEE_IS_COMPUTER
  17. Global Enum $SIDTYPEUSER = 1, $SIDTYPEGROUP, $SIDTYPEDOMAIN, $SIDTYPEALIAS, $SIDTYPEWELLKNOWNGROUP, $SIDTYPEDELETEDACCOUNT, $SIDTYPEINVALID, $SIDTYPEUNKNOWN, $SIDTYPECOMPUTER, $SIDTYPELABEL
  18. Func _WinAPI_GetLastError(Const $_iCurrentError = @error, Const $_iCurrentExtended = @extended)
  19.         Local $aResult = DllCall("kernel32.dll", "dword", "GetLastError")
  20.         Return SetError($_iCurrentError, $_iCurrentExtended, $aResult[0])
  21. EndFunc   ;==>_WinAPI_GetLastError
  22. Func _WinAPI_SetLastError($iErrorCode, Const $_iCurrentError = @error, Const $_iCurrentExtended = @extended)
  23.         DllCall("kernel32.dll", "none", "SetLastError", "dword", $iErrorCode)
  24.         Return SetError($_iCurrentError, $_iCurrentExtended, Null)
  25. EndFunc   ;==>_WinAPI_SetLastError
  26. Global Const $GW_HWNDNEXT = 2
  27. Global Const $GW_CHILD = 5
  28. Global $__g_aWinList_WinAPI[64][2] = [[0, 0]]
  29. Func __WinAPI_EnumWindowsAdd($hWnd, $sClass = "")
  30.         If $sClass = "" Then $sClass = _WinAPI_GetClassName($hWnd)
  31.         $__g_aWinList_WinAPI[0][0] += 1
  32.         Local $iCount = $__g_aWinList_WinAPI[0][0]
  33.         If $iCount >= $__g_aWinList_WinAPI[0][1] Then
  34.                 ReDim $__g_aWinList_WinAPI[$iCount + 64][2]
  35.                 $__g_aWinList_WinAPI[0][1] += 64
  36.         EndIf
  37.         $__g_aWinList_WinAPI[$iCount][0] = $hWnd
  38.         $__g_aWinList_WinAPI[$iCount][1] = $sClass
  39. EndFunc   ;==>__WinAPI_EnumWindowsAdd
  40. Func __WinAPI_EnumWindowsChild($hWnd, $bVisible = True)
  41.         $hWnd = _WinAPI_GetWindow($hWnd, $GW_CHILD)
  42.         While $hWnd <> 0
  43.                 If (Not $bVisible) Or _WinAPI_IsWindowVisible($hWnd) Then
  44.                         __WinAPI_EnumWindowsAdd($hWnd)
  45.                         __WinAPI_EnumWindowsChild($hWnd, $bVisible)
  46.                 EndIf
  47.                 $hWnd = _WinAPI_GetWindow($hWnd, $GW_HWNDNEXT)
  48.         WEnd
  49. EndFunc   ;==>__WinAPI_EnumWindowsChild
  50. Func _WinAPI_GetClassName($hWnd)
  51.         If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
  52.         Local $aResult = DllCall("user32.dll", "int", "GetClassNameW", "hwnd", $hWnd, "wstr", "", "int", 4096)
  53.         If @error Or Not $aResult[0] Then Return SetError(@error, @extended, '')
  54.         Return SetExtended($aResult[0], $aResult[2])
  55. EndFunc   ;==>_WinAPI_GetClassName
  56. Func _WinAPI_GetWindow($hWnd, $iCmd)
  57.         Local $aResult = DllCall("user32.dll", "hwnd", "GetWindow", "hwnd", $hWnd, "uint", $iCmd)
  58.         If @error Then Return SetError(@error, @extended, 0)
  59.         Return $aResult[0]
  60. EndFunc   ;==>_WinAPI_GetWindow
  61. Func _WinAPI_IsWindowVisible($hWnd)
  62.         Local $aResult = DllCall("user32.dll", "bool", "IsWindowVisible", "hwnd", $hWnd)
  63.         If @error Then Return SetError(@error, @extended, 0)
  64.         Return $aResult[0]
  65. EndFunc   ;==>_WinAPI_IsWindowVisible
  66. Global $__g_vEnum
  67. Func __CheckErrorCloseHandle($aRet, $hFile, $bLastError = 0, $iCurErr = @error, $iCurExt = @extended)
  68.         If Not $iCurErr And Not $aRet[0] Then $iCurErr = 10
  69.         Local $iLastError = _WinAPI_GetLastError()
  70.         DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $hFile)
  71.         If $iCurErr Then _WinAPI_SetLastError($iLastError)
  72.         If $bLastError Then $iCurExt = $iLastError
  73.         Return SetError($iCurErr, $iCurExt, $iCurErr)
  74. EndFunc   ;==>__CheckErrorCloseHandle
  75. Func __EnumWindowsProc($hWnd, $bVisible)
  76.         Local $aResult
  77.         If $bVisible Then
  78.                 $aResult = DllCall("user32.dll", "bool", "IsWindowVisible", "hwnd", $hWnd)
  79.                 If Not $aResult[0] Then
  80.                         Return 1
  81.                 EndIf
  82.         EndIf
  83.         __Inc($__g_vEnum)
  84.         $__g_vEnum[$__g_vEnum[0][0]][0] = $hWnd
  85.         $aResult = DllCall("user32.dll", "int", "GetClassNameW", "hwnd", $hWnd, "wstr", "", "int", 4096)
  86.         $__g_vEnum[$__g_vEnum[0][0]][1] = $aResult[2]
  87.         Return 1
  88. EndFunc   ;==>__EnumWindowsProc
  89. Func __Inc(ByRef $aData, $iIncrement = 100)
  90.         Select
  91.                 Case UBound($aData, $UBOUND_COLUMNS)
  92.                         If $iIncrement < 0 Then
  93.                                 ReDim $aData[$aData[0][0] + 1][UBound($aData, $UBOUND_COLUMNS)]
  94.                         Else
  95.                                 $aData[0][0] += 1
  96.                                 If $aData[0][0] > UBound($aData) - 1 Then
  97.                                         ReDim $aData[$aData[0][0] + $iIncrement][UBound($aData, $UBOUND_COLUMNS)]
  98.                                 EndIf
  99.                         EndIf
  100.                 Case UBound($aData, $UBOUND_ROWS)
  101.                         If $iIncrement < 0 Then
  102.                                 ReDim $aData[$aData[0] + 1]
  103.                         Else
  104.                                 $aData[0] += 1
  105.                                 If $aData[0] > UBound($aData) - 1 Then
  106.                                         ReDim $aData[$aData[0] + $iIncrement]
  107.                                 EndIf
  108.                         EndIf
  109.                 Case Else
  110.                         Return 0
  111.         EndSelect
  112.         Return 1
  113. EndFunc   ;==>__Inc
  114. Func __Iif($bTest, $vTrue, $vFalse)
  115.         Return $bTest ? $vTrue : $vFalse
  116. EndFunc   ;==>__Iif
  117. Func _WinAPI_CreateFileEx($sFilePath, $iCreation, $iAccess = 0, $iShare = 0, $iFlagsAndAttributes = 0, $tSecurity = 0, $hTemplate = 0)
  118.         Local $aRet = DllCall('kernel32.dll', 'handle', 'CreateFileW', 'wstr', $sFilePath, 'dword', $iAccess, 'dword', $iShare, 'struct*', $tSecurity, 'dword', $iCreation, 'dword', $iFlagsAndAttributes, 'handle', $hTemplate)
  119.         If @error Then Return SetError(@error, @extended, 0)
  120.         If $aRet[0] = Ptr(-1) Then Return SetError(10, _WinAPI_GetLastError(), 0)
  121.         Return $aRet[0]
  122. EndFunc   ;==>_WinAPI_CreateFileEx
  123. Func _WinAPI_GetDriveBusType($sDrive)
  124.         Local $hFile = _WinAPI_CreateFileEx('\\.\' & $sDrive, $OPEN_EXISTING, 0, $FILE_SHARE_READWRITE)
  125.         If @error Then Return SetError(@error + 20, @extended, -1)
  126.         Local $tagSTORAGE_PROPERTY_QUERY = 'ulong PropertyId;ulong QueryType;byte AdditionalParameters[1]'
  127.         Local $tSPQ = DllStructCreate($tagSTORAGE_PROPERTY_QUERY)
  128.         Local $tSDD = DllStructCreate('ulong Version;ulong Size;byte DeviceType;byte DeviceTypeModifier;byte RemovableMedia;byte CommandQueueing;ulong VendorIdOffset;ulong ProductIdOffset;ulong ProductRevisionOffset;ulong SerialNumberOffset;ulong BusType;ulong RawPropertiesLength;byte RawDeviceProperties[1]')
  129.         DllStructSetData($tSPQ, 'PropertyId', 0)
  130.         DllStructSetData($tSPQ, 'QueryType', 0)
  131.         Local $aRet = DllCall('kernel32.dll', 'bool', 'DeviceIoControl', 'handle', $hFile, 'dword', 0x002D1400, 'struct*', $tSPQ, 'dword', DllStructGetSize($tSPQ), 'struct*', $tSDD, 'dword', DllStructGetSize($tSDD), 'dword*', 0, 'ptr', 0)
  132.         If __CheckErrorCloseHandle($aRet, $hFile) Then Return SetError(@error, @extended, -1)
  133.         Return DllStructGetData($tSDD, 'BusType')
  134. EndFunc   ;==>_WinAPI_GetDriveBusType
  135. Func _WinAPI_DefSubclassProc($hWnd, $iMsg, $wParam, $lParam)
  136.         Local $aRet = DllCall('comctl32.dll', 'lresult', 'DefSubclassProc', 'hwnd', $hWnd, 'uint', $iMsg, 'wparam', $wParam, 'lparam', $lParam)
  137.         If @error Then Return SetError(@error, @extended, 0)
  138.         Return $aRet[0]
  139. EndFunc   ;==>_WinAPI_DefSubclassProc
  140. Func _WinAPI_RemoveWindowSubclass($hWnd, $pSubclassProc, $idSubClass)
  141.         Local $aRet = DllCall('comctl32.dll', 'bool', 'RemoveWindowSubclass', 'hwnd', $hWnd, 'ptr', $pSubclassProc, 'uint_ptr', $idSubClass)
  142.         If @error Then Return SetError(@error, @extended, False)
  143.         Return $aRet[0]
  144. EndFunc   ;==>_WinAPI_RemoveWindowSubclass
  145. Global $__g_hFRDlg = 0
  146. Global $__g_hFRDll = 0
  147. Func _WinAPI_UniqueHardwareID($iFlags = 0)
  148.         Local $oService = ObjGet('winmgmts:\\.\root\cimv2')
  149.         If Not IsObj($oService) Then Return SetError(1, 0, '')
  150.         Local $oItems = $oService.ExecQuery('SELECT * FROM Win32_ComputerSystemProduct')
  151.         If Not IsObj($oItems) Then Return SetError(2, 0, '')
  152.         Local $sHw = '', $iExtended = 0
  153.         For $oProperty In $oItems
  154.                 $sHw &= $oProperty.IdentifyingNumber
  155.                 $sHw &= $oProperty.Name
  156.                 $sHw &= $oProperty.SKUNumber
  157.                 $sHw &= $oProperty.UUID
  158.                 $sHw &= $oProperty.Vendor
  159.                 $sHw &= $oProperty.Version
  160.         Next
  161.         $sHw = StringStripWS($sHw, $STR_STRIPALL)
  162.         If Not $sHw Then Return SetError(3, 0, '')
  163.         Local $sText
  164.         If BitAND($iFlags, 0x0001) Then
  165.                 $oItems = $oService.ExecQuery('SELECT * FROM Win32_BIOS')
  166.                 If Not IsObj($oItems) Then Return SetError(3, 0, '')
  167.                 $sText = ''
  168.                 For $oProperty In $oItems
  169.                         $sText &= $oProperty.IdentificationCode
  170.                         $sText &= $oProperty.Manufacturer
  171.                         $sText &= $oProperty.Name
  172.                         $sText &= $oProperty.SerialNumber
  173.                         $sText &= $oProperty.SMBIOSMajorVersion
  174.                         $sText &= $oProperty.SMBIOSMinorVersion
  175.                 Next
  176.                 $sText = StringStripWS($sText, $STR_STRIPALL)
  177.                 If $sText Then
  178.                         $iExtended += 0x0001
  179.                         $sHw &= $sText
  180.                 EndIf
  181.         EndIf
  182.         If BitAND($iFlags, 0x0002) Then
  183.                 $oItems = $oService.ExecQuery('SELECT * FROM Win32_Processor')
  184.                 If Not IsObj($oItems) Then Return SetError(4, 0, '')
  185.                 $sText = ''
  186.                 For $oProperty In $oItems
  187.                         $sText &= $oProperty.Architecture
  188.                         $sText &= $oProperty.Family
  189.                         $sText &= $oProperty.Level
  190.                         $sText &= $oProperty.Manufacturer
  191.                         $sText &= $oProperty.Name
  192.                         $sText &= $oProperty.ProcessorId
  193.                         $sText &= $oProperty.Revision
  194.                         $sText &= $oProperty.Version
  195.                 Next
  196.                 $sText = StringStripWS($sText, $STR_STRIPALL)
  197.                 If $sText Then
  198.                         $iExtended += 0x0002
  199.                         $sHw &= $sText
  200.                 EndIf
  201.         EndIf
  202.         If BitAND($iFlags, 0x0004) Then
  203.                 $oItems = $oService.ExecQuery('SELECT * FROM Win32_PhysicalMedia')
  204.                 If Not IsObj($oItems) Then Return SetError(5, 0, '')
  205.                 $sText = ''
  206.                 For $oProperty In $oItems
  207.                         Switch _WinAPI_GetDriveBusType($oProperty.Tag)
  208.                                 Case 0x03, 0x0B
  209.                                         $sText &= $oProperty.SerialNumber
  210.                                 Case Else
  211.                         EndSwitch
  212.                 Next
  213.                 $sText = StringStripWS($sText, $STR_STRIPALL)
  214.                 If $sText Then
  215.                         $iExtended += 0x0004
  216.                         $sHw &= $sText
  217.                 EndIf
  218.         EndIf
  219.         Local $sHash = __MD5($sHw)
  220.         If Not $sHash Then Return SetError(6, 0, '')
  221.         Return SetExtended($iExtended, '{' & StringMid($sHash, 1, 8) & '-' & StringMid($sHash, 9, 4) & '-' & StringMid($sHash, 13, 4) & '-' & StringMid($sHash, 17, 4) & '-' & StringMid($sHash, 21, 12) & '}')
  222. EndFunc   ;==>_WinAPI_UniqueHardwareID
  223. Func __DlgSubclassProc($sHwnd, $iMsg, $wParam, $lParam, $idLV, $pData)
  224.         #forceref $idLV
  225.         Switch $iMsg
  226.                 Case 0x004E
  227.                         Local $tNMIA = DllStructCreate('hwnd;uint_ptr;' & __Iif(@AutoItX64, 'int;int', 'int') & ';int Item;int;uint;uint;uint;long;long;lparam;uint', $lParam)
  228.                         Local $hListView = DllStructGetData($tNMIA, 1)
  229.                         Local $nMsg = DllStructGetData($tNMIA, 3)
  230.                         Local $tParam = DllStructCreate('ptr;uint', $pData)
  231.                         Local $iDummy = DllStructGetData($tParam, 2)
  232.                         Local $hLV = DllStructGetData($tParam, 1)
  233.                         Switch $hListView
  234.                                 Case $hLV
  235.                                         Switch $nMsg
  236.                                                 Case -109
  237.                                                         Return 0
  238.                                                 Case -114
  239.                                                         If $iDummy Then
  240.                                                                 GUICtrlSendToDummy($iDummy, DllStructGetData($tNMIA, 'Item'))
  241.                                                         EndIf
  242.                                                         Return 0
  243.                                         EndSwitch
  244.                         EndSwitch
  245.         EndSwitch
  246.         Return _WinAPI_DefSubclassProc($sHwnd, $iMsg, $wParam, $lParam)
  247. EndFunc   ;==>__DlgSubclassProc
  248. Func __EnumSymbolsProcA($pSymInfo, $iSymSize, $lParam)
  249.         #forceref $iSymSize, $lParam
  250.         Local $tagSYMBOL_INFO = 'uint SizeOfStruct;uint TypeIndex;uint64 Reserved[2];uint Index;uint Size;uint64 ModBase;uint Flags;uint64 Value;uint64 Address;uint Register;uint Scope;uint Tag;uint NameLen;uint MaxNameLen;wchar Name[1]'
  251.         Local $tSYMINFO = DllStructCreate($tagSYMBOL_INFO, $pSymInfo)
  252.         Local $iLength = DllStructGetData($tSYMINFO, 'NameLen')
  253.         If $iLength And BitAND(DllStructGetData($tSYMINFO, 'Flags'), 0x00000600) Then
  254.                 __Inc($__g_vEnum, 500)
  255.                 $__g_vEnum[$__g_vEnum[0][0]][0] = DllStructGetData($tSYMINFO, 'Address') - DllStructGetData($tSYMINFO, _
  256.                                 'ModBase')
  257.                 $__g_vEnum[$__g_vEnum[0][0]][1] = DllStructGetData(DllStructCreate('char[' & ($iLength + 1) & ']', DllStructGetPtr($tSYMINFO, 'Name')), 1)
  258.         EndIf
  259.         Return 1
  260. EndFunc   ;==>__EnumSymbolsProcA
  261. Func __EnumSymbolsProcW($pSymInfo, $iSymSize, $lParam)
  262.         #forceref $iSymSize, $lParam
  263.         Local $tagSYMBOL_INFO = 'uint SizeOfStruct;uint TypeIndex;uint64 Reserved[2];uint Index;uint Size;uint64 ModBase;uint Flags;uint64 Value;uint64 Address;uint Register;uint Scope;uint Tag;uint NameLen;uint MaxNameLen;wchar Name[1]'
  264.         Local $tSYMINFO = DllStructCreate($tagSYMBOL_INFO, $pSymInfo)
  265.         Local $iLength = DllStructGetData($tSYMINFO, 'NameLen')
  266.         If $iLength And BitAND(DllStructGetData($tSYMINFO, 'Flags'), 0x00000600) Then
  267.                 __Inc($__g_vEnum, 500)
  268.                 $__g_vEnum[$__g_vEnum[0][0]][0] = DllStructGetData($tSYMINFO, 'Address') - DllStructGetData($tSYMINFO, _
  269.                                 'ModBase')
  270.                 $__g_vEnum[$__g_vEnum[0][0]][1] = DllStructGetData(DllStructCreate('wchar[' & ($iLength + 1) & ']', DllStructGetPtr($tSYMINFO, 'Name')), 1)
  271.         EndIf
  272.         Return 1
  273. EndFunc   ;==>__EnumSymbolsProcW
  274. Func __MD5($sData)
  275.         Local $hHash, $iError = 0
  276.         Local $hProv = DllCall('advapi32.dll', 'int', 'CryptAcquireContextW', 'ptr*', 0, 'ptr', 0, 'ptr', 0, 'dword', 3, 'dword', 0xF0000000)
  277.         If @error Or Not $hProv[0] Then Return SetError(@error + 10, @extended, '')
  278.         Do
  279.                 $hHash = DllCall('advapi32.dll', 'int', 'CryptCreateHash', 'handle', $hProv[1], 'uint', 0x00008003, 'ptr', 0, 'dword', 0, 'ptr*', 0)
  280.                 If @error Or Not $hHash[0] Then
  281.                         $iError = @error + 20
  282.                         $hHash = 0
  283.                         ExitLoop
  284.                 EndIf
  285.                 $hHash = $hHash[5]
  286.                 Local $tData = DllStructCreate('byte[' & BinaryLen($sData) & ']')
  287.                 DllStructSetData($tData, 1, $sData)
  288.                 Local $aRet = DllCall('advapi32.dll', 'int', 'CryptHashData', 'handle', $hHash, 'struct*', $tData, 'dword', DllStructGetSize($tData), 'dword', 1)
  289.                 If @error Or Not $aRet[0] Then
  290.                         $iError = @error + 30
  291.                         ExitLoop
  292.                 EndIf
  293.                 $tData = DllStructCreate('byte[16]')
  294.                 $aRet = DllCall('advapi32.dll', 'int', 'CryptGetHashParam', 'handle', $hHash, 'dword', 2, 'struct*', $tData, 'dword*', 16, 'dword', 0)
  295.                 If @error Or Not $aRet[0] Then
  296.                         $iError = @error + 40
  297.                         ExitLoop
  298.                 EndIf
  299.         Until 1
  300.         If $hHash Then
  301.                 DllCall('advapi32.dll', 'int', 'CryptDestroyHash', 'handle', $hHash)
  302.         EndIf
  303.         If $iError Then Return SetError($iError, 0, '')
  304.         Return StringTrimLeft(DllStructGetData($tData, 1), 2)
  305. EndFunc   ;==>__MD5
  306. Func __Quit()
  307.         Local $pDll = DllCallbackGetPtr($__g_hFRDll)
  308.         If $pDll Then
  309.                 _WinAPI_RemoveWindowSubclass($__g_hFRDlg, $pDll, 1000)
  310.                 DllCallbackFree($__g_hFRDll)
  311.         EndIf
  312.         $__g_hFRDll = 0
  313. EndFunc   ;==>__Quit
  314. Global Const $MEM_COMMIT = 0x00001000
  315. Global Const $PAGE_EXECUTE_READWRITE = 0x00000040
  316. Global Const $MEM_RELEASE = 0x00008000
  317. Func _MemVirtualAlloc($pAddress, $iSize, $iAllocation, $iProtect)
  318.         Local $aResult = DllCall("kernel32.dll", "ptr", "VirtualAlloc", "ptr", $pAddress, "ulong_ptr", $iSize, "dword", $iAllocation, "dword", $iProtect)
  319.         If @error Then Return SetError(@error, @extended, 0)
  320.         Return $aResult[0]
  321. EndFunc   ;==>_MemVirtualAlloc
  322. Func _MemVirtualFree($pAddress, $iSize, $iFreeType)
  323.         Local $aResult = DllCall("kernel32.dll", "bool", "VirtualFree", "ptr", $pAddress, "ulong_ptr", $iSize, "dword", $iFreeType)
  324.         If @error Then Return SetError(@error, @extended, False)
  325.         Return $aResult[0]
  326. EndFunc   ;==>_MemVirtualFree
  327. Global $_AES_CodeBuffer
  328. Global $_AES_CodeBufferMemory
  329. Global $_AES_EncryptOffset
  330. Global $_AES_DecryptOffset
  331. Global $_AES_EncryptKeyOffset
  332. Global $_AES_DecryptKeyOffset
  333. Global $_AES_EncryptECBOffset
  334. Global $_AES_DecryptECBOffset
  335. Global $_AES_EncryptCBCOffset
  336. Global $_AES_DecryptCBCOffset
  337. Global $_AES_EncryptCFBOffset
  338. Global $_AES_DecryptCFBOffset
  339. Global $_AES_CryptOFBOffset
  340. Global $_AES_ModeResetOffset
  341. Global Const $AES_CBC_MODE = 0
  342. Global Const $AES_CFB_MODE = 1
  343. Global Const $AES_OFB_MODE = 2
  344. Func _AES_Exit()
  345.         $_AES_CodeBuffer = 0
  346.         _MemVirtualFree($_AES_CodeBufferMemory, 0, $MEM_RELEASE)
  347. EndFunc   ;==>_AES_Exit
  348. Func _AES_Startup()
  349.         If Not IsDllStruct($_AES_CodeBuffer) Then
  350.                 If @AutoItX64 Then
  351.                         Local $Code = '0IUAAIcM20iJyAbRdkw8wkmHwOnGDw4Fh8k8E65EGdKMRkQR1zIj9mLEYAcJcEiD7AjZHIHRnhTEhunvDCtH28T6Dl+iUjhBYAZEJCDoNnQKLD8KOMMJ0hvwGQ2FEPaorkIGiP9UIcMCROQqOBtChu3rE4CeMcAcxoHyKRY+jsNBV05WgVVNic3kVEU8MeT+oOLHVsZyzlMIYNNbKEyLvCIkkApBD7aHNTAO6IXtbnRWr8BGjjzrPIP9eTyPM9AZwDCJ6YVJjRQAASnx6wVEOeczfiIqBhyKxgHcxcYyAkHc858awkGIA40EMZgSwyz4DzF+2YAQuEmM7EToOon4DingwawEtnQDb0D2xgMPyakBvDKywxOgJ0GnxaB0TemV0BeuJPivG+oG6egEJV8XizWnByGLRQMzBgzPEIkDGQT4RuflQ9sgFQjnB2iQDHOrkX5Czg/D5EGNgCEPOccof6+4UvawKE3b/oQpRgHWgX80SGPVoCvQOFQVfQoIkOskIhUf0kXOo4nSaM9k/QjcqCoxRO5Xf7PkiK+RMhMxQCjEKFteXxxdQVy3CI7eQ8PrA5BDAsWEPw1i4kxogsYQxDIG0K4NaNCRPTtDUAsCg5wdoRADc4IkIQQc4O0IBYOcHaEQBnODtCIHDnB2hEEIzg7QiAk5wdoRCgc4O0IgC+cHaEQMHODtCA2DnB2hEA5zg7Qn6DtITZse7I9NSA4YI/8C6apo/gricF0MhjKEqS24S2CGJtIVXi4M/P0Q65BehgGTjfFo7IuUIiTQyfqCnIxDXhF2A89tMMJBiehmjUgEOhspyMKXdJCIvyeBFjeRUr1MIyQyDyDwiLsUMJHDMwjAJDb6xxPUO5ZAv8Kqu0aa9FhBAgrxG46rL1HUiYgIVQUATQOJbCRc6HzoWPXwdQGxhDe451TmOEVEBwjPGkysKE8GoxvuLWIKUH0ChiNQP0IJM0AKxw0G1ekqsyMsQbcm2DvCHDJVD4gTnNVF5EgYQBAW/l' & _
  352.                                         'PxAwYhHwIQF3iBBxSDlYtj0ygyEXwm5gHIJQREMGfIZAUiODPkMgYRQBnyGQcJ0jPkMggRUBnyGQmiG5n94jEKoh+J70yIC6a27bwe1bf2JAwjVbYi8xfYkA3doPMX2JAO3aDzF9ikaGgVvsH2KR5yyQhYBINqVg+rhOjQpHTuSAnOcKDreokk74ubFihy7Vvq2ykwKRwlR3CI9DuBxQ3VBQAL6yzkAkyQOMgjpvfpHDiRMiQ8JDRk/QvYHvtMsKmkwPxAiKpK8jJraO8DLMV5P0yqdFaDpi7U8mWflRiJ8pAUlZIoa0CyXJAv5SFDFMiVX4Lh/Wk9CIKKz+tPi2MjmlXmOxMxwokcI+D+Rrr+ZhYdUxD+BsgcCBAXniBABwzUGlaQEWWeB1RiVYY5xcwg1P6vToibCEN0mtOxVDlGXOk14RQN02eQycv8ZMcRhTxZ0PohW5A/ojYyUVzlCpUUYpgkW2HniGllXy6aJRFj12PN8p0WRiuIhsQDSwQ0yZulMkooxKpkMEUFUzLEOCUHCxZAMt9u1pnS6ZnNBRXO3kzElyXixKrJwXPkXKxMv5QZZngoJPe/Ikpe6SgQQTDqGQQYOIPUMgUxQAeoZAZnSD1DIwcQUHqGQQi6FtKKSlEDhn3tVHnUr6MGkaBKPQqlHx4O0h+PEmkfTxa3J+5rQxWoEFq4QUYGIeBkdGxVhSQclmsipThxmekEDCmm3CchPpuRDCQFSW6dRtqTK6KTOKCfQwUjiBDWyMxZwhojSFlHPJ+0yZw5o33+RrGZJxGlB5AYCHaDthacpe0d5s2YkOS4A6yceqJYwZj0wpDAc184QiwJkPpjjZ+Kk6aKkdY7y42B7IijBc4Qhc4mbKZJryK9LBmaeBtkjvL4wRNIjUcIighXCZIUaIV8MXcBCG8CAWcDMvEmcO1POUUKEwsYLH8ECE8FoRpQnysMYFAGIljIPQ0KXwcaEWAoDhZEaA+hEnhjRRbrI8WnFAXubRxq43fpkBqBgnYJVQcnGXTtsXSJ8fkwqdGuN+wG'
  353.                         $Code &= 'DwKCUnyeFD+bBCQRrBAeIAVEAQaBApAPBywDDEZwGXsIsycyFwkxUBIKMVgSCzFgEgwxaBINMXgSDjFAF+iJifoRnPANLFZ9uSgyClxgCeheSAOlmjwOFrCeooDUFv+b8qiCQsRJf7eZEIKFfjj+/8R0THpHGHEECHkIgEkMkYIq3aYuuFwk6xkvk0lVWDOzdLyTJ0LoBCMxkm5n+hJEmQ8SckqG+QsQCCgHCEAMRZJtaHSQu1gB5hPorwIwVKnpX6mhkGEi4VyPEesTVAGpIUoCgMxiTUVKhIPsIMhHdUwyQ5C4ijqsRjF6Xw1Ke8eiinQol6jxMRQ+CAw7hXrg6EIibeHJgCAhDUsGFMOQEWj4DshwaR68lEblOBByvy+skqeHMuAJucHCE+iENzGNYP+m4B0ZID6cEelNaFixBzC6Tp1HAZxD8g8CDnEgA+cSBA5xIAXnEgYOcSAH5xIIDnEgCecSCg5xIAvnEgwOcSAN5xIODnF6g+0UirRZBUC3B8gPCDWMoVNje0jUXCiQzTIBNAZBFuiZONoG8QZbNotGVVwS6BULjCdJQf99z1Ms3LolwwkEMDEO/4xSbfTH6zguEwQgMQPDGAStEtFbHgycCAw50pDhdDZLjLf0Ctwhc4p6JISRoqwWjpEgfQgdCl01tbFmIMggyQp8yaPPlgYUxLXEZ1SxBCYQMh9kkhjCnrBk4xjoalEKSYHugNQZGXJIXxQkTxEWVwULM4AYEg6YhIZxiIYikIyYdpANGoH+oBXQUJKx3RihiGQBROBAdAxIx8Bi/wPpTNDOP0WLMbAIULQBWLgBYLyY9PAG/MED6BBEM0z1hgoUZP0DE5gWXPViAgpU/Wl/84YG/8HrR/0ITISDE0BdI1yEQfHcwemL9CJUEggTVhACmUfyAP7B6ov0IlwSCBNWEAKPAUaJyAZA09mB4lKowCTESMiQzL7y0CTUSNiQ3L7y4CTkSOiQ7L7y8CT0SPiQ/L7iCKSnBF4iQgz7hUgQSKg' & _
  354.                                         'UkRghHH3kIEgkkSghLH3kMEg0kTghPH3kQF9i8xJMF95EUFSLjEhcX3lgEmQkaEhsX3lwEnQkeEh8X1BIgXDFTwhJjojr2hAOkITPmPDEoIxQu6+gSIscUCS2C8YGUwQIIFsIFmMMSOA+i7TGusJ6ivKuaSAK6OaDxFswE2vP+6F2Vw6ZSMdp4hQzhxh2KJ+EBiGPiAiXjKeX+nlUHyFkcVwfIUxxZB8hVHFMHyFc/IWod6e9+iGoXenv+kioV3p7+tIVqNye+vSlT3envfohqF3p7/pIqFd6e/rSFajenvr0hah3p736Iahd6e/6SKhXenv60hWo1J761yO7/Se1+uJWUyn4hWBBnVkCweBzGAzjEAnYGBmgBVkByBwIG4m+GBhJByEGQSjB4SLuCWXZHQQjBwVsSxXeSm8EUUgLkAoj4CBGUggHfKso1A1C4fueWSBRDjNxDLkNMjYYZuKD3AnTZ8Lk83DLUOgYW10fXi3gQ/eJEloMMQxiTyEz8rD63vbudRgP9kSLFHJZRmrKATHRoh0Z+W8MRvYpCI7IFxi7/lDJnRDGpsVchyxIBMQSMUbkShQ0VMONGKliHF5b4iAEajIIOSQYKIZHLOgwgQ8MDI5GNCE4kTz6IEAhtFsRENzjEEjITP0QUCFZkRTIVM/QyFz9EGAQ/lqIGORkYmgZbB+icASjMhw5dBh4hkd8vIq5QDK8RRkgGIq5TSJhLoKISWzImnCMm+T2KoqQZyHeWREkyJRZmBNButqkapxYdOoYz91FxtJGkFaQZ2U+0zQPG2JhGU8QRSzSfg8HkGXIGIWLhlSsQ6AHyceC8AoBSIAQyCKkVMYToMjhqEMx2CcVrHMoBFtew68u4FiE63yORuMj2zvC3qBCWiNRkeKI2s7wt6gdUvNRSZxLDrbURgwhDWQMIhMkEm0MBxG51GQQSxelzxYinuaGwPMZZhTHFRSx0yzRiEdYcRQTftxoi3o08M4lEDEF9fNICwgp7mgRkBhQTcujkcaULv1XyFIrygy7DtGA'
  355.                         $Code &= 'UiC7e/IXYOUwIlY0MTgYPIsh8IWgw8jBQG8xrzJIkD0ZDFzATIxdUCr5C2DyYJFWZIvO1laU3oFgaBhsjENwI3ReZHiyfTIUucB8DJKeI0mX2chsXybQ4g5W5fAy35rE0IRyQpjInFmgCiOkfJm0IWgQrLKwmIaIVZQbUmf2Mvm0Fli4/rLAmYO8d87IBEnjCCwM20wXyF9tKBTMBpgdCLpa1iNnXThl2QiRyhXEZhSSyI7IypfMPEwFlWfQLEZfMhZ55kX+56kg35oZBAzOQscSiXrrK7gaP2LFJCLeWzK13TyLEolykzrsdY+KIwwQDbIMEs46sYroB2URy4ohEBEXIxZkFGIVFkIUIhtIGo0Q+1NQPSBcWJSUJwTE6DJUFiycGIxCGcgYkB8QaR6I5RnrGRya6x0UxpzLFu+pR4PNJKi43cHtg5mLLOvDzRCcMewq6wxFCAQciTEIHhiKhqTnvDxiIKT+NxkkHvPP4vVBHijnL2lMKz8MfqQUeKinUzOP6kCDwDuJi3XCCUubkOEztWlhlv/qYrowe/q9ocU+n91IUutPDOXpaljaTN9iNJgehlbGHtuLHLwmy+UM2UISoIEIBjCTbiIZQRjJz5mMQK79Qa9EReqMvoBIybTcY9ulCLDjHWKQRjeYMryrQdijFNtG3nX0l8kSCAsYi2lHQWoUMyHkVirGKMXmf1WUMFKIqo0it8rmXFs2xb2KujJASu4l0t1mcB/RYWW1ESfCk8EC/FFsE9DMzWTmCMxop8kQbKvLcEUDEMWQv6J8FVJ5CyG4C7qEm1fSUVOlosVKqolaCsgloig2y1XEkqVGPAzyxRaG1FqqNAx/18igUup5Mc2oGyGsXqEPIs5ZW6HXXkKwyLRZuA8hvF0QwKLEK5b4huFU7uTIjZDMrSgQyeAfuOjekNDNygbnKRvU4WTYzDX8Tk40Eh646euQ3N8jEMDEBIC3ZGUqxdRYFhI3XHSot2/I4L4/+TLOFOQuxbLoTG7mEuyWa1J' & _
  356.                                         'fOCEUkKUBaUt4mPogdA4/fiKB8icxpiQQ4AG1RBT2Kh2DwoBPNbjUS8zDUhD+JsIKGHXs3wgsEgPp/fT/jOokSGERLPkvzRAYEFhE8Ar/O8uAkoz0RJb1bosCZKLnEsAFAV4G++QgCFOZGohVUQethUTiIyrCKR0EBxUFK3qAkqSMIlkLtkcU4yuIw5QIB58qK/UBmqgUsw8UQQ4pkSEqDAZsDU8S6CSVTValBMz381UPwekYwcmLDIjjqRAz2noToNAsTYgIWJ6b1MbS1kFo7eTGRZLQ/t7MHs0KgTXlgAMZthrJIN8H/OFhfwONbG0heP8kDO3QB82J6SbvamjsMic7KOcfzHzM+gcGAf+NDEkGSMnzZz7IJ89SgeCUIpJFwUFHjQRAls7PXGf21BtAwMehLvjfaaSGKD/oE89KyMTCsiD8iBONyIu+0ozTSA+QlUeUmQ/tZEnNzCzpBu+tlSOSbd4GkZiFHZDtmoUoj9dm73ztmRjN+tlNkQOgzngamc2gmymB5oWmKCKexSjuB4S3WKHyNHajd9Vmlh9Y9jAilIGUQSI9VFz3rI+KiRJ1LY3qGI/PzcjNKgQeUOORwO8HRQHtJI08TJnNDP91G6KBncwS2QzpW0W0MPWklULPQpLMxxzNppOKpxSUR8+EupgoRdCjl3mkd4Qi+6rvRN3vKnVsz0jx+a6UipEojsXMEvGryCRE2lLPMiUrSjTpl0jQMvgYm4rvhkjFoidwHcRB6UnXCPofJJotsk1FoRNCC6KAJArGwaOJSio1dJxaCIqEHPDVMIi8wKYWQxgmzliyxsq6/kpgMcPuJDrApPuE8NLcG8x+NQb1Pz1fs6FN7SZ824RMCcDIUugQxyTFEaEp5O8lJBNZ5A//kFL9Nu8MWYOX4siU9EfgZRT4JvE1sFdo0av6ZPijVSKAoiZBF4QUCbz+BIyIWDzOSbJ01FoWxLKMed6k9sqBFnNJPOLNRjOSvsldFjP+0SQU6RZP9BbIGKRIsvbLysVuK/si2ZIL4UUZHm3C'
  357.                         $Code &= 'xiP7BzgzBuxCQygj5BHpe4KN1gmNyDHhRiUFNHnnpyaR75QViMzE/AjnMlnpSvYNyHDx7HVFTBXMifkZ/gTZjBLhWknXAMm6DWQ5KEpwtagdanSkzbTrmHgocnybHKLmlYIYbUgT9NocZODYzhzIzaoIogVNG5HtlAXixcRKpAVG4MjoyRQaQ+AkxAV1MlnoahqUBfMLI/gUyK13kvPUsQGI+LQa8/8qYPykBEhkAchokWyPiHAgy/xHtMVpHgeB6NkzB/VJT86VBlyZviwSyg21KyUKJgernEqXSDYRYJZEJAREUInFJQ9IBVTJdP8EBVjyXwkzBIhhqM5rCABGNxzCFFit7HJkwXpJXAhO1RWVkJRn2DoY2SOoxqQ8IKq3XObi5mhc1CKUBVghpc2dkk7yKALili3I2xfSZNzsnpVPJcoeB2jFUzCGweoHjjMUUgnSNizVkQxKwnKiymSPsh7vRQqFG1vLOyk04PkyFOoGwDWYElLh9VIAaID4TvfFFvE+EvxIFP0CzAJuRRkYCRL5TDKoZvp88sONoffznCneFkLJklJGNklGuxFE6WZKqgZMH2rNkeqh90TRLMmFpqntL5dJwGQJLffOWjsoSjD7UzT3ITjkyw93cMgc5Dwo2YVkxVzhEeWi7RpK83EczFjqk/DxzgzmpSOlGVnSCUnGzqTpyLNiN/Jl2Unt6leGOxnuyhe6+WbQKYSrvIY62eIkIFOoA5G9NMD5RmUa+uyiZE7XkvUo0aoQuCD7LYJDZsMQizy4E3osxGrgJt+wcp6vm/8rJyIYmsaJyMfIScTFIP1Bnp0hIc+1IlYPkoXO4WE51tEmiO5pyj8LrohR6UwO91FBUzyeVeo9npo56dzNE9tbLcX/qa7jyiwmFOVl1/lnQOUY0BjeEKRCfJXB4VhS3BxCHPO+EqDJ+JJU4vDQuLT0RcqJ9U3hV/PbFuNABMiJwsrYMWbWBtOvZQwe86yVTpc21RrzTNe4wNeOUJbe4FvC62nx3wv' & _
  358.                                         'B5cRgQMUB1grZ3IUSiarA468vaTHa5RjFjO8LeoCqxIxHYSPkEcSd4W9QFKLIK45JcVrNJAcriJQMB4oNK71AikbMfUQTEr6Fe/UyBxH7hqwBu0nRlcotJZJtgswBwEjGMcY5ifAS8yUy7OMS2opL2xjrBsAxHNiJx5PDEAMdsu8RPO7LVjoM/6b7gy3CqY9q2U7wejIQwHYBkviG0BZs0H4UiS+CsJCqeReIFsFD5yLHVBQGFZFLNnqQaPjAZiGbhMHrBxIEFY9AADMoWI0cZlsG2+CwMJg3WCXI5CKnyTpiUQXFwdrcWNvSIq75keLxY75bGbpM2EmmFKCHQPfwpc4zpchAFKW0ikGW+ChXFOhfdx8siFL5ozCWEiRIec/NGKw2atMuIetBIL+xY+Ix7ZHDyVy6yyCJ3oeeSJxImpfyknXiNEPqFhRSGUAN0nOAIMpay5aaWkvel8K07uLuL9ZmPUreTb3pH2XHDUQJUYmOibJ6m5SWe+Wpzk0jK9GzIqqWCuXsWrFkG7N13OUEbdUM00fKR0SXTUouJr9TX86JBf9mqfziGE7rKAnOmg9R23oMq/OkgJctZ7qXVuHdgQje26immry7HRRFmtB57Qd26j8Z2U7eSR2nMsLEzqucQkvC6/UEvyC2pFiykpSh47pRb7IRY/FRzxLPlaYbO+V8RJaIFeOnfYIruIam+9Fti5EjkqCa5cMYcEG8aqVK/VtN2xJI8kQ72DUzrSmLfiJKVKmuEQfPOiZ2bHIz0SOSW1/T1PqPlmbunssyLGyZi5vdspZpYFk0JcI7FqPNI8DOLPekKqeI8WThaOmMWix08FyK6nLxJjcpwZ8pLqcJVeqvWdkgqDYzfEgjsplfqGLR+b9+EPDI4NJk2LZr6MZkxzSolumx9g3/REiCyKab1PsmcdCxo5kq+CJOf6arxBaLfBpR9wlFwWVJIcTi+YQlq4okp8mqZS7yaYSwRAj3CQo8W3+INLARziDxQP7uhFP2FiEYpcISOu/9r0D/ae8JgeVzaQV2'
  359.                         $Code &= 'Ae1k9bBc9ZyBaWJ6W5qzYxxCMS5lVDERD6916aET+0TlLO2Gbc3rBFgA/aguie6pi0E5jiT1E6Vk+oPgNUvpHREJlFUjejbcShPfi1wi3vsCupR+WO1Exn4EvbPjFmRnnBbRfEkz6SLVIMgvmphmElScB4pDgBGChGyaUyyQFqFa+3sWcuHVl7kot/w7MxqoQCeCSsA6InAI3ntu8gUIif2916YigZ70IQM0gYFT5PCaswK2weyb9NNkLQnk4v+G3+X05zzHVhiI7WnFx77uRvlS7iJTyfU6nC7QM6MSJ+GR0PE6JgYr1DN1bU90tmwQxKI3qE6qRPH1z5tFHCQ2SSAzSKlIiBViQYwsDlp6cJFTktr46S0sxszzGSoEuUJ8oKX39jxJJCMf7xjS/1MlybVHH2aoGEjrHhGiORB4DKDvid2RRSsixO8N/OJFOD8iQtpSJpDRpS0uFe9tMf35JjNC2FM3QttSO5DJ1pcG6FHlCyHtlv3NAUwu745DzyH5NRxxJkpgIyNb0izaQgJfiigZYlpoSR1sGFCUYo9CVCvf8g3UQB7VG+GHOAn+FWoZNNaOPaVSDypAlAHrWwl47zIAqQm6eLoDBN9YzXD1zyYHfJVmukNAPVJIpqViCkhJCEy/J8Qg3REkMW6p8zcbiGw3RBQr9CSrny6UIdC2pI8uQbMiMrkEziTUU9I0cdUkUD7dSEH8iWveIMLZRUYRMIk0MT84GDyVK1MKcDqoLkn2PCUkdHesda8WbpVsFbGGr5hHOzaIcBiEvkOQ/qj+lUlM99+kqST9l97v9coEn70Cp/Tx6APXF58il+daK6J+qRN7J0TuYTR2AvRWMm77WTKm5hLsif9KTy7KNyF4zAh4SozhImSRZJssPtJ8ejCgNUoo3zBnQQA1ADNoHE5YiE3LzSwslVkmIIL7kygl2A5Nz2KLGGnY2SQrHLbc0y9Ay2MLXx3SswQFyemmbi5LxdClZCqg7atGhGoEbk9iDIf8DwyVUjG+UNk' & _
  360.                                         'EKi5AJ1gFQnHpIIjmxMY3aFvUD7IRZFMHSgYoSCGVBAZfW0ISIUrkreYZtxzvXgiKFmESiZroKjIPeVQ6xOdixzO8LeoCuuwdZMUkt7AtJeXtEMDCxYnoBCW4b+f4S8aVSPj6f+THtFskSdHpDAxbSYSb81paxem4UC366+ElXOhORJWJSHE6LxGh+I8ZiYIXtkciF0YWyBTEFSjVygbQsi+WTkXtLikDHrLy1zRC+8jLkdCi2DnUGElEGxqVtMn1GBmFJeGCyF6yosMR4xoh668kqM9i3wT7CvyyRMMizCTIMthVGZfgSbLwiYL/GGlEHx6XNNFGHCEdSdCgaOjgsnHvCTP2SsIL+EIhVKlyYKTGMcKvMzBYVrPZxRLlHkLtXohy6YbtP09ky6n5JAH4mGbolax+Cs2RZJrIFASx3EpMiiVJt6hSZTR8EhbpPd1ts2Q8zekz0qUnO20mrSXq9jLMC8fbRIox9s6vg5h0JN3ZvRXalLjoAYSJ/cgB/K29LMKjwCzNKbhovqViGFRE1EfxeazmsmSK5fFWk9yyPy/MhnNEL5eEE8CogOQQsrFBsHgP9eIOXB0kRIHJQWZASXUGq+GErtTja6wz0L2s0IZWb1x0SN3QjSvxiqUEoP2igCjdpYmNQKUc4sk0i5W92qCmgqoSFzKuJXRAUq51KdbLqEvOjdkMct/295eTlyoQz3KB67o7JhBa0kyl2AxQ44yK3ynbWbFUlZQ4c96lr+lSkY6zWvG1pHojL8+05Q6gYANR/p95LUhBkrS/zpg+2GU1ibKdkoB+mCVqKkd1J+qOUHOflIiftJnzDMOKFa1O0Ijjel5Tegai3zyVHxUnwp9UFszS39ZW8YC8oFuVhu8JYgxZJhLZ42BoH65NSwfArDxU/jzIMRBpW7ki2fc6cDyJirCVZFf00sktPHkPaXG0dImKRE6xzTOZf3VgNOa4mdoGCv91kjziaozTituXrZeQoZ2noDqeF0KatPmANB6oKyvhtr3KV7nX9JlKvFwZ70nJe8AQ'
  361.                         $Code &= 'ytOjdKTpI5pI1IIU0bH4HIXEyQjTKEJSHLHIyhDaIfq+Q3ps6SGw7526oixbLJKdmqGUvkhDMSz/WZLZuBykpXysMIsS2Thzz4H5KsSHuLe5KKreoz9A2bx7ROkU1ErC5/ll2S/EaJGpOkksf5mWrcGB6XsidIp2i5pJUu1JpcASuEWB/QH4KwoZPLibCDNoKu/BlyUS/zIWGCuRXXSnvkJu0wKmcaXO/4EbOBl6NkUkRTHVi6MvL2oTlfYYkSzJ8xNamt78g1HmDiP2N/w14fiGzf5ZJU5sOCj3q070UwHkS97KJwyoSXDX/WxotA27MwrydEu0NrlXJyDi4YUlCKtne7ocNUODm+9VrlZCNrp07aHNLBARrHpOqqOJKOcrnQ2a+FYWTE/54g/LCMSNXv12ckZe/z2E6i5o8JPzpMsg+QS22E6MJgFO/9Qi6CCy+ATEC8fR5hPkzwYh7K863PyIGeZO528/1S335dAU/LFsEJ/jlyT9zwnzShNhZjPaxIw0zBAzwnCQKZmP2lP3PFo3owpQJUif7hOfxi6fzCvNVvVRLwng76tj4sUN6iAwO4sqJLhReDN4sNIlBligKWX8YJfOjsxs9GTul82QNCddjurIlq9SBJDmkuyJrxZTZQRS8hECyxCJ+E7cW+aFkPbk7HxK8AzBph2bTCRaRebZPEK+CH4B62v3m85kZarxhJ+SFBh86xBEL8Rq3UY+WsiCNMx+JZA4G/SJOyJDQL7av6VkIl6igGYdRYSVQUAhZJVM1CKUHtI7x3Y8S/rqnYQm+bo0DFT4WIg4kIySiWmm4I0MNIAYBEqI495ExfiVz/Q+bS2KOwuU8FkOp8Rlh+elWPbLl0hZG2jkL8STZMwGyNRIrjkkalIRG0thJqTLT1Ip2CtP+LiXTWpKK6+b2b5ZpGfyyJtTIpxRCFNE+STMTb3DMTJ2ISATPFNWoUh8wM50kqK+JHhARTwJHhyTYuhKfEWTVD/A7ppRifbFJjpC/Exj0GVKiPS' & _
  362.                                         'ImFYgSifycCQMWCdv0ugbrU8nfofkGCT1L0orb1mSPy9XLVMq7TRBDJMupGakNWTmiSIk1kyTPCdSjNIbvOPcty3mZAtCi1EMPVViTmJgXQkmLTwbcip7Tc9W0jU0Uh68P1ixWKfEcmzVdI+PSE6kmRIiUq3h8zZUtI5Q0lQ5JKuSbU4mS1UYIkp1XQiYicO6UUVORFBiVDFYCohcfYj8JE+R60xxr0lCvyFM+QgafYU8wn6RMSTYSjJPsyfV2bo+RjSxu5JixeisGH/yar6LE89aQUVMRfMZcbxx12Cv9pdCnlPelqiz1YtEW+dvUInwKSbUgVOx5X8UmVN0oe2Q1bmjZOivIiXFWd4T4eNXyOlru570lklOT82a4k7L3hkx9Q3kVM+aGi3pa+Uts8ts5UvzibwiHcYx6zf/YxJJRU4SKBZC+KCy5VjvkTTpxDWRNZbt/blO0YxKPG4o/UHSLwQ5wyIk+Kmk+Slayv6I9jLa9H5A0gRmGPxF07LW16JB2o93BPXw6mnVL83UKnSGWeSy7JMG6GtlST+JCLFs4JZg9o0EpXDZMxLwqWl+tH2viaoaPnkdksY0y4MGIDJ5TE7mX5F7+eua+9gz2RYwJHhgT7R5elsoEj+D6zgnjAjxdRL3WRksLGl7T7ZiJ/4e5Muq8dCk7oFO5y23bRol9mwzzaL9YATvLB3thJW5c/UC6EKTWfXyCcD2UmTGhtlSvEqg3H3rS/6ityLOUsPSNfMmjTXq+nyfqtT0xRToHJK8rFviCnfZFnXLYj5Q2epaILMSRdpvjvaT5VmnHMxZn8pk9zPKCc7MiQopOaRjBI09K9Gpegxq2bc+CGFY8RNqzgCsDUfezzzR4QzSA+iDEByCxmNUpQQc+HxQhIfudxSZIfZ7xY0I/3HyQg0c1mtQvYfebxSxIZHFxVQIYHEwQlAcAgFQA4fOZxSpIVYrxX0I53H+QhkctddQYodNqxTmIex2xZoIj3HKQkUcH4JQnZIcXVRABBz6fVCHj+8+kBWHslkU6yGO'
  363.                         $Code &= 'R8XJCPtx8EILHEGtUOyHs9QUZyFfosX9CEVxr0LqHCOcUL+HU6QU9yHkcsWWCJtxwEJbHHW3UMKH4f0UHCE9k8WuCExxJkJqHGw2UFqHfj8UQSH198UCCINxzEJPHGg0UFyHUaUU9CHR5cf0IfnxxQgI4nFxQpMcq9hQc4diMRRTISoVxT8ICHEEQgwclcdQUodGIxRlIZ3DxV4IMHEYQigcN5ZQoYcKBRQPIS+axbUIDnEHQgkcJBJQNosbBR6bBwTf4hQ9Ic3rxSYITnEnQmkcf7J/whzqdVCfhxIJFBshHYPFnghYcSxCdBw0GlAum6KKLYME3G6KshC0WuLuhDhboKH7DqRSKPZDdjuKTRC31uJhhDh9s6HODlIpKHtD3eOKPhBeL+JxhDgThKGXDqZTKPVDudGKaBOFNAHH/hUsBwRAIBRgIeP8xR8IeXGxQsgctltQ7YfUahS+IY3LxUYIZ/392QhycTlCSxyUSlDeh5hMFNQhsFjF6AiFcc9CShy70FBrh8XvFCohT6rF5QjtcftCFhyGQ1DFh5pNFNchZjPFVQgRcYVClByKRVDPh+n5FBAhBALFBgj+nYjLBA6gUCjwQ3g8ikQQJZ/iuoQ4S6ih4w6iUSjzQ12jiv4QgEDiwIQ4BY+hig4/kiitQyGdirwQcDjiSIQ48fWhBA5jvCjfQ3e2isEQr9ridYQ4QiGhYw4gECgwReWC8BqDBP3zig4Qv9LibYQ4gc2hTA4YDCgUQyYTijUQw+ziL4Q4vl+h4Q41lyiiQ4hEiswQLhfiOYQ4k8ShVw5VpyjyQ/x+ioIQej3iR4Q4yGShrA66XSjnQzIZiisQ5nPilYQ4wGChoA4ZgSiYQ55PitEQo9zif4Q4RCKhZg5UKih+RTvCxKuDBAuIioMQjEbiyoQ4x+6hKQ5ruCjTQygUijwQp97ieYQ4vF6h4g4WCygdQ63binYTu+CKOxBkMuJWhDh0OqFODhQKKB5DkkmK2xAMBuP6EEgk4myEOLh' & _
  364.                                         'coeQOn8IoXUO904puEEOs4u+EOMRioaYOOZEoqEMxlYqkENPk4jeEOPJ5oYsJ1ecIEwQ+uMihQw5uNyhZQ9ptircQAY3ijIQ4sdWhZA6cTijSQ0mpiuAQ2GzitIQ4rFah+g7z9CgHQ8/qiiUQymXir4Q49Hqhjg5HrijpQxAIihgQb7ri1YSQoeKIoARKJeP+EFwu4nKEODgcoSQOV6Yo8UNztIrHEJfG4lGEOMvooSMOod0ofE/udCicQz4fiiEQlkvi3YQ4Yb2h3A4NiyiGQw+KioUQ4HDikIQ4fD6hQg5xtSjEQ8xmiqoQkEji2IQ4BgOhBQ739igBQxwOihIQwmHio4Q4ajWhXw6uVyj5Q2m5itAQF4bikYQ4mcGhWA46HSgnTq6eKLlD2eGKOBDr+OIThDgrmKGzDiIRKDND0mmKuxCp2eJwhDgHjqGJDjOUKKdDLZuKthA8HuIihDgVh6GSDsnpKCBP7s4oSUOqVYr/EFAo4niEOKXfoXoOA4woj0NZoYr4EAmJ4oCEOBoNoRcOZb8o2kPX5ooxEIRC4saEONBoobgOgkEow0MpmYqwEFot4neEOB4PoREOe7Aoy0OoVIr8EG274taEOCwWoToSY4RsCAR85HdyeznyHGuOR28jxZEwyAHkZ3IrOf4c145HqyN2kcrIguTJcn05+hxZjkdHI/CRrcjU5KJyrzmcHKSOR3IjwJG3yP3kk3ImOTYcP45H9yPMkTTIpeTlcvE5cRzYjkcxIxWRBMjH5CNywzkYHJaORwUjmpEHyBLkgHLiOescJ45HsiN1kQnIg+Qscho5GxxujkdaI6CRUsg75NZyszkpHOOORy8jhJFTyNHoAcXtMgQgOfwcsY5HWyNqkcvIvuQ5cko5TBxYjkfPI9CR78iq5PtyQzlNHDOOR4UjRZH5yALkf3JQOTwcn45HqCNRkaPIQOSPcpI5nRw4jkf1I7yRtsja5CFyEDn/HPOOR9IjzZEMyBPk7HJfOZccRI5HFyPEkafIfuQ9cmQ5XRwZjkdz'
  365.                         $Code &= 'I2CRgchP5NxyIjkqHJCOR4gjRpHuyLjkFHLeOV4cC45H2yPgkTLIOuQKckk5BhwkjkdcI8KR08is5GJykTmVHOSOR3kj55HIyDfkbXKNOdUcTo5HqSNskVbI9OTqcmU5ehyujkcII7qReMgl5C5yHDmmHLSOR8Yj6JHdyHTkH3JLOb0ci45HiiNwkT7IteRmckg5Axz2jkcOI2GRNchX5LlyhjnBHB2OR54j4ZH4yJjkEXJpOdkcjo5HlCObkR7Ih+Tpcs45VRwojkffI4yRociJ5A1yvznmHEKOR2gjQZGZyC3kD3KwOVQcu45HFhJdw/IHBlH0p1AJBFJ+QWVTQAkaF6TDiGo6ESdelgLVO6tryyAwH51FRPE2H6z6WKIEpUvjA5NDOCAw6lUgv612bUT2QDyIzKKRBKP1AkwlQJ5P5df8iIHFPCrLxPMIJjVEgL4EtWKjj0D73rFaSYh8JRG6G2cC40XqDpggOV3+wEThggjDL3UCgZuBTPASF+CNRpejiP9rEdP5xgKHA49f5yA0FZKcRJWOCL9teuufQ0RSWdpARNS+gy2IxFgRdCHTAt5J4GkpIOmOychERMsIdcKJao9U9KR5eEB7mVg+a4iUJxG5cd0CMr7hT7YgpvCIrUQXwgjJIKxmgSN9zjq0ED1j3yJKGATu5RoxgkBMl1EzYIiVYhFTf0UCC7Fkd+AgQrtrrkSE+gj+gaAcgcP5CCuUEE5wSCJoWPyPEUX9GQIulN5shyChUnv4RLdmCKtz0yOBKHJLAuIQ2eMfIo9XBCRmVasqTrIi6ygHIHYvtcJEA1sIhsV7moGi0zcIpRBJMCgih/IfbSO/0bICiwIDarog0e0WgkRcJQiKzxwrgXKnebSSEPjzByLy8AT2TmnioUBkZdr0zYiGBhEFvtUCaNE0Yh8gmMSm/kSKFv4uIlOdBNSi81WgQKQFiuEyiVzk9utEdcwIC4PsOYFdQGDvqhBlXnEinwYEtr1uEFFAkj4hivmIbJYR3QY' & _
  366.                                         '9O3D9IgWuBEhN5r1GQFCRVI21iP1xEcRdBQLtBAbUbyC5YFAVRP/aCBmY+ySBXta96ZcQFYlAIkPMBEZn2Z53QFew6EK9iKcHEYmLiAKN5xlbOCCdecjuRNuECKF8CkedkMRCD+lA2PiEHsmJqz2PwQmAhoOBCYwyK+1IELweESJwrATTbFpyTkAK/Q7/+4j3DxGFOFYC5D2u1R4gWDYtOUQnBQgKD9lkgbhoXKYhELObWyJU0QRFJDYuOkAGDApnsYjQkxFX5w8CLLTultIgHhubkUSejwiAwMVPgcph3CCiED9adyJLaQQPHBIaFlIDFZO6CgIJwcCgKuUgrzwi4ERDvQgSGxcdgQMOCQ0LEAHyiyLHrQQTLbaouUCKFB6pyIhrVxHxGYUCOq91B0wgke6Z3US7EQijf2D9gUH3ASafEE9cciL1vARnRGY7xUDcW/t+NIjqixFDKXYCl8sjxtwg8rbt/ERozwi45PFjgc7XMdzKEfBC+IUQiLQTEZciQALmhMYRICBzhUokRX0A9bs9+MAJrK75MhGIdMcRKaFtAiIdni9LIOfcsjBE860IDYZS7IE1d8Hj0BCFK7MiFmwE4qlwuZlA+RGUSPqIN0cR6WQiAuio/IzEIByg8D9EGnUIVn0s2IHfIjOQ7xBuh0kiTscER9k40cFA8YzKov6IGpgR1As2AnGm9YHPIB2let5EKCkI2reOJoHFP62/pBCJLDoineQEb1B4kg1At2pfzJuIYlQhfkYBDvaNE8IQqpDYIrjoBBguOfdeS76D2a/1Bwkbn12AyIn8aYYCfAkEVm/VLalAPs8lErOIS8gRrJk7AsYQGH2nINLonGNEbnkI2zu7e4EgzSZ4CRCablkiGPQ92+wRtwEPwINPKKiB/uaVbmUQeKr/9H6IzSERvM8IB1rvFejYgfS655vZEB9KbyI2zgTd6p8J1ECoKbB81ogzMRGksq8HiCo/I7iBB8allDAQxzWiImbABDF0Trw3QLH8gsqmiBLgEZDQsAIQM6fYFSBZ'
  367.                         $Code &= '8QSYREonCEHs2veBgH/NUA4X4BeR9i+IX3YRTdaNB2BD77Coh1HMqtRUQH/klgTfiKmeEdG14wIZTGqIGy+hwSwfuBBKRmUiUX8EDZ1e6gRALQGMNV2I5foRh3RzAnr7C0EuIJ+zZx1EWpMIktvSUoHJ6RBWMxCcbdYiRxME75rXYYxAoDehDHqI4FkR+BSOAjvrEzyJIE3OqSdE7q4It2HJNYEq4Rzl7RD1ekcisTwEsJzS31lAyFXycz+I6xgRFM55P7sIxze/gTxT983qEINf/SKqW/7fET1vFAKZeETbhiBhyq/zRIEXCLloxD6BKzgkNCwQBMKjIkBfBH4WHcNyQLq84iUMiHcoETxJiwLW/w2VQSAmOagBRHHhCAgMs96Badi05JwQFGRWIsGQBGN7y4RhQFXVMrZwiCFIEWxcdAIM0LhXQiR9qcfSpw9fdVend0rd5yt0D6nv152POafXnb95z9PdZ23f151/LnUP92dLnX8qdSf3v0udFz1n0qc/XnTP929K3Yc9n9fdt3mv152neQ/T3Z8qdDf3H0ud9z3f150Xaf/W3e8rdafn5150f6ln1t3veW/T3bcudM+t39bdz22P1t13aQ/W3QdpN9adh3mH0rfPS91PK3QXvQfXnb95T9bdfyt1b7fvS90XbQfW3Wd9v9bdR2l31t0naUfS939L3Wd9H9L3J191/+ePSp2vKnXf58dedQ+390rdPy90n7kX1t3fKnXv999L3VcqdRfnD0qdn31P0rdPS52HKnRXvafTp6dGAVt0p61v193vKnQn6RfX3d8udGe9r9Knl0vdFy50N6lX0ueHS91/eU/S5wdO3Sc6dYe330udb3nf06f3X3Vv9zdO3Z8rdd/3f07d1yp096mv153/eV/St5dO3d8rdJ+pZ9LnH0+dLy91X+f/Tt2vKnU/589LnQc6dN+tP9KnR0rd/yt0J+3v193vL3SH6e/S94dK3UcqdJ+px9On9190f+nX0+dXTt23OnT/7b/SpzdOnc8+df/3r0/dFz50T63/0qenTp1XO3TP6afTt19Ond8rdMetD9K3P0rdby90t7k/07cfT50PLnTX+d/T939K3d8vdO/tx9LnL0rdryt0x+mf06fvS91vPnRv+a/T589O3Zc+dIfpd9P3t0+dfz50n+lf9OkH07cPTt0/LnTn6TfS5x9O3dcrdCep99P3f0ud7zt0b/3X1qdfWp0XO3T3+c/Tpw9Pnc87dPe9N9Onh07dfyt0X72/0/dvSt1nO3T3/V/T5+9K3a8udL/tT9a3N1qdFzt0T72n1refT91nanSnucfS569Onf9rdN+5f9PnF07d72t0Z7gHLkAj5QIyewhOw04gYtOAbqtwNq0BRliO1nniUZGqW4pFWWZbijkpMGuVZ+7SVqLiHZKFxrgRosm6nlgytZT9ska1lPGU4i1l5S1k3bWc1Vv9jsktNse9FszjsYvlcaXF2LiZ4gTcjXHDbjiBBbccdVsSjmkt68ddFnXjUYsscUXFbrg54lLcLXGzbjghL7ccFVvRjgktIGf9Fluz8Yu+WeXFTKzZ4tDWzXH7azjBM7WctVr5zqktUGedFqizkYtAWYXFnax54rzWbXEhazhh87WcVVoMzkktX2c9FhezMYt+WSXFXawZ4mDWDXHcazgBkLUc9Vrujukt3kfdFtuj0Ys6UcXFBqi54sLUrXFiajih5LUclVrIjoktjUd9FqmjcYv0UWXFeqhZ4rrUTXEuajhBtLUcNVrdjiktS0cdFoqjEYu1UQXEA/z54mF+7XG5PzjhHZ+c1U/4zsknaee9E5TzsYmH+aXEVfyZ4ox+jXENPziBQp+cdU+ZzmknsOddFxY2BwA='
  368.                 Else
  369.                         Local $Code = 'magAAIcA24PsHItEJCBmiQgIEUQoBIvvjt8H6EMQDgGDxBzCig6HySfWIWgcZNJvEAE3svY3iPFiUAnAhEFUFhsQaAwYK01OAA8I6BxXDSsj2/kPxhaJyyyZPzBXNBIQJDw5Ajo4ojNwChEsCNKF+fTuFkL2/M1CBsj/X4gSA1nkC/MrhCztkXxKbJwGIUwlBBvGgPIhgDHAw3RVCu1XVlNcMy5Qo1yjQMN0x6ybSBQPtrgkB4X/dFNH0tGOgQK+gXjyj2F4E4tMJMsdcIl8gBgB+esEORjqfiNcA4N9xebH5jLMCsMGwfaIZwajGMfG9412BXIN+A9+2dqegBAalAxAHyHHHYnQKcPB+ASF8A+EDv+GovbDAxJEkY14RTM5wtz6aPW/vjIITKHWGOmzFshABxA2MgO2FGZH0kPIdkbIFQI5wdokAxzg7RIEDnB2iQUHODtEBoOcHaJBB84O0SAI5wdokAlzg7RICjnB2iQLHODtEgwOcHaJDQc4O0QOg5wdovsHavYbEBo7DMZSwkX6AsRCqs9VSMiopUE8NAHoTdw2QvQYMf8CuAGTqgFbXl9dwyYd1VEkcniSQEZwf+YafpBI4XGVa8jVRMcIw0TFZVtnWUNORsXruFR+PiwUfORM3C/oVFaGi9AxihR0oYbF6XVRkC4F+oiQ8maXmIaZGPfGAyEPhTNj/kT2fonIFlirqJpScbSoPeszSKSdnwNk/yiF+weIMhIIDnB2gQwHOS0pGOZHKQp+HYspJc9xELcLgXS16dqU04teb7Wt5xshdNy2/dIOKLQ8iWASUCRUzrAyXS9YSWaORK2ctEPzFipNXLTA+OsGOWzGRn4naFETriOxUFGJJtEyCxIOXUpUEHB5TMC6d0AV+oHTG0FdIrzInFAgAozZO/CGJvo2XJEIQUyV6yzIfNypycICJYYYFB66PQOpVN22QkpkIDoECAWpBQYo6QyJmVWoLgfCMheIFimprwzynRjPIRHKVqc+5CMCSB' & _
  370.                                         'zPcMgDkSCe4ZEEcYz3DAWJKBnuGQadG1d2HAZ7R8gfB06weIPcSAhOsHiD3EgJTrB4g9xICk6weIPcSAtOsHiD3EgMTrB4g9xIDU6weIPcSA5OsHiD3FMkQh4S4JlHNyqZFlBCe0C2YJklT3EWkglhStj+CyE8epHncTQUR7FMFeQPJN59SRYEQtAhx5HFp+XAjFPbjxKvNNOVdkukBBNXwhTBTwdMi3RZokueIzFE+YjGzEtHPMTU/TJcJ8m4yOdlTxA65ylcZKQ3RCAxwQQCCIaRDOtEGBySAfLr6IuZHTq3F2XgMcKJFuQH+WVv5DMR9yHp6oYpASCYcx4KMcFUTqYzAiUc7Y19CRMygWgse2N+LSw/YIPRNM4YnOlGoTwsrLJ/wvH8pxAglKJTO4hCvkyM41r6TCTJCAZR/WIqGgw6dhnO+ieHJSG2QV2I2IWNRJOCxvSyP0LUTYm4X4Ue72HkSV9dQmxyTA4CiRwCAyQgCAS/wAWxnD201xvCc+xZZO76/AxyIAKWaaUOYbkfHA32E8RIIGQDJ1i4wyEEOsQohkIFSil/2lmC77LPhX2WiHvss4vfZZ6O+yyR99lnlL7LPZf2W5rNEiid8lgEbCV89T9ZBlOI+FSippLzmahPm1UYc9SS3FnEVEstC5MpiZfFChId258liLShS994539YuSrC+oiQPJtipTm5GAoQnQWyiDFZFMpYEQX+LMJWkfyniKjoTQgEiwwTVPFKBCPyHRzrJbKuZjD3LLQlAa6zstO1Ak0UN9KXuulsufH374k0R2ri50dnTOQUmks99FyyyxQZRLAVNEPCRrgwNP2BVWM7AmyLrCSIrr7unOqABx+8kISPtMiMhPfFD+N8ROvBJv0E4GRkRoXtEO4CgY0wd4P3Mt40MBSI0DjIDgWQQCIGQEgHiVACCCRYCAmQNCIKQDwLi8wIDJBMIg1AVA70VqFQXAMP6k7EMUssQaPrJ4sGrOhhs81Hn82h25/NdXDWhFV5kFUaHPPqi6j8MAazKCY1PTcCDU7W'
  371.                         $Code &= 'Jzi9Fb40RDiJBFIKQCQFMkgkBjJQJAcyWCQIMjQkCTI8JAoyRCQLMkwkDDfIkA3IXJAOyCy+xIT0kLZRpST5dJKlNNGNiU8DGaUoMvQQG/9IgCZsVWu0rSCQ/qRwcJGESARtxFYIlzjSTf/mxGQsJziQ/DTrIJAmkk6w7acpQHRUg+mRCr+LBCsxwxuvftSh2xVoRHucSBKROA8MAe+UtbQ8sZ5CAoF0lOlOWbI3MklOgxyLdDODfM1sQKbCD4h1NwDB/gSF9nQ9gwLuATHb6wpLrCIdL9KVBQdUHQXWBB8Xx41ILVkQOQKGdNe4SBwO5huHaZI8JqPLvDK9RdrBeA8D8BNfwfpjqPGESNIYd4mD6uqNljSSlYlhRus+6kaYH3NDyA8COcQDg5xIBDnEBYOcSAY5xAeDnEgIOcQJg5xICjnEC4OcSAw5xA2DnEgOOcXqCJMW0hbiiYtoiNaNhTXEA5jfhFSuSLuQnhyLRSS1usN7hvkJZ4dYAiRcH5IsYYRmDXODJRwkKTCMgzyZNXOy/yHSdH5c+etMORoTMQNdFVBDmwycCAw51p6hdEVbmqHMDAoFdJDpZWSbjh6sZ0cMtsoyFIm6EKSXDNK5CFITyusY/zsyXhJOg71WDEv5CTe9kSszR9wzXQSxTQjkVQwagf+gJYRTdpZBGEPAEL4BiOCFdAq4XtDE6cELjbUR8ot1hZp9DMEYr5jpVxjoUYOdNK/OGO7OtNwbBHvS74QKDCDqX1Yo6DohIDyudux2vIxQ6woIhB7oiyyfwc0QJRiPxgnYTOqp3BQzrJ4njd4VCEjaPYucUjEe1TOUlh6P0E8cQ8HoEJvpIGnR+VggvIEMDF6gnbSCi6qXkRvUvXZQG185iegl8YgVyisGIdbQe4KP4mSCP3DegY34pYGP4o6BP3EIHqHPgB/EuIB+4TKAG/H5fx/E4n9+4Vx/G/IjFU8x+8SGfm/ETX5/ETZ++4SwfW/Pd3H8YEd97hHafL8RoXz8ikd87iM' & _
  372.                                         'E1CPLe/viez9wLnuN+PV6j+Leej9wWHqN+R8Kogg/eIJ5jfhJeY/iMnk/cKx4jfhiaI/iS2g/cMVnh8jSWl5DRwInWp6ncgiAegwxwL4CEhCxN+opUvuA88QUCsPrEpAB+vFMVheNdhDfT4iWec4KxDIMfMCMI+BWkO+y6BEICjnJxyHtZOwiDBHrCUE2geMjcj3DoulAx4aMesX16jDJiyOEjgfLMwSsDM7toCAkqq2Zps4kXlbjCI+kMW/KdlQxjc9WDBTLqY47CLyoTF6JTetPuRzeAoVQ61WH3ojVgVWn5aHeViFdVfb+VY/kDT/xo1QPoX9UD7FGVBrZmzIUUOXe/oTFUz6EoVM+xGhTehBUU/+TaHjeQlK8w0NS7IpHUvFzUnZWv3Cl3tDlUYfYrFGP4pVRNfgiUYV5Bw/hzlAfxLdQa/FEUArxKVAPsfBPH8TZT2vxZk8K8UtPD7ISFUL7TjX4iE6FeG1Oh9g0To/kHW6hqk0K97RNPsRWTX8RP02vxMxMK8SxTD7EeEx/EWFMr8TuSyvE00s+xIk7fxFyO/xepd9srDOEKayH5W9Qso8W9Q3aNoXeWOQ6jS8Wv0VsuRTB2o/eMF47wFvUYapSmamtYJ56A8Hnxw9KAnDhEAnPyhIKBT8yARwIA4k4HhZyB9TmICEGGc4TBFIGBY8h54lw7BhafAtQ4yIKhETLCKsG3R8iz4lY0D9q/ELlIQ4Z6SEMQQZSDf3ih0TRiUjhUOhePkTwOFgP7WlMcc0DqonNweIYj9odvAkQMe8opAuQCEEYQWnl/8NEAhMYiXiURv6LPRQ289weZNmiHAgNQngEiFJNfxAgiCREKCIsAsB9EQgbojARNAg4hEA8c4ZGDOhAhEJEIUgQTCEmkRC6IVAQVJxhEFx2QnwjFHRCYCFkEGiIbBCMyBjdEHCIdE9wiHwQP8gc163Ly4ahKLCECMWmmIgbCKy7jGIRsuZ7ESAbopA5lB3GOZwMjYZDJLwUgcoC1wSgcqQ5qAjLyBCsh8eA8AoB'
  373.                         $Code &= 'RcZFCqC4FwzzOIkM/m7pqWaE2uUszYTrCn4giShAeueFkM/doUmF+3iS2nIE5izOhu0KTfx+i/xiDhRDDCMNE1ygClhkDE0TYhIUhAZWESYgBEQQF4xCFjLZIRSCBlIV7ib9ATh6Eigk3cL5diAsmonLJMHrWR4cO3iB3QLZpAsIEBhcj1NZQBMYiWgzXX6EoiIvm8rzoc9KM4KjhibxUM95iGgEid1PZeIwETQIOI0QPOJAEUQCahkIG6JIEUwIUI0QVOTK1CoFZUYM6GCEQmR7jRBs4nARdAGgeAgQjdF4CHyJsGKpQmjLmBKxOmtvt5UvcSMUXliot9NIv5TlmGx3nI2RoMikYrh3ERgbpxjDPCQj9Ky4w4WYtBIMx6DG30DjCPnI6LxkRDWE+/hfTZIo7SWxUTUPj1XJ/eB+geG7UxCKjNX8wIv2+IT4R8QiyPDeyxDMl1aQwMKDxAznWZEUIihALHKB5gshzjrClgsWMKR5B2IGOstZtClgemieM1UOHCRrWJVcLBBEDCdmDSzUSpMtTEFuSHRceoHnCyHPu0KWVsYqWEBnFKkGFXJ+iAwRFCMbFRomn2GXGTzKGIkfGB6FEByHUh304g3TRDh5EZR1JjAjns/MgnEXNBKKidkUkqg8DHZAyc6By1ILCA0wTqpAExiKw5qq9UTqoibCll2NKwflKPHp7pvt7B6ltExCCHyWklJTpc+RJXjyP0wME26n0Bo0Mw4IxwQ9izgx66mUYQB0EXAEEu+MqrbdmVLA7g+26473pTC+AMYmcEC3UgSuiERSwZrpPJlGqrxQjRBU4lgRXAI8GQgbomA0QmSeoRFsryNwRHQ4eIRAfJJCcyMMXrkEoa3EqKIERrB8lAJE6WRrtpOJrw+5JagoALxb9PK9Qb/eeb2I0HKKcBDC3RGg8qQe+xysjfGwHyO0ZLhyvBkODBSN0cAfIcTkyHLMHICNz8Fv77pOut43pN0qzqQLGBAYZLrnNBATxMjQiDN8MhTUMQg' & _
  374.                                         'C2CIx+4S63DFUcQgYhRXfXZl+/pQm+2je5ZZiQTyZ3feO4EhRBIHkF6lpaugtSonsReTE4HIUG8DsCIu9SZlE0RA/1wvw+CB0TcQLfwwPEEgnABh1G+suPZEbHJBPdCU8L2Ofuyy6gJAQB7jcHxfrDalM/WuAZJvx/+P5GlgOZET1DIUIr/ky6ghbVREgIjRAOFqB4wsgy3UyQPNygeYHmcaIlT+Mr2p42TUtPLll8SEIXgboTv9qiACIUqgpc4xCDogMSVOat1L5lK4J9ei0a/bRRAyizY8zabICr6VvKxOWUPw+NBKywc4PnfEbGcruQaHmDQIVGBsQNt4zMxQJDNUkr6msJMvHGoADgNAHjRxb5jRQ2xF/zwMBU8MX3kSGHe6ANHaB9jEOIVASHf9J8f6iOgxk9pn9xMVIKe0ObG0bCMSD9+47R90szS1qehP1Ut3l9aQZzLS24qlJVUUf2tEWpQVmCCqQ7AS7nqqojZB8QxzfIVJk+FaYjyEM9EA83qWDn/4U95uzz0Lcj+WCHP3icUIQyV3+My9ZESbeTW7s7g4QqMOwnLYvaSuuB1nraxr4Q4OyigIibV7r6KITGNhdz/GnGT5fgxXUieZlFOqu9do8GYfpAQxJQtDJiBGkb1MrmXOBzUS1Sx3tYc/rS/Yt+xEb61stNjMrTtbiVpAm9w2yybCn0xOlhvdlLz7ZNajVkwlkqGT5REzp+dokiDIMDQfyWfkm3+SMmAUcjkA0zoO0RB1s9x9F2j1i26XlomSlcwUU1dkJ2k0FucDzpdyfyxTZHfI8BNmLIlBDz5lt6OJNIRIt7wI8fwX/Mv35wvSk2M2Y1u6CRFlb3lgK/EhwuhRTBNpB8vPdH8d9bwcreKUgCDfutXxI6xQX98poOzNdcxEyaxdYDDJ0FDnzF8hUgRUMt9yZaZWcaLp4LP+ZrekqmPh6yixlTOYzL9pS3kq/hRbr9fHOiOuWaZBC34laeDKB/RUnljvzIpVfF1Y4XJqASWqJSD2HNVw89l482WsZ72Cg'
  375.                         $Code &= 'Fc3riQ1jMfzdpd2W9RZpPTFEMwrp7i3ZM6YrpGTPkhbxZExd+SmP2YjNLwTZUIzQ7oxCVIhYcVxjwNI4u2JPaXSs1MCPu3yFy/RgJG1u3RPxKpos85N52TLUot/nfablcfEqIkX5ti28bbROjbdCss5st0bLIM/E/HhAms4hRERIOEyJHArEe2giGBkcD3yHRBQ3aP9EMGg0hRA44jzMnq/OiJRnRBwyFB75Dp6hu1yF+lLO+yT+G2JwIKXVBGfp+FEoDiIsRwx8gc0HaIirZohoIGQMcs3RIaPpyBUyDOniGpXMPM5qy9SPjhiJ/hfMMsL346DEU5nSLNGaEg2xG74vTmjTaKITSb0UCfUYM7p9t2pyVsAI1GWecKdE5EY0yN5z3CsHifIx2iTRiCkzm74UGAx4l4wU0EjPvFB2o7qwg8QgnRxkRDBEiUgf14mkjx5aB+vjxQ8Qy92hS5kNmH29S99v0yJomPran5XPb/lSzBk/ftJ/m7biHMlpBRA9X70sTrPf4vtlGShMlHF0NTHrSifZhc2joCTd7cUI+Ql3nlvnzVTPNKk3To4FlqJdgsqJ0dMK5dFqq98U06n8iaGl1Uqn8rQpAn5WY3Y+x96yOl8QmYlM04LeI57a/fuMQ9PImaWR6QjR82dm0+ViNmitM/xbOzU+i1ok2zLR9TEEGd7xN1G4P2LiM2SM0AmbuBiN0RgbiBhrYtIcnNAbna2iIJ5GvCIYRRTSFxEUuiMUcRQOoiAEoGIUJAxdIXEMG6IMNxAM6mlCedcs7eUQie8LnogQ3REQuBCORiifYXkEOzFpM1SSndPfcyPTXErW2j7I1WUsKJIoi+xeI+QoEuNFTKI11tzwu7GGQJlnQl+TKNjfhcXfvCWXzWnaldEW+5oQsv4kLDoiLHjft5EnfJJF96WymxyLGUoq2BTf6s2C3Mdp81Em3TpFrwkN7ywCBLh+W8QUXTItIC6QI5gRDHSJHBdIEZyIELpEBIukqmO16iIhKOkChE0' & _
  376.                                         '/ECwgze0RKF5+dUIoP92FxN0y61aoXJyD9ZAs6Cy0zU7XpGjfkPiC1btDSRYP1EmXLByIkz/ori/LiORYCJiMk0JEXFAEElhwLT/+KAQJWHQWPL2UlUl4OX2KDwSpfJd1ifJcXoHpPXWRbB39iaNXt8tpYkNp4e8h8zdPaRY6cWRUkXVieGBZT+kWciV4ZDrERW+JeGhOOZFsYnhs5a4kaVpXhAXay2Z9TFRjvMVfW93bJ2OyfCPvibQr7GhNWGCoWPMyXeJAFxBEuEiNEEy8lUtat0RIXfriMB8QNLg4hcQ8LiMgTxC8aEpZt1BIXe+l7AMtKGvOV2Ymf0ssiLLzkSC+pxCaS+XnJA0pErunGCuSs9XrHCdLCAQAWKs13QkB/gERuYnXbyftiET9CvoLkAh1SOoSIeKKPJGRSIESOL2WKgT0JFgIim785VnD+TAPIkDlEljeblZrCgruX/0z/RKY4KJj6BCB5AuyDAToLkqi1qT58CXsRWLRBA6IBPRMzgOz3uLzVGJxBD95AM5hMPulRuTlWc1AJN9zafuvkM5ehWzpx0qyWawYp6NEGG6IGNRGGLLUMlW/1hQUo+gUjdEUGogU1kbYSuNT0iMLHEoM51MJ0YnKiPpVkOoUFFKAKNIRi3TVx13F0yqdIdbT4sudm4qJ1ZnR2t3KAtc53BS8DsTGVK2Qj91vtNCS8xKtKieQqHTxG6IcNxAc18U2t4kiCPsXiVFXWcAYHL659W81nqfoXnQwI6jEEhCn9atCnq14xSXITvVtHFwGCpyaJDWbwjQktZoKLCSZdRA8To2UBIGVeYnQ306uIpWyCWvkbTA4otv083ppHDyo+YkoiXztiFJeNvUh0eQEdKjBuLCdPzlRLAp6lbPNzH2JQqi00zn1FTSep9henTJ1VTc7WThKkiI0+xeI+TQ7NWnHQtTOypZbCCuaCWpPc/2uReTfLkrX/ahu0LrIOHRBOD3Aa+JEa/0uNP7rzdX2qRlxAOlZ0SXb6xIc47+IMLpApJc265WxxagX'
  377.                         $Code &= 'pevZPZEtPHSfRg6alZVO01gIyJUfTLauXjpE5W8ZIQRRBB3iPk44jhqILLpCtL0wiZh+VmnjvyIpNMkIuFzuxQTod6g0S03d9K1h53c+QuWxfg2T26Lp1uD7zPbjqfHrPEbpEs4geeH6RiZGgLKEHZCIgukzDGcjkYxBpkoHSSIa2TMSalF9lF7rMh2kvPTqxDQkqDOttChKTsE4y920C3ksuQql0UZYaHCVtGC4S7lPCWh0WWBLK8AYxGh4lztyLic0RWRo6Moy/4EEV5wMQLomQ0uJBGzyePvSGbkM8t5VnDxb8nxU8o9E1bo6+FA775kOcN0zRHTW9O6MW/d1Vos0E3hgOwsTeGQrCCd40J+RAm+pbBj/6DFwRuFyJpIeBGHk3y5Pzje9ZiGzPLXeIE/JN/IXi3hQnRqLeFSVF494WOnrlgexGEd42agHsiXER0OyILonIUlupNZXqYbSZSyqeYhjE9LiS78hONE4YxkjIM0jLSSeI+kCGWhA8ZXsRzC8EUJoRHRpUtCCtIZJ/GIZ2Rs8F0gXTGoYkvNMq1YBsyy1zhmiMB8QNLg4hcQ8ENEn3pxbQKoPT0edhiMSiN90St+JPxSl4l++j3j3Kyc+eF0jt/53dx+ULKyRtJIC8XUMIgz1nU4BdYmUCNsnuvNRCt7nAvWW53z9Su+j+JGFXAKpCZom0F4yv/Vk66ThXv3dIPKTxidI/lIdfu7QPfCWqKJ1nyx/DhSLxBDOLnwbZwj4J2Q9sMbIMzQRHErHlfVF7nJb7xLHDif6RE7zthIk9+txNALOCN0SMLKpEnAEshJ3nelcSOJ/nxeRQKhShP0ILImQggN1HOsvf7IbfxUcbqjU0AXfjQhW7M8bTFBpjF7154MQMxJSGwkiCWpE1TCJNhKlJDhIv5FAIqNEnoGJ8xLXJPtIfJHjIjlEgpuJLxL/JIdINJGOIkNERMSJ3hLpJMtIVJF7IpREMqaJwhIjJD1I7pFMIpVEC0KJ+hLDJE5ICJEuIqF' & _
  378.                                         'EZiiJ2RIkJLJIdpFbIqJESW2JixLRJCVIcpH4IvZEZIaJaBKYJBZI1JGkIlxEzF2JZRK2JJJIbJFwIkhEUP2J7RK5JNpIXpEVIkZEV6eJjRKdJIRIkJHYJqsp6eqP8tNk0wkKSPeR5CJYRAW4ibMSRSQGSNCRLCIeRI/KiT8SDyQCSMGRryK9RAMBiRMSiiRrSDqRkSIRREFPiWcS3CTqSJeR8iLPRM7wibQS5iRzSJaRrCJ0RCLnia0SNSSFSOKR+SI3ROgciXUS3yRuSEeR8SIaRHEdiSkSxSSJSG+RtyJiRA6qiRgSviQbSPyRViI+REvGidISeSQgSJqR2yLARP54ic0SWiT0SB+R3SKoRDOIiQcSxyQxSLGREiIQRFkniYAS7CRfSGCRUSJ/RKkZibUSSiQNSC2R5SJ6RJ+TickSnCTvSKCR4CI7RE2uiSoS9SSwSMiR6yK7RDyDiVMSmSRhSBeRKyIERH66iXcS1iQmSOGRaSIURGNViSESDCR9VmoBqqhel74RAFH0p1B+QWVTABoXpMM6J16WADura8sfnUXxHqz6WIBL4wOTIDDyVQOtdm32iMyokfUCAEwlT+XX/MUqdcsAJjVEgLVio48A3rFaSSW6G2cAReoOmF3+wOEAwy91AoFM8BIAjUaXo2vT+cYAA49f5xWSnJUOv21666BSWdrUvgCDLVh0IdNJ4ABpKY7JyER1wh6JavRAeXiZWD5rACe5cd2+4U+2APCIrRfJIKxmAH3OOrRj30oYAOUaMYKXUTNgAGJTf0WxZHfgALtrroT+gaAcAPkIK5RwSGhYD49F/Rkg3myHUnsA+Lerc9MjcksAAuLjH49XZlX8KgCy6ygHL7XCAwCGxXua0zcIpX8wDofyI7/gsgIDaroA7RaCXIrPHCsAp3m0kvMH8vAATmnioWXa9M0ABgW+1dE0Yh8OxKb+iuAuU52i8x5VoAWA4TKk9ut1AAuD7DlAYO+qAF5xnwa9bhBRAz4hivmW3ds9n5AFrk3mAL1GkVSNtXHE'
  379.                         $Code &= 'fV0ABAbUb2BQFf8AGZj7JNa96ZcAiUBDzGfZnncfsOhCnwdAi4jnGVs4AHnI7tuhfApH5kICD+n4hB7JEAmAA4aDMivtSPARcKwAbFpyTv0O//sAD4U4Vj2u1R4HNi05JwrQ2WRoXACmIZtbVNEkNgAuOgwKZ7GTVwDnD7TultIbmwCRnoDAxU9h3AAgolp3S2kcEgAaFuKTugrAoAMq5Twi4EP4GxcdAA4JDQvyi8etAC22qLkUHqnIAFfxGYWvdQdMAO6Z3bujf2D9APcBJp9ccvW8AERmO8Vb+340AItDKXbLI8bcALbt/Gi45PFjPdcxncpCgIUQE5ciQA+ExhEgQEokfdK7Bz34rvky0McpoW0AHZ4vS9yyMPMADYZS7HfB49AAK7MWbKlwuZkAEZRI+kfpZCIAqPyMxKDwPxoPVn0s2KAzkO+HSQBOx9k40cGMygCi/pjUCzam9QCBz6V63ijatwCOJj+tv6QsOgCd5FB4kg1qXwDMm1R+RmL2jQATwpDYuOguOZjCAILDr/WfXYC+AGnQk3xv1S2pAM8lErPIrJk7ABAYfafonGNuetsDu3vNJngJyFkY9APsmrcBg0+oqOaV/GU7qv8AfiG8zwjvFX/oALrnm9lKbzbOAOqfCdQpsHzWATGksq8qPyPcxqUAlDA1ombAdE4AvDf8gsqm4JAA0LAzp9gV8QQAmEpB7Nr3f80AUA4XkfYvdk0H1o1D77BjzKrIVOSWAATfntG140xqAIgbwSwfuEZlAFF/nV7qBAGMADVd+od0c/sLAEEus2cdWpLbANJS6RBWM23WAEcTmtdhjDehAQx6WfgUjuv4PIkAzqkn7rdhyTUA4Rzl7XpHsTwAnNLfWVXycz8OGBTOecDHN79T9wDN6l/9qlvfPQBvFHhE24bKrwDzgbloxD44JAA0LMKjQF8WHQDDcrziJQwoPABJi/8NlUE5qB8BcQiAs97YtOScAGRWwZB7y4RhFtUytgA3bFx00LgXV0JQSAF' & _
  380.                                         'TkcMilkTL8Yu0SJORVSL2RJElifwXGJGAIo9ESWeJmBLhJAJIEpGjIsZE55WJ6xLaJC1I05EpIkREaniJaxLdJLZIF5FmIrREGIKJYBJFJOBIhJEcIpREWBmJhxK3JCNI4pFXIipEBwOJmhKlJPJIspG6IlxEK5KJ8BKhJM1I1ZEfIopEnaCJMhJ1JDlIqpEGIlFE+T2JrhJGJLVeYkRv/4kkEpckzEh3vUSIiTgS2yRHSOmRyXCJgxJIJKxITpH7Ilb/EickZEghkdEiOkSxD4nSEp4kT0iikWkiFkQK5YlDEh0kC0itkbkiyESFTIm7Ev0kn0i8kcUiNER23IloEmMkykgQkUAiIER9+IvMSG2RSyLzROzQiWwSmST6SCKRxCIaRNjviccSwST+SDaRzyIoRCakieQSDSSbSGKRwiLoRF71ib4SfCSpSLOROyKnRG57iQkS9CQBSKiRZSJ+RQjuJNlIzpHUItZFr84kMEjAkTcipkSwFYlKEvckDkgvkY1yiVQS3yTjSBuRuCJ/RARdiXMSLiRaSFKRMyITRIx6iY4SiSTuSDWR7X2JWRI/JHlIv5HqIlv9EoYkgUg+kSwiX0RyDImLEkEkcUjekZwikERhcIl0EkIkp0hlkaQiXkRrRYlYEgMusSJt4xJMJNdIy5FEIqNEWhuJDhLAJHVI8JGXIvlEX5yJehJZJINIIZFpIshEiXmJPhJxJE9IrZGsIjpESjGJMxJ/JHdIrpGgIitEaP2JbBL4JNNIApGPeokoEsIke0gIkYd3iWoSgiQcSLSR8iLiRPS+iWIS/iRTSFWR4SLrROzviZ8SECSKXuJFBfokjUhdkdQiFUT76YlDEp4kQkiLkVsi7kQKD4keFwiRhiLtRHByif8SOCTVSDmR2SKmRFQuiWcS5ySWSJGRxSIgREsaiboSKiTgSBeRDSLHRKipiRkSByTdSGCRJiL1RDt+iSkSxiT8SPG9xIWJIhIRJCRIPZEyIqFELzCJUhLjJBZIuZFIImREjD+JLBKQJE5I'
  381.                         $Code &= '0ZGiIgtEgd6JjhK/JJ1IkpHMIkZEE7iJ9xKvJIBIk5EtIhJEmX2JYxK7JHhfYkW3xi9RconPEugkm0g2kQkifESyI4mUEmYkvEjKkdAi2ESY2olQEvYk1kiwusQEibUSiCQfSFGR6iI1RHRBiR0S0iRWSEeRYSIMRBQ8iScSySTlSLGR3yJzRM43ic0SqiRvSNuR8yLERDRAicMSJSRJSJWRASKzROTBiYQStiRcSFeR9CJBRBcniasSnST6SOORMCJ2RMwCieUSKiQ1SGKRsSK6ROr+iS8STCRGSNORjyKSRG1Sib4SdCTgSMmRwnWJWBK5JOFIiJEgIs5E3xqJURJTJGRIa5GBIghESEWJ3hJ7JHNIS5EfIlVE67WJxRI3L/Eiv0QDFonPEnkkB0hpkdoiBUQ0pokuEvMvUSL2RINgiXESbiQhSN26xOaJVBLEJAZIUJGYIr1EQNmJ6BeYkRkiyER8QomEFwiRgCIrRBFaiQ4ShSSuSC28xFyJWxfYvsRXie4SmyTASNyRdyISRJOgiSISGyQJSIuRtiIeRPF1iZkSfyQBSHKRZiL7REMjie0S5CQxXaJEl8aJShK7JPlIKZGeIrJEhsGJsxJwJJRI6ZH8IvBEfTOJSRI4JMpI1JH1InpEt62JOhJ4JF9IfpGNIthEOcOJXRLQJNVIJZGsIhhFnOokJkhZkZoiT0SV/4m8EhUk50hvkZ8isESkP4mlEqIkTkiCkZAip0QE7InNEpEkTUjvkaoilkTRaoksEmUkXkiMkYciC0Rn24kQEtYk10ihkfh+iakSYSQcSEeR0iLyRBTHifcS/SQ9SESRryJoRCSjiR0S4iQ8SA2RqH6JtBJWJMtIMpFsIriXFRETY+bjJ3fMp07y2DdvnTGjMDtiU2deh8T+/RuJq/N7E8r2FyfJ7HBO+phHR52xS60+YmOidqfEnPlviXLTsxO35lMlk+zPTjbY3/efMY80P2Kr5XZHxHH5T4kx83cTBKbLJyPsM04Y2LM' & _
  382.                                         'FnbEbBzpi34B2q8Tr6eOJstunEwmmcycsbKNOG9i3Wp0xu1Ic1p8xlylqYg8vfN/EU/1rnCfsF04g2LOxn7GXampiB77UQ8RK/e+JWPNzE9C2Jy2qTG9OQ9gnM58xX0UcAp2xg1A7YiefdtPFUam7iUD7HxOS9nsnOGxjT7zYy9qdsRcQamK783xHxM3tK4kT2fPFl6nLixdTzxOntnstPUxDT12YB3OfMR+BP2JX3H4jxCr994uIUxcT7vbXLRRsG1pemOvbnzEbMj9ipwrUw8UGqd+LXFsrE9P2gydi7MtalZgzeZ+xj8g/Yn9t1HvF1a07i6lTvxNW9gst6kzbT3qYhwifMU94a2IrLn6/xaapA4nG+9MT3fb/Jx/sg1q92GOKtbEbPj9iE2bWJ8UDrW+JDvPDFjW2Gy25bH9awZgHnp8xv/hrYo8RfMvF2blTi5RzbxYe5mst6UyjW1WYB9+1sU+hamJLDdzPxea5R4toU/MTmfanJw/sc09U2G8Wis0BVVUlxRFDxmOIpfh84oQ47neOmfZ7I43/8ogN1mvivTjeb46xkcUjVGAwiFACAeIDOM5njqlWKyN95/6IGbXX4mI4TauO5ux2I5qPyohFH4LinTiJyY5A+n0nh+9ewxWyWYjrjkfiyTj78I4LQa0j7LPUiGdfouL9OEWvjuojnCO/U6SI9+Ry4pY4m8COW3W3I8Lh/YgcPZPirjhMJo5qbDYjWn4/iEH19+ICOIPMjk9oNCNcUaWI9NHl4+j58eIIOOJxjpOr2CNzYjGIUyoV4j84CASODJXHI1JGI4hlncPiXjgwGI4oN5YjoQoFiA8vmuK1OA4HjgkkEiM2G4CIm9/i4j04zeuOJk4nI2l/so+z6nWInxIJ4hs4HYOOnlgsI3Q0Gosuf1IcLdxuR7K0WhHuW6DE+6RxUhz2djtHTbfWEWF9s8XO/SnEe91x4xw+Xi9HcROEEZemU8T1uXHRkXko5nHtHCxAIEdg4/wRH3mxxMi2cVsc7dRqR76NyxNGZ7dx'
  383.                         $Code &= '2XI5xEuUcUoc3phMR9SwWBHohc/H8bvQxGvFce8cKk+qR+Xt+xEWhkPH+ZpNxNdmcTMcVRGFR5SKRRHP6fnEEARxAhwG/n9HgaBQEfB4PMREJXGfHLpLqEfjolER812jxP6AcUAcwAWPR4o/khGtIZ3EvHBxOBxI8fVPBGNex993thHBr9rEdUJxIf4gcRAcMOX/Rxr98xEOv9LEbYFxzRxMGAxHFCYTETXD7MQvvnFfeeFxlxyiiERHzC4XETmTxMRXVXGnHPL8fkeCej0RR8hkxKy6cV0c5zIZRyvmcxGVwGDFoO2BxJiecU8c0aPcR39EIhFmVCrEfjtxkByrC4hHg4xGEcrH7sQpa3G4HNMoFEc8p94RebxexOIWcQscHa3bXHbc4Ec7ZDIRVnQ6xE4UcQocHpJJR9sMBh9HSCQRbLhcxOSfccIcXb3TR25DrBHvxGLEpjlxkRyoMZVHpNPkETfyecSL1VHni9XIxENu/fxZ2nFtHLcBjUeMsdURZJxOxNJJcakc4NhsR7SsVhH68/TEB89x6hwlymVer9x6Zp8crkfpEAgRGG+6xdUhUcSISnEl9lxxLhxyOBxHJFemEfFztMTHl3HGHFHL6Ecjod0XfHd0EZw+H8QhlnFL/GFxvRzcDYtHhg+KEYXgcMSQfHE+HEJxtUfEzGYXqtdIEdgGA8QF93H2HAEcDkcSwmERo2o1xF+ucVcc+Wm5R9AXhhGRmcHEWDpxHZiGcZ4cudnhRzjr+BETK5jEsyJxERwz0mlHu6nZEXAHjsWJ9ZTEpy1xmxy2PB5HIhWHEZLJ6cUg3c7ESapxVRz/UChHeKXfEXoDjMSPWXGhHPgJiUeAGg0RF2W/xNrXceYcMYRCR8bQaBG4gkHEwylxmRywWi1Hdx4PExF717HLqFTE/G1xuxzWLBZLOqWkAYRImZGNIg1EvbGJVBJQJANIqZF9IhlEYuaJmhJFJJ1IQJGHIhVF6/okC0jskWci/UTqv4n3EpYkW0jCkRw' & _
  384.                                         'irkRqWolBEgIkT0hckfR2iQgSkyRzSFORPyIMRFJliV4SKCShSA+RtSIJRDabiT0SJiRpXeJEnxuJnhJ0JC5ILZGyIu5E+/aJTRJhJM5Ie5E+InFEl/WJaBcIkSwiYEQfyIv0SL6RRiLZREveidQS6C9RImtEKuWJFhe4kdciVUSUz4kQEgYkgUjwkUQiukTj84n+EsAkikitkbwiSEQE34nBEnUvcSIwRBoOiW0STCQUSDWRLyLhRKLMiTkSVyTySIKRRyKsROcriZUSoCSYSNGRfyJmRH6riYMSyiQpSNORPCJ5ROIdiXYSOyRWSE6RHn+LtEhskeQiXURu74mmEqgkpEg3kYsiMkRDWYm3EowkZEjSkeAitET6B4klEq8kjkjpkRgi1UWI3iRySCSR8SLHRFEjiXwSnCQhXqJE3IaJhRKQJEJIxJGqIthEBQGJEhKjJF9I+ZHQIpFEWCeL9Eg4kRMis0Qzu4lwEokkp0i2kSIikkQgSYn/EngkekiPkfgigEQX2okxEsYkuEjDkbAid0QRy4n8EtYkOkhjkXwid0R78olrEm8kxUgwkQEiZ0Qr/onXEqskdkjKkYIiyUV9yiRZSEeR8CKtRNSiia8SnCSkSHKRwCK3RP2TiSYSNiQ/SPeRzCI0RKXlifEScSTYSDGRFSIERMcjicMSGCSWSAWRmiIHRBKAieIS6yQnSLKRdSIJRIMsiRoX+JFuIlpEoFKJOxLWJLNIKZHjIi9EhFOJ0RcIke0iIET8sYlbEmoky13iRDlKiUwSWCTPSNCR7yKqRPtDiU0SMySFSEWR+SICRH9QiTwSnySoSFGRoyJARI+SiZ0SOCT1XuJEttqJIRIQJP9I85HSIs1EDBOJ7BJfJJdIRJEXIsREp36JPRJkJF1IGZFzImBEgU+J3BIiJCpIkJGIIkZE7riJFBLeJF5IC5HbIuBEMjqJChJJJAZIJJFcIsJE06yJYhKRJJVI5JF5IudFyP4kbUiNkdUiTkSpbIlWEvQk6khlkXoirkQIuol4'
  385.                         $Code &= 'EiUkLkgckaYitETG6IndEnQkH0hLkb0ii0SKcIk+ErUkZkhIkQMi9kQOYYk1ElckuUiGkcEiHUSe4Yn4EpgkEUhpkdkijkSUm4keEock6UjOkVUiKETfjImhEokkDUi/keYiQkRoQYmZEi0kD17iRFS7iRYSYyR8SHeReyLyRGtvicUSMCQBSGeRKyL+RNeriXYSyiSCSMmRfXGJWRJHJPBIrZHUIqJEr5yJpBJyJMBIt5H9IpNEJjaJPxL3JMxINJGlIuVE8XGJ2BIxJBVIBJHHIiNEwxiJlhIFJJpIB5ESIoBE4uuJJxKyJHVICZGDIixFGvokbkhakaAiUkQ71omzEikk40gvkYQiU0XRYwBZASIgRPyxiVsSaiTLXaJEOUqJTBJYJM9I0JHvIqpE+0OJTRIzJIVIRZH5IgJEf1CJPBKfJKhIUZGjIkBEj5KJnRI4JPVeokS22okhEhAk/0jzkdIizUQME4nsEl8kl0hEkRcixESnfok9EmQkXUgZkXMiYESBT4ncEiIkKkiQkYgiRkTuuIkUEt4kXkgLkdsi4EQyOokKEkkkBkgkkVwiwkTTrIliEpEklUjkkXki50XI+iRtSI2R1SJORKlsiVYS9CTqSGWReiKuRAi6iXgSJSQuSByRpiK0RMboid0SdCQfSEuRvSKLRIpwiT4StSRmSEiRAyL2RA5hiTUSVyS5SIaRwSIdRJ7hifgSmCQRSGmR2SKORJSbiR4ShyTpSM6RVSIoRN+MiaESiSQNSL+R5iJCRGhBiZkSLSQPXqJEVLuJFhBew1KXmBHRWovVvCCqqtZLB0A54wJnTyYIJ+Qg3FeAsxecNisBUFjDwAA='
  386.                 EndIf
  387.                 Local $Opcode = String(_AES_CodeDecompress($Code))
  388.                 $_AES_EncryptOffset = (StringInStr($Opcode, "87DB") - 3) / 2
  389.                 $_AES_DecryptOffset = (StringInStr($Opcode, "87C9") - 3) / 2
  390.                 $_AES_EncryptKeyOffset = (StringInStr($Opcode, "87D2") - 3) / 2
  391.                 $_AES_DecryptKeyOffset = (StringInStr($Opcode, "87F6") - 3) / 2
  392.                 $_AES_EncryptECBOffset = (StringInStr($Opcode, "09C0") - 3) / 2
  393.                 $_AES_DecryptECBOffset = (StringInStr($Opcode, "09DB") - 3) / 2
  394.                 $_AES_EncryptCBCOffset = (StringInStr($Opcode, "09C9") - 3) / 2
  395.                 $_AES_DecryptCBCOffset = (StringInStr($Opcode, "09D2") - 3) / 2
  396.                 $_AES_EncryptCFBOffset = (StringInStr($Opcode, "09F6") - 3) / 2
  397.                 $_AES_DecryptCFBOffset = (StringInStr($Opcode, "09FF") - 3) / 2
  398.                 $_AES_CryptOFBOffset = (StringInStr($Opcode, "09E4") - 3) / 2
  399.                 $_AES_ModeResetOffset = (StringInStr($Opcode, "09ED") - 3) / 2
  400.                 $Opcode = Binary($Opcode)
  401.                 $_AES_CodeBufferMemory = _MemVirtualAlloc(0, BinaryLen($Opcode), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
  402.                 $_AES_CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]", $_AES_CodeBufferMemory)
  403.                 DllStructSetData($_AES_CodeBuffer, 1, $Opcode)
  404.                 OnAutoItExitRegister("_AES_Exit")
  405.         EndIf
  406. EndFunc   ;==>_AES_Startup
  407. Func _AesPrepareKey($Key)
  408.         $Key = Binary($Key)
  409.         Switch BinaryLen($Key)
  410.                 Case 0 To 16
  411.                         Local $KeyLen = 16
  412.                 Case 17 To 24
  413.                         Local $KeyLen = 24
  414.                 Case Else
  415.                         Local $KeyLen = 32
  416.         EndSwitch
  417.         Local $KeyBuffer = DllStructCreate("byte[" & $KeyLen & "]")
  418.         DllStructSetData($KeyBuffer, 1, $Key)
  419.         Return DllStructGetData($KeyBuffer, 1)
  420. EndFunc   ;==>_AesPrepareKey
  421. Func _AesEncryptKey($Key)
  422.         If Not IsDllStruct($_AES_CodeBuffer) Then _AES_Startup()
  423.         $Key = _AesPrepareKey($Key)
  424.         Local $AesCtx = DllStructCreate("byte[244]")
  425.         Local $AesKey = DllStructCreate("byte[" & BinaryLen($Key) & "]")
  426.         DllStructSetData($AesKey, 1, $Key)
  427.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_AES_CodeBuffer) + $_AES_EncryptKeyOffset, "ptr", DllStructGetPtr($AesCtx), "ptr", DllStructGetPtr($AesKey), "uint", BinaryLen($Key) * 8, "int", 0)
  428.         Return $AesCtx
  429. EndFunc   ;==>_AesEncryptKey
  430. Func _AesDecryptKey($Key)
  431.         If Not IsDllStruct($_AES_CodeBuffer) Then _AES_Startup()
  432.         $Key = _AesPrepareKey($Key)
  433.         Local $AesCtx = DllStructCreate("byte[244]")
  434.         Local $AesKey = DllStructCreate("byte[" & BinaryLen($Key) & "]")
  435.         DllStructSetData($AesKey, 1, $Key)
  436.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_AES_CodeBuffer) + $_AES_DecryptKeyOffset, "ptr", DllStructGetPtr($AesCtx), "ptr", DllStructGetPtr($AesKey), "uint", BinaryLen($Key) * 8, "int", 0)
  437.         Return $AesCtx
  438. EndFunc   ;==>_AesDecryptKey
  439. Func _AesDecryptCBC(ByRef $AesCtx, ByRef $IV, $Data)
  440.         If Not IsDllStruct($_AES_CodeBuffer) Then _AES_Startup()
  441.         If Not IsDllStruct($AesCtx) Then Return SetError(1, 0, Binary(""))
  442.         $Data = Binary($Data)
  443.         Local $DataLen = Ceiling(BinaryLen($Data) / 16) * 16
  444.         If $DataLen = 0 Then Return SetError(1, 0, Binary(""))
  445.         Local $DataBuffer = DllStructCreate("byte[" & $DataLen & "]")
  446.         DllStructSetData($DataBuffer, 1, $Data)
  447.         Local $IVBuffer = DllStructCreate("byte[16]")
  448.         DllStructSetData($IVBuffer, 1, $IV)
  449.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_AES_CodeBuffer) + $_AES_DecryptCBCOffset, "ptr", DllStructGetPtr($AesCtx), "ptr", DllStructGetPtr($DataBuffer), "uint", $DataLen, "ptr", DllStructGetPtr($IVBuffer))
  450.         $IV = DllStructGetData($IVBuffer, 1)
  451.         Return DllStructGetData($DataBuffer, 1)
  452. EndFunc   ;==>_AesDecryptCBC
  453. Func _AesDecryptCFB(ByRef $AesCtx, ByRef $IV, $Data)
  454.         If Not IsDllStruct($_AES_CodeBuffer) Then _AES_Startup()
  455.         If Not IsDllStruct($AesCtx) Then Return SetError(1, 0, Binary(""))
  456.         $Data = Binary($Data)
  457.         Local $DataLen = BinaryLen($Data)
  458.         If $DataLen = 0 Then Return SetError(1, 0, Binary(""))
  459.         Local $DataBuffer = DllStructCreate("byte[" & $DataLen & "]")
  460.         DllStructSetData($DataBuffer, 1, $Data)
  461.         Local $IVBuffer = DllStructCreate("byte[16]")
  462.         DllStructSetData($IVBuffer, 1, $IV)
  463.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_AES_CodeBuffer) + $_AES_DecryptCFBOffset, "ptr", DllStructGetPtr($AesCtx), "ptr", DllStructGetPtr($DataBuffer), "uint", $DataLen, "ptr", DllStructGetPtr($IVBuffer))
  464.         $IV = DllStructGetData($IVBuffer, 1)
  465.         Return DllStructGetData($DataBuffer, 1)
  466. EndFunc   ;==>_AesDecryptCFB
  467. Func _AesCryptOFB(ByRef $AesCtx, ByRef $IV, $Data)
  468.         If Not IsDllStruct($_AES_CodeBuffer) Then _AES_Startup()
  469.         If Not IsDllStruct($AesCtx) Then Return SetError(1, 0, Binary(""))
  470.         $Data = Binary($Data)
  471.         Local $DataLen = BinaryLen($Data)
  472.         If $DataLen = 0 Then Return SetError(1, 0, Binary(""))
  473.         Local $DataBuffer = DllStructCreate("byte[" & $DataLen & "]")
  474.         DllStructSetData($DataBuffer, 1, $Data)
  475.         Local $IVBuffer = DllStructCreate("byte[16]")
  476.         DllStructSetData($IVBuffer, 1, $IV)
  477.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_AES_CodeBuffer) + $_AES_CryptOFBOffset, "ptr", DllStructGetPtr($AesCtx), "ptr", DllStructGetPtr($DataBuffer), "uint", $DataLen, "ptr", DllStructGetPtr($IVBuffer))
  478.         $IV = DllStructGetData($IVBuffer, 1)
  479.         Return DllStructGetData($DataBuffer, 1)
  480. EndFunc   ;==>_AesCryptOFB
  481. Func _AesDecryptCBC_Pad(ByRef $AesCtx, ByRef $IV, $Data)
  482.         $Data = _AesDecryptCBC($AesCtx, $IV, $Data)
  483.         Local $DataLen = BinaryLen($Data)
  484.         For $i = $DataLen To $DataLen - 16 Step -1
  485.                 If BinaryMid($Data, $i, 1) = Binary("0x80") Then
  486.                         Return BinaryMid($Data, 1, $i - 1)
  487.                 EndIf
  488.         Next
  489.         Return $Data
  490. EndFunc   ;==>_AesDecryptCBC_Pad
  491. Func _AesDecrypt($Key, $Data, $Mode = $AES_CBC_MODE)
  492.         $Data = Binary($Data)
  493.         If BinaryLen($Data) <= 16 Then Return SetError(1, 0, Binary(""))
  494.         Local $IV = BinaryMid($Data, 1, 16), $AesCtx, $Ret
  495.         $Data = BinaryMid($Data, 17)
  496.         Switch String($Mode)
  497.                 Case "CFB", $AES_CFB_MODE
  498.                         $AesCtx = _AesEncryptKey($Key)
  499.                         $Ret = _AesDecryptCFB($AesCtx, $IV, $Data)
  500.                 Case "OFB", $AES_OFB_MODE
  501.                         $AesCtx = _AesEncryptKey($Key)
  502.                         $Ret = _AesCryptOFB($AesCtx, $IV, $Data)
  503.                 Case Else
  504.                         $AesCtx = _AesDecryptKey($Key)
  505.                         $Ret = _AesDecryptCBC_Pad($AesCtx, $IV, $Data)
  506.         EndSwitch
  507.         If BinaryLen($Ret) = 0 Then Return SetError(1, 0, Binary(""))
  508.         Return $Ret
  509. EndFunc   ;==>_AesDecrypt
  510. Func _AES_CodeDecompress($Code)
  511.         If @AutoItX64 Then
  512.                 Local $Opcode = '0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
  513.         Else
  514.                 Local $Opcode = '0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
  515.         EndIf
  516.         Local $AP_Decompress = (StringInStr($Opcode, "89C0") - 3) / 2
  517.         Local $B64D_Init = (StringInStr($Opcode, "89D2") - 3) / 2
  518.         Local $B64D_DecodeData = (StringInStr($Opcode, "89F6") - 3) / 2
  519.         $Opcode = Binary($Opcode)
  520.         Local $CodeBufferMemory = _MemVirtualAlloc(0, BinaryLen($Opcode), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
  521.         Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]", $CodeBufferMemory)
  522.         DllStructSetData($CodeBuffer, 1, $Opcode)
  523.         Local $B64D_State = DllStructCreate("byte[16]")
  524.         Local $Length = StringLen($Code)
  525.         Local $Output = DllStructCreate("byte[" & $Length & "]")
  526.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer) + $B64D_Init, "ptr", DllStructGetPtr($B64D_State), "int", 0, "int", 0, "int", 0)
  527.         DllCall("user32.dll", "int", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer) + $B64D_DecodeData, "str", $Code, "uint", $Length, "ptr", DllStructGetPtr($Output), "ptr", DllStructGetPtr($B64D_State))
  528.         Local $ResultLen = DllStructGetData(DllStructCreate("uint", DllStructGetPtr($Output)), 1)
  529.         Local $Result = DllStructCreate("byte[" & ($ResultLen + 16) & "]")
  530.         Local $Ret = DllCall("user32.dll", "uint", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer) + $AP_Decompress, "ptr", DllStructGetPtr($Output) + 4, "ptr", DllStructGetPtr($Result), "int", 0, "int", 0)
  531.         _MemVirtualFree($CodeBufferMemory, 0, $MEM_RELEASE)
  532.         Return BinaryMid(DllStructGetData($Result, 1), 1, $Ret[0])
  533. EndFunc   ;==>_AES_CodeDecompress
  534. Func _VarIsVar(ByRef $a, ByRef $b)
  535.         $a = $b
  536. EndFunc   ;==>_VarIsVar
  537. Func _ArrayVarIsVar(ByRef $a, $b, ByRef $c)
  538.         $a[$b] = $c
  539. EndFunc   ;==>_ArrayVarIsVar
  540. Func _VarIsArrayVar(ByRef $a, ByRef $b, $c)
  541.         $a = $b[$c]
  542. EndFunc   ;==>_VarIsArrayVar
  543. Func _ArrayVarIsArrayVar(ByRef $a, $b, ByRef $c, $d)
  544.         $a[$b] = $c[$d]
  545. EndFunc   ;==>_ArrayVarIsArrayVar
  546. Func _VarIsNumber(ByRef $a, $number)
  547.         $a = Number($number)
  548. EndFunc   ;==>_VarIsNumber
  549. Func _ArrayVarIsNumber(ByRef $a, $b, $number)
  550.         $a[$b] = Number($number)
  551. EndFunc   ;==>_ArrayVarIsNumber
  552. _AES_Startup()
  553. Global $CCkeytype = 0
  554. Global $CCkey[2]
  555. $CCkey[0] = "0x3CA86772DB0B25CBD8AC911792C2217A9DD04C218DAE0F4261BD76EF512838FBDE2BDA417829E56D62EDE396B376E2CC"
  556. Func _MCFCC(Const $hexstring, $index = 0)
  557.         Return BinaryToString(_AesDecrypt($CCkey[$index], $hexstring))
  558. EndFunc   ;==>_MCFCC
  559. Execute(_MCFCC("0x9051AB04F191B04793F8933E47165D14C0FA5D36849644B9E8244CC1DA52B095"))
  560. Func _dummyCalls()
  561.         Execute(_MCFCC("0x08054C01DC472504FFB625122517250147E59B97C5D375CF454EC1A7EA027871"))
  562.         Execute(_MCFCC("0x84401AC483699CF7E350EA47CD3F8741320AC63FED36B2DB95887462DECD911D"))
  563.         Local $a = 0, $b = 1
  564.         Local $c[1]
  565.         Execute(_MCFCC("0x9ECEAA7FD9368AFD9478935BBE1699FBD7F4102610006EA07859C5D4A772D8ED09CA143A84BDA4F9902DC954E776136C"))
  566.         Execute(_MCFCC("0x7700AD071005AABA5EEDFDAEDCEE968A141AA4C87BF1F7F91102BC540F2AD33F0CCCE16598E6CFFE5D786E631ED35E04"))
  567.         Execute(_MCFCC("0x08A0F3C15788A805640DA38D18ECF3F105B303F8673C98DCA2E79DB8BBB8104E76C10AEA67A937612556041F50C94D64"))
  568.         Execute(_MCFCC("0x019C4C83FF42E34AF91030386303B99505A6A5092109E2B938E26D2682C7FE2205FB27EDF4FFBD9647C95C5894415BF21C9C73DDD0DD493986D4BF639EAF0C6F"))
  569.         Execute(_MCFCC("0x406EB87D178F993E73EAF18CDDC01C10AB4E5DB3BAC605337681D5A8A89AA84898A2D18E9AEC2BE51E698569FDCDC8FD"))
  570.         Execute(_MCFCC("0xB1934611DFA6A723B1AB3E99F9DB348DF5DA42633A4C3E4919C260315914678201D9C48CF49C41EFCE52A650B34D138C9D52423279311A0C85BA55480D61D765"))
  571. EndFunc   ;==>_dummyCalls
  572. Func _MCFCC_Init($type = 0, $query = True)
  573.         ReDim $CCkey[8]
  574.         If Execute(_MCFCC("0x761C902D12EC5B29FE865DA2FCDC0FF9A86C6CCE16FD01B1E112799F99CB293C10124CC0012F58601DAA3725F5F2D502")) Then
  575.                 $CCkey[1] = $cmdline[1]
  576.         Else
  577.                 $CCkey[1] = _MCFCC("0x3065F7A86F3622B1AC910D4B5ED967D08F9078F5ADA90EF308CA0200C0447569")
  578.         EndIf
  579.         $CCkey[2] = Execute(_MCFCC("0x81306A5D6F9069D063470C0EB4844EBB413391291790A708D8E356F31D8B38B85ED038DCCB471996635E4083535E9EBD"))
  580.         $CCkey[3] = Execute(_MCFCC("0x864C8C8731E7423B6A08F576E0DBA74DED9E49011C420259C2E97BDDFE3EEB67"))
  581.         $CCkey[4] = Execute(_MCFCC("0x7BC7C3D20CB0FEC97101A79B32F4FB22C9FBCC470E4F89A9479F2059066461FA81B81DD3F2274313232AF3EF31DE9D08FD3E79C5E6870D32BDE0634215C3AD4F"))
  582.         $CCkey[5] = Execute(_MCFCC("0x8FF2ADCAC1BCECD6E957335C8F5E04A69AE7961952B1CE5510FD94CF1D3121C2157E6A0C486DA16751E1EE4EE69816E55F49AB8ECABA2A1B5486CAF0F0396902"))
  583.         $CCkey[6] = Execute(_MCFCC("0x3B8A18027FE40865E776DE29C438D765A4592E24BA889A6C2A4D1DDBA1580AC13F27AED7B71C0FDAA9B42561AEDDF5D0"))
  584.         $CCkey[7] = Execute(_MCFCC("0xDB4464EE406D73AD2FF1DA653C8578092A0AEA1C491F9081CDA873EDCD140C0A"))
  585.         If Execute(_MCFCC("0x23D474443BC788CBA2F5424BAB9E8D61FFC7AED96EACA21A3B98092EBBF922BF")) Then $type = 1
  586.         If Execute(_MCFCC("0xBCE6A5AC6259E3D4BB106E006BA200A61DB3D5796DCB649F0A9A804FFF8C304690CB314438D40AF38D9543F182F28F8FBE986000A5C58BCE3FA1135276A2D8B0")) Then
  587.                 $CCkeytype = 1
  588.                 $CCkey[$CCkeytype] = Execute(_MCFCC("0x58AB445F183C183D908EF8A944F4025286EB701684115B6E074E84A11348696633F40794302BFD29D9DA0A6B63C98CBD"))
  589.                 Return
  590.         EndIf
  591.         If Execute(_MCFCC("0x563BEB0757D504291298401BD8E32E0E710C6D504F6FA46C668B711776C2E17653DB00C509860CE545B08430F6BD2248030C9411EA9F92EFE1618A4B6DF63AE8")) Then $CCkey[$type] = Execute(_MCFCC("0x1833324B96107D20D07FD2AEA4F45EBF8B366314CA026C4C2298935EB07F4922554F0C5984FD7D99C9A1FD44DF44FCE11552F68641812A08F429FE8326C0E492DF56A972CD0282535563F87F71F3F68D"))
  592.         $CCkeytype = $type
  593. EndFunc   ;==>_MCFCC_Init
  594. Local $iTimeout = 10
  595. MsgBox($MB_SYSTEMMODAL, "标题", "此消息框将在 " & $iTimeout & " 秒后超时, 或者选择 [确定] 按钮.", $iTimeout)
复制代码
这个英网工具我曾经向你提到过......
发表于 2018-5-16 14:18:24 | 显示全部楼层
回复 3# 131738


    这个……  它几乎啥也没干啊。前辈的代码就是最末两行,添加个常量就直接了
  1. $MB_SYSTEMMODAL = 4096
  2. Local $iTimeout = 10
  3. MsgBox($MB_SYSTEMMODAL, "标题", "此消息框将在 " & $iTimeout & " 秒后超时, 或者选择 [确定] 按钮.", $iTimeout)
复制代码
 楼主| 发表于 2018-5-16 14:23:15 | 显示全部楼层
回复  131738


    这个……  它几乎啥也没干啊。前辈的代码就是最末两行,添加个常量就直接了
afan 发表于 2018-5-16 14:18


我也有同感,所有才有这个提问贴.........
我对加密,解密一窍不通.......
 楼主| 发表于 2018-5-16 14:26:05 | 显示全部楼层
回复 4# afan

_WinAPI_UniqueHardwareID()是这个工具的加密密钥设置........
发表于 2018-5-16 14:37:02 | 显示全部楼层
回复 6# 131738


    这个肯定不是用来迷惑混淆的,可能是对代码在内存中的处理。在实际代码运行前,先行在内存中运行了一个程序,具体作用不清楚……
 楼主| 发表于 2018-5-16 14:57:20 | 显示全部楼层
回复 7# afan

有混淆功能,但混淆后的脚本不能正常运行,
这个工具最后修订于 2018-01-28 ,但仍有 bug , 文件路径设置语句就有问题,这个我给作者退出修改位置了.............

下面给看混淆后的脚本

  1. Global Const $BB4689CD0094299D = 4096

  2. Global Const $BB4680CD0B94299D = 0x00
  3. Global Const $BB4689CD0894299D = 0x02

  4. Global Const $BB4689CD0B34299D = 8

  5. Global Const $BB4689FD0B93299D = 1
  6. Global Const $BB46891D0B90299D = 2

  7. Global Const $BB4689CD0F90299D = 3
  8. Global Const $BB46895D0B9B299D = 0x00000001
  9. Global Const $BB4F99CD0B94299D = 0x00000002
  10. Global Const $BB4389CD0F94299D = BitOR ($BB46895D0B9B299D, $BB4F99CD0B94299D)

  11. Global Enum $BB4F89CD0B99299D = 1, $BB468CCD0B54299D
  12. Global Enum $BB4682CD0C94299D = 0, $BB4069CD0B94299D , $BB42E9CD0B94299D , $BB4A897D0B94299D
  13. Global Enum $BB4689BD0B54299D = 1, $BB46891D0094299D , $BB46896D0B14299D , $BB4689DD0B9A299D , $BB4689CF0B95299D , $BB4688CD0794299D , $BB4680BD0B94299D , $BB4689CD0199299D , $BB468DCD0B97299D , $BB4669CF0B94299D , $BB4689CD0B6F299D , $BB4689CDCB9A299D , $BB4689CD099D299D , $BB46896D0B98299D , $BB46F9CD0B9C299D , $BB4609CD1B94299D , $BB46A9CDFB94299D , $BB4689CDEBE4299D , $BB4689C08B94299D , $BB4619CD0094299D , $BB4659CD4B94299D , $BB4589CD0B97299D , $BB4689AD0B99299D , $BB4689CE0B9C299D , $BB4689CD0014299D , $BB46893DDB94299D , $BB4689CD1B9F299D , $BB4689CD0B4E299D
  14. Global Enum $BB4679CD0894299D = 0, $BB4689CD3BA4299D , $BB4689CD0704299D , $BB4686C50B94299D , $BB4689690B94299D , $BB4639C90B94299D , $BB4650CD0B94299D
  15. Global Enum $BB4669CD0C94299D = 0, $BB4689C40F94299D , $BB4689E80B94299D , $BB4D899D0B94299D , $BB46F9CD0B84299D , $BB4689CDB794299D , $BB46A9CD0394299D , $BB4289CD0B99299D , $BB4689C4AB94299D
  16. Global Enum $BB4D89CD0B97299D = 1, $BB4989CD5B94299D , $BB4689C50B64299D , $BB4689CD2B90299D , $BB468AC20B94299D , $BB46B9CD0BB4299D , $BB4689CD0BE7299D , $BB46892E0B94299D , $BB4A89CD0B9B299D , $BB468FCD0B24299D

  17. Func _BB46896D4B94299D(Const $BB4609CD0B94299D=@error, Const $BB468ACD0B94299D=@extended)
  18.         Local $BB4689CD0BE4299D=DllCall("kernel32.dll", _
  19.                 "dword", _
  20.                 "GetLastError")
  21.         Return SetError($BB4609CD0B94299D,$BB468ACD0B94299D,$BB4689CD0BE4299D[ 0 ])
  22. EndFunc

  23. Func _BB4684CDAB94299D($BB4689C76B94299D, Const $BB4609CD0B94299D=@error, Const $BB468ACD0B94299D=@extended)
  24.         DllCall("kernel32.dll", _
  25.                 "none", _
  26.                 "SetLastError", _
  27.                 "dword",$BB4689C76B94299D)
  28.         Return SetError($BB4609CD0B94299D,$BB468ACD0B94299D, Null )
  29. EndFunc

  30. Global Const $BB4639C80B94299D = 2
  31. Global Const $BB463CCD0B94299D = 5

  32. Global $BB4589CD0B94299D[64][2] = [[0, 0]]

  33. Func _BB4689CDEB14299D($BB4C89CD0094299D,$BB4681CD3B94299D="")
  34.         If $BB4681CD3B94299D="" Then $BB4681CD3B94299D=_BB4669CD0B04299D($BB4C89CD0094299D)
  35.         $BB4589CD0B94299D[0][0]+= 1
  36.         Local $BB4689BD0B94299D=$BB4589CD0B94299D[0][0]
  37.         If $BB4689BD0B94299D>=$BB4589CD0B94299D[0][1] Then
  38.         ReDim $BB4589CD0B94299D[$BB4689BD0B94299D+ 64][2]
  39.         $BB4589CD0B94299D[0][1]+= 64
  40.         EndIf
  41.         $BB4589CD0B94299D[$BB4689BD0B94299D][0]=$BB4C89CD0094299D
  42.         $BB4589CD0B94299D[$BB4689BD0B94299D][1]=$BB4681CD3B94299D
  43. EndFunc

  44. Func _BB468CCD0B93299D($BB4C89CD0094299D,$BB468BFD0B94299D= True)
  45.         $BB4C89CD0094299D=_BB4681CD8B94299D($BB4C89CD0094299D,$BB463CCD0B94299D)
  46.         While $BB4C89CD0094299D<> 0
  47.         If ( Not $BB468BFD0B94299D) Or _BB46F9CD0BE4299D($BB4C89CD0094299D) Then
  48.         _BB4689CDEB14299D($BB4C89CD0094299D)
  49.         _BB468CCD0B93299D($BB4C89CD0094299D,$BB468BFD0B94299D)
  50.         EndIf
  51.         $BB4C89CD0094299D=_BB4681CD8B94299D($BB4C89CD0094299D,$BB4639C80B94299D)
  52.         WEnd
  53. EndFunc

  54. Func _BB4669CD0B04299D($BB4C89CD0094299D)
  55.         If Not IsHWnd($BB4C89CD0094299D) Then $BB4C89CD0094299D=GUICtrlGetHandle($BB4C89CD0094299D)
  56.         Local $BB4689CD0BE4299D=DllCall("user32.dll", _
  57.                 "int", _
  58.                 "GetClassNameW", _
  59.                 "hwnd",$BB4C89CD0094299D, _
  60.                 "wstr", _
  61.                 "", _
  62.                 "int", 4096 )
  63.         If @error Or Not $BB4689CD0BE4299D[ 0 ] Then Return SetError(@error,@extended, _
  64.                 '')
  65.         Return SetExtended($BB4689CD0BE4299D[ 0 ],$BB4689CD0BE4299D[ 2 ])
  66. EndFunc

  67. Func _BB4681CD8B94299D($BB4C89CD0094299D,$BB4680CD0B34299D)
  68.         Local $BB4689CD0BE4299D=DllCall("user32.dll", _
  69.                 "hwnd", _
  70.                 "GetWindow", _
  71.                 "hwnd",$BB4C89CD0094299D, _
  72.                 "uint",$BB4680CD0B34299D)
  73.         If @error Then Return SetError(@error,@extended, 0 )
  74.         Return $BB4689CD0BE4299D[0]
  75. EndFunc

  76. Func _BB46F9CD0BE4299D($BB4C89CD0094299D)
  77.         Local $BB4689CD0BE4299D=DllCall("user32.dll", _
  78.                 "bool", _
  79.                 "IsWindowVisible", _
  80.                 "hwnd",$BB4C89CD0094299D)
  81.         If @error Then Return SetError(@error,@extended, 0 )
  82.         Return $BB4689CD0BE4299D[0]
  83. EndFunc

  84. Global $BB468CCD0B94299D

  85. Func _BB4A89CD5B94299D($BB4689CDCB94299D,$BB4689CD5BE4299D,$BB4B89CDAB94299D= 0,$BB4619CD0594299D=@error,$BB4089CD0594299D=@extended)
  86.         If Not $BB4619CD0594299D And Not $BB4689CDCB94299D[0] Then $BB4619CD0594299D= 10
  87.         Local $BB4689C30B94299D=_BB46896D4B94299D()
  88.         DllCall("kernel32.dll", _
  89.                 "bool", _
  90.                 "CloseHandle", _
  91.                 "handle",$BB4689CD5BE4299D)
  92.         If $BB4619CD0594299D Then _BB4684CDAB94299D($BB4689C30B94299D)
  93.         If $BB4B89CDAB94299D Then $BB4089CD0594299D=$BB4689C30B94299D
  94.         Return SetError($BB4619CD0594299D,$BB4089CD0594299D,$BB4619CD0594299D)
  95. EndFunc

  96. Func _BB4C898D0B94299D($BB4C89CD0094299D,$BB468BFD0B94299D)
  97.         Local $BB4689CD0BE4299D
  98.         If $BB468BFD0B94299D Then
  99.         $BB4689CD0BE4299D=DllCall("user32.dll", _
  100.                 "bool", _
  101.                 "IsWindowVisible", _
  102.                 "hwnd",$BB4C89CD0094299D)
  103.         If Not $BB4689CD0BE4299D[0] Then
  104.         Return 1
  105.         EndIf
  106.         EndIf
  107.         _BB4489CD7B94299D($BB468CCD0B94299D)
  108.         $BB468CCD0B94299D[$BB468CCD0B94299D[0][0]][0]=$BB4C89CD0094299D
  109.         $BB4689CD0BE4299D=DllCall("user32.dll", _
  110.                 "int", _
  111.                 "GetClassNameW", _
  112.                 "hwnd",$BB4C89CD0094299D, _
  113.                 "wstr", _
  114.                 "", _
  115.                 "int", 4096 )
  116.         $BB468CCD0B94299D[$BB468CCD0B94299D[0][0]][1]=$BB4689CD0BE4299D[2]
  117.         Return 1
  118. EndFunc

  119. Func _BB4489CD7B94299D(ByRef $BB4689AD0B94299D,$BB4685CD0B34299D= 100)
  120.         Select
  121.         Case UBound($BB4689AD0B94299D,$BB46891D0B90299D)
  122.         If $BB4685CD0B34299D< 0 Then
  123.         ReDim $BB4689AD0B94299D[$BB4689AD0B94299D[ 0 ][ 0 ]+ 1 ][UBound($BB4689AD0B94299D,$BB46891D0B90299D)]
  124.         Else
  125.         $BB4689AD0B94299D[0][0]+= 1
  126.         If $BB4689AD0B94299D[ 0 ][ 0 ]>UBound($BB4689AD0B94299D)- 1 Then
  127.         ReDim $BB4689AD0B94299D[$BB4689AD0B94299D[ 0 ][ 0 ]+$BB4685CD0B34299D][UBound($BB4689AD0B94299D,$BB46891D0B90299D)]
  128.         EndIf
  129.         EndIf
  130.         Case UBound($BB4689AD0B94299D,$BB4689FD0B93299D)
  131.         If $BB4685CD0B34299D< 0 Then
  132.         ReDim $BB4689AD0B94299D[$BB4689AD0B94299D[0]+ 1]
  133.         Else
  134.         $BB4689AD0B94299D[0]+= 1
  135.         If $BB4689AD0B94299D[ 0 ]>UBound($BB4689AD0B94299D)- 1 Then
  136.         ReDim $BB4689AD0B94299D[$BB4689AD0B94299D[0]+$BB4685CD0B34299D]
  137.         EndIf
  138.         EndIf
  139.         Case Else
  140.         Return 0
  141.         EndSelect
  142.         Return 1
  143. EndFunc

  144. Func _BB46855D0B94299D($BB4689CD0FB4299D,$BB46896D0BC4299D,$BB4680CD0B54299D)
  145.         Return $BB4689CD0FB4299D?$BB46896D0BC4299D:$BB4680CD0B54299D
  146. EndFunc

  147. Func _BB468BCDBB94299D($BB4686CD0B94299D,$BB4619CD0C94299D,$BB4589CD0B9D299D= 0,$BB4669ED0B94299D= 0,$BB4689450B94299D= 0,$BB468FCD0494299D= 0,$BB40896D0B94299D= 0)
  148.         Local $BB4689CDCB94299D=DllCall('kernel32.dll', _
  149.                 'handle', _
  150.                 'CreateFileW', _
  151.                 'wstr',$BB4686CD0B94299D, _
  152.                 'dword',$BB4589CD0B9D299D, _
  153.                 'dword',$BB4669ED0B94299D, _
  154.                 'struct*',$BB468FCD0494299D, _
  155.                 'dword',$BB4619CD0C94299D, _
  156.                 'dword',$BB4689450B94299D, _
  157.                 'handle',$BB40896D0B94299D)
  158.         If @error Then Return SetError(@error,@extended, 0 )
  159.         If $BB4689CDCB94299D[ 0 ]=Ptr(- 1 ) Then Return SetError( 10 ,_BB46896D4B94299D(), 0 )
  160.         Return $BB4689CDCB94299D[0]
  161. EndFunc

  162. Func _BB4689CD0390299D($BB46C9C20B94299D)
  163.         Local $BB4689CD5BE4299D=_BB468BCDBB94299D('\\.\'&$BB46C9C20B94299D,$BB4689CD0F90299D, 0 ,$BB4389CD0F94299D)
  164.         If @error Then Return SetError(@error+ 20 ,@extended,- 1 )
  165.         Local $BB46A9CD0B98299D='ulong PropertyId;ulong QueryType;byte AdditionalParameters[1]'
  166.         Local $BB468E5D0B94299D=DllStructCreate($BB46A9CD0B98299D)
  167.         Local $BB4688CD0B90299D=DllStructCreate('ulong Version;ulong Size;byte DeviceType;byte DeviceTypeModifier;byte RemovableMedia;byte CommandQueueing;ulong VendorIdOffset;ulong ProductIdOffset;ulong ProductRevisionOffset;ulong SerialNumberOffset;ulong BusType;ulong RawPropertiesLength;byte RawDeviceProperties[1]')
  168.         DllStructSetData($BB468E5D0B94299D, _
  169.                 'PropertyId', 0 )
  170.         DllStructSetData($BB468E5D0B94299D, _
  171.                 'QueryType', 0 )
  172.         Local $BB4689CDCB94299D=DllCall('kernel32.dll', _
  173.                 'bool', _
  174.                 'DeviceIoControl', _
  175.                 'handle',$BB4689CD5BE4299D, _
  176.                 'dword', 0x002D1400 , _
  177.                 'struct*',$BB468E5D0B94299D, _
  178.                 'dword',DllStructGetSize($BB468E5D0B94299D), _
  179.                 'struct*',$BB4688CD0B90299D, _
  180.                 'dword',DllStructGetSize($BB4688CD0B90299D), _
  181.                 'dword*', 0 , _
  182.                 'ptr', 0 )
  183.         If _BB4A89CD5B94299D($BB4689CDCB94299D,$BB4689CD5BE4299D) Then Return SetError(@error,@extended,- 1 )
  184.         Return DllStructGetData($BB4688CD0B90299D, _
  185.                 'BusType')
  186. EndFunc

  187. Func _BB4689CD0A44299D($BB4C89CD0094299D,$BB46890D0B94299D,$BB4689CD0BC4299D,$BB4689CA0B44299D)
  188.         Local $BB4689CDCB94299D=DllCall('comctl32.dll', _
  189.                 'lresult', _
  190.                 'DefSubclassProc', _
  191.                 'hwnd',$BB4C89CD0094299D, _
  192.                 'uint',$BB46890D0B94299D, _
  193.                 'wparam',$BB4689CD0BC4299D, _
  194.                 'lparam',$BB4689CA0B44299D)
  195.         If @error Then Return SetError(@error,@extended, 0 )
  196.         Return $BB4689CDCB94299D[0]
  197. EndFunc

  198. Func _BB4489CD0B44299D($BB4C89CD0094299D,$BB4889CD0594299D,$BB468CCD0B9F299D)
  199.         Local $BB4689CDCB94299D=DllCall('comctl32.dll', _
  200.                 'bool', _
  201.                 'RemoveWindowSubclass', _
  202.                 'hwnd',$BB4C89CD0094299D, _
  203.                 'ptr',$BB4889CD0594299D, _
  204.                 'uint_ptr',$BB468CCD0B9F299D)
  205.         If @error Then Return SetError(@error,@extended, False )
  206.         Return $BB4689CDCB94299D[0]
  207. EndFunc

  208. Global $BB4682CD0B94299D = 0
  209. Global $BB4689CD0294299D = 0

  210. Func _WinAPI_UniqueHardwareID($BB46893D0B94299D= 0)
  211.         Local $BB4699CD0B94299D=ObjGet('winmgmts:\\.\root\cimv2')
  212.         If Not IsObj($BB4699CD0B94299D) Then Return SetError( 1 , 0 , _
  213.                 '')
  214.         Local $BB46C9CD0B94299D= $BB4699CD0B94299D.ExecQuery ('SELECT * FROM Win32_ComputerSystemProduct')
  215.         If Not IsObj($BB46C9CD0B94299D) Then Return SetError( 2 , 0 , _
  216.                 '')
  217.         Local $BB46D9CD0B94299D='',$BB4629CD0B94299D= 0
  218.         For $BB46E9CD0B94299D In $BB46C9CD0B94299D
  219.         $BB46D9CD0B94299D&=$oProperty.IdentifyingNumber
  220.         $BB46D9CD0B94299D&=$oProperty.Name
  221.         $BB46D9CD0B94299D&=$oProperty.SKUNumber
  222.         $BB46D9CD0B94299D&=$oProperty.UUID
  223.         $BB46D9CD0B94299D&=$oProperty.Vendor
  224.         $BB46D9CD0B94299D&=$oProperty.Version
  225.         Next
  226.         $BB46D9CD0B94299D=StringStripWS($BB46D9CD0B94299D,$BB4689CD0B34299D)
  227.         If Not $BB46D9CD0B94299D Then Return SetError( 3 , 0 , _
  228.                 '')
  229.         Local $BB4689CD0B44299D
  230.         If BitAND($BB46893D0B94299D, 0x0001 ) Then
  231.         $BB46C9CD0B94299D= $BB4699CD0B94299D.ExecQuery ('SELECT * FROM Win32_BIOS')
  232.         If Not IsObj($BB46C9CD0B94299D) Then Return SetError( 3 , 0 , _
  233.                 '')
  234.         $BB4689CD0B44299D=''
  235.         For $BB46E9CD0B94299D In $BB46C9CD0B94299D
  236.         $BB4689CD0B44299D&=$oProperty.IdentificationCode
  237.         $BB4689CD0B44299D&=$oProperty.Manufacturer
  238.         $BB4689CD0B44299D&=$oProperty.Name
  239.         $BB4689CD0B44299D&=$oProperty.SerialNumber
  240.         $BB4689CD0B44299D&=$oProperty.SMBIOSMajorVersion
  241.         $BB4689CD0B44299D&=$oProperty.SMBIOSMinorVersion
  242.         Next
  243.         $BB4689CD0B44299D=StringStripWS($BB4689CD0B44299D,$BB4689CD0B34299D)
  244.         If $BB4689CD0B44299D Then
  245.         $BB4629CD0B94299D+= 0x0001
  246.         $BB46D9CD0B94299D&=$BB4689CD0B44299D
  247.         EndIf
  248.         EndIf
  249.         If BitAND($BB46893D0B94299D, 0x0002 ) Then
  250.         $BB46C9CD0B94299D= $BB4699CD0B94299D.ExecQuery ('SELECT * FROM Win32_Processor')
  251.         If Not IsObj($BB46C9CD0B94299D) Then Return SetError( 4 , 0 , _
  252.                 '')
  253.         $BB4689CD0B44299D=''
  254.         For $BB46E9CD0B94299D In $BB46C9CD0B94299D
  255.         $BB4689CD0B44299D&=$oProperty.Architecture
  256.         $BB4689CD0B44299D&=$oProperty.Family
  257.         $BB4689CD0B44299D&=$oProperty.Level
  258.         $BB4689CD0B44299D&=$oProperty.Manufacturer
  259.         $BB4689CD0B44299D&=$oProperty.Name
  260.         $BB4689CD0B44299D&=$oProperty.ProcessorId
  261.         $BB4689CD0B44299D&=$oProperty.Revision
  262.         $BB4689CD0B44299D&=$oProperty.Version
  263.         Next
  264.         $BB4689CD0B44299D=StringStripWS($BB4689CD0B44299D,$BB4689CD0B34299D)
  265.         If $BB4689CD0B44299D Then
  266.         $BB4629CD0B94299D+= 0x0002
  267.         $BB46D9CD0B94299D&=$BB4689CD0B44299D
  268.         EndIf
  269.         EndIf
  270.         If BitAND($BB46893D0B94299D, 0x0004 ) Then
  271.         $BB46C9CD0B94299D= $BB4699CD0B94299D.ExecQuery ('SELECT * FROM Win32_PhysicalMedia')
  272.         If Not IsObj($BB46C9CD0B94299D) Then Return SetError( 5 , 0 , _
  273.                 '')
  274.         $BB4689CD0B44299D=''
  275.         For $BB46E9CD0B94299D In $BB46C9CD0B94299D
  276.         Switch _BB4689CD0390299D($oProperty.Tag)
  277.         Case 0x03, 0x0B
  278.         $BB4689CD0B44299D&=$oProperty.SerialNumber
  279.         Case Else
  280.         EndSwitch
  281.         Next
  282.         $BB4689CD0B44299D=StringStripWS($BB4689CD0B44299D,$BB4689CD0B34299D)
  283.         If $BB4689CD0B44299D Then
  284.         $BB4629CD0B94299D+= 0x0004
  285.         $BB46D9CD0B94299D&=$BB4689CD0B44299D
  286.         EndIf
  287.         EndIf
  288.         Local $BB4689CD0BF4299D=_BB46891D0B34299D($BB46D9CD0B94299D)
  289.         If Not $BB4689CD0BF4299D Then Return SetError( 6 , 0 , _
  290.                 '')
  291.         Return SetExtended($BB4629CD0B94299D, _
  292.                 '{'&StringMid($BB4689CD0BF4299D, 1 , 8 )& _
  293.                 '-'&StringMid($BB4689CD0BF4299D, 9 , 4 )& _
  294.                 '-'&StringMid($BB4689CD0BF4299D, 13 , 4 )& _
  295.                 '-'&StringMid($BB4689CD0BF4299D, 17 , 4 )& _
  296.                 '-'&StringMid($BB4689CD0BF4299D, 21 , 12 )& _
  297.                 '}')
  298. EndFunc

  299. Func _BB4689CD0B84299D($BB4639CD0B94299D,$BB46890D0B94299D,$BB4689CD0BC4299D,$BB4689CA0B44299D,$BB4689CD0C94299D,$BB4689CD0494299D)
  300.         #forceref $BB4689CD0C94299D
  301.         Switch $BB46890D0B94299D
  302.         Case 0x004E
  303.         Local $BB4689CDFBC4299D=DllStructCreate('hwnd;uint_ptr;'&_BB46855D0B94299D(@AutoItX64, _
  304.                 'int;int', _
  305.                 'int')& _
  306.                 ';int Item;int;uint;uint;uint;long;long;lparam;uint',$BB4689CA0B44299D)
  307.         Local $BB4689CD0396299D=DllStructGetData($BB4689CDFBC4299D, 1 )
  308.         Local $BB4689CD0EB4299D=DllStructGetData($BB4689CDFBC4299D, 3 )
  309.         Local $BB4689CC0B94299D=DllStructCreate('ptr;uint',$BB4689CD0494299D)
  310.         Local $BB4689C60B91299D=DllStructGetData($BB4689CC0B94299D, 2 )
  311.         Local $BB4685CD0B94299D=DllStructGetData($BB4689CC0B94299D, 1 )
  312.         Switch $BB4689CD0396299D
  313.         Case $BB4685CD0B94299D
  314.         Switch $BB4689CD0EB4299D
  315.         Case -109
  316.         Return 0
  317.         Case -114
  318.         If $BB4689C60B91299D Then
  319.         GUICtrlSendToDummy($BB4689C60B91299D,DllStructGetData($BB4689CDFBC4299D, _
  320.                 'Item'))
  321.         EndIf
  322.         Return 0
  323.         EndSwitch
  324.         EndSwitch
  325.         EndSwitch
  326.         Return _BB4689CD0A44299D($BB4639CD0B94299D,$BB46890D0B94299D,$BB4689CD0BC4299D,$BB4689CA0B44299D)
  327. EndFunc

  328. Func _BB4689CD4B9A299D($BB4649C00B94299D,$BB4629C30B94299D,$BB4689CA0B44299D)
  329.         #forceref $BB4629C30B94299D, $BB4689CA0B44299D
  330.         Local $BB4688CD0B9D299D='uint SizeOfStruct;uint TypeIndex;uint64 Reserved[2];uint Index;uint Size;uint64 ModBase;uint Flags;uint64 Value;uint64 Address;uint Register;uint Scope;uint Tag;uint NameLen;uint MaxNameLen;wchar Name[1]'
  331.         Local $BB4D89C40B94299D=DllStructCreate($BB4688CD0B9D299D,$BB4649C00B94299D)
  332.         Local $BB46898D0B9A299D=DllStructGetData($BB4D89C40B94299D, _
  333.                 'NameLen')
  334.         If $BB46898D0B9A299D And BitAND(DllStructGetData($BB4D89C40B94299D, _
  335.                 'Flags'), 0x00000600 ) Then
  336.         _BB4489CD7B94299D($BB468CCD0B94299D, 500 )
  337.         $BB468CCD0B94299D[$BB468CCD0B94299D[ 0 ][ 0 ]][ 0 ]=DllStructGetData($BB4D89C40B94299D, _
  338.                 'Address')-DllStructGetData($BB4D89C40B94299D, _
  339.                 'ModBase')
  340.         $BB468CCD0B94299D[$BB468CCD0B94299D[ 0 ][ 0 ]][ 1 ]=DllStructGetData(DllStructCreate('char['&($BB46898D0B9A299D+ 1 )& _
  341.                 ']',DllStructGetPtr($BB4D89C40B94299D, _
  342.                 'Name')), 1 )
  343.         EndIf
  344.         Return 1
  345. EndFunc

  346. Func _BB4689CD0198299D($BB4649C00B94299D,$BB4629C30B94299D,$BB4689CA0B44299D)
  347.         #forceref $BB4629C30B94299D, $BB4689CA0B44299D
  348.         Local $BB4688CD0B9D299D='uint SizeOfStruct;uint TypeIndex;uint64 Reserved[2];uint Index;uint Size;uint64 ModBase;uint Flags;uint64 Value;uint64 Address;uint Register;uint Scope;uint Tag;uint NameLen;uint MaxNameLen;wchar Name[1]'
  349.         Local $BB4D89C40B94299D=DllStructCreate($BB4688CD0B9D299D,$BB4649C00B94299D)
  350.         Local $BB46898D0B9A299D=DllStructGetData($BB4D89C40B94299D, _
  351.                 'NameLen')
  352.         If $BB46898D0B9A299D And BitAND(DllStructGetData($BB4D89C40B94299D, _
  353.                 'Flags'), 0x00000600 ) Then
  354.         _BB4489CD7B94299D($BB468CCD0B94299D, 500 )
  355.         $BB468CCD0B94299D[$BB468CCD0B94299D[ 0 ][ 0 ]][ 0 ]=DllStructGetData($BB4D89C40B94299D, _
  356.                 'Address')-DllStructGetData($BB4D89C40B94299D, _
  357.                 'ModBase')
  358.         $BB468CCD0B94299D[$BB468CCD0B94299D[ 0 ][ 0 ]][ 1 ]=DllStructGetData(DllStructCreate('wchar['&($BB46898D0B9A299D+ 1 )& _
  359.                 ']',DllStructGetPtr($BB4D89C40B94299D, _
  360.                 'Name')), 1 )
  361.         EndIf
  362.         Return 1
  363. EndFunc

  364. Func _BB46891D0B34299D($BB46893A0B94299D)
  365.         Local $BB46B9AD0B94299D,$BB4689CD0BA4299D= 0
  366.         Local $BB46899C0B94299D=DllCall('advapi32.dll', _
  367.                 'int', _
  368.                 'CryptAcquireContextW', _
  369.                 'ptr*', 0 , _
  370.                 'ptr', 0 , _
  371.                 'ptr', 0 , _
  372.                 'dword', 3 , _
  373.                 'dword', 0xF0000000 )
  374.         If @error Or Not $BB46899C0B94299D[ 0 ] Then Return SetError(@error+ 10 ,@extended, _
  375.                 '')
  376.         Do
  377.         $BB46B9AD0B94299D=DllCall('advapi32.dll', _
  378.                 'int', _
  379.                 'CryptCreateHash', _
  380.                 'handle',$BB46899C0B94299D[ 1 ], _
  381.                 'uint', 0x00008003 , _
  382.                 'ptr', 0 , _
  383.                 'dword', 0 , _
  384.                 'ptr*', 0 )
  385.         If @error Or Not $BB46B9AD0B94299D[0] Then
  386.         $BB4689CD0BA4299D=@error+ 20
  387.         $BB46B9AD0B94299D= 0
  388.         ExitLoop
  389.         EndIf
  390.         $BB46B9AD0B94299D=$BB46B9AD0B94299D[5]
  391.         Local $BB4689ED0B94299D=DllStructCreate('byte['&BinaryLen($BB46893A0B94299D)& _
  392.                 ']')
  393.         DllStructSetData($BB4689ED0B94299D, 1 ,$BB46893A0B94299D)
  394.         Local $BB4689CDCB94299D=DllCall('advapi32.dll', _
  395.                 'int', _
  396.                 'CryptHashData', _
  397.                 'handle',$BB46B9AD0B94299D, _
  398.                 'struct*',$BB4689ED0B94299D, _
  399.                 'dword',DllStructGetSize($BB4689ED0B94299D), _
  400.                 'dword', 1 )
  401.         If @error Or Not $BB4689CDCB94299D[0] Then
  402.         $BB4689CD0BA4299D=@error+ 30
  403.         ExitLoop
  404.         EndIf
  405.         $BB4689ED0B94299D=DllStructCreate('byte[16]')
  406.         $BB4689CDCB94299D=DllCall('advapi32.dll', _
  407.                 'int', _
  408.                 'CryptGetHashParam', _
  409.                 'handle',$BB46B9AD0B94299D, _
  410.                 'dword', 2 , _
  411.                 'struct*',$BB4689ED0B94299D, _
  412.                 'dword*', 16 , _
  413.                 'dword', 0 )
  414.         If @error Or Not $BB4689CDCB94299D[0] Then
  415.         $BB4689CD0BA4299D=@error+ 40
  416.         ExitLoop
  417.         EndIf
  418.         Until 1
  419.         If $BB46B9AD0B94299D Then
  420.         DllCall('advapi32.dll', _
  421.                 'int', _
  422.                 'CryptDestroyHash', _
  423.                 'handle',$BB46B9AD0B94299D)
  424.         EndIf
  425.         If $BB4689CD0BA4299D Then Return SetError($BB4689CD0BA4299D, 0 , _
  426.                 '')
  427.         Return StringTrimLeft(DllStructGetData($BB4689ED0B94299D, 1 ), 2 )
  428. EndFunc

  429. Func _BB46CACD0B94299D()
  430.         Local $BB4689CDBB94299D=DllCallbackGetPtr($BB4689CD0294299D)
  431.         If $BB4689CDBB94299D Then
  432.         _BB4489CD0B44299D($BB4682CD0B94299D,$BB4689CDBB94299D, 1000 )
  433.         DllCallbackFree($BB4689CD0294299D)
  434.         EndIf
  435.         $BB4689CD0294299D= 0
  436. EndFunc

  437. Global Const $BB4641CD0B94299D = 0x00001000
  438. Global Const $BB46098D0B94299D = 0x00000040
  439. Global Const $BB4189CD0094299D = 0x00008000

  440. Func _BB468B5D0B94299D($BB4689CD0A95299D,$BB4689CD0794299D,$BB4689CD0B89299D,$BB468DCD0B84299D)
  441.         Local $BB4689CD0BE4299D=DllCall("kernel32.dll", _
  442.                 "ptr", _
  443.                 "VirtualAlloc", _
  444.                 "ptr",$BB4689CD0A95299D, _
  445.                 "ulong_ptr",$BB4689CD0794299D, _
  446.                 "dword",$BB4689CD0B89299D, _
  447.                 "dword",$BB468DCD0B84299D)
  448.         If @error Then Return SetError(@error,@extended, 0 )
  449.         Return $BB4689CD0BE4299D[0]
  450. EndFunc

  451. Func _BB4689CD0BCD299D($BB4689CD0A95299D,$BB4689CD0794299D,$BB4688CD0BF4299D)
  452.         Local $BB4689CD0BE4299D=DllCall("kernel32.dll", _
  453.                 "bool", _
  454.                 "VirtualFree", _
  455.                 "ptr",$BB4689CD0A95299D, _
  456.                 "ulong_ptr",$BB4689CD0794299D, _
  457.                 "dword",$BB4688CD0BF4299D)
  458.         If @error Then Return SetError(@error,@extended, False )
  459.         Return $BB4689CD0BE4299D[0]
  460. EndFunc

  461. Global $BB4185CD0B94299D
  462. Global $BB468DCD0894299D
  463. Global $BB4089CD0B9F299D
  464. Global $BB4684CD0BA4299D
  465. Global $BB4689C90494299D
  466. Global $BB46C9CD0D94299D
  467. Global $BB468ACD0B99299D
  468. Global $BB46D2CD0B94299D
  469. Global $BB4689CD8E94299D
  470. Global $BB4689C30BF4299D
  471. Global $BB4339CD0B94299D
  472. Global $BB4989CD0B94299D
  473. Global $BB4689CCAB94299D
  474. Global $BB4689CC0B93299D
  475. Global Const $BB4689CD0B49299D = 0
  476. Global Const $BB4669AD0B94299D = 1
  477. Global Const $BB4689CD0B81299D = 2

  478. Func _BB46894D0B97299D()
  479.         $BB4185CD0B94299D= 0
  480.         _BB4689CD0BCD299D($BB468DCD0894299D, 0 ,$BB4189CD0094299D)
  481. EndFunc

  482. Func _BB4689CDFB04299D()
  483.         If Not IsDllStruct($BB4185CD0B94299D) Then
  484.         If @AutoItX64 Then
  485.         Local $BB46891D0A94299D='0IUAAIcM20iJyAbRdkw8wkmHwOnGDw4Fh8k8E65EGdKMRkQR1zIj9mLEYAcJcEiD7AjZHIHRnhTEhunvDCtH28T6Dl+iUjhBYAZEJCDoNnQKLD8KOMMJ0hvwGQ2FEPaorkIGiP9UIcMCROQqOBtChu3rE4CeMcAcxoHyKRY+jsNBV05WgVVNic3kVEU8MeT+oOLHVsZyzlMIYNNbKEyLvCIkkApBD7aHNTAO6IXtbnRWr8BGjjzrPIP9eTyPM9AZwDCJ6YVJjRQAASnx6wVEOeczfiIqBhyKxgHcxcYyAkHc858awkGIA40EMZgSwyz4DzF+2YAQuEmM7EToOon4DingwawEtnQDb0D2xgMPyakBvDKywxOgJ0GnxaB0TemV0BeuJPivG+oG6egEJV8XizWnByGLRQMzBgzPEIkDGQT4RuflQ9sgFQjnB2iQDHOrkX5Czg/D5EGNgCEPOccof6+4UvawKE3b/oQpRgHWgX80SGPVoCvQOFQVfQoIkOskIhUf0kXOo4nSaM9k/QjcqCoxRO5Xf7PkiK+RMhMxQCjEKFteXxxdQVy3CI7eQ8PrA5BDAsWEPw1i4kxogsYQxDIG0K4NaNCRPTtDUAsCg5wdoRADc4IkIQQc4O0IBYOcHaEQBnODtCIHDnB2hEEIzg7QiAk5wdoRCgc4O0IgC+cHaEQMHODtCA2DnB2hEA5zg7Qn6DtITZse7I9NSA4YI/8C6apo/gricF0MhjKEqS24S2CGJtIVXi4M/P0Q65BehgGTjfFo7IuUIiTQyfqCnIxDXhF2A89tMMJBiehmjUgEOhspyMKXdJCIvyeBFjeRUr1MIyQyDyDwiLsUMJHDMwjAJDb6xxPUO5ZAv8Kqu0aa9FhBAgrxG46rL1HUiYgIVQUATQOJbCRc6HzoWPXwdQGxhDe451TmOEVEBwjPGkysKE8GoxvuLWIKUH0ChiNQP0IJM0AKxw0G1ekqsyMsQbcm2DvCHDJVD4gTnN' & _
  486.         'VF5EgYQBAW/lPxAwYhHwIQF3iBBxSDlYtj0ygyEXwm5gHIJQREMGfIZAUiODPkMgYRQBnyGQcJ0jPkMggRUBnyGQmiG5n94jEKoh+J70yIC6a27bwe1bf2JAwjVbYi8xfYkA3doPMX2JAO3aDzF9ikaGgVvsH2KR5yyQhYBINqVg+rhOjQpHTuSAnOcKDreokk74ubFihy7Vvq2ykwKRwlR3CI9DuBxQ3VBQAL6yzkAkyQOMgjpvfpHDiRMiQ8JDRk/QvYHvtMsKmkwPxAiKpK8jJraO8DLMV5P0yqdFaDpi7U8mWflRiJ8pAUlZIoa0CyXJAv5SFDFMiVX4Lh/Wk9CIKKz+tPi2MjmlXmOxMxwokcI+D+Rrr+ZhYdUxD+BsgcCBAXniBABwzUGlaQEWWeB1RiVYY5xcwg1P6vToibCEN0mtOxVDlGXOk14RQN02eQycv8ZMcRhTxZ0PohW5A/ojYyUVzlCpUUYpgkW2HniGllXy6aJRFj12PN8p0WRiuIhsQDSwQ0yZulMkooxKpkMEUFUzLEOCUHCxZAMt9u1pnS6ZnNBRXO3kzElyXixKrJwXPkXKxMv5QZZngoJPe/Ikpe6SgQQTDqGQQYOIPUMgUxQAeoZAZnSD1DIwcQUHqGQQi6FtKKSlEDhn3tVHnUr6MGkaBKPQqlHx4O0h+PEmkfTxa3J+5rQxWoEFq4QUYGIeBkdGxVhSQclmsipThxmekEDCmm3CchPpuRDCQFSW6dRtqTK6KTOKCfQwUjiBDWyMxZwhojSFlHPJ+0yZw5o33+RrGZJxGlB5AYCHaDthacpe0d5s2YkOS4A6yceqJYwZj0wpDAc184QiwJkPpjjZ+Kk6aKkdY7y42B7IijBc4Qhc4mbKZJryK9LBmaeBtkjvL4wRNIjUcIighXCZIUaIV8MXcBCG8CAWcDMvEmcO1POUUKEwsYLH8ECE8FoRpQnysMYFAGIljIPQ0KXwcaEWAoDhZEaA+hEnhjRRbrI8WnFAXubRxq43fpkBqBgnYJVQcnGXTtsXSJ8fkwqdGuN+wG'
  487.         $BB46891D0A94299D&='DwKCUnyeFD+bBCQRrBAeIAVEAQaBApAPBywDDEZwGXsIsycyFwkxUBIKMVgSCzFgEgwxaBINMXgSDjFAF+iJifoRnPANLFZ9uSgyClxgCeheSAOlmjwOFrCeooDUFv+b8qiCQsRJf7eZEIKFfjj+/8R0THpHGHEECHkIgEkMkYIq3aYuuFwk6xkvk0lVWDOzdLyTJ0LoBCMxkm5n+hJEmQ8SckqG+QsQCCgHCEAMRZJtaHSQu1gB5hPorwIwVKnpX6mhkGEi4VyPEesTVAGpIUoCgMxiTUVKhIPsIMhHdUwyQ5C4ijqsRjF6Xw1Ke8eiinQol6jxMRQ+CAw7hXrg6EIibeHJgCAhDUsGFMOQEWj4DshwaR68lEblOBByvy+skqeHMuAJucHCE+iENzGNYP+m4B0ZID6cEelNaFixBzC6Tp1HAZxD8g8CDnEgA+cSBA5xIAXnEgYOcSAH5xIIDnEgCecSCg5xIAvnEgwOcSAN5xIODnF6g+0UirRZBUC3B8gPCDWMoVNje0jUXCiQzTIBNAZBFuiZONoG8QZbNotGVVwS6BULjCdJQf99z1Ms3LolwwkEMDEO/4xSbfTH6zguEwQgMQPDGAStEtFbHgycCAw50pDhdDZLjLf0Ctwhc4p6JISRoqwWjpEgfQgdCl01tbFmIMggyQp8yaPPlgYUxLXEZ1SxBCYQMh9kkhjCnrBk4xjoalEKSYHugNQZGXJIXxQkTxEWVwULM4AYEg6YhIZxiIYikIyYdpANGoH+oBXQUJKx3RihiGQBROBAdAxIx8Bi/wPpTNDOP0WLMbAIULQBWLgBYLyY9PAG/MED6BBEM0z1hgoUZP0DE5gWXPViAgpU/Wl/84YG/8HrR/0ITISDE0BdI1yEQfHcwemL9CJUEggTVhACmUfyAP7B6ov0IlwSCBNWEAKPAUaJyAZA09mB4lKowCTESMiQzL7y0CTUSNiQ3L7y4CTkSOiQ7L7y8CT0SPiQ/L7iCKSnBF4' & _
  488.         'iQgz7hUgQSKgUkRghHH3kIEgkkSghLH3kMEg0kTghPH3kQF9i8xJMF95EUFSLjEhcX3lgEmQkaEhsX3lwEnQkeEh8X1BIgXDFTwhJjojr2hAOkITPmPDEoIxQu6+gSIscUCS2C8YGUwQIIFsIFmMMSOA+i7TGusJ6ivKuaSAK6OaDxFswE2vP+6F2Vw6ZSMdp4hQzhxh2KJ+EBiGPiAiXjKeX+nlUHyFkcVwfIUxxZB8hVHFMHyFc/IWod6e9+iGoXenv+kioV3p7+tIVqNye+vSlT3envfohqF3p7/pIqFd6e/rSFajenvr0hah3p736Iahd6e/6SKhXenv60hWo1J761yO7/Se1+uJWUyn4hWBBnVkCweBzGAzjEAnYGBmgBVkByBwIG4m+GBhJByEGQSjB4SLuCWXZHQQjBwVsSxXeSm8EUUgLkAoj4CBGUggHfKso1A1C4fueWSBRDjNxDLkNMjYYZuKD3AnTZ8Lk83DLUOgYW10fXi3gQ/eJEloMMQxiTyEz8rD63vbudRgP9kSLFHJZRmrKATHRoh0Z+W8MRvYpCI7IFxi7/lDJnRDGpsVchyxIBMQSMUbkShQ0VMONGKliHF5b4iAEajIIOSQYKIZHLOgwgQ8MDI5GNCE4kTz6IEAhtFsRENzjEEjITP0QUCFZkRTIVM/QyFz9EGAQ/lqIGORkYmgZbB+icASjMhw5dBh4hkd8vIq5QDK8RRkgGIq5TSJhLoKISWzImnCMm+T2KoqQZyHeWREkyJRZmBNButqkapxYdOoYz91FxtJGkFaQZ2U+0zQPG2JhGU8QRSzSfg8HkGXIGIWLhlSsQ6AHyceC8AoBSIAQyCKkVMYToMjhqEMx2CcVrHMoBFtew68u4FiE63yORuMj2zvC3qBCWiNRkeKI2s7wt6gdUvNRSZxLDrbURgwhDWQMIhMkEm0MBxG51GQQSxelzxYinuaGwPMZZhTHFRSx0yzRiEdYcRQTftxoi3o08M4lEDEF9fNICwgp7mgRkBhQTcujkcaULv1XyFIrygy7DtGA'
  489.         $BB46891D0A94299D&='UiC7e/IXYOUwIlY0MTgYPIsh8IWgw8jBQG8xrzJIkD0ZDFzATIxdUCr5C2DyYJFWZIvO1laU3oFgaBhsjENwI3ReZHiyfTIUucB8DJKeI0mX2chsXybQ4g5W5fAy35rE0IRyQpjInFmgCiOkfJm0IWgQrLKwmIaIVZQbUmf2Mvm0Fli4/rLAmYO8d87IBEnjCCwM20wXyF9tKBTMBpgdCLpa1iNnXThl2QiRyhXEZhSSyI7IypfMPEwFlWfQLEZfMhZ55kX+56kg35oZBAzOQscSiXrrK7gaP2LFJCLeWzK13TyLEolykzrsdY+KIwwQDbIMEs46sYroB2URy4ohEBEXIxZkFGIVFkIUIhtIGo0Q+1NQPSBcWJSUJwTE6DJUFiycGIxCGcgYkB8QaR6I5RnrGRya6x0UxpzLFu+pR4PNJKi43cHtg5mLLOvDzRCcMewq6wxFCAQciTEIHhiKhqTnvDxiIKT+NxkkHvPP4vVBHijnL2lMKz8MfqQUeKinUzOP6kCDwDuJi3XCCUubkOEztWlhlv/qYrowe/q9ocU+n91IUutPDOXpaljaTN9iNJgehlbGHtuLHLwmy+UM2UISoIEIBjCTbiIZQRjJz5mMQK79Qa9EReqMvoBIybTcY9ulCLDjHWKQRjeYMryrQdijFNtG3nX0l8kSCAsYi2lHQWoUMyHkVirGKMXmf1WUMFKIqo0it8rmXFs2xb2KujJASu4l0t1mcB/RYWW1ESfCk8EC/FFsE9DMzWTmCMxop8kQbKvLcEUDEMWQv6J8FVJ5CyG4C7qEm1fSUVOlosVKqolaCsgloig2y1XEkqVGPAzyxRaG1FqqNAx/18igUup5Mc2oGyGsXqEPIs5ZW6HXXkKwyLRZuA8hvF0QwKLEK5b4huFU7uTIjZDMrSgQyeAfuOjekNDNygbnKRvU4WTYzDX8Tk40Eh646euQ3N8jEMDEBIC3ZGUqxdRYFhI3XHSot2/I4L4/+TLOFOQuxbL' & _
  490.         'oTG7mEuyWa1JfOCEUkKUBaUt4mPogdA4/fiKB8icxpiQQ4AG1RBT2Kh2DwoBPNbjUS8zDUhD+JsIKGHXs3wgsEgPp/fT/jOokSGERLPkvzRAYEFhE8Ar/O8uAkoz0RJb1bosCZKLnEsAFAV4G++QgCFOZGohVUQethUTiIyrCKR0EBxUFK3qAkqSMIlkLtkcU4yuIw5QIB58qK/UBmqgUsw8UQQ4pkSEqDAZsDU8S6CSVTValBMz381UPwekYwcmLDIjjqRAz2noToNAsTYgIWJ6b1MbS1kFo7eTGRZLQ/t7MHs0KgTXlgAMZthrJIN8H/OFhfwONbG0heP8kDO3QB82J6SbvamjsMic7KOcfzHzM+gcGAf+NDEkGSMnzZz7IJ89SgeCUIpJFwUFHjQRAls7PXGf21BtAwMehLvjfaaSGKD/oE89KyMTCsiD8iBONyIu+0ozTSA+QlUeUmQ/tZEnNzCzpBu+tlSOSbd4GkZiFHZDtmoUoj9dm73ztmRjN+tlNkQOgzngamc2gmymB5oWmKCKexSjuB4S3WKHyNHajd9Vmlh9Y9jAilIGUQSI9VFz3rI+KiRJ1LY3qGI/PzcjNKgQeUOORwO8HRQHtJI08TJnNDP91G6KBncwS2QzpW0W0MPWklULPQpLMxxzNppOKpxSUR8+EupgoRdCjl3mkd4Qi+6rvRN3vKnVsz0jx+a6UipEojsXMEvGryCRE2lLPMiUrSjTpl0jQMvgYm4rvhkjFoidwHcRB6UnXCPofJJotsk1FoRNCC6KAJArGwaOJSio1dJxaCIqEHPDVMIi8wKYWQxgmzliyxsq6/kpgMcPuJDrApPuE8NLcG8x+NQb1Pz1fs6FN7SZ824RMCcDIUugQxyTFEaEp5O8lJBNZ5A//kFL9Nu8MWYOX4siU9EfgZRT4JvE1sFdo0av6ZPijVSKAoiZBF4QUCbz+BIyIWDzOSbJ01FoWxLKMed6k9sqBFnNJPOLNRjOSvsldFjP+0SQU6RZP9BbIGKRIsvbLysVuK/si2ZIL4UUZHm3C'
  491.         $BB46891D0A94299D&='xiP7BzgzBuxCQygj5BHpe4KN1gmNyDHhRiUFNHnnpyaR75QViMzE/AjnMlnpSvYNyHDx7HVFTBXMifkZ/gTZjBLhWknXAMm6DWQ5KEpwtagdanSkzbTrmHgocnybHKLmlYIYbUgT9NocZODYzhzIzaoIogVNG5HtlAXixcRKpAVG4MjoyRQaQ+AkxAV1MlnoahqUBfMLI/gUyK13kvPUsQGI+LQa8/8qYPykBEhkAchokWyPiHAgy/xHtMVpHgeB6NkzB/VJT86VBlyZviwSyg21KyUKJgernEqXSDYRYJZEJAREUInFJQ9IBVTJdP8EBVjyXwkzBIhhqM5rCABGNxzCFFit7HJkwXpJXAhO1RWVkJRn2DoY2SOoxqQ8IKq3XObi5mhc1CKUBVghpc2dkk7yKALili3I2xfSZNzsnpVPJcoeB2jFUzCGweoHjjMUUgnSNizVkQxKwnKiymSPsh7vRQqFG1vLOyk04PkyFOoGwDWYElLh9VIAaID4TvfFFvE+EvxIFP0CzAJuRRkYCRL5TDKoZvp88sONoffznCneFkLJklJGNklGuxFE6WZKqgZMH2rNkeqh90TRLMmFpqntL5dJwGQJLffOWjsoSjD7UzT3ITjkyw93cMgc5Dwo2YVkxVzhEeWi7RpK83EczFjqk/DxzgzmpSOlGVnSCUnGzqTpyLNiN/Jl2Unt6leGOxnuyhe6+WbQKYSrvIY62eIkIFOoA5G9NMD5RmUa+uyiZE7XkvUo0aoQuCD7LYJDZsMQizy4E3osxGrgJt+wcp6vm/8rJyIYmsaJyMfIScTFIP1Bnp0hIc+1IlYPkoXO4WE51tEmiO5pyj8LrohR6UwO91FBUzyeVeo9npo56dzNE9tbLcX/qa7jyiwmFOVl1/lnQOUY0BjeEKRCfJXB4VhS3BxCHPO+EqDJ+JJU4vDQuLT0RcqJ9U3hV/PbFuNABMiJwsrYMWbWBtOvZQwe86yVTpc21RrzTNe4wNeOUJb' & _
  492.         'e4FvC62nx3wvB5cRgQMUB1grZ3IUSiarA468vaTHa5RjFjO8LeoCqxIxHYSPkEcSd4W9QFKLIK45JcVrNJAcriJQMB4oNK71AikbMfUQTEr6Fe/UyBxH7hqwBu0nRlcotJZJtgswBwEjGMcY5ifAS8yUy7OMS2opL2xjrBsAxHNiJx5PDEAMdsu8RPO7LVjoM/6b7gy3CqY9q2U7wejIQwHYBkviG0BZs0H4UiS+CsJCqeReIFsFD5yLHVBQGFZFLNnqQaPjAZiGbhMHrBxIEFY9AADMoWI0cZlsG2+CwMJg3WCXI5CKnyTpiUQXFwdrcWNvSIq75keLxY75bGbpM2EmmFKCHQPfwpc4zpchAFKW0ikGW+ChXFOhfdx8siFL5ozCWEiRIec/NGKw2atMuIetBIL+xY+Ix7ZHDyVy6yyCJ3oeeSJxImpfyknXiNEPqFhRSGUAN0nOAIMpay5aaWkvel8K07uLuL9ZmPUreTb3pH2XHDUQJUYmOibJ6m5SWe+Wpzk0jK9GzIqqWCuXsWrFkG7N13OUEbdUM00fKR0SXTUouJr9TX86JBf9mqfziGE7rKAnOmg9R23oMq/OkgJctZ7qXVuHdgQje26immry7HRRFmtB57Qd26j8Z2U7eSR2nMsLEzqucQkvC6/UEvyC2pFiykpSh47pRb7IRY/FRzxLPlaYbO+V8RJaIFeOnfYIruIam+9Fti5EjkqCa5cMYcEG8aqVK/VtN2xJI8kQ72DUzrSmLfiJKVKmuEQfPOiZ2bHIz0SOSW1/T1PqPlmbunssyLGyZi5vdspZpYFk0JcI7FqPNI8DOLPekKqeI8WThaOmMWix08FyK6nLxJjcpwZ8pLqcJVeqvWdkgqDYzfEgjsplfqGLR+b9+EPDI4NJk2LZr6MZkxzSolumx9g3/REiCyKab1PsmcdCxo5kq+CJOf6arxBaLfBpR9wlFwWVJIcTi+YQlq4okp8mqZS7yaYSwRAj3CQo8W3+INLARziDxQP7uhFP2FiEYpcISOu/9r0D/ae8JgeVzaQV2'
  493.         $BB46891D0A94299D&='Ae1k9bBc9ZyBaWJ6W5qzYxxCMS5lVDERD6916aET+0TlLO2Gbc3rBFgA/aguie6pi0E5jiT1E6Vk+oPgNUvpHREJlFUjejbcShPfi1wi3vsCupR+WO1Exn4EvbPjFmRnnBbRfEkz6SLVIMgvmphmElScB4pDgBGChGyaUyyQFqFa+3sWcuHVl7kot/w7MxqoQCeCSsA6InAI3ntu8gUIif2916YigZ70IQM0gYFT5PCaswK2weyb9NNkLQnk4v+G3+X05zzHVhiI7WnFx77uRvlS7iJTyfU6nC7QM6MSJ+GR0PE6JgYr1DN1bU90tmwQxKI3qE6qRPH1z5tFHCQ2SSAzSKlIiBViQYwsDlp6cJFTktr46S0sxszzGSoEuUJ8oKX39jxJJCMf7xjS/1MlybVHH2aoGEjrHhGiORB4DKDvid2RRSsixO8N/OJFOD8iQtpSJpDRpS0uFe9tMf35JjNC2FM3QttSO5DJ1pcG6FHlCyHtlv3NAUwu745DzyH5NRxxJkpgIyNb0izaQgJfiigZYlpoSR1sGFCUYo9CVCvf8g3UQB7VG+GHOAn+FWoZNNaOPaVSDypAlAHrWwl47zIAqQm6eLoDBN9YzXD1zyYHfJVmukNAPVJIpqViCkhJCEy/J8Qg3REkMW6p8zcbiGw3RBQr9CSrny6UIdC2pI8uQbMiMrkEziTUU9I0cdUkUD7dSEH8iWveIMLZRUYRMIk0MT84GDyVK1MKcDqoLkn2PCUkdHesda8WbpVsFbGGr5hHOzaIcBiEvkOQ/qj+lUlM99+kqST9l97v9coEn70Cp/Tx6APXF58il+daK6J+qRN7J0TuYTR2AvRWMm77WTKm5hLsif9KTy7KNyF4zAh4SozhImSRZJssPtJ8ejCgNUoo3zBnQQA1ADNoHE5YiE3LzSwslVkmIIL7kygl2A5Nz2KLGGnY2SQrHLbc0y9Ay2MLXx3SswQFyemmbi5LxdClZCqg7atGhGoEbk9iDIf' & _
  494.         '8DwyVUjG+UNkEKi5AJ1gFQnHpIIjmxMY3aFvUD7IRZFMHSgYoSCGVBAZfW0ISIUrkreYZtxzvXgiKFmESiZroKjIPeVQ6xOdixzO8LeoCuuwdZMUkt7AtJeXtEMDCxYnoBCW4b+f4S8aVSPj6f+THtFskSdHpDAxbSYSb81paxem4UC366+ElXOhORJWJSHE6LxGh+I8ZiYIXtkciF0YWyBTEFSjVygbQsi+WTkXtLikDHrLy1zRC+8jLkdCi2DnUGElEGxqVtMn1GBmFJeGCyF6yosMR4xoh668kqM9i3wT7CvyyRMMizCTIMthVGZfgSbLwiYL/GGlEHx6XNNFGHCEdSdCgaOjgsnHvCTP2SsIL+EIhVKlyYKTGMcKvMzBYVrPZxRLlHkLtXohy6YbtP09ky6n5JAH4mGbolax+Cs2RZJrIFASx3EpMiiVJt6hSZTR8EhbpPd1ts2Q8zekz0qUnO20mrSXq9jLMC8fbRIox9s6vg5h0JN3ZvRXalLjoAYSJ/cgB/K29LMKjwCzNKbhovqViGFRE1EfxeazmsmSK5fFWk9yyPy/MhnNEL5eEE8CogOQQsrFBsHgP9eIOXB0kRIHJQWZASXUGq+GErtTja6wz0L2s0IZWb1x0SN3QjSvxiqUEoP2igCjdpYmNQKUc4sk0i5W92qCmgqoSFzKuJXRAUq51KdbLqEvOjdkMct/295eTlyoQz3KB67o7JhBa0kyl2AxQ44yK3ynbWbFUlZQ4c96lr+lSkY6zWvG1pHojL8+05Q6gYANR/p95LUhBkrS/zpg+2GU1ibKdkoB+mCVqKkd1J+qOUHOflIiftJnzDMOKFa1O0Ijjel5Tegai3zyVHxUnwp9UFszS39ZW8YC8oFuVhu8JYgxZJhLZ42BoH65NSwfArDxU/jzIMRBpW7ki2fc6cDyJirCVZFf00sktPHkPaXG0dImKRE6xzTOZf3VgNOa4mdoGCv91kjziaozTituXrZeQoZ2noDqeF0KatPmANB6oKyvhtr3KV7nX9JlKvFwZ70nJe8AQ'
  495.         $BB46891D0A94299D&='ytOjdKTpI5pI1IIU0bH4HIXEyQjTKEJSHLHIyhDaIfq+Q3ps6SGw7526oixbLJKdmqGUvkhDMSz/WZLZuBykpXysMIsS2Thzz4H5KsSHuLe5KKreoz9A2bx7ROkU1ErC5/ll2S/EaJGpOkksf5mWrcGB6XsidIp2i5pJUu1JpcASuEWB/QH4KwoZPLibCDNoKu/BlyUS/zIWGCuRXXSnvkJu0wKmcaXO/4EbOBl6NkUkRTHVi6MvL2oTlfYYkSzJ8xNamt78g1HmDiP2N/w14fiGzf5ZJU5sOCj3q070UwHkS97KJwyoSXDX/WxotA27MwrydEu0NrlXJyDi4YUlCKtne7ocNUODm+9VrlZCNrp07aHNLBARrHpOqqOJKOcrnQ2a+FYWTE/54g/LCMSNXv12ckZe/z2E6i5o8JPzpMsg+QS22E6MJgFO/9Qi6CCy+ATEC8fR5hPkzwYh7K863PyIGeZO528/1S335dAU/LFsEJ/jlyT9zwnzShNhZjPaxIw0zBAzwnCQKZmP2lP3PFo3owpQJUif7hOfxi6fzCvNVvVRLwng76tj4sUN6iAwO4sqJLhReDN4sNIlBligKWX8YJfOjsxs9GTul82QNCddjurIlq9SBJDmkuyJrxZTZQRS8hECyxCJ+E7cW+aFkPbk7HxK8AzBph2bTCRaRebZPEK+CH4B62v3m85kZarxhJ+SFBh86xBEL8Rq3UY+WsiCNMx+JZA4G/SJOyJDQL7av6VkIl6igGYdRYSVQUAhZJVM1CKUHtI7x3Y8S/rqnYQm+bo0DFT4WIg4kIySiWmm4I0MNIAYBEqI495ExfiVz/Q+bS2KOwuU8FkOp8Rlh+elWPbLl0hZG2jkL8STZMwGyNRIrjkkalIRG0thJqTLT1Ip2CtP+LiXTWpKK6+b2b5ZpGfyyJtTIpxRCFNE+STMTb3DMTJ2ISATPFNWoUh8wM50kqK+JHhARTwJHhyTYuhKfEWTVD/A7ppRifbFJjp' & _
  496.         'C/Exj0GVKiPSImFYgSifycCQMWCdv0ugbrU8nfofkGCT1L0orb1mSPy9XLVMq7TRBDJMupGakNWTmiSIk1kyTPCdSjNIbvOPcty3mZAtCi1EMPVViTmJgXQkmLTwbcip7Tc9W0jU0Uh68P1ixWKfEcmzVdI+PSE6kmRIiUq3h8zZUtI5Q0lQ5JKuSbU4mS1UYIkp1XQiYicO6UUVORFBiVDFYCohcfYj8JE+R60xxr0lCvyFM+QgafYU8wn6RMSTYSjJPsyfV2bo+RjSxu5JixeisGH/yar6LE89aQUVMRfMZcbxx12Cv9pdCnlPelqiz1YtEW+dvUInwKSbUgVOx5X8UmVN0oe2Q1bmjZOivIiXFWd4T4eNXyOlru570lklOT82a4k7L3hkx9Q3kVM+aGi3pa+Uts8ts5UvzibwiHcYx6zf/YxJJRU4SKBZC+KCy5VjvkTTpxDWRNZbt/blO0YxKPG4o/UHSLwQ5wyIk+Kmk+Slayv6I9jLa9H5A0gRmGPxF07LW16JB2o93BPXw6mnVL83UKnSGWeSy7JMG6GtlST+JCLFs4JZg9o0EpXDZMxLwqWl+tH2viaoaPnkdksY0y4MGIDJ5TE7mX5F7+eua+9gz2RYwJHhgT7R5elsoEj+D6zgnjAjxdRL3WRksLGl7T7ZiJ/4e5Muq8dCk7oFO5y23bRol9mwzzaL9YATvLB3thJW5c/UC6EKTWfXyCcD2UmTGhtlSvEqg3H3rS/6ityLOUsPSNfMmjTXq+nyfqtT0xRToHJK8rFviCnfZFnXLYj5Q2epaILMSRdpvjvaT5VmnHMxZn8pk9zPKCc7MiQopOaRjBI09K9Gpegxq2bc+CGFY8RNqzgCsDUfezzzR4QzSA+iDEByCxmNUpQQc+HxQhIfudxSZIfZ7xY0I/3HyQg0c1mtQvYfebxSxIZHFxVQIYHEwQlAcAgFQA4fOZxSpIVYrxX0I53H+QhkctddQYodNqxTmIex2xZoIj3HKQkUcH4JQnZIcXVRABBz6fVCHj+8+kBWHslkU6yGO'
  497.         $BB46891D0A94299D&='R8XJCPtx8EILHEGtUOyHs9QUZyFfosX9CEVxr0LqHCOcUL+HU6QU9yHkcsWWCJtxwEJbHHW3UMKH4f0UHCE9k8WuCExxJkJqHGw2UFqHfj8UQSH198UCCINxzEJPHGg0UFyHUaUU9CHR5cf0IfnxxQgI4nFxQpMcq9hQc4diMRRTISoVxT8ICHEEQgwclcdQUodGIxRlIZ3DxV4IMHEYQigcN5ZQoYcKBRQPIS+axbUIDnEHQgkcJBJQNosbBR6bBwTf4hQ9Ic3rxSYITnEnQmkcf7J/whzqdVCfhxIJFBshHYPFnghYcSxCdBw0GlAum6KKLYME3G6KshC0WuLuhDhboKH7DqRSKPZDdjuKTRC31uJhhDh9s6HODlIpKHtD3eOKPhBeL+JxhDgThKGXDqZTKPVDudGKaBOFNAHH/hUsBwRAIBRgIeP8xR8IeXGxQsgctltQ7YfUahS+IY3LxUYIZ/392QhycTlCSxyUSlDeh5hMFNQhsFjF6AiFcc9CShy70FBrh8XvFCohT6rF5QjtcftCFhyGQ1DFh5pNFNchZjPFVQgRcYVClByKRVDPh+n5FBAhBALFBgj+nYjLBA6gUCjwQ3g8ikQQJZ/iuoQ4S6ih4w6iUSjzQ12jiv4QgEDiwIQ4BY+hig4/kiitQyGdirwQcDjiSIQ48fWhBA5jvCjfQ3e2isEQr9ridYQ4QiGhYw4gECgwReWC8BqDBP3zig4Qv9LibYQ4gc2hTA4YDCgUQyYTijUQw+ziL4Q4vl+h4Q41lyiiQ4hEiswQLhfiOYQ4k8ShVw5VpyjyQ/x+ioIQej3iR4Q4yGShrA66XSjnQzIZiisQ5nPilYQ4wGChoA4ZgSiYQ55PitEQo9zif4Q4RCKhZg5UKih+RTvCxKuDBAuIioMQjEbiyoQ4x+6hKQ5ruCjTQygUijwQp97ieYQ4vF6h4g4WCygdQ63binYTu+CKOxBkMuJWhDh0OqFODhQKKB5DkkmK2xAMBuP' & _
  498.         '6EEgk4myEOLhcoeQOn8IoXUO904puEEOs4u+EOMRioaYOOZEoqEMxlYqkENPk4jeEOPJ5oYsJ1ecIEwQ+uMihQw5uNyhZQ9ptircQAY3ijIQ4sdWhZA6cTijSQ0mpiuAQ2GzitIQ4rFah+g7z9CgHQ8/qiiUQymXir4Q49Hqhjg5HrijpQxAIihgQb7ri1YSQoeKIoARKJeP+EFwu4nKEODgcoSQOV6Yo8UNztIrHEJfG4lGEOMvooSMOod0ofE/udCicQz4fiiEQlkvi3YQ4Yb2h3A4NiyiGQw+KioUQ4HDikIQ4fD6hQg5xtSjEQ8xmiqoQkEji2IQ4BgOhBQ739igBQxwOihIQwmHio4Q4ajWhXw6uVyj5Q2m5itAQF4bikYQ4mcGhWA46HSgnTq6eKLlD2eGKOBDr+OIThDgrmKGzDiIRKDND0mmKuxCp2eJwhDgHjqGJDjOUKKdDLZuKthA8HuIihDgVh6GSDsnpKCBP7s4oSUOqVYr/EFAo4niEOKXfoXoOA4woj0NZoYr4EAmJ4oCEOBoNoRcOZb8o2kPX5ooxEIRC4saEONBoobgOgkEow0MpmYqwEFot4neEOB4PoREOe7Aoy0OoVIr8EG274taEOCwWoToSY4RsCAR85HdyeznyHGuOR28jxZEwyAHkZ3IrOf4c145HqyN2kcrIguTJcn05+hxZjkdHI/CRrcjU5KJyrzmcHKSOR3IjwJG3yP3kk3ImOTYcP45H9yPMkTTIpeTlcvE5cRzYjkcxIxWRBMjH5CNywzkYHJaORwUjmpEHyBLkgHLiOescJ45HsiN1kQnIg+Qscho5GxxujkdaI6CRUsg75NZyszkpHOOORy8jhJFTyNHoAcXtMgQgOfwcsY5HWyNqkcvIvuQ5cko5TBxYjkfPI9CR78iq5PtyQzlNHDOOR4UjRZH5yALkf3JQOTwcn45HqCNRkaPIQOSPcpI5nRw4jkf1I7yRtsja5CFyEDn/HPOOR9IjzZEMyBPk7HJfOZccRI5HFyPEkafIfuQ9cmQ5XRwZjkdz'
  499.         $BB46891D0A94299D&='I2CRgchP5NxyIjkqHJCOR4gjRpHuyLjkFHLeOV4cC45H2yPgkTLIOuQKckk5BhwkjkdcI8KR08is5GJykTmVHOSOR3kj55HIyDfkbXKNOdUcTo5HqSNskVbI9OTqcmU5ehyujkcII7qReMgl5C5yHDmmHLSOR8Yj6JHdyHTkH3JLOb0ci45HiiNwkT7IteRmckg5Axz2jkcOI2GRNchX5LlyhjnBHB2OR54j4ZH4yJjkEXJpOdkcjo5HlCObkR7Ih+Tpcs45VRwojkffI4yRociJ5A1yvznmHEKOR2gjQZGZyC3kD3KwOVQcu45HFhJdw/IHBlH0p1AJBFJ+QWVTQAkaF6TDiGo6ESdelgLVO6tryyAwH51FRPE2H6z6WKIEpUvjA5NDOCAw6lUgv612bUT2QDyIzKKRBKP1AkwlQJ5P5df8iIHFPCrLxPMIJjVEgL4EtWKjj0D73rFaSYh8JRG6G2cC40XqDpggOV3+wEThggjDL3UCgZuBTPASF+CNRpejiP9rEdP5xgKHA49f5yA0FZKcRJWOCL9teuufQ0RSWdpARNS+gy2IxFgRdCHTAt5J4GkpIOmOychERMsIdcKJao9U9KR5eEB7mVg+a4iUJxG5cd0CMr7hT7YgpvCIrUQXwgjJIKxmgSN9zjq0ED1j3yJKGATu5RoxgkBMl1EzYIiVYhFTf0UCC7Fkd+AgQrtrrkSE+gj+gaAcgcP5CCuUEE5wSCJoWPyPEUX9GQIulN5shyChUnv4RLdmCKtz0yOBKHJLAuIQ2eMfIo9XBCRmVasqTrIi6ygHIHYvtcJEA1sIhsV7moGi0zcIpRBJMCgih/IfbSO/0bICiwIDarog0e0WgkRcJQiKzxwrgXKnebSSEPjzByLy8AT2TmnioUBkZdr0zYiGBhEFvtUCaNE0Yh8gmMSm/kSKFv4uIlOdBNSi81WgQKQFiuEyiVzk9utEdcwIC4PsOYFdQGDvqhBlXnEinwYEtr1uEFFAkj4' & _
  500.         'hivmIbJYR3QY9O3D9IgWuBEhN5r1GQFCRVI21iP1xEcRdBQLtBAbUbyC5YFAVRP/aCBmY+ySBXta96ZcQFYlAIkPMBEZn2Z53QFew6EK9iKcHEYmLiAKN5xlbOCCdecjuRNuECKF8CkedkMRCD+lA2PiEHsmJqz2PwQmAhoOBCYwyK+1IELweESJwrATTbFpyTkAK/Q7/+4j3DxGFOFYC5D2u1R4gWDYtOUQnBQgKD9lkgbhoXKYhELObWyJU0QRFJDYuOkAGDApnsYjQkxFX5w8CLLTultIgHhubkUSejwiAwMVPgcph3CCiED9adyJLaQQPHBIaFlIDFZO6CgIJwcCgKuUgrzwi4ERDvQgSGxcdgQMOCQ0LEAHyiyLHrQQTLbaouUCKFB6pyIhrVxHxGYUCOq91B0wgke6Z3US7EQijf2D9gUH3ASafEE9cciL1vARnRGY7xUDcW/t+NIjqixFDKXYCl8sjxtwg8rbt/ERozwi45PFjgc7XMdzKEfBC+IUQiLQTEZciQALmhMYRICBzhUokRX0A9bs9+MAJrK75MhGIdMcRKaFtAiIdni9LIOfcsjBE860IDYZS7IE1d8Hj0BCFK7MiFmwE4qlwuZlA+RGUSPqIN0cR6WQiAuio/IzEIByg8D9EGnUIVn0s2IHfIjOQ7xBuh0kiTscER9k40cFA8YzKov6IGpgR1As2AnGm9YHPIB2let5EKCkI2reOJoHFP62/pBCJLDoineQEb1B4kg1At2pfzJuIYlQhfkYBDvaNE8IQqpDYIrjoBBguOfdeS76D2a/1Bwkbn12AyIn8aYYCfAkEVm/VLalAPs8lErOIS8gRrJk7AsYQGH2nINLonGNEbnkI2zu7e4EgzSZ4CRCablkiGPQ92+wRtwEPwINPKKiB/uaVbmUQeKr/9H6IzSERvM8IB1rvFejYgfS655vZEB9KbyI2zgTd6p8J1ECoKbB81ogzMRGksq8HiCo/I7iBB8allDAQxzWiImbABDF0Trw3QLH8gsqmiBLgEZDQsAIQM6fYFSBZ'
  501.         $BB46891D0A94299D&='8QSYREonCEHs2veBgH/NUA4X4BeR9i+IX3YRTdaNB2BD77Coh1HMqtRUQH/klgTfiKmeEdG14wIZTGqIGy+hwSwfuBBKRmUiUX8EDZ1e6gRALQGMNV2I5foRh3RzAnr7C0EuIJ+zZx1EWpMIktvSUoHJ6RBWMxCcbdYiRxME75rXYYxAoDehDHqI4FkR+BSOAjvrEzyJIE3OqSdE7q4It2HJNYEq4Rzl7RD1ekcisTwEsJzS31lAyFXycz+I6xgRFM55P7sIxze/gTxT983qEINf/SKqW/7fET1vFAKZeETbhiBhyq/zRIEXCLloxD6BKzgkNCwQBMKjIkBfBH4WHcNyQLq84iUMiHcoETxJiwLW/w2VQSAmOagBRHHhCAgMs96Badi05JwQFGRWIsGQBGN7y4RhQFXVMrZwiCFIEWxcdAIM0LhXQiR9qcfSpw9fdVend0rd5yt0D6nv152POafXnb95z9PdZ23f151/LnUP92dLnX8qdSf3v0udFz1n0qc/XnTP929K3Yc9n9fdt3mv152neQ/T3Z8qdDf3H0ud9z3f150Xaf/W3e8rdafn5150f6ln1t3veW/T3bcudM+t39bdz22P1t13aQ/W3QdpN9adh3mH0rfPS91PK3QXvQfXnb95T9bdfyt1b7fvS90XbQfW3Wd9v9bdR2l31t0naUfS939L3Wd9H9L3J191/+ePSp2vKnXf58dedQ+390rdPy90n7kX1t3fKnXv999L3VcqdRfnD0qdn31P0rdPS52HKnRXvafTp6dGAVt0p61v193vKnQn6RfX3d8udGe9r9Knl0vdFy50N6lX0ueHS91/eU/S5wdO3Sc6dYe330udb3nf06f3X3Vv9zdO3Z8rdd/3f07d1yp096mv153/eV/St5dO3d8rdJ+pZ9LnH0+dLy91X+f/Tt2vKnU/589LnQc6dN+tP9KnR0rd/yt0J+3v193vL3SH6e/S94dK3UcqdJ+px9On9190f+nX0+dXTt23OnT/7b/SpzdOnc8+df/3r0/dFz50T63/0qenTp1XO3TP6afTt19Ond8rdMetD9K3P0rdby90t7k/07cfT50PLnTX+d/T939K3d8vdO/tx9LnL0rdryt0x+mf06fvS91vPnRv+a/T589O3Zc+dIfpd9P3t0+dfz50n+lf9OkH07cPTt0/LnTn6TfS5x9O3dcrdCep99P3f0ud7zt0b/3X1qdfWp0XO3T3+c/Tpw9Pnc87dPe9N9Onh07dfyt0X72/0/dvSt1nO3T3/V/T5+9K3a8udL/tT9a3N1qdFzt0T72n1refT91nanSnucfS569Onf9rdN+5f9PnF07d72t0Z7gHLkAj5QIyewhOw04gYtOAbqtwNq0BRliO1nniUZGqW4pFWWZbijkpMGuVZ+7SVqLiHZKFxrgRosm6nlgytZT9ska1lPGU4i1l5S1k3bWc1Vv9jsktNse9FszjsYvlcaXF2LiZ4gTcjXHDbjiBBbccdVsSjmkt68ddFnXjUYsscUXFbrg54lLcLXGzbjghL7ccFVvRjgktIGf9Fluz8Yu+WeXFTKzZ4tDWzXH7azjBM7WctVr5zqktUGedFqizkYtAWYXFnax54rzWbXEhazhh87WcVVoMzkktX2c9FhezMYt+WSXFXawZ4mDWDXHcazgBkLUc9Vrujukt3kfdFtuj0Ys6UcXFBqi54sLUrXFiajih5LUclVrIjoktjUd9FqmjcYv0UWXFeqhZ4rrUTXEuajhBtLUcNVrdjiktS0cdFoqjEYu1UQXEA/z54mF+7XG5PzjhHZ+c1U/4zsknaee9E5TzsYmH+aXEVfyZ4ox+jXENPziBQp+cdU+ZzmknsOddFxY2BwA='
  502.         Else
  503.         Local $BB46891D0A94299D='magAAIcA24PsHItEJCBmiQgIEUQoBIvvjt8H6EMQDgGDxBzCig6HySfWIWgcZNJvEAE3svY3iPFiUAnAhEFUFhsQaAwYK01OAA8I6BxXDSsj2/kPxhaJyyyZPzBXNBIQJDw5Ajo4ojNwChEsCNKF+fTuFkL2/M1CBsj/X4gSA1nkC/MrhCztkXxKbJwGIUwlBBvGgPIhgDHAw3RVCu1XVlNcMy5Qo1yjQMN0x6ybSBQPtrgkB4X/dFNH0tGOgQK+gXjyj2F4E4tMJMsdcIl8gBgB+esEORjqfiNcA4N9xebH5jLMCsMGwfaIZwajGMfG9412BXIN+A9+2dqegBAalAxAHyHHHYnQKcPB+ASF8A+EDv+GovbDAxJEkY14RTM5wtz6aPW/vjIITKHWGOmzFshABxA2MgO2FGZH0kPIdkbIFQI5wdokAxzg7RIEDnB2iQUHODtEBoOcHaJBB84O0SAI5wdokAlzg7RICjnB2iQLHODtEgwOcHaJDQc4O0QOg5wdovsHavYbEBo7DMZSwkX6AsRCqs9VSMiopUE8NAHoTdw2QvQYMf8CuAGTqgFbXl9dwyYd1VEkcniSQEZwf+YafpBI4XGVa8jVRMcIw0TFZVtnWUNORsXruFR+PiwUfORM3C/oVFaGi9AxihR0oYbF6XVRkC4F+oiQ8maXmIaZGPfGAyEPhTNj/kT2fonIFlirqJpScbSoPeszSKSdnwNk/yiF+weIMhIIDnB2gQwHOS0pGOZHKQp+HYspJc9xELcLgXS16dqU04teb7Wt5xshdNy2/dIOKLQ8iWASUCRUzrAyXS9YSWaORK2ctEPzFipNXLTA+OsGOWzGRn4naFETriOxUFGJJtEyCxIOXUpUEHB5TMC6d0AV+oHTG0FdIrzInFAgAozZO/CGJvo2XJEIQUyV6yzIfNypycICJYYYFB66PQOpVN22QkpkIDoECAWpBQYo6QyJmVWoLgfCMheIFimprwzynRjPIR' & _
  504.         'HKVqc+5CMCSBzPcMgDkSCe4ZEEcYz3DAWJKBnuGQadG1d2HAZ7R8gfB06weIPcSAhOsHiD3EgJTrB4g9xICk6weIPcSAtOsHiD3EgMTrB4g9xIDU6weIPcSA5OsHiD3FMkQh4S4JlHNyqZFlBCe0C2YJklT3EWkglhStj+CyE8epHncTQUR7FMFeQPJN59SRYEQtAhx5HFp+XAjFPbjxKvNNOVdkukBBNXwhTBTwdMi3RZokueIzFE+YjGzEtHPMTU/TJcJ8m4yOdlTxA65ylcZKQ3RCAxwQQCCIaRDOtEGBySAfLr6IuZHTq3F2XgMcKJFuQH+WVv5DMR9yHp6oYpASCYcx4KMcFUTqYzAiUc7Y19CRMygWgse2N+LSw/YIPRNM4YnOlGoTwsrLJ/wvH8pxAglKJTO4hCvkyM41r6TCTJCAZR/WIqGgw6dhnO+ieHJSG2QV2I2IWNRJOCxvSyP0LUTYm4X4Ue72HkSV9dQmxyTA4CiRwCAyQgCAS/wAWxnD201xvCc+xZZO76/AxyIAKWaaUOYbkfHA32E8RIIGQDJ1i4wyEEOsQohkIFSil/2lmC77LPhX2WiHvss4vfZZ6O+yyR99lnlL7LPZf2W5rNEiid8lgEbCV89T9ZBlOI+FSippLzmahPm1UYc9SS3FnEVEstC5MpiZfFChId258liLShS994539YuSrC+oiQPJtipTm5GAoQnQWyiDFZFMpYEQX+LMJWkfyniKjoTQgEiwwTVPFKBCPyHRzrJbKuZjD3LLQlAa6zstO1Ak0UN9KXuulsufH374k0R2ri50dnTOQUmks99FyyyxQZRLAVNEPCRrgwNP2BVWM7AmyLrCSIrr7unOqABx+8kISPtMiMhPfFD+N8ROvBJv0E4GRkRoXtEO4CgY0wd4P3Mt40MBSI0DjIDgWQQCIGQEgHiVACCCRYCAmQNCIKQDwLi8wIDJBMIg1AVA70VqFQXAMP6k7EMUssQaPrJ4sGrOhhs81Hn82h25/NdXDWhFV5kFUaHPPqi6j8MAazKCY1PTcCDU7W'
  505.         $BB46891D0A94299D&='Jzi9Fb40RDiJBFIKQCQFMkgkBjJQJAcyWCQIMjQkCTI8JAoyRCQLMkwkDDfIkA3IXJAOyCy+xIT0kLZRpST5dJKlNNGNiU8DGaUoMvQQG/9IgCZsVWu0rSCQ/qRwcJGESARtxFYIlzjSTf/mxGQsJziQ/DTrIJAmkk6w7acpQHRUg+mRCr+LBCsxwxuvftSh2xVoRHucSBKROA8MAe+UtbQ8sZ5CAoF0lOlOWbI3MklOgxyLdDODfM1sQKbCD4h1NwDB/gSF9nQ9gwLuATHb6wpLrCIdL9KVBQdUHQXWBB8Xx41ILVkQOQKGdNe4SBwO5huHaZI8JqPLvDK9RdrBeA8D8BNfwfpjqPGESNIYd4mD6uqNljSSlYlhRus+6kaYH3NDyA8COcQDg5xIBDnEBYOcSAY5xAeDnEgIOcQJg5xICjnEC4OcSAw5xA2DnEgOOcXqCJMW0hbiiYtoiNaNhTXEA5jfhFSuSLuQnhyLRSS1usN7hvkJZ4dYAiRcH5IsYYRmDXODJRwkKTCMgzyZNXOy/yHSdH5c+etMORoTMQNdFVBDmwycCAw51p6hdEVbmqHMDAoFdJDpZWSbjh6sZ0cMtsoyFIm6EKSXDNK5CFITyusY/zsyXhJOg71WDEv5CTe9kSszR9wzXQSxTQjkVQwagf+gJYRTdpZBGEPAEL4BiOCFdAq4XtDE6cELjbUR8ot1hZp9DMEYr5jpVxjoUYOdNK/OGO7OtNwbBHvS74QKDCDqX1Yo6DohIDyudux2vIxQ6woIhB7oiyyfwc0QJRiPxgnYTOqp3BQzrJ4njd4VCEjaPYucUjEe1TOUlh6P0E8cQ8HoEJvpIGnR+VggvIEMDF6gnbSCi6qXkRvUvXZQG185iegl8YgVyisGIdbQe4KP4mSCP3DegY34pYGP4o6BP3EIHqHPgB/EuIB+4TKAG/H5fx/E4n9+4Vx/G/IjFU8x+8SGfm/ETX5/ETZ++4SwfW/Pd3H8YEd97hHafL8' & _
  506.         'RoXz8ikd87iME1CPLe/viez9wLnuN+PV6j+Leej9wWHqN+R8Kogg/eIJ5jfhJeY/iMnk/cKx4jfhiaI/iS2g/cMVnh8jSWl5DRwInWp6ncgiAegwxwL4CEhCxN+opUvuA88QUCsPrEpAB+vFMVheNdhDfT4iWec4KxDIMfMCMI+BWkO+y6BEICjnJxyHtZOwiDBHrCUE2geMjcj3DoulAx4aMesX16jDJiyOEjgfLMwSsDM7toCAkqq2Zps4kXlbjCI+kMW/KdlQxjc9WDBTLqY47CLyoTF6JTetPuRzeAoVQ61WH3ojVgVWn5aHeViFdVfb+VY/kDT/xo1QPoX9UD7FGVBrZmzIUUOXe/oTFUz6EoVM+xGhTehBUU/+TaHjeQlK8w0NS7IpHUvFzUnZWv3Cl3tDlUYfYrFGP4pVRNfgiUYV5Bw/hzlAfxLdQa/FEUArxKVAPsfBPH8TZT2vxZk8K8UtPD7ISFUL7TjX4iE6FeG1Oh9g0To/kHW6hqk0K97RNPsRWTX8RP02vxMxMK8SxTD7EeEx/EWFMr8TuSyvE00s+xIk7fxFyO/xepd9srDOEKayH5W9Qso8W9Q3aNoXeWOQ6jS8Wv0VsuRTB2o/eMF47wFvUYapSmamtYJ56A8Hnxw9KAnDhEAnPyhIKBT8yARwIA4k4HhZyB9TmICEGGc4TBFIGBY8h54lw7BhafAtQ4yIKhETLCKsG3R8iz4lY0D9q/ELlIQ4Z6SEMQQZSDf3ih0TRiUjhUOhePkTwOFgP7WlMcc0DqonNweIYj9odvAkQMe8opAuQCEEYQWnl/8NEAhMYiXiURv6LPRQ289weZNmiHAgNQngEiFJNfxAgiCREKCIsAsB9EQgbojARNAg4hEA8c4ZGDOhAhEJEIUgQTCEmkRC6IVAQVJxhEFx2QnwjFHRCYCFkEGiIbBCMyBjdEHCIdE9wiHwQP8gc163Ly4ahKLCECMWmmIgbCKy7jGIRsuZ7ESAbopA5lB3GOZwMjYZDJLwUgcoC1wSgcqQ5qAjLyBCsh8eA8AoB'
  507.         $BB46891D0A94299D&='RcZFCqC4FwzzOIkM/m7pqWaE2uUszYTrCn4giShAeueFkM/doUmF+3iS2nIE5izOhu0KTfx+i/xiDhRDDCMNE1ygClhkDE0TYhIUhAZWESYgBEQQF4xCFjLZIRSCBlIV7ib9ATh6Eigk3cL5diAsmonLJMHrWR4cO3iB3QLZpAsIEBhcj1NZQBMYiWgzXX6EoiIvm8rzoc9KM4KjhibxUM95iGgEid1PZeIwETQIOI0QPOJAEUQCahkIG6JIEUwIUI0QVOTK1CoFZUYM6GCEQmR7jRBs4nARdAGgeAgQjdF4CHyJsGKpQmjLmBKxOmtvt5UvcSMUXliot9NIv5TlmGx3nI2RoMikYrh3ERgbpxjDPCQj9Ky4w4WYtBIMx6DG30DjCPnI6LxkRDWE+/hfTZIo7SWxUTUPj1XJ/eB+geG7UxCKjNX8wIv2+IT4R8QiyPDeyxDMl1aQwMKDxAznWZEUIihALHKB5gshzjrClgsWMKR5B2IGOstZtClgemieM1UOHCRrWJVcLBBEDCdmDSzUSpMtTEFuSHRceoHnCyHPu0KWVsYqWEBnFKkGFXJ+iAwRFCMbFRomn2GXGTzKGIkfGB6FEByHUh304g3TRDh5EZR1JjAjns/MgnEXNBKKidkUkqg8DHZAyc6By1ILCA0wTqpAExiKw5qq9UTqoibCll2NKwflKPHp7pvt7B6ltExCCHyWklJTpc+RJXjyP0wME26n0Bo0Mw4IxwQ9izgx66mUYQB0EXAEEu+MqrbdmVLA7g+26473pTC+AMYmcEC3UgSuiERSwZrpPJlGqrxQjRBU4lgRXAI8GQgbomA0QmSeoRFsryNwRHQ4eIRAfJJCcyMMXrkEoa3EqKIERrB8lAJE6WRrtpOJrw+5JagoALxb9PK9Qb/eeb2I0HKKcBDC3RGg8qQe+xysjfGwHyO0ZLhyvBkODBSN0cAfIcTkyHLMHICNz8Fv77pOut43pN0qzqQLGBAYZLrnNBATxMj' & _
  508.         'QiDN8MhTUMQgC2CIx+4S63DFUcQgYhRXfXZl+/pQm+2je5ZZiQTyZ3feO4EhRBIHkF6lpaugtSonsReTE4HIUG8DsCIu9SZlE0RA/1wvw+CB0TcQLfwwPEEgnABh1G+suPZEbHJBPdCU8L2Ofuyy6gJAQB7jcHxfrDalM/WuAZJvx/+P5GlgOZET1DIUIr/ky6ghbVREgIjRAOFqB4wsgy3UyQPNygeYHmcaIlT+Mr2p42TUtPLll8SEIXgboTv9qiACIUqgpc4xCDogMSVOat1L5lK4J9ei0a/bRRAyizY8zabICr6VvKxOWUPw+NBKywc4PnfEbGcruQaHmDQIVGBsQNt4zMxQJDNUkr6msJMvHGoADgNAHjRxb5jRQ2xF/zwMBU8MX3kSGHe6ANHaB9jEOIVASHf9J8f6iOgxk9pn9xMVIKe0ObG0bCMSD9+47R90szS1qehP1Ut3l9aQZzLS24qlJVUUf2tEWpQVmCCqQ7AS7nqqojZB8QxzfIVJk+FaYjyEM9EA83qWDn/4U95uzz0Lcj+WCHP3icUIQyV3+My9ZESbeTW7s7g4QqMOwnLYvaSuuB1nraxr4Q4OyigIibV7r6KITGNhdz/GnGT5fgxXUieZlFOqu9do8GYfpAQxJQtDJiBGkb1MrmXOBzUS1Sx3tYc/rS/Yt+xEb61stNjMrTtbiVpAm9w2yybCn0xOlhvdlLz7ZNajVkwlkqGT5REzp+dokiDIMDQfyWfkm3+SMmAUcjkA0zoO0RB1s9x9F2j1i26XlomSlcwUU1dkJ2k0FucDzpdyfyxTZHfI8BNmLIlBDz5lt6OJNIRIt7wI8fwX/Mv35wvSk2M2Y1u6CRFlb3lgK/EhwuhRTBNpB8vPdH8d9bwcreKUgCDfutXxI6xQX98poOzNdcxEyaxdYDDJ0FDnzF8hUgRUMt9yZaZWcaLp4LP+ZrekqmPh6yixlTOYzL9pS3kq/hRbr9fHOiOuWaZBC34laeDKB/RUnljvzIpVfF1Y4XJqASWqJSD2HNVw89l482WsZ72Cg'
  509.         $BB46891D0A94299D&='Fc3riQ1jMfzdpd2W9RZpPTFEMwrp7i3ZM6YrpGTPkhbxZExd+SmP2YjNLwTZUIzQ7oxCVIhYcVxjwNI4u2JPaXSs1MCPu3yFy/RgJG1u3RPxKpos85N52TLUot/nfablcfEqIkX5ti28bbROjbdCss5st0bLIM/E/HhAms4hRERIOEyJHArEe2giGBkcD3yHRBQ3aP9EMGg0hRA44jzMnq/OiJRnRBwyFB75Dp6hu1yF+lLO+yT+G2JwIKXVBGfp+FEoDiIsRwx8gc0HaIirZohoIGQMcs3RIaPpyBUyDOniGpXMPM5qy9SPjhiJ/hfMMsL346DEU5nSLNGaEg2xG74vTmjTaKITSb0UCfUYM7p9t2pyVsAI1GWecKdE5EY0yN5z3CsHifIx2iTRiCkzm74UGAx4l4wU0EjPvFB2o7qwg8QgnRxkRDBEiUgf14mkjx5aB+vjxQ8Qy92hS5kNmH29S99v0yJomPran5XPb/lSzBk/ftJ/m7biHMlpBRA9X70sTrPf4vtlGShMlHF0NTHrSifZhc2joCTd7cUI+Ql3nlvnzVTPNKk3To4FlqJdgsqJ0dMK5dFqq98U06n8iaGl1Uqn8rQpAn5WY3Y+x96yOl8QmYlM04LeI57a/fuMQ9PImaWR6QjR82dm0+ViNmitM/xbOzU+i1ok2zLR9TEEGd7xN1G4P2LiM2SM0AmbuBiN0RgbiBhrYtIcnNAbna2iIJ5GvCIYRRTSFxEUuiMUcRQOoiAEoGIUJAxdIXEMG6IMNxAM6mlCedcs7eUQie8LnogQ3REQuBCORiifYXkEOzFpM1SSndPfcyPTXErW2j7I1WUsKJIoi+xeI+QoEuNFTKI11tzwu7GGQJlnQl+TKNjfhcXfvCWXzWnaldEW+5oQsv4kLDoiLHjft5EnfJJF96WymxyLGUoq2BTf6s2C3Mdp81Em3TpFrwkN7ywCBLh+W8QUXTItIC6QI5gRDHSJHBdIEZyIELpEBIukqmO' & _
  510.         '16iIhKOkChE0/ECwgze0RKF5+dUIoP92FxN0y61aoXJyD9ZAs6Cy0zU7XpGjfkPiC1btDSRYP1EmXLByIkz/ori/LiORYCJiMk0JEXFAEElhwLT/+KAQJWHQWPL2UlUl4OX2KDwSpfJd1ifJcXoHpPXWRbB39iaNXt8tpYkNp4e8h8zdPaRY6cWRUkXVieGBZT+kWciV4ZDrERW+JeGhOOZFsYnhs5a4kaVpXhAXay2Z9TFRjvMVfW93bJ2OyfCPvibQr7GhNWGCoWPMyXeJAFxBEuEiNEEy8lUtat0RIXfriMB8QNLg4hcQ8LiMgTxC8aEpZt1BIXe+l7AMtKGvOV2Ymf0ssiLLzkSC+pxCaS+XnJA0pErunGCuSs9XrHCdLCAQAWKs13QkB/gERuYnXbyftiET9CvoLkAh1SOoSIeKKPJGRSIESOL2WKgT0JFgIim785VnD+TAPIkDlEljeblZrCgruX/0z/RKY4KJj6BCB5AuyDAToLkqi1qT58CXsRWLRBA6IBPRMzgOz3uLzVGJxBD95AM5hMPulRuTlWc1AJN9zafuvkM5ehWzpx0qyWawYp6NEGG6IGNRGGLLUMlW/1hQUo+gUjdEUGogU1kbYSuNT0iMLHEoM51MJ0YnKiPpVkOoUFFKAKNIRi3TVx13F0yqdIdbT4sudm4qJ1ZnR2t3KAtc53BS8DsTGVK2Qj91vtNCS8xKtKieQqHTxG6IcNxAc18U2t4kiCPsXiVFXWcAYHL659W81nqfoXnQwI6jEEhCn9atCnq14xSXITvVtHFwGCpyaJDWbwjQktZoKLCSZdRA8To2UBIGVeYnQ306uIpWyCWvkbTA4otv083ppHDyo+YkoiXztiFJeNvUh0eQEdKjBuLCdPzlRLAp6lbPNzH2JQqi00zn1FTSep9henTJ1VTc7WThKkiI0+xeI+TQ7NWnHQtTOypZbCCuaCWpPc/2uReTfLkrX/ahu0LrIOHRBOD3Aa+JEa/0uNP7rzdX2qRlxAOlZ0SXb6xIc47+IMLpApJc265WxxagX'
  511.         $BB46891D0A94299D&='pevZPZEtPHSfRg6alZVO01gIyJUfTLauXjpE5W8ZIQRRBB3iPk44jhqILLpCtL0wiZh+VmnjvyIpNMkIuFzuxQTod6g0S03d9K1h53c+QuWxfg2T26Lp1uD7zPbjqfHrPEbpEs4geeH6RiZGgLKEHZCIgukzDGcjkYxBpkoHSSIa2TMSalF9lF7rMh2kvPTqxDQkqDOttChKTsE4y920C3ksuQql0UZYaHCVtGC4S7lPCWh0WWBLK8AYxGh4lztyLic0RWRo6Moy/4EEV5wMQLomQ0uJBGzyePvSGbkM8t5VnDxb8nxU8o9E1bo6+FA775kOcN0zRHTW9O6MW/d1Vos0E3hgOwsTeGQrCCd40J+RAm+pbBj/6DFwRuFyJpIeBGHk3y5Pzje9ZiGzPLXeIE/JN/IXi3hQnRqLeFSVF494WOnrlgexGEd42agHsiXER0OyILonIUlupNZXqYbSZSyqeYhjE9LiS78hONE4YxkjIM0jLSSeI+kCGWhA8ZXsRzC8EUJoRHRpUtCCtIZJ/GIZ2Rs8F0gXTGoYkvNMq1YBsyy1zhmiMB8QNLg4hcQ8ENEn3pxbQKoPT0edhiMSiN90St+JPxSl4l++j3j3Kyc+eF0jt/53dx+ULKyRtJIC8XUMIgz1nU4BdYmUCNsnuvNRCt7nAvWW53z9Su+j+JGFXAKpCZom0F4yv/Vk66ThXv3dIPKTxidI/lIdfu7QPfCWqKJ1nyx/DhSLxBDOLnwbZwj4J2Q9sMbIMzQRHErHlfVF7nJb7xLHDif6RE7zthIk9+txNALOCN0SMLKpEnAEshJ3nelcSOJ/nxeRQKhShP0ILImQggN1HOsvf7IbfxUcbqjU0AXfjQhW7M8bTFBpjF7154MQMxJSGwkiCWpE1TCJNhKlJDhIv5FAIqNEnoGJ8xLXJPtIfJHjIjlEgpuJLxL/JIdINJGOIkNERMSJ3hLpJMtIVJF7IpREMqaJwhIjJD1I7pFMIpVEC0KJ+hL' & _
  512.         'DJE5ICJEuIqFEZiiJ2RIkJLJIdpFbIqJESW2JixLRJCVIcpH4IvZEZIaJaBKYJBZI1JGkIlxEzF2JZRK2JJJIbJFwIkhEUP2J7RK5JNpIXpEVIkZEV6eJjRKdJIRIkJHYJqsp6eqP8tNk0wkKSPeR5CJYRAW4ibMSRSQGSNCRLCIeRI/KiT8SDyQCSMGRryK9RAMBiRMSiiRrSDqRkSIRREFPiWcS3CTqSJeR8iLPRM7wibQS5iRzSJaRrCJ0RCLnia0SNSSFSOKR+SI3ROgciXUS3yRuSEeR8SIaRHEdiSkSxSSJSG+RtyJiRA6qiRgSviQbSPyRViI+REvGidISeSQgSJqR2yLARP54ic0SWiT0SB+R3SKoRDOIiQcSxyQxSLGREiIQRFkniYAS7CRfSGCRUSJ/RKkZibUSSiQNSC2R5SJ6RJ+TickSnCTvSKCR4CI7RE2uiSoS9SSwSMiR6yK7RDyDiVMSmSRhSBeRKyIERH66iXcS1iQmSOGRaSIURGNViSESDCR9VmoBqqhel74RAFH0p1B+QWVTABoXpMM6J16WADura8sfnUXxHqz6WIBL4wOTIDDyVQOtdm32iMyokfUCAEwlT+XX/MUqdcsAJjVEgLVio48A3rFaSSW6G2cAReoOmF3+wOEAwy91AoFM8BIAjUaXo2vT+cYAA49f5xWSnJUOv21666BSWdrUvgCDLVh0IdNJ4ABpKY7JyER1wh6JavRAeXiZWD5rACe5cd2+4U+2APCIrRfJIKxmAH3OOrRj30oYAOUaMYKXUTNgAGJTf0WxZHfgALtrroT+gaAcAPkIK5RwSGhYD49F/Rkg3myHUnsA+Lerc9MjcksAAuLjH49XZlX8KgCy6ygHL7XCAwCGxXua0zcIpX8wDofyI7/gsgIDaroA7RaCXIrPHCsAp3m0kvMH8vAATmnioWXa9M0ABgW+1dE0Yh8OxKb+iuAuU52i8x5VoAWA4TKk9ut1AAuD7DlAYO+qAF5xnwa9bhBRAz4hivmW3ds9n5AFrk3mAL1GkVSNtXHE'
  513.         $BB46891D0A94299D&='fV0ABAbUb2BQFf8AGZj7JNa96ZcAiUBDzGfZnncfsOhCnwdAi4jnGVs4AHnI7tuhfApH5kICD+n4hB7JEAmAA4aDMivtSPARcKwAbFpyTv0O//sAD4U4Vj2u1R4HNi05JwrQ2WRoXACmIZtbVNEkNgAuOgwKZ7GTVwDnD7TultIbmwCRnoDAxU9h3AAgolp3S2kcEgAaFuKTugrAoAMq5Twi4EP4GxcdAA4JDQvyi8etAC22qLkUHqnIAFfxGYWvdQdMAO6Z3bujf2D9APcBJp9ccvW8AERmO8Vb+340AItDKXbLI8bcALbt/Gi45PFjPdcxncpCgIUQE5ciQA+ExhEgQEokfdK7Bz34rvky0McpoW0AHZ4vS9yyMPMADYZS7HfB49AAK7MWbKlwuZkAEZRI+kfpZCIAqPyMxKDwPxoPVn0s2KAzkO+HSQBOx9k40cGMygCi/pjUCzam9QCBz6V63ijatwCOJj+tv6QsOgCd5FB4kg1qXwDMm1R+RmL2jQATwpDYuOguOZjCAILDr/WfXYC+AGnQk3xv1S2pAM8lErPIrJk7ABAYfafonGNuetsDu3vNJngJyFkY9APsmrcBg0+oqOaV/GU7qv8AfiG8zwjvFX/oALrnm9lKbzbOAOqfCdQpsHzWATGksq8qPyPcxqUAlDA1ombAdE4AvDf8gsqm4JAA0LAzp9gV8QQAmEpB7Nr3f80AUA4XkfYvdk0H1o1D77BjzKrIVOSWAATfntG140xqAIgbwSwfuEZlAFF/nV7qBAGMADVd+od0c/sLAEEus2cdWpLbANJS6RBWM23WAEcTmtdhjDehAQx6WfgUjuv4PIkAzqkn7rdhyTUA4Rzl7XpHsTwAnNLfWVXycz8OGBTOecDHN79T9wDN6l/9qlvfPQBvFHhE24bKrwDzgbloxD44JAA0LMKjQF8WHQDDcrziJQwoPABJi/8NlUE5qB8BcQiAs97YtOScAGRWwZB7y4RhFtUytgA3bFx' & _
  514.         '00LgXV0JQSAFTkcMilkTL8Yu0SJORVSL2RJElifwXGJGAIo9ESWeJmBLhJAJIEpGjIsZE55WJ6xLaJC1I05EpIkREaniJaxLdJLZIF5FmIrREGIKJYBJFJOBIhJEcIpREWBmJhxK3JCNI4pFXIipEBwOJmhKlJPJIspG6IlxEK5KJ8BKhJM1I1ZEfIopEnaCJMhJ1JDlIqpEGIlFE+T2JrhJGJLVeYkRv/4kkEpckzEh3vUSIiTgS2yRHSOmRyXCJgxJIJKxITpH7Ilb/EickZEghkdEiOkSxD4nSEp4kT0iikWkiFkQK5YlDEh0kC0itkbkiyESFTIm7Ev0kn0i8kcUiNER23IloEmMkykgQkUAiIER9+IvMSG2RSyLzROzQiWwSmST6SCKRxCIaRNjviccSwST+SDaRzyIoRCakieQSDSSbSGKRwiLoRF71ib4SfCSpSLOROyKnRG57iQkS9CQBSKiRZSJ+RQjuJNlIzpHUItZFr84kMEjAkTcipkSwFYlKEvckDkgvkY1yiVQS3yTjSBuRuCJ/RARdiXMSLiRaSFKRMyITRIx6iY4SiSTuSDWR7X2JWRI/JHlIv5HqIlv9EoYkgUg+kSwiX0RyDImLEkEkcUjekZwikERhcIl0EkIkp0hlkaQiXkRrRYlYEgMusSJt4xJMJNdIy5FEIqNEWhuJDhLAJHVI8JGXIvlEX5yJehJZJINIIZFpIshEiXmJPhJxJE9IrZGsIjpESjGJMxJ/JHdIrpGgIitEaP2JbBL4JNNIApGPeokoEsIke0gIkYd3iWoSgiQcSLSR8iLiRPS+iWIS/iRTSFWR4SLrROzviZ8SECSKXuJFBfokjUhdkdQiFUT76YlDEp4kQkiLkVsi7kQKD4keFwiRhiLtRHByif8SOCTVSDmR2SKmRFQuiWcS5ySWSJGRxSIgREsaiboSKiTgSBeRDSLHRKipiRkSByTdSGCRJiL1RDt+iSkSxiT8SPG9xIWJIhIRJCRIPZEyIqFELzCJUhLjJBZIuZFIImREjD+JLBKQJE5I'
  515.         $BB46891D0A94299D&='0ZGiIgtEgd6JjhK/JJ1IkpHMIkZEE7iJ9xKvJIBIk5EtIhJEmX2JYxK7JHhfYkW3xi9RconPEugkm0g2kQkifESyI4mUEmYkvEjKkdAi2ESY2olQEvYk1kiwusQEibUSiCQfSFGR6iI1RHRBiR0S0iRWSEeRYSIMRBQ8iScSySTlSLGR3yJzRM43ic0SqiRvSNuR8yLERDRAicMSJSRJSJWRASKzROTBiYQStiRcSFeR9CJBRBcniasSnST6SOORMCJ2RMwCieUSKiQ1SGKRsSK6ROr+iS8STCRGSNORjyKSRG1Sib4SdCTgSMmRwnWJWBK5JOFIiJEgIs5E3xqJURJTJGRIa5GBIghESEWJ3hJ7JHNIS5EfIlVE67WJxRI3L/Eiv0QDFonPEnkkB0hpkdoiBUQ0pokuEvMvUSL2RINgiXESbiQhSN26xOaJVBLEJAZIUJGYIr1EQNmJ6BeYkRkiyER8QomEFwiRgCIrRBFaiQ4ShSSuSC28xFyJWxfYvsRXie4SmyTASNyRdyISRJOgiSISGyQJSIuRtiIeRPF1iZkSfyQBSHKRZiL7REMjie0S5CQxXaJEl8aJShK7JPlIKZGeIrJEhsGJsxJwJJRI6ZH8IvBEfTOJSRI4JMpI1JH1InpEt62JOhJ4JF9IfpGNIthEOcOJXRLQJNVIJZGsIhhFnOokJkhZkZoiT0SV/4m8EhUk50hvkZ8isESkP4mlEqIkTkiCkZAip0QE7InNEpEkTUjvkaoilkTRaoksEmUkXkiMkYciC0Rn24kQEtYk10ihkfh+iakSYSQcSEeR0iLyRBTHifcS/SQ9SESRryJoRCSjiR0S4iQ8SA2RqH6JtBJWJMtIMpFsIriXFRETY+bjJ3fMp07y2DdvnTGjMDtiU2deh8T+/RuJq/N7E8r2FyfJ7HBO+phHR52xS60+YmOidqfEnPlviXLTsxO35lMlk+zPTjbY3/efMY80P2Kr5XZHxHH5T4kx83cTBKb' & _
  516.         'LJyPsM04Y2LMFnbEbBzpi34B2q8Tr6eOJstunEwmmcycsbKNOG9i3Wp0xu1Ic1p8xlylqYg8vfN/EU/1rnCfsF04g2LOxn7GXampiB77UQ8RK/e+JWPNzE9C2Jy2qTG9OQ9gnM58xX0UcAp2xg1A7YiefdtPFUam7iUD7HxOS9nsnOGxjT7zYy9qdsRcQamK783xHxM3tK4kT2fPFl6nLixdTzxOntnstPUxDT12YB3OfMR+BP2JX3H4jxCr994uIUxcT7vbXLRRsG1pemOvbnzEbMj9ipwrUw8UGqd+LXFsrE9P2gydi7MtalZgzeZ+xj8g/Yn9t1HvF1a07i6lTvxNW9gst6kzbT3qYhwifMU94a2IrLn6/xaapA4nG+9MT3fb/Jx/sg1q92GOKtbEbPj9iE2bWJ8UDrW+JDvPDFjW2Gy25bH9awZgHnp8xv/hrYo8RfMvF2blTi5RzbxYe5mst6UyjW1WYB9+1sU+hamJLDdzPxea5R4toU/MTmfanJw/sc09U2G8Wis0BVVUlxRFDxmOIpfh84oQ47neOmfZ7I43/8ogN1mvivTjeb46xkcUjVGAwiFACAeIDOM5njqlWKyN95/6IGbXX4mI4TauO5ux2I5qPyohFH4LinTiJyY5A+n0nh+9ewxWyWYjrjkfiyTj78I4LQa0j7LPUiGdfouL9OEWvjuojnCO/U6SI9+Ry4pY4m8COW3W3I8Lh/YgcPZPirjhMJo5qbDYjWn4/iEH19+ICOIPMjk9oNCNcUaWI9NHl4+j58eIIOOJxjpOr2CNzYjGIUyoV4j84CASODJXHI1JGI4hlncPiXjgwGI4oN5YjoQoFiA8vmuK1OA4HjgkkEiM2G4CIm9/i4j04zeuOJk4nI2l/so+z6nWInxIJ4hs4HYOOnlgsI3Q0Gosuf1IcLdxuR7K0WhHuW6DE+6RxUhz2djtHTbfWEWF9s8XO/SnEe91x4xw+Xi9HcROEEZemU8T1uXHRkXko5nHtHCxAIEdg4/wRH3mxxMi2cVsc7dRqR76NyxNGZ7dx'
  517.         $BB46891D0A94299D&='2XI5xEuUcUoc3phMR9SwWBHohc/H8bvQxGvFce8cKk+qR+Xt+xEWhkPH+ZpNxNdmcTMcVRGFR5SKRRHP6fnEEARxAhwG/n9HgaBQEfB4PMREJXGfHLpLqEfjolER812jxP6AcUAcwAWPR4o/khGtIZ3EvHBxOBxI8fVPBGNex993thHBr9rEdUJxIf4gcRAcMOX/Rxr98xEOv9LEbYFxzRxMGAxHFCYTETXD7MQvvnFfeeFxlxyiiERHzC4XETmTxMRXVXGnHPL8fkeCej0RR8hkxKy6cV0c5zIZRyvmcxGVwGDFoO2BxJiecU8c0aPcR39EIhFmVCrEfjtxkByrC4hHg4xGEcrH7sQpa3G4HNMoFEc8p94RebxexOIWcQscHa3bXHbc4Ec7ZDIRVnQ6xE4UcQocHpJJR9sMBh9HSCQRbLhcxOSfccIcXb3TR25DrBHvxGLEpjlxkRyoMZVHpNPkETfyecSL1VHni9XIxENu/fxZ2nFtHLcBjUeMsdURZJxOxNJJcakc4NhsR7SsVhH68/TEB89x6hwlymVer9x6Zp8crkfpEAgRGG+6xdUhUcSISnEl9lxxLhxyOBxHJFemEfFztMTHl3HGHFHL6Ecjod0XfHd0EZw+H8QhlnFL/GFxvRzcDYtHhg+KEYXgcMSQfHE+HEJxtUfEzGYXqtdIEdgGA8QF93H2HAEcDkcSwmERo2o1xF+ucVcc+Wm5R9AXhhGRmcHEWDpxHZiGcZ4cudnhRzjr+BETK5jEsyJxERwz0mlHu6nZEXAHjsWJ9ZTEpy1xmxy2PB5HIhWHEZLJ6cUg3c7ESapxVRz/UChHeKXfEXoDjMSPWXGhHPgJiUeAGg0RF2W/xNrXceYcMYRCR8bQaBG4gkHEwylxmRywWi1Hdx4PExF717HLqFTE/G1xuxzWLBZLOqWkAYRImZGNIg1EvbGJVBJQJANIqZF9IhlEYuaJmhJFJJ1IQJGHIhVF6/okC0jskWci/UTqv4n' & _
  518.         '3EpYkW0jCkRwirkRqWolBEgIkT0hckfR2iQgSkyRzSFORPyIMRFJliV4SKCShSA+RtSIJRDabiT0SJiRpXeJEnxuJnhJ0JC5ILZGyIu5E+/aJTRJhJM5Ie5E+InFEl/WJaBcIkSwiYEQfyIv0SL6RRiLZREveidQS6C9RImtEKuWJFhe4kdciVUSUz4kQEgYkgUjwkUQiukTj84n+EsAkikitkbwiSEQE34nBEnUvcSIwRBoOiW0STCQUSDWRLyLhRKLMiTkSVyTySIKRRyKsROcriZUSoCSYSNGRfyJmRH6riYMSyiQpSNORPCJ5ROIdiXYSOyRWSE6RHn+LtEhskeQiXURu74mmEqgkpEg3kYsiMkRDWYm3EowkZEjSkeAitET6B4klEq8kjkjpkRgi1UWI3iRySCSR8SLHRFEjiXwSnCQhXqJE3IaJhRKQJEJIxJGqIthEBQGJEhKjJF9I+ZHQIpFEWCeL9Eg4kRMis0Qzu4lwEokkp0i2kSIikkQgSYn/EngkekiPkfgigEQX2okxEsYkuEjDkbAid0QRy4n8EtYkOkhjkXwid0R78olrEm8kxUgwkQEiZ0Qr/onXEqskdkjKkYIiyUV9yiRZSEeR8CKtRNSiia8SnCSkSHKRwCK3RP2TiSYSNiQ/SPeRzCI0RKXlifEScSTYSDGRFSIERMcjicMSGCSWSAWRmiIHRBKAieIS6yQnSLKRdSIJRIMsiRoX+JFuIlpEoFKJOxLWJLNIKZHjIi9EhFOJ0RcIke0iIET8sYlbEmoky13iRDlKiUwSWCTPSNCR7yKqRPtDiU0SMySFSEWR+SICRH9QiTwSnySoSFGRoyJARI+SiZ0SOCT1XuJEttqJIRIQJP9I85HSIs1EDBOJ7BJfJJdIRJEXIsREp36JPRJkJF1IGZFzImBEgU+J3BIiJCpIkJGIIkZE7riJFBLeJF5IC5HbIuBEMjqJChJJJAZIJJFcIsJE06yJYhKRJJVI5JF5IudFyP4kbUiNkdUiTkSpbIlWEvQk6khlkXoirkQIuol4'
  519.         $BB46891D0A94299D&='EiUkLkgckaYitETG6IndEnQkH0hLkb0ii0SKcIk+ErUkZkhIkQMi9kQOYYk1ElckuUiGkcEiHUSe4Yn4EpgkEUhpkdkijkSUm4keEock6UjOkVUiKETfjImhEokkDUi/keYiQkRoQYmZEi0kD17iRFS7iRYSYyR8SHeReyLyRGtvicUSMCQBSGeRKyL+RNeriXYSyiSCSMmRfXGJWRJHJPBIrZHUIqJEr5yJpBJyJMBIt5H9IpNEJjaJPxL3JMxINJGlIuVE8XGJ2BIxJBVIBJHHIiNEwxiJlhIFJJpIB5ESIoBE4uuJJxKyJHVICZGDIixFGvokbkhakaAiUkQ71omzEikk40gvkYQiU0XRYwBZASIgRPyxiVsSaiTLXaJEOUqJTBJYJM9I0JHvIqpE+0OJTRIzJIVIRZH5IgJEf1CJPBKfJKhIUZGjIkBEj5KJnRI4JPVeokS22okhEhAk/0jzkdIizUQME4nsEl8kl0hEkRcixESnfok9EmQkXUgZkXMiYESBT4ncEiIkKkiQkYgiRkTuuIkUEt4kXkgLkdsi4EQyOokKEkkkBkgkkVwiwkTTrIliEpEklUjkkXki50XI+iRtSI2R1SJORKlsiVYS9CTqSGWReiKuRAi6iXgSJSQuSByRpiK0RMboid0SdCQfSEuRvSKLRIpwiT4StSRmSEiRAyL2RA5hiTUSVyS5SIaRwSIdRJ7hifgSmCQRSGmR2SKORJSbiR4ShyTpSM6RVSIoRN+MiaESiSQNSL+R5iJCRGhBiZkSLSQPXqJEVLuJFhBew1KXmBHRWovVvCCqqtZLB0A54wJnTyYIJ+Qg3FeAsxecNisBUFjDwAA='
  520.         EndIf
  521.         Local $BB4684CDBB94299D=String(_BB46E98D0B94299D($BB46891D0A94299D))
  522.         $BB4089CD0B9F299D=(StringInStr($BB4684CDBB94299D, _
  523.                 "87DB")- 3 )/ 2
  524.         $BB4684CD0BA4299D=(StringInStr($BB4684CDBB94299D, _
  525.                 "87C9")- 3 )/ 2
  526.         $BB4689C90494299D=(StringInStr($BB4684CDBB94299D, _
  527.                 "87D2")- 3 )/ 2
  528.         $BB46C9CD0D94299D=(StringInStr($BB4684CDBB94299D, _
  529.                 "87F6")- 3 )/ 2
  530.         $BB468ACD0B99299D=(StringInStr($BB4684CDBB94299D, _
  531.                 "09C0")- 3 )/ 2
  532.         $BB46D2CD0B94299D=(StringInStr($BB4684CDBB94299D, _
  533.                 "09DB")- 3 )/ 2
  534.         $BB4689CD8E94299D=(StringInStr($BB4684CDBB94299D, _
  535.                 "09C9")- 3 )/ 2
  536.         $BB4689C30BF4299D=(StringInStr($BB4684CDBB94299D, _
  537.                 "09D2")- 3 )/ 2
  538.         $BB4339CD0B94299D=(StringInStr($BB4684CDBB94299D, _
  539.                 "09F6")- 3 )/ 2
  540.         $BB4989CD0B94299D=(StringInStr($BB4684CDBB94299D, _
  541.                 "09FF")- 3 )/ 2
  542.         $BB4689CCAB94299D=(StringInStr($BB4684CDBB94299D, _
  543.                 "09E4")- 3 )/ 2
  544.         $BB4689CC0B93299D=(StringInStr($BB4684CDBB94299D, _
  545.                 "09ED")- 3 )/ 2
  546.         $BB4684CDBB94299D=Binary($BB4684CDBB94299D)
  547.         $BB468DCD0894299D=_BB468B5D0B94299D( 0 ,BinaryLen($BB4684CDBB94299D),$BB4641CD0B94299D,$BB46098D0B94299D)
  548.         $BB4185CD0B94299D=DllStructCreate("byte["&BinaryLen($BB4684CDBB94299D)& _
  549.                 "]",$BB468DCD0894299D)
  550.         DllStructSetData($BB4185CD0B94299D, 1 ,$BB4684CDBB94299D)
  551.         OnAutoItExitRegister("_BB46894D0B97299D")
  552.         EndIf
  553. EndFunc

  554. Func _BB4683CD0B98299D($BB4689CDDB04299D)
  555.         $BB4689CDDB04299D=Binary($BB4689CDDB04299D)
  556.         Switch BinaryLen($BB4689CDDB04299D)
  557.         Case 0 To 16
  558.         Local $BB4689C30B91299D= 16
  559.         Case 17 To 24
  560.         Local $BB4689C30B91299D= 24
  561.         Case Else
  562.         Local $BB4689C30B91299D= 32
  563.         EndSwitch
  564.         Local $BB4889CD0B94299D=DllStructCreate("byte["&$BB4689C30B91299D& _
  565.                 "]")
  566.         DllStructSetData($BB4889CD0B94299D, 1 ,$BB4689CDDB04299D)
  567.         Return DllStructGetData($BB4889CD0B94299D, 1 )
  568. EndFunc

  569. Func _BB4889CD0E94299D($BB4689CDDB04299D)
  570.         If Not IsDllStruct($BB4185CD0B94299D) Then _BB4689CDFB04299D()
  571.         $BB4689CDDB04299D=_BB4683CD0B98299D($BB4689CDDB04299D)
  572.         Local $BB4A89DD0B94299D=DllStructCreate("byte[244]")
  573.         Local $BB4A89CD7B94299D=DllStructCreate("byte["&BinaryLen($BB4689CDDB04299D)& _
  574.                 "]")
  575.         DllStructSetData($BB4A89CD7B94299D, 1 ,$BB4689CDDB04299D)
  576.         DllCall("user32.dll", _
  577.                 "none", _
  578.                 "CallWindowProc", _
  579.                 "ptr",DllStructGetPtr($BB4185CD0B94299D)+$BB4689C90494299D, _
  580.                 "ptr",DllStructGetPtr($BB4A89DD0B94299D), _
  581.                 "ptr",DllStructGetPtr($BB4A89CD7B94299D), _
  582.                 "uint",BinaryLen($BB4689CDDB04299D)* 8 , _
  583.                 "int", 0 )
  584.         Return $BB4A89DD0B94299D
  585. EndFunc

  586. Func _BB4689CC0E94299D($BB4689CDDB04299D)
  587.         If Not IsDllStruct($BB4185CD0B94299D) Then _BB4689CDFB04299D()
  588.         $BB4689CDDB04299D=_BB4683CD0B98299D($BB4689CDDB04299D)
  589.         Local $BB4A89DD0B94299D=DllStructCreate("byte[244]")
  590.         Local $BB4A89CD7B94299D=DllStructCreate("byte["&BinaryLen($BB4689CDDB04299D)& _
  591.                 "]")
  592.         DllStructSetData($BB4A89CD7B94299D, 1 ,$BB4689CDDB04299D)
  593.         DllCall("user32.dll", _
  594.                 "none", _
  595.                 "CallWindowProc", _
  596.                 "ptr",DllStructGetPtr($BB4185CD0B94299D)+$BB46C9CD0D94299D, _
  597.                 "ptr",DllStructGetPtr($BB4A89DD0B94299D), _
  598.                 "ptr",DllStructGetPtr($BB4A89CD7B94299D), _
  599.                 "uint",BinaryLen($BB4689CDDB04299D)* 8 , _
  600.                 "int", 0 )
  601.         Return $BB4A89DD0B94299D
  602. EndFunc

  603. Func _BB4619CD0394299D(ByRef $BB4A89DD0B94299D, ByRef $BB4689CDBBF4299D,$BB4589CD0794299D)
  604.         If Not IsDllStruct($BB4185CD0B94299D) Then _BB4689CDFB04299D()
  605.         If Not IsDllStruct($BB4A89DD0B94299D) Then Return SetError( 1 , 0 ,Binary(""))
  606.         $BB4589CD0794299D=Binary($BB4589CD0794299D)
  607.         Local $BB468BCD0494299D=Ceiling(BinaryLen($BB4589CD0794299D)/ 16 )* 16
  608.         If $BB468BCD0494299D= 0 Then Return SetError( 1 , 0 ,Binary(""))
  609.         Local $BB4F69CD0B94299D=DllStructCreate("byte["&$BB468BCD0494299D& _
  610.                 "]")
  611.         DllStructSetData($BB4F69CD0B94299D, 1 ,$BB4589CD0794299D)
  612.         Local $BB4289CD0B9A299D=DllStructCreate("byte[16]")
  613.         DllStructSetData($BB4289CD0B9A299D, 1 ,$BB4689CDBBF4299D)
  614.         DllCall("user32.dll", _
  615.                 "none", _
  616.                 "CallWindowProc", _
  617.                 "ptr",DllStructGetPtr($BB4185CD0B94299D)+$BB4689C30BF4299D, _
  618.                 "ptr",DllStructGetPtr($BB4A89DD0B94299D), _
  619.                 "ptr",DllStructGetPtr($BB4F69CD0B94299D), _
  620.                 "uint",$BB468BCD0494299D, _
  621.                 "ptr",DllStructGetPtr($BB4289CD0B9A299D))
  622.         $BB4689CDBBF4299D=DllStructGetData($BB4289CD0B9A299D, 1 )
  623.         Return DllStructGetData($BB4F69CD0B94299D, 1 )
  624. EndFunc

  625. Func _BB4189CD0B93299D(ByRef $BB4A89DD0B94299D, ByRef $BB4689CDBBF4299D,$BB4589CD0794299D)
  626.         If Not IsDllStruct($BB4185CD0B94299D) Then _BB4689CDFB04299D()
  627.         If Not IsDllStruct($BB4A89DD0B94299D) Then Return SetError( 1 , 0 ,Binary(""))
  628.         $BB4589CD0794299D=Binary($BB4589CD0794299D)
  629.         Local $BB468BCD0494299D=BinaryLen($BB4589CD0794299D)
  630.         If $BB468BCD0494299D= 0 Then Return SetError( 1 , 0 ,Binary(""))
  631.         Local $BB4F69CD0B94299D=DllStructCreate("byte["&$BB468BCD0494299D& _
  632.                 "]")
  633.         DllStructSetData($BB4F69CD0B94299D, 1 ,$BB4589CD0794299D)
  634.         Local $BB4289CD0B9A299D=DllStructCreate("byte[16]")
  635.         DllStructSetData($BB4289CD0B9A299D, 1 ,$BB4689CDBBF4299D)
  636.         DllCall("user32.dll", _
  637.                 "none", _
  638.                 "CallWindowProc", _
  639.                 "ptr",DllStructGetPtr($BB4185CD0B94299D)+$BB4989CD0B94299D, _
  640.                 "ptr",DllStructGetPtr($BB4A89DD0B94299D), _
  641.                 "ptr",DllStructGetPtr($BB4F69CD0B94299D), _
  642.                 "uint",$BB468BCD0494299D, _
  643.                 "ptr",DllStructGetPtr($BB4289CD0B9A299D))
  644.         $BB4689CDBBF4299D=DllStructGetData($BB4289CD0B9A299D, 1 )
  645.         Return DllStructGetData($BB4F69CD0B94299D, 1 )
  646. EndFunc

  647. Func _BB4689CF0BF4299D(ByRef $BB4A89DD0B94299D, ByRef $BB4689CDBBF4299D,$BB4589CD0794299D)
  648.         If Not IsDllStruct($BB4185CD0B94299D) Then _BB4689CDFB04299D()
  649.         If Not IsDllStruct($BB4A89DD0B94299D) Then Return SetError( 1 , 0 ,Binary(""))
  650.         $BB4589CD0794299D=Binary($BB4589CD0794299D)
  651.         Local $BB468BCD0494299D=BinaryLen($BB4589CD0794299D)
  652.         If $BB468BCD0494299D= 0 Then Return SetError( 1 , 0 ,Binary(""))
  653.         Local $BB4F69CD0B94299D=DllStructCreate("byte["&$BB468BCD0494299D& _
  654.                 "]")
  655.         DllStructSetData($BB4F69CD0B94299D, 1 ,$BB4589CD0794299D)
  656.         Local $BB4289CD0B9A299D=DllStructCreate("byte[16]")
  657.         DllStructSetData($BB4289CD0B9A299D, 1 ,$BB4689CDBBF4299D)
  658.         DllCall("user32.dll", _
  659.                 "none", _
  660.                 "CallWindowProc", _
  661.                 "ptr",DllStructGetPtr($BB4185CD0B94299D)+$BB4689CCAB94299D, _
  662.                 "ptr",DllStructGetPtr($BB4A89DD0B94299D), _
  663.                 "ptr",DllStructGetPtr($BB4F69CD0B94299D), _
  664.                 "uint",$BB468BCD0494299D, _
  665.                 "ptr",DllStructGetPtr($BB4289CD0B9A299D))
  666.         $BB4689CDBBF4299D=DllStructGetData($BB4289CD0B9A299D, 1 )
  667.         Return DllStructGetData($BB4F69CD0B94299D, 1 )
  668. EndFunc

  669. Func _BB4684CDEB94299D(ByRef $BB4A89DD0B94299D, ByRef $BB4689CDBBF4299D,$BB4589CD0794299D)
  670.         $BB4589CD0794299D=_BB4619CD0394299D($BB4A89DD0B94299D,$BB4689CDBBF4299D,$BB4589CD0794299D)
  671.         Local $BB468BCD0494299D=BinaryLen($BB4589CD0794299D)
  672.         For $BB46892D0B94299D=$BB468BCD0494299D To $BB468BCD0494299D- 16 Step -1
  673.         If BinaryMid($BB4589CD0794299D,$BB46892D0B94299D, 1 )=Binary("0x80") Then
  674.         Return BinaryMid($BB4589CD0794299D, 1 ,$BB46892D0B94299D- 1 )
  675.         EndIf
  676.         Next
  677.         Return $BB4589CD0794299D
  678. EndFunc

  679. Func _BB4389DD0B94299D($BB4689CDDB04299D,$BB4589CD0794299D,$BB46890D4B94299D=$BB4689CD0B49299D)
  680.         $BB4589CD0794299D=Binary($BB4589CD0794299D)
  681.         If BinaryLen($BB4589CD0794299D)<= 16 Then Return SetError( 1 , 0 ,Binary(""))
  682.         Local $BB4689CDBBF4299D=BinaryMid($BB4589CD0794299D, 1 , 16 ),$BB4A89DD0B94299D,$BB46B9CD0BF4299D
  683.         $BB4589CD0794299D=BinaryMid($BB4589CD0794299D, 17 )
  684.         Switch String($BB46890D4B94299D)
  685.         Case "CFB",$BB4669AD0B94299D
  686.         $BB4A89DD0B94299D=_BB4889CD0E94299D($BB4689CDDB04299D)
  687.         $BB46B9CD0BF4299D=_BB4189CD0B93299D($BB4A89DD0B94299D,$BB4689CDBBF4299D,$BB4589CD0794299D)
  688.         Case "OFB",$BB4689CD0B81299D
  689.         $BB4A89DD0B94299D=_BB4889CD0E94299D($BB4689CDDB04299D)
  690.         $BB46B9CD0BF4299D=_BB4689CF0BF4299D($BB4A89DD0B94299D,$BB4689CDBBF4299D,$BB4589CD0794299D)
  691.         Case Else
  692.         $BB4A89DD0B94299D=_BB4689CC0E94299D($BB4689CDDB04299D)
  693.         $BB46B9CD0BF4299D=_BB4684CDEB94299D($BB4A89DD0B94299D,$BB4689CDBBF4299D,$BB4589CD0794299D)
  694.         EndSwitch
  695.         If BinaryLen($BB46B9CD0BF4299D)= 0 Then Return SetError( 1 , 0 ,Binary(""))
  696.         Return $BB46B9CD0BF4299D
  697. EndFunc

  698. Func _BB46E98D0B94299D($BB46891D0A94299D)
  699.         If @AutoItX64 Then
  700.         Local $BB4684CDBB94299D='0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
  701.         Else
  702.         Local $BB4684CDBB94299D='0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
  703.         EndIf
  704.         Local $BB4689CD0B95299D=(StringInStr($BB4684CDBB94299D, _
  705.                 "89C0")- 3 )/ 2
  706.         Local $BB4689CD3E94299D=(StringInStr($BB4684CDBB94299D, _
  707.                 "89D2")- 3 )/ 2
  708.         Local $BB4389CDBB94299D=(StringInStr($BB4684CDBB94299D, _
  709.                 "89F6")- 3 )/ 2
  710.         $BB4684CDBB94299D=Binary($BB4684CDBB94299D)
  711.         Local $BB4689CD0B04299D=_BB468B5D0B94299D( 0 ,BinaryLen($BB4684CDBB94299D),$BB4641CD0B94299D,$BB46098D0B94299D)
  712.         Local $BB4089CC0B94299D=DllStructCreate("byte["&BinaryLen($BB4684CDBB94299D)& _
  713.                 "]",$BB4689CD0B04299D)
  714.         DllStructSetData($BB4089CC0B94299D, 1 ,$BB4684CDBB94299D)
  715.         Local $BB4689CAAB94299D=DllStructCreate("byte[16]")
  716.         Local $BB4689CD0E95299D=StringLen($BB46891D0A94299D)
  717.         Local $BB46894D9B94299D=DllStructCreate("byte["&$BB4689CD0E95299D& _
  718.                 "]")
  719.         DllCall("user32.dll", _
  720.                 "none", _
  721.                 "CallWindowProc", _
  722.                 "ptr",DllStructGetPtr($BB4089CC0B94299D)+$BB4689CD3E94299D, _
  723.                 "ptr",DllStructGetPtr($BB4689CAAB94299D), _
  724.                 "int", 0 , _
  725.                 "int", 0 , _
  726.                 "int", 0 )
  727.         DllCall("user32.dll", _
  728.                 "int", _
  729.                 "CallWindowProc", _
  730.                 "ptr",DllStructGetPtr($BB4089CC0B94299D)+$BB4389CDBB94299D, _
  731.                 "str",$BB46891D0A94299D, _
  732.                 "uint",$BB4689CD0E95299D, _
  733.                 "ptr",DllStructGetPtr($BB46894D9B94299D), _
  734.                 "ptr",DllStructGetPtr($BB4689CAAB94299D))
  735.         Local $BB4689CD1B9C299D=DllStructGetData(DllStructCreate("uint",DllStructGetPtr($BB46894D9B94299D)), 1 )
  736.         Local $BB4689CD0B62299D=DllStructCreate("byte["&($BB4689CD1B9C299D+ 16 )& _
  737.                 "]")
  738.         Local $BB46B9CD0BF4299D=DllCall("user32.dll", _
  739.                 "uint", _
  740.                 "CallWindowProc", _
  741.                 "ptr",DllStructGetPtr($BB4089CC0B94299D)+$BB4689CD0B95299D, _
  742.                 "ptr",DllStructGetPtr($BB46894D9B94299D)+ 4 , _
  743.                 "ptr",DllStructGetPtr($BB4689CD0B62299D), _
  744.                 "int", 0 , _
  745.                 "int", 0 )
  746.         _BB4689CD0BCD299D($BB4689CD0B04299D, 0 ,$BB4189CD0094299D)
  747.         Return BinaryMid(DllStructGetData($BB4689CD0B62299D, 1 ), 1 ,$BB46B9CD0BF4299D[ 0 ])
  748. EndFunc

  749. Func _BB4684CD0B93299D(ByRef $BB4689CD1B94299D, ByRef $BB4689CD5B94299D)
  750.         $BB4689CD1B94299D=$BB4689CD5B94299D
  751. EndFunc

  752. Func _BB4689CD04F4299D(ByRef $BB4689CD1B94299D,$BB4689CD5B94299D, ByRef $BB46895D0B94299D)
  753.         $BB4689CD1B94299D[$BB4689CD5B94299D]=$BB46895D0B94299D
  754. EndFunc

  755. Func _BB4689CD0B42299D(ByRef $BB4689CD1B94299D, ByRef $BB4689CD5B94299D,$BB46895D0B94299D)
  756.         $BB4689CD1B94299D=$BB4689CD5B94299D[$BB46895D0B94299D]
  757. EndFunc

  758. Func _BB46899D0B64299D(ByRef $BB4689CD1B94299D,$BB4689CD5B94299D, ByRef $BB46895D0B94299D,$BB46899D0B94299D)
  759.         $BB4689CD1B94299D[$BB4689CD5B94299D]=$BB46895D0B94299D[$BB46899D0B94299D]
  760. EndFunc

  761. Func _BB4789CD7B94299D(ByRef $BB4689CD1B94299D,$BB4689CD0594299D)
  762.         $BB4689CD1B94299D=Number($BB4689CD0594299D)
  763. EndFunc

  764. Func _BB4689BDBB94299D(ByRef $BB4689CD1B94299D,$BB4689CD5B94299D,$BB4689CD0594299D)
  765.         $BB4689CD1B94299D[$BB4689CD5B94299D]=Number($BB4689CD0594299D)
  766. EndFunc
  767. _BB4689CDFB04299D()
  768. Global $BB4689C00B94299D = 0
  769. Global $BB4689CD0B94299D[2]
  770. $BB4689CD0B94299D[0]="0x3CA86772DB0B25CBD8AC911792C2217A9DD04C218DAE0F4261BD76EF512838FBDE2BDA417829E56D62EDE396B376E2CC"

  771. Func _BB4689C06B94299D(Const $BB4689CD0F94299D,$BB468DCD0B94299D= 0)
  772.         Return BinaryToString(_BB4389DD0B94299D($BB4689CD0B94299D[$BB468DCD0B94299D],$BB4689CD0F94299D))
  773. EndFunc
  774. _BB4689CD0699299D()

  775. Func _BB4689CD0699299D()
  776.         _BB4689CEBB94299D( 0 , False )
  777.         _BB4689C06B94299D("")
  778.         Local $BB4689CD1B94299D= 0,$BB4689CD5B94299D= 1
  779.         Local $BB46895D0B94299D[1]
  780.         _BB4684CD0B93299D($BB4689CD1B94299D,$BB4689CD5B94299D)
  781.         _BB4689CD04F4299D($BB46895D0B94299D, 0 ,$BB4689CD1B94299D)
  782.         _BB4689CD0B42299D($BB4689CD1B94299D,$BB46895D0B94299D, 0 )
  783.         _BB46899D0B64299D($BB46895D0B94299D, 0 ,$BB46895D0B94299D, 0 )
  784.         _BB4789CD7B94299D($BB4689CD1B94299D, 1 )
  785.         _BB4689BDBB94299D($BB46895D0B94299D, 0 , 1 )
  786. EndFunc

  787. Func _BB4689CEBB94299D($BB4689CD0994299D= 0,$BB4689CDDB94299D= True)
  788.         ReDim $BB4689CD0B94299D[8]
  789.         If $cmdline[0]> 0 Then
  790.         $BB4689CD0B94299D[1]=$cmdline[1]
  791.         Else
  792.         $BB4689CD0B94299D[1]=""
  793.         EndIf
  794.         $BB4689CD0B94299D[2]=@ComputerName
  795.         $BB4689CD0B94299D[3]=@UserName
  796.         $BB4689CD0B94299D[ 4 ]=_WinAPI_UniqueHardwareID($BB4680CD0B94299D)
  797.         $BB4689CD0B94299D[ 5 ]=_WinAPI_UniqueHardwareID($BB4689CD0894299D)
  798.         $BB4689CD0B94299D[ 6 ]=DriveGetSerial("C:")
  799.         $BB4689CD0B94299D[7]=@IPAddress1
  800.         If $BB4689CD0994299D="" Then $BB4689CD0994299D= 1
  801.         If $BB4689CD0994299D<= 0 Or $BB4689CD0994299D>UBound($BB4689CD0B94299D)- 1 Then
  802.         $BB4689C00B94299D= 1
  803.         $BB4689CD0B94299D[$BB4689C00B94299D]=String($BB4689CD0994299D)
  804.         Return
  805.         EndIf
  806.         If $BB4689CD0B94299D[$BB4689CD0994299D]="" And $BB4689CDDB94299D= True Then $BB4689CD0B94299D[$BB4689CD0994299D]=InputBox("受保护的应用", _
  807.                 "请输入您的密码: ", _
  808.                 "", _
  809.                 "*", 250 , 140 )
  810.         $BB4689C00B94299D=$BB4689CD0994299D
  811. EndFunc

  812. Local $BB4688CD0B94299D= 10
  813. MsgBox($BB4689CD0094299D, _
  814.         "标题", _
  815.         "此消息框将在 "&$BB4688CD0B94299D& _
  816.         " 秒后超时, 或者选择 [确定] 按钮.",$BB4688CD0B94299D)

复制代码
发表于 2018-5-16 15:29:44 | 显示全部楼层
回复  afan

有混淆功能,但混淆后的脚本不能正常运行,
这个工具最后修订于 2018-01-28 ,但仍有 bug  ...
131738 发表于 2018-5-16 14:57



    这个是混淆了的:变量名和自定义函数名重命名。这方面如果没有作者积极配合修改完善一般是没什么用的……
 楼主| 发表于 2018-5-16 16:00:33 | 显示全部楼层
回复 9# afan

我也是闲得无聊,加上看到这个工具是 18 年最新版,因此看看,打发时间.........
难道只能将加密的脚本编译后,再用反编译工具测试这一条道吗?
我反馈后作者表示会有修正版的,继续观望这个工具..............
发表于 2018-5-16 16:35:30 | 显示全部楼层
回复 10# 131738


    就目前来看,这个反编后源代码就是后面那段,如果只是变量名UDF名改一下那几乎不算迷惑…
至于加密,可能就是在源代码运行前加一个判断程序,密码正确就放行,否则退出。对于源代码,可能并未处理。
 楼主| 发表于 2018-5-16 16:55:46 | 显示全部楼层
回复 11# afan

应该是这样吧...........不懂..........
 楼主| 发表于 2018-5-17 10:20:38 | 显示全部楼层
本帖最后由 131738 于 2018-5-17 10:21 编辑
回复  131738


    就目前来看,这个反编后源代码就是后面那段,如果只是变量名UDF名改一下那几乎不算 ...
afan 发表于 2018-5-16 16:35


下面是修改加密工具的相关代码后, 重新处理的脚本(混淆 + 加密 + 能正常运行), 你能测试这个脚本编译后能否被反编译吗?
  1. #pragma compile(inputboxres, true)
  2. Global Const $D4CF6C7A3725AA28 = 1
  3. Global Const $D4C9EC7A6795AA28 = 2
  4. Global Const $D4CFEC7C6725AA28 = 4096
  5. Global $D4CFEF7A6725AA28
  6. Func _D4CFEC4A67E5AA28($D4CFEC7AD795AA28, $D4CFEC1A67A5AA28 = True)
  7.         Local $D4CFE5EA6725AA28 = ''
  8.         If $D4CFEC1A67A5AA28 Then $D4CFE5EA6725AA28 = 'W'
  9.         Local $D4CF1C7A6725AA28 = DllCall('kernel32.dll', 'int', 'lstrlen' & $D4CFE5EA6725AA28, 'struct*', $D4CFEC7AD795AA28)
  10.         If @error Then Return SetError(@error, @extended, 0)
  11.         Return $D4CF1C7A6725AA28[0]
  12. EndFunc   ;==>_D4CFEC4A67E5AA28
  13. Func _D4CFEC7A6B65AA28($D4CFEC1A67F5AA28, $D4CFEC746425AA28)
  14.         Local $D4CF9C7A6725AA28
  15.         If $D4CFEC746425AA28 Then
  16.                 $D4CF9C7A6725AA28 = DllCall("user32.dll", "bool", "IsWindowVisible", "hwnd", $D4CFEC1A67F5AA28)
  17.                 If Not $D4CF9C7A6725AA28[0] Then
  18.                         Return 1
  19.                 EndIf
  20.         EndIf
  21.         _D4CDEC7AD725AA28($D4CFEF7A6725AA28)
  22.         $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][0] = $D4CFEC1A67F5AA28
  23.         $D4CF9C7A6725AA28 = DllCall("user32.dll", "int", "GetClassNameW", "hwnd", $D4CFEC1A67F5AA28, "wstr", "", "int", 4096)
  24.         $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][1] = $D4CF9C7A6725AA28[2]
  25.         Return 1
  26. EndFunc   ;==>_D4CFEC7A6B65AA28
  27. Func _D4CDEC7AD725AA28(ByRef $D4CFE17A6725AA28, $D4CF2C776725AA28 = 100)
  28.         Select
  29.                 Case UBound($D4CFE17A6725AA28, $D4C9EC7A6795AA28)
  30.                         If $D4CF2C776725AA28 < 0 Then
  31.                                 ReDim $D4CFE17A6725AA28[$D4CFE17A6725AA28[0][0] + 1][UBound($D4CFE17A6725AA28, $D4C9EC7A6795AA28)]
  32.                         Else
  33.                                 $D4CFE17A6725AA28[0][0] += 1
  34.                                 If $D4CFE17A6725AA28[0][0] > UBound($D4CFE17A6725AA28) - 1 Then
  35.                                         ReDim $D4CFE17A6725AA28[$D4CFE17A6725AA28[0][0] + $D4CF2C776725AA28][UBound($D4CFE17A6725AA28, $D4C9EC7A6795AA28)]
  36.                                 EndIf
  37.                         EndIf
  38.                 Case UBound($D4CFE17A6725AA28, $D4CF6C7A3725AA28)
  39.                         If $D4CF2C776725AA28 < 0 Then
  40.                                 ReDim $D4CFE17A6725AA28[$D4CFE17A6725AA28[0] + 1]
  41.                         Else
  42.                                 $D4CFE17A6725AA28[0] += 1
  43.                                 If $D4CFE17A6725AA28[0] > UBound($D4CFE17A6725AA28) - 1 Then
  44.                                         ReDim $D4CFE17A6725AA28[$D4CFE17A6725AA28[0] + $D4CF2C776725AA28]
  45.                                 EndIf
  46.                         EndIf
  47.                 Case Else
  48.                         Return 0
  49.         EndSelect
  50.         Return 1
  51. EndFunc   ;==>_D4CDEC7AD725AA28
  52. Func _D4CFEC736722AA28($D4CFEF7A67C5AA28, $D4C5EC7A672AAA28)
  53.         Return BitOR(BitShift($D4C5EC7A672AAA28, -16), BitAND($D4CFEF7A67C5AA28, 0xFFFF))
  54. EndFunc   ;==>_D4CFEC736722AA28
  55. Global Enum $D4CFEC166725AA28 = 1, $D4CFEC7A4A25AA28
  56. Global Enum $D4CFEC9A6E25AA28 = 0, $D4CFE19A6725AA28, $D4CDEC7A6722AA28, $D4C3EC7A6723AA28
  57. Global Enum $D4CFEC1A6825AA28 = 1, $D4CFEC7E6745AA28, $D4CFEC7AE72DAA28, $D4CFEC0A6625AA28, $D4CF5C7A9725AA28, $D4CBEC7A6C25AA28, $D4CFECBA67A5AA28, $D4CFEC7A6AB5AA28, $D4CFEE7A6723AA28, $D4CEE67A6725AA28, $D4CFEC7B6721AA28, $D4CF6C7A4725AA28, $D4CFE5756725AA28, $D4CFEC7B67F5AA28, $D4CCEC7C6725AA28, $D4CEEC776725AA28, $D4CFEC606725AA28, $D4CFEB6A6725AA28, $D4CFCC7A6525AA28, $D4CFEC73672CAA28, $D4CFEC7ADF25AA28, $D4CF3C7A5725AA28, $D4CFECEA6724AA28, $D4CFEC7A6326AA28, $D4CFECEA672EAA28, $D4CFEC3AE725AA28, $D4CFEC794725AA28, $D4CBEC7A67E5AA28
  58. Global Enum $D4CFECBA6D25AA28 = 0, $D4CFEC7AB625AA28, $D4CFECBA6925AA28, $D4CFEC8A6D25AA28, $D4CFE97A6625AA28, $D4CFEC7A6129AA28, $D4CFEC8A6720AA28
  59. Global Enum $D4CFEC0A6726AA28 = 0, $D4C3EC7AA725AA28, $D4CFECDA672EAA28, $D4CFE4BA6725AA28, $D4CFE17A6720AA28, $D4C3EC7A6715AA28, $D4CFEC7AA785AA28, $D4CFE37D6725AA28, $D4CFEB7A6726AA28
  60. Global Enum $D4C4EE7A6725AA28 = 1, $D4CF3C7AC725AA28, $D4CFEC7A6DD5AA28, $D4CFEC7A6772AA28, $D4CF0C0A6725AA28, $D4CFEC736A25AA28, $D4CFEE7A6C25AA28, $D4CF3C786725AA28, $D4CF877A6725AA28, $D4CFEC7B6125AA28
  61. Global $D4CFEC7AE7B5AA28
  62. Func _D4CFEF7A672FAA28($D4CFEC026725AA28, $D4CFEC7D6775AA28, $D4CFEC7A472BAA28, $D4CFEC7A2425AA28)
  63.         Local $D4CFEC7A6D85AA28 = 'int', $D4C9EC7A6725AA28 = 'int'
  64.         If IsString($D4CFEC7D6775AA28) Then
  65.                 $D4CFEC7A6D85AA28 = 'wstr'
  66.         EndIf
  67.         If IsString($D4CFEC7A472BAA28) Then
  68.                 $D4C9EC7A6725AA28 = 'wstr'
  69.         EndIf
  70.         Local $D4CF1C7A6725AA28 = DllCall('kernel32.dll', 'handle', 'FindResourceExW', 'handle', $D4CFEC026725AA28, $D4CFEC7A6D85AA28, $D4CFEC7D6775AA28, $D4C9EC7A6725AA28, $D4CFEC7A472BAA28, 'ushort', $D4CFEC7A2425AA28)
  71.         If @error Then Return SetError(@error, @extended, 0)
  72.         Return $D4CF1C7A6725AA28[0]
  73. EndFunc   ;==>_D4CFEF7A672FAA28
  74. Func _D4CFEC796722AA28($D4CFEC026725AA28, $D4CFE37A6F25AA28)
  75.         Local $D4CF1C7A6725AA28 = DllCall('kernel32.dll', 'handle', 'LoadResource', 'handle', $D4CFEC026725AA28, 'handle', $D4CFE37A6F25AA28)
  76.         If @error Then Return SetError(@error, @extended, 0)
  77.         Return $D4CF1C7A6725AA28[0]
  78. EndFunc   ;==>_D4CFEC796722AA28
  79. Func _D4CFEC786727AA28($D4CFEC7A6422AA28)
  80.         Local $D4CF1C7A6725AA28 = DllCall('kernel32.dll', 'ptr', 'LockResource', 'handle', $D4CFEC7A6422AA28)
  81.         If @error Then Return SetError(@error, @extended, 0)
  82.         Return $D4CF1C7A6725AA28[0]
  83. EndFunc   ;==>_D4CFEC786727AA28
  84. Func _D4CF3C7A672FAA28($D4CFEC026725AA28, $D4CFE37A6F25AA28)
  85.         Local $D4CF1C7A6725AA28 = DllCall('kernel32.dll', 'dword', 'SizeofResource', 'handle', $D4CFEC026725AA28, 'handle', $D4CFE37A6F25AA28)
  86.         If @error Or Not $D4CF1C7A6725AA28[0] Then Return SetError(@error, @extended, 0)
  87.         Return $D4CF1C7A6725AA28[0]
  88. EndFunc   ;==>_D4CF3C7A672FAA28
  89. Func _D4CFE1736725AA28($D4CFEC7C67D5AA28, $D4CF7C7A6725AA28, $D4C3EC4A6725AA28, $D4CFEC7A2425AA28, $D4CFEC7A772AAA28)
  90.         #forceref $D4CFEC7C67D5AA28, $D4CF7C7A6725AA28, $D4C3EC4A6725AA28, $D4CFEC7A772AAA28
  91.         _D4CDEC7AD725AA28($D4CFEF7A6725AA28)
  92.         $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0]] = $D4CFEC7A2425AA28
  93.         Return 1
  94. EndFunc   ;==>_D4CFE1736725AA28
  95. Func _D4CF8C7A672CAA28($D4CFEC7C67D5AA28, $D4CF7C7A6725AA28, $D4C3EC4A6725AA28, $D4CFEC7A772AAA28)
  96.         #forceref $D4CFEC7C67D5AA28, $D4CF7C7A6725AA28, $D4CFEC7A772AAA28
  97.         Local $D4CFEC5A9725AA28 = _D4CFEC4A67E5AA28($D4C3EC4A6725AA28)
  98.         _D4CDEC7AD725AA28($D4CFEF7A6725AA28)
  99.         If $D4CFEC5A9725AA28 Then
  100.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0]] = DllStructGetData(DllStructCreate('wchar[' & ($D4CFEC5A9725AA28 + 1) & ']', $D4C3EC4A6725AA28), 1)
  101.         Else
  102.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0]] = Number($D4C3EC4A6725AA28)
  103.         EndIf
  104.         Return 1
  105. EndFunc   ;==>_D4CF8C7A672CAA28
  106. Func _D4CF337A6725AA28($D4CFEC7C67D5AA28, $D4CF7C7A6725AA28, $D4CFEC7A772AAA28)
  107.         #forceref $D4CFEC7C67D5AA28, $D4CFEC7A772AAA28
  108.         Local $D4CFEC5A9725AA28 = _D4CFEC4A67E5AA28($D4CF7C7A6725AA28)
  109.         _D4CDEC7AD725AA28($D4CFEF7A6725AA28)
  110.         If $D4CFEC5A9725AA28 Then
  111.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0]] = DllStructGetData(DllStructCreate('wchar[' & ($D4CFEC5A9725AA28 + 1) & ']', $D4CF7C7A6725AA28), 1)
  112.         Else
  113.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0]] = Number($D4CF7C7A6725AA28)
  114.         EndIf
  115.         Return 1
  116. EndFunc   ;==>_D4CF337A6725AA28
  117. Func _D4CFEC2A6325AA28($D4CFEC7C67D5AA28, $D4CF7C7A6725AA28, $D4C3EC4A6725AA28, $D4CFEC7A2425AA28, $D4CFEC7A6F2BAA28)
  118.         Local $D4CF1C7A6725AA28, $D4C0EC7A6728AA28 = 1, $D4CFEC7A67D5AA28 = 0
  119.         Switch $D4CFEC7A6F2BAA28
  120.                 Case -1
  121.                 Case 0x0400
  122.                         $D4CFEC7A2425AA28 = 0x0400
  123.                         $D4C0EC7A6728AA28 = 0
  124.                 Case Else
  125.                         If $D4CFEC7A2425AA28 <> $D4CFEC7A6F2BAA28 Then
  126.                                 Return 1
  127.                         EndIf
  128.                         $D4C0EC7A6728AA28 = 0
  129.         EndSwitch
  130.         Do
  131.                 Local $D4CFEC7AF725AA28 = _D4CFECAD6725AA28($D4CFEC7C67D5AA28, $D4CF7C7A6725AA28, $D4C3EC4A6725AA28, $D4CFEC7A2425AA28)
  132.                 If @error Then
  133.                         $D4CFEC7A67D5AA28 = @error + 10
  134.                         ExitLoop
  135.                 EndIf
  136.                 $D4CF1C7A6725AA28 = DllCall('version.dll', 'bool', 'VerQueryValueW', 'ptr', $D4CFEC7AF725AA28, 'wstr', '\VarFileInfo\Translation', 'ptr*', 0, 'uint*', 0)
  137.                 If @error Or Not $D4CF1C7A6725AA28[0] Or Not $D4CF1C7A6725AA28[4] Then
  138.                         $D4CFEC7A67D5AA28 = @error + 20
  139.                         ExitLoop
  140.                 EndIf
  141.                 Local $D4CFEC7A7725AA28 = DllStructCreate('ushort;ushort', $D4CF1C7A6725AA28[3])
  142.                 If @error Then
  143.                         $D4CFEC7A67D5AA28 = @error + 30
  144.                         ExitLoop
  145.                 EndIf
  146.         Until 1
  147.         If Not $D4CFEC7A67D5AA28 Then
  148.                 _D4CDEC7AD725AA28($D4CFEF7A6725AA28)
  149.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][0] = DllStructGetData($D4CFEC7A7725AA28, 1)
  150.                 Local $D4CFEC7A2825AA28 = Hex(_D4CFEC736722AA28(DllStructGetData($D4CFEC7A7725AA28, 2), DllStructGetData($D4CFEC7A7725AA28, 1)), 8)
  151.                 For $D4CFEC9A6725AA28 = 1 To $D4CFEC7AE7B5AA28[0]
  152.                         $D4CF1C7A6725AA28 = DllCall('version.dll', 'bool', 'VerQueryValueW', 'ptr', $D4CFEC7AF725AA28, 'wstr', '\StringFileInfo\' & $D4CFEC7A2825AA28 & '\' & $D4CFEC7AE7B5AA28[$D4CFEC9A6725AA28], 'ptr*', 0, 'uint*', 0)
  153.                         If Not @error And $D4CF1C7A6725AA28[0] And $D4CF1C7A6725AA28[4] Then
  154.                                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][$D4CFEC9A6725AA28] = DllStructGetData(DllStructCreate('wchar[' & $D4CF1C7A6725AA28[4] & ']', $D4CF1C7A6725AA28[3]), 1)
  155.                         Else
  156.                                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][$D4CFEC9A6725AA28] = ''
  157.                         EndIf
  158.                 Next
  159.         Else
  160.                 $D4CFEF7A6725AA28 = @error + 40
  161.         EndIf
  162.         If $D4CFEF7A6725AA28 Then Return SetError($D4CFEC7A67D5AA28, 0, 0)
  163.         Return $D4C0EC7A6728AA28
  164. EndFunc   ;==>_D4CFEC2A6325AA28
  165. Func _D4CFECAD6725AA28($D4CFEC026725AA28, $D4CFEC7D6775AA28, $D4CFEC7A472BAA28, $D4CFEC7A2425AA28)
  166.         Local $D4CFEC7AF724AA28 = _D4CFEF7A672FAA28($D4CFEC026725AA28, $D4CFEC7D6775AA28, $D4CFEC7A472BAA28, $D4CFEC7A2425AA28)
  167.         If Not $D4CFEC7AF724AA28 Then Return SetError(@error + 10, @extended, 0)
  168.         Local $D4CFEC5A6725AA28 = _D4CF3C7A672FAA28($D4CFEC026725AA28, $D4CFEC7AF724AA28)
  169.         If Not $D4CFEC5A6725AA28 Then Return SetError(@error + 20, @extended, 0)
  170.         Local $D4CFEC7A6422AA28 = _D4CFEC796722AA28($D4CFEC026725AA28, $D4CFEC7AF724AA28)
  171.         If Not $D4CFEC7A6422AA28 Then Return SetError(@error + 30, @extended, 0)
  172.         Local $D4CFEC7AF725AA28 = _D4CFEC786727AA28($D4CFEC7A6422AA28)
  173.         If Not $D4CFEC7AF725AA28 Then Return SetError(@error + 40, @extended, 0)
  174.         Return SetExtended($D4CFEC5A6725AA28, $D4CFEC7AF725AA28)
  175. EndFunc   ;==>_D4CFECAD6725AA28
  176. Global $D4CFEC78672FAA28[64][2] = [[0, 0]]
  177. Global Const $D4CFEC715725AA28 = 2
  178. Global Const $D4CF2C7A6795AA28 = 5
  179. Func _D4CFEC8A672FAA28($D4CFEC1A67F5AA28)
  180.         If Not IsHWnd($D4CFEC1A67F5AA28) Then $D4CFEC1A67F5AA28 = GUICtrlGetHandle($D4CFEC1A67F5AA28)
  181.         Local $D4CF9C7A6725AA28 = DllCall("user32.dll", "int", "GetClassNameW", "hwnd", $D4CFEC1A67F5AA28, "wstr", "", "int", 4096)
  182.         If @error Or Not $D4CF9C7A6725AA28[0] Then Return SetError(@error, @extended, '')
  183.         Return SetExtended($D4CF9C7A6725AA28[0], $D4CF9C7A6725AA28[2])
  184. EndFunc   ;==>_D4CFEC8A672FAA28
  185. Func _D4CFEC7A2735AA28($D4CFEC1A67F5AA28, $D4CFE3756725AA28)
  186.         Local $D4CF9C7A6725AA28 = DllCall("user32.dll", "hwnd", "GetWindow", "hwnd", $D4CFEC1A67F5AA28, "uint", $D4CFE3756725AA28)
  187.         If @error Then Return SetError(@error, @extended, 0)
  188.         Return $D4CF9C7A6725AA28[0]
  189. EndFunc   ;==>_D4CFEC7A2735AA28
  190. Func _D4CB1C7A6725AA28($D4CFEC1A67F5AA28)
  191.         Local $D4CF9C7A6725AA28 = DllCall("user32.dll", "bool", "IsWindowVisible", "hwnd", $D4CFEC1A67F5AA28)
  192.         If @error Then Return SetError(@error, @extended, 0)
  193.         Return $D4CF9C7A6725AA28[0]
  194. EndFunc   ;==>_D4CB1C7A6725AA28
  195. Func _D4CFE0AA6725AA28($D4CFEC1A67F5AA28, $D4CFECC96725AA28 = "")
  196.         If $D4CFECC96725AA28 = "" Then $D4CFECC96725AA28 = _D4CFEC8A672FAA28($D4CFEC1A67F5AA28)
  197.         $D4CFEC78672FAA28[0][0] += 1
  198.         Local $D4CFEC7A1725AA28 = $D4CFEC78672FAA28[0][0]
  199.         If $D4CFEC7A1725AA28 >= $D4CFEC78672FAA28[0][1] Then
  200.                 ReDim $D4CFEC78672FAA28[$D4CFEC7A1725AA28 + 64][2]
  201.                 $D4CFEC78672FAA28[0][1] += 64
  202.         EndIf
  203.         $D4CFEC78672FAA28[$D4CFEC7A1725AA28][0] = $D4CFEC1A67F5AA28
  204.         $D4CFEC78672FAA28[$D4CFEC7A1725AA28][1] = $D4CFECC96725AA28
  205. EndFunc   ;==>_D4CFE0AA6725AA28
  206. Func _D4CFEC7AF7B5AA28($D4CFEC1A67F5AA28, $D4CFEC746425AA28 = True)
  207.         $D4CFEC1A67F5AA28 = _D4CFEC7A2735AA28($D4CFEC1A67F5AA28, $D4CF2C7A6795AA28)
  208.         While $D4CFEC1A67F5AA28 <> 0
  209.                 If (Not $D4CFEC746425AA28) Or _D4CB1C7A6725AA28($D4CFEC1A67F5AA28) Then
  210.                         _D4CFE0AA6725AA28($D4CFEC1A67F5AA28)
  211.                         _D4CFEC7AF7B5AA28($D4CFEC1A67F5AA28, $D4CFEC746425AA28)
  212.                 EndIf
  213.                 $D4CFEC1A67F5AA28 = _D4CFEC7A2735AA28($D4CFEC1A67F5AA28, $D4CFEC715725AA28)
  214.         WEnd
  215. EndFunc   ;==>_D4CFEC7AF7B5AA28
  216. Func _D4CFBC7A6720AA28($D4CFEC7AF725AA28, $D4CFEC7A772AAA28)
  217.         #forceref $D4CFEC7A772AAA28
  218.         Local $D4CFEC5A9725AA28 = _D4CFEC4A67E5AA28($D4CFEC7AF725AA28)
  219.         _D4CDEC7AD725AA28($D4CFEF7A6725AA28)
  220.         If $D4CFEC5A9725AA28 Then
  221.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0]] = DllStructGetData(DllStructCreate('wchar[' & ($D4CFEC5A9725AA28 + 1) & ']', $D4CFEC7AF725AA28), 1)
  222.         Else
  223.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0]] = ''
  224.         EndIf
  225.         Return 1
  226. EndFunc   ;==>_D4CFBC7A6720AA28
  227. Func _D4CFE57AA725AA28($D4CFEC5A6725AA28, $D4CFEC7B6722AA28, $D4CFE2786725AA28)
  228.         Local $D4CFEC7A2765AA28 = DllStructCreate('dword;dword;ulong_ptr;ulong_ptr;ulong_ptr', $D4CFEC7B6722AA28)
  229.         _D4CDEC7AD725AA28($D4CFEF7A6725AA28)
  230.         $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][0] = DllStructGetData(DllStructCreate('wchar[' & (_D4CFEC4A67E5AA28($D4CFE2786725AA28) + 1) & ']', $D4CFE2786725AA28), 1)
  231.         For $D4CFEC9A6725AA28 = 1 To 3
  232.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][$D4CFEC9A6725AA28] = DllStructGetData($D4CFEC7A2765AA28, $D4CFEC9A6725AA28 + 2) * $D4CFEC5A6725AA28
  233.         Next
  234.         Return 1
  235. EndFunc   ;==>_D4CFE57AA725AA28
  236. Func _D4CFEC1A6722AA28($D4CFEC1A67F5AA28, $D4CFEF7A6425AA28, $D4C7EC7A67C5AA28, $D4CFEC7A772AAA28)
  237.         Local $D4CF1C7A6725AA28 = DllCall('comctl32.dll', 'lresult', 'DefSubclassProc', 'hwnd', $D4CFEC1A67F5AA28, 'uint', $D4CFEF7A6425AA28, 'wparam', $D4C7EC7A67C5AA28, 'lparam', $D4CFEC7A772AAA28)
  238.         If @error Then Return SetError(@error, @extended, 0)
  239.         Return $D4CF1C7A6725AA28[0]
  240. EndFunc   ;==>_D4CFEC1A6722AA28
  241. Func _D4CFEC8A6729AA28($D4CFEC1A67F5AA28, $D4CFECBA5725AA28, $D4CFEC7AB735AA28)
  242.         Local $D4CF1C7A6725AA28 = DllCall('comctl32.dll', 'bool', 'RemoveWindowSubclass', 'hwnd', $D4CFEC1A67F5AA28, 'ptr', $D4CFECBA5725AA28, 'uint_ptr', $D4CFEC7AB735AA28)
  243.         If @error Then Return SetError(@error, @extended, False)
  244.         Return $D4CF1C7A6725AA28[0]
  245. EndFunc   ;==>_D4CFEC8A6729AA28
  246. Global $D4CFEC7A6B25AA28 = 0
  247. Global $D4CFEC7A5725AA28 = 0
  248. Func _D4CFBC756725AA28($D4CFEC7A17C5AA28, $D4CFEF7A6425AA28, $D4C7EC7A67C5AA28, $D4CFEC7A772AAA28, $D4CFEC7E6725AA28, $D4CFEC7AF725AA28)
  249.         #forceref $D4CFEC7E6725AA28
  250.         Switch $D4CFEF7A6425AA28
  251.                 Case 0x004E
  252.                         Local $D4CFECBA6525AA28 = DllStructCreate('hwnd;uint_ptr;' & (@AutoItX64 ? 'int;int' : 'int') & ';int Item;int;uint;uint;uint;long;long;lparam;uint', $D4CFEC7A772AAA28)
  253.                         Local $D4CEEA7A6725AA28 = DllStructGetData($D4CFECBA6525AA28, 1)
  254.                         Local $D4CFEC7A6714AA28 = DllStructGetData($D4CFECBA6525AA28, 3)
  255.                         Local $D4CFEB7A6725AA28 = DllStructCreate('ptr;uint', $D4CFEC7AF725AA28)
  256.                         Local $D4CFEC5A6722AA28 = DllStructGetData($D4CFEB7A6725AA28, 2)
  257.                         Local $D4CFEC796725AA28 = DllStructGetData($D4CFEB7A6725AA28, 1)
  258.                         Switch $D4CEEA7A6725AA28
  259.                                 Case $D4CFEC796725AA28
  260.                                         Switch $D4CFEC7A6714AA28
  261.                                                 Case -109
  262.                                                         Return 0
  263.                                                 Case -114
  264.                                                         If $D4CFEC5A6722AA28 Then
  265.                                                                 GUICtrlSendToDummy($D4CFEC5A6722AA28, DllStructGetData($D4CFECBA6525AA28, 'Item'))
  266.                                                         EndIf
  267.                                                         Return 0
  268.                                         EndSwitch
  269.                         EndSwitch
  270.         EndSwitch
  271.         Return _D4CFEC1A6722AA28($D4CFEC7A17C5AA28, $D4CFEF7A6425AA28, $D4C7EC7A67C5AA28, $D4CFEC7A772AAA28)
  272. EndFunc   ;==>_D4CFBC756725AA28
  273. Func _D4CF4C7A4725AA28($D4CDEC7A6325AA28, $D4CFEC7A0745AA28, $D4CFEC7A772AAA28)
  274.         #forceref $D4CFEC7A0745AA28, $D4CFEC7A772AAA28
  275.         Local $D4CFECAA6723AA28 = 'uint SizeOfStruct;uint TypeIndex;uint64 Reserved[2];uint Index;uint Size;uint64 ModBase;uint Flags;uint64 Value;uint64 Address;uint Register;uint Scope;uint Tag;uint NameLen;uint MaxNameLen;wchar Name[1]'
  276.         Local $D4CFEC7A6720AA28 = DllStructCreate($D4CFECAA6723AA28, $D4CDEC7A6325AA28)
  277.         Local $D4CFEC5A9725AA28 = DllStructGetData($D4CFEC7A6720AA28, 'NameLen')
  278.         If $D4CFEC5A9725AA28 And BitAND(DllStructGetData($D4CFEC7A6720AA28, 'Flags'), 0x00000600) Then
  279.                 _D4CDEC7AD725AA28($D4CFEF7A6725AA28, 500)
  280.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][0] = DllStructGetData($D4CFEC7A6720AA28, 'Address') - DllStructGetData($D4CFEC7A6720AA28, 'ModBase')
  281.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][1] = DllStructGetData(DllStructCreate('char[' & ($D4CFEC5A9725AA28 + 1) & ']', DllStructGetPtr($D4CFEC7A6720AA28, 'Name')), 1)
  282.         EndIf
  283.         Return 1
  284. EndFunc   ;==>_D4CF4C7A4725AA28
  285. Func _D4CFEC7A622EAA28($D4CDEC7A6325AA28, $D4CFEC7A0745AA28, $D4CFEC7A772AAA28)
  286.         #forceref $D4CFEC7A0745AA28, $D4CFEC7A772AAA28
  287.         Local $D4CFECAA6723AA28 = 'uint SizeOfStruct;uint TypeIndex;uint64 Reserved[2];uint Index;uint Size;uint64 ModBase;uint Flags;uint64 Value;uint64 Address;uint Register;uint Scope;uint Tag;uint NameLen;uint MaxNameLen;wchar Name[1]'
  288.         Local $D4CFEC7A6720AA28 = DllStructCreate($D4CFECAA6723AA28, $D4CDEC7A6325AA28)
  289.         Local $D4CFEC5A9725AA28 = DllStructGetData($D4CFEC7A6720AA28, 'NameLen')
  290.         If $D4CFEC5A9725AA28 And BitAND(DllStructGetData($D4CFEC7A6720AA28, 'Flags'), 0x00000600) Then
  291.                 _D4CDEC7AD725AA28($D4CFEF7A6725AA28, 500)
  292.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][0] = DllStructGetData($D4CFEC7A6720AA28, 'Address') - DllStructGetData($D4CFEC7A6720AA28, 'ModBase')
  293.                 $D4CFEF7A6725AA28[$D4CFEF7A6725AA28[0][0]][1] = DllStructGetData(DllStructCreate('wchar[' & ($D4CFEC5A9725AA28 + 1) & ']', DllStructGetPtr($D4CFEC7A6720AA28, 'Name')), 1)
  294.         EndIf
  295.         Return 1
  296. EndFunc   ;==>_D4CFEC7A622EAA28
  297. Func _D4CFEC796785AA28()
  298.         Local $D4CFEC7A6E25AA28 = DllCallbackGetPtr($D4CFEC7A5725AA28)
  299.         If $D4CFEC7A6E25AA28 Then
  300.                 _D4CFEC8A6729AA28($D4CFEC7A6B25AA28, $D4CFEC7A6E25AA28, 1000)
  301.                 DllCallbackFree($D4CFEC7A5725AA28)
  302.         EndIf
  303.         $D4CFEC7A5725AA28 = 0
  304. EndFunc   ;==>_D4CFEC796785AA28
  305. Global Const $D4CFEC8A8725AA28 = 0x00001000
  306. Global Const $D4CFEC7A67E4AA28 = 0x00000040
  307. Global Const $D4CFE37AE725AA28 = 0x00008000
  308. Global Enum $D4CFE8CA6725AA28, $D4CCEC7A6725AA28, $D4CFEC7767F5AA28, $D4CFAC7A6C25AA28, $D4CFBC7C6725AA28, $D4CFEC7B6325AA28, $D4CFEC7A5765AA28
  309. Func _D4CFED726725AA28($D4CFEC7A7735AA28, $D4CFEC5A6725AA28, $D4C1EC7F6725AA28, $D4CFECA46725AA28)
  310.         Local $D4CF9C7A6725AA28 = DllCall("kernel32.dll", "ptr", "VirtualAlloc", "ptr", $D4CFEC7A7735AA28, "ulong_ptr", $D4CFEC5A6725AA28, "dword", $D4C1EC7F6725AA28, "dword", $D4CFECA46725AA28)
  311.         If @error Then Return SetError(@error, @extended, 0)
  312.         Return $D4CF9C7A6725AA28[0]
  313. EndFunc   ;==>_D4CFED726725AA28
  314. Func _D4CFEC7E8725AA28($D4CFEC7A7735AA28, $D4CFEC5A6725AA28, $D4CFFC7A6765AA28)
  315.         Local $D4CF9C7A6725AA28 = DllCall("kernel32.dll", "bool", "VirtualFree", "ptr", $D4CFEC7A7735AA28, "ulong_ptr", $D4CFEC5A6725AA28, "dword", $D4CFFC7A6765AA28)
  316.         If @error Then Return SetError(@error, @extended, False)
  317.         Return $D4CF9C7A6725AA28[0]
  318. EndFunc   ;==>_D4CFEC7E8725AA28
  319. Global $D4CFEC7A6782AA28
  320. Global $D4CFECDA67D5AA28
  321. Global $D4CFEC795725AA28
  322. Global $D4CFAC7A672EAA28
  323. Global $D4CFE6706725AA28
  324. Global $D4CFE67C6725AA28
  325. Global $D4CFE87A6325AA28
  326. Global $D4CFEC466725AA28
  327. Global $D4CFEC7A5B25AA28
  328. Global $D4CFE4776725AA28
  329. Global $D4CFEC7C67C5AA28
  330. Global $D4C1EC7A6725AA28
  331. Global $D4CFEE7A672AAA28
  332. Global $D4CFEE7A6525AA28
  333. Global Const $D4CFEC766721AA28 = 0
  334. Global Const $D4C4ECEA6725AA28 = 1
  335. Global Const $D4CF1C6A6725AA28 = 2
  336. Func _D4CFE6736725AA28()
  337.         $D4CFEC7A6782AA28 = 0
  338.         _D4CFEC7E8725AA28($D4CFECDA67D5AA28, 0, $D4CFE37AE725AA28)
  339. EndFunc   ;==>_D4CFE6736725AA28
  340. Func _D4CFEC7A6965AA28()
  341.         If Not IsDllStruct($D4CFEC7A6782AA28) Then
  342.                 If @AutoItX64 Then
  343.                         Local $D4CFECEA1725AA28 = '0IUAAIcM20iJyAbRdkw8wkmHwOnGDw4Fh8k8E65EGdKMRkQR1zIj9mLEYAcJcEiD7AjZHIHRnhTEhunvDCtH28T6Dl+iUjhBYAZEJCDoNnQKLD8KOMMJ0hvwGQ2FEPaorkIGiP9UIcMCROQqOBtChu3rE4CeMcAcxoHyKRY+jsNBV05WgVVNic3kVEU8MeT+oOLHVsZyzlMIYNNbKEyLvCIkkApBD7aHNTAO6IXtbnRWr8BGjjzrPIP9eTyPM9AZwDCJ6YVJjRQAASnx6wVEOeczfiIqBhyKxgHcxcYyAkHc858awkGIA40EMZgSwyz4DzF+2YAQuEmM7EToOon4DingwawEtnQDb0D2xgMPyakBvDKywxOgJ0GnxaB0TemV0BeuJPivG+oG6egEJV8XizWnByGLRQMzBgzPEIkDGQT4RuflQ9sgFQjnB2iQDHOrkX5Czg/D5EGNgCEPOccof6+4UvawKE3b/oQpRgHWgX80SGPVoCvQOFQVfQoIkOskIhUf0kXOo4nSaM9k/QjcqCoxRO5Xf7PkiK+RMhMxQCjEKFteXxxdQVy3CI7eQ8PrA5BDAsWEPw1i4kxogsYQxDIG0K4NaNCRPTtDUAsCg5wdoRADc4IkIQQc4O0IBYOcHaEQBnODtCIHDnB2hEEIzg7QiAk5wdoRCgc4O0IgC+cHaEQMHODtCA2DnB2hEA5zg7Qn6DtITZse7I9NSA4YI/8C6apo/gricF0MhjKEqS24S2CGJtIVXi4M/P0Q65BehgGTjfFo7IuUIiTQyfqCnIxDXhF2A89tMMJBiehmjUgEOhspyMKXdJCIvyeBFjeRUr1MIyQyDyDwiLsUMJHDMwjAJDb6xxPUO5ZAv8Kqu0aa9FhBAgrxG46rL1HUiYgIVQUATQOJbCRc6HzoWPXwdQGxhDe451TmOEVEBwjPGkysKE8GoxvuLWIKUH0ChiNQP0IJM0AKxw0G1ekqsyMsQbcm2DvCHDJVD4gTnN' & _
  344.                                         'VF5EgYQBAW/lPxAwYhHwIQF3iBBxSDlYtj0ygyEXwm5gHIJQREMGfIZAUiODPkMgYRQBnyGQcJ0jPkMggRUBnyGQmiG5n94jEKoh+J70yIC6a27bwe1bf2JAwjVbYi8xfYkA3doPMX2JAO3aDzF9ikaGgVvsH2KR5yyQhYBINqVg+rhOjQpHTuSAnOcKDreokk74ubFihy7Vvq2ykwKRwlR3CI9DuBxQ3VBQAL6yzkAkyQOMgjpvfpHDiRMiQ8JDRk/QvYHvtMsKmkwPxAiKpK8jJraO8DLMV5P0yqdFaDpi7U8mWflRiJ8pAUlZIoa0CyXJAv5SFDFMiVX4Lh/Wk9CIKKz+tPi2MjmlXmOxMxwokcI+D+Rrr+ZhYdUxD+BsgcCBAXniBABwzUGlaQEWWeB1RiVYY5xcwg1P6vToibCEN0mtOxVDlGXOk14RQN02eQycv8ZMcRhTxZ0PohW5A/ojYyUVzlCpUUYpgkW2HniGllXy6aJRFj12PN8p0WRiuIhsQDSwQ0yZulMkooxKpkMEUFUzLEOCUHCxZAMt9u1pnS6ZnNBRXO3kzElyXixKrJwXPkXKxMv5QZZngoJPe/Ikpe6SgQQTDqGQQYOIPUMgUxQAeoZAZnSD1DIwcQUHqGQQi6FtKKSlEDhn3tVHnUr6MGkaBKPQqlHx4O0h+PEmkfTxa3J+5rQxWoEFq4QUYGIeBkdGxVhSQclmsipThxmekEDCmm3CchPpuRDCQFSW6dRtqTK6KTOKCfQwUjiBDWyMxZwhojSFlHPJ+0yZw5o33+RrGZJxGlB5AYCHaDthacpe0d5s2YkOS4A6yceqJYwZj0wpDAc184QiwJkPpjjZ+Kk6aKkdY7y42B7IijBc4Qhc4mbKZJryK9LBmaeBtkjvL4wRNIjUcIighXCZIUaIV8MXcBCG8CAWcDMvEmcO1POUUKEwsYLH8ECE8FoRpQnysMYFAGIljIPQ0KXwcaEWAoDhZEaA+hEnhjRRbrI8WnFAXubRxq43fpkBqBgnYJVQcnGXTtsXSJ8fkwqdGuN+wG'
  345.                         $D4CFECEA1725AA28 &= 'DwKCUnyeFD+bBCQRrBAeIAVEAQaBApAPBywDDEZwGXsIsycyFwkxUBIKMVgSCzFgEgwxaBINMXgSDjFAF+iJifoRnPANLFZ9uSgyClxgCeheSAOlmjwOFrCeooDUFv+b8qiCQsRJf7eZEIKFfjj+/8R0THpHGHEECHkIgEkMkYIq3aYuuFwk6xkvk0lVWDOzdLyTJ0LoBCMxkm5n+hJEmQ8SckqG+QsQCCgHCEAMRZJtaHSQu1gB5hPorwIwVKnpX6mhkGEi4VyPEesTVAGpIUoCgMxiTUVKhIPsIMhHdUwyQ5C4ijqsRjF6Xw1Ke8eiinQol6jxMRQ+CAw7hXrg6EIibeHJgCAhDUsGFMOQEWj4DshwaR68lEblOBByvy+skqeHMuAJucHCE+iENzGNYP+m4B0ZID6cEelNaFixBzC6Tp1HAZxD8g8CDnEgA+cSBA5xIAXnEgYOcSAH5xIIDnEgCecSCg5xIAvnEgwOcSAN5xIODnF6g+0UirRZBUC3B8gPCDWMoVNje0jUXCiQzTIBNAZBFuiZONoG8QZbNotGVVwS6BULjCdJQf99z1Ms3LolwwkEMDEO/4xSbfTH6zguEwQgMQPDGAStEtFbHgycCAw50pDhdDZLjLf0Ctwhc4p6JISRoqwWjpEgfQgdCl01tbFmIMggyQp8yaPPlgYUxLXEZ1SxBCYQMh9kkhjCnrBk4xjoalEKSYHugNQZGXJIXxQkTxEWVwULM4AYEg6YhIZxiIYikIyYdpANGoH+oBXQUJKx3RihiGQBROBAdAxIx8Bi/wPpTNDOP0WLMbAIULQBWLgBYLyY9PAG/MED6BBEM0z1hgoUZP0DE5gWXPViAgpU/Wl/84YG/8HrR/0ITISDE0BdI1yEQfHcwemL9CJUEggTVhACmUfyAP7B6ov0IlwSCBNWEAKPAUaJyAZA09mB4lKowCTESMiQzL7y0CTUSNiQ3L7y4CTkSOiQ7L7y8CT0SPiQ/L7iCKSnBF4' & _
  346.                                         'iQgz7hUgQSKgUkRghHH3kIEgkkSghLH3kMEg0kTghPH3kQF9i8xJMF95EUFSLjEhcX3lgEmQkaEhsX3lwEnQkeEh8X1BIgXDFTwhJjojr2hAOkITPmPDEoIxQu6+gSIscUCS2C8YGUwQIIFsIFmMMSOA+i7TGusJ6ivKuaSAK6OaDxFswE2vP+6F2Vw6ZSMdp4hQzhxh2KJ+EBiGPiAiXjKeX+nlUHyFkcVwfIUxxZB8hVHFMHyFc/IWod6e9+iGoXenv+kioV3p7+tIVqNye+vSlT3envfohqF3p7/pIqFd6e/rSFajenvr0hah3p736Iahd6e/6SKhXenv60hWo1J761yO7/Se1+uJWUyn4hWBBnVkCweBzGAzjEAnYGBmgBVkByBwIG4m+GBhJByEGQSjB4SLuCWXZHQQjBwVsSxXeSm8EUUgLkAoj4CBGUggHfKso1A1C4fueWSBRDjNxDLkNMjYYZuKD3AnTZ8Lk83DLUOgYW10fXi3gQ/eJEloMMQxiTyEz8rD63vbudRgP9kSLFHJZRmrKATHRoh0Z+W8MRvYpCI7IFxi7/lDJnRDGpsVchyxIBMQSMUbkShQ0VMONGKliHF5b4iAEajIIOSQYKIZHLOgwgQ8MDI5GNCE4kTz6IEAhtFsRENzjEEjITP0QUCFZkRTIVM/QyFz9EGAQ/lqIGORkYmgZbB+icASjMhw5dBh4hkd8vIq5QDK8RRkgGIq5TSJhLoKISWzImnCMm+T2KoqQZyHeWREkyJRZmBNButqkapxYdOoYz91FxtJGkFaQZ2U+0zQPG2JhGU8QRSzSfg8HkGXIGIWLhlSsQ6AHyceC8AoBSIAQyCKkVMYToMjhqEMx2CcVrHMoBFtew68u4FiE63yORuMj2zvC3qBCWiNRkeKI2s7wt6gdUvNRSZxLDrbURgwhDWQMIhMkEm0MBxG51GQQSxelzxYinuaGwPMZZhTHFRSx0yzRiEdYcRQTftxoi3o08M4lEDEF9fNICwgp7mgRkBhQTcujkcaULv1XyFIrygy7DtGA'
  347.                         $D4CFECEA1725AA28 &= 'UiC7e/IXYOUwIlY0MTgYPIsh8IWgw8jBQG8xrzJIkD0ZDFzATIxdUCr5C2DyYJFWZIvO1laU3oFgaBhsjENwI3ReZHiyfTIUucB8DJKeI0mX2chsXybQ4g5W5fAy35rE0IRyQpjInFmgCiOkfJm0IWgQrLKwmIaIVZQbUmf2Mvm0Fli4/rLAmYO8d87IBEnjCCwM20wXyF9tKBTMBpgdCLpa1iNnXThl2QiRyhXEZhSSyI7IypfMPEwFlWfQLEZfMhZ55kX+56kg35oZBAzOQscSiXrrK7gaP2LFJCLeWzK13TyLEolykzrsdY+KIwwQDbIMEs46sYroB2URy4ohEBEXIxZkFGIVFkIUIhtIGo0Q+1NQPSBcWJSUJwTE6DJUFiycGIxCGcgYkB8QaR6I5RnrGRya6x0UxpzLFu+pR4PNJKi43cHtg5mLLOvDzRCcMewq6wxFCAQciTEIHhiKhqTnvDxiIKT+NxkkHvPP4vVBHijnL2lMKz8MfqQUeKinUzOP6kCDwDuJi3XCCUubkOEztWlhlv/qYrowe/q9ocU+n91IUutPDOXpaljaTN9iNJgehlbGHtuLHLwmy+UM2UISoIEIBjCTbiIZQRjJz5mMQK79Qa9EReqMvoBIybTcY9ulCLDjHWKQRjeYMryrQdijFNtG3nX0l8kSCAsYi2lHQWoUMyHkVirGKMXmf1WUMFKIqo0it8rmXFs2xb2KujJASu4l0t1mcB/RYWW1ESfCk8EC/FFsE9DMzWTmCMxop8kQbKvLcEUDEMWQv6J8FVJ5CyG4C7qEm1fSUVOlosVKqolaCsgloig2y1XEkqVGPAzyxRaG1FqqNAx/18igUup5Mc2oGyGsXqEPIs5ZW6HXXkKwyLRZuA8hvF0QwKLEK5b4huFU7uTIjZDMrSgQyeAfuOjekNDNygbnKRvU4WTYzDX8Tk40Eh646euQ3N8jEMDEBIC3ZGUqxdRYFhI3XHSot2/I4L4/+TLOFOQuxbL' & _
  348.                                         'oTG7mEuyWa1JfOCEUkKUBaUt4mPogdA4/fiKB8icxpiQQ4AG1RBT2Kh2DwoBPNbjUS8zDUhD+JsIKGHXs3wgsEgPp/fT/jOokSGERLPkvzRAYEFhE8Ar/O8uAkoz0RJb1bosCZKLnEsAFAV4G++QgCFOZGohVUQethUTiIyrCKR0EBxUFK3qAkqSMIlkLtkcU4yuIw5QIB58qK/UBmqgUsw8UQQ4pkSEqDAZsDU8S6CSVTValBMz381UPwekYwcmLDIjjqRAz2noToNAsTYgIWJ6b1MbS1kFo7eTGRZLQ/t7MHs0KgTXlgAMZthrJIN8H/OFhfwONbG0heP8kDO3QB82J6SbvamjsMic7KOcfzHzM+gcGAf+NDEkGSMnzZz7IJ89SgeCUIpJFwUFHjQRAls7PXGf21BtAwMehLvjfaaSGKD/oE89KyMTCsiD8iBONyIu+0ozTSA+QlUeUmQ/tZEnNzCzpBu+tlSOSbd4GkZiFHZDtmoUoj9dm73ztmRjN+tlNkQOgzngamc2gmymB5oWmKCKexSjuB4S3WKHyNHajd9Vmlh9Y9jAilIGUQSI9VFz3rI+KiRJ1LY3qGI/PzcjNKgQeUOORwO8HRQHtJI08TJnNDP91G6KBncwS2QzpW0W0MPWklULPQpLMxxzNppOKpxSUR8+EupgoRdCjl3mkd4Qi+6rvRN3vKnVsz0jx+a6UipEojsXMEvGryCRE2lLPMiUrSjTpl0jQMvgYm4rvhkjFoidwHcRB6UnXCPofJJotsk1FoRNCC6KAJArGwaOJSio1dJxaCIqEHPDVMIi8wKYWQxgmzliyxsq6/kpgMcPuJDrApPuE8NLcG8x+NQb1Pz1fs6FN7SZ824RMCcDIUugQxyTFEaEp5O8lJBNZ5A//kFL9Nu8MWYOX4siU9EfgZRT4JvE1sFdo0av6ZPijVSKAoiZBF4QUCbz+BIyIWDzOSbJ01FoWxLKMed6k9sqBFnNJPOLNRjOSvsldFjP+0SQU6RZP9BbIGKRIsvbLysVuK/si2ZIL4UUZHm3C'
  349.                         $D4CFECEA1725AA28 &= 'xiP7BzgzBuxCQygj5BHpe4KN1gmNyDHhRiUFNHnnpyaR75QViMzE/AjnMlnpSvYNyHDx7HVFTBXMifkZ/gTZjBLhWknXAMm6DWQ5KEpwtagdanSkzbTrmHgocnybHKLmlYIYbUgT9NocZODYzhzIzaoIogVNG5HtlAXixcRKpAVG4MjoyRQaQ+AkxAV1MlnoahqUBfMLI/gUyK13kvPUsQGI+LQa8/8qYPykBEhkAchokWyPiHAgy/xHtMVpHgeB6NkzB/VJT86VBlyZviwSyg21KyUKJgernEqXSDYRYJZEJAREUInFJQ9IBVTJdP8EBVjyXwkzBIhhqM5rCABGNxzCFFit7HJkwXpJXAhO1RWVkJRn2DoY2SOoxqQ8IKq3XObi5mhc1CKUBVghpc2dkk7yKALili3I2xfSZNzsnpVPJcoeB2jFUzCGweoHjjMUUgnSNizVkQxKwnKiymSPsh7vRQqFG1vLOyk04PkyFOoGwDWYElLh9VIAaID4TvfFFvE+EvxIFP0CzAJuRRkYCRL5TDKoZvp88sONoffznCneFkLJklJGNklGuxFE6WZKqgZMH2rNkeqh90TRLMmFpqntL5dJwGQJLffOWjsoSjD7UzT3ITjkyw93cMgc5Dwo2YVkxVzhEeWi7RpK83EczFjqk/DxzgzmpSOlGVnSCUnGzqTpyLNiN/Jl2Unt6leGOxnuyhe6+WbQKYSrvIY62eIkIFOoA5G9NMD5RmUa+uyiZE7XkvUo0aoQuCD7LYJDZsMQizy4E3osxGrgJt+wcp6vm/8rJyIYmsaJyMfIScTFIP1Bnp0hIc+1IlYPkoXO4WE51tEmiO5pyj8LrohR6UwO91FBUzyeVeo9npo56dzNE9tbLcX/qa7jyiwmFOVl1/lnQOUY0BjeEKRCfJXB4VhS3BxCHPO+EqDJ+JJU4vDQuLT0RcqJ9U3hV/PbFuNABMiJwsrYMWbWBtOvZQwe86yVTpc21RrzTNe4wNeOUJb' & _
  350.                                         'e4FvC62nx3wvB5cRgQMUB1grZ3IUSiarA468vaTHa5RjFjO8LeoCqxIxHYSPkEcSd4W9QFKLIK45JcVrNJAcriJQMB4oNK71AikbMfUQTEr6Fe/UyBxH7hqwBu0nRlcotJZJtgswBwEjGMcY5ifAS8yUy7OMS2opL2xjrBsAxHNiJx5PDEAMdsu8RPO7LVjoM/6b7gy3CqY9q2U7wejIQwHYBkviG0BZs0H4UiS+CsJCqeReIFsFD5yLHVBQGFZFLNnqQaPjAZiGbhMHrBxIEFY9AADMoWI0cZlsG2+CwMJg3WCXI5CKnyTpiUQXFwdrcWNvSIq75keLxY75bGbpM2EmmFKCHQPfwpc4zpchAFKW0ikGW+ChXFOhfdx8siFL5ozCWEiRIec/NGKw2atMuIetBIL+xY+Ix7ZHDyVy6yyCJ3oeeSJxImpfyknXiNEPqFhRSGUAN0nOAIMpay5aaWkvel8K07uLuL9ZmPUreTb3pH2XHDUQJUYmOibJ6m5SWe+Wpzk0jK9GzIqqWCuXsWrFkG7N13OUEbdUM00fKR0SXTUouJr9TX86JBf9mqfziGE7rKAnOmg9R23oMq/OkgJctZ7qXVuHdgQje26immry7HRRFmtB57Qd26j8Z2U7eSR2nMsLEzqucQkvC6/UEvyC2pFiykpSh47pRb7IRY/FRzxLPlaYbO+V8RJaIFeOnfYIruIam+9Fti5EjkqCa5cMYcEG8aqVK/VtN2xJI8kQ72DUzrSmLfiJKVKmuEQfPOiZ2bHIz0SOSW1/T1PqPlmbunssyLGyZi5vdspZpYFk0JcI7FqPNI8DOLPekKqeI8WThaOmMWix08FyK6nLxJjcpwZ8pLqcJVeqvWdkgqDYzfEgjsplfqGLR+b9+EPDI4NJk2LZr6MZkxzSolumx9g3/REiCyKab1PsmcdCxo5kq+CJOf6arxBaLfBpR9wlFwWVJIcTi+YQlq4okp8mqZS7yaYSwRAj3CQo8W3+INLARziDxQP7uhFP2FiEYpcISOu/9r0D/ae8JgeVzaQV2'
  351.                         $D4CFECEA1725AA28 &= 'Ae1k9bBc9ZyBaWJ6W5qzYxxCMS5lVDERD6916aET+0TlLO2Gbc3rBFgA/aguie6pi0E5jiT1E6Vk+oPgNUvpHREJlFUjejbcShPfi1wi3vsCupR+WO1Exn4EvbPjFmRnnBbRfEkz6SLVIMgvmphmElScB4pDgBGChGyaUyyQFqFa+3sWcuHVl7kot/w7MxqoQCeCSsA6InAI3ntu8gUIif2916YigZ70IQM0gYFT5PCaswK2weyb9NNkLQnk4v+G3+X05zzHVhiI7WnFx77uRvlS7iJTyfU6nC7QM6MSJ+GR0PE6JgYr1DN1bU90tmwQxKI3qE6qRPH1z5tFHCQ2SSAzSKlIiBViQYwsDlp6cJFTktr46S0sxszzGSoEuUJ8oKX39jxJJCMf7xjS/1MlybVHH2aoGEjrHhGiORB4DKDvid2RRSsixO8N/OJFOD8iQtpSJpDRpS0uFe9tMf35JjNC2FM3QttSO5DJ1pcG6FHlCyHtlv3NAUwu745DzyH5NRxxJkpgIyNb0izaQgJfiigZYlpoSR1sGFCUYo9CVCvf8g3UQB7VG+GHOAn+FWoZNNaOPaVSDypAlAHrWwl47zIAqQm6eLoDBN9YzXD1zyYHfJVmukNAPVJIpqViCkhJCEy/J8Qg3REkMW6p8zcbiGw3RBQr9CSrny6UIdC2pI8uQbMiMrkEziTUU9I0cdUkUD7dSEH8iWveIMLZRUYRMIk0MT84GDyVK1MKcDqoLkn2PCUkdHesda8WbpVsFbGGr5hHOzaIcBiEvkOQ/qj+lUlM99+kqST9l97v9coEn70Cp/Tx6APXF58il+daK6J+qRN7J0TuYTR2AvRWMm77WTKm5hLsif9KTy7KNyF4zAh4SozhImSRZJssPtJ8ejCgNUoo3zBnQQA1ADNoHE5YiE3LzSwslVkmIIL7kygl2A5Nz2KLGGnY2SQrHLbc0y9Ay2MLXx3SswQFyemmbi5LxdClZCqg7atGhGoEbk9iDIf' & _
  352.                                         '8DwyVUjG+UNkEKi5AJ1gFQnHpIIjmxMY3aFvUD7IRZFMHSgYoSCGVBAZfW0ISIUrkreYZtxzvXgiKFmESiZroKjIPeVQ6xOdixzO8LeoCuuwdZMUkt7AtJeXtEMDCxYnoBCW4b+f4S8aVSPj6f+THtFskSdHpDAxbSYSb81paxem4UC366+ElXOhORJWJSHE6LxGh+I8ZiYIXtkciF0YWyBTEFSjVygbQsi+WTkXtLikDHrLy1zRC+8jLkdCi2DnUGElEGxqVtMn1GBmFJeGCyF6yosMR4xoh668kqM9i3wT7CvyyRMMizCTIMthVGZfgSbLwiYL/GGlEHx6XNNFGHCEdSdCgaOjgsnHvCTP2SsIL+EIhVKlyYKTGMcKvMzBYVrPZxRLlHkLtXohy6YbtP09ky6n5JAH4mGbolax+Cs2RZJrIFASx3EpMiiVJt6hSZTR8EhbpPd1ts2Q8zekz0qUnO20mrSXq9jLMC8fbRIox9s6vg5h0JN3ZvRXalLjoAYSJ/cgB/K29LMKjwCzNKbhovqViGFRE1EfxeazmsmSK5fFWk9yyPy/MhnNEL5eEE8CogOQQsrFBsHgP9eIOXB0kRIHJQWZASXUGq+GErtTja6wz0L2s0IZWb1x0SN3QjSvxiqUEoP2igCjdpYmNQKUc4sk0i5W92qCmgqoSFzKuJXRAUq51KdbLqEvOjdkMct/295eTlyoQz3KB67o7JhBa0kyl2AxQ44yK3ynbWbFUlZQ4c96lr+lSkY6zWvG1pHojL8+05Q6gYANR/p95LUhBkrS/zpg+2GU1ibKdkoB+mCVqKkd1J+qOUHOflIiftJnzDMOKFa1O0Ijjel5Tegai3zyVHxUnwp9UFszS39ZW8YC8oFuVhu8JYgxZJhLZ42BoH65NSwfArDxU/jzIMRBpW7ki2fc6cDyJirCVZFf00sktPHkPaXG0dImKRE6xzTOZf3VgNOa4mdoGCv91kjziaozTituXrZeQoZ2noDqeF0KatPmANB6oKyvhtr3KV7nX9JlKvFwZ70nJe8AQ'
  353.                         $D4CFECEA1725AA28 &= 'ytOjdKTpI5pI1IIU0bH4HIXEyQjTKEJSHLHIyhDaIfq+Q3ps6SGw7526oixbLJKdmqGUvkhDMSz/WZLZuBykpXysMIsS2Thzz4H5KsSHuLe5KKreoz9A2bx7ROkU1ErC5/ll2S/EaJGpOkksf5mWrcGB6XsidIp2i5pJUu1JpcASuEWB/QH4KwoZPLibCDNoKu/BlyUS/zIWGCuRXXSnvkJu0wKmcaXO/4EbOBl6NkUkRTHVi6MvL2oTlfYYkSzJ8xNamt78g1HmDiP2N/w14fiGzf5ZJU5sOCj3q070UwHkS97KJwyoSXDX/WxotA27MwrydEu0NrlXJyDi4YUlCKtne7ocNUODm+9VrlZCNrp07aHNLBARrHpOqqOJKOcrnQ2a+FYWTE/54g/LCMSNXv12ckZe/z2E6i5o8JPzpMsg+QS22E6MJgFO/9Qi6CCy+ATEC8fR5hPkzwYh7K863PyIGeZO528/1S335dAU/LFsEJ/jlyT9zwnzShNhZjPaxIw0zBAzwnCQKZmP2lP3PFo3owpQJUif7hOfxi6fzCvNVvVRLwng76tj4sUN6iAwO4sqJLhReDN4sNIlBligKWX8YJfOjsxs9GTul82QNCddjurIlq9SBJDmkuyJrxZTZQRS8hECyxCJ+E7cW+aFkPbk7HxK8AzBph2bTCRaRebZPEK+CH4B62v3m85kZarxhJ+SFBh86xBEL8Rq3UY+WsiCNMx+JZA4G/SJOyJDQL7av6VkIl6igGYdRYSVQUAhZJVM1CKUHtI7x3Y8S/rqnYQm+bo0DFT4WIg4kIySiWmm4I0MNIAYBEqI495ExfiVz/Q+bS2KOwuU8FkOp8Rlh+elWPbLl0hZG2jkL8STZMwGyNRIrjkkalIRG0thJqTLT1Ip2CtP+LiXTWpKK6+b2b5ZpGfyyJtTIpxRCFNE+STMTb3DMTJ2ISATPFNWoUh8wM50kqK+JHhARTwJHhyTYuhKfEWTVD/A7ppRifbFJjp' & _
  354.                                         'C/Exj0GVKiPSImFYgSifycCQMWCdv0ugbrU8nfofkGCT1L0orb1mSPy9XLVMq7TRBDJMupGakNWTmiSIk1kyTPCdSjNIbvOPcty3mZAtCi1EMPVViTmJgXQkmLTwbcip7Tc9W0jU0Uh68P1ixWKfEcmzVdI+PSE6kmRIiUq3h8zZUtI5Q0lQ5JKuSbU4mS1UYIkp1XQiYicO6UUVORFBiVDFYCohcfYj8JE+R60xxr0lCvyFM+QgafYU8wn6RMSTYSjJPsyfV2bo+RjSxu5JixeisGH/yar6LE89aQUVMRfMZcbxx12Cv9pdCnlPelqiz1YtEW+dvUInwKSbUgVOx5X8UmVN0oe2Q1bmjZOivIiXFWd4T4eNXyOlru570lklOT82a4k7L3hkx9Q3kVM+aGi3pa+Uts8ts5UvzibwiHcYx6zf/YxJJRU4SKBZC+KCy5VjvkTTpxDWRNZbt/blO0YxKPG4o/UHSLwQ5wyIk+Kmk+Slayv6I9jLa9H5A0gRmGPxF07LW16JB2o93BPXw6mnVL83UKnSGWeSy7JMG6GtlST+JCLFs4JZg9o0EpXDZMxLwqWl+tH2viaoaPnkdksY0y4MGIDJ5TE7mX5F7+eua+9gz2RYwJHhgT7R5elsoEj+D6zgnjAjxdRL3WRksLGl7T7ZiJ/4e5Muq8dCk7oFO5y23bRol9mwzzaL9YATvLB3thJW5c/UC6EKTWfXyCcD2UmTGhtlSvEqg3H3rS/6ityLOUsPSNfMmjTXq+nyfqtT0xRToHJK8rFviCnfZFnXLYj5Q2epaILMSRdpvjvaT5VmnHMxZn8pk9zPKCc7MiQopOaRjBI09K9Gpegxq2bc+CGFY8RNqzgCsDUfezzzR4QzSA+iDEByCxmNUpQQc+HxQhIfudxSZIfZ7xY0I/3HyQg0c1mtQvYfebxSxIZHFxVQIYHEwQlAcAgFQA4fOZxSpIVYrxX0I53H+QhkctddQYodNqxTmIex2xZoIj3HKQkUcH4JQnZIcXVRABBz6fVCHj+8+kBWHslkU6yGO'
  355.                         $D4CFECEA1725AA28 &= 'R8XJCPtx8EILHEGtUOyHs9QUZyFfosX9CEVxr0LqHCOcUL+HU6QU9yHkcsWWCJtxwEJbHHW3UMKH4f0UHCE9k8WuCExxJkJqHGw2UFqHfj8UQSH198UCCINxzEJPHGg0UFyHUaUU9CHR5cf0IfnxxQgI4nFxQpMcq9hQc4diMRRTISoVxT8ICHEEQgwclcdQUodGIxRlIZ3DxV4IMHEYQigcN5ZQoYcKBRQPIS+axbUIDnEHQgkcJBJQNosbBR6bBwTf4hQ9Ic3rxSYITnEnQmkcf7J/whzqdVCfhxIJFBshHYPFnghYcSxCdBw0GlAum6KKLYME3G6KshC0WuLuhDhboKH7DqRSKPZDdjuKTRC31uJhhDh9s6HODlIpKHtD3eOKPhBeL+JxhDgThKGXDqZTKPVDudGKaBOFNAHH/hUsBwRAIBRgIeP8xR8IeXGxQsgctltQ7YfUahS+IY3LxUYIZ/392QhycTlCSxyUSlDeh5hMFNQhsFjF6AiFcc9CShy70FBrh8XvFCohT6rF5QjtcftCFhyGQ1DFh5pNFNchZjPFVQgRcYVClByKRVDPh+n5FBAhBALFBgj+nYjLBA6gUCjwQ3g8ikQQJZ/iuoQ4S6ih4w6iUSjzQ12jiv4QgEDiwIQ4BY+hig4/kiitQyGdirwQcDjiSIQ48fWhBA5jvCjfQ3e2isEQr9ridYQ4QiGhYw4gECgwReWC8BqDBP3zig4Qv9LibYQ4gc2hTA4YDCgUQyYTijUQw+ziL4Q4vl+h4Q41lyiiQ4hEiswQLhfiOYQ4k8ShVw5VpyjyQ/x+ioIQej3iR4Q4yGShrA66XSjnQzIZiisQ5nPilYQ4wGChoA4ZgSiYQ55PitEQo9zif4Q4RCKhZg5UKih+RTvCxKuDBAuIioMQjEbiyoQ4x+6hKQ5ruCjTQygUijwQp97ieYQ4vF6h4g4WCygdQ63binYTu+CKOxBkMuJWhDh0OqFODhQKKB5DkkmK2xAMBuP' & _
  356.                                         '6EEgk4myEOLhcoeQOn8IoXUO904puEEOs4u+EOMRioaYOOZEoqEMxlYqkENPk4jeEOPJ5oYsJ1ecIEwQ+uMihQw5uNyhZQ9ptircQAY3ijIQ4sdWhZA6cTijSQ0mpiuAQ2GzitIQ4rFah+g7z9CgHQ8/qiiUQymXir4Q49Hqhjg5HrijpQxAIihgQb7ri1YSQoeKIoARKJeP+EFwu4nKEODgcoSQOV6Yo8UNztIrHEJfG4lGEOMvooSMOod0ofE/udCicQz4fiiEQlkvi3YQ4Yb2h3A4NiyiGQw+KioUQ4HDikIQ4fD6hQg5xtSjEQ8xmiqoQkEji2IQ4BgOhBQ739igBQxwOihIQwmHio4Q4ajWhXw6uVyj5Q2m5itAQF4bikYQ4mcGhWA46HSgnTq6eKLlD2eGKOBDr+OIThDgrmKGzDiIRKDND0mmKuxCp2eJwhDgHjqGJDjOUKKdDLZuKthA8HuIihDgVh6GSDsnpKCBP7s4oSUOqVYr/EFAo4niEOKXfoXoOA4woj0NZoYr4EAmJ4oCEOBoNoRcOZb8o2kPX5ooxEIRC4saEONBoobgOgkEow0MpmYqwEFot4neEOB4PoREOe7Aoy0OoVIr8EG274taEOCwWoToSY4RsCAR85HdyeznyHGuOR28jxZEwyAHkZ3IrOf4c145HqyN2kcrIguTJcn05+hxZjkdHI/CRrcjU5KJyrzmcHKSOR3IjwJG3yP3kk3ImOTYcP45H9yPMkTTIpeTlcvE5cRzYjkcxIxWRBMjH5CNywzkYHJaORwUjmpEHyBLkgHLiOescJ45HsiN1kQnIg+Qscho5GxxujkdaI6CRUsg75NZyszkpHOOORy8jhJFTyNHoAcXtMgQgOfwcsY5HWyNqkcvIvuQ5cko5TBxYjkfPI9CR78iq5PtyQzlNHDOOR4UjRZH5yALkf3JQOTwcn45HqCNRkaPIQOSPcpI5nRw4jkf1I7yRtsja5CFyEDn/HPOOR9IjzZEMyBPk7HJfOZccRI5HFyPEkafIfuQ9cmQ5XRwZjkdz'
  357.                         $D4CFECEA1725AA28 &= 'I2CRgchP5NxyIjkqHJCOR4gjRpHuyLjkFHLeOV4cC45H2yPgkTLIOuQKckk5BhwkjkdcI8KR08is5GJykTmVHOSOR3kj55HIyDfkbXKNOdUcTo5HqSNskVbI9OTqcmU5ehyujkcII7qReMgl5C5yHDmmHLSOR8Yj6JHdyHTkH3JLOb0ci45HiiNwkT7IteRmckg5Axz2jkcOI2GRNchX5LlyhjnBHB2OR54j4ZH4yJjkEXJpOdkcjo5HlCObkR7Ih+Tpcs45VRwojkffI4yRociJ5A1yvznmHEKOR2gjQZGZyC3kD3KwOVQcu45HFhJdw/IHBlH0p1AJBFJ+QWVTQAkaF6TDiGo6ESdelgLVO6tryyAwH51FRPE2H6z6WKIEpUvjA5NDOCAw6lUgv612bUT2QDyIzKKRBKP1AkwlQJ5P5df8iIHFPCrLxPMIJjVEgL4EtWKjj0D73rFaSYh8JRG6G2cC40XqDpggOV3+wEThggjDL3UCgZuBTPASF+CNRpejiP9rEdP5xgKHA49f5yA0FZKcRJWOCL9teuufQ0RSWdpARNS+gy2IxFgRdCHTAt5J4GkpIOmOychERMsIdcKJao9U9KR5eEB7mVg+a4iUJxG5cd0CMr7hT7YgpvCIrUQXwgjJIKxmgSN9zjq0ED1j3yJKGATu5RoxgkBMl1EzYIiVYhFTf0UCC7Fkd+AgQrtrrkSE+gj+gaAcgcP5CCuUEE5wSCJoWPyPEUX9GQIulN5shyChUnv4RLdmCKtz0yOBKHJLAuIQ2eMfIo9XBCRmVasqTrIi6ygHIHYvtcJEA1sIhsV7moGi0zcIpRBJMCgih/IfbSO/0bICiwIDarog0e0WgkRcJQiKzxwrgXKnebSSEPjzByLy8AT2TmnioUBkZdr0zYiGBhEFvtUCaNE0Yh8gmMSm/kSKFv4uIlOdBNSi81WgQKQFiuEyiVzk9utEdcwIC4PsOYFdQGDvqhBlXnEinwYEtr1uEFFAkj4' & _
  358.                                         'hivmIbJYR3QY9O3D9IgWuBEhN5r1GQFCRVI21iP1xEcRdBQLtBAbUbyC5YFAVRP/aCBmY+ySBXta96ZcQFYlAIkPMBEZn2Z53QFew6EK9iKcHEYmLiAKN5xlbOCCdecjuRNuECKF8CkedkMRCD+lA2PiEHsmJqz2PwQmAhoOBCYwyK+1IELweESJwrATTbFpyTkAK/Q7/+4j3DxGFOFYC5D2u1R4gWDYtOUQnBQgKD9lkgbhoXKYhELObWyJU0QRFJDYuOkAGDApnsYjQkxFX5w8CLLTultIgHhubkUSejwiAwMVPgcph3CCiED9adyJLaQQPHBIaFlIDFZO6CgIJwcCgKuUgrzwi4ERDvQgSGxcdgQMOCQ0LEAHyiyLHrQQTLbaouUCKFB6pyIhrVxHxGYUCOq91B0wgke6Z3US7EQijf2D9gUH3ASafEE9cciL1vARnRGY7xUDcW/t+NIjqixFDKXYCl8sjxtwg8rbt/ERozwi45PFjgc7XMdzKEfBC+IUQiLQTEZciQALmhMYRICBzhUokRX0A9bs9+MAJrK75MhGIdMcRKaFtAiIdni9LIOfcsjBE860IDYZS7IE1d8Hj0BCFK7MiFmwE4qlwuZlA+RGUSPqIN0cR6WQiAuio/IzEIByg8D9EGnUIVn0s2IHfIjOQ7xBuh0kiTscER9k40cFA8YzKov6IGpgR1As2AnGm9YHPIB2let5EKCkI2reOJoHFP62/pBCJLDoineQEb1B4kg1At2pfzJuIYlQhfkYBDvaNE8IQqpDYIrjoBBguOfdeS76D2a/1Bwkbn12AyIn8aYYCfAkEVm/VLalAPs8lErOIS8gRrJk7AsYQGH2nINLonGNEbnkI2zu7e4EgzSZ4CRCablkiGPQ92+wRtwEPwINPKKiB/uaVbmUQeKr/9H6IzSERvM8IB1rvFejYgfS655vZEB9KbyI2zgTd6p8J1ECoKbB81ogzMRGksq8HiCo/I7iBB8allDAQxzWiImbABDF0Trw3QLH8gsqmiBLgEZDQsAIQM6fYFSBZ'
  359.                         $D4CFECEA1725AA28 &= '8QSYREonCEHs2veBgH/NUA4X4BeR9i+IX3YRTdaNB2BD77Coh1HMqtRUQH/klgTfiKmeEdG14wIZTGqIGy+hwSwfuBBKRmUiUX8EDZ1e6gRALQGMNV2I5foRh3RzAnr7C0EuIJ+zZx1EWpMIktvSUoHJ6RBWMxCcbdYiRxME75rXYYxAoDehDHqI4FkR+BSOAjvrEzyJIE3OqSdE7q4It2HJNYEq4Rzl7RD1ekcisTwEsJzS31lAyFXycz+I6xgRFM55P7sIxze/gTxT983qEINf/SKqW/7fET1vFAKZeETbhiBhyq/zRIEXCLloxD6BKzgkNCwQBMKjIkBfBH4WHcNyQLq84iUMiHcoETxJiwLW/w2VQSAmOagBRHHhCAgMs96Badi05JwQFGRWIsGQBGN7y4RhQFXVMrZwiCFIEWxcdAIM0LhXQiR9qcfSpw9fdVend0rd5yt0D6nv152POafXnb95z9PdZ23f151/LnUP92dLnX8qdSf3v0udFz1n0qc/XnTP929K3Yc9n9fdt3mv152neQ/T3Z8qdDf3H0ud9z3f150Xaf/W3e8rdafn5150f6ln1t3veW/T3bcudM+t39bdz22P1t13aQ/W3QdpN9adh3mH0rfPS91PK3QXvQfXnb95T9bdfyt1b7fvS90XbQfW3Wd9v9bdR2l31t0naUfS939L3Wd9H9L3J191/+ePSp2vKnXf58dedQ+390rdPy90n7kX1t3fKnXv999L3VcqdRfnD0qdn31P0rdPS52HKnRXvafTp6dGAVt0p61v193vKnQn6RfX3d8udGe9r9Knl0vdFy50N6lX0ueHS91/eU/S5wdO3Sc6dYe330udb3nf06f3X3Vv9zdO3Z8rdd/3f07d1yp096mv153/eV/St5dO3d8rdJ+pZ9LnH0+dLy91X+f/Tt2vKnU/589LnQc6dN+tP9KnR0rd/yt0J+3v193vL3SH6e/S94dK3UcqdJ+px9On9190f+nX0+dXTt23OnT/7b/SpzdOnc8+df/3r0/dFz50T63/0qenTp1XO3TP6afTt19Ond8rdMetD9K3P0rdby90t7k/07cfT50PLnTX+d/T939K3d8vdO/tx9LnL0rdryt0x+mf06fvS91vPnRv+a/T589O3Zc+dIfpd9P3t0+dfz50n+lf9OkH07cPTt0/LnTn6TfS5x9O3dcrdCep99P3f0ud7zt0b/3X1qdfWp0XO3T3+c/Tpw9Pnc87dPe9N9Onh07dfyt0X72/0/dvSt1nO3T3/V/T5+9K3a8udL/tT9a3N1qdFzt0T72n1refT91nanSnucfS569Onf9rdN+5f9PnF07d72t0Z7gHLkAj5QIyewhOw04gYtOAbqtwNq0BRliO1nniUZGqW4pFWWZbijkpMGuVZ+7SVqLiHZKFxrgRosm6nlgytZT9ska1lPGU4i1l5S1k3bWc1Vv9jsktNse9FszjsYvlcaXF2LiZ4gTcjXHDbjiBBbccdVsSjmkt68ddFnXjUYsscUXFbrg54lLcLXGzbjghL7ccFVvRjgktIGf9Fluz8Yu+WeXFTKzZ4tDWzXH7azjBM7WctVr5zqktUGedFqizkYtAWYXFnax54rzWbXEhazhh87WcVVoMzkktX2c9FhezMYt+WSXFXawZ4mDWDXHcazgBkLUc9Vrujukt3kfdFtuj0Ys6UcXFBqi54sLUrXFiajih5LUclVrIjoktjUd9FqmjcYv0UWXFeqhZ4rrUTXEuajhBtLUcNVrdjiktS0cdFoqjEYu1UQXEA/z54mF+7XG5PzjhHZ+c1U/4zsknaee9E5TzsYmH+aXEVfyZ4ox+jXENPziBQp+cdU+ZzmknsOddFxY2BwA='
  360.                 Else
  361.                         Local $D4CFECEA1725AA28 = 'magAAIcA24PsHItEJCBmiQgIEUQoBIvvjt8H6EMQDgGDxBzCig6HySfWIWgcZNJvEAE3svY3iPFiUAnAhEFUFhsQaAwYK01OAA8I6BxXDSsj2/kPxhaJyyyZPzBXNBIQJDw5Ajo4ojNwChEsCNKF+fTuFkL2/M1CBsj/X4gSA1nkC/MrhCztkXxKbJwGIUwlBBvGgPIhgDHAw3RVCu1XVlNcMy5Qo1yjQMN0x6ybSBQPtrgkB4X/dFNH0tGOgQK+gXjyj2F4E4tMJMsdcIl8gBgB+esEORjqfiNcA4N9xebH5jLMCsMGwfaIZwajGMfG9412BXIN+A9+2dqegBAalAxAHyHHHYnQKcPB+ASF8A+EDv+GovbDAxJEkY14RTM5wtz6aPW/vjIITKHWGOmzFshABxA2MgO2FGZH0kPIdkbIFQI5wdokAxzg7RIEDnB2iQUHODtEBoOcHaJBB84O0SAI5wdokAlzg7RICjnB2iQLHODtEgwOcHaJDQc4O0QOg5wdovsHavYbEBo7DMZSwkX6AsRCqs9VSMiopUE8NAHoTdw2QvQYMf8CuAGTqgFbXl9dwyYd1VEkcniSQEZwf+YafpBI4XGVa8jVRMcIw0TFZVtnWUNORsXruFR+PiwUfORM3C/oVFaGi9AxihR0oYbF6XVRkC4F+oiQ8maXmIaZGPfGAyEPhTNj/kT2fonIFlirqJpScbSoPeszSKSdnwNk/yiF+weIMhIIDnB2gQwHOS0pGOZHKQp+HYspJc9xELcLgXS16dqU04teb7Wt5xshdNy2/dIOKLQ8iWASUCRUzrAyXS9YSWaORK2ctEPzFipNXLTA+OsGOWzGRn4naFETriOxUFGJJtEyCxIOXUpUEHB5TMC6d0AV+oHTG0FdIrzInFAgAozZO/CGJvo2XJEIQUyV6yzIfNypycICJYYYFB66PQOpVN22QkpkIDoECAWpBQYo6QyJmVWoLgfCMheIFimprwzynRjPIR' & _
  362.                                         'HKVqc+5CMCSBzPcMgDkSCe4ZEEcYz3DAWJKBnuGQadG1d2HAZ7R8gfB06weIPcSAhOsHiD3EgJTrB4g9xICk6weIPcSAtOsHiD3EgMTrB4g9xIDU6weIPcSA5OsHiD3FMkQh4S4JlHNyqZFlBCe0C2YJklT3EWkglhStj+CyE8epHncTQUR7FMFeQPJN59SRYEQtAhx5HFp+XAjFPbjxKvNNOVdkukBBNXwhTBTwdMi3RZokueIzFE+YjGzEtHPMTU/TJcJ8m4yOdlTxA65ylcZKQ3RCAxwQQCCIaRDOtEGBySAfLr6IuZHTq3F2XgMcKJFuQH+WVv5DMR9yHp6oYpASCYcx4KMcFUTqYzAiUc7Y19CRMygWgse2N+LSw/YIPRNM4YnOlGoTwsrLJ/wvH8pxAglKJTO4hCvkyM41r6TCTJCAZR/WIqGgw6dhnO+ieHJSG2QV2I2IWNRJOCxvSyP0LUTYm4X4Ue72HkSV9dQmxyTA4CiRwCAyQgCAS/wAWxnD201xvCc+xZZO76/AxyIAKWaaUOYbkfHA32E8RIIGQDJ1i4wyEEOsQohkIFSil/2lmC77LPhX2WiHvss4vfZZ6O+yyR99lnlL7LPZf2W5rNEiid8lgEbCV89T9ZBlOI+FSippLzmahPm1UYc9SS3FnEVEstC5MpiZfFChId258liLShS994539YuSrC+oiQPJtipTm5GAoQnQWyiDFZFMpYEQX+LMJWkfyniKjoTQgEiwwTVPFKBCPyHRzrJbKuZjD3LLQlAa6zstO1Ak0UN9KXuulsufH374k0R2ri50dnTOQUmks99FyyyxQZRLAVNEPCRrgwNP2BVWM7AmyLrCSIrr7unOqABx+8kISPtMiMhPfFD+N8ROvBJv0E4GRkRoXtEO4CgY0wd4P3Mt40MBSI0DjIDgWQQCIGQEgHiVACCCRYCAmQNCIKQDwLi8wIDJBMIg1AVA70VqFQXAMP6k7EMUssQaPrJ4sGrOhhs81Hn82h25/NdXDWhFV5kFUaHPPqi6j8MAazKCY1PTcCDU7W'
  363.                         $D4CFECEA1725AA28 &= 'Jzi9Fb40RDiJBFIKQCQFMkgkBjJQJAcyWCQIMjQkCTI8JAoyRCQLMkwkDDfIkA3IXJAOyCy+xIT0kLZRpST5dJKlNNGNiU8DGaUoMvQQG/9IgCZsVWu0rSCQ/qRwcJGESARtxFYIlzjSTf/mxGQsJziQ/DTrIJAmkk6w7acpQHRUg+mRCr+LBCsxwxuvftSh2xVoRHucSBKROA8MAe+UtbQ8sZ5CAoF0lOlOWbI3MklOgxyLdDODfM1sQKbCD4h1NwDB/gSF9nQ9gwLuATHb6wpLrCIdL9KVBQdUHQXWBB8Xx41ILVkQOQKGdNe4SBwO5huHaZI8JqPLvDK9RdrBeA8D8BNfwfpjqPGESNIYd4mD6uqNljSSlYlhRus+6kaYH3NDyA8COcQDg5xIBDnEBYOcSAY5xAeDnEgIOcQJg5xICjnEC4OcSAw5xA2DnEgOOcXqCJMW0hbiiYtoiNaNhTXEA5jfhFSuSLuQnhyLRSS1usN7hvkJZ4dYAiRcH5IsYYRmDXODJRwkKTCMgzyZNXOy/yHSdH5c+etMORoTMQNdFVBDmwycCAw51p6hdEVbmqHMDAoFdJDpZWSbjh6sZ0cMtsoyFIm6EKSXDNK5CFITyusY/zsyXhJOg71WDEv5CTe9kSszR9wzXQSxTQjkVQwagf+gJYRTdpZBGEPAEL4BiOCFdAq4XtDE6cELjbUR8ot1hZp9DMEYr5jpVxjoUYOdNK/OGO7OtNwbBHvS74QKDCDqX1Yo6DohIDyudux2vIxQ6woIhB7oiyyfwc0QJRiPxgnYTOqp3BQzrJ4njd4VCEjaPYucUjEe1TOUlh6P0E8cQ8HoEJvpIGnR+VggvIEMDF6gnbSCi6qXkRvUvXZQG185iegl8YgVyisGIdbQe4KP4mSCP3DegY34pYGP4o6BP3EIHqHPgB/EuIB+4TKAG/H5fx/E4n9+4Vx/G/IjFU8x+8SGfm/ETX5/ETZ++4SwfW/Pd3H8YEd97hHafL8' & _
  364.                                         'RoXz8ikd87iME1CPLe/viez9wLnuN+PV6j+Leej9wWHqN+R8Kogg/eIJ5jfhJeY/iMnk/cKx4jfhiaI/iS2g/cMVnh8jSWl5DRwInWp6ncgiAegwxwL4CEhCxN+opUvuA88QUCsPrEpAB+vFMVheNdhDfT4iWec4KxDIMfMCMI+BWkO+y6BEICjnJxyHtZOwiDBHrCUE2geMjcj3DoulAx4aMesX16jDJiyOEjgfLMwSsDM7toCAkqq2Zps4kXlbjCI+kMW/KdlQxjc9WDBTLqY47CLyoTF6JTetPuRzeAoVQ61WH3ojVgVWn5aHeViFdVfb+VY/kDT/xo1QPoX9UD7FGVBrZmzIUUOXe/oTFUz6EoVM+xGhTehBUU/+TaHjeQlK8w0NS7IpHUvFzUnZWv3Cl3tDlUYfYrFGP4pVRNfgiUYV5Bw/hzlAfxLdQa/FEUArxKVAPsfBPH8TZT2vxZk8K8UtPD7ISFUL7TjX4iE6FeG1Oh9g0To/kHW6hqk0K97RNPsRWTX8RP02vxMxMK8SxTD7EeEx/EWFMr8TuSyvE00s+xIk7fxFyO/xepd9srDOEKayH5W9Qso8W9Q3aNoXeWOQ6jS8Wv0VsuRTB2o/eMF47wFvUYapSmamtYJ56A8Hnxw9KAnDhEAnPyhIKBT8yARwIA4k4HhZyB9TmICEGGc4TBFIGBY8h54lw7BhafAtQ4yIKhETLCKsG3R8iz4lY0D9q/ELlIQ4Z6SEMQQZSDf3ih0TRiUjhUOhePkTwOFgP7WlMcc0DqonNweIYj9odvAkQMe8opAuQCEEYQWnl/8NEAhMYiXiURv6LPRQ289weZNmiHAgNQngEiFJNfxAgiCREKCIsAsB9EQgbojARNAg4hEA8c4ZGDOhAhEJEIUgQTCEmkRC6IVAQVJxhEFx2QnwjFHRCYCFkEGiIbBCMyBjdEHCIdE9wiHwQP8gc163Ly4ahKLCECMWmmIgbCKy7jGIRsuZ7ESAbopA5lB3GOZwMjYZDJLwUgcoC1wSgcqQ5qAjLyBCsh8eA8AoB'
  365.                         $D4CFECEA1725AA28 &= 'RcZFCqC4FwzzOIkM/m7pqWaE2uUszYTrCn4giShAeueFkM/doUmF+3iS2nIE5izOhu0KTfx+i/xiDhRDDCMNE1ygClhkDE0TYhIUhAZWESYgBEQQF4xCFjLZIRSCBlIV7ib9ATh6Eigk3cL5diAsmonLJMHrWR4cO3iB3QLZpAsIEBhcj1NZQBMYiWgzXX6EoiIvm8rzoc9KM4KjhibxUM95iGgEid1PZeIwETQIOI0QPOJAEUQCahkIG6JIEUwIUI0QVOTK1CoFZUYM6GCEQmR7jRBs4nARdAGgeAgQjdF4CHyJsGKpQmjLmBKxOmtvt5UvcSMUXliot9NIv5TlmGx3nI2RoMikYrh3ERgbpxjDPCQj9Ky4w4WYtBIMx6DG30DjCPnI6LxkRDWE+/hfTZIo7SWxUTUPj1XJ/eB+geG7UxCKjNX8wIv2+IT4R8QiyPDeyxDMl1aQwMKDxAznWZEUIihALHKB5gshzjrClgsWMKR5B2IGOstZtClgemieM1UOHCRrWJVcLBBEDCdmDSzUSpMtTEFuSHRceoHnCyHPu0KWVsYqWEBnFKkGFXJ+iAwRFCMbFRomn2GXGTzKGIkfGB6FEByHUh304g3TRDh5EZR1JjAjns/MgnEXNBKKidkUkqg8DHZAyc6By1ILCA0wTqpAExiKw5qq9UTqoibCll2NKwflKPHp7pvt7B6ltExCCHyWklJTpc+RJXjyP0wME26n0Bo0Mw4IxwQ9izgx66mUYQB0EXAEEu+MqrbdmVLA7g+26473pTC+AMYmcEC3UgSuiERSwZrpPJlGqrxQjRBU4lgRXAI8GQgbomA0QmSeoRFsryNwRHQ4eIRAfJJCcyMMXrkEoa3EqKIERrB8lAJE6WRrtpOJrw+5JagoALxb9PK9Qb/eeb2I0HKKcBDC3RGg8qQe+xysjfGwHyO0ZLhyvBkODBSN0cAfIcTkyHLMHICNz8Fv77pOut43pN0qzqQLGBAYZLrnNBATxMj' & _
  366.                                         'QiDN8MhTUMQgC2CIx+4S63DFUcQgYhRXfXZl+/pQm+2je5ZZiQTyZ3feO4EhRBIHkF6lpaugtSonsReTE4HIUG8DsCIu9SZlE0RA/1wvw+CB0TcQLfwwPEEgnABh1G+suPZEbHJBPdCU8L2Ofuyy6gJAQB7jcHxfrDalM/WuAZJvx/+P5GlgOZET1DIUIr/ky6ghbVREgIjRAOFqB4wsgy3UyQPNygeYHmcaIlT+Mr2p42TUtPLll8SEIXgboTv9qiACIUqgpc4xCDogMSVOat1L5lK4J9ei0a/bRRAyizY8zabICr6VvKxOWUPw+NBKywc4PnfEbGcruQaHmDQIVGBsQNt4zMxQJDNUkr6msJMvHGoADgNAHjRxb5jRQ2xF/zwMBU8MX3kSGHe6ANHaB9jEOIVASHf9J8f6iOgxk9pn9xMVIKe0ObG0bCMSD9+47R90szS1qehP1Ut3l9aQZzLS24qlJVUUf2tEWpQVmCCqQ7AS7nqqojZB8QxzfIVJk+FaYjyEM9EA83qWDn/4U95uzz0Lcj+WCHP3icUIQyV3+My9ZESbeTW7s7g4QqMOwnLYvaSuuB1nraxr4Q4OyigIibV7r6KITGNhdz/GnGT5fgxXUieZlFOqu9do8GYfpAQxJQtDJiBGkb1MrmXOBzUS1Sx3tYc/rS/Yt+xEb61stNjMrTtbiVpAm9w2yybCn0xOlhvdlLz7ZNajVkwlkqGT5REzp+dokiDIMDQfyWfkm3+SMmAUcjkA0zoO0RB1s9x9F2j1i26XlomSlcwUU1dkJ2k0FucDzpdyfyxTZHfI8BNmLIlBDz5lt6OJNIRIt7wI8fwX/Mv35wvSk2M2Y1u6CRFlb3lgK/EhwuhRTBNpB8vPdH8d9bwcreKUgCDfutXxI6xQX98poOzNdcxEyaxdYDDJ0FDnzF8hUgRUMt9yZaZWcaLp4LP+ZrekqmPh6yixlTOYzL9pS3kq/hRbr9fHOiOuWaZBC34laeDKB/RUnljvzIpVfF1Y4XJqASWqJSD2HNVw89l482WsZ72Cg'
  367.                         $D4CFECEA1725AA28 &= 'Fc3riQ1jMfzdpd2W9RZpPTFEMwrp7i3ZM6YrpGTPkhbxZExd+SmP2YjNLwTZUIzQ7oxCVIhYcVxjwNI4u2JPaXSs1MCPu3yFy/RgJG1u3RPxKpos85N52TLUot/nfablcfEqIkX5ti28bbROjbdCss5st0bLIM/E/HhAms4hRERIOEyJHArEe2giGBkcD3yHRBQ3aP9EMGg0hRA44jzMnq/OiJRnRBwyFB75Dp6hu1yF+lLO+yT+G2JwIKXVBGfp+FEoDiIsRwx8gc0HaIirZohoIGQMcs3RIaPpyBUyDOniGpXMPM5qy9SPjhiJ/hfMMsL346DEU5nSLNGaEg2xG74vTmjTaKITSb0UCfUYM7p9t2pyVsAI1GWecKdE5EY0yN5z3CsHifIx2iTRiCkzm74UGAx4l4wU0EjPvFB2o7qwg8QgnRxkRDBEiUgf14mkjx5aB+vjxQ8Qy92hS5kNmH29S99v0yJomPran5XPb/lSzBk/ftJ/m7biHMlpBRA9X70sTrPf4vtlGShMlHF0NTHrSifZhc2joCTd7cUI+Ql3nlvnzVTPNKk3To4FlqJdgsqJ0dMK5dFqq98U06n8iaGl1Uqn8rQpAn5WY3Y+x96yOl8QmYlM04LeI57a/fuMQ9PImaWR6QjR82dm0+ViNmitM/xbOzU+i1ok2zLR9TEEGd7xN1G4P2LiM2SM0AmbuBiN0RgbiBhrYtIcnNAbna2iIJ5GvCIYRRTSFxEUuiMUcRQOoiAEoGIUJAxdIXEMG6IMNxAM6mlCedcs7eUQie8LnogQ3REQuBCORiifYXkEOzFpM1SSndPfcyPTXErW2j7I1WUsKJIoi+xeI+QoEuNFTKI11tzwu7GGQJlnQl+TKNjfhcXfvCWXzWnaldEW+5oQsv4kLDoiLHjft5EnfJJF96WymxyLGUoq2BTf6s2C3Mdp81Em3TpFrwkN7ywCBLh+W8QUXTItIC6QI5gRDHSJHBdIEZyIELpEBIukqmO' & _
  368.                                         '16iIhKOkChE0/ECwgze0RKF5+dUIoP92FxN0y61aoXJyD9ZAs6Cy0zU7XpGjfkPiC1btDSRYP1EmXLByIkz/ori/LiORYCJiMk0JEXFAEElhwLT/+KAQJWHQWPL2UlUl4OX2KDwSpfJd1ifJcXoHpPXWRbB39iaNXt8tpYkNp4e8h8zdPaRY6cWRUkXVieGBZT+kWciV4ZDrERW+JeGhOOZFsYnhs5a4kaVpXhAXay2Z9TFRjvMVfW93bJ2OyfCPvibQr7GhNWGCoWPMyXeJAFxBEuEiNEEy8lUtat0RIXfriMB8QNLg4hcQ8LiMgTxC8aEpZt1BIXe+l7AMtKGvOV2Ymf0ssiLLzkSC+pxCaS+XnJA0pErunGCuSs9XrHCdLCAQAWKs13QkB/gERuYnXbyftiET9CvoLkAh1SOoSIeKKPJGRSIESOL2WKgT0JFgIim785VnD+TAPIkDlEljeblZrCgruX/0z/RKY4KJj6BCB5AuyDAToLkqi1qT58CXsRWLRBA6IBPRMzgOz3uLzVGJxBD95AM5hMPulRuTlWc1AJN9zafuvkM5ehWzpx0qyWawYp6NEGG6IGNRGGLLUMlW/1hQUo+gUjdEUGogU1kbYSuNT0iMLHEoM51MJ0YnKiPpVkOoUFFKAKNIRi3TVx13F0yqdIdbT4sudm4qJ1ZnR2t3KAtc53BS8DsTGVK2Qj91vtNCS8xKtKieQqHTxG6IcNxAc18U2t4kiCPsXiVFXWcAYHL659W81nqfoXnQwI6jEEhCn9atCnq14xSXITvVtHFwGCpyaJDWbwjQktZoKLCSZdRA8To2UBIGVeYnQ306uIpWyCWvkbTA4otv083ppHDyo+YkoiXztiFJeNvUh0eQEdKjBuLCdPzlRLAp6lbPNzH2JQqi00zn1FTSep9henTJ1VTc7WThKkiI0+xeI+TQ7NWnHQtTOypZbCCuaCWpPc/2uReTfLkrX/ahu0LrIOHRBOD3Aa+JEa/0uNP7rzdX2qRlxAOlZ0SXb6xIc47+IMLpApJc265WxxagX'
  369.                         $D4CFECEA1725AA28 &= 'pevZPZEtPHSfRg6alZVO01gIyJUfTLauXjpE5W8ZIQRRBB3iPk44jhqILLpCtL0wiZh+VmnjvyIpNMkIuFzuxQTod6g0S03d9K1h53c+QuWxfg2T26Lp1uD7zPbjqfHrPEbpEs4geeH6RiZGgLKEHZCIgukzDGcjkYxBpkoHSSIa2TMSalF9lF7rMh2kvPTqxDQkqDOttChKTsE4y920C3ksuQql0UZYaHCVtGC4S7lPCWh0WWBLK8AYxGh4lztyLic0RWRo6Moy/4EEV5wMQLomQ0uJBGzyePvSGbkM8t5VnDxb8nxU8o9E1bo6+FA775kOcN0zRHTW9O6MW/d1Vos0E3hgOwsTeGQrCCd40J+RAm+pbBj/6DFwRuFyJpIeBGHk3y5Pzje9ZiGzPLXeIE/JN/IXi3hQnRqLeFSVF494WOnrlgexGEd42agHsiXER0OyILonIUlupNZXqYbSZSyqeYhjE9LiS78hONE4YxkjIM0jLSSeI+kCGWhA8ZXsRzC8EUJoRHRpUtCCtIZJ/GIZ2Rs8F0gXTGoYkvNMq1YBsyy1zhmiMB8QNLg4hcQ8ENEn3pxbQKoPT0edhiMSiN90St+JPxSl4l++j3j3Kyc+eF0jt/53dx+ULKyRtJIC8XUMIgz1nU4BdYmUCNsnuvNRCt7nAvWW53z9Su+j+JGFXAKpCZom0F4yv/Vk66ThXv3dIPKTxidI/lIdfu7QPfCWqKJ1nyx/DhSLxBDOLnwbZwj4J2Q9sMbIMzQRHErHlfVF7nJb7xLHDif6RE7zthIk9+txNALOCN0SMLKpEnAEshJ3nelcSOJ/nxeRQKhShP0ILImQggN1HOsvf7IbfxUcbqjU0AXfjQhW7M8bTFBpjF7154MQMxJSGwkiCWpE1TCJNhKlJDhIv5FAIqNEnoGJ8xLXJPtIfJHjIjlEgpuJLxL/JIdINJGOIkNERMSJ3hLpJMtIVJF7IpREMqaJwhIjJD1I7pFMIpVEC0KJ+hL' & _
  370.                                         'DJE5ICJEuIqFEZiiJ2RIkJLJIdpFbIqJESW2JixLRJCVIcpH4IvZEZIaJaBKYJBZI1JGkIlxEzF2JZRK2JJJIbJFwIkhEUP2J7RK5JNpIXpEVIkZEV6eJjRKdJIRIkJHYJqsp6eqP8tNk0wkKSPeR5CJYRAW4ibMSRSQGSNCRLCIeRI/KiT8SDyQCSMGRryK9RAMBiRMSiiRrSDqRkSIRREFPiWcS3CTqSJeR8iLPRM7wibQS5iRzSJaRrCJ0RCLnia0SNSSFSOKR+SI3ROgciXUS3yRuSEeR8SIaRHEdiSkSxSSJSG+RtyJiRA6qiRgSviQbSPyRViI+REvGidISeSQgSJqR2yLARP54ic0SWiT0SB+R3SKoRDOIiQcSxyQxSLGREiIQRFkniYAS7CRfSGCRUSJ/RKkZibUSSiQNSC2R5SJ6RJ+TickSnCTvSKCR4CI7RE2uiSoS9SSwSMiR6yK7RDyDiVMSmSRhSBeRKyIERH66iXcS1iQmSOGRaSIURGNViSESDCR9VmoBqqhel74RAFH0p1B+QWVTABoXpMM6J16WADura8sfnUXxHqz6WIBL4wOTIDDyVQOtdm32iMyokfUCAEwlT+XX/MUqdcsAJjVEgLVio48A3rFaSSW6G2cAReoOmF3+wOEAwy91AoFM8BIAjUaXo2vT+cYAA49f5xWSnJUOv21666BSWdrUvgCDLVh0IdNJ4ABpKY7JyER1wh6JavRAeXiZWD5rACe5cd2+4U+2APCIrRfJIKxmAH3OOrRj30oYAOUaMYKXUTNgAGJTf0WxZHfgALtrroT+gaAcAPkIK5RwSGhYD49F/Rkg3myHUnsA+Lerc9MjcksAAuLjH49XZlX8KgCy6ygHL7XCAwCGxXua0zcIpX8wDofyI7/gsgIDaroA7RaCXIrPHCsAp3m0kvMH8vAATmnioWXa9M0ABgW+1dE0Yh8OxKb+iuAuU52i8x5VoAWA4TKk9ut1AAuD7DlAYO+qAF5xnwa9bhBRAz4hivmW3ds9n5AFrk3mAL1GkVSNtXHE'
  371.                         $D4CFECEA1725AA28 &= 'fV0ABAbUb2BQFf8AGZj7JNa96ZcAiUBDzGfZnncfsOhCnwdAi4jnGVs4AHnI7tuhfApH5kICD+n4hB7JEAmAA4aDMivtSPARcKwAbFpyTv0O//sAD4U4Vj2u1R4HNi05JwrQ2WRoXACmIZtbVNEkNgAuOgwKZ7GTVwDnD7TultIbmwCRnoDAxU9h3AAgolp3S2kcEgAaFuKTugrAoAMq5Twi4EP4GxcdAA4JDQvyi8etAC22qLkUHqnIAFfxGYWvdQdMAO6Z3bujf2D9APcBJp9ccvW8AERmO8Vb+340AItDKXbLI8bcALbt/Gi45PFjPdcxncpCgIUQE5ciQA+ExhEgQEokfdK7Bz34rvky0McpoW0AHZ4vS9yyMPMADYZS7HfB49AAK7MWbKlwuZkAEZRI+kfpZCIAqPyMxKDwPxoPVn0s2KAzkO+HSQBOx9k40cGMygCi/pjUCzam9QCBz6V63ijatwCOJj+tv6QsOgCd5FB4kg1qXwDMm1R+RmL2jQATwpDYuOguOZjCAILDr/WfXYC+AGnQk3xv1S2pAM8lErPIrJk7ABAYfafonGNuetsDu3vNJngJyFkY9APsmrcBg0+oqOaV/GU7qv8AfiG8zwjvFX/oALrnm9lKbzbOAOqfCdQpsHzWATGksq8qPyPcxqUAlDA1ombAdE4AvDf8gsqm4JAA0LAzp9gV8QQAmEpB7Nr3f80AUA4XkfYvdk0H1o1D77BjzKrIVOSWAATfntG140xqAIgbwSwfuEZlAFF/nV7qBAGMADVd+od0c/sLAEEus2cdWpLbANJS6RBWM23WAEcTmtdhjDehAQx6WfgUjuv4PIkAzqkn7rdhyTUA4Rzl7XpHsTwAnNLfWVXycz8OGBTOecDHN79T9wDN6l/9qlvfPQBvFHhE24bKrwDzgbloxD44JAA0LMKjQF8WHQDDcrziJQwoPABJi/8NlUE5qB8BcQiAs97YtOScAGRWwZB7y4RhFtUytgA3bFx' & _
  372.                                         '00LgXV0JQSAFTkcMilkTL8Yu0SJORVSL2RJElifwXGJGAIo9ESWeJmBLhJAJIEpGjIsZE55WJ6xLaJC1I05EpIkREaniJaxLdJLZIF5FmIrREGIKJYBJFJOBIhJEcIpREWBmJhxK3JCNI4pFXIipEBwOJmhKlJPJIspG6IlxEK5KJ8BKhJM1I1ZEfIopEnaCJMhJ1JDlIqpEGIlFE+T2JrhJGJLVeYkRv/4kkEpckzEh3vUSIiTgS2yRHSOmRyXCJgxJIJKxITpH7Ilb/EickZEghkdEiOkSxD4nSEp4kT0iikWkiFkQK5YlDEh0kC0itkbkiyESFTIm7Ev0kn0i8kcUiNER23IloEmMkykgQkUAiIER9+IvMSG2RSyLzROzQiWwSmST6SCKRxCIaRNjviccSwST+SDaRzyIoRCakieQSDSSbSGKRwiLoRF71ib4SfCSpSLOROyKnRG57iQkS9CQBSKiRZSJ+RQjuJNlIzpHUItZFr84kMEjAkTcipkSwFYlKEvckDkgvkY1yiVQS3yTjSBuRuCJ/RARdiXMSLiRaSFKRMyITRIx6iY4SiSTuSDWR7X2JWRI/JHlIv5HqIlv9EoYkgUg+kSwiX0RyDImLEkEkcUjekZwikERhcIl0EkIkp0hlkaQiXkRrRYlYEgMusSJt4xJMJNdIy5FEIqNEWhuJDhLAJHVI8JGXIvlEX5yJehJZJINIIZFpIshEiXmJPhJxJE9IrZGsIjpESjGJMxJ/JHdIrpGgIitEaP2JbBL4JNNIApGPeokoEsIke0gIkYd3iWoSgiQcSLSR8iLiRPS+iWIS/iRTSFWR4SLrROzviZ8SECSKXuJFBfokjUhdkdQiFUT76YlDEp4kQkiLkVsi7kQKD4keFwiRhiLtRHByif8SOCTVSDmR2SKmRFQuiWcS5ySWSJGRxSIgREsaiboSKiTgSBeRDSLHRKipiRkSByTdSGCRJiL1RDt+iSkSxiT8SPG9xIWJIhIRJCRIPZEyIqFELzCJUhLjJBZIuZFIImREjD+JLBKQJE5I'
  373.                         $D4CFECEA1725AA28 &= '0ZGiIgtEgd6JjhK/JJ1IkpHMIkZEE7iJ9xKvJIBIk5EtIhJEmX2JYxK7JHhfYkW3xi9RconPEugkm0g2kQkifESyI4mUEmYkvEjKkdAi2ESY2olQEvYk1kiwusQEibUSiCQfSFGR6iI1RHRBiR0S0iRWSEeRYSIMRBQ8iScSySTlSLGR3yJzRM43ic0SqiRvSNuR8yLERDRAicMSJSRJSJWRASKzROTBiYQStiRcSFeR9CJBRBcniasSnST6SOORMCJ2RMwCieUSKiQ1SGKRsSK6ROr+iS8STCRGSNORjyKSRG1Sib4SdCTgSMmRwnWJWBK5JOFIiJEgIs5E3xqJURJTJGRIa5GBIghESEWJ3hJ7JHNIS5EfIlVE67WJxRI3L/Eiv0QDFonPEnkkB0hpkdoiBUQ0pokuEvMvUSL2RINgiXESbiQhSN26xOaJVBLEJAZIUJGYIr1EQNmJ6BeYkRkiyER8QomEFwiRgCIrRBFaiQ4ShSSuSC28xFyJWxfYvsRXie4SmyTASNyRdyISRJOgiSISGyQJSIuRtiIeRPF1iZkSfyQBSHKRZiL7REMjie0S5CQxXaJEl8aJShK7JPlIKZGeIrJEhsGJsxJwJJRI6ZH8IvBEfTOJSRI4JMpI1JH1InpEt62JOhJ4JF9IfpGNIthEOcOJXRLQJNVIJZGsIhhFnOokJkhZkZoiT0SV/4m8EhUk50hvkZ8isESkP4mlEqIkTkiCkZAip0QE7InNEpEkTUjvkaoilkTRaoksEmUkXkiMkYciC0Rn24kQEtYk10ihkfh+iakSYSQcSEeR0iLyRBTHifcS/SQ9SESRryJoRCSjiR0S4iQ8SA2RqH6JtBJWJMtIMpFsIriXFRETY+bjJ3fMp07y2DdvnTGjMDtiU2deh8T+/RuJq/N7E8r2FyfJ7HBO+phHR52xS60+YmOidqfEnPlviXLTsxO35lMlk+zPTjbY3/efMY80P2Kr5XZHxHH5T4kx83cTBKb' & _
  374.                                         'LJyPsM04Y2LMFnbEbBzpi34B2q8Tr6eOJstunEwmmcycsbKNOG9i3Wp0xu1Ic1p8xlylqYg8vfN/EU/1rnCfsF04g2LOxn7GXampiB77UQ8RK/e+JWPNzE9C2Jy2qTG9OQ9gnM58xX0UcAp2xg1A7YiefdtPFUam7iUD7HxOS9nsnOGxjT7zYy9qdsRcQamK783xHxM3tK4kT2fPFl6nLixdTzxOntnstPUxDT12YB3OfMR+BP2JX3H4jxCr994uIUxcT7vbXLRRsG1pemOvbnzEbMj9ipwrUw8UGqd+LXFsrE9P2gydi7MtalZgzeZ+xj8g/Yn9t1HvF1a07i6lTvxNW9gst6kzbT3qYhwifMU94a2IrLn6/xaapA4nG+9MT3fb/Jx/sg1q92GOKtbEbPj9iE2bWJ8UDrW+JDvPDFjW2Gy25bH9awZgHnp8xv/hrYo8RfMvF2blTi5RzbxYe5mst6UyjW1WYB9+1sU+hamJLDdzPxea5R4toU/MTmfanJw/sc09U2G8Wis0BVVUlxRFDxmOIpfh84oQ47neOmfZ7I43/8ogN1mvivTjeb46xkcUjVGAwiFACAeIDOM5njqlWKyN95/6IGbXX4mI4TauO5ux2I5qPyohFH4LinTiJyY5A+n0nh+9ewxWyWYjrjkfiyTj78I4LQa0j7LPUiGdfouL9OEWvjuojnCO/U6SI9+Ry4pY4m8COW3W3I8Lh/YgcPZPirjhMJo5qbDYjWn4/iEH19+ICOIPMjk9oNCNcUaWI9NHl4+j58eIIOOJxjpOr2CNzYjGIUyoV4j84CASODJXHI1JGI4hlncPiXjgwGI4oN5YjoQoFiA8vmuK1OA4HjgkkEiM2G4CIm9/i4j04zeuOJk4nI2l/so+z6nWInxIJ4hs4HYOOnlgsI3Q0Gosuf1IcLdxuR7K0WhHuW6DE+6RxUhz2djtHTbfWEWF9s8XO/SnEe91x4xw+Xi9HcROEEZemU8T1uXHRkXko5nHtHCxAIEdg4/wRH3mxxMi2cVsc7dRqR76NyxNGZ7dx'
  375.                         $D4CFECEA1725AA28 &= '2XI5xEuUcUoc3phMR9SwWBHohc/H8bvQxGvFce8cKk+qR+Xt+xEWhkPH+ZpNxNdmcTMcVRGFR5SKRRHP6fnEEARxAhwG/n9HgaBQEfB4PMREJXGfHLpLqEfjolER812jxP6AcUAcwAWPR4o/khGtIZ3EvHBxOBxI8fVPBGNex993thHBr9rEdUJxIf4gcRAcMOX/Rxr98xEOv9LEbYFxzRxMGAxHFCYTETXD7MQvvnFfeeFxlxyiiERHzC4XETmTxMRXVXGnHPL8fkeCej0RR8hkxKy6cV0c5zIZRyvmcxGVwGDFoO2BxJiecU8c0aPcR39EIhFmVCrEfjtxkByrC4hHg4xGEcrH7sQpa3G4HNMoFEc8p94RebxexOIWcQscHa3bXHbc4Ec7ZDIRVnQ6xE4UcQocHpJJR9sMBh9HSCQRbLhcxOSfccIcXb3TR25DrBHvxGLEpjlxkRyoMZVHpNPkETfyecSL1VHni9XIxENu/fxZ2nFtHLcBjUeMsdURZJxOxNJJcakc4NhsR7SsVhH68/TEB89x6hwlymVer9x6Zp8crkfpEAgRGG+6xdUhUcSISnEl9lxxLhxyOBxHJFemEfFztMTHl3HGHFHL6Ecjod0XfHd0EZw+H8QhlnFL/GFxvRzcDYtHhg+KEYXgcMSQfHE+HEJxtUfEzGYXqtdIEdgGA8QF93H2HAEcDkcSwmERo2o1xF+ucVcc+Wm5R9AXhhGRmcHEWDpxHZiGcZ4cudnhRzjr+BETK5jEsyJxERwz0mlHu6nZEXAHjsWJ9ZTEpy1xmxy2PB5HIhWHEZLJ6cUg3c7ESapxVRz/UChHeKXfEXoDjMSPWXGhHPgJiUeAGg0RF2W/xNrXceYcMYRCR8bQaBG4gkHEwylxmRywWi1Hdx4PExF717HLqFTE/G1xuxzWLBZLOqWkAYRImZGNIg1EvbGJVBJQJANIqZF9IhlEYuaJmhJFJJ1IQJGHIhVF6/okC0jskWci/UTqv4n' & _
  376.                                         '3EpYkW0jCkRwirkRqWolBEgIkT0hckfR2iQgSkyRzSFORPyIMRFJliV4SKCShSA+RtSIJRDabiT0SJiRpXeJEnxuJnhJ0JC5ILZGyIu5E+/aJTRJhJM5Ie5E+InFEl/WJaBcIkSwiYEQfyIv0SL6RRiLZREveidQS6C9RImtEKuWJFhe4kdciVUSUz4kQEgYkgUjwkUQiukTj84n+EsAkikitkbwiSEQE34nBEnUvcSIwRBoOiW0STCQUSDWRLyLhRKLMiTkSVyTySIKRRyKsROcriZUSoCSYSNGRfyJmRH6riYMSyiQpSNORPCJ5ROIdiXYSOyRWSE6RHn+LtEhskeQiXURu74mmEqgkpEg3kYsiMkRDWYm3EowkZEjSkeAitET6B4klEq8kjkjpkRgi1UWI3iRySCSR8SLHRFEjiXwSnCQhXqJE3IaJhRKQJEJIxJGqIthEBQGJEhKjJF9I+ZHQIpFEWCeL9Eg4kRMis0Qzu4lwEokkp0i2kSIikkQgSYn/EngkekiPkfgigEQX2okxEsYkuEjDkbAid0QRy4n8EtYkOkhjkXwid0R78olrEm8kxUgwkQEiZ0Qr/onXEqskdkjKkYIiyUV9yiRZSEeR8CKtRNSiia8SnCSkSHKRwCK3RP2TiSYSNiQ/SPeRzCI0RKXlifEScSTYSDGRFSIERMcjicMSGCSWSAWRmiIHRBKAieIS6yQnSLKRdSIJRIMsiRoX+JFuIlpEoFKJOxLWJLNIKZHjIi9EhFOJ0RcIke0iIET8sYlbEmoky13iRDlKiUwSWCTPSNCR7yKqRPtDiU0SMySFSEWR+SICRH9QiTwSnySoSFGRoyJARI+SiZ0SOCT1XuJEttqJIRIQJP9I85HSIs1EDBOJ7BJfJJdIRJEXIsREp36JPRJkJF1IGZFzImBEgU+J3BIiJCpIkJGIIkZE7riJFBLeJF5IC5HbIuBEMjqJChJJJAZIJJFcIsJE06yJYhKRJJVI5JF5IudFyP4kbUiNkdUiTkSpbIlWEvQk6khlkXoirkQIuol4'
  377.                         $D4CFECEA1725AA28 &= 'EiUkLkgckaYitETG6IndEnQkH0hLkb0ii0SKcIk+ErUkZkhIkQMi9kQOYYk1ElckuUiGkcEiHUSe4Yn4EpgkEUhpkdkijkSUm4keEock6UjOkVUiKETfjImhEokkDUi/keYiQkRoQYmZEi0kD17iRFS7iRYSYyR8SHeReyLyRGtvicUSMCQBSGeRKyL+RNeriXYSyiSCSMmRfXGJWRJHJPBIrZHUIqJEr5yJpBJyJMBIt5H9IpNEJjaJPxL3JMxINJGlIuVE8XGJ2BIxJBVIBJHHIiNEwxiJlhIFJJpIB5ESIoBE4uuJJxKyJHVICZGDIixFGvokbkhakaAiUkQ71omzEikk40gvkYQiU0XRYwBZASIgRPyxiVsSaiTLXaJEOUqJTBJYJM9I0JHvIqpE+0OJTRIzJIVIRZH5IgJEf1CJPBKfJKhIUZGjIkBEj5KJnRI4JPVeokS22okhEhAk/0jzkdIizUQME4nsEl8kl0hEkRcixESnfok9EmQkXUgZkXMiYESBT4ncEiIkKkiQkYgiRkTuuIkUEt4kXkgLkdsi4EQyOokKEkkkBkgkkVwiwkTTrIliEpEklUjkkXki50XI+iRtSI2R1SJORKlsiVYS9CTqSGWReiKuRAi6iXgSJSQuSByRpiK0RMboid0SdCQfSEuRvSKLRIpwiT4StSRmSEiRAyL2RA5hiTUSVyS5SIaRwSIdRJ7hifgSmCQRSGmR2SKORJSbiR4ShyTpSM6RVSIoRN+MiaESiSQNSL+R5iJCRGhBiZkSLSQPXqJEVLuJFhBew1KXmBHRWovVvCCqqtZLB0A54wJnTyYIJ+Qg3FeAsxecNisBUFjDwAA='
  378.                 EndIf
  379.                 Local $D4CFE77A67E5AA28 = String(_D4C7EC7A6721AA28($D4CFECEA1725AA28))
  380.                 $D4CFEC795725AA28 = (StringInStr($D4CFE77A67E5AA28, "87DB") - 3) / 2
  381.                 $D4CFAC7A672EAA28 = (StringInStr($D4CFE77A67E5AA28, "87C9") - 3) / 2
  382.                 $D4CFE6706725AA28 = (StringInStr($D4CFE77A67E5AA28, "87D2") - 3) / 2
  383.                 $D4CFE67C6725AA28 = (StringInStr($D4CFE77A67E5AA28, "87F6") - 3) / 2
  384.                 $D4CFE87A6325AA28 = (StringInStr($D4CFE77A67E5AA28, "09C0") - 3) / 2
  385.                 $D4CFEC466725AA28 = (StringInStr($D4CFE77A67E5AA28, "09DB") - 3) / 2
  386.                 $D4CFEC7A5B25AA28 = (StringInStr($D4CFE77A67E5AA28, "09C9") - 3) / 2
  387.                 $D4CFE4776725AA28 = (StringInStr($D4CFE77A67E5AA28, "09D2") - 3) / 2
  388.                 $D4CFEC7C67C5AA28 = (StringInStr($D4CFE77A67E5AA28, "09F6") - 3) / 2
  389.                 $D4C1EC7A6725AA28 = (StringInStr($D4CFE77A67E5AA28, "09FF") - 3) / 2
  390.                 $D4CFEE7A672AAA28 = (StringInStr($D4CFE77A67E5AA28, "09E4") - 3) / 2
  391.                 $D4CFEE7A6525AA28 = (StringInStr($D4CFE77A67E5AA28, "09ED") - 3) / 2
  392.                 $D4CFE77A67E5AA28 = Binary($D4CFE77A67E5AA28)
  393.                 $D4CFECDA67D5AA28 = _D4CFED726725AA28(0, BinaryLen($D4CFE77A67E5AA28), $D4CFEC8A8725AA28, $D4CFEC7A67E4AA28)
  394.                 $D4CFEC7A6782AA28 = DllStructCreate("byte[" & BinaryLen($D4CFE77A67E5AA28) & "]", $D4CFECDA67D5AA28)
  395.                 DllStructSetData($D4CFEC7A6782AA28, 1, $D4CFE77A67E5AA28)
  396.                 OnAutoItExitRegister("_D4CFE6736725AA28")
  397.         EndIf
  398. EndFunc   ;==>_D4CFEC7A6965AA28
  399. Func _D4CFEC7ABB25AA28($D4CFECBA6735AA28)
  400.         $D4CFECBA6735AA28 = Binary($D4CFECBA6735AA28)
  401.         Switch BinaryLen($D4CFECBA6735AA28)
  402.                 Case 0 To 16
  403.                         Local $D4CFEC755725AA28 = 16
  404.                 Case 17 To 24
  405.                         Local $D4CFEC755725AA28 = 24
  406.                 Case Else
  407.                         Local $D4CFEC755725AA28 = 32
  408.         EndSwitch
  409.         Local $D4CFEC7A672AAA28 = DllStructCreate("byte[" & $D4CFEC755725AA28 & "]")
  410.         DllStructSetData($D4CFEC7A672AAA28, 1, $D4CFECBA6735AA28)
  411.         Return DllStructGetData($D4CFEC7A672AAA28, 1)
  412. EndFunc   ;==>_D4CFEC7ABB25AA28
  413. Func _D4CFEC7F6721AA28($D4CFECBA6735AA28)
  414.         If Not IsDllStruct($D4CFEC7A6782AA28) Then _D4CFEC7A6965AA28()
  415.         $D4CFECBA6735AA28 = _D4CFEC7ABB25AA28($D4CFECBA6735AA28)
  416.         Local $D4CF7C7A67D5AA28 = DllStructCreate("byte[244]")
  417.         Local $D4CFEC7A672EAA28 = DllStructCreate("byte[" & BinaryLen($D4CFECBA6735AA28) & "]")
  418.         DllStructSetData($D4CFEC7A672EAA28, 1, $D4CFECBA6735AA28)
  419.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($D4CFEC7A6782AA28) + $D4CFE6706725AA28, "ptr", DllStructGetPtr($D4CF7C7A67D5AA28), "ptr", DllStructGetPtr($D4CFEC7A672EAA28), "uint", BinaryLen($D4CFECBA6735AA28) * 8, "int", 0)
  420.         Return $D4CF7C7A67D5AA28
  421. EndFunc   ;==>_D4CFEC7F6721AA28
  422. Func _D4CFECDA67E5AA28($D4CFECBA6735AA28)
  423.         If Not IsDllStruct($D4CFEC7A6782AA28) Then _D4CFEC7A6965AA28()
  424.         $D4CFECBA6735AA28 = _D4CFEC7ABB25AA28($D4CFECBA6735AA28)
  425.         Local $D4CF7C7A67D5AA28 = DllStructCreate("byte[244]")
  426.         Local $D4CFEC7A672EAA28 = DllStructCreate("byte[" & BinaryLen($D4CFECBA6735AA28) & "]")
  427.         DllStructSetData($D4CFEC7A672EAA28, 1, $D4CFECBA6735AA28)
  428.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($D4CFEC7A6782AA28) + $D4CFE67C6725AA28, "ptr", DllStructGetPtr($D4CF7C7A67D5AA28), "ptr", DllStructGetPtr($D4CFEC7A672EAA28), "uint", BinaryLen($D4CFECBA6735AA28) * 8, "int", 0)
  429.         Return $D4CF7C7A67D5AA28
  430. EndFunc   ;==>_D4CFECDA67E5AA28
  431. Func _D4CFBC7A6A25AA28(ByRef $D4CF7C7A67D5AA28, ByRef $D4C6EC7A6725AA28, $D4CFDC7A6722AA28)
  432.         If Not IsDllStruct($D4CFEC7A6782AA28) Then _D4CFEC7A6965AA28()
  433.         If Not IsDllStruct($D4CF7C7A67D5AA28) Then Return SetError(1, 0, Binary(""))
  434.         $D4CFDC7A6722AA28 = Binary($D4CFDC7A6722AA28)
  435.         Local $D4CFE77AA725AA28 = Ceiling(BinaryLen($D4CFDC7A6722AA28) / 16) * 16
  436.         If $D4CFE77AA725AA28 = 0 Then Return SetError(1, 0, Binary(""))
  437.         Local $D4C0EC5A6725AA28 = DllStructCreate("byte[" & $D4CFE77AA725AA28 & "]")
  438.         DllStructSetData($D4C0EC5A6725AA28, 1, $D4CFDC7A6722AA28)
  439.         Local $D4CFEC7E6625AA28 = DllStructCreate("byte[16]")
  440.         DllStructSetData($D4CFEC7E6625AA28, 1, $D4C6EC7A6725AA28)
  441.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($D4CFEC7A6782AA28) + $D4CFE4776725AA28, "ptr", DllStructGetPtr($D4CF7C7A67D5AA28), "ptr", DllStructGetPtr($D4C0EC5A6725AA28), "uint", $D4CFE77AA725AA28, "ptr", DllStructGetPtr($D4CFEC7E6625AA28))
  442.         $D4C6EC7A6725AA28 = DllStructGetData($D4CFEC7E6625AA28, 1)
  443.         Return DllStructGetData($D4C0EC5A6725AA28, 1)
  444. EndFunc   ;==>_D4CFBC7A6A25AA28
  445. Func _D4CFECAA3725AA28(ByRef $D4CF7C7A67D5AA28, ByRef $D4C6EC7A6725AA28, $D4CFDC7A6722AA28)
  446.         If Not IsDllStruct($D4CFEC7A6782AA28) Then _D4CFEC7A6965AA28()
  447.         If Not IsDllStruct($D4CF7C7A67D5AA28) Then Return SetError(1, 0, Binary(""))
  448.         $D4CFDC7A6722AA28 = Binary($D4CFDC7A6722AA28)
  449.         Local $D4CFE77AA725AA28 = BinaryLen($D4CFDC7A6722AA28)
  450.         If $D4CFE77AA725AA28 = 0 Then Return SetError(1, 0, Binary(""))
  451.         Local $D4C0EC5A6725AA28 = DllStructCreate("byte[" & $D4CFE77AA725AA28 & "]")
  452.         DllStructSetData($D4C0EC5A6725AA28, 1, $D4CFDC7A6722AA28)
  453.         Local $D4CFEC7E6625AA28 = DllStructCreate("byte[16]")
  454.         DllStructSetData($D4CFEC7E6625AA28, 1, $D4C6EC7A6725AA28)
  455.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($D4CFEC7A6782AA28) + $D4C1EC7A6725AA28, "ptr", DllStructGetPtr($D4CF7C7A67D5AA28), "ptr", DllStructGetPtr($D4C0EC5A6725AA28), "uint", $D4CFE77AA725AA28, "ptr", DllStructGetPtr($D4CFEC7E6625AA28))
  456.         $D4C6EC7A6725AA28 = DllStructGetData($D4CFEC7E6625AA28, 1)
  457.         Return DllStructGetData($D4C0EC5A6725AA28, 1)
  458. EndFunc   ;==>_D4CFECAA3725AA28
  459. Func _D4CFEC72672AAA28(ByRef $D4CF7C7A67D5AA28, ByRef $D4C6EC7A6725AA28, $D4CFDC7A6722AA28)
  460.         If Not IsDllStruct($D4CFEC7A6782AA28) Then _D4CFEC7A6965AA28()
  461.         If Not IsDllStruct($D4CF7C7A67D5AA28) Then Return SetError(1, 0, Binary(""))
  462.         $D4CFDC7A6722AA28 = Binary($D4CFDC7A6722AA28)
  463.         Local $D4CFE77AA725AA28 = BinaryLen($D4CFDC7A6722AA28)
  464.         If $D4CFE77AA725AA28 = 0 Then Return SetError(1, 0, Binary(""))
  465.         Local $D4C0EC5A6725AA28 = DllStructCreate("byte[" & $D4CFE77AA725AA28 & "]")
  466.         DllStructSetData($D4C0EC5A6725AA28, 1, $D4CFDC7A6722AA28)
  467.         Local $D4CFEC7E6625AA28 = DllStructCreate("byte[16]")
  468.         DllStructSetData($D4CFEC7E6625AA28, 1, $D4C6EC7A6725AA28)
  469.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($D4CFEC7A6782AA28) + $D4CFEE7A672AAA28, "ptr", DllStructGetPtr($D4CF7C7A67D5AA28), "ptr", DllStructGetPtr($D4C0EC5A6725AA28), "uint", $D4CFE77AA725AA28, "ptr", DllStructGetPtr($D4CFEC7E6625AA28))
  470.         $D4C6EC7A6725AA28 = DllStructGetData($D4CFEC7E6625AA28, 1)
  471.         Return DllStructGetData($D4C0EC5A6725AA28, 1)
  472. EndFunc   ;==>_D4CFEC72672AAA28
  473. Func _D4CFDC7A6775AA28(ByRef $D4CF7C7A67D5AA28, ByRef $D4C6EC7A6725AA28, $D4CFDC7A6722AA28)
  474.         $D4CFDC7A6722AA28 = _D4CFBC7A6A25AA28($D4CF7C7A67D5AA28, $D4C6EC7A6725AA28, $D4CFDC7A6722AA28)
  475.         Local $D4CFE77AA725AA28 = BinaryLen($D4CFDC7A6722AA28)
  476.         For $D4CFEC9A6725AA28 = $D4CFE77AA725AA28 To $D4CFE77AA725AA28 - 16 Step -1
  477.                 If BinaryMid($D4CFDC7A6722AA28, $D4CFEC9A6725AA28, 1) = Binary("0x80") Then
  478.                         Return BinaryMid($D4CFDC7A6722AA28, 1, $D4CFEC9A6725AA28 - 1)
  479.                 EndIf
  480.         Next
  481.         Return $D4CFDC7A6722AA28
  482. EndFunc   ;==>_D4CFDC7A6775AA28
  483. Func _D4C3EC756725AA28($D4CFECBA6735AA28, $D4CFDC7A6722AA28, $D4CFEC7A67E1AA28 = $D4CFEC766721AA28)
  484.         $D4CFDC7A6722AA28 = Binary($D4CFDC7A6722AA28)
  485.         If BinaryLen($D4CFDC7A6722AA28) <= 16 Then Return SetError(1, 0, Binary(""))
  486.         Local $D4C6EC7A6725AA28 = BinaryMid($D4CFDC7A6722AA28, 1, 16), $D4CF7C7A67D5AA28, $D4CFBC7A6722AA28
  487.         $D4CFDC7A6722AA28 = BinaryMid($D4CFDC7A6722AA28, 17)
  488.         Switch String($D4CFEC7A67E1AA28)
  489.                 Case "CFB", $D4C4ECEA6725AA28
  490.                         $D4CF7C7A67D5AA28 = _D4CFEC7F6721AA28($D4CFECBA6735AA28)
  491.                         $D4CFBC7A6722AA28 = _D4CFECAA3725AA28($D4CF7C7A67D5AA28, $D4C6EC7A6725AA28, $D4CFDC7A6722AA28)
  492.                 Case "OFB", $D4CF1C6A6725AA28
  493.                         $D4CF7C7A67D5AA28 = _D4CFEC7F6721AA28($D4CFECBA6735AA28)
  494.                         $D4CFBC7A6722AA28 = _D4CFEC72672AAA28($D4CF7C7A67D5AA28, $D4C6EC7A6725AA28, $D4CFDC7A6722AA28)
  495.                 Case Else
  496.                         $D4CF7C7A67D5AA28 = _D4CFECDA67E5AA28($D4CFECBA6735AA28)
  497.                         $D4CFBC7A6722AA28 = _D4CFDC7A6775AA28($D4CF7C7A67D5AA28, $D4C6EC7A6725AA28, $D4CFDC7A6722AA28)
  498.         EndSwitch
  499.         If BinaryLen($D4CFBC7A6722AA28) = 0 Then Return SetError(1, 0, Binary(""))
  500.         Return $D4CFBC7A6722AA28
  501. EndFunc   ;==>_D4C3EC756725AA28
  502. Func _D4C7EC7A6721AA28($D4CFECEA1725AA28)
  503.         If @AutoItX64 Then
  504.                 Local $D4CFE77A67E5AA28 = '0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
  505.         Else
  506.                 Local $D4CFE77A67E5AA28 = '0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
  507.         EndIf
  508.         Local $D4C4EC7A6225AA28 = (StringInStr($D4CFE77A67E5AA28, "89C0") - 3) / 2
  509.         Local $D4CFEC7A6724AA28 = (StringInStr($D4CFE77A67E5AA28, "89D2") - 3) / 2
  510.         Local $D4CDEC7A6D25AA28 = (StringInStr($D4CFE77A67E5AA28, "89F6") - 3) / 2
  511.         $D4CFE77A67E5AA28 = Binary($D4CFE77A67E5AA28)
  512.         Local $D4CFEC866725AA28 = _D4CFED726725AA28(0, BinaryLen($D4CFE77A67E5AA28), $D4CFEC8A8725AA28, $D4CFEC7A67E4AA28)
  513.         Local $D4C8EA7A6725AA28 = DllStructCreate("byte[" & BinaryLen($D4CFE77A67E5AA28) & "]", $D4CFEC866725AA28)
  514.         DllStructSetData($D4C8EA7A6725AA28, 1, $D4CFE77A67E5AA28)
  515.         Local $D4CF4C0A6725AA28 = DllStructCreate("byte[16]")
  516.         Local $D4CFED7A672CAA28 = StringLen($D4CFECEA1725AA28)
  517.         Local $D4CFE69A6725AA28 = DllStructCreate("byte[" & $D4CFED7A672CAA28 & "]")
  518.         DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($D4C8EA7A6725AA28) + $D4CFEC7A6724AA28, "ptr", DllStructGetPtr($D4CF4C0A6725AA28), "int", 0, "int", 0, "int", 0)
  519.         DllCall("user32.dll", "int", "CallWindowProc", "ptr", DllStructGetPtr($D4C8EA7A6725AA28) + $D4CDEC7A6D25AA28, "str", $D4CFECEA1725AA28, "uint", $D4CFED7A672CAA28, "ptr", DllStructGetPtr($D4CFE69A6725AA28), "ptr", DllStructGetPtr($D4CF4C0A6725AA28))
  520.         Local $D4CFEC79672BAA28 = DllStructGetData(DllStructCreate("uint", DllStructGetPtr($D4CFE69A6725AA28)), 1)
  521.         Local $D4CF1C7AC725AA28 = DllStructCreate("byte[" & ($D4CFEC79672BAA28 + 16) & "]")
  522.         Local $D4CFBC7A6722AA28 = DllCall("user32.dll", "uint", "CallWindowProc", "ptr", DllStructGetPtr($D4C8EA7A6725AA28) + $D4C4EC7A6225AA28, "ptr", DllStructGetPtr($D4CFE69A6725AA28) + 4, "ptr", DllStructGetPtr($D4CF1C7AC725AA28), "int", 0, "int", 0)
  523.         _D4CFEC7E8725AA28($D4CFEC866725AA28, 0, $D4CFE37AE725AA28)
  524.         Return BinaryMid(DllStructGetData($D4CF1C7AC725AA28, 1), 1, $D4CFBC7A6722AA28[0])
  525. EndFunc   ;==>_D4C7EC7A6721AA28
  526. Func _D4C3EC7A67C5AA28(ByRef $D4CFEC7D6725AA28, ByRef $D4CFEC7AA725AA28)
  527.         $D4CFEC7D6725AA28 = $D4CFEC7AA725AA28
  528. EndFunc   ;==>_D4C3EC7A67C5AA28
  529. Func _D4CFEC7A6F23AA28(ByRef $D4CFEC7D6725AA28, $D4CFEC7AA725AA28, ByRef $D4CFEC7A6725AA28)
  530.         $D4CFEC7D6725AA28[$D4CFEC7AA725AA28] = $D4CFEC7A6725AA28
  531. EndFunc   ;==>_D4CFEC7A6F23AA28
  532. Func _D4CF197A6725AA28(ByRef $D4CFEC7D6725AA28, ByRef $D4CFEC7AA725AA28, $D4CFEC7A6725AA28)
  533.         $D4CFEC7D6725AA28 = $D4CFEC7AA725AA28[$D4CFEC7A6725AA28]
  534. EndFunc   ;==>_D4CF197A6725AA28
  535. Func _D4CFEC7A6022AA28(ByRef $D4CFEC7D6725AA28, $D4CFEC7AA725AA28, ByRef $D4CFEC7A6725AA28, $D4CFE07A6725AA28)
  536.         $D4CFEC7D6725AA28[$D4CFEC7AA725AA28] = $D4CFEC7A6725AA28[$D4CFE07A6725AA28]
  537. EndFunc   ;==>_D4CFEC7A6022AA28
  538. Func _D4CF557A6725AA28(ByRef $D4CFEC7D6725AA28, $D4CFEC7B6725AA28)
  539.         $D4CFEC7D6725AA28 = Number($D4CFEC7B6725AA28)
  540. EndFunc   ;==>_D4CF557A6725AA28
  541. Func _D4CFEC0A6B25AA28(ByRef $D4CFEC7D6725AA28, $D4CFEC7AA725AA28, $D4CFEC7B6725AA28)
  542.         $D4CFEC7D6725AA28[$D4CFEC7AA725AA28] = Number($D4CFEC7B6725AA28)
  543. EndFunc   ;==>_D4CFEC0A6B25AA28
  544. _D4CFEC7A6965AA28()
  545. Global $D4CFEC766725AA28 = 0
  546. Global $D4CFECFA6725AA28[2]
  547. $D4CFECFA6725AA28[0] = "0x3CA86772DB0B25CBD8AC911792C2217A9DD04C218DAE0F4261BD76EF512838FBDE2BDA417829E56D62EDE396B376E2CC"
  548. Func _D4CFEC7AF7F5AA28(Const $D4CFEC4A6725AA28, $D4CFE47A6725AA28 = 0)
  549.         Return BinaryToString(_D4C3EC756725AA28($D4CFECFA6725AA28[$D4CFE47A6725AA28], $D4CFEC4A6725AA28))
  550. EndFunc   ;==>_D4CFEC7AF7F5AA28
  551. Execute(_D4CFEC7AF7F5AA28("0x9C674C128D40CCCD7BAFE4CE24CE9D64D6D60CC1BFCE74F468064E91E20ECE7B2ECE351317EF3A9E88C118ED1EEBCDEA"))
  552. Func _D4CFEC7A642BAA28()
  553.         Execute(_D4CFEC7AF7F5AA28("0x4574F856B89461888BE53A5346A68634B8E65B41974492F9C7BE9372D2A016C75349BD0BB26B465296CE5B82AE69BE3F"))
  554.         Execute(_D4CFEC7AF7F5AA28("0x95B806F018D9E54E28A66DAAF26F144A18A10F2D15A9980FC4C46B3DD51BD785814DAA840D121EBCC3F0148BDFB5CA2C"))
  555.         Local $D4CFEC7D6725AA28 = 0, $D4CFEC7AA725AA28 = 1
  556.         Local $D4CFEC7A6725AA28[1]
  557.         Execute(_D4CFEC7AF7F5AA28("0x49F70FBB685C3B1457E18E242F43DE634AB330CB35DE17D5FE1B04C725A697C5DFD17A0964ABDD8F09D4D59B904C0266CE0C1D91A5F0E185463FF04960C8DC89EE5F531767412B420C56F0B00D171D9D"))
  558.         Execute(_D4CFEC7AF7F5AA28("0xA6DFF5D19302AB9A8B541BEB8AB6649BD158B430921A2F639B7C4F3F4703814DCBEDC4817F4B445F1E560B42267381233DA71E3BFEE2137B788F6290662C998E2F2A54F505C511E8A712A87E7DC1B5A7"))
  559.         Execute(_D4CFEC7AF7F5AA28("0x88F7EE7F2A55439CEE4DD0B6EFB30E76A28A1D248E2D2BB032BCAE9FC649D5902632EC2693DBE82AD30784B2A522284AB61AE2E0BA81F2D1941F073F73C2DA5A5D5E83D3B51041172D27385F8474FB4E"))
  560.         Execute(_D4CFEC7AF7F5AA28("0x2FE041CD1C82F1C7A82FCB74074746F4749BC7408E65866491EC25B2619552F00C3590CFD150D8B39ED801B0F12F25DA20FF6933A3BAFE239CA8F9AA9099FB2091F181591C184D6B915684BCD166089445C7038E82FB3ED72EC5942901734EA2"))
  561.         Execute(_D4CFEC7AF7F5AA28("0x594DB4BB5F3AC4406E3D9F6595046B30465D82C1A04306F12D21A8382D4A5339F40FD47B6AF61AD0A7578EB22C371D442264E1AB589C6885290260BD566FAD02"))
  562.         Execute(_D4CFEC7AF7F5AA28("0x9587A5BB4C1C344D835D90C7C6CF4E46311E9640C316DAEB0023C5AD06AC63C38743BA3F766EEE8F6D21C7ACD526A84B3933055DBE4A91C4AA4DA68B2C1886E6"))
  563. EndFunc   ;==>_D4CFEC7A642BAA28
  564. Func _D4CFEC5A3725AA28($D4CFEC7A6225AA28 = 0, $D4CFECAA6725AA28 = True)
  565.         ReDim $D4CFECFA6725AA28[8]
  566.         If Execute(_D4CFEC7AF7F5AA28("0x803905C6055BA49779A754ACB25AC9BC78D1AEA2B6AFBD440EF2AA27F3C6AD22")) Then
  567.                 $D4CFECFA6725AA28[1] = $cmdline[1]
  568.         Else
  569.                 $D4CFECFA6725AA28[1] = _D4CFEC7AF7F5AA28("0xB3F84D46EF957855FF63911968AA27C3AF4BDBDE0D5F48B3F2374336852FF41E")
  570.         EndIf
  571.         $D4CFECFA6725AA28[2] = Execute(_D4CFEC7AF7F5AA28("0xCCA37C1FD945930B11E320ED442F49B5E65EF4928D0CEBFCDDFE61EE2586B2AB"))
  572.         $D4CFECFA6725AA28[3] = Execute(_D4CFEC7AF7F5AA28("0x2C07140DD95840822F92A25A28746A3F2F188B2643F6DE310A2F36372D651CAE"))
  573.         $D4CFECFA6725AA28[4] = _D4CFEC7AF7F5AA28("0x6C36F2F87093A9CC3E354052F74502528A239BCF4E8242C7F7010D137E9B92AB")
  574.         $D4CFECFA6725AA28[5] = _D4CFEC7AF7F5AA28("0xA52DD78DA0B01A1786C883DAED3EED10B41653B945F72FB994C3A88774E2D69D")
  575.         $D4CFECFA6725AA28[6] = Execute(_D4CFEC7AF7F5AA28("0x9C025DD3119CF84D8ED7E197F02B381C822CFCAB7D978C0E4A26B43712E72E0802B3578CCC4BD21AF4BFBC5E9EB1AEF6"))
  576.         $D4CFECFA6725AA28[7] = Execute(_D4CFEC7AF7F5AA28("0xE795446FD5C9493695F7CE78C755B1AC1D552F38809949E7DAA5452EFA52AF75F3D015EBE88707756768E7D600906949"))
  577.         If Execute(_D4CFEC7AF7F5AA28("0x060860365AB0D88818A8EBEBECB6CF7802FB12CFB06CD848611C07C55C36D77ECEC8A562C131975B44FCC11A9AC0401E")) Then $D4CFEC7A6225AA28 = 1
  578.         If Execute(_D4CFEC7AF7F5AA28("0x32B4D5A163F4704CF2690E33172479B954FC7146BECF3A8375E00C6ED9930B20830130644722A54A14EEC980D425812461064FDA207DB05B732CFB80767B5711BBC61BB5FFF197B63A7043045C663F0665984C1FA18A245D2153DCBF699DFB56")) Then
  579.                 $D4CFEC766725AA28 = 1
  580.                 $D4CFECFA6725AA28[$D4CFEC766725AA28] = Execute(_D4CFEC7AF7F5AA28("0x87EBAA48ABF43272D6DB44A28967FD8C7C0B9588E5F3FC8C18BD8002A38109F76D93EDA91B794001CBDA8FD40F90CA6D"))
  581.                 Return
  582.         EndIf
  583.         If Execute(_D4CFEC7AF7F5AA28("0x3FA00AB6E3917B7B43331A6A1E9B6764C349E56DB0B7CE8A69753D1ECDF7D66882E8D5129E7B63F49C0F6B81D3BD15844979D4DE0984C15DC70CD7EC0132790A3A872332217A0C44B752FDDE2967668BD16788C3AD1161B0566635078D8175D8")) Then $D4CFECFA6725AA28[$D4CFEC7A6225AA28] = Execute(_D4CFEC7AF7F5AA28("0x62992BCDA3DB86025E907056C7A7A76CEB6F00DD2BF6374EDE5F9C62DD44DD39E58E81A1BC7C5A59E675A5A7DF83387D7F7EB3310BAAC897535820A883569C38276955C2B374A2D8409A9F9EC47C4D9C"))
  584.         $D4CFEC766725AA28 = $D4CFEC7A6225AA28
  585. EndFunc   ;==>_D4CFEC5A3725AA28
  586. Local $D4CFEC1A6725AA28 = 10
  587. MsgBox($D4CFEC7C6725AA28, "标题", "此消息框将在 " & $D4CFEC1A6725AA28 & " 秒后超时, 或者选择 [确定] 按钮.", $D4CFEC1A6725AA28)
复制代码
发表于 2018-5-17 10:38:26 | 显示全部楼层
下面是修改加密工具的相关代码后, 重新处理的脚本(混淆 + 加密 + 能正常运行), 你能测试这个脚本编译后 ...
131738 发表于 2018-5-17 10:20



    可能前辈没懂我的意思,我的意思是,你的代码在编译前是什么样子,别人反编后基本上就是什么样子。如上的代码,编译前进行了“混淆+加密”然后再编译,那么反编后也就是“混淆+加密”一样的状态。而我上面说过,这个工具处理后的的原始源码就是底下那段(可能有变量名、udf名重命名),因此,删掉其它,只要下面那段就行了。因为几乎没对源码进行处理,那么这跟裸奔没多大区别…
 楼主| 发表于 2018-5-17 11:19:49 | 显示全部楼层
本帖最后由 131738 于 2018-5-17 11:24 编辑

回复 14# afan

喔......终于懂了........谢谢!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备15028933号-3 )谷歌 百度

GMT+8, 2018-8-16 00:22 , Processed in 0.113499 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表