guitarplayer616

genericModern

Jan 22nd, 2017
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.27 KB | None | 0 0
  1. --Created with Packager by CrazedProgrammer
  2. b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' function frombase64(data) data = string.gsub(data, '[^'..b..'=]', '') return (data:gsub('.', function(x) if (x == '=') then return '' end local r,f='',(b:find(x)-1) for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end return r; end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x) if (#x ~= 8) then return '' end local c=0 for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end return string.char(c) end)) end function lzw_decode(s) local str = { } for i=1,#s/2,1 do table.insert(str, s:byte(i * 2 - 1) * 256 + s:byte(i * 2)) end local dict_size = 256 local dict = {} for i = 0, dict_size-1 do dict[i] = string.char(i) end local w = string.char(str[1]) local result = w for i = 2, #str do local k = str[i] local entry = '' if dict[k] then entry = dict[k] elseif k == dict_size then entry = w .. w:sub(1,1) else return nil end result = result .. entry dict[dict_size] = w .. entry:sub(1,1) dict_size = dict_size + 1 w = entry end return result end d = 'AA4vZ2VuZXJpY01vZGVybgEAELIACgAAAAkAUwBjAGgAZQBtAGEAdABpAGMABwAAAAYAQgBsAG8AYwBrAHMAAAAAACYAZAACARkBGgEbARwBHQEeAAIAxQC4ASEBIwEiASUBJAEnASYBKQEgALgBKwEtASEBGwEhARUBMgEzATMBLwEZAS8BOAEsARoBMQE0AT0AAAE5AS4BLAE2ATcAuAE+AT0BQwFAAUMBKwFGATQBSQFCAU8BMAFFAUwBMgE5AAMBVgFXAAMBOwEpASgBXAFbASoBIQADAAUBYgFiAVkBRAFBAWcBTgErAWEBYwAFAWUBaAFQAWkBVQFsAW0BWgFBAWABVwFtASgBeAFsAW4BTgFrAXMBgAF8AXUBOQEhAYEBhgFkAYMBTwGFAAUAIQGHAXMBfQFwASUBYgGNAY4BYwGQAXYAuAGTAZUBlgGJASsBmwFYAVcBnQFgAZUAAwFdAWABiQFWAZ8BpgC4AZcBJAGbAXkBXgGnAWYBrgGqAbEBrAGJAYsBZAGgAW0BVgGrAa0BrAGCAXEBigFeAb8BVwEkAVkBwgErAV0BvwFvAc0BhAFeAVEBzgGRAW8BXQHRAckB1wG2AR8B2gEtAUQB1QACABIB4AHhAeIB4wHkAeUBUwHnATMB4AHoATMAfgB+AOIAgAChAT0B6gHrAecB8wH0Ae0B7wHxATQB9gH0AUYB/AH0AasBJAH/AesBIQH5AgYB8AIHAKEBIQIDAegBPAEVAfkCCwASAf0BVAFSAH4AAAIQALgCAwGrAEABIQBmAh4BKAEzAhgCGgFSAf0CEQE9AGYCDwHwAgACGQISATQCKAH5AhcCKgFHAiQBFQImAi4B5wIOAjUCLAIzAjEB8QIwAjMALwDFAJMALAAsAkICNgE1AVICPwJIAMIApAIBASUCIwFMATECOQE/AjsCFAIFAIAAugHvAlkCWAE+AlICNAJUAfwCKAIpALoCXQFFAlMCRwAAAmICUQJmAl8CaAJqAloCTgJUASQBTQJVAjoCSAIrAfwBKABmAnMCBAJ1AhMB8gItAn8CgAKCAT4B5QKGAeoB4QH7AoEChAKMAo0CjgKPApACkQKQASQCHgJ7ASUCjAJnAl8B/QJqAnYChAKZAUYClAKWAhwAuAKVAiACdwJlAn8CUwEyApwCfQFGAqwCPAKnAicCOAJtApoCnQJrAC8AGQEkArkCtQJUAmsCcgG2AqoCtgIzAkwCwQJ0AsUCdgLHAqsCswK9AecCrwJ0AswBUwKcApQCIAKmAVMCOQLJArECVgElApYC2AIUApIC3wLgAt8C3QLhAuQC5QLmAucCKwIdAh8ClwKeArQCjAKsAs4CrQEzAvECoQJ6AusCfALKAqgCEwLxAvEBTAL8AssC8wKuAwAC+QKwArcCuwEhArsCoAK8Ar0CTgLFAscCXgINASUCRAAsAmUCxAMLAwQDFAIzAAUC3QJqAxkCdAMbAxcBFQMdAtMCwALsAtYCNALjAtAC2gIdAvgDAwLoAy8DMAMpAzADMwM0AzUCqQMlAzICzwLZAvsCMQCgAe8DPgCAAKADKgITATEDPwBZAz8DQwMrAzgBtgM9Az8DSAMOAyECnwKoAkwDVACkAvoC3gNTAKQAWQJMA1cCwgJ3AkwDWwNWAwUDXgLeA2ADXAJAAC8DaQJBArwBMQNVA2cBMgAFAr8BqwMKAUwDcQNSAkgCVwJbA3oBPgN2Au4DOgIxAmQBPQN9A38DWAOAAT4DXAN3A4UCcANLAtUDZALXAyEDhQNKA40DJwM2A5UC4gOQA5YDmQOaAzYDDQOYAmUCcQLtA6ACxgOMA6QBXQJlAa8DogJIA6gDJQOnAZsDqQIUAWMANgGHA68COgOrA3MDGgFiA7IBhgO0AlQBlQAAAyADtwMfAY4DvwOPAjMBuQGGA8QDKAKaAbQBhwPJAzsCvwGHA2cDIAPPA50D1QMmA0kD1gPZA0wDowPaA90DngObA+ADkQPhA+MD5ALnAMIAqwPnA+kD6APrA+cCjAPqA+8D7ACrA+4D8QPwA+0DxgOlAyUD9QPrAmUCSgKZADYANgEhA+cB7wCUBAMD6gJlAe4CMgNSBAEAqwQDBAUD+wIzAkoAQAE0BBICVAQCAIAEBAQXBAYDYwQKAUUEDQQZBA8D3AFeAnQD/wQLBB4AlAQaAnQB+QQIAfECmQEoA/oD9gLPAj8EFAOjBC8D8gQbArUDLQQwATID5wPFA/cBMwQ6ARUEPAPKA58CNARAAAAEQgNqA2sERAQ/BDYETAPeA8EERwRNBDsD9ARUBDUEVgRUAT0EVwRaBFUEXAPlBF4DXQRfBGEEYgRjAuUC9gL2AtwBKQMRAzsBPAMcBGsBUgRtATIEMwEVBBQC3QQ9A1gEdQOsAqcEcANeA6YCzQEzBHIC2gHoAtIEOAPXA3QD4gI6BHgDzwK/AxEESQLBAy0DCgGrBGgC6gOTBGQElQPkAzkElgSZBJoEZARmASkCpQQiAy4EHASCBG4DZAKyA+IEbAOQBHYCnQR4BFACzAR7A0MEfQLRBIoEjwE+BIMESwShBIQEiQSHBIsCswSNBLkEqQMlBJICpATCBJsExQOaBJgExgTJBMoDnAP4A7wDhAQtBGkEuAQhBLoEfAElAFkE1ASwBKADJwStBLECvgSnBNoE3gSlBLQENwS3A5QEuwTjBM8EvwSMA2oEjgSFBEQETwTRBMsE8gLmBMgE8wT2BMsB7QT5BPoE+wT5AVMAfgGvAWICFgFMBP8FAAUCAUYFBAGvBQYBPgUIAZsFCgE9BQwBlQUOATQFEAGOBRIB7AUAAAUFFgEyBRQBhwUaARUFHAGGBR4AAAUgAYEFIgUkAYAFJgUYBSkFBQT+BPwFLgT9BPcE8wT1BTEFNAU1A5YFLwT7AfcFEQU6BRUFPAUdBT4FIQVABSUFQgUoBUQBcwUiBRcFPQHrBScFGQH3BTgFMAU2BVEExwPfBVIFVQVWBVcFWAVZBVoFWwVcApgAuAAIAQEATQEIAGUAcgBpAGEAbAEUAAUAQQBsAHAAaABhAQwABABEAQgAYQEVARcDmwEABXgAAAEAAo0FeQV7AoIFfQV6Ao4FgAKEBYAFfgJ/BYYFggO/AWwBMwWFBYEBFQWAAXMFjAWBBYMFkwWBBZEBMgV9BYYDcQAHBZwDcAWLBZgFlQUYAWIFkgV4AAcFogNxBaAFpQFiAAEFAAWkBXoFpgAFBawBrwWuAAoACgWrBa0FqQV6AZsBUwWQA8MFnAW/Ba4FigW+Bb8BDAWpBbADvgXEBcUFjwWvBbMFyQWkBccFqAEzBdEFzgW5BZ8FeQEMAQAF1AXLBX4FnQWVBdgAAAXaBZUFjQXZBYEF4QXjBd4F5QXEBbQF4gXlBekFwAJ/BcoF1AAEBfMF9AX1BfYADAX4BfkF+gX5ApEF+AITARkBPgX+ApAGAgH0BgABPQYEAo4GCAH0BfsF+QAEAoIADAABAVcAAAX4Bg4CfwAMATQGFAYPARUAAgEVBhkBUwABAecAAgYeBgkADAYVAT4AAwYLBiUBRgYgBgsF8wYDBi4BPgYsA3UADwAPAAQGIwE9BhwGOAYTBgwGJgKNBiUGPQYKAesGPwYvBj0CjAZDAUYGFwZCBjYBMwZJBh0GLQZABf4GQQZIBlIGDwZNBiQF/QX6BfYF9wYOBfQBNAZLBV0GYAFMBgQGVAHoBlYGEwKSBmYB/QZmBmkBPgVgAecGbAKEBnAGGgX9BmgCjwY0BmcGRgX7AoQGOQZvBnIFUQZ+Bm8GTAYLBgcGUQaAATIGhgZhBmIGiQaLBkwGTQZkBoEGggPgBogGjASbBncGkwYBBnoC5gX4BjQADwFGBnwB9AadA3wCfwahA4IGowaXBgcGkQZlBoQGFwaPBqkGlAaDBq8GiQYMBqcGrgZ4AowABga4BrYGFgAABg4DcQa0ATQFwAa/BkgBUwa4AAYGQgFTBr0GxwFMBskGqgbLA78GygFGAAQF3QNwBh0GmQITBdEGtQY7AVMG2AaHBqgG2wYBBt4BTAYyBtkGVgaTBmkG5QawBo0F+gbpBrEGzQbtBV0GswZ5BtYGFgYMBvIG6wN8BbsG8wXSBvkG9wOCBvwF/Ab4AAUABAPNBvoFngO+BwUBFQFjBwMDyAcIBcIDyAa+Bv0BNAO+BtwG5wAMBxMGGAaEBxcG5AcWAYYGLAcUBqsHAAbuBocGswckBwUHJQcnBq0G7wZOByoFXAXJBtMF8AcuAowHLgXKAoQF4QEzBzQBPQFWBeAGNAcvBZIB6AAHBzwHOAEyBsYGngEyB0AADwc9AoIHQQZ7BhwHRwdJBwkACgZFAT0HNgEzBp8BRgdUBzIHUwc1B1oCggdCB0IB6wdeB1sGwAczB2QHVAdlB2cHTwcsBtkHagdsB20C5gZuATIHcAOVB18D5AdyB24Hdwd4BroHeQd7B3wHfQd+B38HgAcrB4EHgweEB4UHhgeHBTQGwgeIBV0FpwbbBaIHjgUYB5AFuAFGB40DdQePB5YHkQeYB5MHAQebBv4HmQeUB5cHoAefB5wFsweaB6UHogedB4sCEweKB6oHrQKCB6cB5wewB5IDzQHrB7IHpgPIB7UFuwe5A74HuwPDB70HtAHoB7YHqAfAB64FMQesB8UHyAfJB8oHyweFAAwACQYTAFQAaQBsAGUARQBuAQkBCQBlAHMFfgAUBigAAQB4ATIAEgfdAHkHQwfdAHoFmAfPAAUASQB0AQYAcwdyBWAAAgBpAGQDvwBDAQUAcwB0AAAH3QffARUAEwfiB+QAAAABB+YFjwfoB+oH7AfuAAAH8AfyAAUH9AfZB/cH+QEyABYH/QEVAAYH5QWYB+8H8QV6AEQATABEAGUH6wBjAHQAbwByB/gH/wf6AAAAFwgRAQ0IFAWPCBYH8gAKCBkIGwgdCB8IIQgOARUIEAf/B+MIEggpAAAACwgrCBgIGggcAGUIHgggCCIH3gEyCCYINgf+CAABMgg7CAcIFwgtCD4IMAhCCDMAAAg1AAEINwgoB/8IAQYTCDwITggvCEAIMQhDCCQIRghVCEgIWQAMCFsILgg/CEEIMggjBZgIJwFtCFgH5wO/CAQAbQftATMIPAgKB/UIDQhsCDQIJwgTCHAIKghMCCwIaAhQCGsIRAEVCGIIVgh+CEkIgAgICD0IXQhqCGAH4Ah9CDkADggDB+sIdAgGCI0IeAgMCJEH+wiTCH8AAAiVCHIIlwh1B3EIgQfzCHkInQhTCJ8IiwihCGcITwheCFEIewglCKwIWQAOCK8IjwhfBiAABABuAG8H6wc6CIYAAAAVCCcAAgg5AA8IdwBNAHUAcwEKB/8GvAi9B+sABAhSABgIxAjGCMgIygjMCLsIzwBlCMAIJAjDCEcBFQjACFkIxwinAAUIyQjLAGMIzQi8CL4I2wjSCCcI4QEyCOMImgjmCMwIUgAKCG4IxgiWCAUIdgjkCAsH9gEBAAAACAfVB9cAaQfZBYYGHAAGAEwAZQBuAGcAdABoAAAAHAYoAAkAVwBFAE8CHgBzCBwAWADDAL8JGgkcAL4JEQkTCRUAZgkXAHQAWQEzCR8JFAVlAGcAaQBuAFoJHAkbALsH4QEBCSAJFggcAFoISgkHAEgAZQBpAGcAaAf3CPYJMgkoCTsJKwklARUAIAknAE8JKQkrCRkJGwkbALoAwwC2BhwABQBXB/EJDQAAABsAAA==' data = frombase64(d) print('Where do you want to extract pls?') dir = read() if dir:sub(1,1) ~= '/' then dir = '/'..fs.getDir(shell.getRunningProgram())..'/'..dir end fs.delete(dir) local i = 1 local path = '' while i <= #data do local c = data:byte(i) if c == 0 then i = i + 1 local l = data:byte(i) path = dir..'/'..data:sub(i + 1, i + l) i = i + l + 1 elseif c == 1 then i = i + 3 local l = data:byte(i - 2) * 65536 + data:byte(i - 1) * 256 + data:byte(i) local f = fs.open(path, 'w') f.write(lzw_decode(data:sub(i + 1, i + l))) f.close() i = i + l + 1 elseif c == 2 then fs.makeDir(path) i = i + 1 end end print('Extraced to '..dir..'.')
Add Comment
Please, Sign In to add comment