From daa0ba3c024da8db63a78b3ea55a4ab2bd5d9af4 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sat, 24 Jan 2026 18:55:46 +0000 Subject: [PATCH] Revert to version 81b02a1 --- assets/js/main.js | 31 ++--- index.php | 14 ++- process.php | 288 +++++++++++++++++++++++---------------------- protected_v3_2.lua | 2 + protected_v6_0.lua | 4 +- test_v11_0.php | 52 ++++++++ test_v3_2.php | 45 +++++++ test_v6_0.php | 61 +++++++--- 8 files changed, 311 insertions(+), 186 deletions(-) create mode 100644 protected_v3_2.lua create mode 100644 test_v11_0.php create mode 100644 test_v3_2.php diff --git a/assets/js/main.js b/assets/js/main.js index 87b0ec2..dd6eaa6 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -29,32 +29,25 @@ document.addEventListener('DOMContentLoaded', () => { protectBtn.style.opacity = '0.5'; terminal.innerHTML = ''; - log(`INITIALIZING LUARTEX EXTREME KERNEL v3.5-DELTA`, 'info'); + log(`INITIALIZING LUARTEX V11.0 QUANTUM SINGULARITY ENGINE`, 'info'); await sleep(300); - log(`TARGET: ROBLOX / LUAU ENVIRONMENT`, 'info'); + log(`PROTOCOL: ILD (LINKED INSTRUCTION DISPATCHING)`, 'info'); await sleep(400); - log(`MAPPING: Randomized Opcode IDs (100-255)...`, 'info'); + log(`QUANTUM: Synchronizing State-Hash with Environment Entropy...`, 'info'); await sleep(400); - log(`ENCRYPTION: 4-Key XOR Rotation on Constants...`, 'info'); + log(`MIRROR: Deploying Deceptive Logic Reality Paths...`, 'info'); await sleep(400); - log(`VIRTUALIZATION: Register-based Dispatcher...`, 'info'); + log(`SINGULARITY: Collapsing Constant Space into Transient Synthesis...`, 'info'); await sleep(300); - log(`VIRTUALIZATION: Dot-Syntax Global Resolver...`, 'info'); + log(`TRAP: Arming Quantum Observation Detectors...`, 'info'); await sleep(300); - log(`SECURITY: Interleaving Anti-Hook Integrity Guards...`, 'info'); + log(`NEURAL: Mapping Opcode Meaning to Execution History...`, 'info'); await sleep(400); - log(`SECURITY: Real-time tick() Timing Verification...`, 'info'); + log(`SPAGHETTI: Shuffling Instruction Topology...`, 'info'); await sleep(300); - log(`SECURITY: debug.info Native Source Checks...`, 'info'); - await sleep(200); - log(`SECURITY: Anti-Tamper State Synchronization...`, 'info'); - await sleep(200); - - log(`STRENGTHENING: Injecting Junk Opcodes...`, 'info'); - await sleep(100); try { const response = await fetch('process.php', { @@ -68,9 +61,9 @@ document.addEventListener('DOMContentLoaded', () => { if (data.success) { await sleep(500); outputArea.value = data.protected_code; - log(`SUCCESS: VM Locked. Final Size: ${data.stats.protected_size}b`, 'success'); - log(`VM Status: ULTRA-SECURE | Environment: DELTA COMPATIBLE`, 'success'); - log(`Watermark: "ts was obfuscated by Luartex V3.2" injected.`, 'info'); + log(`SUCCESS: Luartex V11.0 Quantum Singularity VM Online.`, 'success'); + log(`Traceability: ZERO | Observation Resistance: ABSOLUTE`, 'success'); + log(`Topology: SPAGHETTI-LINKED | Seed: ${data.stats.seed}`, 'success'); } else { log(`CRITICAL ERROR: ${data.error}`, 'warn'); } @@ -86,7 +79,7 @@ document.addEventListener('DOMContentLoaded', () => { if (!outputArea.value) return; navigator.clipboard.writeText(outputArea.value); const originalText = copyBtn.textContent; - copyBtn.textContent = 'LOCKED & COPIED'; + copyBtn.textContent = 'COPIED'; setTimeout(() => copyBtn.textContent = originalText, 2000); }); }); \ No newline at end of file diff --git a/index.php b/index.php index 57db4e9..b7b6c7d 100644 --- a/index.php +++ b/index.php @@ -1,6 +1,6 @@ @@ -23,13 +23,13 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Enterprise Luau Obfusc
-

Protect your Luau scripts.

-

Luartex utilizes a proprietary custom VM architecture to transform your scripts into secure, encrypted bytecode that is resistant to reverse-engineering. Optimized for Roblox Executors.

+

The Untraceable Luau Engine.

+

Luartex V11.0 introduces the Quantum Singularity Engine: Linked Instruction Dispatching (ILD), Transient Constant Synthesis, and Observation-Aware Branching. Designed to make runtime analysis physically impossible.

@@ -54,11 +54,13 @@ print('Hello Luartex!')">
- +
-
[SYSTEM] Hyperion V10.0 Engine Initialized. Dynamic Instruction Polymorphism (DIP) & Seed Evolution Active.
+
[SYSTEM] Luartex V11.0 Quantum Singularity Engine Online.
+
[SYSTEM] Linked Instruction Dispatching (ILD) Active.
+
[SECURITY] Quantum Observation Trap (Anti-Trace) Armed.
diff --git a/process.php b/process.php index 56456f5..77552f5 100644 --- a/process.php +++ b/process.php @@ -15,27 +15,23 @@ if (!$input || empty($input['code'])) { $code = $input['code']; /** - * Hyperion V10.0 - Dynamic Instruction Polymorphism - * Features: - * - Dynamic Opcode Mapping (Seed-based) - * - Operand Permutation (A, B, C swap roles) - * - Instruction Ghosting & Seed Evolution - * - Semantic Flattening & Environmental Entanglement (inherited) + * Luartex V11.0 - Quantum Singularity Engine + * "The final frontier of untraceable execution." */ -class LuartexHyperionV10_0 { +class LuartexV11_0 { private $rawCode; private $constants = []; private $instructions = []; private $keys = []; private $opMap = []; - private $polyKey; private $seed; + private $polyKey; public function __construct($code) { $this->rawCode = $code; - $this->polyKey = rand(50, 200); - $this->seed = rand(1000, 9999); - for ($i = 0; $i < 32; $i++) { + $this->seed = rand(100000, 999999); + $this->polyKey = rand(1, 255); + for ($i = 0; $i < 256; $i++) { $this->keys[] = rand(0, 255); } $this->setupOpcodes(); @@ -48,8 +44,9 @@ class LuartexHyperionV10_0 { 'RETURN', 'GETTABLE', 'SETTABLE', 'NEWTABLE', 'TAMPER_CHECK', 'ENTROPY_SYNC', 'FETCH_ENV', 'RESOLVE_SYMBOL', - 'MUTATE_BYTECODE', 'COMPUTE_PC', - 'MORPH_STATE', 'GHOST_NOP' + 'MUTATE_BYTECODE', 'COMPUTE_JUMP', + 'GHOST_NOP', 'DECEPTIVE_TRAP', + 'JUMP', 'JUMP_IF' ]; shuffle($ops); foreach ($ops as $op) { @@ -57,28 +54,25 @@ class LuartexHyperionV10_0 { } } - private function genVar($len = 24) { - $sets = ['l1Ii', 'O0Q', 'uvvw', 'nmM', 'S5s', 'Z2z', 'B8b', 'g9q']; + private function genVar($len = 12) { + $chars = 'lIi1OQuvwnmMS5zZ2B8bg9q'; $res = '_'; - for($i=0; $i<$len; $i++) { - $set = $sets[array_rand($sets)]; - $res .= $set[rand(0, strlen($set)-1)]; - } - return $res . bin2hex(random_bytes(2)); + for($i=0; $i<$len; $i++) $res .= $chars[rand(0, strlen($chars)-1)]; + return $res; + } + + private function synthesizeChar($char) { + $a = rand(1, 255); + $b = rand(1, 255); + return "(bit32.bxor($char, $a) + $b - $b - $a + $char - $char)"; } private function synthesizeString($s) { $res = []; for ($i = 0; $i < strlen($s); $i++) { - $char = ord($s[$i]); - $a = rand(1, 100); - $b = rand(1, 100); - $op = rand(0, 2); - if ($op == 0) { $x = $char - ($a + $b); $res[] = "($x + $a + $b)"; } - elseif ($op == 1) { $x = $char + ($a - $b); $res[] = "($x - $a + $b)"; } - else { $x = $char ^ $a ^ $b; $res[] = "bit32.bxor($x, $a, $b)"; } + $res[] = "string.char(" . $this->synthesizeChar(ord($s[$i])) . ")"; } - return "function() local r = ''; for _, v in ipairs({" . implode(",", $res) . "}) do r = r .. string.char(v) end return r end"; + return "function() local _ = " . implode(" .. ", $res) . "; return _ end"; } private function addConst($val) { @@ -91,213 +85,225 @@ class LuartexHyperionV10_0 { } private function compile() { - $this->addConst("Hyperion V10.0 - DIP Engine Active"); $cleanCode = preg_replace('/--[[]*.*?[]]*--/s', '', $this->rawCode); $cleanCode = preg_replace('/--.*$/m', '', $cleanCode); - $tokens = preg_split('/[;\n]+/', $cleanCode); + $tokens = preg_split('/[; +]+/', $cleanCode); + $insts = []; foreach ($tokens as $token) { $token = trim($token); if (empty($token)) continue; - // Randomly inject Ghost NOPs to evolve the state - if (rand(0, 5) == 0) { - $this->instructions[] = [$this->opMap['GHOST_NOP'], rand(0,255), rand(0,255), rand(0,255)]; + $insts[] = [$this->opMap['GHOST_NOP'], rand(0,255), rand(0,255), rand(0,255)]; + + if (preg_match('/^(?:local\s+)?([a-zA-Z_]\w*)\s*=\s*{\s*}\s*$/', $token, $m)) { + $insts[] = [$this->opMap['NEWTABLE'], 0, 0, 0]; + $this->emitSetGlobalInto($insts, 0, $m[1]); } - - $this->instructions[] = [$this->opMap['ENTROPY_SYNC'], 0, 0, 0]; - - if (preg_match('/^(?:local\s+)?([a-zA-Z_]\w*)\s*=\s*\{\}$/', $token, $m)) { - $this->instructions[] = [$this->opMap['NEWTABLE'], 0, 0, 0]; - $this->emitSemanticSetGlobal(0, $m[1]); + elseif (preg_match('/^([a-zA-Z_]\w*)\s*\[\s*["\']?(.*?)["\']?\s*\]\s*=\s*(.*)$/', $token, $m)) { + $this->emitTableSetInto($insts, $m[1], $m[2], $m[3]); } - elseif (preg_match('/^([a-zA-Z_]\w*)\s*[.[\]\s*["\']?(.*?)["\\]?\s*[\\]]?\s*=\s*(.*)$/', $token, $m)) { - $this->emitTableSet($m[1], $m[2], $m[3]); - } - elseif (preg_match('/^([a-zA-Z_]\w*(?:[.:]\w*)*)\s*\((.*?)\)$/', $token, $m)) { - $this->emitCall($m[1], $m[2]); + elseif (preg_match('/^([a-zA-Z_]\w*(?:\.\w*)*)\s*\((.*?)\)\s*$/', $token, $m)) { + $this->emitCallInto($insts, $m[1], $m[2]); } elseif (preg_match('/^(?:local\s+)?([a-zA-Z_]\w*)\s*=\s*(.*)$/', $token, $m)) { - $this->emitAssignment($m[1], $m[2]); + $this->emitAssignmentInto($insts, $m[1], $m[2]); } } - $this->instructions[] = [$this->opMap['RETURN'], 0, 0, 0]; + $insts[] = [$this->opMap['RETURN'], 0, 0, 0]; + + $this->instructions = []; + foreach ($insts as $i => $inst) { + $next = ($i < count($insts) - 1) ? 1 : 0; + $this->instructions[] = [$inst[0], $inst[1], $inst[2], $inst[3], $next]; + } } - private function emitSemanticGetGlobal($reg, $name) { - $this->instructions[] = [$this->opMap['FETCH_ENV'], $reg, 0, 0]; + private function emitGetGlobalInto(&$insts, $reg, $name) { + $insts[] = [$this->opMap['FETCH_ENV'], $reg, 0, 0]; foreach (explode('.', $name) as $part) { $kIdx = $this->addConst($this->synthesizeString($part)); - $this->instructions[] = [$this->opMap['LOADK'], 250, $kIdx, 1]; - $this->instructions[] = [$this->opMap['RESOLVE_SYMBOL'], $reg, $reg, 250]; + $insts[] = [$this->opMap['LOADK'], 250, $kIdx, 1]; + $insts[] = [$this->opMap['RESOLVE_SYMBOL'], $reg, $reg, 250]; } } - private function emitSemanticSetGlobal($reg, $name) { - $this->instructions[] = [$this->opMap['FETCH_ENV'], 251, 0, 0]; + private function emitSetGlobalInto(&$insts, $reg, $name) { + $insts[] = [$this->opMap['FETCH_ENV'], 251, 0, 0]; $kIdx = $this->addConst($this->synthesizeString($name)); - $this->instructions[] = [$this->opMap['LOADK'], 252, $kIdx, 1]; - $this->instructions[] = [$this->opMap['SETTABLE'], 251, 252, $reg]; + $insts[] = [$this->opMap['LOADK'], 252, $kIdx, 1]; + $insts[] = [$this->opMap['SETTABLE'], 251, 252, $reg]; } - private function emitTableSet($tableName, $key, $val) { - $this->emitSemanticGetGlobal(0, $tableName); + private function emitTableSetInto(&$insts, $tableName, $key, $val) { + $this->emitGetGlobalInto($insts, 0, $tableName); $kIdx = $this->addConst($this->synthesizeString($key)); - $this->instructions[] = [$this->opMap['LOADK'], 1, $kIdx, 1]; + $insts[] = [$this->opMap['LOADK'], 1, $kIdx, 1]; $val = trim($val); $vReg = 2; - if (preg_match('/^["\\](.*)["\\]$/', $val, $vm)) { + if (preg_match('/^["\'](.*?)["\']$/', $val, $vm)) { $vIdx = $this->addConst($this->synthesizeString($vm[1])); - $this->instructions[] = [$this->opMap['LOADK'], $vReg, $vIdx, 1]; + $insts[] = [$this->opMap['LOADK'], $vReg, $vIdx, 1]; } elseif (is_numeric($val)) { $vIdx = $this->addConst($val); - $this->instructions[] = [$this->opMap['LOADK'], $vReg, $vIdx, 0]; + $insts[] = [$this->opMap['LOADK'], $vReg, $vIdx, 0]; } else { - $this->emitSemanticGetGlobal($vReg, $val); + $this->emitGetGlobalInto($insts, $vReg, $val); } - $this->instructions[] = [$this->opMap['SETTABLE'], 0, 1, $vReg]; + $insts[] = [$this->opMap['SETTABLE'], 0, 1, $vReg]; } - private function emitCall($funcName, $argStr) { - $this->emitSemanticGetGlobal(0, $funcName); + private function emitCallInto(&$insts, $funcName, $argStr) { + $this->emitGetGlobalInto($insts, 0, $funcName); $args = []; if (!empty(trim($argStr))) { foreach (explode(',', $argStr) as $idx => $arg) { $arg = trim($arg); $rIdx = $idx + 1; - if (preg_match('/^["\\](.*)["\\]$/', $arg, $m)) { + if (preg_match('/^["\'](.*?)["\']$/', $arg, $m)) { $vIdx = $this->addConst($this->synthesizeString($m[1])); - $this->instructions[] = [$this->opMap['LOADK'], $rIdx, $vIdx, 1]; + $insts[] = [$this->opMap['LOADK'], $rIdx, $vIdx, 1]; } elseif (is_numeric($arg)) { $vIdx = $this->addConst($arg); - $this->instructions[] = [$this->opMap['LOADK'], $rIdx, $vIdx, 0]; + $insts[] = [$this->opMap['LOADK'], $rIdx, $vIdx, 0]; } else { - $this->emitSemanticGetGlobal($rIdx, $arg); + $this->emitGetGlobalInto($insts, $rIdx, $arg); } $args[] = $rIdx; } } - $this->instructions[] = [$this->opMap['CALL'], 0, count($args), 0]; + $insts[] = [$this->opMap['CALL'], 0, count($args), 0]; } - private function emitAssignment($var, $val) { + private function emitAssignmentInto(&$insts, $var, $val) { $val = trim($val); - if (preg_match('/^["\\](.*)["\\]$/', $val, $m)) { + if (preg_match('/^["\'](.*?)["\']$/', $val, $m)) { $vIdx = $this->addConst($this->synthesizeString($m[1])); - $this->instructions[] = [$this->opMap['LOADK'], 0, $vIdx, 1]; + $insts[] = [$this->opMap['LOADK'], 0, $vIdx, 1]; } elseif (is_numeric($val)) { $vIdx = $this->addConst($val); - $this->instructions[] = [$this->opMap['LOADK'], 0, $vIdx, 0]; + $insts[] = [$this->opMap['LOADK'], 0, $vIdx, 0]; } else { - $this->emitSemanticGetGlobal(0, $val); + $this->emitGetGlobalInto($insts, 0, $val); } - $this->emitSemanticSetGlobal(0, $var); + $this->emitSetGlobalInto($insts, 0, $var); } - private function serializeAll() { - $bin = pack("N", count($this->instructions)); - foreach ($this->instructions as $pc_idx => $inst) { - $pc = $pc_idx + 1; - $op = (int)$inst[0]; - $mask = ($this->polyKey + $pc) % 256; - $bin .= chr($op ^ $mask); - $bin .= chr((int)$inst[1] & 0xFF); - $bin .= pack("n", (int)$inst[2]); - $bin .= chr((int)$inst[3] & 0xFF); + private function serialize() { + $data = pack("N", count($this->instructions)); + $data .= pack("N", count($this->constants)); + + foreach ($this->instructions as $idx => $inst) { + $pc = $idx + 1; + $data .= chr((int)$inst[0] ^ (($this->polyKey + $pc) % 256)); + $data .= chr((int)$inst[1] ^ (($pc * 17) % 256)); + $data .= pack("n", (int)$inst[2] ^ (($pc * 31) % 65535)); + $data .= chr((int)$inst[3] ^ (($pc * 7) % 256)); + $data .= chr((int)$inst[4] ^ (($pc * 13) % 256)); } - $bin .= pack("N", count($this->constants)); + foreach ($this->constants as $c) { $t = is_string($c) ? 1 : (is_numeric($c) ? 2 : 0); - $bin .= chr($t); + $data .= chr($t); $s = (string)$c; - $bin .= pack("N", strlen($s)) . $s; + $data .= pack("N", strlen($s)) . $s; } - $keyLen = count($this->keys); $enc = ""; - for ($i = 0; $i < strlen($bin); $i++) { - $enc .= chr(ord($bin[$i]) ^ $this->keys[$i % $keyLen] ^ (($i * 31) % 256)); + + $keyLen = count($this->keys); $res = ""; + for ($i = 0; $i < strlen($data); $i++) { + $res .= chr(ord($data[$i]) ^ $this->keys[$i % $keyLen] ^ (($i * 97) % 256)); } - return bin2hex($enc); + return bin2hex($res); } public function build() { $this->compile(); - $vars = []; - foreach(['k','b','e','f','d','c','v','stack','asm','poly','handlers','tamper','watchdog','fetch','tk','entropy','pc','rolling','inst','op','a','b_p','c_p','res','env','hash','sym','prev_op','state_hash','ctx','seed','morph','perm'] as $v) { - $vars[$v] = $this->genVar(); + $v = []; + foreach(['k','b','e','f','d','c','v','stack','handlers','entropy','ptr','rolling','seed','poison','next_ptr','state','quantum','mirror','reality','obfuscated_op','h_idx'] as $var) { + $v[$var] = $this->genVar(); } + $k_str = implode(",", $this->keys); - $lua = "-- [[ Hyperion Engine V10.0 - DIP ]] --\n"; - $lua .= "local " . $vars['k'] . " = { " . $k_str . " }; "; - $lua .= "local " . $vars['b'] . " = \"" . $this->serializeAll() . "\"; "; - $lua .= "local " . $vars['e'] . " = (getgenv and getgenv()) or (getfenv and getfenv(0)) or _G; "; + $lua = "-- [[ Luartex V11.0 | Quantum Singularity | https://discord.gg/GpucUKeCtF ]] --\n"; + $lua .= "local " . $v['k'] . " = { " . $k_str . " }; "; + $lua .= "local " . $v['b'] . " = \"" . $this->serialize() . "\"; "; + $lua .= "local " . $v['e'] . " = (getgenv and getgenv()) or (getfenv and getfenv(0)) or _G; "; $lua .= "local function _H(h) local b = {}; for i = 1, #h, 2 do b[#b+1] = tonumber(h:sub(i, i+1), 16) end return b end; "; - $lua .= "local function _D(b) local o = {}; for i = 1, #b do local k = ((i - 1) % 32) + 1; o[i] = bit32.bxor(b[i], " . $vars['k'] . "[k], ((i - 1) * 31) % 256) end return o end; "; - $lua .= "local " . $vars['d'] . " = _D(_H(" . $vars['b'] . ")); "; + $lua .= "local function _D(b) local o = {}; for i = 1, #b do local k = " . $v['k'] . "[((i-1)%#" . $v['k'] . ")+1]; o[i] = bit32.bxor(b[i], k, ((i-1)*97)%256) end return o end; "; + $lua .= "local " . $v['d'] . " = _D(_H(" . $v['b'] . ")); "; - $lua .= "local function " . $vars['entropy'] . "() return bit32.bxor(math.floor(os.clock() * 1000) % 65536, collectgarbage('count') % 256, 0x1337) end; "; $lua .= "local function _R32(b, p) return b[p]*16777216 + b[p+1]*65536 + b[p+2]*256 + b[p+3] end; "; $lua .= "local function _R16(b, p) return b[p]*256 + b[p+1] end; "; - $lua .= "local ic = _R32(" . $vars['d'] . ", 1); local co = 5 + ic * 5; local cc = _R32(" . $vars['d'] . ", co); "; - $lua .= "local " . $vars['c'] . " = {}; local cu = co + 4; "; - $lua .= "for i = 1, cc do local t = " . $vars['d'] . "[cu]; cu = cu + 1; if t > 0 then local l = _R32(" . $vars['d'] . ", cu); cu = cu + 4; local s = ''; for j = 1, l do s = s .. string.char(" . $vars['d'] . "[cu]); cu = cu + 1 end; if t == 2 then " . $vars['c'] . "[i] = tonumber(s) else " . $vars['c'] . "[i] = s end else cu = cu + 1 end end; "; + $lua .= "local ic = _R32(" . $v['d'] . ", 1); local cc = _R32(" . $v['d'] . ", 5); "; + $lua .= "local " . $v['c'] . " = {}; local cu = 9 + ic*6; "; + $lua .= "for i = 1, cc do local t = " . $v['d'] . "[cu]; cu = cu + 1; if t > 0 then local l = _R32(" . $v['d'] . ", cu); cu = cu + 4; local s = ''; for j = 1, l do s = s .. string.char(" . $v['d'] . "[cu]); cu = cu + 1 end; if t == 2 then " . $v['c'] . "[i] = tonumber(s) else " . $v['c'] . "[i] = s end else cu = cu + 1 end end; "; - $lua .= "local " . $vars['fetch'] . " = function(p) local o = 5 + (p - 1) * 5; return " . $vars['d'] . "[o], " . $vars['d'] . "[o+1], _R16(" . $vars['d'] . ", o+2), " . $vars['d'] . "[o+4] end; "; + $lua .= "local " . $v['v'] . " = function() "; + $lua .= "local " . $v['stack'] . " = {}; local " . $v['ptr'] . " = 1; local " . $v['seed'] . " = " . $this->seed . "; "; + $lua .= "local " . $v['rolling'] . " = " . $this->polyKey . "; local " . $v['poison'] . " = 0; "; + $lua .= "local " . $v['handlers'] . " = {}; "; - $lua .= "local " . $vars['v'] . " = function() "; - $lua .= "local " . $vars['stack'] . " = {}; local " . $vars['pc'] . " = 1; local " . $vars['seed'] . " = " . $this->seed . "; "; - $lua .= "local " . $vars['rolling'] . " = " . $vars['entropy'] . "(); local " . $vars['handlers'] . " = {}; "; - - // Morphing Function - $lua .= "local function " . $vars['morph'] . "(op, seed, pc) return bit32.bxor(op, bit32.band(seed, 0xFF), bit32.band(pc, 0xFF)) % 256 end; "; - - // Dynamic Handler Population + $lua .= "local function " . $v['quantum'] . "() local t1 = os.clock(); for i=1,1000 do end; return (os.clock()-t1) > 0.01 end; "; + foreach ($this->opMap as $name => $val) { - $lua .= $vars['handlers'] . "[" . $val . "] = function(a, b, c) "; + $lua .= $v['handlers'] . "[" . $val . "] = function(a, b, c) "; + $lua .= "if " . $v['poison'] . " > 0 then a = (a + " . $v['poison'] . ") % 256; if math.random() > 0.9 then return end end; "; switch($name) { - case 'ENTROPY_SYNC': $lua .= $vars['rolling'] . " = bit32.bxor(" . $vars['rolling'] . ", " . $vars['entropy'] . "()); "; break; - case 'FETCH_ENV': $lua .= $vars['stack'] . "[a] = " . $vars['e'] . "; "; break; - case 'RESOLVE_SYMBOL': $lua .= $vars['stack'] . "[a] = " . $vars['stack'] . "[b][" . $vars['stack'] . "[c]]; "; break; - case 'LOADK': $lua .= "local v = " . $vars['c'] . "[b + 1]; if c == 1 then local f = loadstring('return ' .. v); if f then v = f()() end end; " . $vars['stack'] . "[a] = v; "; break; - case 'CALL': $lua .= "local f = " . $vars['stack'] . "[a]; local args = {}; for m = 1, b do args[m] = " . $vars['stack'] . "[a + m] end; if f then f((unpack or table.unpack)(args)) end; "; break; - case 'RETURN': $lua .= $vars['pc'] . " = -1; "; break; - case 'NEWTABLE': $lua .= $vars['stack'] . "[a] = {}; "; break; - case 'SETTABLE': $lua .= $vars['stack'] . "[a][" . $vars['stack'] . "[b]] = " . $vars['stack'] . "[c]; "; break; - case 'ADD': $lua .= $vars['stack'] . "[a] = " . $vars['stack'] . "[b] + " . $vars['stack'] . "[c]; "; break; - case 'MORPH_STATE': $lua .= $vars['seed'] . " = bit32.bxor(" . $vars['seed'] . ", a, b, c); "; break; - case 'GHOST_NOP': $lua .= $vars['seed'] . " = bit32.bxor(" . $vars['seed'] . ", " . $vars['rolling'] . "); "; break; + case 'ENTROPY_SYNC': + $lua .= $v['rolling'] . " = bit32.bxor(" . $v['rolling'] . ", math.floor(os.clock()*1000)%256); "; + break; + case 'FETCH_ENV': $lua .= $v['stack'] . "[a] = " . $v['e'] . "; "; break; + case 'RESOLVE_SYMBOL': $lua .= $v['stack'] . "[a] = " . $v['stack'] . "[b][" . $v['stack'] . "[c]]; "; break; + case 'LOADK': $lua .= "local v = " . $v['c'] . "[b + 1]; if c == 1 then v = v()() end; " . $v['stack'] . "[a] = v; "; break; + case 'CALL': $lua .= "local f = " . $v['stack'] . "[a]; local args = {}; for m = 1, b do args[m] = " . $v['stack'] . "[a+m] end; if f then f((unpack or table.unpack)(args)) end; "; break; + case 'RETURN': $lua .= $v['ptr'] . " = -1; "; break; + case 'NEWTABLE': $lua .= $v['stack'] . "[a] = {}; "; break; + case 'SETTABLE': $lua .= "if " . $v['stack'] . "[a] then " . $v['stack'] . "[a][" . $v['stack'] . "[b]] = " . $v['stack'] . "[c] end; "; break; + case 'ADD': $lua .= $v['stack'] . "[a] = (tonumber(" . $v['stack'] . "[b]) or 0) + (tonumber(" . $v['stack'] . "[c]) or 0); "; break; + case 'MUTATE_BYTECODE': $lua .= "local target = 9 + ((" . $v['ptr'] . " + a) % ic) * 6; " . $v['d'] . "[target] = bit32.bxor(" . $v['d'] . "[target], b); "; break; + case 'GHOST_NOP': $lua .= $v['seed'] . " = bit32.bxor(" . $v['seed'] . ", " . $v['rolling'] . ", a, b, c); "; break; + case 'TAMPER_CHECK': $lua .= "if " . $v['quantum'] . "() then " . $v['poison'] . " = " . $v['poison'] . " + 1 end; "; break; + case 'DECEPTIVE_TRAP': $lua .= "local _ = " . $v['e'] . ".string.rep('DECEIVE', a); "; break; default: break; } - // Evolution of seed after every instruction - $lua .= $vars['seed'] . " = bit32.bxor(" . $vars['seed'] . ", " . $val . ", a or 0) + 1; "; + $lua .= $v['seed'] . " = bit32.bxor(" . $v['seed'] . ", " . $val . ") + 1; "; $lua .= "end; "; } - $lua .= "while " . $vars['pc'] . " > 0 do "; - $lua .= "local raw_op, _a, _b, _c = " . $vars['fetch'] . "(" . $vars['pc'] . "); if not raw_op then break end; "; - $lua .= "local op = bit32.bxor(raw_op, (" . $this->polyKey . " + " . $vars['pc'] . ") % 256); "; + $lua .= "while " . $v['ptr'] . " > 0 do "; + $lua .= "local o = 9 + (" . $v['ptr'] . " - 1) * 6; "; + $lua .= "local _op = bit32.bxor(" . $v['d'] . "[o], (" . $this->polyKey . " + " . $v['ptr'] . ") % 256); "; + $lua .= "local _a = bit32.bxor(" . $v['d'] . "[o+1], (" . $v['ptr'] . " * 17) % 256); "; + $lua .= "local _b = bit32.bxor(_R16(" . $v['d'] . ", o+2), (" . $v['ptr'] . " * 31) % 65535); "; + $lua .= "local _c = bit32.bxor(" . $v['d'] . "[o+4], (" . $v['ptr'] . " * 7) % 256); "; + $lua .= "local _nx = bit32.bxor(" . $v['d'] . "[o+5], (" . $v['ptr'] . " * 13) % 256); "; - // Operand Permutation based on seed - $lua .= "local a, b, c; local " . $vars['perm'] . " = " . $vars['seed'] . " % 3; "; - $lua .= "if " . $vars['perm'] . " == 0 then a,b,c = _a,_b,_c elseif " . $vars['perm'] . " == 1 then a,b,c = _b,_c,_a else a,b,c = _c,_a,_b end; "; + $lua .= "local a, b, c; local p = bit32.bxor(" . $v['seed'] . ", " . $v['ptr'] . ") % 3; "; + $lua .= "if p == 0 then a,b,c = _a,_b,_c elseif p == 1 then a,b,c = _b,_c,_a else a,b,c = _c,_a,_b end; "; - $lua .= "local h = " . $vars['handlers'] . "[op]; if h then h(a, b, c) end; "; - $lua .= "if " . $vars['pc'] . " > 0 then " . $vars['pc'] . " = " . $vars['pc'] . " + 1 end; "; - $lua .= "if " . $vars['pc'] . " % 100 == 0 then if task and task.wait then task.wait() elseif wait then wait() end end; "; + $lua .= "local h = " . $v['handlers'] . "[_op]; if h then h(a, b, c) end; "; + $lua .= "if " . $v['ptr'] . " > 0 then "; + $lua .= "if _nx == 0 then " . $v['ptr'] . " = -1 else " . $v['ptr'] . " = " . $v['ptr'] . " + _nx end; "; $lua .= "end; "; - $lua .= "pcall(" . $vars['v'] . "); "; + $lua .= "if " . $v['ptr'] . " % 50 == 0 then if task and task.wait then task.wait() end end; "; + $lua .= "end; "; + + $lua .= "end; "; + $lua .= "local s, e = pcall(" . $v['v'] . "); if not s and _G.LUARTEX_DEBUG then print('VM Error:', e) end; "; return [ 'success' => true, 'protected_code' => $lua, - 'stats' => ['version' => '10.0-DIP', 'poly_key' => $this->polyKey, 'seed' => $this->seed] + 'stats' => ['version' => 'V11.0 (Quantum Singularity)', 'seed' => $this->seed, 'ILD' => 'Active'] ]; } } try { - $vm = new LuartexHyperionV10_0($code); + $vm = new LuartexV11_0($code); echo json_encode($vm->build()); } catch (Exception $e) { echo json_encode(['success' => false, 'error' => $e->getMessage()]); -} \ No newline at end of file +} diff --git a/protected_v3_2.lua b/protected_v3_2.lua new file mode 100644 index 0000000..3eb6a5f --- /dev/null +++ b/protected_v3_2.lua @@ -0,0 +1,2 @@ +-- [[ Luartex V3.2 | https://discord.gg/GpucUKeCtF ]] -- +local _8q0829QgbnI2imvbbgnQc901 = { 230,11,44,204,212,244,63,139,130,183,196,66,172,35,187,136,39,74,108,87,125,120,83,218,246,88,155,10,154,20,231,12,241,234,224,201,75,248,126,186,49,200,136,40,146,92,173,45,90,149,171,74,37,148,1,55,171,152,82,130,91,74,135,91 }; local _nm0zvMq5Olz0M5Z199m111e9 = "eb1a1dbe333996864b35b00f346a6ac1ca640bd239d1d3feb1799a67d7766ee13d3b773f26b1d7ce2009ab242dee045cb7a665271c256cda2639137a56634db6a7619d81b97eea466b37c1f4c1d692bccadbdd3ad0515a373b46e067d23ca7e13c3babbfddb157b78ef529a3fe627f204b441227a83dc8c5a6b913ef98194eb1ea801d81b987bc476fb6e56a3baa1a444d5a5d3bcac2203732786f66d7bc94e0c63bdbc5cdb0d7362605a925fe1578a0b7449ada28bdc8da52c213ef5648b2b6609b617ab90116d76f36650f492a9245ca1c273a3c507b373bf9e092d63de3e0903951442652adb7d2082ca7ff177eb14d441526d33fc8d85c0a13efd7e182b6eb1a1d5ab97d9646dd4ce51fc0fc1245caa1ab3b30d1da9ec1798b6694bc6ee0c66c2bc42fb06636dc085360051516a110459a26d2cdc8da27399eef56634eb66b9a8e80b9fd16582343047db54fea659ce8f308107c7a645e9a6f15be4997c17d58252d50d456b7dc092b94cf148420b7307c52c65ebcb3c9d73bc6f68f21d58a763df39940b661488dc569aed8321ae67b2b1a59bffa5e4b18f315a4951583554fe2f608d3af58ae219813c63924918571b307059df1e85b10338b39433c9656baefa197d336351b440c61a604f12daba9f54c19713f595fd96802a3489c8f1c49712148d556b7dc092b97cf148420b7377c52c65ebcb3c9d73bc6f68f21d58a763df39940b661488dc569aed8321ae67b2b1a59bffa5e4b18f315a4951583554fe2f608d3af58ae21981dd3353593876dba0a088ffba70f19778076116e8b4be8bdaf97dd65321d5f0b68ef49fa24b8f3ab13103434531b8b7f13a24f80c14e1b342a42b057b7dcc44fd09176f049d82a320e8851a7b9c7d5339df6de6e91cc213de7d60fb6194396932fa8c4322cba3a344843f9a11f094caf47fa9d5fd60b1bfae41283fe1bbe60dd16cd3b66d8d836b215049dffed0a1922de674a62d402eeaeb3979f6e291d1e5723e113a66ceaf6fd0e097d385e4fca2849b5458193140964710a91668eed200988df26b60cd52d6e149a13aaa2c9cb3bdee6da6296da2d2cad994caf7746cbcc2fa5c53237ea667d4810fff417480de80eb9da4082545aa3ec5098f752b26d89579a6171d2d964e8074dd3acdb2639139e301620d51ff3f2ef91d4362a00550463e158b278eafcfa01103735451ba63647a11d878f1c5221254fc3249fa76b40d1cc27aa42cf2b680f9f0fe4fa94813fcfe2d567cbc23a79ee990fb67b4fc4c521ef8a6131b832335d1eb2b2564951ec4ef7d800851c49b4b053c3b917ae29cc4b9b1404a0b7eafc5246debcb349573bc6760f21d50af6bdf399c03661480d4569ae58b21ae6fbab1a593f7a5e4b987315a41595c91109627d069a7786e43c098edf24b2169e6832149a1de5fa958d33c4f6d27f80c23635ac8c4bb66b4f87d62fea8a2372fe7271121de2ee171059a250f7964ed40b12fdec1784e017f1299e11df3e2493846de70e08d9a7fa54192ecf244360984be9e9f3d09371680c5e047de95cbb65afb5b91a42342e4249973a15f75880853d3b514657d722d9bf7d40ca913dad00db2b7946c41dbafa9b9934c8edc328d9993a42ad990bb62f01968c7fa0c36036e220751702e4fa1c1b4aab47fc9d5dd21517b3ad5282e519be71c657d72734979b64ad1f019de5fa120c3fc77b527a834bb1bdb080c4366d4f035526ed48fb31f9e9f358483e281f09c9284bf70cd9d2151b7c64149d7f8fed290485ce27b4009c642d168111e0eb928933c2f6d27e80cb313db98854ba2406c2d63defc86a2ab8736c0309fdfa020c55ba56e48447cd5e52a5f7149fb54fb37b8112cb3924918e70b307059dfaed0a113eda674365965eaebdaa99cf2f6f43540c7bf218bc27b2b4af120162681b1bcf2d4ef710ced90417332d52826599be7146d7d724b7199b64220e8810e8e89f953bc2e4d57696c03a2cb18e5dbd665e8fd626edc87b31f969735848bea81f0a4aa84bf78f5ac81c16f1f7109dff1aed388908df243795976fba161f85e1f60e0b25cf7b43798e4bb1bdb08dc43f6a0d5f113cf304f03da5a9f50f087d7a060ecb3347fa1ddbd310593830158379d5a4665b8dc826a8008672280b880cfce98f953bc2e4db6e9dcb2f3daa9948a36f439ec83df499326eea6a640310fafa060c4cb34bb5d41ad20e15b3bc49c3ff06ed3f8505cc232d809a64ae1f04dfa1ae150b3d8d2e0c3c9e53a8b1a18cca3f6642165723e907a37dfbfbf61a09677a1c1bcb2a57fe11c6cc0d0a65640d916686ef290285ca2cad0c9f6928159e1de3fa9e8033c4f6d2788fc23635ac884fa2664496d43af88a3965fe72715859a5e905151be208a5955dcd1c0ae5e80685e21ea1208941903576808a64e8070693e8a9524b7a81314d2dde0ae8b5f790dd73280b16176ab55fe02beaa9fd5f5e355b373bf94101a2538d9555543f6c0f913bd8bf6845858d35b90090632107ce52bafaf9953399f68a2096826a7ce8cb0ebe3d129fc56bae8a6065f77b2f1a1efffa444f0bf309b0930d895d49f9b20f91b259b829db408b6076ce9736ba4246d9c9da26382989230d2dc202f5f3a990dd7a290c57092fb30aaf65edfce61a563e281764d53a11f75480c1554b302d54c27fccf4311885d235bd11976f3a139a14e4b8cfcd20ddf88136d999322fb38851b6715a9fc522e1992669e26e6e1a1bf1ee061b52ba56e09442c90d0ee0e40b91e607e5298205c8262d8c9f69ab161a9de3fa150b33c47652778042b6b5b389c9366b4f075637e101b271f2f2f15859256905159b6208a515dfd00c177173129d7780eb20058dd227b319976f3a169108e8f186882adbffcf2cdf9f292fafdb05f9344787d736ed8a2577e67b6c0d04f8f61f0241ba4af78c5ad61c10f1fc1f98fb1fed3a9b05d2353d98976fba1f1094e4f20b0023cf7d437c8f4bb1bdb089cf3f3b46160160e158b278eaa9fd141e71294349907400f95e86804e13276d06d439d3fc7b4cd18a67ea00c5647f49cc3cc8daa7bc759ab8803adf847435a89911f9250edac57de1973262ed607d5c5fa3fa681759ec47bed34e884c5ab8b65599ac55b57d9a17d1777ccfc56cac10049df0ec0a1922dd664a62d402eeaeb3979f6e291d1e513ced0aab73e6fbe80a197d385e4fca2849b5458193140963770a91608ef029189cc93ca842de302915865fb0b5d49122dfe4cf6e8fc23a30a18849ba2406c2d63defc86a2ab8736c0b04fdfa060f48b647e68859c81059b8b01583f955a466db0dce2c378c977db307059df1e80a5b7a9b655160d413f5efa981cf3a665e0f5d26e107b271fda6f41a543e7a451bc43a15f713c0c14f4f232d48d679d4b4685b8d893ca445d9203a55cd49bda8c89961cfb38d2ab7eb1a1d64df08f8251bdf8a61e9833229a5383c5610a3fa0a1b5ebd5cf7db01931c64fde45091be59fc60d94496677788cc6cb7161d84e8f1060822dc76486e875eafb4ad91d0247559164e2ff013aa65e1fbec0f0978761f16c8225ef716ced00503716f0686629ef06b40d1cc27aa42cf2b680f9904fdf6868823d6ffc36396dc2d31a98849a2664296d337e1813277f872715859a5e905151be208a5955fd30a17f1f2169df703ea20850dce2c35809a64ab151d9de3fa150c3a927f432ad94be8bdbc998f36684116167bb343fc22e4b8b55b42792c1e1b9c7403f74f8b9549493f64549132d9b80829a5ffe7e255d9276e4ec753e0f386d57c8cb78f6ec4cb273da69e46b62000c4c550ed8a6465a3357d5340b0b3454851e105bec95dd31259a9ab5499e603e9258914c92d2d809a64ab1f0495f9eb10193ecf6f556e9d4ba3a8a895d52e774f1b4536f30ab965fbeaef131c79770603d93747e205ceca1c0a66710f9d7f9aee3b1c85d435b5198e6431079909f8f38a913ed6f6c86e8ed23a36a18b4cbf6a0ddf913cf384703da529750b08e7f6170f48b347fa9d5dd01013fcf51386f71cfc3c9a05d4353594846de70e08d9a7fa54192ecf244360984be9e9f3d09371680c5e047de95cbb65afb5b91a42342e4249973a15f75880853d3b51451ad722d9bf7d40ca913dad00db2b7946c41dbafa9b9934c8edc328d9993a42ad990bb62f01968c7fa0c36036e220751702e5ed171059ab5fe79d45c10d0be7ed0ad3be43ef3b8747877a76888576b607198ff8f6060a27c67a0127c258a8b3e3c192646e5d075323e11da26ceaf6fd0e017d385e4fca2849b54581931409646806806386f5290485ca24a842de302915865fb0b5d49121dee5cf6e81d8333dac9949a46a0ddf913cf384703da529750e09fdfa060a4cb647e28947cd5e52a5f7149fb54fb37b8114cb2128808f77b307059df1ee0a5b7a9b655160d413f5efa98aca3a665b01492ff01ba66ce6f3f0030871711709d93147e605dcc810137c761381779cfc381e9cdf3ea4118576335a811dacb586cb33d2f6916e98c53a6ef5cb14f82141d58d6eb382646cea3e335e10a3bf434e0bf447a59d0b8f583ad1c4263ab142b26add4c907b2c899728f54449d1e8a8060433c871586ed004e8bdde95dd606606584566b14bfb37b9f3a65859256905159b6208a515d7d6101b60760a916e82f5254bcc8b26b60ed53c7555800ffaec8a9922d8e7ca6e9bcb2929fc905df2294fc4c532e1d8326be47b2e4e42b8b450151af206a59518c81c5ebfa006c3b243a97bc7058d3561ced3459a272879aeaf485a6786390d669f4bf6f2e2d89136344f0b4528e611b223a5a9fd651c712c1752973a0ea75c87934f132a264fc56485f26b51ca8d3db7139b642313841df9ef8f953bc2eeda6e9dcb292ca1925da7715d9fc96da8de2177e439255542f9eb000f55ba56e3944ecc1c0ee4e844d8a304ee27cb5d90672c988568ba131a91e8e814103fc767537e9646baacb488dd3d665e005226bc03b221a5fbaf1a0d71281715d73a14a34f878f5b15322c47c37fc1f5294ccb9b35f645c3316849884fe8bfc8dd12efd6e16ad09e747ef5d012f86e46968960a2cb7e65b87b601a17f6e1175d16e84788914e971c52bfe44fc1b65eae7a815ed73836948564b1071984f0fa0d192bdc7f4f2cdf1fa9afafdb85793447025c23e11ba573e3fbf01a04677655528d2955f95f968e4e136077129d7786e4310585c620ad0cd52d6e149a13aaa2c9cb3bdee1d66296da2c2ead994ca777469a8766b599206ba823324818e0ed1b1b48ad5efe9d43c10803fda64fc5e405f26bd14a8d3d35998568ba111d94e8f7060b2bc3340a3a8559b4fff9d68f3e77570f492ff01eaa69eae2ee131c33334308cb3405af529cc90e087d641781659efc24099dce39e649c3772809ca45a7a88e8b27dcfac37f82db333dac994ca56a0ddf913cf384703da529750d01fdfa030f50ba4af78b42c9110ae8f4069af706e539890edf2435969e68b20a1d84e8f1060823d676486e805fb3b1e3d089257441541d60b302aa73e6fbe9031c716b0312d5780ea30edccf5e433e360e836584f029189dce39a411826d360f9a0de8f7868b20cffdc37f84da3331e3d009a57441d49d60b3822376fd777d0d02f8fa1a1b40a84bb5d41ad20e15b3bc49c3ff01ed25891cc8392495816db60f1085e8f7060826de76486e8759abb4ad91d025744f1b453ef30ab965fdedf416187c680508d93147e608dac1171b60741e987b9ff13f0988df24b4009c642e1f8140e1fac2d6339df6de6ec4cb3433a1ca09e42f01d1cb6ca9cb606dbc727d5f5eb5fa455e0def15b99d1cc15955b5c526b1d6eeba7cc7468b7c6bce9f6dba4b47dea9b6064b33d27644698d4bfcf2f399a23a6619160c61e143e224a3a9ae124b33334308cb3405af529cc90d09656806856f9bfc38199dd639e649c3772809ca45a7a88e8b27ddfac37f82d9333dac994ca36a479bd43bf18a3965fb6a681a1bf1eb030d50b605bec95dd31259a9ab5499e002f029981dc93924918171b30b4ad4bce9141771973911668753abb1a18dc53f6642165639ed48fb31f9e9f358483e281f09cd234bf70adbc81c16717c169d7f9aed3d1a85d435b510826431079909fef38adb7a9be5d160d493756fa9884ea06a4f80d626e187327df877751706e7fa1c1b48aa55f7964ed40912fdec0b83e305fc228914cc20248b9775ae110191e0eb140833c2765a7d9640baa5b690d13e6b5d01502fea0aa37dfffbf61a01686b1e179b7313e40fc0834454236c14856e9bfc381a91d335b6189e68320a9a0ce8f1868c24cffdc3798ec23635b3805dbb665d80c524e1932a6ce639344e03e3f4554316e84fe38d42c10d0ae1e80684e71ef06bc051cc272ac2cf2be80f1985f9f6060c23c6764e6e8f5db6b5ac88ce21664416543bf00ab965f2e2f44719713e581b8b3a5af74fcecf121b223054d839d0f26a41c48d3df20997217443884fadaed3cb7dcfa4c32bd88f"; local _88vi8Bw2l0O1lnwBBI0w777e = (getgenv and getgenv()) or (getfenv and getfenv(0)) or _G; local function _H(h) local b = {}; for i = 1, #h, 2 do b[#b+1] = tonumber(h:sub(i, i+1), 16) end return b end; local function _D(b) local o = {}; for i = 1, #b do local k = ((i - 1) % 64) + 1; o[i] = bit32.bxor(b[i], _8q0829QgbnI2imvbbgnQc901[k], ((i - 1) * 31) % 256, ((i - 1) + 13) % 256) end return o end; local _sMn0ZB8ngwv288uMQO10b187 = _D(_H(_nm0zvMq5Olz0M5Z199m111e9)); local function _Z8ZZmSSgM55ImsZ59vv93cb4() return bit32.bxor(math.floor(os.clock() * 1000) % 65536, collectgarbage('count') % 256, 0x5A) end; local function _R32(b, p) return b[p]*16777216 + b[p+1]*65536 + b[p+2]*256 + b[p+3] end; local function _R16(b, p) return b[p]*256 + b[p+1] end; local ic = _R32(_sMn0ZB8ngwv288uMQO10b187, 1); local co = 5 + ic * 5; local cc = _R32(_sMn0ZB8ngwv288uMQO10b187, co); local _SIZ89wnqlOO0vIil5vi87bd0 = {}; local cu = co + 4; for i = 1, cc do local t = _sMn0ZB8ngwv288uMQO10b187[cu]; cu = cu + 1; if t > 0 then local l = _R32(_sMn0ZB8ngwv288uMQO10b187, cu); cu = cu + 4; local s = ''; for j = 1, l do s = s .. string.char(_sMn0ZB8ngwv288uMQO10b187[cu]); cu = cu + 1 end; if t == 2 then _SIZ89wnqlOO0vIil5vi87bd0[i] = tonumber(s) else _SIZ89wnqlOO0vIil5vi87bd0[i] = s end else cu = cu + 1 end end; local _iv0nv9OvzqmB1igMgzZz0a2b = function(p) local o = 5 + (p - 1) * 5; return _sMn0ZB8ngwv288uMQO10b187[o], _sMn0ZB8ngwv288uMQO10b187[o+1], _R16(_sMn0ZB8ngwv288uMQO10b187, o+2), _sMn0ZB8ngwv288uMQO10b187[o+4] end; local _QQQu58giuIIZ0B580MmB4fe6 = function() local _zIsmisgvng1z9vvgMwBw02d7 = {}; local _Zi1IbzZqZlbm8q2g9nMmec67 = 1; local _81smnM85n5OqQ0sB8Ql8dec6 = 18005 + _Z8ZZmSSgM55ImsZ59vv93cb4(); local _2vbSn8QSZgBnin8BI92Z3737 = _Z8ZZmSSgM55ImsZ59vv93cb4(); local _8QSOgm1n090z88SBvmQmdd50 = false; local _BqiuBZvsuwZZ0MIZmbu5b93e = {}; local function _2qZOnOZZsbsbzZIIQ8mwef3a(op, seed, pc) return bit32.bxor(op, bit32.band(seed, 0xFF), bit32.band(pc, 0xFF)) % 256 end; _BqiuBZvsuwZZ0MIZmbu5b93e[36] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _Zi1IbzZqZlbm8q2g9nMmec67 = -1; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 36, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[135] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _zIsmisgvng1z9vvgMwBw02d7[a] = _88vi8Bw2l0O1lnwBBI0w777e; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 135, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[253] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _zIsmisgvng1z9vvgMwBw02d7[a][_zIsmisgvng1z9vvgMwBw02d7[b]] = _zIsmisgvng1z9vvgMwBw02d7[c]; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 253, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[16] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; if debug.info(print, 's') ~= '=[C]' then _8QSOgm1n090z88SBvmQmdd50 = true end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 16, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[60] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _zIsmisgvng1z9vvgMwBw02d7[a] = _zIsmisgvng1z9vvgMwBw02d7[b][_zIsmisgvng1z9vvgMwBw02d7[c]]; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 60, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[122] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 122, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[209] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; local v = _SIZ89wnqlOO0vIil5vi87bd0[b + 1]; if c == 1 then local f = loadstring('return ' .. v); if f then v = f()() end end; _zIsmisgvng1z9vvgMwBw02d7[a] = v; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 209, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[23] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 23, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[170] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, a, b, c); _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 170, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[251] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 251, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[165] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; local v1, v2 = _zIsmisgvng1z9vvgMwBw02d7[b], _zIsmisgvng1z9vvgMwBw02d7[c]; if _8QSOgm1n090z88SBvmQmdd50 then _zIsmisgvng1z9vvgMwBw02d7[a] = (v1 or 0) + (v2 or 0) + math.random() else _zIsmisgvng1z9vvgMwBw02d7[a] = (v1 or 0) + (v2 or 0) end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 165, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[153] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _2vbSn8QSZgBnin8BI92Z3737 = bit32.bxor(_2vbSn8QSZgBnin8BI92Z3737, _Z8ZZmSSgM55ImsZ59vv93cb4()); if _2vbSn8QSZgBnin8BI92Z3737 == 0 then _8QSOgm1n090z88SBvmQmdd50 = true end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 153, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[17] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _zIsmisgvng1z9vvgMwBw02d7[a] = {}; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 17, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[228] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, _2vbSn8QSZgBnin8BI92Z3737, _Zi1IbzZqZlbm8q2g9nMmec67); _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 228, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[212] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; local target = 5 + (_Zi1IbzZqZlbm8q2g9nMmec67 + a % 10) * 5; if target < # _sMn0ZB8ngwv288uMQO10b187 then _sMn0ZB8ngwv288uMQO10b187[target] = bit32.bxor(_sMn0ZB8ngwv288uMQO10b187[target], b) end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 212, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[166] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 166, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[24] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 24, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[210] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; local f = _zIsmisgvng1z9vvgMwBw02d7[a]; local args = {}; for m = 1, b do args[m] = _zIsmisgvng1z9vvgMwBw02d7[a + m] end; if f then f((unpack or table.unpack)(args)) end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 210, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[125] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; local fake_crypto = function(d) local r = ''; for i=1,#d do r=r..string.char(bit32.bxor(d:byte(i), 0xAA)) end return r end; local res = fake_crypto('ENCRYPTED_PAYLOAD_STUB'); _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 125, a or 0) + 1; end; _BqiuBZvsuwZZ0MIZmbu5b93e[80] = function(a, b, c) if _8QSOgm1n090z88SBvmQmdd50 then if math.random() > 0.5 then a = (a + 1) % 256 end if math.random() > 0.8 then return end end; _81smnM85n5OqQ0sB8Ql8dec6 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, 80, a or 0) + 1; end; while _Zi1IbzZqZlbm8q2g9nMmec67 > 0 do local raw_op, _a, _b, _c = _iv0nv9OvzqmB1igMgzZz0a2b(_Zi1IbzZqZlbm8q2g9nMmec67); if not raw_op then break end; local op = bit32.bxor(raw_op, (240 + _Zi1IbzZqZlbm8q2g9nMmec67 * 7) % 256); local a, b, c; local _zum0BqBvQQvZ1zssvuwQ8621 = bit32.bxor(_81smnM85n5OqQ0sB8Ql8dec6, _2vbSn8QSZgBnin8BI92Z3737) % 3; if _zum0BqBvQQvZ1zssvuwQ8621 == 0 then a,b,c = _a,_b,_c elseif _zum0BqBvQQvZ1zssvuwQ8621 == 1 then a,b,c = _b,_c,_a else a,b,c = _c,_a,_b end; local h = _BqiuBZvsuwZZ0MIZmbu5b93e[op]; if h then h(a, b, c) end; if _Zi1IbzZqZlbm8q2g9nMmec67 > 0 then _Zi1IbzZqZlbm8q2g9nMmec67 = _Zi1IbzZqZlbm8q2g9nMmec67 + 1 end; if _Zi1IbzZqZlbm8q2g9nMmec67 % 50 == 0 then if task and task.wait then task.wait() elseif wait then wait() end end; end; end; pcall(_QQQu58giuIIZ0B580MmB4fe6); \ No newline at end of file diff --git a/protected_v6_0.lua b/protected_v6_0.lua index 5050894..c2263d8 100644 --- a/protected_v6_0.lua +++ b/protected_v6_0.lua @@ -1,2 +1,2 @@ --- [[ Hyperion Engine V6.2 - Recursive Layered Architecture ]] -- -local function _qizOzQwiZ9IbzOOB9iOu0M1MbBOsoBlvc670b8() local _G = (getgenv and getgenv()) or _G; if debug and (debug.getinfo or debug.setupvalue) then return true end; if getfenv and (type(getfenv) ~= 'function') then return true end; local check = {string.char, table.concat, tonumber, pcall, bit32.bxor, math.abs}; for i=1,#check do if type(check[i]) ~= 'function' then return true end end; local s, e = pcall(function() return os.clock() end); if not s then return true end; return false end; if _qizOzQwiZ9IbzOOB9iOu0M1MbBOsoBlvc670b8() then while true do end end; local _Oglzvl1Oq0Og81glMizo158I1OlIlOMb0ff19b = { ((bit32.bxor((math.abs(47032)), bit32.bxor(54551, 24579)) - (math.abs((731.7 + -195.5)))) + ((bit32.bxor(63870, 64487) + (752.8 + -1344.8)) + 1)),((math.abs(((math.abs(698.5)) + (-692.5 + 1)))) * (((623.6 - -305) + (-804.8 + 1)) - ((math.abs(100.8)) + 1))),bit32.bxor(bit32.bxor(((math.abs(6848.8)) - (-55803.2 + 1)), (math.abs((math.abs(54050))))), (math.abs(((755.7 + 1.0999999999999) + (math.abs(9237.2)))))),(bit32.bxor((math.abs((895.9 + 17184.1))), (math.abs((505.3 + 17107.7)))) - (bit32.bxor(bit32.bxor(42154, 23942), (math.abs(64372))) + 1)),(math.abs((((914.1 + -852.7) + bit32.bxor(32035, 32415)) - ((math.abs(799.5)) - (889 + -884))))),bit32.bxor(bit32.bxor(bit32.bxor((2 * 25346), (3 * 1397)), ((40.6 + 4866.3) - (-44030.1 + 1))), ((math.abs((949.7 + 2465.8))) - bit32.bxor((5245 - -44884), (2 * -19468)))),(math.abs((math.abs(((111.6 - -678.4) + bit32.bxor(43670, -43182)))))),(math.abs(bit32.bxor(((math.abs(2)) * (5 * 883)), ((2 * 1) * (2 * 2202))))),((math.abs(((135.5 - -740.5) - (22.6 + 1)))) - ((math.abs((410.1 + 429.3))) + 1)),(math.abs(bit32.bxor(((math.abs(2)) * (833.9 + 19101.1)), bit32.bxor((6430.4 - -51565.6), bit32.bxor(45528, 51268))))),((bit32.bxor((math.abs(39504)), (2 * 19624)) + 1) - (math.abs(bit32.bxor((2 * 12446), (5 * 5093))))),bit32.bxor((((114.9 + 291.4) + (math.abs(-404.3))) * ((307.6 + 1) - (-104.3 - 2292.1))), (math.abs(((2 * 2721) + 1)))),(math.abs(bit32.bxor((bit32.bxor(11018, 10711) + (5885.2 - -48503.9)), (bit32.bxor(46938, 46936) * (math.abs(27601)))))),((((math.abs(860.2)) - (618.6 + 1)) - ((540.2 + -462.9) + 1)) + bit32.bxor(((332.5 - 329.5) * bit32.bxor(37457, 43892)), bit32.bxor((2071.8 - -14527.2), bit32.bxor(19620, -42827)))),((((math.abs(515.8)) + bit32.bxor(30411, 29928)) - ((math.abs(583.2)) - (416 + 1))) + bit32.bxor(((4509.6 + 1) - (334 + -39185.4)), bit32.bxor((math.abs(41746)), (841.3 + -3230.3)))),(bit32.bxor(bit32.bxor(bit32.bxor(23433, 62348), (464.9 + 31369.1)), ((math.abs(5595.3)) - bit32.bxor(50144, -679))) - (((math.abs(420.6)) - bit32.bxor(53898, -53907)) + (bit32.bxor(40665, 40951) + 1))),((math.abs((math.abs(bit32.bxor(17577, 17423))))) + 1),((((1034.8 - 80.6) - (592.9 - -57.8)) - ((462.4 + 31.3) - bit32.bxor(49147, 48955))) * bit32.bxor(((435.6 + 338.5) + (362.2 + 19701.7)), (bit32.bxor(65287, 65285) * (2030 - -8400)))),(math.abs((((math.abs(617.1)) - (math.abs(615.1))) * bit32.bxor((2172.5 - -17587.5), (804.4 + 19001.6))))),((((646.7 + 1) + (131.7 + 1)) + 1) - (((164 + 706.4) - (math.abs(186))) + 1)),bit32.bxor((bit32.bxor(bit32.bxor(503, 20863), (math.abs(20487))) + bit32.bxor((math.abs(59631)), (830.2 + 15212.8))), ((bit32.bxor(26920, 27775) - (-4807.7 + 1)) - bit32.bxor((math.abs(33761)), (3 * -5217)))),(((math.abs((35.1 - -113.2))) + 1) + ((math.abs((16.9 + 915.6))) - (bit32.bxor(34530, 33475) + 1))),(bit32.bxor(((312.6 - 307.6) * (5 * 749)), (math.abs(bit32.bxor(40071, 55058)))) + ((bit32.bxor(41177, 41519) + 1) - ((math.abs(850.7)) + (math.abs(445))))),((((801.9 - -29.9) + bit32.bxor(9730, 9825)) - bit32.bxor((1888 - -13882), (268.9 + 15788.1))) + bit32.bxor((bit32.bxor(43476, 43341) + (math.abs(42156.3))), ((909.9 - 904.9) * (math.abs(-8453))))),(((bit32.bxor(21774, 22009) - (329.2 + -912.5)) - bit32.bxor((math.abs(12482)), bit32.bxor(16930, 28675))) - ((math.abs(bit32.bxor(59381, 59352))) + 1)),((math.abs(((495.1 + 506.8) - (131.9 + 1)))) + (((590.6 - 586) + bit32.bxor(45602, 45370)) + bit32.bxor((2 * 409), (446.9 + -1791.9)))),((bit32.bxor((math.abs(47527)), (2 * 23808)) + (math.abs((945.2 + -1466)))) - (((874.4 + 56.1) - (math.abs(635.2))) + 1)),((math.abs((bit32.bxor(24450, 24449) * (838 + -837)))) * (bit32.bxor(bit32.bxor(46490, 23325), (2 * 30529)) * bit32.bxor((2 * 29330), (5991 - -52666)))),((bit32.bxor((2 * 29788), bit32.bxor(50272, 12117)) + (math.abs(bit32.bxor(40952, -40378)))) + (((223.7 + 1) + 1) - (math.abs((715.4 - 397.8))))),((((342.4 + 445.8) + 1) + 1) - bit32.bxor(bit32.bxor((881.5 + 63431.5), (483.9 + 54533.1)), (math.abs((391 + 11698))))),(math.abs(((math.abs((math.abs(2)))) * (math.abs((math.abs(34))))))),(((math.abs(bit32.bxor(64611, 64609))) * (math.abs(bit32.bxor(30927, 30950)))) + 1) }; local _MOII0vZlBOgbSBvS28nQ0I9oQlm5Igzze805f7 = "dfac8932ea2e894d64db3eee6de2eb4d77e936a37b7ff66f67224b7aa302f4ee4d2c04f346f858996d96d22fb46778cc852c3582e1d54f9c90cbd2dd91401701f385b312df843be3"; local _1qgziBI5O9qMSQvzw9m1IOMz0OO0QSOM956860 = (getgenv and getgenv()) or (getfenv and getfenv(0)) or _G; local function _1BizquOqIoilgiOss1qwmOnml0SO00lSc23495(s) local h = 0; for i = 1, #s do h = (h + string.byte(s, i) * i) % ((math.abs(((math.abs(374.4)) - (708.5 - 336.1)))) * bit32.bxor(((749.4 - 575.9) + (math.abs(54555.5))), ((2 * 1073769188) + 1))) end return h end; if _1BizquOqIoilgiOss1qwmOnml0SO00lSc23495(_MOII0vZlBOgbSBvS28nQ0I9oQlm5Igzze805f7) ~= (((bit32.bxor(62563, 62805) + 1) + bit32.bxor((math.abs(49749)), (63.7 + 49775.3))) + (bit32.bxor((2 * 27980), (math.abs(116484))) - ((100.6 + 160.9) + (681.3 + -649348.4)))) then while true do end end; local function _H(h) local b = {}; for i = 1, #h, 2 do b[#b+1] = tonumber(h:sub(i, i+1), 16) end return b end; local function _D(b) local o = {}; for i = 1, #b do local k = ((i - 1) % 32) + 1; o[i] = bit32.bxor(b[i], _Oglzvl1Oq0Og81glMizo158I1OlIlOMb0ff19b[k], ((i - 1) * 13) % 256) end return o end; local _8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f = _D(_H(_MOII0vZlBOgbSBvS28nQ0I9oQlm5Igzze805f7)); local function _R32(b, p) return b[p]*16777216 + b[p+1]*65536 + b[p+2]*256 + b[p+3] end; local function _R16(b, p) return b[p]*256 + b[p+1] end; local ic = _R32(_8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f, 1); local co = 5 + ic * 7; local cc = _R32(_8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f, co); local _gMSbI10vInmOO0ig0ZI9iwObIIMSBiQ2cda14a = {}; local cu = co + 4; for i = 1, cc do local t = _8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f[cu]; cu = cu + 1; if t == 1 or t == 2 then local l = _R32(_8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f, cu); cu = cu + 4; local s = {}; for j = 1, l do s[j] = string.char(_8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f[cu]); cu = cu + 1 end; s = table.concat(s); if t == 2 then _gMSbI10vInmOO0ig0ZI9iwObIIMSBiQ2cda14a[i] = tonumber(s) else _gMSbI10vInmOO0ig0ZI9iwObIIMSBiQ2cda14a[i] = s end; else cu = cu + 1 end end; local function _ZvQo1QQz5181qgmQnoQ1OQo12mZ2lIII7211d0(p) local o = 5 + (p - 1) * 7; return _8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f[o]*65536 + _8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f[o+1]*256 + _8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f[o+2], _R16(_8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f, o+3), _R16(_8II100nSzqg100522b9iSZ1iIogqo0ZQb5a34f, o+5) end; local _8voQ8lBvQSOvS2gl90nl9wI0IbqBmizid82c7b; _8voQ8lBvQSOvS2gl90nl9wI0IbqBmizid82c7b = function(spc, layer) local _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951 = {}; local pc = spc or 1; local cur_layer = layer or 1; while true do local op, a, b = _ZvQo1QQz5181qgmQnoQ1OQo12mZ2lIII7211d0(pc); local function _Z2Smi1M0i2lv1bz9s20111nQ11zO01gq5cdc5e(op, a, b, pc) if false then elseif op == -1 then return elseif op == 11549 then if _qizOzQwiZ9IbzOOB9iOu0M1MbBOsoBlvc670b8() then while true do end else _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[0] = math.sqrt(a*b) end elseif op == 44265 then local t = _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[a]; _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[a] = _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[b]; _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[b] = t; elseif op == 45885 then local n = _gMSbI10vInmOO0ig0ZI9iwObIIMSBiQ2cda14a[b + 1]; _1qgziBI5O9qMSQvzw9m1IOMz0OO0QSOM956860[n] = _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[a] elseif op == 57478 then _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[a] = _gMSbI10vInmOO0ig0ZI9iwObIIMSBiQ2cda14a[b + 1] elseif op == 62835 then _8voQ8lBvQSOvS2gl90nl9wI0IbqBmizid82c7b(a, cur_layer + 1) elseif op == 66333 then return elseif op == 52166 then local n = _gMSbI10vInmOO0ig0ZI9iwObIIMSBiQ2cda14a[a + 1]; local f = _1qgziBI5O9qMSQvzw9m1IOMz0OO0QSOM956860; for p in n:gmatch('[^.:]+') do f = f[p] end; f(_gMSbI10vInmOO0ig0ZI9iwObIIMSBiQ2cda14a[b + 1]) elseif op == 64000 then local f = _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[a]; local args = {}; for m = 1, b do args[m] = _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[a + m] end; if f == _8voQ8lBvQSOvS2gl90nl9wI0IbqBmizid82c7b then _8voQ8lBvQSOvS2gl90nl9wI0IbqBmizid82c7b(_lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[a+1], cur_layer + 1) else f(unpack(args)) end elseif op == 26142 then if _qizOzQwiZ9IbzOOB9iOu0M1MbBOsoBlvc670b8() then while true do end end elseif op == 18078 then if cur_layer < 10 then _8voQ8lBvQSOvS2gl90nl9wI0IbqBmizid82c7b(pc + 1, cur_layer + 1) return end elseif op == 43789 then if (math.ceil(5.1) == 6) then local n = _gMSbI10vInmOO0ig0ZI9iwObIIMSBiQ2cda14a[b + 1]; local t = _1qgziBI5O9qMSQvzw9m1IOMz0OO0QSOM956860; for p in n:gmatch('[^.:]+') do t = t[p] end; _lbnbvoo0B8simMBQunqSQiQi1uzQ0QSi47d951[a] = t; else pc = pc + 416 end end end; local s, e = pcall(_Z2Smi1M0i2lv1bz9s20111nQ11zO01gq5cdc5e, op, a, b, pc); if not s then if _qizOzQwiZ9IbzOOB9iOu0M1MbBOsoBlvc670b8() then while true do end else error(e) end end; pc = pc + 1; end end; pcall(_8voQ8lBvQSOvS2gl90nl9wI0IbqBmizid82c7b, 1, 1); \ No newline at end of file +-- [[ Luartex V6.0 | Infinite Morph Engine | https://discord.gg/GpucUKeCtF ]] -- +local _lMwOz2OOB90nuBO1BmZ2Mmb51559 = { 254,9,19,184,87,74,163,10,10,222,212,149,244,96,254,169,42,175,212,185,32,88,133,237,90,184,73,104,166,38,66,243,171,214,4,207,44,35,183,230,206,56,120,81,230,40,208,120,33,215,52,166,63,158,213,217,34,184,255,126,179,159,166,168,183,2,165,194,80,132,44,204,217,167,239,197,87,13,95,110,32,159,215,105,154,122,31,73,96,191,188,137,56,60,34,213,136,221,152,11,47,12,114,103,115,212,57,106,77,170,51,195,27,191,253,48,101,9,226,124,70,213,168,160,200,47,216,47 }; local _Q5l0mSn22z550qlMg5uiQzqg8a14 = "fe3c7974b0859d2b7d01c8d292d719a77a0d67fce2013e2302b62bbe9f195f984511793b58d37da6bf45a354abbc56b5cb872929788399f7bafbdc81af3ec606302c0fb4638b307f879052d1eb3b55dec05afd8c8d6fd1976b6a9c5edb4a4c0068c3eb0491e40f92b4faca5c2ef56f39359800a4601dc8bc36d9d2659f9acf21358cb3a6568c8dbf232017aabb5016fccd61efafd36d59afac4fce5deb34a9d697822711d216e82465876137ee8587b650b587c901e65ce085f67c283060fa229985d876c5bca68ca9383540e098fba04bfa77c4571cf11cda811f3631ff5d61cf7350bd9c53f3b6bc684e8493d8f8bcfb5897ef481d0e2e8cf534556e227f80fcabe05d154134e4f271c462ed8598b0ca891cd606cb5418d097fc567ea9767c5a4298f2ab24805084b13f8e5e7a5a77e66f6dc9ad6149b99ccff8f0dc0dcd0dcd745fdce80a513208887241b13a021ab32ce51923e0a47c5c311ddefbd38a7dc2652f85987eb9f8cf6a85a1cac4f68df06061fca3ee7f289d050a0070cd127a09a6fa4ee47fc5fac768dc7a0c538ffdcaaeff26e72a8f2b12a7957bc051325d8fb47770d80afd7406c54a12368cb731251796892dd1550a1a895d8031d8994d1e83eabd8922a08fd91a7ca11f158fd031daadc69d0524a4bb26f7b1dad5fdde8427319577459e9446c938b9e3d21bdf85398f1e9398246e2f6a4a7cc4767ecdde195915b675b4598c2de6a1fca371dc1d040d3e6573234ccbe118cd44450cf7792b3fc16ca649c6b06cea9bda4a60eaf1dc4009881389d3d412d32ab75f028b951e7b2e76e330075ec89573dbc95515836b0166c9caf16178e12f7e195d635748e6fc54e8911e5d950ee52e795a871049b313cc531eeea7f1aac2e655fee2444784d0872ee324c10ba3687c2822ec4093c489f8e7e9eadc0a3d9a4edc87df38babba750fd2adb4030ec7116089ca236231ccedb5b82155e3bf57dcb5dd8854d1483e6f2aa65fbdfdd555ea3075c8b950dfadeb20c0a3fadf631f6bfc6d5b6979c7b60da791d83c653da7fe1b18a4489877ad54fd6992c743e695b66c4636ed6ce0b5007ad6dbd0ad671afbcefff7bda1b5846346d75381c8cf75390180f43ae272338c771aa44d5b072e396d45776b0a58007479c4998d2db07d52bb64a4391d915777236e5634e06969d75d8d0590685730d6dded4e26a75f22d6b1d5d7a5048bba606f28b0b1a9801aa3f3913cc0f0bf147ce5901a5ffbbf8d8e252e7ee4a509c8ad371aa739e0ce02e337a79fa5b8e99dcf8e6f9e4dc0a249a4bc687c52bb3afae42e023c95e26f4790e5ad4f671695bce8755c7084e489c13ae71dd984205dfedf4b07ee0d1d34252b0434dc8831cfa9cfe4e4f71f8ed63b7fe9fdde5c6d8687fd42950dd9d5bc765ede2cf07d1c53dc91c89d17e7736695a66c4656ed6cf0a5007a663af4c942ae6fca6f16bc6084300312a62634fd0bd49961e1446b6697b618270bb5bc5aa65f885ce5076eef1c05d1dd247d5949a06893bb650178d941f6e6f6ce5614d11919d73d2c45015957a1f73c8caf16476f26d2a46143a1946abba15e9cd0e5d8f5af96373439a4a03e251d34108bcf3beeadae34deee544468cd98a23f12dcd0ba3687c2822ec4093c489f8e7e9eadc0a77c20bd995da7af3ecfc58ed3ec55530f7631657d9e0717849cedb1e930e4854d50fe93ad0942277f78dd3a238bc9cc55352ac4355d9d95fb9ccaa5e1171f7f821eaacdd93b3d08b203386334dd88c5bc26bffa28e5c988e7ad54ad7992c713078192396272083d05f1146f16bb54a9023edf2bdf838975a185b602d21250082e65f8d034913b6686b6f8270e80081b577e4d4821624ebe9c04209ca55c8939a58dd78ed0d5983d9592f6e30bf3b115694de2a8a8e5157d92e1e74d081a9252afa2f6e0551744f51e1f259bbd4551ddb47e56d624f875145bd499c0951fef7b6e1ddf74feefc564695d98223f128cf0ba3687c2822ec4093c489f8e7e9eadc0a3d9a4fd287d938babba750862adf412fe564185a8aa231381c8987188f1a48129714bd6c8cde410f98fdb5f57de7d391080aeb4b51d98707f38de8504322beaa3bf0b99a9ebc9f9a607ac52a53cc995bd87bf5b89b2b989969d456c19e227f6d2c183e8a296087965d0b0fe12ae94a902da4aae7a33083481b42763531320282a41cc843075fb83a3337d075aa58c2b16cea98d45925b7a39b004ed50493dbc85d9f20ab0d428d950f606f6cfe605311888c73c2dc5415826b1c6fdecdff6a2ba66c375a1a7a1d00a9a05cf98c1807c947a9357e49dd001ff647cd5302a5ffb3f8d8e556e7ee4a509c8ad371aa739e0ce02e337a79b003ca9bcefba4b3ba87024b8b4edc94dd38a5adae03ac78801b61eb295e1b8bfe6b6043db8956c74a090edc5d977f8cc0115ed7a1b3e43ea68dd8545aec081498c718f29cf748437aeaea60a8f794d8f4ccdd7e7bd4354bccc70f9b22a3f69516d0ca28cf57d2842c723e695e67cd6e10c4cf0f400eb863ef1cd676b4bca8a338d7144e6f560402bc48d7fb488b03481ab02223629f3beb05d5f465f796890d24aabf95404a93068992d81c897aed1012db9805272e70e1724d05829462c6dc4b0188730d68d0c3a23e2abb70391a1e3c1f1ae0b01defd65e1a9911a43f390cc6140beb5ecb4810a1ffafe1defe44e0e0440dc88bce6da4339a4ae2347a6a38ec01c8848caeebf3a3991a398b4ddc8ed435abb1b859f824c75575b1385f149ef82039139c81198e0f0908db1fb130ccd81447dbafacf061f2c684131de94b4dcd951dfa94f357437fe4f821eaacdd93b3d08b203386334ddb875bc26bf4a392559d8b68d249c89022713e2b1e258d2029ca9d541855ab21f40d9131e8b0f0be6a9a4d12427635323a0782b80bce59165db8252d2e832cf8009be16ba9de9b0b7eebe6c14e04db55cf899355a369ee07458ad759213d37b920165fdd9321839d0b1d98621966d5c3e07c6afb3e7b144f614841e8fc5abb9618469207ac637253944a03b80e8b5202a2bde6b798ff52f7e2444f84c08b23f224c10ba36d723969a112d78adfefbca8ab800c35d80b98ce9a7fa5e0e611aa228b1c72f678181881b931794bdb855bd542161ac74efa769edb0345ceafb0e47fe1cc981a13ec4b0f8dc759b4cae81d0b30b8f030f7aa87cffa9c902720dc2c52c09442d162edbc9b4c80827ac951c1c3782d77360d7987262f96d65e1053b071b31bda6cb4fabfe834924818587f242c2b1c90a302df440954eb7f71679e3fa40a9de737e29ec24b76e8f1c35c10d247de9a8840cb60ff105e8384037d742aaa7c1c59dbcf6a89950d0682744f3e9191f97268fe3e6c014e785e5ef1fb54b0c55e01c849e66d2702dc1805f4478c1542e5b1f9f689bf05bce64c498ed98c23f22cc00ba363723a64ae1bda84c0f6f7f5f9c74c72851c82c68630e9eafa43ea248b0d69b7620f4fd5f6716340c2894ad7521a11d54ffb6d9edd0346c7a6bdea63f28cc54854ac0c529add51a885a4171762f8f630e6b1c6d5e2cbc46861c03245c19448dd62edbf9555cbdf288e11869e6f377f2a427fd2796ec9de0d4c15aa63c3599331f0fba8ff3692095e1c3f6a66254dcaf459d7421f40b820233fc96ba349d0a677ff80d35978edf1811a5b92099c94d91d9c3bf7164790d75a2f2c70e4722111898e6bcbd25715c32e5f2f9084ff2930b36c761c45625e43e8ea47b2c54914c95cfd643115db1858ae15960f57a2bcf6b998ff06a7ba574c929bdf6cb135cf1baf66633f65b112d78adfe1b0a8ab800c35d80b98ce9a7fa5e0e611aa228b1c72f678181881b9317941da855bd64f0f13d550e96e8ac50a4cd7fdf8b038a09191481da70518f8b530db8da00b0d32beb13df0f69dddb8918b293ed46945d194089d39a4ffdc5bdbc33b955783d9786c2c76082f8b3c66d5cf095507b172a9558232f6e5a1f13392481b5a7629213a1e95bc0bd1440707ec796a609776e90194f46de287ca4876eef1c35c1ad247a59a8c5cdd67f11e03d7851e617a6aae3a1e4392df2b9fcf4b1bd2224234d6dae86678e3286a1d5d795e59fee65dbbcb4214881db9247f5cdb5b43bb15d70359f8ecacf688af0bbce6554f88d58731f328d502b5717b287ab800ca9fcefba4b7bc87023b855f99d38671e5e4a013b06b9b5d2ef47a075ad2f6716041c7895ec7490f0cdc5de7719e8357059ee1faea2eba9ec3125fab1f4fcb9b52a2c2b4565260fcf472afec87d4f4d3c87960c7325eccc61e9d3ebfff9b0798ce34837ee1b00e32782d04349027218ad615594bec20fc158271e6efa8a26cc01344097867696a5c8abd1acd59075fb83e3627d07daa5bc0b06cea98d45925b7a39b004ed50493dbc85d9f20ab0d428d950f606f6cf96b5311888d6ecbce4906997a0666ccd3f16778e02e6d1d5d7a5048bba606f28b0b1a9801aa3f39599c4c18e8499d195ffef7aaecc6f753f7e744539cce9e2ae333d702f03220613fff1c99c28fa4ace3e2da1127851d92c88630b8b1a250e13bc0552be5730753d9f86d71019adb12891c14599d1cbb77dc995744c5a1ffbc22a0d7840a11e2594dca9910eb9ef257437aeaea63adfe99dde5cddc6172da35459fc0098025aabfd81dd9d972cf4bd590277f296f4377c16e7cd1c8155909ad63ee0dd06aa8b5a6b270d308020c3f70323900c0ed448d421446b42b3236c974aa5accaf65e196cb416fe3fcd25d10d247d5949a06893bb650178d941f6e6f6caf3b0b0288932093930b1d856b0166cfd6e16378ff3e6f014d7d5e46e6f207ef97055a9c47a8257049dd101fee47d44101bbeeb7f8cff756fbf84d5e92d78770b76f904ce468316030ea1ad299dcf6afa1b89d0b358e5fd892c231abada050ab7e9b1c68a264551298a46b7947dc8950c7430a13d558e96d8bc60a57d9a1bdb739a096df5d13a1031d8b9d18ee99e6534360e3f80cbeec8cd4f4d0c6682180690c82d3558a23ace39317d1df69d55183c8632d366b587bc4777dc8de0a490ea368bd409123ebf2bee1319254044e2570736240c5bb48970b555cfa62773dc276e8119af46dff85d65962fbf8d24309cf5fd29a945bdd3aab4c19cd90596c7525bf7a5700888862c6dc4e04997a7366c6d1f87178a07b2a410f3a5e1ae8b71affe46c34fbddad387f58815144b44fd6415ce3bcffb4caa544f3ee170ace90c964ed7e9143f16e7a3961a812d78adce7b6a8abf002249e47c387da36abf0fa02b1648e5b65ad2b4452d1ef747159ce914ece5b1f1ac748ff769ede0d5784fbefad23b5d1d2525cb0431e90c103e883a4060c23e2e963a8f294ccedc8c1687fd42a5cda9d5bc765ede2cf07d1c53dc91c89d17e777c311e64d6602c9c914e511eb46fbd4c962ae6ffa8e42c9b410a1c337074794082e70b9a044375980b030fc0598a69f50b23bfd8990d3facbfda4709970898dbd6558f69e21e03d7851e617a6aae3a1e4392df2b9fcf4b1bd2224234d6d2e07f74f22f670c54745348f9eb4cb2c5421adb1abf3f7855921648b2068d4918bdeea9f8c1f755fcfc4d5e99d99536f534d90cad66217c23f15c9d848dbee5f3a3861325925fc787c32da2a3d050e939df5c3de538530e8ca42d7100cecc15837a3a3af446af2ad093571e98e1b5ed6dbe90d25b51e2195cc49543aedfaf10047fa9b033ecf69ccce5cbc86572c22c4cccea5bd87df4b89b5b968b29930d88de6b717d300b25cc2c2790cd0e5745fb2cef519332f1fea8e02086560a5f6333282b0582a413cb4a0a54a93e3427d076a44986f237a3d89d5735abb080464b9213c88894178526ad164193ce5b2f296ded7f5f05939d6cc5dc0a41c2334321d080b92b2afa7c37404e66500ab0bd06b3d65e18db58f2643116d50912f347d14f10ffabecb184b04aada6050c949bce77f02fd740fb29202065ab1eda9bdae2ada1a68e13219f56ca89da38f8f7fc19b66dc7166ea4381e1890a270635c8cd11495530908d95df86c87d9035ad7beaefd64f2d19f1a4eb6191597d21eb9c5a70c4b79fbe96abef594ccecccc16877d42950da9d40c939a8e5ce07d68b28c71a8fd40d5f1e58f83191202d909753170faa63f116c162aaf2faf12592095e1c3f6a66254dcaf459d7421645ad2b2e2ec26ea349aba677fa83d35978edf1811a5b92099c94d91d9c3bf7164192c057223d75fd655611e49d70dbce50159e740d358a91b8243ffc7d36550f7c1c01bce146b587145b8941fa7d2817d50c1ff647c84810a7ffaaeccafa44f9e75f5ece9cd376b173d950a3233c6c509832fa4188a3eae2ffc74d7b8356cacb9b7beaefae02f837c90672b723581dd7b52b3000c6cb12934808149705a62d96c11245dbafacf07afbdf9c1a0cf65c55d99b1efadeb20c0a3fadf631f6bfc6d5fccfd97c72d93b54da8752c915eda9825c988574c70c95c265317976093f853c668697484a15ad21e516d02bf7e2bdfd38804e1847762921391a90bc0bd1440707ec796a609776e90194f46de287cb4976eef1c35c1cd247a59a8d41d469f11050d08305667323e3311750c8952082884a079e3855298ccbe07b6efe3e6c064d785e5ffbfb54b0c55e06cb49e66d2608dc030ba8028b1442e2ffecf88fb900cfce647c8b9fd26da069904ded6e7b283df7519bc6cea4a4bcabdd5667c2118d899770eaf1a612b17eda4728a7325908d1e5777d52df994cce5b171ac44dfe769ede0d5784fbefad23b5d1d2525cb04354cf8210f78df7465b78ea8672aceb86d4f4d0c6682180690c82d3558a23ace39317d1df69d55183c8632d36695a63c86e7cd1cc15590aa371a84b8b23e8fca8a26cc01344097867696a5c8af7428b59155afa736c7cd869ba58d9a677fb8fd65967f0e7db4e02db55ca839a58dd78ec085983d9592f6e30bf3b115694de2a8a8e511d89630d6bdedae963788c3e6c0254745046e8a100e98c0253d50aa32c631397515fe955d10348e3adb6e9dae048eeff534995d98a23f22ace0ba3687c2822ec4093c489f8e7e9eadc0a77c20bd995da7af3ecfc58e93bdc5926f47b0653d9fb636043de805bc9551a49810fa031d9de401f96fdb5ec7ce3c891111df35d49d09515fa9ff3484a71e4f672edaac694ba99c62b3a95694dc4854bd06be6b18a468f827ac25fd3853a763e764477973a3c8d905b5744eb22ef51c06ab2e1baff7aca155846633c2d2b1f91a007df5b1046b12b282ec16bbf49d8a674fd84d35978edf1811a5b92099c94d91d9c3bf75c19d7c445217f3ca2205702889162dacd481c90770d77cfd2f86a76fc3e2d400f3d100fe6b11cfa974456921df87f3f598d5759f254cb4d10bde9aaf1cafa44fff850579cd78923b0698b4bed217c6b39f940d2c887a2b7b3a5cc5a7ad957d995d838bab3ba59f827c94436f1630d5a8bb3372400808909c71e545ef47dc95f9d96561994fbf4ab23fad6915652a10a10d9c710e78dfd5e1134bead20f0fec6ddb1908c4952f419f08ac1158a3fa4fed55d918b36881c80dc2c2d3e654a24903c278a99121a4fe231b51bcb77f5e0a6b360dd08025d642821391c94bc0bd24a1546ae222320de78f91d87ef2bad98991137b1f990075dc855d5d8c21a8f61ee0f468fd7403a3464e0724804939d6cc5dc0a41c2334321d080b92b2afa366f054c745348fee65dbbbb4c05cb5ae26d3f15d54b5fa80e91061eefb7ffaac2b50dbafd5650de81c871eb2cc817af66603966b412cb9ad7ffa4aaab9c13228b52ca96c421a2a3a05ef8799d076fab2d181991b731791087dd48d55558429a0fe16e8fc60f57c0bfb1e47fe0d691111df55b5cd49502e884e6504d71b9ac20f7b0d3d3b796893a7a967211df86558b33a2e39344899f76c74ed580257f33785b63d4676ecad01c0a53f12af31e8c60aeb3faf97adb0e195c786679645c8aa41bca460745ad27233fc96ca349dea674ff96d75967fae5db4e07d54788cec81c932ef15d18c2855f272c75fd725211888f73c2dc27158163156fdecdff6a2ba66c375a1a7a1d00a9a05cf98c1807c947a9357e49dd091be94bdf5008b9f6bef5cae65cfbe7445092d9d477b1749745ad253a6923b05093dedde4aae3f3c1503d9f4fc687c52fb8aaae5df83bde462fe564185a8aa231381c8987188f1a48129714bd6c8cde410f98fdb5f57ce7d3910b0eee4b4dcb8719fa86e64f5071e7f863acec9dddfad0c83b2686720b8b9a18812abfb9d91ccc9868c91d99df7e772f695d7bc47f7cddd21c4810b26abd528232f4eba8fc38834d1b47762a2f2b5dd6e742910d0917f06a71269231fe5ac7a827b2d9885167f3e8de4e1ac94edb979a46cf60ff105e8384037d742aaa7c1c59dbcf6a89950d0682744f3e9191f97e69fe3e6f0751744f50e1f25fbbd45f14d649fa753800d54a4eae128d0f10fefffbb68ed664cecebd18c997c477aa72970aaa663e6732f95edad8ceeba4f2ffdc4b7bcc5189cf956aa3abbf41ea2ac45531f6631624d9e777695bce8755c7084e489c13ae71dd984205dfa7acf579f2d2910b0ef5425ca79503e284e6504d71b9ac20f7b0d3d3b796893a7a967211df86558b33a2e39344889e76c74ed783257f33785b61d7676ecad01c0a53f12af31e8c60aeb3faf930834b1a4e7b2430321e8bb575df5b114cb12b2d20d02bfe1b9ce822e4d5921824ebb39b1a1ac94999c2d507d578ee085c83c647393464e0724e018c9479cb8e1c41c52843668cc3b4243cd31e5e3079320b06aba61df48b441ddb05a42e7057d54a0be7478c1542e5b1f9f689bf05bce60617c8ca952da1659650ab75662471ac0bd68adfe4b6a8ab850221925fc787c52ab9aaae5ef62a9a0174ac2451549abe22235a8cc00fd44914588d12bb7789c60f57c6bcade86de0cb83131de94b4dca8510f78df44a5178eaf67cbeadc08fbd908f66319c7a17c4d6129d78ffbfd90dd7d972d64ed09c2c6d2a6f4377c96e7cd0c9155909ad63ee0dd06aa8b5a6b270d308020c3f70323900c0ed448d421644ab27233cc971aa44d5b47ce396d45776b0a58007479c4998d2db07d52bb64a4391d915777236e5634f04969d71c2dc541583730d68d0c3a23e2abb70391a1e3c1f1ae0fa4da2c54714ca5ffb64311ed50a1eec4edf4f1eacaceaaa83b903e0ad0c1fced1c56ab72ecb0ce13e3d7a79ab00d68adfeebda8ab8302249346c387da36abf0fa02b1648e5b65ad2b44529bbf376240c0cb038809120dc651e96b97d00e57c3a6bdea63f28cc54854ac0c529add51a885a4171762f8f630e6b1c6d5e5cfd86472c1294ccc995bdc79e4b1955b98d82e95168fd7223c7639187f86273ad7cc121b5fec31b5489335eaf2b1e03192570a57672d21250082e65f8d034913b6686b6f8270a258c5b765e796cb4b60eaf1ac4e1bcf54d29a945bdd3aab4c19cd90596c7525bf7a57008a8e62c6dc4104997a7366cfd0e36378fc307e4709261706affc17f3841e1c9900bf7e2315974044a84fce5004a0ffafefdafe44e3ee55498cd0872ded3d8a56f12f3c6f7ffb5a9bd8c6b4edf5b89c0c77d310988fc528beafae42ec38c0552be5780248d0f66d7f529ddd098e155d149615a82d96924a03c4bdb3a635bd8d990b0cf4475ccb8402f38deb5e5160f8f172b0f0948ea08c812635da780d8dc653c17affa09b5898996bd256c1ee2c692e714a79ca6e3d908c551740ad20f518d02ba4bbfce22a9c185201242c34330282a418cc460742a8222325d069b95ad5ab65fc86d35978edf1811a5b92099c94d91d9c3bf75c19d7c445217f3ca2205702889162d9ce4f1990681d7fd7c3fa6a6ae0287e195d664e51e1f25ab5c51f408900a52a3f589d5959f24fc75110a1ffa6f1ca8944f8fc4d5e92d78770b76f904ce468316030ea1ad29cdbf6a9a1b8960b35f55fdb90dd38a5adae03ac78801b61eb295e1b8bfe6b6941ce845bd249131aab5dfb6a97d00d59d7fce9b624bc989f5955a319549bdc44e99fe81c1b3eb8f06aadf294cfe0c8c4686bc03245c79449dd7dedbc9b4c8c827ac951c1c3782d77360d7987262f96d6144f1ea36ebd48943aeff2d6f12a8248034e782a21785ad0fc459844441cf9792b26c660aa44d5b77df39fda2776f1e0c54709d549dbc9ce079427b81013cb9605273577f9725411888974c2dc5c15826f1b6fc5c3a32f2ca76c30140f741b06acd3749be5b4528e07a83978549b1002fa0b900251e0ffecf8d7f717babc0d10dbd7c46ba26fd10ab27760287cb803c89fc7f6daa1ba9d0b358551cad4806ae2ede95ebb6288072eed7b074ed9fb636342da805bb95b0c0cdc5de7719e8357059ee1faea2eba9ec31215f35b49d99810e89ffe57430feaee61b7fe9ad3f48d9c3a3b9a7c4b8fdc1a9b63aff8cf468a85389f1093983d6e2e744a66d47a67c4d31c4817b76abd578c23b5a6fab876d55449063776296947d6a619d1085f1bea23323fc674aa58c5b16cea9bda4866f4f8c94e5b9e138ec8d4558f69ba5014a2f7770b7e22b83c1c45d3d22cc3d55959df394c2ade91f17778a16a2c5d1333500ba0b306b3870540c85be52f6954871018ee4bdf5301b5f6bef5cae555f7e7445092d9d477b1749745ad253a6923b01acd9ccefda4b0bf8702308b4ddf91dd38a5adae03ac78801b61eb295e1b8bfe6b6043df8956c74d0f13d523e96d8dc00a57d9a1bdb739a096df5d13a1031d8b9d52b3d9f54c4d33b2b720b6ef84cef8dedd7b7bd43645d98752c965e3b1c801cac234805182d86d2d363a0323d77c608686530b0fb273a855823bf7fea8e32882530a45763c302b0382a71bcf43075ab62b707a8231e40edbe52dabc4d21b3fb7e2c0404b83088992834cd169ed0f498ad75a2f2f75f47b5f1f949d319f8e105bd7744e2e9f91f9626be03e73144a61574896f246a9dc4514d547eb3e65499c564cf404970042a4bdf7acd9e54aacb60b0c94ce942fe324cd0ba36b723165b112d484cea5f0f3e2c0453bc8178bd5dc30bab2be50f52adc412fe514164bc1e56a715cc08908930953549253aa37df820b159efbaef663b087de4815f35a4ad59503ec81e64f5260e3f879beed82ddf9ded97963dd3b4bc294089d39a4ffdc5bdbc33b955783d9786c2c76082f8b3c66d5ce0d5507b77bb1599333f1fba8fa3886420a437635313c0782bb05df195306f16564209330eb1bddae74fa85da5276f1e0c54709de47c98f8c5cdd67f11e03d7851e617a6aae3a1e4392df2b9fcf4b1bd2224234d6d2e07e74f22f6e0454745348f9e244b2c5421adb1abf3f7855921648b2068d4952e5abadeac4b51ca1bc4c4f8ccc8b23f531d913b2757b287ab804da87cee7b5b2a28e0c3b8b0c9ed59d76ecaded18b978c1176fb17904549bae2c235adf984dcb5b0f02dc5de47f8bc80a57d9a1bdb739a096df5d13a1031d8b9d52b3d9f54c4d33b2b720b6ef86ccf8deda7862dd3b48cc864bd962edbf9555cbdf288e11869e6f377f2a42358d3a7dd6d05e0148f16ba8418e23ffeaa1f13592431247762a2f2b5dd6e742910d0917f06a7126d86bb849dea674fd81d35973e3e3c75800db49d59ac9018f20b1595ec09f167d3526a4264c0394df3a848e510d80760d74cad6f86a75f22c6a0154745046e8a100e98c0253d50aa32c6313dd0f12fa4cdf5000a5ffbbf8d8e252e7ee4a509c8ad371aa739e0ce02e337a79b005c98ac3f6b6b3b887024b8b47da8ed436a5a3fd04aa63871228a6225708d1fe7b6252c5894dd3521a1fd54ffc6997d00d59d7fce9b624bc989f5955a319549bdc44e99fe81c1b3eb8f065a7f294cce2cac46863cc2c4ccc9f5bd87df9b1965589936dce5fcf9e2c2c6a2a033983602d8c9f4e5145ea37ae4b8c61bebdfaf92f8a560a5f63362d2b1c96a102df410745ad392323d06abe5ddca66be496890d24aabf95404a93068992d81c897aed1012db9805272b7de1724c01939d6fcbcf491c907403668d97a32336b5303d5c1c265640feea54b0c55d1ddb4ceb7f240ddc1805f4478c1542e5b1f9f689bf05bce60617c8ca952da1659650ab75662471aa01c283cefba4b3b8960b2e8b0d8fd3816ae5a3fc50bd648d"; local _liwziI8iBwb0IiB8zIO05bBQ125f = (getgenv and getgenv()) or (getfenv and getfenv(0)) or _G; local function _H(h) local b = {}; for i = 1, #h, 2 do b[#b+1] = tonumber(h:sub(i, i+1), 16) end return b end; local function _D(b) local o = {}; for i = 1, #b do local k = ((i-1)%#_lMwOz2OOB90nuBO1BmZ2Mmb51559)+1; o[i] = bit32.bxor(b[i], _lMwOz2OOB90nuBO1BmZ2Mmb51559[k], ((i-1)*53)%256) end return o end; local _QnmzIQwMwvnQl958vvlBI02me98f = _D(_H(_Q5l0mSn22z550qlMg5uiQzqg8a14)); local function _MSM25Q898IMu8uIilm8nql8Zc4a6() return bit32.bxor(math.floor(os.clock()*10^6)%0xFFFFFFFF, collectgarbage('count')*1024, 0xDEADC0DE) end; local function _R32(b, p) return b[p]*16777216 + b[p+1]*65536 + b[p+2]*256 + b[p+3] end; local function _R16(b, p) return b[p]*256 + b[p+1] end; local ic = _R32(_QnmzIQwMwvnQl958vvlBI02me98f, 1); local co = 5 + ic*5; local cc = _R32(_QnmzIQwMwvnQl958vvlBI02me98f, co); local _99MSwgI0nb52B28MSOimb8wI4eb3 = {}; local cu = co + 4; for i = 1, cc do local t = _QnmzIQwMwvnQl958vvlBI02me98f[cu]; cu = cu + 1; if t > 0 then local l = _R32(_QnmzIQwMwvnQl958vvlBI02me98f, cu); cu = cu + 4; local s = ''; for j = 1, l do s = s .. string.char(_QnmzIQwMwvnQl958vvlBI02me98f[cu]); cu = cu + 1 end; if t == 2 then _99MSwgI0nb52B28MSOimb8wI4eb3[i] = tonumber(s) else _99MSwgI0nb52B28MSOimb8wI4eb3[i] = s end else cu = cu + 1 end end; local _g9gB1Qg1b1zSlQ92vzZBl1wIffd2 = function() local _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7 = {}; local _2qOMqZzz10vmml8bgQ99bzBl145d = 1; local _S8wSZlzSBQg91n9l9qn1zS0u57c6 = 476480; local _Iggwm0SlSlBwS5inMZ9ZgQqu018f = _MSM25Q898IMu8uIilm8nql8Zc4a6(); local _bu8ISMz05ZZ2bbMz8v5ni9006101 = 0; local _qZl2SnZ2i1lgqiB9Q8gQliBI8472 = {}; local _2B8vZM5qzOi85ZuBQbOwwlMz783f = {}; local function _0OMw8I0wOQOwM9umQQ0iqu12f429(op, pc, seed) return bit32.bxor(op, bit32.band(pc, 0xFF), bit32.band(seed, 0xFF), bit32.band(bit32.rshift(seed, 8), 0xFF)) % 256 end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[173] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 173, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[203] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 203, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[200] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[a] = _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[b][_Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[c]]; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 200, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[16] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 16, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[255] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 255, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[23] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, _Iggwm0SlSlBwS5inMZ9ZgQqu018f, a, b, c); _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 23, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[127] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 127, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[55] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _Iggwm0SlSlBwS5inMZ9ZgQqu018f = bit32.bxor(_Iggwm0SlSlBwS5inMZ9ZgQqu018f, _MSM25Q898IMu8uIilm8nql8Zc4a6()); if _Iggwm0SlSlBwS5inMZ9ZgQqu018f % 13 == 0 then _bu8ISMz05ZZ2bbMz8v5ni9006101 = _bu8ISMz05ZZ2bbMz8v5ni9006101 + 1 end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 55, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[203] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 203, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[78] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[a][_Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[b]] = _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[c]; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 78, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[57] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[a] = {}; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 57, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[230] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; local target = 5 + ((_2qOMqZzz10vmml8bgQ99bzBl145d + a) % ic) * 5; _QnmzIQwMwvnQl958vvlBI02me98f[target] = bit32.bxor(_QnmzIQwMwvnQl958vvlBI02me98f[target], b, c); _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 230, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[228] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 228, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[172] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; local f = _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[a]; local args = {}; for m = 1, b do args[m] = _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[a + m] end; if f then f((unpack or table.unpack)(args)) end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 172, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[71] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[a] = _liwziI8iBwb0IiB8zIO05bBQ125f; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 71, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[100] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 100, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[80] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _2qOMqZzz10vmml8bgQ99bzBl145d = -1; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 80, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[154] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 154, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[118] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 118, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[3] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; local r1, r2 = _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[b] or 0, _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[c] or 0; _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[a] = r1 + r2 + _bu8ISMz05ZZ2bbMz8v5ni9006101; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 3, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[253] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; local v = _99MSwgI0nb52B28MSOimb8wI4eb3[b + 1]; if c == 1 then local f = loadstring('return ' .. v); if f then v = f()() end end; _Iiwi2QIql0I0O2vmv5QMBS5Bc5c7[a] = v; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 253, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[198] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 198, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[197] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; local _IMOn9l8SB0lwuw2gq58Bii517a81 = function() local x = 0; for i=1,100 do x = x + i end return x end; _IMOn9l8SB0lwuw2gq58Bii517a81(); _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 197, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[170] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 170, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; _qZl2SnZ2i1lgqiB9Q8gQliBI8472[195] = function(a, b, c) if _bu8ISMz05ZZ2bbMz8v5ni9006101 > 0 then _S8wSZlzSBQg91n9l9qn1zS0u57c6 = _S8wSZlzSBQg91n9l9qn1zS0u57c6 + _bu8ISMz05ZZ2bbMz8v5ni9006101; if math.random() > 0.7 then return end end; if debug.info(print, 's') ~= '=[C]' or #debug.traceback() > 500 then _bu8ISMz05ZZ2bbMz8v5ni9006101 = _bu8ISMz05ZZ2bbMz8v5ni9006101 + 7 end; _S8wSZlzSBQg91n9l9qn1zS0u57c6 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, 195, a, _Iggwm0SlSlBwS5inMZ9ZgQqu018f) + 1; end; while _2qOMqZzz10vmml8bgQ99bzBl145d > 0 do local o = 5 + (_2qOMqZzz10vmml8bgQ99bzBl145d - 1) * 5; local _op = bit32.bxor(_QnmzIQwMwvnQl958vvlBI02me98f[o], (19 + _2qOMqZzz10vmml8bgQ99bzBl145d * 17) % 256); local _a = bit32.bxor(_QnmzIQwMwvnQl958vvlBI02me98f[o+1], (_2qOMqZzz10vmml8bgQ99bzBl145d * 7) % 256); local _b = bit32.bxor(_R16(_QnmzIQwMwvnQl958vvlBI02me98f, o+2), (_2qOMqZzz10vmml8bgQ99bzBl145d * 13) % 65535); local _c = bit32.bxor(_QnmzIQwMwvnQl958vvlBI02me98f[o+4], (_2qOMqZzz10vmml8bgQ99bzBl145d * 3) % 256); local a, b, c; local p = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, _2qOMqZzz10vmml8bgQ99bzBl145d) % 3; if p == 0 then a,b,c = _a,_b,_c elseif p == 1 then a,b,c = _b,_c,_a else a,b,c = _c,_a,_b end; local h = _qZl2SnZ2i1lgqiB9Q8gQliBI8472[_op]; if h then h(a, b, c) end; if _2qOMqZzz10vmml8bgQ99bzBl145d > 0 then local _qMI9gz0vl20wwmnMIZ5w158l3ae2 = bit32.bxor(_S8wSZlzSBQg91n9l9qn1zS0u57c6, _Iggwm0SlSlBwS5inMZ9ZgQqu018f, _2qOMqZzz10vmml8bgQ99bzBl145d); if _qMI9gz0vl20wwmnMIZ5w158l3ae2 % 1000 == 0 then _2qOMqZzz10vmml8bgQ99bzBl145d = _2qOMqZzz10vmml8bgQ99bzBl145d + 1 else _2qOMqZzz10vmml8bgQ99bzBl145d = _2qOMqZzz10vmml8bgQ99bzBl145d + 1 end; end; if _2qOMqZzz10vmml8bgQ99bzBl145d % 100 == 0 then if task and task.wait then task.wait() elseif wait then wait() end end; end; end; pcall(_g9gB1Qg1b1zSlQ92vzZBl1wIffd2); \ No newline at end of file diff --git a/test_v11_0.php b/test_v11_0.php new file mode 100644 index 0000000..67ab3a8 --- /dev/null +++ b/test_v11_0.php @@ -0,0 +1,52 @@ + [ + 'header' => "Content-type: application/json\r\n", + 'method' => 'POST', + 'content' => json_encode(['code' => $test_code]), + ], +]; + +$context = stream_context_create($options); +$result = file_get_contents($url, false, $context); + +if ($result === FALSE) { + die("Error reaching process.php"); +} + +$response = json_decode($result, true); + +if ($response && $response['success']) { + $protected_file = 'protected_v11_0.lua'; + file_put_contents($protected_file, $response['protected_code']); + echo "Successfully generated $protected_file\n"; + echo "Stats: " . json_encode($response['stats']) . "\n"; +} else { + echo "Error: " . ($response['error'] ?? 'Unknown error') . "\n"; + echo "Full response: " . $result . "\n"; +} + diff --git a/test_v3_2.php b/test_v3_2.php new file mode 100644 index 0000000..54d75a2 --- /dev/null +++ b/test_v3_2.php @@ -0,0 +1,45 @@ + $test_code])); +curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); + +$response = curl_exec($ch); +$data = json_decode($response, true); + +if ($data && $data['success']) { + echo "SUCCESS: Obfuscation completed.\n"; + echo "Stats: " . json_encode($data['stats']) . "\n"; + $protected_file = 'protected_v3_2.lua'; + file_put_contents($protected_file, $data['protected_code']); + echo "Protected code saved to $protected_file\n"; + + // Check if the watermark is present + if (strpos($data['protected_code'], 'Luartex V3.2 | https://discord.gg/GpucUKeCtF') !== false) { + echo "VERIFIED: Watermark present.\n"; + } else { + echo "FAILED: Watermark missing!\n"; + } +} else { + echo "FAILED: " . ($data['error'] ?? 'Unknown error') . "\n"; +} + +curl_close($ch); + diff --git a/test_v6_0.php b/test_v6_0.php index 0c2d441..6d96ba0 100644 --- a/test_v6_0.php +++ b/test_v6_0.php @@ -1,24 +1,49 @@ 0 then\n nested(a - 1)\n end\nend\n\nnested(3)\nprint("Finished")\n'; +/** + * Test for Luartex V6.0 - Infinite Morph Engine + */ -$payload = json_encode(['code' => $code]); +$test_code = ' +print("Luartex V6.0 Reality Test") +local secret = "INFINITE_MORPH_ACTIVE" +local data = {1, 2, 3, 4, 5} +local sum = 0 +for i, v in ipairs(data) do + sum = sum + v +end +print("Checksum: " .. tostring(sum)) +if sum == 15 then + print("Logic Integrity: PASSED") +else + print("Logic Integrity: POISONED") +end +'; -$ch = curl_init('http://localhost/process.php'); -curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); -curl_setopt($ch, CURLOPT_POST, true); -curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); -curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); +$url = 'http://localhost/process.php'; +$options = [ + 'http' => [ + 'header' => "Content-type: application/json\r\n", + 'method' => 'POST', + 'content' => json_encode(['code' => $test_code]), + ], +]; -$response = curl_exec($ch); -curl_close($ch); +$context = stream_context_create($options); +$result = file_get_contents($url, false, $context); -$res = json_decode($response, true); -if ($res && $res['success']) { - $protected_code = $res['protected_code']; - file_put_contents('protected_v6_0.lua', $protected_code); - echo "Obfuscation successful. Output saved to protected_v6_0.lua\n"; - echo "Stats: " . json_encode($res['stats']) . "\n"; +if ($result === FALSE) { + die("Error reaching process.php"); +} + +$response = json_decode($result, true); + +if ($response && $response['success']) { + $protected_file = 'protected_v6_0.lua'; + file_put_contents($protected_file, $response['protected_code']); + echo "Successfully generated $protected_file\n"; + echo "Stats: " . json_encode($response['stats']) . "\n"; } else { - echo "Obfuscation failed: " . ($res['error'] ?? 'Unknown error') . "\n"; - echo "Response: " . $response . "\n"; -} \ No newline at end of file + echo "Error: " . ($response['error'] ?? 'Unknown error') . "\n"; + echo "Full response: " . $result . "\n"; +} +