Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #AutoIt3Wrapper_Res_RequestedExecutionLevel=RequireAdministrator
- #AutoIt3Wrapper_Icon=CD.ico
- #AutoIt3Wrapper_UseX64=n
- #AutoIt3Wrapper_Res_Description=Creates an ISO image from a standard CDs or DVDs
- #AutoIt3Wrapper_Res_Fileversion=1.1.6.0
- #AutoIt3Wrapper_Res_Language=1033
- #AutoIt3Wrapper_Res_Field=CompanyName|UEZ Software Development
- #AutoIt3Wrapper_Res_Field=ProductName|ISO Creator
- #AutoIt3Wrapper_Res_Field=Version|1.16
- #AutoIt3Wrapper_Res_Field=Build|2015-07-13 beta
- #AutoIt3Wrapper_Res_Field=Coded by|UEZ
- #AutoIt3Wrapper_Res_Field=Compile date|%longdate% %time%
- #AutoIt3Wrapper_Res_Field=ProductVersion|%AutoItVer%
- #AutoIt3Wrapper_Res_Field=URL|http://www.autoitscript.com/forum/index.php?showtopic=129859
- #AutoIt3Wrapper_UseUpx=n
- #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICON, 1,
- #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICON, 2,
- #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICON, 3,
- #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, MENU, 166,
- #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, DIALOG, 1000,
- #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICONGROUP, 162,
- #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICONGROUP, 164,
- #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICONGROUP, 169,
- #AutoIt3Wrapper_Run_Au3Stripper=y
- #Au3Stripper_Parameters=/so /pe /rm
- #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3"
- ;~ #AutoIt3Wrapper_Run_After=upx.exe --ultra-brute --crp-ms=999999 --all-methods --all-filters "%out%"
- ;~ #AutoIt3Wrapper_Run_After=upx.exe --best --lzma "%out%"
- ;~ #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
- #include <Array.au3>
- #include <ButtonConstants.au3>
- #include <Constants.au3>
- #include <Date.au3>
- #include <GDIPlus.au3>
- #include <EditConstants.au3>
- #include <GuiComboBoxEx.au3>
- #include <GUIConstantsEx.au3>
- #include <GUIMenu.au3>
- #include <Memory.au3>
- #include <Misc.au3>
- #include <ProgressConstants.au3>
- #include <String.au3>
- #include <WindowsConstants.au3>
- #include <WinAPIFiles.au3>
- #include "AutoItObject.au3"
- ;~ #NoTrayIcon
- Opt("TrayMenuMode", 1)
- Opt("MustDeclareVars", 1)
- Global Const $hFullScreen = WinGetHandle("Program Manager")
- Global Const $aFullScreen = WinGetPos($hFullScreen)
- Global Const $STM_SETIMAGE = 0x0172
- _GDIPlus_Startup()
- Global Const $ini_file = @ScriptDir & "\ISO Creator.ini"
- Global $bg_pic = "0"
- If FileExists($ini_file) Then
- $bg_pic = IniRead($ini_file, "Settings", "Background_Pic", "0")
- If $bg_pic <> "0" And Not FileExists($bg_pic) Then $bg_pic = "0"
- EndIf
- Global $ok = 0
- Global Const $w = 615
- Global Const $h = 157
- Global Const $prg_name = "ISO Creator v1.16"
- Global Const $title = $prg_name & " beta by UEZ 2011-2012"
- Global Const $build = " build 2015-07-13 beta"
- Global Const $ver = $prg_name & $build
- Global Const $hGUI = GUICreate($title, $w, $h, -1, -1, Default, $WS_EX_TOPMOST)
- ;~ GUISetBkColor(0xABCDEF, $hGUI)
- Global $hGUI_Settings
- Global Const $idPic = GUICtrlCreatePic("", 0, 0, $w, $h)
- GUICtrlSetState(-1, $GUI_DISABLE)
- Global Const $idButton_Create = GUICtrlCreateButton("&Create" & @LF & "ISO", 528, 8, 75, 73, BitOR($BS_CENTER, $BS_VCENTER, $BS_MULTILINE))
- GUICtrlSetState(-1, $GUI_DISABLE)
- GUICtrlSetTip(-1, "Start creating ISO", "", 0, 1)
- GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
- Global Const $idButton_Abort = GUICtrlCreateButton("A&bort", 528, 8, 75, 73, BitOR($BS_CENTER, $BS_VCENTER, $BS_MULTILINE))
- GUICtrlSetState(-1, $GUI_HIDE)
- GUICtrlSetTip(-1, "Abort the ISO creation", "", 0, 1)
- GUICtrlSetFont(-1, 14, 400, 0, "Times New Roman")
- Global Const $idProgressbar = GUICtrlCreateProgress(8, 93, 595, 27, $PBS_SMOOTH)
- Global Const $idInput_Filename = GUICtrlCreateInput("", 160, 31, 257, 24, $GUI_SS_DEFAULT_INPUT)
- GUICtrlSetFont(-1, 11, 600, 0, "Times New Roman", 5)
- GUICtrlSetTip(-1, "Click on the Save As button to create an iso file", "", 0, 1)
- Global Const $hInput_Filename = GUICtrlGetHandle($idInput_Filename)
- Global Const $idInput_Filename_Color = 0x002000
- Global Const $idLabel_filename = GUICtrlCreateLabel("Filename:", 96, 34, 60, 21)
- GUICtrlSetFont(-1, 11, 800, 0, "Times New Roman")
- GUICtrlSetBkColor(-1, -2)
- GUICtrlSetColor(-1, 0x101080)
- Global Const $idButton_Browse = GUICtrlCreateButton("&Save as", 426, 31, 75, 25)
- GUICtrlSetTip(-1, "Filename of ISO image", "", 0, 1)
- Global Const $idLabel_Drive = GUICtrlCreateLabel("Drive:", 8, 34, 37, 21)
- GUICtrlSetFont(-1, 11, 800, 0, "Times New Roman")
- GUICtrlSetBkColor(-1, -2)
- GUICtrlSetColor(-1, 0xF0F0FF)
- Global Const $idCB_MD5 = GUICtrlCreateCheckbox("", 8, 125, 12, 12)
- GUICtrlSetTip(-1, "Create MD5 checksum", "", 0, 1)
- Global Const $idLabel_MD5 = GUICtrlCreateLabel("Create MD5 checksum", 24, 125, 95, 18)
- GUICtrlSetTip(-1, "Create MD5 checksum after ISO has been created", "", 0, 1)
- GUICtrlSetFont(-1, 8, 800, 0, "Times New Roman")
- GUICtrlSetBkColor(-1, -2)
- GUICtrlSetColor(-1, 0x101060)
- Global Const $idCB_Eject = GUICtrlCreateCheckbox("", 8, 141, 12, 12)
- Global Const $idLabel_Eject = GUICtrlCreateLabel("Auto Eject Media", 24, 141, 95, 18)
- GUICtrlSetTip(-1, "Eject media automacally when process is finished", "", 0, 1)
- GUICtrlSetFont(-1, 8, 800, 0, "Times New Roman")
- GUICtrlSetBkColor(-1, -2)
- GUICtrlSetColor(-1, 0x101060)
- Global Const $idPic_CD = GUICtrlCreatePic("", 574, 125, 28, 28)
- GUICtrlSetTip(-1, "Display sector read view on disc", "", 0, 1)
- GUICtrlSetCursor(-1, 2)
- Global Const $hHBITMAP_CD = _GDIPlus_BitmapCreateFromMemory(CDIcon(), True)
- _WinAPI_DeleteObject(GUICtrlSendMsg($idPic_CD, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP_CD)) ;$STM_SETIMAGE = 0x0172, $IMAGE_BITMAP = 0
- _WinAPI_DeleteObject($hHBITMAP_CD)
- Global Const $sector = 2048
- #region Media Type
- Global $aMediaTypes[0x10000][2] ;media type, max. block size (approx.)
- $aMediaTypes[0x0000][0] = "No media"
- $aMediaTypes[0x0000][1] = 0
- $aMediaTypes[0x0008][0] = "CD-ROM"
- $aMediaTypes[0x0008][1] = 702 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0009][0] = "CD-R"
- $aMediaTypes[0x0009][1] = 702 * 1024 ^ 2 / $sector
- $aMediaTypes[0x000A][0] = "CD-RW"
- $aMediaTypes[0x000A][1] = 702 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0010][0] = "DVD-ROM"
- $aMediaTypes[0x0010][1] = 4481 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0011][0] = "DVD-R Seq. Rec." ;Sequential Recording
- $aMediaTypes[0x0011][1] = 4481 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0012][0] = "DVD-RAM"
- $aMediaTypes[0x0012][1] = 4481 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0013][0] = "DVD-RW Restricted Overwrite"
- $aMediaTypes[0x0013][1] = 4481 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0014][0] = "DVD-RW Seq. Rec." ;Sequential Recording
- $aMediaTypes[0x0014][1] = 4481 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0015][0] = "DVD-R DL" ;Dual Layer
- $aMediaTypes[0x0015][1] = 8148 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0016][0] = "DVD-R DL Jmp Rec." ;Dual Layer Jump Recording
- $aMediaTypes[0x0016][1] = 8148 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0017][0] = "DVD-RW DL"
- $aMediaTypes[0x0017][1] = 8148 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0018][0] = "DVD-Download Disc Rec."
- $aMediaTypes[0x0018][1] = 4481 * 1024 ^ 2 / $sector
- $aMediaTypes[0x001A][0] = "DVD+RW"
- $aMediaTypes[0x001A][1] = 4481 * 1024 ^ 2 / $sector
- $aMediaTypes[0x001B][0] = "DVD+R"
- $aMediaTypes[0x001B][1] = 4481 * 1024 ^ 2 / $sector
- $aMediaTypes[0x002A][0] = "DVD+RW DL"
- $aMediaTypes[0x002A][1] = 4481 * 1024 ^ 2 / $sector
- $aMediaTypes[0x002B][0] = "DVD+R DL" ;Dual Layer
- $aMediaTypes[0x002B][1] = 8148 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0040][0] = "BD-ROM"
- $aMediaTypes[0x0040][1] = 23859 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0041][0] = "BD-R SRM" ;Sequential Recording Mode
- $aMediaTypes[0x0041][1] = 23859 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0042][0] = "BD-R RRM" ;Random Recording Mode (RRM)
- $aMediaTypes[0x0042][1] = 23859 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0043][0] = "BD-RE"
- $aMediaTypes[0x0043][1] = 23859 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0050][0] = "HD DVD-ROM"
- $aMediaTypes[0x0050][1] = 14300 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0051][0] = "HD DVD-R"
- $aMediaTypes[0x0051][1] = 14300 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0052][0] = "HD DVD-RAM"
- $aMediaTypes[0x0052][1] = 14300 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0053][0] = "HD DVD-RW"
- $aMediaTypes[0x0053][1] = 14300 * 1024 ^ 2 / $sector
- $aMediaTypes[0x0058][0] = "HD DVD-R DL"
- $aMediaTypes[0x0058][1] = 28570 * 1024 ^ 2 / $sector
- $aMediaTypes[0x005A][0] = "HD DVD-RW DL"
- $aMediaTypes[0x005A][1] = 28570 * 1024 ^ 2 / $sector
- $aMediaTypes[0xFFFF][0] = "Unknown"
- $aMediaTypes[0xFFFF][1] = 0
- #endregion Media Type
- Global $sDrives = GetDrivesInfo()
- Global $noDrv = False
- If Not $sDrives Then
- GUICtrlSetState($idButton_Browse, $GUI_DISABLE)
- $sDrives = "0: [No drive found, , 0 MB]|"
- $noDrv = True
- If Not $CmdLine[0] Then ErrorMsgBox("No CD/DVD drive found!")
- EndIf
- Global $drv_tmp = $sDrives
- Global $aInfo_o = StringSplit($sDrives, "|", 2)
- Global $combo_size = 38, $width = $combo_size + 1
- Global Const $combo_height = 28
- Global Const $idCombo = GUICtrlCreateCombo("", 48, 31, $combo_size, $combo_height, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL, $CBS_SORT, $CBS_UPPERCASE, $CBS_SORT), $WS_EX_TOPMOST)
- GUICtrlSetData(-1, $sDrives)
- GUICtrlSetTip(-1, "Select CD/DVD drive", "", 0, 1)
- GUICtrlSetFont(-1, 9, 800, 0, "Times New Roman")
- Global Const $hCombo = GUICtrlGetHandle($idCombo)
- Global $saveas, $drv, $file, $pid, $aChild, $line, $aP, $po, $abort, $t, $i, $c, $fn, $td, $sek, $err, $mo, $dummy, $aM, $blocks
- Global $fs = False, $start_dummy = False, $combo_min = True, $started = False
- Global Const $perf = 250
- Global Const $dt = 1000 * 3600 ; if timer > 1h abort copy process
- Global $hHBITMAP
- If $bg_pic = "0" Then
- $hHBITMAP = _GDIPlus_BitmapCreateFromMemory(BackgroundPic(), True)
- _WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP)) ;$STM_SETIMAGE = 0x0172, $IMAGE_BITMAP = 0
- _WinAPI_DeleteObject($hHBITMAP)
- Else
- Change_Background_Pic($bg_pic)
- ControlFocus($hGUI, "", $idButton_Browse)
- EndIf
- GUISetIcon(@SystemDir & "\Shell32.dll", 189, $hGUI)
- Global Const $hBitmap = _GDIPlus_BitmapCreateFromMemory(Texture(), True)
- Global $aR = DllCall("Gdi32.dll", "Handle", "CreatePatternBrush", "Handle", $hBitmap) ;create background image of input box!
- Global $hBrush = $aR[0]
- Global $mco = MouseGetCursor()
- GUIRegisterMsg(0x0133, "WM_CTLCOLOREDIT") ;$WM_CTLCOLOREDIT = 0x0133
- Global Const $AW_ACTIVATE = 0x00020000, $AW_BLEND = 0x00080000, $AW_HIDE = 0x00010000
- Global Const $hDwmApiDll = DllOpen("dwmapi.dll")
- Global Const $sChkAero = DllStructCreate("int;")
- DllCall($hDwmApiDll, "int", "DwmIsCompositionEnabled", "ptr", DllStructGetPtr($sChkAero))
- Global Const $aero = DllStructGetData($sChkAero, 1)
- DllClose($hDwmApiDll)
- If $aero Then
- Global Const $TBPF_NOPROGRESS = 0
- Global Const $TBPF_INDETERMINATE = 0x1
- Global Const $TBPF_NORMAL = 0x2
- Global Const $TBPF_ERROR = 0x4
- Global Const $TBPF_PAUSED = 0x8
- Global $CLSID_TaskBarlist, $CLSID_TaskBarlist, $IID_ITaskbarList3, $pTB3, $oTB3
- Global $tagInterface = _
- "QueryInterface long(ptr;ptr;ptr);" & _
- "AddRef ulong();" & _
- "Release ulong();" & _
- "HrInit long();" & _
- "AddTab long(hwnd);" & _
- "DeleteTab long(hwnd);" & _
- "ActivateTab long(hwnd);" & _
- "SetActiveAlt long(hwnd);" & _
- "MarkFullscreenWindow long(hwnd;int);" & _
- "SetProgressValue long(hwnd;uint64;uint64);" & _
- "SetProgressState long(hwnd;int);" & _
- "RegisterTab long(hwnd;hwnd);" & _
- "UnregisterTab long(hwnd);" & _
- "SetTabOrder long(hwnd;hwnd);" & _
- "SetTabActive long(hwnd;hwnd;dword);" & _
- "ThumbBarAddButtons long(hwnd;uint;ptr);" & _
- "ThumbBarUpdateButtons long(hwnd;uint;ptr);" & _
- "ThumbBarSetImageList long(hwnd;ptr);" & _
- "SetOverlayIcon long(hwnd;ptr;wstr);" & _
- "SetThumbnailTooltip long(hwnd;wstr);" & _
- "SetThumbnailClip long(hwnd;ptr);"
- _AutoItObject_StartUp()
- ; get interfaces
- $CLSID_TaskBarlist = _AutoItObject_CLSIDFromString("{56FDF344-FD6D-11D0-958A-006097C9A090}")
- ; ITaskbarList3: http://msdn.microsoft.com/en-us/library/dd391692(VS.85).aspx
- $IID_ITaskbarList3 = _AutoItObject_CLSIDFromString("{ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf}")
- _AutoItObject_CoCreateInstance(DllStructGetPtr($CLSID_TaskBarlist), 0, 1, DllStructGetPtr($IID_ITaskbarList3), $pTB3)
- $oTB3 = _AutoItObject_WrapperCreate($pTB3, $tagInterface)
- $oTB3.HrInit()
- $oTB3.SetProgressState($hGUI, $TBPF_NORMAL)
- EndIf
- Global $auto_exit = False
- If $CmdLine[0] Then CheckCMDLine()
- If Not $auto_exit Then
- ;~ _WinAPI_AnimateWindow($hGUI, BitOR($AW_BLEND, $AW_ACTIVATE), 500)
- _GUICtrlComboBoxEx_SetCurSel($hCombo, 0)
- ControlFocus($hGUI, "", $idButton_Browse)
- GUICtrlSetPos($idCombo, 48, 31, $combo_size, $combo_height)
- EndIf
- GUISetState(@SW_SHOW, $hGUI)
- ;~ Global Const $SND_SYNC = 0, $SND_ASYNC = 1, $SND_NODEFAULT = 2, $SND_MEMORY = 4, $SND_NOWAIT = 0x2000
- Global $binCapture_snd_finished = Sound_Finished()
- Global $ByteStruct_snd_finished = DllStructCreate("byte[" & BinaryLen($binCapture_snd_finished) & "]")
- DllStructSetData($ByteStruct_snd_finished, 1, $binCapture_snd_finished)
- Global Const $BytePtr_snd_finished = DllStructGetPtr($ByteStruct_snd_finished)
- Global $binCapture_snd_abort = Sound_Abort()
- Global $ByteStruct_snd_abort = DllStructCreate("byte[" & BinaryLen($binCapture_snd_abort) & "]")
- DllStructSetData($ByteStruct_snd_abort, 1, $binCapture_snd_abort)
- Global Const $BytePtr_snd_abort = DllStructGetPtr($ByteStruct_snd_abort)
- Global Const $fuSound = BitOR($SND_MEMORY, $SND_ASYNC, $SND_NODEFAULT, $SND_NOWAIT)
- Global $hUser32DLL = DllOpen("user32.dll")
- DllCall($hUser32DLL, 'int', 'HideCaret', 'hwnd', $hGUI)
- DllCall($hUser32DLL, 'int', 'DestroyCaret')
- Global $_MD5_CodeBuffer, $_MD5_CodeBufferMemory
- Global $_MD5_InitOffset, $_MD5_InputOffset, $_MD5_ResultOffset
- Global $_HASH_MD5[4] = [16, 88, '_MD5_', '_MD5_']
- Global Enum $idAbout = 1000, $idChangeBGPic, $idEjectMedia, $idLoadMedia, $idMD5, $idUpd, $idVisitWeb
- Global Const $hMenu = _GUICtrlMenu_GetSystemMenu($hGUI)
- _GUICtrlMenu_InsertMenuItem($hMenu, 5, 0, 0)
- _GUICtrlMenu_InsertMenuItem($hMenu, 6, "&About", $idAbout)
- _GUICtrlMenu_InsertMenuItem($hMenu, 7, 0, 0)
- _GUICtrlMenu_InsertMenuItem($hMenu, 8, "Change &Background Pic", $idChangeBGPic)
- _GUICtrlMenu_InsertMenuItem($hMenu, 9, "Create MD&5 checksum from ISO", $idMD5)
- _GUICtrlMenu_InsertMenuItem($hMenu, 10, "Check for &Updates", $idUpd)
- _GUICtrlMenu_InsertMenuItem($hMenu, 11, "Visit &Web Site", $idVisitWeb)
- Global Const $hBmp_MD5 = _GDIPlus_BitmapCreateFromMemory(CDIcon())
- Global Const $hGraphic_MD5 = _GDIPlus_ImageGetGraphicsContext($hBmp_MD5)
- _GDIPlus_GraphicsDrawString($hGraphic_MD5, "MD5", 1, 6, "Tahoma", 11)
- Global Const $hHBmp_MD5 = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp_MD5)
- _GDIPlus_GraphicsDispose($hGraphic_MD5)
- _GDIPlus_BitmapDispose($hBmp_MD5)
- _GUICtrlMenu_SetItemBmp($hMenu, 9, $hHBmp_MD5)
- Global Const $hBmp_About = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 221, 28, 28)
- _GUICtrlMenu_SetItemBmp($hMenu, 6, $hBmp_About)
- Global $Icon_ChP = 301
- If @OSBuild < 6000 Then $Icon_ChP = 117
- If @OSBuild > 7999 Then $Icon_ChP = 317
- Global Const $hBmp_ChangeBG = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", $Icon_ChP, 28, 28)
- _GUICtrlMenu_SetItemBmp($hMenu, 8, $hBmp_ChangeBG)
- Global Const $hBmp_Update = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 91, 28, 28)
- _GUICtrlMenu_SetItemBmp($hMenu, 10, $hBmp_Update)
- Global $hBMP_VisitWeb = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 13, 28, 28)
- _GUICtrlMenu_SetItemBmp($hMenu, 11, $hBMP_VisitWeb)
- Global Const $hQMenu = _GUICtrlMenu_CreatePopup()
- _GUICtrlMenu_InsertMenuItem($hQMenu, 0, "Eject media from the device", $idEjectMedia)
- _GUICtrlMenu_InsertMenuItem($hQMenu, 1, "", 0)
- _GUICtrlMenu_InsertMenuItem($hQMenu, 2, "Load Media", $idLoadMedia)
- Global Const $hBmp_EjectMedia = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 78, 32, 32)
- _GUICtrlMenu_SetItemBmp($hQMenu, 0, $hBmp_EjectMedia)
- ;~ Global Const $hBmp_LoadMedia = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 11, 32, 32)
- Global Const $hBmp_LoadMedia = _GDIPlus_BitmapCreateFromMemory(Icon_LM(), True)
- _GUICtrlMenu_SetItemBmp($hQMenu, 2, $hBmp_LoadMedia)
- $dummy = GUICtrlCreateDummy()
- Global $hGraphic_Disc, $hImage_Disc, $hBitmap_Disk, $hHBITMAP_Disc, $hBrush_Disc, $hGUI_Disc, $id_DiscPic
- Global $mbps, $MediaSize, $mem1, $mem2
- Global Const $deg = ACos(-1) / 180
- Global Const $disc_w = 172
- Global Const $disc_h = 172
- Global Const $w2 = $disc_w / 2
- Global Const $h2 = $disc_h / 2
- Global Const $wTitle = _WinAPI_GetSystemMetrics($SM_CYCAPTION)
- Global Const $wFrame = _WinAPI_GetSystemMetrics($SM_CXFRAME)
- Global Const $wFrameB = _WinAPI_GetSystemMetrics($SM_CYDLGFRAME)
- Global Const $wFrameF = _WinAPI_GetSystemMetrics($SM_CXDLGFRAME)
- Global $radius, $angel, $s
- Global $switch_view = True
- $hGUI_Disc = GUICreate("Sector Reading View", $disc_w, $disc_h, $w + $wFrame, -$wFrameB, $WS_POPUP, $WS_EX_MDICHILD, $hGUI)
- $id_DiscPic = GUICtrlCreatePic("", 0, 0, $disc_w, $disc_h)
- $hBrush_Disc = _GDIPlus_BrushCreateSolid(0x180000A0)
- $hImage_Disc = _GDIPlus_BitmapCreateFromMemory(DiskImage())
- $hBitmap_Disk = _GDIPlus_BitmapCreateFromScan0($disc_w, $disc_h) ;DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $disc_w, "int", $disc_h, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
- ;~ $hBitmap_Disk = $hBitmap_Disk[6]
- $hGraphic_Disc = _GDIPlus_ImageGetGraphicsContext($hBitmap_Disk)
- _GDIPlus_GraphicsDrawImageRect($hGraphic_Disc, $hImage_Disc, 0, 0, $disc_w, $disc_h)
- _GDIPlus_GraphicsSetSmoothingMode($hGraphic_Disc, 2)
- ;~ _GDIPlus_GraphicsSetSmoothingMode($hGraphic_Size, 2)
- ;~ DllCall($ghGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hGraphic_Size, "int", 4)
- $hHBITMAP_Disc = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage_Disc)
- _WinAPI_DeleteObject(GUICtrlSendMsg($id_DiscPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP_Disc))
- _WinAPI_DeleteObject($hHBITMAP_Disc)
- GUISetState(@SW_HIDE)
- Global $rgn = _WinAPI_CreateRoundRectRgn(0, 0, $disc_w, $disc_h, $disc_w, $disc_h)
- _WinAPI_SetWindowRgn($hGUI_Disc, $rgn)
- Chk_Drive_Status()
- GetTextLength()
- AdlibRegister("Chk_Drive_Status", 2000) ; checks every 2 seconds whether new media has been inserted to update combo box
- GUIRegisterMsg(0x0112, "WM_SYSCOMMAND") ;$WM_SYSCOMMAND = 0x0112
- GUIRegisterMsg(0x0111, "WM_COMMAND") ;$WM_COMMAND = 0x0111
- GUIRegisterMsg(0x007B, "WM_CONTEXTMENU") ; $WM_CONTEXTMENU = 0x007B
- GUIRegisterMsg(0x0046, "WM_WINDOWPOSCHANGING") ;$WM_WINDOWPOSCHANGING = 0x0046
- While 1
- Switch GUIGetMsg()
- Case $GUI_EVENT_CLOSE
- _Exit()
- Case $idButton_Browse
- $saveas = FileSaveDialog("Enter ISO file name", "", "ISO (*.iso)", 2, "", $hGUI)
- If Not @error Then
- If StringRight($saveas, 4) <> ".iso" Then $saveas &= ".iso"
- GUICtrlSetData($idInput_Filename, $saveas)
- $ok += 1
- $fs = True
- EndIf
- Case $idButton_Create, $dummy
- $fn = GUICtrlRead($idInput_Filename)
- If FileExists($fn) Then
- $c = MsgBox(48 + 4, "Information", $fn & " already exists!" & @CRLF & @CRLF & "Overwrite?", 0, $hGUI)
- If $c = 6 Then
- If FileDelete($fn) Then
- Create_ISO()
- Else
- ErrorMsgBox("Unable to delete " & $fn)
- EndIf
- EndIf
- Else
- Create_ISO()
- EndIf
- Case $idPic_CD
- Switch_View()
- CheckDiskPos()
- ;~ Draw_DiscView(1000)
- EndSwitch
- If $ok > 0 Then
- If BitAND(GUICtrlGetState($idButton_Create), $GUI_ENABLE) <> $GUI_ENABLE Then GUICtrlSetState($idButton_Create, $GUI_ENABLE)
- Else
- If BitAND(GUICtrlGetState($idButton_Create), $GUI_DISABLE) <> $GUI_DISABLE Then GUICtrlSetState($idButton_Create, $GUI_DISABLE)
- EndIf
- If $start_dummy Then
- GUICtrlSendToDummy($dummy)
- $start_dummy = False
- EndIf
- $aM = GUIGetCursorInfo($hGUI)
- If Not @error Then
- If $aM[4] = $idCombo Then
- If Not $mem1 Then
- GUICtrlSetPos($idCombo, 48, 31, $width, $combo_height)
- If Not $aero Then _WinAPI_RedrawWindow($hGUI)
- $mem1 = True
- $mem2 = False
- EndIf
- Else
- If Not $mem2 Then
- If $combo_min Then
- GUICtrlSetPos($idCombo, 48, 31, 38, $combo_height)
- $mem2 = True
- $mem1 = False
- EndIf
- EndIf
- EndIf
- EndIf
- WEnd
- Func Chk_Drive_Status()
- Local $z, $info
- Local $drv_info = GetDrivesInfo()
- Local $aInfo_c = StringSplit($drv_info, "|", 2)
- If UBound($aInfo_o) <> UBound($aInfo_c) Then $aInfo_o = $aInfo_c
- Local $ci = _GUICtrlComboBox_GetCurSel($hCombo)
- If $drv_info <> $drv_tmp Then
- GUICtrlSetState($idCombo, $GUI_DISABLE)
- _GUICtrlComboBox_ResetContent($hCombo)
- GUICtrlSetData($idCombo, $drv_info)
- _GUICtrlComboBoxEx_SetCurSel($hCombo, $ci)
- GUICtrlSetState($idCombo, $GUI_ENABLE)
- $drv_tmp = $drv_info
- For $z = 0 To UBound($aInfo_c) - 1
- If $aInfo_c[$z] <> $aInfo_o[$z] Then $info &= $aInfo_c[$z] & @CRLF
- Next
- TrayTip("Information", "CD/DVD media change detected:" & @CRLF & @CRLF & $info, 1, 1)
- $aInfo_o = $aInfo_c
- GetTextLength()
- EndIf
- EndFunc ;==>Chk_Drive_Status
- Func GetTextLength()
- Local $l, $max = 0
- Local $elements = _GUICtrlComboBox_GetListArray($hCombo)
- For $l = 1 To $elements[0]
- If StringLen($elements[$l]) > $max Then $max = StringLen($elements[$l])
- Next
- $width = Max($combo_size + 1, $max * 7.5)
- EndFunc ;==>GetTextLength
- Func GetDrivesInfo()
- Local $k
- Local $aDrives = DriveGetDrive("CDROM")
- If @error Then Return
- For $k = 1 To $aDrives[0]
- $aDrives[$k] = StringUpper($aDrives[$k])
- $aDrives[$k] &= " [" & $aMediaTypes[_WinAPI_GetCDType($aDrives[$k])][0] & ", " & DriveGetLabel($aDrives[$k]) & ", " & Round(DriveSpaceTotal($aDrives[$k]), 2) & " MB]"
- Next
- Return _ArrayToString($aDrives, "|", 1)
- EndFunc ;==>GetDrivesInfo
- Func CheckCMDLine()
- If $noDrv Then
- ErrorMsgBox("No CD/DVD drive found!" & @LF & @LF & @LF & "Terminating program!")
- _Exit(True)
- EndIf
- Local $ps, $pd, $md5, $index, $sText, $exit, $aem, $help
- $help = BitAND(_ArraySearch($CmdLine, "-?"), _ArraySearch($CmdLine, "/?"), _ArraySearch($CmdLine, "-h"), _ArraySearch($CmdLine, "/h"))
- If $help > 0 Then
- MsgBox(64 + 262144, "Command line information", "Command line syntax:" & @CRLF & @CRLF & _
- "ISO Creator.exe"& @TAB & _
- "-s [source cd/dvd drive]"& @CRLF & @TAB & @TAB & _
- "-d [filename]" & @CRLF & @TAB & @TAB & _
- "(-md5)" & @CRLF & @TAB & @TAB & _
- "(-aem)" & @CRLF & @TAB & @TAB & _
- "(-exit)", 30)
- _Exit(True)
- EndIf
- $index = _ArraySearch($CmdLine, "-s")
- If @error Then Return
- $ps = $CmdLine[$index + 1]
- $index = _ArraySearch($CmdLine, "-d")
- If @error Then Return
- $md5 = _ArraySearch($CmdLine, "-md5")
- $aem = _ArraySearch($CmdLine, "-aem")
- $exit = _ArraySearch($CmdLine, "-exit")
- $pd = $CmdLine[$index + 1]
- If StringRight($pd, 4) <> ".iso" Then $pd &= ".iso"
- If StringRegExp($ps, "(?i)\A[a-z]:", 0) And _GUICtrlComboBox_FindString($hCombo, $ps) > -1 And StringRegExp($pd, "((?<!.)([a-zA-Z]\:\\)(?!\s)(([\w-+.]*((?<!\s)(\s{1})(?!\\)|(?<!\\)(\\{1})(?!\s))*)*)(\\?)(?!.))", 0) Then
- _GUICtrlComboBox_GetLBText($hCombo, _GUICtrlComboBox_FindString($hCombo, $ps), $sText)
- GUICtrlSetData($idCombo, $sText)
- GUICtrlSetData($idInput_Filename, $pd)
- If $md5 > -1 Then GUICtrlSetState($idCB_MD5, $GUI_CHECKED)
- If $aem > -1 Then GUICtrlSetState($idCB_Eject, $GUI_CHECKED)
- If $exit > -1 Then $auto_exit = True
- $ok = 2
- $start_dummy = True
- EndIf
- EndFunc ;==>CheckCMDLine
- Func ISO9660_Check($drv) ;good source http://www.tu-chemnitz.de/informatik/RA/news/stack/kompendium/vortraege_97/cdrom/Kapitel2.html (German only)
- Local $nBytes, $tBuffer, $hFile, $id, $LogicalBlockSize, $BD = False
- If StringRegExpReplace(GUICtrlRead($idCombo), "(?i).*\[(BD.*|HD.*),.*,.*\]", "") = "" Then $BD = True
- If Not $BD Then
- ;length -> position
- $tBuffer = DllStructCreate( "byte Type;" & _ ;1
- "char Identifier[5];" & _ ;5 -> 6
- "byte Version;" & _ ;1 -> 7
- "byte Empty1;" & _ ;1 -> 8
- "char SystemID[32];" & _ ;32 -> 40
- "char VolumeID[32];" & _ ;32 -> 72
- "byte Empty2[8];" & _ ;8 -> 80
- "uint BlocksLE;" & _ ;4 -> 84
- "uint BlocksBE;" & _ ;4 -> 88
- "byte Empty3[32];" & _ ;32 -> 120
- "ushort VolumeSetSizeLE;" & _ ;2 -> 122
- "ushort VolumeSetSizeBE;" & _ ;2 -> 124
- "ushort VolumeSequenceNumberLE;" & _ ;2 -> 126
- "ushort VolumeSequenceNumberBE;" & _ ;2 -> 128
- "ushort LogicalBlockSizeLE;" & _ ;2 -> 130
- "ushort LogicalBlockSizeBE;" & _ ;2 -> 132
- "byte DataRest[1916]")
- ;LE = Little Endian (right to left)
- ;BE = Big Endian (left to right)
- $hFile = _WinAPI_CreateFile("\\.\" & $drv, 2, 2, 2)
- If Not $hFile Then Return SetError(1, 0, 0)
- _WinAPI_SetFilePointer($hFile, 0x08000)
- _WinAPI_ReadFile($hFile, DllStructGetPtr($tBuffer), DllStructGetSize($tBuffer), $nBytes)
- _WinAPI_CloseHandle($hFile)
- $id = DllStructGetData($tBuffer, "Identifier")
- If Not StringInStr("CD001CDW02NSR02", $id) Then Return SetError(2, 0, 0)
- $LogicalBlockSize = DllStructGetData($tBuffer, "LogicalBlockSizeLE")
- If $LogicalBlockSize <> 0x0800 Then Return SetError(3, 0, 0)
- $blocks = DllStructGetData($tBuffer, "BlocksLE")
- $tBuffer = 0
- Else
- Return SetError(4, 0, 0) ;No BD / HD support yet
- EndIf
- Return True
- EndFunc ;==>ISO9660_Check
- Func Create_ISO()
- Local $dl, $drvl, $p, $bytes, $speed, $aDrives, $error, $dd
- $drvl = GUICtrlRead($idCombo)
- $dl = StringLeft($drvl, 1) & ":"
- If DriveSpaceFree(StringLeft(GUICtrlRead($idInput_Filename), 3)) < DriveSpaceTotal($dl) Then Return ErrorMsgBox("Not enough space on destination drive!")
- If DriveStatus($dl) = "READY" And ISO9660_Check($dl) Then
- AdlibUnRegister("Chk_Drive_Status")
- $abort = False
- $started = True
- GUICtrlSetState($idButton_Browse, $GUI_DISABLE)
- ;~ GUICtrlSetState($idCB_MD5, $GUI_DISABLE)
- ;~ GUICtrlSetState($idCB_Eject, $GUI_DISABLE)
- GUICtrlSetState($idCombo, $GUI_DISABLE)
- GUICtrlSetState($idButton_Create, $GUI_HIDE)
- GUICtrlSetState($idButton_Abort, $GUI_SHOW)
- _GUICtrlMenu_SetItemDisabled($hMenu, 6)
- _GUICtrlMenu_SetItemDisabled($hMenu, 8)
- _GUICtrlMenu_SetItemDisabled($hMenu, 9)
- _GUICtrlMenu_SetItemDisabled($hMenu, 10)
- ControlFocus($hGUI, "", $idButton_Abort)
- $mo = MouseGetCursor()
- GUISetCursor(15, 1, $hGUI)
- $drv = StringLeft($drvl, 1)
- $MediaSize = Round(DriveSpaceTotal($dl), 2)
- Opt("GUIOnEventMode", 1)
- GUICtrlSetOnEvent($idButton_Abort, "Abort_Ctrl")
- GUICtrlSetOnEvent($idPic_CD, "Switch_View")
- Local $max_blocks = $aMediaTypes[_ArraySearch($aMediaTypes, StringRegExpReplace($drvl, "\w:..(.*),.*,.*", "$1"))][1]
- $t = TimerInit()
- $err = TimerInit()
- Local $hFileRead = FileOpen("\\.\" & $dl, 16)
- If $hFileRead = -1 Then Return ErrorMsgBox("Unable to open drive " & $dl)
- Local $hFileSave = FileOpen($fn, 18)
- If $hFileSave = -1 Then
- FileClose($hFileRead)
- Return ErrorMsgBox("Unable to create " & $fn)
- EndIf
- Local $sector_steps = Ceiling($max_blocks / 2824)
- $radius = 32
- $angel = 0
- $s = 4
- _GDIPlus_GraphicsDrawImageRect($hGraphic_Disc, $hImage_Disc, 0, 0, $disc_w, $disc_h)
- Local $block_count, $bench_timer, $ii
- AdlibRegister("Progress", $perf)
- $p = 0
- _WinAPI_LockDevice($dl, 1)
- FileSetPos($hFileRead, $p, $FILE_BEGIN)
- $bench_timer = TimerInit()
- For $ii = 0 To $blocks
- $bytes = FileRead($hFileRead, $sector)
- FileWrite($hFileSave, $bytes)
- $p += $sector
- FileSetPos($hFileRead, $p, $FILE_BEGIN)
- If TimerDiff($bench_timer) > 999 Then
- $mbps = ($ii - $block_count) * 2048 / 1024 ^ 2
- $block_count = $ii
- $bench_timer = TimerInit()
- EndIf
- If Not Mod($ii, $sector_steps) Then
- Draw_DiscView($ii + 1)
- EndIf
- $po = Ceiling($ii / $blocks * 100)
- If TimerDiff($t) > $dt Then $abort = True
- If $abort Then ExitLoop
- Next
- If Mod($ii, $sector_steps) Then Draw_DiscView($ii + 1)
- FileClose($hFileSave)
- FileClose($hFileRead)
- AdlibUnRegister("Progress")
- _WinAPI_LockDevice($dl, 0)
- Opt("GUIOnEventMode", 0)
- ;~ If ProcessExists($pid) Then ProcessClose($pid)
- AdlibRegister("Chk_Drive_Status", 2000)
- GUISetState(@SW_DISABLE, $hGUI)
- If $abort Then
- sndPlaySound($BytePtr_snd_abort, $fuSound)
- $c = MsgBox(4, "Information", "Process aborted!" & @CRLF & @CRLF & _
- "Delete incomplete iso file?", 0, $hGUI)
- If $c = 6 Then
- If FileDelete($fn) Then
- MsgBox(64, "Information", $fn & " has been properly deleted!", 10, $hGUI)
- Else
- ErrorMsgBox("Unable to delete " & $fn)
- EndIf
- EndIf
- Else
- If TimerDiff($err) < 500 Then
- FileDelete($fn)
- ErrorMsgBox("An unexpected error has occured :-(")
- Else
- $speed = Round((FileGetSize($fn) / 1024 ^ 2) / $sek, 2) ;mb/s
- If BitAND(GUICtrlRead($idCB_MD5), $GUI_CHECKED) Then Create_MD5($fn)
- If BitAND(GUICtrlRead($idCB_Eject), $GUI_CHECKED) Then
- $dd = StringLeft($drvl, 1) & ":"
- If Not _WinAPI_IsDoorOpen($dd) Then _WinAPI_EjectMedia($dd)
- EndIf
- If Not $auto_exit Then
- sndPlaySound($BytePtr_snd_finished, $fuSound)
- MsgBox(0, "Information", "ISO file has been created successfully in " & $td & " (" & $speed & " mb/s)", 30, $hGUI)
- EndIf
- EndIf
- EndIf
- If $aero Then $oTB3.SetProgressState($hGUI, $TBPF_NOPROGRESS)
- $started = False
- GUISetState(@SW_ENABLE, $hGUI)
- _GUICtrlMenu_SetItemEnabled($hMenu, 6)
- _GUICtrlMenu_SetItemEnabled($hMenu, 8)
- _GUICtrlMenu_SetItemEnabled($hMenu, 9)
- _GUICtrlMenu_SetItemEnabled($hMenu, 10)
- GUICtrlSetState($idButton_Browse, $GUI_ENABLE)
- ;~ GUICtrlSetState($idCB_MD5, $GUI_ENABLE)
- ;~ GUICtrlSetState($idCB_Eject, $GUI_ENABLE)
- GUICtrlSetState($idCombo, $GUI_ENABLE)
- GUICtrlSetState($idButton_Create, $GUI_SHOW)
- GUICtrlSetState($idButton_Abort, $GUI_HIDE)
- GUICtrlSetData($idProgressbar, 0)
- WinSetTitle($hGUI, "", $title)
- Else
- $error = @error
- GUISetState(@SW_DISABLE, $hGUI)
- $aDrives = DriveGetDrive("CDROM")
- If DriveGetLabel($aDrives[_GUICtrlComboBox_GetCurSel($hCombo) + 1]) = "Audio CD" Then
- ErrorMsgBox("Audio CD is not support yet!")
- Else
- If $error = 4 Then
- ErrorMsgBox("HD/BD discs are not supported yet!)")
- Else
- ErrorMsgBox("Maybe no media is inserted to the drive or not an ISO9660 CD/DVD with 2048 bytes/sector !?!")
- EndIf
- EndIf
- GUISetState(@SW_ENABLE, $hGUI)
- EndIf
- GUISetCursor($mo)
- If $auto_exit Then _Exit()
- EndFunc ;==>Create_ISO
- Func Draw_DiscView($block)
- _GDIPlus_GraphicsFillEllipse($hGraphic_Disc, -2 + $w2 + Cos($angel * $deg) * $radius, -2 + $h2 + Sin($angel * $deg) * $radius, 4, 4, $hBrush_Disc)
- If Not $switch_view Then
- _GDIPlus_GraphicsDrawImageRectRect($hGraphic_Disc, $hImage_Disc, 65, 65, 44, 44, 65, 65, 44, 44)
- _GDIPlus_GraphicsDrawString($hGraphic_Disc, StringFormat("%.2f%s\n%.2f %s", $block * 2048 / 1024 ^ 2, " /", $MediaSize, " mb"), 66, 76, "Arial", 6)
- $hHBITMAP_Disc = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_Disk)
- _WinAPI_DeleteObject(GUICtrlSendMsg($id_DiscPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP_Disc))
- _WinAPI_DeleteObject($hHBITMAP_Disc)
- EndIf
- $angel += $s
- If $angel > 359 Then
- $angel = 0
- $radius += 2.35
- $s -= 0.1
- EndIf
- EndFunc ;==>Draw_DiscView
- Func Progress()
- $sek = Int(TimerDiff($t) / 1000)
- $td = Sec_2_Time_Format($sek)
- WinSetTitle($hGUI, "", $title & " - Created: " & $po & " % / Elapsed: " & $td & " (" & StringFormat("%05.2f %s", Round($mbps, 2), "mb/s") & ")")
- GUICtrlSetData($idProgressbar, $po) ;slow down the whole copy process
- If $aero Then $oTB3.SetProgressValue($hGUI, $po, 100)
- EndFunc ;==>Progress
- Func Switch_View()
- If $switch_view Then
- GUISetState(@SW_SHOW, $hGUI_Disc)
- $switch_view = False
- Else
- GUISetState(@SW_HIDE, $hGUI_Disc)
- $switch_view = True
- EndIf
- EndFunc ;==>Switch_View
- Func Abort_Ctrl()
- $abort = True
- EndFunc ;==>Abort_Ctrl
- Func Create_MD5($file)
- Local $aWinPos = WinGetPos($hGUI)
- Local Const $sw = 350
- Local Const $sh = 45
- Local Const $x = $aWinPos[0] + $aWinPos[2] / 2 - $sw / 2
- Local Const $y = $aWinPos[1] + $aWinPos[3] / 2 - $sh / 2
- GUISetState(@SW_MINIMIZE, $hGUI)
- Local Const $txt = "Creating MD5 checksum "
- Local Const $hSplash = SplashTextOn("MD5 Creation Process (ESC to abort)", $txt, $sw, $sh, $x, $y, 4 + 16, "Times New Roman", 16, 400)
- TrayTip("MD5 Checksum", "Started with creation of MD5 checksum...", 3, 1)
- Local $i, $j = 0
- Local $t = TimerInit()
- Local $BufferSize = 0x100000
- Local $State = _MD5Init()
- Local $hFile = FileOpen($file, 16)
- Local $f = Ceiling(FileGetSize($file) / $BufferSize)
- Local $dll = DllOpen("user32.dll")
- Local $esc = False
- For $i = 1 To $f
- _MD5Input_Thread($State, FileRead($hFile, $BufferSize))
- If TimerDiff($t) > 500 Then
- ControlSetText($hSplash, "Creating MD5 checksum...", "Static1", $txt & "(" & StringFormat("%.2f", Round($i / $f * 100, 2)) & " %) " & _StringRepeat(".", Mod($j, 4)))
- $t = TimerInit()
- $j += 1
- EndIf
- If _IsPressed("1B", $dll) Then
- If WinActive($hSplash) Then
- $esc = True
- ExitLoop
- EndIf
- EndIf
- Next
- FileClose($hFile)
- DllClose($dll)
- If Not $esc Then
- Local $Hash = StringTrimLeft(_MD5Result($State), 2)
- Local $fname = " *" & StringRegExpReplace($file, ".*\\(.*)", "$1")
- Local $w = "# Generated on " & _Now() & " by " & $prg_name & @CRLF & @CRLF & $Hash & $fname
- $hFile = FileOpen($file & ".md5", 2)
- FileWrite($hFile, $w)
- FileClose($hFile)
- SplashOff()
- TrayTip("MD5 Checksum", "MD5 checksum creation has been finished!", 2, 1)
- GUISetState(@SW_RESTORE, $hGUI)
- If Not $auto_exit Then MsgBox(64, "Information", "MD5 checksum creation has been finished!" & @CRLF & @CRLF & "File saved to '" & $file & ".md5' successfully!", 20, $hGUI)
- Else
- SplashOff()
- TrayTip("MD5 Checksum", "MD5 checksum creation has been aborted!", 2, 2)
- MsgBox(48 + 262144, "Warning", "MD5 checksum creation has been aborted!", 20)
- GUISetState(@SW_RESTORE, $hGUI)
- EndIf
- EndFunc ;==>Create_MD5
- Func ErrorMsgBox($message, $timer = 30)
- Return MsgBox(16, "Error", "An error has occured." & @CRLF & @CRLF & $message, $timer, $hGUI)
- EndFunc ;==>ErrorMsgBox
- Func Sec_2_Time_Format($time)
- Local $sec = Mod($time, 60)
- Local $min = Mod(Int($time / 60), 60)
- Local $hr = Int($time / 60 ^ 2)
- Return StringFormat("%02i:%02i:%02i", $hr, $min, $sec)
- EndFunc ;==>Sec_2_Time_Format
- Func Max($a, $b)
- If $a > $b Then Return $a
- Return $b
- EndFunc ;==>Max
- Func _WinAPI_CreateBitmapFromIcon($file, $iIndex = 0, $iW = 16, $iH = 16)
- If FileExists($file) Then
- Local $aRet, $hIcon, $hBitmap
- Local $hDC, $hBackDC, $hBackObj
- $aRet = DllCall("shell32", "long", "ExtractAssociatedIcon", "int", 0, "str", $file, "word*", $iIndex)
- If @error Then Return SetError(@error, @extended, 0)
- $hIcon = $aRet[0]
- $hDC = _WinAPI_GetDC(0)
- $hBackDC = _WinAPI_CreateCompatibleDC($hDC)
- $hBitmap = _WinAPI_CreateSolidBitmap(0, _WinAPI_GetSysColor($COLOR_MENU), $iW, $iH)
- $hBackObj = _WinAPI_SelectObject($hBackDC, $hBitmap)
- _WinAPI_DrawIconEx($hBackDC, 0, 0, $hIcon, $iW, $iH, 0, 0, 3)
- _WinAPI_DestroyIcon($hIcon)
- _WinAPI_SelectObject($hBackDC, $hBackObj)
- _WinAPI_ReleaseDC(0, $hDC)
- _WinAPI_DeleteDC($hBackDC)
- Return $hBitmap
- Else
- Return SetError(1, 0, 0)
- EndIf
- EndFunc ;==>_WinAPI_CreateBitmapFromIcon
- Func Change_Background_Pic($new_pic)
- Local Const $hImage = _GDIPlus_ImageLoadFromFile($new_pic)
- If Not $hImage Then Return SetError(1, 0, 0)
- ;~ Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $w, "int", $h, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
- Local Const $hBmp = _GDIPlus_BitmapCreateFromScan0($w, $h) ;$aResult[6]
- Local Const $hCtx = _GDIPlus_ImageGetGraphicsContext($hBmp)
- _GDIPlus_GraphicsSetInterpolationMode($hCtx, 7)
- ;~ DllCall($ghGDIPDll, "uint", "GdipSetInterpolationMode", "handle", $hCtx, "int", 7)
- _GDIPlus_GraphicsDrawImageRect($hCtx, $hImage, 0, 0, $w, $h)
- Local Const $hHBMP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)
- _WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBMP))
- _WinAPI_DeleteObject($hHBMP)
- _GDIPlus_ImageDispose($hImage)
- _GDIPlus_BitmapDispose($hBmp)
- _GDIPlus_GraphicsDispose($hCtx)
- _WinAPI_RedrawWindow($hGUI)
- Return 1
- EndFunc ;==>Change_Background_Pic
- Func Check4Update()
- Local $iRead = InetRead("http://www.autoitscript.com/forum/index.php?showtopic=129859")
- If @error Then Return MsgBox(16, "Error", "Unable to check online! Behind a firewall or proxy?", 30, $hGUI)
- Local $aRegEx = StringRegExp(BinaryToString($iRead), "(?i)<title>ISO Creator\s*(v.+beta)\s*", 1)
- If Not IsArray($aRegEx) Or @error Then Return MsgBox(16, "Error", "Unable to parse line!", 30, $hGUI)
- Local $iVer = $aRegEx[0]
- If $ver = "ISO Creator " & $iVer Then
- MsgBox(64, "Update Information", "Web version: " & $iVer & @LF & @LF & "Your version is up-to-date! :-)", 15, $hGUI)
- Else
- Local $iChk = MsgBox(32 + 4 + 256, "Update Information", "Web version: " & $iVer & @LF & @LF & "Found a newer version. Visit web site?", 30, $hGUI)
- If $iChk = 6 Then ShellExecute("http://www.autoitscript.com/forum/index.php?showtopic=129859")
- EndIf
- WinActivate($hGUI)
- EndFunc ;==>Check4Update
- Func _Exit($cmdl = False)
- If Not $cmdl Then
- $ByteStruct_snd_abort = 0
- $ByteStruct_snd_finished = 0
- $binCapture_snd_finished = 0
- $binCapture_snd_abort = 0
- _GDIPlus_BitmapDispose($hImage_Disc)
- _GDIPlus_BitmapDispose($hBitmap_Disk)
- _GDIPlus_BrushDispose($hBrush_Disc)
- _GDIPlus_GraphicsDispose($hGraphic_Disc)
- _WinAPI_DeleteObject($hBmp_About)
- _WinAPI_DeleteObject($hBmp_ChangeBG)
- _WinAPI_DeleteObject($hBmp_Update)
- _WinAPI_DeleteObject($hBmp_MD5)
- _WinAPI_DeleteObject($hBMP_VisitWeb)
- _WinAPI_DeleteObject($hBmp_EjectMedia)
- _WinAPI_DeleteObject($hBmp_LoadMedia)
- GUISetCursor($mco, 1, $hGUI)
- AdlibUnRegister("Chk_Drive_Status")
- GUIRegisterMsg(0x0111, "")
- GUIRegisterMsg(0x0112, "")
- GUIRegisterMsg(0x0133, "")
- GUIRegisterMsg(0x0046, "")
- GUIRegisterMsg(0x007B, "")
- GUIDelete($hGUI_Disc)
- EndIf
- _WinAPI_DeleteObject($hBitmap)
- DllCall("Gdi32.dll", "BOOL", "DeleteObject", "Handle", $hBrush)
- If $aero Then
- $oTB3.SetProgressState($hGUI, $TBPF_NOPROGRESS)
- $oTB3 = 0
- _AutoItObject_Shutdown()
- EndIf
- DllClose($hUser32DLL)
- _GDIPlus_Shutdown()
- If Not $auto_exit Then _WinAPI_AnimateWindow($hGUI, BitOR($AW_BLEND, $AW_HIDE), 750)
- GUIDelete($hGUI)
- Exit
- EndFunc ;==>_Exit
- Func CheckDiskPos()
- ;~ Local $stWINDOWPOS = DllStructCreate("int[6];uint", $lParam)
- ;~ Local $iX = DllStructGetData($stWINDOWPOS, 1, 3)
- Local $aPos = WinGetPos($hGUI)
- Local $iX = $aPos[0]
- If Not @error Then
- If $iX + $w + $disc_w + $wFrame > $aFullScreen[2] - Abs($aFullScreen[0]) Then WinMove($hGUI_Disc, "", $aPos[0] - $wFrame - $disc_w + $wFrameF, $aPos[1] + $wTitle)
- If $iX - $disc_w - $wFrame < $aFullScreen[0] Then WinMove($hGUI_Disc, "", $aPos[0] + $w + $wFrame + $wFrameF, $aPos[1] + $wTitle)
- EndIf
- ;~ Local $iY = DllStructGetData($stWINDOWPOS, 1, 4)
- ;~ Local $iW = DllStructGetData($stWINDOWPOS, 1, 5)
- ;~ Local $iH = DllStructGetData($stWINDOWPOS, 1, 6)
- ;~ $stWINDOWPOS = 0
- EndFunc
- #region functions for base64 string decompression and decoding
- Func _Base64Decode($input_string)
- Local $struct = DllStructCreate("int")
- Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
- If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
- Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
- $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
- If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
- Return DllStructGetData($a, 1)
- EndFunc ;==>_Base64Decode
- Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000)
- Local $tBuffer, $Ret
- $tOutput = 0
- $tBuffer = DllStructCreate('byte[' & $iBufferSize & ']')
- If @error Then Return SetError(1, 0, 0)
- $Ret = DllCall('ntdll.dll', 'uint', 'RtlDecompressBuffer', 'ushort', 0x0002, 'ptr', DllStructGetPtr($tBuffer), 'ulong', $iBufferSize, 'ptr', DllStructGetPtr($tInput), 'ulong', DllStructGetSize($tInput), 'ulong*', 0)
- If @error Then Return SetError(2, 0, 0)
- If $Ret[0] Then Return SetError(3, $Ret[0], 0)
- $tOutput = DllStructCreate('byte[' & $Ret[6] & ']')
- If Not _WinAPI_MoveMemory(DllStructGetPtr($tOutput), DllStructGetPtr($tBuffer), $Ret[6]) Then
- $tOutput = 0
- Return SetError(4, 0, 0)
- EndIf
- Return $Ret[6]
- EndFunc ;==>_WinAPI_LZNTDecompress
- #endregion
- ;http://msdn.microsoft.com/en-us/library/aa910369.aspx WAVE
- ;http://msdn.microsoft.com/en-us/library/aa909803.aspx
- #region play wave from memory by wolf9228
- Func sndPlaySound($lpszSound, $fuSound)
- Local $Type = "wstr", $aRes
- If IsPtr($lpszSound) Then $Type = "ptr"
- $aRes = DllCall("winmm.dll", "int", "sndPlaySound", $Type, $lpszSound, "dword", $fuSound)
- If @error Then Return SetError(1, 0, 0)
- Return $aRes[0]
- EndFunc ;==>sndPlaySound
- #endregion play wave from memory by wolf9228
- #region Windows Message Code Section
- Func WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)
- #forceref $hWnd, $iMsg, $wParam, $lParam
- If $hWnd <> $hGUI Then Return "GUI_RUNDEFMSG"
- CheckDiskPos()
- Return "GUI_RUNDEFMSG"
- EndFunc ;==>WM_WINDOWPOSCHANGING
- Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
- #forceref $Msg
- Local $hWndFrom, $iIDFrom, $iCode, $d
- $hWndFrom = $lParam
- $iIDFrom = BitAND($wParam, 0xFFFF)
- $iCode = BitShift($wParam, 16)
- Switch $hWndFrom
- Case $hCombo
- Switch $iCode
- Case $CBN_SELENDOK, $CBN_CLOSEUP
- ControlFocus($hGUI, '', $idButton_Browse)
- $combo_min = True
- Case $CBN_DROPDOWN
- $combo_min = False
- EndSwitch
- EndSwitch
- Switch $wParam
- Case $idEjectMedia
- $d = StringLeft(GUICtrlRead($idCombo), 1) & ":"
- If Not _WinAPI_IsDoorOpen($d) Then _WinAPI_EjectMedia($d)
- Case $idLoadMedia
- $d = StringLeft(GUICtrlRead($idCombo), 1) & ":"
- If _WinAPI_IsDoorOpen($d) Then _WinAPI_LoadMedia($d)
- EndSwitch
- Switch $iIDFrom
- Case $idInput_Filename
- DllCall('user32.dll', 'int', 'HideCaret', 'hwnd', $hWnd)
- DllCall('user32.dll', 'int', 'DestroyCaret')
- If Not $fs Then
- If StringLen(GUICtrlRead($idInput_Filename)) < 2 Then GUICtrlSetData($idInput_Filename, "")
- Else
- GUICtrlSetData($idInput_Filename, $saveas)
- EndIf
- EndSwitch
- Return "GUI_RUNDEFMSG"
- EndFunc ;==>WM_COMMAND
- Func WM_CONTEXTMENU($hWnd, $Msg, $wParam, $lParam)
- #forceref $hWnd, $Msg, $wParam, $lParam
- Local $mi = GUIGetCursorInfo()
- If IsArray($mi) Then
- If $mi[4] = $idCombo And Not $started Then
- _GUICtrlMenu_TrackPopupMenu($hQMenu, $hWnd)
- Return True
- EndIf
- EndIf
- Return "GUI_RUNDEFMSG"
- EndFunc ;==>WM_CONTEXTMENU
- Func WM_SYSCOMMAND($hGUI, $Msg, $wParam, $lParam)
- #forceref $hGUI, $Msg, $lParam
- Switch BitAND($wParam, 0xFFFF)
- Case $idAbout
- GUISetState(@SW_DISABLE, $hGUI)
- MsgBox(64, "About", $prg_name & $build & @LF & @LF & _
- "Credits:" & @LF & _
- "Main code by UEZ using AutoIt ;-)" & @LF & _
- "MD5 checksum code by Ward" & @LF & _
- "AutoItObject by AutoItObject-Team" & @LF & _
- "WinAPIEx by Yashied" & @LF & @LF & _
- "Thanks to smashly for pointing me to right direction ;-)" & @LF & _
- "And smartee for his efforts on this little project :-)", 90, $hGUI)
- GUISetState(@SW_ENABLE, $hGUI)
- Case $idChangeBGPic
- Local $chk_bg = MsgBox(3 + 48 + 4096, "Setting", "Change default background picture?" & @CRLF & _
- "(best resolution is 615x157)" & @CRLF & @CRLF & _
- "Yes = Browse and select a new picture" & @CRLF & _
- "No = Reset to default picture" & @CRLF & _
- "Cancel = Cancel this operation", 0, $hGUI)
- Switch $chk_bg
- Case 6
- Local Const $new_pic = FileOpenDialog("Select an image (best dimension: 615x157)", "", "Images (*.jpg;*png;*.bmp;*.gif)", 3, "", $hGUI)
- If @error Then Return 0
- Local $Result = Change_Background_Pic($new_pic)
- If $Result Then IniWrite($ini_file, "Settings", "Background_Pic", $new_pic)
- ControlFocus($hGUI, "", $idButton_Browse)
- Return 1
- Case 7
- Local Const $hHBITMAP = _GDIPlus_BitmapCreateFromMemory(BackgroundPic(), True)
- _WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP))
- _WinAPI_DeleteObject($hHBITMAP)
- _WinAPI_RedrawWindow($hGUI)
- IniWrite($ini_file, "Settings", "Background_Pic", "0")
- EndSwitch
- Case $idMD5
- Local $file_MD5 = FileOpenDialog("Select an ISO to create MD5 checksum", "", "ISO (*.iso)", 11, "", $hGUI)
- If Not @error Then Create_MD5($file_MD5)
- Case $idUpd
- Check4Update()
- Case $idVisitWeb
- ShellExecute("http://www.autoitscript.com/forum/index.php?showtopic=129859")
- EndSwitch
- Return "GUI_RUNDEFMSG"
- EndFunc ;==>WM_SYSCOMMAND
- Func WM_CTLCOLOREDIT($hGUI, $Msg, $wParam, $lParam)
- #forceref $hGUI, $Msg
- If $lParam = $hInput_Filename Then
- If Not $started Then GUISetCursor(2, 1, $hGUI)
- DllCall("Gdi32.dll", "uint", "SetTextColor", "handle", $wParam, "uint", $idInput_Filename_Color)
- DllCall("Gdi32.dll", "int", "SetBkMode", "handle", $wParam, "int", 1)
- Return $hBrush
- EndIf
- Return "GUI_RUNDEFMSG"
- EndFunc ;==>WM_CTLCOLOREDIT
- #endregion Windows Message Code Section
- ; #FUNCTION# ====================================================================================================================
- ; Name...........: _WinAPI_AnimateWindow
- ; Description....: Enables you to produce special effects when showing or hiding windows.
- ; Syntax.........: _WinAPI_AnimateWindow ( $hWnd, $iFlags [, $iDuration] )
- ; Parameters.....: $hWnd - Handle to the window to animate.
- ; $iFlags - The flags that specify the type of animation. This parameter can be one or more of the following
- ; values. Note that, by default, these flags take effect when showing a window. To take effect when
- ; hiding a window, use AW_HIDE and a logical OR operator with the appropriate flags.
- ;
- ; $AW_SLIDE
- ; $AW_ACTIVATE
- ; $AW_BLEND
- ; $AW_HIDE
- ; $AW_CENTER
- ; $AW_HOR_POSITIVE
- ; $AW_HOR_NEGATIVE
- ; $AW_VER_POSITIVE
- ; $AW_VER_NEGATIVE
- ;
- ; $iDuration - Specifies how long it takes to play the animation, in milliseconds. Default is 1000.
- ; Return values..: Success - 1.
- ; Failure - 0 and sets the @error flag to non-zero.
- ; Author.........: Yashied
- ; Modified.......:
- ; Remarks........: None
- ; Related........:
- ; Link...........: @@MsdnLink@@ AnimateWindow
- ; Example........: Yes
- ; ===============================================================================================================================
- Func _WinAPI_AnimateWindow($hWnd, $iFlags, $iDuration = 1000)
- Local $Ret = DllCall('user32.dll', 'int', 'AnimateWindow', 'hwnd', $hWnd, 'dword', $iDuration, 'dword', $iFlags)
- If (@error) Or (Not $Ret[0]) Then Return SetError(1, 0, 0)
- Return 1
- EndFunc ;==>_WinAPI_AnimateWindow
- #endregion WinAPIEx functions
- #region MD5 checksum
- Func _MD5Input_Thread(ByRef $Context, $Data)
- Local $Opcode
- If Not IsDllStruct($_MD5_CodeBuffer) Then _MD5_Startup()
- If Not IsDllStruct($Context) Then Return SetError(1, 0, 0)
- $Data = Binary($Data)
- Local $InputLen = BinaryLen($Data)
- Local $Input = DllStructCreate("byte[" & $InputLen & "]")
- DllStructSetData($Input, 1, $Data)
- If @AutoItX64 Then
- $Opcode = Binary('0x4883EC084989C8488B5110498B004D8B4820488B49084D8B40184883C408FFE0')
- Else
- $Opcode = Binary('0x83EC1C8B4424208B50108954240C8B500C895424088B5008895424048B5004891424FF1083EC1083C41CC20400')
- EndIf
- Local $CodeBufferMemory = _MemVirtualAlloc(0, BinaryLen($Opcode), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
- Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]", $CodeBufferMemory)
- DllStructSetData($CodeBuffer, 1, $Opcode)
- Local $ThreadParam = DllStructCreate("ptr addr; ptr var1; ptr var2; uint var3; int var4")
- DllStructSetData($ThreadParam, 'addr', DllStructGetPtr($_MD5_CodeBuffer) + $_MD5_InputOffset)
- DllStructSetData($ThreadParam, 'var1', DllStructGetPtr($Context))
- DllStructSetData($ThreadParam, 'var2', DllStructGetPtr($Input))
- DllStructSetData($ThreadParam, 'var3', $InputLen)
- DllStructSetData($ThreadParam, 'var4', 0)
- Local $Ret = DllCall("kernel32.dll", "hwnd", "CreateThread", "ptr", 0, "uint", 0, "ptr", _
- DllStructGetPtr($CodeBuffer), "ptr", DllStructGetPtr($ThreadParam), "uint", 0, "uint", 0)
- Local $ThreadHandle = $Ret[0]
- Do
- Sleep(10)
- $Ret = DllCall("kernel32.dll", "int", "GetExitCodeThread", "hwnd", $ThreadHandle, "uint*", 0)
- Until $Ret[2] <> 259 ; STILL_ACTIVE
- EndFunc ;==>_MD5Input_Thread
- Func _MD5_Exit()
- $_MD5_CodeBuffer = 0
- _MemVirtualFree($_MD5_CodeBufferMemory, 0, $MEM_RELEASE)
- EndFunc ;==>_MD5_Exit
- Func _MD5_Startup()
- Local $Code
- If Not IsDllStruct($_MD5_CodeBuffer) Then
- If @AutoItX64 Then
- $Code = 'BQsAAIkO2+kECRwYhw5XCIPUBK4KD0GcnVYdVZxU/HcAU0iD7ChEiyHHBnoMZwKDWggZEnIECEkTWQMieRBBjbT4eKRqf9c/ifgGaRgx2C5jUV4h8PB8JBT3+PhHAY28OVa3x+j9bP0Q7AQG7t7BKPbBwAfYAfA9IcZ9d0EO94txCMPBxwx0FABEjawe23AgJDmJwzp0sxhQ82M2hCH7YBOKtDPuzjG9wdZcHcOwwxFG8CxjO977MdY+b+sKoIQ4rw98UPWLJNiKvonrxp7GFmo++0Wq7oSAriHzog0AhzcqxocoRwGfKYnzgAox64NGwxHANqwtE0YwUKi9HM2A3/oKjmjufURFDy7jlUb9Nijd6Tw2xRHmuP9We+OhBSBEcQJuXCQMgIwY2JiAVWmGo+t7hD+v94QWK3sgRw4VsVv/NXjb30L3eGzhuCyjcGXduQRDiR6+18+6+s7q74JsUv+mhUcwZSr3QYQiEZBrvzXIkhJ5NGBuiTwkpIkUk3GYunygjjHvdkEPwCHHRQrwCwwB/1A4rvgSRSH4QBI9jkN5ptk9pMVBukE8Avmb+aQy6UmQBtkI0UmbIELawGIlHmX2cs4ogYlm8abpSm/5DcLIi0xC9wSBBVj9D0Bys/iJ/5sy8YlQDc8Mag+8pA4EwScJAUZH7QpRWl4mmRzP1TGHN/fN16qStum'
- $Code &= 'NDu4TgA49zM1R+LQgQhi78jBdGxAv1hsyOv75FCw69/tRzyHPQJeMEVOYPWwCHfb4rIHRsO9jQCHvA9MFgeah2GUdLvlRfHTQbJCVihRxaIaBPsj70+ddeQlyAiMImnegBTjmzeFXIX9g/DnWBzdGw6Adhw0j1fTxDA8E7RRaRStRzwt9BAXp46ktCXYCRRiSe6ANOfij71L8g92gBC3ZAm9nOkhlg4pMKrV0i9KKHE16swz+JMjGfYJCOfr/Ac5EA6lFf02gMJo8FDiLRL+GxwTuBgGB9nGHiJJGknJd6A5t0jtT7wtE8YYFCyJhnW2sODTwwPE+DDjl/fTIx9bFiVzpELs+JCIG6r6k/9mDDMa7WmbbF0za321LsCijFG7YyeOpzyLeS9Bb5Y9ghrv2jbB4TQHBSXFUThYJcLy/vggYgYv4MaNQTA2HUonFhbn9CZQQLwYKzVgFiywkEmVR1IA8L4x+myhIzck4xSBrIPonoWbqXvUyJCwvcrQqiGsZCoUw79SyooRJ9X5SBEOoFMcL2YUB72SD2QvOoOkOBR2IUgSSVacxJQiHDGoO6kgUCIUmFx+BNTnQ1NmU5MaQZZr+kDcf5Zkk2+Zrtr0s7UZoGlXGjMD4fCSiH5lPzO5spAQlRCIp9JQFH5aoeokw77CDuqwvlxP/KkNQCWRJFDQQ8UC2MWVWrMSSz8D'
- $Code &= 'COKcjlKvVjQputcb31UJp8TIZ4wxWkyJJ1hsbCc45Kqb0RcbExAb0f8woCeXHSeA2GffQZu0lJYKtOaCT/IWjCkxG5Wzt3bCoxAOkHMNZW2UyIu98bGgAxw/JFAkGgOiuqicAoCuSzAxmj9IVjJAWCQnIicsPL0zTvMTzUKa8F30U9O//b2w640QkCeD7Irzu0RNdhIUVKPw2ENnTEwnriUoQ46qU35J3kg8GPE9+qG/T05Q2quEd+zHrjtmJ1Ggi00nOG0HOgfy0KODmLO6llxR21cgd4zHLwN6NnAcUQ/yjmIuQCmkK+KxwzOZNCVks4E6CoREITkD9AcOr/bHXwd0PULnzCdiQ7KongJcsgn5TUPekrAYuNfI6vd00id7uAZgJzzHfIncBvDO70tcqReQKhwaHhMgJxoCojTQu38k9fHTzJXIMg88cHwVPOZHThgDUwQMC99Hbw76QWggJTNnCAokCi0IEUDf+2Ni1EAiJfkoASIPEKFteX105QVxvCB28p8MYvEmJftVnVArMn8tMCfhmxR1NhcDBi3FQdF/w5j8DTI15QEG+nwwC6wANSQFcJFBIhR7/dEalo+T1KZdH6/A5+3YE9v372/vxM4rYhuq23ONgHEgGKd/osAJqBoP+QHXILGf6'
- $Code &= 'BuGRMPboMAH/41hGdVK6krPrhPRKSBiJ11YIzlPKaMOOjiBJgfh/dn5BkUFQ9OA/IHVHDGZAMe1A+cw+4szp30Q/m+h2r+WDOysGGvg/d+RENEPAOhvDXrtBYmcyVAeHhSbxAV5QkeMghcO9IdMpxUO06DMy75Drue7+u4gzorDx1cZ+NI0uoQtD6cZEUZcY6MejkXCHuFIHJAEjRWfrobCJq82blosgAxkI/ty6mAMRDHZUMhAbqkFAMG8rE5mXGEnYpRKGrCAKmCZmKArLBpB9aTAKAV44v4Cgq79/ZNpnxIFmwdP/mQrGIs1E8kTN99nkkNH10AEJwB74OEKIDBgDdnJIQbikz4H5Y6hqf5jUDSnAMdKaQYI/AUNL4j0W2ZRT9rdzDMMBujhRDzOFpQ1A+ccCkRSpiAQRsACJ0THAwekDKPbCzAzJ80irKq2LZBxRs0CD4gF0HybGBwoUGnIhOFDo0NAltQVDUIn2JXVMk8YOQw046Nb1+p4wQNxFMgxEBAQISBAIIExqDGIHT5CepARP8T9M0v9RKfTDxmADpI17AbIbN+lNhpBmxweohuoC0Da7GulGIwgQEhEEdCHpPmgPlUQykS8iP0hT7yTRbaxrKSAkW4nodBLNCqnfY+kmJhtWfpnPBtZAmsH88wqkX17DEETQMqpjogAA'
- Else
- $Code = 'XgsAAIkA24PsBItEJAjz26DoLgnhw/vE+cIQwYeRLxwbKIk3eRGKBCcgIVcICByJCR0PHxBhCqBVV1ZjU0JEix2EagxdMthaEHoEAIlMJDyNtDF4HqRq193px9kh+b7AAc6LSAQewcYHGP47OI0DrClWt8fo2Nkx+Tch8ULzTA2Ai2gIccE/DAF8Bpwd23Ag2kFc0fPZbOQ0MWH7Ngwhy5gOAyeNvAE97s69wYl8nT3PwMMRMfcBy8xLMEYQMyHfGgNhMfIurw/g9YlhdBbBxxbc3gHMMM5HLIAUIWb+FgMxAY2MKSrGh0dUiieTdfkQlYRkRygKGI9GAzGAhysTEEYwqJGXQYoEmRuBR/QKHIxwLwEZlUb9LSBWijLtWZYEkRCIjPDYmIBCaUGJFo7+g443YRxaSox4r/eQP4WMRBgIKHixW3H/hUQUCCx4vtfwiaSCiowzhSBHEFMwjMEiEZBrIhjaP42xCPZEIISN8PX8cBI0wcUKov2TPw6TcZjwkJBlYQgYhzY4IVLpjoAzjkN5polA0etUTg2Uiw71AZRA+4+eH96CWDyJyIrNnR/oM7TwQAydH+4IPrRJpsc+mzj5yvdgAAViACUe9on4MfAhb8gI70T8KoviwXjAJAH4EY5As16izMDBLRCZJLpl90BBw1FaXiabKzzz/AcJAU8izjHGrr+NAyNQBqr'
- $Code &= 'HtmnpQQbUfEEoxg6B8vcMMc8hxwgDwCONhChdEDAv1kEUiUSJx96Ii4RRA7Ej91MU4QIJAKIegeYpodiSoIeHgyF04Y10NUi4LKtpBPvI+9PnSBhIeNjmzX7hiQQagdYHN8OUQTB8R3XR+ASHDdX0SBzUCO0UWkWRCKgFEenjqSM0U/Cj7/zKQSCA1ArZAm9nfF6EbX31dM19LMqDDIyHikwqaRSE8DzxT4YDQjn6/4tDUIEmMWg9JigSkxwIdAROgYH2cYdJliQ3wcwxENYLmFTA9gYiYZ1tGYnoMTTI/camMSeSECBuBww4TOWkQcKTNPAoWheG9uobvqSJjCY0+FjkLAgEYKnP3kuE3Sk8XJVA3sE+Ac1pIIa/xdTnAA5gS0y7lEH4Zq9lMBQIau4OD3Blv77WyTSwnn0MUYvLZKoXiIQ4EsZ+m5M+QHQp0OeLIciQPGXiz0GL+ieh6lajNGz4wDEwoWn9AQaF6O/Uqusvva8EthI9JvrU0xgBeAUdiARMonSLQOSKwYZBGLni1Io5FdDU2aJmNPHAyjEMaSL0Ag3lmdvmia3QZHVMVjooBhj4fKIfyjIB+f/IGTQGzGDN/2VWrMSqlweB6PXGNq+9iegH7CIpYfQw99AJYrU/BNXWQBv'
- $Code &= 'ABgH98Iw5DZf/KkMhCZ0gJOkS99EJTQ0DGYHQPacjlKsxbsXXkuwKALkJzzHHjSR8PXdFKAmdDykGADw5oJP8izB4xi0M99ZcCfukgBHDWVtLZVtY7FQ32hXC+gH+CUcwsvz1D6GSzAyPRMtVme1IHc4UvZEKAZwZ4OYs/lC6ffTvSP+BakNTpA5SIH0G0V2ETIU+ajVvq20QHCYVD4CsNU9+qG+Yy4KQQAsJxqDSMf6zz7jBueykCU6o7hgLicPV99OS7pDYOxRDoqMuCAnmH/PBHB/Bww+BKiihEQhOsPQvLAHLyM3YRgfFwDYugn5T99rAN4V22ED2xjHejTRsN7s2KQI18jq9idkjNAFC92w2D9U2Biu70tcq7M03GOqh8mznkfKG6whowgMykWqJ4ItymAY5WgidSgyV3uMfiUKAg8REW15fH13DVQ/VV+PPVlMAoIPsTIXJi1DidBx5jUB+kuI/SXU8QMMc6z0ii1xWyTCuT4nHriUbA+JcoJlIUBFYAVSF/3RHvkCsJ6IBOf52AonSjy+S1lzmfvVRVPayd/TQehTyAttzJfDyg/oZQHWoFzxALeja93H/CjHS65eVEUyTiDIskopmSEFA2e38/n+okRwPOIaAVUTroEJQgwvgP3VEkPMx//bFsA1y2FzqpXl57zToi58P5jd/Rz936oBGwInCo86uWfZU'
- $Code &= 'ZBPqLlhhAXKhu3rrIeAslL+/gYnaKcdM6vk9AfsO/ujjeIrrop75zSqUbATChLIBBuu8cZhL0GA8Gum7UQasEEsHFI1QQMcuYQEjRWe9Du6lH5hCaqvNYO8OCP7cukCYDA12VDIQONYTeoiRcy4CCkS/1ETT5b5DccOydMbcSVBAQf2/jqjNkAr32SHRwJ4JR4gMA4LAAYDYOHZmupFyh8KNe4rqFQOeJAiZvMJCpiJQ8PqSEVR8ut/+e1H2o8zDATC6OD8PhZ7CDffHAqQMn0mJgNjAwekCOfbCmfOrJJ0VAC8BdCrGB6HpJaFmZiFjUe2EEY1DQIiUiyV7UAd90nBrVA+kDv0Dwed2CzsRgtRTPERq7kNQOIfoKPr1gf2ZWwYKRPxGBMgMSBAIIExJDNxkUnSiIFLLJkgDhsPGA7YDewGyN+lVcm4VZscHkhzqAuizK+lRELIbViFTMckgRBjZ+YwgbIGQmmLfpf7RCxggmBhbMelgG1ZXp78kgxCltCHm5C/8BIP5CHInggcBKQKWpElMEfQFEmalgwQLicqTEPPUhxnD4QO5pOu6FgZfXsNXd0QQMDEPttIMaSGHswOtCCF0AwUKqkkhCnX2Uj/8Qk0QQKpfYMMA'
- EndIf
- Local $Opcode = String(_MD5_CodeDecompress($Code))
- $_MD5_InitOffset = (StringInStr($Opcode, "89DB") - 3) / 2
- $_MD5_InputOffset = (StringInStr($Opcode, "87DB") - 3) / 2
- $_MD5_ResultOffset = (StringInStr($Opcode, "09DB") - 3) / 2
- $Opcode = Binary($Opcode)
- $_MD5_CodeBufferMemory = _MemVirtualAlloc(0, BinaryLen($Opcode), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
- $_MD5_CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]", $_MD5_CodeBufferMemory)
- DllStructSetData($_MD5_CodeBuffer, 1, $Opcode)
- OnAutoItExitRegister("_MD5_Exit")
- EndIf
- EndFunc ;==>_MD5_Startup
- Func _MD5Init()
- If Not IsDllStruct($_MD5_CodeBuffer) Then _MD5_Startup()
- Local $Context = DllStructCreate("byte[" & $_HASH_MD5[1] & "]")
- DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_MD5_CodeBuffer) + $_MD5_InitOffset, _
- "ptr", DllStructGetPtr($Context), _
- "int", 0, _
- "int", 0, _
- "int", 0)
- Return $Context
- EndFunc ;==>_MD5Init
- Func _MD5Input(ByRef $Context, $Data)
- If Not IsDllStruct($_MD5_CodeBuffer) Then _MD5_Startup()
- If Not IsDllStruct($Context) Then Return SetError(1, 0, 0)
- $Data = Binary($Data)
- Local $InputLen = BinaryLen($Data)
- Local $Input = DllStructCreate("byte[" & $InputLen & "]")
- DllStructSetData($Input, 1, $Data)
- DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_MD5_CodeBuffer) + $_MD5_InputOffset, _
- "ptr", DllStructGetPtr($Context), _
- "ptr", DllStructGetPtr($Input), _
- "uint", $InputLen, _
- "int", 0)
- EndFunc ;==>_MD5Input
- Func _MD5Result(ByRef $Context)
- If Not IsDllStruct($_MD5_CodeBuffer) Then _MD5_Startup()
- If Not IsDllStruct($Context) Then Return SetError(1, 0, "")
- Local $Digest = DllStructCreate("byte[" & $_HASH_MD5[0] & "]")
- DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_MD5_CodeBuffer) + $_MD5_ResultOffset, _
- "ptr", DllStructGetPtr($Context), _
- "ptr", DllStructGetPtr($Digest), _
- "int", 0, _
- "int", 0)
- Return DllStructGetData($Digest, 1)
- EndFunc ;==>_MD5Result
- Func _MD5($Data)
- Local $Context = _MD5Init()
- _MD5Input($Context, $Data)
- Return _MD5Result($Context)
- EndFunc ;==>_MD5
- Func _MD5_CodeDecompress($Code)
- Local $Opcode
- If @AutoItX64 Then
- $Opcode = '0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
- Else
- $Opcode = '0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
- EndIf
- Local $AP_Decompress = (StringInStr($Opcode, "89C0") - 3) / 2
- Local $B64D_Init = (StringInStr($Opcode, "89D2") - 3) / 2
- Local $B64D_DecodeData = (StringInStr($Opcode, "89F6") - 3) / 2
- $Opcode = Binary($Opcode)
- Local $CodeBufferMemory = _MemVirtualAlloc(0, BinaryLen($Opcode), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
- Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]", $CodeBufferMemory)
- DllStructSetData($CodeBuffer, 1, $Opcode)
- Local $B64D_State = DllStructCreate("byte[16]")
- Local $Length = StringLen($Code)
- Local $Output = DllStructCreate("byte[" & $Length & "]")
- DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer) + $B64D_Init, _
- "ptr", DllStructGetPtr($B64D_State), _
- "int", 0, _
- "int", 0, _
- "int", 0)
- DllCall("user32.dll", "int", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer) + $B64D_DecodeData, _
- "str", $Code, _
- "uint", $Length, _
- "ptr", DllStructGetPtr($Output), _
- "ptr", DllStructGetPtr($B64D_State))
- Local $ResultLen = DllStructGetData(DllStructCreate("uint", DllStructGetPtr($Output)), 1)
- Local $Result = DllStructCreate("byte[" & ($ResultLen + 16) & "]")
- Local $Ret = DllCall("user32.dll", "uint", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer) + $AP_Decompress, _
- "ptr", DllStructGetPtr($Output) + 4, _
- "ptr", DllStructGetPtr($Result), _
- "int", 0, _
- "int", 0)
- _MemVirtualFree($CodeBufferMemory, 0, $MEM_RELEASE)
- Return BinaryMid(DllStructGetData($Result, 1), 1, $Ret[0])
- EndFunc ;==>_MD5_CodeDecompress
- #endregion MD5 checksum
- #region binary strings
- Func BackgroundPic()
- Local $BackgroundPic
- $BackgroundPic &= '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'
- $BackgroundPic &= 'jcmBO3QzIQBbu3tW7W5RrcuZcKPOsy5ua1kdiicxk1di6fxTZtLS3Zdls6spLTYvZzkzBZkdudSpMYot3ptdayrBaL7iGpzcaxx6sY6c28gWdFvsTo8h2dJcYUcqk3zpORvktrLc11M9VevF/wBHJ6Rrno2aSAy8EFmHzKtZ1CS4mharlMLIuUS3LebFoiSzOoCxGzlSMavZldyLmwi0sLZlkS0olZqotMA7FhYZrrBDAHUFuA1E6Q5bZx15symz0m+w2/IdjSQyoppVvmHHvJe56Lp0GlunHo6j+KWLTcalXE1NGwposyuEtczV5txSwurSqymNAayjXKmW7eyN5pM2Ra2QspKiJmrM1VkXSQySiJqJbgHZirpGubKaaVTmTPQu+zNPZjDOrIlSiaUnTm28e8QM9a9HFBZ15G5LMxhbjBC0lUSLW5cly5WzSWktiQpc2Z1AanPs5Uj9vYGsiZ1IqXRaaSLUZMS5qirM1pIUELKqgaxMrqyl5q1qB1nk5jutdTOnM5KkstKUc0s2jby3MMnZ3roy2jOQZRTWYqXaXVWaCGkhlaNGo2bTVkIZXMYXOpNZDqc6uPiPV26czSRco5rJuQiWQoGuTBFosyoiyWDUUAsWsHYxTxu3FygnKg1Fl3YTeCbzuypV+ewZ1iVaTMdXd6puVPOuZJkYaNNGDWaSGwqFgiaLjZZCjJlcAzFVqTeV7OXHLw1XTOqOhZalxNSNrq50lkSFS0UuSgVuKGBpUQZQTCEDqaqRYBELo24x0ybeLKgedCzqsgZo80lHNqGAIZela+po3KQ1GkImzUQhFuoYMAgahqrJrIdRE52S+VGhg6NdoZzcZ3hd27kIzaRNEKLWqyZJQxazl1zUUjJCEIQhCFmrLqohCLdmYqWiEIQ0Mj51BuXRa3Js0sTS1FLKowYUIvQ7M6yvZzpFc0ZD/8QAJBAAAwACAgICAwEBAQAAAAAAAAECAxEQEhMgBCEUMDFBQCL/2gAIAQEAAQUC/wCdMmicmiMwsgsg8g3shE8P0o/2fRs3y2ZGZGOhv0T0Ot/9+jR1NGv0qjuTkIyjs8hFEcbNi5o/2eaGzYqHReUvMVex/q0aNGv+ZQLELCeE8A8A8A8I8Z0NfomjtsRNEWdh0L7FyxkvljRb0eQrKVey2b42N+mjqLGThF8c/HPxz8ceAeI6/wDCpIxk4icYsZ4zodDxjxDwjwFYCsI4NeyYn9J/cUeQVbJFyyyaEzY2OvrLZsqh2N79lJOInAT8cWAWI8Z0Oh0HjKxFYSsQ4NfsSJxk4ycZMCk0a50aOp0HjHiLwF4CsejXqqEzuKtmMTF6UivpxRspl2WzsOuN+inZGLZGAnCLGKTRr2aHJUFYi8Y5/UkRBMEwKRG0PKkedHnQsiO3po0OSsZeEvCOdeqZsxk0SxV65Dv1JzFZSqGyn66Jx7IwkYhSJGudnZDyor5CPyBZ0LImbGOSoLxlT+hIxyTJM8O9FZ9F/JKztnlZ5WT8hk/KJ+SLMhZEb9HJeMyYS417RRLJomhM2bHRTMh30eQdDr1U7IxEYiYEuew8iKzov5JXyh/IbPI2dmd2ic7Izk5dmxlSZIKXvCIRK4vJoyZisjZ9sUCxlTrlW0LOyfkk/KF8k86PKjyodopotJlx6yyWJkGzsbGUWWbN+swRjJSQmjsh5EedFfJK+UV8hjzNnZvhInHs8Q8Y4PtE5WiM5N7GykZJH7Y0QdisujJlG9kzsnGKDr9ZTqOeETibHFSd2hZmednnZ52eYWQ/pc+s0KybPIKzsdimUV7TIvo8p5z8g/IHnZ5WSqorCxrQjRoS+8M/XQcFYysRUH8Iyk3vjIV6og7FZSsm+InZGMUHQc/WX+yhyUif7g66zTOrn7a4UnQ68QyltUvWETIoOprllofpEGtKqPs6s6ca4+PoyueuX+kiRr7wI0dRyVJclriLFkLofqhMdm9nUUmOSEJCRa/85J/9TJaL4jNo8+x/Y5NGLHse'
- $BackgroundPic &= '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'
- $BackgroundPic &= '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'
- $BackgroundPic &= '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'
- $BackgroundPic &= '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'
- $BackgroundPic &= 'vLq5KzlhjFpbXJPxSsw5cDlw8j/E/wCbf5E/I0eSmpK2/g1yRxy5kshhy6nIwORrz5M6H2IyUeWxhOQz5MnIsaXxkAYfYzXnI1r5BbRrI/IMwI9aR6Ql7P4Jc6T7wmVmcs5yIwPv6ljbwgzpfGXpCYy0OzFI9OSNGz1yx+X8l1gY5GLYCEufbL58ufluPLk8tNcnjjNprlqR7YnLMOXE5cPw/lPIOzlAmT7YcO6XIJEKWgcgByIIXMtkJ0R+CccheC2YIcsD5M4iqIyQpOGyBjRyecr/ADv4rMPIB8h1yKciHDkQHIM8hflk+QP5IDkVRcZDdsXljkqRnhJ6LXhPs4YA8iE5Bc0BMCwgMIeRI8n1Qi6ruZacdpqR4XAuMV/PwvSdrRvth3wfy33/ALGDlxQYfgJzyRwE6J86RikWkQeW5DDCyJAz8JS7EBO/ll+Wf5IPlm8ixi1+PRLmXEuH4a33HMdayZwhnbDlwdL2i9IEk8v4IscI3hZzG42AIFiZAQPMhO5CRl4f9gx/yzfI5H5NwhwhyyyMORYwpMnDZxOS4f5FG4MkxyGQi/2sDJhwgaBCdL5BAfIUj+MBoTbkVuGGCdRiyAkhcS42A3XYJHiHPxkMA/kifh/k6bCD8kjsA9Sc5B9XvkluF4xcfsMUsmk3C30lzvZywvsvBPhLltsrxcmWjB3aXbOTPJFOfYiUjc2/1v6ZI+xx7YPsD6wv26lWyw+yBjYPJDdwpMrGxLMZ3HqeDdMTS8rxCbewQYd/FLljLJ3aEOux5cNxYFmDfbP9hH2B9EH6X0ZLL2E56Qbv/ouSJNYLsGel/oXL0n+hYfS3+kW9uy0EIEY8tRl9r8tp5HcN/bb7I+r/AEu0aWX7bsjy7y5E0ZjJ+UEM/wCBPEWogbdQALAMYklz8PIW2/5bZaE7JNKuflqHk4BhBLPtl9u7seohpNsFzYWGBek6GkkQYe4B7KeTyI/6kfW5esQ9bQ9b+1knWV9sGz9YZqQ+EiLkZBFPV9WS/EzQ8gv7GInfzP8AME+QHywJlhIP7F/b/f8AAmRGD2LE22YQ7cowk0RBggj2GwCM/jvD+Zv4TYhkfyDPL+ZJ+bunN7MHtsdsPs/7+GKQrJ7DKu3+0+9YvX5BfZL7Kffyl00gHluPJ/jfZW5k3Oy3UeNiBuRxl8V/hBnSU+X8UT5AQB8/Nttn8HCz+2P2/wBY79gHsAwMQjt2XXbZzjJmf/UwC/8A2DxWSEP8MTWw9h5+kk4Hr9S6MJpwt/Z7/wANf7/0I+wvt/vP97/WX+wX24Tr/wBquWfjLQhmIibHLcllbbqzkkuWySzTlukZSXZbXZLrKr+f/9k='
- Return Binary(_Base64Decode($BackgroundPic))
- EndFunc ;==>BackgroundPic
- Func Texture()
- Local $Texture
- $Texture &= 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWAQMAAAD+ev54AAAABlBMVEX58vL8/vwLi9S/AAAAHUlEQVR4Xo3DQREAAAABwWuifytBzFDBY6m5obwGWsMgvzLU9ywAAAAASUVORK5CYII='
- Return Binary(_Base64Decode($Texture))
- EndFunc ;==>Texture
- Func Icon_LM()
- Local $Icon_LM
- $Icon_LM &= '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'
- $Icon_LM &= '1OS10Q5wcC5cjKUzaYCeIoaHD9Z66O96+aXNm38DBtHYhVw2zRYKqgqqrXe56qvRa71VPPb7R3q39VjM5ng8qigKiiIGA/X8i8/d5KF/Q1pXrvD5fJ9/9qWiqiiK7njowVAwAN0E1Rr8L1595Y2u7s1tbWtv1c1u069+WY1+U/wHkdDe883mV+YAAAAASUVORK5CYII='
- Return Binary(_Base64Decode($Icon_LM))
- EndFunc ;==>Icon_LM
- Func DiskImage()
- Local $DiskImage
- $DiskImage &= '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'
- $DiskImage &= 'eoHqR6sx64yGuz9ZPQ0Cb7pQMuSJXCZTn/K0b7Mi7Rx7OBj0BEqpy131b/A7R2jtHaOCGtZSWLxKQ6ntUlXcS3Owluiyl+VF9EcmwVB4BwwcUemHpx5APIkUMepn/m9f8jkdw7wlKlhquUsR4/4mdU2aLCKpwLWFvBx4Wk71S41b5bLsIOQguIFRgccGwN75mdJmmgbf87qTuHBmG4ylhmuDcYkBDPI9OnsjWz1C/X5nHnJVatGH7lpAcceniJTdoW3wFI5C2AuOFxwqMGone9tq/wD5LsTpgykqnNXq02ZLULgIaJISjkNshKSQTjglOcplRSUbRSEnRxVrXWRG0NuN8h1oLbBpCkchTQU0Nm5KnC8DUo1qrLF2psaDIGc1xgkhLYbaH6E45yHV8E+vkOmGv2qF8HVPcoP5DjYcbC2wpIMh5fJ9VudlY3fh03bITj9wuMbLiGh+pLWFq+H3A6oKP5a/asVwKl0IPklEFoC0BSApA2lnzOtsQsZ7trP8EqNCtF7XTnlQf9QtYUYdcDquQ4YMwz9wDFW4Iy+UhSQtAUgXFnGoazcm0n9oZR7Km1kUdjqfbsXZdesjSbig6sLMLPwa+4QrliE58F9BSRdWkWhrt670f2XP90Gc9Wy9YdRUa9bkxzJtwwswvwa+4ZiAoQV/DZ+GxdsU+ta/bG67Tak7/HANz3WAHi288bzJKqVb7T8ZxkyDQiiEYgErjKdo0eDMbF6wJVgm1t5V5N/0ocytcYcwfqHyOXJxJpnJa08ahJNmhioTtDbFlhQybe+U5IHn1yXPf//EACcRAAEEAQQCAgEFAAAAAAAAAAEAAgMEEQUSITEQQRMgMiIwUWFi/9oACAEDAQE/AfJKlkcOk+xID2hflaotXjJxJwmuDhlv3nCk7UhwrEio6tLWf+nlv8KtZZPGJI/tMOFN2rD8KeTJQGFo991ebn8T2gVal24CZYTXgoJ/WFNVkPIC1F7mu2lAJsRKZCtKlL4AHelcdmUoOKbMQobWThAeNS09lmP/AF6UdByjoptTCoM2EhTNG8rY1bWKAxiQfR0g3HhfMF8wVd+5yvSbJE+2pLxT7z92WrTdVjss54d4cfQT6zSn18IsK09nJctahLofkb6T50XEoNycKnFtVd5ym9eCMp8IKhj2NwnAEYK1fTXVpePxK/oKtEoWqHtQnhYRQHmxXZMwxyDhXdDkru3N5aoWJg4USgd+xLp0L+cYTtNx0U2k4e1HBjtAfT//xAAnEQABAwMEAgEFAQAAAAAAAAABAAIDBBEhBRASMRMiICMyQVFhM//aAAgBAgEBPwHcBU8TD2FFRwkZapNKp3dCyqNHe3MeU5pBsfgArbUzsqn6RTlV0jJhntSxOjdxdsBdcMJzdoHeypvtRKLkTdVdH5Y8d7UcPK7k6FOYnNTO7qkr4WizivI1wu1ZKaxCMrVqfxTY6KoIvohGIJ1PdTUthyTnX2o6kxP/AImsaF5GjpGZax7NaVRH6DVfauafA63wid6AFYWFqX+YWle8Fv0hF+16hSOuLFVVC+I3AuNo25uUychMqU2a61OW4DVpFT45OB/KJTnpoQCrI28ek/Dk1yDk2VTyc3XQNjcKlrPMz+prU0bVPSqW5QQcnyfgbxSujdyaqSuZLg4KG0/SqW7cvlBqU0eO1HrQP3NUmpsP4U1Vy6CJ+H//xAA/EAABAgMEBQcICQUAAAAAAAABAgMABBEFICFBEiIwMVEQEyMyYXGBJDNCUmKRocEGFENEU3KC0eEVorGywv/aAAgBAQAGPwK8BZtnvON5uqGi2PGEuW1adOLUsn5mBSyxNrHpTCiuKSllyDFPVaEUQG0juij0vKvD20Vjyz6PyC65oTomCZR2csp09umiFPSCmbWlx+Cdf3Qpp9pxl1O9K00I2aZOzJZcw6d9OqjtJhuZtoi0pwY839ij94S2y2hptOASkUA2FUKKT2RzVryTbxyfSNFxHjC5yzFG0rPGJoOka7xs'
- $DiskImage &= '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'
- $DiskImage &= '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'
- $DiskImage &= 'Ulo2MHY4Q3wAcOvi9/wG/XisDkXkWW8IuZtW5SlssrM8kImSNFkBJrncTC0sVfNiHGQqUylVGoEC1MwlBgMog2UrIAJ83DBCpYWgeUMvP4NVgZ218x7SGTK6iADwATCzBszKkziZ9zGZlfzCczQ9ko4C7BE1BrDcdUJhTD4P/qYsXAuFAl10x8jcJaoA5FiYpvsrfAv45RTjBeej5JfuyWwCu0pgaQS42mUzULBGNSl1cezxFkPFGD2kOga3S/tlGVyKB+U/4jHF6D9If4Y9mRScrpmBFiULmIbYaoFcR4FEkEzOYa/J+BRhISQpyH5q4swfApWbR0MU1GmCXMlit4IlwDQ0vXmB9Tf6VAQNZp9jKKdpqaxDONSNj2hOllebd/8ATLExWMukV6uZLeI2tEd6qFnVxr0eDYjc7czSDMLY4nFgP7ueAjLlKCEfCMBx+YVEfuPkaozQNftgvChXbliu8wVVq4A5YF2cE/LSBCMUYzUex1DLiKPJesmWvhgdPLoI0n2TMke2M56gAgoC1KCMkDmbIa+kmmVNNUNH+IUwE3A1mct+45v9y4bcEqohC/Kv9QcNQGbAjptR+C/uBRCYEcVM8ctgh42ZQ4FUYy3KCrX6iPDEzT9SlsxLiZNxKECjgb/bAUAkcDWBmYJbtzC7ARDcCU15jHFWPKx/ZjgSqckBRRTbT/iBhBNjGqjodyo5rNxMAwc8sQg5Gu3H6n/SZzm/UAVlCOsAf8PxKXZqpZZTspoboJPmyUOoYcRBernU2RUFWxsVSJfWBzwj7MQCIDV5XK8kPC4sTLsxKLyfcBDUFquolyeiNd0DhMUmuiXU2gl1+kdv+kveEoXGYvUSgVpsk90JtNgryX6tPxFPNRHBV8TSkHiGgiucw+hU8TrSUOjpGMXZL8Pk6iro6UM9O/iV8I9tShLxkqxad7Ls/wDUPZncy+WK6MdQXOUOyWn/AIERdi4LxCLgwt0DK/RL0c8bON8Vf5lBNYRt+UfWlbspbq8QcQxxBgCOmKJVQbULJm5oISmARniinUKltqsIkdqWqr9wPYrmT0Q0og5i0oYzyXMC7ht4lMB+tlpC+0F+EY6q7Kja/cZXTNIqfZFxdwbfRZFTwI+ozEszMpZUtmBippm3R3lctJB8DLjfMzVxOD3LRagl4lN4ivU8MqALgCCdFZfiirdteFfnACSepbbgdPzaMBFGZQLKqZLE1LuWzce1pvlzzBgzd5Ur6l+3Z+KuXErXE34iLqDpI5eCj5zx5l666SRH5fyETD9CbEeEYVlYYGBTo0HaB2lFHCR3mbLczmNSwtxszidwYz9dOSm4DEuCHEDhEHUIQHINdHa0BlWOBXrQDr1itfRx/FfMC2Vns4TSQsD7AUZN2uwysmIiYtjLzMVuZvYzqsxy5goe5X6VLYupQbldKEuYJhz4BdF7WgMrG+eyHFBnH0nn+bMDEtLAZGGbRYH0UN3XLmoE2p1/IgiPYxc5lF5l7FGY9/irWfUtyyvd3EDOI5bFNbg7DoCMZMnq4Tq5cHAf1C3IqVcr3Z5deGVZZsh9RhfX2lZsS4dIpH4YocDyhHdIQJkYRh9CW13goiHtI6OrNvYE6z7sFteyz4iGHpifK4PBg/tX09/bwv8AJAdwGqe7Z9kAqJDWp0l+44o09sJJUll/5jmBouedbfEtuNTAeNEe4ZU1lXtRX+j/2Q=='
- Return Binary(_Base64Decode($DiskImage))
- EndFunc ;==>DiskImage
- Func CDIcon()
- Local $CDIcon
- $CDIcon &= '6LkAiVBORw0KGgoAAAAADUlIRFIlAHAcARgIBgAocg0E35QAGAlwSFlzEAAACxIBDAHS3QB+/AAAB7VJRABBVEjHnVZbbAAc5RX+/vn/mQCdvXivXl8TXwAIkMRpTEIgsQAT2nJr2qAWKgAEDS9VhZBKUQB5ahEvfepjCwAUHvpQpLQPRQAICbUqNAhQhQCKcYGqwQkUmgA4JE4cvE592wD17s7uzP4z/wCtD/a6hoSCegCkI41mpPPNOQLfAAEEX2DxeNwAGhwa6h8bG78A+a67jhzK5fIE13cAABljnCgMAP2FxcWF0tzcAOmpqanJN954AOOfpdJcBf+PAFmWRfbuvXHoAIknn3r8zPT0AIlm069praXZAGRaaxOGoa5WAKvR7KVLy6+8APrq6z9+9NHvAA8MDOYZY+RLAIMlk8nYt79zAPeRf5w4MRlFABE3n2NKKdNsADbNysqKKZVKAGZmZsZ8+OFHAI0XXnzxhQNjAGN7KKX0s7GvAHiRTqfdHz78AKOHHvvpY8/0AHR373QdlzGbAF31x7TWiKIIAEIIhGG4/hw5AJl0x669e28cAC9XVi/Mzl6cADXGmKsC2rZtAP/gwQcfuv/+APt+zijpMgCxACwLcTcOYl1ZACGlFKIoQhiGAAjDEJzz9jNhABbt3vWV0ZsWABYXz5RKc5+0AEHpJs6sg4duALnzgaNHf0GAAD5jDCzLAiEEADEnBifmXAEoAKUE53zD28BhABgiEhEBdOe1ANu27zh7dnqyAFIpVz4FWCwWAPsffuSRp21qAI1qrUm7CoQQAIAAqWQKlmV9AApQCIFWq7XhAG3gTVkTx2Z9ANls0Tp58r1JACllZK0HpeOHAA5913Xs8UajAEk8z0Oj0YDnAHmo1+tr7tWxAImKDQ7b/LVLALrmIXiLI1QeAHj6tLXr6OV7AHfsGdgHAAwAAAqFQveRQ3feAG8ry4lUhCAIACCE2GgIYwwoAKVIJBIwQFD3ALxGELRaMDohAITIcs6dIAgQAAQBglYALgOEAKklmMEP4Ay/AAunY6Xnqw+MANz30XvO3xkAANLb27erM5sbAMnZKRhCUOF1AKxGHupeHWEYALZBtR+0Pmm2APiUULoMA2m0AHZkFG2xKQ60AHir4Pk+qVkNAFSLC5DDHyG5APUEcvYCHFhkAOdtsa8V8oUtAAwAue76625eAIpquZK/gjh1AFCM57A9OwilADWW+SpWK6sIACNZyhf1X5KpAGRDK2UAWJRSAJ5IZ6arlRWvANTgd12gyKxkACRoZ4AuFkdmAPUmxLWDBO9EAAcf6d858sedAAwALXZ1DROAAFJCEGmBeX8ZAJf9ZSRZHF3xACx6E51hPWFOACaSCb9er1uzABcv+LMXZ2qjAKN7unr6+mlnAKGw8IHvnJmjAM7YAFwy6GXRAOPvQdo4cI0LAKocMGQTxc63ALcxAA6jLLe5ACHaE9eULTQ8AB+OHQuGu3cuAHPOyfmz041nAJ765csLi4uXAPft23fDTx7/ANm34vG4Hs3SAMvXGhNmrA43ABYmQQwAGGgAAFIrCFKnzCbdAGx9NK5QHGMMAAghsIgFSqmyACxiIiEtSlkkAJWaM8aslsvlAEthxJWUkjomAIqCyrJuEIoGAAHW238jHmM2ANFaxhgApbXmAGsgAIEBYxRxADuGrJtGV7KAAHyukFgkQUJaACrq2zqQv/d7AEe/fuHcuXP7AMcO3pxKpRljAMxYxskqknAqAEEVoRLrGa7NADEhBIwx7QdBAIMBELVqZSmTAI6ZpMtIZzqJAGJHFp1uAQmaAIOtExCUuIE/AL8jgjrhxBzcAHbH4YO33v6NAAMwhMViDqSSAA6x1M5r+4fYAHYxjGrLw7JfAIEXNRFJASkkAISUYnW1Ms8AAKj5+U+mx8cLAK3uzlTCtTtAAHUSphlH2DCoAIomRNy2hvuHAG5gC4temdU+AJZCWkII212TADtnceHyTTLkAAN+zkc6'
- $CDIcon &= '2YF0ACaB6zqGoCOFABpvoBzWsFJbAK3Nl+bPMwB6AHZ29n2v6S1eALMtdQ2UBq8JANR9g8DYcNIpAGRzOSQSCTeTAM3e2uKt4aWVAPJis+mLsNVKAAKmvxl3+xZqAFUihIDIROApAI5YLAbbZUjZAEn0ZXrw+sU3AKcXFv89QwHAAPd52N/fu2vsAMDo7sqKTcr1ABiklUQyk0E2AJtFPB5vc0EdANvOx93YVgIzABjx1hbfb6bzAPk88TxvQ9q0ANJrMkgIJDPwACjnx5777bGZAHPnJ+has2hRACpVxYHxu2+nAKyYisU70JFOACOdTsN13TUBAN/UvWEYkiAIAEhbpCmlYIx9AEoSlVLQWsMYAODc+fPvP//cAHNPc84X2uOgAOt1r6I1Kx4+APzNGzpSSZZKAKXgOFeuJGMMAKIo2nAhBHzfAEc+n0cQBNBaAENKiSiKYIyBAJCy/uyzzz5xAPHChb8CEPS/AIF0+PG56bnBAKGh6/fv3z/sADiO9UVbXggBAKUUpJRQWsJNALrwGwEsi0ApAAWldOu11177AP1bb00c01rXAD678Y0Qon7yANTJS1sHBrftANi+fQul1LraEJbfvEkgB0qBtwA4nJSCEApKGgCAEH9y8u0/vAD80p+ejKKoBABAX+2m0c1mcwDp7b9NnqeUdQCNjIxsicVijABsIrENKKXcAADTWkMpjSjicACLgaktqerx4wCvPH/8zy/9igBzPgNAfe4RBQBA+r6/NDHx5gDUv06f9np6+wB6+np7M+vZEgAp5VUBCYHhgQAMpk6dOvWbXwAfe+rdd975nQAQYg6A3Bz8fwDdjowQks3n8wC7xw8evOOeewDuuWV09+7hrgCu7nQylXSjMAC0ms2mXCmvtADm5uZrU1NTZwAmJt6cODs9PQDRarVmADTbZQD8soDt7zaAFACz7d5CPj+QLwAU+vP5fKdlWQAO5zyolCtL1QDqaqler5e01gBlAP56Cc3nBQD80sf4+klirwBTQdYzkOuurgCW0WftP3tKqyCAxDSxL6D6AEmARU5ErkJggi+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgP8vgC+AL4AvgC+AL4AvgC+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgP8vgC+AL4AvgC+AL4AvgC+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgP8vgC+AL4AvgC+AL4AvgC+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgP8vgC+AL4AvgC+AL4AvgC+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgAEogAawAE5ErkJggg=='
- $CDIcon = _Base64Decode($CDIcon)
- Local $tSource = DllStructCreate('byte[' & BinaryLen($CDIcon) & ']')
- DllStructSetData($tSource, 1, $CDIcon)
- Local $tDecompress
- _WinAPI_LZNTDecompress($tSource, $tDecompress)
- $tSource = 0
- Return Binary(DllStructGetData($tDecompress, 1))
- EndFunc ;==>CDIcon
- Func Sound_Finished()
- Local $Sound_Finished
- $Sound_Finished &= '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'
- $Sound_Finished &= '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'
- $Sound_Finished &= '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'
- $Sound_Finished &= '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'
- $Sound_Finished &= 'qPpD+eEMFPqR+D0OlfeW+7oMoPbo/T0KH/kb/IAJ2Pzz9yoL1v3/9VUNT/vv95oN5vi5+ogLUfqN+i8JlP5p9wQJEgG69DULWP8Q9SQNMfxt9y8MN/y2+O4IAgBU9+EGfQOr9FMIGgNi81ELIwCP9MsL6f629o8IZQFZ9w8FCAWI9TQFHgYL82QIMwSe8isKQgLb9MQH/gJE96ID3wXl9lMCGQj588sE0Qf68VIH7AWM80UG7QQP93wCUAZV+AcABAnW9RUBfgrH8pADYAk08/ADIgfi9mEBrgaL+Wr+Dgkz+MP97Avm9GL/FQwU9NMAYgkG9wUAOgds+l39jgib+jH7FAz691r7mw0+9jX9SAvP9zb+/gcV+5v85gex/In5Jwt6+wj4tg1/+Yr5Zwx0+fL73AjD+9f7XQdR/rP4hQnj/s71awxo/V32aQz++2v5gQnF/NT6EAeG/274mQfIAdL0AApsASn0KQs///j2mglW/n/56waEAG74wQXsA/n07gb+BDjzvwjSAgz11wiMAPb3sgaVAWX4NAROBfb1uQOsB6PzeQU+Bgz0EgdHA4X2FQbxAjb49wIVBmf31AA9CTn11QECCTb0YAQ1Bo71zQSwBO334wGIBu34jP60CZv3W/68Cpf1DQHiCG71vQK5Brv3vQDwBkH69/xMCU76gPs/C/z3jP3YCmD29f/KCOz3Sv90B1P79vtdCOL8jfmaCgf7V/rAC274vPx7Cs34Z/0aCDr8TftKB/3+lPgWCTP+6PduC2P7gPlkC4/6IPu1CC/9sPpeBoAAa/gdBwoBgvb3Cdj+xfY0Cy39s/j6CHb+7PmvBYMBxPgXBT4DMfahB00C+vTSCWgAg/afCDAA+vguBTsCSPlaA6kEyfbfBEkFWfRbB+ID9vRjB2wC8/ekBPMCrfkMAmEF+fchAm0H9PQmBBEHbPQ9BfMEHvfNA+UD1fkiAaAFZPnH/5AIl/arAH8JFPVRAnUHz/ZyAiMFzflvAK4FuPoE/sMI5Pht/doK4/b3/ogJTPd4AJwGy/mp/9IFxvva/EMIavvW+v0Kmvmn+8YKvPgB/goIF/qX/jAGiPwl/GMHwv0h+QsKyfzb+O8KD/tR+xkJ9voc/bwGLP2h+3IGrv9X+EkI+f/y9vAJB/7L+HIJkvxB+0YH7P0T+6YFEgFU+CAGsgIn9vQHNwHf9tsI3f5F+YIHCv9Q+g4FCwLE+P0DrQRs9lUFKwTd9UcHoAGE9yQHowBf+Y8EzgJc+ScC1QWJ94ECewbw9d4EfgRc9vUFuQJo+O4DlAPh+ccAPQYk+ez/3wcM9/UBBAce9u8DEgW09/QCiQQ6+sz/KQbd+t/9TQjx+P/+zQjt9j0BWAeR93MBtgV4+gj/5QVj/IX85AdA+2P8mwm7+Db+IQlF+Gf/9wbM+kL+rwWL/dT77AaO/Xr6XglC+0n7Fwrh+fH8GAhu+0X9rQVW/pP7wwWH/2X5PQgf/uL4AApQ/GT6vQia/Pv71gXv/nz7tAT4ABz5hQbgAFn31ghG/yf4nwhj/nj6+gWV/1P75gPlAWr5kAQrA9X2xgZXAp72lgeyAPj42AV+AO76ZwNwAgH6vgLABEX3LwQUBQ32pQVMA8f3MAXTAU/6CQPaApr6RAGbBXH4dAEbB5P2BgPGBUP31gN/A675kAJaAw77MgDRBQv6CP8kCBr4FgC8B6P31AFTBUn5wQEYBE77cv+pBa37Lv08CEb6Uv3XCO/4Y//4Bmn5egAOBXj70/5nBRn9AvyKB7f8F/v2CP761vwgCDr6vf4dBrr7IP49BSz+cPtiBgP/pfkmCIT9jfqDCM37rPwEB1j8LP09Bfb+R/sQBd4AF/mYBhwA6vj7B/z9nfpwB3z98/tTBZ//RPvgAycCR/mnBGgCG/iaBoIA4/goBzD/lfpOBVoANPv0AuUC+PmvAhwEMfiWBAAD1PcNBlEBUPn0BFgB+fpOAj8D3/oAARQFDPlHAhQFpPcyBJwD'
- $Sound_Finished &= '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'
- $Sound_Finished &= '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'
- $Sound_Finished &= 'CwCyAHX/w/+xAMX/T/8JAar/MP9SAU7/fP83AS3/y//YAHn/tv+hAOf/TP/PAAAAA/8pAbb/Iv9DAWz/ff/5AIv/nf+cAPv/V/+UAEIA+f7kABwA5/4oAcX/Lv8IAbH/d/+hAAQAaP9kAGgADv+SAHMA0P7rACcA8f77AO3/SP+mABEAb/9GAHcANP9DALAA3P6WAIYA0P7OADgAHP+fACoAa/83AHUAYP8EAMsACv82ANIA0f6EAIsA/f6FAFIAXf8vAHAAg//d/8kAR//h//4A9f4pANYA9/5TAIUAT/8kAHAAm//I/7UAif+d/wgBN//M/wcBEP8NALsASP8OAHwApf/C/5kAwv91//IAiP95/w=='
- Return Binary(_Base64Decode($Sound_Finished))
- EndFunc ;==>Sound_Finished
- Func Sound_Abort()
- Local $Sound_Abort
- $Sound_Abort &= 'UklGRgQqAABXQVZFZm10IBAAAAABAAEAESsAABErAAABAAgAZGF0YeApAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgIGAgYCAgICBgYGAgYGBgICAgICBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAf39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+AgICAgICAgICAgICAgYJ9en+Eg4B4dYOJgXh6e4CGiomGgXdzeoWQjH1zbHeHh4GBgH2IjIqMe29rcYWJjY2Gf4B9eoaEhYl5d3x4f312dXV7jZWXj4JzaHV+g5OQhntubHiKkpN9X2NthJqfi3JeYW+HnZuLdGdqeoycn5J6XlVjhJykjWdSX3qVopeDcWt3foiWhnZrYW2Nm6WXdF5OYIijrpNnVlaBo6KQc2BsgI+Tjo5+bWloeqCpnHZPS2iSpqGAX2BqiaaolndpXGd/ipSSg3ZueJWsrZ1uUVBhfpOKe3lwc4iWkZF6eHF8i4eBd3d2iZmcmYd1bmZzf3hxcHB9gomMg396iol8d3Rwd4GBhJKhm39oU1V7kIiIgHN8iImKkIh0bXR0ho1+cHR5jZilnoN0V1pshYmEc2J0jJ+pmXl6dHaAfnp5e3p5hZGkpIduZnKFk4ZiTFZ1i6GXenFre5OUh3xqdI+bo5OHcF9SYoaQnoBRQEyHqrWidllec4WTh3t6dYCIk5qTfG9rh5yhiG1cVmmCk5mJfndwiY+Rh3yLnaGainlwfYqjm4NzWFNkf4eKf3d7gYB/cXJygpmfp6OJamhpk5+PfWJDV2p2i392d3lziYpyZmd2i52Xg25reZqqpJuDaXRtamRaXGaEpK2dh2dVZpSpqY1vX2mSp7yym3lkam6FhGlRTGmNmKGNdmNqfJKXk4d/f5Snr6KAXF5nd399YVhkdHtzfImOjYxzZnSDeYKKm7i6lWpWSmGCfGxmZ3NsdIiGjJmDd255h4KOk6CwqYdxcG5+g25gXWuDf4B/fYyQm5iPgW10jqW0vo9jVmR8h4l0TVBjcZCTj3ldaYqcl4dnYIetx7ODW1hpg5CJXkdIYHiKkZJ2cICMmpuFeICap7SVbWlveI2McmNvam10cHh9fJGKeX11hp+5t5p9XF99g4qBXFNkeoF9fHVreIyEeHBzgaSpt51zZXB0c2pdW2uFjm1haXeVt7KPcVVgfKG6uZlwXWt2hX1pV1p0gHZ0d4GSoKqikIuGhJaip5R3bnmLjn1qUk5ka2BvfIaSm5uamKSjmJ6em4JeVFFmeoF+a1RVV0lcg4yIj5eQlKCbqJqaoHtnaU1je3iEb1BcVFJ5g4CHloyRlpWqsrm5l29dUV9/j4RgWlRabHJzZHeaoqinkJKwtbWgd1ZQaYOem3pdODp8inl3ZW2Rl6SYl665pH9hUF9tfouMjXZjUUVkfXFyend/j5egub+pimBTanqHi350enRrVVBdcY+Wg3txdK3JxK11SlB5lp+JeGt1jIVmW0tilKKVinJqkbjGqnpgVXSUkIJ1do6XeGRQWY6fn4hodJSorpV0UFyBgn1+cWeGjoV/cWx7jIaGdWWHpp2PdWJdc3eBjIBje3pacI2AhpCRjXl6f3uFiYF5Z210fI+ZnZF/X1FbgaasnouHfZGvnnJqVkNTXHWioKKKe2p3kZaIjJOPenWEnJqPe15CXV1WVmiEkJKBcoOcqaqpoYx3bnVyiYdvXFFUcXF3b2ZvfH2Rl5+5xrOkm4+Mkn5nUEtTXnGBjWxdU2F3iKGuusash3+Dl7SdVDMwY4mei19IQlNjcHiQtcXTtH51fJ24rWI8KVuVqZtlQjhSX3N4jbPIuJuHdZC3roNNPUR4l6CFVUhNaXR7g5its5yJgY6xuohTM0aCp6yKYUpCSW6Iipyr'
- $Sound_Abort &= 'nH50eJuytJxeODh1mK6hemNTS1RthZ6qnnlqcpOrtpNgSD9hhpmkmIF2Yl5xh6SpnH9oa4ylpYtpWVRndI6Vkp2SfWVnh6ezr4pxcoONimpaT1ltdn6JhoaVk4iBj5+npJmEfIyUjG1GJzVTZ3x+bGt5gIqTrLazqZOKjoeimWlCJCBCXGxyXFxwfIaasrS0saKYm6WtoXtNLyhGZXJpVkJijJujtLWrqa6jmq+zsYxNKyVIgH1wVzU/gqGqq62RlKGanbKxtZFUNy1IfYJlTDs+iKq5uZp+eoebrbOxqHBKSE97hHZRKyRel7THwJ57bnqhu8Gsek07Voqkm2c5IDBymbjMtYp5bnapwrqCVDtDia+pfEopIVSLscq+nIRpeaW6rnhPOj16qqyHWj4lRH2pxb2df3N/p8K5g1E2Ll+Vn5lqRyo7bJ7AzrWNc26YusGfXz4tVZKqm25SLTRwn8C+pZd5fam2tphkUEdLeJKEaVdIQHelt6+Yk4uYu7Gce2BZaXF/fHFIQUJVhaixo4x8gaW9tpJrSldyh5KDdlE1NVSHrLStmn+Eqbi1k2VAWm2BmJBuW05EZImosqWYiZadrbGMZU1TaXp+elFMaGZ4nqunpJ2Rl56pmHZYSE1ucnVUL053fI+YmqaosaWfoaaLaFFCVWReUDk7V36SqKaoo6uvu7itpYJfYV9bZFUhFkR4j52xoYWara/Dzb2kcV9xZ31sNA4OP3WUsLSWjImZuM/NtolmcHV6bkwiFiZCdKW0s6OAdJe30M6rf29wcmtUNxgqQ1uCpq2wnYB/pcDMr4eFhYp3TykXQV1ripaboY+KkZq6xquGg4qSkHBAGyNEa5WqsaWDeX+gt7+kc258jKCHUSkcLVGCorO4lnuCj6e8nWlbbHqPlF81OiQ8bpqxtaCQmKq/wZhlWVlyg390SkBIRl9+l5yQoqy61Meuj3FnWV9bYGJdV1JnjJWHfHqRu8zMrIKBbmdpUE9VV2Nuh5WKeWdzm7bCtKeOjIllSz4xUHJ2fYyFiXx0i7PFvpR3apKenWA0GC56m5midlZoeJa+zMuodWxwhJRqRCY0Z5ajoolmY4Olv8axlYGHlY90SCEtXYaVlnpjZHSiwszAjGBfiKiue0YZKW2bq6l3UERZpMTOtnZVXoujl2EzKVmJnq6ng2pkW4yyw798aGlwiX5RLUaFmqiikYWSjoeDeZSSiod1YlhRSVN9i5aclYmds6+ef25teIeFbE45Nk16k6OcjXJ1nr7IoXVkWISJemI8NEFjf5SoppSCkbO8uI1tXYCAd2RCQ19seouiqoqQkbPGvJx1YnJ6a25LP2F6doeinoh/ham/wZdzW2VtZmNJUF6FhoWknoJ/j5art5Z0XVlXYktLX12Amae+t4Jrd5GuvJJlU1hbYUZCWGuDkKzGxpyAfo2jvJZaS1ZVZlNAQmOFmMnRwaSFe32lw7FnRj0+Y2lTPEt7mbvMwbOUiY+Vr5x6ZTouT1ZFR1mHq6exsJOnwbOhjl9ncDdDWjo+U1aQuq6poYqfwcevhFtqVDpBRFBja3WLrrO1qKSlssObYVJ2ZVdMNzpwgZKSg6GqsM3BsK2LW15PUkg9MEuGoqaMiI6hxtvApINqdGtdVTIvJkOSoqCOcGapzNSxnnpne3NUOTI7SHOOkYV2aZPFyMGthXuQi25GNThLe5WUjGpTZKTGyLmYd4GNhW5MNE5+mZaajVpchqKqtLOUfINvYlM+ZY2Ui4SCdXGUnXSInX6CkmpQVEVZiqWgjXl6jqGtelp7bnmTcT47UmaMrauWiIeZwb+QZmhmgHlmRDJVfJOhoo+PmqDP1qSKdmV+cVYyK0NlkaCciI+UmsvfvqFyYnZtekwrLTdrmIh6fW+PstDMv4pzbERdY1lOPE5xeX6Dh5CZvsK7r5t3VkpfX1dTXGlzi4B9lJ+uur+1gmhbUXtyYWFeT3+Xgo6nnZysrpt9b2pmfG9bUWNyiYqA'
- $Sound_Abort &= 'iKSxqLaicHltW3mIX19OTXeIiYmNlZ+gq512YHduhXxkUENcfX59laKcj5t8jZNwiIOOe2VWR2p4gouctKiWiFhrjYeZqYZ9d11jbGSCpqixsY9UYWx6hJqRfZGGbmhZW4a5uLKaWjxbeXePmGd1noBadVtYnbeqsndGQ2x3aX10fZKZel1OYpnBu6Z5SUJkiYZ2aWKCnZR/Uk2Qt87Di1A3UYKIfoFtgaijhVY5eb26yZ9eQ1t6f2l2boKvq6B2S1mrusSaZ0dTfY1nXU5xsLKrfFhZmrDDqGtLXW17cFRTZ5impIhzd5y1t5FzTmyJfGtaPWSSlpp+boCduMCVcFVsfnZvbz9ek390fmV/sMnDnn5TZn94aGhYZYyOenZSYrPCt6KDWW+QfWtZZIKLhIOEV3W0wZ2Ug1N6jG1gVnCQjod0c3SYtsyjfmtUa3pralZhiHx7hHmIrL23sYhYampXYVdoaHN5aHOBoLnGnaqUZGpuR1JacoJpV2RrdabTvoyflF93gFJIb4KUcFJdZYmz0rSFqJpmc2dFSnyFmoJQS2yRwdK8lqONf4JhSz9zhY2CUU1zmMXYxJeZj3V4Y0VHc3p8aExLeazEzcavkoF1al1GW2JlbmZLT3mqwMHEuIaNdlNdSFx3bF5UTlaBrMXEs6B9i3t5YT1PbW9naFtUe6rAx7yXf313hmJZYFxtb3FqZI6nvsCxjIaQf3l0Y1dgi3l+cmCaoaSkiHmYnJF2Y1hZZo51hYN9nqiVbVd8mMGhZlVDT4CDfnx+n7S3eFJMeJ3IkVZHP1iEgnN2krTBs2lPWYqpqXdOQ11ldXVqjMTPvJJaUF2atJ1vWFdxb35dYKXD06pdPUZ+tqiPcVRwgHp2WYi3w7NsOEJ5q6WQf2xud4ZnWJO2wbVtPDtukpp/eHZ8iIN0SH2/w7iDRzdjkZF5Z1Z6j4SIYGSxzcGOXURSiZuEXUxni4J7cVuYxs+iaFJSh5aPbUpag3p1blmaw86tdFFch5uNc2pagpRqX1CGt8u5flJSfZKah3RheIxtYlaOsceud0lRdIuXhoKIhJluXViNsLCddElOk4V3enOgrZt6Xk+PuLiLZU1UkJNrZF+OqaJyX1SUtbyDT0NakIh+ZlOEpqByWFOXusuOTDdCjJKFd1xvrKp4WU2GususW0M4hZqChHB7qqt/U1GDusSwZ0c8ZHeJhY2frqx2U1R+sbiqbU8/VmOGfYW4wqd2V06EsKmfckU5XGVucouxwbqBbVV8rK6aZUU1TGlfcIqrt7mSiXWBoKqKUD1GSHBtW5+dpbKklI6EmZ6KVSlQYGdwYJeknq66rZyQm6WMTSU8UHF4aoyblpuswq2Or6FwRCExSG9rZoqSj6myvLysrZ5vLh4zWnNra25whaXCsLOzpZViLSkvWXR2bm5bd6+7sLm1qo9QRU1BYmR9gWNig7i1oaqyp3NCUVhXcmSDkWZalsalqMKulE8nVFZ2hnqAdGR4prWqxMWyhjooQW+Gl3tyaGWMpJ2sw76ycjspN3SRmHZ2a2GRppy8vLSbUjgsQHaNhoF+dW2clKrVvK53PTBDYIWDdn9+eoqUjLfCua1nPzFFd4h/eGVocIeBlb7DwJpaPi5UhoaQgmBia26DpLvQuWlUQzd0mZKPhW9pblmEuLvKqV5ZSUd3o5mGiYZzYFODtbW7j1VRRF19npqDfJN7XmqSrrKobFlEPXCVlqaJepN5gJKToZJtXkxXYHaSmqmLfoyOkJeGhGdISVR5dHiAm6F+eqarm4p5Y0dBSWCOj3uClYVzoLW9snVqRzJUV2acqpiRjniDucDKrHpLMkVaWHuwxaGCgHaUsLetj24xQWhSWn6xwI1zfHmhqbOMgkInZGNXaYC5p2qAi4+nsJyBYydKaV5tdIa7gleNkKO6tIZ8TilPZll1iZCeZGKJqrjBpodiREteZ0t3oJZxdnSKtLy5qXpPbFdqbV6RoW5pe26iubOvnmRh'
- $Sound_Abort &= 'dnBwcX2He2RxaXqtrbmsd2ZxcXdyhHppa2lfaZCvuaaTjHNue3iHe2ZiZl5kbn+hpHeOnoGBeYyNYVdrZWhqcZSTaIuljJaLjZV7amRfb21neJhrapOYsaeJjJN/cWJ/bVlyiHFsepS2vqV7d4WHeomBWlJca3hrgbW/u5Rwdm1+pptwRj9KWHCIo7u4m318WWeXrZljRUZDX4qWsMCeeolwSnubpZ1nTk86cpCpxKJ3h4FWXIKZopNbQj1hkpnDt4B4cGVifpuajVsuRHqaoMG/mXhrcXCBio6DUS5YiZKbssKkf257eHZ0jo1CMHqVgIahwaaCeHt3gnV/hllBb6mNcoe8qHVze3qAcH+JWUtur59igLOHbYR9bXBxkntKbIqonGlqo4dwfG9zgXl3bWWHna6PdGuQh2htdoGFfGRLfp+qp411dpOJY291go12UkSSrrWhj4VvjIhncnuBiW5DQpy1uKaciGeDhXJybnOEVDJnrLKtoqF0bot+aXJ2emwzMnyspLuti3Rrh5R4f4FlQCpDjqmjxKuDal2Inn6JilclMGiooKrOl3h0comLlaB0PilFg6mgu8d3ZYN/jqOxjVQsLmWjqK7cpWBtcnigtLNsPRk/g6ivxceKXGFgdpmupVgpFFqYpLjVrm9UXFOHobWKSxgne5ae08qOeFZWWZGmr3M3EUWPkrfmrIpqTFV8maKZZCAiapur0dmygEdHbZmUnYM4E0yFoMHYwI1aSlORqpqJYhwuapC7y7OMcU1Pkb6kdmE8KlN7q9G4nX1jRoS8tnpXPEBXc6q9sa2OblNvprePWzAvam+TxcGmnXlnY5WjnHBFGlJ3irTQvqJ+a1qRpaF/WSI5a4ent8GtgW1bfqiphmQ2JVmNoaW2rXdSVH2hoo1rRihOiaWnr62EVzpoq6ukclA1UWWatp+lp3dMTpirp3lVOlRsgayimaaQXVqDq6eLXEZEcniZo4SIpnVng5ydm3FQOmuAlY1vepqGeJmPlKKHWz5Xh5OXbE52gnakq5KdjF5QUoianXtIUHd7nq6qnINUVWKMmJ+MVjpfiaSnqq6PQVOAlKGykmE8R3+nprGnfkxPeqCswJtZQ0ZvmK2um3ZMQ2yhs8ijW1FCUo61pox6VTZWl7XJsnRgSEyDqZx6ckwyXpiwxa56Y05gkKeScGY8KG2ntLenfmBhdJueiXBlRCtho7K7pXtsfYafmIFgV0tUZ5qmrKR1ZZWmsJ9tXUw0c5GhoZaSZFKgxr6acVk3LnWhqLOadllIkr7FoWVJJjd3kK7EnGlnUHyuwLBkQiY8e4muxplgaVhvs8GyZ0coUomRrryRaWhjYKu5tXVTLmGZnKirg1lgbl2jtrR8Ui5uoqOwo3NEWWZcsL6zelEtcKidsKxzO1NqZrK2rHRQMXaloKqicUFZcG6psap1TjBzpaOmk2RCVXOHuraocVE6gp2iroNBQltrl8nCqWpNOomkratzNjhPdqjRxaRiSTuIrb6uYjYtSIrA1MKLUjs2k7rGqmE6I1GeydDFeUItQpbC0athPCJeqsjUs2M7KE2aw9azZEMlWqnE1qlVLChaqcbaq1k3JXe0w9CTQCU5YK3H17NaOy6Ds76wdjUmUIizyM6ZUTs3ka6skFouNW+owr+rdkYvVqmrp3dLJ0yVv7m7j0w+OIuwsJdgKy9wssu7qWU1NWizt7R4SylJicfLuZBTOTmRtLufXzkycKXQyKdsTDJVsbrAh1IuTJ7B0L99Qzg7kL++t2pCM320v8OTRytBdLO9yY1FNEmiuMWkXSssX5/DxLVmPzlxucK9cEQiR4u6xayGQi89j7/ItmQ/I3Ctw76JTh0ybrzI0JlRLEGfsMKiXSIcTqDL0MVxPyhprrrCgTwVLHPC0dOdUTI4mLjFrmMnHEKez9TNekUlVK6+yplOISRmuszWr1o7L4Wzw8JyOSUsgsHP05BOODydsMSpWTsoRZbHyciDUTdhrK+v'
- $Sound_Abort &= 'cUs0SYnGxrudXUdElKiviVE7TYCsyraLZU5Gc56rol9FQXKew8SMYFRHcJyosHROSFqZtsqsZlFGZqCut45HQEyMscS8dUVCWJqytqhYN0NvrbvDiUo5VI+utK1tM0VXmLnErF5COnSmta6GPzZOjba6uHRFNGWnrZyPVihQjrq0sIJVN1+ms5OEYzVHh7qysINYQV+XrJp4Vz5Tgbi6spleQlCRqKiBWzRJg7vJsZxkOkeRqKyPYT5DhL3JtJNoQUmXp5qKZDhTiLPMv5hlSkSNpJ2AXi5SlqvIz5NWUz2DqqiCVi09kcLN1KBKRjV+s7OVXS8sbLvS0LxfPTFktbyidDkiVarY0cRxNzFcp7unf0QeTpTP1cuGOylSobKifEsWTJDL1s+VRydGmamWfFEcVqrIz8qOTic8haGLiVolW6rD0r6DWDVMeZd+glkzZqXDz8B2V0dllKNoX0NDgbbUxrhwTExwnLBqVSs7jrfdzqlsP0V/n654WSwvkMDa2KhsOUWNpa6CVCkqhrzW4LRxQjd+pKuBUiMjh8LU4LBgQD2OoaBxRxQwisvX3K5bPUeZpaZwQRAsfcfW2qxfPkSjsbJ9RRIlcLzW271lQTiPsLWRTBQgZq3S18NwSDuErrmVVBYoYZ3Pz8N7Tz+Ep7OXXBktZJrMz8R+VEB9orSWTxY2YZvMzrtyVlCIoKKIQBdPZKPNzqxjUmiVnY10NiBqfKPFx6FdWXKVnolkMS15nLDFvopVVYKbpIJVJEaMscnDqGtNUZaqqHdGHFibutm8glVAVaewqHBAGVufwt26dk0xVKexqXI+E1Sjwt/KeUgxTaOxqnI7GU+ewNvNfUk4SJ6yqXk/HFKlxNzSgkc3SJ2tp3Q8G2Kwy9/IfkM0U6Kqom07Im63ztmtaj42caaplF4vLH6709OdZT8xh6+mkl0rL4O908yQXTczjamkklcoNInA18mNWDQ9kKirklEtPI7D1MOOXzdEip2rkllCPIbEzr+TZDlYjJSpg1hLTJPIy7WRXTtufoyablZQZ6fNw52HWkOCb4KMWmBYda7RwIuHVlWKbIJnU2JakrjMuYxsSGqAf4tWXFNtpcLHs5VoTmtrfoBXXUJipLS6sZpuZ1tXhHp0e01wqMK3rI10Y0tLaGF3eVmBo7vGtJmQaDhPSEuMf2iGiJ2ysqelZUNRKFmhj4uIdoeeu8CqWEY5GXOsnKSIbnasy9KhVUYeH4GjoplyXm+l0MqKTzkQNYerr5BwXn273cB/USQkXJ29r4pzVJ3Y36xvORdHfbPEoXdbT7Xd0JxmIyFcibi6g2dSar7StXlADD5ql7ilZVtJhsTMpnIrG1FumrGRYFVdrsjIlmkgP26AoJ1vWGGYxM6qdkU2a4iQjXRNWZC9zsJ+UTximaOGfFM4ZbbE0pxePVSGt5xqWSs/l8THwHlFRn2ku31SMS2Dw8HAgU5AhKC7mlE1IVu0xMKUVjVxrbW+eD8gOIzBwqxrPkanvMaeSyYqesHIvHxJNHrBycJyNRxGpcfGnmAwU6LGyKRWKC99s8WwckI9erXEsnE8LWajtK96TEZun8GyhlM5T5Kpq41cR3KTtLSJYERRi6Sjg11Iep2rtoZbTVKHoaKGYD5rpa26k1hEWZKqrIpkNlSbsbujX0JNkK66jGE5PIOtuK5xSEaAqbqbaUI1a6S0uYhURG6kuK12TDNXi6q3nWZNWJi0tYdVM0+BmbKzeVdNh7G8jmU0Roabp7KFWliFrbmPaUJIhqSjo4BbV4iytpFpS06DqJ6Vd1RZgrO0lmpNUoKlpodkTlF7sr2haU9Mg5+phVlKT3WzwrF8VkqCpKqCWEJNeLDEs4NcUYKgqYlMN0Z1rcavflpQhqSsjk0vQG2nyLaHYU+Bp7GYUys3aaHCuI5oTHmmsqZhNC1gmreyjGpJd6axsnhDMViXsbCSbEZxobC5jFQzSYqqsJZuSGGds7qWXj1MkaiqimY/ZaKz'
- $Sound_Abort &= 't5RjQlGcqqaDWThknLG5m2lISpasp39XNVaTq7WdcVJDja6thlo1TY6ssZt2W0ePsbCEWDdWkK2vk3BdT5W0rYJdOluTral9amFYorezhlg8ZZGwpmpjX1KguL2QVzhejqmwa0pVVqS/wI5SNV6Xr7FqR0FWrMLImVYyUZOqunpJNk6lv8mnYThChqW3jlc4QJe9ybVuQTp2oLKWZD4/irnGv3tLRXKWrpBmRkSGtb28g01Ng4+fg2E9S5m1urmHU02OmZZ5WTxNobu/toZZSoyjh3ldMFOku7urflNKkaSGeFwwVqK6vah8UkuMpYl7XS1Un7m/onxXS4ekiHpiN1GYt76egWNOip5+eVs6V5O1xaeFc1J+pHh1XzdWkK/BsIlvXXegdnpaMFqOrMe7iGlodJZ/dU4xXJCoxLiBa2pvj4x3Uz1Xi6DAtHxpcGWDkXpaSFeDnL+/gXNuXoGUemNSTXiVu8CPfHNdd5iGY1pPc466ypeDfltwko9fWFV2h7HMkoiEW2+LjHNXTnKErciKjIRUcoqNglZCbIO3vomQf0prkZmNXkBgfrLBl5V2OGedk5V3SE93q8OcnnQ+VpSVl41TSmyXtJ+ldklIf5WXl2lOYImspKqFVz9ul5KhflRkhaSqtINbQ1yJjKmKWWqCk6WwfFxLXnuMq49odoGHo6ZwUVRlcZapinF9eIOqlWJMV2t3qK6EdHpthrOMa1BdZ3uzsIV4eWCGsol0UmJchbS1jnhvWIa0in9kYEmHtraUfGJOiKuXc2VcQ4u0rouAXE+QqpNnb04+lLSnj4BVUJeqjGp3RkKcr62XeUlemquNeHM9TaO4uKNvSVeJsZV7bjlYqb/ApWdKU4Gsmn5gNmqtvMGfXEdWhKKPflNBgrC+t4hOSVmPmod7TkuKtMKvgFRHYZCUlG5JToqxwa18UU90kouJXT5imLzBpHRWT4OUiX9KQnOYxr6fcllXiYqBe0lLd6DFwqt7WmGBdH9zOFqDo86ypHpdZ3pygmE2dJGuyqmPbmRtdWp6WESJk7PCmXV0eXZsb3JHVpubvLWDcHWGgmtzUztvpai7qndshYqEd2hDNWuhpreod2qQkYR0WUE7ep2it6FugaGKg3pIN0GBpKexnW6Kqo6DbjoxWI2kp6KQfp+njXdYKEB5lZ+VmnuOraiEX0QlUY+Xj4yNcqa0qHpVPC9hlpB/hoCFsbqfakY5SYSci3l9eqO7vZlkQDplnpuEem98sri8jVI2UoSZkItsZJqztK6BTz5znYh/gVFzuKyumWpLX5GdbG9cQae+n6F+UVWLn41dWDpiwLOgiWlAcamle1lCOZXHso93T0mau5hmVjFgssqidWVIc7K5eFhFOpjKu4hlU2Cdv6VdUjpltcetbl9Nfqm1hFVEQ5TDvJNlTU+bsqpwTjBhrsayfF9BZK64mmJCNIO3xJpmUUeMt617Vy9RocG5gVxFWaq8nGxLM32xyaRrS0SAuK+HXjlZocK5g1hBYqu1mnNJPo64vphsR1OdvKaBWThjpb6sdl9Jdq6ziWNGQ4y1tYttWGGitZ9uTEJppbehdWZVhrOriFk+UI2rro1pZG2atpd0UEBon6uZfnFohbWne188TYuvnoh6analuIVjQjloraaJgXRtjbWfaEU2VI6nlId8Y36jtIRVNUx8m5SLhW52lqudakFBdpeWjIR7eI+gpYVWP2GNk4qCgX6OnaORZ0lSgJiRg3uEjpyel39SRG6VkXp9goGdopaKZUNdkpd9c4B2k6ebi3FLT4iegG19doKnn4qFVUWCmodpfH54oaeHhmhEc56HbGyGeZqtjoZwQGmsg21zfHWPqZmGcUpXpIxrdoR0iKakh3FVUY2YfXCBeoKiqI19YEd4oYJogYx1mauQfmlHb5mGcXaLeIqonH5yUViVjXVrjHl6naSAiF9HiIxvbIaHcYmljY12THeTamyAlHp0k5yFgmlzkHFnfZyMd4aYhXx7'
- $Sound_Abort &= 'dIZ6aXGUmIN+j4Zze36AfHFvipuNfYWGenV8fnxzaoGYkH6BgHp2fIF6dmt4lZ2DeHx1dH+GfnhucIyej3l0dXV+i4N4dG2FnJqDc3VyeI2HcnZzfpSajXNyc3OMjm5yeH6Rnph+bXZveZN4Y3WCkJiciWlucnGOfGBzf5KbmoxuaXZuiIdaZoCTlpeReWV2d4yJXV96i5mbjX1oeXyJkGxVcoycoJCDZneCiJl7UWCHmaGVhGt3hYWbildYgZidl4dta36GnI9bT3qUnJ6TZ2B5hpqWa1F1lJmgk2RVbISdkHVlcY2WnphwWWd3k5R5aHeOkI6TdF9rdZGTdGJ9lZGGjXFhb4COjHhkdJKah4t3X296hpGFa2+LkYmOh2RpeIOQiXBxjJGFk41qZ3V/kY91coyNgZWVbWJqeZCQeXyKhH+ZnGlZZ2+Bl4Z5iYZ6k6FxU19qeJiOgpCFe5mdc1pgZnOTloyMfoKPlYBkY2JriZaUlHp/lI58cmtkZoKRkZ9+fZmTc3FxZl+AjoeiiXSdm3RrbmxgepGCno90nKB2Z2FkYXiMgJmVcpyqeWlcWltxjISVmHaXp31oWFZbco2CmZZ0mK6AcVxOWnOOiZaQe5irhnhnUVd0jYiTkXqTrox8bFJceImFkoR1m6+RgW1SWHmIhJF8bp+skINrUVl5iYWPeGySqpeJb1ZYdoqGkHprka2Xh3RTUnaOiJV7b5Srl4tzT091j4iXeG2QpZ2Qc1JUdI+GknpsjqmdjW9PUH2Vh5V1YY+tn5huT1N9kYiTdGKNqaCXbVVUfIuCmHNml5qZkWlZWH2MfZJzapmXmIpdX2F7iHuLcHKmoIuCWFxnh5J/eXJ6qqeIek5TdpeNhXtnf6ypi3hEUH2gmYdyZ36lq5BxREyDqZmHcmZ6pKmPa0RPiKediW5me6WqlWhEToWon4pnY3yhqJNmRk+GqJ+LZGWDpKyVY0RTiZ6cjWhihqmokGNJVoSdnYpnao2jo45eQFSMnJWIb3CPoqaHV0NdjJmah250jp+ih1hIYY2VlIhreZWfoYZYSmSMk42FaXmXnqCBU1Jri4+JgWN7o5+dfFFTb5KThHlge6WhoHlHUniSkIV7XnimqJx4Tld1kJOHeGF3oKaXdlJae5OQh3dngJyjmHFPYICTkId4Z3+dpphvT2B/j46IcWGIo6OWak5ef5GMhGxgiqWnmGdPYYGRiIdtX4+pqY9fVWiGj4iFamSWq6qJW1Rvh42GiGtqm66je1ZfeouNiIRqdZusnWxOZoCOjol+an2aqpRfS22GjYmEe2yBmqeIV090jomBgHlwhp2ghFpZdouJgIB0c4iZnYJfXnSMiYB6c3aKmp9/X2Z1ioh/e3F5jZadeFtrdoSIf350epGVmHNdcXmJiICBeXySkY5pX3WAg4KBfXyKkYyAYmd9hIWBenyCjY6JfGZufouCe3iBjJONg3Rte4WIfnlygJOUi3xseYSEhn91bYOaloh3aH2GhIN8dm+GnJGGcGCCi359gnRviZuRg2ljiIR+gnx2doqWiXtmbY2GfXx8c3yQk4V7X3STg3t9e3F/j5CEc12AlX56f3hug5SJfXNgi5l7dnl3comShX9rZZaTeXh/c3OKk4F3bm+WkHp8e3B5j5J+dmt7nop2fXl1gpGLeW9uhZqCeIB4fIeIhXdweZKSeHh+eIGKh3tycX+UkHp6fXmGiYJ6dHWFl4t3fn16h4eAeHJ9i5KFeX96foiFfHV1gYuOgHt+eYGFgHt2eYOIhn19fXqDg356d3yDhYF9fnx+g4B8eXl/g4J+fX59f4J9enp8gYSCfX6Af4GAfHt8f4KEgH1+f4CBf3x7fICEg399gICAgH19fH6Bg4J+fn9/gYB9fX1+f4GAf35+f4B9fn5+f4CAf35/gICAfn5+fYCBgH9+f36AgH9+f3+AgIGAgH+AgICBgICAgYGBgoKCgYGBgYGBgYGBgYCBgYGCgoGAgYCB'
- $Sound_Abort &= 'gYCAgIB/gICAfn9/fn9/f39/f35/f4CAf35/f4B/f4CAgIB/f4B/gH9/fn5/f4B/f39+fn9/f35+fX5+f35+fn1+fn9/f35/f35/f35+f39/f39+f4B/f39/f3+AgH9/f39/gH6Af39/f4B/gH+AgH6Af4B/f39/gICAf39/fn+AgH5/f39/f4B/fn9+f4CAgH9/f4CBgICAgICAgYB/gICAgYGAgICBgYGBgICBgYGBgYCAgICBgYCAgICAgYGBgICAgICAgICAgICAf4CAgIB/f39/f4CAf39+f4B/f39+fn9/f4B/fn5+f39/fnx9fn5+fn59fX5+fn5+fX1+fX5+fn5+fn5+'
- Return Binary(_Base64Decode($Sound_Abort))
- EndFunc ;==>Sound_Abort
- #endregion binary strings
Add Comment
Please, Sign In to add comment