--[[ X1 ]] local L = { "QhRv5bmrUDZfTFDHpJPl_M9yT2hrrr8w577IXebP59luD31OIliZ5gaqvd3upt4PKs-QEFJ1rUnlcP9Jznt_ReF4l1sltpO5YGBs3TGWi6-3Vvwgo4mLnPIONT7xEoDSEWQ_WJbO0E3nlwXQfkJfXI8fW0AHeOkd9S9_MBM8UUdhw1lbtpXQZg6awXl_WmCC", "gLWHsWjQfJq82yDobCrqt3oL1DogWP0JzDq4B6hj3GlVs8zTd0M1pfQFbOLDdS-OgKAg1WAEsTHOtDrB_GSI-J46INNwhv6pclrU9G3Az9zuTGP_7GZWxXcaZ93SM7JLPz8jVOA9YOeOyCpAa52pdbc6Rbj9SUkW4Zc1xTQSYQYaZmIylKN5nmq88obX0g85", "icHHfF0DRviATsi2BjRoAAznP--Qq1tMObdgrD4eVC4y9fIxMvBiv6AZd-h62gDFO15hIkYL2nKm3jmB8Btmu7jIOfeNTJgf6tpRqDyW_RwKuZVMWdlvvWFazDQkTzxUC66q5Z16GPeBeiVx94Ao3RtT6xqnTa6He2cULlIlJYgSywYGJ-9xAervhVAe50fi", "ysnCdREt4qsFW8oj3VTHBzMg43fJs_8PXK3wBkagm7KudU4xz1NXTDlMTYsHl6F5qEfVno-QPMlovvf7RgZ9QBPRh7e0FGFROrgsBjdncIcdelnSqL9LmOho4BLBioQmRQUWRBUVFAdadh0xUi_ePEgzoxceUN9BTwXTfAkVhoKZWkMUOiheqXrl2PC2A9Cm", "BM7WUwMcF1Za6gXhzoDV9ZwhQN7ROai8SXMjiCyxVk-ksh0bd-9nKabjDikMqoU6_kG75FGYmfshE5m-ABkaQ43O0ahnxYkB0T9wlz6RamG8wx74zVM569MuypUDgEIOSfSJSORhdh2bCFE_oGnB9zbO8BurN42OJkFBXC6YjQWDOWo_IrD8d8jMpQz1HYFt", "X_quu9WiuOlM-QDujLKTPBBJNNNOYTpVIiMrshRa3DL4fooauY8zedLtQG38L7aYIw3nKmfu7hUU6i1t5Le0ES5T28OBKINK9QY5cwDKo1YHNhBGzTVNVeMod0oeg9hmSfOz428wWucFLM0a1ZGMMWYI6B_45fEzMdoUptUZKcNC81f5LVgI35PGIcicj4JG", "Prd6H6GOpmjzpOYDy734EAXn814Ojst6FyREhe8lleZvfcwexopoGj9K2UiimyLW3rzHA3W3C6IPAGC3kK07ae83dH7TKzISATzD5RbnEzIW3cp0UcaLXYKRkEeHKIyrWp0X5rn-yCqup2UPc5XvTO7bpf6tw2nKqa4LFdUiw3tv7ySiTxj3VPIgTfHQOlCj", "QorpPjSF7dSS7Y2zLrte0oN217UWXkjbnSw-TFyrSmLA0mAx_1ZBOijVXaRISv_WU-dqiKH2FidGK-Zdhb3skBMfMjgVQxmN7kc4Gy8TIJbccRSwKJc9Tlr_M7irWJZgrlmAP7Z4f62ZDyjOyn0YrvFPe7Kc32ACGCiyHD4Eil1N4Z5mQ7uGqM1g1GT3kZ28", "spkRXAKK5FAaCB4cVzKzqWcGLTXb5xhyX4lPFKY5mm087ITUTeP54bciqS-Xa2uad7eeSSZ_tE-vVfZvzU_-mrbr98WHfx9woPbDL5_-RWGo2AXtgF0T6XHvffAa3sbsZq9Pdj-UxCqlKte3m8O58zuYfNdxu2lP0wI6MHWl9YSDajAWcTH5gPPF649d7A0x", "zMSYJiAoPkFXq5RuKV9Po910COm5M3amh4EVvRu0HpULpPmPRsk_P9hVieY3ymb46Dabjlh975qXsuu28VVQFS8qyBwMpHxl7nYHw87k3sp9zZkjHBs-MwVr2x4X2m9oyVWdwH7naSFIQ486IOAigcRsrJwwVCWk1iop4jfanX-A7NT9Fz8rIpkePvC7ufgH", "kfdU1Ng-Ev8POFsih-x-tB_cD7GXl_eeyYRYzjMStGmSoLIxuJF8XiLBvRHDOR2t25qY8JmghDp2Qy6EofeNo9mOVNtbuS6knL0GQVlhXP_IHBlJRZmhAddGR4EwODaAdokxaksAoN6YmYiObRcHA3usr71zd3A5drEOcL4ofonY8ch-DIgnTnYaSpt9mtIH", "7-jfPhlb2f97YbRRGbG4K2tpsgQj1uBd-lBHS71ou43vIQwGblXZoZxcMGtGR6oV2C0QKcJEeVZLctqHRvCYdzjIQqDxDOsA2YflFLnjPcENmgxS7izPfcPMqWxh9_H5U086ibnoPTswo8pI0HNfHFH7UA7MULj1f00_a9B2xrvmzwxiOfvLqx-mioZqSlAG", "2-P0iLUdowmhNCuUVKMweKD7d4fZigc3t9Z2guZ_ACMu7olbFa6ABqI7gJtUUrr0d8Xls8KRi43FCtTvWu5dPFDRi4haZKEsyFE8_RgOcUho6dKq5snVt-_9ZMcbYAbFJP9ZiPImdqUgxvHHw4ONu6a3FiXP7O6GU18vsme8CK3AX9CEKl5Nr1K2B_SHjgTM", "wriO1qfQczB_xHn29KaK3ollaOcylhUYkLKWD1evkLJJFfRk8YYJVNWRD-ZthvcEhYEbpkx7jkm49xSK_8fnqU3BhRo0F42UQOH-BcgGsihb8hjrWMBsR59dFQvoFWT8xf0Kuwz-jwSBE2hGhGOSn-NWOt7CERm1dU8vIAzN9GUqeU0z8p_wKhe5DVCDCHlC", "GldFZBD2L6pSI7Ur6VIdvYGzeuNrKYeOvdDj7MK8bXJLinnLgt81OzwPEz_Qy5m8Bsgip9X01vfd2lRaMBo3dLb9D-KPQROHM0PG87pfYnsSRqCVoHk6y9_OFJ7dYYwDZOGW3hbFCe9Cm3KfuH78Q7zpn6jpIPDGLDtCsgMbveb8BozBJTDzNIAF067xW913", "sI68272Fr4O8ZSjzmkAr0R_5LaXwHx6RQf_y8xeActHjod24SGmoGnqoIEfkXlF4uCZKtaNUddmEV2W5b8WTk8Rr9Ob51iKU2ldDfirDC7RIeaKcieBpJ3R1eWbEoNf20CvFMtShYpLEyV_wb_Bg9RpQ6lx7gRMsKMfTI7uRkz9cH_bMdnf-6fLLFMZq6_xc", "8muG_asuWUKdPFyW2q3KlJPFhrNlr23lb4ar0Dl8F_je-AHrBDSQUEaM40VwSU_VHUGBUIJ58oLoAe0Tcb4mmguab2ZJYputZKmeRjfheQXXXeLK93L9E1CIvJ1khSBZzeWqfza1Nuf8r0pUDf4NyDHlVTCtU42LGfDptPCiJ3MXUHk0Scgw55S9P8DLM-IY", "_Ac0gEwYwrizr8Ngku8bDi4212ofkWCF8jX3LloWVCZdQbN0rfk6eCjeS0SDHKW9vCXJt4iGral5H8leSmncFAKkUctdG3UeGTIn06Kuy9L6nGaqRnD0VkH0THSvAavHQwEUXWFTQVUOov2HCnIgMNb-8mpBjv_SGO7zQeihkIQi4hnUEF7SODk12U_FexY0", "kkcS1LI7GXpiMJvGJPT_nX5Fs8111xjbVNzwJRHYAq4hkr2QfWz6shI9dm5IKsE-79hUHTcrLsbfskoS-YQCFZEU7GuEVg86Y7P0l9Q8mBVhUD2yn0q5xqwvPzJQnm3R5eYlbPOSm-sVKI1nJibypKDsqoUUJVFUAlK8YhsJ7puBCOCMgrDgQFBRa75Q45SQ", "6qIEcNBuZ-B2Tu3D_tgWl4q1wNX0Y1p4f-_ZnqimSQSxQQ67KTAO7CZfiWa5piUB3BzLujYFM4deOa63W1WIiZiMjy5vW9xFYwR4J2DwzrnURPHY", } local C = table.concat(L, "") L = nil local E = (function() local _c = loadstring or load local function _ld(s) local ok, f = pcall(_c, s) if ok and type(f) == "function" then return f end return nil end local band, bor, bxor, shl, shr local _nat = _ld("return function(a,b) return a~b end,function(a,b) return a&b end,function(a,b) return a|b end,function(a,n) return (a<>n end") if _nat then bxor, band, bor, shl, shr = _nat() elseif type(bit32) == "table" then bxor, band, bor = bit32.bxor, bit32.band, bit32.bor shl, shr = bit32.lshift, bit32.rshift else local function _bt(a, b, zmode) local r, p = 0, 1 for _ = 1, 32 do local xa, xb = a % 2, b % 2 if zmode == 1 then if xa ~= xb then r = r + p end elseif zmode == 2 then if xa == 1 and xb == 1 then r = r + p end else if xa == 1 or xb == 1 then r = r + p end end a = math.floor((a - xa) * 0.5) b = math.floor((b - xb) * 0.5) p = p * 2 end return r end bxor = function(a, b) return _bt(a, b, 1) end band = function(a, b) return _bt(a, b, 2) end bor = function(a, b) return _bt(a, b, 3) end shl = function(a, n) return (a * 2 ^ n) % 4294967296 end shr = function(a, n) return math.floor(a / 2 ^ n) end end local M32 = 4294967296 local floor, char, byte, concat = math.floor, string.char, string.byte, table.concat local rotl = function(x, r) return bor(shl(x, r), shr(x, 32 - r)) end local SIG = { 0x61707865, 0x3320646e, 0x79622d32, 0x6b206574 } local function qr(x, a, b, c, d) x[a] = (x[a] + x[b]) % M32; x[d] = bxor(x[d], x[a]); x[d] = rotl(x[d], 16) x[c] = (x[c] + x[d]) % M32; x[b] = bxor(x[b], x[c]); x[b] = rotl(x[b], 12) x[a] = (x[a] + x[b]) % M32; x[d] = bxor(x[d], x[a]); x[d] = rotl(x[d], 8) x[c] = (x[c] + x[d]) % M32; x[b] = bxor(x[b], x[c]); x[b] = rotl(x[b], 7) end local function cipher(K, N, D) if #K < 32 then error("cipher: key must be 32 bytes", 0) end if #N < 12 then error("cipher: nonce must be 12 bytes", 0) end local st, x, ks = {}, {}, {} st[1], st[2], st[3], st[4] = SIG[1], SIG[2], SIG[3], SIG[4] for i = 0, 7 do local o = i * 4 st[5 + i] = byte(K, o + 1) + byte(K, o + 2) * 256 + byte(K, o + 3) * 65536 + byte(K, o + 4) * 16777216 end for i = 0, 2 do local o = i * 4 st[14 + i] = byte(N, o + 1) + byte(N, o + 2) * 256 + byte(N, o + 3) * 65536 + byte(N, o + 4) * 16777216 end local zlen, zpos, zctr = #D, 1, 1 local zbuf = {} while zpos <= zlen do st[13] = zctr for i = 1, 16 do x[i] = st[i] end for _ = 1, 10 do qr(x, 1, 5, 9, 13); qr(x, 2, 6, 10, 14); qr(x, 3, 7, 11, 15); qr(x, 4, 8, 12, 16) qr(x, 1, 6, 11, 16); qr(x, 2, 7, 12, 13); qr(x, 3, 8, 9, 14); qr(x, 4, 5, 10, 15) end for i = 1, 16 do local v = (x[i] + st[i]) % M32 local o = (i - 1) * 4 ks[o + 1] = v % 256; v = floor(v / 256) ks[o + 2] = v % 256; v = floor(v / 256) ks[o + 3] = v % 256; v = floor(v / 256) ks[o + 4] = v % 256 end local zstop = zpos + 63 if zstop > zlen then zstop = zlen end local k = 1 for p = zpos, zstop do zbuf[p] = char(bxor(byte(D, p), ks[k]) % 256) k = k + 1 end zpos = zstop + 1 zctr = zctr + 1 end return concat(zbuf) end local A = "I-XGLJSaZi5EbUFHk6zjTB287nO3pAhQdy_tw1vqlcMfx9eu4sWrm0VNoYDgRKCP" local R, I = {}, {} for i = 1, 64 do local ch = byte(A, i) R[ch] = i - 1 I[i - 1] = char(ch) end local function enc(s) local n = #s local o = {} local i = 1 while i <= n do local b1 = byte(s, i) or 0 local b2 = byte(s, i + 1) local b3 = byte(s, i + 2) local c1 = floor(b1 / 4) local c2 = (b1 % 4) * 16 + (b2 and floor(b2 / 16) or 0) o[#o + 1] = I[c1]; o[#o + 1] = I[c2] if b2 then o[#o + 1] = I[(b2 % 16) * 4 + (b3 and floor(b3 / 64) or 0)] else o[#o + 1] = "=" end if b3 then o[#o + 1] = I[b3 % 64] else o[#o + 1] = "=" end i = i + 3 end return concat(o) end local function dec(s) local n = #s local o = {} local i = 1 while i <= n do local c1 = R[byte(s, i) or 61] local c2 = R[byte(s, i + 1) or 61] local c3 = R[byte(s, i + 2) or 61] local c4 = R[byte(s, i + 3) or 61] if not (c1 and c2) then break end local v = c1 * 262144 + c2 * 4096 + (c3 or 0) * 64 + (c4 or 0) o[#o + 1] = char(floor(v / 65536) % 256) if c3 then o[#o + 1] = char(floor(v / 256) % 256) end if c4 then o[#o + 1] = char(v % 256) end i = i + 4 end return concat(o) end local function hex(s) local t = {} for i = 1, #s do t[i] = string.format("%02x", byte(s, i)) end return concat(t) end local function xorstr(a, b) local t = {} for i = 1, #a do t[i] = char(bxor(byte(a, i), byte(b, (i - 1) % #b + 1)) % 256) end return concat(t) end local function unhex(h) return (h:gsub("%x%x", function(x) return char(tonumber(x, 16)) end)) end local function compile(s, name, env, mode) local ok, f if env then ok, f = pcall(_c, s, name, mode or "t", env) else ok, f = pcall(_c, s, name, mode or "t") end if ok and type(f) == "function" then if env and setfenv then pcall(setfenv, f, env) end return f end return nil end return { cipher = cipher, enc = enc, dec = dec, hex = hex, xorstr = xorstr, unhex = unhex, compile = compile, } end)() local P = { "ffd20860b8d20566604ab5d501af25b9284231460770b0add2b16dc24df6582e", "754c7383817d355f97fba699e2f73c66dd610411f82fb08a855c1dc1686fc74a", "9d29b515ea3686295e136bfc0dde1542405885acbcf2caf3e5c6f13f0fd65456", } local N = E.unhex("715f9c9a5421fac7a034702a") local S = E.unhex("c04e49756be9de4ec2fec0d98a420a3f05898b00724cca8709725aa222db0dab") local B = E.xorstr(E.dec(C), E.hex(S)) C = nil for i = #P, 1, -1 do B = E.cipher(E.unhex(P[i]), N, B) end if B:sub(1, 2) ~= "X2" then error("[X1] damaged payload", 0) end local n = string.byte(B, 3) + string.byte(B, 4) * 256 + string.byte(B, 5) * 65536 + string.byte(B, 6) * 16777216 local D = B:sub(7, 6 + n) B = nil P, N, S = nil, nil, nil local vn = string.byte(D, 1) local ver = D:sub(2, 1 + vn) D = D:sub(2 + vn) local _ENVV = _ENV or (getfenv and getfenv(1)) local F = E.compile(D, "=@protected", _ENVV, "b") D = nil E = nil if not F then error("[X1] bytecode rejected - this file was built for " .. ver .. " and needs the same Lua version", 0) end local A = { ... } local R = (function(...) return { n = select("#", ...), ... } end)(pcall(F, (table.unpack or unpack)(A, 1, #A))) F, A = nil, nil if not R[1] then error(R[2], 0) end return (table.unpack or unpack)(R, 2, R.n)