Source code for 8 Ball Trainer : VC Bro – 8 Ball ver. 3.3.35_278 Long Line Trainer. Release 11 August 2016

Hi hackers and cheaters,

Since someone named “dsdad” ask for source code for mentioned trainer as post title said (link : https://vclbrofunworld.wordpress.com/2016/08/12/vc-bro-8-ball-ver-3-3-35_278-long-line-trainer-release-11-august-2016/), so here is source code and trainer made using Cheat Engine 6.4 (not try run it on CE 6.6, 6.7 and 6.8 yet).

Code inside the trainer

—— Avoid Lua Engine Pop-up
getLuaEngine().cbShowOnPrint.Checked=false
getLuaEngine().hide()

—— Leecher Check
cecheck_list = createStringlist()
function cecheck()
getProcesslist(cecheck_list)
local count = 0
for i=0,cecheck_list.count-1 do
if cecheck_list[i]:find(“cheatengine”) then
count = count + 1
end
end
if count > 1 then
closeCE()
end
cecheck_list.clear()
end
cecheck_t=createTimer(nil)
timer_onTimer(cecheck_t, cecheck)
timer_setInterval(cecheck_t, 200)
timer_setEnabled(cecheck_t, true)

t=createTimer(nil)
t.Interval=1000
t.OnTimer=function(t)
if getProcessIDFromProcessName(“cheatengine-386.exe”) ~= nil or getProcessIDFromProcessName(“HxD.exe”) ~= nil then
showMessage(“Ooops… Something wrong. Dont try leech codes inside”)
closeCE()
end
end
t.Enabled=true

w=createTimer(nil)
w.Interval=1000
w.OnTimer=function(w)
if getProcessIDFromProcessName(“ProcessHacker.exe”) ~= nil or getProcessIDFromProcessName(“HxD.exe”) ~= nil then
showMessage(“Ooops… Something wrong. Dont try leech codes inside”)
closeCE()
end
end
w.Enabled=true

—– Music Play
function loadTableCode(n)
local t = findTableFile(n)
if t ~= nil then
local s = t.Stream
local c = readStringLocal(s.Memory,s.Size)
return c ~= nil and loadstring(c) — return a function
end
end

local f = loadTableCode(‘vcmusic.lua’)
print(type(f))
if type(f) == ‘function’ then f() else print(‘not loaded’) end

—- Call Code
function loadTableCode(n2)
local t2 = findTableFile(n2)
if t2 ~= nil then
local s2 = t2.Stream
local c2 = readStringLocal(s2.Memory,s2.Size)
return c2 ~= nil and loadstring(c2) — return a function
end
end

local f2 = loadTableCode(‘observ1.lua’)
print(type(f2))
if type(f2) == ‘function’ then f2() else print(‘not loaded’) end

—- Run the function
obivius()
a = tostring(vation)

— Defining a string to use as function later
funcStr = a
func = loadstring(funcStr)
func()

The trainer contains some file (lua source codes) which need add to TABLE file. These lua source codes will trigger by code above.

File #1 : vcmusic.lua (use to play some mp3 music files inside the trainer)

vcmusic.lua  (you can copy codes below and paste to notepad and save as vcmusic.lua)

— Music MP3 Function
— fix CE6.4 MemoryStream write, and add other useful methods
if oldcreateMemoryStream==nil then oldcreateMemoryStream = createMemoryStream end
function createMemoryStream()
local obj = oldcreateMemoryStream()
local oldwrite=obj.write
obj.write = function (t,n) — override default write
local count=0
for _,v in ipairs(t) do
if count==n then break end
oldwrite({v},1)
count=count+1
end
end
obj.writeDword = function (v) obj.write(dwordToByteTable(v)) end
obj.writeWord = function (v) obj.write(wordToByteTable(v)) end
return obj
end
–convertMP3ToRIFFMP3(stream)
function convertMP3ToRIFFMP3(stream)
local riffmp3 = createMemoryStream()
local header = {
0x46464952,0x00000000,0x45564157,0x20746D66,0x0000001E,0x00020055,
0x0000AC44,0x00000000,0x00000001,0x0001000C,0x00000002,0x00010001,
0x61660571,0x00047463,0x2FF80000,0x61640014
} — default is 44100Hz , Stereo
local rateTable = {[0] = {11025,12000,8000}, –mpeg ver2.5
[2] = {22050,24000,16000}, –mpeg ver2
[3] = {44100,48000,32000}} –mpeg ver1
local bitrateTable = {[1]={32,64,96,128,160,192,224,256,288,320,352,384,416,448},
[2]={32,48,56, 64, 80, 96,112,128,160,192,224,256,320,384},
[3]={32,40,48, 56, 64, 80, 96,112,128,160,192,224,256,320},
[4]={32,48,56, 64, 80, 96,112,128,144,160,176,192,224,256},
[5]={ 8,16,24, 32, 40, 48, 56, 64, 80, 96,112,128,144,160}}
for i,v in ipairs(header) do riffmp3.writeDword(v) end
riffmp3.writeWord(0x6174)
riffmp3.writeDword(stream.Size)
stream.Position = 0
riffmp3.copyFrom(stream,stream.Size)
riffmp3.Position = 0x4; riffmp3.writeDword(stream.Size+0x24)
stream.Position = 0
local chunk = stream.read( math.min(65536,stream.Size) )
local DWORD = byteTableToDword( {chunk[4],chunk[3],chunk[2],chunk[1]} )
–[[ looking for MPEG Audio frame header
bits 31 through 21 must all be set; Frame sync
bit 18 and bit 17, at least one set; Layer
bits 15 through 12, at least one clear; bitrate index
bits 11 through 10, at least one clear; sample rate index
also use above to find a header
bit 20 and 19; MPEG audio id
bit 7 and 6; channel mode
]]
local i=0x1
while (i<=#chunk-4) do
if (bAnd(DWORD,0xFFE00000)==0xFFE00000) and
(bAnd(DWORD,0x60000)~=0) and
(bAnd(DWORD,0xF000)~=0xF000) and
(bAnd(DWORD,0xC00)~=0xC00)
then
–probably MPEG Audio Layer I/II/III frame header
local channels =(bAnd(bShr(DWORD, 6), 3) == 3) and 1 or 2
local layer = 3 – bAnd(bShr(DWORD,17), 3) + 1;
local mpegaudioid = bAnd(bShr(DWORD,19), 3)
local rateindex = bAnd(bShr(DWORD,10), 3)
local bitrateindex= bAnd(bShr(DWORD,12),15)
local samplerate = rateTable[mpegaudioid][rateindex+1]
local row
if mpegaudioid==3 then row=layer — mpeg ver1
elseif layer==1 then row=4 — mpeg ver2 and ver2.5, Layer 1
else row=5 — mpeg ver2 and ver2.5, Layer 2 and 3
end
local bitrate = bitrateTable[row][bitrateindex]
riffmp3.Position = 0x16;
riffmp3.writeWord(channels)
riffmp3.writeDword(samplerate)
riffmp3.writeDword(math.floor(bitrate*1000/8))
break
end
if (bAnd(DWORD,0xFFFFFF00)==0x49443300) and
(bAnd(DWORD,0xFF)<0xFF)
–ID3 tag found
then
local size = bOr(bShl(chunk[i+6],7),chunk[i+7])
size = bOr(bShl(size,7),chunk[i+8])
size = bOr(bShl(size,7),chunk[i+9])
i=i+size
end
DWORD = bOr( bShl(DWORD,8) , chunk[i+4] ) % 0x100000000
i=i+1
end
chunk = nil
riffmp3.Position = riffmp3.Size – 1
return riffmp3
end
—-
function sound_prepare(track)
if track==nil then return nil end
if knownStreams==nil then knownStreams = {} end
local stream,streamID
— set stream variable
if type(track)==’string’ then
if knownStreams[track]~=nil then return track end — check name as StreamID
if findTableFile(track) then stream=findTableFile(track).Stream else return nil end
elseif track.ClassName==’TMemoryStream’ then
stream=track else stream=track.Stream
end
streamID=userDataToInteger(stream)
if knownStreams[streamID]~=nil then return streamID end
stream.Position = 0
if table.concat(stream.read(4),’-‘)==’82-73-70-70’ then
— RIFF format (wave file, etc.)
knownStreams[streamID]=stream
else
— probably mp3 file, converting
— convertMP3ToRIFFMP3(stream)
local riffmp3 = convertMP3ToRIFFMP3(stream)
knownStreams[streamID]=riffmp3
end
— if string, use it as streamID too
if type(track)==’string’ then knownStreams[track]=knownStreams[streamID] end
return streamID
end
if oldplaySound==nil then oldplaySound=playSound end

function playSound(track, …)
local ID=sound_prepare(track)
if ID then oldplaySound(knownStreams[ID], …)
else print(‘track not found’) end
end

File #2 : observ1.lua (encode source code, contain 8 ball AOB code, etc)

function obivius()
——————————————————————————–
— util functions
——————————————————————————–

local function divide_string( str, max, fillChar )
fillChar = fillChar or “”
local result = {}

local start = 1
for i = 1, #str do
if i % max == 0 then
table.insert( result, str:sub( start, i ) )
start = i + 1
elseif i == #str then
table.insert( result, str:sub( start, i ) )
end
end

return result
end

local function number_to_bit( num, length )
local bits = {}

while num > 0 do
local rest = math.floor( math.fmod( num, 2 ) )
table.insert( bits, rest )
num = ( num – rest ) / 2
end

while #bits < length do
table.insert( bits, “0” )
end

return string.reverse( table.concat( bits ) )
end

local function ignore_set( str, set )
if set then
str = str:gsub( “[“..set..”]”, “” )
end
return str
end

local function pure_from_bit( str )
return ( str:gsub( ‘……..’, function ( cc )
return string.char( tonumber( cc, 2 ) )
end ) )
end

——————————————————————————–

local basexx = {}

——————————————————————————–
— base2(bitfield) decode and encode function
——————————————————————————–

local bitMap = { o = “0”, i = “1”, l = “1” }

function basexx.from_bit( str, ignore )
str = ignore_set( str, ignore )
str = string.lower( str )
str = str:gsub( ‘[ilo]’, function( c ) return bitMap[ c ] end )
local wrong = str:match( “[^01]” )
if wrong then return nil, wrong end

return pure_from_bit( str )
end

function basexx.to_bit( str )
return ( str:gsub( ‘.’, function ( c )
local byte = string.byte( c )
local bits = {}
for i = 1,8 do
table.insert( bits, byte % 2 )
byte = math.floor( byte / 2 )
end
return table.concat( bits ):reverse()
end ) )
end

——————————————————————————–
— base16(hex) decode and encode function
——————————————————————————–

function basexx.from_hex( str, ignore )
str = ignore_set( str, ignore )
local wrong = str:match( “[^%x]” )
if wrong then return nil, wrong end

return ( str:gsub( ‘..’, function ( cc )
return string.char( tonumber( cc, 16 ) )
end ) )
end

function basexx.to_hex( str )
return ( str:gsub( ‘.’, function ( c )
return string.format(‘%02X’, string.byte( c ) )
end ) )
end

——————————————————————————–
— generic function to decode and encode base32/base64
——————————————————————————–

local function from_basexx( str, alphabet, bits )
local result = {}
for i = 1, #str do
local c = string.sub( str, i, i )
if c ~= ‘=’ then
local index = string.find( alphabet, c, 1, true )
if not index then
return nil, c
end
table.insert( result, number_to_bit( index – 1, bits ) )
end
end

local value = table.concat( result )
local pad = #value % 8
return pure_from_bit( string.sub( value, 1, #value – pad ) )
end

local function to_basexx( str, alphabet, bits, pad )
local bitString = basexx.to_bit( str )

local chunks = divide_string( bitString, bits )
local result = {}
for key,value in ipairs( chunks ) do
if ( #value < bits ) then
value = value .. string.rep( ‘0’, bits – #value )
end
local pos = tonumber( value, 2 ) + 1
table.insert( result, alphabet:sub( pos, pos ) )
end

table.insert( result, pad )
return table.concat( result )
end

——————————————————————————–
— rfc 3548: http://www.rfc-editor.org/rfc/rfc3548.txt
——————————————————————————–

local base32Alphabet = “ABCDEFGHIJKLMNOPQRSTUVWXYZ234567”
local base32PadMap = { “”, “======”, “====”, “===”, “=” }

function basexx.from_base32( str, ignore )
str = ignore_set( str, ignore )
return from_basexx( string.upper( str ), base32Alphabet, 5 )
end

function basexx.to_base32( str )
return to_basexx( str, base32Alphabet, 5, base32PadMap[ #str % 5 + 1 ] )
end

——————————————————————————–
— crockford: http://www.crockford.com/wrmg/base32.html
——————————————————————————–

local crockfordAlphabet = “0123456789ABCDEFGHJKMNPQRSTVWXYZ”
local crockfordMap = { O = “0”, I = “1”, L = “1” }

function basexx.from_crockford( str, ignore )
str = ignore_set( str, ignore )
str = string.upper( str )
str = str:gsub( ‘[ILOU]’, function( c ) return crockfordMap[ c ] end )
return from_basexx( str, crockfordAlphabet, 5 )
end

function basexx.to_crockford( str )
return to_basexx( str, crockfordAlphabet, 5, “” )
end

——————————————————————————–
— base64 decode and encode function
——————————————————————————–

local base64Alphabet = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”..
“abcdefghijklmnopqrstuvwxyz”..
“0123456789+/”
local base64PadMap = { “”, “==”, “=” }

function basexx.from_base64( str, ignore )
str = ignore_set( str, ignore )
return from_basexx( str, base64Alphabet, 6 )
end

function basexx.to_base64( str )
return to_basexx( str, base64Alphabet, 6, base64PadMap[ #str % 3 + 1 ] )
end

——————————————————————————–
— URL safe base64 decode and encode function
——————————————————————————–

local url64Alphabet = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”..
“abcdefghijklmnopqrstuvwxyz”..
“0123456789-_”

function basexx.from_url64( str, ignore )
str = ignore_set( str, ignore )
return from_basexx( str, url64Alphabet, 6 )
end

function basexx.to_url64( str )
return to_basexx( str, url64Alphabet, 6, “” )
end

——————————————————————————–

——————————————————————————–

local z85Decoder = { 0x00, 0x44, 0x00, 0x54, 0x53, 0x52, 0x48, 0x00,
0x4B, 0x4C, 0x46, 0x41, 0x00, 0x3F, 0x3E, 0x45,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x40, 0x00, 0x49, 0x42, 0x4A, 0x47,
0x51, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A,
0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32,
0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,
0x3B, 0x3C, 0x3D, 0x4D, 0x00, 0x4E, 0x43, 0x00,
0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,
0x21, 0x22, 0x23, 0x4F, 0x00, 0x50, 0x00, 0x00 }

function basexx.from_z85( str, ignore )
str = ignore_set( str, ignore )
if ( #str % 5 ) ~= 0 then return nil, #str % 5 end

local result = {}

local value = 0
for i = 1, #str do
local index = string.byte( str, i ) – 31
if index < 1 or index >= #z85Decoder then return nil, index end
value = ( value * 85 ) + z85Decoder[ index ]
if ( i % 5 ) == 0 then
local divisor = 256 * 256 * 256
while divisor ~= 0 do
local b = math.floor( value / divisor ) % 256
table.insert( result, string.char( b ) )
divisor = math.floor( divisor / 256 )
end
value = 0
end
end

return table.concat( result )
end

local z85Encoder = “0123456789”..
“abcdefghijklmnopqrstuvwxyz”..
“ABCDEFGHIJKLMNOPQRSTUVWXYZ”..
“.-:+=^!/*?&<>()[]{}@%$#”

function basexx.to_z85( str )
if ( #str % 4 ) ~= 0 then return nil, #str, 4 end

local result = {}

local value = 0
for i = 1, #str do
local b = string.byte( str, i )
value = ( value * 256 ) + b
if ( i % 4 ) == 0 then
local divisor = 85 * 85 * 85 * 85
while divisor ~= 0 do
local index = ( math.floor( value / divisor ) % 85 ) + 1
table.insert( result, z85Encoder:sub( index, index ) )
divisor = math.floor( divisor / 85 )
end
value = 0
end
end

return table.concat( result )
end

obser = “FUWS2LJNFUQE25LDNFRSAUDMMF4WK4RAINXW45DSN5WAUZTVNZRXI2LPNYQEE5DOL5GXK43JMNPVG5DPOBBWY2LDNMUHGZLOMRSXEKIKOBWGC6KTN52W4ZBIE5ZWS3DFNZRWKLTNOAZSOKIKMVXGICRNFUFGM5LOMN2GS33OEBBHI3S7JV2XG2LDL5IGYYLZINWGSY3LFBZWK3TEMVZCSCTQNRQXSU3POVXGIKBHINXW63BONVYDGJZJBJSW4ZAKBIWS2LJNFUWSAU3FOR2GS3THEBBWY33DNMFGG33OORZG63C7ONSXIVTJONUWE3DFFBGXSRTPOJWS4STBNUWGMYLMONSSSCTUHVRXEZLBORSVI2LNMVZCQ3TJNQUQU5BOJFXHIZLSOZQWYPJRGAYDACTUFZHW4VDJNVSXEPLGOVXGG5DJN5XCQ5BJBIQGG33OORZG63C7ONSXIVTJONUWE3DFFBGXSRTPOJWS4STBNUWHI4TVMUUQUIDDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JOJJQW2LBAORXXG5DSNFXGOKDPOMXGIYLUMUUCOJLEFUSW2LJFLEQC6IBFJA5CKTJ2EVJSOKJJFEFGK3TEBJ2C4RLOMFRGYZLEHV2HE5LFBIFC2LJNFUWSAUTVNZXGS3THEBKGS5DMMUFHIZLYOQQD2IBCKZBSAQTSN4QEQYLDNNUW4ZZCBJ2F62LOMRSXQIB5EAYQUYZ5MNZGKYLUMVKGS3LFOIUG42LMFEFGGLSJNZ2GK4TWMFWD2NJQGAFGGLSPNZKGS3LFOI6WM5LOMN2GS33OFBRSSCRANFTCA5C7NFXGIZLYEA6D2IBDORSXQ5BAORUGK3QKEAQGG33OORZG63C7ONSXIVTJONUWE3DFFBGXSRTPOJWS4VDJORJHK3RMEB2HE5LFFEFCAIDDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JOKRUXIUTVNYWCA5DFPB2DU43VMIUDCLDUL5UW4ZDFPAUSSCRAEB2F62LOMRSXQIB5EB2F62LOMRSXQIBLEAYQUIDFNRZWKCRAEBRW63TUOJXWYX3TMV2FM2LTNFRGYZJIJV4UM33SNUXFI2LUKJ2W4LBAMZQWY43FFEFCAIDUL5UW4ZDFPAQD2IBRBIQGK3TEBJSW4ZAKMMXEK3TBMJWGKZB5ORZHKZIKBIFC2LJNEAQFGZLUEBHXAZLOEBAXI5DBMNUCAUDSN5RWK43TEAXSAQTVOR2G63RAJBQWG23TEBRHSICMOVQSATDPMFSCAU3UOJSWC3IKMZ2W4Y3UNFXW4IDQNFSEI2LBNRXWOKDEN5IGSZBJBIQCA3DPMNQWYIDQNR2WO3TBNVSSAPJAPMRGSZLYOBWG64TFEIWCEZTMMFZWQ4DMMF4WK4TQNR2WO2LOEIWCE4DMOVTWS3RNMNXW45DBNFXGK4RCFQRG64DFOJQSELBCMNUHE33NMURCYITBO5SXG33NNF2W2X3QOJXWGZLTOMRCYITUN5ZGG2BCFQRGI4TBM5XW4IRMEJWWC6DUNBXW4IRMEJYGC3DFNVXW63RCFQRHGYLGMFZGSIRAPUFCAIDMN5RWC3BAMZ2W4Y3UNFXW4IDUNVSXEZ3FFB2CY3ZMFYXC4KJAMZXXEIDLFR3CA2LOEBYGC2LSOMUG6KJAMRXSA5C3NNOT25RAMVXGIIDJMYQHGZLMMVRXIKBHEMTSYLROFYUT4MBAORUGK3RAOJSXI5LSNYQHI3LFOJTWKKDUFQXC4LRJEBSWY43FEBZGK5DVOJXCA5BAMVXGIIDFNZSAUIBANRXWGYLMEBTHK3TDORUW63RAMNQWY3CMMF2GK4RIMYWC4LROFEFCAIBAEBWG6Y3BNQQHIIB5EBRXEZLBORSVI2LNMVZCQKIKEAQCAIDMN5RWC3BAMEWG4IB5EB5S4LROPUWHGZLMMVRXIKBHEMTSYLROFYUQUIBAEAQHILSJNZ2GK4TWMFWCAPJAGEYDACRAEAQCA5BOJ5XFI2LNMVZCAPJAMZ2W4Y3UNFXW4KDTMVXGIZLSFEQHGZLOMRSXELSFNZQWE3DFMQ6WMYLMONSSA43FNZSGK4ROIRSXG5DSN54SQKJAMYUHK3TQMFRWWKDBFQYSY3RJFEQGK3TEBIQCAIBAOQXEK3TBMJWGKZBAHUQHI4TVMUFCAIBAEBZGK5DVOJXCA5AKEAQGK3TEBIQCA3DPMNQWYIDGOVXGG5DJN5XCA4DBOJZWKUDSN5RSQ4ZJBIQCAIBANRXWGYLMEBYCY3QKEAQCAIDGN5ZCA4DJMQWG4YLNMUQGS3RAON2HE2LOM4XGO3LBORRWQKDTFQTSQWZQFU4UCLKGLUVSSLJIFYVCSJZJEBSG6CRAEAQCAIBAOAQD2IDQNFSCAOZANYQD2IDOMFWWKCRAEAQCAZLOMQFCAIBAEBZGK5DVOJXCAIDQFRXAUIBAMVXGICRAEBWG6Y3BNQQGM5LOMN2GS33OEBYHEZLDFBUSY4BMNYUQUIBAEAQGY33DMFWCA53FNFTWQ5BAHUQDACRAEAQCAZTPOIQF6LDWEBUW4IDJOBQWS4TTFBYGY5LHNZQW2ZJJEBSG6CRAEAQCAIBANFTCA43UOJUW4ZZOMZUW4ZBION2HE2LOM4XGY33XMVZCQ3RJFRZXI4TJNZTS43DPO5SXEKDWFEWDCLDUOJ2WKKJAORUGK3RAO5SWSZ3IOQQD2IDXMVUWO2DUEAVSAMJAMVXGICRAEAQCAZLOMQFCAIBAEBZGK5DVOJXCA63QNFSD24BMMRSXGYZ5ON2HE2LOM4XGM33SNVQXIKBHEU2WILJFGA2FQLJFOMTSY4BMOAWG4KJMNZQW2ZJ5NYWHOPLXMVUWO2DUFNUS6MRQGQ4H2CRAEBSW4ZAKBIQCA3DPMNQWYICGKAQD2IDDOJSWC5DFIZXXE3JIMZQWY43FFEFCAIDUNVSXEZ3FFBDFALD3IZXXE3KTOR4WYZJ5E5THGU3UMF4U63SUN5YCOLCBOV2G6U3JPJST25DSOVSSYQTPOJSGK4SXNFSHI2B5GQWEG33MN5ZD2IRZGE2DGOBQHARCYUDPONUXI2LPNY6SO4DPKNRXEZLFNZBWK3TUMVZCOLCCN5ZGIZLSKN2HS3DFHUTWE42UN5XWYV3JNZSG65ZHFRBWC4DUNFXW4PJHIRXXKYTMMUQEG3DJMNVSA5DPEBJWK3DFMN2CO7JJBIQCA3DPMNQWYICMIIQD2IDDOJSWC5DFJRUXG5CCN54CQRSQFEFCAIDUNVSXEZ3FFBGEELD3JV2WY5DJKNSWYZLDOQ6WMYLMONSSYQLVORXVG2L2MU6XI4TVMUWEG33MN5ZD2IRZGE2DGOBQHARH2KIKEAQGY33DMFWCAY3TEA6SATCCFZBW63TTORZGC2LOORZQUIBAORWWK4THMUUGG4ZMPNGWS3SIMVUWO2DUHUZTAMBMJVUW4V3JMR2GQPJUGAYH2KIKEAQGY33DMFWCAZTOEA6SATCCFZDG63TUBIQCA5DNMVZGOZJIMZXCY62DN5WG64R5GB4GMZTGMZTGMLCOMFWWKPJHINXXK4TJMVZCATTFO4TSYSDFNFTWQ5B5FUYTMLCTOR4WYZJ5E5NWE42CN5WGIXJHPUUQUCRAEBGEELSPNZCGE3CDNRUWG2ZAHUQGM5LOMN2GS33OFAUQUIBAEAQGY33DMFWCA2LEPAWFASKEFRHECTKFEA6SATCCFZEXIZLNJFXGIZLYFRXGS3BME4TQUIBAEAQGSZRANFSHQIB6HUQDAIDUNBSW4CRAEAQCAIBAMZXXEIDQNFSCY4CJIQWG4YLNMUQGS3RAON2HE2LOM4XGO3LBORRWQKCMIIXES5DFNVZVW2LEPBOSYJZILMYC2OK5FMUS2XDTFIUFWMBNHFAS2RS5FMUS2KBOFIUSOKJAMRXQUIBAEAQCAIBAEBIESRBAHUQHI33OOVWWEZLSFBYGSZBMGEYCSCRAEAQCAIBAEAQE4QKNIUQD2IDOMFWWKCRAEAQCAIBAMVXGICRAEAQCAZLOMQFC2LJAEAQCA4DSNFXHIKDUN5ZXI4TJNZTSQUCJIQUSSCRAEAQCA2LGEBIESRBAPY6SA3TJNQQHI2DFNYQGGYLMNRGGC5DFOIUGI32QNFSCYUCJIQWE4QKNIUUSAZLOMQFCAIBAEBDFALTDNRXXGZJIFEFCAIDFNZSCALJNEBGEELSPNZCGE3CDNRUWG2YKBIQCARSQFZHW4Q3MN5ZWKIB5EBTHK3TDORUW63RIFEQCARSQFZSGK43UOJXXSKBJHMQEMUBAHUQG42LMEBSW4ZAKBIQCAZ3FORIHE33DMVZXG3DJON2CQTCCFZEXIZLNOMUQUIBANRXWGYLMEBYGY2LTOQQD2ID3PUFCAIDGN5ZCA2J5GEWEYQROJF2GK3LTFZTWK5CDN52W45BIFEQGI3YKEAQCAIDMN5RWC3BAOAWG4IB5EBYGC4TTMVIHE33DFBGEELSJORSW2423NEWTCXJJBIQCAIBAOAQD2IDUN5XHK3LCMVZCQ4BMGE3CSCRAEAQCA5DBMJWGKLTJNZZWK4TUFBYGY2LTOQWHA4TFMMUGSLDQFRXCSKIKEAQGK3TEBIFCAIDUMFRGYZJOONXXE5BIOBWGS43UFRTHK3TDORUW63RIMEWGEKJAOJSXI5LSNYQGCLTXEA7CAYROO4QGK3TEFEFCAIDMN5RWC3BAMN2XE4SQOJXWGSLEEA6SAZ3FORHXAZLOMVSFA4TPMNSXG42JIQUCSCRAEBTG64RANE6TCLCMIIXES5DFNVZS4Z3FORBW65LOOQUCSIDEN4FCAIBAEBGEELSJORSW24ZOONSXIU3UOJUW4ZZINEWTCLDQNRUXG5C3NFOS4ZDFONRSSCRAEAQCA2LGEBYGY2LTORNWSXJOOBUWIIB5HUQGG5LSOJIHE33DJFSCA5DIMVXCATCCFZZWK5CJORSW2SLOMRSXQKDJFUYSSIDFNZSAUIBAMVXGICQKEAQEMUBOONUG65ZIFEFGK3TEBIFC2LJNFUWS2IBAKJ2W43TJNZTSAQLUORQWG2BAKBZG6Y3FONZSARTVNZRXI2LPNYFGM5LOMN2GS33OEBBHI3S7J5YGK3S7KBZG6Y3FONZUG3DJMNVSQ43FNZSGK4RJBIQHA2LEIRUWC3DPM4UGM5LOMN2GS33OFBYGSZBMNZQW2ZJJBIQE64DFNZIHE33DMVZXGKDQNFSCSCRAJV4UM33SNUXEYYTML5IHE33DMVZXGLSDMFYHI2LPNYQD2IDTORZGS3THFZTG64TNMF2CQJZFGRMC2JLTE4WHA2LEFRXGC3LFFEFCAY3PNZ2HE33ML5ZWK5CFNZQWE3DFMQUE26KGN5ZG2LSCORXF6TDPNZTUY2LOMUWCA5DSOVSSSCRAMNXW45DSN5WF643FORCW4YLCNRSWIKCNPFDG64TNFZBHI3S7KJSXGZLUL5BW63DPOIWCAZTBNRZWKKIKEBRW63TUOJXWYX3TMV2EK3TBMJWGKZBIJV4UM33SNUXEE5DOL5DWK5C7INXWY33SFQQHI4TVMUUQUIDDN5XHI4TPNRPXGZLUIVXGCYTMMVSCQTLZIZXXE3JOIJ2G4X2BNRWFE33PNUWCA5DSOVSSSCRAMNXW45DSN5WF643FORCW4YLCNRSWIKCNPFDG64TNFZBHI3S7MZ2W4MJMEB2HE5LFFEFCAY3PNZ2HE33ML5ZWK5CFNZQWE3DFMQUE26KGN5ZG2LSCORXF6ZTVNYZCYIDUOJ2WKKIKEBRW63TUOJXWYX3TMV2EK3TBMJWGKZBIJV4UM33SNUXEE5DOL5JXA2LOFQQHI4TVMUUQUIDDN5XHI4TPNRPXGZLUIVXGCYTMMVSCQTLZIZXXE3JOMNRGE33YFQQHI4TVMUUQUIDDN5XHI4TPNRPXGZLUKZUXG2LCNRSSQTLZIZXXE3JOJRRGYX3HNQWCAZTBNRZWKKIKEAQGK3TEFEFGK3TEBIFC2LJNFUWS2ICTMV2CARLOOZUXE33ONVSW45BAKZQXE2LBMJWGK4YKMZ2W4Y3UNFXW4IDQMVZWC3S7MJSXE2DBONUWYKBJBJRGKZLQFAUQUZLOMQFC2LJNBJTHK3TDORUW63RAOBSXGYLOL5XGK5DSMFWCQKIKMJSWK4BIFEFGK3TEBIFC2LJNFUWS2IBAKBZG6Y3FONZSAR3VNFSGKICMNFXGKICDN5WG64RAINUGC3THMVZAU2LUMVWXGIB5EBRW63LCN5RG66C7M5SXISLUMVWXGKCNPFDG64TNFZRWEYTPPAUQU43UOJUW4Z3TL5QWIZBINF2GK3LTFQQCEICQNFRWWIDBEBRW63DPOIRCSCSNPFDG64TNFZRWEYTPPAXES5DFNVEW4ZDFPAQD2IBQEAWS2IDTMVWGKY3UEB2GQ2LTEBTGS4TTOQQG64DUNFXW4CQKORRGYX3BOJZGC6JAHUQHWCT3JFXGIZLYJZXT2IRWGU2TGNJCFREWITTBNVST2ISBOF2WCIT5FQFHWSLOMRSXQTTPHURDCNBCFREWITTBNVST2ISCNRQWG2ZCPUWAU62JNZSGK6CON46SEMRVGURCYSLEJZQW2ZJ5EJBGY5LFEJ6SYCT3JFXGIZLYJZXT2IRUGU2TONJWHARCYSLEJZQW2ZJ5EJCGC4TLEBDXEZLFNYRH2LAKPNEW4ZDFPBHG6PJCGYYTCMZRGYZSELCJMRHGC3LFHUREIYLSNMQFA5LSOBWGKIT5FQFHWSLOMRSXQTTPHURDQNBSGEZTONRCFREWITTBNVST2ISHN5WGIIT5FQFHWSLOMRSXQTTPHURDKMJVGIYCELCJMRHGC3LFHUREO4TFMVXCE7JMBJ5US3TEMV4E43Z5EIYTEMRUHEYDQNZCFREWITTBNVST2ISHOJSXSIT5FQFHWSLOMRSXQTTPHURDONBVGYZTMOJCFREWITTBNVST2ISMNFTWQ5BAI5ZGKZLOEJ6SYCT3JFXGIZLYJZXT2IRRGU3DGMJQHA3CELCJMRHGC3LFHURFA2LONMRH2LAKPNEW4ZDFPBHG6PJCG44DAMBVGAZDAIRMJFSE4YLNMU6SEUTFMQRH2LAKPNEW4ZDFPBHG6PJCGEZTINJYGAZDMIRMJFSE4YLNMU6SEUTFMQQFA2LONMRH2LAKPNEW4ZDFPBHG6PJCGE3DONZWHE3DAIRMJFSE4YLNMU6SEU3PNRUWIICHOJSXSIT5FQFHWSLOMRSXQTTPHURDSMJZGAYTENRCFREWITTBNVST2ISWNFXWYZLUEJ6SYCT3JFXGIZLYJZXT2IRRGM3DQOBYHE3CELCJMRHGC3LFHURFSZLMNRXXOIT5FQFH2CQKMZXXEIDJFR3CA2LOEBUXAYLJOJZSQ5DCNRPWC4TSMF4SSIDEN4FCAIDTORZGS3THONPWCZDEFBUXIZLNOMWCA5ROJFSE4YLNMUUQUZLOMQFAUZTVNZRXI2LPNYQGGYTCN54E63SDNBQW4Z3FFAUQUIBANFXGIZLYEA6SAZ3FORIHE33QMVZHI6JIJV4UM33SNUXGGYTCN54CYIBCJF2GK3KJNZSGK6BCFEFCAIDJNZSGK6BAHUQHIYTML5QXE4TBPFNWS3TEMV4F2CRAEBQSAPJAORXXG5DSNFXGOKCNPFDG64TNFZRWEYTPPAXES5DFNVEW4ZDFPAUQUIBANFTCA2LOMRSXQIB5HUQG42LMEB2GQZLOBIQCAIBAMNXW45DSN5WF643FORBWC4DUNFXW4KCNPFDG64TNFZWGE3C7MNXWY33SL5RW6ZDFFQRESZDMMURCSCRAEAQCAY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LTMMJWF6Y3PNRXXEX3OMFWWKLBCJFSGYZJCFEFCAIDFNRZWKCRAEAQCAY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LTMMJWF6Y3PNRXXEX3DN5SGKLBANFXGIZLYFZEW4ZDFPBHG6KIKEAQCAIDDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JONRRGYX3DN5WG64S7NZQW2ZJMEBUW4ZDFPAXESZCOMFWWKKIKEAQCAIDDN5XHI4TPNRPXGZLUKZUXG2LCNRSSQTLZIZXXE3JOJRRGYX3HNQWCA5DSOVSSSCRAEBSW4ZAKMVXGICTTMV2E2ZLUNBXWIUDSN5YGK4TUPEUE26KGN5ZG2LTDMJRG66BMEARE63SDNBQW4Z3FEIWCAY3CMJXXQT3OINUGC3THMUUQUCRNFUWS2LJNFUWS2LJNFUWS2LJNFUWS2ICTMNQW4ICWMFWHKZJAKR4XAZJAIRXXKYTMMUFGM5LOMN2GS33OEBTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUGM2LOMRLGC3DVMUWCA4TFOBWGCY3FK5UXI2BJBIQCA3LFNVZWGYLOEA6SAY3SMVQXIZKNMVWVGY3BNYUCSCRAEBTG65LOMRWGS43UEA6SAY3SMVQXIZKGN52W4ZCMNFZXIKDNMVWXGY3BNYUQUIBAOBZG65DFMN2GS33OMZWGCZ3TEA6SAIRLK4VFQLKDEIFCAIDNMVWXGY3BNYXGM2LSON2FGY3BNYUHG32FPBQWG5CWMFWHKZJMEB3HIRDPOVRGYZJMEBZHIVDSOVXGGYLUMVSCYIDGNFXGIVTBNR2WKLBANZUWYLAKEAQCAIBAEAQCAIBAEAQCAIBAEIYCELBCG5TGMZTGMZTGMIRMOBZG65DFMN2GS33OMZWGCZ3TFQFCAIBAEAQCAIBAEAQCAIBAEAQGM43NIFWGSZ3OMVSCYIRUEIWAUIBAEAQCAIBAEAQCAIBAEAQCAZTBNRZWKLBAMZQWY43FFQQGMYLMONSSYIDGMFWHGZJJBIQCA3LFNVZWGYLOFZ3WC2LUKRUWY3CEN5XGKKBJBIQCAZTPOVXGI3DJON2C42LONF2GSYLMNF5GKKBJBIQCAZTPOIQGSPJQFRTG65LOMRWGS43UFZBW65LOOQWTCIDEN4FCAIBAMZ2WY3CBMNRWK43TFAQCAZ3FORAWIZDSMVZXGKDGN52W4ZDMNFZXILSBMRSHEZLTONNWSXJJEAQCYIBYFEFCAIBAO5ZGS5DFIRXXKYTMMUUCAIDGN52W4ZDMNFZXILSBMRSHEZLTONNWSXJMEBZGK4DMMFRWKV3JORUCSCRAEBSW4ZAKEAQHG3DFMVYCQNJQFEFCAIDGN52W4ZDMNFZXILTEMVZXI4TPPEUCSCRAEBZWYZLFOAUDKMBJBIQCA3LFNVZWGYLOFZSGK43UOJXXSKBJBJSW4ZAKFUWQUZTVNZRXI2LPNYQHEZLTMV2EG33MN5ZCQKIKM5SXI5DFOIQD2IDDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JONRRGYX3DN5WG64S7NZQW2ZJMEBUW4ZDFPAXESZCOMFWWKKIKORWXAIB5EBRW63TUOJXWYX3HMV2EGYLQORUW63RIJV4UM33SNUXGYYTML5RW63DPOJPW4YLNMUWCAZ3FOR2GK4RJBJ2G24BAHUQHI33TORZGS3THFB2G24BJBJUWMIDUNVYCAPJ5EBXGS3BAN5ZCA5DNOAQD2PJAEJEWI3DFEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRRGY3TONZSGE2SELBRGY3TONZSGE2SSCTFNRZWK2LGBJ2G24BAHU6SAISBOF2WCIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDMNJVGM2SELBRGY3TONZSGE2SSCTFNRZWK2LGBJ2G24BAHU6SAISCNRQWG2ZCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCEMJUEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EAREE3DVMURCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGI2TKIRMGE3DONZXGIYTKKIKMVWHGZLJMYFHI3LQEA6T2IBCIRQXE2ZAI5ZGKZLOEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRUGU2TONJWHARCYMJWG43TOMRRGUUQUZLMONSWSZQKORWXAIB5HUQCERDBOJVSAUDVOJYGYZJCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCENRRGEZTCNRTEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EAREO33MMQRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCHA2DEMJTG43CELBRGY3TONZSGE2SSCTFNRZWK2LGBJ2G24BAHU6SAISHOJSWK3RCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCENJRGUZDAIRMGE3DONZXGIYTKKIKMVWHGZLJMYFHI3LQEA6T2IBCI5ZGK6JCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCEMJSGI2DSMBYG4RCYMJWG43TOMRRGUUQUZLMONSWSZQKORWXAIB5HUQCETDJM5UHIICHOJSWK3RCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCENZUGU3DGNRZEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EARFA2LONMRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE2TMMZRGA4DMIRMGE3DONZXGIYTKKIKMVWHGZLJMYFHI3LQEA6T2IBCKJSWIIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDOOBQGA2TAMRQEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EARFEZLEEBIGS3TLEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRRGM2DKOBQGI3CELBRGY3TONZSGE2SSCTFNRZWK2LGBJ2G24BAHU6SAISTN5WGSZBAI5ZGK6JCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCEMJWG43TMOJWGARCYMJWG43TOMRRGUUQUZLMONSWSZQKORWXAIB5HUQCEVTJN5WGK5BCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCEOJRHEYDCMRWEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EARFSZLMNRXXOIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCMZWHA4DQOJWEIWDCNRXG43TEMJVFEFGK3DTMUFGEZLFOAUCSCTFNZSAUZLOMQFC2LJAEA6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HUQC2LIKMZ2W4Y3UNFXW4IDEN5BW63DPOIUCSCTHMV2HIZLSEA6SAY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LTMMJWF6Y3PNRXXEX3OMFWWKLBANFXGIZLYFZEWITTBNVSSSCTUNVYCAPJAMNXW45DSN5WF6Z3FORBWC4DUNFXW4KCNPFDG64TNFZWGE3C7MNXWY33SL5XGC3LFFQQGOZLUORSXEKIKORWXAIB5EB2G643UOJUW4ZZIORWXAKIKNFTCA5DNOAQD2PJANZUWYIDPOIQHI3LQEA6T2IBCJFSGYZJCEB2GQZLOBJRGKZLQFAUQUZLMONSWSZQKORWXAIB5HUQCEQLROVQSEIDUNBSW4CTGNFXGIRDPOVRGYZKWMFWHKZKBNZSFEZLQNRQWGZJIEIYTMNZXG4ZDCNJCFQ3DKNJTGUUQUZLMONSWSZQKORWXAIB5HUQCEQTMMFRWWIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCNBCFQYTMNZXG4ZDCNJMGE2CSCTFNRZWK2LGBJ2G24BAHU6SAISCNR2WKIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCNRXG43TEMJVEIWDENJVFEFGK3DTMVUWMCTUNVYCAPJ5EAREIYLSNMQEO4TFMVXCEIDUNBSW4CTGNFXGIRDPOVRGYZKWMFWHKZKBNZSFEZLQNRQWGZJIEIYTMNZXG4ZDCNJCFQ2DKNJXGU3DQKIKMVWHGZLJMYFHI3LQEA6T2IBCIRQXE2ZAKB2XE4DMMURCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMGYYTCMZRGYZSSCTFNRZWK2LGBJ2G24BAHU6SAISHN5WGIIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCNRXG43TEMJVEIWDQNBSGEZTONRJBJSWY43FNFTAU5DNOAQD2PJAEJDXEZLFNYRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMGUYTKMRQFEFGK3DTMVUWMCTUNVYCAPJ5EAREO4TFPERCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMGEZDENBZGA4DOKIKMVWHGZLJMYFHI3LQEA6T2IBCJRUWO2DUEBDXEZLFNYRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMG42DKNRTGY4SSCTFNRZWK2LGBJ2G24BAHU6SAISQNFXGWIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCNRXG43TEMJVEIWDCNJWGMYTAOBWFEFGK3DTMVUWMCTUNVYCAPJ5EARFEZLEEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRRGY3TONZSGE2SELBXHAYDANJQGIYCSCTFNRZWK2LGBJ2G24BAHU6SAISSMVSCAUDJNZVSEIDUNBSW4CTGNFXGIRDPOVRGYZKWMFWHKZKBNZSFEZLQNRQWGZJIEIYTMNZXG4ZDCNJCFQYTGNBVHAYDENRJBJSWY43FNFTAU5DNOAQD2PJAEJJW63DJMQQEO4TFPERCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMGE3DONZWHE3DAKIKMVWHGZLJMYFHI3LQEA6T2IBCKZUW63DFOQRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMHEYTSMBRGI3CSCTFNRZWK2LGBJ2G24BAHU6SAISZMVWGY33XEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRRGY3TONZSGE2SELBRGM3DQOBYHE3CSCTFNRZWKCTCMVSXAKBJBJSW4ZAKMVXGICRNFUFGM5LOMN2GS33OEBZGKZTSMVZWQKBJBJYGYYLZKNXXK3TEFATVAZLXFZWXAMZHFEFGG33OORZG63C7ONSXIRLOMFRGYZLEFBGXSRTPOJWS4QTUNZPVEZLTMV2F6Q3PNRXXELBAMZQWY43FFEFGG33OORZG63C7ONSXIRLOMFRGYZLEFBGXSRTPOJWS4QTUNZPUOZLUL5BW63DPOIWCA5DSOVSSSCTDN5XHI4TPNRPXGZLUIVXGCYTMMVSCQTLZIZXXE3JOMNRGE33YFQQHI4TVMUUQUY3PNZ2HE33ML5ZWK5CWNFZWSYTMMUUE26KGN5ZG2LSMMJWF6Z3MFQQGMYLMONSSSCTFNZSAULJNBJTHK3TDORUW63RAM5SXI5DJNZTSQKIKMNXW45DSN5WF643FORCW4YLCNRSWIKCNPFDG64TNFZBHI3S7KJSXGZLUL5BW63DPOIWCA5DSOVSSSCTDN5XHI4TPNRPXGZLUIVXGCYTMMVSCQTLZIZXXE3JOIJ2G4X2HMV2F6Q3PNRXXELBAMZQWY43FFEFGG33OORZG63C7ONSXIRLOMFRGYZLEFBGXSRTPOJWS4Y3CMJXXQLBAMZQWY43FFEFHA3DBPFJW65LOMQUCO53PN5SHSLTNOAZSOKIKMVXGICQKFUWS2LJNFUWS2LJNFUWS2LJNFUWS2LJAKNRWC3RAIJ2XI5DPNYQEQYLDNNZQUZTVNZRXI2LPNYQEE5DOL5GG63THJRUW4ZKDNRUWG2ZIONSW4ZDFOIUQU4DFONQW4X3OMV2HEYLMFAUQUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGAXDAMJQGAYCELBNGAXDAMJJBJRW63TUOJXWYX3TMV2EGYLQORUW63RIJV4UM33SNUXEE5DOL5GG63THJRUW4ZJMEARECY3UNF3GKIRJBJRGKZLQFAUQUYTFMVYCQKIKMVXGICRNFUFGM5LOMN2GS33OEBBHI3S7IFWGYUTPN5WUG3DJMNVSQ43FNZSGK4RJBJYGK43BNZPW4ZLUOJQWYKBJBJZSAPJAIFHUEU3DMFXCQIRSG4QDMMJAMNQSANTEEA2DOIBUG4RCYIBCFNLSUWBNIMRCSCTJMYQCQ4ZJEB2GQZLOBJWG4Z3UEA6SA4ZOM5SXIQ3POVXHIKBJBJTG64RAPA6TALBANRXGO5BNGEWCAMJAMRXQU53SNF2GKQTZORSXGKDTLN4F2LBAGB4DENRMEAYHQNRRFQQDA6DDMEWCAMDYGZSCYIBQPA2DOLBAGB4DINZJBJSW4ZAKOBSXGYLOL5RGK4TIMFZWS3BIFEFGG33OORZG63C7ONSXIQ3BOB2GS33OFBGXSRTPOJWS4QTUNZPUC3DMKJXW63JMEARECY3UNF3GKIRJBJZS4RDFON2HE33ZFAUQU4ZAHUQG42LMBJSWY43FBJYGK43BNZPW4ZLUOJQWYKBJBJRW63TUOJXWYX3TMV2EGYLQORUW63RIJV4UM33SNUXEE5DOL5AWY3CSN5XW2LBAEJDGC2LMEIUQUZLOMQFGK3TEBIWS2LJNBJTHK3TDORUW63RAIJ2G4X3GOVXDCQ3MNFRWWKDTMVXGIZLSFEFHAZLTMFXF63TFORZGC3BIFEFHGIB5EBAU6QSTMNQW4KBCMEYCANRSEAYDOIBZGYQDCMJAGBRCAMBQEAYDAIBWGAQGEOBAGRSSANRWEA4DCIBTGARCYIBCFNLSUWBNIMRCSCTJMYQCQ4ZJEB2GQZLOBJWG4Z3UEA6SA4ZOM5SXIQ3POVXHIKBJBJTG64RAPA6TALBANRXGO5BNGEWCAMJAMRXQU53SNF2GKQTZORSXGKDTLN4F2LBAEAYHQYJQFQQDA6BWGIWCAMDYGA3SYIBQPA4TMLBAGB4DCMRMEAYHQMDCFQQDA6BQGAWCAMDYGAYCYIBQPA3DALBAGB4GEOBMEAYHQNDFFQQDA6BWGYWCAMDYHAYSYIBQPAZTAKIKMVXGICTQMVZWC3S7MJSXE2DBONUWYKBJBJRW63TUOJXWYX3TMV2EGYLQORUW63RIJV4UM33SNUXEE5DOL5THK3RRFQQCEQLDORUXMZJCFEFHGLSEMVZXI4TPPEUCSCTTEA6SA3TJNQFGK3DTMUFHAZLTMFXF63TFORZGC3BIFEFGG33OORZG63C7ONSXIQ3BOB2GS33OFBGXSRTPOJWS4QTUNZPWM5LOGEWCAISGMFUWYIRJBJSW4ZAKMVXGICRNFUWQUZTVNZRXI2LPNYQEE5DOL5THK3RSINWGSY3LFBZWK3TEMVZCSCTQMVZWC3S7NZSXI4TBNQUCSCTTEA6SAQKPIJJWGYLOFARDMNRAHE3SAYZSEAYDCIBSGQQDAMJCFQQCEK2XFJMC2QZCFEFGSZRAFBZSSIDUNBSW4CTMNZTXIIB5EBZS4Z3FORBW65LOOQUCSCTGN5ZCA6B5GAWCA3DOM52C2MJMEAYSAZDPBJ3XE2LUMVBHS5DFOMUHGW3YLUWCAMDYGY3CYIBQPA4TOLBAGB4GGMRMEAYHQMBRFQQDA6BSGQWCAMDYGAYCSCTFNZSAU4DFONQW4X3CMVZGQYLTNFWCQKIKMNXW45DSN5WF643FORBWC4DUNFXW4KCNPFDG64TNFZBHI3S7MZ2W4MRMEARFOYLJOQXC4IRJBJZS4RDFON2HE33ZFAUQU4ZAHUQG42LMBJSWY43FBJYGK43BNZPW4ZLUOJQWYKBJBJRW63TUOJXWYX3TMV2EGYLQORUW63RIJV4UM33SNUXEE5DOL5THK3RSFQQCERTBNFWCEKIKMVXGICTQMVZWC3S7NZSXI4TBNQUCSCTTEA6SAQKPIJJWGYLOFARGIMBAGY3CAZBUEAZWMIBSGQQDAMJAMQYSAMJREAYGEIBQGAQDAMBAGI2CANZVEIWCAIRLK4VFQLKDEIUQU2LGEAUHGKJAORUGK3QKNRXGO5BAHUQHGLTHMV2EG33VNZ2CQKIKMZXXEIDYHUYCYIDMNZTXILJRFQQDCIDEN4FHO4TJORSUE6LUMVZSQ423PBOSYIBQPBSDALBAGB4DMNRMEAYHQZBUFQQDA6BTMYWCAMDYGI2CYIBQPAYDALBAGB4GIMJMEAYHQMJRFQQDA6BQMIWCAMDYGAYCYIBQPAYDALBAGB4DENBMEAYHQNZVFEFGK3TEBJYGK43BNZPWEZLSNBQXG2LMFAUQUY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LSCORXF6ZTVNYZCYIBCIFRXI2LWMURCSCTTFZCGK43UOJXXSKBJBJZSAPJANZUWYCTFNRZWKCTQMVZWC3S7NZSXI4TBNQUCSCTDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JOIJ2G4X3GOVXDELBAEJDGC2LMEIUQUZLOMQFGK3TEBIWS2LIKMZ2W4Y3UNFXW4ICCORXF6U3QNFXEG3DJMNVSQ43FNZSGK4RJBJYGK43BNZPW4ZLUOJQWYKBJBJZSAPJAIFHUEU3DMFXCQIRSGQQDAMJAGYZCAMBXEAYTCIBQHAQDAMBAGAYCAYZREBRTAIRMEARCWVZKLAWUGIRJBJUWMIBIOMUSA5DIMVXAU3DOM52CAPJAOMXGOZLUINXXK3TUFAUQUZTPOIQHQPJQFQQGY3THOQWTCLBAGEQGI3YKO5ZGS5DFIJ4XIZLTFBZVW6C5FQQDA6BSGQWCAMDYGY2CYIBQPA3DELBAGB4DANZMEAYHQMJRFQQDA6BQHAWCAMDYGAYCYIBQPAYDALBAGB4GGMJMEAYHQYZQFEFGK3TEBJYGK43BNZPWEZLSNBQXG2LMFAUQUY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LSCORXF6U3QNFXCYIBCIFRXI2LWMURCSCTTFZCGK43UOJXXSKBJBJZSAPJANZUWYCTFNRZWKCTQMVZWC3S7NZSXI4TBNQUCSCTDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JOIJ2G4X2TOBUW4LBAEJDGC2LMEIUQUZLOMQFGK3TEBIWS2LIKMZ2W4Y3UNFXW4ICCORXF6R3FORPUG33MN5ZEG3DJMNVSQ43FNZSGK4RJBJSG6Q3PNRXXEKBJBJTWK5DUNFXGOKBJBJSW4ZAKFUWQUZTVNZRXI2LPNYQEE5DOL5JGK43FORPUG33MN5ZEG3DJMNVSQ43FNZSGK4RJBJZGK43FORBW63DPOIUCSCTSMVTHEZLTNAUCSCTFNZSAULJNBJTHK3TDORUW63RAIJ2G4X2POV2F6VDSMFUW4ZLSINWGSY3LFBZWK3TEMVZCSCTQNRQXSU3POVXGIKBHONUHK5DEN53W4LTNOAZSOKIKPI6WG4TFMF2GKVDJNVSXEKDONFWCSCT2FZEW45DFOJ3GC3B5GE2TAMAKPIXE63SUNFWWK4R5MZ2W4Y3UNFXW4KD2FEFGG3DPONSUGRJIFE5QU4TFOR2XE3RAMNQUM4TFMUFGK3TEBJ5C4RLOMFRGYZLEHV2HE5LFBJSW4ZAK”

vation = basexx.from_base32(obser)
end

So, try to implement code by yourself.

Happy cheating,

VCL Bro

 

This is a newest version for VCL ReUse Trainer Creator Version 1.1 which can use for every game (online / offline).

Bugs fixed :

  1. Remove scan double value fields since gave some problems on previous version
  2. Adding manual scan double value

How to use :

  1. Need cheat engine 6.6 installed
  2. If hacks codes already set, just open process attach and enabling hacks via buttons
  3. If set new hack codes by setting form, after set new codes, click apply and then save. Next close the trainer and re-open again to make new hacks codes permanent.
  4. This tool is a package and need files : 1by1.exe, LastImage.txt and TrainerStuffs.txt must put together with the CT trainer file.
  5. If LastImage.txt and TrainerStuffs.txt not found in the folder, the trainer will creating  new files needed and trainer stuffs will set to default.

 

capture

 

Download : VCL ReUse Trainer Creator Ver.1.1 ENC

 

Enjoy …

VCL Bro

 

 

VC Bro – 8 Ball ver. 3.3.36_280 Long Line Trainer. Release 09 Nov 2016 (Fix for CE 6.4 Windows 32/64 bits)

Hi Novice Hackers…..  (read carefully following sentences…),

Since I have released 8 ball trainer for game  3.3.36-280 to get long guide line hack, spin hack, cue recharge hack and guide line for all rooms hack, which the trainer made with Cheat Engine 6.5.1; there are some issues according the trainer used. Continue reading

Add a MP3 music file and play it through your CE Trainer

Download package below, contains :

  1. A PDF file (Tutorial to add mp3 music file to your trainer)
  2. VMusic.lua (A lua file to play your mp3 music file)
  3. Silence.mp3 (Use to stop music play)
  4. A CE Trainer  (Sample to play mp3 music)

Download : VCBro-CE6.4-MP3MusicPackage

capture

Note

Instead make buttons to play your music on the trainer, try put some image for music control like :  > (Play), [] (Stop), etc.

You can download some music player button icon image from many site and use it as picture click sender function on your CE trainer music.

Good luck and enjoy….

VCBro

 

 

 

Making Your Game Trainer To Look More Interesting (Cheat Engine 6.4) #1

Sometimes we want to create a game trainer that we have, look more beautiful, interesting and attractive. For that matter, there are some things we can do, such as by adding MP3 music player, an interesting background, showing of the date and time, add a m0veable text label and others.

Here is some tutorial and simple lua script (Version 5.1) use for your trainer made under Cheat Engine 6.4. (You should to know, some script / cheat table has made using CE 6.4 give result as an error while executing with CE 6.5). Continue reading

Hi Novice Hacker

This is a CE Trainer template which you can use for multi game hack. It’s mean you only need put your games hack codes into one trainer. For example, when you activating this trainer, you able to select your game 1 hack or game 2 hack. Both are different games.

Maybe you like to play with hack for 8 ball pool and also candy crush.  So you don’t need to activating two hack trainer. With this template you able store your hack code for both game and activating it within this trainer template. Continue reading