Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'coded by UEZ build 2018-02-01
- #Include once "windows.bi"
- #Include once "vbcompat.bi"
- ' uFMOD constants :
- #Define XM_RESOURCE 0
- #Define XM_MEMORY 1
- #Define XM_FILE 2
- #Define XM_NOLOOP 8
- #Define XM_SUSPENDED 16
- #Define uFMOD_MIN_VOL 0
- #Define uFMOD_MAX_VOL 25
- #Define uFMOD_DEFAULT_VOL 25
- Declare function _uFMOD_Startup() as any Ptr
- Declare Sub _uFMOD_Shutdown(hLib as any Ptr)
- Declare FUnction _uFMOD_PlaySongFile(hLib as any Ptr, sFile as LPCSTR, iLoop as Uinteger = 1) as Integer
- Declare FUnction _uFMOD_PlaySongMem(hLib as any Ptr, tMem as any Ptr, iSize as uInteger, iLoop as Uinteger = 1) as Integer
- Declare FUnction _uFMOD_StopSong(hLib as any Ptr) as Integer
- Declare FUnction _uFMOD_SetVolume(hLib as any Ptr, iVolume as uInteger) as Integer
- Declare Function _uFMOD_Pause(hLib as any Ptr) as Integer
- Declare Function _uFMOD_Resume(hLib as any Ptr) as Integer
- Declare Function _uFMOD_GetStats(hLib as any Ptr) as UInteger
- Declare Function _uFMOD_GetTitle(hLib as any Ptr) as zstring ptr
- Declare Function _uFMOD_GetRowOrder(hLib as any Ptr) as UInteger
- Declare Function _uFMOD_GetTime(hLib as any Ptr) as UInteger
- Declare FUnction _uFMOD_Jump2Pattern(hLib as any Ptr, iPattern as UInteger) as Integer
- Declare Function _WinAPI_Base64Decode(sBase64 as String) as UByte Ptr
- function _uFMOD_Startup() as any Ptr
- If (FileExists(CurDir & "\ufmod.dll") = 0) or (FileLen(CurDir & "\ufmod.dll") <> 9728) Then
- Restore __ufmoddll:
- Dim as String aB64(1), sString
- For i as uByte = 0 to 10
- Read aB64(0)
- sString &= aB64(0)
- Next
- Dim as Byte Ptr binB64Decoded = _WinAPI_Base64Decode(sString)
- Dim as long iFileNum = FreeFile
- Open CurDir & "\ufmod.dll" For Binary As #iFileNum
- If Err > 0 Then
- Close
- Return 0
- End If
- Put #iFileNum, 0, binB64Decoded[0], 9728
- Close
- End If
- Dim as any Ptr hLib = Dylibload("ufmod.dll")
- if hLib = 0 then
- return 0
- end if
- Return hLib
- End function
- Sub _uFMOD_Shutdown(hLib as any Ptr)
- Dylibfree(hLib)
- End Sub
- FUnction _uFMOD_PlaySongFile(hLib as any Ptr, sFile as LPCSTR, iLoop as Uinteger = 1) as Integer
- dim puFMOD_PlaySong as Function _
- ( _
- byval as LPCTSTR, _ 'Long Pointer Constant TChar
- byval as uinteger, _
- byval as Uinteger _
- ) as Integer
- puFMOD_PlaySong = Dylibsymbol(hLib, "uFMOD_PlaySong")
- if puFMOD_PlaySong = 0 then
- return -2
- End If
- If iLoop = 0 Then
- iLoop = XM_NOLOOP
- Else
- iLoop = 0
- End If
- var result = puFMOD_PlaySong(sFile, 0, XM_FILE + iLoop)
- Return result
- End FUnction
- FUnction _uFMOD_PlaySongMem(hLib as any Ptr, tMem as any Ptr, iSize as uInteger, iLoop as Uinteger = 1) as Integer
- dim puFMOD_PlaySong as Function _
- ( _
- byval as any Ptr, _
- byval as uinteger, _
- byval as Uinteger _
- ) as Integer
- puFMOD_PlaySong = Dylibsymbol(hLib, "uFMOD_PlaySong")
- if puFMOD_PlaySong = 0 then
- return -2
- End If
- If iLoop = 0 Then
- iLoop = XM_NOLOOP
- Else
- iLoop = 0
- End If
- var result = puFMOD_PlaySong(tMem, iSize, XM_MEMORY + iLoop)
- Return result
- End FUnction
- FUnction _uFMOD_StopSong(hLib as any Ptr) as Integer
- dim puFMOD_StopSong as Function _
- ( _
- byval as any ptr, _
- byval as Integer, _
- byval as Integer _
- ) as Integer
- puFMOD_StopSong = Dylibsymbol(hLib, "uFMOD_PlaySong")
- if puFMOD_StopSong = 0 then
- return -2
- End If
- var result = puFMOD_StopSong(0, 0, 0)
- Return result
- End FUnction
- FUnction _uFMOD_SetVolume(hLib as any Ptr, iVolume as uInteger) as Integer
- dim puFMOD_SetVolume as Function _
- ( _
- byval as uInteger _
- ) as Integer
- puFMOD_SetVolume = Dylibsymbol(hLib, "uFMOD_SetVolume")
- if puFMOD_SetVolume = 0 then
- return -2
- End If
- var result = puFMOD_SetVolume(iif(iVolume < 0, uFMOD_MIN_VOL, IIf(iVolume > uFMOD_MAX_VOL, uFMOD_MAX_VOL, iVolume)))
- Return result
- End FUnction
- Function _uFMOD_Pause(hLib as any Ptr) as Integer
- dim puFMOD_Pause as Function () as Integer
- puFMOD_Pause = Dylibsymbol(hLib, "uFMOD_Pause")
- if puFMOD_Pause = 0 then
- return -2
- End If
- var result = puFMOD_Pause()
- Return result
- End Function
- Function _uFMOD_Resume(hLib as any Ptr) as Integer
- dim puFMOD_Resume as Function () as Integer
- puFMOD_Resume = Dylibsymbol(hLib, "uFMOD_Resume")
- if puFMOD_Resume = 0 then
- return -2
- End If
- var result = puFMOD_Resume()
- Return result
- End Function
- Function _uFMOD_GetStats(hLib as any Ptr) as UInteger
- dim puFMOD_GetStats as Function () as UInteger
- puFMOD_GetStats = Dylibsymbol(hLib, "uFMOD_GetStats")
- var result = puFMOD_GetStats()
- Return result
- End Function
- Function _uFMOD_GetTitle(hLib as any Ptr) as zstring ptr
- dim puFMOD_GetTitle as Function () as zstring ptr
- puFMOD_GetTitle = Dylibsymbol(hLib, "uFMOD_GetTitle")
- var result = puFMOD_GetTitle()
- Return result
- End Function
- Function _uFMOD_GetRowOrder(hLib as any Ptr) as UInteger
- dim puFMOD_GetRowOrder as Function () as UInteger
- puFMOD_GetRowOrder = Dylibsymbol(hLib, "uFMOD_GetRowOrder")
- var result = puFMOD_GetRowOrder()
- Return result
- End Function
- Function _uFMOD_GetTime(hLib as any Ptr) as UInteger
- dim puFMOD_GetTime as Function () as UInteger
- puFMOD_GetTime = Dylibsymbol(hLib, "uFMOD_GetTime")
- var result = puFMOD_GetTime()
- Return result
- End Function
- FUnction _uFMOD_Jump2Pattern(hLib as any Ptr, iPattern as UInteger) as Integer
- dim puFMOD_Jump2Pattern as Function _
- ( _
- byval as UInteger _
- ) as Integer
- puFMOD_Jump2Pattern = Dylibsymbol(hLib, "uFMOD_Jump2Pattern")
- if puFMOD_Jump2Pattern = 0 then
- return -2
- End If
- var result = puFMOD_Jump2Pattern(iPattern)
- Return result
- End Function
- Function _WinAPI_Base64Decode(sBase64 as String) as UByte Ptr
- #Define CRYPT_STRING_BASE64 1
- Dim as any Ptr hLib = Dylibload("Crypt32.dll")
- dim pCryptStringToBinary as Function _
- (byval pszString as zstring Ptr, _
- byval pcchString as Long, _
- byval dwFlags as Long, _
- byval pbBinary as UBYTE Ptr, _
- byval pcbBinary as Long Ptr, _
- byval pdwSkip as Long Ptr, _
- byval pdwFlag as Long Ptr) As Boolean
- pCryptStringToBinary = Dylibsymbol(hLib, "CryptStringToBinaryA") 'https://msdn.microsoft.com/en-us/library/windows/desktop/aa380285(v=vs.85).aspx
- Dim as Long iSize = Len(sBase64)
- Dim as UByte aDecodeB64(0 to iSize)
- Dim as Boolean result = pCryptStringToBinary( StrPtr(sBase64), _
- 0, _
- 1, _
- @aDecodeB64(0), _
- @iSize, _
- 0, _
- 0)
- Dylibfree(hLib)
- If result = 0 then Return 0
- hLib = Dylibload("Ntdll.dll")
- dim pRtlDecompressBuffer as Function _
- (Byval CompressionFormat as UShort, _
- Byval UncompressedBuffer as Ubyte ptr, _
- Byval UncompressedBufferSize as ULong, _
- Byval CompressedBuffer as UByte Ptr, _
- Byval CompressedBufferSize as ULong, _
- Byval FinalUncompressedSize as ULong ptr) as Ulong
- pRtlDecompressBuffer = Dylibsymbol(hLib, "RtlDecompressBuffer") 'https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/ntifs/nf-ntifs-rtldecompressbuffer
- static as UByte aDecompress()
- Redim aDecompress(0 to 9728)
- Dim as ULong iUSize
- Dim as Ulong iReturn = pRtlDecompressBuffer( COMPRESSION_FORMAT_LZNT1, _
- @aDecompress(0), _
- 9728, _
- @aDecodeB64(0), _
- iSize, _
- @iUSize)
- Dylibfree(hLib)
- If iReturn <> 0 then Return 0
- Return @aDecompress(0)
- End Function
- __ufmoddll:
- Data "WL0ATVqQAAMAAACCBAAw//8AALgAOC0BAEAEOBkAyAAMDh8Aug4AtAnNIbgAAUzNIVRoaXMAIHByb2dyYW0AIGNhbm5vdCAAYmUgcnVuIGkAbiBET1MgbW+AZGUuDQ0KJASGAFlY9N8dOZqMQQUDfyaJjBgCC5sUjAgEExwAAzr/4IUEB+ICB1JpY2gBGwEFi1BFAABMAQQgANsykkoFE+AAAAIhCwEIAAAaSQAMLAECEw0TAAQQ1QADMAIOEAILAoN/AQD5hQMAgIAXBAYADwMagRWDhgMDA3AyAAAVABUKXIAnPBmWcAEAnBcDQSsAgCtcGA8udGXkeHSAAyMZBEiBdQZiAQMAIAAAYC5yZMBhdGEAAIUB9oF9TYERHosTwHxALoMJABxuIgArFIGABcAucoBlbG9jAACQAUfrwDbCEyLOCUJwPD8APwAvPwA/AD8AIAABoFtErAlAR7ECQDgQAAYRqAAQ16BiBegAMGAACnhgAPZgAItEJAQAuSRAABAPt8AAg2EEAGY7QRwAGdIh0IkBwgQBgAmCAKQAzwAEAAFIAZ0BBwKOAAI3AwwEGQVqAAYUCCsKzQwdABBJFIoZJyB6ACj1MidAw1CtAGUAgFpYg/gZAHYDahlYZouEBABNQA6jhGEAEAD/4rAB6wIxwASicYABw2oI6wIAagxZurhhARAAiwIByosEwsMEobyAAcNQagn/CDVcQQAGFRAwAAAQhcB1A1pbySDDV1aXvuBYEK0AidEDFjnCfAMAKwaRhcl+D60AAwaJVvyKEIgAF0BHSXX3Xl8IuEBioAhqClaNAHXsg2YEAP82iP8VLAAJUP82QAAI/xU0YAGJBv8VAjDhAEYIw2oAaAKAwCZqA2oAagFCaOGEVv8VIIADahD/agG6QQ6JQwgAj0IIjwLDMdIEoWwAE1JUVldQgFJSUVD/FSjgBAj/FSSgAMNTVlcAVZeF0n8FXV8gXlvDvXgAB4t1gAArdQR4HrkB"
- Data "doAp8X4VgcZw4AcAKcp5AgHRAU2AAPOkhdJ+0AAaAE0AgeEA4P//ACtNAH4UKcqJIM5Si0UAAASR6ACJ////AfdaiwhNAFdDBFKJTQRKvuEJv0EJ6GngA1oAX+uH/3MI/xUKBOAQugEPdAIDAgCFwHgHO0L8d0ACiQLD6AfgeVgIWo8FwRlZhdJQJHTswRW7ZEAIvYgBYAIxwIlF8PbBCAG+GMA1dQv2wQACjXYMdQONdgDs9sEID5VF6ACA4RCITemJ7wClpaWJ1jlF/AB1BmbHRfwAgApQAgBowa5q/1P/FBVAAiIUAjeJQ/iAdA6JdfToHSC2AJf/VQiF/w+EkoEgLL6YAD3HRgCMAAEAg04U/2oMCMcGmKAQj0YQaoAgVv8z/xVEAAgQMf/oGcAWOXsEoHX2iXsIJANQY0IAPVVXV2iTEwBAEFdX/xUIxA38UHQmag+gMgzgAZOLwjCAWwigBQXoBsAOQDHAQMIMAAEfvQZgAB9ALIXAdBKJ8EUMUFWABmCoIBdBKAAx24ldAIt9BASJXSAWdB+JXQSwV2ogaGEWgQ1I4gSKTKIAVKAAi0X8wAhQF4ld/IAIGCEPuUojgA2/IVvzq6IQVQhWvVAADmoEj0UAAGoMVf91FP8EFTxBB3UEwe4MAIPmD2oF/xUcAQACg30cAHQFXgJdIG85dRh0zoBCPYFlAHUPuKEJ/gAAgDgQfAPGAMgAaLQgH7kAwCqhGUEiQTHAV1e+wXjzCKs4BVEDlQ+F4gVwCL1xXIte5IXbCA+FiPAAOV7siwBO3HViS4sWiwBGBIkehdKJXgAEfAOJVvSFwAFgAEb46F4KAAAAg34E/3VDi0YA+EBmOwN8MIsAVvQPt04cQjEAwDnKfCA4BXAFMSYOUhRbj0UM6QDK/v//D7dWHgA5yhnJIcqJFgCJRgTrBej/DgGQB0bwi14Y/0YA7ANG/DlG7HwACINm/ACDZuwAAInvOftzAokA31op/Y0E+lAE"
- Data "6DmgHo0Ev5nBEOACuXIgbffxAQIF8UAp+4XtD4UCPmAuiV7kixVoISAHjRTVxGFDTvgAC07yiQpYXjGC25AKweAMjbhRJAFyEZCQrVeZicdAVjHQvsA/wDfQADHS9/aB+uAfAAAAXoPY/z0AATA/GdL30gnQwaD/HyX/fwAHJVFKIMHoD9HJ4E/CARjV0cEBApAA0zH4ACn4X0lmq3WrgqHxB0CD+BB8kEwCo8EAwe0KweMGgGaJ64kcxcBQCQECHwAMGSUxPEcAUVpianB1en0Afn9+fXp1cGoAYlpRRzwxJRkADAACAwUGCAkACwwOEBETFBYAFxgaGx0eICEAIiQlJicpKisALC0uLzAxMjMANDU2Nzg4OToAOzs8PD09Pj4gPj8/P0ABAKuqQKo9AABWQXAAOgAArAJGi04QUwBVVotxLIX2DwSEGwB8UlKLWRQAV4B5PgCLVgQAi0EwdREDVggAKdp3BIsWKdog99r32BFQAAHaCA+I62AXi2kYDwCs0AWLWRzB6gAFD6zdBXUMvQCL2wEAx0EYYABxOwD39THt90DaEegPhDvAArsB4UI5+A+XQ+pzAAGXD7dBPItRAAyLaRDB5RAJAtVAOHvwdAU7aQAgdDCJaSDB4gAHZjHtK1E0MQDAwfoHiVEkdAACsIDB7QkraYA4wf0HiWko8QAAhcBmiUE8dAYAOcd2AonHi0EAJIkDi0EoiUMQBIl77EAMjVxeBBRWggx0JAiLUQIcwAp0CPfd99IAg9r/kFdSD78AOw+/QwKLUTAAKfjR6vfqwecABg+kwgcB+pIgicf3aThwDQbRAMKD4gEB0NH4QAEGl/dpNCgBiww9jMAMgAFGBIsVAXENAXk4AVE0WgAxwAFpMF8R0ACDxghPjRxDdUCYi3wkIInwBykA98HvA16NRhQAKcPR64lZFA8At1E8hdJ0JqEBcVWZZilBPHUaDCsFEVjADvfYiVEAKBnShdcPhXNB8DEx0jgV"
- Data "cpABdQB7D7ZGEkh1HQHgN4tuCAHoOcMAdgUpw5P39SkI1SnrIifT60xIAPfYg9L/IVEwACFRFCFRLHRGIDhBPnQYIAP33QBIg+0B/kk+GQDYi14EAcM7RggIfBtwAQNGCI2AUP8Z2Pfdk/ABQBHT/kE+O4A9zSCJaTCF/6EKhe4A/f//X1hag8EAQF47ThQPjMxB8ABdW8O6hFBBVwApwlaFwFIPvgBBDYnXdAOZ0QDiQtsEJNgN5AAVABDZwNn83ADp2cnZ8Nno3gDB2f3d2dgN6AFwAdscJIX2WXQACSnXVzH2ic8A684p+YXSeQIA99n36YPifwEA0MH4B14B+F8Aww+2TnGKRnoAicoCVnKD4j8Ag+ADiFZxdBoAwcEbGdKD8n8Ag8oBSHUhweoAGMHJFwHK99oA6xWJyIPhH8FA6AYPtpGEcAYZAMAxwinCD75GgnPgHfgFw+irwEAA0fiJRhKADgGAw1aDxgPomRABAF6JRg6ADgLDAUABi0YGi05aDwC2VnDB4gIpyAB/BgHQfwjrBAAp0HwCAcGJTgAGw1dTVYnljQS50EFh24tXNYkAVeSKTzkPtlcAMQgGPAKNRj0AdRaDw/SLRzIUiUWAATiAATCNRgA8g8fQODB1agBRUI1MHiqNRCgeLlBAAE5BAEqNAFweJlCLATnQEFMPjYtQBQ+3BACHOQN1efZF/AAEdBQPtkXmOYgBdQxwAOWJAbEBATAuAYlF3I0EhwBKD7cYORGLeAAED7dAAol94ACLVfCJAnUHiwBF+P4A60/B4IAQKceXZjHAgAQAAnQOD7ZV5DkAVdx1BThGOnQAMv8Bi03siTkEi33AWU3ggycAACnZdBGZ9/mJAAfrCotF9IsIAItF7AEIWlhZAIsA/wLB+BCJAAHJW1/Dg+oQQHIIg/pAdzBfCgCJ0IPiD8HoBACD6AV0LEh0KwBIdCZIdCWD6AgCdiSiACpIdCmASHURwOIEdFAbAHCAJveL"
- Data "RlKJCEZaw9BDVgrDiABUBnPDweIEiQhWFpIRARaADgQBABgCZotWdzjyAHYIi04K99mJIE4OAnZ54AACsgD/QohWd8OFySC4qq4BAGAm9/HEozwga8P/VWDqgAAgVYnGulBARv9VAASJ5THJi0Y8AFGNQDzoKPf/AP+DxIxTahSNCFYRv/GdWYoCQgA8IHwBqkl19QSRq7BpQA+3XkYQ99uJ97Bb0ffbAEkPttKJXfQ5ENEPh4zAZIpWUAA5wnYBkkZJeQD0iUX4QIn+ORDYcwGTkClIackCEAAHZolGRo08IMGJ+CnPQAFEgwD5QH4CMcmJTgAwicvB4wcPhAJHQASJTfCNBFgA6Fz1//+NFBiAiUY0iVY4u6GjAMZAHAGJQgQBANgB2v9N8HXwEIkWAdcgCU6JfmAEidfoDrAp0ABMAGpAj0YMiU4UAZAZagmNRbxa/wIV0UeLRcGLTjAh0FwBAIkHILgPgjKaIAU9AUAJUbgPhBLM4Fz34eCZjQSACOjf9HBwRwSTVgSLNcEDMdKNRewIQv/WcCHs9sKABHRBYE2jvQB0BInY/9b2RQDsAnQIMdKNQ1QBQgJoBANoAgNoCEUDNAMDNBB0FQE0BABC6wuF0nQCiAITAGqyBP/WXkMAilZIOBN2A8YAAwCDwwT/TfAAdYb/RfyLRfQAg8cIO0X8D4cAMv///4tN+DkAwXIrix6LRjAAVo00y408gMEA5wb/TfiJ+MYABkDoLPT//4kgRgSD7ggANzlFAPhz5V4xwIlGAAiJRhCNfiCrAKurikZIhMAPQITjAQAAiABcXgAEaiGNRYha/wAVjGEAEIt1iACKVaOD7iGE0gB0JTHAg32lKQAZyffRCcqA+hAQD4ewADO60ACAAACNQ0Ap1gMxQDHJlkHo9gA6jQSTDgAPMcBmiwoA0eGAevICZokACnMDiEL6gHoE8wIBBPs4RaMPBIRcABKJRfiJXYD0jUXIi1WlhTsAzIt90IpF"
- Data "1okAwcHoBCQBiEUA1nQH0W3I0e4A0e+LRcg58H8AAonGjRQ+KcIAeAIp14PhA3QABIX/dQYx9jEAyYnHiXXMiX0A0IhN2o1EABoI6CvzgZH0iQH/AEX4g0X0BGoFAJeLRfhZOkWjAI11yPOlcoiJAE34izSLMcCLABaKbhGKTg73AMIAAMD/D4XSAQBsg8YUgP2tdQBPQon30fpTUgCNFFIB141QEIkAVYnDg1RaifgDBACJ8jHJOfp9IQCKB4jEJA/XwADsBEcAxYjg1wAA6MHgGAnBiQAKwekQg8IE6wDbW+s40+KJ8AEEOk7sjTwxjQQADzHSOFb6dQ4ASE9Iijc5+GYAiRB39DHSifAIZgMQwAJJjUACAH/0eCSLRvSLAE7wAciAfv4CAI0ERnUGZotICP7rCoADAXUHZsCLDE5miQiAOYCEQDpNow+CJYCHgQTDEEBY/k38D4UAI/7//0BbycMBQBFVD7ZcMCyJAOWLRviNHNmLgE4MiG329+GAjhCLUwRWAKHaAdcAg+wYweEHdNAAVot2FFNGRgEA8VGKXwSKRwMAg+MPPAN0AjwABQ+URfSKTwEAdBL+yXgDiE6AAYoPSYD5YEB2AE7+D7ZOAYtFCPxpycEeA0jgDwC2Rv6ZikQIQAA8EIlN5HMDiwAUgYXSdQW6WABiARCJVfiLTgAGi0YKiU3oiwBOFolF7IlN8AHAGTwHdAyAfmcAB3UGi04OAU4QCohGZwB3Tg6JIE4SxgYDBBtEDyC+QhABwcAaiE6AZvZAJgF0GgB3AA++QA2ZweEGACnQ0fiNhAEAAOL///fY6wmREcBF6Iz4wcNSgH0A9AB1A4lGBoAADgiAfwEAdEQBwA1XagkPtkgMAIlOClkPtkAPAIlGFmpAMcCPAEZCaiCNfhqPAEZOx0ZGAAABAADzq4pOel+AAPlPfQOIRnT2CMEMdcABcYAOBgAPtlcC6Br6/wD/gD9hcwaAfwADFHUD/kY6iyBN"
- Data "5PaBCEAhAXRgCbAC6P1AEIE2OoAAdASDZkIAwgOCCcIDB7AE6N7AA4OBA8ACdBAPt4HBaBApRkZ5YAVGAA8QtkcDSMAMBDwgAHcJhdL/FIWTACAAEP915P91EPjoqwYgVu6AWQCDxwU5zg+MSwHgPVteycMXIQCqEGEAHWAAM2AAJGAACkRgAE5gAHUmABAqXuAAiGAAjmAAfiMIABCm4ACrIgAQqsPgAJXgA9bgAJKgDLVlAN/sAWBgBeEAaeQAFnXkAGUAheABdAOIiFZow6EAcOsFwQAEbIuAMCb2iUZaEMPB6gQhAnKF2yHAAF5zMcDiA+mTKPf//0QDdUMDdsMAweIIdAOJVlYBIDmLUQQDUQiLAEZWOdCLTgJyAAsxwIAm94lBgBSJQTCJQQhCDQRswwBDg2AEAIkAEP5F9g+3SByAOQh8A4MgAEEOQI0Uko0MUwAEiQBIBIB99gB16gCLSPRBiQjr14CA+iCJ0XMHQgMQ8MPpzOAxdAaLQE38iFEhw+U4M4iNmaTggw+2ieBBAaGcOxN2CznIdAAHQGY7FIN39QCJRh5JOcgPnQBGPHwJD7dEiwD+iUZCw4lWGgCLTIP8icoPtwDJiU3siwyDiQLIQAFmMdIrTewAUnQJZjHAKdAAmff5kYlOIosARhorRez36VoAAdCJRj7B6BABAAj/Rh7DdAaIAFZtgA4Ew3QJgYAYiN5miVZuaAGIeOn8wyZKdQ6DJkJrgG9rKUYGBgJqIQACagFGBoEgSoAA+g139oXb/yRUlb2gNPVgAAUgQKpV4AAV4AAdYAAkYABIVWAAU+QCXeAAX2QBbC3gAIJgAMEKfMAKfMFM4AJADYEvXn3gAX0D4AEhDYBmevAIXgJ6wDH4iFgNw3UCCmAri0D4iUZiAMOKTl7+yXkCAInZiE5edAmLREZiAC2JQQRBBg8YweMEoQbAAIleFgVhHvcCGHsPvkZ7CClGCsAJ6ItV7BGAeItF8IB1xgYA"
- Data "DIlWoAJgna9Z8Ik0WfwinYoAncCc92YADItU2QSNBICAhdKJ5Q+E/qA3AAHQVlCLRgzBDOAHgZxgnPBQD7aAfgGLVfxp/yGX0cGWA3rgIJc4IJfBlgKHxpYx21dSiV4ADoleEoge9ocBhnuJ+ege9f//RPaH8zwJsAQQAQwBEAE4Xjp0Eg+3AofVPAOJXkaADiIC0Uq2QAJiboDhAA8sBnQsSHQrACwEdBtISHQPAEh0Ckh1I+iogeB06xz32SlOURCA6xKITnPodTEBWAj32ZBRYQRVYARaCASJ2dBZD7ZCA4DA6QQ8HXcH4EGArCQAEOiSAoJBAFiDRfgFOcYPDIwVgGGAQWwlABAKZTAASTAAABkAEKDhGAAQK7AAJDAA2u+wAKuwAzEAMvAAtQBtMQCcQEG1AHy4AD8AAJQQUvQBujQEgRrwCEK4MHnrB+jQYAAxAMmKTmyJyIPgiA/B6bA+kffYkB0hEA3DikZocGGNDACBg/kBfQNqAQBZiU4Gg2YSABiADgGxAQBd4DhqCAR2SKIk7GoDmQBf9/9KdAVKddgzidkwAcJgCEBg8GIE6yCQHGaJxwHIAItMJAToifL/FP+XkgB/kAApx4kEfhJCBU5vhcl0DivzBFA4oB4eik5uqIPhDzBiSQBqeIAAIAL/FI0WIA2JRgAKSEjDg+gIg0ToBCAAw9HgEAhZAPf5w40EQNH4AMNAQMODwAiDTMAEIACwAcPr0A/qVTAA8zAA8DAA7TAA91UwAAOgBBUwAAcwAAZVMAAPMAAMMAAJMAAARTAAEzAAik5t8hGLBFYWIBJ1CCnCeQAPicrrCwHRmRD+yjnRkJDKiVYD4jGQL4tR6IpBIbCo8HUHEAMwEgNwJQQBwjE1UejDgPkACXR1gOkMdGAQ/sl1W0ABMcA5AFnsdU+LVCQEAaRtD7ZSDI1ICRFwNItWQkBvOdEZgNKD4kCJVkJCbzM9b0FcDgsSOAAoUAJk6R0gHYgGkQiR"
- Data "BQdIg2YKABsCw5BHEBWFFfuAFQNQA8OJ8wBWV4t0JBAxwBAPtpYKcDGNezYASnglsIB0FkoAdA2ygCsXD7YC0jF86zeLFynCAOvxOQcZ0iHCQI1CwOsmiyAQgwDhf4P5QYPQ/xAxwSWB4TzBweoACA+2gaQVABBAGdIx0CnQcAUMJXE8r5AAhguQAIXAAHQMV5eLQzL3AOr3/5KXX8H6AAYBUxKLUzJCoDnCfgGSUAINEYsAB4lTMvbcgAsCAUAA3ACJB4tzAAL2Awh0RIN+ACwAdCeJ8SsNADRAABDB6QcZAP+D54CNfD5AAFdqC4l7AlnzAKWJTtSJTuCJAE7kXo1+LItESCQMq5ClVgiAtqsBUbdWFDHJ/sn2AAMCdEaLQwoDAEMOicLB4AgpEND3LQwQBffSIQDQPQDwDwB+BQK4YQD3Y0L3Y0YAweoDi0YEiRYEiddQC/mJRgyJQMgrRgT377EAEID2AwR0Q7+A4A9Ai0MWKfiZYQ8pAMeLQ07B/wWDAOgg9+8DQxaZAXEFiz45yInKlyRzBoID+pJAwYlWIAz20PcudAQBdABhi0sGMdIDSwASjUIofkX2BQJKIAkBdQu4kHcA2gD38THS6zEAuAASAAArQwYAA0MSUNsEJNgEDeywFtnA2fzcAOnZydnw2ejeAMHZ/d3Z2A3wAXAB2xwkWLtErIAAAPfziUYcQQDgGF9ewgigCg8ADwD/DwAPAA8ADwAPAA8ADwAPAAcPAA8AAAD0MAAAClAxAAAYMAAoMAA8VTAASDAAVjAAZDAAbFUwAHowAIYwAJgwAKitMAC4MAABAOhwAP4wAKAMMgAAJDAANDAAak4wANj0AZiwBQUAyqsxAfAA1DgBXrACPPgAP38Jfwl/CX8Jfwl7Cc4CAFdhaXRGb3JTAGluZ2xlT2JqAGVjdAAbAENsAG9zZUhhbmRsAGUASgBDcmVhEHRlVGhgAGQAACCHAlNldMMAUHIAaW9yaXR5AJkA"
- Data "AUhlYXBBbGwwb2MAm7IAMwMAAAKd0gBEZXN0cm8AeQCWAlNsZWUIcAA0NAVGaWxlYEEAGAJSwASxAAAMAGrRBaEAUG9pbgB0ZXIAAKMARgBpbmRSZXNvdQRyY9ACxwFMb2EB9gAAAJUCU2l6CGVvZhcBS0VSTgBFTDMyLmRsbAAAAKwAd2F2ZYhPdXRCDQAAtfUAAEdldFBvc2l0CGlvbhATAAKzAHdhdmVPdXRPQHBlbgC6AATQUAByZXBhcmVIZYBhZGVyAAC7BVwAUmVzZXQAAMBRBTxVbnALpMEFMlcAcml0ZQAAV0kATk1NLmRsbAAhCQDbMpJKAQ7yMqgAAAEABwkEA5gADwq8AAPgAAOqEAAACqYAA7oAAwARAAAKMAAHmgADFBIAACqeAAeBAAP8ACcOM6gAAB0AAysAAzoAA6pNAANZAANoAAN1AAMBAWECAAMABAAFAAAGAAcACAB1EGZtb2QCk3VGTQBPRF9HZXRSbxh3T3IBYIYIU3RhhHRzBwdUaW1liQYEdGwFB0p1bXAygFBhdHRlcm4ECRBQYXVzBQ9QbGFgeVNvbmcEBwCgdYGGJFNldFZvbIEHC3kAwFHEgQEwFDAYADAcMCAwJDAoADAsMDUwjzCUADChMK4wuzDFADDLMNswATEUADEgMSgxRTFOADFeMW0xczGHADGeMekx+zEAADIdMiwyMTI+ADJ1Mn4yhDKkADK3MsUy3zLrADLzMgMzJTM4ADM+M1gzYDNmADNsM30ziDOWADOnM7gzzjPWADPlM/Mz/DMEADRkNGs0yzTeADTlNP00OjVeADVrNXs1YDYtADc4N3U3gjecADdNOGU4zTivADq4OuE6qzvoADvKPPw8Qj3sAD31PSs+LT8AECAAANjAMHEwkwAwlzCbMJ8wowAwpzCrMK8wswQwt8AvvzDDMMdBwDDPMNMw10Ay3wAw4zDnMOsw7wAw8zD3MPsw/wAwAzEHMQsxDwAxEzG5Mr0y"
- Data "wQFAL8kyzTLRMtUAMtky3TLhMuUAMuky7TLxMuQAM5A0rDSwNLQANLg0vDTANMQANMg0zDTQNNQANNg03DTgNOQANOg07DTwNPQANPg0/DQANQQANQg1DDUQNRQANRg1HDUgNeMANRY2GjYeNiIANiY2KjYuNjIANjY2OjY+NkIANkY2SjZONoMAN+c3OTjMOO/4OAc5v3Y/AB8AHwAfAP8fAB8AHwAfAB8AHwAfAB8ADx8AHwAfAAMA"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement