(function e(t, n, r) { function s(o, u) { if (!n[o]) { if (!t[o]) { var a = typeof require == "function" && require; if (!u && a) return a(o, !0); if (i) return i(o, !0); var f = new Error("Cannot find module '" + o + "'"); throw ((f.code = "MODULE_NOT_FOUND"), f); } var l = (n[o] = { exports: {} }); t[o][0].call( l.exports, function (e) { var n = t[o][1][e]; return s(n ? n : e); }, l, l.exports, e, t, n, r ); } return n[o].exports; } var i = typeof require == "function" && require; for (var o = 0; o < r.length; o++) s(r[o]); return s; })( { 1: [ function (require, module, exports) { "use strict"; window.ZstdCodec = require("./lib/zstd-codec.js"); window.ZstdStream = require("./lib/zstd-stream.js"); }, { "./lib/zstd-codec.js": 7, "./lib/zstd-stream.js": 8 }, ], 2: [ function (require, module, exports) { "use strict"; exports.DEFAULT_COMPRESSION_LEVEL = 3; exports.STREAMING_DEFAULT_BUFFER_SIZE = 512 * 1024; }, {}, ], 3: [ function (require, module, exports) { (function (Buffer) { "use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var ArrayBufferHelper = (function () { function ArrayBufferHelper() { _classCallCheck(this, ArrayBufferHelper); } _createClass(ArrayBufferHelper, null, [ { key: "transfer", value: function transfer(old_buffer, new_capacity) { var bytes = new Uint8Array(new ArrayBuffer(new_capacity)); bytes.set(new Uint8Array(old_buffer.slice(0, new_capacity))); return bytes.buffer; }, }, ]); return ArrayBufferHelper; })(); var getClassName = function getClassName(obj) { if ( !obj || (typeof obj === "undefined" ? "undefined" : _typeof(obj)) != "object" ) return null; // Object.prototype.toString returns '[object ClassName]', // remove prefix '[object ' and suffix ']' return Object.prototype.toString .call(obj) .slice("[object ".length, -1); }; var isUint8Array = function isUint8Array(obj) { return getClassName(obj) == "Uint8Array"; }; var isString = function isString(obj) { return typeof obj == "string" || getClassName(obj) == "String"; }; var toTypedArray = function toTypedArray( chunk, encoding, string_decoder ) { if (isString(chunk)) { chunk = string_decoder(encoding); } if (isUint8Array(chunk)) { // NOTE: Buffer is recognized as Uint8Array object. return chunk; } else if (getClassName(chunk) == "ArrayBuffer") { return new Uint8Array(chunk); } else if (Array.isArray(chunk)) { return new Uint8Array(chunk); } return null; }; // NOTE: only available on Node.js environment var fromTypedArrayToBuffer = function fromTypedArrayToBuffer( typedArray ) { return Buffer.from(typedArray.buffer); }; exports.ArrayBufferHelper = ArrayBufferHelper; exports.getClassName = getClassName; exports.isUint8Array = isUint8Array; exports.isString = isString; exports.toTypedArray = toTypedArray; exports.fromTypedArrayToBuffer = fromTypedArrayToBuffer; }).call(this, require("buffer").Buffer); }, { buffer: 54 }, ], 4: [ function (require, module, exports) { "use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; // REF: https://stackoverflow.com/a/47880734 var wasmSupported = (function () { try { if ( (typeof WebAssembly === "undefined" ? "undefined" : _typeof(WebAssembly)) === "object" && typeof WebAssembly.instantiate === "function" ) { var module = new WebAssembly.Module( Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00) ); if (module instanceof WebAssembly.Module) return ( new WebAssembly.Instance(module) instanceof WebAssembly.Instance ); } } catch (e) {} return false; })(); exports.run = function (f) { var Module = {}; Module.onRuntimeInitialized = function () { f(Module); }; if (wasmSupported) { require("./zstd-codec-binding-wasm.js")(Module); } else { require("./zstd-codec-binding.js")(Module); } }; }, { "./zstd-codec-binding-wasm.js": 5, "./zstd-codec-binding.js": 6 }, ], 5: [ function (require, module, exports) { (function (process, Buffer, __dirname) { "use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var Module = (function () { var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : undefined; return function (Module) { Module = Module || {}; var Module; if (!Module) Module = typeof Module !== "undefined" ? Module : {}; var moduleOverrides = {}; var key; for (key in Module) { if (Module.hasOwnProperty(key)) { moduleOverrides[key] = Module[key]; } } Module["arguments"] = []; Module["thisProgram"] = "./this.program"; Module["quit"] = function (status, toThrow) { throw toThrow; }; Module["preRun"] = []; Module["postRun"] = []; var ENVIRONMENT_IS_WEB = false; var ENVIRONMENT_IS_WORKER = false; var ENVIRONMENT_IS_NODE = false; var ENVIRONMENT_IS_SHELL = false; ENVIRONMENT_IS_WEB = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object"; ENVIRONMENT_IS_WORKER = typeof importScripts === "function"; ENVIRONMENT_IS_NODE = (typeof process === "undefined" ? "undefined" : _typeof(process)) === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; var scriptDirectory = ""; function locateFile(path) { if (Module["locateFile"]) { return Module["locateFile"](path, scriptDirectory); } else { return scriptDirectory + path; } } if (ENVIRONMENT_IS_NODE) { scriptDirectory = __dirname + "/"; var nodeFS; var nodePath; Module["read"] = function shell_read(filename, binary) { var ret; ret = tryParseAsDataURI(filename); if (!ret) { if (!nodeFS) nodeFS = require("fs"); if (!nodePath) nodePath = require("path"); filename = nodePath["normalize"](filename); ret = nodeFS["readFileSync"](filename); } return binary ? ret : ret.toString(); }; Module["readBinary"] = function readBinary(filename) { var ret = Module["read"](filename, true); if (!ret.buffer) { ret = new Uint8Array(ret); } assert(ret.buffer); return ret; }; if (process["argv"].length > 1) { Module["thisProgram"] = process["argv"][1].replace( /\\/g, "/" ); } Module["arguments"] = process["argv"].slice(2); process["on"]("uncaughtException", function (ex) { if (!(ex instanceof ExitStatus)) { throw ex; } }); process["on"]("unhandledRejection", function (reason, p) { process["exit"](1); }); Module["quit"] = function (status) { process["exit"](status); }; Module["inspect"] = function () { return "[Emscripten Module object]"; }; } else if (ENVIRONMENT_IS_SHELL) { if (typeof read != "undefined") { Module["read"] = function shell_read(f) { var data = tryParseAsDataURI(f); if (data) { return intArrayToString(data); } return read(f); }; } Module["readBinary"] = function readBinary(f) { var data; data = tryParseAsDataURI(f); if (data) { return data; } if (typeof readbuffer === "function") { return new Uint8Array(readbuffer(f)); } data = read(f, "binary"); assert( (typeof data === "undefined" ? "undefined" : _typeof(data)) === "object" ); return data; }; if (typeof scriptArgs != "undefined") { Module["arguments"] = scriptArgs; } else if (typeof arguments != "undefined") { Module["arguments"] = arguments; } if (typeof quit === "function") { Module["quit"] = function (status) { quit(status); }; } } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { if (ENVIRONMENT_IS_WEB) { if (document.currentScript) { scriptDirectory = document.currentScript.src; } } else { scriptDirectory = self.location.href; } if (_scriptDir) { scriptDirectory = _scriptDir; } if (scriptDirectory.indexOf("blob:") !== 0) { scriptDirectory = scriptDirectory.split("/").slice(0, -1).join("/") + "/"; } else { scriptDirectory = ""; } Module["read"] = function shell_read(url) { try { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.send(null); return xhr.responseText; } catch (err) { var data = tryParseAsDataURI(url); if (data) { return intArrayToString(data); } throw err; } }; if (ENVIRONMENT_IS_WORKER) { Module["readBinary"] = function readBinary(url) { try { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.responseType = "arraybuffer"; xhr.send(null); return new Uint8Array(xhr.response); } catch (err) { var data = tryParseAsDataURI(url); if (data) { return data; } throw err; } }; } Module["readAsync"] = function readAsync(url, onload, onerror) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = function xhr_onload() { if ( xhr.status == 200 || (xhr.status == 0 && xhr.response) ) { onload(xhr.response); return; } var data = tryParseAsDataURI(url); if (data) { onload(data.buffer); return; } onerror(); }; xhr.onerror = onerror; xhr.send(null); }; Module["setWindowTitle"] = function (title) { document.title = title; }; } else { } var out = Module["print"] || (typeof console !== "undefined" ? console.log.bind(console) : typeof print !== "undefined" ? print : null); var err = Module["printErr"] || (typeof printErr !== "undefined" ? printErr : (typeof console !== "undefined" && console.warn.bind(console)) || out); for (key in moduleOverrides) { if (moduleOverrides.hasOwnProperty(key)) { Module[key] = moduleOverrides[key]; } } moduleOverrides = undefined; var STACK_ALIGN = 16; function staticAlloc(size) { var ret = STATICTOP; STATICTOP = (STATICTOP + size + 15) & -16; return ret; } function dynamicAlloc(size) { var ret = HEAP32[DYNAMICTOP_PTR >> 2]; var end = (ret + size + 15) & -16; HEAP32[DYNAMICTOP_PTR >> 2] = end; if (end >= TOTAL_MEMORY) { var success = enlargeMemory(); if (!success) { HEAP32[DYNAMICTOP_PTR >> 2] = ret; return 0; } } return ret; } function alignMemory(size, factor) { if (!factor) factor = STACK_ALIGN; var ret = (size = Math.ceil(size / factor) * factor); return ret; } function getNativeTypeSize(type) { switch (type) { case "i1": case "i8": return 1; case "i16": return 2; case "i32": return 4; case "i64": return 8; case "float": return 4; case "double": return 8; default: { if (type[type.length - 1] === "*") { return 4; } else if (type[0] === "i") { var bits = parseInt(type.substr(1)); assert(bits % 8 === 0); return bits / 8; } else { return 0; } } } } function warnOnce(text) { if (!warnOnce.shown) warnOnce.shown = {}; if (!warnOnce.shown[text]) { warnOnce.shown[text] = 1; err(text); } } var asm2wasmImports = { "f64-rem": function f64Rem(x, y) { return x % y; }, debugger: function _debugger() { debugger; }, }; var jsCallStartIndex = 1; var functionPointers = new Array(0); var funcWrappers = {}; function dynCall(sig, ptr, args) { if (args && args.length) { return Module["dynCall_" + sig].apply( null, [ptr].concat(args) ); } else { return Module["dynCall_" + sig].call(null, ptr); } } var GLOBAL_BASE = 1024; var ABORT = 0; var EXITSTATUS = 0; function assert(condition, text) { if (!condition) { abort("Assertion failed: " + text); } } function getCFunc(ident) { var func = Module["_" + ident]; assert( func, "Cannot call unknown function " + ident + ", make sure it is exported" ); return func; } var JSfuncs = { stackSave: function stackSave() { _stackSave(); }, stackRestore: function stackRestore() { _stackRestore(); }, arrayToC: function arrayToC(arr) { var ret = stackAlloc(arr.length); writeArrayToMemory(arr, ret); return ret; }, stringToC: function stringToC(str) { var ret = 0; if (str !== null && str !== undefined && str !== 0) { var len = (str.length << 2) + 1; ret = stackAlloc(len); stringToUTF8(str, ret, len); } return ret; }, }; var toC = { string: JSfuncs["stringToC"], array: JSfuncs["arrayToC"], }; function ccall(ident, returnType, argTypes, args, opts) { function convertReturnValue(ret) { if (returnType === "string") return Pointer_stringify(ret); if (returnType === "boolean") return Boolean(ret); return ret; } var func = getCFunc(ident); var cArgs = []; var stack = 0; if (args) { for (var i = 0; i < args.length; i++) { var converter = toC[argTypes[i]]; if (converter) { if (stack === 0) stack = _stackSave(); cArgs[i] = converter(args[i]); } else { cArgs[i] = args[i]; } } } var ret = func.apply(null, cArgs); ret = convertReturnValue(ret); if (stack !== 0) _stackRestore(stack); return ret; } function setValue(ptr, value, type, noSafe) { type = type || "i8"; if (type.charAt(type.length - 1) === "*") type = "i32"; switch (type) { case "i1": HEAP8[ptr >> 0] = value; break; case "i8": HEAP8[ptr >> 0] = value; break; case "i16": HEAP16[ptr >> 1] = value; break; case "i32": HEAP32[ptr >> 2] = value; break; case "i64": (tempI64 = [ value >>> 0, ((tempDouble = value), +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min( +Math_floor(tempDouble / 4294967296), 4294967295 ) | 0) >>> 0 : ~~+Math_ceil( (tempDouble - +(~~tempDouble >>> 0)) / 4294967296 ) >>> 0 : 0), ]), (HEAP32[ptr >> 2] = tempI64[0]), (HEAP32[(ptr + 4) >> 2] = tempI64[1]); break; case "float": HEAPF32[ptr >> 2] = value; break; case "double": HEAPF64[ptr >> 3] = value; break; default: abort("invalid type for setValue: " + type); } } var ALLOC_STATIC = 2; var ALLOC_NONE = 4; function Pointer_stringify(ptr, length) { if (length === 0 || !ptr) return ""; var hasUtf = 0; var t; var i = 0; while (1) { t = HEAPU8[(ptr + i) >> 0]; hasUtf |= t; if (t == 0 && !length) break; i++; if (length && i == length) break; } if (!length) length = i; var ret = ""; if (hasUtf < 128) { var MAX_CHUNK = 1024; var curr; while (length > 0) { curr = String.fromCharCode.apply( String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)) ); ret = ret ? ret + curr : curr; ptr += MAX_CHUNK; length -= MAX_CHUNK; } return ret; } return UTF8ToString(ptr); } var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined; function UTF8ArrayToString(u8Array, idx) { var endPtr = idx; while (u8Array[endPtr]) { ++endPtr; } if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); } else { var u0, u1, u2, u3, u4, u5; var str = ""; while (1) { u0 = u8Array[idx++]; if (!u0) return str; if (!(u0 & 128)) { str += String.fromCharCode(u0); continue; } u1 = u8Array[idx++] & 63; if ((u0 & 224) == 192) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } u2 = u8Array[idx++] & 63; if ((u0 & 240) == 224) { u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; } else { u3 = u8Array[idx++] & 63; if ((u0 & 248) == 240) { u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; } else { u4 = u8Array[idx++] & 63; if ((u0 & 252) == 248) { u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; } else { u5 = u8Array[idx++] & 63; u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; } } } if (u0 < 65536) { str += String.fromCharCode(u0); } else { var ch = u0 - 65536; str += String.fromCharCode( 55296 | (ch >> 10), 56320 | (ch & 1023) ); } } } } function UTF8ToString(ptr) { return UTF8ArrayToString(HEAPU8, ptr); } function stringToUTF8Array( str, outU8Array, outIdx, maxBytesToWrite ) { if (!(maxBytesToWrite > 0)) return 0; var startIdx = outIdx; var endIdx = outIdx + maxBytesToWrite - 1; for (var i = 0; i < str.length; ++i) { var u = str.charCodeAt(i); if (u >= 55296 && u <= 57343) { var u1 = str.charCodeAt(++i); u = (65536 + ((u & 1023) << 10)) | (u1 & 1023); } if (u <= 127) { if (outIdx >= endIdx) break; outU8Array[outIdx++] = u; } else if (u <= 2047) { if (outIdx + 1 >= endIdx) break; outU8Array[outIdx++] = 192 | (u >> 6); outU8Array[outIdx++] = 128 | (u & 63); } else if (u <= 65535) { if (outIdx + 2 >= endIdx) break; outU8Array[outIdx++] = 224 | (u >> 12); outU8Array[outIdx++] = 128 | ((u >> 6) & 63); outU8Array[outIdx++] = 128 | (u & 63); } else if (u <= 2097151) { if (outIdx + 3 >= endIdx) break; outU8Array[outIdx++] = 240 | (u >> 18); outU8Array[outIdx++] = 128 | ((u >> 12) & 63); outU8Array[outIdx++] = 128 | ((u >> 6) & 63); outU8Array[outIdx++] = 128 | (u & 63); } else if (u <= 67108863) { if (outIdx + 4 >= endIdx) break; outU8Array[outIdx++] = 248 | (u >> 24); outU8Array[outIdx++] = 128 | ((u >> 18) & 63); outU8Array[outIdx++] = 128 | ((u >> 12) & 63); outU8Array[outIdx++] = 128 | ((u >> 6) & 63); outU8Array[outIdx++] = 128 | (u & 63); } else { if (outIdx + 5 >= endIdx) break; outU8Array[outIdx++] = 252 | (u >> 30); outU8Array[outIdx++] = 128 | ((u >> 24) & 63); outU8Array[outIdx++] = 128 | ((u >> 18) & 63); outU8Array[outIdx++] = 128 | ((u >> 12) & 63); outU8Array[outIdx++] = 128 | ((u >> 6) & 63); outU8Array[outIdx++] = 128 | (u & 63); } } outU8Array[outIdx] = 0; return outIdx - startIdx; } function stringToUTF8(str, outPtr, maxBytesToWrite) { return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); } function lengthBytesUTF8(str) { var len = 0; for (var i = 0; i < str.length; ++i) { var u = str.charCodeAt(i); if (u >= 55296 && u <= 57343) u = (65536 + ((u & 1023) << 10)) | (str.charCodeAt(++i) & 1023); if (u <= 127) { ++len; } else if (u <= 2047) { len += 2; } else if (u <= 65535) { len += 3; } else if (u <= 2097151) { len += 4; } else if (u <= 67108863) { len += 5; } else { len += 6; } } return len; } var UTF16Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : undefined; function demangle(func) { var __cxa_demangle_func = Module["___cxa_demangle"] || Module["__cxa_demangle"]; assert(__cxa_demangle_func); try { var s = func.substr(1); var len = lengthBytesUTF8(s) + 1; var buf = _malloc(len); stringToUTF8(s, buf, len); var status = _malloc(4); var ret = __cxa_demangle_func(buf, 0, 0, status); if (HEAP32[status >> 2] === 0 && ret) { return Pointer_stringify(ret); } } catch (e) { } finally { if (buf) _free(buf); if (status) _free(status); if (ret) _free(ret); } return func; } function demangleAll(text) { var regex = /__Z[\w\d_]+/g; return text.replace(regex, function (x) { var y = demangle(x); return x === y ? x : x + " [" + y + "]"; }); } function jsStackTrace() { var err = new Error(); if (!err.stack) { try { throw new Error(0); } catch (e) { err = e; } if (!err.stack) { return "(no stack trace available)"; } } return err.stack.toString(); } function stackTrace() { var js = jsStackTrace(); if (Module["extraStackTrace"]) js += "\n" + Module["extraStackTrace"](); return demangleAll(js); } var WASM_PAGE_SIZE = 65536; var ASMJS_PAGE_SIZE = 16777216; function alignUp(x, multiple) { if (x % multiple > 0) { x += multiple - (x % multiple); } return x; } var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; function updateGlobalBuffer(buf) { Module["buffer"] = buffer = buf; } function updateGlobalBufferViews() { Module["HEAP8"] = HEAP8 = new Int8Array(buffer); Module["HEAP16"] = HEAP16 = new Int16Array(buffer); Module["HEAP32"] = HEAP32 = new Int32Array(buffer); Module["HEAPU8"] = HEAPU8 = new Uint8Array(buffer); Module["HEAPU16"] = HEAPU16 = new Uint16Array(buffer); Module["HEAPU32"] = HEAPU32 = new Uint32Array(buffer); Module["HEAPF32"] = HEAPF32 = new Float32Array(buffer); Module["HEAPF64"] = HEAPF64 = new Float64Array(buffer); } var STATIC_BASE, STATICTOP, staticSealed; var STACK_BASE, STACKTOP, STACK_MAX; var DYNAMIC_BASE, DYNAMICTOP_PTR; STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; staticSealed = false; function abortOnCannotGrowMemory() { abort( "Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value " + TOTAL_MEMORY + ", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 " ); } function enlargeMemory() { abortOnCannotGrowMemory(); } var TOTAL_STACK = Module["TOTAL_STACK"] || 5242880; var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 16777216; if (TOTAL_MEMORY < TOTAL_STACK) err( "TOTAL_MEMORY should be larger than TOTAL_STACK, was " + TOTAL_MEMORY + "! (TOTAL_STACK=" + TOTAL_STACK + ")" ); if (Module["buffer"]) { buffer = Module["buffer"]; } else { if ( (typeof WebAssembly === "undefined" ? "undefined" : _typeof(WebAssembly)) === "object" && typeof WebAssembly.Memory === "function" ) { Module["wasmMemory"] = new WebAssembly.Memory({ initial: TOTAL_MEMORY / WASM_PAGE_SIZE, maximum: TOTAL_MEMORY / WASM_PAGE_SIZE, }); buffer = Module["wasmMemory"].buffer; } else { buffer = new ArrayBuffer(TOTAL_MEMORY); } Module["buffer"] = buffer; } updateGlobalBufferViews(); function getTotalMemory() { return TOTAL_MEMORY; } function callRuntimeCallbacks(callbacks) { while (callbacks.length > 0) { var callback = callbacks.shift(); if (typeof callback == "function") { callback(); continue; } var func = callback.func; if (typeof func === "number") { if (callback.arg === undefined) { Module["dynCall_v"](func); } else { Module["dynCall_vi"](func, callback.arg); } } else { func(callback.arg === undefined ? null : callback.arg); } } } var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATMAIN__ = []; var __ATEXIT__ = []; var __ATPOSTRUN__ = []; var runtimeInitialized = false; var runtimeExited = false; function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function ensureInitRuntime() { if (runtimeInitialized) return; runtimeInitialized = true; callRuntimeCallbacks(__ATINIT__); } function preMain() { callRuntimeCallbacks(__ATMAIN__); } function exitRuntime() { callRuntimeCallbacks(__ATEXIT__); runtimeExited = true; } function postRun() { if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } function writeArrayToMemory(array, buffer) { HEAP8.set(array, buffer); } function writeAsciiToMemory(str, buffer, dontAddNull) { for (var i = 0; i < str.length; ++i) { HEAP8[buffer++ >> 0] = str.charCodeAt(i); } if (!dontAddNull) HEAP8[buffer >> 0] = 0; } var Math_abs = Math.abs; var Math_ceil = Math.ceil; var Math_floor = Math.floor; var Math_min = Math.min; var Math_clz32 = Math.clz32; var runDependencies = 0; var runDependencyWatcher = null; var dependenciesFulfilled = null; function getUniqueRunDependency(id) { return id; } function addRunDependency(id) { runDependencies++; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } } function removeRunDependency(id) { runDependencies--; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } if (runDependencies == 0) { if (runDependencyWatcher !== null) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; } if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } Module["preloadedImages"] = {}; Module["preloadedAudios"] = {}; var dataURIPrefix = "data:application/octet-stream;base64,"; function isDataURI(filename) { return String.prototype.startsWith ? filename.startsWith(dataURIPrefix) : filename.indexOf(dataURIPrefix) === 0; } function integrateWasmJS() { var wasmTextFile = ""; var wasmBinaryFile = "data:application/octet-stream;base64,AGFzbQEAAAABxQMzYAF/AGAAAX9gAn9/AGADf39/AGABfwF/YAN/f38Bf2AAAGACf38Bf2AEf39/fwF/YAV/f39/fwF/YAZ/f39/f38Bf2AEf39/fwBgBn9/f39/fwBgBX9/f39/AGANf39/f39/f39/f39/fwBgCH9/f39/f39/AGADf39/AXxgB39/f39/f38Bf2ABfwF+YAF+AX5gAn5+AX5gAn9+AX9gAn9+AGANf39/f39/f39/f39/fwF/YAh/f39/f39/fwF/YAx/f39/f39/f39/f38Bf2AEf39+fwBgAn5/AX9gBX9/fn9/AX9gBn9/f39/fgF/YAN/f34Bf2AFf39/f34Bf2ALf39/f39/f39/f38Bf2AHf39/f39/fwBgBX9/f35/AX9gCX9/f39/f39/fwF/YAp/f39/f39/f39/AX9gEH9/f39/f39/f39/f39/f38Bf2AEfn9/fgF+YAJ/fwF+YAN+f38Bf2AFf35/f38AYAd/fn9/f39/AX5gCH9/f39/f35/AX9gBn9/f39+fwF/YAR/f39+AX9gB39/f39/f34Bf2AJf39/f39/f39/AGACfn4Bf2AGf3x/f39/AX9gAnx/AXwC9Ak0A2VudgZtZW1vcnkCAYACgAIDZW52BXRhYmxlAXABnAOcAwNlbnYJdGFibGVCYXNlA38AA2Vudg5EWU5BTUlDVE9QX1BUUgN/AANlbnYIU1RBQ0tUT1ADfwADZW52CVNUQUNLX01BWAN/AANlbnYFYWJvcnQAAANlbnYNZW5sYXJnZU1lbW9yeQABA2Vudg5nZXRUb3RhbE1lbW9yeQABA2VudhdhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeQABA2VudhlfX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uAAQDZW52DF9fX2N4YV90aHJvdwADA2VudgdfX19sb2NrAAADZW52C19fX3NldEVyck5vAAADZW52DV9fX3N5c2NhbGwxNDAABwNlbnYNX19fc3lzY2FsbDE0NQAHA2Vudg1fX19zeXNjYWxsMTQ2AAcDZW52DV9fX3N5c2NhbGwyMjEABwNlbnYLX19fc3lzY2FsbDUABwNlbnYMX19fc3lzY2FsbDU0AAcDZW52C19fX3N5c2NhbGw2AAcDZW52CV9fX3VubG9jawAAA2VudhZfX2VtYmluZF9yZWdpc3Rlcl9ib29sAA0DZW52F19fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzAA4DZW52I19fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2NvbnN0cnVjdG9yAAwDZW52IF9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2Z1bmN0aW9uAA8DZW52F19fZW1iaW5kX3JlZ2lzdGVyX2VtdmFsAAIDZW52F19fZW1iaW5kX3JlZ2lzdGVyX2Zsb2F0AAMDZW52Gl9fZW1iaW5kX3JlZ2lzdGVyX2Z1bmN0aW9uAAwDZW52GV9fZW1iaW5kX3JlZ2lzdGVyX2ludGVnZXIADQNlbnYdX19lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcAAwNlbnYcX19lbWJpbmRfcmVnaXN0ZXJfc3RkX3N0cmluZwACA2Vudh1fX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZwADA2VudhZfX2VtYmluZF9yZWdpc3Rlcl92b2lkAAIDZW52Cl9fZW12YWxfYXMAEANlbnYMX19lbXZhbF9jYWxsAAgDZW52GF9fZW12YWxfY2FsbF92b2lkX21ldGhvZAALA2Vudg5fX2VtdmFsX2RlY3JlZgAAA2VudhlfX2VtdmFsX2dldF9tZXRob2RfY2FsbGVyAAcDZW52G19fZW12YWxfZ2V0X21vZHVsZV9wcm9wZXJ0eQAEA2VudhRfX2VtdmFsX2dldF9wcm9wZXJ0eQAHA2Vudg5fX2VtdmFsX2luY3JlZgAAA2VudgtfX2VtdmFsX25ldwAIA2VudhNfX2VtdmFsX25ld19jc3RyaW5nAAQDZW52F19fZW12YWxfcnVuX2Rlc3RydWN0b3JzAAADZW52El9fZW12YWxfdGFrZV92YWx1ZQAHA2VudgZfYWJvcnQABgNlbnYWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwAFA2VudhRfcHRocmVhZF9nZXRzcGVjaWZpYwAEA2VudhNfcHRocmVhZF9rZXlfY3JlYXRlAAcDZW52DV9wdGhyZWFkX29uY2UABwNlbnYUX3B0aHJlYWRfc2V0c3BlY2lmaWMABwPmB+QHBAEAAgIAAQYCAgQCBwIEBwcFBwcEBwUHBwAAAwMABAIAAgcEBAIHBAQCBwQEAgcEBAIHBAQCBwQCAwMFAwQAAQQDCwcFCAADBwQAAAUEBwQAAQUJCAQAAQgFBAEGBwcIBQgABAICBwQIAAQCBwQDAAQCBwQCAAQCBwQAAAcHAgQCBwcEBwQCBwcEBQcHAAQHBAIHBwQHBAIHBwQFBwcEBAkEBAQRCgQICQUDBAcHBwcCBwcEEhITBBIUFBUFBRIHBwIKBwkKCAkKCQgHBQkJBwkKBQMDAAACBAMDAgIWFgICBAUICQgKAwUKCQoCAhcYBQUZGQQBBAAEBBoaBwUKBwoACREICgUFAwMFCwoFBQkEBwcHBwcbGxsbBwgAAAAEBxwdHgISBRQHBx8CAAQEGSAHCgoKCgoKCgoKCgoKCgoKCgMHBwgLBQgFDQ0AAwIFBwgHBwcJCQoNESERGAkJCgkRIgoJAwAYCQMjGAQkCSUICAcIAwsJJicoGwUbCCkqCwsCBQIDAyssAxoJBRgYCgkFAi0RCgEEBC4dLQceBwgIBQcJAgoJBAoJBBgJDy8KCQoJGAcKGAoYAAQBBAQHBAQEBAQEBAcHBQQFCCcnBQUFBAcEEgQHBwcFBAcHBwcFBQcEBQggAwwCCgQREREDGAIRERgEBAoHBQkFCAgEBQUFCAERAREBEQUCCQUJBQkRBQMEAhgEAgQjBwgJBAkJCQkJCAgHCQkFCQUJEQgJBQkPLwICCQQFBQUEBwIFCQUJBQkRBQIYCAgJCAgFCREICQUJCQQFAwUFAgkFBQkFCSMFAwQCGAcJCAQICAkJCAgFCREPLwgJBAUJCQkEBQMFAQkRBAMFBQkFCRgFAwQCGAQJCAgICAUJCREPLwgJBQkJBQkIBAQJCQkJBwcKAQQECQUFBAcEMAUICQQIBAUBBQEFAQUEBQQBCQkJCQQJBAkECQkECQIGAAQEAAcHBwIEBQUEAQUFBQcEBAUHBQcHCAgFCQMEAygbGw0HMTIFBwUEBQcHBwQHBAEEBAAEBwQEBAQGAQIFDA0LBQsLDQgMDQsGAAUFBQwNCwsMDQgCAgILAAAEBQAAAwMEBQIPAwAFBQUFBQIFBwICBQUDAgUFAwUFBQIFAwICAgIFBQUFBwMFAAMLBQUICAUFBQUFBQUFBQUFBQUFBQUFBQUFAgUCAwUFBQUFBQUFBQICAgACAgIDAggFAwwCAgUAAAsCAAcHCAIFBQUCBQUFBwIAAgIFCwIAAAIIAAAAAAIAAgACBQAHBAUEBgQFBQUFBAcFCAkKEQIDCw0MIQEEBwUICQoGAAIDCw0MBh8GfwEjAQt/ASMCC38BIwMLfwFBAAt/AUEAC38BQQALB94EJRhfX0dMT0JBTF9fc3ViX0lfYmluZF9jcHAAgwYfX19HTE9CQUxfX3N1Yl9JX3pzdGRfYmluZGluZ19jYwCKARBfX19jeGFfY2FuX2NhdGNoAO8HD19fX2N4YV9kZW1hbmdsZQDZBhZfX19jeGFfaXNfcG9pbnRlcl90eXBlAPAHEV9fX2Vycm5vX2xvY2F0aW9uAJAGDl9fX2dldFR5cGVOYW1lAIUGBV9mcmVlAIcGD19sbHZtX2Jzd2FwX2kzMgDyBw5fbGx2bV9jdGx6X2k2NADzBwdfbWFsbG9jAIYGB19tZW1jcHkA9AcIX21lbW1vdmUA9QcHX21lbXNldAD2BwVfc2JyawD3BwlkeW5DYWxsX2kAbgpkeW5DYWxsX2lpAPgHC2R5bkNhbGxfaWlpAPkHDGR5bkNhbGxfaWlpaQD6Bw1keW5DYWxsX2lpaWlpAPsHDmR5bkNhbGxfaWlpaWlpAPwHD2R5bkNhbGxfaWlpaWlpaQD9BwlkeW5DYWxsX3YAdApkeW5DYWxsX3ZpAP4HC2R5bkNhbGxfdmlpAP8HDGR5bkNhbGxfdmlpaQCACA1keW5DYWxsX3ZpaWlpAIEIDmR5bkNhbGxfdmlpaWlpAIIID2R5bkNhbGxfdmlpaWlpaQCDCBNlc3RhYmxpc2hTdGFja1NwYWNlADELZ2V0VGVtcFJldDAANAtydW5Qb3N0U2V0cwDxBwtzZXRUZW1wUmV0MAAzCHNldFRocmV3ADIKc3RhY2tBbGxvYwAuDHN0YWNrUmVzdG9yZQAwCXN0YWNrU2F2ZQAvCbcFAQAjAAucA4QIf4UBiQFthAiECIQIhQhMUVJVVllaXV5hYmWRAZUBmAGbAZ4BoQGkAacBrQGxAbMBtwG+AcIBxAHIAYwGvQZ3ezx9boMBbogBbkJrbjjGA9wFhQiFCIUIhQiFCIUIhQiFCIUIhQiFCIUIhQiFCIUIhQiFCIUIhghQVFhcYGSUAZoBoAGmAa8BsAG1AbYBwAHBAcYBxwHoBHY6fIsBjAE9PkBBcUNFRnGGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiG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ACAEJAUgAA8LIARBEWohASAEQRBqIQIgAygCACAFKAIANgIMIAMoAgAgAygCACgCDEEEajYCEAJAIAAoAgBBBE8EQCADKAIAIAUoAgAgACgCAGpBfGo2AgggAygCACgCCBDhASECIAMoAgAgAjYCACABIAUoAgAgACgCAEEBa2osAAA6AAAgAS0AAAR/QQggAS0AABDUAWsFQQALIQIgAygCACACNgIEIAEtAABFBEAgBkF/NgIAIAYoAgAhACAEJAUgAA8LBSADKAIAIAMoAgAoAgw2AgggAygCACADKAIAKAIMLQAANgIAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEECaw4GBQQDAgEABgsgAygCACIBIAEoAgAgBSgCAC0ABkEQdGo2AgAMBgsMBQsMBQsMBQsMBQsMBQsMBQsgAygCACIBIAEoAgAgBSgCAC0ABUEIdGo2AgALIAMoAgAiASABKAIAIAUoAgAtAARqNgIACyADKAIAIgEgASgCACAFKAIALQADQRh0ajYCAAsgAygCACIBIAEoAgAgBSgCAC0AAkEQdGo2AgALIAMoAgAiASABKAIAIAUoAgAtAAFBCHRqNgIACyACIAUoAgAgACgCAEEBa2osAAA6AAAgAi0AAAR/QQggAi0AABDUAWsFQQALIQEgAygCACABNgIEIAItAAAEQCADKAIAQQRqIgEgASgCAEEEIAAoAgBrQQN0ajYCAAwCCyAGQWw2AgAgBigCACEAIAQkBSAADwsLIAYgACgCADYCACAGKAIAIQAgBCQFIAALhQEBAn8jBSEDIwVBIGokBSADQRBqIgQgADYCACADQQxqIgAgATYCACADQQhqIgEgAjYCACADQQRqIgIgASgCADYCACADIAIoAgA2AgAgACgCACADKAIALwEAENwBIQIgBCgCACACNgIAIAAoAgAQ2QEaIAQoAgAgASgCAEEEajYCBCADJAULvQMBBn8jBSEDIwVBEGokBSADQQxqIQIgA0EIaiIBIAA2AgAgASgCACgCBEEgSwRAIAJBAzYCACACKAIAIQAgAyQFIAAPCyABKAIAIQUgASgCACgCCCABKAIAKAIQTwRAIAEoAgBBCGoiACAAKAIAIAUoAgRBA3ZrNgIAIAEoAgBBBGoiACAAKAIAQQdxNgIAIAEoAgAoAggQ4QEhACABKAIAIAA2AgAgAkEANgIAIAIoAgAhACADJAUgAA8LIANBBGohBCADIQAgASgCACgCBCEGIAUoAgggASgCACgCDEcEQCAEIAZBA3Y2AgAgAEEANgIAIAEoAgAoAgggBCgCAGsgASgCACgCDEkEQCAEIAEoAgAoAgggASgCACgCDGs2AgAgAEEBNgIACyABKAIAQQhqIgUgBSgCACAEKAIAazYCACABKAIAQQRqIgUgBSgCACAEKAIAQQN0azYCACABKAIAKAIIEOEBIQQgASgCACAENgIAIAIgACgCADYCACACKAIAIQAgAyQFIAAPCyAGQSBJBH8gAkEBNgIAIAIoAgAhACADJAUgAAUgAkECNgIAIAIoAgAhACADJAUgAAsLmAEBBH8jBSECIwVBIGokBSACQQxqIgMgADYCACACQQhqIgQgATYCACACQRBqIgAgAygCACgCBCADKAIAKAIAQQJ0aigBADYBACACQQRqIgEgAC0AAzYCACACQRRqIgUgACwAAjoAACACIAQoAgAgASgCABDfATYCACADKAIAIAAvAQAgAigCAGo2AgAgBSwAACEAIAIkBSAAC5gBAQR/IwUhAiMFQSBqJAUgAkEMaiIDIAA2AgAgAkEIaiIEIAE2AgAgAkEQaiIAIAMoAgAoAgQgAygCACgCAEECdGooAQA2AQAgAkEEaiIBIAAtAAM2AgAgAkEUaiIFIAAsAAI6AAAgAiAEKAIAIAEoAgAQ3AE2AgAgAygCACAALwEAIAIoAgBqNgIAIAUsAAAhACACJAUgAAtTAQJ/IwUhAiMFQRBqJAUgAkEIaiIDIAA2AgAgAkEEaiIAIAE2AgAgAiADKAIAIAAoAgAQ3QE2AgAgAygCACAAKAIAEN4BIAIoAgAhACACJAUgAAtZAQJ/IwUhAiMFQRBqJAUgAkEIaiIDIAA2AgAgAkEEaiIAIAE2AgAgAkEfNgIAIAMoAgAoAgAgAygCACgCBEEfcXRBAXZBHyAAKAIAa0EfcXYhACACJAUgAAs+AQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgBBBGoiACAAKAIAIAIoAgBqNgIAIAIkBQtTAQJ/IwUhAiMFQRBqJAUgAkEIaiIDIAA2AgAgAkEEaiIAIAE2AgAgAiADKAIAIAAoAgAQ4AE2AgAgAygCACAAKAIAEN4BIAIoAgAhACACJAUgAAtWAQJ/IwUhAiMFQRBqJAUgAkEIaiIDIAA2AgAgAkEEaiIAIAE2AgAgAkEfNgIAIAMoAgAoAgAgAygCACgCBEEfcXRBICAAKAIAa0EfcXYhACACJAUgAAs3AQJ/IwUhASMFQRBqJAUgASAANgIAIAFBBGoiAiABKAIAIgAQzwE2AgAgAigCACEAIAEkBSAAC2YCA38BfiMFIQIjBUEQaiQFIAIiAUEIaiIDIAA2AgBBkOUALQAAQQBHIQAgAygCABDjASEEIAAEfiABIAQ3AwAgASkDACEEIAIkBSAEBSABIAQQ5AE3AwAgASkDACEEIAIkBSAECwsoAgF/AX4jBSEBIwVBEGokBSABIAA2AgAgASgCACkAACECIAEkBSACC6IBAQF/IwUhASMFQRBqJAUgASAANwMAIAEpAwBCOIZCgICAgICAgIB/gyABKQMAQiiGQoCAgICAgMD/AIOEIAEpAwBCGIZCgICAgIDgP4OEIAEpAwBCCIZCgICAgPAfg4QgASkDAEIIiEKAgID4D4OEIAEpAwBCGIhCgID8B4OEIAEpAwBCKIhCgP4Dg4QgASkDAEI4iEL/AYOEIQAgASQFIAALNQECfyMFIQEjBUEQaiQFIAFBBGoiAiAANgIAIAEgAigCACgAADYAACABKAIAIQAgASQFIAALNwICfwF+IwUhASMFQRBqJAUgAUEIaiICIAA2AgAgASACKAIAKQAANwAAIAEpAwAhAyABJAUgAwt2AQJ/IwUhAyMFQRBqJAUgA0EIaiICIAA3AwAgAyABNwMAIAIgAikDACADKQMAQs/W077Sx6vZQn58NwMAIAIgAikDAEIfhiACKQMAQiGIhDcDACACIAIpAwBCh5Wvr5i23puef343AwAgAikDACEAIAMkBSAAC3ABAn8jBSECIwVBEGokBSACQQhqIgMgADcDACACIAE3AwAgAkIAIAIpAwAQ5wE3AwAgAyADKQMAIAIpAwCFNwMAIAMgAykDAEKHla+vmLbem55/fkLj3MqV/M7y9YV/fDcDACADKQMAIQAgAiQFIAALywIBAn8jBSECIwVB8ABqJAUgAkHgAGoiAyAANgIAIAJB2ABqIgAgATcDACACQgA3AwAgAkIANwMIIAJCADcDECACQgA3AxggAkIANwMgIAJCADcDKCACQgA3AzAgAkIANwM4IAJBQGtCADcDACACQgA3A0ggAiAAKQMAQoeVr6+Ytt6bnn98Qs/W077Sx6vZQnw3AwggAiAAKQMAQs/W077Sx6vZQnw3AxAgAiAAKQMAQgB8NwMYIAIgACkDAEKHla+vmLbem55/fTcDICADKAIAIgAgAikDADcDACAAIAIpAwg3AwggACACKQMQNwMQIAAgAikDGDcDGCAAIAIpAyA3AyAgACACKQMoNwMoIAAgAikDMDcDMCAAIAIpAzg3AzggAEFAayACQUBrKQMANwMAIAAgAikDSDcDSCAAIAIpA1A3A1AgAiQFQQALSQECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIgEgACgCACADKAIAEPQHGiADJAUgAQvcJQJ8fwJ+IwUhAyMFQeAEaiQFIANBuAFqIRogA0HQBGohLCADQcwEaiEtIANByARqIS4gA0HEBGohLyADQcAEaiEwIANBsAFqIRsgA0G8BGohMSADQbgEaiEyIANBtARqITMgA0GwBGohNCADQawEaiE1IANBqAFqIRwgA0GoBGohNiADQaQEaiE3IANBoARqITggA0GcBGohOSADQZgEaiE6IANBoAFqIR0gA0GUBGohOyADQZAEaiE8IANBjARqIT0gA0GIBGohPiADQYQEaiE/IANBmAFqIR4gA0GABGohQCADQfwDaiFBIANB+ANqIUIgA0H0A2ohQyADQfADaiFEIANBkAFqIR8gA0HsA2ohRSADQegDaiFGIANB5ANqIUcgA0HgA2ohSCADQdwDaiFJIANBiAFqISAgA0HYA2ohSiADQdQDaiFLIANB0ANqIUwgA0HMA2ohTSADQcgDaiFOIANBgAFqISEgA0HEA2ohTyADQcADaiFQIANBvANqIVEgA0G4A2ohUiADQbQDaiFTIANBsANqISIgA0GsA2ohBCADQagDaiEOIANBpANqIQogA0GgA2ohCCADQZwDaiEGIANBmANqIQsgA0GUA2ohVCADQfgAaiEPIANB8ABqIRAgA0HoAGohESADQeAAaiESIANB2ABqISMgA0GQA2ohVSADQYwDaiFWIANBiANqIVcgA0GEA2ohWCADQYADaiFZIANB0ABqISQgA0H8AmohWiADQfgCaiFbIANB9AJqIVwgA0HwAmohXSADQewCaiFeIANByABqISUgA0HoAmohXyADQeQCaiFgIANB4AJqIWEgA0HcAmohYiADQdgCaiFjIANBQGshJiADQdQCaiFkIANB0AJqIWUgA0HMAmohZiADQcgCaiFnIANBxAJqIWggA0E4aiEnIANBwAJqIWkgA0G8AmohaiADQbgCaiFrIANBtAJqIWwgA0GwAmohbSADQTBqISggA0GsAmohbiADQagCaiFvIANBpAJqIXAgA0GgAmohcSADQZwCaiFyIANBKGohKSADQZgCaiFzIANBlAJqIXQgA0GQAmohdSADQYwCaiF2IANBiAJqIXcgA0EgaiEqIANBhAJqIXggA0GAAmoheSADQfwBaiF6IANB+AFqIXsgA0H0AWohfCADQfABaiErIANB7AFqIQUgA0HoAWohEyADQeQBaiEMIANB4AFqIQkgA0HcAWohByADQdgBaiENIANB1AFqIX0gA0EYaiEUIANBEGohFSADQQhqIRYgAyEXIANB0AFqIRggA0HMAWoiGSAANgIAIANByAFqIn4gATYCACADQcQBaiIBIAI2AgAgA0HAAWoiAEGA5QAsAAA2AgAgGSgCACEZIH4oAgAhAiABKAIAIQEgACgCAEEBRgR/IAUgGTYCACATIAI2AgAgDCABNgIAIAlBATYCACAHIBMoAgA2AgAgDSAHKAIAIAwoAgBqNgIAIAUoAgAiACAAKQMAIAwoAgCtfDcDACAFKAIAIQAgBSgCACgCSCAMKAIAakEgSQRAIABBKGogBSgCACgCSGogEygCACAMKAIAEOoBGiAFKAIAQcgAaiIAIAAoAgAgDCgCAGo2AgAgK0EANgIABSAAKAJIBEAgBSgCAEEoaiAFKAIAKAJIaiATKAIAQSAgBSgCACgCSGsQ6gEaIAUoAgApAwghgAEgCSgCACEAIHsgBSgCAEEoajYCACB8IAA2AgAgfCgCACEAIHggeygCADYCACB5IAA2AgAgekEBNgIAIHkoAgBBAUYhASB4KAIAIQAgeigCAEEBRgRAIAAQ5gEhfyABRQRAIH8Q5AEhfwsgKiB/NwMABSAAKQMAIX8gAUUEQCB/EOQBIX8LICogfzcDAAsggAEgKikDABDnASF/IAUoAgAgfzcDCCAFKAIAKQMQIYABIAkoAgAhACB2IAUoAgBBMGo2AgAgdyAANgIA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AgAgGyAANgIAIBxBATYCACAbKAIAQQFGIQQgGigCACEAIBwoAgBBAUYEQCAAEOUBIQAgBEUEQCAAENEBIQALIBQgADYCAAUgACgCACEAIARFBEAgABDRASEACyAUIAA2AgALIAIgAikDACAUKAIArUKHla+vmLbem55/foU3AwAgAiACKQMAQheGIAIpAwBCKYiEQs/W077Sx6vZQn5C+fPd8Zn2masWfDcDACAFIAUoAgBBBGo2AgALA0AgBSgCACAJKAIASQRAIAIgAikDACAFKAIALQAArULFz9my8eW66id+hTcDACACIAIpAwBCC4YgAikDAEI1iIRCh5Wvr5i23puef343AwAgBSAFKAIAQQFqNgIADAELCyACIAIpAwAgAikDAEIhiIU3AwAgAiACKQMAQs/W077Sx6vZQn43AwAgAiACKQMAIAIpAwBCHYiFNwMAIAIgAikDAEL5893xmfaZqxZ+NwMAIAIgAikDACACKQMAQiCIhTcDACATIAIpAwA3AwAgEykDACEwIAEkBSAwCwttAQN/IwUhAiMFQRBqJAUgAkEEaiEDIAIiBCAANgIAIAEoAgAEfyADIAEoAgggBCgCACABKAIAQT9xQcgAahEHADYCACADKAIAIQAgAiQFIAAFIAMgBCgCABCGBjYCACADKAIAIQAgAiQFIAALC5ABAQR/IwUhAiMFQRBqJAUgAkEIaiEDIAIhBCACQQRqIgUgADYCACABKAIABH8gBCABKAIIIAUoAgAgASgCAEE/cUHIAGoRBwA2AgAgBCgCAEEAIAUoAgAQ9gcaIAMgBCgCADYCACADKAIAIQAgAiQFIAAFIANBASAFKAIAEIgGNgIAIAMoAgAhACACJAUgAAsLWAECfyMFIQIjBUEQaiQFIAIiAyAANgIAIAIoAgBFBEAgAiQFDwsgASgCBARAIAEoAgggAygCACABKAIEQR9xQeQCahECACACJAUFIAMoAgAQhwYgAiQFCwvLCgEOfyMFIQYjBUHwCGokBSAGQeQIaiEKIAZBtAhqIQ0gBkGwCGohCyAGQawIaiERIAZBqAhqIQggBkHgCGoiDiAANgIAIAZB3AhqIgcgATYCACAGQdgIaiIPIAI2AgAgBkHUCGoiCSADNgIAIAZB0AhqIgEgBDYCACAGQcwIaiIDIAU2AgAgBkHICGoiAkEBIAko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AgAoAhBLBEAgASgCACABKAIAKAIQNgIMCyABKAIAQQRqIgMgAygCAEEHcTYCACABKAIAIgEgASgCACAAKAIAQQN0djYCACACJAULRgECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIAIoAgAoAgAgAigCACgCDBCIAiADKAIAEIQCIAIkBQuLAQEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIAQQFBARCHAiABKAIAEIQCIAEoAgAoAgwgASgCACgCEE8EfyADQQA2AgAgAygCACEAIAIkBSAABSADIAEoAgAoAgwgASgCACgCCGsgASgCACgCBEEAS2o2AgAgAygCACEAIAIkBSAACwtoAQJ/IwUhAyMFQRBqJAUgA0EIaiIEIAA2AgAgA0EEaiIAIAE2AgAgAyACNgIAIAQoAgAiASABKAIAIAAoAgAgBCgCACgCBHRyNgIAIAQoAgBBBGoiACAAKAIAIAMoAgBqNgIAIAMkBQt4AQJ/IwUhAyMFQRBqJAUgA0EIaiIEIAA2AgAgA0EEaiIAIAE2AgAgAyACNgIAIAQoAgAiASABKAIAIAAoAgAgAygCAEECdEHgHWooAgBxIAQoAgAoAgR0cjYCACAEKAIAQQRqIgAgACgCACADKAIAajYCACADJAULNwECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIgMgAigCACIBEIoCIAIkBQtUAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAhAyACKAIAIQFBkOUALQAABEAgAyABEI0CIAIkBQUgAyABENEBEI0CIAIkBQsLVAECfyMFIQIjBUEQaiQFIAJBCGoiAyAANgIAIAIgATcDACADKAIAIQMgAikDACEBQZDlAC0AAARAIAMgARCMAiACJAUFIAMgARDkARCMAiACJAULCzMBAn8jBSECIwVBEGokBSACQQhqIgMgADYCACACIAE3AwAgAygCACACKQMANwAAIAIkBQszAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAgAigCADYAACACJAULuAEBBH8jBSECIwVBIGokBSACQRBqIgMgADYCACACQQxqIgQgATYCACACQQhqIgEgBCgCADYCACACQQRqIgUgASgCADYCACACIgAgASgCABCPAkH//wNxNgIAIAMoAgBBASACKAIAdDYCACADKAIAIAUoAgBBBGo2AgQgAygCACAEKAIAIgRBBGogAigCAAR/QQEgACgCAEEBa3QFQQELIgFBAnRqNgIIIAMoAgAgACgCADYCDCACJAULJgEBfyMFIQEjBUEQaiQFIAEgADYCACABKAIALgAAIQAgASQFIAALSgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIAAoAgAgAygCAEEBEPgBIQAgAyQFIAAL+gUBCX8jBSEEIwVB0ANqJAUgBEHEA2ohBSAEQcADaiIHIAA2AgAgBEG8A2oiACABNgIAIARBuANqIgogAjYCACAEQbQDaiICIAM2AgAgBEGwA2oiCSAHKAIANgIAIARBrANqIgEgCSgCADYCACAEQagDaiILIAkoAgAgACgCAGo2AgAgBEGkA2oiA0EMNgIAIARBoANqIgdBBjYCACACKAIAQQFNBEAgBUEANgIAIAUoAgAhACAEJAUgAA8LIARBnANqIgAgBEEgaiIIIAMgCigCACACKAIAEPQBNgIAIAAoAgAQzQFBAEchDCAAKAIAIQYgDARAIAUgBjYCACAFKAIAIQAgBCQFIAAPCyAGIAIoAgBGBEAgBUEBNgIAIAUoAgAhACAEJAUgAA8LIAAoAgBBAUYEQCAFQQA2AgAgBSgCACEAIAQkBSAADwsgByAHKAIAIAIoAgAgAygCABD6ATYCACAEQZgDaiIGIAQiACAHKAIAIAggAigCACADKAIAEPsBNgIAIAYoAgAQzQEEQCAFIAYoAgA2AgAgBSgCACEAIAQkBSAADwsgBEGUA2oiBiABKAIAIAsoAgAgASgCAGsgACADKAIAIAcoAgAQ8gE2AgAgBigCABDNAUEARyEIIAYoAgAhBiAIBEAgBSAGNgIAIAUoAgAhACAEJAUgAA8LIAEgASgCACAGajYCACAEQZADaiIGIARBoAFqIgggACADKAIAIAcoAgAgBEHgAGpBwAAQ8AE2AgAgBigCABDNAQRAIAUgBigCADYCACAFKAIAIQAgBCQFIAAPCyAEQYwDaiIAIAEoAgAgCygCACABKAIAayAKKAIAIAIoAgAgCBD+ATYCACAAKAIAEM0BQQBHIQMgACgCACECIAMEQCAFIAI2AgAgBSgCACEAIAQkBSAADwsgAgR/IAEgASgCACAAKAIAajYCACAFIAEoAgAgCSgCAGs2AgAgBSgCACEAIAQkBSAABSAFQQA2AgAgBSgCACEAIAQkBSAACwulBQEGfyMFIQUjBUHAAmokBSAFQaACaiEGIAVBnAJqIgcgADYCACAFQZgCaiIJIAE2AgAgBUGUAmoiCiACNgIAIAVBkAJqIgIgAzYCACAFQYwCaiIIIAQ2AgAgBUGIAmoiBCAHKAIANgIAIAIoAgBB/wFLBEAgBkFSNgIAIAYoAgAhACAFJAUgAA8LIAUhACAFQYACaiEDIAVBpAJqIgdBADoAACAFQYQCaiIBQQE2AgADQCABKAIAIAgoAgBBAWpJBEAgByABKAIAaiAIKAIAQQFqIAEoAgBrOgAAIAEgASgCAEEBajYCAAwBCwsgAUEANgIAA0AgASgCACACKAIASQRAIAAgASgCAGogByAKKAIAIAEoAgBBAnRqLQACaiwAADoAACABIAEoAgBBAWo2AgAMAQsLIAMgBCgCAEEBaiAJKAIAQQFrIAAgAigCABCRAjYCACADKAIAEM0BQQBHIQcgAygCACEIIAcEQCAGIAg2AgAgBigCACEAIAUkBSAADwsgCEEBSyADKAIAIAIoAgBBAm5JcQRAIAQoAgAgAygCADoAACAGIAMoAgBBAWo2AgAgBigCACEAIAUkBSAADwsgAigCAEGAAUsEQCAGQX82AgAgBigCACEAIAUkBSAADwsgAigCAEEBakECbkEBaiAJKAIASwRAIAZBun82AgAgBigCACEAIAUkBSAADwsgBCgCACACKAIAQf8AajoAACAAIAIoAgBqQQA6AAAgAUEANgIAA0AgASgCACACKAIASQRAIAQoAgAgASgCAEECbkEBamogACABKAIAai0AAEEEdCAAIAEoAgBBAWpqLQAAajoAACABIAEoAgBBAmo2AgAMAQsLIAYgAigCAEEBakECbkEBajYCACAGKAIAIQAgBSQFIAALmAcBEH8jBSEEIwVB0ANqJAUgBEG8A2ohBSAEQbgDaiIMIAA2AgAgBEG0A2oiDyABNgIAIARBsANqIgAgAjYCACAEQawDaiIGIAM2AgAgBEGoA2oiAUEANgIAIARBpANqIgJBADYCACAEQaADaiINIARBgAFqIhNBgAIgBEFAayIQIAIgASAAKAIAIAYoAgAQ0gE2AgAgDSgCABDNAQRAIAUgDSgCADYCACAFKAIAIQAgBCQFIAAPCyABKAIAQQxLBEAgBUFUNgIAIAUoAgAhACAEJAUgAA8LIAIoAgAgDygCACgCAEEBaksEQCAFQVA2AgAgBSgCACEAIAQkBSAADwsgBEGUA2ohESAEQZADaiEDIARBjANqIRIgBEEgaiEGIAQhACAEQYgDaiELIARBwANqIQcgBEGEA2ohCCAEQYADaiEJIARBmANqIg5BADYCACAEQZwDaiIKQQE2AgADQCAKKAIAIAEoAgBNBEAgESAOKAIANgIAIA4gDigCACAQIAooAgBBAnRqKAIAIAooAgBBAWt0ajYCACAQIAooAgBBAnRqIBEoAgA2AgAgCiAKKAIAQQFqNgIADAELCyADQQA2AgADQCADKAIAIAIoAgBJBEAgEiATIAMoAgBqLQAANgIAIAwoAgAgAygCAEECdGogASgCAEEBaiASKAIAazoAAiADIAMoAgBBAWo2AgAMAQsLIAZCADcDACAGQgA3AwggBkIANwMQIAZBADYCGCAAQgA3AwAgAEIANwMIIABCADcDECAAQQA2AhggC0EANgIAA0AgCygCACACKAIASQRAIAYgDCgCACALKAIAQQJ0ai0AAkEBdGoiAyADLgEAQQFqOwEAIAsgCygCAEEBajYCAAwBCwsgACABKAIAQQFqQQF0akEAOwEAIAdBADsBACAIIAEoAgA2AgADQCAIKAIAQQBLBEAgACAIKAIAQQF0aiAHLgEAOwEAIAcgBy8BACAGIAgoAgBBAXRqLwEAajsBACAHIAcvAQBBAXU7AQAgCCAIKAIAQX9qNgIADAELCyAJQQA2AgADQCAJKAIAIAIoAgBJBEAgACAMKAIAIAkoAgBBAnRqLQACQQF0aiIDLgEAIQEgAyABQQFqOwEAIAwoAgAgCSgCAEECdGogATsBACAJIAkoAgBBAWo2AgAMAQsLIA8oAgAgAigCAEEBazYCACAFIA0oAgA2AgAgBSgCACEAIAQkBSAAC+kMAQx/IwUhBiMFQYABaiQFIAZB+ABqIQcgBkH0AGoiDyAANgIAIAZB8ABqIgggATYCACAGQewAaiIMIAI2AgAgBkHoAGoiCSADNgIAIAZB5ABqIgEgBDYCACAGQeAAaiICIAU2AgAgBkHcAGoiACABKAIANgIAIAZB2ABqIgMgACgCAEEIajYCACAGQf4AaiIFQYACOwEAIAEoAgBBA3EEQCAHQX82AgAgBygCACEAIAYkBSAADwsgAigCAEGAIEkEQCAHQb5/NgIAIAcoAgAhACAGJAUgAA8LIAkoAgBFBEAgCUELNgIACyAMKAIAQf8BSwRAIAdBUjYCACAHKAIAIQAgBiQFIAAPCyAGQdQAaiECIAZBzABqIQQgBkHIAGohCiAGQcQAaiENIAZBQGshECAGQTxqIREgBkEgaiELIAYhASAAKAIAQQBBgCAQ9gcaIAMoAgAgCCgCACAMKAIAEJUCIAZB0ABqIgggDCgCADYCAANAIAgoAgAhDiADKAIAIAgoAgBBA3RqKAIARQRAIAggDkF/ajYCAAwBCwsgBCAONgIAIA0gBS8BACAEKAIAakEBazYCACAKIAUvAQA2AgAgAygCACAFLwEAQQN0aiADKAIAIAQoAgBBA3RqKAIAIAMoAgAgBCgCAEEBa0EDdGooAgBqNgIAIAMoAgAgBCgCAEEDdGpBfGogBS4BACIOOwEAIAMoAgAgBCgCAEEDdGogDjsBBCAFIAUuAQBBAWo7AQAgBCAEKAIAQQJrNgIAIAIgBS8BADYCAANAIAIoAgAgDSgCAE0EQCADKAIAIAIoAgBBA3RqQYCAgIAENgIAIAIgAigCAEEBajYCAAwBCwsgACgCAEGAgICAeDYCAANAAkAgAygCACEAIAUvAQAgDSgCAEsNACAAIAQoAgBBA3RqKAIAIAMoAgAgCigCAEEDdGooAgBJBEAgBCAEKAIAIgBBf2o2AgAFIAogCigCACIAQQFqNgIACyAQIAA2AgAgAygCACAEKAIAQQN0aigCACADKAIAIAooAgBBA3RqKAIASQRAIAQgBCgCACIAQX9qNgIABSAKIAooAgAiAEEBajYCAAsgESAANgIAIAMoAgAgBS8BAEEDdGogAygCACAQKAIAQQN0aigCACADKAIAIBEoAgBBA3RqKAIAajYCACADKAIAIBEoAgBBA3RqIAUuAQAiADsBBCADKAIAIBAoAgBBA3RqIAA7AQQgBSAFLgEAQQFqOwEADAELCyAAIA0oAgBBA3RqQQA6AAcgAiANKAIAQQFrNgIAA0AgAigCAEGAAk8EQCADKAIAIAIoAgBBA3RqIAMoAgAgAygCACACKAIAQQN0ai8BBEEDdGotAAdBAWo6AAcgAiACKAIAQX9qNgIADAELCyACQQA2AgADQCADKAIAIQAgAigCACAIKAIATQRAIAMoAgAgAigCAEEDdGogACADKAIAIAIoAgBBA3RqLwEEQQN0ai0AB0EBajoAByACIAIoAgBBAWo2AgAMAQsLIAkgACAIKAIAIAkoAgAQlgI2AgAgC0IANwMAIAtCADcDCCALQgA3AxAgC0EAOwEYIAFCADcDACABQgA3AwggAUIANwMQIAFBADsBGCAJKAIAQQxLBEAgB0F/NgIAIAcoAgAhACAGJAUgAA8LIAZB/ABqIQAgAkEANgIAA0AgAigCACAIKAIATQRAIAsgAygCACACKAIAQQN0ai0AB0EBdGoiBCAELgEAQQFqOwEAIAIgAigCAEEBajYCAAwBCwsgAEEAOwEAIAIgCSgCADYCAANAIAIoAgBBAEsEQCABIAIoAgBBAXRqIAAuAQA7AQAgACAALwEAIAsgAigCAEEBdGovAQBqOwEAIAAgAC8BAEEBdTsBACACIAIoAgBBf2o2AgAMAQsLIAJBADYCAANAIAIoAgAgDCgCAE0EQCAPKAIAIAMoAgAgAigCAEEDdGotAAZBAnRqIAMoAgAgAigCAEEDdGosAAc6AAIgAiACKAIAQQFqNgIADAELCyACQQA2AgADQCACKAIAIAwoAgBNBEAgASAPKAIAIAIoAgBBAnRqLQACQQF0aiIDLgEAIQAgAyAAQQFqOwEAIA8oAgAgAigCAEECdGogADsBACACIAIoAgBBAWo2AgAMAQsLIAcgCSgCADYCACAHKAIAIQAgBiQFIAAL4gQBCH8jBSEDIwVBoAJqJAUgA0GMAmohBiADQYgCaiEHIANBhAJqIQggA0GAAmohBCADQZwCaiIFIAA2AgAgA0GYAmoiCSABNgIAIANBlAJqIgogAjYCACADIgBBAEGAAhD2BxogA0GQAmoiAUEANgIAA0AgASgCACAKKAIATQRAIAYgCSgCACABKAIAQQJ0aigCAEEBahDUATYCACAAIAYoAgBBA3RqIgIgAigCAEEBajYCACABIAEoAgBBAWo2AgAMAQsLIAFBHjYCAANAIAEoAgBBAEsEQCAAIAEoAgBBAWtBA3RqIgIgAigCACAAIAEoAgBBA3RqKAIAajYCACABIAEoAgBBf2o2AgAMAQsLIAFBADYCAANAIAEoAgBBIEkEQCAAIAEoAgBBA3RqIAAgASgCAEEDdGooAgA2AgQgASABKAIAQQFqNgIADAELCyABQQA2AgADQCABKAIAIAooAgBNBEAgByAJKAIAIAEoAgBBAnRqKAIANgIAIAggBygCAEEBahDUAUEBajYCACAAIAgoAgBBA3RqQQRqIgYoAgAhAiAGIAJBAWo2AgAgBCACNgIAA0ACQCAEKAIAIAAgCCgCAEEDdGooAgBNDQAgBygCACAFKAIAIAQoAgBBAWtBA3RqKAIATQ0AIAUoAgAgBCgCAEEDdGogBSgCACAEKAIAQQFrQQN0aikCADcCACAEIAQoAgBBf2o2AgAMAQsLIAUoAgAgBCgCAEEDdGogBygCADYCACAFKAIAIAQoAgBBA3RqIAEoAgA6AAYgASABKAIAQQFqNgIADAELCyADJAUL1QoBD38jBSEHIwVBgAFqJAUgB0H0AGohCSAHQfAAaiIDIAA2AgAgB0HsAGoiDSABNgIAIAdB6ABqIgYgAjYCACAHQeQAaiIIIAMoAgAgDSgCAEEDdGotAAc2AgAgCCgCACAGKAIATQRAIAkgCCgCADYCACAJKAIAIQAgByQFIAAPCyAHQdQAaiEQIAciAEHQAGohBCAAQcwAaiEKIABByABqIQEgAEHEAGohCyAAQUBrIQwgAEE8aiEOIABBOGohDyAAQeAAaiIFQQA2AgAgAEHcAGoiEUEBIAgoAgAgBigCAGt0NgIAIABB2ABqIgIgDSgCADYCAANAIAMoAgAgAigCAEEDdGotAAcgBigCAEsEQCAFIAUoAgAgESgCAEEBIAgoAgAgAygCACACKAIAQQN0ai0AB2t0a2o2AgAgAygCACACKAIAQQN0aiAGKAIAOgAHIAIgAigCAEF/ajYCAAwBCwsDQCADKAIAIAIoAgBBA3RqLQAHIAYoAgBGBEAgAiACKAIAQX9qNgIADAELCyAFIAUoAgAgCCgCACAGKAIAa3U2AgAgEEHw4cOHfzYCACAAQvDhw4ePnrz4cDcDACAAQvDhw4ePnrz4cDcDCCAAQvDhw4ePnrz4cDcDECAAQvDhw4ePnrz4cDcDGCAAQvDhw4ePnrz4cDcDICAAQvDhw4ePnrz4cDcDKCAAQvDhw4ePnrz4cDcDMCAKIAYoAgA2AgAgBCACKAIANgIAA0AgBCgCAEEATgRAIAMoAgAgBCgCAEEDdGotAAcgCigCAEkEQCAKIAMoAgAgBCgCAEEDdGotAAc2AgAgACAGKAIAIAooAgBrQQJ0aiAEKAIANgIACyAEIAQoAgBBf2o2AgAMAQsLA0AgBSgCAEEASgRAIAEgBSgCABDUAUEBajYCAANAAkAgASgCAEEBTQ0AIAsgACABKAIAQQJ0aigCADYCACAMIAAgASgCAEEBa0ECdGooAgA2AgAgCygCAEHw4cOHf0cEQCAMKAIAQfDhw4d/Rg0BIA4gAygCACALKAIAQQN0aigCADYCACAPIAMoAgAgDCgCAEEDdGooAgBBAXQ2AgAgDigCACAPKAIATQ0BCyABIAEoAgBBf2o2AgAMAQsLA0AgASgCACEIIAEoAgBBDE0EfyAAIAEoAgBBAnRqKAIAQfDhw4d/RgVBAAsiBARAIAEgCEEBajYCAAwBCwsgBSAFKAIAQQEgCEEBa3RrNgIAIAAgASgCAEEBa0ECdGooAgBB8OHDh39GBEAgACABKAIAQQFrQQJ0aiAAIAEoAgBBAnRqKAIANgIACyADKAIAIAAgASgCAEECdGooAgBBA3RqQQdqIgQgBCwAAEEBajoAACAAIAEoAgBBAnRqIQQgACABKAIAQQJ0aigCAARAIAQgBCgCAEF/ajYCACADKAIAIAAgASgCAEECdGooAgBBA3RqLQAHIAYoAgAgASgCAGtHBEAgACABKAIAQQJ0akHw4cOHfzYCAAsFIARB8OHDh382AgALDAELCwNAIAUoAgBBAEgEQCAAKAIEQfDhw4d/RgRAA0AgAygCACACKAIAQQN0ai0AByAGKAIARgRAIAIgAigCAEF/ajYCAAwBCwsgAygCACACKAIAQQN0akEPaiIBIAEsAABBf2o6AAAgACACKAIAQQFqNgIEIAUgBSgCAEEBajYCAAwCBSADKAIAIAAoAgRBA3RqQQ9qIgEgASwAAEF/ajoAACAAQQRqIgEgASgCAEEBajYCACAFIAUoAgBBAWo2AgAMAgsACwsgCSAGKAIANgIAIAkoAgAhACAHJAUgAAvDAQEFfyMFIQYjBUEgaiQFIAZBGGohByAGQRRqIgggADYCACAGQRBqIgkgATYCACAGQQxqIgogAjYCACAGQQhqIgEgAzYCACAGQQRqIgAgBDYCACAGIAU2AgAgCCgCACEEIAkoAgAhAyAKKAIAIQIgASgCACEBIAAoAgAhACAGKAIABH8gByAEIAMgAiABIAAQmAI2AgAgBygCACEAIAYkBSAABSAHIAQgAyACIAEgABCYAjYCACAHKAIAIQAgBiQFIAALC/AJARh/IwUhBSMFQbABaiQFIAVB1ABqIQkgBUEQaiIIIAA2AgAgBUEMaiIAIAE2AgAgBUEIaiIBIAI2AgAgBUEEaiICIAM2AgAgBSAENgIAIAAoAgAhAyABKAIAIQEgAigCACECIAUoAgAhBCAFQdAAaiIKIAgoAgA2AgAgBUHMAGoiACADNgIAIAVByABqIgggATYCACAFQcQAaiIPIAI2AgAgBUFAayICIAQ2AgAgBUE8aiIDIAgoAgA2AgAgBUE4aiIBIAooAgA2AgAgBUE0aiIIIAEoAgAgACgCAGo2AgAgBUEwaiIEIAEoAgA2AgAgACgCAEEISQRAIAlBADYCACAJKAIAIQAgBSQFIAAPCyAFQRRqIgEgBUEYaiIAIAQoAgAgCCgCACAEKAIAaxCAAjYCACABKAIAEM0BBEAgCUEANgIAIAkoAgAhACAFJAUgAA8LIAVBqAFqIRUgBUGkAWohBCAFQaABaiEIIAVBnAFqIRYgBUGYAWohCiAFQZQBaiEQIAVBkAFqIRcgBUGMAWohESAFQYgBaiESIAVBhAFqIRggBUGAAWohEyAFQfwAaiEUIAVB+ABqIRkgBUH0AGohBiAFQfAAaiEHIAVB7ABqIRogBUHoAGohCyAFQeQAaiEMIAVB4ABqIRsgBUHcAGohDSAFQdgAaiEOIAVBLGoiASAPKAIAQXxxNgIAAkACQAJAAkACQAJAAkAgDygCAEEDcUEBaw4DAgEAAwsgAygCACABKAIAQQJqai0AACEPIAIoAgAhHCAbIAA2AgAgDSAPNgIAIA4gHDYCACAbKAIAIA4oAgAgDSgCAEECdGovAQAgDigCACANKAIAQQJ0ai0AAhCHAiAAEIQCDAMLDAILDAILDAILIAMoAgAgASgCAEEBamotAAAhDSACKAIAIQ4gGiAANgIAIAsgDTYCACAMIA42AgAgGigCACAMKAIAIAsoAgBBAnRqLwEAIAwoAgAgCygCAEECdGotAAIQhwILIAMoAgAgASgCAGotAAAhCyACKAIAIQwgGSAANgIAIAYgCzYCACAHIAw2AgAgGSgCACAHKAIAIAYoAgBBAnRqLwEAIAcoAgAgBigCAEECdGotAAIQhwIgABCEAgsDQCABKAIAQQBLBEAgAygCACABKAIAQQFrai0AACEGIAIoAgAhByAYIAA2AgAgEyAGNgIAIBQgBzYCACAYKAIAIBQoAgAgEygCAEECdGovAQAgFCgCACATKAIAQQJ0ai0AAhCHAiADKAIAIAEoAgBBAmtqLQAAIQYgAigCACEHIBcgADYCACARIAY2AgAgEiAHNgIAIBcoAgAgEigCACARKAIAQQJ0ai8BACASKAIAIBEoAgBBAnRqLQACEIcCIAAQhAIgAygCACABKAIAQQNrai0AACEGIAIoAgAhByAWIAA2AgAgCiAGNgIAIBAgBzYCACAWKAIAIBAoAgAgCigCAEECdGovAQAgECgCACAKKAIAQQJ0ai0AAhCHAiADKAIAIAEoAgBBBGtqLQAAIQYgAigCACEHIBUgADYCACAEIAY2AgAgCCAHNgIAIBUoAgAgCCgCACAEKAIAQQJ0ai8BACAIKAIAIAQoAgBBAnRqLQACEIcCIAAQhAIgASABKAIAQQRrNgIADAELCyAJIAAQhgI2AgAgCSgCACEAIAUkBSAAC8sHAQd/IwUhBiMFQdAAaiQFIAZBQGshByAGQTxqIgogADYCACAGQThqIgkgATYCACAGQTRqIgEgAjYCACAGQTBqIgggAzYCACAGQSxqIgsgBDYCACAGQShqIgQgBTYCACAGQSRqIgAgCCgCAEEDakEEbjYCACAGQSBqIgIgASgCADYCACAGQRxqIgwgAigCACAIKAIAajYCACAGQRhqIgMgCigCADYCACAGQRRqIgUgAygCACAJKAIAajYCACAGQRBqIgEgAygCADYCACAJKAIAQRFJBEAgB0EANgIAIAcoAgAhACAGJAUgAA8LIAgoAgBBDEkEQCAHQQA2AgAgBygCACEAIAYkBSAADwsgASABKAIAQQZqNgIAIAZBDGoiCCABKAIAIAUoAgAgASgCAGsgAigCACAAKAIAIAsoAgAgBCgCABCXAjYCACAIKAIAEM0BQQBHIQogCCgCACEJIAoEQCAHIAk2AgAgBygCACEAIAYkBSAADwsgCUUEQCAHQQA2AgAgBygCACEAIAYkBSAADwsgAygCACAIKAIAQf//A3EQmgIgASABKAIAIAgoAgBqNgIAIAIgAigCACAAKAIAajYCACAGQQhqIgggASgCACAFKAIAIAEoAgBrIAIoAgAgACgCACALKAIAIAQoAgAQlwI2AgAgCCgCABDNAUEARyEKIAgoAgAhCSAKBEAgByAJNgIAIAcoAgAhACAGJAUgAA8LIAlFBEAgB0EANgIAIAcoAgAhACAGJAUgAA8LIAMoAgBBAmogCCgCAEH//wNxEJoCIAEgASgCACAIKAIAajYCACACIAIoAgAgACgCAGo2AgAgBkEEaiIIIAEoAgAgBSgCACABKAIAayACKAIAIAAoAgAgCygCACAEKAIAEJcCNgIAIAgoAgAQzQFBAEchCiAIKAIAIQkgCgRAIAcgCTYCACAHKAIAIQAgBiQFIAAPCyAJRQRAIAdBADYCACAHKAIAIQAgBiQFIAAPCyADKAIAQQRqIAgoAgBB//8DcRCaAiABIAEoAgAgCCgCAGo2AgAgAiACKAIAIAAoAgBqNgIAIAYiACABKAIAIAUoAgAgASgCAGsgAigCACAMKAIAIAIoAgBrIAsoAgAgBCgCABCXAjYCACAGKAIAEM0BQQBHIQQgBigCACECIAQEQCAHIAI2AgAgBygCACEAIAYkBSAADwsgAgR/IAEgASgCACAAKAIAajYCACAHIAEoAgAgAygCAGs2AgAgBygCACEAIAYkBSAABSAHQQA2AgAgBygCACEAIAYkBSAACwtzAQN/IwUhAiMFQRBqJAUgAiEDIAJBBGoiBCAANgIAIAJBCGoiACABOwEAIAQoAgAhAUGQ5QAtAAAEQCABIAAuAQAQmwIgAiQFBSADIAE2AgAgAygCACAALgEAOgAAIAMoAgAgAC8BAEEIdToAASACJAULCzMBAX8jBSECIwVBEGokBSACIAA2AgAgAkEEaiIAIAE7AQAgAigCACAALgEAOwAAIAIkBQvkCwEJfyMFIQ0jBUHgAGokBSANQdgAaiEOIA1B1ABqIhQgADYCACANQdAAaiIRIAE2AgAgDUHMAGoiDyACNgIAIA1ByABqIgIgAzYCACANQcQAaiIDIAQ2AgAgDUFAayIAIAU2AgAgDUE8aiIQIAY2AgAgDUE4aiISIAc2AgAgDUE0aiIVIAg2AgAgDUEwaiIFIAk2AgAgDUEsaiIEIAo2AgAgDUEoaiITIAs2AgAgDUEkaiIJIAw2AgAgDUEgaiIBIBIoAgA2AgAgDUEcaiIGIBQoAgA2AgAgDUEYaiIKIAYoAgAgESgCAGo2AgAgDUEUaiIHIAYoAgA2AgAgEigCAEEDcQRAIA5BfzYCACAOKAIAIQAgDSQFIAAPCyAVKAIAQYAwSQRAIA5Bvn82AgAgDigCACEAIA0kBSAADwsgAigCAEUEQCAOQQA2AgAgDigCACEAIA0kBSAADwsgESgCAEUEQCAOQQA2AgAgDigCACEAIA0kBSAADwsgAigCAEGAgAhLBEAgDkG4fzYCACAOKAIAIQAgDSQFIAAPCyAAKAIAQQxLBEAgDkFUNgIAIA4oAgAhACANJAUgAA8LIAMoAgBB/wFLBEAgDkFSNgIAIA4oAgAhACANJAUgAA8LIAMoAgBFBEAgA0H/ATYCAAsgACgCAEUEQCAAQQs2AgALIBMoAgBBAEcgBCgCAEEAR3EEQCAEKAIAKAIAQQJGBEAgDiAGKAIAIAcoAgAgCigCACAPKAIAIAIoAgAgECgCACAFKAIAIAkoAgAQnQI2AgAgDigCACEAIA0kBSAADwsLIA1BEGoiCCABKAIAIAMgDygCACACKAIAIAEoAgAQ9wE2AgAgCCgCABDNAUEARyEMIAgoAgAhCyAMBEAgDiALNgIAIA4oAgAhACANJAUgAA8LIAsgAigCAEYEQCAGKAIAIA8oAgAsAAA6AAAgDkEBNgIAIA4oAgAhACANJAUgAA8LIAgoAgAgAigCAEEHdkEBak0EQCAOQQA2AgAgDigCACEAIA0kBSAADwsgBCgCAARAIAQoAgAoAgBBAUYEQCAFKAIAIAEoAgAgAygCABCeAkUEQCAEKAIAQQA2AgALCwsgEygCAEEARyAEKAIAQQBHcQRAIAQoAgAoAgAEQCAOIAYoAgAgBygCACAKKAIAIA8oAgAgAigCACAQKAIAIAUoAgAgCSgCABCdAjYCACAOKAIAIQAgDSQFIAAPCwsgACAAKAIAIAIoAgAgAygCABCQAjYCACANQQxqIgggASgCAEGACGogASgCACADKAIAIAAoAgAgASgCAEGAEGpBgCAQlAI2AgAgCCgCABDNAUEARyELIAgoAgAhCCALBEAgDiAINgIAIA4oAgAhACANJAUgAA8LIAAgCDYCACABKAIAIAMoAgBBAnRqQYQIakEAQfwHIAMoAgBBAnRrEPYHGiANQQhqIgggBygCACARKAIAIAEoAgBBgAhqIAMoAgAgACgCABCSAjYCACAIKAIAEM0BBEAgDiAIKAIANgIAIA4oAgAhACANJAUgAA8LIA1BBGohCyANIQACQCAEKAIABEAgBCgCACgCAARAIAsgBSgCACABKAIAIAMoAgAQnwI2AgAgACABKAIAQYAIaiABKAIAIAMoAgAQnwI2AgAgCygCACAIKAIAIAAoAgBqSwRAIAgoAgBBDGogAigCAEkNAwsgDiAGKAIAIAcoAgAgCigCACAPKAIAIAIoAgAgECgCACAFKAIAIAkoAgAQnQI2AgAgDigCACEAIA0kBSAADwsLCyAIKAIAQQxqIAIoAgBPBEAgDkEANgIAIA4oAgAhACANJAUgAA8LIAcgBygCACAIKAIAajYCACAEKAIABEAgBCgCAEEANgIACyAFKAIABEAgBSgCACABKAIAQYAIakGACBD0BxoLIA4gBigCACAHKAIAIAooAgAgDygCACACKAIAIBAoAgAgASgCAEGACGogCSgCABCdAjYCACAOKAIAIQAgDSQFIAAL+gIBBX8jBSEIIwVBMGokBSAIQSBqIgogADYCACAIQRxqIgkgATYCACAIQRhqIgEgAjYCACAIQRRqIgsgAzYCACAIQRBqIgIgBDYCACAIQQxqIgwgBTYCACAIQQhqIgUgBjYCACAIQQRqIgYgBzYCACAJKAIAIQAgASgCACAJKAIAayEBIAsoAgAhAyACKAIAIQQgBSgCACEFIAYoAgAhBiAMKAIABH8gACABIAMgBCAFIAYQlwIFIAAgASADIAQgBSAGEJkCCyEDIAhBJGohASAIIgAgAzYCACAIKAIAEM0BQQBHIQQgCCgCACEDIAQEQCABIAM2AgAgASgCACEAIAgkBSAADwsgA0UEQCABQQA2AgAgASgCACEAIAgkBSAADwsgCSAJKAIAIAAoAgBqNgIAIAkoAgAgCigCAGsgAigCAEEBa08EfyABQQA2AgAgASgCACEAIAgkBSAABSABIAkoAgAgCigCAGs2AgAgASgCACEAIAgkBSAACwutAQEDfyMFIQMjBUEgaiQFIANBEGoiBCAANgIAIANBDGoiBSABNgIAIANBCGoiASACNgIAIANBBGoiAkEANgIAIAMiAEEANgIAA0AgACgCACABKAIATARAIAIgAigCACAFKAIAIAAoAgBBAnRqKAIAQQBHIAQoAgAgACgCAEECdGotAAJFcXI2AgAgACAAKAIAQQFqNgIADAELCyACKAIAQQBHQQFzIQAgAyQFIAALpgEBA38jBSEDIwVBIGokBSADQRBqIgQgADYCACADQQxqIgUgATYCACADQQhqIgEgAjYCACADQQRqIgJBADYCACADIgBBADYCAANAIAAoAgAgASgCAEwEQCACIAIoAgAgBCgCACAAKAIAQQJ0ai0AAiAFKAIAIAAoAgBBAnRqKAIAbGo2AgAgACAAKAIAQQFqNgIADAELCyACKAIAQQN2IQAgAyQFIAAL4wEBAn8jBSEMIwVBMGokBSAMQSxqIg0gADYCACAMQShqIgAgATYCACAMQSRqIgEgAjYCACAMQSBqIgIgAzYCACAMQRxqIgMgBDYCACAMQRhqIgQgBTYCACAMQRRqIgUgBjYCACAMQRBqIgYgBzYCACAMQQxqIgcgCDYCACAMQQhqIgggCTYCACAMQQRqIgkgCjYCACAMIAs2AgAgDSgCACAAKAIAIAEoAgAgAigCACADKAIAIAQoAgBBASAFKAIAIAYoAgAgBygCACAIKAIAIAkoAgAgDCgCABCcAiEAIAwkBSAAC+MBAQJ/IwUhDCMFQTBqJAUgDEEsaiINIAA2AgAgDEEoaiIAIAE2AgAgDEEkaiIBIAI2AgAgDEEgaiICIAM2AgAgDEEcaiIDIAQ2AgAgDEEYaiIEIAU2AgAgDEEUaiIFIAY2AgAgDEEQaiIGIAc2AgAgDEEMaiIHIAg2AgAgDEEIaiIIIAk2AgAgDEEEaiIJIAo2AgAgDCALNgIAIA0oAgAgACgCACABKAIAIAIoAgAgAygCACAEKAIAQQAgBSgCACAGKAIAIAcoAgAgCCgCACAJKAIAIAwoAgAQnAIhACAMJAUgAAtUAQN/IwUhAiMFQRBqJAUgAiIBIAA2AgAgASgCACEDIAEoAgAhACABKAIAQYCACEkEf0GAgAggASgCAGtBC3YFQQALIQEgAiQFIAMgAEEIdmogAWoLNAECfyMFIQAjBUEQaiQFIABB6LABKQIANwIAIABB8LABKAIANgIIIAAQpAIhASAAJAUgAQuGAgEGfyMFIQEjBUEwaiQFIAFBFGohAiAAKAIAQQBHQQFzIAAoAgRBAEdBAXNzBEAgAkEANgIAIAIoAgAhACABJAUgAA8LIAEhBSABQRhqIgQgACkCADcCACAEIAAoAgg2AgggAUEQaiIDQZAFIAQQ7gE2AgAgAygCAAR/IAMoAgBB4AJqIgYgACkCADcCACAGIAAoAgg2AgggAygCAEEDNgI4IAMoAgBBATYCLCAFEKUCIAQgBSkCADcCACAEIAUpAgg3AgggAygCACAEKAIIQYACcUEARzYCCCACIAMoAgA2AgAgAigCACEAIAEkBSAABSACQQA2AgAgAigCACEAIAEkBSAACwt/AQV/IwUhASMFQSBqJAUgAUEcaiICQQA2AgAgAUEYaiIDQQA2AgAgAUEUaiIEQQA2AgAgAUEQaiIFQQA2AgAgASACKAIANgIAIAEgAygCADYCBCABIAQoAgA2AgggASAFKAIANgIMIAAgASkCADcCACAAIAEpAgg3AgggASQFC/YBAQV/IwUhAiMFQSBqJAUgAkEEaiEDIAIiASAANgIAIAEoAgBFBEAgA0EANgIAIAMoAgAhACACJAUgAA8LIAJBCGohBCABKAIAKALsAgR/IANBQDYCACADKAIAIQAgAiQFIAAFIAEoAgAoAuABIQUgBCABKAIAQeACaiIAKQIANwIAIAQgACgCCDYCCCAFIAQQ7wEgASgCAEEANgLgASABKAIAKAL8BBCnAhogASgCAEEANgL8BCABKAIAIQUgBCABKAIAQeACaiIAKQIANwIAIAQgACgCCDYCCCAFIAQQ7wEgA0EANgIAIAMoAgAhACACJAUgAAsL5QEBBX8jBSEDIwVBIGokBSADQRRqIQEgA0EQaiEFIAMiAkEMaiIEIAA2AgAgBCgCAAR/IAIgBCgCAEGMJWoiACkCADcCACACIAAoAgg2AgggBCgCACgCDCEAIAEgAikCADcCACABIAIoAgg2AgggACABEO8BIAQoAgAoAgAhACABIAIpAgA3AgAgASACKAIINgIIIAAgARDvASAEKAIAIQAgASACKQIANwIAIAEgAigCCDYCCCAAIAEQ7wEgBUEANgIAIAUoAgAhACADJAUgAAUgBUEANgIAIAUoAgAhACADJAUgAAsL6AMBB38jBSEEIwVB4ABqJAUgBEE8aiIGIAE2AgAgBEEIaiIHIAI3AwAgBEE4aiIIIAM2AgAgBEE0aiIBIAcpAwBCAFIEf0EABUH0Aws2AgAgBEFAayEFIARBEGohAyAEIAcpAwAgCCgCAK18QgBSBH4gBykDACAIKAIArXwgASgCAK18BUJ/CyICNwMAIARBMGoiCiAEKQMAQoCAEFggBCkDAEKAgAhYaiAEKQMAQoCAAVhqNgIAIARBLGoiCSAGKAIAIgE2AgAgCSAGKAIABH8gAQVBAyIBCzYCACAJIAYoAgBBAEgEf0EAIgEFIAELNgIAIAkgBigCAEEWSgR/QRYFIAELNgIAIAMgCigCAEGEBWxB0AlqIAkoAgBBHGxqIgEpAgA3AgAgAyABKQIINwIIIAMgASkCEDcCECADIAEoAhg2AhggBigCAEEATgRAIAcpAwAhAiAIKAIAIQEgBSADKQIANwIAIAUgAykCCDcCCCAFIAMpAhA3AhAgBSADKAIYNgIYIAAgBSACIAEQqQIgBCQFDwsgA0EAIAYoAgBrNgIUIAcpAwAhAiAIKAIAIQEgBSADKQIANwIAIAUgAykCCDcCCCAFIAMpAhA3AhAgBSADKAIYNgIYIAAgBSACIAEQqQIgBCQFC5gDAQV/IwUhBSMFQSBqJAUgBUEQaiEGIAVBDGohByAFIgQgAjcDACAEQRRqIgggAzYCAAJAAkAgCCgCAEUNACAEKQMAQgF8QgJaDQAgBEKBBDcDAAwBCyAEKQMAQgBRBEAgBEJ/NwMACwsgBCkDAEKAgICAAlQEQCAIKAIArUKAgICAAlQEQCAGIAQpAwAgCCgCAK18PgIAIAcgBigCAEHAAEkEf0EGBSAGKAIAQQFrENQBQQFqCyIDNgIAIAEoAgAgBygCAEsEQCABIAcoAgA2AgALCwsgASgCCCABKAIASwRAIAEgASgCADYCCAsgBUEIaiIEIAEoAgQgASgCGBCqAjYCACAEKAIAIAEoAgBLBEAgAUEEaiIDIAMoAgAgBCgCACABKAIAa2s2AgALIAEoAgBBCk8EQCAAIAEpAgA3AgAgACABKQIINwIIIAAgASkCEDcCECAAIAEoAhg2AhggBSQFDwsgAUEKNgIAIAAgASkCADcCACAAIAEpAgg3AgggACABKQIQNwIQIAAgASgCGDYCGCAFJAULRwECfyMFIQIjBUEQaiQFIAJBCGoiAyAANgIAIAJBBGoiACABNgIAIAIgACgCAEEGTzYCACADKAIAIAIoAgBrIQAgAiQFIAALnRIBBH8jBSEGIwVBIGokBSAGQRBqIQQgBiIFQQxqIgMgADYCACAFQQhqIgAgATYCACAFQQRqIgEgAjYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQprDsMIABYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAQIDBAUGBwgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWERITFBUWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgoLDBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWDg8QFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWCRYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFg0WCyABKAIAQQFLBEAgBEFYNgIADBcFIAMoAgAgASgCADYCACAEIAMoAgAoAgA2AgAMFwsACyAFIAEoAgA2AgAgBSgCAEEWSgRAIAVBFjYCAAsgBSgCAARAIAMoAgAgBSgCAEEASDYCMCADKAIAIAUoAgA2AiwLIAMoAgAoAixBAE4EQCAEIAMoAgAoAiw2AgAMFgUgBEEANgIADBYLAAsgASgCAEEASwRAIAEoAgBBCkkgASgCAEEeS3IEQCAEQVY2AgAMFgsLIAMoAgAgASgCADYCBCAEIAMoAgAoAgQ2AgAMFAsgASgCAEEASwRAIAEoAgBBBkkgASgCAEEeS3IEQCAEQVY2AgAMFQsLIAMoAgAgASgCADYCDCAEIAMoAgAoAgw2AgAMEwsgASgCAEEASwRAIAEoAgBBBkkgASgCAEEdS3IEQCAEQVY2AgAMFAsLIAMoAgAgASgCADYCCCAEIAMoAgAoAgg2AgAMEgsgASgCAEEASwRAIAEoAgBBAUkgASgCAEEdS3IEQCAEQVY2AgAMEwsLIAMoAgAgASgCADYCECAEIAEoAgA2AgAMEQsgASgCAEEASwRAIAEoAgBBA0kgASgCAEEHS3IEQCAEQVY2AgAMEgsLIAMoAgAgASgCADYCFCAEIAMoAgAoAhQ2AgAMEAsgAygCACABKAIANgIYIAQgAygCACgCGDYCAAwPCyABKAIAQQBLBEAgASgCAEEBSSABKAIAQQhLcgRAIARBVjYCAAwQCwsgAygCACABKAIANgIc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BiQFIAALC8kBAQN/IwUhAyMFQSBqJAUgA0EQaiEEIANBDGoiBSAANgIAIANBCGoiACABNgIAIANBBGoiASACNgIAIAAoAgAgASgCAEkEQCAEQWI2AgAgBCgCACEAIAMkBSAADwsgAyIAQQA2AgACQAJAA0AgACgCACABKAIASw0CIAUoAgAgACgCAEEBdGouAQBFDQEgACAAKAIAQQFqNgIADAALAAsgBEFiNgIAIAQoAgAhACADJAUgAA8LIARBADYCACAEKAIAIQAgAyQFIAALogMBBH8jBSEEIwVBIGokBSAEQQhqIQUgBEEcaiIDIAA2AgAgBEEYaiIGIAE2AgAgBEEUaiIBIAI2AgAgBEEQaiIAIAYoAgA2AgAgBEEMaiICQQE2AgAgBigCACADKAIAKAIARwRAIAUgAygCACgCACADKAIAKAIEazYCACADKAIAIAMoAgAoAgw2AhAgAygCACAFKAIANgIMIAMoAgAgAygCACgCBDYCCCADKAIAIAAoAgAgBSgCAGs2AgQgAygCACgCDCADKAIAKAIQa0EISQRAIAMoAgAgAygCACgCDDYCEAsgAkEANgIACyADKAIAIAAoAgAgASgCAGo2AgAgACgCACABKAIAaiADKAIAKAIIIAMoAgAoAhBqSyAAKAIAIAMoAgAoAgggAygCACgCDGpJcUUEQCACKAIAIQAgBCQFIAAPCyAEQQRqIgUgACgCACABKAIAaiADKAIAKAIIazYCACAEIAUoAgAgAygCACgCDEoEfyADKAIAKAIMBSAFKAIACyIANgIAIAMoAgAgBCgCADYCECACKAIAIQAgBCQFIAAL9wIBCX8jBSEDIwVBQGskBSADQQhqIQkgA0EEaiEEIAMhByADQTBqIgggADYCACADQSxqIgAgATYCACADQShqIgUgAjYCACADQSRqIgogCCgCACgCJDYCACADQSBqIgIgACgCACgCCDYCACADQRxqIgEgACgCACgCEDYCACADQRhqIgsgCCgCACgCBDYCACADQRRqIgYgCygCACAIKAIAKAIYajYCACADQRBqIgAgBSgCAEF4ajYCACADQQM2AgwDQCAGKAIAQQJqIAAoAgBNBEAgCSAGKAIAIAsoAgBrNgIAIARBADYCAANAIAYoAgAhBSAEKAIAQQNJBEAgByAFIAQoAgBqIAIoAgAgASgCABC7AjYCAAJAAkAgBCgCAEUNACAKKAIAIAcoAgBBAnRqKAIARQ0ADAELIAooAgAgBygCAEECdGogCSgCACAEKAIAajYCAAsgBCAEKAIAQQFqNgIADAELCyAGIAVBA2o2AgAMAQsLIAMkBQvjAwEMfyMFIQMjBUFAayQFIANBDGohCCADQQhqIQQgA0EEaiEKIAMhCSADQTxqIgYgADYCACADQThqIgAgATYCACADQTRqIgcgAjYCACADQTBqIgsgBigCACgCJDYCACADQSxqIg0gACgCACgCCDYCACADQShqIg4gACgCACgCEDYCACADQSRqIgIgBigCACgCLDYCACADQSBqIgEgACgCACgCBDYCACADQRxqIgwgBigCACgCBDYCACADQRhqIgUgDCgCACAGKAIAKAIYajYCACADQRRqIgAgBygCAEF4ajYCACADQQM2AhADQCAFKAIAQQJqIAAoAgBNBEAgCCAFKAIAIAwoAgBrNgIAIARBADYCAANAAkAgBSgCACEHIAQoAgBBA08NACAKIAcgBCgCAGogASgCACAOKAIAELsCNgIAIAkgBSgCACAEKAIAaiANKAIAQQgQuwI2AgAgBCgCAEUEQCACKAIAIAooAgBBAnRqIAgoAgAgBCgCAGo2AgALAkACQCAEKAIARQ0AIAsoAgAgCSgCAEECdGooAgBFDQAMAQsgCygCACAJKAIAQQJ0aiAIKAIAIAQoAgBqNgIACyAEIAQoAgBBAWo2AgAMAQsLIAUgB0EDajYCAAwBCwsgAyQFC1ABAn8jBSEDIwVBEGokBSADQQhqIgQgADYCACADQQRqIgAgATYCACADIAI2AgAgBCgCACAAKAIAIAMoAgAgACgCACgCEBDJAiEAIAMkBSAAC7cCAQZ/IwUhBCMFQUBrJAUgBEEMaiIFIAA2AgAgBEEIaiIAIAE2AgAgBEEEaiIBIAI2AgAgBCADNgIAIAAoAgAhAiABKAIAIQEgBCgCACEDIAAoAgAoAhAhBiAEQTBqIgAgBSgCADYCACAEQSxqIgUgAjYCACAEQShqIgcgATYCACAEQSRqIgggAzYCACAEQSBqIgkgBjYCACAEQRxqIgZBADYCACAEQRhqIgIgACgCACgCBDYCACAEQRRqIgMgBygCACACKAIAazYCACAEQRBqIgEgACgCACgCGDYCAANAIAEo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IAQ2AgAgDEEYaiIEIAU2AgAgDEEUaiIFIAY2AgAgDEEQaiIGIAc2AgAgDEEMaiIHIAg2AgAgDEEIaiIIIAk2AgAgDEEEaiIJIAo2AgAgDCALNgIAIAwoAgAEfyANIA4oAgAgACgCACABKAIAIAIoAgAgAygCACAEKAIAIAUoAgAgBigCACAHKAIAIAgoAgAgCSgCABDeAjYCACANKAIAIQAgDCQFIAAFIA0gDigCACAAKAIAIAEoAgAgAigCACADKAIAIAQoAgAgBSgCACAGKAIAIAcoAgAgCCgCACAJKAIAEN4CNgIAIA0oAgAhACAMJAUgAAsLlwsBCn8jBSELIwVB0AFqJAUgC0HAAWohDSALQShqIgwgADYCACALQSRqIgAgATYCACALQSBqIgEgAjYCACALQRxqIgIgAzYCACALQRhqIgMgBDYCACALQRRqIgQgBTYCACALQRBqIgUgBjYCACALQQxqIgYgBzYCACALQQhqIgcgCDYCACALQQRqIgggCTYCACALIAo2AgAgACgCACEAIAEoAgAhASACKAIAIQIgAygCACEDIAQoAgAhBCAFKAIAIQUgBigCACEGIAcoAgAhByAIKAIAIQ4gCygCACEPIAtBvAFqIhAgDCgCADYCACALQbgBaiIMIAA2AgAgC0G0AWoiESABNgIAIAtBsAFqIgkgAjYCACALQawBaiICIAM2AgAgC0GoAWoiCCAENgIAIAtBpAFqIgQgBTYCACALQaABaiIKIAY2AgAgC0GcAWoiAyAHNgIAIAtBmAFqIgEgDjYCACALQZQBaiISIA82AgAgC0HMAGoiBSALQYABaiIAIBAoAgAgDCgCABCAAjYCACAFKAIAEM0BBEAgDUG6fzYCACANKAIAIQAgCyQFIAAPCyALQfAAaiITIBEoAgAgCSgCACABKAIAQQFrai0AABCBAiALQeAAaiIRIAIoAgAgCCgCACABKAIAQQFrai0AABCBAiALQdAAaiIUIAQoAgAgCigCACABKAIAQQFrai0AABCBAiAAIAMoAgAgASgCAEEDdGpBfGovAQAgCigCACABKAIAQQFrai0AAEECdEGwNGooAgAQiAIgABCEAiAAIAMoAgAgASgCAEEDdGpBfmovAQAgCSgCACABKAIAQQFrai0AAEECdEHANWooAgAQiAIgABCEAiALQcgAaiECIAtBxABqIQQgEigCAARAIAIgCCgCACABKAIAQQFrai0AADYCACAEIAIoAgAgAigCAEEYSQR/IAIoAgAFQRgLazYCACAEKAIABEAgACADKAIAIAEoAgBBAWtBA3RqKAIAIAQoAgAQiAIgABCEAgsgACADKAIAIAEoAgBBAWtBA3RqKAIAIAQoAgB2IAIoAgAgBCgCAGsQiAIFIAAgAygCACABKAIAQQFrQQN0aigCACAIKAIAIAEoAgBBAWtqLQAAEIgCCyALQcYBaiEMIAtBxQFqIQ4gC0HEAWohDyALQTxqIQUgC0E4aiEEIAtBNGohBiALQTBqIQcgC0EsaiEQIAAQhAIgC0FAayICIAEoAgBBAms2AgADQCACKAIAIAEoAgBJBEAgDCAKKAIAIAIoAgBqLAAAOgAAIA4gCCgCACACKAIAaiwAADoAACAPIAkoAgAgAigCAGosAAA6AAAgBSAMLQAAQQJ0QbA0aigCADYCACAEIA4tAAA2AgAgBiAPLQAAQQJ0QcA1aigCADYCACAAIBEgDi0AABCCAiAAIBMgDy0AABCCAiAAEIQCIAAgFCAMLQAAEIICIAAQhAIgACADKAIAIAIoAgBBA3RqLwEEIAUoAgAQiAIgBSgCACAGKAIAakEYSwRAIAAQhAILIAAgAygCACACKAIAQQN0ai8BBiAGKAIAEIgCIAAQhAIgEigCAARAIAcgBCgCACAEKAIAQRhJBH8gBCgCAAVBGAtrNgIAIAcoAgAEQCAAIAMoAgAgAigCAEEDdGooAgAgBygCABCIAiAAEIQCCyAAIAMoAgAgAigCAEEDdGooAgAgBygCAHYgBCgCACAHKAIAaxCIAgUgACADKAIAIAIoAgBBA3RqKAIAIAQoAgAQiAILIAAQhAIgAiACKAIAQX9qNgIADAELCyAAIBMQhQIgACAREIUCIAAgFBCFAiAQIAAQhgI2AgAgECgCAAR/IA0gECgCADYCACANKAIAIQAgCyQFIAAFIA1Bun82AgAgDSgCACEAIAskBSAACwtFAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAIoAgBBAEdBJGxB4B5qIAMoAgBBAnRqKAIAIQAgAiQFIAALnDIBeX8jBSEGIwVBgARqJAUgBkH0A2ohPCAGQfADaiE9IAZB7ANqISwgBkHoA2ohbyAGQeQDaiFwIAZB4ANqIS0gBkHcA2ohcSAGQdgDaiEuIAZB1ANqISQgBkHQA2ohHCAGQcwDaiE+IAZByANqIQcgBkHEA2ohEyAGQcADaiFWIAZBvANqIT8gBkG4A2ohJSAGQbQDaiFAIAZBsANqIQsgBkGsA2ohDyAGQagDaiEvIAZBpANqIVcgBkGgA2ohHSAGQZwDaiFYIAZBmANqIUEgBkGUA2ohWSAGQZADaiEXIAZBjANqIVogBkGIA2ohWyAGQYQDaiFyIAZBgANqIUIgBkH8AmohQyAGQfgCaiEwIAZB9AJqIXMgBkHwAmohdCAGQewCaiExIAZB6AJqIXUgBkHkAmohMiAGQeACaiEmIAZB3AJqIR4gBkHYAmohRCAGQdQCaiEIIAZB0AJqIRQgBkHMAmohXCAGQcgCaiFFIAZBxAJqIScgBkHAAmohRiAGQbwCaiEMIAZBuAJqIRAgBkG0AmohMyAGQbACaiFdIAZBrAJqIR8gBkGoAmohXiAGQaQCaiFHIAZBoAJqIV8gBkGcAmohGCAGQZgCaiFgIAZBlAJqIWEgBkGQAmohdiAGQYwCaiFIIAZBiAJqIUkgBkGEAmohNCAGQYACaiF3IAZB/AFqIXggBkH4AWohNSAGQfQBaiF5IAZB8AFqITYgBkHsAWohKCAGQegBaiEgIAZB5AFqIUogBkHgAWohCSAGQdwBaiEVIAZB2AFqIWIgBkHUAWohSyAGQdABaiEpIAZBzAFqIUwgBkHIAWohDSAGQcQBaiERIAZBwAFqITcgBkG8AWohYyAGQbgBaiEhIAZBtAFqIWQgBkGwAWohTSAGQawBaiFlIAZBqAFqIRkgBkGkAWohZiAGQaABaiFnIAZBnAFqIXogBkGYAWohTiAGQZQBaiFPIAZBkAFqITggBkGMAWoheyAGQYgBaiF8IAZBhAFqITkgBkGAAWohfSAGQfwAaiE6IAZB+ABqISogBkH0AGohIiAGQfAAaiFQIAZB7ABqIQogBkHoAGohFiAGQeQAaiFoIAZB4ABqIVEgBkHcAGohKyAGQdgAaiFSIAZB1ABqIQ4gBkHQAGohEiAGQcwAaiE7IAZByABqIWkgBkHEAGohIyAGQUBrIWogBkE8aiFTIAZBOGohayAGQTRqIRogBkEwaiFsIAZBLGohbSAGQShqIX4gBkEkaiEbIAZBIGoi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IFIoAgBJBEAgaiAKKAIAIDkoAgAgOigCABC7AjYCACBTIAooAgAgIigCAGs2AgAgayAqKAIAIGooAgBBAnRqKAIANgIAIBogIigCACBrKAIAajYCACAqKAIAIGooAgBBAnRqIFMoAgA2AgACQCAOKAIAQQBLIAooAgBBAWogDigCAGsQ0AEgCigCAEEBahDQAUZxBEAgIyAKKAIAQQVqIAooAgBBBWogDigCAGsgKygCABC8AkEEajYCACAKIAooAgBBAWo2AgAgTygCACAKKAIAIBYoAgBrIBYoAgBBACAjKAIAQQNrEPkCBSBrKAIAIGgoAgBLBEAgGigCABDQASAKKAIAENABRgRAICMgCigCAEEEaiAaKAIAQQRqICsoAgAQvAJBBGo2AgAgbCAKKAIAIBooAgBrNgIAA0ACQCAKKAIAIBYoAgBLIBooAgAgUSgCAEtxRQ0AIAooAgBBf2otAAAgGigCAEF/ai0AAEcNACAKIAooAgBBf2o2AgAgGiAaKAIAQX9qNgIAICMgIygCAEEBajYCAAwBCwsgEiAOKAIANgIAIA4gbCgCADYCACBPKAIAIAooAgAgFigCAGsgFigCACBsKAIAQQJqICMoAgBBA2sQ+QIMAwsLIAogCigCACAKKAIAIBYoAgBrQQh1IH0oAgBqajYCAAwDCwsgCiAKKAIAICMoAgBqNgIAIBYgCigCADYCAAJAIAooAgAgUigCAE0EQCBTKAIAQQJqIQAgKigCACAiKAIAIFMoAgBqQQJqIDkoAgAgOigCABC7AkECdGogADYCACAKKAIAQX5qICIoAgBrIQAgKigCACAKKAIAQX5qIDkoAgAgOigCABC7AkECdGogADYCAANAIAooAgAgUigCAEsNAiASKAIAQQBLIAooAgAQ0AEgCigCACASKAIAaxDQAUZxRQ0CIG0gCigCAEEEaiAKKAIAQQRqIBIoAgBrICsoAgAQvAJBBGo2AgAgfiASKAIANgIAIBIgDigCADYCACAOIH4oAgA2AgAgCigCACAiKAIAayEAICooAgAgCigCACA5KAIAIDooAgAQuwJBAnRqIAA2AgAgTygCAEEAIBYoAgBBACBtKAIAQQNrEPkCIAogCigCACBtKAIAajYCACAWIAooAgA2AgAMAAsACwsMAQsLIA4oAgAhACA7KAIAIQEgOCgCACAO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ai0AAEcNAyAHIAcoAgBBf2o2AgAgIiAiKAIAQX9qNgIAIA0gDSgCAEEBajYCAAwACwALCyAHIAcoAgAgBygCACALKAIAa0EIdUEBamo2AgAMAwsgFyAMKAIANgIAIAwgSigCADYCACBgKAIAIAcoAgAgCygCAGsgCygCACBKKAIAQQJqIA0oAgBBA2sQ+QILIAcgBygCACANKAIAajYCACALIAcoAgA2AgACQCAHKAIAIGIoAgBNBEAgNygCAEECaiEAIDUoAgAgGygCACA3KAIAakECaiBHKAIAIEYoAgAQuwJBAnRqIAA2AgAgHygCACAbKAIAIDcoAgBqQQJqIDQoAgBBCBC7AkECdGogADYCACAHKAIAQX5qIBsoAgBrIQAgNSgCACAHKAIAQX5qIEcoAgAgRigCABC7AkECdGogADYCACAfKAIAIAcoAgBBfmogNCgCAEEIELsCQQJ0aiAANgIAA0AgBygCACBiKAIASw0CIBcoAgBBAEsgBygCABDQASAHKAIAIBcoAgBrENABRnFFDQIgdiAHKAIAQQRqIAcoAgBBBGogFygCAGsgICgCABC8AkEEajYCACCUASAXKAIANgIAIBcgDCgCADYCACAMIJQBKAIANgIAIAcoAgAgGygCAGshACA1KAIAIAcoAgAgRygCACBGKAIAELsCQQJ0aiAANgIAIAcoAgAgGygCAGshACAfKAIAIAcoAgAgNCgCAEEIELsCQQJ0aiAANgIAIGAoAgBBACALKAIAQQAgdigCAEEDaxD5AiAHIAcoAgAgdigCAGo2AgAgCyAHKAIANgIADAALAAsLDAELCyAMKAIAIQAgSSgCACEBIEUoAgAgDCgCAAR/IAAFIAELNgIAIBcoAgAhACBJKAIAIQEgRSgCACAXKAIABH8gAAUgAQs2AgQgMyAgKAIAIAsoAgBrNgIAIDMoAgAhACAGJAUgAA8LIG0oAgAhBCABKAIAIQEgACgCACEAIAIoAgAhAiADKAIAIQMgUiBsKAIANgIAIGYgBDYCACBTIAE2AgAggAEgADYCACCYASACNgIAIJkBIAM2AgAgVEEFNgIAICkgUigCACgCJDYCACA8IIABKAIAKAIINgIAID0gUigCACgCLDYCACBVIIABKAIAKAIENgIAIB0gUigCACgCBDYCACBnIJgBKAIANgIAIAkgZygC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BE8EQCAcKAIAIB0oAgBKBEAgASAPKAIANgIAIAIgDigCADYCACADIAAoAgA2AgAMAgsLIBQoAgBBAkcNAiAAKAIAIA0oAgBPDQIgACAAKAIAQQFqNgIAAkAgAigCAARAIAcoAgBBAEsgACgCABDQASAAKAIAIAcoAgBrENABRnEEQCAQIAAoAgBBBGogACgCAEEEaiAHKAIAayAEKAIAELwCQQRqNgIAIB4gECgCAEECdDYCACAfIAEoAgBBAnQgAigCAEEBahDUAWtBAWo2AgAgECgCAEEETwRAIB4oAgAgHygCAEwNAyABIBAoAgA2AgAgAkEANgIAIAMgACgCADYCAAsLCwsgEUH/wdcvNgIAIBIgCigCACATKAIAIAAoAgAgBCgCACARIBYoAgBBB3FBuAFqEQkANgIAICAgEigCAEECdCARKAIAQQFqENQBazYCACAhIAEoAgBBAnQgAigCAEEBahDUAWtBB2o2AgAgEigCAEEESQ0CICAoAgAgISgCAEwNAiABIBIoAgA2AgAgAiARKAIANgIAIAMgACgCADYCAAwACwALCyACKAIABEADQAJAIAMoAgAgBSgCAEsgAygCACACKAIAQQJrayAVKAIAS3FFDQAgAygCAEF/ai0AACADKAIAIAIoAgBrLQABRw0AIAMgAygCAEF/ajYCACABIAEoAgBBAWo2AgAMAQsLIAggBygCADYCACAHIAIoAgBBAms2AgALCyAiIAMoAgAgBSgCAGs2AgAgGSgCACAiKAIAIAUoAgAgAigCACABKAIAQQNrEPkCIAAgAygCACABKAIAaiIjNgIAIAUgIzYCAANAAkAgACgCACANKAIATSAIKAIAQQBLcUUNACAAKAIAENABIAAoAgAgCCgCAGsQ0AFHDQAgASAAKAIAQQRqIAAoAgBBBGogCCgCAGsgBCgCABC8AkEEajYCACACIAgoAgA2AgAgCCAHKAIANgIAIAcgAigCADYCACAZKAIAQQAgBSgCAEEAIAEoAgBBA2sQ+QIgACAAKAIAIAEoAgBqNgIAIAUgACgCADYCAAwBCwsMAQsLIAcoAgAhACAMKAIAIQEgCygCACAHKAIABH8gAAUgAQs2AgAgCCgCACEAIAwoAgAhASALKAIAIAgoAgAEfyAABSABCzYCBCAEKAIAIAUoAgBrIQAgBiQFIAALjREB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IRwgBkHoD2ohkQIgBkHkD2ohugMgBkHgD2ohnQEgBkHcD2ohkgIgBkHYD2ohkwIgBkHUD2oh2QEgBkHQD2ohUyAGQcwPaiGUAiAGQcgPaiGVAiAGQcQPaiHsAiAGQcAPaiGWAiAGQbwPaiHaASAGQbgPaiHbASAGQbQPaiGXAiAGQbAPaiG7AyAGQawPaiEvIAZBqA9qIe0CIAZBpA9qIWogBkGgD2ohvAMgBkGcD2ohayAGQZgPaiGeASAGQZQPaiHuAiAGQZAPaiFUIAZBjA9qIe8CIAZBiA9qIWwgBkGED2ohbSAGQYAPaiG9AyAGQfwOaiG+AyAGQfgOaiHcASAGQfQOaiECIAZB8A5qIZ8BIAZB7A5qIZgCIAZB6A5qIUMgBkHkDmohoAEgBkHgDmohFCAGQdwOaiFEIAZB2A5qIZkCIAZB1A5qIb8DIAZB0A5qIZoCIAZBzA5qIW4gBkHIDmohwAMgBkHEDmohoQEgBkHADmoh8AIgBkG8DmohogEgBkG4DmohKCAGQbQOaiHBAyAGQbAOaiE6IAZBrA5qIfECIAZBqA5qIfICIAZBpA5qIR0gBkGgDmohmwIgBkGcDmohwgMgBkGYDmohowEgBkGUDmohnAIgBkGQDmohnQIgBkGMDmoh3QEgBkGIDmohVSAGQYQOaiGeAiAGQYAOaiGfAiAGQfwNaiHzAiAGQfgNaiGgAiAGQfQNaiHeASAGQfANaiHfASAGQewNaiGhAiAGQegNaiHDAyAGQeQNaiEwIAZB4A1qIfQCIAZB3A1qIW8gBkHYDWohxAMgBkHUDWohcCAGQdANaiGkASAGQcwNaiH1AiAGQcgNaiFWIAZBxA1qIfYCIAZBwA1qIXEgBkG8DWohciAGQbgNaiHFAyAGQbQNaiHGAyAGQbANaiHgASAGQawNaiEDIAZBqA1qIaUBIAZBpA1qIaICIAZBoA1qIUUgBkGcDWohpgEgBkGYDWohFSAGQZQNaiFGIAZBkA1qIaMCIAZBjA1qIccDIAZBiA1qIaQCIAZBhA1qIXMgBkGADWohyAMgBkH8DGohpwEgBkH4DGoh9wIgBkH0DGohqAEgBkHwDGohKSAGQewMaiHJAyAGQegMaiE7IAZB5AxqIfgCIAZB4AxqIfkCIAZB3AxqIR4gBkHYDGohpQIgBkHUDGohygMgBkHQDGohqQEg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NgIAIJIBKAIAIKADKAIASyAaKAIAIJIBKAIAaiBQKAIARnIEQCBPKAIAIC4oAgBBAWo2Ahgg1AJBATYCAAwFCwsLCwsgoQMoAgAgogMoAgBBAnRqIC4oAgA2AgACQAJAAkADQAJAIKQDIKQDKAIAIgdBf2o2AgAgB0UNACAjKAIAINwCKAIATQ0AIP4BINcCKAIAICMoAgAgzQEoAgBxQQN0ajYCACDYAigCACEHINkCKAIAIQggDyDYAigCACDZAigCAEkEfyAHBSAICzYCAAJAAkAg1QIoAgBFDQAgIygCACAPKAIAaiBiKAIATw0AIM8BIPsBKAIAICMoAgBqNgIAIBooAgAgDygCAGogzwEoAgAgDygCAGogUCgCACDaAigCACDbAigCABC9AiEHIA8gDygCACAHajYCACAjKAIAIA8oAgBqIGIoAgBPBEAgzwEgzAEoAgAgIygCAGo2AgALDAELIM8BIMwBKAIAICMoAgBqNgIAIBooAgAgDygCAGogzwEoAgAgDygCAGogUCgCABC8AiEHIA8gDygCACAHajYCAAsgDygCACCPASgCAEsEQCAPKAIAIN0CKAIAICMoAgBrSwRAIN0CICMoAgAgDygCAGo2AgALII8BIA8oAgA2AgAgjgEoAgAgNigCAEEDdGogLigCACAjKAIAa0ECajYCACCOASgCACA2KAIAQQN0aiAPKAIANgIEIDYgNigCAEEBajYCACAPKAIAQYAgSw0BIBooAgAgDygCAGogUCgCAEYNAQsgIygCACEHIM8BKAIAIA8oAgBqLQAAIBooAgAgDygCAGotAABIBEAg/AEoAgAgBzYCACDYAiAPKAIANgIAICMoAgAgowMoAgBNDQMg/AEg/gEoAgBBBGo2AgAgIyD+ASgCACgCBDYCAAUg/QEoAgAgBzYCACDZAiAPKAIANgIAICMoAgAgowMoAgBNDQQg/QEg/gEoAgA2AgAgIyD+ASgCACgCADYCAAsMAQsLDAILIPwBIPsDNgIADAELIP0BIPsDNgIACyD9ASgCAEEANgIAIPwBKAIAQQA2AgAgTygCACDdAigCAEEIazYCGCDUAiA2KAIANgIACyDQASDUAigCADYCAAwECyCTASgCACEHIJQBKAIAIQgg0QEoAgAhCSDSASgCACEKIIECKAIAIQwgggIoAgAhECCDAigCACERIIQCKAIAIRIgSSBkKAIANgIAILgBIAc2AgAgFyAINgIAIEogCTYCACC3AiAKNgIAIN8DIAw2AgAguAIgEDYCACB/IBE2AgAg4AMgEjYCACC5AUEGNgIAIIsDILgBKAIAKAIUQf8fSQR/ILgBKAIAKAIUBUH/HwsiBzYCACC6ASBJKAIAKAIENgIAICsgFygCACC6ASgCAGs2AgAg4QMguAEoAgAoAgg2AgAgPSC5ASgCAEEDRgR/QQMFQQQLNgIAIIwDIEkoAgAoAiQ2AgAgjQMgFygCACDhAygCACC5ASgCABC7AjYCACAgIIwDKAIAII0DKAIAQQJ0aigCADYCACC5AiBJKAIAKAIsNgIAIOIDILgBKAIAKAIEQQFrNgIAILsBQQEg4gMoAgB0QQFrNgIAILoCQQA2AgAguwJBADYCACDvASBJKAIAKAIINgIAIFwgSSgCACgCDDYCACC8AiDvASgCACBcKAIAajYCACC9AiC6ASgCACBcKAIAajYCACCOAyC7ASgCACArKAIATwR/QQAFICsoAgAguwEoAgBrCyIHNgIAIL4CIEkoAgAoAhA2AgAg8AEguQIoAgAgKygCACC7ASgCAHFBA3RqNgIAIPEBILkCKAIAICsoAgAguwEoAgBxQQN0akEEajYCACC/AiArKAIAQQlqNgIAIDNBADYCACCPA0EBILgBKAIAKAIMdDYCACCAASDgAygCAEEBazYCACDkAyC4AigCAEEDajYCACCBASC4AigCADYCAAJAAkACQANAIIEBKAIAIOQDKAIATw0CIN8DKAIAIQcgvAEggQEoAgBBA0YEfyAHKAIAQQFrBSAHIIEBKAIAQQJ0aigCAAsiBzYCACCQAyArKAIAILwBKAIAazYCACBdQQA2AgAgvAEoAgBBAWsgKygCACBcKAIAa0kEQCAXKAIAID0oAgAQ8QIgFygCACC8ASgCAGsgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogFygCACA9KAIAaiC8ASgCAGsgSigCABC8AiA9KAIAajYCAAsFIJEDIO8BKAIAIJADKAIAajYCACC3AigCAARAILwBKAIAQQFrICsoAgAgvgIoAgBrSSBcKAIAQQFrIJADKAIAa0EDT3EEQCAXKAIAID0oAgAQ8QIgkQMoAgAgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogkQMoAgAgPSgCAGogSigCACC8AigCACC9AigCABC9AiA9KAIAajYCAAsLCwsgXSgCACCAASgCAEsEQCCAASBdKAIANgIAIH8oAgAgMygCAEEDdGoggQEoAgAguAIoAgBrNgIAIH8oAgAgMygCAEEDdGogXSgCADYCBCAzIDMoAgBBAWo2AgAgXSgCACCLAygCAEsgFygCACBdKAIAaiBKKAIARnINAgsggQEggQEoAgBBAWo2AgAMAAsACyC2AiAzKAIANgIADAELILkBKAIAQQNGBEAggAEoAgAguQEoAgBJBEAgggEgSSgCACAXKAIAEPICNgIAIIIBKAIAIL4CKAIASyArKAIAIIIBKAIAa0GAgBBJcQRAAkACQCC3AigCAEUNACCCASgCACBcKAIATw0AIOYDIO8BKAIAIIIBKAIAajYCACCDASAXKAIAIOYDKAIAIEooAgAgvAIoAgAgvQIoAgAQvQI2AgAMAQsg5QMgugEoAgAgggEoAgBqNgIAIIMBIBcoAgAg5QMoAgAgSigCABC8AjYCAAsggwEoAgAguQEoAgBPBEAggAEggwEoAgA2AgAgfygCACArKAIAIIIBKAIAa0ECajYCACB/KAIAIIMBKAIANgIEIDNBATYCACCDASgCACCLAygCAEsgFygCACCDASgCAGogSigCAEZyBEAgSSgCACArKAIAQQFqNgIYILYCQQE2AgAMBQsLCwsLIIwDKAIAII0DKAIAQQJ0aiArKAIANgIAAkACQAJAA0ACQCCPAyCPAygCACIHQX9qNgIAIAdFDQAgICgCACC+AigCAE0NACDyASC5AigCACAgKAIAILsBKAIAcUEDdGo2AgAgugIoAgAhByC7AigCACEIIAsgugIoAgAguwIoAgBJBH8gBwUgCAs2AgACQAJAILcCKAIARQ0AICAoAgAgCygCAGogXCgCAE8NACC9ASDvASgCACAgKAIAajYCACAXKAIAIAsoAgBqIL0BKAIAIAsoAgBqIEooAgAgvAIoAgAgvQIoAgAQvQIhByALIAsoAgAgB2o2AgAgICgCACALKAIAaiBcKAIATwRAIL0BILoBKAIAICAoAgBqNgIACwwBCyC9ASC6ASgCACAgKAIAajYCACAXKAIAIAsoAgBqIL0BKAIAIAsoAgBqIEooAgAQvAIhByALIAsoAgAgB2o2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ASAlKAIAIIUCKAIAazYCAAsLILADIIUCKAIANgIAILEDIN8CKAIANgIAIGYgASgCADYCAANAIOQCIAAoAgAgZigCAEEcbGooAgg2AgAgiwQgACgCACBmKAIAQRxsaigCBDYCACAAKAIAIGYoAgBBHGxqILADKAIANgIIIAAoAgAgZigCAEEcbGogsQMoAgA2AgQgsAMg5AIoAgA2AgAgsQMgiwQoAgA2AgAg5AIoAgAgZigCAE0EQCBmIGYoAgAg5AIoAgBrNgIADAELCyBnQQA2AgADQCBnKAIAICUoAgBJBEAg5QIgJCgCACBSKAIAazYCACDWASAAKAIAIGcoAgBBHGxqKAIINgIAINcBIAAoAgAgZygCAEEcbGooAgQ2AgAg1gEoAgBBAUYEQCAkICQoAgBBAWo2AgAgZyBnKAIAQQFqNgIADAILIGcgZygCACDWASgCAGo2AgAgJCAkKAIAINYBKAIAajYCACDXASgCAEEDTwRAICYoAgAgJigCACgCBDYCCCAmKAIAICYoAgAoAgA2AgQgJigCACDXASgCAEECazYCAAUgigIg1wEoAgAg5QIoAgBFajYCACCKAigCAARAICYoAgAhByCMBCCKAigCAEEDRgR/IAcoAgBBAWsFIAcgigIoAgBBAnRqKAIACyIHNgIAIIoCKAIAQQJPBEAgJigCACAmKAIAKAIENgIICyAmKAIAICYoAgAoAgA2AgQgJigCACCMBCgCADYCAAsLIDgoAgAg5QIoAgAgUigCACDXASgCACDWASgCABD4AiCOBCgCACDlAigCACBSKAIAINcBKAIAINYBKAIAQQNrEPkCIFIgJCgCADYCAAwBCwsgOCgCABD6AgwBCwsgjQIoAgAgUigCAGshACAGJAUgAAuM1gEBiQR/IwUhBiMFQeAQaiQFIAZBFGoiCyAANgIAIAZBEGoiACABNgIAIAZBDGoiASACNgIAIAZBCGoiAiADNgIAIAZBBGoiAyAENgIAIAYgBTYCACAAKAIAIQAgASgCACEBIAIoAgAhAiADKAIAIQMgBigCACEEIAZBsAJqImggCygCADYCACAGQawCaiKOBCAANgIAIAZBqAJqIiYgATYCACAGQaQCaiLYASACNgIAIAZBoAJqIgcgAzYCACAGQZwCaiIIIAQ2AgAgBkGYAmoijAJBAjYCACAGQZQC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IDYoAgBBA3RqIJABKAIAINYCKAIAazYCACCOASgCACA2KAIAQQN0aiBjKAIANgIEIDYgNigCAEEBajYCACBjKAIAIKADKAIASyAaKAIAIGMoAgBqIFAoAgBGcg0CCyCQASCQASgCAEEBajYCAAwACwALINQCIDYoAgA2AgAMAQsgywEoAgBBA0YEQCCPASgCACDLASgCAEkEQCCRASBPKAIAIBooAgAQ8gI2AgAgkQEoAgAg3AIoAgBLIC4oAgAgkQEoAgBrQYCAEElxBEACQAJAINUCKAIARQ0AIJEBKAIAIGIoAgBPDQAg/gMg+wEoAgAgkQEoAgBqNgIAIJIBIBooAgAg/gMoAgAgUCgCACDaAigCACDbAigCABC9AjYCAAwBCyD9AyDMASgCACCRASgCAGo2AgAgkgEgGigCACD9AygCACBQKAIAELwCNgIACyCSASgCACDLASgCAE8EQCCPASCSASgCADYCACCOASgCACAuKAIAIJEBKAIAa0ECajYCACCOASgCACCSASgCADYCBCA2QQE2AgAgkgEoAgAgoAMoAgBLIBooAgAgkgEoAgBqIFAoAgBGcgRAIE8oAgAgLigCAEEBajYCGCDUAkEBNgIADAULCwsLCyChAygCACCiAygCAEECdGogLigCADYCAAJAAkACQANAAkAgpAMgpAMoAgAiB0F/ajYCACAHRQ0AICMoAgAg3AIoAgBNDQAg/gEg1wIoAgAgIygCACDNASgCAHFBA3RqNgIAINgCKAIAIQcg2QIoAgAhCCAPINgCKAIAINkCKAIASQR/IAcFIAgLNgIAAkACQCDVAigCAEUNACAjKAIAIA8oAgBqIGIoAgBPDQAgzwEg+wEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAINoCKAIAINsCKAIAEL0CIQcgDyAPKAIAIAdqNgIAICMoAgAgDygCAGogYigCAE8EQCDPASDMASgCACAjKAIAajYCAAsMAQsgzwEgzAEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAELwCIQcgDyAPKAIAIAdqNgIACyAPKAIAII8BKAIASwRAIA8oAgAg3QIoAgAgIygCAGtLBEAg3QIgIygCACAPKAIAajYCAAsgjwEgDygCADYCACCOASgCACA2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KAIASyAXKAIAIIMBKAIAaiBKKAIARnIEQCBJKAIAICsoAgBBAWo2AhggtgJBATYCAAwFCwsLCwsgjAMoAgAgjQMoAgBBAnRqICsoAgA2AgACQAJAAkADQAJAII8DII8DKAIAIgdBf2o2AgAgB0UNACAgKAIAIL4CKAIATQ0AIPIBILkCKAIAICAoAgAguwEoAgBxQQN0ajYCACC6AigCACEHILsCKAIAIQggCyC6AigCACC7AigCAEkEfyAHBSAICzYCAAJAAkAgtwIoAgBFDQAgICgCACALKAIAaiBcKAIATw0AIL0BIO8BKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCACC8AigCACC9AigCABC9AiEHIAsgCygCACAHajYCACAgKAIAIAsoAgBqIFwoAgBPBEAgvQEgugEoAgAgICgCAGo2AgALDAELIL0BILoBKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCABC8AiEHIAsgCygCACAHajYCAAsgCygCACCAASgCAEsEQCALKAIAIL8CKAIAICAoAgBrSwRAIL8CICAoAgAgCygCAGo2AgALIIABIAsoAgA2AgAgfygCACAzKAIAQQN0aiArKAIAICAoAgBrQQJqNgIAIH8oAgAgMygCAEEDdGogCygCADYCBCAzIDMoAgBBAWo2AgAgCygCAEGAIEsNASAXKAIAIAsoAgBqIEooAgBGDQELICAoAgAhByC9ASgCACALKAIAai0AACAXKAIAIAsoAgBqLQAASARAIPABKAIAIAc2AgAgugIgCygCADYCACAgKAIAII4DKAIATQ0DIPABIPIBKAIAQQRqNgIAICAg8gEoAgAoAgQ2AgAFIPEBKAIAIAc2AgAguwIgCygCADYCACAgKAIAII4DKAIATQ0EIPEBIPIBKAIANgIAICAg8gEoAgAoAgA2AgALDAELCwwCCyDwASDjAzYCAAwBCyDxASDjAzYCAAsg8QEoAgBBADYCACDwASgCAEEANgIAIEkoAgAgvwIoAgBBCGs2AhggtgIgMygCADYCAAsg0AEgtgIoAgA2AgAMAwsgkwEoAgAhByCUASgCACEIINEBKAIAIQkg0gEoAgAhCiCBAigCACEMIIICKAIAIRAggwIoAgAhESCEAigCACESIEsg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sgFBADYCAAUgfSgCACEHIH4oAgAhCCCzASgCACEJIIcDKAIAIQogtAEoAgAhDCDpASBbKAIANgIAINcDIAc2AgAg2AMgCDYCACDZAyAJNgIAINoDIAo2AgAg2wMgDDYCACCFAyDpASgCACgCBDYCACCGAyDYAygCACCFAygCAGs2AgAg6gEg6QEoAgAoAhg2AgADQCDqASgCACCGAygCAEkEQCDpASgCACDXAygCACCFAygCACDqASgCAGog2QMoAgAg2gMoAgAg2wMoAgAQugIhByDqASDqASgCACAHajYCAAwBCwsg6QEoAgAghgMoAgA2AhgCQAJAAkACQCCHAygCAEEDaw4FAAMCAQEDCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEcgWygCADYCACCsASAHNgIAIBYgCDYCACBIIAk2AgAgrQIgCjYCACDPAyAMNgIAIK4CIBA2AgAgeCARNgIAINADIBI2AgAgrQFBAzYCACD+AiCsASgCACgCFEH/H0kEfyCsASgCACgCFAVB/x8LIgc2AgAgrgEgRygCACgCBDYCACAqIBYoAgAgrgEoAgBrNgIAINEDIKwBKAIAKAIINgIAIDwgrQEoAgBBA0YEf0EDBUEECzYCACD/AiBHKAIAKAIkNgIAIIADIBYoAgAg0QMoAgAgrQEoAgAQuwI2AgAgHyD/AigCACCAAygCAEECdGooAgA2AgAgrwIgRygCACgCLDYCACDSAyCsASgCACgCBEEBazYCACCvAUEBINIDKAIAdEEBazYCACCwAkEANgIAILECQQA2AgAg5QEgRygCACgCCDYCACBZIEcoAgAoAgw2AgAgsgIg5QEoAgAgWSgCAGo2AgAgswIgrgEoAgAgWSgCAGo2AgAggQMgrwEoAgAgKigCAE8Ef0EABSAqKAIAIK8BKAIAawsiBzYCACC0AiBHKAIAKAIQNgIAIOYBIK8CKAIAICooAgAgrwEoAgBxQQN0ajYCACDnASCvAigCACAqKAIAIK8BKAIAcUEDdGpBBGo2AgAgtQIgKigCAEEJajYCACAyQQA2AgAgggNBASCsASgCACgCDHQ2AgAgeSDQAygCAEEBazYCACDUAyCuAigCAEEDajYCACB6IK4CKAIANgIAAkACQAJAA0AgeigCACDUAygCAE8NAiDPAygCACEHILABIHooAgBBA0YEfyAHKAIAQQFrBSAHIHooAgBBAnRqKAIACyIHNgIAIIMDICooAgAgsAEoAgBrNgIAIFpBADYCAAJAILABKAIAQQFrICooAgAgWSgCAGtJBEAgFigCACA8KAIAEPECIBYoAgAgsAEoAgBrIDwoAgAQ8QJHDQEgWiAWKAIAIDwoAgBqIBYoAgAgPCgCAGogsAEoAgBrIEgoAgAQvAIgPCgCAGo2AgAFIIQDIOUBKAIAIIMDKAIAajYCACCtAigCAEUNASCwASgCAEEBayAqKAIAILQCKAIAa0kgWSgCAEEBayCDAygCAGtBA09xRQ0BIBYoAgAgPCgCABDxAiCEAygCACA8KAIAEPECRw0BIFogFigCACA8KAIAaiCEAygCACA8KAIAaiBIKAIAILICKAIAILMCKAIAEL0CIDwoAgBqNgIACwsgWigCACB5KAIASwRAIHkgWigCADYCACB4KAIAIDIoAgBBA3RqIHooAgAgrgIoAgBrNgIAIHgoAgAgMigCAEEDdGogWigCADYCBCAyIDIoAgBBAWo2AgAgWigCACD+AigCAEsgFigCACBaKAIAaiBIKAIARnINAgsgeiB6KAIAQQFqNgIADAALAAsgrAIgMigCADYCAAwBCwJAIK0BKAIAQQNGBEAgeSgCACCtASgCAE8NASB7IEcoAgAgFigCABDyAjYCACB7KAIAILQCKAIASyAqKAIAIHsoAgBrQYCAEElxRQ0BAkACQCCtAigCAEUNACB7KAIAIFkoAgBPDQAg1gMg5QEoAgAgeygCAGo2AgAgfCAWKAIAINYDKAIAIEgoAgAgsgIoAgAgswIoAgAQvQI2AgAMAQsg1QMgrgEoAgAgeygCAGo2AgAgfCAWKAIAINUDKAIAIEgoAgAQvAI2AgALIHwoAgAgrQEoAgBJDQEgeSB8KAIANgIAIHgoAgAgKigCACB7KAIAa0ECajYCACB4KAIAIHwoAgA2AgQgMkEBNgIAIHwoAgAg/gIoAgBLIBYoAgAgfCgCAGogSCgCAEZyRQ0BIEcoAgAgKigCAEEBajYCGCCsAkEBNgIADAILCyD/AigCACCAAygCAEECdGogKigCADYCAAJAAkACQANAAkAgggMgggMoAgAiB0F/ajYCACAHRQ0AIB8oAgAgtAIoAgBNDQAg6AEgrwIoAgAgHygCACCvASgCAHFBA3RqNgIAILACKAIAIQcgsQIoAgAhCCAFILACKAIAILECKAIASQR/IAcFIAgLNgIAAkACQCCtAigCAEUNACAfKAIAIAUoAgBqIFkoAgBPDQAgsQEg5QEoAgAgHygCAGo2AgAgFigCACAFKAIAaiCxASgCACAFKAIAaiBIKAIAILICKAIAILMCKAIAEL0CIQcgBSAFKAIAIAdqNgIAIB8oAgAgBSgCAGogWSgCAEkNASCxASCuASgCACAfKAIAajYCAAwBCyCxASCuASgCACAfKAIAajYCACAWKAIAIAUoAgBqILEBKAIAIAUoAgBqIEgoAgAQvAIhByAFIAUoAgAgB2o2AgALIAUoAgAgeSgCAEsEQCAFKAIAILUCKAIAIB8oAgBrSwRAILUCIB8oAgAgBSgCAGo2AgALIHkgBSgCADYCACB4KAIAIDIoAgBBA3RqICooAgAgHygCAGtBAmo2AgAgeCgCACAyKAIAQQN0aiAFKAIANgIEIDIgMigCAEEBajYCACAFKAIAQYAgSw0BIBYoAgAgBSgCAGogSCgCAEYNAQsgHygCACEHILEBKAIAIAUoAgBqLQAAIBYoAgAgBSgCAGotAABIBEAg5gEoAgAgBzYCACCwAiAFKAIANgIAIB8oAgAggQMoAgBNDQMg5gEg6AEoAgBBBGo2AgAgHyDoASgCACgCBDYCAAUg5wEoAgAgBzYCACCxAiAFKAIANgIAIB8oAgAggQMoAgBNDQQg5wEg6AEoAgA2AgAgHyDoASgCACgCADYCAAsMAQsLDAILIOYBINMDNgIADAELIOcBINMDNgIACyDnASgCAEEANgIAIOYBKAIAQQA2AgAgRygCACC1AigCAEEIazYCGCCsAiAyKAIANgIACyCyASCsAigCADYCAAwECyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEEgWygCADYCACCaASAHNgIAIBMgCDYCACBCIAk2AgAgjwIgCjYCACC3AyAMNgIAIJACIBA2AgAgaSARNgIAILgDIBI2AgAgmwFBBjYCACDpAiCaASgCACgCFEH/H0kEfyCaASgCACgCFAVB/x8LIgc2AgAgnAEgQSgCACgCBDYCACAnIBMoAgAgnAEoAgBrNgIAILkDIJoBKAIAKAIINgIAIDkgmwEoAgBBA0YEf0EDBUEECzYCACDqAiBBKAIAKAIkNgIAIOsCIBMoAgAguQMoAgAgmwEoAgAQuwI2AgAgHCDqAigCACDrAigCAEECdGooAgA2AgAgkQIgQSgCACgCLDYCACC6AyCaASgCACgCBEEBazYCACCdAUEBILoDKAIAdEEBazYCACCSAkEANgIAIJMCQQA2AgAg2QEgQSgCACgCCDYCACBTIEEoAgAoAgw2AgAglAIg2QEoAgAgUygCAGo2AgAglQIgnAEoAgAgUygCAGo2AgAg7AIgnQEoAgAgJygCAE8Ef0EABSAnKAIAIJ0BKAIAawsiBzYCACCWAiBBKAIAKAIQNgIAINoBIJECKAIAICcoAgAgnQEoAgBxQQN0ajYCACDbASCRAigCACAnKAIAIJ0BKAIAcUEDdGpBBGo2AgAglwIgJygCAEEJajYCACAvQQA2AgAg7QJBASCaASgCACgCDHQ2AgAgaiC4AygCAEEBazYCACC8AyCQAigCAEEDajYCACBrIJACKAIANgIAAkACQAJAA0AgaygCACC8AygCAE8NAiC3AygCACEHIJ4BIGsoAgBBA0YEfyAHKAIAQQFrBSAHIGsoAgBBAnRqKAIACyIHNgIAIO4CICcoAgAgngEoAgBrNgIAIFRBADYCAAJAIJ4BKAIAQQFrICcoAgAgUygCAGtJBEAgEygCACA5KAIAEPECIBMoAgAgngEoAgBrIDkoAgAQ8QJHDQEgVCATKAIAIDkoAgBqIBMoAgAgOSgCAGogngEoAgBrIEIoAgAQvAIgOSgCAGo2AgAFIO8CINkBKAIAIO4CKAIAajYCACCPAigCAEUNASCeASgCAEEBayAnKAIAIJYCKAIAa0kgUygCAEEBayDuAigCAGtBA09xRQ0BIBMoAgAgOSgCABDxAiDvAigCACA5KAIAEPECRw0BIFQgEygCACA5KAIAaiDvAigCACA5KAIAaiBCKAIAIJQCKAIAIJUCKAIAEL0CIDkoAgBqNgIACwsgVCgCACBqKAIASwRAIGogVCgCADYCACBpKAIAIC8oAgBBA3RqIGsoAgAgkAIoAgBrNgIAIGkoAgAgLygCAEEDdGogVCgCADYCBCAvIC8oAgBBAWo2AgAgVCgCACDpAigCAEsgEygCACBUKAIAaiBCKAIARnINAgsgayBrKAIAQQFqNgIADAALAAsgjgIgLygCADYCAAwBCwJAIJsBKAIAQQNGBEAgaigCACCbASgCAE8NASBsIEEoAgAgEygCABDyAjYCACBsKAIAIJYCKAIASyAnKAIAIGwoAgBrQYCAEElxRQ0BAkACQCCPAigCAEUNACBsKAIAIFMoAgBPDQAgvgMg2QEoAgAgbCgCAGo2AgAgbSATKAIAIL4DKAIAIEIoAgAglAIoAgAglQIoAgAQvQI2AgAMAQsgvQMgnAEoAgAgbCgCAGo2AgAgbSATKAIAIL0DKAIAIEIoAgAQvAI2AgALIG0oAgAgmwEoAgBJDQEgaiBtKAIANgIAIGkoAgAgJygCACBsKAIAa0ECajYCACBpKAIAIG0oAgA2AgQgL0EBNgIAIG0oAgAg6QIoAgBLIBMoAgAgbSgCAGogQigCAEZyRQ0BIEEoAgAgJygCAEEBajYCGCCOAkEBNgIADAILCyDqAigCACDrAigCAEECdGogJygCADYCAAJAAkACQANAAkAg7QIg7QIoAgAiB0F/ajYCACAHRQ0AIBwoAgAglgIoAgBNDQAg3AEgkQIoAgAgHCgCACCdASgCAHFBA3RqNgIAIJICKAIAIQcgkwIoAgAhCCACIJICKAIAIJMCKAIASQR/IAcFIAgLNgIAAkACQCCPAigCAEUNACAcKAIAIAIoAgBqIFMoAgBPDQAgnwEg2QEoAgAgHCgCAGo2AgAgEygCACACKAIAaiCfASgCACACKAIAaiBCKAIAIJQCKAIAIJUCKAIAEL0CIQcgAiACKAIAIAdqNgIAIBwoAgAgAigCAGogUygCAEkNASCfASCcASgCACAcKAIAajYCAAwBCyCfASCcASgCACAcKAIAajYCACATKAIAIAIoAgBqIJ8BKAIAIAIoAgBqIEIoAgAQvAIhByACIAIoAgAgB2o2AgALIAIoAgAgaigCAEsEQCACKAIAIJcCKAIAIBwoAgBrSwRAIJcCIBwoAgAgAigCAGo2AgALIGogAigCADYCACBpKAIAIC8oAgBBA3RqICcoAgAgHCgCAGtBAmo2AgAgaSgCACAvKAIAQQN0aiACKAIANgIEIC8gLygCAEEBajYCACACKAIAQYAgSw0BIBMoAgAgAigCAGogQigCAEYNAQsgHCgCACEHIJ8BKAIAIAIoAgBqLQAAIBMoAgAgAigCAGotAABIBEAg2gEoAgAgBzYCACCSAiACKAIANgIAIBwoAgAg7AIoAgBNDQMg2gEg3AEoAgBBBGo2AgAgHCDcASgCACgCBDYCAAUg2wEoAgAgBzYCACCTAiACKAIANgIAIBwoAgAg7AIoAgBNDQQg2wEg3AEoAgA2AgAgHCDcASgCACgCADYCAAsMAQsLDAILINoBILsDNgIADAELINsBILsDNgIACyDbASgCAEEANgIAINoBKAIAQQA2AgAgQSgCACCXAigCAEEIazYCGCCOAiAvKAIANgIACyCyASCOAigCADYCAAwDCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEMgWygCADYCACCgASAHNgIAIBQgCDYCACBEIAk2AgAgmQIgCjYCACC/AyAMNgIAIJoCIBA2AgAgbiARNgIAIMADIBI2AgAgoQFBBTYCACDwAiCgASgCACgCFEH/H0kEfyCgASgCACgCFAVB/x8LIgc2AgAgogEgQygCACgCBDYCACAoIBQoAgAgogEoAgBrNgIAIMEDIKABKAIAKAIINgIAIDogoQEoAgBBA0YEf0EDBUEECzYCACDxAiBDKAIAKAIkNgIAIPICIBQoAgAgwQMoAgAgoQEoAgAQuwI2AgAgHSDxAigCACDyAigCAEECdGooAgA2AgAgmwIgQygCACgCLDYCACDCAyCgASgCACgCBEEBazYCACCjAUEBIMIDKAIAdEEBazYCACCcAkEANgIAIJ0CQQA2AgAg3QEgQygCACgCCDYCACBVIEMoAgAoAgw2AgAgngIg3QEoAgAgVSgCAGo2AgAgnwIgogEoAgAgVSgCAGo2AgAg8wIgowEoAgAgKCgCAE8Ef0EABSAoKAIAIKMBKAIAawsiBzYCACCgAiBDKAIAKAIQNgIAIN4BIJsCKAIAICgoAgAgowEoAgBxQQN0ajYCACDfASCbAigCACAoKAIAIKMBKAIAcUEDdGpBBGo2AgAgoQIgKCgCAEEJajYCACAwQQA2AgAg9AJBASCgASgCACgCDHQ2AgAgbyDAAygCAEEBazYCACDEAyCaAigCAEEDajYCACBwIJoCKAIANgIAAkACQAJAA0AgcCgCACDEAygCAE8NAiC/AygCACEHIKQBIHAoAgBBA0YEfyAHKAIAQQFrBSAHIHAoAgBBAnRqKAIACyIHNgIAIPUCICgoAgAgpAEoAgBrNgIAIFZBADYCAAJAIKQBKAIAQQFrICgoAgAgVSgCAGtJBEAgFCgCACA6KAIAEPECIBQoAgAgpAEoAgBrIDooAgAQ8QJHDQEgViAUKAIAIDooAgBqIBQoAgAgOigCAGogpAEoAgBrIEQoAgAQvAIgOigCAGo2AgAFIPYCIN0BKAIAIPUCKAIAajYCACCZAigCAEUNASCkASgCAEEBayAoKAIAIKACKAIAa0kgVSgCAEEBayD1AigCAGtBA09xRQ0BIBQoAgAgOigCABDxAiD2AigCACA6KAIAEPECRw0BIFYgFCgCACA6KAIAaiD2AigCACA6KAIAaiBEKAIAIJ4CKAIAIJ8CKAIAEL0CIDooAgBqNgIACwsgVigCACBvKAIASwRAIG8gVigCADYCACBuKAIAIDAoAgBBA3RqIHAoAgAgmgIoAgBrNgIAIG4oAgAgMCgCAEEDdGogVigCADYCBCAwIDAoAgBBAWo2AgAgVigCACDwAigCAEsgFCgCACBWKAIAaiBEKAIARnINAgsgcCBwKAIAQQFqNgIADAALAAsgmAIgMCgCADYCAAwBCwJAIKEBKAIAQQNGBEAgbygCACChASgCAE8NASBxIEMoAgAgFCgCABDyAjYCACBxKAIAIKACKAIASyAoKAIAIHEoAgBrQYCAEElxRQ0BAkACQCCZAigCAEUNACBxKAIAIFUoAgBPDQAgxgMg3QEoAgAgcSgCAGo2AgAgciAUKAIAIMYDKAIAIEQoAgAgngIoAgAgnwIoAgAQvQI2AgAMAQsgxQMgogEoAgAgcSgCAGo2AgAgciAUKAIAIMUDKAIAIEQoAgAQvAI2AgALIHIoAgAgoQEoAgBJDQEgbyByKAIANgIAIG4oAgAgKCgCACBxKAIAa0ECajYCACBuKAIAIHIoAgA2AgQgMEEBNgIAIHIoAgAg8AIoAgBLIBQoAgAgcigCAGogRCgCAEZyRQ0BIEMoAgAgKCgCAEEBajYCGCCYAkEBNgIADAILCyDxAigCACDyAigCAEECdGogKCgCADYCAAJAAkACQANAAkAg9AIg9AIoAgAiB0F/ajYCACAHRQ0AIB0oAgAgoAIoAgBNDQAg4AEgmwIoAgAgHSgCACCjASgCAHFBA3RqNgIAIJwCKAIAIQcgnQIoAgAhCCADIJwCKAIAIJ0CKAIASQR/IAcFIAgLNgIAAkACQCCZAigCAEUNACAdKAIAIAMoAgBqIFUoAgBPDQAgpQEg3QEoAgAgHSgCAGo2AgAgFCgCACADKAIAaiClASgCACADKAIAaiBEKAIAIJ4CKAIAIJ8CKAIAEL0CIQcgAyADKAIAIAdqNgIAIB0oAgAgAygCAGogVSgCAEkNASClASCiASgCACAdKAIAajYCAAwBCyClASCiASgCACAdKAIAajYCACAUKAIAIAMoAgBqIKUBKAIAIAMoAgBqIEQoAgAQvAIhByADIAMoAgAgB2o2AgALIAMoAgAgbygCAEsEQCADKAIAIKECKAIAIB0oAgBrSwRAIKECIB0oAgAgAygCAGo2AgALIG8gAygCADYCACBuKAIAIDAoAgBBA3RqICgoAgAgHSgCAGtBAmo2AgAgbigCACAwKAIAQQN0aiADKAIANgIEIDAgMCgCAEEBajYCACADKAIAQYAgSw0BIBQoAgAgAygCAGogRCgCAEYNAQsgHSgCACEHIKUBKAIAIAMoAgBqLQAAIBQoAgAgAygCAGotAABIBEAg3gEoAgAgBzYCACCcAiADKAIANgIAIB0oAgAg8wIoAgBNDQMg3gEg4AEoAgBBBGo2AgAgHSDgASgCACgCBDYCAAUg3wEoAgAgBzYCACCdAiADKAIANgIAIB0oAgAg8wIoAgBNDQQg3wEg4AEoAgA2AgAgHSDgASgCACgCADYCAAsMAQsLDAILIN4BIMMDNgIADAELIN8BIMMDNgIACyDfASgCAEEANgIAIN4BKAIAQQA2AgAgQygCACChAigCAEEIazYCGCCYAiAwKAIANgIACyCyASCYAigCADYCAAwCCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEUgWygCADYCACCmASAHNgIAIBUgCDYCACBGIAk2AgAgowIgCjYCACDHAyAMNgIAIKQCIBA2AgAgcyARNgIAIMgDIBI2AgAgpwFBBDYCACD3AiCmASgCACgCFEH/H0kEfyCmASgCACgCFAVB/x8LIgc2AgAgqAEgRSgCACgCBDYCACApIBUoAgAgqAEoAgBrNgIAIMkDIKYBKAIAKAIINgIAIDsgpwEoAgBBA0YEf0EDBUEECzYCACD4AiBFKAIAKAIkNgIAIPkCIBUoAgAgyQMoAgAgpwEoAgAQuwI2AgAgHiD4AigCACD5AigCAEECdGooAgA2AgAgpQIgRSgCACgCLDYCACDKAyCmASgCACgCBEEBazYCACCpAUEBIMoDKAIAdEEBazYCACCmAkEANgIAIKcCQQA2AgAg4QEgRSgCACgCCDYCACBXIEUoAgAoAgw2AgAgqAIg4QEoAgAgVygCAGo2AgAgqQIgqAEoAgAgVygCAGo2AgAg+gIgqQEoAgAgKSgCAE8Ef0EABSApKAIAIKkBKAIAawsiBzYCACCqAiBFKAIAKAIQNgIAIOIBIKUCKAIAICkoAgAgqQEoAgBxQQN0ajYCACDjASClAigCACApKAIAIKkBKAIAcUEDdGpBBGo2AgAgqwIgKSgCAEEJajYCACAxQQA2AgAg+wJBASCmASgCACgCDHQ2AgAgdCDIAygCAEEBazYCACDMAyCkAigCAEEDajYCACB1IKQCKAIANgIAAkACQAJAA0AgdSgCACDMAygCAE8NAiDHAygCACEHIKoBIHUoAgBBA0YEfyAHKAIAQQFrBSAHIHUoAgBBAnRqKAIACyIHNgIAIPwCICkoAgAgqgEoAgBrNgIAIFhBADYCAAJAIKoBKAIAQQFrICkoAgAgVygCAGtJBEAgFSgCACA7KAIAEPECIBUoAgAgqgEoAgBrIDsoAgAQ8QJHDQEgWCAVKAIAIDsoAgBqIBUoAgAgOygCAGogqgEoAgBrIEYoAgAQvAIgOygCAGo2AgAFIP0CIOEBKAIAIPwCKAIAajYCACCjAigCAEUNASCqASgCAEEBayApKAIAIKoCKAIAa0kgVygCAEEBayD8AigCAGtBA09xRQ0BIBUoAgAgOygCABDxAiD9AigCACA7KAIAEPECRw0BIFggFSgCACA7KAIAaiD9AigCACA7KAIAaiBGKAIAIKgCKAIAIKkCKAIAEL0CIDsoAgBqNgIACwsgWCgCACB0KAIASwRAIHQgWCgCADYCACBzKAIAIDEoAgBBA3RqIHUoAgAgpAIoAgBrNgIAIHMoAgAgMSgCAEEDdGogWCgCADYCBCAxIDEoAgBBAWo2AgAgWCgCACD3AigCAEsgFSgCACBYKAIAaiBGKAIARnINAgsgdSB1KAIAQQFqNgIADAALAAsgogIgMSgCADYCAAwBCwJAIKcBKAIAQQNGBEAgdCgCACCnASgCAE8NASB2IEUoAgAgFSgCABDyAjYCACB2KAIAIKoCKAIASyApKAIAIHYoAgBrQYCAEElxRQ0BAkACQCCjAigCAEUNACB2KAIAIFcoAgBPDQAgzgMg4QEoAgAgdigCAGo2AgAgdyAVKAIAIM4DKAIAIEYoAgAgqAIoAgAgqQIoAgAQvQI2AgAMAQsgzQMgqAEoAgAgdigCAGo2AgAgdyAVKAIAIM0DKAIAIEYoAgAQvAI2AgALIHcoAgAgpwEoAgBJDQEgdCB3KAIANgIAIHMoAgAgKSgCACB2KAIAa0ECajYCACBzKAIAIHcoAgA2AgQgMUEBNgIAIHcoAgAg9wIoAgBLIBUoAgAgdygCAGogRigCAEZyRQ0BIEUoAgAgKSgCAEEBajYCGCCiAkEBNgIADAILCyD4AigCACD5AigCAEECdGogKSgCADYCAAJAAkACQANAAkAg+wIg+wIoAgAiB0F/ajYCACAHRQ0AIB4oAgAgqgIoAgBNDQAg5AEgpQIoAgAgHigCACCpASgCAHFBA3RqNgIAIKYCKAIAIQcgpwIoAgAhCCAEIKYCKAIAIKcCKAIASQR/IAcFIAgLNgIAAkACQCCjAigCAEUNACAeKAIAIAQoAgBqIFcoAgBPDQAgqwEg4QEoAgAgHigCAGo2AgAgFSgCACAEKAIAaiCrASgCACAEKAIAaiBGKAIAIKgCKAIAIKkCKAIAEL0CIQcgBCAEKAIAIAdqNgIAIB4oAgAgBCgCAGogVygCAEkNASCrASCoASgCACAeKAIAajYCAAwBCyCrASCoASgCACAeKAIAajYCACAVKAIAIAQoAgBqIKsBKAIAIAQoAgBqIEYoAgAQvAIhByAEIAQoAgAgB2o2AgALIAQoAgAgdCgCAEsEQCAEKAIAIKsCKAIAIB4oAgBrSwRAIKsCIB4oAgAgBCgCAGo2AgALIHQgBCgCADYCACBzKAIAIDEoAgBBA3RqICkoAgAgHigCAGtBAmo2AgAgcygCACAxKAIAQQN0aiAEKAIANgIEIDEgMSgCAEEBajYCACAEKAIAQYAgSw0BIBUoAgAgBCgCAGogRigCAEYNAQsgHigCACEHIKsBKAIAIAQoAgBqLQAAIBUoAgAgBCgCAGotAABIBEAg4gEoAgAgBzYCACCmAiAEKAIANgIAIB4oAgAg+gIoAgBNDQMg4gEg5AEoAgBBBGo2AgAgHiDkASgCACgCBDYCAAUg4wEoAgAgBzYCACCnAiAEKAIANgIAIB4oAgAg+gIoAgBNDQQg4wEg5AEoAgA2AgAgHiDkASgCACgCADYCAAsMAQsLDAILIOIBIMsDNgIADAELIOMBIMsDNgIACyDjASgCAEEANgIAIOIBKAIAQQA2AgAgRSgCACCrAigCAEEIazYCGCCiAiAxKAIANgIACyCyASCiAigCADYCAAsLIIkCILIBKAIANgIAIIkCKAIABEAg4gIgNygCACCJAigCAEEDdGpBfGooAgA2AgAg4gIoAgAgjQQoAgBLIAEoAgAg4gIoAgBqQYAgT3INBCBlQQA2AgADQCBlKAIAIIkCKAIATw0DIOMCIDcoAgAgZSgCAEEDdGooAgA2AgAgrgMgACgCACABKAIAQRxsakEQaiDjAigCACCtAygCABD0AiCJBCA3KAIAIGUoAgBBA3RqKAIENgIAIIoEIGUoAgBBAEsEfyA3KAIAIGUoAgBBA3RqQXxqKAIAQQFqBSCLAigCAAsiBzYCACCWASCJBCgCADYCAANAAkAglgEoAgAgigQoAgBJDQAgUSABKAIAIJYBKAIAajYCACCIBCgCACEHIJYBKAIAIQggOCgCACEJIIwCKAIAIQogtAMg4wIoAgA2AgAgtQMgCDYCACCXASAJNgIAILYDIAo2AgAgmQEgtAMoAgBBAWoQ1AE2AgAg5wIgtQMoAgBBA2s2AgAglwEoAgAoAjgEQCDmAiDnAigCAEEBahDUAUEQaiCZASgCAGo2AgAFIJgBIJkBKAIAIJcBKAIAKAI0aiCXASgCACgCDCCZASgCAEECdGooAgBBAWoQ1AFrNgIAILYDKAIAQQJIIJkBKAIAQRRPcQRAIJgBIJgBKAIAIJkBKAIAQRNrQQF0ajYCAAsg6AIg5wIoAgAQ3AI2AgAg6AIoAgBBAnRBwDVqKAIAIJcBKAIAKAIwaiCXASgCACgCCCDoAigCAEECdGooAgBBAWoQ1AFrIQggmAEgmAEoAgAgCGo2AgAg5gIgmAEoAgA2AgALIK8DIAcg5gIoAgBqNgIAAkACQCBRKAIAICUoAgBLDQAgrwMoAgAgACgCACBRKAIAQRxsaigCAEgNACCMAigCAEUNAgwBCwNAICUoAgAgUSgCAEkEQCAAKAIAICUoAgBBAWpBHGxqQYCAgIAENgIAICUgJSgCAEEBajYCAAwBCwsgACgCACBRKAIAQRxsaiCWASgCADYCCCAAKAIAIFEoAgBBHGxqIOMCKAIANgIEIAAoAgAgUSgCAEEcbGog1QEoAgA2AgwgACgCACBRKAIAQRxsaiCvAygCADYCACAAKAIAIFEoAgBBHGxqQRBqIgcgrgMpAgA3AgAgByCuAygCCDYCCAsglgEglgEoAgBBf2o2AgAMAQsLIGUgZSgCAEEBajYCAAwACwALCwsgASABKAIAQQFqNgIADAALAAsghQIg4gIoAgA2AgAg3wIgNygCACCJAigCAEEBa0EDdGooAgA2AgAgJSABKAIAQQFqNgIADAILIIUCIAAoAgAgJSgCAEEcbGooAgg2AgAg3wIgACgCACAlKAIAQRxsaigCBDYCACABICUoAgAghQIoAgBrNgIACwsgsAMghQIoAgA2AgAgsQMg3wIoAgA2AgAgZiABKAIANgIAA0Ag5AIgACgCACBmKAIAQRxsaigCCDYCACCLBCAAKAIAIGYoAgBBHGxqKAIENgIAIAAoAgAgZigCAEEcbGogsAMoAgA2AgggACgCACBmKAIAQRxsaiCxAygCADYCBCCwAyDkAigCADYCACCxAyCLBCgCADYCACDkAigCACBmKAIATQRAIGYgZigCACDkAigCAGs2AgAMAQsLIGdBADYCAANAIGcoAgAgJSgCAEkEQCDlAiAkKAIAIFIoAgBrNgIAINYBIAAoAgAgZygCAEEcbGooAgg2AgAg1wEgACgCACBnKAIAQRxsaigCBDYCACDWASgCAEEBRgRAICQgJCgCAEEBajYCACBnIGcoAgBBAWo2AgAMAgsgZyBnKAIAINYBKAIAajYCACAkICQoAgAg1gEoAgBqNgIAINcBKAIAQQNPBEAgJigCACAmKAIAKAIENgIIICYoAgAgJigCACgCADYCBCAmKAIAINcBKAIAQQJrNgIABSCKAiDXASgCACDlAigCAEVqNgIAIIoCKAIABEAgJigCACEHIIwEIIoCKAIAQQNGBH8gBygCAEEBawUgByCKAigCAEEC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ACEQIDcoAgAhESCLAigCACESIGQgaCgCADYCACCTASAHNgIAIJQBIAg2AgAg0QEgCTYCACDSASAKNgIAIIECIAw2AgAgggIgEDYCACCDAiARNgIAIIQCIBI2AgAgqQMgkwEoAgAoAhA2AgACQCCUASgCACBkKAIAKAIEIGQoAgAoAhhqSQRAINABQQA2AgAFIJMBKAIAIQcglAEoAgAhCCDRASgCACEJIKkDKAIAIQog0gEoAgAhDCD/ASBkKAIANgIAIP8DIAc2AgAggAQgCDYCACCBBCAJNgIAIIIEIAo2AgAggwQgDDYCACCnAyD/ASgCACgCBDYCACCoAyCABCgCACCnAygCAGs2AgAggAIg/wEoAgAoAhg2AgADQCCAAigCACCoAygCAEkEQCD/ASgCACD/AygCACCnAygCACCAAigCAGoggQQoAgAgggQoAgAggwQoAgAQugIhByCAAiCAAigCACAHajYCAAwBCwsg/wEoAgAgqAMoAgA2AhgCQAJAAkACQCCpAygCAEEDaw4FAAMCAQEDCyCTASgCACEHIJQBKAIAIQgg0QEoAgAhCSDSASgCACEKIIECKAIAIQwgggIoAgAhECCDAigCACERIIQCKAIAIRIgTyBkKAIANgIAIMoBIAc2AgAgGiAINgIAIFAgCTYCACDVAiAKNgIAIPcDIAw2AgAg1gIgEDYCACCOASARNgIAIPgDIBI2AgAgywFBAzYCACCgAyDKASgCACgCFEH/H0kEfyDKASgCACgCFAVB/x8LIgc2AgAgzAEgTygCACgCBDYCACAuIBooAgAgzAEoAgBrNgIAIPkDIMoBKAIAKAIINgIAIEAgywEoAgBBA0YEf0EDBUEECzYCACChAyBPKAIAKAIkNgIAIKIDIBooAgAg+QMoAgAgywEoAgAQuwI2AgAgIyChAygCACCiAygCAEECdGooAgA2AgAg1wIgTygCACgCLDYCACD6AyDKASgCACgCBEEBazYCACDNAUEBIPoDKAIAdEEBazYCACDYAkEANgIAINkCQQA2AgAg+wEgTygCACgCCDYCACBiIE8oAgAoAgw2AgAg2gIg+wEoAgAgYigCAGo2AgAg2wIgzAEoAgAgYigCAGo2AgAgowMgzQEoAgAgLigCAE8Ef0EABSAuKAIAIM0BKAIAawsiBzYCACDcAiBPKAIAKAIQ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a0EDT3EEQCAXKAIAID0oAgAQ8QIgkQMoAgAgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogkQMoAgAgPSgCAGogSigCACC8AigCACC9AigCABC9AiA9KAIAajYCAAsLCwsgXSgCACCAASgCAEsEQCCAASBdKAIANgIAIH8oAgAgMygCAEEDdGoggQEoAgAguAIoAgBrNgIAIH8oAgAgMygCAEEDdGogXSgCADYCBCAzIDMoAgBBAWo2AgAgXSgCACCLAygCAEsgFygCACBdKAIAaiBKKAIARnINAgsggQEggQEoAgBBAWo2AgAMAAsACyC2AiAzKAIANgIADAELILkBKAIAQQNGBEAggAEoAgAguQEoAgBJBEAgggEgSSgCACAXKAIAEPICNgIAIIIBKAIAIL4CKAIASyArKAIAIIIBKAIAa0GAgBBJcQRAAkACQCC3AigCAEUNACCCASgCACBcKAIATw0AIOYDIO8BKAIAIIIBKAIAajYCACCDASAXKAIAIOYDKAIAIEooAgAgvAIoAgAgvQIoAgAQvQI2AgAMAQsg5QMgugEoAgAgggEoAgBqNgIAIIMBIBcoAgAg5QMoAgAgSigCABC8AjYCAAsggwEoAgAguQEoAgBPBEAggAEggwEoAgA2AgAgfygCACArKAIAIIIBKAIAa0ECajYCACB/KAIAIIMBKAIANgIEIDNBATYCACCDASgCACCLAygCAEsgFygCACCDASgCAGogSigCAEZyBEAgSSgCACArKAIAQQFqNgIYILYCQQE2AgAMBQsLCwsLIIwDKAIAII0DKAIAQQJ0aiArKAIANgIAAkACQAJAA0ACQCCPAyCPAygCACIHQX9qNgIAIAdFDQAgICgCACC+AigCAE0NACDyASC5AigCACAgKAIAILsBKAIAcUEDdGo2AgAgugIoAgAhByC7AigCACEIIAsgugIoAgAguwIoAgBJBH8gBwUgCAs2AgACQAJAILcCKAIARQ0AICAoAgAgCygCAGogXCgCAE8NACC9ASDvASgCACAgKAIAajYCACAXKAIAIAsoAgBqIL0BKAIAIAsoAgBqIEooAgAgvAIoAgAgvQIoAgAQvQIhByALIAsoAgAgB2o2AgAgICgCACALKAIAaiBcKAIATwRAIL0BILoBKAIAICAoAgBqNgIACwwBCyC9ASC6ASgCACAgKAIA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CyCFAiAAKAIAICUoAgBBHGxqKAIINgIAIN8CIAAoAgAgJSgCAEEcbGooAgQ2AgAgASAlKAIAIIUCKAIAazYCAAsLILADIIUCKAIANgIAILEDIN8CKAIANgIAIGYgASgCADYCAANAIOQCIAAoAgAgZigCAEEcbGooAgg2AgAgiwQgACgCACBmKAIAQRxsaigCBDYCACAAKAIAIGYoAgBBHGxqILADKAIANgIIIAAoAgAgZigCAEEcbGogsQMoAgA2AgQgsAMg5AIoAgA2AgAgsQMgiwQoAgA2AgAg5AIoAgAgZigCAE0EQCBmIGYoAgAg5AIoAgBrNgIADAELCyBnQQA2AgADQCBnKAIAICUoAgBJBEAg5QIgJCgCACBSKAIAazYCACDWASAAKAIAIGcoAgBBHGxqKAIINgIAINcBIAAoAgAgZygCAEEcbGooAgQ2AgAg1gEoAgBBAUYEQCAkICQoAgBBAWo2AgAgZyBnKAIAQQFqNgIADAILIGcgZygCACDWASgCAGo2AgAgJCAkKAIAINYBKAIAajYCACDXASgCAEEDTwRAICYoAgAgJigCACgCBDYCCCAmKAIAICYoAgAoAgA2AgQgJigCACDXASgCAEECazYCAAUgigIg1wEoAgAg5QIoAgBFajYCACCKAigCAARAICYoAgAhByCMBCCKAigCAEEDRgR/IAcoAgBBAWsFIAcgigIoAgBBAnRqKAIACyIHNgIAIIoCKAIAQQJPBEAgJigCACAmKAIAKAIENgIICyAmKAIAICYoAgAoAgA2AgQgJigCACCMBCgCADYCAAsLIDgoAgAg5QIoAgAgUigCACDXASgCACDWASgCABD4AiCOBCgCACDlAigCACBSKAIAINcBKAIAINYBKAIAQQNrEPkCIFIgJCgCADYCAAwBCwsgOCgCABD6AgwBCwsgjQIoAgAgUigCAGshACAGJAUgAAuM1gEBiQR/IwUhBiMFQeAQaiQFIAZBFGoiCyAANgIAIAZBEGoiACABNgIAIAZBDGoiASACNgIAIAZBCGoiAiADNgIAIAZBBGoiAyAENgIAIAYgBTYCACAAKAIAIQAgASgCACEBIAIoAgAhAiADKAIAIQMgBigCACEEIAZBsAJqImggCygCADYCACAGQawCaiKOBCAANgIAIAZBqAJqIiYgATYCACAGQaQCaiLYASAC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ABC9AiBAKAIAajYCAAsLCwsgYygCACCPASgCAEsEQCCPASBjKAIANgIAII4BKAIAIDYoAgBBA3RqIJABKAIAINYCKAIAazYCACCOASgCACA2KAIAQQN0aiBjKAIANgIEIDYgNigCAEEBajYCACBjKAIAIKADKAIASyAaKAIAIGMoAgBqIFAoAgBGcg0CCyCQASCQASgCAEEBajYCAAwACwALINQCIDYoAgA2AgAMAQsgywEoAgBBA0YEQCCPASgCACDLASgCAEkEQCCRASBPKAIAIBooAgAQ8gI2AgAgkQEoAgAg3AIoAgBLIC4oAgAgkQEoAgBrQYCAEElxBEACQAJAINUCKAIARQ0AIJEBKAIAIGIoAgBPDQAg/gMg+wEoAgAgkQEoAgBqNgIAIJIBIBooAgAg/gMoAgAgUCgCACDaAigCACDbAigCABC9AjYCAAwBCyD9AyDMASgCACCRASgCAGo2AgAgkgEgGigCACD9AygCACBQKAIAELwCNgIACyCSASgCACDLASgCAE8EQCCPASCSASgCADYCACCOASgCACAuKAIAIJEBKAIAa0ECajYCACCOASgCACCSASgCADYCBCA2QQE2AgAgkgEoAgAgoAMoAgBLIBooAgAgkgEoAgBqIFAoAgBGcgRAIE8oAgAgLigCAEEBajYCGCDUAkEBNgIADAULCwsLCyChAygCACCiAygCAEECdGogLigCADYCAAJAAkACQANAAkAgpAMgpAMoAgAiB0F/ajYCACAHRQ0AICMoAgAg3AIoAgBNDQAg/gEg1wIoAgAgIygCACDNASgCAHFBA3RqNgIAINgCKAIAIQcg2QIoAgAhCCAPINgCKAIAINkCKAIASQR/IAcFIAgLNgIAAkACQCDVAigCAEUNACAjKAIAIA8oAgBqIGIoAgBPDQAgzwEg+wEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAINoCKAIAINsCKAIAEL0CIQcgDyAPKAIAIAdqNgIAICMoAgAgDygCAGogYigCAE8EQCDPASDMASgCACAjKAIAajYCAAsMAQsgzwEgzAEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAELwCIQcgDyAPKAIAIAdqNgIACyAPKAIAII8BKAIASwRAIA8oAgAg3QIo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ICsoAgAgggEoAgBrQQJqNgIAIH8oAgAggwEoAgA2AgQgM0EBNgIAIIMBKAIAIIsDKAIASyAXKAIAIIMBKAIAaiBKKAIARnIEQCBJKAIAICsoAgBBAWo2AhggtgJBATYCAAwFCwsLCwsgjAMoAgAgjQMoAgBBAnRqICsoAgA2AgACQAJAAkADQAJAII8DII8DKAIAIgdBf2o2AgAgB0UNACAgKAIAIL4CKAIATQ0AIPIBILkCKAIAICAoAgAguwEoAgBxQQN0ajYCACC6AigCACEHILsCKAIAIQggCyC6AigCACC7AigCAEkEfyAHBSAICzYCAAJAAkAgtwIoAgBFDQAgICgCACALKAIAaiBcKAIATw0AIL0BIO8BKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCACC8AigCACC9AigCABC9AiEHIAsgCygCACAHajYCACAgKAIAIAsoAgBqIFwoAgBPBEAgvQEgugEoAgAgICgCAGo2AgALDAELIL0BILoBKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCABC8AiEHIAsgCygCACAHajYCAAsgCygCACCAASgCAEsEQCALKAIAIL8CKAIAICAoAgBrSwRAIL8CICAoAgAgCygCAGo2AgALIIABIAsoAgA2AgAgfygCACAzKAIAQQN0aiArKAIAICAoAgBrQQJqNgIAIH8oAgAgMygCAEEDdGogCygCADYCBCAzIDMoAgBBAWo2AgAgCygCAEGAIEsNASAXKAIAIAsoAgBqIEooAgBGDQELICAoAgAhByC9ASgCACALKAIAai0AACAXKAIAIAsoAgBqLQAASARAIPABKAIAIAc2AgAgugIgCygCADYCACAgKAIAII4DKAIATQ0DIPABIPIBKAIAQQRqNgIAICAg8gEoAgAoAgQ2AgAFIPEBKAIAIAc2AgAguwIgCygCADYCACAgKAIAII4DKAIATQ0EIPEBIPIBKAIANgIAICAg8gEoAgAoAgA2AgALDAELCwwCCyDwASDjAzYCAAwBCyDxASDjAzYCAAsg8QEoAgBBADYCACDwASgCAEEANgIAIEkoAgAgvwIoAgBBCGs2AhggtgIgMygCADYCAAsg0AEgtgIoAgA2AgAMAwsgkwEoAgAhByCUASgCACEIINEB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ASASNgIAIIcDIH0oAgAoAhA2AgACQCB+KAIAIFsoAgAoAgQgWygCACgCGGpJBEAgsgFBADYCAAUgfSgCACEHIH4oAgAhCCCzASgCACEJIIcDKAIAIQogtAEoAgAhDCDpASBbKAIANgIAINcDIAc2AgAg2AMgCDYCACDZAyAJNgIAINoDIAo2AgAg2wMgDDYCACCFAyDpASgCACgCBDYCACCGAyDYAygCACCFAygCAGs2AgAg6gEg6QEoAgAoAhg2AgADQCDqASgCACCGAygCAEkEQCDpASgCACDXAygCACCFAygCACDqASgCAGog2QMoAgAg2gMoAgAg2wMoAgAQugIhByDqASDqASgCACAHajYCAAwBCwsg6QEoAgAghgMoAgA2AhgCQAJAAkACQCCHAygCAEEDaw4FAAMCAQEDCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEcgWygCADYCACCsASAHNgIAIBYgCDYCACBIIAk2AgAgrQIgCjYCACDPAyAMNgIAIK4CIBA2AgAgeCARNgIAINADIBI2AgAgrQFBAzYCACD+AiCsASgCACgCFEH/H0kEfyCsASgCACgCFAVB/x8LIgc2AgAgrgEgRygCACgCBDYCACAqIBYoAgAgrgEoAgBrNgIAINEDIKwBKAIAKAIINgIAIDwgrQEoAgBBA0YEf0EDBUEECzYCACD/AiBHKAIAKAIkNgIAIIADIBYoAgAg0QMoAgAgrQEoAgAQuwI2AgAgHyD/AigCACCAAygCAEECdGooAgA2AgAgrwIgRygCACgCLDYCACDSAyCsASgCACgCBEEBazYCACCvAUEBINIDKAIAdEEBazYCACCwAkEANgIAILECQQA2AgAg5QEgRygCACgCCDYCACBZIEcoAgAoAgw2AgAgsgIg5QEoAgAgWSgCAGo2AgAgswIgrgEoAgAgWSgCAGo2AgAggQMgrwEoAgAgKigCAE8Ef0EABSAqKAIAIK8BKAIAawsiBzYCACC0AiBHKAIAKAIQNgIAIOYBIK8CKAIAICooAgAgrwEoAgBxQQN0ajYCACDnASCvAigCACAqKAIAIK8BKAIAcUEDdGpBBGo2AgAgtQIgKigCAEEJajYCACAyQQA2AgAgggNBASCsASgCACgCDHQ2AgAgeSDQAygCAEEBazYCACDUAyCuAigCAEEDajYCACB6IK4CKAIANgIAAkACQAJAA0AgeigCACDUAygCAE8NAiDPAygCACEHILABIHooAgBBA0YEfyAHKAIAQQFrBSAHIHooAgBBAnRqKAIACyIHNgIAIIMDICooAgAgsAEoAgBrNgIAIFpBADYCAAJAILABKAIAQQFrICooAgAgWSgCAGtJBEAgFigCACA8KAIAEPECIBYoAgAgsAEoAgBrIDwoAgAQ8QJHDQEgWiAWKAIAIDwoAgBqIBYoAgAgPCgCAGogsAEoAgBrIEgoAgAQvAIgPCgCAGo2AgAFIIQDIOUBKAIAIIMDKAIAajYCACCtAigCAEUNASCwASgCAEEBayAqKAIAILQCKAIAa0kgWSgCAEEBayCDAygCAGtBA09xRQ0BIBYoAgAgPCgCABDxAiCEAygCACA8KAIAEPECRw0BIFogFigCACA8KAIAaiCEAygCACA8KAIAaiBIKAIAILICKAIAILMCKAIAEL0CIDwoAgBqNgIACwsgWigCACB5KAIASwRAIHkgWigCADYCACB4KAIAIDIoAgBBA3RqIHooAgAgrgIoAgBrNgIAIHgoAgAgMigCAEEDdGogWigCADYCBCAyIDIoAgBBAWo2AgAgWigCACD+AigCAEsgFigCACBaKAIAaiBIKAIARnINAgsgeiB6KAIAQQFqNgIADAALAAsgrAIgMigCADYCAAwBCwJAIK0BKAIAQQNGBEAgeSgCACCtASgCAE8NASB7IEcoAgAgFigCABDyAjYCACB7KAIAILQCKAIASyAqKAIAIHsoAgBrQYCAEElxRQ0BAkACQCCtAigCAEUNACB7KAIAIFkoAgBPDQAg1gMg5QEoAgAgeygCAGo2AgAgfCAWKAIAINYDKAIAIEgoAgAgsgIoAgAgswIoAgAQvQI2AgAMAQsg1QMgrgEoAgAgeygCAGo2AgAgfCAWKAIAINUDKAIAIEgoAgAQvAI2AgALIHwoAgAgrQEoAgBJDQEgeSB8KAIANgIAIHgoAgAgKigCACB7KAIAa0ECajYCACB4KAIAIHwoAgA2AgQgMkEBNgIAIHwoAgAg/gIoAgBLIBYoAgAgfCgCAGogSCgCAEZyRQ0BIEcoAgAgKigCAEEBajYCGCCsAkEBNgIADAILCyD/AigCACCAAygCAEECdGogKigCADYCAAJAAkACQANAAkAgggMgggMoAgAiB0F/ajYCACAHRQ0AIB8oAgAgtAIoAgBNDQAg6AEgrwIoAgAgHygCACCvASgCAHFBA3RqNgIAILACKAIAIQcgsQIoAgAhCCAFILACKAIAILECKAIASQR/IAcFIAgLNgIAAkACQCCtAigCAEUNACAfKAIAIAUoAgBqIFkoAgBPDQAgsQEg5QEoAgAgHygCAGo2AgAgFigCACAFKAIAaiCxASgCACAFKAIAaiBIKAIAILICKAIAILMCKAIAEL0CIQcgBSAFKAIAIAdqNgIAIB8oAgAgBSgCAGogWSgCAEkNASCxASCuASgCACAfKAIAajYCAAwBCyCxASCuASgCACAfKAIAajYCACAWKAIAIAUoAgBqILEBKAIAIAUoAgBqIEgoAgAQvAIhByAFIAUoAgAgB2o2AgALIAUoAgAgeSgCAEsEQCAFKAIAILUCKAIAIB8oAgBrSwRAILUCIB8oAgAgBSgCAGo2AgALIHkgBSgCADYCACB4KAIAIDIoAgBBA3RqICooAgAgHygCAGtBAmo2AgAgeCgCACAyKAIAQQN0aiAFKAIANgIEIDIgMigCAEEBajYCACAFKAIAQYAgSw0BIBYoAgAgBSgCAGogSCgCAEYNAQsgHygCACEHILEBKAIAIAUoAgBqLQAAIBYoAgAgBSgCAGotAABIBEAg5gEoAgAgBzYCACCwAiAFKAIANgIAIB8oAgAggQMoAgBNDQMg5gEg6AEoAgBBBGo2AgAgHyDoASgCACgCBDYCAAUg5wEoAgAgBzYCACCxAiAFKAIANgIAIB8oAgAggQMoAgBNDQQg5wEg6AEoAgA2AgAgHyDoASgCACgCADYCAAsMAQsLDAILIOYBINMDNgIADAELIOcBINMDNgIACyDnASgCAEEANgIAIOYBKAIAQQA2AgAgRygCACC1AigCAEEIazYCGCCsAiAyKAIANgIACyCyASCsAigCADYCAAwECyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEEgWygCADYCACCaASAHNgIAIBMgCDYCACBCIAk2AgAgjwIgCjYCACC3AyAMNgIAIJACIBA2AgAgaSARNgIAILgDIBI2AgAgmwFBBjYCACDpAiCaASgCACgCFEH/H0kEfyCaASgCACgCFAVB/x8LIgc2AgAgnAEgQSgCACgCBDYCACAnIBMoAgAgnAEoAgBrNgIAILkDIJoBKAIAKAIINgIAIDkgmwEoAgBBA0YEf0EDBUEECzYCACDqAiBBKAIAKAIkNgIAIOsCIBMoAgAguQMoAgAgmwEoAgAQuwI2AgAgHCDqAigCACDrAigCAEECdGooAgA2AgAgkQIgQSgCACgCLDYCACC6AyCaASgCACgCBEEBazYCACCdAUEBILoDKAIAdEEBazYCACCSAkEANgIAIJMCQQA2AgAg2QEgQSgCACgCCDYCACBTIEEoAgAoAgw2AgAglAIg2QEoAgAgUygCAGo2AgAglQIgnAEoAgAgUygCAGo2AgAg7AIgnQEoAgAgJygCAE8Ef0EABSAnKAIAIJ0BKAIAawsiBzYCACCWAiBBKAIAKAIQNgIAINoBIJECKAIAICcoAgAgnQEoAgBxQQN0ajYCACDbASCRAigCACAnKAIAIJ0BKAIAcUEDdGpBBGo2AgAglwIgJygCAEEJajYCACAvQQA2AgAg7QJBASCaASgCACgCDHQ2AgAgaiC4AygCAEEBazYCACC8AyCQAigCAEEDajYCACBrIJACKAIANgIAAkACQAJAA0AgaygCACC8AygCAE8NAiC3AygCACEHIJ4BIGsoAgBBA0YEfyAHKAIAQQFrBSAHIGsoAgBBAnRqKAIACyIHNgIAIO4CICcoAgAgngEoAgBrNgIAIFRBADYCAAJAIJ4BKAIAQQFrICcoAgAgUygCAGtJBEAgEygCACA5KAIAEPECIBMoAgAgngEoAgBrIDkoAgAQ8QJHDQEgVCATKAIAIDkoAgBqIBMoAgAgOSgCAGogngEoAgBrIEIoAgAQvAIgOSgCAGo2AgAFIO8CINkBKAIAIO4CKAIAajYCACCPAigCAEUNASCeASgCAEEBayAnKAIAIJYCKAIAa0kgUygCAEEBayDuAigCAGtBA09xRQ0BIBMoAgAgOSgCABDxAiDvAigCACA5KAIAEPECRw0BIFQgEygCACA5KAIAaiDvAigCACA5KAIAaiBCKAIAIJQCKAIAIJUCKAIAEL0CIDkoAgBqNgIACwsgVCgCACBqKAIASwRAIGogVCgCADYCACBpKAIAIC8oAgBBA3RqIGsoAgAgkAIoAgBrNgIAIGkoAgAgLygCAEEDdGogVCgCADYCBCAvIC8oAgBBAWo2AgAgVCgCACDpAigCAEsgEygCACBUKAIAaiBCKAIARnINAgsgayBrKAIAQQFqNgIADAALAAsgjgIgLygCADYCAAwBCwJAIJsBKAIAQQNGBEAgaigCACCbASgCAE8NASBsIEEoAgAgEygCABDyAjYCACBsKAIAIJYCKAIASyAnKAIAIGwoAgBrQYCAEElxRQ0BAkACQCCPAigCAEUNACBsKAIAIFMoAgBPDQAgvgMg2QEoAgAgbCgCAGo2AgAgbSATKAIAIL4DKAIAIEIoAgAglAIoAgAglQIoAgAQvQI2AgAMAQsgvQMgnAEoAgAgbCgCAGo2AgAgbSATKAIAIL0DKAIAIEIoAgAQvAI2AgALIG0oAgAgmwEoAgBJDQEgaiBtKAIANgIAIGkoAgAgJygCACBsKAIAa0ECajYCACBpKAIAIG0oAgA2AgQgL0EBNgIAIG0oAgAg6QIoAgBLIBMoAgAgbSgCAGogQigCAEZyRQ0BIEEoAgAgJygCAEEBajYCGCCOAkEBNgIADAILCyDqAigCACDrAigCAEECdGogJygCADYCAAJAAkACQANAAkAg7QIg7QIoAgAiB0F/ajYCACAHRQ0AIBwoAgAglgIoAgBNDQAg3AEgkQIoAgAgHCgCACCdASgCAHFBA3RqNgIAIJICKAIAIQcgkwIoAgAhCCACIJICKAIAIJMCKAIASQR/IAcFIAgLNgIAAkACQCCPAigCAEUNACAcKAIAIAIoAgBqIFMoAgBPDQAgnwEg2QEoAgAgHCgCAGo2AgAgEygCACACKAIAaiCfASgCACACKAIAaiBCKAIAIJQCKAIAIJUCKAIAEL0CIQcgAiACKAIAIAdqNgIAIBwoAgAgAigCAGogUygCAEkNASCfASCcASgCACAcKAIAajYCAAwBCyCfASCcASgCACAcKAIAajYCACATKAIAIAIoAgBqIJ8BKAIAIAIoAgBqIEIoAgAQvAIhByACIAIoAgAgB2o2AgALIAIoAgAgaigCAEsEQCACKAIAIJcCKAIAIBwoAgBrSwRAIJcCIBwoAgAgAigCAGo2AgALIGogAigCADYCACBpKAIAIC8oAgBBA3RqICcoAgAgHCgCAGtBAmo2AgAgaSgCACAvKAIAQQN0aiACKAIANgIEIC8gLygCAEEBajYCACACKAIAQYAgSw0BIBMoAgAgAigCAGogQigCAEYNAQsgHCgCACEHIJ8BKAIAIAIoAgBqLQAAIBMoAgAgAigCAGotAABIBEAg2gEoAgAgBzYCACCSAiACKAIANgIAIBwoAgAg7AIoAgBNDQMg2gEg3AEoAgBBBGo2AgAgHCDcASgCACgCBDYCAAUg2wEoAgAgBzYCACCTAiACKAIANgIAIBwoAgAg7AIoAgBNDQQg2wEg3AEoAgA2AgAgHCDcASgCACgCADYCAAsMAQsLDAILINoBILsDNgIADAELINsBILsDNgIACyDbASgCAEEANgIAINoBKAIAQQA2AgAgQSgCACCXAigCAEEIazYCGCCOAiAvKAIANgIACyCyASCOAigCADYCAAwDCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEMgWygCADYCACCgASAHNgIAIBQgCDYCACBEIAk2AgAgmQIgCjYCACC/AyAMNgIAIJoCIBA2AgAgbiARNgIAIMADIBI2AgAgoQFBBTYCACDwAiCgASgCACgCFEH/H0kEfyCgASgCACgCFAVB/x8LIgc2AgAgogEgQygCACgCBDYCACAoIBQoAgAgogEoAgBrNgIAIMEDIKABKAIAKAIINgIAIDogoQEoAgBBA0YEf0EDBUEECzYCACDxAiBDKAIAKAIkNgIAIPICIBQoAgAgwQMoAgAgoQEoAgAQuwI2AgAgHSDxAigCACDyAigCAEECdGooAgA2AgAgmwIgQygCACgCLDYCACDCAyCgASgCACgCBEEBazYCACCjAUEBIMIDKAIAdEEBazYCACCcAkEANgIAIJ0CQQA2AgAg3QEgQygCACgCCDYCACBVIEMoAgAoAgw2AgAgngIg3QEoAgAgVSgCAGo2AgAgnwIgogEoAgAgVSgCAGo2AgAg8wIgowEoAgAgKCgCAE8Ef0EABSAoKAIAIKMBKAIAawsiBzYCACCgAiBDKAIAKAIQNgIAIN4BIJsCKAIAICgoAgAgowEoAgBxQQN0ajYCACDfASCbAigCACAoKAIAIKMBKAIAcUEDdGpBBGo2AgAgoQIgKCgCAEEJajYCACAwQQA2AgAg9AJBASCgASgCACgCDHQ2AgAgbyDAAygCAEEBazYCACDEAyCaAigCAEEDajYCACBwIJoCKAIANgIAAkACQAJAA0AgcCgCACDEAygCAE8NAiC/AygCACEHIKQBIHAoAgBBA0YEfyAHKAIAQQFrBSAHIHAoAgBBAnRqKAIACyIHNgIAIPUCICgoAgAgpAEoAgBrNgIAIFZBADYCAAJAIKQBKAIAQQFrICgoAgAgVSgCAGtJBEAgFCgCACA6KAIAEPECIBQoAgAgpAEoAgBrIDooAgAQ8QJHDQEgViAUKAIAIDooAgBqIBQoAgAgOigCAGogpAEoAgBrIEQoAgAQvAIgOigCAGo2AgAFIPYCIN0BKAIAIPUCKAIAajYCACCZAigCAEUNASCkASgCAEEBayAoKAIAIKACKAIAa0kgVSgCAEEBayD1AigCAGtBA09xRQ0BIBQoAgAgOigCABDxAiD2AigCACA6KAIAEPECRw0BIFYgFCgCACA6KAIAaiD2AigCACA6KAIAaiBEKAIAIJ4CKAIAIJ8CKAIAEL0CIDooAgBqNgIACwsgVigCACBvKAIASwRAIG8gVigCADYCACBuKAIAIDAoAgBBA3RqIHAoAgAgmgIoAgBrNgIAIG4oAgAgMCgCAEEDdGogVigCADYCBCAwIDAoAgBBAWo2AgAgVigCACDwAigCAEsgFCgCACBWKAIAaiBEKAIARnINAgsgcCBwKAIAQQFqNgIADAALAAsgmAIgMCgCADYCAAwBCwJAIKEBKAIAQQNGBEAgbygCACChASgCAE8NASBxIEMoAgAgFCgCABDyAjYCACBxKAIAIKACKAIASyAoKAIAIHEoAgBrQYCAEElxRQ0BAkACQCCZAigCAEUNACBxKAIAIFUoAgBPDQAgxgMg3QEoAgAgcSgCAGo2AgAgciAUKAIAIMYDKAIAIEQoAgAgngIoAgAgnwIoAgAQvQI2AgAMAQsgxQMgogEoAgAgcSgCAGo2AgAgciAUKAIAIMUDKAIAIEQoAgAQvAI2AgALIHIoAgAgoQEoAgBJDQEgbyByKAIANgIAIG4oAgAgKCgCACBxKAIAa0ECajYCACBuKAIAIHIoAgA2AgQgMEEBNgIAIHIoAgAg8AIoAgBLIBQoAgAgcigCAGogRCgCAEZyRQ0BIEMoAgAgKCgCAEEBajYCGCCYAkEBNgIADAILCyDxAigCACDyAigCAEECdGogKCgCADYCAAJAAkACQANAAkAg9AIg9AIoAgAiB0F/ajYCACAHRQ0AIB0oAgAgoAIoAgBNDQAg4AEgmwIoAgAgHSgCACCjASgCAHFBA3RqNgIAIJwCKAIAIQcgnQIoAgAhCCADIJwCKAIAIJ0CKAIASQR/IAcFIAgLNgIAAkACQCCZAigCAEUNACAdKAIAIAMoAgBqIFUoAgBPDQAgpQEg3QEoAgAgHSgCAGo2AgAgFCgCACADKAIAaiClASgCACADKAIAaiBEKAIAIJ4CKAIAIJ8CKAIAEL0CIQcgAyADKAIAIAdqNgIAIB0oAgAgAygCAGogVSgCAEkNASClASCiASgCACAdKAIAajYCAAwBCyClASCiASgCACAdKAIAajYCACAUKAIAIAMoAgBqIKUBKAIAIAMoAgBqIEQoAgAQvAIhByADIAMoAgAgB2o2AgALIAMoAgAgbygCAEsEQCADKAIAIKECKAIAIB0oAgBrSwRAIKECIB0oAgAgAygCAGo2AgALIG8gAygCADYCACBuKAIAIDAoAgBBA3RqICgoAgAgHSgCAGtBAmo2AgAgbigCACAwKAIAQQN0aiADKAIANgIEIDAgMCgCAEEBajYCACADKAIAQYAgSw0BIBQoAgAgAygCAGogRCgCAEYNAQsgHSgCACEHIKUBKAIAIAMoAgBqLQAAIBQoAgAgAygCAGotAABIBEAg3gEoAgAgBzYCACCcAiADKAIANgIAIB0oAgAg8wIoAgBNDQMg3gEg4AEoAgBBBGo2AgAgHSDgASgCACgCBDYCAAUg3wEoAgAgBzYCACCdAiADKAIANgIAIB0oAgAg8wIoAgBNDQQg3wEg4AEoAgA2AgAgHSDgASgCACgCADYCAAsMAQsLDAILIN4BIMMDNgIADAELIN8BIMMDNgIACyDfASgCAEEANgIAIN4BKAIAQQA2AgAgQygCACChAigCAEEIazYCGCCYAiAwKAIANgIACyCyASCYAigCADYCAAwCCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEUgWygCADYCACCmASAHNgIAIBUgCDYCACBGIAk2AgAgowIgCjYCACDHAyAMNgIAIKQCIBA2AgAgcyARNgIAIMgDIBI2AgAgpwFBBDYCACD3AiCmASgCACgCFEH/H0kEfyCmASgCACgCFAVB/x8LIgc2AgAgqAEgRSgCACgCBDYCACApIBUoAgAgqAEoAgBrNgIAIMkDIKYBKAIAKAIINgIAIDsgpwEoAgBBA0YEf0EDBUEECzYCACD4AiBFKAIAKAIkNgIAIPkCIBUoAgAgyQMoAgAgpwEoAgAQuwI2AgAgHiD4AigCACD5AigCAEECdGooAgA2AgAgpQIgRSgCACgCLDYCACDKAyCmASgCACgCBEEBazYCACCpAUEBIMoDKAIAdEEBazYCACCmAkEANgIAIKcCQQA2AgAg4QEgRSgCACgCCDYCACBXIEUoAgAoAgw2AgAgqAIg4QEoAgAgVygCAGo2AgAgqQIgqAEoAgAgVygCAGo2AgAg+gIgqQEoAgAgKSgCAE8Ef0EABSApKAIAIKkBKAIAawsiBzYCACCqAiBFKAIAKAIQNgIAIOIBIKUCKAIAICkoAgAgqQEoAgBxQQN0ajYCACDjASClAigCACApKAIAIKkBKAIAcUEDdGpBBGo2AgAgqwIgKSgCAEEJajYCACAxQQA2AgAg+wJBASCmASgCACgCDHQ2AgAgdCDIAygCAEEBazYCACDMAyCkAigCAEEDajYCACB1IKQCKAIANgIAAkACQAJAA0AgdSgCACDMAygCAE8NAiDHAygCACEHIKoBIHUoAgBBA0YEfyAHKAIAQQFrBSAHIHUoAgBBAnRqKAIACyIHNgIAIPwCICkoAgAgqgEoAgBrNgIAIFhBADYCAAJAIKoBKAIAQQFrICkoAgAgVygCAGtJBEAgFSgCACA7KAIAEPECIBUoAgAgqgEoAgBrIDsoAgAQ8QJHDQEgWCAVKAIAIDsoAgBqIBUoAgAgOygCAGogqgEoAgBrIEYoAgAQvAIgOygCAGo2AgAFIP0CIOEBKAIAIPwCKAIAajYCACCjAigCAEUNASCqASgCAEEBayApKAIAIKoCKAIAa0kgVygCAEEBayD8AigCAGtBA09xRQ0BIBUoAgAgOygCABDxAiD9AigCACA7KAIAEPECRw0BIFggFSgCACA7KAIAaiD9AigCACA7KAIAaiBGKAIAIKgCKAIAIKkCKAIAEL0CIDsoAgBqNgIACwsgWCgCACB0KAIASwRAIHQgWCgCADYCACBzKAIAIDEoAgBBA3RqIHUoAgAgpAIoAgBrNgIAIHMoAgAgMSgCAEEDdGogWCgCADYCBCAxIDEoAgBBAWo2AgAgWCgCACD3AigCAEsgFSgCACBYKAIAaiBGKAIARnINAgsgdSB1KAIAQQFqNgIADAALAAsgogIgMSgCADYCAAwBCwJAIKcBKAIAQQNGBEAgdCgCACCnASgCAE8NASB2IEUoAgAgFSgCABDyAjYCACB2KAIAIKoCKAIASyApKAIAIHYoAgBrQYCAEElxRQ0BAkACQCCjAigCAEUNACB2KAIAIFcoAgBPDQAgzgMg4QEoAgAgdigCAGo2AgAgdyAVKAIAIM4DKAIAIEYoAgAgqAIoAgAgqQIoAgAQvQI2AgAMAQsgzQMgqAEoAgAgdigCAGo2AgAgdyAVKAIAIM0DKAIAIEYoAgAQvAI2AgALIHcoAgAgpwEoAgBJDQEgdCB3KAIANgIAIHMoAgAgKSgCACB2KAIAa0ECajYCACBzKAIAIHcoAgA2AgQgMUEBNgIAIHcoAgAg9wIoAgBLIBUoAgAgdygCAGogRigCAEZyRQ0BIEUoAgAgKSgCAEEBajYCGCCiAkEBNgIADAILCyD4AigCACD5AigCAEECdGogKSgCADYCAAJAAkACQANAAkAg+wIg+wIoAgAiB0F/ajYCACAHRQ0AIB4oAgAgqgIoAgBNDQAg5AEgpQIoAgAgHigCACCpASgCAHFBA3RqNgIAIKYCKAIAIQcgpwIoAgAhCCAEIKYCKAIAIKcCKAIASQR/IAcFIAgLNgIAAkACQCCjAigCAEUNACAeKAIAIAQoAgBqIFcoAgBPDQAgqwEg4QEoAgAgHigCAGo2AgAgFSgCACAEKAIAaiCrASgCACAEKAIAaiBGKAIAIKgCKAIAIKkCKAIAEL0CIQcgBCAEKAIAIAdqNgIAIB4oAgAgBCgCAGogVygCAEkNASCrASCoASgCACAeKAIAajYCAAwBCyCrASCoASgCACAeKAIAajYCACAVKAIAIAQoAgBqIKsBKAIAIAQoAgBqIEYoAgAQvAIhByAEIAQoAgAgB2o2AgALIAQoAgAgdCgCAEsEQCAEKAIAIKsCKAIAIB4oAgBrSwRAIKsCIB4oAgAgBCgCAGo2AgALIHQgBCgCADYCACBzKAIAIDEoAgBBA3RqICkoAgAgHigCAGtBAmo2AgAgcygCACAxKAIAQQN0aiAEKAIANgIEIDEgMSgCAEEBajYCACAEKAIAQYAgSw0BIBUoAgAgBCgCAGogRigCAEYNAQsgHigCACEHIKsBKAIAIAQoAgBqLQAAIBUoAgAgBCgCAGotAABIBEAg4gEoAgAgBzYCACCmAiAEKAIANgIAIB4oAgAg+gIoAgBNDQMg4gEg5AEoAgBBBGo2AgAgHiDkASgCACgCBDYCAAUg4wEoAgAgBzYCACCnAiAEKAIANgIAIB4oAgAg+gIoAgBNDQQg4wEg5AEoAgA2AgAgHiDkASgCACgCADYCAAsMAQsLDAILIOIBIMsDNgIADAELIOMBIMsDNgIACyDjASgCAEEANgIAIOIBKAIAQQA2AgAgRSgCACCrAigCAEEIazYCGCCiAiAxKAIANgIACyCyASCiAigCADYCAAsLIIkCILIBKAIANgIAIIkCKAIABEAg4gIgNygCACCJAigCAEEDdGpBfGooAgA2AgAg4gIoAgAgjQQoAgBLIAEoAgAg4gIoAgBqQYAgT3INBCBlQQA2AgADQCBlKAIAIIkCKAIATw0DIOMCIDcoAgAgZSgCAEEDdGooAgA2AgAgrgMgACgCACABKAIAQRxsakEQaiDjAigCACCtAygCABD0AiCJBCA3KAIAIGUoAgBBA3RqKAIENgIAIIoEIGUoAgBBAEsEfyA3KAIAIGUoAgBBA3RqQXxqKAIAQQFqBSCLAigCAAsiBzYCACCWASCJBCgCADYCAANAAkAglgEoAgAgigQoAgBJDQAgUSABKAIAIJYBKAIAajYCACCIBCgCACEHIJYBKAIAIQggOCgCACEJIIwCKAIAIQogtAMg4wIoAgA2AgAgtQMgCDYCACCXASAJNgIAILYDIAo2AgAgmQEgtAMoAgBBAWoQ1AE2AgAg5wIgtQMoAgBBA2s2AgAglwEoAgAoAjgEQCDmAiDnAigCAEEBahDUAUEQaiCZASgCAGo2AgAFIJgBIJkBKAIAIJcBKAIAKAI0aiCXASgCACgCDCCZASgCAEECdGooAgBBAWoQ1AFrNgIAILYDKAIAQQJIIJkBKAIAQRRPcQRAIJgBIJgBKAIAIJkBKAIAQRNrQQF0ajYCAAsg6AIg5wIoAgAQ3AI2AgAg6AIoAgBBAnRBwDVqKAIAIJcBKAIAKAIwaiCXASgCACgCCCDoAigCAEECdGooAgBBAWoQ1AFrIQggmAEgmAEoAgAgCGo2AgAg5gIgmAEoAgA2AgALIK8DIAcg5gIoAgBqNgIAAkACQCBRKAIAICUoAgBLDQAgrwMoAgAgACgCACBRKAIAQRxsaigCAEgNACCMAigCAEUNAgwBCwNAICUoAgAgUSgCAEkEQCAAKAIAICUoAgBBAWpBHGxqQYCAgIAENgIAICUgJSgCAEEBajYCAAwBCwsgACgCACBRKAIAQRxsaiCWASgCADYCCCAAKAIAIFEoAgBBHGxqIOMCKAIANgIEIAAoAgAgUSgCAEEcbGog1QEoAgA2AgwgACgCACBRKAIAQRxsaiCvAygCADYCACAAKAIAIFEoAgBBHGxqQRBqIgcgrgMpAgA3AgAgByCuAygCCDYCCAsglgEglgEoAgBBf2o2AgAMAQsLIGUgZSgCAEEBajYCAAwACwALCwsgASABKAIAQQFqNgIADAALAAsghQIg4gIoAgA2AgAg3wIgNygCACCJAigCAEEBa0EDdGooAgA2AgAgJSABKAIAQQFqNgIADAILIIUCIAAoAgAgJSgCAEEcbGooAgg2AgAg3wIgACgCACAlKAIAQRxsaigCBDYCACABICUoAgAghQIoAgBrNgIACwsgsAMghQIoAgA2AgAgsQMg3wIoAgA2AgAgZiABKAIANgIAA0Ag5AIgACgCACBmKAIAQRxsaigCCDYCACCLBCAAKAIAIGYoAgBBHGxqKAIENgIAIAAoAgAgZigCAEEcbGogsAMoAgA2AgggACgCACBmKAIAQRxsaiCxAygCADYCBCCwAyDkAigCADYCACCxAyCLBCgCADYCACDkAigCACBmKAIATQRAIGYgZigCACDkAigCAGs2AgAMAQsLIGdBADYCAANAIGcoAgAgJSgCAEkEQCDlAiAkKAIAIFIoAgBrNgIAINYBIAAoAgAgZygCAEEcbGooAgg2AgAg1wEgACgCACBnKAIAQRxsaigCBDYCACDWASgCAEEBRgRAICQgJCgCAEEBajYCACBnIGcoAgBBAWo2AgAMAgsgZyBnKAIAINYBKAIAajYCACAkICQoAgAg1gEoAgBqNgIAINcBKAIAQQNPBEAgJigCACAmKAIAKAIENgIIICYoAgAgJigCACgCADYCBCAmKAIAINcBKAIAQQJrNgIABSCKAiDXASgCACDlAigCAEVqNgIAIIoCKAIABEAgJigCACEHIIwEIIoCKAIAQQNGBH8gBygCAEEBawUgByCKAigCAEECdGooAgALIgc2AgAgigIoAgBBAk8EQCAmKAIAICYoAgAoAgQ2AggLICYoAgAgJigCACgCADYCBCAmKAIAIIwEKAIANgIACwsgOCgCACDlAigCACBSKAIAINcBKAIAINYBKAIAEPgCII4EKAIAIOUCKAIAIFIoAgAg1wEoAgAg1gEoAgBBA2sQ+QIgUiAkKAIANgIADAELCyA4KAIAEPoCDAELCyCNAigCACBSKAIAayEAIAYkBSAAC+sIAQR/IwUhBSMFQSBqJAUgBSIEQRBqIgMgADYCACAEQQxqIgYgATYCACAEQQhqIgEgAjYCACADKAIAQQA2AjggAygCACgCHARAIAMoAgBBADYCGCAEQQA2AgADQCADKAIAIQAgBCgCAEH/AU0EQCADKAIAKAIAIAQoAgBBAnRqIAAoAgAgBCgCAEECdGooAgBBBXZBAWo2AgAgAygCAEEYaiIAIAAoAgAgAygCACgCACAEKAIAQQJ0aigCAGo2AgAgBCAEKAIAQQFqNgIADAELCyAAQQA2AhwgBEEANgIAA0AgAygCACEAIAQoAgBBI00EQCADKAIAKAIEIAQoAgBBAnRqIAAoAgQgBCgCAEECdGooAgBBBXZBAWo2AgAgAygCAEEcaiIAIAAoAgAgAygCACgCBCAEKAIAQQJ0aigCAGo2AgAgBCAEKAIAQQFqNgIADAELCyAAQQA2AiAgBEEANgIAA0AgAygCACEAIAQoAgBBNE0EQCADKAIAKAIIIAQoAgBBAnRqIAAoAgggBCgCAEECdGooAgBBBHZBAWo2AgAgAygCAEEgaiIAIAAoAgAgAygCACgCCCAEKAIAQQJ0aigCAGo2AgAgBCAEKAIAQQFqNgIADAELCyAAQQA2AiQgBEEANgIAA0AgBCgCAEEfTQRAIAMoAgAoAgwgBCgCAEECdGogAygCACgCDCAEKAIAQQJ0aigCAEEEdkEBajYCACADKAIAQSRqIgAgACgCACADKAIAKAIMIAQoAgBBAnRqKAIAajYCACAEIAQoAgBBAWo2AgAMAQsLIAMoAgAQ+gIgBSQFDwsgASgCAEGACE0EQCADKAIAQQE2AjgLIAVBBGoiAEEANgIAA0AgACgCAEH/AU0EQCADKAIAKAIAIAAoAgBBAnRqQQA2AgAgACAAKAIAQQFqNgIADAELCyAAQQA2AgADQCADKAIAIQIgACgCACABKAIASQRAIAIoAgAgBigCACAAKAIAai0AAEECdGoiAiACKAIAQQFqNgIAIAAgACgCAEEBajYCAAwBCwsgAkEANgIYIABBADYCAANAIAAoAgBB/wFNBEAgAygCACgCACAAKAIAQQJ0aiADKAIAKAIAIAAoAgBBAnRqKAIAQQR2QQFqNgIAIAMoAgBBGGoiASABKAIAIAMoAgAoAgAgACgCAEECdGooAgBqNgIAIAAgACgCAEEBajYCAAwBCwsgAEEANgIAA0AgAygCACEBIAAoAgBBI00EQCABKAIEIAAoAgBBAnRqQQE2AgAgACAAKAIAQQFqNgIADAELCyABQSQ2AhwgAEEANgIAA0AgAygCACEBIAAoAgBBNE0EQCABKAIIIAAoAgBBAnRqQQE2AgAgACAAKAIAQQFqNgIADAELCyABQTU2AiAgAEEANgIAA0AgAygCACEBIAAoAgBBH00EQCABKAIMIAAoAgBBAnRqQQE2AgAgACAAKAIAQQFqNgIADAELCyABQSA2AiQgAygCABD6AiAFJAULfwEDfyMFIQIjBUEQaiQFIAJBCGohAyACQQRqIgQgADYCACACIAE2AgAgAigCAEEDRgRAQZDlAC0AAEEARyEBIAQoAgAQ0AEhACABBEAgAyAAQQh0NgIABSADIABBCHY2AgALBSADIAQoAgAQ0AE2AgALIAMoAgAhACACJAUgAAuFAgEGfyMFIQIjBUEgaiQFIAJBHGoiAyAANgIAIAJBGGoiBCABNgIAIAJBFGoiBSADKAIAKAIoNgIAIAJBEGoiBiADKAIAKAIgNgIAIAJBDGoiByADKAIAKAIENgIAIAJBCGoiASADKAIAKAIcNgIAIAMoAgAgBCgCACAHKAIAayIANgIcIAJBBGoiAyAANgIAIAIiACAEKAIAIAYoAgAQgQM2AgADQCABKAIAIAMoAgBJBEAgASgCACEEIAUoAgAgBygCACABKAIAaiAGKAIAEIEDQQJ0aiAENgIAIAEgASgCAEEBajYCAAwBCwsgBSgCACAAKAIAQQJ0aigCACEAIAIkBSAAC2cBAn8jBSEEIwVBEGokBSAEQQxqIgUgADYCACAEQQhqIgAgATYCACAEQQRqIgEgAjYCACAEIAM2AgAgBSgCACAAKAIAIAEoAgAgBCgCABD/AiABKAIAIAQoAgAQ/gJqIQAgBCQFIAAL3gIBBH8jBSEFIwVBIGokBSAFQQhqIQQgBUEcaiIGIAE2AgAgBUEYaiIBIAI2AgAgBUEUaiIHIAM2AgAgASgCAEEDTwRAIAQgBigCACgCBDYCCCAEIAYoAgAoAgA2AgQgBCABKAIAQQJrNgIAIAAgBCkCADcCACAAIAQoAgg2AgggBSQFDwsgBUEEaiICIAEoAgAgBygCAGo2AgAgAigCAEEATQRAIAQgBigCACIBKQIANwIAIAQgASgCCDYCCCAAIAQpAgA3AgAgACAEKAIINgIIIAUkBQ8LIAYoAgAhASACKAIAQQNGBH8gASgCAEEBawUgASACKAIAQQJ0aigCAAshAyAFIgEgAzYCACAGKAIAIQMgBCACKAIAQQJPBH8gAygCBAUgAygCCAsiAjYCCCAEIAYoAgAoAgA2AgQgBCABKAIANgIAIAAgBCkCADcCACAAIAQoAgg2AgggBSQFC2UBAn8jBSEDIwVBEGokBSADQQxqIgQgADYCACADQQhqIgAgATYCACADQQRqIgEgAjYCACADIAQoAgAgACgCACABKAIAEP0CIAAoAgAgASgCABCAA2o2AgAgAygCACEAIAMkBSAAC3YBA38jBSEEIwVBIGokBSAEQRBqIgUgADYCACAEQQxqIgYgATYCACAEQQhqIgAgAjYCACAEQQRqIgEgAzYCACAEIAUoAgAgBigCACAAKAIAIAEoAgAQ/wIgACgCACABKAIAEIADajYCACAEKAIAIQAgBCQFIAALVgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIAAoAgAgAygCABD9AiAAKAIAIAMoAgAQ/gJqIQAgAyQFIAALpgMBCH8jBSEFIwVBMGokBSAFQQxqIQggBUEIaiEJIAVBBGohCiAFIQsgBUEkaiIGIAA2AgAgBUEgaiIHIAE2AgAgBUEcaiIMIAI2AgAgBUEYaiICIAM2AgAgBUEUaiIBIAQ2AgAgBUEQaiIDQQA2AgADQCADKAIAIAcoAgBJBEAgBigCACgCACAMKAIAIAMoAgBqLQAAQQJ0aiIAIAAoAgBBAmo2AgAgAyADKAIAQQFqNgIADAELCyAGKAIAQRhqIgAgACgCACAHKAIAQQF0ajYCACAIIAcoAgAQ2wI2AgAgBigCACgCBCAIKAIAQQJ0aiIAIAAoAgBBAWo2AgAgBigCAEEcaiIAIAAoAgBBAWo2AgAgCSACKAIAQQFqENQBNgIAIAYoAgAoAgwgCSgCAEECdGoiACAAKAIAQQFqNgIAIAYoAgBBJGoiACAAKAIAQQFqNgIAIAogASgCAEEDazYCACALIAooAgAQ3AI2AgAgBigCACgCCCALKAIAQQJ0aiIAIAAoAgBBAWo2AgAgBigCAEEgaiIAIAAoAgBBAWo2AgAgBSQFC9kCAQN/IwUhBiMFQSBqJAUgBkEQaiIFIAA2AgAgBkEMaiIHIAE2AgAgBkEIaiIBIAI2AgAgBkEEaiICIAM2AgAgBiIAIAQ2AgAgBSgCACgCDCABKAIAIAcoAgAQ+wIgBSgCAEEMaiIBIAEoAgAgBygCAGo2AgAgBygCAEH//wNLBEAgBSgCAEEBNgIcIAUoAgAgBSgCACgCBCAFKAIAKAIAa0EIbTYCIAsgBSgCACgCBCAHKAIAOwEEIAUoAgAoAgQgAigCAEEBajYCACAAKAIAQf//A00EQCAFKAIAKAIEIAAoAgA7AQYgBSgCAEEEaiIAKAIAQQhqIQEgACABNgIAIAYkBQ8LIAUoAgBBAjYCHCAFKAIAIAUoAgAoAgQgBSgCACgCAGtBCG02AiAgBSgCACgCBCAAKAIAOwEGIAUoAgBBBGoiACgCAEEIaiEBIAAgATYCACAGJAULggEBAX8jBSEBIwVBEGokBSABIAA2AgAgASgCACgCGEEBahDUASEAIAEoAgAgADYCKCABKAIAKAIcQQFqENQBIQAgASgCACAANgIsIAEoAgAoAiBBAWoQ1AEhACABKAIAIAA2AjAgASgCACgCJEEBahDUASEAIAEoAgAgADYCNCABJAULngEBA38jBSEDIwVBIGokBSADQRRqIgQgADYCACADQRBqIgAgATYCACADQQxqIgUgAjYCACADQQhqIgIgACgCADYCACADQQRqIgEgBCgCADYCACADIgAgASgCACAFKAIAajYCAANAIAEoAgAgAigCABD8AiABIAEoAgBBCGo2AgAgAiACKAIAQQhqNgIAIAEoAgAgACgCAEkNAAsgAyQFCzYBAn8jBSECIwVBEGokBSACQQRqIgMgADYCACACIAE2AgAgAygCACACKAIAKQAANwAAIAIkBQuJAgEFfyMFIQMjBUEgaiQFIANBFGohBCADQRBqIgcgADYCACADQQxqIgUgATYCACADQQhqIgYgAjYCACAFKAIAIQAgBigCACgCOARAIAQgAEEGbDYCACAEKAIAIQAgAyQFIAAPCyAARQRAIARBADYCACAEKAIAIQAgAyQFIAAPCyADIgAgBSgCACAGKAIAKAIobDYCACAAQQRqIgFBADYCAANAIAEoAgAgBSgCAEkEQCAGKAIAKAIAIAcoAgAgASgCAGotAABBAnRqKAIAQQFqENQBIQIgACAAKAIAIAJrNgIAIAEgASgCAEEBajYCAAwBCwsgBCAAKAIANgIAIAQoAgAhACADJAUgAAu/AQEGfyMFIQIjBUEgaiQFIAJBEGohAyACQQRqIQQgAiEGIAJBDGoiByAANgIAIAJBCGoiBSABNgIAIAcoAgAhACAFKAIAKAI4BH8gAyAAQQFqENQBNgIAIAMoAgAhACACJAUgAAUgBCAAENsCNgIAIAYgBCgCAEECdEGwNGooAgAgBSgCACgCLGogBSgCACgCBCAEKAIAQQJ0aigCAEEBahDUAWs2AgAgAyAGKAIANgIAIAMoAgAhACACJAUgAAsLhQIBBX8jBSEEIwVBIGokBSAEQQxqIQYgBEEIaiEHIARBBGohCCAEQRxqIgUgADYCACAEQRhqIgAgATYCACAEQRRqIgEgAjYCACAEQRBqIgIgAzYCACAAKAIAIAUoAgAoAgBGBEAgBiAFKAIAKAIINgIAIAggACgCACAFKAIAKAIEajYCACAHIAEoAgAgBSgCACgCBGs2AgAFIAZBADYCACAIIAAoAgA2AgAgByABKAIANgIACyAEIAYoAgAgCCgCACAHKAIAIAIoAgAQ/QJqNgIAIAUoAgAgACgCADYCACAFKAIAIAEoAgA2AgQgBSgCACAEKAIANgIIIAQoAgAhACAEJAUgAAvIAQEGfyMFIQIjBUEgaiQFIAJBEGohAyACQQRqIQQgAiEGIAJBDGoiByAANgIAIAJBCGoiBSABNgIAIAcoAgAhACAFKAIAKAI4BH8gAyAAQQFqENQBNgIAIAMoAgAhACACJAUgAAUgBCAAENsCNgIAIAYgBCgCAEECdEGwNGooAgAgBSgCACgCBCgCAEEBahDUAWogBSgCACgCBCAEKAIAQQJ0aigCAEEBahDUAWs2AgAgAyAGKAIANgIAIAMoAgAhACACJAUgAAsLOgECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAEM8BIAIoAgAQggMhACACJAUgAAtCAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgBBCHRBvc/W8QFsQSAgAigCAGt2IQAgAiQFIAAL+wEBBH8jBSEFIwVBIGokBSAFQRRqIQYgBUEQaiIIIAA2AgAgBUEMaiIHIAE2AgAgBUEIaiIBIAI2AgAgBUEEaiICIAM2AgAgBSIAIAQ2AgACQAJAAkAgBygCACgCEEEFaw4DAQAAAgsgBiAIKAIAIAcoAgAgASgCACACKAIAIAAoAgBBBhCFAzYCACAGKAIAIQAgBSQFIAAPCyAGIAgoAgAgBygCACABKAIAIAIoAgAgACgCAEEFEIUDNgIAIAYoAgAhACAFJAUgAA8LIAYgCCgCACAHKAIAIAEoAgAgAigCACAAKAIAQQQQhQM2AgAgBigCACEAIAUkBSAAC+8UAUx/IwUhBSMFQcACaiQFIAVBtAJqIQwgBUGwAmohFiAFQawCaiEJIAVBqAJqIRcgBUGkAmohNiAFQaACaiE3IAVBnAJqITggBUGYAmohOSAFQZQCaiEYIAVBkAJqITogBUGMAmohGSAFQYgCaiEsIAVBhAJqIRogBUGAAmohOyAFQfwBaiE8IAVB+AFqIT0gBUH0AWohGyAFQfABaiE+IAVB7AFqIRwgBUHoAWohDyAFQeQBaiEGIAVB4AFqIRAgBUHcAWohLSAFQdgBaiEuIAVB1AFqIQ0gBUHQAWohHSAFQcwBaiEKIAVByAFqIR4gBUHEAWohPyAFQcABaiFAIAVBvAFqIUEgBUG4AWohQiAFQbQBaiEfIAVBsAFqIUMgBUGsAWohICAFQagBaiEvIAVBpAFqISEgBUGgAWohRCAFQZwBaiFFIAVBmAFqIUYgBUGUAWohIiAFQZABaiFHIAVBjAFqISMgBUGIAWohESAFQYQBaiEHIAVBgAFqIRIgBUH8AGohMCAFQfgAaiExIAVB9ABqIQ4gBUHwAGohJCAFQewAaiELIAVB6ABqISUgBUHkAGohSCAFQeAAaiFJIAVB3ABqIUogBUHYAGohSyAFQdQAaiEmIAVB0ABqIUwgBUHMAGohJyAFQcgAaiEyIAVBxABqISggBUFAayFNIAVBPGohTiAFQThqIU8gBUE0aiEpIAVBMGohUCAFQSxqISogBUEoaiETIAVBJGohCCAFQSBqIRQgBUEcaiEzIAVBGGohNCAFQRRqIRUgBUEQaiI1IAA2AgAgBUEMaiIrIAE2AgAgBUEIaiIBIAI2AgAgBUEEaiICIAM2AgAgBSIAIAQ2AgACQAJAAkAgKygCACgCEEEFaw4DAQAAAgsgKygCACEDIAEoAgAhASACKAIAIQIgACgCACEAIAwgNSgCADYCACAWIAM2AgAgCSABNgIAIBcgAjYCACA2IAA2AgAgN0EGNgIAIDhBATYCACA5IAwoAgAoAiw2AgAgGEEBIBYoAgAoAgR0NgIAIDogGCgCAEEBazYCACAZIAwoAgAoAgQ2AgAgLCAMKAIAKAIINgIAIBogDCgCACgCDDYCACA7IBkoAgAgGigCAGo2AgAgPCAsKAIAIBooAgBqNgIAID0gDCgCACgCEDYCACAbIAkoAgAgGSgCAGs2AgAgPiAbKAIAIBgoAgBLBH8gGygCACAYKAIAawVBAAsiADYCACAcQQEgFigCACgCDHQ2AgAgD0EDNgIAIAYgDCgCACAWKAIAIAkoAgAgNygCABDJAjYCAANAAkAgBigCACA9KAIASyAcKAIAQQBLcUUNACAQQQA2AgACQAJAIDgoAgBFDQAgBigCACAaKAIATw0AIC4gLCgCACAGKAIAajYCACAuKAIAENABIAkoAgAQ0AFGBEAgECAJKAIAQQRqIC4oAgBBBGogFygCACA8KAIAIDsoAgAQvQJBBGo2AgALDAELIC0gGSgCACAGKAIAajYCACAtKAIAIA8oAgBqLQAAIAkoAgAgDygCAGotAABGBEAgECAJKAIAIC0oAgAgFygCABC8AjYCAAsLIBAoAgAgDygCAEsEQCAPIBAoAgA2AgAgNigCACAbKAIAIAYoAgBrQQJqNgIAIAkoAgAgECgCAGogFygCAEYNAQsgBigCACA+KAIATQ0AIAYgOSgCACAGKAIAIDooAgBxQQJ0aigCADYCACAcIBwoAgBBf2o2AgAMAQsLIBUgDygCADYCACAVKAIAIQAgBSQFIAAPCyArKAIAIQMgASgCACEBIAIoAgAhAiAAKAIAIQAgDSA1KAIANgIAIB0gAzYCACAKIAE2AgAgHiACNgIAID8gADYCACBAQQU2AgAgQUEBNgIAIEIgDSgCACgCLDYCACAfQQEgHSgCACgCBHQ2AgAgQyAfKAIAQQFrNgIAICAgDSgCACgCBDYCACAvIA0oAgAoAgg2AgAgISANKAIAKAIMNgIAIEQgICgCACAhKAIAajYCACBFIC8oAgAgISgCAGo2AgAgRiANKAIAKAIQNgIAICIgCigCACAgKAIAazYCACBHICIoAgAgHygCAEsEfyAiKAIAIB8oAgBrBUEACyIANgIAICNBASAdKAIAKAIMdDYCACARQQM2AgAgByANKAIAIB0oAgAgCigCACBAKAIAEMkCNgIAA0ACQCAHKAIAIEYoAgBLICMoAgBBAEtxRQ0AIBJBADYCAAJAAkAgQSgCAEUNACAHKAIAICEoAgBPDQAgMSAvKAIAIAcoAgBqNgIAIDEoAgAQ0AEgCigCABDQAUYEQCASIAooAgBBBGogMSgCAEEEaiAeKAIAIEUoAgAgRCgCABC9AkEEajYCAAsMAQsgMCAgKAIAIAcoAgBqNgIAIDAoAgAgESgCAGotAAAgCigCACARKAIAai0AAEYEQCASIAooAgAgMCgCACAeKAIAELwCNgIACwsgEigCACARKAIASwRAIBEgEigCADYCACA/KAIAICIoAgAgBygCAGtBAmo2AgAgCigCACASKAIAaiAeKAIARg0BCyAHKAIAIEcoAgBNDQAgByBCKAIAIAcoAgAgQygCAHFBAnRqKAIANgIAICMgIygCAEF/ajYCAAwBCwsgFSARKAIANgIAIBUoAgAhACAFJAUgAA8LICsoAgAhAyABKAIAIQEgAigCACECIAAoAgAhACAOIDUoAgA2AgAgJCADNgIAIAsgATYCACAlIAI2AgAgSCAANgIAIElBBDYCACBKQQE2AgAgSyAOKAIAKAIsNgIAICZBASAkKAIAKAIEdDYCACBMICYoAgBBAWs2AgAgJyAOKAIAKAIENgIAIDIgDigCACgCCDYCACAoIA4oAgAoAgw2AgAgTSAnKAIAICgoAgBqNgIAIE4gMigCACAoKAIAajYCACBPIA4oAgAoAhA2AgAgKSALKAIAICcoAgBrNgIAIFAgKSgCACAmKAIASwR/ICkoAgAgJigCAGsFQQALIgA2AgAgKkEBICQoAgAoAgx0NgIAIBNBAzYCACAIIA4oAgAgJCgCACALKAIAIEkoAgAQyQI2AgADQAJAIAgoAgAgTygCAEsgKigCAEEAS3FFDQAgFEEANgIAAkACQCBKKAIARQ0AIAgoAgAgKCgCAE8NACA0IDIoAgAgCCgCAGo2AgAgNCgCABDQASALKAIAENABRgRAIBQgCygCAEEEaiA0KAIAQQRqICUoAgAgTigCACBNKAIAEL0CQQRqNgIACwwBCyAzICcoAgAgCCgCAGo2AgAgMygCACATKAIAai0AACALKAIAIBMoAgBqLQAARgRAIBQgCygCACAzKAIAICUoAgAQvAI2AgALCyAUKAIAIBMoAgBLBEAgEyAUKAIANgIAIEgoAgAgKSgCACAIKAIAa0ECajYCACALKAIAIBQoAgBqICUoAgBGDQELIAgoAgAgUCgCAE0NACAIIEsoAgAgCCgCACBMKAIAcUECdGooAgA2AgAgKiAqKAIAQX9qNgIADAELCyAVIBMoAgA2AgAgFSgCACEAIAUkBSAAC9sBAQR/IwUhBiMFQSBqJAUgBkEYaiEHIAZBFGoiCCAANgIAIAZBEGoiCSABNgIAIAZBDGoiASACNgIAIAZBCGoiAiADNgIAIAZBBGoiAyAENgIAIAYiACAFNgIAIAEoAgAgCCgCACgCBCAIKAIAKAIYakkEfyAHQQA2AgAgBygCACEAIAYkBSAABSAIKAIAIAkoAgAgASgCACACKAIAIAAoAgAQhgMgByAIKAIAIAkoAgAgASgCACACKAIAIAMoAgAgACgCAEEBEIcDNgIAIAcoAgAhACAGJAUgAAsLsAMBCX8jBSEFIwVB0ABqJAUgBUEMaiEIIAVBCGohCiAFQQRqIQkgBSELIAVBQGsiByAANgIAIAVBPGoiACABNgIAIAVBOGoiBiACNgIAIAUgAzYCNCAFQTBqIg0gBDYCACAFQSxqIgwgBygCACgCJDYCACAFQShqIgMgACgCACgCCDYCACAFQSRqIgIgBygCACgCLDYCACAFQSBqIgEgACgCACgCBEEBazYCACAFQRxqIgBBASABKAIAdEEBazYCACAFQRhqIgQgBygCACgCBDYCACAFQRRqIgEgBigCACAEKAIAazYCACAFQRBqIgYgBygCACgCGDYCAANAIAYoAgAgASgCAEkEQCAIIAQoAgAgBigCAGogAygCACANKAIAELsCNgIAIAogDCgCACAIKAIAQQJ0aigCADYCACAJIAIoAgAgBigCACAAKAIAcUEDdGo2AgAgCyAJKAIAQQRqNgIAIAwoAgAgCCgCAEECdGogBigCADYCACAJKAIAIAooAgA2AgAgCygCAEEBNgIAIAYgBigCAEEBajYCAAwBCwsgBygCACABKAIANgIYIAUkBQvkDgEdfyMFIQcjBUGwAWokBSAHQaABaiIJIAA2AgAgB0GcAWoiCyABNgIAIAdBmAFqIgwgAjYCACAHQZQBaiIQIAM2AgAgB0GQAWoiGCAENgIAIAdBjAFqIgAgBTYCACAHQYgBaiIeIAY2AgAgB0GEAWoiGSAJKAIAKAIkNgIAIAdBgAFqIgEgCygCACgCCDYCACAHQfwAaiIaIAwoAgAgASgCACAAKAIAELsCNgIAIAdB+ABqIgAgGSgCACAaKAIAQQJ0aigCADYCACAHQfQAaiIRIAkoAgAoAgQ2AgAgB0HwAGoiAyAMKAIAIBEoAgBrNgIAIAdB7ABqIhsgCSgCACgCEDYCACAHQegAaiIEIAkoAgAoAiw2AgAgB0HkAGoiASALKAIAKAIEQQFrNgIAIAdB4ABqIgJBASABKAIAdEEBazYCACAHQdQAaiEGIAdB0ABqIQEgB0HMAGohEiAHQcgAaiEFIAdBxABqIRMgB0HcAGoiFCACKAIAIAMoAgBPBH9BAAUgAygCACACKAIAawsiCDYCACAUKAIAIQggGygCACEKIAdB2ABqIhwgFCgCACAbKAIASwR/IAgFIAoLNgIAIAYgBCgCACAAKAIAIAIoAgBxQQN0ajYCACABIAQoAgAgACgCACACKAIAcUEDdGpBBGo2AgAgEkEBIAsoAgAoAgx0NgIAIAUgEigCADYCACATQQA2AgADQAJAIAAoAgAgHCgCAE0NACABKAIAKAIAQQFGIAUoAgBBAUtxRQ0AIAEoAgAgEygCADYCACATIAAoAgA2AgAgACAGKAIAKAIANgIAIAYgBCgCACAAKAIAIAIoAgBxQQN0ajYCACABIAQoAgAgACgCACACKAIAcUEDdGpBBGo2AgAgBSAFKAIAQX9qNgIADAELCyAAKAIAIBwoAgBLBEAgASgCACgCAEEBRgRAIAEoAgBBADYCACAGKAIAQQA2AgALCyAHQUBrIR8gB0E8aiEgIAdBOGohFSAHQTRqIRYgB0EwaiEdIAdBLGohCiAHQShqISEgB0EkaiEiIAdBIGohDSAHQRxqIQ4gB0EYaiEXIAdBFGohIyAHQRBqIQYgB0EMaiEPIAdBCGohASAHQQRqIQggACATKAIANgIAA0AgACgCAARAIB8gBCgCACAAKAIAIAIoAgBxQQN0akEEajYCACAgIB8oAgAoAgA2AgAgCSgCACALKAIAIAAoAgAgECgCACAFKAIAIBwoAgAgHigCABCIAyAAICAoAgA2AgAgBSAFKAIAQQFqNgIADAELCyAVQQA2AgAgFkEANgIAIB0gCSgCACgCCDYCACAKIAkoAgAoAgw2AgAgISAdKAIAIAooAgBqNgIAICIgESgCACAKKAIAajYCACANIAQoAgAgAygCACACKAIAcUEDdGo2AgAgDiAEKAIAIAMoAgAgAigCAHFBA3RqQQRqNgIAIBcgAygCAEEJajYCACAGQQA2AgAgACAZKAIAIBooAgBBAnRqKAIANgIAIBkoAgAgGigCAEECdGogAygCADYCAAJAAkACQANAAkAgEiASKAIAIgVBf2o2AgAgBUUNACAAKAIAIBsoAgBNDQAgDyAEKAIAIAAoAgAgAigCAHFBA3RqNgIAIBUoAgAhBSAWKAIAIQsgASAVKAIAIBYoAgBJBH8gBQUgCws2AgACQAJAIB4oAgBFDQAgACgCACABKAIAaiAKKAIATw0AIAggHSgCACAAKAIAajYCACAMKAIAIAEoAgBqIAgoAgAgASgCAGogECgCACAhKAIAICIoAgAQvQIhBSABIAEoAgAgBWo2AgAgACgCACABKAIAaiAKKAIATwRAIAggESgCACAAKAIAajYCAAsMAQsgCCARKAIAIAAoAgBqNgIAIAwoAgAgASgCAGogCCgCACABKAIAaiAQKAIAELwCIQUgASABKAIAIAVqNgIACyABKAIAIAYoAgBLBEAgASgCACAXKAIAIAAoAgBrSwRAIBcgACgCACABKAIAajYCAAsgASgCACAGKAIAa0ECdCADKAIAIAAoAgBrQQFqENQBIBgoAgAoAgBBAWoQ1AFrSgRAIAYgASgCADYCACAYKAIAIAMoAgBBAmogACgCAGs2AgALIAwoAgAgASgCAGogECgCAEYNAQsgACgCACEFIAgoAgAgASgCAGotAAAgDCgCACABKAIAai0AAEgEQCANKAIAIAU2AgAgFSABKAIANgIAIAAoAgAgFCgCAE0NAyANIA8oAgBBBGo2AgAgACAPKAIAKAIENgIABSAOKAIAIAU2AgAgFiABKAIANgIAIAAoAgAgFCgCAE0NBCAOIA8oAgA2AgAgACAPKAIAKAIANgIACwwBCwsMAgsgDSAjNgIADAELIA4gIzYCAAsgDigCAEEANgIAIA0oAgBBADYCACAJKAIAIBcoAgBBCGs2AhggBigCAEEDSQRAIAYoAgAhACAHJAUgAA8LIAcgAygCACAYKAIAKAIAQQJrazYCACAGKAIAIQAgByQFIAALjgkBFn8jBSEHIwVB8ABqJAUgB0EsaiETIAdBKGohFiAHQSRqIRcgB0EgaiENIAdBHGohCiAHQRhqIQwgB0EUaiEJIAdBEGohGCAHQQxqIRkgB0EIaiEPIAdBBGohCCAHIRogB0HsAGoiECAANgIAIAdB6ABqIhEgATYCACAHQeQAaiIOIAI2AgAgB0HgAGoiAiADNgIAIAdB3ABqIhsgBDYCACAHQdgAaiIcIAU2AgAgB0HUAGoiBSAGNgIAIAdB0ABqIgQgECgCACgCLDYCACAHQcwAaiIAIBEoAgAoAgRBAWs2AgAgB0HIAGoiA0EBIAAoAgB0QQFrNgIAIAdBxABqIhFBADYCACAHQUBrIgZBADYCACAHQTxqIhQgECgCACgCBDYCACAHQThqIhIgECgCACgCCDYCACAHQTRqIgsgECgCACgCDDYCACAUKAIAIA4oAgBqIQEgEigCACAOKAIAaiEAIAdBMGoiFSAOKAIAIAsoAgBPBH8gAQUgAAs2AgAgAigCACEBIBIoAgAgCygCAGohACATIA4oAgAgCygCAE8EfyABBSAACzYCACAWIBIoAgAgCygCAGo2AgAgFyAUKAIAIAsoAgBqNgIAIAogBCgCACAOKAIAIAMoAgBxQQN0ajYCACAMIAooAgBBBGo2AgAgCSAKKAIAKAIANgIAIBkgECgCACgCEDYCAAJAAkACQANAIBsgGygCACIAQX9qNgIAIABFDQMgCSgCACAZKAIATQ0DIA8gBCgCACAJKAIAIAMoAgBxQQN0ajYCACARKAIAIQEgBigCACEAIAggESgCACAGKAIASQR/IAEFIAALNgIAAkACQCAFKAIARQ0AIAkoAgAgCCgCAGogCygCAE8NACAOKAIAIAsoAgBJDQAgDSASKAIAIAkoAgBqNgIAIBUoAgAgCCgCAGogDSgCACAIKAIAaiATKAIAIBYoAgAgFygCABC9AiEAIAggCCgCACAAajYCACAJKAIAIAgoAgBqIAsoAgBPBEAgDSAUKAIAIAkoAgBqNgIACwwBCyAaAn8CQCAFKAIARQ0AIAkoAgAgCCgCAGogCygCAE8NACASKAIADAELIBQoAgALIgA2AgAgDSAaKAIAIAkoAgBqNgIAIBUoAgAgCCgCAGogDSgCACAIKAIAaiATKAIAELwCIQAgCCAIKAIAIABqNgIACyAVKAIAIAgoAgBqIBMoAgBGDQMgCSgCACEAIA0oAgAgCCgCAGotAAAgFSgCACAIKAIAai0AAEgEQCAKKAIAIAA2AgAgESAIKAIANgIAIAkoAgAgHCgCAE0NAiAKIA8oAgBBBGo2AgAgCSAPKAIAKAIENgIABSAMKAIAIAA2AgAgBiAIKAIANgIAIAkoAgAgHCgCAE0NAyAMIA8oAgA2AgAgCSAPKAIAKAIANgIACwwACwALIAogGDYCACAMKAIAQQA2AgAgCigCAEEANgIAIAckBQ8LIAwgGDYCACAMKAIAQQA2AgAgCigCAEEANgIAIAckBQ8LIAwoAgBBADYCACAKKAIAQQA2AgAgByQFC7AXATB/IwUhByMFQfABaiQFIAdB/ABqISMgB0H4AGohEiAHQfQAaiEqIAdB8ABqIRMgB0HsAGohJCAHQegAaiEUIAdB5ABqISsgB0HgAGohFSAHQdwAaiEPIAdB2ABqIRsgB0HUAGohLCAHQdAAaiElIAdBzABqIQogB0HIAGohLSAHQcQAaiEuIAdBQGshLyAHQTxqISYgB0E4aiEnIAdBNGohFiAHQTBqITAgB0EsaiEXIAdBKGohHyAHQSRqITEgB0EgaiEyIAdBHGohMyAHQRhqITQgB0EUaiEgIAdBEGohGCAHQQxqISggB0EIaiE1IAdBBGohKSAHITYgB0HgAWoiDCAANgIAIAdB3AFqIiEgATYCACAHQdgBaiIiIAI2AgAgB0HUAWoiAiADNgIAIAdB0AFqIgEgBDYCACAHQcwBaiIAIAU2AgAgB0HIAWoiBSAGNgIAIAdBxAFqIhkgDCgCACgCJDYCACAHQcABaiIdIAIoAgAoAgg2AgAgB0G8AWoiHiAMKAIAKAIsNgIAIAdBuAFqIgQgAigCACgCBDYCACAHQbQBaiINIAwoAgAoAgQ2AgAgB0GwAWoiGiAMKAIAKAIINgIAIAdBrAFqIgIgASgCADYCACAHQagBaiIIIAIoAgA2AgAgB0GkAWoiCyACKAIANgIAIAdBoAFqIhwgDCgCACgCEDYCACAHQZwBaiIDIBooAgAgHCgCAGo2AgAgB0GYAWoiCSAMKAIAKAIMNgIAIAdBlAFqIhAgDSgCACAJKAIAajYCACAHQZABaiIGIBooAgAgCSgCAGo2AgAgB0GMAWoiDiACKAIAIAAoAgBqNgIAIAdBiAFqIgIgDigCAEF4ajYCACAHQYQBaiIRICIoAgAoAgA2AgAgB0GAAWoiDCAiKAIAKAIENgIAA0AgCCgCACACKAIASQRAICMgCCgCACAEKAIAIAUoAgAQuwI2AgAgEiAeKAIAICMoAgBBAnRqKAIANgIAIBooAgAhASANKAIAIQAgKiASKAIAIAkoAgBJBH8gAQUgAAs2AgAgEyAqKAIAIBIoAgBqNgIAICQgCCgCACAdKAIAQQgQuwI2AgAgFCAZKAIAICQoAgBBAnRqKAIANgIAIBooAgAhASANKAIAIQAgKyAUKAIAIAkoAgBJBH8gAQUgAAs2AgAgFSArKAIAIBQoAgBqNgIAIA8gCCgCACANKAIAazYCACAbIA8oAgBBAWogESgCAGs2AgAgGigCACEBIA0oAgAhACAsIBsoAgAgCSgCAEkEfyABBSAACzYCACAlICwoAgAgGygCAGo2AgAgGSgCACAkKAIAQQJ0aiAPKAIAIgA2AgAgHigCACAjKAIAQQJ0aiAANgIAAkACQCAJKAIAQQFrIBsoAgBrQQNPIBsoAgAgHCgCAEtxRQ0AICUoAgAQ0AEgCCgCAEEBahDQAUcNACAGKAIAIQEgDigCACEAIC0gGygCACAJKAIASQR/IAEFIAALNgIAIAogCCgCAEEFaiAlKAIAQQRqIA4oAgAgLSgCACAQKAIAEL0CQQRqNgIAIAggCCgCAEEBajYCACAhKAIAIAgoAgAgCygCAGsgCygCAEEAIAooAgBBA2sQ+QIMAQsgFCgCACAcKAIASwRAIBUoAgAQ4wEgCCgCABDjAVEEQCAGKAIAIQEgDigCACEAIC4gFCgCACAJKAIASQR/IAEFIAALNgIAIAMoAgAhASAQKAIAIQAgLyAUKAIAIAkoAgBJBH8gAQUgAAs2AgAgCiAIKAIAQQhqIBUoAgBBCGogDigCACAuKAIAIBAoAgAQvQJBCGo2AgAgJiAPKAIAIBQoAgBrNgIAA0ACQCAIKAIAIAsoAgBLIBUoAgAgLygCAEtxRQ0AIAgoAgBBf2otAAAgFSgCAEF/ai0AAEcNACAIIAgoAgBBf2o2AgAgFSAVKAIAQX9qNgIAIAogCigCAEEBajYCAAwBCwsgDCARKAIANgIAIBEgJigCADYCACAhKAIAIAgoAgAgCygCAGsgCygCACAmKAIAQQJqIAooAgBBA2sQ+QIMAgsLIBIoAgAgHCgCAEsEQCATKAIAENABIAgoAgAQ0AFGBEAgJyAIKAIAQQFqIB0oAgBBCBC7AjYCACAWIBkoAgAgJygCAEECdGooAgA2AgAgGigCACEBIA0oAgAhACAwIBYoAgAgCSgCAEkEfyABBSAACzYCACAXIDAoAgAgFigCAGo2AgAgGSgCACAnKAIAQQJ0aiAPKAIAQQFqNgIAAkACQCAWKAIAIBwoAgBNDQAgFygCABDjASAIKAIAQQFqEOMBUg0AIAYoAgAhASAOKAIAIQAgMSAWKAIAIAkoAgBJBH8gAQUgAAs2AgAgAygCACEBIBAoAgAhACAyIBYoAgAgCSgCAEkEfyABBSAACzYCACAKIAgoAgBBCWogFygCAEEIaiAOKAIAIDEoAgAgECgCABC9AkEIajYCACAIIAgoAgBBAWo2AgAgHyAPKAIAQQFqIBYoAgBrNgIAA0AgCCgCACALKAIASyAXKAIAIDIoAgBLcUUNAiAIKAIAQX9qLQAAIBcoAgBBf2otAABHDQIgCCAIKAIAQX9qNgIAIBcgFygCAEF/ajYCACAKIAooAgBBAWo2AgAMAAsACyAGKAIAIQEgDigCACEAIDMgEigCACAJKAIASQR/IAEFIAALNgIAIAMoAgAhASAQKAIAIQAgNCASKAIAIAkoAgBJBH8gAQUgAAs2AgAgCiAIKAIAQQRqIBMoAgBBBGogDigCACAzKAIAIBAoAgAQvQJBBGo2AgAgHyAPKAIAIBIoAgBrNgIAA0AgCCgCACALKAIASyATKAIAIDQoAgBLcUUNASAIKAIAQX9qLQAAIBMoAgBBf2otAABHDQEgCCAIKAIAQX9qNgIAIBMgEygCAEF/ajYCACAKIAooAgBBAWo2AgAMAAsACyAMIBEoAgA2AgAgESAfKAIANgIAICEoAgAgCCgCACALKAIAayALKAIAIB8oAgBBAmogCigCAEEDaxD5AgwCCwsgCCAIKAIAIAgoAgAgCygCAGtBCHVBAWpqNgIADAILIAggCCgCACAKKAIAajYCACALIAgoAgA2AgACQCAIKAIAIAIoAgBNBEAgDygCAEECaiEAIB4oAgAgDSgCACAPKAIAakECaiAEKAIAIAUoAgAQuwJBAnRqIAA2AgAgDygCAEECaiEAIBkoAgAgDSgCACAPKAIAakECaiAdKAIAQQgQuwJBAnRqIAA2AgAgCCgCAEF+aiANKAIAayEAIB4oAgAgCCgCAEF+aiAEKAIAIAUoAgAQuwJBAnRqIAA2AgAgCCgCAEF+aiANKAIAayEAIBkoAgAgCCgCAEF+aiAdKAIAQQgQuwJBAnRqIAA2AgADQCAIKAIAIAIoAgBLDQIgICAIKAIAIA0oAgBrNgIAIBggICgCACAMKAIAazYCACAaKAIAIBgoAgBqIQEgDSgCACAYKAIAaiEAICggGCgCACAJKAIASQR/IAEFIAALNgIAIAkoAgBBAWsgGCgCAGtBA08gGCgCACAcKAIAS3FFDQIgKCgCABDQASAIKAIAENABRw0CIAYoAgAhASAOKAIAIQAgNSAYKAIAIAkoAgBJBH8gAQUgAAs2AgAgKSAIKAIAQQRqICgoAgBBBGogDigCACA1KAIAIBAoAgAQvQJBBGo2AgAgNiAMKAIANgIAIAwgESgCADYCACARIDYoAgA2AgAgISgCAEEAIAsoAgBBACApKAIAQQNrEPkCICAoAgAhACAeKAIAIAgoAgAgBCgCACAFKAIAELsCQQJ0aiAANgIAICAoAgAhACAZKAIAIAgoAgAgHSgCAEEIELsCQQJ0aiAANgIAIAggCCgCACApKAIAajYCACALIAgoAgA2AgAMAAsACwsMAQsLICIoAgAgESgCADYCACAiKAIAIAwoAgA2AgQgDigCACALKAIAayEAIAckBSAAC8UOASF/IwUhCCMFQbABaiQFIAhByABqIRsgCEHEAGohDyAIQUBrISIgCEE8aiEQIAhBOGohEyAIQTRqIRQgCEEwaiEjIAhBLGohHCAIQShqIREgCEEkaiEkIAhBIGohJSAIQRxqISYgCEEYaiEdIAhBFGohHiAIQRBqIRIgCEEMaiEfIAhBCGohJyAIQQRqISAgCCEoIAhBpAFqIgogADYCACAIQaABaiIhIAE2AgAgCEGcAWoiGCACNgIAIAhBmAFqIgEgAzYCACAIQZQBaiIAIAQ2AgAgCEGQAWoiGSAFNgIAIAhBjAFqIgMgBjYCACAIQYgBaiIaIAc2AgAgCEGEAWoiFiAKKAIAKAIkNgIAIAhBgAFqIg0gCigCACgCBDYCACAIQfwAaiIXIAooAgAoAgg2AgAgCEH4AGoiBCABKAIANgIAIAhB9ABqIgkgBCgCADYCACAIQfAAaiIMIAQoAgA2AgAgCEHsAGoiByAKKAIAKAIQNgIAIAhB6ABqIgIgFygCACAHKAIAajYCACAIQeQAaiILIAooAgAoAgw2AgAgCEHgAGoiBiANKAIAIAsoAgBqNgIAIAhB3ABqIgUgFygCACALKAIAajYCACAIQdgAaiIOIAQoAgAgACgCAGo2AgAgCEHUAGoiBCAOKAIAQXhqNgIAIAhB0ABqIhUgGCgCACgCADYCACAIQcwAaiIKIBgoAgAoAgQ2AgADQCAJKAIAIAQoAgBJBEAgGyAJKAIAIBkoAgAgGigCABC7AjYCACAPIBYoAgAgGygCAEECdGooAgA2AgAgFygCACEBIA0oAgAhACAiIA8oAgAgCygCAEkEfyABBSAACzYCACAQICIoAgAgDygCAGo2AgAgEyAJKAIAIA0oAgBrNgIAIBQgEygCAEEBaiAVKAIAazYCACAXKAIAIQEgDSgCACEAICMgFCgCACALKAIASQR/IAEFIAALNgIAIBwgIygCACAUKAIAajYCACAWKAIAIBsoAgBBAnRqIBMoAgA2AgACQAJAIAsoAgBBAWsgFCgCAGtBA08gFCgCACAHKAIAS3FFDQAgHCgCABDQASAJKAIAQQFqENABRw0AIAUoAgAhASAOKAIAIQAgJCAUKAIAIAsoAgBJBH8gAQUgAAs2AgAgESAJKAIAQQVqIBwoAgBBBGogDigCACAkKAIAIAYoAgAQvQJBBGo2AgAgCSAJKAIAQQFqNgIAICEoAgAgCSgCACAMKAIAayAMKAIAQQAgESgCAEEDaxD5AgwBCyAPKAIAIAcoAgBPBEAgECgCABDQASAJKAIAENABRgRAIAUoAgAhASAOKAIAIQAgJSAPKAIAIAsoAgBJBH8gAQUgAAs2AgAgAigCACEBIAYoAgAhACAmIA8oAgAgCygCAEkEfyABBSAACzYCACARIAkoAgBBBGogECgCAEEEaiAOKAIAICUoAgAgBigCABC9AkEEajYCAANAAkAgCSgCACAMKAIASyAQKAIAICYoAgBLcUUNACAJKAIAQX9qLQAAIBAoAgBBf2otAABHDQAgCSAJKAIAQX9qNgIAIBAgECgCAEF/ajYCACARIBEoAgBBAWo2AgAMAQsLIB0gEygCACAPKAIAazYCACAKIBUoAgA2AgAgFSAdKAIANgIAICEoAgAgCSgCACAMKAIAayAMKAIAIB0oAgBBAmogESgCAEEDaxD5AgwCCwsgCSAJKAIAIAkoAgAgDCgCAGtBCHUgAygCAGpqNgIADAILIAkgCSgCACARKAIAajYCACAMIAkoAgA2AgACQCAJKAIAIAQoAgBNBEAgEygCAEECaiEAIBYoAgAgDSgCACATKAIAakECaiAZKAIAIBooAgAQuwJBAnRqIAA2AgAgCSgCAEF+aiANKAIAayEAIBYoAgAgCSgCAEF+aiAZKAIAIBooAgAQuwJBAnRqIAA2AgADQCAJKAIAIAQoAgBLDQIgHiAJKAIAIA0oAgBrNgIAIBIgHigCACAKKAIAazYCACAXKAIAIBIoAgBqIQEgDSgCACASKAIAaiEAIB8gEigCACALKAIASQR/IAEFIAALNgIAIAsoAgBBAWsgEigCAGtBA08gEigCACAHKAIAS3FFDQIgHygCABDQASAJKAIAENABRw0CIAUoAgAhASAOKAIAIQAgJyASKAIAIAsoAgBJBH8gAQUgAAs2AgAgICAJKAIAQQRqIB8oAgBBBGogDigCACAnKAIAIAYoAgAQvQJBBGo2AgAgKCAKKAIANgIAIAogFSgCADYCACAVICgoAgA2AgAgISgCAEEAIAwoAgBBACAgKAIAQQNrEPkCIB4oAgAhACAWKAIAIAkoAgAgGSgCACAaKAIAELsCQQJ0aiAANgIAIAkgCSgCACAgKAIAajYCACAMIAkoAgA2AgAMAAsACwsMAQsLIBgoAgAgFSgCADYCACAYKAIAIAooAgA2AgQgDigCACAMKAIAayEAIAgkBSAAC/sBAQR/IwUhBSMFQSBqJAUgBUEUaiEGIAVBEGoiCCAANgIAIAVBDGoiByABNgIAIAVBCGoiASACNgIAIAVBBGoiAiADNgIAIAUiACAENgIAAkACQAJAIAcoAgAoAhBBBWsOAwEAAAILIAYgCCgCACAHKAIAIAEoAgAgAigCACAAKAIAQQYQjQM2AgAgBigCACEAIAUkBSAADwsgBiAIKAIAIAcoAgAgASgCACACKAIAIAAoAgBBBRCNAzYCACAGKAIAIQAgBSQFIAAPCyAGIAgoAgAgBygCACABKAIAIAIoAgAgACgCAEEEEI0DNgIAIAYoAgAhACAFJAUgAAvvFAFMfyMFIQUjBUHAAmokBSAFQbQCaiEMIAVBsAJqIRYgBUGsAmohCSAFQagCaiEXIAVBpAJqITYgBUGgAmohNyAFQZwCaiE4IAVBmAJqITkgBUGUAmohGCAFQZACaiE6IAVBjAJqIRkgBUGIAmohLCAFQYQCaiEaIAVBgAJqITsgBUH8AWohPCAFQfgBaiE9IAVB9AFqIRsgBUHwAWohPiAFQewBaiEcIAVB6AFqIQ8gBUHkAWohBiAFQeABaiEQIAVB3AFqIS0gBUHYAWohLiAFQdQBaiENIAVB0AFqIR0gBUHMAWohCiAFQcgBaiEeIAVBxAFqIT8gBUHAAWohQCAFQbwBaiFBIAVBuAFqIUIgBUG0AWohHyAFQbABaiFDIAVBrAFqISAgBUGoAWohLyAFQaQBaiEhIAVBoAFqIUQgBUGcAWohRSAFQZgBaiFGIAVBlAFqISIgBUGQAWohRyAFQYwBaiEjIAVBiAFqIREgBUGEAWohByAFQYABaiESIAVB/ABqITAgBUH4AGohMSAFQfQAaiEOIAVB8ABqISQgBUHsAGohCyAFQegAaiElIAVB5ABqIUggBUHgAGohSSAFQdwAaiFKIAVB2ABqIUsgBUHUAGohJiAFQdAAaiFMIAVBzABqIScgBUHIAGohMiAFQcQAaiEoIAVBQGshTSAFQTxqIU4gBUE4aiFPIAVBNGohKSAFQTBqIVAgBUEsaiEqIAVBKGohEyAFQSRqIQggBUEgaiEUIAVBHGohMyAFQRhqITQgBUEUaiEVIAVBEGoiNSAANgIAIAVBDGoiKyABNgIAIAVBCGoiASACNgIAIAVBBGoiAiADNgIAIAUiACAENgIAAkACQAJAICsoAgAoAhBBBWsOAwEAAAILICsoAgAhAyABKAIAIQEgAigCACECIAAoAgAhACAMIDUoAgA2AgAgFiADNgIAIAkgATYCACAXIAI2AgAgNiAANgIAIDdBBjYCACA4QQA2AgAgOSAMKAIAKAIsNgIAIBhBASAWKAIAKAIEdDYCACA6IBgoAgBBAWs2AgAgGSAMKAIAKAIENgIAICwgDCgCACgCCDYCACAaIAwoAgAoAgw2AgAgOyAZKAIAIBooAgBqNgIAIDwgLCgCACAaKAIAajYCACA9IAwoAgAoAhA2AgAgGyAJKAIAIBkoAgBrNgIAID4gGygCACAYKAIASwR/IBsoAgAgGCgCAGsFQQALIgA2AgAgHEEBIBYoAgAoAgx0NgIAIA9BAzYCACAGIAwoAgAgFigCACAJKAIAIDcoAgAQyQI2AgADQAJAIAYoAgAgPSgCAEsgHCgCAEEAS3FFDQAgEEEANgIAAkACQCA4KAIARQ0AIAYoAgAgGigCAE8NACAuICwoAgAgBigCAGo2AgAgLigCABDQASAJKAIAENABRgRAIBAgCSgCAEEEaiAuKAIAQQRqIBcoAgAgPCgCACA7KAIAEL0CQQRqNgIACwwBCyAtIBkoAgAgBigCAGo2AgAgLSgCACAPKAIAai0AACAJKAIAIA8oAgBqLQAARgRAIBAgCSgCACAtKAIAIBcoAgAQvAI2AgALCyAQKAIAIA8oAgBLBEAgDyAQKAIANgIAIDYoAgAgGygCACAGKAIAa0ECajYCACAJKAIAIBAoAgBqIBcoAgBGDQELIAYoAgAgPigCAE0NACAGIDkoAgAgBigCACA6KAIAcUECdGooAgA2AgAgHCAcKAIAQX9qNgIADAELCyAVIA8oAgA2AgAgFSgCACEAIAUkBSAADwsgKygCACEDIAEoAgAhASACKAIAIQIgACgCACEAIA0gNSgCADYCACAdIAM2AgAgCiABNgIAIB4gAjYCACA/IAA2AgAgQEEFNgIAIEFBADYCACBCIA0oAgAoAiw2AgAgH0EBIB0oAgAoAgR0NgIAIEMgHygCAEEBazYCACAgIA0oAgAoAgQ2AgAgLyANKAIAKAIINgIAICEgDSgCACgCDDYCACBEICAoAgAgISgCAGo2AgAgRSAvKAIAICEoAgBqNgIAIEYgDSgCACgCEDYCACAiIAooAgAgICgCAGs2AgAgRyAiKAIAIB8oAgBLBH8gIigCACAfKAIAawVBAAsiADYCACAjQQEgHSgCACgCDHQ2AgAgEUEDNgIAIAcgDSgCACAdKAIAIAooAgAgQCgCABDJAjYCAANAAkAgBygCACBGKAIASyAjKAIAQQBLcUUNACASQQA2AgACQAJAIEEoAgBFDQAgBygCACAhKAIATw0AIDEgLygCACAHKAIAajYCACAxKAIAENABIAooAgAQ0AFGBEAgEiAKKAIAQQRqIDEoAgBBBGogHigCACBFKAIAIEQoAgAQvQJBBGo2AgALDAELIDAgICgCACAHKAIAajYCACAwKAIAIBEoAgBqLQAAIAooAgAgESgCAGotAABGBEAgEiAKKAIAIDAoAgAgHigCABC8AjYCAAsLIBIoAgAgESgCAEsEQCARIBIoAgA2AgAgPygCACAiKAIAIAcoAgBrQQJqNgIAIAooAgAgEigCAGogHigCAEYNAQsgBygCACBHKAIATQ0AIAcgQigCACAHKAIAIEMoAgBxQQJ0aigCADYCACAjICMoAgBBf2o2AgAMAQsLIBUgESgCADYCACAVKAIAIQAgBSQFIAAPCyArKAIAIQMgASgCACEBIAIoAgAhAiAAKAIAIQAgDiA1KAIANgIAICQgAzYCACALIAE2AgAgJSACNgIAIEggADYCACBJQQQ2AgAgSkEANgIAIEsgDigCACgCLDYCACAmQQEgJCgCACgCBHQ2AgAgTCAmKAIAQQFrNgIAICcgDigCACgCBDYCACAyIA4oAgAoAgg2AgAgKCAOKAIAKAIMNgIAIE0gJygCACAoKAIAajYCACBOIDIoAgAgKCgCAGo2AgAgTyAOKAIAKAIQNgIAICkgCygCACAnKAIAazYCACBQICkoAgAgJigCAEsEfyApKAIAICYoAgBrBUEACyIANgIAICpBASAkKAIAKAIMdDYCACATQQM2AgAgCCAOKAIAICQoAgAgCygCACBJKAIAEMkCNgIAA0ACQCAIKAIAIE8oAgBLICooAgBBAEtxRQ0AIBRBADYCAAJAAkAgSigCAEUNACAIKAIAICgoAgBPDQAgNCAyKAIAIAgoAgBqNgIAIDQoAgAQ0AEgCygCABDQAUYEQCAUIAsoAgBBBGogNCgCAEEEaiAlKAIAIE4oAgAgTSgCABC9AkEEajYCAAsMAQsgMyAnKAIAIAgoAgBqNgIAIDMoAgAgEygCAGotAAAgCygCACATKAIAai0AAEYEQCAUIAsoAgAgMygCACAlKAIAELwCNgIACwsgFCgCACATKAIASwRAIBMgFCgCADYCACBIKAIAICkoAgAgCCgCAGtBAmo2AgAgCygCACAUKAIAaiAlKAIARg0BCyAIKAIAIFAoAgBNDQAgCCBLKAIAIAgoAgAgTCgCAHFBAnRqKAIANgIAICogKigCAEF/ajYCAAwBCwsgFSATKAIANgIAIBUoAgAhACAFJAUgAAvbAQEEfyMFIQYjBUEgaiQFIAZBGGohByAGQRRqIgggADYCACAGQRBqIgkgATYCACAGQQxqIgEgAjYCACAGQQhqIgIgAzYCACAGQQRqIgMgBDYCACAGIgAgBTYCACABKAIAIAgoAgAoAgQgCCgCACgCGGpJBH8gB0EANgIAIAcoAgAhACAGJAUgAAUgCCgCACAJKAIAIAEoAgAgAigCACAAKAIAEIYDIAcgCCgCACAJKAIAIAEoAgAgAigCACADKAIAIAAoAgBBABCHAzYCACAHKAIAIQAgBiQFIAALC24BAn8jBSEFIwVBIGokBSAFQRBqIgYgADYCACAFQQxqIgAgATYCACAFQQhqIgEgAjYCACAFQQRqIgIgAzYCACAFIAQ2AgAgBigCACAAKAIAIAEoAgAgAigCACAFKAIAQQFBABCPAyEAIAUkBSAAC+QGAgp/AX4jBSEHIwVBoAFqJAUgB0EoaiEJIAdBJGoiCCAANgIAIAdBIGoiCyABNgIAIAdBHGoiDCACNgIAIAdBGGoiDSADNgIAIAdBFGoiCiAENgIAIAdBEGoiDiAFNgIAIAdBDGoiDyAGNgIAIAdBCGoiBCAIKAIAQeADajYCACAHQQRqIgNBADYCACAIKAIAKAIARQRAIAlBRDYCACAJKAIAIQAgByQFIAAPCyAHQTBqIQEgByEAAkAgDigCAARAIAgoAgAoAgBBAUYEQCALKAIAIQUgDCgCACEGIAgoAgApA/ABQgF9IREgCCgCACgC3AEhECABIAgoAgBB9ABqIgIpAgA3AgAgASACKQIINwIIIAEgAikCEDcCECABIAIpAhg3AhggASACKQIgNwIgIAEgAikCKDcCKCABIAIpAjA3AjAgASACKQI4NwI4IAFBQGsgAkFAaykCADcCACABIAIpAkg3AkggASACKQJQNwJQIAEgAikCWDcCWCABIAIpAmA3AmAgAyAFIAYgASARIBAQkAM2AgAgAygCABDMAUEARyECIAMoAgAhASACRQRAIAwgDCgCACABazYCACALIAsoAgAgAygCAGo2AgAgCCgCAEECNgIADAMLIAkgATYCACAJKAIAIQAgByQFIAAPCwsLIAooAgBFBEAgCSADKAIANgIAIAkoAgAhACAHJAUgAA8LIAQoAgAgDSgCACAKKAIAELUCRQRAIAQoAgAgBCgCACgCDDYCGAsgCCgCACgCuAEEQCAIKAIAQZgDaiANKAIAIAooAgAQtQIaCyAIKAIAIQEgCygCACECIAwoAgAhBCANKAIAIQUgCigCACEGIAAgDigCAAR/IAEgAiAEIAUgBiAPKAIAEJEDBSABIAIgBCAFIAYQkgMLIgE2AgAgACgCABDMAQRAIAkgACgCADYCACAJKAIAIQAgByQFIAAPCyAIKAIAQfgBaiIBIAEpAwAgCigCAK18NwMAIAgoAgBBgAJqIgEgASkDACAAKAIAIAMoAgBqrXw3AwAgCCgCACgClAEEQCAIKAIAKQP4AUIBfCAIKAIAKQPwAVYEQCAJQbh/NgIAIAkoAgAhACAHJAUgAA8LCyAJIAAoAgAgAygCAGo2AgAgCSgCACEAIAckBSAAC9kGAQt/IwUhBSMFQUBrJAUgBUEYaiEHIAVBFGohBiAFQTBqIgggADYCACAFQSxqIg0gATYCACAFIgAgAzcDACAFQShqIgkgBDYCACAFQSRqIgQgCCgCADYCACAFQSBqIgEgCSgCAEEASyAJKAIAQYACT2ogCSgCAEGAgARPajYCACABKAIAIQEgBUEcaiILIAIoAigEf0EABSABCzYCACAHIAIoAiRBAEs2AgAgBkEBIAIoAgR0NgIAIAVBEGoiCiACKAIgBH8gBigCAK0gACkDAFoFQQALIgFBAXE2AgAgBUE5aiIOIAIoAgRBCmtBA3Q6AAAgBUE0aiEGIAVBDGoiDCACKAIgBH8gACkDAEKAAlogACkDAEKAggRaaiAAKQMAQv////8PWmoFQQALIgE2AgAgBUE4aiIPIAsoAgAgBygCAEECdGogCigCAEEFdGogDCgCAEEGdGo6AAAgBUEIaiIBQQA2AgAgDSgCAEESSQRAIAZBun82AgAgBigCACEAIAUkBSAADwsgAigCAEUEQCAIKAIAQajqvmkQigIgAUEENgIACyAPLAAAIQIgBCgCACEHIAEgASgCACIIQQFqNgIAIAcgCGogAjoAACAKKAIARQRAIA4sAAAhAiAEKAIAIQcgASABKAIAIghBAWo2AgAgByAIaiACOgAACwJAAkACQAJAIAsoAgBBAWsOAwECAAMLIAQoAgAgASgCAGogCSgCABCKAiABIAEoAgBBBGo2AgAMAgsgBCgCACABKAIAaiAJKAIAOgAAIAEgASgCAEEBajYCAAwBCyAEKAIAIAEoAgBqIAkoAgBB//8DcRCaAiABIAEoAgBBAmo2AgALAkACQAJAAkACQCAMKAIAQQFrDgMBAgADCyAEKAIAIAEoAgBqIAApAwAQiwIgASABKAIAQQhqNgIADAMLIAQoAgAgASgCAGogACkDAEKAAn2nQf//A3EQmgIgASABKAIAQQJqNgIADAILIAQoAgAgASgCAGogACkDAKcQigIgASABKAIAQQRqNgIADAELIAooAgAEQCAAKQMAp0H/AXEhACAEKAIAIQIgASABKAIAIgRBAWo2AgAgAiAEaiAAOgAACwsgBiABKAIANgIAIAYoAgAhACAFJAUgAAuQCAEPfyMFIQYjBUHwAGokBSAGQcgAaiIHIAA2AgAgBkHEAGoiCiABNgIAIAZBQGsiDSACNgIAIAZBPGoiASADNgIAIAZBOGoiACAENgIAIAZBNGoiECAFNgIAIAZBMGoiAiAHKAIAKALoATYCACAGQSxqIgsgACgCADYCACAGQShqIgggASgCADYCACAGQSRqIg8gCigCADYCACAGQSBqIgQgDygCADYCACAGQRxqIhFBASAHKAIAKAJ4dDYCACAHKAIAKAKYAUEARyAAKAIAQQBHcQRAIAcoAgBBiAJqIAEoAgAgACgCABDrARoLIAZB0ABqIQogBkHMAGohBSAGQRhqIQEgBkEUaiESIAZBEGohEyAGQQxqIQ4gBkEIaiEDIAZBBGohFCAGIQACQAJAAkACQANAIAsoAgBFDQQgASAHKAIAQeADajYCACASIBAoAgAgAigCACALKAIAT3E2AgAgDSgCAEEGSQ0BIAsoAgAgAigCAEkEQCACIAsoAgA2AgALIAgoAgAgAigCAGohDCAKIAEoAgAiCSkCADcCACAKIAkpAgg3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KAIAIgYpAgA3AgAgAiAGKQIINwIIIAIgBikCEDcCECAhIAcgCiACEKkDNgIAICJBADYCACAoIAApAwAgDSgCABCqAzYCACADICEoAgA2AgADQCADKAIAICEoAgAgLygCAEEDdGpJBEACQCADKAIAKAIEICgoAgBGBEAgAygCACgCACAmKAIASwRAIBQoAgAEQCAlKAIAIQYgDygCACEHICkgAygCACgCACAOKAIASQR/IAYFIAcLNgIAICMgKSgCACADKAIAKAIAajYCACAnKAIAIQYgECgCACEHICogAygCACgCACAOKAIASQR/IAYFIAcLNgIAIDIoAgAhBiAZKAIAIQcgKyADKAIAKAIAIA4oAgBJBH8gBgUgBws2AgAgCyABKAIAICMoAgAgECgCACAqKAIAIBkoAgAQvQI2AgAgCygCACAMKAIASQ0DIBYgASgCACARKAIAICMoAgAgKygCABCrAzYCACAcIAsoAgAgFigCAGo2AgAFICQgDygCACADKAIAKAIAajYCACALIAEoAgAgJCgCACAQKAIAELwCNgIAIAsoAgAgDCgCAEkNAyAWIAEoAgAgESgCACAkKAIAIBkoAgAQqwM2AgAgHCALKAIAIBYoAgBqNgIACyAcKAIAICIoAgBLBEAgIiAcKAIANgIAICAgCygCADYCACAaIBYoAgA2AgAgGyADKAIANgIACwsLCyADIAMoAgBBCGo2AgAMAQsLIBsoAgBFBEAgCCgCACEHIAApAwAhNSANKAIAIQogHygCACEXIAIgCSgCACIGKQIANwIAIAIgBikCCDcCCCACIAYpAhA3AhAgByA1IAogFyACEKwDIAEgASgCAEEBajYCAAwBCyASICAoAgAgGigCAGo2AgAgASABKAIAIBooAgBrNgIAICwgGygCACgCADYCACAtIB8oAgAgLCgCAGs2AgAgHSATKAIAKAIAIBMoAgAoAghBDGxqNgIAIBMoAgAoAgggEygCACgCDEYNASAdKAIAIAEoAgAgESgCAGs2AgQgHSgCACASKAIANgIIIB0oAgAgLSgCADYCACATKAIAQQhqIgYgBigCAEEBajYCACAIKAIAIQcgACkDACE1IA0oAgAhCiAEKAIAIA8oAgBrIRcgAiAJKAIAIgYpAgA3AgAgAiAGKQIINwIIIAIgBikCEDcCECAHIDUgCiAXIAIQrAMgASgCACASKAIAaiAeKAIATQRAIAgoAgAhByAAKQMAITUgBCgCACEKIAEoAgAgEigCAGohFyAPKAIAITMgDSgCACE0IAIgCSgCACIGKQIANwIAIAIgBikCCDcCCCACIAYpAhA3AhAgACAHIDUgCiAXIDMgNCACEK0DNwMAIAQgASgCACASKAIAakF/ajYCAAsgASABKAIAIBIoAgBqNgIAIBEgASgCADYCAAwACwALIBhBun82AgAgGCgCACEAIAUkBSAADwsgGCAQKAIAIBEoAgBrNgIAIBgoAgAhACAFJAUgAAuKAQEDfyMFIQUjBUEgaiQFIAVBCGoiBCAANwMAIAVBEWoiBiABOgAAIAVBEGoiASACOgAAIAUgAzcDACAEIAQpAwAgBi0AAEEKaqwgBSkDAH59NwMAIAQgBCkDAELjyJW9y5vvjU9+NwMAIAQgBCkDACABLQAAQQpqrHw3AwAgBCkDACEAIAUkBSAAC5oBAgN/AX4jBSECIwVBIGokBSACQRBqIgMgADYCACACQQxqIgQgATYCACACIgBCADcDACAAQQhqIgFBADYCAANAIAApAwAhBSABKAIAIAQoAgBJBEAgACAFQuPIlb3Lm++NT343AwAgACAAKQMAIAMoAgAgASgCAGotAABBCmqsfDcDACABIAEoAgBBAWo2AgAMAQsLIAIkBSAFC6ABAQN/IwUhAyMFQSBqJAUgA0EQaiEEIAMgADcDACADQQxqIgUgATYCACADQQhqIgEgAjYCACADKQMAIQBBICAFKAIAayABKAIASQR/IAQgAEEBIAEoAgB0QQFrrYM+AgAgBCgCACEBIAMkBSABBSAEIABBICAFKAIAayABKAIAa62IQQEgASgCAHRBAWutgz4CACAEKAIAIQEgAyQFIAELC00BA38jBSECIwVBEGokBSACIgQgADcDACACQQhqIgMgATYCACADKAIARQRAIAIkBUEADwsgBCkDAEHAACADKAIAa62IpyEBIAIkBSABC0EBAn8jBSEDIwVBEGokBSADQQRqIgQgADYCACADIAE2AgAgBCgCACgCFCADKAIAIAIoAgh0QQN0aiEAIAMkBSAAC0EBAn8jBSECIwVBEGokBSACIAA3AwAgAkEIaiIDIAE2AgAgAikDAEEgIAMoAgBrrYhC/////w+DpyEBIAIkBSAB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CyAANgIAIAlBIGoiDCABNgIAIAlBHGoiASACNgIAIAlBGGoiDSADNgIAIAlBFGoiAiAENgIAIAkiACAGNwMAIAlBEGoiAyAHNgIAIAIoAgAEQCACKAIAKAIIQQBLBEAgCygCAEEMaiIBIAUpAgA3AgAgASAFKQIINwIIIAEgBSkCEDcCECABIAUpAhg3AhggASAFKQIgNwIgIAEgBSkCKDcCKCABIAUpAjA3AjAgASAFKQI4NwI4IAFBQGsgBUFAaykCADcCACABIAUpAkg3AkggASAFKQJQNwJQIAEgBSkCWDcCWCABIAUpAmA3AmAgCygCACEBIAIoAgAhAiAFKAIEIQQgACkDACEGIAMoAgAhACAIIAVBIGoiAykCADcCACAIIAMoAgg2AgggCiABIAIgBCAIIAYgABC2AzYCACAKKAIAIQAgCSQFIAAPCwsgCygCACECIAApAwAhBiADKAIAIQMgCCAFKQIANwIAIAggBSkCCDcCCCAIIAUpAhA3AhAgCCAFKQIYNwIYIAggBSkCIDcCICAIIAUpAig3AiggCCAFKQIwNwIwIAggBSkCODcCOCAIQUBrIAVBQGspAgA3AgAgCCAFKQJINwJIIAggBSkCUDcCUCAIIAUpAlg3AlggCCAFKQJgNwJgIAlBDGoiACACIAggBkEAIAMQzwI2AgAgACgCABDNAQRAIAogACgCADYCACAKKAIAIQAgCSQFIAAPCyAJQQhqIgAgCygCACgC2AMgCygCAEHgA2ogBSAMKAIAIAEoAgAgDSgCACALKAIAKALMBBCxAjYCACAAKAIAEMwBQQBHIQEgACgCACEAIAEEfyAKIAA2AgAgCigCACEAIAkkBSAABSALKAIAIAA2AtwBIApBADYCACAKKAIAIQAgCSQFIAALC80GAQV/IwUhBiMFQYACaiQFIAZBlAFqIgcgADYCACAGQZABaiIIIAE2AgAgBkGMAWoiCSACNgIAIAYiACAENwMAIABBiAFqIgogBTYCACAAQSBqIgEgBygCAEEMaiICKQIANwIAIAEgAikCCDcCCCABIAIpAhA3AhAgASACKQIYNwIYIAEgAikCIDcCICABIAIpAig3AiggASACKQIwNwIwIAEgAikCODcCOCABQUBrIAJBQGspAgA3AgAgASACKQJINwJIIAEgAikCUDcCUCABIAIpAlg3AlggASACKQJgNwJgIAFBBGoiAiAIKAIAQfAkaiIFKQIANwIAIAIgBSkCCDcCCCACIAUpAhA3AhAgAiAFKAIYNgIYIAkoAgAEQCABIAkoAgA2AgQLIAFBIGoiAiADKQIANwIAIAIgAygCCDYCCCAHKAIAIQIgACkDACEEIAooAgAhAyAGQZgBaiIAIAEpAgA3AgAgACABKQIINwIIIAAgASkCEDcCECAAIAEpAhg3AhggACABKQIgNwIgIAAgASkCKDcCKCAAIAEpAjA3AjAgACABKQI4NwI4IABBQGsgAUFAaykCADcCACAAIAEpAkg3AkggACABKQJQNwJQIAAgASkCWDcCWCAAIAEpAmA3AmAgAiAAIARBASADEM8CGiAGQRxqIgEgCCgCAEGIJWooAgBBAUYEf0EABUEBIAgoAgBB9CRqKAIAdAsiADYCACAGQRhqIgBBASAIKAIAQfgkaigCAHQ2AgAgBkEUaiICIAEoAgAgACgCAGpBAnQ2AgAgBygCACgChAQgCCgCACgCOCACKAIAEPQHGiAGQRBqIgBBASAHKAIAKAKABHQ2AgAgBygCACgCiARBACAAKAIAQQJ0EPYHGiAGQQxqIgAgCCgCAEEUajYCACAGQQhqIgEgBygCAEHgA2o2AgAgASgCACICIAAoAgAiAykCADcCACACIAMpAgg3AgggAiADKAIQNgIQIAEoAgAgACgCACgCGDYCGCABKAIAIAAoAgAoAhw2AhwgASgCACAAKAIAKAIUNgIUIAcoAgAgCCgCAEGYJWooAgA2AtwBIAcoAgAoAtgDIAgoAgBBgAFqQfAjEPQHGiAGJAVBAAv2AgECfyMFIQMjBUHwAGokBSADIAEpAgA3AgAgAyABKQIINwIIIAMgASkCEDcCECADIAEpAhg3AhggAyABKQIgNwIgIAMgASkCKDcCKCADIAEpAjA3AjAgAyABKQI4NwI4IANBQGsgAUFAaykCADcCACADIAEpAkg3AkggAyABKQJQNwJQIAMgASkCWDcCWCADIAEpAmA3AmAgA0EEaiIBIAIpAgA3AgAgASACKQIINwIIIAEgAikCEDcCECABIAIoAhg2AhggA0EgaiIEIAJBHGoiASkCADcCACAEIAEoAgg2AgggA0EDNgIsIAAgAykCADcCACAAIAMpAgg3AgggACADKQIQNwIQIAAgAykCGDcCGCAAIAMpAiA3AiAgACADKQIoNwIoIAAgAykCMDcCMCAAIAMpAjg3AjggAEFAayADQUBrKQIANwIAIAAgAykCSDcCSCAAIAMpAlA3AlAgACADKQJYNwJYIAAgAykCYDcCYCADJAUL1wEBAn8jBSEEIwVB4ABqJAUgBEHUAGoiBSABNgIAIAQgAjcDACAEQdAAaiIBIAM2AgAgBEEIaiIDIAUoAgAgBCkDACABKAIAEKgCIARBKGoiAUIANwIAIAFCADcCCCABQgA3AhAgAUIANwIYIAFCADcCICABIAMpAgA3AgAgASADKQIINwIIIAEgAykCEDcCECABIAMoAhg2AhggAUEBNgIcIAAgASkCADcCACAAIAEpAgg3AgggACABKQIQNwIQIAAgASkCGDcCGCAAIAEpAiA3AiAgBCQFC78CAQV/IwUhBSMFQSBqJAUgBUEcaiEGIAVBGGoiByAANgIAIAVBFGoiCCABNgIAIAVBEGoiCSACNgIAIAVBDGoiASADNgIAIAVBCGoiAiAENgIAIAUiACAHKAIAIAgoAgAgCSgCACABKAIAIAIoAgBBAUEBEI8DNgIAIAUoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgBUEEaiIBIAcoAgAgCCgCACAAKAIAaiAJKAIAIAAoAgBrELoDNgIAIAEoAgAQzAEEQCAGIAEoAgA2AgAgBigCACEAIAUkBSAADwsgBygCACgClAEEQCAHKAIAKQPwASAHKAIAKQP4AUIBfFIEQCAGQbh/NgIAIAYoAgAhACAFJAUgAA8LCyAGIAAoAgAgASgCAGo2AgAgBigCACEAIAUkBSAAC5UFAQp/IwUhAyMFQZABaiQFIANBIGohBCADQRxqIgYgADYCACADQRhqIgggATYCACADQRRqIgcgAjYCACADQRBqIgogCCgCADYCACADQQxqIgUgCigCADYCACADQQhqIglBADYCACAGKAIAKAIARQRAIARBRDYCACAEKAIAIQAgAyQFIAAPCyADQShqIQEgA0EEaiELIAMhAAJAIAYoAgAoAgBBAUYEQCAIKAIAIQggBygCACEMIAEgBigCAEH0AGoiAikCADcCACABIAIpAgg3AgggASACKQIQNwIQIAEgAikCGDcCGCABIAIpAiA3AiAgASACKQIoNwIoIAEg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AgAiBkEBajYCACAGIAQ6AAAgGSgCACEEIBooAgAhBiBHIAwoAgA2AgAgSCAENgIAIGEgBjYCACBJIEcoAgAgYSgCABDgATYCACBiIEgoAgAgSSgCAEEBdGosAAA6AAAgRygCACBIKAIAIEkoAgBBAXRqLQABEN4BIGIsAAAhBCADIAMoAgAiBkEBajYCACAGIAQ6AAAMAQsLAkADQCAMKAIAENkBRSADKAIAIB4oAgBJcUUNASAZKAIAIQQgGigCACEGIEQgDCgCADYCACBFIAQ2AgAgXyAGNgIAIEYgRCgCACBfKAIAEOABNgIAIGAgRSgCACBGKAIAQQF0aiwAADoAACBEKAIAIEUoAgAgRigCAEEBdGotAAEQ3gEgYCwAACEEIAMgAygCACIGQQFqNgIAIAYgBDoAAAwACwALA0AgAygCACAeKAIASQRAIBkoAgAhBCAaKAIAIQYgJSAMKAIANgIAIEIgBDYCACBdIAY2AgAgQyAlKAIAIF0oAgAQ4AE2AgAgXiBCKAIAIEMoAgBBAXRqLAAAOgAAICUoAgAgQigCACBDKAIAQQF0ai0AARDeASBeLAAAIQQgAyADKAIAIgZBAWo2AgAgBiAEOgAADAELCyBUKAIAIQMgACgCACEAIAEoAgAhASACICgoAgA2AgAgCyAYNgIAIB0gAzYCACAOIAA2AgAgDyABNgIAIHYgAigCADYCAANAIAsoAgAQ2QFFIAIoAgAgHSgCAEF9aklxBEAgDigCACEAIA8oAgAhASAiIAsoAgA2AgAgIyAANgIAIFsgATYCACAkICIoAgAgWygCABDgATYCACBcICMoAgAgJCgCAEEBdGosAAA6AAAgIigCACAjKAIAICQoAgBBAXRqLQABEN4BIFwsAAAhACACIAIoAgAiAUEBajYCACABIAA6AAAgDigCACEAIA8oAgAhASBBIAsoAgA2AgAgICAANgIAIFkgATYCACAhIEEoAgAgWSgCABDgATYCACBaICAoAgAgISgCAEEBdGosAAA6AAAgQSgCACAgKAIAICEoAgBBAXRqLQABEN4BIFosAAAhACACIAIoAgAiAUEBajYCACABIAA6AAAMAQsLAkADQCALKAIAENkBRSACKAIAIB0oAgBJcUUNASAOKAIAIQAgDygCACEBID4gCygCADYCACA/IAA2AgAgVyABNgIA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BzYCACAlICEoAgAgOigCABDgATYCACA5KAIAIB0oAgAgJSgCAEECdGouAAA7AAAgISgCACAdKAIAICUoAgBBAnRqLQACEN4BIAMgAygCACAdKAIAICUoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDcgBCgCADYCACAcICo2AgAgFCAINgIAIDggBzYCACAXIBwoAgAgOCgCABDgATYCACA3KAIAIBQoAgAgFygCAEECdGouAAA7AAAgHCgCACAUKAIAIBcoAgBBAnRqLQACEN4BIAQgBCgCACAUKAIAIBcoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDUgECgCADYCACAbICs2AgAgICAINgIAIDYgBzYCACAWIBsoAgAgNigCABDgATYCACA1KAIAICAoAgAgFigCAEECdGouAAA7AAAgGygCACAgKAIAIBYoAgBBAnRqLQACEN4BIBAgECgCACAgKAIAIBYoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDMgJCgCADYCACAuICw2AgAgGSAINgIAIDQgBzYCACAaIC4oAgAgNCgCABDgATYCACAzKAIAIBkoAgAgGigCAEECdGouAAA7AAAgLigCACAZKAIAIBooAgBBAnRqLQACEN4BICQgJCgCACAZKAIAIBooAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDEgAygCADYCACAVICk2AgAgDiAINgIAIDIgBzYCACAPIBUoAgAgMigCABDgATYCACAxKAIAIA4oAgAgDygCAEECdGouAAA7AAAgFSgCACAOKAIAIA8oAgBBAnRqLQACEN4BIAMgAygCACAOKAIAIA8oAgBBAnRqLQADajYCACABKAIAIQggAigCACEHICggBCgCADYCACAeICo2AgAgDSAINgIAIC0gBzYCACALIB4oAgAgLSgCABDgATYCACAoKAIAIA0oAgAgCygCAEECdGouAAA7AAAgHigCACANKAIAIAsoAgBBAnRqLQACEN4BIAQgBCgCACANKAIAIAsoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHICYgECgCADYCACASICs2AgAgDCAINgIAICcgBzYCACAKIBIoAgAgJygCABDgATYCACAmKAIAIAwoAgAgCigCAEECdGouAAA7AAAgEigCACAMKAIAIAooAgBBAnRqLQACEN4BIBAgECgCACAMKAIAIAooAgBBAnRqLQADajYCACABKAIAIQggAigCACEHICIgJCgCADYCACAYICw2AgAgBiAINgIAICMgBzYCACAJIBgoAgAgIygCABDgATYCACAiKAIAIAYoAgAgCSgCAEECdGouAAA7AAAgGCgCACAGKAIAIAkoAgBBAnRqLQACEN4BICQgJCgCACAGKAIAIAkoAgBBAnRqLQADajYCACA7ICkQ2QEgKhDZAXIgKxDZAXIgLBDZAXI2AgAMAQsLIAMoAgAgACgCAEsEQCATQWw2AgAgEygCACEAIAUkBSAADwsgBCgCACARKAIASwRAIBNBbDYCACATKAIAIQAgBSQFIAAPCyAQKAIAIB8oAgBLBEAgE0FsNgIAIBMoAgAhACAFJAUgAA8LIAVBzAVqISEgBUHIBWohDCAFQcQFaiEKIAVBwAVqISIgBUG8BWohDSAFQbgFaiEmIAVBtAVqISAgBUGwBWohCyAFQawFaiEnIAVBqAVqIQ4gBUGkBWohIyAFQaAFaiEWIAVBnAVqIQ8gBUGYBWohKCAFQZQFaiEIIAVBkAVqIRkgBUGMBWohFCAFQYgFaiEHIAVBhAVqIS0gBUGABWohEiAFQegEaiEeIAVB5ARqIR0gBUHgBGohGyAFQdwEaiEVIAVB2ARqIRwgACgCACEGIAEoAgAhCSACKAIAIRcgBUHABGoiACADKAIANgIAIAVBvARqIgMgKTYCACAFQbgEaiIaIAY2AgAgBUG0BGoiBiAJNgIAIAVBsARqIgkgFzYCACAFIAAoAgA2AqwEA0AgAygCABDZAUUgACgCACAaKAIAQX1qSXEEQCADKAIAIRcgBigCACEYIAkoAgAhLiAeIAAoAgA2AgAgHSAXNgIAIBsgGDYCACAVIC42AgAgHCAdKAIAIBUoAgAQ4AE2AgAgHigCACAbKAIAIBwoAgBBAnRqLgAAOwAAIB0oAgAgGygCACAcKAIAQQJ0ai0AAhDeASAAIAAoAgAgGygCACAcKAIAQQJ0ai0AA2o2AgAgAygCACEXIAYoAgAhGCAJKAIAIS4gGSAAKAIANgIAIBQgFzYCACAHIBg2AgAgLSAuNgIAIBIgFCgCACAtKAIAEOABNgIAIBkoAgAgBygCACASKAIAQQJ0ai4AADsAACAUKAIAIAcoAgAgEigCAEECdGotAAIQ3gEgACAAKAIAIAcoAgAgEigCAEECdGotAANqNgIADAELCwNAIAMoAgAQ2QFFIAAoAgAgGigCAEF+ak1xBEAgAygCACEHIAYoAgAhEiAJKAIAIRQgIyAAKAIANgIAIBYgBzYCACAPIBI2AgAgKCAUNgIAIAggFigCACAoKAIAEOABNgIAICMoAgAgDygCACAIKAIAQQJ0ai4AADsAACAWKAIAIA8oAgAgCCgCAEECdGotAAIQ3gEgACAAKAIAIA8oAgAgCCgCAEECdGotAANqNgIADAELCwNAIAAoAgAhDyAAKAIAIBooAgBBfmpNBEAgAygCACEIIAYoAgAhByAJKAIAIRIgJiAPNgIAICAgCDYCACALIAc2AgAgJyASNgIAIA4gICgCACAnKAIAEOABNgIAICYoAgAgCygCACAOKAIAQQJ0ai4AADsAACAgKAIAIAsoAgAgDigCAEECdGotAAIQ3gEgACAAKAIAIAsoAgAgDigCAEECdGotAANqNgIADAELCyAPIBooAgBJBEAgAygCACEDIAYoAgAhBiAJKAIAIQkgISAAKAIANgIAIAwgAzYCACAKIAY2AgAgIiAJNgIAIA0gDCgCACAiKAIAEOABNgIAICEoAgAgCigCACANKAIAQQJ0aiwAADoAACAMKAIAIQMgCigCACANKAIAQQJ0ai0AA0EBRgRAIAMgCigCACANKAIAQQJ0ai0AAhDeAQUgAygCBEEgSQRAIAwoAgAgCigCACANKAIAQQJ0ai0AAhDeASAMKAIAKAIEQSBLBEAgDCgCAEEgNgIECwsLIAAgACgCAEEBajYCAAsgBUHwBmohHSAFQewGaiEJIAVB6AZqIQwgBUHkBmohJSAFQeAGaiEKIAVB3AZqISEgBUHYBmohGSAFQdQGaiENIAVB0AZqISIgBUHMBmohCyAFQcgGaiEmIAVBxAZqIRogBUHABmohDiAFQbwGaiEnIAVBuAZqIQ8gBUG0BmohIyAFQbAGaiEgIAVBrAZqIQggBUGoBmohKCAFQaQGaiEHIAVBjAZqIRggBUGIBmohFCAFQYQGaiEVIAVBgAZqIRIgBUH8BWohGyARKAIAIQYgASgCACEeIAIoAgAhFiAFQeQFaiIAIAQoAgA2AgAgBUHgBWoiAyAqNgIAIAVB3AVqIhEgBjYCACAFQdgFaiIEIB42AgAgBUHUBWoiBiAWNgIAIAUgACgCADYC0AUDQCADKAIAENkBRSAAKAIAIBEoAgBBfWpJcQRAIAMoAgAhHiAEKAIAIRYgBigCACEXIBggACgCADYCACAUIB42AgAgFSAWNgIAIBIgFzYCACAbIBQoAgAgEigCABDgATYCACAYKAIAIBUoAgAgGygCAEECdGouAAA7AAAgFCgCACAVKAIAIBsoAgBBAnRqLQACEN4BIAAgACgCACAVKAIAIBsoAgBBAnRqLQADajYCACADKAIAIR4gBCgCACEWIAYoAgAhFyAjIAAoAgA2AgAgICAeNgIAIAggFjYCACAoIBc2AgAgByAgKAIAICgoAgAQ4AE2AgAgIygCACAIKAIAIAcoAgBBAnRqLgAAOwAAICAoAgAgCCgCACAHKAIAQQJ0ai0AAhDeASAAIAAoAgAgCCgCACAHKAIAQQJ0ai0AA2o2AgAMAQsLA0AgAygCABDZAUUgACgCACARKAIAQX5qTXEEQCADKAIAIQggBCgCACEHIAYoAgAhEiAmIAAoAgA2AgAgGiAINgIAIA4gBzYCACAnIBI2AgAgDyAaKAIAICcoAgAQ4AE2AgAgJigCACAOKAIAIA8oAgBBAnRqLgAAOwAAIBooAgAgDigCACAPKAIAQQJ0ai0AAhDeASAAIAAoAgAgDigCACAPKAIAQQJ0ai0AA2o2AgAMAQsLA0AgACgCACEOIAAoAgAgESgCAEF+ak0EQCADKAIAIQ8gBCgCACEIIAYoAgAhByAhIA42AgAgGSAPNgIAIA0gCDYCACAiIAc2AgAgCyAZKAIAICIoAgAQ4AE2AgAgISgCACANKAIAIAsoAgBBAnRqLgAAOwAAIBkoAgAgDSgCACALKAIAQQJ0ai0AAhDeASAAIAAoAgAgDSgCACALKAIAQQJ0ai0AA2o2AgAMAQsLIA4gESgCAEkEQCADKAIAIQMgBCgCACEEIAYoAgAhBiAdIAAoAgA2AgAgCSADNgIAIAwgBDYCACAlIAY2AgAgCiAJKAIAICUoAgAQ4AE2AgAgHSgCACAMKAIAIAooAgBBAnRqLAAAOgAAIAkoAgAhAyAMKAIAIAooAgBBAnRqLQADQQFGBEAgAyAMKAIAIAooAgBBAnRqLQACEN4BBSADKAIEQSBJBEAgCSgCACAMKAIAIAooAgBBAnRqLQACEN4BIAkoAgAoAgRBIEsEQCAJKAIAQSA2AgQLCwsgACAAKAIAQQFqNgIACyAFQZQIaiEXIAVBkAhqIQYgBUGMCGohCSAFQYgIaiEdIAVBhAhqIQwgBUGACGohJSAFQfwHaiEHIAVB+AdqIQogBUH0B2ohISAFQfAHaiENIAVB7AdqISIgBUHoB2ohGSAFQeQHaiERIAVB4AdqISYgBUHcB2ohCyAFQdgHaiEnIAVB1AdqIRogBUHQB2ohDiAFQcwHaiEjIAVByAdqIQ8gBUGwB2ohLSAFQawHaiEWIAVBqAdqIRIgBUGkB2ohGCAFQaAHaiEUIB8oAgAhBCABKAIAIR8gAigCACEVIAVBiAdqIgAgECgCADYCACAFQYQHaiIDICs2AgAgBUGAB2oiHCAENgIAIAVB/AZqIgQgHzYCACAFQfgGaiIQIBU2AgAgBSAAKAIANgL0BgNAIAMoAgAQ2QFFIAAoAgAgHCgCAEF9aklxBEAgAygCACEfIAQoAgAhFSAQKAIAIR4gLSAAKAIANgIAIBYgHzYCACASIBU2AgAgGCAeNgIAIBQgFigCACAYKAIAEOABNgIAIC0oAgAgEigCACAUKAIAQQJ0ai4AADsAACAWKAIAIBIoAgAgFCgCAEECdGotAAIQ3gEgACAAKAIAIBIoAgAgFCgCAEECdGotAANqNgIAIAMoAgAhHyAEKAIAIRUgECgCACEeICcgACgCADYCACAaIB82AgAgDiAVNgIAICMgHjYCACAPIBooAgAgIygCABDgATYCACAnKAIAIA4oAgAgDygCAEECdGouAAA7AAAgGigCACAOKAIAIA8oAgBBAnRqLQACEN4BIAAgACgCACAOKAIAIA8oAgBBAnRqLQADajYCAAwBCwsDQCADKAIAENkBRSAAKAIAIBwoAgBBfmpNcQRAIAMoAgAhDiAEKAIAIQ8gECgCACEIICIgACgCADYCACAZIA42AgAgESAPNgIAICYgCDYCACALIBkoAgAgJigCABDgATYCACAiKAIAIBEoAgAgCygCAEECdGouAAA7AAAgGSgCACARKAIAIAsoAgBBAnRqLQACEN4BIAAgACgCACARKAIAIAsoAgBBAnRqLQADajYCAAwBCwsDQCAAKAIAIREgACgCACAcKAIAQX5qTQRAIAMoAgAhCyAEKAIAIQ4gECgCACEPICUgETYCACAHIAs2AgAgCiAONgIAICEgDzYCACANIAcoAgAgISgCABDgATYCACAlKAIAIAooAgAgDSgCAEECdGouAAA7AAAgBygCACAKKAIAIA0oAgBBAnRqLQACEN4BIAAgACgCACAKKAIAIA0oAgBBAnRqLQADajYCAAwBCwsgESAcKAIASQRAIAMoAgAhAyAEKAIAIQQgECgCACEQIBcgACgCADYCACAGIAM2AgAgCSAENgIAIB0gEDYCACAMIAYoAgAgHSgCABDgATYCACAXKAIAIAkoAgAgDCgCAEECdGosAAA6AAAgBigCACEDIAkoAgAgDCgCAEECdGotAANBAUYEQCADIAkoAgAgDCgCAEECdGotAAIQ3gEFIAMoAgRBIEkEQCAGKAIAIAkoAgAgDCgCAEECdGotAAIQ3gEgBigCACgCBEEgSwRAIAYoAgBBIDYCBAsLCyAAIAAoAgBBAWo2AgALIAVBuAlqISAgBUG0CWohBCAFQbAJaiEQIAVBrAlqIRYgBUGoCWohBiAFQaQJaiEUIAVBoAlqIRUgBUGcCWohCSAFQZgJaiEXIAVBlAlqIQwgBUGQCWohHSAFQYwJaiEbIAVBiAlqIQogBUGECWohJSAFQYAJaiENIAVB/AhqISEgBUH4CGohHCAFQfQIaiERIAVB8AhqISIgBUHsCGohCyAFQdQIaiEjIAVB0AhqIRkgBUHMCGohCCAFQcgIaiEoIAVBxAhqIQcgMCgCACEDIAEoAgAhHyACKAIAIRggBUGsCGoiACAkKAIANgIAIAVBqAhqIgEgLDYCACAFQaQIaiIkIAM2AgAgBUGgCGoiAiAfNgIAIAVBnAhqIgMgGDYCACAFQZgIaiAAKAIANgIAA0AgASgCABDZAUUgACgCACAkKAIAQX1qSXEEQCABKAIAIR8gAigCACEYIAMoAgAhEiAjIAAoAgA2AgAgGSAfNgIAIAggGDYCACAoIBI2AgAgByAZKAIAICgoAgAQ4AE2AgAgIygCACAIKAIAIAcoAgBBAnRqLgAAOwAAIBkoAgAgCCgCACAHKAIAQQJ0ai0AAhDeASAAIAAoAgAgCCgCACAHKAIAQQJ0ai0AA2o2AgAgASgCACEfIAIoAgAhGCADKAIAIRIgISAAKAIANgIAIBwgHzYCACARIBg2AgAgIiASNgIAIAsgHCgCACAiKAIAEOABNgIAICEoAgAgESgCACALKAIAQQJ0ai4AADsAACAcKAIAIBEoAgAgCygCAEECdGotAAIQ3gEgACAAKAIAIBEoAgAgCygCAEECdGotAANqNgIADAELCwNAIAEoAgAQ2QFFIAAoAgAgJCgCAEF+ak1xBEAgASgCACERIAIoAgAhCyADKAIAIQ4gHSAAKAIANgIAIBsgETYCACAKIAs2AgAgJSAONgIAIA0gGygCACAlKAIAEOABNgIAIB0oAgAgCigCACANKAIAQQJ0ai4AADsAACAbKAIAIAooAgAgDSgCAEECdGotAAIQ3gEgACAAKAIAIAooAgAgDSgCAEECdGotAANqNgIADAELCwNAIAAoAgAhCiAAKAIAICQoAgBBfmpNBEAgASgCACENIAIoAgAhESADKAIAIQsgFCAKNgIAIBUgDTYCACAJIBE2AgAgFyALNgIAIAwgFSgCACAXKAIAEOABNgIAIBQoAgAgCSgCACAMKAIAQQJ0ai4AADsAACAVKAIAIAkoAgAgDCgCAEECdGotAAIQ3gEgACAAKAIAIAkoAgAgDCgCAEECdGotAANqNgIADAELCyAKICQoAgBJBEAgASgCACEBIAIoAgAhAiADKAIAIQMgICAAKAIANgIAIAQgATYCACAQIAI2AgAgFiADNgIAIAYgBCgCACAWKAIAEOABNgIAICAoAgAgECgCACAGKAIAQQJ0aiwAADoAACAEKAIAIQEgECgCACAGKAIAQQJ0ai0AA0EBRgRAIAEgECgCACAGKAIAQQJ0ai0AAhDeAQUgASgCBEEgSQRAIAQoAgAgECgCACAGKAIAQQJ0ai0AAhDeASAEKAIAKAIEQSBLBEAgBCgCAEEgNgIECwsLIAAgACgCAEEBajYCAAsgBUEUaiIAICkQ1QMgKhDVA3EgKxDVA3EgLBDVA3E2AgAgACgCAAR/IBMgLygCADYCACATKAIAIQAgBSQFIAAFIBNBbDYCACATKAIAIQAgBSQFIAALC8oCAQZ/IwUhCCMFQTBqJAUgCEEoaiEJIAhBJGoiCiAANgIAIAhBIGoiDCABNgIAIAhBHGoiDSACNgIAIAhBGGoiCyADNgIAIAhBFGoiASAENgIAIAhBEGoiAyAFNgIAIAhBDGoiBCAGNgIAIAhBCGoiBSAHNgIAIAhBBGoiAiALKAIANgIAIAgiACAKKAIAIAsoAgAgASgCACADKAIAIAQoAgAQ2gM2AgAgCCgCABDNAUEARyEEIAgoAgAhAyAEBEAgCSADNgIAIAkoAgAhACAIJAUgAA8LIAMgASgCAE8EfyAJQbh/NgIAIAkoAgAhACAIJAUgAAUgAiACKAIAIAAoAgBqNgIAIAEgASgCACAAKAIAazYCACAJIAwoAgAgDSgCACACKAIAIAEoAgAgCigCACAFKAIAEN8DNgIAIAkoAgAhACAIJAUgAAsL5QEBAn8jBSECIwVBIGokBSACQRRqIgMgADYCACACQRBqIgAgATYCACAAKAIAIAMoAgBPBH9BDwUgACgCAEEEdCADKAIAbgshASACQQxqIgAgATYCACACQQhqIgEgAygCAEEIdjYCACACQQRqIgMgACgCAEEYbEHQPmooAgAgACgCAEEYbEHUPmooAgAgASgCAGxqNgIAIAIgACgCAEEYbEHYPmooAgAgACgCAEEYbEHcPmooAgAgASgCAGxqNgIAIAIgAigCACACKAIAQQN2ajYCACACKAIAIAMoAgBJIQAgAiQFIAALwgEBBH8jBSEGIwVBIGokBSAGQRRqIgcgADYCACAGQRBqIgggATYCACAGQQxqIgkgAjYCACAGQQhqIgEgAzYCACAGQQRqIgIgBDYCACAGIAU2AgAgBkEYaiIAIAIoAgAQ0gMgBygCACEHIAgoAgAhBSAJKAIAIQQgASgCACEDIAIoAgAhAiAGKAIAIQEgAC0AAQR/IAcgBSAEIAMgAiABEN0DIQAgBiQFIAAFIAcgBSAEIAMgAiABENMDIQAgBiQFIAALC8oCAQZ/IwUhCCMFQTBqJAUgCEEoaiEJIAhBJGoiCiAANgIAIAhBIGoiDCABNgIAIAhBHGoiDSACNgIAIAhBGGoiCyADNgIAIAhBFGoiASAENgIAIAhBEGoiAyAFNgIAIAhBDGoiBCAGNgIAIAhBCGoiBSAHNgIAIAhBBGoiAiALKAIANgIAIAgiACAKKAIAIAsoAgAgASgCACADKAIAIAQoAgAQ0QM2AgAgCCgCABDNAUEARyEEIAgoAgAhAyAEBEAgCSADNgIAIAkoAgAhACAIJAUgAA8LIAMgASgCAE8EfyAJQbh/NgIAIAkoAgAhACAIJAUgAAUgAiACKAIAIAAoAgBqNgIAIAEgASgCACAAKAIAazYCACAJIAwoAgAgDSgCACACKAIAIAEoAgAgCigCACAFKAIAENMDNgIAIAkoAgAhACAIJAUgAAsLwgEBBH8jBSEGIwVBIGokBSAGQRRqIgcgADYCACAGQRBqIgggATYCACAGQQxqIgkgAjYCACAGQQhqIgEgAzYCACAGQQRqIgIgBDYCACAGIAU2AgAgBkEYaiIAIAIoAgAQ0gMgBygCACEHIAgoAgAhBSAJKAIAIQQgASgCACEDIAIoAgAhAiAGKAIAIQEgAC0AAQR/IAcgBSAEIAMgAiABEN8DIQAgBiQFIAAFIAcgBSAEIAMgAiABENYDIQAgBiQFIAALC8ACAQZ/IwUhCCMFQTBqJAUgCEEkaiEJIAhBIGoiCyAANgIAIAhBHGoiDCABNgIAIAhBGGoiCiACNgIAIAhBFGoiDSADNgIAIAhBEGoiAyAENgIAIAhBDGoiAiAFNgIAIAhBCGoiASAGNgIAIAhBBGoiACAHNgIAIAooAgBFBEAgCUG6fzYCACAJKAIAIQAgCCQFIAAPCyADKAIARQRAIAlBbDYCACAJKAIAIQAgCCQFIAAPCyAIIAooAgAgAygCABDiAzYCACALKAIAIQcgDCgCACEGIAooAgAhBSANKAIAIQQgAygCACEDIAIoAgAhAiABKAIAIQEgACgCACEAIAkgCCgCAAR/IAcgBiAFIAQgAyACIAEgABDhAwUgByAGIAUgBCADIAIgASAAENkDCyIANgIAIAkoAgAhACAIJAUgAAvhAQECfyMFIQIjBUEwaiQFIAJBEGoiASAANgIAIAEoAgBB8OEBakEANgIAIAEoAgBBjOIBakEANgIAIAEoAgBBrOIBakGBgIDAADYCACABKAIAQZjiAWpBADYCACABKAIAQZTiAWpBADYCACABKAIAQaDiAWpBADYCACABKAIAQaTiAWpBADYCACABKAIAQbTiAWpBADYCACABKAIAQZziAWpBADYCACACEKUCIAJBGGoiACACKQIANwIAIAAgAikCCDcCCCABKAIAQZDiAWogACgCCEGAAnFBAEc2AgAgAiQFC+YBAQR/IwUhASMFQSBqJAUgAUEEaiECIAAoAgBBAEdBAXMgACgCBEEAR0EBc3MEQCACQQA2AgAgAigCACEAIAEkBSAADwsgAUEIaiIEIAApAgA3AgAgBCAAKAIINgIIIAEiA0Hw4gkgBBDtATYCACABKAIABH8gAygCAEH44QFqIgQgACkCADcCACAEIAAoAgg2AgggAygCAEHE4gFqQQA2AgAgAygCAEHI4gFqQQA2AgAgAygCABDnAyACIAMoAgA2AgAgAigCACEAIAEkBSAABSACQQA2AgAgAigCACEAIAEkBSAACws0AQJ/IwUhACMFQRBqJAUgAEGAsQEpAgA3AgAgAEGIsQEoAgA2AgggABDoAyEBIAAkBSABC8cCAQV/IwUhAiMFQSBqJAUgAkEQaiEEIAJBDGoiASAANgIAIAEoAgBFBEAgBEEANgIAIAQoAgAhACACJAUgAA8LIAEoAgBBjOIBaigCAARAIARBQDYCACAEKAIAIQAgAiQFIAAPCyACIgAgASgCAEH44QFqIgMpAgA3AgAgAiADKAIINgIIIAEoAgBBlOIBaigCABDrAxogASgCAEGU4gFqQQA2AgAgASgCAEGg4gFqKAIAIQUgAkEUaiIDIAIpAgA3AgAgAyACKAIINgIIIAUgAxDvASABKAIAQaDiAWpBADYCACABKAIAQcTiAWooAgAEQCABKAIAQcTiAWooAgAgASgCAEHI4gFqKAIAEOwDGgsgASgCACEBIAMgACkCADcCACADIAAoAgg2AgggASADEO8BIARBADYCACAEKAIAIQAgAiQFIAALwQEBBX8jBSEDIwVBIGokBSADQRRqIQEgA0EQaiEEIAMiAkEMaiIFIAA2AgAgBSgCAAR/IAIgBSgCAEG84AFqIgApAgA3AgAgAiAAKAIINgIIIAUoAgAoAgAhACABIAIpAgA3AgAgASACKAIINgIIIAAgARDvASAFKAIAIQAgASACKQIANwIAIAEgAigCCDYCCCAAIAEQ7wEgBEEANgIAIAQoAgAhACADJAUgAAUgBEEANgIAIAQoAgAhACADJAUgAAsLmgEBA38jBSEDIwVBEGokBSADQQhqIQIgA0EEaiIEIAA2AgAgAyABNgIAAkACQAJAAkACQAJAIAMoAgBBBGsOBAMCAQAECyACIAQoAgAQ8AM2AgAMBAsgAiAEKAIAEO8DNgIADAMLIAIgBCgCABDuAzYCAAwCCyACIAQoAgAQ7QM2AgAMAQsgAkF0NgIACyACKAIAIQAgAyQFIAALJgEBfyMFIQEjBUEQaiQFIAEgADYCACABKAIAEPMDIQAgASQFIAALegEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIABH8gASgCACgCABDyAxogASgCACgCMBCHBiABKAIAKAI8EIcGIAEoAgAQhwYgA0EANgIAIAMoAgAhACACJAUgAAUgA0EANgIAIAMoAgAhACACJAUgAAsLegEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIABH8gASgCACgCABDyAxogASgCACgCHBCHBiABKAIAKAIoEIcGIAEoAgAQhwYgA0EANgIAIAMoAgAhACACJAUgAAUgA0EANgIAIAMoAgAhACACJAUgAAsL1gEBA38jBSECIwVBEGokBSACQQRqIQMgAiIBIAA2AgAgASgCAEUEQCADQQA2AgAgAygCACEAIAIkBSAADwsgASgCACgCABDxAxogASgCACgCJARAIAEoAgAoAmQgASgCACgCJCABKAIAKAJgQR9xQeQCahECAAsgASgCACgCMARAIAEoAgAoAmQgASgCACgCMCABKAIAKAJgQR9xQeQCahECAAsgASgCACgCZCABKAIAIAEoAgAoAmBBH3FB5AJqEQIAIANBADYCACADKAIAIQAgAiQFIAALeQEDfyMFIQEjBUEQaiQFIAFBBGohAiABIgMgADYCACABKAIABH8gAygCAEHEqQFqKAIAIAMoAgAgAygCAEHAqQFqKAIAQR9xQeQCahECACACQQA2AgAgAigCACEAIAEkBSAABSACQQA2AgAgAigCACEAIAEkBSAACwskAQF/IwUhASMFQRBqJAUgASAANgIAIAEoAgAQhwYgASQFQQALegEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIABH8gASgCACgCABDyAxogASgCACgCKBCHBiABKAIAKAI0EIcGIAEoAgAQhwYgA0EANgIAIAMoAgAhACACJAUgAAUgA0EANgIAIAMoAgAhACACJAUgAAsLrgEBBH8jBSEDIwVBEGokBSADQQxqIQIgAyEEIANBCGoiBSAANgIAIANBBGoiACABNgIAAkAgACgCAEEESQRAIAJBADYCAAUgBCAFKAIAEM8BNgIAAkACQAJAAkACQCAEKAIAQaTqvmlrDgQAAQIDBAsgAkEENgIADAULIAJBBTYCAAwECyACQQY2AgAMAwsgAkEHNgIADAILIAJBADYCAAsLIAIoAgAhACADJAUgAAs5AQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAgAigCAEEAEPYDIQAgAiQFIAALpgIBBH8jBSEDIwVBMGokBSADQRxqIQQgA0EYaiIFIAA2AgAgA0EUaiIAIAE2AgAgA0EQaiIGIAI2AgAgA0EMaiIBIAYoAgAQ9wM2AgAgACgCACABKAIASQRAIARBuH82AgAgBCgCACEAIAMkBSAADwsgA0EgaiICIAUoAgAgASgCAEEBa2osAAA6AAAgA0EIaiIGIAItAABBA3E2AgAgA0EEaiIFIAItAABBBXVBAXE2AgAgAyIAIAItAABBBnU2AgAgBCABKAIAIgEgBSgCACICQQBHQQFzaiAGKAIAQQJ0QfAiaigCACIGaiADKAIAQQJ0QYAjaigCAGogBSgCAAR/IAAoAgBBAEdBAXMFQQALIgBBAXFqNgIAIAQoAgAhACADJAUgAAs/AQJ/IwUhASMFQRBqJAUgAUEEaiICIAA2AgAgASIAIAIoAgBBAUYEf0EBBUEFCzYCACAAKAIAIQAgASQFIAALSgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIAAoAgAgAygCAEEAEPkDIQAgAyQFIAALiwkCDH8BfiMFIQQjBUHQAGokBSAEQcgAaiEFIARBxABqIgcgADYCACAEQUBrIgAgATYCACAEQTxqIgEgAjYCACAEQThqIgYgAzYCACAEQTRqIgIgACgCADYCACAEQTBqIgMgBigCABD3AzYCACABKAIAIAMoAgBJBEAgBSADKAIANgIAIAUoAgAhACAEJAUgAA8LIAYoAgBBAUcEQCAAKAIAEM8BQajqvmlHBEAgACgCABDPAUFwcUHQ1LTCAUcEQCAFQXY2AgAgBSgCACEAIAQkBSAADwsgASgCAEEISQRAIAVBCDYCACAFKAIAIQAgBCQFIAAPBSAHKAIAIgFCADcDACABQgA3AwggAUIANwMQIAFCADcDGCABQgA3AyAgACgCAEEEahDPAa0hECAHKAIAIBA3AwAgBygCAEEBNgIUIAVBADYCACAFKAIAIQAgBCQFIAAPCwALCyAEQSxqIgggACgCACABKAIAIAYoAgAQ9gM2AgAgCCgCACEAIAEoAgAgCCgCAEkEQCAFIAA2AgAgBSgCACEAIAQkBSAADwsgBygCACAANgIYIARBzQBqIgYgAigCACADKAIAQQFraiwAADoAACAEQShqIgEgAygCADYCACAEQSRqIgsgBi0AAEEDcTYCACAEQSBqIgwgBi0AAEECdUEBcTYCACAEQRxqIgkgBi0AAEEFdUEBcTYCACAEQRhqIg0gBi0AAEEGdTYCACAEQQhqIgNCADcDACAEQRRqIghBADYCACAEIgBCfzcDACAGLQAAQQhxBEAgBUFyNgIAIAUoAgAhACAEJAUgAA8LIARBzABqIQYgBEEQaiEKAkAgCSgCAEUEQCACKAIAIQ4gASABKAIAIg9BAWo2AgAgBiAOIA9qLAAAOgAAIAogBi0AAEEDdUEKajYCACAKKAIAQR5NBEAgA0IBIAooAgCthjcDACADIAMpAwAgAykDAEIDiCAGLQAAQQdxrH58NwMADAILIAVBcDYCACAFKAIAIQAgBCQFIAAPCwsCQAJAAkACQCALKAIAQQFrDgMBAgADCyAIIAIoAgAgASgCAGoQzwE2AgAgASABKAIAQQRqNgIADAILIAggAigCACABKAIAai0AADYCACABIAEoAgBBAWo2AgAMAQsgCCACKAIAIAEoAgBqENgDQf//A3E2AgAgASABKAIAQQJqNgIACwJAAkACQAJAAkAgDSgCAEEBaw4DAQIAAwsgACACKAIAIAEoAgBqEOIBNwMADAMLIAAgAigCACABKAIAahDYA0H//wNxQYACaqw3AwAMAgsgACACKAIAIAEoAgBqEM8BrTcDAAwBCyAJKAIABEAgACACKAIAIAEoAgBqLQAArTcDAAsLIAkoAgAEQCADIAApAwA3AwALIAcoAgBBADYCFCAHKAIAIAApAwA3AwAgBygCACADKQMANwMIIAMpAwAhECAHKAIAIAMpAwBCgIAIVAR+IBAFQoCACAs+AhAgBygCACAIKAIANgIcIAcoAgAgDCgCADYCICAFQQA2AgAgBSgCACEAIAQkBSAAC8sBAgZ/AX4jBSECIwVBQGskBSACQTBqIQMgAkEoaiEFIAIhBiACQTxqIgQgADYCACACQThqIgcgATYCACAEKAIAIAcoAgAQ9ANBAEchACAEKAIAIQQgBygCACEBAkAgAARAIAUgBCABEPsDNwMAIAUp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AiQFIAALxQEBA38jBSECIwVBEGokBSACQQxqIQMgAkEIaiIEIAA2AgAgAkEEaiIAIAE2AgAgAiAEKAIAIAAoAgAQ9AM2AgACQAJAAkACQAJAAkAgAigCAEEEaw4EAAECAwQLIAMgBCgCACAAKAIAEIkENgIADAQLIAMgBCgCACAAKAIAEIoENgIADAMLIAMgBCgCACAAKAIAEIsENgIADAILIAMgBCgCACAAKAIAEIwENgIADAELIANBdjYCAAsgAygCACEAIAIkBSAAC4kCAQN/IwUhAyMFQSBqJAUgA0EUaiEEIANBEGoiBSAANgIAIANBDGoiACABNgIAIANBCGoiASACNgIAIAAoAgBBA0kEQCAEQbh/NgIAIAQoAgAhACADJAUgAA8LIANBBGoiAiAFKAIAEIgENgIAIAMiACACKAIAQQN2NgIAIAEoAgAgAigCAEEBcTYCBCABKAIAIAIoAgBBAXZBA3E2AgAgASgCACADKAIANgIIIAEoAgAoAgBBAUYEQCAEQQE2AgAgBCgCACEAIAMkBSAADwsgASgCACgCAEEDRgR/IARBbDYCACAEKAIAIQAgAyQFIAAFIAQgACgCADYCACAEKAIAIQAgAyQFIAALCzcBAX8jBSEBIwVBEGokBSABIAA2AgAgASgCABDYA0H//wNxIAEoAgAtAAJBEHRqIQAgASQFIAALNwECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIAIoAgAQjwQhACACJAUgAAv/AgEFfyMFIQIjBUEwaiQFIAJBIGohAyACQRxqIgUgADYCACACQRhqIgAgATYCACACQRRqIgEgBSgCADYCACACQRBqIgQgACgCADYCACAAKAIAQQVJBEAgA0G4fzYCACADKAIAIQAgAiQFIAAPCyAFKAIAEM8BQaXqvmlHBEAgA0F2NgIAIAMoAgAhACACJAUgAA8LIAJBCGohBiACIQAgASABKAIAQQVqNgIAIAQgBCgCAEEFazYCAAJAAkACQANAIAAgASgCACAEKAIAIAYQjgQ2AgAgACgCABDMAQ0BIAEgASgCAEEDajYCACAEIAQoAgBBA2s2AgAgACgCACAEKAIASw0CIAAoAgBFDQMgASABKAIAIAAoAgBqNgIAIAQgBCgCACAAKAIAazYCAAwACwALIAMgACgCADYC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IBEoAgAgLigCAGtLBEAgEkFsNgIADAQLIAkgGygCACAJKAIAIBooAgBrajYCACAJKAIAIAsoAgRqIBsoAgBNBEAgESgCACAJKAIAIAsoAgQQ9QcaIBIgHCgCADYCAAwECyAkIBsoAgAgCSgCAGs2AgAgESgCACAJKAIAICQoAgAQ9QcaIAogESgCACAkKAIAajYCACALQQRqIgAgACgCACAkKAIAazYCACAJIBooAgA2AgAgCigCACAUKAIATQRAIAsoAgRBA08NAgsgFkEANgIAA0AgFigCACALKAIESQRAIAooAgAgFigCAGogCSgCACAWKAIAaiwAADoAACAWIBYoAgBBAWo2AgAMAQsLIBIgHCgCADYCAAwDCwsgCygCCEEISQRAIDogCygCCEECdEGQPWooAgA2AgAgCigCACAJKAIALAAAOgAAIAooAgAgCSgCACwAAToAASAKKAIAIAkoAgAsAAI6AAIgCigCACAJKAIALAADOgADIAkgCSgCACALKAIIQQJ0QbA9aigCAGo2AgAgCigCAEEEaiAJKAIAEJ4EIAkgCSgCACA6KAIAazYCAAUgCigCACAJKAIAEPwCCyAKIAooAgBBCGo2AgAgCSAJKAIAQQhqNgIAIAooAgAhAAJAICMoAgAgGSgCAEFzaksEQCAAIBQoAgBJBEAgCigCACAJKAIAIBQoAgAgCigCAGsQ+wIgCSAJKAIAIBQoAgAgCigCAGtqNgIAIAogFCgCADYCAAsDQCAKKAIAICMoAgBPDQIgCSAJKAIAIgBBAWo2AgAgACwAACEBIAogCigCACIAQQFqNgIAIAAgAToAAAwACwAFIAAgCSgCACALKAIEQQhrEPsCCwsgEiAcKAIANgIACwsgNSASKAIANgIAIDUoAgAQzQFBAEchACA1KAIAIQEgAA0CIBMgEygCACABajYCAAwBCwsMAQsgECABNgIAIBAoAgAhACAHJAUgAA8LIAIEQCAQQWw2AgAgECgCACEAIAckBSAADwsgGEEANgIAA0AgGCgCAEEDTw0CIA4oAgBBrOABaiAYKAIAQQJ0aiANQSxqIBgoAgBBAnRqKAIANgIAIBggGCgCAEEBajYCAAwACwALCyApIEgoAgAgKygCAGs2AgAgKSgCACBHKAIAIBMoAgBrSwR/IBBBun82AgAgECgCACEAIAckBSAABSATKAIAICsoAgAgKSgCABD0BxogEyATKAIAICkoAgBqNgIAIBAgEygCACA5KAIAazYCACAQKAIAIQAgByQFIAALC4UBAQJ/IwUhAyMFQSBqJAUgA0EQaiIEIAA2AgAgA0EMaiIAIAE2AgAgA0EIaiIBIAI2AgAgA0EEaiICIAEoAgA2AgAgAyACKAIANgIAIAAoAgAgAygCACgCBBDcASECIAQoAgAgAjYCACAAKAIAENkBGiAEKAIAIAEoAgBBCGo2AgQgAyQFC6kGAQh/IwUhCCMFQUBrJAUgCEE4aiEKIAhBNGoiCSAANgIAIAhBMGoiCyABNgIAIAhBLGoiDSADNgIAIAhBKGoiDCAENgIAIAhBJGoiBCAFNgIAIAhBIGoiDiAGNgIAIAhBHGoiBSAHNgIAIAhBGGoiAyAJKAIAIAIoAgBqNgIAIAhBFGoiBiACKAIAIAIoAgRqNgIAIAhBEGoiByAJKAIAIAYoAgBqNgIAIAhBDGoiACALKAIAQXhqNgIAIAhBCGoiDyANKAIAKAIAIAIoAgBqNgIAIAhBBGoiASADKAIAIAIoAghrNgIAIAcoAgAgCygCAEsEQCAKQbp/NgIAIAooAgAhACAIJAUgAA8LIA8oAgAgDCgCAEsEQCAKQWw2AgAgCigCACEAIAgkBSAADwsgAygCACAAKAIATQRAIApBfzYCACAKKAIAIQAgCCQFIAAPCyAJKAIAIAAoAgBJBEAgCSgCACANKAIAKAIAIAAoAgAgCSgCAGsQ+wIgDSgCACILIAsoAgAgACgCACAJKAIAa2o2AgAgCSAAKAIANgIACyAIIQADQCAJKAIAIAMoAgBJBEAgDSgCACIMKAIAIQsgDCALQQFqNgIAIAssAAAhCyAJIAkoAgAiDEEBajYCACAMIAs6AAAMAQsLAkAgAigCCCADKAIAIAQoAgBrSwRAIAIoAgggAygCACAOKAIAa0sEQCAKQWw2AgAgCigCACEAIAgkBSAADwsgASAFKAIAIAQoAgAgASgCAGtrNgIAIAEoAgAgAigCBGogBSgCAEsEQCAAIAUoAgAgASgCAGs2AgAgAygCACABKAIAIAAoAgAQ9QcaIAkgAygCACAAKAIAajYCACACQQRqIgIgAigCACAAKAIAazYCACABIAQoAgA2AgAMAgsgAygCACABKAIAIAIoAgQQ9QcaIAogBigCADYCACAKKAIAIQAgCCQFIAAPCwsDQCAJKAIAIAcoAgBJBEAgASABKAIAIgBBAWo2AgAgACwAACEAIAkgCSgCACICQQFqNgIAIAIgADoAAAwBCwsgCiAGKAIANgIAIAooAgAhACAIJAUgAAs2AQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAgAigCACgAADYAACACJAULkTYBen8jBSEHIwVBkAZqJAUgB0H4BWohISAHQfQFaiEbIAdB8AVqIQogB0HsBWohKyAHQegFaiEiIAdB5AVqIVAgB0HgBWohOCAHQdwFaiFRIAdB2AVqITkgB0HUBWohHCAHQdAFaiEsIAdBzAVqITogB0HIBWohHyAHQcQFaiFSIAdBwAVqIQsgB0G8BWohOyAHQbgFaiEjIAdBtAVqIWQgB0HQAGohDiAHQbAFaiEdIAdBrAVqIQwgB0GoBWohLSAHQaQFaiEkIAdBoAVqIVMgB0GcBWohPCAHQZgFaiFUIAdBlAVqIT0gB0GQBWohHiAHQYwFaiEuIAdBiAVqIT4gB0GEBWohICAHQYAFaiFVIAdB/ARqIQ0gB0H4BGohPyAHQfQEaiElIAdB8ARqIWUgB0FAayEPIAdB7ARqIUAgB0HoBGohZiAHQeAEaiFWIAdB3ARqIWcgB0HYBGohaCAHQdQEaiFBIAdB0ARqIWkgB0HIBGohVyAHQcQEaiFqIAdBwARqIWsgB0G8BGohQiAHQbgEaiFsIAdBsARqIVggB0GsBGohbSAHQagEaiFuIAdBpARqIQggB0GgBGohbyAHQZAEaiEXIAdBjARqIS8gB0GIBGohMCAHQYQEaiEZIAdBgARqIXAgB0H8A2ohWSAHQfgDaiFxIAdB9ANqIVogB0HwA2ohEiAHQewDaiEmIAdB6ANqITEgB0HkA2ohQyAHQeADaiFyIAdB3ANqIUQgB0HYA2ohcyAHQdADaiFbIAdBzANqIXQgB0HIA2ohdSAHQcQDaiFFIAdBwANqIXYgB0G4A2ohXCAHQbQDaiF3IAdBsANqIXggB0GsA2ohRiAHQagDaiF5IAdBoANqIV0gB0GcA2oheiAHQZgDaiF7IAdBlANqIQkgB0GQA2ohfCAHQYADaiEYIAdB+AJqITIgB0H0AmohMyAHQfACaiEaIAdB7AJqIX0gB0HoAmohXiAHQeQCaiF+IAdB4AJqIV8gB0HcAmohEyAHQdgCaiEnIAdB1AJqITQgB0HQAmohRyAHQcwCaiF/IAdByAJqIRQgByFIIAdBgAJqIUkgB0G8AWohESAHQbgBaiEQIAdBtAFqISggB0GwAWohgAEgB0GgAWohSiAHQZABaiE1IAdBiAFqIUsgB0GEAWohYCAHQYABaiEpIAdB/ABqIUwgB0H4AGoiNiAANgIAIAdB9ABqIk0gATYCACAHQfAAaiIBIAI2AgAgB0HsAGoiACADNgIAIAdB6ABqIk4gBDYCACAHQeQAaiIEIAU2AgAgB0HgAGoiAyAGNgIAIE0oAgAhAiABKAIAIQEgACgCACEAIE4oAgAhBiAEKAIAIQUgAygCACEEIAdBxAJqIhYgNigCADYCACAHQcACaiIDIAI2AgAgB0G8AmoiAiABNgIAIAdBuAJqIgEgADYCACAHQbQCaiIAIAY2AgAgB0GwAmoiKiAFNgIAIAdBrAJqIk0gBDYCACAHQagCaiIEIAEoAgA2AgAgB0GkAmoiASAEKAIAIAAoAgBqNgIAIAdBoAJqImEgAygCADYCACAHQZwCaiJiIGEoAgAgAigCAGo2AgAgB0GYAmoiFSBhKAIANgIAIAdBlAJqIjcgFigCAEH04QFqKAIANgIAIAdBkAJqImMgNygCACAWKAIAQYTiAWooAgBqNgIAIAdBjAJqIk8gFigCAEG84AFqKAIANgIAIAdBiAJqIk4gFigCAEHA4AFqKAIANgIAIAdBhAJqIjYgFigCAEHE4AFqKAIANgIAAkAgKigCAARAICooAgAhACBJICooAgBBBEgEfyAABUEECzYCACAWKAIAQYzhAWpBATYCACAoQQA2AgADQCAoKAIAQQNJBEAgEUEsaiAoKAIAQQJ0aiAWKAIAQazgAWogKCgCAEECdGooAgA2AgAgKCAoKAIAQQFqNgIADAELCyARIE8oAgA2AjggEUFAayAVKAIAIE8oAgBrNgIAIBEgNigCADYCPCCAASARIAQoAgAgASgCACAEKAIAaxDXATYCACCAASgCABDNAQRAIBRBbDYCACAUKAIAIQAgByQFIAAPCyARQRRqIBEgFigCACgCABCcBCARQRxqIBEgFigCACgCCBCcBCARQSRqIBEgFigCACgCBBCcBCAQQQA2AgADQAJAIBEQ2QFBAk0EfyAQKAIAIEkoAgBIBUEACyEAIBAoAgAhAiAARQ0AIE0oAgAhACAJIBE2AgAgfCAANgIAIDIgCSgCACgCGCAJKAIAKAIUQQN0ai0AAjYCACAzIAkoAgAoAiggCSgCACgCJEEDdGotAAI2AgAgGiAJKAIAKAIgIAkoAgAoAhxBA3RqLQACNgIAIH0gMigCACAzKAIAaiAaKAIAajYCACBeIAkoAgAoAhggCSgCACgCFEEDdGooAgQ2AgAgfiAJKAIAKAIoIAkoAgAoAiRBA3RqKAIENgIAIF8gCSgCACgCICAJKAIAKAIcQQN0aigCBDYCAAJAIBooAgAEQCB8KAIARQRAIBMgXygCACAJKAIAIBooAgAQ3wFqNgIAIAkoAgAQ2QEaDAILIBooAgAhACAnIBooAgAgGigCAEEYSQR/IAAFQRgLazYCACATIF8oAgAgCSgCACAaKAIAICcoAgBrEN8BICcoAgB0ajYCACAnKAIAQQFyBEAgCSgCABDZARoLICcoAgAEQCAJKAIAICcoAgAQ3wEhACATIBMoAgAgAGo2AgALBSATQQA2AgALCwJAIBooAgBBAU0EQCATIBMoAgAgXigCAEVqNgIAIBMoAgBFBEAgEyAJKAIAKAIsNgIADAILIAkoAgBBLGohACA0IBMoAgBBA0YEfyAAKAIAQQFrBSAAIBMoAgBBAnRqKAIACzYCACA0IDQoAgAgNCgCAEEAR0EBc2o2AgAgEygCAEEBRwRAIAkoAgAgCSgCACgCMDYCNAsgCSgCACAJKAIAKAIsNgIwIBMgNCgCACIANgIAIAkoAgAgADYCLAUgCSgCACAJKAIAKAIwNgI0IAkoAgAgCSgCACgCLDYCMCAJKAIAIBMoAgA2AiwLCyAYIBMoAgA2AgggGCB+KAIAIDMoAgBBAEsEfyAJKAIAIDMoAgAQ3wEFQQALajYCBCAzKAIAIDIoAgBqQRRPBEAgCSgCABDZARoLIH0oAgBBH09BAHEEQCAJKAIAENkBGgsgGCBeKAIAIDIoAgBBAEsEfyAJKAIAIDIoAgAQ3wEFQQALajYCACAJKAIAENkBGiBHIAkoAgBBQGsoAgAgGCgCAGo2AgAgCSgCACEAIH8gGCgCCCBHKAIASwR/IAAoAjwFIAAoAjgLNgIAIBggfygCACBHKAIAaiAYKAIIazYCDCAJKAIAQUBrIEcoAgAgGCgCBGo2AgAgCSgCACEAIEYgCSgCAEEUajYCACB5IAA2AgAgXSBGKAIAKAIEIEYoAgAoAgBBA3RqKQIANwIAIHogXS0AAzYCACB7IHkoAgAgeigCABDcATYCACBGKAIAIF0vAQAgeygCAGo2AgAgCSgCACEAIEUgCSgCAEEkajYCACB2IAA2AgAgXCBFKAIAKAIEIEUoAgAoAgBBA3RqKQIANwIAIHcgXC0AAzYCACB4IHYoAgAgdygCABDcATYCACBFKAIAIFwvAQAgeCgCAGo2AgAgCSgCABDZARogCSgCACEAIEQgCSgCAEEcajYCACBzIAA2AgAgWyBEKAIAKAIEIEQoAgAoAgBBA3RqKQIANwIAIHQgWy0AAzYCACB1IHMoAgAgdCgCABDcATYCACBEKAIAIFsvAQAgdSgCAGo2AgAgSiAYKQIANwIAIEogGCkCCDcCCCBIIAJBBHRqIgAgSikCADcCACAAIEopAgg3AgggECAQKAIAQQFqNgIADAELCyACIEkoAgBIBEAgFEFsNgIAIBQoAgAhACAHJAUgAA8LAkACQANAAkAgERDZAUECSw0AIBAoAgAgKigCAE4NACBNKAIAIQAgCCARNgIAIG8gADYCACAvIAgoAgAoAhggCCgCACgCFEEDdGotAAI2AgAgMCAIKAIAKAIoIAgoAgAoAiRBA3RqLQACNgIAIBkgCCgCACgCICAIKAIAKAIcQQN0ai0AAjYCACBwIC8oAgAgMCgCAGogGSgCAGo2AgAgWSAIKAIAKAIYIAgoAgAoAhRBA3RqKAIENgIAIHEgCCgCACgCKCAIKAIAKAIkQQN0aigCBDYCACBaIAgoAgAoAiAgCCgCACgCHEEDdGooAgQ2AgACQCAZKAIABEAgbygCAEUEQCASIFooAgAgCCgCACAZKAIAEN8BajYCACAIKAIAENkBGgwCCyAZKAIAIQAgJiAZKAIAIBkoAgBBGEkEfyAABUEYC2s2AgAgEiBaKAIAIAgoAgAgGSgCACAmKAIAaxDfASAmKAIAdGo2AgAgJigCAEEBcgRAIAgoAgAQ2QEaCyAmKAIABEAgCCgCACAmKAIAEN8BIQAgEiASKAIAIABqNgIACwUgEkEANgIACwsCQCAZKAIAQQFNBEAgEiASKAIAIFkoAgBFajYCACASKAIARQRAIBIgCCgCACgCLDYCAAwCCyAIKAIAQSxqIQAgMSASKAIAQQNGBH8gACgCAEEBawUgACASKAIAQQJ0aigCAAs2AgAgMSAxKAIAIDEoAgBBAEdBAXNqNgIAIBIoAgBBAUcEQCAIKAIAIAgoAgAoAjA2AjQLIAgoAgAgCCgCACgCLDYCMCASIDEoAgAiADYCACAIKAIAIAA2AiwFIAgoAgAgCCgCACgCMDYCNCAIKAIAIAgoAgAoAiw2AjAgCCgCACASKAIANgIsCwsgFyASKAIANgIIIBcgcSgCACAwKAIAQQBLBH8gCCgCACAwKAIAEN8BBUEAC2o2AgQgMCgCACAvKAIAakEUTwRAIAgoAgAQ2QEaCyBwKAIAQR9PQQBxBEAgCCgCABDZARoLIBcgWSgCACAvKAIAQQBLBH8gCCgCACAvKAIAEN8BBUEAC2o2AgAgCCgCABDZARogQyAIKAIAQUBrKAIAIBcoAgBqNgIAIAgoAgAhACByIBcoAgggQygCAEsEfyAAKAI8BSAAKAI4CzYCACAXIHIoAgAgQygCAGogFygCCGs2AgwgCCgCAEFAayBDKAIAIBcoAgRqNgIAIAgoAgAhACBCIAgoAgBBFGo2AgAgbCAANgIAIFggQigCACgCBCBCKAIAKAIAQQN0aikCADcCACBtIFgtAAM2AgAgbiBsKAIAIG0oAgAQ3AE2AgAgQigCACBYLwEAIG4oAgBqNgIAIAgoAgAhACBBIAgoAgBBJGo2AgAgaSAANgIAIFcgQSgCACgCBCBBKAIAKAIAQQN0aikCADcCACBqIFctAAM2AgAgayBpKAIAIGooAgAQ3AE2AgAgQSgCACBXLwEAIGsoAgBqNgIAIAgoAgAQ2QEaIAgoAgAhACBAIAgoAgBBHGo2AgAgZiAANgIAIFYgQCgCACgCBCBAKAIAKAIAQQN0aikCADcCACBnIFYtAAM2AgAgaCBmKAIAIGcoAgAQ3AE2AgAgQCgCACBWLwEAIGgoAgBqNgIAIDUgFykCADcCACA1IBcpAgg3AgggFSgCACEGIGIoAgAhBSBjKAIAIQQgTygCACEDIE4oAgAhAiA2KAIAIQEgDyBIIBAoAgBBBGtBA3FBBHRqIgApAAA3AAAgDyAAKQAINwAIIAwgBjYCACAtIAU2AgAgJCA3NgIAIFMgBDYCACA8IAM2AgAgVCACNgIAID0gATYCACAeIAwoAgAgDygCAGo2AgAgLiAPKAIAIA8oAgRqNgIAID4gDCgCACAuKAIAajYCACAgIC0oAgBBeGo2AgAgVSAkKAIAKAIAIA8oAgBqNgIAIA0gDygCDDYCAAJAID4oAgAgLSgCAEsEQCAdQbp/NgIABSBVKAIAIFMoAgBLBEAgHUFsNgIADAILIAwoAgAhBiAeKAIAICAoAgBLBEAgLSgCACEFICQoAgAhBCBTKAIAIQMgPCgCACECIFQoAgAhASA9KAIAIQAgISAPKQIANwIAICEgDykCCDcCCCAdIAYgBSAhIAQgAyACIAEgABCdBDYCAAwCCyAGICQoAgAoAgAQ/AIgDygCAEEISwRAIAwoAgBBCGogJCgCACgCAEEIaiAPKAIAQQhrEPsCCyAMIB4oAgA2AgAgJCgCACBVKAIANgIAAkAgDygCCCAeKAIAIDwoAgBrSwRAIA8oAgggHigCACBUKAIAa0sEQCAdQWw2AgAMBAsgDSgCACAPKAIEaiA9KAIATQRAIB4oAgAgDSgCACAPKAIEEPUHGiAdIC4oAgA2AgAMBAsgPyA9KAIAIA0oAgBrNgIAIB4oAgAgDSgCACA/KAIAEPUHGiAMIB4oAgAgPygCAGo2AgAgD0EEaiIAIAAoAgAgPygCAGs2AgAgDSA8KAIANgIAIAwoAgAgICgCAE0EQCAPKAIEQQNPDQILICVBADYCAANAICUoAgAgDygCBEkEQCAMKAIAICUoAgBqIA0oAgAgJSgCAGosAAA6AAAgJSAlKAIAQQFqNgIADAELCyAdIC4oAgA2AgAMAwsLIA8oAghBCEkEQCBlIA8oAghBAnRBkD1qKAIANgIAIAwoAgAgDSgCACwAADoAACAMKAIAIA0oAgAsAAE6AAEgDCgCACANKAIALAACOgACIAwoAgAgDSgCACwAAzoAAyANIA0oAgAgDygCCEECdEGwPWooAgBqNgIAIAwoAgBBBGogDSgCABCeBCANIA0oAgAgZSgCAGs2AgAFIAwoAgAgDSgCABD8AgsgDCAMKAIAQQhqNgIAIA0gDSgCAEEIajYCACAMKAIAIQACQCA+KAIAIC0oAgBBc2pLBEAgACAgKAIASQRAIAwoAgAgDSgCACAgKAIAIAwoAgBrEPsCIA0gDSgCACAgKAIAIAwoAgBrajYCACAMICAoAgA2AgALA0AgDCgCACA+KAIATw0CIA0gDSgCACIAQQFqNgIAIAAsAAAhASAMIAwoAgAiAEEBajYCACAAIAE6AAAMAAsABSAAIA0oAgAgDygCBEEIaxD7AgsLIB0gLigCADYCAAsLIEsgHSgCADYCACBLKAIAEM0BDQIgNSgCDBogSCAQKAIAQQNxQQR0aiIAIDUpAgA3AgAgACA1KQIINwIIIBUgFSgCACBLKAIAajYCACAQIBAoAgBBAWo2AgAMAQsLDAELIBQgSygCADYCACAUKAIAIQAgByQFIAAPCyAQKAIAICooAgBIBEAgFEFsNgIAIBQoAgAhACAHJAUgAA8LIBAgECgCACBJKAIAazYCAAJAAkADQCAQKAIAICooAgBIBEAgFSgCACEGIGIoAgAhBSBjKAIAIQQgTygCACEDIE4oAgAhAiA2KAIAIQEgDiBIIBAoAgBBA3FBBHRqIgApAAA3AAAgDiAAKQAINwAIIAogBjYCACArIAU2AgAgIiA3NgIAIFAgBDYCACA4IAM2AgAgUSACNgIAIDkgATYCACAcIAooAgAgDigCAGo2AgAgLCAOKAIAIA4oAgRqNgIAIDogCigCACAsKAIAajYCACAfICsoAgBBeGo2AgAgUiAiKAIAKAIAIA4oAgBqNgIAIAsgDigCDDYCAAJAIDooAgAgKygCAEsEQCAbQbp/NgIABSBSKAIAIFAoAgBLBEAgG0FsNgIADAILIAooAgAhBiAcKAIAIB8oAgBLBEAgKygCACEFICIoAgAhBCBQKAIAIQMgOCgCACECIFEoAgAhASA5KAIAIQAgISAOKQIANwIAICEgDikCCDcCCCAbIAYgBSAhIAQgAyACIAEgABCdBDYCAAwCCyAGICIoAgAoAgAQ/AIgDigCAEEISwRAIAooAgBBCGogIigCACgCAEEIaiAOKAIAQQhrEPsCCyAKIBwoAgA2AgAgIigCACBSKAIANgIAAkAgDigCCCAcKAIAIDgoAgBrSwRAIA4oAgggHCgCACBRKAIAa0sEQCAbQWw2AgAMBAsgCygCACAOKAIEaiA5KAIATQRAIBwoAgAgCygCACAOKAIEEPUHGiAbICwoAgA2AgAMBAsgOyA5KAIAIAsoAgBrNgIAIBwoAgAgCygCACA7KAIAEPUHGiAKIBwoAgAgOygCAGo2AgAgDkEEaiIAIAAoAgAgOygCAGs2AgAgCyA4KAIANgIAIAooAgAgHygCAE0EQCAOKAIEQQNPDQILICNBADYCAANAICMoAgAgDigCBEkEQCAKKAIAICMoAgBqIAsoAgAgIygCAGosAAA6AAAgIyAjKAIAQQFqNgIADAELCyAbICwoAgA2AgAMAwsLIA4oAghBCEkEQCBkIA4oAghBAnRBkD1qKAIANgIAIAooAgAgCygCACwAADoAACAKKAIAIAsoAgAsAAE6AAEgCigCACALKAIALAACOgACIAooAgAgCygCACwAAzoAAyALIAsoAgAgDigCCEECdEGwPWooAgBqNgIAIAooAgBBBGogCygCABCeBCALIAsoAgAgZCgCAGs2AgAFIAooAgAgCygCABD8AgsgCiAKKAIAQQhqNgIAIAsgCygCAEEIajYCACAKKAIAIQACQCA6KAIAICsoAgBBc2pLBEAgACAfKAIASQRAIAooAgAgCygCACAfKAIAIAooAgBrEPsCIAsgCygCACAfKAIAIAooAgBrajYCACAKIB8oAgA2AgALA0AgCigCACA6KAIATw0CIAsgCygCACIAQQFqNgIAIAAsAAAhASAKIAooAgAiAEEBajYCACAAIAE6AAAMAAsABSAAIAsoAgAgDigCBEEIaxD7AgsLIBsgLCgCADYCAAsLIGAgGygCADYCACBgKAIAEM0BQQBHIQAgYCgCACEBIAANAiAVIBUoAgAgAWo2AgAgECAQKAIAQQFqNgIADAELCwwBCyAUIAE2AgAgFCgCACEAIAckBSAADwsgKUEANgIAA0AgKSgCAEEDTw0CIBYoAgBBrOABaiApKAIAQQJ0aiARQSxqICkoAgBBAnRqKAIANgIAICkgKSgCAEEBajYCAAwACwALCyBMIGMoAgAgNygCAGs2AgAgTCgCACBiKAIAIBUoAgBrSwR/IBRBun82AgAgFCgCACEAIAckBSAABSAVKAIAIDcoAgAgTCgCABD0BxogFSAVKAIAIEwoAgBqNgIAIBQgFSgCACBhKAIAazYCACAUKAIAIQAgByQFIAALC44BAQJ/IwUhByMFQSBqJAUgB0EYaiIIIAA2AgAgB0EUaiIAIAE2AgAgB0EQaiIBIAI2AgAgB0EMaiICIAM2AgAgB0EIaiIDIAQ2AgAgB0EEaiIEIAU2AgAgByAGNgIAIAgoAgAg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IAMoAgAoAgQ2AgAgAigCAEHA4AFqIAMoAgAoAgQ2AgAgAigCAEHE4AFqIAMoAgAoAgQgAygCACgCCGo2AgAgAigCAEG44AFqIAIoAgBBxOABaigCADYCACACKAIAQYjhAWohACADKAIAQbjgAWooAgAEQCAAQQE2AgAgAigCAEGM4QFqQQE2AgAgAigCACADKAIAQQxqNgIAIAIoAgAgAygCAEGcMGo2AgQgAigCACADKAIAQZQgajYCCCACKAIAIAMoAgBBpNAAajYCDCACKAIAQazgAWogAygCAEGo4AFqKAIANgIAIAIoAgBBsOABaiADKAIAQazgAWooAgA2AgAgAigCAEG04AFqIAMoAgBBsOABaigCADYCAAUgAEEANgIAIAIoAgBBjOEBakEANgIACwsgBUEANgIAIAUoAgAhACAEJAUgAAvSAQEEfyMFIQMjBUEgaiQFIANBFGohBCADQRBqIgUgADYCACADQQxqIgYgATYCACADQQhqIgEgAjYCACADQQRqIgAgBSgCABCrBDYCACAAKAIAEM0BBEAgBCAAKAIANgIAIAQoAgAhACADJAUgAA8LIAMhACAGKAIAQQBHIAEoAgBBAEdxBEAgACAFKAIAIAYoAgAgASgCABCsBDYCACAAKAIAEM0BBEAgBEFiNgIAIAQoAgAhACADJAUgAA8LCyAEQQA2AgAgBCgCACEAIAMkBSAAC+gIAQt/IwUhBSMFQdAAaiQFIAVBzABqIQYgBUHIAGoiCCAANgIAIAVBxABqIgAgATYCACAFQUBrIgcgAjYCACAFQTxqIg0gAzYCACAFQThqIg4gBDYCACAFQTRqIgEgDSgCACgCADYCACAFQTBqIgogACgCADYCACAFQSxqIgwgCigCACAHKAIAajYCACAFQShqIgMgCigCADYCACAFQSRqIgIgDigCACgCADYCACACKAIAQQlJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAFQSBqIgkgASgCAEEFEPUDNgIAIAkoAgAQzQEEQCAGIAkoAgA2AgAgBigCACEAIAUkBSAADwsgAigCACAJKAIAQQNqSQRAIAZBuH82AgAgBigCACEAIAUkBSAADwsgBUEcaiIAIAgoAgAgASgCACAJKAIAEKgENgIAIAAoAgAQzQEEQCAGIAAoAgA2AgAgBigCACEAIAUk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ACANKAIAQQJ0aigCADYCACAOIBEoAgA2AgAgFCARKAIAIBAoAgBqNgIAIAogBC8BACATKAIAQQh0akH//wNxEOAEIAogDygCACAWKAIAajoAAiAKQQI6AAMDQCAVKAIAIQEgDiAOKAIAIgJBAWo2AgAgASACQQJ0aiAKKAEANgEAIA4oAgAgFCgCAEkNAAsgACANKAIAQQJ0aiIBIAEoAgAgECgCAGo2AgAgCyALKAIAQQFqNgIADAELCyAJJAULcwEDfyMFIQIjBUEQaiQFIAIhAyACQQRqIgQgADYCACACQQhqIgAgATsBACAEKAIAIQFBkOUALQAABEAgASAALgEAEOEEIAIkBQUgAyABNgIAIAMoAgAgAC4BADoAACADKAIAIAAvAQBBCHU6AAEgAiQFCwszAQF/IwUhAiMFQRBqJAUgAiAANgIAIAJBBGoiACABOwEAIAIoAgAgAC4AADsAACACJAULwgIBBn8jBSEFIwVB0ABqJAUgBUE8aiEGIAVBOGoiByAANgIAIAVBNGoiCCABNgIAIAVBMGoiCSACNgIAIAVBLGoiCiADNgIAIAVBKGoiACAENgIAIAVBJGoiASAHKAIANgIAIAVBIGoiAyABKAIAIAgoAgBqNgIAIAVBHGoiAiAAKAIAQQRqNgIAIAVBGGoiBCACKAIANgIAIAVBQGsiAiAAKAIAENIDIAVBBGoiByACLQACNgIAIAUiACAFQQhqIgIgCSgCACAKKAIAEL4ENgIAIAUoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgASgCACACIAMoAgAgBCgCACAHKAIAENgEGiACENUDBH8gBiAIKAIANgIAIAYoAgAhACAFJAUgAAUgBkFsNgIAIAYoAgAhACAFJAUgAAsLhgIBAn8jBSECIwVBEGokBSACQQRqIgEgADYCACABKAIAQaCoAWpBBTYCACABKAIAQcyoAWpBADYCACABKAIAQZCoAWpBADYCACABKAIAQZSoAWpBADYCACABKAIAQZioAWpBADYCACABKAIAQZyoAWpBADYCACABKAIAQYwoakGMgIDgADYCACABKAIAQdSoAWpBADYCACABKAIAQdCoAWpBADYCACABKAIAQbSpAWpBADYCACACIgBBADYCAANAIAAoAgBBA0gEQCABKAIAQaSoAWogACgC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ACIBIAEoAgAgBSgCAC0AAUEIdGo2AgALIAIgBSgCACAAKAIAQQFraiwAADoAACACLQAABEBBCCACLQAAENQBayEBIAMoAgAgATYCBCADKAIAQQRqIgEgASgCAEEEIAAoAgBrQQN0ajYCAAwCCyAGQX82AgAgBigCACEAIAQkBSAADwsACyAGIAAoAgA2AgAgBigCACEAIAQkBSAAC+MFAQl/IwUhBCMFQTBqJAUgBEEEaiEDIARBKGoiBiAANgIAIARBJGoiAiABNgIAIARBIGoiASACKAIAQRBqEMMEQf8BcTYCACAEQRxqIgcgAigCAEEgahDDBEH/AXE2AgAgBEEYaiIAIAIoAgBBGGoQwwRB/wFxNgIAIARBFGoiCCABKAIAQQJ0QbA0aigCADYCACAEQRBqIgkgBygCAEECdEHANWooAgA2AgAgBEEMaiIFIAAoAgA2AgAgBEEIaiIKIAgoAgAgCSgCAGogBSgCAGo2AgAgACgCAARAIAMgACgCAEECdEGgN2ooAgAgAigCACAFKAIAENwBajYCACACKAIAEMAEGgUgA0EANgIACyAEIQACQCADKAIAQQNJBEAgASgCAEUgAygCAEEBTXEEQCADQQEgAygCAGs2AgALIAIoAgBBKGohBSADKAIARQRAIAMgBSgCADYCAAwCCyAAIAUgAygCAEECdGooAgA2AgAgAygCAEEBRwRAIAIoAgAgAigCACgCLDYCMAsgAigCACACKAIAKAIoNgIsIAMgACgCACIANgIAIAIoAgAgADYCKAUgAyADKAIAQQJrNgIAIAIoAgAgAigCACgCLDYCMCACKAIAIAIoAgAoAig2AiwgAigCACADKAIANgIoCwsgBigCACADKAIANgIIIAcoAgBBAnRBoDhqKAIAIQMgBygCAEEfSwR/IAIoAgAgCSgCABDcAQVBAAshACAGKAIAIANBA2ogAGo2AgQgCSgCACAIKAIAakEYSwRAIAIoAgAQwAQaCyABKAIAQQJ0QYA6aigCACEDIAEoAgBBD0sEfyACKAIAIAgoAgAQ3AEFQQALIQAgBigCACADIABqNgIAIAooAgBBH0tBAXIEQCACKAIAEMAEGgsgAigCAEEQaiACKAIAEMQEIAIoAgBBIGogAigCABDEBCACKAIAEMAEGiACKAIAQRhqIAIoAgAQxAQgBCQFC+gI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QTBqIgcgACgCAEEGajYCACAFQSxqIhMgBygCACAKKAIAajYCACAFQShqIhQgEygCACALKAIAajYCACAFQSRqIhYgFCgCACAMKAIAajYCACAFQSBqIgAgECgCAEEDakEEbjYCACAFQRxqIg4gBCgCACAAKAIAajYCACAFQRhqIg8gDigCACAAKAIAajYCACAFQRRqIhEgDygCACAAKAIAajYCACAFQRBqIgMgBCgCADYCACAFQQxqIgQgDigCADYCACAFQQhqIgggDygCADYCACAFQQRqIg0gESgCADYCACAFQTRqIhUgCSgCACAKKAIAIAsoAgBqIAwoAgBqQQZqazYCACAVKAIAIAkoAgBLBEAgBkFsNgIAIAYoAgAhACAFJAUgAA8LIAVBiAFqIgAgBUH4AGoiCSAHKAIAIAooAgAQ8QQ2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAAIAVB6ABqIgogEygCACALKAIAEPEENgIAIAAoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgACAFQdgAaiILIBQoAgAgDCgCABDxBDYCACAAKAIAEMwBBEAgBiAAKAIANgIAIAYoAgAhACAFJAUgAA8LIAAgBUHIAGoiDCAWKAIAIBUoAgAQ8QQ2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAFIgAgCRDABCAKEMAEciALEMAEciAMEMAEcjYCAANAAkAgACgCAA0AIA0oAgAgEigCAEF5ak8NACADKAIAIAkgASgCACACKAIAENAEIQcgAyADKAIAIAdqNgIAIAQoAgAgCiABKAIAIAIoAgAQ0AQhByAEIAQoAgAgB2o2AgAgCCgCACALIAEoAgAgAigCABDQBCEHIAggCCgCACAHajYCACANKAIAIAwgASgCACACKAIAENAEIQcgDSANKAIAIAdqNgIAIAMoAgAgCSABKAIAIAIoAgAQ0AQhByADIAMoAgAgB2o2AgAgBCgCACAKIAEoAgAgAigCABDQBCEHIAQgBCgCACAHajYCACAIKAIAIAsgASgCACACKAIAENAEIQcgCCAIKAIAIAdqNgIAIA0oAgAgDCABKAIAIAIoAgAQ0AQhByANIA0oAgAgB2o2AgAgACAJEMAEIAoQwARyIAsQwARy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mNABaiAAKAIAIAIoAgBBkNABaigCACACKAIAQZTQAWooAgBrazYCACACKAIAQZTQAWogACgCADYCACACKAIAQZDQAWogACgCADYCACADJAUL/AYBCX8jBSEFIwVB0ABqJAUgBUHEAGohBiAFQUBrIgkgADYCACAFQTxqIgAgATYCACAFQThqIgogAjYCACAFQTRqIgggAzYCACAFQTBqIgcgBDYCACAFQSxqIgEgCCgCADYCACAFQShqIg0gASgCACAHKAIAajYCACAFQSRqIgsgACgCADYCACAFQSBqIgMgCygCADYCACAFQRxqIgwgCygCACAKKAIAajYCACAFQRhqIgIgBygCADYCACAHKAIAQQhJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAFQQhqIgAgCSgCACAIKAIAQQUQiAU2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAHKAIAIAAoAgBBA2pJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyABIAEoAgAgACgCAGo2AgAgAiACKAIAIAAoAgBrNgIAIAAgCSgCACAIKAIAIAAoAgAQiQU2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAFQRBqIQcgBUEEaiEEIAUhAAJAAkACQAJAAkACQAJAA0AgBEEANgIAIAAgASgCACANKAIAIAEoAgBrIAcQjgQ2AgAgACgCABDMAQ0BIAEgASgCAEEDajYCACACIAIoAgBBA2s2AgAgACgCACACKAIASw0CAkACQAJAAkACQAJAIAcoAgAOBAECAAMECwwICyAEIAkoAgAgAygCACAMKAIAIAMoAgBrIAEoAgAgACgCABCKBTYCAAwDCyAEIAMoAgAgDCgCACADKAIAayABKAIAIAAoAgAQqQQ2AgAMAgsgAigCAA0GDAELDAYLIAAoAgBFDQcgBCgCABDMAUEARyEKIAQoAgAhCCAKDQYgAyADKAIAIAhqNgIAIAEgASgCACAAKAIAajYCACACIAIoAgAgACgCAGs2AgAMAAsACyAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAGQX82AgAgBigCACEAIAUkBSAADwsgBkG4fzYCACAGKAIAIQAgBSQFIAAP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AgAgCigCACEAIAkkBSAADwsgBygCAEEKTQRAIAEgASgCACADKAIAajYCACANKAIAIAAgEigCACAHKAIAEJUFGgwBCyAKQWw2AgAgCigCACEAIAkkBSAADwsgCiABKAIAIAgoAgBrNgIAIAooAgAhACAJJAUgAAuuBQEFfyMFIQQjBUEgaiQFIARBFGohBSAEQRBqIgMgADYCACAEQQxqIgYgATYCACAEQQhqIgEgAjYCACABKAIAQQFJBEAgAygCACIAQgA3AgAgAEIANwIIIAVBuH82AgAgBSgCACEAIAQkBSAADwsgBEEEaiECIAQhACABKAIAQQRPIQcgAygCACAGKAIANgIMAkAgBwRAIAMoAgAgBigCACABKAIAakF8ajYCCCADKAIAKAIIEOEBIQAgAygCACAANgIAIAIgBigCACABKAIAQQFrai0AADYCACACKAIABEBBCCACKAIAENQBayEAIAMoAgAgADYCBAwCCyAFQX82AgAgBSgCACEAIAQkBSAADwUgAygCACADKAIAKAIMNgIIIAMoAgAgAygCACgCDC0AADYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgBBAmsOBgUEAwIBAAYLIAMoAgAiAiACKAIAIAMoAgAoAgwtAAZBEHRqNgIADAYLDAULDAULDAULDAULDAULDAULIAMoAgAiAiACKAIAIAMoAgAoAgwtAAVBCHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQAEajYCAAsgAygCACICIAIoAgAgAygCACgCDC0AA0EYdGo2AgALIAMoAgAiAiACKAIAIAMoAgAoAgwtAAJBEHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQABQQh0ajYCAAsgACAGKAIAIAEoAgBBAWtqLQAANgIAIAAoAgAEQEEIIAAoAgAQ1AFrIQAgAygCACAANgIEIAMoAgBBBGoiACAAKAIAQQQgASgCAGtBA3RqNgIADAILIAVBfzYCACAFKAIAIQAgBCQFIAAPCwALIAUgASgCADYCACAFKAIAIQAgBCQFIAALhQEBAn8jBSEDIwVBIGokBSADQRBqIgQgADYCACADQQxqIgAgATYCACADQQhqIgEgAjYCACADQQRqIgIgASgCADYCACADIAIoAgA2AgAgACgCACADKAIALwEAENwB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BiAANgIAIAVBDGoiACABNgIAIAVBCGoiASACNgIAIAVBBGoiAiADNgIAIAUgBDYCACAGKAIAIAAoAgAgASgCACACKAIAIAUoAgBBAEEAEK8FIQAgBSQFIAALxggBB38jBSEHIwVB0ABqJAUgB0HIAGoiCCAANgIAIAdBxABqIgAgATYCACAHQUBrIgsgAjYCACAHQTxqIgogAzYCACAHQThqIgkgBDYCACAHQTRqIgEgBTYCACAHQTBqIgUgBjYCACAHQSxqIgIgCigCADYCACAHQShqIg0gAigCACAJKAIAajYCACAHQSRqIgYgACgCADYCACAHQSBqIgQgBigCADYCACAHQRxqIgwgBigCACALKAIAajYCACAHQRhqIgMgCSgCADYCACAIKAIAELAFGiABKAIABEAgCCgCACABKAIAIAUoAgAQsQUgCCgCAEGY0ABqIAgoAgBBjNAAaigCADYCACAIKAIAQZTQAGogACgCACAIKAIAQYzQAGooAgAgCCgCAEGQ0ABqKAIAa2s2AgAgCCgCAEGQ0ABqIAAoAgA2AgAFIAgoAgBBmNAAaiAAKAIAIgA2AgAgCCgCAEGQ0ABqIAA2AgAgCCgCAEGU0ABqIAA2AgALIAdBzABqIQEgCSgCAEEISQRAIAFBuH82AgAgASgCACEAIAckBSAADwsgB0EIaiIAIAgoAgAgCigCAEEFELIFNgIAIAAoAgAQzAEEQCABIAAoAgA2AgAgASgCACEAIAckBSAADwsgCSgCACAAKAIAQQNqSQRAIAFBuH82AgAgASgCACEAIAckBSAADwsgAiACKAIAIAAoAgBqNgIAIAMgAygCACAAKAIAazYCACAAIAgoAgAgCigCACAAKAIAELMFNgIAIAAoAgAQzAEEQCABIAAoAgA2AgAgASgCACEAIAckBSAADwsgB0EQaiEJIAdBBGohBSAHIQACQAJAAkACQAJAAkACQANAIAVBADYCACAAIAIoAgAgDSgCACACKAIAayAJEI4ENgIAIAAoAgAQzAENASACIAIoAgBBA2o2AgAgAyADKAIAQQNrNgIAIAAoAgAgAygCAEsNAgJAAkACQAJAAkACQCAJKAIADgQBAgADBAsMCAsgBSAIKAIAIAQoAgAgDCgCACAEKAIAayACKAIAIAAoAgAQtAU2AgAMAwsgBSAEKAIAIAwoAgAg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AgAgBSgCACEAIAQkBSAADwsgBEEEaiECIAQhACABKAIAQQRPIQcgAygCACAGKAIANgIMAkAgBwRAIAMoAgAgBigCACABKAIAakF8ajYCCCADKAIAKAIIEL0FIQAgAygCACAANgIAIAIgBigCACABKAIAQQFrai0AADYCACACKAIABEBBCCACKAIAENQBayEAIAMoAgAgADYCBAwCCyAFQX82AgAgBSgCACEAIAQkBSAADwUgAygCACADKAIAKAIMNgIIIAMoAgAgAygCACgCDC0AADYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgBBAmsOBgUEAwIBAAYLIAMoAgAiAiACKAIAIAMoAgAoAgwtAAZBEHRqNgIADAYLDAULDAULDAULDAULDAULDAULIAMoAgAiAiACKAIAIAMoAgAoAgwtAAVBCHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQAEajYCAAsgAygCACICIAIoAgAgAygCACgCDC0AA0EYdGo2AgALIAMoAgAiAiACKAIAIAMoAgAoAgwtAAJBEHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQABQQh0ajYCAAsgACAGKAIAIAEoAgBBAWtqLQAANgIAIAAoAgAEQEEIIAAoAgAQ1AFrIQAgAygCACAANgIEIAMoAgBBBGoiACAAKAIAQQQgASgCAGtBA3RqNgIADAILIAVBfzYCACAFKAIAIQAgBCQFIAAPCwALIAUgASgCADYCACAFKAIAIQAgBCQFIAALdgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACADQQxqIgEgAygCACgBADYBACAAKAIAIAEvAQAQ3AEhASAEKAIAIAE2AgAgACgCABC6BRogBCgCACADKAIAQQRqNgIEIAMkBQvAAwEGfyMFIQMjBUEQaiQFIANBDGohAiADQQhqIgEgADYCACABKAIAKAIEQSBLBEAgAkEDNgIAIAIoAgAhACADJAUgAA8LIAEoAgAhBSABKAIAKAIIIAEoAgAoAgxBBGpPBEAgASgCAEEIaiIAIAAoAgAgBSgCBEEDdms2AgAgASgCAEEEaiIAIAAoAgBBB3E2AgAgASgCACgCCBC9BSEAIAEoAgAgADYCACACQQA2AgAgAigCACEAIAMk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QCACKAIIQQRPDQILA0AgCCgCACAGKAIASQRAIAEgASgCACIAQQFqNgIAIAAsAAAhACAIIAgoAgAiAkEBajYCACACIAA6AAAMAQsLIAogBSgCADYCACAKKAIAIQAgCSQFIAAPCwsgAigCBEEISQRAIAAgAigCBEECdEGQPWooAgA2AgAgCCgCACABKAIALAAAOgAAIAgoAgAgASgCACwAAToAASAIKAIAIAEoAgAsAAI6AAIgCCgCACABKAIALAADOgADIAEgASgCACACKAIEQQJ0QbA9aigCAGo2AgAgCCgCAEEEaiABKAIAEJ4EIAEgASgCACAAKAIAazYCAAUgCCgCACABKAIAEPwCCyAIIAgoAgBBCGo2AgAgASABKAIAQQhqNgIAIAgoAgAhAAJAIAYoAgAgCygCAEF0aksEQCAAIAQoAgBJBEAgCCgCACABKAIAIAQoAgAgCCgCAGsQ+wIgASABKAIAIAQoAgAgCCgCAGtqNgIAIAggBCgCADYCAAsDQCAIKAIAIAYoAgBPDQIgASABKAIAIgBBAWo2AgAgACwAACEAIAggCCgCACICQQFqNgIAIAIgADoAAAwACwAFIAAgASgCACACKAIIQQhrEPsCCwsgCiAFKAIANgIAIAooAgAhACAJJAUgAAs3AQJ/IwUhASMFQRBqJAUgASAANgIAIAFBBGoiAiABKAIAIgAQkAQ2AgAgAigCACEAIAEkBSAAC40LARB/IwUhBSMFQdAAaiQFIAVBQGshBiAFQTxqIhIgADYCACAFQThqIg8gATYCACAFQTRqIgggAjYCACAFQTBqIgAgAzYCACAFQSxqIhAgBDYCACAFQShqIg4gACgCADYCACAFQSRqIgsgDigCACAQKAIAajYCACAFQSBqIgIgDigCADYCACAFQQhqIglBADYCACAFQQRqIhNBADYCACAQKAIAQQRJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAFQRBqIgMgAigCABCQBDYCACAFQRxqIgQgAygCAEEPcUEFajYCACAEKAIAQQ9KBEAgBkFUNgIAIAYoAgAhACAFJAUgAA8LIAUhACAFQcYAaiERIAVBxABqIQcgAyADKAIAQQR2NgIAIAVBDGoiAUEENgIAIAgoAgAgBCgCADYCACAFQRhqIgxBASAEKAIAdEEBajYCACAFQRRqIghB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CyABQQRqIgAgACgCACABKAIEQQR2ajYCACABQQhqIgAgACgCACABKAIIQQN2ajYCACABKAIEIAEoAgBJBEAgA0EBNgIACyAFIAcoAgAgBigCACAIKAIAIAIoAgAgAygCAEECdEHE5QBqKAIAQQ9xQagBahEIADYCACAFKAIAIQAgBCQFIAALrQIBBn8jBSEEIwVBoMAAaiQFIARBnMAAaiEFIARBmMAAaiIHIAA2AgAgBEGUwABqIgggATYCACAEQZDAAGoiBiACNgIAIARBjMAAaiIBIAM2AgAgBCIAQQBBgsAAEPYHGiAEQQw7AQAgBEGIwABqIgMgBigCADYCACAEQYTAAGoiAiAEIAYoAgAgASgCABDLBTYCACACKAIAEMwBQQBHIQkgAigCACEGIAkEQCAFIAY2AgAgBSgCACEAIAQkBSAADwsgBiABKAIATwR/IAVBuH82AgAgBSgCACEAIAQkBSAABSADIAMoAgAgAigCAGo2AgAgASABKAIAIAIoAgBrNgIAIAUgBygCACAIKAIAIAMoAgAgASgCACAAEMwFNgIAIAUoAgAhACAEJAUgAAsLrQIBBn8jBSEEIwVBoIABaiQFIARBnIABaiEFIARBmIABaiIHIAA2AgAgBEGUgAFqIgggATYCACAEQZCAAWoiBiACNgIAIARBjIABaiIBIAM2AgAgBCIAQQBBhIABEPYHGiAEQQw2AgAgBEGIgAFqIgMgBigCADYCACAEQYSAAWoiAiAEIAYoAgAgASgCABDDBTYCACACKAIAEMwBQQBHIQkgAigCACEGIAkEQCAFIAY2AgAgBSgCACEAIAQkBSAADwsgBiABKAIATwR/IAVBuH82AgAgBSgCACEAIAQkBSAABSADIAMoAgAgAigCAGo2AgAgASABKAIAIAIoAgBrNgIAIAUgBygCACAIKAIAIAMoAgAgASgCACAAEMQFNgIAIAUoAgAhACAEJAUgAAsLhQoBG38jBSEDIwVB0BBqJAUgA0HIEGohBiADQcQQaiIEIAA2AgAgA0HAEGoiACABNgIAIANBvBBqIgEgAjYCACADQZAJaiICQgA3AwAgAkIANwMIIAJCADcDECACQgA3AxggAkIANwMgIAJCADcDKCACQgA3AzAgAkIANwM4IAJBQGtBADYCACADQcAIaiIHQgA3AwAgB0IANwMIIAdC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AigCAEECdGooAgA2AgAgCiAELgEAEOAEIAogFigCADoAAiAKQQE6AAMgDEEANgIAA0AgDCgCACASKAIATw0CIBUoAgAgDCgCAEECdGogCigBADYBACAMIAwoAgBBAWo2AgAMAAsACwsgC0EANgIAA0AgCygCACAFKAIASQRAIBMgAygCACALKAIAQQF0ai0AADYCACANIAMoAgAgCygCAEEBdGotAAE2AgAgDyAGKAIAIA0oAgBrNgIAIBBBASAXKAIAIA8oAgBrdDYCACARIAAgDSgCAEECdGooAgA2AgAgDiARKAIANgIAIBQgESgCACAQKAIAajYCACAKIAQvAQAgEygCAEEIdGpB//8DcRDgBCAKIA8oAgAgFigCAGo6AAIgCkECOgADA0AgFSgCACEBIA4gDigCACICQQFqNgIAIAEgAkECdGogCigBADYBACAOKAIAIBQoAgBJDQALIAAgDSgCAEECdGoiASABKAIAIBAoAgBqNgIAIAsgCygCAEEBajYCAAwBCwsgCSQFC6YDAQh/IwUhBCMFQcCEAWokBSAEQbSEAWohBSAEQbCEAWoiByAANgIAIARBrIQBaiIIIAE2AgAgBEGohAFqIgEgAjYCACAEQaSEAWoiAiADNgIAIARBoIQBaiIAIAEoAgA2AgAgBEGchAFqIgMgACgCADYCACAEQZSEAWoiBkH/ATYCACACKAIAQQJJBEAgBUG4fzYCACAFKAIAIQAgBCQFIAAPCyAEQZCEAWoiASAEQZCAAWoiCSAGIARBmIQBaiIKIAAoAgAgAigCABC+BTYCACABKAIAEMwBQQBHIQsgASgCACEAIAsEQCAFIAA2AgAgBSgCACEAIAQkBSAADwsgACACKAIATwRAIAVBuH82AgAgBSgCACEAIAQkBSAADwsgAyADKAIAIAEoAgBqNgIAIAIgAigCACABKAIAazYCACABIAQiACAJIAYoAgAgCigCABCVBTYCACABKAIAEMwBBH8gBSABKAIANgIAIAUoAgAhACAEJAUgAAUgBSAHKAIAIAgoAgAgAygCACACKAIAIAAQygU2AgAgBSgCACEAIAQkBSAACwuNDgEkfyMFIQUjBUHAAWokBSAFQbgBaiEQIAVBtAFqIRsgBUGwAWohHCAFQawBaiEdIAVBqAFqIR4gBUGkAWohFSAFQaABaiEKIAVB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AWogADYCACAFKAIAQejhAWooAgAQzQFBAEchAyAFKAIAIQAgAwRAIAYgAEHo4QFqKAIANgIAIAYoAgAhACAHJAUgAA8FIABB3OIJaiACKAIAIAEoAgAQ9AcaIAUoAgBByOABaiAFKAIAQejhAWooAgAgASgCAGs2AgAgBSgCAEGE4QFqQQE2AgAgBkEANgIAIAYoAgAhACAHJAUgAA8LAAsgBSgCAEHc4glqIAUoAgBB6OEBaigCACABKAIAa2ogAigCACABKAIAEPQHGiALIAUoAgAgBSgCAEHc4glqIAUoAgBB6OEBaigCABCoBDYCACALKAIAEM0BBEAgBiALKAIANgIAIAYoAgAhACAHJAUgAA8FIAUoAgBByOABakEDNgIAIAUoAgBBhOEBakECNgIAIAZBADYCACAGKAIAIQAgByQFIAAPCwALIAogAigCAEEDIAQQhwQ2AgAgCigCABDNAUEARyEBIAooAgAhACABBEAgBiAANgIAIAYoAgAhACAHJAUgAA8LIAUoAgBByOABaiAANgIAIAUoAgBBgOEBaiAEKAIANgIAIAUoAgBBiOIBaiAEKAIINgIAIAQoAgRBAEchACAKKAIABEAgBSgCAEGE4QFqIAAEf0EEBUEDCzYCACAGQQA2AgAgBigCACEAIAckBSAADwsgBSgCACEBIAAEQCAFKAIAQcjgAWohACABQfDgAWooAgAEQCAAQQQ2AgAgBSgCAEGE4QFqQQU2AgAFIABBADYCACAFKAIAQYThAWpBADYCAAsFIAFByOABakEDNgIAIAUoAgBBhOEBakECNgIACyAGQQA2AgAgBigCACEAIAckBSAADwsCQAJAAkACQAJAIAUoAgBBgOEBaigCAA4DAQIAAwsgAyAFKAIAIAgoAgAgCSgCACACKAIAIAEoAgBBARCXBDYCAAwDCyADIAgoAgAgCSgCACACKAIAIAEoAgAQqQQ2AgAMAgsgAyAIKAIAIAkoAgAgAigCACABKAIAIAUoAgBBiOIBaigCABDUBTYCAAwBCyAGQWw2AgAgBigCACEAIAckBSAADwsgAygCABDNAUEARyEBIAMoAgAhACABBEAgBiAANgIAIAYoAgAhACAHJAUgAA8LIAUoAgBB+OABaiIBIAEpAwAgAK18NwMAIAUoAgBB8OABaigCAARAIAUoAgBBkOEBaiAI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AygCAEGE4QFqQQI2AgALIAMoAgBB2OABaiADKAIAQdjgAWopAwBCgAhWBH4gAygCAEHY4AFqKQMABUKACAs3AwAgAygCAEHY4AFqKQMAIAMoAgBBrOIBaigCAK1WBEBBNCEBDAULIBkgAygCAEHg4AFqKAIAQQRLBH8gAygCAEHg4AFqKAIABUEECyIGNgIAIBogAygCAEHY4AFqKQMAIAMoAgBB0OABaikDABDjBTYCAAJAAkAgAygCAEGk4gFqKAIAIBkoAgBJDQAgAygCAEG04gFqKAIAIBooAgBJDQAMAQsgIiAZKAIAIBooAgBqNgIAIAMoAgBBjOIBaigCAARAICIoAgAgAygCAEGM4gFqKAIAQfDiCWtLBEBBOyEBDAcLBSADKAIAQaDiAWooAgAhBiANIAMoAgBB+OEBaiIOKQIANwIAIA0gDigCCDYCCCAGIA0Q7wEgAygCAEGk4gFqQQA2AgAgAygCAEG04gFqQQA2AgAgIigCACEGIA0gAygCAEH44QFqIg4pAgA3AgAgDSAOKAIINgIIIAYgDRDtASEGIAMoAgBBoOIBaiAGNgIAIAMoAgBBoOIBaigCAEUEQEE9IQEMBwsLIAMoAgBBpOIBaiAZKAIANgIAIAMoAgBBsOIBaiADKAIAQaDiAWooAgAgAygCAEGk4gFqKAIAajYCACADKAIAQbTiAWogGigCADYCAAsgAygCAEGc4gFqQQI2AgALIBEgAygCABDRBTYCACARKAIARQRAIAMoAgBBnOIBakEANgIAIAFBADYCAAwDCyALKAIAIAIoAgBrIBEoAgBJBEAgAigCACALKAIARgRAIAFBADYCAAwEBSADKAIAQZziAWpBAzYCAAwCCwALICMgAygCABDnBTYCACASIAMoAgAiDiADKAIAQbDiAWooAgAgAygCAEG44gFqKAIAaiAjKAIABH9BAAUgAygCAEG04gFqKAIAIAMoAgBBuOIBaigCAGsLIgYgAigCACARKAIAENMFNgIAIBIoAgAQzQEEQEHGACEBDAQLIAIgAigCACARKAIAajYCACASKAIAICMoAgByBEAgAygCAEG84gFqIAMoAgBBuOIBaigCACASKAIAajYCACADKAIAQZziAWpBBDYCAAsMAgsgJCADKAIAENEFNgIAIBMgJCgCACADKAIAQajiAWooAgBrNgIA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NgIAIAMoAgAhASAAKAIABEAgARDSBUECRkEDbCEBIAAgACgCACABajYCACAAIAAoAgAgAygCAEGo4gFqKAIAazYCACAFIAAoAgA2AgAgBSgCACEAIAQkBSAADwsgAygCAEHQ4gFqKAIAQQBHIQAgAUG84gFqKAIAIAMoAgBBuOIBaigCAEcEQCAARQRAIAcoAgBBCGoiACAAKAIAQX9qNgIAIAMoAgBB0OIBakEBNgIACyAFQQE2AgAgBSgCACEAIAQkBSAADwsCQCAABEAgBygCACgCCCAHKAIAKAIESQRAIAcoAgBBCGoiACAAKAIAQQFqNgIADAILIAMoAgBBnOIBakECNgIAIAVBATYCACAFKAIAIQAgBCQFIAAPCwsgBUEANgIAIAUoAgAhACAEJAUgAA8LQQALvggBHH8jBSEEIwVBgAFqJAUgBEHwAGohBiAEQdwAaiEQIARB2ABqIREgBEHUAGohCCAEQdAAaiESIARBzABqIQkgBEHIAGohEyAEQcQAaiEUIARBQGshFSAEQTxqIQogBEE4aiEWIARBNGohCyAEQTBqIRcgBEEsaiEYIARBKGohGSAEQSRqIQwgBEEgaiEaIARBHGohDSAEQRhqIRsgBEEUaiEcIARBEGohHSAEQQxqIQ4gBEEIaiEeIARBBGohDyAEIR8gBEHsAGoiByAANgIAIARB6ABqIgAgATYCACAEQeQAaiIFIAI2AgAgBEHgAGoiASADNgIAAkACQAJAAkACQCAAKAIAQQRrDgQDAgEABAsgHCAHKAIANgIAIB0gASgCACgCACABKAIAKAIIajYCACAOIAEoAgAoAgQgASgCACgCCGs2AgAgHiAFKAIAKAIAIAUoAgAoAghqNgIAIA8gBSgCACgCBCAFKAIAKAIIazYCACAfIBwoAgAgHigCACAPIB0oAgAgDhD4BTYCACAFKAIAQQhqIgAgACgCACAPKAIAajYCACABKAIAQQhqIgAgACgCACAOKAIAajYCACAGIB8oAgA2AgAgBigCACEAIAQkBSAADwsgGCAHKAIANgIAIBkgASgCACgCACABKAIAKAIIajYCACAMIAEoAgAoAgQgASgCACgCCGs2AgAgGiAFKAIAKAIAIAUoAgAoAghqNgIAIA0gBSgCACgCBCAFKAIAKAIIazYCACAbIBgoAgAgGigCACANIBkoAgAgDBD3BTYCACAFKAIAQQhqIgAgACgCACANKAIAajYCACABKAIAQQhqIgAgACgCACAMKAIAajYCACAGIBsoAgA2AgAgBigCACEAIAQkBSAADwsgFCAHKAIANgIAIBUgASgCACgCACABKAIAKAIIajYCACAKIAEoAgAoAgQgASgCACgCCGs2AgAgFiAFKAIAKAIAIAUoAgAoAghqNgIAIAsgBSgCACgCBCAFKAIAKAIIazYCACAXIBQoAgAgFigCACALIBUoAgAgChD2BTYCACAFKAIAQQhqIgAgACgCACALKAIAajYCACABKAIAQQhqIgAgACgCACAKKAIAajYCACAGIBcoAgA2AgAgBigCACEAIAQkBSAADwsgECAHKAIANgIAIBEgASgCACgCACABKAIAKAIIajYCACAIIAEoAgAoAgQgASgCACgCCGs2AgAgEiAFKAIAKAIAIAUoAgAoAghqNgIAIAkgBSgCACgCBCAFKAIAKAIIazYCACATIBAoAgAgEigCACAJIBEoAgAgCBD1BTYCACAFKAIAQQhqIgAgACgCACAJKAIAajYCACABKAIAQQhqIgAgACgCACAIKAIAajYCACAGIBMoAgA2AgAgBigCACEAIAQkBSAADwsgBkF0NgIAIAYoAgAhACAEJAUgAAuRBQEGfyMFIQUjBUEwaiQFIAVBIGoiBiAANgIAIAVBHGoiByABNgIAIAVBGGoiCCACNgIAIAVBFGoiCSADNgIAIAVBEGoiAyAENgIAIAcoAgAgCCgCAEcEQCAGKAIAKAIAIAcoAgAQ7AMaCyAFQSRqIQEgBUEMaiECIAVBCGohBCAFQQRqIQogBSEAAkACQAJAAkACQCAIKAIAQQRrDgQDAgEABAsgACAHKAIAIAgoAgBHBH8Q7wUFIAYoAgAoAgALNgIAIAAoAgAEQCAAKAIAIAkoAgAgAygCABDwBRogBigCACAAKAIANgIAIAFBADYCACABKAIAIQAgBSQFIAAPBSABQUA2AgAgASgCACEAIAUkBSAADwsACyAKIAcoAgAgCCgCAEcEfxDtBQUgBigCACgCAAs2AgAgCigCAARAIAooAgAgCSgCACADKAIAEO4FGiAGKAIAIAooAgA2AgAgAUEANgIAIAEoAgAhACAFJAUgAA8FIAFBQDYCACABKAIAIQAgBSQFIAAPCwALIAQgBygCACAIKAIARwR/EOsFBSAGKAIAKAIACzYCACAEKAIABEAgBCgCACAJKAIAIAMoAgAQ7AUaIAYoAgAgBCgCADYCACABQQA2AgAgASgCACEAIAUkBSAADwUgAUFANgIAIAEoAgAhACAFJAUgAA8LAAsgAiAHKAIAIAgoAgBHBH8Q9AUFIAYoAgAoAgALNgIAIAIoAgAEQCACKAIAEOkFGiACKAIAIAkoAgAgAygCABDqBRogBigCACACKAIANgIAIAFBADYCACABKAIAIQAgBSQFIAAPBSABQUA2AgAgASgCACEAIAUkBSAADwsACyABQQA2AgAgASgCACEAIAUkBSAACy4BAX8jBSEBIwVBEGokBSABIAA2AgAgASgCAEGE4QFqKAIAQQdGIQAgASQFIAALhwEBBH8jBSEEIwVBIGokBSAEQRBqIgYgADYCACAEQQxqIgUgATYCACAEQQhqIgcgAjYCACAEQQRqIgEgAzYCACAFKAIAIQIgASgCACEDIAQiACAFKAIAIAEoAgBJBH8gAgUgAws2AgAgBigCACAHKAIAIAAoAgAQ9AcaIAAoAgAhACAEJAUgAAsmAQF/IwUhASMFQRBqJAUgASAANgIAIAEoAgAQ8wUhACABJAUgAAtIAQJ/IwUhAyMFQRBqJAUgA0EIaiIEIAA2AgAgA0EEaiIAIAE2AgAgAyACNgIAIAQoAgAgACgCACADKAIAEPIFIQAgAyQFIAALzAEBBH8jBSECIwVBEGokBSACQQRqIQMgAiIBQeAAEIYGNgIAIAEoAgAEfyABKAIAIgBCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEFAa0IANwMAIABCADcDSCAAQgA3A1AgAEIANwNYELAEIQAgASgCACAANgIAIAEoAgBBADYCUCADIAEoAgA2AgAgAygCACEBIAIkBSABBSADQQA2AgAgAygCACEBIAIkBSABCwt9AQJ/IwUhBCMFQRBqJAUgBEEIaiIDIAA2AgAgBEEEaiIAIAE2AgAgBCACNgIAIAMoAgBBATYCUCADKAIAQQA2AkggAygCAEEANgJEIAMoAgBBADYCOCADKAIAQQA2AkwgAygCACgCACAAKAIAIAQoAgAQhQUhACAEJAUgAAu+AQEEfyMFIQIjBUEQaiQFIAJBBGohAyACIgFB0AAQhgY2AgAgASgCAAR/IAEoAgAiAEIANwMAIABCADcDCCAAQgA3AxAgAEIANwMYIABCADcDICAAQgA3AyggAEIANwMwIABCADcDOCAAQUBrQgA3AwAgAEIANwNIELIEIQAgASgCACAANgIAIAEoAgBBADYCGCADIAEoAgA2AgAgAygCACEBIAIkBSABBSADQQA2AgAgAygCACEBIAIkBSABCwt9AQJ/IwUhBCMFQRBqJAUgBEEIaiIDIAA2AgAgBEEEaiIAIAE2AgAgBCACNgIAIAMoAgBBATYCGCADKAIAQQA2AjQgAygCAEEANgIwIAMoAgBBADYCJCADKAIAQQA2AkwgAygCACgCACAAKAIAIAQoAgAQ6gQhACAEJAUgAAs0AQJ/IwUhACMFQRBqJAUgAEGg5QApAgA3AgAgAEGo5QAoAgA2AgggABDxBSEBIAAkBSABC30BAn8jBSEEIwVBEGokBSAEQQhqIgMgADYCACAEQQRqIgAgATYCACAEIAI2AgAgAygCAEEBNgIgIAMoAgBBADYCPCADKAIAQQA2AjggAygCAEEANgIsIAMoAgBBADYCWCADKAIAKAIAIAAoAgAgBCgCABC2BCEAIAQkBSAAC5wDAQV/IwUhBCMFQSBqJAUgACgCAEUEQCAAKAIERQRAIABBoOUAKQIANwIAIABBqOUAKAIANgIICwsgBEEIaiEFIARBBGohAiAEIQMgACgCAARAIAAoAgQEQCADIAAoAghB6AAgACgCAEE/cUHIAGoRBwA2AgAgAygCAEUEQCACQQA2AgAgAigCACEAIAQkBSAADwsgAygCACIBQgA3AwAgAUIANwMIIAFCADcDECABQgA3AxggAUIANwMgIAFCADcDKCABQgA3AzAgAUIANwM4IAFBQGtCADcDACABQgA3A0ggAUIANwNQIAFCADcDWCABQgA3A2AgAygCAEHcAGoiASAAKQIANwIAIAEgACgCCDYCCCAFIAApAgA3AgAgBSAAKAIINgIIIAUQ5wQhACADKAIAIAA2AgAgAygCACEAIAMoAgAoAgAEQCAAQQA2AiAgAiADKAIANgIAIAIoAgAhACAEJAUgAA8FIAAQ8AMaIAJBADYCACACKAIAIQAgBCQFIAAPCwALCyACQQA2AgAgAigCACEAIAQkBSAAC04B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AAAAAAAAAGIEfyAARAAAAAAAAPBDoiABEKkGIQAgASgCAEFAagVBAAsiAjYCAAwBCyABIASnQf8PcUGCeGo2AgAgA0L/////////h4B/g0KAgICAgICA8D+EvyEACyAAC6UCAAJ/IAAEfyABQYABSQRAIAAgAToAAEEBDAILQZDpACgCACgCAEUEQCABQYB/cUGAvwNGBEAgACABOgAAQQEMAwVByLUBQdQANgIAQX8MAwsACyABQYAQSQRAIAAgAUEGdkHAAXI6AAAgACABQT9xQYABcjoAAUECDAILIAFBgLADSSABQYBAcUGAwANGcgRAIAAgAUEMdkHgAXI6AAAgACABQQZ2QT9xQYABcjoAASAAIAFBP3FBgAFyOgACQQMMAgsgAUGAgHxqQYCAwABJBH8gACABQRJ2QfABcjoAACAAIAFBDHZBP3FBgAFyOgABIAAgAUEGdkE/cUGAAXI6AAIgACABQT9xQYABcjoAA0EEBUHItQFB1AA2AgBBfwsFQQELCwuTAQECfwJAAkACQANAIAJB8MUAai0AACAARg0BIAJBAWoiAkHXAEcNAAtB1wAhAgwBCyACDQBB0MYAIQAMAQtB0MYAIQADQCAAIQMDQCADQQFqIQAgAywAAARAIAAhAwwBCwsgAkF/aiICDQALCyABKAIUIgEEfyABKAIAIAEoAgQgABCZBgVBAAsiAQR/IAEFIAALC/MBAQR/AkACQCACQRBqIgQoAgAiAw0AIAIQrQYEf0EABSAEKAIAIQMMAQshAgwBCyADIAJBFGoiBSgCACIEayABSQRAIAIgACABIAIoAiRBH3FBiAFqEQUAIQIMAQsCfyACLABLQQBIIAFFcgR/QQAFIAEhAwNAIAAgA0F/aiIGaiwAAEEKRwRAIAYEQCAGIQMMAgVBAAwECwALCyACIAAgAyACKAIkQR9xQYgBahEFACICIANJDQIgACADaiEAIAEgA2shASAFKAIAIQQgAwsLIQIgBCAAIAEQ9AcaIAUgBSgCACABajYCACACIAFqIQILIAILawECfyAAQcoAaiICLAAAIQEgAiABQf8BaiABcjoAACAAKAIAIgFBCHEEfyAAIAFBIHI2AgBBfwUgAEEANgIIIABBADYCBCAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQQQALIgALOwECfyAA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QXhqKAIAIQggCUH/AXEhCSACQWhqIAYEfyAMBSAHCyAGBH8gCAUgCQsQ4QYaIAAoAgBBaGoiACwAC0EASARAIAAoAgAhAAsgASAAIAQQ9AcaIAEgBGpBADoAAEEAIQALIAMEQCADIAA2AgALIAVBIGoQ4gYgBUEQahDjBiAFEN8GIApBgCBqQQA2AgAMAQsgAwR/IANBfTYCAEEABUEACyEBCyALJAUgAQuPAQECfyMFIQIjBUEQaiQFIAIgATYCACAAQQA2AgAgAEEANgIEIABBADYCCCAAIAIoAgA2AgwgAiABENsGIABBEGoiA0EANgIAIANBADYCBCADQQA2AgggAyACKAIANgIMIAIgATYCACAAQSBqIgBBADYCACAAQQA2AgQgAEEANgIIIAAgAigCADYCDCACJAULCQAgACABNgIAC9sBAQl/IwUhBSMFQSBqJAUgBUEUaiEGIAUhBEH/////ACIHIABBBGoiCCgCACAAKAIAa0EEdUEBaiIDSQRAECgFIAAoAgggACgCACIJayICQQR1IAdBAXZJIQogAkEDdSICIANPBEAgAiEDCyAAQQxqIQIgBCAKBH8gAwUgBwsgCCgCACAJa0EEdSACENwHIARBCGoiAygCACECIAYgARDbBiACQQA2AgAgAkEANgIEIAJBADYCCCACIAYoAgA2AgwgAyACQRBqNgIAIAAgBBDdByAEEN4HIAUkBQsLtgIBAX8CQCAAIAFJBEACQCAALAAAQd8ARgRAIAEgAGtBA0wEQCADQX42AgAMBAsCQAJAAkACQAJAIAAsAAFB2gBrDgYAAgICAgECCyAAQQJqIgQgASACEOwGIgAgBEYgACABRnJFBEAgACwAAEEuRgRAIAAgASACEO0GIQALCyAAIAFGDQUgA0F+NgIADAcLDAELDAELIAAsAAJB3wBGBEAgACwAA0HaAEYEQCAAQQRqIgQgASACEOwGIgAgBEYgACABRnIEQCADQX42AgAMBwsgACABIAIQ7gYgAUYNBCADQX42AgAMBgsLCyADQX42AgAMAwUgACABIAIQ7wYgAUcEQCADQX42AgAMBAsLCyADKAIARQRAIAIoAgAgAigCBEYEQCADQX42AgALCwUgA0F+NgIACwsLDwAgAEEMahDrBiAAEOsGC1IBA38gACgCACICBEAgAEEEaiIDKAIAIQED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aiEADAELCyADIAZBDGoiAEECEPwGQduZARCWBiECIAMoAgQhBSADLAALIg1B/wFxIQ4gAiANQQBIBH8gBQUgDgtGBEAgA0HbmQEgAhD9BkUhAiADEOsGIAIEQCAAEOQHCwUgAxDrBgsgBCAJEIAHIARBAEHbmQEQ8gYaIAogBCkCADcCACAKIAQoAgg2AghBACECA0AgAkEDRwRAIAQgAkECdGpBADYCACACQQFqIQIMAQsLIApBkpoBEPMGGiAIIAopAgA3AgAgCCAKKAIINgIIQQAhAgNAIAJBA0cEQCAKIAJBAnRqQQA2AgAgAkEBaiECDAELCyAALAALIgVBAEghAiAAKAIAIQ0gBigCECEOIAVB/wFxIQUgCCACBH8gDQUgAAsgAgR/IA4FIAULEOEGGiAMIAgpAgA3AgAgDCAIKAIINgIIQQAhAANAIABBA0cEQCAIIABBAnRqQQA2AgAgAEEBaiEADAELCyAHKAIAIgJBdGoiAEELaiIHLAAAQQBIBEAgACgCACEHIANBADoAACAHIAMQ6AYgAkF4akEANgIABSADQQA6AAAgACADEOgGIAdBADoAAAsgABCOByAAIAwpAgA3AgAgACAMKAIINgIIQQAhAANAIABBA0cEQCAMIABBAnRqQQA2AgAgAEEBaiEADAELCyAMEOsGIAgQ6wYgChDrBiAEEOsGIAkQ3gYgBhDeBiABIQALCwsLCwsLCyALJAUgAAtEAQF/IABBADYCACAAQQRqIgNBADYCACAAQQA2AgggACACKAIANgIMIAAQ4wcgAygCACABEPQGIAMgAygCAEEYajYCAAuSAgEIfyMFIQcjBUEgaiQFIAchBUH/////ACIIIABBBGoiCSgCACAAKAIAa0EEdUEBaiIDSQRAECgFIAAoAgggACgCACIEayICQQR1IAhBAXZJIQYgAkEDdSICIANPBEAgAiEDCyAAQQxqIQIgBSAGBH8gAwUgCAsgCSgCACAEa0EEdSACENwHIAVBCGoiBigCACIEQQA2AgAgBEEEaiICQQA2AgAgBEEIaiIDQQA2AgAgBCABKAIMNgIMIAQgASgCADYCACACIAFBBGoiAigCADYCACADIAFBCGoiAygCADYCACADQQA2AgAgAkEANgIAIAFBADYCACAGIARBEGo2AgAgACAFEN0HIAUQ4gcgByQFCwvr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QfeZARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDBYLIANCADcCACADQQA2AgggA0GimgFBopoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMFQsgA0IANwIAIANBADYCCCADQaWaAUGlmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwUCyAAIAEgAhCVByEADBMLIAAgASACEJYHIQAMEgsMEQsCQAJAAkACQAJAAkAgBCwAAUHjAGsOFAAFBQUFBQUFBQECBQMFBQUFBQUEBQsgACABIAIQlwchAAwVCyAAIAEgAhCYByEADBQLIANCADcCACADQQA2AgggA0GnmgFBp5oBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMEwsgA0IANwIAIANBADYCCCADQamaAUGpmgEQlgYQjAcgAEECaiIEIAEgAyACEJQHIQEgAxDrBiABIARHBEAgASEACwwSCyAAIAEgAhCZByEADBELDBALAkACQAJAAkACQAJAAkACQAJAAkAgBCwAAUHWAGsOIQgJCQkJCQkJCQkJAAkBCQIJCQkJCQkDCQQJCQkJBQYJBwkLIARBAmoiBCABIAIQjQciASAERg0YIAIoAgAgAkEEaiICKAIARg0YIAdCADcCACAHQQA2AggCQCAKBEAgB0GrmgFBq5oBEJYGEIwHBUEAIQADQCAAQQNGDQIgByAAQQJ0akEANgIAIABBAWohAAwACwALCyAHQa6aARDzBhogBiAHKQIANwIAIAYgBygCCDYCCEEAIQADQCAAQQNHBEAgByAAQQJ0akEANgIAIABBAWohAAwBCwsgCCACKAIAQWhqEIAHIAgsAAsiBEEASCEAIAgoAgAhCSAIKAIEIQogBEH/AXEhBCAGIAAEfyAJBSAICyAABH8gCgUgBAsQ4QYaIAUgBikCADcCACAFIAYoAgg2AghBACEAA0AgAEEDRwRAIAYgAEECdGpBADYCACAAQQFqIQAMAQsLIAIoAgAiAkFoaiIAQQtqIgQsAABBAEgEQCAAKAIAIQQgA0EAOgAAIAQgAxDoBiACQWxqQQA2AgAFIANBADoAACAAIAMQ6AYgBEEAOgAACyAAEI4HIAAgBSkCADcCACAAIAUoAgg2AghBACEAA0AgAEEDRwRAIAUgAEECdGpBADYCACAAQQFqIQAMAQsLIAUQ6wYgCBDrBiAGEOsGIAcQ6wYgASEADBgLIAAgASACEJoHIQAMFwsgA0IANwIAIANBADYCCCADQfWZAUH1mQEQlgYQjAcgAEECaiIEIAEgAyACEJQHIQEgAxDrBiABIARHBEAgASEACwwWCyAEQQJqIgQgASACEI0HIgEgBEYNFSACKAIAIAJBBGoiAigCAEYNFSAHQgA3AgAgB0EANgIIAkAgCgRAIAdBq5oBQauaARCWBhCMBwVBACEAA0AgAEEDRg0CIAcgAEECdGpBADYCACAAQQFqIQAMAAsACwsgB0G4mgEQ8wYaIAYgBykCADcCACAGIAcoAgg2AghBACEAA0AgAEEDRwRAIAcgAEECdGpBADYCACAAQQFqIQAMAQsLIAggAigCAEFoahCAByAILAALIgRBAEghACAIKAIAIQkgCCgCBCEKIARB/wFxIQQgBiAABH8gCQUgCAsgAAR/IAoFIAQLEOEGGiAFIAYpAgA3AgAgBSAGKAIINgIIQQAhAANAIABBA0cEQCAGIABBAnRqQQA2AgAgAEEBaiEADAELCyACKAIAIgJBaGoiAEELaiIELAAAQQBIBEAgACgCACEEIANBADoAACAEIAMQ6AYgAkFsakEANgIABSADQQA6AAAgACADEOgGIARBADoAAAsgABCOByAAIAUpAgA3AgAgACAFKAIINgIIQQAhAANAIABBA0cEQCAFIABBAnRqQQA2AgAgAEEBaiEADAELCyAFEOsGIAgQ6wYgBhDrBiAHEOsGIAEhAAwVCyAAIAEgAhCbByEADBQLIAAgASACEJwHIQAMEwsgACABIAIQnQchAAwSCyADQgA3AgAgA0EANgIIIANBwJoBQcCaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDBELIANCADcCACADQQA2AgggA0HCmgFBwpoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMEAsMDwsCQAJAAkACQCAELAABQc8Aaw4jAQMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwIDCyADQgA3AgAgA0EANgIIIANBxZoBQcWaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDBELIANCADcCACADQQA2AgggA0HHmgFBx5oBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMEAsgA0IANwIAIANBADYCCCADQcqaAUHKmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwPCwwOCwJAAkACQCAELAABQeUAaw4QAAICAgICAgICAgICAgICAQILIANCADcCACADQQA2AgggA0HNmgFBzZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDwsgA0IANwIAIANBADYCCCADQYeaAUGHmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwOCwwNCyAELAABQfgARw0MIABBAmoiBCABIAIQjQciCSAERg0MIAJBBGohBCAJIAEgAhCNByIBIAlGBEAgBCgCACECQQAhAQNAIAFBf0cEQCACIAFBf2oiAUEYbGoQ3gYMAQsLIAQgAkFoajYCAAwNCyAEKAIAIgkgAigCAGtBGG1BAkkNDCADIAlBaGoQgAcgBCgCACECQQAhAANAIABBf0cEQCACIABBf2oiAEEYbGoQ3gYMAQsLIAQgAkFoajYCACAFIAJBUGoQgAcgDEHjmQEgBRCPByAMQdCaARDzBhogCCAMKQIANwIAIAggDCgCCDYCCEEAIQADQCAAQQNHBEAgDCAAQQJ0akEANgIAIABBAWohAAwBCwsgAywACyICQQBIIQAgAygCACEJIAMoAgQhCiACQf8BcSECIAggAAR/IAkFIAMLIAAEfyAKBSACCxDhBhogByAIKQIANwIAIAcgCCgCCDYCCEEAIQADQCAAQQNHBEAgCCAAQQJ0akEANgIAIABBAWohAAwBCwsgB0GSmgEQ8wYaIBAgBykCADcCACAQIAcoAgg2AghBACEAA0AgAEEDRwRAIAcgAEECdGpBADYCACAAQQFqIQAMAQsLIAYgEBCDByAEKAIAQWhqIAYQhAcgBhDeBiAQEOsGIAcQ6wYgCBDrBiAMEOsGIAUQ6wYgAxDrBiABIQAMDAsCQAJAAkACQAJAIAQsAAFB0wBrDiICBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAEDBAsgA0IANwIAIANBADYCCCADQdOaAUHTmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwPCyADQgA3AgAgA0EANgIIIANB1poBQdaaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDA4LIANCADcCACADQQA2AgggA0HZmgFB2ZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDQsgA0IANwIAIANBADYCCCADQYWaAUGFmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwMCwwLCwJAAkACQAJAAkACQCAELAABQckAaw4lAQUFAwUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUABQUCBAULIANCADcCACADQQA2AgggA0HdmgFB3ZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDwsgA0IANwIAIANBADYCCCADQd+aAUHfmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwOCyADQgA3AgAgA0EANgIIIANB9ZkBQfWZARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDA0LIANCADcCACADQQA2AgggA0HimgFB4poBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDAsgAEECaiIEIAFHBEAgBCwAAEHfAEYEQCADQgA3AgAgA0EANgIIIANB5ZoBQeWaARCWBhCMByAAQQNqIgQgASADIAIQlAchASADEOsGIAEgBEcEQCABIQALDA0LCyAEIAEgAhCNByIBIARGDQsgAigCACACQQRqIgIoAgAiBEYNCyAGIARBaGoQgAcgBkEAQeOZARDyBhogBSAGKQIANwIAIAUgBigCCDYCCEEAIQADQCAAQQNHBEAgBiAAQQJ0akEANgIAIABBAWohAAwBCwsgBUHomgEQ8wYaIBEgBSkCADcCACARIAUoAgg2AghBACEAA0AgAEEDRwRAIAUgAEECdGpBADYCACAAQQFqIQAMAQsLIAMgERCDByACKAIAQWhqIAMQhAcgAxDeBiAREOsGIAUQ6wYgBhDrBiABIQAMCwsMCgsCQAJAAkACQAJAAkAgBCwAAUHhAGsOGAAFBQUBBQIFBQUFBQUFBQUFBQUDBQUABAULIAAgASACEJ4HIQAMDgsgA0IANwIAIANBADYCCCADQeyaAUHsmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwNCyADQgA3AgAgA0EANgIIIANB3ZoBQd2aARCWBhCMByAAQQJqIgQgASADIAIQlAchASADEOsGIAEgBEcEQCABIQALDAwLIANCADcCACADQQA2AgggA0HvmgFB75oBEJYGEIwHIABBAmoiBCABIAMgAhCUByEBIAMQ6wYgASAERwRAIAEhAAsMCwsgAEECaiIEIAEgAhCfByIBIARHBEAgASEACwwKCwwJCwJAAkACQAJAAkAgBCwAAUHSAGsOIQMEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAQQEAgQLIAAgASACEJsHIQAMDAsgA0IANwIAIANBADYCCCADQfGaAUHxmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwLCyADQgA3AgAgA0EANgIIIANB9JoBQfSaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDAoLIANCADcCACADQQA2AgggA0H2mgFB9poBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMCQsMCAsCQAJAAkACQAJAAkACQCAELAABQcwAaw4pAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYBAAYGAwYGBAUGCyADQgA3AgAgA0EANgIIIANB+ZoBQfmaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDA0LIANCADcCACADQQA2AgggA0H9mgFB/ZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDAsgA0IANwIAIANBADYCCCADQf+aAUH/mgEQlgYQjAcgAEECaiIEIAEg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BEAgACwAAEHMAEYEQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQQFqIgUsAABB1ABrDiYAFBQUFBQUFBQUFBMUBAIDERIQFAUICRQKCw4PFBQUBgcUFAEMDRQLDBYLIANCADcCACADQQA2AgggA0GLowFBi6MBEJYGEIwHIABBAmoiBCABIAMgAhDNByEBIAMQ6wYgASAERwRAIAEhAAsMFQsgACwAA0HFAEcNFAJAAkACQCAALAACQTBrDgIAAQILIANBk6MBEKkHIAJBBGoiBCgCACIBIAIoAghJBEAgASADEIUHIAQgBCgCAEEYajYCAAUgAiADEIYHCyADEN4GIABBBGohAAwWCyADQZmjARDOByACQQRqIgQoAgAiASACKAIISQRAIAEgAxCFByAEIAQoAgBBGGo2AgAFIAIgAxCGBwsgAxDeBiAAQQRqIQAMFQsMFAsgA0IANwIAIANBADYCCCADQZ6jAUGeowEQlgYQjAcgAEECaiIEIAEgAyACEM0HIQEgAxDrBiABIARHBEAgASEACwwTCyADQgA3AgAgA0EANgIIIANBo6MBQaOjARCWBhCMByAAQQJqIgQgASADIAIQzQchASADEOsGIAEgBEcEQCABIQALDBILIANCADcCACADQQA2AgggA0GvowFBr6MBEJYGEIwHIABBAmoiBCABIAMgAhDNByEBIAMQ6wYgASAERwRAIAEhAAsMEQsgA0IANwIAIANBADYCCCADQb2jAUG9owEQlgYQjAcgAEECaiIEIAEgAyACEM0HIQEgAxDrBiABIARHBEAgASEACwwQCyADQgA3AgAgA0EANgIIIANBw6MBQcOjARCWBhCMByAAQQJqIgQgASADIAIQzQchASADEOsGIAEgBEcEQCABIQALDA8LIANCADcCACADQQA2AgggA0HstQFB7LUBEJYGEIwHIABBAmoiBCABIAMgAhDNByEBIAMQ6wYgASAERwRAIAEhAAsMDgsgA0IANwIAIANBADYCCCADQdKjAUHSowEQlgYQjAcgAEECaiIEIAEgAyACEM0HIQEgAxDrBiABIARHBEAgASEACwwNCyADQgA3AgAgA0EANgIIIANB1KMBQdSjARCWBhCMByAAQQJqIgQgASADIAIQzQchASADEOsGIAEgBEcEQCAB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QQA6AAAgACALEOgGIARBADoAAAsgABCOByAAIAkpAgA3AgAgACAJKAIINgIIQQAhAANAIABBA0cEQCAJIABBAnRqQQA2AgAgAEEBaiEADAELCyAJEOsGIAMQ6wYgBRDrBiAHEOsGIAgQ6wYgASEADAILAkACQCAEIAEQ7QciAyAERgR/IAAhAUEDBSADIAEgAhDsBiIBIANGBH8gACEBQQAFIAIoAgAgAigCBCICRgR/IAAhAUEBBSACQWhqIQIgACwAAkH2AEYEfyACQQBB4acBEPIGGkEABSACQQBB86cBEPIGGkEACwsLCyICQQNxDgQAAQEAAQsgASEADAILIAJFBEAgASEACwsLIAYkBSAACw8AIAAoAgAgACwABDoAAAvHAQECfwJAIAAgAUcEQAJAAkACQAJAIAAsAABB6ABrDg8AAgICAgICAgICAgICAgECCyAAQQFqIgMgARCLByICIANGIAIgAUZyDQQgAkEBaiEBIAIsAABB3wBGBH8gAQUgAAsPCwwBCwwCCyAAQQFqIgMgARCLByICIANGIAIgAUZyRQRAIAIsAABB3wBGBEAgAkEBaiIDIAEQiwciAiADRiACIAFGckUEQCACQQFqIQEgAiwAAEHfAEYEQCABIQALCwsLCwsgAAsZACAALAAAQQFGBH9BAAUgAEEBOgAAQQELC0sBAn8jBSEDIwVBEGokBSADIgQgAigCADYCACAAIAEgAyAAKAIAKAIQQR9xQYgBahEFACIABEAgAiAEKAIANgIACyADJAUgAEEBcQscACAABH8gAEHI3ABBgN0AQQAQygZBAEcFQQALCwMAAQsrACAAQf8BcUEYdCAAQQh1Qf8BcUEQdHIgAEEQdUH/AXFBCHRyIABBGHZyCx0BAX8gAWciA0EgRgRAIAMgAGdqIQMLQQAkCSADC8MDAQN/IAJBgMAATgRAIAAgASACECkPCyAAIQQgACACaiEDIABBA3EgAUEDcUYEQANAIABBA3EEQCACRQRAIAQPCyAAIAEsAAA6AAAgAEEBaiEAIAFBAWohASACQQFrIQIMAQsLIANBfHEiAkFAaiEFA0AgACAFTARAIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAAgASgCDDYCDCAAIAEoAhA2AhAgACABKAIUNgIUIAAgASgCGDYCGCAAIAEoAhw2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AAAFAAAAAwAAAEAAAAAHAAAAFwAAABcAAAAWAAAABwAAAAMAAACAAAAABwAAABkAAAAZAAAAFwAAAAcAAAADAAAAgAAAAAgAAAAaAAAAGgAAABgAAAAHAAAAAwAAAAABAAAIAAAAGwAAABsAAAAZAAAACQAAAAMAAAAAAgAACAAAABIAAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAASAAAADQAAAA4AAAABAAAABgAAAAEAAAABAAAAEgAAAA4AAAANAAAAAQAAAAUAAAAIAAAAAgAAABIAAAAQAAAADwAAAAEAAAAFAAAACAAAAAIAAAASAAAADwAAABEAAAABAAAABQAAAAgAAAADAAAAEgAAABAAAAARAAAABAAAAAUAAAAIAAAAAwAAABIAAAAQAAAAEQAAAAMAAAAFAAAACAAAAAQAAAASAAAAEQAAABEAAAAEAAAABAAAAAgAAAAEAAAAEgAAABEAAAARAAAABAAAAAQAAAAIAAAABQAAABIAAAARAAAAEQAAAAUAAAAEAAAACAAAAAUAAAASAAAAEQAAABEAAAAGAAAABAAAAAgAAAAFAAAAEgAAABIAAAARAAAABgAAAAQAAAAIAAAABQAAABIAAAASAAAAEQAAAAUAAAAEAAAACAAAAAYAAAASAAAAEwAAABEAAAAHAAAABAAAAAgAAAAGAAAAEgAAABIAAAASAAAABAAAAAQAAAAQAAAABwAAABIAAAASAAAAEgAAAAQAAAADAAAAEAAAAAcAAAASAAAAEwAAABIAAAAGAAAAAwAAACAAAAAHAAAAEgAAABMAAAASAAAACAAAAAMAAABAAAAABwAAABIAAAATAAAAEgAAAAkAAAADAAAAgAAAAAcAAAASAAAAEwAAABIAAAAKAAAAAwAAAAABAAAHAAAAEgAAABMAAAASAAAACwAAAAMAAAAAAgAACAAAABIAAAATAAAAEgAAAAwAAAADAAAAAAIAAAgAAAASAAAAEwAAABIAAAANAAAAAwAAAAACAAAIAAAAEQAAAAwAAAAMAAAAAQAAAAUAAAABAAAAAQAAABEAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAARAAAADQAAABAAAAABAAAABQAAAAEAAAABAAAAEQAAABAAAAAQAAAAAgAAAAUAAAAIAAAAAgAAABEAAAANAAAADwAAAAMAAAAEAAAACAAAAAMAAAARAAAADwAAABEAAAAEAAAABAAAAAgAAAADAAAAEQAAABAAAAARAAAAAwAAAAQAAAAIAAAABAAAABEAAAAPAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAEAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABQAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAYAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAHAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAACAAAAAQAAAAIAAAABQAAABEAAAASAAAAEQAAAAYAAAAEAAAACAAAAAYAAAARAAAAEQAAABEAAAAHAAAAAwAAAAgAAAAHAAAAEQAAABEAAAARAAAABwAAAAMAAAAQAAAABwAAABEAAAASAAAAEQAAAAcAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAHAAAAAwAAAEAAAAAHAAAAEQAAABIAAAARAAAABwAAAAMAAAAAAQAABwAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAcAAAARAAAAEgAAABEAAAAJAAAAAwAAAAABAAAIAAAAEQAAABIAAAARAAAACgAAAAMAAAAAAQAACAAAABEAAAASAAAAEQAAAAsAAAADAAAAAAIAAAgAAAAOAAAADAAAAA0AAAABAAAABQAAAAEAAAABAAAADgAAAA4AAAAOAAAAAQAAAAYAAAABAAAAAQAAAA4AAAAOAAAADgAAAAEAAAAEAAAAAQAAAAEAAAAOAAAADgAAAA4AAAABAAAABAAAAAYAAAACAAAADgAAAA4AAAAOAAAABAAAAAQAAAAGAAAAAwAAAA4AAAAOAAAADgAAAAMAAAAEAAAABgAAAAQAAAAOAAAADgAAAA4AAAAEAAAABAAAAAYAAAAFAAAADgAAAA4AAAAOAAAABQAAAAQAAAAGAAAABQAAAA4AAAAOAAAADgAAAAYAAAAEAAAABgAAAAUAAAAOAAAADwAAAA4AAAAGAAAABAAAAAYAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAMAAAAGAAAABwAAAA4AAAAPAAAADgAAAAYAAAADAAAACAAAAAcAAAAOAAAADwAAAA4AAAAGAAAAAwAAABAAAAAHAAAADgAAAA8AAAAOAAAABgAAAAMAAAAYAAAABwAAAA4AAAAPAAAADwAAAAYAAAADAAAAMAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAAEAAAAAHAAAADgAAAA8AAAAPAAAABgAAAAMAAABgAAAABwAAAA4AAAAPAAAADwAAAAYAAAADAAAAgAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAAAABAAAHAAAADgAAAA8AAAAPAAAABwAAAAMAAAAAAQAABwAAAA4AAAAPAAAADwAAAAgAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAJAAAAAwAAAAABAAAIAAAADgAAAA8AAAAPAAAACgAAAAMAAAAAAQAACAAAAAAAAAABAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AQAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAEGxHwuHAgECAwQFBgcICQoLDA0ODxAQERESEhMTFBQUFBUVFRUWFhYWFhYWFhcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICAhISIiIyMkJCQkJSUlJSYmJiYmJiYmJycnJycnJycoKCgoKCgoKCgoKCgoKCgoKSkpKSkpKSkpKSkpKSkpKSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqBAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AEHAIQuqAQEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////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AAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQbAyC0gEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AQYAzC6oBAQABAAEAAQABAAEAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA/////////////wAAAAAAAAEABAADAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA//////////////////8AQfA0C00BAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEABBwDYLUQEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEABBpDcLbQEAAAADAAAABwAAAA8AAAAfAAAAPwAAAH8AAAD/AAAA/wEAAP8DAAD/BwAA/w8AAP8fAAD/PwAA/38AAP//AAD//wEA//8DAP//BwD//w8A//8fAP//PwD//38A////AP///wH///8DAQAAAAEAQaQ4C88BAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAiAAAAJAAAACYAAAAoAAAALAAAADAAAAA4AAAAQAAAAFAAAABgAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAEGEOgvUAQEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAASAAAAFAAAABYAAAAYAAAAHAAAACAAAAAoAAAAMAAAAEAAAACAAAAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAAEABAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AEHgOwvtAgEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AAAAAAAACAAAAAgAAAAIAAAABwAAAAgAAAAJAAAACgAAAAsAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAEAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgEAAAABAAAAAQAAAAEAAAABAEHYPgsNAQAAAAEAAAACAAAAAgBB8D4LlQMBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAQAAAAIAAAADAAAABAAAAAcAAAAIAAAADwAAABAAAAAfAAAAIAAAAD8AAABAAAAAfwAAAIAAQZDCAAsYEQAKABEREQAAAAAFAAAAAAAACQAAAAALAEGwwgALIREADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQBB4cIACwELAEHqwgALGBEACgoREREACgAAAgAJCwAAAAkACwAACwBBm8MACwEMAEGnwwALFQwAAAAADAAAAAAJDAAAAAAADAAADABB1cMACwEOAEHhwwALFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBj8QACwEQAEGbxAALHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBB0sQACw4SAAAAEhISAAAAAAAACQBBg8UACwELAEGPxQALFQoAAAAACgAAAAAJCwAAAAAACwAACwBBvcUACwEMAEHJxQALfgwAAAAADAAAAAAJDAAAAAAADAAADAAAMDEyMzQ1Njc4OUFCQ0RFRlQhIhkNAQIDEUscDBAECx0SHidobm9wcWIgBQYPExQVGggWBygkFxgJCg4bHyUjg4J9JiorPD0+P0NHSk1YWVpbXF1eX2BhY2RlZmdpamtscnN0eXp7fABB0MYAC/0cSWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVk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AAAAAAAAAAMAAAAEAAAAAAAAAAUAAAAGAAAAAAAAANQyAAAFAEHg5QALAR0AQfjlAAsOAQAAAAIAAABIVAAAAAQAQZDmAAsBAQBBn+YACwUK/////wBB0OYACwnUMgAAWDMAAAUAQeTmAAsBHQBB/OYACwoDAAAAAgAAAOxaAEGU5wALAQIAQaPnAAsF//////8AQZDpAAsCsFoAQezpAAsBBABBk+oACwX//////wBByOoAC+09IC4AADIAAAAzAAAAHgAAAAEAAAAAAAAAOC4AADQAAAA1AAAANgAAADcAAAAFAAAAAQAAAAEAAAABAAAAAAAAAGAuAAA0AAAAOAAAADYAAAA3AAAABQAAAAIAAAACAAAAAgAAAAAAAACQLgAANAAAADkAAAA2AAAANwAAAAYAAAAAAAAAgC4AADQAAAA6AAAANgAAADcAAAAHAAAAAAAAABAvAAA0AAAAOwAAADYAAAA3AAAACAAAAAAAAAAgLwAANAAAADwAAAA2AAAANwAAAAUAAAADAAAAAwAAAAMAAABkdW1teQByYgBsZW5ndGgAYnVmZmVyAGNvbnN0cnVjdG9yAHNldABIRUFQVTgAVmVjdG9yVTgAY2xvbmVUb1ZlY3RvcgBjbG9uZUFzVHlwZWRBcnJheQB0b1R5cGVkQXJyYXlWaWV3AFpzdGRDb21wcmVzc2lvbkRpY3QAY3JlYXRlQ29tcHJlc3Npb25EaWN0AFpzdGREZWNvbXByZXNzaW9uRGljdABjcmVhdGVEZWNvbXByZXNzaW9uRGljdABac3RkQ29kZWMAY29tcHJlc3NCb3VuZABjb250ZW50U2l6ZQBjb21wcmVzcwBkZWNvbXByZXNzAGNvbXByZXNzVXNpbmdEaWN0AGRlY29tcHJlc3NVc2luZ0RpY3QAWnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBiZWdpbgBiZWdpblVzaW5nRGljdAB0cmFuc2Zvcm0AZmx1c2gAZW5kAFpzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBOMTBlbXNjcmlwdGVuM3ZhbEUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8wTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UktOU182dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFRUVFAFpOMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nOVRyYW5zZm9ybUVOMTBlbXNjcmlwdGVuM3ZhbEVTMV9FMyRfMABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzNFbmRFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzJOU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmczRW5kRU4xMGVtc2NyaXB0ZW4zdmFsRUUzJF8yAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8zTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAFpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVMxX0UzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc1Rmx1c2hFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzROU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNQBwdXNoX2JhY2sAcmVzaXplAHNpemUAZ2V0AE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAE5TdDNfXzIxM19fdmVjdG9yX2Jhc2VJaE5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjIwX192ZWN0b3JfYmFzZV9jb21tb25JTGIxRUVFAFBOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQBQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAGlpAHYAdmkAdmlpaQB2aWlpaQBpaWkAaWlpaQBpaWlpaQAxOVpzdGRDb21wcmVzc2lvbkRpY3QAOFJlc291cmNlSTEyWlNURF9DRGljdF9zRQBQMTlac3RkQ29tcHJlc3Npb25EaWN0AFBLMTlac3RkQ29tcHJlc3Npb25EaWN0ADIxWnN0ZERlY29tcHJlc3Npb25EaWN0ADhSZXNvdXJjZUkxMlpTVERfRERpY3Rfc0UAUDIxWnN0ZERlY29tcHJlc3Npb25EaWN0AFBLMjFac3RkRGVjb21wcmVzc2lvbkRpY3QAOVpzdGRDb2RlYwBQOVpzdGRDb2RlYwBQSzlac3RkQ29kZWMAaWlpaWlpADI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBQMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nAFBLMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nADI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFAyN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBQSzI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFBGdlAxMVpTVERfQ0N0eF9zRQBGdlAxMVpTVERfQ0N0eF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTFaU1REX0NDdHhfc0VOU185YWxsb2NhdG9ySVM1X0VFUzRfRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRnZQMTFaU1REX0NDdHhfc0VFRQBQRnZQMTFaU1REX0RDdHhfc0UARnZQMTFaU1REX0RDdHhfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDExWlNURF9EQ3R4X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDExWlNURF9EQ3R4X3NFRUUAUEZ2UDEyWlNURF9DRGljdF9zRQBGdlAxMlpTVERfQ0RpY3Rfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDEyWlNURF9DRGljdF9zRU5TXzlhbGxvY2F0b3JJUzVfRUVTNF9FRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlAxMlpTVERfQ0RpY3Rfc0VFRQBQRnZQMTJaU1REX0REaWN0X3NFAEZ2UDEyWlNURF9ERGljdF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTJaU1REX0REaWN0X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDEyWlNURF9ERGljdF9zRUVFAFpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9DQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0NDdHhfc0VFRQBaTjE4WnN0ZENvbXByZXNzU3RyZWFtNUJlZ2luRVJLMTlac3RkQ29tcHJlc3Npb25EaWN0RTMkXzEATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4xOFpzdGRDb21wcmVzc1N0cmVhbTVCZWdpbkVSSzE5WnN0ZENvbXByZXNzaW9uRGljdEUzJF8xTlNfOWFsbG9jYXRvcklTNl9FRUZtUDExWlNURF9DQ3R4X3NFRUUAWk4yMFpzdGREZWNvbXByZXNzU3RyZWFtNUJlZ2luRXZFMyRfMgBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FdkUzJF8yTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9EQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0RDdHhfc0VFRQBaTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FUksyMVpzdGREZWNvbXByZXNzaW9uRGljdEUzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjBac3RkRGVjb21wcmVzc1N0cmVhbTVCZWdpbkVSSzIxWnN0ZERlY29tcHJlc3Npb25EaWN0RTMkXzNOU185YWxsb2NhdG9ySVM2X0VFRm1QMTFaU1REX0RDdHhfc0VFRQBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAHJ3YQBzdGQ6OmJhZF9mdW5jdGlvbl9jYWxsAE5TdDNfXzIxN2JhZF9mdW5jdGlvbl9jYWxsRQB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHB0aHJlYWRfb25jZSBmYWlsdXJlIGluIF9fY3hhX2dldF9nbG9iYWxzX2Zhc3QoKQBjYW5ub3QgY3JlYXRlIHB0aHJlYWQga2V5IGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAGNhbm5vdCB6ZXJvIG91dCB0aHJlYWQgdmFsdWUgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAdGVybWluYXRlX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgBEbgBiAGMAaABhAHMAdABpAGoAbQBmAGQATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAIGNvbnN0ACB2b2xhdGlsZQAgcmVzdHJpY3QAIGNvbXBsZXgAIGltYWdpbmFyeQAgWwAgKAApACgAJiYAb2JqY19vYmplY3Q8ACoAJgBvYmpjcHJvdG8AIAA8AD4AIHZlY3RvclsAXQBwaXhlbCB2ZWN0b3JbACY9AD0ALAB+ADo6AGRlbGV0ZVtdIABkZWxldGUgAC8ALz0AXgBePQA9PQA+PQApWwA8PQA8PAA8PD0ALQAtPQAqPQAtLQApLS0AIT0AIQB8fAB8AHw9AC0+KgArACs9ACsrACkrKwApID8gKAApIDogKAAlACU9AD4+AD4+PQB0aHJvdwB0aHJvdyAAdHlwZWlkKABzaXplb2YuLi4oACwgAHNpemVvZiAoAHN0YXRpY19jYXN0PAA+KAByZWludGVycHJldF9jYXN0PAAtPgBub2V4Y2VwdCAoAFtdIAApIAAuAC4qAHN0ZDo6AG9wZXJhdG9yJiYAb3BlcmF0b3ImAG9wZXJhdG9yJj0Ab3BlcmF0b3I9AG9wZXJhdG9yKCkAb3BlcmF0b3IsAG9wZXJhdG9yfgBvcGVyYXRvciAAb3BlcmF0b3IgZGVsZXRlW10Ab3BlcmF0b3IqAG9wZXJhdG9yLwBvcGVyYXRvci89AG9wZXJhdG9yXgBvcGVyYXRvcl49AG9wZXJhdG9yPT0Ab3BlcmF0b3I+PQBvcGVyYXRvcj4Ab3BlcmF0b3JbXQBvcGVyYXRvcjw9AG9wZXJhdG9yIiIgAG9wZXJhdG9yPDwAb3BlcmF0b3I8PD0Ab3BlcmF0b3I8AG9wZXJhdG9yLQBvcGVyYXRvci09AG9wZXJhdG9yKj0Ab3BlcmF0b3ItLQBvcGVyYXRvciBuZXdbXQBvcGVyYXRvciE9AG9wZXJhdG9yIQBvcGVyYXRvciBuZXcAb3BlcmF0b3J8fABvcGVyYXRvcnwAb3BlcmF0b3J8PQBvcGVyYXRvci0+KgBvcGVyYXRvcisAb3BlcmF0b3IrPQBvcGVyYXRvcisrAG9wZXJhdG9yLT4Ab3BlcmF0b3I/AG9wZXJhdG9yJQBvcGVyYXRvciU9AG9wZXJhdG9yPj4Ab3BlcmF0b3I+Pj0Ab3BlcmF0b3IgZGVsZXRlACd1bm5hbWVkACdsYW1iZGEnKABzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+AGJhc2ljX3N0cmluZwBzdGQ6OmlzdHJlYW0Ac3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pc3RyZWFtAHN0ZDo6b3N0cmVhbQBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+AGJhc2ljX29zdHJlYW0Ac3RkOjppb3N0cmVhbQBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pb3N0cmVhbQBkeW5hbWljX2Nhc3Q8ACkoAGNvbnN0X2Nhc3Q8AGFsaWdub2YgKABmcAB3Y2hhcl90AGZhbHNlAHRydWUAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AHUAbAB1bABsbAB1bGwAX19pbnQxMjgAdW5zaWduZWQgX19pbnQxMjgAJUxhTAAlYQAlYWYAZGVjbHR5cGUoAHN0ZDo6YWxsb2NhdG9yAHN0ZDo6YmFzaWNfc3RyaW5nADo6c3RyaW5nIGxpdGVyYWwAc3RkAF9HTE9CQUxfX04AKGFub255bW91cyBuYW1lc3BhY2UpACA+AFRfAGlkADo6KgAgJgAgJiYAIFtdAHZvaWQAYm9vbABpbnQAdW5zaWduZWQgaW50AGxvbmcAdW5zaWduZWQgbG9uZwBsb25nIGxvbmcAZmxvYXQAbG9uZyBkb3VibGUAX19mbG9hdDEyOAAuLi4AZGVjaW1hbDY0AGRlY2ltYWwxMjgAZGVjaW1hbDMyAGRlY2ltYWwxNgBjaGFyMzJfdABjaGFyMTZfdABhdXRvAHN0ZDo6bnVsbHB0cl90AGRvdWJsZQB1bnNpZ25lZCBsb25nIGxvbmcAX2Jsb2NrX2ludm9rZQBpbnZvY2F0aW9uIGZ1bmN0aW9uIGZvciBibG9jayBpbiAAdnRhYmxlIGZvciAAVlRUIGZvciAAdHlwZWluZm8gZm9yIAB0eXBlaW5mbyBuYW1lIGZvciAAY292YXJpYW50IHJldHVybiB0aHVuayB0byAAY29uc3RydWN0aW9uIHZ0YWJsZSBmb3IgAC1pbi0AdmlydHVhbCB0aHVuayB0byAAbm9uLXZpcnR1YWwgdGh1bmsgdG8gAGd1YXJkIHZhcmlhYmxlIGZvciAAcmVmZXJlbmNlIHRlbXBvcmFyeSBmb3Ig"; var asmjsCodeFile = ""; if (!isDataURI(wasmTextFile)) { wasmTextFile = locateFile(wasmTextFile); } if (!isDataURI(wasmBinaryFile)) { wasmBinaryFile = locateFile(wasmBinaryFile); } if (!isDataURI(asmjsCodeFile)) { asmjsCodeFile = locateFile(asmjsCodeFile); } var wasmPageSize = 64 * 1024; var info = { global: null, env: null, asm2wasm: asm2wasmImports, parent: Module, }; var exports = null; function mergeMemory(newBuffer) { var oldBuffer = Module["buffer"]; if (newBuffer.byteLength < oldBuffer.byteLength) { err( "the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here" ); } var oldView = new Int8Array(oldBuffer); var newView = new Int8Array(newBuffer); newView.set(oldView); updateGlobalBuffer(newBuffer); updateGlobalBufferViews(); } function fixImports(imports) { return imports; } function getBinary() { try { if (Module["wasmBinary"]) { return new Uint8Array(Module["wasmBinary"]); } var binary = tryParseAsDataURI(wasmBinaryFile); if (binary) { return binary; } if (Module["readBinary"]) { return Module["readBinary"](wasmBinaryFile); } else { throw "both async and sync fetching of the wasm failed"; } } catch (err) { abort(err); } } function getBinaryPromise() { if ( !Module["wasmBinary"] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === "function" ) { return fetch(wasmBinaryFile, { credentials: "same-origin" }) .then(function (response) { if (!response["ok"]) { throw ( "failed to load wasm binary file at '" + wasmBinaryFile + "'" ); } return response["arrayBuffer"](); }) .catch(function () { return getBinary(); }); } return new Promise(function (resolve, reject) { resolve(getBinary()); }); } function doNativeWasm(global, env, providedBuffer) { if ( (typeof WebAssembly === "undefined" ? "undefined" : _typeof(WebAssembly)) !== "object" ) { err("no native wasm support detected"); return false; } if (!(Module["wasmMemory"] instanceof WebAssembly.Memory)) { err("no native wasm Memory in use"); return false; } env["memory"] = Module["wasmMemory"]; info["global"] = { NaN: NaN, Infinity: Infinity }; info["global.Math"] = Math; info["env"] = env; function receiveInstance(instance, module) { exports = instance.exports; if (exports.memory) mergeMemory(exports.memory); Module["asm"] = exports; Module["usingWasm"] = true; removeRunDependency("wasm-instantiate"); } addRunDependency("wasm-instantiate"); if (Module["instantiateWasm"]) { try { return Module["instantiateWasm"](info, receiveInstance); } catch (e) { err( "Module.instantiateWasm callback failed with error: " + e ); return false; } } function receiveInstantiatedSource(output) { receiveInstance(output["instance"], output["module"]); } function instantiateArrayBuffer(receiver) { getBinaryPromise() .then(function (binary) { return WebAssembly.instantiate(binary, info); }) .then(receiver) .catch(function (reason) { err("failed to asynchronously prepare wasm: " + reason); abort(reason); }); } if ( !Module["wasmBinary"] && typeof WebAssembly.instantiateStreaming === "function" && !isDataURI(wasmBinaryFile) && typeof fetch === "function" ) { WebAssembly.instantiateStreaming( fetch(wasmBinaryFile, { credentials: "same-origin" }), info ) .then(receiveInstantiatedSource) .catch(function (reason) { err("wasm streaming compile failed: " + reason); err("falling back to ArrayBuffer instantiation"); instantiateArrayBuffer(receiveInstantiatedSource); }); } else { instantiateArrayBuffer(receiveInstantiatedSource); } return {}; } Module["asmPreload"] = Module["asm"]; var asmjsReallocBuffer = Module["reallocBuffer"]; var wasmReallocBuffer = function wasmReallocBuffer(size) { var PAGE_MULTIPLE = Module["usingWasm"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; size = alignUp(size, PAGE_MULTIPLE); var old = Module["buffer"]; var oldSize = old.byteLength; if (Module["usingWasm"]) { try { var result = Module["wasmMemory"].grow( (size - oldSize) / wasmPageSize ); if (result !== (-1 | 0)) { return (Module["buffer"] = Module["wasmMemory"].buffer); } else { return null; } } catch (e) { return null; } } }; Module["reallocBuffer"] = function (size) { if (finalMethod === "asmjs") { return asmjsReallocBuffer(size); } else { return wasmReallocBuffer(size); } }; var finalMethod = ""; Module["asm"] = function (global, env, providedBuffer) { env = fixImports(env); if (!env["table"]) { var TABLE_SIZE = Module["wasmTableSize"]; if (TABLE_SIZE === undefined) TABLE_SIZE = 1024; var MAX_TABLE_SIZE = Module["wasmMaxTableSize"]; if ( (typeof WebAssembly === "undefined" ? "undefined" : _typeof(WebAssembly)) === "object" && typeof WebAssembly.Table === "function" ) { if (MAX_TABLE_SIZE !== undefined) { env["table"] = new WebAssembly.Table({ initial: TABLE_SIZE, maximum: MAX_TABLE_SIZE, element: "anyfunc", }); } else { env["table"] = new WebAssembly.Table({ initial: TABLE_SIZE, element: "anyfunc", }); } } else { env["table"] = new Array(TABLE_SIZE); } Module["wasmTable"] = env["table"]; } if (!env["memoryBase"]) { env["memoryBase"] = Module["STATIC_BASE"]; } if (!env["tableBase"]) { env["tableBase"] = 0; } var exports; exports = doNativeWasm(global, env, providedBuffer); assert(exports, "no binaryen method succeeded."); return exports; }; } integrateWasmJS(); STATIC_BASE = GLOBAL_BASE; STATICTOP = STATIC_BASE + 23280; __ATINIT__.push( { func: function func() { __GLOBAL__sub_I_zstd_binding_cc(); }, }, { func: function func() { __GLOBAL__sub_I_bind_cpp(); }, } ); var STATIC_BUMP = 23280; Module["STATIC_BASE"] = STATIC_BASE; Module["STATIC_BUMP"] = STATIC_BUMP; var tempDoublePtr = STATICTOP; STATICTOP += 16; function ___cxa_allocate_exception(size) { return _malloc(size); } function __ZSt18uncaught_exceptionv() { return !!__ZSt18uncaught_exceptionv.uncaught_exception; } var EXCEPTIONS = { last: 0, caught: [], infos: {}, deAdjust: function deAdjust(adjusted) { if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted; for (var key in EXCEPTIONS.infos) { var ptr = +key; var info = EXCEPTIONS.infos[ptr]; if (info.adjusted === adjusted) { return ptr; } } return adjusted; }, addRef: function addRef(ptr) { if (!ptr) return; var info = EXCEPTIONS.infos[ptr]; info.refcount++; }, decRef: function decRef(ptr) { if (!ptr) return; var info = EXCEPTIONS.infos[ptr]; assert(info.refcount > 0); info.refcount--; if (info.refcount === 0 && !info.rethrown) { if (info.destructor) { Module["dynCall_vi"](info.destructor, ptr); } delete EXCEPTIONS.infos[ptr]; ___cxa_free_exception(ptr); } }, clearRef: function clearRef(ptr) { if (!ptr) return; var info = EXCEPTIONS.infos[ptr]; info.refcount = 0; }, }; function ___cxa_begin_catch(ptr) { var info = EXCEPTIONS.infos[ptr]; if (info && !info.caught) { info.caught = true; __ZSt18uncaught_exceptionv.uncaught_exception--; } if (info) info.rethrown = false; EXCEPTIONS.caught.push(ptr); EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr)); return ptr; } function ___resumeException(ptr) { if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; } throw ( ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch." ); } function ___cxa_find_matching_catch() { var thrown = EXCEPTIONS.last; if (!thrown) { return (setTempRet0(0), 0) | 0; } var info = EXCEPTIONS.infos[thrown]; var throwntype = info.type; if (!throwntype) { return (setTempRet0(0), thrown) | 0; } var typeArray = Array.prototype.slice.call(arguments); var pointer = Module["___cxa_is_pointer_type"](throwntype); if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4); HEAP32[___cxa_find_matching_catch.buffer >> 2] = thrown; thrown = ___cxa_find_matching_catch.buffer; for (var i = 0; i < typeArray.length; i++) { if ( typeArray[i] && Module["___cxa_can_catch"](typeArray[i], throwntype, thrown) ) { thrown = HEAP32[thrown >> 2]; info.adjusted = thrown; return (setTempRet0(typeArray[i]), thrown) | 0; } } thrown = HEAP32[thrown >> 2]; return (setTempRet0(throwntype), thrown) | 0; } function ___cxa_throw(ptr, type, destructor) { EXCEPTIONS.infos[ptr] = { ptr: ptr, adjusted: ptr, type: type, destructor: destructor, refcount: 0, caught: false, rethrown: false, }; EXCEPTIONS.last = ptr; if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { __ZSt18uncaught_exceptionv.uncaught_exception = 1; } else { __ZSt18uncaught_exceptionv.uncaught_exception++; } throw ( ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch." ); } function ___gxx_personality_v0() {} function ___lock() {} var ERRNO_CODES = { EPERM: 1, ENOENT: 2, ESRCH: 3, EINTR: 4, EIO: 5, ENXIO: 6, E2BIG: 7, ENOEXEC: 8, EBADF: 9, ECHILD: 10, EAGAIN: 11, EWOULDBLOCK: 11, ENOMEM: 12, EACCES: 13, EFAULT: 14, ENOTBLK: 15, EBUSY: 16, EEXIST: 17, EXDEV: 18, ENODEV: 19, ENOTDIR: 20, EISDIR: 21, EINVAL: 22, ENFILE: 23, EMFILE: 24, ENOTTY: 25, ETXTBSY: 26, EFBIG: 27, ENOSPC: 28, ESPIPE: 29, EROFS: 30, EMLINK: 31, EPIPE: 32, EDOM: 33, ERANGE: 34, ENOMSG: 42, EIDRM: 43, ECHRNG: 44, EL2NSYNC: 45, EL3HLT: 46, EL3RST: 47, ELNRNG: 48, EUNATCH: 49, ENOCSI: 50, EL2HLT: 51, EDEADLK: 35, ENOLCK: 37, EBADE: 52, EBADR: 53, EXFULL: 54, ENOANO: 55, EBADRQC: 56, EBADSLT: 57, EDEADLOCK: 35, EBFONT: 59, ENOSTR: 60, ENODATA: 61, ETIME: 62, ENOSR: 63, ENONET: 64, ENOPKG: 65, EREMOTE: 66, ENOLINK: 67, EADV: 68, ESRMNT: 69, ECOMM: 70, EPROTO: 71, EMULTIHOP: 72, EDOTDOT: 73, EBADMSG: 74, ENOTUNIQ: 76, EBADFD: 77, EREMCHG: 78, ELIBACC: 79, ELIBBAD: 80, ELIBSCN: 81, ELIBMAX: 82, ELIBEXEC: 83, ENOSYS: 38, ENOTEMPTY: 39, ENAMETOOLONG: 36, ELOOP: 40, EOPNOTSUPP: 95, EPFNOSUPPORT: 96, ECONNRESET: 104, ENOBUFS: 105, EAFNOSUPPORT: 97, EPROTOTYPE: 91, ENOTSOCK: 88, ENOPROTOOPT: 92, ESHUTDOWN: 108, ECONNREFUSED: 111, EADDRINUSE: 98, ECONNABORTED: 103, ENETUNREACH: 101, ENETDOWN: 100, ETIMEDOUT: 110, EHOSTDOWN: 112, EHOSTUNREACH: 113, EINPROGRESS: 115, EALREADY: 114, EDESTADDRREQ: 89, EMSGSIZE: 90, EPROTONOSUPPORT: 93, ESOCKTNOSUPPORT: 94, EADDRNOTAVAIL: 99, ENETRESET: 102, EISCONN: 106, ENOTCONN: 107, ETOOMANYREFS: 109, EUSERS: 87, EDQUOT: 122, ESTALE: 116, ENOTSUP: 95, ENOMEDIUM: 123, EILSEQ: 84, EOVERFLOW: 75, ECANCELED: 125, ENOTRECOVERABLE: 131, EOWNERDEAD: 130, ESTRPIPE: 86, }; var ERRNO_MESSAGES = { 0: "Success", 1: "Not super-user", 2: "No such file or directory", 3: "No such process", 4: "Interrupted system call", 5: "I/O error", 6: "No such device or address", 7: "Arg list too long", 8: "Exec format error", 9: "Bad file number", 10: "No children", 11: "No more processes", 12: "Not enough core", 13: "Permission denied", 14: "Bad address", 15: "Block device required", 16: "Mount device busy", 17: "File exists", 18: "Cross-device link", 19: "No such device", 20: "Not a directory", 21: "Is a directory", 22: "Invalid argument", 23: "Too many open files in system", 24: "Too many open files", 25: "Not a typewriter", 26: "Text file busy", 27: "File too large", 28: "No space left on device", 29: "Illegal seek", 30: "Read only file system", 31: "Too many links", 32: "Broken pipe", 33: "Math arg out of domain of func", 34: "Math result not representable", 35: "File locking deadlock error", 36: "File or path name too long", 37: "No record locks available", 38: "Function not implemented", 39: "Directory not empty", 40: "Too many symbolic links", 42: "No message of desired type", 43: "Identifier removed", 44: "Channel number out of range", 45: "Level 2 not synchronized", 46: "Level 3 halted", 47: "Level 3 reset", 48: "Link number out of range", 49: "Protocol driver not attached", 50: "No CSI structure available", 51: "Level 2 halted", 52: "Invalid exchange", 53: "Invalid request descriptor", 54: "Exchange full", 55: "No anode", 56: "Invalid request code", 57: "Invalid slot", 59: "Bad font file fmt", 60: "Device not a stream", 61: "No data (for no delay io)", 62: "Timer expired", 63: "Out of streams resources", 64: "Machine is not on the network", 65: "Package not installed", 66: "The object is remote", 67: "The link has been severed", 68: "Advertise error", 69: "Srmount error", 70: "Communication error on send", 71: "Protocol error", 72: "Multihop attempted", 73: "Cross mount point (not really error)", 74: "Trying to read unreadable message", 75: "Value too large for defined data type", 76: "Given log. name not unique", 77: "f.d. invalid for this operation", 78: "Remote address changed", 79: "Can access a needed shared lib", 80: "Accessing a corrupted shared lib", 81: ".lib section in a.out corrupted", 82: "Attempting to link in too many libs", 83: "Attempting to exec a shared library", 84: "Illegal byte sequence", 86: "Streams pipe error", 87: "Too many users", 88: "Socket operation on non-socket", 89: "Destination address required", 90: "Message too long", 91: "Protocol wrong type for socket", 92: "Protocol not available", 93: "Unknown protocol", 94: "Socket type not supported", 95: "Not supported", 96: "Protocol family not supported", 97: "Address family not supported by protocol family", 98: "Address already in use", 99: "Address not available", 100: "Network interface is not configured", 101: "Network is unreachable", 102: "Connection reset by network", 103: "Connection aborted", 104: "Connection reset by peer", 105: "No buffer space available", 106: "Socket is already connected", 107: "Socket is not connected", 108: "Can't send after socket shutdown", 109: "Too many references", 110: "Connection timed out", 111: "Connection refused", 112: "Host is down", 113: "Host is unreachable", 114: "Socket already connected", 115: "Connection already in progress", 116: "Stale file handle", 122: "Quota exceeded", 123: "No medium (in tape drive)", 125: "Operation canceled", 130: "Previous owner died", 131: "State not recoverable", }; function ___setErrNo(value) { if (Module["___errno_location"]) HEAP32[Module["___errno_location"]() >> 2] = value; return value; } var PATH = { splitPath: function splitPath(filename) { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1); }, normalizeArray: function normalizeArray(parts, allowAboveRoot) { var up = 0; for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; if (last === ".") { parts.splice(i, 1); } else if (last === "..") { parts.splice(i, 1); up++; } else if (up) { parts.splice(i, 1); up--; } } if (allowAboveRoot) { for (; up; up--) { parts.unshift(".."); } } return parts; }, normalize: function normalize(path) { var isAbsolute = path.charAt(0) === "/", trailingSlash = path.substr(-1) === "/"; path = PATH.normalizeArray( path.split("/").filter(function (p) { return !!p; }), !isAbsolute ).join("/"); if (!path && !isAbsolute) { path = "."; } if (path && trailingSlash) { path += "/"; } return (isAbsolute ? "/" : "") + path; }, dirname: function dirname(path) { var result = PATH.splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { return "."; } if (dir) { dir = dir.substr(0, dir.length - 1); } return root + dir; }, basename: function basename(path) { if (path === "/") return "/"; var lastSlash = path.lastIndexOf("/"); if (lastSlash === -1) return path; return path.substr(lastSlash + 1); }, extname: function extname(path) { return PATH.splitPath(path)[3]; }, join: function join() { var paths = Array.prototype.slice.call(arguments, 0); return PATH.normalize(paths.join("/")); }, join2: function join2(l, r) { return PATH.normalize(l + "/" + r); }, resolve: function resolve() { var resolvedPath = "", resolvedAbsolute = false; for ( var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i-- ) { var path = i >= 0 ? arguments[i] : FS.cwd(); if (typeof path !== "string") { throw new TypeError( "Arguments to path.resolve must be strings" ); } else if (!path) { return ""; } resolvedPath = path + "/" + resolvedPath; resolvedAbsolute = path.charAt(0) === "/"; } resolvedPath = PATH.normalizeArray( resolvedPath.split("/").filter(function (p) { return !!p; }), !resolvedAbsolute ).join("/"); return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; }, relative: function relative(from, to) { from = PATH.resolve(from).substr(1); to = PATH.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== "") break; } var end = arr.length - 1; for (; end >= 0; end--) { if (arr[end] !== "") break; } if (start > end) return []; return arr.slice(start, end - start + 1); } var fromParts = trim(from.split("/")); var toParts = trim(to.split("/")); var length = Math.min(fromParts.length, toParts.length); var samePartsLength = length; for (var i = 0; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break; } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push(".."); } outputParts = outputParts.concat( toParts.slice(samePartsLength) ); return outputParts.join("/"); }, }; var TTY = { ttys: [], init: function init() {}, shutdown: function shutdown() {}, register: function register(dev, ops) { TTY.ttys[dev] = { input: [], output: [], ops: ops }; FS.registerDevice(dev, TTY.stream_ops); }, stream_ops: { open: function open(stream) { var tty = TTY.ttys[stream.node.rdev]; if (!tty) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } stream.tty = tty; stream.seekable = false; }, close: function close(stream) { stream.tty.ops.flush(stream.tty); }, flush: function flush(stream) { stream.tty.ops.flush(stream.tty); }, read: function read(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.get_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO); } var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = stream.tty.ops.get_char(stream.tty); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: function write(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.put_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO); } for (var i = 0; i < length; i++) { try { stream.tty.ops.put_char(stream.tty, buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } } if (length) { stream.node.timestamp = Date.now(); } return i; }, }, default_tty_ops: { get_char: function get_char(tty) { if (!tty.input.length) { var result = null; if (ENVIRONMENT_IS_NODE) { var BUFSIZE = 256; var buf = new Buffer(BUFSIZE); var bytesRead = 0; var isPosixPlatform = process.platform != "win32"; var fd = process.stdin.fd; if (isPosixPlatform) { var usingDevice = false; try { fd = fs.openSync("/dev/stdin", "r"); usingDevice = true; } catch (e) {} } try { bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); } catch (e) { if (e.toString().indexOf("EOF") != -1) bytesRead = 0; else throw e; } if (usingDevice) { fs.closeSync(fd); } if (bytesRead > 0) { result = buf.slice(0, bytesRead).toString("utf-8"); } else { result = null; } } else if ( typeof window != "undefined" && typeof window.prompt == "function" ) { result = window.prompt("Input: "); if (result !== null) { result += "\n"; } } else if (typeof readline == "function") { result = readline(); if (result !== null) { result += "\n"; } } if (!result) { return null; } tty.input = intArrayFromString(result, true); } return tty.input.shift(); }, put_char: function put_char(tty, val) { if (val === null || val === 10) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, flush: function flush(tty) { if (tty.output && tty.output.length > 0) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } }, }, default_tty1_ops: { put_char: function put_char(tty, val) { if (val === null || val === 10) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, flush: function flush(tty) { if (tty.output && tty.output.length > 0) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } }, }, }; var MEMFS = { ops_table: null, mount: function mount(_mount) { return MEMFS.createNode(null, "/", 16384 | 511, 0); }, createNode: function createNode(parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (!MEMFS.ops_table) { MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink, }, stream: { llseek: MEMFS.stream_ops.llseek }, }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync, }, }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink, }, stream: {}, }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, }, stream: FS.chrdev_stream_ops, }, }; } var node = FS.createNode(parent, name, mode, dev); if (FS.isDir(node.mode)) { node.node_ops = MEMFS.ops_table.dir.node; node.stream_ops = MEMFS.ops_table.dir.stream; node.contents = {}; } else if (FS.isFile(node.mode)) { node.node_ops = MEMFS.ops_table.file.node; node.stream_ops = MEMFS.ops_table.file.stream; node.usedBytes = 0; node.contents = null; } else if (FS.isLink(node.mode)) { node.node_ops = MEMFS.ops_table.link.node; node.stream_ops = MEMFS.ops_table.link.stream; } else if (FS.isChrdev(node.mode)) { node.node_ops = MEMFS.ops_table.chrdev.node; node.stream_ops = MEMFS.ops_table.chrdev.stream; } node.timestamp = Date.now(); if (parent) { parent.contents[name] = node; } return node; }, getFileDataAsRegularArray: function getFileDataAsRegularArray( node ) { if (node.contents && node.contents.subarray) { var arr = []; for (var i = 0; i < node.usedBytes; ++i) { arr.push(node.contents[i]); } return arr; } return node.contents; }, getFileDataAsTypedArray: function getFileDataAsTypedArray( node ) { if (!node.contents) return new Uint8Array(); if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); return new Uint8Array(node.contents); }, expandFileStorage: function expandFileStorage( node, newCapacity ) { if ( node.contents && node.contents.subarray && newCapacity > node.contents.length ) { node.contents = MEMFS.getFileDataAsRegularArray(node); node.usedBytes = node.contents.length; } if (!node.contents || node.contents.subarray) { var prevCapacity = node.contents ? node.contents.length : 0; if (prevCapacity >= newCapacity) return; var CAPACITY_DOUBLING_MAX = 1024 * 1024; newCapacity = Math.max( newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) | 0 ); if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); var oldContents = node.contents; node.contents = new Uint8Array(newCapacity); if (node.usedBytes > 0) node.contents.set( oldContents.subarray(0, node.usedBytes), 0 ); return; } if (!node.contents && newCapacity > 0) node.contents = []; while (node.contents.length < newCapacity) { node.contents.push(0); } }, resizeFileStorage: function resizeFileStorage(node, newSize) { if (node.usedBytes == newSize) return; if (newSize == 0) { node.contents = null; node.usedBytes = 0; return; } if (!node.contents || node.contents.subarray) { var oldContents = node.contents; node.contents = new Uint8Array(new ArrayBuffer(newSize)); if (oldContents) { node.contents.set( oldContents.subarray( 0, Math.min(newSize, node.usedBytes) ) ); } node.usedBytes = newSize; return; } if (!node.contents) node.contents = []; if (node.contents.length > newSize) node.contents.length = newSize; else while (node.contents.length < newSize) { node.contents.push(0); } node.usedBytes = newSize; }, node_ops: { getattr: function getattr(node) { var attr = {}; attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; attr.mode = node.mode; attr.nlink = 1; attr.uid = 0; attr.gid = 0; attr.rdev = node.rdev; if (FS.isDir(node.mode)) { attr.size = 4096; } else if (FS.isFile(node.mode)) { attr.size = node.usedBytes; } else if (FS.isLink(node.mode)) { attr.size = node.link.length; } else { attr.size = 0; } attr.atime = new Date(node.timestamp); attr.mtime = new Date(node.timestamp); attr.ctime = new Date(node.timestamp); attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr; }, setattr: function setattr(node, attr) { if (attr.mode !== undefined) { node.mode = attr.mode; } if (attr.timestamp !== undefined) { node.timestamp = attr.timestamp; } if (attr.size !== undefined) { MEMFS.resizeFileStorage(node, attr.size); } }, lookup: function lookup(parent, name) { throw FS.genericErrors[ERRNO_CODES.ENOENT]; }, mknod: function mknod(parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev); }, rename: function rename(old_node, new_dir, new_name) { if (FS.isDir(old_node.mode)) { var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) {} if (new_node) { for (var i in new_node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } } } delete old_node.parent.contents[old_node.name]; old_node.name = new_name; new_dir.contents[new_name] = old_node; old_node.parent = new_dir; }, unlink: function unlink(parent, name) { delete parent.contents[name]; }, rmdir: function rmdir(parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } delete parent.contents[name]; }, readdir: function readdir(node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue; } entries.push(key); } return entries; }, symlink: function symlink(parent, newname, oldpath) { var node = MEMFS.createNode( parent, newname, 511 | 40960, 0 ); node.link = oldpath; return node; }, readlink: function readlink(node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return node.link; }, }, stream_ops: { read: function read( stream, buffer, offset, length, position ) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; var size = Math.min( stream.node.usedBytes - position, length ); assert(size >= 0); if (size > 8 && contents.subarray) { buffer.set( contents.subarray(position, position + size), offset ); } else { for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } return size; }, write: function write( stream, buffer, offset, length, position, canOwn ) { if (!length) return 0; var node = stream.node; node.timestamp = Date.now(); if ( buffer.subarray && (!node.contents || node.contents.subarray) ) { if (canOwn) { node.contents = buffer.subarray( offset, offset + length ); node.usedBytes = length; return length; } else if (node.usedBytes === 0 && position === 0) { node.contents = new Uint8Array( buffer.subarray(offset, offset + length) ); node.usedBytes = length; return length; } else if (position + length <= node.usedBytes) { node.contents.set( buffer.subarray(offset, offset + length), position ); return length; } } MEMFS.expandFileStorage(node, position + length); if (node.contents.subarray && buffer.subarray) node.contents.set( buffer.subarray(offset, offset + length), position ); else { for (var i = 0; i < length; i++) { node.contents[position + i] = buffer[offset + i]; } } node.usedBytes = Math.max( node.usedBytes, position + length ); return length; }, llseek: function llseek(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { position += stream.node.usedBytes; } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return position; }, allocate: function allocate(stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max( stream.node.usedBytes, offset + length ); }, mmap: function mmap( stream, buffer, offset, length, position, prot, flags ) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } var ptr; var allocated; var contents = stream.node.contents; if ( !(flags & 2) && (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { allocated = false; ptr = contents.byteOffset; } else { if ( position > 0 || position + length < stream.node.usedBytes ) { if (contents.subarray) { contents = contents.subarray( position, position + length ); } else { contents = Array.prototype.slice.call( contents, position, position + length ); } } allocated = true; ptr = _malloc(length); if (!ptr) { throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); } buffer.set(contents, ptr); } return { ptr: ptr, allocated: allocated }; }, msync: function msync( stream, buffer, offset, length, mmapFlags ) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } if (mmapFlags & 2) { return 0; } var bytesWritten = MEMFS.stream_ops.write( stream, buffer, 0, length, offset, false ); return 0; }, }, }; var IDBFS = { dbs: {}, indexedDB: (function (_indexedDB) { function indexedDB() { return _indexedDB.apply(this, arguments); } indexedDB.toString = function () { return _indexedDB.toString(); }; return indexedDB; })(function () { if (typeof indexedDB !== "undefined") return indexedDB; var ret = null; if ( (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" ) ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; assert(ret, "IDBFS used, but indexedDB not supported"); return ret; }), DB_VERSION: 21, DB_STORE_NAME: "FILE_DATA", mount: function mount(_mount2) { return MEMFS.mount.apply(null, arguments); }, syncfs: function syncfs(mount, populate, callback) { IDBFS.getLocalSet(mount, function (err, local) { if (err) return callback(err); IDBFS.getRemoteSet(mount, function (err, remote) { if (err) return callback(err); var src = populate ? remote : local; var dst = populate ? local : remote; IDBFS.reconcile(src, dst, callback); }); }); }, getDB: function getDB(name, callback) { var db = IDBFS.dbs[name]; if (db) { return callback(null, db); } var req; try { req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); } catch (e) { return callback(e); } if (!req) { return callback("Unable to connect to IndexedDB"); } req.onupgradeneeded = function (e) { var db = e.target.result; var transaction = e.target.transaction; var fileStore; if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); } else { fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); } if (!fileStore.indexNames.contains("timestamp")) { fileStore.createIndex("timestamp", "timestamp", { unique: false, }); } }; req.onsuccess = function () { db = req.result; IDBFS.dbs[name] = db; callback(null, db); }; req.onerror = function (e) { callback(this.error); e.preventDefault(); }; }, getLocalSet: function getLocalSet(mount, callback) { var entries = {}; function isRealDir(p) { return p !== "." && p !== ".."; } function toAbsolute(root) { return function (p) { return PATH.join2(root, p); }; } var check = FS.readdir(mount.mountpoint) .filter(isRealDir) .map(toAbsolute(mount.mountpoint)); while (check.length) { var path = check.pop(); var stat; try { stat = FS.stat(path); } catch (e) { return callback(e); } if (FS.isDir(stat.mode)) { check.push.apply( check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)) ); } entries[path] = { timestamp: stat.mtime }; } return callback(null, { type: "local", entries: entries }); }, getRemoteSet: function getRemoteSet(mount, callback) { var entries = {}; IDBFS.getDB(mount.mountpoint, function (err, db) { if (err) return callback(err); try { var transaction = db.transaction( [IDBFS.DB_STORE_NAME], "readonly" ); transaction.onerror = function (e) { callback(this.error); e.preventDefault(); }; var store = transaction.objectStore(IDBFS.DB_STORE_NAME); var index = store.index("timestamp"); index.openKeyCursor().onsuccess = function (event) { var cursor = event.target.result; if (!cursor) { return callback(null, { type: "remote", db: db, entries: entries, }); } entries[cursor.primaryKey] = { timestamp: cursor.key }; cursor.continue(); }; } catch (e) { return callback(e); } }); }, loadLocalEntry: function loadLocalEntry(path, callback) { var stat, node; try { var lookup = FS.lookupPath(path); node = lookup.node; stat = FS.stat(path); } catch (e) { return callback(e); } if (FS.isDir(stat.mode)) { return callback(null, { timestamp: stat.mtime, mode: stat.mode, }); } else if (FS.isFile(stat.mode)) { node.contents = MEMFS.getFileDataAsTypedArray(node); return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents, }); } else { return callback(new Error("node type not supported")); } }, storeLocalEntry: function storeLocalEntry( path, entry, callback ) { try { if (FS.isDir(entry.mode)) { FS.mkdir(path, entry.mode); } else if (FS.isFile(entry.mode)) { FS.writeFile(path, entry.contents, { canOwn: true }); } else { return callback(new Error("node type not supported")); } FS.chmod(path, entry.mode); FS.utime(path, entry.timestamp, entry.timestamp); } catch (e) { return callback(e); } callback(null); }, removeLocalEntry: function removeLocalEntry(path, callback) { try { var lookup = FS.lookupPath(path); var stat = FS.stat(path); if (FS.isDir(stat.mode)) { FS.rmdir(path); } else if (FS.isFile(stat.mode)) { FS.unlink(path); } } catch (e) { return callback(e); } callback(null); }, loadRemoteEntry: function loadRemoteEntry( store, path, callback ) { var req = store.get(path); req.onsuccess = function (event) { callback(null, event.target.result); }; req.onerror = function (e) { callback(this.error); e.preventDefault(); }; }, storeRemoteEntry: function storeRemoteEntry( store, path, entry, callback ) { var req = store.put(entry, path); req.onsuccess = function () { callback(null); }; req.onerror = function (e) { callback(this.error); e.preventDefault(); }; }, removeRemoteEntry: function removeRemoteEntry( store, path, callback ) { var req = store.delete(path); req.onsuccess = function () { callback(null); }; req.onerror = function (e) { callback(this.error); e.preventDefault(); }; }, reconcile: function reconcile(src, dst, callback) { var total = 0; var create = []; Object.keys(src.entries).forEach(function (key) { var e = src.entries[key]; var e2 = dst.entries[key]; if (!e2 || e.timestamp > e2.timestamp) { create.push(key); total++; } }); var remove = []; Object.keys(dst.entries).forEach(function (key) { var e = dst.entries[key]; var e2 = src.entries[key]; if (!e2) { remove.push(key); total++; } }); if (!total) { return callback(null); } var completed = 0; var db = src.type === "remote" ? src.db : dst.db; var transaction = db.transaction( [IDBFS.DB_STORE_NAME], "readwrite" ); var store = transaction.objectStore(IDBFS.DB_STORE_NAME); function done(err) { if (err) { if (!done.errored) { done.errored = true; return callback(err); } return; } if (++completed >= total) { return callback(null); } } transaction.onerror = function (e) { done(this.error); e.preventDefault(); }; create.sort().forEach(function (path) { if (dst.type === "local") { IDBFS.loadRemoteEntry(store, path, function (err, entry) { if (err) return done(err); IDBFS.storeLocalEntry(path, entry, done); }); } else { IDBFS.loadLocalEntry(path, function (err, entry) { if (err) return done(err); IDBFS.storeRemoteEntry(store, path, entry, done); }); } }); remove .sort() .reverse() .forEach(function (path) { if (dst.type === "local") { IDBFS.removeLocalEntry(path, done); } else { IDBFS.removeRemoteEntry(store, path, done); } }); }, }; var NODEFS = { isWindows: false, staticInit: function staticInit() { NODEFS.isWindows = !!process.platform.match(/^win/); var flags = process["binding"]("constants"); if (flags["fs"]) { flags = flags["fs"]; } NODEFS.flagsForNodeMap = { 1024: flags["O_APPEND"], 64: flags["O_CREAT"], 128: flags["O_EXCL"], 0: flags["O_RDONLY"], 2: flags["O_RDWR"], 4096: flags["O_SYNC"], 512: flags["O_TRUNC"], 1: flags["O_WRONLY"], }; }, bufferFrom: function bufferFrom(arrayBuffer) { return Buffer.alloc ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer); }, mount: function mount(_mount3) { assert(ENVIRONMENT_IS_NODE); return NODEFS.createNode( null, "/", NODEFS.getMode(_mount3.opts.root), 0 ); }, createNode: function createNode(parent, name, mode, dev) { if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node = FS.createNode(parent, name, mode); node.node_ops = NODEFS.node_ops; node.stream_ops = NODEFS.stream_ops; return node; }, getMode: function getMode(path) { var stat; try { stat = fs.lstatSync(path); if (NODEFS.isWindows) { stat.mode = stat.mode | ((stat.mode & 292) >> 2); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return stat.mode; }, realPath: function realPath(node) { var parts = []; while (node.parent !== node) { parts.push(node.name); node = node.parent; } parts.push(node.mount.opts.root); parts.reverse(); return PATH.join.apply(null, parts); }, flagsForNode: function flagsForNode(flags) { flags &= ~2097152; flags &= ~2048; flags &= ~32768; flags &= ~524288; var newFlags = 0; for (var k in NODEFS.flagsForNodeMap) { if (flags & k) { newFlags |= NODEFS.flagsForNodeMap[k]; flags ^= k; } } if (!flags) { return newFlags; } else { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } }, node_ops: { getattr: function getattr(node) { var path = NODEFS.realPath(node); var stat; try { stat = fs.lstatSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } if (NODEFS.isWindows && !stat.blksize) { stat.blksize = 4096; } if (NODEFS.isWindows && !stat.blocks) { stat.blocks = ((stat.size + stat.blksize - 1) / stat.blksize) | 0; } return { dev: stat.dev, ino: stat.ino, mode: stat.mode, nlink: stat.nlink, uid: stat.uid, gid: stat.gid, rdev: stat.rdev, size: stat.size, atime: stat.atime, mtime: stat.mtime, ctime: stat.ctime, blksize: stat.blksize, blocks: stat.blocks, }; }, setattr: function setattr(node, attr) { var path = NODEFS.realPath(node); try { if (attr.mode !== undefined) { fs.chmodSync(path, attr.mode); node.mode = attr.mode; } if (attr.timestamp !== undefined) { var date = new Date(attr.timestamp); fs.utimesSync(path, date, date); } if (attr.size !== undefined) { fs.truncateSync(path, attr.size); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, lookup: function lookup(parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); var mode = NODEFS.getMode(path); return NODEFS.createNode(parent, name, mode); }, mknod: function mknod(parent, name, mode, dev) { var node = NODEFS.createNode(parent, name, mode, dev); var path = NODEFS.realPath(node); try { if (FS.isDir(node.mode)) { fs.mkdirSync(path, node.mode); } else { fs.writeFileSync(path, "", { mode: node.mode }); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return node; }, rename: function rename(oldNode, newDir, newName) { var oldPath = NODEFS.realPath(oldNode); var newPath = PATH.join2(NODEFS.realPath(newDir), newName); try { fs.renameSync(oldPath, newPath); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, unlink: function unlink(parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); try { fs.unlinkSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, rmdir: function rmdir(parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); try { fs.rmdirSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, readdir: function readdir(node) { var path = NODEFS.realPath(node); try { return fs.readdirSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, symlink: function symlink(parent, newName, oldPath) { var newPath = PATH.join2(NODEFS.realPath(parent), newName); try { fs.symlinkSync(oldPath, newPath); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, readlink: function readlink(node) { var path = NODEFS.realPath(node); try { path = fs.readlinkSync(path); path = NODEJS_PATH.relative( NODEJS_PATH.resolve(node.mount.opts.root), path ); return path; } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, }, stream_ops: { open: function open(stream) { var path = NODEFS.realPath(stream.node); try { if (FS.isFile(stream.node.mode)) { stream.nfd = fs.openSync( path, NODEFS.flagsForNode(stream.flags) ); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, close: function close(stream) { try { if (FS.isFile(stream.node.mode) && stream.nfd) { fs.closeSync(stream.nfd); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, read: function read( stream, buffer, offset, length, position ) { if (length === 0) return 0; try { return fs.readSync( stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position ); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, write: function write( stream, buffer, offset, length, position ) { try { return fs.writeSync( stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position ); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, llseek: function llseek(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { try { var stat = fs.fstatSync(stream.nfd); position += stat.size; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return position; }, }, }; var WORKERFS = { DIR_MODE: 16895, FILE_MODE: 33279, reader: null, mount: function mount(_mount4) { assert(ENVIRONMENT_IS_WORKER); if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); var root = WORKERFS.createNode( null, "/", WORKERFS.DIR_MODE, 0 ); var createdParents = {}; function ensureParent(path) { var parts = path.split("/"); var parent = root; for (var i = 0; i < parts.length - 1; i++) { var curr = parts.slice(0, i + 1).join("/"); if (!createdParents[curr]) { createdParents[curr] = WORKERFS.createNode( parent, parts[i], WORKERFS.DIR_MODE, 0 ); } parent = createdParents[curr]; } return parent; } function base(path) { var parts = path.split("/"); return parts[parts.length - 1]; } Array.prototype.forEach.call( _mount4.opts["files"] || [], function (file) { WORKERFS.createNode( ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate ); } ); (_mount4.opts["blobs"] || []).forEach(function (obj) { WORKERFS.createNode( ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"] ); }); (_mount4.opts["packages"] || []).forEach(function (pack) { pack["metadata"].files.forEach(function (file) { var name = file.filename.substr(1); WORKERFS.createNode( ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack["blob"].slice(file.start, file.end) ); }); }); return root; }, createNode: function createNode( parent, name, mode, dev, contents, mtime ) { var node = FS.createNode(parent, name, mode); node.mode = mode; node.node_ops = WORKERFS.node_ops; node.stream_ops = WORKERFS.stream_ops; node.timestamp = (mtime || new Date()).getTime(); assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); if (mode === WORKERFS.FILE_MODE) { node.size = contents.size; node.contents = contents; } else { node.size = 4096; node.contents = {}; } if (parent) { parent.contents[name] = node; } return node; }, node_ops: { getattr: function getattr(node) { return { dev: 1, ino: undefined, mode: node.mode, nlink: 1, uid: 0, gid: 0, rdev: undefined, size: node.size, atime: new Date(node.timestamp), mtime: new Date(node.timestamp), ctime: new Date(node.timestamp), blksize: 4096, blocks: Math.ceil(node.size / 4096), }; }, setattr: function setattr(node, attr) { if (attr.mode !== undefined) { node.mode = attr.mode; } if (attr.timestamp !== undefined) { node.timestamp = attr.timestamp; } }, lookup: function lookup(parent, name) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); }, mknod: function mknod(parent, name, mode, dev) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, rename: function rename(oldNode, newDir, newName) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, unlink: function unlink(parent, name) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, rmdir: function rmdir(parent, name) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, readdir: function readdir(node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue; } entries.push(key); } return entries; }, symlink: function symlink(parent, newName, oldPath) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, readlink: function readlink(node) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, }, stream_ops: { read: function read( stream, buffer, offset, length, position ) { if (position >= stream.node.size) return 0; var chunk = stream.node.contents.slice( position, position + length ); var ab = WORKERFS.reader.readAsArrayBuffer(chunk); buffer.set(new Uint8Array(ab), offset); return chunk.size; }, write: function write( stream, buffer, offset, length, position ) { throw new FS.ErrnoError(ERRNO_CODES.EIO); }, llseek: function llseek(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { position += stream.node.size; } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return position; }, }, }; STATICTOP += 16; STATICTOP += 16; STATICTOP += 16; var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, trackingDelegate: {}, tracking: { openFlags: { READ: 1, WRITE: 2 } }, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, handleFSError: function handleFSError(e) { if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace(); return ___setErrNo(e.errno); }, lookupPath: function lookupPath(path, opts) { path = PATH.resolve(FS.cwd(), path); opts = opts || {}; if (!path) return { path: "", node: null }; var defaults = { follow_mount: true, recurse_count: 0 }; for (var key in defaults) { if (opts[key] === undefined) { opts[key] = defaults[key]; } } if (opts.recurse_count > 8) { throw new FS.ErrnoError(ERRNO_CODES.ELOOP); } var parts = PATH.normalizeArray( path.split("/").filter(function (p) { return !!p; }), false ); var current = FS.root; var current_path = "/"; for (var i = 0; i < parts.length; i++) { var islast = i === parts.length - 1; if (islast && opts.parent) { break; } current = FS.lookupNode(current, parts[i]); current_path = PATH.join2(current_path, parts[i]); if (FS.isMountpoint(current)) { if (!islast || (islast && opts.follow_mount)) { current = current.mounted.root; } } if (!islast || opts.follow) { var count = 0; while (FS.isLink(current.mode)) { var link = FS.readlink(current_path); current_path = PATH.resolve( PATH.dirname(current_path), link ); var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count, }); current = lookup.node; if (count++ > 40) { throw new FS.ErrnoError(ERRNO_CODES.ELOOP); } } } } return { path: current_path, node: current }; }, getPath: function getPath(node) { var path; while (true) { if (FS.isRoot(node)) { var mount = node.mount.mountpoint; if (!path) return mount; return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; } path = path ? node.name + "/" + path : node.name; node = node.parent; } }, hashName: function hashName(parentid, name) { var hash = 0; for (var i = 0; i < name.length; i++) { hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; } return ((parentid + hash) >>> 0) % FS.nameTable.length; }, hashAddNode: function hashAddNode(node) { var hash = FS.hashName(node.parent.id, node.name); node.name_next = FS.nameTable[hash]; FS.nameTable[hash] = node; }, hashRemoveNode: function hashRemoveNode(node) { var hash = FS.hashName(node.parent.id, node.name); if (FS.nameTable[hash] === node) { FS.nameTable[hash] = node.name_next; } else { var current = FS.nameTable[hash]; while (current) { if (current.name_next === node) { current.name_next = node.name_next; break; } current = current.name_next; } } }, lookupNode: function lookupNode(parent, name) { var err = FS.mayLookup(parent); if (err) { throw new FS.ErrnoError(err, parent); } var hash = FS.hashName(parent.id, name); for ( var node = FS.nameTable[hash]; node; node = node.name_next ) { var nodeName = node.name; if (node.parent.id === parent.id && nodeName === name) { return node; } } return FS.lookup(parent, name); }, createNode: function createNode(parent, name, mode, rdev) { if (!FS.FSNode) { FS.FSNode = function (parent, name, mode, rdev) { if (!parent) { parent = this; } this.parent = parent; this.mount = parent.mount; this.mounted = null; this.id = FS.nextInode++; this.name = name; this.mode = mode; this.node_ops = {}; this.stream_ops = {}; this.rdev = rdev; }; FS.FSNode.prototype = {}; var readMode = 292 | 73; var writeMode = 146; Object.defineProperties(FS.FSNode.prototype, { read: { get: function get() { return (this.mode & readMode) === readMode; }, set: function set(val) { val ? (this.mode |= readMode) : (this.mode &= ~readMode); }, }, write: { get: function get() { return (this.mode & writeMode) === writeMode; }, set: function set(val) { val ? (this.mode |= writeMode) : (this.mode &= ~writeMode); }, }, isFolder: { get: function get() { return FS.isDir(this.mode); }, }, isDevice: { get: function get() { return FS.isChrdev(this.mode); }, }, }); } var node = new FS.FSNode(parent, name, mode, rdev); FS.hashAddNode(node); return node; }, destroyNode: function destroyNode(node) { FS.hashRemoveNode(node); }, isRoot: function isRoot(node) { return node === node.parent; }, isMountpoint: function isMountpoint(node) { return !!node.mounted; }, isFile: function isFile(mode) { return (mode & 61440) === 32768; }, isDir: function isDir(mode) { return (mode & 61440) === 16384; }, isLink: function isLink(mode) { return (mode & 61440) === 40960; }, isChrdev: function isChrdev(mode) { return (mode & 61440) === 8192; }, isBlkdev: function isBlkdev(mode) { return (mode & 61440) === 24576; }, isFIFO: function isFIFO(mode) { return (mode & 61440) === 4096; }, isSocket: function isSocket(mode) { return (mode & 49152) === 49152; }, flagModes: { r: 0, rs: 1052672, "r+": 2, w: 577, wx: 705, xw: 705, "w+": 578, "wx+": 706, "xw+": 706, a: 1089, ax: 1217, xa: 1217, "a+": 1090, "ax+": 1218, "xa+": 1218, }, modeStringToFlags: function modeStringToFlags(str) { var flags = FS.flagModes[str]; if (typeof flags === "undefined") { throw new Error("Unknown file open mode: " + str); } return flags; }, flagsToPermissionString: function flagsToPermissionString( flag ) { var perms = ["r", "w", "rw"][flag & 3]; if (flag & 512) { perms += "w"; } return perms; }, nodePermissions: function nodePermissions(node, perms) { if (FS.ignorePermissions) { return 0; } if (perms.indexOf("r") !== -1 && !(node.mode & 292)) { return ERRNO_CODES.EACCES; } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) { return ERRNO_CODES.EACCES; } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) { return ERRNO_CODES.EACCES; } return 0; }, mayLookup: function mayLookup(dir) { var err = FS.nodePermissions(dir, "x"); if (err) return err; if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; return 0; }, mayCreate: function mayCreate(dir, name) { try { var node = FS.lookupNode(dir, name); return ERRNO_CODES.EEXIST; } catch (e) {} return FS.nodePermissions(dir, "wx"); }, mayDelete: function mayDelete(dir, name, isdir) { var node; try { node = FS.lookupNode(dir, name); } catch (e) { return e.errno; } var err = FS.nodePermissions(dir, "wx"); if (err) { return err; } if (isdir) { if (!FS.isDir(node.mode)) { return ERRNO_CODES.ENOTDIR; } if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { return ERRNO_CODES.EBUSY; } } else { if (FS.isDir(node.mode)) { return ERRNO_CODES.EISDIR; } } return 0; }, mayOpen: function mayOpen(node, flags) { if (!node) { return ERRNO_CODES.ENOENT; } if (FS.isLink(node.mode)) { return ERRNO_CODES.ELOOP; } else if (FS.isDir(node.mode)) { if ( FS.flagsToPermissionString(flags) !== "r" || flags & 512 ) { return ERRNO_CODES.EISDIR; } } return FS.nodePermissions( node, FS.flagsToPermissionString(flags) ); }, MAX_OPEN_FDS: 4096, nextfd: function nextfd(fd_start, fd_end) { fd_start = fd_start || 0; fd_end = fd_end || FS.MAX_OPEN_FDS; for (var fd = fd_start; fd <= fd_end; fd++) { if (!FS.streams[fd]) { return fd; } } throw new FS.ErrnoError(ERRNO_CODES.EMFILE); }, getStream: function getStream(fd) { return FS.streams[fd]; }, createStream: function createStream(stream, fd_start, fd_end) { if (!FS.FSStream) { FS.FSStream = function () {}; FS.FSStream.prototype = {}; Object.defineProperties(FS.FSStream.prototype, { object: { get: function get() { return this.node; }, set: function set(val) { this.node = val; }, }, isRead: { get: function get() { return (this.flags & 2097155) !== 1; }, }, isWrite: { get: function get() { return (this.flags & 2097155) !== 0; }, }, isAppend: { get: function get() { return this.flags & 1024; }, }, }); } var newStream = new FS.FSStream(); for (var p in stream) { newStream[p] = stream[p]; } stream = newStream; var fd = FS.nextfd(fd_start, fd_end); stream.fd = fd; FS.streams[fd] = stream; return stream; }, closeStream: function closeStream(fd) { FS.streams[fd] = null; }, chrdev_stream_ops: { open: function open(stream) { var device = FS.getDevice(stream.node.rdev); stream.stream_ops = device.stream_ops; if (stream.stream_ops.open) { stream.stream_ops.open(stream); } }, llseek: function llseek() { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); }, }, major: function major(dev) { return dev >> 8; }, minor: function minor(dev) { return dev & 255; }, makedev: function makedev(ma, mi) { return (ma << 8) | mi; }, registerDevice: function registerDevice(dev, ops) { FS.devices[dev] = { stream_ops: ops }; }, getDevice: function getDevice(dev) { return FS.devices[dev]; }, getMounts: function getMounts(mount) { var mounts = []; var check = [mount]; while (check.length) { var m = check.pop(); mounts.push(m); check.push.apply(check, m.mounts); } return mounts; }, syncfs: function syncfs(populate, callback) { if (typeof populate === "function") { callback = populate; populate = false; } FS.syncFSRequests++; if (FS.syncFSRequests > 1) { console.log( "warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work" ); } var mounts = FS.getMounts(FS.root.mount); var completed = 0; function doCallback(err) { assert(FS.syncFSRequests > 0); FS.syncFSRequests--; return callback(err); } function done(err) { if (err) { if (!done.errored) { done.errored = true; return doCallback(err); } return; } if (++completed >= mounts.length) { doCallback(null); } } mounts.forEach(function (mount) { if (!mount.type.syncfs) { return done(null); } mount.type.syncfs(mount, populate, done); }); }, mount: function mount(type, opts, mountpoint) { var root = mountpoint === "/"; var pseudo = !mountpoint; var node; if (root && FS.root) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } else if (!root && !pseudo) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false, }); mountpoint = lookup.path; node = lookup.node; if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (!FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } } var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [], }; var mountRoot = type.mount(mount); mountRoot.mount = mount; mount.root = mountRoot; if (root) { FS.root = mountRoot; } else if (node) { node.mounted = mount; if (node.mount) { node.mount.mounts.push(mount); } } return mountRoot; }, unmount: function unmount(mountpoint) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false, }); if (!FS.isMountpoint(lookup.node)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node = lookup.node; var mount = node.mounted; var mounts = FS.getMounts(mount); Object.keys(FS.nameTable).forEach(function (hash) { var current = FS.nameTable[hash]; while (current) { var next = current.name_next; if (mounts.indexOf(current.mount) !== -1) { FS.destroyNode(current); } current = next; } }); node.mounted = null; var idx = node.mount.mounts.indexOf(mount); assert(idx !== -1); node.mount.mounts.splice(idx, 1); }, lookup: function lookup(parent, name) { return parent.node_ops.lookup(parent, name); }, mknod: function mknod(path, mode, dev) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); if (!name || name === "." || name === "..") { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var err = FS.mayCreate(parent, name); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.mknod) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return parent.node_ops.mknod(parent, name, mode, dev); }, create: function create(path, mode) { mode = mode !== undefined ? mode : 438; mode &= 4095; mode |= 32768; return FS.mknod(path, mode, 0); }, mkdir: function mkdir(path, mode) { mode = mode !== undefined ? mode : 511; mode &= 511 | 512; mode |= 16384; return FS.mknod(path, mode, 0); }, mkdirTree: function mkdirTree(path, mode) { var dirs = path.split("/"); var d = ""; for (var i = 0; i < dirs.length; ++i) { if (!dirs[i]) continue; d += "/" + dirs[i]; try { FS.mkdir(d, mode); } catch (e) { if (e.errno != ERRNO_CODES.EEXIST) throw e; } } }, mkdev: function mkdev(path, mode, dev) { if (typeof dev === "undefined") { dev = mode; mode = 438; } mode |= 8192; return FS.mknod(path, mode, dev); }, symlink: function symlink(oldpath, newpath) { if (!PATH.resolve(oldpath)) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } var lookup = FS.lookupPath(newpath, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } var newname = PATH.basename(newpath); var err = FS.mayCreate(parent, newname); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.symlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return parent.node_ops.symlink(parent, newname, oldpath); }, rename: function rename(old_path, new_path) { var old_dirname = PATH.dirname(old_path); var new_dirname = PATH.dirname(new_path); var old_name = PATH.basename(old_path); var new_name = PATH.basename(new_path); var lookup, old_dir, new_dir; try { lookup = FS.lookupPath(old_path, { parent: true }); old_dir = lookup.node; lookup = FS.lookupPath(new_path, { parent: true }); new_dir = lookup.node; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); if (old_dir.mount !== new_dir.mount) { throw new FS.ErrnoError(ERRNO_CODES.EXDEV); } var old_node = FS.lookupNode(old_dir, old_name); var relative = PATH.relative(old_path, new_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } relative = PATH.relative(new_path, old_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) {} if (old_node === new_node) { return; } var isdir = FS.isDir(old_node.mode); var err = FS.mayDelete(old_dir, old_name, isdir); if (err) { throw new FS.ErrnoError(err); } err = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); if (err) { throw new FS.ErrnoError(err); } if (!old_dir.node_ops.rename) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if ( FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node)) ) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (new_dir !== old_dir) { err = FS.nodePermissions(old_dir, "w"); if (err) { throw new FS.ErrnoError(err); } } try { if (FS.trackingDelegate["willMovePath"]) { FS.trackingDelegate["willMovePath"](old_path, new_path); } } catch (e) { console.log( "FS.trackingDelegate['willMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message ); } FS.hashRemoveNode(old_node); try { old_dir.node_ops.rename(old_node, new_dir, new_name); } catch (e) { throw e; } finally { FS.hashAddNode(old_node); } try { if (FS.trackingDelegate["onMovePath"]) FS.trackingDelegate["onMovePath"](old_path, new_path); } catch (e) { console.log( "FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message ); } }, rmdir: function rmdir(path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, true); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.rmdir) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } try { if (FS.trackingDelegate["willDeletePath"]) { FS.trackingDelegate["willDeletePath"](path); } } catch (e) { console.log( "FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message ); } parent.node_ops.rmdir(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path); } catch (e) { console.log( "FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message ); } }, readdir: function readdir(path) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; if (!node.node_ops.readdir) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } return node.node_ops.readdir(node); }, unlink: function unlink(path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, false); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.unlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } try { if (FS.trackingDelegate["willDeletePath"]) { FS.trackingDelegate["willDeletePath"](path); } } catch (e) { console.log( "FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message ); } parent.node_ops.unlink(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path); } catch (e) { console.log( "FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message ); } }, readlink: function readlink(path) { var lookup = FS.lookupPath(path); var link = lookup.node; if (!link) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!link.node_ops.readlink) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return PATH.resolve( FS.getPath(link.parent), link.node_ops.readlink(link) ); }, stat: function stat(path, dontFollow) { var lookup = FS.lookupPath(path, { follow: !dontFollow }); var node = lookup.node; if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!node.node_ops.getattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return node.node_ops.getattr(node); }, lstat: function lstat(path) { return FS.stat(path, true); }, chmod: function chmod(path, mode, dontFollow) { var node; if (typeof path === "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } node.node_ops.setattr(node, { mode: (mode & 4095) | (node.mode & ~4095), timestamp: Date.now(), }); }, lchmod: function lchmod(path, mode) { FS.chmod(path, mode, true); }, fchmod: function fchmod(fd, mode) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } FS.chmod(stream.node, mode); }, chown: function chown(path, uid, gid, dontFollow) { var node; if (typeof path === "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } node.node_ops.setattr(node, { timestamp: Date.now() }); }, lchown: function lchown(path, uid, gid) { FS.chown(path, uid, gid, true); }, fchown: function fchown(fd, uid, gid) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } FS.chown(stream.node, uid, gid); }, truncate: function truncate(path, len) { if (len < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node; if (typeof path === "string") { var lookup = FS.lookupPath(path, { follow: true }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!FS.isFile(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var err = FS.nodePermissions(node, "w"); if (err) { throw new FS.ErrnoError(err); } node.node_ops.setattr(node, { size: len, timestamp: Date.now(), }); }, ftruncate: function ftruncate(fd, len) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } FS.truncate(stream.node, len); }, utime: function utime(path, atime, mtime) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime), }); }, open: function open(path, flags, mode, fd_start, fd_end) { if (path === "") { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags; mode = typeof mode === "undefined" ? 438 : mode; if (flags & 64) { mode = (mode & 4095) | 32768; } else { mode = 0; } var node; if ( (typeof path === "undefined" ? "undefined" : _typeof(path)) === "object" ) { node = path; } else { path = PATH.normalize(path); try { var lookup = FS.lookupPath(path, { follow: !(flags & 131072), }); node = lookup.node; } catch (e) {} } var created = false; if (flags & 64) { if (node) { if (flags & 128) { throw new FS.ErrnoError(ERRNO_CODES.EEXIST); } } else { node = FS.mknod(path, mode, 0); created = true; } } if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (FS.isChrdev(node.mode)) { flags &= ~512; } if (flags & 65536 && !FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } if (!created) { var err = FS.mayOpen(node, flags); if (err) { throw new FS.ErrnoError(err); } } if (flags & 512) { FS.truncate(node, 0); } flags &= ~(128 | 512); var stream = FS.createStream( { node: node, path: FS.getPath(node), flags: flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false, }, fd_start, fd_end ); if (stream.stream_ops.open) { stream.stream_ops.open(stream); } if (Module["logReadFiles"] && !(flags & 1)) { if (!FS.readFiles) FS.readFiles = {}; if (!(path in FS.readFiles)) { FS.readFiles[path] = 1; err("read file: " + path); } } try { if (FS.trackingDelegate["onOpenFile"]) { var trackingFlags = 0; if ((flags & 2097155) !== 1) { trackingFlags |= FS.tracking.openFlags.READ; } if ((flags & 2097155) !== 0) { trackingFlags |= FS.tracking.openFlags.WRITE; } FS.trackingDelegate["onOpenFile"](path, trackingFlags); } } catch (e) { console.log( "FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message ); } return stream; }, close: function close(stream) { if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (stream.getdents) stream.getdents = null; try { if (stream.stream_ops.close) { stream.stream_ops.close(stream); } } catch (e) { throw e; } finally { FS.closeStream(stream.fd); } stream.fd = null; }, isClosed: function isClosed(stream) { return stream.fd === null; }, llseek: function llseek(stream, offset, whence) { if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (!stream.seekable || !stream.stream_ops.llseek) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } stream.position = stream.stream_ops.llseek( stream, offset, whence ); stream.ungotten = []; return stream.position; }, read: function read(stream, buffer, offset, length, position) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!stream.stream_ops.read) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var seeking = typeof position !== "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } var bytesRead = stream.stream_ops.read( stream, buffer, offset, length, position ); if (!seeking) stream.position += bytesRead; return bytesRead; }, write: function write( stream, buffer, offset, length, position, canOwn ) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!stream.stream_ops.write) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if (stream.flags & 1024) { FS.llseek(stream, 0, 2); } var seeking = typeof position !== "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } var bytesWritten = stream.stream_ops.write( stream, buffer, offset, length, position, canOwn ); if (!seeking) stream.position += bytesWritten; try { if (stream.path && FS.trackingDelegate["onWriteToFile"]) FS.trackingDelegate["onWriteToFile"](stream.path); } catch (e) { console.log( "FS.trackingDelegate['onWriteToFile']('" + path + "') threw an exception: " + e.message ); } return bytesWritten; }, allocate: function allocate(stream, offset, length) { if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (offset < 0 || length <= 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ( !FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode) ) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } if (!stream.stream_ops.allocate) { throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); } stream.stream_ops.allocate(stream, offset, length); }, mmap: function mmap( stream, buffer, offset, length, position, prot, flags ) { if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EACCES); } if (!stream.stream_ops.mmap) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } return stream.stream_ops.mmap( stream, buffer, offset, length, position, prot, flags ); }, msync: function msync( stream, buffer, offset, length, mmapFlags ) { if (!stream || !stream.stream_ops.msync) { return 0; } return stream.stream_ops.msync( stream, buffer, offset, length, mmapFlags ); }, munmap: function munmap(stream) { return 0; }, ioctl: function ioctl(stream, cmd, arg) { if (!stream.stream_ops.ioctl) { throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); } return stream.stream_ops.ioctl(stream, cmd, arg); }, readFile: function readFile(path, opts) { opts = opts || {}; opts.flags = opts.flags || "r"; opts.encoding = opts.encoding || "binary"; if (opts.encoding !== "utf8" && opts.encoding !== "binary") { throw new Error( 'Invalid encoding type "' + opts.encoding + '"' ); } var ret; var stream = FS.open(path, opts.flags); var stat = FS.stat(path); var length = stat.size; var buf = new Uint8Array(length); FS.read(stream, buf, 0, length, 0); if (opts.encoding === "utf8") { ret = UTF8ArrayToString(buf, 0); } else if (opts.encoding === "binary") { ret = buf; } FS.close(stream); return ret; }, writeFile: function writeFile(path, data, opts) { opts = opts || {}; opts.flags = opts.flags || "w"; var stream = FS.open(path, opts.flags, opts.mode); if (typeof data === "string") { var buf = new Uint8Array(lengthBytesUTF8(data) + 1); var actualNumBytes = stringToUTF8Array( data, buf, 0, buf.length ); FS.write( stream, buf, 0, actualNumBytes, undefined, opts.canOwn ); } else if (ArrayBuffer.isView(data)) { FS.write( stream, data, 0, data.byteLength, undefined, opts.canOwn ); } else { throw new Error("Unsupported data type"); } FS.close(stream); }, cwd: function cwd() { return FS.currentPath; }, chdir: function chdir(path) { var lookup = FS.lookupPath(path, { follow: true }); if (lookup.node === null) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!FS.isDir(lookup.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } var err = FS.nodePermissions(lookup.node, "x"); if (err) { throw new FS.ErrnoError(err); } FS.currentPath = lookup.path; }, createDefaultDirectories: function createDefaultDirectories() { FS.mkdir("/tmp"); FS.mkdir("/home"); FS.mkdir("/home/web_user"); }, createDefaultDevices: function createDefaultDevices() { FS.mkdir("/dev"); FS.registerDevice(FS.makedev(1, 3), { read: function read() { return 0; }, write: function write(stream, buffer, offset, length, pos) { return length; }, }); FS.mkdev("/dev/null", FS.makedev(1, 3)); TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); FS.mkdev("/dev/tty", FS.makedev(5, 0)); FS.mkdev("/dev/tty1", FS.makedev(6, 0)); var random_device; if (typeof crypto !== "undefined") { var randomBuffer = new Uint8Array(1); random_device = function random_device() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; } else if (ENVIRONMENT_IS_NODE) { random_device = function random_device() { return require("crypto")["randomBytes"](1)[0]; }; } else { random_device = function random_device() { return (Math.random() * 256) | 0; }; } FS.createDevice("/dev", "random", random_device); FS.createDevice("/dev", "urandom", random_device); FS.mkdir("/dev/shm"); FS.mkdir("/dev/shm/tmp"); }, createSpecialDirectories: function createSpecialDirectories() { FS.mkdir("/proc"); FS.mkdir("/proc/self"); FS.mkdir("/proc/self/fd"); FS.mount( { mount: function mount() { var node = FS.createNode( "/proc/self", "fd", 16384 | 511, 73 ); node.node_ops = { lookup: function lookup(parent, name) { var fd = +name; var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: function readlink() { return stream.path; }, }, }; ret.parent = ret; return ret; }, }; return node; }, }, {}, "/proc/self/fd" ); }, createStandardStreams: function createStandardStreams() { if (Module["stdin"]) { FS.createDevice("/dev", "stdin", Module["stdin"]); } else { FS.symlink("/dev/tty", "/dev/stdin"); } if (Module["stdout"]) { FS.createDevice("/dev", "stdout", null, Module["stdout"]); } else { FS.symlink("/dev/tty", "/dev/stdout"); } if (Module["stderr"]) { FS.createDevice("/dev", "stderr", null, Module["stderr"]); } else { FS.symlink("/dev/tty1", "/dev/stderr"); } var stdin = FS.open("/dev/stdin", "r"); assert( stdin.fd === 0, "invalid handle for stdin (" + stdin.fd + ")" ); var stdout = FS.open("/dev/stdout", "w"); assert( stdout.fd === 1, "invalid handle for stdout (" + stdout.fd + ")" ); var stderr = FS.open("/dev/stderr", "w"); assert( stderr.fd === 2, "invalid handle for stderr (" + stderr.fd + ")" ); }, ensureErrnoError: function ensureErrnoError() { if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { this.node = node; this.setErrno = function (errno) { this.errno = errno; for (var key in ERRNO_CODES) { if (ERRNO_CODES[key] === errno) { this.code = key; break; } } }; this.setErrno(errno); this.message = ERRNO_MESSAGES[errno]; if (this.stack) Object.defineProperty(this, "stack", { value: new Error().stack, writable: true, }); }; FS.ErrnoError.prototype = new Error(); FS.ErrnoError.prototype.constructor = FS.ErrnoError; [ERRNO_CODES.ENOENT].forEach(function (code) { FS.genericErrors[code] = new FS.ErrnoError(code); FS.genericErrors[code].stack = ""; }); }, staticInit: function staticInit() { FS.ensureErrnoError(); FS.nameTable = new Array(4096); FS.mount(MEMFS, {}, "/"); FS.createDefaultDirectories(); FS.createDefaultDevices(); FS.createSpecialDirectories(); FS.filesystems = { MEMFS: MEMFS, IDBFS: IDBFS, NODEFS: NODEFS, WORKERFS: WORKERFS, }; }, init: function init(input, output, error) { assert( !FS.init.initialized, "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)" ); FS.init.initialized = true; FS.ensureErrnoError(); Module["stdin"] = input || Module["stdin"]; Module["stdout"] = output || Module["stdout"]; Module["stderr"] = error || Module["stderr"]; FS.createStandardStreams(); }, quit: function quit() { FS.init.initialized = false; var fflush = Module["_fflush"]; if (fflush) fflush(0); for (var i = 0; i < FS.streams.length; i++) { var stream = FS.streams[i]; if (!stream) { continue; } FS.close(stream); } }, getMode: function getMode(canRead, canWrite) { var mode = 0; if (canRead) mode |= 292 | 73; if (canWrite) mode |= 146; return mode; }, joinPath: function joinPath(parts, forceRelative) { var path = PATH.join.apply(null, parts); if (forceRelative && path[0] == "/") path = path.substr(1); return path; }, absolutePath: function absolutePath(relative, base) { return PATH.resolve(base, relative); }, standardizePath: function standardizePath(path) { return PATH.normalize(path); }, findObject: function findObject(path, dontResolveLastLink) { var ret = FS.analyzePath(path, dontResolveLastLink); if (ret.exists) { return ret.object; } else { ___setErrNo(ret.error); return null; } }, analyzePath: function analyzePath(path, dontResolveLastLink) { try { var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink, }); path = lookup.path; } catch (e) {} var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null, }; try { var lookup = FS.lookupPath(path, { parent: true }); ret.parentExists = true; ret.parentPath = lookup.path; ret.parentObject = lookup.node; ret.name = PATH.basename(path); lookup = FS.lookupPath(path, { follow: !dontResolveLastLink, }); ret.exists = true; ret.path = lookup.path; ret.object = lookup.node; ret.name = lookup.node.name; ret.isRoot = lookup.path === "/"; } catch (e) { ret.error = e.errno; } return ret; }, createFolder: function createFolder( parent, name, canRead, canWrite ) { var path = PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ); var mode = FS.getMode(canRead, canWrite); return FS.mkdir(path, mode); }, createPath: function createPath( parent, path, canRead, canWrite ) { parent = typeof parent === "string" ? parent : FS.getPath(parent); var parts = path.split("/").reverse(); while (parts.length) { var part = parts.pop(); if (!part) continue; var current = PATH.join2(parent, part); try { FS.mkdir(current); } catch (e) {} parent = current; } return current; }, createFile: function createFile( parent, name, properties, canRead, canWrite ) { var path = PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ); var mode = FS.getMode(canRead, canWrite); return FS.create(path, mode); }, createDataFile: function createDataFile( parent, name, data, canRead, canWrite, canOwn ) { var path = name ? PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ) : parent; var mode = FS.getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data === "string") { var arr = new Array(data.length); for (var i = 0, len = data.length; i < len; ++i) { arr[i] = data.charCodeAt(i); } data = arr; } FS.chmod(node, mode | 146); var stream = FS.open(node, "w"); FS.write(stream, data, 0, data.length, 0, canOwn); FS.close(stream); FS.chmod(node, mode); } return node; }, createDevice: function createDevice( parent, name, input, output ) { var path = PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ); var mode = FS.getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); FS.registerDevice(dev, { open: function open(stream) { stream.seekable = false; }, close: function close(stream) { if (output && output.buffer && output.buffer.length) { output(10); } }, read: function read(stream, buffer, offset, length, pos) { var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = input(); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: function write(stream, buffer, offset, length, pos) { for (var i = 0; i < length; i++) { try { output(buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } } if (length) { stream.node.timestamp = Date.now(); } return i; }, }); return FS.mkdev(path, mode, dev); }, createLink: function createLink( parent, name, target, canRead, canWrite ) { var path = PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ); return FS.symlink(target, path); }, forceLoadFile: function forceLoadFile(obj) { if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; var success = true; if (typeof XMLHttpRequest !== "undefined") { throw new Error( "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread." ); } else if (Module["read"]) { try { obj.contents = intArrayFromString( Module["read"](obj.url), true ); obj.usedBytes = obj.contents.length; } catch (e) { success = false; } } else { throw new Error( "Cannot load without read() or XMLHttpRequest." ); } if (!success) ___setErrNo(ERRNO_CODES.EIO); return success; }, createLazyFile: function createLazyFile( parent, name, url, canRead, canWrite ) { function LazyUint8Array() { this.lengthKnown = false; this.chunks = []; } LazyUint8Array.prototype.get = function LazyUint8Array_get( idx ) { if (idx > this.length - 1 || idx < 0) { return undefined; } var chunkOffset = idx % this.chunkSize; var chunkNum = (idx / this.chunkSize) | 0; return this.getter(chunkNum)[chunkOffset]; }; LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { this.getter = getter; }; LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { var xhr = new XMLHttpRequest(); xhr.open("HEAD", url, false); xhr.send(null); if ( !( (xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 ) ) throw new Error( "Couldn't load " + url + ". Status: " + xhr.status ); var datalength = Number( xhr.getResponseHeader("Content-length") ); var header; var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; var chunkSize = 1024 * 1024; if (!hasByteServing) chunkSize = datalength; var doXHR = function doXHR(from, to) { if (from > to) throw new Error( "invalid range (" + from + ", " + to + ") or no bytes requested!" ); if (to > datalength - 1) throw new Error( "only " + datalength + " bytes available! programmer error!" ); var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); if (datalength !== chunkSize) xhr.setRequestHeader( "Range", "bytes=" + from + "-" + to ); if (typeof Uint8Array != "undefined") xhr.responseType = "arraybuffer"; if (xhr.overrideMimeType) { xhr.overrideMimeType( "text/plain; charset=x-user-defined" ); } xhr.send(null); if ( !( (xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 ) ) throw new Error( "Couldn't load " + url + ". Status: " + xhr.status ); if (xhr.response !== undefined) { return new Uint8Array(xhr.response || []); } else { return intArrayFromString( xhr.responseText || "", true ); } }; var lazyArray = this; lazyArray.setDataGetter(function (chunkNum) { var start = chunkNum * chunkSize; var end = (chunkNum + 1) * chunkSize - 1; end = Math.min(end, datalength - 1); if (typeof lazyArray.chunks[chunkNum] === "undefined") { lazyArray.chunks[chunkNum] = doXHR(start, end); } if (typeof lazyArray.chunks[chunkNum] === "undefined") throw new Error("doXHR failed!"); return lazyArray.chunks[chunkNum]; }); if (usesGzip || !datalength) { chunkSize = datalength = 1; datalength = this.getter(0).length; chunkSize = datalength; console.log( "LazyFiles on gzip forces download of the whole file when length is accessed" ); } this._length = datalength; this._chunkSize = chunkSize; this.lengthKnown = true; }; if (typeof XMLHttpRequest !== "undefined") { if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; var lazyArray = new LazyUint8Array(); Object.defineProperties(lazyArray, { length: { get: function get() { if (!this.lengthKnown) { this.cacheLength(); } return this._length; }, }, chunkSize: { get: function get() { if (!this.lengthKnown) { this.cacheLength(); } return this._chunkSize; }, }, }); var properties = { isDevice: false, contents: lazyArray }; } else { var properties = { isDevice: false, url: url }; } var node = FS.createFile( parent, name, properties, canRead, canWrite ); if (properties.contents) { node.contents = properties.contents; } else if (properties.url) { node.contents = null; node.url = properties.url; } Object.defineProperties(node, { usedBytes: { get: function get() { return this.contents.length; }, }, }); var stream_ops = {}; var keys = Object.keys(node.stream_ops); keys.forEach(function (key) { var fn = node.stream_ops[key]; stream_ops[key] = function forceLoadLazyFile() { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } return fn.apply(null, arguments); }; }); stream_ops.read = function stream_ops_read( stream, buffer, offset, length, position ) { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } var contents = stream.node.contents; if (position >= contents.length) return 0; var size = Math.min(contents.length - position, length); assert(size >= 0); if (contents.slice) { for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } else { for (var i = 0; i < size; i++) { buffer[offset + i] = contents.get(position + i); } } return size; }; node.stream_ops = stream_ops; return node; }, createPreloadedFile: function createPreloadedFile( parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish ) { Browser.init(); var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; var dep = getUniqueRunDependency("cp " + fullname); function processData(byteArray) { function finish(byteArray) { if (preFinish) preFinish(); if (!dontCreateFile) { FS.createDataFile( parent, name, byteArray, canRead, canWrite, canOwn ); } if (onload) onload(); removeRunDependency(dep); } var handled = false; Module["preloadPlugins"].forEach(function (plugin) { if (handled) return; if (plugin["canHandle"](fullname)) { plugin["handle"]( byteArray, fullname, finish, function () { if (onerror) onerror(); removeRunDependency(dep); } ); handled = true; } }); if (!handled) finish(byteArray); } addRunDependency(dep); if (typeof url == "string") { Browser.asyncLoad( url, function (byteArray) { processData(byteArray); }, onerror ); } else { processData(url); } }, indexedDB: function indexedDB() { return ( window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB ); }, DB_NAME: function DB_NAME() { return "EM_FS_" + window.location.pathname; }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: function saveFilesToDB(paths, onload, onerror) { onload = onload || function () {}; onerror = onerror || function () {}; var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open( FS.DB_NAME(), FS.DB_VERSION ); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { console.log("creating db"); var db = openRequest.result; db.createObjectStore(FS.DB_STORE_NAME); }; openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; var transaction = db.transaction( [FS.DB_STORE_NAME], "readwrite" ); var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach(function (path) { var putRequest = files.put( FS.analyzePath(path).object.contents, path ); putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish(); }; putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; }, loadFilesFromDB: function loadFilesFromDB( paths, onload, onerror ) { onload = onload || function () {}; onerror = onerror || function () {}; var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open( FS.DB_NAME(), FS.DB_VERSION ); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = onerror; openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; try { var transaction = db.transaction( [FS.DB_STORE_NAME], "readonly" ); } catch (e) { onerror(e); return; } var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach(function (path) { var getRequest = files.get(path); getRequest.onsuccess = function getRequest_onsuccess() { if (FS.analyzePath(path).exists) { FS.unlink(path); } FS.createDataFile( PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true ); ok++; if (ok + fail == total) finish(); }; getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; }, }; var SYSCALLS = { DEFAULT_POLLMASK: 5, mappings: {}, umask: 511, calculateAt: function calculateAt(dirfd, path) { if (path[0] !== "/") { var dir; if (dirfd === -100) { dir = FS.cwd(); } else { var dirstream = FS.getStream(dirfd); if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); dir = dirstream.path; } path = PATH.join2(dir, path); } return path; }, doStat: function doStat(func, path, buf) { try { var stat = func(path); } catch (e) { if ( e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node)) ) { return -ERRNO_CODES.ENOTDIR; } throw e; } HEAP32[buf >> 2] = stat.dev; HEAP32[(buf + 4) >> 2] = 0; HEAP32[(buf + 8) >> 2] = stat.ino; HEAP32[(buf + 12) >> 2] = stat.mode; HEAP32[(buf + 16) >> 2] = stat.nlink; HEAP32[(buf + 20) >> 2] = stat.uid; HEAP32[(buf + 24) >> 2] = stat.gid; HEAP32[(buf + 28) >> 2] = stat.rdev; HEAP32[(buf + 32) >> 2] = 0; HEAP32[(buf + 36) >> 2] = stat.size; HEAP32[(buf + 40) >> 2] = 4096; HEAP32[(buf + 44) >> 2] = stat.blocks; HEAP32[(buf + 48) >> 2] = (stat.atime.getTime() / 1e3) | 0; HEAP32[(buf + 52) >> 2] = 0; HEAP32[(buf + 56) >> 2] = (stat.mtime.getTime() / 1e3) | 0; HEAP32[(buf + 60) >> 2] = 0; HEAP32[(buf + 64) >> 2] = (stat.ctime.getTime() / 1e3) | 0; HEAP32[(buf + 68) >> 2] = 0; HEAP32[(buf + 72) >> 2] = stat.ino; return 0; }, doMsync: function doMsync(addr, stream, len, flags) { var buffer = new Uint8Array( HEAPU8.subarray(addr, addr + len) ); FS.msync(stream, buffer, 0, len, flags); }, doMkdir: function doMkdir(path, mode) { path = PATH.normalize(path); if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1); FS.mkdir(path, mode, 0); return 0; }, doMknod: function doMknod(path, mode, dev) { switch (mode & 61440) { case 32768: case 8192: case 24576: case 4096: case 49152: break; default: return -ERRNO_CODES.EINVAL; } FS.mknod(path, mode, dev); return 0; }, doReadlink: function doReadlink(path, buf, bufsize) { if (bufsize <= 0) return -ERRNO_CODES.EINVAL; var ret = FS.readlink(path); var len = Math.min(bufsize, lengthBytesUTF8(ret)); var endChar = HEAP8[buf + len]; stringToUTF8(ret, buf, bufsize + 1); HEAP8[buf + len] = endChar; return len; }, doAccess: function doAccess(path, amode) { if (amode & ~7) { return -ERRNO_CODES.EINVAL; } var node; var lookup = FS.lookupPath(path, { follow: true }); node = lookup.node; var perms = ""; if (amode & 4) perms += "r"; if (amode & 2) perms += "w"; if (amode & 1) perms += "x"; if (perms && FS.nodePermissions(node, perms)) { return -ERRNO_CODES.EACCES; } return 0; }, doDup: function doDup(path, flags, suggestFD) { var suggest = FS.getStream(suggestFD); if (suggest) FS.close(suggest); return FS.open(path, flags, 0, suggestFD, suggestFD).fd; }, doReadv: function doReadv(stream, iov, iovcnt, offset) { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = HEAP32[(iov + i * 8) >> 2]; var len = HEAP32[(iov + (i * 8 + 4)) >> 2]; var curr = FS.read(stream, HEAP8, ptr, len, offset); if (curr < 0) return -1; ret += curr; if (curr < len) break; } return ret; }, doWritev: function doWritev(stream, iov, iovcnt, offset) { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = HEAP32[(iov + i * 8) >> 2]; var len = HEAP32[(iov + (i * 8 + 4)) >> 2]; var curr = FS.write(stream, HEAP8, ptr, len, offset); if (curr < 0) return -1; ret += curr; } return ret; }, varargs: 0, get: function get(varargs) { SYSCALLS.varargs += 4; var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2]; return ret; }, getStr: function getStr() { var ret = Pointer_stringify(SYSCALLS.get()); return ret; }, getStreamFromFD: function getStreamFromFD() { var stream = FS.getStream(SYSCALLS.get()); if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); return stream; }, getSocketFromFD: function getSocketFromFD() { var socket = SOCKFS.getSocket(SYSCALLS.get()); if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF); return socket; }, getSocketAddress: function getSocketAddress(allowNull) { var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get(); if (allowNull && addrp === 0) return null; var info = __read_sockaddr(addrp, addrlen); if (info.errno) throw new FS.ErrnoError(info.errno); info.addr = DNS.lookup_addr(info.addr) || info.addr; return info; }, get64: function get64() { var low = SYSCALLS.get(), high = SYSCALLS.get(); if (low >= 0) assert(high === 0); else assert(high === -1); return low; }, getZero: function getZero() { assert(SYSCALLS.get() === 0); }, }; function ___syscall140(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); var offset = offset_low; FS.llseek(stream, offset, whence); HEAP32[result >> 2] = stream.position; if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; return 0; } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall145(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); return SYSCALLS.doReadv(stream, iov, iovcnt); } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall146(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); return SYSCALLS.doWritev(stream, iov, iovcnt); } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall221(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); switch (cmd) { case 0: { var arg = SYSCALLS.get(); if (arg < 0) { return -ERRNO_CODES.EINVAL; } var newStream; newStream = FS.open(stream.path, stream.flags, 0, arg); return newStream.fd; } case 1: case 2: return 0; case 3: return stream.flags; case 4: { var arg = SYSCALLS.get(); stream.flags |= arg; return 0; } case 12: case 12: { var arg = SYSCALLS.get(); var offset = 0; HEAP16[(arg + offset) >> 1] = 2; return 0; } case 13: case 14: case 13: case 14: return 0; case 16: case 8: return -ERRNO_CODES.EINVAL; case 9: ___setErrNo(ERRNO_CODES.EINVAL); return -1; default: { return -ERRNO_CODES.EINVAL; } } } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall5(which, varargs) { SYSCALLS.varargs = varargs; try { var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get(); var stream = FS.open(pathname, flags, mode); return stream.fd; } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall54(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); switch (op) { case 21509: case 21505: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return 0; } case 21510: case 21511: case 21512: case 21506: case 21507: case 21508: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return 0; } case 21519: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; var argp = SYSCALLS.get(); HEAP32[argp >> 2] = 0; return 0; } case 21520: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return -ERRNO_CODES.EINVAL; } case 21531: { var argp = SYSCALLS.get(); return FS.ioctl(stream, op, argp); } case 21523: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return 0; } case 21524: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return 0; } default: abort("bad ioctl syscall " + op); } } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall6(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(); FS.close(stream); return 0; } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___unlock() {} function getShiftFromSize(size) { switch (size) { case 1: return 0; case 2: return 1; case 4: return 2; case 8: return 3; default: throw new TypeError("Unknown type size: " + size); } } function embind_init_charCodes() { var codes = new Array(256); for (var i = 0; i < 256; ++i) { codes[i] = String.fromCharCode(i); } embind_charCodes = codes; } var embind_charCodes = undefined; function readLatin1String(ptr) { var ret = ""; var c = ptr; while (HEAPU8[c]) { ret += embind_charCodes[HEAPU8[c++]]; } return ret; } var awaitingDependencies = {}; var registeredTypes = {}; var typeDependencies = {}; var char_0 = 48; var char_9 = 57; function makeLegalFunctionName(name) { if (undefined === name) { return "_unknown"; } name = name.replace(/[^a-zA-Z0-9_]/g, "$"); var f = name.charCodeAt(0); if (f >= char_0 && f <= char_9) { return "_" + name; } else { return name; } } function createNamedFunction(name, body) { name = makeLegalFunctionName(name); return new Function( "body", "return function " + name + "() {\n" + ' "use strict";' + " return body.apply(this, arguments);\n" + "};\n" )(body); } function extendError(baseErrorType, errorName) { var errorClass = createNamedFunction( errorName, function (message) { this.name = errorName; this.message = message; var stack = new Error(message).stack; if (stack !== undefined) { this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); } } ); errorClass.prototype = Object.create(baseErrorType.prototype); errorClass.prototype.constructor = errorClass; errorClass.prototype.toString = function () { if (this.message === undefined) { return this.name; } else { return this.name + ": " + this.message; } }; return errorClass; } var BindingError = undefined; function throwBindingError(message) { throw new BindingError(message); } var InternalError = undefined; function throwInternalError(message) { throw new InternalError(message); } function whenDependentTypesAreResolved( myTypes, dependentTypes, getTypeConverters ) { myTypes.forEach(function (type) { typeDependencies[type] = dependentTypes; }); function onComplete(typeConverters) { var myTypeConverters = getTypeConverters(typeConverters); if (myTypeConverters.length !== myTypes.length) { throwInternalError("Mismatched type converter count"); } for (var i = 0; i < myTypes.length; ++i) { registerType(myTypes[i], myTypeConverters[i]); } } var typeConverters = new Array(dependentTypes.length); var unregisteredTypes = []; var registered = 0; dependentTypes.forEach(function (dt, i) { if (registeredTypes.hasOwnProperty(dt)) { typeConverters[i] = registeredTypes[dt]; } else { unregisteredTypes.push(dt); if (!awaitingDependencies.hasOwnProperty(dt)) { awaitingDependencies[dt] = []; } awaitingDependencies[dt].push(function () { typeConverters[i] = registeredTypes[dt]; ++registered; if (registered === unregisteredTypes.length) { onComplete(typeConverters); } }); } }); if (0 === unregisteredTypes.length) { onComplete(typeConverters); } } function registerType(rawType, registeredInstance, options) { options = options || {}; if (!("argPackAdvance" in registeredInstance)) { throw new TypeError( "registerType registeredInstance requires argPackAdvance" ); } var name = registeredInstance.name; if (!rawType) { throwBindingError( 'type "' + name + '" must have a positive integer typeid pointer' ); } if (registeredTypes.hasOwnProperty(rawType)) { if (options.ignoreDuplicateRegistrations) { return; } else { throwBindingError( "Cannot register type '" + name + "' twice" ); } } registeredTypes[rawType] = registeredInstance; delete typeDependencies[rawType]; if (awaitingDependencies.hasOwnProperty(rawType)) { var callbacks = awaitingDependencies[rawType]; delete awaitingDependencies[rawType]; callbacks.forEach(function (cb) { cb(); }); } } function __embind_register_bool( rawType, name, size, trueValue, falseValue ) { var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name: name, fromWireType: function fromWireType(wt) { return !!wt; }, toWireType: function toWireType(destructors, o) { return o ? trueValue : falseValue; }, argPackAdvance: 8, readValueFromPointer: function readValueFromPointer(pointer) { var heap; if (size === 1) { heap = HEAP8; } else if (size === 2) { heap = HEAP16; } else if (size === 4) { heap = HEAP32; } else { throw new TypeError("Unknown boolean type size: " + name); } return this["fromWireType"](heap[pointer >> shift]); }, destructorFunction: null, }); } function ClassHandle_isAliasOf(other) { if (!(this instanceof ClassHandle)) { return false; } if (!(other instanceof ClassHandle)) { return false; } var leftClass = this.$$.ptrType.registeredClass; var left = this.$$.ptr; var rightClass = other.$$.ptrType.registeredClass; var right = other.$$.ptr; while (leftClass.baseClass) { left = leftClass.upcast(left); leftClass = leftClass.baseClass; } while (rightClass.baseClass) { right = rightClass.upcast(right); rightClass = rightClass.baseClass; } return leftClass === rightClass && left === right; } function shallowCopyInternalPointer(o) { return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType, }; } function throwInstanceAlreadyDeleted(obj) { function getInstanceTypeName(handle) { return handle.$$.ptrType.registeredClass.name; } throwBindingError( getInstanceTypeName(obj) + " instance already deleted" ); } function ClassHandle_clone() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.preservePointerOnDelete) { this.$$.count.value += 1; return this; } else { var clone = Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) }, }); clone.$$.count.value += 1; clone.$$.deleteScheduled = false; return clone; } } function runDestructor(handle) { var $$ = handle.$$; if ($$.smartPtr) { $$.smartPtrType.rawDestructor($$.smartPtr); } else { $$.ptrType.registeredClass.rawDestructor($$.ptr); } } function ClassHandle_delete() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if ( this.$$.deleteScheduled && !this.$$.preservePointerOnDelete ) { throwBindingError("Object already scheduled for deletion"); } this.$$.count.value -= 1; var toDelete = 0 === this.$$.count.value; if (toDelete) { runDestructor(this); } if (!this.$$.preservePointerOnDelete) { this.$$.smartPtr = undefined; this.$$.ptr = undefined; } } function ClassHandle_isDeleted() { return !this.$$.ptr; } var delayFunction = undefined; var deletionQueue = []; function flushPendingDeletes() { while (deletionQueue.length) { var obj = deletionQueue.pop(); obj.$$.deleteScheduled = false; obj["delete"](); } } function ClassHandle_deleteLater() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if ( this.$$.deleteScheduled && !this.$$.preservePointerOnDelete ) { throwBindingError("Object already scheduled for deletion"); } deletionQueue.push(this); if (deletionQueue.length === 1 && delayFunction) { delayFunction(flushPendingDeletes); } this.$$.deleteScheduled = true; return this; } function init_ClassHandle() { ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; ClassHandle.prototype["clone"] = ClassHandle_clone; ClassHandle.prototype["delete"] = ClassHandle_delete; ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; } function ClassHandle() {} var registeredPointers = {}; function ensureOverloadTable(proto, methodName, humanName) { if (undefined === proto[methodName].overloadTable) { var prevFunc = proto[methodName]; proto[methodName] = function () { if ( !proto[methodName].overloadTable.hasOwnProperty( arguments.length ) ) { throwBindingError( "Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!" ); } return proto[methodName].overloadTable[ arguments.length ].apply(this, arguments); }; proto[methodName].overloadTable = []; proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; } } function exposePublicSymbol(name, value, numArguments) { if (Module.hasOwnProperty(name)) { if ( undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments]) ) { throwBindingError( "Cannot register public name '" + name + "' twice" ); } ensureOverloadTable(Module, name, name); if (Module.hasOwnProperty(numArguments)) { throwBindingError( "Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!" ); } Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; if (undefined !== numArguments) { Module[name].numArguments = numArguments; } } } function RegisteredClass( name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast ) { this.name = name; this.constructor = constructor; this.instancePrototype = instancePrototype; this.rawDestructor = rawDestructor; this.baseClass = baseClass; this.getActualType = getActualType; this.upcast = upcast; this.downcast = downcast; this.pureVirtualFunctions = []; } function upcastPointer(ptr, ptrClass, desiredClass) { while (ptrClass !== desiredClass) { if (!ptrClass.upcast) { throwBindingError( "Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name ); } ptr = ptrClass.upcast(ptr); ptrClass = ptrClass.baseClass; } return ptr; } function constNoSmartPtrRawPointerToWireType( destructors, handle ) { if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } return 0; } if (!handle.$$) { throwBindingError( 'Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name ); } if (!handle.$$.ptr) { throwBindingError( "Cannot pass deleted object as a pointer of type " + this.name ); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer( handle.$$.ptr, handleClass, this.registeredClass ); return ptr; } function genericPointerToWireType(destructors, handle) { var ptr; if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } if (this.isSmartPointer) { ptr = this.rawConstructor(); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } return ptr; } else { return 0; } } if (!handle.$$) { throwBindingError( 'Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name ); } if (!handle.$$.ptr) { throwBindingError( "Cannot pass deleted object as a pointer of type " + this.name ); } if (!this.isConst && handle.$$.ptrType.isConst) { throwBindingError( "Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name ); } var handleClass = handle.$$.ptrType.registeredClass; ptr = upcastPointer( handle.$$.ptr, handleClass, this.registeredClass ); if (this.isSmartPointer) { if (undefined === handle.$$.smartPtr) { throwBindingError( "Passing raw pointer to smart pointer is illegal" ); } switch (this.sharingPolicy) { case 0: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { throwBindingError( "Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name ); } break; case 1: ptr = handle.$$.smartPtr; break; case 2: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { var clonedHandle = handle["clone"](); ptr = this.rawShare( ptr, __emval_register(function () { clonedHandle["delete"](); }) ); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } } break; default: throwBindingError("Unsupporting sharing policy"); } } return ptr; } function nonConstNoSmartPtrRawPointerToWireType( destructors, handle ) { if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } return 0; } if (!handle.$$) { throwBindingError( 'Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name ); } if (!handle.$$.ptr) { throwBindingError( "Cannot pass deleted object as a pointer of type " + this.name ); } if (handle.$$.ptrType.isConst) { throwBindingError( "Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name ); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer( handle.$$.ptr, handleClass, this.registeredClass ); return ptr; } function simpleReadValueFromPointer(pointer) { return this["fromWireType"](HEAPU32[pointer >> 2]); } function RegisteredPointer_getPointee(ptr) { if (this.rawGetPointee) { ptr = this.rawGetPointee(ptr); } return ptr; } function RegisteredPointer_destructor(ptr) { if (this.rawDestructor) { this.rawDestructor(ptr); } } function RegisteredPointer_deleteObject(handle) { if (handle !== null) { handle["delete"](); } } function downcastPointer(ptr, ptrClass, desiredClass) { if (ptrClass === desiredClass) { return ptr; } if (undefined === desiredClass.baseClass) { return null; } var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); if (rv === null) { return null; } return desiredClass.downcast(rv); } function getInheritedInstanceCount() { return Object.keys(registeredInstances).length; } function getLiveInheritedInstances() { var rv = []; for (var k in registeredInstances) { if (registeredInstances.hasOwnProperty(k)) { rv.push(registeredInstances[k]); } } return rv; } function setDelayFunction(fn) { delayFunction = fn; if (deletionQueue.length && delayFunction) { delayFunction(flushPendingDeletes); } } function init_embind() { Module["getInheritedInstanceCount"] = getInheritedInstanceCount; Module["getLiveInheritedInstances"] = getLiveInheritedInstances; Module["flushPendingDeletes"] = flushPendingDeletes; Module["setDelayFunction"] = setDelayFunction; } var registeredInstances = {}; function getBasestPointer(class_, ptr) { if (ptr === undefined) { throwBindingError("ptr should not be undefined"); } while (class_.baseClass) { ptr = class_.upcast(ptr); class_ = class_.baseClass; } return ptr; } function getInheritedInstance(class_, ptr) { ptr = getBasestPointer(class_, ptr); return registeredInstances[ptr]; } function makeClassHandle(prototype, record) { if (!record.ptrType || !record.ptr) { throwInternalError( "makeClassHandle requires ptr and ptrType" ); } var hasSmartPtrType = !!record.smartPtrType; var hasSmartPtr = !!record.smartPtr; if (hasSmartPtrType !== hasSmartPtr) { throwInternalError( "Both smartPtrType and smartPtr must be specified" ); } record.count = { value: 1 }; return Object.create(prototype, { $$: { value: record } }); } function RegisteredPointer_fromWireType(ptr) { var rawPointer = this.getPointee(ptr); if (!rawPointer) { this.destructor(ptr); return null; } var registeredInstance = getInheritedInstance( this.registeredClass, rawPointer ); if (undefined !== registeredInstance) { if (0 === registeredInstance.$$.count.value) { registeredInstance.$$.ptr = rawPointer; registeredInstance.$$.smartPtr = ptr; return registeredInstance["clone"](); } else { var rv = registeredInstance["clone"](); this.destructor(ptr); return rv; } } function makeDefaultHandle() { if (this.isSmartPointer) { return makeClassHandle( this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr, } ); } else { return makeClassHandle( this.registeredClass.instancePrototype, { ptrType: this, ptr: ptr } ); } } var actualType = this.registeredClass.getActualType(rawPointer); var registeredPointerRecord = registeredPointers[actualType]; if (!registeredPointerRecord) { return makeDefaultHandle.call(this); } var toType; if (this.isConst) { toType = registeredPointerRecord.constPointerType; } else { toType = registeredPointerRecord.pointerType; } var dp = downcastPointer( rawPointer, this.registeredClass, toType.registeredClass ); if (dp === null) { return makeDefaultHandle.call(this); } if (this.isSmartPointer) { return makeClassHandle( toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr, } ); } else { return makeClassHandle( toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp } ); } } function init_RegisteredPointer() { RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; RegisteredPointer.prototype["argPackAdvance"] = 8; RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; } function RegisteredPointer( name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor ) { this.name = name; this.registeredClass = registeredClass; this.isReference = isReference; this.isConst = isConst; this.isSmartPointer = isSmartPointer; this.pointeeType = pointeeType; this.sharingPolicy = sharingPolicy; this.rawGetPointee = rawGetPointee; this.rawConstructor = rawConstructor; this.rawShare = rawShare; this.rawDestructor = rawDestructor; if ( !isSmartPointer && registeredClass.baseClass === undefined ) { if (isConst) { this["toWireType"] = constNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } else { this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } } else { this["toWireType"] = genericPointerToWireType; } } function replacePublicSymbol(name, value, numArguments) { if (!Module.hasOwnProperty(name)) { throwInternalError("Replacing nonexistant public symbol"); } if ( undefined !== Module[name].overloadTable && undefined !== numArguments ) { Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; Module[name].argCount = numArguments; } } function embind__requireFunction(signature, rawFunction) { signature = readLatin1String(signature); function makeDynCaller(dynCall) { var args = []; for (var i = 1; i < signature.length; ++i) { args.push("a" + i); } var name = "dynCall_" + signature + "_" + rawFunction; var body = "return function " + name + "(" + args.join(", ") + ") {\n"; body += " return dynCall(rawFunction" + (args.length ? ", " : "") + args.join(", ") + ");\n"; body += "};\n"; return new Function("dynCall", "rawFunction", body)( dynCall, rawFunction ); } var fp; if (Module["FUNCTION_TABLE_" + signature] !== undefined) { fp = Module["FUNCTION_TABLE_" + signature][rawFunction]; } else if (typeof FUNCTION_TABLE !== "undefined") { fp = FUNCTION_TABLE[rawFunction]; } else { var dc = Module["asm"]["dynCall_" + signature]; if (dc === undefined) { dc = Module["asm"]["dynCall_" + signature.replace(/f/g, "d")]; if (dc === undefined) { throwBindingError( "No dynCall invoker for signature: " + signature ); } } fp = makeDynCaller(dc); } if (typeof fp !== "function") { throwBindingError( "unknown function pointer with signature " + signature + ": " + rawFunction ); } return fp; } var UnboundTypeError = undefined; function getTypeName(type) { var ptr = ___getTypeName(type); var rv = readLatin1String(ptr); _free(ptr); return rv; } function throwUnboundTypeError(message, types) { var unboundTypes = []; var seen = {}; function visit(type) { if (seen[type]) { return; } if (registeredTypes[type]) { return; } if (typeDependencies[type]) { typeDependencies[type].forEach(visit); return; } unboundTypes.push(type); seen[type] = true; } types.forEach(visit); throw new UnboundTypeError( message + ": " + unboundTypes.map(getTypeName).join([", "]) ); } function __embind_register_class( rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor ) { name = readLatin1String(name); getActualType = embind__requireFunction( getActualTypeSignature, getActualType ); if (upcast) { upcast = embind__requireFunction(upcastSignature, upcast); } if (downcast) { downcast = embind__requireFunction( downcastSignature, downcast ); } rawDestructor = embind__requireFunction( destructorSignature, rawDestructor ); var legalFunctionName = makeLegalFunctionName(name); exposePublicSymbol(legalFunctionName, function () { throwUnboundTypeError( "Cannot construct " + name + " due to unbound types", [baseClassRawType] ); }); whenDependentTypesAreResolved( [rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function (base) { base = base[0]; var baseClass; var basePrototype; if (baseClassRawType) { baseClass = base.registeredClass; basePrototype = baseClass.instancePrototype; } else { basePrototype = ClassHandle.prototype; } var constructor = createNamedFunction( legalFunctionName, function () { if (Object.getPrototypeOf(this) !== instancePrototype) { throw new BindingError( "Use 'new' to construct " + name ); } if (undefined === registeredClass.constructor_body) { throw new BindingError( name + " has no accessible constructor" ); } var body = registeredClass.constructor_body[arguments.length]; if (undefined === body) { throw new BindingError( "Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys( registeredClass.constructor_body ).toString() + ") parameters instead!" ); } return body.apply(this, arguments); } ); var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor }, }); constructor.prototype = instancePrototype; var registeredClass = new RegisteredClass( name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast ); var referenceConverter = new RegisteredPointer( name, registeredClass, true, false, false ); var pointerConverter = new RegisteredPointer( name + "*", registeredClass, false, false, false ); var constPointerConverter = new RegisteredPointer( name + " const*", registeredClass, false, true, false ); registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter, }; replacePublicSymbol(legalFunctionName, constructor); return [ referenceConverter, pointerConverter, constPointerConverter, ]; } ); } function heap32VectorToArray(count, firstElement) { var array = []; for (var i = 0; i < count; i++) { array.push(HEAP32[(firstElement >> 2) + i]); } return array; } function runDestructors(destructors) { while (destructors.length) { var ptr = destructors.pop(); var del = destructors.pop(); del(ptr); } } function __embind_register_class_constructor( rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor ) { var rawArgTypes = heap32VectorToArray( argCount, rawArgTypesAddr ); invoker = embind__requireFunction(invokerSignature, invoker); whenDependentTypesAreResolved( [], [rawClassType], function (classType) { classType = classType[0]; var humanName = "constructor " + classType.name; if ( undefined === classType.registeredClass.constructor_body ) { classType.registeredClass.constructor_body = []; } if ( undefined !== classType.registeredClass.constructor_body[argCount - 1] ) { throw new BindingError( "Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!" ); } classType.registeredClass.constructor_body[argCount - 1] = function unboundTypeHandler() { throwUnboundTypeError( "Cannot construct " + classType.name + " due to unbound types", rawArgTypes ); }; whenDependentTypesAreResolved( [], rawArgTypes, function (argTypes) { classType.registeredClass.constructor_body[ argCount - 1 ] = function constructor_body() { if (arguments.length !== argCount - 1) { throwBindingError( humanName + " called with " + arguments.length + " arguments, expected " + (argCount - 1) ); } var destructors = []; var args = new Array(argCount); args[0] = rawConstructor; for (var i = 1; i < argCount; ++i) { args[i] = argTypes[i]["toWireType"]( destructors, arguments[i - 1] ); } var ptr = invoker.apply(null, args); runDestructors(destructors); return argTypes[0]["fromWireType"](ptr); }; return []; } ); return []; } ); } function new_(constructor, argumentList) { if (!(constructor instanceof Function)) { throw new TypeError( "new_ called with constructor type " + (typeof constructor === "undefined" ? "undefined" : _typeof(constructor)) + " which is not a function" ); } var dummy = createNamedFunction( constructor.name || "unknownFunctionName", function () {} ); dummy.prototype = constructor.prototype; var obj = new dummy(); var r = constructor.apply(obj, argumentList); return r instanceof Object ? r : obj; } function craftInvokerFunction( humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc ) { var argCount = argTypes.length; if (argCount < 2) { throwBindingError( "argTypes array size mismatch! Must at least get return value and 'this' types!" ); } var isClassMethodFunc = argTypes[1] !== null && classType !== null; var needsDestructorStack = false; for (var i = 1; i < argTypes.length; ++i) { if ( argTypes[i] !== null && argTypes[i].destructorFunction === undefined ) { needsDestructorStack = true; break; } } var returns = argTypes[0].name !== "void"; var argsList = ""; var argsListWired = ""; for (var i = 0; i < argCount - 2; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; } var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\n" + "if (arguments.length !== " + (argCount - 2) + ") {\n" + "throwBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n" + "}\n"; if (needsDestructorStack) { invokerFnBody += "var destructors = [];\n"; } var dtorStack = needsDestructorStack ? "destructors" : "null"; var args1 = [ "throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam", ]; var args2 = [ throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1], ]; if (isClassMethodFunc) { invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; } for (var i = 0; i < argCount - 2; ++i) { invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; args1.push("argType" + i); args2.push(argTypes[i + 2]); } if (isClassMethodFunc) { argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; } invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; if (needsDestructorStack) { invokerFnBody += "runDestructors(destructors);\n"; } else { for ( var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i ) { var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; if (argTypes[i].destructorFunction !== null) { invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; args1.push(paramName + "_dtor"); args2.push(argTypes[i].destructorFunction); } } } if (returns) { invokerFnBody += "var ret = retType.fromWireType(rv);\n" + "return ret;\n"; } else { } invokerFnBody += "}\n"; args1.push(invokerFnBody); var invokerFunction = new_(Function, args1).apply(null, args2); return invokerFunction; } function __embind_register_class_function( rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual ) { var rawArgTypes = heap32VectorToArray( argCount, rawArgTypesAddr ); methodName = readLatin1String(methodName); rawInvoker = embind__requireFunction( invokerSignature, rawInvoker ); whenDependentTypesAreResolved( [], [rawClassType], function (classType) { classType = classType[0]; var humanName = classType.name + "." + methodName; if (isPureVirtual) { classType.registeredClass.pureVirtualFunctions.push( methodName ); } function unboundTypesHandler() { throwUnboundTypeError( "Cannot call " + humanName + " due to unbound types", rawArgTypes ); } var proto = classType.registeredClass.instancePrototype; var method = proto[methodName]; if ( undefined === method || (undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2) ) { unboundTypesHandler.argCount = argCount - 2; unboundTypesHandler.className = classType.name; proto[methodName] = unboundTypesHandler; } else { ensureOverloadTable(proto, methodName, humanName); proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; } whenDependentTypesAreResolved( [], rawArgTypes, function (argTypes) { var memberFunction = craftInvokerFunction( humanName, argTypes, classType, rawInvoker, context ); if (undefined === proto[methodName].overloadTable) { memberFunction.argCount = argCount - 2; proto[methodName] = memberFunction; } else { proto[methodName].overloadTable[argCount - 2] = memberFunction; } return []; } ); return []; } ); } var emval_free_list = []; var emval_handle_array = [ {}, { value: undefined }, { value: null }, { value: true }, { value: false }, ]; function __emval_decref(handle) { if (handle > 4 && 0 === --emval_handle_array[handle].refcount) { emval_handle_array[handle] = undefined; emval_free_list.push(handle); } } function count_emval_handles() { var count = 0; for (var i = 5; i < emval_handle_array.length; ++i) { if (emval_handle_array[i] !== undefined) { ++count; } } return count; } function get_first_emval() { for (var i = 5; i < emval_handle_array.length; ++i) { if (emval_handle_array[i] !== undefined) { return emval_handle_array[i]; } } return null; } function init_emval() { Module["count_emval_handles"] = count_emval_handles; Module["get_first_emval"] = get_first_emval; } function __emval_register(value) { switch (value) { case undefined: { return 1; } case null: { return 2; } case true: { return 3; } case false: { return 4; } default: { var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length; emval_handle_array[handle] = { refcount: 1, value: value }; return handle; } } } function __embind_register_emval(rawType, name) { name = readLatin1String(name); registerType(rawType, { name: name, fromWireType: function fromWireType(handle) { var rv = emval_handle_array[handle].value; __emval_decref(handle); return rv; }, toWireType: function toWireType(destructors, value) { return __emval_register(value); }, argPackAdvance: 8, readValueFromPointer: simpleReadValueFromPointer, destructorFunction: null, }); } function _embind_repr(v) { if (v === null) { return "null"; } var t = typeof v === "undefined" ? "undefined" : _typeof(v); if (t === "object" || t === "array" || t === "function") { return v.toString(); } else { return "" + v; } } function floatReadValueFromPointer(name, shift) { switch (shift) { case 2: return function (pointer) { return this["fromWireType"](HEAPF32[pointer >> 2]); }; case 3: return function (pointer) { return this["fromWireType"](HEAPF64[pointer >> 3]); }; default: throw new TypeError("Unknown float type: " + name); } } function __embind_register_float(rawType, name, size) { var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name: name, fromWireType: function fromWireType(value) { return value; }, toWireType: function toWireType(destructors, value) { if ( typeof value !== "number" && typeof value !== "boolean" ) { throw new TypeError( 'Cannot convert "' + _embind_repr(value) + '" to ' + this.name ); } return value; }, argPackAdvance: 8, readValueFromPointer: floatReadValueFromPointer(name, shift), destructorFunction: null, }); } function __embind_register_function( name, argCount, rawArgTypesAddr, signature, rawInvoker, fn ) { var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); name = readLatin1String(name); rawInvoker = embind__requireFunction(signature, rawInvoker); exposePublicSymbol( name, function () { throwUnboundTypeError( "Cannot call " + name + " due to unbound types", argTypes ); }, argCount - 1 ); whenDependentTypesAreResolved( [], argTypes, function (argTypes) { var invokerArgsArray = [argTypes[0], null].concat( argTypes.slice(1) ); replacePublicSymbol( name, craftInvokerFunction( name, invokerArgsArray, null, rawInvoker, fn ), argCount - 1 ); return []; } ); } function integerReadValueFromPointer(name, shift, signed) { switch (shift) { case 0: return signed ? function readS8FromPointer(pointer) { return HEAP8[pointer]; } : function readU8FromPointer(pointer) { return HEAPU8[pointer]; }; case 1: return signed ? function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } : function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; }; case 2: return signed ? function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } : function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; }; default: throw new TypeError("Unknown integer type: " + name); } } function __embind_register_integer( primitiveType, name, size, minRange, maxRange ) { name = readLatin1String(name); if (maxRange === -1) { maxRange = 4294967295; } var shift = getShiftFromSize(size); var fromWireType = function fromWireType(value) { return value; }; if (minRange === 0) { var bitshift = 32 - 8 * size; fromWireType = function fromWireType(value) { return (value << bitshift) >>> bitshift; }; } var isUnsignedType = name.indexOf("unsigned") != -1; registerType(primitiveType, { name: name, fromWireType: fromWireType, toWireType: function toWireType(destructors, value) { if ( typeof value !== "number" && typeof value !== "boolean" ) { throw new TypeError( 'Cannot convert "' + _embind_repr(value) + '" to ' + this.name ); } if (value < minRange || value > maxRange) { throw new TypeError( 'Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ", " + maxRange + "]!" ); } return isUnsignedType ? value >>> 0 : value | 0; }, argPackAdvance: 8, readValueFromPointer: integerReadValueFromPointer( name, shift, minRange !== 0 ), destructorFunction: null, }); } function __embind_register_memory_view( rawType, dataTypeIndex, name ) { var typeMapping = [ Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, ]; var TA = typeMapping[dataTypeIndex]; function decodeMemoryView(handle) { handle = handle >> 2; var heap = HEAPU32; var size = heap[handle]; var data = heap[handle + 1]; return new TA(heap["buffer"], data, size); } name = readLatin1String(name); registerType( rawType, { name: name, fromWireType: decodeMemoryView, argPackAdvance: 8, readValueFromPointer: decodeMemoryView, }, { ignoreDuplicateRegistrations: true } ); } function __embind_register_std_string(rawType, name) { name = readLatin1String(name); var stdStringIsUTF8 = name === "std::string"; registerType(rawType, { name: name, fromWireType: function fromWireType(value) { var length = HEAPU32[value >> 2]; var str; if (stdStringIsUTF8) { var endChar = HEAPU8[value + 4 + length]; var endCharSwap = 0; if (endChar != 0) { endCharSwap = endChar; HEAPU8[value + 4 + length] = 0; } var decodeStartPtr = value + 4; for (var i = 0; i <= length; ++i) { var currentBytePtr = value + 4 + i; if (HEAPU8[currentBytePtr] == 0) { var stringSegment = UTF8ToString(decodeStartPtr); if (str === undefined) str = stringSegment; else { str += String.fromCharCode(0); str += stringSegment; } decodeStartPtr = currentBytePtr + 1; } } if (endCharSwap != 0) HEAPU8[value + 4 + length] = endCharSwap; } else { var a = new Array(length); for (var i = 0; i < length; ++i) { a[i] = String.fromCharCode(HEAPU8[value + 4 + i]); } str = a.join(""); } _free(value); return str; }, toWireType: function toWireType(destructors, value) { if (value instanceof ArrayBuffer) { value = new Uint8Array(value); } var getLength; var valueIsOfTypeString = typeof value === "string"; if ( !( valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array ) ) { throwBindingError( "Cannot pass non-string to std::string" ); } if (stdStringIsUTF8 && valueIsOfTypeString) { getLength = function getLength() { return lengthBytesUTF8(value); }; } else { getLength = function getLength() { return value.length; }; } var length = getLength(); var ptr = _malloc(4 + length + 1); HEAPU32[ptr >> 2] = length; if (stdStringIsUTF8 && valueIsOfTypeString) { stringToUTF8(value, ptr + 4, length + 1); } else { if (valueIsOfTypeString) { for (var i = 0; i < length; ++i) { var charCode = value.charCodeAt(i); if (charCode > 255) { _free(ptr); throwBindingError( "String has UTF-16 code units that do not fit in 8 bits" ); } HEAPU8[ptr + 4 + i] = charCode; } } else { for (var i = 0; i < length; ++i) { HEAPU8[ptr + 4 + i] = value[i]; } } } if (destructors !== null) { destructors.push(_free, ptr); } return ptr; }, argPackAdvance: 8, readValueFromPointer: simpleReadValueFromPointer, destructorFunction: function destructorFunction(ptr) { _free(ptr); }, }); } function __embind_register_std_wstring(rawType, charSize, name) { name = readLatin1String(name); var getHeap, shift; if (charSize === 2) { getHeap = function getHeap() { return HEAPU16; }; shift = 1; } else if (charSize === 4) { getHeap = function getHeap() { return HEAPU32; }; shift = 2; } registerType(rawType, { name: name, fromWireType: function fromWireType(value) { var HEAP = getHeap(); var length = HEAPU32[value >> 2]; var a = new Array(length); var start = (value + 4) >> shift; for (var i = 0; i < length; ++i) { a[i] = String.fromCharCode(HEAP[start + i]); } _free(value); return a.join(""); }, toWireType: function toWireType(destructors, value) { var HEAP = getHeap(); var length = value.length; var ptr = _malloc(4 + length * charSize); HEAPU32[ptr >> 2] = length; var start = (ptr + 4) >> shift; for (var i = 0; i < length; ++i) { HEAP[start + i] = value.charCodeAt(i); } if (destructors !== null) { destructors.push(_free, ptr); } return ptr; }, argPackAdvance: 8, readValueFromPointer: simpleReadValueFromPointer, destructorFunction: function destructorFunction(ptr) { _free(ptr); }, }); } function __embind_register_void(rawType, name) { name = readLatin1String(name); registerType(rawType, { isVoid: true, name: name, argPackAdvance: 0, fromWireType: function fromWireType() { return undefined; }, toWireType: function toWireType(destructors, o) { return undefined; }, }); } function requireHandle(handle) { if (!handle) { throwBindingError( "Cannot use deleted val. handle = " + handle ); } return emval_handle_array[handle].value; } function requireRegisteredType(rawType, humanName) { var impl = registeredTypes[rawType]; if (undefined === impl) { throwBindingError( humanName + " has unknown type " + getTypeName(rawType) ); } return impl; } function __emval_as(handle, returnType, destructorsRef) { handle = requireHandle(handle); returnType = requireRegisteredType(returnType, "emval::as"); var destructors = []; var rd = __emval_register(destructors); HEAP32[destructorsRef >> 2] = rd; return returnType["toWireType"](destructors, handle); } function __emval_lookupTypes(argCount, argTypes, argWireTypes) { var a = new Array(argCount); for (var i = 0; i < argCount; ++i) { a[i] = requireRegisteredType( HEAP32[(argTypes >> 2) + i], "parameter " + i ); } return a; } function __emval_call(handle, argCount, argTypes, argv) { handle = requireHandle(handle); var types = __emval_lookupTypes(argCount, argTypes); var args = new Array(argCount); for (var i = 0; i < argCount; ++i) { var type = types[i]; args[i] = type["readValueFromPointer"](argv); argv += type["argPackAdvance"]; } var rv = handle.apply(undefined, args); return __emval_register(rv); } function __emval_allocateDestructors(destructorsRef) { var destructors = []; HEAP32[destructorsRef >> 2] = __emval_register(destructors); return destructors; } var emval_symbols = {}; function getStringOrSymbol(address) { var symbol = emval_symbols[address]; if (symbol === undefined) { return readLatin1String(address); } else { return symbol; } } var emval_methodCallers = []; function __emval_call_void_method( caller, handle, methodName, args ) { caller = emval_methodCallers[caller]; handle = requireHandle(handle); methodName = getStringOrSymbol(methodName); caller(handle, methodName, null, args); } function __emval_addMethodCaller(caller) { var id = emval_methodCallers.length; emval_methodCallers.push(caller); return id; } function __emval_get_method_caller(argCount, argTypes) { var types = __emval_lookupTypes(argCount, argTypes); var retType = types[0]; var signatureName = retType.name + "_$" + types .slice(1) .map(function (t) { return t.name; }) .join("_") + "$"; var params = ["retType"]; var args = [retType]; var argsList = ""; for (var i = 0; i < argCount - 1; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; params.push("argType" + i); args.push(types[1 + i]); } var functionName = makeLegalFunctionName( "methodCaller_" + signatureName ); var functionBody = "return function " + functionName + "(handle, name, destructors, args) {\n"; var offset = 0; for (var i = 0; i < argCount - 1; ++i) { functionBody += " var arg" + i + " = argType" + i + ".readValueFromPointer(args" + (offset ? "+" + offset : "") + ");\n"; offset += types[i + 1]["argPackAdvance"]; } functionBody += " var rv = handle[name](" + argsList + ");\n"; for (var i = 0; i < argCount - 1; ++i) { if (types[i + 1]["deleteObject"]) { functionBody += " argType" + i + ".deleteObject(arg" + i + ");\n"; } } if (!retType.isVoid) { functionBody += " return retType.toWireType(destructors, rv);\n"; } functionBody += "};\n"; params.push(functionBody); var invokerFunction = new_(Function, params).apply(null, args); return __emval_addMethodCaller(invokerFunction); } function __emval_get_module_property(name) { name = getStringOrSymbol(name); return __emval_register(Module[name]); } function __emval_get_property(handle, key) { handle = requireHandle(handle); key = requireHandle(key); return __emval_register(handle[key]); } function __emval_incref(handle) { if (handle > 4) { emval_handle_array[handle].refcount += 1; } } function craftEmvalAllocator(argCount) { var argsList = ""; for (var i = 0; i < argCount; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; } var functionBody = "return function emval_allocator_" + argCount + "(constructor, argTypes, args) {\n"; for (var i = 0; i < argCount; ++i) { functionBody += "var argType" + i + " = requireRegisteredType(HEAP32[(argTypes >> 2) + " + i + '], "parameter ' + i + '");\n' + "var arg" + i + " = argType" + i + ".readValueFromPointer(args);\n" + "args += argType" + i + "['argPackAdvance'];\n"; } functionBody += "var obj = new constructor(" + argsList + ");\n" + "return __emval_register(obj);\n" + "}\n"; return new Function( "requireRegisteredType", "HEAP32", "__emval_register", functionBody )(requireRegisteredType, HEAP32, __emval_register); } var emval_newers = {}; function __emval_new(handle, argCount, argTypes, args) { handle = requireHandle(handle); var newer = emval_newers[argCount]; if (!newer) { newer = craftEmvalAllocator(argCount); emval_newers[argCount] = newer; } return newer(handle, argTypes, args); } function __emval_new_cstring(v) { return __emval_register(getStringOrSymbol(v)); } function __emval_run_destructors(handle) { var destructors = emval_handle_array[handle].value; runDestructors(destructors); __emval_decref(handle); } function __emval_take_value(type, argv) { type = requireRegisteredType(type, "_emval_take_value"); var v = type["readValueFromPointer"](argv); return __emval_register(v); } function _abort() { Module["abort"](); } function _llvm_cttz_i32(x) { x = x | 0; return (x ? (31 - (Math_clz32(x ^ (x - 1)) | 0)) | 0 : 32) | 0; } function _llvm_cttz_i64(l, h) { var ret = _llvm_cttz_i32(l); if (ret == 32) ret += _llvm_cttz_i32(h); return (setTempRet0(0), ret) | 0; } function _emscripten_memcpy_big(dest, src, num) { HEAPU8.set(HEAPU8.subarray(src, src + num), dest); return dest; } var PTHREAD_SPECIFIC = {}; function _pthread_getspecific(key) { return PTHREAD_SPECIFIC[key] || 0; } var PTHREAD_SPECIFIC_NEXT_KEY = 1; function _pthread_key_create(key, destructor) { if (key == 0) { return ERRNO_CODES.EINVAL; } HEAP32[key >> 2] = PTHREAD_SPECIFIC_NEXT_KEY; PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; PTHREAD_SPECIFIC_NEXT_KEY++; return 0; } function _pthread_once(ptr, func) { if (!_pthread_once.seen) _pthread_once.seen = {}; if (ptr in _pthread_once.seen) return; Module["dynCall_v"](func); _pthread_once.seen[ptr] = 1; } function _pthread_setspecific(key, value) { if (!(key in PTHREAD_SPECIFIC)) { return ERRNO_CODES.EINVAL; } PTHREAD_SPECIFIC[key] = value; return 0; } FS.staticInit(); __ATINIT__.unshift(function () { if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); }); __ATMAIN__.push(function () { FS.ignorePermissions = false; }); __ATEXIT__.push(function () { FS.quit(); }); __ATINIT__.unshift(function () { TTY.init(); }); __ATEXIT__.push(function () { TTY.shutdown(); }); if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); } embind_init_charCodes(); BindingError = Module["BindingError"] = extendError( Error, "BindingError" ); InternalError = Module["InternalError"] = extendError( Error, "InternalError" ); init_ClassHandle(); init_RegisteredPointer(); init_embind(); UnboundTypeError = Module["UnboundTypeError"] = extendError( Error, "UnboundTypeError" ); init_emval(); DYNAMICTOP_PTR = staticAlloc(4); STACK_BASE = STACKTOP = alignMemory(STATICTOP); STACK_MAX = STACK_BASE + TOTAL_STACK; DYNAMIC_BASE = alignMemory(STACK_MAX); HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE; staticSealed = true; var ASSERTIONS = false; function intArrayFromString(stringy, dontAddNull, length) { var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; var u8array = new Array(len); var numBytesWritten = stringToUTF8Array( stringy, u8array, 0, u8array.length ); if (dontAddNull) u8array.length = numBytesWritten; return u8array; } function intArrayToString(array) { var ret = []; for (var i = 0; i < array.length; i++) { var chr = array[i]; if (chr > 255) { if (ASSERTIONS) { assert( false, "Character code " + chr + " (" + String.fromCharCode(chr) + ") at offset " + i + " not in 0x00-0xFF." ); } chr &= 255; } ret.push(String.fromCharCode(chr)); } return ret.join(""); } var decodeBase64 = typeof atob === "function" ? atob : function (input) { var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); do { enc1 = keyStr.indexOf(input.charAt(i++)); enc2 = keyStr.indexOf(input.charAt(i++)); enc3 = keyStr.indexOf(input.charAt(i++)); enc4 = keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 !== 64) { output = output + String.fromCharCode(chr2); } if (enc4 !== 64) { output = output + String.fromCharCode(chr3); } } while (i < input.length); return output; }; function intArrayFromBase64(s) { if ( typeof ENVIRONMENT_IS_NODE === "boolean" && ENVIRONMENT_IS_NODE ) { var buf; try { buf = Buffer.from(s, "base64"); } catch (_) { buf = new Buffer(s, "base64"); } return new Uint8Array( buf.buffer, buf.byteOffset, buf.byteLength ); } try { var decoded = decodeBase64(s); var bytes = new Uint8Array(decoded.length); for (var i = 0; i < decoded.length; ++i) { bytes[i] = decoded.charCodeAt(i); } return bytes; } catch (_) { throw new Error("Converting base64 string to bytes failed."); } } function tryParseAsDataURI(filename) { if (!isDataURI(filename)) { return; } return intArrayFromBase64(filename.slice(dataURIPrefix.length)); } Module["wasmTableSize"] = 412; Module["wasmMaxTableSize"] = 412; function invoke_i(index) { var sp = _stackSave(); try { return Module["dynCall_i"](index); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_ii(index, a1) { var sp = _stackSave(); try { return Module["dynCall_ii"](index, a1); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iii(index, a1, a2) { var sp = _stackSave(); try { return Module["dynCall_iii"](index, a1, a2); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iiii(index, a1, a2, a3) { var sp = _stackSave(); try { return Module["dynCall_iiii"](index, a1, a2, a3); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iiiii(index, a1, a2, a3, a4) { var sp = _stackSave(); try { return Module["dynCall_iiiii"](index, a1, a2, a3, a4); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iiiiii(index, a1, a2, a3, a4, a5) { var sp = _stackSave(); try { return Module["dynCall_iiiiii"](index, a1, a2, a3, a4, a5); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) { var sp = _stackSave(); try { return Module["dynCall_iiiiiii"]( index, a1, a2, a3, a4, a5, a6 ); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_v(index) { var sp = _stackSave(); try { Module["dynCall_v"](index); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_vi(index, a1) { var sp = _stackSave(); try { Module["dynCall_vi"](index, a1); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_vii(index, a1, a2) { var sp = _stackSave(); try { Module["dynCall_vii"](index, a1, a2); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_viii(index, a1, a2, a3) { var sp = _stackSave(); try { Module["dynCall_viii"](index, a1, a2, a3); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_viiii(index, a1, a2, a3, a4) { var sp = _stackSave(); try { Module["dynCall_viiii"](index, a1, a2, a3, a4); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_viiiii(index, a1, a2, a3, a4, a5) { var sp = _stackSave(); try { Module["dynCall_viiiii"](index, a1, a2, a3, a4, a5); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) { var sp = _stackSave(); try { Module["dynCall_viiiiii"](index, a1, a2, a3, a4, a5, a6); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } Module.asmGlobalArg = {}; Module.asmLibraryArg = { abort: abort, assert: assert, enlargeMemory: enlargeMemory, getTotalMemory: getTotalMemory, abortOnCannotGrowMemory: abortOnCannotGrowMemory, invoke_i: invoke_i, invoke_ii: invoke_ii, invoke_iii: invoke_iii, invoke_iiii: invoke_iiii, invoke_iiiii: invoke_iiiii, invoke_iiiiii: invoke_iiiiii, invoke_iiiiiii: invoke_iiiiiii, invoke_v: invoke_v, invoke_vi: invoke_vi, invoke_vii: invoke_vii, invoke_viii: invoke_viii, invoke_viiii: invoke_viiii, invoke_viiiii: invoke_viiiii, invoke_viiiiii: invoke_viiiiii, ClassHandle: ClassHandle, ClassHandle_clone: ClassHandle_clone, ClassHandle_delete: ClassHandle_delete, ClassHandle_deleteLater: ClassHandle_deleteLater, ClassHandle_isAliasOf: ClassHandle_isAliasOf, ClassHandle_isDeleted: ClassHandle_isDeleted, RegisteredClass: RegisteredClass, RegisteredPointer: RegisteredPointer, RegisteredPointer_deleteObject: RegisteredPointer_deleteObject, RegisteredPointer_destructor: RegisteredPointer_destructor, RegisteredPointer_fromWireType: RegisteredPointer_fromWireType, RegisteredPointer_getPointee: RegisteredPointer_getPointee, __ZSt18uncaught_exceptionv: __ZSt18uncaught_exceptionv, ___cxa_allocate_exception: ___cxa_allocate_exception, ___cxa_begin_catch: ___cxa_begin_catch, ___cxa_find_matching_catch: ___cxa_find_matching_catch, ___cxa_throw: ___cxa_throw, ___gxx_personality_v0: ___gxx_personality_v0, ___lock: ___lock, ___resumeException: ___resumeException, ___setErrNo: ___setErrNo, ___syscall140: ___syscall140, ___syscall145: ___syscall145, ___syscall146: ___syscall146, ___syscall221: ___syscall221, ___syscall5: ___syscall5, ___syscall54: ___syscall54, ___syscall6: ___syscall6, ___unlock: ___unlock, __embind_register_bool: __embind_register_bool, __embind_register_class: __embind_register_class, __embind_register_class_constructor: __embind_register_class_constructor, __embind_register_class_function: __embind_register_class_function, __embind_register_emval: __embind_register_emval, __embind_register_float: __embind_register_float, __embind_register_function: __embind_register_function, __embind_register_integer: __embind_register_integer, __embind_register_memory_view: __embind_register_memory_view, __embind_register_std_string: __embind_register_std_string, __embind_register_std_wstring: __embind_register_std_wstring, __embind_register_void: __embind_register_void, __emval_addMethodCaller: __emval_addMethodCaller, __emval_allocateDestructors: __emval_allocateDestructors, __emval_as: __emval_as, __emval_call: __emval_call, __emval_call_void_method: __emval_call_void_method, __emval_decref: __emval_decref, __emval_get_method_caller: __emval_get_method_caller, __emval_get_module_property: __emval_get_module_property, __emval_get_property: __emval_get_property, __emval_incref: __emval_incref, __emval_lookupTypes: __emval_lookupTypes, __emval_new: __emval_new, __emval_new_cstring: __emval_new_cstring, __emval_register: __emval_register, __emval_run_destructors: __emval_run_destructors, __emval_take_value: __emval_take_value, _abort: _abort, _embind_repr: _embind_repr, _emscripten_memcpy_big: _emscripten_memcpy_big, _llvm_cttz_i32: _llvm_cttz_i32, _llvm_cttz_i64: _llvm_cttz_i64, _pthread_getspecific: _pthread_getspecific, _pthread_key_create: _pthread_key_create, _pthread_once: _pthread_once, _pthread_setspecific: _pthread_setspecific, constNoSmartPtrRawPointerToWireType: constNoSmartPtrRawPointerToWireType, count_emval_handles: count_emval_handles, craftEmvalAllocator: craftEmvalAllocator, craftInvokerFunction: craftInvokerFunction, createNamedFunction: createNamedFunction, downcastPointer: downcastPointer, embind__requireFunction: embind__requireFunction, embind_init_charCodes: embind_init_charCodes, ensureOverloadTable: ensureOverloadTable, exposePublicSymbol: exposePublicSymbol, extendError: extendError, floatReadValueFromPointer: floatReadValueFromPointer, flushPendingDeletes: flushPendingDeletes, genericPointerToWireType: genericPointerToWireType, getBasestPointer: getBasestPointer, getInheritedInstance: getInheritedInstance, getInheritedInstanceCount: getInheritedInstanceCount, getLiveInheritedInstances: getLiveInheritedInstances, getShiftFromSize: getShiftFromSize, getStringOrSymbol: getStringOrSymbol, getTypeName: getTypeName, get_first_emval: get_first_emval, heap32VectorToArray: heap32VectorToArray, init_ClassHandle: init_ClassHandle, init_RegisteredPointer: init_RegisteredPointer, init_embind: init_embind, init_emval: init_emval, integerReadValueFromPointer: integerReadValueFromPointer, makeClassHandle: makeClassHandle, makeLegalFunctionName: makeLegalFunctionName, new_: new_, nonConstNoSmartPtrRawPointerToWireType: nonConstNoSmartPtrRawPointerToWireType, readLatin1String: readLatin1String, registerType: registerType, replacePublicSymbol: replacePublicSymbol, requireHandle: requireHandle, requireRegisteredType: requireRegisteredType, runDestructor: runDestructor, runDestructors: runDestructors, setDelayFunction: setDelayFunction, shallowCopyInternalPointer: shallowCopyInternalPointer, simpleReadValueFromPointer: simpleReadValueFromPointer, throwBindingError: throwBindingError, throwInstanceAlreadyDeleted: throwInstanceAlreadyDeleted, throwInternalError: throwInternalError, throwUnboundTypeError: throwUnboundTypeError, upcastPointer: upcastPointer, whenDependentTypesAreResolved: whenDependentTypesAreResolved, DYNAMICTOP_PTR: DYNAMICTOP_PTR, tempDoublePtr: tempDoublePtr, ABORT: ABORT, STACKTOP: STACKTOP, STACK_MAX: STACK_MAX, }; var asm = Module["asm"]( Module.asmGlobalArg, Module.asmLibraryArg, buffer ); Module["asm"] = asm; var __GLOBAL__sub_I_bind_cpp = (Module[ "__GLOBAL__sub_I_bind_cpp" ] = function () { return Module["asm"]["__GLOBAL__sub_I_bind_cpp"].apply( null, arguments ); }); var __GLOBAL__sub_I_zstd_binding_cc = (Module[ "__GLOBAL__sub_I_zstd_binding_cc" ] = function () { return Module["asm"]["__GLOBAL__sub_I_zstd_binding_cc"].apply( null, arguments ); }); var ___cxa_can_catch = (Module["___cxa_can_catch"] = function () { return Module["asm"]["___cxa_can_catch"].apply(null, arguments); }); var ___cxa_demangle = (Module["___cxa_demangle"] = function () { return Module["asm"]["___cxa_demangle"].apply(null, arguments); }); var ___cxa_is_pointer_type = (Module["___cxa_is_pointer_type"] = function () { return Module["asm"]["___cxa_is_pointer_type"].apply( null, arguments ); }); var ___errno_location = (Module["___errno_location"] = function () { return Module["asm"]["___errno_location"].apply( null, arguments ); }); var ___getTypeName = (Module["___getTypeName"] = function () { return Module["asm"]["___getTypeName"].apply(null, arguments); }); var _free = (Module["_free"] = function () { return Module["asm"]["_free"].apply(null, arguments); }); var _llvm_bswap_i32 = (Module["_llvm_bswap_i32"] = function () { return Module["asm"]["_llvm_bswap_i32"].apply(null, arguments); }); var _llvm_ctlz_i64 = (Module["_llvm_ctlz_i64"] = function () { return Module["asm"]["_llvm_ctlz_i64"].apply(null, arguments); }); var _malloc = (Module["_malloc"] = function () { return Module["asm"]["_malloc"].apply(null, arguments); }); var _memcpy = (Module["_memcpy"] = function () { return Module["asm"]["_memcpy"].apply(null, arguments); }); var _memmove = (Module["_memmove"] = function () { return Module["asm"]["_memmove"].apply(null, arguments); }); var _memset = (Module["_memset"] = function () { return Module["asm"]["_memset"].apply(null, arguments); }); var _sbrk = (Module["_sbrk"] = function () { return Module["asm"]["_sbrk"].apply(null, arguments); }); var establishStackSpace = (Module["establishStackSpace"] = function () { return Module["asm"]["establishStackSpace"].apply( null, arguments ); }); var getTempRet0 = (Module["getTempRet0"] = function () { return Module["asm"]["getTempRet0"].apply(null, arguments); }); var runPostSets = (Module["runPostSets"] = function () { return Module["asm"]["runPostSets"].apply(null, arguments); }); var setTempRet0 = (Module["setTempRet0"] = function () { return Module["asm"]["setTempRet0"].apply(null, arguments); }); var setThrew = (Module["setThrew"] = function () { return Module["asm"]["setThrew"].apply(null, arguments); }); var stackAlloc = (Module["stackAlloc"] = function () { return Module["asm"]["stackAlloc"].apply(null, arguments); }); var _stackRestore = (Module["stackRestore"] = function () { return Module["asm"]["stackRestore"].apply(null, arguments); }); var _stackSave = (Module["stackSave"] = function () { return Module["asm"]["stackSave"].apply(null, arguments); }); var dynCall_i = (Module["dynCall_i"] = function () { return Module["asm"]["dynCall_i"].apply(null, arguments); }); var dynCall_ii = (Module["dynCall_ii"] = function () { return Module["asm"]["dynCall_ii"].apply(null, arguments); }); var dynCall_iii = (Module["dynCall_iii"] = function () { return Module["asm"]["dynCall_iii"].apply(null, arguments); }); var dynCall_iiii = (Module["dynCall_iiii"] = function () { return Module["asm"]["dynCall_iiii"].apply(null, arguments); }); var dynCall_iiiii = (Module["dynCall_iiiii"] = function () { return Module["asm"]["dynCall_iiiii"].apply(null, arguments); }); var dynCall_iiiiii = (Module["dynCall_iiiiii"] = function () { return Module["asm"]["dynCall_iiiiii"].apply(null, arguments); }); var dynCall_iiiiiii = (Module["dynCall_iiiiiii"] = function () { return Module["asm"]["dynCall_iiiiiii"].apply(null, arguments); }); var dynCall_v = (Module["dynCall_v"] = function () { return Module["asm"]["dynCall_v"].apply(null, arguments); }); var dynCall_vi = (Module["dynCall_vi"] = function () { return Module["asm"]["dynCall_vi"].apply(null, arguments); }); var dynCall_vii = (Module["dynCall_vii"] = function () { return Module["asm"]["dynCall_vii"].apply(null, arguments); }); var dynCall_viii = (Module["dynCall_viii"] = function () { return Module["asm"]["dynCall_viii"].apply(null, arguments); }); var dynCall_viiii = (Module["dynCall_viiii"] = function () { return Module["asm"]["dynCall_viiii"].apply(null, arguments); }); var dynCall_viiiii = (Module["dynCall_viiiii"] = function () { return Module["asm"]["dynCall_viiiii"].apply(null, arguments); }); var dynCall_viiiiii = (Module["dynCall_viiiiii"] = function () { return Module["asm"]["dynCall_viiiiii"].apply(null, arguments); }); Module["asm"] = asm; Module["FS"] = FS; Module["then"] = function (func) { if (Module["calledRun"]) { func(Module); } else { var old = Module["onRuntimeInitialized"]; Module["onRuntimeInitialized"] = function () { if (old) old(); func(Module); }; } return Module; }; function ExitStatus(status) { this.name = "ExitStatus"; this.message = "Program terminated with exit(" + status + ")"; this.status = status; } ExitStatus.prototype = new Error(); ExitStatus.prototype.constructor = ExitStatus; var initialStackTop; dependenciesFulfilled = function runCaller() { if (!Module["calledRun"]) run(); if (!Module["calledRun"]) dependenciesFulfilled = runCaller; }; function run(args) { args = args || Module["arguments"]; if (runDependencies > 0) { return; } preRun(); if (runDependencies > 0) return; if (Module["calledRun"]) return; function doRun() { if (Module["calledRun"]) return; Module["calledRun"] = true; if (ABORT) return; ensureInitRuntime(); preMain(); if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); postRun(); } if (Module["setStatus"]) { Module["setStatus"]("Running..."); setTimeout(function () { setTimeout(function () { Module["setStatus"](""); }, 1); doRun(); }, 1); } else { doRun(); } } Module["run"] = run; function abort(what) { if (Module["onAbort"]) { Module["onAbort"](what); } if (what !== undefined) { out(what); err(what); what = JSON.stringify(what); } else { what = ""; } ABORT = true; EXITSTATUS = 1; throw ( "abort(" + what + "). Build with -s ASSERTIONS=1 for more info." ); } Module["abort"] = abort; if (Module["preInit"]) { if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; while (Module["preInit"].length > 0) { Module["preInit"].pop()(); } } Module["noExitRuntime"] = true; run(); return Module; }; })(); if ( (typeof exports === "undefined" ? "undefined" : _typeof(exports)) === "object" && (typeof module === "undefined" ? "undefined" : _typeof(module)) === "object" ) module.exports = Module; else if (typeof define === "function" && define["amd"]) define([], function () { return Module; }); else if ( (typeof exports === "undefined" ? "undefined" : _typeof(exports)) === "object" ) exports["Module"] = Module; }).call(this, require("_process"), require("buffer").Buffer, "/lib"); }, { _process: 126, buffer: 54, crypto: 63, fs: 9, path: 119 }, ], 6: [ function (require, module, exports) { (function (process, Buffer, __dirname) { "use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var Module = (function () { var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : undefined; return function (Module) { Module = Module || {}; var Module; if (!Module) Module = typeof Module !== "undefined" ? Module : {}; var moduleOverrides = {}; var key; for (key in Module) { if (Module.hasOwnProperty(key)) { moduleOverrides[key] = Module[key]; } } Module["arguments"] = []; Module["thisProgram"] = "./this.program"; Module["quit"] = function (status, toThrow) { throw toThrow; }; Module["preRun"] = []; Module["postRun"] = []; var ENVIRONMENT_IS_WEB = false; var ENVIRONMENT_IS_WORKER = false; var ENVIRONMENT_IS_NODE = false; var ENVIRONMENT_IS_SHELL = false; ENVIRONMENT_IS_WEB = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object"; ENVIRONMENT_IS_WORKER = typeof importScripts === "function"; ENVIRONMENT_IS_NODE = (typeof process === "undefined" ? "undefined" : _typeof(process)) === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; var scriptDirectory = ""; function locateFile(path) { if (Module["locateFile"]) { return Module["locateFile"](path, scriptDirectory); } else { return scriptDirectory + path; } } if (ENVIRONMENT_IS_NODE) { scriptDirectory = __dirname + "/"; var nodeFS; var nodePath; Module["read"] = function shell_read(filename, binary) { var ret; ret = tryParseAsDataURI(filename); if (!ret) { if (!nodeFS) nodeFS = require("fs"); if (!nodePath) nodePath = require("path"); filename = nodePath["normalize"](filename); ret = nodeFS["readFileSync"](filename); } return binary ? ret : ret.toString(); }; Module["readBinary"] = function readBinary(filename) { var ret = Module["read"](filename, true); if (!ret.buffer) { ret = new Uint8Array(ret); } assert(ret.buffer); return ret; }; if (process["argv"].length > 1) { Module["thisProgram"] = process["argv"][1].replace( /\\/g, "/" ); } Module["arguments"] = process["argv"].slice(2); process["on"]("uncaughtException", function (ex) { if (!(ex instanceof ExitStatus)) { throw ex; } }); process["on"]("unhandledRejection", function (reason, p) { process["exit"](1); }); Module["quit"] = function (status) { process["exit"](status); }; Module["inspect"] = function () { return "[Emscripten Module object]"; }; } else if (ENVIRONMENT_IS_SHELL) { if (typeof read != "undefined") { Module["read"] = function shell_read(f) { var data = tryParseAsDataURI(f); if (data) { return intArrayToString(data); } return read(f); }; } Module["readBinary"] = function readBinary(f) { var data; data = tryParseAsDataURI(f); if (data) { return data; } if (typeof readbuffer === "function") { return new Uint8Array(readbuffer(f)); } data = read(f, "binary"); assert( (typeof data === "undefined" ? "undefined" : _typeof(data)) === "object" ); return data; }; if (typeof scriptArgs != "undefined") { Module["arguments"] = scriptArgs; } else if (typeof arguments != "undefined") { Module["arguments"] = arguments; } if (typeof quit === "function") { Module["quit"] = function (status) { quit(status); }; } } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { if (ENVIRONMENT_IS_WEB) { if (document.currentScript) { scriptDirectory = document.currentScript.src; } } else { scriptDirectory = self.location.href; } if (_scriptDir) { scriptDirectory = _scriptDir; } if (scriptDirectory.indexOf("blob:") !== 0) { scriptDirectory = scriptDirectory.split("/").slice(0, -1).join("/") + "/"; } else { scriptDirectory = ""; } Module["read"] = function shell_read(url) { try { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.send(null); return xhr.responseText; } catch (err) { var data = tryParseAsDataURI(url); if (data) { return intArrayToString(data); } throw err; } }; if (ENVIRONMENT_IS_WORKER) { Module["readBinary"] = function readBinary(url) { try { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.responseType = "arraybuffer"; xhr.send(null); return new Uint8Array(xhr.response); } catch (err) { var data = tryParseAsDataURI(url); if (data) { return data; } throw err; } }; } Module["readAsync"] = function readAsync(url, onload, onerror) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = function xhr_onload() { if ( xhr.status == 200 || (xhr.status == 0 && xhr.response) ) { onload(xhr.response); return; } var data = tryParseAsDataURI(url); if (data) { onload(data.buffer); return; } onerror(); }; xhr.onerror = onerror; xhr.send(null); }; Module["setWindowTitle"] = function (title) { document.title = title; }; } else { } var out = Module["print"] || (typeof console !== "undefined" ? console.log.bind(console) : typeof print !== "undefined" ? print : null); var err = Module["printErr"] || (typeof printErr !== "undefined" ? printErr : (typeof console !== "undefined" && console.warn.bind(console)) || out); for (key in moduleOverrides) { if (moduleOverrides.hasOwnProperty(key)) { Module[key] = moduleOverrides[key]; } } moduleOverrides = undefined; var STACK_ALIGN = 16; function staticAlloc(size) { var ret = STATICTOP; STATICTOP = (STATICTOP + size + 15) & -16; return ret; } function dynamicAlloc(size) { var ret = HEAP32[DYNAMICTOP_PTR >> 2]; var end = (ret + size + 15) & -16; HEAP32[DYNAMICTOP_PTR >> 2] = end; if (end >= TOTAL_MEMORY) { var success = enlargeMemory(); if (!success) { HEAP32[DYNAMICTOP_PTR >> 2] = ret; return 0; } } return ret; } function alignMemory(size, factor) { if (!factor) factor = STACK_ALIGN; var ret = (size = Math.ceil(size / factor) * factor); return ret; } function getNativeTypeSize(type) { switch (type) { case "i1": case "i8": return 1; case "i16": return 2; case "i32": return 4; case "i64": return 8; case "float": return 4; case "double": return 8; default: { if (type[type.length - 1] === "*") { return 4; } else if (type[0] === "i") { var bits = parseInt(type.substr(1)); assert(bits % 8 === 0); return bits / 8; } else { return 0; } } } } function warnOnce(text) { if (!warnOnce.shown) warnOnce.shown = {}; if (!warnOnce.shown[text]) { warnOnce.shown[text] = 1; err(text); } } var jsCallStartIndex = 1; var functionPointers = new Array(0); var funcWrappers = {}; function dynCall(sig, ptr, args) { if (args && args.length) { return Module["dynCall_" + sig].apply( null, [ptr].concat(args) ); } else { return Module["dynCall_" + sig].call(null, ptr); } } var GLOBAL_BASE = 8; var ABORT = 0; var EXITSTATUS = 0; function assert(condition, text) { if (!condition) { abort("Assertion failed: " + text); } } function getCFunc(ident) { var func = Module["_" + ident]; assert( func, "Cannot call unknown function " + ident + ", make sure it is exported" ); return func; } var JSfuncs = { stackSave: function stackSave() { _stackSave(); }, stackRestore: function stackRestore() { _stackRestore(); }, arrayToC: function arrayToC(arr) { var ret = stackAlloc(arr.length); writeArrayToMemory(arr, ret); return ret; }, stringToC: function stringToC(str) { var ret = 0; if (str !== null && str !== undefined && str !== 0) { var len = (str.length << 2) + 1; ret = stackAlloc(len); stringToUTF8(str, ret, len); } return ret; }, }; var toC = { string: JSfuncs["stringToC"], array: JSfuncs["arrayToC"], }; function ccall(ident, returnType, argTypes, args, opts) { function convertReturnValue(ret) { if (returnType === "string") return Pointer_stringify(ret); if (returnType === "boolean") return Boolean(ret); return ret; } var func = getCFunc(ident); var cArgs = []; var stack = 0; if (args) { for (var i = 0; i < args.length; i++) { var converter = toC[argTypes[i]]; if (converter) { if (stack === 0) stack = _stackSave(); cArgs[i] = converter(args[i]); } else { cArgs[i] = args[i]; } } } var ret = func.apply(null, cArgs); ret = convertReturnValue(ret); if (stack !== 0) _stackRestore(stack); return ret; } function setValue(ptr, value, type, noSafe) { type = type || "i8"; if (type.charAt(type.length - 1) === "*") type = "i32"; switch (type) { case "i1": HEAP8[ptr >> 0] = value; break; case "i8": HEAP8[ptr >> 0] = value; break; case "i16": HEAP16[ptr >> 1] = value; break; case "i32": HEAP32[ptr >> 2] = value; break; case "i64": (tempI64 = [ value >>> 0, ((tempDouble = value), +Math_abs(tempDouble) >= +1 ? tempDouble > +0 ? (Math_min( +Math_floor(tempDouble / +4294967296), +4294967295 ) | 0) >>> 0 : ~~+Math_ceil( (tempDouble - +(~~tempDouble >>> 0)) / +4294967296 ) >>> 0 : 0), ]), (HEAP32[ptr >> 2] = tempI64[0]), (HEAP32[(ptr + 4) >> 2] = tempI64[1]); break; case "float": HEAPF32[ptr >> 2] = value; break; case "double": HEAPF64[ptr >> 3] = value; break; default: abort("invalid type for setValue: " + type); } } var ALLOC_STATIC = 2; var ALLOC_NONE = 4; function Pointer_stringify(ptr, length) { if (length === 0 || !ptr) return ""; var hasUtf = 0; var t; var i = 0; while (1) { t = HEAPU8[(ptr + i) >> 0]; hasUtf |= t; if (t == 0 && !length) break; i++; if (length && i == length) break; } if (!length) length = i; var ret = ""; if (hasUtf < 128) { var MAX_CHUNK = 1024; var curr; while (length > 0) { curr = String.fromCharCode.apply( String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)) ); ret = ret ? ret + curr : curr; ptr += MAX_CHUNK; length -= MAX_CHUNK; } return ret; } return UTF8ToString(ptr); } var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined; function UTF8ArrayToString(u8Array, idx) { var endPtr = idx; while (u8Array[endPtr]) { ++endPtr; } if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); } else { var u0, u1, u2, u3, u4, u5; var str = ""; while (1) { u0 = u8Array[idx++]; if (!u0) return str; if (!(u0 & 128)) { str += String.fromCharCode(u0); continue; } u1 = u8Array[idx++] & 63; if ((u0 & 224) == 192) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } u2 = u8Array[idx++] & 63; if ((u0 & 240) == 224) { u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; } else { u3 = u8Array[idx++] & 63; if ((u0 & 248) == 240) { u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; } else { u4 = u8Array[idx++] & 63; if ((u0 & 252) == 248) { u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; } else { u5 = u8Array[idx++] & 63; u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; } } } if (u0 < 65536) { str += String.fromCharCode(u0); } else { var ch = u0 - 65536; str += String.fromCharCode( 55296 | (ch >> 10), 56320 | (ch & 1023) ); } } } } function UTF8ToString(ptr) { return UTF8ArrayToString(HEAPU8, ptr); } function stringToUTF8Array( str, outU8Array, outIdx, maxBytesToWrite ) { if (!(maxBytesToWrite > 0)) return 0; var startIdx = outIdx; var endIdx = outIdx + maxBytesToWrite - 1; for (var i = 0; i < str.length; ++i) { var u = str.charCodeAt(i); if (u >= 55296 && u <= 57343) { var u1 = str.charCodeAt(++i); u = (65536 + ((u & 1023) << 10)) | (u1 & 1023); } if (u <= 127) { if (outIdx >= endIdx) break; outU8Array[outIdx++] = u; } else if (u <= 2047) { if (outIdx + 1 >= endIdx) break; outU8Array[outIdx++] = 192 | (u >> 6); outU8Array[outIdx++] = 128 | (u & 63); } else if (u <= 65535) { if (outIdx + 2 >= endIdx) break; outU8Array[outIdx++] = 224 | (u >> 12); outU8Array[outIdx++] = 128 | ((u >> 6) & 63); outU8Array[outIdx++] = 128 | (u & 63); } else if (u <= 2097151) { if (outIdx + 3 >= endIdx) break; outU8Array[outIdx++] = 240 | (u >> 18); outU8Array[outIdx++] = 128 | ((u >> 12) & 63); outU8Array[outIdx++] = 128 | ((u >> 6) & 63); outU8Array[outIdx++] = 128 | (u & 63); } else if (u <= 67108863) { if (outIdx + 4 >= endIdx) break; outU8Array[outIdx++] = 248 | (u >> 24); outU8Array[outIdx++] = 128 | ((u >> 18) & 63); outU8Array[outIdx++] = 128 | ((u >> 12) & 63); outU8Array[outIdx++] = 128 | ((u >> 6) & 63); outU8Array[outIdx++] = 128 | (u & 63); } else { if (outIdx + 5 >= endIdx) break; outU8Array[outIdx++] = 252 | (u >> 30); outU8Array[outIdx++] = 128 | ((u >> 24) & 63); outU8Array[outIdx++] = 128 | ((u >> 18) & 63); outU8Array[outIdx++] = 128 | ((u >> 12) & 63); outU8Array[outIdx++] = 128 | ((u >> 6) & 63); outU8Array[outIdx++] = 128 | (u & 63); } } outU8Array[outIdx] = 0; return outIdx - startIdx; } function stringToUTF8(str, outPtr, maxBytesToWrite) { return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); } function lengthBytesUTF8(str) { var len = 0; for (var i = 0; i < str.length; ++i) { var u = str.charCodeAt(i); if (u >= 55296 && u <= 57343) u = (65536 + ((u & 1023) << 10)) | (str.charCodeAt(++i) & 1023); if (u <= 127) { ++len; } else if (u <= 2047) { len += 2; } else if (u <= 65535) { len += 3; } else if (u <= 2097151) { len += 4; } else if (u <= 67108863) { len += 5; } else { len += 6; } } return len; } var UTF16Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : undefined; function demangle(func) { var __cxa_demangle_func = Module["___cxa_demangle"] || Module["__cxa_demangle"]; assert(__cxa_demangle_func); try { var s = func.substr(1); var len = lengthBytesUTF8(s) + 1; var buf = _malloc(len); stringToUTF8(s, buf, len); var status = _malloc(4); var ret = __cxa_demangle_func(buf, 0, 0, status); if (HEAP32[status >> 2] === 0 && ret) { return Pointer_stringify(ret); } } catch (e) { } finally { if (buf) _free(buf); if (status) _free(status); if (ret) _free(ret); } return func; } function demangleAll(text) { var regex = /__Z[\w\d_]+/g; return text.replace(regex, function (x) { var y = demangle(x); return x === y ? x : x + " [" + y + "]"; }); } function jsStackTrace() { var err = new Error(); if (!err.stack) { try { throw new Error(0); } catch (e) { err = e; } if (!err.stack) { return "(no stack trace available)"; } } return err.stack.toString(); } function stackTrace() { var js = jsStackTrace(); if (Module["extraStackTrace"]) js += "\n" + Module["extraStackTrace"](); return demangleAll(js); } var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; function updateGlobalBufferViews() { Module["HEAP8"] = HEAP8 = new Int8Array(buffer); Module["HEAP16"] = HEAP16 = new Int16Array(buffer); Module["HEAP32"] = HEAP32 = new Int32Array(buffer); Module["HEAPU8"] = HEAPU8 = new Uint8Array(buffer); Module["HEAPU16"] = HEAPU16 = new Uint16Array(buffer); Module["HEAPU32"] = HEAPU32 = new Uint32Array(buffer); Module["HEAPF32"] = HEAPF32 = new Float32Array(buffer); Module["HEAPF64"] = HEAPF64 = new Float64Array(buffer); } var STATIC_BASE, STATICTOP, staticSealed; var STACK_BASE, STACKTOP, STACK_MAX; var DYNAMIC_BASE, DYNAMICTOP_PTR; STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; staticSealed = false; function abortOnCannotGrowMemory() { abort( "Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value " + TOTAL_MEMORY + ", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 " ); } function enlargeMemory() { abortOnCannotGrowMemory(); } var TOTAL_STACK = Module["TOTAL_STACK"] || 5242880; var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 16777216; if (TOTAL_MEMORY < TOTAL_STACK) err( "TOTAL_MEMORY should be larger than TOTAL_STACK, was " + TOTAL_MEMORY + "! (TOTAL_STACK=" + TOTAL_STACK + ")" ); if (Module["buffer"]) { buffer = Module["buffer"]; } else { { buffer = new ArrayBuffer(TOTAL_MEMORY); } Module["buffer"] = buffer; } updateGlobalBufferViews(); function getTotalMemory() { return TOTAL_MEMORY; } function callRuntimeCallbacks(callbacks) { while (callbacks.length > 0) { var callback = callbacks.shift(); if (typeof callback == "function") { callback(); continue; } var func = callback.func; if (typeof func === "number") { if (callback.arg === undefined) { Module["dynCall_v"](func); } else { Module["dynCall_vi"](func, callback.arg); } } else { func(callback.arg === undefined ? null : callback.arg); } } } var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATMAIN__ = []; var __ATEXIT__ = []; var __ATPOSTRUN__ = []; var runtimeInitialized = false; var runtimeExited = false; function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function ensureInitRuntime() { if (runtimeInitialized) return; runtimeInitialized = true; callRuntimeCallbacks(__ATINIT__); } function preMain() { callRuntimeCallbacks(__ATMAIN__); } function exitRuntime() { callRuntimeCallbacks(__ATEXIT__); runtimeExited = true; } function postRun() { if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } function writeArrayToMemory(array, buffer) { HEAP8.set(array, buffer); } function writeAsciiToMemory(str, buffer, dontAddNull) { for (var i = 0; i < str.length; ++i) { HEAP8[buffer++ >> 0] = str.charCodeAt(i); } if (!dontAddNull) HEAP8[buffer >> 0] = 0; } var Math_abs = Math.abs; var Math_ceil = Math.ceil; var Math_floor = Math.floor; var Math_min = Math.min; var runDependencies = 0; var runDependencyWatcher = null; var dependenciesFulfilled = null; function getUniqueRunDependency(id) { return id; } function addRunDependency(id) { runDependencies++; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } } function removeRunDependency(id) { runDependencies--; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } if (runDependencies == 0) { if (runDependencyWatcher !== null) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; } if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } Module["preloadedImages"] = {}; Module["preloadedAudios"] = {}; var memoryInitializer = null; var dataURIPrefix = "data:application/octet-stream;base64,"; function isDataURI(filename) { return String.prototype.startsWith ? filename.startsWith(dataURIPrefix) : filename.indexOf(dataURIPrefix) === 0; } STATIC_BASE = GLOBAL_BASE; STATICTOP = STATIC_BASE + 22272; __ATINIT__.push( { func: function func() { __GLOBAL__sub_I_zstd_binding_cc(); }, }, { func: function func() { __GLOBAL__sub_I_bind_cpp(); }, } ); memoryInitializer = "data:application/octet-stream;base64,AAAAAAAAAACwKgAASCcAAAgrAADQKgAAwCoAADAnAAAIKwAA0CoAAPAqAADwJwAAMCcAADAnAADwKgAAAAAAAAAAAAAAAAAA8CoAAPAnAAAwJwAAMCcAAPAqAADwJwAAMCcAADAnAABwJwAAAAAAAAAAAAAAAAAA8CoAAPAnAAAwJwAAMCcAAKgnAAAAAAAAAAAAAAAAAADAKgAACCgAAHAmAABwJgAAwCoAADAoAABwJgAAcCYAAAAAAABrOAcADbIHAJzyBwBwZAgAYK4KALBxCwAwqgwAEwAAAAwAAAANAAAAAQAAAAYAAAABAAAAAQAAABMAAAANAAAADgAAAAEAAAAHAAAAAQAAAAEAAAATAAAADwAAABAAAAABAAAABgAAAAEAAAABAAAAFAAAABAAAAARAAAAAQAAAAUAAAAIAAAAAgAAABQAAAARAAAAEgAAAAEAAAAFAAAACAAAAAIAAAAUAAAAEQAAABIAAAACAAAABQAAABAAAAADAAAAFQAAABEAAAATAAAAAgAAAAUAAAAQAAAABAAAABUAAAASAAAAEwAAAAMAAAAFAAAAEAAAAAQAAAAVAAAAEgAAABQAAAADAAAABQAAABAAAAAFAAAAFQAAABMAAAAUAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFQAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABYAAAAEAAAABQAAABAAAAAFAAAAFgAAABQAAAAWAAAABQAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAQAAAAFAAAAIAAAAAYAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAWAAAABgAAAAUAAAAgAAAABgAAABYAAAAVAAAAFgAAAAQAAAAFAAAAMAAAAAcAAAAXAAAAFgAAABYAAAAEAAAABAAAADAAAAAHAAAAFwAAABYAAAAWAAAABQAAAAMAAABAAAAABwAAABcAAAAXAAAAFgAAAAcAAAADAAAAgAAAAAcAAAAZAAAAGQAAABcAAAAHAAAAAwAAAIAAAAAIAAAAGgAAABoAAAAYAAAABwAAAAMAAAAAAQAACAAAABsAAAAbAAAAGQAAAAkAAAADAAAAAAIAAAgAAAASAAAADAAAAA0AAAABAAAABQAAAAEAAAABAAAAEgAAAA0AAAAOAAAAAQAAAAYAAAABAAAAAQAAABIAAAAOAAAADQAAAAEAAAAFAAAACAAAAAIAAAASAAAAEAAAAA8AAAABAAAABQAAAAgAAAACAAAAEgAAAA8AAAARAAAAAQAAAAUAAAAIAAAAAwAAABIAAAAQAAAAEQAAAAQAAAAFAAAACAAAAAMAAAASAAAAEAAAABEAAAADAAAABQAAAAgAAAAEAAAAEgAAABEAAAARAAAABAAAAAQAAAAIAAAABAAAABIAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAASAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEgAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABIAAAASAAAAEQAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABEAAAAFAAAABAAAAAgAAAAGAAAAEgAAABMAAAARAAAABwAAAAQAAAAIAAAABgAAABIAAAASAAAAEgAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABIAAAAEAAAAAwAAABAAAAAHAAAAEgAAABMAAAASAAAABgAAAAMAAAAgAAAABwAAABIAAAATAAAAEgAAAAgAAAADAAAAQAAAAAcAAAASAAAAEwAAABIAAAAJAAAAAwAAAIAAAAAHAAAAEgAAABMAAAASAAAACgAAAAMAAAAAAQAABwAAABIAAAATAAAAEgAAAAsAAAADAAAAAAIAAAgAAAASAAAAEwAAABIAAAAMAAAAAwAAAAACAAAIAAAAEgAAABMAAAASAAAADQAAAAMAAAAAAgAACAAAABEAAAAMAAAADAAAAAEAAAAFAAAAAQAAAAEAAAARAAAADAAAAA0AAAABAAAABgAAAAEAAAABAAAAEQAAAA0AAAAQAAAAAQAAAAUAAAABAAAAAQAAABEAAAAQAAAAEAAAAAIAAAAFAAAACAAAAAIAAAARAAAADQAAAA8AAAADAAAABAAAAAgAAAADAAAAEQAAAA8AAAARAAAABAAAAAQAAAAIAAAAAwAAABEAAAAQAAAAEQAAAAMAAAAEAAAACAAAAAQAAAARAAAADwAAABEAAAAEAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABAAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAGAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAgAAAAEAAAACAAAAAUAAAARAAAAEgAAABEAAAAGAAAABAAAAAgAAAAGAAAAEQAAABEAAAARAAAABwAAAAMAAAAIAAAABwAAABEAAAARAAAAEQAAAAcAAAADAAAAEAAAAAcAAAARAAAAEgAAABEAAAAHAAAAAwAAACAAAAAHAAAAEQAAABIAAAARAAAABwAAAAMAAABAAAAABwAAABEAAAASAAAAEQAAAAcAAAADAAAAAAEAAAcAAAARAAAAEgAAABEAAAAIAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAACQAAAAMAAAAAAQAACAAAABEAAAASAAAAEQAAAAoAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAALAAAAAwAAAAACAAAIAAAADgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAAA4AAAAOAAAADgAAAAEAAAAGAAAAAQAAAAEAAAAOAAAADgAAAA4AAAABAAAABAAAAAEAAAABAAAADgAAAA4AAAAOAAAAAQAAAAQAAAAGAAAAAgAAAA4AAAAOAAAADgAAAAQAAAAEAAAABgAAAAMAAAAOAAAADgAAAA4AAAADAAAABAAAAAYAAAAEAAAADgAAAA4AAAAOAAAABAAAAAQAAAAGAAAABQAAAA4AAAAOAAAADgAAAAUAAAAEAAAABgAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAYAAAAFAAAADgAAAA8AAAAOAAAABgAAAAQAAAAGAAAABgAAAA4AAAAPAAAADgAAAAMAAAADAAAABgAAAAcAAAAOAAAADwAAAA4AAAAGAAAAAwAAAAgAAAAHAAAADgAAAA8AAAAOAAAABgAAAAMAAAAQAAAABwAAAA4AAAAPAAAADgAAAAYAAAADAAAAGAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAADAAAAAHAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAABwAAAA4AAAAPAAAADwAAAAYAAAADAAAAYAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAAIAAAAAHAAAADgAAAA8AAAAPAAAABgAAAAMAAAAAAQAABwAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAcAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAIAAAADgAAAA8AAAAPAAAACQAAAAMAAAAAAQAACAAAAA4AAAAPAAAADwAAAAoAAAADAAAAAAEAAAgAAAAAAAAAAQAAAAMAAAAHAAAADwAAAB8AAAA/AAAAfwAAAP8AAAD/AQAA/wMAAP8HAAD/DwAA/x8AAP8/AAD/fwAA//8AAP//AQD//wMA//8HAP//DwD//x8A//8/AP//fwD///8A////Af///wP///8H////D////x////8/////fwEAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAAAAAAAAAAAAAECAwQFBgcICQoLDA0ODxAQERESEhMTFBQUFBUVFRUWFhYWFhYWFhcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICAhISIiIyMkJCQkJSUlJSYmJiYmJiYmJycnJycnJycoKCgoKCgoKCgoKCgoKCgoKSkpKSkpKSkpKSkpKSkpKSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqBAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AAAAAAAAAAABAAEAAQABAAEAAQACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD/////////////AAAAAAAAAQAEAAMAAgACAAIAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD//////////////////wAAAAAAAAAAAAABAAAAAgAAAAQAAAAAAAAAAgAAAAQAAAAIAAAAAAAAAAEAAAACAAAACAAAAAEAAQEGAAAAAAAABAAAAAAQAAAEAAAAACAAAAUBAAAAAAAABQMAAAAAAAAFBAAAAAAAAAUGAAAAAAAABQcAAAAAAAAFCQAAAAAAAAUKAAAAAAAABQwAAAAAAAAGDgAAAAAAAQUQAAAA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AxAAAAMgAAADQAAAA4AAAAMAAQAAAAAAAAAAAAAAAAAEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAHAAAADwAAAB8AAAA/AAAAfwAAAP8AAAD/AQAA/wMAAP8HAAD/DwAA/x8AAP8/AAD/fwAA//8AAP//AQD//wMA//8HAP//DwD//x8A//8/AP//fwD///8A////Af///wMBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACIAAAAkAAAAJgAAACgAAAAsAAAAMAAAADgAAABAAAAAUAAAAGAAAACAAAAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAASAAAAFAAAABYAAAAYAAAAHAAAACAAAAAoAAAAMAAAAEAAAACAAAAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAAEABAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AAAAAAAAAAABAAEAAQABAAEAAQACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD/////////////AAAAAAAAAQAEAAMAAgACAAIAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD//////////////////wAAAAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAAAAAAAAAAEAAAACAAAAAQAAAAQAAAAEAAAABAAAAAQAAAABAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQAAAAIBAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAACYAAACCAAAAIQUAAEoAAABnCAAAJgAAAMABAACAAAAASQUAAEoAAAC+CAAAKQAAACwCAACAAAAASQUAAEoAAAC+CAAALwAAAMoCAACAAAAAigUAAEoAAACECQAANQAAAHMDAACAAAAAnQUAAEoAAACgCQAAPQAAAIEDAACAAAAA6wUAAEsAAAA+CgAARAAAAJ4DAACAAAAATQYAAEsAAACqCgAASwAAALMDAACAAAAAwQYAAE0AAAAfDQAATQAAAFMEAACAAAAAIwgAAFEAAACmDwAAVAAAAJkEAACAAAAASwkAAFcAAACxEgAAWAAAANoEAACAAAAAbwkAAF0AAAAjFAAAVAAAAEUFAACAAAAAVAoAAGoAAACMFAAAagAAAK8FAACAAAAAdgkAAHwAAABOEAAAfAAAANICAACAAAAAYwcAAJEAAACQBwAAkgAAAAEAAAACAAAAAwAAAAQAAAAHAAAACAAAAA8AAAAQAAAAHwAAACAAAAA/AAAAQAAAAH8AAACAAAAAAAAAAAAAAAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA0AAAAEDQAAAAAJDgAAAAAADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABISEgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAoAAAAACgAAAAAJCwAAAAAACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUZUISIZDQECAxFLHAwQBAsdEh4naG5vcHFiIAUGDxMUFRoIFgcoJBcYCQoOGx8lI4OCfSYqKzw9Pj9DR0pNWFlaW1xdXl9gYWNkZWZnaWprbHJzdHl6e3wAAAAAAAAAAABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAAAAAAHQxAAC1MwAAdDEAAFY0AACcMQAAyDMAAHgmAAAAAAAAdDEAAJg0AACcMQAA2zQAAHgmAAAAAAAAdDEAAGI1AACcMQAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCoAADIAAAAzAAAAHgAAAAEAAAAAAAAASCoAADQAAAA1AAAANgAAADcAAAAFAAAAAQAAAAEAAAABAAAAAAAAAHAqAAA0AAAAOAAAADYAAAA3AAAABQAAAAIAAAACAAAAAgAAAAAAAACgKgAANAAAADkAAAA2AAAANwAAAAYAAAAAAAAAkCoAADQAAAA6AAAANgAAADcAAAAHAAAAAAAAACArAAA0AAAAOwAAADYAAAA3AAAACAAAAAAAAAAwKwAANAAAADwAAAA2AAAANwAAAAUAAAADAAAAAwAAAAMAAABkdW1teQByYgBsZW5ndGgAYnVmZmVyAGNvbnN0cnVjdG9yAHNldABIRUFQVTgAVmVjdG9yVTgAY2xvbmVUb1ZlY3RvcgBjbG9uZUFzVHlwZWRBcnJheQB0b1R5cGVkQXJyYXlWaWV3AFpzdGRDb21wcmVzc2lvbkRpY3QAY3JlYXRlQ29tcHJlc3Npb25EaWN0AFpzdGREZWNvbXByZXNzaW9uRGljdABjcmVhdGVEZWNvbXByZXNzaW9uRGljdABac3RkQ29kZWMAY29tcHJlc3NCb3VuZABjb250ZW50U2l6ZQBjb21wcmVzcwBkZWNvbXByZXNzAGNvbXByZXNzVXNpbmdEaWN0AGRlY29tcHJlc3NVc2luZ0RpY3QAWnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBiZWdpbgBiZWdpblVzaW5nRGljdAB0cmFuc2Zvcm0AZmx1c2gAZW5kAFpzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBOMTBlbXNjcmlwdGVuM3ZhbEUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8wTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UktOU182dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFRUVFAFpOMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nOVRyYW5zZm9ybUVOMTBlbXNjcmlwdGVuM3ZhbEVTMV9FMyRfMABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzNFbmRFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzJOU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmczRW5kRU4xMGVtc2NyaXB0ZW4zdmFsRUUzJF8yAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8zTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAFpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVMxX0UzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc1Rmx1c2hFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzROU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNQBwdXNoX2JhY2sAcmVzaXplAHNpemUAZ2V0AE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAE5TdDNfXzIxM19fdmVjdG9yX2Jhc2VJaE5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjIwX192ZWN0b3JfYmFzZV9jb21tb25JTGIxRUVFAFBOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQBQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAGlpAHYAdmkAdmlpaQB2aWlpaQBpaWkAaWlpaQBpaWlpaQAxOVpzdGRDb21wcmVzc2lvbkRpY3QAOFJlc291cmNlSTEyWlNURF9DRGljdF9zRQBQMTlac3RkQ29tcHJlc3Npb25EaWN0AFBLMTlac3RkQ29tcHJlc3Npb25EaWN0ADIxWnN0ZERlY29tcHJlc3Npb25EaWN0ADhSZXNvdXJjZUkxMlpTVERfRERpY3Rfc0UAUDIxWnN0ZERlY29tcHJlc3Npb25EaWN0AFBLMjFac3RkRGVjb21wcmVzc2lvbkRpY3QAOVpzdGRDb2RlYwBQOVpzdGRDb2RlYwBQSzlac3RkQ29kZWMAaWlpaWlpADI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBQMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nAFBLMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nADI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFAyN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBQSzI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFBGdlAxMVpTVERfQ0N0eF9zRQBGdlAxMVpTVERfQ0N0eF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTFaU1REX0NDdHhfc0VOU185YWxsb2NhdG9ySVM1X0VFUzRfRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRnZQMTFaU1REX0NDdHhfc0VFRQBQRnZQMTFaU1REX0RDdHhfc0UARnZQMTFaU1REX0RDdHhfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDExWlNURF9EQ3R4X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDExWlNURF9EQ3R4X3NFRUUAUEZ2UDEyWlNURF9DRGljdF9zRQBGdlAxMlpTVERfQ0RpY3Rfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDEyWlNURF9DRGljdF9zRU5TXzlhbGxvY2F0b3JJUzVfRUVTNF9FRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlAxMlpTVERfQ0RpY3Rfc0VFRQBQRnZQMTJaU1REX0REaWN0X3NFAEZ2UDEyWlNURF9ERGljdF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTJaU1REX0REaWN0X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDEyWlNURF9ERGljdF9zRUVFAFpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9DQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0NDdHhfc0VFRQBaTjE4WnN0ZENvbXByZXNzU3RyZWFtNUJlZ2luRVJLMTlac3RkQ29tcHJlc3Npb25EaWN0RTMkXzEATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4xOFpzdGRDb21wcmVzc1N0cmVhbTVCZWdpbkVSSzE5WnN0ZENvbXByZXNzaW9uRGljdEUzJF8xTlNfOWFsbG9jYXRvcklTNl9FRUZtUDExWlNURF9DQ3R4X3NFRUUAWk4yMFpzdGREZWNvbXByZXNzU3RyZWFtNUJlZ2luRXZFMyRfMgBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FdkUzJF8yTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9EQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0RDdHhfc0VFRQBaTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FUksyMVpzdGREZWNvbXByZXNzaW9uRGljdEUzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjBac3RkRGVjb21wcmVzc1N0cmVhbTVCZWdpbkVSSzIxWnN0ZERlY29tcHJlc3Npb25EaWN0RTMkXzNOU185YWxsb2NhdG9ySVM2X0VFRm1QMTFaU1REX0RDdHhfc0VFRQBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAHJ3YQBzdGQ6OmJhZF9mdW5jdGlvbl9jYWxsAE5TdDNfXzIxN2JhZF9mdW5jdGlvbl9jYWxsRQB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHB0aHJlYWRfb25jZSBmYWlsdXJlIGluIF9fY3hhX2dldF9nbG9iYWxzX2Zhc3QoKQBjYW5ub3QgY3JlYXRlIHB0aHJlYWQga2V5IGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAGNhbm5vdCB6ZXJvIG91dCB0aHJlYWQgdmFsdWUgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAdGVybWluYXRlX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgBEbgBiAGMAaABhAHMAdABpAGoAbQBmAGQATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAIGNvbnN0ACB2b2xhdGlsZQAgcmVzdHJpY3QAIGNvbXBsZXgAIGltYWdpbmFyeQAgWwAgKAApACgAJiYAb2JqY19vYmplY3Q8ACoAJgBvYmpjcHJvdG8AIAA8AD4AIHZlY3RvclsAXQBwaXhlbCB2ZWN0b3JbACY9AD0ALAB+ADo6AGRlbGV0ZVtdIABkZWxldGUgAC8ALz0AXgBePQA9PQA+PQApWwA8PQA8PAA8PD0ALQAtPQAqPQAtLQApLS0AIT0AIQB8fAB8AHw9AC0+KgArACs9ACsrACkrKwApID8gKAApIDogKAAlACU9AD4+AD4+PQB0aHJvdwB0aHJvdyAAdHlwZWlkKABzaXplb2YuLi4oACwgAHNpemVvZiAoAHN0YXRpY19jYXN0PAA+KAByZWludGVycHJldF9jYXN0PAAtPgBub2V4Y2VwdCAoAFtdIAApIAAuAC4qAHN0ZDo6AG9wZXJhdG9yJiYAb3BlcmF0b3ImAG9wZXJhdG9yJj0Ab3BlcmF0b3I9AG9wZXJhdG9yKCkAb3BlcmF0b3IsAG9wZXJhdG9yfgBvcGVyYXRvciAAb3BlcmF0b3IgZGVsZXRlW10Ab3BlcmF0b3IqAG9wZXJhdG9yLwBvcGVyYXRvci89AG9wZXJhdG9yXgBvcGVyYXRvcl49AG9wZXJhdG9yPT0Ab3BlcmF0b3I+PQBvcGVyYXRvcj4Ab3BlcmF0b3JbXQBvcGVyYXRvcjw9AG9wZXJhdG9yIiIgAG9wZXJhdG9yPDwAb3BlcmF0b3I8PD0Ab3BlcmF0b3I8AG9wZXJhdG9yLQBvcGVyYXRvci09AG9wZXJhdG9yKj0Ab3BlcmF0b3ItLQBvcGVyYXRvciBuZXdbXQBvcGVyYXRvciE9AG9wZXJhdG9yIQBvcGVyYXRvciBuZXcAb3BlcmF0b3J8fABvcGVyYXRvcnwAb3BlcmF0b3J8PQBvcGVyYXRvci0+KgBvcGVyYXRvcisAb3BlcmF0b3IrPQBvcGVyYXRvcisrAG9wZXJhdG9yLT4Ab3BlcmF0b3I/AG9wZXJhdG9yJQBvcGVyYXRvciU9AG9wZXJhdG9yPj4Ab3BlcmF0b3I+Pj0Ab3BlcmF0b3IgZGVsZXRlACd1bm5hbWVkACdsYW1iZGEnKABzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+AGJhc2ljX3N0cmluZwBzdGQ6OmlzdHJlYW0Ac3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pc3RyZWFtAHN0ZDo6b3N0cmVhbQBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+AGJhc2ljX29zdHJlYW0Ac3RkOjppb3N0cmVhbQBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pb3N0cmVhbQBkeW5hbWljX2Nhc3Q8ACkoAGNvbnN0X2Nhc3Q8AGFsaWdub2YgKABmcAB3Y2hhcl90AGZhbHNlAHRydWUAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AHUAbAB1bABsbAB1bGwAX19pbnQxMjgAdW5zaWduZWQgX19pbnQxMjgAJUxhTAAlYQAlYWYAZGVjbHR5cGUoAHN0ZDo6YWxsb2NhdG9yAHN0ZDo6YmFzaWNfc3RyaW5nADo6c3RyaW5nIGxpdGVyYWwAc3RkAF9HTE9CQUxfX04AKGFub255bW91cyBuYW1lc3BhY2UpACA+AFRfAGlkADo6KgAgJgAgJiYAIFtdAHZvaWQAYm9vbABpbnQAdW5zaWduZWQgaW50AGxvbmcAdW5zaWduZWQgbG9uZwBsb25nIGxvbmcAZmxvYXQAbG9uZyBkb3VibGUAX19mbG9hdDEyOAAuLi4AZGVjaW1hbDY0AGRlY2ltYWwxMjgAZGVjaW1hbDMyAGRlY2ltYWwxNgBjaGFyMzJfdABjaGFyMTZfdABhdXRvAHN0ZDo6bnVsbHB0cl90AGRvdWJsZQB1bnNpZ25lZCBsb25nIGxvbmcAX2Jsb2NrX2ludm9rZQBpbnZvY2F0aW9uIGZ1bmN0aW9uIGZvciBibG9jayBpbiAAdnRhYmxlIGZvciAAVlRUIGZvciAAdHlwZWluZm8gZm9yIAB0eXBlaW5mbyBuYW1lIGZvciAAY292YXJpYW50IHJldHVybiB0aHVuayB0byAAY29uc3RydWN0aW9uIHZ0YWJsZSBmb3IgAC1pbi0AdmlydHVhbCB0aHVuayB0byAAbm9uLXZpcnR1YWwgdGh1bmsgdG8gAGd1YXJkIHZhcmlhYmxlIGZvciAAcmVmZXJlbmNlIHRlbXBvcmFyeSBmb3Ig"; var tempDoublePtr = STATICTOP; STATICTOP += 16; function ___cxa_allocate_exception(size) { return _malloc(size); } function __ZSt18uncaught_exceptionv() { return !!__ZSt18uncaught_exceptionv.uncaught_exception; } var EXCEPTIONS = { last: 0, caught: [], infos: {}, deAdjust: function deAdjust(adjusted) { if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted; for (var key in EXCEPTIONS.infos) { var ptr = +key; var info = EXCEPTIONS.infos[ptr]; if (info.adjusted === adjusted) { return ptr; } } return adjusted; }, addRef: function addRef(ptr) { if (!ptr) return; var info = EXCEPTIONS.infos[ptr]; info.refcount++; }, decRef: function decRef(ptr) { if (!ptr) return; var info = EXCEPTIONS.infos[ptr]; assert(info.refcount > 0); info.refcount--; if (info.refcount === 0 && !info.rethrown) { if (info.destructor) { Module["dynCall_vi"](info.destructor, ptr); } delete EXCEPTIONS.infos[ptr]; ___cxa_free_exception(ptr); } }, clearRef: function clearRef(ptr) { if (!ptr) return; var info = EXCEPTIONS.infos[ptr]; info.refcount = 0; }, }; function ___cxa_begin_catch(ptr) { var info = EXCEPTIONS.infos[ptr]; if (info && !info.caught) { info.caught = true; __ZSt18uncaught_exceptionv.uncaught_exception--; } if (info) info.rethrown = false; EXCEPTIONS.caught.push(ptr); EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr)); return ptr; } function ___resumeException(ptr) { if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; } throw ( ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch." ); } function ___cxa_find_matching_catch() { var thrown = EXCEPTIONS.last; if (!thrown) { return (setTempRet0(0), 0) | 0; } var info = EXCEPTIONS.infos[thrown]; var throwntype = info.type; if (!throwntype) { return (setTempRet0(0), thrown) | 0; } var typeArray = Array.prototype.slice.call(arguments); var pointer = Module["___cxa_is_pointer_type"](throwntype); if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4); HEAP32[___cxa_find_matching_catch.buffer >> 2] = thrown; thrown = ___cxa_find_matching_catch.buffer; for (var i = 0; i < typeArray.length; i++) { if ( typeArray[i] && Module["___cxa_can_catch"](typeArray[i], throwntype, thrown) ) { thrown = HEAP32[thrown >> 2]; info.adjusted = thrown; return (setTempRet0(typeArray[i]), thrown) | 0; } } thrown = HEAP32[thrown >> 2]; return (setTempRet0(throwntype), thrown) | 0; } function ___cxa_throw(ptr, type, destructor) { EXCEPTIONS.infos[ptr] = { ptr: ptr, adjusted: ptr, type: type, destructor: destructor, refcount: 0, caught: false, rethrown: false, }; EXCEPTIONS.last = ptr; if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { __ZSt18uncaught_exceptionv.uncaught_exception = 1; } else { __ZSt18uncaught_exceptionv.uncaught_exception++; } throw ( ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch." ); } function ___gxx_personality_v0() {} function ___lock() {} var ERRNO_CODES = { EPERM: 1, ENOENT: 2, ESRCH: 3, EINTR: 4, EIO: 5, ENXIO: 6, E2BIG: 7, ENOEXEC: 8, EBADF: 9, ECHILD: 10, EAGAIN: 11, EWOULDBLOCK: 11, ENOMEM: 12, EACCES: 13, EFAULT: 14, ENOTBLK: 15, EBUSY: 16, EEXIST: 17, EXDEV: 18, ENODEV: 19, ENOTDIR: 20, EISDIR: 21, EINVAL: 22, ENFILE: 23, EMFILE: 24, ENOTTY: 25, ETXTBSY: 26, EFBIG: 27, ENOSPC: 28, ESPIPE: 29, EROFS: 30, EMLINK: 31, EPIPE: 32, EDOM: 33, ERANGE: 34, ENOMSG: 42, EIDRM: 43, ECHRNG: 44, EL2NSYNC: 45, EL3HLT: 46, EL3RST: 47, ELNRNG: 48, EUNATCH: 49, ENOCSI: 50, EL2HLT: 51, EDEADLK: 35, ENOLCK: 37, EBADE: 52, EBADR: 53, EXFULL: 54, ENOANO: 55, EBADRQC: 56, EBADSLT: 57, EDEADLOCK: 35, EBFONT: 59, ENOSTR: 60, ENODATA: 61, ETIME: 62, ENOSR: 63, ENONET: 64, ENOPKG: 65, EREMOTE: 66, ENOLINK: 67, EADV: 68, ESRMNT: 69, ECOMM: 70, EPROTO: 71, EMULTIHOP: 72, EDOTDOT: 73, EBADMSG: 74, ENOTUNIQ: 76, EBADFD: 77, EREMCHG: 78, ELIBACC: 79, ELIBBAD: 80, ELIBSCN: 81, ELIBMAX: 82, ELIBEXEC: 83, ENOSYS: 38, ENOTEMPTY: 39, ENAMETOOLONG: 36, ELOOP: 40, EOPNOTSUPP: 95, EPFNOSUPPORT: 96, ECONNRESET: 104, ENOBUFS: 105, EAFNOSUPPORT: 97, EPROTOTYPE: 91, ENOTSOCK: 88, ENOPROTOOPT: 92, ESHUTDOWN: 108, ECONNREFUSED: 111, EADDRINUSE: 98, ECONNABORTED: 103, ENETUNREACH: 101, ENETDOWN: 100, ETIMEDOUT: 110, EHOSTDOWN: 112, EHOSTUNREACH: 113, EINPROGRESS: 115, EALREADY: 114, EDESTADDRREQ: 89, EMSGSIZE: 90, EPROTONOSUPPORT: 93, ESOCKTNOSUPPORT: 94, EADDRNOTAVAIL: 99, ENETRESET: 102, EISCONN: 106, ENOTCONN: 107, ETOOMANYREFS: 109, EUSERS: 87, EDQUOT: 122, ESTALE: 116, ENOTSUP: 95, ENOMEDIUM: 123, EILSEQ: 84, EOVERFLOW: 75, ECANCELED: 125, ENOTRECOVERABLE: 131, EOWNERDEAD: 130, ESTRPIPE: 86, }; var ERRNO_MESSAGES = { 0: "Success", 1: "Not super-user", 2: "No such file or directory", 3: "No such process", 4: "Interrupted system call", 5: "I/O error", 6: "No such device or address", 7: "Arg list too long", 8: "Exec format error", 9: "Bad file number", 10: "No children", 11: "No more processes", 12: "Not enough core", 13: "Permission denied", 14: "Bad address", 15: "Block device required", 16: "Mount device busy", 17: "File exists", 18: "Cross-device link", 19: "No such device", 20: "Not a directory", 21: "Is a directory", 22: "Invalid argument", 23: "Too many open files in system", 24: "Too many open files", 25: "Not a typewriter", 26: "Text file busy", 27: "File too large", 28: "No space left on device", 29: "Illegal seek", 30: "Read only file system", 31: "Too many links", 32: "Broken pipe", 33: "Math arg out of domain of func", 34: "Math result not representable", 35: "File locking deadlock error", 36: "File or path name too long", 37: "No record locks available", 38: "Function not implemented", 39: "Directory not empty", 40: "Too many symbolic links", 42: "No message of desired type", 43: "Identifier removed", 44: "Channel number out of range", 45: "Level 2 not synchronized", 46: "Level 3 halted", 47: "Level 3 reset", 48: "Link number out of range", 49: "Protocol driver not attached", 50: "No CSI structure available", 51: "Level 2 halted", 52: "Invalid exchange", 53: "Invalid request descriptor", 54: "Exchange full", 55: "No anode", 56: "Invalid request code", 57: "Invalid slot", 59: "Bad font file fmt", 60: "Device not a stream", 61: "No data (for no delay io)", 62: "Timer expired", 63: "Out of streams resources", 64: "Machine is not on the network", 65: "Package not installed", 66: "The object is remote", 67: "The link has been severed", 68: "Advertise error", 69: "Srmount error", 70: "Communication error on send", 71: "Protocol error", 72: "Multihop attempted", 73: "Cross mount point (not really error)", 74: "Trying to read unreadable message", 75: "Value too large for defined data type", 76: "Given log. name not unique", 77: "f.d. invalid for this operation", 78: "Remote address changed", 79: "Can access a needed shared lib", 80: "Accessing a corrupted shared lib", 81: ".lib section in a.out corrupted", 82: "Attempting to link in too many libs", 83: "Attempting to exec a shared library", 84: "Illegal byte sequence", 86: "Streams pipe error", 87: "Too many users", 88: "Socket operation on non-socket", 89: "Destination address required", 90: "Message too long", 91: "Protocol wrong type for socket", 92: "Protocol not available", 93: "Unknown protocol", 94: "Socket type not supported", 95: "Not supported", 96: "Protocol family not supported", 97: "Address family not supported by protocol family", 98: "Address already in use", 99: "Address not available", 100: "Network interface is not configured", 101: "Network is unreachable", 102: "Connection reset by network", 103: "Connection aborted", 104: "Connection reset by peer", 105: "No buffer space available", 106: "Socket is already connected", 107: "Socket is not connected", 108: "Can't send after socket shutdown", 109: "Too many references", 110: "Connection timed out", 111: "Connection refused", 112: "Host is down", 113: "Host is unreachable", 114: "Socket already connected", 115: "Connection already in progress", 116: "Stale file handle", 122: "Quota exceeded", 123: "No medium (in tape drive)", 125: "Operation canceled", 130: "Previous owner died", 131: "State not recoverable", }; function ___setErrNo(value) { if (Module["___errno_location"]) HEAP32[Module["___errno_location"]() >> 2] = value; return value; } var PATH = { splitPath: function splitPath(filename) { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1); }, normalizeArray: function normalizeArray(parts, allowAboveRoot) { var up = 0; for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; if (last === ".") { parts.splice(i, 1); } else if (last === "..") { parts.splice(i, 1); up++; } else if (up) { parts.splice(i, 1); up--; } } if (allowAboveRoot) { for (; up; up--) { parts.unshift(".."); } } return parts; }, normalize: function normalize(path) { var isAbsolute = path.charAt(0) === "/", trailingSlash = path.substr(-1) === "/"; path = PATH.normalizeArray( path.split("/").filter(function (p) { return !!p; }), !isAbsolute ).join("/"); if (!path && !isAbsolute) { path = "."; } if (path && trailingSlash) { path += "/"; } return (isAbsolute ? "/" : "") + path; }, dirname: function dirname(path) { var result = PATH.splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { return "."; } if (dir) { dir = dir.substr(0, dir.length - 1); } return root + dir; }, basename: function basename(path) { if (path === "/") return "/"; var lastSlash = path.lastIndexOf("/"); if (lastSlash === -1) return path; return path.substr(lastSlash + 1); }, extname: function extname(path) { return PATH.splitPath(path)[3]; }, join: function join() { var paths = Array.prototype.slice.call(arguments, 0); return PATH.normalize(paths.join("/")); }, join2: function join2(l, r) { return PATH.normalize(l + "/" + r); }, resolve: function resolve() { var resolvedPath = "", resolvedAbsolute = false; for ( var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i-- ) { var path = i >= 0 ? arguments[i] : FS.cwd(); if (typeof path !== "string") { throw new TypeError( "Arguments to path.resolve must be strings" ); } else if (!path) { return ""; } resolvedPath = path + "/" + resolvedPath; resolvedAbsolute = path.charAt(0) === "/"; } resolvedPath = PATH.normalizeArray( resolvedPath.split("/").filter(function (p) { return !!p; }), !resolvedAbsolute ).join("/"); return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; }, relative: function relative(from, to) { from = PATH.resolve(from).substr(1); to = PATH.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== "") break; } var end = arr.length - 1; for (; end >= 0; end--) { if (arr[end] !== "") break; } if (start > end) return []; return arr.slice(start, end - start + 1); } var fromParts = trim(from.split("/")); var toParts = trim(to.split("/")); var length = Math.min(fromParts.length, toParts.length); var samePartsLength = length; for (var i = 0; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break; } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push(".."); } outputParts = outputParts.concat( toParts.slice(samePartsLength) ); return outputParts.join("/"); }, }; var TTY = { ttys: [], init: function init() {}, shutdown: function shutdown() {}, register: function register(dev, ops) { TTY.ttys[dev] = { input: [], output: [], ops: ops }; FS.registerDevice(dev, TTY.stream_ops); }, stream_ops: { open: function open(stream) { var tty = TTY.ttys[stream.node.rdev]; if (!tty) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } stream.tty = tty; stream.seekable = false; }, close: function close(stream) { stream.tty.ops.flush(stream.tty); }, flush: function flush(stream) { stream.tty.ops.flush(stream.tty); }, read: function read(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.get_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO); } var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = stream.tty.ops.get_char(stream.tty); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: function write(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.put_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO); } for (var i = 0; i < length; i++) { try { stream.tty.ops.put_char(stream.tty, buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } } if (length) { stream.node.timestamp = Date.now(); } return i; }, }, default_tty_ops: { get_char: function get_char(tty) { if (!tty.input.length) { var result = null; if (ENVIRONMENT_IS_NODE) { var BUFSIZE = 256; var buf = new Buffer(BUFSIZE); var bytesRead = 0; var isPosixPlatform = process.platform != "win32"; var fd = process.stdin.fd; if (isPosixPlatform) { var usingDevice = false; try { fd = fs.openSync("/dev/stdin", "r"); usingDevice = true; } catch (e) {} } try { bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); } catch (e) { if (e.toString().indexOf("EOF") != -1) bytesRead = 0; else throw e; } if (usingDevice) { fs.closeSync(fd); } if (bytesRead > 0) { result = buf.slice(0, bytesRead).toString("utf-8"); } else { result = null; } } else if ( typeof window != "undefined" && typeof window.prompt == "function" ) { result = window.prompt("Input: "); if (result !== null) { result += "\n"; } } else if (typeof readline == "function") { result = readline(); if (result !== null) { result += "\n"; } } if (!result) { return null; } tty.input = intArrayFromString(result, true); } return tty.input.shift(); }, put_char: function put_char(tty, val) { if (val === null || val === 10) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, flush: function flush(tty) { if (tty.output && tty.output.length > 0) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } }, }, default_tty1_ops: { put_char: function put_char(tty, val) { if (val === null || val === 10) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, flush: function flush(tty) { if (tty.output && tty.output.length > 0) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } }, }, }; var MEMFS = { ops_table: null, mount: function mount(_mount) { return MEMFS.createNode(null, "/", 16384 | 511, 0); }, createNode: function createNode(parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (!MEMFS.ops_table) { MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink, }, stream: { llseek: MEMFS.stream_ops.llseek }, }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync, }, }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink, }, stream: {}, }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, }, stream: FS.chrdev_stream_ops, }, }; } var node = FS.createNode(parent, name, mode, dev); if (FS.isDir(node.mode)) { node.node_ops = MEMFS.ops_table.dir.node; node.stream_ops = MEMFS.ops_table.dir.stream; node.contents = {}; } else if (FS.isFile(node.mode)) { node.node_ops = MEMFS.ops_table.file.node; node.stream_ops = MEMFS.ops_table.file.stream; node.usedBytes = 0; node.contents = null; } else if (FS.isLink(node.mode)) { node.node_ops = MEMFS.ops_table.link.node; node.stream_ops = MEMFS.ops_table.link.stream; } else if (FS.isChrdev(node.mode)) { node.node_ops = MEMFS.ops_table.chrdev.node; node.stream_ops = MEMFS.ops_table.chrdev.stream; } node.timestamp = Date.now(); if (parent) { parent.contents[name] = node; } return node; }, getFileDataAsRegularArray: function getFileDataAsRegularArray( node ) { if (node.contents && node.contents.subarray) { var arr = []; for (var i = 0; i < node.usedBytes; ++i) { arr.push(node.contents[i]); } return arr; } return node.contents; }, getFileDataAsTypedArray: function getFileDataAsTypedArray( node ) { if (!node.contents) return new Uint8Array(); if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); return new Uint8Array(node.contents); }, expandFileStorage: function expandFileStorage( node, newCapacity ) { if ( node.contents && node.contents.subarray && newCapacity > node.contents.length ) { node.contents = MEMFS.getFileDataAsRegularArray(node); node.usedBytes = node.contents.length; } if (!node.contents || node.contents.subarray) { var prevCapacity = node.contents ? node.contents.length : 0; if (prevCapacity >= newCapacity) return; var CAPACITY_DOUBLING_MAX = 1024 * 1024; newCapacity = Math.max( newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) | 0 ); if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); var oldContents = node.contents; node.contents = new Uint8Array(newCapacity); if (node.usedBytes > 0) node.contents.set( oldContents.subarray(0, node.usedBytes), 0 ); return; } if (!node.contents && newCapacity > 0) node.contents = []; while (node.contents.length < newCapacity) { node.contents.push(0); } }, resizeFileStorage: function resizeFileStorage(node, newSize) { if (node.usedBytes == newSize) return; if (newSize == 0) { node.contents = null; node.usedBytes = 0; return; } if (!node.contents || node.contents.subarray) { var oldContents = node.contents; node.contents = new Uint8Array(new ArrayBuffer(newSize)); if (oldContents) { node.contents.set( oldContents.subarray( 0, Math.min(newSize, node.usedBytes) ) ); } node.usedBytes = newSize; return; } if (!node.contents) node.contents = []; if (node.contents.length > newSize) node.contents.length = newSize; else while (node.contents.length < newSize) { node.contents.push(0); } node.usedBytes = newSize; }, node_ops: { getattr: function getattr(node) { var attr = {}; attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; attr.mode = node.mode; attr.nlink = 1; attr.uid = 0; attr.gid = 0; attr.rdev = node.rdev; if (FS.isDir(node.mode)) { attr.size = 4096; } else if (FS.isFile(node.mode)) { attr.size = node.usedBytes; } else if (FS.isLink(node.mode)) { attr.size = node.link.length; } else { attr.size = 0; } attr.atime = new Date(node.timestamp); attr.mtime = new Date(node.timestamp); attr.ctime = new Date(node.timestamp); attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr; }, setattr: function setattr(node, attr) { if (attr.mode !== undefined) { node.mode = attr.mode; } if (attr.timestamp !== undefined) { node.timestamp = attr.timestamp; } if (attr.size !== undefined) { MEMFS.resizeFileStorage(node, attr.size); } }, lookup: function lookup(parent, name) { throw FS.genericErrors[ERRNO_CODES.ENOENT]; }, mknod: function mknod(parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev); }, rename: function rename(old_node, new_dir, new_name) { if (FS.isDir(old_node.mode)) { var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) {} if (new_node) { for (var i in new_node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } } } delete old_node.parent.contents[old_node.name]; old_node.name = new_name; new_dir.contents[new_name] = old_node; old_node.parent = new_dir; }, unlink: function unlink(parent, name) { delete parent.contents[name]; }, rmdir: function rmdir(parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } delete parent.contents[name]; }, readdir: function readdir(node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue; } entries.push(key); } return entries; }, symlink: function symlink(parent, newname, oldpath) { var node = MEMFS.createNode( parent, newname, 511 | 40960, 0 ); node.link = oldpath; return node; }, readlink: function readlink(node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return node.link; }, }, stream_ops: { read: function read( stream, buffer, offset, length, position ) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; var size = Math.min( stream.node.usedBytes - position, length ); assert(size >= 0); if (size > 8 && contents.subarray) { buffer.set( contents.subarray(position, position + size), offset ); } else { for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } return size; }, write: function write( stream, buffer, offset, length, position, canOwn ) { if (!length) return 0; var node = stream.node; node.timestamp = Date.now(); if ( buffer.subarray && (!node.contents || node.contents.subarray) ) { if (canOwn) { node.contents = buffer.subarray( offset, offset + length ); node.usedBytes = length; return length; } else if (node.usedBytes === 0 && position === 0) { node.contents = new Uint8Array( buffer.subarray(offset, offset + length) ); node.usedBytes = length; return length; } else if (position + length <= node.usedBytes) { node.contents.set( buffer.subarray(offset, offset + length), position ); return length; } } MEMFS.expandFileStorage(node, position + length); if (node.contents.subarray && buffer.subarray) node.contents.set( buffer.subarray(offset, offset + length), position ); else { for (var i = 0; i < length; i++) { node.contents[position + i] = buffer[offset + i]; } } node.usedBytes = Math.max( node.usedBytes, position + length ); return length; }, llseek: function llseek(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { position += stream.node.usedBytes; } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return position; }, allocate: function allocate(stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max( stream.node.usedBytes, offset + length ); }, mmap: function mmap( stream, buffer, offset, length, position, prot, flags ) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } var ptr; var allocated; var contents = stream.node.contents; if ( !(flags & 2) && (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { allocated = false; ptr = contents.byteOffset; } else { if ( position > 0 || position + length < stream.node.usedBytes ) { if (contents.subarray) { contents = contents.subarray( position, position + length ); } else { contents = Array.prototype.slice.call( contents, position, position + length ); } } allocated = true; ptr = _malloc(length); if (!ptr) { throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); } buffer.set(contents, ptr); } return { ptr: ptr, allocated: allocated }; }, msync: function msync( stream, buffer, offset, length, mmapFlags ) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } if (mmapFlags & 2) { return 0; } var bytesWritten = MEMFS.stream_ops.write( stream, buffer, 0, length, offset, false ); return 0; }, }, }; var IDBFS = { dbs: {}, indexedDB: (function (_indexedDB) { function indexedDB() { return _indexedDB.apply(this, arguments); } indexedDB.toString = function () { return _indexedDB.toString(); }; return indexedDB; })(function () { if (typeof indexedDB !== "undefined") return indexedDB; var ret = null; if ( (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" ) ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; assert(ret, "IDBFS used, but indexedDB not supported"); return ret; }), DB_VERSION: 21, DB_STORE_NAME: "FILE_DATA", mount: function mount(_mount2) { return MEMFS.mount.apply(null, arguments); }, syncfs: function syncfs(mount, populate, callback) { IDBFS.getLocalSet(mount, function (err, local) { if (err) return callback(err); IDBFS.getRemoteSet(mount, function (err, remote) { if (err) return callback(err); var src = populate ? remote : local; var dst = populate ? local : remote; IDBFS.reconcile(src, dst, callback); }); }); }, getDB: function getDB(name, callback) { var db = IDBFS.dbs[name]; if (db) { return callback(null, db); } var req; try { req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); } catch (e) { return callback(e); } if (!req) { return callback("Unable to connect to IndexedDB"); } req.onupgradeneeded = function (e) { var db = e.target.result; var transaction = e.target.transaction; var fileStore; if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); } else { fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); } if (!fileStore.indexNames.contains("timestamp")) { fileStore.createIndex("timestamp", "timestamp", { unique: false, }); } }; req.onsuccess = function () { db = req.result; IDBFS.dbs[name] = db; callback(null, db); }; req.onerror = function (e) { callback(this.error); e.preventDefault(); }; }, getLocalSet: function getLocalSet(mount, callback) { var entries = {}; function isRealDir(p) { return p !== "." && p !== ".."; } function toAbsolute(root) { return function (p) { return PATH.join2(root, p); }; } var check = FS.readdir(mount.mountpoint) .filter(isRealDir) .map(toAbsolute(mount.mountpoint)); while (check.length) { var path = check.pop(); var stat; try { stat = FS.stat(path); } catch (e) { return callback(e); } if (FS.isDir(stat.mode)) { check.push.apply( check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)) ); } entries[path] = { timestamp: stat.mtime }; } return callback(null, { type: "local", entries: entries }); }, getRemoteSet: function getRemoteSet(mount, callback) { var entries = {}; IDBFS.getDB(mount.mountpoint, function (err, db) { if (err) return callback(err); try { var transaction = db.transaction( [IDBFS.DB_STORE_NAME], "readonly" ); transaction.onerror = function (e) { callback(this.error); e.preventDefault(); }; var store = transaction.objectStore(IDBFS.DB_STORE_NAME); var index = store.index("timestamp"); index.openKeyCursor().onsuccess = function (event) { var cursor = event.target.result; if (!cursor) { return callback(null, { type: "remote", db: db, entries: entries, }); } entries[cursor.primaryKey] = { timestamp: cursor.key }; cursor.continue(); }; } catch (e) { return callback(e); } }); }, loadLocalEntry: function loadLocalEntry(path, callback) { var stat, node; try { var lookup = FS.lookupPath(path); node = lookup.node; stat = FS.stat(path); } catch (e) { return callback(e); } if (FS.isDir(stat.mode)) { return callback(null, { timestamp: stat.mtime, mode: stat.mode, }); } else if (FS.isFile(stat.mode)) { node.contents = MEMFS.getFileDataAsTypedArray(node); return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents, }); } else { return callback(new Error("node type not supported")); } }, storeLocalEntry: function storeLocalEntry( path, entry, callback ) { try { if (FS.isDir(entry.mode)) { FS.mkdir(path, entry.mode); } else if (FS.isFile(entry.mode)) { FS.writeFile(path, entry.contents, { canOwn: true }); } else { return callback(new Error("node type not supported")); } FS.chmod(path, entry.mode); FS.utime(path, entry.timestamp, entry.timestamp); } catch (e) { return callback(e); } callback(null); }, removeLocalEntry: function removeLocalEntry(path, callback) { try { var lookup = FS.lookupPath(path); var stat = FS.stat(path); if (FS.isDir(stat.mode)) { FS.rmdir(path); } else if (FS.isFile(stat.mode)) { FS.unlink(path); } } catch (e) { return callback(e); } callback(null); }, loadRemoteEntry: function loadRemoteEntry( store, path, callback ) { var req = store.get(path); req.onsuccess = function (event) { callback(null, event.target.result); }; req.onerror = function (e) { callback(this.error); e.preventDefault(); }; }, storeRemoteEntry: function storeRemoteEntry( store, path, entry, callback ) { var req = store.put(entry, path); req.onsuccess = function () { callback(null); }; req.onerror = function (e) { callback(this.error); e.preventDefault(); }; }, removeRemoteEntry: function removeRemoteEntry( store, path, callback ) { var req = store.delete(path); req.onsuccess = function () { callback(null); }; req.onerror = function (e) { callback(this.error); e.preventDefault(); }; }, reconcile: function reconcile(src, dst, callback) { var total = 0; var create = []; Object.keys(src.entries).forEach(function (key) { var e = src.entries[key]; var e2 = dst.entries[key]; if (!e2 || e.timestamp > e2.timestamp) { create.push(key); total++; } }); var remove = []; Object.keys(dst.entries).forEach(function (key) { var e = dst.entries[key]; var e2 = src.entries[key]; if (!e2) { remove.push(key); total++; } }); if (!total) { return callback(null); } var completed = 0; var db = src.type === "remote" ? src.db : dst.db; var transaction = db.transaction( [IDBFS.DB_STORE_NAME], "readwrite" ); var store = transaction.objectStore(IDBFS.DB_STORE_NAME); function done(err) { if (err) { if (!done.errored) { done.errored = true; return callback(err); } return; } if (++completed >= total) { return callback(null); } } transaction.onerror = function (e) { done(this.error); e.preventDefault(); }; create.sort().forEach(function (path) { if (dst.type === "local") { IDBFS.loadRemoteEntry(store, path, function (err, entry) { if (err) return done(err); IDBFS.storeLocalEntry(path, entry, done); }); } else { IDBFS.loadLocalEntry(path, function (err, entry) { if (err) return done(err); IDBFS.storeRemoteEntry(store, path, entry, done); }); } }); remove .sort() .reverse() .forEach(function (path) { if (dst.type === "local") { IDBFS.removeLocalEntry(path, done); } else { IDBFS.removeRemoteEntry(store, path, done); } }); }, }; var NODEFS = { isWindows: false, staticInit: function staticInit() { NODEFS.isWindows = !!process.platform.match(/^win/); var flags = process["binding"]("constants"); if (flags["fs"]) { flags = flags["fs"]; } NODEFS.flagsForNodeMap = { 1024: flags["O_APPEND"], 64: flags["O_CREAT"], 128: flags["O_EXCL"], 0: flags["O_RDONLY"], 2: flags["O_RDWR"], 4096: flags["O_SYNC"], 512: flags["O_TRUNC"], 1: flags["O_WRONLY"], }; }, bufferFrom: function bufferFrom(arrayBuffer) { return Buffer.alloc ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer); }, mount: function mount(_mount3) { assert(ENVIRONMENT_IS_NODE); return NODEFS.createNode( null, "/", NODEFS.getMode(_mount3.opts.root), 0 ); }, createNode: function createNode(parent, name, mode, dev) { if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node = FS.createNode(parent, name, mode); node.node_ops = NODEFS.node_ops; node.stream_ops = NODEFS.stream_ops; return node; }, getMode: function getMode(path) { var stat; try { stat = fs.lstatSync(path); if (NODEFS.isWindows) { stat.mode = stat.mode | ((stat.mode & 292) >> 2); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return stat.mode; }, realPath: function realPath(node) { var parts = []; while (node.parent !== node) { parts.push(node.name); node = node.parent; } parts.push(node.mount.opts.root); parts.reverse(); return PATH.join.apply(null, parts); }, flagsForNode: function flagsForNode(flags) { flags &= ~2097152; flags &= ~2048; flags &= ~32768; flags &= ~524288; var newFlags = 0; for (var k in NODEFS.flagsForNodeMap) { if (flags & k) { newFlags |= NODEFS.flagsForNodeMap[k]; flags ^= k; } } if (!flags) { return newFlags; } else { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } }, node_ops: { getattr: function getattr(node) { var path = NODEFS.realPath(node); var stat; try { stat = fs.lstatSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } if (NODEFS.isWindows && !stat.blksize) { stat.blksize = 4096; } if (NODEFS.isWindows && !stat.blocks) { stat.blocks = ((stat.size + stat.blksize - 1) / stat.blksize) | 0; } return { dev: stat.dev, ino: stat.ino, mode: stat.mode, nlink: stat.nlink, uid: stat.uid, gid: stat.gid, rdev: stat.rdev, size: stat.size, atime: stat.atime, mtime: stat.mtime, ctime: stat.ctime, blksize: stat.blksize, blocks: stat.blocks, }; }, setattr: function setattr(node, attr) { var path = NODEFS.realPath(node); try { if (attr.mode !== undefined) { fs.chmodSync(path, attr.mode); node.mode = attr.mode; } if (attr.timestamp !== undefined) { var date = new Date(attr.timestamp); fs.utimesSync(path, date, date); } if (attr.size !== undefined) { fs.truncateSync(path, attr.size); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, lookup: function lookup(parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); var mode = NODEFS.getMode(path); return NODEFS.createNode(parent, name, mode); }, mknod: function mknod(parent, name, mode, dev) { var node = NODEFS.createNode(parent, name, mode, dev); var path = NODEFS.realPath(node); try { if (FS.isDir(node.mode)) { fs.mkdirSync(path, node.mode); } else { fs.writeFileSync(path, "", { mode: node.mode }); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return node; }, rename: function rename(oldNode, newDir, newName) { var oldPath = NODEFS.realPath(oldNode); var newPath = PATH.join2(NODEFS.realPath(newDir), newName); try { fs.renameSync(oldPath, newPath); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, unlink: function unlink(parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); try { fs.unlinkSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, rmdir: function rmdir(parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); try { fs.rmdirSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, readdir: function readdir(node) { var path = NODEFS.realPath(node); try { return fs.readdirSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, symlink: function symlink(parent, newName, oldPath) { var newPath = PATH.join2(NODEFS.realPath(parent), newName); try { fs.symlinkSync(oldPath, newPath); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, readlink: function readlink(node) { var path = NODEFS.realPath(node); try { path = fs.readlinkSync(path); path = NODEJS_PATH.relative( NODEJS_PATH.resolve(node.mount.opts.root), path ); return path; } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, }, stream_ops: { open: function open(stream) { var path = NODEFS.realPath(stream.node); try { if (FS.isFile(stream.node.mode)) { stream.nfd = fs.openSync( path, NODEFS.flagsForNode(stream.flags) ); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, close: function close(stream) { try { if (FS.isFile(stream.node.mode) && stream.nfd) { fs.closeSync(stream.nfd); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, read: function read( stream, buffer, offset, length, position ) { if (length === 0) return 0; try { return fs.readSync( stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position ); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, write: function write( stream, buffer, offset, length, position ) { try { return fs.writeSync( stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position ); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, llseek: function llseek(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { try { var stat = fs.fstatSync(stream.nfd); position += stat.size; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return position; }, }, }; var WORKERFS = { DIR_MODE: 16895, FILE_MODE: 33279, reader: null, mount: function mount(_mount4) { assert(ENVIRONMENT_IS_WORKER); if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); var root = WORKERFS.createNode( null, "/", WORKERFS.DIR_MODE, 0 ); var createdParents = {}; function ensureParent(path) { var parts = path.split("/"); var parent = root; for (var i = 0; i < parts.length - 1; i++) { var curr = parts.slice(0, i + 1).join("/"); if (!createdParents[curr]) { createdParents[curr] = WORKERFS.createNode( parent, parts[i], WORKERFS.DIR_MODE, 0 ); } parent = createdParents[curr]; } return parent; } function base(path) { var parts = path.split("/"); return parts[parts.length - 1]; } Array.prototype.forEach.call( _mount4.opts["files"] || [], function (file) { WORKERFS.createNode( ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate ); } ); (_mount4.opts["blobs"] || []).forEach(function (obj) { WORKERFS.createNode( ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"] ); }); (_mount4.opts["packages"] || []).forEach(function (pack) { pack["metadata"].files.forEach(function (file) { var name = file.filename.substr(1); WORKERFS.createNode( ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack["blob"].slice(file.start, file.end) ); }); }); return root; }, createNode: function createNode( parent, name, mode, dev, contents, mtime ) { var node = FS.createNode(parent, name, mode); node.mode = mode; node.node_ops = WORKERFS.node_ops; node.stream_ops = WORKERFS.stream_ops; node.timestamp = (mtime || new Date()).getTime(); assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); if (mode === WORKERFS.FILE_MODE) { node.size = contents.size; node.contents = contents; } else { node.size = 4096; node.contents = {}; } if (parent) { parent.contents[name] = node; } return node; }, node_ops: { getattr: function getattr(node) { return { dev: 1, ino: undefined, mode: node.mode, nlink: 1, uid: 0, gid: 0, rdev: undefined, size: node.size, atime: new Date(node.timestamp), mtime: new Date(node.timestamp), ctime: new Date(node.timestamp), blksize: 4096, blocks: Math.ceil(node.size / 4096), }; }, setattr: function setattr(node, attr) { if (attr.mode !== undefined) { node.mode = attr.mode; } if (attr.timestamp !== undefined) { node.timestamp = attr.timestamp; } }, lookup: function lookup(parent, name) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); }, mknod: function mknod(parent, name, mode, dev) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, rename: function rename(oldNode, newDir, newName) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, unlink: function unlink(parent, name) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, rmdir: function rmdir(parent, name) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, readdir: function readdir(node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue; } entries.push(key); } return entries; }, symlink: function symlink(parent, newName, oldPath) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, readlink: function readlink(node) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); }, }, stream_ops: { read: function read( stream, buffer, offset, length, position ) { if (position >= stream.node.size) return 0; var chunk = stream.node.contents.slice( position, position + length ); var ab = WORKERFS.reader.readAsArrayBuffer(chunk); buffer.set(new Uint8Array(ab), offset); return chunk.size; }, write: function write( stream, buffer, offset, length, position ) { throw new FS.ErrnoError(ERRNO_CODES.EIO); }, llseek: function llseek(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { position += stream.node.size; } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return position; }, }, }; STATICTOP += 16; STATICTOP += 16; STATICTOP += 16; var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, trackingDelegate: {}, tracking: { openFlags: { READ: 1, WRITE: 2 } }, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, handleFSError: function handleFSError(e) { if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace(); return ___setErrNo(e.errno); }, lookupPath: function lookupPath(path, opts) { path = PATH.resolve(FS.cwd(), path); opts = opts || {}; if (!path) return { path: "", node: null }; var defaults = { follow_mount: true, recurse_count: 0 }; for (var key in defaults) { if (opts[key] === undefined) { opts[key] = defaults[key]; } } if (opts.recurse_count > 8) { throw new FS.ErrnoError(ERRNO_CODES.ELOOP); } var parts = PATH.normalizeArray( path.split("/").filter(function (p) { return !!p; }), false ); var current = FS.root; var current_path = "/"; for (var i = 0; i < parts.length; i++) { var islast = i === parts.length - 1; if (islast && opts.parent) { break; } current = FS.lookupNode(current, parts[i]); current_path = PATH.join2(current_path, parts[i]); if (FS.isMountpoint(current)) { if (!islast || (islast && opts.follow_mount)) { current = current.mounted.root; } } if (!islast || opts.follow) { var count = 0; while (FS.isLink(current.mode)) { var link = FS.readlink(current_path); current_path = PATH.resolve( PATH.dirname(current_path), link ); var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count, }); current = lookup.node; if (count++ > 40) { throw new FS.ErrnoError(ERRNO_CODES.ELOOP); } } } } return { path: current_path, node: current }; }, getPath: function getPath(node) { var path; while (true) { if (FS.isRoot(node)) { var mount = node.mount.mountpoint; if (!path) return mount; return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; } path = path ? node.name + "/" + path : node.name; node = node.parent; } }, hashName: function hashName(parentid, name) { var hash = 0; for (var i = 0; i < name.length; i++) { hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; } return ((parentid + hash) >>> 0) % FS.nameTable.length; }, hashAddNode: function hashAddNode(node) { var hash = FS.hashName(node.parent.id, node.name); node.name_next = FS.nameTable[hash]; FS.nameTable[hash] = node; }, hashRemoveNode: function hashRemoveNode(node) { var hash = FS.hashName(node.parent.id, node.name); if (FS.nameTable[hash] === node) { FS.nameTable[hash] = node.name_next; } else { var current = FS.nameTable[hash]; while (current) { if (current.name_next === node) { current.name_next = node.name_next; break; } current = current.name_next; } } }, lookupNode: function lookupNode(parent, name) { var err = FS.mayLookup(parent); if (err) { throw new FS.ErrnoError(err, parent); } var hash = FS.hashName(parent.id, name); for ( var node = FS.nameTable[hash]; node; node = node.name_next ) { var nodeName = node.name; if (node.parent.id === parent.id && nodeName === name) { return node; } } return FS.lookup(parent, name); }, createNode: function createNode(parent, name, mode, rdev) { if (!FS.FSNode) { FS.FSNode = function (parent, name, mode, rdev) { if (!parent) { parent = this; } this.parent = parent; this.mount = parent.mount; this.mounted = null; this.id = FS.nextInode++; this.name = name; this.mode = mode; this.node_ops = {}; this.stream_ops = {}; this.rdev = rdev; }; FS.FSNode.prototype = {}; var readMode = 292 | 73; var writeMode = 146; Object.defineProperties(FS.FSNode.prototype, { read: { get: function get() { return (this.mode & readMode) === readMode; }, set: function set(val) { val ? (this.mode |= readMode) : (this.mode &= ~readMode); }, }, write: { get: function get() { return (this.mode & writeMode) === writeMode; }, set: function set(val) { val ? (this.mode |= writeMode) : (this.mode &= ~writeMode); }, }, isFolder: { get: function get() { return FS.isDir(this.mode); }, }, isDevice: { get: function get() { return FS.isChrdev(this.mode); }, }, }); } var node = new FS.FSNode(parent, name, mode, rdev); FS.hashAddNode(node); return node; }, destroyNode: function destroyNode(node) { FS.hashRemoveNode(node); }, isRoot: function isRoot(node) { return node === node.parent; }, isMountpoint: function isMountpoint(node) { return !!node.mounted; }, isFile: function isFile(mode) { return (mode & 61440) === 32768; }, isDir: function isDir(mode) { return (mode & 61440) === 16384; }, isLink: function isLink(mode) { return (mode & 61440) === 40960; }, isChrdev: function isChrdev(mode) { return (mode & 61440) === 8192; }, isBlkdev: function isBlkdev(mode) { return (mode & 61440) === 24576; }, isFIFO: function isFIFO(mode) { return (mode & 61440) === 4096; }, isSocket: function isSocket(mode) { return (mode & 49152) === 49152; }, flagModes: { r: 0, rs: 1052672, "r+": 2, w: 577, wx: 705, xw: 705, "w+": 578, "wx+": 706, "xw+": 706, a: 1089, ax: 1217, xa: 1217, "a+": 1090, "ax+": 1218, "xa+": 1218, }, modeStringToFlags: function modeStringToFlags(str) { var flags = FS.flagModes[str]; if (typeof flags === "undefined") { throw new Error("Unknown file open mode: " + str); } return flags; }, flagsToPermissionString: function flagsToPermissionString( flag ) { var perms = ["r", "w", "rw"][flag & 3]; if (flag & 512) { perms += "w"; } return perms; }, nodePermissions: function nodePermissions(node, perms) { if (FS.ignorePermissions) { return 0; } if (perms.indexOf("r") !== -1 && !(node.mode & 292)) { return ERRNO_CODES.EACCES; } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) { return ERRNO_CODES.EACCES; } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) { return ERRNO_CODES.EACCES; } return 0; }, mayLookup: function mayLookup(dir) { var err = FS.nodePermissions(dir, "x"); if (err) return err; if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; return 0; }, mayCreate: function mayCreate(dir, name) { try { var node = FS.lookupNode(dir, name); return ERRNO_CODES.EEXIST; } catch (e) {} return FS.nodePermissions(dir, "wx"); }, mayDelete: function mayDelete(dir, name, isdir) { var node; try { node = FS.lookupNode(dir, name); } catch (e) { return e.errno; } var err = FS.nodePermissions(dir, "wx"); if (err) { return err; } if (isdir) { if (!FS.isDir(node.mode)) { return ERRNO_CODES.ENOTDIR; } if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { return ERRNO_CODES.EBUSY; } } else { if (FS.isDir(node.mode)) { return ERRNO_CODES.EISDIR; } } return 0; }, mayOpen: function mayOpen(node, flags) { if (!node) { return ERRNO_CODES.ENOENT; } if (FS.isLink(node.mode)) { return ERRNO_CODES.ELOOP; } else if (FS.isDir(node.mode)) { if ( FS.flagsToPermissionString(flags) !== "r" || flags & 512 ) { return ERRNO_CODES.EISDIR; } } return FS.nodePermissions( node, FS.flagsToPermissionString(flags) ); }, MAX_OPEN_FDS: 4096, nextfd: function nextfd(fd_start, fd_end) { fd_start = fd_start || 0; fd_end = fd_end || FS.MAX_OPEN_FDS; for (var fd = fd_start; fd <= fd_end; fd++) { if (!FS.streams[fd]) { return fd; } } throw new FS.ErrnoError(ERRNO_CODES.EMFILE); }, getStream: function getStream(fd) { return FS.streams[fd]; }, createStream: function createStream(stream, fd_start, fd_end) { if (!FS.FSStream) { FS.FSStream = function () {}; FS.FSStream.prototype = {}; Object.defineProperties(FS.FSStream.prototype, { object: { get: function get() { return this.node; }, set: function set(val) { this.node = val; }, }, isRead: { get: function get() { return (this.flags & 2097155) !== 1; }, }, isWrite: { get: function get() { return (this.flags & 2097155) !== 0; }, }, isAppend: { get: function get() { return this.flags & 1024; }, }, }); } var newStream = new FS.FSStream(); for (var p in stream) { newStream[p] = stream[p]; } stream = newStream; var fd = FS.nextfd(fd_start, fd_end); stream.fd = fd; FS.streams[fd] = stream; return stream; }, closeStream: function closeStream(fd) { FS.streams[fd] = null; }, chrdev_stream_ops: { open: function open(stream) { var device = FS.getDevice(stream.node.rdev); stream.stream_ops = device.stream_ops; if (stream.stream_ops.open) { stream.stream_ops.open(stream); } }, llseek: function llseek() { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); }, }, major: function major(dev) { return dev >> 8; }, minor: function minor(dev) { return dev & 255; }, makedev: function makedev(ma, mi) { return (ma << 8) | mi; }, registerDevice: function registerDevice(dev, ops) { FS.devices[dev] = { stream_ops: ops }; }, getDevice: function getDevice(dev) { return FS.devices[dev]; }, getMounts: function getMounts(mount) { var mounts = []; var check = [mount]; while (check.length) { var m = check.pop(); mounts.push(m); check.push.apply(check, m.mounts); } return mounts; }, syncfs: function syncfs(populate, callback) { if (typeof populate === "function") { callback = populate; populate = false; } FS.syncFSRequests++; if (FS.syncFSRequests > 1) { console.log( "warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work" ); } var mounts = FS.getMounts(FS.root.mount); var completed = 0; function doCallback(err) { assert(FS.syncFSRequests > 0); FS.syncFSRequests--; return callback(err); } function done(err) { if (err) { if (!done.errored) { done.errored = true; return doCallback(err); } return; } if (++completed >= mounts.length) { doCallback(null); } } mounts.forEach(function (mount) { if (!mount.type.syncfs) { return done(null); } mount.type.syncfs(mount, populate, done); }); }, mount: function mount(type, opts, mountpoint) { var root = mountpoint === "/"; var pseudo = !mountpoint; var node; if (root && FS.root) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } else if (!root && !pseudo) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false, }); mountpoint = lookup.path; node = lookup.node; if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (!FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } } var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [], }; var mountRoot = type.mount(mount); mountRoot.mount = mount; mount.root = mountRoot; if (root) { FS.root = mountRoot; } else if (node) { node.mounted = mount; if (node.mount) { node.mount.mounts.push(mount); } } return mountRoot; }, unmount: function unmount(mountpoint) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false, }); if (!FS.isMountpoint(lookup.node)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node = lookup.node; var mount = node.mounted; var mounts = FS.getMounts(mount); Object.keys(FS.nameTable).forEach(function (hash) { var current = FS.nameTable[hash]; while (current) { var next = current.name_next; if (mounts.indexOf(current.mount) !== -1) { FS.destroyNode(current); } current = next; } }); node.mounted = null; var idx = node.mount.mounts.indexOf(mount); assert(idx !== -1); node.mount.mounts.splice(idx, 1); }, lookup: function lookup(parent, name) { return parent.node_ops.lookup(parent, name); }, mknod: function mknod(path, mode, dev) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); if (!name || name === "." || name === "..") { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var err = FS.mayCreate(parent, name); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.mknod) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return parent.node_ops.mknod(parent, name, mode, dev); }, create: function create(path, mode) { mode = mode !== undefined ? mode : 438; mode &= 4095; mode |= 32768; return FS.mknod(path, mode, 0); }, mkdir: function mkdir(path, mode) { mode = mode !== undefined ? mode : 511; mode &= 511 | 512; mode |= 16384; return FS.mknod(path, mode, 0); }, mkdirTree: function mkdirTree(path, mode) { var dirs = path.split("/"); var d = ""; for (var i = 0; i < dirs.length; ++i) { if (!dirs[i]) continue; d += "/" + dirs[i]; try { FS.mkdir(d, mode); } catch (e) { if (e.errno != ERRNO_CODES.EEXIST) throw e; } } }, mkdev: function mkdev(path, mode, dev) { if (typeof dev === "undefined") { dev = mode; mode = 438; } mode |= 8192; return FS.mknod(path, mode, dev); }, symlink: function symlink(oldpath, newpath) { if (!PATH.resolve(oldpath)) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } var lookup = FS.lookupPath(newpath, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } var newname = PATH.basename(newpath); var err = FS.mayCreate(parent, newname); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.symlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return parent.node_ops.symlink(parent, newname, oldpath); }, rename: function rename(old_path, new_path) { var old_dirname = PATH.dirname(old_path); var new_dirname = PATH.dirname(new_path); var old_name = PATH.basename(old_path); var new_name = PATH.basename(new_path); var lookup, old_dir, new_dir; try { lookup = FS.lookupPath(old_path, { parent: true }); old_dir = lookup.node; lookup = FS.lookupPath(new_path, { parent: true }); new_dir = lookup.node; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); if (old_dir.mount !== new_dir.mount) { throw new FS.ErrnoError(ERRNO_CODES.EXDEV); } var old_node = FS.lookupNode(old_dir, old_name); var relative = PATH.relative(old_path, new_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } relative = PATH.relative(new_path, old_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) {} if (old_node === new_node) { return; } var isdir = FS.isDir(old_node.mode); var err = FS.mayDelete(old_dir, old_name, isdir); if (err) { throw new FS.ErrnoError(err); } err = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); if (err) { throw new FS.ErrnoError(err); } if (!old_dir.node_ops.rename) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if ( FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node)) ) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (new_dir !== old_dir) { err = FS.nodePermissions(old_dir, "w"); if (err) { throw new FS.ErrnoError(err); } } try { if (FS.trackingDelegate["willMovePath"]) { FS.trackingDelegate["willMovePath"](old_path, new_path); } } catch (e) { console.log( "FS.trackingDelegate['willMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message ); } FS.hashRemoveNode(old_node); try { old_dir.node_ops.rename(old_node, new_dir, new_name); } catch (e) { throw e; } finally { FS.hashAddNode(old_node); } try { if (FS.trackingDelegate["onMovePath"]) FS.trackingDelegate["onMovePath"](old_path, new_path); } catch (e) { console.log( "FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message ); } }, rmdir: function rmdir(path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, true); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.rmdir) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } try { if (FS.trackingDelegate["willDeletePath"]) { FS.trackingDelegate["willDeletePath"](path); } } catch (e) { console.log( "FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message ); } parent.node_ops.rmdir(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path); } catch (e) { console.log( "FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message ); } }, readdir: function readdir(path) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; if (!node.node_ops.readdir) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } return node.node_ops.readdir(node); }, unlink: function unlink(path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, false); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.unlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } try { if (FS.trackingDelegate["willDeletePath"]) { FS.trackingDelegate["willDeletePath"](path); } } catch (e) { console.log( "FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message ); } parent.node_ops.unlink(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path); } catch (e) { console.log( "FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message ); } }, readlink: function readlink(path) { var lookup = FS.lookupPath(path); var link = lookup.node; if (!link) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!link.node_ops.readlink) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return PATH.resolve( FS.getPath(link.parent), link.node_ops.readlink(link) ); }, stat: function stat(path, dontFollow) { var lookup = FS.lookupPath(path, { follow: !dontFollow }); var node = lookup.node; if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!node.node_ops.getattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return node.node_ops.getattr(node); }, lstat: function lstat(path) { return FS.stat(path, true); }, chmod: function chmod(path, mode, dontFollow) { var node; if (typeof path === "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } node.node_ops.setattr(node, { mode: (mode & 4095) | (node.mode & ~4095), timestamp: Date.now(), }); }, lchmod: function lchmod(path, mode) { FS.chmod(path, mode, true); }, fchmod: function fchmod(fd, mode) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } FS.chmod(stream.node, mode); }, chown: function chown(path, uid, gid, dontFollow) { var node; if (typeof path === "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } node.node_ops.setattr(node, { timestamp: Date.now() }); }, lchown: function lchown(path, uid, gid) { FS.chown(path, uid, gid, true); }, fchown: function fchown(fd, uid, gid) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } FS.chown(stream.node, uid, gid); }, truncate: function truncate(path, len) { if (len < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node; if (typeof path === "string") { var lookup = FS.lookupPath(path, { follow: true }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!FS.isFile(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var err = FS.nodePermissions(node, "w"); if (err) { throw new FS.ErrnoError(err); } node.node_ops.setattr(node, { size: len, timestamp: Date.now(), }); }, ftruncate: function ftruncate(fd, len) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } FS.truncate(stream.node, len); }, utime: function utime(path, atime, mtime) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime), }); }, open: function open(path, flags, mode, fd_start, fd_end) { if (path === "") { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags; mode = typeof mode === "undefined" ? 438 : mode; if (flags & 64) { mode = (mode & 4095) | 32768; } else { mode = 0; } var node; if ( (typeof path === "undefined" ? "undefined" : _typeof(path)) === "object" ) { node = path; } else { path = PATH.normalize(path); try { var lookup = FS.lookupPath(path, { follow: !(flags & 131072), }); node = lookup.node; } catch (e) {} } var created = false; if (flags & 64) { if (node) { if (flags & 128) { throw new FS.ErrnoError(ERRNO_CODES.EEXIST); } } else { node = FS.mknod(path, mode, 0); created = true; } } if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (FS.isChrdev(node.mode)) { flags &= ~512; } if (flags & 65536 && !FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } if (!created) { var err = FS.mayOpen(node, flags); if (err) { throw new FS.ErrnoError(err); } } if (flags & 512) { FS.truncate(node, 0); } flags &= ~(128 | 512); var stream = FS.createStream( { node: node, path: FS.getPath(node), flags: flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false, }, fd_start, fd_end ); if (stream.stream_ops.open) { stream.stream_ops.open(stream); } if (Module["logReadFiles"] && !(flags & 1)) { if (!FS.readFiles) FS.readFiles = {}; if (!(path in FS.readFiles)) { FS.readFiles[path] = 1; err("read file: " + path); } } try { if (FS.trackingDelegate["onOpenFile"]) { var trackingFlags = 0; if ((flags & 2097155) !== 1) { trackingFlags |= FS.tracking.openFlags.READ; } if ((flags & 2097155) !== 0) { trackingFlags |= FS.tracking.openFlags.WRITE; } FS.trackingDelegate["onOpenFile"](path, trackingFlags); } } catch (e) { console.log( "FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message ); } return stream; }, close: function close(stream) { if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (stream.getdents) stream.getdents = null; try { if (stream.stream_ops.close) { stream.stream_ops.close(stream); } } catch (e) { throw e; } finally { FS.closeStream(stream.fd); } stream.fd = null; }, isClosed: function isClosed(stream) { return stream.fd === null; }, llseek: function llseek(stream, offset, whence) { if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (!stream.seekable || !stream.stream_ops.llseek) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } stream.position = stream.stream_ops.llseek( stream, offset, whence ); stream.ungotten = []; return stream.position; }, read: function read(stream, buffer, offset, length, position) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!stream.stream_ops.read) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var seeking = typeof position !== "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } var bytesRead = stream.stream_ops.read( stream, buffer, offset, length, position ); if (!seeking) stream.position += bytesRead; return bytesRead; }, write: function write( stream, buffer, offset, length, position, canOwn ) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!stream.stream_ops.write) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if (stream.flags & 1024) { FS.llseek(stream, 0, 2); } var seeking = typeof position !== "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } var bytesWritten = stream.stream_ops.write( stream, buffer, offset, length, position, canOwn ); if (!seeking) stream.position += bytesWritten; try { if (stream.path && FS.trackingDelegate["onWriteToFile"]) FS.trackingDelegate["onWriteToFile"](stream.path); } catch (e) { console.log( "FS.trackingDelegate['onWriteToFile']('" + path + "') threw an exception: " + e.message ); } return bytesWritten; }, allocate: function allocate(stream, offset, length) { if (FS.isClosed(stream)) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (offset < 0 || length <= 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ( !FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode) ) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } if (!stream.stream_ops.allocate) { throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); } stream.stream_ops.allocate(stream, offset, length); }, mmap: function mmap( stream, buffer, offset, length, position, prot, flags ) { if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EACCES); } if (!stream.stream_ops.mmap) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } return stream.stream_ops.mmap( stream, buffer, offset, length, position, prot, flags ); }, msync: function msync( stream, buffer, offset, length, mmapFlags ) { if (!stream || !stream.stream_ops.msync) { return 0; } return stream.stream_ops.msync( stream, buffer, offset, length, mmapFlags ); }, munmap: function munmap(stream) { return 0; }, ioctl: function ioctl(stream, cmd, arg) { if (!stream.stream_ops.ioctl) { throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); } return stream.stream_ops.ioctl(stream, cmd, arg); }, readFile: function readFile(path, opts) { opts = opts || {}; opts.flags = opts.flags || "r"; opts.encoding = opts.encoding || "binary"; if (opts.encoding !== "utf8" && opts.encoding !== "binary") { throw new Error( 'Invalid encoding type "' + opts.encoding + '"' ); } var ret; var stream = FS.open(path, opts.flags); var stat = FS.stat(path); var length = stat.size; var buf = new Uint8Array(length); FS.read(stream, buf, 0, length, 0); if (opts.encoding === "utf8") { ret = UTF8ArrayToString(buf, 0); } else if (opts.encoding === "binary") { ret = buf; } FS.close(stream); return ret; }, writeFile: function writeFile(path, data, opts) { opts = opts || {}; opts.flags = opts.flags || "w"; var stream = FS.open(path, opts.flags, opts.mode); if (typeof data === "string") { var buf = new Uint8Array(lengthBytesUTF8(data) + 1); var actualNumBytes = stringToUTF8Array( data, buf, 0, buf.length ); FS.write( stream, buf, 0, actualNumBytes, undefined, opts.canOwn ); } else if (ArrayBuffer.isView(data)) { FS.write( stream, data, 0, data.byteLength, undefined, opts.canOwn ); } else { throw new Error("Unsupported data type"); } FS.close(stream); }, cwd: function cwd() { return FS.currentPath; }, chdir: function chdir(path) { var lookup = FS.lookupPath(path, { follow: true }); if (lookup.node === null) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!FS.isDir(lookup.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } var err = FS.nodePermissions(lookup.node, "x"); if (err) { throw new FS.ErrnoError(err); } FS.currentPath = lookup.path; }, createDefaultDirectories: function createDefaultDirectories() { FS.mkdir("/tmp"); FS.mkdir("/home"); FS.mkdir("/home/web_user"); }, createDefaultDevices: function createDefaultDevices() { FS.mkdir("/dev"); FS.registerDevice(FS.makedev(1, 3), { read: function read() { return 0; }, write: function write(stream, buffer, offset, length, pos) { return length; }, }); FS.mkdev("/dev/null", FS.makedev(1, 3)); TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); FS.mkdev("/dev/tty", FS.makedev(5, 0)); FS.mkdev("/dev/tty1", FS.makedev(6, 0)); var random_device; if (typeof crypto !== "undefined") { var randomBuffer = new Uint8Array(1); random_device = function random_device() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; } else if (ENVIRONMENT_IS_NODE) { random_device = function random_device() { return require("crypto")["randomBytes"](1)[0]; }; } else { random_device = function random_device() { return (Math.random() * 256) | 0; }; } FS.createDevice("/dev", "random", random_device); FS.createDevice("/dev", "urandom", random_device); FS.mkdir("/dev/shm"); FS.mkdir("/dev/shm/tmp"); }, createSpecialDirectories: function createSpecialDirectories() { FS.mkdir("/proc"); FS.mkdir("/proc/self"); FS.mkdir("/proc/self/fd"); FS.mount( { mount: function mount() { var node = FS.createNode( "/proc/self", "fd", 16384 | 511, 73 ); node.node_ops = { lookup: function lookup(parent, name) { var fd = +name; var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: function readlink() { return stream.path; }, }, }; ret.parent = ret; return ret; }, }; return node; }, }, {}, "/proc/self/fd" ); }, createStandardStreams: function createStandardStreams() { if (Module["stdin"]) { FS.createDevice("/dev", "stdin", Module["stdin"]); } else { FS.symlink("/dev/tty", "/dev/stdin"); } if (Module["stdout"]) { FS.createDevice("/dev", "stdout", null, Module["stdout"]); } else { FS.symlink("/dev/tty", "/dev/stdout"); } if (Module["stderr"]) { FS.createDevice("/dev", "stderr", null, Module["stderr"]); } else { FS.symlink("/dev/tty1", "/dev/stderr"); } var stdin = FS.open("/dev/stdin", "r"); assert( stdin.fd === 0, "invalid handle for stdin (" + stdin.fd + ")" ); var stdout = FS.open("/dev/stdout", "w"); assert( stdout.fd === 1, "invalid handle for stdout (" + stdout.fd + ")" ); var stderr = FS.open("/dev/stderr", "w"); assert( stderr.fd === 2, "invalid handle for stderr (" + stderr.fd + ")" ); }, ensureErrnoError: function ensureErrnoError() { if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { this.node = node; this.setErrno = function (errno) { this.errno = errno; for (var key in ERRNO_CODES) { if (ERRNO_CODES[key] === errno) { this.code = key; break; } } }; this.setErrno(errno); this.message = ERRNO_MESSAGES[errno]; if (this.stack) Object.defineProperty(this, "stack", { value: new Error().stack, writable: true, }); }; FS.ErrnoError.prototype = new Error(); FS.ErrnoError.prototype.constructor = FS.ErrnoError; [ERRNO_CODES.ENOENT].forEach(function (code) { FS.genericErrors[code] = new FS.ErrnoError(code); FS.genericErrors[code].stack = ""; }); }, staticInit: function staticInit() { FS.ensureErrnoError(); FS.nameTable = new Array(4096); FS.mount(MEMFS, {}, "/"); FS.createDefaultDirectories(); FS.createDefaultDevices(); FS.createSpecialDirectories(); FS.filesystems = { MEMFS: MEMFS, IDBFS: IDBFS, NODEFS: NODEFS, WORKERFS: WORKERFS, }; }, init: function init(input, output, error) { assert( !FS.init.initialized, "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)" ); FS.init.initialized = true; FS.ensureErrnoError(); Module["stdin"] = input || Module["stdin"]; Module["stdout"] = output || Module["stdout"]; Module["stderr"] = error || Module["stderr"]; FS.createStandardStreams(); }, quit: function quit() { FS.init.initialized = false; var fflush = Module["_fflush"]; if (fflush) fflush(0); for (var i = 0; i < FS.streams.length; i++) { var stream = FS.streams[i]; if (!stream) { continue; } FS.close(stream); } }, getMode: function getMode(canRead, canWrite) { var mode = 0; if (canRead) mode |= 292 | 73; if (canWrite) mode |= 146; return mode; }, joinPath: function joinPath(parts, forceRelative) { var path = PATH.join.apply(null, parts); if (forceRelative && path[0] == "/") path = path.substr(1); return path; }, absolutePath: function absolutePath(relative, base) { return PATH.resolve(base, relative); }, standardizePath: function standardizePath(path) { return PATH.normalize(path); }, findObject: function findObject(path, dontResolveLastLink) { var ret = FS.analyzePath(path, dontResolveLastLink); if (ret.exists) { return ret.object; } else { ___setErrNo(ret.error); return null; } }, analyzePath: function analyzePath(path, dontResolveLastLink) { try { var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink, }); path = lookup.path; } catch (e) {} var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null, }; try { var lookup = FS.lookupPath(path, { parent: true }); ret.parentExists = true; ret.parentPath = lookup.path; ret.parentObject = lookup.node; ret.name = PATH.basename(path); lookup = FS.lookupPath(path, { follow: !dontResolveLastLink, }); ret.exists = true; ret.path = lookup.path; ret.object = lookup.node; ret.name = lookup.node.name; ret.isRoot = lookup.path === "/"; } catch (e) { ret.error = e.errno; } return ret; }, createFolder: function createFolder( parent, name, canRead, canWrite ) { var path = PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ); var mode = FS.getMode(canRead, canWrite); return FS.mkdir(path, mode); }, createPath: function createPath( parent, path, canRead, canWrite ) { parent = typeof parent === "string" ? parent : FS.getPath(parent); var parts = path.split("/").reverse(); while (parts.length) { var part = parts.pop(); if (!part) continue; var current = PATH.join2(parent, part); try { FS.mkdir(current); } catch (e) {} parent = current; } return current; }, createFile: function createFile( parent, name, properties, canRead, canWrite ) { var path = PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ); var mode = FS.getMode(canRead, canWrite); return FS.create(path, mode); }, createDataFile: function createDataFile( parent, name, data, canRead, canWrite, canOwn ) { var path = name ? PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ) : parent; var mode = FS.getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data === "string") { var arr = new Array(data.length); for (var i = 0, len = data.length; i < len; ++i) { arr[i] = data.charCodeAt(i); } data = arr; } FS.chmod(node, mode | 146); var stream = FS.open(node, "w"); FS.write(stream, data, 0, data.length, 0, canOwn); FS.close(stream); FS.chmod(node, mode); } return node; }, createDevice: function createDevice( parent, name, input, output ) { var path = PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ); var mode = FS.getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); FS.registerDevice(dev, { open: function open(stream) { stream.seekable = false; }, close: function close(stream) { if (output && output.buffer && output.buffer.length) { output(10); } }, read: function read(stream, buffer, offset, length, pos) { var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = input(); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: function write(stream, buffer, offset, length, pos) { for (var i = 0; i < length; i++) { try { output(buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } } if (length) { stream.node.timestamp = Date.now(); } return i; }, }); return FS.mkdev(path, mode, dev); }, createLink: function createLink( parent, name, target, canRead, canWrite ) { var path = PATH.join2( typeof parent === "string" ? parent : FS.getPath(parent), name ); return FS.symlink(target, path); }, forceLoadFile: function forceLoadFile(obj) { if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; var success = true; if (typeof XMLHttpRequest !== "undefined") { throw new Error( "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread." ); } else if (Module["read"]) { try { obj.contents = intArrayFromString( Module["read"](obj.url), true ); obj.usedBytes = obj.contents.length; } catch (e) { success = false; } } else { throw new Error( "Cannot load without read() or XMLHttpRequest." ); } if (!success) ___setErrNo(ERRNO_CODES.EIO); return success; }, createLazyFile: function createLazyFile( parent, name, url, canRead, canWrite ) { function LazyUint8Array() { this.lengthKnown = false; this.chunks = []; } LazyUint8Array.prototype.get = function LazyUint8Array_get( idx ) { if (idx > this.length - 1 || idx < 0) { return undefined; } var chunkOffset = idx % this.chunkSize; var chunkNum = (idx / this.chunkSize) | 0; return this.getter(chunkNum)[chunkOffset]; }; LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { this.getter = getter; }; LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { var xhr = new XMLHttpRequest(); xhr.open("HEAD", url, false); xhr.send(null); if ( !( (xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 ) ) throw new Error( "Couldn't load " + url + ". Status: " + xhr.status ); var datalength = Number( xhr.getResponseHeader("Content-length") ); var header; var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; var chunkSize = 1024 * 1024; if (!hasByteServing) chunkSize = datalength; var doXHR = function doXHR(from, to) { if (from > to) throw new Error( "invalid range (" + from + ", " + to + ") or no bytes requested!" ); if (to > datalength - 1) throw new Error( "only " + datalength + " bytes available! programmer error!" ); var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); if (datalength !== chunkSize) xhr.setRequestHeader( "Range", "bytes=" + from + "-" + to ); if (typeof Uint8Array != "undefined") xhr.responseType = "arraybuffer"; if (xhr.overrideMimeType) { xhr.overrideMimeType( "text/plain; charset=x-user-defined" ); } xhr.send(null); if ( !( (xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 ) ) throw new Error( "Couldn't load " + url + ". Status: " + xhr.status ); if (xhr.response !== undefined) { return new Uint8Array(xhr.response || []); } else { return intArrayFromString( xhr.responseText || "", true ); } }; var lazyArray = this; lazyArray.setDataGetter(function (chunkNum) { var start = chunkNum * chunkSize; var end = (chunkNum + 1) * chunkSize - 1; end = Math.min(end, datalength - 1); if (typeof lazyArray.chunks[chunkNum] === "undefined") { lazyArray.chunks[chunkNum] = doXHR(start, end); } if (typeof lazyArray.chunks[chunkNum] === "undefined") throw new Error("doXHR failed!"); return lazyArray.chunks[chunkNum]; }); if (usesGzip || !datalength) { chunkSize = datalength = 1; datalength = this.getter(0).length; chunkSize = datalength; console.log( "LazyFiles on gzip forces download of the whole file when length is accessed" ); } this._length = datalength; this._chunkSize = chunkSize; this.lengthKnown = true; }; if (typeof XMLHttpRequest !== "undefined") { if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; var lazyArray = new LazyUint8Array(); Object.defineProperties(lazyArray, { length: { get: function get() { if (!this.lengthKnown) { this.cacheLength(); } return this._length; }, }, chunkSize: { get: function get() { if (!this.lengthKnown) { this.cacheLength(); } return this._chunkSize; }, }, }); var properties = { isDevice: false, contents: lazyArray }; } else { var properties = { isDevice: false, url: url }; } var node = FS.createFile( parent, name, properties, canRead, canWrite ); if (properties.contents) { node.contents = properties.contents; } else if (properties.url) { node.contents = null; node.url = properties.url; } Object.defineProperties(node, { usedBytes: { get: function get() { return this.contents.length; }, }, }); var stream_ops = {}; var keys = Object.keys(node.stream_ops); keys.forEach(function (key) { var fn = node.stream_ops[key]; stream_ops[key] = function forceLoadLazyFile() { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } return fn.apply(null, arguments); }; }); stream_ops.read = function stream_ops_read( stream, buffer, offset, length, position ) { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } var contents = stream.node.contents; if (position >= contents.length) return 0; var size = Math.min(contents.length - position, length); assert(size >= 0); if (contents.slice) { for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } else { for (var i = 0; i < size; i++) { buffer[offset + i] = contents.get(position + i); } } return size; }; node.stream_ops = stream_ops; return node; }, createPreloadedFile: function createPreloadedFile( parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish ) { Browser.init(); var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; var dep = getUniqueRunDependency("cp " + fullname); function processData(byteArray) { function finish(byteArray) { if (preFinish) preFinish(); if (!dontCreateFile) { FS.createDataFile( parent, name, byteArray, canRead, canWrite, canOwn ); } if (onload) onload(); removeRunDependency(dep); } var handled = false; Module["preloadPlugins"].forEach(function (plugin) { if (handled) return; if (plugin["canHandle"](fullname)) { plugin["handle"]( byteArray, fullname, finish, function () { if (onerror) onerror(); removeRunDependency(dep); } ); handled = true; } }); if (!handled) finish(byteArray); } addRunDependency(dep); if (typeof url == "string") { Browser.asyncLoad( url, function (byteArray) { processData(byteArray); }, onerror ); } else { processData(url); } }, indexedDB: function indexedDB() { return ( window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB ); }, DB_NAME: function DB_NAME() { return "EM_FS_" + window.location.pathname; }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: function saveFilesToDB(paths, onload, onerror) { onload = onload || function () {}; onerror = onerror || function () {}; var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open( FS.DB_NAME(), FS.DB_VERSION ); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { console.log("creating db"); var db = openRequest.result; db.createObjectStore(FS.DB_STORE_NAME); }; openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; var transaction = db.transaction( [FS.DB_STORE_NAME], "readwrite" ); var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach(function (path) { var putRequest = files.put( FS.analyzePath(path).object.contents, path ); putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish(); }; putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; }, loadFilesFromDB: function loadFilesFromDB( paths, onload, onerror ) { onload = onload || function () {}; onerror = onerror || function () {}; var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open( FS.DB_NAME(), FS.DB_VERSION ); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = onerror; openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; try { var transaction = db.transaction( [FS.DB_STORE_NAME], "readonly" ); } catch (e) { onerror(e); return; } var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach(function (path) { var getRequest = files.get(path); getRequest.onsuccess = function getRequest_onsuccess() { if (FS.analyzePath(path).exists) { FS.unlink(path); } FS.createDataFile( PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true ); ok++; if (ok + fail == total) finish(); }; getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; }, }; var SYSCALLS = { DEFAULT_POLLMASK: 5, mappings: {}, umask: 511, calculateAt: function calculateAt(dirfd, path) { if (path[0] !== "/") { var dir; if (dirfd === -100) { dir = FS.cwd(); } else { var dirstream = FS.getStream(dirfd); if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); dir = dirstream.path; } path = PATH.join2(dir, path); } return path; }, doStat: function doStat(func, path, buf) { try { var stat = func(path); } catch (e) { if ( e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node)) ) { return -ERRNO_CODES.ENOTDIR; } throw e; } HEAP32[buf >> 2] = stat.dev; HEAP32[(buf + 4) >> 2] = 0; HEAP32[(buf + 8) >> 2] = stat.ino; HEAP32[(buf + 12) >> 2] = stat.mode; HEAP32[(buf + 16) >> 2] = stat.nlink; HEAP32[(buf + 20) >> 2] = stat.uid; HEAP32[(buf + 24) >> 2] = stat.gid; HEAP32[(buf + 28) >> 2] = stat.rdev; HEAP32[(buf + 32) >> 2] = 0; HEAP32[(buf + 36) >> 2] = stat.size; HEAP32[(buf + 40) >> 2] = 4096; HEAP32[(buf + 44) >> 2] = stat.blocks; HEAP32[(buf + 48) >> 2] = (stat.atime.getTime() / 1e3) | 0; HEAP32[(buf + 52) >> 2] = 0; HEAP32[(buf + 56) >> 2] = (stat.mtime.getTime() / 1e3) | 0; HEAP32[(buf + 60) >> 2] = 0; HEAP32[(buf + 64) >> 2] = (stat.ctime.getTime() / 1e3) | 0; HEAP32[(buf + 68) >> 2] = 0; HEAP32[(buf + 72) >> 2] = stat.ino; return 0; }, doMsync: function doMsync(addr, stream, len, flags) { var buffer = new Uint8Array( HEAPU8.subarray(addr, addr + len) ); FS.msync(stream, buffer, 0, len, flags); }, doMkdir: function doMkdir(path, mode) { path = PATH.normalize(path); if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1); FS.mkdir(path, mode, 0); return 0; }, doMknod: function doMknod(path, mode, dev) { switch (mode & 61440) { case 32768: case 8192: case 24576: case 4096: case 49152: break; default: return -ERRNO_CODES.EINVAL; } FS.mknod(path, mode, dev); return 0; }, doReadlink: function doReadlink(path, buf, bufsize) { if (bufsize <= 0) return -ERRNO_CODES.EINVAL; var ret = FS.readlink(path); var len = Math.min(bufsize, lengthBytesUTF8(ret)); var endChar = HEAP8[buf + len]; stringToUTF8(ret, buf, bufsize + 1); HEAP8[buf + len] = endChar; return len; }, doAccess: function doAccess(path, amode) { if (amode & ~7) { return -ERRNO_CODES.EINVAL; } var node; var lookup = FS.lookupPath(path, { follow: true }); node = lookup.node; var perms = ""; if (amode & 4) perms += "r"; if (amode & 2) perms += "w"; if (amode & 1) perms += "x"; if (perms && FS.nodePermissions(node, perms)) { return -ERRNO_CODES.EACCES; } return 0; }, doDup: function doDup(path, flags, suggestFD) { var suggest = FS.getStream(suggestFD); if (suggest) FS.close(suggest); return FS.open(path, flags, 0, suggestFD, suggestFD).fd; }, doReadv: function doReadv(stream, iov, iovcnt, offset) { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = HEAP32[(iov + i * 8) >> 2]; var len = HEAP32[(iov + (i * 8 + 4)) >> 2]; var curr = FS.read(stream, HEAP8, ptr, len, offset); if (curr < 0) return -1; ret += curr; if (curr < len) break; } return ret; }, doWritev: function doWritev(stream, iov, iovcnt, offset) { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = HEAP32[(iov + i * 8) >> 2]; var len = HEAP32[(iov + (i * 8 + 4)) >> 2]; var curr = FS.write(stream, HEAP8, ptr, len, offset); if (curr < 0) return -1; ret += curr; } return ret; }, varargs: 0, get: function get(varargs) { SYSCALLS.varargs += 4; var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2]; return ret; }, getStr: function getStr() { var ret = Pointer_stringify(SYSCALLS.get()); return ret; }, getStreamFromFD: function getStreamFromFD() { var stream = FS.getStream(SYSCALLS.get()); if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); return stream; }, getSocketFromFD: function getSocketFromFD() { var socket = SOCKFS.getSocket(SYSCALLS.get()); if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF); return socket; }, getSocketAddress: function getSocketAddress(allowNull) { var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get(); if (allowNull && addrp === 0) return null; var info = __read_sockaddr(addrp, addrlen); if (info.errno) throw new FS.ErrnoError(info.errno); info.addr = DNS.lookup_addr(info.addr) || info.addr; return info; }, get64: function get64() { var low = SYSCALLS.get(), high = SYSCALLS.get(); if (low >= 0) assert(high === 0); else assert(high === -1); return low; }, getZero: function getZero() { assert(SYSCALLS.get() === 0); }, }; function ___syscall140(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); var offset = offset_low; FS.llseek(stream, offset, whence); HEAP32[result >> 2] = stream.position; if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; return 0; } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall145(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); return SYSCALLS.doReadv(stream, iov, iovcnt); } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall146(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); return SYSCALLS.doWritev(stream, iov, iovcnt); } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall221(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); switch (cmd) { case 0: { var arg = SYSCALLS.get(); if (arg < 0) { return -ERRNO_CODES.EINVAL; } var newStream; newStream = FS.open(stream.path, stream.flags, 0, arg); return newStream.fd; } case 1: case 2: return 0; case 3: return stream.flags; case 4: { var arg = SYSCALLS.get(); stream.flags |= arg; return 0; } case 12: case 12: { var arg = SYSCALLS.get(); var offset = 0; HEAP16[(arg + offset) >> 1] = 2; return 0; } case 13: case 14: case 13: case 14: return 0; case 16: case 8: return -ERRNO_CODES.EINVAL; case 9: ___setErrNo(ERRNO_CODES.EINVAL); return -1; default: { return -ERRNO_CODES.EINVAL; } } } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall5(which, varargs) { SYSCALLS.varargs = varargs; try { var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get(); var stream = FS.open(pathname, flags, mode); return stream.fd; } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall54(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); switch (op) { case 21509: case 21505: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return 0; } case 21510: case 21511: case 21512: case 21506: case 21507: case 21508: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return 0; } case 21519: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; var argp = SYSCALLS.get(); HEAP32[argp >> 2] = 0; return 0; } case 21520: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return -ERRNO_CODES.EINVAL; } case 21531: { var argp = SYSCALLS.get(); return FS.ioctl(stream, op, argp); } case 21523: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return 0; } case 21524: { if (!stream.tty) return -ERRNO_CODES.ENOTTY; return 0; } default: abort("bad ioctl syscall " + op); } } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___syscall6(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(); FS.close(stream); return 0; } catch (e) { if ( typeof FS === "undefined" || !(e instanceof FS.ErrnoError) ) abort(e); return -e.errno; } } function ___unlock() {} function getShiftFromSize(size) { switch (size) { case 1: return 0; case 2: return 1; case 4: return 2; case 8: return 3; default: throw new TypeError("Unknown type size: " + size); } } function embind_init_charCodes() { var codes = new Array(256); for (var i = 0; i < 256; ++i) { codes[i] = String.fromCharCode(i); } embind_charCodes = codes; } var embind_charCodes = undefined; function readLatin1String(ptr) { var ret = ""; var c = ptr; while (HEAPU8[c]) { ret += embind_charCodes[HEAPU8[c++]]; } return ret; } var awaitingDependencies = {}; var registeredTypes = {}; var typeDependencies = {}; var char_0 = 48; var char_9 = 57; function makeLegalFunctionName(name) { if (undefined === name) { return "_unknown"; } name = name.replace(/[^a-zA-Z0-9_]/g, "$"); var f = name.charCodeAt(0); if (f >= char_0 && f <= char_9) { return "_" + name; } else { return name; } } function createNamedFunction(name, body) { name = makeLegalFunctionName(name); return new Function( "body", "return function " + name + "() {\n" + ' "use strict";' + " return body.apply(this, arguments);\n" + "};\n" )(body); } function extendError(baseErrorType, errorName) { var errorClass = createNamedFunction( errorName, function (message) { this.name = errorName; this.message = message; var stack = new Error(message).stack; if (stack !== undefined) { this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); } } ); errorClass.prototype = Object.create(baseErrorType.prototype); errorClass.prototype.constructor = errorClass; errorClass.prototype.toString = function () { if (this.message === undefined) { return this.name; } else { return this.name + ": " + this.message; } }; return errorClass; } var BindingError = undefined; function throwBindingError(message) { throw new BindingError(message); } var InternalError = undefined; function throwInternalError(message) { throw new InternalError(message); } function whenDependentTypesAreResolved( myTypes, dependentTypes, getTypeConverters ) { myTypes.forEach(function (type) { typeDependencies[type] = dependentTypes; }); function onComplete(typeConverters) { var myTypeConverters = getTypeConverters(typeConverters); if (myTypeConverters.length !== myTypes.length) { throwInternalError("Mismatched type converter count"); } for (var i = 0; i < myTypes.length; ++i) { registerType(myTypes[i], myTypeConverters[i]); } } var typeConverters = new Array(dependentTypes.length); var unregisteredTypes = []; var registered = 0; dependentTypes.forEach(function (dt, i) { if (registeredTypes.hasOwnProperty(dt)) { typeConverters[i] = registeredTypes[dt]; } else { unregisteredTypes.push(dt); if (!awaitingDependencies.hasOwnProperty(dt)) { awaitingDependencies[dt] = []; } awaitingDependencies[dt].push(function () { typeConverters[i] = registeredTypes[dt]; ++registered; if (registered === unregisteredTypes.length) { onComplete(typeConverters); } }); } }); if (0 === unregisteredTypes.length) { onComplete(typeConverters); } } function registerType(rawType, registeredInstance, options) { options = options || {}; if (!("argPackAdvance" in registeredInstance)) { throw new TypeError( "registerType registeredInstance requires argPackAdvance" ); } var name = registeredInstance.name; if (!rawType) { throwBindingError( 'type "' + name + '" must have a positive integer typeid pointer' ); } if (registeredTypes.hasOwnProperty(rawType)) { if (options.ignoreDuplicateRegistrations) { return; } else { throwBindingError( "Cannot register type '" + name + "' twice" ); } } registeredTypes[rawType] = registeredInstance; delete typeDependencies[rawType]; if (awaitingDependencies.hasOwnProperty(rawType)) { var callbacks = awaitingDependencies[rawType]; delete awaitingDependencies[rawType]; callbacks.forEach(function (cb) { cb(); }); } } function __embind_register_bool( rawType, name, size, trueValue, falseValue ) { var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name: name, fromWireType: function fromWireType(wt) { return !!wt; }, toWireType: function toWireType(destructors, o) { return o ? trueValue : falseValue; }, argPackAdvance: 8, readValueFromPointer: function readValueFromPointer(pointer) { var heap; if (size === 1) { heap = HEAP8; } else if (size === 2) { heap = HEAP16; } else if (size === 4) { heap = HEAP32; } else { throw new TypeError("Unknown boolean type size: " + name); } return this["fromWireType"](heap[pointer >> shift]); }, destructorFunction: null, }); } function ClassHandle_isAliasOf(other) { if (!(this instanceof ClassHandle)) { return false; } if (!(other instanceof ClassHandle)) { return false; } var leftClass = this.$$.ptrType.registeredClass; var left = this.$$.ptr; var rightClass = other.$$.ptrType.registeredClass; var right = other.$$.ptr; while (leftClass.baseClass) { left = leftClass.upcast(left); leftClass = leftClass.baseClass; } while (rightClass.baseClass) { right = rightClass.upcast(right); rightClass = rightClass.baseClass; } return leftClass === rightClass && left === right; } function shallowCopyInternalPointer(o) { return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType, }; } function throwInstanceAlreadyDeleted(obj) { function getInstanceTypeName(handle) { return handle.$$.ptrType.registeredClass.name; } throwBindingError( getInstanceTypeName(obj) + " instance already deleted" ); } function ClassHandle_clone() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.preservePointerOnDelete) { this.$$.count.value += 1; return this; } else { var clone = Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) }, }); clone.$$.count.value += 1; clone.$$.deleteScheduled = false; return clone; } } function runDestructor(handle) { var $$ = handle.$$; if ($$.smartPtr) { $$.smartPtrType.rawDestructor($$.smartPtr); } else { $$.ptrType.registeredClass.rawDestructor($$.ptr); } } function ClassHandle_delete() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if ( this.$$.deleteScheduled && !this.$$.preservePointerOnDelete ) { throwBindingError("Object already scheduled for deletion"); } this.$$.count.value -= 1; var toDelete = 0 === this.$$.count.value; if (toDelete) { runDestructor(this); } if (!this.$$.preservePointerOnDelete) { this.$$.smartPtr = undefined; this.$$.ptr = undefined; } } function ClassHandle_isDeleted() { return !this.$$.ptr; } var delayFunction = undefined; var deletionQueue = []; function flushPendingDeletes() { while (deletionQueue.length) { var obj = deletionQueue.pop(); obj.$$.deleteScheduled = false; obj["delete"](); } } function ClassHandle_deleteLater() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if ( this.$$.deleteScheduled && !this.$$.preservePointerOnDelete ) { throwBindingError("Object already scheduled for deletion"); } deletionQueue.push(this); if (deletionQueue.length === 1 && delayFunction) { delayFunction(flushPendingDeletes); } this.$$.deleteScheduled = true; return this; } function init_ClassHandle() { ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; ClassHandle.prototype["clone"] = ClassHandle_clone; ClassHandle.prototype["delete"] = ClassHandle_delete; ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; } function ClassHandle() {} var registeredPointers = {}; function ensureOverloadTable(proto, methodName, humanName) { if (undefined === proto[methodName].overloadTable) { var prevFunc = proto[methodName]; proto[methodName] = function () { if ( !proto[methodName].overloadTable.hasOwnProperty( arguments.length ) ) { throwBindingError( "Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!" ); } return proto[methodName].overloadTable[ arguments.length ].apply(this, arguments); }; proto[methodName].overloadTable = []; proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; } } function exposePublicSymbol(name, value, numArguments) { if (Module.hasOwnProperty(name)) { if ( undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments]) ) { throwBindingError( "Cannot register public name '" + name + "' twice" ); } ensureOverloadTable(Module, name, name); if (Module.hasOwnProperty(numArguments)) { throwBindingError( "Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!" ); } Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; if (undefined !== numArguments) { Module[name].numArguments = numArguments; } } } function RegisteredClass( name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast ) { this.name = name; this.constructor = constructor; this.instancePrototype = instancePrototype; this.rawDestructor = rawDestructor; this.baseClass = baseClass; this.getActualType = getActualType; this.upcast = upcast; this.downcast = downcast; this.pureVirtualFunctions = []; } function upcastPointer(ptr, ptrClass, desiredClass) { while (ptrClass !== desiredClass) { if (!ptrClass.upcast) { throwBindingError( "Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name ); } ptr = ptrClass.upcast(ptr); ptrClass = ptrClass.baseClass; } return ptr; } function constNoSmartPtrRawPointerToWireType( destructors, handle ) { if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } return 0; } if (!handle.$$) { throwBindingError( 'Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name ); } if (!handle.$$.ptr) { throwBindingError( "Cannot pass deleted object as a pointer of type " + this.name ); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer( handle.$$.ptr, handleClass, this.registeredClass ); return ptr; } function genericPointerToWireType(destructors, handle) { var ptr; if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } if (this.isSmartPointer) { ptr = this.rawConstructor(); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } return ptr; } else { return 0; } } if (!handle.$$) { throwBindingError( 'Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name ); } if (!handle.$$.ptr) { throwBindingError( "Cannot pass deleted object as a pointer of type " + this.name ); } if (!this.isConst && handle.$$.ptrType.isConst) { throwBindingError( "Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name ); } var handleClass = handle.$$.ptrType.registeredClass; ptr = upcastPointer( handle.$$.ptr, handleClass, this.registeredClass ); if (this.isSmartPointer) { if (undefined === handle.$$.smartPtr) { throwBindingError( "Passing raw pointer to smart pointer is illegal" ); } switch (this.sharingPolicy) { case 0: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { throwBindingError( "Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name ); } break; case 1: ptr = handle.$$.smartPtr; break; case 2: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { var clonedHandle = handle["clone"](); ptr = this.rawShare( ptr, __emval_register(function () { clonedHandle["delete"](); }) ); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } } break; default: throwBindingError("Unsupporting sharing policy"); } } return ptr; } function nonConstNoSmartPtrRawPointerToWireType( destructors, handle ) { if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } return 0; } if (!handle.$$) { throwBindingError( 'Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name ); } if (!handle.$$.ptr) { throwBindingError( "Cannot pass deleted object as a pointer of type " + this.name ); } if (handle.$$.ptrType.isConst) { throwBindingError( "Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name ); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer( handle.$$.ptr, handleClass, this.registeredClass ); return ptr; } function simpleReadValueFromPointer(pointer) { return this["fromWireType"](HEAPU32[pointer >> 2]); } function RegisteredPointer_getPointee(ptr) { if (this.rawGetPointee) { ptr = this.rawGetPointee(ptr); } return ptr; } function RegisteredPointer_destructor(ptr) { if (this.rawDestructor) { this.rawDestructor(ptr); } } function RegisteredPointer_deleteObject(handle) { if (handle !== null) { handle["delete"](); } } function downcastPointer(ptr, ptrClass, desiredClass) { if (ptrClass === desiredClass) { return ptr; } if (undefined === desiredClass.baseClass) { return null; } var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); if (rv === null) { return null; } return desiredClass.downcast(rv); } function getInheritedInstanceCount() { return Object.keys(registeredInstances).length; } function getLiveInheritedInstances() { var rv = []; for (var k in registeredInstances) { if (registeredInstances.hasOwnProperty(k)) { rv.push(registeredInstances[k]); } } return rv; } function setDelayFunction(fn) { delayFunction = fn; if (deletionQueue.length && delayFunction) { delayFunction(flushPendingDeletes); } } function init_embind() { Module["getInheritedInstanceCount"] = getInheritedInstanceCount; Module["getLiveInheritedInstances"] = getLiveInheritedInstances; Module["flushPendingDeletes"] = flushPendingDeletes; Module["setDelayFunction"] = setDelayFunction; } var registeredInstances = {}; function getBasestPointer(class_, ptr) { if (ptr === undefined) { throwBindingError("ptr should not be undefined"); } while (class_.baseClass) { ptr = class_.upcast(ptr); class_ = class_.baseClass; } return ptr; } function getInheritedInstance(class_, ptr) { ptr = getBasestPointer(class_, ptr); return registeredInstances[ptr]; } function makeClassHandle(prototype, record) { if (!record.ptrType || !record.ptr) { throwInternalError( "makeClassHandle requires ptr and ptrType" ); } var hasSmartPtrType = !!record.smartPtrType; var hasSmartPtr = !!record.smartPtr; if (hasSmartPtrType !== hasSmartPtr) { throwInternalError( "Both smartPtrType and smartPtr must be specified" ); } record.count = { value: 1 }; return Object.create(prototype, { $$: { value: record } }); } function RegisteredPointer_fromWireType(ptr) { var rawPointer = this.getPointee(ptr); if (!rawPointer) { this.destructor(ptr); return null; } var registeredInstance = getInheritedInstance( this.registeredClass, rawPointer ); if (undefined !== registeredInstance) { if (0 === registeredInstance.$$.count.value) { registeredInstance.$$.ptr = rawPointer; registeredInstance.$$.smartPtr = ptr; return registeredInstance["clone"](); } else { var rv = registeredInstance["clone"](); this.destructor(ptr); return rv; } } function makeDefaultHandle() { if (this.isSmartPointer) { return makeClassHandle( this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr, } ); } else { return makeClassHandle( this.registeredClass.instancePrototype, { ptrType: this, ptr: ptr } ); } } var actualType = this.registeredClass.getActualType(rawPointer); var registeredPointerRecord = registeredPointers[actualType]; if (!registeredPointerRecord) { return makeDefaultHandle.call(this); } var toType; if (this.isConst) { toType = registeredPointerRecord.constPointerType; } else { toType = registeredPointerRecord.pointerType; } var dp = downcastPointer( rawPointer, this.registeredClass, toType.registeredClass ); if (dp === null) { return makeDefaultHandle.call(this); } if (this.isSmartPointer) { return makeClassHandle( toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr, } ); } else { return makeClassHandle( toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp } ); } } function init_RegisteredPointer() { RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; RegisteredPointer.prototype["argPackAdvance"] = 8; RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; } function RegisteredPointer( name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor ) { this.name = name; this.registeredClass = registeredClass; this.isReference = isReference; this.isConst = isConst; this.isSmartPointer = isSmartPointer; this.pointeeType = pointeeType; this.sharingPolicy = sharingPolicy; this.rawGetPointee = rawGetPointee; this.rawConstructor = rawConstructor; this.rawShare = rawShare; this.rawDestructor = rawDestructor; if ( !isSmartPointer && registeredClass.baseClass === undefined ) { if (isConst) { this["toWireType"] = constNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } else { this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } } else { this["toWireType"] = genericPointerToWireType; } } function replacePublicSymbol(name, value, numArguments) { if (!Module.hasOwnProperty(name)) { throwInternalError("Replacing nonexistant public symbol"); } if ( undefined !== Module[name].overloadTable && undefined !== numArguments ) { Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; Module[name].argCount = numArguments; } } function embind__requireFunction(signature, rawFunction) { signature = readLatin1String(signature); function makeDynCaller(dynCall) { var args = []; for (var i = 1; i < signature.length; ++i) { args.push("a" + i); } var name = "dynCall_" + signature + "_" + rawFunction; var body = "return function " + name + "(" + args.join(", ") + ") {\n"; body += " return dynCall(rawFunction" + (args.length ? ", " : "") + args.join(", ") + ");\n"; body += "};\n"; return new Function("dynCall", "rawFunction", body)( dynCall, rawFunction ); } var fp; if (Module["FUNCTION_TABLE_" + signature] !== undefined) { fp = Module["FUNCTION_TABLE_" + signature][rawFunction]; } else if (typeof FUNCTION_TABLE !== "undefined") { fp = FUNCTION_TABLE[rawFunction]; } else { var dc = Module["asm"]["dynCall_" + signature]; if (dc === undefined) { dc = Module["asm"]["dynCall_" + signature.replace(/f/g, "d")]; if (dc === undefined) { throwBindingError( "No dynCall invoker for signature: " + signature ); } } fp = makeDynCaller(dc); } if (typeof fp !== "function") { throwBindingError( "unknown function pointer with signature " + signature + ": " + rawFunction ); } return fp; } var UnboundTypeError = undefined; function getTypeName(type) { var ptr = ___getTypeName(type); var rv = readLatin1String(ptr); _free(ptr); return rv; } function throwUnboundTypeError(message, types) { var unboundTypes = []; var seen = {}; function visit(type) { if (seen[type]) { return; } if (registeredTypes[type]) { return; } if (typeDependencies[type]) { typeDependencies[type].forEach(visit); return; } unboundTypes.push(type); seen[type] = true; } types.forEach(visit); throw new UnboundTypeError( message + ": " + unboundTypes.map(getTypeName).join([", "]) ); } function __embind_register_class( rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor ) { name = readLatin1String(name); getActualType = embind__requireFunction( getActualTypeSignature, getActualType ); if (upcast) { upcast = embind__requireFunction(upcastSignature, upcast); } if (downcast) { downcast = embind__requireFunction( downcastSignature, downcast ); } rawDestructor = embind__requireFunction( destructorSignature, rawDestructor ); var legalFunctionName = makeLegalFunctionName(name); exposePublicSymbol(legalFunctionName, function () { throwUnboundTypeError( "Cannot construct " + name + " due to unbound types", [baseClassRawType] ); }); whenDependentTypesAreResolved( [rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function (base) { base = base[0]; var baseClass; var basePrototype; if (baseClassRawType) { baseClass = base.registeredClass; basePrototype = baseClass.instancePrototype; } else { basePrototype = ClassHandle.prototype; } var constructor = createNamedFunction( legalFunctionName, function () { if (Object.getPrototypeOf(this) !== instancePrototype) { throw new BindingError( "Use 'new' to construct " + name ); } if (undefined === registeredClass.constructor_body) { throw new BindingError( name + " has no accessible constructor" ); } var body = registeredClass.constructor_body[arguments.length]; if (undefined === body) { throw new BindingError( "Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys( registeredClass.constructor_body ).toString() + ") parameters instead!" ); } return body.apply(this, arguments); } ); var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor }, }); constructor.prototype = instancePrototype; var registeredClass = new RegisteredClass( name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast ); var referenceConverter = new RegisteredPointer( name, registeredClass, true, false, false ); var pointerConverter = new RegisteredPointer( name + "*", registeredClass, false, false, false ); var constPointerConverter = new RegisteredPointer( name + " const*", registeredClass, false, true, false ); registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter, }; replacePublicSymbol(legalFunctionName, constructor); return [ referenceConverter, pointerConverter, constPointerConverter, ]; } ); } function heap32VectorToArray(count, firstElement) { var array = []; for (var i = 0; i < count; i++) { array.push(HEAP32[(firstElement >> 2) + i]); } return array; } function runDestructors(destructors) { while (destructors.length) { var ptr = destructors.pop(); var del = destructors.pop(); del(ptr); } } function __embind_register_class_constructor( rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor ) { var rawArgTypes = heap32VectorToArray( argCount, rawArgTypesAddr ); invoker = embind__requireFunction(invokerSignature, invoker); whenDependentTypesAreResolved( [], [rawClassType], function (classType) { classType = classType[0]; var humanName = "constructor " + classType.name; if ( undefined === classType.registeredClass.constructor_body ) { classType.registeredClass.constructor_body = []; } if ( undefined !== classType.registeredClass.constructor_body[argCount - 1] ) { throw new BindingError( "Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!" ); } classType.registeredClass.constructor_body[argCount - 1] = function unboundTypeHandler() { throwUnboundTypeError( "Cannot construct " + classType.name + " due to unbound types", rawArgTypes ); }; whenDependentTypesAreResolved( [], rawArgTypes, function (argTypes) { classType.registeredClass.constructor_body[ argCount - 1 ] = function constructor_body() { if (arguments.length !== argCount - 1) { throwBindingError( humanName + " called with " + arguments.length + " arguments, expected " + (argCount - 1) ); } var destructors = []; var args = new Array(argCount); args[0] = rawConstructor; for (var i = 1; i < argCount; ++i) { args[i] = argTypes[i]["toWireType"]( destructors, arguments[i - 1] ); } var ptr = invoker.apply(null, args); runDestructors(destructors); return argTypes[0]["fromWireType"](ptr); }; return []; } ); return []; } ); } function new_(constructor, argumentList) { if (!(constructor instanceof Function)) { throw new TypeError( "new_ called with constructor type " + (typeof constructor === "undefined" ? "undefined" : _typeof(constructor)) + " which is not a function" ); } var dummy = createNamedFunction( constructor.name || "unknownFunctionName", function () {} ); dummy.prototype = constructor.prototype; var obj = new dummy(); var r = constructor.apply(obj, argumentList); return r instanceof Object ? r : obj; } function craftInvokerFunction( humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc ) { var argCount = argTypes.length; if (argCount < 2) { throwBindingError( "argTypes array size mismatch! Must at least get return value and 'this' types!" ); } var isClassMethodFunc = argTypes[1] !== null && classType !== null; var needsDestructorStack = false; for (var i = 1; i < argTypes.length; ++i) { if ( argTypes[i] !== null && argTypes[i].destructorFunction === undefined ) { needsDestructorStack = true; break; } } var returns = argTypes[0].name !== "void"; var argsList = ""; var argsListWired = ""; for (var i = 0; i < argCount - 2; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; } var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\n" + "if (arguments.length !== " + (argCount - 2) + ") {\n" + "throwBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n" + "}\n"; if (needsDestructorStack) { invokerFnBody += "var destructors = [];\n"; } var dtorStack = needsDestructorStack ? "destructors" : "null"; var args1 = [ "throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam", ]; var args2 = [ throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1], ]; if (isClassMethodFunc) { invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; } for (var i = 0; i < argCount - 2; ++i) { invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; args1.push("argType" + i); args2.push(argTypes[i + 2]); } if (isClassMethodFunc) { argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; } invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; if (needsDestructorStack) { invokerFnBody += "runDestructors(destructors);\n"; } else { for ( var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i ) { var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; if (argTypes[i].destructorFunction !== null) { invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; args1.push(paramName + "_dtor"); args2.push(argTypes[i].destructorFunction); } } } if (returns) { invokerFnBody += "var ret = retType.fromWireType(rv);\n" + "return ret;\n"; } else { } invokerFnBody += "}\n"; args1.push(invokerFnBody); var invokerFunction = new_(Function, args1).apply(null, args2); return invokerFunction; } function __embind_register_class_function( rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual ) { var rawArgTypes = heap32VectorToArray( argCount, rawArgTypesAddr ); methodName = readLatin1String(methodName); rawInvoker = embind__requireFunction( invokerSignature, rawInvoker ); whenDependentTypesAreResolved( [], [rawClassType], function (classType) { classType = classType[0]; var humanName = classType.name + "." + methodName; if (isPureVirtual) { classType.registeredClass.pureVirtualFunctions.push( methodName ); } function unboundTypesHandler() { throwUnboundTypeError( "Cannot call " + humanName + " due to unbound types", rawArgTypes ); } var proto = classType.registeredClass.instancePrototype; var method = proto[methodName]; if ( undefined === method || (undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2) ) { unboundTypesHandler.argCount = argCount - 2; unboundTypesHandler.className = classType.name; proto[methodName] = unboundTypesHandler; } else { ensureOverloadTable(proto, methodName, humanName); proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; } whenDependentTypesAreResolved( [], rawArgTypes, function (argTypes) { var memberFunction = craftInvokerFunction( humanName, argTypes, classType, rawInvoker, context ); if (undefined === proto[methodName].overloadTable) { memberFunction.argCount = argCount - 2; proto[methodName] = memberFunction; } else { proto[methodName].overloadTable[argCount - 2] = memberFunction; } return []; } ); return []; } ); } var emval_free_list = []; var emval_handle_array = [ {}, { value: undefined }, { value: null }, { value: true }, { value: false }, ]; function __emval_decref(handle) { if (handle > 4 && 0 === --emval_handle_array[handle].refcount) { emval_handle_array[handle] = undefined; emval_free_list.push(handle); } } function count_emval_handles() { var count = 0; for (var i = 5; i < emval_handle_array.length; ++i) { if (emval_handle_array[i] !== undefined) { ++count; } } return count; } function get_first_emval() { for (var i = 5; i < emval_handle_array.length; ++i) { if (emval_handle_array[i] !== undefined) { return emval_handle_array[i]; } } return null; } function init_emval() { Module["count_emval_handles"] = count_emval_handles; Module["get_first_emval"] = get_first_emval; } function __emval_register(value) { switch (value) { case undefined: { return 1; } case null: { return 2; } case true: { return 3; } case false: { return 4; } default: { var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length; emval_handle_array[handle] = { refcount: 1, value: value }; return handle; } } } function __embind_register_emval(rawType, name) { name = readLatin1String(name); registerType(rawType, { name: name, fromWireType: function fromWireType(handle) { var rv = emval_handle_array[handle].value; __emval_decref(handle); return rv; }, toWireType: function toWireType(destructors, value) { return __emval_register(value); }, argPackAdvance: 8, readValueFromPointer: simpleReadValueFromPointer, destructorFunction: null, }); } function _embind_repr(v) { if (v === null) { return "null"; } var t = typeof v === "undefined" ? "undefined" : _typeof(v); if (t === "object" || t === "array" || t === "function") { return v.toString(); } else { return "" + v; } } function floatReadValueFromPointer(name, shift) { switch (shift) { case 2: return function (pointer) { return this["fromWireType"](HEAPF32[pointer >> 2]); }; case 3: return function (pointer) { return this["fromWireType"](HEAPF64[pointer >> 3]); }; default: throw new TypeError("Unknown float type: " + name); } } function __embind_register_float(rawType, name, size) { var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name: name, fromWireType: function fromWireType(value) { return value; }, toWireType: function toWireType(destructors, value) { if ( typeof value !== "number" && typeof value !== "boolean" ) { throw new TypeError( 'Cannot convert "' + _embind_repr(value) + '" to ' + this.name ); } return value; }, argPackAdvance: 8, readValueFromPointer: floatReadValueFromPointer(name, shift), destructorFunction: null, }); } function __embind_register_function( name, argCount, rawArgTypesAddr, signature, rawInvoker, fn ) { var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); name = readLatin1String(name); rawInvoker = embind__requireFunction(signature, rawInvoker); exposePublicSymbol( name, function () { throwUnboundTypeError( "Cannot call " + name + " due to unbound types", argTypes ); }, argCount - 1 ); whenDependentTypesAreResolved( [], argTypes, function (argTypes) { var invokerArgsArray = [argTypes[0], null].concat( argTypes.slice(1) ); replacePublicSymbol( name, craftInvokerFunction( name, invokerArgsArray, null, rawInvoker, fn ), argCount - 1 ); return []; } ); } function integerReadValueFromPointer(name, shift, signed) { switch (shift) { case 0: return signed ? function readS8FromPointer(pointer) { return HEAP8[pointer]; } : function readU8FromPointer(pointer) { return HEAPU8[pointer]; }; case 1: return signed ? function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } : function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; }; case 2: return signed ? function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } : function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; }; default: throw new TypeError("Unknown integer type: " + name); } } function __embind_register_integer( primitiveType, name, size, minRange, maxRange ) { name = readLatin1String(name); if (maxRange === -1) { maxRange = 4294967295; } var shift = getShiftFromSize(size); var fromWireType = function fromWireType(value) { return value; }; if (minRange === 0) { var bitshift = 32 - 8 * size; fromWireType = function fromWireType(value) { return (value << bitshift) >>> bitshift; }; } var isUnsignedType = name.indexOf("unsigned") != -1; registerType(primitiveType, { name: name, fromWireType: fromWireType, toWireType: function toWireType(destructors, value) { if ( typeof value !== "number" && typeof value !== "boolean" ) { throw new TypeError( 'Cannot convert "' + _embind_repr(value) + '" to ' + this.name ); } if (value < minRange || value > maxRange) { throw new TypeError( 'Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ", " + maxRange + "]!" ); } return isUnsignedType ? value >>> 0 : value | 0; }, argPackAdvance: 8, readValueFromPointer: integerReadValueFromPointer( name, shift, minRange !== 0 ), destructorFunction: null, }); } function __embind_register_memory_view( rawType, dataTypeIndex, name ) { var typeMapping = [ Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, ]; var TA = typeMapping[dataTypeIndex]; function decodeMemoryView(handle) { handle = handle >> 2; var heap = HEAPU32; var size = heap[handle]; var data = heap[handle + 1]; return new TA(heap["buffer"], data, size); } name = readLatin1String(name); registerType( rawType, { name: name, fromWireType: decodeMemoryView, argPackAdvance: 8, readValueFromPointer: decodeMemoryView, }, { ignoreDuplicateRegistrations: true } ); } function __embind_register_std_string(rawType, name) { name = readLatin1String(name); var stdStringIsUTF8 = name === "std::string"; registerType(rawType, { name: name, fromWireType: function fromWireType(value) { var length = HEAPU32[value >> 2]; var str; if (stdStringIsUTF8) { var endChar = HEAPU8[value + 4 + length]; var endCharSwap = 0; if (endChar != 0) { endCharSwap = endChar; HEAPU8[value + 4 + length] = 0; } var decodeStartPtr = value + 4; for (var i = 0; i <= length; ++i) { var currentBytePtr = value + 4 + i; if (HEAPU8[currentBytePtr] == 0) { var stringSegment = UTF8ToString(decodeStartPtr); if (str === undefined) str = stringSegment; else { str += String.fromCharCode(0); str += stringSegment; } decodeStartPtr = currentBytePtr + 1; } } if (endCharSwap != 0) HEAPU8[value + 4 + length] = endCharSwap; } else { var a = new Array(length); for (var i = 0; i < length; ++i) { a[i] = String.fromCharCode(HEAPU8[value + 4 + i]); } str = a.join(""); } _free(value); return str; }, toWireType: function toWireType(destructors, value) { if (value instanceof ArrayBuffer) { value = new Uint8Array(value); } var getLength; var valueIsOfTypeString = typeof value === "string"; if ( !( valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array ) ) { throwBindingError( "Cannot pass non-string to std::string" ); } if (stdStringIsUTF8 && valueIsOfTypeString) { getLength = function getLength() { return lengthBytesUTF8(value); }; } else { getLength = function getLength() { return value.length; }; } var length = getLength(); var ptr = _malloc(4 + length + 1); HEAPU32[ptr >> 2] = length; if (stdStringIsUTF8 && valueIsOfTypeString) { stringToUTF8(value, ptr + 4, length + 1); } else { if (valueIsOfTypeString) { for (var i = 0; i < length; ++i) { var charCode = value.charCodeAt(i); if (charCode > 255) { _free(ptr); throwBindingError( "String has UTF-16 code units that do not fit in 8 bits" ); } HEAPU8[ptr + 4 + i] = charCode; } } else { for (var i = 0; i < length; ++i) { HEAPU8[ptr + 4 + i] = value[i]; } } } if (destructors !== null) { destructors.push(_free, ptr); } return ptr; }, argPackAdvance: 8, readValueFromPointer: simpleReadValueFromPointer, destructorFunction: function destructorFunction(ptr) { _free(ptr); }, }); } function __embind_register_std_wstring(rawType, charSize, name) { name = readLatin1String(name); var getHeap, shift; if (charSize === 2) { getHeap = function getHeap() { return HEAPU16; }; shift = 1; } else if (charSize === 4) { getHeap = function getHeap() { return HEAPU32; }; shift = 2; } registerType(rawType, { name: name, fromWireType: function fromWireType(value) { var HEAP = getHeap(); var length = HEAPU32[value >> 2]; var a = new Array(length); var start = (value + 4) >> shift; for (var i = 0; i < length; ++i) { a[i] = String.fromCharCode(HEAP[start + i]); } _free(value); return a.join(""); }, toWireType: function toWireType(destructors, value) { var HEAP = getHeap(); var length = value.length; var ptr = _malloc(4 + length * charSize); HEAPU32[ptr >> 2] = length; var start = (ptr + 4) >> shift; for (var i = 0; i < length; ++i) { HEAP[start + i] = value.charCodeAt(i); } if (destructors !== null) { destructors.push(_free, ptr); } return ptr; }, argPackAdvance: 8, readValueFromPointer: simpleReadValueFromPointer, destructorFunction: function destructorFunction(ptr) { _free(ptr); }, }); } function __embind_register_void(rawType, name) { name = readLatin1String(name); registerType(rawType, { isVoid: true, name: name, argPackAdvance: 0, fromWireType: function fromWireType() { return undefined; }, toWireType: function toWireType(destructors, o) { return undefined; }, }); } function requireHandle(handle) { if (!handle) { throwBindingError( "Cannot use deleted val. handle = " + handle ); } return emval_handle_array[handle].value; } function requireRegisteredType(rawType, humanName) { var impl = registeredTypes[rawType]; if (undefined === impl) { throwBindingError( humanName + " has unknown type " + getTypeName(rawType) ); } return impl; } function __emval_as(handle, returnType, destructorsRef) { handle = requireHandle(handle); returnType = requireRegisteredType(returnType, "emval::as"); var destructors = []; var rd = __emval_register(destructors); HEAP32[destructorsRef >> 2] = rd; return returnType["toWireType"](destructors, handle); } function __emval_lookupTypes(argCount, argTypes, argWireTypes) { var a = new Array(argCount); for (var i = 0; i < argCount; ++i) { a[i] = requireRegisteredType( HEAP32[(argTypes >> 2) + i], "parameter " + i ); } return a; } function __emval_call(handle, argCount, argTypes, argv) { handle = requireHandle(handle); var types = __emval_lookupTypes(argCount, argTypes); var args = new Array(argCount); for (var i = 0; i < argCount; ++i) { var type = types[i]; args[i] = type["readValueFromPointer"](argv); argv += type["argPackAdvance"]; } var rv = handle.apply(undefined, args); return __emval_register(rv); } function __emval_allocateDestructors(destructorsRef) { var destructors = []; HEAP32[destructorsRef >> 2] = __emval_register(destructors); return destructors; } var emval_symbols = {}; function getStringOrSymbol(address) { var symbol = emval_symbols[address]; if (symbol === undefined) { return readLatin1String(address); } else { return symbol; } } var emval_methodCallers = []; function __emval_call_void_method( caller, handle, methodName, args ) { caller = emval_methodCallers[caller]; handle = requireHandle(handle); methodName = getStringOrSymbol(methodName); caller(handle, methodName, null, args); } function __emval_addMethodCaller(caller) { var id = emval_methodCallers.length; emval_methodCallers.push(caller); return id; } function __emval_get_method_caller(argCount, argTypes) { var types = __emval_lookupTypes(argCount, argTypes); var retType = types[0]; var signatureName = retType.name + "_$" + types .slice(1) .map(function (t) { return t.name; }) .join("_") + "$"; var params = ["retType"]; var args = [retType]; var argsList = ""; for (var i = 0; i < argCount - 1; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; params.push("argType" + i); args.push(types[1 + i]); } var functionName = makeLegalFunctionName( "methodCaller_" + signatureName ); var functionBody = "return function " + functionName + "(handle, name, destructors, args) {\n"; var offset = 0; for (var i = 0; i < argCount - 1; ++i) { functionBody += " var arg" + i + " = argType" + i + ".readValueFromPointer(args" + (offset ? "+" + offset : "") + ");\n"; offset += types[i + 1]["argPackAdvance"]; } functionBody += " var rv = handle[name](" + argsList + ");\n"; for (var i = 0; i < argCount - 1; ++i) { if (types[i + 1]["deleteObject"]) { functionBody += " argType" + i + ".deleteObject(arg" + i + ");\n"; } } if (!retType.isVoid) { functionBody += " return retType.toWireType(destructors, rv);\n"; } functionBody += "};\n"; params.push(functionBody); var invokerFunction = new_(Function, params).apply(null, args); return __emval_addMethodCaller(invokerFunction); } function __emval_get_module_property(name) { name = getStringOrSymbol(name); return __emval_register(Module[name]); } function __emval_get_property(handle, key) { handle = requireHandle(handle); key = requireHandle(key); return __emval_register(handle[key]); } function __emval_incref(handle) { if (handle > 4) { emval_handle_array[handle].refcount += 1; } } function craftEmvalAllocator(argCount) { var argsList = ""; for (var i = 0; i < argCount; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; } var functionBody = "return function emval_allocator_" + argCount + "(constructor, argTypes, args) {\n"; for (var i = 0; i < argCount; ++i) { functionBody += "var argType" + i + " = requireRegisteredType(HEAP32[(argTypes >> 2) + " + i + '], "parameter ' + i + '");\n' + "var arg" + i + " = argType" + i + ".readValueFromPointer(args);\n" + "args += argType" + i + "['argPackAdvance'];\n"; } functionBody += "var obj = new constructor(" + argsList + ");\n" + "return __emval_register(obj);\n" + "}\n"; return new Function( "requireRegisteredType", "HEAP32", "__emval_register", functionBody )(requireRegisteredType, HEAP32, __emval_register); } var emval_newers = {}; function __emval_new(handle, argCount, argTypes, args) { handle = requireHandle(handle); var newer = emval_newers[argCount]; if (!newer) { newer = craftEmvalAllocator(argCount); emval_newers[argCount] = newer; } return newer(handle, argTypes, args); } function __emval_new_cstring(v) { return __emval_register(getStringOrSymbol(v)); } function __emval_run_destructors(handle) { var destructors = emval_handle_array[handle].value; runDestructors(destructors); __emval_decref(handle); } function __emval_take_value(type, argv) { type = requireRegisteredType(type, "_emval_take_value"); var v = type["readValueFromPointer"](argv); return __emval_register(v); } function _abort() { Module["abort"](); } function _llvm_cttz_i64(l, h) { var ret = _llvm_cttz_i32(l); if (ret == 32) ret += _llvm_cttz_i32(h); return (setTempRet0(0), ret) | 0; } function _emscripten_memcpy_big(dest, src, num) { HEAPU8.set(HEAPU8.subarray(src, src + num), dest); return dest; } var PTHREAD_SPECIFIC = {}; function _pthread_getspecific(key) { return PTHREAD_SPECIFIC[key] || 0; } var PTHREAD_SPECIFIC_NEXT_KEY = 1; function _pthread_key_create(key, destructor) { if (key == 0) { return ERRNO_CODES.EINVAL; } HEAP32[key >> 2] = PTHREAD_SPECIFIC_NEXT_KEY; PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; PTHREAD_SPECIFIC_NEXT_KEY++; return 0; } function _pthread_once(ptr, func) { if (!_pthread_once.seen) _pthread_once.seen = {}; if (ptr in _pthread_once.seen) return; Module["dynCall_v"](func); _pthread_once.seen[ptr] = 1; } function _pthread_setspecific(key, value) { if (!(key in PTHREAD_SPECIFIC)) { return ERRNO_CODES.EINVAL; } PTHREAD_SPECIFIC[key] = value; return 0; } FS.staticInit(); __ATINIT__.unshift(function () { if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); }); __ATMAIN__.push(function () { FS.ignorePermissions = false; }); __ATEXIT__.push(function () { FS.quit(); }); __ATINIT__.unshift(function () { TTY.init(); }); __ATEXIT__.push(function () { TTY.shutdown(); }); if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); } embind_init_charCodes(); BindingError = Module["BindingError"] = extendError( Error, "BindingError" ); InternalError = Module["InternalError"] = extendError( Error, "InternalError" ); init_ClassHandle(); init_RegisteredPointer(); init_embind(); UnboundTypeError = Module["UnboundTypeError"] = extendError( Error, "UnboundTypeError" ); init_emval(); DYNAMICTOP_PTR = staticAlloc(4); STACK_BASE = STACKTOP = alignMemory(STATICTOP); STACK_MAX = STACK_BASE + TOTAL_STACK; DYNAMIC_BASE = alignMemory(STACK_MAX); HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE; staticSealed = true; var ASSERTIONS = false; function intArrayFromString(stringy, dontAddNull, length) { var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; var u8array = new Array(len); var numBytesWritten = stringToUTF8Array( stringy, u8array, 0, u8array.length ); if (dontAddNull) u8array.length = numBytesWritten; return u8array; } function intArrayToString(array) { var ret = []; for (var i = 0; i < array.length; i++) { var chr = array[i]; if (chr > 255) { if (ASSERTIONS) { assert( false, "Character code " + chr + " (" + String.fromCharCode(chr) + ") at offset " + i + " not in 0x00-0xFF." ); } chr &= 255; } ret.push(String.fromCharCode(chr)); } return ret.join(""); } var decodeBase64 = typeof atob === "function" ? atob : function (input) { var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); do { enc1 = keyStr.indexOf(input.charAt(i++)); enc2 = keyStr.indexOf(input.charAt(i++)); enc3 = keyStr.indexOf(input.charAt(i++)); enc4 = keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 !== 64) { output = output + String.fromCharCode(chr2); } if (enc4 !== 64) { output = output + String.fromCharCode(chr3); } } while (i < input.length); return output; }; function intArrayFromBase64(s) { if ( typeof ENVIRONMENT_IS_NODE === "boolean" && ENVIRONMENT_IS_NODE ) { var buf; try { buf = Buffer.from(s, "base64"); } catch (_) { buf = new Buffer(s, "base64"); } return new Uint8Array( buf.buffer, buf.byteOffset, buf.byteLength ); } try { var decoded = decodeBase64(s); var bytes = new Uint8Array(decoded.length); for (var i = 0; i < decoded.length; ++i) { bytes[i] = decoded.charCodeAt(i); } return bytes; } catch (_) { throw new Error("Converting base64 string to bytes failed."); } } function tryParseAsDataURI(filename) { if (!isDataURI(filename)) { return; } return intArrayFromBase64(filename.slice(dataURIPrefix.length)); } function invoke_i(index) { var sp = _stackSave(); try { return Module["dynCall_i"](index); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_ii(index, a1) { var sp = _stackSave(); try { return Module["dynCall_ii"](index, a1); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iii(index, a1, a2) { var sp = _stackSave(); try { return Module["dynCall_iii"](index, a1, a2); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iiii(index, a1, a2, a3) { var sp = _stackSave(); try { return Module["dynCall_iiii"](index, a1, a2, a3); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iiiii(index, a1, a2, a3, a4) { var sp = _stackSave(); try { return Module["dynCall_iiiii"](index, a1, a2, a3, a4); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iiiiii(index, a1, a2, a3, a4, a5) { var sp = _stackSave(); try { return Module["dynCall_iiiiii"](index, a1, a2, a3, a4, a5); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) { var sp = _stackSave(); try { return Module["dynCall_iiiiiii"]( index, a1, a2, a3, a4, a5, a6 ); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_v(index) { var sp = _stackSave(); try { Module["dynCall_v"](index); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_vi(index, a1) { var sp = _stackSave(); try { Module["dynCall_vi"](index, a1); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_vii(index, a1, a2) { var sp = _stackSave(); try { Module["dynCall_vii"](index, a1, a2); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_viii(index, a1, a2, a3) { var sp = _stackSave(); try { Module["dynCall_viii"](index, a1, a2, a3); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_viiii(index, a1, a2, a3, a4) { var sp = _stackSave(); try { Module["dynCall_viiii"](index, a1, a2, a3, a4); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_viiiii(index, a1, a2, a3, a4, a5) { var sp = _stackSave(); try { Module["dynCall_viiiii"](index, a1, a2, a3, a4, a5); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) { var sp = _stackSave(); try { Module["dynCall_viiiiii"](index, a1, a2, a3, a4, a5, a6); } catch (e) { _stackRestore(sp); if (typeof e !== "number" && e !== "longjmp") throw e; Module["setThrew"](1, 0); } } Module.asmGlobalArg = { Math: Math, Int8Array: Int8Array, Int16Array: Int16Array, Int32Array: Int32Array, Uint8Array: Uint8Array, Uint16Array: Uint16Array, Uint32Array: Uint32Array, Float32Array: Float32Array, Float64Array: Float64Array, NaN: NaN, Infinity: Infinity, }; Module.asmLibraryArg = { abort: abort, assert: assert, enlargeMemory: enlargeMemory, getTotalMemory: getTotalMemory, abortOnCannotGrowMemory: abortOnCannotGrowMemory, invoke_i: invoke_i, invoke_ii: invoke_ii, invoke_iii: invoke_iii, invoke_iiii: invoke_iiii, invoke_iiiii: invoke_iiiii, invoke_iiiiii: invoke_iiiiii, invoke_iiiiiii: invoke_iiiiiii, invoke_v: invoke_v, invoke_vi: invoke_vi, invoke_vii: invoke_vii, invoke_viii: invoke_viii, invoke_viiii: invoke_viiii, invoke_viiiii: invoke_viiiii, invoke_viiiiii: invoke_viiiiii, ClassHandle: ClassHandle, ClassHandle_clone: ClassHandle_clone, ClassHandle_delete: ClassHandle_delete, ClassHandle_deleteLater: ClassHandle_deleteLater, ClassHandle_isAliasOf: ClassHandle_isAliasOf, ClassHandle_isDeleted: ClassHandle_isDeleted, RegisteredClass: RegisteredClass, RegisteredPointer: RegisteredPointer, RegisteredPointer_deleteObject: RegisteredPointer_deleteObject, RegisteredPointer_destructor: RegisteredPointer_destructor, RegisteredPointer_fromWireType: RegisteredPointer_fromWireType, RegisteredPointer_getPointee: RegisteredPointer_getPointee, __ZSt18uncaught_exceptionv: __ZSt18uncaught_exceptionv, ___cxa_allocate_exception: ___cxa_allocate_exception, ___cxa_begin_catch: ___cxa_begin_catch, ___cxa_find_matching_catch: ___cxa_find_matching_catch, ___cxa_throw: ___cxa_throw, ___gxx_personality_v0: ___gxx_personality_v0, ___lock: ___lock, ___resumeException: ___resumeException, ___setErrNo: ___setErrNo, ___syscall140: ___syscall140, ___syscall145: ___syscall145, ___syscall146: ___syscall146, ___syscall221: ___syscall221, ___syscall5: ___syscall5, ___syscall54: ___syscall54, ___syscall6: ___syscall6, ___unlock: ___unlock, __embind_register_bool: __embind_register_bool, __embind_register_class: __embind_register_class, __embind_register_class_constructor: __embind_register_class_constructor, __embind_register_class_function: __embind_register_class_function, __embind_register_emval: __embind_register_emval, __embind_register_float: __embind_register_float, __embind_register_function: __embind_register_function, __embind_register_integer: __embind_register_integer, __embind_register_memory_view: __embind_register_memory_view, __embind_register_std_string: __embind_register_std_string, __embind_register_std_wstring: __embind_register_std_wstring, __embind_register_void: __embind_register_void, __emval_addMethodCaller: __emval_addMethodCaller, __emval_allocateDestructors: __emval_allocateDestructors, __emval_as: __emval_as, __emval_call: __emval_call, __emval_call_void_method: __emval_call_void_method, __emval_decref: __emval_decref, __emval_get_method_caller: __emval_get_method_caller, __emval_get_module_property: __emval_get_module_property, __emval_get_property: __emval_get_property, __emval_incref: __emval_incref, __emval_lookupTypes: __emval_lookupTypes, __emval_new: __emval_new, __emval_new_cstring: __emval_new_cstring, __emval_register: __emval_register, __emval_run_destructors: __emval_run_destructors, __emval_take_value: __emval_take_value, _abort: _abort, _embind_repr: _embind_repr, _emscripten_memcpy_big: _emscripten_memcpy_big, _llvm_cttz_i64: _llvm_cttz_i64, _pthread_getspecific: _pthread_getspecific, _pthread_key_create: _pthread_key_create, _pthread_once: _pthread_once, _pthread_setspecific: _pthread_setspecific, constNoSmartPtrRawPointerToWireType: constNoSmartPtrRawPointerToWireType, count_emval_handles: count_emval_handles, craftEmvalAllocator: craftEmvalAllocator, craftInvokerFunction: craftInvokerFunction, createNamedFunction: createNamedFunction, downcastPointer: downcastPointer, embind__requireFunction: embind__requireFunction, embind_init_charCodes: embind_init_charCodes, ensureOverloadTable: ensureOverloadTable, exposePublicSymbol: exposePublicSymbol, extendError: extendError, floatReadValueFromPointer: floatReadValueFromPointer, flushPendingDeletes: flushPendingDeletes, genericPointerToWireType: genericPointerToWireType, getBasestPointer: getBasestPointer, getInheritedInstance: getInheritedInstance, getInheritedInstanceCount: getInheritedInstanceCount, getLiveInheritedInstances: getLiveInheritedInstances, getShiftFromSize: getShiftFromSize, getStringOrSymbol: getStringOrSymbol, getTypeName: getTypeName, get_first_emval: get_first_emval, heap32VectorToArray: heap32VectorToArray, init_ClassHandle: init_ClassHandle, init_RegisteredPointer: init_RegisteredPointer, init_embind: init_embind, init_emval: init_emval, integerReadValueFromPointer: integerReadValueFromPointer, makeClassHandle: makeClassHandle, makeLegalFunctionName: makeLegalFunctionName, new_: new_, nonConstNoSmartPtrRawPointerToWireType: nonConstNoSmartPtrRawPointerToWireType, readLatin1String: readLatin1String, registerType: registerType, replacePublicSymbol: replacePublicSymbol, requireHandle: requireHandle, requireRegisteredType: requireRegisteredType, runDestructor: runDestructor, runDestructors: runDestructors, setDelayFunction: setDelayFunction, shallowCopyInternalPointer: shallowCopyInternalPointer, simpleReadValueFromPointer: simpleReadValueFromPointer, throwBindingError: throwBindingError, throwInstanceAlreadyDeleted: throwInstanceAlreadyDeleted, throwInternalError: throwInternalError, throwUnboundTypeError: throwUnboundTypeError, upcastPointer: upcastPointer, whenDependentTypesAreResolved: whenDependentTypesAreResolved, DYNAMICTOP_PTR: DYNAMICTOP_PTR, tempDoublePtr: tempDoublePtr, ABORT: ABORT, STACKTOP: STACKTOP, STACK_MAX: STACK_MAX, }; // EMSCRIPTEN_START_ASM var asm = /** @suppress {uselessCode} */ (function ( global, env, buffer ) { "use asm"; var a = new global.Int8Array(buffer); var b = new global.Int16Array(buffer); var c = new global.Int32Array(buffer); var d = new global.Uint8Array(buffer); var e = new global.Uint16Array(buffer); var f = new global.Uint32Array(buffer); var g = new global.Float32Array(buffer); var h = new global.Float64Array(buffer); var i = env.DYNAMICTOP_PTR | 0; var j = env.tempDoublePtr | 0; var k = env.ABORT | 0; var l = env.STACKTOP | 0; var m = env.STACK_MAX | 0; var n = 0; var o = 0; var p = 0; var q = 0; var r = global.NaN, s = global.Infinity; var t = 0, u = 0, v = 0, w = 0, x = 0.0; var y = 0; var z = global.Math.floor; var A = global.Math.abs; var B = global.Math.sqrt; var C = global.Math.pow; var D = global.Math.cos; var E = global.Math.sin; var F = global.Math.tan; var G = global.Math.acos; var H = global.Math.asin; var I = global.Math.atan; var J = global.Math.atan2; var K = global.Math.exp; var L = global.Math.log; var M = global.Math.ceil; var N = global.Math.imul; var O = global.Math.min; var P = global.Math.max; var Q = global.Math.clz32; var R = env.abort; var S = env.assert; var T = env.enlargeMemory; var U = env.getTotalMemory; var V = env.abortOnCannotGrowMemory; var W = env.invoke_i; var X = env.invoke_ii; var Y = env.invoke_iii; var Z = env.invoke_iiii; var _ = env.invoke_iiiii; var $ = env.invoke_iiiiii; var aa = env.invoke_iiiiiii; var ba = env.invoke_v; var ca = env.invoke_vi; var da = env.invoke_vii; var ea = env.invoke_viii; var fa = env.invoke_viiii; var ga = env.invoke_viiiii; var ha = env.invoke_viiiiii; var ia = env.ClassHandle; var ja = env.ClassHandle_clone; var ka = env.ClassHandle_delete; var la = env.ClassHandle_deleteLater; var ma = env.ClassHandle_isAliasOf; var na = env.ClassHandle_isDeleted; var oa = env.RegisteredClass; var pa = env.RegisteredPointer; var qa = env.RegisteredPointer_deleteObject; var ra = env.RegisteredPointer_destructor; var sa = env.RegisteredPointer_fromWireType; var ta = env.RegisteredPointer_getPointee; var ua = env.__ZSt18uncaught_exceptionv; var va = env.___cxa_allocate_exception; var wa = env.___cxa_begin_catch; var xa = env.___cxa_find_matching_catch; var ya = env.___cxa_throw; var za = env.___gxx_personality_v0; var Aa = env.___lock; var Ba = env.___resumeException; var Ca = env.___setErrNo; var Da = env.___syscall140; var Ea = env.___syscall145; var Fa = env.___syscall146; var Ga = env.___syscall221; var Ha = env.___syscall5; var Ia = env.___syscall54; var Ja = env.___syscall6; var Ka = env.___unlock; var La = env.__embind_register_bool; var Ma = env.__embind_register_class; var Na = env.__embind_register_class_constructor; var Oa = env.__embind_register_class_function; var Pa = env.__embind_register_emval; var Qa = env.__embind_register_float; var Ra = env.__embind_register_function; var Sa = env.__embind_register_integer; var Ta = env.__embind_register_memory_view; var Ua = env.__embind_register_std_string; var Va = env.__embind_register_std_wstring; var Wa = env.__embind_register_void; var Xa = env.__emval_addMethodCaller; var Ya = env.__emval_allocateDestructors; var Za = env.__emval_as; var _a = env.__emval_call; var $a = env.__emval_call_void_method; var ab = env.__emval_decref; var bb = env.__emval_get_method_caller; var cb = env.__emval_get_module_property; var db = env.__emval_get_property; var eb = env.__emval_incref; var fb = env.__emval_lookupTypes; var gb = env.__emval_new; var hb = env.__emval_new_cstring; var ib = env.__emval_register; var jb = env.__emval_run_destructors; var kb = env.__emval_take_value; var lb = env._abort; var mb = env._embind_repr; var nb = env._emscripten_memcpy_big; var ob = env._llvm_cttz_i64; var pb = env._pthread_getspecific; var qb = env._pthread_key_create; var rb = env._pthread_once; var sb = env._pthread_setspecific; var tb = env.constNoSmartPtrRawPointerToWireType; var ub = env.count_emval_handles; var vb = env.craftEmvalAllocator; var wb = env.craftInvokerFunction; var xb = env.createNamedFunction; var yb = env.downcastPointer; var zb = env.embind__requireFunction; var Ab = env.embind_init_charCodes; var Bb = env.ensureOverloadTable; var Cb = env.exposePublicSymbol; var Db = env.extendError; var Eb = env.floatReadValueFromPointer; var Fb = env.flushPendingDeletes; var Gb = env.genericPointerToWireType; var Hb = env.getBasestPointer; var Ib = env.getInheritedInstance; var Jb = env.getInheritedInstanceCount; var Kb = env.getLiveInheritedInstances; var Lb = env.getShiftFromSize; var Mb = env.getStringOrSymbol; var Nb = env.getTypeName; var Ob = env.get_first_emval; var Pb = env.heap32VectorToArray; var Qb = env.init_ClassHandle; var Rb = env.init_RegisteredPointer; var Sb = env.init_embind; var Tb = env.init_emval; var Ub = env.integerReadValueFromPointer; var Vb = env.makeClassHandle; var Wb = env.makeLegalFunctionName; var Xb = env.new_; var Yb = env.nonConstNoSmartPtrRawPointerToWireType; var Zb = env.readLatin1String; var _b = env.registerType; var $b = env.replacePublicSymbol; var ac = env.requireHandle; var bc = env.requireRegisteredType; var cc = env.runDestructor; var dc = env.runDestructors; var ec = env.setDelayFunction; var fc = env.shallowCopyInternalPointer; var gc = env.simpleReadValueFromPointer; var hc = env.throwBindingError; var ic = env.throwInstanceAlreadyDeleted; var jc = env.throwInternalError; var kc = env.throwUnboundTypeError; var lc = env.upcastPointer; var mc = env.whenDependentTypesAreResolved; var nc = 0.0; // EMSCRIPTEN_START_FUNCS function Ds(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 4) | 0; k = g; m = (g + 17) | 0; n = (g + 16) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; if ((c[k >> 2] | 0) >>> 0 < 1) { f = c[i >> 2] | 0; c[f >> 2] = 0; c[(f + 4) >> 2] = 0; c[(f + 8) >> 2] = 0; c[(f + 12) >> 2] = 0; c[h >> 2] = -72; o = c[h >> 2] | 0; l = g; return o | 0; } f = (c[k >> 2] | 0) >>> 0 >= 4; c[((c[i >> 2] | 0) + 12) >> 2] = c[j >> 2]; do { if (f) { c[((c[i >> 2] | 0) + 8) >> 2] = (c[j >> 2] | 0) + (c[k >> 2] | 0) + -4; e = Qs(c[((c[i >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[i >> 2] >> 2] = e; a[m >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[m >> 0] | 0 | 0) p = (8 - (Rs(d[m >> 0] | 0) | 0)) | 0; else p = 0; c[((c[i >> 2] | 0) + 4) >> 2] = p; if (!(d[m >> 0] | 0)) { c[h >> 2] = -1; o = c[h >> 2] | 0; l = g; return o | 0; } } else { c[((c[i >> 2] | 0) + 8) >> 2] = c[((c[i >> 2] | 0) + 12) >> 2]; c[c[i >> 2] >> 2] = d[c[((c[i >> 2] | 0) + 12) >> 2] >> 0]; switch (c[k >> 2] | 0) { case 7: { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 6) >> 0] | 0) << 16); q = 10; break; } case 6: { q = 10; break; } case 5: { q = 11; break; } case 4: { q = 12; break; } case 3: { q = 13; break; } case 2: { q = 14; break; } default: { } } if ((q | 0) == 10) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 5) >> 0] | 0) << 8); q = 11; } if ((q | 0) == 11) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 4) >> 0] | 0) << 0); q = 12; } if ((q | 0) == 12) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 3) >> 0] | 0) << 24); q = 13; } if ((q | 0) == 13) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 2) >> 0] | 0) << 16); q = 14; } if ((q | 0) == 14) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 1) >> 0] | 0) << 8); } a[n >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[n >> 0] | 0 | 0) r = (8 - (Rs(d[n >> 0] | 0) | 0)) | 0; else r = 0; c[((c[i >> 2] | 0) + 4) >> 2] = r; if (d[n >> 0] | 0 | 0) { e = ((c[i >> 2] | 0) + 4) | 0; c[e >> 2] = (c[e >> 2] | 0) + ((4 - (c[k >> 2] | 0)) << 3); break; } c[h >> 2] = -1; o = c[h >> 2] | 0; l = g; return o | 0; } } while (0); c[h >> 2] = c[k >> 2]; o = c[h >> 2] | 0; l = g; return o | 0; } function Es(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = c[i >> 2]; c[k >> 2] = c[j >> 2]; j = Ms(c[h >> 2] | 0, e[c[k >> 2] >> 1] | 0) | 0; c[c[g >> 2] >> 2] = j; Fs(c[h >> 2] | 0) | 0; c[((c[g >> 2] | 0) + 4) >> 2] = (c[i >> 2] | 0) + 4; l = f; return; } function Fs(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = (b + 12) | 0; e = (b + 8) | 0; f = (b + 4) | 0; g = b; c[e >> 2] = a; if ((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) { c[d >> 2] = 3; h = c[d >> 2] | 0; l = b; return h | 0; } a = c[e >> 2] | 0; if ( (c[((c[e >> 2] | 0) + 8) >> 2] | 0) >>> 0 >= (((c[((c[e >> 2] | 0) + 12) >> 2] | 0) + 4) | 0) >>> 0 ) { i = ((c[e >> 2] | 0) + 8) | 0; c[i >> 2] = (c[i >> 2] | 0) + (0 - ((c[(a + 4) >> 2] | 0) >>> 3)); i = ((c[e >> 2] | 0) + 4) | 0; c[i >> 2] = c[i >> 2] & 7; i = Qs(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = i; c[d >> 2] = 0; h = c[d >> 2] | 0; l = b; return h | 0; } i = c[((c[e >> 2] | 0) + 4) >> 2] | 0; if ( (c[(a + 8) >> 2] | 0) != (c[((c[e >> 2] | 0) + 12) >> 2] | 0) ) { c[f >> 2] = i >>> 3; c[g >> 2] = 0; if ( (((c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (0 - (c[f >> 2] | 0))) | 0) >>> 0 < (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 ) { c[f >> 2] = (c[((c[e >> 2] | 0) + 8) >> 2] | 0) - (c[((c[e >> 2] | 0) + 12) >> 2] | 0); c[g >> 2] = 1; } a = ((c[e >> 2] | 0) + 8) | 0; c[a >> 2] = (c[a >> 2] | 0) + (0 - (c[f >> 2] | 0)); a = ((c[e >> 2] | 0) + 4) | 0; c[a >> 2] = (c[a >> 2] | 0) - (c[f >> 2] << 3); f = Qs(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = f; c[d >> 2] = c[g >> 2]; h = c[d >> 2] | 0; l = b; return h | 0; } if (i >>> 0 < 32) { c[d >> 2] = 1; h = c[d >> 2] | 0; l = b; return h | 0; } else { c[d >> 2] = 2; h = c[d >> 2] | 0; l = b; return h | 0; } return 0; } function Gs(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; d = l; l = (l + 64) | 0; e = (d + 48) | 0; f = (d + 36) | 0; g = (d + 32) | 0; h = (d + 28) | 0; i = (d + 24) | 0; j = (d + 20) | 0; k = (d + 16) | 0; m = (d + 12) | 0; n = (d + 8) | 0; o = (d + 4) | 0; p = d; c[e >> 2] = b; c[g >> 2] = (Ls(((c[e >> 2] | 0) + 16) | 0) | 0) & 255; c[h >> 2] = (Ls(((c[e >> 2] | 0) + 32) | 0) | 0) & 255; c[i >> 2] = (Ls(((c[e >> 2] | 0) + 24) | 0) | 0) & 255; c[j >> 2] = c[(5696 + (c[g >> 2] << 2)) >> 2]; c[k >> 2] = c[(5840 + (c[h >> 2] << 2)) >> 2]; c[m >> 2] = c[i >> 2]; c[n >> 2] = (c[j >> 2] | 0) + (c[k >> 2] | 0) + (c[m >> 2] | 0); if (c[i >> 2] | 0) { b = c[(5088 + (c[i >> 2] << 2)) >> 2] | 0; c[o >> 2] = b + (Ms(c[e >> 2] | 0, c[m >> 2] | 0) | 0); if (Dq() | 0) Fs(c[e >> 2] | 0) | 0; } else c[o >> 2] = 0; do { if ((c[i >> 2] | 0) >>> 0 <= 1) { if ( (((c[g >> 2] | 0) == 0) & ((c[o >> 2] | 0) >>> 0 <= 1)) | 0 ) c[o >> 2] = 1 - (c[o >> 2] | 0); m = ((c[e >> 2] | 0) + 40) | 0; if (!(c[o >> 2] | 0)) { c[o >> 2] = c[m >> 2]; break; } c[p >> 2] = c[(m + (c[o >> 2] << 2)) >> 2]; if ((c[o >> 2] | 0) != 1) c[((c[e >> 2] | 0) + 40 + 8) >> 2] = c[((c[e >> 2] | 0) + 40 + 4) >> 2]; c[((c[e >> 2] | 0) + 40 + 4) >> 2] = c[((c[e >> 2] | 0) + 40) >> 2]; m = c[p >> 2] | 0; c[o >> 2] = m; c[((c[e >> 2] | 0) + 40) >> 2] = m; } else { c[((c[e >> 2] | 0) + 40 + 8) >> 2] = c[((c[e >> 2] | 0) + 40 + 4) >> 2]; c[((c[e >> 2] | 0) + 40 + 4) >> 2] = c[((c[e >> 2] | 0) + 40) >> 2]; c[((c[e >> 2] | 0) + 40) >> 2] = c[o >> 2]; } } while (0); c[(f + 8) >> 2] = c[o >> 2]; o = c[(5216 + (c[h >> 2] << 2)) >> 2] | 0; if ((c[h >> 2] | 0) >>> 0 > 31) q = Ms(c[e >> 2] | 0, c[k >> 2] | 0) | 0; else q = 0; c[(f + 4) >> 2] = o + q; if ( Dq() | 0 ? (((c[k >> 2] | 0) + (c[j >> 2] | 0)) | 0) >>> 0 > 24 : 0 ) Fs(c[e >> 2] | 0) | 0; k = c[(6416 + (c[g >> 2] << 2)) >> 2] | 0; if ((c[g >> 2] | 0) >>> 0 > 15) r = Ms(c[e >> 2] | 0, c[j >> 2] | 0) | 0; else r = 0; c[f >> 2] = k + r; r = (Dq() | 0) != 0; if (r | ((c[n >> 2] | 0) >>> 0 > 31)) Fs(c[e >> 2] | 0) | 0; Ns(((c[e >> 2] | 0) + 16) | 0, c[e >> 2] | 0); Ns(((c[e >> 2] | 0) + 32) | 0, c[e >> 2] | 0); if (!(Dq() | 0)) { s = c[e >> 2] | 0; t = (s + 24) | 0; u = c[e >> 2] | 0; Ns(t, u); c[a >> 2] = c[f >> 2]; c[(a + 4) >> 2] = c[(f + 4) >> 2]; c[(a + 8) >> 2] = c[(f + 8) >> 2]; l = d; return; } Fs(c[e >> 2] | 0) | 0; s = c[e >> 2] | 0; t = (s + 24) | 0; u = c[e >> 2] | 0; Ns(t, u); c[a >> 2] = c[f >> 2]; c[(a + 4) >> 2] = c[(f + 4) >> 2]; c[(a + 8) >> 2] = c[(f + 8) >> 2]; l = d; return; } function Hs(b, d, e, f, g, h, i, j) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; k = l; l = (l + 64) | 0; m = (k + 60) | 0; n = (k + 56) | 0; o = (k + 52) | 0; p = (k + 48) | 0; q = (k + 44) | 0; r = (k + 40) | 0; s = (k + 36) | 0; t = (k + 32) | 0; u = (k + 28) | 0; v = (k + 24) | 0; w = (k + 20) | 0; x = (k + 16) | 0; y = (k + 12) | 0; z = (k + 8) | 0; A = (k + 4) | 0; B = k; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = (c[n >> 2] | 0) + (c[e >> 2] | 0); c[v >> 2] = (c[e >> 2] | 0) + (c[(e + 4) >> 2] | 0); c[w >> 2] = (c[n >> 2] | 0) + (c[v >> 2] | 0); c[x >> 2] = (c[o >> 2] | 0) + -8; c[y >> 2] = (c[c[p >> 2] >> 2] | 0) + (c[e >> 2] | 0); c[z >> 2] = (c[u >> 2] | 0) + (0 - (c[(e + 8) >> 2] | 0)); if ( ((c[u >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0 ? 1 : (c[w >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) | 0 ) { c[m >> 2] = -70; C = c[m >> 2] | 0; l = k; return C | 0; } if ((c[y >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) { c[m >> 2] = -20; C = c[m >> 2] | 0; l = k; return C | 0; } Is(c[n >> 2] | 0, c[c[p >> 2] >> 2] | 0, c[e >> 2] | 0); c[n >> 2] = c[u >> 2]; c[c[p >> 2] >> 2] = c[y >> 2]; do { if ( (c[(e + 8) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[r >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(e + 8) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[s >> 2] | 0)) | 0) >>> 0 ) { c[m >> 2] = -20; C = c[m >> 2] | 0; l = k; return C | 0; } c[z >> 2] = (c[t >> 2] | 0) + (0 - ((c[r >> 2] | 0) - (c[z >> 2] | 0))); if ( (((c[z >> 2] | 0) + (c[(e + 4) >> 2] | 0)) | 0) >>> 0 <= (c[t >> 2] | 0) >>> 0 ) { nE(c[u >> 2] | 0, c[z >> 2] | 0, c[(e + 4) >> 2] | 0) | 0; c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } c[A >> 2] = (c[t >> 2] | 0) - (c[z >> 2] | 0); nE(c[u >> 2] | 0, c[z >> 2] | 0, c[A >> 2] | 0) | 0; c[n >> 2] = (c[u >> 2] | 0) + (c[A >> 2] | 0); y = (e + 4) | 0; c[y >> 2] = (c[y >> 2] | 0) - (c[A >> 2] | 0); c[z >> 2] = c[r >> 2]; if ( (c[n >> 2] | 0) >>> 0 <= (c[x >> 2] | 0) >>> 0 ? (c[(e + 4) >> 2] | 0) >>> 0 >= 3 : 0 ) break; while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; y = c[z >> 2] | 0; c[z >> 2] = y + 1; p = a[y >> 0] | 0; y = c[n >> 2] | 0; c[n >> 2] = y + 1; a[y >> 0] = p; } c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } } while (0); if ((c[(e + 8) >> 2] | 0) >>> 0 < 8) { c[B >> 2] = c[(6816 + (c[(e + 8) >> 2] << 2)) >> 2]; a[c[n >> 2] >> 0] = a[c[z >> 2] >> 0] | 0; a[((c[n >> 2] | 0) + 1) >> 0] = a[((c[z >> 2] | 0) + 1) >> 0] | 0; a[((c[n >> 2] | 0) + 2) >> 0] = a[((c[z >> 2] | 0) + 2) >> 0] | 0; a[((c[n >> 2] | 0) + 3) >> 0] = a[((c[z >> 2] | 0) + 3) >> 0] | 0; c[z >> 2] = (c[z >> 2] | 0) + (c[(6848 + (c[(e + 8) >> 2] << 2)) >> 2] | 0); Js(((c[n >> 2] | 0) + 4) | 0, c[z >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + (0 - (c[B >> 2] | 0)); } else Ks(c[n >> 2] | 0, c[z >> 2] | 0); c[n >> 2] = (c[n >> 2] | 0) + 8; c[z >> 2] = (c[z >> 2] | 0) + 8; B = c[n >> 2] | 0; a: do { if ( (c[w >> 2] | 0) >>> 0 > (((c[o >> 2] | 0) + -13) | 0) >>> 0 ) { if (B >>> 0 < (c[x >> 2] | 0) >>> 0) { Is( c[n >> 2] | 0, c[z >> 2] | 0, ((c[x >> 2] | 0) - (c[n >> 2] | 0)) | 0 ); c[z >> 2] = (c[z >> 2] | 0) + ((c[x >> 2] | 0) - (c[n >> 2] | 0)); c[n >> 2] = c[x >> 2]; } while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; r = c[z >> 2] | 0; c[z >> 2] = r + 1; A = a[r >> 0] | 0; r = c[n >> 2] | 0; c[n >> 2] = r + 1; a[r >> 0] = A; } } else Is(B, c[z >> 2] | 0, ((c[(e + 4) >> 2] | 0) - 8) | 0); } while (0); c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } function Is(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { Ks(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function Js(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; l = e; return; } function Ks(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function Ls(d) { d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 4) | 0; c[f >> 2] = d; d = ((c[((c[f >> 2] | 0) + 4) >> 2] | 0) + (c[c[f >> 2] >> 2] << 2)) | 0; b[g >> 1] = b[d >> 1] | 0; b[(g + 2) >> 1] = b[(d + 2) >> 1] | 0; l = e; return a[(g + 2) >> 0] | 0; } function Ms(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = Os(c[e >> 2] | 0, c[f >> 2] | 0) | 0; Ps(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function Ns(a, f) { a = a | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 16) | 0; k = (g + 4) | 0; m = g; c[h >> 2] = a; c[i >> 2] = f; f = ((c[((c[h >> 2] | 0) + 4) >> 2] | 0) + (c[c[h >> 2] >> 2] << 2)) | 0; b[j >> 1] = b[f >> 1] | 0; b[(j + 2) >> 1] = b[(f + 2) >> 1] | 0; c[k >> 2] = d[(j + 3) >> 0]; c[m >> 2] = Ms(c[i >> 2] | 0, c[k >> 2] | 0) | 0; c[c[h >> 2] >> 2] = (e[j >> 1] | 0) + (c[m >> 2] | 0); l = g; return; } function Os(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( (((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> 1) >>> ((31 - (c[f >> 2] | 0)) & 31)) | 0 ); } function Ps(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ((c[e >> 2] | 0) + 4) | 0; c[b >> 2] = (c[b >> 2] | 0) + (c[f >> 2] | 0); l = d; return; } function Qs(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (Dq() | 0) != 0; f = c[e >> 2] | 0; if (a) { c[d >> 2] = Bq(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } else { a = Fq(f) | 0; c[d >> 2] = a; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function Rs(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function Ss(b, e, f, g, h, i, j, k, m) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; n = l; l = (l + 160) | 0; o = (n + 152) | 0; p = (n + 148) | 0; q = (n + 144) | 0; r = (n + 140) | 0; s = (n + 136) | 0; t = (n + 132) | 0; u = (n + 128) | 0; v = (n + 124) | 0; w = (n + 120) | 0; x = (n + 116) | 0; y = (n + 112) | 0; z = n; A = (n + 108) | 0; c[p >> 2] = b; c[q >> 2] = e; c[r >> 2] = f; c[s >> 2] = g; c[t >> 2] = h; c[u >> 2] = i; c[v >> 2] = j; c[w >> 2] = k; c[x >> 2] = m; a: do { switch (c[q >> 2] | 0) { case 1: { if (!(c[u >> 2] | 0)) { c[o >> 2] = -72; break a; } if ( (d[c[t >> 2] >> 0] | 0) >>> 0 > (c[r >> 2] | 0) >>> 0 ) { c[o >> 2] = -20; break a; } else { Ts(c[p >> 2] | 0, a[c[t >> 2] >> 0] | 0) | 0; c[o >> 2] = 1; break a; } break; } case 0: { Us( c[p >> 2] | 0, c[v >> 2] | 0, c[r >> 2] | 0, c[w >> 2] | 0 ) | 0; c[o >> 2] = 0; break; } case 2: { if (c[x >> 2] | 0) { c[o >> 2] = 0; break a; } else { c[o >> 2] = -20; break a; } break; } default: { c[A >> 2] = Vs(z, r, y, c[t >> 2] | 0, c[u >> 2] | 0) | 0; if (hr(c[A >> 2] | 0) | 0) { c[o >> 2] = -20; break a; } if ((c[y >> 2] | 0) >>> 0 > (c[s >> 2] | 0) >>> 0) { c[o >> 2] = -20; break a; } else { Us(c[p >> 2] | 0, z, c[r >> 2] | 0, c[y >> 2] | 0) | 0; c[o >> 2] = c[A >> 2]; break a; } } } } while (0); l = n; return c[o >> 2] | 0; } function Ts(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 20) | 0; i = (f + 12) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[g >> 2] = d; a[h >> 0] = e; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[i >> 2]; c[k >> 2] = (c[g >> 2] | 0) + 4; c[m >> 2] = c[k >> 2]; b[c[j >> 2] >> 1] = 0; b[((c[j >> 2] | 0) + 2) >> 1] = 0; b[c[m >> 2] >> 1] = 0; a[((c[m >> 2] | 0) + 2) >> 0] = a[h >> 0] | 0; a[((c[m >> 2] | 0) + 3) >> 0] = 0; l = f; return 0; } function Us(f, g, h, i) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0; j = l; l = (l + 592) | 0; k = (j + 576) | 0; m = (j + 572) | 0; n = (j + 568) | 0; o = (j + 564) | 0; p = (j + 560) | 0; q = (j + 556) | 0; r = (j + 552) | 0; s = j; t = (j + 548) | 0; u = (j + 544) | 0; v = (j + 540) | 0; w = (j + 584) | 0; x = (j + 582) | 0; y = (j + 536) | 0; z = (j + 532) | 0; A = (j + 528) | 0; B = (j + 524) | 0; C = (j + 520) | 0; D = (j + 516) | 0; E = (j + 512) | 0; F = (j + 588) | 0; G = (j + 580) | 0; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = h; c[p >> 2] = i; c[q >> 2] = (c[m >> 2] | 0) + 4; c[r >> 2] = c[q >> 2]; c[t >> 2] = (c[o >> 2] | 0) + 1; c[u >> 2] = 1 << c[p >> 2]; c[v >> 2] = (c[u >> 2] | 0) - 1; if ((c[o >> 2] | 0) >>> 0 > 255) { c[k >> 2] = -46; H = c[k >> 2] | 0; l = j; return H | 0; } if ((c[p >> 2] | 0) >>> 0 > 12) { c[k >> 2] = -44; H = c[k >> 2] | 0; l = j; return H | 0; } b[w >> 1] = c[p >> 2]; b[(w + 2) >> 1] = 1; b[x >> 1] = 1 << ((c[p >> 2] | 0) - 1); c[y >> 2] = 0; while (1) { if ((c[y >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; if ( (b[((c[n >> 2] | 0) + (c[y >> 2] << 1)) >> 1] | 0) == -1 ) { o = c[y >> 2] & 255; q = c[r >> 2] | 0; i = c[v >> 2] | 0; c[v >> 2] = i + -1; a[(q + (i << 2) + 2) >> 0] = o; b[(s + (c[y >> 2] << 1)) >> 1] = 1; } else { if ( (b[((c[n >> 2] | 0) + (c[y >> 2] << 1)) >> 1] | 0) >= (b[x >> 1] | 0) ) b[(w + 2) >> 1] = 0; b[(s + (c[y >> 2] << 1)) >> 1] = b[((c[n >> 2] | 0) + (c[y >> 2] << 1)) >> 1] | 0; } c[y >> 2] = (c[y >> 2] | 0) + 1; } y = c[m >> 2] | 0; b[y >> 1] = b[w >> 1] | 0; b[(y + 2) >> 1] = b[(w + 2) >> 1] | 0; c[z >> 2] = (c[u >> 2] | 0) - 1; c[A >> 2] = ((c[u >> 2] | 0) >>> 1) + ((c[u >> 2] | 0) >>> 3) + 3; c[C >> 2] = 0; c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; c[D >> 2] = 0; while (1) { I = c[B >> 2] | 0; if ( (c[D >> 2] | 0) >= (b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0) ) break; a[((c[r >> 2] | 0) + (c[C >> 2] << 2) + 2) >> 0] = I; c[C >> 2] = ((c[C >> 2] | 0) + (c[A >> 2] | 0)) & c[z >> 2]; while (1) { if ((c[C >> 2] | 0) >>> 0 <= (c[v >> 2] | 0) >>> 0) break; c[C >> 2] = ((c[C >> 2] | 0) + (c[A >> 2] | 0)) & c[z >> 2]; } c[D >> 2] = (c[D >> 2] | 0) + 1; } c[B >> 2] = I + 1; } if (c[C >> 2] | 0) { c[k >> 2] = -1; H = c[k >> 2] | 0; l = j; return H | 0; } c[E >> 2] = 0; while (1) { if ((c[E >> 2] | 0) >>> 0 >= (c[u >> 2] | 0) >>> 0) break; a[F >> 0] = a[((c[r >> 2] | 0) + (c[E >> 2] << 2) + 2) >> 0] | 0; C = (s + (d[F >> 0] << 1)) | 0; I = b[C >> 1] | 0; b[C >> 1] = ((I + 1) << 16) >> 16; b[G >> 1] = I; I = c[p >> 2] | 0; C = (I - (Rs(e[G >> 1] | 0) | 0)) & 255; a[((c[r >> 2] | 0) + (c[E >> 2] << 2) + 3) >> 0] = C; b[((c[r >> 2] | 0) + (c[E >> 2] << 2)) >> 1] = (e[G >> 1] << d[((c[r >> 2] | 0) + (c[E >> 2] << 2) + 3) >> 0]) - (c[u >> 2] | 0); c[E >> 2] = (c[E >> 2] | 0) + 1; } c[k >> 2] = 0; H = c[k >> 2] | 0; l = j; return H | 0; } function Vs(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; h = l; l = (l + 80) | 0; i = (h + 64) | 0; j = (h + 60) | 0; k = (h + 56) | 0; m = (h + 52) | 0; n = (h + 48) | 0; o = (h + 44) | 0; p = (h + 40) | 0; q = (h + 36) | 0; r = (h + 32) | 0; s = (h + 28) | 0; t = (h + 24) | 0; u = (h + 20) | 0; v = (h + 16) | 0; w = (h + 12) | 0; x = (h + 8) | 0; y = (h + 4) | 0; z = h; A = (h + 70) | 0; B = (h + 68) | 0; c[j >> 2] = a; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[p >> 2]; c[x >> 2] = 0; c[y >> 2] = 0; if ((c[o >> 2] | 0) >>> 0 < 4) { c[i >> 2] = -72; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = Bq(c[r >> 2] | 0) | 0; c[s >> 2] = (c[v >> 2] & 15) + 5; if ((c[s >> 2] | 0) > 15) { c[i >> 2] = -44; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = (c[v >> 2] | 0) >>> 4; c[w >> 2] = 4; c[c[m >> 2] >> 2] = c[s >> 2]; c[t >> 2] = (1 << c[s >> 2]) + 1; c[u >> 2] = 1 << c[s >> 2]; c[s >> 2] = (c[s >> 2] | 0) + 1; a: while (1) { if ((c[t >> 2] | 0) <= 1) break; if ((c[x >> 2] | 0) >>> 0 > (c[c[k >> 2] >> 2] | 0) >>> 0) break; do { if (c[y >> 2] | 0) { c[z >> 2] = c[x >> 2]; while (1) { if (((c[v >> 2] & 65535) | 0) != 65535) break; c[z >> 2] = (c[z >> 2] | 0) + 24; if ( (c[r >> 2] | 0) >>> 0 < (((c[q >> 2] | 0) + -5) | 0) >>> 0 ) { c[r >> 2] = (c[r >> 2] | 0) + 2; m = Bq(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] | 0); } else { c[v >> 2] = (c[v >> 2] | 0) >>> 16; c[w >> 2] = (c[w >> 2] | 0) + 16; } } while (1) { if (((c[v >> 2] & 3) | 0) != 3) break; c[z >> 2] = (c[z >> 2] | 0) + 3; c[v >> 2] = (c[v >> 2] | 0) >>> 2; c[w >> 2] = (c[w >> 2] | 0) + 2; } c[z >> 2] = (c[z >> 2] | 0) + (c[v >> 2] & 3); c[w >> 2] = (c[w >> 2] | 0) + 2; if ( (c[z >> 2] | 0) >>> 0 > (c[c[k >> 2] >> 2] | 0) >>> 0 ) { D = 19; break a; } while (1) { if ((c[x >> 2] | 0) >>> 0 >= (c[z >> 2] | 0) >>> 0) break; m = c[j >> 2] | 0; n = c[x >> 2] | 0; c[x >> 2] = n + 1; b[(m + (n << 1)) >> 1] = 0; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[v >> 2] = (c[v >> 2] | 0) >>> 2; break; } c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; n = Bq(c[r >> 2] | 0) | 0; c[v >> 2] = n >>> (c[w >> 2] | 0); } } while (0); b[A >> 1] = (c[u >> 2] << 1) - 1 - (c[t >> 2] | 0); n = c[v >> 2] | 0; m = c[u >> 2] | 0; if ( (c[v >> 2] & ((c[u >> 2] | 0) - 1)) >>> 0 < (b[A >> 1] | 0) >>> 0 ) { b[B >> 1] = n & (m - 1); c[w >> 2] = (c[w >> 2] | 0) + ((c[s >> 2] | 0) - 1); } else { b[B >> 1] = n & ((m << 1) - 1); if ((b[B >> 1] | 0) >= (c[u >> 2] | 0)) b[B >> 1] = (b[B >> 1] | 0) - (b[A >> 1] | 0); c[w >> 2] = (c[w >> 2] | 0) + (c[s >> 2] | 0); } b[B >> 1] = (((b[B >> 1] | 0) + -1) << 16) >> 16; m = ((Ws(b[B >> 1] | 0) | 0) << 16) >> 16; c[t >> 2] = (c[t >> 2] | 0) - m; m = b[B >> 1] | 0; n = c[j >> 2] | 0; g = c[x >> 2] | 0; c[x >> 2] = g + 1; b[(n + (g << 1)) >> 1] = m; c[y >> 2] = (((b[B >> 1] | 0) != 0) ^ 1) & 1; while (1) { if ((c[t >> 2] | 0) >= (c[u >> 2] | 0)) break; c[s >> 2] = (c[s >> 2] | 0) + -1; c[u >> 2] = c[u >> 2] >> 1; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[w >> 2] = (c[w >> 2] | 0) - (((c[q >> 2] | 0) + -4 - (c[r >> 2] | 0)) << 3); c[r >> 2] = (c[q >> 2] | 0) + -4; } else { c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; } m = Bq(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] & 31); } if ((D | 0) == 19) { c[i >> 2] = -48; C = c[i >> 2] | 0; l = h; return C | 0; } if ((c[t >> 2] | 0) != 1) { c[i >> 2] = -1; C = c[i >> 2] | 0; l = h; return C | 0; } c[c[k >> 2] >> 2] = (c[x >> 2] | 0) - 1; c[r >> 2] = (c[r >> 2] | 0) + (((c[w >> 2] | 0) + 7) >> 3); if ( (((c[r >> 2] | 0) - (c[p >> 2] | 0)) | 0) >>> 0 > (c[o >> 2] | 0) >>> 0 ) { c[i >> 2] = -72; C = c[i >> 2] | 0; l = h; return C | 0; } else { c[i >> 2] = (c[r >> 2] | 0) - (c[p >> 2] | 0); C = c[i >> 2] | 0; l = h; return C | 0; } return 0; } function Ws(a) { a = a | 0; var c = 0, d = 0; c = l; l = (l + 16) | 0; d = c; b[d >> 1] = a; a = b[d >> 1] | 0; l = c; return (((b[d >> 1] | 0) < 0 ? (0 - a) | 0 : a) & 65535) | 0; } function Xs(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = kt(c[i >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; m = (at(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (m) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } if (f >>> 0 >= (c[n >> 2] | 0) >>> 0) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + (c[p >> 2] | 0); c[n >> 2] = (c[n >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = Bt( c[j >> 2] | 0, c[k >> 2] | 0, c[o >> 2] | 0, c[n >> 2] | 0, c[i >> 2] | 0 ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function Ys(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 32) | 0; h = (g + 24) | 0; i = (g + 20) | 0; j = (g + 16) | 0; k = (g + 12) | 0; m = (g + 8) | 0; n = (g + 4) | 0; o = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if (!(c[k >> 2] | 0)) { c[h >> 2] = -70; p = c[h >> 2] | 0; l = g; return p | 0; } if ( (c[n >> 2] | 0) >>> 0 <= 1 ? 1 : (c[n >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; p = c[h >> 2] | 0; l = g; return p | 0; } c[o >> 2] = ht(c[k >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; i = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; if (c[o >> 2] | 0) q = it(f, i, j, k, m) | 0; else q = jt(f, i, j, k, m) | 0; c[h >> 2] = q; p = c[h >> 2] | 0; l = g; return p | 0; } function Zs(a, b, e, f, g) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; h = l; l = (l + 32) | 0; i = (h + 20) | 0; j = (h + 16) | 0; k = (h + 12) | 0; m = (h + 8) | 0; n = (h + 4) | 0; o = h; p = (h + 24) | 0; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; _s(p, c[o >> 2] | 0); if ((d[(p + 1) >> 0] | 0 | 0) != 1) { c[i >> 2] = -1; q = c[i >> 2] | 0; l = h; return q | 0; } else { c[i >> 2] = $s( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } return 0; } function _s(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 4) | 0; c[f >> 2] = d; d = c[f >> 2] | 0; a[g >> 0] = a[d >> 0] | 0; a[(g + 1) >> 0] = a[(d + 1) >> 0] | 0; a[(g + 2) >> 0] = a[(d + 2) >> 0] | 0; a[(g + 3) >> 0] = a[(d + 3) >> 0] | 0; a[b >> 0] = a[g >> 0] | 0; a[(b + 1) >> 0] = a[(g + 1) >> 0] | 0; a[(b + 2) >> 0] = a[(g + 2) >> 0] | 0; a[(b + 3) >> 0] = a[(g + 3) >> 0] | 0; l = e; return; } function $s(a, b, e, f, g) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; h = l; l = (l + 80) | 0; i = (h + 60) | 0; j = (h + 56) | 0; k = (h + 52) | 0; m = (h + 48) | 0; n = (h + 44) | 0; o = (h + 40) | 0; p = (h + 24) | 0; q = (h + 16) | 0; r = (h + 12) | 0; s = (h + 8) | 0; t = (h + 4) | 0; u = h; v = (h + 64) | 0; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[q >> 2] = Ds(p, c[m >> 2] | 0, c[n >> 2] | 0) | 0; if (at(c[q >> 2] | 0) | 0) { c[i >> 2] = c[q >> 2]; w = c[i >> 2] | 0; l = h; return w | 0; } c[r >> 2] = c[j >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[k >> 2] | 0); c[t >> 2] = (c[o >> 2] | 0) + 4; c[u >> 2] = c[t >> 2]; _s(v, c[o >> 2] | 0); bt( c[r >> 2] | 0, p, c[s >> 2] | 0, c[u >> 2] | 0, d[(v + 2) >> 0] | 0 ) | 0; if (ct(p) | 0) { c[i >> 2] = c[k >> 2]; w = c[i >> 2] | 0; l = h; return w | 0; } else { c[i >> 2] = -20; w = c[i >> 2] | 0; l = h; return w | 0; } return 0; } function at(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = hr(c[d >> 2] | 0) | 0; l = b; return a | 0; } function bt(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = c[h >> 2]; while (1) { if (Fs(c[i >> 2] | 0) | 0) break; if ( (c[h >> 2] | 0) >>> 0 >= (((c[j >> 2] | 0) + -7) | 0) >>> 0 ) break; if (dt() | 0) { f = et( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } dt() | 0; f = et( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; if (dt() | 0) { f = et( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } f = et( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } while (1) { if (Fs(c[i >> 2] | 0) | 0) break; if ( (c[h >> 2] | 0) >>> 0 > (((c[j >> 2] | 0) + -2) | 0) >>> 0 ) break; f = et( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } while (1) { o = c[h >> 2] | 0; if ( (c[h >> 2] | 0) >>> 0 > (((c[j >> 2] | 0) + -2) | 0) >>> 0 ) break; f = et(o, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } if (o >>> 0 >= (c[j >> 2] | 0) >>> 0) { p = c[h >> 2] | 0; q = c[n >> 2] | 0; r = p; s = q; t = (r - s) | 0; l = g; return t | 0; } j = ft( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + j; p = c[h >> 2] | 0; q = c[n >> 2] | 0; r = p; s = q; t = (r - s) | 0; l = g; return t | 0; } function ct(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; if ( (c[((c[d >> 2] | 0) + 8) >> 2] | 0) != (c[((c[d >> 2] | 0) + 12) >> 2] | 0) ) { e = 0; f = e & 1; l = b; return f | 0; } e = (c[((c[d >> 2] | 0) + 4) >> 2] | 0) == 32; f = e & 1; l = b; return f | 0; } function dt() { return 0; } function et(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = gt(c[j >> 2] | 0, c[m >> 2] | 0) | 0; m = c[i >> 2] | 0; i = ((c[k >> 2] | 0) + (c[n >> 2] << 2)) | 0; a[m >> 0] = a[i >> 0] | 0; a[(m + 1) >> 0] = a[(i + 1) >> 0] | 0; Ps( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0 ); l = h; return ( d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 3) >> 0] | 0 | 0 ); } function ft(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = gt(c[j >> 2] | 0, c[m >> 2] | 0) | 0; a[c[i >> 2] >> 0] = a[((c[k >> 2] | 0) + (c[n >> 2] << 2)) >> 0] | 0; i = c[j >> 2] | 0; if ( (d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 3) >> 0] | 0 | 0) == 1 ) { Ps(i, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0); l = h; return 1; } if ((c[(i + 4) >> 2] | 0) >>> 0 >= 32) { l = h; return 1; } Ps( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0 ); if ((c[((c[j >> 2] | 0) + 4) >> 2] | 0) >>> 0 <= 32) { l = h; return 1; } c[((c[j >> 2] | 0) + 4) >> 2] = 32; l = h; return 1; } function gt(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( ((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> ((32 - (c[f >> 2] | 0)) & 31)) | 0 ); } function ht(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; d = l; l = (l + 32) | 0; e = (d + 20) | 0; f = (d + 16) | 0; g = (d + 12) | 0; h = (d + 8) | 0; i = (d + 4) | 0; j = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = (((c[f >> 2] << 4) >>> 0) / ((c[e >> 2] | 0) >>> 0)) | 0; c[h >> 2] = (c[e >> 2] | 0) >>> 8; c[i >> 2] = (c[(7008 + (((c[g >> 2] | 0) * 24) | 0)) >> 2] | 0) + (N( c[(7008 + (((c[g >> 2] | 0) * 24) | 0) + 4) >> 2] | 0, c[h >> 2] | 0 ) | 0); c[j >> 2] = (c[(7008 + (((c[g >> 2] | 0) * 24) | 0) + 8) >> 2] | 0) + (N( c[(7008 + (((c[g >> 2] | 0) * 24) | 0) + 8 + 4) >> 2] | 0, c[h >> 2] | 0 ) | 0); c[j >> 2] = (c[j >> 2] | 0) + ((c[j >> 2] | 0) >>> 3); l = d; return ((c[j >> 2] | 0) >>> 0 < (c[i >> 2] | 0) >>> 0) | 0; } function it(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = vt(c[i >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; m = (at(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (m) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } if (f >>> 0 >= (c[n >> 2] | 0) >>> 0) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + (c[p >> 2] | 0); c[n >> 2] = (c[n >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = wt( c[j >> 2] | 0, c[k >> 2] | 0, c[o >> 2] | 0, c[n >> 2] | 0, c[i >> 2] | 0 ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function jt(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = kt(c[i >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; m = (at(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (m) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } if (f >>> 0 >= (c[n >> 2] | 0) >>> 0) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + (c[p >> 2] | 0); c[n >> 2] = (c[n >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = lt( c[j >> 2] | 0, c[k >> 2] | 0, c[o >> 2] | 0, c[n >> 2] | 0, c[i >> 2] | 0 ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function kt(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; g = l; l = (l + 416) | 0; h = (g + 396) | 0; i = (g + 392) | 0; j = (g + 388) | 0; k = (g + 384) | 0; m = (g + 80) | 0; n = g; o = (g + 380) | 0; p = (g + 376) | 0; q = (g + 372) | 0; r = (g + 368) | 0; s = (g + 364) | 0; t = (g + 404) | 0; u = (g + 360) | 0; v = (g + 356) | 0; w = (g + 352) | 0; x = (g + 348) | 0; y = (g + 344) | 0; z = (g + 340) | 0; A = (g + 336) | 0; B = (g + 400) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[o >> 2] = 0; c[p >> 2] = 0; c[r >> 2] = (c[i >> 2] | 0) + 4; c[s >> 2] = c[r >> 2]; c[q >> 2] = ot(m, 256, n, p, o, c[j >> 2] | 0, c[k >> 2] | 0) | 0; if (at(c[q >> 2] | 0) | 0) { c[h >> 2] = c[q >> 2]; C = c[h >> 2] | 0; l = g; return C | 0; } _s(t, c[i >> 2] | 0); if ( (c[o >> 2] | 0) >>> 0 > (((d[t >> 0] | 0) + 1) | 0) >>> 0 ) { c[h >> 2] = -44; C = c[h >> 2] | 0; l = g; return C | 0; } a[(t + 1) >> 0] = 0; a[(t + 2) >> 0] = c[o >> 2]; k = c[i >> 2] | 0; a[k >> 0] = a[t >> 0] | 0; a[(k + 1) >> 0] = a[(t + 1) >> 0] | 0; a[(k + 2) >> 0] = a[(t + 2) >> 0] | 0; a[(k + 3) >> 0] = a[(t + 3) >> 0] | 0; c[v >> 2] = 0; c[u >> 2] = 1; while (1) { if ( (c[u >> 2] | 0) >>> 0 >= (((c[o >> 2] | 0) + 1) | 0) >>> 0 ) break; c[w >> 2] = c[v >> 2]; c[v >> 2] = (c[v >> 2] | 0) + (c[(n + (c[u >> 2] << 2)) >> 2] << ((c[u >> 2] | 0) - 1)); c[(n + (c[u >> 2] << 2)) >> 2] = c[w >> 2]; c[u >> 2] = (c[u >> 2] | 0) + 1; } c[x >> 2] = 0; while (1) { if ((c[x >> 2] | 0) >>> 0 >= (c[p >> 2] | 0) >>> 0) break; c[y >> 2] = d[(m + (c[x >> 2] | 0)) >> 0]; c[z >> 2] = (1 << c[y >> 2]) >> 1; a[B >> 0] = c[x >> 2]; a[(B + 1) >> 0] = (c[o >> 2] | 0) + 1 - (c[y >> 2] | 0); c[A >> 2] = c[(n + (c[y >> 2] << 2)) >> 2]; while (1) { if ( (c[A >> 2] | 0) >>> 0 >= (((c[(n + (c[y >> 2] << 2)) >> 2] | 0) + (c[z >> 2] | 0)) | 0) >>> 0 ) break; u = ((c[s >> 2] | 0) + (c[A >> 2] << 1)) | 0; a[u >> 0] = a[B >> 0] | 0; a[(u + 1) >> 0] = a[(B + 1) >> 0] | 0; c[A >> 2] = (c[A >> 2] | 0) + 1; } u = (n + (c[y >> 2] << 2)) | 0; c[u >> 2] = (c[u >> 2] | 0) + (c[z >> 2] | 0); c[x >> 2] = (c[x >> 2] | 0) + 1; } c[h >> 2] = c[q >> 2]; C = c[h >> 2] | 0; l = g; return C | 0; } function lt(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0; i = l; l = (l + 208) | 0; j = (i + 192) | 0; k = (i + 188) | 0; m = (i + 184) | 0; n = (i + 180) | 0; o = (i + 176) | 0; p = (i + 172) | 0; q = (i + 168) | 0; r = (i + 164) | 0; s = (i + 160) | 0; t = (i + 156) | 0; u = (i + 152) | 0; v = (i + 136) | 0; w = (i + 120) | 0; x = (i + 104) | 0; y = (i + 88) | 0; z = (i + 84) | 0; A = (i + 80) | 0; B = (i + 76) | 0; C = (i + 72) | 0; D = (i + 68) | 0; E = (i + 64) | 0; F = (i + 60) | 0; G = (i + 56) | 0; H = (i + 52) | 0; I = (i + 48) | 0; J = (i + 44) | 0; K = (i + 40) | 0; L = (i + 36) | 0; M = (i + 32) | 0; N = (i + 28) | 0; O = (i + 24) | 0; P = (i + 20) | 0; Q = (i + 196) | 0; R = (i + 16) | 0; S = (i + 12) | 0; T = (i + 8) | 0; U = (i + 4) | 0; V = i; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; if ((c[o >> 2] | 0) >>> 0 < 10) { c[j >> 2] = -20; W = c[j >> 2] | 0; l = i; return W | 0; } c[q >> 2] = c[n >> 2]; c[r >> 2] = c[k >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[m >> 2] | 0); c[t >> 2] = (c[p >> 2] | 0) + 4; c[u >> 2] = c[t >> 2]; c[z >> 2] = (Eq(c[q >> 2] | 0) | 0) & 65535; c[A >> 2] = (Eq(((c[q >> 2] | 0) + 2) | 0) | 0) & 65535; c[B >> 2] = (Eq(((c[q >> 2] | 0) + 4) | 0) | 0) & 65535; c[C >> 2] = (c[o >> 2] | 0) - ((c[z >> 2] | 0) + (c[A >> 2] | 0) + (c[B >> 2] | 0) + 6); c[D >> 2] = (c[q >> 2] | 0) + 6; c[E >> 2] = (c[D >> 2] | 0) + (c[z >> 2] | 0); c[F >> 2] = (c[E >> 2] | 0) + (c[A >> 2] | 0); c[G >> 2] = (c[F >> 2] | 0) + (c[B >> 2] | 0); c[H >> 2] = (((((c[m >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[I >> 2] = (c[r >> 2] | 0) + (c[H >> 2] | 0); c[J >> 2] = (c[I >> 2] | 0) + (c[H >> 2] | 0); c[K >> 2] = (c[J >> 2] | 0) + (c[H >> 2] | 0); c[L >> 2] = c[r >> 2]; c[M >> 2] = c[I >> 2]; c[N >> 2] = c[J >> 2]; c[O >> 2] = c[K >> 2]; _s(Q, c[p >> 2] | 0); c[R >> 2] = d[(Q + 2) >> 0]; if ((c[C >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) { c[j >> 2] = -20; W = c[j >> 2] | 0; l = i; return W | 0; } c[S >> 2] = Ds(v, c[D >> 2] | 0, c[z >> 2] | 0) | 0; if (at(c[S >> 2] | 0) | 0) { c[j >> 2] = c[S >> 2]; W = c[j >> 2] | 0; l = i; return W | 0; } c[T >> 2] = Ds(w, c[E >> 2] | 0, c[A >> 2] | 0) | 0; if (at(c[T >> 2] | 0) | 0) { c[j >> 2] = c[T >> 2]; W = c[j >> 2] | 0; l = i; return W | 0; } c[U >> 2] = Ds(x, c[F >> 2] | 0, c[B >> 2] | 0) | 0; if (at(c[U >> 2] | 0) | 0) { c[j >> 2] = c[U >> 2]; W = c[j >> 2] | 0; l = i; return W | 0; } c[V >> 2] = Ds(y, c[G >> 2] | 0, c[C >> 2] | 0) | 0; if (at(c[V >> 2] | 0) | 0) { c[j >> 2] = c[V >> 2]; W = c[j >> 2] | 0; l = i; return W | 0; } V = Fs(v) | 0; C = V | (Fs(w) | 0); V = C | (Fs(x) | 0); c[P >> 2] = V | (Fs(y) | 0); while (1) { if (c[P >> 2] | 0) break; if ( (c[O >> 2] | 0) >>> 0 >= (((c[s >> 2] | 0) + -7) | 0) >>> 0 ) break; if (dt() | 0) { V = mt(v, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[L >> 2] | 0; c[L >> 2] = C + 1; a[C >> 0] = V; } if (dt() | 0) { V = mt(w, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[M >> 2] | 0; c[M >> 2] = C + 1; a[C >> 0] = V; } if (dt() | 0) { V = mt(x, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[N >> 2] | 0; c[N >> 2] = C + 1; a[C >> 0] = V; } if (dt() | 0) { V = mt(y, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[O >> 2] | 0; c[O >> 2] = C + 1; a[C >> 0] = V; } dt() | 0; V = mt(v, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[L >> 2] | 0; c[L >> 2] = C + 1; a[C >> 0] = V; dt() | 0; V = mt(w, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[M >> 2] | 0; c[M >> 2] = C + 1; a[C >> 0] = V; dt() | 0; V = mt(x, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[N >> 2] | 0; c[N >> 2] = C + 1; a[C >> 0] = V; dt() | 0; V = mt(y, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[O >> 2] | 0; c[O >> 2] = C + 1; a[C >> 0] = V; if (dt() | 0) { V = mt(v, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[L >> 2] | 0; c[L >> 2] = C + 1; a[C >> 0] = V; } if (dt() | 0) { V = mt(w, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[M >> 2] | 0; c[M >> 2] = C + 1; a[C >> 0] = V; } if (dt() | 0) { V = mt(x, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[N >> 2] | 0; c[N >> 2] = C + 1; a[C >> 0] = V; } if (dt() | 0) { V = mt(y, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[O >> 2] | 0; c[O >> 2] = C + 1; a[C >> 0] = V; } V = mt(v, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[L >> 2] | 0; c[L >> 2] = C + 1; a[C >> 0] = V; V = mt(w, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[M >> 2] | 0; c[M >> 2] = C + 1; a[C >> 0] = V; V = mt(x, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[N >> 2] | 0; c[N >> 2] = C + 1; a[C >> 0] = V; V = mt(y, c[u >> 2] | 0, c[R >> 2] | 0) | 0; C = c[O >> 2] | 0; c[O >> 2] = C + 1; a[C >> 0] = V; V = Fs(v) | 0; C = V | (Fs(w) | 0); V = C | (Fs(x) | 0); c[P >> 2] = V | (Fs(y) | 0); } if ((c[L >> 2] | 0) >>> 0 > (c[I >> 2] | 0) >>> 0) { c[j >> 2] = -20; W = c[j >> 2] | 0; l = i; return W | 0; } if ((c[M >> 2] | 0) >>> 0 > (c[J >> 2] | 0) >>> 0) { c[j >> 2] = -20; W = c[j >> 2] | 0; l = i; return W | 0; } if ((c[N >> 2] | 0) >>> 0 > (c[K >> 2] | 0) >>> 0) { c[j >> 2] = -20; W = c[j >> 2] | 0; l = i; return W | 0; } nt( c[L >> 2] | 0, v, c[I >> 2] | 0, c[u >> 2] | 0, c[R >> 2] | 0 ) | 0; nt( c[M >> 2] | 0, w, c[J >> 2] | 0, c[u >> 2] | 0, c[R >> 2] | 0 ) | 0; nt( c[N >> 2] | 0, x, c[K >> 2] | 0, c[u >> 2] | 0, c[R >> 2] | 0 ) | 0; nt( c[O >> 2] | 0, y, c[s >> 2] | 0, c[u >> 2] | 0, c[R >> 2] | 0 ) | 0; R = ct(v) | 0; v = R & (ct(w) | 0); w = v & (ct(x) | 0); c[P >> 2] = w & (ct(y) | 0); if (c[P >> 2] | 0) { c[j >> 2] = c[m >> 2]; W = c[j >> 2] | 0; l = i; return W | 0; } else { c[j >> 2] = -20; W = c[j >> 2] | 0; l = i; return W | 0; } return 0; } function mt(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 4) | 0; k = g; m = (g + 16) | 0; c[h >> 2] = b; c[i >> 2] = e; c[j >> 2] = f; c[k >> 2] = gt(c[h >> 2] | 0, c[j >> 2] | 0) | 0; a[m >> 0] = a[((c[i >> 2] | 0) + (c[k >> 2] << 1)) >> 0] | 0; Ps( c[h >> 2] | 0, d[((c[i >> 2] | 0) + (c[k >> 2] << 1) + 1) >> 0] | 0 ); l = g; return a[m >> 0] | 0; } function nt(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 20) | 0; j = (h + 16) | 0; k = (h + 12) | 0; m = (h + 8) | 0; n = (h + 4) | 0; o = h; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = c[i >> 2]; while (1) { if (Fs(c[j >> 2] | 0) | 0) break; if ( (c[i >> 2] | 0) >>> 0 > (((c[k >> 2] | 0) + -4) | 0) >>> 0 ) break; if (dt() | 0) { g = mt(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } dt() | 0; g = mt(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; if (dt() | 0) { g = mt(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } g = mt(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } while (1) { if (Fs(c[j >> 2] | 0) | 0) break; if ((c[i >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; g = mt(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } while (1) { if ((c[i >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; g = mt(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } l = h; return ((c[k >> 2] | 0) - (c[o >> 2] | 0)) | 0; } function ot(b, e, f, g, h, i, j) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0; k = l; l = (l + 80) | 0; m = (k + 72) | 0; n = (k + 68) | 0; o = (k + 64) | 0; p = (k + 60) | 0; q = (k + 56) | 0; r = (k + 52) | 0; s = (k + 48) | 0; t = (k + 44) | 0; u = (k + 40) | 0; v = (k + 36) | 0; w = (k + 32) | 0; x = (k + 28) | 0; y = (k + 24) | 0; z = (k + 20) | 0; A = (k + 16) | 0; B = (k + 12) | 0; C = (k + 8) | 0; D = (k + 4) | 0; E = k; c[n >> 2] = b; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[v >> 2] = c[s >> 2]; if (!(c[t >> 2] | 0)) { c[m >> 2] = -72; F = c[m >> 2] | 0; l = k; return F | 0; } c[w >> 2] = d[c[v >> 2] >> 0]; s = c[w >> 2] | 0; a: do { if ((c[w >> 2] | 0) >>> 0 < 128) { if (((s + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) { c[m >> 2] = -72; F = c[m >> 2] | 0; l = k; return F | 0; } c[x >> 2] = pt( c[n >> 2] | 0, ((c[o >> 2] | 0) - 1) | 0, ((c[v >> 2] | 0) + 1) | 0, c[w >> 2] | 0 ) | 0; if (qt(c[x >> 2] | 0) | 0) { c[m >> 2] = c[x >> 2]; F = c[m >> 2] | 0; l = k; return F | 0; } } else { j = c[w >> 2] | 0; if (s >>> 0 >= 242) { c[x >> 2] = c[(7392 + ((j - 242) << 2)) >> 2]; oE(c[n >> 2] | 0, 1, c[o >> 2] | 0) | 0; c[w >> 2] = 0; break; } c[x >> 2] = j - 127; c[w >> 2] = (((((c[x >> 2] | 0) + 1) | 0) >>> 0) / 2) | 0; if ( (((c[w >> 2] | 0) + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[m >> 2] = -72; F = c[m >> 2] | 0; l = k; return F | 0; } if ((c[x >> 2] | 0) >>> 0 >= (c[o >> 2] | 0) >>> 0) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } c[v >> 2] = (c[v >> 2] | 0) + 1; c[y >> 2] = 0; while (1) { if ((c[y >> 2] | 0) >>> 0 >= (c[x >> 2] | 0) >>> 0) break a; a[((c[n >> 2] | 0) + (c[y >> 2] | 0)) >> 0] = (d[ ((c[v >> 2] | 0) + ((((c[y >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) >> 4; a[((c[n >> 2] | 0) + ((c[y >> 2] | 0) + 1)) >> 0] = (d[ ((c[v >> 2] | 0) + ((((c[y >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) & 15; c[y >> 2] = (c[y >> 2] | 0) + 2; } } } while (0); y = c[p >> 2] | 0; v = (y + 68) | 0; do { c[y >> 2] = 0; y = (y + 4) | 0; } while ((y | 0) < (v | 0)); c[u >> 2] = 0; c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[x >> 2] | 0) >>> 0) break; if ( (d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0 | 0) >= 16 ) { G = 20; break; } y = ((c[p >> 2] | 0) + ((d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0) << 2)) | 0; c[y >> 2] = (c[y >> 2] | 0) + 1; c[u >> 2] = (c[u >> 2] | 0) + ((1 << (d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0)) >> 1); c[z >> 2] = (c[z >> 2] | 0) + 1; } if ((G | 0) == 20) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } if (!(c[u >> 2] | 0)) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } c[A >> 2] = (Rs(c[u >> 2] | 0) | 0) + 1; if ((c[A >> 2] | 0) >>> 0 > 16) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } c[c[r >> 2] >> 2] = c[A >> 2]; c[B >> 2] = 1 << c[A >> 2]; c[C >> 2] = (c[B >> 2] | 0) - (c[u >> 2] | 0); c[D >> 2] = 1 << (Rs(c[C >> 2] | 0) | 0); c[E >> 2] = (Rs(c[C >> 2] | 0) | 0) + 1; if ((c[D >> 2] | 0) != (c[C >> 2] | 0)) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } a[((c[n >> 2] | 0) + (c[x >> 2] | 0)) >> 0] = c[E >> 2]; n = ((c[p >> 2] | 0) + (c[E >> 2] << 2)) | 0; c[n >> 2] = (c[n >> 2] | 0) + 1; if ( (c[((c[p >> 2] | 0) + 4) >> 2] | 0) >>> 0 >= 2 ? ((c[((c[p >> 2] | 0) + 4) >> 2] & 1) | 0) == 0 : 0 ) { c[c[q >> 2] >> 2] = (c[x >> 2] | 0) + 1; c[m >> 2] = (c[w >> 2] | 0) + 1; F = c[m >> 2] | 0; l = k; return F | 0; } c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } function pt(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; f = l; l = (l + 16960) | 0; g = (f + 16952) | 0; h = (f + 16948) | 0; i = (f + 16944) | 0; j = (f + 16940) | 0; k = (f + 16936) | 0; m = (f + 16932) | 0; n = (f + 16928) | 0; o = (f + 16400) | 0; p = f; q = (f + 16924) | 0; r = (f + 16920) | 0; s = (f + 16916) | 0; t = (f + 16912) | 0; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = c[j >> 2]; c[n >> 2] = c[m >> 2]; c[r >> 2] = 255; if ((c[k >> 2] | 0) >>> 0 < 2) { c[g >> 2] = -72; u = c[g >> 2] | 0; l = f; return u | 0; } c[s >> 2] = Vs(o, r, q, c[m >> 2] | 0, c[k >> 2] | 0) | 0; m = (hr(c[s >> 2] | 0) | 0) != 0; j = c[s >> 2] | 0; if (m) { c[g >> 2] = j; u = c[g >> 2] | 0; l = f; return u | 0; } if (j >>> 0 >= (c[k >> 2] | 0) >>> 0) { c[g >> 2] = -72; u = c[g >> 2] | 0; l = f; return u | 0; } c[n >> 2] = (c[n >> 2] | 0) + (c[s >> 2] | 0); c[k >> 2] = (c[k >> 2] | 0) - (c[s >> 2] | 0); c[t >> 2] = Us(p, o, c[r >> 2] | 0, c[q >> 2] | 0) | 0; if (hr(c[t >> 2] | 0) | 0) { c[g >> 2] = c[t >> 2]; u = c[g >> 2] | 0; l = f; return u | 0; } else { c[g >> 2] = rt( c[h >> 2] | 0, c[i >> 2] | 0, c[n >> 2] | 0, c[k >> 2] | 0, p ) | 0; u = c[g >> 2] | 0; l = f; return u | 0; } return 0; } function qt(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = hr(c[d >> 2] | 0) | 0; l = b; return a | 0; } function rt(b, d, f, g, h) { b = b | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0; i = l; l = (l + 208) | 0; j = (i + 192) | 0; k = (i + 188) | 0; m = (i + 184) | 0; n = (i + 180) | 0; o = (i + 176) | 0; p = (i + 172) | 0; q = (i + 168) | 0; r = (i + 164) | 0; s = (i + 160) | 0; t = (i + 156) | 0; u = (i + 152) | 0; v = (i + 136) | 0; w = (i + 128) | 0; x = (i + 120) | 0; y = (i + 116) | 0; z = (i + 112) | 0; A = (i + 108) | 0; B = (i + 104) | 0; C = (i + 100) | 0; D = (i + 96) | 0; E = (i + 92) | 0; F = (i + 88) | 0; G = (i + 84) | 0; H = (i + 80) | 0; I = (i + 76) | 0; J = (i + 72) | 0; K = (i + 56) | 0; L = (i + 48) | 0; M = (i + 40) | 0; N = (i + 36) | 0; O = (i + 32) | 0; P = (i + 28) | 0; Q = (i + 24) | 0; R = (i + 20) | 0; S = (i + 16) | 0; T = (i + 12) | 0; U = (i + 8) | 0; V = (i + 4) | 0; W = i; c[P >> 2] = b; c[Q >> 2] = d; c[R >> 2] = f; c[S >> 2] = g; c[T >> 2] = h; c[U >> 2] = c[T >> 2]; c[V >> 2] = c[U >> 2]; c[W >> 2] = e[((c[V >> 2] | 0) + 2) >> 1]; V = c[P >> 2] | 0; P = c[Q >> 2] | 0; Q = c[R >> 2] | 0; R = c[S >> 2] | 0; S = c[T >> 2] | 0; if (c[W >> 2] | 0) { c[A >> 2] = V; c[B >> 2] = P; c[C >> 2] = Q; c[D >> 2] = R; c[E >> 2] = S; c[F >> 2] = 1; c[G >> 2] = c[A >> 2]; c[H >> 2] = c[G >> 2]; c[I >> 2] = (c[H >> 2] | 0) + (c[B >> 2] | 0); c[J >> 2] = (c[I >> 2] | 0) + -3; c[N >> 2] = Ds(K, c[C >> 2] | 0, c[D >> 2] | 0) | 0; do { if (hr(c[N >> 2] | 0) | 0) c[z >> 2] = c[N >> 2]; else { Es(L, K, c[E >> 2] | 0); Es(M, K, c[E >> 2] | 0); while (1) { if (Fs(K) | 0) break; if ((c[H >> 2] | 0) >>> 0 >= (c[J >> 2] | 0) >>> 0) break; if (c[F >> 2] | 0) X = (st(L, K) | 0) & 255; else X = (tt(L, K) | 0) & 255; a[c[H >> 2] >> 0] = X; if (c[F >> 2] | 0) Y = (st(M, K) | 0) & 255; else Y = (tt(M, K) | 0) & 255; a[((c[H >> 2] | 0) + 1) >> 0] = Y; if ((Fs(K) | 0) >>> 0 > 0) { Z = 14; break; } if (c[F >> 2] | 0) _ = (st(L, K) | 0) & 255; else _ = (tt(L, K) | 0) & 255; a[((c[H >> 2] | 0) + 2) >> 0] = _; if (c[F >> 2] | 0) $ = (st(M, K) | 0) & 255; else $ = (tt(M, K) | 0) & 255; a[((c[H >> 2] | 0) + 3) >> 0] = $; c[H >> 2] = (c[H >> 2] | 0) + 4; } if ((Z | 0) == 14) c[H >> 2] = (c[H >> 2] | 0) + 2; while (1) { if ( (c[H >> 2] | 0) >>> 0 > (((c[I >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 24; break; } if (c[F >> 2] | 0) aa = (st(L, K) | 0) & 255; else aa = (tt(L, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = aa; if ((Fs(K) | 0) == 3) { Z = 29; break; } if ( (c[H >> 2] | 0) >>> 0 > (((c[I >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 34; break; } if (c[F >> 2] | 0) ba = (st(M, K) | 0) & 255; else ba = (tt(M, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = ba; if ((Fs(K) | 0) == 3) { Z = 39; break; } } if ((Z | 0) == 24) { c[z >> 2] = -70; break; } else if ((Z | 0) == 29) { if (c[F >> 2] | 0) ca = (st(M, K) | 0) & 255; else ca = (tt(M, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = ca; } else if ((Z | 0) == 34) { c[z >> 2] = -70; break; } else if ((Z | 0) == 39) { if (c[F >> 2] | 0) da = (st(L, K) | 0) & 255; else da = (tt(L, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = da; } c[z >> 2] = (c[H >> 2] | 0) - (c[G >> 2] | 0); } } while (0); c[O >> 2] = c[z >> 2]; ea = c[O >> 2] | 0; l = i; return ea | 0; } else { c[k >> 2] = V; c[m >> 2] = P; c[n >> 2] = Q; c[o >> 2] = R; c[p >> 2] = S; c[q >> 2] = 0; c[r >> 2] = c[k >> 2]; c[s >> 2] = c[r >> 2]; c[t >> 2] = (c[s >> 2] | 0) + (c[m >> 2] | 0); c[u >> 2] = (c[t >> 2] | 0) + -3; c[y >> 2] = Ds(v, c[n >> 2] | 0, c[o >> 2] | 0) | 0; do { if (hr(c[y >> 2] | 0) | 0) c[j >> 2] = c[y >> 2]; else { Es(w, v, c[p >> 2] | 0); Es(x, v, c[p >> 2] | 0); while (1) { if (Fs(v) | 0) break; if ((c[s >> 2] | 0) >>> 0 >= (c[u >> 2] | 0) >>> 0) break; if (c[q >> 2] | 0) fa = (st(w, v) | 0) & 255; else fa = (tt(w, v) | 0) & 255; a[c[s >> 2] >> 0] = fa; if (c[q >> 2] | 0) ga = (st(x, v) | 0) & 255; else ga = (tt(x, v) | 0) & 255; a[((c[s >> 2] | 0) + 1) >> 0] = ga; if ((Fs(v) | 0) >>> 0 > 0) { Z = 58; break; } if (c[q >> 2] | 0) ha = (st(w, v) | 0) & 255; else ha = (tt(w, v) | 0) & 255; a[((c[s >> 2] | 0) + 2) >> 0] = ha; if (c[q >> 2] | 0) ia = (st(x, v) | 0) & 255; else ia = (tt(x, v) | 0) & 255; a[((c[s >> 2] | 0) + 3) >> 0] = ia; c[s >> 2] = (c[s >> 2] | 0) + 4; } if ((Z | 0) == 58) c[s >> 2] = (c[s >> 2] | 0) + 2; while (1) { if ( (c[s >> 2] | 0) >>> 0 > (((c[t >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 68; break; } if (c[q >> 2] | 0) ja = (st(w, v) | 0) & 255; else ja = (tt(w, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ja; if ((Fs(v) | 0) == 3) { Z = 73; break; } if ( (c[s >> 2] | 0) >>> 0 > (((c[t >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 78; break; } if (c[q >> 2] | 0) ka = (st(x, v) | 0) & 255; else ka = (tt(x, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ka; if ((Fs(v) | 0) == 3) { Z = 83; break; } } if ((Z | 0) == 68) { c[j >> 2] = -70; break; } else if ((Z | 0) == 73) { if (c[q >> 2] | 0) la = (st(x, v) | 0) & 255; else la = (tt(x, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = la; } else if ((Z | 0) == 78) { c[j >> 2] = -70; break; } else if ((Z | 0) == 83) { if (c[q >> 2] | 0) ma = (st(w, v) | 0) & 255; else ma = (tt(w, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ma; } c[j >> 2] = (c[s >> 2] | 0) - (c[r >> 2] | 0); } } while (0); c[O >> 2] = c[j >> 2]; ea = c[O >> 2] | 0; l = i; return ea | 0; } return 0; } function st(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = ut(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function tt(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = Ms(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function ut(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = gt(c[e >> 2] | 0, c[f >> 2] | 0) | 0; Ps(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function vt(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0; g = l; l = (l + 2144) | 0; h = (g + 2124) | 0; i = (g + 2120) | 0; j = (g + 2116) | 0; k = (g + 2112) | 0; m = (g + 1760) | 0; n = (g + 1248) | 0; o = (g + 1168) | 0; p = (g + 1088) | 0; q = (g + 2108) | 0; r = g; s = (g + 2104) | 0; t = (g + 2100) | 0; u = (g + 2096) | 0; v = (g + 2092) | 0; w = (g + 2128) | 0; x = (g + 2088) | 0; y = (g + 2084) | 0; z = (g + 2080) | 0; A = (g + 2076) | 0; B = (g + 2072) | 0; C = (g + 2068) | 0; D = (g + 2064) | 0; E = (g + 2060) | 0; F = (g + 2056) | 0; G = (g + 2052) | 0; H = (g + 2048) | 0; I = (g + 2044) | 0; J = (g + 2040) | 0; K = (g + 2036) | 0; L = (g + 2032) | 0; M = (g + 2028) | 0; N = (g + 2024) | 0; O = (g + 2020) | 0; P = (g + 2016) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; f = o; e = (f + 68) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (e | 0)); f = p; e = (f + 72) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (e | 0)); c[q >> 2] = p + 4; _s(w, c[i >> 2] | 0); c[x >> 2] = d[w >> 0]; c[z >> 2] = (c[i >> 2] | 0) + 4; c[A >> 2] = c[z >> 2]; if ((c[x >> 2] | 0) >>> 0 > 16) { c[h >> 2] = -44; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[y >> 2] = ot(m, 256, o, v, s, c[j >> 2] | 0, c[k >> 2] | 0) | 0; if (at(c[y >> 2] | 0) | 0) { c[h >> 2] = c[y >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } if ((c[s >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0) { c[h >> 2] = -44; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[t >> 2] = c[s >> 2]; while (1) { if (c[(o + (c[t >> 2] << 2)) >> 2] | 0) break; c[t >> 2] = (c[t >> 2] | 0) + -1; } c[C >> 2] = 0; c[B >> 2] = 1; while (1) { R = c[C >> 2] | 0; if ( (c[B >> 2] | 0) >>> 0 >= (((c[t >> 2] | 0) + 1) | 0) >>> 0 ) break; c[D >> 2] = R; c[C >> 2] = (c[C >> 2] | 0) + (c[(o + (c[B >> 2] << 2)) >> 2] | 0); c[((c[q >> 2] | 0) + (c[B >> 2] << 2)) >> 2] = c[D >> 2]; c[B >> 2] = (c[B >> 2] | 0) + 1; } c[c[q >> 2] >> 2] = R; c[u >> 2] = c[C >> 2]; c[E >> 2] = 0; while (1) { if ((c[E >> 2] | 0) >>> 0 >= (c[v >> 2] | 0) >>> 0) break; c[F >> 2] = d[(m + (c[E >> 2] | 0)) >> 0]; C = ((c[q >> 2] | 0) + (c[F >> 2] << 2)) | 0; R = c[C >> 2] | 0; c[C >> 2] = R + 1; c[G >> 2] = R; a[(n + (c[G >> 2] << 1)) >> 0] = c[E >> 2]; a[(n + (c[G >> 2] << 1) + 1) >> 0] = c[F >> 2]; c[E >> 2] = (c[E >> 2] | 0) + 1; } c[c[q >> 2] >> 2] = 0; c[H >> 2] = r; c[I >> 2] = (c[x >> 2] | 0) - (c[s >> 2] | 0) - 1; c[J >> 2] = 0; c[K >> 2] = 1; while (1) { if ( (c[K >> 2] | 0) >>> 0 >= (((c[t >> 2] | 0) + 1) | 0) >>> 0 ) break; c[L >> 2] = c[J >> 2]; c[J >> 2] = (c[J >> 2] | 0) + (c[(o + (c[K >> 2] << 2)) >> 2] << ((c[K >> 2] | 0) + (c[I >> 2] | 0))); c[((c[H >> 2] | 0) + (c[K >> 2] << 2)) >> 2] = c[L >> 2]; c[K >> 2] = (c[K >> 2] | 0) + 1; } c[M >> 2] = (c[s >> 2] | 0) + 1 - (c[t >> 2] | 0); c[N >> 2] = c[M >> 2]; while (1) { if ( (c[N >> 2] | 0) >>> 0 >= (((c[x >> 2] | 0) - (c[M >> 2] | 0) + 1) | 0) >>> 0 ) break; c[O >> 2] = r + (((c[N >> 2] | 0) * 68) | 0); c[P >> 2] = 1; while (1) { if ( (c[P >> 2] | 0) >>> 0 >= (((c[t >> 2] | 0) + 1) | 0) >>> 0 ) break; c[((c[O >> 2] | 0) + (c[P >> 2] << 2)) >> 2] = (c[((c[H >> 2] | 0) + (c[P >> 2] << 2)) >> 2] | 0) >>> (c[N >> 2] | 0); c[P >> 2] = (c[P >> 2] | 0) + 1; } c[N >> 2] = (c[N >> 2] | 0) + 1; } xt( c[A >> 2] | 0, c[x >> 2] | 0, n, c[u >> 2] | 0, p, r, c[t >> 2] | 0, ((c[s >> 2] | 0) + 1) | 0 ); a[(w + 2) >> 0] = c[x >> 2]; a[(w + 1) >> 0] = 1; x = c[i >> 2] | 0; a[x >> 0] = a[w >> 0] | 0; a[(x + 1) >> 0] = a[(w + 1) >> 0] | 0; a[(x + 2) >> 0] = a[(w + 2) >> 0] | 0; a[(x + 3) >> 0] = a[(w + 3) >> 0] | 0; c[h >> 2] = c[y >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } function wt(a, b, e, f, g) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0; h = l; l = (l + 208) | 0; i = (h + 200) | 0; j = (h + 196) | 0; k = (h + 192) | 0; m = (h + 188) | 0; n = (h + 184) | 0; o = (h + 180) | 0; p = (h + 176) | 0; q = (h + 172) | 0; r = (h + 168) | 0; s = (h + 164) | 0; t = (h + 160) | 0; u = (h + 144) | 0; v = (h + 128) | 0; w = (h + 112) | 0; x = (h + 96) | 0; y = (h + 88) | 0; z = (h + 84) | 0; A = (h + 80) | 0; B = (h + 76) | 0; C = (h + 72) | 0; D = (h + 68) | 0; E = (h + 64) | 0; F = (h + 60) | 0; G = (h + 56) | 0; H = (h + 52) | 0; I = (h + 48) | 0; J = (h + 44) | 0; K = (h + 40) | 0; L = (h + 36) | 0; M = (h + 32) | 0; N = (h + 28) | 0; O = (h + 24) | 0; P = (h + 204) | 0; Q = (h + 20) | 0; R = (h + 16) | 0; S = (h + 12) | 0; T = (h + 8) | 0; U = (h + 4) | 0; V = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; if ((c[n >> 2] | 0) >>> 0 < 10) { c[i >> 2] = -20; W = c[i >> 2] | 0; l = h; return W | 0; } c[p >> 2] = c[m >> 2]; c[q >> 2] = c[j >> 2]; c[r >> 2] = (c[q >> 2] | 0) + (c[k >> 2] | 0); c[s >> 2] = (c[o >> 2] | 0) + 4; c[t >> 2] = c[s >> 2]; c[y >> 2] = (Eq(c[p >> 2] | 0) | 0) & 65535; c[z >> 2] = (Eq(((c[p >> 2] | 0) + 2) | 0) | 0) & 65535; c[A >> 2] = (Eq(((c[p >> 2] | 0) + 4) | 0) | 0) & 65535; c[B >> 2] = (c[n >> 2] | 0) - ((c[y >> 2] | 0) + (c[z >> 2] | 0) + (c[A >> 2] | 0) + 6); c[C >> 2] = (c[p >> 2] | 0) + 6; c[D >> 2] = (c[C >> 2] | 0) + (c[y >> 2] | 0); c[E >> 2] = (c[D >> 2] | 0) + (c[z >> 2] | 0); c[F >> 2] = (c[E >> 2] | 0) + (c[A >> 2] | 0); c[G >> 2] = (((((c[k >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[H >> 2] = (c[q >> 2] | 0) + (c[G >> 2] | 0); c[I >> 2] = (c[H >> 2] | 0) + (c[G >> 2] | 0); c[J >> 2] = (c[I >> 2] | 0) + (c[G >> 2] | 0); c[K >> 2] = c[q >> 2]; c[L >> 2] = c[H >> 2]; c[M >> 2] = c[I >> 2]; c[N >> 2] = c[J >> 2]; _s(P, c[o >> 2] | 0); c[Q >> 2] = d[(P + 2) >> 0]; if ((c[B >> 2] | 0) >>> 0 > (c[n >> 2] | 0) >>> 0) { c[i >> 2] = -20; W = c[i >> 2] | 0; l = h; return W | 0; } c[R >> 2] = Ds(u, c[C >> 2] | 0, c[y >> 2] | 0) | 0; if (at(c[R >> 2] | 0) | 0) { c[i >> 2] = c[R >> 2]; W = c[i >> 2] | 0; l = h; return W | 0; } c[S >> 2] = Ds(v, c[D >> 2] | 0, c[z >> 2] | 0) | 0; if (at(c[S >> 2] | 0) | 0) { c[i >> 2] = c[S >> 2]; W = c[i >> 2] | 0; l = h; return W | 0; } c[T >> 2] = Ds(w, c[E >> 2] | 0, c[A >> 2] | 0) | 0; if (at(c[T >> 2] | 0) | 0) { c[i >> 2] = c[T >> 2]; W = c[i >> 2] | 0; l = h; return W | 0; } c[U >> 2] = Ds(x, c[F >> 2] | 0, c[B >> 2] | 0) | 0; if (at(c[U >> 2] | 0) | 0) { c[i >> 2] = c[U >> 2]; W = c[i >> 2] | 0; l = h; return W | 0; } U = Fs(u) | 0; B = U | (Fs(v) | 0); U = B | (Fs(w) | 0); c[O >> 2] = U | (Fs(x) | 0); while (1) { if (c[O >> 2] | 0) break; if ( (c[N >> 2] | 0) >>> 0 >= (((c[r >> 2] | 0) + -7) | 0) >>> 0 ) break; if (dt() | 0) { U = et(c[K >> 2] | 0, u, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[K >> 2] = (c[K >> 2] | 0) + U; } if (dt() | 0) { U = et(c[L >> 2] | 0, v, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + U; } if (dt() | 0) { U = et(c[M >> 2] | 0, w, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + U; } if (dt() | 0) { U = et(c[N >> 2] | 0, x, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + U; } dt() | 0; U = et(c[K >> 2] | 0, u, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[K >> 2] = (c[K >> 2] | 0) + U; dt() | 0; U = et(c[L >> 2] | 0, v, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + U; dt() | 0; U = et(c[M >> 2] | 0, w, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + U; dt() | 0; U = et(c[N >> 2] | 0, x, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + U; if (dt() | 0) { U = et(c[K >> 2] | 0, u, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[K >> 2] = (c[K >> 2] | 0) + U; } if (dt() | 0) { U = et(c[L >> 2] | 0, v, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + U; } if (dt() | 0) { U = et(c[M >> 2] | 0, w, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + U; } if (dt() | 0) { U = et(c[N >> 2] | 0, x, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + U; } U = et(c[K >> 2] | 0, u, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[K >> 2] = (c[K >> 2] | 0) + U; U = et(c[L >> 2] | 0, v, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + U; U = et(c[M >> 2] | 0, w, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + U; U = et(c[N >> 2] | 0, x, c[t >> 2] | 0, c[Q >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + U; U = Fs(u) | 0; B = U | (Fs(v) | 0); U = B | (Fs(w) | 0); c[O >> 2] = U | (Fs(x) | 0); } if ((c[K >> 2] | 0) >>> 0 > (c[H >> 2] | 0) >>> 0) { c[i >> 2] = -20; W = c[i >> 2] | 0; l = h; return W | 0; } if ((c[L >> 2] | 0) >>> 0 > (c[I >> 2] | 0) >>> 0) { c[i >> 2] = -20; W = c[i >> 2] | 0; l = h; return W | 0; } if ((c[M >> 2] | 0) >>> 0 > (c[J >> 2] | 0) >>> 0) { c[i >> 2] = -20; W = c[i >> 2] | 0; l = h; return W | 0; } bt( c[K >> 2] | 0, u, c[H >> 2] | 0, c[t >> 2] | 0, c[Q >> 2] | 0 ) | 0; bt( c[L >> 2] | 0, v, c[I >> 2] | 0, c[t >> 2] | 0, c[Q >> 2] | 0 ) | 0; bt( c[M >> 2] | 0, w, c[J >> 2] | 0, c[t >> 2] | 0, c[Q >> 2] | 0 ) | 0; bt( c[N >> 2] | 0, x, c[r >> 2] | 0, c[t >> 2] | 0, c[Q >> 2] | 0 ) | 0; Q = ct(u) | 0; u = Q & (ct(v) | 0); v = u & (ct(w) | 0); c[V >> 2] = v & (ct(x) | 0); if (c[V >> 2] | 0) { c[i >> 2] = c[k >> 2]; W = c[i >> 2] | 0; l = h; return W | 0; } else { c[i >> 2] = -20; W = c[i >> 2] | 0; l = h; return W | 0; } return 0; } function xt(e, f, g, h, i, j, k, m) { e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0; n = l; l = (l + 160) | 0; o = (n + 140) | 0; p = (n + 136) | 0; q = (n + 132) | 0; r = (n + 128) | 0; s = (n + 124) | 0; t = (n + 120) | 0; u = (n + 116) | 0; v = (n + 112) | 0; w = n; x = (n + 108) | 0; y = (n + 104) | 0; z = (n + 100) | 0; A = (n + 148) | 0; B = (n + 96) | 0; C = (n + 92) | 0; D = (n + 88) | 0; E = (n + 84) | 0; F = (n + 80) | 0; G = (n + 76) | 0; H = (n + 144) | 0; I = (n + 72) | 0; J = (n + 68) | 0; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = k; c[v >> 2] = m; c[x >> 2] = (c[v >> 2] | 0) - (c[p >> 2] | 0); c[y >> 2] = (c[v >> 2] | 0) - (c[u >> 2] | 0); u = w; m = c[t >> 2] | 0; k = (u + 68) | 0; do { c[u >> 2] = c[m >> 2]; u = (u + 4) | 0; m = (m + 4) | 0; } while ((u | 0) < (k | 0)); c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[r >> 2] | 0) >>> 0) break; b[A >> 1] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1)) >> 0] | 0; c[B >> 2] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1) + 1) >> 0]; c[C >> 2] = (c[v >> 2] | 0) - (c[B >> 2] | 0); c[D >> 2] = c[(w + (c[B >> 2] << 2)) >> 2]; c[E >> 2] = 1 << ((c[p >> 2] | 0) - (c[C >> 2] | 0)); a: do { if ( (((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0 ) { m = ((c[C >> 2] | 0) + (c[x >> 2] | 0)) | 0; c[G >> 2] = m; c[G >> 2] = (c[G >> 2] | 0) < 1 ? 1 : m; c[F >> 2] = c[((c[s >> 2] | 0) + (c[G >> 2] << 2)) >> 2]; yt( ((c[o >> 2] | 0) + (c[D >> 2] << 2)) | 0, ((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0, c[C >> 2] | 0, ((c[t >> 2] | 0) + (((c[C >> 2] | 0) * 68) | 0)) | 0, c[G >> 2] | 0, ((c[q >> 2] | 0) + (c[F >> 2] << 1)) | 0, ((c[r >> 2] | 0) - (c[F >> 2] | 0)) | 0, c[v >> 2] | 0, b[A >> 1] | 0 ); } else { zt(H, b[A >> 1] | 0); a[(H + 2) >> 0] = c[C >> 2]; a[(H + 3) >> 0] = 1; c[J >> 2] = (c[D >> 2] | 0) + (c[E >> 2] | 0); c[I >> 2] = c[D >> 2]; while (1) { if ((c[I >> 2] | 0) >>> 0 >= (c[J >> 2] | 0) >>> 0) break a; m = ((c[o >> 2] | 0) + (c[I >> 2] << 2)) | 0; b[m >> 1] = b[H >> 1] | 0; b[(m + 2) >> 1] = b[(H + 2) >> 1] | 0; c[I >> 2] = (c[I >> 2] | 0) + 1; } } } while (0); m = (w + (c[B >> 2] << 2)) | 0; c[m >> 2] = (c[m >> 2] | 0) + (c[E >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + 1; } l = n; return; } function yt(f, g, h, i, j, k, m, n, o) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; o = o | 0; var p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; p = l; l = (l + 160) | 0; q = (p + 136) | 0; r = (p + 132) | 0; s = (p + 128) | 0; t = (p + 124) | 0; u = (p + 120) | 0; v = (p + 116) | 0; w = (p + 112) | 0; x = (p + 108) | 0; y = (p + 144) | 0; z = (p + 140) | 0; A = p; B = (p + 104) | 0; C = (p + 100) | 0; D = (p + 96) | 0; E = (p + 92) | 0; F = (p + 88) | 0; G = (p + 84) | 0; H = (p + 80) | 0; I = (p + 76) | 0; J = (p + 72) | 0; K = (p + 68) | 0; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = j; c[v >> 2] = k; c[w >> 2] = m; c[x >> 2] = n; b[y >> 1] = o; o = A; n = c[t >> 2] | 0; t = (o + 68) | 0; do { c[o >> 2] = c[n >> 2]; o = (o + 4) | 0; n = (n + 4) | 0; } while ((o | 0) < (t | 0)); a: do { if ((c[u >> 2] | 0) > 1) { c[C >> 2] = c[(A + (c[u >> 2] << 2)) >> 2]; zt(z, b[y >> 1] | 0); a[(z + 2) >> 0] = c[s >> 2]; a[(z + 3) >> 0] = 1; c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 >= (c[C >> 2] | 0) >>> 0) break a; n = ((c[q >> 2] | 0) + (c[B >> 2] << 2)) | 0; b[n >> 1] = b[z >> 1] | 0; b[(n + 2) >> 1] = b[(z + 2) >> 1] | 0; c[B >> 2] = (c[B >> 2] | 0) + 1; } } } while (0); c[D >> 2] = 0; while (1) { if ((c[D >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[E >> 2] = d[((c[v >> 2] | 0) + (c[D >> 2] << 1)) >> 0]; c[F >> 2] = d[((c[v >> 2] | 0) + (c[D >> 2] << 1) + 1) >> 0]; c[G >> 2] = (c[x >> 2] | 0) - (c[F >> 2] | 0); c[H >> 2] = 1 << ((c[r >> 2] | 0) - (c[G >> 2] | 0)); c[I >> 2] = c[(A + (c[F >> 2] << 2)) >> 2]; c[J >> 2] = c[I >> 2]; c[K >> 2] = (c[I >> 2] | 0) + (c[H >> 2] | 0); zt(z, ((e[y >> 1] | 0) + (c[E >> 2] << 8)) & 65535); a[(z + 2) >> 0] = (c[G >> 2] | 0) + (c[s >> 2] | 0); a[(z + 3) >> 0] = 2; do { B = c[q >> 2] | 0; C = c[J >> 2] | 0; c[J >> 2] = C + 1; u = (B + (C << 2)) | 0; b[u >> 1] = b[z >> 1] | 0; b[(u + 2) >> 1] = b[(z + 2) >> 1] | 0; } while ((c[J >> 2] | 0) >>> 0 < (c[K >> 2] | 0) >>> 0); u = (A + (c[F >> 2] << 2)) | 0; c[u >> 2] = (c[u >> 2] | 0) + (c[H >> 2] | 0); c[D >> 2] = (c[D >> 2] | 0) + 1; } l = p; return; } function zt(d, f) { d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; g = l; l = (l + 16) | 0; h = (g + 4) | 0; i = (g + 8) | 0; j = g; c[h >> 2] = d; b[i >> 1] = f; f = (Gq() | 0) != 0; d = c[h >> 2] | 0; if (f) { At(d, b[i >> 1] | 0); l = g; return; } else { c[j >> 2] = d; a[c[j >> 2] >> 0] = b[i >> 1]; a[((c[j >> 2] | 0) + 1) >> 0] = (e[i >> 1] | 0) >> 8; l = g; return; } } function At(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = f; h = (f + 4) | 0; c[g >> 2] = d; b[h >> 1] = e; e = c[g >> 2] | 0; a[e >> 0] = a[h >> 0] | 0; a[(e + 1) >> 0] = a[(h + 1) >> 0] | 0; l = f; return; } function Bt(a, b, e, f, g) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; h = l; l = (l + 80) | 0; i = (h + 60) | 0; j = (h + 56) | 0; k = (h + 52) | 0; m = (h + 48) | 0; n = (h + 44) | 0; o = (h + 40) | 0; p = (h + 36) | 0; q = (h + 32) | 0; r = (h + 28) | 0; s = (h + 24) | 0; t = (h + 8) | 0; u = (h + 64) | 0; v = (h + 4) | 0; w = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[j >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[k >> 2] | 0); c[r >> 2] = (c[o >> 2] | 0) + 4; c[s >> 2] = c[r >> 2]; _s(u, c[o >> 2] | 0); c[v >> 2] = d[(u + 2) >> 0]; c[w >> 2] = Ds(t, c[m >> 2] | 0, c[n >> 2] | 0) | 0; if (at(c[w >> 2] | 0) | 0) { c[i >> 2] = c[w >> 2]; x = c[i >> 2] | 0; l = h; return x | 0; } nt( c[p >> 2] | 0, t, c[q >> 2] | 0, c[s >> 2] | 0, c[v >> 2] | 0 ) | 0; if (ct(t) | 0) { c[i >> 2] = c[k >> 2]; x = c[i >> 2] | 0; l = h; return x | 0; } else { c[i >> 2] = -20; x = c[i >> 2] | 0; l = h; return x | 0; } return 0; } function Ct(a) { a = a | 0; var b = 0, d = 0, e = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[d >> 2] = a; c[((c[d >> 2] | 0) + 21536) >> 2] = 5; c[((c[d >> 2] | 0) + 21580) >> 2] = 0; c[((c[d >> 2] | 0) + 21520) >> 2] = 0; c[((c[d >> 2] | 0) + 21524) >> 2] = 0; c[((c[d >> 2] | 0) + 21528) >> 2] = 0; c[((c[d >> 2] | 0) + 21532) >> 2] = 0; c[((c[d >> 2] | 0) + 5132) >> 2] = 201326604; c[((c[d >> 2] | 0) + 21588) >> 2] = 0; c[((c[d >> 2] | 0) + 21584) >> 2] = 0; c[((c[d >> 2] | 0) + 21684) >> 2] = 0; c[e >> 2] = 0; while (1) { if ((c[e >> 2] | 0) >= 3) break; c[((c[d >> 2] | 0) + 21540 + (c[e >> 2] << 2)) >> 2] = c[(11940 + (c[e >> 2] << 2)) >> 2]; c[e >> 2] = (c[e >> 2] | 0) + 1; } l = b; return 0; } function Dt(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; if ((c[i >> 2] | 0) >>> 0 < 8) { c[f >> 2] = Et(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; m = c[f >> 2] | 0; l = e; return m | 0; } c[j >> 2] = Bq(c[h >> 2] | 0) | 0; if ((c[j >> 2] | 0) != -332356553) { c[f >> 2] = Et(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; m = c[f >> 2] | 0; l = e; return m | 0; } j = Bq(((c[h >> 2] | 0) + 4) | 0) | 0; c[((c[g >> 2] | 0) + 21684) >> 2] = j; c[h >> 2] = (c[h >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) - 8; c[k >> 2] = Ft(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if (hr(c[k >> 2] | 0) | 0) { c[f >> 2] = -30; m = c[f >> 2] | 0; l = e; return m | 0; } else { c[h >> 2] = (c[h >> 2] | 0) + (c[k >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[k >> 2] | 0); c[f >> 2] = Et(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; m = c[f >> 2] | 0; l = e; return m | 0; } return 0; } function Et(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[((c[f >> 2] | 0) + 21532) >> 2] = c[((c[f >> 2] | 0) + 21520) >> 2]; c[((c[f >> 2] | 0) + 21528) >> 2] = (c[g >> 2] | 0) + (0 - ((c[((c[f >> 2] | 0) + 21520) >> 2] | 0) - (c[((c[f >> 2] | 0) + 21524) >> 2] | 0))); c[((c[f >> 2] | 0) + 21524) >> 2] = c[g >> 2]; c[((c[f >> 2] | 0) + 21520) >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return 0; } function Ft(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; e = l; l = (l + 336) | 0; f = (e + 324) | 0; g = (e + 320) | 0; h = (e + 316) | 0; i = (e + 312) | 0; j = (e + 308) | 0; k = (e + 304) | 0; m = (e + 300) | 0; n = (e + 192) | 0; o = (e + 296) | 0; p = (e + 292) | 0; q = (e + 288) | 0; r = (e + 284) | 0; s = (e + 80) | 0; t = (e + 280) | 0; u = (e + 276) | 0; v = (e + 272) | 0; w = (e + 268) | 0; x = e; y = (e + 264) | 0; z = (e + 260) | 0; A = (e + 256) | 0; B = (e + 252) | 0; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = c[h >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[i >> 2] | 0); c[m >> 2] = vt( ((c[g >> 2] | 0) + 5132) | 0, c[h >> 2] | 0, c[i >> 2] | 0 ) | 0; if (hr(c[m >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[j >> 2] = (c[j >> 2] | 0) + (c[m >> 2] | 0); c[o >> 2] = 28; c[q >> 2] = Vs( n, o, p, c[j >> 2] | 0, ((c[k >> 2] | 0) - (c[j >> 2] | 0)) | 0 ) | 0; if (hr(c[q >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } if ((c[p >> 2] | 0) >>> 0 > 8) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[r >> 2] = Us( ((c[g >> 2] | 0) + 2052) | 0, n, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; if (hr(c[r >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[j >> 2] = (c[j >> 2] | 0) + (c[q >> 2] | 0); c[t >> 2] = 52; c[v >> 2] = Vs( s, t, u, c[j >> 2] | 0, ((c[k >> 2] | 0) - (c[j >> 2] | 0)) | 0 ) | 0; if (hr(c[v >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } if ((c[u >> 2] | 0) >>> 0 > 9) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[w >> 2] = Us( ((c[g >> 2] | 0) + 3080) | 0, s, c[t >> 2] | 0, c[u >> 2] | 0 ) | 0; if (hr(c[w >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[j >> 2] = (c[j >> 2] | 0) + (c[v >> 2] | 0); c[y >> 2] = 35; c[A >> 2] = Vs( x, y, z, c[j >> 2] | 0, ((c[k >> 2] | 0) - (c[j >> 2] | 0)) | 0 ) | 0; if (hr(c[A >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } if ((c[z >> 2] | 0) >>> 0 > 9) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[B >> 2] = Us(c[g >> 2] | 0, x, c[y >> 2] | 0, c[z >> 2] | 0) | 0; if (hr(c[B >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[j >> 2] = (c[j >> 2] | 0) + (c[A >> 2] | 0); if ( (((c[j >> 2] | 0) + 12) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } k = Bq(c[j >> 2] | 0) | 0; c[((c[g >> 2] | 0) + 21540) >> 2] = k; if ( c[((c[g >> 2] | 0) + 21540) >> 2] | 0 ? (c[((c[g >> 2] | 0) + 21540) >> 2] | 0) >>> 0 < (c[i >> 2] | 0) >>> 0 : 0 ) { k = Bq(((c[j >> 2] | 0) + 4) | 0) | 0; c[((c[g >> 2] | 0) + 21540 + 4) >> 2] = k; if ( c[((c[g >> 2] | 0) + 21540 + 4) >> 2] | 0 ? (c[((c[g >> 2] | 0) + 21540 + 4) >> 2] | 0) >>> 0 < (c[i >> 2] | 0) >>> 0 : 0 ) { k = Bq(((c[j >> 2] | 0) + 8) | 0) | 0; c[((c[g >> 2] | 0) + 21540 + 8) >> 2] = k; if ( c[((c[g >> 2] | 0) + 21540 + 8) >> 2] | 0 ? (c[((c[g >> 2] | 0) + 21540 + 8) >> 2] | 0) >>> 0 < (c[i >> 2] | 0) >>> 0 : 0 ) { c[j >> 2] = (c[j >> 2] | 0) + 12; c[((c[g >> 2] | 0) + 21588) >> 2] = 1; c[((c[g >> 2] | 0) + 21584) >> 2] = 1; c[f >> 2] = (c[j >> 2] | 0) - (c[h >> 2] | 0); C = c[f >> 2] | 0; l = e; return C | 0; } c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } function Gt(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; if ((c[a >> 2] | 0) == 0 ? (c[(a + 4) >> 2] | 0) == 0 : 0) { c[a >> 2] = c[2988]; c[(a + 4) >> 2] = c[2989]; c[(a + 8) >> 2] = c[2990]; } if (c[a >> 2] | 0 ? c[(a + 4) >> 2] | 0 : 0) { c[e >> 2] = qc[c[a >> 2] & 63](c[(a + 8) >> 2] | 0, 152808) | 0; if (c[e >> 2] | 0) { f = ((c[e >> 2] | 0) + 21692) | 0; c[f >> 2] = c[a >> 2]; c[(f + 4) >> 2] = c[(a + 4) >> 2]; c[(f + 8) >> 2] = c[(a + 8) >> 2]; Ct(c[e >> 2] | 0) | 0; c[d >> 2] = c[e >> 2]; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = 0; g = c[d >> 2] | 0; l = b; return g | 0; } } c[d >> 2] = 0; g = c[d >> 2] | 0; l = b; return g | 0; } function Ht(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[(d + 8) >> 2] = a; c[e >> 2] = b; c[f >> 2] = Cy(c[e >> 2] | 0) | 0; l = d; return c[f >> 2] | 0; } function It(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; d = l; l = (l + 16) | 0; e = d; c[(d + 4) >> 2] = a; c[e >> 2] = b; Dy(c[e >> 2] | 0); l = d; return; } function Jt(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = Ou(c[g >> 2] | 0) | 0; if (jr(c[j >> 2] | 0) | 0) { c[f >> 2] = c[j >> 2]; m = c[f >> 2] | 0; l = e; return m | 0; } if ( ((c[h >> 2] | 0) != 0) & ((c[i >> 2] | 0) != 0) ? ((c[k >> 2] = Pu(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0), jr(c[k >> 2] | 0) | 0) : 0 ) { c[f >> 2] = -30; m = c[f >> 2] | 0; l = e; return m | 0; } c[f >> 2] = 0; m = c[f >> 2] | 0; l = e; return m | 0; } function Kt(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; if ( (c[f >> 2] | 0) == (c[((c[e >> 2] | 0) + 21520) >> 2] | 0) ) { l = d; return; } c[((c[e >> 2] | 0) + 21532) >> 2] = c[((c[e >> 2] | 0) + 21520) >> 2]; c[((c[e >> 2] | 0) + 21528) >> 2] = (c[f >> 2] | 0) + (0 - ((c[((c[e >> 2] | 0) + 21520) >> 2] | 0) - (c[((c[e >> 2] | 0) + 21524) >> 2] | 0))); c[((c[e >> 2] | 0) + 21524) >> 2] = c[f >> 2]; c[((c[e >> 2] | 0) + 21520) >> 2] = c[f >> 2]; l = d; return; } function Lt(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; g = l; l = (l + 80) | 0; h = (g + 68) | 0; i = (g + 64) | 0; j = (g + 60) | 0; k = (g + 56) | 0; m = (g + 52) | 0; n = (g + 48) | 0; o = (g + 44) | 0; p = (g + 40) | 0; q = (g + 36) | 0; r = (g + 32) | 0; s = (g + 28) | 0; t = (g + 24) | 0; u = (g + 16) | 0; v = (g + 8) | 0; w = (g + 4) | 0; x = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = (c[o >> 2] | 0) + (c[n >> 2] | 0); c[q >> 2] = c[j >> 2]; c[r >> 2] = c[q >> 2]; c[s >> 2] = (c[q >> 2] | 0) + (c[k >> 2] | 0); c[t >> 2] = c[n >> 2]; c[u >> 2] = 0; c[(u + 4) >> 2] = 0; if ((c[n >> 2] | 0) >>> 0 < 8) { c[h >> 2] = -72; y = c[h >> 2] | 0; l = g; return y | 0; } c[v >> 2] = Nq(c[m >> 2] | 0, 5) | 0; if (jr(c[v >> 2] | 0) | 0) { c[h >> 2] = c[v >> 2]; y = c[h >> 2] | 0; l = g; return y | 0; } if ( (c[n >> 2] | 0) >>> 0 < (((c[v >> 2] | 0) + 3) | 0) >>> 0 ) { c[h >> 2] = -72; y = c[h >> 2] | 0; l = g; return y | 0; } if (Mt(c[i >> 2] | 0, c[m >> 2] | 0, c[v >> 2] | 0) | 0) { c[h >> 2] = -20; y = c[h >> 2] | 0; l = g; return y | 0; } c[o >> 2] = (c[o >> 2] | 0) + (c[v >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) - (c[v >> 2] | 0); a: while (1) { c[w >> 2] = 0; c[x >> 2] = kr( c[o >> 2] | 0, ((c[p >> 2] | 0) - (c[o >> 2] | 0)) | 0, u ) | 0; if (jr(c[x >> 2] | 0) | 0) { z = 11; break; } c[o >> 2] = (c[o >> 2] | 0) + 3; c[t >> 2] = (c[t >> 2] | 0) - 3; if ((c[x >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) { z = 13; break; } switch (c[u >> 2] | 0) { case 2: { z = 17; break a; break; } case 0: { c[w >> 2] = Nt( c[i >> 2] | 0, c[r >> 2] | 0, ((c[s >> 2] | 0) - (c[r >> 2] | 0)) | 0, c[o >> 2] | 0, c[x >> 2] | 0 ) | 0; break; } case 1: { c[w >> 2] = Ot( c[r >> 2] | 0, ((c[s >> 2] | 0) - (c[r >> 2] | 0)) | 0, c[o >> 2] | 0, c[x >> 2] | 0 ) | 0; break; } case 3: { if (c[t >> 2] | 0) { z = 19; break a; } break; } default: { z = 20; break a; } } if (!(c[x >> 2] | 0)) { z = 25; break; } v = (jr(c[w >> 2] | 0) | 0) != 0; A = c[w >> 2] | 0; if (v) { z = 23; break; } c[r >> 2] = (c[r >> 2] | 0) + A; c[o >> 2] = (c[o >> 2] | 0) + (c[x >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); } if ((z | 0) == 11) { c[h >> 2] = c[x >> 2]; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 13) { c[h >> 2] = -72; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 17) { c[h >> 2] = -1; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 19) { c[h >> 2] = -72; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 20) { c[h >> 2] = -1; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 23) { c[h >> 2] = A; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 25) { c[h >> 2] = (c[r >> 2] | 0) - (c[q >> 2] | 0); y = c[h >> 2] | 0; l = g; return y | 0; } return 0; } function Mt(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = zq( ((c[g >> 2] | 0) + 21544) | 0, c[h >> 2] | 0, c[i >> 2] | 0 ) | 0; if ( au() | 0 ? (c[((c[g >> 2] | 0) + 21544 + 8) >> 2] | 0) >>> 0 > 25 : 0 ) { c[f >> 2] = -14; k = c[f >> 2] | 0; l = e; return k | 0; } c[f >> 2] = c[j >> 2]; k = c[f >> 2] | 0; l = e; return k | 0; } function Nt(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; if ((c[n >> 2] | 0) >>> 0 >= 131072) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } c[p >> 2] = Pt(c[i >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; m = (jr(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (m) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + f; c[n >> 2] = (c[n >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = Qt( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[o >> 2] | 0, c[n >> 2] | 0 ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function Ot(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; if ((c[k >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) { c[g >> 2] = -70; m = c[g >> 2] | 0; l = f; return m | 0; } else { mE(c[h >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0) | 0; c[g >> 2] = c[k >> 2]; m = c[g >> 2] | 0; l = f; return m | 0; } return 0; } function Pt(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; g = l; l = (l + 80) | 0; h = (g + 64) | 0; i = (g + 60) | 0; j = (g + 56) | 0; k = (g + 52) | 0; m = (g + 48) | 0; n = (g + 44) | 0; o = (g + 40) | 0; p = (g + 36) | 0; q = (g + 32) | 0; r = (g + 28) | 0; s = (g + 24) | 0; t = (g + 20) | 0; u = (g + 16) | 0; v = (g + 12) | 0; w = (g + 8) | 0; x = (g + 4) | 0; y = g; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = c[j >> 2]; if ((c[k >> 2] | 0) >>> 0 < 3) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } switch (((d[c[m >> 2] >> 0] | 0) >> 6) | 0) { case 0: { c[p >> 2] = 0; c[q >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; if ((c[k >> 2] | 0) >>> 0 < 5) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } switch (c[q >> 2] | 0) { case 3: { c[q >> 2] = 5; c[n >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 14) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 6) + ((d[((c[m >> 2] | 0) + 2) >> 0] | 0) >> 2); c[o >> 2] = (((d[((c[m >> 2] | 0) + 2) >> 0] | 0) & 3) << 16) + ((d[((c[m >> 2] | 0) + 3) >> 0] | 0) << 8) + (d[((c[m >> 2] | 0) + 4) >> 0] | 0); break; } case 2: { c[q >> 2] = 4; c[n >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 10) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 2) + ((d[((c[m >> 2] | 0) + 2) >> 0] | 0) >> 6); c[o >> 2] = (((d[((c[m >> 2] | 0) + 2) >> 0] | 0) & 63) << 8) + (d[((c[m >> 2] | 0) + 3) >> 0] | 0); break; } default: { c[q >> 2] = 3; c[p >> 2] = (d[c[m >> 2] >> 0] | 0) & 16; c[n >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 6) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) >> 2); c[o >> 2] = (((d[((c[m >> 2] | 0) + 1) >> 0] | 0) & 3) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); } } if ((c[n >> 2] | 0) >>> 0 > 131072) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } if ( (((c[o >> 2] | 0) + (c[q >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } j = ((c[i >> 2] | 0) + 21580) | 0; f = c[n >> 2] | 0; e = ((c[m >> 2] | 0) + (c[q >> 2] | 0)) | 0; b = c[o >> 2] | 0; if (c[p >> 2] | 0) A = lu(j, f, e, b) | 0; else A = mu(j, f, e, b) | 0; if (jr(A) | 0) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { c[((c[i >> 2] | 0) + 21572) >> 2] = (c[i >> 2] | 0) + 21580; c[((c[i >> 2] | 0) + 21576) >> 2] = c[n >> 2]; n = ((c[i >> 2] | 0) + 21580 + (c[((c[i >> 2] | 0) + 21576) >> 2] | 0)) | 0; a[n >> 0] = 0; a[(n + 1) >> 0] = 0; a[(n + 2) >> 0] = 0; a[(n + 3) >> 0] = 0; a[(n + 4) >> 0] = 0; a[(n + 5) >> 0] = 0; a[(n + 6) >> 0] = 0; a[(n + 7) >> 0] = 0; c[h >> 2] = (c[o >> 2] | 0) + (c[q >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 1: { c[t >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; if ((c[t >> 2] | 0) != 1) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } if (!(c[((c[i >> 2] | 0) + 21568) >> 2] | 0)) { c[h >> 2] = -30; z = c[h >> 2] | 0; l = g; return z | 0; } c[t >> 2] = 3; c[r >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 6) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) >> 2); c[s >> 2] = (((d[((c[m >> 2] | 0) + 1) >> 0] | 0) & 3) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); if ( (((c[s >> 2] | 0) + (c[t >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } c[u >> 2] = nu( ((c[i >> 2] | 0) + 21580) | 0, c[r >> 2] | 0, ((c[m >> 2] | 0) + (c[t >> 2] | 0)) | 0, c[s >> 2] | 0, ((c[i >> 2] | 0) + 5132) | 0 ) | 0; if (jr(c[u >> 2] | 0) | 0) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { c[((c[i >> 2] | 0) + 21572) >> 2] = (c[i >> 2] | 0) + 21580; c[((c[i >> 2] | 0) + 21576) >> 2] = c[r >> 2]; r = ((c[i >> 2] | 0) + 21580 + (c[((c[i >> 2] | 0) + 21576) >> 2] | 0)) | 0; a[r >> 0] = 0; a[(r + 1) >> 0] = 0; a[(r + 2) >> 0] = 0; a[(r + 3) >> 0] = 0; a[(r + 4) >> 0] = 0; a[(r + 5) >> 0] = 0; a[(r + 6) >> 0] = 0; a[(r + 7) >> 0] = 0; c[h >> 2] = (c[s >> 2] | 0) + (c[t >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 2: { c[w >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; switch (c[w >> 2] | 0) { case 3: { c[v >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 16) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); break; } case 2: { c[v >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 8) + (d[((c[m >> 2] | 0) + 1) >> 0] | 0); break; } default: { c[w >> 2] = 1; c[v >> 2] = (d[c[m >> 2] >> 0] | 0) & 31; } } if ( (((c[w >> 2] | 0) + (c[v >> 2] | 0) + 8) | 0) >>> 0 <= (c[k >> 2] | 0) >>> 0 ) { c[((c[i >> 2] | 0) + 21572) >> 2] = (c[m >> 2] | 0) + (c[w >> 2] | 0); c[((c[i >> 2] | 0) + 21576) >> 2] = c[v >> 2]; c[h >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } if ( (((c[v >> 2] | 0) + (c[w >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { mE( ((c[i >> 2] | 0) + 21580) | 0, ((c[m >> 2] | 0) + (c[w >> 2] | 0)) | 0, c[v >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 21572) >> 2] = (c[i >> 2] | 0) + 21580; c[((c[i >> 2] | 0) + 21576) >> 2] = c[v >> 2]; t = ((c[i >> 2] | 0) + 21580 + (c[((c[i >> 2] | 0) + 21576) >> 2] | 0)) | 0; a[t >> 0] = 0; a[(t + 1) >> 0] = 0; a[(t + 2) >> 0] = 0; a[(t + 3) >> 0] = 0; a[(t + 4) >> 0] = 0; a[(t + 5) >> 0] = 0; a[(t + 6) >> 0] = 0; a[(t + 7) >> 0] = 0; c[h >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 3: { c[y >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; switch (c[y >> 2] | 0) { case 3: { c[x >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 16) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); if ((c[k >> 2] | 0) >>> 0 < 4) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 2: { c[x >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 8) + (d[((c[m >> 2] | 0) + 1) >> 0] | 0); break; } default: { c[y >> 2] = 1; c[x >> 2] = (d[c[m >> 2] >> 0] | 0) & 31; } } if ((c[x >> 2] | 0) >>> 0 > 131072) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { oE( ((c[i >> 2] | 0) + 21580) | 0, ((d[((c[m >> 2] | 0) + (c[y >> 2] | 0)) >> 0] | 0) & 255) | 0, ((c[x >> 2] | 0) + 8) | 0 ) | 0; c[((c[i >> 2] | 0) + 21572) >> 2] = (c[i >> 2] | 0) + 21580; c[((c[i >> 2] | 0) + 21576) >> 2] = c[x >> 2]; c[h >> 2] = (c[y >> 2] | 0) + 1; z = c[h >> 2] | 0; l = g; return z | 0; } break; } default: { } } return 0; } function Qt(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0; g = l; l = (l + 176) | 0; h = (g + 164) | 0; i = (g + 160) | 0; j = (g + 156) | 0; k = (g + 152) | 0; m = (g + 148) | 0; n = (g + 144) | 0; o = (g + 140) | 0; p = (g + 136) | 0; q = (g + 132) | 0; r = (g + 128) | 0; s = (g + 124) | 0; t = (g + 120) | 0; u = (g + 116) | 0; v = (g + 112) | 0; w = (g + 108) | 0; x = (g + 104) | 0; y = (g + 100) | 0; z = (g + 96) | 0; A = (g + 92) | 0; B = (g + 88) | 0; C = (g + 84) | 0; D = (g + 80) | 0; E = (g + 68) | 0; F = (g + 16) | 0; G = (g + 12) | 0; H = (g + 8) | 0; I = (g + 4) | 0; J = g; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[k >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[m >> 2] | 0); c[t >> 2] = c[r >> 2]; c[u >> 2] = c[((c[j >> 2] | 0) + 21572) >> 2]; c[v >> 2] = (c[u >> 2] | 0) + (c[((c[j >> 2] | 0) + 21576) >> 2] | 0); c[w >> 2] = c[j >> 2]; c[x >> 2] = (c[j >> 2] | 0) + 3080; c[y >> 2] = (c[j >> 2] | 0) + 2052; c[z >> 2] = c[((c[j >> 2] | 0) + 21524) >> 2]; c[A >> 2] = c[((c[j >> 2] | 0) + 21528) >> 2]; c[B >> 2] = c[((c[j >> 2] | 0) + 21532) >> 2]; c[D >> 2] = Rt( C, c[w >> 2] | 0, c[x >> 2] | 0, c[y >> 2] | 0, c[((c[j >> 2] | 0) + 21568) >> 2] | 0, c[p >> 2] | 0, c[o >> 2] | 0 ) | 0; o = (jr(c[D >> 2] | 0) | 0) != 0; m = c[D >> 2] | 0; if (o) { c[i >> 2] = m; K = c[i >> 2] | 0; l = g; return K | 0; } c[p >> 2] = (c[p >> 2] | 0) + m; c[((c[j >> 2] | 0) + 21568) >> 2] = 0; if (c[C >> 2] | 0) { c[E >> 2] = 0; c[(E + 4) >> 2] = 0; c[(E + 8) >> 2] = 0; c[(E + 8) >> 2] = 1; c[G >> 2] = 0; while (1) { if ((c[G >> 2] | 0) >>> 0 >= 3) break; c[(F + 40 + (c[G >> 2] << 2)) >> 2] = 1; c[G >> 2] = (c[G >> 2] | 0) + 1; } c[H >> 2] = St( F, c[p >> 2] | 0, ((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0 ) | 0; if (jr(c[H >> 2] | 0) | 0) { c[i >> 2] = -20; K = c[i >> 2] | 0; l = g; return K | 0; } Tt((F + 16) | 0, F, c[w >> 2] | 0); Tt((F + 24) | 0, F, c[y >> 2] | 0); Tt((F + 32) | 0, F, c[x >> 2] | 0); while (1) { x = (Ut(F) | 0) >>> 0 <= 2; L = c[C >> 2] | 0; if (!(x ? (c[C >> 2] | 0) != 0 : 0)) break; c[C >> 2] = L + -1; Vt(E, F); x = c[t >> 2] | 0; y = c[s >> 2] | 0; w = c[v >> 2] | 0; H = c[z >> 2] | 0; p = c[A >> 2] | 0; q = c[B >> 2] | 0; c[h >> 2] = c[E >> 2]; c[(h + 4) >> 2] = c[(E + 4) >> 2]; c[(h + 8) >> 2] = c[(E + 8) >> 2]; c[I >> 2] = Wt(x, y, h, u, w, H, p, q) | 0; q = (jr(c[I >> 2] | 0) | 0) != 0; M = c[I >> 2] | 0; if (q) { N = 12; break; } c[t >> 2] = (c[t >> 2] | 0) + M; } if ((N | 0) == 12) { c[i >> 2] = M; K = c[i >> 2] | 0; l = g; return K | 0; } if (L | 0) { c[i >> 2] = -20; K = c[i >> 2] | 0; l = g; return K | 0; } } c[J >> 2] = (c[v >> 2] | 0) - (c[u >> 2] | 0); if ((c[u >> 2] | 0) >>> 0 > (c[v >> 2] | 0) >>> 0) { c[i >> 2] = -20; K = c[i >> 2] | 0; l = g; return K | 0; } if ( (((c[t >> 2] | 0) + (c[J >> 2] | 0)) | 0) >>> 0 > (c[s >> 2] | 0) >>> 0 ) { c[i >> 2] = -70; K = c[i >> 2] | 0; l = g; return K | 0; } else { mE(c[t >> 2] | 0, c[u >> 2] | 0, c[J >> 2] | 0) | 0; c[t >> 2] = (c[t >> 2] | 0) + (c[J >> 2] | 0); c[i >> 2] = (c[t >> 2] | 0) - (c[r >> 2] | 0); K = c[i >> 2] | 0; l = g; return K | 0; } return 0; } function Rt(a, b, e, f, g, h, i) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; j = l; l = (l + 80) | 0; k = (j + 68) | 0; m = (j + 64) | 0; n = (j + 60) | 0; o = (j + 56) | 0; p = (j + 52) | 0; q = (j + 48) | 0; r = (j + 44) | 0; s = (j + 40) | 0; t = (j + 36) | 0; u = (j + 32) | 0; v = (j + 28) | 0; w = (j + 24) | 0; x = (j + 20) | 0; y = (j + 16) | 0; z = (j + 12) | 0; A = (j + 8) | 0; B = (j + 4) | 0; C = j; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = c[r >> 2]; c[u >> 2] = (c[t >> 2] | 0) + (c[s >> 2] | 0); c[v >> 2] = c[t >> 2]; if ((c[s >> 2] | 0) >>> 0 < 1) { c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } s = c[v >> 2] | 0; c[v >> 2] = s + 1; c[w >> 2] = d[s >> 0]; if (!(c[w >> 2] | 0)) { c[c[m >> 2] >> 2] = 0; c[k >> 2] = 1; D = c[k >> 2] | 0; l = j; return D | 0; } do { if ((c[w >> 2] | 0) > 127) { s = c[v >> 2] | 0; if ((c[w >> 2] | 0) == 255) { if (((s + 2) | 0) >>> 0 <= (c[u >> 2] | 0) >>> 0) { c[w >> 2] = ((Oq(c[v >> 2] | 0) | 0) & 65535) + 32512; c[v >> 2] = (c[v >> 2] | 0) + 2; break; } c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } else { if (s >>> 0 < (c[u >> 2] | 0) >>> 0) { s = ((c[w >> 2] | 0) - 128) << 8; r = c[v >> 2] | 0; c[v >> 2] = r + 1; c[w >> 2] = s + (d[r >> 0] | 0); break; } c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } } } while (0); c[c[m >> 2] >> 2] = c[w >> 2]; c[x >> 2] = (d[c[v >> 2] >> 0] | 0) >> 6; c[y >> 2] = ((d[c[v >> 2] >> 0] | 0) >> 4) & 3; c[z >> 2] = ((d[c[v >> 2] >> 0] | 0) >> 2) & 3; c[v >> 2] = (c[v >> 2] | 0) + 1; if ( (c[v >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) + -3) | 0) >>> 0 ) { c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } c[A >> 2] = gu( c[n >> 2] | 0, c[x >> 2] | 0, 35, 9, c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, 6560, 6, c[q >> 2] | 0 ) | 0; if (jr(c[A >> 2] | 0) | 0) { c[k >> 2] = -20; D = c[k >> 2] | 0; l = j; return D | 0; } c[v >> 2] = (c[v >> 2] | 0) + (c[A >> 2] | 0); c[B >> 2] = gu( c[p >> 2] | 0, c[y >> 2] | 0, 28, 8, c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, 6640, 5, c[q >> 2] | 0 ) | 0; if (jr(c[B >> 2] | 0) | 0) { c[k >> 2] = -20; D = c[k >> 2] | 0; l = j; return D | 0; } c[v >> 2] = (c[v >> 2] | 0) + (c[B >> 2] | 0); c[C >> 2] = gu( c[o >> 2] | 0, c[z >> 2] | 0, 52, 9, c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, 6704, 6, c[q >> 2] | 0 ) | 0; if (jr(c[C >> 2] | 0) | 0) { c[k >> 2] = -20; D = c[k >> 2] | 0; l = j; return D | 0; } else { c[v >> 2] = (c[v >> 2] | 0) + (c[C >> 2] | 0); c[k >> 2] = (c[v >> 2] | 0) - (c[t >> 2] | 0); D = c[k >> 2] | 0; l = j; return D | 0; } return 0; } function St(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 4) | 0; k = g; m = (g + 17) | 0; n = (g + 16) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; if ((c[k >> 2] | 0) >>> 0 < 1) { f = c[i >> 2] | 0; c[f >> 2] = 0; c[(f + 4) >> 2] = 0; c[(f + 8) >> 2] = 0; c[(f + 12) >> 2] = 0; c[h >> 2] = -72; o = c[h >> 2] | 0; l = g; return o | 0; } f = (c[k >> 2] | 0) >>> 0 >= 4; c[((c[i >> 2] | 0) + 12) >> 2] = c[j >> 2]; do { if (f) { c[((c[i >> 2] | 0) + 8) >> 2] = (c[j >> 2] | 0) + (c[k >> 2] | 0) + -4; e = eu(c[((c[i >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[i >> 2] >> 2] = e; a[m >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[m >> 0] | 0 | 0) { e = (8 - (fu(d[m >> 0] | 0) | 0)) | 0; c[((c[i >> 2] | 0) + 4) >> 2] = e; break; } c[h >> 2] = -1; o = c[h >> 2] | 0; l = g; return o | 0; } else { c[((c[i >> 2] | 0) + 8) >> 2] = c[((c[i >> 2] | 0) + 12) >> 2]; c[c[i >> 2] >> 2] = d[c[((c[i >> 2] | 0) + 12) >> 2] >> 0]; switch (c[k >> 2] | 0) { case 7: { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 6) >> 0] | 0) << 16); p = 9; break; } case 6: { p = 9; break; } case 5: { p = 10; break; } case 4: { p = 11; break; } case 3: { p = 12; break; } case 2: { p = 13; break; } default: { } } if ((p | 0) == 9) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 5) >> 0] | 0) << 8); p = 10; } if ((p | 0) == 10) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 4) >> 0] | 0) << 0); p = 11; } if ((p | 0) == 11) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 3) >> 0] | 0) << 24); p = 12; } if ((p | 0) == 12) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 2) >> 0] | 0) << 16); p = 13; } if ((p | 0) == 13) { e = c[i >> 2] | 0; c[e >> 2] = (c[e >> 2] | 0) + ((d[((c[j >> 2] | 0) + 1) >> 0] | 0) << 8); } a[n >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[n >> 0] | 0 | 0) { e = (8 - (fu(d[n >> 0] | 0) | 0)) | 0; c[((c[i >> 2] | 0) + 4) >> 2] = e; e = ((c[i >> 2] | 0) + 4) | 0; c[e >> 2] = (c[e >> 2] | 0) + ((4 - (c[k >> 2] | 0)) << 3); break; } c[h >> 2] = -1; o = c[h >> 2] | 0; l = g; return o | 0; } } while (0); c[h >> 2] = c[k >> 2]; o = c[h >> 2] | 0; l = g; return o | 0; } function Tt(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = c[i >> 2]; c[k >> 2] = c[j >> 2]; j = $t(c[h >> 2] | 0, e[c[k >> 2] >> 1] | 0) | 0; c[c[g >> 2] >> 2] = j; Ut(c[h >> 2] | 0) | 0; c[((c[g >> 2] | 0) + 4) >> 2] = (c[i >> 2] | 0) + 4; l = f; return; } function Ut(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = (b + 12) | 0; e = (b + 8) | 0; f = (b + 4) | 0; g = b; c[e >> 2] = a; if ((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) { c[d >> 2] = 3; h = c[d >> 2] | 0; l = b; return h | 0; } a = c[e >> 2] | 0; if ( (c[((c[e >> 2] | 0) + 8) >> 2] | 0) >>> 0 >= (((c[((c[e >> 2] | 0) + 12) >> 2] | 0) + 4) | 0) >>> 0 ) { i = ((c[e >> 2] | 0) + 8) | 0; c[i >> 2] = (c[i >> 2] | 0) + (0 - ((c[(a + 4) >> 2] | 0) >>> 3)); i = ((c[e >> 2] | 0) + 4) | 0; c[i >> 2] = c[i >> 2] & 7; i = eu(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = i; c[d >> 2] = 0; h = c[d >> 2] | 0; l = b; return h | 0; } i = c[((c[e >> 2] | 0) + 4) >> 2] | 0; if ( (c[(a + 8) >> 2] | 0) != (c[((c[e >> 2] | 0) + 12) >> 2] | 0) ) { c[f >> 2] = i >>> 3; c[g >> 2] = 0; if ( (((c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (0 - (c[f >> 2] | 0))) | 0) >>> 0 < (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 ) { c[f >> 2] = (c[((c[e >> 2] | 0) + 8) >> 2] | 0) - (c[((c[e >> 2] | 0) + 12) >> 2] | 0); c[g >> 2] = 1; } a = ((c[e >> 2] | 0) + 8) | 0; c[a >> 2] = (c[a >> 2] | 0) + (0 - (c[f >> 2] | 0)); a = ((c[e >> 2] | 0) + 4) | 0; c[a >> 2] = (c[a >> 2] | 0) - (c[f >> 2] << 3); f = eu(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = f; c[d >> 2] = c[g >> 2]; h = c[d >> 2] | 0; l = b; return h | 0; } if (i >>> 0 < 32) { c[d >> 2] = 1; h = c[d >> 2] | 0; l = b; return h | 0; } else { c[d >> 2] = 2; h = c[d >> 2] | 0; l = b; return h | 0; } return 0; } function Vt(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; d = l; l = (l + 48) | 0; e = (d + 40) | 0; f = (d + 36) | 0; g = (d + 32) | 0; h = (d + 28) | 0; i = (d + 24) | 0; j = (d + 20) | 0; k = (d + 16) | 0; m = (d + 12) | 0; n = (d + 8) | 0; o = (d + 4) | 0; p = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = (_t(((c[f >> 2] | 0) + 16) | 0) | 0) & 255; c[h >> 2] = (_t(((c[f >> 2] | 0) + 32) | 0) | 0) & 255; c[i >> 2] = (_t(((c[f >> 2] | 0) + 24) | 0) | 0) & 255; c[j >> 2] = c[(5696 + (c[g >> 2] << 2)) >> 2]; c[k >> 2] = c[(5840 + (c[h >> 2] << 2)) >> 2]; c[m >> 2] = c[i >> 2]; c[n >> 2] = (c[j >> 2] | 0) + (c[k >> 2] | 0) + (c[m >> 2] | 0); if (c[i >> 2] | 0) { b = c[(6064 + (c[i >> 2] << 2)) >> 2] | 0; c[o >> 2] = b + ($t(c[f >> 2] | 0, c[m >> 2] | 0) | 0); if (au() | 0) Ut(c[f >> 2] | 0) | 0; } else c[o >> 2] = 0; do { if ((c[o >> 2] | 0) >>> 0 < 3) { if (((c[g >> 2] | 0) == 0) & ((c[o >> 2] | 0) >>> 0 <= 1)) c[o >> 2] = 1 - (c[o >> 2] | 0); m = ((c[f >> 2] | 0) + 40) | 0; if (!(c[o >> 2] | 0)) { c[o >> 2] = c[m >> 2]; break; } c[p >> 2] = c[(m + (c[o >> 2] << 2)) >> 2]; if ((c[o >> 2] | 0) != 1) c[((c[f >> 2] | 0) + 40 + 8) >> 2] = c[((c[f >> 2] | 0) + 40 + 4) >> 2]; c[((c[f >> 2] | 0) + 40 + 4) >> 2] = c[((c[f >> 2] | 0) + 40) >> 2]; m = c[p >> 2] | 0; c[o >> 2] = m; c[((c[f >> 2] | 0) + 40) >> 2] = m; } else { c[o >> 2] = (c[o >> 2] | 0) - 2; c[((c[f >> 2] | 0) + 40 + 8) >> 2] = c[((c[f >> 2] | 0) + 40 + 4) >> 2]; c[((c[f >> 2] | 0) + 40 + 4) >> 2] = c[((c[f >> 2] | 0) + 40) >> 2]; c[((c[f >> 2] | 0) + 40) >> 2] = c[o >> 2]; } } while (0); c[((c[e >> 2] | 0) + 8) >> 2] = c[o >> 2]; o = ((c[(6192 + (c[h >> 2] << 2)) >> 2] | 0) + 3) | 0; if ((c[h >> 2] | 0) >>> 0 > 31) q = $t(c[f >> 2] | 0, c[k >> 2] | 0) | 0; else q = 0; c[((c[e >> 2] | 0) + 4) >> 2] = o + q; if ( au() | 0 ? (((c[k >> 2] | 0) + (c[j >> 2] | 0)) | 0) >>> 0 > 24 : 0 ) Ut(c[f >> 2] | 0) | 0; k = c[(6416 + (c[g >> 2] << 2)) >> 2] | 0; if ((c[g >> 2] | 0) >>> 0 > 15) r = $t(c[f >> 2] | 0, c[j >> 2] | 0) | 0; else r = 0; c[c[e >> 2] >> 2] = k + r; r = (au() | 0) != 0; if (r | ((c[n >> 2] | 0) >>> 0 > 31)) Ut(c[f >> 2] | 0) | 0; bu(((c[f >> 2] | 0) + 16) | 0, c[f >> 2] | 0); bu(((c[f >> 2] | 0) + 32) | 0, c[f >> 2] | 0); if (!(au() | 0)) { s = c[f >> 2] | 0; t = (s + 24) | 0; u = c[f >> 2] | 0; bu(t, u); l = d; return; } Ut(c[f >> 2] | 0) | 0; s = c[f >> 2] | 0; t = (s + 24) | 0; u = c[f >> 2] | 0; bu(t, u); l = d; return; } function Wt(b, d, e, f, g, h, i, j) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; k = l; l = (l + 64) | 0; m = (k + 60) | 0; n = (k + 56) | 0; o = (k + 52) | 0; p = (k + 48) | 0; q = (k + 44) | 0; r = (k + 40) | 0; s = (k + 36) | 0; t = (k + 32) | 0; u = (k + 28) | 0; v = (k + 24) | 0; w = (k + 20) | 0; x = (k + 16) | 0; y = (k + 12) | 0; z = (k + 8) | 0; A = (k + 4) | 0; B = k; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = (c[n >> 2] | 0) + (c[e >> 2] | 0); c[v >> 2] = (c[e >> 2] | 0) + (c[(e + 4) >> 2] | 0); c[w >> 2] = (c[n >> 2] | 0) + (c[v >> 2] | 0); c[x >> 2] = (c[o >> 2] | 0) + -8; c[y >> 2] = (c[c[p >> 2] >> 2] | 0) + (c[e >> 2] | 0); c[z >> 2] = (c[u >> 2] | 0) + (0 - (c[(e + 8) >> 2] | 0)); if ((c[u >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0) { c[m >> 2] = -70; C = c[m >> 2] | 0; l = k; return C | 0; } if ((c[w >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) { c[m >> 2] = -70; C = c[m >> 2] | 0; l = k; return C | 0; } if ((c[y >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) { c[m >> 2] = -20; C = c[m >> 2] | 0; l = k; return C | 0; } Xt(c[n >> 2] | 0, c[c[p >> 2] >> 2] | 0, c[e >> 2] | 0); c[n >> 2] = c[u >> 2]; c[c[p >> 2] >> 2] = c[y >> 2]; do { if ( (c[(e + 8) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[r >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(e + 8) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[s >> 2] | 0)) | 0) >>> 0 ) { c[m >> 2] = -20; C = c[m >> 2] | 0; l = k; return C | 0; } c[z >> 2] = (c[t >> 2] | 0) + (0 - ((c[r >> 2] | 0) - (c[z >> 2] | 0))); if ( (((c[z >> 2] | 0) + (c[(e + 4) >> 2] | 0)) | 0) >>> 0 <= (c[t >> 2] | 0) >>> 0 ) { nE(c[u >> 2] | 0, c[z >> 2] | 0, c[(e + 4) >> 2] | 0) | 0; c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } c[A >> 2] = (c[t >> 2] | 0) - (c[z >> 2] | 0); nE(c[u >> 2] | 0, c[z >> 2] | 0, c[A >> 2] | 0) | 0; c[n >> 2] = (c[u >> 2] | 0) + (c[A >> 2] | 0); y = (e + 4) | 0; c[y >> 2] = (c[y >> 2] | 0) - (c[A >> 2] | 0); c[z >> 2] = c[r >> 2]; if ( (c[n >> 2] | 0) >>> 0 <= (c[x >> 2] | 0) >>> 0 ? (c[(e + 4) >> 2] | 0) >>> 0 >= 3 : 0 ) break; while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; y = c[z >> 2] | 0; c[z >> 2] = y + 1; p = a[y >> 0] | 0; y = c[n >> 2] | 0; c[n >> 2] = y + 1; a[y >> 0] = p; } c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } } while (0); if ((c[(e + 8) >> 2] | 0) >>> 0 < 8) { c[B >> 2] = c[(6816 + (c[(e + 8) >> 2] << 2)) >> 2]; a[c[n >> 2] >> 0] = a[c[z >> 2] >> 0] | 0; a[((c[n >> 2] | 0) + 1) >> 0] = a[((c[z >> 2] | 0) + 1) >> 0] | 0; a[((c[n >> 2] | 0) + 2) >> 0] = a[((c[z >> 2] | 0) + 2) >> 0] | 0; a[((c[n >> 2] | 0) + 3) >> 0] = a[((c[z >> 2] | 0) + 3) >> 0] | 0; c[z >> 2] = (c[z >> 2] | 0) + (c[(6848 + (c[(e + 8) >> 2] << 2)) >> 2] | 0); Yt(((c[n >> 2] | 0) + 4) | 0, c[z >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + (0 - (c[B >> 2] | 0)); } else Zt(c[n >> 2] | 0, c[z >> 2] | 0); c[n >> 2] = (c[n >> 2] | 0) + 8; c[z >> 2] = (c[z >> 2] | 0) + 8; B = c[n >> 2] | 0; a: do { if ( (c[w >> 2] | 0) >>> 0 > (((c[o >> 2] | 0) + -13) | 0) >>> 0 ) { if (B >>> 0 < (c[x >> 2] | 0) >>> 0) { Xt( c[n >> 2] | 0, c[z >> 2] | 0, ((c[x >> 2] | 0) - (c[n >> 2] | 0)) | 0 ); c[z >> 2] = (c[z >> 2] | 0) + ((c[x >> 2] | 0) - (c[n >> 2] | 0)); c[n >> 2] = c[x >> 2]; } while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; r = c[z >> 2] | 0; c[z >> 2] = r + 1; A = a[r >> 0] | 0; r = c[n >> 2] | 0; c[n >> 2] = r + 1; a[r >> 0] = A; } } else Xt(B, c[z >> 2] | 0, ((c[(e + 4) >> 2] | 0) - 8) | 0); } while (0); c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } function Xt(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { Zt(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function Yt(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; l = e; return; } function Zt(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function _t(d) { d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 4) | 0; c[f >> 2] = d; d = ((c[((c[f >> 2] | 0) + 4) >> 2] | 0) + (c[c[f >> 2] >> 2] << 2)) | 0; b[g >> 1] = b[d >> 1] | 0; b[(g + 2) >> 1] = b[(d + 2) >> 1] | 0; l = e; return a[(g + 2) >> 0] | 0; } function $t(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = cu(c[e >> 2] | 0, c[f >> 2] | 0) | 0; du(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function au() { return 1; } function bu(a, f) { a = a | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 16) | 0; k = (g + 4) | 0; m = g; c[h >> 2] = a; c[i >> 2] = f; f = ((c[((c[h >> 2] | 0) + 4) >> 2] | 0) + (c[c[h >> 2] >> 2] << 2)) | 0; b[j >> 1] = b[f >> 1] | 0; b[(j + 2) >> 1] = b[(f + 2) >> 1] | 0; c[k >> 2] = d[(j + 3) >> 0]; c[m >> 2] = $t(c[i >> 2] | 0, c[k >> 2] | 0) | 0; c[c[h >> 2] >> 2] = (e[j >> 1] | 0) + (c[m >> 2] | 0); l = g; return; } function cu(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( (((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> 1) >>> ((31 - (c[f >> 2] | 0)) & 31)) | 0 ); } function du(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ((c[e >> 2] | 0) + 4) | 0; c[b >> 2] = (c[b >> 2] | 0) + (c[f >> 2] | 0); l = d; return; } function eu(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (au() | 0) != 0; f = c[e >> 2] | 0; if (a) { c[d >> 2] = Mq(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } else { a = Pq(f) | 0; c[d >> 2] = a; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function fu(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function gu(b, e, f, g, h, i, j, k, m) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; n = l; l = (l + 160) | 0; o = (n + 152) | 0; p = (n + 148) | 0; q = (n + 144) | 0; r = (n + 140) | 0; s = (n + 136) | 0; t = (n + 132) | 0; u = (n + 128) | 0; v = (n + 124) | 0; w = (n + 120) | 0; x = (n + 116) | 0; y = (n + 112) | 0; z = n; A = (n + 108) | 0; c[p >> 2] = b; c[q >> 2] = e; c[r >> 2] = f; c[s >> 2] = g; c[t >> 2] = h; c[u >> 2] = i; c[v >> 2] = j; c[w >> 2] = k; c[x >> 2] = m; a: do { switch (c[q >> 2] | 0) { case 1: { if (!(c[u >> 2] | 0)) { c[o >> 2] = -72; break a; } if ( (d[c[t >> 2] >> 0] | 0) >>> 0 > (c[r >> 2] | 0) >>> 0 ) { c[o >> 2] = -20; break a; } else { hu(c[p >> 2] | 0, a[c[t >> 2] >> 0] | 0) | 0; c[o >> 2] = 1; break a; } break; } case 0: { iu( c[p >> 2] | 0, c[v >> 2] | 0, c[r >> 2] | 0, c[w >> 2] | 0 ) | 0; c[o >> 2] = 0; break; } case 2: { if (c[x >> 2] | 0) { c[o >> 2] = 0; break a; } else { c[o >> 2] = -20; break a; } break; } default: { c[A >> 2] = ju(z, r, y, c[t >> 2] | 0, c[u >> 2] | 0) | 0; if (jr(c[A >> 2] | 0) | 0) { c[o >> 2] = -20; break a; } if ((c[y >> 2] | 0) >>> 0 > (c[s >> 2] | 0) >>> 0) { c[o >> 2] = -20; break a; } else { iu(c[p >> 2] | 0, z, c[r >> 2] | 0, c[y >> 2] | 0) | 0; c[o >> 2] = c[A >> 2]; break a; } } } } while (0); l = n; return c[o >> 2] | 0; } function hu(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 20) | 0; i = (f + 12) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[g >> 2] = d; a[h >> 0] = e; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[i >> 2]; c[k >> 2] = (c[g >> 2] | 0) + 4; c[m >> 2] = c[k >> 2]; b[c[j >> 2] >> 1] = 0; b[((c[j >> 2] | 0) + 2) >> 1] = 0; b[c[m >> 2] >> 1] = 0; a[((c[m >> 2] | 0) + 2) >> 0] = a[h >> 0] | 0; a[((c[m >> 2] | 0) + 3) >> 0] = 0; l = f; return 0; } function iu(f, g, h, i) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0; j = l; l = (l + 592) | 0; k = (j + 576) | 0; m = (j + 572) | 0; n = (j + 568) | 0; o = (j + 564) | 0; p = (j + 560) | 0; q = (j + 556) | 0; r = (j + 552) | 0; s = j; t = (j + 548) | 0; u = (j + 544) | 0; v = (j + 540) | 0; w = (j + 584) | 0; x = (j + 582) | 0; y = (j + 536) | 0; z = (j + 532) | 0; A = (j + 528) | 0; B = (j + 524) | 0; C = (j + 520) | 0; D = (j + 516) | 0; E = (j + 512) | 0; F = (j + 588) | 0; G = (j + 580) | 0; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = h; c[p >> 2] = i; c[q >> 2] = (c[m >> 2] | 0) + 4; c[r >> 2] = c[q >> 2]; c[t >> 2] = (c[o >> 2] | 0) + 1; c[u >> 2] = 1 << c[p >> 2]; c[v >> 2] = (c[u >> 2] | 0) - 1; if ((c[o >> 2] | 0) >>> 0 > 255) { c[k >> 2] = -46; H = c[k >> 2] | 0; l = j; return H | 0; } if ((c[p >> 2] | 0) >>> 0 > 12) { c[k >> 2] = -44; H = c[k >> 2] | 0; l = j; return H | 0; } b[w >> 1] = c[p >> 2]; b[(w + 2) >> 1] = 1; b[x >> 1] = 1 << ((c[p >> 2] | 0) - 1); c[y >> 2] = 0; while (1) { if ((c[y >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; if ( (b[((c[n >> 2] | 0) + (c[y >> 2] << 1)) >> 1] | 0) == -1 ) { o = c[y >> 2] & 255; q = c[r >> 2] | 0; i = c[v >> 2] | 0; c[v >> 2] = i + -1; a[(q + (i << 2) + 2) >> 0] = o; b[(s + (c[y >> 2] << 1)) >> 1] = 1; } else { if ( (b[((c[n >> 2] | 0) + (c[y >> 2] << 1)) >> 1] | 0) >= (b[x >> 1] | 0) ) b[(w + 2) >> 1] = 0; b[(s + (c[y >> 2] << 1)) >> 1] = b[((c[n >> 2] | 0) + (c[y >> 2] << 1)) >> 1] | 0; } c[y >> 2] = (c[y >> 2] | 0) + 1; } y = c[m >> 2] | 0; b[y >> 1] = b[w >> 1] | 0; b[(y + 2) >> 1] = b[(w + 2) >> 1] | 0; c[z >> 2] = (c[u >> 2] | 0) - 1; c[A >> 2] = ((c[u >> 2] | 0) >>> 1) + ((c[u >> 2] | 0) >>> 3) + 3; c[C >> 2] = 0; c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; c[D >> 2] = 0; while (1) { I = c[B >> 2] | 0; if ( (c[D >> 2] | 0) >= (b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0) ) break; a[((c[r >> 2] | 0) + (c[C >> 2] << 2) + 2) >> 0] = I; c[C >> 2] = ((c[C >> 2] | 0) + (c[A >> 2] | 0)) & c[z >> 2]; while (1) { if ((c[C >> 2] | 0) >>> 0 <= (c[v >> 2] | 0) >>> 0) break; c[C >> 2] = ((c[C >> 2] | 0) + (c[A >> 2] | 0)) & c[z >> 2]; } c[D >> 2] = (c[D >> 2] | 0) + 1; } c[B >> 2] = I + 1; } if (c[C >> 2] | 0) { c[k >> 2] = -1; H = c[k >> 2] | 0; l = j; return H | 0; } c[E >> 2] = 0; while (1) { if ((c[E >> 2] | 0) >>> 0 >= (c[u >> 2] | 0) >>> 0) break; a[F >> 0] = a[((c[r >> 2] | 0) + (c[E >> 2] << 2) + 2) >> 0] | 0; C = (s + (d[F >> 0] << 1)) | 0; I = b[C >> 1] | 0; b[C >> 1] = ((I + 1) << 16) >> 16; b[G >> 1] = I; I = c[p >> 2] | 0; C = (I - (fu(e[G >> 1] | 0) | 0)) & 255; a[((c[r >> 2] | 0) + (c[E >> 2] << 2) + 3) >> 0] = C; b[((c[r >> 2] | 0) + (c[E >> 2] << 2)) >> 1] = (e[G >> 1] << d[((c[r >> 2] | 0) + (c[E >> 2] << 2) + 3) >> 0]) - (c[u >> 2] | 0); c[E >> 2] = (c[E >> 2] | 0) + 1; } c[k >> 2] = 0; H = c[k >> 2] | 0; l = j; return H | 0; } function ju(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; h = l; l = (l + 80) | 0; i = (h + 64) | 0; j = (h + 60) | 0; k = (h + 56) | 0; m = (h + 52) | 0; n = (h + 48) | 0; o = (h + 44) | 0; p = (h + 40) | 0; q = (h + 36) | 0; r = (h + 32) | 0; s = (h + 28) | 0; t = (h + 24) | 0; u = (h + 20) | 0; v = (h + 16) | 0; w = (h + 12) | 0; x = (h + 8) | 0; y = (h + 4) | 0; z = h; A = (h + 70) | 0; B = (h + 68) | 0; c[j >> 2] = a; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[p >> 2]; c[x >> 2] = 0; c[y >> 2] = 0; if ((c[o >> 2] | 0) >>> 0 < 4) { c[i >> 2] = -72; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = Mq(c[r >> 2] | 0) | 0; c[s >> 2] = (c[v >> 2] & 15) + 5; if ((c[s >> 2] | 0) > 15) { c[i >> 2] = -44; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = (c[v >> 2] | 0) >>> 4; c[w >> 2] = 4; c[c[m >> 2] >> 2] = c[s >> 2]; c[t >> 2] = (1 << c[s >> 2]) + 1; c[u >> 2] = 1 << c[s >> 2]; c[s >> 2] = (c[s >> 2] | 0) + 1; a: while (1) { if ((c[t >> 2] | 0) <= 1) break; if ((c[x >> 2] | 0) >>> 0 > (c[c[k >> 2] >> 2] | 0) >>> 0) break; do { if (c[y >> 2] | 0) { c[z >> 2] = c[x >> 2]; while (1) { if (((c[v >> 2] & 65535) | 0) != 65535) break; c[z >> 2] = (c[z >> 2] | 0) + 24; if ( (c[r >> 2] | 0) >>> 0 < (((c[q >> 2] | 0) + -5) | 0) >>> 0 ) { c[r >> 2] = (c[r >> 2] | 0) + 2; m = Mq(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] | 0); } else { c[v >> 2] = (c[v >> 2] | 0) >>> 16; c[w >> 2] = (c[w >> 2] | 0) + 16; } } while (1) { if (((c[v >> 2] & 3) | 0) != 3) break; c[z >> 2] = (c[z >> 2] | 0) + 3; c[v >> 2] = (c[v >> 2] | 0) >>> 2; c[w >> 2] = (c[w >> 2] | 0) + 2; } c[z >> 2] = (c[z >> 2] | 0) + (c[v >> 2] & 3); c[w >> 2] = (c[w >> 2] | 0) + 2; if ( (c[z >> 2] | 0) >>> 0 > (c[c[k >> 2] >> 2] | 0) >>> 0 ) { D = 19; break a; } while (1) { if ((c[x >> 2] | 0) >>> 0 >= (c[z >> 2] | 0) >>> 0) break; m = c[j >> 2] | 0; n = c[x >> 2] | 0; c[x >> 2] = n + 1; b[(m + (n << 1)) >> 1] = 0; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[v >> 2] = (c[v >> 2] | 0) >>> 2; break; } c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; n = Mq(c[r >> 2] | 0) | 0; c[v >> 2] = n >>> (c[w >> 2] | 0); } } while (0); b[A >> 1] = (c[u >> 2] << 1) - 1 - (c[t >> 2] | 0); n = c[v >> 2] | 0; m = c[u >> 2] | 0; if ( (c[v >> 2] & ((c[u >> 2] | 0) - 1)) >>> 0 < (b[A >> 1] | 0) >>> 0 ) { b[B >> 1] = n & (m - 1); c[w >> 2] = (c[w >> 2] | 0) + ((c[s >> 2] | 0) - 1); } else { b[B >> 1] = n & ((m << 1) - 1); if ((b[B >> 1] | 0) >= (c[u >> 2] | 0)) b[B >> 1] = (b[B >> 1] | 0) - (b[A >> 1] | 0); c[w >> 2] = (c[w >> 2] | 0) + (c[s >> 2] | 0); } b[B >> 1] = (((b[B >> 1] | 0) + -1) << 16) >> 16; m = ((ku(b[B >> 1] | 0) | 0) << 16) >> 16; c[t >> 2] = (c[t >> 2] | 0) - m; m = b[B >> 1] | 0; n = c[j >> 2] | 0; g = c[x >> 2] | 0; c[x >> 2] = g + 1; b[(n + (g << 1)) >> 1] = m; c[y >> 2] = (((b[B >> 1] | 0) != 0) ^ 1) & 1; while (1) { if ((c[t >> 2] | 0) >= (c[u >> 2] | 0)) break; c[s >> 2] = (c[s >> 2] | 0) + -1; c[u >> 2] = c[u >> 2] >> 1; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[w >> 2] = (c[w >> 2] | 0) - (((c[q >> 2] | 0) + -4 - (c[r >> 2] | 0)) << 3); c[r >> 2] = (c[q >> 2] | 0) + -4; } else { c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; } m = Mq(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] & 31); } if ((D | 0) == 19) { c[i >> 2] = -48; C = c[i >> 2] | 0; l = h; return C | 0; } if ((c[t >> 2] | 0) != 1) { c[i >> 2] = -1; C = c[i >> 2] | 0; l = h; return C | 0; } c[c[k >> 2] >> 2] = (c[x >> 2] | 0) - 1; c[r >> 2] = (c[r >> 2] | 0) + (((c[w >> 2] | 0) + 7) >> 3); if ( (((c[r >> 2] | 0) - (c[p >> 2] | 0)) | 0) >>> 0 > (c[o >> 2] | 0) >>> 0 ) { c[i >> 2] = -72; C = c[i >> 2] | 0; l = h; return C | 0; } else { c[i >> 2] = (c[r >> 2] | 0) - (c[p >> 2] | 0); C = c[i >> 2] | 0; l = h; return C | 0; } return 0; } function ku(a) { a = a | 0; var c = 0, d = 0; c = l; l = (l + 16) | 0; d = c; b[d >> 1] = a; a = b[d >> 1] | 0; l = c; return (((b[d >> 1] | 0) < 0 ? (0 - a) | 0 : a) & 65535) | 0; } function lu(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 8224) | 0; h = (g + 8220) | 0; i = (g + 8216) | 0; j = (g + 8212) | 0; k = (g + 8208) | 0; m = (g + 8204) | 0; n = g; o = (g + 8200) | 0; p = (g + 8196) | 0; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; oE(n | 0, 0, 8194) | 0; b[n >> 1] = 12; c[o >> 2] = c[k >> 2]; c[p >> 2] = Ju(n, c[k >> 2] | 0, c[m >> 2] | 0) | 0; k = (ou(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (k) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } if (f >>> 0 >= (c[m >> 2] | 0) >>> 0) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + (c[p >> 2] | 0); c[m >> 2] = (c[m >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = Nu( c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0, c[m >> 2] | 0, n ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function mu(a, b, e, f) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; g = l; l = (l + 48) | 0; h = (g + 44) | 0; i = (g + 40) | 0; j = (g + 36) | 0; k = (g + 32) | 0; m = (g + 28) | 0; n = (g + 16) | 0; o = (g + 12) | 0; p = (g + 8) | 0; q = (g + 4) | 0; r = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = e; c[m >> 2] = f; if (!(c[j >> 2] | 0)) { c[h >> 2] = -70; s = c[h >> 2] | 0; l = g; return s | 0; } if ((c[m >> 2] | 0) >>> 0 > (c[j >> 2] | 0) >>> 0) { c[h >> 2] = -20; s = c[h >> 2] | 0; l = g; return s | 0; } if ((c[m >> 2] | 0) == (c[j >> 2] | 0)) { mE(c[i >> 2] | 0, c[k >> 2] | 0, c[j >> 2] | 0) | 0; c[h >> 2] = c[j >> 2]; s = c[h >> 2] | 0; l = g; return s | 0; } if ((c[m >> 2] | 0) == 1) { oE( c[i >> 2] | 0, ((d[c[k >> 2] >> 0] | 0) & 255) | 0, c[j >> 2] | 0 ) | 0; c[h >> 2] = c[j >> 2]; s = c[h >> 2] | 0; l = g; return s | 0; } c[o >> 2] = (((c[m >> 2] << 4) >>> 0) / ((c[j >> 2] | 0) >>> 0)) | 0; c[p >> 2] = (c[j >> 2] | 0) >>> 8; c[q >> 2] = 0; while (1) { if ((c[q >> 2] | 0) >>> 0 >= 3) break; f = ((c[ (7008 + (((c[o >> 2] | 0) * 24) | 0) + (c[q >> 2] << 3)) >> 2 ] | 0) + (N( c[ (7008 + (((c[o >> 2] | 0) * 24) | 0) + (c[q >> 2] << 3) + 4) >> 2 ] | 0, c[p >> 2] | 0 ) | 0)) | 0; c[(n + (c[q >> 2] << 2)) >> 2] = f; c[q >> 2] = (c[q >> 2] | 0) + 1; } q = (n + 4) | 0; c[q >> 2] = (c[q >> 2] | 0) + ((c[(n + 4) >> 2] | 0) >>> 4); q = (n + 8) | 0; c[q >> 2] = (c[q >> 2] | 0) + ((c[(n + 8) >> 2] | 0) >>> 3); c[r >> 2] = 0; c[r >> 2] = (c[(n + 4) >> 2] | 0) >>> 0 < (c[n >> 2] | 0) >>> 0 ? 1 : 0; c[h >> 2] = sc[c[(11964 + (c[r >> 2] << 2)) >> 2] & 15]( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; s = c[h >> 2] | 0; l = g; return s | 0; } function nu(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; g = l; l = (l + 80) | 0; h = (g + 68) | 0; i = (g + 64) | 0; j = (g + 60) | 0; k = (g + 56) | 0; m = (g + 52) | 0; n = (g + 48) | 0; o = (g + 44) | 0; p = (g + 40) | 0; q = (g + 36) | 0; r = (g + 32) | 0; s = (g + 28) | 0; t = (g + 24) | 0; u = (g + 8) | 0; v = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[k >> 2]; c[p >> 2] = c[i >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[j >> 2] | 0); c[r >> 2] = c[c[n >> 2] >> 2]; c[s >> 2] = c[n >> 2]; c[t >> 2] = (c[s >> 2] | 0) + 4; c[v >> 2] = St(u, c[o >> 2] | 0, c[m >> 2] | 0) | 0; if (ou(c[v >> 2] | 0) | 0) { c[h >> 2] = c[v >> 2]; w = c[h >> 2] | 0; l = g; return w | 0; } pu( c[p >> 2] | 0, u, c[q >> 2] | 0, c[t >> 2] | 0, c[r >> 2] | 0 ) | 0; if (qu(u) | 0) { c[h >> 2] = c[j >> 2]; w = c[h >> 2] | 0; l = g; return w | 0; } else { c[h >> 2] = -20; w = c[h >> 2] | 0; l = g; return w | 0; } return 0; } function ou(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = jr(c[d >> 2] | 0) | 0; l = b; return a | 0; } function pu(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = c[h >> 2]; while (1) { if (Ut(c[i >> 2] | 0) | 0) break; if ( (c[h >> 2] | 0) >>> 0 >= (((c[j >> 2] | 0) + -7) | 0) >>> 0 ) break; if (ru() | 0) { f = su( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } ru() | 0; f = su( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; if (ru() | 0) { f = su( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } f = su( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } while (1) { if (Ut(c[i >> 2] | 0) | 0) break; if ( (c[h >> 2] | 0) >>> 0 > (((c[j >> 2] | 0) + -2) | 0) >>> 0 ) break; f = su( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } while (1) { o = c[h >> 2] | 0; if ( (c[h >> 2] | 0) >>> 0 > (((c[j >> 2] | 0) + -2) | 0) >>> 0 ) break; f = su(o, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } if (o >>> 0 >= (c[j >> 2] | 0) >>> 0) { p = c[h >> 2] | 0; q = c[n >> 2] | 0; r = p; s = q; t = (r - s) | 0; l = g; return t | 0; } j = tu( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + j; p = c[h >> 2] | 0; q = c[n >> 2] | 0; r = p; s = q; t = (r - s) | 0; l = g; return t | 0; } function qu(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; if ( (c[((c[d >> 2] | 0) + 8) >> 2] | 0) != (c[((c[d >> 2] | 0) + 12) >> 2] | 0) ) { e = 0; f = e & 1; l = b; return f | 0; } e = (c[((c[d >> 2] | 0) + 4) >> 2] | 0) == 32; f = e & 1; l = b; return f | 0; } function ru() { return 0; } function su(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = uu(c[j >> 2] | 0, c[m >> 2] | 0) | 0; m = c[i >> 2] | 0; i = ((c[k >> 2] | 0) + (c[n >> 2] << 2)) | 0; a[m >> 0] = a[i >> 0] | 0; a[(m + 1) >> 0] = a[(i + 1) >> 0] | 0; du( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0 ); l = h; return ( d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 3) >> 0] | 0 | 0 ); } function tu(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = uu(c[j >> 2] | 0, c[m >> 2] | 0) | 0; a[c[i >> 2] >> 0] = a[((c[k >> 2] | 0) + (c[n >> 2] << 2)) >> 0] | 0; i = c[j >> 2] | 0; if ( (d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 3) >> 0] | 0 | 0) == 1 ) { du(i, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0); l = h; return 1; } if ((c[(i + 4) >> 2] | 0) >>> 0 >= 32) { l = h; return 1; } du( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0 ); if ((c[((c[j >> 2] | 0) + 4) >> 2] | 0) >>> 0 <= 32) { l = h; return 1; } c[((c[j >> 2] | 0) + 4) >> 2] = 32; l = h; return 1; } function uu(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( ((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> ((32 - (c[f >> 2] | 0)) & 31)) | 0 ); } function vu(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 8224) | 0; h = (g + 8220) | 0; i = (g + 8216) | 0; j = (g + 8212) | 0; k = (g + 8208) | 0; m = (g + 8204) | 0; n = g; o = (g + 8200) | 0; p = (g + 8196) | 0; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; oE(n | 0, 0, 8194) | 0; b[n >> 1] = 12; c[o >> 2] = c[k >> 2]; c[p >> 2] = Ju(n, c[k >> 2] | 0, c[m >> 2] | 0) | 0; k = (ou(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (k) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } if (f >>> 0 >= (c[m >> 2] | 0) >>> 0) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + (c[p >> 2] | 0); c[m >> 2] = (c[m >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = Ku( c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0, c[m >> 2] | 0, n ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function wu(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 16416) | 0; g = (f + 16412) | 0; h = (f + 16408) | 0; i = (f + 16404) | 0; j = (f + 16400) | 0; k = (f + 16396) | 0; m = f; n = (f + 16392) | 0; o = (f + 16388) | 0; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; oE(m | 0, 0, 16388) | 0; c[m >> 2] = 12; c[n >> 2] = c[j >> 2]; c[o >> 2] = xu(m, c[j >> 2] | 0, c[k >> 2] | 0) | 0; j = (ou(c[o >> 2] | 0) | 0) != 0; e = c[o >> 2] | 0; if (j) { c[g >> 2] = e; p = c[g >> 2] | 0; l = f; return p | 0; } if (e >>> 0 >= (c[k >> 2] | 0) >>> 0) { c[g >> 2] = -72; p = c[g >> 2] | 0; l = f; return p | 0; } else { c[n >> 2] = (c[n >> 2] | 0) + (c[o >> 2] | 0); c[k >> 2] = (c[k >> 2] | 0) - (c[o >> 2] | 0); c[g >> 2] = yu( c[h >> 2] | 0, c[i >> 2] | 0, c[n >> 2] | 0, c[k >> 2] | 0, m ) | 0; p = c[g >> 2] | 0; l = f; return p | 0; } return 0; } function xu(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0; g = l; l = (l + 2128) | 0; h = (g + 2124) | 0; i = (g + 2120) | 0; j = (g + 2116) | 0; k = (g + 2112) | 0; m = (g + 1760) | 0; n = (g + 1248) | 0; o = (g + 1168) | 0; p = (g + 1088) | 0; q = (g + 2108) | 0; r = g; s = (g + 2104) | 0; t = (g + 2100) | 0; u = (g + 2096) | 0; v = (g + 2092) | 0; w = (g + 2088) | 0; x = (g + 2084) | 0; y = (g + 2080) | 0; z = (g + 2076) | 0; A = (g + 2072) | 0; B = (g + 2068) | 0; C = (g + 2064) | 0; D = (g + 2060) | 0; E = (g + 2056) | 0; F = (g + 2052) | 0; G = (g + 2048) | 0; H = (g + 2044) | 0; I = (g + 2040) | 0; J = (g + 2036) | 0; K = (g + 2032) | 0; L = (g + 2028) | 0; M = (g + 2024) | 0; N = (g + 2020) | 0; O = (g + 2016) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; f = o; e = (f + 68) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (e | 0)); f = p; e = (f + 72) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (e | 0)); c[q >> 2] = p + 4; c[w >> 2] = c[c[i >> 2] >> 2]; c[y >> 2] = c[i >> 2]; c[z >> 2] = (c[y >> 2] | 0) + 4; if ((c[w >> 2] | 0) >>> 0 > 16) { c[h >> 2] = -44; P = c[h >> 2] | 0; l = g; return P | 0; } c[x >> 2] = zu(m, 256, o, v, s, c[j >> 2] | 0, c[k >> 2] | 0) | 0; if (ou(c[x >> 2] | 0) | 0) { c[h >> 2] = c[x >> 2]; P = c[h >> 2] | 0; l = g; return P | 0; } if ((c[s >> 2] | 0) >>> 0 > (c[w >> 2] | 0) >>> 0) { c[h >> 2] = -44; P = c[h >> 2] | 0; l = g; return P | 0; } c[t >> 2] = c[s >> 2]; while (1) { if (c[(o + (c[t >> 2] << 2)) >> 2] | 0) break; c[t >> 2] = (c[t >> 2] | 0) + -1; } c[B >> 2] = 0; c[A >> 2] = 1; while (1) { Q = c[B >> 2] | 0; if ( (c[A >> 2] | 0) >>> 0 >= (((c[t >> 2] | 0) + 1) | 0) >>> 0 ) break; c[C >> 2] = Q; c[B >> 2] = (c[B >> 2] | 0) + (c[(o + (c[A >> 2] << 2)) >> 2] | 0); c[((c[q >> 2] | 0) + (c[A >> 2] << 2)) >> 2] = c[C >> 2]; c[A >> 2] = (c[A >> 2] | 0) + 1; } c[c[q >> 2] >> 2] = Q; c[u >> 2] = c[B >> 2]; c[D >> 2] = 0; while (1) { if ((c[D >> 2] | 0) >>> 0 >= (c[v >> 2] | 0) >>> 0) break; c[E >> 2] = d[(m + (c[D >> 2] | 0)) >> 0]; B = ((c[q >> 2] | 0) + (c[E >> 2] << 2)) | 0; Q = c[B >> 2] | 0; c[B >> 2] = Q + 1; c[F >> 2] = Q; a[(n + (c[F >> 2] << 1)) >> 0] = c[D >> 2]; a[(n + (c[F >> 2] << 1) + 1) >> 0] = c[E >> 2]; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[c[q >> 2] >> 2] = 0; c[G >> 2] = r; c[H >> 2] = (c[w >> 2] | 0) - (c[s >> 2] | 0) - 1; c[I >> 2] = 0; c[J >> 2] = 1; while (1) { if ( (c[J >> 2] | 0) >>> 0 >= (((c[t >> 2] | 0) + 1) | 0) >>> 0 ) break; c[K >> 2] = c[I >> 2]; c[I >> 2] = (c[I >> 2] | 0) + (c[(o + (c[J >> 2] << 2)) >> 2] << ((c[J >> 2] | 0) + (c[H >> 2] | 0))); c[((c[G >> 2] | 0) + (c[J >> 2] << 2)) >> 2] = c[K >> 2]; c[J >> 2] = (c[J >> 2] | 0) + 1; } c[L >> 2] = (c[s >> 2] | 0) + 1 - (c[t >> 2] | 0); c[M >> 2] = c[L >> 2]; while (1) { if ( (c[M >> 2] | 0) >>> 0 >= (((c[w >> 2] | 0) - (c[L >> 2] | 0) + 1) | 0) >>> 0 ) break; c[N >> 2] = r + (((c[M >> 2] | 0) * 68) | 0); c[O >> 2] = 1; while (1) { if ( (c[O >> 2] | 0) >>> 0 >= (((c[t >> 2] | 0) + 1) | 0) >>> 0 ) break; c[((c[N >> 2] | 0) + (c[O >> 2] << 2)) >> 2] = (c[((c[G >> 2] | 0) + (c[O >> 2] << 2)) >> 2] | 0) >>> (c[M >> 2] | 0); c[O >> 2] = (c[O >> 2] | 0) + 1; } c[M >> 2] = (c[M >> 2] | 0) + 1; } Au( c[z >> 2] | 0, c[w >> 2] | 0, n, c[u >> 2] | 0, p, r, c[t >> 2] | 0, ((c[s >> 2] | 0) + 1) | 0 ); c[h >> 2] = c[x >> 2]; P = c[h >> 2] | 0; l = g; return P | 0; } function yu(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0; g = l; l = (l + 192) | 0; h = (g + 184) | 0; i = (g + 180) | 0; j = (g + 176) | 0; k = (g + 172) | 0; m = (g + 168) | 0; n = (g + 164) | 0; o = (g + 160) | 0; p = (g + 156) | 0; q = (g + 152) | 0; r = (g + 148) | 0; s = (g + 144) | 0; t = (g + 140) | 0; u = (g + 136) | 0; v = (g + 120) | 0; w = (g + 104) | 0; x = (g + 88) | 0; y = (g + 72) | 0; z = (g + 64) | 0; A = (g + 60) | 0; B = (g + 56) | 0; C = (g + 52) | 0; D = (g + 48) | 0; E = (g + 44) | 0; F = (g + 40) | 0; G = (g + 36) | 0; H = (g + 32) | 0; I = (g + 28) | 0; J = (g + 24) | 0; K = (g + 20) | 0; L = (g + 16) | 0; M = (g + 12) | 0; N = (g + 8) | 0; O = (g + 4) | 0; P = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ((c[m >> 2] | 0) >>> 0 < 10) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[o >> 2] = c[k >> 2]; c[p >> 2] = c[i >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[j >> 2] | 0); c[r >> 2] = c[n >> 2]; c[s >> 2] = (c[r >> 2] | 0) + 4; c[t >> 2] = c[c[n >> 2] >> 2]; c[z >> 2] = (Oq(c[o >> 2] | 0) | 0) & 65535; c[A >> 2] = (Oq(((c[o >> 2] | 0) + 2) | 0) | 0) & 65535; c[B >> 2] = (Oq(((c[o >> 2] | 0) + 4) | 0) | 0) & 65535; c[D >> 2] = (c[o >> 2] | 0) + 6; c[E >> 2] = (c[D >> 2] | 0) + (c[z >> 2] | 0); c[F >> 2] = (c[E >> 2] | 0) + (c[A >> 2] | 0); c[G >> 2] = (c[F >> 2] | 0) + (c[B >> 2] | 0); c[H >> 2] = (((((c[j >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[I >> 2] = (c[p >> 2] | 0) + (c[H >> 2] | 0); c[J >> 2] = (c[I >> 2] | 0) + (c[H >> 2] | 0); c[K >> 2] = (c[J >> 2] | 0) + (c[H >> 2] | 0); c[L >> 2] = c[p >> 2]; c[M >> 2] = c[I >> 2]; c[N >> 2] = c[J >> 2]; c[O >> 2] = c[K >> 2]; c[C >> 2] = (c[m >> 2] | 0) - ((c[z >> 2] | 0) + (c[A >> 2] | 0) + (c[B >> 2] | 0) + 6); if ((c[C >> 2] | 0) >>> 0 > (c[m >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = St(v, c[D >> 2] | 0, c[z >> 2] | 0) | 0; if (ou(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = St(w, c[E >> 2] | 0, c[A >> 2] | 0) | 0; if (ou(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = St(x, c[F >> 2] | 0, c[B >> 2] | 0) | 0; if (ou(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = St(y, c[G >> 2] | 0, c[C >> 2] | 0) | 0; if (ou(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } u = Ut(v) | 0; C = u | (Ut(w) | 0); u = C | (Ut(x) | 0); c[P >> 2] = u | (Ut(y) | 0); while (1) { if (c[P >> 2] | 0) break; if ( (c[O >> 2] | 0) >>> 0 >= (((c[q >> 2] | 0) + -7) | 0) >>> 0 ) break; if (ru() | 0) { u = su(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; } if (ru() | 0) { u = su(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; } if (ru() | 0) { u = su(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; } if (ru() | 0) { u = su(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; } ru() | 0; u = su(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; ru() | 0; u = su(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; ru() | 0; u = su(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; ru() | 0; u = su(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; if (ru() | 0) { u = su(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; } if (ru() | 0) { u = su(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; } if (ru() | 0) { u = su(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; } if (ru() | 0) { u = su(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; } u = su(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; u = su(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; u = su(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; u = su(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; u = Ut(v) | 0; C = u | (Ut(w) | 0); u = C | (Ut(x) | 0); c[P >> 2] = u | (Ut(y) | 0); } if ((c[L >> 2] | 0) >>> 0 > (c[I >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } if ((c[M >> 2] | 0) >>> 0 > (c[J >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } if ((c[N >> 2] | 0) >>> 0 > (c[K >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } pu( c[L >> 2] | 0, v, c[I >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; pu( c[M >> 2] | 0, w, c[J >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; pu( c[N >> 2] | 0, x, c[K >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; pu( c[O >> 2] | 0, y, c[q >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; t = qu(v) | 0; v = t & (qu(w) | 0); w = v & (qu(x) | 0); c[P >> 2] = w & (qu(y) | 0); if (c[P >> 2] | 0) { c[h >> 2] = c[j >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } else { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } return 0; } function zu(b, e, f, g, h, i, j) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0; k = l; l = (l + 80) | 0; m = (k + 72) | 0; n = (k + 68) | 0; o = (k + 64) | 0; p = (k + 60) | 0; q = (k + 56) | 0; r = (k + 52) | 0; s = (k + 48) | 0; t = (k + 44) | 0; u = (k + 40) | 0; v = (k + 36) | 0; w = (k + 32) | 0; x = (k + 28) | 0; y = (k + 24) | 0; z = (k + 20) | 0; A = (k + 16) | 0; B = (k + 12) | 0; C = (k + 8) | 0; D = (k + 4) | 0; E = k; c[n >> 2] = b; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[v >> 2] = c[s >> 2]; if (!(c[t >> 2] | 0)) { c[m >> 2] = -72; F = c[m >> 2] | 0; l = k; return F | 0; } c[w >> 2] = d[c[v >> 2] >> 0]; s = c[w >> 2] | 0; a: do { if ((c[w >> 2] | 0) >>> 0 < 128) { if (((s + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) { c[m >> 2] = -72; F = c[m >> 2] | 0; l = k; return F | 0; } c[x >> 2] = Eu( c[n >> 2] | 0, ((c[o >> 2] | 0) - 1) | 0, ((c[v >> 2] | 0) + 1) | 0, c[w >> 2] | 0 ) | 0; if (jr(c[x >> 2] | 0) | 0) { c[m >> 2] = c[x >> 2]; F = c[m >> 2] | 0; l = k; return F | 0; } } else { j = c[w >> 2] | 0; if (s >>> 0 >= 242) { c[x >> 2] = c[(7392 + ((j - 242) << 2)) >> 2]; oE(c[n >> 2] | 0, 1, c[o >> 2] | 0) | 0; c[w >> 2] = 0; break; } c[x >> 2] = j - 127; c[w >> 2] = (((((c[x >> 2] | 0) + 1) | 0) >>> 0) / 2) | 0; if ( (((c[w >> 2] | 0) + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[m >> 2] = -72; F = c[m >> 2] | 0; l = k; return F | 0; } if ((c[x >> 2] | 0) >>> 0 >= (c[o >> 2] | 0) >>> 0) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } c[v >> 2] = (c[v >> 2] | 0) + 1; c[y >> 2] = 0; while (1) { if ((c[y >> 2] | 0) >>> 0 >= (c[x >> 2] | 0) >>> 0) break a; a[((c[n >> 2] | 0) + (c[y >> 2] | 0)) >> 0] = (d[ ((c[v >> 2] | 0) + ((((c[y >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) >> 4; a[((c[n >> 2] | 0) + ((c[y >> 2] | 0) + 1)) >> 0] = (d[ ((c[v >> 2] | 0) + ((((c[y >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) & 15; c[y >> 2] = (c[y >> 2] | 0) + 2; } } } while (0); y = c[p >> 2] | 0; v = (y + 68) | 0; do { c[y >> 2] = 0; y = (y + 4) | 0; } while ((y | 0) < (v | 0)); c[u >> 2] = 0; c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[x >> 2] | 0) >>> 0) break; if ( (d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0 | 0) >= 16 ) { G = 20; break; } y = ((c[p >> 2] | 0) + ((d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0) << 2)) | 0; c[y >> 2] = (c[y >> 2] | 0) + 1; c[u >> 2] = (c[u >> 2] | 0) + ((1 << (d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0)) >> 1); c[z >> 2] = (c[z >> 2] | 0) + 1; } if ((G | 0) == 20) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } if (!(c[u >> 2] | 0)) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } c[A >> 2] = (fu(c[u >> 2] | 0) | 0) + 1; if ((c[A >> 2] | 0) >>> 0 > 16) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } c[c[r >> 2] >> 2] = c[A >> 2]; c[B >> 2] = 1 << c[A >> 2]; c[C >> 2] = (c[B >> 2] | 0) - (c[u >> 2] | 0); c[D >> 2] = 1 << (fu(c[C >> 2] | 0) | 0); c[E >> 2] = (fu(c[C >> 2] | 0) | 0) + 1; if ((c[D >> 2] | 0) != (c[C >> 2] | 0)) { c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } a[((c[n >> 2] | 0) + (c[x >> 2] | 0)) >> 0] = c[E >> 2]; n = ((c[p >> 2] | 0) + (c[E >> 2] << 2)) | 0; c[n >> 2] = (c[n >> 2] | 0) + 1; if ( (c[((c[p >> 2] | 0) + 4) >> 2] | 0) >>> 0 >= 2 ? ((c[((c[p >> 2] | 0) + 4) >> 2] & 1) | 0) == 0 : 0 ) { c[c[q >> 2] >> 2] = (c[x >> 2] | 0) + 1; c[m >> 2] = (c[w >> 2] | 0) + 1; F = c[m >> 2] | 0; l = k; return F | 0; } c[m >> 2] = -20; F = c[m >> 2] | 0; l = k; return F | 0; } function Au(e, f, g, h, i, j, k, m) { e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0; n = l; l = (l + 160) | 0; o = (n + 140) | 0; p = (n + 136) | 0; q = (n + 132) | 0; r = (n + 128) | 0; s = (n + 124) | 0; t = (n + 120) | 0; u = (n + 116) | 0; v = (n + 112) | 0; w = n; x = (n + 108) | 0; y = (n + 104) | 0; z = (n + 100) | 0; A = (n + 148) | 0; B = (n + 96) | 0; C = (n + 92) | 0; D = (n + 88) | 0; E = (n + 84) | 0; F = (n + 80) | 0; G = (n + 76) | 0; H = (n + 144) | 0; I = (n + 72) | 0; J = (n + 68) | 0; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = k; c[v >> 2] = m; c[x >> 2] = (c[v >> 2] | 0) - (c[p >> 2] | 0); c[y >> 2] = (c[v >> 2] | 0) - (c[u >> 2] | 0); u = w; m = c[t >> 2] | 0; k = (u + 68) | 0; do { c[u >> 2] = c[m >> 2]; u = (u + 4) | 0; m = (m + 4) | 0; } while ((u | 0) < (k | 0)); c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[r >> 2] | 0) >>> 0) break; b[A >> 1] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1)) >> 0] | 0; c[B >> 2] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1) + 1) >> 0]; c[C >> 2] = (c[v >> 2] | 0) - (c[B >> 2] | 0); c[D >> 2] = c[(w + (c[B >> 2] << 2)) >> 2]; c[E >> 2] = 1 << ((c[p >> 2] | 0) - (c[C >> 2] | 0)); a: do { if ( (((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0 ) { m = ((c[C >> 2] | 0) + (c[x >> 2] | 0)) | 0; c[G >> 2] = m; c[G >> 2] = (c[G >> 2] | 0) < 1 ? 1 : m; c[F >> 2] = c[((c[s >> 2] | 0) + (c[G >> 2] << 2)) >> 2]; Bu( ((c[o >> 2] | 0) + (c[D >> 2] << 2)) | 0, ((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0, c[C >> 2] | 0, ((c[t >> 2] | 0) + (((c[C >> 2] | 0) * 68) | 0)) | 0, c[G >> 2] | 0, ((c[q >> 2] | 0) + (c[F >> 2] << 1)) | 0, ((c[r >> 2] | 0) - (c[F >> 2] | 0)) | 0, c[v >> 2] | 0, b[A >> 1] | 0 ); } else { Cu(H, b[A >> 1] | 0); a[(H + 2) >> 0] = c[C >> 2]; a[(H + 3) >> 0] = 1; c[J >> 2] = (c[D >> 2] | 0) + (c[E >> 2] | 0); c[I >> 2] = c[D >> 2]; while (1) { if ((c[I >> 2] | 0) >>> 0 >= (c[J >> 2] | 0) >>> 0) break a; m = ((c[o >> 2] | 0) + (c[I >> 2] << 2)) | 0; b[m >> 1] = b[H >> 1] | 0; b[(m + 2) >> 1] = b[(H + 2) >> 1] | 0; c[I >> 2] = (c[I >> 2] | 0) + 1; } } } while (0); m = (w + (c[B >> 2] << 2)) | 0; c[m >> 2] = (c[m >> 2] | 0) + (c[E >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + 1; } l = n; return; } function Bu(f, g, h, i, j, k, m, n, o) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; o = o | 0; var p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; p = l; l = (l + 160) | 0; q = (p + 136) | 0; r = (p + 132) | 0; s = (p + 128) | 0; t = (p + 124) | 0; u = (p + 120) | 0; v = (p + 116) | 0; w = (p + 112) | 0; x = (p + 108) | 0; y = (p + 144) | 0; z = (p + 140) | 0; A = p; B = (p + 104) | 0; C = (p + 100) | 0; D = (p + 96) | 0; E = (p + 92) | 0; F = (p + 88) | 0; G = (p + 84) | 0; H = (p + 80) | 0; I = (p + 76) | 0; J = (p + 72) | 0; K = (p + 68) | 0; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = j; c[v >> 2] = k; c[w >> 2] = m; c[x >> 2] = n; b[y >> 1] = o; o = A; n = c[t >> 2] | 0; t = (o + 68) | 0; do { c[o >> 2] = c[n >> 2]; o = (o + 4) | 0; n = (n + 4) | 0; } while ((o | 0) < (t | 0)); a: do { if ((c[u >> 2] | 0) > 1) { c[C >> 2] = c[(A + (c[u >> 2] << 2)) >> 2]; Cu(z, b[y >> 1] | 0); a[(z + 2) >> 0] = c[s >> 2]; a[(z + 3) >> 0] = 1; c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 >= (c[C >> 2] | 0) >>> 0) break a; n = ((c[q >> 2] | 0) + (c[B >> 2] << 2)) | 0; b[n >> 1] = b[z >> 1] | 0; b[(n + 2) >> 1] = b[(z + 2) >> 1] | 0; c[B >> 2] = (c[B >> 2] | 0) + 1; } } } while (0); c[D >> 2] = 0; while (1) { if ((c[D >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[E >> 2] = d[((c[v >> 2] | 0) + (c[D >> 2] << 1)) >> 0]; c[F >> 2] = d[((c[v >> 2] | 0) + (c[D >> 2] << 1) + 1) >> 0]; c[G >> 2] = (c[x >> 2] | 0) - (c[F >> 2] | 0); c[H >> 2] = 1 << ((c[r >> 2] | 0) - (c[G >> 2] | 0)); c[I >> 2] = c[(A + (c[F >> 2] << 2)) >> 2]; c[J >> 2] = c[I >> 2]; c[K >> 2] = (c[I >> 2] | 0) + (c[H >> 2] | 0); Cu(z, ((e[y >> 1] | 0) + (c[E >> 2] << 8)) & 65535); a[(z + 2) >> 0] = (c[G >> 2] | 0) + (c[s >> 2] | 0); a[(z + 3) >> 0] = 2; do { B = c[q >> 2] | 0; C = c[J >> 2] | 0; c[J >> 2] = C + 1; u = (B + (C << 2)) | 0; b[u >> 1] = b[z >> 1] | 0; b[(u + 2) >> 1] = b[(z + 2) >> 1] | 0; } while ((c[J >> 2] | 0) >>> 0 < (c[K >> 2] | 0) >>> 0); u = (A + (c[F >> 2] << 2)) | 0; c[u >> 2] = (c[u >> 2] | 0) + (c[H >> 2] | 0); c[D >> 2] = (c[D >> 2] | 0) + 1; } l = p; return; } function Cu(d, f) { d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; g = l; l = (l + 16) | 0; h = (g + 4) | 0; i = (g + 8) | 0; j = g; c[h >> 2] = d; b[i >> 1] = f; f = (Qq() | 0) != 0; d = c[h >> 2] | 0; if (f) { Du(d, b[i >> 1] | 0); l = g; return; } else { c[j >> 2] = d; a[c[j >> 2] >> 0] = b[i >> 1]; a[((c[j >> 2] | 0) + 1) >> 0] = (e[i >> 1] | 0) >> 8; l = g; return; } } function Du(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = f; h = (f + 4) | 0; c[g >> 2] = d; b[h >> 1] = e; e = c[g >> 2] | 0; a[e >> 0] = a[h >> 0] | 0; a[(e + 1) >> 0] = a[(h + 1) >> 0] | 0; l = f; return; } function Eu(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; f = l; l = (l + 16960) | 0; g = (f + 16952) | 0; h = (f + 16948) | 0; i = (f + 16944) | 0; j = (f + 16940) | 0; k = (f + 16936) | 0; m = (f + 16932) | 0; n = (f + 16928) | 0; o = (f + 16400) | 0; p = f; q = (f + 16924) | 0; r = (f + 16920) | 0; s = (f + 16916) | 0; t = (f + 16912) | 0; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = c[j >> 2]; c[n >> 2] = c[m >> 2]; c[r >> 2] = 255; if ((c[k >> 2] | 0) >>> 0 < 2) { c[g >> 2] = -72; u = c[g >> 2] | 0; l = f; return u | 0; } c[s >> 2] = ju(o, r, q, c[m >> 2] | 0, c[k >> 2] | 0) | 0; m = (jr(c[s >> 2] | 0) | 0) != 0; j = c[s >> 2] | 0; if (m) { c[g >> 2] = j; u = c[g >> 2] | 0; l = f; return u | 0; } if (j >>> 0 >= (c[k >> 2] | 0) >>> 0) { c[g >> 2] = -72; u = c[g >> 2] | 0; l = f; return u | 0; } c[n >> 2] = (c[n >> 2] | 0) + (c[s >> 2] | 0); c[k >> 2] = (c[k >> 2] | 0) - (c[s >> 2] | 0); c[t >> 2] = iu(p, o, c[r >> 2] | 0, c[q >> 2] | 0) | 0; if (jr(c[t >> 2] | 0) | 0) { c[g >> 2] = c[t >> 2]; u = c[g >> 2] | 0; l = f; return u | 0; } else { c[g >> 2] = Fu( c[h >> 2] | 0, c[i >> 2] | 0, c[n >> 2] | 0, c[k >> 2] | 0, p ) | 0; u = c[g >> 2] | 0; l = f; return u | 0; } return 0; } function Fu(b, d, f, g, h) { b = b | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0; i = l; l = (l + 208) | 0; j = (i + 192) | 0; k = (i + 188) | 0; m = (i + 184) | 0; n = (i + 180) | 0; o = (i + 176) | 0; p = (i + 172) | 0; q = (i + 168) | 0; r = (i + 164) | 0; s = (i + 160) | 0; t = (i + 156) | 0; u = (i + 152) | 0; v = (i + 136) | 0; w = (i + 128) | 0; x = (i + 120) | 0; y = (i + 116) | 0; z = (i + 112) | 0; A = (i + 108) | 0; B = (i + 104) | 0; C = (i + 100) | 0; D = (i + 96) | 0; E = (i + 92) | 0; F = (i + 88) | 0; G = (i + 84) | 0; H = (i + 80) | 0; I = (i + 76) | 0; J = (i + 72) | 0; K = (i + 56) | 0; L = (i + 48) | 0; M = (i + 40) | 0; N = (i + 36) | 0; O = (i + 32) | 0; P = (i + 28) | 0; Q = (i + 24) | 0; R = (i + 20) | 0; S = (i + 16) | 0; T = (i + 12) | 0; U = (i + 8) | 0; V = (i + 4) | 0; W = i; c[P >> 2] = b; c[Q >> 2] = d; c[R >> 2] = f; c[S >> 2] = g; c[T >> 2] = h; c[U >> 2] = c[T >> 2]; c[V >> 2] = c[U >> 2]; c[W >> 2] = e[((c[V >> 2] | 0) + 2) >> 1]; V = c[P >> 2] | 0; P = c[Q >> 2] | 0; Q = c[R >> 2] | 0; R = c[S >> 2] | 0; S = c[T >> 2] | 0; if (c[W >> 2] | 0) { c[A >> 2] = V; c[B >> 2] = P; c[C >> 2] = Q; c[D >> 2] = R; c[E >> 2] = S; c[F >> 2] = 1; c[G >> 2] = c[A >> 2]; c[H >> 2] = c[G >> 2]; c[I >> 2] = (c[H >> 2] | 0) + (c[B >> 2] | 0); c[J >> 2] = (c[I >> 2] | 0) + -3; c[N >> 2] = St(K, c[C >> 2] | 0, c[D >> 2] | 0) | 0; do { if (jr(c[N >> 2] | 0) | 0) c[z >> 2] = c[N >> 2]; else { Tt(L, K, c[E >> 2] | 0); Tt(M, K, c[E >> 2] | 0); while (1) { if (Ut(K) | 0) break; if ((c[H >> 2] | 0) >>> 0 >= (c[J >> 2] | 0) >>> 0) break; if (c[F >> 2] | 0) X = (Gu(L, K) | 0) & 255; else X = (Hu(L, K) | 0) & 255; a[c[H >> 2] >> 0] = X; if (c[F >> 2] | 0) Y = (Gu(M, K) | 0) & 255; else Y = (Hu(M, K) | 0) & 255; a[((c[H >> 2] | 0) + 1) >> 0] = Y; if ((Ut(K) | 0) >>> 0 > 0) { Z = 14; break; } if (c[F >> 2] | 0) _ = (Gu(L, K) | 0) & 255; else _ = (Hu(L, K) | 0) & 255; a[((c[H >> 2] | 0) + 2) >> 0] = _; if (c[F >> 2] | 0) $ = (Gu(M, K) | 0) & 255; else $ = (Hu(M, K) | 0) & 255; a[((c[H >> 2] | 0) + 3) >> 0] = $; c[H >> 2] = (c[H >> 2] | 0) + 4; } if ((Z | 0) == 14) c[H >> 2] = (c[H >> 2] | 0) + 2; while (1) { if ( (c[H >> 2] | 0) >>> 0 > (((c[I >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 24; break; } if (c[F >> 2] | 0) aa = (Gu(L, K) | 0) & 255; else aa = (Hu(L, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = aa; if ((Ut(K) | 0) == 3) { Z = 29; break; } if ( (c[H >> 2] | 0) >>> 0 > (((c[I >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 34; break; } if (c[F >> 2] | 0) ba = (Gu(M, K) | 0) & 255; else ba = (Hu(M, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = ba; if ((Ut(K) | 0) == 3) { Z = 39; break; } } if ((Z | 0) == 24) { c[z >> 2] = -70; break; } else if ((Z | 0) == 29) { if (c[F >> 2] | 0) ca = (Gu(M, K) | 0) & 255; else ca = (Hu(M, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = ca; } else if ((Z | 0) == 34) { c[z >> 2] = -70; break; } else if ((Z | 0) == 39) { if (c[F >> 2] | 0) da = (Gu(L, K) | 0) & 255; else da = (Hu(L, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = da; } c[z >> 2] = (c[H >> 2] | 0) - (c[G >> 2] | 0); } } while (0); c[O >> 2] = c[z >> 2]; ea = c[O >> 2] | 0; l = i; return ea | 0; } else { c[k >> 2] = V; c[m >> 2] = P; c[n >> 2] = Q; c[o >> 2] = R; c[p >> 2] = S; c[q >> 2] = 0; c[r >> 2] = c[k >> 2]; c[s >> 2] = c[r >> 2]; c[t >> 2] = (c[s >> 2] | 0) + (c[m >> 2] | 0); c[u >> 2] = (c[t >> 2] | 0) + -3; c[y >> 2] = St(v, c[n >> 2] | 0, c[o >> 2] | 0) | 0; do { if (jr(c[y >> 2] | 0) | 0) c[j >> 2] = c[y >> 2]; else { Tt(w, v, c[p >> 2] | 0); Tt(x, v, c[p >> 2] | 0); while (1) { if (Ut(v) | 0) break; if ((c[s >> 2] | 0) >>> 0 >= (c[u >> 2] | 0) >>> 0) break; if (c[q >> 2] | 0) fa = (Gu(w, v) | 0) & 255; else fa = (Hu(w, v) | 0) & 255; a[c[s >> 2] >> 0] = fa; if (c[q >> 2] | 0) ga = (Gu(x, v) | 0) & 255; else ga = (Hu(x, v) | 0) & 255; a[((c[s >> 2] | 0) + 1) >> 0] = ga; if ((Ut(v) | 0) >>> 0 > 0) { Z = 58; break; } if (c[q >> 2] | 0) ha = (Gu(w, v) | 0) & 255; else ha = (Hu(w, v) | 0) & 255; a[((c[s >> 2] | 0) + 2) >> 0] = ha; if (c[q >> 2] | 0) ia = (Gu(x, v) | 0) & 255; else ia = (Hu(x, v) | 0) & 255; a[((c[s >> 2] | 0) + 3) >> 0] = ia; c[s >> 2] = (c[s >> 2] | 0) + 4; } if ((Z | 0) == 58) c[s >> 2] = (c[s >> 2] | 0) + 2; while (1) { if ( (c[s >> 2] | 0) >>> 0 > (((c[t >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 68; break; } if (c[q >> 2] | 0) ja = (Gu(w, v) | 0) & 255; else ja = (Hu(w, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ja; if ((Ut(v) | 0) == 3) { Z = 73; break; } if ( (c[s >> 2] | 0) >>> 0 > (((c[t >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 78; break; } if (c[q >> 2] | 0) ka = (Gu(x, v) | 0) & 255; else ka = (Hu(x, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ka; if ((Ut(v) | 0) == 3) { Z = 83; break; } } if ((Z | 0) == 68) { c[j >> 2] = -70; break; } else if ((Z | 0) == 73) { if (c[q >> 2] | 0) la = (Gu(x, v) | 0) & 255; else la = (Hu(x, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = la; } else if ((Z | 0) == 78) { c[j >> 2] = -70; break; } else if ((Z | 0) == 83) { if (c[q >> 2] | 0) ma = (Gu(w, v) | 0) & 255; else ma = (Hu(w, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ma; } c[j >> 2] = (c[s >> 2] | 0) - (c[r >> 2] | 0); } } while (0); c[O >> 2] = c[j >> 2]; ea = c[O >> 2] | 0; l = i; return ea | 0; } return 0; } function Gu(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = Iu(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function Hu(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = $t(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function Iu(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = uu(c[e >> 2] | 0, c[f >> 2] | 0) | 0; du(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function Ju(f, g, h) { f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; i = l; l = (l + 400) | 0; j = (i + 392) | 0; k = (i + 388) | 0; m = (i + 384) | 0; n = (i + 380) | 0; o = (i + 80) | 0; p = i; q = (i + 376) | 0; r = (i + 372) | 0; s = (i + 368) | 0; t = (i + 364) | 0; u = (i + 360) | 0; v = (i + 356) | 0; w = (i + 352) | 0; x = (i + 348) | 0; y = (i + 344) | 0; z = (i + 340) | 0; A = (i + 336) | 0; B = (i + 396) | 0; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = h; c[q >> 2] = 0; c[s >> 2] = 0; c[v >> 2] = (c[k >> 2] | 0) + 2; c[w >> 2] = c[v >> 2]; c[r >> 2] = zu(o, 256, p, s, q, c[m >> 2] | 0, c[n >> 2] | 0) | 0; if (ou(c[r >> 2] | 0) | 0) { c[j >> 2] = c[r >> 2]; C = c[j >> 2] | 0; l = i; return C | 0; } if ((c[q >> 2] | 0) >>> 0 > (e[c[k >> 2] >> 1] | 0) >>> 0) { c[j >> 2] = -44; C = c[j >> 2] | 0; l = i; return C | 0; } b[c[k >> 2] >> 1] = c[q >> 2]; c[u >> 2] = 0; c[t >> 2] = 1; while (1) { if ( (c[t >> 2] | 0) >>> 0 >= (((c[q >> 2] | 0) + 1) | 0) >>> 0 ) break; c[x >> 2] = c[u >> 2]; c[u >> 2] = (c[u >> 2] | 0) + (c[(p + (c[t >> 2] << 2)) >> 2] << ((c[t >> 2] | 0) - 1)); c[(p + (c[t >> 2] << 2)) >> 2] = c[x >> 2]; c[t >> 2] = (c[t >> 2] | 0) + 1; } c[t >> 2] = 0; while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[s >> 2] | 0) >>> 0) break; c[y >> 2] = d[(o + (c[t >> 2] | 0)) >> 0]; c[z >> 2] = (1 << c[y >> 2]) >> 1; a[B >> 0] = c[t >> 2]; a[(B + 1) >> 0] = (c[q >> 2] | 0) + 1 - (c[y >> 2] | 0); c[A >> 2] = c[(p + (c[y >> 2] << 2)) >> 2]; while (1) { if ( (c[A >> 2] | 0) >>> 0 >= (((c[(p + (c[y >> 2] << 2)) >> 2] | 0) + (c[z >> 2] | 0)) | 0) >>> 0 ) break; x = ((c[w >> 2] | 0) + (c[A >> 2] << 1)) | 0; a[x >> 0] = a[B >> 0] | 0; a[(x + 1) >> 0] = a[(B + 1) >> 0] | 0; c[A >> 2] = (c[A >> 2] | 0) + 1; } x = (p + (c[y >> 2] << 2)) | 0; c[x >> 2] = (c[x >> 2] | 0) + (c[z >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) + 1; } c[j >> 2] = c[r >> 2]; C = c[j >> 2] | 0; l = i; return C | 0; } function Ku(b, d, f, g, h) { b = b | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0; i = l; l = (l + 192) | 0; j = (i + 184) | 0; k = (i + 180) | 0; m = (i + 176) | 0; n = (i + 172) | 0; o = (i + 168) | 0; p = (i + 164) | 0; q = (i + 160) | 0; r = (i + 156) | 0; s = (i + 152) | 0; t = (i + 148) | 0; u = (i + 144) | 0; v = (i + 140) | 0; w = (i + 136) | 0; x = (i + 120) | 0; y = (i + 104) | 0; z = (i + 88) | 0; A = (i + 72) | 0; B = (i + 64) | 0; C = (i + 60) | 0; D = (i + 56) | 0; E = (i + 52) | 0; F = (i + 48) | 0; G = (i + 44) | 0; H = (i + 40) | 0; I = (i + 36) | 0; J = (i + 32) | 0; K = (i + 28) | 0; L = (i + 24) | 0; M = (i + 20) | 0; N = (i + 16) | 0; O = (i + 12) | 0; P = (i + 8) | 0; Q = (i + 4) | 0; R = i; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; if ((c[o >> 2] | 0) >>> 0 < 10) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } c[q >> 2] = c[n >> 2]; c[r >> 2] = c[k >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[m >> 2] | 0); c[t >> 2] = c[p >> 2]; c[u >> 2] = (c[t >> 2] | 0) + 2; c[v >> 2] = e[c[p >> 2] >> 1]; c[B >> 2] = (Oq(c[q >> 2] | 0) | 0) & 65535; c[C >> 2] = (Oq(((c[q >> 2] | 0) + 2) | 0) | 0) & 65535; c[D >> 2] = (Oq(((c[q >> 2] | 0) + 4) | 0) | 0) & 65535; c[F >> 2] = (c[q >> 2] | 0) + 6; c[G >> 2] = (c[F >> 2] | 0) + (c[B >> 2] | 0); c[H >> 2] = (c[G >> 2] | 0) + (c[C >> 2] | 0); c[I >> 2] = (c[H >> 2] | 0) + (c[D >> 2] | 0); c[J >> 2] = (((((c[m >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[K >> 2] = (c[r >> 2] | 0) + (c[J >> 2] | 0); c[L >> 2] = (c[K >> 2] | 0) + (c[J >> 2] | 0); c[M >> 2] = (c[L >> 2] | 0) + (c[J >> 2] | 0); c[N >> 2] = c[r >> 2]; c[O >> 2] = c[K >> 2]; c[P >> 2] = c[L >> 2]; c[Q >> 2] = c[M >> 2]; c[E >> 2] = (c[o >> 2] | 0) - ((c[B >> 2] | 0) + (c[C >> 2] | 0) + (c[D >> 2] | 0) + 6); if ((c[E >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = St(x, c[F >> 2] | 0, c[B >> 2] | 0) | 0; if (ou(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = St(y, c[G >> 2] | 0, c[C >> 2] | 0) | 0; if (ou(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = St(z, c[H >> 2] | 0, c[D >> 2] | 0) | 0; if (ou(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = St(A, c[I >> 2] | 0, c[E >> 2] | 0) | 0; if (ou(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } w = Ut(x) | 0; E = w | (Ut(y) | 0); w = E | (Ut(z) | 0); c[R >> 2] = w | (Ut(A) | 0); while (1) { if (c[R >> 2] | 0) break; if ( (c[Q >> 2] | 0) >>> 0 >= (((c[s >> 2] | 0) + -7) | 0) >>> 0 ) break; if (ru() | 0) { w = Lu(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; } if (ru() | 0) { w = Lu(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; } if (ru() | 0) { w = Lu(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; } if (ru() | 0) { w = Lu(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; } ru() | 0; w = Lu(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; ru() | 0; w = Lu(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; ru() | 0; w = Lu(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; ru() | 0; w = Lu(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; if (ru() | 0) { w = Lu(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; } if (ru() | 0) { w = Lu(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; } if (ru() | 0) { w = Lu(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; } if (ru() | 0) { w = Lu(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; } w = Lu(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; w = Lu(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; w = Lu(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; w = Lu(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; w = Ut(x) | 0; E = w | (Ut(y) | 0); w = E | (Ut(z) | 0); c[R >> 2] = w | (Ut(A) | 0); } if ((c[N >> 2] | 0) >>> 0 > (c[K >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } if ((c[O >> 2] | 0) >>> 0 > (c[L >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } if ((c[P >> 2] | 0) >>> 0 > (c[M >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } Mu( c[N >> 2] | 0, x, c[K >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; Mu( c[O >> 2] | 0, y, c[L >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; Mu( c[P >> 2] | 0, z, c[M >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; Mu( c[Q >> 2] | 0, A, c[s >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; v = qu(x) | 0; x = v & (qu(y) | 0); y = x & (qu(z) | 0); c[R >> 2] = y & (qu(A) | 0); if (c[R >> 2] | 0) { c[j >> 2] = c[m >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } else { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } return 0; } function Lu(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 4) | 0; k = g; m = (g + 16) | 0; c[h >> 2] = b; c[i >> 2] = e; c[j >> 2] = f; c[k >> 2] = uu(c[h >> 2] | 0, c[j >> 2] | 0) | 0; a[m >> 0] = a[((c[i >> 2] | 0) + (c[k >> 2] << 1)) >> 0] | 0; du( c[h >> 2] | 0, d[((c[i >> 2] | 0) + (c[k >> 2] << 1) + 1) >> 0] | 0 ); l = g; return a[m >> 0] | 0; } function Mu(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 20) | 0; j = (h + 16) | 0; k = (h + 12) | 0; m = (h + 8) | 0; n = (h + 4) | 0; o = h; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = c[i >> 2]; while (1) { if (Ut(c[j >> 2] | 0) | 0) break; if ( (c[i >> 2] | 0) >>> 0 > (((c[k >> 2] | 0) + -4) | 0) >>> 0 ) break; if (ru() | 0) { g = Lu(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } ru() | 0; g = Lu(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; if (ru() | 0) { g = Lu(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } g = Lu(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } while (1) { if (Ut(c[j >> 2] | 0) | 0) break; if ((c[i >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; g = Lu(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } while (1) { if ((c[i >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; g = Lu(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } l = h; return ((c[k >> 2] | 0) - (c[o >> 2] | 0)) | 0; } function Nu(a, b, d, f, g) { a = a | 0; b = b | 0; d = d | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; h = l; l = (l + 80) | 0; i = (h + 64) | 0; j = (h + 60) | 0; k = (h + 56) | 0; m = (h + 52) | 0; n = (h + 48) | 0; o = (h + 44) | 0; p = (h + 40) | 0; q = (h + 36) | 0; r = (h + 32) | 0; s = (h + 28) | 0; t = (h + 24) | 0; u = (h + 8) | 0; v = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[j >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[k >> 2] | 0); c[r >> 2] = e[c[o >> 2] >> 1]; c[s >> 2] = c[o >> 2]; c[t >> 2] = (c[s >> 2] | 0) + 2; c[v >> 2] = St(u, c[m >> 2] | 0, c[n >> 2] | 0) | 0; if (ou(c[v >> 2] | 0) | 0) { c[i >> 2] = c[v >> 2]; w = c[i >> 2] | 0; l = h; return w | 0; } Mu( c[p >> 2] | 0, u, c[q >> 2] | 0, c[t >> 2] | 0, c[r >> 2] | 0 ) | 0; if (qu(u) | 0) { c[i >> 2] = c[k >> 2]; w = c[i >> 2] | 0; l = h; return w | 0; } else { c[i >> 2] = -20; w = c[i >> 2] | 0; l = h; return w | 0; } return 0; } function Ou(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; c[((c[d >> 2] | 0) + 21536) >> 2] = 5; c[((c[d >> 2] | 0) + 21564) >> 2] = 0; c[((c[d >> 2] | 0) + 21520) >> 2] = 0; c[((c[d >> 2] | 0) + 21524) >> 2] = 0; c[((c[d >> 2] | 0) + 21528) >> 2] = 0; c[((c[d >> 2] | 0) + 21532) >> 2] = 0; c[((c[d >> 2] | 0) + 5132) >> 2] = 12; c[((c[d >> 2] | 0) + 21568) >> 2] = 0; l = b; return 0; } function Pu(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[k >> 2] = Mq(c[h >> 2] | 0) | 0; if ((c[k >> 2] | 0) != -332356554) { Qu(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0); c[f >> 2] = 0; m = c[f >> 2] | 0; l = e; return m | 0; } c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) - 4; c[j >> 2] = Ru(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if (jr(c[j >> 2] | 0) | 0) { c[f >> 2] = -30; m = c[f >> 2] | 0; l = e; return m | 0; } else { c[h >> 2] = (c[h >> 2] | 0) + (c[j >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[j >> 2] | 0); Qu(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0); c[f >> 2] = 0; m = c[f >> 2] | 0; l = e; return m | 0; } return 0; } function Qu(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[((c[f >> 2] | 0) + 21532) >> 2] = c[((c[f >> 2] | 0) + 21520) >> 2]; c[((c[f >> 2] | 0) + 21528) >> 2] = (c[g >> 2] | 0) + (0 - ((c[((c[f >> 2] | 0) + 21520) >> 2] | 0) - (c[((c[f >> 2] | 0) + 21524) >> 2] | 0))); c[((c[f >> 2] | 0) + 21524) >> 2] = c[g >> 2]; c[((c[f >> 2] | 0) + 21520) >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return; } function Ru(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; e = l; l = (l + 320) | 0; f = (e + 316) | 0; g = (e + 312) | 0; h = (e + 308) | 0; i = (e + 304) | 0; j = (e + 300) | 0; k = (e + 296) | 0; m = (e + 292) | 0; n = (e + 288) | 0; o = (e + 192) | 0; p = (e + 284) | 0; q = (e + 280) | 0; r = (e + 276) | 0; s = (e + 80) | 0; t = (e + 272) | 0; u = (e + 268) | 0; v = (e + 264) | 0; w = e; x = (e + 260) | 0; y = (e + 256) | 0; z = (e + 252) | 0; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = xu( ((c[g >> 2] | 0) + 5132) | 0, c[h >> 2] | 0, c[i >> 2] | 0 ) | 0; if (jr(c[j >> 2] | 0) | 0) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } c[h >> 2] = (c[h >> 2] | 0) + (c[j >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[j >> 2] | 0); c[p >> 2] = 28; c[k >> 2] = ju(o, p, q, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if (jr(c[k >> 2] | 0) | 0) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } if ((c[q >> 2] | 0) >>> 0 > 8) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } c[r >> 2] = iu( ((c[g >> 2] | 0) + 2052) | 0, o, c[p >> 2] | 0, c[q >> 2] | 0 ) | 0; if (jr(c[r >> 2] | 0) | 0) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } c[h >> 2] = (c[h >> 2] | 0) + (c[k >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[k >> 2] | 0); c[t >> 2] = 52; c[m >> 2] = ju(s, t, u, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if (jr(c[m >> 2] | 0) | 0) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } if ((c[u >> 2] | 0) >>> 0 > 9) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } c[v >> 2] = iu( ((c[g >> 2] | 0) + 3080) | 0, s, c[t >> 2] | 0, c[u >> 2] | 0 ) | 0; if (jr(c[v >> 2] | 0) | 0) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } c[h >> 2] = (c[h >> 2] | 0) + (c[m >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[m >> 2] | 0); c[x >> 2] = 35; c[n >> 2] = ju(w, x, y, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if (jr(c[n >> 2] | 0) | 0) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } if ((c[y >> 2] | 0) >>> 0 > 9) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } c[z >> 2] = iu(c[g >> 2] | 0, w, c[x >> 2] | 0, c[y >> 2] | 0) | 0; if (jr(c[z >> 2] | 0) | 0) { c[f >> 2] = -30; A = c[f >> 2] | 0; l = e; return A | 0; } else { c[((c[g >> 2] | 0) + 21568) >> 2] = 1; c[f >> 2] = (c[j >> 2] | 0) + (c[k >> 2] | 0) + (c[m >> 2] | 0) + (c[n >> 2] | 0); A = c[f >> 2] | 0; l = e; return A | 0; } return 0; } function Su(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = dw(c[g >> 2] | 0) | 0; if (mr(c[j >> 2] | 0) | 0) { c[f >> 2] = c[j >> 2]; k = c[f >> 2] | 0; l = e; return k | 0; } if ( ((c[h >> 2] | 0) != 0) & ((c[i >> 2] | 0) != 0) ? ((c[j >> 2] = ew(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0), mr(c[j >> 2] | 0) | 0) : 0 ) { c[f >> 2] = -30; k = c[f >> 2] | 0; l = e; return k | 0; } c[f >> 2] = 0; k = c[f >> 2] | 0; l = e; return k | 0; } function Tu(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; if ( (c[f >> 2] | 0) == (c[((c[e >> 2] | 0) + 26640) >> 2] | 0) ) { l = d; return; } c[((c[e >> 2] | 0) + 26652) >> 2] = c[((c[e >> 2] | 0) + 26640) >> 2]; c[((c[e >> 2] | 0) + 26648) >> 2] = (c[f >> 2] | 0) + (0 - ((c[((c[e >> 2] | 0) + 26640) >> 2] | 0) - (c[((c[e >> 2] | 0) + 26644) >> 2] | 0))); c[((c[e >> 2] | 0) + 26644) >> 2] = c[f >> 2]; c[((c[e >> 2] | 0) + 26640) >> 2] = c[f >> 2]; l = d; return; } function Uu(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; g = l; l = (l + 80) | 0; h = (g + 68) | 0; i = (g + 64) | 0; j = (g + 60) | 0; k = (g + 56) | 0; m = (g + 52) | 0; n = (g + 48) | 0; o = (g + 44) | 0; p = (g + 40) | 0; q = (g + 36) | 0; r = (g + 32) | 0; s = (g + 28) | 0; t = (g + 24) | 0; u = (g + 16) | 0; v = (g + 8) | 0; w = (g + 4) | 0; x = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = (c[o >> 2] | 0) + (c[n >> 2] | 0); c[q >> 2] = c[j >> 2]; c[r >> 2] = c[q >> 2]; c[s >> 2] = (c[q >> 2] | 0) + (c[k >> 2] | 0); c[t >> 2] = c[n >> 2]; if ((c[n >> 2] | 0) >>> 0 < 8) { c[h >> 2] = -72; y = c[h >> 2] | 0; l = g; return y | 0; } c[v >> 2] = Vu(c[i >> 2] | 0, c[m >> 2] | 0, 5) | 0; if (mr(c[v >> 2] | 0) | 0) { c[h >> 2] = c[v >> 2]; y = c[h >> 2] | 0; l = g; return y | 0; } if ( (c[n >> 2] | 0) >>> 0 < (((c[v >> 2] | 0) + 3) | 0) >>> 0 ) { c[h >> 2] = -72; y = c[h >> 2] | 0; l = g; return y | 0; } c[o >> 2] = (c[o >> 2] | 0) + (c[v >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) - (c[v >> 2] | 0); c[v >> 2] = Wu(c[i >> 2] | 0, c[m >> 2] | 0, c[v >> 2] | 0) | 0; if (mr(c[v >> 2] | 0) | 0) { c[h >> 2] = c[v >> 2]; y = c[h >> 2] | 0; l = g; return y | 0; } a: while (1) { c[w >> 2] = 0; c[x >> 2] = lr( c[o >> 2] | 0, ((c[p >> 2] | 0) - (c[o >> 2] | 0)) | 0, u ) | 0; if (mr(c[x >> 2] | 0) | 0) { z = 11; break; } c[o >> 2] = (c[o >> 2] | 0) + 3; c[t >> 2] = (c[t >> 2] | 0) - 3; if ((c[x >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) { z = 13; break; } switch (c[u >> 2] | 0) { case 2: { z = 17; break a; break; } case 0: { c[w >> 2] = Xu( c[i >> 2] | 0, c[r >> 2] | 0, ((c[s >> 2] | 0) - (c[r >> 2] | 0)) | 0, c[o >> 2] | 0, c[x >> 2] | 0 ) | 0; break; } case 1: { c[w >> 2] = Yu( c[r >> 2] | 0, ((c[s >> 2] | 0) - (c[r >> 2] | 0)) | 0, c[o >> 2] | 0, c[x >> 2] | 0 ) | 0; break; } case 3: { if (c[t >> 2] | 0) { z = 19; break a; } break; } default: { z = 20; break a; } } if (!(c[x >> 2] | 0)) { z = 25; break; } v = (mr(c[w >> 2] | 0) | 0) != 0; A = c[w >> 2] | 0; if (v) { z = 23; break; } c[r >> 2] = (c[r >> 2] | 0) + A; c[o >> 2] = (c[o >> 2] | 0) + (c[x >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); } if ((z | 0) == 11) { c[h >> 2] = c[x >> 2]; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 13) { c[h >> 2] = -72; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 17) { c[h >> 2] = -1; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 19) { c[h >> 2] = -72; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 20) { c[h >> 2] = -1; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 23) { c[h >> 2] = A; y = c[h >> 2] | 0; l = g; return y | 0; } else if ((z | 0) == 25) { c[h >> 2] = (c[r >> 2] | 0) - (c[q >> 2] | 0); y = c[h >> 2] | 0; l = g; return y | 0; } return 0; } function Vu(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; if ((c[i >> 2] | 0) != 5) { c[f >> 2] = -72; k = c[f >> 2] | 0; l = e; return k | 0; } c[j >> 2] = Wq(c[h >> 2] | 0) | 0; if ((c[j >> 2] | 0) != -47205083) { c[f >> 2] = -10; k = c[f >> 2] | 0; l = e; return k | 0; } else { c[((c[g >> 2] | 0) + 26660) >> 2] = 5; c[f >> 2] = c[((c[g >> 2] | 0) + 26660) >> 2]; k = c[f >> 2] | 0; l = e; return k | 0; } return 0; } function Wu(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; if ( (c[i >> 2] | 0) != (c[((c[g >> 2] | 0) + 26660) >> 2] | 0) ) { c[f >> 2] = -72; k = c[f >> 2] | 0; l = e; return k | 0; } c[j >> 2] = yq( ((c[g >> 2] | 0) + 26664) | 0, c[h >> 2] | 0, c[i >> 2] | 0 ) | 0; if ( kv() | 0 ? (c[((c[g >> 2] | 0) + 26664 + 8) >> 2] | 0) >>> 0 > 25 : 0 ) { c[f >> 2] = -14; k = c[f >> 2] | 0; l = e; return k | 0; } c[f >> 2] = c[j >> 2]; k = c[f >> 2] | 0; l = e; return k | 0; } function Xu(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; if ((c[n >> 2] | 0) >>> 0 >= 131072) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } c[p >> 2] = Zu(c[i >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; m = (mr(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (m) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + f; c[n >> 2] = (c[n >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = _u( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[o >> 2] | 0, c[n >> 2] | 0 ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function Yu(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; if ((c[k >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) { c[g >> 2] = -70; m = c[g >> 2] | 0; l = f; return m | 0; } else { mE(c[h >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0) | 0; c[g >> 2] = c[k >> 2]; m = c[g >> 2] | 0; l = f; return m | 0; } return 0; } function Zu(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; g = l; l = (l + 80) | 0; h = (g + 64) | 0; i = (g + 60) | 0; j = (g + 56) | 0; k = (g + 52) | 0; m = (g + 48) | 0; n = (g + 44) | 0; o = (g + 40) | 0; p = (g + 36) | 0; q = (g + 32) | 0; r = (g + 28) | 0; s = (g + 24) | 0; t = (g + 20) | 0; u = (g + 16) | 0; v = (g + 12) | 0; w = (g + 8) | 0; x = (g + 4) | 0; y = g; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = c[j >> 2]; if ((c[k >> 2] | 0) >>> 0 < 3) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } switch (((d[c[m >> 2] >> 0] | 0) >> 6) | 0) { case 0: { c[p >> 2] = 0; c[q >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; if ((c[k >> 2] | 0) >>> 0 < 5) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } switch (c[q >> 2] | 0) { case 3: { c[q >> 2] = 5; c[n >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 14) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 6) + ((d[((c[m >> 2] | 0) + 2) >> 0] | 0) >> 2); c[o >> 2] = (((d[((c[m >> 2] | 0) + 2) >> 0] | 0) & 3) << 16) + ((d[((c[m >> 2] | 0) + 3) >> 0] | 0) << 8) + (d[((c[m >> 2] | 0) + 4) >> 0] | 0); break; } case 2: { c[q >> 2] = 4; c[n >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 10) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 2) + ((d[((c[m >> 2] | 0) + 2) >> 0] | 0) >> 6); c[o >> 2] = (((d[((c[m >> 2] | 0) + 2) >> 0] | 0) & 63) << 8) + (d[((c[m >> 2] | 0) + 3) >> 0] | 0); break; } default: { c[q >> 2] = 3; c[p >> 2] = (d[c[m >> 2] >> 0] | 0) & 16; c[n >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 6) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) >> 2); c[o >> 2] = (((d[((c[m >> 2] | 0) + 1) >> 0] | 0) & 3) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); } } if ((c[n >> 2] | 0) >>> 0 > 131072) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } if ( (((c[o >> 2] | 0) + (c[q >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } j = ((c[i >> 2] | 0) + 26724) | 0; f = c[n >> 2] | 0; e = ((c[m >> 2] | 0) + (c[q >> 2] | 0)) | 0; b = c[o >> 2] | 0; if (c[p >> 2] | 0) A = Av(j, f, e, b) | 0; else A = Bv(j, f, e, b) | 0; if (Cv(A) | 0) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { c[((c[i >> 2] | 0) + 26716) >> 2] = (c[i >> 2] | 0) + 26724; c[((c[i >> 2] | 0) + 26720) >> 2] = c[n >> 2]; n = ((c[i >> 2] | 0) + 26724 + (c[((c[i >> 2] | 0) + 26720) >> 2] | 0)) | 0; a[n >> 0] = 0; a[(n + 1) >> 0] = 0; a[(n + 2) >> 0] = 0; a[(n + 3) >> 0] = 0; a[(n + 4) >> 0] = 0; a[(n + 5) >> 0] = 0; a[(n + 6) >> 0] = 0; a[(n + 7) >> 0] = 0; c[h >> 2] = (c[o >> 2] | 0) + (c[q >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 1: { c[u >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; if ((c[u >> 2] | 0) != 1) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } if (!(c[((c[i >> 2] | 0) + 26712) >> 2] | 0)) { c[h >> 2] = -30; z = c[h >> 2] | 0; l = g; return z | 0; } c[u >> 2] = 3; c[s >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 6) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) >> 2); c[t >> 2] = (((d[((c[m >> 2] | 0) + 1) >> 0] | 0) & 3) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); if ( (((c[t >> 2] | 0) + (c[u >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } c[r >> 2] = Dv( ((c[i >> 2] | 0) + 26724) | 0, c[s >> 2] | 0, ((c[m >> 2] | 0) + (c[u >> 2] | 0)) | 0, c[t >> 2] | 0, ((c[i >> 2] | 0) + 10252) | 0 ) | 0; if (Cv(c[r >> 2] | 0) | 0) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { c[((c[i >> 2] | 0) + 26716) >> 2] = (c[i >> 2] | 0) + 26724; c[((c[i >> 2] | 0) + 26720) >> 2] = c[s >> 2]; s = ((c[i >> 2] | 0) + 26724 + (c[((c[i >> 2] | 0) + 26720) >> 2] | 0)) | 0; a[s >> 0] = 0; a[(s + 1) >> 0] = 0; a[(s + 2) >> 0] = 0; a[(s + 3) >> 0] = 0; a[(s + 4) >> 0] = 0; a[(s + 5) >> 0] = 0; a[(s + 6) >> 0] = 0; a[(s + 7) >> 0] = 0; c[h >> 2] = (c[t >> 2] | 0) + (c[u >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 2: { c[w >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; switch (c[w >> 2] | 0) { case 3: { c[v >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 16) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); break; } case 2: { c[v >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 8) + (d[((c[m >> 2] | 0) + 1) >> 0] | 0); break; } default: { c[w >> 2] = 1; c[v >> 2] = (d[c[m >> 2] >> 0] | 0) & 31; } } if ( (((c[w >> 2] | 0) + (c[v >> 2] | 0) + 8) | 0) >>> 0 <= (c[k >> 2] | 0) >>> 0 ) { c[((c[i >> 2] | 0) + 26716) >> 2] = (c[m >> 2] | 0) + (c[w >> 2] | 0); c[((c[i >> 2] | 0) + 26720) >> 2] = c[v >> 2]; c[h >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } if ( (((c[v >> 2] | 0) + (c[w >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { mE( ((c[i >> 2] | 0) + 26724) | 0, ((c[m >> 2] | 0) + (c[w >> 2] | 0)) | 0, c[v >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 26716) >> 2] = (c[i >> 2] | 0) + 26724; c[((c[i >> 2] | 0) + 26720) >> 2] = c[v >> 2]; u = ((c[i >> 2] | 0) + 26724 + (c[((c[i >> 2] | 0) + 26720) >> 2] | 0)) | 0; a[u >> 0] = 0; a[(u + 1) >> 0] = 0; a[(u + 2) >> 0] = 0; a[(u + 3) >> 0] = 0; a[(u + 4) >> 0] = 0; a[(u + 5) >> 0] = 0; a[(u + 6) >> 0] = 0; a[(u + 7) >> 0] = 0; c[h >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 3: { c[y >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; switch (c[y >> 2] | 0) { case 3: { c[x >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 16) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); if ((c[k >> 2] | 0) >>> 0 < 4) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 2: { c[x >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 8) + (d[((c[m >> 2] | 0) + 1) >> 0] | 0); break; } default: { c[y >> 2] = 1; c[x >> 2] = (d[c[m >> 2] >> 0] | 0) & 31; } } if ((c[x >> 2] | 0) >>> 0 > 131072) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { oE( ((c[i >> 2] | 0) + 26724) | 0, ((d[((c[m >> 2] | 0) + (c[y >> 2] | 0)) >> 0] | 0) & 255) | 0, ((c[x >> 2] | 0) + 8) | 0 ) | 0; c[((c[i >> 2] | 0) + 26716) >> 2] = (c[i >> 2] | 0) + 26724; c[((c[i >> 2] | 0) + 26720) >> 2] = c[x >> 2]; c[h >> 2] = (c[y >> 2] | 0) + 1; z = c[h >> 2] | 0; l = g; return z | 0; } break; } default: { } } return 0; } function _u(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0; g = l; l = (l + 176) | 0; h = (g + 164) | 0; i = (g + 160) | 0; j = (g + 156) | 0; k = (g + 152) | 0; m = (g + 148) | 0; n = (g + 144) | 0; o = (g + 140) | 0; p = (g + 136) | 0; q = (g + 132) | 0; r = (g + 128) | 0; s = (g + 124) | 0; t = (g + 120) | 0; u = (g + 116) | 0; v = (g + 112) | 0; w = (g + 108) | 0; x = (g + 104) | 0; y = (g + 100) | 0; z = (g + 96) | 0; A = (g + 92) | 0; B = (g + 88) | 0; C = (g + 84) | 0; D = (g + 80) | 0; E = (g + 76) | 0; F = (g + 72) | 0; G = (g + 60) | 0; H = (g + 8) | 0; I = (g + 4) | 0; J = g; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[k >> 2]; c[s >> 2] = c[r >> 2]; c[t >> 2] = (c[r >> 2] | 0) + (c[m >> 2] | 0); c[w >> 2] = c[((c[j >> 2] | 0) + 26716) >> 2]; c[x >> 2] = (c[w >> 2] | 0) + (c[((c[j >> 2] | 0) + 26720) >> 2] | 0); c[A >> 2] = c[j >> 2]; c[B >> 2] = (c[j >> 2] | 0) + 6152; c[C >> 2] = (c[j >> 2] | 0) + 4100; c[D >> 2] = c[((c[j >> 2] | 0) + 26644) >> 2]; c[E >> 2] = c[((c[j >> 2] | 0) + 26648) >> 2]; c[F >> 2] = c[((c[j >> 2] | 0) + 26652) >> 2]; c[u >> 2] = $u( y, z, v, c[A >> 2] | 0, c[B >> 2] | 0, c[C >> 2] | 0, c[p >> 2] | 0, c[o >> 2] | 0, c[((c[j >> 2] | 0) + 26712) >> 2] | 0 ) | 0; j = (mr(c[u >> 2] | 0) | 0) != 0; o = c[u >> 2] | 0; if (j) { c[i >> 2] = o; K = c[i >> 2] | 0; l = g; return K | 0; } c[p >> 2] = (c[p >> 2] | 0) + o; if (c[y >> 2] | 0) { c[G >> 2] = 0; c[(G + 4) >> 2] = 0; c[(G + 8) >> 2] = 0; c[(G + 8) >> 2] = 1; c[(H + 44) >> 2] = c[z >> 2]; c[(H + 48) >> 2] = (c[z >> 2] | 0) + (c[v >> 2] | 0); c[(H + 40) >> 2] = 1; c[u >> 2] = av( H, c[p >> 2] | 0, ((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0 ) | 0; if (nr(c[u >> 2] | 0) | 0) { c[i >> 2] = -20; K = c[i >> 2] | 0; l = g; return K | 0; } bv((H + 16) | 0, H, c[A >> 2] | 0); bv((H + 24) | 0, H, c[C >> 2] | 0); bv((H + 32) | 0, H, c[B >> 2] | 0); while (1) { B = (cv(H) | 0) >>> 0 <= 2; L = c[y >> 2] | 0; if (!(B ? (c[y >> 2] | 0) != 0 : 0)) break; c[y >> 2] = L + -1; dv(G, H); B = c[s >> 2] | 0; C = c[t >> 2] | 0; A = c[x >> 2] | 0; u = c[D >> 2] | 0; p = c[E >> 2] | 0; q = c[F >> 2] | 0; c[h >> 2] = c[G >> 2]; c[(h + 4) >> 2] = c[(G + 4) >> 2]; c[(h + 8) >> 2] = c[(G + 8) >> 2]; c[I >> 2] = ev(B, C, h, w, A, u, p, q) | 0; q = (mr(c[I >> 2] | 0) | 0) != 0; M = c[I >> 2] | 0; if (q) { N = 9; break; } c[s >> 2] = (c[s >> 2] | 0) + M; } if ((N | 0) == 9) { c[i >> 2] = M; K = c[i >> 2] | 0; l = g; return K | 0; } if (L | 0) { c[i >> 2] = -20; K = c[i >> 2] | 0; l = g; return K | 0; } } c[J >> 2] = (c[x >> 2] | 0) - (c[w >> 2] | 0); if ((c[w >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0) { c[i >> 2] = -20; K = c[i >> 2] | 0; l = g; return K | 0; } if ( (((c[s >> 2] | 0) + (c[J >> 2] | 0)) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[i >> 2] = -70; K = c[i >> 2] | 0; l = g; return K | 0; } else { mE(c[s >> 2] | 0, c[w >> 2] | 0, c[J >> 2] | 0) | 0; c[s >> 2] = (c[s >> 2] | 0) + (c[J >> 2] | 0); c[i >> 2] = (c[s >> 2] | 0) - (c[r >> 2] | 0); K = c[i >> 2] | 0; l = g; return K | 0; } return 0; } function $u(b, e, f, g, h, i, j, k, m) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0; n = l; l = (l + 352) | 0; o = (n + 348) | 0; p = (n + 344) | 0; q = (n + 340) | 0; r = (n + 336) | 0; s = (n + 332) | 0; t = (n + 328) | 0; u = (n + 324) | 0; v = (n + 320) | 0; w = (n + 316) | 0; x = (n + 312) | 0; y = (n + 308) | 0; z = (n + 304) | 0; A = (n + 300) | 0; B = (n + 296) | 0; C = (n + 292) | 0; D = (n + 288) | 0; E = (n + 284) | 0; F = (n + 280) | 0; G = (n + 276) | 0; H = (n + 272) | 0; I = n; J = (n + 268) | 0; K = (n + 264) | 0; L = (n + 260) | 0; M = (n + 256) | 0; c[p >> 2] = b; c[q >> 2] = e; c[r >> 2] = f; c[s >> 2] = g; c[t >> 2] = h; c[u >> 2] = i; c[v >> 2] = j; c[w >> 2] = k; c[x >> 2] = m; c[y >> 2] = c[v >> 2]; c[z >> 2] = c[y >> 2]; c[A >> 2] = (c[y >> 2] | 0) + (c[w >> 2] | 0); if ((c[w >> 2] | 0) >>> 0 < 1) { c[o >> 2] = -72; N = c[o >> 2] | 0; l = n; return N | 0; } w = c[z >> 2] | 0; c[z >> 2] = w + 1; c[c[p >> 2] >> 2] = d[w >> 0]; if (!(c[c[p >> 2] >> 2] | 0)) { c[o >> 2] = 1; N = c[o >> 2] | 0; l = n; return N | 0; } do { if ((c[c[p >> 2] >> 2] | 0) >= 128) { if ((c[z >> 2] | 0) >>> 0 < (c[A >> 2] | 0) >>> 0) { w = ((c[c[p >> 2] >> 2] | 0) - 128) << 8; v = c[z >> 2] | 0; c[z >> 2] = v + 1; c[c[p >> 2] >> 2] = w + (d[v >> 0] | 0); break; } c[o >> 2] = -72; N = c[o >> 2] | 0; l = n; return N | 0; } } while (0); if ((c[z >> 2] | 0) >>> 0 >= (c[A >> 2] | 0) >>> 0) { c[o >> 2] = -72; N = c[o >> 2] | 0; l = n; return N | 0; } c[B >> 2] = (d[c[z >> 2] >> 0] | 0) >> 6; c[C >> 2] = ((d[c[z >> 2] >> 0] | 0) >> 4) & 3; c[D >> 2] = ((d[c[z >> 2] >> 0] | 0) >> 2) & 3; p = c[z >> 2] | 0; do { if (((d[c[z >> 2] >> 0] | 0) & 2) | 0) { if (((p + 3) | 0) >>> 0 <= (c[A >> 2] | 0) >>> 0) { c[H >> 2] = d[((c[z >> 2] | 0) + 2) >> 0]; c[H >> 2] = (c[H >> 2] | 0) + ((d[((c[z >> 2] | 0) + 1) >> 0] | 0) << 8); c[z >> 2] = (c[z >> 2] | 0) + 3; break; } c[o >> 2] = -72; N = c[o >> 2] | 0; l = n; return N | 0; } else { if (((p + 2) | 0) >>> 0 <= (c[A >> 2] | 0) >>> 0) { c[H >> 2] = d[((c[z >> 2] | 0) + 1) >> 0]; c[H >> 2] = (c[H >> 2] | 0) + (((d[c[z >> 2] >> 0] | 0) & 1) << 8); c[z >> 2] = (c[z >> 2] | 0) + 2; break; } c[o >> 2] = -72; N = c[o >> 2] | 0; l = n; return N | 0; } } while (0); c[c[q >> 2] >> 2] = c[z >> 2]; c[z >> 2] = (c[z >> 2] | 0) + (c[H >> 2] | 0); c[c[r >> 2] >> 2] = c[H >> 2]; if ( (c[z >> 2] | 0) >>> 0 > (((c[A >> 2] | 0) + -3) | 0) >>> 0 ) { c[o >> 2] = -72; N = c[o >> 2] | 0; l = n; return N | 0; } a: do { switch (c[B >> 2] | 0) { case 1: { c[E >> 2] = 0; H = c[s >> 2] | 0; r = c[z >> 2] | 0; c[z >> 2] = r + 1; tv(H, a[r >> 0] | 0) | 0; break; } case 0: { c[E >> 2] = 6; uv(c[s >> 2] | 0, 6) | 0; break; } case 2: { if (!(c[x >> 2] | 0)) { c[o >> 2] = -20; N = c[o >> 2] | 0; l = n; return N | 0; } break; } default: { c[K >> 2] = 63; c[J >> 2] = vv( I, K, E, c[z >> 2] | 0, ((c[A >> 2] | 0) - (c[z >> 2] | 0)) | 0 ) | 0; if (wv(c[J >> 2] | 0) | 0) { c[o >> 2] = -1; N = c[o >> 2] | 0; l = n; return N | 0; } if ((c[E >> 2] | 0) >>> 0 <= 10) { c[z >> 2] = (c[z >> 2] | 0) + (c[J >> 2] | 0); xv(c[s >> 2] | 0, I, c[K >> 2] | 0, c[E >> 2] | 0) | 0; break a; } c[o >> 2] = -20; N = c[o >> 2] | 0; l = n; return N | 0; } } } while (0); b: do { switch (c[C >> 2] | 0) { case 1: { c[F >> 2] = 0; if ( (c[z >> 2] | 0) >>> 0 <= (((c[A >> 2] | 0) + -2) | 0) >>> 0 ) { E = c[u >> 2] | 0; K = c[z >> 2] | 0; c[z >> 2] = K + 1; tv(E, (d[K >> 0] | 0) & 31) | 0; break b; } c[o >> 2] = -72; N = c[o >> 2] | 0; l = n; return N | 0; } case 0: { c[F >> 2] = 5; uv(c[u >> 2] | 0, 5) | 0; break; } case 2: { if (!(c[x >> 2] | 0)) { c[o >> 2] = -20; N = c[o >> 2] | 0; l = n; return N | 0; } break; } default: { c[L >> 2] = 31; c[J >> 2] = vv( I, L, F, c[z >> 2] | 0, ((c[A >> 2] | 0) - (c[z >> 2] | 0)) | 0 ) | 0; if (wv(c[J >> 2] | 0) | 0) { c[o >> 2] = -1; N = c[o >> 2] | 0; l = n; return N | 0; } if ((c[F >> 2] | 0) >>> 0 <= 9) { c[z >> 2] = (c[z >> 2] | 0) + (c[J >> 2] | 0); xv(c[u >> 2] | 0, I, c[L >> 2] | 0, c[F >> 2] | 0) | 0; break b; } c[o >> 2] = -20; N = c[o >> 2] | 0; l = n; return N | 0; } } } while (0); c: do { switch (c[D >> 2] | 0) { case 1: { c[G >> 2] = 0; if ( (c[z >> 2] | 0) >>> 0 <= (((c[A >> 2] | 0) + -2) | 0) >>> 0 ) { F = c[t >> 2] | 0; L = c[z >> 2] | 0; c[z >> 2] = L + 1; tv(F, a[L >> 0] | 0) | 0; break c; } c[o >> 2] = -72; N = c[o >> 2] | 0; l = n; return N | 0; } case 0: { c[G >> 2] = 7; uv(c[t >> 2] | 0, 7) | 0; break; } case 2: { if (!(c[x >> 2] | 0)) { c[o >> 2] = -20; N = c[o >> 2] | 0; l = n; return N | 0; } break; } default: { c[M >> 2] = 127; c[J >> 2] = vv( I, M, G, c[z >> 2] | 0, ((c[A >> 2] | 0) - (c[z >> 2] | 0)) | 0 ) | 0; if (wv(c[J >> 2] | 0) | 0) { c[o >> 2] = -1; N = c[o >> 2] | 0; l = n; return N | 0; } if ((c[G >> 2] | 0) >>> 0 <= 10) { c[z >> 2] = (c[z >> 2] | 0) + (c[J >> 2] | 0); xv(c[t >> 2] | 0, I, c[M >> 2] | 0, c[G >> 2] | 0) | 0; break c; } c[o >> 2] = -20; N = c[o >> 2] | 0; l = n; return N | 0; } } } while (0); c[o >> 2] = (c[z >> 2] | 0) - (c[y >> 2] | 0); N = c[o >> 2] | 0; l = n; return N | 0; } function av(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 20) | 0; h = (f + 16) | 0; i = (f + 12) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; if ((c[j >> 2] | 0) >>> 0 < 1) { e = c[h >> 2] | 0; c[e >> 2] = 0; c[(e + 4) >> 2] = 0; c[(e + 8) >> 2] = 0; c[(e + 12) >> 2] = 0; c[g >> 2] = -72; n = c[g >> 2] | 0; l = f; return n | 0; } e = (c[j >> 2] | 0) >>> 0 >= 4; c[((c[h >> 2] | 0) + 12) >> 2] = c[i >> 2]; do { if (e) { c[((c[h >> 2] | 0) + 8) >> 2] = (c[i >> 2] | 0) + (c[j >> 2] | 0) + -4; b = ov(c[((c[h >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[h >> 2] >> 2] = b; c[k >> 2] = d[((c[i >> 2] | 0) + ((c[j >> 2] | 0) - 1)) >> 0]; if (c[k >> 2] | 0) { b = (8 - (sv(c[k >> 2] | 0) | 0)) | 0; c[((c[h >> 2] | 0) + 4) >> 2] = b; break; } c[g >> 2] = -1; n = c[g >> 2] | 0; l = f; return n | 0; } else { c[((c[h >> 2] | 0) + 8) >> 2] = c[((c[h >> 2] | 0) + 12) >> 2]; c[c[h >> 2] >> 2] = d[c[((c[h >> 2] | 0) + 12) >> 2] >> 0]; switch (c[j >> 2] | 0) { case 7: { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[ ((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 6) >> 0 ] | 0) << 16); o = 9; break; } case 6: { o = 9; break; } case 5: { o = 10; break; } case 4: { o = 11; break; } case 3: { o = 12; break; } case 2: { o = 13; break; } default: { } } if ((o | 0) == 9) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 5) >> 0] | 0) << 8); o = 10; } if ((o | 0) == 10) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 4) >> 0] | 0) << 0); o = 11; } if ((o | 0) == 11) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 3) >> 0] | 0) << 24); o = 12; } if ((o | 0) == 12) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 2) >> 0] | 0) << 16); o = 13; } if ((o | 0) == 13) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 1) >> 0] | 0) << 8); } c[m >> 2] = d[((c[i >> 2] | 0) + ((c[j >> 2] | 0) - 1)) >> 0]; if (c[m >> 2] | 0) { b = (8 - (sv(c[m >> 2] | 0) | 0)) | 0; c[((c[h >> 2] | 0) + 4) >> 2] = b; b = ((c[h >> 2] | 0) + 4) | 0; c[b >> 2] = (c[b >> 2] | 0) + ((4 - (c[j >> 2] | 0)) << 3); break; } c[g >> 2] = -1; n = c[g >> 2] | 0; l = f; return n | 0; } } while (0); c[g >> 2] = c[j >> 2]; n = c[g >> 2] | 0; l = f; return n | 0; } function bv(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = c[i >> 2]; c[k >> 2] = c[j >> 2]; j = jv(c[h >> 2] | 0, e[c[k >> 2] >> 1] | 0) | 0; c[c[g >> 2] >> 2] = j; cv(c[h >> 2] | 0) | 0; c[((c[g >> 2] | 0) + 4) >> 2] = (c[i >> 2] | 0) + 4; l = f; return; } function cv(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = (b + 12) | 0; e = (b + 8) | 0; f = (b + 4) | 0; g = b; c[e >> 2] = a; if ((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) { c[d >> 2] = 3; h = c[d >> 2] | 0; l = b; return h | 0; } a = c[e >> 2] | 0; if ( (c[((c[e >> 2] | 0) + 8) >> 2] | 0) >>> 0 >= (((c[((c[e >> 2] | 0) + 12) >> 2] | 0) + 4) | 0) >>> 0 ) { i = ((c[e >> 2] | 0) + 8) | 0; c[i >> 2] = (c[i >> 2] | 0) + (0 - ((c[(a + 4) >> 2] | 0) >>> 3)); i = ((c[e >> 2] | 0) + 4) | 0; c[i >> 2] = c[i >> 2] & 7; i = ov(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = i; c[d >> 2] = 0; h = c[d >> 2] | 0; l = b; return h | 0; } i = c[((c[e >> 2] | 0) + 4) >> 2] | 0; if ( (c[(a + 8) >> 2] | 0) != (c[((c[e >> 2] | 0) + 12) >> 2] | 0) ) { c[f >> 2] = i >>> 3; c[g >> 2] = 0; if ( (((c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (0 - (c[f >> 2] | 0))) | 0) >>> 0 < (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 ) { c[f >> 2] = (c[((c[e >> 2] | 0) + 8) >> 2] | 0) - (c[((c[e >> 2] | 0) + 12) >> 2] | 0); c[g >> 2] = 1; } a = ((c[e >> 2] | 0) + 8) | 0; c[a >> 2] = (c[a >> 2] | 0) + (0 - (c[f >> 2] | 0)); a = ((c[e >> 2] | 0) + 4) | 0; c[a >> 2] = (c[a >> 2] | 0) - (c[f >> 2] << 3); f = ov(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = f; c[d >> 2] = c[g >> 2]; h = c[d >> 2] | 0; l = b; return h | 0; } if (i >>> 0 < 32) { c[d >> 2] = 1; h = c[d >> 2] | 0; l = b; return h | 0; } else { c[d >> 2] = 2; h = c[d >> 2] | 0; l = b; return h | 0; } return 0; } function dv(a, b) { a = a | 0; b = b | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0; e = l; l = (l + 48) | 0; f = (e + 44) | 0; g = (e + 40) | 0; h = (e + 36) | 0; i = (e + 32) | 0; j = (e + 28) | 0; k = (e + 24) | 0; m = (e + 20) | 0; n = (e + 16) | 0; o = (e + 12) | 0; p = (e + 8) | 0; q = (e + 4) | 0; r = e; c[f >> 2] = a; c[g >> 2] = b; c[m >> 2] = c[((c[g >> 2] | 0) + 44) >> 2]; c[n >> 2] = c[((c[g >> 2] | 0) + 48) >> 2]; c[h >> 2] = (iv(((c[g >> 2] | 0) + 16) | 0) | 0) & 255; if (c[h >> 2] | 0) s = c[((c[f >> 2] | 0) + 8) >> 2] | 0; else s = c[((c[g >> 2] | 0) + 40) >> 2] | 0; c[i >> 2] = s; if ((c[h >> 2] | 0) == 63) { s = c[m >> 2] | 0; c[m >> 2] = s + 1; c[o >> 2] = d[s >> 0]; do { if ((c[o >> 2] | 0) >>> 0 >= 255) { c[h >> 2] = (Wq(c[m >> 2] | 0) | 0) & 16777215; s = c[h >> 2] | 0; if ((c[h >> 2] & 1) | 0) { c[h >> 2] = s >>> 1; c[m >> 2] = (c[m >> 2] | 0) + 3; break; } else { c[h >> 2] = (s & 65535) >> 1; c[m >> 2] = (c[m >> 2] | 0) + 2; break; } } else c[h >> 2] = (c[h >> 2] | 0) + (c[o >> 2] | 0); } while (0); if ((c[m >> 2] | 0) >>> 0 > (c[n >> 2] | 0) >>> 0) c[h >> 2] = 318; if ((c[m >> 2] | 0) >>> 0 >= (c[n >> 2] | 0) >>> 0) c[m >> 2] = (c[n >> 2] | 0) + -1; } c[p >> 2] = (iv(((c[g >> 2] | 0) + 24) | 0) | 0) & 255; o = ((c[p >> 2] | 0) - 1) | 0; c[q >> 2] = o; c[q >> 2] = (c[p >> 2] | 0) == 0 ? 0 : o; o = c[(6880 + (c[p >> 2] << 2)) >> 2] | 0; c[j >> 2] = o + (jv(c[g >> 2] | 0, c[q >> 2] | 0) | 0); if (kv() | 0) cv(c[g >> 2] | 0) | 0; if (!(c[p >> 2] | 0)) c[j >> 2] = c[i >> 2]; if (c[p >> 2] | ((((c[h >> 2] | 0) != 0) ^ 1) & 1) | 0) c[((c[g >> 2] | 0) + 40) >> 2] = c[((c[f >> 2] | 0) + 8) >> 2]; lv(((c[g >> 2] | 0) + 24) | 0, c[g >> 2] | 0) | 0; lv(((c[g >> 2] | 0) + 16) | 0, c[g >> 2] | 0) | 0; if (kv() | 0) cv(c[g >> 2] | 0) | 0; c[k >> 2] = (lv(((c[g >> 2] | 0) + 32) | 0, c[g >> 2] | 0) | 0) & 255; if ((c[k >> 2] | 0) != 127) { t = c[k >> 2] | 0; u = (t + 4) | 0; c[k >> 2] = u; v = c[h >> 2] | 0; w = c[f >> 2] | 0; c[w >> 2] = v; x = c[j >> 2] | 0; y = c[f >> 2] | 0; z = (y + 8) | 0; c[z >> 2] = x; A = c[k >> 2] | 0; B = c[f >> 2] | 0; C = (B + 4) | 0; c[C >> 2] = A; D = c[m >> 2] | 0; E = c[g >> 2] | 0; F = (E + 44) | 0; c[F >> 2] = D; l = e; return; } p = c[m >> 2] | 0; c[m >> 2] = p + 1; c[r >> 2] = d[p >> 0]; do { if ((c[r >> 2] | 0) >>> 0 >= 255) { c[k >> 2] = (Wq(c[m >> 2] | 0) | 0) & 16777215; p = c[k >> 2] | 0; if ((c[k >> 2] & 1) | 0) { c[k >> 2] = p >>> 1; c[m >> 2] = (c[m >> 2] | 0) + 3; break; } else { c[k >> 2] = (p & 65535) >> 1; c[m >> 2] = (c[m >> 2] | 0) + 2; break; } } else c[k >> 2] = (c[k >> 2] | 0) + (c[r >> 2] | 0); } while (0); if ((c[m >> 2] | 0) >>> 0 > (c[n >> 2] | 0) >>> 0) c[k >> 2] = 382; if ((c[m >> 2] | 0) >>> 0 < (c[n >> 2] | 0) >>> 0) { t = c[k >> 2] | 0; u = (t + 4) | 0; c[k >> 2] = u; v = c[h >> 2] | 0; w = c[f >> 2] | 0; c[w >> 2] = v; x = c[j >> 2] | 0; y = c[f >> 2] | 0; z = (y + 8) | 0; c[z >> 2] = x; A = c[k >> 2] | 0; B = c[f >> 2] | 0; C = (B + 4) | 0; c[C >> 2] = A; D = c[m >> 2] | 0; E = c[g >> 2] | 0; F = (E + 44) | 0; c[F >> 2] = D; l = e; return; } c[m >> 2] = (c[n >> 2] | 0) + -1; t = c[k >> 2] | 0; u = (t + 4) | 0; c[k >> 2] = u; v = c[h >> 2] | 0; w = c[f >> 2] | 0; c[w >> 2] = v; x = c[j >> 2] | 0; y = c[f >> 2] | 0; z = (y + 8) | 0; c[z >> 2] = x; A = c[k >> 2] | 0; B = c[f >> 2] | 0; C = (B + 4) | 0; c[C >> 2] = A; D = c[m >> 2] | 0; E = c[g >> 2] | 0; F = (E + 44) | 0; c[F >> 2] = D; l = e; return; } function ev(b, d, e, f, g, h, i, j) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; k = l; l = (l + 64) | 0; m = (k + 60) | 0; n = (k + 56) | 0; o = (k + 52) | 0; p = (k + 48) | 0; q = (k + 44) | 0; r = (k + 40) | 0; s = (k + 36) | 0; t = (k + 32) | 0; u = (k + 28) | 0; v = (k + 24) | 0; w = (k + 20) | 0; x = (k + 16) | 0; y = (k + 12) | 0; z = (k + 8) | 0; A = (k + 4) | 0; B = k; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = (c[n >> 2] | 0) + (c[e >> 2] | 0); c[v >> 2] = (c[e >> 2] | 0) + (c[(e + 4) >> 2] | 0); c[w >> 2] = (c[n >> 2] | 0) + (c[v >> 2] | 0); c[x >> 2] = (c[o >> 2] | 0) + -8; c[y >> 2] = (c[c[p >> 2] >> 2] | 0) + (c[e >> 2] | 0); c[z >> 2] = (c[u >> 2] | 0) + (0 - (c[(e + 8) >> 2] | 0)); if ((c[u >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0) { c[m >> 2] = -70; C = c[m >> 2] | 0; l = k; return C | 0; } if ((c[w >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) { c[m >> 2] = -70; C = c[m >> 2] | 0; l = k; return C | 0; } if ((c[y >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) { c[m >> 2] = -20; C = c[m >> 2] | 0; l = k; return C | 0; } fv(c[n >> 2] | 0, c[c[p >> 2] >> 2] | 0, c[e >> 2] | 0); c[n >> 2] = c[u >> 2]; c[c[p >> 2] >> 2] = c[y >> 2]; do { if ( (c[(e + 8) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[r >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(e + 8) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[s >> 2] | 0)) | 0) >>> 0 ) { c[m >> 2] = -20; C = c[m >> 2] | 0; l = k; return C | 0; } c[z >> 2] = (c[t >> 2] | 0) + (0 - ((c[r >> 2] | 0) - (c[z >> 2] | 0))); if ( (((c[z >> 2] | 0) + (c[(e + 4) >> 2] | 0)) | 0) >>> 0 <= (c[t >> 2] | 0) >>> 0 ) { nE(c[u >> 2] | 0, c[z >> 2] | 0, c[(e + 4) >> 2] | 0) | 0; c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } c[A >> 2] = (c[t >> 2] | 0) - (c[z >> 2] | 0); nE(c[u >> 2] | 0, c[z >> 2] | 0, c[A >> 2] | 0) | 0; c[n >> 2] = (c[u >> 2] | 0) + (c[A >> 2] | 0); y = (e + 4) | 0; c[y >> 2] = (c[y >> 2] | 0) - (c[A >> 2] | 0); c[z >> 2] = c[r >> 2]; if ( (c[n >> 2] | 0) >>> 0 <= (c[x >> 2] | 0) >>> 0 ? (c[(e + 4) >> 2] | 0) >>> 0 >= 4 : 0 ) break; while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; y = c[z >> 2] | 0; c[z >> 2] = y + 1; p = a[y >> 0] | 0; y = c[n >> 2] | 0; c[n >> 2] = y + 1; a[y >> 0] = p; } c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } } while (0); if ((c[(e + 8) >> 2] | 0) >>> 0 < 8) { c[B >> 2] = c[(6816 + (c[(e + 8) >> 2] << 2)) >> 2]; a[c[n >> 2] >> 0] = a[c[z >> 2] >> 0] | 0; a[((c[n >> 2] | 0) + 1) >> 0] = a[((c[z >> 2] | 0) + 1) >> 0] | 0; a[((c[n >> 2] | 0) + 2) >> 0] = a[((c[z >> 2] | 0) + 2) >> 0] | 0; a[((c[n >> 2] | 0) + 3) >> 0] = a[((c[z >> 2] | 0) + 3) >> 0] | 0; c[z >> 2] = (c[z >> 2] | 0) + (c[(6848 + (c[(e + 8) >> 2] << 2)) >> 2] | 0); gv(((c[n >> 2] | 0) + 4) | 0, c[z >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + (0 - (c[B >> 2] | 0)); } else hv(c[n >> 2] | 0, c[z >> 2] | 0); c[n >> 2] = (c[n >> 2] | 0) + 8; c[z >> 2] = (c[z >> 2] | 0) + 8; B = c[n >> 2] | 0; a: do { if ( (c[w >> 2] | 0) >>> 0 > (((c[o >> 2] | 0) + -12) | 0) >>> 0 ) { if (B >>> 0 < (c[x >> 2] | 0) >>> 0) { fv( c[n >> 2] | 0, c[z >> 2] | 0, ((c[x >> 2] | 0) - (c[n >> 2] | 0)) | 0 ); c[z >> 2] = (c[z >> 2] | 0) + ((c[x >> 2] | 0) - (c[n >> 2] | 0)); c[n >> 2] = c[x >> 2]; } while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; r = c[z >> 2] | 0; c[z >> 2] = r + 1; A = a[r >> 0] | 0; r = c[n >> 2] | 0; c[n >> 2] = r + 1; a[r >> 0] = A; } } else fv(B, c[z >> 2] | 0, ((c[(e + 4) >> 2] | 0) - 8) | 0); } while (0); c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } function fv(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { hv(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function gv(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; l = e; return; } function hv(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function iv(d) { d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 4) | 0; c[f >> 2] = d; d = ((c[((c[f >> 2] | 0) + 4) >> 2] | 0) + (c[c[f >> 2] >> 2] << 2)) | 0; b[g >> 1] = b[d >> 1] | 0; b[(g + 2) >> 1] = b[(d + 2) >> 1] | 0; l = e; return a[(g + 2) >> 0] | 0; } function jv(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = mv(c[e >> 2] | 0, c[f >> 2] | 0) | 0; nv(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function kv() { return 1; } function lv(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = jv(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function mv(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( (((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> 1) >>> ((31 - (c[f >> 2] | 0)) & 31)) | 0 ); } function nv(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ((c[e >> 2] | 0) + 4) | 0; c[b >> 2] = (c[b >> 2] | 0) + (c[f >> 2] | 0); l = d; return; } function ov(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (kv() | 0) != 0; f = c[e >> 2] | 0; if (a) { c[d >> 2] = Wq(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } else { a = pv(f) | 0; c[d >> 2] = a; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function pv(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = (Xq() | 0) != 0; f = qv(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = rv(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function qv(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; e = a; f = (a + 4) | 0; y = d[f >> 0] | (d[(f + 1) >> 0] << 8) | (d[(f + 2) >> 0] << 16) | (d[(f + 3) >> 0] << 24); l = b; return ( d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24) | 0 ); } function rv(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function sv(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function tv(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 20) | 0; i = (f + 12) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[g >> 2] = d; a[h >> 0] = e; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[i >> 2]; c[k >> 2] = (c[g >> 2] | 0) + 4; c[m >> 2] = c[k >> 2]; b[c[j >> 2] >> 1] = 0; b[((c[j >> 2] | 0) + 2) >> 1] = 0; b[c[m >> 2] >> 1] = 0; a[((c[m >> 2] | 0) + 2) >> 0] = a[h >> 0] | 0; a[((c[m >> 2] | 0) + 3) >> 0] = 0; l = f; return 0; } function uv(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; f = l; l = (l + 48) | 0; g = (f + 40) | 0; h = (f + 36) | 0; i = (f + 32) | 0; j = (f + 28) | 0; k = (f + 24) | 0; m = (f + 20) | 0; n = (f + 16) | 0; o = (f + 12) | 0; p = (f + 8) | 0; q = (f + 4) | 0; r = f; c[h >> 2] = d; c[i >> 2] = e; c[j >> 2] = c[h >> 2]; c[k >> 2] = c[j >> 2]; c[m >> 2] = (c[h >> 2] | 0) + 4; c[n >> 2] = c[m >> 2]; c[o >> 2] = 1 << c[i >> 2]; c[p >> 2] = (c[o >> 2] | 0) - 1; c[q >> 2] = c[p >> 2]; if ((c[i >> 2] | 0) >>> 0 < 1) { c[g >> 2] = -1; s = c[g >> 2] | 0; l = f; return s | 0; } b[c[k >> 2] >> 1] = c[i >> 2]; b[((c[k >> 2] | 0) + 2) >> 1] = 1; c[r >> 2] = 0; while (1) { if ((c[r >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) break; b[((c[n >> 2] | 0) + (c[r >> 2] << 2)) >> 1] = 0; a[((c[n >> 2] | 0) + (c[r >> 2] << 2) + 2) >> 0] = c[r >> 2]; a[((c[n >> 2] | 0) + (c[r >> 2] << 2) + 3) >> 0] = c[i >> 2]; c[r >> 2] = (c[r >> 2] | 0) + 1; } c[g >> 2] = 0; s = c[g >> 2] | 0; l = f; return s | 0; } function vv(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; h = l; l = (l + 80) | 0; i = (h + 64) | 0; j = (h + 60) | 0; k = (h + 56) | 0; m = (h + 52) | 0; n = (h + 48) | 0; o = (h + 44) | 0; p = (h + 40) | 0; q = (h + 36) | 0; r = (h + 32) | 0; s = (h + 28) | 0; t = (h + 24) | 0; u = (h + 20) | 0; v = (h + 16) | 0; w = (h + 12) | 0; x = (h + 8) | 0; y = (h + 4) | 0; z = h; A = (h + 70) | 0; B = (h + 68) | 0; c[j >> 2] = a; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[p >> 2]; c[x >> 2] = 0; c[y >> 2] = 0; if ((c[o >> 2] | 0) >>> 0 < 4) { c[i >> 2] = -72; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = Wq(c[r >> 2] | 0) | 0; c[s >> 2] = (c[v >> 2] & 15) + 5; if ((c[s >> 2] | 0) > 15) { c[i >> 2] = -44; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = (c[v >> 2] | 0) >>> 4; c[w >> 2] = 4; c[c[m >> 2] >> 2] = c[s >> 2]; c[t >> 2] = (1 << c[s >> 2]) + 1; c[u >> 2] = 1 << c[s >> 2]; c[s >> 2] = (c[s >> 2] | 0) + 1; a: while (1) { if ((c[t >> 2] | 0) <= 1) break; if ((c[x >> 2] | 0) >>> 0 > (c[c[k >> 2] >> 2] | 0) >>> 0) break; do { if (c[y >> 2] | 0) { c[z >> 2] = c[x >> 2]; while (1) { if (((c[v >> 2] & 65535) | 0) != 65535) break; c[z >> 2] = (c[z >> 2] | 0) + 24; if ( (c[r >> 2] | 0) >>> 0 < (((c[q >> 2] | 0) + -5) | 0) >>> 0 ) { c[r >> 2] = (c[r >> 2] | 0) + 2; m = Wq(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] | 0); } else { c[v >> 2] = (c[v >> 2] | 0) >>> 16; c[w >> 2] = (c[w >> 2] | 0) + 16; } } while (1) { if (((c[v >> 2] & 3) | 0) != 3) break; c[z >> 2] = (c[z >> 2] | 0) + 3; c[v >> 2] = (c[v >> 2] | 0) >>> 2; c[w >> 2] = (c[w >> 2] | 0) + 2; } c[z >> 2] = (c[z >> 2] | 0) + (c[v >> 2] & 3); c[w >> 2] = (c[w >> 2] | 0) + 2; if ( (c[z >> 2] | 0) >>> 0 > (c[c[k >> 2] >> 2] | 0) >>> 0 ) { D = 19; break a; } while (1) { if ((c[x >> 2] | 0) >>> 0 >= (c[z >> 2] | 0) >>> 0) break; m = c[j >> 2] | 0; n = c[x >> 2] | 0; c[x >> 2] = n + 1; b[(m + (n << 1)) >> 1] = 0; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[v >> 2] = (c[v >> 2] | 0) >>> 2; break; } c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; n = Wq(c[r >> 2] | 0) | 0; c[v >> 2] = n >>> (c[w >> 2] | 0); } } while (0); b[A >> 1] = (c[u >> 2] << 1) - 1 - (c[t >> 2] | 0); n = c[v >> 2] | 0; m = c[u >> 2] | 0; if ( (c[v >> 2] & ((c[u >> 2] | 0) - 1)) >>> 0 < (b[A >> 1] | 0) >>> 0 ) { b[B >> 1] = n & (m - 1); c[w >> 2] = (c[w >> 2] | 0) + ((c[s >> 2] | 0) - 1); } else { b[B >> 1] = n & ((m << 1) - 1); if ((b[B >> 1] | 0) >= (c[u >> 2] | 0)) b[B >> 1] = (b[B >> 1] | 0) - (b[A >> 1] | 0); c[w >> 2] = (c[w >> 2] | 0) + (c[s >> 2] | 0); } b[B >> 1] = (((b[B >> 1] | 0) + -1) << 16) >> 16; m = ((zv(b[B >> 1] | 0) | 0) << 16) >> 16; c[t >> 2] = (c[t >> 2] | 0) - m; m = b[B >> 1] | 0; n = c[j >> 2] | 0; g = c[x >> 2] | 0; c[x >> 2] = g + 1; b[(n + (g << 1)) >> 1] = m; c[y >> 2] = (((b[B >> 1] | 0) != 0) ^ 1) & 1; while (1) { if ((c[t >> 2] | 0) >= (c[u >> 2] | 0)) break; c[s >> 2] = (c[s >> 2] | 0) + -1; c[u >> 2] = c[u >> 2] >> 1; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[w >> 2] = (c[w >> 2] | 0) - (((c[q >> 2] | 0) + -4 - (c[r >> 2] | 0)) << 3); c[r >> 2] = (c[q >> 2] | 0) + -4; } else { c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; } m = Wq(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] & 31); } if ((D | 0) == 19) { c[i >> 2] = -48; C = c[i >> 2] | 0; l = h; return C | 0; } if ((c[t >> 2] | 0) != 1) { c[i >> 2] = -1; C = c[i >> 2] | 0; l = h; return C | 0; } c[c[k >> 2] >> 2] = (c[x >> 2] | 0) - 1; c[r >> 2] = (c[r >> 2] | 0) + (((c[w >> 2] | 0) + 7) >> 3); if ( (((c[r >> 2] | 0) - (c[p >> 2] | 0)) | 0) >>> 0 > (c[o >> 2] | 0) >>> 0 ) { c[i >> 2] = -72; C = c[i >> 2] | 0; l = h; return C | 0; } else { c[i >> 2] = (c[r >> 2] | 0) - (c[p >> 2] | 0); C = c[i >> 2] | 0; l = h; return C | 0; } return 0; } function wv(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = nr(c[d >> 2] | 0) | 0; l = b; return a | 0; } function xv(f, g, h, i) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0; j = l; l = (l + 592) | 0; k = (j + 572) | 0; m = (j + 568) | 0; n = (j + 564) | 0; o = (j + 560) | 0; p = (j + 556) | 0; q = (j + 580) | 0; r = (j + 552) | 0; s = (j + 548) | 0; t = (j + 544) | 0; u = (j + 540) | 0; v = (j + 536) | 0; w = j; x = (j + 532) | 0; y = (j + 528) | 0; z = (j + 578) | 0; A = (j + 524) | 0; B = (j + 520) | 0; C = (j + 516) | 0; D = (j + 512) | 0; E = (j + 584) | 0; F = (j + 576) | 0; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = h; c[p >> 2] = i; c[r >> 2] = (c[m >> 2] | 0) + 4; c[s >> 2] = c[r >> 2]; c[t >> 2] = 1 << c[p >> 2]; c[u >> 2] = (c[t >> 2] | 0) - 1; c[v >> 2] = yv(c[t >> 2] | 0) | 0; c[x >> 2] = 0; c[y >> 2] = (c[t >> 2] | 0) - 1; b[z >> 1] = 1 << ((c[p >> 2] | 0) - 1); c[A >> 2] = 1; if ((c[o >> 2] | 0) >>> 0 > 255) { c[k >> 2] = -46; G = c[k >> 2] | 0; l = j; return G | 0; } if ((c[p >> 2] | 0) >>> 0 > 12) { c[k >> 2] = -44; G = c[k >> 2] | 0; l = j; return G | 0; } b[q >> 1] = c[p >> 2]; c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) break; if ( (b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0) == -1 ) { r = c[B >> 2] & 255; i = c[s >> 2] | 0; h = c[y >> 2] | 0; c[y >> 2] = h + -1; a[(i + (h << 2) + 2) >> 0] = r; b[(w + (c[B >> 2] << 1)) >> 1] = 1; } else { if ( (b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0) >= (b[z >> 1] | 0) ) c[A >> 2] = 0; b[(w + (c[B >> 2] << 1)) >> 1] = b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0; } c[B >> 2] = (c[B >> 2] | 0) + 1; } c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) break; c[C >> 2] = 0; while (1) { H = c[B >> 2] | 0; if ( (c[C >> 2] | 0) >= (b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0) ) break; a[((c[s >> 2] | 0) + (c[x >> 2] << 2) + 2) >> 0] = H; c[x >> 2] = ((c[x >> 2] | 0) + (c[v >> 2] | 0)) & c[u >> 2]; while (1) { if ((c[x >> 2] | 0) >>> 0 <= (c[y >> 2] | 0) >>> 0) break; c[x >> 2] = ((c[x >> 2] | 0) + (c[v >> 2] | 0)) & c[u >> 2]; } c[C >> 2] = (c[C >> 2] | 0) + 1; } c[B >> 2] = H + 1; } if (c[x >> 2] | 0) { c[k >> 2] = -1; G = c[k >> 2] | 0; l = j; return G | 0; } c[D >> 2] = 0; while (1) { if ((c[D >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; a[E >> 0] = a[((c[s >> 2] | 0) + (c[D >> 2] << 2) + 2) >> 0] | 0; x = (w + (d[E >> 0] << 1)) | 0; H = b[x >> 1] | 0; b[x >> 1] = ((H + 1) << 16) >> 16; b[F >> 1] = H; H = c[p >> 2] | 0; x = (H - (sv(e[F >> 1] | 0) | 0)) & 255; a[((c[s >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0] = x; b[((c[s >> 2] | 0) + (c[D >> 2] << 2)) >> 1] = (e[F >> 1] << d[((c[s >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0]) - (c[t >> 2] | 0); c[D >> 2] = (c[D >> 2] | 0) + 1; } b[(q + 2) >> 1] = c[A >> 2]; A = c[m >> 2] | 0; b[A >> 1] = b[q >> 1] | 0; b[(A + 2) >> 1] = b[(q + 2) >> 1] | 0; c[k >> 2] = 0; G = c[k >> 2] | 0; l = j; return G | 0; } function yv(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( (((c[d >> 2] | 0) >>> 1) + ((c[d >> 2] | 0) >>> 3) + 3) | 0 ); } function zv(a) { a = a | 0; var c = 0, d = 0; c = l; l = (l + 16) | 0; d = c; b[d >> 1] = a; a = b[d >> 1] | 0; l = c; return (((b[d >> 1] | 0) < 0 ? (0 - a) | 0 : a) & 65535) | 0; } function Av(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 8224) | 0; h = (g + 8220) | 0; i = (g + 8216) | 0; j = (g + 8212) | 0; k = (g + 8208) | 0; m = (g + 8204) | 0; n = g; o = (g + 8200) | 0; p = (g + 8196) | 0; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; oE(n | 0, 0, 8194) | 0; b[n >> 1] = 12; c[o >> 2] = c[k >> 2]; c[p >> 2] = _v(n, c[k >> 2] | 0, c[m >> 2] | 0) | 0; k = (Cv(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (k) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } if (f >>> 0 >= (c[m >> 2] | 0) >>> 0) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + (c[p >> 2] | 0); c[m >> 2] = (c[m >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = cw( c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0, c[m >> 2] | 0, n ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function Bv(a, b, e, f) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; g = l; l = (l + 48) | 0; h = (g + 44) | 0; i = (g + 40) | 0; j = (g + 36) | 0; k = (g + 32) | 0; m = (g + 28) | 0; n = (g + 24) | 0; o = (g + 20) | 0; p = (g + 8) | 0; q = (g + 4) | 0; r = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = e; c[m >> 2] = f; c[o >> 2] = (c[j >> 2] | 0) >>> 8; c[q >> 2] = 0; if (!(c[j >> 2] | 0)) { c[h >> 2] = -70; s = c[h >> 2] | 0; l = g; return s | 0; } if ((c[m >> 2] | 0) >>> 0 >= (c[j >> 2] | 0) >>> 0) { c[h >> 2] = -20; s = c[h >> 2] | 0; l = g; return s | 0; } if ((c[m >> 2] | 0) == 1) { oE( c[i >> 2] | 0, ((d[c[k >> 2] >> 0] | 0) & 255) | 0, c[j >> 2] | 0 ) | 0; c[h >> 2] = c[j >> 2]; s = c[h >> 2] | 0; l = g; return s | 0; } c[n >> 2] = (((c[m >> 2] << 4) >>> 0) / ((c[j >> 2] | 0) >>> 0)) | 0; c[r >> 2] = 0; while (1) { if ((c[r >> 2] | 0) >= 3) break; f = ((c[ (7008 + (((c[n >> 2] | 0) * 24) | 0) + (c[r >> 2] << 3)) >> 2 ] | 0) + (N( c[ (7008 + (((c[n >> 2] | 0) * 24) | 0) + (c[r >> 2] << 3) + 4) >> 2 ] | 0, c[o >> 2] | 0 ) | 0)) | 0; c[(p + (c[r >> 2] << 2)) >> 2] = f; c[r >> 2] = (c[r >> 2] | 0) + 1; } r = (p + 4) | 0; c[r >> 2] = (c[r >> 2] | 0) + ((c[(p + 4) >> 2] | 0) >>> 4); r = (p + 8) | 0; c[r >> 2] = (c[r >> 2] | 0) + ((c[(p + 8) >> 2] | 0) >>> 3); if ((c[(p + 4) >> 2] | 0) >>> 0 < (c[p >> 2] | 0) >>> 0) c[q >> 2] = 1; c[h >> 2] = sc[c[(11976 + (c[q >> 2] << 2)) >> 2] & 15]( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; s = c[h >> 2] | 0; l = g; return s | 0; } function Cv(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = nr(c[d >> 2] | 0) | 0; l = b; return a | 0; } function Dv(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; g = l; l = (l + 80) | 0; h = (g + 64) | 0; i = (g + 60) | 0; j = (g + 56) | 0; k = (g + 52) | 0; m = (g + 48) | 0; n = (g + 44) | 0; o = (g + 40) | 0; p = (g + 36) | 0; q = (g + 32) | 0; r = (g + 28) | 0; s = (g + 24) | 0; t = (g + 20) | 0; u = (g + 16) | 0; v = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[k >> 2]; c[p >> 2] = c[i >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[j >> 2] | 0); c[r >> 2] = c[c[n >> 2] >> 2]; c[s >> 2] = c[n >> 2]; c[t >> 2] = (c[s >> 2] | 0) + 4; c[u >> 2] = av(v, c[o >> 2] | 0, c[m >> 2] | 0) | 0; if (Cv(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; w = c[h >> 2] | 0; l = g; return w | 0; } Ev( c[p >> 2] | 0, v, c[q >> 2] | 0, c[t >> 2] | 0, c[r >> 2] | 0 ) | 0; if (Fv(v) | 0) { c[h >> 2] = c[j >> 2]; w = c[h >> 2] | 0; l = g; return w | 0; } else { c[h >> 2] = -20; w = c[h >> 2] | 0; l = g; return w | 0; } return 0; } function Ev(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = c[h >> 2]; while (1) { if (cv(c[i >> 2] | 0) | 0) break; if ( (c[h >> 2] | 0) >>> 0 >= (((c[j >> 2] | 0) + -7) | 0) >>> 0 ) break; if (Gv() | 0) { f = Hv( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } Gv() | 0; f = Hv( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; if (Gv() | 0) { f = Hv( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } f = Hv( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } while (1) { if (cv(c[i >> 2] | 0) | 0) break; if ( (c[h >> 2] | 0) >>> 0 > (((c[j >> 2] | 0) + -2) | 0) >>> 0 ) break; f = Hv( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } while (1) { o = c[h >> 2] | 0; if ( (c[h >> 2] | 0) >>> 0 > (((c[j >> 2] | 0) + -2) | 0) >>> 0 ) break; f = Hv(o, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } if (o >>> 0 >= (c[j >> 2] | 0) >>> 0) { p = c[h >> 2] | 0; q = c[n >> 2] | 0; r = p; s = q; t = (r - s) | 0; l = g; return t | 0; } j = Iv( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + j; p = c[h >> 2] | 0; q = c[n >> 2] | 0; r = p; s = q; t = (r - s) | 0; l = g; return t | 0; } function Fv(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; if ( (c[((c[d >> 2] | 0) + 8) >> 2] | 0) != (c[((c[d >> 2] | 0) + 12) >> 2] | 0) ) { e = 0; f = e & 1; l = b; return f | 0; } e = (c[((c[d >> 2] | 0) + 4) >> 2] | 0) == 32; f = e & 1; l = b; return f | 0; } function Gv() { return 0; } function Hv(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = Jv(c[j >> 2] | 0, c[m >> 2] | 0) | 0; m = c[i >> 2] | 0; i = ((c[k >> 2] | 0) + (c[n >> 2] << 2)) | 0; a[m >> 0] = a[i >> 0] | 0; a[(m + 1) >> 0] = a[(i + 1) >> 0] | 0; nv( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0 ); l = h; return ( d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 3) >> 0] | 0 | 0 ); } function Iv(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = Jv(c[j >> 2] | 0, c[m >> 2] | 0) | 0; a[c[i >> 2] >> 0] = a[((c[k >> 2] | 0) + (c[n >> 2] << 2)) >> 0] | 0; i = c[j >> 2] | 0; if ( (d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 3) >> 0] | 0 | 0) == 1 ) { nv(i, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0); l = h; return 1; } if ((c[(i + 4) >> 2] | 0) >>> 0 >= 32) { l = h; return 1; } nv( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0 ); if ((c[((c[j >> 2] | 0) + 4) >> 2] | 0) >>> 0 <= 32) { l = h; return 1; } c[((c[j >> 2] | 0) + 4) >> 2] = 32; l = h; return 1; } function Jv(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( ((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> ((32 - (c[f >> 2] | 0)) & 31)) | 0 ); } function Kv(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 8224) | 0; h = (g + 8220) | 0; i = (g + 8216) | 0; j = (g + 8212) | 0; k = (g + 8208) | 0; m = (g + 8204) | 0; n = g; o = (g + 8200) | 0; p = (g + 8196) | 0; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; oE(n | 0, 0, 8194) | 0; b[n >> 1] = 12; c[o >> 2] = c[k >> 2]; c[p >> 2] = _v(n, c[k >> 2] | 0, c[m >> 2] | 0) | 0; k = (Cv(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (k) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } if (f >>> 0 >= (c[m >> 2] | 0) >>> 0) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + (c[p >> 2] | 0); c[m >> 2] = (c[m >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = $v( c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0, c[m >> 2] | 0, n ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function Lv(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 16416) | 0; g = (f + 16412) | 0; h = (f + 16408) | 0; i = (f + 16404) | 0; j = (f + 16400) | 0; k = (f + 16396) | 0; m = f; n = (f + 16392) | 0; o = (f + 16388) | 0; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; oE(m | 0, 0, 16388) | 0; c[m >> 2] = 12; c[n >> 2] = c[j >> 2]; c[o >> 2] = Mv(m, c[j >> 2] | 0, c[k >> 2] | 0) | 0; j = (Cv(c[o >> 2] | 0) | 0) != 0; e = c[o >> 2] | 0; if (j) { c[g >> 2] = e; p = c[g >> 2] | 0; l = f; return p | 0; } if (e >>> 0 >= (c[k >> 2] | 0) >>> 0) { c[g >> 2] = -72; p = c[g >> 2] | 0; l = f; return p | 0; } else { c[n >> 2] = (c[n >> 2] | 0) + (c[o >> 2] | 0); c[k >> 2] = (c[k >> 2] | 0) - (c[o >> 2] | 0); c[g >> 2] = Nv( c[h >> 2] | 0, c[i >> 2] | 0, c[n >> 2] | 0, c[k >> 2] | 0, m ) | 0; p = c[g >> 2] | 0; l = f; return p | 0; } return 0; } function Mv(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0; g = l; l = (l + 2128) | 0; h = (g + 2120) | 0; i = (g + 2116) | 0; j = (g + 2112) | 0; k = (g + 2108) | 0; m = (g + 1760) | 0; n = (g + 1248) | 0; o = (g + 1168) | 0; p = (g + 1088) | 0; q = (g + 2104) | 0; r = g; s = (g + 2100) | 0; t = (g + 2096) | 0; u = (g + 2092) | 0; v = (g + 2088) | 0; w = (g + 2084) | 0; x = (g + 2080) | 0; y = (g + 2076) | 0; z = (g + 2072) | 0; A = (g + 2068) | 0; B = (g + 2064) | 0; C = (g + 2060) | 0; D = (g + 2056) | 0; E = (g + 2052) | 0; F = (g + 2048) | 0; G = (g + 2044) | 0; H = (g + 2040) | 0; I = (g + 2036) | 0; J = (g + 2032) | 0; K = (g + 2028) | 0; L = (g + 2024) | 0; M = (g + 2020) | 0; N = (g + 2016) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; f = o; e = (f + 68) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (e | 0)); f = p; e = (f + 72) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (e | 0)); c[q >> 2] = p + 4; c[w >> 2] = c[c[i >> 2] >> 2]; c[y >> 2] = c[i >> 2]; c[z >> 2] = (c[y >> 2] | 0) + 4; if ((c[w >> 2] | 0) >>> 0 > 16) { c[h >> 2] = -44; O = c[h >> 2] | 0; l = g; return O | 0; } c[x >> 2] = Qv(m, 256, o, v, s, c[j >> 2] | 0, c[k >> 2] | 0) | 0; if (Cv(c[x >> 2] | 0) | 0) { c[h >> 2] = c[x >> 2]; O = c[h >> 2] | 0; l = g; return O | 0; } if ((c[s >> 2] | 0) >>> 0 > (c[w >> 2] | 0) >>> 0) { c[h >> 2] = -44; O = c[h >> 2] | 0; l = g; return O | 0; } c[t >> 2] = c[s >> 2]; while (1) { if (c[(o + (c[t >> 2] << 2)) >> 2] | 0) break; c[t >> 2] = (c[t >> 2] | 0) + -1; } c[B >> 2] = 0; c[A >> 2] = 1; while (1) { P = c[B >> 2] | 0; if ((c[A >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) break; c[C >> 2] = P; c[B >> 2] = (c[B >> 2] | 0) + (c[(o + (c[A >> 2] << 2)) >> 2] | 0); c[((c[q >> 2] | 0) + (c[A >> 2] << 2)) >> 2] = c[C >> 2]; c[A >> 2] = (c[A >> 2] | 0) + 1; } c[c[q >> 2] >> 2] = P; c[u >> 2] = c[B >> 2]; c[D >> 2] = 0; while (1) { if ((c[D >> 2] | 0) >>> 0 >= (c[v >> 2] | 0) >>> 0) break; c[E >> 2] = d[(m + (c[D >> 2] | 0)) >> 0]; B = ((c[q >> 2] | 0) + (c[E >> 2] << 2)) | 0; P = c[B >> 2] | 0; c[B >> 2] = P + 1; c[F >> 2] = P; a[(n + (c[F >> 2] << 1)) >> 0] = c[D >> 2]; a[(n + (c[F >> 2] << 1) + 1) >> 0] = c[E >> 2]; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[c[q >> 2] >> 2] = 0; c[G >> 2] = (c[s >> 2] | 0) + 1 - (c[t >> 2] | 0); c[H >> 2] = 0; c[K >> 2] = (c[w >> 2] | 0) - (c[s >> 2] | 0) - 1; c[L >> 2] = r; c[I >> 2] = 1; while (1) { if ((c[I >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) break; c[M >> 2] = c[H >> 2]; c[H >> 2] = (c[H >> 2] | 0) + (c[(o + (c[I >> 2] << 2)) >> 2] << ((c[I >> 2] | 0) + (c[K >> 2] | 0))); c[((c[L >> 2] | 0) + (c[I >> 2] << 2)) >> 2] = c[M >> 2]; c[I >> 2] = (c[I >> 2] | 0) + 1; } c[J >> 2] = c[G >> 2]; while (1) { if ( (c[J >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[G >> 2] | 0)) | 0) >>> 0 ) break; c[N >> 2] = r + (((c[J >> 2] | 0) * 68) | 0); c[I >> 2] = 1; while (1) { if ((c[I >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) break; c[((c[N >> 2] | 0) + (c[I >> 2] << 2)) >> 2] = (c[((c[L >> 2] | 0) + (c[I >> 2] << 2)) >> 2] | 0) >>> (c[J >> 2] | 0); c[I >> 2] = (c[I >> 2] | 0) + 1; } c[J >> 2] = (c[J >> 2] | 0) + 1; } Rv( c[z >> 2] | 0, c[w >> 2] | 0, n, c[u >> 2] | 0, p, r, c[t >> 2] | 0, ((c[s >> 2] | 0) + 1) | 0 ); c[h >> 2] = c[x >> 2]; O = c[h >> 2] | 0; l = g; return O | 0; } function Nv(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0; g = l; l = (l + 192) | 0; h = (g + 184) | 0; i = (g + 180) | 0; j = (g + 176) | 0; k = (g + 172) | 0; m = (g + 168) | 0; n = (g + 164) | 0; o = (g + 160) | 0; p = (g + 156) | 0; q = (g + 152) | 0; r = (g + 148) | 0; s = (g + 144) | 0; t = (g + 140) | 0; u = (g + 136) | 0; v = (g + 120) | 0; w = (g + 104) | 0; x = (g + 88) | 0; y = (g + 72) | 0; z = (g + 64) | 0; A = (g + 60) | 0; B = (g + 56) | 0; C = (g + 52) | 0; D = (g + 48) | 0; E = (g + 44) | 0; F = (g + 40) | 0; G = (g + 36) | 0; H = (g + 32) | 0; I = (g + 28) | 0; J = (g + 24) | 0; K = (g + 20) | 0; L = (g + 16) | 0; M = (g + 12) | 0; N = (g + 8) | 0; O = (g + 4) | 0; P = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ((c[m >> 2] | 0) >>> 0 < 10) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[o >> 2] = c[k >> 2]; c[p >> 2] = c[i >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[j >> 2] | 0); c[r >> 2] = c[n >> 2]; c[s >> 2] = (c[r >> 2] | 0) + 4; c[t >> 2] = c[c[n >> 2] >> 2]; c[z >> 2] = (Ov(c[o >> 2] | 0) | 0) & 65535; c[A >> 2] = (Ov(((c[o >> 2] | 0) + 2) | 0) | 0) & 65535; c[B >> 2] = (Ov(((c[o >> 2] | 0) + 4) | 0) | 0) & 65535; c[D >> 2] = (c[o >> 2] | 0) + 6; c[E >> 2] = (c[D >> 2] | 0) + (c[z >> 2] | 0); c[F >> 2] = (c[E >> 2] | 0) + (c[A >> 2] | 0); c[G >> 2] = (c[F >> 2] | 0) + (c[B >> 2] | 0); c[H >> 2] = (((((c[j >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[I >> 2] = (c[p >> 2] | 0) + (c[H >> 2] | 0); c[J >> 2] = (c[I >> 2] | 0) + (c[H >> 2] | 0); c[K >> 2] = (c[J >> 2] | 0) + (c[H >> 2] | 0); c[L >> 2] = c[p >> 2]; c[M >> 2] = c[I >> 2]; c[N >> 2] = c[J >> 2]; c[O >> 2] = c[K >> 2]; c[C >> 2] = (c[m >> 2] | 0) - ((c[z >> 2] | 0) + (c[A >> 2] | 0) + (c[B >> 2] | 0) + 6); if ((c[C >> 2] | 0) >>> 0 > (c[m >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = av(v, c[D >> 2] | 0, c[z >> 2] | 0) | 0; if (Cv(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = av(w, c[E >> 2] | 0, c[A >> 2] | 0) | 0; if (Cv(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = av(x, c[F >> 2] | 0, c[B >> 2] | 0) | 0; if (Cv(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = av(y, c[G >> 2] | 0, c[C >> 2] | 0) | 0; if (Cv(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } u = cv(v) | 0; C = u | (cv(w) | 0); u = C | (cv(x) | 0); c[P >> 2] = u | (cv(y) | 0); while (1) { if (c[P >> 2] | 0) break; if ( (c[O >> 2] | 0) >>> 0 >= (((c[q >> 2] | 0) + -7) | 0) >>> 0 ) break; if (Gv() | 0) { u = Hv(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; } if (Gv() | 0) { u = Hv(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; } if (Gv() | 0) { u = Hv(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; } if (Gv() | 0) { u = Hv(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; } Gv() | 0; u = Hv(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; Gv() | 0; u = Hv(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; Gv() | 0; u = Hv(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; Gv() | 0; u = Hv(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; if (Gv() | 0) { u = Hv(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; } if (Gv() | 0) { u = Hv(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; } if (Gv() | 0) { u = Hv(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; } if (Gv() | 0) { u = Hv(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; } u = Hv(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; u = Hv(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; u = Hv(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; u = Hv(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; u = cv(v) | 0; C = u | (cv(w) | 0); u = C | (cv(x) | 0); c[P >> 2] = u | (cv(y) | 0); } if ((c[L >> 2] | 0) >>> 0 > (c[I >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } if ((c[M >> 2] | 0) >>> 0 > (c[J >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } if ((c[N >> 2] | 0) >>> 0 > (c[K >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } Ev( c[L >> 2] | 0, v, c[I >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; Ev( c[M >> 2] | 0, w, c[J >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; Ev( c[N >> 2] | 0, x, c[K >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; Ev( c[O >> 2] | 0, y, c[q >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; t = Fv(v) | 0; v = t & (Fv(w) | 0); w = v & (Fv(x) | 0); c[P >> 2] = w & (Fv(y) | 0); if (c[P >> 2] | 0) { c[h >> 2] = c[j >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } else { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } return 0; } function Ov(a) { a = a | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[g >> 2] = a; a = (Xq() | 0) != 0; i = c[g >> 2] | 0; if (a) { b[f >> 1] = Pv(i) | 0; j = b[f >> 1] | 0; l = e; return j | 0; } else { c[h >> 2] = i; b[f >> 1] = (d[c[h >> 2] >> 0] | 0) + ((d[((c[h >> 2] | 0) + 1) >> 0] | 0) << 8); j = b[f >> 1] | 0; l = e; return j | 0; } return 0; } function Pv(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function Qv(b, e, f, g, h, i, j) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0; k = l; l = (l + 80) | 0; m = (k + 68) | 0; n = (k + 64) | 0; o = (k + 60) | 0; p = (k + 56) | 0; q = (k + 52) | 0; r = (k + 48) | 0; s = (k + 44) | 0; t = (k + 40) | 0; u = (k + 36) | 0; v = (k + 32) | 0; w = (k + 28) | 0; x = (k + 24) | 0; y = (k + 20) | 0; z = (k + 16) | 0; A = (k + 12) | 0; B = (k + 8) | 0; C = (k + 4) | 0; D = k; c[n >> 2] = b; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[w >> 2] = c[s >> 2]; if (!(c[t >> 2] | 0)) { c[m >> 2] = -72; E = c[m >> 2] | 0; l = k; return E | 0; } c[x >> 2] = d[c[w >> 2] >> 0]; s = c[x >> 2] | 0; a: do { if ((c[x >> 2] | 0) >>> 0 < 128) { if (((s + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) { c[m >> 2] = -72; E = c[m >> 2] | 0; l = k; return E | 0; } c[y >> 2] = Vv( c[n >> 2] | 0, ((c[o >> 2] | 0) - 1) | 0, ((c[w >> 2] | 0) + 1) | 0, c[x >> 2] | 0 ) | 0; if (wv(c[y >> 2] | 0) | 0) { c[m >> 2] = c[y >> 2]; E = c[m >> 2] | 0; l = k; return E | 0; } } else { j = c[x >> 2] | 0; if (s >>> 0 >= 242) { c[y >> 2] = c[(7392 + ((j - 242) << 2)) >> 2]; oE(c[n >> 2] | 0, 1, c[o >> 2] | 0) | 0; c[x >> 2] = 0; break; } c[y >> 2] = j - 127; c[x >> 2] = (((((c[y >> 2] | 0) + 1) | 0) >>> 0) / 2) | 0; if ( (((c[x >> 2] | 0) + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[m >> 2] = -72; E = c[m >> 2] | 0; l = k; return E | 0; } if ((c[y >> 2] | 0) >>> 0 >= (c[o >> 2] | 0) >>> 0) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } c[w >> 2] = (c[w >> 2] | 0) + 1; c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0) break a; a[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] = (d[ ((c[w >> 2] | 0) + ((((c[z >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) >> 4; a[((c[n >> 2] | 0) + ((c[z >> 2] | 0) + 1)) >> 0] = (d[ ((c[w >> 2] | 0) + ((((c[z >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) & 15; c[z >> 2] = (c[z >> 2] | 0) + 2; } } } while (0); w = c[p >> 2] | 0; o = (w + 68) | 0; do { c[w >> 2] = 0; w = (w + 4) | 0; } while ((w | 0) < (o | 0)); c[u >> 2] = 0; c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0) break; if ( (d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0 | 0) >= 16 ) { F = 20; break; } w = ((c[p >> 2] | 0) + ((d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0) << 2)) | 0; c[w >> 2] = (c[w >> 2] | 0) + 1; c[u >> 2] = (c[u >> 2] | 0) + ((1 << (d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0)) >> 1); c[z >> 2] = (c[z >> 2] | 0) + 1; } if ((F | 0) == 20) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } if (!(c[u >> 2] | 0)) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } c[v >> 2] = (sv(c[u >> 2] | 0) | 0) + 1; if ((c[v >> 2] | 0) >>> 0 > 16) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } c[A >> 2] = 1 << c[v >> 2]; c[B >> 2] = (c[A >> 2] | 0) - (c[u >> 2] | 0); c[C >> 2] = 1 << (sv(c[B >> 2] | 0) | 0); c[D >> 2] = (sv(c[B >> 2] | 0) | 0) + 1; if ((c[C >> 2] | 0) != (c[B >> 2] | 0)) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } a[((c[n >> 2] | 0) + (c[y >> 2] | 0)) >> 0] = c[D >> 2]; n = ((c[p >> 2] | 0) + (c[D >> 2] << 2)) | 0; c[n >> 2] = (c[n >> 2] | 0) + 1; if ( (c[((c[p >> 2] | 0) + 4) >> 2] | 0) >>> 0 >= 2 ? ((c[((c[p >> 2] | 0) + 4) >> 2] & 1) | 0) == 0 : 0 ) { c[c[q >> 2] >> 2] = (c[y >> 2] | 0) + 1; c[c[r >> 2] >> 2] = c[v >> 2]; c[m >> 2] = (c[x >> 2] | 0) + 1; E = c[m >> 2] | 0; l = k; return E | 0; } c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } function Rv(e, f, g, h, i, j, k, m) { e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0; n = l; l = (l + 160) | 0; o = (n + 140) | 0; p = (n + 136) | 0; q = (n + 132) | 0; r = (n + 128) | 0; s = (n + 124) | 0; t = (n + 120) | 0; u = (n + 116) | 0; v = (n + 112) | 0; w = n; x = (n + 108) | 0; y = (n + 104) | 0; z = (n + 100) | 0; A = (n + 148) | 0; B = (n + 96) | 0; C = (n + 92) | 0; D = (n + 88) | 0; E = (n + 84) | 0; F = (n + 80) | 0; G = (n + 76) | 0; H = (n + 72) | 0; I = (n + 68) | 0; J = (n + 144) | 0; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = k; c[v >> 2] = m; c[x >> 2] = (c[v >> 2] | 0) - (c[p >> 2] | 0); c[y >> 2] = (c[v >> 2] | 0) - (c[u >> 2] | 0); u = w; m = c[t >> 2] | 0; k = (u + 68) | 0; do { c[u >> 2] = c[m >> 2]; u = (u + 4) | 0; m = (m + 4) | 0; } while ((u | 0) < (k | 0)); c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[r >> 2] | 0) >>> 0) break; b[A >> 1] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1)) >> 0] | 0; c[B >> 2] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1) + 1) >> 0]; c[C >> 2] = (c[v >> 2] | 0) - (c[B >> 2] | 0); c[D >> 2] = c[(w + (c[B >> 2] << 2)) >> 2]; c[E >> 2] = 1 << ((c[p >> 2] | 0) - (c[C >> 2] | 0)); a: do { if ( (((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0 ) { m = ((c[C >> 2] | 0) + (c[x >> 2] | 0)) | 0; c[G >> 2] = m; c[G >> 2] = (c[G >> 2] | 0) < 1 ? 1 : m; c[F >> 2] = c[((c[s >> 2] | 0) + (c[G >> 2] << 2)) >> 2]; Sv( ((c[o >> 2] | 0) + (c[D >> 2] << 2)) | 0, ((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0, c[C >> 2] | 0, ((c[t >> 2] | 0) + (((c[C >> 2] | 0) * 68) | 0)) | 0, c[G >> 2] | 0, ((c[q >> 2] | 0) + (c[F >> 2] << 1)) | 0, ((c[r >> 2] | 0) - (c[F >> 2] | 0)) | 0, c[v >> 2] | 0, b[A >> 1] | 0 ); } else { c[I >> 2] = (c[D >> 2] | 0) + (c[E >> 2] | 0); Tv(J, b[A >> 1] | 0); a[(J + 2) >> 0] = c[C >> 2]; a[(J + 3) >> 0] = 1; c[H >> 2] = c[D >> 2]; while (1) { if ((c[H >> 2] | 0) >>> 0 >= (c[I >> 2] | 0) >>> 0) break a; m = ((c[o >> 2] | 0) + (c[H >> 2] << 2)) | 0; b[m >> 1] = b[J >> 1] | 0; b[(m + 2) >> 1] = b[(J + 2) >> 1] | 0; c[H >> 2] = (c[H >> 2] | 0) + 1; } } } while (0); m = (w + (c[B >> 2] << 2)) | 0; c[m >> 2] = (c[m >> 2] | 0) + (c[E >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + 1; } l = n; return; } function Sv(f, g, h, i, j, k, m, n, o) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; o = o | 0; var p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; p = l; l = (l + 160) | 0; q = (p + 136) | 0; r = (p + 132) | 0; s = (p + 128) | 0; t = (p + 124) | 0; u = (p + 120) | 0; v = (p + 116) | 0; w = (p + 112) | 0; x = (p + 108) | 0; y = (p + 144) | 0; z = (p + 140) | 0; A = p; B = (p + 104) | 0; C = (p + 100) | 0; D = (p + 96) | 0; E = (p + 92) | 0; F = (p + 88) | 0; G = (p + 84) | 0; H = (p + 80) | 0; I = (p + 76) | 0; J = (p + 72) | 0; K = (p + 68) | 0; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = j; c[v >> 2] = k; c[w >> 2] = m; c[x >> 2] = n; b[y >> 1] = o; o = A; n = c[t >> 2] | 0; t = (o + 68) | 0; do { c[o >> 2] = c[n >> 2]; o = (o + 4) | 0; n = (n + 4) | 0; } while ((o | 0) < (t | 0)); a: do { if ((c[u >> 2] | 0) > 1) { c[D >> 2] = c[(A + (c[u >> 2] << 2)) >> 2]; Tv(z, b[y >> 1] | 0); a[(z + 2) >> 0] = c[s >> 2]; a[(z + 3) >> 0] = 1; c[C >> 2] = 0; while (1) { if ((c[C >> 2] | 0) >>> 0 >= (c[D >> 2] | 0) >>> 0) break a; n = ((c[q >> 2] | 0) + (c[C >> 2] << 2)) | 0; b[n >> 1] = b[z >> 1] | 0; b[(n + 2) >> 1] = b[(z + 2) >> 1] | 0; c[C >> 2] = (c[C >> 2] | 0) + 1; } } } while (0); c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[E >> 2] = d[((c[v >> 2] | 0) + (c[B >> 2] << 1)) >> 0]; c[F >> 2] = d[((c[v >> 2] | 0) + (c[B >> 2] << 1) + 1) >> 0]; c[G >> 2] = (c[x >> 2] | 0) - (c[F >> 2] | 0); c[H >> 2] = 1 << ((c[r >> 2] | 0) - (c[G >> 2] | 0)); c[I >> 2] = c[(A + (c[F >> 2] << 2)) >> 2]; c[J >> 2] = c[I >> 2]; c[K >> 2] = (c[I >> 2] | 0) + (c[H >> 2] | 0); Tv(z, ((e[y >> 1] | 0) + (c[E >> 2] << 8)) & 65535); a[(z + 2) >> 0] = (c[G >> 2] | 0) + (c[s >> 2] | 0); a[(z + 3) >> 0] = 2; do { C = c[q >> 2] | 0; D = c[J >> 2] | 0; c[J >> 2] = D + 1; u = (C + (D << 2)) | 0; b[u >> 1] = b[z >> 1] | 0; b[(u + 2) >> 1] = b[(z + 2) >> 1] | 0; } while ((c[J >> 2] | 0) >>> 0 < (c[K >> 2] | 0) >>> 0); u = (A + (c[F >> 2] << 2)) | 0; c[u >> 2] = (c[u >> 2] | 0) + (c[H >> 2] | 0); c[B >> 2] = (c[B >> 2] | 0) + 1; } l = p; return; } function Tv(d, f) { d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; g = l; l = (l + 16) | 0; h = (g + 4) | 0; i = (g + 8) | 0; j = g; c[h >> 2] = d; b[i >> 1] = f; f = (Xq() | 0) != 0; d = c[h >> 2] | 0; if (f) { Uv(d, b[i >> 1] | 0); l = g; return; } else { c[j >> 2] = d; a[c[j >> 2] >> 0] = b[i >> 1]; a[((c[j >> 2] | 0) + 1) >> 0] = (e[i >> 1] | 0) >> 8; l = g; return; } } function Uv(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = f; h = (f + 4) | 0; c[g >> 2] = d; b[h >> 1] = e; e = b[h >> 1] | 0; h = c[g >> 2] | 0; a[h >> 0] = e; a[(h + 1) >> 0] = e >> 8; l = f; return; } function Vv(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; f = l; l = (l + 16960) | 0; g = (f + 16948) | 0; h = (f + 16944) | 0; i = (f + 16940) | 0; j = (f + 16936) | 0; k = (f + 16932) | 0; m = (f + 16928) | 0; n = (f + 16924) | 0; o = (f + 16400) | 0; p = f; q = (f + 16920) | 0; r = (f + 16916) | 0; s = (f + 16912) | 0; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = c[j >> 2]; c[n >> 2] = c[m >> 2]; c[r >> 2] = 255; if ((c[k >> 2] | 0) >>> 0 < 2) { c[g >> 2] = -72; t = c[g >> 2] | 0; l = f; return t | 0; } c[s >> 2] = vv(o, r, q, c[m >> 2] | 0, c[k >> 2] | 0) | 0; m = (wv(c[s >> 2] | 0) | 0) != 0; j = c[s >> 2] | 0; if (m) { c[g >> 2] = j; t = c[g >> 2] | 0; l = f; return t | 0; } if (j >>> 0 >= (c[k >> 2] | 0) >>> 0) { c[g >> 2] = -72; t = c[g >> 2] | 0; l = f; return t | 0; } c[n >> 2] = (c[n >> 2] | 0) + (c[s >> 2] | 0); c[k >> 2] = (c[k >> 2] | 0) - (c[s >> 2] | 0); c[s >> 2] = xv(p, o, c[r >> 2] | 0, c[q >> 2] | 0) | 0; if (wv(c[s >> 2] | 0) | 0) { c[g >> 2] = c[s >> 2]; t = c[g >> 2] | 0; l = f; return t | 0; } else { c[g >> 2] = Wv( c[h >> 2] | 0, c[i >> 2] | 0, c[n >> 2] | 0, c[k >> 2] | 0, p ) | 0; t = c[g >> 2] | 0; l = f; return t | 0; } return 0; } function Wv(b, d, f, g, h) { b = b | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0; i = l; l = (l + 208) | 0; j = (i + 192) | 0; k = (i + 188) | 0; m = (i + 184) | 0; n = (i + 180) | 0; o = (i + 176) | 0; p = (i + 172) | 0; q = (i + 168) | 0; r = (i + 164) | 0; s = (i + 160) | 0; t = (i + 156) | 0; u = (i + 152) | 0; v = (i + 136) | 0; w = (i + 128) | 0; x = (i + 120) | 0; y = (i + 116) | 0; z = (i + 112) | 0; A = (i + 108) | 0; B = (i + 104) | 0; C = (i + 100) | 0; D = (i + 96) | 0; E = (i + 92) | 0; F = (i + 88) | 0; G = (i + 84) | 0; H = (i + 80) | 0; I = (i + 76) | 0; J = (i + 72) | 0; K = (i + 56) | 0; L = (i + 48) | 0; M = (i + 40) | 0; N = (i + 36) | 0; O = (i + 32) | 0; P = (i + 28) | 0; Q = (i + 24) | 0; R = (i + 20) | 0; S = (i + 16) | 0; T = (i + 12) | 0; U = (i + 8) | 0; V = (i + 4) | 0; W = i; c[P >> 2] = b; c[Q >> 2] = d; c[R >> 2] = f; c[S >> 2] = g; c[T >> 2] = h; c[U >> 2] = c[T >> 2]; c[V >> 2] = c[U >> 2]; c[W >> 2] = e[((c[V >> 2] | 0) + 2) >> 1]; V = c[P >> 2] | 0; P = c[Q >> 2] | 0; Q = c[R >> 2] | 0; R = c[S >> 2] | 0; S = c[T >> 2] | 0; if (c[W >> 2] | 0) { c[A >> 2] = V; c[B >> 2] = P; c[C >> 2] = Q; c[D >> 2] = R; c[E >> 2] = S; c[F >> 2] = 1; c[G >> 2] = c[A >> 2]; c[H >> 2] = c[G >> 2]; c[I >> 2] = (c[H >> 2] | 0) + (c[B >> 2] | 0); c[J >> 2] = (c[I >> 2] | 0) + -3; c[N >> 2] = av(K, c[C >> 2] | 0, c[D >> 2] | 0) | 0; do { if (!(wv(c[N >> 2] | 0) | 0)) { bv(L, K, c[E >> 2] | 0); bv(M, K, c[E >> 2] | 0); while (1) { if (cv(K) | 0) break; if ((c[H >> 2] | 0) >>> 0 >= (c[J >> 2] | 0) >>> 0) break; if (c[F >> 2] | 0) X = (Xv(L, K) | 0) & 255; else X = (lv(L, K) | 0) & 255; a[c[H >> 2] >> 0] = X; if (c[F >> 2] | 0) Y = (Xv(M, K) | 0) & 255; else Y = (lv(M, K) | 0) & 255; a[((c[H >> 2] | 0) + 1) >> 0] = Y; if ((cv(K) | 0) >>> 0 > 0) { Z = 14; break; } if (c[F >> 2] | 0) _ = (Xv(L, K) | 0) & 255; else _ = (lv(L, K) | 0) & 255; a[((c[H >> 2] | 0) + 2) >> 0] = _; if (c[F >> 2] | 0) $ = (Xv(M, K) | 0) & 255; else $ = (lv(M, K) | 0) & 255; a[((c[H >> 2] | 0) + 3) >> 0] = $; c[H >> 2] = (c[H >> 2] | 0) + 4; } if ((Z | 0) == 14) c[H >> 2] = (c[H >> 2] | 0) + 2; while (1) { if ((cv(K) | 0) >>> 0 > 2) break; if ((c[H >> 2] | 0) == (c[I >> 2] | 0)) break; if (Fv(K) | 0) { if (c[F >> 2] | 0) break; if (Yv(L) | 0) break; } if (c[F >> 2] | 0) aa = (Xv(L, K) | 0) & 255; else aa = (lv(L, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = aa; if ((cv(K) | 0) >>> 0 > 2) break; if ((c[H >> 2] | 0) == (c[I >> 2] | 0)) break; if (Fv(K) | 0) { if (c[F >> 2] | 0) break; if (Yv(M) | 0) break; } if (c[F >> 2] | 0) ba = (Xv(M, K) | 0) & 255; else ba = (lv(M, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = ba; } if ((Fv(K) | 0 ? Yv(L) | 0 : 0) ? Yv(M) | 0 : 0) { c[z >> 2] = (c[H >> 2] | 0) - (c[G >> 2] | 0); break; } if ((c[H >> 2] | 0) == (c[I >> 2] | 0)) { c[z >> 2] = -70; break; } else { c[z >> 2] = -20; break; } } else c[z >> 2] = c[N >> 2]; } while (0); c[O >> 2] = c[z >> 2]; ca = c[O >> 2] | 0; l = i; return ca | 0; } else { c[k >> 2] = V; c[m >> 2] = P; c[n >> 2] = Q; c[o >> 2] = R; c[p >> 2] = S; c[q >> 2] = 0; c[r >> 2] = c[k >> 2]; c[s >> 2] = c[r >> 2]; c[t >> 2] = (c[s >> 2] | 0) + (c[m >> 2] | 0); c[u >> 2] = (c[t >> 2] | 0) + -3; c[y >> 2] = av(v, c[n >> 2] | 0, c[o >> 2] | 0) | 0; do { if (!(wv(c[y >> 2] | 0) | 0)) { bv(w, v, c[p >> 2] | 0); bv(x, v, c[p >> 2] | 0); while (1) { if (cv(v) | 0) break; if ((c[s >> 2] | 0) >>> 0 >= (c[u >> 2] | 0) >>> 0) break; if (c[q >> 2] | 0) da = (Xv(w, v) | 0) & 255; else da = (lv(w, v) | 0) & 255; a[c[s >> 2] >> 0] = da; if (c[q >> 2] | 0) ea = (Xv(x, v) | 0) & 255; else ea = (lv(x, v) | 0) & 255; a[((c[s >> 2] | 0) + 1) >> 0] = ea; if ((cv(v) | 0) >>> 0 > 0) { Z = 60; break; } if (c[q >> 2] | 0) fa = (Xv(w, v) | 0) & 255; else fa = (lv(w, v) | 0) & 255; a[((c[s >> 2] | 0) + 2) >> 0] = fa; if (c[q >> 2] | 0) ga = (Xv(x, v) | 0) & 255; else ga = (lv(x, v) | 0) & 255; a[((c[s >> 2] | 0) + 3) >> 0] = ga; c[s >> 2] = (c[s >> 2] | 0) + 4; } if ((Z | 0) == 60) c[s >> 2] = (c[s >> 2] | 0) + 2; while (1) { if ((cv(v) | 0) >>> 0 > 2) break; if ((c[s >> 2] | 0) == (c[t >> 2] | 0)) break; if (Fv(v) | 0) { if (c[q >> 2] | 0) break; if (Yv(w) | 0) break; } if (c[q >> 2] | 0) ha = (Xv(w, v) | 0) & 255; else ha = (lv(w, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ha; if ((cv(v) | 0) >>> 0 > 2) break; if ((c[s >> 2] | 0) == (c[t >> 2] | 0)) break; if (Fv(v) | 0) { if (c[q >> 2] | 0) break; if (Yv(x) | 0) break; } if (c[q >> 2] | 0) ia = (Xv(x, v) | 0) & 255; else ia = (lv(x, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ia; } if ((Fv(v) | 0 ? Yv(w) | 0 : 0) ? Yv(x) | 0 : 0) { c[j >> 2] = (c[s >> 2] | 0) - (c[r >> 2] | 0); break; } if ((c[s >> 2] | 0) == (c[t >> 2] | 0)) { c[j >> 2] = -70; break; } else { c[j >> 2] = -20; break; } } else c[j >> 2] = c[y >> 2]; } while (0); c[O >> 2] = c[j >> 2]; ca = c[O >> 2] | 0; l = i; return ca | 0; } return 0; } function Xv(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = Zv(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function Yv(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[c[d >> 2] >> 2] | 0) == 0) | 0; } function Zv(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = Jv(c[e >> 2] | 0, c[f >> 2] | 0) | 0; nv(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function _v(f, g, h) { f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; i = l; l = (l + 400) | 0; j = (i + 392) | 0; k = (i + 388) | 0; m = (i + 384) | 0; n = (i + 380) | 0; o = (i + 80) | 0; p = i; q = (i + 376) | 0; r = (i + 372) | 0; s = (i + 368) | 0; t = (i + 364) | 0; u = (i + 360) | 0; v = (i + 356) | 0; w = (i + 352) | 0; x = (i + 348) | 0; y = (i + 344) | 0; z = (i + 340) | 0; A = (i + 336) | 0; B = (i + 396) | 0; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = h; c[q >> 2] = 0; c[s >> 2] = 0; c[v >> 2] = (c[k >> 2] | 0) + 2; c[w >> 2] = c[v >> 2]; c[r >> 2] = Qv(o, 256, p, s, q, c[m >> 2] | 0, c[n >> 2] | 0) | 0; if (Cv(c[r >> 2] | 0) | 0) { c[j >> 2] = c[r >> 2]; C = c[j >> 2] | 0; l = i; return C | 0; } if ((c[q >> 2] | 0) >>> 0 > (e[c[k >> 2] >> 1] | 0) >>> 0) { c[j >> 2] = -44; C = c[j >> 2] | 0; l = i; return C | 0; } b[c[k >> 2] >> 1] = c[q >> 2]; c[u >> 2] = 0; c[t >> 2] = 1; while (1) { if ((c[t >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) break; c[x >> 2] = c[u >> 2]; c[u >> 2] = (c[u >> 2] | 0) + (c[(p + (c[t >> 2] << 2)) >> 2] << ((c[t >> 2] | 0) - 1)); c[(p + (c[t >> 2] << 2)) >> 2] = c[x >> 2]; c[t >> 2] = (c[t >> 2] | 0) + 1; } c[t >> 2] = 0; while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[s >> 2] | 0) >>> 0) break; c[y >> 2] = d[(o + (c[t >> 2] | 0)) >> 0]; c[z >> 2] = (1 << c[y >> 2]) >> 1; a[B >> 0] = c[t >> 2]; a[(B + 1) >> 0] = (c[q >> 2] | 0) + 1 - (c[y >> 2] | 0); c[A >> 2] = c[(p + (c[y >> 2] << 2)) >> 2]; while (1) { if ( (c[A >> 2] | 0) >>> 0 >= (((c[(p + (c[y >> 2] << 2)) >> 2] | 0) + (c[z >> 2] | 0)) | 0) >>> 0 ) break; x = ((c[w >> 2] | 0) + (c[A >> 2] << 1)) | 0; a[x >> 0] = a[B >> 0] | 0; a[(x + 1) >> 0] = a[(B + 1) >> 0] | 0; c[A >> 2] = (c[A >> 2] | 0) + 1; } x = (p + (c[y >> 2] << 2)) | 0; c[x >> 2] = (c[x >> 2] | 0) + (c[z >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) + 1; } c[j >> 2] = c[r >> 2]; C = c[j >> 2] | 0; l = i; return C | 0; } function $v(b, d, f, g, h) { b = b | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0; i = l; l = (l + 192) | 0; j = (i + 184) | 0; k = (i + 180) | 0; m = (i + 176) | 0; n = (i + 172) | 0; o = (i + 168) | 0; p = (i + 164) | 0; q = (i + 160) | 0; r = (i + 156) | 0; s = (i + 152) | 0; t = (i + 148) | 0; u = (i + 144) | 0; v = (i + 140) | 0; w = (i + 136) | 0; x = (i + 120) | 0; y = (i + 104) | 0; z = (i + 88) | 0; A = (i + 72) | 0; B = (i + 64) | 0; C = (i + 60) | 0; D = (i + 56) | 0; E = (i + 52) | 0; F = (i + 48) | 0; G = (i + 44) | 0; H = (i + 40) | 0; I = (i + 36) | 0; J = (i + 32) | 0; K = (i + 28) | 0; L = (i + 24) | 0; M = (i + 20) | 0; N = (i + 16) | 0; O = (i + 12) | 0; P = (i + 8) | 0; Q = (i + 4) | 0; R = i; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; c[q >> 2] = c[n >> 2]; c[r >> 2] = c[k >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[m >> 2] | 0); c[t >> 2] = c[p >> 2]; c[u >> 2] = (c[t >> 2] | 0) + 2; c[v >> 2] = e[c[p >> 2] >> 1]; c[B >> 2] = (Ov(c[q >> 2] | 0) | 0) & 65535; c[C >> 2] = (Ov(((c[q >> 2] | 0) + 2) | 0) | 0) & 65535; c[D >> 2] = (Ov(((c[q >> 2] | 0) + 4) | 0) | 0) & 65535; c[F >> 2] = (c[q >> 2] | 0) + 6; c[G >> 2] = (c[F >> 2] | 0) + (c[B >> 2] | 0); c[H >> 2] = (c[G >> 2] | 0) + (c[C >> 2] | 0); c[I >> 2] = (c[H >> 2] | 0) + (c[D >> 2] | 0); c[J >> 2] = (((((c[m >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[K >> 2] = (c[r >> 2] | 0) + (c[J >> 2] | 0); c[L >> 2] = (c[K >> 2] | 0) + (c[J >> 2] | 0); c[M >> 2] = (c[L >> 2] | 0) + (c[J >> 2] | 0); c[N >> 2] = c[r >> 2]; c[O >> 2] = c[K >> 2]; c[P >> 2] = c[L >> 2]; c[Q >> 2] = c[M >> 2]; if ((c[o >> 2] | 0) >>> 0 < 10) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } c[E >> 2] = (c[o >> 2] | 0) - ((c[B >> 2] | 0) + (c[C >> 2] | 0) + (c[D >> 2] | 0) + 6); if ((c[E >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = av(x, c[F >> 2] | 0, c[B >> 2] | 0) | 0; if (Cv(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = av(y, c[G >> 2] | 0, c[C >> 2] | 0) | 0; if (Cv(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = av(z, c[H >> 2] | 0, c[D >> 2] | 0) | 0; if (Cv(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = av(A, c[I >> 2] | 0, c[E >> 2] | 0) | 0; if (Cv(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } w = cv(x) | 0; E = w | (cv(y) | 0); w = E | (cv(z) | 0); c[R >> 2] = w | (cv(A) | 0); while (1) { if (c[R >> 2] | 0) break; if ( (c[Q >> 2] | 0) >>> 0 >= (((c[s >> 2] | 0) + -7) | 0) >>> 0 ) break; if (Gv() | 0) { w = aw(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; } if (Gv() | 0) { w = aw(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; } if (Gv() | 0) { w = aw(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; } if (Gv() | 0) { w = aw(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; } Gv() | 0; w = aw(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; Gv() | 0; w = aw(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; Gv() | 0; w = aw(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; Gv() | 0; w = aw(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; if (Gv() | 0) { w = aw(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; } if (Gv() | 0) { w = aw(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; } if (Gv() | 0) { w = aw(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; } if (Gv() | 0) { w = aw(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; } w = aw(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; w = aw(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; w = aw(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; w = aw(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; w = cv(x) | 0; E = w | (cv(y) | 0); w = E | (cv(z) | 0); c[R >> 2] = w | (cv(A) | 0); } if ((c[N >> 2] | 0) >>> 0 > (c[K >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } if ((c[O >> 2] | 0) >>> 0 > (c[L >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } if ((c[P >> 2] | 0) >>> 0 > (c[M >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } bw( c[N >> 2] | 0, x, c[K >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; bw( c[O >> 2] | 0, y, c[L >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; bw( c[P >> 2] | 0, z, c[M >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; bw( c[Q >> 2] | 0, A, c[s >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; v = Fv(x) | 0; x = v & (Fv(y) | 0); y = x & (Fv(z) | 0); c[R >> 2] = y & (Fv(A) | 0); if (c[R >> 2] | 0) { c[j >> 2] = c[m >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } else { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } return 0; } function aw(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 4) | 0; k = g; m = (g + 16) | 0; c[h >> 2] = b; c[i >> 2] = e; c[j >> 2] = f; c[k >> 2] = Jv(c[h >> 2] | 0, c[j >> 2] | 0) | 0; a[m >> 0] = a[((c[i >> 2] | 0) + (c[k >> 2] << 1)) >> 0] | 0; nv( c[h >> 2] | 0, d[((c[i >> 2] | 0) + (c[k >> 2] << 1) + 1) >> 0] | 0 ); l = g; return a[m >> 0] | 0; } function bw(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 20) | 0; j = (h + 16) | 0; k = (h + 12) | 0; m = (h + 8) | 0; n = (h + 4) | 0; o = h; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = c[i >> 2]; while (1) { if (cv(c[j >> 2] | 0) | 0) break; if ( (c[i >> 2] | 0) >>> 0 > (((c[k >> 2] | 0) + -4) | 0) >>> 0 ) break; if (Gv() | 0) { g = aw(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } Gv() | 0; g = aw(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; if (Gv() | 0) { g = aw(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } g = aw(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } while (1) { if (cv(c[j >> 2] | 0) | 0) break; if ((c[i >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; g = aw(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } while (1) { if ((c[i >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; g = aw(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } l = h; return ((c[k >> 2] | 0) - (c[o >> 2] | 0)) | 0; } function cw(a, b, d, f, g) { a = a | 0; b = b | 0; d = d | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; h = l; l = (l + 80) | 0; i = (h + 64) | 0; j = (h + 60) | 0; k = (h + 56) | 0; m = (h + 52) | 0; n = (h + 48) | 0; o = (h + 44) | 0; p = (h + 40) | 0; q = (h + 36) | 0; r = (h + 32) | 0; s = (h + 28) | 0; t = (h + 24) | 0; u = (h + 8) | 0; v = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[j >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[k >> 2] | 0); c[r >> 2] = e[c[o >> 2] >> 1]; c[s >> 2] = c[o >> 2]; c[t >> 2] = (c[s >> 2] | 0) + 2; if ((c[k >> 2] | 0) >>> 0 <= (c[n >> 2] | 0) >>> 0) { c[i >> 2] = -70; w = c[i >> 2] | 0; l = h; return w | 0; } c[v >> 2] = av(u, c[m >> 2] | 0, c[n >> 2] | 0) | 0; if (Cv(c[v >> 2] | 0) | 0) { c[i >> 2] = c[v >> 2]; w = c[i >> 2] | 0; l = h; return w | 0; } bw( c[p >> 2] | 0, u, c[q >> 2] | 0, c[t >> 2] | 0, c[r >> 2] | 0 ) | 0; if (Fv(u) | 0) { c[i >> 2] = c[k >> 2]; w = c[i >> 2] | 0; l = h; return w | 0; } else { c[i >> 2] = -20; w = c[i >> 2] | 0; l = h; return w | 0; } return 0; } function dw(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; c[((c[d >> 2] | 0) + 26656) >> 2] = 5; c[((c[d >> 2] | 0) + 26708) >> 2] = 0; c[((c[d >> 2] | 0) + 26640) >> 2] = 0; c[((c[d >> 2] | 0) + 26644) >> 2] = 0; c[((c[d >> 2] | 0) + 26648) >> 2] = 0; c[((c[d >> 2] | 0) + 26652) >> 2] = 0; c[((c[d >> 2] | 0) + 10252) >> 2] = 12; c[((c[d >> 2] | 0) + 26712) >> 2] = 0; l = b; return 0; } function ew(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[k >> 2] = Wq(c[h >> 2] | 0) | 0; if ((c[k >> 2] | 0) != -332356555) { fw(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0); c[f >> 2] = 0; m = c[f >> 2] | 0; l = e; return m | 0; } c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) - 4; c[j >> 2] = gw(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if (mr(c[j >> 2] | 0) | 0) { c[f >> 2] = -30; m = c[f >> 2] | 0; l = e; return m | 0; } else { c[h >> 2] = (c[h >> 2] | 0) + (c[j >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[j >> 2] | 0); fw(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0); c[f >> 2] = 0; m = c[f >> 2] | 0; l = e; return m | 0; } return 0; } function fw(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[((c[f >> 2] | 0) + 26652) >> 2] = c[((c[f >> 2] | 0) + 26640) >> 2]; c[((c[f >> 2] | 0) + 26648) >> 2] = (c[g >> 2] | 0) + (0 - ((c[((c[f >> 2] | 0) + 26640) >> 2] | 0) - (c[((c[f >> 2] | 0) + 26644) >> 2] | 0))); c[((c[f >> 2] | 0) + 26644) >> 2] = c[g >> 2]; c[((c[f >> 2] | 0) + 26640) >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return; } function gw(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; e = l; l = (l + 512) | 0; f = (e + 504) | 0; g = (e + 500) | 0; h = (e + 496) | 0; i = (e + 492) | 0; j = (e + 488) | 0; k = (e + 484) | 0; m = (e + 480) | 0; n = (e + 476) | 0; o = (e + 472) | 0; p = (e + 384) | 0; q = (e + 468) | 0; r = (e + 464) | 0; s = (e + 128) | 0; t = (e + 460) | 0; u = (e + 456) | 0; v = e; w = (e + 452) | 0; x = (e + 448) | 0; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[q >> 2] = 31; c[t >> 2] = 127; c[w >> 2] = 63; c[j >> 2] = Mv( ((c[g >> 2] | 0) + 10252) | 0, c[h >> 2] | 0, c[i >> 2] | 0 ) | 0; if (Cv(c[j >> 2] | 0) | 0) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } c[h >> 2] = (c[h >> 2] | 0) + (c[j >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[j >> 2] | 0); c[k >> 2] = vv(p, q, r, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if (wv(c[k >> 2] | 0) | 0) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } if ((c[r >> 2] | 0) >>> 0 > 9) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } c[n >> 2] = xv( ((c[g >> 2] | 0) + 4100) | 0, p, c[q >> 2] | 0, c[r >> 2] | 0 ) | 0; if (wv(c[n >> 2] | 0) | 0) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } c[h >> 2] = (c[h >> 2] | 0) + (c[k >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[k >> 2] | 0); c[m >> 2] = vv(s, t, u, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if (wv(c[m >> 2] | 0) | 0) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } if ((c[u >> 2] | 0) >>> 0 > 10) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } c[n >> 2] = xv( ((c[g >> 2] | 0) + 6152) | 0, s, c[t >> 2] | 0, c[u >> 2] | 0 ) | 0; if (wv(c[n >> 2] | 0) | 0) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } c[h >> 2] = (c[h >> 2] | 0) + (c[m >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[m >> 2] | 0); c[o >> 2] = vv(v, w, x, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if ((c[x >> 2] | 0) >>> 0 > 10) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } if (wv(c[o >> 2] | 0) | 0) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } c[n >> 2] = xv(c[g >> 2] | 0, v, c[w >> 2] | 0, c[x >> 2] | 0) | 0; if (wv(c[n >> 2] | 0) | 0) { c[f >> 2] = -30; y = c[f >> 2] | 0; l = e; return y | 0; } else { c[((c[g >> 2] | 0) + 26712) >> 2] = 1; c[f >> 2] = (c[j >> 2] | 0) + (c[k >> 2] | 0) + (c[m >> 2] | 0) + (c[o >> 2] | 0); y = c[f >> 2] | 0; l = e; return y | 0; } return 0; } function hw() { var a = 0, b = 0, d = 0, e = 0; a = l; l = (l + 16) | 0; b = (a + 4) | 0; d = a; c[d >> 2] = Cy(141416) | 0; if (!(c[d >> 2] | 0)) { c[b >> 2] = 0; e = c[b >> 2] | 0; l = a; return e | 0; } else { kw(c[d >> 2] | 0) | 0; c[b >> 2] = c[d >> 2]; e = c[b >> 2] | 0; l = a; return e | 0; } return 0; } function iw(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 16) | 0; i = (g + 12) | 0; j = (g + 8) | 0; k = (g + 4) | 0; m = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; f = jw( c[h >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, 0, 0 ) | 0; l = g; return f | 0; } function jw(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0; i = l; l = (l + 80) | 0; j = (i + 76) | 0; k = (i + 72) | 0; m = (i + 68) | 0; n = (i + 64) | 0; o = (i + 60) | 0; p = (i + 56) | 0; q = (i + 52) | 0; r = (i + 48) | 0; s = (i + 44) | 0; t = (i + 40) | 0; u = (i + 36) | 0; v = (i + 32) | 0; w = (i + 28) | 0; x = (i + 24) | 0; y = (i + 16) | 0; z = (i + 8) | 0; A = (i + 4) | 0; B = i; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = d; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = c[o >> 2]; c[t >> 2] = (c[s >> 2] | 0) + (c[p >> 2] | 0); c[u >> 2] = c[m >> 2]; c[v >> 2] = c[u >> 2]; c[w >> 2] = (c[u >> 2] | 0) + (c[n >> 2] | 0); c[x >> 2] = c[p >> 2]; kw(c[k >> 2] | 0) | 0; if (c[q >> 2] | 0) { lw(c[k >> 2] | 0, c[q >> 2] | 0, c[r >> 2] | 0); c[((c[k >> 2] | 0) + 10264) >> 2] = c[((c[k >> 2] | 0) + 10252) >> 2]; c[((c[k >> 2] | 0) + 10260) >> 2] = (c[m >> 2] | 0) + (0 - ((c[((c[k >> 2] | 0) + 10252) >> 2] | 0) - (c[((c[k >> 2] | 0) + 10256) >> 2] | 0))); c[((c[k >> 2] | 0) + 10256) >> 2] = c[m >> 2]; } else { r = c[m >> 2] | 0; c[((c[k >> 2] | 0) + 10264) >> 2] = r; c[((c[k >> 2] | 0) + 10256) >> 2] = r; c[((c[k >> 2] | 0) + 10260) >> 2] = r; } if ((c[p >> 2] | 0) >>> 0 < 8) { c[j >> 2] = -72; C = c[j >> 2] | 0; l = i; return C | 0; } c[z >> 2] = mw(c[k >> 2] | 0, c[o >> 2] | 0, 5) | 0; if (rr(c[z >> 2] | 0) | 0) { c[j >> 2] = c[z >> 2]; C = c[j >> 2] | 0; l = i; return C | 0; } if ( (c[p >> 2] | 0) >>> 0 < (((c[z >> 2] | 0) + 3) | 0) >>> 0 ) { c[j >> 2] = -72; C = c[j >> 2] | 0; l = i; return C | 0; } c[s >> 2] = (c[s >> 2] | 0) + (c[z >> 2] | 0); c[x >> 2] = (c[x >> 2] | 0) - (c[z >> 2] | 0); c[z >> 2] = nw(c[k >> 2] | 0, c[o >> 2] | 0, c[z >> 2] | 0) | 0; if (rr(c[z >> 2] | 0) | 0) { c[j >> 2] = c[z >> 2]; C = c[j >> 2] | 0; l = i; return C | 0; } a: while (1) { c[A >> 2] = 0; c[B >> 2] = qr( c[s >> 2] | 0, ((c[t >> 2] | 0) - (c[s >> 2] | 0)) | 0, y ) | 0; if (rr(c[B >> 2] | 0) | 0) { D = 14; break; } c[s >> 2] = (c[s >> 2] | 0) + 3; c[x >> 2] = (c[x >> 2] | 0) - 3; if ((c[B >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0) { D = 16; break; } switch (c[y >> 2] | 0) { case 2: { D = 20; break a; break; } case 0: { c[A >> 2] = ow( c[k >> 2] | 0, c[v >> 2] | 0, ((c[w >> 2] | 0) - (c[v >> 2] | 0)) | 0, c[s >> 2] | 0, c[B >> 2] | 0 ) | 0; break; } case 1: { c[A >> 2] = pw( c[v >> 2] | 0, ((c[w >> 2] | 0) - (c[v >> 2] | 0)) | 0, c[s >> 2] | 0, c[B >> 2] | 0 ) | 0; break; } case 3: { if (c[x >> 2] | 0) { D = 22; break a; } break; } default: { D = 23; break a; } } if (!(c[B >> 2] | 0)) { D = 28; break; } z = (rr(c[A >> 2] | 0) | 0) != 0; E = c[A >> 2] | 0; if (z) { D = 26; break; } c[v >> 2] = (c[v >> 2] | 0) + E; c[s >> 2] = (c[s >> 2] | 0) + (c[B >> 2] | 0); c[x >> 2] = (c[x >> 2] | 0) - (c[B >> 2] | 0); } if ((D | 0) == 14) { c[j >> 2] = c[B >> 2]; C = c[j >> 2] | 0; l = i; return C | 0; } else if ((D | 0) == 16) { c[j >> 2] = -72; C = c[j >> 2] | 0; l = i; return C | 0; } else if ((D | 0) == 20) { c[j >> 2] = -1; C = c[j >> 2] | 0; l = i; return C | 0; } else if ((D | 0) == 22) { c[j >> 2] = -72; C = c[j >> 2] | 0; l = i; return C | 0; } else if ((D | 0) == 23) { c[j >> 2] = -1; C = c[j >> 2] | 0; l = i; return C | 0; } else if ((D | 0) == 26) { c[j >> 2] = E; C = c[j >> 2] | 0; l = i; return C | 0; } else if ((D | 0) == 28) { c[j >> 2] = (c[v >> 2] | 0) - (c[u >> 2] | 0); C = c[j >> 2] | 0; l = i; return C | 0; } return 0; } function kw(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; c[((c[d >> 2] | 0) + 10268) >> 2] = 5; c[((c[d >> 2] | 0) + 10316) >> 2] = 0; c[((c[d >> 2] | 0) + 10252) >> 2] = 0; c[((c[d >> 2] | 0) + 10256) >> 2] = 0; c[((c[d >> 2] | 0) + 10260) >> 2] = 0; c[((c[d >> 2] | 0) + 10264) >> 2] = 0; l = b; return 0; } function lw(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[((c[f >> 2] | 0) + 10264) >> 2] = c[((c[f >> 2] | 0) + 10252) >> 2]; c[((c[f >> 2] | 0) + 10260) >> 2] = (c[g >> 2] | 0) + (0 - ((c[((c[f >> 2] | 0) + 10252) >> 2] | 0) - (c[((c[f >> 2] | 0) + 10256) >> 2] | 0))); c[((c[f >> 2] | 0) + 10256) >> 2] = c[g >> 2]; c[((c[f >> 2] | 0) + 10252) >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return; } function mw(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; if ((c[i >> 2] | 0) != 5) { c[f >> 2] = -72; k = c[f >> 2] | 0; l = e; return k | 0; } c[j >> 2] = pr(c[h >> 2] | 0) | 0; if ((c[j >> 2] | 0) != -47205084) { c[f >> 2] = -10; k = c[f >> 2] | 0; l = e; return k | 0; } else { c[((c[g >> 2] | 0) + 10272) >> 2] = 5; c[f >> 2] = c[((c[g >> 2] | 0) + 10272) >> 2]; k = c[f >> 2] | 0; l = e; return k | 0; } return 0; } function nw(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; if ( (c[i >> 2] | 0) != (c[((c[g >> 2] | 0) + 10272) >> 2] | 0) ) { c[f >> 2] = -72; k = c[f >> 2] | 0; l = e; return k | 0; } c[j >> 2] = sx( ((c[g >> 2] | 0) + 10280) | 0, c[h >> 2] | 0, c[i >> 2] | 0 ) | 0; if ( Dw() | 0 ? (c[((c[g >> 2] | 0) + 10280 + 8) >> 2] | 0) >>> 0 > 25 : 0 ) { c[f >> 2] = -14; k = c[f >> 2] | 0; l = e; return k | 0; } c[f >> 2] = c[j >> 2]; k = c[f >> 2] | 0; l = e; return k | 0; } function ow(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = qw(c[i >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; m = (rr(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (m) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + f; c[n >> 2] = (c[n >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = rw( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[o >> 2] | 0, c[n >> 2] | 0 ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function pw(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; if ((c[k >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) { c[g >> 2] = -70; m = c[g >> 2] | 0; l = f; return m | 0; } else { mE(c[h >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0) | 0; c[g >> 2] = c[k >> 2]; m = c[g >> 2] | 0; l = f; return m | 0; } return 0; } function qw(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 48) | 0; h = (g + 32) | 0; i = (g + 28) | 0; j = (g + 24) | 0; k = (g + 20) | 0; m = (g + 16) | 0; n = (g + 12) | 0; o = (g + 8) | 0; p = (g + 4) | 0; q = g; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = c[j >> 2]; if ((c[k >> 2] | 0) >>> 0 < 11) { c[h >> 2] = -20; r = c[h >> 2] | 0; l = g; return r | 0; } switch (((d[c[m >> 2] >> 0] | 0) & 3) | 0) { case 0: { c[n >> 2] = 131072; c[o >> 2] = Uw( ((c[i >> 2] | 0) + 10328) | 0, n, c[j >> 2] | 0, c[k >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 10320) >> 2] = (c[i >> 2] | 0) + 10328; c[((c[i >> 2] | 0) + 10324) >> 2] = c[n >> 2]; n = ((c[i >> 2] | 0) + 10328 + (c[((c[i >> 2] | 0) + 10324) >> 2] | 0)) | 0; a[n >> 0] = 0; a[(n + 1) >> 0] = 0; a[(n + 2) >> 0] = 0; a[(n + 3) >> 0] = 0; a[(n + 4) >> 0] = 0; a[(n + 5) >> 0] = 0; a[(n + 6) >> 0] = 0; a[(n + 7) >> 0] = 0; c[h >> 2] = c[o >> 2]; r = c[h >> 2] | 0; l = g; return r | 0; } case 1: { c[p >> 2] = ((pr(c[m >> 2] | 0) | 0) & 16777215) >>> 2; if ( (c[p >> 2] | 0) >>> 0 <= (((c[k >> 2] | 0) - 11) | 0) >>> 0 ) { c[((c[i >> 2] | 0) + 10320) >> 2] = (c[m >> 2] | 0) + 3; c[((c[i >> 2] | 0) + 10324) >> 2] = c[p >> 2]; c[h >> 2] = (c[p >> 2] | 0) + 3; r = c[h >> 2] | 0; l = g; return r | 0; } if ( (c[p >> 2] | 0) >>> 0 > (((c[k >> 2] | 0) - 3) | 0) >>> 0 ) { c[h >> 2] = -20; r = c[h >> 2] | 0; l = g; return r | 0; } else { mE( ((c[i >> 2] | 0) + 10328) | 0, c[m >> 2] | 0, c[p >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 10320) >> 2] = (c[i >> 2] | 0) + 10328; c[((c[i >> 2] | 0) + 10324) >> 2] = c[p >> 2]; k = ((c[i >> 2] | 0) + 10328 + (c[((c[i >> 2] | 0) + 10324) >> 2] | 0)) | 0; a[k >> 0] = 0; a[(k + 1) >> 0] = 0; a[(k + 2) >> 0] = 0; a[(k + 3) >> 0] = 0; a[(k + 4) >> 0] = 0; a[(k + 5) >> 0] = 0; a[(k + 6) >> 0] = 0; a[(k + 7) >> 0] = 0; c[h >> 2] = (c[p >> 2] | 0) + 3; r = c[h >> 2] | 0; l = g; return r | 0; } break; } case 2: { c[q >> 2] = ((pr(c[m >> 2] | 0) | 0) & 16777215) >>> 2; if ((c[q >> 2] | 0) >>> 0 > 131072) { c[h >> 2] = -20; r = c[h >> 2] | 0; l = g; return r | 0; } else { oE( ((c[i >> 2] | 0) + 10328) | 0, ((d[((c[m >> 2] | 0) + 3) >> 0] | 0) & 255) | 0, ((c[q >> 2] | 0) + 8) | 0 ) | 0; c[((c[i >> 2] | 0) + 10320) >> 2] = (c[i >> 2] | 0) + 10328; c[((c[i >> 2] | 0) + 10324) >> 2] = c[q >> 2]; c[h >> 2] = 4; r = c[h >> 2] | 0; l = g; return r | 0; } break; } default: { c[h >> 2] = -20; r = c[h >> 2] | 0; l = g; return r | 0; } } return 0; } function rw(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0; g = l; l = (l + 176) | 0; h = (g + 164) | 0; i = (g + 160) | 0; j = (g + 156) | 0; k = (g + 152) | 0; m = (g + 148) | 0; n = (g + 144) | 0; o = (g + 140) | 0; p = (g + 136) | 0; q = (g + 132) | 0; r = (g + 128) | 0; s = (g + 124) | 0; t = (g + 120) | 0; u = (g + 116) | 0; v = (g + 112) | 0; w = (g + 108) | 0; x = (g + 104) | 0; y = (g + 100) | 0; z = (g + 96) | 0; A = (g + 92) | 0; B = (g + 88) | 0; C = (g + 84) | 0; D = (g + 80) | 0; E = (g + 76) | 0; F = (g + 72) | 0; G = (g + 60) | 0; H = (g + 8) | 0; I = (g + 4) | 0; J = g; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[k >> 2]; c[s >> 2] = c[r >> 2]; c[t >> 2] = (c[r >> 2] | 0) + (c[m >> 2] | 0); c[w >> 2] = c[((c[j >> 2] | 0) + 10320) >> 2]; c[x >> 2] = (c[w >> 2] | 0) + (c[((c[j >> 2] | 0) + 10324) >> 2] | 0); c[A >> 2] = c[j >> 2]; c[B >> 2] = (c[j >> 2] | 0) + 6152; c[C >> 2] = (c[j >> 2] | 0) + 4100; c[D >> 2] = c[((c[j >> 2] | 0) + 10256) >> 2]; c[E >> 2] = c[((c[j >> 2] | 0) + 10260) >> 2]; c[F >> 2] = c[((c[j >> 2] | 0) + 10264) >> 2]; c[u >> 2] = sw( y, z, v, c[A >> 2] | 0, c[B >> 2] | 0, c[C >> 2] | 0, c[p >> 2] | 0, ((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0 ) | 0; j = (rr(c[u >> 2] | 0) | 0) != 0; m = c[u >> 2] | 0; if (j) { c[i >> 2] = m; K = c[i >> 2] | 0; l = g; return K | 0; } c[p >> 2] = (c[p >> 2] | 0) + m; c[G >> 2] = 0; c[(G + 4) >> 2] = 0; c[(G + 8) >> 2] = 0; c[(G + 4) >> 2] = 4; c[(H + 44) >> 2] = c[z >> 2]; c[(H + 48) >> 2] = (c[z >> 2] | 0) + (c[v >> 2] | 0); c[(H + 40) >> 2] = 4; c[u >> 2] = tw( H, c[p >> 2] | 0, ((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0 ) | 0; if (sr(c[u >> 2] | 0) | 0) { c[i >> 2] = -20; K = c[i >> 2] | 0; l = g; return K | 0; } uw((H + 16) | 0, H, c[A >> 2] | 0); uw((H + 24) | 0, H, c[C >> 2] | 0); uw((H + 32) | 0, H, c[B >> 2] | 0); while (1) { B = (vw(H) | 0) >>> 0 <= 2; if (!(B ? (c[y >> 2] | 0) != 0 : 0)) break; c[y >> 2] = (c[y >> 2] | 0) + -1; ww(G, H); B = c[s >> 2] | 0; C = c[t >> 2] | 0; A = c[x >> 2] | 0; u = c[D >> 2] | 0; p = c[E >> 2] | 0; q = c[F >> 2] | 0; c[h >> 2] = c[G >> 2]; c[(h + 4) >> 2] = c[(G + 4) >> 2]; c[(h + 8) >> 2] = c[(G + 8) >> 2]; c[I >> 2] = xw(B, C, h, w, A, u, p, q) | 0; q = (rr(c[I >> 2] | 0) | 0) != 0; L = c[I >> 2] | 0; if (q) { M = 8; break; } c[s >> 2] = (c[s >> 2] | 0) + L; } if ((M | 0) == 8) { c[i >> 2] = L; K = c[i >> 2] | 0; l = g; return K | 0; } if (!(yw(H) | 0)) { c[i >> 2] = -20; K = c[i >> 2] | 0; l = g; return K | 0; } c[J >> 2] = (c[x >> 2] | 0) - (c[w >> 2] | 0); if ((c[w >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0) { c[i >> 2] = -20; K = c[i >> 2] | 0; l = g; return K | 0; } if ( (((c[s >> 2] | 0) + (c[J >> 2] | 0)) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[i >> 2] = -70; K = c[i >> 2] | 0; l = g; return K | 0; } if ((c[s >> 2] | 0) != (c[w >> 2] | 0)) mE(c[s >> 2] | 0, c[w >> 2] | 0, c[J >> 2] | 0) | 0; c[s >> 2] = (c[s >> 2] | 0) + (c[J >> 2] | 0); c[i >> 2] = (c[s >> 2] | 0) - (c[r >> 2] | 0); K = c[i >> 2] | 0; l = g; return K | 0; } function sw(b, e, f, g, h, i, j, k) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0; m = l; l = (l + 352) | 0; n = (m + 344) | 0; o = (m + 340) | 0; p = (m + 336) | 0; q = (m + 332) | 0; r = (m + 328) | 0; s = (m + 324) | 0; t = (m + 320) | 0; u = (m + 316) | 0; v = (m + 312) | 0; w = (m + 308) | 0; x = (m + 304) | 0; y = (m + 300) | 0; z = (m + 296) | 0; A = (m + 292) | 0; B = (m + 288) | 0; C = (m + 284) | 0; D = (m + 280) | 0; E = (m + 276) | 0; F = (m + 272) | 0; G = m; H = (m + 268) | 0; I = (m + 264) | 0; J = (m + 260) | 0; K = (m + 256) | 0; c[o >> 2] = b; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = j; c[v >> 2] = k; c[w >> 2] = c[u >> 2]; c[x >> 2] = c[w >> 2]; c[y >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); if ((c[v >> 2] | 0) >>> 0 < 5) { c[n >> 2] = -72; L = c[n >> 2] | 0; l = m; return L | 0; } v = (Lw(c[x >> 2] | 0) | 0) & 65535; c[c[o >> 2] >> 2] = v; c[x >> 2] = (c[x >> 2] | 0) + 2; c[z >> 2] = (d[c[x >> 2] >> 0] | 0) >> 6; c[A >> 2] = ((d[c[x >> 2] >> 0] | 0) >> 4) & 3; c[B >> 2] = ((d[c[x >> 2] >> 0] | 0) >> 2) & 3; v = c[x >> 2] | 0; if (((d[c[x >> 2] >> 0] | 0) & 2) | 0) { c[F >> 2] = d[(v + 2) >> 0]; c[F >> 2] = (c[F >> 2] | 0) + ((d[((c[x >> 2] | 0) + 1) >> 0] | 0) << 8); c[x >> 2] = (c[x >> 2] | 0) + 3; } else { c[F >> 2] = d[(v + 1) >> 0]; c[F >> 2] = (c[F >> 2] | 0) + (((d[c[x >> 2] >> 0] | 0) & 1) << 8); c[x >> 2] = (c[x >> 2] | 0) + 2; } c[c[p >> 2] >> 2] = c[x >> 2]; c[x >> 2] = (c[x >> 2] | 0) + (c[F >> 2] | 0); c[c[q >> 2] >> 2] = c[F >> 2]; if ( (c[x >> 2] | 0) >>> 0 > (((c[y >> 2] | 0) + -3) | 0) >>> 0 ) { c[n >> 2] = -72; L = c[n >> 2] | 0; l = m; return L | 0; } a: do { switch (c[z >> 2] | 0) { case 2: { c[C >> 2] = 0; F = c[r >> 2] | 0; q = c[x >> 2] | 0; c[x >> 2] = q + 1; Mw(F, a[q >> 0] | 0) | 0; break; } case 1: { c[C >> 2] = 6; Nw(c[r >> 2] | 0, 6) | 0; break; } default: { c[I >> 2] = 63; c[H >> 2] = Ow( G, I, C, c[x >> 2] | 0, ((c[y >> 2] | 0) - (c[x >> 2] | 0)) | 0 ) | 0; if (Pw(c[H >> 2] | 0) | 0) { c[n >> 2] = -1; L = c[n >> 2] | 0; l = m; return L | 0; } if ((c[C >> 2] | 0) >>> 0 <= 10) { c[x >> 2] = (c[x >> 2] | 0) + (c[H >> 2] | 0); Qw(c[r >> 2] | 0, G, c[I >> 2] | 0, c[C >> 2] | 0) | 0; break a; } c[n >> 2] = -20; L = c[n >> 2] | 0; l = m; return L | 0; } } } while (0); b: do { switch (c[A >> 2] | 0) { case 2: { c[D >> 2] = 0; if ( (c[x >> 2] | 0) >>> 0 <= (((c[y >> 2] | 0) + -2) | 0) >>> 0 ) { C = c[t >> 2] | 0; I = c[x >> 2] | 0; c[x >> 2] = I + 1; Mw(C, (d[I >> 0] | 0) & 31) | 0; break b; } c[n >> 2] = -72; L = c[n >> 2] | 0; l = m; return L | 0; } case 1: { c[D >> 2] = 5; Nw(c[t >> 2] | 0, 5) | 0; break; } default: { c[J >> 2] = 31; c[H >> 2] = Ow( G, J, D, c[x >> 2] | 0, ((c[y >> 2] | 0) - (c[x >> 2] | 0)) | 0 ) | 0; if (Pw(c[H >> 2] | 0) | 0) { c[n >> 2] = -1; L = c[n >> 2] | 0; l = m; return L | 0; } if ((c[D >> 2] | 0) >>> 0 <= 9) { c[x >> 2] = (c[x >> 2] | 0) + (c[H >> 2] | 0); Qw(c[t >> 2] | 0, G, c[J >> 2] | 0, c[D >> 2] | 0) | 0; break b; } c[n >> 2] = -20; L = c[n >> 2] | 0; l = m; return L | 0; } } } while (0); c: do { switch (c[B >> 2] | 0) { case 2: { c[E >> 2] = 0; if ( (c[x >> 2] | 0) >>> 0 <= (((c[y >> 2] | 0) + -2) | 0) >>> 0 ) { D = c[s >> 2] | 0; J = c[x >> 2] | 0; c[x >> 2] = J + 1; Mw(D, a[J >> 0] | 0) | 0; break c; } c[n >> 2] = -72; L = c[n >> 2] | 0; l = m; return L | 0; } case 1: { c[E >> 2] = 7; Nw(c[s >> 2] | 0, 7) | 0; break; } default: { c[K >> 2] = 127; c[H >> 2] = Ow( G, K, E, c[x >> 2] | 0, ((c[y >> 2] | 0) - (c[x >> 2] | 0)) | 0 ) | 0; if (Pw(c[H >> 2] | 0) | 0) { c[n >> 2] = -1; L = c[n >> 2] | 0; l = m; return L | 0; } if ((c[E >> 2] | 0) >>> 0 <= 10) { c[x >> 2] = (c[x >> 2] | 0) + (c[H >> 2] | 0); Qw(c[s >> 2] | 0, G, c[K >> 2] | 0, c[E >> 2] | 0) | 0; break c; } c[n >> 2] = -20; L = c[n >> 2] | 0; l = m; return L | 0; } } } while (0); c[n >> 2] = (c[x >> 2] | 0) - (c[w >> 2] | 0); L = c[n >> 2] | 0; l = m; return L | 0; } function tw(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 20) | 0; h = (f + 16) | 0; i = (f + 12) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; if ((c[j >> 2] | 0) >>> 0 < 1) { e = c[h >> 2] | 0; c[e >> 2] = 0; c[(e + 4) >> 2] = 0; c[(e + 8) >> 2] = 0; c[(e + 12) >> 2] = 0; c[g >> 2] = -72; n = c[g >> 2] | 0; l = f; return n | 0; } e = (c[j >> 2] | 0) >>> 0 >= 4; c[((c[h >> 2] | 0) + 12) >> 2] = c[i >> 2]; do { if (e) { c[((c[h >> 2] | 0) + 8) >> 2] = (c[i >> 2] | 0) + (c[j >> 2] | 0) + -4; b = Hw(c[((c[h >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[h >> 2] >> 2] = b; c[k >> 2] = d[((c[i >> 2] | 0) + ((c[j >> 2] | 0) - 1)) >> 0]; if (c[k >> 2] | 0) { b = (8 - (Kw(c[k >> 2] | 0) | 0)) | 0; c[((c[h >> 2] | 0) + 4) >> 2] = b; break; } c[g >> 2] = -1; n = c[g >> 2] | 0; l = f; return n | 0; } else { c[((c[h >> 2] | 0) + 8) >> 2] = c[((c[h >> 2] | 0) + 12) >> 2]; c[c[h >> 2] >> 2] = d[c[((c[h >> 2] | 0) + 12) >> 2] >> 0]; switch (c[j >> 2] | 0) { case 7: { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[ ((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 6) >> 0 ] | 0) << 16); o = 9; break; } case 6: { o = 9; break; } case 5: { o = 10; break; } case 4: { o = 11; break; } case 3: { o = 12; break; } case 2: { o = 13; break; } default: { } } if ((o | 0) == 9) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 5) >> 0] | 0) << 8); o = 10; } if ((o | 0) == 10) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 4) >> 0] | 0) << 0); o = 11; } if ((o | 0) == 11) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 3) >> 0] | 0) << 24); o = 12; } if ((o | 0) == 12) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 2) >> 0] | 0) << 16); o = 13; } if ((o | 0) == 13) { b = c[h >> 2] | 0; c[b >> 2] = (c[b >> 2] | 0) + ((d[((c[((c[h >> 2] | 0) + 12) >> 2] | 0) + 1) >> 0] | 0) << 8); } c[m >> 2] = d[((c[i >> 2] | 0) + ((c[j >> 2] | 0) - 1)) >> 0]; if (c[m >> 2] | 0) { b = (8 - (Kw(c[m >> 2] | 0) | 0)) | 0; c[((c[h >> 2] | 0) + 4) >> 2] = b; b = ((c[h >> 2] | 0) + 4) | 0; c[b >> 2] = (c[b >> 2] | 0) + ((4 - (c[j >> 2] | 0)) << 3); break; } c[g >> 2] = -1; n = c[g >> 2] | 0; l = f; return n | 0; } } while (0); c[g >> 2] = c[j >> 2]; n = c[g >> 2] | 0; l = f; return n | 0; } function uw(a, d, f) { a = a | 0; d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0; g = l; l = (l + 16) | 0; h = (g + 8) | 0; i = (g + 4) | 0; j = g; k = (g + 12) | 0; c[h >> 2] = a; c[i >> 2] = d; c[j >> 2] = f; f = c[j >> 2] | 0; b[k >> 1] = b[f >> 1] | 0; b[(k + 2) >> 1] = b[(f + 2) >> 1] | 0; f = Ew(c[i >> 2] | 0, e[k >> 1] | 0) | 0; c[c[h >> 2] >> 2] = f; vw(c[i >> 2] | 0) | 0; c[((c[h >> 2] | 0) + 4) >> 2] = (c[j >> 2] | 0) + 4; l = g; return; } function vw(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = (b + 12) | 0; e = (b + 8) | 0; f = (b + 4) | 0; g = b; c[e >> 2] = a; if ((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) { c[d >> 2] = 3; h = c[d >> 2] | 0; l = b; return h | 0; } a = c[e >> 2] | 0; if ( (c[((c[e >> 2] | 0) + 8) >> 2] | 0) >>> 0 >= (((c[((c[e >> 2] | 0) + 12) >> 2] | 0) + 4) | 0) >>> 0 ) { i = ((c[e >> 2] | 0) + 8) | 0; c[i >> 2] = (c[i >> 2] | 0) + (0 - ((c[(a + 4) >> 2] | 0) >>> 3)); i = ((c[e >> 2] | 0) + 4) | 0; c[i >> 2] = c[i >> 2] & 7; i = Hw(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = i; c[d >> 2] = 0; h = c[d >> 2] | 0; l = b; return h | 0; } i = c[((c[e >> 2] | 0) + 4) >> 2] | 0; if ( (c[(a + 8) >> 2] | 0) != (c[((c[e >> 2] | 0) + 12) >> 2] | 0) ) { c[f >> 2] = i >>> 3; c[g >> 2] = 0; if ( (((c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (0 - (c[f >> 2] | 0))) | 0) >>> 0 < (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 ) { c[f >> 2] = (c[((c[e >> 2] | 0) + 8) >> 2] | 0) - (c[((c[e >> 2] | 0) + 12) >> 2] | 0); c[g >> 2] = 1; } a = ((c[e >> 2] | 0) + 8) | 0; c[a >> 2] = (c[a >> 2] | 0) + (0 - (c[f >> 2] | 0)); a = ((c[e >> 2] | 0) + 4) | 0; c[a >> 2] = (c[a >> 2] | 0) - (c[f >> 2] << 3); f = Hw(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = f; c[d >> 2] = c[g >> 2]; h = c[d >> 2] | 0; l = b; return h | 0; } if (i >>> 0 < 32) { c[d >> 2] = 1; h = c[d >> 2] | 0; l = b; return h | 0; } else { c[d >> 2] = 2; h = c[d >> 2] | 0; l = b; return h | 0; } return 0; } function ww(a, b) { a = a | 0; b = b | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; e = l; l = (l + 48) | 0; f = (e + 44) | 0; g = (e + 40) | 0; h = (e + 36) | 0; i = (e + 32) | 0; j = (e + 28) | 0; k = (e + 24) | 0; m = (e + 20) | 0; n = (e + 16) | 0; o = (e + 12) | 0; p = (e + 8) | 0; q = (e + 4) | 0; r = e; c[f >> 2] = a; c[g >> 2] = b; c[m >> 2] = c[((c[g >> 2] | 0) + 44) >> 2]; c[n >> 2] = c[((c[g >> 2] | 0) + 48) >> 2]; c[h >> 2] = (Cw(((c[g >> 2] | 0) + 16) | 0, c[g >> 2] | 0) | 0) & 255; if (c[h >> 2] | 0) s = c[((c[f >> 2] | 0) + 4) >> 2] | 0; else s = c[((c[g >> 2] | 0) + 40) >> 2] | 0; c[i >> 2] = s; if ((c[h >> 2] | 0) == 63) { s = c[m >> 2] | 0; c[m >> 2] = s + 1; c[o >> 2] = d[s >> 0]; if ((c[o >> 2] | 0) >>> 0 < 255) c[h >> 2] = (c[h >> 2] | 0) + (c[o >> 2] | 0); else { c[h >> 2] = (d[c[m >> 2] >> 0] | 0) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + ((d[((c[m >> 2] | 0) + 2) >> 0] | 0) << 16); c[m >> 2] = (c[m >> 2] | 0) + 3; } if ((c[m >> 2] | 0) >>> 0 > (c[n >> 2] | 0) >>> 0) c[h >> 2] = 318; if ((c[m >> 2] | 0) >>> 0 >= (c[n >> 2] | 0) >>> 0) c[m >> 2] = (c[n >> 2] | 0) + -1; } c[p >> 2] = (Cw(((c[g >> 2] | 0) + 24) | 0, c[g >> 2] | 0) | 0) & 255; if (Dw() | 0) vw(c[g >> 2] | 0) | 0; o = ((c[p >> 2] | 0) - 1) | 0; c[q >> 2] = o; c[q >> 2] = (c[p >> 2] | 0) == 0 ? 0 : o; o = c[(6880 + (c[p >> 2] << 2)) >> 2] | 0; c[j >> 2] = o + (Ew(c[g >> 2] | 0, c[q >> 2] | 0) | 0); if (Dw() | 0) vw(c[g >> 2] | 0) | 0; if (!(c[p >> 2] | 0)) c[j >> 2] = c[i >> 2]; if (c[p >> 2] | ((((c[h >> 2] | 0) != 0) ^ 1) & 1) | 0) c[((c[g >> 2] | 0) + 40) >> 2] = c[((c[f >> 2] | 0) + 4) >> 2]; c[k >> 2] = (Cw(((c[g >> 2] | 0) + 32) | 0, c[g >> 2] | 0) | 0) & 255; if ((c[k >> 2] | 0) == 127) { p = c[m >> 2] | 0; c[m >> 2] = p + 1; c[r >> 2] = d[p >> 0]; if ((c[r >> 2] | 0) >>> 0 < 255) c[k >> 2] = (c[k >> 2] | 0) + (c[r >> 2] | 0); else { c[k >> 2] = (d[c[m >> 2] >> 0] | 0) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + ((d[((c[m >> 2] | 0) + 2) >> 0] | 0) << 16); c[m >> 2] = (c[m >> 2] | 0) + 3; } if ((c[m >> 2] | 0) >>> 0 > (c[n >> 2] | 0) >>> 0) c[k >> 2] = 382; if ((c[m >> 2] | 0) >>> 0 >= (c[n >> 2] | 0) >>> 0) c[m >> 2] = (c[n >> 2] | 0) + -1; } c[k >> 2] = (c[k >> 2] | 0) + 4; c[c[f >> 2] >> 2] = c[h >> 2]; c[((c[f >> 2] | 0) + 4) >> 2] = c[j >> 2]; c[((c[f >> 2] | 0) + 8) >> 2] = c[k >> 2]; c[((c[g >> 2] | 0) + 44) >> 2] = c[m >> 2]; l = e; return; } function xw(b, d, e, f, g, h, i, j) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; k = l; l = (l + 64) | 0; m = (k + 60) | 0; n = (k + 56) | 0; o = (k + 52) | 0; p = (k + 48) | 0; q = (k + 44) | 0; r = (k + 40) | 0; s = (k + 36) | 0; t = (k + 32) | 0; u = (k + 28) | 0; v = (k + 24) | 0; w = (k + 20) | 0; x = (k + 16) | 0; y = (k + 12) | 0; z = (k + 8) | 0; A = (k + 4) | 0; B = k; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = (c[n >> 2] | 0) + (c[e >> 2] | 0); c[v >> 2] = (c[e >> 2] | 0) + (c[(e + 8) >> 2] | 0); c[w >> 2] = (c[n >> 2] | 0) + (c[v >> 2] | 0); c[x >> 2] = (c[o >> 2] | 0) + -8; c[y >> 2] = (c[c[p >> 2] >> 2] | 0) + (c[e >> 2] | 0); c[z >> 2] = (c[u >> 2] | 0) + (0 - (c[(e + 4) >> 2] | 0)); if ((c[u >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0) { c[m >> 2] = -70; C = c[m >> 2] | 0; l = k; return C | 0; } if ((c[w >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) { c[m >> 2] = -70; C = c[m >> 2] | 0; l = k; return C | 0; } if ((c[y >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) { c[m >> 2] = -20; C = c[m >> 2] | 0; l = k; return C | 0; } zw(c[n >> 2] | 0, c[c[p >> 2] >> 2] | 0, c[e >> 2] | 0); c[n >> 2] = c[u >> 2]; c[c[p >> 2] >> 2] = c[y >> 2]; do { if ( (c[(e + 4) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[r >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(e + 4) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[s >> 2] | 0)) | 0) >>> 0 ) { c[m >> 2] = -20; C = c[m >> 2] | 0; l = k; return C | 0; } c[z >> 2] = (c[t >> 2] | 0) + (0 - ((c[r >> 2] | 0) - (c[z >> 2] | 0))); if ( (((c[z >> 2] | 0) + (c[(e + 8) >> 2] | 0)) | 0) >>> 0 <= (c[t >> 2] | 0) >>> 0 ) { nE(c[u >> 2] | 0, c[z >> 2] | 0, c[(e + 8) >> 2] | 0) | 0; c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } c[A >> 2] = (c[t >> 2] | 0) - (c[z >> 2] | 0); nE(c[u >> 2] | 0, c[z >> 2] | 0, c[A >> 2] | 0) | 0; c[n >> 2] = (c[u >> 2] | 0) + (c[A >> 2] | 0); y = (e + 8) | 0; c[y >> 2] = (c[y >> 2] | 0) - (c[A >> 2] | 0); c[z >> 2] = c[r >> 2]; if ( (c[n >> 2] | 0) >>> 0 <= (c[x >> 2] | 0) >>> 0 ? (c[(e + 8) >> 2] | 0) >>> 0 >= 4 : 0 ) break; while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; y = c[z >> 2] | 0; c[z >> 2] = y + 1; p = a[y >> 0] | 0; y = c[n >> 2] | 0; c[n >> 2] = y + 1; a[y >> 0] = p; } c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } } while (0); if ((c[(e + 4) >> 2] | 0) >>> 0 < 8) { c[B >> 2] = c[(6816 + (c[(e + 4) >> 2] << 2)) >> 2]; a[c[n >> 2] >> 0] = a[c[z >> 2] >> 0] | 0; a[((c[n >> 2] | 0) + 1) >> 0] = a[((c[z >> 2] | 0) + 1) >> 0] | 0; a[((c[n >> 2] | 0) + 2) >> 0] = a[((c[z >> 2] | 0) + 2) >> 0] | 0; a[((c[n >> 2] | 0) + 3) >> 0] = a[((c[z >> 2] | 0) + 3) >> 0] | 0; c[z >> 2] = (c[z >> 2] | 0) + (c[(6848 + (c[(e + 4) >> 2] << 2)) >> 2] | 0); Aw(((c[n >> 2] | 0) + 4) | 0, c[z >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + (0 - (c[B >> 2] | 0)); } else Bw(c[n >> 2] | 0, c[z >> 2] | 0); c[n >> 2] = (c[n >> 2] | 0) + 8; c[z >> 2] = (c[z >> 2] | 0) + 8; B = c[n >> 2] | 0; a: do { if ( (c[w >> 2] | 0) >>> 0 > (((c[o >> 2] | 0) + -12) | 0) >>> 0 ) { if (B >>> 0 < (c[x >> 2] | 0) >>> 0) { zw( c[n >> 2] | 0, c[z >> 2] | 0, ((c[x >> 2] | 0) - (c[n >> 2] | 0)) | 0 ); c[z >> 2] = (c[z >> 2] | 0) + ((c[x >> 2] | 0) - (c[n >> 2] | 0)); c[n >> 2] = c[x >> 2]; } while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; r = c[z >> 2] | 0; c[z >> 2] = r + 1; A = a[r >> 0] | 0; r = c[n >> 2] | 0; c[n >> 2] = r + 1; a[r >> 0] = A; } } else zw(B, c[z >> 2] | 0, ((c[(e + 8) >> 2] | 0) - 8) | 0); } while (0); c[m >> 2] = c[v >> 2]; C = c[m >> 2] | 0; l = k; return C | 0; } function yw(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; if ( (c[((c[d >> 2] | 0) + 8) >> 2] | 0) != (c[((c[d >> 2] | 0) + 12) >> 2] | 0) ) { e = 0; f = e & 1; l = b; return f | 0; } e = (c[((c[d >> 2] | 0) + 4) >> 2] | 0) == 32; f = e & 1; l = b; return f | 0; } function zw(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { Bw(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function Aw(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; l = e; return; } function Bw(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function Cw(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = Ew(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function Dw() { return 1; } function Ew(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = Fw(c[e >> 2] | 0, c[f >> 2] | 0) | 0; Gw(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function Fw(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( (((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> 1) >>> ((31 - (c[f >> 2] | 0)) & 31)) | 0 ); } function Gw(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ((c[e >> 2] | 0) + 4) | 0; c[b >> 2] = (c[b >> 2] | 0) + (c[f >> 2] | 0); l = d; return; } function Hw(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (Dw() | 0) != 0; f = c[e >> 2] | 0; if (a) { c[d >> 2] = pr(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } else { a = Iw(f) | 0; c[d >> 2] = a; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function Iw(a) { a = a | 0; var b = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; b = l; l = (l + 16) | 0; e = b; f = (b + 12) | 0; g = (b + 8) | 0; c[f >> 2] = a; a = (tr() | 0) != 0; h = c[f >> 2] | 0; if (a) { a = Jw(h) | 0; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = y; i = e; j = i; k = c[j >> 2] | 0; m = (i + 4) | 0; n = m; o = c[n >> 2] | 0; y = o; l = b; return k | 0; } else { c[g >> 2] = h; h = d[c[g >> 2] >> 0] | 0; f = jE(d[((c[g >> 2] | 0) + 1) >> 0] | 0 | 0, 0, 8) | 0; a = dE(h | 0, 0, f | 0, y | 0) | 0; f = y; h = jE(d[((c[g >> 2] | 0) + 2) >> 0] | 0 | 0, 0, 16) | 0; p = dE(a | 0, f | 0, h | 0, y | 0) | 0; h = y; f = jE(d[((c[g >> 2] | 0) + 3) >> 0] | 0 | 0, 0, 24) | 0; a = dE(p | 0, h | 0, f | 0, y | 0) | 0; f = dE( a | 0, y | 0, 0, d[((c[g >> 2] | 0) + 4) >> 0] | 0 | 0 ) | 0; a = y; h = jE(d[((c[g >> 2] | 0) + 5) >> 0] | 0 | 0, 0, 40) | 0; p = dE(f | 0, a | 0, h | 0, y | 0) | 0; h = y; a = jE(d[((c[g >> 2] | 0) + 6) >> 0] | 0 | 0, 0, 48) | 0; f = dE(p | 0, h | 0, a | 0, y | 0) | 0; a = y; h = jE(d[((c[g >> 2] | 0) + 7) >> 0] | 0 | 0, 0, 56) | 0; g = dE(f | 0, a | 0, h | 0, y | 0) | 0; h = e; c[h >> 2] = g; c[(h + 4) >> 2] = y; i = e; j = i; k = c[j >> 2] | 0; m = (i + 4) | 0; n = m; o = c[n >> 2] | 0; y = o; l = b; return k | 0; } return 0; } function Jw(b) { b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = d; c[e >> 2] = b; b = c[e >> 2] | 0; a[f >> 0] = a[b >> 0] | 0; a[(f + 1) >> 0] = a[(b + 1) >> 0] | 0; a[(f + 2) >> 0] = a[(b + 2) >> 0] | 0; a[(f + 3) >> 0] = a[(b + 3) >> 0] | 0; a[(f + 4) >> 0] = a[(b + 4) >> 0] | 0; a[(f + 5) >> 0] = a[(b + 5) >> 0] | 0; a[(f + 6) >> 0] = a[(b + 6) >> 0] | 0; a[(f + 7) >> 0] = a[(b + 7) >> 0] | 0; b = f; y = c[(b + 4) >> 2] | 0; l = d; return c[b >> 2] | 0; } function Kw(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function Lw(a) { a = a | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[g >> 2] = a; a = (tr() | 0) != 0; i = c[g >> 2] | 0; if (a) { b[f >> 1] = Tw(i) | 0; j = b[f >> 1] | 0; l = e; return j | 0; } else { c[h >> 2] = i; b[f >> 1] = (d[c[h >> 2] >> 0] | 0) + ((d[((c[h >> 2] | 0) + 1) >> 0] | 0) << 8); j = b[f >> 1] | 0; l = e; return j | 0; } return 0; } function Mw(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 20) | 0; i = (f + 12) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[g >> 2] = d; a[h >> 0] = e; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[i >> 2]; c[k >> 2] = (c[g >> 2] | 0) + 4; c[m >> 2] = c[k >> 2]; b[c[j >> 2] >> 1] = 0; b[((c[j >> 2] | 0) + 2) >> 1] = 0; b[c[m >> 2] >> 1] = 0; a[((c[m >> 2] | 0) + 2) >> 0] = a[h >> 0] | 0; a[((c[m >> 2] | 0) + 3) >> 0] = 0; l = f; return 0; } function Nw(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; f = l; l = (l + 48) | 0; g = (f + 40) | 0; h = (f + 36) | 0; i = (f + 32) | 0; j = (f + 28) | 0; k = (f + 24) | 0; m = (f + 20) | 0; n = (f + 16) | 0; o = (f + 12) | 0; p = (f + 8) | 0; q = (f + 4) | 0; r = f; c[h >> 2] = d; c[i >> 2] = e; c[j >> 2] = c[h >> 2]; c[k >> 2] = c[j >> 2]; c[m >> 2] = (c[h >> 2] | 0) + 4; c[n >> 2] = c[m >> 2]; c[o >> 2] = 1 << c[i >> 2]; c[p >> 2] = (c[o >> 2] | 0) - 1; c[q >> 2] = c[p >> 2]; if ((c[i >> 2] | 0) >>> 0 < 1) { c[g >> 2] = -1; s = c[g >> 2] | 0; l = f; return s | 0; } b[c[k >> 2] >> 1] = c[i >> 2]; b[((c[k >> 2] | 0) + 2) >> 1] = 1; c[r >> 2] = 0; while (1) { if ((c[r >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) break; b[((c[n >> 2] | 0) + (c[r >> 2] << 2)) >> 1] = 0; a[((c[n >> 2] | 0) + (c[r >> 2] << 2) + 2) >> 0] = c[r >> 2]; a[((c[n >> 2] | 0) + (c[r >> 2] << 2) + 3) >> 0] = c[i >> 2]; c[r >> 2] = (c[r >> 2] | 0) + 1; } c[g >> 2] = 0; s = c[g >> 2] | 0; l = f; return s | 0; } function Ow(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; h = l; l = (l + 80) | 0; i = (h + 64) | 0; j = (h + 60) | 0; k = (h + 56) | 0; m = (h + 52) | 0; n = (h + 48) | 0; o = (h + 44) | 0; p = (h + 40) | 0; q = (h + 36) | 0; r = (h + 32) | 0; s = (h + 28) | 0; t = (h + 24) | 0; u = (h + 20) | 0; v = (h + 16) | 0; w = (h + 12) | 0; x = (h + 8) | 0; y = (h + 4) | 0; z = h; A = (h + 70) | 0; B = (h + 68) | 0; c[j >> 2] = a; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[p >> 2]; c[x >> 2] = 0; c[y >> 2] = 0; if ((c[o >> 2] | 0) >>> 0 < 4) { c[i >> 2] = -72; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = pr(c[r >> 2] | 0) | 0; c[s >> 2] = (c[v >> 2] & 15) + 5; if ((c[s >> 2] | 0) > 15) { c[i >> 2] = -44; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = (c[v >> 2] | 0) >>> 4; c[w >> 2] = 4; c[c[m >> 2] >> 2] = c[s >> 2]; c[t >> 2] = (1 << c[s >> 2]) + 1; c[u >> 2] = 1 << c[s >> 2]; c[s >> 2] = (c[s >> 2] | 0) + 1; a: while (1) { if ((c[t >> 2] | 0) <= 1) break; if ((c[x >> 2] | 0) >>> 0 > (c[c[k >> 2] >> 2] | 0) >>> 0) break; do { if (c[y >> 2] | 0) { c[z >> 2] = c[x >> 2]; while (1) { if (((c[v >> 2] & 65535) | 0) != 65535) break; c[z >> 2] = (c[z >> 2] | 0) + 24; if ( (c[r >> 2] | 0) >>> 0 < (((c[q >> 2] | 0) + -5) | 0) >>> 0 ) { c[r >> 2] = (c[r >> 2] | 0) + 2; m = pr(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] | 0); } else { c[v >> 2] = (c[v >> 2] | 0) >>> 16; c[w >> 2] = (c[w >> 2] | 0) + 16; } } while (1) { if (((c[v >> 2] & 3) | 0) != 3) break; c[z >> 2] = (c[z >> 2] | 0) + 3; c[v >> 2] = (c[v >> 2] | 0) >>> 2; c[w >> 2] = (c[w >> 2] | 0) + 2; } c[z >> 2] = (c[z >> 2] | 0) + (c[v >> 2] & 3); c[w >> 2] = (c[w >> 2] | 0) + 2; if ( (c[z >> 2] | 0) >>> 0 > (c[c[k >> 2] >> 2] | 0) >>> 0 ) { D = 19; break a; } while (1) { if ((c[x >> 2] | 0) >>> 0 >= (c[z >> 2] | 0) >>> 0) break; m = c[j >> 2] | 0; n = c[x >> 2] | 0; c[x >> 2] = n + 1; b[(m + (n << 1)) >> 1] = 0; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[v >> 2] = (c[v >> 2] | 0) >>> 2; break; } c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; n = pr(c[r >> 2] | 0) | 0; c[v >> 2] = n >>> (c[w >> 2] | 0); } } while (0); b[A >> 1] = (c[u >> 2] << 1) - 1 - (c[t >> 2] | 0); n = c[v >> 2] | 0; m = c[u >> 2] | 0; if ( (c[v >> 2] & ((c[u >> 2] | 0) - 1)) >>> 0 < (b[A >> 1] | 0) >>> 0 ) { b[B >> 1] = n & (m - 1); c[w >> 2] = (c[w >> 2] | 0) + ((c[s >> 2] | 0) - 1); } else { b[B >> 1] = n & ((m << 1) - 1); if ((b[B >> 1] | 0) >= (c[u >> 2] | 0)) b[B >> 1] = (b[B >> 1] | 0) - (b[A >> 1] | 0); c[w >> 2] = (c[w >> 2] | 0) + (c[s >> 2] | 0); } b[B >> 1] = (((b[B >> 1] | 0) + -1) << 16) >> 16; m = ((Sw(b[B >> 1] | 0) | 0) << 16) >> 16; c[t >> 2] = (c[t >> 2] | 0) - m; m = b[B >> 1] | 0; n = c[j >> 2] | 0; g = c[x >> 2] | 0; c[x >> 2] = g + 1; b[(n + (g << 1)) >> 1] = m; c[y >> 2] = (((b[B >> 1] | 0) != 0) ^ 1) & 1; while (1) { if ((c[t >> 2] | 0) >= (c[u >> 2] | 0)) break; c[s >> 2] = (c[s >> 2] | 0) + -1; c[u >> 2] = c[u >> 2] >> 1; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[w >> 2] = (c[w >> 2] | 0) - (((c[q >> 2] | 0) + -4 - (c[r >> 2] | 0)) << 3); c[r >> 2] = (c[q >> 2] | 0) + -4; } else { c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; } m = pr(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] & 31); } if ((D | 0) == 19) { c[i >> 2] = -48; C = c[i >> 2] | 0; l = h; return C | 0; } if ((c[t >> 2] | 0) != 1) { c[i >> 2] = -1; C = c[i >> 2] | 0; l = h; return C | 0; } c[c[k >> 2] >> 2] = (c[x >> 2] | 0) - 1; c[r >> 2] = (c[r >> 2] | 0) + (((c[w >> 2] | 0) + 7) >> 3); if ( (((c[r >> 2] | 0) - (c[p >> 2] | 0)) | 0) >>> 0 > (c[o >> 2] | 0) >>> 0 ) { c[i >> 2] = -72; C = c[i >> 2] | 0; l = h; return C | 0; } else { c[i >> 2] = (c[r >> 2] | 0) - (c[p >> 2] | 0); C = c[i >> 2] | 0; l = h; return C | 0; } return 0; } function Pw(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = sr(c[d >> 2] | 0) | 0; l = b; return a | 0; } function Qw(f, g, h, i) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0; j = l; l = (l + 592) | 0; k = (j + 572) | 0; m = (j + 568) | 0; n = (j + 564) | 0; o = (j + 560) | 0; p = (j + 556) | 0; q = (j + 580) | 0; r = (j + 552) | 0; s = (j + 548) | 0; t = (j + 544) | 0; u = (j + 540) | 0; v = (j + 536) | 0; w = j; x = (j + 532) | 0; y = (j + 528) | 0; z = (j + 578) | 0; A = (j + 524) | 0; B = (j + 520) | 0; C = (j + 516) | 0; D = (j + 512) | 0; E = (j + 584) | 0; F = (j + 576) | 0; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = h; c[p >> 2] = i; c[r >> 2] = (c[m >> 2] | 0) + 4; c[s >> 2] = c[r >> 2]; c[t >> 2] = 1 << c[p >> 2]; c[u >> 2] = (c[t >> 2] | 0) - 1; c[v >> 2] = Rw(c[t >> 2] | 0) | 0; c[x >> 2] = 0; c[y >> 2] = (c[t >> 2] | 0) - 1; b[z >> 1] = 1 << ((c[p >> 2] | 0) - 1); c[A >> 2] = 1; if ((c[o >> 2] | 0) >>> 0 > 255) { c[k >> 2] = -46; G = c[k >> 2] | 0; l = j; return G | 0; } if ((c[p >> 2] | 0) >>> 0 > 12) { c[k >> 2] = -44; G = c[k >> 2] | 0; l = j; return G | 0; } b[q >> 1] = c[p >> 2]; c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) break; if ( (b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0) == -1 ) { r = c[B >> 2] & 255; i = c[s >> 2] | 0; h = c[y >> 2] | 0; c[y >> 2] = h + -1; a[(i + (h << 2) + 2) >> 0] = r; b[(w + (c[B >> 2] << 1)) >> 1] = 1; } else { if ( (b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0) >= (b[z >> 1] | 0) ) c[A >> 2] = 0; b[(w + (c[B >> 2] << 1)) >> 1] = b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0; } c[B >> 2] = (c[B >> 2] | 0) + 1; } c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) break; c[C >> 2] = 0; while (1) { H = c[B >> 2] | 0; if ( (c[C >> 2] | 0) >= (b[((c[n >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0) ) break; a[((c[s >> 2] | 0) + (c[x >> 2] << 2) + 2) >> 0] = H; c[x >> 2] = ((c[x >> 2] | 0) + (c[v >> 2] | 0)) & c[u >> 2]; while (1) { if ((c[x >> 2] | 0) >>> 0 <= (c[y >> 2] | 0) >>> 0) break; c[x >> 2] = ((c[x >> 2] | 0) + (c[v >> 2] | 0)) & c[u >> 2]; } c[C >> 2] = (c[C >> 2] | 0) + 1; } c[B >> 2] = H + 1; } if (c[x >> 2] | 0) { c[k >> 2] = -1; G = c[k >> 2] | 0; l = j; return G | 0; } c[D >> 2] = 0; while (1) { if ((c[D >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; a[E >> 0] = a[((c[s >> 2] | 0) + (c[D >> 2] << 2) + 2) >> 0] | 0; x = (w + (d[E >> 0] << 1)) | 0; H = b[x >> 1] | 0; b[x >> 1] = ((H + 1) << 16) >> 16; b[F >> 1] = H; H = c[p >> 2] | 0; x = (H - (Kw(e[F >> 1] | 0) | 0)) & 255; a[((c[s >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0] = x; b[((c[s >> 2] | 0) + (c[D >> 2] << 2)) >> 1] = (e[F >> 1] << d[((c[s >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0]) - (c[t >> 2] | 0); c[D >> 2] = (c[D >> 2] | 0) + 1; } b[(q + 2) >> 1] = c[A >> 2]; A = c[m >> 2] | 0; b[A >> 1] = b[q >> 1] | 0; b[(A + 2) >> 1] = b[(q + 2) >> 1] | 0; c[k >> 2] = 0; G = c[k >> 2] | 0; l = j; return G | 0; } function Rw(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( (((c[d >> 2] | 0) >>> 1) + ((c[d >> 2] | 0) >>> 3) + 3) | 0 ); } function Sw(a) { a = a | 0; var c = 0, d = 0; c = l; l = (l + 16) | 0; d = c; b[d >> 1] = a; a = b[d >> 1] | 0; l = c; return (((b[d >> 1] | 0) < 0 ? (0 - a) | 0 : a) & 65535) | 0; } function Tw(d) { d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 4) | 0; c[f >> 2] = d; d = c[f >> 2] | 0; a[g >> 0] = a[d >> 0] | 0; a[(g + 1) >> 0] = a[(d + 1) >> 0] | 0; l = e; return b[g >> 1] | 0; } function Uw(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = c[j >> 2]; c[n >> 2] = ((pr(c[j >> 2] | 0) | 0) & 2097151) >>> 2; c[o >> 2] = ((pr(((c[m >> 2] | 0) + 2) | 0) | 0) & 16777215) >>> 5; if ((c[n >> 2] | 0) >>> 0 > (c[c[i >> 2] >> 2] | 0) >>> 0) { c[g >> 2] = -20; p = c[g >> 2] | 0; l = f; return p | 0; } if ( (((c[o >> 2] | 0) + 5) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[g >> 2] = -20; p = c[g >> 2] | 0; l = f; return p | 0; } if ( Ww( Vw( c[h >> 2] | 0, c[n >> 2] | 0, ((c[m >> 2] | 0) + 5) | 0, c[o >> 2] | 0 ) | 0 ) | 0 ) { c[g >> 2] = -20; p = c[g >> 2] | 0; l = f; return p | 0; } else { c[c[i >> 2] >> 2] = c[n >> 2]; c[g >> 2] = (c[o >> 2] | 0) + 5; p = c[g >> 2] | 0; l = f; return p | 0; } return 0; } function Vw(a, b, e, f) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; g = l; l = (l + 48) | 0; h = (g + 44) | 0; i = (g + 40) | 0; j = (g + 36) | 0; k = (g + 32) | 0; m = (g + 28) | 0; n = (g + 24) | 0; o = (g + 20) | 0; p = (g + 8) | 0; q = (g + 4) | 0; r = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = e; c[m >> 2] = f; c[o >> 2] = (c[j >> 2] | 0) >>> 8; c[q >> 2] = 0; if (!(c[j >> 2] | 0)) { c[h >> 2] = -70; s = c[h >> 2] | 0; l = g; return s | 0; } if ((c[m >> 2] | 0) >>> 0 > (c[j >> 2] | 0) >>> 0) { c[h >> 2] = -20; s = c[h >> 2] | 0; l = g; return s | 0; } if ((c[m >> 2] | 0) == (c[j >> 2] | 0)) { mE(c[i >> 2] | 0, c[k >> 2] | 0, c[j >> 2] | 0) | 0; c[h >> 2] = c[j >> 2]; s = c[h >> 2] | 0; l = g; return s | 0; } if ((c[m >> 2] | 0) == 1) { oE( c[i >> 2] | 0, ((d[c[k >> 2] >> 0] | 0) & 255) | 0, c[j >> 2] | 0 ) | 0; c[h >> 2] = c[j >> 2]; s = c[h >> 2] | 0; l = g; return s | 0; } c[n >> 2] = (((c[m >> 2] << 4) >>> 0) / ((c[j >> 2] | 0) >>> 0)) | 0; c[r >> 2] = 0; while (1) { if ((c[r >> 2] | 0) >= 3) break; f = ((c[ (7008 + (((c[n >> 2] | 0) * 24) | 0) + (c[r >> 2] << 3)) >> 2 ] | 0) + (N( c[ (7008 + (((c[n >> 2] | 0) * 24) | 0) + (c[r >> 2] << 3) + 4) >> 2 ] | 0, c[o >> 2] | 0 ) | 0)) | 0; c[(p + (c[r >> 2] << 2)) >> 2] = f; c[r >> 2] = (c[r >> 2] | 0) + 1; } r = (p + 4) | 0; c[r >> 2] = (c[r >> 2] | 0) + ((c[(p + 4) >> 2] | 0) >>> 4); r = (p + 8) | 0; c[r >> 2] = (c[r >> 2] | 0) + ((c[(p + 8) >> 2] | 0) >>> 3); if ((c[(p + 4) >> 2] | 0) >>> 0 < (c[p >> 2] | 0) >>> 0) c[q >> 2] = 1; c[h >> 2] = sc[c[(11988 + (c[q >> 2] << 2)) >> 2] & 15]( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; s = c[h >> 2] | 0; l = g; return s | 0; } function Ww(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = sr(c[d >> 2] | 0) | 0; l = b; return a | 0; } function Xw(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 8224) | 0; h = (g + 8220) | 0; i = (g + 8216) | 0; j = (g + 8212) | 0; k = (g + 8208) | 0; m = (g + 8204) | 0; n = g; o = (g + 8200) | 0; p = (g + 8196) | 0; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; oE(n | 0, 0, 8194) | 0; b[n >> 1] = 12; c[o >> 2] = c[k >> 2]; c[p >> 2] = ox(n, c[k >> 2] | 0, c[m >> 2] | 0) | 0; k = (Ww(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (k) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } if (f >>> 0 >= (c[m >> 2] | 0) >>> 0) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + (c[p >> 2] | 0); c[m >> 2] = (c[m >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = px( c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0, c[m >> 2] | 0, n ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function Yw(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 16416) | 0; g = (f + 16412) | 0; h = (f + 16408) | 0; i = (f + 16404) | 0; j = (f + 16400) | 0; k = (f + 16396) | 0; m = f; n = (f + 16392) | 0; o = (f + 16388) | 0; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; oE(m | 0, 0, 16388) | 0; c[m >> 2] = 12; c[n >> 2] = c[j >> 2]; c[o >> 2] = Zw(m, c[j >> 2] | 0, c[k >> 2] | 0) | 0; j = (Ww(c[o >> 2] | 0) | 0) != 0; e = c[o >> 2] | 0; if (j) { c[g >> 2] = e; p = c[g >> 2] | 0; l = f; return p | 0; } if (e >>> 0 >= (c[k >> 2] | 0) >>> 0) { c[g >> 2] = -72; p = c[g >> 2] | 0; l = f; return p | 0; } else { c[n >> 2] = (c[n >> 2] | 0) + (c[o >> 2] | 0); c[k >> 2] = (c[k >> 2] | 0) - (c[o >> 2] | 0); c[g >> 2] = _w( c[h >> 2] | 0, c[i >> 2] | 0, c[n >> 2] | 0, c[k >> 2] | 0, m ) | 0; p = c[g >> 2] | 0; l = f; return p | 0; } return 0; } function Zw(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0; g = l; l = (l + 2128) | 0; h = (g + 2120) | 0; i = (g + 2116) | 0; j = (g + 2112) | 0; k = (g + 2108) | 0; m = (g + 1760) | 0; n = (g + 1248) | 0; o = (g + 1168) | 0; p = (g + 1088) | 0; q = (g + 2104) | 0; r = g; s = (g + 2100) | 0; t = (g + 2096) | 0; u = (g + 2092) | 0; v = (g + 2088) | 0; w = (g + 2084) | 0; x = (g + 2080) | 0; y = (g + 2076) | 0; z = (g + 2072) | 0; A = (g + 2068) | 0; B = (g + 2064) | 0; C = (g + 2060) | 0; D = (g + 2056) | 0; E = (g + 2052) | 0; F = (g + 2048) | 0; G = (g + 2044) | 0; H = (g + 2040) | 0; I = (g + 2036) | 0; J = (g + 2032) | 0; K = (g + 2028) | 0; L = (g + 2024) | 0; M = (g + 2020) | 0; N = (g + 2016) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; f = o; e = (f + 68) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (e | 0)); f = p; e = (f + 72) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (e | 0)); c[q >> 2] = p + 4; c[w >> 2] = c[c[i >> 2] >> 2]; c[y >> 2] = c[i >> 2]; c[z >> 2] = (c[y >> 2] | 0) + 4; if ((c[w >> 2] | 0) >>> 0 > 16) { c[h >> 2] = -44; O = c[h >> 2] | 0; l = g; return O | 0; } c[x >> 2] = ex(m, 256, o, v, s, c[j >> 2] | 0, c[k >> 2] | 0) | 0; if (Ww(c[x >> 2] | 0) | 0) { c[h >> 2] = c[x >> 2]; O = c[h >> 2] | 0; l = g; return O | 0; } if ((c[s >> 2] | 0) >>> 0 > (c[w >> 2] | 0) >>> 0) { c[h >> 2] = -44; O = c[h >> 2] | 0; l = g; return O | 0; } c[t >> 2] = c[s >> 2]; while (1) { if (c[(o + (c[t >> 2] << 2)) >> 2] | 0) break; if (!(c[t >> 2] | 0)) { P = 10; break; } c[t >> 2] = (c[t >> 2] | 0) + -1; } if ((P | 0) == 10) { c[h >> 2] = -1; O = c[h >> 2] | 0; l = g; return O | 0; } c[B >> 2] = 0; c[A >> 2] = 1; while (1) { Q = c[B >> 2] | 0; if ((c[A >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) break; c[C >> 2] = Q; c[B >> 2] = (c[B >> 2] | 0) + (c[(o + (c[A >> 2] << 2)) >> 2] | 0); c[((c[q >> 2] | 0) + (c[A >> 2] << 2)) >> 2] = c[C >> 2]; c[A >> 2] = (c[A >> 2] | 0) + 1; } c[c[q >> 2] >> 2] = Q; c[u >> 2] = c[B >> 2]; c[D >> 2] = 0; while (1) { if ((c[D >> 2] | 0) >>> 0 >= (c[v >> 2] | 0) >>> 0) break; c[E >> 2] = d[(m + (c[D >> 2] | 0)) >> 0]; B = ((c[q >> 2] | 0) + (c[E >> 2] << 2)) | 0; Q = c[B >> 2] | 0; c[B >> 2] = Q + 1; c[F >> 2] = Q; a[(n + (c[F >> 2] << 1)) >> 0] = c[D >> 2]; a[(n + (c[F >> 2] << 1) + 1) >> 0] = c[E >> 2]; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[c[q >> 2] >> 2] = 0; c[G >> 2] = (c[s >> 2] | 0) + 1 - (c[t >> 2] | 0); c[H >> 2] = 0; c[K >> 2] = (c[w >> 2] | 0) - (c[s >> 2] | 0) - 1; c[L >> 2] = r; c[I >> 2] = 1; while (1) { if ((c[I >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) break; c[M >> 2] = c[H >> 2]; c[H >> 2] = (c[H >> 2] | 0) + (c[(o + (c[I >> 2] << 2)) >> 2] << ((c[I >> 2] | 0) + (c[K >> 2] | 0))); c[((c[L >> 2] | 0) + (c[I >> 2] << 2)) >> 2] = c[M >> 2]; c[I >> 2] = (c[I >> 2] | 0) + 1; } c[J >> 2] = c[G >> 2]; while (1) { if ( (c[J >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[G >> 2] | 0)) | 0) >>> 0 ) break; c[N >> 2] = r + (((c[J >> 2] | 0) * 68) | 0); c[I >> 2] = 1; while (1) { if ((c[I >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) break; c[((c[N >> 2] | 0) + (c[I >> 2] << 2)) >> 2] = (c[((c[L >> 2] | 0) + (c[I >> 2] << 2)) >> 2] | 0) >>> (c[J >> 2] | 0); c[I >> 2] = (c[I >> 2] | 0) + 1; } c[J >> 2] = (c[J >> 2] | 0) + 1; } fx( c[z >> 2] | 0, c[w >> 2] | 0, n, c[u >> 2] | 0, p, r, c[t >> 2] | 0, ((c[s >> 2] | 0) + 1) | 0 ); c[h >> 2] = c[x >> 2]; O = c[h >> 2] | 0; l = g; return O | 0; } function _w(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0; g = l; l = (l + 192) | 0; h = (g + 184) | 0; i = (g + 180) | 0; j = (g + 176) | 0; k = (g + 172) | 0; m = (g + 168) | 0; n = (g + 164) | 0; o = (g + 160) | 0; p = (g + 156) | 0; q = (g + 152) | 0; r = (g + 148) | 0; s = (g + 144) | 0; t = (g + 140) | 0; u = (g + 136) | 0; v = (g + 120) | 0; w = (g + 104) | 0; x = (g + 88) | 0; y = (g + 72) | 0; z = (g + 64) | 0; A = (g + 60) | 0; B = (g + 56) | 0; C = (g + 52) | 0; D = (g + 48) | 0; E = (g + 44) | 0; F = (g + 40) | 0; G = (g + 36) | 0; H = (g + 32) | 0; I = (g + 28) | 0; J = (g + 24) | 0; K = (g + 20) | 0; L = (g + 16) | 0; M = (g + 12) | 0; N = (g + 8) | 0; O = (g + 4) | 0; P = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ((c[m >> 2] | 0) >>> 0 < 10) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[o >> 2] = c[k >> 2]; c[p >> 2] = c[i >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[j >> 2] | 0); c[r >> 2] = c[n >> 2]; c[s >> 2] = (c[r >> 2] | 0) + 4; c[t >> 2] = c[c[n >> 2] >> 2]; c[z >> 2] = (Lw(c[o >> 2] | 0) | 0) & 65535; c[A >> 2] = (Lw(((c[o >> 2] | 0) + 2) | 0) | 0) & 65535; c[B >> 2] = (Lw(((c[o >> 2] | 0) + 4) | 0) | 0) & 65535; c[D >> 2] = (c[o >> 2] | 0) + 6; c[E >> 2] = (c[D >> 2] | 0) + (c[z >> 2] | 0); c[F >> 2] = (c[E >> 2] | 0) + (c[A >> 2] | 0); c[G >> 2] = (c[F >> 2] | 0) + (c[B >> 2] | 0); c[H >> 2] = (((((c[j >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[I >> 2] = (c[p >> 2] | 0) + (c[H >> 2] | 0); c[J >> 2] = (c[I >> 2] | 0) + (c[H >> 2] | 0); c[K >> 2] = (c[J >> 2] | 0) + (c[H >> 2] | 0); c[L >> 2] = c[p >> 2]; c[M >> 2] = c[I >> 2]; c[N >> 2] = c[J >> 2]; c[O >> 2] = c[K >> 2]; c[C >> 2] = (c[m >> 2] | 0) - ((c[z >> 2] | 0) + (c[A >> 2] | 0) + (c[B >> 2] | 0) + 6); if ((c[C >> 2] | 0) >>> 0 > (c[m >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = tw(v, c[D >> 2] | 0, c[z >> 2] | 0) | 0; if (Ww(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = tw(w, c[E >> 2] | 0, c[A >> 2] | 0) | 0; if (Ww(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = tw(x, c[F >> 2] | 0, c[B >> 2] | 0) | 0; if (Ww(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } c[u >> 2] = tw(y, c[G >> 2] | 0, c[C >> 2] | 0) | 0; if (Ww(c[u >> 2] | 0) | 0) { c[h >> 2] = c[u >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } u = vw(v) | 0; C = u | (vw(w) | 0); u = C | (vw(x) | 0); c[P >> 2] = u | (vw(y) | 0); while (1) { if (c[P >> 2] | 0) break; if ( (c[O >> 2] | 0) >>> 0 >= (((c[q >> 2] | 0) + -7) | 0) >>> 0 ) break; if ($w() | 0) { u = ax(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; } if ($w() | 0) { u = ax(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; } if ($w() | 0) { u = ax(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; } if ($w() | 0) { u = ax(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; } $w() | 0; u = ax(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; $w() | 0; u = ax(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; $w() | 0; u = ax(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; $w() | 0; u = ax(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; if ($w() | 0) { u = ax(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; } if ($w() | 0) { u = ax(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; } if ($w() | 0) { u = ax(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; } if ($w() | 0) { u = ax(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; } u = ax(c[L >> 2] | 0, v, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[L >> 2] = (c[L >> 2] | 0) + u; u = ax(c[M >> 2] | 0, w, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[M >> 2] = (c[M >> 2] | 0) + u; u = ax(c[N >> 2] | 0, x, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) + u; u = ax(c[O >> 2] | 0, y, c[s >> 2] | 0, c[t >> 2] | 0) | 0; c[O >> 2] = (c[O >> 2] | 0) + u; u = vw(v) | 0; C = u | (vw(w) | 0); u = C | (vw(x) | 0); c[P >> 2] = u | (vw(y) | 0); } if ((c[L >> 2] | 0) >>> 0 > (c[I >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } if ((c[M >> 2] | 0) >>> 0 > (c[J >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } if ((c[N >> 2] | 0) >>> 0 > (c[K >> 2] | 0) >>> 0) { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } bx( c[L >> 2] | 0, v, c[I >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; bx( c[M >> 2] | 0, w, c[J >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; bx( c[N >> 2] | 0, x, c[K >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; bx( c[O >> 2] | 0, y, c[q >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0 ) | 0; t = yw(v) | 0; v = t & (yw(w) | 0); w = v & (yw(x) | 0); c[P >> 2] = w & (yw(y) | 0); if (c[P >> 2] | 0) { c[h >> 2] = c[j >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } else { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } return 0; } function $w() { return 0; } function ax(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = dx(c[j >> 2] | 0, c[m >> 2] | 0) | 0; m = c[i >> 2] | 0; i = ((c[k >> 2] | 0) + (c[n >> 2] << 2)) | 0; a[m >> 0] = a[i >> 0] | 0; a[(m + 1) >> 0] = a[(i + 1) >> 0] | 0; Gw( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0 ); l = h; return ( d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 3) >> 0] | 0 | 0 ); } function bx(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = c[h >> 2]; while (1) { if (vw(c[i >> 2] | 0) | 0) break; if ( (c[h >> 2] | 0) >>> 0 >= (((c[j >> 2] | 0) + -7) | 0) >>> 0 ) break; if ($w() | 0) { f = ax( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } $w() | 0; f = ax( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; if ($w() | 0) { f = ax( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } f = ax( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } while (1) { if (vw(c[i >> 2] | 0) | 0) break; if ( (c[h >> 2] | 0) >>> 0 > (((c[j >> 2] | 0) + -2) | 0) >>> 0 ) break; f = ax( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } while (1) { o = c[h >> 2] | 0; if ( (c[h >> 2] | 0) >>> 0 > (((c[j >> 2] | 0) + -2) | 0) >>> 0 ) break; f = ax(o, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0) | 0; c[h >> 2] = (c[h >> 2] | 0) + f; } if (o >>> 0 >= (c[j >> 2] | 0) >>> 0) { p = c[h >> 2] | 0; q = c[n >> 2] | 0; r = p; s = q; t = (r - s) | 0; l = g; return t | 0; } j = cx( c[h >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[h >> 2] | 0) + j; p = c[h >> 2] | 0; q = c[n >> 2] | 0; r = p; s = q; t = (r - s) | 0; l = g; return t | 0; } function cx(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = dx(c[j >> 2] | 0, c[m >> 2] | 0) | 0; a[c[i >> 2] >> 0] = a[((c[k >> 2] | 0) + (c[n >> 2] << 2)) >> 0] | 0; i = c[j >> 2] | 0; if ( (d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 3) >> 0] | 0 | 0) == 1 ) { Gw(i, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0); l = h; return 1; } if ((c[(i + 4) >> 2] | 0) >>> 0 >= 32) { l = h; return 1; } Gw( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 2) + 2) >> 0] | 0 ); if ((c[((c[j >> 2] | 0) + 4) >> 2] | 0) >>> 0 <= 32) { l = h; return 1; } c[((c[j >> 2] | 0) + 4) >> 2] = 32; l = h; return 1; } function dx(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( ((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> ((32 - (c[f >> 2] | 0)) & 31)) | 0 ); } function ex(b, e, f, g, h, i, j) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0; k = l; l = (l + 80) | 0; m = (k + 68) | 0; n = (k + 64) | 0; o = (k + 60) | 0; p = (k + 56) | 0; q = (k + 52) | 0; r = (k + 48) | 0; s = (k + 44) | 0; t = (k + 40) | 0; u = (k + 36) | 0; v = (k + 32) | 0; w = (k + 28) | 0; x = (k + 24) | 0; y = (k + 20) | 0; z = (k + 16) | 0; A = (k + 12) | 0; B = (k + 8) | 0; C = (k + 4) | 0; D = k; c[n >> 2] = b; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[w >> 2] = c[s >> 2]; if (!(c[t >> 2] | 0)) { c[m >> 2] = -72; E = c[m >> 2] | 0; l = k; return E | 0; } c[x >> 2] = d[c[w >> 2] >> 0]; s = c[x >> 2] | 0; a: do { if ((c[x >> 2] | 0) >>> 0 < 128) { if (((s + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) { c[m >> 2] = -72; E = c[m >> 2] | 0; l = k; return E | 0; } c[y >> 2] = jx( c[n >> 2] | 0, ((c[o >> 2] | 0) - 1) | 0, ((c[w >> 2] | 0) + 1) | 0, c[x >> 2] | 0 ) | 0; if (Pw(c[y >> 2] | 0) | 0) { c[m >> 2] = c[y >> 2]; E = c[m >> 2] | 0; l = k; return E | 0; } } else { j = c[x >> 2] | 0; if (s >>> 0 >= 242) { c[y >> 2] = c[(7392 + ((j - 242) << 2)) >> 2]; oE(c[n >> 2] | 0, 1, c[o >> 2] | 0) | 0; c[x >> 2] = 0; break; } c[y >> 2] = j - 127; c[x >> 2] = (((((c[y >> 2] | 0) + 1) | 0) >>> 0) / 2) | 0; if ( (((c[x >> 2] | 0) + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[m >> 2] = -72; E = c[m >> 2] | 0; l = k; return E | 0; } if ((c[y >> 2] | 0) >>> 0 >= (c[o >> 2] | 0) >>> 0) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } c[w >> 2] = (c[w >> 2] | 0) + 1; c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0) break a; a[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] = (d[ ((c[w >> 2] | 0) + ((((c[z >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) >> 4; a[((c[n >> 2] | 0) + ((c[z >> 2] | 0) + 1)) >> 0] = (d[ ((c[w >> 2] | 0) + ((((c[z >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) & 15; c[z >> 2] = (c[z >> 2] | 0) + 2; } } } while (0); w = c[p >> 2] | 0; o = (w + 68) | 0; do { c[w >> 2] = 0; w = (w + 4) | 0; } while ((w | 0) < (o | 0)); c[u >> 2] = 0; c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0) break; if ( (d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0 | 0) >= 16 ) { F = 20; break; } w = ((c[p >> 2] | 0) + ((d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0) << 2)) | 0; c[w >> 2] = (c[w >> 2] | 0) + 1; c[u >> 2] = (c[u >> 2] | 0) + ((1 << (d[((c[n >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0)) >> 1); c[z >> 2] = (c[z >> 2] | 0) + 1; } if ((F | 0) == 20) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } if (!(c[u >> 2] | 0)) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } c[v >> 2] = (Kw(c[u >> 2] | 0) | 0) + 1; if ((c[v >> 2] | 0) >>> 0 > 16) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } c[A >> 2] = 1 << c[v >> 2]; c[B >> 2] = (c[A >> 2] | 0) - (c[u >> 2] | 0); c[C >> 2] = 1 << (Kw(c[B >> 2] | 0) | 0); c[D >> 2] = (Kw(c[B >> 2] | 0) | 0) + 1; if ((c[C >> 2] | 0) != (c[B >> 2] | 0)) { c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } a[((c[n >> 2] | 0) + (c[y >> 2] | 0)) >> 0] = c[D >> 2]; n = ((c[p >> 2] | 0) + (c[D >> 2] << 2)) | 0; c[n >> 2] = (c[n >> 2] | 0) + 1; if ( (c[((c[p >> 2] | 0) + 4) >> 2] | 0) >>> 0 >= 2 ? ((c[((c[p >> 2] | 0) + 4) >> 2] & 1) | 0) == 0 : 0 ) { c[c[q >> 2] >> 2] = (c[y >> 2] | 0) + 1; c[c[r >> 2] >> 2] = c[v >> 2]; c[m >> 2] = (c[x >> 2] | 0) + 1; E = c[m >> 2] | 0; l = k; return E | 0; } c[m >> 2] = -20; E = c[m >> 2] | 0; l = k; return E | 0; } function fx(e, f, g, h, i, j, k, m) { e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0; n = l; l = (l + 160) | 0; o = (n + 140) | 0; p = (n + 136) | 0; q = (n + 132) | 0; r = (n + 128) | 0; s = (n + 124) | 0; t = (n + 120) | 0; u = (n + 116) | 0; v = (n + 112) | 0; w = n; x = (n + 108) | 0; y = (n + 104) | 0; z = (n + 100) | 0; A = (n + 148) | 0; B = (n + 96) | 0; C = (n + 92) | 0; D = (n + 88) | 0; E = (n + 84) | 0; F = (n + 80) | 0; G = (n + 76) | 0; H = (n + 72) | 0; I = (n + 68) | 0; J = (n + 144) | 0; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = k; c[v >> 2] = m; c[x >> 2] = (c[v >> 2] | 0) - (c[p >> 2] | 0); c[y >> 2] = (c[v >> 2] | 0) - (c[u >> 2] | 0); u = w; m = c[t >> 2] | 0; k = (u + 68) | 0; do { c[u >> 2] = c[m >> 2]; u = (u + 4) | 0; m = (m + 4) | 0; } while ((u | 0) < (k | 0)); c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[r >> 2] | 0) >>> 0) break; b[A >> 1] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1)) >> 0] | 0; c[B >> 2] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1) + 1) >> 0]; c[C >> 2] = (c[v >> 2] | 0) - (c[B >> 2] | 0); c[D >> 2] = c[(w + (c[B >> 2] << 2)) >> 2]; c[E >> 2] = 1 << ((c[p >> 2] | 0) - (c[C >> 2] | 0)); a: do { if ( (((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0 ) { m = ((c[C >> 2] | 0) + (c[x >> 2] | 0)) | 0; c[G >> 2] = m; c[G >> 2] = (c[G >> 2] | 0) < 1 ? 1 : m; c[F >> 2] = c[((c[s >> 2] | 0) + (c[G >> 2] << 2)) >> 2]; gx( ((c[o >> 2] | 0) + (c[D >> 2] << 2)) | 0, ((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0, c[C >> 2] | 0, ((c[t >> 2] | 0) + (((c[C >> 2] | 0) * 68) | 0)) | 0, c[G >> 2] | 0, ((c[q >> 2] | 0) + (c[F >> 2] << 1)) | 0, ((c[r >> 2] | 0) - (c[F >> 2] | 0)) | 0, c[v >> 2] | 0, b[A >> 1] | 0 ); } else { c[I >> 2] = (c[D >> 2] | 0) + (c[E >> 2] | 0); hx(J, b[A >> 1] | 0); a[(J + 2) >> 0] = c[C >> 2]; a[(J + 3) >> 0] = 1; c[H >> 2] = c[D >> 2]; while (1) { if ((c[H >> 2] | 0) >>> 0 >= (c[I >> 2] | 0) >>> 0) break a; m = ((c[o >> 2] | 0) + (c[H >> 2] << 2)) | 0; b[m >> 1] = b[J >> 1] | 0; b[(m + 2) >> 1] = b[(J + 2) >> 1] | 0; c[H >> 2] = (c[H >> 2] | 0) + 1; } } } while (0); m = (w + (c[B >> 2] << 2)) | 0; c[m >> 2] = (c[m >> 2] | 0) + (c[E >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + 1; } l = n; return; } function gx(f, g, h, i, j, k, m, n, o) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; o = o | 0; var p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; p = l; l = (l + 160) | 0; q = (p + 136) | 0; r = (p + 132) | 0; s = (p + 128) | 0; t = (p + 124) | 0; u = (p + 120) | 0; v = (p + 116) | 0; w = (p + 112) | 0; x = (p + 108) | 0; y = (p + 144) | 0; z = (p + 140) | 0; A = p; B = (p + 104) | 0; C = (p + 100) | 0; D = (p + 96) | 0; E = (p + 92) | 0; F = (p + 88) | 0; G = (p + 84) | 0; H = (p + 80) | 0; I = (p + 76) | 0; J = (p + 72) | 0; K = (p + 68) | 0; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = j; c[v >> 2] = k; c[w >> 2] = m; c[x >> 2] = n; b[y >> 1] = o; o = A; n = c[t >> 2] | 0; t = (o + 68) | 0; do { c[o >> 2] = c[n >> 2]; o = (o + 4) | 0; n = (n + 4) | 0; } while ((o | 0) < (t | 0)); a: do { if ((c[u >> 2] | 0) > 1) { c[D >> 2] = c[(A + (c[u >> 2] << 2)) >> 2]; hx(z, b[y >> 1] | 0); a[(z + 2) >> 0] = c[s >> 2]; a[(z + 3) >> 0] = 1; c[C >> 2] = 0; while (1) { if ((c[C >> 2] | 0) >>> 0 >= (c[D >> 2] | 0) >>> 0) break a; n = ((c[q >> 2] | 0) + (c[C >> 2] << 2)) | 0; b[n >> 1] = b[z >> 1] | 0; b[(n + 2) >> 1] = b[(z + 2) >> 1] | 0; c[C >> 2] = (c[C >> 2] | 0) + 1; } } } while (0); c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[E >> 2] = d[((c[v >> 2] | 0) + (c[B >> 2] << 1)) >> 0]; c[F >> 2] = d[((c[v >> 2] | 0) + (c[B >> 2] << 1) + 1) >> 0]; c[G >> 2] = (c[x >> 2] | 0) - (c[F >> 2] | 0); c[H >> 2] = 1 << ((c[r >> 2] | 0) - (c[G >> 2] | 0)); c[I >> 2] = c[(A + (c[F >> 2] << 2)) >> 2]; c[J >> 2] = c[I >> 2]; c[K >> 2] = (c[I >> 2] | 0) + (c[H >> 2] | 0); hx(z, ((e[y >> 1] | 0) + (c[E >> 2] << 8)) & 65535); a[(z + 2) >> 0] = (c[G >> 2] | 0) + (c[s >> 2] | 0); a[(z + 3) >> 0] = 2; do { C = c[q >> 2] | 0; D = c[J >> 2] | 0; c[J >> 2] = D + 1; u = (C + (D << 2)) | 0; b[u >> 1] = b[z >> 1] | 0; b[(u + 2) >> 1] = b[(z + 2) >> 1] | 0; } while ((c[J >> 2] | 0) >>> 0 < (c[K >> 2] | 0) >>> 0); u = (A + (c[F >> 2] << 2)) | 0; c[u >> 2] = (c[u >> 2] | 0) + (c[H >> 2] | 0); c[B >> 2] = (c[B >> 2] | 0) + 1; } l = p; return; } function hx(d, f) { d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; g = l; l = (l + 16) | 0; h = (g + 4) | 0; i = (g + 8) | 0; j = g; c[h >> 2] = d; b[i >> 1] = f; f = (tr() | 0) != 0; d = c[h >> 2] | 0; if (f) { ix(d, b[i >> 1] | 0); l = g; return; } else { c[j >> 2] = d; a[c[j >> 2] >> 0] = b[i >> 1]; a[((c[j >> 2] | 0) + 1) >> 0] = (e[i >> 1] | 0) >> 8; l = g; return; } } function ix(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = f; h = (f + 4) | 0; c[g >> 2] = d; b[h >> 1] = e; e = c[g >> 2] | 0; a[e >> 0] = a[h >> 0] | 0; a[(e + 1) >> 0] = a[(h + 1) >> 0] | 0; l = f; return; } function jx(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; f = l; l = (l + 16960) | 0; g = (f + 16948) | 0; h = (f + 16944) | 0; i = (f + 16940) | 0; j = (f + 16936) | 0; k = (f + 16932) | 0; m = (f + 16928) | 0; n = (f + 16924) | 0; o = (f + 16400) | 0; p = f; q = (f + 16920) | 0; r = (f + 16916) | 0; s = (f + 16912) | 0; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = c[j >> 2]; c[n >> 2] = c[m >> 2]; c[r >> 2] = 255; if ((c[k >> 2] | 0) >>> 0 < 2) { c[g >> 2] = -72; t = c[g >> 2] | 0; l = f; return t | 0; } c[s >> 2] = Ow(o, r, q, c[m >> 2] | 0, c[k >> 2] | 0) | 0; m = (Pw(c[s >> 2] | 0) | 0) != 0; j = c[s >> 2] | 0; if (m) { c[g >> 2] = j; t = c[g >> 2] | 0; l = f; return t | 0; } if (j >>> 0 >= (c[k >> 2] | 0) >>> 0) { c[g >> 2] = -72; t = c[g >> 2] | 0; l = f; return t | 0; } c[n >> 2] = (c[n >> 2] | 0) + (c[s >> 2] | 0); c[k >> 2] = (c[k >> 2] | 0) - (c[s >> 2] | 0); c[s >> 2] = Qw(p, o, c[r >> 2] | 0, c[q >> 2] | 0) | 0; if (Pw(c[s >> 2] | 0) | 0) { c[g >> 2] = c[s >> 2]; t = c[g >> 2] | 0; l = f; return t | 0; } else { c[g >> 2] = kx( c[h >> 2] | 0, c[i >> 2] | 0, c[n >> 2] | 0, c[k >> 2] | 0, p ) | 0; t = c[g >> 2] | 0; l = f; return t | 0; } return 0; } function kx(d, f, g, h, i) { d = d | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0; j = l; l = (l + 192) | 0; k = (j + 184) | 0; m = (j + 180) | 0; n = (j + 176) | 0; o = (j + 172) | 0; p = (j + 168) | 0; q = (j + 164) | 0; r = (j + 160) | 0; s = (j + 156) | 0; t = (j + 152) | 0; u = (j + 148) | 0; v = (j + 144) | 0; w = (j + 128) | 0; x = (j + 120) | 0; y = (j + 112) | 0; z = (j + 108) | 0; A = (j + 104) | 0; B = (j + 100) | 0; C = (j + 96) | 0; D = (j + 92) | 0; E = (j + 88) | 0; F = (j + 84) | 0; G = (j + 80) | 0; H = (j + 76) | 0; I = (j + 72) | 0; J = (j + 68) | 0; K = (j + 64) | 0; L = (j + 48) | 0; M = (j + 40) | 0; N = (j + 32) | 0; O = (j + 28) | 0; P = (j + 24) | 0; Q = (j + 20) | 0; R = (j + 16) | 0; S = (j + 12) | 0; T = (j + 8) | 0; U = (j + 4) | 0; V = (j + 188) | 0; W = j; c[Q >> 2] = d; c[R >> 2] = f; c[S >> 2] = g; c[T >> 2] = h; c[U >> 2] = i; i = c[U >> 2] | 0; b[V >> 1] = b[i >> 1] | 0; b[(V + 2) >> 1] = b[(i + 2) >> 1] | 0; c[W >> 2] = e[(V + 2) >> 1]; V = c[Q >> 2] | 0; Q = c[R >> 2] | 0; R = c[S >> 2] | 0; S = c[T >> 2] | 0; T = c[U >> 2] | 0; if (c[W >> 2] | 0) { c[B >> 2] = V; c[C >> 2] = Q; c[D >> 2] = R; c[E >> 2] = S; c[F >> 2] = T; c[G >> 2] = 1; c[H >> 2] = c[B >> 2]; c[I >> 2] = c[H >> 2]; c[J >> 2] = (c[I >> 2] | 0) + (c[C >> 2] | 0); c[K >> 2] = (c[J >> 2] | 0) + -3; c[O >> 2] = tw(L, c[D >> 2] | 0, c[E >> 2] | 0) | 0; do { if (!(Pw(c[O >> 2] | 0) | 0)) { uw(M, L, c[F >> 2] | 0); uw(N, L, c[F >> 2] | 0); while (1) { if (vw(L) | 0) break; if ((c[I >> 2] | 0) >>> 0 >= (c[K >> 2] | 0) >>> 0) break; if (c[G >> 2] | 0) X = (lx(M, L) | 0) & 255; else X = (Cw(M, L) | 0) & 255; a[c[I >> 2] >> 0] = X; if (c[G >> 2] | 0) Y = (lx(N, L) | 0) & 255; else Y = (Cw(N, L) | 0) & 255; a[((c[I >> 2] | 0) + 1) >> 0] = Y; if ((vw(L) | 0) >>> 0 > 0) { Z = 14; break; } if (c[G >> 2] | 0) _ = (lx(M, L) | 0) & 255; else _ = (Cw(M, L) | 0) & 255; a[((c[I >> 2] | 0) + 2) >> 0] = _; if (c[G >> 2] | 0) $ = (lx(N, L) | 0) & 255; else $ = (Cw(N, L) | 0) & 255; a[((c[I >> 2] | 0) + 3) >> 0] = $; c[I >> 2] = (c[I >> 2] | 0) + 4; } if ((Z | 0) == 14) c[I >> 2] = (c[I >> 2] | 0) + 2; while (1) { if ((vw(L) | 0) >>> 0 > 2) break; if ((c[I >> 2] | 0) == (c[J >> 2] | 0)) break; if (yw(L) | 0) { if (c[G >> 2] | 0) break; if (mx(M) | 0) break; } if (c[G >> 2] | 0) aa = (lx(M, L) | 0) & 255; else aa = (Cw(M, L) | 0) & 255; E = c[I >> 2] | 0; c[I >> 2] = E + 1; a[E >> 0] = aa; if ((vw(L) | 0) >>> 0 > 2) break; if ((c[I >> 2] | 0) == (c[J >> 2] | 0)) break; if (yw(L) | 0) { if (c[G >> 2] | 0) break; if (mx(N) | 0) break; } if (c[G >> 2] | 0) ba = (lx(N, L) | 0) & 255; else ba = (Cw(N, L) | 0) & 255; E = c[I >> 2] | 0; c[I >> 2] = E + 1; a[E >> 0] = ba; } if ((yw(L) | 0 ? mx(M) | 0 : 0) ? mx(N) | 0 : 0) { c[A >> 2] = (c[I >> 2] | 0) - (c[H >> 2] | 0); break; } if ((c[I >> 2] | 0) == (c[J >> 2] | 0)) { c[A >> 2] = -70; break; } else { c[A >> 2] = -20; break; } } else c[A >> 2] = c[O >> 2]; } while (0); c[P >> 2] = c[A >> 2]; ca = c[P >> 2] | 0; l = j; return ca | 0; } else { c[m >> 2] = V; c[n >> 2] = Q; c[o >> 2] = R; c[p >> 2] = S; c[q >> 2] = T; c[r >> 2] = 0; c[s >> 2] = c[m >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = (c[t >> 2] | 0) + (c[n >> 2] | 0); c[v >> 2] = (c[u >> 2] | 0) + -3; c[z >> 2] = tw(w, c[o >> 2] | 0, c[p >> 2] | 0) | 0; do { if (!(Pw(c[z >> 2] | 0) | 0)) { uw(x, w, c[q >> 2] | 0); uw(y, w, c[q >> 2] | 0); while (1) { if (vw(w) | 0) break; if ((c[t >> 2] | 0) >>> 0 >= (c[v >> 2] | 0) >>> 0) break; if (c[r >> 2] | 0) da = (lx(x, w) | 0) & 255; else da = (Cw(x, w) | 0) & 255; a[c[t >> 2] >> 0] = da; if (c[r >> 2] | 0) ea = (lx(y, w) | 0) & 255; else ea = (Cw(y, w) | 0) & 255; a[((c[t >> 2] | 0) + 1) >> 0] = ea; if ((vw(w) | 0) >>> 0 > 0) { Z = 60; break; } if (c[r >> 2] | 0) fa = (lx(x, w) | 0) & 255; else fa = (Cw(x, w) | 0) & 255; a[((c[t >> 2] | 0) + 2) >> 0] = fa; if (c[r >> 2] | 0) ga = (lx(y, w) | 0) & 255; else ga = (Cw(y, w) | 0) & 255; a[((c[t >> 2] | 0) + 3) >> 0] = ga; c[t >> 2] = (c[t >> 2] | 0) + 4; } if ((Z | 0) == 60) c[t >> 2] = (c[t >> 2] | 0) + 2; while (1) { if ((vw(w) | 0) >>> 0 > 2) break; if ((c[t >> 2] | 0) == (c[u >> 2] | 0)) break; if (yw(w) | 0) { if (c[r >> 2] | 0) break; if (mx(x) | 0) break; } if (c[r >> 2] | 0) ha = (lx(x, w) | 0) & 255; else ha = (Cw(x, w) | 0) & 255; p = c[t >> 2] | 0; c[t >> 2] = p + 1; a[p >> 0] = ha; if ((vw(w) | 0) >>> 0 > 2) break; if ((c[t >> 2] | 0) == (c[u >> 2] | 0)) break; if (yw(w) | 0) { if (c[r >> 2] | 0) break; if (mx(y) | 0) break; } if (c[r >> 2] | 0) ia = (lx(y, w) | 0) & 255; else ia = (Cw(y, w) | 0) & 255; p = c[t >> 2] | 0; c[t >> 2] = p + 1; a[p >> 0] = ia; } if ((yw(w) | 0 ? mx(x) | 0 : 0) ? mx(y) | 0 : 0) { c[k >> 2] = (c[t >> 2] | 0) - (c[s >> 2] | 0); break; } if ((c[t >> 2] | 0) == (c[u >> 2] | 0)) { c[k >> 2] = -70; break; } else { c[k >> 2] = -20; break; } } else c[k >> 2] = c[z >> 2]; } while (0); c[P >> 2] = c[k >> 2]; ca = c[P >> 2] | 0; l = j; return ca | 0; } return 0; } function lx(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = nx(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function mx(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[c[d >> 2] >> 2] | 0) == 0) | 0; } function nx(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = dx(c[e >> 2] | 0, c[f >> 2] | 0) | 0; Gw(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function ox(f, g, h) { f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; i = l; l = (l + 400) | 0; j = (i + 392) | 0; k = (i + 388) | 0; m = (i + 384) | 0; n = (i + 380) | 0; o = (i + 80) | 0; p = i; q = (i + 376) | 0; r = (i + 372) | 0; s = (i + 368) | 0; t = (i + 364) | 0; u = (i + 360) | 0; v = (i + 356) | 0; w = (i + 352) | 0; x = (i + 348) | 0; y = (i + 344) | 0; z = (i + 340) | 0; A = (i + 336) | 0; B = (i + 396) | 0; c[k >> 2] = f; c[m >> 2] = g; c[n >> 2] = h; c[q >> 2] = 0; c[s >> 2] = 0; c[v >> 2] = (c[k >> 2] | 0) + 2; c[w >> 2] = c[v >> 2]; c[r >> 2] = ex(o, 256, p, s, q, c[m >> 2] | 0, c[n >> 2] | 0) | 0; if (Ww(c[r >> 2] | 0) | 0) { c[j >> 2] = c[r >> 2]; C = c[j >> 2] | 0; l = i; return C | 0; } if ((c[q >> 2] | 0) >>> 0 > (e[c[k >> 2] >> 1] | 0) >>> 0) { c[j >> 2] = -44; C = c[j >> 2] | 0; l = i; return C | 0; } b[c[k >> 2] >> 1] = c[q >> 2]; c[u >> 2] = 0; c[t >> 2] = 1; while (1) { if ((c[t >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) break; c[x >> 2] = c[u >> 2]; c[u >> 2] = (c[u >> 2] | 0) + (c[(p + (c[t >> 2] << 2)) >> 2] << ((c[t >> 2] | 0) - 1)); c[(p + (c[t >> 2] << 2)) >> 2] = c[x >> 2]; c[t >> 2] = (c[t >> 2] | 0) + 1; } c[t >> 2] = 0; while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[s >> 2] | 0) >>> 0) break; c[y >> 2] = d[(o + (c[t >> 2] | 0)) >> 0]; c[z >> 2] = (1 << c[y >> 2]) >> 1; a[B >> 0] = c[t >> 2]; a[(B + 1) >> 0] = (c[q >> 2] | 0) + 1 - (c[y >> 2] | 0); c[A >> 2] = c[(p + (c[y >> 2] << 2)) >> 2]; while (1) { if ( (c[A >> 2] | 0) >>> 0 >= (((c[(p + (c[y >> 2] << 2)) >> 2] | 0) + (c[z >> 2] | 0)) | 0) >>> 0 ) break; x = ((c[w >> 2] | 0) + (c[A >> 2] << 1)) | 0; a[x >> 0] = a[B >> 0] | 0; a[(x + 1) >> 0] = a[(B + 1) >> 0] | 0; c[A >> 2] = (c[A >> 2] | 0) + 1; } x = (p + (c[y >> 2] << 2)) | 0; c[x >> 2] = (c[x >> 2] | 0) + (c[z >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) + 1; } c[j >> 2] = c[r >> 2]; C = c[j >> 2] | 0; l = i; return C | 0; } function px(b, d, f, g, h) { b = b | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0; i = l; l = (l + 192) | 0; j = (i + 184) | 0; k = (i + 180) | 0; m = (i + 176) | 0; n = (i + 172) | 0; o = (i + 168) | 0; p = (i + 164) | 0; q = (i + 160) | 0; r = (i + 156) | 0; s = (i + 152) | 0; t = (i + 148) | 0; u = (i + 144) | 0; v = (i + 140) | 0; w = (i + 136) | 0; x = (i + 120) | 0; y = (i + 104) | 0; z = (i + 88) | 0; A = (i + 72) | 0; B = (i + 64) | 0; C = (i + 60) | 0; D = (i + 56) | 0; E = (i + 52) | 0; F = (i + 48) | 0; G = (i + 44) | 0; H = (i + 40) | 0; I = (i + 36) | 0; J = (i + 32) | 0; K = (i + 28) | 0; L = (i + 24) | 0; M = (i + 20) | 0; N = (i + 16) | 0; O = (i + 12) | 0; P = (i + 8) | 0; Q = (i + 4) | 0; R = i; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; if ((c[o >> 2] | 0) >>> 0 < 10) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } c[q >> 2] = c[n >> 2]; c[r >> 2] = c[k >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[m >> 2] | 0); c[t >> 2] = c[p >> 2]; c[u >> 2] = (c[t >> 2] | 0) + 2; c[v >> 2] = e[c[p >> 2] >> 1]; c[B >> 2] = (Lw(c[q >> 2] | 0) | 0) & 65535; c[C >> 2] = (Lw(((c[q >> 2] | 0) + 2) | 0) | 0) & 65535; c[D >> 2] = (Lw(((c[q >> 2] | 0) + 4) | 0) | 0) & 65535; c[F >> 2] = (c[q >> 2] | 0) + 6; c[G >> 2] = (c[F >> 2] | 0) + (c[B >> 2] | 0); c[H >> 2] = (c[G >> 2] | 0) + (c[C >> 2] | 0); c[I >> 2] = (c[H >> 2] | 0) + (c[D >> 2] | 0); c[J >> 2] = (((((c[m >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[K >> 2] = (c[r >> 2] | 0) + (c[J >> 2] | 0); c[L >> 2] = (c[K >> 2] | 0) + (c[J >> 2] | 0); c[M >> 2] = (c[L >> 2] | 0) + (c[J >> 2] | 0); c[N >> 2] = c[r >> 2]; c[O >> 2] = c[K >> 2]; c[P >> 2] = c[L >> 2]; c[Q >> 2] = c[M >> 2]; c[E >> 2] = (c[o >> 2] | 0) - ((c[B >> 2] | 0) + (c[C >> 2] | 0) + (c[D >> 2] | 0) + 6); if ((c[E >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = tw(x, c[F >> 2] | 0, c[B >> 2] | 0) | 0; if (Ww(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = tw(y, c[G >> 2] | 0, c[C >> 2] | 0) | 0; if (Ww(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = tw(z, c[H >> 2] | 0, c[D >> 2] | 0) | 0; if (Ww(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } c[w >> 2] = tw(A, c[I >> 2] | 0, c[E >> 2] | 0) | 0; if (Ww(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } w = vw(x) | 0; E = w | (vw(y) | 0); w = E | (vw(z) | 0); c[R >> 2] = w | (vw(A) | 0); while (1) { if (c[R >> 2] | 0) break; if ( (c[Q >> 2] | 0) >>> 0 >= (((c[s >> 2] | 0) + -7) | 0) >>> 0 ) break; if ($w() | 0) { w = qx(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; } if ($w() | 0) { w = qx(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; } if ($w() | 0) { w = qx(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; } if ($w() | 0) { w = qx(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; } $w() | 0; w = qx(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; $w() | 0; w = qx(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; $w() | 0; w = qx(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; $w() | 0; w = qx(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; if ($w() | 0) { w = qx(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; } if ($w() | 0) { w = qx(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; } if ($w() | 0) { w = qx(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; } if ($w() | 0) { w = qx(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; } w = qx(x, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[N >> 2] | 0; c[N >> 2] = E + 1; a[E >> 0] = w; w = qx(y, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[O >> 2] | 0; c[O >> 2] = E + 1; a[E >> 0] = w; w = qx(z, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[P >> 2] | 0; c[P >> 2] = E + 1; a[E >> 0] = w; w = qx(A, c[u >> 2] | 0, c[v >> 2] | 0) | 0; E = c[Q >> 2] | 0; c[Q >> 2] = E + 1; a[E >> 0] = w; w = vw(x) | 0; E = w | (vw(y) | 0); w = E | (vw(z) | 0); c[R >> 2] = w | (vw(A) | 0); } if ((c[N >> 2] | 0) >>> 0 > (c[K >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } if ((c[O >> 2] | 0) >>> 0 > (c[L >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } if ((c[P >> 2] | 0) >>> 0 > (c[M >> 2] | 0) >>> 0) { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } rx( c[N >> 2] | 0, x, c[K >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; rx( c[O >> 2] | 0, y, c[L >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; rx( c[P >> 2] | 0, z, c[M >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; rx( c[Q >> 2] | 0, A, c[s >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; v = yw(x) | 0; x = v & (yw(y) | 0); y = x & (yw(z) | 0); c[R >> 2] = y & (yw(A) | 0); if (c[R >> 2] | 0) { c[j >> 2] = c[m >> 2]; S = c[j >> 2] | 0; l = i; return S | 0; } else { c[j >> 2] = -20; S = c[j >> 2] | 0; l = i; return S | 0; } return 0; } function qx(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 4) | 0; k = g; m = (g + 16) | 0; c[h >> 2] = b; c[i >> 2] = e; c[j >> 2] = f; c[k >> 2] = dx(c[h >> 2] | 0, c[j >> 2] | 0) | 0; a[m >> 0] = a[((c[i >> 2] | 0) + (c[k >> 2] << 1)) >> 0] | 0; Gw( c[h >> 2] | 0, d[((c[i >> 2] | 0) + (c[k >> 2] << 1) + 1) >> 0] | 0 ); l = g; return a[m >> 0] | 0; } function rx(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 20) | 0; j = (h + 16) | 0; k = (h + 12) | 0; m = (h + 8) | 0; n = (h + 4) | 0; o = h; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = c[i >> 2]; while (1) { if (vw(c[j >> 2] | 0) | 0) break; if ( (c[i >> 2] | 0) >>> 0 > (((c[k >> 2] | 0) + -4) | 0) >>> 0 ) break; if ($w() | 0) { g = qx(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } $w() | 0; g = qx(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; if ($w() | 0) { g = qx(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } g = qx(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } while (1) { if (vw(c[j >> 2] | 0) | 0) break; if ((c[i >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; g = qx(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } while (1) { if ((c[i >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; g = qx(c[j >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; f = c[i >> 2] | 0; c[i >> 2] = f + 1; a[f >> 0] = g; } l = h; return ((c[k >> 2] | 0) - (c[o >> 2] | 0)) | 0; } function sx(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; if ((c[j >> 2] | 0) >>> 0 < 5) { c[g >> 2] = 5; m = c[g >> 2] | 0; l = f; return m | 0; } c[k >> 2] = pr(c[i >> 2] | 0) | 0; if ((c[k >> 2] | 0) != -47205084) { c[g >> 2] = -10; m = c[g >> 2] | 0; l = f; return m | 0; } k = c[h >> 2] | 0; c[k >> 2] = 0; c[(k + 4) >> 2] = 0; c[(k + 8) >> 2] = 0; c[(k + 12) >> 2] = 0; c[(k + 16) >> 2] = 0; c[(k + 20) >> 2] = 0; c[(k + 24) >> 2] = 0; c[(k + 28) >> 2] = 0; c[((c[h >> 2] | 0) + 8) >> 2] = ((d[((c[i >> 2] | 0) + 4) >> 0] | 0) & 15) + 11; if (((d[((c[i >> 2] | 0) + 4) >> 0] | 0) >> 4) | 0) { c[g >> 2] = -14; m = c[g >> 2] | 0; l = f; return m | 0; } else { c[g >> 2] = 0; m = c[g >> 2] | 0; l = f; return m | 0; } return 0; } function tx(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 16) | 0; i = (g + 12) | 0; j = (g + 8) | 0; k = (g + 4) | 0; m = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; f = Zr( c[h >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, 0, 0 ) | 0; l = g; return f | 0; } function ux(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 24) | 0; h = (f + 20) | 0; i = (f + 16) | 0; j = (f + 12) | 0; k = (f + 8) | 0; m = (f + 4) | 0; n = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[n >> 2] = Wp() | 0; if (!(c[n >> 2] | 0)) { c[g >> 2] = -64; o = c[g >> 2] | 0; l = f; return o | 0; } else { c[m >> 2] = tx( c[n >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0 ) | 0; Xp(c[n >> 2] | 0) | 0; c[g >> 2] = c[m >> 2]; o = c[g >> 2] | 0; l = f; return o | 0; } return 0; } function vx(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return c[((c[d >> 2] | 0) + 28744) >> 2] | 0; } function wx(a) { a = a | 0; var b = 0, d = 0, e = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; switch (c[((c[e >> 2] | 0) + 28804) >> 2] | 0) { case 6: case 7: { c[d >> 2] = 5; break; } case 2: { c[d >> 2] = 1; break; } case 3: { c[d >> 2] = 2; break; } case 4: { c[d >> 2] = 3; break; } case 5: { c[d >> 2] = 4; break; } default: c[d >> 2] = 0; } l = b; return c[d >> 2] | 0; } function xx(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; g = l; l = (l + 64) | 0; h = (g + 52) | 0; i = (g + 48) | 0; j = (g + 44) | 0; k = (g + 40) | 0; m = (g + 36) | 0; n = (g + 32) | 0; o = (g + 28) | 0; p = (g + 16) | 0; q = (g + 12) | 0; r = (g + 8) | 0; s = (g + 4) | 0; t = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ( (c[n >> 2] | 0) != (c[((c[i >> 2] | 0) + 28744) >> 2] | 0) ) { c[h >> 2] = -72; u = c[h >> 2] | 0; l = g; return u | 0; } if (c[k >> 2] | 0) Br(c[i >> 2] | 0, c[j >> 2] | 0); switch (c[((c[i >> 2] | 0) + 28804) >> 2] | 0) { case 0: { if ( (c[((c[i >> 2] | 0) + 28912) >> 2] | 0) == 0 ? (((hq(c[m >> 2] | 0) | 0) & -16) | 0) == 407710288 : 0 ) { mE( ((c[i >> 2] | 0) + 160092) | 0, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 28744) >> 2] = 8 - (c[n >> 2] | 0); c[((c[i >> 2] | 0) + 28804) >> 2] = 6; c[h >> 2] = 0; u = c[h >> 2] | 0; l = g; return u | 0; } f = nq( c[m >> 2] | 0, c[n >> 2] | 0, c[((c[i >> 2] | 0) + 28912) >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 28904) >> 2] = f; f = ($q(c[((c[i >> 2] | 0) + 28904) >> 2] | 0) | 0) != 0; e = c[i >> 2] | 0; if (f) { c[h >> 2] = c[(e + 28904) >> 2]; u = c[h >> 2] | 0; l = g; return u | 0; } else { mE((e + 160092) | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; c[((c[i >> 2] | 0) + 28744) >> 2] = (c[((c[i >> 2] | 0) + 28904) >> 2] | 0) - (c[n >> 2] | 0); c[((c[i >> 2] | 0) + 28804) >> 2] = 1; c[h >> 2] = 0; u = c[h >> 2] | 0; l = g; return u | 0; } break; } case 1: { mE( ((c[i >> 2] | 0) + 160092 + ((c[((c[i >> 2] | 0) + 28904) >> 2] | 0) - (c[n >> 2] | 0))) | 0, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0; c[o >> 2] = fs( c[i >> 2] | 0, ((c[i >> 2] | 0) + 160092) | 0, c[((c[i >> 2] | 0) + 28904) >> 2] | 0 ) | 0; if ($q(c[o >> 2] | 0) | 0) { c[h >> 2] = c[o >> 2]; u = c[h >> 2] | 0; l = g; return u | 0; } else { c[((c[i >> 2] | 0) + 28744) >> 2] = 3; c[((c[i >> 2] | 0) + 28804) >> 2] = 2; c[h >> 2] = 0; u = c[h >> 2] | 0; l = g; return u | 0; } break; } case 2: { c[q >> 2] = br(c[m >> 2] | 0, 3, p) | 0; o = ($q(c[q >> 2] | 0) | 0) != 0; e = c[q >> 2] | 0; if (o) { c[h >> 2] = e; u = c[h >> 2] | 0; l = g; return u | 0; } c[((c[i >> 2] | 0) + 28744) >> 2] = e; c[((c[i >> 2] | 0) + 28800) >> 2] = c[p >> 2]; c[((c[i >> 2] | 0) + 28936) >> 2] = c[(p + 8) >> 2]; e = (c[(p + 4) >> 2] | 0) != 0; if (c[q >> 2] | 0) { c[((c[i >> 2] | 0) + 28804) >> 2] = e ? 4 : 3; c[h >> 2] = 0; u = c[h >> 2] | 0; l = g; return u | 0; } q = c[i >> 2] | 0; do { if (e) { p = ((c[i >> 2] | 0) + 28744) | 0; if (c[(q + 28752 + 32) >> 2] | 0) { c[p >> 2] = 4; c[((c[i >> 2] | 0) + 28804) >> 2] = 5; break; } else { c[p >> 2] = 0; c[((c[i >> 2] | 0) + 28804) >> 2] = 0; break; } } else { c[(q + 28744) >> 2] = 3; c[((c[i >> 2] | 0) + 28804) >> 2] = 2; } } while (0); c[h >> 2] = 0; u = c[h >> 2] | 0; l = g; return u | 0; } case 3: case 4: { switch (c[((c[i >> 2] | 0) + 28800) >> 2] | 0) { case 2: { c[r >> 2] = Cr( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 1 ) | 0; break; } case 0: { c[r >> 2] = gs( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0; break; } case 1: { c[r >> 2] = yx( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[((c[i >> 2] | 0) + 28936) >> 2] | 0 ) | 0; break; } default: { c[h >> 2] = -20; u = c[h >> 2] | 0; l = g; return u | 0; } } k = ($q(c[r >> 2] | 0) | 0) != 0; q = c[r >> 2] | 0; if (k) { c[h >> 2] = q; u = c[h >> 2] | 0; l = g; return u | 0; } k = ((c[i >> 2] | 0) + 28792) | 0; e = k; p = k; c[p >> 2] = dE(c[e >> 2] | 0, c[(e + 4) >> 2] | 0, q | 0, 0) | 0; c[(p + 4) >> 2] = y; if (c[((c[i >> 2] | 0) + 28752 + 32) >> 2] | 0) Nh( ((c[i >> 2] | 0) + 28816) | 0, c[j >> 2] | 0, c[r >> 2] | 0 ) | 0; p = c[i >> 2] | 0; do { if ((c[((c[i >> 2] | 0) + 28804) >> 2] | 0) == 4) { q = (p + 28752) | 0; if ( ( (c[q >> 2] | 0) != -1 ? 1 : (c[(q + 4) >> 2] | 0) != -1 ) ? ((q = ((c[i >> 2] | 0) + 28792) | 0), (e = ((c[i >> 2] | 0) + 28752) | 0), (c[q >> 2] | 0) != (c[e >> 2] | 0) ? 1 : (c[(q + 4) >> 2] | 0) != (c[(e + 4) >> 2] | 0)) : 0 ) { c[h >> 2] = -20; u = c[h >> 2] | 0; l = g; return u | 0; } e = ((c[i >> 2] | 0) + 28744) | 0; if (c[((c[i >> 2] | 0) + 28752 + 32) >> 2] | 0) { c[e >> 2] = 4; c[((c[i >> 2] | 0) + 28804) >> 2] = 5; break; } else { c[e >> 2] = 0; c[((c[i >> 2] | 0) + 28804) >> 2] = 0; break; } } else { c[(p + 28804) >> 2] = 2; c[((c[i >> 2] | 0) + 28744) >> 2] = 3; c[((c[i >> 2] | 0) + 28728) >> 2] = (c[j >> 2] | 0) + (c[r >> 2] | 0); } } while (0); c[h >> 2] = c[r >> 2]; u = c[h >> 2] | 0; l = g; return u | 0; } case 5: { c[s >> 2] = Oh(((c[i >> 2] | 0) + 28816) | 0) | 0; c[t >> 2] = hq(c[m >> 2] | 0) | 0; if ((c[t >> 2] | 0) != (c[s >> 2] | 0)) { c[h >> 2] = -22; u = c[h >> 2] | 0; l = g; return u | 0; } else { c[((c[i >> 2] | 0) + 28744) >> 2] = 0; c[((c[i >> 2] | 0) + 28804) >> 2] = 0; c[h >> 2] = 0; u = c[h >> 2] | 0; l = g; return u | 0; } break; } case 6: { mE( ((c[i >> 2] | 0) + 160092 + (8 - (c[n >> 2] | 0))) | 0, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0; n = hq(((c[i >> 2] | 0) + 160092 + 4) | 0) | 0; c[((c[i >> 2] | 0) + 28744) >> 2] = n; c[((c[i >> 2] | 0) + 28804) >> 2] = 7; c[h >> 2] = 0; u = c[h >> 2] | 0; l = g; return u | 0; } case 7: { c[((c[i >> 2] | 0) + 28744) >> 2] = 0; c[((c[i >> 2] | 0) + 28804) >> 2] = 0; c[h >> 2] = 0; u = c[h >> 2] | 0; l = g; return u | 0; } default: { c[h >> 2] = -1; u = c[h >> 2] | 0; l = g; return u | 0; } } return 0; } function yx(a, b, e, f, g) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; h = l; l = (l + 32) | 0; i = (h + 20) | 0; j = (h + 16) | 0; k = (h + 12) | 0; m = (h + 8) | 0; n = (h + 4) | 0; o = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; if ((c[n >> 2] | 0) != 1) { c[i >> 2] = -72; p = c[i >> 2] | 0; l = h; return p | 0; } if ((c[o >> 2] | 0) >>> 0 > (c[k >> 2] | 0) >>> 0) { c[i >> 2] = -70; p = c[i >> 2] | 0; l = h; return p | 0; } else { oE( c[j >> 2] | 0, ((d[c[m >> 2] >> 0] | 0) & 255) | 0, c[o >> 2] | 0 ) | 0; c[i >> 2] = c[o >> 2]; p = c[i >> 2] | 0; l = h; return p | 0; } return 0; } function zx(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 48) | 0; h = (g + 24) | 0; i = (g + 20) | 0; j = (g + 16) | 0; k = (g + 12) | 0; m = (g + 8) | 0; n = (g + 4) | 0; o = g; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; if ( (((((c[f >> 2] | 0) != 0) ^ 1) & 1) ^ ((((c[(f + 4) >> 2] | 0) != 0) ^ 1) & 1)) | 0 ) { c[i >> 2] = 0; p = c[i >> 2] | 0; l = g; return p | 0; } c[h >> 2] = c[f >> 2]; c[(h + 4) >> 2] = c[(f + 4) >> 2]; c[(h + 8) >> 2] = c[(f + 8) >> 2]; c[o >> 2] = Rh(28744, h) | 0; if (!(c[o >> 2] | 0)) { c[i >> 2] = 0; p = c[i >> 2] | 0; l = g; return p | 0; } h = ((c[o >> 2] | 0) + 28732) | 0; c[h >> 2] = c[f >> 2]; c[(h + 4) >> 2] = c[(f + 4) >> 2]; c[(h + 8) >> 2] = c[(f + 8) >> 2]; f = ($q( Ax( c[o >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0 ) | 0) != 0; n = c[o >> 2] | 0; if (f) { Yp(n) | 0; c[i >> 2] = 0; p = c[i >> 2] | 0; l = g; return p | 0; } else { c[i >> 2] = n; p = c[i >> 2] | 0; l = g; return p | 0; } return 0; } function Ax(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 48) | 0; h = (g + 32) | 0; i = (g + 28) | 0; j = (g + 24) | 0; k = (g + 20) | 0; m = (g + 16) | 0; n = (g + 12) | 0; o = (g + 8) | 0; p = (g + 4) | 0; q = g; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; do { if ( ((c[n >> 2] | 0) != 1) & ((c[k >> 2] | 0) != 0) & ((c[m >> 2] | 0) != 0) ) { f = c[m >> 2] | 0; e = ((c[j >> 2] | 0) + 28732) | 0; c[h >> 2] = c[e >> 2]; c[(h + 4) >> 2] = c[(e + 4) >> 2]; c[(h + 8) >> 2] = c[(e + 8) >> 2]; c[p >> 2] = Rh(f, h) | 0; c[c[j >> 2] >> 2] = c[p >> 2]; c[((c[j >> 2] | 0) + 4) >> 2] = c[p >> 2]; if (c[p >> 2] | 0) { mE(c[p >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0) | 0; break; } c[i >> 2] = -64; r = c[i >> 2] | 0; l = g; return r | 0; } else { c[c[j >> 2] >> 2] = 0; c[((c[j >> 2] | 0) + 4) >> 2] = c[k >> 2]; } } while (0); c[((c[j >> 2] | 0) + 8) >> 2] = c[m >> 2]; c[((c[j >> 2] | 0) + 12 + 10264) >> 2] = 201326604; c[q >> 2] = Bx(c[j >> 2] | 0, c[o >> 2] | 0) | 0; if ($q(c[q >> 2] | 0) | 0) { c[i >> 2] = c[q >> 2]; r = c[i >> 2] | 0; l = g; return r | 0; } else { c[i >> 2] = 0; r = c[i >> 2] | 0; l = g; return r | 0; } return 0; } function Bx(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; d = l; l = (l + 32) | 0; e = (d + 16) | 0; f = (d + 12) | 0; g = (d + 8) | 0; h = (d + 4) | 0; i = d; c[f >> 2] = a; c[g >> 2] = b; c[((c[f >> 2] | 0) + 28724) >> 2] = 0; c[((c[f >> 2] | 0) + 28728) >> 2] = 0; do { if ((c[g >> 2] | 0) != 1) { if ((c[((c[f >> 2] | 0) + 8) >> 2] | 0) >>> 0 < 8) if ((c[g >> 2] | 0) == 2) { c[e >> 2] = -30; break; } else { c[e >> 2] = 0; break; } c[h >> 2] = hq(c[((c[f >> 2] | 0) + 4) >> 2] | 0) | 0; if ((c[h >> 2] | 0) != -332356553) { if ((c[g >> 2] | 0) == 2) { c[e >> 2] = -30; break; } else { c[e >> 2] = 0; break; } } else { b = hq(((c[((c[f >> 2] | 0) + 4) >> 2] | 0) + 4) | 0) | 0; c[((c[f >> 2] | 0) + 28724) >> 2] = b; c[i >> 2] = ls( ((c[f >> 2] | 0) + 12) | 0, c[((c[f >> 2] | 0) + 4) >> 2] | 0, c[((c[f >> 2] | 0) + 8) >> 2] | 0 ) | 0; if ($q(c[i >> 2] | 0) | 0) { c[e >> 2] = -30; break; } else { c[((c[f >> 2] | 0) + 28728) >> 2] = 1; c[e >> 2] = 0; break; } } } else c[e >> 2] = 0; } while (0); l = d; return c[e >> 2] | 0; } function Cx(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 32) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[f >> 2] = a; c[g >> 2] = b; b = c[f >> 2] | 0; f = c[g >> 2] | 0; c[e >> 2] = c[5415]; c[(e + 4) >> 2] = c[5416]; c[(e + 8) >> 2] = c[5417]; g = zx(b, f, 0, 0, e) | 0; l = d; return g | 0; } function Dx(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 20) | 0; j = (h + 16) | 0; k = (h + 12) | 0; m = (h + 8) | 0; n = (h + 4) | 0; o = h; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; g = _r( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 0, 0, c[o >> 2] | 0 ) | 0; l = h; return g | 0; } function Ex() { var a = 0, b = 0, d = 0; a = l; l = (l + 16) | 0; b = a; c[b >> 2] = c[5412]; c[(b + 4) >> 2] = c[5413]; c[(b + 8) >> 2] = c[5414]; d = Fx(b) | 0; l = a; return d | 0; } function Fx(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = c[a >> 2]; c[(d + 4) >> 2] = c[(a + 4) >> 2]; c[(d + 8) >> 2] = c[(a + 8) >> 2]; a = Vp(d) | 0; l = b; return a | 0; } function Gx(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = Xp(c[d >> 2] | 0) | 0; l = b; return a | 0; } function Hx() { return 131075; } function Ix() { return 131072; } function Jx(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 48) | 0; h = (g + 24) | 0; i = (g + 20) | 0; j = (g + 16) | 0; k = (g + 12) | 0; m = (g + 8) | 0; n = (g + 4) | 0; o = g; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; if (c[((c[j >> 2] | 0) + 28956) >> 2] | 0) { c[i >> 2] = -60; p = c[i >> 2] | 0; l = g; return p | 0; } Yp(c[((c[j >> 2] | 0) + 28948) >> 2] | 0) | 0; if (((c[k >> 2] | 0) != 0) & ((c[m >> 2] | 0) >>> 0 >= 8)) { f = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; o = ((c[j >> 2] | 0) + 28920) | 0; c[h >> 2] = c[o >> 2]; c[(h + 4) >> 2] = c[(o + 4) >> 2]; c[(h + 8) >> 2] = c[(o + 8) >> 2]; o = zx(f, k, m, n, h) | 0; c[((c[j >> 2] | 0) + 28948) >> 2] = o; if (!(c[((c[j >> 2] | 0) + 28948) >> 2] | 0)) { c[i >> 2] = -64; p = c[i >> 2] | 0; l = g; return p | 0; } } else c[((c[j >> 2] | 0) + 28948) >> 2] = 0; c[((c[j >> 2] | 0) + 28952) >> 2] = c[((c[j >> 2] | 0) + 28948) >> 2]; c[i >> 2] = 0; p = c[i >> 2] | 0; l = g; return p | 0; } function Kx(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = Jx(c[f >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0, 0, 0) | 0; l = e; return d | 0; } function Lx(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[((c[g >> 2] | 0) + 28956) >> 2] = 0; c[j >> 2] = Kx(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; if ($q(c[j >> 2] | 0) | 0) { c[f >> 2] = c[j >> 2]; k = c[f >> 2] | 0; l = e; return k | 0; } else { c[f >> 2] = 5; k = c[f >> 2] | 0; l = e; return k | 0; } return 0; } function Mx(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = Lx(c[d >> 2] | 0, 0, 0) | 0; l = b; return a | 0; } function Nx(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = Mx(c[e >> 2] | 0) | 0; c[((c[e >> 2] | 0) + 28952) >> 2] = c[f >> 2]; l = d; return c[g >> 2] | 0; } function Ox(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; c[((c[d >> 2] | 0) + 28956) >> 2] = 1; c[((c[d >> 2] | 0) + 28988) >> 2] = 0; c[((c[d >> 2] | 0) + 28984) >> 2] = 0; c[((c[d >> 2] | 0) + 28968) >> 2] = 0; c[((c[d >> 2] | 0) + 28992) >> 2] = 0; c[((c[d >> 2] | 0) + 29004) >> 2] = 0; c[((c[d >> 2] | 0) + 29008) >> 2] = 0; l = b; return 5; } function Px(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 48) | 0; g = (f + 40) | 0; h = (f + 24) | 0; i = (f + 16) | 0; j = (f + 36) | 0; k = (f + 8) | 0; m = f; n = (f + 32) | 0; o = h; c[o >> 2] = a; c[(o + 4) >> 2] = b; b = i; c[b >> 2] = d; c[(b + 4) >> 2] = e; e = h; b = c[(e + 4) >> 2] | 0; d = (b >>> 0 < 0) | (((b | 0) == 0) & ((c[e >> 2] | 0) >>> 0 < 131072)); e = h; b = c[(e + 4) >> 2] | 0; b = d ? c[e >> 2] | 0 : 131072; c[j >> 2] = b; b = h; h = dE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, c[j >> 2] | 0, 0) | 0; j = dE(h | 0, y | 0, 16, 0) | 0; h = k; c[h >> 2] = j; c[(h + 4) >> 2] = y; h = i; j = c[(h + 4) >> 2] | 0; b = k; e = c[(b + 4) >> 2] | 0; d = (j >>> 0 < e >>> 0) | ((j | 0) == (e | 0) ? (c[h >> 2] | 0) >>> 0 < (c[b >> 2] | 0) >>> 0 : 0); b = i; i = k; k = d ? c[(b + 4) >> 2] | 0 : c[(i + 4) >> 2] | 0; h = m; c[h >> 2] = d ? c[b >> 2] | 0 : c[i >> 2] | 0; c[(h + 4) >> 2] = k; c[n >> 2] = c[m >> 2]; k = m; if ( 0 != (c[(k + 4) >> 2] | 0) ? 1 : (c[n >> 2] | 0) != (c[k >> 2] | 0) ) { c[g >> 2] = -16; p = c[g >> 2] | 0; l = f; return p | 0; } else { c[g >> 2] = c[n >> 2]; p = c[g >> 2] | 0; l = f; return p | 0; } return 0; } function Qx(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0; e = l; l = (l + 176) | 0; f = (e + 152) | 0; g = (e + 148) | 0; h = (e + 144) | 0; i = (e + 140) | 0; j = (e + 136) | 0; k = (e + 132) | 0; m = (e + 128) | 0; n = (e + 124) | 0; o = (e + 120) | 0; p = (e + 116) | 0; q = (e + 112) | 0; r = (e + 108) | 0; s = (e + 104) | 0; t = (e + 100) | 0; u = (e + 96) | 0; v = (e + 92) | 0; w = (e + 88) | 0; x = (e + 84) | 0; y = (e + 80) | 0; z = (e + 76) | 0; A = (e + 72) | 0; B = (e + 68) | 0; C = (e + 64) | 0; D = (e + 60) | 0; E = (e + 56) | 0; F = (e + 52) | 0; G = (e + 48) | 0; H = (e + 44) | 0; I = (e + 40) | 0; J = (e + 36) | 0; K = (e + 32) | 0; L = (e + 28) | 0; M = (e + 24) | 0; N = (e + 20) | 0; O = (e + 16) | 0; P = (e + 12) | 0; Q = (e + 8) | 0; R = (e + 4) | 0; S = e; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = (c[c[j >> 2] >> 2] | 0) + (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[m >> 2] = (c[c[j >> 2] >> 2] | 0) + (c[((c[j >> 2] | 0) + 4) >> 2] | 0); c[n >> 2] = c[k >> 2]; c[o >> 2] = (c[c[i >> 2] >> 2] | 0) + (c[((c[i >> 2] | 0) + 8) >> 2] | 0); c[p >> 2] = (c[c[i >> 2] >> 2] | 0) + (c[((c[i >> 2] | 0) + 4) >> 2] | 0); c[q >> 2] = c[o >> 2]; c[r >> 2] = 1; if ( (c[((c[j >> 2] | 0) + 8) >> 2] | 0) >>> 0 > (c[((c[j >> 2] | 0) + 4) >> 2] | 0) >>> 0 ) { c[g >> 2] = -72; T = c[g >> 2] | 0; l = e; return T | 0; } if ( (c[((c[i >> 2] | 0) + 8) >> 2] | 0) >>> 0 > (c[((c[i >> 2] | 0) + 4) >> 2] | 0) >>> 0 ) { c[g >> 2] = -70; T = c[g >> 2] | 0; l = e; return T | 0; } a: while (1) { if (!(c[r >> 2] | 0)) { U = 98; break; } switch (c[((c[h >> 2] | 0) + 28956) >> 2] | 0) { case 0: { Ox(c[h >> 2] | 0) | 0; U = 9; break; } case 1: { U = 9; break; } case 2: { U = 64; break; } case 3: { U = 76; break; } case 4: { U = 91; break; } default: { U = 96; break a; } } do { if ((U | 0) == 9) { U = 0; V = c[h >> 2] | 0; if (c[((c[h >> 2] | 0) + 29004) >> 2] | 0) { U = 10; break a; } c[t >> 2] = qq( (V + 28752) | 0, ((c[h >> 2] | 0) + 160092) | 0, c[((c[h >> 2] | 0) + 28992) >> 2] | 0, c[((c[h >> 2] | 0) + 28912) >> 2] | 0 ) | 0; if ($q(c[t >> 2] | 0) | 0) { U = 16; break a; } if (c[t >> 2] | 0) { c[z >> 2] = (c[t >> 2] | 0) - (c[((c[h >> 2] | 0) + 28992) >> 2] | 0); c[A >> 2] = (c[m >> 2] | 0) - (c[n >> 2] | 0); if ((c[z >> 2] | 0) >>> 0 > (c[A >> 2] | 0) >>> 0) { U = 31; break a; } mE( ((c[h >> 2] | 0) + 160092 + (c[((c[h >> 2] | 0) + 28992) >> 2] | 0)) | 0, c[n >> 2] | 0, c[z >> 2] | 0 ) | 0; c[((c[h >> 2] | 0) + 28992) >> 2] = c[t >> 2]; c[n >> 2] = (c[n >> 2] | 0) + (c[z >> 2] | 0); break; } d = ((c[h >> 2] | 0) + 28752) | 0; if ( ( ( ((c[d >> 2] | 0) != 0) | ((c[(d + 4) >> 2] | 0) != 0) ? ((d = ((c[h >> 2] | 0) + 28752 + 8) | 0), ((c[d >> 2] | 0) != 0) | ((c[(d + 4) >> 2] | 0) != 0)) : 0 ) ? ((d = ((c[h >> 2] | 0) + 28752) | 0), (b = c[(d + 4) >> 2] | 0), (0 > b >>> 0) | (0 == (b | 0) ? (((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0) >>> 0 >= (c[d >> 2] | 0) >>> 0 : 0)) : 0 ) ? ((c[B >> 2] = _q( c[k >> 2] | 0, ((c[m >> 2] | 0) - (c[k >> 2] | 0)) | 0 ) | 0), (c[B >> 2] | 0) >>> 0 <= (((c[m >> 2] | 0) - (c[k >> 2] | 0)) | 0) >>> 0) : 0 ) { c[C >> 2] = Dx( c[h >> 2] | 0, c[q >> 2] | 0, ((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0, c[k >> 2] | 0, c[B >> 2] | 0, c[((c[h >> 2] | 0) + 28952) >> 2] | 0 ) | 0; if ($q(c[C >> 2] | 0) | 0) { U = 40; break a; } c[n >> 2] = (c[k >> 2] | 0) + (c[B >> 2] | 0); c[q >> 2] = (c[q >> 2] | 0) + (c[C >> 2] | 0); c[((c[h >> 2] | 0) + 28744) >> 2] = 0; c[((c[h >> 2] | 0) + 28956) >> 2] = 0; c[r >> 2] = 0; break; } c[D >> 2] = cs( c[h >> 2] | 0, c[((c[h >> 2] | 0) + 28952) >> 2] | 0 ) | 0; if ($q(c[D >> 2] | 0) | 0) { U = 43; break a; } d = (((hq(((c[h >> 2] | 0) + 160092) | 0) | 0) & -16) | 0) == 407710288; b = c[h >> 2] | 0; if (d) { d = hq((b + 160092 + 4) | 0) | 0; c[((c[h >> 2] | 0) + 28744) >> 2] = d; c[((c[h >> 2] | 0) + 28804) >> 2] = 7; } else { c[E >> 2] = fs( b, ((c[h >> 2] | 0) + 160092) | 0, c[((c[h >> 2] | 0) + 28992) >> 2] | 0 ) | 0; if ($q(c[E >> 2] | 0) | 0) { U = 47; break a; } c[((c[h >> 2] | 0) + 28744) >> 2] = 3; c[((c[h >> 2] | 0) + 28804) >> 2] = 2; } b = ((c[h >> 2] | 0) + 28752 + 8) | 0; d = c[(b + 4) >> 2] | 0; if ( (d >>> 0 > 0) | (((d | 0) == 0) & ((c[b >> 2] | 0) >>> 0 > 1024)) ) { b = ((c[h >> 2] | 0) + 28752 + 8) | 0; W = c[b >> 2] | 0; X = c[(b + 4) >> 2] | 0; } else { W = 1024; X = 0; } b = ((c[h >> 2] | 0) + 28752 + 8) | 0; c[b >> 2] = W; c[(b + 4) >> 2] = X; b = ((c[h >> 2] | 0) + 28752 + 8) | 0; d = c[(b + 4) >> 2] | 0; if ( (d >>> 0 > 0) | ((d | 0) == 0 ? (c[b >> 2] | 0) >>> 0 > (c[((c[h >> 2] | 0) + 28972) >> 2] | 0) >>> 0 : 0) ) { U = 52; break a; } if ( (c[((c[h >> 2] | 0) + 28752 + 16) >> 2] | 0) >>> 0 > 4 ) Y = c[((c[h >> 2] | 0) + 28752 + 16) >> 2] | 0; else Y = 4; c[F >> 2] = Y; b = ((c[h >> 2] | 0) + 28752 + 8) | 0; d = ((c[h >> 2] | 0) + 28752) | 0; c[G >> 2] = Px( c[b >> 2] | 0, c[(b + 4) >> 2] | 0, c[d >> 2] | 0, c[(d + 4) >> 2] | 0 ) | 0; if ( !((c[((c[h >> 2] | 0) + 28964) >> 2] | 0) >>> 0 >= (c[F >> 2] | 0) >>> 0 ? (c[((c[h >> 2] | 0) + 28980) >> 2] | 0) >>> 0 >= (c[G >> 2] | 0) >>> 0 : 0) ) { c[H >> 2] = (c[F >> 2] | 0) + (c[G >> 2] | 0); if (c[((c[h >> 2] | 0) + 28940) >> 2] | 0) { if ( (c[H >> 2] | 0) >>> 0 > (((c[((c[h >> 2] | 0) + 28940) >> 2] | 0) - 160112) | 0) >>> 0 ) { U = 59; break a; } } else { d = c[((c[h >> 2] | 0) + 28960) >> 2] | 0; b = ((c[h >> 2] | 0) + 28920) | 0; c[f >> 2] = c[b >> 2]; c[(f + 4) >> 2] = c[(b + 4) >> 2]; c[(f + 8) >> 2] = c[(b + 8) >> 2]; Th(d, f); c[((c[h >> 2] | 0) + 28964) >> 2] = 0; c[((c[h >> 2] | 0) + 28980) >> 2] = 0; d = c[H >> 2] | 0; b = ((c[h >> 2] | 0) + 28920) | 0; c[f >> 2] = c[b >> 2]; c[(f + 4) >> 2] = c[(b + 4) >> 2]; c[(f + 8) >> 2] = c[(b + 8) >> 2]; b = Rh(d, f) | 0; c[((c[h >> 2] | 0) + 28960) >> 2] = b; if (!(c[((c[h >> 2] | 0) + 28960) >> 2] | 0)) { U = 61; break a; } } c[((c[h >> 2] | 0) + 28964) >> 2] = c[F >> 2]; c[((c[h >> 2] | 0) + 28976) >> 2] = (c[((c[h >> 2] | 0) + 28960) >> 2] | 0) + (c[((c[h >> 2] | 0) + 28964) >> 2] | 0); c[((c[h >> 2] | 0) + 28980) >> 2] = c[G >> 2]; } c[((c[h >> 2] | 0) + 28956) >> 2] = 2; U = 64; } } while (0); do { if ((U | 0) == 64) { U = 0; c[I >> 2] = vx(c[h >> 2] | 0) | 0; if (!(c[I >> 2] | 0)) { c[((c[h >> 2] | 0) + 28956) >> 2] = 0; c[r >> 2] = 0; break; } if ( (((c[m >> 2] | 0) - (c[n >> 2] | 0)) | 0) >>> 0 < (c[I >> 2] | 0) >>> 0 ) if ((c[n >> 2] | 0) == (c[m >> 2] | 0)) { c[r >> 2] = 0; break; } else { c[((c[h >> 2] | 0) + 28956) >> 2] = 3; U = 76; break; } c[J >> 2] = Tx(c[h >> 2] | 0) | 0; if (c[J >> 2] | 0) Z = 0; else Z = ((c[((c[h >> 2] | 0) + 28980) >> 2] | 0) - (c[((c[h >> 2] | 0) + 28984) >> 2] | 0)) | 0; c[K >> 2] = xx( c[h >> 2] | 0, ((c[((c[h >> 2] | 0) + 28976) >> 2] | 0) + (c[((c[h >> 2] | 0) + 28984) >> 2] | 0)) | 0, Z, c[n >> 2] | 0, c[I >> 2] | 0 ) | 0; if ($q(c[K >> 2] | 0) | 0) { U = 70; break a; } c[n >> 2] = (c[n >> 2] | 0) + (c[I >> 2] | 0); if (((c[K >> 2] | 0) != 0) | ((c[J >> 2] | 0) != 0)) { c[((c[h >> 2] | 0) + 28988) >> 2] = (c[((c[h >> 2] | 0) + 28984) >> 2] | 0) + (c[K >> 2] | 0); c[((c[h >> 2] | 0) + 28956) >> 2] = 4; } } } while (0); do { if ((U | 0) == 76) { U = 0; c[L >> 2] = vx(c[h >> 2] | 0) | 0; c[M >> 2] = (c[L >> 2] | 0) - (c[((c[h >> 2] | 0) + 28968) >> 2] | 0); c[N >> 2] = Tx(c[h >> 2] | 0) | 0; b = c[M >> 2] | 0; if (c[N >> 2] | 0) { if ( b >>> 0 < (((c[m >> 2] | 0) - (c[n >> 2] | 0)) | 0) >>> 0 ) _ = c[M >> 2] | 0; else _ = ((c[m >> 2] | 0) - (c[n >> 2] | 0)) | 0; c[O >> 2] = _; } else { if ( b >>> 0 > (((c[((c[h >> 2] | 0) + 28964) >> 2] | 0) - (c[((c[h >> 2] | 0) + 28968) >> 2] | 0)) | 0) >>> 0 ) { U = 82; break a; } c[O >> 2] = Ux( ((c[((c[h >> 2] | 0) + 28960) >> 2] | 0) + (c[((c[h >> 2] | 0) + 28968) >> 2] | 0)) | 0, c[M >> 2] | 0, c[n >> 2] | 0, ((c[m >> 2] | 0) - (c[n >> 2] | 0)) | 0 ) | 0; } c[n >> 2] = (c[n >> 2] | 0) + (c[O >> 2] | 0); b = ((c[h >> 2] | 0) + 28968) | 0; c[b >> 2] = (c[b >> 2] | 0) + (c[O >> 2] | 0); if ((c[O >> 2] | 0) >>> 0 < (c[M >> 2] | 0) >>> 0) { c[r >> 2] = 0; break; } c[P >> 2] = xx( c[h >> 2] | 0, ((c[((c[h >> 2] | 0) + 28976) >> 2] | 0) + (c[((c[h >> 2] | 0) + 28984) >> 2] | 0)) | 0, ((c[((c[h >> 2] | 0) + 28980) >> 2] | 0) - (c[((c[h >> 2] | 0) + 28984) >> 2] | 0)) | 0, c[((c[h >> 2] | 0) + 28960) >> 2] | 0, c[L >> 2] | 0 ) | 0; if ($q(c[P >> 2] | 0) | 0) { U = 87; break a; } c[((c[h >> 2] | 0) + 28968) >> 2] = 0; b = c[h >> 2] | 0; if (((c[P >> 2] | 0) != 0) | ((c[N >> 2] | 0) != 0)) { c[((c[h >> 2] | 0) + 28988) >> 2] = (c[(b + 28984) >> 2] | 0) + (c[P >> 2] | 0); c[((c[h >> 2] | 0) + 28956) >> 2] = 4; U = 91; break; } else { c[(b + 28956) >> 2] = 2; break; } } } while (0); do { if ((U | 0) == 91) { U = 0; c[Q >> 2] = (c[((c[h >> 2] | 0) + 28988) >> 2] | 0) - (c[((c[h >> 2] | 0) + 28984) >> 2] | 0); c[R >> 2] = Ux( c[q >> 2] | 0, ((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0, ((c[((c[h >> 2] | 0) + 28976) >> 2] | 0) + (c[((c[h >> 2] | 0) + 28984) >> 2] | 0)) | 0, c[Q >> 2] | 0 ) | 0; c[q >> 2] = (c[q >> 2] | 0) + (c[R >> 2] | 0); b = ((c[h >> 2] | 0) + 28984) | 0; c[b >> 2] = (c[b >> 2] | 0) + (c[R >> 2] | 0); if ((c[R >> 2] | 0) != (c[Q >> 2] | 0)) { c[r >> 2] = 0; break; } c[((c[h >> 2] | 0) + 28956) >> 2] = 2; b = ((c[h >> 2] | 0) + 28752) | 0; d = c[(b + 4) >> 2] | 0; if ( (0 < d >>> 0) | (0 == (d | 0) ? (c[((c[h >> 2] | 0) + 28980) >> 2] | 0) >>> 0 < (c[b >> 2] | 0) >>> 0 : 0) ? (((c[((c[h >> 2] | 0) + 28984) >> 2] | 0) + (c[((c[h >> 2] | 0) + 28752 + 16) >> 2] | 0)) | 0) >>> 0 > (c[((c[h >> 2] | 0) + 28980) >> 2] | 0) >>> 0 : 0 ) { c[((c[h >> 2] | 0) + 28988) >> 2] = 0; c[((c[h >> 2] | 0) + 28984) >> 2] = 0; } } } while (0); } switch (U | 0) { case 10: { if (c[(V + 28940) >> 2] | 0) { c[g >> 2] = -64; T = c[g >> 2] | 0; l = e; return T | 0; } c[s >> 2] = Rx( c[((c[h >> 2] | 0) + 28996) >> 2] | 0, c[((c[h >> 2] | 0) + 29004) >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0 ) | 0; if (!(c[s >> 2] | 0)) c[((c[h >> 2] | 0) + 28956) >> 2] = 0; c[g >> 2] = c[s >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } case 16: { c[u >> 2] = iq( c[k >> 2] | 0, ((c[m >> 2] | 0) - (c[k >> 2] | 0)) | 0 ) | 0; if (!(c[u >> 2] | 0)) { c[g >> 2] = c[t >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } if (c[((c[h >> 2] | 0) + 28952) >> 2] | 0) $ = c[ ((c[((c[h >> 2] | 0) + 28952) >> 2] | 0) + 4) >> 2 ] | 0; else $ = 0; c[v >> 2] = $; if (c[((c[h >> 2] | 0) + 28952) >> 2] | 0) aa = c[ ((c[((c[h >> 2] | 0) + 28952) >> 2] | 0) + 8) >> 2 ] | 0; else aa = 0; c[w >> 2] = aa; if (c[((c[h >> 2] | 0) + 28940) >> 2] | 0) { c[g >> 2] = -64; T = c[g >> 2] | 0; l = e; return T | 0; } c[x >> 2] = Sx( ((c[h >> 2] | 0) + 28996) | 0, c[((c[h >> 2] | 0) + 29e3) >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[w >> 2] | 0 ) | 0; if ($q(c[x >> 2] | 0) | 0) { c[g >> 2] = c[x >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } x = c[u >> 2] | 0; c[((c[h >> 2] | 0) + 29e3) >> 2] = x; c[((c[h >> 2] | 0) + 29004) >> 2] = x; c[y >> 2] = Rx( c[((c[h >> 2] | 0) + 28996) >> 2] | 0, c[u >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0 ) | 0; if (!(c[y >> 2] | 0)) c[((c[h >> 2] | 0) + 28956) >> 2] = 0; c[g >> 2] = c[y >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } case 31: { if ((c[A >> 2] | 0) >>> 0 > 0) { mE( ((c[h >> 2] | 0) + 160092 + (c[((c[h >> 2] | 0) + 28992) >> 2] | 0)) | 0, c[n >> 2] | 0, c[A >> 2] | 0 ) | 0; y = ((c[h >> 2] | 0) + 28992) | 0; c[y >> 2] = (c[y >> 2] | 0) + (c[A >> 2] | 0); } c[((c[j >> 2] | 0) + 8) >> 2] = c[((c[j >> 2] | 0) + 4) >> 2]; c[g >> 2] = (6 > (c[t >> 2] | 0) >>> 0 ? 6 : c[t >> 2] | 0) - (c[((c[h >> 2] | 0) + 28992) >> 2] | 0) + 3; T = c[g >> 2] | 0; l = e; return T | 0; } case 40: { c[g >> 2] = c[C >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } case 43: { c[g >> 2] = c[D >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } case 47: { c[g >> 2] = c[E >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } case 52: { c[g >> 2] = -16; T = c[g >> 2] | 0; l = e; return T | 0; } case 59: { c[g >> 2] = -64; T = c[g >> 2] | 0; l = e; return T | 0; } case 61: { c[g >> 2] = -64; T = c[g >> 2] | 0; l = e; return T | 0; } case 70: { c[g >> 2] = c[K >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } case 82: { c[g >> 2] = -20; T = c[g >> 2] | 0; l = e; return T | 0; } case 87: { c[g >> 2] = c[P >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } case 96: { c[g >> 2] = -1; T = c[g >> 2] | 0; l = e; return T | 0; } case 98: { P = ((c[j >> 2] | 0) + 8) | 0; c[P >> 2] = (c[P >> 2] | 0) + ((c[n >> 2] | 0) - (c[k >> 2] | 0)); k = ((c[i >> 2] | 0) + 8) | 0; c[k >> 2] = (c[k >> 2] | 0) + ((c[q >> 2] | 0) - (c[o >> 2] | 0)); c[S >> 2] = vx(c[h >> 2] | 0) | 0; o = c[h >> 2] | 0; if (c[S >> 2] | 0) { q = ((((wx(o) | 0) == 2) & 1) * 3) | 0; c[S >> 2] = (c[S >> 2] | 0) + q; c[S >> 2] = (c[S >> 2] | 0) - (c[((c[h >> 2] | 0) + 28968) >> 2] | 0); c[g >> 2] = c[S >> 2]; T = c[g >> 2] | 0; l = e; return T | 0; } S = (c[((c[h >> 2] | 0) + 29008) >> 2] | 0) != 0; if ( (c[(o + 28988) >> 2] | 0) != (c[((c[h >> 2] | 0) + 28984) >> 2] | 0) ) { if (!S) { o = ((c[j >> 2] | 0) + 8) | 0; c[o >> 2] = (c[o >> 2] | 0) + -1; c[((c[h >> 2] | 0) + 29008) >> 2] = 1; } c[g >> 2] = 1; T = c[g >> 2] | 0; l = e; return T | 0; } do { if (S) { if ( (c[((c[j >> 2] | 0) + 8) >> 2] | 0) >>> 0 < (c[((c[j >> 2] | 0) + 4) >> 2] | 0) >>> 0 ) { o = ((c[j >> 2] | 0) + 8) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; break; } c[((c[h >> 2] | 0) + 28956) >> 2] = 2; c[g >> 2] = 1; T = c[g >> 2] | 0; l = e; return T | 0; } } while (0); c[g >> 2] = 0; T = c[g >> 2] | 0; l = e; return T | 0; } } return 0; } function Rx(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; f = l; l = (l + 128) | 0; g = (f + 112) | 0; h = (f + 108) | 0; i = (f + 104) | 0; j = (f + 100) | 0; k = (f + 96) | 0; m = (f + 92) | 0; n = (f + 88) | 0; o = (f + 84) | 0; p = (f + 80) | 0; q = (f + 76) | 0; r = (f + 72) | 0; s = (f + 68) | 0; t = (f + 64) | 0; u = (f + 60) | 0; v = (f + 56) | 0; w = (f + 52) | 0; x = (f + 48) | 0; y = (f + 44) | 0; z = (f + 40) | 0; A = (f + 36) | 0; B = (f + 32) | 0; C = (f + 28) | 0; D = (f + 24) | 0; E = (f + 20) | 0; F = (f + 16) | 0; G = (f + 12) | 0; H = (f + 8) | 0; I = (f + 4) | 0; J = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; switch (c[i >> 2] | 0) { case 7: { c[E >> 2] = c[h >> 2]; c[F >> 2] = (c[c[k >> 2] >> 2] | 0) + (c[((c[k >> 2] | 0) + 8) >> 2] | 0); c[G >> 2] = (c[((c[k >> 2] | 0) + 4) >> 2] | 0) - (c[((c[k >> 2] | 0) + 8) >> 2] | 0); c[H >> 2] = (c[c[j >> 2] >> 2] | 0) + (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[I >> 2] = (c[((c[j >> 2] | 0) + 4) >> 2] | 0) - (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[J >> 2] = jy(c[E >> 2] | 0, c[H >> 2] | 0, I, c[F >> 2] | 0, G) | 0; F = ((c[j >> 2] | 0) + 8) | 0; c[F >> 2] = (c[F >> 2] | 0) + (c[I >> 2] | 0); I = ((c[k >> 2] | 0) + 8) | 0; c[I >> 2] = (c[I >> 2] | 0) + (c[G >> 2] | 0); c[g >> 2] = c[J >> 2]; K = c[g >> 2] | 0; l = f; return K | 0; } case 6: { c[y >> 2] = c[h >> 2]; c[z >> 2] = (c[c[k >> 2] >> 2] | 0) + (c[((c[k >> 2] | 0) + 8) >> 2] | 0); c[A >> 2] = (c[((c[k >> 2] | 0) + 4) >> 2] | 0) - (c[((c[k >> 2] | 0) + 8) >> 2] | 0); c[B >> 2] = (c[c[j >> 2] >> 2] | 0) + (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[C >> 2] = (c[((c[j >> 2] | 0) + 4) >> 2] | 0) - (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[D >> 2] = iy(c[y >> 2] | 0, c[B >> 2] | 0, C, c[z >> 2] | 0, A) | 0; z = ((c[j >> 2] | 0) + 8) | 0; c[z >> 2] = (c[z >> 2] | 0) + (c[C >> 2] | 0); C = ((c[k >> 2] | 0) + 8) | 0; c[C >> 2] = (c[C >> 2] | 0) + (c[A >> 2] | 0); c[g >> 2] = c[D >> 2]; K = c[g >> 2] | 0; l = f; return K | 0; } case 5: { c[s >> 2] = c[h >> 2]; c[t >> 2] = (c[c[k >> 2] >> 2] | 0) + (c[((c[k >> 2] | 0) + 8) >> 2] | 0); c[u >> 2] = (c[((c[k >> 2] | 0) + 4) >> 2] | 0) - (c[((c[k >> 2] | 0) + 8) >> 2] | 0); c[v >> 2] = (c[c[j >> 2] >> 2] | 0) + (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[w >> 2] = (c[((c[j >> 2] | 0) + 4) >> 2] | 0) - (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[x >> 2] = hy(c[s >> 2] | 0, c[v >> 2] | 0, w, c[t >> 2] | 0, u) | 0; t = ((c[j >> 2] | 0) + 8) | 0; c[t >> 2] = (c[t >> 2] | 0) + (c[w >> 2] | 0); w = ((c[k >> 2] | 0) + 8) | 0; c[w >> 2] = (c[w >> 2] | 0) + (c[u >> 2] | 0); c[g >> 2] = c[x >> 2]; K = c[g >> 2] | 0; l = f; return K | 0; } case 4: { c[m >> 2] = c[h >> 2]; c[n >> 2] = (c[c[k >> 2] >> 2] | 0) + (c[((c[k >> 2] | 0) + 8) >> 2] | 0); c[o >> 2] = (c[((c[k >> 2] | 0) + 4) >> 2] | 0) - (c[((c[k >> 2] | 0) + 8) >> 2] | 0); c[p >> 2] = (c[c[j >> 2] >> 2] | 0) + (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[q >> 2] = (c[((c[j >> 2] | 0) + 4) >> 2] | 0) - (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[r >> 2] = gy(c[m >> 2] | 0, c[p >> 2] | 0, q, c[n >> 2] | 0, o) | 0; n = ((c[j >> 2] | 0) + 8) | 0; c[n >> 2] = (c[n >> 2] | 0) + (c[q >> 2] | 0); q = ((c[k >> 2] | 0) + 8) | 0; c[q >> 2] = (c[q >> 2] | 0) + (c[o >> 2] | 0); c[g >> 2] = c[r >> 2]; K = c[g >> 2] | 0; l = f; return K | 0; } default: { c[g >> 2] = -12; K = c[g >> 2] | 0; l = f; return K | 0; } } return 0; } function Sx(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; g = l; l = (l + 48) | 0; h = (g + 36) | 0; i = (g + 32) | 0; j = (g + 28) | 0; k = (g + 24) | 0; m = (g + 20) | 0; n = (g + 16) | 0; o = (g + 12) | 0; p = (g + 8) | 0; q = (g + 4) | 0; r = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ((c[j >> 2] | 0) != (c[k >> 2] | 0)) Zp(c[c[i >> 2] >> 2] | 0, c[j >> 2] | 0) | 0; switch (c[k >> 2] | 0) { case 7: { if ((c[j >> 2] | 0) != (c[k >> 2] | 0)) s = ay() | 0; else s = c[c[i >> 2] >> 2] | 0; c[r >> 2] = s; if (!(c[r >> 2] | 0)) { c[h >> 2] = -64; t = c[h >> 2] | 0; l = g; return t | 0; } else { by(c[r >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; c[c[i >> 2] >> 2] = c[r >> 2]; c[h >> 2] = 0; t = c[h >> 2] | 0; l = g; return t | 0; } break; } case 6: { if ((c[j >> 2] | 0) != (c[k >> 2] | 0)) u = _x() | 0; else u = c[c[i >> 2] >> 2] | 0; c[q >> 2] = u; if (!(c[q >> 2] | 0)) { c[h >> 2] = -64; t = c[h >> 2] | 0; l = g; return t | 0; } else { $x(c[q >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; c[c[i >> 2] >> 2] = c[q >> 2]; c[h >> 2] = 0; t = c[h >> 2] | 0; l = g; return t | 0; } break; } case 5: { if ((c[j >> 2] | 0) != (c[k >> 2] | 0)) v = Yx() | 0; else v = c[c[i >> 2] >> 2] | 0; c[p >> 2] = v; if (!(c[p >> 2] | 0)) { c[h >> 2] = -64; t = c[h >> 2] | 0; l = g; return t | 0; } else { Zx(c[p >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; c[c[i >> 2] >> 2] = c[p >> 2]; c[h >> 2] = 0; t = c[h >> 2] | 0; l = g; return t | 0; } break; } case 4: { if ((c[j >> 2] | 0) != (c[k >> 2] | 0)) w = Vx() | 0; else w = c[c[i >> 2] >> 2] | 0; c[o >> 2] = w; if (!(c[o >> 2] | 0)) { c[h >> 2] = -64; t = c[h >> 2] | 0; l = g; return t | 0; } else { Wx(c[o >> 2] | 0) | 0; Xx(c[o >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; c[c[i >> 2] >> 2] = c[o >> 2]; c[h >> 2] = 0; t = c[h >> 2] | 0; l = g; return t | 0; } break; } default: { c[h >> 2] = 0; t = c[h >> 2] | 0; l = g; return t | 0; } } return 0; } function Tx(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[((c[d >> 2] | 0) + 28804) >> 2] | 0) == 7) | 0; } function Ux(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? c[h >> 2] | 0 : c[j >> 2] | 0; mE(c[g >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0) | 0; l = f; return c[k >> 2] | 0; } function Vx() { return fy() | 0; } function Wx(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = ey(c[d >> 2] | 0) | 0; l = b; return a | 0; } function Xx(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = dy(c[f >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0) | 0; l = e; return d | 0; } function Yx() { var a = 0, b = 0, d = 0, e = 0, f = 0, g = 0; a = l; l = (l + 16) | 0; b = (a + 4) | 0; d = a; c[d >> 2] = Cy(96) | 0; if (!(c[d >> 2] | 0)) { c[b >> 2] = 0; e = c[b >> 2] | 0; l = a; return e | 0; } else { f = c[d >> 2] | 0; g = (f + 96) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (g | 0)); f = ns() | 0; c[c[d >> 2] >> 2] = f; c[((c[d >> 2] | 0) + 80) >> 2] = 0; c[b >> 2] = c[d >> 2]; e = c[b >> 2] | 0; l = a; return e | 0; } return 0; } function Zx(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[((c[f >> 2] | 0) + 80) >> 2] = 1; c[((c[f >> 2] | 0) + 72) >> 2] = 0; c[((c[f >> 2] | 0) + 68) >> 2] = 0; c[((c[f >> 2] | 0) + 56) >> 2] = 0; c[((c[f >> 2] | 0) + 76) >> 2] = 0; d = Su(c[c[f >> 2] >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0) | 0; l = e; return d | 0; } function _x() { var a = 0, b = 0, d = 0, e = 0, f = 0, g = 0; a = l; l = (l + 16) | 0; b = (a + 4) | 0; d = a; c[d >> 2] = Cy(80) | 0; if (!(c[d >> 2] | 0)) { c[b >> 2] = 0; e = c[b >> 2] | 0; l = a; return e | 0; } else { f = c[d >> 2] | 0; g = (f + 80) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (g | 0)); f = ps() | 0; c[c[d >> 2] >> 2] = f; c[((c[d >> 2] | 0) + 24) >> 2] = 0; c[b >> 2] = c[d >> 2]; e = c[b >> 2] | 0; l = a; return e | 0; } return 0; } function $x(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[((c[f >> 2] | 0) + 24) >> 2] = 1; c[((c[f >> 2] | 0) + 52) >> 2] = 0; c[((c[f >> 2] | 0) + 48) >> 2] = 0; c[((c[f >> 2] | 0) + 36) >> 2] = 0; c[((c[f >> 2] | 0) + 76) >> 2] = 0; d = Jt(c[c[f >> 2] >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0) | 0; l = e; return d | 0; } function ay() { var a = 0, b = 0, d = 0; a = l; l = (l + 16) | 0; b = a; c[b >> 2] = c[2988]; c[(b + 4) >> 2] = c[2989]; c[(b + 8) >> 2] = c[2990]; d = cy(b) | 0; l = a; return d | 0; } function by(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[((c[f >> 2] | 0) + 32) >> 2] = 1; c[((c[f >> 2] | 0) + 60) >> 2] = 0; c[((c[f >> 2] | 0) + 56) >> 2] = 0; c[((c[f >> 2] | 0) + 44) >> 2] = 0; c[((c[f >> 2] | 0) + 88) >> 2] = 0; d = ts(c[c[f >> 2] >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0) | 0; l = e; return d | 0; } function cy(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 32) | 0; d = (b + 8) | 0; e = (b + 4) | 0; f = b; if ((c[a >> 2] | 0) == 0 ? (c[(a + 4) >> 2] | 0) == 0 : 0) { c[a >> 2] = c[2988]; c[(a + 4) >> 2] = c[2989]; c[(a + 8) >> 2] = c[2990]; } if (c[a >> 2] | 0 ? c[(a + 4) >> 2] | 0 : 0) { c[f >> 2] = qc[c[a >> 2] & 63](c[(a + 8) >> 2] | 0, 104) | 0; if (!(c[f >> 2] | 0)) { c[e >> 2] = 0; g = c[e >> 2] | 0; l = b; return g | 0; } h = c[f >> 2] | 0; i = (h + 104) | 0; do { c[h >> 2] = 0; h = (h + 4) | 0; } while ((h | 0) < (i | 0)); h = ((c[f >> 2] | 0) + 92) | 0; c[h >> 2] = c[a >> 2]; c[(h + 4) >> 2] = c[(a + 4) >> 2]; c[(h + 8) >> 2] = c[(a + 8) >> 2]; c[d >> 2] = c[a >> 2]; c[(d + 4) >> 2] = c[(a + 4) >> 2]; c[(d + 8) >> 2] = c[(a + 8) >> 2]; a = Gt(d) | 0; c[c[f >> 2] >> 2] = a; a = c[f >> 2] | 0; if (!(c[c[f >> 2] >> 2] | 0)) { bq(a) | 0; c[e >> 2] = 0; g = c[e >> 2] | 0; l = b; return g | 0; } else { c[(a + 32) >> 2] = 0; c[e >> 2] = c[f >> 2]; g = c[e >> 2] | 0; l = b; return g | 0; } } c[e >> 2] = 0; g = c[e >> 2] | 0; l = b; return g | 0; } function dy(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[((c[f >> 2] | 0) + 72) >> 2] = c[g >> 2]; c[((c[f >> 2] | 0) + 76) >> 2] = c[h >> 2]; l = e; return 0; } function ey(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; c[((c[d >> 2] | 0) + 80) >> 2] = 1; c[((c[d >> 2] | 0) + 76) >> 2] = 0; c[((c[d >> 2] | 0) + 64) >> 2] = 0; c[((c[d >> 2] | 0) + 60) >> 2] = 0; c[((c[d >> 2] | 0) + 48) >> 2] = 0; c[((c[d >> 2] | 0) + 68) >> 2] = 0; a = kw(c[c[d >> 2] >> 2] | 0) | 0; l = b; return a | 0; } function fy() { var a = 0, b = 0, d = 0, e = 0, f = 0, g = 0; a = l; l = (l + 16) | 0; b = (a + 4) | 0; d = a; c[d >> 2] = Cy(96) | 0; if (!(c[d >> 2] | 0)) { c[b >> 2] = 0; e = c[b >> 2] | 0; l = a; return e | 0; } else { f = c[d >> 2] | 0; g = (f + 96) | 0; do { c[f >> 2] = 0; f = (f + 4) | 0; } while ((f | 0) < (g | 0)); f = hw() | 0; c[c[d >> 2] >> 2] = f; c[((c[d >> 2] | 0) + 80) >> 2] = 0; c[b >> 2] = c[d >> 2]; e = c[b >> 2] | 0; l = a; return e | 0; } return 0; } function gy(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 16) | 0; i = (g + 12) | 0; j = (g + 8) | 0; k = (g + 4) | 0; m = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; f = uy( c[h >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; l = g; return f | 0; } function Ko(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; i = l; l = (l + 48) | 0; j = (i + 32) | 0; k = (i + 28) | 0; m = (i + 24) | 0; n = (i + 20) | 0; o = (i + 16) | 0; p = (i + 12) | 0; q = (i + 8) | 0; r = (i + 4) | 0; s = i; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; g = c[m >> 2] | 0; f = c[r >> 2] | 0; r = c[q >> 2] | 0; c[j >> 2] = c[h >> 2]; c[(j + 4) >> 2] = c[(h + 4) >> 2]; c[(j + 8) >> 2] = c[(h + 8) >> 2]; c[s >> 2] = Jo(g, f, j, r, 0) | 0; if (wj(c[s >> 2] | 0) | 0) { c[k >> 2] = c[s >> 2]; t = c[k >> 2] | 0; l = i; return t | 0; } else { c[k >> 2] = Bo( c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0 ) | 0; t = c[k >> 2] | 0; l = i; return t | 0; } return 0; } function Lo(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; h = l; l = (l + 48) | 0; i = (h + 24) | 0; j = (h + 20) | 0; k = (h + 16) | 0; m = (h + 12) | 0; n = (h + 8) | 0; o = (h + 4) | 0; p = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; g = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; o = c[p >> 2] | 0; c[i >> 2] = c[2981]; c[(i + 4) >> 2] = c[2982]; c[(i + 8) >> 2] = c[2983]; p = Ko(g, j, k, m, n, o, i) | 0; l = h; return p | 0; } function Mo() { var a = 0, b = 0, d = 0; a = l; l = (l + 16) | 0; b = a; c[b >> 2] = c[5406]; c[(b + 4) >> 2] = c[5407]; c[(b + 8) >> 2] = c[5408]; d = No(b) | 0; l = a; return d | 0; } function No(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = c[a >> 2]; c[(d + 4) >> 2] = c[(a + 4) >> 2]; c[(d + 8) >> 2] = c[(a + 8) >> 2]; a = nj(d) | 0; l = b; return a | 0; } function Oo(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = qj(c[d >> 2] | 0) | 0; l = b; return a | 0; } function Po() { return 131072; } function Qo() { return ((lj(131072) | 0) + 3 + 4) | 0; } function Ro(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; j = l; l = (l + 144) | 0; k = (j + 40) | 0; m = (j + 32) | 0; n = (j + 28) | 0; o = (j + 24) | 0; p = (j + 20) | 0; q = (j + 16) | 0; r = (j + 12) | 0; s = j; t = (j + 8) | 0; c[n >> 2] = a; c[o >> 2] = b; c[p >> 2] = d; c[q >> 2] = e; c[r >> 2] = f; f = s; c[f >> 2] = h; c[(f + 4) >> 2] = i; i = c[n >> 2] | 0; f = c[o >> 2] | 0; o = c[p >> 2] | 0; p = c[q >> 2] | 0; q = c[r >> 2] | 0; r = s; h = c[r >> 2] | 0; e = c[(r + 4) >> 2] | 0; r = k; d = g; g = (r + 104) | 0; do { c[r >> 2] = c[d >> 2]; r = (r + 4) | 0; d = (d + 4) | 0; } while ((r | 0) < (g | 0)); c[t >> 2] = xo(i, f, o, p, q, k, h, e, 1) | 0; if (wj(c[t >> 2] | 0) | 0) { c[m >> 2] = c[t >> 2]; u = c[m >> 2] | 0; l = j; return u | 0; } else { c[((c[n >> 2] | 0) + 600) >> 2] = 0; c[((c[n >> 2] | 0) + 604) >> 2] = 0; t = s; c[((c[n >> 2] | 0) + 608) >> 2] = (c[((c[n >> 2] | 0) + 232) >> 2] | 0) + ((0 == (c[(t + 4) >> 2] | 0) ? (c[((c[n >> 2] | 0) + 232) >> 2] | 0) == (c[t >> 2] | 0) : 0) & 1); c[((c[n >> 2] | 0) + 624) >> 2] = 0; c[((c[n >> 2] | 0) + 620) >> 2] = 0; c[((c[n >> 2] | 0) + 628) >> 2] = 1; c[((c[n >> 2] | 0) + 632) >> 2] = 0; c[m >> 2] = 0; u = c[m >> 2] | 0; l = j; return u | 0; } return 0; } function So(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; i = l; l = (l + 192) | 0; j = (i + 88) | 0; k = (i + 52) | 0; m = (i + 80) | 0; n = (i + 48) | 0; o = (i + 44) | 0; p = (i + 40) | 0; q = (i + 36) | 0; r = i; s = (i + 8) | 0; c[n >> 2] = a; c[o >> 2] = b; c[p >> 2] = d; c[q >> 2] = e; e = r; c[e >> 2] = g; c[(e + 4) >> 2] = h; if (((c[o >> 2] | 0) != 0) & ((c[p >> 2] | 0) >>> 0 >= 8)) { if (c[((c[n >> 2] | 0) + 364) >> 2] | 0) { c[m >> 2] = -64; t = c[m >> 2] | 0; l = i; return t | 0; } rj(c[((c[n >> 2] | 0) + 636) >> 2] | 0) | 0; h = c[o >> 2] | 0; o = c[p >> 2] | 0; p = (f + 4) | 0; e = ((c[n >> 2] | 0) + 352) | 0; c[k >> 2] = c[p >> 2]; c[(k + 4) >> 2] = c[(p + 4) >> 2]; c[(k + 8) >> 2] = c[(p + 8) >> 2]; c[(k + 12) >> 2] = c[(p + 12) >> 2]; c[(k + 16) >> 2] = c[(p + 16) >> 2]; c[(k + 20) >> 2] = c[(p + 20) >> 2]; c[(k + 24) >> 2] = c[(p + 24) >> 2]; c[j >> 2] = c[e >> 2]; c[(j + 4) >> 2] = c[(e + 4) >> 2]; c[(j + 8) >> 2] = c[(e + 8) >> 2]; e = zj(h, o, 0, 0, k, j) | 0; c[((c[n >> 2] | 0) + 636) >> 2] = e; c[((c[n >> 2] | 0) + 640) >> 2] = c[((c[n >> 2] | 0) + 636) >> 2]; if (!(c[((c[n >> 2] | 0) + 636) >> 2] | 0)) { c[m >> 2] = -64; t = c[m >> 2] | 0; l = i; return t | 0; } } else { if (c[q >> 2] | 0) { e = (f + 4) | 0; Io(s, c[q >> 2] | 0); c[e >> 2] = c[s >> 2]; c[(e + 4) >> 2] = c[(s + 4) >> 2]; c[(e + 8) >> 2] = c[(s + 8) >> 2]; c[(e + 12) >> 2] = c[(s + 12) >> 2]; c[(e + 16) >> 2] = c[(s + 16) >> 2]; c[(e + 20) >> 2] = c[(s + 20) >> 2]; c[(e + 24) >> 2] = c[(s + 24) >> 2]; } rj(c[((c[n >> 2] | 0) + 636) >> 2] | 0) | 0; c[((c[n >> 2] | 0) + 636) >> 2] = 0; c[((c[n >> 2] | 0) + 640) >> 2] = c[q >> 2]; } q = c[n >> 2] | 0; s = c[((c[n >> 2] | 0) + 640) >> 2] | 0; n = r; r = c[n >> 2] | 0; e = c[(n + 4) >> 2] | 0; n = j; k = f; f = (n + 104) | 0; do { c[n >> 2] = c[k >> 2]; n = (n + 4) | 0; k = (k + 4) | 0; } while ((n | 0) < (f | 0)); c[m >> 2] = Ro(q, 0, 0, 0, s, j, r, e) | 0; t = c[m >> 2] | 0; l = i; return t | 0; } function To(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 272) | 0; h = (g + 160) | 0; i = (g + 152) | 0; j = (g + 148) | 0; k = (g + 144) | 0; m = g; n = (g + 40) | 0; o = (g + 8) | 0; c[j >> 2] = a; c[k >> 2] = b; b = m; c[b >> 2] = e; c[(b + 4) >> 2] = f; if (c[k >> 2] | 0) { f = n; b = ((c[j >> 2] | 0) + 12) | 0; e = (f + 104) | 0; do { c[f >> 2] = c[b >> 2]; f = (f + 4) | 0; b = (b + 4) | 0; } while ((f | 0) < (e | 0)); a = (n + 4) | 0; Io(o, c[k >> 2] | 0); c[a >> 2] = c[o >> 2]; c[(a + 4) >> 2] = c[(o + 4) >> 2]; c[(a + 8) >> 2] = c[(o + 8) >> 2]; c[(a + 12) >> 2] = c[(o + 12) >> 2]; c[(a + 16) >> 2] = c[(o + 16) >> 2]; c[(a + 20) >> 2] = c[(o + 20) >> 2]; c[(a + 24) >> 2] = c[(o + 24) >> 2]; o = (n + 32) | 0; c[o >> 2] = c[d >> 2]; c[(o + 4) >> 2] = c[(d + 4) >> 2]; c[(o + 8) >> 2] = c[(d + 8) >> 2]; d = c[j >> 2] | 0; j = c[k >> 2] | 0; k = m; m = c[k >> 2] | 0; o = c[(k + 4) >> 2] | 0; f = h; b = n; e = (f + 104) | 0; do { c[f >> 2] = c[b >> 2]; f = (f + 4) | 0; b = (b + 4) | 0; } while ((f | 0) < (e | 0)); c[i >> 2] = So(d, 0, 0, j, h, m, o) | 0; p = c[i >> 2] | 0; l = g; return p | 0; } else { c[i >> 2] = -32; p = c[i >> 2] | 0; l = g; return p | 0; } return 0; } function Uo(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 32) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[f >> 2] = a; c[g >> 2] = b; b = c[f >> 2] | 0; f = c[g >> 2] | 0; c[e >> 2] = c[5409]; c[(e + 4) >> 2] = c[5410]; c[(e + 8) >> 2] = c[5411]; g = To(b, f, e, -1, -1) | 0; l = d; return g | 0; } function Vo(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 384) | 0; g = (f + 280) | 0; h = (f + 168) | 0; i = (f + 272) | 0; j = (f + 160) | 0; k = (f + 8) | 0; m = f; n = (f + 120) | 0; o = (f + 16) | 0; c[i >> 2] = a; c[j >> 2] = b; b = k; c[b >> 2] = d; c[(b + 4) >> 2] = e; e = k; b = ((c[e >> 2] | 0) == 0) & ((c[(e + 4) >> 2] | 0) == 0); e = k; k = b ? -1 : c[(e + 4) >> 2] | 0; d = m; c[d >> 2] = b ? -1 : c[e >> 2] | 0; c[(d + 4) >> 2] = k; k = m; Ao(n, c[j >> 2] | 0, c[k >> 2] | 0, c[(k + 4) >> 2] | 0, 0); k = h; j = ((c[i >> 2] | 0) + 12) | 0; d = (k + 104) | 0; do { c[k >> 2] = c[j >> 2]; k = (k + 4) | 0; j = (j + 4) | 0; } while ((k | 0) < (d | 0)); k = g; j = n; d = (k + 40) | 0; do { c[k >> 2] = c[j >> 2]; k = (k + 4) | 0; j = (j + 4) | 0; } while ((k | 0) < (d | 0)); zo(o, h, g); h = c[i >> 2] | 0; i = m; m = c[i >> 2] | 0; n = c[(i + 4) >> 2] | 0; k = g; j = o; d = (k + 104) | 0; do { c[k >> 2] = c[j >> 2]; k = (k + 4) | 0; j = (j + 4) | 0; } while ((k | 0) < (d | 0)); j = So(h, 0, 0, 0, g, m, n) | 0; l = f; return j | 0; } function Wo(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Vo(c[e >> 2] | 0, c[f >> 2] | 0, -1, -1) | 0; l = d; return b | 0; } function Xo(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0; f = l; l = (l + 96) | 0; g = (f + 88) | 0; h = (f + 84) | 0; i = (f + 80) | 0; j = (f + 76) | 0; k = (f + 72) | 0; m = (f + 68) | 0; n = (f + 64) | 0; o = (f + 60) | 0; p = (f + 56) | 0; q = (f + 52) | 0; r = (f + 48) | 0; s = (f + 44) | 0; t = (f + 40) | 0; u = (f + 36) | 0; v = (f + 32) | 0; w = (f + 28) | 0; x = (f + 24) | 0; y = (f + 20) | 0; z = (f + 16) | 0; A = (f + 12) | 0; B = (f + 8) | 0; C = (f + 4) | 0; D = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = c[c[j >> 2] >> 2]; c[n >> 2] = (c[m >> 2] | 0) + (c[((c[j >> 2] | 0) + 4) >> 2] | 0); c[o >> 2] = (c[m >> 2] | 0) + (c[((c[j >> 2] | 0) + 8) >> 2] | 0); c[p >> 2] = c[c[i >> 2] >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[((c[i >> 2] | 0) + 4) >> 2] | 0); c[r >> 2] = (c[p >> 2] | 0) + (c[((c[i >> 2] | 0) + 8) >> 2] | 0); c[s >> 2] = 1; a: while (1) { if (!(c[s >> 2] | 0)) { E = 39; break; } b: do { switch (c[((c[h >> 2] | 0) + 628) >> 2] | 0) { case 0: { E = 4; break a; break; } case 1: { if ( ( (c[k >> 2] | 0) == 2 ? ((e = ((c[q >> 2] | 0) - (c[r >> 2] | 0)) | 0), e >>> 0 >= (lj( ((c[n >> 2] | 0) - (c[o >> 2] | 0)) | 0 ) | 0) >>> 0) : 0 ) ? (c[((c[h >> 2] | 0) + 604) >> 2] | 0) == 0 : 0 ) { c[t >> 2] = Bo( c[h >> 2] | 0, c[r >> 2] | 0, ((c[q >> 2] | 0) - (c[r >> 2] | 0)) | 0, c[o >> 2] | 0, ((c[n >> 2] | 0) - (c[o >> 2] | 0)) | 0 ) | 0; if (Ph(c[t >> 2] | 0) | 0) { E = 9; break a; } c[o >> 2] = c[n >> 2]; c[r >> 2] = (c[r >> 2] | 0) + (c[t >> 2] | 0); c[((c[h >> 2] | 0) + 632) >> 2] = 1; jl(c[h >> 2] | 0); c[s >> 2] = 0; break b; } c[u >> 2] = (c[((c[h >> 2] | 0) + 608) >> 2] | 0) - (c[((c[h >> 2] | 0) + 604) >> 2] | 0); c[v >> 2] = Yo( ((c[((c[h >> 2] | 0) + 592) >> 2] | 0) + (c[((c[h >> 2] | 0) + 604) >> 2] | 0)) | 0, c[u >> 2] | 0, c[o >> 2] | 0, ((c[n >> 2] | 0) - (c[o >> 2] | 0)) | 0 ) | 0; e = ((c[h >> 2] | 0) + 604) | 0; c[e >> 2] = (c[e >> 2] | 0) + (c[v >> 2] | 0); c[o >> 2] = (c[o >> 2] | 0) + (c[v >> 2] | 0); if ( (c[k >> 2] | 0) == 0 ? (c[((c[h >> 2] | 0) + 604) >> 2] | 0) >>> 0 < (c[((c[h >> 2] | 0) + 608) >> 2] | 0) >>> 0 : 0 ) { c[s >> 2] = 0; break b; } if ( (c[k >> 2] | 0) == 1 ? (c[((c[h >> 2] | 0) + 604) >> 2] | 0) == (c[((c[h >> 2] | 0) + 600) >> 2] | 0) : 0 ) { c[s >> 2] = 0; break b; } c[y >> 2] = (c[((c[h >> 2] | 0) + 604) >> 2] | 0) - (c[((c[h >> 2] | 0) + 600) >> 2] | 0); c[z >> 2] = (c[q >> 2] | 0) - (c[r >> 2] | 0); if ((c[k >> 2] | 0) == 2) F = (c[o >> 2] | 0) == (c[n >> 2] | 0); else F = 0; c[A >> 2] = F & 1; if ( (c[z >> 2] | 0) >>> 0 >= (lj(c[y >> 2] | 0) | 0) >>> 0 ) c[w >> 2] = c[r >> 2]; else { c[w >> 2] = c[((c[h >> 2] | 0) + 612) >> 2]; c[z >> 2] = c[((c[h >> 2] | 0) + 616) >> 2]; } e = c[h >> 2] | 0; d = c[w >> 2] | 0; b = c[z >> 2] | 0; a = ((c[((c[h >> 2] | 0) + 592) >> 2] | 0) + (c[((c[h >> 2] | 0) + 600) >> 2] | 0)) | 0; G = c[y >> 2] | 0; if (c[A >> 2] | 0) H = Bo(e, d, b, a, G) | 0; else H = vn(e, d, b, a, G) | 0; c[x >> 2] = H; if (Ph(c[x >> 2] | 0) | 0) { E = 26; break a; } c[((c[h >> 2] | 0) + 632) >> 2] = c[A >> 2]; c[((c[h >> 2] | 0) + 608) >> 2] = (c[((c[h >> 2] | 0) + 604) >> 2] | 0) + (c[((c[h >> 2] | 0) + 232) >> 2] | 0); if ( (c[((c[h >> 2] | 0) + 608) >> 2] | 0) >>> 0 > (c[((c[h >> 2] | 0) + 596) >> 2] | 0) >>> 0 ) { c[((c[h >> 2] | 0) + 604) >> 2] = 0; c[((c[h >> 2] | 0) + 608) >> 2] = c[((c[h >> 2] | 0) + 232) >> 2]; } c[((c[h >> 2] | 0) + 600) >> 2] = c[((c[h >> 2] | 0) + 604) >> 2]; G = c[x >> 2] | 0; if ((c[w >> 2] | 0) != (c[r >> 2] | 0)) { c[((c[h >> 2] | 0) + 620) >> 2] = G; c[((c[h >> 2] | 0) + 624) >> 2] = 0; c[((c[h >> 2] | 0) + 628) >> 2] = 2; E = 33; break b; } c[r >> 2] = (c[r >> 2] | 0) + G; if (c[((c[h >> 2] | 0) + 632) >> 2] | 0) { c[s >> 2] = 0; jl(c[h >> 2] | 0); } break; } case 2: { E = 33; break; } default: { } } } while (0); do { if ((E | 0) == 33) { E = 0; c[B >> 2] = (c[((c[h >> 2] | 0) + 620) >> 2] | 0) - (c[((c[h >> 2] | 0) + 624) >> 2] | 0); c[C >> 2] = Yo( c[r >> 2] | 0, ((c[q >> 2] | 0) - (c[r >> 2] | 0)) | 0, ((c[((c[h >> 2] | 0) + 612) >> 2] | 0) + (c[((c[h >> 2] | 0) + 624) >> 2] | 0)) | 0, c[B >> 2] | 0 ) | 0; c[r >> 2] = (c[r >> 2] | 0) + (c[C >> 2] | 0); G = ((c[h >> 2] | 0) + 624) | 0; c[G >> 2] = (c[G >> 2] | 0) + (c[C >> 2] | 0); if ((c[B >> 2] | 0) != (c[C >> 2] | 0)) { c[s >> 2] = 0; break; } c[((c[h >> 2] | 0) + 624) >> 2] = 0; c[((c[h >> 2] | 0) + 620) >> 2] = 0; if (c[((c[h >> 2] | 0) + 632) >> 2] | 0) { c[s >> 2] = 0; jl(c[h >> 2] | 0); break; } else { c[((c[h >> 2] | 0) + 628) >> 2] = 1; break; } } } while (0); } if ((E | 0) == 4) { c[g >> 2] = -62; I = c[g >> 2] | 0; l = f; return I | 0; } else if ((E | 0) == 9) { c[g >> 2] = c[t >> 2]; I = c[g >> 2] | 0; l = f; return I | 0; } else if ((E | 0) == 26) { c[g >> 2] = c[x >> 2]; I = c[g >> 2] | 0; l = f; return I | 0; } else if ((E | 0) == 39) { c[((c[j >> 2] | 0) + 8) >> 2] = (c[o >> 2] | 0) - (c[m >> 2] | 0); c[((c[i >> 2] | 0) + 8) >> 2] = (c[r >> 2] | 0) - (c[p >> 2] | 0); if (c[((c[h >> 2] | 0) + 632) >> 2] | 0) { c[g >> 2] = 0; I = c[g >> 2] | 0; l = f; return I | 0; } c[D >> 2] = (c[((c[h >> 2] | 0) + 608) >> 2] | 0) - (c[((c[h >> 2] | 0) + 604) >> 2] | 0); if (!(c[D >> 2] | 0)) c[D >> 2] = c[((c[h >> 2] | 0) + 232) >> 2]; c[g >> 2] = c[D >> 2]; I = c[g >> 2] | 0; l = f; return I | 0; } return 0; } function Yo(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? c[h >> 2] | 0 : c[j >> 2] | 0; if (!(c[k >> 2] | 0)) { m = c[k >> 2] | 0; l = f; return m | 0; } mE(c[g >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0) | 0; m = c[k >> 2] | 0; l = f; return m | 0; } function Zo(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; if ( (c[((c[h >> 2] | 0) + 8) >> 2] | 0) >>> 0 > (c[((c[h >> 2] | 0) + 4) >> 2] | 0) >>> 0 ) { c[f >> 2] = -1; j = c[f >> 2] | 0; l = e; return j | 0; } if ( (c[((c[i >> 2] | 0) + 8) >> 2] | 0) >>> 0 > (c[((c[i >> 2] | 0) + 4) >> 2] | 0) >>> 0 ) { c[f >> 2] = -1; j = c[f >> 2] | 0; l = e; return j | 0; } else { c[f >> 2] = Xo(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0, 0) | 0; j = c[f >> 2] | 0; l = e; return j | 0; } return 0; } function _o(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; d = l; l = (l + 48) | 0; e = (d + 36) | 0; f = (d + 32) | 0; g = (d + 28) | 0; h = (d + 16) | 0; i = (d + 12) | 0; j = (d + 8) | 0; k = (d + 4) | 0; m = d; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = 0; c[(h + 4) >> 2] = 0; c[(h + 8) >> 2] = 0; if ( (c[((c[g >> 2] | 0) + 8) >> 2] | 0) >>> 0 > (c[((c[g >> 2] | 0) + 4) >> 2] | 0) >>> 0 ) { c[e >> 2] = -1; n = c[e >> 2] | 0; l = d; return n | 0; } c[i >> 2] = Xo(c[f >> 2] | 0, c[g >> 2] | 0, h, 2) | 0; if (wj(c[i >> 2] | 0) | 0) { c[e >> 2] = c[i >> 2]; n = c[e >> 2] | 0; l = d; return n | 0; } c[j >> 2] = c[((c[f >> 2] | 0) + 632) >> 2] | 0 ? 0 : 3; if (c[((c[f >> 2] | 0) + 632) >> 2] | 0) o = 0; else o = c[((c[f >> 2] | 0) + 116 + 32 + 4) >> 2] << 2; c[k >> 2] = o; c[m >> 2] = (c[((c[f >> 2] | 0) + 620) >> 2] | 0) - (c[((c[f >> 2] | 0) + 624) >> 2] | 0) + (c[j >> 2] | 0) + (c[k >> 2] | 0); c[e >> 2] = c[m >> 2]; n = c[e >> 2] | 0; l = d; return n | 0; } function $o(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0; i = l; l = (l + 96) | 0; j = (i + 80) | 0; k = (i + 76) | 0; m = (i + 72) | 0; n = (i + 68) | 0; o = (i + 64) | 0; p = (i + 60) | 0; q = (i + 56) | 0; r = (i + 52) | 0; s = (i + 48) | 0; t = (i + 44) | 0; u = (i + 40) | 0; v = (i + 36) | 0; w = (i + 32) | 0; x = (i + 28) | 0; y = (i + 88) | 0; z = (i + 24) | 0; A = (i + 20) | 0; B = (i + 16) | 0; C = (i + 12) | 0; D = (i + 8) | 0; E = (i + 4) | 0; F = i; G = (i + 84) | 0; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; c[q >> 2] = 0; c[r >> 2] = 0; c[t >> 2] = (c[k >> 2] | 0) + 4; c[u >> 2] = c[t >> 2]; c[x >> 2] = 0; c[v >> 2] = (c[o >> 2] | 0) + (c[x >> 2] << 2); c[x >> 2] = (c[x >> 2] | 0) + 16; c[w >> 2] = (c[o >> 2] | 0) + (c[x >> 2] << 2); c[x >> 2] = (c[x >> 2] | 0) + 64; if ((c[x >> 2] << 2) >>> 0 > (c[p >> 2] | 0) >>> 0) { c[j >> 2] = -44; H = c[j >> 2] | 0; l = i; return H | 0; } c[s >> 2] = fh( c[w >> 2] | 0, 256, c[v >> 2] | 0, r, q, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0; if (ap(c[s >> 2] | 0) | 0) { c[j >> 2] = c[s >> 2]; H = c[j >> 2] | 0; l = i; return H | 0; } bp(y, c[k >> 2] | 0); if ( (c[q >> 2] | 0) >>> 0 > (((d[y >> 0] | 0) + 1) | 0) >>> 0 ) { c[j >> 2] = -44; H = c[j >> 2] | 0; l = i; return H | 0; } a[(y + 1) >> 0] = 0; a[(y + 2) >> 0] = c[q >> 2]; n = c[k >> 2] | 0; a[n >> 0] = a[y >> 0] | 0; a[(n + 1) >> 0] = a[(y + 1) >> 0] | 0; a[(n + 2) >> 0] = a[(y + 2) >> 0] | 0; a[(n + 3) >> 0] = a[(y + 3) >> 0] | 0; c[A >> 2] = 0; c[z >> 2] = 1; while (1) { if ( (c[z >> 2] | 0) >>> 0 >= (((c[q >> 2] | 0) + 1) | 0) >>> 0 ) break; c[B >> 2] = c[A >> 2]; c[A >> 2] = (c[A >> 2] | 0) + (c[((c[v >> 2] | 0) + (c[z >> 2] << 2)) >> 2] << ((c[z >> 2] | 0) - 1)); c[((c[v >> 2] | 0) + (c[z >> 2] << 2)) >> 2] = c[B >> 2]; c[z >> 2] = (c[z >> 2] | 0) + 1; } c[C >> 2] = 0; while (1) { if ((c[C >> 2] | 0) >>> 0 >= (c[r >> 2] | 0) >>> 0) break; c[D >> 2] = d[((c[w >> 2] | 0) + (c[C >> 2] | 0)) >> 0]; c[E >> 2] = (1 << c[D >> 2]) >> 1; a[G >> 0] = c[C >> 2]; a[(G + 1) >> 0] = (c[q >> 2] | 0) + 1 - (c[D >> 2] | 0); c[F >> 2] = c[((c[v >> 2] | 0) + (c[D >> 2] << 2)) >> 2]; while (1) { if ( (c[F >> 2] | 0) >>> 0 >= (((c[((c[v >> 2] | 0) + (c[D >> 2] << 2)) >> 2] | 0) + (c[E >> 2] | 0)) | 0) >>> 0 ) break; z = ((c[u >> 2] | 0) + (c[F >> 2] << 1)) | 0; a[z >> 0] = a[G >> 0] | 0; a[(z + 1) >> 0] = a[(G + 1) >> 0] | 0; c[F >> 2] = (c[F >> 2] | 0) + 1; } z = ((c[v >> 2] | 0) + (c[D >> 2] << 2)) | 0; c[z >> 2] = (c[z >> 2] | 0) + (c[E >> 2] | 0); c[C >> 2] = (c[C >> 2] | 0) + 1; } c[j >> 2] = c[s >> 2]; H = c[j >> 2] | 0; l = i; return H | 0; } function ap(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function bp(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 4) | 0; c[f >> 2] = d; d = c[f >> 2] | 0; a[g >> 0] = a[d >> 0] | 0; a[(g + 1) >> 0] = a[(d + 1) >> 0] | 0; a[(g + 2) >> 0] = a[(d + 2) >> 0] | 0; a[(g + 3) >> 0] = a[(d + 3) >> 0] | 0; a[b >> 0] = a[g >> 0] | 0; a[(b + 1) >> 0] = a[(g + 1) >> 0] | 0; a[(b + 2) >> 0] = a[(g + 2) >> 0] | 0; a[(b + 3) >> 0] = a[(g + 3) >> 0] | 0; l = e; return; } function cp(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; h = l; l = (l + 32) | 0; i = (h + 24) | 0; j = (h + 20) | 0; k = (h + 16) | 0; m = (h + 12) | 0; n = (h + 8) | 0; o = (h + 4) | 0; p = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; g = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; if (c[p >> 2] | 0) { c[i >> 2] = dp(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } else { c[i >> 2] = ep(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } return 0; } function dp(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0; i = l; l = (l + 224) | 0; j = (i + 204) | 0; k = (i + 200) | 0; m = (i + 196) | 0; n = (i + 192) | 0; o = (i + 217) | 0; p = (i + 188) | 0; q = (i + 184) | 0; r = (i + 180) | 0; s = (i + 176) | 0; t = (i + 216) | 0; u = (i + 172) | 0; v = (i + 168) | 0; w = (i + 164) | 0; x = (i + 160) | 0; y = (i + 215) | 0; z = (i + 156) | 0; A = (i + 152) | 0; B = (i + 148) | 0; C = (i + 144) | 0; D = (i + 214) | 0; E = (i + 140) | 0; F = (i + 136) | 0; G = (i + 132) | 0; H = (i + 128) | 0; I = (i + 213) | 0; J = (i + 124) | 0; K = (i + 120) | 0; L = (i + 116) | 0; M = (i + 112) | 0; N = (i + 212) | 0; O = (i + 108) | 0; P = (i + 104) | 0; Q = (i + 100) | 0; R = (i + 96) | 0; S = (i + 92) | 0; T = (i + 84) | 0; U = (i + 80) | 0; V = (i + 76) | 0; W = (i + 72) | 0; X = (i + 68) | 0; Y = (i + 64) | 0; Z = (i + 60) | 0; _ = (i + 56) | 0; $ = (i + 52) | 0; aa = (i + 48) | 0; ba = (i + 28) | 0; ca = (i + 208) | 0; da = (i + 24) | 0; ea = (i + 20) | 0; fa = (i + 16) | 0; ga = (i + 12) | 0; ha = (i + 8) | 0; ia = (i + 4) | 0; ja = i; c[fa >> 2] = b; c[ga >> 2] = e; c[ha >> 2] = f; c[ia >> 2] = g; c[ja >> 2] = h; h = c[ga >> 2] | 0; ga = c[ha >> 2] | 0; ha = c[ia >> 2] | 0; ia = c[ja >> 2] | 0; c[U >> 2] = c[fa >> 2]; c[V >> 2] = h; c[W >> 2] = ga; c[X >> 2] = ha; c[Y >> 2] = ia; c[Z >> 2] = c[U >> 2]; c[_ >> 2] = (c[Z >> 2] | 0) + (c[V >> 2] | 0); c[$ >> 2] = (c[Y >> 2] | 0) + 4; c[aa >> 2] = c[$ >> 2]; bp(ca, c[Y >> 2] | 0); c[da >> 2] = d[(ca + 2) >> 0]; c[ea >> 2] = fp(ba, c[W >> 2] | 0, c[X >> 2] | 0) | 0; if (ap(c[ea >> 2] | 0) | 0) { c[T >> 2] = c[ea >> 2]; ka = c[T >> 2] | 0; l = i; return ka | 0; } ea = c[_ >> 2] | 0; _ = c[aa >> 2] | 0; aa = c[da >> 2] | 0; c[O >> 2] = c[Z >> 2]; c[P >> 2] = ba; c[Q >> 2] = ea; c[R >> 2] = _; c[S >> 2] = aa; c[(i + 88) >> 2] = c[O >> 2]; while (1) { aa = ((gp(c[P >> 2] | 0) | 0) == 0) & 1; if ( !( aa & ((c[O >> 2] | 0) >>> 0 < (((c[Q >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { aa = c[R >> 2] | 0; _ = c[S >> 2] | 0; c[J >> 2] = c[P >> 2]; c[K >> 2] = aa; c[L >> 2] = _; c[M >> 2] = ip(c[J >> 2] | 0, c[L >> 2] | 0) | 0; a[N >> 0] = a[((c[K >> 2] | 0) + (c[M >> 2] << 1)) >> 0] | 0; jp( c[J >> 2] | 0, d[((c[K >> 2] | 0) + (c[M >> 2] << 1) + 1) >> 0] | 0 ); _ = a[N >> 0] | 0; aa = c[O >> 2] | 0; c[O >> 2] = aa + 1; a[aa >> 0] = _; } hp() | 0; _ = c[R >> 2] | 0; aa = c[S >> 2] | 0; c[E >> 2] = c[P >> 2]; c[F >> 2] = _; c[G >> 2] = aa; c[H >> 2] = ip(c[E >> 2] | 0, c[G >> 2] | 0) | 0; a[I >> 0] = a[((c[F >> 2] | 0) + (c[H >> 2] << 1)) >> 0] | 0; jp( c[E >> 2] | 0, d[((c[F >> 2] | 0) + (c[H >> 2] << 1) + 1) >> 0] | 0 ); aa = a[I >> 0] | 0; _ = c[O >> 2] | 0; c[O >> 2] = _ + 1; a[_ >> 0] = aa; if (hp() | 0) { aa = c[R >> 2] | 0; _ = c[S >> 2] | 0; c[z >> 2] = c[P >> 2]; c[A >> 2] = aa; c[B >> 2] = _; c[C >> 2] = ip(c[z >> 2] | 0, c[B >> 2] | 0) | 0; a[D >> 0] = a[((c[A >> 2] | 0) + (c[C >> 2] << 1)) >> 0] | 0; jp( c[z >> 2] | 0, d[((c[A >> 2] | 0) + (c[C >> 2] << 1) + 1) >> 0] | 0 ); _ = a[D >> 0] | 0; aa = c[O >> 2] | 0; c[O >> 2] = aa + 1; a[aa >> 0] = _; } _ = c[R >> 2] | 0; aa = c[S >> 2] | 0; c[u >> 2] = c[P >> 2]; c[v >> 2] = _; c[w >> 2] = aa; c[x >> 2] = ip(c[u >> 2] | 0, c[w >> 2] | 0) | 0; a[y >> 0] = a[((c[v >> 2] | 0) + (c[x >> 2] << 1)) >> 0] | 0; jp( c[u >> 2] | 0, d[((c[v >> 2] | 0) + (c[x >> 2] << 1) + 1) >> 0] | 0 ); aa = a[y >> 0] | 0; _ = c[O >> 2] | 0; c[O >> 2] = _ + 1; a[_ >> 0] = aa; } a: do { if (kp() | 0) while (1) { y = ((gp(c[P >> 2] | 0) | 0) == 0) & 1; if ( !(y & ((c[O >> 2] | 0) >>> 0 < (c[Q >> 2] | 0) >>> 0)) ) break a; y = c[R >> 2] | 0; x = c[S >> 2] | 0; c[p >> 2] = c[P >> 2]; c[q >> 2] = y; c[r >> 2] = x; c[s >> 2] = ip(c[p >> 2] | 0, c[r >> 2] | 0) | 0; a[t >> 0] = a[((c[q >> 2] | 0) + (c[s >> 2] << 1)) >> 0] | 0; jp( c[p >> 2] | 0, d[((c[q >> 2] | 0) + (c[s >> 2] << 1) + 1) >> 0] | 0 ); x = a[t >> 0] | 0; y = c[O >> 2] | 0; c[O >> 2] = y + 1; a[y >> 0] = x; } } while (0); while (1) { if ((c[O >> 2] | 0) >>> 0 >= (c[Q >> 2] | 0) >>> 0) break; t = c[R >> 2] | 0; s = c[S >> 2] | 0; c[j >> 2] = c[P >> 2]; c[k >> 2] = t; c[m >> 2] = s; c[n >> 2] = ip(c[j >> 2] | 0, c[m >> 2] | 0) | 0; a[o >> 0] = a[((c[k >> 2] | 0) + (c[n >> 2] << 1)) >> 0] | 0; jp( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 1) + 1) >> 0] | 0 ); s = a[o >> 0] | 0; t = c[O >> 2] | 0; c[O >> 2] = t + 1; a[t >> 0] = s; } if (lp(ba) | 0) { c[T >> 2] = c[V >> 2]; ka = c[T >> 2] | 0; l = i; return ka | 0; } else { c[T >> 2] = -20; ka = c[T >> 2] | 0; l = i; return ka | 0; } return 0; } function ep(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0; i = l; l = (l + 224) | 0; j = (i + 204) | 0; k = (i + 200) | 0; m = (i + 196) | 0; n = (i + 192) | 0; o = (i + 217) | 0; p = (i + 188) | 0; q = (i + 184) | 0; r = (i + 180) | 0; s = (i + 176) | 0; t = (i + 216) | 0; u = (i + 172) | 0; v = (i + 168) | 0; w = (i + 164) | 0; x = (i + 160) | 0; y = (i + 215) | 0; z = (i + 156) | 0; A = (i + 152) | 0; B = (i + 148) | 0; C = (i + 144) | 0; D = (i + 214) | 0; E = (i + 140) | 0; F = (i + 136) | 0; G = (i + 132) | 0; H = (i + 128) | 0; I = (i + 213) | 0; J = (i + 124) | 0; K = (i + 120) | 0; L = (i + 116) | 0; M = (i + 112) | 0; N = (i + 212) | 0; O = (i + 108) | 0; P = (i + 104) | 0; Q = (i + 100) | 0; R = (i + 96) | 0; S = (i + 92) | 0; T = (i + 84) | 0; U = (i + 80) | 0; V = (i + 76) | 0; W = (i + 72) | 0; X = (i + 68) | 0; Y = (i + 64) | 0; Z = (i + 60) | 0; _ = (i + 56) | 0; $ = (i + 52) | 0; aa = (i + 48) | 0; ba = (i + 28) | 0; ca = (i + 208) | 0; da = (i + 24) | 0; ea = (i + 20) | 0; fa = (i + 16) | 0; ga = (i + 12) | 0; ha = (i + 8) | 0; ia = (i + 4) | 0; ja = i; c[fa >> 2] = b; c[ga >> 2] = e; c[ha >> 2] = f; c[ia >> 2] = g; c[ja >> 2] = h; h = c[ga >> 2] | 0; ga = c[ha >> 2] | 0; ha = c[ia >> 2] | 0; ia = c[ja >> 2] | 0; c[U >> 2] = c[fa >> 2]; c[V >> 2] = h; c[W >> 2] = ga; c[X >> 2] = ha; c[Y >> 2] = ia; c[Z >> 2] = c[U >> 2]; c[_ >> 2] = (c[Z >> 2] | 0) + (c[V >> 2] | 0); c[$ >> 2] = (c[Y >> 2] | 0) + 4; c[aa >> 2] = c[$ >> 2]; bp(ca, c[Y >> 2] | 0); c[da >> 2] = d[(ca + 2) >> 0]; c[ea >> 2] = fp(ba, c[W >> 2] | 0, c[X >> 2] | 0) | 0; if (ap(c[ea >> 2] | 0) | 0) { c[T >> 2] = c[ea >> 2]; ka = c[T >> 2] | 0; l = i; return ka | 0; } ea = c[_ >> 2] | 0; _ = c[aa >> 2] | 0; aa = c[da >> 2] | 0; c[O >> 2] = c[Z >> 2]; c[P >> 2] = ba; c[Q >> 2] = ea; c[R >> 2] = _; c[S >> 2] = aa; c[(i + 88) >> 2] = c[O >> 2]; while (1) { aa = ((gp(c[P >> 2] | 0) | 0) == 0) & 1; if ( !( aa & ((c[O >> 2] | 0) >>> 0 < (((c[Q >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { aa = c[R >> 2] | 0; _ = c[S >> 2] | 0; c[J >> 2] = c[P >> 2]; c[K >> 2] = aa; c[L >> 2] = _; c[M >> 2] = ip(c[J >> 2] | 0, c[L >> 2] | 0) | 0; a[N >> 0] = a[((c[K >> 2] | 0) + (c[M >> 2] << 1)) >> 0] | 0; jp( c[J >> 2] | 0, d[((c[K >> 2] | 0) + (c[M >> 2] << 1) + 1) >> 0] | 0 ); _ = a[N >> 0] | 0; aa = c[O >> 2] | 0; c[O >> 2] = aa + 1; a[aa >> 0] = _; } hp() | 0; _ = c[R >> 2] | 0; aa = c[S >> 2] | 0; c[E >> 2] = c[P >> 2]; c[F >> 2] = _; c[G >> 2] = aa; c[H >> 2] = ip(c[E >> 2] | 0, c[G >> 2] | 0) | 0; a[I >> 0] = a[((c[F >> 2] | 0) + (c[H >> 2] << 1)) >> 0] | 0; jp( c[E >> 2] | 0, d[((c[F >> 2] | 0) + (c[H >> 2] << 1) + 1) >> 0] | 0 ); aa = a[I >> 0] | 0; _ = c[O >> 2] | 0; c[O >> 2] = _ + 1; a[_ >> 0] = aa; if (hp() | 0) { aa = c[R >> 2] | 0; _ = c[S >> 2] | 0; c[z >> 2] = c[P >> 2]; c[A >> 2] = aa; c[B >> 2] = _; c[C >> 2] = ip(c[z >> 2] | 0, c[B >> 2] | 0) | 0; a[D >> 0] = a[((c[A >> 2] | 0) + (c[C >> 2] << 1)) >> 0] | 0; jp( c[z >> 2] | 0, d[((c[A >> 2] | 0) + (c[C >> 2] << 1) + 1) >> 0] | 0 ); _ = a[D >> 0] | 0; aa = c[O >> 2] | 0; c[O >> 2] = aa + 1; a[aa >> 0] = _; } _ = c[R >> 2] | 0; aa = c[S >> 2] | 0; c[u >> 2] = c[P >> 2]; c[v >> 2] = _; c[w >> 2] = aa; c[x >> 2] = ip(c[u >> 2] | 0, c[w >> 2] | 0) | 0; a[y >> 0] = a[((c[v >> 2] | 0) + (c[x >> 2] << 1)) >> 0] | 0; jp( c[u >> 2] | 0, d[((c[v >> 2] | 0) + (c[x >> 2] << 1) + 1) >> 0] | 0 ); aa = a[y >> 0] | 0; _ = c[O >> 2] | 0; c[O >> 2] = _ + 1; a[_ >> 0] = aa; } a: do { if (kp() | 0) while (1) { y = ((gp(c[P >> 2] | 0) | 0) == 0) & 1; if ( !(y & ((c[O >> 2] | 0) >>> 0 < (c[Q >> 2] | 0) >>> 0)) ) break a; y = c[R >> 2] | 0; x = c[S >> 2] | 0; c[p >> 2] = c[P >> 2]; c[q >> 2] = y; c[r >> 2] = x; c[s >> 2] = ip(c[p >> 2] | 0, c[r >> 2] | 0) | 0; a[t >> 0] = a[((c[q >> 2] | 0) + (c[s >> 2] << 1)) >> 0] | 0; jp( c[p >> 2] | 0, d[((c[q >> 2] | 0) + (c[s >> 2] << 1) + 1) >> 0] | 0 ); x = a[t >> 0] | 0; y = c[O >> 2] | 0; c[O >> 2] = y + 1; a[y >> 0] = x; } } while (0); while (1) { if ((c[O >> 2] | 0) >>> 0 >= (c[Q >> 2] | 0) >>> 0) break; t = c[R >> 2] | 0; s = c[S >> 2] | 0; c[j >> 2] = c[P >> 2]; c[k >> 2] = t; c[m >> 2] = s; c[n >> 2] = ip(c[j >> 2] | 0, c[m >> 2] | 0) | 0; a[o >> 0] = a[((c[k >> 2] | 0) + (c[n >> 2] << 1)) >> 0] | 0; jp( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 1) + 1) >> 0] | 0 ); s = a[o >> 0] | 0; t = c[O >> 2] | 0; c[O >> 2] = t + 1; a[t >> 0] = s; } if (lp(ba) | 0) { c[T >> 2] = c[V >> 2]; ka = c[T >> 2] | 0; l = i; return ka | 0; } else { c[T >> 2] = -20; ka = c[T >> 2] | 0; l = i; return ka | 0; } return 0; } function fp(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 4) | 0; k = g; m = (g + 17) | 0; n = (g + 16) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; if ((c[k >> 2] | 0) >>> 0 < 1) { f = c[i >> 2] | 0; c[f >> 2] = 0; c[(f + 4) >> 2] = 0; c[(f + 8) >> 2] = 0; c[(f + 12) >> 2] = 0; c[(f + 16) >> 2] = 0; c[h >> 2] = -72; o = c[h >> 2] | 0; l = g; return o | 0; } c[((c[i >> 2] | 0) + 12) >> 2] = c[j >> 2]; c[((c[i >> 2] | 0) + 16) >> 2] = (c[((c[i >> 2] | 0) + 12) >> 2] | 0) + 4; do { if ((c[k >> 2] | 0) >>> 0 >= 4) { c[((c[i >> 2] | 0) + 8) >> 2] = (c[j >> 2] | 0) + (c[k >> 2] | 0) + -4; f = mp(c[((c[i >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[i >> 2] >> 2] = f; a[m >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[m >> 0] | 0 | 0) p = (8 - (up(d[m >> 0] | 0) | 0)) | 0; else p = 0; c[((c[i >> 2] | 0) + 4) >> 2] = p; if (!(d[m >> 0] | 0)) { c[h >> 2] = -1; o = c[h >> 2] | 0; l = g; return o | 0; } } else { c[((c[i >> 2] | 0) + 8) >> 2] = c[((c[i >> 2] | 0) + 12) >> 2]; c[c[i >> 2] >> 2] = d[c[((c[i >> 2] | 0) + 12) >> 2] >> 0]; switch (c[k >> 2] | 0) { case 7: { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 6) >> 0] | 0) << 16); q = 10; break; } case 6: { q = 10; break; } case 5: { q = 11; break; } case 4: { q = 12; break; } case 3: { q = 13; break; } case 2: { q = 14; break; } default: { } } if ((q | 0) == 10) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 5) >> 0] | 0) << 8); q = 11; } if ((q | 0) == 11) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 4) >> 0] | 0) << 0); q = 12; } if ((q | 0) == 12) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 3) >> 0] | 0) << 24); q = 13; } if ((q | 0) == 13) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 2) >> 0] | 0) << 16); q = 14; } if ((q | 0) == 14) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 1) >> 0] | 0) << 8); } a[n >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[n >> 0] | 0 | 0) r = (8 - (up(d[n >> 0] | 0) | 0)) | 0; else r = 0; c[((c[i >> 2] | 0) + 4) >> 2] = r; if (d[n >> 0] | 0 | 0) { f = ((c[i >> 2] | 0) + 4) | 0; c[f >> 2] = (c[f >> 2] | 0) + ((4 - (c[k >> 2] | 0)) << 3); break; } c[h >> 2] = -20; o = c[h >> 2] | 0; l = g; return o | 0; } } while (0); c[h >> 2] = c[k >> 2]; o = c[h >> 2] | 0; l = g; return o | 0; } function gp(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = (b + 12) | 0; e = (b + 8) | 0; f = (b + 4) | 0; g = b; c[e >> 2] = a; if ((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) { c[d >> 2] = 3; h = c[d >> 2] | 0; l = b; return h | 0; } a = c[e >> 2] | 0; if ( (c[((c[e >> 2] | 0) + 8) >> 2] | 0) >>> 0 >= (c[((c[e >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) { i = ((c[e >> 2] | 0) + 8) | 0; c[i >> 2] = (c[i >> 2] | 0) + (0 - ((c[(a + 4) >> 2] | 0) >>> 3)); i = ((c[e >> 2] | 0) + 4) | 0; c[i >> 2] = c[i >> 2] & 7; i = mp(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = i; c[d >> 2] = 0; h = c[d >> 2] | 0; l = b; return h | 0; } i = c[((c[e >> 2] | 0) + 4) >> 2] | 0; if ( (c[(a + 8) >> 2] | 0) != (c[((c[e >> 2] | 0) + 12) >> 2] | 0) ) { c[f >> 2] = i >>> 3; c[g >> 2] = 0; if ( (((c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (0 - (c[f >> 2] | 0))) | 0) >>> 0 < (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 ) { c[f >> 2] = (c[((c[e >> 2] | 0) + 8) >> 2] | 0) - (c[((c[e >> 2] | 0) + 12) >> 2] | 0); c[g >> 2] = 1; } a = ((c[e >> 2] | 0) + 8) | 0; c[a >> 2] = (c[a >> 2] | 0) + (0 - (c[f >> 2] | 0)); a = ((c[e >> 2] | 0) + 4) | 0; c[a >> 2] = (c[a >> 2] | 0) - (c[f >> 2] << 3); f = mp(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = f; c[d >> 2] = c[g >> 2]; h = c[d >> 2] | 0; l = b; return h | 0; } if (i >>> 0 < 32) { c[d >> 2] = 1; h = c[d >> 2] | 0; l = b; return h | 0; } else { c[d >> 2] = 2; h = c[d >> 2] | 0; l = b; return h | 0; } return 0; } function hp() { return 0; } function ip(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( ((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> ((32 - (c[f >> 2] | 0)) & 31)) | 0 ); } function jp(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ((c[e >> 2] | 0) + 4) | 0; c[b >> 2] = (c[b >> 2] | 0) + (c[f >> 2] | 0); l = d; return; } function kp() { return 1; } function lp(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; if ( (c[((c[d >> 2] | 0) + 8) >> 2] | 0) != (c[((c[d >> 2] | 0) + 12) >> 2] | 0) ) { e = 0; f = e & 1; l = b; return f | 0; } e = (c[((c[d >> 2] | 0) + 4) >> 2] | 0) == 32; f = e & 1; l = b; return f | 0; } function mp(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (kp() | 0) != 0; f = c[e >> 2] | 0; if (a) { c[d >> 2] = np(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } else { a = op(f) | 0; c[d >> 2] = a; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function np(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (pp() | 0) != 0; f = sp(c[e >> 2] | 0) | 0; if (a) { c[d >> 2] = f; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = tp(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function op(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = (pp() | 0) != 0; f = qp(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = rp(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function pp() { return d[11936] | 0 | 0; } function qp(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; e = a; f = (a + 4) | 0; y = d[f >> 0] | (d[(f + 1) >> 0] << 8) | (d[(f + 2) >> 0] << 16) | (d[(f + 3) >> 0] << 24); l = b; return ( d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24) | 0 ); } function rp(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function sp(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function tp(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function up(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function vp(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; h = l; l = (l + 32) | 0; i = (h + 24) | 0; j = (h + 20) | 0; k = (h + 16) | 0; m = (h + 12) | 0; n = (h + 8) | 0; o = (h + 4) | 0; p = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; g = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; if (c[p >> 2] | 0) { c[i >> 2] = wp(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } else { c[i >> 2] = xp(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } return 0; } function wp(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0, hc = 0, ic = 0, jc = 0, kc = 0, lc = 0, mc = 0, nc = 0, oc = 0, pc = 0, qc = 0, rc = 0, sc = 0, tc = 0, uc = 0, vc = 0, wc = 0, xc = 0, yc = 0, zc = 0, Ac = 0, Bc = 0, Cc = 0, Dc = 0, Ec = 0, Fc = 0, Gc = 0, Hc = 0, Ic = 0, Jc = 0, Kc = 0, Lc = 0, Mc = 0, Nc = 0, Oc = 0, Pc = 0, Qc = 0, Rc = 0, Sc = 0, Tc = 0, Uc = 0, Vc = 0, Wc = 0, Xc = 0, Yc = 0, Zc = 0, _c = 0, $c = 0, ad = 0, bd = 0, cd = 0, dd = 0, ed = 0, fd = 0, gd = 0, hd = 0, id = 0, jd = 0, kd = 0, ld = 0, md = 0, nd = 0, od = 0, pd = 0, qd = 0, rd = 0, sd = 0, td = 0, ud = 0, vd = 0, wd = 0, xd = 0, yd = 0, zd = 0, Ad = 0, Bd = 0, Cd = 0, Dd = 0, Ed = 0, Fd = 0, Gd = 0, Hd = 0, Id = 0, Jd = 0, Kd = 0, Ld = 0, Md = 0, Nd = 0, Od = 0, Pd = 0, Qd = 0, Rd = 0, Sd = 0, Td = 0, Ud = 0, Vd = 0, Wd = 0, Xd = 0, Yd = 0, Zd = 0, _d = 0, $d = 0, ae = 0, be = 0, ce = 0, de = 0, ee = 0, fe = 0, ge = 0, he = 0, ie = 0; i = l; l = (l + 1024) | 0; j = (i + 968) | 0; k = (i + 964) | 0; m = (i + 960) | 0; n = (i + 956) | 0; o = (i + 1015) | 0; p = (i + 952) | 0; q = (i + 948) | 0; r = (i + 944) | 0; s = (i + 940) | 0; t = (i + 1014) | 0; u = (i + 936) | 0; v = (i + 932) | 0; w = (i + 928) | 0; x = (i + 924) | 0; y = (i + 1013) | 0; z = (i + 920) | 0; A = (i + 916) | 0; B = (i + 912) | 0; C = (i + 908) | 0; D = (i + 1012) | 0; E = (i + 904) | 0; F = (i + 900) | 0; G = (i + 896) | 0; H = (i + 892) | 0; I = (i + 1011) | 0; J = (i + 888) | 0; K = (i + 884) | 0; L = (i + 880) | 0; M = (i + 876) | 0; N = (i + 1010) | 0; O = (i + 872) | 0; P = (i + 868) | 0; Q = (i + 864) | 0; R = (i + 860) | 0; S = (i + 856) | 0; T = (i + 852) | 0; U = (i + 848) | 0; V = (i + 844) | 0; W = (i + 840) | 0; X = (i + 836) | 0; Y = (i + 1009) | 0; Z = (i + 832) | 0; _ = (i + 828) | 0; $ = (i + 824) | 0; aa = (i + 820) | 0; ba = (i + 1008) | 0; ca = (i + 816) | 0; da = (i + 812) | 0; ea = (i + 808) | 0; fa = (i + 804) | 0; ga = (i + 1007) | 0; ha = (i + 800) | 0; ia = (i + 796) | 0; ja = (i + 792) | 0; ka = (i + 788) | 0; la = (i + 1006) | 0; ma = (i + 784) | 0; na = (i + 780) | 0; oa = (i + 776) | 0; pa = (i + 772) | 0; qa = (i + 1005) | 0; ra = (i + 768) | 0; sa = (i + 764) | 0; ta = (i + 760) | 0; ua = (i + 756) | 0; va = (i + 1004) | 0; wa = (i + 752) | 0; xa = (i + 748) | 0; ya = (i + 744) | 0; za = (i + 740) | 0; Aa = (i + 736) | 0; Ba = (i + 732) | 0; Ca = (i + 728) | 0; Da = (i + 724) | 0; Ea = (i + 720) | 0; Fa = (i + 716) | 0; Ga = (i + 1003) | 0; Ha = (i + 712) | 0; Ia = (i + 708) | 0; Ja = (i + 704) | 0; Ka = (i + 700) | 0; La = (i + 1002) | 0; Ma = (i + 696) | 0; Na = (i + 692) | 0; Oa = (i + 688) | 0; Pa = (i + 684) | 0; Qa = (i + 1001) | 0; Ra = (i + 680) | 0; Sa = (i + 676) | 0; Ta = (i + 672) | 0; Ua = (i + 668) | 0; Va = (i + 1e3) | 0; Wa = (i + 664) | 0; Xa = (i + 660) | 0; Ya = (i + 656) | 0; Za = (i + 652) | 0; _a = (i + 999) | 0; $a = (i + 648) | 0; ab = (i + 644) | 0; bb = (i + 640) | 0; cb = (i + 636) | 0; db = (i + 998) | 0; eb = (i + 632) | 0; fb = (i + 628) | 0; gb = (i + 624) | 0; hb = (i + 620) | 0; ib = (i + 616) | 0; jb = (i + 612) | 0; kb = (i + 608) | 0; lb = (i + 604) | 0; mb = (i + 600) | 0; nb = (i + 596) | 0; ob = (i + 997) | 0; pb = (i + 592) | 0; qb = (i + 588) | 0; rb = (i + 584) | 0; sb = (i + 580) | 0; tb = (i + 996) | 0; ub = (i + 576) | 0; vb = (i + 572) | 0; wb = (i + 568) | 0; xb = (i + 564) | 0; yb = (i + 995) | 0; zb = (i + 560) | 0; Ab = (i + 556) | 0; Bb = (i + 552) | 0; Cb = (i + 548) | 0; Db = (i + 994) | 0; Eb = (i + 544) | 0; Fb = (i + 540) | 0; Gb = (i + 536) | 0; Hb = (i + 532) | 0; Ib = (i + 993) | 0; Jb = (i + 528) | 0; Kb = (i + 524) | 0; Lb = (i + 520) | 0; Mb = (i + 516) | 0; Nb = (i + 992) | 0; Ob = (i + 512) | 0; Pb = (i + 508) | 0; Qb = (i + 504) | 0; Rb = (i + 500) | 0; Sb = (i + 496) | 0; Tb = (i + 492) | 0; Ub = (i + 488) | 0; Vb = (i + 484) | 0; Wb = (i + 480) | 0; Xb = (i + 476) | 0; Yb = (i + 991) | 0; Zb = (i + 472) | 0; _b = (i + 468) | 0; $b = (i + 464) | 0; ac = (i + 460) | 0; bc = (i + 990) | 0; cc = (i + 456) | 0; dc = (i + 452) | 0; ec = (i + 448) | 0; fc = (i + 444) | 0; gc = (i + 989) | 0; hc = (i + 440) | 0; ic = (i + 436) | 0; jc = (i + 432) | 0; kc = (i + 428) | 0; lc = (i + 988) | 0; mc = (i + 424) | 0; nc = (i + 420) | 0; oc = (i + 416) | 0; pc = (i + 412) | 0; qc = (i + 987) | 0; rc = (i + 408) | 0; sc = (i + 404) | 0; tc = (i + 400) | 0; uc = (i + 396) | 0; vc = (i + 986) | 0; wc = (i + 392) | 0; xc = (i + 388) | 0; yc = (i + 384) | 0; zc = (i + 380) | 0; Ac = (i + 985) | 0; Bc = (i + 376) | 0; Cc = (i + 372) | 0; Dc = (i + 368) | 0; Ec = (i + 364) | 0; Fc = (i + 984) | 0; Gc = (i + 360) | 0; Hc = (i + 356) | 0; Ic = (i + 352) | 0; Jc = (i + 348) | 0; Kc = (i + 983) | 0; Lc = (i + 344) | 0; Mc = (i + 340) | 0; Nc = (i + 336) | 0; Oc = (i + 332) | 0; Pc = (i + 982) | 0; Qc = (i + 328) | 0; Rc = (i + 324) | 0; Sc = (i + 320) | 0; Tc = (i + 316) | 0; Uc = (i + 981) | 0; Vc = (i + 312) | 0; Wc = (i + 308) | 0; Xc = (i + 304) | 0; Yc = (i + 300) | 0; Zc = (i + 980) | 0; _c = (i + 296) | 0; $c = (i + 292) | 0; ad = (i + 288) | 0; bd = (i + 284) | 0; cd = (i + 979) | 0; dd = (i + 280) | 0; ed = (i + 276) | 0; fd = (i + 272) | 0; gd = (i + 268) | 0; hd = (i + 978) | 0; id = (i + 264) | 0; jd = (i + 260) | 0; kd = (i + 256) | 0; ld = (i + 252) | 0; md = (i + 977) | 0; nd = (i + 248) | 0; od = (i + 244) | 0; pd = (i + 240) | 0; qd = (i + 236) | 0; rd = (i + 976) | 0; sd = (i + 232) | 0; td = (i + 228) | 0; ud = (i + 224) | 0; vd = (i + 220) | 0; wd = (i + 216) | 0; xd = (i + 212) | 0; yd = (i + 208) | 0; zd = (i + 204) | 0; Ad = (i + 200) | 0; Bd = (i + 196) | 0; Cd = (i + 192) | 0; Dd = (i + 172) | 0; Ed = (i + 152) | 0; Fd = (i + 132) | 0; Gd = (i + 112) | 0; Hd = (i + 108) | 0; Id = (i + 104) | 0; Jd = (i + 100) | 0; Kd = (i + 96) | 0; Ld = (i + 92) | 0; Md = (i + 88) | 0; Nd = (i + 84) | 0; Od = (i + 80) | 0; Pd = (i + 76) | 0; Qd = (i + 72) | 0; Rd = (i + 68) | 0; Sd = (i + 64) | 0; Td = (i + 60) | 0; Ud = (i + 56) | 0; Vd = (i + 52) | 0; Wd = (i + 48) | 0; Xd = (i + 44) | 0; Yd = (i + 972) | 0; Zd = (i + 40) | 0; _d = (i + 36) | 0; $d = (i + 32) | 0; ae = (i + 28) | 0; be = (i + 24) | 0; ce = (i + 20) | 0; de = (i + 16) | 0; ee = (i + 12) | 0; fe = (i + 8) | 0; ge = (i + 4) | 0; he = i; c[de >> 2] = b; c[ee >> 2] = e; c[fe >> 2] = f; c[ge >> 2] = g; c[he >> 2] = h; h = c[ee >> 2] | 0; ee = c[fe >> 2] | 0; fe = c[ge >> 2] | 0; ge = c[he >> 2] | 0; c[td >> 2] = c[de >> 2]; c[ud >> 2] = h; c[vd >> 2] = ee; c[wd >> 2] = fe; c[xd >> 2] = ge; if ((c[wd >> 2] | 0) >>> 0 < 10) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[yd >> 2] = c[vd >> 2]; c[zd >> 2] = c[td >> 2]; c[Ad >> 2] = (c[zd >> 2] | 0) + (c[ud >> 2] | 0); c[Bd >> 2] = (c[xd >> 2] | 0) + 4; c[Cd >> 2] = c[Bd >> 2]; c[Hd >> 2] = (yp(c[yd >> 2] | 0) | 0) & 65535; c[Id >> 2] = (yp(((c[yd >> 2] | 0) + 2) | 0) | 0) & 65535; c[Jd >> 2] = (yp(((c[yd >> 2] | 0) + 4) | 0) | 0) & 65535; c[Kd >> 2] = (c[wd >> 2] | 0) - ((c[Hd >> 2] | 0) + (c[Id >> 2] | 0) + (c[Jd >> 2] | 0) + 6); c[Ld >> 2] = (c[yd >> 2] | 0) + 6; c[Md >> 2] = (c[Ld >> 2] | 0) + (c[Hd >> 2] | 0); c[Nd >> 2] = (c[Md >> 2] | 0) + (c[Id >> 2] | 0); c[Od >> 2] = (c[Nd >> 2] | 0) + (c[Jd >> 2] | 0); c[Pd >> 2] = (((((c[ud >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[Qd >> 2] = (c[zd >> 2] | 0) + (c[Pd >> 2] | 0); c[Rd >> 2] = (c[Qd >> 2] | 0) + (c[Pd >> 2] | 0); c[Sd >> 2] = (c[Rd >> 2] | 0) + (c[Pd >> 2] | 0); c[Td >> 2] = c[zd >> 2]; c[Ud >> 2] = c[Qd >> 2]; c[Vd >> 2] = c[Rd >> 2]; c[Wd >> 2] = c[Sd >> 2]; c[Xd >> 2] = 0; bp(Yd, c[xd >> 2] | 0); c[Zd >> 2] = d[(Yd + 2) >> 0]; if ((c[Kd >> 2] | 0) >>> 0 > (c[wd >> 2] | 0) >>> 0) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[_d >> 2] = fp(Dd, c[Ld >> 2] | 0, c[Hd >> 2] | 0) | 0; if (ap(c[_d >> 2] | 0) | 0) { c[sd >> 2] = c[_d >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[$d >> 2] = fp(Ed, c[Md >> 2] | 0, c[Id >> 2] | 0) | 0; if (ap(c[$d >> 2] | 0) | 0) { c[sd >> 2] = c[$d >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[ae >> 2] = fp(Fd, c[Nd >> 2] | 0, c[Jd >> 2] | 0) | 0; if (ap(c[ae >> 2] | 0) | 0) { c[sd >> 2] = c[ae >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[be >> 2] = fp(Gd, c[Od >> 2] | 0, c[Kd >> 2] | 0) | 0; if (ap(c[be >> 2] | 0) | 0) { c[sd >> 2] = c[be >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } be = gp(Dd) | 0; Kd = be | (gp(Ed) | 0); be = Kd | (gp(Fd) | 0); c[Xd >> 2] = be | (gp(Gd) | 0); while (1) { if (c[Xd >> 2] | 0) break; if ( (c[Wd >> 2] | 0) >>> 0 >= (((c[Ad >> 2] | 0) + -3) | 0) >>> 0 ) break; if (hp() | 0) { be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[nd >> 2] = Dd; c[od >> 2] = be; c[pd >> 2] = Kd; c[qd >> 2] = ip(c[nd >> 2] | 0, c[pd >> 2] | 0) | 0; a[rd >> 0] = a[((c[od >> 2] | 0) + (c[qd >> 2] << 1)) >> 0] | 0; jp( c[nd >> 2] | 0, d[((c[od >> 2] | 0) + (c[qd >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[rd >> 0] | 0; be = c[Td >> 2] | 0; c[Td >> 2] = be + 1; a[be >> 0] = Kd; } if (hp() | 0) { Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[id >> 2] = Ed; c[jd >> 2] = Kd; c[kd >> 2] = be; c[ld >> 2] = ip(c[id >> 2] | 0, c[kd >> 2] | 0) | 0; a[md >> 0] = a[((c[jd >> 2] | 0) + (c[ld >> 2] << 1)) >> 0] | 0; jp( c[id >> 2] | 0, d[((c[jd >> 2] | 0) + (c[ld >> 2] << 1) + 1) >> 0] | 0 ); be = a[md >> 0] | 0; Kd = c[Ud >> 2] | 0; c[Ud >> 2] = Kd + 1; a[Kd >> 0] = be; } if (hp() | 0) { be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[dd >> 2] = Fd; c[ed >> 2] = be; c[fd >> 2] = Kd; c[gd >> 2] = ip(c[dd >> 2] | 0, c[fd >> 2] | 0) | 0; a[hd >> 0] = a[((c[ed >> 2] | 0) + (c[gd >> 2] << 1)) >> 0] | 0; jp( c[dd >> 2] | 0, d[((c[ed >> 2] | 0) + (c[gd >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[hd >> 0] | 0; be = c[Vd >> 2] | 0; c[Vd >> 2] = be + 1; a[be >> 0] = Kd; } if (hp() | 0) { Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[_c >> 2] = Gd; c[$c >> 2] = Kd; c[ad >> 2] = be; c[bd >> 2] = ip(c[_c >> 2] | 0, c[ad >> 2] | 0) | 0; a[cd >> 0] = a[((c[$c >> 2] | 0) + (c[bd >> 2] << 1)) >> 0] | 0; jp( c[_c >> 2] | 0, d[((c[$c >> 2] | 0) + (c[bd >> 2] << 1) + 1) >> 0] | 0 ); be = a[cd >> 0] | 0; Kd = c[Wd >> 2] | 0; c[Wd >> 2] = Kd + 1; a[Kd >> 0] = be; } hp() | 0; be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[Vc >> 2] = Dd; c[Wc >> 2] = be; c[Xc >> 2] = Kd; c[Yc >> 2] = ip(c[Vc >> 2] | 0, c[Xc >> 2] | 0) | 0; a[Zc >> 0] = a[((c[Wc >> 2] | 0) + (c[Yc >> 2] << 1)) >> 0] | 0; jp( c[Vc >> 2] | 0, d[((c[Wc >> 2] | 0) + (c[Yc >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[Zc >> 0] | 0; be = c[Td >> 2] | 0; c[Td >> 2] = be + 1; a[be >> 0] = Kd; hp() | 0; Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[Qc >> 2] = Ed; c[Rc >> 2] = Kd; c[Sc >> 2] = be; c[Tc >> 2] = ip(c[Qc >> 2] | 0, c[Sc >> 2] | 0) | 0; a[Uc >> 0] = a[((c[Rc >> 2] | 0) + (c[Tc >> 2] << 1)) >> 0] | 0; jp( c[Qc >> 2] | 0, d[((c[Rc >> 2] | 0) + (c[Tc >> 2] << 1) + 1) >> 0] | 0 ); be = a[Uc >> 0] | 0; Kd = c[Ud >> 2] | 0; c[Ud >> 2] = Kd + 1; a[Kd >> 0] = be; hp() | 0; be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[Lc >> 2] = Fd; c[Mc >> 2] = be; c[Nc >> 2] = Kd; c[Oc >> 2] = ip(c[Lc >> 2] | 0, c[Nc >> 2] | 0) | 0; a[Pc >> 0] = a[((c[Mc >> 2] | 0) + (c[Oc >> 2] << 1)) >> 0] | 0; jp( c[Lc >> 2] | 0, d[((c[Mc >> 2] | 0) + (c[Oc >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[Pc >> 0] | 0; be = c[Vd >> 2] | 0; c[Vd >> 2] = be + 1; a[be >> 0] = Kd; hp() | 0; Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[Gc >> 2] = Gd; c[Hc >> 2] = Kd; c[Ic >> 2] = be; c[Jc >> 2] = ip(c[Gc >> 2] | 0, c[Ic >> 2] | 0) | 0; a[Kc >> 0] = a[((c[Hc >> 2] | 0) + (c[Jc >> 2] << 1)) >> 0] | 0; jp( c[Gc >> 2] | 0, d[((c[Hc >> 2] | 0) + (c[Jc >> 2] << 1) + 1) >> 0] | 0 ); be = a[Kc >> 0] | 0; Kd = c[Wd >> 2] | 0; c[Wd >> 2] = Kd + 1; a[Kd >> 0] = be; if (hp() | 0) { be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[Bc >> 2] = Dd; c[Cc >> 2] = be; c[Dc >> 2] = Kd; c[Ec >> 2] = ip(c[Bc >> 2] | 0, c[Dc >> 2] | 0) | 0; a[Fc >> 0] = a[((c[Cc >> 2] | 0) + (c[Ec >> 2] << 1)) >> 0] | 0; jp( c[Bc >> 2] | 0, d[((c[Cc >> 2] | 0) + (c[Ec >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[Fc >> 0] | 0; be = c[Td >> 2] | 0; c[Td >> 2] = be + 1; a[be >> 0] = Kd; } if (hp() | 0) { Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[wc >> 2] = Ed; c[xc >> 2] = Kd; c[yc >> 2] = be; c[zc >> 2] = ip(c[wc >> 2] | 0, c[yc >> 2] | 0) | 0; a[Ac >> 0] = a[((c[xc >> 2] | 0) + (c[zc >> 2] << 1)) >> 0] | 0; jp( c[wc >> 2] | 0, d[((c[xc >> 2] | 0) + (c[zc >> 2] << 1) + 1) >> 0] | 0 ); be = a[Ac >> 0] | 0; Kd = c[Ud >> 2] | 0; c[Ud >> 2] = Kd + 1; a[Kd >> 0] = be; } if (hp() | 0) { be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[rc >> 2] = Fd; c[sc >> 2] = be; c[tc >> 2] = Kd; c[uc >> 2] = ip(c[rc >> 2] | 0, c[tc >> 2] | 0) | 0; a[vc >> 0] = a[((c[sc >> 2] | 0) + (c[uc >> 2] << 1)) >> 0] | 0; jp( c[rc >> 2] | 0, d[((c[sc >> 2] | 0) + (c[uc >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[vc >> 0] | 0; be = c[Vd >> 2] | 0; c[Vd >> 2] = be + 1; a[be >> 0] = Kd; } if (hp() | 0) { Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[mc >> 2] = Gd; c[nc >> 2] = Kd; c[oc >> 2] = be; c[pc >> 2] = ip(c[mc >> 2] | 0, c[oc >> 2] | 0) | 0; a[qc >> 0] = a[((c[nc >> 2] | 0) + (c[pc >> 2] << 1)) >> 0] | 0; jp( c[mc >> 2] | 0, d[((c[nc >> 2] | 0) + (c[pc >> 2] << 1) + 1) >> 0] | 0 ); be = a[qc >> 0] | 0; Kd = c[Wd >> 2] | 0; c[Wd >> 2] = Kd + 1; a[Kd >> 0] = be; } be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[hc >> 2] = Dd; c[ic >> 2] = be; c[jc >> 2] = Kd; c[kc >> 2] = ip(c[hc >> 2] | 0, c[jc >> 2] | 0) | 0; a[lc >> 0] = a[((c[ic >> 2] | 0) + (c[kc >> 2] << 1)) >> 0] | 0; jp( c[hc >> 2] | 0, d[((c[ic >> 2] | 0) + (c[kc >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[lc >> 0] | 0; be = c[Td >> 2] | 0; c[Td >> 2] = be + 1; a[be >> 0] = Kd; Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[cc >> 2] = Ed; c[dc >> 2] = Kd; c[ec >> 2] = be; c[fc >> 2] = ip(c[cc >> 2] | 0, c[ec >> 2] | 0) | 0; a[gc >> 0] = a[((c[dc >> 2] | 0) + (c[fc >> 2] << 1)) >> 0] | 0; jp( c[cc >> 2] | 0, d[((c[dc >> 2] | 0) + (c[fc >> 2] << 1) + 1) >> 0] | 0 ); be = a[gc >> 0] | 0; Kd = c[Ud >> 2] | 0; c[Ud >> 2] = Kd + 1; a[Kd >> 0] = be; be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[Zb >> 2] = Fd; c[_b >> 2] = be; c[$b >> 2] = Kd; c[ac >> 2] = ip(c[Zb >> 2] | 0, c[$b >> 2] | 0) | 0; a[bc >> 0] = a[((c[_b >> 2] | 0) + (c[ac >> 2] << 1)) >> 0] | 0; jp( c[Zb >> 2] | 0, d[((c[_b >> 2] | 0) + (c[ac >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[bc >> 0] | 0; be = c[Vd >> 2] | 0; c[Vd >> 2] = be + 1; a[be >> 0] = Kd; Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[Ub >> 2] = Gd; c[Vb >> 2] = Kd; c[Wb >> 2] = be; c[Xb >> 2] = ip(c[Ub >> 2] | 0, c[Wb >> 2] | 0) | 0; a[Yb >> 0] = a[((c[Vb >> 2] | 0) + (c[Xb >> 2] << 1)) >> 0] | 0; jp( c[Ub >> 2] | 0, d[((c[Vb >> 2] | 0) + (c[Xb >> 2] << 1) + 1) >> 0] | 0 ); be = a[Yb >> 0] | 0; Kd = c[Wd >> 2] | 0; c[Wd >> 2] = Kd + 1; a[Kd >> 0] = be; gp(Dd) | 0; gp(Ed) | 0; gp(Fd) | 0; gp(Gd) | 0; } if ((c[Td >> 2] | 0) >>> 0 > (c[Qd >> 2] | 0) >>> 0) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } if ((c[Ud >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } if ((c[Vd >> 2] | 0) >>> 0 > (c[Sd >> 2] | 0) >>> 0) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } Yb = c[Qd >> 2] | 0; Qd = c[Cd >> 2] | 0; Xb = c[Zd >> 2] | 0; c[Ob >> 2] = c[Td >> 2]; c[Pb >> 2] = Dd; c[Qb >> 2] = Yb; c[Rb >> 2] = Qd; c[Sb >> 2] = Xb; c[Tb >> 2] = c[Ob >> 2]; while (1) { Tb = ((gp(c[Pb >> 2] | 0) | 0) == 0) & 1; if ( !( Tb & ((c[Ob >> 2] | 0) >>> 0 < (((c[Qb >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { Tb = c[Rb >> 2] | 0; Xb = c[Sb >> 2] | 0; c[Jb >> 2] = c[Pb >> 2]; c[Kb >> 2] = Tb; c[Lb >> 2] = Xb; c[Mb >> 2] = ip(c[Jb >> 2] | 0, c[Lb >> 2] | 0) | 0; a[Nb >> 0] = a[((c[Kb >> 2] | 0) + (c[Mb >> 2] << 1)) >> 0] | 0; jp( c[Jb >> 2] | 0, d[((c[Kb >> 2] | 0) + (c[Mb >> 2] << 1) + 1) >> 0] | 0 ); Xb = a[Nb >> 0] | 0; Tb = c[Ob >> 2] | 0; c[Ob >> 2] = Tb + 1; a[Tb >> 0] = Xb; } hp() | 0; Xb = c[Rb >> 2] | 0; Tb = c[Sb >> 2] | 0; c[Eb >> 2] = c[Pb >> 2]; c[Fb >> 2] = Xb; c[Gb >> 2] = Tb; c[Hb >> 2] = ip(c[Eb >> 2] | 0, c[Gb >> 2] | 0) | 0; a[Ib >> 0] = a[((c[Fb >> 2] | 0) + (c[Hb >> 2] << 1)) >> 0] | 0; jp( c[Eb >> 2] | 0, d[((c[Fb >> 2] | 0) + (c[Hb >> 2] << 1) + 1) >> 0] | 0 ); Tb = a[Ib >> 0] | 0; Xb = c[Ob >> 2] | 0; c[Ob >> 2] = Xb + 1; a[Xb >> 0] = Tb; if (hp() | 0) { Tb = c[Rb >> 2] | 0; Xb = c[Sb >> 2] | 0; c[zb >> 2] = c[Pb >> 2]; c[Ab >> 2] = Tb; c[Bb >> 2] = Xb; c[Cb >> 2] = ip(c[zb >> 2] | 0, c[Bb >> 2] | 0) | 0; a[Db >> 0] = a[((c[Ab >> 2] | 0) + (c[Cb >> 2] << 1)) >> 0] | 0; jp( c[zb >> 2] | 0, d[((c[Ab >> 2] | 0) + (c[Cb >> 2] << 1) + 1) >> 0] | 0 ); Xb = a[Db >> 0] | 0; Tb = c[Ob >> 2] | 0; c[Ob >> 2] = Tb + 1; a[Tb >> 0] = Xb; } Xb = c[Rb >> 2] | 0; Tb = c[Sb >> 2] | 0; c[ub >> 2] = c[Pb >> 2]; c[vb >> 2] = Xb; c[wb >> 2] = Tb; c[xb >> 2] = ip(c[ub >> 2] | 0, c[wb >> 2] | 0) | 0; a[yb >> 0] = a[((c[vb >> 2] | 0) + (c[xb >> 2] << 1)) >> 0] | 0; jp( c[ub >> 2] | 0, d[((c[vb >> 2] | 0) + (c[xb >> 2] << 1) + 1) >> 0] | 0 ); Tb = a[yb >> 0] | 0; Xb = c[Ob >> 2] | 0; c[Ob >> 2] = Xb + 1; a[Xb >> 0] = Tb; } a: do { if (kp() | 0) while (1) { yb = ((gp(c[Pb >> 2] | 0) | 0) == 0) & 1; if ( !( yb & ((c[Ob >> 2] | 0) >>> 0 < (c[Qb >> 2] | 0) >>> 0) ) ) break a; yb = c[Rb >> 2] | 0; xb = c[Sb >> 2] | 0; c[pb >> 2] = c[Pb >> 2]; c[qb >> 2] = yb; c[rb >> 2] = xb; c[sb >> 2] = ip(c[pb >> 2] | 0, c[rb >> 2] | 0) | 0; a[tb >> 0] = a[((c[qb >> 2] | 0) + (c[sb >> 2] << 1)) >> 0] | 0; jp( c[pb >> 2] | 0, d[((c[qb >> 2] | 0) + (c[sb >> 2] << 1) + 1) >> 0] | 0 ); xb = a[tb >> 0] | 0; yb = c[Ob >> 2] | 0; c[Ob >> 2] = yb + 1; a[yb >> 0] = xb; } } while (0); while (1) { if ((c[Ob >> 2] | 0) >>> 0 >= (c[Qb >> 2] | 0) >>> 0) break; tb = c[Rb >> 2] | 0; sb = c[Sb >> 2] | 0; c[kb >> 2] = c[Pb >> 2]; c[lb >> 2] = tb; c[mb >> 2] = sb; c[nb >> 2] = ip(c[kb >> 2] | 0, c[mb >> 2] | 0) | 0; a[ob >> 0] = a[((c[lb >> 2] | 0) + (c[nb >> 2] << 1)) >> 0] | 0; jp( c[kb >> 2] | 0, d[((c[lb >> 2] | 0) + (c[nb >> 2] << 1) + 1) >> 0] | 0 ); sb = a[ob >> 0] | 0; tb = c[Ob >> 2] | 0; c[Ob >> 2] = tb + 1; a[tb >> 0] = sb; } Ob = c[Rd >> 2] | 0; Rd = c[Cd >> 2] | 0; ob = c[Zd >> 2] | 0; c[eb >> 2] = c[Ud >> 2]; c[fb >> 2] = Ed; c[gb >> 2] = Ob; c[hb >> 2] = Rd; c[ib >> 2] = ob; c[jb >> 2] = c[eb >> 2]; while (1) { jb = ((gp(c[fb >> 2] | 0) | 0) == 0) & 1; if ( !( jb & ((c[eb >> 2] | 0) >>> 0 < (((c[gb >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { jb = c[hb >> 2] | 0; ob = c[ib >> 2] | 0; c[$a >> 2] = c[fb >> 2]; c[ab >> 2] = jb; c[bb >> 2] = ob; c[cb >> 2] = ip(c[$a >> 2] | 0, c[bb >> 2] | 0) | 0; a[db >> 0] = a[((c[ab >> 2] | 0) + (c[cb >> 2] << 1)) >> 0] | 0; jp( c[$a >> 2] | 0, d[((c[ab >> 2] | 0) + (c[cb >> 2] << 1) + 1) >> 0] | 0 ); ob = a[db >> 0] | 0; jb = c[eb >> 2] | 0; c[eb >> 2] = jb + 1; a[jb >> 0] = ob; } hp() | 0; ob = c[hb >> 2] | 0; jb = c[ib >> 2] | 0; c[Wa >> 2] = c[fb >> 2]; c[Xa >> 2] = ob; c[Ya >> 2] = jb; c[Za >> 2] = ip(c[Wa >> 2] | 0, c[Ya >> 2] | 0) | 0; a[_a >> 0] = a[((c[Xa >> 2] | 0) + (c[Za >> 2] << 1)) >> 0] | 0; jp( c[Wa >> 2] | 0, d[((c[Xa >> 2] | 0) + (c[Za >> 2] << 1) + 1) >> 0] | 0 ); jb = a[_a >> 0] | 0; ob = c[eb >> 2] | 0; c[eb >> 2] = ob + 1; a[ob >> 0] = jb; if (hp() | 0) { jb = c[hb >> 2] | 0; ob = c[ib >> 2] | 0; c[Ra >> 2] = c[fb >> 2]; c[Sa >> 2] = jb; c[Ta >> 2] = ob; c[Ua >> 2] = ip(c[Ra >> 2] | 0, c[Ta >> 2] | 0) | 0; a[Va >> 0] = a[((c[Sa >> 2] | 0) + (c[Ua >> 2] << 1)) >> 0] | 0; jp( c[Ra >> 2] | 0, d[((c[Sa >> 2] | 0) + (c[Ua >> 2] << 1) + 1) >> 0] | 0 ); ob = a[Va >> 0] | 0; jb = c[eb >> 2] | 0; c[eb >> 2] = jb + 1; a[jb >> 0] = ob; } ob = c[hb >> 2] | 0; jb = c[ib >> 2] | 0; c[Ma >> 2] = c[fb >> 2]; c[Na >> 2] = ob; c[Oa >> 2] = jb; c[Pa >> 2] = ip(c[Ma >> 2] | 0, c[Oa >> 2] | 0) | 0; a[Qa >> 0] = a[((c[Na >> 2] | 0) + (c[Pa >> 2] << 1)) >> 0] | 0; jp( c[Ma >> 2] | 0, d[((c[Na >> 2] | 0) + (c[Pa >> 2] << 1) + 1) >> 0] | 0 ); jb = a[Qa >> 0] | 0; ob = c[eb >> 2] | 0; c[eb >> 2] = ob + 1; a[ob >> 0] = jb; } b: do { if (kp() | 0) while (1) { Qa = ((gp(c[fb >> 2] | 0) | 0) == 0) & 1; if ( !( Qa & ((c[eb >> 2] | 0) >>> 0 < (c[gb >> 2] | 0) >>> 0) ) ) break b; Qa = c[hb >> 2] | 0; Pa = c[ib >> 2] | 0; c[Ha >> 2] = c[fb >> 2]; c[Ia >> 2] = Qa; c[Ja >> 2] = Pa; c[Ka >> 2] = ip(c[Ha >> 2] | 0, c[Ja >> 2] | 0) | 0; a[La >> 0] = a[((c[Ia >> 2] | 0) + (c[Ka >> 2] << 1)) >> 0] | 0; jp( c[Ha >> 2] | 0, d[((c[Ia >> 2] | 0) + (c[Ka >> 2] << 1) + 1) >> 0] | 0 ); Pa = a[La >> 0] | 0; Qa = c[eb >> 2] | 0; c[eb >> 2] = Qa + 1; a[Qa >> 0] = Pa; } } while (0); while (1) { if ((c[eb >> 2] | 0) >>> 0 >= (c[gb >> 2] | 0) >>> 0) break; La = c[hb >> 2] | 0; Ka = c[ib >> 2] | 0; c[Ca >> 2] = c[fb >> 2]; c[Da >> 2] = La; c[Ea >> 2] = Ka; c[Fa >> 2] = ip(c[Ca >> 2] | 0, c[Ea >> 2] | 0) | 0; a[Ga >> 0] = a[((c[Da >> 2] | 0) + (c[Fa >> 2] << 1)) >> 0] | 0; jp( c[Ca >> 2] | 0, d[((c[Da >> 2] | 0) + (c[Fa >> 2] << 1) + 1) >> 0] | 0 ); Ka = a[Ga >> 0] | 0; La = c[eb >> 2] | 0; c[eb >> 2] = La + 1; a[La >> 0] = Ka; } eb = c[Sd >> 2] | 0; Sd = c[Cd >> 2] | 0; Ga = c[Zd >> 2] | 0; c[wa >> 2] = c[Vd >> 2]; c[xa >> 2] = Fd; c[ya >> 2] = eb; c[za >> 2] = Sd; c[Aa >> 2] = Ga; c[Ba >> 2] = c[wa >> 2]; while (1) { Ba = ((gp(c[xa >> 2] | 0) | 0) == 0) & 1; if ( !( Ba & ((c[wa >> 2] | 0) >>> 0 < (((c[ya >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { Ba = c[za >> 2] | 0; Ga = c[Aa >> 2] | 0; c[ra >> 2] = c[xa >> 2]; c[sa >> 2] = Ba; c[ta >> 2] = Ga; c[ua >> 2] = ip(c[ra >> 2] | 0, c[ta >> 2] | 0) | 0; a[va >> 0] = a[((c[sa >> 2] | 0) + (c[ua >> 2] << 1)) >> 0] | 0; jp( c[ra >> 2] | 0, d[((c[sa >> 2] | 0) + (c[ua >> 2] << 1) + 1) >> 0] | 0 ); Ga = a[va >> 0] | 0; Ba = c[wa >> 2] | 0; c[wa >> 2] = Ba + 1; a[Ba >> 0] = Ga; } hp() | 0; Ga = c[za >> 2] | 0; Ba = c[Aa >> 2] | 0; c[ma >> 2] = c[xa >> 2]; c[na >> 2] = Ga; c[oa >> 2] = Ba; c[pa >> 2] = ip(c[ma >> 2] | 0, c[oa >> 2] | 0) | 0; a[qa >> 0] = a[((c[na >> 2] | 0) + (c[pa >> 2] << 1)) >> 0] | 0; jp( c[ma >> 2] | 0, d[((c[na >> 2] | 0) + (c[pa >> 2] << 1) + 1) >> 0] | 0 ); Ba = a[qa >> 0] | 0; Ga = c[wa >> 2] | 0; c[wa >> 2] = Ga + 1; a[Ga >> 0] = Ba; if (hp() | 0) { Ba = c[za >> 2] | 0; Ga = c[Aa >> 2] | 0; c[ha >> 2] = c[xa >> 2]; c[ia >> 2] = Ba; c[ja >> 2] = Ga; c[ka >> 2] = ip(c[ha >> 2] | 0, c[ja >> 2] | 0) | 0; a[la >> 0] = a[((c[ia >> 2] | 0) + (c[ka >> 2] << 1)) >> 0] | 0; jp( c[ha >> 2] | 0, d[((c[ia >> 2] | 0) + (c[ka >> 2] << 1) + 1) >> 0] | 0 ); Ga = a[la >> 0] | 0; Ba = c[wa >> 2] | 0; c[wa >> 2] = Ba + 1; a[Ba >> 0] = Ga; } Ga = c[za >> 2] | 0; Ba = c[Aa >> 2] | 0; c[ca >> 2] = c[xa >> 2]; c[da >> 2] = Ga; c[ea >> 2] = Ba; c[fa >> 2] = ip(c[ca >> 2] | 0, c[ea >> 2] | 0) | 0; a[ga >> 0] = a[((c[da >> 2] | 0) + (c[fa >> 2] << 1)) >> 0] | 0; jp( c[ca >> 2] | 0, d[((c[da >> 2] | 0) + (c[fa >> 2] << 1) + 1) >> 0] | 0 ); Ba = a[ga >> 0] | 0; Ga = c[wa >> 2] | 0; c[wa >> 2] = Ga + 1; a[Ga >> 0] = Ba; } c: do { if (kp() | 0) while (1) { ga = ((gp(c[xa >> 2] | 0) | 0) == 0) & 1; if ( !( ga & ((c[wa >> 2] | 0) >>> 0 < (c[ya >> 2] | 0) >>> 0) ) ) break c; ga = c[za >> 2] | 0; fa = c[Aa >> 2] | 0; c[Z >> 2] = c[xa >> 2]; c[_ >> 2] = ga; c[$ >> 2] = fa; c[aa >> 2] = ip(c[Z >> 2] | 0, c[$ >> 2] | 0) | 0; a[ba >> 0] = a[((c[_ >> 2] | 0) + (c[aa >> 2] << 1)) >> 0] | 0; jp( c[Z >> 2] | 0, d[((c[_ >> 2] | 0) + (c[aa >> 2] << 1) + 1) >> 0] | 0 ); fa = a[ba >> 0] | 0; ga = c[wa >> 2] | 0; c[wa >> 2] = ga + 1; a[ga >> 0] = fa; } } while (0); while (1) { if ((c[wa >> 2] | 0) >>> 0 >= (c[ya >> 2] | 0) >>> 0) break; ba = c[za >> 2] | 0; aa = c[Aa >> 2] | 0; c[U >> 2] = c[xa >> 2]; c[V >> 2] = ba; c[W >> 2] = aa; c[X >> 2] = ip(c[U >> 2] | 0, c[W >> 2] | 0) | 0; a[Y >> 0] = a[((c[V >> 2] | 0) + (c[X >> 2] << 1)) >> 0] | 0; jp( c[U >> 2] | 0, d[((c[V >> 2] | 0) + (c[X >> 2] << 1) + 1) >> 0] | 0 ); aa = a[Y >> 0] | 0; ba = c[wa >> 2] | 0; c[wa >> 2] = ba + 1; a[ba >> 0] = aa; } wa = c[Ad >> 2] | 0; Ad = c[Cd >> 2] | 0; Cd = c[Zd >> 2] | 0; c[O >> 2] = c[Wd >> 2]; c[P >> 2] = Gd; c[Q >> 2] = wa; c[R >> 2] = Ad; c[S >> 2] = Cd; c[T >> 2] = c[O >> 2]; while (1) { T = ((gp(c[P >> 2] | 0) | 0) == 0) & 1; if ( !( T & ((c[O >> 2] | 0) >>> 0 < (((c[Q >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { T = c[R >> 2] | 0; Cd = c[S >> 2] | 0; c[J >> 2] = c[P >> 2]; c[K >> 2] = T; c[L >> 2] = Cd; c[M >> 2] = ip(c[J >> 2] | 0, c[L >> 2] | 0) | 0; a[N >> 0] = a[((c[K >> 2] | 0) + (c[M >> 2] << 1)) >> 0] | 0; jp( c[J >> 2] | 0, d[((c[K >> 2] | 0) + (c[M >> 2] << 1) + 1) >> 0] | 0 ); Cd = a[N >> 0] | 0; T = c[O >> 2] | 0; c[O >> 2] = T + 1; a[T >> 0] = Cd; } hp() | 0; Cd = c[R >> 2] | 0; T = c[S >> 2] | 0; c[E >> 2] = c[P >> 2]; c[F >> 2] = Cd; c[G >> 2] = T; c[H >> 2] = ip(c[E >> 2] | 0, c[G >> 2] | 0) | 0; a[I >> 0] = a[((c[F >> 2] | 0) + (c[H >> 2] << 1)) >> 0] | 0; jp( c[E >> 2] | 0, d[((c[F >> 2] | 0) + (c[H >> 2] << 1) + 1) >> 0] | 0 ); T = a[I >> 0] | 0; Cd = c[O >> 2] | 0; c[O >> 2] = Cd + 1; a[Cd >> 0] = T; if (hp() | 0) { T = c[R >> 2] | 0; Cd = c[S >> 2] | 0; c[z >> 2] = c[P >> 2]; c[A >> 2] = T; c[B >> 2] = Cd; c[C >> 2] = ip(c[z >> 2] | 0, c[B >> 2] | 0) | 0; a[D >> 0] = a[((c[A >> 2] | 0) + (c[C >> 2] << 1)) >> 0] | 0; jp( c[z >> 2] | 0, d[((c[A >> 2] | 0) + (c[C >> 2] << 1) + 1) >> 0] | 0 ); Cd = a[D >> 0] | 0; T = c[O >> 2] | 0; c[O >> 2] = T + 1; a[T >> 0] = Cd; } Cd = c[R >> 2] | 0; T = c[S >> 2] | 0; c[u >> 2] = c[P >> 2]; c[v >> 2] = Cd; c[w >> 2] = T; c[x >> 2] = ip(c[u >> 2] | 0, c[w >> 2] | 0) | 0; a[y >> 0] = a[((c[v >> 2] | 0) + (c[x >> 2] << 1)) >> 0] | 0; jp( c[u >> 2] | 0, d[((c[v >> 2] | 0) + (c[x >> 2] << 1) + 1) >> 0] | 0 ); T = a[y >> 0] | 0; Cd = c[O >> 2] | 0; c[O >> 2] = Cd + 1; a[Cd >> 0] = T; } d: do { if (kp() | 0) while (1) { y = ((gp(c[P >> 2] | 0) | 0) == 0) & 1; if ( !(y & ((c[O >> 2] | 0) >>> 0 < (c[Q >> 2] | 0) >>> 0)) ) break d; y = c[R >> 2] | 0; x = c[S >> 2] | 0; c[p >> 2] = c[P >> 2]; c[q >> 2] = y; c[r >> 2] = x; c[s >> 2] = ip(c[p >> 2] | 0, c[r >> 2] | 0) | 0; a[t >> 0] = a[((c[q >> 2] | 0) + (c[s >> 2] << 1)) >> 0] | 0; jp( c[p >> 2] | 0, d[((c[q >> 2] | 0) + (c[s >> 2] << 1) + 1) >> 0] | 0 ); x = a[t >> 0] | 0; y = c[O >> 2] | 0; c[O >> 2] = y + 1; a[y >> 0] = x; } } while (0); while (1) { if ((c[O >> 2] | 0) >>> 0 >= (c[Q >> 2] | 0) >>> 0) break; t = c[R >> 2] | 0; s = c[S >> 2] | 0; c[j >> 2] = c[P >> 2]; c[k >> 2] = t; c[m >> 2] = s; c[n >> 2] = ip(c[j >> 2] | 0, c[m >> 2] | 0) | 0; a[o >> 0] = a[((c[k >> 2] | 0) + (c[n >> 2] << 1)) >> 0] | 0; jp( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 1) + 1) >> 0] | 0 ); s = a[o >> 0] | 0; t = c[O >> 2] | 0; c[O >> 2] = t + 1; a[t >> 0] = s; } O = lp(Dd) | 0; Dd = O & (lp(Ed) | 0); Ed = Dd & (lp(Fd) | 0); c[ce >> 2] = Ed & (lp(Gd) | 0); if (c[ce >> 2] | 0) { c[sd >> 2] = c[ud >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } else { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } return 0; } function xp(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0, hc = 0, ic = 0, jc = 0, kc = 0, lc = 0, mc = 0, nc = 0, oc = 0, pc = 0, qc = 0, rc = 0, sc = 0, tc = 0, uc = 0, vc = 0, wc = 0, xc = 0, yc = 0, zc = 0, Ac = 0, Bc = 0, Cc = 0, Dc = 0, Ec = 0, Fc = 0, Gc = 0, Hc = 0, Ic = 0, Jc = 0, Kc = 0, Lc = 0, Mc = 0, Nc = 0, Oc = 0, Pc = 0, Qc = 0, Rc = 0, Sc = 0, Tc = 0, Uc = 0, Vc = 0, Wc = 0, Xc = 0, Yc = 0, Zc = 0, _c = 0, $c = 0, ad = 0, bd = 0, cd = 0, dd = 0, ed = 0, fd = 0, gd = 0, hd = 0, id = 0, jd = 0, kd = 0, ld = 0, md = 0, nd = 0, od = 0, pd = 0, qd = 0, rd = 0, sd = 0, td = 0, ud = 0, vd = 0, wd = 0, xd = 0, yd = 0, zd = 0, Ad = 0, Bd = 0, Cd = 0, Dd = 0, Ed = 0, Fd = 0, Gd = 0, Hd = 0, Id = 0, Jd = 0, Kd = 0, Ld = 0, Md = 0, Nd = 0, Od = 0, Pd = 0, Qd = 0, Rd = 0, Sd = 0, Td = 0, Ud = 0, Vd = 0, Wd = 0, Xd = 0, Yd = 0, Zd = 0, _d = 0, $d = 0, ae = 0, be = 0, ce = 0, de = 0, ee = 0, fe = 0, ge = 0, he = 0, ie = 0; i = l; l = (l + 1024) | 0; j = (i + 968) | 0; k = (i + 964) | 0; m = (i + 960) | 0; n = (i + 956) | 0; o = (i + 1015) | 0; p = (i + 952) | 0; q = (i + 948) | 0; r = (i + 944) | 0; s = (i + 940) | 0; t = (i + 1014) | 0; u = (i + 936) | 0; v = (i + 932) | 0; w = (i + 928) | 0; x = (i + 924) | 0; y = (i + 1013) | 0; z = (i + 920) | 0; A = (i + 916) | 0; B = (i + 912) | 0; C = (i + 908) | 0; D = (i + 1012) | 0; E = (i + 904) | 0; F = (i + 900) | 0; G = (i + 896) | 0; H = (i + 892) | 0; I = (i + 1011) | 0; J = (i + 888) | 0; K = (i + 884) | 0; L = (i + 880) | 0; M = (i + 876) | 0; N = (i + 1010) | 0; O = (i + 872) | 0; P = (i + 868) | 0; Q = (i + 864) | 0; R = (i + 860) | 0; S = (i + 856) | 0; T = (i + 852) | 0; U = (i + 848) | 0; V = (i + 844) | 0; W = (i + 840) | 0; X = (i + 836) | 0; Y = (i + 1009) | 0; Z = (i + 832) | 0; _ = (i + 828) | 0; $ = (i + 824) | 0; aa = (i + 820) | 0; ba = (i + 1008) | 0; ca = (i + 816) | 0; da = (i + 812) | 0; ea = (i + 808) | 0; fa = (i + 804) | 0; ga = (i + 1007) | 0; ha = (i + 800) | 0; ia = (i + 796) | 0; ja = (i + 792) | 0; ka = (i + 788) | 0; la = (i + 1006) | 0; ma = (i + 784) | 0; na = (i + 780) | 0; oa = (i + 776) | 0; pa = (i + 772) | 0; qa = (i + 1005) | 0; ra = (i + 768) | 0; sa = (i + 764) | 0; ta = (i + 760) | 0; ua = (i + 756) | 0; va = (i + 1004) | 0; wa = (i + 752) | 0; xa = (i + 748) | 0; ya = (i + 744) | 0; za = (i + 740) | 0; Aa = (i + 736) | 0; Ba = (i + 732) | 0; Ca = (i + 728) | 0; Da = (i + 724) | 0; Ea = (i + 720) | 0; Fa = (i + 716) | 0; Ga = (i + 1003) | 0; Ha = (i + 712) | 0; Ia = (i + 708) | 0; Ja = (i + 704) | 0; Ka = (i + 700) | 0; La = (i + 1002) | 0; Ma = (i + 696) | 0; Na = (i + 692) | 0; Oa = (i + 688) | 0; Pa = (i + 684) | 0; Qa = (i + 1001) | 0; Ra = (i + 680) | 0; Sa = (i + 676) | 0; Ta = (i + 672) | 0; Ua = (i + 668) | 0; Va = (i + 1e3) | 0; Wa = (i + 664) | 0; Xa = (i + 660) | 0; Ya = (i + 656) | 0; Za = (i + 652) | 0; _a = (i + 999) | 0; $a = (i + 648) | 0; ab = (i + 644) | 0; bb = (i + 640) | 0; cb = (i + 636) | 0; db = (i + 998) | 0; eb = (i + 632) | 0; fb = (i + 628) | 0; gb = (i + 624) | 0; hb = (i + 620) | 0; ib = (i + 616) | 0; jb = (i + 612) | 0; kb = (i + 608) | 0; lb = (i + 604) | 0; mb = (i + 600) | 0; nb = (i + 596) | 0; ob = (i + 997) | 0; pb = (i + 592) | 0; qb = (i + 588) | 0; rb = (i + 584) | 0; sb = (i + 580) | 0; tb = (i + 996) | 0; ub = (i + 576) | 0; vb = (i + 572) | 0; wb = (i + 568) | 0; xb = (i + 564) | 0; yb = (i + 995) | 0; zb = (i + 560) | 0; Ab = (i + 556) | 0; Bb = (i + 552) | 0; Cb = (i + 548) | 0; Db = (i + 994) | 0; Eb = (i + 544) | 0; Fb = (i + 540) | 0; Gb = (i + 536) | 0; Hb = (i + 532) | 0; Ib = (i + 993) | 0; Jb = (i + 528) | 0; Kb = (i + 524) | 0; Lb = (i + 520) | 0; Mb = (i + 516) | 0; Nb = (i + 992) | 0; Ob = (i + 512) | 0; Pb = (i + 508) | 0; Qb = (i + 504) | 0; Rb = (i + 500) | 0; Sb = (i + 496) | 0; Tb = (i + 492) | 0; Ub = (i + 488) | 0; Vb = (i + 484) | 0; Wb = (i + 480) | 0; Xb = (i + 476) | 0; Yb = (i + 991) | 0; Zb = (i + 472) | 0; _b = (i + 468) | 0; $b = (i + 464) | 0; ac = (i + 460) | 0; bc = (i + 990) | 0; cc = (i + 456) | 0; dc = (i + 452) | 0; ec = (i + 448) | 0; fc = (i + 444) | 0; gc = (i + 989) | 0; hc = (i + 440) | 0; ic = (i + 436) | 0; jc = (i + 432) | 0; kc = (i + 428) | 0; lc = (i + 988) | 0; mc = (i + 424) | 0; nc = (i + 420) | 0; oc = (i + 416) | 0; pc = (i + 412) | 0; qc = (i + 987) | 0; rc = (i + 408) | 0; sc = (i + 404) | 0; tc = (i + 400) | 0; uc = (i + 396) | 0; vc = (i + 986) | 0; wc = (i + 392) | 0; xc = (i + 388) | 0; yc = (i + 384) | 0; zc = (i + 380) | 0; Ac = (i + 985) | 0; Bc = (i + 376) | 0; Cc = (i + 372) | 0; Dc = (i + 368) | 0; Ec = (i + 364) | 0; Fc = (i + 984) | 0; Gc = (i + 360) | 0; Hc = (i + 356) | 0; Ic = (i + 352) | 0; Jc = (i + 348) | 0; Kc = (i + 983) | 0; Lc = (i + 344) | 0; Mc = (i + 340) | 0; Nc = (i + 336) | 0; Oc = (i + 332) | 0; Pc = (i + 982) | 0; Qc = (i + 328) | 0; Rc = (i + 324) | 0; Sc = (i + 320) | 0; Tc = (i + 316) | 0; Uc = (i + 981) | 0; Vc = (i + 312) | 0; Wc = (i + 308) | 0; Xc = (i + 304) | 0; Yc = (i + 300) | 0; Zc = (i + 980) | 0; _c = (i + 296) | 0; $c = (i + 292) | 0; ad = (i + 288) | 0; bd = (i + 284) | 0; cd = (i + 979) | 0; dd = (i + 280) | 0; ed = (i + 276) | 0; fd = (i + 272) | 0; gd = (i + 268) | 0; hd = (i + 978) | 0; id = (i + 264) | 0; jd = (i + 260) | 0; kd = (i + 256) | 0; ld = (i + 252) | 0; md = (i + 977) | 0; nd = (i + 248) | 0; od = (i + 244) | 0; pd = (i + 240) | 0; qd = (i + 236) | 0; rd = (i + 976) | 0; sd = (i + 232) | 0; td = (i + 228) | 0; ud = (i + 224) | 0; vd = (i + 220) | 0; wd = (i + 216) | 0; xd = (i + 212) | 0; yd = (i + 208) | 0; zd = (i + 204) | 0; Ad = (i + 200) | 0; Bd = (i + 196) | 0; Cd = (i + 192) | 0; Dd = (i + 172) | 0; Ed = (i + 152) | 0; Fd = (i + 132) | 0; Gd = (i + 112) | 0; Hd = (i + 108) | 0; Id = (i + 104) | 0; Jd = (i + 100) | 0; Kd = (i + 96) | 0; Ld = (i + 92) | 0; Md = (i + 88) | 0; Nd = (i + 84) | 0; Od = (i + 80) | 0; Pd = (i + 76) | 0; Qd = (i + 72) | 0; Rd = (i + 68) | 0; Sd = (i + 64) | 0; Td = (i + 60) | 0; Ud = (i + 56) | 0; Vd = (i + 52) | 0; Wd = (i + 48) | 0; Xd = (i + 44) | 0; Yd = (i + 972) | 0; Zd = (i + 40) | 0; _d = (i + 36) | 0; $d = (i + 32) | 0; ae = (i + 28) | 0; be = (i + 24) | 0; ce = (i + 20) | 0; de = (i + 16) | 0; ee = (i + 12) | 0; fe = (i + 8) | 0; ge = (i + 4) | 0; he = i; c[de >> 2] = b; c[ee >> 2] = e; c[fe >> 2] = f; c[ge >> 2] = g; c[he >> 2] = h; h = c[ee >> 2] | 0; ee = c[fe >> 2] | 0; fe = c[ge >> 2] | 0; ge = c[he >> 2] | 0; c[td >> 2] = c[de >> 2]; c[ud >> 2] = h; c[vd >> 2] = ee; c[wd >> 2] = fe; c[xd >> 2] = ge; if ((c[wd >> 2] | 0) >>> 0 < 10) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[yd >> 2] = c[vd >> 2]; c[zd >> 2] = c[td >> 2]; c[Ad >> 2] = (c[zd >> 2] | 0) + (c[ud >> 2] | 0); c[Bd >> 2] = (c[xd >> 2] | 0) + 4; c[Cd >> 2] = c[Bd >> 2]; c[Hd >> 2] = (yp(c[yd >> 2] | 0) | 0) & 65535; c[Id >> 2] = (yp(((c[yd >> 2] | 0) + 2) | 0) | 0) & 65535; c[Jd >> 2] = (yp(((c[yd >> 2] | 0) + 4) | 0) | 0) & 65535; c[Kd >> 2] = (c[wd >> 2] | 0) - ((c[Hd >> 2] | 0) + (c[Id >> 2] | 0) + (c[Jd >> 2] | 0) + 6); c[Ld >> 2] = (c[yd >> 2] | 0) + 6; c[Md >> 2] = (c[Ld >> 2] | 0) + (c[Hd >> 2] | 0); c[Nd >> 2] = (c[Md >> 2] | 0) + (c[Id >> 2] | 0); c[Od >> 2] = (c[Nd >> 2] | 0) + (c[Jd >> 2] | 0); c[Pd >> 2] = (((((c[ud >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[Qd >> 2] = (c[zd >> 2] | 0) + (c[Pd >> 2] | 0); c[Rd >> 2] = (c[Qd >> 2] | 0) + (c[Pd >> 2] | 0); c[Sd >> 2] = (c[Rd >> 2] | 0) + (c[Pd >> 2] | 0); c[Td >> 2] = c[zd >> 2]; c[Ud >> 2] = c[Qd >> 2]; c[Vd >> 2] = c[Rd >> 2]; c[Wd >> 2] = c[Sd >> 2]; c[Xd >> 2] = 0; bp(Yd, c[xd >> 2] | 0); c[Zd >> 2] = d[(Yd + 2) >> 0]; if ((c[Kd >> 2] | 0) >>> 0 > (c[wd >> 2] | 0) >>> 0) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[_d >> 2] = fp(Dd, c[Ld >> 2] | 0, c[Hd >> 2] | 0) | 0; if (ap(c[_d >> 2] | 0) | 0) { c[sd >> 2] = c[_d >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[$d >> 2] = fp(Ed, c[Md >> 2] | 0, c[Id >> 2] | 0) | 0; if (ap(c[$d >> 2] | 0) | 0) { c[sd >> 2] = c[$d >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[ae >> 2] = fp(Fd, c[Nd >> 2] | 0, c[Jd >> 2] | 0) | 0; if (ap(c[ae >> 2] | 0) | 0) { c[sd >> 2] = c[ae >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } c[be >> 2] = fp(Gd, c[Od >> 2] | 0, c[Kd >> 2] | 0) | 0; if (ap(c[be >> 2] | 0) | 0) { c[sd >> 2] = c[be >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } be = gp(Dd) | 0; Kd = be | (gp(Ed) | 0); be = Kd | (gp(Fd) | 0); c[Xd >> 2] = be | (gp(Gd) | 0); while (1) { if (c[Xd >> 2] | 0) break; if ( (c[Wd >> 2] | 0) >>> 0 >= (((c[Ad >> 2] | 0) + -3) | 0) >>> 0 ) break; if (hp() | 0) { be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[nd >> 2] = Dd; c[od >> 2] = be; c[pd >> 2] = Kd; c[qd >> 2] = ip(c[nd >> 2] | 0, c[pd >> 2] | 0) | 0; a[rd >> 0] = a[((c[od >> 2] | 0) + (c[qd >> 2] << 1)) >> 0] | 0; jp( c[nd >> 2] | 0, d[((c[od >> 2] | 0) + (c[qd >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[rd >> 0] | 0; be = c[Td >> 2] | 0; c[Td >> 2] = be + 1; a[be >> 0] = Kd; } if (hp() | 0) { Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[id >> 2] = Ed; c[jd >> 2] = Kd; c[kd >> 2] = be; c[ld >> 2] = ip(c[id >> 2] | 0, c[kd >> 2] | 0) | 0; a[md >> 0] = a[((c[jd >> 2] | 0) + (c[ld >> 2] << 1)) >> 0] | 0; jp( c[id >> 2] | 0, d[((c[jd >> 2] | 0) + (c[ld >> 2] << 1) + 1) >> 0] | 0 ); be = a[md >> 0] | 0; Kd = c[Ud >> 2] | 0; c[Ud >> 2] = Kd + 1; a[Kd >> 0] = be; } if (hp() | 0) { be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[dd >> 2] = Fd; c[ed >> 2] = be; c[fd >> 2] = Kd; c[gd >> 2] = ip(c[dd >> 2] | 0, c[fd >> 2] | 0) | 0; a[hd >> 0] = a[((c[ed >> 2] | 0) + (c[gd >> 2] << 1)) >> 0] | 0; jp( c[dd >> 2] | 0, d[((c[ed >> 2] | 0) + (c[gd >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[hd >> 0] | 0; be = c[Vd >> 2] | 0; c[Vd >> 2] = be + 1; a[be >> 0] = Kd; } if (hp() | 0) { Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[_c >> 2] = Gd; c[$c >> 2] = Kd; c[ad >> 2] = be; c[bd >> 2] = ip(c[_c >> 2] | 0, c[ad >> 2] | 0) | 0; a[cd >> 0] = a[((c[$c >> 2] | 0) + (c[bd >> 2] << 1)) >> 0] | 0; jp( c[_c >> 2] | 0, d[((c[$c >> 2] | 0) + (c[bd >> 2] << 1) + 1) >> 0] | 0 ); be = a[cd >> 0] | 0; Kd = c[Wd >> 2] | 0; c[Wd >> 2] = Kd + 1; a[Kd >> 0] = be; } hp() | 0; be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[Vc >> 2] = Dd; c[Wc >> 2] = be; c[Xc >> 2] = Kd; c[Yc >> 2] = ip(c[Vc >> 2] | 0, c[Xc >> 2] | 0) | 0; a[Zc >> 0] = a[((c[Wc >> 2] | 0) + (c[Yc >> 2] << 1)) >> 0] | 0; jp( c[Vc >> 2] | 0, d[((c[Wc >> 2] | 0) + (c[Yc >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[Zc >> 0] | 0; be = c[Td >> 2] | 0; c[Td >> 2] = be + 1; a[be >> 0] = Kd; hp() | 0; Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[Qc >> 2] = Ed; c[Rc >> 2] = Kd; c[Sc >> 2] = be; c[Tc >> 2] = ip(c[Qc >> 2] | 0, c[Sc >> 2] | 0) | 0; a[Uc >> 0] = a[((c[Rc >> 2] | 0) + (c[Tc >> 2] << 1)) >> 0] | 0; jp( c[Qc >> 2] | 0, d[((c[Rc >> 2] | 0) + (c[Tc >> 2] << 1) + 1) >> 0] | 0 ); be = a[Uc >> 0] | 0; Kd = c[Ud >> 2] | 0; c[Ud >> 2] = Kd + 1; a[Kd >> 0] = be; hp() | 0; be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[Lc >> 2] = Fd; c[Mc >> 2] = be; c[Nc >> 2] = Kd; c[Oc >> 2] = ip(c[Lc >> 2] | 0, c[Nc >> 2] | 0) | 0; a[Pc >> 0] = a[((c[Mc >> 2] | 0) + (c[Oc >> 2] << 1)) >> 0] | 0; jp( c[Lc >> 2] | 0, d[((c[Mc >> 2] | 0) + (c[Oc >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[Pc >> 0] | 0; be = c[Vd >> 2] | 0; c[Vd >> 2] = be + 1; a[be >> 0] = Kd; hp() | 0; Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[Gc >> 2] = Gd; c[Hc >> 2] = Kd; c[Ic >> 2] = be; c[Jc >> 2] = ip(c[Gc >> 2] | 0, c[Ic >> 2] | 0) | 0; a[Kc >> 0] = a[((c[Hc >> 2] | 0) + (c[Jc >> 2] << 1)) >> 0] | 0; jp( c[Gc >> 2] | 0, d[((c[Hc >> 2] | 0) + (c[Jc >> 2] << 1) + 1) >> 0] | 0 ); be = a[Kc >> 0] | 0; Kd = c[Wd >> 2] | 0; c[Wd >> 2] = Kd + 1; a[Kd >> 0] = be; if (hp() | 0) { be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[Bc >> 2] = Dd; c[Cc >> 2] = be; c[Dc >> 2] = Kd; c[Ec >> 2] = ip(c[Bc >> 2] | 0, c[Dc >> 2] | 0) | 0; a[Fc >> 0] = a[((c[Cc >> 2] | 0) + (c[Ec >> 2] << 1)) >> 0] | 0; jp( c[Bc >> 2] | 0, d[((c[Cc >> 2] | 0) + (c[Ec >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[Fc >> 0] | 0; be = c[Td >> 2] | 0; c[Td >> 2] = be + 1; a[be >> 0] = Kd; } if (hp() | 0) { Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[wc >> 2] = Ed; c[xc >> 2] = Kd; c[yc >> 2] = be; c[zc >> 2] = ip(c[wc >> 2] | 0, c[yc >> 2] | 0) | 0; a[Ac >> 0] = a[((c[xc >> 2] | 0) + (c[zc >> 2] << 1)) >> 0] | 0; jp( c[wc >> 2] | 0, d[((c[xc >> 2] | 0) + (c[zc >> 2] << 1) + 1) >> 0] | 0 ); be = a[Ac >> 0] | 0; Kd = c[Ud >> 2] | 0; c[Ud >> 2] = Kd + 1; a[Kd >> 0] = be; } if (hp() | 0) { be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[rc >> 2] = Fd; c[sc >> 2] = be; c[tc >> 2] = Kd; c[uc >> 2] = ip(c[rc >> 2] | 0, c[tc >> 2] | 0) | 0; a[vc >> 0] = a[((c[sc >> 2] | 0) + (c[uc >> 2] << 1)) >> 0] | 0; jp( c[rc >> 2] | 0, d[((c[sc >> 2] | 0) + (c[uc >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[vc >> 0] | 0; be = c[Vd >> 2] | 0; c[Vd >> 2] = be + 1; a[be >> 0] = Kd; } if (hp() | 0) { Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[mc >> 2] = Gd; c[nc >> 2] = Kd; c[oc >> 2] = be; c[pc >> 2] = ip(c[mc >> 2] | 0, c[oc >> 2] | 0) | 0; a[qc >> 0] = a[((c[nc >> 2] | 0) + (c[pc >> 2] << 1)) >> 0] | 0; jp( c[mc >> 2] | 0, d[((c[nc >> 2] | 0) + (c[pc >> 2] << 1) + 1) >> 0] | 0 ); be = a[qc >> 0] | 0; Kd = c[Wd >> 2] | 0; c[Wd >> 2] = Kd + 1; a[Kd >> 0] = be; } be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[hc >> 2] = Dd; c[ic >> 2] = be; c[jc >> 2] = Kd; c[kc >> 2] = ip(c[hc >> 2] | 0, c[jc >> 2] | 0) | 0; a[lc >> 0] = a[((c[ic >> 2] | 0) + (c[kc >> 2] << 1)) >> 0] | 0; jp( c[hc >> 2] | 0, d[((c[ic >> 2] | 0) + (c[kc >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[lc >> 0] | 0; be = c[Td >> 2] | 0; c[Td >> 2] = be + 1; a[be >> 0] = Kd; Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[cc >> 2] = Ed; c[dc >> 2] = Kd; c[ec >> 2] = be; c[fc >> 2] = ip(c[cc >> 2] | 0, c[ec >> 2] | 0) | 0; a[gc >> 0] = a[((c[dc >> 2] | 0) + (c[fc >> 2] << 1)) >> 0] | 0; jp( c[cc >> 2] | 0, d[((c[dc >> 2] | 0) + (c[fc >> 2] << 1) + 1) >> 0] | 0 ); be = a[gc >> 0] | 0; Kd = c[Ud >> 2] | 0; c[Ud >> 2] = Kd + 1; a[Kd >> 0] = be; be = c[Cd >> 2] | 0; Kd = c[Zd >> 2] | 0; c[Zb >> 2] = Fd; c[_b >> 2] = be; c[$b >> 2] = Kd; c[ac >> 2] = ip(c[Zb >> 2] | 0, c[$b >> 2] | 0) | 0; a[bc >> 0] = a[((c[_b >> 2] | 0) + (c[ac >> 2] << 1)) >> 0] | 0; jp( c[Zb >> 2] | 0, d[((c[_b >> 2] | 0) + (c[ac >> 2] << 1) + 1) >> 0] | 0 ); Kd = a[bc >> 0] | 0; be = c[Vd >> 2] | 0; c[Vd >> 2] = be + 1; a[be >> 0] = Kd; Kd = c[Cd >> 2] | 0; be = c[Zd >> 2] | 0; c[Ub >> 2] = Gd; c[Vb >> 2] = Kd; c[Wb >> 2] = be; c[Xb >> 2] = ip(c[Ub >> 2] | 0, c[Wb >> 2] | 0) | 0; a[Yb >> 0] = a[((c[Vb >> 2] | 0) + (c[Xb >> 2] << 1)) >> 0] | 0; jp( c[Ub >> 2] | 0, d[((c[Vb >> 2] | 0) + (c[Xb >> 2] << 1) + 1) >> 0] | 0 ); be = a[Yb >> 0] | 0; Kd = c[Wd >> 2] | 0; c[Wd >> 2] = Kd + 1; a[Kd >> 0] = be; gp(Dd) | 0; gp(Ed) | 0; gp(Fd) | 0; gp(Gd) | 0; } if ((c[Td >> 2] | 0) >>> 0 > (c[Qd >> 2] | 0) >>> 0) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } if ((c[Ud >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } if ((c[Vd >> 2] | 0) >>> 0 > (c[Sd >> 2] | 0) >>> 0) { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } Yb = c[Qd >> 2] | 0; Qd = c[Cd >> 2] | 0; Xb = c[Zd >> 2] | 0; c[Ob >> 2] = c[Td >> 2]; c[Pb >> 2] = Dd; c[Qb >> 2] = Yb; c[Rb >> 2] = Qd; c[Sb >> 2] = Xb; c[Tb >> 2] = c[Ob >> 2]; while (1) { Tb = ((gp(c[Pb >> 2] | 0) | 0) == 0) & 1; if ( !( Tb & ((c[Ob >> 2] | 0) >>> 0 < (((c[Qb >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { Tb = c[Rb >> 2] | 0; Xb = c[Sb >> 2] | 0; c[Jb >> 2] = c[Pb >> 2]; c[Kb >> 2] = Tb; c[Lb >> 2] = Xb; c[Mb >> 2] = ip(c[Jb >> 2] | 0, c[Lb >> 2] | 0) | 0; a[Nb >> 0] = a[((c[Kb >> 2] | 0) + (c[Mb >> 2] << 1)) >> 0] | 0; jp( c[Jb >> 2] | 0, d[((c[Kb >> 2] | 0) + (c[Mb >> 2] << 1) + 1) >> 0] | 0 ); Xb = a[Nb >> 0] | 0; Tb = c[Ob >> 2] | 0; c[Ob >> 2] = Tb + 1; a[Tb >> 0] = Xb; } hp() | 0; Xb = c[Rb >> 2] | 0; Tb = c[Sb >> 2] | 0; c[Eb >> 2] = c[Pb >> 2]; c[Fb >> 2] = Xb; c[Gb >> 2] = Tb; c[Hb >> 2] = ip(c[Eb >> 2] | 0, c[Gb >> 2] | 0) | 0; a[Ib >> 0] = a[((c[Fb >> 2] | 0) + (c[Hb >> 2] << 1)) >> 0] | 0; jp( c[Eb >> 2] | 0, d[((c[Fb >> 2] | 0) + (c[Hb >> 2] << 1) + 1) >> 0] | 0 ); Tb = a[Ib >> 0] | 0; Xb = c[Ob >> 2] | 0; c[Ob >> 2] = Xb + 1; a[Xb >> 0] = Tb; if (hp() | 0) { Tb = c[Rb >> 2] | 0; Xb = c[Sb >> 2] | 0; c[zb >> 2] = c[Pb >> 2]; c[Ab >> 2] = Tb; c[Bb >> 2] = Xb; c[Cb >> 2] = ip(c[zb >> 2] | 0, c[Bb >> 2] | 0) | 0; a[Db >> 0] = a[((c[Ab >> 2] | 0) + (c[Cb >> 2] << 1)) >> 0] | 0; jp( c[zb >> 2] | 0, d[((c[Ab >> 2] | 0) + (c[Cb >> 2] << 1) + 1) >> 0] | 0 ); Xb = a[Db >> 0] | 0; Tb = c[Ob >> 2] | 0; c[Ob >> 2] = Tb + 1; a[Tb >> 0] = Xb; } Xb = c[Rb >> 2] | 0; Tb = c[Sb >> 2] | 0; c[ub >> 2] = c[Pb >> 2]; c[vb >> 2] = Xb; c[wb >> 2] = Tb; c[xb >> 2] = ip(c[ub >> 2] | 0, c[wb >> 2] | 0) | 0; a[yb >> 0] = a[((c[vb >> 2] | 0) + (c[xb >> 2] << 1)) >> 0] | 0; jp( c[ub >> 2] | 0, d[((c[vb >> 2] | 0) + (c[xb >> 2] << 1) + 1) >> 0] | 0 ); Tb = a[yb >> 0] | 0; Xb = c[Ob >> 2] | 0; c[Ob >> 2] = Xb + 1; a[Xb >> 0] = Tb; } a: do { if (kp() | 0) while (1) { yb = ((gp(c[Pb >> 2] | 0) | 0) == 0) & 1; if ( !( yb & ((c[Ob >> 2] | 0) >>> 0 < (c[Qb >> 2] | 0) >>> 0) ) ) break a; yb = c[Rb >> 2] | 0; xb = c[Sb >> 2] | 0; c[pb >> 2] = c[Pb >> 2]; c[qb >> 2] = yb; c[rb >> 2] = xb; c[sb >> 2] = ip(c[pb >> 2] | 0, c[rb >> 2] | 0) | 0; a[tb >> 0] = a[((c[qb >> 2] | 0) + (c[sb >> 2] << 1)) >> 0] | 0; jp( c[pb >> 2] | 0, d[((c[qb >> 2] | 0) + (c[sb >> 2] << 1) + 1) >> 0] | 0 ); xb = a[tb >> 0] | 0; yb = c[Ob >> 2] | 0; c[Ob >> 2] = yb + 1; a[yb >> 0] = xb; } } while (0); while (1) { if ((c[Ob >> 2] | 0) >>> 0 >= (c[Qb >> 2] | 0) >>> 0) break; tb = c[Rb >> 2] | 0; sb = c[Sb >> 2] | 0; c[kb >> 2] = c[Pb >> 2]; c[lb >> 2] = tb; c[mb >> 2] = sb; c[nb >> 2] = ip(c[kb >> 2] | 0, c[mb >> 2] | 0) | 0; a[ob >> 0] = a[((c[lb >> 2] | 0) + (c[nb >> 2] << 1)) >> 0] | 0; jp( c[kb >> 2] | 0, d[((c[lb >> 2] | 0) + (c[nb >> 2] << 1) + 1) >> 0] | 0 ); sb = a[ob >> 0] | 0; tb = c[Ob >> 2] | 0; c[Ob >> 2] = tb + 1; a[tb >> 0] = sb; } Ob = c[Rd >> 2] | 0; Rd = c[Cd >> 2] | 0; ob = c[Zd >> 2] | 0; c[eb >> 2] = c[Ud >> 2]; c[fb >> 2] = Ed; c[gb >> 2] = Ob; c[hb >> 2] = Rd; c[ib >> 2] = ob; c[jb >> 2] = c[eb >> 2]; while (1) { jb = ((gp(c[fb >> 2] | 0) | 0) == 0) & 1; if ( !( jb & ((c[eb >> 2] | 0) >>> 0 < (((c[gb >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { jb = c[hb >> 2] | 0; ob = c[ib >> 2] | 0; c[$a >> 2] = c[fb >> 2]; c[ab >> 2] = jb; c[bb >> 2] = ob; c[cb >> 2] = ip(c[$a >> 2] | 0, c[bb >> 2] | 0) | 0; a[db >> 0] = a[((c[ab >> 2] | 0) + (c[cb >> 2] << 1)) >> 0] | 0; jp( c[$a >> 2] | 0, d[((c[ab >> 2] | 0) + (c[cb >> 2] << 1) + 1) >> 0] | 0 ); ob = a[db >> 0] | 0; jb = c[eb >> 2] | 0; c[eb >> 2] = jb + 1; a[jb >> 0] = ob; } hp() | 0; ob = c[hb >> 2] | 0; jb = c[ib >> 2] | 0; c[Wa >> 2] = c[fb >> 2]; c[Xa >> 2] = ob; c[Ya >> 2] = jb; c[Za >> 2] = ip(c[Wa >> 2] | 0, c[Ya >> 2] | 0) | 0; a[_a >> 0] = a[((c[Xa >> 2] | 0) + (c[Za >> 2] << 1)) >> 0] | 0; jp( c[Wa >> 2] | 0, d[((c[Xa >> 2] | 0) + (c[Za >> 2] << 1) + 1) >> 0] | 0 ); jb = a[_a >> 0] | 0; ob = c[eb >> 2] | 0; c[eb >> 2] = ob + 1; a[ob >> 0] = jb; if (hp() | 0) { jb = c[hb >> 2] | 0; ob = c[ib >> 2] | 0; c[Ra >> 2] = c[fb >> 2]; c[Sa >> 2] = jb; c[Ta >> 2] = ob; c[Ua >> 2] = ip(c[Ra >> 2] | 0, c[Ta >> 2] | 0) | 0; a[Va >> 0] = a[((c[Sa >> 2] | 0) + (c[Ua >> 2] << 1)) >> 0] | 0; jp( c[Ra >> 2] | 0, d[((c[Sa >> 2] | 0) + (c[Ua >> 2] << 1) + 1) >> 0] | 0 ); ob = a[Va >> 0] | 0; jb = c[eb >> 2] | 0; c[eb >> 2] = jb + 1; a[jb >> 0] = ob; } ob = c[hb >> 2] | 0; jb = c[ib >> 2] | 0; c[Ma >> 2] = c[fb >> 2]; c[Na >> 2] = ob; c[Oa >> 2] = jb; c[Pa >> 2] = ip(c[Ma >> 2] | 0, c[Oa >> 2] | 0) | 0; a[Qa >> 0] = a[((c[Na >> 2] | 0) + (c[Pa >> 2] << 1)) >> 0] | 0; jp( c[Ma >> 2] | 0, d[((c[Na >> 2] | 0) + (c[Pa >> 2] << 1) + 1) >> 0] | 0 ); jb = a[Qa >> 0] | 0; ob = c[eb >> 2] | 0; c[eb >> 2] = ob + 1; a[ob >> 0] = jb; } b: do { if (kp() | 0) while (1) { Qa = ((gp(c[fb >> 2] | 0) | 0) == 0) & 1; if ( !( Qa & ((c[eb >> 2] | 0) >>> 0 < (c[gb >> 2] | 0) >>> 0) ) ) break b; Qa = c[hb >> 2] | 0; Pa = c[ib >> 2] | 0; c[Ha >> 2] = c[fb >> 2]; c[Ia >> 2] = Qa; c[Ja >> 2] = Pa; c[Ka >> 2] = ip(c[Ha >> 2] | 0, c[Ja >> 2] | 0) | 0; a[La >> 0] = a[((c[Ia >> 2] | 0) + (c[Ka >> 2] << 1)) >> 0] | 0; jp( c[Ha >> 2] | 0, d[((c[Ia >> 2] | 0) + (c[Ka >> 2] << 1) + 1) >> 0] | 0 ); Pa = a[La >> 0] | 0; Qa = c[eb >> 2] | 0; c[eb >> 2] = Qa + 1; a[Qa >> 0] = Pa; } } while (0); while (1) { if ((c[eb >> 2] | 0) >>> 0 >= (c[gb >> 2] | 0) >>> 0) break; La = c[hb >> 2] | 0; Ka = c[ib >> 2] | 0; c[Ca >> 2] = c[fb >> 2]; c[Da >> 2] = La; c[Ea >> 2] = Ka; c[Fa >> 2] = ip(c[Ca >> 2] | 0, c[Ea >> 2] | 0) | 0; a[Ga >> 0] = a[((c[Da >> 2] | 0) + (c[Fa >> 2] << 1)) >> 0] | 0; jp( c[Ca >> 2] | 0, d[((c[Da >> 2] | 0) + (c[Fa >> 2] << 1) + 1) >> 0] | 0 ); Ka = a[Ga >> 0] | 0; La = c[eb >> 2] | 0; c[eb >> 2] = La + 1; a[La >> 0] = Ka; } eb = c[Sd >> 2] | 0; Sd = c[Cd >> 2] | 0; Ga = c[Zd >> 2] | 0; c[wa >> 2] = c[Vd >> 2]; c[xa >> 2] = Fd; c[ya >> 2] = eb; c[za >> 2] = Sd; c[Aa >> 2] = Ga; c[Ba >> 2] = c[wa >> 2]; while (1) { Ba = ((gp(c[xa >> 2] | 0) | 0) == 0) & 1; if ( !( Ba & ((c[wa >> 2] | 0) >>> 0 < (((c[ya >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { Ba = c[za >> 2] | 0; Ga = c[Aa >> 2] | 0; c[ra >> 2] = c[xa >> 2]; c[sa >> 2] = Ba; c[ta >> 2] = Ga; c[ua >> 2] = ip(c[ra >> 2] | 0, c[ta >> 2] | 0) | 0; a[va >> 0] = a[((c[sa >> 2] | 0) + (c[ua >> 2] << 1)) >> 0] | 0; jp( c[ra >> 2] | 0, d[((c[sa >> 2] | 0) + (c[ua >> 2] << 1) + 1) >> 0] | 0 ); Ga = a[va >> 0] | 0; Ba = c[wa >> 2] | 0; c[wa >> 2] = Ba + 1; a[Ba >> 0] = Ga; } hp() | 0; Ga = c[za >> 2] | 0; Ba = c[Aa >> 2] | 0; c[ma >> 2] = c[xa >> 2]; c[na >> 2] = Ga; c[oa >> 2] = Ba; c[pa >> 2] = ip(c[ma >> 2] | 0, c[oa >> 2] | 0) | 0; a[qa >> 0] = a[((c[na >> 2] | 0) + (c[pa >> 2] << 1)) >> 0] | 0; jp( c[ma >> 2] | 0, d[((c[na >> 2] | 0) + (c[pa >> 2] << 1) + 1) >> 0] | 0 ); Ba = a[qa >> 0] | 0; Ga = c[wa >> 2] | 0; c[wa >> 2] = Ga + 1; a[Ga >> 0] = Ba; if (hp() | 0) { Ba = c[za >> 2] | 0; Ga = c[Aa >> 2] | 0; c[ha >> 2] = c[xa >> 2]; c[ia >> 2] = Ba; c[ja >> 2] = Ga; c[ka >> 2] = ip(c[ha >> 2] | 0, c[ja >> 2] | 0) | 0; a[la >> 0] = a[((c[ia >> 2] | 0) + (c[ka >> 2] << 1)) >> 0] | 0; jp( c[ha >> 2] | 0, d[((c[ia >> 2] | 0) + (c[ka >> 2] << 1) + 1) >> 0] | 0 ); Ga = a[la >> 0] | 0; Ba = c[wa >> 2] | 0; c[wa >> 2] = Ba + 1; a[Ba >> 0] = Ga; } Ga = c[za >> 2] | 0; Ba = c[Aa >> 2] | 0; c[ca >> 2] = c[xa >> 2]; c[da >> 2] = Ga; c[ea >> 2] = Ba; c[fa >> 2] = ip(c[ca >> 2] | 0, c[ea >> 2] | 0) | 0; a[ga >> 0] = a[((c[da >> 2] | 0) + (c[fa >> 2] << 1)) >> 0] | 0; jp( c[ca >> 2] | 0, d[((c[da >> 2] | 0) + (c[fa >> 2] << 1) + 1) >> 0] | 0 ); Ba = a[ga >> 0] | 0; Ga = c[wa >> 2] | 0; c[wa >> 2] = Ga + 1; a[Ga >> 0] = Ba; } c: do { if (kp() | 0) while (1) { ga = ((gp(c[xa >> 2] | 0) | 0) == 0) & 1; if ( !( ga & ((c[wa >> 2] | 0) >>> 0 < (c[ya >> 2] | 0) >>> 0) ) ) break c; ga = c[za >> 2] | 0; fa = c[Aa >> 2] | 0; c[Z >> 2] = c[xa >> 2]; c[_ >> 2] = ga; c[$ >> 2] = fa; c[aa >> 2] = ip(c[Z >> 2] | 0, c[$ >> 2] | 0) | 0; a[ba >> 0] = a[((c[_ >> 2] | 0) + (c[aa >> 2] << 1)) >> 0] | 0; jp( c[Z >> 2] | 0, d[((c[_ >> 2] | 0) + (c[aa >> 2] << 1) + 1) >> 0] | 0 ); fa = a[ba >> 0] | 0; ga = c[wa >> 2] | 0; c[wa >> 2] = ga + 1; a[ga >> 0] = fa; } } while (0); while (1) { if ((c[wa >> 2] | 0) >>> 0 >= (c[ya >> 2] | 0) >>> 0) break; ba = c[za >> 2] | 0; aa = c[Aa >> 2] | 0; c[U >> 2] = c[xa >> 2]; c[V >> 2] = ba; c[W >> 2] = aa; c[X >> 2] = ip(c[U >> 2] | 0, c[W >> 2] | 0) | 0; a[Y >> 0] = a[((c[V >> 2] | 0) + (c[X >> 2] << 1)) >> 0] | 0; jp( c[U >> 2] | 0, d[((c[V >> 2] | 0) + (c[X >> 2] << 1) + 1) >> 0] | 0 ); aa = a[Y >> 0] | 0; ba = c[wa >> 2] | 0; c[wa >> 2] = ba + 1; a[ba >> 0] = aa; } wa = c[Ad >> 2] | 0; Ad = c[Cd >> 2] | 0; Cd = c[Zd >> 2] | 0; c[O >> 2] = c[Wd >> 2]; c[P >> 2] = Gd; c[Q >> 2] = wa; c[R >> 2] = Ad; c[S >> 2] = Cd; c[T >> 2] = c[O >> 2]; while (1) { T = ((gp(c[P >> 2] | 0) | 0) == 0) & 1; if ( !( T & ((c[O >> 2] | 0) >>> 0 < (((c[Q >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { T = c[R >> 2] | 0; Cd = c[S >> 2] | 0; c[J >> 2] = c[P >> 2]; c[K >> 2] = T; c[L >> 2] = Cd; c[M >> 2] = ip(c[J >> 2] | 0, c[L >> 2] | 0) | 0; a[N >> 0] = a[((c[K >> 2] | 0) + (c[M >> 2] << 1)) >> 0] | 0; jp( c[J >> 2] | 0, d[((c[K >> 2] | 0) + (c[M >> 2] << 1) + 1) >> 0] | 0 ); Cd = a[N >> 0] | 0; T = c[O >> 2] | 0; c[O >> 2] = T + 1; a[T >> 0] = Cd; } hp() | 0; Cd = c[R >> 2] | 0; T = c[S >> 2] | 0; c[E >> 2] = c[P >> 2]; c[F >> 2] = Cd; c[G >> 2] = T; c[H >> 2] = ip(c[E >> 2] | 0, c[G >> 2] | 0) | 0; a[I >> 0] = a[((c[F >> 2] | 0) + (c[H >> 2] << 1)) >> 0] | 0; jp( c[E >> 2] | 0, d[((c[F >> 2] | 0) + (c[H >> 2] << 1) + 1) >> 0] | 0 ); T = a[I >> 0] | 0; Cd = c[O >> 2] | 0; c[O >> 2] = Cd + 1; a[Cd >> 0] = T; if (hp() | 0) { T = c[R >> 2] | 0; Cd = c[S >> 2] | 0; c[z >> 2] = c[P >> 2]; c[A >> 2] = T; c[B >> 2] = Cd; c[C >> 2] = ip(c[z >> 2] | 0, c[B >> 2] | 0) | 0; a[D >> 0] = a[((c[A >> 2] | 0) + (c[C >> 2] << 1)) >> 0] | 0; jp( c[z >> 2] | 0, d[((c[A >> 2] | 0) + (c[C >> 2] << 1) + 1) >> 0] | 0 ); Cd = a[D >> 0] | 0; T = c[O >> 2] | 0; c[O >> 2] = T + 1; a[T >> 0] = Cd; } Cd = c[R >> 2] | 0; T = c[S >> 2] | 0; c[u >> 2] = c[P >> 2]; c[v >> 2] = Cd; c[w >> 2] = T; c[x >> 2] = ip(c[u >> 2] | 0, c[w >> 2] | 0) | 0; a[y >> 0] = a[((c[v >> 2] | 0) + (c[x >> 2] << 1)) >> 0] | 0; jp( c[u >> 2] | 0, d[((c[v >> 2] | 0) + (c[x >> 2] << 1) + 1) >> 0] | 0 ); T = a[y >> 0] | 0; Cd = c[O >> 2] | 0; c[O >> 2] = Cd + 1; a[Cd >> 0] = T; } d: do { if (kp() | 0) while (1) { y = ((gp(c[P >> 2] | 0) | 0) == 0) & 1; if ( !(y & ((c[O >> 2] | 0) >>> 0 < (c[Q >> 2] | 0) >>> 0)) ) break d; y = c[R >> 2] | 0; x = c[S >> 2] | 0; c[p >> 2] = c[P >> 2]; c[q >> 2] = y; c[r >> 2] = x; c[s >> 2] = ip(c[p >> 2] | 0, c[r >> 2] | 0) | 0; a[t >> 0] = a[((c[q >> 2] | 0) + (c[s >> 2] << 1)) >> 0] | 0; jp( c[p >> 2] | 0, d[((c[q >> 2] | 0) + (c[s >> 2] << 1) + 1) >> 0] | 0 ); x = a[t >> 0] | 0; y = c[O >> 2] | 0; c[O >> 2] = y + 1; a[y >> 0] = x; } } while (0); while (1) { if ((c[O >> 2] | 0) >>> 0 >= (c[Q >> 2] | 0) >>> 0) break; t = c[R >> 2] | 0; s = c[S >> 2] | 0; c[j >> 2] = c[P >> 2]; c[k >> 2] = t; c[m >> 2] = s; c[n >> 2] = ip(c[j >> 2] | 0, c[m >> 2] | 0) | 0; a[o >> 0] = a[((c[k >> 2] | 0) + (c[n >> 2] << 1)) >> 0] | 0; jp( c[j >> 2] | 0, d[((c[k >> 2] | 0) + (c[n >> 2] << 1) + 1) >> 0] | 0 ); s = a[o >> 0] | 0; t = c[O >> 2] | 0; c[O >> 2] = t + 1; a[t >> 0] = s; } O = lp(Dd) | 0; Dd = O & (lp(Ed) | 0); Ed = Dd & (lp(Fd) | 0); c[ce >> 2] = Ed & (lp(Gd) | 0); if (c[ce >> 2] | 0) { c[sd >> 2] = c[ud >> 2]; ie = c[sd >> 2] | 0; l = i; return ie | 0; } else { c[sd >> 2] = -20; ie = c[sd >> 2] | 0; l = i; return ie | 0; } return 0; } function yp(a) { a = a | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[g >> 2] = a; a = (pp() | 0) != 0; i = c[g >> 2] | 0; if (a) { b[f >> 1] = zp(i) | 0; j = b[f >> 1] | 0; l = e; return j | 0; } else { c[h >> 2] = i; b[f >> 1] = (d[c[h >> 2] >> 0] | 0) + ((d[((c[h >> 2] | 0) + 1) >> 0] | 0) << 8); j = b[f >> 1] | 0; l = e; return j | 0; } return 0; } function zp(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function Ap(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; j = l; l = (l + 48) | 0; k = (j + 40) | 0; m = (j + 36) | 0; n = (j + 32) | 0; o = (j + 28) | 0; p = (j + 24) | 0; q = (j + 20) | 0; r = (j + 16) | 0; s = (j + 12) | 0; t = (j + 8) | 0; u = (j + 4) | 0; v = j; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = c[p >> 2]; c[v >> 2] = $o( c[m >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, c[r >> 2] | 0, c[s >> 2] | 0 ) | 0; s = (ap(c[v >> 2] | 0) | 0) != 0; r = c[v >> 2] | 0; if (s) { c[k >> 2] = r; w = c[k >> 2] | 0; l = j; return w | 0; } if (r >>> 0 >= (c[q >> 2] | 0) >>> 0) { c[k >> 2] = -72; w = c[k >> 2] | 0; l = j; return w | 0; } else { c[u >> 2] = (c[u >> 2] | 0) + (c[v >> 2] | 0); c[q >> 2] = (c[q >> 2] | 0) - (c[v >> 2] | 0); c[k >> 2] = vp( c[n >> 2] | 0, c[o >> 2] | 0, c[u >> 2] | 0, c[q >> 2] | 0, c[m >> 2] | 0, c[t >> 2] | 0 ) | 0; w = c[k >> 2] | 0; l = j; return w | 0; } return 0; } function Bp(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0; i = l; l = (l + 160) | 0; j = (i + 140) | 0; k = (i + 136) | 0; m = (i + 132) | 0; n = (i + 128) | 0; o = (i + 124) | 0; p = (i + 120) | 0; q = (i + 116) | 0; r = (i + 112) | 0; s = (i + 108) | 0; t = (i + 104) | 0; u = (i + 144) | 0; v = (i + 100) | 0; w = (i + 96) | 0; x = (i + 92) | 0; y = (i + 88) | 0; z = (i + 84) | 0; A = (i + 80) | 0; B = (i + 76) | 0; C = (i + 72) | 0; D = (i + 68) | 0; E = (i + 64) | 0; F = (i + 60) | 0; G = (i + 56) | 0; H = (i + 52) | 0; I = (i + 48) | 0; J = (i + 44) | 0; K = (i + 40) | 0; L = (i + 36) | 0; M = (i + 32) | 0; N = (i + 28) | 0; O = (i + 24) | 0; P = (i + 20) | 0; Q = (i + 16) | 0; R = (i + 12) | 0; S = (i + 8) | 0; T = (i + 4) | 0; U = i; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; bp(u, c[k >> 2] | 0); c[v >> 2] = d[u >> 0]; c[x >> 2] = (c[k >> 2] | 0) + 4; c[y >> 2] = c[x >> 2]; c[F >> 2] = 0; c[A >> 2] = (c[o >> 2] | 0) + (c[F >> 2] << 2); c[F >> 2] = (c[F >> 2] | 0) + 156; c[B >> 2] = (c[o >> 2] | 0) + (c[F >> 2] << 2); c[F >> 2] = (c[F >> 2] | 0) + 13; c[C >> 2] = (c[o >> 2] | 0) + (c[F >> 2] << 2); c[F >> 2] = (c[F >> 2] | 0) + 14; c[D >> 2] = (c[o >> 2] | 0) + (((((c[F >> 2] << 2) >>> 0) / 2) | 0) << 1); c[F >> 2] = (c[F >> 2] | 0) + 128; c[E >> 2] = (c[o >> 2] | 0) + (c[F >> 2] << 2); c[F >> 2] = (c[F >> 2] | 0) + 64; if ((c[F >> 2] << 2) >>> 0 > (c[p >> 2] | 0) >>> 0) { c[j >> 2] = -44; V = c[j >> 2] | 0; l = i; return V | 0; } c[z >> 2] = (c[C >> 2] | 0) + 4; p = c[B >> 2] | 0; F = (p + 108) | 0; do { c[p >> 2] = 0; p = (p + 4) | 0; } while ((p | 0) < (F | 0)); if ((c[v >> 2] | 0) >>> 0 > 12) { c[j >> 2] = -44; V = c[j >> 2] | 0; l = i; return V | 0; } c[w >> 2] = fh( c[E >> 2] | 0, 256, c[B >> 2] | 0, t, q, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0; if (ap(c[w >> 2] | 0) | 0) { c[j >> 2] = c[w >> 2]; V = c[j >> 2] | 0; l = i; return V | 0; } if ((c[q >> 2] | 0) >>> 0 > (c[v >> 2] | 0) >>> 0) { c[j >> 2] = -44; V = c[j >> 2] | 0; l = i; return V | 0; } c[r >> 2] = c[q >> 2]; while (1) { if (c[((c[B >> 2] | 0) + (c[r >> 2] << 2)) >> 2] | 0) break; c[r >> 2] = (c[r >> 2] | 0) + -1; } c[H >> 2] = 0; c[G >> 2] = 1; while (1) { W = c[H >> 2] | 0; if ( (c[G >> 2] | 0) >>> 0 >= (((c[r >> 2] | 0) + 1) | 0) >>> 0 ) break; c[I >> 2] = W; c[H >> 2] = (c[H >> 2] | 0) + (c[((c[B >> 2] | 0) + (c[G >> 2] << 2)) >> 2] | 0); c[((c[z >> 2] | 0) + (c[G >> 2] << 2)) >> 2] = c[I >> 2]; c[G >> 2] = (c[G >> 2] | 0) + 1; } c[c[z >> 2] >> 2] = W; c[s >> 2] = c[H >> 2]; c[J >> 2] = 0; while (1) { if ((c[J >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; c[K >> 2] = d[((c[E >> 2] | 0) + (c[J >> 2] | 0)) >> 0]; H = ((c[z >> 2] | 0) + (c[K >> 2] << 2)) | 0; W = c[H >> 2] | 0; c[H >> 2] = W + 1; c[L >> 2] = W; a[((c[D >> 2] | 0) + (c[L >> 2] << 1)) >> 0] = c[J >> 2]; a[((c[D >> 2] | 0) + (c[L >> 2] << 1) + 1) >> 0] = c[K >> 2]; c[J >> 2] = (c[J >> 2] | 0) + 1; } c[c[z >> 2] >> 2] = 0; c[M >> 2] = c[A >> 2]; c[N >> 2] = (c[v >> 2] | 0) - (c[q >> 2] | 0) - 1; c[O >> 2] = 0; c[P >> 2] = 1; while (1) { if ( (c[P >> 2] | 0) >>> 0 >= (((c[r >> 2] | 0) + 1) | 0) >>> 0 ) break; c[Q >> 2] = c[O >> 2]; c[O >> 2] = (c[O >> 2] | 0) + (c[((c[B >> 2] | 0) + (c[P >> 2] << 2)) >> 2] << ((c[P >> 2] | 0) + (c[N >> 2] | 0))); c[((c[M >> 2] | 0) + (c[P >> 2] << 2)) >> 2] = c[Q >> 2]; c[P >> 2] = (c[P >> 2] | 0) + 1; } c[R >> 2] = (c[q >> 2] | 0) + 1 - (c[r >> 2] | 0); c[S >> 2] = c[R >> 2]; while (1) { if ( (c[S >> 2] | 0) >>> 0 >= (((c[v >> 2] | 0) - (c[R >> 2] | 0) + 1) | 0) >>> 0 ) break; c[T >> 2] = (c[A >> 2] | 0) + (((c[S >> 2] | 0) * 52) | 0); c[U >> 2] = 1; while (1) { if ( (c[U >> 2] | 0) >>> 0 >= (((c[r >> 2] | 0) + 1) | 0) >>> 0 ) break; c[((c[T >> 2] | 0) + (c[U >> 2] << 2)) >> 2] = (c[((c[M >> 2] | 0) + (c[U >> 2] << 2)) >> 2] | 0) >>> (c[S >> 2] | 0); c[U >> 2] = (c[U >> 2] | 0) + 1; } c[S >> 2] = (c[S >> 2] | 0) + 1; } Cp( c[y >> 2] | 0, c[v >> 2] | 0, c[D >> 2] | 0, c[s >> 2] | 0, c[C >> 2] | 0, c[A >> 2] | 0, c[r >> 2] | 0, ((c[q >> 2] | 0) + 1) | 0 ); a[(u + 2) >> 0] = c[v >> 2]; a[(u + 1) >> 0] = 1; v = c[k >> 2] | 0; a[v >> 0] = a[u >> 0] | 0; a[(v + 1) >> 0] = a[(u + 1) >> 0] | 0; a[(v + 2) >> 0] = a[(u + 2) >> 0] | 0; a[(v + 3) >> 0] = a[(u + 3) >> 0] | 0; c[j >> 2] = c[w >> 2]; V = c[j >> 2] | 0; l = i; return V | 0; } function Cp(e, f, g, h, i, j, k, m) { e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0; n = l; l = (l + 144) | 0; o = (n + 124) | 0; p = (n + 120) | 0; q = (n + 116) | 0; r = (n + 112) | 0; s = (n + 108) | 0; t = (n + 104) | 0; u = (n + 100) | 0; v = (n + 96) | 0; w = n; x = (n + 92) | 0; y = (n + 88) | 0; z = (n + 84) | 0; A = (n + 132) | 0; B = (n + 80) | 0; C = (n + 76) | 0; D = (n + 72) | 0; E = (n + 68) | 0; F = (n + 64) | 0; G = (n + 60) | 0; H = (n + 128) | 0; I = (n + 56) | 0; J = (n + 52) | 0; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = k; c[v >> 2] = m; c[x >> 2] = (c[v >> 2] | 0) - (c[p >> 2] | 0); c[y >> 2] = (c[v >> 2] | 0) - (c[u >> 2] | 0); u = w; m = c[t >> 2] | 0; k = (u + 52) | 0; do { c[u >> 2] = c[m >> 2]; u = (u + 4) | 0; m = (m + 4) | 0; } while ((u | 0) < (k | 0)); c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[r >> 2] | 0) >>> 0) break; b[A >> 1] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1)) >> 0] | 0; c[B >> 2] = d[((c[q >> 2] | 0) + (c[z >> 2] << 1) + 1) >> 0]; c[C >> 2] = (c[v >> 2] | 0) - (c[B >> 2] | 0); c[D >> 2] = c[(w + (c[B >> 2] << 2)) >> 2]; c[E >> 2] = 1 << ((c[p >> 2] | 0) - (c[C >> 2] | 0)); a: do { if ( (((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0 ) { m = ((c[C >> 2] | 0) + (c[x >> 2] | 0)) | 0; c[G >> 2] = m; c[G >> 2] = (c[G >> 2] | 0) < 1 ? 1 : m; c[F >> 2] = c[((c[s >> 2] | 0) + (c[G >> 2] << 2)) >> 2]; Dp( ((c[o >> 2] | 0) + (c[D >> 2] << 2)) | 0, ((c[p >> 2] | 0) - (c[C >> 2] | 0)) | 0, c[C >> 2] | 0, ((c[t >> 2] | 0) + (((c[C >> 2] | 0) * 52) | 0)) | 0, c[G >> 2] | 0, ((c[q >> 2] | 0) + (c[F >> 2] << 1)) | 0, ((c[r >> 2] | 0) - (c[F >> 2] | 0)) | 0, c[v >> 2] | 0, b[A >> 1] | 0 ); } else { Ep(H, b[A >> 1] | 0); a[(H + 2) >> 0] = c[C >> 2]; a[(H + 3) >> 0] = 1; c[I >> 2] = (c[D >> 2] | 0) + (c[E >> 2] | 0); c[J >> 2] = c[D >> 2]; while (1) { if ((c[J >> 2] | 0) >>> 0 >= (c[I >> 2] | 0) >>> 0) break a; m = ((c[o >> 2] | 0) + (c[J >> 2] << 2)) | 0; b[m >> 1] = b[H >> 1] | 0; b[(m + 2) >> 1] = b[(H + 2) >> 1] | 0; c[J >> 2] = (c[J >> 2] | 0) + 1; } } } while (0); m = (w + (c[B >> 2] << 2)) | 0; c[m >> 2] = (c[m >> 2] | 0) + (c[E >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + 1; } l = n; return; } function Dp(f, g, h, i, j, k, m, n, o) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; o = o | 0; var p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; p = l; l = (l + 144) | 0; q = (p + 120) | 0; r = (p + 116) | 0; s = (p + 112) | 0; t = (p + 108) | 0; u = (p + 104) | 0; v = (p + 100) | 0; w = (p + 96) | 0; x = (p + 92) | 0; y = (p + 128) | 0; z = (p + 124) | 0; A = p; B = (p + 88) | 0; C = (p + 84) | 0; D = (p + 80) | 0; E = (p + 76) | 0; F = (p + 72) | 0; G = (p + 68) | 0; H = (p + 64) | 0; I = (p + 60) | 0; J = (p + 56) | 0; K = (p + 52) | 0; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = j; c[v >> 2] = k; c[w >> 2] = m; c[x >> 2] = n; b[y >> 1] = o; o = A; n = c[t >> 2] | 0; t = (o + 52) | 0; do { c[o >> 2] = c[n >> 2]; o = (o + 4) | 0; n = (n + 4) | 0; } while ((o | 0) < (t | 0)); a: do { if ((c[u >> 2] | 0) > 1) { c[C >> 2] = c[(A + (c[u >> 2] << 2)) >> 2]; Ep(z, b[y >> 1] | 0); a[(z + 2) >> 0] = c[s >> 2]; a[(z + 3) >> 0] = 1; c[B >> 2] = 0; while (1) { if ((c[B >> 2] | 0) >>> 0 >= (c[C >> 2] | 0) >>> 0) break a; n = ((c[q >> 2] | 0) + (c[B >> 2] << 2)) | 0; b[n >> 1] = b[z >> 1] | 0; b[(n + 2) >> 1] = b[(z + 2) >> 1] | 0; c[B >> 2] = (c[B >> 2] | 0) + 1; } } } while (0); c[D >> 2] = 0; while (1) { if ((c[D >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[E >> 2] = d[((c[v >> 2] | 0) + (c[D >> 2] << 1)) >> 0]; c[F >> 2] = d[((c[v >> 2] | 0) + (c[D >> 2] << 1) + 1) >> 0]; c[G >> 2] = (c[x >> 2] | 0) - (c[F >> 2] | 0); c[H >> 2] = 1 << ((c[r >> 2] | 0) - (c[G >> 2] | 0)); c[I >> 2] = c[(A + (c[F >> 2] << 2)) >> 2]; c[J >> 2] = c[I >> 2]; c[K >> 2] = (c[I >> 2] | 0) + (c[H >> 2] | 0); Ep(z, ((e[y >> 1] | 0) + (c[E >> 2] << 8)) & 65535); a[(z + 2) >> 0] = (c[G >> 2] | 0) + (c[s >> 2] | 0); a[(z + 3) >> 0] = 2; do { B = c[q >> 2] | 0; C = c[J >> 2] | 0; c[J >> 2] = C + 1; u = (B + (C << 2)) | 0; b[u >> 1] = b[z >> 1] | 0; b[(u + 2) >> 1] = b[(z + 2) >> 1] | 0; } while ((c[J >> 2] | 0) >>> 0 < (c[K >> 2] | 0) >>> 0); u = (A + (c[F >> 2] << 2)) | 0; c[u >> 2] = (c[u >> 2] | 0) + (c[H >> 2] | 0); c[D >> 2] = (c[D >> 2] | 0) + 1; } l = p; return; } function Ep(d, f) { d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; g = l; l = (l + 16) | 0; h = (g + 4) | 0; i = (g + 8) | 0; j = g; c[h >> 2] = d; b[i >> 1] = f; f = (pp() | 0) != 0; d = c[h >> 2] | 0; if (f) { Fp(d, b[i >> 1] | 0); l = g; return; } else { c[j >> 2] = d; a[c[j >> 2] >> 0] = b[i >> 1]; a[((c[j >> 2] | 0) + 1) >> 0] = (e[i >> 1] | 0) >> 8; l = g; return; } } function Fp(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = f; h = (f + 4) | 0; c[g >> 2] = d; b[h >> 1] = e; e = b[h >> 1] | 0; h = c[g >> 2] | 0; a[h >> 0] = e; a[(h + 1) >> 0] = e >> 8; l = f; return; } function Gp(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; h = l; l = (l + 32) | 0; i = (h + 24) | 0; j = (h + 20) | 0; k = (h + 16) | 0; m = (h + 12) | 0; n = (h + 8) | 0; o = (h + 4) | 0; p = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; g = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; if (c[p >> 2] | 0) { c[i >> 2] = Hp(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } else { c[i >> 2] = Ip(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } return 0; } function Hp(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0; i = l; l = (l + 256) | 0; j = (i + 244) | 0; k = (i + 240) | 0; m = (i + 236) | 0; n = (i + 232) | 0; o = (i + 228) | 0; p = (i + 224) | 0; q = (i + 220) | 0; r = (i + 216) | 0; s = (i + 212) | 0; t = (i + 208) | 0; u = (i + 204) | 0; v = (i + 200) | 0; w = (i + 196) | 0; x = (i + 192) | 0; y = (i + 188) | 0; z = (i + 184) | 0; A = (i + 180) | 0; B = (i + 176) | 0; C = (i + 172) | 0; D = (i + 168) | 0; E = (i + 164) | 0; F = (i + 160) | 0; G = (i + 156) | 0; H = (i + 152) | 0; I = (i + 148) | 0; J = (i + 144) | 0; K = (i + 140) | 0; L = (i + 136) | 0; M = (i + 132) | 0; N = (i + 128) | 0; O = (i + 124) | 0; P = (i + 120) | 0; Q = (i + 116) | 0; R = (i + 112) | 0; S = (i + 108) | 0; T = (i + 104) | 0; U = (i + 100) | 0; V = (i + 96) | 0; W = (i + 92) | 0; X = (i + 88) | 0; Y = (i + 80) | 0; Z = (i + 76) | 0; _ = (i + 72) | 0; $ = (i + 68) | 0; aa = (i + 64) | 0; ba = (i + 60) | 0; ca = (i + 40) | 0; da = (i + 36) | 0; ea = (i + 32) | 0; fa = (i + 28) | 0; ga = (i + 24) | 0; ha = (i + 20) | 0; ia = (i + 248) | 0; ja = (i + 16) | 0; ka = (i + 12) | 0; la = (i + 8) | 0; ma = (i + 4) | 0; na = i; c[ja >> 2] = b; c[ka >> 2] = e; c[la >> 2] = f; c[ma >> 2] = g; c[na >> 2] = h; h = c[ka >> 2] | 0; ka = c[la >> 2] | 0; la = c[ma >> 2] | 0; ma = c[na >> 2] | 0; c[Z >> 2] = c[ja >> 2]; c[_ >> 2] = h; c[$ >> 2] = ka; c[aa >> 2] = la; c[ba >> 2] = ma; c[da >> 2] = fp(ca, c[$ >> 2] | 0, c[aa >> 2] | 0) | 0; if (ap(c[da >> 2] | 0) | 0) { c[Y >> 2] = c[da >> 2]; oa = c[Y >> 2] | 0; l = i; return oa | 0; } c[ea >> 2] = c[Z >> 2]; c[fa >> 2] = (c[ea >> 2] | 0) + (c[_ >> 2] | 0); c[ga >> 2] = (c[ba >> 2] | 0) + 4; c[ha >> 2] = c[ga >> 2]; bp(ia, c[ba >> 2] | 0); ba = c[fa >> 2] | 0; fa = c[ha >> 2] | 0; ha = d[(ia + 2) >> 0] | 0; c[T >> 2] = c[ea >> 2]; c[U >> 2] = ca; c[V >> 2] = ba; c[W >> 2] = fa; c[X >> 2] = ha; c[(i + 84) >> 2] = c[T >> 2]; while (1) { ha = ((gp(c[U >> 2] | 0) | 0) == 0) & 1; if ( !( ha & ((c[T >> 2] | 0) >>> 0 < (((c[V >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { ha = c[U >> 2] | 0; fa = c[W >> 2] | 0; ba = c[X >> 2] | 0; c[O >> 2] = c[T >> 2]; c[P >> 2] = ha; c[Q >> 2] = fa; c[R >> 2] = ba; c[S >> 2] = ip(c[P >> 2] | 0, c[R >> 2] | 0) | 0; ba = c[O >> 2] | 0; fa = ((c[Q >> 2] | 0) + (c[S >> 2] << 2)) | 0; a[ba >> 0] = a[fa >> 0] | 0; a[(ba + 1) >> 0] = a[(fa + 1) >> 0] | 0; jp( c[P >> 2] | 0, d[((c[Q >> 2] | 0) + (c[S >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[Q >> 2] | 0) + (c[S >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; fa = c[U >> 2] | 0; ba = c[W >> 2] | 0; ha = c[X >> 2] | 0; c[J >> 2] = c[T >> 2]; c[K >> 2] = fa; c[L >> 2] = ba; c[M >> 2] = ha; c[N >> 2] = ip(c[K >> 2] | 0, c[M >> 2] | 0) | 0; ha = c[J >> 2] | 0; ba = ((c[L >> 2] | 0) + (c[N >> 2] << 2)) | 0; a[ha >> 0] = a[ba >> 0] | 0; a[(ha + 1) >> 0] = a[(ba + 1) >> 0] | 0; jp( c[K >> 2] | 0, d[((c[L >> 2] | 0) + (c[N >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[L >> 2] | 0) + (c[N >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { ba = c[U >> 2] | 0; ha = c[W >> 2] | 0; fa = c[X >> 2] | 0; c[E >> 2] = c[T >> 2]; c[F >> 2] = ba; c[G >> 2] = ha; c[H >> 2] = fa; c[I >> 2] = ip(c[F >> 2] | 0, c[H >> 2] | 0) | 0; fa = c[E >> 2] | 0; ha = ((c[G >> 2] | 0) + (c[I >> 2] << 2)) | 0; a[fa >> 0] = a[ha >> 0] | 0; a[(fa + 1) >> 0] = a[(ha + 1) >> 0] | 0; jp( c[F >> 2] | 0, d[((c[G >> 2] | 0) + (c[I >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[G >> 2] | 0) + (c[I >> 2] << 2) + 3) >> 0] | 0); } ha = c[U >> 2] | 0; fa = c[W >> 2] | 0; ba = c[X >> 2] | 0; c[z >> 2] = c[T >> 2]; c[A >> 2] = ha; c[B >> 2] = fa; c[C >> 2] = ba; c[D >> 2] = ip(c[A >> 2] | 0, c[C >> 2] | 0) | 0; ba = c[z >> 2] | 0; fa = ((c[B >> 2] | 0) + (c[D >> 2] << 2)) | 0; a[ba >> 0] = a[fa >> 0] | 0; a[(ba + 1) >> 0] = a[(fa + 1) >> 0] | 0; jp( c[A >> 2] | 0, d[((c[B >> 2] | 0) + (c[D >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[B >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0] | 0); } while (1) { D = ((gp(c[U >> 2] | 0) | 0) == 0) & 1; if ( !( D & ((c[T >> 2] | 0) >>> 0 <= (((c[V >> 2] | 0) + -2) | 0) >>> 0) ) ) break; D = c[U >> 2] | 0; B = c[W >> 2] | 0; A = c[X >> 2] | 0; c[u >> 2] = c[T >> 2]; c[v >> 2] = D; c[w >> 2] = B; c[x >> 2] = A; c[y >> 2] = ip(c[v >> 2] | 0, c[x >> 2] | 0) | 0; A = c[u >> 2] | 0; B = ((c[w >> 2] | 0) + (c[y >> 2] << 2)) | 0; a[A >> 0] = a[B >> 0] | 0; a[(A + 1) >> 0] = a[(B + 1) >> 0] | 0; jp( c[v >> 2] | 0, d[((c[w >> 2] | 0) + (c[y >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[w >> 2] | 0) + (c[y >> 2] << 2) + 3) >> 0] | 0); } while (1) { pa = c[T >> 2] | 0; if ( (c[T >> 2] | 0) >>> 0 > (((c[V >> 2] | 0) + -2) | 0) >>> 0 ) break; y = c[U >> 2] | 0; w = c[W >> 2] | 0; v = c[X >> 2] | 0; c[p >> 2] = pa; c[q >> 2] = y; c[r >> 2] = w; c[s >> 2] = v; c[t >> 2] = ip(c[q >> 2] | 0, c[s >> 2] | 0) | 0; v = c[p >> 2] | 0; w = ((c[r >> 2] | 0) + (c[t >> 2] << 2)) | 0; a[v >> 0] = a[w >> 0] | 0; a[(v + 1) >> 0] = a[(w + 1) >> 0] | 0; jp( c[q >> 2] | 0, d[((c[r >> 2] | 0) + (c[t >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[r >> 2] | 0) + (c[t >> 2] << 2) + 3) >> 0] | 0); } if (pa >>> 0 < (c[V >> 2] | 0) >>> 0) { V = c[U >> 2] | 0; U = c[W >> 2] | 0; W = c[X >> 2] | 0; c[j >> 2] = c[T >> 2]; c[k >> 2] = V; c[m >> 2] = U; c[n >> 2] = W; c[o >> 2] = ip(c[k >> 2] | 0, c[n >> 2] | 0) | 0; a[c[j >> 2] >> 0] = a[((c[m >> 2] | 0) + (c[o >> 2] << 2)) >> 0] | 0; j = c[k >> 2] | 0; if ( (d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(j + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[k >> 2] | 0, d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ), (c[((c[k >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[k >> 2] | 0) + 4) >> 2] = 32; } else jp( j, d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + 1; } if (lp(ca) | 0) { c[Y >> 2] = c[_ >> 2]; oa = c[Y >> 2] | 0; l = i; return oa | 0; } else { c[Y >> 2] = -20; oa = c[Y >> 2] | 0; l = i; return oa | 0; } return 0; } function Ip(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0; i = l; l = (l + 256) | 0; j = (i + 244) | 0; k = (i + 240) | 0; m = (i + 236) | 0; n = (i + 232) | 0; o = (i + 228) | 0; p = (i + 224) | 0; q = (i + 220) | 0; r = (i + 216) | 0; s = (i + 212) | 0; t = (i + 208) | 0; u = (i + 204) | 0; v = (i + 200) | 0; w = (i + 196) | 0; x = (i + 192) | 0; y = (i + 188) | 0; z = (i + 184) | 0; A = (i + 180) | 0; B = (i + 176) | 0; C = (i + 172) | 0; D = (i + 168) | 0; E = (i + 164) | 0; F = (i + 160) | 0; G = (i + 156) | 0; H = (i + 152) | 0; I = (i + 148) | 0; J = (i + 144) | 0; K = (i + 140) | 0; L = (i + 136) | 0; M = (i + 132) | 0; N = (i + 128) | 0; O = (i + 124) | 0; P = (i + 120) | 0; Q = (i + 116) | 0; R = (i + 112) | 0; S = (i + 108) | 0; T = (i + 104) | 0; U = (i + 100) | 0; V = (i + 96) | 0; W = (i + 92) | 0; X = (i + 88) | 0; Y = (i + 80) | 0; Z = (i + 76) | 0; _ = (i + 72) | 0; $ = (i + 68) | 0; aa = (i + 64) | 0; ba = (i + 60) | 0; ca = (i + 40) | 0; da = (i + 36) | 0; ea = (i + 32) | 0; fa = (i + 28) | 0; ga = (i + 24) | 0; ha = (i + 20) | 0; ia = (i + 248) | 0; ja = (i + 16) | 0; ka = (i + 12) | 0; la = (i + 8) | 0; ma = (i + 4) | 0; na = i; c[ja >> 2] = b; c[ka >> 2] = e; c[la >> 2] = f; c[ma >> 2] = g; c[na >> 2] = h; h = c[ka >> 2] | 0; ka = c[la >> 2] | 0; la = c[ma >> 2] | 0; ma = c[na >> 2] | 0; c[Z >> 2] = c[ja >> 2]; c[_ >> 2] = h; c[$ >> 2] = ka; c[aa >> 2] = la; c[ba >> 2] = ma; c[da >> 2] = fp(ca, c[$ >> 2] | 0, c[aa >> 2] | 0) | 0; if (ap(c[da >> 2] | 0) | 0) { c[Y >> 2] = c[da >> 2]; oa = c[Y >> 2] | 0; l = i; return oa | 0; } c[ea >> 2] = c[Z >> 2]; c[fa >> 2] = (c[ea >> 2] | 0) + (c[_ >> 2] | 0); c[ga >> 2] = (c[ba >> 2] | 0) + 4; c[ha >> 2] = c[ga >> 2]; bp(ia, c[ba >> 2] | 0); ba = c[fa >> 2] | 0; fa = c[ha >> 2] | 0; ha = d[(ia + 2) >> 0] | 0; c[T >> 2] = c[ea >> 2]; c[U >> 2] = ca; c[V >> 2] = ba; c[W >> 2] = fa; c[X >> 2] = ha; c[(i + 84) >> 2] = c[T >> 2]; while (1) { ha = ((gp(c[U >> 2] | 0) | 0) == 0) & 1; if ( !( ha & ((c[T >> 2] | 0) >>> 0 < (((c[V >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { ha = c[U >> 2] | 0; fa = c[W >> 2] | 0; ba = c[X >> 2] | 0; c[O >> 2] = c[T >> 2]; c[P >> 2] = ha; c[Q >> 2] = fa; c[R >> 2] = ba; c[S >> 2] = ip(c[P >> 2] | 0, c[R >> 2] | 0) | 0; ba = c[O >> 2] | 0; fa = ((c[Q >> 2] | 0) + (c[S >> 2] << 2)) | 0; a[ba >> 0] = a[fa >> 0] | 0; a[(ba + 1) >> 0] = a[(fa + 1) >> 0] | 0; jp( c[P >> 2] | 0, d[((c[Q >> 2] | 0) + (c[S >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[Q >> 2] | 0) + (c[S >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; fa = c[U >> 2] | 0; ba = c[W >> 2] | 0; ha = c[X >> 2] | 0; c[J >> 2] = c[T >> 2]; c[K >> 2] = fa; c[L >> 2] = ba; c[M >> 2] = ha; c[N >> 2] = ip(c[K >> 2] | 0, c[M >> 2] | 0) | 0; ha = c[J >> 2] | 0; ba = ((c[L >> 2] | 0) + (c[N >> 2] << 2)) | 0; a[ha >> 0] = a[ba >> 0] | 0; a[(ha + 1) >> 0] = a[(ba + 1) >> 0] | 0; jp( c[K >> 2] | 0, d[((c[L >> 2] | 0) + (c[N >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[L >> 2] | 0) + (c[N >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { ba = c[U >> 2] | 0; ha = c[W >> 2] | 0; fa = c[X >> 2] | 0; c[E >> 2] = c[T >> 2]; c[F >> 2] = ba; c[G >> 2] = ha; c[H >> 2] = fa; c[I >> 2] = ip(c[F >> 2] | 0, c[H >> 2] | 0) | 0; fa = c[E >> 2] | 0; ha = ((c[G >> 2] | 0) + (c[I >> 2] << 2)) | 0; a[fa >> 0] = a[ha >> 0] | 0; a[(fa + 1) >> 0] = a[(ha + 1) >> 0] | 0; jp( c[F >> 2] | 0, d[((c[G >> 2] | 0) + (c[I >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[G >> 2] | 0) + (c[I >> 2] << 2) + 3) >> 0] | 0); } ha = c[U >> 2] | 0; fa = c[W >> 2] | 0; ba = c[X >> 2] | 0; c[z >> 2] = c[T >> 2]; c[A >> 2] = ha; c[B >> 2] = fa; c[C >> 2] = ba; c[D >> 2] = ip(c[A >> 2] | 0, c[C >> 2] | 0) | 0; ba = c[z >> 2] | 0; fa = ((c[B >> 2] | 0) + (c[D >> 2] << 2)) | 0; a[ba >> 0] = a[fa >> 0] | 0; a[(ba + 1) >> 0] = a[(fa + 1) >> 0] | 0; jp( c[A >> 2] | 0, d[((c[B >> 2] | 0) + (c[D >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[B >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0] | 0); } while (1) { D = ((gp(c[U >> 2] | 0) | 0) == 0) & 1; if ( !( D & ((c[T >> 2] | 0) >>> 0 <= (((c[V >> 2] | 0) + -2) | 0) >>> 0) ) ) break; D = c[U >> 2] | 0; B = c[W >> 2] | 0; A = c[X >> 2] | 0; c[u >> 2] = c[T >> 2]; c[v >> 2] = D; c[w >> 2] = B; c[x >> 2] = A; c[y >> 2] = ip(c[v >> 2] | 0, c[x >> 2] | 0) | 0; A = c[u >> 2] | 0; B = ((c[w >> 2] | 0) + (c[y >> 2] << 2)) | 0; a[A >> 0] = a[B >> 0] | 0; a[(A + 1) >> 0] = a[(B + 1) >> 0] | 0; jp( c[v >> 2] | 0, d[((c[w >> 2] | 0) + (c[y >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[w >> 2] | 0) + (c[y >> 2] << 2) + 3) >> 0] | 0); } while (1) { pa = c[T >> 2] | 0; if ( (c[T >> 2] | 0) >>> 0 > (((c[V >> 2] | 0) + -2) | 0) >>> 0 ) break; y = c[U >> 2] | 0; w = c[W >> 2] | 0; v = c[X >> 2] | 0; c[p >> 2] = pa; c[q >> 2] = y; c[r >> 2] = w; c[s >> 2] = v; c[t >> 2] = ip(c[q >> 2] | 0, c[s >> 2] | 0) | 0; v = c[p >> 2] | 0; w = ((c[r >> 2] | 0) + (c[t >> 2] << 2)) | 0; a[v >> 0] = a[w >> 0] | 0; a[(v + 1) >> 0] = a[(w + 1) >> 0] | 0; jp( c[q >> 2] | 0, d[((c[r >> 2] | 0) + (c[t >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[r >> 2] | 0) + (c[t >> 2] << 2) + 3) >> 0] | 0); } if (pa >>> 0 < (c[V >> 2] | 0) >>> 0) { V = c[U >> 2] | 0; U = c[W >> 2] | 0; W = c[X >> 2] | 0; c[j >> 2] = c[T >> 2]; c[k >> 2] = V; c[m >> 2] = U; c[n >> 2] = W; c[o >> 2] = ip(c[k >> 2] | 0, c[n >> 2] | 0) | 0; a[c[j >> 2] >> 0] = a[((c[m >> 2] | 0) + (c[o >> 2] << 2)) >> 0] | 0; j = c[k >> 2] | 0; if ( (d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(j + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[k >> 2] | 0, d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ), (c[((c[k >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[k >> 2] | 0) + 4) >> 2] = 32; } else jp( j, d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + 1; } if (lp(ca) | 0) { c[Y >> 2] = c[_ >> 2]; oa = c[Y >> 2] | 0; l = i; return oa | 0; } else { c[Y >> 2] = -20; oa = c[Y >> 2] | 0; l = i; return oa | 0; } return 0; } function Jp(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; h = l; l = (l + 32) | 0; i = (h + 24) | 0; j = (h + 20) | 0; k = (h + 16) | 0; m = (h + 12) | 0; n = (h + 8) | 0; o = (h + 4) | 0; p = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; g = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; if (c[p >> 2] | 0) { c[i >> 2] = Kp(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } else { c[i >> 2] = Lp(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } return 0; } function Kp(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0, hc = 0, ic = 0, jc = 0, kc = 0, lc = 0, mc = 0, nc = 0, oc = 0, pc = 0, qc = 0, rc = 0, sc = 0, tc = 0, uc = 0, vc = 0, wc = 0, xc = 0, yc = 0, zc = 0, Ac = 0, Bc = 0, Cc = 0, Dc = 0, Ec = 0, Fc = 0, Gc = 0, Hc = 0, Ic = 0, Jc = 0, Kc = 0, Lc = 0, Mc = 0, Nc = 0, Oc = 0, Pc = 0, Qc = 0, Rc = 0, Sc = 0, Tc = 0, Uc = 0, Vc = 0, Wc = 0, Xc = 0, Yc = 0, Zc = 0, _c = 0, $c = 0, ad = 0, bd = 0, cd = 0, dd = 0, ed = 0, fd = 0, gd = 0, hd = 0, id = 0, jd = 0, kd = 0, ld = 0, md = 0, nd = 0, od = 0, pd = 0, qd = 0, rd = 0, sd = 0, td = 0, ud = 0, vd = 0, wd = 0, xd = 0, yd = 0, zd = 0, Ad = 0, Bd = 0, Cd = 0, Dd = 0, Ed = 0, Fd = 0, Gd = 0, Hd = 0, Id = 0, Jd = 0, Kd = 0, Ld = 0, Md = 0, Nd = 0, Od = 0, Pd = 0, Qd = 0, Rd = 0, Sd = 0, Td = 0, Ud = 0, Vd = 0, Wd = 0, Xd = 0, Yd = 0, Zd = 0, _d = 0, $d = 0, ae = 0, be = 0, ce = 0, de = 0, ee = 0, fe = 0, ge = 0, he = 0, ie = 0, je = 0, ke = 0, le = 0, me = 0, ne = 0, oe = 0, pe = 0, qe = 0, re = 0, se = 0, te = 0, ue = 0, ve = 0, we = 0, xe = 0, ye = 0, ze = 0, Ae = 0, Be = 0, Ce = 0, De = 0, Ee = 0, Fe = 0, Ge = 0; i = l; l = (l + 1216) | 0; j = (i + 1208) | 0; k = (i + 1204) | 0; m = (i + 1200) | 0; n = (i + 1196) | 0; o = (i + 1192) | 0; p = (i + 1188) | 0; q = (i + 1184) | 0; r = (i + 1180) | 0; s = (i + 1176) | 0; t = (i + 1172) | 0; u = (i + 1168) | 0; v = (i + 1164) | 0; w = (i + 1160) | 0; x = (i + 1156) | 0; y = (i + 1152) | 0; z = (i + 1148) | 0; A = (i + 1144) | 0; B = (i + 1140) | 0; C = (i + 1136) | 0; D = (i + 1132) | 0; E = (i + 1128) | 0; F = (i + 1124) | 0; G = (i + 1120) | 0; H = (i + 1116) | 0; I = (i + 1112) | 0; J = (i + 1108) | 0; K = (i + 1104) | 0; L = (i + 1100) | 0; M = (i + 1096) | 0; N = (i + 1092) | 0; O = (i + 1088) | 0; P = (i + 1084) | 0; Q = (i + 1080) | 0; R = (i + 1076) | 0; S = (i + 1072) | 0; T = (i + 1068) | 0; U = (i + 1064) | 0; V = (i + 1060) | 0; W = (i + 1056) | 0; X = (i + 1052) | 0; Y = (i + 1048) | 0; Z = (i + 1044) | 0; _ = (i + 1040) | 0; $ = (i + 1036) | 0; aa = (i + 1032) | 0; ba = (i + 1028) | 0; ca = (i + 1024) | 0; da = (i + 1020) | 0; ea = (i + 1016) | 0; fa = (i + 1012) | 0; ga = (i + 1008) | 0; ha = (i + 1004) | 0; ia = (i + 1e3) | 0; ja = (i + 996) | 0; ka = (i + 992) | 0; la = (i + 988) | 0; ma = (i + 984) | 0; na = (i + 980) | 0; oa = (i + 976) | 0; pa = (i + 972) | 0; qa = (i + 968) | 0; ra = (i + 964) | 0; sa = (i + 960) | 0; ta = (i + 956) | 0; ua = (i + 952) | 0; va = (i + 948) | 0; wa = (i + 944) | 0; xa = (i + 940) | 0; ya = (i + 936) | 0; za = (i + 932) | 0; Aa = (i + 928) | 0; Ba = (i + 924) | 0; Ca = (i + 920) | 0; Da = (i + 916) | 0; Ea = (i + 912) | 0; Fa = (i + 908) | 0; Ga = (i + 904) | 0; Ha = (i + 900) | 0; Ia = (i + 896) | 0; Ja = (i + 892) | 0; Ka = (i + 888) | 0; La = (i + 884) | 0; Ma = (i + 880) | 0; Na = (i + 876) | 0; Oa = (i + 872) | 0; Pa = (i + 868) | 0; Qa = (i + 864) | 0; Ra = (i + 860) | 0; Sa = (i + 856) | 0; Ta = (i + 852) | 0; Ua = (i + 848) | 0; Va = (i + 844) | 0; Wa = (i + 840) | 0; Xa = (i + 836) | 0; Ya = (i + 832) | 0; Za = (i + 828) | 0; _a = (i + 824) | 0; $a = (i + 820) | 0; ab = (i + 816) | 0; bb = (i + 812) | 0; cb = (i + 808) | 0; db = (i + 804) | 0; eb = (i + 800) | 0; fb = (i + 796) | 0; gb = (i + 792) | 0; hb = (i + 788) | 0; ib = (i + 784) | 0; jb = (i + 780) | 0; kb = (i + 776) | 0; lb = (i + 772) | 0; mb = (i + 768) | 0; nb = (i + 764) | 0; ob = (i + 760) | 0; pb = (i + 756) | 0; qb = (i + 752) | 0; rb = (i + 748) | 0; sb = (i + 744) | 0; tb = (i + 740) | 0; ub = (i + 736) | 0; vb = (i + 732) | 0; wb = (i + 728) | 0; xb = (i + 724) | 0; yb = (i + 720) | 0; zb = (i + 716) | 0; Ab = (i + 712) | 0; Bb = (i + 708) | 0; Cb = (i + 704) | 0; Db = (i + 700) | 0; Eb = (i + 696) | 0; Fb = (i + 692) | 0; Gb = (i + 688) | 0; Hb = (i + 684) | 0; Ib = (i + 680) | 0; Jb = (i + 676) | 0; Kb = (i + 672) | 0; Lb = (i + 668) | 0; Mb = (i + 664) | 0; Nb = (i + 660) | 0; Ob = (i + 656) | 0; Pb = (i + 652) | 0; Qb = (i + 648) | 0; Rb = (i + 644) | 0; Sb = (i + 640) | 0; Tb = (i + 636) | 0; Ub = (i + 632) | 0; Vb = (i + 628) | 0; Wb = (i + 624) | 0; Xb = (i + 620) | 0; Yb = (i + 616) | 0; Zb = (i + 612) | 0; _b = (i + 608) | 0; $b = (i + 604) | 0; ac = (i + 600) | 0; bc = (i + 596) | 0; cc = (i + 592) | 0; dc = (i + 588) | 0; ec = (i + 584) | 0; fc = (i + 580) | 0; gc = (i + 576) | 0; hc = (i + 572) | 0; ic = (i + 568) | 0; jc = (i + 564) | 0; kc = (i + 560) | 0; lc = (i + 556) | 0; mc = (i + 552) | 0; nc = (i + 548) | 0; oc = (i + 544) | 0; pc = (i + 540) | 0; qc = (i + 536) | 0; rc = (i + 532) | 0; sc = (i + 528) | 0; tc = (i + 524) | 0; uc = (i + 520) | 0; vc = (i + 516) | 0; wc = (i + 512) | 0; xc = (i + 508) | 0; yc = (i + 504) | 0; zc = (i + 500) | 0; Ac = (i + 496) | 0; Bc = (i + 492) | 0; Cc = (i + 488) | 0; Dc = (i + 484) | 0; Ec = (i + 480) | 0; Fc = (i + 476) | 0; Gc = (i + 472) | 0; Hc = (i + 468) | 0; Ic = (i + 464) | 0; Jc = (i + 460) | 0; Kc = (i + 456) | 0; Lc = (i + 452) | 0; Mc = (i + 448) | 0; Nc = (i + 444) | 0; Oc = (i + 440) | 0; Pc = (i + 436) | 0; Qc = (i + 432) | 0; Rc = (i + 428) | 0; Sc = (i + 424) | 0; Tc = (i + 420) | 0; Uc = (i + 416) | 0; Vc = (i + 412) | 0; Wc = (i + 408) | 0; Xc = (i + 404) | 0; Yc = (i + 400) | 0; Zc = (i + 396) | 0; _c = (i + 392) | 0; $c = (i + 388) | 0; ad = (i + 384) | 0; bd = (i + 380) | 0; cd = (i + 376) | 0; dd = (i + 372) | 0; ed = (i + 368) | 0; fd = (i + 364) | 0; gd = (i + 360) | 0; hd = (i + 356) | 0; id = (i + 352) | 0; jd = (i + 348) | 0; kd = (i + 344) | 0; ld = (i + 340) | 0; md = (i + 336) | 0; nd = (i + 332) | 0; od = (i + 328) | 0; pd = (i + 324) | 0; qd = (i + 320) | 0; rd = (i + 316) | 0; sd = (i + 312) | 0; td = (i + 308) | 0; ud = (i + 304) | 0; vd = (i + 300) | 0; wd = (i + 296) | 0; xd = (i + 292) | 0; yd = (i + 288) | 0; zd = (i + 284) | 0; Ad = (i + 280) | 0; Bd = (i + 276) | 0; Cd = (i + 272) | 0; Dd = (i + 268) | 0; Ed = (i + 264) | 0; Fd = (i + 260) | 0; Gd = (i + 256) | 0; Hd = (i + 252) | 0; Id = (i + 248) | 0; Jd = (i + 244) | 0; Kd = (i + 240) | 0; Ld = (i + 236) | 0; Md = (i + 232) | 0; Nd = (i + 228) | 0; Od = (i + 224) | 0; Pd = (i + 220) | 0; Qd = (i + 216) | 0; Rd = (i + 212) | 0; Sd = (i + 208) | 0; Td = (i + 204) | 0; Ud = (i + 200) | 0; Vd = (i + 196) | 0; Wd = (i + 192) | 0; Xd = (i + 172) | 0; Yd = (i + 152) | 0; Zd = (i + 132) | 0; _d = (i + 112) | 0; $d = (i + 108) | 0; ae = (i + 104) | 0; be = (i + 100) | 0; ce = (i + 96) | 0; de = (i + 92) | 0; ee = (i + 88) | 0; fe = (i + 84) | 0; ge = (i + 80) | 0; he = (i + 76) | 0; ie = (i + 72) | 0; je = (i + 68) | 0; ke = (i + 64) | 0; le = (i + 60) | 0; me = (i + 56) | 0; ne = (i + 52) | 0; oe = (i + 48) | 0; pe = (i + 44) | 0; qe = (i + 1212) | 0; re = (i + 40) | 0; se = (i + 36) | 0; te = (i + 32) | 0; ue = (i + 28) | 0; ve = (i + 24) | 0; we = (i + 20) | 0; xe = (i + 16) | 0; ye = (i + 12) | 0; ze = (i + 8) | 0; Ae = (i + 4) | 0; Be = i; c[xe >> 2] = b; c[ye >> 2] = e; c[ze >> 2] = f; c[Ae >> 2] = g; c[Be >> 2] = h; h = c[ye >> 2] | 0; ye = c[ze >> 2] | 0; ze = c[Ae >> 2] | 0; Ae = c[Be >> 2] | 0; c[Nd >> 2] = c[xe >> 2]; c[Od >> 2] = h; c[Pd >> 2] = ye; c[Qd >> 2] = ze; c[Rd >> 2] = Ae; if ((c[Qd >> 2] | 0) >>> 0 < 10) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[Sd >> 2] = c[Pd >> 2]; c[Td >> 2] = c[Nd >> 2]; c[Ud >> 2] = (c[Td >> 2] | 0) + (c[Od >> 2] | 0); c[Vd >> 2] = (c[Rd >> 2] | 0) + 4; c[Wd >> 2] = c[Vd >> 2]; c[$d >> 2] = (yp(c[Sd >> 2] | 0) | 0) & 65535; c[ae >> 2] = (yp(((c[Sd >> 2] | 0) + 2) | 0) | 0) & 65535; c[be >> 2] = (yp(((c[Sd >> 2] | 0) + 4) | 0) | 0) & 65535; c[ce >> 2] = (c[Qd >> 2] | 0) - ((c[$d >> 2] | 0) + (c[ae >> 2] | 0) + (c[be >> 2] | 0) + 6); c[de >> 2] = (c[Sd >> 2] | 0) + 6; c[ee >> 2] = (c[de >> 2] | 0) + (c[$d >> 2] | 0); c[fe >> 2] = (c[ee >> 2] | 0) + (c[ae >> 2] | 0); c[ge >> 2] = (c[fe >> 2] | 0) + (c[be >> 2] | 0); c[he >> 2] = (((((c[Od >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[ie >> 2] = (c[Td >> 2] | 0) + (c[he >> 2] | 0); c[je >> 2] = (c[ie >> 2] | 0) + (c[he >> 2] | 0); c[ke >> 2] = (c[je >> 2] | 0) + (c[he >> 2] | 0); c[le >> 2] = c[Td >> 2]; c[me >> 2] = c[ie >> 2]; c[ne >> 2] = c[je >> 2]; c[oe >> 2] = c[ke >> 2]; bp(qe, c[Rd >> 2] | 0); c[re >> 2] = d[(qe + 2) >> 0]; if ((c[ce >> 2] | 0) >>> 0 > (c[Qd >> 2] | 0) >>> 0) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[se >> 2] = fp(Xd, c[de >> 2] | 0, c[$d >> 2] | 0) | 0; if (ap(c[se >> 2] | 0) | 0) { c[Md >> 2] = c[se >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[te >> 2] = fp(Yd, c[ee >> 2] | 0, c[ae >> 2] | 0) | 0; if (ap(c[te >> 2] | 0) | 0) { c[Md >> 2] = c[te >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[ue >> 2] = fp(Zd, c[fe >> 2] | 0, c[be >> 2] | 0) | 0; if (ap(c[ue >> 2] | 0) | 0) { c[Md >> 2] = c[ue >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[ve >> 2] = fp(_d, c[ge >> 2] | 0, c[ce >> 2] | 0) | 0; if (ap(c[ve >> 2] | 0) | 0) { c[Md >> 2] = c[ve >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } ve = gp(Xd) | 0; ce = ve | (gp(Yd) | 0); ve = ce | (gp(Zd) | 0); c[pe >> 2] = ve | (gp(_d) | 0); while (1) { if ( !( ((c[pe >> 2] | 0) == 0 ? (c[oe >> 2] | 0) >>> 0 < (((c[Ud >> 2] | 0) + -3) | 0) >>> 0 : 0) | 0 ) ) break; if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Hd >> 2] = c[le >> 2]; c[Id >> 2] = Xd; c[Jd >> 2] = ve; c[Kd >> 2] = ce; c[Ld >> 2] = ip(c[Id >> 2] | 0, c[Kd >> 2] | 0) | 0; ce = c[Hd >> 2] | 0; ve = ((c[Jd >> 2] | 0) + (c[Ld >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Id >> 2] | 0, d[((c[Jd >> 2] | 0) + (c[Ld >> 2] << 2) + 2) >> 0] | 0 ); c[le >> 2] = (c[le >> 2] | 0) + (d[((c[Jd >> 2] | 0) + (c[Ld >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Cd >> 2] = c[me >> 2]; c[Dd >> 2] = Yd; c[Ed >> 2] = ve; c[Fd >> 2] = ce; c[Gd >> 2] = ip(c[Dd >> 2] | 0, c[Fd >> 2] | 0) | 0; ce = c[Cd >> 2] | 0; ve = ((c[Ed >> 2] | 0) + (c[Gd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Dd >> 2] | 0, d[((c[Ed >> 2] | 0) + (c[Gd >> 2] << 2) + 2) >> 0] | 0 ); c[me >> 2] = (c[me >> 2] | 0) + (d[((c[Ed >> 2] | 0) + (c[Gd >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[xd >> 2] = c[ne >> 2]; c[yd >> 2] = Zd; c[zd >> 2] = ve; c[Ad >> 2] = ce; c[Bd >> 2] = ip(c[yd >> 2] | 0, c[Ad >> 2] | 0) | 0; ce = c[xd >> 2] | 0; ve = ((c[zd >> 2] | 0) + (c[Bd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[yd >> 2] | 0, d[((c[zd >> 2] | 0) + (c[Bd >> 2] << 2) + 2) >> 0] | 0 ); c[ne >> 2] = (c[ne >> 2] | 0) + (d[((c[zd >> 2] | 0) + (c[Bd >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[sd >> 2] = c[oe >> 2]; c[td >> 2] = _d; c[ud >> 2] = ve; c[vd >> 2] = ce; c[wd >> 2] = ip(c[td >> 2] | 0, c[vd >> 2] | 0) | 0; ce = c[sd >> 2] | 0; ve = ((c[ud >> 2] | 0) + (c[wd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[td >> 2] | 0, d[((c[ud >> 2] | 0) + (c[wd >> 2] << 2) + 2) >> 0] | 0 ); c[oe >> 2] = (c[oe >> 2] | 0) + (d[((c[ud >> 2] | 0) + (c[wd >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[nd >> 2] = c[le >> 2]; c[od >> 2] = Xd; c[pd >> 2] = ve; c[qd >> 2] = ce; c[rd >> 2] = ip(c[od >> 2] | 0, c[qd >> 2] | 0) | 0; ce = c[nd >> 2] | 0; ve = ((c[pd >> 2] | 0) + (c[rd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[od >> 2] | 0, d[((c[pd >> 2] | 0) + (c[rd >> 2] << 2) + 2) >> 0] | 0 ); c[le >> 2] = (c[le >> 2] | 0) + (d[((c[pd >> 2] | 0) + (c[rd >> 2] << 2) + 3) >> 0] | 0); hp() | 0; ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[id >> 2] = c[me >> 2]; c[jd >> 2] = Yd; c[kd >> 2] = ve; c[ld >> 2] = ce; c[md >> 2] = ip(c[jd >> 2] | 0, c[ld >> 2] | 0) | 0; ce = c[id >> 2] | 0; ve = ((c[kd >> 2] | 0) + (c[md >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[jd >> 2] | 0, d[((c[kd >> 2] | 0) + (c[md >> 2] << 2) + 2) >> 0] | 0 ); c[me >> 2] = (c[me >> 2] | 0) + (d[((c[kd >> 2] | 0) + (c[md >> 2] << 2) + 3) >> 0] | 0); hp() | 0; ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[dd >> 2] = c[ne >> 2]; c[ed >> 2] = Zd; c[fd >> 2] = ve; c[gd >> 2] = ce; c[hd >> 2] = ip(c[ed >> 2] | 0, c[gd >> 2] | 0) | 0; ce = c[dd >> 2] | 0; ve = ((c[fd >> 2] | 0) + (c[hd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[ed >> 2] | 0, d[((c[fd >> 2] | 0) + (c[hd >> 2] << 2) + 2) >> 0] | 0 ); c[ne >> 2] = (c[ne >> 2] | 0) + (d[((c[fd >> 2] | 0) + (c[hd >> 2] << 2) + 3) >> 0] | 0); hp() | 0; ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[_c >> 2] = c[oe >> 2]; c[$c >> 2] = _d; c[ad >> 2] = ve; c[bd >> 2] = ce; c[cd >> 2] = ip(c[$c >> 2] | 0, c[bd >> 2] | 0) | 0; ce = c[_c >> 2] | 0; ve = ((c[ad >> 2] | 0) + (c[cd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[$c >> 2] | 0, d[((c[ad >> 2] | 0) + (c[cd >> 2] << 2) + 2) >> 0] | 0 ); c[oe >> 2] = (c[oe >> 2] | 0) + (d[((c[ad >> 2] | 0) + (c[cd >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Vc >> 2] = c[le >> 2]; c[Wc >> 2] = Xd; c[Xc >> 2] = ve; c[Yc >> 2] = ce; c[Zc >> 2] = ip(c[Wc >> 2] | 0, c[Yc >> 2] | 0) | 0; ce = c[Vc >> 2] | 0; ve = ((c[Xc >> 2] | 0) + (c[Zc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Wc >> 2] | 0, d[((c[Xc >> 2] | 0) + (c[Zc >> 2] << 2) + 2) >> 0] | 0 ); c[le >> 2] = (c[le >> 2] | 0) + (d[((c[Xc >> 2] | 0) + (c[Zc >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Qc >> 2] = c[me >> 2]; c[Rc >> 2] = Yd; c[Sc >> 2] = ve; c[Tc >> 2] = ce; c[Uc >> 2] = ip(c[Rc >> 2] | 0, c[Tc >> 2] | 0) | 0; ce = c[Qc >> 2] | 0; ve = ((c[Sc >> 2] | 0) + (c[Uc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Rc >> 2] | 0, d[((c[Sc >> 2] | 0) + (c[Uc >> 2] << 2) + 2) >> 0] | 0 ); c[me >> 2] = (c[me >> 2] | 0) + (d[((c[Sc >> 2] | 0) + (c[Uc >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Lc >> 2] = c[ne >> 2]; c[Mc >> 2] = Zd; c[Nc >> 2] = ve; c[Oc >> 2] = ce; c[Pc >> 2] = ip(c[Mc >> 2] | 0, c[Oc >> 2] | 0) | 0; ce = c[Lc >> 2] | 0; ve = ((c[Nc >> 2] | 0) + (c[Pc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Mc >> 2] | 0, d[((c[Nc >> 2] | 0) + (c[Pc >> 2] << 2) + 2) >> 0] | 0 ); c[ne >> 2] = (c[ne >> 2] | 0) + (d[((c[Nc >> 2] | 0) + (c[Pc >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Gc >> 2] = c[oe >> 2]; c[Hc >> 2] = _d; c[Ic >> 2] = ve; c[Jc >> 2] = ce; c[Kc >> 2] = ip(c[Hc >> 2] | 0, c[Jc >> 2] | 0) | 0; ce = c[Gc >> 2] | 0; ve = ((c[Ic >> 2] | 0) + (c[Kc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Hc >> 2] | 0, d[((c[Ic >> 2] | 0) + (c[Kc >> 2] << 2) + 2) >> 0] | 0 ); c[oe >> 2] = (c[oe >> 2] | 0) + (d[((c[Ic >> 2] | 0) + (c[Kc >> 2] << 2) + 3) >> 0] | 0); } ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Bc >> 2] = c[le >> 2]; c[Cc >> 2] = Xd; c[Dc >> 2] = ve; c[Ec >> 2] = ce; c[Fc >> 2] = ip(c[Cc >> 2] | 0, c[Ec >> 2] | 0) | 0; ce = c[Bc >> 2] | 0; ve = ((c[Dc >> 2] | 0) + (c[Fc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Cc >> 2] | 0, d[((c[Dc >> 2] | 0) + (c[Fc >> 2] << 2) + 2) >> 0] | 0 ); c[le >> 2] = (c[le >> 2] | 0) + (d[((c[Dc >> 2] | 0) + (c[Fc >> 2] << 2) + 3) >> 0] | 0); ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[wc >> 2] = c[me >> 2]; c[xc >> 2] = Yd; c[yc >> 2] = ve; c[zc >> 2] = ce; c[Ac >> 2] = ip(c[xc >> 2] | 0, c[zc >> 2] | 0) | 0; ce = c[wc >> 2] | 0; ve = ((c[yc >> 2] | 0) + (c[Ac >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[xc >> 2] | 0, d[((c[yc >> 2] | 0) + (c[Ac >> 2] << 2) + 2) >> 0] | 0 ); c[me >> 2] = (c[me >> 2] | 0) + (d[((c[yc >> 2] | 0) + (c[Ac >> 2] << 2) + 3) >> 0] | 0); ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[rc >> 2] = c[ne >> 2]; c[sc >> 2] = Zd; c[tc >> 2] = ve; c[uc >> 2] = ce; c[vc >> 2] = ip(c[sc >> 2] | 0, c[uc >> 2] | 0) | 0; ce = c[rc >> 2] | 0; ve = ((c[tc >> 2] | 0) + (c[vc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[sc >> 2] | 0, d[((c[tc >> 2] | 0) + (c[vc >> 2] << 2) + 2) >> 0] | 0 ); c[ne >> 2] = (c[ne >> 2] | 0) + (d[((c[tc >> 2] | 0) + (c[vc >> 2] << 2) + 3) >> 0] | 0); ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[mc >> 2] = c[oe >> 2]; c[nc >> 2] = _d; c[oc >> 2] = ve; c[pc >> 2] = ce; c[qc >> 2] = ip(c[nc >> 2] | 0, c[pc >> 2] | 0) | 0; ce = c[mc >> 2] | 0; ve = ((c[oc >> 2] | 0) + (c[qc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[nc >> 2] | 0, d[((c[oc >> 2] | 0) + (c[qc >> 2] << 2) + 2) >> 0] | 0 ); c[oe >> 2] = (c[oe >> 2] | 0) + (d[((c[oc >> 2] | 0) + (c[qc >> 2] << 2) + 3) >> 0] | 0); ve = gp(Xd) | 0; ce = ve | (gp(Yd) | 0); ve = ce | (gp(Zd) | 0); c[pe >> 2] = ve | (gp(_d) | 0); } if ((c[le >> 2] | 0) >>> 0 > (c[ie >> 2] | 0) >>> 0) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } if ((c[me >> 2] | 0) >>> 0 > (c[je >> 2] | 0) >>> 0) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } if ((c[ne >> 2] | 0) >>> 0 > (c[ke >> 2] | 0) >>> 0) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } pe = c[ie >> 2] | 0; ie = c[Wd >> 2] | 0; qc = c[re >> 2] | 0; c[gc >> 2] = c[le >> 2]; c[hc >> 2] = Xd; c[ic >> 2] = pe; c[jc >> 2] = ie; c[kc >> 2] = qc; c[lc >> 2] = c[gc >> 2]; while (1) { lc = ((gp(c[hc >> 2] | 0) | 0) == 0) & 1; if ( !( lc & ((c[gc >> 2] | 0) >>> 0 < (((c[ic >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { lc = c[hc >> 2] | 0; qc = c[jc >> 2] | 0; ie = c[kc >> 2] | 0; c[bc >> 2] = c[gc >> 2]; c[cc >> 2] = lc; c[dc >> 2] = qc; c[ec >> 2] = ie; c[fc >> 2] = ip(c[cc >> 2] | 0, c[ec >> 2] | 0) | 0; ie = c[bc >> 2] | 0; qc = ((c[dc >> 2] | 0) + (c[fc >> 2] << 2)) | 0; a[ie >> 0] = a[qc >> 0] | 0; a[(ie + 1) >> 0] = a[(qc + 1) >> 0] | 0; jp( c[cc >> 2] | 0, d[((c[dc >> 2] | 0) + (c[fc >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[dc >> 2] | 0) + (c[fc >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; qc = c[hc >> 2] | 0; ie = c[jc >> 2] | 0; lc = c[kc >> 2] | 0; c[Yb >> 2] = c[gc >> 2]; c[Zb >> 2] = qc; c[_b >> 2] = ie; c[$b >> 2] = lc; c[ac >> 2] = ip(c[Zb >> 2] | 0, c[$b >> 2] | 0) | 0; lc = c[Yb >> 2] | 0; ie = ((c[_b >> 2] | 0) + (c[ac >> 2] << 2)) | 0; a[lc >> 0] = a[ie >> 0] | 0; a[(lc + 1) >> 0] = a[(ie + 1) >> 0] | 0; jp( c[Zb >> 2] | 0, d[((c[_b >> 2] | 0) + (c[ac >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[_b >> 2] | 0) + (c[ac >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { ie = c[hc >> 2] | 0; lc = c[jc >> 2] | 0; qc = c[kc >> 2] | 0; c[Tb >> 2] = c[gc >> 2]; c[Ub >> 2] = ie; c[Vb >> 2] = lc; c[Wb >> 2] = qc; c[Xb >> 2] = ip(c[Ub >> 2] | 0, c[Wb >> 2] | 0) | 0; qc = c[Tb >> 2] | 0; lc = ((c[Vb >> 2] | 0) + (c[Xb >> 2] << 2)) | 0; a[qc >> 0] = a[lc >> 0] | 0; a[(qc + 1) >> 0] = a[(lc + 1) >> 0] | 0; jp( c[Ub >> 2] | 0, d[((c[Vb >> 2] | 0) + (c[Xb >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[Vb >> 2] | 0) + (c[Xb >> 2] << 2) + 3) >> 0] | 0); } lc = c[hc >> 2] | 0; qc = c[jc >> 2] | 0; ie = c[kc >> 2] | 0; c[Ob >> 2] = c[gc >> 2]; c[Pb >> 2] = lc; c[Qb >> 2] = qc; c[Rb >> 2] = ie; c[Sb >> 2] = ip(c[Pb >> 2] | 0, c[Rb >> 2] | 0) | 0; ie = c[Ob >> 2] | 0; qc = ((c[Qb >> 2] | 0) + (c[Sb >> 2] << 2)) | 0; a[ie >> 0] = a[qc >> 0] | 0; a[(ie + 1) >> 0] = a[(qc + 1) >> 0] | 0; jp( c[Pb >> 2] | 0, d[((c[Qb >> 2] | 0) + (c[Sb >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[Qb >> 2] | 0) + (c[Sb >> 2] << 2) + 3) >> 0] | 0); } while (1) { Sb = ((gp(c[hc >> 2] | 0) | 0) == 0) & 1; if ( !( Sb & ((c[gc >> 2] | 0) >>> 0 <= (((c[ic >> 2] | 0) + -2) | 0) >>> 0) ) ) break; Sb = c[hc >> 2] | 0; Qb = c[jc >> 2] | 0; Pb = c[kc >> 2] | 0; c[Jb >> 2] = c[gc >> 2]; c[Kb >> 2] = Sb; c[Lb >> 2] = Qb; c[Mb >> 2] = Pb; c[Nb >> 2] = ip(c[Kb >> 2] | 0, c[Mb >> 2] | 0) | 0; Pb = c[Jb >> 2] | 0; Qb = ((c[Lb >> 2] | 0) + (c[Nb >> 2] << 2)) | 0; a[Pb >> 0] = a[Qb >> 0] | 0; a[(Pb + 1) >> 0] = a[(Qb + 1) >> 0] | 0; jp( c[Kb >> 2] | 0, d[((c[Lb >> 2] | 0) + (c[Nb >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[Lb >> 2] | 0) + (c[Nb >> 2] << 2) + 3) >> 0] | 0); } while (1) { De = c[gc >> 2] | 0; if ( (c[gc >> 2] | 0) >>> 0 > (((c[ic >> 2] | 0) + -2) | 0) >>> 0 ) break; Nb = c[hc >> 2] | 0; Lb = c[jc >> 2] | 0; Kb = c[kc >> 2] | 0; c[Eb >> 2] = De; c[Fb >> 2] = Nb; c[Gb >> 2] = Lb; c[Hb >> 2] = Kb; c[Ib >> 2] = ip(c[Fb >> 2] | 0, c[Hb >> 2] | 0) | 0; Kb = c[Eb >> 2] | 0; Lb = ((c[Gb >> 2] | 0) + (c[Ib >> 2] << 2)) | 0; a[Kb >> 0] = a[Lb >> 0] | 0; a[(Kb + 1) >> 0] = a[(Lb + 1) >> 0] | 0; jp( c[Fb >> 2] | 0, d[((c[Gb >> 2] | 0) + (c[Ib >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[Gb >> 2] | 0) + (c[Ib >> 2] << 2) + 3) >> 0] | 0); } if (De >>> 0 < (c[ic >> 2] | 0) >>> 0) { ic = c[hc >> 2] | 0; hc = c[jc >> 2] | 0; jc = c[kc >> 2] | 0; c[zb >> 2] = c[gc >> 2]; c[Ab >> 2] = ic; c[Bb >> 2] = hc; c[Cb >> 2] = jc; c[Db >> 2] = ip(c[Ab >> 2] | 0, c[Cb >> 2] | 0) | 0; a[c[zb >> 2] >> 0] = a[((c[Bb >> 2] | 0) + (c[Db >> 2] << 2)) >> 0] | 0; zb = c[Ab >> 2] | 0; if ( (d[((c[Bb >> 2] | 0) + (c[Db >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(zb + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[Ab >> 2] | 0, d[ ((c[Bb >> 2] | 0) + (c[Db >> 2] << 2) + 2) >> 0 ] | 0 ), (c[((c[Ab >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[Ab >> 2] | 0) + 4) >> 2] = 32; } else jp( zb, d[((c[Bb >> 2] | 0) + (c[Db >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + 1; } gc = c[je >> 2] | 0; je = c[Wd >> 2] | 0; Db = c[re >> 2] | 0; c[tb >> 2] = c[me >> 2]; c[ub >> 2] = Yd; c[vb >> 2] = gc; c[wb >> 2] = je; c[xb >> 2] = Db; c[yb >> 2] = c[tb >> 2]; while (1) { yb = ((gp(c[ub >> 2] | 0) | 0) == 0) & 1; if ( !( yb & ((c[tb >> 2] | 0) >>> 0 < (((c[vb >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { yb = c[ub >> 2] | 0; Db = c[wb >> 2] | 0; je = c[xb >> 2] | 0; c[ob >> 2] = c[tb >> 2]; c[pb >> 2] = yb; c[qb >> 2] = Db; c[rb >> 2] = je; c[sb >> 2] = ip(c[pb >> 2] | 0, c[rb >> 2] | 0) | 0; je = c[ob >> 2] | 0; Db = ((c[qb >> 2] | 0) + (c[sb >> 2] << 2)) | 0; a[je >> 0] = a[Db >> 0] | 0; a[(je + 1) >> 0] = a[(Db + 1) >> 0] | 0; jp( c[pb >> 2] | 0, d[((c[qb >> 2] | 0) + (c[sb >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[qb >> 2] | 0) + (c[sb >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; Db = c[ub >> 2] | 0; je = c[wb >> 2] | 0; yb = c[xb >> 2] | 0; c[jb >> 2] = c[tb >> 2]; c[kb >> 2] = Db; c[lb >> 2] = je; c[mb >> 2] = yb; c[nb >> 2] = ip(c[kb >> 2] | 0, c[mb >> 2] | 0) | 0; yb = c[jb >> 2] | 0; je = ((c[lb >> 2] | 0) + (c[nb >> 2] << 2)) | 0; a[yb >> 0] = a[je >> 0] | 0; a[(yb + 1) >> 0] = a[(je + 1) >> 0] | 0; jp( c[kb >> 2] | 0, d[((c[lb >> 2] | 0) + (c[nb >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[lb >> 2] | 0) + (c[nb >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { je = c[ub >> 2] | 0; yb = c[wb >> 2] | 0; Db = c[xb >> 2] | 0; c[eb >> 2] = c[tb >> 2]; c[fb >> 2] = je; c[gb >> 2] = yb; c[hb >> 2] = Db; c[ib >> 2] = ip(c[fb >> 2] | 0, c[hb >> 2] | 0) | 0; Db = c[eb >> 2] | 0; yb = ((c[gb >> 2] | 0) + (c[ib >> 2] << 2)) | 0; a[Db >> 0] = a[yb >> 0] | 0; a[(Db + 1) >> 0] = a[(yb + 1) >> 0] | 0; jp( c[fb >> 2] | 0, d[((c[gb >> 2] | 0) + (c[ib >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[gb >> 2] | 0) + (c[ib >> 2] << 2) + 3) >> 0] | 0); } yb = c[ub >> 2] | 0; Db = c[wb >> 2] | 0; je = c[xb >> 2] | 0; c[$a >> 2] = c[tb >> 2]; c[ab >> 2] = yb; c[bb >> 2] = Db; c[cb >> 2] = je; c[db >> 2] = ip(c[ab >> 2] | 0, c[cb >> 2] | 0) | 0; je = c[$a >> 2] | 0; Db = ((c[bb >> 2] | 0) + (c[db >> 2] << 2)) | 0; a[je >> 0] = a[Db >> 0] | 0; a[(je + 1) >> 0] = a[(Db + 1) >> 0] | 0; jp( c[ab >> 2] | 0, d[((c[bb >> 2] | 0) + (c[db >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[bb >> 2] | 0) + (c[db >> 2] << 2) + 3) >> 0] | 0); } while (1) { db = ((gp(c[ub >> 2] | 0) | 0) == 0) & 1; if ( !( db & ((c[tb >> 2] | 0) >>> 0 <= (((c[vb >> 2] | 0) + -2) | 0) >>> 0) ) ) break; db = c[ub >> 2] | 0; bb = c[wb >> 2] | 0; ab = c[xb >> 2] | 0; c[Wa >> 2] = c[tb >> 2]; c[Xa >> 2] = db; c[Ya >> 2] = bb; c[Za >> 2] = ab; c[_a >> 2] = ip(c[Xa >> 2] | 0, c[Za >> 2] | 0) | 0; ab = c[Wa >> 2] | 0; bb = ((c[Ya >> 2] | 0) + (c[_a >> 2] << 2)) | 0; a[ab >> 0] = a[bb >> 0] | 0; a[(ab + 1) >> 0] = a[(bb + 1) >> 0] | 0; jp( c[Xa >> 2] | 0, d[((c[Ya >> 2] | 0) + (c[_a >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[Ya >> 2] | 0) + (c[_a >> 2] << 2) + 3) >> 0] | 0); } while (1) { Ee = c[tb >> 2] | 0; if ( (c[tb >> 2] | 0) >>> 0 > (((c[vb >> 2] | 0) + -2) | 0) >>> 0 ) break; _a = c[ub >> 2] | 0; Ya = c[wb >> 2] | 0; Xa = c[xb >> 2] | 0; c[Ra >> 2] = Ee; c[Sa >> 2] = _a; c[Ta >> 2] = Ya; c[Ua >> 2] = Xa; c[Va >> 2] = ip(c[Sa >> 2] | 0, c[Ua >> 2] | 0) | 0; Xa = c[Ra >> 2] | 0; Ya = ((c[Ta >> 2] | 0) + (c[Va >> 2] << 2)) | 0; a[Xa >> 0] = a[Ya >> 0] | 0; a[(Xa + 1) >> 0] = a[(Ya + 1) >> 0] | 0; jp( c[Sa >> 2] | 0, d[((c[Ta >> 2] | 0) + (c[Va >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[Ta >> 2] | 0) + (c[Va >> 2] << 2) + 3) >> 0] | 0); } if (Ee >>> 0 < (c[vb >> 2] | 0) >>> 0) { vb = c[ub >> 2] | 0; ub = c[wb >> 2] | 0; wb = c[xb >> 2] | 0; c[Ma >> 2] = c[tb >> 2]; c[Na >> 2] = vb; c[Oa >> 2] = ub; c[Pa >> 2] = wb; c[Qa >> 2] = ip(c[Na >> 2] | 0, c[Pa >> 2] | 0) | 0; a[c[Ma >> 2] >> 0] = a[((c[Oa >> 2] | 0) + (c[Qa >> 2] << 2)) >> 0] | 0; Ma = c[Na >> 2] | 0; if ( (d[((c[Oa >> 2] | 0) + (c[Qa >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(Ma + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[Na >> 2] | 0, d[ ((c[Oa >> 2] | 0) + (c[Qa >> 2] << 2) + 2) >> 0 ] | 0 ), (c[((c[Na >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[Na >> 2] | 0) + 4) >> 2] = 32; } else jp( Ma, d[((c[Oa >> 2] | 0) + (c[Qa >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + 1; } tb = c[ke >> 2] | 0; ke = c[Wd >> 2] | 0; Qa = c[re >> 2] | 0; c[Ga >> 2] = c[ne >> 2]; c[Ha >> 2] = Zd; c[Ia >> 2] = tb; c[Ja >> 2] = ke; c[Ka >> 2] = Qa; c[La >> 2] = c[Ga >> 2]; while (1) { La = ((gp(c[Ha >> 2] | 0) | 0) == 0) & 1; if ( !( La & ((c[Ga >> 2] | 0) >>> 0 < (((c[Ia >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { La = c[Ha >> 2] | 0; Qa = c[Ja >> 2] | 0; ke = c[Ka >> 2] | 0; c[Ba >> 2] = c[Ga >> 2]; c[Ca >> 2] = La; c[Da >> 2] = Qa; c[Ea >> 2] = ke; c[Fa >> 2] = ip(c[Ca >> 2] | 0, c[Ea >> 2] | 0) | 0; ke = c[Ba >> 2] | 0; Qa = ((c[Da >> 2] | 0) + (c[Fa >> 2] << 2)) | 0; a[ke >> 0] = a[Qa >> 0] | 0; a[(ke + 1) >> 0] = a[(Qa + 1) >> 0] | 0; jp( c[Ca >> 2] | 0, d[((c[Da >> 2] | 0) + (c[Fa >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[Da >> 2] | 0) + (c[Fa >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; Qa = c[Ha >> 2] | 0; ke = c[Ja >> 2] | 0; La = c[Ka >> 2] | 0; c[wa >> 2] = c[Ga >> 2]; c[xa >> 2] = Qa; c[ya >> 2] = ke; c[za >> 2] = La; c[Aa >> 2] = ip(c[xa >> 2] | 0, c[za >> 2] | 0) | 0; La = c[wa >> 2] | 0; ke = ((c[ya >> 2] | 0) + (c[Aa >> 2] << 2)) | 0; a[La >> 0] = a[ke >> 0] | 0; a[(La + 1) >> 0] = a[(ke + 1) >> 0] | 0; jp( c[xa >> 2] | 0, d[((c[ya >> 2] | 0) + (c[Aa >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[ya >> 2] | 0) + (c[Aa >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { ke = c[Ha >> 2] | 0; La = c[Ja >> 2] | 0; Qa = c[Ka >> 2] | 0; c[ra >> 2] = c[Ga >> 2]; c[sa >> 2] = ke; c[ta >> 2] = La; c[ua >> 2] = Qa; c[va >> 2] = ip(c[sa >> 2] | 0, c[ua >> 2] | 0) | 0; Qa = c[ra >> 2] | 0; La = ((c[ta >> 2] | 0) + (c[va >> 2] << 2)) | 0; a[Qa >> 0] = a[La >> 0] | 0; a[(Qa + 1) >> 0] = a[(La + 1) >> 0] | 0; jp( c[sa >> 2] | 0, d[((c[ta >> 2] | 0) + (c[va >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[ta >> 2] | 0) + (c[va >> 2] << 2) + 3) >> 0] | 0); } La = c[Ha >> 2] | 0; Qa = c[Ja >> 2] | 0; ke = c[Ka >> 2] | 0; c[ma >> 2] = c[Ga >> 2]; c[na >> 2] = La; c[oa >> 2] = Qa; c[pa >> 2] = ke; c[qa >> 2] = ip(c[na >> 2] | 0, c[pa >> 2] | 0) | 0; ke = c[ma >> 2] | 0; Qa = ((c[oa >> 2] | 0) + (c[qa >> 2] << 2)) | 0; a[ke >> 0] = a[Qa >> 0] | 0; a[(ke + 1) >> 0] = a[(Qa + 1) >> 0] | 0; jp( c[na >> 2] | 0, d[((c[oa >> 2] | 0) + (c[qa >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[oa >> 2] | 0) + (c[qa >> 2] << 2) + 3) >> 0] | 0); } while (1) { qa = ((gp(c[Ha >> 2] | 0) | 0) == 0) & 1; if ( !( qa & ((c[Ga >> 2] | 0) >>> 0 <= (((c[Ia >> 2] | 0) + -2) | 0) >>> 0) ) ) break; qa = c[Ha >> 2] | 0; oa = c[Ja >> 2] | 0; na = c[Ka >> 2] | 0; c[ha >> 2] = c[Ga >> 2]; c[ia >> 2] = qa; c[ja >> 2] = oa; c[ka >> 2] = na; c[la >> 2] = ip(c[ia >> 2] | 0, c[ka >> 2] | 0) | 0; na = c[ha >> 2] | 0; oa = ((c[ja >> 2] | 0) + (c[la >> 2] << 2)) | 0; a[na >> 0] = a[oa >> 0] | 0; a[(na + 1) >> 0] = a[(oa + 1) >> 0] | 0; jp( c[ia >> 2] | 0, d[((c[ja >> 2] | 0) + (c[la >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[ja >> 2] | 0) + (c[la >> 2] << 2) + 3) >> 0] | 0); } while (1) { Fe = c[Ga >> 2] | 0; if ( (c[Ga >> 2] | 0) >>> 0 > (((c[Ia >> 2] | 0) + -2) | 0) >>> 0 ) break; la = c[Ha >> 2] | 0; ja = c[Ja >> 2] | 0; ia = c[Ka >> 2] | 0; c[ca >> 2] = Fe; c[da >> 2] = la; c[ea >> 2] = ja; c[fa >> 2] = ia; c[ga >> 2] = ip(c[da >> 2] | 0, c[fa >> 2] | 0) | 0; ia = c[ca >> 2] | 0; ja = ((c[ea >> 2] | 0) + (c[ga >> 2] << 2)) | 0; a[ia >> 0] = a[ja >> 0] | 0; a[(ia + 1) >> 0] = a[(ja + 1) >> 0] | 0; jp( c[da >> 2] | 0, d[((c[ea >> 2] | 0) + (c[ga >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[ea >> 2] | 0) + (c[ga >> 2] << 2) + 3) >> 0] | 0); } if (Fe >>> 0 < (c[Ia >> 2] | 0) >>> 0) { Ia = c[Ha >> 2] | 0; Ha = c[Ja >> 2] | 0; Ja = c[Ka >> 2] | 0; c[Z >> 2] = c[Ga >> 2]; c[_ >> 2] = Ia; c[$ >> 2] = Ha; c[aa >> 2] = Ja; c[ba >> 2] = ip(c[_ >> 2] | 0, c[aa >> 2] | 0) | 0; a[c[Z >> 2] >> 0] = a[((c[$ >> 2] | 0) + (c[ba >> 2] << 2)) >> 0] | 0; Z = c[_ >> 2] | 0; if ( (d[((c[$ >> 2] | 0) + (c[ba >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(Z + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[_ >> 2] | 0, d[ ((c[$ >> 2] | 0) + (c[ba >> 2] << 2) + 2) >> 0 ] | 0 ), (c[((c[_ >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[_ >> 2] | 0) + 4) >> 2] = 32; } else jp( Z, d[((c[$ >> 2] | 0) + (c[ba >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + 1; } Ga = c[Ud >> 2] | 0; Ud = c[Wd >> 2] | 0; Wd = c[re >> 2] | 0; c[T >> 2] = c[oe >> 2]; c[U >> 2] = _d; c[V >> 2] = Ga; c[W >> 2] = Ud; c[X >> 2] = Wd; c[Y >> 2] = c[T >> 2]; while (1) { Y = ((gp(c[U >> 2] | 0) | 0) == 0) & 1; if ( !( Y & ((c[T >> 2] | 0) >>> 0 < (((c[V >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { Y = c[U >> 2] | 0; Wd = c[W >> 2] | 0; Ud = c[X >> 2] | 0; c[O >> 2] = c[T >> 2]; c[P >> 2] = Y; c[Q >> 2] = Wd; c[R >> 2] = Ud; c[S >> 2] = ip(c[P >> 2] | 0, c[R >> 2] | 0) | 0; Ud = c[O >> 2] | 0; Wd = ((c[Q >> 2] | 0) + (c[S >> 2] << 2)) | 0; a[Ud >> 0] = a[Wd >> 0] | 0; a[(Ud + 1) >> 0] = a[(Wd + 1) >> 0] | 0; jp( c[P >> 2] | 0, d[((c[Q >> 2] | 0) + (c[S >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[Q >> 2] | 0) + (c[S >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; Wd = c[U >> 2] | 0; Ud = c[W >> 2] | 0; Y = c[X >> 2] | 0; c[J >> 2] = c[T >> 2]; c[K >> 2] = Wd; c[L >> 2] = Ud; c[M >> 2] = Y; c[N >> 2] = ip(c[K >> 2] | 0, c[M >> 2] | 0) | 0; Y = c[J >> 2] | 0; Ud = ((c[L >> 2] | 0) + (c[N >> 2] << 2)) | 0; a[Y >> 0] = a[Ud >> 0] | 0; a[(Y + 1) >> 0] = a[(Ud + 1) >> 0] | 0; jp( c[K >> 2] | 0, d[((c[L >> 2] | 0) + (c[N >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[L >> 2] | 0) + (c[N >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { Ud = c[U >> 2] | 0; Y = c[W >> 2] | 0; Wd = c[X >> 2] | 0; c[E >> 2] = c[T >> 2]; c[F >> 2] = Ud; c[G >> 2] = Y; c[H >> 2] = Wd; c[I >> 2] = ip(c[F >> 2] | 0, c[H >> 2] | 0) | 0; Wd = c[E >> 2] | 0; Y = ((c[G >> 2] | 0) + (c[I >> 2] << 2)) | 0; a[Wd >> 0] = a[Y >> 0] | 0; a[(Wd + 1) >> 0] = a[(Y + 1) >> 0] | 0; jp( c[F >> 2] | 0, d[((c[G >> 2] | 0) + (c[I >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[G >> 2] | 0) + (c[I >> 2] << 2) + 3) >> 0] | 0); } Y = c[U >> 2] | 0; Wd = c[W >> 2] | 0; Ud = c[X >> 2] | 0; c[z >> 2] = c[T >> 2]; c[A >> 2] = Y; c[B >> 2] = Wd; c[C >> 2] = Ud; c[D >> 2] = ip(c[A >> 2] | 0, c[C >> 2] | 0) | 0; Ud = c[z >> 2] | 0; Wd = ((c[B >> 2] | 0) + (c[D >> 2] << 2)) | 0; a[Ud >> 0] = a[Wd >> 0] | 0; a[(Ud + 1) >> 0] = a[(Wd + 1) >> 0] | 0; jp( c[A >> 2] | 0, d[((c[B >> 2] | 0) + (c[D >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[B >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0] | 0); } while (1) { D = ((gp(c[U >> 2] | 0) | 0) == 0) & 1; if ( !( D & ((c[T >> 2] | 0) >>> 0 <= (((c[V >> 2] | 0) + -2) | 0) >>> 0) ) ) break; D = c[U >> 2] | 0; B = c[W >> 2] | 0; A = c[X >> 2] | 0; c[u >> 2] = c[T >> 2]; c[v >> 2] = D; c[w >> 2] = B; c[x >> 2] = A; c[y >> 2] = ip(c[v >> 2] | 0, c[x >> 2] | 0) | 0; A = c[u >> 2] | 0; B = ((c[w >> 2] | 0) + (c[y >> 2] << 2)) | 0; a[A >> 0] = a[B >> 0] | 0; a[(A + 1) >> 0] = a[(B + 1) >> 0] | 0; jp( c[v >> 2] | 0, d[((c[w >> 2] | 0) + (c[y >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[w >> 2] | 0) + (c[y >> 2] << 2) + 3) >> 0] | 0); } while (1) { Ge = c[T >> 2] | 0; if ( (c[T >> 2] | 0) >>> 0 > (((c[V >> 2] | 0) + -2) | 0) >>> 0 ) break; y = c[U >> 2] | 0; w = c[W >> 2] | 0; v = c[X >> 2] | 0; c[p >> 2] = Ge; c[q >> 2] = y; c[r >> 2] = w; c[s >> 2] = v; c[t >> 2] = ip(c[q >> 2] | 0, c[s >> 2] | 0) | 0; v = c[p >> 2] | 0; w = ((c[r >> 2] | 0) + (c[t >> 2] << 2)) | 0; a[v >> 0] = a[w >> 0] | 0; a[(v + 1) >> 0] = a[(w + 1) >> 0] | 0; jp( c[q >> 2] | 0, d[((c[r >> 2] | 0) + (c[t >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[r >> 2] | 0) + (c[t >> 2] << 2) + 3) >> 0] | 0); } if (Ge >>> 0 < (c[V >> 2] | 0) >>> 0) { V = c[U >> 2] | 0; U = c[W >> 2] | 0; W = c[X >> 2] | 0; c[j >> 2] = c[T >> 2]; c[k >> 2] = V; c[m >> 2] = U; c[n >> 2] = W; c[o >> 2] = ip(c[k >> 2] | 0, c[n >> 2] | 0) | 0; a[c[j >> 2] >> 0] = a[((c[m >> 2] | 0) + (c[o >> 2] << 2)) >> 0] | 0; j = c[k >> 2] | 0; if ( (d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(j + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[k >> 2] | 0, d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ), (c[((c[k >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[k >> 2] | 0) + 4) >> 2] = 32; } else jp( j, d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + 1; } T = lp(Xd) | 0; Xd = T & (lp(Yd) | 0); Yd = Xd & (lp(Zd) | 0); c[we >> 2] = Yd & (lp(_d) | 0); if (c[we >> 2] | 0) { c[Md >> 2] = c[Od >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } else { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } return 0; } function Lp(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0, hc = 0, ic = 0, jc = 0, kc = 0, lc = 0, mc = 0, nc = 0, oc = 0, pc = 0, qc = 0, rc = 0, sc = 0, tc = 0, uc = 0, vc = 0, wc = 0, xc = 0, yc = 0, zc = 0, Ac = 0, Bc = 0, Cc = 0, Dc = 0, Ec = 0, Fc = 0, Gc = 0, Hc = 0, Ic = 0, Jc = 0, Kc = 0, Lc = 0, Mc = 0, Nc = 0, Oc = 0, Pc = 0, Qc = 0, Rc = 0, Sc = 0, Tc = 0, Uc = 0, Vc = 0, Wc = 0, Xc = 0, Yc = 0, Zc = 0, _c = 0, $c = 0, ad = 0, bd = 0, cd = 0, dd = 0, ed = 0, fd = 0, gd = 0, hd = 0, id = 0, jd = 0, kd = 0, ld = 0, md = 0, nd = 0, od = 0, pd = 0, qd = 0, rd = 0, sd = 0, td = 0, ud = 0, vd = 0, wd = 0, xd = 0, yd = 0, zd = 0, Ad = 0, Bd = 0, Cd = 0, Dd = 0, Ed = 0, Fd = 0, Gd = 0, Hd = 0, Id = 0, Jd = 0, Kd = 0, Ld = 0, Md = 0, Nd = 0, Od = 0, Pd = 0, Qd = 0, Rd = 0, Sd = 0, Td = 0, Ud = 0, Vd = 0, Wd = 0, Xd = 0, Yd = 0, Zd = 0, _d = 0, $d = 0, ae = 0, be = 0, ce = 0, de = 0, ee = 0, fe = 0, ge = 0, he = 0, ie = 0, je = 0, ke = 0, le = 0, me = 0, ne = 0, oe = 0, pe = 0, qe = 0, re = 0, se = 0, te = 0, ue = 0, ve = 0, we = 0, xe = 0, ye = 0, ze = 0, Ae = 0, Be = 0, Ce = 0, De = 0, Ee = 0, Fe = 0, Ge = 0; i = l; l = (l + 1216) | 0; j = (i + 1208) | 0; k = (i + 1204) | 0; m = (i + 1200) | 0; n = (i + 1196) | 0; o = (i + 1192) | 0; p = (i + 1188) | 0; q = (i + 1184) | 0; r = (i + 1180) | 0; s = (i + 1176) | 0; t = (i + 1172) | 0; u = (i + 1168) | 0; v = (i + 1164) | 0; w = (i + 1160) | 0; x = (i + 1156) | 0; y = (i + 1152) | 0; z = (i + 1148) | 0; A = (i + 1144) | 0; B = (i + 1140) | 0; C = (i + 1136) | 0; D = (i + 1132) | 0; E = (i + 1128) | 0; F = (i + 1124) | 0; G = (i + 1120) | 0; H = (i + 1116) | 0; I = (i + 1112) | 0; J = (i + 1108) | 0; K = (i + 1104) | 0; L = (i + 1100) | 0; M = (i + 1096) | 0; N = (i + 1092) | 0; O = (i + 1088) | 0; P = (i + 1084) | 0; Q = (i + 1080) | 0; R = (i + 1076) | 0; S = (i + 1072) | 0; T = (i + 1068) | 0; U = (i + 1064) | 0; V = (i + 1060) | 0; W = (i + 1056) | 0; X = (i + 1052) | 0; Y = (i + 1048) | 0; Z = (i + 1044) | 0; _ = (i + 1040) | 0; $ = (i + 1036) | 0; aa = (i + 1032) | 0; ba = (i + 1028) | 0; ca = (i + 1024) | 0; da = (i + 1020) | 0; ea = (i + 1016) | 0; fa = (i + 1012) | 0; ga = (i + 1008) | 0; ha = (i + 1004) | 0; ia = (i + 1e3) | 0; ja = (i + 996) | 0; ka = (i + 992) | 0; la = (i + 988) | 0; ma = (i + 984) | 0; na = (i + 980) | 0; oa = (i + 976) | 0; pa = (i + 972) | 0; qa = (i + 968) | 0; ra = (i + 964) | 0; sa = (i + 960) | 0; ta = (i + 956) | 0; ua = (i + 952) | 0; va = (i + 948) | 0; wa = (i + 944) | 0; xa = (i + 940) | 0; ya = (i + 936) | 0; za = (i + 932) | 0; Aa = (i + 928) | 0; Ba = (i + 924) | 0; Ca = (i + 920) | 0; Da = (i + 916) | 0; Ea = (i + 912) | 0; Fa = (i + 908) | 0; Ga = (i + 904) | 0; Ha = (i + 900) | 0; Ia = (i + 896) | 0; Ja = (i + 892) | 0; Ka = (i + 888) | 0; La = (i + 884) | 0; Ma = (i + 880) | 0; Na = (i + 876) | 0; Oa = (i + 872) | 0; Pa = (i + 868) | 0; Qa = (i + 864) | 0; Ra = (i + 860) | 0; Sa = (i + 856) | 0; Ta = (i + 852) | 0; Ua = (i + 848) | 0; Va = (i + 844) | 0; Wa = (i + 840) | 0; Xa = (i + 836) | 0; Ya = (i + 832) | 0; Za = (i + 828) | 0; _a = (i + 824) | 0; $a = (i + 820) | 0; ab = (i + 816) | 0; bb = (i + 812) | 0; cb = (i + 808) | 0; db = (i + 804) | 0; eb = (i + 800) | 0; fb = (i + 796) | 0; gb = (i + 792) | 0; hb = (i + 788) | 0; ib = (i + 784) | 0; jb = (i + 780) | 0; kb = (i + 776) | 0; lb = (i + 772) | 0; mb = (i + 768) | 0; nb = (i + 764) | 0; ob = (i + 760) | 0; pb = (i + 756) | 0; qb = (i + 752) | 0; rb = (i + 748) | 0; sb = (i + 744) | 0; tb = (i + 740) | 0; ub = (i + 736) | 0; vb = (i + 732) | 0; wb = (i + 728) | 0; xb = (i + 724) | 0; yb = (i + 720) | 0; zb = (i + 716) | 0; Ab = (i + 712) | 0; Bb = (i + 708) | 0; Cb = (i + 704) | 0; Db = (i + 700) | 0; Eb = (i + 696) | 0; Fb = (i + 692) | 0; Gb = (i + 688) | 0; Hb = (i + 684) | 0; Ib = (i + 680) | 0; Jb = (i + 676) | 0; Kb = (i + 672) | 0; Lb = (i + 668) | 0; Mb = (i + 664) | 0; Nb = (i + 660) | 0; Ob = (i + 656) | 0; Pb = (i + 652) | 0; Qb = (i + 648) | 0; Rb = (i + 644) | 0; Sb = (i + 640) | 0; Tb = (i + 636) | 0; Ub = (i + 632) | 0; Vb = (i + 628) | 0; Wb = (i + 624) | 0; Xb = (i + 620) | 0; Yb = (i + 616) | 0; Zb = (i + 612) | 0; _b = (i + 608) | 0; $b = (i + 604) | 0; ac = (i + 600) | 0; bc = (i + 596) | 0; cc = (i + 592) | 0; dc = (i + 588) | 0; ec = (i + 584) | 0; fc = (i + 580) | 0; gc = (i + 576) | 0; hc = (i + 572) | 0; ic = (i + 568) | 0; jc = (i + 564) | 0; kc = (i + 560) | 0; lc = (i + 556) | 0; mc = (i + 552) | 0; nc = (i + 548) | 0; oc = (i + 544) | 0; pc = (i + 540) | 0; qc = (i + 536) | 0; rc = (i + 532) | 0; sc = (i + 528) | 0; tc = (i + 524) | 0; uc = (i + 520) | 0; vc = (i + 516) | 0; wc = (i + 512) | 0; xc = (i + 508) | 0; yc = (i + 504) | 0; zc = (i + 500) | 0; Ac = (i + 496) | 0; Bc = (i + 492) | 0; Cc = (i + 488) | 0; Dc = (i + 484) | 0; Ec = (i + 480) | 0; Fc = (i + 476) | 0; Gc = (i + 472) | 0; Hc = (i + 468) | 0; Ic = (i + 464) | 0; Jc = (i + 460) | 0; Kc = (i + 456) | 0; Lc = (i + 452) | 0; Mc = (i + 448) | 0; Nc = (i + 444) | 0; Oc = (i + 440) | 0; Pc = (i + 436) | 0; Qc = (i + 432) | 0; Rc = (i + 428) | 0; Sc = (i + 424) | 0; Tc = (i + 420) | 0; Uc = (i + 416) | 0; Vc = (i + 412) | 0; Wc = (i + 408) | 0; Xc = (i + 404) | 0; Yc = (i + 400) | 0; Zc = (i + 396) | 0; _c = (i + 392) | 0; $c = (i + 388) | 0; ad = (i + 384) | 0; bd = (i + 380) | 0; cd = (i + 376) | 0; dd = (i + 372) | 0; ed = (i + 368) | 0; fd = (i + 364) | 0; gd = (i + 360) | 0; hd = (i + 356) | 0; id = (i + 352) | 0; jd = (i + 348) | 0; kd = (i + 344) | 0; ld = (i + 340) | 0; md = (i + 336) | 0; nd = (i + 332) | 0; od = (i + 328) | 0; pd = (i + 324) | 0; qd = (i + 320) | 0; rd = (i + 316) | 0; sd = (i + 312) | 0; td = (i + 308) | 0; ud = (i + 304) | 0; vd = (i + 300) | 0; wd = (i + 296) | 0; xd = (i + 292) | 0; yd = (i + 288) | 0; zd = (i + 284) | 0; Ad = (i + 280) | 0; Bd = (i + 276) | 0; Cd = (i + 272) | 0; Dd = (i + 268) | 0; Ed = (i + 264) | 0; Fd = (i + 260) | 0; Gd = (i + 256) | 0; Hd = (i + 252) | 0; Id = (i + 248) | 0; Jd = (i + 244) | 0; Kd = (i + 240) | 0; Ld = (i + 236) | 0; Md = (i + 232) | 0; Nd = (i + 228) | 0; Od = (i + 224) | 0; Pd = (i + 220) | 0; Qd = (i + 216) | 0; Rd = (i + 212) | 0; Sd = (i + 208) | 0; Td = (i + 204) | 0; Ud = (i + 200) | 0; Vd = (i + 196) | 0; Wd = (i + 192) | 0; Xd = (i + 172) | 0; Yd = (i + 152) | 0; Zd = (i + 132) | 0; _d = (i + 112) | 0; $d = (i + 108) | 0; ae = (i + 104) | 0; be = (i + 100) | 0; ce = (i + 96) | 0; de = (i + 92) | 0; ee = (i + 88) | 0; fe = (i + 84) | 0; ge = (i + 80) | 0; he = (i + 76) | 0; ie = (i + 72) | 0; je = (i + 68) | 0; ke = (i + 64) | 0; le = (i + 60) | 0; me = (i + 56) | 0; ne = (i + 52) | 0; oe = (i + 48) | 0; pe = (i + 44) | 0; qe = (i + 1212) | 0; re = (i + 40) | 0; se = (i + 36) | 0; te = (i + 32) | 0; ue = (i + 28) | 0; ve = (i + 24) | 0; we = (i + 20) | 0; xe = (i + 16) | 0; ye = (i + 12) | 0; ze = (i + 8) | 0; Ae = (i + 4) | 0; Be = i; c[xe >> 2] = b; c[ye >> 2] = e; c[ze >> 2] = f; c[Ae >> 2] = g; c[Be >> 2] = h; h = c[ye >> 2] | 0; ye = c[ze >> 2] | 0; ze = c[Ae >> 2] | 0; Ae = c[Be >> 2] | 0; c[Nd >> 2] = c[xe >> 2]; c[Od >> 2] = h; c[Pd >> 2] = ye; c[Qd >> 2] = ze; c[Rd >> 2] = Ae; if ((c[Qd >> 2] | 0) >>> 0 < 10) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[Sd >> 2] = c[Pd >> 2]; c[Td >> 2] = c[Nd >> 2]; c[Ud >> 2] = (c[Td >> 2] | 0) + (c[Od >> 2] | 0); c[Vd >> 2] = (c[Rd >> 2] | 0) + 4; c[Wd >> 2] = c[Vd >> 2]; c[$d >> 2] = (yp(c[Sd >> 2] | 0) | 0) & 65535; c[ae >> 2] = (yp(((c[Sd >> 2] | 0) + 2) | 0) | 0) & 65535; c[be >> 2] = (yp(((c[Sd >> 2] | 0) + 4) | 0) | 0) & 65535; c[ce >> 2] = (c[Qd >> 2] | 0) - ((c[$d >> 2] | 0) + (c[ae >> 2] | 0) + (c[be >> 2] | 0) + 6); c[de >> 2] = (c[Sd >> 2] | 0) + 6; c[ee >> 2] = (c[de >> 2] | 0) + (c[$d >> 2] | 0); c[fe >> 2] = (c[ee >> 2] | 0) + (c[ae >> 2] | 0); c[ge >> 2] = (c[fe >> 2] | 0) + (c[be >> 2] | 0); c[he >> 2] = (((((c[Od >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[ie >> 2] = (c[Td >> 2] | 0) + (c[he >> 2] | 0); c[je >> 2] = (c[ie >> 2] | 0) + (c[he >> 2] | 0); c[ke >> 2] = (c[je >> 2] | 0) + (c[he >> 2] | 0); c[le >> 2] = c[Td >> 2]; c[me >> 2] = c[ie >> 2]; c[ne >> 2] = c[je >> 2]; c[oe >> 2] = c[ke >> 2]; bp(qe, c[Rd >> 2] | 0); c[re >> 2] = d[(qe + 2) >> 0]; if ((c[ce >> 2] | 0) >>> 0 > (c[Qd >> 2] | 0) >>> 0) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[se >> 2] = fp(Xd, c[de >> 2] | 0, c[$d >> 2] | 0) | 0; if (ap(c[se >> 2] | 0) | 0) { c[Md >> 2] = c[se >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[te >> 2] = fp(Yd, c[ee >> 2] | 0, c[ae >> 2] | 0) | 0; if (ap(c[te >> 2] | 0) | 0) { c[Md >> 2] = c[te >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[ue >> 2] = fp(Zd, c[fe >> 2] | 0, c[be >> 2] | 0) | 0; if (ap(c[ue >> 2] | 0) | 0) { c[Md >> 2] = c[ue >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } c[ve >> 2] = fp(_d, c[ge >> 2] | 0, c[ce >> 2] | 0) | 0; if (ap(c[ve >> 2] | 0) | 0) { c[Md >> 2] = c[ve >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } ve = gp(Xd) | 0; ce = ve | (gp(Yd) | 0); ve = ce | (gp(Zd) | 0); c[pe >> 2] = ve | (gp(_d) | 0); while (1) { if ( !( ((c[pe >> 2] | 0) == 0 ? (c[oe >> 2] | 0) >>> 0 < (((c[Ud >> 2] | 0) + -3) | 0) >>> 0 : 0) | 0 ) ) break; if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Hd >> 2] = c[le >> 2]; c[Id >> 2] = Xd; c[Jd >> 2] = ve; c[Kd >> 2] = ce; c[Ld >> 2] = ip(c[Id >> 2] | 0, c[Kd >> 2] | 0) | 0; ce = c[Hd >> 2] | 0; ve = ((c[Jd >> 2] | 0) + (c[Ld >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Id >> 2] | 0, d[((c[Jd >> 2] | 0) + (c[Ld >> 2] << 2) + 2) >> 0] | 0 ); c[le >> 2] = (c[le >> 2] | 0) + (d[((c[Jd >> 2] | 0) + (c[Ld >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Cd >> 2] = c[me >> 2]; c[Dd >> 2] = Yd; c[Ed >> 2] = ve; c[Fd >> 2] = ce; c[Gd >> 2] = ip(c[Dd >> 2] | 0, c[Fd >> 2] | 0) | 0; ce = c[Cd >> 2] | 0; ve = ((c[Ed >> 2] | 0) + (c[Gd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Dd >> 2] | 0, d[((c[Ed >> 2] | 0) + (c[Gd >> 2] << 2) + 2) >> 0] | 0 ); c[me >> 2] = (c[me >> 2] | 0) + (d[((c[Ed >> 2] | 0) + (c[Gd >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[xd >> 2] = c[ne >> 2]; c[yd >> 2] = Zd; c[zd >> 2] = ve; c[Ad >> 2] = ce; c[Bd >> 2] = ip(c[yd >> 2] | 0, c[Ad >> 2] | 0) | 0; ce = c[xd >> 2] | 0; ve = ((c[zd >> 2] | 0) + (c[Bd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[yd >> 2] | 0, d[((c[zd >> 2] | 0) + (c[Bd >> 2] << 2) + 2) >> 0] | 0 ); c[ne >> 2] = (c[ne >> 2] | 0) + (d[((c[zd >> 2] | 0) + (c[Bd >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[sd >> 2] = c[oe >> 2]; c[td >> 2] = _d; c[ud >> 2] = ve; c[vd >> 2] = ce; c[wd >> 2] = ip(c[td >> 2] | 0, c[vd >> 2] | 0) | 0; ce = c[sd >> 2] | 0; ve = ((c[ud >> 2] | 0) + (c[wd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[td >> 2] | 0, d[((c[ud >> 2] | 0) + (c[wd >> 2] << 2) + 2) >> 0] | 0 ); c[oe >> 2] = (c[oe >> 2] | 0) + (d[((c[ud >> 2] | 0) + (c[wd >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[nd >> 2] = c[le >> 2]; c[od >> 2] = Xd; c[pd >> 2] = ve; c[qd >> 2] = ce; c[rd >> 2] = ip(c[od >> 2] | 0, c[qd >> 2] | 0) | 0; ce = c[nd >> 2] | 0; ve = ((c[pd >> 2] | 0) + (c[rd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[od >> 2] | 0, d[((c[pd >> 2] | 0) + (c[rd >> 2] << 2) + 2) >> 0] | 0 ); c[le >> 2] = (c[le >> 2] | 0) + (d[((c[pd >> 2] | 0) + (c[rd >> 2] << 2) + 3) >> 0] | 0); hp() | 0; ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[id >> 2] = c[me >> 2]; c[jd >> 2] = Yd; c[kd >> 2] = ve; c[ld >> 2] = ce; c[md >> 2] = ip(c[jd >> 2] | 0, c[ld >> 2] | 0) | 0; ce = c[id >> 2] | 0; ve = ((c[kd >> 2] | 0) + (c[md >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[jd >> 2] | 0, d[((c[kd >> 2] | 0) + (c[md >> 2] << 2) + 2) >> 0] | 0 ); c[me >> 2] = (c[me >> 2] | 0) + (d[((c[kd >> 2] | 0) + (c[md >> 2] << 2) + 3) >> 0] | 0); hp() | 0; ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[dd >> 2] = c[ne >> 2]; c[ed >> 2] = Zd; c[fd >> 2] = ve; c[gd >> 2] = ce; c[hd >> 2] = ip(c[ed >> 2] | 0, c[gd >> 2] | 0) | 0; ce = c[dd >> 2] | 0; ve = ((c[fd >> 2] | 0) + (c[hd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[ed >> 2] | 0, d[((c[fd >> 2] | 0) + (c[hd >> 2] << 2) + 2) >> 0] | 0 ); c[ne >> 2] = (c[ne >> 2] | 0) + (d[((c[fd >> 2] | 0) + (c[hd >> 2] << 2) + 3) >> 0] | 0); hp() | 0; ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[_c >> 2] = c[oe >> 2]; c[$c >> 2] = _d; c[ad >> 2] = ve; c[bd >> 2] = ce; c[cd >> 2] = ip(c[$c >> 2] | 0, c[bd >> 2] | 0) | 0; ce = c[_c >> 2] | 0; ve = ((c[ad >> 2] | 0) + (c[cd >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[$c >> 2] | 0, d[((c[ad >> 2] | 0) + (c[cd >> 2] << 2) + 2) >> 0] | 0 ); c[oe >> 2] = (c[oe >> 2] | 0) + (d[((c[ad >> 2] | 0) + (c[cd >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Vc >> 2] = c[le >> 2]; c[Wc >> 2] = Xd; c[Xc >> 2] = ve; c[Yc >> 2] = ce; c[Zc >> 2] = ip(c[Wc >> 2] | 0, c[Yc >> 2] | 0) | 0; ce = c[Vc >> 2] | 0; ve = ((c[Xc >> 2] | 0) + (c[Zc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Wc >> 2] | 0, d[((c[Xc >> 2] | 0) + (c[Zc >> 2] << 2) + 2) >> 0] | 0 ); c[le >> 2] = (c[le >> 2] | 0) + (d[((c[Xc >> 2] | 0) + (c[Zc >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Qc >> 2] = c[me >> 2]; c[Rc >> 2] = Yd; c[Sc >> 2] = ve; c[Tc >> 2] = ce; c[Uc >> 2] = ip(c[Rc >> 2] | 0, c[Tc >> 2] | 0) | 0; ce = c[Qc >> 2] | 0; ve = ((c[Sc >> 2] | 0) + (c[Uc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Rc >> 2] | 0, d[((c[Sc >> 2] | 0) + (c[Uc >> 2] << 2) + 2) >> 0] | 0 ); c[me >> 2] = (c[me >> 2] | 0) + (d[((c[Sc >> 2] | 0) + (c[Uc >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Lc >> 2] = c[ne >> 2]; c[Mc >> 2] = Zd; c[Nc >> 2] = ve; c[Oc >> 2] = ce; c[Pc >> 2] = ip(c[Mc >> 2] | 0, c[Oc >> 2] | 0) | 0; ce = c[Lc >> 2] | 0; ve = ((c[Nc >> 2] | 0) + (c[Pc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Mc >> 2] | 0, d[((c[Nc >> 2] | 0) + (c[Pc >> 2] << 2) + 2) >> 0] | 0 ); c[ne >> 2] = (c[ne >> 2] | 0) + (d[((c[Nc >> 2] | 0) + (c[Pc >> 2] << 2) + 3) >> 0] | 0); } if (hp() | 0) { ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Gc >> 2] = c[oe >> 2]; c[Hc >> 2] = _d; c[Ic >> 2] = ve; c[Jc >> 2] = ce; c[Kc >> 2] = ip(c[Hc >> 2] | 0, c[Jc >> 2] | 0) | 0; ce = c[Gc >> 2] | 0; ve = ((c[Ic >> 2] | 0) + (c[Kc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Hc >> 2] | 0, d[((c[Ic >> 2] | 0) + (c[Kc >> 2] << 2) + 2) >> 0] | 0 ); c[oe >> 2] = (c[oe >> 2] | 0) + (d[((c[Ic >> 2] | 0) + (c[Kc >> 2] << 2) + 3) >> 0] | 0); } ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[Bc >> 2] = c[le >> 2]; c[Cc >> 2] = Xd; c[Dc >> 2] = ve; c[Ec >> 2] = ce; c[Fc >> 2] = ip(c[Cc >> 2] | 0, c[Ec >> 2] | 0) | 0; ce = c[Bc >> 2] | 0; ve = ((c[Dc >> 2] | 0) + (c[Fc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[Cc >> 2] | 0, d[((c[Dc >> 2] | 0) + (c[Fc >> 2] << 2) + 2) >> 0] | 0 ); c[le >> 2] = (c[le >> 2] | 0) + (d[((c[Dc >> 2] | 0) + (c[Fc >> 2] << 2) + 3) >> 0] | 0); ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[wc >> 2] = c[me >> 2]; c[xc >> 2] = Yd; c[yc >> 2] = ve; c[zc >> 2] = ce; c[Ac >> 2] = ip(c[xc >> 2] | 0, c[zc >> 2] | 0) | 0; ce = c[wc >> 2] | 0; ve = ((c[yc >> 2] | 0) + (c[Ac >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[xc >> 2] | 0, d[((c[yc >> 2] | 0) + (c[Ac >> 2] << 2) + 2) >> 0] | 0 ); c[me >> 2] = (c[me >> 2] | 0) + (d[((c[yc >> 2] | 0) + (c[Ac >> 2] << 2) + 3) >> 0] | 0); ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[rc >> 2] = c[ne >> 2]; c[sc >> 2] = Zd; c[tc >> 2] = ve; c[uc >> 2] = ce; c[vc >> 2] = ip(c[sc >> 2] | 0, c[uc >> 2] | 0) | 0; ce = c[rc >> 2] | 0; ve = ((c[tc >> 2] | 0) + (c[vc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[sc >> 2] | 0, d[((c[tc >> 2] | 0) + (c[vc >> 2] << 2) + 2) >> 0] | 0 ); c[ne >> 2] = (c[ne >> 2] | 0) + (d[((c[tc >> 2] | 0) + (c[vc >> 2] << 2) + 3) >> 0] | 0); ve = c[Wd >> 2] | 0; ce = c[re >> 2] | 0; c[mc >> 2] = c[oe >> 2]; c[nc >> 2] = _d; c[oc >> 2] = ve; c[pc >> 2] = ce; c[qc >> 2] = ip(c[nc >> 2] | 0, c[pc >> 2] | 0) | 0; ce = c[mc >> 2] | 0; ve = ((c[oc >> 2] | 0) + (c[qc >> 2] << 2)) | 0; a[ce >> 0] = a[ve >> 0] | 0; a[(ce + 1) >> 0] = a[(ve + 1) >> 0] | 0; jp( c[nc >> 2] | 0, d[((c[oc >> 2] | 0) + (c[qc >> 2] << 2) + 2) >> 0] | 0 ); c[oe >> 2] = (c[oe >> 2] | 0) + (d[((c[oc >> 2] | 0) + (c[qc >> 2] << 2) + 3) >> 0] | 0); ve = gp(Xd) | 0; ce = ve | (gp(Yd) | 0); ve = ce | (gp(Zd) | 0); c[pe >> 2] = ve | (gp(_d) | 0); } if ((c[le >> 2] | 0) >>> 0 > (c[ie >> 2] | 0) >>> 0) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } if ((c[me >> 2] | 0) >>> 0 > (c[je >> 2] | 0) >>> 0) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } if ((c[ne >> 2] | 0) >>> 0 > (c[ke >> 2] | 0) >>> 0) { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } pe = c[ie >> 2] | 0; ie = c[Wd >> 2] | 0; qc = c[re >> 2] | 0; c[gc >> 2] = c[le >> 2]; c[hc >> 2] = Xd; c[ic >> 2] = pe; c[jc >> 2] = ie; c[kc >> 2] = qc; c[lc >> 2] = c[gc >> 2]; while (1) { lc = ((gp(c[hc >> 2] | 0) | 0) == 0) & 1; if ( !( lc & ((c[gc >> 2] | 0) >>> 0 < (((c[ic >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { lc = c[hc >> 2] | 0; qc = c[jc >> 2] | 0; ie = c[kc >> 2] | 0; c[bc >> 2] = c[gc >> 2]; c[cc >> 2] = lc; c[dc >> 2] = qc; c[ec >> 2] = ie; c[fc >> 2] = ip(c[cc >> 2] | 0, c[ec >> 2] | 0) | 0; ie = c[bc >> 2] | 0; qc = ((c[dc >> 2] | 0) + (c[fc >> 2] << 2)) | 0; a[ie >> 0] = a[qc >> 0] | 0; a[(ie + 1) >> 0] = a[(qc + 1) >> 0] | 0; jp( c[cc >> 2] | 0, d[((c[dc >> 2] | 0) + (c[fc >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[dc >> 2] | 0) + (c[fc >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; qc = c[hc >> 2] | 0; ie = c[jc >> 2] | 0; lc = c[kc >> 2] | 0; c[Yb >> 2] = c[gc >> 2]; c[Zb >> 2] = qc; c[_b >> 2] = ie; c[$b >> 2] = lc; c[ac >> 2] = ip(c[Zb >> 2] | 0, c[$b >> 2] | 0) | 0; lc = c[Yb >> 2] | 0; ie = ((c[_b >> 2] | 0) + (c[ac >> 2] << 2)) | 0; a[lc >> 0] = a[ie >> 0] | 0; a[(lc + 1) >> 0] = a[(ie + 1) >> 0] | 0; jp( c[Zb >> 2] | 0, d[((c[_b >> 2] | 0) + (c[ac >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[_b >> 2] | 0) + (c[ac >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { ie = c[hc >> 2] | 0; lc = c[jc >> 2] | 0; qc = c[kc >> 2] | 0; c[Tb >> 2] = c[gc >> 2]; c[Ub >> 2] = ie; c[Vb >> 2] = lc; c[Wb >> 2] = qc; c[Xb >> 2] = ip(c[Ub >> 2] | 0, c[Wb >> 2] | 0) | 0; qc = c[Tb >> 2] | 0; lc = ((c[Vb >> 2] | 0) + (c[Xb >> 2] << 2)) | 0; a[qc >> 0] = a[lc >> 0] | 0; a[(qc + 1) >> 0] = a[(lc + 1) >> 0] | 0; jp( c[Ub >> 2] | 0, d[((c[Vb >> 2] | 0) + (c[Xb >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[Vb >> 2] | 0) + (c[Xb >> 2] << 2) + 3) >> 0] | 0); } lc = c[hc >> 2] | 0; qc = c[jc >> 2] | 0; ie = c[kc >> 2] | 0; c[Ob >> 2] = c[gc >> 2]; c[Pb >> 2] = lc; c[Qb >> 2] = qc; c[Rb >> 2] = ie; c[Sb >> 2] = ip(c[Pb >> 2] | 0, c[Rb >> 2] | 0) | 0; ie = c[Ob >> 2] | 0; qc = ((c[Qb >> 2] | 0) + (c[Sb >> 2] << 2)) | 0; a[ie >> 0] = a[qc >> 0] | 0; a[(ie + 1) >> 0] = a[(qc + 1) >> 0] | 0; jp( c[Pb >> 2] | 0, d[((c[Qb >> 2] | 0) + (c[Sb >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[Qb >> 2] | 0) + (c[Sb >> 2] << 2) + 3) >> 0] | 0); } while (1) { Sb = ((gp(c[hc >> 2] | 0) | 0) == 0) & 1; if ( !( Sb & ((c[gc >> 2] | 0) >>> 0 <= (((c[ic >> 2] | 0) + -2) | 0) >>> 0) ) ) break; Sb = c[hc >> 2] | 0; Qb = c[jc >> 2] | 0; Pb = c[kc >> 2] | 0; c[Jb >> 2] = c[gc >> 2]; c[Kb >> 2] = Sb; c[Lb >> 2] = Qb; c[Mb >> 2] = Pb; c[Nb >> 2] = ip(c[Kb >> 2] | 0, c[Mb >> 2] | 0) | 0; Pb = c[Jb >> 2] | 0; Qb = ((c[Lb >> 2] | 0) + (c[Nb >> 2] << 2)) | 0; a[Pb >> 0] = a[Qb >> 0] | 0; a[(Pb + 1) >> 0] = a[(Qb + 1) >> 0] | 0; jp( c[Kb >> 2] | 0, d[((c[Lb >> 2] | 0) + (c[Nb >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[Lb >> 2] | 0) + (c[Nb >> 2] << 2) + 3) >> 0] | 0); } while (1) { De = c[gc >> 2] | 0; if ( (c[gc >> 2] | 0) >>> 0 > (((c[ic >> 2] | 0) + -2) | 0) >>> 0 ) break; Nb = c[hc >> 2] | 0; Lb = c[jc >> 2] | 0; Kb = c[kc >> 2] | 0; c[Eb >> 2] = De; c[Fb >> 2] = Nb; c[Gb >> 2] = Lb; c[Hb >> 2] = Kb; c[Ib >> 2] = ip(c[Fb >> 2] | 0, c[Hb >> 2] | 0) | 0; Kb = c[Eb >> 2] | 0; Lb = ((c[Gb >> 2] | 0) + (c[Ib >> 2] << 2)) | 0; a[Kb >> 0] = a[Lb >> 0] | 0; a[(Kb + 1) >> 0] = a[(Lb + 1) >> 0] | 0; jp( c[Fb >> 2] | 0, d[((c[Gb >> 2] | 0) + (c[Ib >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + (d[((c[Gb >> 2] | 0) + (c[Ib >> 2] << 2) + 3) >> 0] | 0); } if (De >>> 0 < (c[ic >> 2] | 0) >>> 0) { ic = c[hc >> 2] | 0; hc = c[jc >> 2] | 0; jc = c[kc >> 2] | 0; c[zb >> 2] = c[gc >> 2]; c[Ab >> 2] = ic; c[Bb >> 2] = hc; c[Cb >> 2] = jc; c[Db >> 2] = ip(c[Ab >> 2] | 0, c[Cb >> 2] | 0) | 0; a[c[zb >> 2] >> 0] = a[((c[Bb >> 2] | 0) + (c[Db >> 2] << 2)) >> 0] | 0; zb = c[Ab >> 2] | 0; if ( (d[((c[Bb >> 2] | 0) + (c[Db >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(zb + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[Ab >> 2] | 0, d[ ((c[Bb >> 2] | 0) + (c[Db >> 2] << 2) + 2) >> 0 ] | 0 ), (c[((c[Ab >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[Ab >> 2] | 0) + 4) >> 2] = 32; } else jp( zb, d[((c[Bb >> 2] | 0) + (c[Db >> 2] << 2) + 2) >> 0] | 0 ); c[gc >> 2] = (c[gc >> 2] | 0) + 1; } gc = c[je >> 2] | 0; je = c[Wd >> 2] | 0; Db = c[re >> 2] | 0; c[tb >> 2] = c[me >> 2]; c[ub >> 2] = Yd; c[vb >> 2] = gc; c[wb >> 2] = je; c[xb >> 2] = Db; c[yb >> 2] = c[tb >> 2]; while (1) { yb = ((gp(c[ub >> 2] | 0) | 0) == 0) & 1; if ( !( yb & ((c[tb >> 2] | 0) >>> 0 < (((c[vb >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { yb = c[ub >> 2] | 0; Db = c[wb >> 2] | 0; je = c[xb >> 2] | 0; c[ob >> 2] = c[tb >> 2]; c[pb >> 2] = yb; c[qb >> 2] = Db; c[rb >> 2] = je; c[sb >> 2] = ip(c[pb >> 2] | 0, c[rb >> 2] | 0) | 0; je = c[ob >> 2] | 0; Db = ((c[qb >> 2] | 0) + (c[sb >> 2] << 2)) | 0; a[je >> 0] = a[Db >> 0] | 0; a[(je + 1) >> 0] = a[(Db + 1) >> 0] | 0; jp( c[pb >> 2] | 0, d[((c[qb >> 2] | 0) + (c[sb >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[qb >> 2] | 0) + (c[sb >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; Db = c[ub >> 2] | 0; je = c[wb >> 2] | 0; yb = c[xb >> 2] | 0; c[jb >> 2] = c[tb >> 2]; c[kb >> 2] = Db; c[lb >> 2] = je; c[mb >> 2] = yb; c[nb >> 2] = ip(c[kb >> 2] | 0, c[mb >> 2] | 0) | 0; yb = c[jb >> 2] | 0; je = ((c[lb >> 2] | 0) + (c[nb >> 2] << 2)) | 0; a[yb >> 0] = a[je >> 0] | 0; a[(yb + 1) >> 0] = a[(je + 1) >> 0] | 0; jp( c[kb >> 2] | 0, d[((c[lb >> 2] | 0) + (c[nb >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[lb >> 2] | 0) + (c[nb >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { je = c[ub >> 2] | 0; yb = c[wb >> 2] | 0; Db = c[xb >> 2] | 0; c[eb >> 2] = c[tb >> 2]; c[fb >> 2] = je; c[gb >> 2] = yb; c[hb >> 2] = Db; c[ib >> 2] = ip(c[fb >> 2] | 0, c[hb >> 2] | 0) | 0; Db = c[eb >> 2] | 0; yb = ((c[gb >> 2] | 0) + (c[ib >> 2] << 2)) | 0; a[Db >> 0] = a[yb >> 0] | 0; a[(Db + 1) >> 0] = a[(yb + 1) >> 0] | 0; jp( c[fb >> 2] | 0, d[((c[gb >> 2] | 0) + (c[ib >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[gb >> 2] | 0) + (c[ib >> 2] << 2) + 3) >> 0] | 0); } yb = c[ub >> 2] | 0; Db = c[wb >> 2] | 0; je = c[xb >> 2] | 0; c[$a >> 2] = c[tb >> 2]; c[ab >> 2] = yb; c[bb >> 2] = Db; c[cb >> 2] = je; c[db >> 2] = ip(c[ab >> 2] | 0, c[cb >> 2] | 0) | 0; je = c[$a >> 2] | 0; Db = ((c[bb >> 2] | 0) + (c[db >> 2] << 2)) | 0; a[je >> 0] = a[Db >> 0] | 0; a[(je + 1) >> 0] = a[(Db + 1) >> 0] | 0; jp( c[ab >> 2] | 0, d[((c[bb >> 2] | 0) + (c[db >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[bb >> 2] | 0) + (c[db >> 2] << 2) + 3) >> 0] | 0); } while (1) { db = ((gp(c[ub >> 2] | 0) | 0) == 0) & 1; if ( !( db & ((c[tb >> 2] | 0) >>> 0 <= (((c[vb >> 2] | 0) + -2) | 0) >>> 0) ) ) break; db = c[ub >> 2] | 0; bb = c[wb >> 2] | 0; ab = c[xb >> 2] | 0; c[Wa >> 2] = c[tb >> 2]; c[Xa >> 2] = db; c[Ya >> 2] = bb; c[Za >> 2] = ab; c[_a >> 2] = ip(c[Xa >> 2] | 0, c[Za >> 2] | 0) | 0; ab = c[Wa >> 2] | 0; bb = ((c[Ya >> 2] | 0) + (c[_a >> 2] << 2)) | 0; a[ab >> 0] = a[bb >> 0] | 0; a[(ab + 1) >> 0] = a[(bb + 1) >> 0] | 0; jp( c[Xa >> 2] | 0, d[((c[Ya >> 2] | 0) + (c[_a >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[Ya >> 2] | 0) + (c[_a >> 2] << 2) + 3) >> 0] | 0); } while (1) { Ee = c[tb >> 2] | 0; if ( (c[tb >> 2] | 0) >>> 0 > (((c[vb >> 2] | 0) + -2) | 0) >>> 0 ) break; _a = c[ub >> 2] | 0; Ya = c[wb >> 2] | 0; Xa = c[xb >> 2] | 0; c[Ra >> 2] = Ee; c[Sa >> 2] = _a; c[Ta >> 2] = Ya; c[Ua >> 2] = Xa; c[Va >> 2] = ip(c[Sa >> 2] | 0, c[Ua >> 2] | 0) | 0; Xa = c[Ra >> 2] | 0; Ya = ((c[Ta >> 2] | 0) + (c[Va >> 2] << 2)) | 0; a[Xa >> 0] = a[Ya >> 0] | 0; a[(Xa + 1) >> 0] = a[(Ya + 1) >> 0] | 0; jp( c[Sa >> 2] | 0, d[((c[Ta >> 2] | 0) + (c[Va >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + (d[((c[Ta >> 2] | 0) + (c[Va >> 2] << 2) + 3) >> 0] | 0); } if (Ee >>> 0 < (c[vb >> 2] | 0) >>> 0) { vb = c[ub >> 2] | 0; ub = c[wb >> 2] | 0; wb = c[xb >> 2] | 0; c[Ma >> 2] = c[tb >> 2]; c[Na >> 2] = vb; c[Oa >> 2] = ub; c[Pa >> 2] = wb; c[Qa >> 2] = ip(c[Na >> 2] | 0, c[Pa >> 2] | 0) | 0; a[c[Ma >> 2] >> 0] = a[((c[Oa >> 2] | 0) + (c[Qa >> 2] << 2)) >> 0] | 0; Ma = c[Na >> 2] | 0; if ( (d[((c[Oa >> 2] | 0) + (c[Qa >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(Ma + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[Na >> 2] | 0, d[ ((c[Oa >> 2] | 0) + (c[Qa >> 2] << 2) + 2) >> 0 ] | 0 ), (c[((c[Na >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[Na >> 2] | 0) + 4) >> 2] = 32; } else jp( Ma, d[((c[Oa >> 2] | 0) + (c[Qa >> 2] << 2) + 2) >> 0] | 0 ); c[tb >> 2] = (c[tb >> 2] | 0) + 1; } tb = c[ke >> 2] | 0; ke = c[Wd >> 2] | 0; Qa = c[re >> 2] | 0; c[Ga >> 2] = c[ne >> 2]; c[Ha >> 2] = Zd; c[Ia >> 2] = tb; c[Ja >> 2] = ke; c[Ka >> 2] = Qa; c[La >> 2] = c[Ga >> 2]; while (1) { La = ((gp(c[Ha >> 2] | 0) | 0) == 0) & 1; if ( !( La & ((c[Ga >> 2] | 0) >>> 0 < (((c[Ia >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { La = c[Ha >> 2] | 0; Qa = c[Ja >> 2] | 0; ke = c[Ka >> 2] | 0; c[Ba >> 2] = c[Ga >> 2]; c[Ca >> 2] = La; c[Da >> 2] = Qa; c[Ea >> 2] = ke; c[Fa >> 2] = ip(c[Ca >> 2] | 0, c[Ea >> 2] | 0) | 0; ke = c[Ba >> 2] | 0; Qa = ((c[Da >> 2] | 0) + (c[Fa >> 2] << 2)) | 0; a[ke >> 0] = a[Qa >> 0] | 0; a[(ke + 1) >> 0] = a[(Qa + 1) >> 0] | 0; jp( c[Ca >> 2] | 0, d[((c[Da >> 2] | 0) + (c[Fa >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[Da >> 2] | 0) + (c[Fa >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; Qa = c[Ha >> 2] | 0; ke = c[Ja >> 2] | 0; La = c[Ka >> 2] | 0; c[wa >> 2] = c[Ga >> 2]; c[xa >> 2] = Qa; c[ya >> 2] = ke; c[za >> 2] = La; c[Aa >> 2] = ip(c[xa >> 2] | 0, c[za >> 2] | 0) | 0; La = c[wa >> 2] | 0; ke = ((c[ya >> 2] | 0) + (c[Aa >> 2] << 2)) | 0; a[La >> 0] = a[ke >> 0] | 0; a[(La + 1) >> 0] = a[(ke + 1) >> 0] | 0; jp( c[xa >> 2] | 0, d[((c[ya >> 2] | 0) + (c[Aa >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[ya >> 2] | 0) + (c[Aa >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { ke = c[Ha >> 2] | 0; La = c[Ja >> 2] | 0; Qa = c[Ka >> 2] | 0; c[ra >> 2] = c[Ga >> 2]; c[sa >> 2] = ke; c[ta >> 2] = La; c[ua >> 2] = Qa; c[va >> 2] = ip(c[sa >> 2] | 0, c[ua >> 2] | 0) | 0; Qa = c[ra >> 2] | 0; La = ((c[ta >> 2] | 0) + (c[va >> 2] << 2)) | 0; a[Qa >> 0] = a[La >> 0] | 0; a[(Qa + 1) >> 0] = a[(La + 1) >> 0] | 0; jp( c[sa >> 2] | 0, d[((c[ta >> 2] | 0) + (c[va >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[ta >> 2] | 0) + (c[va >> 2] << 2) + 3) >> 0] | 0); } La = c[Ha >> 2] | 0; Qa = c[Ja >> 2] | 0; ke = c[Ka >> 2] | 0; c[ma >> 2] = c[Ga >> 2]; c[na >> 2] = La; c[oa >> 2] = Qa; c[pa >> 2] = ke; c[qa >> 2] = ip(c[na >> 2] | 0, c[pa >> 2] | 0) | 0; ke = c[ma >> 2] | 0; Qa = ((c[oa >> 2] | 0) + (c[qa >> 2] << 2)) | 0; a[ke >> 0] = a[Qa >> 0] | 0; a[(ke + 1) >> 0] = a[(Qa + 1) >> 0] | 0; jp( c[na >> 2] | 0, d[((c[oa >> 2] | 0) + (c[qa >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[oa >> 2] | 0) + (c[qa >> 2] << 2) + 3) >> 0] | 0); } while (1) { qa = ((gp(c[Ha >> 2] | 0) | 0) == 0) & 1; if ( !( qa & ((c[Ga >> 2] | 0) >>> 0 <= (((c[Ia >> 2] | 0) + -2) | 0) >>> 0) ) ) break; qa = c[Ha >> 2] | 0; oa = c[Ja >> 2] | 0; na = c[Ka >> 2] | 0; c[ha >> 2] = c[Ga >> 2]; c[ia >> 2] = qa; c[ja >> 2] = oa; c[ka >> 2] = na; c[la >> 2] = ip(c[ia >> 2] | 0, c[ka >> 2] | 0) | 0; na = c[ha >> 2] | 0; oa = ((c[ja >> 2] | 0) + (c[la >> 2] << 2)) | 0; a[na >> 0] = a[oa >> 0] | 0; a[(na + 1) >> 0] = a[(oa + 1) >> 0] | 0; jp( c[ia >> 2] | 0, d[((c[ja >> 2] | 0) + (c[la >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[ja >> 2] | 0) + (c[la >> 2] << 2) + 3) >> 0] | 0); } while (1) { Fe = c[Ga >> 2] | 0; if ( (c[Ga >> 2] | 0) >>> 0 > (((c[Ia >> 2] | 0) + -2) | 0) >>> 0 ) break; la = c[Ha >> 2] | 0; ja = c[Ja >> 2] | 0; ia = c[Ka >> 2] | 0; c[ca >> 2] = Fe; c[da >> 2] = la; c[ea >> 2] = ja; c[fa >> 2] = ia; c[ga >> 2] = ip(c[da >> 2] | 0, c[fa >> 2] | 0) | 0; ia = c[ca >> 2] | 0; ja = ((c[ea >> 2] | 0) + (c[ga >> 2] << 2)) | 0; a[ia >> 0] = a[ja >> 0] | 0; a[(ia + 1) >> 0] = a[(ja + 1) >> 0] | 0; jp( c[da >> 2] | 0, d[((c[ea >> 2] | 0) + (c[ga >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + (d[((c[ea >> 2] | 0) + (c[ga >> 2] << 2) + 3) >> 0] | 0); } if (Fe >>> 0 < (c[Ia >> 2] | 0) >>> 0) { Ia = c[Ha >> 2] | 0; Ha = c[Ja >> 2] | 0; Ja = c[Ka >> 2] | 0; c[Z >> 2] = c[Ga >> 2]; c[_ >> 2] = Ia; c[$ >> 2] = Ha; c[aa >> 2] = Ja; c[ba >> 2] = ip(c[_ >> 2] | 0, c[aa >> 2] | 0) | 0; a[c[Z >> 2] >> 0] = a[((c[$ >> 2] | 0) + (c[ba >> 2] << 2)) >> 0] | 0; Z = c[_ >> 2] | 0; if ( (d[((c[$ >> 2] | 0) + (c[ba >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(Z + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[_ >> 2] | 0, d[ ((c[$ >> 2] | 0) + (c[ba >> 2] << 2) + 2) >> 0 ] | 0 ), (c[((c[_ >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[_ >> 2] | 0) + 4) >> 2] = 32; } else jp( Z, d[((c[$ >> 2] | 0) + (c[ba >> 2] << 2) + 2) >> 0] | 0 ); c[Ga >> 2] = (c[Ga >> 2] | 0) + 1; } Ga = c[Ud >> 2] | 0; Ud = c[Wd >> 2] | 0; Wd = c[re >> 2] | 0; c[T >> 2] = c[oe >> 2]; c[U >> 2] = _d; c[V >> 2] = Ga; c[W >> 2] = Ud; c[X >> 2] = Wd; c[Y >> 2] = c[T >> 2]; while (1) { Y = ((gp(c[U >> 2] | 0) | 0) == 0) & 1; if ( !( Y & ((c[T >> 2] | 0) >>> 0 < (((c[V >> 2] | 0) + -3) | 0) >>> 0) ) ) break; if (hp() | 0) { Y = c[U >> 2] | 0; Wd = c[W >> 2] | 0; Ud = c[X >> 2] | 0; c[O >> 2] = c[T >> 2]; c[P >> 2] = Y; c[Q >> 2] = Wd; c[R >> 2] = Ud; c[S >> 2] = ip(c[P >> 2] | 0, c[R >> 2] | 0) | 0; Ud = c[O >> 2] | 0; Wd = ((c[Q >> 2] | 0) + (c[S >> 2] << 2)) | 0; a[Ud >> 0] = a[Wd >> 0] | 0; a[(Ud + 1) >> 0] = a[(Wd + 1) >> 0] | 0; jp( c[P >> 2] | 0, d[((c[Q >> 2] | 0) + (c[S >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[Q >> 2] | 0) + (c[S >> 2] << 2) + 3) >> 0] | 0); } hp() | 0; Wd = c[U >> 2] | 0; Ud = c[W >> 2] | 0; Y = c[X >> 2] | 0; c[J >> 2] = c[T >> 2]; c[K >> 2] = Wd; c[L >> 2] = Ud; c[M >> 2] = Y; c[N >> 2] = ip(c[K >> 2] | 0, c[M >> 2] | 0) | 0; Y = c[J >> 2] | 0; Ud = ((c[L >> 2] | 0) + (c[N >> 2] << 2)) | 0; a[Y >> 0] = a[Ud >> 0] | 0; a[(Y + 1) >> 0] = a[(Ud + 1) >> 0] | 0; jp( c[K >> 2] | 0, d[((c[L >> 2] | 0) + (c[N >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[L >> 2] | 0) + (c[N >> 2] << 2) + 3) >> 0] | 0); if (hp() | 0) { Ud = c[U >> 2] | 0; Y = c[W >> 2] | 0; Wd = c[X >> 2] | 0; c[E >> 2] = c[T >> 2]; c[F >> 2] = Ud; c[G >> 2] = Y; c[H >> 2] = Wd; c[I >> 2] = ip(c[F >> 2] | 0, c[H >> 2] | 0) | 0; Wd = c[E >> 2] | 0; Y = ((c[G >> 2] | 0) + (c[I >> 2] << 2)) | 0; a[Wd >> 0] = a[Y >> 0] | 0; a[(Wd + 1) >> 0] = a[(Y + 1) >> 0] | 0; jp( c[F >> 2] | 0, d[((c[G >> 2] | 0) + (c[I >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[G >> 2] | 0) + (c[I >> 2] << 2) + 3) >> 0] | 0); } Y = c[U >> 2] | 0; Wd = c[W >> 2] | 0; Ud = c[X >> 2] | 0; c[z >> 2] = c[T >> 2]; c[A >> 2] = Y; c[B >> 2] = Wd; c[C >> 2] = Ud; c[D >> 2] = ip(c[A >> 2] | 0, c[C >> 2] | 0) | 0; Ud = c[z >> 2] | 0; Wd = ((c[B >> 2] | 0) + (c[D >> 2] << 2)) | 0; a[Ud >> 0] = a[Wd >> 0] | 0; a[(Ud + 1) >> 0] = a[(Wd + 1) >> 0] | 0; jp( c[A >> 2] | 0, d[((c[B >> 2] | 0) + (c[D >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[B >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0] | 0); } while (1) { D = ((gp(c[U >> 2] | 0) | 0) == 0) & 1; if ( !( D & ((c[T >> 2] | 0) >>> 0 <= (((c[V >> 2] | 0) + -2) | 0) >>> 0) ) ) break; D = c[U >> 2] | 0; B = c[W >> 2] | 0; A = c[X >> 2] | 0; c[u >> 2] = c[T >> 2]; c[v >> 2] = D; c[w >> 2] = B; c[x >> 2] = A; c[y >> 2] = ip(c[v >> 2] | 0, c[x >> 2] | 0) | 0; A = c[u >> 2] | 0; B = ((c[w >> 2] | 0) + (c[y >> 2] << 2)) | 0; a[A >> 0] = a[B >> 0] | 0; a[(A + 1) >> 0] = a[(B + 1) >> 0] | 0; jp( c[v >> 2] | 0, d[((c[w >> 2] | 0) + (c[y >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[w >> 2] | 0) + (c[y >> 2] << 2) + 3) >> 0] | 0); } while (1) { Ge = c[T >> 2] | 0; if ( (c[T >> 2] | 0) >>> 0 > (((c[V >> 2] | 0) + -2) | 0) >>> 0 ) break; y = c[U >> 2] | 0; w = c[W >> 2] | 0; v = c[X >> 2] | 0; c[p >> 2] = Ge; c[q >> 2] = y; c[r >> 2] = w; c[s >> 2] = v; c[t >> 2] = ip(c[q >> 2] | 0, c[s >> 2] | 0) | 0; v = c[p >> 2] | 0; w = ((c[r >> 2] | 0) + (c[t >> 2] << 2)) | 0; a[v >> 0] = a[w >> 0] | 0; a[(v + 1) >> 0] = a[(w + 1) >> 0] | 0; jp( c[q >> 2] | 0, d[((c[r >> 2] | 0) + (c[t >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + (d[((c[r >> 2] | 0) + (c[t >> 2] << 2) + 3) >> 0] | 0); } if (Ge >>> 0 < (c[V >> 2] | 0) >>> 0) { V = c[U >> 2] | 0; U = c[W >> 2] | 0; W = c[X >> 2] | 0; c[j >> 2] = c[T >> 2]; c[k >> 2] = V; c[m >> 2] = U; c[n >> 2] = W; c[o >> 2] = ip(c[k >> 2] | 0, c[n >> 2] | 0) | 0; a[c[j >> 2] >> 0] = a[((c[m >> 2] | 0) + (c[o >> 2] << 2)) >> 0] | 0; j = c[k >> 2] | 0; if ( (d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 3) >> 0] | 0 | 0) != 1 ) { if ( (c[(j + 4) >> 2] | 0) >>> 0 < 32 ? (jp( c[k >> 2] | 0, d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ), (c[((c[k >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) : 0 ) c[((c[k >> 2] | 0) + 4) >> 2] = 32; } else jp( j, d[((c[m >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ); c[T >> 2] = (c[T >> 2] | 0) + 1; } T = lp(Xd) | 0; Xd = T & (lp(Yd) | 0); Yd = Xd & (lp(Zd) | 0); c[we >> 2] = Yd & (lp(_d) | 0); if (c[we >> 2] | 0) { c[Md >> 2] = c[Od >> 2]; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } else { c[Md >> 2] = -20; Ce = c[Md >> 2] | 0; l = i; return Ce | 0; } return 0; } function Mp(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; j = l; l = (l + 48) | 0; k = (j + 40) | 0; m = (j + 36) | 0; n = (j + 32) | 0; o = (j + 28) | 0; p = (j + 24) | 0; q = (j + 20) | 0; r = (j + 16) | 0; s = (j + 12) | 0; t = (j + 8) | 0; u = (j + 4) | 0; v = j; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = c[p >> 2]; c[v >> 2] = Bp( c[m >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, c[r >> 2] | 0, c[s >> 2] | 0 ) | 0; s = (ap(c[v >> 2] | 0) | 0) != 0; r = c[v >> 2] | 0; if (s) { c[k >> 2] = r; w = c[k >> 2] | 0; l = j; return w | 0; } if (r >>> 0 >= (c[q >> 2] | 0) >>> 0) { c[k >> 2] = -72; w = c[k >> 2] | 0; l = j; return w | 0; } else { c[u >> 2] = (c[u >> 2] | 0) + (c[v >> 2] | 0); c[q >> 2] = (c[q >> 2] | 0) - (c[v >> 2] | 0); c[k >> 2] = Jp( c[n >> 2] | 0, c[o >> 2] | 0, c[u >> 2] | 0, c[q >> 2] | 0, c[m >> 2] | 0, c[t >> 2] | 0 ) | 0; w = c[k >> 2] | 0; l = j; return w | 0; } return 0; } function Np(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; d = l; l = (l + 32) | 0; e = (d + 20) | 0; f = (d + 16) | 0; g = (d + 12) | 0; h = (d + 8) | 0; i = (d + 4) | 0; j = d; c[e >> 2] = a; c[f >> 2] = b; if ((c[f >> 2] | 0) >>> 0 >= (c[e >> 2] | 0) >>> 0) k = 15; else k = (((c[f >> 2] << 4) >>> 0) / ((c[e >> 2] | 0) >>> 0)) | 0; c[g >> 2] = k; c[h >> 2] = (c[e >> 2] | 0) >>> 8; c[i >> 2] = (c[(7008 + (((c[g >> 2] | 0) * 24) | 0)) >> 2] | 0) + (N( c[(7008 + (((c[g >> 2] | 0) * 24) | 0) + 4) >> 2] | 0, c[h >> 2] | 0 ) | 0); c[j >> 2] = (c[(7008 + (((c[g >> 2] | 0) * 24) | 0) + 8) >> 2] | 0) + (N( c[(7008 + (((c[g >> 2] | 0) * 24) | 0) + 8 + 4) >> 2] | 0, c[h >> 2] | 0 ) | 0); c[j >> 2] = (c[j >> 2] | 0) + ((c[j >> 2] | 0) >>> 3); l = d; return ((c[j >> 2] | 0) >>> 0 < (c[i >> 2] | 0) >>> 0) | 0; } function Op(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; i = l; l = (l + 32) | 0; j = (i + 20) | 0; k = (i + 16) | 0; m = (i + 12) | 0; n = (i + 8) | 0; o = (i + 4) | 0; p = i; q = (i + 24) | 0; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; bp(q, c[o >> 2] | 0); h = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; o = c[p >> 2] | 0; if (d[(q + 1) >> 0] | 0 | 0) { r = Gp(h, j, k, m, n, o) | 0; l = i; return r | 0; } else { r = cp(h, j, k, m, n, o) | 0; l = i; return r | 0; } return 0; } function Pp(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; j = l; l = (l + 48) | 0; k = (j + 40) | 0; m = (j + 36) | 0; n = (j + 32) | 0; o = (j + 28) | 0; p = (j + 24) | 0; q = (j + 20) | 0; r = (j + 16) | 0; s = (j + 12) | 0; t = (j + 8) | 0; u = (j + 4) | 0; v = j; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = c[p >> 2]; c[v >> 2] = $o( c[m >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, c[r >> 2] | 0, c[s >> 2] | 0 ) | 0; s = (ap(c[v >> 2] | 0) | 0) != 0; r = c[v >> 2] | 0; if (s) { c[k >> 2] = r; w = c[k >> 2] | 0; l = j; return w | 0; } if (r >>> 0 >= (c[q >> 2] | 0) >>> 0) { c[k >> 2] = -72; w = c[k >> 2] | 0; l = j; return w | 0; } else { c[u >> 2] = (c[u >> 2] | 0) + (c[v >> 2] | 0); c[q >> 2] = (c[q >> 2] | 0) - (c[v >> 2] | 0); c[k >> 2] = cp( c[n >> 2] | 0, c[o >> 2] | 0, c[u >> 2] | 0, c[q >> 2] | 0, c[m >> 2] | 0, c[t >> 2] | 0 ) | 0; w = c[k >> 2] | 0; l = j; return w | 0; } return 0; } function Qp(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; i = l; l = (l + 32) | 0; j = (i + 20) | 0; k = (i + 16) | 0; m = (i + 12) | 0; n = (i + 8) | 0; o = (i + 4) | 0; p = i; q = (i + 24) | 0; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; bp(q, c[o >> 2] | 0); h = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; o = c[p >> 2] | 0; if (d[(q + 1) >> 0] | 0 | 0) { r = Jp(h, j, k, m, n, o) | 0; l = i; return r | 0; } else { r = vp(h, j, k, m, n, o) | 0; l = i; return r | 0; } return 0; } function Rp(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; j = l; l = (l + 48) | 0; k = (j + 36) | 0; m = (j + 32) | 0; n = (j + 28) | 0; o = (j + 24) | 0; p = (j + 20) | 0; q = (j + 16) | 0; r = (j + 12) | 0; s = (j + 8) | 0; t = (j + 4) | 0; u = j; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; if (!(c[o >> 2] | 0)) { c[k >> 2] = -70; v = c[k >> 2] | 0; l = j; return v | 0; } if (!(c[q >> 2] | 0)) { c[k >> 2] = -20; v = c[k >> 2] | 0; l = j; return v | 0; } c[u >> 2] = Np(c[o >> 2] | 0, c[q >> 2] | 0) | 0; i = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; o = c[p >> 2] | 0; p = c[q >> 2] | 0; q = c[r >> 2] | 0; r = c[s >> 2] | 0; s = c[t >> 2] | 0; if (c[u >> 2] | 0) w = Mp(i, m, n, o, p, q, r, s) | 0; else w = Ap(i, m, n, o, p, q, r, s) | 0; c[k >> 2] = w; v = c[k >> 2] | 0; l = j; return v | 0; } function Sp(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 48) | 0; d = (b + 24) | 0; e = (b + 16) | 0; f = b; c[e >> 2] = a; c[((c[e >> 2] | 0) + 28912) >> 2] = 0; c[((c[e >> 2] | 0) + 28940) >> 2] = 0; c[((c[e >> 2] | 0) + 28972) >> 2] = 134217729; c[((c[e >> 2] | 0) + 28952) >> 2] = 0; c[((c[e >> 2] | 0) + 28948) >> 2] = 0; c[((c[e >> 2] | 0) + 28960) >> 2] = 0; c[((c[e >> 2] | 0) + 28964) >> 2] = 0; c[((c[e >> 2] | 0) + 28980) >> 2] = 0; c[((c[e >> 2] | 0) + 28956) >> 2] = 0; Tp(f); c[d >> 2] = c[f >> 2]; c[(d + 4) >> 2] = c[(f + 4) >> 2]; c[(d + 8) >> 2] = c[(f + 8) >> 2]; c[(d + 12) >> 2] = c[(f + 12) >> 2]; f = Up(d) | 0; c[((c[e >> 2] | 0) + 28944) >> 2] = f; l = b; return; } function Tp(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0; b = l; l = (l + 32) | 0; d = (b + 28) | 0; e = (b + 24) | 0; f = (b + 20) | 0; g = (b + 16) | 0; h = b; c[d >> 2] = 0; c[e >> 2] = 0; c[f >> 2] = 0; c[g >> 2] = 0; c[h >> 2] = c[d >> 2]; c[(h + 4) >> 2] = c[e >> 2]; c[(h + 8) >> 2] = c[f >> 2]; c[(h + 12) >> 2] = c[g >> 2]; c[a >> 2] = c[h >> 2]; c[(a + 4) >> 2] = c[(h + 4) >> 2]; c[(a + 8) >> 2] = c[(h + 8) >> 2]; c[(a + 12) >> 2] = c[(h + 12) >> 2]; l = b; return; } function Up(a) { a = a | 0; return (((c[(a + 8) >> 2] & 256) | 0) != 0) | 0; } function Vp(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 32) | 0; d = (b + 8) | 0; e = (b + 4) | 0; f = b; if ( (((((c[a >> 2] | 0) != 0) ^ 1) & 1) ^ ((((c[(a + 4) >> 2] | 0) != 0) ^ 1) & 1)) | 0 ) { c[e >> 2] = 0; g = c[e >> 2] | 0; l = b; return g | 0; } c[d >> 2] = c[a >> 2]; c[(d + 4) >> 2] = c[(a + 4) >> 2]; c[(d + 8) >> 2] = c[(a + 8) >> 2]; c[f >> 2] = Rh(160112, d) | 0; if (c[f >> 2] | 0) { d = ((c[f >> 2] | 0) + 28920) | 0; c[d >> 2] = c[a >> 2]; c[(d + 4) >> 2] = c[(a + 4) >> 2]; c[(d + 8) >> 2] = c[(a + 8) >> 2]; c[((c[f >> 2] | 0) + 28996) >> 2] = 0; c[((c[f >> 2] | 0) + 29e3) >> 2] = 0; Sp(c[f >> 2] | 0); c[e >> 2] = c[f >> 2]; g = c[e >> 2] | 0; l = b; return g | 0; } else { c[e >> 2] = 0; g = c[e >> 2] | 0; l = b; return g | 0; } return 0; } function Wp() { var a = 0, b = 0, d = 0; a = l; l = (l + 16) | 0; b = a; c[b >> 2] = c[5412]; c[(b + 4) >> 2] = c[5413]; c[(b + 8) >> 2] = c[5414]; d = Vp(b) | 0; l = a; return d | 0; } function Xp(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0; b = l; l = (l + 32) | 0; d = (b + 20) | 0; e = (b + 16) | 0; f = (b + 12) | 0; g = b; c[f >> 2] = a; if (!(c[f >> 2] | 0)) { c[e >> 2] = 0; h = c[e >> 2] | 0; l = b; return h | 0; } if (c[((c[f >> 2] | 0) + 28940) >> 2] | 0) { c[e >> 2] = -64; h = c[e >> 2] | 0; l = b; return h | 0; } a = ((c[f >> 2] | 0) + 28920) | 0; c[g >> 2] = c[a >> 2]; c[(g + 4) >> 2] = c[(a + 4) >> 2]; c[(g + 8) >> 2] = c[(a + 8) >> 2]; Yp(c[((c[f >> 2] | 0) + 28948) >> 2] | 0) | 0; c[((c[f >> 2] | 0) + 28948) >> 2] = 0; a = c[((c[f >> 2] | 0) + 28960) >> 2] | 0; c[d >> 2] = c[g >> 2]; c[(d + 4) >> 2] = c[(g + 4) >> 2]; c[(d + 8) >> 2] = c[(g + 8) >> 2]; Th(a, d); c[((c[f >> 2] | 0) + 28960) >> 2] = 0; if (c[((c[f >> 2] | 0) + 28996) >> 2] | 0) Zp( c[((c[f >> 2] | 0) + 28996) >> 2] | 0, c[((c[f >> 2] | 0) + 29e3) >> 2] | 0 ) | 0; a = c[f >> 2] | 0; c[d >> 2] = c[g >> 2]; c[(d + 4) >> 2] = c[(g + 4) >> 2]; c[(d + 8) >> 2] = c[(g + 8) >> 2]; Th(a, d); c[e >> 2] = 0; h = c[e >> 2] | 0; l = b; return h | 0; } function Yp(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0; b = l; l = (l + 32) | 0; d = (b + 20) | 0; e = (b + 16) | 0; f = (b + 12) | 0; g = b; c[f >> 2] = a; if (!(c[f >> 2] | 0)) { c[e >> 2] = 0; h = c[e >> 2] | 0; l = b; return h | 0; } else { a = ((c[f >> 2] | 0) + 28732) | 0; c[g >> 2] = c[a >> 2]; c[(g + 4) >> 2] = c[(a + 4) >> 2]; c[(g + 8) >> 2] = c[(a + 8) >> 2]; a = c[c[f >> 2] >> 2] | 0; c[d >> 2] = c[g >> 2]; c[(d + 4) >> 2] = c[(g + 4) >> 2]; c[(d + 8) >> 2] = c[(g + 8) >> 2]; Th(a, d); a = c[f >> 2] | 0; c[d >> 2] = c[g >> 2]; c[(d + 4) >> 2] = c[(g + 4) >> 2]; c[(d + 8) >> 2] = c[(g + 8) >> 2]; Th(a, d); c[e >> 2] = 0; h = c[e >> 2] | 0; l = b; return h | 0; } return 0; } function Zp(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[f >> 2] = a; c[g >> 2] = b; switch (c[g >> 2] | 0) { case 7: { c[e >> 2] = bq(c[f >> 2] | 0) | 0; break; } case 6: { c[e >> 2] = aq(c[f >> 2] | 0) | 0; break; } case 5: { c[e >> 2] = $p(c[f >> 2] | 0) | 0; break; } case 4: { c[e >> 2] = _p(c[f >> 2] | 0) | 0; break; } default: c[e >> 2] = -12; } l = d; return c[e >> 2] | 0; } function _p(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = fq(c[d >> 2] | 0) | 0; l = b; return a | 0; } function $p(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; if (!(c[e >> 2] | 0)) { c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } else { eq(c[c[e >> 2] >> 2] | 0) | 0; Dy(c[((c[e >> 2] | 0) + 48) >> 2] | 0); Dy(c[((c[e >> 2] | 0) + 60) >> 2] | 0); Dy(c[e >> 2] | 0); c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } return 0; } function aq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; if (!(c[e >> 2] | 0)) { c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } else { dq(c[c[e >> 2] >> 2] | 0) | 0; Dy(c[((c[e >> 2] | 0) + 28) >> 2] | 0); Dy(c[((c[e >> 2] | 0) + 40) >> 2] | 0); Dy(c[e >> 2] | 0); c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } return 0; } function bq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; if (!(c[e >> 2] | 0)) { c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } cq(c[c[e >> 2] >> 2] | 0) | 0; if (c[((c[e >> 2] | 0) + 36) >> 2] | 0) xc[c[((c[e >> 2] | 0) + 92 + 4) >> 2] & 31]( c[((c[e >> 2] | 0) + 92 + 8) >> 2] | 0, c[((c[e >> 2] | 0) + 36) >> 2] | 0 ); if (c[((c[e >> 2] | 0) + 48) >> 2] | 0) xc[c[((c[e >> 2] | 0) + 92 + 4) >> 2] & 31]( c[((c[e >> 2] | 0) + 92 + 8) >> 2] | 0, c[((c[e >> 2] | 0) + 48) >> 2] | 0 ); xc[c[((c[e >> 2] | 0) + 92 + 4) >> 2] & 31]( c[((c[e >> 2] | 0) + 92 + 8) >> 2] | 0, c[e >> 2] | 0 ); c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } function cq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; if (!(c[e >> 2] | 0)) { c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } else { xc[c[((c[e >> 2] | 0) + 21692 + 4) >> 2] & 31]( c[((c[e >> 2] | 0) + 21692 + 8) >> 2] | 0, c[e >> 2] | 0 ); c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } return 0; } function dq(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; Dy(c[d >> 2] | 0); l = b; return 0; } function eq(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; Dy(c[d >> 2] | 0); l = b; return 0; } function fq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; if (!(c[e >> 2] | 0)) { c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } else { gq(c[c[e >> 2] >> 2] | 0) | 0; Dy(c[((c[e >> 2] | 0) + 40) >> 2] | 0); Dy(c[((c[e >> 2] | 0) + 52) >> 2] | 0); Dy(c[e >> 2] | 0); c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } return 0; } function gq(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; Dy(c[d >> 2] | 0); l = b; return 0; } function hq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (jq() | 0) != 0; f = kq(c[e >> 2] | 0) | 0; if (a) { c[d >> 2] = f; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = lq(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function iq(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = (d + 12) | 0; f = (d + 8) | 0; g = (d + 4) | 0; h = d; c[f >> 2] = a; c[g >> 2] = b; a: do { if ((c[g >> 2] | 0) >>> 0 < 4) c[e >> 2] = 0; else { c[h >> 2] = hq(c[f >> 2] | 0) | 0; switch (c[h >> 2] | 0) { case -47205084: { c[e >> 2] = 4; break a; break; } case -47205083: { c[e >> 2] = 5; break a; break; } case -47205082: { c[e >> 2] = 6; break a; break; } case -47205081: { c[e >> 2] = 7; break a; break; } default: { c[e >> 2] = 0; break a; } } } } while (0); l = d; return c[e >> 2] | 0; } function jq() { return d[11936] | 0 | 0; } function kq(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function lq(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function mq(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = nq(c[e >> 2] | 0, c[f >> 2] | 0, 0) | 0; l = d; return b | 0; } function nq(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; g = l; l = (l + 48) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 32) | 0; o = (g + 8) | 0; p = (g + 4) | 0; q = g; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = oq(c[k >> 2] | 0) | 0; if ((c[j >> 2] | 0) >>> 0 < (c[m >> 2] | 0) >>> 0) { c[h >> 2] = -72; r = c[h >> 2] | 0; l = g; return r | 0; } a[n >> 0] = a[((c[i >> 2] | 0) + ((c[m >> 2] | 0) - 1)) >> 0] | 0; c[o >> 2] = (d[n >> 0] | 0) & 3; c[p >> 2] = ((d[n >> 0] | 0) >> 5) & 1; c[q >> 2] = (d[n >> 0] | 0) >> 6; if (c[p >> 2] | 0) s = ((c[q >> 2] | 0) != 0) ^ 1; else s = 0; c[h >> 2] = (c[m >> 2] | 0) + ((((c[p >> 2] | 0) != 0) ^ 1) & 1) + (c[(3456 + (c[o >> 2] << 2)) >> 2] | 0) + (c[(3472 + (c[q >> 2] << 2)) >> 2] | 0) + (s & 1); r = c[h >> 2] | 0; l = g; return r | 0; } function oq(a) { a = a | 0; var b = 0, d = 0, e = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[d >> 2] = a; c[e >> 2] = (c[d >> 2] | 0) == 1 ? 1 : 5; l = b; return c[e >> 2] | 0; } function pq(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = qq(c[f >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0, 0) | 0; l = e; return d | 0; } function qq(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0; h = l; l = (l + 80) | 0; i = (h + 72) | 0; j = (h + 68) | 0; k = (h + 64) | 0; m = (h + 60) | 0; n = (h + 56) | 0; o = (h + 52) | 0; p = (h + 48) | 0; q = (h + 44) | 0; r = (h + 77) | 0; s = (h + 40) | 0; t = (h + 36) | 0; u = (h + 32) | 0; v = (h + 28) | 0; w = (h + 24) | 0; x = (h + 8) | 0; z = (h + 20) | 0; A = h; B = (h + 76) | 0; C = (h + 16) | 0; c[j >> 2] = b; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = c[k >> 2]; c[p >> 2] = oq(c[n >> 2] | 0) | 0; if ((c[m >> 2] | 0) >>> 0 < (c[p >> 2] | 0) >>> 0) { c[i >> 2] = c[p >> 2]; D = c[i >> 2] | 0; l = h; return D | 0; } if ( (c[n >> 2] | 0) != 1 ? (hq(c[k >> 2] | 0) | 0) != -47205080 : 0 ) { if ((((hq(c[k >> 2] | 0) | 0) & -16) | 0) != 407710288) { c[i >> 2] = -10; D = c[i >> 2] | 0; l = h; return D | 0; } if ((c[m >> 2] | 0) >>> 0 < 8) { c[i >> 2] = 8; D = c[i >> 2] | 0; l = h; return D | 0; } else { g = c[j >> 2] | 0; f = (g + 40) | 0; do { c[g >> 2] = 0; g = (g + 4) | 0; } while ((g | 0) < (f | 0)); g = hq(((c[k >> 2] | 0) + 4) | 0) | 0; f = c[j >> 2] | 0; c[f >> 2] = g; c[(f + 4) >> 2] = 0; c[((c[j >> 2] | 0) + 20) >> 2] = 1; c[i >> 2] = 0; D = c[i >> 2] | 0; l = h; return D | 0; } } c[q >> 2] = nq(c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; n = c[q >> 2] | 0; if ((c[m >> 2] | 0) >>> 0 < (c[q >> 2] | 0) >>> 0) { c[i >> 2] = n; D = c[i >> 2] | 0; l = h; return D | 0; } c[((c[j >> 2] | 0) + 24) >> 2] = n; a[r >> 0] = a[((c[o >> 2] | 0) + ((c[p >> 2] | 0) - 1)) >> 0] | 0; c[s >> 2] = c[p >> 2]; c[t >> 2] = (d[r >> 0] | 0) & 3; c[u >> 2] = ((d[r >> 0] | 0) >> 2) & 1; c[v >> 2] = ((d[r >> 0] | 0) >> 5) & 1; c[w >> 2] = (d[r >> 0] | 0) >> 6; p = x; c[p >> 2] = 0; c[(p + 4) >> 2] = 0; c[z >> 2] = 0; p = A; c[p >> 2] = -1; c[(p + 4) >> 2] = -1; if (((d[r >> 0] | 0) & 8) | 0) { c[i >> 2] = -14; D = c[i >> 2] | 0; l = h; return D | 0; } do { if (!(c[v >> 2] | 0)) { r = c[o >> 2] | 0; p = c[s >> 2] | 0; c[s >> 2] = p + 1; a[B >> 0] = a[(r + p) >> 0] | 0; c[C >> 2] = ((d[B >> 0] | 0) >> 3) + 10; if ((c[C >> 2] | 0) >>> 0 <= 30) { p = jE(1, 0, c[C >> 2] | 0) | 0; r = x; c[r >> 2] = p; c[(r + 4) >> 2] = y; r = x; p = iE(c[r >> 2] | 0, c[(r + 4) >> 2] | 0, 3) | 0; r = (d[B >> 0] | 0) & 7; n = cE( p | 0, y | 0, r | 0, ((((r | 0) < 0) << 31) >> 31) | 0 ) | 0; r = x; p = dE(c[r >> 2] | 0, c[(r + 4) >> 2] | 0, n | 0, y | 0) | 0; n = x; c[n >> 2] = p; c[(n + 4) >> 2] = y; break; } c[i >> 2] = -16; D = c[i >> 2] | 0; l = h; return D | 0; } } while (0); switch (c[t >> 2] | 0) { case 3: { c[z >> 2] = hq(((c[o >> 2] | 0) + (c[s >> 2] | 0)) | 0) | 0; c[s >> 2] = (c[s >> 2] | 0) + 4; break; } case 1: { c[z >> 2] = d[((c[o >> 2] | 0) + (c[s >> 2] | 0)) >> 0]; c[s >> 2] = (c[s >> 2] | 0) + 1; break; } case 2: { c[z >> 2] = (rq(((c[o >> 2] | 0) + (c[s >> 2] | 0)) | 0) | 0) & 65535; c[s >> 2] = (c[s >> 2] | 0) + 2; break; } default: { } } switch (c[w >> 2] | 0) { case 3: { w = A; c[w >> 2] = sq(((c[o >> 2] | 0) + (c[s >> 2] | 0)) | 0) | 0; c[(w + 4) >> 2] = y; break; } case 1: { w = (((rq(((c[o >> 2] | 0) + (c[s >> 2] | 0)) | 0) | 0) & 65535) + 256) | 0; t = A; c[t >> 2] = w; c[(t + 4) >> 2] = (((w | 0) < 0) << 31) >> 31; break; } case 2: { w = A; c[w >> 2] = hq(((c[o >> 2] | 0) + (c[s >> 2] | 0)) | 0) | 0; c[(w + 4) >> 2] = 0; break; } default: if (c[v >> 2] | 0) { w = A; c[w >> 2] = d[((c[o >> 2] | 0) + (c[s >> 2] | 0)) >> 0]; c[(w + 4) >> 2] = 0; } } if (c[v >> 2] | 0) { v = A; w = c[(v + 4) >> 2] | 0; s = x; c[s >> 2] = c[v >> 2]; c[(s + 4) >> 2] = w; } c[((c[j >> 2] | 0) + 20) >> 2] = 0; w = A; A = c[(w + 4) >> 2] | 0; s = c[j >> 2] | 0; c[s >> 2] = c[w >> 2]; c[(s + 4) >> 2] = A; A = x; s = c[(A + 4) >> 2] | 0; w = ((c[j >> 2] | 0) + 8) | 0; c[w >> 2] = c[A >> 2]; c[(w + 4) >> 2] = s; s = x; w = c[(s + 4) >> 2] | 0; A = (w >>> 0 < 0) | (((w | 0) == 0) & ((c[s >> 2] | 0) >>> 0 < 131072)); s = x; x = c[(s + 4) >> 2] | 0; x = A ? c[s >> 2] | 0 : 131072; c[((c[j >> 2] | 0) + 16) >> 2] = x; c[((c[j >> 2] | 0) + 28) >> 2] = c[z >> 2]; c[((c[j >> 2] | 0) + 32) >> 2] = c[u >> 2]; c[i >> 2] = 0; D = c[i >> 2] | 0; l = h; return D | 0; } function rq(a) { a = a | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[g >> 2] = a; a = (jq() | 0) != 0; i = c[g >> 2] | 0; if (a) { b[f >> 1] = vq(i) | 0; j = b[f >> 1] | 0; l = e; return j | 0; } else { c[h >> 2] = i; b[f >> 1] = (d[c[h >> 2] >> 0] | 0) + ((d[((c[h >> 2] | 0) + 1) >> 0] | 0) << 8); j = b[f >> 1] | 0; l = e; return j | 0; } return 0; } function sq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = (jq() | 0) != 0; f = tq(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = uq(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function tq(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; e = a; f = (a + 4) | 0; y = d[f >> 0] | (d[(f + 1) >> 0] << 8) | (d[(f + 2) >> 0] << 16) | (d[(f + 3) >> 0] << 24); l = b; return ( d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24) | 0 ); } function uq(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function vq(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function wq(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; d = l; l = (l + 64) | 0; e = (d + 48) | 0; f = (d + 60) | 0; g = (d + 56) | 0; h = (d + 40) | 0; i = d; c[f >> 2] = a; c[g >> 2] = b; b = (iq(c[f >> 2] | 0, c[g >> 2] | 0) | 0) != 0; a = c[f >> 2] | 0; f = c[g >> 2] | 0; do { if (!b) { if (pq(i, a, f) | 0) { g = e; c[g >> 2] = -2; c[(g + 4) >> 2] = -1; break; } if ((c[(i + 20) >> 2] | 0) == 1) { g = e; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; break; } else { g = i; j = c[(g + 4) >> 2] | 0; k = e; c[k >> 2] = c[g >> 2]; c[(k + 4) >> 2] = j; break; } } else { j = xq(a, f) | 0; k = h; c[k >> 2] = j; c[(k + 4) >> 2] = y; k = h; j = ((c[k >> 2] | 0) == 0) & ((c[(k + 4) >> 2] | 0) == 0); k = h; g = j ? -1 : c[(k + 4) >> 2] | 0; m = e; c[m >> 2] = j ? -1 : c[k >> 2] | 0; c[(m + 4) >> 2] = g; } } while (0); h = e; y = c[(h + 4) >> 2] | 0; l = d; return c[h >> 2] | 0; } function xq(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; d = l; l = (l + 112) | 0; e = (d + 80) | 0; f = (d + 108) | 0; g = (d + 104) | 0; h = (d + 100) | 0; i = (d + 40) | 0; j = (d + 96) | 0; k = (d + 24) | 0; m = (d + 92) | 0; n = d; o = (d + 88) | 0; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = iq(c[f >> 2] | 0, c[g >> 2] | 0) | 0; do { if ((c[h >> 2] | 0) >>> 0 >= 5) { if ((c[h >> 2] | 0) == 5) { c[j >> 2] = yq(i, c[f >> 2] | 0, c[g >> 2] | 0) | 0; if (c[j >> 2] | 0) { b = e; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; break; } else { b = i; a = c[(b + 4) >> 2] | 0; p = e; c[p >> 2] = c[b >> 2]; c[(p + 4) >> 2] = a; break; } } if ((c[h >> 2] | 0) == 6) { c[m >> 2] = zq(k, c[f >> 2] | 0, c[g >> 2] | 0) | 0; if (c[m >> 2] | 0) { a = e; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; break; } else { a = k; p = c[(a + 4) >> 2] | 0; b = e; c[b >> 2] = c[a >> 2]; c[(b + 4) >> 2] = p; break; } } if ((c[h >> 2] | 0) != 7) { p = e; c[p >> 2] = 0; c[(p + 4) >> 2] = 0; break; } c[o >> 2] = Aq(n, c[f >> 2] | 0, c[g >> 2] | 0) | 0; if (c[o >> 2] | 0) { p = e; c[p >> 2] = 0; c[(p + 4) >> 2] = 0; break; } else { p = n; b = c[(p + 4) >> 2] | 0; a = e; c[a >> 2] = c[p >> 2]; c[(a + 4) >> 2] = b; break; } } else { b = e; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; } } while (0); n = e; y = c[(n + 4) >> 2] | 0; l = d; return c[n >> 2] | 0; } function yq(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; if ((c[j >> 2] | 0) >>> 0 < 5) { c[g >> 2] = 5; m = c[g >> 2] | 0; l = f; return m | 0; } c[k >> 2] = Wq(c[i >> 2] | 0) | 0; if ((c[k >> 2] | 0) != -47205083) { c[g >> 2] = -10; m = c[g >> 2] | 0; l = f; return m | 0; } k = c[h >> 2] | 0; j = (k + 40) | 0; do { c[k >> 2] = 0; k = (k + 4) | 0; } while ((k | 0) < (j | 0)); c[((c[h >> 2] | 0) + 8) >> 2] = ((d[((c[i >> 2] | 0) + 4) >> 0] | 0) & 15) + 11; if (((d[((c[i >> 2] | 0) + 4) >> 0] | 0) >> 4) | 0) { c[g >> 2] = -14; m = c[g >> 2] | 0; l = f; return m | 0; } else { c[g >> 2] = 0; m = c[g >> 2] | 0; l = f; return m | 0; } return 0; } function zq(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; o = (g + 24) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = c[j >> 2]; if ((c[k >> 2] | 0) >>> 0 < 5) { c[h >> 2] = 5; p = c[h >> 2] | 0; l = g; return p | 0; } if ((Mq(c[j >> 2] | 0) | 0) != -47205082) { c[h >> 2] = -10; p = c[h >> 2] | 0; l = g; return p | 0; } c[n >> 2] = Nq(c[j >> 2] | 0, c[k >> 2] | 0) | 0; if ((c[k >> 2] | 0) >>> 0 < (c[n >> 2] | 0) >>> 0) { c[h >> 2] = c[n >> 2]; p = c[h >> 2] | 0; l = g; return p | 0; } n = c[i >> 2] | 0; c[n >> 2] = 0; c[(n + 4) >> 2] = 0; c[(n + 8) >> 2] = 0; c[(n + 12) >> 2] = 0; a[o >> 0] = a[((c[m >> 2] | 0) + 4) >> 0] | 0; c[((c[i >> 2] | 0) + 8) >> 2] = ((d[o >> 0] | 0) & 15) + 12; if (((d[o >> 0] | 0) & 32) | 0) { c[h >> 2] = -14; p = c[h >> 2] | 0; l = g; return p | 0; } switch (((d[o >> 0] | 0) >> 6) | 0) { case 0: { o = c[i >> 2] | 0; c[o >> 2] = 0; c[(o + 4) >> 2] = 0; break; } case 1: { o = c[i >> 2] | 0; c[o >> 2] = d[((c[m >> 2] | 0) + 5) >> 0]; c[(o + 4) >> 2] = 0; break; } case 2: { o = (((Oq(((c[m >> 2] | 0) + 5) | 0) | 0) & 65535) + 256) | 0; n = c[i >> 2] | 0; c[n >> 2] = o; c[(n + 4) >> 2] = (((o | 0) < 0) << 31) >> 31; break; } case 3: { o = Pq(((c[m >> 2] | 0) + 5) | 0) | 0; m = c[i >> 2] | 0; c[m >> 2] = o; c[(m + 4) >> 2] = y; break; } default: { } } c[h >> 2] = 0; p = c[h >> 2] | 0; l = g; return p | 0; } function Aq(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0; g = l; l = (l + 80) | 0; h = (g + 64) | 0; i = (g + 60) | 0; j = (g + 56) | 0; k = (g + 52) | 0; m = (g + 48) | 0; n = (g + 44) | 0; o = (g + 69) | 0; p = (g + 40) | 0; q = (g + 36) | 0; r = (g + 32) | 0; s = (g + 28) | 0; t = (g + 24) | 0; u = (g + 20) | 0; v = (g + 16) | 0; w = (g + 12) | 0; x = g; z = (g + 68) | 0; A = (g + 8) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = c[j >> 2]; if ((c[k >> 2] | 0) >>> 0 < 5) { c[h >> 2] = 5; B = c[h >> 2] | 0; l = g; return B | 0; } f = (Bq(c[j >> 2] | 0) | 0) != -47205081; e = c[j >> 2] | 0; if (f) { if ((((Bq(e) | 0) & -16) | 0) != 407710288) { c[h >> 2] = -10; B = c[h >> 2] | 0; l = g; return B | 0; } if ((c[k >> 2] | 0) >>> 0 < 8) { c[h >> 2] = 8; B = c[h >> 2] | 0; l = g; return B | 0; } else { f = c[i >> 2] | 0; c[f >> 2] = 0; c[(f + 4) >> 2] = 0; c[(f + 8) >> 2] = 0; c[(f + 12) >> 2] = 0; c[(f + 16) >> 2] = 0; c[(f + 20) >> 2] = 0; f = Bq(((c[j >> 2] | 0) + 4) | 0) | 0; j = c[i >> 2] | 0; c[j >> 2] = f; c[(j + 4) >> 2] = 0; c[((c[i >> 2] | 0) + 8) >> 2] = 0; c[h >> 2] = 0; B = c[h >> 2] | 0; l = g; return B | 0; } } c[n >> 2] = Cq(e, c[k >> 2] | 0) | 0; if ((c[k >> 2] | 0) >>> 0 < (c[n >> 2] | 0) >>> 0) { c[h >> 2] = c[n >> 2]; B = c[h >> 2] | 0; l = g; return B | 0; } a[o >> 0] = a[((c[m >> 2] | 0) + 4) >> 0] | 0; c[p >> 2] = 5; c[q >> 2] = (d[o >> 0] | 0) & 3; c[r >> 2] = ((d[o >> 0] | 0) >> 2) & 1; c[s >> 2] = ((d[o >> 0] | 0) >> 5) & 1; c[t >> 2] = (d[o >> 0] | 0) >> 6; n = (Dq() | 0) != 0; c[u >> 2] = 1 << (n ? 25 : 27); c[v >> 2] = 0; c[w >> 2] = 0; n = x; c[n >> 2] = 0; c[(n + 4) >> 2] = 0; if (((d[o >> 0] | 0) & 8) | 0) { c[h >> 2] = -14; B = c[h >> 2] | 0; l = g; return B | 0; } do { if (!(c[s >> 2] | 0)) { o = c[m >> 2] | 0; n = c[p >> 2] | 0; c[p >> 2] = n + 1; a[z >> 0] = a[(o + n) >> 0] | 0; c[A >> 2] = ((d[z >> 0] | 0) >> 3) + 10; n = c[A >> 2] | 0; o = (Dq() | 0) != 0; if (n >>> 0 <= (o ? 25 : 27) >>> 0) { c[v >> 2] = 1 << c[A >> 2]; o = N((c[v >> 2] | 0) >>> 3, (d[z >> 0] | 0) & 7) | 0; c[v >> 2] = (c[v >> 2] | 0) + o; break; } c[h >> 2] = -14; B = c[h >> 2] | 0; l = g; return B | 0; } } while (0); switch (c[q >> 2] | 0) { case 3: { c[w >> 2] = Bq(((c[m >> 2] | 0) + (c[p >> 2] | 0)) | 0) | 0; c[p >> 2] = (c[p >> 2] | 0) + 4; break; } case 1: { c[w >> 2] = d[((c[m >> 2] | 0) + (c[p >> 2] | 0)) >> 0]; c[p >> 2] = (c[p >> 2] | 0) + 1; break; } case 2: { c[w >> 2] = (Eq(((c[m >> 2] | 0) + (c[p >> 2] | 0)) | 0) | 0) & 65535; c[p >> 2] = (c[p >> 2] | 0) + 2; break; } default: { } } switch (c[t >> 2] | 0) { case 3: { t = x; c[t >> 2] = Fq(((c[m >> 2] | 0) + (c[p >> 2] | 0)) | 0) | 0; c[(t + 4) >> 2] = y; break; } case 1: { t = (((Eq(((c[m >> 2] | 0) + (c[p >> 2] | 0)) | 0) | 0) & 65535) + 256) | 0; q = x; c[q >> 2] = t; c[(q + 4) >> 2] = (((t | 0) < 0) << 31) >> 31; break; } case 2: { t = x; c[t >> 2] = Bq(((c[m >> 2] | 0) + (c[p >> 2] | 0)) | 0) | 0; c[(t + 4) >> 2] = 0; break; } default: if (c[s >> 2] | 0) { s = x; c[s >> 2] = d[((c[m >> 2] | 0) + (c[p >> 2] | 0)) >> 0]; c[(s + 4) >> 2] = 0; } } if (!(c[v >> 2] | 0)) c[v >> 2] = c[x >> 2]; if ((c[v >> 2] | 0) >>> 0 > (c[u >> 2] | 0) >>> 0) { c[h >> 2] = -14; B = c[h >> 2] | 0; l = g; return B | 0; } else { u = x; x = c[(u + 4) >> 2] | 0; s = c[i >> 2] | 0; c[s >> 2] = c[u >> 2]; c[(s + 4) >> 2] = x; c[((c[i >> 2] | 0) + 8) >> 2] = c[v >> 2]; c[((c[i >> 2] | 0) + 12) >> 2] = c[w >> 2]; c[((c[i >> 2] | 0) + 16) >> 2] = c[r >> 2]; c[h >> 2] = 0; B = c[h >> 2] | 0; l = g; return B | 0; } return 0; } function Bq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (Gq() | 0) != 0; f = Kq(c[e >> 2] | 0) | 0; if (a) { c[d >> 2] = f; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = Lq(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function Cq(b, e) { b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 32) | 0; g = (f + 20) | 0; h = (f + 16) | 0; i = (f + 12) | 0; j = (f + 24) | 0; k = (f + 8) | 0; m = (f + 4) | 0; n = f; c[h >> 2] = b; c[i >> 2] = e; if ((c[i >> 2] | 0) >>> 0 < 5) { c[g >> 2] = -72; o = c[g >> 2] | 0; l = f; return o | 0; } a[j >> 0] = a[((c[h >> 2] | 0) + 4) >> 0] | 0; c[k >> 2] = (d[j >> 0] | 0) & 3; c[m >> 2] = ((d[j >> 0] | 0) >> 5) & 1; c[n >> 2] = (d[j >> 0] | 0) >> 6; if (c[m >> 2] | 0) p = ((c[(3472 + (c[n >> 2] << 2)) >> 2] | 0) != 0) ^ 1; else p = 0; c[g >> 2] = 5 + ((((c[m >> 2] | 0) != 0) ^ 1) & 1) + (c[(3456 + (c[k >> 2] << 2)) >> 2] | 0) + (c[(3472 + (c[n >> 2] << 2)) >> 2] | 0) + (p & 1); o = c[g >> 2] | 0; l = f; return o | 0; } function Dq() { return 1; } function Eq(a) { a = a | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[g >> 2] = a; a = (Gq() | 0) != 0; i = c[g >> 2] | 0; if (a) { b[f >> 1] = Jq(i) | 0; j = b[f >> 1] | 0; l = e; return j | 0; } else { c[h >> 2] = i; b[f >> 1] = (d[c[h >> 2] >> 0] | 0) + ((d[((c[h >> 2] | 0) + 1) >> 0] | 0) << 8); j = b[f >> 1] | 0; l = e; return j | 0; } return 0; } function Fq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = (Gq() | 0) != 0; f = Hq(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = Iq(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function Gq() { return d[11936] | 0 | 0; } function Hq(b) { b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = d; c[e >> 2] = b; b = c[e >> 2] | 0; a[f >> 0] = a[b >> 0] | 0; a[(f + 1) >> 0] = a[(b + 1) >> 0] | 0; a[(f + 2) >> 0] = a[(b + 2) >> 0] | 0; a[(f + 3) >> 0] = a[(b + 3) >> 0] | 0; a[(f + 4) >> 0] = a[(b + 4) >> 0] | 0; a[(f + 5) >> 0] = a[(b + 5) >> 0] | 0; a[(f + 6) >> 0] = a[(b + 6) >> 0] | 0; a[(f + 7) >> 0] = a[(b + 7) >> 0] | 0; b = f; y = c[(b + 4) >> 2] | 0; l = d; return c[b >> 2] | 0; } function Iq(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function Jq(d) { d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 4) | 0; c[f >> 2] = d; d = c[f >> 2] | 0; a[g >> 0] = a[d >> 0] | 0; a[(g + 1) >> 0] = a[(d + 1) >> 0] | 0; l = e; return b[g >> 1] | 0; } function Kq(b) { b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = b; b = c[e >> 2] | 0; a[f >> 0] = a[b >> 0] | 0; a[(f + 1) >> 0] = a[(b + 1) >> 0] | 0; a[(f + 2) >> 0] = a[(b + 2) >> 0] | 0; a[(f + 3) >> 0] = a[(b + 3) >> 0] | 0; l = d; return c[f >> 2] | 0; } function Lq(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function Mq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (Qq() | 0) != 0; f = Uq(c[e >> 2] | 0) | 0; if (a) { c[d >> 2] = f; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = Vq(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function Nq(a, b) { a = a | 0; b = b | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; if ((c[h >> 2] | 0) >>> 0 < 5) { c[f >> 2] = -72; j = c[f >> 2] | 0; l = e; return j | 0; } else { c[i >> 2] = (d[((c[g >> 2] | 0) + 4) >> 0] | 0) >> 6; c[f >> 2] = 5 + (c[(3488 + (c[i >> 2] << 2)) >> 2] | 0); j = c[f >> 2] | 0; l = e; return j | 0; } return 0; } function Oq(a) { a = a | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[g >> 2] = a; a = (Qq() | 0) != 0; i = c[g >> 2] | 0; if (a) { b[f >> 1] = Tq(i) | 0; j = b[f >> 1] | 0; l = e; return j | 0; } else { c[h >> 2] = i; b[f >> 1] = (d[c[h >> 2] >> 0] | 0) + ((d[((c[h >> 2] | 0) + 1) >> 0] | 0) << 8); j = b[f >> 1] | 0; l = e; return j | 0; } return 0; } function Pq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = (Qq() | 0) != 0; f = Rq(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = Sq(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function Qq() { return d[11936] | 0 | 0; } function Rq(b) { b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = d; c[e >> 2] = b; b = c[e >> 2] | 0; a[f >> 0] = a[b >> 0] | 0; a[(f + 1) >> 0] = a[(b + 1) >> 0] | 0; a[(f + 2) >> 0] = a[(b + 2) >> 0] | 0; a[(f + 3) >> 0] = a[(b + 3) >> 0] | 0; a[(f + 4) >> 0] = a[(b + 4) >> 0] | 0; a[(f + 5) >> 0] = a[(b + 5) >> 0] | 0; a[(f + 6) >> 0] = a[(b + 6) >> 0] | 0; a[(f + 7) >> 0] = a[(b + 7) >> 0] | 0; b = f; y = c[(b + 4) >> 2] | 0; l = d; return c[b >> 2] | 0; } function Sq(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function Tq(d) { d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 4) | 0; c[f >> 2] = d; d = c[f >> 2] | 0; a[g >> 0] = a[d >> 0] | 0; a[(g + 1) >> 0] = a[(d + 1) >> 0] | 0; l = e; return b[g >> 1] | 0; } function Uq(b) { b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = b; b = c[e >> 2] | 0; a[f >> 0] = a[b >> 0] | 0; a[(f + 1) >> 0] = a[(b + 1) >> 0] | 0; a[(f + 2) >> 0] = a[(b + 2) >> 0] | 0; a[(f + 3) >> 0] = a[(b + 3) >> 0] | 0; l = d; return c[f >> 2] | 0; } function Vq(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function Wq(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (Xq() | 0) != 0; f = Yq(c[e >> 2] | 0) | 0; if (a) { c[d >> 2] = f; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = Zq(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function Xq() { return d[11936] | 0 | 0; } function Yq(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function Zq(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function _q(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; d = l; l = (l + 96) | 0; e = (d + 80) | 0; f = (d + 76) | 0; g = (d + 72) | 0; h = (d + 68) | 0; i = (d + 64) | 0; j = (d + 60) | 0; k = d; m = (d + 56) | 0; n = (d + 44) | 0; o = (d + 40) | 0; c[f >> 2] = a; c[g >> 2] = b; if (iq(c[f >> 2] | 0, c[g >> 2] | 0) | 0) { c[e >> 2] = ar(c[f >> 2] | 0, c[g >> 2] | 0) | 0; p = c[e >> 2] | 0; l = d; return p | 0; } if ( (c[g >> 2] | 0) >>> 0 >= 8 ? (((hq(c[f >> 2] | 0) | 0) & -16) | 0) == 407710288 : 0 ) { c[e >> 2] = 8 + (hq(((c[f >> 2] | 0) + 4) | 0) | 0); p = c[e >> 2] | 0; l = d; return p | 0; } c[h >> 2] = c[f >> 2]; c[i >> 2] = c[h >> 2]; c[j >> 2] = c[g >> 2]; c[m >> 2] = pq(k, c[f >> 2] | 0, c[g >> 2] | 0) | 0; g = ($q(c[m >> 2] | 0) | 0) != 0; f = c[m >> 2] | 0; if (g) { c[e >> 2] = f; p = c[e >> 2] | 0; l = d; return p | 0; } if (f >>> 0 > 0) { c[e >> 2] = -72; p = c[e >> 2] | 0; l = d; return p | 0; } c[h >> 2] = (c[h >> 2] | 0) + (c[(k + 24) >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) - (c[(k + 24) >> 2] | 0); while (1) { c[o >> 2] = br(c[h >> 2] | 0, c[j >> 2] | 0, n) | 0; f = ($q(c[o >> 2] | 0) | 0) != 0; q = c[o >> 2] | 0; if (f) { r = 12; break; } if (((3 + q) | 0) >>> 0 > (c[j >> 2] | 0) >>> 0) { r = 14; break; } c[h >> 2] = (c[h >> 2] | 0) + (3 + (c[o >> 2] | 0)); c[j >> 2] = (c[j >> 2] | 0) - (3 + (c[o >> 2] | 0)); if (c[(n + 4) >> 2] | 0) { r = 17; break; } } if ((r | 0) == 12) { c[e >> 2] = q; p = c[e >> 2] | 0; l = d; return p | 0; } else if ((r | 0) == 14) { c[e >> 2] = -72; p = c[e >> 2] | 0; l = d; return p | 0; } else if ((r | 0) == 17) { do { if (c[(k + 32) >> 2] | 0) { if ((c[j >> 2] | 0) >>> 0 >= 4) { c[h >> 2] = (c[h >> 2] | 0) + 4; c[j >> 2] = (c[j >> 2] | 0) - 4; break; } c[e >> 2] = -72; p = c[e >> 2] | 0; l = d; return p | 0; } } while (0); c[e >> 2] = (c[h >> 2] | 0) - (c[i >> 2] | 0); p = c[e >> 2] | 0; l = d; return p | 0; } return 0; } function $q(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function ar(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = (d + 12) | 0; f = (d + 8) | 0; g = (d + 4) | 0; h = d; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = iq(c[f >> 2] | 0, c[g >> 2] | 0) | 0; switch (c[h >> 2] | 0) { case 4: { c[e >> 2] = dr(c[f >> 2] | 0, c[g >> 2] | 0) | 0; break; } case 5: { c[e >> 2] = er(c[f >> 2] | 0, c[g >> 2] | 0) | 0; break; } case 6: { c[e >> 2] = fr(c[f >> 2] | 0, c[g >> 2] | 0) | 0; break; } case 7: { c[e >> 2] = gr(c[f >> 2] | 0, c[g >> 2] | 0) | 0; break; } default: c[e >> 2] = -10; } l = d; return c[e >> 2] | 0; } function br(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; if ((c[h >> 2] | 0) >>> 0 < 3) { c[f >> 2] = -72; m = c[f >> 2] | 0; l = e; return m | 0; } c[j >> 2] = cr(c[g >> 2] | 0) | 0; c[k >> 2] = (c[j >> 2] | 0) >>> 3; c[((c[i >> 2] | 0) + 4) >> 2] = c[j >> 2] & 1; c[c[i >> 2] >> 2] = ((c[j >> 2] | 0) >>> 1) & 3; c[((c[i >> 2] | 0) + 8) >> 2] = c[k >> 2]; if ((c[c[i >> 2] >> 2] | 0) == 1) { c[f >> 2] = 1; m = c[f >> 2] | 0; l = e; return m | 0; } if ((c[c[i >> 2] >> 2] | 0) == 3) { c[f >> 2] = -20; m = c[f >> 2] | 0; l = e; return m | 0; } else { c[f >> 2] = c[k >> 2]; m = c[f >> 2] | 0; l = e; return m | 0; } return 0; } function cr(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = (rq(c[e >> 2] | 0) | 0) & 65535; l = b; return (a + ((d[((c[e >> 2] | 0) + 2) >> 0] | 0) << 16)) | 0; } function dr(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = or(c[e >> 2] | 0, c[f >> 2] | 0) | 0; l = d; return b | 0; } function er(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; d = l; l = (l + 48) | 0; e = (d + 32) | 0; f = (d + 28) | 0; g = (d + 24) | 0; h = (d + 20) | 0; i = (d + 16) | 0; j = (d + 8) | 0; k = d; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = c[f >> 2]; c[i >> 2] = c[g >> 2]; if ((c[g >> 2] | 0) >>> 0 < 5) { c[e >> 2] = -72; m = c[e >> 2] | 0; l = d; return m | 0; } if ((Wq(c[f >> 2] | 0) | 0) != -47205083) { c[e >> 2] = -10; m = c[e >> 2] | 0; l = d; return m | 0; } c[h >> 2] = (c[h >> 2] | 0) + 5; c[i >> 2] = (c[i >> 2] | 0) - 5; while (1) { c[k >> 2] = lr(c[h >> 2] | 0, c[i >> 2] | 0, j) | 0; if (mr(c[k >> 2] | 0) | 0) { n = 7; break; } c[h >> 2] = (c[h >> 2] | 0) + 3; c[i >> 2] = (c[i >> 2] | 0) - 3; if ((c[k >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) { n = 9; break; } if (!(c[k >> 2] | 0)) { n = 12; break; } c[h >> 2] = (c[h >> 2] | 0) + (c[k >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[k >> 2] | 0); } if ((n | 0) == 7) { c[e >> 2] = c[k >> 2]; m = c[e >> 2] | 0; l = d; return m | 0; } else if ((n | 0) == 9) { c[e >> 2] = -72; m = c[e >> 2] | 0; l = d; return m | 0; } else if ((n | 0) == 12) { c[e >> 2] = (c[h >> 2] | 0) - (c[f >> 2] | 0); m = c[e >> 2] | 0; l = d; return m | 0; } return 0; } function fr(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; d = l; l = (l + 48) | 0; e = (d + 32) | 0; f = (d + 28) | 0; g = (d + 24) | 0; h = (d + 20) | 0; i = (d + 16) | 0; j = (d + 8) | 0; k = (d + 4) | 0; m = d; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = c[f >> 2]; c[i >> 2] = c[g >> 2]; c[j >> 2] = 0; c[(j + 4) >> 2] = 0; c[k >> 2] = Nq(c[f >> 2] | 0, 5) | 0; if (jr(c[k >> 2] | 0) | 0) { c[e >> 2] = c[k >> 2]; n = c[e >> 2] | 0; l = d; return n | 0; } if ((Mq(c[f >> 2] | 0) | 0) != -47205082) { c[e >> 2] = -10; n = c[e >> 2] | 0; l = d; return n | 0; } if ( (c[g >> 2] | 0) >>> 0 < (((c[k >> 2] | 0) + 3) | 0) >>> 0 ) { c[e >> 2] = -72; n = c[e >> 2] | 0; l = d; return n | 0; } c[h >> 2] = (c[h >> 2] | 0) + (c[k >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[k >> 2] | 0); while (1) { c[m >> 2] = kr(c[h >> 2] | 0, c[i >> 2] | 0, j) | 0; if (jr(c[m >> 2] | 0) | 0) { o = 9; break; } c[h >> 2] = (c[h >> 2] | 0) + 3; c[i >> 2] = (c[i >> 2] | 0) - 3; if ((c[m >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) { o = 11; break; } if (!(c[m >> 2] | 0)) { o = 14; break; } c[h >> 2] = (c[h >> 2] | 0) + (c[m >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[m >> 2] | 0); } if ((o | 0) == 9) { c[e >> 2] = c[m >> 2]; n = c[e >> 2] | 0; l = d; return n | 0; } else if ((o | 0) == 11) { c[e >> 2] = -72; n = c[e >> 2] | 0; l = d; return n | 0; } else if ((o | 0) == 14) { c[e >> 2] = (c[h >> 2] | 0) - (c[f >> 2] | 0); n = c[e >> 2] | 0; l = d; return n | 0; } return 0; } function gr(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; d = l; l = (l + 48) | 0; e = (d + 36) | 0; f = (d + 32) | 0; g = (d + 28) | 0; h = (d + 24) | 0; i = (d + 20) | 0; j = (d + 16) | 0; k = (d + 8) | 0; m = d; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = c[f >> 2]; c[i >> 2] = c[g >> 2]; if ((c[g >> 2] | 0) >>> 0 < 8) { c[e >> 2] = -72; n = c[e >> 2] | 0; l = d; return n | 0; } c[j >> 2] = Cq(c[f >> 2] | 0, 5) | 0; if (hr(c[j >> 2] | 0) | 0) { c[e >> 2] = c[j >> 2]; n = c[e >> 2] | 0; l = d; return n | 0; } if ((Bq(c[f >> 2] | 0) | 0) != -47205081) { c[e >> 2] = -10; n = c[e >> 2] | 0; l = d; return n | 0; } if ( (c[g >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + 3) | 0) >>> 0 ) { c[e >> 2] = -72; n = c[e >> 2] | 0; l = d; return n | 0; } c[h >> 2] = (c[h >> 2] | 0) + (c[j >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[j >> 2] | 0); while (1) { c[m >> 2] = ir(c[h >> 2] | 0, c[i >> 2] | 0, k) | 0; if (hr(c[m >> 2] | 0) | 0) { o = 11; break; } c[h >> 2] = (c[h >> 2] | 0) + 3; c[i >> 2] = (c[i >> 2] | 0) - 3; if ((c[k >> 2] | 0) == 3) { o = 16; break; } if ((c[m >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) { o = 14; break; } c[h >> 2] = (c[h >> 2] | 0) + (c[m >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[m >> 2] | 0); } if ((o | 0) == 11) { c[e >> 2] = c[m >> 2]; n = c[e >> 2] | 0; l = d; return n | 0; } else if ((o | 0) == 14) { c[e >> 2] = -72; n = c[e >> 2] | 0; l = d; return n | 0; } else if ((o | 0) == 16) { c[e >> 2] = (c[h >> 2] | 0) - (c[f >> 2] | 0); n = c[e >> 2] | 0; l = d; return n | 0; } return 0; } function hr(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function ir(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 32) | 0; g = (f + 20) | 0; h = (f + 16) | 0; i = (f + 12) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = c[h >> 2]; if ((c[i >> 2] | 0) >>> 0 < 3) { c[g >> 2] = -72; n = c[g >> 2] | 0; l = f; return n | 0; } c[c[j >> 2] >> 2] = (d[c[k >> 2] >> 0] | 0) >> 6; c[m >> 2] = (d[((c[k >> 2] | 0) + 2) >> 0] | 0) + ((d[((c[k >> 2] | 0) + 1) >> 0] | 0) << 8) + (((d[c[k >> 2] >> 0] | 0) & 7) << 16); c[((c[j >> 2] | 0) + 4) >> 2] = (c[c[j >> 2] >> 2] | 0) == 2 ? c[m >> 2] | 0 : 0; if ((c[c[j >> 2] >> 2] | 0) == 3) { c[g >> 2] = 0; n = c[g >> 2] | 0; l = f; return n | 0; } if ((c[c[j >> 2] >> 2] | 0) == 2) { c[g >> 2] = 1; n = c[g >> 2] | 0; l = f; return n | 0; } else { c[g >> 2] = c[m >> 2]; n = c[g >> 2] | 0; l = f; return n | 0; } return 0; } function jr(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function kr(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 32) | 0; g = (f + 20) | 0; h = (f + 16) | 0; i = (f + 12) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = c[h >> 2]; if ((c[i >> 2] | 0) >>> 0 < 3) { c[g >> 2] = -72; n = c[g >> 2] | 0; l = f; return n | 0; } c[c[j >> 2] >> 2] = (d[c[k >> 2] >> 0] | 0) >> 6; c[m >> 2] = (d[((c[k >> 2] | 0) + 2) >> 0] | 0) + ((d[((c[k >> 2] | 0) + 1) >> 0] | 0) << 8) + (((d[c[k >> 2] >> 0] | 0) & 7) << 16); c[((c[j >> 2] | 0) + 4) >> 2] = (c[c[j >> 2] >> 2] | 0) == 2 ? c[m >> 2] | 0 : 0; if ((c[c[j >> 2] >> 2] | 0) == 3) { c[g >> 2] = 0; n = c[g >> 2] | 0; l = f; return n | 0; } if ((c[c[j >> 2] >> 2] | 0) == 2) { c[g >> 2] = 1; n = c[g >> 2] | 0; l = f; return n | 0; } else { c[g >> 2] = c[m >> 2]; n = c[g >> 2] | 0; l = f; return n | 0; } return 0; } function lr(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = (g + 24) | 0; o = g; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = c[i >> 2]; if ((c[j >> 2] | 0) >>> 0 < 3) { c[h >> 2] = -72; p = c[h >> 2] | 0; l = g; return p | 0; } a[n >> 0] = a[c[m >> 2] >> 0] | 0; c[o >> 2] = (d[((c[m >> 2] | 0) + 2) >> 0] | 0) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + (((d[c[m >> 2] >> 0] | 0) & 7) << 16); c[c[k >> 2] >> 2] = (d[n >> 0] | 0) >> 6; c[((c[k >> 2] | 0) + 4) >> 2] = (c[c[k >> 2] >> 2] | 0) == 2 ? c[o >> 2] | 0 : 0; if ((c[c[k >> 2] >> 2] | 0) == 3) { c[h >> 2] = 0; p = c[h >> 2] | 0; l = g; return p | 0; } if ((c[c[k >> 2] >> 2] | 0) == 2) { c[h >> 2] = 1; p = c[h >> 2] | 0; l = g; return p | 0; } else { c[h >> 2] = c[o >> 2]; p = c[h >> 2] | 0; l = g; return p | 0; } return 0; } function mr(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = nr(c[d >> 2] | 0) | 0; l = b; return a | 0; } function nr(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function or(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; d = l; l = (l + 48) | 0; e = (d + 32) | 0; f = (d + 28) | 0; g = (d + 24) | 0; h = (d + 20) | 0; i = (d + 16) | 0; j = (d + 8) | 0; k = d; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = c[f >> 2]; c[i >> 2] = c[g >> 2]; if ((c[g >> 2] | 0) >>> 0 < 5) { c[e >> 2] = -72; m = c[e >> 2] | 0; l = d; return m | 0; } if ((pr(c[f >> 2] | 0) | 0) != -47205084) { c[e >> 2] = -10; m = c[e >> 2] | 0; l = d; return m | 0; } c[h >> 2] = (c[h >> 2] | 0) + 5; c[i >> 2] = (c[i >> 2] | 0) - 5; while (1) { c[k >> 2] = qr(c[h >> 2] | 0, c[i >> 2] | 0, j) | 0; if (rr(c[k >> 2] | 0) | 0) { n = 7; break; } c[h >> 2] = (c[h >> 2] | 0) + 3; c[i >> 2] = (c[i >> 2] | 0) - 3; if ((c[k >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) { n = 9; break; } if (!(c[k >> 2] | 0)) { n = 12; break; } c[h >> 2] = (c[h >> 2] | 0) + (c[k >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[k >> 2] | 0); } if ((n | 0) == 7) { c[e >> 2] = c[k >> 2]; m = c[e >> 2] | 0; l = d; return m | 0; } else if ((n | 0) == 9) { c[e >> 2] = -72; m = c[e >> 2] | 0; l = d; return m | 0; } else if ((n | 0) == 12) { c[e >> 2] = (c[h >> 2] | 0) - (c[f >> 2] | 0); m = c[e >> 2] | 0; l = d; return m | 0; } return 0; } function pr(a) { a = a | 0; var b = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; e = (b + 8) | 0; f = (b + 4) | 0; g = b; c[f >> 2] = a; a = (tr() | 0) != 0; h = c[f >> 2] | 0; if (a) { c[e >> 2] = ur(h) | 0; i = c[e >> 2] | 0; l = b; return i | 0; } else { c[g >> 2] = h; c[e >> 2] = (d[c[g >> 2] >> 0] | 0) + ((d[((c[g >> 2] | 0) + 1) >> 0] | 0) << 8) + ((d[((c[g >> 2] | 0) + 2) >> 0] | 0) << 16) + ((d[((c[g >> 2] | 0) + 3) >> 0] | 0) << 24); i = c[e >> 2] | 0; l = b; return i | 0; } return 0; } function qr(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = (g + 24) | 0; o = g; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = c[i >> 2]; if ((c[j >> 2] | 0) >>> 0 < 3) { c[h >> 2] = -72; p = c[h >> 2] | 0; l = g; return p | 0; } a[n >> 0] = a[c[m >> 2] >> 0] | 0; c[o >> 2] = (d[((c[m >> 2] | 0) + 2) >> 0] | 0) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + (((d[c[m >> 2] >> 0] | 0) & 7) << 16); c[c[k >> 2] >> 2] = (d[n >> 0] | 0) >> 6; c[((c[k >> 2] | 0) + 4) >> 2] = (c[c[k >> 2] >> 2] | 0) == 2 ? c[o >> 2] | 0 : 0; if ((c[c[k >> 2] >> 2] | 0) == 3) { c[h >> 2] = 0; p = c[h >> 2] | 0; l = g; return p | 0; } if ((c[c[k >> 2] >> 2] | 0) == 2) { c[h >> 2] = 1; p = c[h >> 2] | 0; l = g; return p | 0; } else { c[h >> 2] = c[o >> 2]; p = c[h >> 2] | 0; l = g; return p | 0; } return 0; } function rr(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = sr(c[d >> 2] | 0) | 0; l = b; return a | 0; } function sr(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function tr() { return d[11936] | 0 | 0; } function ur(b) { b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = b; b = c[e >> 2] | 0; a[f >> 0] = a[b >> 0] | 0; a[(f + 1) >> 0] = a[(b + 1) >> 0] | 0; a[(f + 2) >> 0] = a[(b + 2) >> 0] | 0; a[(f + 3) >> 0] = a[(b + 3) >> 0] | 0; l = d; return c[f >> 2] | 0; } function vr(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0; g = l; l = (l + 80) | 0; h = (g + 68) | 0; i = (g + 64) | 0; j = (g + 60) | 0; k = (g + 56) | 0; m = (g + 52) | 0; n = (g + 48) | 0; o = (g + 44) | 0; p = (g + 40) | 0; q = (g + 36) | 0; r = (g + 32) | 0; s = (g + 28) | 0; t = (g + 24) | 0; u = (g + 20) | 0; v = (g + 16) | 0; w = (g + 12) | 0; x = (g + 8) | 0; y = (g + 4) | 0; z = g; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; if ((c[k >> 2] | 0) >>> 0 < 3) { c[h >> 2] = -20; A = c[h >> 2] | 0; l = g; return A | 0; } c[m >> 2] = c[j >> 2]; c[n >> 2] = (d[c[m >> 2] >> 0] | 0) & 3; switch (c[n >> 2] | 0) { case 3: { if (!(c[((c[i >> 2] | 0) + 28808) >> 2] | 0)) { c[h >> 2] = -30; A = c[h >> 2] | 0; l = g; return A | 0; } break; } case 2: break; case 0: { c[w >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 2) & 3; switch (c[w >> 2] | 0) { case 3: { c[v >> 2] = 3; c[u >> 2] = (cr(c[m >> 2] | 0) | 0) >>> 4; break; } case 1: { c[v >> 2] = 2; c[u >> 2] = ((rq(c[m >> 2] | 0) | 0) & 65535) >> 4; break; } default: { c[v >> 2] = 1; c[u >> 2] = (d[c[m >> 2] >> 0] | 0) >> 3; } } if ( (((c[v >> 2] | 0) + (c[u >> 2] | 0) + 8) | 0) >>> 0 <= (c[k >> 2] | 0) >>> 0 ) { c[((c[i >> 2] | 0) + 28916) >> 2] = (c[m >> 2] | 0) + (c[v >> 2] | 0); c[((c[i >> 2] | 0) + 28932) >> 2] = c[u >> 2]; c[h >> 2] = (c[v >> 2] | 0) + (c[u >> 2] | 0); A = c[h >> 2] | 0; l = g; return A | 0; } if ( (((c[u >> 2] | 0) + (c[v >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; A = c[h >> 2] | 0; l = g; return A | 0; } else { mE( ((c[i >> 2] | 0) + 29012) | 0, ((c[m >> 2] | 0) + (c[v >> 2] | 0)) | 0, c[u >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 28916) >> 2] = (c[i >> 2] | 0) + 29012; c[((c[i >> 2] | 0) + 28932) >> 2] = c[u >> 2]; w = ((c[i >> 2] | 0) + 29012 + (c[((c[i >> 2] | 0) + 28932) >> 2] | 0)) | 0; a[w >> 0] = 0; a[(w + 1) >> 0] = 0; a[(w + 2) >> 0] = 0; a[(w + 3) >> 0] = 0; a[(w + 4) >> 0] = 0; a[(w + 5) >> 0] = 0; a[(w + 6) >> 0] = 0; a[(w + 7) >> 0] = 0; c[h >> 2] = (c[v >> 2] | 0) + (c[u >> 2] | 0); A = c[h >> 2] | 0; l = g; return A | 0; } break; } case 1: { c[x >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 2) & 3; switch (c[x >> 2] | 0) { case 3: { c[z >> 2] = 3; c[y >> 2] = (cr(c[m >> 2] | 0) | 0) >>> 4; if ((c[k >> 2] | 0) >>> 0 < 4) { c[h >> 2] = -20; A = c[h >> 2] | 0; l = g; return A | 0; } break; } case 1: { c[z >> 2] = 2; c[y >> 2] = ((rq(c[m >> 2] | 0) | 0) & 65535) >> 4; break; } default: { c[z >> 2] = 1; c[y >> 2] = (d[c[m >> 2] >> 0] | 0) >> 3; } } if ((c[y >> 2] | 0) >>> 0 > 131072) { c[h >> 2] = -20; A = c[h >> 2] | 0; l = g; return A | 0; } else { oE( ((c[i >> 2] | 0) + 29012) | 0, ((d[((c[m >> 2] | 0) + (c[z >> 2] | 0)) >> 0] | 0) & 255) | 0, ((c[y >> 2] | 0) + 8) | 0 ) | 0; c[((c[i >> 2] | 0) + 28916) >> 2] = (c[i >> 2] | 0) + 29012; c[((c[i >> 2] | 0) + 28932) >> 2] = c[y >> 2]; c[h >> 2] = (c[z >> 2] | 0) + 1; A = c[h >> 2] | 0; l = g; return A | 0; } break; } default: { c[h >> 2] = -20; A = c[h >> 2] | 0; l = g; return A | 0; } } if ((c[k >> 2] | 0) >>> 0 < 5) { c[h >> 2] = -20; A = c[h >> 2] | 0; l = g; return A | 0; } c[r >> 2] = 0; c[s >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 2) & 3; c[t >> 2] = hq(c[m >> 2] | 0) | 0; switch (c[s >> 2] | 0) { case 3: { c[o >> 2] = 5; c[p >> 2] = ((c[t >> 2] | 0) >>> 4) & 262143; c[q >> 2] = ((c[t >> 2] | 0) >>> 22) + ((d[((c[m >> 2] | 0) + 4) >> 0] | 0) << 10); break; } case 2: { c[o >> 2] = 4; c[p >> 2] = ((c[t >> 2] | 0) >>> 4) & 16383; c[q >> 2] = (c[t >> 2] | 0) >>> 18; break; } default: { c[r >> 2] = (((c[s >> 2] | 0) != 0) ^ 1) & 1; c[o >> 2] = 3; c[p >> 2] = ((c[t >> 2] | 0) >>> 4) & 1023; c[q >> 2] = ((c[t >> 2] | 0) >>> 14) & 1023; } } if ((c[p >> 2] | 0) >>> 0 > 131072) { c[h >> 2] = -20; A = c[h >> 2] | 0; l = g; return A | 0; } if ( (((c[q >> 2] | 0) + (c[o >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; A = c[h >> 2] | 0; l = g; return A | 0; } k = (c[r >> 2] | 0) != 0; r = c[i >> 2] | 0; do { if ((c[n >> 2] | 0) == 3) { t = (r + 29012) | 0; s = c[p >> 2] | 0; z = ((c[m >> 2] | 0) + (c[o >> 2] | 0)) | 0; y = c[q >> 2] | 0; x = c[((c[i >> 2] | 0) + 12) >> 2] | 0; u = c[((c[i >> 2] | 0) + 28944) >> 2] | 0; if (k) { B = Op(t, s, z, y, x, u) | 0; break; } else { B = Qp(t, s, z, y, x, u) | 0; break; } } else { u = (r + 16 + 10264) | 0; x = ((c[i >> 2] | 0) + 29012) | 0; y = c[p >> 2] | 0; z = ((c[m >> 2] | 0) + (c[o >> 2] | 0)) | 0; s = c[q >> 2] | 0; t = ((c[i >> 2] | 0) + 16 + 26652) | 0; v = c[((c[i >> 2] | 0) + 28944) >> 2] | 0; if (k) { B = Pp(u, x, y, z, s, t, 2048, v) | 0; break; } else { B = Rp(u, x, y, z, s, t, 2048, v) | 0; break; } } } while (0); if ($q(B) | 0) { c[h >> 2] = -20; A = c[h >> 2] | 0; l = g; return A | 0; } c[((c[i >> 2] | 0) + 28916) >> 2] = (c[i >> 2] | 0) + 29012; c[((c[i >> 2] | 0) + 28932) >> 2] = c[p >> 2]; c[((c[i >> 2] | 0) + 28808) >> 2] = 1; if ((c[n >> 2] | 0) == 2) c[((c[i >> 2] | 0) + 12) >> 2] = (c[i >> 2] | 0) + 16 + 10264; n = ((c[i >> 2] | 0) + 29012 + (c[((c[i >> 2] | 0) + 28932) >> 2] | 0)) | 0; a[n >> 0] = 0; a[(n + 1) >> 0] = 0; a[(n + 2) >> 0] = 0; a[(n + 3) >> 0] = 0; a[(n + 4) >> 0] = 0; a[(n + 5) >> 0] = 0; a[(n + 6) >> 0] = 0; a[(n + 7) >> 0] = 0; c[h >> 2] = (c[q >> 2] | 0) + (c[o >> 2] | 0); A = c[h >> 2] | 0; l = g; return A | 0; } function wr(a, b, e, f) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; g = l; l = (l + 64) | 0; h = (g + 56) | 0; i = (g + 52) | 0; j = (g + 48) | 0; k = (g + 44) | 0; m = (g + 40) | 0; n = (g + 36) | 0; o = (g + 32) | 0; p = (g + 28) | 0; q = (g + 24) | 0; r = (g + 20) | 0; s = (g + 16) | 0; t = (g + 12) | 0; u = (g + 8) | 0; v = (g + 4) | 0; w = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = c[k >> 2]; c[o >> 2] = (c[n >> 2] | 0) + (c[m >> 2] | 0); c[p >> 2] = c[n >> 2]; if ((c[m >> 2] | 0) >>> 0 < 1) { c[h >> 2] = -72; x = c[h >> 2] | 0; l = g; return x | 0; } m = c[p >> 2] | 0; c[p >> 2] = m + 1; c[q >> 2] = d[m >> 0]; if (!(c[q >> 2] | 0)) { c[c[j >> 2] >> 2] = 0; c[h >> 2] = 1; x = c[h >> 2] | 0; l = g; return x | 0; } do { if ((c[q >> 2] | 0) > 127) { m = c[p >> 2] | 0; if ((c[q >> 2] | 0) == 255) { if (((m + 2) | 0) >>> 0 <= (c[o >> 2] | 0) >>> 0) { c[q >> 2] = ((rq(c[p >> 2] | 0) | 0) & 65535) + 32512; c[p >> 2] = (c[p >> 2] | 0) + 2; break; } c[h >> 2] = -72; x = c[h >> 2] | 0; l = g; return x | 0; } else { if (m >>> 0 < (c[o >> 2] | 0) >>> 0) { m = ((c[q >> 2] | 0) - 128) << 8; k = c[p >> 2] | 0; c[p >> 2] = k + 1; c[q >> 2] = m + (d[k >> 0] | 0); break; } c[h >> 2] = -72; x = c[h >> 2] | 0; l = g; return x | 0; } } } while (0); c[c[j >> 2] >> 2] = c[q >> 2]; if ( (((c[p >> 2] | 0) + 4) | 0) >>> 0 > (c[o >> 2] | 0) >>> 0 ) { c[h >> 2] = -72; x = c[h >> 2] | 0; l = g; return x | 0; } c[r >> 2] = (d[c[p >> 2] >> 0] | 0) >> 6; c[s >> 2] = ((d[c[p >> 2] >> 0] | 0) >> 4) & 3; c[t >> 2] = ((d[c[p >> 2] >> 0] | 0) >> 2) & 3; c[p >> 2] = (c[p >> 2] | 0) + 1; c[u >> 2] = xr( ((c[i >> 2] | 0) + 16) | 0, c[i >> 2] | 0, c[r >> 2] | 0, 35, 9, c[p >> 2] | 0, ((c[o >> 2] | 0) - (c[p >> 2] | 0)) | 0, 6416, 5696, 3504, c[((c[i >> 2] | 0) + 28812) >> 2] | 0 ) | 0; if ($q(c[u >> 2] | 0) | 0) { c[h >> 2] = -20; x = c[h >> 2] | 0; l = g; return x | 0; } c[p >> 2] = (c[p >> 2] | 0) + (c[u >> 2] | 0); c[v >> 2] = xr( ((c[i >> 2] | 0) + 16 + 4104) | 0, ((c[i >> 2] | 0) + 8) | 0, c[s >> 2] | 0, 31, 8, c[p >> 2] | 0, ((c[o >> 2] | 0) - (c[p >> 2] | 0)) | 0, 4032, 4160, 4288, c[((c[i >> 2] | 0) + 28812) >> 2] | 0 ) | 0; if ($q(c[v >> 2] | 0) | 0) { c[h >> 2] = -20; x = c[h >> 2] | 0; l = g; return x | 0; } c[p >> 2] = (c[p >> 2] | 0) + (c[v >> 2] | 0); c[w >> 2] = xr( ((c[i >> 2] | 0) + 16 + 6160) | 0, ((c[i >> 2] | 0) + 4) | 0, c[t >> 2] | 0, 52, 9, c[p >> 2] | 0, ((c[o >> 2] | 0) - (c[p >> 2] | 0)) | 0, 5216, 5840, 4560, c[((c[i >> 2] | 0) + 28812) >> 2] | 0 ) | 0; if ($q(c[w >> 2] | 0) | 0) { c[h >> 2] = -20; x = c[h >> 2] | 0; l = g; return x | 0; } else { c[p >> 2] = (c[p >> 2] | 0) + (c[w >> 2] | 0); c[h >> 2] = (c[p >> 2] | 0) - (c[n >> 2] | 0); x = c[h >> 2] | 0; l = g; return x | 0; } return 0; } function xr(a, b, e, f, g, h, i, j, k, m, n) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; var o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0; o = l; l = (l + 176) | 0; p = (o + 172) | 0; q = (o + 168) | 0; r = (o + 164) | 0; s = (o + 160) | 0; t = (o + 156) | 0; u = (o + 152) | 0; v = (o + 148) | 0; w = (o + 144) | 0; x = (o + 140) | 0; y = (o + 136) | 0; z = (o + 132) | 0; A = (o + 128) | 0; B = (o + 124) | 0; C = (o + 120) | 0; D = (o + 116) | 0; E = (o + 112) | 0; F = o; G = (o + 108) | 0; c[q >> 2] = a; c[r >> 2] = b; c[s >> 2] = e; c[t >> 2] = f; c[u >> 2] = g; c[v >> 2] = h; c[w >> 2] = i; c[x >> 2] = j; c[y >> 2] = k; c[z >> 2] = m; c[A >> 2] = n; a: do { switch (c[s >> 2] | 0) { case 1: { if (!(c[w >> 2] | 0)) { c[p >> 2] = -72; break a; } if ( (d[c[v >> 2] >> 0] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[p >> 2] = -20; break a; } else { c[B >> 2] = d[c[v >> 2] >> 0]; c[C >> 2] = c[((c[x >> 2] | 0) + (c[B >> 2] << 2)) >> 2]; c[D >> 2] = c[((c[y >> 2] | 0) + (c[B >> 2] << 2)) >> 2]; yr(c[q >> 2] | 0, c[C >> 2] | 0, c[D >> 2] | 0); c[c[r >> 2] >> 2] = c[q >> 2]; c[p >> 2] = 1; break a; } break; } case 0: { c[c[r >> 2] >> 2] = c[z >> 2]; c[p >> 2] = 0; break; } case 3: { if (c[A >> 2] | 0) { c[p >> 2] = 0; break a; } else { c[p >> 2] = -20; break a; } break; } case 2: { c[G >> 2] = ah(F, t, E, c[v >> 2] | 0, c[w >> 2] | 0) | 0; if ($q(c[G >> 2] | 0) | 0) { c[p >> 2] = -20; break a; } if ((c[E >> 2] | 0) >>> 0 > (c[u >> 2] | 0) >>> 0) { c[p >> 2] = -20; break a; } else { zr( c[q >> 2] | 0, F, c[t >> 2] | 0, c[x >> 2] | 0, c[y >> 2] | 0, c[E >> 2] | 0 ); c[c[r >> 2] >> 2] = c[q >> 2]; c[p >> 2] = c[G >> 2]; break a; } break; } default: c[p >> 2] = -1; } } while (0); l = o; return c[p >> 2] | 0; } function yr(d, e, f) { d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[h >> 2] = d; c[i >> 2] = e; c[j >> 2] = f; c[k >> 2] = c[h >> 2]; c[m >> 2] = c[k >> 2]; c[n >> 2] = (c[h >> 2] | 0) + 8; c[((c[m >> 2] | 0) + 4) >> 2] = 0; c[c[m >> 2] >> 2] = 0; a[((c[n >> 2] | 0) + 3) >> 0] = 0; b[c[n >> 2] >> 1] = 0; a[((c[n >> 2] | 0) + 2) >> 0] = c[j >> 2]; c[((c[n >> 2] | 0) + 4) >> 2] = c[i >> 2]; l = g; return; } function zr(e, f, g, h, i, j) { e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0; k = l; l = (l + 208) | 0; m = (k + 188) | 0; n = (k + 184) | 0; o = (k + 180) | 0; p = (k + 176) | 0; q = (k + 172) | 0; r = (k + 168) | 0; s = (k + 164) | 0; t = k; u = (k + 160) | 0; v = (k + 156) | 0; w = (k + 152) | 0; x = (k + 144) | 0; y = (k + 192) | 0; z = (k + 140) | 0; A = (k + 136) | 0; B = (k + 132) | 0; C = (k + 128) | 0; D = (k + 124) | 0; E = (k + 120) | 0; F = (k + 116) | 0; G = (k + 112) | 0; H = (k + 108) | 0; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; c[q >> 2] = i; c[r >> 2] = j; c[s >> 2] = (c[m >> 2] | 0) + 8; c[u >> 2] = (c[o >> 2] | 0) + 1; c[v >> 2] = 1 << c[r >> 2]; c[w >> 2] = (c[v >> 2] | 0) - 1; c[(x + 4) >> 2] = c[r >> 2]; c[x >> 2] = 1; b[y >> 1] = 1 << ((c[r >> 2] | 0) - 1); c[z >> 2] = 0; while (1) { if ((c[z >> 2] | 0) >>> 0 >= (c[u >> 2] | 0) >>> 0) break; if ( (b[((c[n >> 2] | 0) + (c[z >> 2] << 1)) >> 1] | 0) == -1 ) { o = c[z >> 2] | 0; j = c[s >> 2] | 0; i = c[w >> 2] | 0; c[w >> 2] = i + -1; c[(j + (i << 3) + 4) >> 2] = o; b[(t + (c[z >> 2] << 1)) >> 1] = 1; } else { if ( (b[((c[n >> 2] | 0) + (c[z >> 2] << 1)) >> 1] | 0) >= (b[y >> 1] | 0) ) c[x >> 2] = 0; b[(t + (c[z >> 2] << 1)) >> 1] = b[((c[n >> 2] | 0) + (c[z >> 2] << 1)) >> 1] | 0; } c[z >> 2] = (c[z >> 2] | 0) + 1; } z = c[m >> 2] | 0; c[z >> 2] = c[x >> 2]; c[(z + 4) >> 2] = c[(x + 4) >> 2]; c[A >> 2] = (c[v >> 2] | 0) - 1; c[B >> 2] = ((c[v >> 2] | 0) >>> 1) + ((c[v >> 2] | 0) >>> 3) + 3; c[D >> 2] = 0; c[C >> 2] = 0; while (1) { if ((c[C >> 2] | 0) >>> 0 >= (c[u >> 2] | 0) >>> 0) break; c[E >> 2] = 0; while (1) { I = c[C >> 2] | 0; if ( (c[E >> 2] | 0) >= (b[((c[n >> 2] | 0) + (c[C >> 2] << 1)) >> 1] | 0) ) break; c[((c[s >> 2] | 0) + (c[D >> 2] << 3) + 4) >> 2] = I; c[D >> 2] = ((c[D >> 2] | 0) + (c[B >> 2] | 0)) & c[A >> 2]; while (1) { if ((c[D >> 2] | 0) >>> 0 <= (c[w >> 2] | 0) >>> 0) break; c[D >> 2] = ((c[D >> 2] | 0) + (c[B >> 2] | 0)) & c[A >> 2]; } c[E >> 2] = (c[E >> 2] | 0) + 1; } c[C >> 2] = I + 1; } c[F >> 2] = 0; while (1) { if ((c[F >> 2] | 0) >>> 0 >= (c[v >> 2] | 0) >>> 0) break; c[G >> 2] = c[((c[s >> 2] | 0) + (c[F >> 2] << 3) + 4) >> 2]; I = (t + (c[G >> 2] << 1)) | 0; C = b[I >> 1] | 0; b[I >> 1] = ((C + 1) << 16) >> 16; c[H >> 2] = C & 65535; C = c[r >> 2] | 0; I = (C - (Ar(c[H >> 2] | 0) | 0)) & 255; a[((c[s >> 2] | 0) + (c[F >> 2] << 3) + 3) >> 0] = I; b[((c[s >> 2] | 0) + (c[F >> 2] << 3)) >> 1] = (c[H >> 2] << d[((c[s >> 2] | 0) + (c[F >> 2] << 3) + 3) >> 0]) - (c[v >> 2] | 0); a[((c[s >> 2] | 0) + (c[F >> 2] << 3) + 2) >> 0] = c[((c[q >> 2] | 0) + (c[G >> 2] << 2)) >> 2]; c[((c[s >> 2] | 0) + (c[F >> 2] << 3) + 4) >> 2] = c[((c[p >> 2] | 0) + (c[G >> 2] << 2)) >> 2]; c[F >> 2] = (c[F >> 2] | 0) + 1; } l = k; return; } function Ar(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function Br(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; if ( (c[f >> 2] | 0) == (c[((c[e >> 2] | 0) + 28728) >> 2] | 0) ) { l = d; return; } c[((c[e >> 2] | 0) + 28740) >> 2] = c[((c[e >> 2] | 0) + 28728) >> 2]; c[((c[e >> 2] | 0) + 28736) >> 2] = (c[f >> 2] | 0) + (0 - ((c[((c[e >> 2] | 0) + 28728) >> 2] | 0) - (c[((c[e >> 2] | 0) + 28732) >> 2] | 0))); c[((c[e >> 2] | 0) + 28732) >> 2] = c[f >> 2]; c[((c[e >> 2] | 0) + 28728) >> 2] = c[f >> 2]; l = d; return; } function Cr(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0; h = l; l = (l + 64) | 0; i = (h + 52) | 0; j = (h + 48) | 0; k = (h + 44) | 0; m = (h + 40) | 0; n = (h + 36) | 0; o = (h + 32) | 0; p = (h + 28) | 0; q = (h + 24) | 0; r = (h + 20) | 0; s = (h + 16) | 0; t = (h + 12) | 0; u = (h + 8) | 0; v = (h + 4) | 0; w = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = c[n >> 2]; if (Dr() | 0) { if (c[p >> 2] | 0) { g = ((c[j >> 2] | 0) + 28752 + 8) | 0; f = c[g >> 2] | 0; e = c[(g + 4) >> 2] | 0; g = (Dr() | 0) != 0; d = jE(1, 0, (g ? 25 : 57) | 0) | 0; g = y; x = (e >>> 0 > g >>> 0) | (((e | 0) == (g | 0)) & (f >>> 0 > d >>> 0)); } else x = 1; } else x = 0; c[r >> 2] = x & 1; if ((c[o >> 2] | 0) >>> 0 >= 131072) { c[i >> 2] = -72; z = c[i >> 2] | 0; l = h; return z | 0; } c[s >> 2] = vr(c[j >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0) | 0; n = ($q(c[s >> 2] | 0) | 0) != 0; x = c[s >> 2] | 0; if (n) { c[i >> 2] = x; z = c[i >> 2] | 0; l = h; return z | 0; } c[q >> 2] = (c[q >> 2] | 0) + x; c[o >> 2] = (c[o >> 2] | 0) - (c[s >> 2] | 0); c[u >> 2] = wr(c[j >> 2] | 0, t, c[q >> 2] | 0, c[o >> 2] | 0) | 0; s = ($q(c[u >> 2] | 0) | 0) != 0; x = c[u >> 2] | 0; if (s) { c[i >> 2] = x; z = c[i >> 2] | 0; l = h; return z | 0; } c[q >> 2] = (c[q >> 2] | 0) + x; c[o >> 2] = (c[o >> 2] | 0) - (c[u >> 2] | 0); if (c[p >> 2] | 0) { p = ((c[j >> 2] | 0) + 28752 + 8) | 0; u = c[(p + 4) >> 2] | 0; if ( ((u >>> 0 > 0) | (((u | 0) == 0) & ((c[p >> 2] | 0) >>> 0 > 16777216))) & ((c[t >> 2] | 0) > 0) ) A = 13; } else if ((c[t >> 2] | 0) > 0) A = 13; if ( (A | 0) == 13 ? ((c[v >> 2] = Er(c[((c[j >> 2] | 0) + 8) >> 2] | 0) | 0), (A = (Fr() | 0) != 0), (c[w >> 2] = A ? 7 : 20), (c[v >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) : 0 ) { c[i >> 2] = Gr( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[q >> 2] | 0, c[o >> 2] | 0, c[t >> 2] | 0, c[r >> 2] | 0 ) | 0; z = c[i >> 2] | 0; l = h; return z | 0; } c[i >> 2] = Hr( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[q >> 2] | 0, c[o >> 2] | 0, c[t >> 2] | 0, c[r >> 2] | 0 ) | 0; z = c[i >> 2] | 0; l = h; return z | 0; } function Dr() { return 1; } function Er(a) { a = a | 0; var b = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; b = l; l = (l + 32) | 0; e = (b + 24) | 0; f = (b + 20) | 0; g = (b + 16) | 0; h = (b + 12) | 0; i = (b + 8) | 0; j = (b + 4) | 0; k = b; c[e >> 2] = a; c[f >> 2] = c[e >> 2]; c[g >> 2] = c[((c[f >> 2] | 0) + 4) >> 2]; c[h >> 2] = (c[e >> 2] | 0) + 8; c[i >> 2] = 1 << c[g >> 2]; c[k >> 2] = 0; c[j >> 2] = 0; while (1) { if ((c[j >> 2] | 0) >>> 0 >= (c[i >> 2] | 0) >>> 0) break; if ( (d[((c[h >> 2] | 0) + (c[j >> 2] << 3) + 2) >> 0] | 0 | 0) > 22 ) c[k >> 2] = (c[k >> 2] | 0) + 1; c[j >> 2] = (c[j >> 2] | 0) + 1; } c[k >> 2] = c[k >> 2] << (8 - (c[g >> 2] | 0)); l = b; return c[k >> 2] | 0; } function Fr() { return 0; } function Gr(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; i = l; l = (l + 32) | 0; j = (i + 28) | 0; k = (i + 24) | 0; m = (i + 20) | 0; n = (i + 16) | 0; o = (i + 12) | 0; p = (i + 8) | 0; q = (i + 4) | 0; r = i; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = d; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; h = c[k >> 2] | 0; g = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; o = c[p >> 2] | 0; p = c[q >> 2] | 0; q = c[r >> 2] | 0; if (c[((c[k >> 2] | 0) + 28944) >> 2] | 0) { c[j >> 2] = Xr(h, g, m, n, o, p, q) | 0; s = c[j >> 2] | 0; l = i; return s | 0; } else { c[j >> 2] = Yr(h, g, m, n, o, p, q) | 0; s = c[j >> 2] | 0; l = i; return s | 0; } return 0; } function Hr(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; i = l; l = (l + 32) | 0; j = (i + 28) | 0; k = (i + 24) | 0; m = (i + 20) | 0; n = (i + 16) | 0; o = (i + 12) | 0; p = (i + 8) | 0; q = (i + 4) | 0; r = i; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = d; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; h = c[k >> 2] | 0; g = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; o = c[p >> 2] | 0; p = c[q >> 2] | 0; q = c[r >> 2] | 0; if (c[((c[k >> 2] | 0) + 28944) >> 2] | 0) { c[j >> 2] = Ir(h, g, m, n, o, p, q) | 0; s = c[j >> 2] | 0; l = i; return s | 0; } else { c[j >> 2] = Jr(h, g, m, n, o, p, q) | 0; s = c[j >> 2] | 0; l = i; return s | 0; } return 0; } function Ir(b, f, g, h, i, j, k) { b = b | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0; m = l; l = (l + 448) | 0; n = (m + 432) | 0; o = (m + 424) | 0; p = (m + 420) | 0; q = (m + 416) | 0; r = (m + 412) | 0; s = (m + 408) | 0; t = (m + 404) | 0; u = (m + 400) | 0; v = (m + 396) | 0; w = (m + 392) | 0; x = (m + 388) | 0; y = (m + 384) | 0; z = (m + 380) | 0; A = (m + 376) | 0; B = (m + 372) | 0; C = (m + 368) | 0; D = (m + 364) | 0; E = (m + 360) | 0; F = m; G = (m + 356) | 0; H = (m + 352) | 0; I = (m + 344) | 0; J = (m + 340) | 0; K = (m + 336) | 0; L = (m + 332) | 0; M = (m + 328) | 0; N = (m + 320) | 0; O = (m + 316) | 0; P = (m + 312) | 0; Q = (m + 308) | 0; R = (m + 304) | 0; S = (m + 296) | 0; T = (m + 292) | 0; U = (m + 288) | 0; V = (m + 284) | 0; W = (m + 280) | 0; X = (m + 264) | 0; Y = (m + 256) | 0; Z = (m + 252) | 0; _ = (m + 248) | 0; $ = (m + 244) | 0; aa = (m + 240) | 0; ba = (m + 236) | 0; ca = (m + 232) | 0; da = (m + 228) | 0; ea = (m + 224) | 0; fa = (m + 220) | 0; ga = (m + 216) | 0; ha = (m + 212) | 0; ia = (m + 208) | 0; ja = (m + 204) | 0; ka = (m + 200) | 0; la = (m + 196) | 0; ma = (m + 192) | 0; na = (m + 188) | 0; oa = (m + 184) | 0; pa = (m + 180) | 0; qa = (m + 176) | 0; ra = (m + 172) | 0; sa = (m + 168) | 0; ta = (m + 164) | 0; ua = (m + 160) | 0; va = (m + 156) | 0; wa = (m + 152) | 0; xa = (m + 148) | 0; ya = (m + 80) | 0; za = (m + 76) | 0; Aa = (m + 72) | 0; Ba = (m + 56) | 0; Ca = (m + 52) | 0; Da = (m + 48) | 0; Ea = (m + 44) | 0; Fa = (m + 40) | 0; Ga = (m + 36) | 0; Ha = (m + 32) | 0; Ia = (m + 28) | 0; Ja = (m + 24) | 0; Ka = (m + 20) | 0; La = (m + 16) | 0; c[Fa >> 2] = b; c[Ga >> 2] = f; c[Ha >> 2] = g; c[Ia >> 2] = h; c[Ja >> 2] = i; c[Ka >> 2] = j; c[La >> 2] = k; k = c[Ga >> 2] | 0; Ga = c[Ha >> 2] | 0; Ha = c[Ia >> 2] | 0; Ia = c[Ja >> 2] | 0; Ja = c[Ka >> 2] | 0; Ka = c[La >> 2] | 0; c[ha >> 2] = c[Fa >> 2]; c[ia >> 2] = k; c[ja >> 2] = Ga; c[ka >> 2] = Ha; c[la >> 2] = Ia; c[ma >> 2] = Ja; c[na >> 2] = Ka; c[oa >> 2] = c[ka >> 2]; c[pa >> 2] = (c[oa >> 2] | 0) + (c[la >> 2] | 0); c[qa >> 2] = c[ia >> 2]; c[ra >> 2] = (c[qa >> 2] | 0) + (c[ja >> 2] | 0); c[sa >> 2] = c[qa >> 2]; c[ta >> 2] = c[((c[ha >> 2] | 0) + 28916) >> 2]; c[ua >> 2] = (c[ta >> 2] | 0) + (c[((c[ha >> 2] | 0) + 28932) >> 2] | 0); c[va >> 2] = c[((c[ha >> 2] | 0) + 28732) >> 2]; c[wa >> 2] = c[((c[ha >> 2] | 0) + 28736) >> 2]; c[xa >> 2] = c[((c[ha >> 2] | 0) + 28740) >> 2]; a: do { if (c[ma >> 2] | 0) { c[((c[ha >> 2] | 0) + 28812) >> 2] = 1; c[za >> 2] = 0; while (1) { if ((c[za >> 2] | 0) >>> 0 >= 3) break; c[(ya + 44 + (c[za >> 2] << 2)) >> 2] = c[ ((c[ha >> 2] | 0) + 16 + 28700 + (c[za >> 2] << 2)) >> 2 ]; c[za >> 2] = (c[za >> 2] | 0) + 1; } c[Aa >> 2] = Kr( ya, c[oa >> 2] | 0, ((c[pa >> 2] | 0) - (c[oa >> 2] | 0)) | 0 ) | 0; if ($q(c[Aa >> 2] | 0) | 0) { c[ga >> 2] = -20; Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } Lr((ya + 20) | 0, ya, c[c[ha >> 2] >> 2] | 0); Lr((ya + 28) | 0, ya, c[((c[ha >> 2] | 0) + 8) >> 2] | 0); Lr((ya + 36) | 0, ya, c[((c[ha >> 2] | 0) + 4) >> 2] | 0); while (1) { ja = (Mr(ya) | 0) >>> 0 <= 2; Na = c[ma >> 2] | 0; if (!(ja ? (c[ma >> 2] | 0) != 0 : 0)) break; c[ma >> 2] = Na + -1; ja = c[na >> 2] | 0; c[V >> 2] = ya; c[W >> 2] = ja; c[Y >> 2] = d[ ((c[((c[V >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 20) >> 2] << 3) + 2) >> 0 ]; c[Z >> 2] = d[ ((c[((c[V >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 36) >> 2] << 3) + 2) >> 0 ]; c[_ >> 2] = d[ ((c[((c[V >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 28) >> 2] << 3) + 2) >> 0 ]; c[$ >> 2] = (c[Y >> 2] | 0) + (c[Z >> 2] | 0) + (c[_ >> 2] | 0); c[aa >> 2] = c[ ((c[((c[V >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 20) >> 2] << 3) + 4) >> 2 ]; c[ba >> 2] = c[ ((c[((c[V >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 36) >> 2] << 3) + 4) >> 2 ]; c[ca >> 2] = c[ ((c[((c[V >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 28) >> 2] << 3) + 4) >> 2 ]; do { if (c[_ >> 2] | 0) { ja = (Dr() | 0) != 0; if ( !( ja & ((c[W >> 2] | 0) != 0) & ((c[_ >> 2] | 0) >>> 0 >= 25) ) ) { ja = c[ca >> 2] | 0; c[da >> 2] = ja + (Nr(c[V >> 2] | 0, c[_ >> 2] | 0) | 0); if (!(Dr() | 0)) break; Mr(c[V >> 2] | 0) | 0; break; } if ( (c[_ >> 2] | 0) >>> 0 < ((32 - (c[((c[V >> 2] | 0) + 4) >> 2] | 0)) | 0) >>> 0 ) Oa = c[_ >> 2] | 0; else Oa = (32 - (c[((c[V >> 2] | 0) + 4) >> 2] | 0)) | 0; c[ea >> 2] = (c[_ >> 2] | 0) - Oa; ja = c[ca >> 2] | 0; ia = Nr( c[V >> 2] | 0, ((c[_ >> 2] | 0) - (c[ea >> 2] | 0)) | 0 ) | 0; c[da >> 2] = ja + (ia << c[ea >> 2]); Mr(c[V >> 2] | 0) | 0; if (c[ea >> 2] | 0) { ia = Nr(c[V >> 2] | 0, c[ea >> 2] | 0) | 0; c[da >> 2] = (c[da >> 2] | 0) + ia; } } else c[da >> 2] = 0; } while (0); do { if ((c[_ >> 2] | 0) >>> 0 <= 1) { c[da >> 2] = (c[da >> 2] | 0) + (((c[aa >> 2] | 0) == 0) & 1); if (!(c[da >> 2] | 0)) { c[da >> 2] = c[((c[V >> 2] | 0) + 44) >> 2]; break; } ia = ((c[V >> 2] | 0) + 44) | 0; if ((c[da >> 2] | 0) == 3) Pa = ((c[ia >> 2] | 0) - 1) | 0; else Pa = c[(ia + (c[da >> 2] << 2)) >> 2] | 0; c[fa >> 2] = Pa; c[fa >> 2] = (c[fa >> 2] | 0) + ((((c[fa >> 2] | 0) != 0) ^ 1) & 1); if ((c[da >> 2] | 0) != 1) c[((c[V >> 2] | 0) + 44 + 8) >> 2] = c[((c[V >> 2] | 0) + 44 + 4) >> 2]; c[((c[V >> 2] | 0) + 44 + 4) >> 2] = c[((c[V >> 2] | 0) + 44) >> 2]; ia = c[fa >> 2] | 0; c[da >> 2] = ia; c[((c[V >> 2] | 0) + 44) >> 2] = ia; } else { c[((c[V >> 2] | 0) + 44 + 8) >> 2] = c[((c[V >> 2] | 0) + 44 + 4) >> 2]; c[((c[V >> 2] | 0) + 44 + 4) >> 2] = c[((c[V >> 2] | 0) + 44) >> 2]; c[((c[V >> 2] | 0) + 44) >> 2] = c[da >> 2]; } } while (0); c[(X + 8) >> 2] = c[da >> 2]; ia = c[ba >> 2] | 0; if ((c[Z >> 2] | 0) >>> 0 > 0) Qa = Nr(c[V >> 2] | 0, c[Z >> 2] | 0) | 0; else Qa = 0; c[(X + 4) >> 2] = ia + Qa; if ( Dr() | 0 ? (((c[Z >> 2] | 0) + (c[Y >> 2] | 0)) | 0) >>> 0 >= 20 : 0 ) Mr(c[V >> 2] | 0) | 0; ia = (Fr() | 0) != 0; if (ia & ((c[$ >> 2] | 0) >>> 0 >= 31)) Mr(c[V >> 2] | 0) | 0; ia = c[aa >> 2] | 0; if ((c[Y >> 2] | 0) >>> 0 > 0) Ra = Nr(c[V >> 2] | 0, c[Y >> 2] | 0) | 0; else Ra = 0; c[X >> 2] = ia + Ra; if (Dr() | 0) Mr(c[V >> 2] | 0) | 0; ia = c[V >> 2] | 0; c[Q >> 2] = (c[V >> 2] | 0) + 20; c[R >> 2] = ia; ia = ((c[((c[Q >> 2] | 0) + 4) >> 2] | 0) + (c[c[Q >> 2] >> 2] << 3)) | 0; c[S >> 2] = c[ia >> 2]; c[(S + 4) >> 2] = c[(ia + 4) >> 2]; c[T >> 2] = d[(S + 3) >> 0]; c[U >> 2] = Or(c[R >> 2] | 0, c[T >> 2] | 0) | 0; c[c[Q >> 2] >> 2] = (e[S >> 1] | 0) + (c[U >> 2] | 0); ia = c[V >> 2] | 0; c[L >> 2] = (c[V >> 2] | 0) + 36; c[M >> 2] = ia; ia = ((c[((c[L >> 2] | 0) + 4) >> 2] | 0) + (c[c[L >> 2] >> 2] << 3)) | 0; c[N >> 2] = c[ia >> 2]; c[(N + 4) >> 2] = c[(ia + 4) >> 2]; c[O >> 2] = d[(N + 3) >> 0]; c[P >> 2] = Or(c[M >> 2] | 0, c[O >> 2] | 0) | 0; c[c[L >> 2] >> 2] = (e[N >> 1] | 0) + (c[P >> 2] | 0); if (Dr() | 0) Mr(c[V >> 2] | 0) | 0; ia = c[V >> 2] | 0; c[G >> 2] = (c[V >> 2] | 0) + 28; c[H >> 2] = ia; ia = ((c[((c[G >> 2] | 0) + 4) >> 2] | 0) + (c[c[G >> 2] >> 2] << 3)) | 0; c[I >> 2] = c[ia >> 2]; c[(I + 4) >> 2] = c[(ia + 4) >> 2]; c[J >> 2] = d[(I + 3) >> 0]; c[K >> 2] = Or(c[H >> 2] | 0, c[J >> 2] | 0) | 0; c[c[G >> 2] >> 2] = (e[I >> 1] | 0) + (c[K >> 2] | 0); c[Ba >> 2] = c[X >> 2]; c[(Ba + 4) >> 2] = c[(X + 4) >> 2]; c[(Ba + 8) >> 2] = c[(X + 8) >> 2]; c[(Ba + 12) >> 2] = c[(X + 12) >> 2]; ia = c[sa >> 2] | 0; ja = c[ra >> 2] | 0; la = c[ua >> 2] | 0; ka = c[va >> 2] | 0; Ka = c[wa >> 2] | 0; Ja = c[xa >> 2] | 0; Ia = F; Ha = Ba; Ga = (Ia + 16) | 0; do { a[Ia >> 0] = a[Ha >> 0] | 0; Ia = (Ia + 1) | 0; Ha = (Ha + 1) | 0; } while ((Ia | 0) < (Ga | 0)); c[p >> 2] = ia; c[q >> 2] = ja; c[r >> 2] = ta; c[s >> 2] = la; c[t >> 2] = ka; c[u >> 2] = Ka; c[v >> 2] = Ja; c[w >> 2] = (c[p >> 2] | 0) + (c[F >> 2] | 0); c[x >> 2] = (c[F >> 2] | 0) + (c[(F + 4) >> 2] | 0); c[y >> 2] = (c[p >> 2] | 0) + (c[x >> 2] | 0); c[z >> 2] = (c[q >> 2] | 0) + -8; c[A >> 2] = (c[c[r >> 2] >> 2] | 0) + (c[F >> 2] | 0); c[B >> 2] = (c[w >> 2] | 0) + (0 - (c[(F + 8) >> 2] | 0)); b: do { if ((c[y >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) c[o >> 2] = -70; else { if ((c[A >> 2] | 0) >>> 0 > (c[s >> 2] | 0) >>> 0) { c[o >> 2] = -20; break; } Ha = c[p >> 2] | 0; if ((c[w >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0) { Ia = c[q >> 2] | 0; Ga = c[r >> 2] | 0; k = c[s >> 2] | 0; Fa = c[t >> 2] | 0; La = c[u >> 2] | 0; j = c[v >> 2] | 0; c[n >> 2] = c[F >> 2]; c[(n + 4) >> 2] = c[(F + 4) >> 2]; c[(n + 8) >> 2] = c[(F + 8) >> 2]; c[(n + 12) >> 2] = c[(F + 12) >> 2]; c[o >> 2] = Pr(Ha, Ia, n, Ga, k, Fa, La, j) | 0; break; } Qr(Ha, c[c[r >> 2] >> 2] | 0); if ((c[F >> 2] | 0) >>> 0 > 8) Rr( ((c[p >> 2] | 0) + 8) | 0, ((c[c[r >> 2] >> 2] | 0) + 8) | 0, ((c[F >> 2] | 0) - 8) | 0 ); c[p >> 2] = c[w >> 2]; c[c[r >> 2] >> 2] = c[A >> 2]; do { if ( (c[(F + 8) >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[t >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(F + 8) >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[u >> 2] | 0)) | 0) >>> 0 ) { c[o >> 2] = -20; break b; } c[B >> 2] = (c[v >> 2] | 0) + ((c[B >> 2] | 0) - (c[t >> 2] | 0)); if ( (((c[B >> 2] | 0) + (c[(F + 4) >> 2] | 0)) | 0) >>> 0 <= (c[v >> 2] | 0) >>> 0 ) { nE( c[w >> 2] | 0, c[B >> 2] | 0, c[(F + 4) >> 2] | 0 ) | 0; c[o >> 2] = c[x >> 2]; break b; } c[C >> 2] = (c[v >> 2] | 0) - (c[B >> 2] | 0); nE( c[w >> 2] | 0, c[B >> 2] | 0, c[C >> 2] | 0 ) | 0; c[p >> 2] = (c[w >> 2] | 0) + (c[C >> 2] | 0); Ha = (F + 4) | 0; c[Ha >> 2] = (c[Ha >> 2] | 0) - (c[C >> 2] | 0); c[B >> 2] = c[t >> 2]; if ( (c[p >> 2] | 0) >>> 0 <= (c[z >> 2] | 0) >>> 0 ? (c[(F + 4) >> 2] | 0) >>> 0 >= 3 : 0 ) break; c[D >> 2] = 0; while (1) { if ( (c[D >> 2] | 0) >>> 0 >= (c[(F + 4) >> 2] | 0) >>> 0 ) break; a[((c[p >> 2] | 0) + (c[D >> 2] | 0)) >> 0] = a[ ((c[B >> 2] | 0) + (c[D >> 2] | 0)) >> 0 ] | 0; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[o >> 2] = c[x >> 2]; break b; } } while (0); if ((c[(F + 8) >> 2] | 0) >>> 0 < 8) { c[E >> 2] = c[(6816 + (c[(F + 8) >> 2] << 2)) >> 2]; a[c[p >> 2] >> 0] = a[c[B >> 2] >> 0] | 0; a[((c[p >> 2] | 0) + 1) >> 0] = a[((c[B >> 2] | 0) + 1) >> 0] | 0; a[((c[p >> 2] | 0) + 2) >> 0] = a[((c[B >> 2] | 0) + 2) >> 0] | 0; a[((c[p >> 2] | 0) + 3) >> 0] = a[((c[B >> 2] | 0) + 3) >> 0] | 0; c[B >> 2] = (c[B >> 2] | 0) + (c[(6848 + (c[(F + 8) >> 2] << 2)) >> 2] | 0); Sr(((c[p >> 2] | 0) + 4) | 0, c[B >> 2] | 0); c[B >> 2] = (c[B >> 2] | 0) + (0 - (c[E >> 2] | 0)); } else Qr(c[p >> 2] | 0, c[B >> 2] | 0); c[p >> 2] = (c[p >> 2] | 0) + 8; c[B >> 2] = (c[B >> 2] | 0) + 8; Ha = c[p >> 2] | 0; c: do { if ( (c[y >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -13) | 0) >>> 0 ) { if (Ha >>> 0 < (c[z >> 2] | 0) >>> 0) { Rr( c[p >> 2] | 0, c[B >> 2] | 0, ((c[z >> 2] | 0) - (c[p >> 2] | 0)) | 0 ); c[B >> 2] = (c[B >> 2] | 0) + ((c[z >> 2] | 0) - (c[p >> 2] | 0)); c[p >> 2] = c[z >> 2]; } while (1) { if ( (c[p >> 2] | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0 ) break c; j = c[B >> 2] | 0; c[B >> 2] = j + 1; La = a[j >> 0] | 0; j = c[p >> 2] | 0; c[p >> 2] = j + 1; a[j >> 0] = La; } } else Rr( Ha, c[B >> 2] | 0, ((c[(F + 4) >> 2] | 0) - 8) | 0 ); } while (0); c[o >> 2] = c[x >> 2]; } } while (0); c[Ca >> 2] = c[o >> 2]; Ja = ($q(c[Ca >> 2] | 0) | 0) != 0; Sa = c[Ca >> 2] | 0; if (Ja) { Ta = 73; break; } c[sa >> 2] = (c[sa >> 2] | 0) + Sa; } if ((Ta | 0) == 73) { c[ga >> 2] = Sa; Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } if (Na | 0) { c[ga >> 2] = -20; Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } c[Da >> 2] = 0; while (1) { if ((c[Da >> 2] | 0) >>> 0 >= 3) break a; c[ ((c[ha >> 2] | 0) + 16 + 28700 + (c[Da >> 2] << 2)) >> 2 ] = c[(ya + 44 + (c[Da >> 2] << 2)) >> 2]; c[Da >> 2] = (c[Da >> 2] | 0) + 1; } } } while (0); c[Ea >> 2] = (c[ua >> 2] | 0) - (c[ta >> 2] | 0); if ( (c[Ea >> 2] | 0) >>> 0 > (((c[ra >> 2] | 0) - (c[sa >> 2] | 0)) | 0) >>> 0 ) { c[ga >> 2] = -70; Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } else { mE(c[sa >> 2] | 0, c[ta >> 2] | 0, c[Ea >> 2] | 0) | 0; c[sa >> 2] = (c[sa >> 2] | 0) + (c[Ea >> 2] | 0); c[ga >> 2] = (c[sa >> 2] | 0) - (c[qa >> 2] | 0); Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } return 0; } function Jr(b, f, g, h, i, j, k) { b = b | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0; m = l; l = (l + 448) | 0; n = (m + 432) | 0; o = (m + 424) | 0; p = (m + 420) | 0; q = (m + 416) | 0; r = (m + 412) | 0; s = (m + 408) | 0; t = (m + 404) | 0; u = (m + 400) | 0; v = (m + 396) | 0; w = (m + 392) | 0; x = (m + 388) | 0; y = (m + 384) | 0; z = (m + 380) | 0; A = (m + 376) | 0; B = (m + 372) | 0; C = (m + 368) | 0; D = (m + 364) | 0; E = (m + 360) | 0; F = m; G = (m + 356) | 0; H = (m + 352) | 0; I = (m + 344) | 0; J = (m + 340) | 0; K = (m + 336) | 0; L = (m + 332) | 0; M = (m + 328) | 0; N = (m + 320) | 0; O = (m + 316) | 0; P = (m + 312) | 0; Q = (m + 308) | 0; R = (m + 304) | 0; S = (m + 296) | 0; T = (m + 292) | 0; U = (m + 288) | 0; V = (m + 284) | 0; W = (m + 280) | 0; X = (m + 264) | 0; Y = (m + 256) | 0; Z = (m + 252) | 0; _ = (m + 248) | 0; $ = (m + 244) | 0; aa = (m + 240) | 0; ba = (m + 236) | 0; ca = (m + 232) | 0; da = (m + 228) | 0; ea = (m + 224) | 0; fa = (m + 220) | 0; ga = (m + 216) | 0; ha = (m + 212) | 0; ia = (m + 208) | 0; ja = (m + 204) | 0; ka = (m + 200) | 0; la = (m + 196) | 0; ma = (m + 192) | 0; na = (m + 188) | 0; oa = (m + 184) | 0; pa = (m + 180) | 0; qa = (m + 176) | 0; ra = (m + 172) | 0; sa = (m + 168) | 0; ta = (m + 164) | 0; ua = (m + 160) | 0; va = (m + 156) | 0; wa = (m + 152) | 0; xa = (m + 148) | 0; ya = (m + 80) | 0; za = (m + 76) | 0; Aa = (m + 72) | 0; Ba = (m + 56) | 0; Ca = (m + 52) | 0; Da = (m + 48) | 0; Ea = (m + 44) | 0; Fa = (m + 40) | 0; Ga = (m + 36) | 0; Ha = (m + 32) | 0; Ia = (m + 28) | 0; Ja = (m + 24) | 0; Ka = (m + 20) | 0; La = (m + 16) | 0; c[Fa >> 2] = b; c[Ga >> 2] = f; c[Ha >> 2] = g; c[Ia >> 2] = h; c[Ja >> 2] = i; c[Ka >> 2] = j; c[La >> 2] = k; k = c[Ga >> 2] | 0; Ga = c[Ha >> 2] | 0; Ha = c[Ia >> 2] | 0; Ia = c[Ja >> 2] | 0; Ja = c[Ka >> 2] | 0; Ka = c[La >> 2] | 0; c[ha >> 2] = c[Fa >> 2]; c[ia >> 2] = k; c[ja >> 2] = Ga; c[ka >> 2] = Ha; c[la >> 2] = Ia; c[ma >> 2] = Ja; c[na >> 2] = Ka; c[oa >> 2] = c[ka >> 2]; c[pa >> 2] = (c[oa >> 2] | 0) + (c[la >> 2] | 0); c[qa >> 2] = c[ia >> 2]; c[ra >> 2] = (c[qa >> 2] | 0) + (c[ja >> 2] | 0); c[sa >> 2] = c[qa >> 2]; c[ta >> 2] = c[((c[ha >> 2] | 0) + 28916) >> 2]; c[ua >> 2] = (c[ta >> 2] | 0) + (c[((c[ha >> 2] | 0) + 28932) >> 2] | 0); c[va >> 2] = c[((c[ha >> 2] | 0) + 28732) >> 2]; c[wa >> 2] = c[((c[ha >> 2] | 0) + 28736) >> 2]; c[xa >> 2] = c[((c[ha >> 2] | 0) + 28740) >> 2]; a: do { if (c[ma >> 2] | 0) { c[((c[ha >> 2] | 0) + 28812) >> 2] = 1; c[za >> 2] = 0; while (1) { if ((c[za >> 2] | 0) >>> 0 >= 3) break; c[(ya + 44 + (c[za >> 2] << 2)) >> 2] = c[ ((c[ha >> 2] | 0) + 16 + 28700 + (c[za >> 2] << 2)) >> 2 ]; c[za >> 2] = (c[za >> 2] | 0) + 1; } c[Aa >> 2] = Kr( ya, c[oa >> 2] | 0, ((c[pa >> 2] | 0) - (c[oa >> 2] | 0)) | 0 ) | 0; if ($q(c[Aa >> 2] | 0) | 0) { c[ga >> 2] = -20; Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } Lr((ya + 20) | 0, ya, c[c[ha >> 2] >> 2] | 0); Lr((ya + 28) | 0, ya, c[((c[ha >> 2] | 0) + 8) >> 2] | 0); Lr((ya + 36) | 0, ya, c[((c[ha >> 2] | 0) + 4) >> 2] | 0); while (1) { ja = (Mr(ya) | 0) >>> 0 <= 2; Na = c[ma >> 2] | 0; if (!(ja ? (c[ma >> 2] | 0) != 0 : 0)) break; c[ma >> 2] = Na + -1; ja = c[na >> 2] | 0; c[V >> 2] = ya; c[W >> 2] = ja; c[Y >> 2] = d[ ((c[((c[V >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 20) >> 2] << 3) + 2) >> 0 ]; c[Z >> 2] = d[ ((c[((c[V >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 36) >> 2] << 3) + 2) >> 0 ]; c[_ >> 2] = d[ ((c[((c[V >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 28) >> 2] << 3) + 2) >> 0 ]; c[$ >> 2] = (c[Y >> 2] | 0) + (c[Z >> 2] | 0) + (c[_ >> 2] | 0); c[aa >> 2] = c[ ((c[((c[V >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 20) >> 2] << 3) + 4) >> 2 ]; c[ba >> 2] = c[ ((c[((c[V >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 36) >> 2] << 3) + 4) >> 2 ]; c[ca >> 2] = c[ ((c[((c[V >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[V >> 2] | 0) + 28) >> 2] << 3) + 4) >> 2 ]; do { if (c[_ >> 2] | 0) { ja = (Dr() | 0) != 0; if ( !( ja & ((c[W >> 2] | 0) != 0) & ((c[_ >> 2] | 0) >>> 0 >= 25) ) ) { ja = c[ca >> 2] | 0; c[da >> 2] = ja + (Nr(c[V >> 2] | 0, c[_ >> 2] | 0) | 0); if (!(Dr() | 0)) break; Mr(c[V >> 2] | 0) | 0; break; } if ( (c[_ >> 2] | 0) >>> 0 < ((32 - (c[((c[V >> 2] | 0) + 4) >> 2] | 0)) | 0) >>> 0 ) Oa = c[_ >> 2] | 0; else Oa = (32 - (c[((c[V >> 2] | 0) + 4) >> 2] | 0)) | 0; c[ea >> 2] = (c[_ >> 2] | 0) - Oa; ja = c[ca >> 2] | 0; ia = Nr( c[V >> 2] | 0, ((c[_ >> 2] | 0) - (c[ea >> 2] | 0)) | 0 ) | 0; c[da >> 2] = ja + (ia << c[ea >> 2]); Mr(c[V >> 2] | 0) | 0; if (c[ea >> 2] | 0) { ia = Nr(c[V >> 2] | 0, c[ea >> 2] | 0) | 0; c[da >> 2] = (c[da >> 2] | 0) + ia; } } else c[da >> 2] = 0; } while (0); do { if ((c[_ >> 2] | 0) >>> 0 <= 1) { c[da >> 2] = (c[da >> 2] | 0) + (((c[aa >> 2] | 0) == 0) & 1); if (!(c[da >> 2] | 0)) { c[da >> 2] = c[((c[V >> 2] | 0) + 44) >> 2]; break; } ia = ((c[V >> 2] | 0) + 44) | 0; if ((c[da >> 2] | 0) == 3) Pa = ((c[ia >> 2] | 0) - 1) | 0; else Pa = c[(ia + (c[da >> 2] << 2)) >> 2] | 0; c[fa >> 2] = Pa; c[fa >> 2] = (c[fa >> 2] | 0) + ((((c[fa >> 2] | 0) != 0) ^ 1) & 1); if ((c[da >> 2] | 0) != 1) c[((c[V >> 2] | 0) + 44 + 8) >> 2] = c[((c[V >> 2] | 0) + 44 + 4) >> 2]; c[((c[V >> 2] | 0) + 44 + 4) >> 2] = c[((c[V >> 2] | 0) + 44) >> 2]; ia = c[fa >> 2] | 0; c[da >> 2] = ia; c[((c[V >> 2] | 0) + 44) >> 2] = ia; } else { c[((c[V >> 2] | 0) + 44 + 8) >> 2] = c[((c[V >> 2] | 0) + 44 + 4) >> 2]; c[((c[V >> 2] | 0) + 44 + 4) >> 2] = c[((c[V >> 2] | 0) + 44) >> 2]; c[((c[V >> 2] | 0) + 44) >> 2] = c[da >> 2]; } } while (0); c[(X + 8) >> 2] = c[da >> 2]; ia = c[ba >> 2] | 0; if ((c[Z >> 2] | 0) >>> 0 > 0) Qa = Nr(c[V >> 2] | 0, c[Z >> 2] | 0) | 0; else Qa = 0; c[(X + 4) >> 2] = ia + Qa; if ( Dr() | 0 ? (((c[Z >> 2] | 0) + (c[Y >> 2] | 0)) | 0) >>> 0 >= 20 : 0 ) Mr(c[V >> 2] | 0) | 0; ia = (Fr() | 0) != 0; if (ia & ((c[$ >> 2] | 0) >>> 0 >= 31)) Mr(c[V >> 2] | 0) | 0; ia = c[aa >> 2] | 0; if ((c[Y >> 2] | 0) >>> 0 > 0) Ra = Nr(c[V >> 2] | 0, c[Y >> 2] | 0) | 0; else Ra = 0; c[X >> 2] = ia + Ra; if (Dr() | 0) Mr(c[V >> 2] | 0) | 0; ia = c[V >> 2] | 0; c[Q >> 2] = (c[V >> 2] | 0) + 20; c[R >> 2] = ia; ia = ((c[((c[Q >> 2] | 0) + 4) >> 2] | 0) + (c[c[Q >> 2] >> 2] << 3)) | 0; c[S >> 2] = c[ia >> 2]; c[(S + 4) >> 2] = c[(ia + 4) >> 2]; c[T >> 2] = d[(S + 3) >> 0]; c[U >> 2] = Or(c[R >> 2] | 0, c[T >> 2] | 0) | 0; c[c[Q >> 2] >> 2] = (e[S >> 1] | 0) + (c[U >> 2] | 0); ia = c[V >> 2] | 0; c[L >> 2] = (c[V >> 2] | 0) + 36; c[M >> 2] = ia; ia = ((c[((c[L >> 2] | 0) + 4) >> 2] | 0) + (c[c[L >> 2] >> 2] << 3)) | 0; c[N >> 2] = c[ia >> 2]; c[(N + 4) >> 2] = c[(ia + 4) >> 2]; c[O >> 2] = d[(N + 3) >> 0]; c[P >> 2] = Or(c[M >> 2] | 0, c[O >> 2] | 0) | 0; c[c[L >> 2] >> 2] = (e[N >> 1] | 0) + (c[P >> 2] | 0); if (Dr() | 0) Mr(c[V >> 2] | 0) | 0; ia = c[V >> 2] | 0; c[G >> 2] = (c[V >> 2] | 0) + 28; c[H >> 2] = ia; ia = ((c[((c[G >> 2] | 0) + 4) >> 2] | 0) + (c[c[G >> 2] >> 2] << 3)) | 0; c[I >> 2] = c[ia >> 2]; c[(I + 4) >> 2] = c[(ia + 4) >> 2]; c[J >> 2] = d[(I + 3) >> 0]; c[K >> 2] = Or(c[H >> 2] | 0, c[J >> 2] | 0) | 0; c[c[G >> 2] >> 2] = (e[I >> 1] | 0) + (c[K >> 2] | 0); c[Ba >> 2] = c[X >> 2]; c[(Ba + 4) >> 2] = c[(X + 4) >> 2]; c[(Ba + 8) >> 2] = c[(X + 8) >> 2]; c[(Ba + 12) >> 2] = c[(X + 12) >> 2]; ia = c[sa >> 2] | 0; ja = c[ra >> 2] | 0; la = c[ua >> 2] | 0; ka = c[va >> 2] | 0; Ka = c[wa >> 2] | 0; Ja = c[xa >> 2] | 0; Ia = F; Ha = Ba; Ga = (Ia + 16) | 0; do { a[Ia >> 0] = a[Ha >> 0] | 0; Ia = (Ia + 1) | 0; Ha = (Ha + 1) | 0; } while ((Ia | 0) < (Ga | 0)); c[p >> 2] = ia; c[q >> 2] = ja; c[r >> 2] = ta; c[s >> 2] = la; c[t >> 2] = ka; c[u >> 2] = Ka; c[v >> 2] = Ja; c[w >> 2] = (c[p >> 2] | 0) + (c[F >> 2] | 0); c[x >> 2] = (c[F >> 2] | 0) + (c[(F + 4) >> 2] | 0); c[y >> 2] = (c[p >> 2] | 0) + (c[x >> 2] | 0); c[z >> 2] = (c[q >> 2] | 0) + -8; c[A >> 2] = (c[c[r >> 2] >> 2] | 0) + (c[F >> 2] | 0); c[B >> 2] = (c[w >> 2] | 0) + (0 - (c[(F + 8) >> 2] | 0)); b: do { if ((c[y >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) c[o >> 2] = -70; else { if ((c[A >> 2] | 0) >>> 0 > (c[s >> 2] | 0) >>> 0) { c[o >> 2] = -20; break; } Ha = c[p >> 2] | 0; if ((c[w >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0) { Ia = c[q >> 2] | 0; Ga = c[r >> 2] | 0; k = c[s >> 2] | 0; Fa = c[t >> 2] | 0; La = c[u >> 2] | 0; j = c[v >> 2] | 0; c[n >> 2] = c[F >> 2]; c[(n + 4) >> 2] = c[(F + 4) >> 2]; c[(n + 8) >> 2] = c[(F + 8) >> 2]; c[(n + 12) >> 2] = c[(F + 12) >> 2]; c[o >> 2] = Pr(Ha, Ia, n, Ga, k, Fa, La, j) | 0; break; } Qr(Ha, c[c[r >> 2] >> 2] | 0); if ((c[F >> 2] | 0) >>> 0 > 8) Rr( ((c[p >> 2] | 0) + 8) | 0, ((c[c[r >> 2] >> 2] | 0) + 8) | 0, ((c[F >> 2] | 0) - 8) | 0 ); c[p >> 2] = c[w >> 2]; c[c[r >> 2] >> 2] = c[A >> 2]; do { if ( (c[(F + 8) >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[t >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(F + 8) >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[u >> 2] | 0)) | 0) >>> 0 ) { c[o >> 2] = -20; break b; } c[B >> 2] = (c[v >> 2] | 0) + ((c[B >> 2] | 0) - (c[t >> 2] | 0)); if ( (((c[B >> 2] | 0) + (c[(F + 4) >> 2] | 0)) | 0) >>> 0 <= (c[v >> 2] | 0) >>> 0 ) { nE( c[w >> 2] | 0, c[B >> 2] | 0, c[(F + 4) >> 2] | 0 ) | 0; c[o >> 2] = c[x >> 2]; break b; } c[C >> 2] = (c[v >> 2] | 0) - (c[B >> 2] | 0); nE( c[w >> 2] | 0, c[B >> 2] | 0, c[C >> 2] | 0 ) | 0; c[p >> 2] = (c[w >> 2] | 0) + (c[C >> 2] | 0); Ha = (F + 4) | 0; c[Ha >> 2] = (c[Ha >> 2] | 0) - (c[C >> 2] | 0); c[B >> 2] = c[t >> 2]; if ( (c[p >> 2] | 0) >>> 0 <= (c[z >> 2] | 0) >>> 0 ? (c[(F + 4) >> 2] | 0) >>> 0 >= 3 : 0 ) break; c[D >> 2] = 0; while (1) { if ( (c[D >> 2] | 0) >>> 0 >= (c[(F + 4) >> 2] | 0) >>> 0 ) break; a[((c[p >> 2] | 0) + (c[D >> 2] | 0)) >> 0] = a[ ((c[B >> 2] | 0) + (c[D >> 2] | 0)) >> 0 ] | 0; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[o >> 2] = c[x >> 2]; break b; } } while (0); if ((c[(F + 8) >> 2] | 0) >>> 0 < 8) { c[E >> 2] = c[(6816 + (c[(F + 8) >> 2] << 2)) >> 2]; a[c[p >> 2] >> 0] = a[c[B >> 2] >> 0] | 0; a[((c[p >> 2] | 0) + 1) >> 0] = a[((c[B >> 2] | 0) + 1) >> 0] | 0; a[((c[p >> 2] | 0) + 2) >> 0] = a[((c[B >> 2] | 0) + 2) >> 0] | 0; a[((c[p >> 2] | 0) + 3) >> 0] = a[((c[B >> 2] | 0) + 3) >> 0] | 0; c[B >> 2] = (c[B >> 2] | 0) + (c[(6848 + (c[(F + 8) >> 2] << 2)) >> 2] | 0); Sr(((c[p >> 2] | 0) + 4) | 0, c[B >> 2] | 0); c[B >> 2] = (c[B >> 2] | 0) + (0 - (c[E >> 2] | 0)); } else Qr(c[p >> 2] | 0, c[B >> 2] | 0); c[p >> 2] = (c[p >> 2] | 0) + 8; c[B >> 2] = (c[B >> 2] | 0) + 8; Ha = c[p >> 2] | 0; c: do { if ( (c[y >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -13) | 0) >>> 0 ) { if (Ha >>> 0 < (c[z >> 2] | 0) >>> 0) { Rr( c[p >> 2] | 0, c[B >> 2] | 0, ((c[z >> 2] | 0) - (c[p >> 2] | 0)) | 0 ); c[B >> 2] = (c[B >> 2] | 0) + ((c[z >> 2] | 0) - (c[p >> 2] | 0)); c[p >> 2] = c[z >> 2]; } while (1) { if ( (c[p >> 2] | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0 ) break c; j = c[B >> 2] | 0; c[B >> 2] = j + 1; La = a[j >> 0] | 0; j = c[p >> 2] | 0; c[p >> 2] = j + 1; a[j >> 0] = La; } } else Rr( Ha, c[B >> 2] | 0, ((c[(F + 4) >> 2] | 0) - 8) | 0 ); } while (0); c[o >> 2] = c[x >> 2]; } } while (0); c[Ca >> 2] = c[o >> 2]; Ja = ($q(c[Ca >> 2] | 0) | 0) != 0; Sa = c[Ca >> 2] | 0; if (Ja) { Ta = 73; break; } c[sa >> 2] = (c[sa >> 2] | 0) + Sa; } if ((Ta | 0) == 73) { c[ga >> 2] = Sa; Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } if (Na | 0) { c[ga >> 2] = -20; Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } c[Da >> 2] = 0; while (1) { if ((c[Da >> 2] | 0) >>> 0 >= 3) break a; c[ ((c[ha >> 2] | 0) + 16 + 28700 + (c[Da >> 2] << 2)) >> 2 ] = c[(ya + 44 + (c[Da >> 2] << 2)) >> 2]; c[Da >> 2] = (c[Da >> 2] | 0) + 1; } } } while (0); c[Ea >> 2] = (c[ua >> 2] | 0) - (c[ta >> 2] | 0); if ( (c[Ea >> 2] | 0) >>> 0 > (((c[ra >> 2] | 0) - (c[sa >> 2] | 0)) | 0) >>> 0 ) { c[ga >> 2] = -70; Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } else { mE(c[sa >> 2] | 0, c[ta >> 2] | 0, c[Ea >> 2] | 0) | 0; c[sa >> 2] = (c[sa >> 2] | 0) + (c[Ea >> 2] | 0); c[ga >> 2] = (c[sa >> 2] | 0) - (c[qa >> 2] | 0); Ma = c[ga >> 2] | 0; l = m; return Ma | 0; } return 0; } function Kr(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 4) | 0; k = g; m = (g + 17) | 0; n = (g + 16) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; if ((c[k >> 2] | 0) >>> 0 < 1) { f = c[i >> 2] | 0; c[f >> 2] = 0; c[(f + 4) >> 2] = 0; c[(f + 8) >> 2] = 0; c[(f + 12) >> 2] = 0; c[(f + 16) >> 2] = 0; c[h >> 2] = -72; o = c[h >> 2] | 0; l = g; return o | 0; } c[((c[i >> 2] | 0) + 12) >> 2] = c[j >> 2]; c[((c[i >> 2] | 0) + 16) >> 2] = (c[((c[i >> 2] | 0) + 12) >> 2] | 0) + 4; do { if ((c[k >> 2] | 0) >>> 0 >= 4) { c[((c[i >> 2] | 0) + 8) >> 2] = (c[j >> 2] | 0) + (c[k >> 2] | 0) + -4; f = Wr(c[((c[i >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[i >> 2] >> 2] = f; a[m >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[m >> 0] | 0 | 0) p = (8 - (Ar(d[m >> 0] | 0) | 0)) | 0; else p = 0; c[((c[i >> 2] | 0) + 4) >> 2] = p; if (!(d[m >> 0] | 0)) { c[h >> 2] = -1; o = c[h >> 2] | 0; l = g; return o | 0; } } else { c[((c[i >> 2] | 0) + 8) >> 2] = c[((c[i >> 2] | 0) + 12) >> 2]; c[c[i >> 2] >> 2] = d[c[((c[i >> 2] | 0) + 12) >> 2] >> 0]; switch (c[k >> 2] | 0) { case 7: { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 6) >> 0] | 0) << 16); q = 10; break; } case 6: { q = 10; break; } case 5: { q = 11; break; } case 4: { q = 12; break; } case 3: { q = 13; break; } case 2: { q = 14; break; } default: { } } if ((q | 0) == 10) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 5) >> 0] | 0) << 8); q = 11; } if ((q | 0) == 11) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 4) >> 0] | 0) << 0); q = 12; } if ((q | 0) == 12) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 3) >> 0] | 0) << 24); q = 13; } if ((q | 0) == 13) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 2) >> 0] | 0) << 16); q = 14; } if ((q | 0) == 14) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 1) >> 0] | 0) << 8); } a[n >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[n >> 0] | 0 | 0) r = (8 - (Ar(d[n >> 0] | 0) | 0)) | 0; else r = 0; c[((c[i >> 2] | 0) + 4) >> 2] = r; if (d[n >> 0] | 0 | 0) { f = ((c[i >> 2] | 0) + 4) | 0; c[f >> 2] = (c[f >> 2] | 0) + ((4 - (c[k >> 2] | 0)) << 3); break; } c[h >> 2] = -20; o = c[h >> 2] | 0; l = g; return o | 0; } } while (0); c[h >> 2] = c[k >> 2]; o = c[h >> 2] | 0; l = g; return o | 0; } function Lr(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[h >> 2]; c[j >> 2] = c[i >> 2]; i = Or(c[g >> 2] | 0, c[((c[j >> 2] | 0) + 4) >> 2] | 0) | 0; c[c[f >> 2] >> 2] = i; Mr(c[g >> 2] | 0) | 0; c[((c[f >> 2] | 0) + 4) >> 2] = (c[h >> 2] | 0) + 8; l = e; return; } function Mr(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = (b + 12) | 0; e = (b + 8) | 0; f = (b + 4) | 0; g = b; c[e >> 2] = a; if ((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) { c[d >> 2] = 3; h = c[d >> 2] | 0; l = b; return h | 0; } a = c[e >> 2] | 0; if ( (c[((c[e >> 2] | 0) + 8) >> 2] | 0) >>> 0 >= (c[((c[e >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) { i = ((c[e >> 2] | 0) + 8) | 0; c[i >> 2] = (c[i >> 2] | 0) + (0 - ((c[(a + 4) >> 2] | 0) >>> 3)); i = ((c[e >> 2] | 0) + 4) | 0; c[i >> 2] = c[i >> 2] & 7; i = Wr(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = i; c[d >> 2] = 0; h = c[d >> 2] | 0; l = b; return h | 0; } i = c[((c[e >> 2] | 0) + 4) >> 2] | 0; if ( (c[(a + 8) >> 2] | 0) != (c[((c[e >> 2] | 0) + 12) >> 2] | 0) ) { c[f >> 2] = i >>> 3; c[g >> 2] = 0; if ( (((c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (0 - (c[f >> 2] | 0))) | 0) >>> 0 < (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 ) { c[f >> 2] = (c[((c[e >> 2] | 0) + 8) >> 2] | 0) - (c[((c[e >> 2] | 0) + 12) >> 2] | 0); c[g >> 2] = 1; } a = ((c[e >> 2] | 0) + 8) | 0; c[a >> 2] = (c[a >> 2] | 0) + (0 - (c[f >> 2] | 0)); a = ((c[e >> 2] | 0) + 4) | 0; c[a >> 2] = (c[a >> 2] | 0) - (c[f >> 2] << 3); f = Wr(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = f; c[d >> 2] = c[g >> 2]; h = c[d >> 2] | 0; l = b; return h | 0; } if (i >>> 0 < 32) { c[d >> 2] = 1; h = c[d >> 2] | 0; l = b; return h | 0; } else { c[d >> 2] = 2; h = c[d >> 2] | 0; l = b; return h | 0; } return 0; } function Nr(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = Vr(c[e >> 2] | 0, c[f >> 2] | 0) | 0; Ur(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function Or(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = Tr(c[e >> 2] | 0, c[f >> 2] | 0) | 0; Ur(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function Pr(b, d, e, f, g, h, i, j) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0; k = l; l = (l + 64) | 0; m = (k + 56) | 0; n = (k + 52) | 0; o = (k + 48) | 0; p = (k + 44) | 0; q = (k + 40) | 0; r = (k + 36) | 0; s = (k + 32) | 0; t = (k + 28) | 0; u = (k + 24) | 0; v = (k + 20) | 0; w = (k + 16) | 0; x = (k + 12) | 0; y = (k + 8) | 0; z = (k + 4) | 0; A = k; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = (c[n >> 2] | 0) + (c[e >> 2] | 0); c[v >> 2] = (c[e >> 2] | 0) + (c[(e + 4) >> 2] | 0); c[w >> 2] = (c[n >> 2] | 0) + (c[v >> 2] | 0); c[x >> 2] = (c[o >> 2] | 0) + -8; c[y >> 2] = (c[c[p >> 2] >> 2] | 0) + (c[e >> 2] | 0); c[z >> 2] = (c[u >> 2] | 0) + (0 - (c[(e + 8) >> 2] | 0)); if ((c[w >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) { c[m >> 2] = -70; B = c[m >> 2] | 0; l = k; return B | 0; } if ((c[y >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) { c[m >> 2] = -20; B = c[m >> 2] | 0; l = k; return B | 0; } if ((c[u >> 2] | 0) >>> 0 <= (c[x >> 2] | 0) >>> 0) { c[m >> 2] = -1; B = c[m >> 2] | 0; l = k; return B | 0; } if ((c[n >> 2] | 0) >>> 0 < (c[x >> 2] | 0) >>> 0) { Rr( c[n >> 2] | 0, c[c[p >> 2] >> 2] | 0, ((c[x >> 2] | 0) - (c[n >> 2] | 0)) | 0 ); q = c[p >> 2] | 0; c[q >> 2] = (c[q >> 2] | 0) + ((c[x >> 2] | 0) - (c[n >> 2] | 0)); c[n >> 2] = c[x >> 2]; } while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[u >> 2] | 0) >>> 0) break; x = c[p >> 2] | 0; q = c[x >> 2] | 0; c[x >> 2] = q + 1; x = a[q >> 0] | 0; q = c[n >> 2] | 0; c[n >> 2] = q + 1; a[q >> 0] = x; } do { if ( (c[(e + 8) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[r >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(e + 8) >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) - (c[s >> 2] | 0)) | 0) >>> 0 ) { c[m >> 2] = -20; B = c[m >> 2] | 0; l = k; return B | 0; } c[z >> 2] = (c[t >> 2] | 0) + (0 - ((c[r >> 2] | 0) - (c[z >> 2] | 0))); if ( (((c[z >> 2] | 0) + (c[(e + 4) >> 2] | 0)) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[A >> 2] = (c[t >> 2] | 0) - (c[z >> 2] | 0); nE(c[u >> 2] | 0, c[z >> 2] | 0, c[A >> 2] | 0) | 0; c[n >> 2] = (c[u >> 2] | 0) + (c[A >> 2] | 0); p = (e + 4) | 0; c[p >> 2] = (c[p >> 2] | 0) - (c[A >> 2] | 0); c[z >> 2] = c[r >> 2]; break; } nE(c[u >> 2] | 0, c[z >> 2] | 0, c[(e + 4) >> 2] | 0) | 0; c[m >> 2] = c[v >> 2]; B = c[m >> 2] | 0; l = k; return B | 0; } } while (0); while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; e = c[z >> 2] | 0; c[z >> 2] = e + 1; u = a[e >> 0] | 0; e = c[n >> 2] | 0; c[n >> 2] = e + 1; a[e >> 0] = u; } c[m >> 2] = c[v >> 2]; B = c[m >> 2] | 0; l = k; return B | 0; } function Qr(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function Rr(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { Qr(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function Sr(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; l = e; return; } function Tr(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( (((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> 1) >>> ((31 - (c[f >> 2] | 0)) & 31)) | 0 ); } function Ur(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ((c[e >> 2] | 0) + 4) | 0; c[b >> 2] = (c[b >> 2] | 0) + (c[f >> 2] | 0); l = d; return; } function Vr(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( ((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> ((32 - (c[f >> 2] | 0)) & 31)) | 0 ); } function Wr(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (Dr() | 0) != 0; f = c[e >> 2] | 0; if (a) { c[d >> 2] = hq(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } else { a = sq(f) | 0; c[d >> 2] = a; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function Xr(b, f, g, h, i, j, k) { b = b | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0; m = l; l = (l + 784) | 0; n = (m + 760) | 0; o = (m + 756) | 0; p = (m + 752) | 0; q = (m + 748) | 0; r = (m + 744) | 0; s = (m + 740) | 0; t = (m + 736) | 0; u = (m + 732) | 0; v = (m + 728) | 0; w = (m + 724) | 0; x = (m + 720) | 0; y = (m + 716) | 0; z = (m + 712) | 0; A = (m + 708) | 0; B = (m + 704) | 0; C = (m + 700) | 0; D = (m + 696) | 0; E = (m + 692) | 0; F = (m + 80) | 0; G = (m + 688) | 0; H = (m + 684) | 0; I = (m + 680) | 0; J = (m + 676) | 0; K = (m + 672) | 0; L = (m + 668) | 0; M = (m + 664) | 0; N = (m + 660) | 0; O = (m + 656) | 0; P = (m + 652) | 0; Q = (m + 648) | 0; R = (m + 644) | 0; S = (m + 640) | 0; T = (m + 636) | 0; U = (m + 632) | 0; V = (m + 628) | 0; W = (m + 624) | 0; X = (m + 64) | 0; Y = (m + 620) | 0; Z = (m + 616) | 0; _ = (m + 608) | 0; $ = (m + 604) | 0; aa = (m + 600) | 0; ba = (m + 596) | 0; ca = (m + 592) | 0; da = (m + 584) | 0; ea = (m + 580) | 0; fa = (m + 576) | 0; ga = (m + 572) | 0; ha = (m + 568) | 0; ia = (m + 560) | 0; ja = (m + 556) | 0; ka = (m + 552) | 0; la = (m + 548) | 0; ma = (m + 544) | 0; na = (m + 528) | 0; oa = (m + 524) | 0; pa = (m + 520) | 0; qa = (m + 516) | 0; ra = (m + 512) | 0; sa = (m + 508) | 0; ta = (m + 504) | 0; ua = (m + 500) | 0; va = (m + 496) | 0; wa = (m + 492) | 0; xa = (m + 488) | 0; ya = (m + 484) | 0; za = (m + 480) | 0; Aa = (m + 476) | 0; Ba = (m + 472) | 0; Ca = (m + 464) | 0; Da = (m + 460) | 0; Ea = (m + 456) | 0; Fa = (m + 452) | 0; Ga = (m + 448) | 0; Ha = (m + 440) | 0; Ia = (m + 436) | 0; Ja = (m + 432) | 0; Ka = (m + 428) | 0; La = (m + 424) | 0; Ma = (m + 416) | 0; Na = (m + 412) | 0; Oa = (m + 408) | 0; Pa = (m + 404) | 0; Qa = (m + 400) | 0; Ra = (m + 384) | 0; Sa = (m + 376) | 0; Ta = (m + 372) | 0; Ua = (m + 368) | 0; Va = (m + 364) | 0; Wa = (m + 360) | 0; Xa = (m + 356) | 0; Ya = (m + 352) | 0; Za = (m + 348) | 0; _a = (m + 344) | 0; $a = (m + 340) | 0; ab = (m + 336) | 0; bb = (m + 332) | 0; cb = (m + 328) | 0; db = (m + 324) | 0; eb = (m + 320) | 0; fb = (m + 316) | 0; gb = (m + 312) | 0; hb = (m + 308) | 0; ib = (m + 304) | 0; jb = (m + 300) | 0; kb = (m + 296) | 0; lb = (m + 292) | 0; mb = (m + 288) | 0; nb = (m + 284) | 0; ob = (m + 280) | 0; pb = (m + 276) | 0; qb = (m + 272) | 0; rb = (m + 268) | 0; sb = (m + 264) | 0; tb = (m + 260) | 0; ub = m; vb = (m + 256) | 0; wb = (m + 188) | 0; xb = (m + 184) | 0; yb = (m + 180) | 0; zb = (m + 176) | 0; Ab = (m + 160) | 0; Bb = (m + 144) | 0; Cb = (m + 136) | 0; Db = (m + 132) | 0; Eb = (m + 128) | 0; Fb = (m + 124) | 0; Gb = (m + 120) | 0; Hb = (m + 116) | 0; Ib = (m + 112) | 0; Jb = (m + 108) | 0; Kb = (m + 104) | 0; Lb = (m + 100) | 0; Mb = (m + 96) | 0; c[Gb >> 2] = b; c[Hb >> 2] = f; c[Ib >> 2] = g; c[Jb >> 2] = h; c[Kb >> 2] = i; c[Lb >> 2] = j; c[Mb >> 2] = k; k = c[Hb >> 2] | 0; Hb = c[Ib >> 2] | 0; Ib = c[Jb >> 2] | 0; Jb = c[Kb >> 2] | 0; Kb = c[Lb >> 2] | 0; Lb = c[Mb >> 2] | 0; c[db >> 2] = c[Gb >> 2]; c[eb >> 2] = k; c[fb >> 2] = Hb; c[gb >> 2] = Ib; c[hb >> 2] = Jb; c[ib >> 2] = Kb; c[jb >> 2] = Lb; c[kb >> 2] = c[gb >> 2]; c[lb >> 2] = (c[kb >> 2] | 0) + (c[hb >> 2] | 0); c[mb >> 2] = c[eb >> 2]; c[nb >> 2] = (c[mb >> 2] | 0) + (c[fb >> 2] | 0); c[ob >> 2] = c[mb >> 2]; c[pb >> 2] = c[((c[db >> 2] | 0) + 28916) >> 2]; c[qb >> 2] = (c[pb >> 2] | 0) + (c[((c[db >> 2] | 0) + 28932) >> 2] | 0); c[rb >> 2] = c[((c[db >> 2] | 0) + 28732) >> 2]; c[sb >> 2] = c[((c[db >> 2] | 0) + 28736) >> 2]; c[tb >> 2] = c[((c[db >> 2] | 0) + 28740) >> 2]; a: do { if (c[ib >> 2] | 0) { c[vb >> 2] = (c[ib >> 2] | 0) < 4 ? c[ib >> 2] | 0 : 4; c[((c[db >> 2] | 0) + 28812) >> 2] = 1; c[yb >> 2] = 0; while (1) { if ((c[yb >> 2] | 0) >>> 0 >= 3) break; c[(wb + 44 + (c[yb >> 2] << 2)) >> 2] = c[ ((c[db >> 2] | 0) + 16 + 28700 + (c[yb >> 2] << 2)) >> 2 ]; c[yb >> 2] = (c[yb >> 2] | 0) + 1; } c[(wb + 56) >> 2] = c[rb >> 2]; c[(wb + 64) >> 2] = (c[ob >> 2] | 0) - (c[rb >> 2] | 0); c[(wb + 60) >> 2] = c[tb >> 2]; c[zb >> 2] = Kr( wb, c[kb >> 2] | 0, ((c[lb >> 2] | 0) - (c[kb >> 2] | 0)) | 0 ) | 0; if ($q(c[zb >> 2] | 0) | 0) { c[cb >> 2] = -20; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } Lr((wb + 20) | 0, wb, c[c[db >> 2] >> 2] | 0); Lr((wb + 28) | 0, wb, c[((c[db >> 2] | 0) + 8) >> 2] | 0); Lr((wb + 36) | 0, wb, c[((c[db >> 2] | 0) + 4) >> 2] | 0); c[xb >> 2] = 0; while (1) { if ((Mr(wb) | 0) >>> 0 <= 2) Ob = (c[xb >> 2] | 0) < (c[vb >> 2] | 0); else Ob = 0; Pb = c[xb >> 2] | 0; if (!Ob) break; fb = (ub + (Pb << 4)) | 0; eb = c[jb >> 2] | 0; c[Pa >> 2] = wb; c[Qa >> 2] = eb; c[Sa >> 2] = d[ ((c[((c[Pa >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 20) >> 2] << 3) + 2) >> 0 ]; c[Ta >> 2] = d[ ((c[((c[Pa >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 36) >> 2] << 3) + 2) >> 0 ]; c[Ua >> 2] = d[ ((c[((c[Pa >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 28) >> 2] << 3) + 2) >> 0 ]; c[Va >> 2] = (c[Sa >> 2] | 0) + (c[Ta >> 2] | 0) + (c[Ua >> 2] | 0); c[Wa >> 2] = c[ ((c[((c[Pa >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 20) >> 2] << 3) + 4) >> 2 ]; c[Xa >> 2] = c[ ((c[((c[Pa >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 36) >> 2] << 3) + 4) >> 2 ]; c[Ya >> 2] = c[ ((c[((c[Pa >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 28) >> 2] << 3) + 4) >> 2 ]; do { if (c[Ua >> 2] | 0) { eb = (Dr() | 0) != 0; if (!(eb & ((c[Qa >> 2] | 0) != 0))) { eb = c[Ya >> 2] | 0; c[Za >> 2] = eb + (Nr(c[Pa >> 2] | 0, c[Ua >> 2] | 0) | 0); if (!(Dr() | 0)) break; Mr(c[Pa >> 2] | 0) | 0; break; } c[_a >> 2] = (c[Ua >> 2] | 0) - ((c[Ua >> 2] | 0) >>> 0 < 24 ? c[Ua >> 2] | 0 : 24); eb = c[Ya >> 2] | 0; hb = Nr( c[Pa >> 2] | 0, ((c[Ua >> 2] | 0) - (c[_a >> 2] | 0)) | 0 ) | 0; c[Za >> 2] = eb + (hb << c[_a >> 2]); hb = (Dr() | 0) != 0; if (hb | ((c[_a >> 2] | 0) != 0)) Mr(c[Pa >> 2] | 0) | 0; if (c[_a >> 2] | 0) { hb = Nr(c[Pa >> 2] | 0, c[_a >> 2] | 0) | 0; c[Za >> 2] = (c[Za >> 2] | 0) + hb; } } else c[Za >> 2] = 0; } while (0); do { if ((c[Ua >> 2] | 0) >>> 0 <= 1) { c[Za >> 2] = (c[Za >> 2] | 0) + (((c[Wa >> 2] | 0) == 0) & 1); if (!(c[Za >> 2] | 0)) { c[Za >> 2] = c[((c[Pa >> 2] | 0) + 44) >> 2]; break; } hb = ((c[Pa >> 2] | 0) + 44) | 0; if ((c[Za >> 2] | 0) == 3) Qb = ((c[hb >> 2] | 0) - 1) | 0; else Qb = c[(hb + (c[Za >> 2] << 2)) >> 2] | 0; c[$a >> 2] = Qb; c[$a >> 2] = (c[$a >> 2] | 0) + ((((c[$a >> 2] | 0) != 0) ^ 1) & 1); if ((c[Za >> 2] | 0) != 1) c[((c[Pa >> 2] | 0) + 44 + 8) >> 2] = c[((c[Pa >> 2] | 0) + 44 + 4) >> 2]; c[((c[Pa >> 2] | 0) + 44 + 4) >> 2] = c[((c[Pa >> 2] | 0) + 44) >> 2]; hb = c[$a >> 2] | 0; c[Za >> 2] = hb; c[((c[Pa >> 2] | 0) + 44) >> 2] = hb; } else { c[((c[Pa >> 2] | 0) + 44 + 8) >> 2] = c[((c[Pa >> 2] | 0) + 44 + 4) >> 2]; c[((c[Pa >> 2] | 0) + 44 + 4) >> 2] = c[((c[Pa >> 2] | 0) + 44) >> 2]; c[((c[Pa >> 2] | 0) + 44) >> 2] = c[Za >> 2]; } } while (0); c[(Ra + 8) >> 2] = c[Za >> 2]; hb = c[Xa >> 2] | 0; if ((c[Ta >> 2] | 0) >>> 0 > 0) Rb = Nr(c[Pa >> 2] | 0, c[Ta >> 2] | 0) | 0; else Rb = 0; c[(Ra + 4) >> 2] = hb + Rb; if ( Dr() | 0 ? (((c[Ta >> 2] | 0) + (c[Sa >> 2] | 0)) | 0) >>> 0 >= 20 : 0 ) Mr(c[Pa >> 2] | 0) | 0; hb = (Fr() | 0) != 0; if (hb & ((c[Va >> 2] | 0) >>> 0 >= 31)) Mr(c[Pa >> 2] | 0) | 0; hb = c[Wa >> 2] | 0; if ((c[Sa >> 2] | 0) >>> 0 > 0) Sb = Nr(c[Pa >> 2] | 0, c[Sa >> 2] | 0) | 0; else Sb = 0; c[Ra >> 2] = hb + Sb; if (Dr() | 0) Mr(c[Pa >> 2] | 0) | 0; c[ab >> 2] = (c[((c[Pa >> 2] | 0) + 64) >> 2] | 0) + (c[Ra >> 2] | 0); hb = c[Pa >> 2] | 0; if ( (c[(Ra + 8) >> 2] | 0) >>> 0 > (c[ab >> 2] | 0) >>> 0 ) Tb = c[(hb + 60) >> 2] | 0; else Tb = c[(hb + 56) >> 2] | 0; c[bb >> 2] = Tb; c[(Ra + 12) >> 2] = (c[bb >> 2] | 0) + (c[ab >> 2] | 0) + (0 - (c[(Ra + 8) >> 2] | 0)); c[((c[Pa >> 2] | 0) + 64) >> 2] = (c[ab >> 2] | 0) + (c[(Ra + 4) >> 2] | 0); hb = c[Pa >> 2] | 0; c[Ka >> 2] = (c[Pa >> 2] | 0) + 20; c[La >> 2] = hb; hb = ((c[((c[Ka >> 2] | 0) + 4) >> 2] | 0) + (c[c[Ka >> 2] >> 2] << 3)) | 0; c[Ma >> 2] = c[hb >> 2]; c[(Ma + 4) >> 2] = c[(hb + 4) >> 2]; c[Na >> 2] = d[(Ma + 3) >> 0]; c[Oa >> 2] = Or(c[La >> 2] | 0, c[Na >> 2] | 0) | 0; c[c[Ka >> 2] >> 2] = (e[Ma >> 1] | 0) + (c[Oa >> 2] | 0); hb = c[Pa >> 2] | 0; c[Fa >> 2] = (c[Pa >> 2] | 0) + 36; c[Ga >> 2] = hb; hb = ((c[((c[Fa >> 2] | 0) + 4) >> 2] | 0) + (c[c[Fa >> 2] >> 2] << 3)) | 0; c[Ha >> 2] = c[hb >> 2]; c[(Ha + 4) >> 2] = c[(hb + 4) >> 2]; c[Ia >> 2] = d[(Ha + 3) >> 0]; c[Ja >> 2] = Or(c[Ga >> 2] | 0, c[Ia >> 2] | 0) | 0; c[c[Fa >> 2] >> 2] = (e[Ha >> 1] | 0) + (c[Ja >> 2] | 0); if (Dr() | 0) Mr(c[Pa >> 2] | 0) | 0; hb = c[Pa >> 2] | 0; c[Aa >> 2] = (c[Pa >> 2] | 0) + 28; c[Ba >> 2] = hb; hb = ((c[((c[Aa >> 2] | 0) + 4) >> 2] | 0) + (c[c[Aa >> 2] >> 2] << 3)) | 0; c[Ca >> 2] = c[hb >> 2]; c[(Ca + 4) >> 2] = c[(hb + 4) >> 2]; c[Da >> 2] = d[(Ca + 3) >> 0]; c[Ea >> 2] = Or(c[Ba >> 2] | 0, c[Da >> 2] | 0) | 0; c[c[Aa >> 2] >> 2] = (e[Ca >> 1] | 0) + (c[Ea >> 2] | 0); c[Ab >> 2] = c[Ra >> 2]; c[(Ab + 4) >> 2] = c[(Ra + 4) >> 2]; c[(Ab + 8) >> 2] = c[(Ra + 8) >> 2]; c[(Ab + 12) >> 2] = c[(Ra + 12) >> 2]; c[fb >> 2] = c[Ab >> 2]; c[(fb + 4) >> 2] = c[(Ab + 4) >> 2]; c[(fb + 8) >> 2] = c[(Ab + 8) >> 2]; c[(fb + 12) >> 2] = c[(Ab + 12) >> 2]; c[xb >> 2] = (c[xb >> 2] | 0) + 1; } if ((Pb | 0) < (c[vb >> 2] | 0)) { c[cb >> 2] = -20; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } while (1) { if ((Mr(wb) | 0) >>> 0 > 2) break; if ((c[xb >> 2] | 0) >= (c[ib >> 2] | 0)) break; hb = c[jb >> 2] | 0; c[la >> 2] = wb; c[ma >> 2] = hb; c[oa >> 2] = d[ ((c[((c[la >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 20) >> 2] << 3) + 2) >> 0 ]; c[pa >> 2] = d[ ((c[((c[la >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 36) >> 2] << 3) + 2) >> 0 ]; c[qa >> 2] = d[ ((c[((c[la >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 28) >> 2] << 3) + 2) >> 0 ]; c[ra >> 2] = (c[oa >> 2] | 0) + (c[pa >> 2] | 0) + (c[qa >> 2] | 0); c[sa >> 2] = c[ ((c[((c[la >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 20) >> 2] << 3) + 4) >> 2 ]; c[ta >> 2] = c[ ((c[((c[la >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 36) >> 2] << 3) + 4) >> 2 ]; c[ua >> 2] = c[ ((c[((c[la >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 28) >> 2] << 3) + 4) >> 2 ]; do { if (c[qa >> 2] | 0) { hb = (Dr() | 0) != 0; if (!(hb & ((c[ma >> 2] | 0) != 0))) { hb = c[ua >> 2] | 0; c[va >> 2] = hb + (Nr(c[la >> 2] | 0, c[qa >> 2] | 0) | 0); if (!(Dr() | 0)) break; Mr(c[la >> 2] | 0) | 0; break; } c[wa >> 2] = (c[qa >> 2] | 0) - ((c[qa >> 2] | 0) >>> 0 < 24 ? c[qa >> 2] | 0 : 24); hb = c[ua >> 2] | 0; eb = Nr( c[la >> 2] | 0, ((c[qa >> 2] | 0) - (c[wa >> 2] | 0)) | 0 ) | 0; c[va >> 2] = hb + (eb << c[wa >> 2]); eb = (Dr() | 0) != 0; if (eb | ((c[wa >> 2] | 0) != 0)) Mr(c[la >> 2] | 0) | 0; if (c[wa >> 2] | 0) { eb = Nr(c[la >> 2] | 0, c[wa >> 2] | 0) | 0; c[va >> 2] = (c[va >> 2] | 0) + eb; } } else c[va >> 2] = 0; } while (0); do { if ((c[qa >> 2] | 0) >>> 0 <= 1) { c[va >> 2] = (c[va >> 2] | 0) + (((c[sa >> 2] | 0) == 0) & 1); if (!(c[va >> 2] | 0)) { c[va >> 2] = c[((c[la >> 2] | 0) + 44) >> 2]; break; } fb = ((c[la >> 2] | 0) + 44) | 0; if ((c[va >> 2] | 0) == 3) Ub = ((c[fb >> 2] | 0) - 1) | 0; else Ub = c[(fb + (c[va >> 2] << 2)) >> 2] | 0; c[xa >> 2] = Ub; c[xa >> 2] = (c[xa >> 2] | 0) + ((((c[xa >> 2] | 0) != 0) ^ 1) & 1); if ((c[va >> 2] | 0) != 1) c[((c[la >> 2] | 0) + 44 + 8) >> 2] = c[((c[la >> 2] | 0) + 44 + 4) >> 2]; c[((c[la >> 2] | 0) + 44 + 4) >> 2] = c[((c[la >> 2] | 0) + 44) >> 2]; fb = c[xa >> 2] | 0; c[va >> 2] = fb; c[((c[la >> 2] | 0) + 44) >> 2] = fb; } else { c[((c[la >> 2] | 0) + 44 + 8) >> 2] = c[((c[la >> 2] | 0) + 44 + 4) >> 2]; c[((c[la >> 2] | 0) + 44 + 4) >> 2] = c[((c[la >> 2] | 0) + 44) >> 2]; c[((c[la >> 2] | 0) + 44) >> 2] = c[va >> 2]; } } while (0); c[(na + 8) >> 2] = c[va >> 2]; fb = c[ta >> 2] | 0; if ((c[pa >> 2] | 0) >>> 0 > 0) Vb = Nr(c[la >> 2] | 0, c[pa >> 2] | 0) | 0; else Vb = 0; c[(na + 4) >> 2] = fb + Vb; if ( Dr() | 0 ? (((c[pa >> 2] | 0) + (c[oa >> 2] | 0)) | 0) >>> 0 >= 20 : 0 ) Mr(c[la >> 2] | 0) | 0; fb = (Fr() | 0) != 0; if (fb & ((c[ra >> 2] | 0) >>> 0 >= 31)) Mr(c[la >> 2] | 0) | 0; fb = c[sa >> 2] | 0; if ((c[oa >> 2] | 0) >>> 0 > 0) Wb = Nr(c[la >> 2] | 0, c[oa >> 2] | 0) | 0; else Wb = 0; c[na >> 2] = fb + Wb; if (Dr() | 0) Mr(c[la >> 2] | 0) | 0; c[ya >> 2] = (c[((c[la >> 2] | 0) + 64) >> 2] | 0) + (c[na >> 2] | 0); fb = c[la >> 2] | 0; if ( (c[(na + 8) >> 2] | 0) >>> 0 > (c[ya >> 2] | 0) >>> 0 ) Xb = c[(fb + 60) >> 2] | 0; else Xb = c[(fb + 56) >> 2] | 0; c[za >> 2] = Xb; c[(na + 12) >> 2] = (c[za >> 2] | 0) + (c[ya >> 2] | 0) + (0 - (c[(na + 8) >> 2] | 0)); c[((c[la >> 2] | 0) + 64) >> 2] = (c[ya >> 2] | 0) + (c[(na + 4) >> 2] | 0); fb = c[la >> 2] | 0; c[ga >> 2] = (c[la >> 2] | 0) + 20; c[ha >> 2] = fb; fb = ((c[((c[ga >> 2] | 0) + 4) >> 2] | 0) + (c[c[ga >> 2] >> 2] << 3)) | 0; c[ia >> 2] = c[fb >> 2]; c[(ia + 4) >> 2] = c[(fb + 4) >> 2]; c[ja >> 2] = d[(ia + 3) >> 0]; c[ka >> 2] = Or(c[ha >> 2] | 0, c[ja >> 2] | 0) | 0; c[c[ga >> 2] >> 2] = (e[ia >> 1] | 0) + (c[ka >> 2] | 0); fb = c[la >> 2] | 0; c[ba >> 2] = (c[la >> 2] | 0) + 36; c[ca >> 2] = fb; fb = ((c[((c[ba >> 2] | 0) + 4) >> 2] | 0) + (c[c[ba >> 2] >> 2] << 3)) | 0; c[da >> 2] = c[fb >> 2]; c[(da + 4) >> 2] = c[(fb + 4) >> 2]; c[ea >> 2] = d[(da + 3) >> 0]; c[fa >> 2] = Or(c[ca >> 2] | 0, c[ea >> 2] | 0) | 0; c[c[ba >> 2] >> 2] = (e[da >> 1] | 0) + (c[fa >> 2] | 0); if (Dr() | 0) Mr(c[la >> 2] | 0) | 0; fb = c[la >> 2] | 0; c[Y >> 2] = (c[la >> 2] | 0) + 28; c[Z >> 2] = fb; fb = ((c[((c[Y >> 2] | 0) + 4) >> 2] | 0) + (c[c[Y >> 2] >> 2] << 3)) | 0; c[_ >> 2] = c[fb >> 2]; c[(_ + 4) >> 2] = c[(fb + 4) >> 2]; c[$ >> 2] = d[(_ + 3) >> 0]; c[aa >> 2] = Or(c[Z >> 2] | 0, c[$ >> 2] | 0) | 0; c[c[Y >> 2] >> 2] = (e[_ >> 1] | 0) + (c[aa >> 2] | 0); c[Bb >> 2] = c[na >> 2]; c[(Bb + 4) >> 2] = c[(na + 4) >> 2]; c[(Bb + 8) >> 2] = c[(na + 8) >> 2]; c[(Bb + 12) >> 2] = c[(na + 12) >> 2]; fb = c[ob >> 2] | 0; eb = c[nb >> 2] | 0; hb = c[qb >> 2] | 0; gb = c[rb >> 2] | 0; Lb = c[sb >> 2] | 0; Kb = c[tb >> 2] | 0; Yb = X; Zb = (ub + ((((c[xb >> 2] | 0) - 4) & 3) << 4)) | 0; _b = (Yb + 16) | 0; do { a[Yb >> 0] = a[Zb >> 0] | 0; Yb = (Yb + 1) | 0; Zb = (Zb + 1) | 0; } while ((Yb | 0) < (_b | 0)); c[H >> 2] = fb; c[I >> 2] = eb; c[J >> 2] = pb; c[K >> 2] = hb; c[L >> 2] = gb; c[M >> 2] = Lb; c[N >> 2] = Kb; c[O >> 2] = (c[H >> 2] | 0) + (c[X >> 2] | 0); c[P >> 2] = (c[X >> 2] | 0) + (c[(X + 4) >> 2] | 0); c[Q >> 2] = (c[H >> 2] | 0) + (c[P >> 2] | 0); c[R >> 2] = (c[I >> 2] | 0) + -8; c[S >> 2] = (c[c[J >> 2] >> 2] | 0) + (c[X >> 2] | 0); c[T >> 2] = c[(X + 12) >> 2]; b: do { if ((c[Q >> 2] | 0) >>> 0 > (c[I >> 2] | 0) >>> 0) c[G >> 2] = -70; else { if ((c[S >> 2] | 0) >>> 0 > (c[K >> 2] | 0) >>> 0) { c[G >> 2] = -20; break; } Jb = c[H >> 2] | 0; if ((c[O >> 2] | 0) >>> 0 > (c[R >> 2] | 0) >>> 0) { Ib = c[I >> 2] | 0; Hb = c[J >> 2] | 0; k = c[K >> 2] | 0; Gb = c[L >> 2] | 0; Mb = c[M >> 2] | 0; j = c[N >> 2] | 0; c[n >> 2] = c[X >> 2]; c[(n + 4) >> 2] = c[(X + 4) >> 2]; c[(n + 8) >> 2] = c[(X + 8) >> 2]; c[(n + 12) >> 2] = c[(X + 12) >> 2]; c[G >> 2] = Pr(Jb, Ib, n, Hb, k, Gb, Mb, j) | 0; break; } Qr(Jb, c[c[J >> 2] >> 2] | 0); if ((c[X >> 2] | 0) >>> 0 > 8) Rr( ((c[H >> 2] | 0) + 8) | 0, ((c[c[J >> 2] >> 2] | 0) + 8) | 0, ((c[X >> 2] | 0) - 8) | 0 ); c[H >> 2] = c[O >> 2]; c[c[J >> 2] >> 2] = c[S >> 2]; do { if ( (c[(X + 8) >> 2] | 0) >>> 0 > (((c[O >> 2] | 0) - (c[L >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(X + 8) >> 2] | 0) >>> 0 > (((c[O >> 2] | 0) - (c[M >> 2] | 0)) | 0) >>> 0 ) { c[G >> 2] = -20; break b; } if ( (((c[T >> 2] | 0) + (c[(X + 4) >> 2] | 0)) | 0) >>> 0 <= (c[N >> 2] | 0) >>> 0 ) { nE( c[O >> 2] | 0, c[T >> 2] | 0, c[(X + 4) >> 2] | 0 ) | 0; c[G >> 2] = c[P >> 2]; break b; } c[U >> 2] = (c[N >> 2] | 0) - (c[T >> 2] | 0); nE( c[O >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[H >> 2] = (c[O >> 2] | 0) + (c[U >> 2] | 0); Jb = (X + 4) | 0; c[Jb >> 2] = (c[Jb >> 2] | 0) - (c[U >> 2] | 0); c[T >> 2] = c[L >> 2]; if ( (c[H >> 2] | 0) >>> 0 <= (c[R >> 2] | 0) >>> 0 ? (c[(X + 4) >> 2] | 0) >>> 0 >= 3 : 0 ) break; c[V >> 2] = 0; while (1) { if ( (c[V >> 2] | 0) >>> 0 >= (c[(X + 4) >> 2] | 0) >>> 0 ) break; a[((c[H >> 2] | 0) + (c[V >> 2] | 0)) >> 0] = a[ ((c[T >> 2] | 0) + (c[V >> 2] | 0)) >> 0 ] | 0; c[V >> 2] = (c[V >> 2] | 0) + 1; } c[G >> 2] = c[P >> 2]; break b; } } while (0); if ((c[(X + 8) >> 2] | 0) >>> 0 < 8) { c[W >> 2] = c[(6816 + (c[(X + 8) >> 2] << 2)) >> 2]; a[c[H >> 2] >> 0] = a[c[T >> 2] >> 0] | 0; a[((c[H >> 2] | 0) + 1) >> 0] = a[((c[T >> 2] | 0) + 1) >> 0] | 0; a[((c[H >> 2] | 0) + 2) >> 0] = a[((c[T >> 2] | 0) + 2) >> 0] | 0; a[((c[H >> 2] | 0) + 3) >> 0] = a[((c[T >> 2] | 0) + 3) >> 0] | 0; c[T >> 2] = (c[T >> 2] | 0) + (c[(6848 + (c[(X + 8) >> 2] << 2)) >> 2] | 0); Sr(((c[H >> 2] | 0) + 4) | 0, c[T >> 2] | 0); c[T >> 2] = (c[T >> 2] | 0) + (0 - (c[W >> 2] | 0)); } else Qr(c[H >> 2] | 0, c[T >> 2] | 0); c[H >> 2] = (c[H >> 2] | 0) + 8; c[T >> 2] = (c[T >> 2] | 0) + 8; Jb = c[H >> 2] | 0; c: do { if ( (c[Q >> 2] | 0) >>> 0 > (((c[I >> 2] | 0) + -13) | 0) >>> 0 ) { if (Jb >>> 0 < (c[R >> 2] | 0) >>> 0) { Rr( c[H >> 2] | 0, c[T >> 2] | 0, ((c[R >> 2] | 0) - (c[H >> 2] | 0)) | 0 ); c[T >> 2] = (c[T >> 2] | 0) + ((c[R >> 2] | 0) - (c[H >> 2] | 0)); c[H >> 2] = c[R >> 2]; } while (1) { if ( (c[H >> 2] | 0) >>> 0 >= (c[Q >> 2] | 0) >>> 0 ) break c; j = c[T >> 2] | 0; c[T >> 2] = j + 1; Mb = a[j >> 0] | 0; j = c[H >> 2] | 0; c[H >> 2] = j + 1; a[j >> 0] = Mb; } } else Rr( Jb, c[T >> 2] | 0, ((c[(X + 4) >> 2] | 0) - 8) | 0 ); } while (0); c[G >> 2] = c[P >> 2]; } } while (0); c[Cb >> 2] = c[G >> 2]; if ($q(c[Cb >> 2] | 0) | 0) { $b = 118; break; } Kb = (ub + ((c[xb >> 2] & 3) << 4)) | 0; c[Kb >> 2] = c[Bb >> 2]; c[(Kb + 4) >> 2] = c[(Bb + 4) >> 2]; c[(Kb + 8) >> 2] = c[(Bb + 8) >> 2]; c[(Kb + 12) >> 2] = c[(Bb + 12) >> 2]; c[ob >> 2] = (c[ob >> 2] | 0) + (c[Cb >> 2] | 0); c[xb >> 2] = (c[xb >> 2] | 0) + 1; } if (($b | 0) == 118) { c[cb >> 2] = c[Cb >> 2]; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } if ((c[xb >> 2] | 0) < (c[ib >> 2] | 0)) { c[cb >> 2] = -20; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } c[xb >> 2] = (c[xb >> 2] | 0) - (c[vb >> 2] | 0); while (1) { if ((c[xb >> 2] | 0) >= (c[ib >> 2] | 0)) break; Kb = c[ob >> 2] | 0; Lb = c[nb >> 2] | 0; gb = c[qb >> 2] | 0; hb = c[rb >> 2] | 0; eb = c[sb >> 2] | 0; fb = c[tb >> 2] | 0; Yb = F; Zb = (ub + ((c[xb >> 2] & 3) << 4)) | 0; _b = (Yb + 16) | 0; do { a[Yb >> 0] = a[Zb >> 0] | 0; Yb = (Yb + 1) | 0; Zb = (Zb + 1) | 0; } while ((Yb | 0) < (_b | 0)); c[p >> 2] = Kb; c[q >> 2] = Lb; c[r >> 2] = pb; c[s >> 2] = gb; c[t >> 2] = hb; c[u >> 2] = eb; c[v >> 2] = fb; c[w >> 2] = (c[p >> 2] | 0) + (c[F >> 2] | 0); c[x >> 2] = (c[F >> 2] | 0) + (c[(F + 4) >> 2] | 0); c[y >> 2] = (c[p >> 2] | 0) + (c[x >> 2] | 0); c[z >> 2] = (c[q >> 2] | 0) + -8; c[A >> 2] = (c[c[r >> 2] >> 2] | 0) + (c[F >> 2] | 0); c[B >> 2] = c[(F + 12) >> 2]; d: do { if ((c[y >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) c[o >> 2] = -70; else { if ((c[A >> 2] | 0) >>> 0 > (c[s >> 2] | 0) >>> 0) { c[o >> 2] = -20; break; } Jb = c[p >> 2] | 0; if ((c[w >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0) { Mb = c[q >> 2] | 0; j = c[r >> 2] | 0; Gb = c[s >> 2] | 0; k = c[t >> 2] | 0; Hb = c[u >> 2] | 0; Ib = c[v >> 2] | 0; c[n >> 2] = c[F >> 2]; c[(n + 4) >> 2] = c[(F + 4) >> 2]; c[(n + 8) >> 2] = c[(F + 8) >> 2]; c[(n + 12) >> 2] = c[(F + 12) >> 2]; c[o >> 2] = Pr(Jb, Mb, n, j, Gb, k, Hb, Ib) | 0; break; } Qr(Jb, c[c[r >> 2] >> 2] | 0); if ((c[F >> 2] | 0) >>> 0 > 8) Rr( ((c[p >> 2] | 0) + 8) | 0, ((c[c[r >> 2] >> 2] | 0) + 8) | 0, ((c[F >> 2] | 0) - 8) | 0 ); c[p >> 2] = c[w >> 2]; c[c[r >> 2] >> 2] = c[A >> 2]; do { if ( (c[(F + 8) >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[t >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(F + 8) >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[u >> 2] | 0)) | 0) >>> 0 ) { c[o >> 2] = -20; break d; } if ( (((c[B >> 2] | 0) + (c[(F + 4) >> 2] | 0)) | 0) >>> 0 <= (c[v >> 2] | 0) >>> 0 ) { nE( c[w >> 2] | 0, c[B >> 2] | 0, c[(F + 4) >> 2] | 0 ) | 0; c[o >> 2] = c[x >> 2]; break d; } c[C >> 2] = (c[v >> 2] | 0) - (c[B >> 2] | 0); nE( c[w >> 2] | 0, c[B >> 2] | 0, c[C >> 2] | 0 ) | 0; c[p >> 2] = (c[w >> 2] | 0) + (c[C >> 2] | 0); Jb = (F + 4) | 0; c[Jb >> 2] = (c[Jb >> 2] | 0) - (c[C >> 2] | 0); c[B >> 2] = c[t >> 2]; if ( (c[p >> 2] | 0) >>> 0 <= (c[z >> 2] | 0) >>> 0 ? (c[(F + 4) >> 2] | 0) >>> 0 >= 3 : 0 ) break; c[D >> 2] = 0; while (1) { if ( (c[D >> 2] | 0) >>> 0 >= (c[(F + 4) >> 2] | 0) >>> 0 ) break; a[((c[p >> 2] | 0) + (c[D >> 2] | 0)) >> 0] = a[ ((c[B >> 2] | 0) + (c[D >> 2] | 0)) >> 0 ] | 0; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[o >> 2] = c[x >> 2]; break d; } } while (0); if ((c[(F + 8) >> 2] | 0) >>> 0 < 8) { c[E >> 2] = c[(6816 + (c[(F + 8) >> 2] << 2)) >> 2]; a[c[p >> 2] >> 0] = a[c[B >> 2] >> 0] | 0; a[((c[p >> 2] | 0) + 1) >> 0] = a[((c[B >> 2] | 0) + 1) >> 0] | 0; a[((c[p >> 2] | 0) + 2) >> 0] = a[((c[B >> 2] | 0) + 2) >> 0] | 0; a[((c[p >> 2] | 0) + 3) >> 0] = a[((c[B >> 2] | 0) + 3) >> 0] | 0; c[B >> 2] = (c[B >> 2] | 0) + (c[(6848 + (c[(F + 8) >> 2] << 2)) >> 2] | 0); Sr(((c[p >> 2] | 0) + 4) | 0, c[B >> 2] | 0); c[B >> 2] = (c[B >> 2] | 0) + (0 - (c[E >> 2] | 0)); } else Qr(c[p >> 2] | 0, c[B >> 2] | 0); c[p >> 2] = (c[p >> 2] | 0) + 8; c[B >> 2] = (c[B >> 2] | 0) + 8; Jb = c[p >> 2] | 0; e: do { if ( (c[y >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -13) | 0) >>> 0 ) { if (Jb >>> 0 < (c[z >> 2] | 0) >>> 0) { Rr( c[p >> 2] | 0, c[B >> 2] | 0, ((c[z >> 2] | 0) - (c[p >> 2] | 0)) | 0 ); c[B >> 2] = (c[B >> 2] | 0) + ((c[z >> 2] | 0) - (c[p >> 2] | 0)); c[p >> 2] = c[z >> 2]; } while (1) { if ( (c[p >> 2] | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0 ) break e; Ib = c[B >> 2] | 0; c[B >> 2] = Ib + 1; Hb = a[Ib >> 0] | 0; Ib = c[p >> 2] | 0; c[p >> 2] = Ib + 1; a[Ib >> 0] = Hb; } } else Rr( Jb, c[B >> 2] | 0, ((c[(F + 4) >> 2] | 0) - 8) | 0 ); } while (0); c[o >> 2] = c[x >> 2]; } } while (0); c[Db >> 2] = c[o >> 2]; fb = ($q(c[Db >> 2] | 0) | 0) != 0; ac = c[Db >> 2] | 0; if (fb) { $b = 155; break; } c[ob >> 2] = (c[ob >> 2] | 0) + ac; c[xb >> 2] = (c[xb >> 2] | 0) + 1; } if (($b | 0) == 155) { c[cb >> 2] = ac; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } c[Eb >> 2] = 0; while (1) { if ((c[Eb >> 2] | 0) >>> 0 >= 3) break a; c[ ((c[db >> 2] | 0) + 16 + 28700 + (c[Eb >> 2] << 2)) >> 2 ] = c[(wb + 44 + (c[Eb >> 2] << 2)) >> 2]; c[Eb >> 2] = (c[Eb >> 2] | 0) + 1; } } } while (0); c[Fb >> 2] = (c[qb >> 2] | 0) - (c[pb >> 2] | 0); if ( (c[Fb >> 2] | 0) >>> 0 > (((c[nb >> 2] | 0) - (c[ob >> 2] | 0)) | 0) >>> 0 ) { c[cb >> 2] = -70; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } else { mE(c[ob >> 2] | 0, c[pb >> 2] | 0, c[Fb >> 2] | 0) | 0; c[ob >> 2] = (c[ob >> 2] | 0) + (c[Fb >> 2] | 0); c[cb >> 2] = (c[ob >> 2] | 0) - (c[mb >> 2] | 0); Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } return 0; } function Yr(b, f, g, h, i, j, k) { b = b | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0; m = l; l = (l + 784) | 0; n = (m + 760) | 0; o = (m + 756) | 0; p = (m + 752) | 0; q = (m + 748) | 0; r = (m + 744) | 0; s = (m + 740) | 0; t = (m + 736) | 0; u = (m + 732) | 0; v = (m + 728) | 0; w = (m + 724) | 0; x = (m + 720) | 0; y = (m + 716) | 0; z = (m + 712) | 0; A = (m + 708) | 0; B = (m + 704) | 0; C = (m + 700) | 0; D = (m + 696) | 0; E = (m + 692) | 0; F = (m + 80) | 0; G = (m + 688) | 0; H = (m + 684) | 0; I = (m + 680) | 0; J = (m + 676) | 0; K = (m + 672) | 0; L = (m + 668) | 0; M = (m + 664) | 0; N = (m + 660) | 0; O = (m + 656) | 0; P = (m + 652) | 0; Q = (m + 648) | 0; R = (m + 644) | 0; S = (m + 640) | 0; T = (m + 636) | 0; U = (m + 632) | 0; V = (m + 628) | 0; W = (m + 624) | 0; X = (m + 64) | 0; Y = (m + 620) | 0; Z = (m + 616) | 0; _ = (m + 608) | 0; $ = (m + 604) | 0; aa = (m + 600) | 0; ba = (m + 596) | 0; ca = (m + 592) | 0; da = (m + 584) | 0; ea = (m + 580) | 0; fa = (m + 576) | 0; ga = (m + 572) | 0; ha = (m + 568) | 0; ia = (m + 560) | 0; ja = (m + 556) | 0; ka = (m + 552) | 0; la = (m + 548) | 0; ma = (m + 544) | 0; na = (m + 528) | 0; oa = (m + 524) | 0; pa = (m + 520) | 0; qa = (m + 516) | 0; ra = (m + 512) | 0; sa = (m + 508) | 0; ta = (m + 504) | 0; ua = (m + 500) | 0; va = (m + 496) | 0; wa = (m + 492) | 0; xa = (m + 488) | 0; ya = (m + 484) | 0; za = (m + 480) | 0; Aa = (m + 476) | 0; Ba = (m + 472) | 0; Ca = (m + 464) | 0; Da = (m + 460) | 0; Ea = (m + 456) | 0; Fa = (m + 452) | 0; Ga = (m + 448) | 0; Ha = (m + 440) | 0; Ia = (m + 436) | 0; Ja = (m + 432) | 0; Ka = (m + 428) | 0; La = (m + 424) | 0; Ma = (m + 416) | 0; Na = (m + 412) | 0; Oa = (m + 408) | 0; Pa = (m + 404) | 0; Qa = (m + 400) | 0; Ra = (m + 384) | 0; Sa = (m + 376) | 0; Ta = (m + 372) | 0; Ua = (m + 368) | 0; Va = (m + 364) | 0; Wa = (m + 360) | 0; Xa = (m + 356) | 0; Ya = (m + 352) | 0; Za = (m + 348) | 0; _a = (m + 344) | 0; $a = (m + 340) | 0; ab = (m + 336) | 0; bb = (m + 332) | 0; cb = (m + 328) | 0; db = (m + 324) | 0; eb = (m + 320) | 0; fb = (m + 316) | 0; gb = (m + 312) | 0; hb = (m + 308) | 0; ib = (m + 304) | 0; jb = (m + 300) | 0; kb = (m + 296) | 0; lb = (m + 292) | 0; mb = (m + 288) | 0; nb = (m + 284) | 0; ob = (m + 280) | 0; pb = (m + 276) | 0; qb = (m + 272) | 0; rb = (m + 268) | 0; sb = (m + 264) | 0; tb = (m + 260) | 0; ub = m; vb = (m + 256) | 0; wb = (m + 188) | 0; xb = (m + 184) | 0; yb = (m + 180) | 0; zb = (m + 176) | 0; Ab = (m + 160) | 0; Bb = (m + 144) | 0; Cb = (m + 136) | 0; Db = (m + 132) | 0; Eb = (m + 128) | 0; Fb = (m + 124) | 0; Gb = (m + 120) | 0; Hb = (m + 116) | 0; Ib = (m + 112) | 0; Jb = (m + 108) | 0; Kb = (m + 104) | 0; Lb = (m + 100) | 0; Mb = (m + 96) | 0; c[Gb >> 2] = b; c[Hb >> 2] = f; c[Ib >> 2] = g; c[Jb >> 2] = h; c[Kb >> 2] = i; c[Lb >> 2] = j; c[Mb >> 2] = k; k = c[Hb >> 2] | 0; Hb = c[Ib >> 2] | 0; Ib = c[Jb >> 2] | 0; Jb = c[Kb >> 2] | 0; Kb = c[Lb >> 2] | 0; Lb = c[Mb >> 2] | 0; c[db >> 2] = c[Gb >> 2]; c[eb >> 2] = k; c[fb >> 2] = Hb; c[gb >> 2] = Ib; c[hb >> 2] = Jb; c[ib >> 2] = Kb; c[jb >> 2] = Lb; c[kb >> 2] = c[gb >> 2]; c[lb >> 2] = (c[kb >> 2] | 0) + (c[hb >> 2] | 0); c[mb >> 2] = c[eb >> 2]; c[nb >> 2] = (c[mb >> 2] | 0) + (c[fb >> 2] | 0); c[ob >> 2] = c[mb >> 2]; c[pb >> 2] = c[((c[db >> 2] | 0) + 28916) >> 2]; c[qb >> 2] = (c[pb >> 2] | 0) + (c[((c[db >> 2] | 0) + 28932) >> 2] | 0); c[rb >> 2] = c[((c[db >> 2] | 0) + 28732) >> 2]; c[sb >> 2] = c[((c[db >> 2] | 0) + 28736) >> 2]; c[tb >> 2] = c[((c[db >> 2] | 0) + 28740) >> 2]; a: do { if (c[ib >> 2] | 0) { c[vb >> 2] = (c[ib >> 2] | 0) < 4 ? c[ib >> 2] | 0 : 4; c[((c[db >> 2] | 0) + 28812) >> 2] = 1; c[yb >> 2] = 0; while (1) { if ((c[yb >> 2] | 0) >>> 0 >= 3) break; c[(wb + 44 + (c[yb >> 2] << 2)) >> 2] = c[ ((c[db >> 2] | 0) + 16 + 28700 + (c[yb >> 2] << 2)) >> 2 ]; c[yb >> 2] = (c[yb >> 2] | 0) + 1; } c[(wb + 56) >> 2] = c[rb >> 2]; c[(wb + 64) >> 2] = (c[ob >> 2] | 0) - (c[rb >> 2] | 0); c[(wb + 60) >> 2] = c[tb >> 2]; c[zb >> 2] = Kr( wb, c[kb >> 2] | 0, ((c[lb >> 2] | 0) - (c[kb >> 2] | 0)) | 0 ) | 0; if ($q(c[zb >> 2] | 0) | 0) { c[cb >> 2] = -20; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } Lr((wb + 20) | 0, wb, c[c[db >> 2] >> 2] | 0); Lr((wb + 28) | 0, wb, c[((c[db >> 2] | 0) + 8) >> 2] | 0); Lr((wb + 36) | 0, wb, c[((c[db >> 2] | 0) + 4) >> 2] | 0); c[xb >> 2] = 0; while (1) { if ((Mr(wb) | 0) >>> 0 <= 2) Ob = (c[xb >> 2] | 0) < (c[vb >> 2] | 0); else Ob = 0; Pb = c[xb >> 2] | 0; if (!Ob) break; fb = (ub + (Pb << 4)) | 0; eb = c[jb >> 2] | 0; c[Pa >> 2] = wb; c[Qa >> 2] = eb; c[Sa >> 2] = d[ ((c[((c[Pa >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 20) >> 2] << 3) + 2) >> 0 ]; c[Ta >> 2] = d[ ((c[((c[Pa >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 36) >> 2] << 3) + 2) >> 0 ]; c[Ua >> 2] = d[ ((c[((c[Pa >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 28) >> 2] << 3) + 2) >> 0 ]; c[Va >> 2] = (c[Sa >> 2] | 0) + (c[Ta >> 2] | 0) + (c[Ua >> 2] | 0); c[Wa >> 2] = c[ ((c[((c[Pa >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 20) >> 2] << 3) + 4) >> 2 ]; c[Xa >> 2] = c[ ((c[((c[Pa >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 36) >> 2] << 3) + 4) >> 2 ]; c[Ya >> 2] = c[ ((c[((c[Pa >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[Pa >> 2] | 0) + 28) >> 2] << 3) + 4) >> 2 ]; do { if (c[Ua >> 2] | 0) { eb = (Dr() | 0) != 0; if (!(eb & ((c[Qa >> 2] | 0) != 0))) { eb = c[Ya >> 2] | 0; c[Za >> 2] = eb + (Nr(c[Pa >> 2] | 0, c[Ua >> 2] | 0) | 0); if (!(Dr() | 0)) break; Mr(c[Pa >> 2] | 0) | 0; break; } c[_a >> 2] = (c[Ua >> 2] | 0) - ((c[Ua >> 2] | 0) >>> 0 < 24 ? c[Ua >> 2] | 0 : 24); eb = c[Ya >> 2] | 0; hb = Nr( c[Pa >> 2] | 0, ((c[Ua >> 2] | 0) - (c[_a >> 2] | 0)) | 0 ) | 0; c[Za >> 2] = eb + (hb << c[_a >> 2]); hb = (Dr() | 0) != 0; if (hb | ((c[_a >> 2] | 0) != 0)) Mr(c[Pa >> 2] | 0) | 0; if (c[_a >> 2] | 0) { hb = Nr(c[Pa >> 2] | 0, c[_a >> 2] | 0) | 0; c[Za >> 2] = (c[Za >> 2] | 0) + hb; } } else c[Za >> 2] = 0; } while (0); do { if ((c[Ua >> 2] | 0) >>> 0 <= 1) { c[Za >> 2] = (c[Za >> 2] | 0) + (((c[Wa >> 2] | 0) == 0) & 1); if (!(c[Za >> 2] | 0)) { c[Za >> 2] = c[((c[Pa >> 2] | 0) + 44) >> 2]; break; } hb = ((c[Pa >> 2] | 0) + 44) | 0; if ((c[Za >> 2] | 0) == 3) Qb = ((c[hb >> 2] | 0) - 1) | 0; else Qb = c[(hb + (c[Za >> 2] << 2)) >> 2] | 0; c[$a >> 2] = Qb; c[$a >> 2] = (c[$a >> 2] | 0) + ((((c[$a >> 2] | 0) != 0) ^ 1) & 1); if ((c[Za >> 2] | 0) != 1) c[((c[Pa >> 2] | 0) + 44 + 8) >> 2] = c[((c[Pa >> 2] | 0) + 44 + 4) >> 2]; c[((c[Pa >> 2] | 0) + 44 + 4) >> 2] = c[((c[Pa >> 2] | 0) + 44) >> 2]; hb = c[$a >> 2] | 0; c[Za >> 2] = hb; c[((c[Pa >> 2] | 0) + 44) >> 2] = hb; } else { c[((c[Pa >> 2] | 0) + 44 + 8) >> 2] = c[((c[Pa >> 2] | 0) + 44 + 4) >> 2]; c[((c[Pa >> 2] | 0) + 44 + 4) >> 2] = c[((c[Pa >> 2] | 0) + 44) >> 2]; c[((c[Pa >> 2] | 0) + 44) >> 2] = c[Za >> 2]; } } while (0); c[(Ra + 8) >> 2] = c[Za >> 2]; hb = c[Xa >> 2] | 0; if ((c[Ta >> 2] | 0) >>> 0 > 0) Rb = Nr(c[Pa >> 2] | 0, c[Ta >> 2] | 0) | 0; else Rb = 0; c[(Ra + 4) >> 2] = hb + Rb; if ( Dr() | 0 ? (((c[Ta >> 2] | 0) + (c[Sa >> 2] | 0)) | 0) >>> 0 >= 20 : 0 ) Mr(c[Pa >> 2] | 0) | 0; hb = (Fr() | 0) != 0; if (hb & ((c[Va >> 2] | 0) >>> 0 >= 31)) Mr(c[Pa >> 2] | 0) | 0; hb = c[Wa >> 2] | 0; if ((c[Sa >> 2] | 0) >>> 0 > 0) Sb = Nr(c[Pa >> 2] | 0, c[Sa >> 2] | 0) | 0; else Sb = 0; c[Ra >> 2] = hb + Sb; if (Dr() | 0) Mr(c[Pa >> 2] | 0) | 0; c[ab >> 2] = (c[((c[Pa >> 2] | 0) + 64) >> 2] | 0) + (c[Ra >> 2] | 0); hb = c[Pa >> 2] | 0; if ( (c[(Ra + 8) >> 2] | 0) >>> 0 > (c[ab >> 2] | 0) >>> 0 ) Tb = c[(hb + 60) >> 2] | 0; else Tb = c[(hb + 56) >> 2] | 0; c[bb >> 2] = Tb; c[(Ra + 12) >> 2] = (c[bb >> 2] | 0) + (c[ab >> 2] | 0) + (0 - (c[(Ra + 8) >> 2] | 0)); c[((c[Pa >> 2] | 0) + 64) >> 2] = (c[ab >> 2] | 0) + (c[(Ra + 4) >> 2] | 0); hb = c[Pa >> 2] | 0; c[Ka >> 2] = (c[Pa >> 2] | 0) + 20; c[La >> 2] = hb; hb = ((c[((c[Ka >> 2] | 0) + 4) >> 2] | 0) + (c[c[Ka >> 2] >> 2] << 3)) | 0; c[Ma >> 2] = c[hb >> 2]; c[(Ma + 4) >> 2] = c[(hb + 4) >> 2]; c[Na >> 2] = d[(Ma + 3) >> 0]; c[Oa >> 2] = Or(c[La >> 2] | 0, c[Na >> 2] | 0) | 0; c[c[Ka >> 2] >> 2] = (e[Ma >> 1] | 0) + (c[Oa >> 2] | 0); hb = c[Pa >> 2] | 0; c[Fa >> 2] = (c[Pa >> 2] | 0) + 36; c[Ga >> 2] = hb; hb = ((c[((c[Fa >> 2] | 0) + 4) >> 2] | 0) + (c[c[Fa >> 2] >> 2] << 3)) | 0; c[Ha >> 2] = c[hb >> 2]; c[(Ha + 4) >> 2] = c[(hb + 4) >> 2]; c[Ia >> 2] = d[(Ha + 3) >> 0]; c[Ja >> 2] = Or(c[Ga >> 2] | 0, c[Ia >> 2] | 0) | 0; c[c[Fa >> 2] >> 2] = (e[Ha >> 1] | 0) + (c[Ja >> 2] | 0); if (Dr() | 0) Mr(c[Pa >> 2] | 0) | 0; hb = c[Pa >> 2] | 0; c[Aa >> 2] = (c[Pa >> 2] | 0) + 28; c[Ba >> 2] = hb; hb = ((c[((c[Aa >> 2] | 0) + 4) >> 2] | 0) + (c[c[Aa >> 2] >> 2] << 3)) | 0; c[Ca >> 2] = c[hb >> 2]; c[(Ca + 4) >> 2] = c[(hb + 4) >> 2]; c[Da >> 2] = d[(Ca + 3) >> 0]; c[Ea >> 2] = Or(c[Ba >> 2] | 0, c[Da >> 2] | 0) | 0; c[c[Aa >> 2] >> 2] = (e[Ca >> 1] | 0) + (c[Ea >> 2] | 0); c[Ab >> 2] = c[Ra >> 2]; c[(Ab + 4) >> 2] = c[(Ra + 4) >> 2]; c[(Ab + 8) >> 2] = c[(Ra + 8) >> 2]; c[(Ab + 12) >> 2] = c[(Ra + 12) >> 2]; c[fb >> 2] = c[Ab >> 2]; c[(fb + 4) >> 2] = c[(Ab + 4) >> 2]; c[(fb + 8) >> 2] = c[(Ab + 8) >> 2]; c[(fb + 12) >> 2] = c[(Ab + 12) >> 2]; c[xb >> 2] = (c[xb >> 2] | 0) + 1; } if ((Pb | 0) < (c[vb >> 2] | 0)) { c[cb >> 2] = -20; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } while (1) { if ((Mr(wb) | 0) >>> 0 > 2) break; if ((c[xb >> 2] | 0) >= (c[ib >> 2] | 0)) break; hb = c[jb >> 2] | 0; c[la >> 2] = wb; c[ma >> 2] = hb; c[oa >> 2] = d[ ((c[((c[la >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 20) >> 2] << 3) + 2) >> 0 ]; c[pa >> 2] = d[ ((c[((c[la >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 36) >> 2] << 3) + 2) >> 0 ]; c[qa >> 2] = d[ ((c[((c[la >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 28) >> 2] << 3) + 2) >> 0 ]; c[ra >> 2] = (c[oa >> 2] | 0) + (c[pa >> 2] | 0) + (c[qa >> 2] | 0); c[sa >> 2] = c[ ((c[((c[la >> 2] | 0) + 20 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 20) >> 2] << 3) + 4) >> 2 ]; c[ta >> 2] = c[ ((c[((c[la >> 2] | 0) + 36 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 36) >> 2] << 3) + 4) >> 2 ]; c[ua >> 2] = c[ ((c[((c[la >> 2] | 0) + 28 + 4) >> 2] | 0) + (c[((c[la >> 2] | 0) + 28) >> 2] << 3) + 4) >> 2 ]; do { if (c[qa >> 2] | 0) { hb = (Dr() | 0) != 0; if (!(hb & ((c[ma >> 2] | 0) != 0))) { hb = c[ua >> 2] | 0; c[va >> 2] = hb + (Nr(c[la >> 2] | 0, c[qa >> 2] | 0) | 0); if (!(Dr() | 0)) break; Mr(c[la >> 2] | 0) | 0; break; } c[wa >> 2] = (c[qa >> 2] | 0) - ((c[qa >> 2] | 0) >>> 0 < 24 ? c[qa >> 2] | 0 : 24); hb = c[ua >> 2] | 0; eb = Nr( c[la >> 2] | 0, ((c[qa >> 2] | 0) - (c[wa >> 2] | 0)) | 0 ) | 0; c[va >> 2] = hb + (eb << c[wa >> 2]); eb = (Dr() | 0) != 0; if (eb | ((c[wa >> 2] | 0) != 0)) Mr(c[la >> 2] | 0) | 0; if (c[wa >> 2] | 0) { eb = Nr(c[la >> 2] | 0, c[wa >> 2] | 0) | 0; c[va >> 2] = (c[va >> 2] | 0) + eb; } } else c[va >> 2] = 0; } while (0); do { if ((c[qa >> 2] | 0) >>> 0 <= 1) { c[va >> 2] = (c[va >> 2] | 0) + (((c[sa >> 2] | 0) == 0) & 1); if (!(c[va >> 2] | 0)) { c[va >> 2] = c[((c[la >> 2] | 0) + 44) >> 2]; break; } fb = ((c[la >> 2] | 0) + 44) | 0; if ((c[va >> 2] | 0) == 3) Ub = ((c[fb >> 2] | 0) - 1) | 0; else Ub = c[(fb + (c[va >> 2] << 2)) >> 2] | 0; c[xa >> 2] = Ub; c[xa >> 2] = (c[xa >> 2] | 0) + ((((c[xa >> 2] | 0) != 0) ^ 1) & 1); if ((c[va >> 2] | 0) != 1) c[((c[la >> 2] | 0) + 44 + 8) >> 2] = c[((c[la >> 2] | 0) + 44 + 4) >> 2]; c[((c[la >> 2] | 0) + 44 + 4) >> 2] = c[((c[la >> 2] | 0) + 44) >> 2]; fb = c[xa >> 2] | 0; c[va >> 2] = fb; c[((c[la >> 2] | 0) + 44) >> 2] = fb; } else { c[((c[la >> 2] | 0) + 44 + 8) >> 2] = c[((c[la >> 2] | 0) + 44 + 4) >> 2]; c[((c[la >> 2] | 0) + 44 + 4) >> 2] = c[((c[la >> 2] | 0) + 44) >> 2]; c[((c[la >> 2] | 0) + 44) >> 2] = c[va >> 2]; } } while (0); c[(na + 8) >> 2] = c[va >> 2]; fb = c[ta >> 2] | 0; if ((c[pa >> 2] | 0) >>> 0 > 0) Vb = Nr(c[la >> 2] | 0, c[pa >> 2] | 0) | 0; else Vb = 0; c[(na + 4) >> 2] = fb + Vb; if ( Dr() | 0 ? (((c[pa >> 2] | 0) + (c[oa >> 2] | 0)) | 0) >>> 0 >= 20 : 0 ) Mr(c[la >> 2] | 0) | 0; fb = (Fr() | 0) != 0; if (fb & ((c[ra >> 2] | 0) >>> 0 >= 31)) Mr(c[la >> 2] | 0) | 0; fb = c[sa >> 2] | 0; if ((c[oa >> 2] | 0) >>> 0 > 0) Wb = Nr(c[la >> 2] | 0, c[oa >> 2] | 0) | 0; else Wb = 0; c[na >> 2] = fb + Wb; if (Dr() | 0) Mr(c[la >> 2] | 0) | 0; c[ya >> 2] = (c[((c[la >> 2] | 0) + 64) >> 2] | 0) + (c[na >> 2] | 0); fb = c[la >> 2] | 0; if ( (c[(na + 8) >> 2] | 0) >>> 0 > (c[ya >> 2] | 0) >>> 0 ) Xb = c[(fb + 60) >> 2] | 0; else Xb = c[(fb + 56) >> 2] | 0; c[za >> 2] = Xb; c[(na + 12) >> 2] = (c[za >> 2] | 0) + (c[ya >> 2] | 0) + (0 - (c[(na + 8) >> 2] | 0)); c[((c[la >> 2] | 0) + 64) >> 2] = (c[ya >> 2] | 0) + (c[(na + 4) >> 2] | 0); fb = c[la >> 2] | 0; c[ga >> 2] = (c[la >> 2] | 0) + 20; c[ha >> 2] = fb; fb = ((c[((c[ga >> 2] | 0) + 4) >> 2] | 0) + (c[c[ga >> 2] >> 2] << 3)) | 0; c[ia >> 2] = c[fb >> 2]; c[(ia + 4) >> 2] = c[(fb + 4) >> 2]; c[ja >> 2] = d[(ia + 3) >> 0]; c[ka >> 2] = Or(c[ha >> 2] | 0, c[ja >> 2] | 0) | 0; c[c[ga >> 2] >> 2] = (e[ia >> 1] | 0) + (c[ka >> 2] | 0); fb = c[la >> 2] | 0; c[ba >> 2] = (c[la >> 2] | 0) + 36; c[ca >> 2] = fb; fb = ((c[((c[ba >> 2] | 0) + 4) >> 2] | 0) + (c[c[ba >> 2] >> 2] << 3)) | 0; c[da >> 2] = c[fb >> 2]; c[(da + 4) >> 2] = c[(fb + 4) >> 2]; c[ea >> 2] = d[(da + 3) >> 0]; c[fa >> 2] = Or(c[ca >> 2] | 0, c[ea >> 2] | 0) | 0; c[c[ba >> 2] >> 2] = (e[da >> 1] | 0) + (c[fa >> 2] | 0); if (Dr() | 0) Mr(c[la >> 2] | 0) | 0; fb = c[la >> 2] | 0; c[Y >> 2] = (c[la >> 2] | 0) + 28; c[Z >> 2] = fb; fb = ((c[((c[Y >> 2] | 0) + 4) >> 2] | 0) + (c[c[Y >> 2] >> 2] << 3)) | 0; c[_ >> 2] = c[fb >> 2]; c[(_ + 4) >> 2] = c[(fb + 4) >> 2]; c[$ >> 2] = d[(_ + 3) >> 0]; c[aa >> 2] = Or(c[Z >> 2] | 0, c[$ >> 2] | 0) | 0; c[c[Y >> 2] >> 2] = (e[_ >> 1] | 0) + (c[aa >> 2] | 0); c[Bb >> 2] = c[na >> 2]; c[(Bb + 4) >> 2] = c[(na + 4) >> 2]; c[(Bb + 8) >> 2] = c[(na + 8) >> 2]; c[(Bb + 12) >> 2] = c[(na + 12) >> 2]; fb = c[ob >> 2] | 0; eb = c[nb >> 2] | 0; hb = c[qb >> 2] | 0; gb = c[rb >> 2] | 0; Lb = c[sb >> 2] | 0; Kb = c[tb >> 2] | 0; Yb = X; Zb = (ub + ((((c[xb >> 2] | 0) - 4) & 3) << 4)) | 0; _b = (Yb + 16) | 0; do { a[Yb >> 0] = a[Zb >> 0] | 0; Yb = (Yb + 1) | 0; Zb = (Zb + 1) | 0; } while ((Yb | 0) < (_b | 0)); c[H >> 2] = fb; c[I >> 2] = eb; c[J >> 2] = pb; c[K >> 2] = hb; c[L >> 2] = gb; c[M >> 2] = Lb; c[N >> 2] = Kb; c[O >> 2] = (c[H >> 2] | 0) + (c[X >> 2] | 0); c[P >> 2] = (c[X >> 2] | 0) + (c[(X + 4) >> 2] | 0); c[Q >> 2] = (c[H >> 2] | 0) + (c[P >> 2] | 0); c[R >> 2] = (c[I >> 2] | 0) + -8; c[S >> 2] = (c[c[J >> 2] >> 2] | 0) + (c[X >> 2] | 0); c[T >> 2] = c[(X + 12) >> 2]; b: do { if ((c[Q >> 2] | 0) >>> 0 > (c[I >> 2] | 0) >>> 0) c[G >> 2] = -70; else { if ((c[S >> 2] | 0) >>> 0 > (c[K >> 2] | 0) >>> 0) { c[G >> 2] = -20; break; } Jb = c[H >> 2] | 0; if ((c[O >> 2] | 0) >>> 0 > (c[R >> 2] | 0) >>> 0) { Ib = c[I >> 2] | 0; Hb = c[J >> 2] | 0; k = c[K >> 2] | 0; Gb = c[L >> 2] | 0; Mb = c[M >> 2] | 0; j = c[N >> 2] | 0; c[n >> 2] = c[X >> 2]; c[(n + 4) >> 2] = c[(X + 4) >> 2]; c[(n + 8) >> 2] = c[(X + 8) >> 2]; c[(n + 12) >> 2] = c[(X + 12) >> 2]; c[G >> 2] = Pr(Jb, Ib, n, Hb, k, Gb, Mb, j) | 0; break; } Qr(Jb, c[c[J >> 2] >> 2] | 0); if ((c[X >> 2] | 0) >>> 0 > 8) Rr( ((c[H >> 2] | 0) + 8) | 0, ((c[c[J >> 2] >> 2] | 0) + 8) | 0, ((c[X >> 2] | 0) - 8) | 0 ); c[H >> 2] = c[O >> 2]; c[c[J >> 2] >> 2] = c[S >> 2]; do { if ( (c[(X + 8) >> 2] | 0) >>> 0 > (((c[O >> 2] | 0) - (c[L >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(X + 8) >> 2] | 0) >>> 0 > (((c[O >> 2] | 0) - (c[M >> 2] | 0)) | 0) >>> 0 ) { c[G >> 2] = -20; break b; } if ( (((c[T >> 2] | 0) + (c[(X + 4) >> 2] | 0)) | 0) >>> 0 <= (c[N >> 2] | 0) >>> 0 ) { nE( c[O >> 2] | 0, c[T >> 2] | 0, c[(X + 4) >> 2] | 0 ) | 0; c[G >> 2] = c[P >> 2]; break b; } c[U >> 2] = (c[N >> 2] | 0) - (c[T >> 2] | 0); nE( c[O >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[H >> 2] = (c[O >> 2] | 0) + (c[U >> 2] | 0); Jb = (X + 4) | 0; c[Jb >> 2] = (c[Jb >> 2] | 0) - (c[U >> 2] | 0); c[T >> 2] = c[L >> 2]; if ( (c[H >> 2] | 0) >>> 0 <= (c[R >> 2] | 0) >>> 0 ? (c[(X + 4) >> 2] | 0) >>> 0 >= 3 : 0 ) break; c[V >> 2] = 0; while (1) { if ( (c[V >> 2] | 0) >>> 0 >= (c[(X + 4) >> 2] | 0) >>> 0 ) break; a[((c[H >> 2] | 0) + (c[V >> 2] | 0)) >> 0] = a[ ((c[T >> 2] | 0) + (c[V >> 2] | 0)) >> 0 ] | 0; c[V >> 2] = (c[V >> 2] | 0) + 1; } c[G >> 2] = c[P >> 2]; break b; } } while (0); if ((c[(X + 8) >> 2] | 0) >>> 0 < 8) { c[W >> 2] = c[(6816 + (c[(X + 8) >> 2] << 2)) >> 2]; a[c[H >> 2] >> 0] = a[c[T >> 2] >> 0] | 0; a[((c[H >> 2] | 0) + 1) >> 0] = a[((c[T >> 2] | 0) + 1) >> 0] | 0; a[((c[H >> 2] | 0) + 2) >> 0] = a[((c[T >> 2] | 0) + 2) >> 0] | 0; a[((c[H >> 2] | 0) + 3) >> 0] = a[((c[T >> 2] | 0) + 3) >> 0] | 0; c[T >> 2] = (c[T >> 2] | 0) + (c[(6848 + (c[(X + 8) >> 2] << 2)) >> 2] | 0); Sr(((c[H >> 2] | 0) + 4) | 0, c[T >> 2] | 0); c[T >> 2] = (c[T >> 2] | 0) + (0 - (c[W >> 2] | 0)); } else Qr(c[H >> 2] | 0, c[T >> 2] | 0); c[H >> 2] = (c[H >> 2] | 0) + 8; c[T >> 2] = (c[T >> 2] | 0) + 8; Jb = c[H >> 2] | 0; c: do { if ( (c[Q >> 2] | 0) >>> 0 > (((c[I >> 2] | 0) + -13) | 0) >>> 0 ) { if (Jb >>> 0 < (c[R >> 2] | 0) >>> 0) { Rr( c[H >> 2] | 0, c[T >> 2] | 0, ((c[R >> 2] | 0) - (c[H >> 2] | 0)) | 0 ); c[T >> 2] = (c[T >> 2] | 0) + ((c[R >> 2] | 0) - (c[H >> 2] | 0)); c[H >> 2] = c[R >> 2]; } while (1) { if ( (c[H >> 2] | 0) >>> 0 >= (c[Q >> 2] | 0) >>> 0 ) break c; j = c[T >> 2] | 0; c[T >> 2] = j + 1; Mb = a[j >> 0] | 0; j = c[H >> 2] | 0; c[H >> 2] = j + 1; a[j >> 0] = Mb; } } else Rr( Jb, c[T >> 2] | 0, ((c[(X + 4) >> 2] | 0) - 8) | 0 ); } while (0); c[G >> 2] = c[P >> 2]; } } while (0); c[Cb >> 2] = c[G >> 2]; if ($q(c[Cb >> 2] | 0) | 0) { $b = 118; break; } Kb = (ub + ((c[xb >> 2] & 3) << 4)) | 0; c[Kb >> 2] = c[Bb >> 2]; c[(Kb + 4) >> 2] = c[(Bb + 4) >> 2]; c[(Kb + 8) >> 2] = c[(Bb + 8) >> 2]; c[(Kb + 12) >> 2] = c[(Bb + 12) >> 2]; c[ob >> 2] = (c[ob >> 2] | 0) + (c[Cb >> 2] | 0); c[xb >> 2] = (c[xb >> 2] | 0) + 1; } if (($b | 0) == 118) { c[cb >> 2] = c[Cb >> 2]; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } if ((c[xb >> 2] | 0) < (c[ib >> 2] | 0)) { c[cb >> 2] = -20; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } c[xb >> 2] = (c[xb >> 2] | 0) - (c[vb >> 2] | 0); while (1) { if ((c[xb >> 2] | 0) >= (c[ib >> 2] | 0)) break; Kb = c[ob >> 2] | 0; Lb = c[nb >> 2] | 0; gb = c[qb >> 2] | 0; hb = c[rb >> 2] | 0; eb = c[sb >> 2] | 0; fb = c[tb >> 2] | 0; Yb = F; Zb = (ub + ((c[xb >> 2] & 3) << 4)) | 0; _b = (Yb + 16) | 0; do { a[Yb >> 0] = a[Zb >> 0] | 0; Yb = (Yb + 1) | 0; Zb = (Zb + 1) | 0; } while ((Yb | 0) < (_b | 0)); c[p >> 2] = Kb; c[q >> 2] = Lb; c[r >> 2] = pb; c[s >> 2] = gb; c[t >> 2] = hb; c[u >> 2] = eb; c[v >> 2] = fb; c[w >> 2] = (c[p >> 2] | 0) + (c[F >> 2] | 0); c[x >> 2] = (c[F >> 2] | 0) + (c[(F + 4) >> 2] | 0); c[y >> 2] = (c[p >> 2] | 0) + (c[x >> 2] | 0); c[z >> 2] = (c[q >> 2] | 0) + -8; c[A >> 2] = (c[c[r >> 2] >> 2] | 0) + (c[F >> 2] | 0); c[B >> 2] = c[(F + 12) >> 2]; d: do { if ((c[y >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) c[o >> 2] = -70; else { if ((c[A >> 2] | 0) >>> 0 > (c[s >> 2] | 0) >>> 0) { c[o >> 2] = -20; break; } Jb = c[p >> 2] | 0; if ((c[w >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0) { Mb = c[q >> 2] | 0; j = c[r >> 2] | 0; Gb = c[s >> 2] | 0; k = c[t >> 2] | 0; Hb = c[u >> 2] | 0; Ib = c[v >> 2] | 0; c[n >> 2] = c[F >> 2]; c[(n + 4) >> 2] = c[(F + 4) >> 2]; c[(n + 8) >> 2] = c[(F + 8) >> 2]; c[(n + 12) >> 2] = c[(F + 12) >> 2]; c[o >> 2] = Pr(Jb, Mb, n, j, Gb, k, Hb, Ib) | 0; break; } Qr(Jb, c[c[r >> 2] >> 2] | 0); if ((c[F >> 2] | 0) >>> 0 > 8) Rr( ((c[p >> 2] | 0) + 8) | 0, ((c[c[r >> 2] >> 2] | 0) + 8) | 0, ((c[F >> 2] | 0) - 8) | 0 ); c[p >> 2] = c[w >> 2]; c[c[r >> 2] >> 2] = c[A >> 2]; do { if ( (c[(F + 8) >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[t >> 2] | 0)) | 0) >>> 0 ) { if ( (c[(F + 8) >> 2] | 0) >>> 0 > (((c[w >> 2] | 0) - (c[u >> 2] | 0)) | 0) >>> 0 ) { c[o >> 2] = -20; break d; } if ( (((c[B >> 2] | 0) + (c[(F + 4) >> 2] | 0)) | 0) >>> 0 <= (c[v >> 2] | 0) >>> 0 ) { nE( c[w >> 2] | 0, c[B >> 2] | 0, c[(F + 4) >> 2] | 0 ) | 0; c[o >> 2] = c[x >> 2]; break d; } c[C >> 2] = (c[v >> 2] | 0) - (c[B >> 2] | 0); nE( c[w >> 2] | 0, c[B >> 2] | 0, c[C >> 2] | 0 ) | 0; c[p >> 2] = (c[w >> 2] | 0) + (c[C >> 2] | 0); Jb = (F + 4) | 0; c[Jb >> 2] = (c[Jb >> 2] | 0) - (c[C >> 2] | 0); c[B >> 2] = c[t >> 2]; if ( (c[p >> 2] | 0) >>> 0 <= (c[z >> 2] | 0) >>> 0 ? (c[(F + 4) >> 2] | 0) >>> 0 >= 3 : 0 ) break; c[D >> 2] = 0; while (1) { if ( (c[D >> 2] | 0) >>> 0 >= (c[(F + 4) >> 2] | 0) >>> 0 ) break; a[((c[p >> 2] | 0) + (c[D >> 2] | 0)) >> 0] = a[ ((c[B >> 2] | 0) + (c[D >> 2] | 0)) >> 0 ] | 0; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[o >> 2] = c[x >> 2]; break d; } } while (0); if ((c[(F + 8) >> 2] | 0) >>> 0 < 8) { c[E >> 2] = c[(6816 + (c[(F + 8) >> 2] << 2)) >> 2]; a[c[p >> 2] >> 0] = a[c[B >> 2] >> 0] | 0; a[((c[p >> 2] | 0) + 1) >> 0] = a[((c[B >> 2] | 0) + 1) >> 0] | 0; a[((c[p >> 2] | 0) + 2) >> 0] = a[((c[B >> 2] | 0) + 2) >> 0] | 0; a[((c[p >> 2] | 0) + 3) >> 0] = a[((c[B >> 2] | 0) + 3) >> 0] | 0; c[B >> 2] = (c[B >> 2] | 0) + (c[(6848 + (c[(F + 8) >> 2] << 2)) >> 2] | 0); Sr(((c[p >> 2] | 0) + 4) | 0, c[B >> 2] | 0); c[B >> 2] = (c[B >> 2] | 0) + (0 - (c[E >> 2] | 0)); } else Qr(c[p >> 2] | 0, c[B >> 2] | 0); c[p >> 2] = (c[p >> 2] | 0) + 8; c[B >> 2] = (c[B >> 2] | 0) + 8; Jb = c[p >> 2] | 0; e: do { if ( (c[y >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -13) | 0) >>> 0 ) { if (Jb >>> 0 < (c[z >> 2] | 0) >>> 0) { Rr( c[p >> 2] | 0, c[B >> 2] | 0, ((c[z >> 2] | 0) - (c[p >> 2] | 0)) | 0 ); c[B >> 2] = (c[B >> 2] | 0) + ((c[z >> 2] | 0) - (c[p >> 2] | 0)); c[p >> 2] = c[z >> 2]; } while (1) { if ( (c[p >> 2] | 0) >>> 0 >= (c[y >> 2] | 0) >>> 0 ) break e; Ib = c[B >> 2] | 0; c[B >> 2] = Ib + 1; Hb = a[Ib >> 0] | 0; Ib = c[p >> 2] | 0; c[p >> 2] = Ib + 1; a[Ib >> 0] = Hb; } } else Rr( Jb, c[B >> 2] | 0, ((c[(F + 4) >> 2] | 0) - 8) | 0 ); } while (0); c[o >> 2] = c[x >> 2]; } } while (0); c[Db >> 2] = c[o >> 2]; fb = ($q(c[Db >> 2] | 0) | 0) != 0; ac = c[Db >> 2] | 0; if (fb) { $b = 155; break; } c[ob >> 2] = (c[ob >> 2] | 0) + ac; c[xb >> 2] = (c[xb >> 2] | 0) + 1; } if (($b | 0) == 155) { c[cb >> 2] = ac; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } c[Eb >> 2] = 0; while (1) { if ((c[Eb >> 2] | 0) >>> 0 >= 3) break a; c[ ((c[db >> 2] | 0) + 16 + 28700 + (c[Eb >> 2] << 2)) >> 2 ] = c[(wb + 44 + (c[Eb >> 2] << 2)) >> 2]; c[Eb >> 2] = (c[Eb >> 2] | 0) + 1; } } } while (0); c[Fb >> 2] = (c[qb >> 2] | 0) - (c[pb >> 2] | 0); if ( (c[Fb >> 2] | 0) >>> 0 > (((c[nb >> 2] | 0) - (c[ob >> 2] | 0)) | 0) >>> 0 ) { c[cb >> 2] = -70; Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } else { mE(c[ob >> 2] | 0, c[pb >> 2] | 0, c[Fb >> 2] | 0) | 0; c[ob >> 2] = (c[ob >> 2] | 0) + (c[Fb >> 2] | 0); c[cb >> 2] = (c[ob >> 2] | 0) - (c[mb >> 2] | 0); Nb = c[cb >> 2] | 0; l = m; return Nb | 0; } return 0; } function Zr(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; i = l; l = (l + 32) | 0; j = (i + 24) | 0; k = (i + 20) | 0; m = (i + 16) | 0; n = (i + 12) | 0; o = (i + 8) | 0; p = (i + 4) | 0; q = i; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; h = _r( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, 0 ) | 0; l = i; return h | 0; } function _r(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; j = l; l = (l + 80) | 0; k = (j + 64) | 0; m = (j + 60) | 0; n = (j + 56) | 0; o = (j + 52) | 0; p = (j + 48) | 0; q = (j + 44) | 0; r = (j + 40) | 0; s = (j + 36) | 0; t = (j + 32) | 0; u = (j + 28) | 0; v = (j + 24) | 0; w = (j + 20) | 0; x = (j + 16) | 0; y = (j + 12) | 0; z = (j + 8) | 0; A = (j + 4) | 0; B = j; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = c[n >> 2]; if (c[t >> 2] | 0) { c[r >> 2] = $r(c[t >> 2] | 0) | 0; c[s >> 2] = as(c[t >> 2] | 0) | 0; } while (1) { if ((c[q >> 2] | 0) >>> 0 < 5) { C = 27; break; } i = (iq(c[p >> 2] | 0, c[q >> 2] | 0) | 0) != 0; h = c[p >> 2] | 0; if (i) { c[x >> 2] = ar(h, c[q >> 2] | 0) | 0; if ($q(c[x >> 2] | 0) | 0) { C = 7; break; } if (c[((c[m >> 2] | 0) + 28940) >> 2] | 0) { C = 9; break; } c[w >> 2] = bs( c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[x >> 2] | 0, c[r >> 2] | 0, c[s >> 2] | 0 ) | 0; c[n >> 2] = (c[n >> 2] | 0) + (c[w >> 2] | 0); c[o >> 2] = (c[o >> 2] | 0) - (c[w >> 2] | 0); c[p >> 2] = (c[p >> 2] | 0) + (c[x >> 2] | 0); c[q >> 2] = (c[q >> 2] | 0) - (c[x >> 2] | 0); continue; } c[v >> 2] = hq(h) | 0; if ((c[v >> 2] | 0) != -47205080) { if (((c[v >> 2] & -16) | 0) != 407710288) { C = 18; break; } if ((c[q >> 2] | 0) >>> 0 < 8) { C = 14; break; } c[y >> 2] = (hq(((c[p >> 2] | 0) + 4) | 0) | 0) + 8; if ((c[q >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0) { C = 16; break; } c[p >> 2] = (c[p >> 2] | 0) + (c[y >> 2] | 0); c[q >> 2] = (c[q >> 2] | 0) - (c[y >> 2] | 0); continue; } h = c[m >> 2] | 0; if (c[t >> 2] | 0) { c[z >> 2] = cs(h, c[t >> 2] | 0) | 0; if ($q(c[z >> 2] | 0) | 0) { C = 21; break; } } else { c[A >> 2] = ds(h, c[r >> 2] | 0, c[s >> 2] | 0) | 0; if ($q(c[A >> 2] | 0) | 0) { C = 23; break; } } Br(c[m >> 2] | 0, c[n >> 2] | 0); c[B >> 2] = es(c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, p, q) | 0; if ($q(c[B >> 2] | 0) | 0) { C = 25; break; } c[n >> 2] = (c[n >> 2] | 0) + (c[B >> 2] | 0); c[o >> 2] = (c[o >> 2] | 0) - (c[B >> 2] | 0); } if ((C | 0) == 7) { c[k >> 2] = c[x >> 2]; D = c[k >> 2] | 0; l = j; return D | 0; } else if ((C | 0) == 9) { c[k >> 2] = -64; D = c[k >> 2] | 0; l = j; return D | 0; } else if ((C | 0) == 14) { c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } else if ((C | 0) == 16) { c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } else if ((C | 0) == 18) { c[k >> 2] = -10; D = c[k >> 2] | 0; l = j; return D | 0; } else if ((C | 0) == 21) { c[k >> 2] = c[z >> 2]; D = c[k >> 2] | 0; l = j; return D | 0; } else if ((C | 0) == 23) { c[k >> 2] = c[A >> 2]; D = c[k >> 2] | 0; l = j; return D | 0; } else if ((C | 0) == 25) { c[k >> 2] = c[B >> 2]; D = c[k >> 2] | 0; l = j; return D | 0; } else if ((C | 0) == 27) if (c[q >> 2] | 0) { c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } else { c[k >> 2] = (c[n >> 2] | 0) - (c[u >> 2] | 0); D = c[k >> 2] | 0; l = j; return D | 0; } return 0; } function $r(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return c[((c[d >> 2] | 0) + 4) >> 2] | 0; } function as(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return c[((c[d >> 2] | 0) + 8) >> 2] | 0; } function bs(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; h = l; l = (l + 64) | 0; i = (h + 52) | 0; j = (h + 48) | 0; k = (h + 44) | 0; m = (h + 40) | 0; n = (h + 36) | 0; o = (h + 32) | 0; p = (h + 28) | 0; q = (h + 24) | 0; r = (h + 20) | 0; s = (h + 16) | 0; t = (h + 12) | 0; u = (h + 8) | 0; v = (h + 4) | 0; w = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = iq(c[m >> 2] | 0, c[n >> 2] | 0) | 0; switch (c[q >> 2] | 0) { case 4: { c[i >> 2] = ms( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0; x = c[i >> 2] | 0; l = h; return x | 0; } case 5: { c[s >> 2] = ns() | 0; if (!(c[s >> 2] | 0)) { c[i >> 2] = -64; x = c[i >> 2] | 0; l = h; return x | 0; } else { c[r >> 2] = os( c[s >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; eq(c[s >> 2] | 0) | 0; c[i >> 2] = c[r >> 2]; x = c[i >> 2] | 0; l = h; return x | 0; } break; } case 6: { c[u >> 2] = ps() | 0; if (!(c[u >> 2] | 0)) { c[i >> 2] = -64; x = c[i >> 2] | 0; l = h; return x | 0; } else { c[t >> 2] = qs( c[u >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; dq(c[u >> 2] | 0) | 0; c[i >> 2] = c[t >> 2]; x = c[i >> 2] | 0; l = h; return x | 0; } break; } case 7: { c[w >> 2] = rs() | 0; if (!(c[w >> 2] | 0)) { c[i >> 2] = -64; x = c[i >> 2] | 0; l = h; return x | 0; } else { c[v >> 2] = ss( c[w >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; cq(c[w >> 2] | 0) | 0; c[i >> 2] = c[v >> 2]; x = c[i >> 2] | 0; l = h; return x | 0; } break; } default: { c[i >> 2] = -10; x = c[i >> 2] | 0; l = h; return x | 0; } } return 0; } function cs(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; d = l; l = (l + 16) | 0; e = (d + 12) | 0; f = (d + 8) | 0; g = (d + 4) | 0; h = d; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = is(c[f >> 2] | 0) | 0; if ($q(c[h >> 2] | 0) | 0) { c[e >> 2] = c[h >> 2]; i = c[e >> 2] | 0; l = d; return i | 0; } do { if (c[g >> 2] | 0) { c[((c[f >> 2] | 0) + 28908) >> 2] = c[((c[g >> 2] | 0) + 28724) >> 2]; c[((c[f >> 2] | 0) + 28732) >> 2] = c[((c[g >> 2] | 0) + 4) >> 2]; c[((c[f >> 2] | 0) + 28736) >> 2] = c[((c[g >> 2] | 0) + 4) >> 2]; c[((c[f >> 2] | 0) + 28740) >> 2] = (c[((c[g >> 2] | 0) + 4) >> 2] | 0) + (c[((c[g >> 2] | 0) + 8) >> 2] | 0); c[((c[f >> 2] | 0) + 28728) >> 2] = c[((c[f >> 2] | 0) + 28740) >> 2]; h = ((c[f >> 2] | 0) + 28808) | 0; if (c[((c[g >> 2] | 0) + 28728) >> 2] | 0) { c[h >> 2] = 1; c[((c[f >> 2] | 0) + 28812) >> 2] = 1; c[c[f >> 2] >> 2] = (c[g >> 2] | 0) + 12; c[((c[f >> 2] | 0) + 4) >> 2] = (c[g >> 2] | 0) + 12 + 6160; c[((c[f >> 2] | 0) + 8) >> 2] = (c[g >> 2] | 0) + 12 + 4104; c[((c[f >> 2] | 0) + 12) >> 2] = (c[g >> 2] | 0) + 12 + 10264; c[((c[f >> 2] | 0) + 16 + 28700) >> 2] = c[((c[g >> 2] | 0) + 12 + 28700) >> 2]; c[((c[f >> 2] | 0) + 16 + 28700 + 4) >> 2] = c[((c[g >> 2] | 0) + 12 + 28700 + 4) >> 2]; c[((c[f >> 2] | 0) + 16 + 28700 + 8) >> 2] = c[((c[g >> 2] | 0) + 12 + 28700 + 8) >> 2]; break; } else { c[h >> 2] = 0; c[((c[f >> 2] | 0) + 28812) >> 2] = 0; break; } } } while (0); c[e >> 2] = 0; i = c[e >> 2] | 0; l = d; return i | 0; } function ds(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = is(c[g >> 2] | 0) | 0; if ($q(c[j >> 2] | 0) | 0) { c[f >> 2] = c[j >> 2]; m = c[f >> 2] | 0; l = e; return m | 0; } if ( ((c[h >> 2] | 0) != 0) & ((c[i >> 2] | 0) != 0) ? ((c[k >> 2] = js(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0), $q(c[k >> 2] | 0) | 0) : 0 ) { c[f >> 2] = -30; m = c[f >> 2] | 0; l = e; return m | 0; } c[f >> 2] = 0; m = c[f >> 2] | 0; l = e; return m | 0; } function es(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; h = l; l = (l + 80) | 0; i = (h + 76) | 0; j = (h + 72) | 0; k = (h + 68) | 0; m = (h + 64) | 0; n = (h + 60) | 0; o = (h + 56) | 0; p = (h + 52) | 0; q = (h + 48) | 0; r = (h + 44) | 0; s = (h + 40) | 0; t = (h + 36) | 0; u = (h + 32) | 0; v = (h + 28) | 0; w = (h + 24) | 0; x = (h + 12) | 0; y = (h + 8) | 0; z = (h + 4) | 0; A = h; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[c[n >> 2] >> 2]; c[q >> 2] = c[k >> 2]; c[r >> 2] = (c[q >> 2] | 0) + (c[m >> 2] | 0); c[s >> 2] = c[q >> 2]; c[t >> 2] = c[c[o >> 2] >> 2]; if ((c[t >> 2] | 0) >>> 0 < 9) { c[i >> 2] = -72; B = c[i >> 2] | 0; l = h; return B | 0; } c[u >> 2] = mq(c[p >> 2] | 0, 5) | 0; if ($q(c[u >> 2] | 0) | 0) { c[i >> 2] = c[u >> 2]; B = c[i >> 2] | 0; l = h; return B | 0; } if ( (c[t >> 2] | 0) >>> 0 < (((c[u >> 2] | 0) + 3) | 0) >>> 0 ) { c[i >> 2] = -72; B = c[i >> 2] | 0; l = h; return B | 0; } c[v >> 2] = fs(c[j >> 2] | 0, c[p >> 2] | 0, c[u >> 2] | 0) | 0; if ($q(c[v >> 2] | 0) | 0) { c[i >> 2] = c[v >> 2]; B = c[i >> 2] | 0; l = h; return B | 0; } c[p >> 2] = (c[p >> 2] | 0) + (c[u >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) - (c[u >> 2] | 0); a: while (1) { c[y >> 2] = br(c[p >> 2] | 0, c[t >> 2] | 0, x) | 0; if ($q(c[y >> 2] | 0) | 0) { C = 11; break; } c[p >> 2] = (c[p >> 2] | 0) + 3; c[t >> 2] = (c[t >> 2] | 0) - 3; if ((c[y >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) { C = 13; break; } switch (c[x >> 2] | 0) { case 2: { c[w >> 2] = Cr( c[j >> 2] | 0, c[s >> 2] | 0, ((c[r >> 2] | 0) - (c[s >> 2] | 0)) | 0, c[p >> 2] | 0, c[y >> 2] | 0, 1 ) | 0; break; } case 0: { c[w >> 2] = gs( c[s >> 2] | 0, ((c[r >> 2] | 0) - (c[s >> 2] | 0)) | 0, c[p >> 2] | 0, c[y >> 2] | 0 ) | 0; break; } case 1: { c[w >> 2] = hs( c[s >> 2] | 0, ((c[r >> 2] | 0) - (c[s >> 2] | 0)) | 0, a[c[p >> 2] >> 0] | 0, c[(x + 8) >> 2] | 0 ) | 0; break; } default: { C = 18; break a; } } if ($q(c[w >> 2] | 0) | 0) { C = 20; break; } if (c[((c[j >> 2] | 0) + 28752 + 32) >> 2] | 0) Nh( ((c[j >> 2] | 0) + 28816) | 0, c[s >> 2] | 0, c[w >> 2] | 0 ) | 0; c[s >> 2] = (c[s >> 2] | 0) + (c[w >> 2] | 0); c[p >> 2] = (c[p >> 2] | 0) + (c[y >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) - (c[y >> 2] | 0); if (c[(x + 4) >> 2] | 0) { C = 25; break; } } if ((C | 0) == 11) { c[i >> 2] = c[y >> 2]; B = c[i >> 2] | 0; l = h; return B | 0; } else if ((C | 0) == 13) { c[i >> 2] = -72; B = c[i >> 2] | 0; l = h; return B | 0; } else if ((C | 0) == 18) { c[i >> 2] = -20; B = c[i >> 2] | 0; l = h; return B | 0; } else if ((C | 0) == 20) { c[i >> 2] = c[w >> 2]; B = c[i >> 2] | 0; l = h; return B | 0; } else if ((C | 0) == 25) { C = ((c[j >> 2] | 0) + 28752) | 0; if ( ((c[C >> 2] | 0) != -1 ? 1 : (c[(C + 4) >> 2] | 0) != -1) ? ((C = ((c[s >> 2] | 0) - (c[q >> 2] | 0)) | 0), (w = ((c[j >> 2] | 0) + 28752) | 0), (C | 0) != (c[w >> 2] | 0) ? 1 : (((((C | 0) < 0) << 31) >> 31) | 0) != (c[(w + 4) >> 2] | 0)) : 0 ) { c[i >> 2] = -20; B = c[i >> 2] | 0; l = h; return B | 0; } do { if (c[((c[j >> 2] | 0) + 28752 + 32) >> 2] | 0) { w = Oh(((c[j >> 2] | 0) + 28816) | 0) | 0; c[z >> 2] = w; if ((c[t >> 2] | 0) >>> 0 < 4) { c[i >> 2] = -22; B = c[i >> 2] | 0; l = h; return B | 0; } c[A >> 2] = hq(c[p >> 2] | 0) | 0; if ((c[A >> 2] | 0) == (c[z >> 2] | 0)) { c[p >> 2] = (c[p >> 2] | 0) + 4; c[t >> 2] = (c[t >> 2] | 0) - 4; break; } c[i >> 2] = -22; B = c[i >> 2] | 0; l = h; return B | 0; } } while (0); c[c[n >> 2] >> 2] = c[p >> 2]; c[c[o >> 2] >> 2] = c[t >> 2]; c[i >> 2] = (c[s >> 2] | 0) - (c[q >> 2] | 0); B = c[i >> 2] | 0; l = h; return B | 0; } return 0; } function fs(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = qq( ((c[g >> 2] | 0) + 28752) | 0, c[h >> 2] | 0, c[i >> 2] | 0, c[((c[g >> 2] | 0) + 28912) >> 2] | 0 ) | 0; i = ($q(c[j >> 2] | 0) | 0) != 0; h = c[j >> 2] | 0; if (i) { c[f >> 2] = h; k = c[f >> 2] | 0; l = e; return k | 0; } if (h >>> 0 > 0) { c[f >> 2] = -72; k = c[f >> 2] | 0; l = e; return k | 0; } if ( c[((c[g >> 2] | 0) + 28752 + 28) >> 2] | 0 ? (c[((c[g >> 2] | 0) + 28908) >> 2] | 0) != (c[((c[g >> 2] | 0) + 28752 + 28) >> 2] | 0) : 0 ) { c[f >> 2] = -32; k = c[f >> 2] | 0; l = e; return k | 0; } if (c[((c[g >> 2] | 0) + 28752 + 32) >> 2] | 0) Lh(((c[g >> 2] | 0) + 28816) | 0, 0, 0) | 0; c[f >> 2] = 0; k = c[f >> 2] | 0; l = e; return k | 0; } function gs(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; if ((c[k >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) { c[g >> 2] = -70; m = c[g >> 2] | 0; l = f; return m | 0; } else { mE(c[h >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0) | 0; c[g >> 2] = c[k >> 2]; m = c[g >> 2] | 0; l = f; return m | 0; } return 0; } function hs(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 4) | 0; m = (h + 16) | 0; n = h; c[j >> 2] = b; c[k >> 2] = e; a[m >> 0] = f; c[n >> 2] = g; if ((c[n >> 2] | 0) >>> 0 > (c[k >> 2] | 0) >>> 0) { c[i >> 2] = -70; o = c[i >> 2] | 0; l = h; return o | 0; } else { oE( c[j >> 2] | 0, ((d[m >> 0] | 0) & 255) | 0, c[n >> 2] | 0 ) | 0; c[i >> 2] = c[n >> 2]; o = c[i >> 2] | 0; l = h; return o | 0; } return 0; } function is(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = oq(c[((c[d >> 2] | 0) + 28912) >> 2] | 0) | 0; c[((c[d >> 2] | 0) + 28744) >> 2] = a; c[((c[d >> 2] | 0) + 28804) >> 2] = 0; a = ((c[d >> 2] | 0) + 28792) | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[((c[d >> 2] | 0) + 28728) >> 2] = 0; c[((c[d >> 2] | 0) + 28732) >> 2] = 0; c[((c[d >> 2] | 0) + 28736) >> 2] = 0; c[((c[d >> 2] | 0) + 28740) >> 2] = 0; c[((c[d >> 2] | 0) + 16 + 10264) >> 2] = 201326604; c[((c[d >> 2] | 0) + 28812) >> 2] = 0; c[((c[d >> 2] | 0) + 28808) >> 2] = 0; c[((c[d >> 2] | 0) + 28908) >> 2] = 0; a = ((c[d >> 2] | 0) + 16 + 28700) | 0; c[a >> 2] = c[2985]; c[(a + 4) >> 2] = c[2986]; c[(a + 8) >> 2] = c[2987]; c[c[d >> 2] >> 2] = (c[d >> 2] | 0) + 16; c[((c[d >> 2] | 0) + 4) >> 2] = (c[d >> 2] | 0) + 16 + 6160; c[((c[d >> 2] | 0) + 8) >> 2] = (c[d >> 2] | 0) + 16 + 4104; c[((c[d >> 2] | 0) + 12) >> 2] = (c[d >> 2] | 0) + 16 + 10264; l = b; return 0; } function js(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; if ((c[i >> 2] | 0) >>> 0 < 8) { c[f >> 2] = ks(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; m = c[f >> 2] | 0; l = e; return m | 0; } c[j >> 2] = hq(c[h >> 2] | 0) | 0; if ((c[j >> 2] | 0) != -332356553) { c[f >> 2] = ks(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; m = c[f >> 2] | 0; l = e; return m | 0; } j = hq(((c[h >> 2] | 0) + 4) | 0) | 0; c[((c[g >> 2] | 0) + 28908) >> 2] = j; c[k >> 2] = ls( ((c[g >> 2] | 0) + 16) | 0, c[h >> 2] | 0, c[i >> 2] | 0 ) | 0; if ($q(c[k >> 2] | 0) | 0) { c[f >> 2] = -30; m = c[f >> 2] | 0; l = e; return m | 0; } else { c[h >> 2] = (c[h >> 2] | 0) + (c[k >> 2] | 0); c[i >> 2] = (c[i >> 2] | 0) - (c[k >> 2] | 0); c[((c[g >> 2] | 0) + 28812) >> 2] = 1; c[((c[g >> 2] | 0) + 28808) >> 2] = 1; c[f >> 2] = ks(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0; m = c[f >> 2] | 0; l = e; return m | 0; } return 0; } function ks(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[((c[f >> 2] | 0) + 28740) >> 2] = c[((c[f >> 2] | 0) + 28728) >> 2]; c[((c[f >> 2] | 0) + 28736) >> 2] = (c[g >> 2] | 0) + (0 - ((c[((c[f >> 2] | 0) + 28728) >> 2] | 0) - (c[((c[f >> 2] | 0) + 28732) >> 2] | 0))); c[((c[f >> 2] | 0) + 28732) >> 2] = c[g >> 2]; c[((c[f >> 2] | 0) + 28728) >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return 0; } function ls(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0; e = l; l = (l + 336) | 0; f = (e + 328) | 0; g = (e + 324) | 0; h = (e + 320) | 0; i = (e + 316) | 0; j = (e + 312) | 0; k = (e + 308) | 0; m = (e + 304) | 0; n = (e + 192) | 0; o = (e + 300) | 0; p = (e + 296) | 0; q = (e + 292) | 0; r = (e + 80) | 0; s = (e + 288) | 0; t = (e + 284) | 0; u = (e + 280) | 0; v = e; w = (e + 276) | 0; x = (e + 272) | 0; y = (e + 268) | 0; z = (e + 264) | 0; A = (e + 260) | 0; B = (e + 256) | 0; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = c[h >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[i >> 2] | 0); if ((c[i >> 2] | 0) >>> 0 <= 8) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[j >> 2] = (c[j >> 2] | 0) + 8; c[m >> 2] = Bp( ((c[g >> 2] | 0) + 10264) | 0, c[j >> 2] | 0, ((c[k >> 2] | 0) - (c[j >> 2] | 0)) | 0, ((c[g >> 2] | 0) + 26652) | 0, 2048 ) | 0; if ($q(c[m >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[j >> 2] = (c[j >> 2] | 0) + (c[m >> 2] | 0); c[o >> 2] = 31; c[q >> 2] = ah( n, o, p, c[j >> 2] | 0, ((c[k >> 2] | 0) - (c[j >> 2] | 0)) | 0 ) | 0; if ($q(c[q >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } if ((c[o >> 2] | 0) >>> 0 > 31) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } if ((c[p >> 2] | 0) >>> 0 > 8) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } zr( ((c[g >> 2] | 0) + 4104) | 0, n, c[o >> 2] | 0, 4032, 4160, c[p >> 2] | 0 ); c[j >> 2] = (c[j >> 2] | 0) + (c[q >> 2] | 0); c[s >> 2] = 52; c[u >> 2] = ah( r, s, t, c[j >> 2] | 0, ((c[k >> 2] | 0) - (c[j >> 2] | 0)) | 0 ) | 0; if ($q(c[u >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } if ((c[s >> 2] | 0) >>> 0 > 52) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } if ((c[t >> 2] | 0) >>> 0 > 9) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } zr( ((c[g >> 2] | 0) + 6160) | 0, r, c[s >> 2] | 0, 5216, 5840, c[t >> 2] | 0 ); c[j >> 2] = (c[j >> 2] | 0) + (c[u >> 2] | 0); c[w >> 2] = 35; c[y >> 2] = ah( v, w, x, c[j >> 2] | 0, ((c[k >> 2] | 0) - (c[j >> 2] | 0)) | 0 ) | 0; if ($q(c[y >> 2] | 0) | 0) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } if ((c[w >> 2] | 0) >>> 0 > 35) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } if ((c[x >> 2] | 0) >>> 0 > 9) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } zr( c[g >> 2] | 0, v, c[w >> 2] | 0, 6416, 5696, c[x >> 2] | 0 ); c[j >> 2] = (c[j >> 2] | 0) + (c[y >> 2] | 0); if ( (((c[j >> 2] | 0) + 12) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } c[A >> 2] = (c[k >> 2] | 0) - ((c[j >> 2] | 0) + 12); c[z >> 2] = 0; while (1) { D = c[j >> 2] | 0; if ((c[z >> 2] | 0) >= 3) { E = 31; break; } c[B >> 2] = hq(D) | 0; c[j >> 2] = (c[j >> 2] | 0) + 4; if (!(c[B >> 2] | 0)) { E = 29; break; } if ((c[B >> 2] | 0) >>> 0 >= (c[A >> 2] | 0) >>> 0) { E = 29; break; } c[((c[g >> 2] | 0) + 28700 + (c[z >> 2] << 2)) >> 2] = c[B >> 2]; c[z >> 2] = (c[z >> 2] | 0) + 1; } if ((E | 0) == 29) { c[f >> 2] = -30; C = c[f >> 2] | 0; l = e; return C | 0; } else if ((E | 0) == 31) { c[f >> 2] = D - (c[h >> 2] | 0); C = c[f >> 2] | 0; l = e; return C | 0; } return 0; } function ms(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 24) | 0; h = (f + 20) | 0; i = (f + 16) | 0; j = (f + 12) | 0; k = (f + 8) | 0; m = (f + 4) | 0; n = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[n >> 2] = hw() | 0; if (!(c[n >> 2] | 0)) { c[g >> 2] = -64; o = c[g >> 2] | 0; l = f; return o | 0; } else { c[m >> 2] = iw( c[n >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0 ) | 0; gq(c[n >> 2] | 0) | 0; c[g >> 2] = c[m >> 2]; o = c[g >> 2] | 0; l = f; return o | 0; } return 0; } function ns() { var a = 0, b = 0, d = 0, e = 0; a = l; l = (l + 16) | 0; b = (a + 4) | 0; d = a; c[d >> 2] = Cy(157816) | 0; if (!(c[d >> 2] | 0)) { c[b >> 2] = 0; e = c[b >> 2] | 0; l = a; return e | 0; } else { dw(c[d >> 2] | 0) | 0; c[b >> 2] = c[d >> 2]; e = c[b >> 2] | 0; l = a; return e | 0; } return 0; } function os(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; i = l; l = (l + 32) | 0; j = (i + 24) | 0; k = (i + 20) | 0; m = (i + 16) | 0; n = (i + 12) | 0; o = (i + 8) | 0; p = (i + 4) | 0; q = i; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; Su(c[j >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0) | 0; Tu(c[j >> 2] | 0, c[k >> 2] | 0); q = Uu( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; l = i; return q | 0; } function ps() { var a = 0, b = 0, d = 0, e = 0; a = l; l = (l + 16) | 0; b = (a + 4) | 0; d = a; c[d >> 2] = Cy(152680) | 0; if (!(c[d >> 2] | 0)) { c[b >> 2] = 0; e = c[b >> 2] | 0; l = a; return e | 0; } else { Ou(c[d >> 2] | 0) | 0; c[b >> 2] = c[d >> 2]; e = c[b >> 2] | 0; l = a; return e | 0; } return 0; } function qs(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; i = l; l = (l + 32) | 0; j = (i + 24) | 0; k = (i + 20) | 0; m = (i + 16) | 0; n = (i + 12) | 0; o = (i + 8) | 0; p = (i + 4) | 0; q = i; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; Jt(c[j >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0) | 0; Kt(c[j >> 2] | 0, c[k >> 2] | 0); q = Lt( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; l = i; return q | 0; } function rs() { var a = 0, b = 0, d = 0; a = l; l = (l + 16) | 0; b = a; c[b >> 2] = c[2988]; c[(b + 4) >> 2] = c[2989]; c[(b + 8) >> 2] = c[2990]; d = Gt(b) | 0; l = a; return d | 0; } function ss(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; i = l; l = (l + 32) | 0; j = (i + 24) | 0; k = (i + 20) | 0; m = (i + 16) | 0; n = (i + 12) | 0; o = (i + 8) | 0; p = (i + 4) | 0; q = i; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; ts(c[j >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0) | 0; us(c[j >> 2] | 0, c[k >> 2] | 0); q = vs( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; l = i; return q | 0; } function ts(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = Ct(c[g >> 2] | 0) | 0; if (hr(c[j >> 2] | 0) | 0) { c[f >> 2] = c[j >> 2]; m = c[f >> 2] | 0; l = e; return m | 0; } if ( ((c[h >> 2] | 0) != 0) & ((c[i >> 2] | 0) != 0) ? ((c[k >> 2] = Dt(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0) | 0), hr(c[k >> 2] | 0) | 0) : 0 ) { c[f >> 2] = -30; m = c[f >> 2] | 0; l = e; return m | 0; } c[f >> 2] = 0; m = c[f >> 2] | 0; l = e; return m | 0; } function us(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; if ( (c[f >> 2] | 0) == (c[((c[e >> 2] | 0) + 21520) >> 2] | 0) ) { l = d; return; } c[((c[e >> 2] | 0) + 21532) >> 2] = c[((c[e >> 2] | 0) + 21520) >> 2]; c[((c[e >> 2] | 0) + 21528) >> 2] = (c[f >> 2] | 0) + (0 - ((c[((c[e >> 2] | 0) + 21520) >> 2] | 0) - (c[((c[e >> 2] | 0) + 21524) >> 2] | 0))); c[((c[e >> 2] | 0) + 21524) >> 2] = c[f >> 2]; c[((c[e >> 2] | 0) + 21520) >> 2] = c[f >> 2]; l = d; return; } function vs(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; h = l; l = (l + 80) | 0; i = (h + 68) | 0; j = (h + 64) | 0; k = (h + 60) | 0; m = (h + 56) | 0; n = (h + 52) | 0; o = (h + 48) | 0; p = (h + 44) | 0; q = (h + 40) | 0; r = (h + 36) | 0; s = (h + 32) | 0; t = (h + 28) | 0; u = (h + 24) | 0; v = (h + 20) | 0; w = (h + 16) | 0; x = (h + 8) | 0; y = h; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[k >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[m >> 2] | 0); c[t >> 2] = c[r >> 2]; c[u >> 2] = c[o >> 2]; if ((c[o >> 2] | 0) >>> 0 < 8) { c[i >> 2] = -72; z = c[i >> 2] | 0; l = h; return z | 0; } c[v >> 2] = Cq(c[n >> 2] | 0, 5) | 0; if (hr(c[v >> 2] | 0) | 0) { c[i >> 2] = c[v >> 2]; z = c[i >> 2] | 0; l = h; return z | 0; } if ( (c[o >> 2] | 0) >>> 0 < (((c[v >> 2] | 0) + 3) | 0) >>> 0 ) { c[i >> 2] = -72; z = c[i >> 2] | 0; l = h; return z | 0; } if (ws(c[j >> 2] | 0, c[n >> 2] | 0, c[v >> 2] | 0) | 0) { c[i >> 2] = -20; z = c[i >> 2] | 0; l = h; return z | 0; } c[p >> 2] = (c[p >> 2] | 0) + (c[v >> 2] | 0); c[u >> 2] = (c[u >> 2] | 0) - (c[v >> 2] | 0); a: while (1) { c[y >> 2] = ir( c[p >> 2] | 0, ((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0, x ) | 0; if (hr(c[y >> 2] | 0) | 0) { A = 11; break; } c[p >> 2] = (c[p >> 2] | 0) + 3; c[u >> 2] = (c[u >> 2] | 0) - 3; if ((c[y >> 2] | 0) >>> 0 > (c[u >> 2] | 0) >>> 0) { A = 13; break; } switch (c[x >> 2] | 0) { case 0: { c[w >> 2] = xs( c[j >> 2] | 0, c[t >> 2] | 0, ((c[s >> 2] | 0) - (c[t >> 2] | 0)) | 0, c[p >> 2] | 0, c[y >> 2] | 0 ) | 0; break; } case 1: { c[w >> 2] = ys( c[t >> 2] | 0, ((c[s >> 2] | 0) - (c[t >> 2] | 0)) | 0, c[p >> 2] | 0, c[y >> 2] | 0 ) | 0; break; } case 2: { c[w >> 2] = zs( c[t >> 2] | 0, ((c[s >> 2] | 0) - (c[t >> 2] | 0)) | 0, a[c[p >> 2] >> 0] | 0, c[(x + 4) >> 2] | 0 ) | 0; break; } case 3: { if (c[u >> 2] | 0) { A = 19; break a; } c[w >> 2] = 0; break; } default: { A = 21; break a; } } if ((c[x >> 2] | 0) == 3) { A = 28; break; } if (hr(c[w >> 2] | 0) | 0) { A = 24; break; } if (c[((c[j >> 2] | 0) + 21552 + 16) >> 2] | 0) Nh( ((c[j >> 2] | 0) + 21592) | 0, c[t >> 2] | 0, c[w >> 2] | 0 ) | 0; c[t >> 2] = (c[t >> 2] | 0) + (c[w >> 2] | 0); c[p >> 2] = (c[p >> 2] | 0) + (c[y >> 2] | 0); c[u >> 2] = (c[u >> 2] | 0) - (c[y >> 2] | 0); } if ((A | 0) == 11) { c[i >> 2] = c[y >> 2]; z = c[i >> 2] | 0; l = h; return z | 0; } else if ((A | 0) == 13) { c[i >> 2] = -72; z = c[i >> 2] | 0; l = h; return z | 0; } else if ((A | 0) == 19) { c[i >> 2] = -72; z = c[i >> 2] | 0; l = h; return z | 0; } else if ((A | 0) == 21) { c[i >> 2] = -1; z = c[i >> 2] | 0; l = h; return z | 0; } else if ((A | 0) == 24) { c[i >> 2] = c[w >> 2]; z = c[i >> 2] | 0; l = h; return z | 0; } else if ((A | 0) == 28) { c[i >> 2] = (c[t >> 2] | 0) - (c[r >> 2] | 0); z = c[i >> 2] | 0; l = h; return z | 0; } return 0; } function ws(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = Aq( ((c[g >> 2] | 0) + 21552) | 0, c[h >> 2] | 0, c[i >> 2] | 0 ) | 0; if ( c[((c[g >> 2] | 0) + 21552 + 12) >> 2] | 0 ? (c[((c[g >> 2] | 0) + 21684) >> 2] | 0) != (c[((c[g >> 2] | 0) + 21552 + 12) >> 2] | 0) : 0 ) { c[f >> 2] = -32; k = c[f >> 2] | 0; l = e; return k | 0; } if (c[((c[g >> 2] | 0) + 21552 + 16) >> 2] | 0) Lh(((c[g >> 2] | 0) + 21592) | 0, 0, 0) | 0; c[f >> 2] = c[j >> 2]; k = c[f >> 2] | 0; l = e; return k | 0; } function xs(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; if ((c[n >> 2] | 0) >>> 0 >= 131072) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } c[p >> 2] = As(c[i >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; m = (hr(c[p >> 2] | 0) | 0) != 0; f = c[p >> 2] | 0; if (m) { c[h >> 2] = f; q = c[h >> 2] | 0; l = g; return q | 0; } else { c[o >> 2] = (c[o >> 2] | 0) + f; c[n >> 2] = (c[n >> 2] | 0) - (c[p >> 2] | 0); c[h >> 2] = Bs( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[o >> 2] | 0, c[n >> 2] | 0 ) | 0; q = c[h >> 2] | 0; l = g; return q | 0; } return 0; } function ys(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; if ((c[k >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) { c[g >> 2] = -70; m = c[g >> 2] | 0; l = f; return m | 0; } else { mE(c[h >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0) | 0; c[g >> 2] = c[k >> 2]; m = c[g >> 2] | 0; l = f; return m | 0; } return 0; } function zs(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 4) | 0; m = (h + 16) | 0; n = h; c[j >> 2] = b; c[k >> 2] = e; a[m >> 0] = f; c[n >> 2] = g; if ((c[n >> 2] | 0) >>> 0 > (c[k >> 2] | 0) >>> 0) { c[i >> 2] = -70; o = c[i >> 2] | 0; l = h; return o | 0; } else { oE( c[j >> 2] | 0, ((d[m >> 0] | 0) & 255) | 0, c[n >> 2] | 0 ) | 0; c[i >> 2] = c[n >> 2]; o = c[i >> 2] | 0; l = h; return o | 0; } return 0; } function As(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0; g = l; l = (l + 80) | 0; h = (g + 64) | 0; i = (g + 60) | 0; j = (g + 56) | 0; k = (g + 52) | 0; m = (g + 48) | 0; n = (g + 44) | 0; o = (g + 40) | 0; p = (g + 36) | 0; q = (g + 32) | 0; r = (g + 28) | 0; s = (g + 24) | 0; t = (g + 20) | 0; u = (g + 16) | 0; v = (g + 12) | 0; w = (g + 8) | 0; x = (g + 4) | 0; y = g; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = c[j >> 2]; if ((c[k >> 2] | 0) >>> 0 < 3) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } switch (((d[c[m >> 2] >> 0] | 0) >> 6) | 0) { case 0: { c[p >> 2] = 0; c[q >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; if ((c[k >> 2] | 0) >>> 0 < 5) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } switch (c[q >> 2] | 0) { case 3: { c[q >> 2] = 5; c[n >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 14) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 6) + ((d[((c[m >> 2] | 0) + 2) >> 0] | 0) >> 2); c[o >> 2] = (((d[((c[m >> 2] | 0) + 2) >> 0] | 0) & 3) << 16) + ((d[((c[m >> 2] | 0) + 3) >> 0] | 0) << 8) + (d[((c[m >> 2] | 0) + 4) >> 0] | 0); break; } case 2: { c[q >> 2] = 4; c[n >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 10) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 2) + ((d[((c[m >> 2] | 0) + 2) >> 0] | 0) >> 6); c[o >> 2] = (((d[((c[m >> 2] | 0) + 2) >> 0] | 0) & 63) << 8) + (d[((c[m >> 2] | 0) + 3) >> 0] | 0); break; } default: { c[q >> 2] = 3; c[p >> 2] = (d[c[m >> 2] >> 0] | 0) & 16; c[n >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 6) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) >> 2); c[o >> 2] = (((d[((c[m >> 2] | 0) + 1) >> 0] | 0) & 3) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); } } if ((c[n >> 2] | 0) >>> 0 > 131072) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } if ( (((c[o >> 2] | 0) + (c[q >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } j = ((c[i >> 2] | 0) + 5132) | 0; f = ((c[i >> 2] | 0) + 21708) | 0; e = c[n >> 2] | 0; b = ((c[m >> 2] | 0) + (c[q >> 2] | 0)) | 0; A = c[o >> 2] | 0; if (c[p >> 2] | 0) B = Xs(j, f, e, b, A) | 0; else B = Ys(j, f, e, b, A) | 0; if (hr(B) | 0) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { c[((c[i >> 2] | 0) + 21688) >> 2] = (c[i >> 2] | 0) + 21708; c[((c[i >> 2] | 0) + 21704) >> 2] = c[n >> 2]; c[((c[i >> 2] | 0) + 21584) >> 2] = 1; n = ((c[i >> 2] | 0) + 21708 + (c[((c[i >> 2] | 0) + 21704) >> 2] | 0)) | 0; a[n >> 0] = 0; a[(n + 1) >> 0] = 0; a[(n + 2) >> 0] = 0; a[(n + 3) >> 0] = 0; a[(n + 4) >> 0] = 0; a[(n + 5) >> 0] = 0; a[(n + 6) >> 0] = 0; a[(n + 7) >> 0] = 0; c[h >> 2] = (c[o >> 2] | 0) + (c[q >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 1: { c[t >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; if ((c[t >> 2] | 0) != 1) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } if (!(c[((c[i >> 2] | 0) + 21584) >> 2] | 0)) { c[h >> 2] = -30; z = c[h >> 2] | 0; l = g; return z | 0; } c[t >> 2] = 3; c[r >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 6) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) >> 2); c[s >> 2] = (((d[((c[m >> 2] | 0) + 1) >> 0] | 0) & 3) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); if ( (((c[s >> 2] | 0) + (c[t >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } c[u >> 2] = Zs( ((c[i >> 2] | 0) + 21708) | 0, c[r >> 2] | 0, ((c[m >> 2] | 0) + (c[t >> 2] | 0)) | 0, c[s >> 2] | 0, ((c[i >> 2] | 0) + 5132) | 0 ) | 0; if (hr(c[u >> 2] | 0) | 0) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { c[((c[i >> 2] | 0) + 21688) >> 2] = (c[i >> 2] | 0) + 21708; c[((c[i >> 2] | 0) + 21704) >> 2] = c[r >> 2]; r = ((c[i >> 2] | 0) + 21708 + (c[((c[i >> 2] | 0) + 21704) >> 2] | 0)) | 0; a[r >> 0] = 0; a[(r + 1) >> 0] = 0; a[(r + 2) >> 0] = 0; a[(r + 3) >> 0] = 0; a[(r + 4) >> 0] = 0; a[(r + 5) >> 0] = 0; a[(r + 6) >> 0] = 0; a[(r + 7) >> 0] = 0; c[h >> 2] = (c[s >> 2] | 0) + (c[t >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 2: { c[w >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; switch (c[w >> 2] | 0) { case 3: { c[v >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 16) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); break; } case 2: { c[v >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 8) + (d[((c[m >> 2] | 0) + 1) >> 0] | 0); break; } default: { c[w >> 2] = 1; c[v >> 2] = (d[c[m >> 2] >> 0] | 0) & 31; } } if ( (((c[w >> 2] | 0) + (c[v >> 2] | 0) + 8) | 0) >>> 0 <= (c[k >> 2] | 0) >>> 0 ) { c[((c[i >> 2] | 0) + 21688) >> 2] = (c[m >> 2] | 0) + (c[w >> 2] | 0); c[((c[i >> 2] | 0) + 21704) >> 2] = c[v >> 2]; c[h >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } if ( (((c[v >> 2] | 0) + (c[w >> 2] | 0)) | 0) >>> 0 > (c[k >> 2] | 0) >>> 0 ) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { mE( ((c[i >> 2] | 0) + 21708) | 0, ((c[m >> 2] | 0) + (c[w >> 2] | 0)) | 0, c[v >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 21688) >> 2] = (c[i >> 2] | 0) + 21708; c[((c[i >> 2] | 0) + 21704) >> 2] = c[v >> 2]; t = ((c[i >> 2] | 0) + 21708 + (c[((c[i >> 2] | 0) + 21704) >> 2] | 0)) | 0; a[t >> 0] = 0; a[(t + 1) >> 0] = 0; a[(t + 2) >> 0] = 0; a[(t + 3) >> 0] = 0; a[(t + 4) >> 0] = 0; a[(t + 5) >> 0] = 0; a[(t + 6) >> 0] = 0; a[(t + 7) >> 0] = 0; c[h >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 3: { c[y >> 2] = ((d[c[m >> 2] >> 0] | 0) >> 4) & 3; switch (c[y >> 2] | 0) { case 3: { c[x >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 16) + ((d[((c[m >> 2] | 0) + 1) >> 0] | 0) << 8) + (d[((c[m >> 2] | 0) + 2) >> 0] | 0); if ((c[k >> 2] | 0) >>> 0 < 4) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } break; } case 2: { c[x >> 2] = (((d[c[m >> 2] >> 0] | 0) & 15) << 8) + (d[((c[m >> 2] | 0) + 1) >> 0] | 0); break; } default: { c[y >> 2] = 1; c[x >> 2] = (d[c[m >> 2] >> 0] | 0) & 31; } } if ((c[x >> 2] | 0) >>> 0 > 131072) { c[h >> 2] = -20; z = c[h >> 2] | 0; l = g; return z | 0; } else { oE( ((c[i >> 2] | 0) + 21708) | 0, ((d[((c[m >> 2] | 0) + (c[y >> 2] | 0)) >> 0] | 0) & 255) | 0, ((c[x >> 2] | 0) + 8) | 0 ) | 0; c[((c[i >> 2] | 0) + 21688) >> 2] = (c[i >> 2] | 0) + 21708; c[((c[i >> 2] | 0) + 21704) >> 2] = c[x >> 2]; c[h >> 2] = (c[y >> 2] | 0) + 1; z = c[h >> 2] | 0; l = g; return z | 0; } break; } default: { } } return 0; } function Bs(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0; g = l; l = (l + 192) | 0; h = (g + 168) | 0; i = (g + 164) | 0; j = (g + 160) | 0; k = (g + 156) | 0; m = (g + 152) | 0; n = (g + 148) | 0; o = (g + 144) | 0; p = (g + 140) | 0; q = (g + 136) | 0; r = (g + 132) | 0; s = (g + 128) | 0; t = (g + 124) | 0; u = (g + 120) | 0; v = (g + 116) | 0; w = (g + 112) | 0; x = (g + 108) | 0; y = (g + 104) | 0; z = (g + 100) | 0; A = (g + 96) | 0; B = (g + 92) | 0; C = (g + 88) | 0; D = (g + 84) | 0; E = (g + 32) | 0; F = (g + 28) | 0; G = (g + 24) | 0; H = (g + 12) | 0; I = (g + 8) | 0; J = (g + 4) | 0; K = g; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[k >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[m >> 2] | 0); c[t >> 2] = c[r >> 2]; c[u >> 2] = c[((c[j >> 2] | 0) + 21688) >> 2]; c[v >> 2] = (c[u >> 2] | 0) + (c[((c[j >> 2] | 0) + 21704) >> 2] | 0); c[w >> 2] = c[j >> 2]; c[x >> 2] = (c[j >> 2] | 0) + 3080; c[y >> 2] = (c[j >> 2] | 0) + 2052; c[z >> 2] = c[((c[j >> 2] | 0) + 21524) >> 2]; c[A >> 2] = c[((c[j >> 2] | 0) + 21528) >> 2]; c[B >> 2] = c[((c[j >> 2] | 0) + 21532) >> 2]; c[D >> 2] = Cs( C, c[w >> 2] | 0, c[x >> 2] | 0, c[y >> 2] | 0, c[((c[j >> 2] | 0) + 21588) >> 2] | 0, c[p >> 2] | 0, c[o >> 2] | 0 ) | 0; o = (hr(c[D >> 2] | 0) | 0) != 0; m = c[D >> 2] | 0; if (o) { c[i >> 2] = m; L = c[i >> 2] | 0; l = g; return L | 0; } c[p >> 2] = (c[p >> 2] | 0) + m; a: do { if (c[C >> 2] | 0) { c[((c[j >> 2] | 0) + 21588) >> 2] = 1; c[F >> 2] = 0; while (1) { if ((c[F >> 2] | 0) >>> 0 >= 3) break; c[(E + 40 + (c[F >> 2] << 2)) >> 2] = c[((c[j >> 2] | 0) + 21540 + (c[F >> 2] << 2)) >> 2]; c[F >> 2] = (c[F >> 2] | 0) + 1; } c[G >> 2] = Ds( E, c[p >> 2] | 0, ((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0 ) | 0; if (hr(c[G >> 2] | 0) | 0) { c[i >> 2] = -20; L = c[i >> 2] | 0; l = g; return L | 0; } Es((E + 16) | 0, E, c[w >> 2] | 0); Es((E + 24) | 0, E, c[y >> 2] | 0); Es((E + 32) | 0, E, c[x >> 2] | 0); while (1) { m = (Fs(E) | 0) >>> 0 <= 2; M = c[C >> 2] | 0; if (!(m ? (c[C >> 2] | 0) != 0 : 0)) break; c[C >> 2] = M + -1; Gs(H, E); m = c[t >> 2] | 0; o = c[s >> 2] | 0; D = c[v >> 2] | 0; k = c[z >> 2] | 0; n = c[A >> 2] | 0; f = c[B >> 2] | 0; c[h >> 2] = c[H >> 2]; c[(h + 4) >> 2] = c[(H + 4) >> 2]; c[(h + 8) >> 2] = c[(H + 8) >> 2]; c[I >> 2] = Hs(m, o, h, u, D, k, n, f) | 0; f = (hr(c[I >> 2] | 0) | 0) != 0; N = c[I >> 2] | 0; if (f) { O = 12; break; } c[t >> 2] = (c[t >> 2] | 0) + N; } if ((O | 0) == 12) { c[i >> 2] = N; L = c[i >> 2] | 0; l = g; return L | 0; } if (M | 0) { c[i >> 2] = -20; L = c[i >> 2] | 0; l = g; return L | 0; } c[J >> 2] = 0; while (1) { if ((c[J >> 2] | 0) >>> 0 >= 3) break a; c[((c[j >> 2] | 0) + 21540 + (c[J >> 2] << 2)) >> 2] = c[(E + 40 + (c[J >> 2] << 2)) >> 2]; c[J >> 2] = (c[J >> 2] | 0) + 1; } } } while (0); c[K >> 2] = (c[v >> 2] | 0) - (c[u >> 2] | 0); if ( (c[K >> 2] | 0) >>> 0 > (((c[s >> 2] | 0) - (c[t >> 2] | 0)) | 0) >>> 0 ) { c[i >> 2] = -70; L = c[i >> 2] | 0; l = g; return L | 0; } else { mE(c[t >> 2] | 0, c[u >> 2] | 0, c[K >> 2] | 0) | 0; c[t >> 2] = (c[t >> 2] | 0) + (c[K >> 2] | 0); c[i >> 2] = (c[t >> 2] | 0) - (c[r >> 2] | 0); L = c[i >> 2] | 0; l = g; return L | 0; } return 0; } function Cs(a, b, e, f, g, h, i) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; j = l; l = (l + 80) | 0; k = (j + 68) | 0; m = (j + 64) | 0; n = (j + 60) | 0; o = (j + 56) | 0; p = (j + 52) | 0; q = (j + 48) | 0; r = (j + 44) | 0; s = (j + 40) | 0; t = (j + 36) | 0; u = (j + 32) | 0; v = (j + 28) | 0; w = (j + 24) | 0; x = (j + 20) | 0; y = (j + 16) | 0; z = (j + 12) | 0; A = (j + 8) | 0; B = (j + 4) | 0; C = j; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = c[r >> 2]; c[u >> 2] = (c[t >> 2] | 0) + (c[s >> 2] | 0); c[v >> 2] = c[t >> 2]; if ((c[s >> 2] | 0) >>> 0 < 1) { c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } s = c[v >> 2] | 0; c[v >> 2] = s + 1; c[w >> 2] = d[s >> 0]; if (!(c[w >> 2] | 0)) { c[c[m >> 2] >> 2] = 0; c[k >> 2] = 1; D = c[k >> 2] | 0; l = j; return D | 0; } do { if ((c[w >> 2] | 0) > 127) { s = c[v >> 2] | 0; if ((c[w >> 2] | 0) == 255) { if (((s + 2) | 0) >>> 0 <= (c[u >> 2] | 0) >>> 0) { c[w >> 2] = ((Eq(c[v >> 2] | 0) | 0) & 65535) + 32512; c[v >> 2] = (c[v >> 2] | 0) + 2; break; } c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } else { if (s >>> 0 < (c[u >> 2] | 0) >>> 0) { s = ((c[w >> 2] | 0) - 128) << 8; r = c[v >> 2] | 0; c[v >> 2] = r + 1; c[w >> 2] = s + (d[r >> 0] | 0); break; } c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } } } while (0); c[c[m >> 2] >> 2] = c[w >> 2]; c[x >> 2] = (d[c[v >> 2] >> 0] | 0) >> 6; c[y >> 2] = ((d[c[v >> 2] >> 0] | 0) >> 4) & 3; c[z >> 2] = ((d[c[v >> 2] >> 0] | 0) >> 2) & 3; c[v >> 2] = (c[v >> 2] | 0) + 1; if ( (c[v >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) + -3) | 0) >>> 0 ) { c[k >> 2] = -72; D = c[k >> 2] | 0; l = j; return D | 0; } c[A >> 2] = Ss( c[n >> 2] | 0, c[x >> 2] | 0, 35, 9, c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, 5440, 6, c[q >> 2] | 0 ) | 0; if (hr(c[A >> 2] | 0) | 0) { c[k >> 2] = -20; D = c[k >> 2] | 0; l = j; return D | 0; } c[v >> 2] = (c[v >> 2] | 0) + (c[A >> 2] | 0); c[B >> 2] = Ss( c[p >> 2] | 0, c[y >> 2] | 0, 28, 8, c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, 5520, 5, c[q >> 2] | 0 ) | 0; if (hr(c[B >> 2] | 0) | 0) { c[k >> 2] = -20; D = c[k >> 2] | 0; l = j; return D | 0; } c[v >> 2] = (c[v >> 2] | 0) + (c[B >> 2] | 0); c[C >> 2] = Ss( c[o >> 2] | 0, c[z >> 2] | 0, 52, 9, c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, 5584, 6, c[q >> 2] | 0 ) | 0; if (hr(c[C >> 2] | 0) | 0) { c[k >> 2] = -20; D = c[k >> 2] | 0; l = j; return D | 0; } else { c[v >> 2] = (c[v >> 2] | 0) + (c[C >> 2] | 0); c[k >> 2] = (c[v >> 2] | 0) - (c[t >> 2] | 0); D = c[k >> 2] | 0; l = j; return D | 0; } return 0; } function Cc(a) { a = a | 0; var b = 0; b = l; l = (l + a) | 0; l = (l + 15) & -16; return b | 0; } function Dc() { return l | 0; } function Ec(a) { a = a | 0; l = a; } function Fc(a, b) { a = a | 0; b = b | 0; l = a; m = b; } function Gc(a, b) { a = a | 0; b = b | 0; if (!n) { n = a; o = b; } } function Hc(a) { a = a | 0; y = a; } function Ic() { return y | 0; } function Jc() { var a = 0; a = l; l = (l + 16) | 0; Kz(Cz(12856, 12862) | 0) | 0; Az(12856, a) | 0; l = a; return; } function Kc(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0.0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; e = l; l = (l + 32) | 0; f = e; g = c[d >> 2] | 0; h = hb(12865) | 0; i = db(g | 0, h | 0) | 0; ab(h | 0); j = +Za(i | 0, 11e3, f | 0); jb(c[f >> 2] | 0); h = ~~j >>> 0; ab(i | 0); i = (b + 4) | 0; g = c[i >> 2] | 0; k = c[b >> 2] | 0; m = (g - k) | 0; n = k; a: do { if (m >>> 0 < h >>> 0) { o = (h - m) | 0; p = (b + 8) | 0; q = c[p >> 2] | 0; if (((q - g) | 0) >>> 0 >= o >>> 0) { r = o; s = g; while (1) { a[s >> 0] = 0; s = ((c[i >> 2] | 0) + 1) | 0; c[i >> 2] = s; r = (r + -1) | 0; if (!r) break a; } } if ((h | 0) < 0) Wz(b); r = (q - k) | 0; s = r << 1; t = r >>> 0 < 1073741823 ? s >>> 0 < h >>> 0 ? h : s : 2147483647; if (!t) u = 0; else u = Uz(t) | 0; oE((u + m) | 0, 0, o | 0) | 0; if ((m | 0) > 0) mE(u | 0, n | 0, m | 0) | 0; c[b >> 2] = u; c[i >> 2] = u + h; c[p >> 2] = u + t; if (k | 0) Vz(n); } else if (m >>> 0 > h >>> 0) c[i >> 2] = n + h; } while (0); n = cb(12872) | 0; i = c[d >> 2] | 0; m = hb(12879) | 0; k = db(i | 0, m | 0) | 0; ab(m | 0); m = c[b >> 2] | 0; eb(n | 0); c[f >> 2] = n; c[(f + 8) >> 2] = m; c[(f + 16) >> 2] = h; h = gb(k | 0, 3, 11072, f | 0) | 0; ab(k | 0); cd(h, 12891, d); ab(h | 0); ab(n | 0); l = e; return; } function Lc(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; e = l; l = (l + 32) | 0; f = e; g = cb(12895) | 0; h = cb(12872) | 0; i = hb(12879) | 0; j = db(g | 0, i | 0) | 0; ab(i | 0); i = c[d >> 2] | 0; k = (d + 4) | 0; m = c[k >> 2] | 0; eb(h | 0); c[f >> 2] = h; c[(f + 8) >> 2] = i; c[(f + 16) >> 2] = m - i; i = gb(j | 0, 3, 11092, f | 0) | 0; m = i; ab(j | 0); j = hb(12879) | 0; n = db(h | 0, j | 0) | 0; ab(j | 0); c[f >> 2] = (c[k >> 2] | 0) - (c[d >> 2] | 0); d = gb(n | 0, 1, 11104, f | 0) | 0; ab(n | 0); n = hb(12879) | 0; k = db(g | 0, n | 0) | 0; ab(n | 0); eb(d | 0); c[f >> 2] = d; n = gb(k | 0, 1, 11108, f | 0) | 0; c[b >> 2] = n; ab(k | 0); if ((a[21600] | 0) == 0 ? WD(21600) | 0 : 0) c[5404] = bb(2, 11084) | 0; k = c[5404] | 0; eb(i | 0); c[f >> 2] = m; $a(k | 0, n | 0, 12891, f | 0); ab(d | 0); ab(i | 0); ab(h | 0); ab(g | 0); l = e; return; } function Mc(a) { a = a | 0; return ((c[(a + 4) >> 2] | 0) - (c[a >> 2] | 0)) | 0; } function Nc(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; d = l; l = (l + 32) | 0; e = d; f = cb(12872) | 0; g = cb(12895) | 0; h = hb(12879) | 0; i = db(g | 0, h | 0) | 0; ab(h | 0); h = c[b >> 2] | 0; j = c[(b + 4) >> 2] | 0; eb(f | 0); c[e >> 2] = f; c[(e + 8) >> 2] = h; c[(e + 16) >> 2] = j - h; c[a >> 2] = gb(i | 0, 3, 11092, e | 0) | 0; ab(i | 0); ab(g | 0); ab(f | 0); l = d; return; } function Oc(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = d; f = Uz(32) | 0; Pc(e, a); Ef(f, e, b); b = c[e >> 2] | 0; if (!b) { l = d; return f | 0; } c[(e + 4) >> 2] = b; Vz(b); l = d; return f | 0; } function Pc(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0.0, n = 0, o = 0, p = 0; d = l; l = (l + 48) | 0; e = d; f = (d + 24) | 0; c[f >> 2] = 0; g = (f + 4) | 0; c[g >> 2] = 0; h = (f + 8) | 0; c[h >> 2] = 0; i = c[b >> 2] | 0; j = hb(12865) | 0; k = db(i | 0, j | 0) | 0; ab(j | 0); m = +Za(k | 0, 11016, e | 0); jb(c[e >> 2] | 0); j = ~~m >>> 0; do { if (j | 0) if ((j | 0) < 0) Wz(f); else { i = Uz(j) | 0; oE(i | 0, 0, j | 0) | 0; n = (i + j) | 0; c[f >> 2] = i; c[g >> 2] = n; c[h >> 2] = n; break; } } while (0); ab(k | 0); k = c[b >> 2] | 0; j = hb(12865) | 0; n = db(k | 0, j | 0) | 0; ab(j | 0); m = +Za(n | 0, 11e3, e | 0); jb(c[e >> 2] | 0); j = ~~m >>> 0; ab(n | 0); n = cb(12872) | 0; k = c[b >> 2] | 0; i = hb(12879) | 0; o = db(k | 0, i | 0) | 0; ab(i | 0); i = c[f >> 2] | 0; eb(n | 0); c[e >> 2] = n; c[(e + 8) >> 2] = i; c[(e + 16) >> 2] = j; i = gb(o | 0, 3, 11072, e | 0) | 0; ab(o | 0); o = c[f >> 2] | 0; e = o; if ((((c[h >> 2] | 0) - o) | 0) >>> 0 < j >>> 0) { k = ((c[g >> 2] | 0) - o) | 0; p = Uz(j) | 0; if ((k | 0) > 0) mE(p | 0, e | 0, k | 0) | 0; c[f >> 2] = p; c[g >> 2] = p + k; c[h >> 2] = p + j; if (o | 0) Vz(e); } dd(i, 12891, b); ab(i | 0); ab(n | 0); c[a >> 2] = c[f >> 2]; c[(a + 4) >> 2] = c[g >> 2]; c[(a + 8) >> 2] = c[h >> 2]; l = d; return; } function Qc(a) { a = a | 0; var b = 0, d = 0, e = 0; b = l; l = (l + 16) | 0; d = b; e = Uz(32) | 0; Pc(d, a); Pf(e, d); a = c[d >> 2] | 0; if (!a) { l = b; return e | 0; } c[(d + 4) >> 2] = a; Vz(a); l = b; return e | 0; } function Rc(a, b) { a = a | 0; b = b | 0; return ag(a, b) | 0; } function Sc(a, b) { a = a | 0; b = b | 0; return mg(a, b) | 0; } function Tc(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 48) | 0; f = (e + 28) | 0; g = (e + 24) | 0; h = e; c[f >> 2] = 0; i = (f + 4) | 0; c[i >> 2] = 0; c[(f + 8) >> 2] = 0; j = c[b >> 2] | 0; c[g >> 2] = j; eb(j | 0); Kc(f, g); ab(c[g >> 2] | 0); g = (h + 16) | 0; c[h >> 2] = 11128; c[(h + 4) >> 2] = d; c[g >> 2] = h; d = vg(a, f, h) | 0; a = c[g >> 2] | 0; if ((h | 0) != (a | 0)) { if (a | 0) wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); } else wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); a = c[f >> 2] | 0; if (!a) { l = e; return d | 0; } c[i >> 2] = a; Vz(a); l = e; return d | 0; } function Uc(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 32) | 0; e = d; f = (e + 16) | 0; c[e >> 2] = 11172; c[(e + 4) >> 2] = b; c[f >> 2] = e; b = xg(a, e) | 0; a = c[f >> 2] | 0; if ((e | 0) == (a | 0)) { wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); l = d; return b | 0; } if (!a) { l = d; return b | 0; } wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); l = d; return b | 0; } function Vc(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 32) | 0; e = d; f = (e + 16) | 0; c[e >> 2] = 11216; c[(e + 4) >> 2] = b; c[f >> 2] = e; b = yg(a, e) | 0; a = c[f >> 2] | 0; if ((e | 0) == (a | 0)) { wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); l = d; return b | 0; } if (!a) { l = d; return b | 0; } wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); l = d; return b | 0; } function Wc(a) { a = a | 0; return Bg(a) | 0; } function Xc(a, b) { a = a | 0; b = b | 0; return Mg(a, b) | 0; } function Yc(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 48) | 0; f = (e + 28) | 0; g = (e + 24) | 0; h = e; c[f >> 2] = 0; i = (f + 4) | 0; c[i >> 2] = 0; c[(f + 8) >> 2] = 0; j = c[b >> 2] | 0; c[g >> 2] = j; eb(j | 0); Kc(f, g); ab(c[g >> 2] | 0); g = (h + 16) | 0; c[h >> 2] = 11260; c[(h + 4) >> 2] = d; c[g >> 2] = h; d = Vg(a, f, h) | 0; a = c[g >> 2] | 0; if ((h | 0) != (a | 0)) { if (a | 0) wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); } else wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); a = c[f >> 2] | 0; if (!a) { l = e; return d | 0; } c[i >> 2] = a; Vz(a); l = e; return d | 0; } function Zc(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 32) | 0; e = d; f = (e + 16) | 0; c[e >> 2] = 11304; c[(e + 4) >> 2] = b; c[f >> 2] = e; b = Xg(a, e) | 0; a = c[f >> 2] | 0; if ((e | 0) == (a | 0)) { wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); l = d; return b | 0; } if (!a) { l = d; return b | 0; } wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); l = d; return b | 0; } function _c(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 32) | 0; e = d; f = (e + 16) | 0; c[e >> 2] = 11348; c[(e + 4) >> 2] = b; c[f >> 2] = e; b = Yg(a, e) | 0; a = c[f >> 2] | 0; if ((e | 0) == (a | 0)) { wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); l = d; return b | 0; } if (!a) { l = d; return b | 0; } wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); l = d; return b | 0; } function $c(a) { a = a | 0; ad(12902); Ra(12856, 1, 11420, 14747, 61, 2); Ra(12911, 3, 11424, 14750, 1, 26); Ra(12925, 2, 11436, 14761, 20, 27); Ra(12943, 2, 11436, 14761, 20, 28); Ma( 10096, 10112, 10128, 0, 14742, 31, 14745, 0, 14745, 0, 12960, 14747, 62 ); Ra(12980, 3, 11444, 14765, 9, 21); Ma( 10152, 10168, 10184, 0, 14742, 32, 14745, 0, 14745, 0, 13002, 14747, 63 ); Ra(13024, 2, 11456, 14761, 22, 33); Ma( 10200, 10208, 10224, 0, 14742, 34, 14745, 0, 14745, 0, 13048, 14747, 64 ); Na(10200, 1, 11464, 14742, 35, 1); a = Uz(8) | 0; c[a >> 2] = 23; c[(a + 4) >> 2] = 0; Oa(10200, 13058, 3, 11468, 14765, 10, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 24; c[(a + 4) >> 2] = 0; Oa(10200, 13072, 3, 11480, 14765, 11, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 7; c[(a + 4) >> 2] = 0; Oa(10200, 13084, 5, 48, 15008, 1, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 12; c[(a + 4) >> 2] = 0; Oa(10200, 13093, 4, 80, 14770, 8, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 9; c[(a + 4) >> 2] = 0; Oa(10200, 13104, 5, 96, 15008, 2, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 10; c[(a + 4) >> 2] = 0; Oa(10200, 13122, 5, 128, 15008, 3, a | 0, 0); Ma( 10240, 10248, 10264, 0, 14742, 36, 14745, 0, 14745, 0, 13142, 14747, 65 ); Na(10240, 1, 11492, 14742, 37, 2); a = Uz(8) | 0; c[a >> 2] = 25; c[(a + 4) >> 2] = 0; Oa(10240, 13168, 3, 11496, 14765, 13, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 26; c[(a + 4) >> 2] = 0; Oa(10240, 13174, 3, 11508, 14765, 14, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 15; c[(a + 4) >> 2] = 0; Oa(10240, 13189, 4, 160, 14770, 11, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 27; c[(a + 4) >> 2] = 0; Oa(10240, 13199, 3, 11520, 14765, 16, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 28; c[(a + 4) >> 2] = 0; Oa(10240, 13205, 3, 11520, 14765, 16, a | 0, 0); Ma( 10280, 10288, 10304, 0, 14742, 38, 14745, 0, 14745, 0, 13209, 14747, 66 ); Na(10280, 1, 11532, 14742, 39, 3); a = Uz(8) | 0; c[a >> 2] = 40; c[(a + 4) >> 2] = 0; Oa(10280, 13168, 2, 11536, 14761, 29, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 30; c[(a + 4) >> 2] = 0; Oa(10280, 13174, 3, 11544, 14765, 17, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 18; c[(a + 4) >> 2] = 0; Oa(10280, 13189, 4, 176, 14770, 12, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 31; c[(a + 4) >> 2] = 0; Oa(10280, 13199, 3, 11556, 14765, 19, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 32; c[(a + 4) >> 2] = 0; Oa(10280, 13205, 3, 11556, 14765, 19, a | 0, 0); return; } function ad(a) { a = a | 0; Ma( 10032, 10056, 10072, 0, 14742, 41, 14745, 0, 14745, 0, a | 0, 14747, 67 ); Na(10032, 1, 11384, 14742, 42, 4); a = Uz(8) | 0; c[a >> 2] = 29; c[(a + 4) >> 2] = 0; Oa(10032, 14524, 3, 11388, 14750, 2, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 3; c[(a + 4) >> 2] = 0; Oa(10032, 14534, 4, 16, 14755, 4, a | 0, 0); a = Uz(8) | 0; c[a >> 2] = 43; c[(a + 4) >> 2] = 0; Oa(10032, 14541, 2, 11400, 14761, 33, a | 0, 0); a = Uz(4) | 0; c[a >> 2] = 4; Oa(10032, 14546, 3, 11408, 14765, 20, a | 0, 0); a = Uz(4) | 0; c[a >> 2] = 21; Oa(10032, 12891, 4, 32, 14770, 13, a | 0, 0); return; } function bd(a) { a = a | 0; wa(a | 0) | 0; sA(); } function cd(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = f; if ((a[21600] | 0) == 0 ? WD(21600) | 0 : 0) c[5404] = bb(2, 11084) | 0; h = c[5404] | 0; eb(c[e >> 2] | 0); c[g >> 2] = c[e >> 2]; $a(h | 0, b | 0, d | 0, g | 0); l = f; return; } function dd(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = f; if ((a[21608] | 0) == 0 ? WD(21608) | 0 : 0) c[5405] = bb(2, 11112) | 0; h = c[5405] | 0; eb(c[e >> 2] | 0); c[g >> 2] = c[e >> 2]; $a(h | 0, b | 0, d | 0, g | 0); l = f; return; } function ed(a) { a = a | 0; Vz(a); return; } function fd(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11128; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function gd(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11128; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function hd(a) { a = a | 0; return; } function id(a) { a = a | 0; Vz(a); return; } function jd(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = d; f = (d + 8) | 0; Lc(f, b); b = c[(a + 4) >> 2] | 0; a = c[f >> 2] | 0; eb(a | 0); c[e >> 2] = a; ab(_a(c[b >> 2] | 0, 1, 11108, e | 0) | 0); ab(a | 0); l = d; return; } function kd(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 13464 ? (a + 4) | 0 : 0) | 0; } function ld(a) { a = a | 0; return 9872; } function md(a) { a = a | 0; Vz(a); return; } function nd(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11172; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function od(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11172; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function pd(a) { a = a | 0; return; } function qd(a) { a = a | 0; Vz(a); return; } function rd(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = d; f = (d + 8) | 0; Lc(f, b); b = c[(a + 4) >> 2] | 0; a = c[f >> 2] | 0; eb(a | 0); c[e >> 2] = a; ab(_a(c[b >> 2] | 0, 1, 11108, e | 0) | 0); ab(a | 0); l = d; return; } function sd(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 13666 ? (a + 4) | 0 : 0) | 0; } function td(a) { a = a | 0; return 9896; } function ud(a) { a = a | 0; Vz(a); return; } function vd(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11216; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function wd(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11216; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function xd(a) { a = a | 0; return; } function yd(a) { a = a | 0; Vz(a); return; } function zd(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = d; f = (d + 8) | 0; Lc(f, b); b = c[(a + 4) >> 2] | 0; a = c[f >> 2] | 0; eb(a | 0); c[e >> 2] = a; ab(_a(c[b >> 2] | 0, 1, 11108, e | 0) | 0); ab(a | 0); l = d; return; } function Ad(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 13859 ? (a + 4) | 0 : 0) | 0; } function Bd(a) { a = a | 0; return 9920; } function Cd(a) { a = a | 0; return; } function Dd(a) { a = a | 0; Vz(a); return; } function Ed(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11260; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function Fd(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11260; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function Gd(a) { a = a | 0; return; } function Hd(a) { a = a | 0; Vz(a); return; } function Id(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = d; f = (d + 8) | 0; Lc(f, b); b = c[(a + 4) >> 2] | 0; a = c[f >> 2] | 0; eb(a | 0); c[e >> 2] = a; ab(_a(c[b >> 2] | 0, 1, 11108, e | 0) | 0); ab(a | 0); l = d; return; } function Jd(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 14061 ? (a + 4) | 0 : 0) | 0; } function Kd(a) { a = a | 0; return 9944; } function Ld(a) { a = a | 0; Vz(a); return; } function Md(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11304; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function Nd(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11304; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function Od(a) { a = a | 0; return; } function Pd(a) { a = a | 0; Vz(a); return; } function Qd(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = d; f = (d + 8) | 0; Lc(f, b); b = c[(a + 4) >> 2] | 0; a = c[f >> 2] | 0; eb(a | 0); c[e >> 2] = a; ab(_a(c[b >> 2] | 0, 1, 11108, e | 0) | 0); ab(a | 0); l = d; return; } function Rd(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 14267 ? (a + 4) | 0 : 0) | 0; } function Sd(a) { a = a | 0; return 9968; } function Td(a) { a = a | 0; Vz(a); return; } function Ud(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11348; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function Vd(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11348; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function Wd(a) { a = a | 0; return; } function Xd(a) { a = a | 0; Vz(a); return; } function Yd(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = d; f = (d + 8) | 0; Lc(f, b); b = c[(a + 4) >> 2] | 0; a = c[f >> 2] | 0; eb(a | 0); c[e >> 2] = a; ab(_a(c[b >> 2] | 0, 1, 11108, e | 0) | 0); ab(a | 0); l = d; return; } function Zd(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 14464 ? (a + 4) | 0 : 0) | 0; } function _d(a) { a = a | 0; return 9992; } function $d(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0; e = (b + 4) | 0; f = c[e >> 2] | 0; g = (b + 8) | 0; h = c[g >> 2] | 0; if ((f | 0) != (h | 0)) { a[f >> 0] = a[d >> 0] | 0; c[e >> 2] = (c[e >> 2] | 0) + 1; return; } i = c[b >> 2] | 0; j = (f - i) | 0; f = (j + 1) | 0; k = i; if ((f | 0) < 0) Wz(b); l = (h - i) | 0; h = l << 1; m = l >>> 0 < 1073741823 ? h >>> 0 < f >>> 0 ? f : h : 2147483647; if (!m) n = 0; else n = Uz(m) | 0; h = (n + j) | 0; a[h >> 0] = a[d >> 0] | 0; if ((j | 0) > 0) mE(n | 0, k | 0, j | 0) | 0; c[b >> 2] = n; c[e >> 2] = h + 1; c[g >> 2] = n + m; if (!i) return; Vz(k); return; } function ae(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = (a + 4) | 0; f = c[a >> 2] | 0; g = ((c[e >> 2] | 0) - f) | 0; if (g >>> 0 < b >>> 0) { de(a, (b - g) | 0, d); return; } if (g >>> 0 <= b >>> 0) return; c[e >> 2] = f + b; return; } function be(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0; f = l; l = (l + 16) | 0; g = f; h = c[b >> 2] | 0; if ((((c[(b + 4) >> 2] | 0) - h) | 0) >>> 0 <= e >>> 0) { i = 1; c[a >> 2] = i; l = f; return; } c[g >> 2] = d[(h + e) >> 0]; i = kb(10960, g | 0) | 0; c[a >> 2] = i; l = f; return; } function ce(b, d, e) { b = b | 0; d = d | 0; e = e | 0; a[((c[b >> 2] | 0) + d) >> 0] = a[e >> 0] | 0; return 1; } function de(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0; f = (b + 8) | 0; g = c[f >> 2] | 0; h = (b + 4) | 0; i = c[h >> 2] | 0; if (((g - i) | 0) >>> 0 >= d >>> 0) { j = d; k = i; do { a[k >> 0] = a[e >> 0] | 0; k = ((c[h >> 2] | 0) + 1) | 0; c[h >> 2] = k; j = (j + -1) | 0; } while ((j | 0) != 0); return; } j = c[b >> 2] | 0; k = (i - j) | 0; l = (k + d) | 0; if ((l | 0) < 0) Wz(b); m = (g - j) | 0; g = m << 1; n = m >>> 0 < 1073741823 ? g >>> 0 < l >>> 0 ? l : g : 2147483647; if (!n) o = 0; else o = Uz(n) | 0; g = (o + k) | 0; k = (o + n) | 0; n = (i + d - j) | 0; j = d; d = g; while (1) { a[d >> 0] = a[e >> 0] | 0; j = (j + -1) | 0; if (!j) break; else d = (d + 1) | 0; } d = c[b >> 2] | 0; j = ((c[h >> 2] | 0) - d) | 0; e = (g + (0 - j)) | 0; if ((j | 0) > 0) mE(e | 0, d | 0, j | 0) | 0; c[b >> 2] = e; c[h >> 2] = o + n; c[f >> 2] = k; if (!d) return; Vz(d); return; } function ee(a) { a = a | 0; return 10032; } function fe(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (b | 0) { c[(a + 4) >> 2] = b; Vz(b); } Vz(a); return; } function ge() { var a = 0; a = Uz(12) | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; return a | 0; } function he(a) { a = a | 0; return oc[a & 7]() | 0; } function ie(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0; f = l; l = (l + 16) | 0; g = f; h = c[b >> 2] | 0; i = c[(b + 4) >> 2] | 0; b = (d + (i >> 1)) | 0; if (!(i & 1)) j = h; else j = c[((c[b >> 2] | 0) + h) >> 2] | 0; a[g >> 0] = e; xc[j & 31](b, g); l = f; return; } function je(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0; g = l; l = (l + 16) | 0; h = g; i = c[b >> 2] | 0; j = c[(b + 4) >> 2] | 0; b = (d + (j >> 1)) | 0; if (!(j & 1)) k = i; else k = c[((c[b >> 2] | 0) + i) >> 2] | 0; a[h >> 0] = f; yc[k & 7](b, e, h); l = g; return; } function ke(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = c[a >> 2] | 0; e = c[(a + 4) >> 2] | 0; a = (b + (e >> 1)) | 0; if (!(e & 1)) f = d; else f = c[((c[a >> 2] | 0) + d) >> 2] | 0; return pc[f & 63](a) | 0; } function le(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0; e = l; l = (l + 16) | 0; f = e; yc[c[a >> 2] & 7](f, b, d); eb(c[f >> 2] | 0); d = c[f >> 2] | 0; ab(d | 0); l = e; return d | 0; } function me(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0; g = l; l = (l + 16) | 0; h = g; i = c[b >> 2] | 0; a[h >> 0] = f; f = rc[i & 31](d, e, h) | 0; l = g; return f | 0; } function ne(a) { a = a | 0; vc[a & 3](); return; } function oe(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0; e = l; l = (l + 16) | 0; f = e; c[f >> 2] = d; xc[a & 31](b, f); ab(c[f >> 2] | 0); l = e; return; } function pe(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; d = l; l = (l + 16) | 0; e = d; xc[a & 31](e, b); eb(c[e >> 2] | 0); b = c[e >> 2] | 0; ab(b | 0); l = d; return b | 0; } function qe(a) { a = a | 0; return 10096; } function re(a) { a = a | 0; if (!a) return; se(a); Vz(a); return; } function se(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = b; e = c[a >> 2] | 0; do { if (e) { c[d >> 2] = e; f = (a + 24) | 0; g = c[f >> 2] | 0; if (!g) { h = va(4) | 0; c[h >> 2] = 12636; ya(h | 0, 10800, 50); } else { xc[c[((c[g >> 2] | 0) + 24) >> 2] & 31](g, d); c[a >> 2] = 0; i = f; break; } } else i = (a + 24) | 0; } while (0); d = c[i >> 2] | 0; if (((a + 8) | 0) == (d | 0)) { wc[c[((c[d >> 2] | 0) + 16) >> 2] & 127](d); l = b; return; } if (!d) { l = b; return; } wc[c[((c[d >> 2] | 0) + 20) >> 2] & 127](d); l = b; return; } function te(a) { a = a | 0; var b = 0; b = c[(a + 16) >> 2] | 0; if ((a | 0) == (b | 0)) { wc[c[((c[b >> 2] | 0) + 16) >> 2] & 127](b); return; } if (!b) return; wc[c[((c[b >> 2] | 0) + 20) >> 2] & 127](b); return; } function ue(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0; e = l; l = (l + 16) | 0; f = e; c[f >> 2] = b; b = qc[a & 63](f, d) | 0; ab(c[f >> 2] | 0); l = e; return b | 0; } function ve(a) { a = a | 0; return 10152; } function we(a) { a = a | 0; if (!a) return; xe(a); Vz(a); return; } function xe(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = b; e = c[a >> 2] | 0; do { if (e) { c[d >> 2] = e; f = (a + 24) | 0; g = c[f >> 2] | 0; if (!g) { h = va(4) | 0; c[h >> 2] = 12636; ya(h | 0, 10800, 50); } else { xc[c[((c[g >> 2] | 0) + 24) >> 2] & 31](g, d); c[a >> 2] = 0; i = f; break; } } else i = (a + 24) | 0; } while (0); d = c[i >> 2] | 0; if (((a + 8) | 0) == (d | 0)) { wc[c[((c[d >> 2] | 0) + 16) >> 2] & 127](d); l = b; return; } if (!d) { l = b; return; } wc[c[((c[d >> 2] | 0) + 20) >> 2] & 127](d); l = b; return; } function ye(a) { a = a | 0; var b = 0; b = c[(a + 16) >> 2] | 0; if ((a | 0) == (b | 0)) { wc[c[((c[b >> 2] | 0) + 16) >> 2] & 127](b); return; } if (!b) return; wc[c[((c[b >> 2] | 0) + 20) >> 2] & 127](b); return; } function ze(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; d = l; l = (l + 16) | 0; e = d; c[e >> 2] = b; b = pc[a & 63](e) | 0; ab(c[e >> 2] | 0); l = d; return b | 0; } function Ae(a) { a = a | 0; return 10200; } function Be(a) { a = a | 0; if (!a) return; Vz(a); return; } function Ce() { return Uz(1) | 0; } function De(a) { a = a | 0; return oc[a & 7]() | 0; } function Ee(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = c[a >> 2] | 0; f = c[(a + 4) >> 2] | 0; a = (b + (f >> 1)) | 0; if (!(f & 1)) g = e; else g = c[((c[a >> 2] | 0) + e) >> 2] | 0; return qc[g & 63](a, d) | 0; } function Fe(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = c[a >> 2] | 0; f = c[(a + 4) >> 2] | 0; a = (b + (f >> 1)) | 0; if (!(f & 1)) g = e; else g = c[((c[a >> 2] | 0) + e) >> 2] | 0; return qc[g & 63](a, d) | 0; } function Ge(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0; g = c[a >> 2] | 0; h = c[(a + 4) >> 2] | 0; a = (b + (h >> 1)) | 0; if (!(h & 1)) i = g; else i = c[((c[a >> 2] | 0) + g) >> 2] | 0; return sc[i & 15](a, d, e, f) | 0; } function He(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = c[a >> 2] | 0; g = c[(a + 4) >> 2] | 0; a = (b + (g >> 1)) | 0; if (!(g & 1)) h = f; else h = c[((c[a >> 2] | 0) + f) >> 2] | 0; return rc[h & 31](a, d, e) | 0; } function Ie(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0; g = c[a >> 2] | 0; h = c[(a + 4) >> 2] | 0; a = (b + (h >> 1)) | 0; if (!(h & 1)) i = g; else i = c[((c[a >> 2] | 0) + g) >> 2] | 0; return sc[i & 15](a, d, e, f) | 0; } function Je(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0; g = c[a >> 2] | 0; h = c[(a + 4) >> 2] | 0; a = (b + (h >> 1)) | 0; if (!(h & 1)) i = g; else i = c[((c[a >> 2] | 0) + g) >> 2] | 0; return sc[i & 15](a, d, e, f) | 0; } function Ke(a) { a = a | 0; return 10240; } function Le(a) { a = a | 0; if (!a) return; $f(a); Vz(a); return; } function Me() { var a = 0; a = Uz(36) | 0; _f(a); return a | 0; } function Ne(a) { a = a | 0; return oc[a & 7]() | 0; } function Oe(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = c[a >> 2] | 0; f = c[(a + 4) >> 2] | 0; a = (b + (f >> 1)) | 0; if (!(f & 1)) g = e; else g = c[((c[a >> 2] | 0) + e) >> 2] | 0; return qc[g & 63](a, d) | 0; } function Pe(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = c[a >> 2] | 0; f = c[(a + 4) >> 2] | 0; a = (b + (f >> 1)) | 0; if (!(f & 1)) g = e; else g = c[((c[a >> 2] | 0) + e) >> 2] | 0; return qc[g & 63](a, d) | 0; } function Qe(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 16) | 0; g = (f + 4) | 0; h = f; i = c[a >> 2] | 0; j = c[(a + 4) >> 2] | 0; a = (b + (j >> 1)) | 0; if (!(j & 1)) k = i; else k = c[((c[a >> 2] | 0) + i) >> 2] | 0; c[g >> 2] = d; c[h >> 2] = e; e = rc[k & 31](a, g, h) | 0; ab(c[h >> 2] | 0); ab(c[g >> 2] | 0); l = f; return e | 0; } function Re(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = e; g = c[a >> 2] | 0; h = c[(a + 4) >> 2] | 0; a = (b + (h >> 1)) | 0; if (!(h & 1)) i = g; else i = c[((c[a >> 2] | 0) + g) >> 2] | 0; c[f >> 2] = d; d = qc[i & 63](a, f) | 0; ab(c[f >> 2] | 0); l = e; return d | 0; } function Se(a) { a = a | 0; return 10280; } function Te(a) { a = a | 0; if (!a) return; Ag(a); Vz(a); return; } function Ue() { var a = 0; a = Uz(36) | 0; zg(a); return a | 0; } function Ve(a) { a = a | 0; return oc[a & 7]() | 0; } function We(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = c[a >> 2] | 0; e = c[(a + 4) >> 2] | 0; a = (b + (e >> 1)) | 0; if (!(e & 1)) f = d; else f = c[((c[a >> 2] | 0) + d) >> 2] | 0; return pc[f & 63](a) | 0; } function Xe(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = c[a >> 2] | 0; f = c[(a + 4) >> 2] | 0; a = (b + (f >> 1)) | 0; if (!(f & 1)) g = e; else g = c[((c[a >> 2] | 0) + e) >> 2] | 0; return qc[g & 63](a, d) | 0; } function Ye(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 16) | 0; g = (f + 4) | 0; h = f; i = c[a >> 2] | 0; j = c[(a + 4) >> 2] | 0; a = (b + (j >> 1)) | 0; if (!(j & 1)) k = i; else k = c[((c[a >> 2] | 0) + i) >> 2] | 0; c[g >> 2] = d; c[h >> 2] = e; e = rc[k & 31](a, g, h) | 0; ab(c[h >> 2] | 0); ab(c[g >> 2] | 0); l = f; return e | 0; } function Ze(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = e; g = c[a >> 2] | 0; h = c[(a + 4) >> 2] | 0; a = (b + (h >> 1)) | 0; if (!(h & 1)) i = g; else i = c[((c[a >> 2] | 0) + g) >> 2] | 0; c[f >> 2] = d; d = qc[i & 63](a, f) | 0; ab(c[f >> 2] | 0); l = e; return d | 0; } function _e() { $c(0); return; } function $e(a, b) { a = a | 0; b = b | 0; a = lj(b) | 0; b = (Ph(a) | 0) == 0; return (b ? (a >>> 0 > 2147483646 ? -2 : a) : -1) | 0; } function af(a, b) { a = a | 0; b = b | 0; var d = 0; a = c[b >> 2] | 0; d = wq(a, ((c[(b + 4) >> 2] | 0) - a) | 0) | 0; a = (Ph(d) | 0) == 0; return (a ? (d >>> 0 > 2147483646 ? -2 : d) : -1) | 0; } function bf(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0; a = c[b >> 2] | 0; f = c[d >> 2] | 0; g = Go( a, ((c[(b + 4) >> 2] | 0) - a) | 0, f, ((c[(d + 4) >> 2] | 0) - f) | 0, e ) | 0; e = (Ph(g) | 0) == 0; return (e ? (g >>> 0 > 2147483646 ? -2 : g) : -1) | 0; } function cf(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0; a = c[b >> 2] | 0; e = c[d >> 2] | 0; f = ux( a, ((c[(b + 4) >> 2] | 0) - a) | 0, e, ((c[(d + 4) >> 2] | 0) - e) | 0 ) | 0; e = (Ph(f) | 0) == 0; return (e ? (f >>> 0 > 2147483646 ? -2 : f) : -1) | 0; } function df(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; a = l; l = (l + 32) | 0; f = a; g = mj() | 0; c[f >> 2] = g; h = (f + 8) | 0; c[(f + 24) >> 2] = h; c[h >> 2] = 11576; c[(f + 12) >> 2] = 68; if (!g) { i = -3; ff(f); l = a; return i | 0; } h = c[b >> 2] | 0; j = c[d >> 2] | 0; k = Lo( g, h, ((c[(b + 4) >> 2] | 0) - h) | 0, j, ((c[(d + 4) >> 2] | 0) - j) | 0, c[e >> 2] | 0 ) | 0; e = (Ph(k) | 0) == 0; i = e ? (k >>> 0 > 2147483646 ? -2 : k) : -1; ff(f); l = a; return i | 0; } function ef(a) { a = a | 0; qj(a) | 0; return; } function ff(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = b; e = c[a >> 2] | 0; do { if (e) { c[d >> 2] = e; f = (a + 24) | 0; g = c[f >> 2] | 0; if (!g) { h = va(4) | 0; c[h >> 2] = 12636; ya(h | 0, 10800, 50); } else { xc[c[((c[g >> 2] | 0) + 24) >> 2] & 31](g, d); c[a >> 2] = 0; i = f; break; } } else i = (a + 24) | 0; } while (0); d = c[i >> 2] | 0; if (((a + 8) | 0) == (d | 0)) { wc[c[((c[d >> 2] | 0) + 16) >> 2] & 127](d); l = b; return; } if (!d) { l = b; return; } wc[c[((c[d >> 2] | 0) + 20) >> 2] & 127](d); l = b; return; } function gf(a) { a = a | 0; var b = 0; b = c[(a + 16) >> 2] | 0; if ((a | 0) == (b | 0)) { wc[c[((c[b >> 2] | 0) + 16) >> 2] & 127](b); return; } if (!b) return; wc[c[((c[b >> 2] | 0) + 20) >> 2] & 127](b); return; } function hf(a) { a = a | 0; return; } function jf(a) { a = a | 0; Vz(a); return; } function kf(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11576; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function lf(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11576; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function mf(a) { a = a | 0; return; } function nf(a) { a = a | 0; Vz(a); return; } function of(a, b) { a = a | 0; b = b | 0; wc[c[(a + 4) >> 2] & 127](c[b >> 2] | 0); return; } function pf(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 15195 ? (a + 4) | 0 : 0) | 0; } function qf(a) { a = a | 0; return 10336; } function rf(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; a = l; l = (l + 32) | 0; f = a; g = Wp() | 0; c[f >> 2] = g; h = (f + 8) | 0; c[(f + 24) >> 2] = h; c[h >> 2] = 11620; c[(f + 12) >> 2] = 69; if (!g) { i = -4; tf(f); l = a; return i | 0; } h = c[b >> 2] | 0; j = c[d >> 2] | 0; k = Dx( g, h, ((c[(b + 4) >> 2] | 0) - h) | 0, j, ((c[(d + 4) >> 2] | 0) - j) | 0, c[e >> 2] | 0 ) | 0; e = (Ph(k) | 0) == 0; i = e ? (k >>> 0 > 2147483646 ? -2 : k) : -1; tf(f); l = a; return i | 0; } function sf(a) { a = a | 0; Xp(a) | 0; return; } function tf(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = b; e = c[a >> 2] | 0; do { if (e) { c[d >> 2] = e; f = (a + 24) | 0; g = c[f >> 2] | 0; if (!g) { h = va(4) | 0; c[h >> 2] = 12636; ya(h | 0, 10800, 50); } else { xc[c[((c[g >> 2] | 0) + 24) >> 2] & 31](g, d); c[a >> 2] = 0; i = f; break; } } else i = (a + 24) | 0; } while (0); d = c[i >> 2] | 0; if (((a + 8) | 0) == (d | 0)) { wc[c[((c[d >> 2] | 0) + 16) >> 2] & 127](d); l = b; return; } if (!d) { l = b; return; } wc[c[((c[d >> 2] | 0) + 20) >> 2] & 127](d); l = b; return; } function uf(a) { a = a | 0; var b = 0; b = c[(a + 16) >> 2] | 0; if ((a | 0) == (b | 0)) { wc[c[((c[b >> 2] | 0) + 16) >> 2] & 127](b); return; } if (!b) return; wc[c[((c[b >> 2] | 0) + 20) >> 2] & 127](b); return; } function vf(a) { a = a | 0; return; } function wf(a) { a = a | 0; Vz(a); return; } function xf(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11620; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function yf(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11620; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function zf(a) { a = a | 0; return; } function Af(a) { a = a | 0; Vz(a); return; } function Bf(a, b) { a = a | 0; b = b | 0; wc[c[(a + 4) >> 2] & 127](c[b >> 2] | 0); return; } function Cf(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 15349 ? (a + 4) | 0 : 0) | 0; } function Df(a) { a = a | 0; return 10384; } function Ef(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0; e = c[b >> 2] | 0; c[a >> 2] = Ho(e, ((c[(b + 4) >> 2] | 0) - e) | 0, d) | 0; d = (a + 8) | 0; c[(a + 24) >> 2] = d; c[d >> 2] = 11664; c[(a + 12) >> 2] = 70; return; } function Ff(a) { a = a | 0; rj(a) | 0; return; } function Gf(a) { a = a | 0; return; } function Hf(a) { a = a | 0; Vz(a); return; } function If(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11664; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function Jf(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11664; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function Kf(a) { a = a | 0; return; } function Lf(a) { a = a | 0; Vz(a); return; } function Mf(a, b) { a = a | 0; b = b | 0; wc[c[(a + 4) >> 2] & 127](c[b >> 2] | 0); return; } function Nf(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 15503 ? (a + 4) | 0 : 0) | 0; } function Of(a) { a = a | 0; return 10432; } function Pf(a, b) { a = a | 0; b = b | 0; var d = 0; d = c[b >> 2] | 0; c[a >> 2] = Cx(d, ((c[(b + 4) >> 2] | 0) - d) | 0) | 0; d = (a + 8) | 0; c[(a + 24) >> 2] = d; c[d >> 2] = 11708; c[(a + 12) >> 2] = 71; return; } function Qf(a) { a = a | 0; Yp(a) | 0; return; } function Rf(a) { a = a | 0; return; } function Sf(a) { a = a | 0; Vz(a); return; } function Tf(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11708; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function Uf(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11708; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function Vf(a) { a = a | 0; return; } function Wf(a) { a = a | 0; Vz(a); return; } function Xf(a, b) { a = a | 0; b = b | 0; wc[c[(a + 4) >> 2] & 127](c[b >> 2] | 0); return; } function Yf(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 15661 ? (a + 4) | 0 : 0) | 0; } function Zf(a) { a = a | 0; return 10480; } function _f(a) { a = a | 0; var b = 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 44; b = (a + 8) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; c[(b + 12) >> 2] = 0; c[(b + 16) >> 2] = 0; c[(b + 20) >> 2] = 0; c[(b + 24) >> 2] = 0; return; } function $f(a) { a = a | 0; var b = 0; b = c[(a + 24) >> 2] | 0; if (b | 0) { c[(a + 28) >> 2] = b; Vz(b); } b = c[(a + 12) >> 2] | 0; if (b | 0) { c[(a + 16) >> 2] = b; Vz(b); } b = c[a >> 2] | 0; c[a >> 2] = 0; if (!b) return; pc[c[(a + 4) >> 2] & 63](b) | 0; return; } function ag(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 32) | 0; e = d; f = (e + 16) | 0; c[e >> 2] = 11752; c[(e + 4) >> 2] = b; c[f >> 2] = e; b = bg(a, e) | 0; a = c[f >> 2] | 0; if ((e | 0) == (a | 0)) { wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); l = d; return b | 0; } if (!a) { l = d; return b | 0; } wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); l = d; return b | 0; } function bg(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; d = l; l = (l + 16) | 0; e = d; if (c[a >> 2] | 0) { f = 1; l = d; return f | 0; } g = Mo() | 0; if (!g) { f = 0; l = d; return f | 0; } c[e >> 2] = g; h = c[(b + 16) >> 2] | 0; if (!h) { b = va(4) | 0; c[b >> 2] = 12636; ya(b | 0, 10800, 50); } if ( Ph(qc[c[((c[h >> 2] | 0) + 24) >> 2] & 63](h, e) | 0) | 0 ) { Oo(g) | 0; f = 0; l = d; return f | 0; } e = c[a >> 2] | 0; c[a >> 2] = g; g = (a + 4) | 0; if (e | 0) pc[c[g >> 2] & 63](e) | 0; c[g >> 2] = 44; g = Po() | 0; e = (a + 12) | 0; h = (a + 20) | 0; b = c[e >> 2] | 0; i = b; if ((((c[h >> 2] | 0) - b) | 0) >>> 0 < g >>> 0) { j = (a + 16) | 0; k = ((c[j >> 2] | 0) - b) | 0; m = Uz(g) | 0; if ((k | 0) > 0) mE(m | 0, i | 0, k | 0) | 0; c[e >> 2] = m; c[j >> 2] = m + k; c[h >> 2] = m + g; if (b | 0) Vz(i); } cg((a + 24) | 0, Qo() | 0); c[(a + 8) >> 2] = (c[h >> 2] | 0) - (c[e >> 2] | 0); f = 1; l = d; return f | 0; } function cg(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0; e = (b + 4) | 0; f = c[e >> 2] | 0; g = c[b >> 2] | 0; h = (f - g) | 0; i = g; if (h >>> 0 >= d >>> 0) { if (h >>> 0 <= d >>> 0) return; c[e >> 2] = i + d; return; } j = (d - h) | 0; k = (b + 8) | 0; l = c[k >> 2] | 0; if (((l - f) | 0) >>> 0 >= j >>> 0) { m = j; n = f; do { a[n >> 0] = 0; n = ((c[e >> 2] | 0) + 1) | 0; c[e >> 2] = n; m = (m + -1) | 0; } while ((m | 0) != 0); return; } if ((d | 0) < 0) Wz(b); m = (l - g) | 0; l = m << 1; n = m >>> 0 < 1073741823 ? l >>> 0 < d >>> 0 ? d : l : 2147483647; if (!n) o = 0; else o = Uz(n) | 0; oE((o + h) | 0, 0, j | 0) | 0; if ((h | 0) > 0) mE(o | 0, i | 0, h | 0) | 0; c[b >> 2] = o; c[e >> 2] = o + d; c[k >> 2] = o + n; if (!g) return; Vz(i); return; } function dg(a) { a = a | 0; return; } function eg(a) { a = a | 0; Vz(a); return; } function fg(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11752; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function gg(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11752; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function hg(a) { a = a | 0; return; } function ig(a) { a = a | 0; Vz(a); return; } function jg(a, b) { a = a | 0; b = b | 0; return Wo(c[b >> 2] | 0, c[(a + 4) >> 2] | 0) | 0; } function kg(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 15819 ? (a + 4) | 0 : 0) | 0; } function lg(a) { a = a | 0; return 10528; } function mg(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 32) | 0; e = d; f = (e + 16) | 0; c[e >> 2] = 11796; c[(e + 4) >> 2] = b; c[f >> 2] = e; b = bg(a, e) | 0; a = c[f >> 2] | 0; if ((e | 0) == (a | 0)) { wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); l = d; return b | 0; } if (!a) { l = d; return b | 0; } wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); l = d; return b | 0; } function ng(a) { a = a | 0; Vz(a); return; } function og(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11796; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function pg(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11796; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function qg(a) { a = a | 0; return; } function rg(a) { a = a | 0; Vz(a); return; } function sg(a, b) { a = a | 0; b = b | 0; return Uo(c[b >> 2] | 0, c[c[(a + 4) >> 2] >> 2] | 0) | 0; } function tg(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 16003 ? (a + 4) | 0 : 0) | 0; } function ug(a) { a = a | 0; return 10560; } function vg(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; if (!(c[b >> 2] | 0)) { f = 0; return f | 0; } g = (d + 4) | 0; h = c[d >> 2] | 0; i = ((c[g >> 2] | 0) - h) | 0; if (!i) { f = 1; return f | 0; } j = (b + 12) | 0; k = (b + 20) | 0; l = (b + 16) | 0; m = (b + 8) | 0; n = 0; o = h; h = i; a: while (1) { i = c[k >> 2] | 0; p = c[j >> 2] | 0; q = c[l >> 2] | 0; r = (p - q + (i - p)) | 0; s = (h - n) | 0; t = s >>> 0 < r >>> 0 ? s : r; s = (o + n) | 0; u = (s + t) | 0; n = (t + n) | 0; if (!t) { v = p; w = q; } else { p = q; q = i; i = s; while (1) { if ((p | 0) == (q | 0)) { s = c[j >> 2] | 0; t = (q - s) | 0; x = (t + 1) | 0; y = s; if ((x | 0) < 0) { z = 9; break a; } A = t << 1; B = t >>> 0 < 1073741823 ? A >>> 0 < x >>> 0 ? x : A : 2147483647; if (!B) C = 0; else C = Uz(B) | 0; A = (C + t) | 0; a[A >> 0] = a[i >> 0] | 0; if ((t | 0) > 0) mE(C | 0, y | 0, t | 0) | 0; c[j >> 2] = C; c[l >> 2] = A + 1; c[k >> 2] = C + B; if (s | 0) Vz(y); } else { a[p >> 0] = a[i >> 0] | 0; c[l >> 2] = (c[l >> 2] | 0) + 1; } y = (i + 1) | 0; if ((y | 0) == (u | 0)) break; p = c[l >> 2] | 0; q = c[k >> 2] | 0; i = y; } v = c[j >> 2] | 0; w = c[l >> 2] | 0; } if ( ( (r | 0) == 0 ? 1 : ((w - v) | 0) >>> 0 >= (c[m >> 2] | 0) >>> 0 ) ? !(wg(b, e) | 0) : 0 ) { f = 0; z = 22; break; } o = c[d >> 2] | 0; h = ((c[g >> 2] | 0) - o) | 0; if (h >>> 0 <= n >>> 0) { f = 1; z = 22; break; } } if ((z | 0) == 9) Wz(j); else if ((z | 0) == 22) return f | 0; return 0; } function wg(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; d = l; l = (l + 32) | 0; e = (d + 12) | 0; f = d; g = (a + 12) | 0; h = c[g >> 2] | 0; i = (a + 16) | 0; j = c[i >> 2] | 0; k = h; if ((h | 0) == (j | 0)) { m = 1; l = d; return m | 0; } c[e >> 2] = h; h = (e + 4) | 0; n = (j - k) | 0; c[h >> 2] = n; j = (e + 8) | 0; c[j >> 2] = 0; do { if (n) { o = (a + 24) | 0; p = (a + 32) | 0; q = (f + 4) | 0; r = (a + 28) | 0; s = (f + 8) | 0; t = (a + 8) | 0; u = (b + 16) | 0; while (1) { cg(o, ((c[p >> 2] | 0) - (c[o >> 2] | 0)) | 0); v = c[o >> 2] | 0; c[f >> 2] = v; c[q >> 2] = (c[r >> 2] | 0) - v; c[s >> 2] = 0; v = Zo(c[a >> 2] | 0, f, e) | 0; c[t >> 2] = v; if (Ph(v) | 0) { w = 8; break; } cg(o, c[s >> 2] | 0); v = c[u >> 2] | 0; if (!v) { w = 6; break; } xc[c[((c[v >> 2] | 0) + 24) >> 2] & 31](v, o); if ((c[j >> 2] | 0) >>> 0 >= (c[h >> 2] | 0) >>> 0) { w = 9; break; } } if ((w | 0) == 6) { o = va(4) | 0; c[o >> 2] = 12636; ya(o | 0, 10800, 50); } else if ((w | 0) == 8) { x = 0; break; } else if ((w | 0) == 9) { y = c[g >> 2] | 0; w = 10; break; } } else { y = k; w = 10; } } while (0); if ((w | 0) == 10) { c[i >> 2] = y; x = 1; } m = x; l = d; return m | 0; } function xg(a, b) { a = a | 0; b = b | 0; return wg(a, b) | 0; } function yg(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; d = l; l = (l + 16) | 0; e = d; if (!(c[a >> 2] | 0)) { f = 1; l = d; return f | 0; } if ( (c[(a + 12) >> 2] | 0) != (c[(a + 16) >> 2] | 0) ? !(wg(a, b) | 0) : 0 ) g = 0; else h = 4; do { if ((h | 0) == 4) { i = (a + 24) | 0; cg(i, ((c[(a + 32) >> 2] | 0) - (c[i >> 2] | 0)) | 0); j = c[i >> 2] | 0; c[e >> 2] = j; c[(e + 4) >> 2] = (c[(a + 28) >> 2] | 0) - j; j = (e + 8) | 0; c[j >> 2] = 0; if (_o(c[a >> 2] | 0, e) | 0) { f = 0; l = d; return f | 0; } cg(i, c[j >> 2] | 0); j = c[(b + 16) >> 2] | 0; if (!j) { k = va(4) | 0; c[k >> 2] = 12636; ya(k | 0, 10800, 50); } else { xc[c[((c[j >> 2] | 0) + 24) >> 2] & 31](j, i); g = 1; break; } } } while (0); b = c[a >> 2] | 0; c[a >> 2] = 0; if (!b) { f = g; l = d; return f | 0; } pc[c[(a + 4) >> 2] & 63](b) | 0; f = g; l = d; return f | 0; } function zg(a) { a = a | 0; var b = 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 45; b = (a + 8) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; c[(b + 12) >> 2] = 0; c[(b + 16) >> 2] = 0; c[(b + 20) >> 2] = 0; c[(b + 24) >> 2] = 0; return; } function Ag(a) { a = a | 0; var b = 0; b = c[(a + 24) >> 2] | 0; if (b | 0) { c[(a + 28) >> 2] = b; Vz(b); } b = c[(a + 12) >> 2] | 0; if (b | 0) { c[(a + 16) >> 2] = b; Vz(b); } b = c[a >> 2] | 0; c[a >> 2] = 0; if (!b) return; pc[c[(a + 4) >> 2] & 63](b) | 0; return; } function Bg(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 32) | 0; d = b; e = (d + 16) | 0; c[d >> 2] = 11840; c[e >> 2] = d; f = Cg(a, d) | 0; a = c[e >> 2] | 0; if ((d | 0) == (a | 0)) { wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); l = b; return f | 0; } if (!a) { l = b; return f | 0; } wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); l = b; return f | 0; } function Cg(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; d = l; l = (l + 16) | 0; e = d; if (c[a >> 2] | 0) { f = 1; l = d; return f | 0; } g = Ex() | 0; if (!g) { f = 0; l = d; return f | 0; } c[e >> 2] = g; h = c[(b + 16) >> 2] | 0; if (!h) { b = va(4) | 0; c[b >> 2] = 12636; ya(b | 0, 10800, 50); } b = qc[c[((c[h >> 2] | 0) + 24) >> 2] & 63](h, e) | 0; if (Ph(b) | 0) { Gx(g) | 0; f = 0; l = d; return f | 0; } e = c[a >> 2] | 0; c[a >> 2] = g; g = (a + 4) | 0; if (e | 0) pc[c[g >> 2] & 63](e) | 0; c[g >> 2] = 45; g = Hx() | 0; e = (a + 12) | 0; h = (a + 20) | 0; i = c[e >> 2] | 0; j = i; if ((((c[h >> 2] | 0) - i) | 0) >>> 0 < g >>> 0) { k = (a + 16) | 0; m = ((c[k >> 2] | 0) - i) | 0; n = Uz(g) | 0; if ((m | 0) > 0) mE(n | 0, j | 0, m | 0) | 0; c[e >> 2] = n; c[k >> 2] = n + m; c[h >> 2] = n + g; if (i | 0) Vz(j); } cg((a + 24) | 0, Ix() | 0); c[(a + 8) >> 2] = b; f = 1; l = d; return f | 0; } function Dg(a) { a = a | 0; return; } function Eg(a) { a = a | 0; Vz(a); return; } function Fg(a) { a = a | 0; a = Uz(8) | 0; c[a >> 2] = 11840; return a | 0; } function Gg(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11840; return; } function Hg(a) { a = a | 0; return; } function Ig(a) { a = a | 0; Vz(a); return; } function Jg(a, b) { a = a | 0; b = b | 0; return Mx(c[b >> 2] | 0) | 0; } function Kg(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 16184 ? (a + 4) | 0 : 0) | 0; } function Lg(a) { a = a | 0; return 10584; } function Mg(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 32) | 0; e = d; f = (e + 16) | 0; c[e >> 2] = 11884; c[(e + 4) >> 2] = b; c[f >> 2] = e; b = Cg(a, e) | 0; a = c[f >> 2] | 0; if ((e | 0) == (a | 0)) { wc[c[((c[a >> 2] | 0) + 16) >> 2] & 127](a); l = d; return b | 0; } if (!a) { l = d; return b | 0; } wc[c[((c[a >> 2] | 0) + 20) >> 2] & 127](a); l = d; return b | 0; } function Ng(a) { a = a | 0; Vz(a); return; } function Og(a) { a = a | 0; var b = 0; b = Uz(8) | 0; c[b >> 2] = 11884; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return b | 0; } function Pg(a, b) { a = a | 0; b = b | 0; c[b >> 2] = 11884; c[(b + 4) >> 2] = c[(a + 4) >> 2]; return; } function Qg(a) { a = a | 0; return; } function Rg(a) { a = a | 0; Vz(a); return; } function Sg(a, b) { a = a | 0; b = b | 0; return Nx(c[b >> 2] | 0, c[c[(a + 4) >> 2] >> 2] | 0) | 0; } function Tg(a, b) { a = a | 0; b = b | 0; return ((c[(b + 4) >> 2] | 0) == 16372 ? (a + 4) | 0 : 0) | 0; } function Ug(a) { a = a | 0; return 10616; } function Vg(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; if (!(c[b >> 2] | 0)) { f = 0; return f | 0; } g = (d + 4) | 0; h = c[d >> 2] | 0; i = ((c[g >> 2] | 0) - h) | 0; if (!i) { f = 1; return f | 0; } j = (b + 12) | 0; k = (b + 20) | 0; l = (b + 16) | 0; m = (b + 8) | 0; n = 0; o = h; h = i; a: while (1) { i = c[k >> 2] | 0; p = c[j >> 2] | 0; q = c[l >> 2] | 0; r = (p - q + (i - p)) | 0; s = (h - n) | 0; t = s >>> 0 < r >>> 0 ? s : r; s = (o + n) | 0; u = (s + t) | 0; n = (t + n) | 0; if (!t) { v = p; w = q; } else { p = q; q = i; i = s; while (1) { if ((p | 0) == (q | 0)) { s = c[j >> 2] | 0; t = (q - s) | 0; x = (t + 1) | 0; y = s; if ((x | 0) < 0) { z = 9; break a; } A = t << 1; B = t >>> 0 < 1073741823 ? A >>> 0 < x >>> 0 ? x : A : 2147483647; if (!B) C = 0; else C = Uz(B) | 0; A = (C + t) | 0; a[A >> 0] = a[i >> 0] | 0; if ((t | 0) > 0) mE(C | 0, y | 0, t | 0) | 0; c[j >> 2] = C; c[l >> 2] = A + 1; c[k >> 2] = C + B; if (s | 0) Vz(y); } else { a[p >> 0] = a[i >> 0] | 0; c[l >> 2] = (c[l >> 2] | 0) + 1; } y = (i + 1) | 0; if ((y | 0) == (u | 0)) break; p = c[l >> 2] | 0; q = c[k >> 2] | 0; i = y; } v = c[j >> 2] | 0; w = c[l >> 2] | 0; } if ( ( (r | 0) == 0 ? 1 : ((w - v) | 0) >>> 0 >= (c[m >> 2] | 0) >>> 0 ) ? !(Wg(b, e) | 0) : 0 ) { f = 0; z = 22; break; } o = c[d >> 2] | 0; h = ((c[g >> 2] | 0) - o) | 0; if (h >>> 0 <= n >>> 0) { f = 1; z = 22; break; } } if ((z | 0) == 9) Wz(j); else if ((z | 0) == 22) return f | 0; return 0; } function Wg(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; d = l; l = (l + 32) | 0; e = (d + 12) | 0; f = d; g = (a + 12) | 0; h = c[g >> 2] | 0; i = (a + 16) | 0; j = c[i >> 2] | 0; k = h; if ((h | 0) == (j | 0)) { m = 1; l = d; return m | 0; } c[e >> 2] = h; h = (e + 4) | 0; n = (j - k) | 0; c[h >> 2] = n; j = (e + 8) | 0; c[j >> 2] = 0; do { if (n) { o = (a + 24) | 0; p = (a + 32) | 0; q = (f + 4) | 0; r = (a + 28) | 0; s = (f + 8) | 0; t = (a + 8) | 0; u = (b + 16) | 0; while (1) { cg(o, ((c[p >> 2] | 0) - (c[o >> 2] | 0)) | 0); v = c[o >> 2] | 0; c[f >> 2] = v; c[q >> 2] = (c[r >> 2] | 0) - v; c[s >> 2] = 0; v = Qx(c[a >> 2] | 0, f, e) | 0; c[t >> 2] = v; if (Ph(v) | 0) { w = 8; break; } cg(o, c[s >> 2] | 0); v = c[u >> 2] | 0; if (!v) { w = 6; break; } xc[c[((c[v >> 2] | 0) + 24) >> 2] & 31](v, o); if ((c[j >> 2] | 0) >>> 0 >= (c[h >> 2] | 0) >>> 0) { w = 9; break; } } if ((w | 0) == 6) { o = va(4) | 0; c[o >> 2] = 12636; ya(o | 0, 10800, 50); } else if ((w | 0) == 8) { x = 0; break; } else if ((w | 0) == 9) { y = c[g >> 2] | 0; w = 10; break; } } else { y = k; w = 10; } } while (0); if ((w | 0) == 10) { c[i >> 2] = y; x = 1; } m = x; l = d; return m | 0; } function Xg(a, b) { a = a | 0; b = b | 0; return Wg(a, b) | 0; } function Yg(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = c[a >> 2] | 0; if (!d) { e = 1; return e | 0; } if ((c[(a + 12) >> 2] | 0) != (c[(a + 16) >> 2] | 0)) { f = Wg(a, b) | 0; b = c[a >> 2] | 0; c[a >> 2] = 0; if (!b) { e = f; return e | 0; } else { g = f; h = b; } } else { c[a >> 2] = 0; g = 1; h = d; } pc[c[(a + 4) >> 2] & 63](h) | 0; e = g; return e | 0; } function Zg(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = _g(c[d >> 2] | 0) | 0; l = b; return a | 0; } function _g(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function $g(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = _g(c[d >> 2] | 0) | 0; l = b; return a | 0; } function ah(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; h = l; l = (l + 80) | 0; i = (h + 72) | 0; j = (h + 68) | 0; k = (h + 64) | 0; m = (h + 60) | 0; n = (h + 56) | 0; o = (h + 52) | 0; p = (h + 48) | 0; q = (h + 44) | 0; r = (h + 40) | 0; s = (h + 36) | 0; t = (h + 32) | 0; u = (h + 28) | 0; v = (h + 24) | 0; w = (h + 20) | 0; x = (h + 16) | 0; y = (h + 12) | 0; z = (h + 8) | 0; A = (h + 4) | 0; B = h; c[j >> 2] = a; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = c[n >> 2]; c[q >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); c[r >> 2] = c[p >> 2]; c[x >> 2] = 0; c[y >> 2] = 0; if ((c[o >> 2] | 0) >>> 0 < 4) { c[i >> 2] = -72; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = bh(c[r >> 2] | 0) | 0; c[s >> 2] = (c[v >> 2] & 15) + 5; if ((c[s >> 2] | 0) > 15) { c[i >> 2] = -44; C = c[i >> 2] | 0; l = h; return C | 0; } c[v >> 2] = (c[v >> 2] | 0) >>> 4; c[w >> 2] = 4; c[c[m >> 2] >> 2] = c[s >> 2]; c[t >> 2] = (1 << c[s >> 2]) + 1; c[u >> 2] = 1 << c[s >> 2]; c[s >> 2] = (c[s >> 2] | 0) + 1; a: while (1) { if ( !( ((c[t >> 2] | 0) > 1 ? (c[x >> 2] | 0) >>> 0 <= (c[c[k >> 2] >> 2] | 0) >>> 0 : 0) | 0 ) ) break; do { if (c[y >> 2] | 0) { c[z >> 2] = c[x >> 2]; while (1) { if (((c[v >> 2] & 65535) | 0) != 65535) break; c[z >> 2] = (c[z >> 2] | 0) + 24; if ( (c[r >> 2] | 0) >>> 0 < (((c[q >> 2] | 0) + -5) | 0) >>> 0 ) { c[r >> 2] = (c[r >> 2] | 0) + 2; m = bh(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] | 0); } else { c[v >> 2] = (c[v >> 2] | 0) >>> 16; c[w >> 2] = (c[w >> 2] | 0) + 16; } } while (1) { if (((c[v >> 2] & 3) | 0) != 3) break; c[z >> 2] = (c[z >> 2] | 0) + 3; c[v >> 2] = (c[v >> 2] | 0) >>> 2; c[w >> 2] = (c[w >> 2] | 0) + 2; } c[z >> 2] = (c[z >> 2] | 0) + (c[v >> 2] & 3); c[w >> 2] = (c[w >> 2] | 0) + 2; if ( (c[z >> 2] | 0) >>> 0 > (c[c[k >> 2] >> 2] | 0) >>> 0 ) { D = 18; break a; } while (1) { if ((c[x >> 2] | 0) >>> 0 >= (c[z >> 2] | 0) >>> 0) break; m = c[j >> 2] | 0; o = c[x >> 2] | 0; c[x >> 2] = o + 1; b[(m + (o << 1)) >> 1] = 0; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[v >> 2] = (c[v >> 2] | 0) >>> 2; break; } c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; o = bh(c[r >> 2] | 0) | 0; c[v >> 2] = o >>> (c[w >> 2] | 0); } } while (0); c[A >> 2] = (c[u >> 2] << 1) - 1 - (c[t >> 2] | 0); o = c[v >> 2] | 0; m = c[u >> 2] | 0; if ( (c[v >> 2] & ((c[u >> 2] | 0) - 1)) >>> 0 < (c[A >> 2] | 0) >>> 0 ) { c[B >> 2] = o & (m - 1); c[w >> 2] = (c[w >> 2] | 0) + ((c[s >> 2] | 0) - 1); } else { c[B >> 2] = o & ((m << 1) - 1); if ((c[B >> 2] | 0) >= (c[u >> 2] | 0)) c[B >> 2] = (c[B >> 2] | 0) - (c[A >> 2] | 0); c[w >> 2] = (c[w >> 2] | 0) + (c[s >> 2] | 0); } c[B >> 2] = (c[B >> 2] | 0) + -1; m = c[B >> 2] | 0; c[t >> 2] = (c[t >> 2] | 0) - ((c[B >> 2] | 0) < 0 ? (0 - m) | 0 : m); m = c[B >> 2] & 65535; o = c[j >> 2] | 0; n = c[x >> 2] | 0; c[x >> 2] = n + 1; b[(o + (n << 1)) >> 1] = m; c[y >> 2] = (((c[B >> 2] | 0) != 0) ^ 1) & 1; while (1) { if ((c[t >> 2] | 0) >= (c[u >> 2] | 0)) break; c[s >> 2] = (c[s >> 2] | 0) + -1; c[u >> 2] = c[u >> 2] >> 1; } if ( (c[r >> 2] | 0) >>> 0 > (((c[q >> 2] | 0) + -7) | 0) >>> 0 ? (((c[r >> 2] | 0) + (c[w >> 2] >> 3)) | 0) >>> 0 > (((c[q >> 2] | 0) + -4) | 0) >>> 0 : 0 ) { c[w >> 2] = (c[w >> 2] | 0) - (((c[q >> 2] | 0) + -4 - (c[r >> 2] | 0)) << 3); c[r >> 2] = (c[q >> 2] | 0) + -4; } else { c[r >> 2] = (c[r >> 2] | 0) + (c[w >> 2] >> 3); c[w >> 2] = c[w >> 2] & 7; } m = bh(c[r >> 2] | 0) | 0; c[v >> 2] = m >>> (c[w >> 2] & 31); } if ((D | 0) == 18) { c[i >> 2] = -48; C = c[i >> 2] | 0; l = h; return C | 0; } if ((c[t >> 2] | 0) != 1) { c[i >> 2] = -20; C = c[i >> 2] | 0; l = h; return C | 0; } if ((c[w >> 2] | 0) > 32) { c[i >> 2] = -20; C = c[i >> 2] | 0; l = h; return C | 0; } else { c[c[k >> 2] >> 2] = (c[x >> 2] | 0) - 1; c[r >> 2] = (c[r >> 2] | 0) + (((c[w >> 2] | 0) + 7) >> 3); c[i >> 2] = (c[r >> 2] | 0) - (c[p >> 2] | 0); C = c[i >> 2] | 0; l = h; return C | 0; } return 0; } function bh(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (ch() | 0) != 0; f = dh(c[e >> 2] | 0) | 0; if (a) { c[d >> 2] = f; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = eh(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function ch() { return d[11936] | 0 | 0; } function dh(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function eh(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function fh(b, e, f, g, h, i, j) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0; k = l; l = (l + 336) | 0; m = (k + 332) | 0; n = (k + 328) | 0; o = (k + 324) | 0; p = (k + 320) | 0; q = (k + 316) | 0; r = (k + 312) | 0; s = (k + 308) | 0; t = (k + 304) | 0; u = (k + 300) | 0; v = (k + 296) | 0; w = (k + 292) | 0; x = (k + 288) | 0; y = (k + 284) | 0; z = k; A = (k + 280) | 0; B = (k + 276) | 0; C = (k + 272) | 0; D = (k + 268) | 0; E = (k + 264) | 0; F = (k + 260) | 0; c[n >> 2] = b; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[v >> 2] = c[s >> 2]; if (!(c[t >> 2] | 0)) { c[m >> 2] = -72; G = c[m >> 2] | 0; l = k; return G | 0; } c[w >> 2] = d[c[v >> 2] >> 0]; s = c[w >> 2] | 0; a: do { if ((c[w >> 2] | 0) >>> 0 < 128) { if (((s + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) { c[m >> 2] = -72; G = c[m >> 2] | 0; l = k; return G | 0; } c[x >> 2] = gh( c[n >> 2] | 0, ((c[o >> 2] | 0) - 1) | 0, ((c[v >> 2] | 0) + 1) | 0, c[w >> 2] | 0, z, 6 ) | 0; if (Zg(c[x >> 2] | 0) | 0) { c[m >> 2] = c[x >> 2]; G = c[m >> 2] | 0; l = k; return G | 0; } } else { c[x >> 2] = s - 127; c[w >> 2] = (((((c[x >> 2] | 0) + 1) | 0) >>> 0) / 2) | 0; if ( (((c[w >> 2] | 0) + 1) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[m >> 2] = -72; G = c[m >> 2] | 0; l = k; return G | 0; } if ((c[x >> 2] | 0) >>> 0 >= (c[o >> 2] | 0) >>> 0) { c[m >> 2] = -20; G = c[m >> 2] | 0; l = k; return G | 0; } c[v >> 2] = (c[v >> 2] | 0) + 1; c[y >> 2] = 0; while (1) { if ((c[y >> 2] | 0) >>> 0 >= (c[x >> 2] | 0) >>> 0) break a; a[((c[n >> 2] | 0) + (c[y >> 2] | 0)) >> 0] = (d[ ((c[v >> 2] | 0) + ((((c[y >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) >> 4; a[((c[n >> 2] | 0) + ((c[y >> 2] | 0) + 1)) >> 0] = (d[ ((c[v >> 2] | 0) + ((((c[y >> 2] | 0) >>> 0) / 2) | 0)) >> 0 ] | 0) & 15; c[y >> 2] = (c[y >> 2] | 0) + 2; } } } while (0); y = c[p >> 2] | 0; v = (y + 52) | 0; do { c[y >> 2] = 0; y = (y + 4) | 0; } while ((y | 0) < (v | 0)); c[u >> 2] = 0; c[A >> 2] = 0; while (1) { if ((c[A >> 2] | 0) >>> 0 >= (c[x >> 2] | 0) >>> 0) break; if ( (d[((c[n >> 2] | 0) + (c[A >> 2] | 0)) >> 0] | 0 | 0) >= 12 ) { H = 18; break; } y = ((c[p >> 2] | 0) + ((d[((c[n >> 2] | 0) + (c[A >> 2] | 0)) >> 0] | 0) << 2)) | 0; c[y >> 2] = (c[y >> 2] | 0) + 1; c[u >> 2] = (c[u >> 2] | 0) + ((1 << (d[((c[n >> 2] | 0) + (c[A >> 2] | 0)) >> 0] | 0)) >> 1); c[A >> 2] = (c[A >> 2] | 0) + 1; } if ((H | 0) == 18) { c[m >> 2] = -20; G = c[m >> 2] | 0; l = k; return G | 0; } if (!(c[u >> 2] | 0)) { c[m >> 2] = -20; G = c[m >> 2] | 0; l = k; return G | 0; } c[B >> 2] = (hh(c[u >> 2] | 0) | 0) + 1; if ((c[B >> 2] | 0) >>> 0 > 12) { c[m >> 2] = -20; G = c[m >> 2] | 0; l = k; return G | 0; } c[c[r >> 2] >> 2] = c[B >> 2]; c[C >> 2] = 1 << c[B >> 2]; c[D >> 2] = (c[C >> 2] | 0) - (c[u >> 2] | 0); c[E >> 2] = 1 << (hh(c[D >> 2] | 0) | 0); c[F >> 2] = (hh(c[D >> 2] | 0) | 0) + 1; if ((c[E >> 2] | 0) != (c[D >> 2] | 0)) { c[m >> 2] = -20; G = c[m >> 2] | 0; l = k; return G | 0; } a[((c[n >> 2] | 0) + (c[x >> 2] | 0)) >> 0] = c[F >> 2]; n = ((c[p >> 2] | 0) + (c[F >> 2] << 2)) | 0; c[n >> 2] = (c[n >> 2] | 0) + 1; if ( (c[((c[p >> 2] | 0) + 4) >> 2] | 0) >>> 0 >= 2 ? ((c[((c[p >> 2] | 0) + 4) >> 2] & 1) | 0) == 0 : 0 ) { c[c[q >> 2] >> 2] = (c[x >> 2] | 0) + 1; c[m >> 2] = (c[w >> 2] | 0) + 1; G = c[m >> 2] | 0; l = k; return G | 0; } c[m >> 2] = -20; G = c[m >> 2] | 0; l = k; return G | 0; } function gh(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; h = l; l = (l + 576) | 0; i = (h + 560) | 0; j = (h + 556) | 0; k = (h + 552) | 0; m = (h + 548) | 0; n = (h + 544) | 0; o = (h + 540) | 0; p = (h + 536) | 0; q = (h + 532) | 0; r = (h + 528) | 0; s = h; t = (h + 524) | 0; u = (h + 520) | 0; v = (h + 516) | 0; w = (h + 512) | 0; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = c[m >> 2]; c[r >> 2] = c[q >> 2]; c[u >> 2] = 255; c[v >> 2] = ah(s, u, t, c[q >> 2] | 0, c[n >> 2] | 0) | 0; if (ih(c[v >> 2] | 0) | 0) { c[i >> 2] = c[v >> 2]; x = c[i >> 2] | 0; l = h; return x | 0; } if ((c[t >> 2] | 0) >>> 0 > (c[p >> 2] | 0) >>> 0) { c[i >> 2] = -44; x = c[i >> 2] | 0; l = h; return x | 0; } c[r >> 2] = (c[r >> 2] | 0) + (c[v >> 2] | 0); c[n >> 2] = (c[n >> 2] | 0) - (c[v >> 2] | 0); c[w >> 2] = jh(c[o >> 2] | 0, s, c[u >> 2] | 0, c[t >> 2] | 0) | 0; if (ih(c[w >> 2] | 0) | 0) { c[i >> 2] = c[w >> 2]; x = c[i >> 2] | 0; l = h; return x | 0; } else { c[i >> 2] = kh( c[j >> 2] | 0, c[k >> 2] | 0, c[r >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; x = c[i >> 2] | 0; l = h; return x | 0; } return 0; } function hh(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function ih(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function jh(e, f, g, h) { e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0; i = l; l = (l + 608) | 0; j = (i + 580) | 0; k = (i + 576) | 0; m = (i + 572) | 0; n = (i + 568) | 0; o = (i + 564) | 0; p = (i + 560) | 0; q = (i + 556) | 0; r = i; s = (i + 552) | 0; t = (i + 548) | 0; u = (i + 544) | 0; v = (i + 588) | 0; w = (i + 584) | 0; x = (i + 540) | 0; y = (i + 536) | 0; z = (i + 532) | 0; A = (i + 528) | 0; B = (i + 524) | 0; C = (i + 520) | 0; D = (i + 516) | 0; E = (i + 592) | 0; F = (i + 512) | 0; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = h; c[p >> 2] = (c[k >> 2] | 0) + 4; c[q >> 2] = c[p >> 2]; c[s >> 2] = (c[n >> 2] | 0) + 1; c[t >> 2] = 1 << c[o >> 2]; c[u >> 2] = (c[t >> 2] | 0) - 1; if ((c[n >> 2] | 0) >>> 0 > 255) { c[j >> 2] = -46; G = c[j >> 2] | 0; l = i; return G | 0; } if ((c[o >> 2] | 0) >>> 0 > 12) { c[j >> 2] = -44; G = c[j >> 2] | 0; l = i; return G | 0; } b[v >> 1] = c[o >> 2]; b[(v + 2) >> 1] = 1; b[w >> 1] = 1 << ((c[o >> 2] | 0) - 1); c[x >> 2] = 0; while (1) { if ((c[x >> 2] | 0) >>> 0 >= (c[s >> 2] | 0) >>> 0) break; if ( (b[((c[m >> 2] | 0) + (c[x >> 2] << 1)) >> 1] | 0) == -1 ) { n = c[x >> 2] & 255; p = c[q >> 2] | 0; h = c[u >> 2] | 0; c[u >> 2] = h + -1; a[(p + (h << 2) + 2) >> 0] = n; b[(r + (c[x >> 2] << 1)) >> 1] = 1; } else { if ( (b[((c[m >> 2] | 0) + (c[x >> 2] << 1)) >> 1] | 0) >= (b[w >> 1] | 0) ) b[(v + 2) >> 1] = 0; b[(r + (c[x >> 2] << 1)) >> 1] = b[((c[m >> 2] | 0) + (c[x >> 2] << 1)) >> 1] | 0; } c[x >> 2] = (c[x >> 2] | 0) + 1; } x = c[k >> 2] | 0; b[x >> 1] = b[v >> 1] | 0; b[(x + 2) >> 1] = b[(v + 2) >> 1] | 0; c[y >> 2] = (c[t >> 2] | 0) - 1; c[z >> 2] = ((c[t >> 2] | 0) >>> 1) + ((c[t >> 2] | 0) >>> 3) + 3; c[B >> 2] = 0; c[A >> 2] = 0; while (1) { if ((c[A >> 2] | 0) >>> 0 >= (c[s >> 2] | 0) >>> 0) break; c[C >> 2] = 0; while (1) { H = c[A >> 2] | 0; if ( (c[C >> 2] | 0) >= (b[((c[m >> 2] | 0) + (c[A >> 2] << 1)) >> 1] | 0) ) break; a[((c[q >> 2] | 0) + (c[B >> 2] << 2) + 2) >> 0] = H; c[B >> 2] = ((c[B >> 2] | 0) + (c[z >> 2] | 0)) & c[y >> 2]; while (1) { if ((c[B >> 2] | 0) >>> 0 <= (c[u >> 2] | 0) >>> 0) break; c[B >> 2] = ((c[B >> 2] | 0) + (c[z >> 2] | 0)) & c[y >> 2]; } c[C >> 2] = (c[C >> 2] | 0) + 1; } c[A >> 2] = H + 1; } if (c[B >> 2] | 0) { c[j >> 2] = -1; G = c[j >> 2] | 0; l = i; return G | 0; } c[D >> 2] = 0; while (1) { if ((c[D >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; a[E >> 0] = a[((c[q >> 2] | 0) + (c[D >> 2] << 2) + 2) >> 0] | 0; B = (r + (d[E >> 0] << 1)) | 0; H = b[B >> 1] | 0; b[B >> 1] = ((H + 1) << 16) >> 16; c[F >> 2] = H & 65535; H = c[o >> 2] | 0; B = (H - (Eh(c[F >> 2] | 0) | 0)) & 255; a[((c[q >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0] = B; b[((c[q >> 2] | 0) + (c[D >> 2] << 2)) >> 1] = (c[F >> 2] << d[((c[q >> 2] | 0) + (c[D >> 2] << 2) + 3) >> 0]) - (c[t >> 2] | 0); c[D >> 2] = (c[D >> 2] | 0) + 1; } c[j >> 2] = 0; G = c[j >> 2] | 0; l = i; return G | 0; } function kh(b, d, f, g, h) { b = b | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0; i = l; l = (l + 208) | 0; j = (i + 204) | 0; k = (i + 200) | 0; m = (i + 196) | 0; n = (i + 192) | 0; o = (i + 188) | 0; p = (i + 184) | 0; q = (i + 180) | 0; r = (i + 176) | 0; s = (i + 172) | 0; t = (i + 168) | 0; u = (i + 164) | 0; v = (i + 144) | 0; w = (i + 136) | 0; x = (i + 128) | 0; y = (i + 120) | 0; z = (i + 116) | 0; A = (i + 112) | 0; B = (i + 108) | 0; C = (i + 104) | 0; D = (i + 100) | 0; E = (i + 96) | 0; F = (i + 92) | 0; G = (i + 88) | 0; H = (i + 84) | 0; I = (i + 80) | 0; J = (i + 76) | 0; K = (i + 56) | 0; L = (i + 48) | 0; M = (i + 40) | 0; N = (i + 36) | 0; O = (i + 32) | 0; P = (i + 28) | 0; Q = (i + 24) | 0; R = (i + 20) | 0; S = (i + 16) | 0; T = (i + 12) | 0; U = (i + 8) | 0; V = (i + 4) | 0; W = i; c[P >> 2] = b; c[Q >> 2] = d; c[R >> 2] = f; c[S >> 2] = g; c[T >> 2] = h; c[U >> 2] = c[T >> 2]; c[V >> 2] = c[U >> 2]; c[W >> 2] = e[((c[V >> 2] | 0) + 2) >> 1]; V = c[P >> 2] | 0; P = c[Q >> 2] | 0; Q = c[R >> 2] | 0; R = c[S >> 2] | 0; S = c[T >> 2] | 0; if (c[W >> 2] | 0) { c[A >> 2] = V; c[B >> 2] = P; c[C >> 2] = Q; c[D >> 2] = R; c[E >> 2] = S; c[F >> 2] = 1; c[G >> 2] = c[A >> 2]; c[H >> 2] = c[G >> 2]; c[I >> 2] = (c[H >> 2] | 0) + (c[B >> 2] | 0); c[J >> 2] = (c[I >> 2] | 0) + -3; c[N >> 2] = lh(K, c[C >> 2] | 0, c[D >> 2] | 0) | 0; do { if (ih(c[N >> 2] | 0) | 0) c[z >> 2] = c[N >> 2]; else { mh(L, K, c[E >> 2] | 0); mh(M, K, c[E >> 2] | 0); while (1) { D = ((nh(K) | 0) == 0) & 1; if ( !( D & ((c[H >> 2] | 0) >>> 0 < (c[J >> 2] | 0) >>> 0) ) ) break; if (c[F >> 2] | 0) X = (oh(L, K) | 0) & 255; else X = (ph(L, K) | 0) & 255; a[c[H >> 2] >> 0] = X; if (c[F >> 2] | 0) Y = (oh(M, K) | 0) & 255; else Y = (ph(M, K) | 0) & 255; a[((c[H >> 2] | 0) + 1) >> 0] = Y; if ((nh(K) | 0) >>> 0 > 0) { Z = 13; break; } if (c[F >> 2] | 0) _ = (oh(L, K) | 0) & 255; else _ = (ph(L, K) | 0) & 255; a[((c[H >> 2] | 0) + 2) >> 0] = _; if (c[F >> 2] | 0) $ = (oh(M, K) | 0) & 255; else $ = (ph(M, K) | 0) & 255; a[((c[H >> 2] | 0) + 3) >> 0] = $; c[H >> 2] = (c[H >> 2] | 0) + 4; } if ((Z | 0) == 13) c[H >> 2] = (c[H >> 2] | 0) + 2; while (1) { if ( (c[H >> 2] | 0) >>> 0 > (((c[I >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 23; break; } if (c[F >> 2] | 0) aa = (oh(L, K) | 0) & 255; else aa = (ph(L, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = aa; if ((nh(K) | 0) == 3) { Z = 28; break; } if ( (c[H >> 2] | 0) >>> 0 > (((c[I >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 33; break; } if (c[F >> 2] | 0) ba = (oh(M, K) | 0) & 255; else ba = (ph(M, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = ba; if ((nh(K) | 0) == 3) { Z = 38; break; } } if ((Z | 0) == 23) { c[z >> 2] = -70; break; } else if ((Z | 0) == 28) { if (c[F >> 2] | 0) ca = (oh(M, K) | 0) & 255; else ca = (ph(M, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = ca; } else if ((Z | 0) == 33) { c[z >> 2] = -70; break; } else if ((Z | 0) == 38) { if (c[F >> 2] | 0) da = (oh(L, K) | 0) & 255; else da = (ph(L, K) | 0) & 255; D = c[H >> 2] | 0; c[H >> 2] = D + 1; a[D >> 0] = da; } c[z >> 2] = (c[H >> 2] | 0) - (c[G >> 2] | 0); } } while (0); c[O >> 2] = c[z >> 2]; ea = c[O >> 2] | 0; l = i; return ea | 0; } else { c[k >> 2] = V; c[m >> 2] = P; c[n >> 2] = Q; c[o >> 2] = R; c[p >> 2] = S; c[q >> 2] = 0; c[r >> 2] = c[k >> 2]; c[s >> 2] = c[r >> 2]; c[t >> 2] = (c[s >> 2] | 0) + (c[m >> 2] | 0); c[u >> 2] = (c[t >> 2] | 0) + -3; c[y >> 2] = lh(v, c[n >> 2] | 0, c[o >> 2] | 0) | 0; do { if (ih(c[y >> 2] | 0) | 0) c[j >> 2] = c[y >> 2]; else { mh(w, v, c[p >> 2] | 0); mh(x, v, c[p >> 2] | 0); while (1) { o = ((nh(v) | 0) == 0) & 1; if ( !( o & ((c[s >> 2] | 0) >>> 0 < (c[u >> 2] | 0) >>> 0) ) ) break; if (c[q >> 2] | 0) fa = (oh(w, v) | 0) & 255; else fa = (ph(w, v) | 0) & 255; a[c[s >> 2] >> 0] = fa; if (c[q >> 2] | 0) ga = (oh(x, v) | 0) & 255; else ga = (ph(x, v) | 0) & 255; a[((c[s >> 2] | 0) + 1) >> 0] = ga; if ((nh(v) | 0) >>> 0 > 0) { Z = 56; break; } if (c[q >> 2] | 0) ha = (oh(w, v) | 0) & 255; else ha = (ph(w, v) | 0) & 255; a[((c[s >> 2] | 0) + 2) >> 0] = ha; if (c[q >> 2] | 0) ia = (oh(x, v) | 0) & 255; else ia = (ph(x, v) | 0) & 255; a[((c[s >> 2] | 0) + 3) >> 0] = ia; c[s >> 2] = (c[s >> 2] | 0) + 4; } if ((Z | 0) == 56) c[s >> 2] = (c[s >> 2] | 0) + 2; while (1) { if ( (c[s >> 2] | 0) >>> 0 > (((c[t >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 66; break; } if (c[q >> 2] | 0) ja = (oh(w, v) | 0) & 255; else ja = (ph(w, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ja; if ((nh(v) | 0) == 3) { Z = 71; break; } if ( (c[s >> 2] | 0) >>> 0 > (((c[t >> 2] | 0) + -2) | 0) >>> 0 ) { Z = 76; break; } if (c[q >> 2] | 0) ka = (oh(x, v) | 0) & 255; else ka = (ph(x, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ka; if ((nh(v) | 0) == 3) { Z = 81; break; } } if ((Z | 0) == 66) { c[j >> 2] = -70; break; } else if ((Z | 0) == 71) { if (c[q >> 2] | 0) la = (oh(x, v) | 0) & 255; else la = (ph(x, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = la; } else if ((Z | 0) == 76) { c[j >> 2] = -70; break; } else if ((Z | 0) == 81) { if (c[q >> 2] | 0) ma = (oh(w, v) | 0) & 255; else ma = (ph(w, v) | 0) & 255; o = c[s >> 2] | 0; c[s >> 2] = o + 1; a[o >> 0] = ma; } c[j >> 2] = (c[s >> 2] | 0) - (c[r >> 2] | 0); } } while (0); c[O >> 2] = c[j >> 2]; ea = c[O >> 2] | 0; l = i; return ea | 0; } return 0; } function lh(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 32) | 0; h = (g + 12) | 0; i = (g + 8) | 0; j = (g + 4) | 0; k = g; m = (g + 17) | 0; n = (g + 16) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; if ((c[k >> 2] | 0) >>> 0 < 1) { f = c[i >> 2] | 0; c[f >> 2] = 0; c[(f + 4) >> 2] = 0; c[(f + 8) >> 2] = 0; c[(f + 12) >> 2] = 0; c[(f + 16) >> 2] = 0; c[h >> 2] = -72; o = c[h >> 2] | 0; l = g; return o | 0; } c[((c[i >> 2] | 0) + 12) >> 2] = c[j >> 2]; c[((c[i >> 2] | 0) + 16) >> 2] = (c[((c[i >> 2] | 0) + 12) >> 2] | 0) + 4; do { if ((c[k >> 2] | 0) >>> 0 >= 4) { c[((c[i >> 2] | 0) + 8) >> 2] = (c[j >> 2] | 0) + (c[k >> 2] | 0) + -4; f = vh(c[((c[i >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[i >> 2] >> 2] = f; a[m >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[m >> 0] | 0 | 0) p = (8 - (Eh(d[m >> 0] | 0) | 0)) | 0; else p = 0; c[((c[i >> 2] | 0) + 4) >> 2] = p; if (!(d[m >> 0] | 0)) { c[h >> 2] = -1; o = c[h >> 2] | 0; l = g; return o | 0; } } else { c[((c[i >> 2] | 0) + 8) >> 2] = c[((c[i >> 2] | 0) + 12) >> 2]; c[c[i >> 2] >> 2] = d[c[((c[i >> 2] | 0) + 12) >> 2] >> 0]; switch (c[k >> 2] | 0) { case 7: { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 6) >> 0] | 0) << 16); q = 10; break; } case 6: { q = 10; break; } case 5: { q = 11; break; } case 4: { q = 12; break; } case 3: { q = 13; break; } case 2: { q = 14; break; } default: { } } if ((q | 0) == 10) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 5) >> 0] | 0) << 8); q = 11; } if ((q | 0) == 11) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 4) >> 0] | 0) << 0); q = 12; } if ((q | 0) == 12) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 3) >> 0] | 0) << 24); q = 13; } if ((q | 0) == 13) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 2) >> 0] | 0) << 16); q = 14; } if ((q | 0) == 14) { f = c[i >> 2] | 0; c[f >> 2] = (c[f >> 2] | 0) + ((d[((c[j >> 2] | 0) + 1) >> 0] | 0) << 8); } a[n >> 0] = a[((c[j >> 2] | 0) + ((c[k >> 2] | 0) - 1)) >> 0] | 0; if (d[n >> 0] | 0 | 0) r = (8 - (Eh(d[n >> 0] | 0) | 0)) | 0; else r = 0; c[((c[i >> 2] | 0) + 4) >> 2] = r; if (d[n >> 0] | 0 | 0) { f = ((c[i >> 2] | 0) + 4) | 0; c[f >> 2] = (c[f >> 2] | 0) + ((4 - (c[k >> 2] | 0)) << 3); break; } c[h >> 2] = -20; o = c[h >> 2] | 0; l = g; return o | 0; } } while (0); c[h >> 2] = c[k >> 2]; o = c[h >> 2] | 0; l = g; return o | 0; } function mh(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = c[i >> 2]; c[k >> 2] = c[j >> 2]; j = qh(c[h >> 2] | 0, e[c[k >> 2] >> 1] | 0) | 0; c[c[g >> 2] >> 2] = j; nh(c[h >> 2] | 0) | 0; c[((c[g >> 2] | 0) + 4) >> 2] = (c[i >> 2] | 0) + 4; l = f; return; } function nh(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 16) | 0; d = (b + 12) | 0; e = (b + 8) | 0; f = (b + 4) | 0; g = b; c[e >> 2] = a; if ((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 32) { c[d >> 2] = 3; h = c[d >> 2] | 0; l = b; return h | 0; } a = c[e >> 2] | 0; if ( (c[((c[e >> 2] | 0) + 8) >> 2] | 0) >>> 0 >= (c[((c[e >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) { i = ((c[e >> 2] | 0) + 8) | 0; c[i >> 2] = (c[i >> 2] | 0) + (0 - ((c[(a + 4) >> 2] | 0) >>> 3)); i = ((c[e >> 2] | 0) + 4) | 0; c[i >> 2] = c[i >> 2] & 7; i = vh(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = i; c[d >> 2] = 0; h = c[d >> 2] | 0; l = b; return h | 0; } i = c[((c[e >> 2] | 0) + 4) >> 2] | 0; if ( (c[(a + 8) >> 2] | 0) != (c[((c[e >> 2] | 0) + 12) >> 2] | 0) ) { c[f >> 2] = i >>> 3; c[g >> 2] = 0; if ( (((c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (0 - (c[f >> 2] | 0))) | 0) >>> 0 < (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 ) { c[f >> 2] = (c[((c[e >> 2] | 0) + 8) >> 2] | 0) - (c[((c[e >> 2] | 0) + 12) >> 2] | 0); c[g >> 2] = 1; } a = ((c[e >> 2] | 0) + 8) | 0; c[a >> 2] = (c[a >> 2] | 0) + (0 - (c[f >> 2] | 0)); a = ((c[e >> 2] | 0) + 4) | 0; c[a >> 2] = (c[a >> 2] | 0) - (c[f >> 2] << 3); f = vh(c[((c[e >> 2] | 0) + 8) >> 2] | 0) | 0; c[c[e >> 2] >> 2] = f; c[d >> 2] = c[g >> 2]; h = c[d >> 2] | 0; l = b; return h | 0; } if (i >>> 0 < 32) { c[d >> 2] = 1; h = c[d >> 2] | 0; l = b; return h | 0; } else { c[d >> 2] = 2; h = c[d >> 2] | 0; l = b; return h | 0; } return 0; } function oh(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = th(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function ph(f, g) { f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 12) | 0; j = (h + 8) | 0; k = (h + 16) | 0; m = (h + 4) | 0; n = (h + 20) | 0; o = h; c[i >> 2] = f; c[j >> 2] = g; g = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[c[i >> 2] >> 2] << 2)) | 0; b[k >> 1] = b[g >> 1] | 0; b[(k + 2) >> 1] = b[(g + 2) >> 1] | 0; c[m >> 2] = d[(k + 3) >> 0]; a[n >> 0] = a[(k + 2) >> 0] | 0; c[o >> 2] = qh(c[j >> 2] | 0, c[m >> 2] | 0) | 0; c[c[i >> 2] >> 2] = (e[k >> 1] | 0) + (c[o >> 2] | 0); l = h; return a[n >> 0] | 0; } function qh(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = rh(c[e >> 2] | 0, c[f >> 2] | 0) | 0; sh(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function rh(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( (((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> 1) >>> ((31 - (c[f >> 2] | 0)) & 31)) | 0 ); } function sh(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ((c[e >> 2] | 0) + 4) | 0; c[b >> 2] = (c[b >> 2] | 0) + (c[f >> 2] | 0); l = d; return; } function th(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = uh(c[e >> 2] | 0, c[f >> 2] | 0) | 0; sh(c[e >> 2] | 0, c[f >> 2] | 0); l = d; return c[g >> 2] | 0; } function uh(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; c[e >> 2] = a; c[f >> 2] = b; c[d >> 2] = 31; l = d; return ( ((c[c[e >> 2] >> 2] << (c[((c[e >> 2] | 0) + 4) >> 2] & 31)) >>> ((32 - (c[f >> 2] | 0)) & 31)) | 0 ); } function vh(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (wh() | 0) != 0; f = c[e >> 2] | 0; if (a) { c[d >> 2] = xh(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } else { a = yh(f) | 0; c[d >> 2] = a; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function wh() { return 1; } function xh(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (zh() | 0) != 0; f = Ch(c[e >> 2] | 0) | 0; if (a) { c[d >> 2] = f; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = Dh(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function yh(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = (zh() | 0) != 0; f = Ah(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = Bh(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function zh() { return d[11936] | 0 | 0; } function Ah(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; e = a; f = (a + 4) | 0; y = d[f >> 0] | (d[(f + 1) >> 0] << 8) | (d[(f + 2) >> 0] << 16) | (d[(f + 3) >> 0] << 24); l = b; return ( d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24) | 0 ); } function Bh(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function Ch(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function Dh(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function Eh(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function Fh(b) { b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = b; b = c[e >> 2] | 0; a[f >> 0] = a[b >> 0] | 0; a[(f + 1) >> 0] = a[(b + 1) >> 0] | 0; a[(f + 2) >> 0] = a[(b + 2) >> 0] | 0; a[(f + 3) >> 0] = a[(b + 3) >> 0] | 0; l = d; return c[f >> 2] | 0; } function Gh(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function Hh(b) { b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = d; c[e >> 2] = b; b = c[e >> 2] | 0; a[f >> 0] = a[b >> 0] | 0; a[(f + 1) >> 0] = a[(b + 1) >> 0] | 0; a[(f + 2) >> 0] = a[(b + 2) >> 0] | 0; a[(f + 3) >> 0] = a[(b + 3) >> 0] | 0; a[(f + 4) >> 0] = a[(b + 4) >> 0] | 0; a[(f + 5) >> 0] = a[(b + 5) >> 0] | 0; a[(f + 6) >> 0] = a[(b + 6) >> 0] | 0; a[(f + 7) >> 0] = a[(b + 7) >> 0] | 0; b = f; y = c[(b + 4) >> 2] | 0; l = d; return c[b >> 2] | 0; } function Ih(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function Jh(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0; f = l; l = (l + 16) | 0; g = (f + 8) | 0; h = f; i = g; c[i >> 2] = a; c[(i + 4) >> 2] = b; b = h; c[b >> 2] = d; c[(b + 4) >> 2] = e; e = h; h = cE( c[e >> 2] | 0, c[(e + 4) >> 2] | 0, 668265295, -1028477379 ) | 0; e = g; b = dE(c[e >> 2] | 0, c[(e + 4) >> 2] | 0, h | 0, y | 0) | 0; h = g; c[h >> 2] = b; c[(h + 4) >> 2] = y; h = g; b = jE(c[h >> 2] | 0, c[(h + 4) >> 2] | 0, 31) | 0; h = y; e = g; d = iE(c[e >> 2] | 0, c[(e + 4) >> 2] | 0, 33) | 0; e = g; c[e >> 2] = b | d; c[(e + 4) >> 2] = h | y; h = g; e = cE( c[h >> 2] | 0, c[(h + 4) >> 2] | 0, -2048144761, -1640531535 ) | 0; h = g; c[h >> 2] = e; c[(h + 4) >> 2] = y; h = g; y = c[(h + 4) >> 2] | 0; l = f; return c[h >> 2] | 0; } function Kh(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0; f = l; l = (l + 16) | 0; g = (f + 8) | 0; h = f; i = g; c[i >> 2] = a; c[(i + 4) >> 2] = b; b = h; c[b >> 2] = d; c[(b + 4) >> 2] = e; e = h; b = Jh(0, 0, c[e >> 2] | 0, c[(e + 4) >> 2] | 0) | 0; e = h; c[e >> 2] = b; c[(e + 4) >> 2] = y; e = h; h = g; b = c[(h + 4) >> 2] ^ c[(e + 4) >> 2]; d = g; c[d >> 2] = c[h >> 2] ^ c[e >> 2]; c[(d + 4) >> 2] = b; b = g; d = cE( c[b >> 2] | 0, c[(b + 4) >> 2] | 0, -2048144761, -1640531535 ) | 0; b = dE(d | 0, y | 0, -1028477341, -2048144777) | 0; d = g; c[d >> 2] = b; c[(d + 4) >> 2] = y; d = g; y = c[(d + 4) >> 2] | 0; l = f; return c[d >> 2] | 0; } function Lh(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 112) | 0; f = (e + 96) | 0; g = (e + 88) | 0; h = e; c[f >> 2] = a; a = g; c[a >> 2] = b; c[(a + 4) >> 2] = d; d = h; a = (d + 80) | 0; do { c[d >> 2] = 0; d = (d + 4) | 0; } while ((d | 0) < (a | 0)); b = g; i = dE( c[b >> 2] | 0, c[(b + 4) >> 2] | 0, -2048144761, -1640531535 ) | 0; b = dE(i | 0, y | 0, 668265295, -1028477379) | 0; i = (h + 8) | 0; c[i >> 2] = b; c[(i + 4) >> 2] = y; i = g; b = dE( c[i >> 2] | 0, c[(i + 4) >> 2] | 0, 668265295, -1028477379 ) | 0; i = (h + 16) | 0; c[i >> 2] = b; c[(i + 4) >> 2] = y; i = g; b = dE(c[i >> 2] | 0, c[(i + 4) >> 2] | 0, 0, 0) | 0; i = (h + 24) | 0; c[i >> 2] = b; c[(i + 4) >> 2] = y; i = g; g = eE( c[i >> 2] | 0, c[(i + 4) >> 2] | 0, -2048144761, -1640531535 ) | 0; i = (h + 32) | 0; c[i >> 2] = g; c[(i + 4) >> 2] = y; d = c[f >> 2] | 0; f = h; a = (d + 88) | 0; do { c[d >> 2] = c[f >> 2]; d = (d + 4) | 0; f = (f + 4) | 0; } while ((d | 0) < (a | 0)); l = e; return 0; } function Mh(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = c[f >> 2] | 0; mE(d | 0, c[g >> 2] | 0, c[h >> 2] | 0) | 0; l = e; return d | 0; } function Nh(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0, hc = 0, ic = 0, jc = 0, kc = 0, lc = 0, mc = 0, nc = 0, oc = 0, pc = 0, qc = 0, rc = 0, sc = 0, tc = 0, uc = 0, vc = 0, wc = 0, xc = 0, yc = 0, zc = 0, Ac = 0, Bc = 0, Cc = 0, Dc = 0, Ec = 0, Fc = 0, Gc = 0, Hc = 0, Ic = 0, Jc = 0; f = l; l = (l + 608) | 0; g = (f + 184) | 0; h = (f + 592) | 0; i = (f + 588) | 0; j = (f + 584) | 0; k = (f + 580) | 0; m = (f + 576) | 0; n = (f + 176) | 0; o = (f + 572) | 0; p = (f + 568) | 0; q = (f + 564) | 0; r = (f + 560) | 0; s = (f + 556) | 0; t = (f + 168) | 0; u = (f + 552) | 0; v = (f + 548) | 0; w = (f + 544) | 0; x = (f + 540) | 0; z = (f + 536) | 0; A = (f + 160) | 0; B = (f + 532) | 0; C = (f + 528) | 0; D = (f + 524) | 0; E = (f + 520) | 0; F = (f + 516) | 0; G = (f + 152) | 0; H = (f + 512) | 0; I = (f + 508) | 0; J = (f + 504) | 0; K = (f + 500) | 0; L = (f + 496) | 0; M = (f + 144) | 0; N = (f + 492) | 0; O = (f + 488) | 0; P = (f + 484) | 0; Q = (f + 480) | 0; R = (f + 476) | 0; S = (f + 136) | 0; T = (f + 472) | 0; U = (f + 468) | 0; V = (f + 464) | 0; W = (f + 460) | 0; X = (f + 456) | 0; Y = (f + 128) | 0; Z = (f + 452) | 0; _ = (f + 448) | 0; $ = (f + 444) | 0; aa = (f + 440) | 0; ba = (f + 436) | 0; ca = (f + 432) | 0; da = (f + 428) | 0; ea = (f + 424) | 0; fa = (f + 420) | 0; ga = (f + 416) | 0; ha = (f + 412) | 0; ia = (f + 408) | 0; ja = (f + 404) | 0; ka = (f + 120) | 0; la = (f + 112) | 0; ma = (f + 104) | 0; na = (f + 96) | 0; oa = (f + 88) | 0; pa = (f + 400) | 0; qa = (f + 396) | 0; ra = (f + 392) | 0; sa = (f + 388) | 0; ta = (f + 384) | 0; ua = (f + 80) | 0; va = (f + 380) | 0; wa = (f + 376) | 0; xa = (f + 372) | 0; ya = (f + 368) | 0; za = (f + 364) | 0; Aa = (f + 72) | 0; Ba = (f + 360) | 0; Ca = (f + 356) | 0; Da = (f + 352) | 0; Ea = (f + 348) | 0; Fa = (f + 344) | 0; Ga = (f + 64) | 0; Ha = (f + 340) | 0; Ia = (f + 336) | 0; Ja = (f + 332) | 0; Ka = (f + 328) | 0; La = (f + 324) | 0; Ma = (f + 56) | 0; Na = (f + 320) | 0; Oa = (f + 316) | 0; Pa = (f + 312) | 0; Qa = (f + 308) | 0; Ra = (f + 304) | 0; Sa = (f + 48) | 0; Ta = (f + 300) | 0; Ua = (f + 296) | 0; Va = (f + 292) | 0; Wa = (f + 288) | 0; Xa = (f + 284) | 0; Ya = (f + 40) | 0; Za = (f + 280) | 0; _a = (f + 276) | 0; $a = (f + 272) | 0; ab = (f + 268) | 0; bb = (f + 264) | 0; cb = (f + 32) | 0; db = (f + 260) | 0; eb = (f + 256) | 0; fb = (f + 252) | 0; gb = (f + 248) | 0; hb = (f + 244) | 0; ib = (f + 240) | 0; jb = (f + 236) | 0; kb = (f + 232) | 0; lb = (f + 228) | 0; mb = (f + 224) | 0; nb = (f + 220) | 0; ob = (f + 216) | 0; pb = (f + 212) | 0; qb = (f + 24) | 0; rb = (f + 16) | 0; sb = (f + 8) | 0; tb = f; ub = (f + 208) | 0; vb = (f + 204) | 0; wb = (f + 200) | 0; xb = (f + 196) | 0; yb = (f + 192) | 0; c[vb >> 2] = b; c[wb >> 2] = d; c[xb >> 2] = e; c[yb >> 2] = a[11920]; e = c[vb >> 2] | 0; vb = c[wb >> 2] | 0; wb = c[xb >> 2] | 0; if ((c[yb >> 2] | 0) == 1) { c[jb >> 2] = e; c[kb >> 2] = vb; c[lb >> 2] = wb; c[mb >> 2] = 1; c[nb >> 2] = c[kb >> 2]; c[ob >> 2] = (c[nb >> 2] | 0) + (c[lb >> 2] | 0); yb = c[jb >> 2] | 0; xb = yb; d = dE( c[xb >> 2] | 0, c[(xb + 4) >> 2] | 0, c[lb >> 2] | 0, 0 ) | 0; xb = yb; c[xb >> 2] = d; c[(xb + 4) >> 2] = y; xb = c[jb >> 2] | 0; if ( (((c[((c[jb >> 2] | 0) + 72) >> 2] | 0) + (c[lb >> 2] | 0)) | 0) >>> 0 < 32 ) { Mh( (xb + 40 + (c[((c[jb >> 2] | 0) + 72) >> 2] | 0)) | 0, c[kb >> 2] | 0, c[lb >> 2] | 0 ) | 0; d = ((c[jb >> 2] | 0) + 72) | 0; c[d >> 2] = (c[d >> 2] | 0) + (c[lb >> 2] | 0); c[ib >> 2] = 0; } else { if (c[(xb + 72) >> 2] | 0) { Mh( ((c[jb >> 2] | 0) + 40 + (c[((c[jb >> 2] | 0) + 72) >> 2] | 0)) | 0, c[kb >> 2] | 0, (32 - (c[((c[jb >> 2] | 0) + 72) >> 2] | 0)) | 0 ) | 0; kb = ((c[jb >> 2] | 0) + 8) | 0; xb = c[kb >> 2] | 0; lb = c[(kb + 4) >> 2] | 0; kb = c[mb >> 2] | 0; c[gb >> 2] = (c[jb >> 2] | 0) + 40; c[hb >> 2] = kb; kb = c[hb >> 2] | 0; c[db >> 2] = c[gb >> 2]; c[eb >> 2] = kb; c[fb >> 2] = 1; kb = (c[eb >> 2] | 0) == 1; eb = c[db >> 2] | 0; if ((c[fb >> 2] | 0) == 1) { fb = Hh(eb) | 0; db = y; if (kb) { zb = fb; Ab = db; } else { gb = Ih(fb, db) | 0; zb = gb; Ab = y; } gb = cb; c[gb >> 2] = zb; c[(gb + 4) >> 2] = Ab; } else { Ab = eb; eb = c[Ab >> 2] | 0; gb = c[(Ab + 4) >> 2] | 0; if (kb) { Bb = eb; Cb = gb; } else { kb = Ih(eb, gb) | 0; Bb = kb; Cb = y; } kb = cb; c[kb >> 2] = Bb; c[(kb + 4) >> 2] = Cb; } Cb = cb; cb = Jh(xb, lb, c[Cb >> 2] | 0, c[(Cb + 4) >> 2] | 0) | 0; Cb = ((c[jb >> 2] | 0) + 8) | 0; c[Cb >> 2] = cb; c[(Cb + 4) >> 2] = y; Cb = ((c[jb >> 2] | 0) + 16) | 0; cb = c[Cb >> 2] | 0; lb = c[(Cb + 4) >> 2] | 0; Cb = c[mb >> 2] | 0; c[ab >> 2] = (c[jb >> 2] | 0) + 40 + 8; c[bb >> 2] = Cb; Cb = c[bb >> 2] | 0; c[Za >> 2] = c[ab >> 2]; c[_a >> 2] = Cb; c[$a >> 2] = 1; Cb = (c[_a >> 2] | 0) == 1; _a = c[Za >> 2] | 0; if ((c[$a >> 2] | 0) == 1) { $a = Hh(_a) | 0; Za = y; if (Cb) { Db = $a; Eb = Za; } else { ab = Ih($a, Za) | 0; Db = ab; Eb = y; } ab = Ya; c[ab >> 2] = Db; c[(ab + 4) >> 2] = Eb; } else { Eb = _a; _a = c[Eb >> 2] | 0; ab = c[(Eb + 4) >> 2] | 0; if (Cb) { Fb = _a; Gb = ab; } else { Cb = Ih(_a, ab) | 0; Fb = Cb; Gb = y; } Cb = Ya; c[Cb >> 2] = Fb; c[(Cb + 4) >> 2] = Gb; } Gb = Ya; Ya = Jh(cb, lb, c[Gb >> 2] | 0, c[(Gb + 4) >> 2] | 0) | 0; Gb = ((c[jb >> 2] | 0) + 16) | 0; c[Gb >> 2] = Ya; c[(Gb + 4) >> 2] = y; Gb = ((c[jb >> 2] | 0) + 24) | 0; Ya = c[Gb >> 2] | 0; lb = c[(Gb + 4) >> 2] | 0; Gb = c[mb >> 2] | 0; c[Wa >> 2] = (c[jb >> 2] | 0) + 40 + 16; c[Xa >> 2] = Gb; Gb = c[Xa >> 2] | 0; c[Ta >> 2] = c[Wa >> 2]; c[Ua >> 2] = Gb; c[Va >> 2] = 1; Gb = (c[Ua >> 2] | 0) == 1; Ua = c[Ta >> 2] | 0; if ((c[Va >> 2] | 0) == 1) { Va = Hh(Ua) | 0; Ta = y; if (Gb) { Hb = Va; Ib = Ta; } else { Wa = Ih(Va, Ta) | 0; Hb = Wa; Ib = y; } Wa = Sa; c[Wa >> 2] = Hb; c[(Wa + 4) >> 2] = Ib; } else { Ib = Ua; Ua = c[Ib >> 2] | 0; Wa = c[(Ib + 4) >> 2] | 0; if (Gb) { Jb = Ua; Kb = Wa; } else { Gb = Ih(Ua, Wa) | 0; Jb = Gb; Kb = y; } Gb = Sa; c[Gb >> 2] = Jb; c[(Gb + 4) >> 2] = Kb; } Kb = Sa; Sa = Jh(Ya, lb, c[Kb >> 2] | 0, c[(Kb + 4) >> 2] | 0) | 0; Kb = ((c[jb >> 2] | 0) + 24) | 0; c[Kb >> 2] = Sa; c[(Kb + 4) >> 2] = y; Kb = ((c[jb >> 2] | 0) + 32) | 0; Sa = c[Kb >> 2] | 0; lb = c[(Kb + 4) >> 2] | 0; Kb = c[mb >> 2] | 0; c[Qa >> 2] = (c[jb >> 2] | 0) + 40 + 24; c[Ra >> 2] = Kb; Kb = c[Ra >> 2] | 0; c[Na >> 2] = c[Qa >> 2]; c[Oa >> 2] = Kb; c[Pa >> 2] = 1; Kb = (c[Oa >> 2] | 0) == 1; Oa = c[Na >> 2] | 0; if ((c[Pa >> 2] | 0) == 1) { Pa = Hh(Oa) | 0; Na = y; if (Kb) { Lb = Pa; Mb = Na; } else { Qa = Ih(Pa, Na) | 0; Lb = Qa; Mb = y; } Qa = Ma; c[Qa >> 2] = Lb; c[(Qa + 4) >> 2] = Mb; } else { Mb = Oa; Oa = c[Mb >> 2] | 0; Qa = c[(Mb + 4) >> 2] | 0; if (Kb) { Nb = Oa; Ob = Qa; } else { Kb = Ih(Oa, Qa) | 0; Nb = Kb; Ob = y; } Kb = Ma; c[Kb >> 2] = Nb; c[(Kb + 4) >> 2] = Ob; } Ob = Ma; Ma = Jh(Sa, lb, c[Ob >> 2] | 0, c[(Ob + 4) >> 2] | 0) | 0; Ob = ((c[jb >> 2] | 0) + 32) | 0; c[Ob >> 2] = Ma; c[(Ob + 4) >> 2] = y; c[nb >> 2] = (c[nb >> 2] | 0) + (32 - (c[((c[jb >> 2] | 0) + 72) >> 2] | 0)); c[((c[jb >> 2] | 0) + 72) >> 2] = 0; } if ( (((c[nb >> 2] | 0) + 32) | 0) >>> 0 <= (c[ob >> 2] | 0) >>> 0 ) { c[pb >> 2] = (c[ob >> 2] | 0) + -32; Ob = ((c[jb >> 2] | 0) + 8) | 0; Ma = c[(Ob + 4) >> 2] | 0; lb = qb; c[lb >> 2] = c[Ob >> 2]; c[(lb + 4) >> 2] = Ma; Ma = ((c[jb >> 2] | 0) + 16) | 0; lb = c[(Ma + 4) >> 2] | 0; Ob = rb; c[Ob >> 2] = c[Ma >> 2]; c[(Ob + 4) >> 2] = lb; lb = ((c[jb >> 2] | 0) + 24) | 0; Ob = c[(lb + 4) >> 2] | 0; Ma = sb; c[Ma >> 2] = c[lb >> 2]; c[(Ma + 4) >> 2] = Ob; Ob = ((c[jb >> 2] | 0) + 32) | 0; Ma = c[(Ob + 4) >> 2] | 0; lb = tb; c[lb >> 2] = c[Ob >> 2]; c[(lb + 4) >> 2] = Ma; do { Ma = qb; lb = c[Ma >> 2] | 0; Ob = c[(Ma + 4) >> 2] | 0; Ma = c[mb >> 2] | 0; c[Ka >> 2] = c[nb >> 2]; c[La >> 2] = Ma; Ma = c[La >> 2] | 0; c[Ha >> 2] = c[Ka >> 2]; c[Ia >> 2] = Ma; c[Ja >> 2] = 1; Ma = (c[Ia >> 2] | 0) == 1; Sa = c[Ha >> 2] | 0; if ((c[Ja >> 2] | 0) == 1) { Kb = Hh(Sa) | 0; Nb = y; if (Ma) { Pb = Kb; Qb = Nb; } else { Qa = Ih(Kb, Nb) | 0; Pb = Qa; Qb = y; } Qa = Ga; c[Qa >> 2] = Pb; c[(Qa + 4) >> 2] = Qb; } else { Qa = Sa; Sa = c[Qa >> 2] | 0; Nb = c[(Qa + 4) >> 2] | 0; if (Ma) { Rb = Sa; Sb = Nb; } else { Ma = Ih(Sa, Nb) | 0; Rb = Ma; Sb = y; } Ma = Ga; c[Ma >> 2] = Rb; c[(Ma + 4) >> 2] = Sb; } Ma = Ga; Nb = Jh(lb, Ob, c[Ma >> 2] | 0, c[(Ma + 4) >> 2] | 0) | 0; Ma = qb; c[Ma >> 2] = Nb; c[(Ma + 4) >> 2] = y; c[nb >> 2] = (c[nb >> 2] | 0) + 8; Ma = rb; Nb = c[Ma >> 2] | 0; Ob = c[(Ma + 4) >> 2] | 0; Ma = c[mb >> 2] | 0; c[Ea >> 2] = c[nb >> 2]; c[Fa >> 2] = Ma; Ma = c[Fa >> 2] | 0; c[Ba >> 2] = c[Ea >> 2]; c[Ca >> 2] = Ma; c[Da >> 2] = 1; Ma = (c[Ca >> 2] | 0) == 1; lb = c[Ba >> 2] | 0; if ((c[Da >> 2] | 0) == 1) { Sa = Hh(lb) | 0; Qa = y; if (Ma) { Tb = Sa; Ub = Qa; } else { Kb = Ih(Sa, Qa) | 0; Tb = Kb; Ub = y; } Kb = Aa; c[Kb >> 2] = Tb; c[(Kb + 4) >> 2] = Ub; } else { Kb = lb; lb = c[Kb >> 2] | 0; Qa = c[(Kb + 4) >> 2] | 0; if (Ma) { Vb = lb; Wb = Qa; } else { Ma = Ih(lb, Qa) | 0; Vb = Ma; Wb = y; } Ma = Aa; c[Ma >> 2] = Vb; c[(Ma + 4) >> 2] = Wb; } Ma = Aa; Qa = Jh(Nb, Ob, c[Ma >> 2] | 0, c[(Ma + 4) >> 2] | 0) | 0; Ma = rb; c[Ma >> 2] = Qa; c[(Ma + 4) >> 2] = y; c[nb >> 2] = (c[nb >> 2] | 0) + 8; Ma = sb; Qa = c[Ma >> 2] | 0; Ob = c[(Ma + 4) >> 2] | 0; Ma = c[mb >> 2] | 0; c[ya >> 2] = c[nb >> 2]; c[za >> 2] = Ma; Ma = c[za >> 2] | 0; c[va >> 2] = c[ya >> 2]; c[wa >> 2] = Ma; c[xa >> 2] = 1; Ma = (c[wa >> 2] | 0) == 1; Nb = c[va >> 2] | 0; if ((c[xa >> 2] | 0) == 1) { lb = Hh(Nb) | 0; Kb = y; if (Ma) { Xb = lb; Yb = Kb; } else { Sa = Ih(lb, Kb) | 0; Xb = Sa; Yb = y; } Sa = ua; c[Sa >> 2] = Xb; c[(Sa + 4) >> 2] = Yb; } else { Sa = Nb; Nb = c[Sa >> 2] | 0; Kb = c[(Sa + 4) >> 2] | 0; if (Ma) { Zb = Nb; _b = Kb; } else { Ma = Ih(Nb, Kb) | 0; Zb = Ma; _b = y; } Ma = ua; c[Ma >> 2] = Zb; c[(Ma + 4) >> 2] = _b; } Ma = ua; Kb = Jh(Qa, Ob, c[Ma >> 2] | 0, c[(Ma + 4) >> 2] | 0) | 0; Ma = sb; c[Ma >> 2] = Kb; c[(Ma + 4) >> 2] = y; c[nb >> 2] = (c[nb >> 2] | 0) + 8; Ma = tb; Kb = c[Ma >> 2] | 0; Ob = c[(Ma + 4) >> 2] | 0; Ma = c[mb >> 2] | 0; c[sa >> 2] = c[nb >> 2]; c[ta >> 2] = Ma; Ma = c[ta >> 2] | 0; c[pa >> 2] = c[sa >> 2]; c[qa >> 2] = Ma; c[ra >> 2] = 1; Ma = (c[qa >> 2] | 0) == 1; Qa = c[pa >> 2] | 0; if ((c[ra >> 2] | 0) == 1) { Nb = Hh(Qa) | 0; Sa = y; if (Ma) { $b = Nb; ac = Sa; } else { lb = Ih(Nb, Sa) | 0; $b = lb; ac = y; } lb = oa; c[lb >> 2] = $b; c[(lb + 4) >> 2] = ac; } else { lb = Qa; Qa = c[lb >> 2] | 0; Sa = c[(lb + 4) >> 2] | 0; if (Ma) { bc = Qa; cc = Sa; } else { Ma = Ih(Qa, Sa) | 0; bc = Ma; cc = y; } Ma = oa; c[Ma >> 2] = bc; c[(Ma + 4) >> 2] = cc; } Ma = oa; Sa = Jh(Kb, Ob, c[Ma >> 2] | 0, c[(Ma + 4) >> 2] | 0) | 0; Ma = tb; c[Ma >> 2] = Sa; c[(Ma + 4) >> 2] = y; c[nb >> 2] = (c[nb >> 2] | 0) + 8; } while ( (c[nb >> 2] | 0) >>> 0 <= (c[pb >> 2] | 0) >>> 0 ); pb = qb; qb = c[(pb + 4) >> 2] | 0; oa = ((c[jb >> 2] | 0) + 8) | 0; c[oa >> 2] = c[pb >> 2]; c[(oa + 4) >> 2] = qb; qb = rb; rb = c[(qb + 4) >> 2] | 0; oa = ((c[jb >> 2] | 0) + 16) | 0; c[oa >> 2] = c[qb >> 2]; c[(oa + 4) >> 2] = rb; rb = sb; sb = c[(rb + 4) >> 2] | 0; oa = ((c[jb >> 2] | 0) + 24) | 0; c[oa >> 2] = c[rb >> 2]; c[(oa + 4) >> 2] = sb; sb = tb; tb = c[(sb + 4) >> 2] | 0; oa = ((c[jb >> 2] | 0) + 32) | 0; c[oa >> 2] = c[sb >> 2]; c[(oa + 4) >> 2] = tb; } if ((c[nb >> 2] | 0) >>> 0 < (c[ob >> 2] | 0) >>> 0) { Mh( ((c[jb >> 2] | 0) + 40) | 0, c[nb >> 2] | 0, ((c[ob >> 2] | 0) - (c[nb >> 2] | 0)) | 0 ) | 0; c[((c[jb >> 2] | 0) + 72) >> 2] = (c[ob >> 2] | 0) - (c[nb >> 2] | 0); } c[ib >> 2] = 0; } c[ub >> 2] = c[ib >> 2]; dc = c[ub >> 2] | 0; l = f; return dc | 0; } else { c[da >> 2] = e; c[ea >> 2] = vb; c[fa >> 2] = wb; c[ga >> 2] = 0; c[ha >> 2] = c[ea >> 2]; c[ia >> 2] = (c[ha >> 2] | 0) + (c[fa >> 2] | 0); wb = c[da >> 2] | 0; vb = wb; e = dE( c[vb >> 2] | 0, c[(vb + 4) >> 2] | 0, c[fa >> 2] | 0, 0 ) | 0; vb = wb; c[vb >> 2] = e; c[(vb + 4) >> 2] = y; vb = c[da >> 2] | 0; if ( (((c[((c[da >> 2] | 0) + 72) >> 2] | 0) + (c[fa >> 2] | 0)) | 0) >>> 0 < 32 ) { Mh( (vb + 40 + (c[((c[da >> 2] | 0) + 72) >> 2] | 0)) | 0, c[ea >> 2] | 0, c[fa >> 2] | 0 ) | 0; e = ((c[da >> 2] | 0) + 72) | 0; c[e >> 2] = (c[e >> 2] | 0) + (c[fa >> 2] | 0); c[ca >> 2] = 0; } else { if (c[(vb + 72) >> 2] | 0) { Mh( ((c[da >> 2] | 0) + 40 + (c[((c[da >> 2] | 0) + 72) >> 2] | 0)) | 0, c[ea >> 2] | 0, (32 - (c[((c[da >> 2] | 0) + 72) >> 2] | 0)) | 0 ) | 0; ea = ((c[da >> 2] | 0) + 8) | 0; vb = c[ea >> 2] | 0; fa = c[(ea + 4) >> 2] | 0; ea = c[ga >> 2] | 0; c[aa >> 2] = (c[da >> 2] | 0) + 40; c[ba >> 2] = ea; ea = c[ba >> 2] | 0; c[Z >> 2] = c[aa >> 2]; c[_ >> 2] = ea; c[$ >> 2] = 1; ea = (c[_ >> 2] | 0) == 1; _ = c[Z >> 2] | 0; if ((c[$ >> 2] | 0) == 1) { $ = Hh(_) | 0; Z = y; if (ea) { ec = $; fc = Z; } else { aa = Ih($, Z) | 0; ec = aa; fc = y; } aa = Y; c[aa >> 2] = ec; c[(aa + 4) >> 2] = fc; } else { fc = _; _ = c[fc >> 2] | 0; aa = c[(fc + 4) >> 2] | 0; if (ea) { gc = _; hc = aa; } else { ea = Ih(_, aa) | 0; gc = ea; hc = y; } ea = Y; c[ea >> 2] = gc; c[(ea + 4) >> 2] = hc; } hc = Y; Y = Jh(vb, fa, c[hc >> 2] | 0, c[(hc + 4) >> 2] | 0) | 0; hc = ((c[da >> 2] | 0) + 8) | 0; c[hc >> 2] = Y; c[(hc + 4) >> 2] = y; hc = ((c[da >> 2] | 0) + 16) | 0; Y = c[hc >> 2] | 0; fa = c[(hc + 4) >> 2] | 0; hc = c[ga >> 2] | 0; c[W >> 2] = (c[da >> 2] | 0) + 40 + 8; c[X >> 2] = hc; hc = c[X >> 2] | 0; c[T >> 2] = c[W >> 2]; c[U >> 2] = hc; c[V >> 2] = 1; hc = (c[U >> 2] | 0) == 1; U = c[T >> 2] | 0; if ((c[V >> 2] | 0) == 1) { V = Hh(U) | 0; T = y; if (hc) { ic = V; jc = T; } else { W = Ih(V, T) | 0; ic = W; jc = y; } W = S; c[W >> 2] = ic; c[(W + 4) >> 2] = jc; } else { jc = U; U = c[jc >> 2] | 0; W = c[(jc + 4) >> 2] | 0; if (hc) { kc = U; lc = W; } else { hc = Ih(U, W) | 0; kc = hc; lc = y; } hc = S; c[hc >> 2] = kc; c[(hc + 4) >> 2] = lc; } lc = S; S = Jh(Y, fa, c[lc >> 2] | 0, c[(lc + 4) >> 2] | 0) | 0; lc = ((c[da >> 2] | 0) + 16) | 0; c[lc >> 2] = S; c[(lc + 4) >> 2] = y; lc = ((c[da >> 2] | 0) + 24) | 0; S = c[lc >> 2] | 0; fa = c[(lc + 4) >> 2] | 0; lc = c[ga >> 2] | 0; c[Q >> 2] = (c[da >> 2] | 0) + 40 + 16; c[R >> 2] = lc; lc = c[R >> 2] | 0; c[N >> 2] = c[Q >> 2]; c[O >> 2] = lc; c[P >> 2] = 1; lc = (c[O >> 2] | 0) == 1; O = c[N >> 2] | 0; if ((c[P >> 2] | 0) == 1) { P = Hh(O) | 0; N = y; if (lc) { mc = P; nc = N; } else { Q = Ih(P, N) | 0; mc = Q; nc = y; } Q = M; c[Q >> 2] = mc; c[(Q + 4) >> 2] = nc; } else { nc = O; O = c[nc >> 2] | 0; Q = c[(nc + 4) >> 2] | 0; if (lc) { oc = O; pc = Q; } else { lc = Ih(O, Q) | 0; oc = lc; pc = y; } lc = M; c[lc >> 2] = oc; c[(lc + 4) >> 2] = pc; } pc = M; M = Jh(S, fa, c[pc >> 2] | 0, c[(pc + 4) >> 2] | 0) | 0; pc = ((c[da >> 2] | 0) + 24) | 0; c[pc >> 2] = M; c[(pc + 4) >> 2] = y; pc = ((c[da >> 2] | 0) + 32) | 0; M = c[pc >> 2] | 0; fa = c[(pc + 4) >> 2] | 0; pc = c[ga >> 2] | 0; c[K >> 2] = (c[da >> 2] | 0) + 40 + 24; c[L >> 2] = pc; pc = c[L >> 2] | 0; c[H >> 2] = c[K >> 2]; c[I >> 2] = pc; c[J >> 2] = 1; pc = (c[I >> 2] | 0) == 1; I = c[H >> 2] | 0; if ((c[J >> 2] | 0) == 1) { J = Hh(I) | 0; H = y; if (pc) { qc = J; rc = H; } else { K = Ih(J, H) | 0; qc = K; rc = y; } K = G; c[K >> 2] = qc; c[(K + 4) >> 2] = rc; } else { rc = I; I = c[rc >> 2] | 0; K = c[(rc + 4) >> 2] | 0; if (pc) { sc = I; tc = K; } else { pc = Ih(I, K) | 0; sc = pc; tc = y; } pc = G; c[pc >> 2] = sc; c[(pc + 4) >> 2] = tc; } tc = G; G = Jh(M, fa, c[tc >> 2] | 0, c[(tc + 4) >> 2] | 0) | 0; tc = ((c[da >> 2] | 0) + 32) | 0; c[tc >> 2] = G; c[(tc + 4) >> 2] = y; c[ha >> 2] = (c[ha >> 2] | 0) + (32 - (c[((c[da >> 2] | 0) + 72) >> 2] | 0)); c[((c[da >> 2] | 0) + 72) >> 2] = 0; } if ( (((c[ha >> 2] | 0) + 32) | 0) >>> 0 <= (c[ia >> 2] | 0) >>> 0 ) { c[ja >> 2] = (c[ia >> 2] | 0) + -32; tc = ((c[da >> 2] | 0) + 8) | 0; G = c[(tc + 4) >> 2] | 0; fa = ka; c[fa >> 2] = c[tc >> 2]; c[(fa + 4) >> 2] = G; G = ((c[da >> 2] | 0) + 16) | 0; fa = c[(G + 4) >> 2] | 0; tc = la; c[tc >> 2] = c[G >> 2]; c[(tc + 4) >> 2] = fa; fa = ((c[da >> 2] | 0) + 24) | 0; tc = c[(fa + 4) >> 2] | 0; G = ma; c[G >> 2] = c[fa >> 2]; c[(G + 4) >> 2] = tc; tc = ((c[da >> 2] | 0) + 32) | 0; G = c[(tc + 4) >> 2] | 0; fa = na; c[fa >> 2] = c[tc >> 2]; c[(fa + 4) >> 2] = G; do { G = ka; fa = c[G >> 2] | 0; tc = c[(G + 4) >> 2] | 0; G = c[ga >> 2] | 0; c[E >> 2] = c[ha >> 2]; c[F >> 2] = G; G = c[F >> 2] | 0; c[B >> 2] = c[E >> 2]; c[C >> 2] = G; c[D >> 2] = 1; G = (c[C >> 2] | 0) == 1; M = c[B >> 2] | 0; if ((c[D >> 2] | 0) == 1) { pc = Hh(M) | 0; sc = y; if (G) { uc = pc; vc = sc; } else { K = Ih(pc, sc) | 0; uc = K; vc = y; } K = A; c[K >> 2] = uc; c[(K + 4) >> 2] = vc; } else { K = M; M = c[K >> 2] | 0; sc = c[(K + 4) >> 2] | 0; if (G) { wc = M; xc = sc; } else { G = Ih(M, sc) | 0; wc = G; xc = y; } G = A; c[G >> 2] = wc; c[(G + 4) >> 2] = xc; } G = A; sc = Jh(fa, tc, c[G >> 2] | 0, c[(G + 4) >> 2] | 0) | 0; G = ka; c[G >> 2] = sc; c[(G + 4) >> 2] = y; c[ha >> 2] = (c[ha >> 2] | 0) + 8; G = la; sc = c[G >> 2] | 0; tc = c[(G + 4) >> 2] | 0; G = c[ga >> 2] | 0; c[x >> 2] = c[ha >> 2]; c[z >> 2] = G; G = c[z >> 2] | 0; c[u >> 2] = c[x >> 2]; c[v >> 2] = G; c[w >> 2] = 1; G = (c[v >> 2] | 0) == 1; fa = c[u >> 2] | 0; if ((c[w >> 2] | 0) == 1) { M = Hh(fa) | 0; K = y; if (G) { yc = M; zc = K; } else { pc = Ih(M, K) | 0; yc = pc; zc = y; } pc = t; c[pc >> 2] = yc; c[(pc + 4) >> 2] = zc; } else { pc = fa; fa = c[pc >> 2] | 0; K = c[(pc + 4) >> 2] | 0; if (G) { Ac = fa; Bc = K; } else { G = Ih(fa, K) | 0; Ac = G; Bc = y; } G = t; c[G >> 2] = Ac; c[(G + 4) >> 2] = Bc; } G = t; K = Jh(sc, tc, c[G >> 2] | 0, c[(G + 4) >> 2] | 0) | 0; G = la; c[G >> 2] = K; c[(G + 4) >> 2] = y; c[ha >> 2] = (c[ha >> 2] | 0) + 8; G = ma; K = c[G >> 2] | 0; tc = c[(G + 4) >> 2] | 0; G = c[ga >> 2] | 0; c[r >> 2] = c[ha >> 2]; c[s >> 2] = G; G = c[s >> 2] | 0; c[o >> 2] = c[r >> 2]; c[p >> 2] = G; c[q >> 2] = 1; G = (c[p >> 2] | 0) == 1; sc = c[o >> 2] | 0; if ((c[q >> 2] | 0) == 1) { fa = Hh(sc) | 0; pc = y; if (G) { Cc = fa; Dc = pc; } else { M = Ih(fa, pc) | 0; Cc = M; Dc = y; } M = n; c[M >> 2] = Cc; c[(M + 4) >> 2] = Dc; } else { M = sc; sc = c[M >> 2] | 0; pc = c[(M + 4) >> 2] | 0; if (G) { Ec = sc; Fc = pc; } else { G = Ih(sc, pc) | 0; Ec = G; Fc = y; } G = n; c[G >> 2] = Ec; c[(G + 4) >> 2] = Fc; } G = n; pc = Jh(K, tc, c[G >> 2] | 0, c[(G + 4) >> 2] | 0) | 0; G = ma; c[G >> 2] = pc; c[(G + 4) >> 2] = y; c[ha >> 2] = (c[ha >> 2] | 0) + 8; G = na; pc = c[G >> 2] | 0; tc = c[(G + 4) >> 2] | 0; G = c[ga >> 2] | 0; c[k >> 2] = c[ha >> 2]; c[m >> 2] = G; G = c[m >> 2] | 0; c[h >> 2] = c[k >> 2]; c[i >> 2] = G; c[j >> 2] = 1; G = (c[i >> 2] | 0) == 1; K = c[h >> 2] | 0; if ((c[j >> 2] | 0) == 1) { sc = Hh(K) | 0; M = y; if (G) { Gc = sc; Hc = M; } else { fa = Ih(sc, M) | 0; Gc = fa; Hc = y; } fa = g; c[fa >> 2] = Gc; c[(fa + 4) >> 2] = Hc; } else { fa = K; K = c[fa >> 2] | 0; M = c[(fa + 4) >> 2] | 0; if (G) { Ic = K; Jc = M; } else { G = Ih(K, M) | 0; Ic = G; Jc = y; } G = g; c[G >> 2] = Ic; c[(G + 4) >> 2] = Jc; } G = g; M = Jh(pc, tc, c[G >> 2] | 0, c[(G + 4) >> 2] | 0) | 0; G = na; c[G >> 2] = M; c[(G + 4) >> 2] = y; c[ha >> 2] = (c[ha >> 2] | 0) + 8; } while ( (c[ha >> 2] | 0) >>> 0 <= (c[ja >> 2] | 0) >>> 0 ); ja = ka; ka = c[(ja + 4) >> 2] | 0; g = ((c[da >> 2] | 0) + 8) | 0; c[g >> 2] = c[ja >> 2]; c[(g + 4) >> 2] = ka; ka = la; la = c[(ka + 4) >> 2] | 0; g = ((c[da >> 2] | 0) + 16) | 0; c[g >> 2] = c[ka >> 2]; c[(g + 4) >> 2] = la; la = ma; ma = c[(la + 4) >> 2] | 0; g = ((c[da >> 2] | 0) + 24) | 0; c[g >> 2] = c[la >> 2]; c[(g + 4) >> 2] = ma; ma = na; na = c[(ma + 4) >> 2] | 0; g = ((c[da >> 2] | 0) + 32) | 0; c[g >> 2] = c[ma >> 2]; c[(g + 4) >> 2] = na; } if ((c[ha >> 2] | 0) >>> 0 < (c[ia >> 2] | 0) >>> 0) { Mh( ((c[da >> 2] | 0) + 40) | 0, c[ha >> 2] | 0, ((c[ia >> 2] | 0) - (c[ha >> 2] | 0)) | 0 ) | 0; c[((c[da >> 2] | 0) + 72) >> 2] = (c[ia >> 2] | 0) - (c[ha >> 2] | 0); } c[ca >> 2] = 0; } c[ub >> 2] = c[ca >> 2]; dc = c[ub >> 2] | 0; l = f; return dc | 0; } return 0; } function Oh(b) { b = b | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0; e = l; l = (l + 256) | 0; f = (e + 244) | 0; g = (e + 240) | 0; h = (e + 236) | 0; i = (e + 232) | 0; j = (e + 228) | 0; k = (e + 224) | 0; m = (e + 112) | 0; n = (e + 220) | 0; o = (e + 216) | 0; p = (e + 212) | 0; q = (e + 208) | 0; r = (e + 204) | 0; s = (e + 200) | 0; t = (e + 196) | 0; u = (e + 192) | 0; v = (e + 188) | 0; w = (e + 104) | 0; x = (e + 96) | 0; z = (e + 88) | 0; A = (e + 80) | 0; B = (e + 72) | 0; C = (e + 64) | 0; D = (e + 184) | 0; E = (e + 180) | 0; F = (e + 176) | 0; G = (e + 172) | 0; H = (e + 168) | 0; I = (e + 164) | 0; J = (e + 56) | 0; K = (e + 160) | 0; L = (e + 156) | 0; M = (e + 152) | 0; N = (e + 148) | 0; O = (e + 144) | 0; P = (e + 140) | 0; Q = (e + 136) | 0; R = (e + 132) | 0; S = (e + 128) | 0; T = (e + 48) | 0; U = (e + 40) | 0; V = (e + 32) | 0; W = (e + 24) | 0; X = (e + 16) | 0; Y = (e + 8) | 0; Z = e; _ = (e + 124) | 0; $ = (e + 120) | 0; c[_ >> 2] = b; c[$ >> 2] = a[11920]; b = c[_ >> 2] | 0; if ((c[$ >> 2] | 0) == 1) { c[P >> 2] = b; c[Q >> 2] = 1; c[R >> 2] = (c[P >> 2] | 0) + 40; c[S >> 2] = (c[P >> 2] | 0) + 40 + (c[((c[P >> 2] | 0) + 72) >> 2] | 0); $ = c[P >> 2] | 0; _ = c[($ + 4) >> 2] | 0; aa = c[P >> 2] | 0; if ( (_ >>> 0 > 0) | (((_ | 0) == 0) & ((c[$ >> 2] | 0) >>> 0 >= 32)) ) { $ = (aa + 8) | 0; _ = c[($ + 4) >> 2] | 0; ba = U; c[ba >> 2] = c[$ >> 2]; c[(ba + 4) >> 2] = _; _ = ((c[P >> 2] | 0) + 16) | 0; ba = c[(_ + 4) >> 2] | 0; $ = V; c[$ >> 2] = c[_ >> 2]; c[($ + 4) >> 2] = ba; ba = ((c[P >> 2] | 0) + 24) | 0; $ = c[(ba + 4) >> 2] | 0; _ = W; c[_ >> 2] = c[ba >> 2]; c[(_ + 4) >> 2] = $; $ = ((c[P >> 2] | 0) + 32) | 0; _ = c[($ + 4) >> 2] | 0; ba = X; c[ba >> 2] = c[$ >> 2]; c[(ba + 4) >> 2] = _; _ = U; ba = jE(c[_ >> 2] | 0, c[(_ + 4) >> 2] | 0, 1) | 0; _ = y; $ = U; ca = iE(c[$ >> 2] | 0, c[($ + 4) >> 2] | 0, 63) | 0; $ = _ | y; _ = V; da = jE(c[_ >> 2] | 0, c[(_ + 4) >> 2] | 0, 7) | 0; _ = y; ea = V; fa = iE(c[ea >> 2] | 0, c[(ea + 4) >> 2] | 0, 57) | 0; ea = dE(ba | ca | 0, $ | 0, da | fa | 0, _ | y | 0) | 0; _ = y; fa = W; da = jE(c[fa >> 2] | 0, c[(fa + 4) >> 2] | 0, 12) | 0; fa = y; $ = W; ca = iE(c[$ >> 2] | 0, c[($ + 4) >> 2] | 0, 52) | 0; $ = dE(ea | 0, _ | 0, da | ca | 0, fa | y | 0) | 0; fa = y; ca = X; da = jE(c[ca >> 2] | 0, c[(ca + 4) >> 2] | 0, 18) | 0; ca = y; _ = X; ea = iE(c[_ >> 2] | 0, c[(_ + 4) >> 2] | 0, 46) | 0; _ = dE($ | 0, fa | 0, da | ea | 0, ca | y | 0) | 0; ca = T; c[ca >> 2] = _; c[(ca + 4) >> 2] = y; ca = T; _ = U; U = Kh( c[ca >> 2] | 0, c[(ca + 4) >> 2] | 0, c[_ >> 2] | 0, c[(_ + 4) >> 2] | 0 ) | 0; _ = T; c[_ >> 2] = U; c[(_ + 4) >> 2] = y; _ = T; U = V; V = Kh( c[_ >> 2] | 0, c[(_ + 4) >> 2] | 0, c[U >> 2] | 0, c[(U + 4) >> 2] | 0 ) | 0; U = T; c[U >> 2] = V; c[(U + 4) >> 2] = y; U = T; V = W; W = Kh( c[U >> 2] | 0, c[(U + 4) >> 2] | 0, c[V >> 2] | 0, c[(V + 4) >> 2] | 0 ) | 0; V = T; c[V >> 2] = W; c[(V + 4) >> 2] = y; V = T; W = X; X = Kh( c[V >> 2] | 0, c[(V + 4) >> 2] | 0, c[W >> 2] | 0, c[(W + 4) >> 2] | 0 ) | 0; W = T; c[W >> 2] = X; c[(W + 4) >> 2] = y; } else { W = (aa + 24) | 0; aa = dE( c[W >> 2] | 0, c[(W + 4) >> 2] | 0, 374761413, 668265263 ) | 0; W = T; c[W >> 2] = aa; c[(W + 4) >> 2] = y; } W = c[P >> 2] | 0; P = T; aa = dE( c[P >> 2] | 0, c[(P + 4) >> 2] | 0, c[W >> 2] | 0, c[(W + 4) >> 2] | 0 ) | 0; W = T; c[W >> 2] = aa; c[(W + 4) >> 2] = y; while (1) { ga = c[R >> 2] | 0; if ( (((c[R >> 2] | 0) + 8) | 0) >>> 0 > (c[S >> 2] | 0) >>> 0 ) break; W = c[Q >> 2] | 0; c[N >> 2] = ga; c[O >> 2] = W; W = c[O >> 2] | 0; c[K >> 2] = c[N >> 2]; c[L >> 2] = W; c[M >> 2] = 1; W = (c[L >> 2] | 0) == 1; aa = c[K >> 2] | 0; if ((c[M >> 2] | 0) == 1) { P = Hh(aa) | 0; X = y; if (W) { ha = P; ia = X; } else { V = Ih(P, X) | 0; ha = V; ia = y; } V = J; c[V >> 2] = ha; c[(V + 4) >> 2] = ia; } else { V = aa; aa = c[V >> 2] | 0; X = c[(V + 4) >> 2] | 0; if (W) { ja = aa; ka = X; } else { W = Ih(aa, X) | 0; ja = W; ka = y; } W = J; c[W >> 2] = ja; c[(W + 4) >> 2] = ka; } W = J; X = Jh(0, 0, c[W >> 2] | 0, c[(W + 4) >> 2] | 0) | 0; W = Y; c[W >> 2] = X; c[(W + 4) >> 2] = y; W = Y; X = T; aa = c[(X + 4) >> 2] ^ c[(W + 4) >> 2]; V = T; c[V >> 2] = c[X >> 2] ^ c[W >> 2]; c[(V + 4) >> 2] = aa; aa = T; V = jE(c[aa >> 2] | 0, c[(aa + 4) >> 2] | 0, 27) | 0; aa = y; W = T; X = iE(c[W >> 2] | 0, c[(W + 4) >> 2] | 0, 37) | 0; W = cE(V | X | 0, aa | y | 0, -2048144761, -1640531535) | 0; aa = dE(W | 0, y | 0, -1028477341, -2048144777) | 0; W = T; c[W >> 2] = aa; c[(W + 4) >> 2] = y; c[R >> 2] = (c[R >> 2] | 0) + 8; } if (((ga + 4) | 0) >>> 0 <= (c[S >> 2] | 0) >>> 0) { ga = c[Q >> 2] | 0; c[H >> 2] = c[R >> 2]; c[I >> 2] = ga; ga = c[I >> 2] | 0; c[E >> 2] = c[H >> 2]; c[F >> 2] = ga; c[G >> 2] = 1; ga = (c[F >> 2] | 0) == 1; F = c[E >> 2] | 0; if ((c[G >> 2] | 0) == 1) { G = Fh(F) | 0; if (ga) la = G; else la = Gh(G) | 0; c[D >> 2] = la; } else { la = c[F >> 2] | 0; if (ga) ma = la; else ma = Gh(la) | 0; c[D >> 2] = ma; } ma = cE(c[D >> 2] | 0, 0, -2048144761, -1640531535) | 0; D = T; la = c[(D + 4) >> 2] ^ y; ga = T; c[ga >> 2] = c[D >> 2] ^ ma; c[(ga + 4) >> 2] = la; la = T; ga = jE(c[la >> 2] | 0, c[(la + 4) >> 2] | 0, 23) | 0; la = y; ma = T; D = iE(c[ma >> 2] | 0, c[(ma + 4) >> 2] | 0, 41) | 0; ma = cE(ga | D | 0, la | y | 0, 668265295, -1028477379) | 0; la = dE(ma | 0, y | 0, -1640531463, 374761393) | 0; ma = T; c[ma >> 2] = la; c[(ma + 4) >> 2] = y; c[R >> 2] = (c[R >> 2] | 0) + 4; } while (1) { if ((c[R >> 2] | 0) >>> 0 >= (c[S >> 2] | 0) >>> 0) break; ma = cE(d[c[R >> 2] >> 0] | 0, 0, 374761413, 668265263) | 0; la = T; D = c[(la + 4) >> 2] ^ y; ga = T; c[ga >> 2] = c[la >> 2] ^ ma; c[(ga + 4) >> 2] = D; D = T; ga = jE(c[D >> 2] | 0, c[(D + 4) >> 2] | 0, 11) | 0; D = y; ma = T; la = iE(c[ma >> 2] | 0, c[(ma + 4) >> 2] | 0, 53) | 0; ma = cE(ga | la | 0, D | y | 0, -2048144761, -1640531535) | 0; D = T; c[D >> 2] = ma; c[(D + 4) >> 2] = y; c[R >> 2] = (c[R >> 2] | 0) + 1; } R = T; S = iE(c[R >> 2] | 0, c[(R + 4) >> 2] | 0, 33) | 0; R = T; D = c[(R + 4) >> 2] ^ y; ma = T; c[ma >> 2] = c[R >> 2] ^ S; c[(ma + 4) >> 2] = D; D = T; ma = cE( c[D >> 2] | 0, c[(D + 4) >> 2] | 0, 668265295, -1028477379 ) | 0; D = T; c[D >> 2] = ma; c[(D + 4) >> 2] = y; D = T; ma = iE(c[D >> 2] | 0, c[(D + 4) >> 2] | 0, 29) | 0; D = T; S = c[(D + 4) >> 2] ^ y; R = T; c[R >> 2] = c[D >> 2] ^ ma; c[(R + 4) >> 2] = S; S = T; R = cE( c[S >> 2] | 0, c[(S + 4) >> 2] | 0, -1640531463, 374761393 ) | 0; S = T; c[S >> 2] = R; c[(S + 4) >> 2] = y; S = T; R = c[(S + 4) >> 2] | 0; ma = T; c[ma >> 2] = c[S >> 2] ^ c[(T + 4) >> 2]; c[(ma + 4) >> 2] = R; R = T; T = c[(R + 4) >> 2] | 0; ma = Z; c[ma >> 2] = c[R >> 2]; c[(ma + 4) >> 2] = T; na = Z; oa = na; pa = c[oa >> 2] | 0; qa = (na + 4) | 0; ra = qa; sa = c[ra >> 2] | 0; y = sa; l = e; return pa | 0; } else { c[s >> 2] = b; c[t >> 2] = 0; c[u >> 2] = (c[s >> 2] | 0) + 40; c[v >> 2] = (c[s >> 2] | 0) + 40 + (c[((c[s >> 2] | 0) + 72) >> 2] | 0); b = c[s >> 2] | 0; T = c[(b + 4) >> 2] | 0; ma = c[s >> 2] | 0; if ( (T >>> 0 > 0) | (((T | 0) == 0) & ((c[b >> 2] | 0) >>> 0 >= 32)) ) { b = (ma + 8) | 0; T = c[(b + 4) >> 2] | 0; R = x; c[R >> 2] = c[b >> 2]; c[(R + 4) >> 2] = T; T = ((c[s >> 2] | 0) + 16) | 0; R = c[(T + 4) >> 2] | 0; b = z; c[b >> 2] = c[T >> 2]; c[(b + 4) >> 2] = R; R = ((c[s >> 2] | 0) + 24) | 0; b = c[(R + 4) >> 2] | 0; T = A; c[T >> 2] = c[R >> 2]; c[(T + 4) >> 2] = b; b = ((c[s >> 2] | 0) + 32) | 0; T = c[(b + 4) >> 2] | 0; R = B; c[R >> 2] = c[b >> 2]; c[(R + 4) >> 2] = T; T = x; R = jE(c[T >> 2] | 0, c[(T + 4) >> 2] | 0, 1) | 0; T = y; b = x; S = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 63) | 0; b = T | y; T = z; D = jE(c[T >> 2] | 0, c[(T + 4) >> 2] | 0, 7) | 0; T = y; la = z; ga = iE(c[la >> 2] | 0, c[(la + 4) >> 2] | 0, 57) | 0; la = dE(R | S | 0, b | 0, D | ga | 0, T | y | 0) | 0; T = y; ga = A; D = jE(c[ga >> 2] | 0, c[(ga + 4) >> 2] | 0, 12) | 0; ga = y; b = A; S = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 52) | 0; b = dE(la | 0, T | 0, D | S | 0, ga | y | 0) | 0; ga = y; S = B; D = jE(c[S >> 2] | 0, c[(S + 4) >> 2] | 0, 18) | 0; S = y; T = B; la = iE(c[T >> 2] | 0, c[(T + 4) >> 2] | 0, 46) | 0; T = dE(b | 0, ga | 0, D | la | 0, S | y | 0) | 0; S = w; c[S >> 2] = T; c[(S + 4) >> 2] = y; S = w; T = x; x = Kh( c[S >> 2] | 0, c[(S + 4) >> 2] | 0, c[T >> 2] | 0, c[(T + 4) >> 2] | 0 ) | 0; T = w; c[T >> 2] = x; c[(T + 4) >> 2] = y; T = w; x = z; z = Kh( c[T >> 2] | 0, c[(T + 4) >> 2] | 0, c[x >> 2] | 0, c[(x + 4) >> 2] | 0 ) | 0; x = w; c[x >> 2] = z; c[(x + 4) >> 2] = y; x = w; z = A; A = Kh( c[x >> 2] | 0, c[(x + 4) >> 2] | 0, c[z >> 2] | 0, c[(z + 4) >> 2] | 0 ) | 0; z = w; c[z >> 2] = A; c[(z + 4) >> 2] = y; z = w; A = B; B = Kh( c[z >> 2] | 0, c[(z + 4) >> 2] | 0, c[A >> 2] | 0, c[(A + 4) >> 2] | 0 ) | 0; A = w; c[A >> 2] = B; c[(A + 4) >> 2] = y; } else { A = (ma + 24) | 0; ma = dE( c[A >> 2] | 0, c[(A + 4) >> 2] | 0, 374761413, 668265263 ) | 0; A = w; c[A >> 2] = ma; c[(A + 4) >> 2] = y; } A = c[s >> 2] | 0; s = w; ma = dE( c[s >> 2] | 0, c[(s + 4) >> 2] | 0, c[A >> 2] | 0, c[(A + 4) >> 2] | 0 ) | 0; A = w; c[A >> 2] = ma; c[(A + 4) >> 2] = y; while (1) { ta = c[u >> 2] | 0; if ( (((c[u >> 2] | 0) + 8) | 0) >>> 0 > (c[v >> 2] | 0) >>> 0 ) break; A = c[t >> 2] | 0; c[q >> 2] = ta; c[r >> 2] = A; A = c[r >> 2] | 0; c[n >> 2] = c[q >> 2]; c[o >> 2] = A; c[p >> 2] = 1; A = (c[o >> 2] | 0) == 1; ma = c[n >> 2] | 0; if ((c[p >> 2] | 0) == 1) { s = Hh(ma) | 0; B = y; if (A) { ua = s; va = B; } else { z = Ih(s, B) | 0; ua = z; va = y; } z = m; c[z >> 2] = ua; c[(z + 4) >> 2] = va; } else { z = ma; ma = c[z >> 2] | 0; B = c[(z + 4) >> 2] | 0; if (A) { wa = ma; xa = B; } else { A = Ih(ma, B) | 0; wa = A; xa = y; } A = m; c[A >> 2] = wa; c[(A + 4) >> 2] = xa; } A = m; B = Jh(0, 0, c[A >> 2] | 0, c[(A + 4) >> 2] | 0) | 0; A = C; c[A >> 2] = B; c[(A + 4) >> 2] = y; A = C; B = w; ma = c[(B + 4) >> 2] ^ c[(A + 4) >> 2]; z = w; c[z >> 2] = c[B >> 2] ^ c[A >> 2]; c[(z + 4) >> 2] = ma; ma = w; z = jE(c[ma >> 2] | 0, c[(ma + 4) >> 2] | 0, 27) | 0; ma = y; A = w; B = iE(c[A >> 2] | 0, c[(A + 4) >> 2] | 0, 37) | 0; A = cE(z | B | 0, ma | y | 0, -2048144761, -1640531535) | 0; ma = dE(A | 0, y | 0, -1028477341, -2048144777) | 0; A = w; c[A >> 2] = ma; c[(A + 4) >> 2] = y; c[u >> 2] = (c[u >> 2] | 0) + 8; } if (((ta + 4) | 0) >>> 0 <= (c[v >> 2] | 0) >>> 0) { ta = c[t >> 2] | 0; c[j >> 2] = c[u >> 2]; c[k >> 2] = ta; ta = c[k >> 2] | 0; c[g >> 2] = c[j >> 2]; c[h >> 2] = ta; c[i >> 2] = 1; ta = (c[h >> 2] | 0) == 1; h = c[g >> 2] | 0; if ((c[i >> 2] | 0) == 1) { i = Fh(h) | 0; if (ta) ya = i; else ya = Gh(i) | 0; c[f >> 2] = ya; } else { ya = c[h >> 2] | 0; if (ta) za = ya; else za = Gh(ya) | 0; c[f >> 2] = za; } za = cE(c[f >> 2] | 0, 0, -2048144761, -1640531535) | 0; f = w; ya = c[(f + 4) >> 2] ^ y; ta = w; c[ta >> 2] = c[f >> 2] ^ za; c[(ta + 4) >> 2] = ya; ya = w; ta = jE(c[ya >> 2] | 0, c[(ya + 4) >> 2] | 0, 23) | 0; ya = y; za = w; f = iE(c[za >> 2] | 0, c[(za + 4) >> 2] | 0, 41) | 0; za = cE(ta | f | 0, ya | y | 0, 668265295, -1028477379) | 0; ya = dE(za | 0, y | 0, -1640531463, 374761393) | 0; za = w; c[za >> 2] = ya; c[(za + 4) >> 2] = y; c[u >> 2] = (c[u >> 2] | 0) + 4; } while (1) { if ((c[u >> 2] | 0) >>> 0 >= (c[v >> 2] | 0) >>> 0) break; za = cE(d[c[u >> 2] >> 0] | 0, 0, 374761413, 668265263) | 0; ya = w; f = c[(ya + 4) >> 2] ^ y; ta = w; c[ta >> 2] = c[ya >> 2] ^ za; c[(ta + 4) >> 2] = f; f = w; ta = jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 11) | 0; f = y; za = w; ya = iE(c[za >> 2] | 0, c[(za + 4) >> 2] | 0, 53) | 0; za = cE(ta | ya | 0, f | y | 0, -2048144761, -1640531535) | 0; f = w; c[f >> 2] = za; c[(f + 4) >> 2] = y; c[u >> 2] = (c[u >> 2] | 0) + 1; } u = w; v = iE(c[u >> 2] | 0, c[(u + 4) >> 2] | 0, 33) | 0; u = w; f = c[(u + 4) >> 2] ^ y; za = w; c[za >> 2] = c[u >> 2] ^ v; c[(za + 4) >> 2] = f; f = w; za = cE( c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 668265295, -1028477379 ) | 0; f = w; c[f >> 2] = za; c[(f + 4) >> 2] = y; f = w; za = iE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 29) | 0; f = w; v = c[(f + 4) >> 2] ^ y; u = w; c[u >> 2] = c[f >> 2] ^ za; c[(u + 4) >> 2] = v; v = w; u = cE( c[v >> 2] | 0, c[(v + 4) >> 2] | 0, -1640531463, 374761393 ) | 0; v = w; c[v >> 2] = u; c[(v + 4) >> 2] = y; v = w; u = c[(v + 4) >> 2] | 0; za = w; c[za >> 2] = c[v >> 2] ^ c[(w + 4) >> 2]; c[(za + 4) >> 2] = u; u = w; w = c[(u + 4) >> 2] | 0; za = Z; c[za >> 2] = c[u >> 2]; c[(za + 4) >> 2] = w; na = Z; oa = na; pa = c[oa >> 2] | 0; qa = (na + 4) | 0; ra = qa; sa = c[ra >> 2] | 0; y = sa; l = e; return pa | 0; } return 0; } function Ph(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = Qh(c[d >> 2] | 0) | 0; l = b; return a | 0; } function Qh(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function Rh(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[f >> 2] = a; if (c[b >> 2] | 0) { c[e >> 2] = qc[c[b >> 2] & 63](c[(b + 8) >> 2] | 0, c[f >> 2] | 0) | 0; g = c[e >> 2] | 0; l = d; return g | 0; } else { c[e >> 2] = Cy(c[f >> 2] | 0) | 0; g = c[e >> 2] | 0; l = d; return g | 0; } return 0; } function Sh(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[f >> 2] = a; if (c[b >> 2] | 0) { c[g >> 2] = qc[c[b >> 2] & 63](c[(b + 8) >> 2] | 0, c[f >> 2] | 0) | 0; oE(c[g >> 2] | 0, 0, c[f >> 2] | 0) | 0; c[e >> 2] = c[g >> 2]; h = c[e >> 2] | 0; l = d; return h | 0; } else { c[e >> 2] = Ey(1, c[f >> 2] | 0) | 0; h = c[e >> 2] | 0; l = d; return h | 0; } return 0; } function Th(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; d = l; l = (l + 16) | 0; e = d; c[e >> 2] = a; if (!(c[e >> 2] | 0)) { l = d; return; } if (c[(b + 4) >> 2] | 0) { xc[c[(b + 4) >> 2] & 31]( c[(b + 8) >> 2] | 0, c[e >> 2] | 0 ); l = d; return; } else { Dy(c[e >> 2] | 0); l = d; return; } } function Uh(e, f, g, h, i, j) { e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0; k = l; l = (l + 1136) | 0; m = (k + 1124) | 0; n = (k + 1120) | 0; o = (k + 1116) | 0; p = (k + 1112) | 0; q = (k + 1108) | 0; r = (k + 1104) | 0; s = (k + 1100) | 0; t = (k + 1096) | 0; u = (k + 1092) | 0; v = (k + 1088) | 0; w = (k + 1084) | 0; x = (k + 1080) | 0; y = (k + 1076) | 0; z = (k + 1072) | 0; A = k; B = (k + 1068) | 0; C = (k + 1064) | 0; D = (k + 1060) | 0; E = (k + 1056) | 0; F = (k + 1052) | 0; G = (k + 1048) | 0; H = (k + 1044) | 0; I = (k + 1128) | 0; J = (k + 1040) | 0; K = (k + 1036) | 0; L = (k + 1032) | 0; M = (k + 1028) | 0; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; c[r >> 2] = i; c[s >> 2] = j; c[t >> 2] = 1 << c[q >> 2]; c[u >> 2] = (c[t >> 2] | 0) - 1; c[v >> 2] = c[n >> 2]; c[w >> 2] = (c[v >> 2] | 0) + 4; c[x >> 2] = (c[v >> 2] | 0) + 4 + ((c[q >> 2] | 0 ? (c[t >> 2] | 0) >>> 1 : 1) << 2); c[y >> 2] = c[x >> 2]; c[z >> 2] = ((c[t >> 2] | 0) >>> 1) + ((c[t >> 2] | 0) >>> 3) + 3; c[B >> 2] = c[r >> 2]; c[C >> 2] = (c[t >> 2] | 0) - 1; if ((1 << c[q >> 2]) >>> 0 > (c[s >> 2] | 0) >>> 0) { c[m >> 2] = -44; N = c[m >> 2] | 0; l = k; return N | 0; } b[((c[w >> 2] | 0) + -4) >> 1] = c[q >> 2]; b[((c[w >> 2] | 0) + -2) >> 1] = c[p >> 2]; c[A >> 2] = 0; c[D >> 2] = 1; while (1) { if ( (c[D >> 2] | 0) >>> 0 > (((c[p >> 2] | 0) + 1) | 0) >>> 0 ) break; s = c[(A + (((c[D >> 2] | 0) - 1) << 2)) >> 2] | 0; if ( (b[ ((c[o >> 2] | 0) + (((c[D >> 2] | 0) - 1) << 1)) >> 1 ] | 0) == -1 ) { c[(A + (c[D >> 2] << 2)) >> 2] = s + 1; r = ((c[D >> 2] | 0) - 1) & 255; x = c[B >> 2] | 0; v = c[C >> 2] | 0; c[C >> 2] = v + -1; a[(x + v) >> 0] = r; } else c[(A + (c[D >> 2] << 2)) >> 2] = s + (b[ ((c[o >> 2] | 0) + (((c[D >> 2] | 0) - 1) << 1)) >> 1 ] | 0); c[D >> 2] = (c[D >> 2] | 0) + 1; } c[(A + (((c[p >> 2] | 0) + 1) << 2)) >> 2] = (c[t >> 2] | 0) + 1; c[E >> 2] = 0; c[F >> 2] = 0; while (1) { if ((c[F >> 2] | 0) >>> 0 > (c[p >> 2] | 0) >>> 0) break; c[G >> 2] = 0; while (1) { O = c[F >> 2] | 0; if ( (c[G >> 2] | 0) >= (b[((c[o >> 2] | 0) + (c[F >> 2] << 1)) >> 1] | 0) ) break; a[((c[B >> 2] | 0) + (c[E >> 2] | 0)) >> 0] = O; c[E >> 2] = ((c[E >> 2] | 0) + (c[z >> 2] | 0)) & c[u >> 2]; while (1) { if ((c[E >> 2] | 0) >>> 0 <= (c[C >> 2] | 0) >>> 0) break; c[E >> 2] = ((c[E >> 2] | 0) + (c[z >> 2] | 0)) & c[u >> 2]; } c[G >> 2] = (c[G >> 2] | 0) + 1; } c[F >> 2] = O + 1; } if (c[E >> 2] | 0) { c[m >> 2] = -1; N = c[m >> 2] | 0; l = k; return N | 0; } c[H >> 2] = 0; while (1) { if ((c[H >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; a[I >> 0] = a[((c[B >> 2] | 0) + (c[H >> 2] | 0)) >> 0] | 0; E = ((c[t >> 2] | 0) + (c[H >> 2] | 0)) & 65535; O = c[w >> 2] | 0; F = (A + (d[I >> 0] << 2)) | 0; G = c[F >> 2] | 0; c[F >> 2] = G + 1; b[(O + (G << 1)) >> 1] = E; c[H >> 2] = (c[H >> 2] | 0) + 1; } c[J >> 2] = 0; c[K >> 2] = 0; while (1) { if ((c[K >> 2] | 0) >>> 0 > (c[p >> 2] | 0) >>> 0) break; switch (b[((c[o >> 2] | 0) + (c[K >> 2] << 1)) >> 1] | 0) { case 0: break; case 1: case -1: { c[((c[y >> 2] | 0) + (c[K >> 2] << 3) + 4) >> 2] = (c[q >> 2] << 16) - (1 << c[q >> 2]); c[((c[y >> 2] | 0) + (c[K >> 2] << 3)) >> 2] = (c[J >> 2] | 0) - 1; c[J >> 2] = (c[J >> 2] | 0) + 1; break; } default: { c[L >> 2] = (c[q >> 2] | 0) - (Vh( ((b[((c[o >> 2] | 0) + (c[K >> 2] << 1)) >> 1] | 0) - 1) | 0 ) | 0); c[M >> 2] = b[((c[o >> 2] | 0) + (c[K >> 2] << 1)) >> 1] << c[L >> 2]; c[((c[y >> 2] | 0) + (c[K >> 2] << 3) + 4) >> 2] = (c[L >> 2] << 16) - (c[M >> 2] | 0); c[((c[y >> 2] | 0) + (c[K >> 2] << 3)) >> 2] = (c[J >> 2] | 0) - (b[((c[o >> 2] | 0) + (c[K >> 2] << 1)) >> 1] | 0); c[J >> 2] = (c[J >> 2] | 0) + (b[((c[o >> 2] | 0) + (c[K >> 2] << 1)) >> 1] | 0); } } c[K >> 2] = (c[K >> 2] | 0) + 1; } c[m >> 2] = 0; N = c[m >> 2] | 0; l = k; return N | 0; } function Vh(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function Wh(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = ((N(((c[e >> 2] | 0) + 1) | 0, c[f >> 2] | 0) | 0) >>> 3) + 3; l = d; return (c[e >> 2] | 0 ? c[g >> 2] | 0 : 512) | 0; } function Xh(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; do { if ((c[n >> 2] | 0) >>> 0 <= 12) { if ((c[n >> 2] | 0) >>> 0 < 5) { c[h >> 2] = -1; break; } f = c[j >> 2] | 0; e = f >>> 0 < (Wh(c[m >> 2] | 0, c[n >> 2] | 0) | 0) >>> 0; f = c[i >> 2] | 0; d = c[j >> 2] | 0; b = c[k >> 2] | 0; a = c[m >> 2] | 0; o = c[n >> 2] | 0; if (e) { c[h >> 2] = Yh(f, d, b, a, o, 0) | 0; break; } else { c[h >> 2] = Yh(f, d, b, a, o, 1) | 0; break; } } else c[h >> 2] = -44; } while (0); l = g; return c[h >> 2] | 0; } function Yh(d, e, f, g, h, i) { d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0; j = l; l = (l + 96) | 0; k = (j + 80) | 0; m = (j + 76) | 0; n = (j + 72) | 0; o = (j + 68) | 0; p = (j + 64) | 0; q = (j + 60) | 0; r = (j + 56) | 0; s = (j + 52) | 0; t = (j + 48) | 0; u = (j + 44) | 0; v = (j + 40) | 0; w = (j + 36) | 0; x = (j + 32) | 0; y = (j + 28) | 0; z = (j + 24) | 0; A = (j + 20) | 0; B = (j + 16) | 0; C = (j + 12) | 0; D = (j + 8) | 0; E = (j + 4) | 0; F = j; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; c[r >> 2] = i; c[s >> 2] = c[m >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = (c[s >> 2] | 0) + (c[n >> 2] | 0); c[w >> 2] = 1 << c[q >> 2]; c[B >> 2] = 0; c[C >> 2] = 0; c[z >> 2] = 0; c[A >> 2] = 0; c[z >> 2] = (c[z >> 2] | 0) + (((c[q >> 2] | 0) - 5) << c[A >> 2]); c[A >> 2] = (c[A >> 2] | 0) + 4; c[x >> 2] = (c[w >> 2] | 0) + 1; c[y >> 2] = c[w >> 2]; c[v >> 2] = (c[q >> 2] | 0) + 1; a: while (1) { if ((c[x >> 2] | 0) <= 1) { G = 34; break; } if (c[C >> 2] | 0) { c[D >> 2] = c[B >> 2]; while (1) { if ( !( ((b[((c[o >> 2] | 0) + (c[B >> 2] << 1)) >> 1] | 0) != 0) ^ 1 ) ) break; c[B >> 2] = (c[B >> 2] | 0) + 1; } while (1) { if ( (c[B >> 2] | 0) >>> 0 < (((c[D >> 2] | 0) + 24) | 0) >>> 0 ) break; c[D >> 2] = (c[D >> 2] | 0) + 24; c[z >> 2] = (c[z >> 2] | 0) + (65535 << c[A >> 2]); if ( (c[r >> 2] | 0) == 0 ? (c[t >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) + -2) | 0) >>> 0 : 0 ) { G = 11; break a; } a[c[t >> 2] >> 0] = c[z >> 2]; a[((c[t >> 2] | 0) + 1) >> 0] = (c[z >> 2] | 0) >>> 8; c[t >> 2] = (c[t >> 2] | 0) + 2; c[z >> 2] = (c[z >> 2] | 0) >>> 16; } while (1) { if ( (c[B >> 2] | 0) >>> 0 < (((c[D >> 2] | 0) + 3) | 0) >>> 0 ) break; c[D >> 2] = (c[D >> 2] | 0) + 3; c[z >> 2] = (c[z >> 2] | 0) + (3 << c[A >> 2]); c[A >> 2] = (c[A >> 2] | 0) + 2; } c[z >> 2] = (c[z >> 2] | 0) + (((c[B >> 2] | 0) - (c[D >> 2] | 0)) << c[A >> 2]); c[A >> 2] = (c[A >> 2] | 0) + 2; if ((c[A >> 2] | 0) > 16) { if ( (c[r >> 2] | 0) == 0 ? (c[t >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) + -2) | 0) >>> 0 : 0 ) { G = 19; break; } a[c[t >> 2] >> 0] = c[z >> 2]; a[((c[t >> 2] | 0) + 1) >> 0] = (c[z >> 2] | 0) >>> 8; c[t >> 2] = (c[t >> 2] | 0) + 2; c[z >> 2] = (c[z >> 2] | 0) >>> 16; c[A >> 2] = (c[A >> 2] | 0) - 16; } } q = c[o >> 2] | 0; w = c[B >> 2] | 0; c[B >> 2] = w + 1; c[E >> 2] = b[(q + (w << 1)) >> 1]; c[F >> 2] = (c[y >> 2] << 1) - 1 - (c[x >> 2] | 0); w = c[E >> 2] | 0; c[x >> 2] = (c[x >> 2] | 0) - ((c[E >> 2] | 0) < 0 ? (0 - w) | 0 : w); c[E >> 2] = (c[E >> 2] | 0) + 1; if ((c[E >> 2] | 0) >= (c[y >> 2] | 0)) c[E >> 2] = (c[E >> 2] | 0) + (c[F >> 2] | 0); c[z >> 2] = (c[z >> 2] | 0) + (c[E >> 2] << c[A >> 2]); c[A >> 2] = (c[A >> 2] | 0) + (c[v >> 2] | 0); c[A >> 2] = (c[A >> 2] | 0) - (((c[E >> 2] | 0) < (c[F >> 2] | 0)) & 1); c[C >> 2] = ((c[E >> 2] | 0) == 1) & 1; if ((c[x >> 2] | 0) < 1) { G = 24; break; } while (1) { if ((c[x >> 2] | 0) >= (c[y >> 2] | 0)) break; c[v >> 2] = (c[v >> 2] | 0) + -1; c[y >> 2] = c[y >> 2] >> 1; } if ((c[A >> 2] | 0) > 16) { if ( (c[r >> 2] | 0) == 0 ? (c[t >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) + -2) | 0) >>> 0 : 0 ) { G = 31; break; } a[c[t >> 2] >> 0] = c[z >> 2]; a[((c[t >> 2] | 0) + 1) >> 0] = (c[z >> 2] | 0) >>> 8; c[t >> 2] = (c[t >> 2] | 0) + 2; c[z >> 2] = (c[z >> 2] | 0) >>> 16; c[A >> 2] = (c[A >> 2] | 0) - 16; } } if ((G | 0) == 11) { c[k >> 2] = -70; H = c[k >> 2] | 0; l = j; return H | 0; } else if ((G | 0) == 19) { c[k >> 2] = -70; H = c[k >> 2] | 0; l = j; return H | 0; } else if ((G | 0) == 24) { c[k >> 2] = -1; H = c[k >> 2] | 0; l = j; return H | 0; } else if ((G | 0) == 31) { c[k >> 2] = -70; H = c[k >> 2] | 0; l = j; return H | 0; } else if ((G | 0) == 34) { if ( (c[r >> 2] | 0) == 0 ? (c[t >> 2] | 0) >>> 0 > (((c[u >> 2] | 0) + -2) | 0) >>> 0 : 0 ) { c[k >> 2] = -70; H = c[k >> 2] | 0; l = j; return H | 0; } a[c[t >> 2] >> 0] = c[z >> 2]; a[((c[t >> 2] | 0) + 1) >> 0] = (c[z >> 2] | 0) >>> 8; c[t >> 2] = (c[t >> 2] | 0) + (((((c[A >> 2] | 0) + 7) | 0) / 8) | 0); if ( (c[B >> 2] | 0) >>> 0 > (((c[p >> 2] | 0) + 1) | 0) >>> 0 ) { c[k >> 2] = -1; H = c[k >> 2] | 0; l = j; return H | 0; } else { c[k >> 2] = (c[t >> 2] | 0) - (c[s >> 2] | 0); H = c[k >> 2] | 0; l = j; return H | 0; } } return 0; } function Zh(a, b, e, f) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; g = l; l = (l + 48) | 0; h = (g + 36) | 0; i = (g + 32) | 0; j = (g + 28) | 0; k = (g + 24) | 0; m = (g + 20) | 0; n = (g + 16) | 0; o = (g + 12) | 0; p = (g + 8) | 0; q = (g + 4) | 0; r = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = c[k >> 2]; c[o >> 2] = (c[n >> 2] | 0) + (c[m >> 2] | 0); c[p >> 2] = c[c[j >> 2] >> 2]; c[q >> 2] = 0; oE(c[i >> 2] | 0, 0, (((c[p >> 2] | 0) + 1) << 2) | 0) | 0; if (!(c[m >> 2] | 0)) { c[c[j >> 2] >> 2] = 0; c[h >> 2] = 0; s = c[h >> 2] | 0; l = g; return s | 0; } while (1) { if ((c[n >> 2] | 0) >>> 0 >= (c[o >> 2] | 0) >>> 0) break; m = c[i >> 2] | 0; k = c[n >> 2] | 0; c[n >> 2] = k + 1; f = (m + ((d[k >> 0] | 0) << 2)) | 0; c[f >> 2] = (c[f >> 2] | 0) + 1; } while (1) { t = c[p >> 2] | 0; if ( !( ((c[((c[i >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0) != 0) ^ 1 ) ) break; c[p >> 2] = t + -1; } c[c[j >> 2] >> 2] = t; c[r >> 2] = 0; while (1) { if ((c[r >> 2] | 0) >>> 0 > (c[p >> 2] | 0) >>> 0) break; if ( (c[((c[i >> 2] | 0) + (c[r >> 2] << 2)) >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0 ) c[q >> 2] = c[((c[i >> 2] | 0) + (c[r >> 2] << 2)) >> 2]; c[r >> 2] = (c[r >> 2] | 0) + 1; } c[h >> 2] = c[q >> 2]; s = c[h >> 2] | 0; l = g; return s | 0; } function _h(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; f = c[i >> 2] | 0; i = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; if ((c[m >> 2] | 0) >>> 0 < 1500) { c[h >> 2] = Zh(f, i, j, k) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } else { c[h >> 2] = $h(f, i, j, k, 0, c[n >> 2] | 0) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } return 0; } function $h(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0; i = l; l = (l + 80) | 0; j = (i + 72) | 0; k = (i + 68) | 0; m = (i + 64) | 0; n = (i + 60) | 0; o = (i + 56) | 0; p = (i + 52) | 0; q = (i + 48) | 0; r = (i + 44) | 0; s = (i + 40) | 0; t = (i + 36) | 0; u = (i + 32) | 0; v = (i + 28) | 0; w = (i + 24) | 0; x = (i + 20) | 0; y = (i + 16) | 0; z = (i + 12) | 0; A = (i + 8) | 0; B = (i + 4) | 0; C = i; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; c[r >> 2] = c[n >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[o >> 2] | 0); c[t >> 2] = c[c[m >> 2] >> 2]; c[u >> 2] = 0; c[v >> 2] = c[q >> 2]; c[w >> 2] = (c[v >> 2] | 0) + 1024; c[x >> 2] = (c[w >> 2] | 0) + 1024; c[y >> 2] = (c[x >> 2] | 0) + 1024; oE(c[q >> 2] | 0, 0, 4096) | 0; if (!(c[o >> 2] | 0)) { oE(c[k >> 2] | 0, 0, ((c[t >> 2] | 0) + 1) | 0) | 0; c[c[m >> 2] >> 2] = 0; c[j >> 2] = 0; D = c[j >> 2] | 0; l = i; return D | 0; } if (!(c[t >> 2] | 0)) c[t >> 2] = 255; c[z >> 2] = ai(c[r >> 2] | 0) | 0; c[r >> 2] = (c[r >> 2] | 0) + 4; while (1) { if ( (c[r >> 2] | 0) >>> 0 >= (((c[s >> 2] | 0) + -15) | 0) >>> 0 ) break; c[A >> 2] = c[z >> 2]; c[z >> 2] = ai(c[r >> 2] | 0) | 0; c[r >> 2] = (c[r >> 2] | 0) + 4; o = ((c[v >> 2] | 0) + ((c[A >> 2] & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[w >> 2] | 0) + ((((c[A >> 2] | 0) >>> 8) & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[x >> 2] | 0) + ((((c[A >> 2] | 0) >>> 16) & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[y >> 2] | 0) + (((c[A >> 2] | 0) >>> 24) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; c[A >> 2] = c[z >> 2]; c[z >> 2] = ai(c[r >> 2] | 0) | 0; c[r >> 2] = (c[r >> 2] | 0) + 4; o = ((c[v >> 2] | 0) + ((c[A >> 2] & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[w >> 2] | 0) + ((((c[A >> 2] | 0) >>> 8) & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[x >> 2] | 0) + ((((c[A >> 2] | 0) >>> 16) & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[y >> 2] | 0) + (((c[A >> 2] | 0) >>> 24) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; c[A >> 2] = c[z >> 2]; c[z >> 2] = ai(c[r >> 2] | 0) | 0; c[r >> 2] = (c[r >> 2] | 0) + 4; o = ((c[v >> 2] | 0) + ((c[A >> 2] & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[w >> 2] | 0) + ((((c[A >> 2] | 0) >>> 8) & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[x >> 2] | 0) + ((((c[A >> 2] | 0) >>> 16) & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[y >> 2] | 0) + (((c[A >> 2] | 0) >>> 24) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; c[A >> 2] = c[z >> 2]; c[z >> 2] = ai(c[r >> 2] | 0) | 0; c[r >> 2] = (c[r >> 2] | 0) + 4; o = ((c[v >> 2] | 0) + ((c[A >> 2] & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[w >> 2] | 0) + ((((c[A >> 2] | 0) >>> 8) & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[x >> 2] | 0) + ((((c[A >> 2] | 0) >>> 16) & 255) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; o = ((c[y >> 2] | 0) + (((c[A >> 2] | 0) >>> 24) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; } c[r >> 2] = (c[r >> 2] | 0) + -4; while (1) { if ((c[r >> 2] | 0) >>> 0 >= (c[s >> 2] | 0) >>> 0) break; A = c[v >> 2] | 0; z = c[r >> 2] | 0; c[r >> 2] = z + 1; o = (A + ((d[z >> 0] | 0) << 2)) | 0; c[o >> 2] = (c[o >> 2] | 0) + 1; } a: do { if (c[p >> 2] | 0) { c[B >> 2] = 255; while (1) { if ((c[B >> 2] | 0) >>> 0 <= (c[t >> 2] | 0) >>> 0) break a; r = ((c[v >> 2] | 0) + (c[B >> 2] << 2)) | 0; c[r >> 2] = (c[r >> 2] | 0) + ((c[((c[w >> 2] | 0) + (c[B >> 2] << 2)) >> 2] | 0) + (c[((c[x >> 2] | 0) + (c[B >> 2] << 2)) >> 2] | 0) + (c[((c[y >> 2] | 0) + (c[B >> 2] << 2)) >> 2] | 0)); if (c[((c[v >> 2] | 0) + (c[B >> 2] << 2)) >> 2] | 0) break; c[B >> 2] = (c[B >> 2] | 0) + -1; } c[j >> 2] = -48; D = c[j >> 2] | 0; l = i; return D | 0; } } while (0); if ((c[t >> 2] | 0) >>> 0 > 255) c[t >> 2] = 255; c[C >> 2] = 0; while (1) { if ((c[C >> 2] | 0) >>> 0 > (c[t >> 2] | 0) >>> 0) break; c[((c[k >> 2] | 0) + (c[C >> 2] << 2)) >> 2] = (c[((c[v >> 2] | 0) + (c[C >> 2] << 2)) >> 2] | 0) + (c[((c[w >> 2] | 0) + (c[C >> 2] << 2)) >> 2] | 0) + (c[((c[x >> 2] | 0) + (c[C >> 2] << 2)) >> 2] | 0) + (c[((c[y >> 2] | 0) + (c[C >> 2] << 2)) >> 2] | 0); if ( (c[((c[k >> 2] | 0) + (c[C >> 2] << 2)) >> 2] | 0) >>> 0 > (c[u >> 2] | 0) >>> 0 ) c[u >> 2] = c[((c[k >> 2] | 0) + (c[C >> 2] << 2)) >> 2]; c[C >> 2] = (c[C >> 2] | 0) + 1; } while (1) { E = c[t >> 2] | 0; if ( !( ((c[((c[k >> 2] | 0) + (c[t >> 2] << 2)) >> 2] | 0) != 0) ^ 1 ) ) break; c[t >> 2] = E + -1; } c[c[m >> 2] >> 2] = E; c[j >> 2] = c[u >> 2]; D = c[j >> 2] | 0; l = i; return D | 0; } function ai(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function bi(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ((c[c[j >> 2] >> 2] | 0) >>> 0 < 255) { c[h >> 2] = $h( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, 1, c[n >> 2] | 0 ) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } else { c[c[j >> 2] >> 2] = 255; c[h >> 2] = _h( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } return 0; } function ci(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 24) | 0; h = (f + 20) | 0; i = (f + 16) | 0; j = (f + 12) | 0; k = (f + 8) | 0; m = (f + 4) | 0; n = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; e = Vh(((c[h >> 2] | 0) - 1) | 0) | 0; c[k >> 2] = e - (c[j >> 2] | 0); c[m >> 2] = c[g >> 2]; c[n >> 2] = di(c[h >> 2] | 0, c[i >> 2] | 0) | 0; if (!(c[m >> 2] | 0)) c[m >> 2] = 11; if ((c[k >> 2] | 0) >>> 0 < (c[m >> 2] | 0) >>> 0) c[m >> 2] = c[k >> 2]; if ((c[n >> 2] | 0) >>> 0 > (c[m >> 2] | 0) >>> 0) c[m >> 2] = c[n >> 2]; if ((c[m >> 2] | 0) >>> 0 < 5) c[m >> 2] = 5; if ((c[m >> 2] | 0) >>> 0 <= 12) { o = c[m >> 2] | 0; l = f; return o | 0; } c[m >> 2] = 12; o = c[m >> 2] | 0; l = f; return o | 0; } function di(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; d = l; l = (l + 32) | 0; e = (d + 16) | 0; f = (d + 12) | 0; g = (d + 8) | 0; h = (d + 4) | 0; i = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = (Vh(((c[e >> 2] | 0) - 1) | 0) | 0) + 1; c[h >> 2] = (Vh(c[f >> 2] | 0) | 0) + 2; c[i >> 2] = (c[g >> 2] | 0) >>> 0 < (c[h >> 2] | 0) >>> 0 ? c[g >> 2] | 0 : c[h >> 2] | 0; l = d; return c[i >> 2] | 0; } function ei(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = ci(c[f >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0, 2) | 0; l = e; return d | 0; } function fi(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0; h = l; l = (l + 80) | 0; i = (h + 72) | 0; j = (h + 68) | 0; k = (h + 64) | 0; m = (h + 60) | 0; n = (h + 56) | 0; o = (h + 52) | 0; p = (h + 24) | 0; q = (h + 16) | 0; r = (h + 8) | 0; s = (h + 48) | 0; t = (h + 44) | 0; u = (h + 40) | 0; v = (h + 78) | 0; w = (h + 36) | 0; x = (h + 76) | 0; z = h; A = (h + 32) | 0; c[j >> 2] = a; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; if (!(c[k >> 2] | 0)) c[k >> 2] = 11; if ((c[k >> 2] | 0) >>> 0 < 5) { c[i >> 2] = -1; B = c[i >> 2] | 0; l = h; return B | 0; } if ((c[k >> 2] | 0) >>> 0 > 12) { c[i >> 2] = -44; B = c[i >> 2] | 0; l = h; return B | 0; } g = c[k >> 2] | 0; if (g >>> 0 < (di(c[n >> 2] | 0, c[o >> 2] | 0) | 0) >>> 0) { c[i >> 2] = -1; B = c[i >> 2] | 0; l = h; return B | 0; } g = p; c[g >> 2] = 62 - (c[k >> 2] | 0); c[(g + 4) >> 2] = 0; g = hE(0, 1073741824, c[n >> 2] | 0, 0) | 0; f = q; c[f >> 2] = g; c[(f + 4) >> 2] = y; f = p; g = eE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 20, 0) | 0; f = jE(1, 0, g | 0) | 0; g = r; c[g >> 2] = f; c[(g + 4) >> 2] = y; c[s >> 2] = 1 << c[k >> 2]; c[u >> 2] = 0; b[v >> 1] = 0; c[w >> 2] = (c[n >> 2] | 0) >>> (c[k >> 2] | 0); c[t >> 2] = 0; while (1) { if ((c[t >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) break; if ( (c[((c[m >> 2] | 0) + (c[t >> 2] << 2)) >> 2] | 0) == (c[n >> 2] | 0) ) { C = 12; break; } do { if (!(c[((c[m >> 2] | 0) + (c[t >> 2] << 2)) >> 2] | 0)) b[((c[j >> 2] | 0) + (c[t >> 2] << 1)) >> 1] = 0; else { if ( (c[((c[m >> 2] | 0) + (c[t >> 2] << 2)) >> 2] | 0) >>> 0 <= (c[w >> 2] | 0) >>> 0 ) { b[((c[j >> 2] | 0) + (c[t >> 2] << 1)) >> 1] = -1; c[s >> 2] = (c[s >> 2] | 0) + -1; break; } g = q; f = cE( c[((c[m >> 2] | 0) + (c[t >> 2] << 2)) >> 2] | 0, 0, c[g >> 2] | 0, c[(g + 4) >> 2] | 0 ) | 0; g = iE(f | 0, y | 0, c[p >> 2] | 0) | 0; b[x >> 1] = g; if ((b[x >> 1] | 0) < 8) { g = r; f = cE( c[g >> 2] | 0, c[(g + 4) >> 2] | 0, c[(192 + (b[x >> 1] << 2)) >> 2] | 0, 0 ) | 0; g = z; c[g >> 2] = f; c[(g + 4) >> 2] = y; g = q; f = cE( c[((c[m >> 2] | 0) + (c[t >> 2] << 2)) >> 2] | 0, 0, c[g >> 2] | 0, c[(g + 4) >> 2] | 0 ) | 0; g = y; e = b[x >> 1] | 0; d = jE( e | 0, ((((e | 0) < 0) << 31) >> 31) | 0, c[p >> 2] | 0 ) | 0; e = eE(f | 0, g | 0, d | 0, y | 0) | 0; d = y; g = z; f = c[(g + 4) >> 2] | 0; b[x >> 1] = (b[x >> 1] | 0) + (((d >>> 0 > f >>> 0) | ((d | 0) == (f | 0) ? e >>> 0 > (c[g >> 2] | 0) >>> 0 : 0)) & 1); } if ((b[x >> 1] | 0) > (b[v >> 1] | 0)) { b[v >> 1] = b[x >> 1] | 0; c[u >> 2] = c[t >> 2]; } b[((c[j >> 2] | 0) + (c[t >> 2] << 1)) >> 1] = b[x >> 1] | 0; c[s >> 2] = (c[s >> 2] | 0) - (b[x >> 1] | 0); } } while (0); c[t >> 2] = (c[t >> 2] | 0) + 1; } if ((C | 0) == 12) { c[i >> 2] = 0; B = c[i >> 2] | 0; l = h; return B | 0; } if ( ((0 - (c[s >> 2] | 0)) | 0) >= ((b[((c[j >> 2] | 0) + (c[u >> 2] << 1)) >> 1] >> 1) | 0) ) { c[A >> 2] = gi( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; if (hi(c[A >> 2] | 0) | 0) { c[i >> 2] = c[A >> 2]; B = c[i >> 2] | 0; l = h; return B | 0; } } else { A = ((c[j >> 2] | 0) + (c[u >> 2] << 1)) | 0; b[A >> 1] = (b[A >> 1] | 0) + (((c[s >> 2] & 65535) << 16) >> 16); } c[i >> 2] = c[k >> 2]; B = c[i >> 2] | 0; l = h; return B | 0; } function gi(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0; h = l; l = (l + 112) | 0; i = (h + 100) | 0; j = (h + 96) | 0; k = (h + 92) | 0; m = (h + 88) | 0; n = (h + 84) | 0; o = (h + 80) | 0; p = (h + 76) | 0; q = (h + 72) | 0; r = (h + 68) | 0; s = (h + 64) | 0; t = (h + 60) | 0; u = (h + 56) | 0; v = (h + 52) | 0; w = (h + 32) | 0; x = (h + 24) | 0; z = (h + 16) | 0; A = (h + 8) | 0; B = h; C = (h + 48) | 0; D = (h + 44) | 0; E = (h + 40) | 0; c[j >> 2] = a; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; b[(h + 104) >> 1] = -2; c[q >> 2] = 0; c[s >> 2] = (c[n >> 2] | 0) >>> (c[k >> 2] | 0); c[t >> 2] = (((c[n >> 2] | 0) * 3) | 0) >>> (((c[k >> 2] | 0) + 1) | 0); c[p >> 2] = 0; while (1) { if ((c[p >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) break; do { if (c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0) { if ( (c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0) >>> 0 <= (c[s >> 2] | 0) >>> 0 ) { b[((c[j >> 2] | 0) + (c[p >> 2] << 1)) >> 1] = -1; c[q >> 2] = (c[q >> 2] | 0) + 1; c[n >> 2] = (c[n >> 2] | 0) - (c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0); break; } g = ((c[j >> 2] | 0) + (c[p >> 2] << 1)) | 0; if ( (c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0) >>> 0 <= (c[t >> 2] | 0) >>> 0 ) { b[g >> 1] = 1; c[q >> 2] = (c[q >> 2] | 0) + 1; c[n >> 2] = (c[n >> 2] | 0) - (c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0); break; } else { b[g >> 1] = -2; break; } } else b[((c[j >> 2] | 0) + (c[p >> 2] << 1)) >> 1] = 0; } while (0); c[p >> 2] = (c[p >> 2] | 0) + 1; } c[r >> 2] = (1 << c[k >> 2]) - (c[q >> 2] | 0); if ( ((((c[n >> 2] | 0) >>> 0) / ((c[r >> 2] | 0) >>> 0)) | 0) >>> 0 > (c[t >> 2] | 0) >>> 0 ) { c[t >> 2] = (((((c[n >> 2] | 0) * 3) | 0) >>> 0) / ((c[r >> 2] << 1) >>> 0)) | 0; c[p >> 2] = 0; while (1) { if ((c[p >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) break; if ( (b[((c[j >> 2] | 0) + (c[p >> 2] << 1)) >> 1] | 0) == -2 ? (c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0) >>> 0 <= (c[t >> 2] | 0) >>> 0 : 0 ) { b[((c[j >> 2] | 0) + (c[p >> 2] << 1)) >> 1] = 1; c[q >> 2] = (c[q >> 2] | 0) + 1; c[n >> 2] = (c[n >> 2] | 0) - (c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0); } c[p >> 2] = (c[p >> 2] | 0) + 1; } c[r >> 2] = (1 << c[k >> 2]) - (c[q >> 2] | 0); } if ((c[q >> 2] | 0) == (((c[o >> 2] | 0) + 1) | 0)) { c[u >> 2] = 0; c[v >> 2] = 0; c[p >> 2] = 0; while (1) { if ((c[p >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) break; if ( (c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0) >>> 0 > (c[v >> 2] | 0) >>> 0 ) { c[u >> 2] = c[p >> 2]; c[v >> 2] = c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2]; } c[p >> 2] = (c[p >> 2] | 0) + 1; } v = ((c[j >> 2] | 0) + (c[u >> 2] << 1)) | 0; b[v >> 1] = (b[v >> 1] | 0) + (((c[r >> 2] & 65535) << 16) >> 16); c[i >> 2] = 0; F = c[i >> 2] | 0; l = h; return F | 0; } if (!(c[n >> 2] | 0)) { c[p >> 2] = 0; while (1) { if ((c[r >> 2] | 0) >>> 0 <= 0) break; if ( (b[((c[j >> 2] | 0) + (c[p >> 2] << 1)) >> 1] | 0) > 0 ) { c[r >> 2] = (c[r >> 2] | 0) + -1; v = ((c[j >> 2] | 0) + (c[p >> 2] << 1)) | 0; b[v >> 1] = (((b[v >> 1] | 0) + 1) << 16) >> 16; } c[p >> 2] = ((((c[p >> 2] | 0) + 1) | 0) >>> 0) % ((((c[o >> 2] | 0) + 1) | 0) >>> 0) | 0; } c[i >> 2] = 0; F = c[i >> 2] | 0; l = h; return F | 0; } v = w; c[v >> 2] = 62 - (c[k >> 2] | 0); c[(v + 4) >> 2] = 0; v = w; k = eE(c[v >> 2] | 0, c[(v + 4) >> 2] | 0, 1, 0) | 0; v = jE(1, 0, k | 0) | 0; k = eE(v | 0, y | 0, 1, 0) | 0; v = x; c[v >> 2] = k; c[(v + 4) >> 2] = y; v = jE(1, 0, c[w >> 2] | 0) | 0; k = cE(v | 0, y | 0, c[r >> 2] | 0, 0) | 0; r = x; v = dE(k | 0, y | 0, c[r >> 2] | 0, c[(r + 4) >> 2] | 0) | 0; r = hE(v | 0, y | 0, c[n >> 2] | 0, 0) | 0; n = z; c[n >> 2] = r; c[(n + 4) >> 2] = y; n = x; x = c[(n + 4) >> 2] | 0; r = A; c[r >> 2] = c[n >> 2]; c[(r + 4) >> 2] = x; c[p >> 2] = 0; while (1) { if ((c[p >> 2] | 0) >>> 0 > (c[o >> 2] | 0) >>> 0) { G = 40; break; } if ( (b[((c[j >> 2] | 0) + (c[p >> 2] << 1)) >> 1] | 0) == -2 ) { x = A; r = c[x >> 2] | 0; n = c[(x + 4) >> 2] | 0; x = z; v = cE( c[((c[m >> 2] | 0) + (c[p >> 2] << 2)) >> 2] | 0, 0, c[x >> 2] | 0, c[(x + 4) >> 2] | 0 ) | 0; x = dE(r | 0, n | 0, v | 0, y | 0) | 0; v = B; c[v >> 2] = x; c[(v + 4) >> 2] = y; v = A; x = iE(c[v >> 2] | 0, c[(v + 4) >> 2] | 0, c[w >> 2] | 0) | 0; c[C >> 2] = x; x = B; v = iE(c[x >> 2] | 0, c[(x + 4) >> 2] | 0, c[w >> 2] | 0) | 0; c[D >> 2] = v; c[E >> 2] = (c[D >> 2] | 0) - (c[C >> 2] | 0); if ((c[E >> 2] | 0) >>> 0 < 1) { G = 37; break; } b[((c[j >> 2] | 0) + (c[p >> 2] << 1)) >> 1] = c[E >> 2]; v = B; x = c[(v + 4) >> 2] | 0; n = A; c[n >> 2] = c[v >> 2]; c[(n + 4) >> 2] = x; } c[p >> 2] = (c[p >> 2] | 0) + 1; } if ((G | 0) == 37) { c[i >> 2] = -1; F = c[i >> 2] | 0; l = h; return F | 0; } else if ((G | 0) == 40) { c[i >> 2] = 0; F = c[i >> 2] | 0; l = h; return F | 0; } return 0; } function hi(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function ii(e, f) { e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; g = l; l = (l + 32) | 0; h = (g + 16) | 0; i = (g + 20) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[h >> 2] = e; a[i >> 0] = f; c[j >> 2] = c[h >> 2]; c[k >> 2] = (c[j >> 2] | 0) + 4; c[m >> 2] = (c[j >> 2] | 0) + 8; c[n >> 2] = c[m >> 2]; b[((c[k >> 2] | 0) + -4) >> 1] = 0; b[((c[k >> 2] | 0) + -2) >> 1] = d[i >> 0] | 0; b[c[k >> 2] >> 1] = 0; b[((c[k >> 2] | 0) + 2) >> 1] = 0; c[((c[n >> 2] | 0) + ((d[i >> 0] | 0) << 3) + 4) >> 2] = 0; c[((c[n >> 2] | 0) + ((d[i >> 0] | 0) << 3)) >> 2] = 0; l = g; return 0; } function ji(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 32) | 0; h = (g + 24) | 0; i = (g + 20) | 0; j = (g + 16) | 0; k = (g + 12) | 0; m = (g + 8) | 0; n = (g + 4) | 0; o = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = ((c[j >> 2] | 0) >>> 0 >= (((c[m >> 2] | 0) + ((c[m >> 2] | 0) >>> 7)) | 0) >>> 0) & 1; f = c[i >> 2] | 0; i = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; if (c[o >> 2] | 0) { c[h >> 2] = ki(f, i, j, k, m, 1) | 0; p = c[h >> 2] | 0; l = g; return p | 0; } else { c[h >> 2] = ki(f, i, j, k, m, 0) | 0; p = c[h >> 2] | 0; l = g; return p | 0; } return 0; } function ki(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; i = l; l = (l + 112) | 0; j = (i + 96) | 0; k = (i + 92) | 0; m = (i + 88) | 0; n = (i + 84) | 0; o = (i + 80) | 0; p = (i + 76) | 0; q = (i + 72) | 0; r = (i + 68) | 0; s = (i + 64) | 0; t = (i + 60) | 0; u = (i + 40) | 0; v = (i + 24) | 0; w = (i + 8) | 0; x = i; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; c[r >> 2] = c[n >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[o >> 2] | 0); c[t >> 2] = c[s >> 2]; if ((c[o >> 2] | 0) >>> 0 <= 2) { c[j >> 2] = 0; y = c[j >> 2] | 0; l = i; return y | 0; } c[x >> 2] = li(u, c[k >> 2] | 0, c[m >> 2] | 0) | 0; if (hi(c[x >> 2] | 0) | 0) { c[j >> 2] = 0; y = c[j >> 2] | 0; l = i; return y | 0; } x = ((c[o >> 2] & 1) | 0) != 0; m = c[p >> 2] | 0; k = ((c[t >> 2] | 0) + -1) | 0; c[t >> 2] = k; s = d[k >> 0] | 0; do { if (x) { mi(v, m, s); k = c[p >> 2] | 0; n = ((c[t >> 2] | 0) + -1) | 0; c[t >> 2] = n; mi(w, k, d[n >> 0] | 0); n = ((c[t >> 2] | 0) + -1) | 0; c[t >> 2] = n; ni(u, v, d[n >> 0] | 0); if (c[q >> 2] | 0) { oi(u); break; } else { pi(u); break; } } else { mi(w, m, s); n = c[p >> 2] | 0; k = ((c[t >> 2] | 0) + -1) | 0; c[t >> 2] = k; mi(v, n, d[k >> 0] | 0); } } while (0); c[o >> 2] = (c[o >> 2] | 0) - 2; while (1) { if ((c[t >> 2] | 0) >>> 0 <= (c[r >> 2] | 0) >>> 0) break; o = ((c[t >> 2] | 0) + -1) | 0; c[t >> 2] = o; ni(u, w, d[o >> 0] | 0); o = ((c[t >> 2] | 0) + -1) | 0; c[t >> 2] = o; ni(u, v, d[o >> 0] | 0); if (c[q >> 2] | 0) oi(u); else pi(u); } qi(u, w); qi(u, v); c[j >> 2] = ri(u) | 0; y = c[j >> 2] | 0; l = i; return y | 0; } function li(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[c[g >> 2] >> 2] = 0; c[((c[g >> 2] | 0) + 4) >> 2] = 0; c[((c[g >> 2] | 0) + 8) >> 2] = c[h >> 2]; c[((c[g >> 2] | 0) + 12) >> 2] = c[((c[g >> 2] | 0) + 8) >> 2]; c[((c[g >> 2] | 0) + 16) >> 2] = (c[((c[g >> 2] | 0) + 8) >> 2] | 0) + (c[i >> 2] | 0) + -4; if ((c[i >> 2] | 0) >>> 0 <= 4) { c[f >> 2] = -70; j = c[f >> 2] | 0; l = e; return j | 0; } else { c[f >> 2] = 0; j = c[f >> 2] | 0; l = e; return j | 0; } return 0; } function mi(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 24) | 0; h = (f + 20) | 0; i = (f + 16) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; Di(c[g >> 2] | 0, c[h >> 2] | 0); h = ((c[((c[g >> 2] | 0) + 8) >> 2] | 0) + (c[i >> 2] << 3)) | 0; c[j >> 2] = c[h >> 2]; c[(j + 4) >> 2] = c[(h + 4) >> 2]; c[k >> 2] = c[((c[g >> 2] | 0) + 4) >> 2]; c[m >> 2] = (((c[(j + 4) >> 2] | 0) + 32768) | 0) >>> 16; c[c[g >> 2] >> 2] = (c[m >> 2] << 16) - (c[(j + 4) >> 2] | 0); c[c[g >> 2] >> 2] = e[ ((c[k >> 2] | 0) + (((c[c[g >> 2] >> 2] >> c[m >> 2]) + (c[j >> 2] | 0)) << 1)) >> 1 ]; l = f; return; } function ni(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 24) | 0; h = (f + 20) | 0; i = (f + 16) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; d = ((c[((c[h >> 2] | 0) + 8) >> 2] | 0) + (c[i >> 2] << 3)) | 0; c[j >> 2] = c[d >> 2]; c[(j + 4) >> 2] = c[(d + 4) >> 2]; c[k >> 2] = c[((c[h >> 2] | 0) + 4) >> 2]; c[m >> 2] = (((c[c[h >> 2] >> 2] | 0) + (c[(j + 4) >> 2] | 0)) | 0) >>> 16; ti(c[g >> 2] | 0, c[c[h >> 2] >> 2] | 0, c[m >> 2] | 0); c[c[h >> 2] >> 2] = e[ ((c[k >> 2] | 0) + (((c[c[h >> 2] >> 2] >> c[m >> 2]) + (c[j >> 2] | 0)) << 1)) >> 1 ]; l = f; return; } function oi(a) { a = a | 0; var b = 0, d = 0, e = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[d >> 2] = a; c[e >> 2] = (c[((c[d >> 2] | 0) + 4) >> 2] | 0) >>> 3; ui(c[((c[d >> 2] | 0) + 12) >> 2] | 0, c[c[d >> 2] >> 2] | 0); a = ((c[d >> 2] | 0) + 12) | 0; c[a >> 2] = (c[a >> 2] | 0) + (c[e >> 2] | 0); a = ((c[d >> 2] | 0) + 4) | 0; c[a >> 2] = c[a >> 2] & 7; a = c[d >> 2] | 0; c[a >> 2] = (c[a >> 2] | 0) >>> (c[e >> 2] << 3); l = b; return; } function pi(a) { a = a | 0; var b = 0, d = 0, e = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[d >> 2] = a; c[e >> 2] = (c[((c[d >> 2] | 0) + 4) >> 2] | 0) >>> 3; ui(c[((c[d >> 2] | 0) + 12) >> 2] | 0, c[c[d >> 2] >> 2] | 0); a = ((c[d >> 2] | 0) + 12) | 0; c[a >> 2] = (c[a >> 2] | 0) + (c[e >> 2] | 0); if ( (c[((c[d >> 2] | 0) + 12) >> 2] | 0) >>> 0 > (c[((c[d >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) c[((c[d >> 2] | 0) + 12) >> 2] = c[((c[d >> 2] | 0) + 16) >> 2]; a = ((c[d >> 2] | 0) + 4) | 0; c[a >> 2] = c[a >> 2] & 7; a = c[d >> 2] | 0; c[a >> 2] = (c[a >> 2] | 0) >>> (c[e >> 2] << 3); l = b; return; } function qi(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; ti( c[e >> 2] | 0, c[c[f >> 2] >> 2] | 0, c[((c[f >> 2] | 0) + 12) >> 2] | 0 ); pi(c[e >> 2] | 0); l = d; return; } function ri(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; si(c[e >> 2] | 0, 1, 1); pi(c[e >> 2] | 0); if ( (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 >= (c[((c[e >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) { c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } else { c[d >> 2] = (c[((c[e >> 2] | 0) + 12) >> 2] | 0) - (c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 0) & 1); f = c[d >> 2] | 0; l = b; return f | 0; } return 0; } function si(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = c[f >> 2] | 0; c[d >> 2] = c[d >> 2] | (c[g >> 2] << c[((c[f >> 2] | 0) + 4) >> 2]); g = ((c[f >> 2] | 0) + 4) | 0; c[g >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return; } function ti(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = c[f >> 2] | 0; c[d >> 2] = c[d >> 2] | ((c[g >> 2] & c[(2800 + (c[h >> 2] << 2)) >> 2]) << c[((c[f >> 2] | 0) + 4) >> 2]); g = ((c[f >> 2] | 0) + 4) | 0; c[g >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return; } function ui(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = (vi() | 0) != 0; a = c[e >> 2] | 0; e = c[f >> 2] | 0; if (b) { wi(a, e); l = d; return; } else { xi(a, e, 0); l = d; return; } } function vi() { return 1; } function wi(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = (yi() | 0) != 0; a = c[e >> 2] | 0; e = c[f >> 2] | 0; if (b) { Bi(a, e); l = d; return; } else { Bi(a, Ci(e) | 0); l = d; return; } } function xi(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = e; c[f >> 2] = a; a = g; c[a >> 2] = b; c[(a + 4) >> 2] = d; d = (yi() | 0) != 0; a = c[f >> 2] | 0; f = g; g = c[f >> 2] | 0; b = c[(f + 4) >> 2] | 0; if (d) { zi(a, g, b); l = e; return; } else { d = Ai(g, b) | 0; zi(a, d, y); l = e; return; } } function yi() { return d[11936] | 0 | 0; } function zi(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = (f + 8) | 0; h = f; c[g >> 2] = b; b = h; c[b >> 2] = d; c[(b + 4) >> 2] = e; e = h; h = c[e >> 2] | 0; b = c[(e + 4) >> 2] | 0; e = c[g >> 2] | 0; g = e; a[g >> 0] = h; a[(g + 1) >> 0] = h >> 8; a[(g + 2) >> 0] = h >> 16; a[(g + 3) >> 0] = h >> 24; h = (e + 4) | 0; a[h >> 0] = b; a[(h + 1) >> 0] = b >> 8; a[(h + 2) >> 0] = b >> 16; a[(h + 3) >> 0] = b >> 24; l = f; return; } function Ai(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function Bi(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[g >> 2] | 0; g = c[f >> 2] | 0; a[g >> 0] = d; a[(g + 1) >> 0] = d >> 8; a[(g + 2) >> 0] = d >> 16; a[(g + 3) >> 0] = d >> 24; l = e; return; } function Ci(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function Di(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; d = l; l = (l + 32) | 0; e = (d + 16) | 0; f = (d + 12) | 0; g = (d + 8) | 0; h = (d + 4) | 0; i = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = c[f >> 2]; c[h >> 2] = c[g >> 2]; c[i >> 2] = (Ei(c[g >> 2] | 0) | 0) & 65535; c[c[e >> 2] >> 2] = 1 << c[i >> 2]; c[((c[e >> 2] | 0) + 4) >> 2] = (c[h >> 2] | 0) + 4; if (c[i >> 2] | 0) j = 1 << ((c[i >> 2] | 0) - 1); else j = 1; c[((c[e >> 2] | 0) + 8) >> 2] = (c[f >> 2] | 0) + 4 + (j << 2); c[((c[e >> 2] | 0) + 12) >> 2] = c[i >> 2]; l = d; return; } function Ei(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function Fi(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = ci(c[f >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0, 1) | 0; l = e; return d | 0; } function Gi(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0; f = l; l = (l + 464) | 0; g = (f + 452) | 0; h = (f + 448) | 0; i = (f + 444) | 0; j = (f + 440) | 0; k = (f + 436) | 0; m = (f + 432) | 0; n = (f + 428) | 0; o = (f + 424) | 0; p = (f + 420) | 0; q = (f + 416) | 0; r = (f + 160) | 0; s = (f + 32) | 0; t = f; u = (f + 412) | 0; v = (f + 408) | 0; w = (f + 404) | 0; x = (f + 400) | 0; y = (f + 396) | 0; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = c[h >> 2]; c[n >> 2] = c[m >> 2]; c[o >> 2] = (c[m >> 2] | 0) + (c[i >> 2] | 0); c[p >> 2] = 12; c[q >> 2] = 6; if ((c[k >> 2] | 0) >>> 0 <= 1) { c[g >> 2] = 0; z = c[g >> 2] | 0; l = f; return z | 0; } c[u >> 2] = Zh(s, p, c[j >> 2] | 0, c[k >> 2] | 0) | 0; i = (Hi(c[u >> 2] | 0) | 0) != 0; h = c[u >> 2] | 0; if (i) { c[g >> 2] = h; z = c[g >> 2] | 0; l = f; return z | 0; } if ((h | 0) == (c[k >> 2] | 0)) { c[g >> 2] = 1; z = c[g >> 2] | 0; l = f; return z | 0; } if ((c[u >> 2] | 0) == 1) { c[g >> 2] = 0; z = c[g >> 2] | 0; l = f; return z | 0; } c[q >> 2] = ei(c[q >> 2] | 0, c[k >> 2] | 0, c[p >> 2] | 0) | 0; c[v >> 2] = fi(t, c[q >> 2] | 0, s, c[k >> 2] | 0, c[p >> 2] | 0) | 0; if (Hi(c[v >> 2] | 0) | 0) { c[g >> 2] = c[v >> 2]; z = c[g >> 2] | 0; l = f; return z | 0; } c[w >> 2] = Xh( c[n >> 2] | 0, ((c[o >> 2] | 0) - (c[n >> 2] | 0)) | 0, t, c[p >> 2] | 0, c[q >> 2] | 0 ) | 0; v = (Hi(c[w >> 2] | 0) | 0) != 0; s = c[w >> 2] | 0; if (v) { c[g >> 2] = s; z = c[g >> 2] | 0; l = f; return z | 0; } c[n >> 2] = (c[n >> 2] | 0) + s; c[x >> 2] = Uh(r, t, c[p >> 2] | 0, c[q >> 2] | 0, (f + 96) | 0, 64) | 0; if (Hi(c[x >> 2] | 0) | 0) { c[g >> 2] = c[x >> 2]; z = c[g >> 2] | 0; l = f; return z | 0; } c[y >> 2] = ji( c[n >> 2] | 0, ((c[o >> 2] | 0) - (c[n >> 2] | 0)) | 0, c[j >> 2] | 0, c[k >> 2] | 0, r ) | 0; r = (Hi(c[y >> 2] | 0) | 0) != 0; k = c[y >> 2] | 0; if (r) { c[g >> 2] = k; z = c[g >> 2] | 0; l = f; return z | 0; } if (!k) { c[g >> 2] = 0; z = c[g >> 2] | 0; l = f; return z | 0; } else { c[n >> 2] = (c[n >> 2] | 0) + (c[y >> 2] | 0); c[g >> 2] = (c[n >> 2] | 0) - (c[m >> 2] | 0); z = c[g >> 2] | 0; l = f; return z | 0; } return 0; } function Hi(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function Ii(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0; i = l; l = (l + 320) | 0; j = (i + 288) | 0; k = (i + 284) | 0; m = (i + 280) | 0; n = (i + 276) | 0; o = (i + 272) | 0; p = (i + 268) | 0; q = (i + 292) | 0; r = i; s = (i + 264) | 0; t = (i + 260) | 0; u = (i + 256) | 0; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; c[s >> 2] = c[k >> 2]; if ((c[o >> 2] | 0) >>> 0 > 255) { c[j >> 2] = -46; v = c[j >> 2] | 0; l = i; return v | 0; } a[q >> 0] = 0; c[t >> 2] = 1; while (1) { if ( (c[t >> 2] | 0) >>> 0 >= (((c[p >> 2] | 0) + 1) | 0) >>> 0 ) break; a[(q + (c[t >> 2] | 0)) >> 0] = (c[p >> 2] | 0) + 1 - (c[t >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) + 1; } c[t >> 2] = 0; while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[o >> 2] | 0) >>> 0) break; a[(r + (c[t >> 2] | 0)) >> 0] = a[ (q + (d[((c[n >> 2] | 0) + (c[t >> 2] << 2) + 2) >> 0] | 0)) >> 0 ] | 0; c[t >> 2] = (c[t >> 2] | 0) + 1; } c[u >> 2] = Gi( ((c[s >> 2] | 0) + 1) | 0, ((c[m >> 2] | 0) - 1) | 0, r, c[o >> 2] | 0 ) | 0; n = (Hi(c[u >> 2] | 0) | 0) != 0; q = c[u >> 2] | 0; if (n) { c[j >> 2] = q; v = c[j >> 2] | 0; l = i; return v | 0; } if ( (q >>> 0 > 1 ? (c[u >> 2] | 0) >>> 0 < ((((c[o >> 2] | 0) >>> 0) / 2) | 0) >>> 0 : 0) | 0 ) { a[c[s >> 2] >> 0] = c[u >> 2]; c[j >> 2] = (c[u >> 2] | 0) + 1; v = c[j >> 2] | 0; l = i; return v | 0; } if ((c[o >> 2] | 0) >>> 0 > 128) { c[j >> 2] = -1; v = c[j >> 2] | 0; l = i; return v | 0; } if ( ((((((((c[o >> 2] | 0) + 1) | 0) >>> 0) / 2) | 0) + 1) | 0) >>> 0 > (c[m >> 2] | 0) >>> 0 ) { c[j >> 2] = -70; v = c[j >> 2] | 0; l = i; return v | 0; } a[c[s >> 2] >> 0] = 128 + ((c[o >> 2] | 0) - 1); a[(r + (c[o >> 2] | 0)) >> 0] = 0; c[t >> 2] = 0; while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[o >> 2] | 0) >>> 0) break; a[ ((c[s >> 2] | 0) + (((((c[t >> 2] | 0) >>> 0) / 2) | 0) + 1)) >> 0 ] = ((d[(r + (c[t >> 2] | 0)) >> 0] | 0) << 4) + (d[(r + ((c[t >> 2] | 0) + 1)) >> 0] | 0); c[t >> 2] = (c[t >> 2] | 0) + 2; } c[j >> 2] = ((((((c[o >> 2] | 0) + 1) | 0) >>> 0) / 2) | 0) + 1; v = c[j >> 2] | 0; l = i; return v | 0; } function Ji(f, g, h, i) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0; j = l; l = (l + 464) | 0; k = (j + 444) | 0; m = (j + 440) | 0; n = (j + 436) | 0; o = (j + 432) | 0; p = (j + 428) | 0; q = (j + 128) | 0; r = (j + 64) | 0; s = (j + 424) | 0; t = (j + 420) | 0; u = (j + 416) | 0; v = (j + 412) | 0; w = (j + 408) | 0; x = (j + 404) | 0; y = (j + 400) | 0; z = (j + 396) | 0; A = (j + 32) | 0; B = j; C = (j + 392) | 0; D = (j + 448) | 0; E = (j + 388) | 0; F = (j + 384) | 0; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = h; c[p >> 2] = i; c[s >> 2] = 0; c[t >> 2] = 0; c[u >> 2] = fh(q, 256, r, t, s, c[o >> 2] | 0, c[p >> 2] | 0) | 0; if (Hi(c[u >> 2] | 0) | 0) { c[k >> 2] = c[u >> 2]; G = c[k >> 2] | 0; l = j; return G | 0; } if ((c[s >> 2] | 0) >>> 0 > 12) { c[k >> 2] = -44; G = c[k >> 2] | 0; l = j; return G | 0; } if ( (c[t >> 2] | 0) >>> 0 > (((c[c[n >> 2] >> 2] | 0) + 1) | 0) >>> 0 ) { c[k >> 2] = -48; G = c[k >> 2] | 0; l = j; return G | 0; } c[w >> 2] = 0; c[v >> 2] = 1; while (1) { if ((c[v >> 2] | 0) >>> 0 > (c[s >> 2] | 0) >>> 0) break; c[x >> 2] = c[w >> 2]; c[w >> 2] = (c[w >> 2] | 0) + (c[(r + (c[v >> 2] << 2)) >> 2] << ((c[v >> 2] | 0) - 1)); c[(r + (c[v >> 2] << 2)) >> 2] = c[x >> 2]; c[v >> 2] = (c[v >> 2] | 0) + 1; } c[y >> 2] = 0; while (1) { if ((c[y >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; c[z >> 2] = d[(q + (c[y >> 2] | 0)) >> 0]; a[((c[m >> 2] | 0) + (c[y >> 2] << 2) + 2) >> 0] = (c[s >> 2] | 0) + 1 - (c[z >> 2] | 0); c[y >> 2] = (c[y >> 2] | 0) + 1; } c[A >> 2] = 0; c[(A + 4) >> 2] = 0; c[(A + 8) >> 2] = 0; c[(A + 12) >> 2] = 0; c[(A + 16) >> 2] = 0; c[(A + 20) >> 2] = 0; c[(A + 24) >> 2] = 0; c[B >> 2] = 0; c[(B + 4) >> 2] = 0; c[(B + 8) >> 2] = 0; c[(B + 12) >> 2] = 0; c[(B + 16) >> 2] = 0; c[(B + 20) >> 2] = 0; c[(B + 24) >> 2] = 0; c[C >> 2] = 0; while (1) { if ((c[C >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; y = (A + ((d[((c[m >> 2] | 0) + (c[C >> 2] << 2) + 2) >> 0] | 0) << 1)) | 0; b[y >> 1] = (((b[y >> 1] | 0) + 1) << 16) >> 16; c[C >> 2] = (c[C >> 2] | 0) + 1; } b[(B + (((c[s >> 2] | 0) + 1) << 1)) >> 1] = 0; b[D >> 1] = 0; c[E >> 2] = c[s >> 2]; while (1) { if ((c[E >> 2] | 0) >>> 0 <= 0) break; b[(B + (c[E >> 2] << 1)) >> 1] = b[D >> 1] | 0; b[D >> 1] = (e[D >> 1] | 0) + (e[(A + (c[E >> 2] << 1)) >> 1] | 0); b[D >> 1] = (e[D >> 1] | 0) >> 1; c[E >> 2] = (c[E >> 2] | 0) + -1; } c[F >> 2] = 0; while (1) { if ((c[F >> 2] | 0) >>> 0 >= (c[t >> 2] | 0) >>> 0) break; E = (B + ((d[((c[m >> 2] | 0) + (c[F >> 2] << 2) + 2) >> 0] | 0) << 1)) | 0; D = b[E >> 1] | 0; b[E >> 1] = ((D + 1) << 16) >> 16; b[((c[m >> 2] | 0) + (c[F >> 2] << 2)) >> 1] = D; c[F >> 2] = (c[F >> 2] | 0) + 1; } c[c[n >> 2] >> 2] = (c[t >> 2] | 0) - 1; c[k >> 2] = c[u >> 2]; G = c[k >> 2] | 0; l = j; return G | 0; } function Ki(f, g, h, i, j, k) { f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0; m = l; l = (l + 128) | 0; n = (m + 120) | 0; o = (m + 116) | 0; p = (m + 112) | 0; q = (m + 108) | 0; r = (m + 104) | 0; s = (m + 100) | 0; t = (m + 96) | 0; u = (m + 92) | 0; v = (m + 88) | 0; w = (m + 84) | 0; x = (m + 80) | 0; y = (m + 76) | 0; z = (m + 72) | 0; A = (m + 126) | 0; B = (m + 68) | 0; C = (m + 64) | 0; D = (m + 60) | 0; E = (m + 32) | 0; F = m; G = (m + 124) | 0; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; c[r >> 2] = i; c[s >> 2] = j; c[t >> 2] = k; c[u >> 2] = c[s >> 2]; c[v >> 2] = (c[u >> 2] | 0) + 8; b[A >> 1] = 256; if ((c[s >> 2] & 3) | 0) { c[n >> 2] = -1; H = c[n >> 2] | 0; l = m; return H | 0; } if ((c[t >> 2] | 0) >>> 0 < 4096) { c[n >> 2] = -66; H = c[n >> 2] | 0; l = m; return H | 0; } if (!(c[r >> 2] | 0)) c[r >> 2] = 11; if ((c[q >> 2] | 0) >>> 0 > 255) { c[n >> 2] = -46; H = c[n >> 2] | 0; l = m; return H | 0; } oE(c[u >> 2] | 0, 0, 4096) | 0; Li(c[v >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0); c[x >> 2] = c[q >> 2]; while (1) { I = c[x >> 2] | 0; if (c[((c[v >> 2] | 0) + (c[x >> 2] << 3)) >> 2] | 0) break; c[x >> 2] = I + -1; } c[y >> 2] = I; c[B >> 2] = (e[A >> 1] | 0) + (c[y >> 2] | 0) - 1; c[z >> 2] = e[A >> 1]; c[((c[v >> 2] | 0) + ((e[A >> 1] | 0) << 3)) >> 2] = (c[((c[v >> 2] | 0) + (c[y >> 2] << 3)) >> 2] | 0) + (c[((c[v >> 2] | 0) + (((c[y >> 2] | 0) - 1) << 3)) >> 2] | 0); I = b[A >> 1] | 0; b[((c[v >> 2] | 0) + (((c[y >> 2] | 0) - 1) << 3) + 4) >> 1] = I; b[((c[v >> 2] | 0) + (c[y >> 2] << 3) + 4) >> 1] = I; b[A >> 1] = (((b[A >> 1] | 0) + 1) << 16) >> 16; c[y >> 2] = (c[y >> 2] | 0) - 2; c[w >> 2] = e[A >> 1]; while (1) { if ((c[w >> 2] | 0) >>> 0 > (c[B >> 2] | 0) >>> 0) break; c[((c[v >> 2] | 0) + (c[w >> 2] << 3)) >> 2] = 1073741824; c[w >> 2] = (c[w >> 2] | 0) + 1; } c[c[u >> 2] >> 2] = -2147483648; while (1) { J = c[v >> 2] | 0; if ((e[A >> 1] | 0) >>> 0 > (c[B >> 2] | 0) >>> 0) break; if ( (c[(J + (c[y >> 2] << 3)) >> 2] | 0) >>> 0 < (c[((c[v >> 2] | 0) + (c[z >> 2] << 3)) >> 2] | 0) >>> 0 ) { u = c[y >> 2] | 0; c[y >> 2] = u + -1; K = u; } else { u = c[z >> 2] | 0; c[z >> 2] = u + 1; K = u; } c[C >> 2] = K; if ( (c[((c[v >> 2] | 0) + (c[y >> 2] << 3)) >> 2] | 0) >>> 0 < (c[((c[v >> 2] | 0) + (c[z >> 2] << 3)) >> 2] | 0) >>> 0 ) { u = c[y >> 2] | 0; c[y >> 2] = u + -1; L = u; } else { u = c[z >> 2] | 0; c[z >> 2] = u + 1; L = u; } c[D >> 2] = L; c[((c[v >> 2] | 0) + ((e[A >> 1] | 0) << 3)) >> 2] = (c[((c[v >> 2] | 0) + (c[C >> 2] << 3)) >> 2] | 0) + (c[((c[v >> 2] | 0) + (c[D >> 2] << 3)) >> 2] | 0); u = b[A >> 1] | 0; b[((c[v >> 2] | 0) + (c[D >> 2] << 3) + 4) >> 1] = u; b[((c[v >> 2] | 0) + (c[C >> 2] << 3) + 4) >> 1] = u; b[A >> 1] = (((b[A >> 1] | 0) + 1) << 16) >> 16; } a[(J + (c[B >> 2] << 3) + 7) >> 0] = 0; c[w >> 2] = (c[B >> 2] | 0) - 1; while (1) { if ((c[w >> 2] | 0) >>> 0 < 256) break; a[((c[v >> 2] | 0) + (c[w >> 2] << 3) + 7) >> 0] = (d[ ((c[v >> 2] | 0) + ((e[((c[v >> 2] | 0) + (c[w >> 2] << 3) + 4) >> 1] | 0) << 3) + 7) >> 0 ] | 0) + 1; c[w >> 2] = (c[w >> 2] | 0) + -1; } c[w >> 2] = 0; while (1) { M = c[v >> 2] | 0; if ((c[w >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0) break; a[((c[v >> 2] | 0) + (c[w >> 2] << 3) + 7) >> 0] = (d[ (M + ((e[((c[v >> 2] | 0) + (c[w >> 2] << 3) + 4) >> 1] | 0) << 3) + 7) >> 0 ] | 0) + 1; c[w >> 2] = (c[w >> 2] | 0) + 1; } c[r >> 2] = Mi(M, c[x >> 2] | 0, c[r >> 2] | 0) | 0; c[E >> 2] = 0; c[(E + 4) >> 2] = 0; c[(E + 8) >> 2] = 0; c[(E + 12) >> 2] = 0; c[(E + 16) >> 2] = 0; c[(E + 20) >> 2] = 0; b[(E + 24) >> 1] = 0; c[F >> 2] = 0; c[(F + 4) >> 2] = 0; c[(F + 8) >> 2] = 0; c[(F + 12) >> 2] = 0; c[(F + 16) >> 2] = 0; c[(F + 20) >> 2] = 0; b[(F + 24) >> 1] = 0; if ((c[r >> 2] | 0) >>> 0 > 12) { c[n >> 2] = -1; H = c[n >> 2] | 0; l = m; return H | 0; } c[w >> 2] = 0; while (1) { if ((c[w >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0) break; M = (E + ((d[((c[v >> 2] | 0) + (c[w >> 2] << 3) + 7) >> 0] | 0) << 1)) | 0; b[M >> 1] = (((b[M >> 1] | 0) + 1) << 16) >> 16; c[w >> 2] = (c[w >> 2] | 0) + 1; } b[G >> 1] = 0; c[w >> 2] = c[r >> 2]; while (1) { if ((c[w >> 2] | 0) >>> 0 <= 0) break; b[(F + (c[w >> 2] << 1)) >> 1] = b[G >> 1] | 0; b[G >> 1] = (e[G >> 1] | 0) + (e[(E + (c[w >> 2] << 1)) >> 1] | 0); b[G >> 1] = (e[G >> 1] | 0) >> 1; c[w >> 2] = (c[w >> 2] | 0) + -1; } c[w >> 2] = 0; while (1) { if ((c[w >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) break; a[ ((c[o >> 2] | 0) + ((d[((c[v >> 2] | 0) + (c[w >> 2] << 3) + 6) >> 0] | 0) << 2) + 2) >> 0 ] = a[((c[v >> 2] | 0) + (c[w >> 2] << 3) + 7) >> 0] | 0; c[w >> 2] = (c[w >> 2] | 0) + 1; } c[w >> 2] = 0; while (1) { if ((c[w >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0) break; v = (F + ((d[((c[o >> 2] | 0) + (c[w >> 2] << 2) + 2) >> 0] | 0) << 1)) | 0; G = b[v >> 1] | 0; b[v >> 1] = ((G + 1) << 16) >> 16; b[((c[o >> 2] | 0) + (c[w >> 2] << 2)) >> 1] = G; c[w >> 2] = (c[w >> 2] | 0) + 1; } c[n >> 2] = c[r >> 2]; H = c[n >> 2] | 0; l = m; return H | 0; } function Li(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 288) | 0; g = (f + 284) | 0; h = (f + 280) | 0; i = (f + 276) | 0; j = f; k = (f + 272) | 0; m = (f + 268) | 0; n = (f + 264) | 0; o = (f + 260) | 0; p = (f + 256) | 0; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = e; oE(j | 0, 0, 256) | 0; c[k >> 2] = 0; while (1) { if ((c[k >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) break; c[m >> 2] = Ni( ((c[((c[h >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0) + 1) | 0 ) | 0; e = (j + (c[m >> 2] << 3)) | 0; c[e >> 2] = (c[e >> 2] | 0) + 1; c[k >> 2] = (c[k >> 2] | 0) + 1; } c[k >> 2] = 30; while (1) { if ((c[k >> 2] | 0) >>> 0 <= 0) break; m = (j + (((c[k >> 2] | 0) - 1) << 3)) | 0; c[m >> 2] = (c[m >> 2] | 0) + (c[(j + (c[k >> 2] << 3)) >> 2] | 0); c[k >> 2] = (c[k >> 2] | 0) + -1; } c[k >> 2] = 0; while (1) { if ((c[k >> 2] | 0) >>> 0 >= 32) break; c[(j + (c[k >> 2] << 3) + 4) >> 2] = c[(j + (c[k >> 2] << 3)) >> 2]; c[k >> 2] = (c[k >> 2] | 0) + 1; } c[k >> 2] = 0; while (1) { if ((c[k >> 2] | 0) >>> 0 > (c[i >> 2] | 0) >>> 0) break; c[n >> 2] = c[((c[h >> 2] | 0) + (c[k >> 2] << 2)) >> 2]; c[o >> 2] = (Ni(((c[n >> 2] | 0) + 1) | 0) | 0) + 1; m = (j + (c[o >> 2] << 3) + 4) | 0; e = c[m >> 2] | 0; c[m >> 2] = e + 1; c[p >> 2] = e; while (1) { if ( (c[p >> 2] | 0) >>> 0 <= (c[(j + (c[o >> 2] << 3)) >> 2] | 0) >>> 0 ) break; if ( (c[n >> 2] | 0) >>> 0 <= (c[ ((c[g >> 2] | 0) + (((c[p >> 2] | 0) - 1) << 3)) >> 2 ] | 0) >>> 0 ) break; e = ((c[g >> 2] | 0) + (c[p >> 2] << 3)) | 0; m = ((c[g >> 2] | 0) + (((c[p >> 2] | 0) - 1) << 3)) | 0; c[e >> 2] = c[m >> 2]; c[(e + 4) >> 2] = c[(m + 4) >> 2]; c[p >> 2] = (c[p >> 2] | 0) + -1; } c[((c[g >> 2] | 0) + (c[p >> 2] << 3)) >> 2] = c[n >> 2]; a[((c[g >> 2] | 0) + (c[p >> 2] << 3) + 6) >> 0] = c[k >> 2]; c[k >> 2] = (c[k >> 2] | 0) + 1; } l = f; return; } function Mi(b, e, f) { b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0; g = l; l = (l + 128) | 0; h = (g + 116) | 0; i = (g + 112) | 0; j = (g + 108) | 0; k = (g + 104) | 0; m = (g + 100) | 0; n = (g + 96) | 0; o = (g + 92) | 0; p = (g + 88) | 0; q = (g + 84) | 0; r = g; s = (g + 80) | 0; t = (g + 76) | 0; u = (g + 72) | 0; v = (g + 68) | 0; w = (g + 64) | 0; x = (g + 60) | 0; y = (g + 56) | 0; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = d[((c[i >> 2] | 0) + (c[j >> 2] << 3) + 7) >> 0]; if ((c[m >> 2] | 0) >>> 0 <= (c[k >> 2] | 0) >>> 0) { c[h >> 2] = c[m >> 2]; z = c[h >> 2] | 0; l = g; return z | 0; } c[n >> 2] = 0; c[o >> 2] = 1 << ((c[m >> 2] | 0) - (c[k >> 2] | 0)); c[p >> 2] = c[j >> 2]; while (1) { if ( (d[((c[i >> 2] | 0) + (c[p >> 2] << 3) + 7) >> 0] | 0) >>> 0 <= (c[k >> 2] | 0) >>> 0 ) break; c[n >> 2] = (c[n >> 2] | 0) + ((c[o >> 2] | 0) - (1 << ((c[m >> 2] | 0) - (d[((c[i >> 2] | 0) + (c[p >> 2] << 3) + 7) >> 0] | 0)))); a[((c[i >> 2] | 0) + (c[p >> 2] << 3) + 7) >> 0] = c[k >> 2]; c[p >> 2] = (c[p >> 2] | 0) + -1; } while (1) { if ( (d[((c[i >> 2] | 0) + (c[p >> 2] << 3) + 7) >> 0] | 0 | 0) != (c[k >> 2] | 0) ) break; c[p >> 2] = (c[p >> 2] | 0) + -1; } c[n >> 2] = c[n >> 2] >> ((c[m >> 2] | 0) - (c[k >> 2] | 0)); c[q >> 2] = -252645136; q = r; m = (q + 56) | 0; do { c[q >> 2] = -252645136; q = (q + 4) | 0; } while ((q | 0) < (m | 0)); c[t >> 2] = c[k >> 2]; c[s >> 2] = c[p >> 2]; while (1) { if ((c[s >> 2] | 0) < 0) break; if ( (d[((c[i >> 2] | 0) + (c[s >> 2] << 3) + 7) >> 0] | 0) >>> 0 < (c[t >> 2] | 0) >>> 0 ) { c[t >> 2] = d[((c[i >> 2] | 0) + (c[s >> 2] << 3) + 7) >> 0]; c[(r + (((c[k >> 2] | 0) - (c[t >> 2] | 0)) << 2)) >> 2] = c[s >> 2]; } c[s >> 2] = (c[s >> 2] | 0) + -1; } while (1) { if ((c[n >> 2] | 0) <= 0) break; c[u >> 2] = (Ni(c[n >> 2] | 0) | 0) + 1; while (1) { if ((c[u >> 2] | 0) >>> 0 <= 1) break; c[v >> 2] = c[(r + (c[u >> 2] << 2)) >> 2]; c[w >> 2] = c[(r + (((c[u >> 2] | 0) - 1) << 2)) >> 2]; if ((c[v >> 2] | 0) != -252645136) { if ((c[w >> 2] | 0) == -252645136) break; c[x >> 2] = c[((c[i >> 2] | 0) + (c[v >> 2] << 3)) >> 2]; c[y >> 2] = c[((c[i >> 2] | 0) + (c[w >> 2] << 3)) >> 2] << 1; if ((c[x >> 2] | 0) >>> 0 <= (c[y >> 2] | 0) >>> 0) break; } c[u >> 2] = (c[u >> 2] | 0) + -1; } while (1) { if ((c[u >> 2] | 0) >>> 0 <= 12) A = (c[(r + (c[u >> 2] << 2)) >> 2] | 0) == -252645136; else A = 0; B = c[u >> 2] | 0; if (!A) break; c[u >> 2] = B + 1; } c[n >> 2] = (c[n >> 2] | 0) - (1 << (B - 1)); if ( (c[(r + (((c[u >> 2] | 0) - 1) << 2)) >> 2] | 0) == -252645136 ) c[(r + (((c[u >> 2] | 0) - 1) << 2)) >> 2] = c[(r + (c[u >> 2] << 2)) >> 2]; s = ((c[i >> 2] | 0) + (c[(r + (c[u >> 2] << 2)) >> 2] << 3) + 7) | 0; a[s >> 0] = (((a[s >> 0] | 0) + 1) << 24) >> 24; s = (r + (c[u >> 2] << 2)) | 0; if (c[(r + (c[u >> 2] << 2)) >> 2] | 0) { c[s >> 2] = (c[s >> 2] | 0) + -1; if ( (d[ ((c[i >> 2] | 0) + (c[(r + (c[u >> 2] << 2)) >> 2] << 3) + 7) >> 0 ] | 0 | 0) != (((c[k >> 2] | 0) - (c[u >> 2] | 0)) | 0) ) c[(r + (c[u >> 2] << 2)) >> 2] = -252645136; } else c[s >> 2] = -252645136; } while (1) { if ((c[n >> 2] | 0) >= 0) break; if ((c[(r + 4) >> 2] | 0) != -252645136) { u = ((c[i >> 2] | 0) + (((c[(r + 4) >> 2] | 0) + 1) << 3) + 7) | 0; a[u >> 0] = (((a[u >> 0] | 0) + -1) << 24) >> 24; u = (r + 4) | 0; c[u >> 2] = (c[u >> 2] | 0) + 1; c[n >> 2] = (c[n >> 2] | 0) + 1; continue; } while (1) { if ( (d[((c[i >> 2] | 0) + (c[p >> 2] << 3) + 7) >> 0] | 0 | 0) != (c[k >> 2] | 0) ) break; c[p >> 2] = (c[p >> 2] | 0) + -1; } u = ((c[i >> 2] | 0) + (((c[p >> 2] | 0) + 1) << 3) + 7) | 0; a[u >> 0] = (((a[u >> 0] | 0) + -1) << 24) >> 24; c[(r + 4) >> 2] = (c[p >> 2] | 0) + 1; c[n >> 2] = (c[n >> 2] | 0) + 1; } c[h >> 2] = c[k >> 2]; z = c[h >> 2] | 0; l = g; return z | 0; } function Ni(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function Oi(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; h = l; l = (l + 32) | 0; i = (h + 24) | 0; j = (h + 20) | 0; k = (h + 16) | 0; m = (h + 12) | 0; n = (h + 8) | 0; o = (h + 4) | 0; p = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; g = c[j >> 2] | 0; j = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; if (c[p >> 2] | 0) { c[i >> 2] = Pi(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } else { c[i >> 2] = Qi(g, j, k, m, n) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } return 0; } function Pi(a, b, f, g, h) { a = a | 0; b = b | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0; i = l; l = (l + 176) | 0; j = (i + 168) | 0; k = (i + 164) | 0; m = (i + 160) | 0; n = (i + 156) | 0; o = (i + 152) | 0; p = (i + 148) | 0; q = (i + 144) | 0; r = (i + 140) | 0; s = (i + 136) | 0; t = (i + 132) | 0; u = (i + 128) | 0; v = (i + 124) | 0; w = (i + 120) | 0; x = (i + 116) | 0; y = (i + 112) | 0; z = (i + 108) | 0; A = (i + 104) | 0; B = (i + 100) | 0; C = (i + 96) | 0; D = (i + 92) | 0; E = (i + 88) | 0; F = (i + 84) | 0; G = (i + 80) | 0; H = (i + 76) | 0; I = (i + 72) | 0; J = (i + 68) | 0; K = (i + 64) | 0; L = (i + 60) | 0; M = (i + 56) | 0; N = (i + 52) | 0; O = (i + 48) | 0; P = (i + 44) | 0; Q = (i + 24) | 0; R = (i + 20) | 0; S = (i + 16) | 0; T = (i + 12) | 0; U = (i + 8) | 0; V = (i + 4) | 0; W = i; c[S >> 2] = a; c[T >> 2] = b; c[U >> 2] = f; c[V >> 2] = g; c[W >> 2] = h; h = c[T >> 2] | 0; T = c[U >> 2] | 0; U = c[V >> 2] | 0; V = c[W >> 2] | 0; c[G >> 2] = c[S >> 2]; c[H >> 2] = h; c[I >> 2] = T; c[J >> 2] = U; c[K >> 2] = V; c[L >> 2] = c[I >> 2]; c[M >> 2] = c[G >> 2]; c[N >> 2] = (c[M >> 2] | 0) + (c[H >> 2] | 0); c[O >> 2] = c[M >> 2]; if ((c[H >> 2] | 0) >>> 0 < 8) { c[F >> 2] = 0; X = c[F >> 2] | 0; l = i; return X | 0; } c[R >> 2] = Ri( Q, c[O >> 2] | 0, ((c[N >> 2] | 0) - (c[O >> 2] | 0)) | 0 ) | 0; if (Hi(c[R >> 2] | 0) | 0) { c[F >> 2] = 0; X = c[F >> 2] | 0; l = i; return X | 0; } c[P >> 2] = c[J >> 2] & -4; switch ((c[J >> 2] & 3) | 0) { case 3: { J = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) + 2)) >> 0] | 0; R = c[K >> 2] | 0; c[C >> 2] = Q; c[D >> 2] = J; c[E >> 2] = R; Si( c[C >> 2] | 0, e[((c[E >> 2] | 0) + (c[D >> 2] << 2)) >> 1] | 0, d[((c[E >> 2] | 0) + (c[D >> 2] << 2) + 2) >> 0] | 0 ); Ti(Q); Y = 7; break; } case 2: { Y = 7; break; } case 1: { Y = 8; break; } case 0: break; default: { } } if ((Y | 0) == 7) { D = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) + 1)) >> 0] | 0; E = c[K >> 2] | 0; c[z >> 2] = Q; c[A >> 2] = D; c[B >> 2] = E; Si( c[z >> 2] | 0, e[((c[B >> 2] | 0) + (c[A >> 2] << 2)) >> 1] | 0, d[((c[B >> 2] | 0) + (c[A >> 2] << 2) + 2) >> 0] | 0 ); Y = 8; } if ((Y | 0) == 8) { Y = d[((c[L >> 2] | 0) + (c[P >> 2] | 0)) >> 0] | 0; A = c[K >> 2] | 0; c[w >> 2] = Q; c[x >> 2] = Y; c[y >> 2] = A; Si( c[w >> 2] | 0, e[((c[y >> 2] | 0) + (c[x >> 2] << 2)) >> 1] | 0, d[((c[y >> 2] | 0) + (c[x >> 2] << 2) + 2) >> 0] | 0 ); Ti(Q); } while (1) { if ((c[P >> 2] | 0) >>> 0 <= 0) break; x = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) - 1)) >> 0] | 0; y = c[K >> 2] | 0; c[t >> 2] = Q; c[u >> 2] = x; c[v >> 2] = y; Si( c[t >> 2] | 0, e[((c[v >> 2] | 0) + (c[u >> 2] << 2)) >> 1] | 0, d[((c[v >> 2] | 0) + (c[u >> 2] << 2) + 2) >> 0] | 0 ); y = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) - 2)) >> 0] | 0; x = c[K >> 2] | 0; c[q >> 2] = Q; c[r >> 2] = y; c[s >> 2] = x; Si( c[q >> 2] | 0, e[((c[s >> 2] | 0) + (c[r >> 2] << 2)) >> 1] | 0, d[((c[s >> 2] | 0) + (c[r >> 2] << 2) + 2) >> 0] | 0 ); Ti(Q); x = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) - 3)) >> 0] | 0; y = c[K >> 2] | 0; c[n >> 2] = Q; c[o >> 2] = x; c[p >> 2] = y; Si( c[n >> 2] | 0, e[((c[p >> 2] | 0) + (c[o >> 2] << 2)) >> 1] | 0, d[((c[p >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ); y = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) - 4)) >> 0] | 0; x = c[K >> 2] | 0; c[j >> 2] = Q; c[k >> 2] = y; c[m >> 2] = x; Si( c[j >> 2] | 0, e[((c[m >> 2] | 0) + (c[k >> 2] << 2)) >> 1] | 0, d[((c[m >> 2] | 0) + (c[k >> 2] << 2) + 2) >> 0] | 0 ); Ti(Q); c[P >> 2] = (c[P >> 2] | 0) - 4; } c[F >> 2] = Ui(Q) | 0; X = c[F >> 2] | 0; l = i; return X | 0; } function Qi(a, b, f, g, h) { a = a | 0; b = b | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0; i = l; l = (l + 176) | 0; j = (i + 168) | 0; k = (i + 164) | 0; m = (i + 160) | 0; n = (i + 156) | 0; o = (i + 152) | 0; p = (i + 148) | 0; q = (i + 144) | 0; r = (i + 140) | 0; s = (i + 136) | 0; t = (i + 132) | 0; u = (i + 128) | 0; v = (i + 124) | 0; w = (i + 120) | 0; x = (i + 116) | 0; y = (i + 112) | 0; z = (i + 108) | 0; A = (i + 104) | 0; B = (i + 100) | 0; C = (i + 96) | 0; D = (i + 92) | 0; E = (i + 88) | 0; F = (i + 84) | 0; G = (i + 80) | 0; H = (i + 76) | 0; I = (i + 72) | 0; J = (i + 68) | 0; K = (i + 64) | 0; L = (i + 60) | 0; M = (i + 56) | 0; N = (i + 52) | 0; O = (i + 48) | 0; P = (i + 44) | 0; Q = (i + 24) | 0; R = (i + 20) | 0; S = (i + 16) | 0; T = (i + 12) | 0; U = (i + 8) | 0; V = (i + 4) | 0; W = i; c[S >> 2] = a; c[T >> 2] = b; c[U >> 2] = f; c[V >> 2] = g; c[W >> 2] = h; h = c[T >> 2] | 0; T = c[U >> 2] | 0; U = c[V >> 2] | 0; V = c[W >> 2] | 0; c[G >> 2] = c[S >> 2]; c[H >> 2] = h; c[I >> 2] = T; c[J >> 2] = U; c[K >> 2] = V; c[L >> 2] = c[I >> 2]; c[M >> 2] = c[G >> 2]; c[N >> 2] = (c[M >> 2] | 0) + (c[H >> 2] | 0); c[O >> 2] = c[M >> 2]; if ((c[H >> 2] | 0) >>> 0 < 8) { c[F >> 2] = 0; X = c[F >> 2] | 0; l = i; return X | 0; } c[R >> 2] = Ri( Q, c[O >> 2] | 0, ((c[N >> 2] | 0) - (c[O >> 2] | 0)) | 0 ) | 0; if (Hi(c[R >> 2] | 0) | 0) { c[F >> 2] = 0; X = c[F >> 2] | 0; l = i; return X | 0; } c[P >> 2] = c[J >> 2] & -4; switch ((c[J >> 2] & 3) | 0) { case 3: { J = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) + 2)) >> 0] | 0; R = c[K >> 2] | 0; c[C >> 2] = Q; c[D >> 2] = J; c[E >> 2] = R; Si( c[C >> 2] | 0, e[((c[E >> 2] | 0) + (c[D >> 2] << 2)) >> 1] | 0, d[((c[E >> 2] | 0) + (c[D >> 2] << 2) + 2) >> 0] | 0 ); Ti(Q); Y = 7; break; } case 2: { Y = 7; break; } case 1: { Y = 8; break; } case 0: break; default: { } } if ((Y | 0) == 7) { D = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) + 1)) >> 0] | 0; E = c[K >> 2] | 0; c[z >> 2] = Q; c[A >> 2] = D; c[B >> 2] = E; Si( c[z >> 2] | 0, e[((c[B >> 2] | 0) + (c[A >> 2] << 2)) >> 1] | 0, d[((c[B >> 2] | 0) + (c[A >> 2] << 2) + 2) >> 0] | 0 ); Y = 8; } if ((Y | 0) == 8) { Y = d[((c[L >> 2] | 0) + (c[P >> 2] | 0)) >> 0] | 0; A = c[K >> 2] | 0; c[w >> 2] = Q; c[x >> 2] = Y; c[y >> 2] = A; Si( c[w >> 2] | 0, e[((c[y >> 2] | 0) + (c[x >> 2] << 2)) >> 1] | 0, d[((c[y >> 2] | 0) + (c[x >> 2] << 2) + 2) >> 0] | 0 ); Ti(Q); } while (1) { if ((c[P >> 2] | 0) >>> 0 <= 0) break; x = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) - 1)) >> 0] | 0; y = c[K >> 2] | 0; c[t >> 2] = Q; c[u >> 2] = x; c[v >> 2] = y; Si( c[t >> 2] | 0, e[((c[v >> 2] | 0) + (c[u >> 2] << 2)) >> 1] | 0, d[((c[v >> 2] | 0) + (c[u >> 2] << 2) + 2) >> 0] | 0 ); y = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) - 2)) >> 0] | 0; x = c[K >> 2] | 0; c[q >> 2] = Q; c[r >> 2] = y; c[s >> 2] = x; Si( c[q >> 2] | 0, e[((c[s >> 2] | 0) + (c[r >> 2] << 2)) >> 1] | 0, d[((c[s >> 2] | 0) + (c[r >> 2] << 2) + 2) >> 0] | 0 ); Ti(Q); x = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) - 3)) >> 0] | 0; y = c[K >> 2] | 0; c[n >> 2] = Q; c[o >> 2] = x; c[p >> 2] = y; Si( c[n >> 2] | 0, e[((c[p >> 2] | 0) + (c[o >> 2] << 2)) >> 1] | 0, d[((c[p >> 2] | 0) + (c[o >> 2] << 2) + 2) >> 0] | 0 ); y = d[((c[L >> 2] | 0) + ((c[P >> 2] | 0) - 4)) >> 0] | 0; x = c[K >> 2] | 0; c[j >> 2] = Q; c[k >> 2] = y; c[m >> 2] = x; Si( c[j >> 2] | 0, e[((c[m >> 2] | 0) + (c[k >> 2] << 2)) >> 1] | 0, d[((c[m >> 2] | 0) + (c[k >> 2] << 2) + 2) >> 0] | 0 ); Ti(Q); c[P >> 2] = (c[P >> 2] | 0) - 4; } c[F >> 2] = Ui(Q) | 0; X = c[F >> 2] | 0; l = i; return X | 0; } function Ri(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[c[g >> 2] >> 2] = 0; c[((c[g >> 2] | 0) + 4) >> 2] = 0; c[((c[g >> 2] | 0) + 8) >> 2] = c[h >> 2]; c[((c[g >> 2] | 0) + 12) >> 2] = c[((c[g >> 2] | 0) + 8) >> 2]; c[((c[g >> 2] | 0) + 16) >> 2] = (c[((c[g >> 2] | 0) + 8) >> 2] | 0) + (c[i >> 2] | 0) + -4; if ((c[i >> 2] | 0) >>> 0 <= 4) { c[f >> 2] = -70; j = c[f >> 2] | 0; l = e; return j | 0; } else { c[f >> 2] = 0; j = c[f >> 2] | 0; l = e; return j | 0; } return 0; } function Si(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = c[f >> 2] | 0; c[d >> 2] = c[d >> 2] | (c[g >> 2] << c[((c[f >> 2] | 0) + 4) >> 2]); g = ((c[f >> 2] | 0) + 4) | 0; c[g >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return; } function Ti(a) { a = a | 0; var b = 0, d = 0, e = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[d >> 2] = a; c[e >> 2] = (c[((c[d >> 2] | 0) + 4) >> 2] | 0) >>> 3; Vi(c[((c[d >> 2] | 0) + 12) >> 2] | 0, c[c[d >> 2] >> 2] | 0); a = ((c[d >> 2] | 0) + 12) | 0; c[a >> 2] = (c[a >> 2] | 0) + (c[e >> 2] | 0); if ( (c[((c[d >> 2] | 0) + 12) >> 2] | 0) >>> 0 > (c[((c[d >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) c[((c[d >> 2] | 0) + 12) >> 2] = c[((c[d >> 2] | 0) + 16) >> 2]; a = ((c[d >> 2] | 0) + 4) | 0; c[a >> 2] = c[a >> 2] & 7; a = c[d >> 2] | 0; c[a >> 2] = (c[a >> 2] | 0) >>> (c[e >> 2] << 3); l = b; return; } function Ui(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; Si(c[e >> 2] | 0, 1, 1); Ti(c[e >> 2] | 0); if ( (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 >= (c[((c[e >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) { c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } else { c[d >> 2] = (c[((c[e >> 2] | 0) + 12) >> 2] | 0) - (c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 0) & 1); f = c[d >> 2] | 0; l = b; return f | 0; } return 0; } function Vi(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = (Wi() | 0) != 0; a = c[e >> 2] | 0; e = c[f >> 2] | 0; if (b) { Xi(a, e); l = d; return; } else { Yi(a, e, 0); l = d; return; } } function Wi() { return 1; } function Xi(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = (Zi() | 0) != 0; a = c[e >> 2] | 0; e = c[f >> 2] | 0; if (b) { aj(a, e); l = d; return; } else { aj(a, bj(e) | 0); l = d; return; } } function Yi(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = e; c[f >> 2] = a; a = g; c[a >> 2] = b; c[(a + 4) >> 2] = d; d = (Zi() | 0) != 0; a = c[f >> 2] | 0; f = g; g = c[f >> 2] | 0; b = c[(f + 4) >> 2] | 0; if (d) { _i(a, g, b); l = e; return; } else { d = $i(g, b) | 0; _i(a, d, y); l = e; return; } } function Zi() { return d[11936] | 0 | 0; } function _i(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = (f + 8) | 0; h = f; c[g >> 2] = b; b = h; c[b >> 2] = d; c[(b + 4) >> 2] = e; e = h; h = c[e >> 2] | 0; b = c[(e + 4) >> 2] | 0; e = c[g >> 2] | 0; g = e; a[g >> 0] = h; a[(g + 1) >> 0] = h >> 8; a[(g + 2) >> 0] = h >> 16; a[(g + 3) >> 0] = h >> 24; h = (e + 4) | 0; a[h >> 0] = b; a[(h + 1) >> 0] = b >> 8; a[(h + 2) >> 0] = b >> 16; a[(h + 3) >> 0] = b >> 24; l = f; return; } function $i(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function aj(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[g >> 2] | 0; g = c[f >> 2] | 0; a[g >> 0] = d; a[(g + 1) >> 0] = d >> 8; a[(g + 2) >> 0] = d >> 16; a[(g + 3) >> 0] = d >> 24; l = e; return; } function bj(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function cj(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; h = l; l = (l + 80) | 0; i = (h + 64) | 0; j = (h + 60) | 0; k = (h + 56) | 0; m = (h + 52) | 0; n = (h + 48) | 0; o = (h + 44) | 0; p = (h + 40) | 0; q = (h + 36) | 0; r = (h + 32) | 0; s = (h + 28) | 0; t = (h + 24) | 0; u = (h + 20) | 0; v = (h + 16) | 0; w = (h + 12) | 0; x = (h + 8) | 0; y = (h + 4) | 0; z = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = (((((c[n >> 2] | 0) + 3) | 0) >>> 0) / 4) | 0; c[r >> 2] = c[m >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[n >> 2] | 0); c[t >> 2] = c[j >> 2]; c[u >> 2] = (c[t >> 2] | 0) + (c[k >> 2] | 0); c[v >> 2] = c[t >> 2]; if ((c[k >> 2] | 0) >>> 0 < 17) { c[i >> 2] = 0; A = c[i >> 2] | 0; l = h; return A | 0; } if ((c[n >> 2] | 0) >>> 0 < 12) { c[i >> 2] = 0; A = c[i >> 2] | 0; l = h; return A | 0; } c[v >> 2] = (c[v >> 2] | 0) + 6; c[w >> 2] = Oi( c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, c[r >> 2] | 0, c[q >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; n = (Hi(c[w >> 2] | 0) | 0) != 0; k = c[w >> 2] | 0; if (n) { c[i >> 2] = k; A = c[i >> 2] | 0; l = h; return A | 0; } if (!k) { c[i >> 2] = 0; A = c[i >> 2] | 0; l = h; return A | 0; } dj(c[t >> 2] | 0, c[w >> 2] & 65535); c[v >> 2] = (c[v >> 2] | 0) + (c[w >> 2] | 0); c[r >> 2] = (c[r >> 2] | 0) + (c[q >> 2] | 0); c[x >> 2] = Oi( c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, c[r >> 2] | 0, c[q >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; w = (Hi(c[x >> 2] | 0) | 0) != 0; k = c[x >> 2] | 0; if (w) { c[i >> 2] = k; A = c[i >> 2] | 0; l = h; return A | 0; } if (!k) { c[i >> 2] = 0; A = c[i >> 2] | 0; l = h; return A | 0; } dj(((c[t >> 2] | 0) + 2) | 0, c[x >> 2] & 65535); c[v >> 2] = (c[v >> 2] | 0) + (c[x >> 2] | 0); c[r >> 2] = (c[r >> 2] | 0) + (c[q >> 2] | 0); c[y >> 2] = Oi( c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, c[r >> 2] | 0, c[q >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; x = (Hi(c[y >> 2] | 0) | 0) != 0; k = c[y >> 2] | 0; if (x) { c[i >> 2] = k; A = c[i >> 2] | 0; l = h; return A | 0; } if (!k) { c[i >> 2] = 0; A = c[i >> 2] | 0; l = h; return A | 0; } dj(((c[t >> 2] | 0) + 4) | 0, c[y >> 2] & 65535); c[v >> 2] = (c[v >> 2] | 0) + (c[y >> 2] | 0); c[r >> 2] = (c[r >> 2] | 0) + (c[q >> 2] | 0); c[z >> 2] = Oi( c[v >> 2] | 0, ((c[u >> 2] | 0) - (c[v >> 2] | 0)) | 0, c[r >> 2] | 0, ((c[s >> 2] | 0) - (c[r >> 2] | 0)) | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; p = (Hi(c[z >> 2] | 0) | 0) != 0; o = c[z >> 2] | 0; if (p) { c[i >> 2] = o; A = c[i >> 2] | 0; l = h; return A | 0; } if (!o) { c[i >> 2] = 0; A = c[i >> 2] | 0; l = h; return A | 0; } else { c[v >> 2] = (c[v >> 2] | 0) + (c[z >> 2] | 0); c[i >> 2] = (c[v >> 2] | 0) - (c[t >> 2] | 0); A = c[i >> 2] | 0; l = h; return A | 0; } return 0; } function dj(d, f) { d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; g = l; l = (l + 16) | 0; h = (g + 4) | 0; i = (g + 8) | 0; j = g; c[h >> 2] = d; b[i >> 1] = f; f = (Zi() | 0) != 0; d = c[h >> 2] | 0; if (f) { ej(d, b[i >> 1] | 0); l = g; return; } else { c[j >> 2] = d; a[c[j >> 2] >> 0] = b[i >> 1]; a[((c[j >> 2] | 0) + 1) >> 0] = (e[i >> 1] | 0) >> 8; l = g; return; } } function ej(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = f; h = (f + 4) | 0; c[g >> 2] = d; b[h >> 1] = e; e = b[h >> 1] | 0; h = c[g >> 2] | 0; a[h >> 0] = e; a[(h + 1) >> 0] = e >> 8; l = f; return; } function fj(b, d, e, f, g, h, i, j, k, m, n, o, p) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; var q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0; q = l; l = (l + 96) | 0; r = (q + 88) | 0; s = (q + 84) | 0; t = (q + 80) | 0; u = (q + 76) | 0; v = (q + 72) | 0; w = (q + 68) | 0; x = (q + 64) | 0; y = (q + 60) | 0; z = (q + 56) | 0; A = (q + 52) | 0; B = (q + 48) | 0; C = (q + 44) | 0; D = (q + 40) | 0; E = (q + 36) | 0; F = (q + 32) | 0; G = (q + 28) | 0; H = (q + 24) | 0; I = (q + 20) | 0; J = (q + 16) | 0; K = (q + 12) | 0; L = (q + 8) | 0; M = (q + 4) | 0; N = q; c[s >> 2] = b; c[t >> 2] = d; c[u >> 2] = e; c[v >> 2] = f; c[w >> 2] = g; c[x >> 2] = h; c[y >> 2] = i; c[z >> 2] = j; c[A >> 2] = k; c[B >> 2] = m; c[C >> 2] = n; c[D >> 2] = o; c[E >> 2] = p; c[F >> 2] = c[z >> 2]; c[G >> 2] = c[s >> 2]; c[H >> 2] = (c[G >> 2] | 0) + (c[t >> 2] | 0); c[I >> 2] = c[G >> 2]; if ((c[z >> 2] & 3) | 0) { c[r >> 2] = -1; O = c[r >> 2] | 0; l = q; return O | 0; } if ((c[A >> 2] | 0) >>> 0 < 6144) { c[r >> 2] = -66; O = c[r >> 2] | 0; l = q; return O | 0; } if (!(c[v >> 2] | 0)) { c[r >> 2] = 0; O = c[r >> 2] | 0; l = q; return O | 0; } if (!(c[t >> 2] | 0)) { c[r >> 2] = 0; O = c[r >> 2] | 0; l = q; return O | 0; } if ((c[v >> 2] | 0) >>> 0 > 131072) { c[r >> 2] = -72; O = c[r >> 2] | 0; l = q; return O | 0; } if ((c[x >> 2] | 0) >>> 0 > 12) { c[r >> 2] = -44; O = c[r >> 2] | 0; l = q; return O | 0; } if ((c[w >> 2] | 0) >>> 0 > 255) { c[r >> 2] = -46; O = c[r >> 2] | 0; l = q; return O | 0; } if (!(c[w >> 2] | 0)) c[w >> 2] = 255; if (!(c[x >> 2] | 0)) c[x >> 2] = 11; if ( ((c[D >> 2] | 0) != 0) & ((c[C >> 2] | 0) != 0) ? (c[c[C >> 2] >> 2] | 0) == 2 : 0 ) { c[r >> 2] = gj( c[G >> 2] | 0, c[I >> 2] | 0, c[H >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[y >> 2] | 0, c[B >> 2] | 0, c[E >> 2] | 0 ) | 0; O = c[r >> 2] | 0; l = q; return O | 0; } c[J >> 2] = bi( c[F >> 2] | 0, w, c[u >> 2] | 0, c[v >> 2] | 0, c[F >> 2] | 0 ) | 0; A = (Hi(c[J >> 2] | 0) | 0) != 0; z = c[J >> 2] | 0; if (A) { c[r >> 2] = z; O = c[r >> 2] | 0; l = q; return O | 0; } if ((z | 0) == (c[v >> 2] | 0)) { a[c[G >> 2] >> 0] = a[c[u >> 2] >> 0] | 0; c[r >> 2] = 1; O = c[r >> 2] | 0; l = q; return O | 0; } if ( (c[J >> 2] | 0) >>> 0 <= ((((c[v >> 2] | 0) >>> 7) + 1) | 0) >>> 0 ) { c[r >> 2] = 0; O = c[r >> 2] | 0; l = q; return O | 0; } if ( (c[C >> 2] | 0 ? (c[c[C >> 2] >> 2] | 0) == 1 : 0) ? (hj(c[B >> 2] | 0, c[F >> 2] | 0, c[w >> 2] | 0) | 0) == 0 : 0 ) c[c[C >> 2] >> 2] = 0; if ( ((c[D >> 2] | 0) != 0) & ((c[C >> 2] | 0) != 0) ? c[c[C >> 2] >> 2] | 0 : 0 ) { c[r >> 2] = gj( c[G >> 2] | 0, c[I >> 2] | 0, c[H >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[y >> 2] | 0, c[B >> 2] | 0, c[E >> 2] | 0 ) | 0; O = c[r >> 2] | 0; l = q; return O | 0; } c[x >> 2] = Fi(c[x >> 2] | 0, c[v >> 2] | 0, c[w >> 2] | 0) | 0; c[K >> 2] = Ki( ((c[F >> 2] | 0) + 1024) | 0, c[F >> 2] | 0, c[w >> 2] | 0, c[x >> 2] | 0, ((c[F >> 2] | 0) + 2048) | 0, 4096 ) | 0; D = (Hi(c[K >> 2] | 0) | 0) != 0; J = c[K >> 2] | 0; if (D) { c[r >> 2] = J; O = c[r >> 2] | 0; l = q; return O | 0; } c[x >> 2] = J; oE( ((c[F >> 2] | 0) + 1024 + (((c[w >> 2] | 0) + 1) << 2)) | 0, 0, (1024 - (((c[w >> 2] | 0) + 1) << 2)) | 0 ) | 0; c[L >> 2] = Ii( c[I >> 2] | 0, c[t >> 2] | 0, ((c[F >> 2] | 0) + 1024) | 0, c[w >> 2] | 0, c[x >> 2] | 0 ) | 0; if (Hi(c[L >> 2] | 0) | 0) { c[r >> 2] = c[L >> 2]; O = c[r >> 2] | 0; l = q; return O | 0; } do { if (c[C >> 2] | 0 ? c[c[C >> 2] >> 2] | 0 : 0) { c[M >> 2] = ij(c[B >> 2] | 0, c[F >> 2] | 0, c[w >> 2] | 0) | 0; c[N >> 2] = ij( ((c[F >> 2] | 0) + 1024) | 0, c[F >> 2] | 0, c[w >> 2] | 0 ) | 0; if ( (c[M >> 2] | 0) >>> 0 > (((c[L >> 2] | 0) + (c[N >> 2] | 0)) | 0) >>> 0 ? (((c[L >> 2] | 0) + 12) | 0) >>> 0 < (c[v >> 2] | 0) >>> 0 : 0 ) break; c[r >> 2] = gj( c[G >> 2] | 0, c[I >> 2] | 0, c[H >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[y >> 2] | 0, c[B >> 2] | 0, c[E >> 2] | 0 ) | 0; O = c[r >> 2] | 0; l = q; return O | 0; } } while (0); if ( (((c[L >> 2] | 0) + 12) | 0) >>> 0 >= (c[v >> 2] | 0) >>> 0 ) { c[r >> 2] = 0; O = c[r >> 2] | 0; l = q; return O | 0; } c[I >> 2] = (c[I >> 2] | 0) + (c[L >> 2] | 0); if (c[C >> 2] | 0) c[c[C >> 2] >> 2] = 0; if (c[B >> 2] | 0) mE(c[B >> 2] | 0, ((c[F >> 2] | 0) + 1024) | 0, 1024) | 0; c[r >> 2] = gj( c[G >> 2] | 0, c[I >> 2] | 0, c[H >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[y >> 2] | 0, ((c[F >> 2] | 0) + 1024) | 0, c[E >> 2] | 0 ) | 0; O = c[r >> 2] | 0; l = q; return O | 0; } function gj(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; j = l; l = (l + 48) | 0; k = (j + 36) | 0; m = (j + 32) | 0; n = (j + 28) | 0; o = (j + 24) | 0; p = (j + 20) | 0; q = (j + 16) | 0; r = (j + 12) | 0; s = (j + 8) | 0; t = (j + 4) | 0; u = j; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; i = c[n >> 2] | 0; h = ((c[o >> 2] | 0) - (c[n >> 2] | 0)) | 0; o = c[p >> 2] | 0; p = c[q >> 2] | 0; g = c[s >> 2] | 0; s = c[t >> 2] | 0; if (c[r >> 2] | 0) v = Oi(i, h, o, p, g, s) | 0; else v = cj(i, h, o, p, g, s) | 0; c[u >> 2] = v; v = (Hi(c[u >> 2] | 0) | 0) != 0; s = c[u >> 2] | 0; if (v) { c[k >> 2] = s; w = c[k >> 2] | 0; l = j; return w | 0; } if (!s) { c[k >> 2] = 0; w = c[k >> 2] | 0; l = j; return w | 0; } c[n >> 2] = (c[n >> 2] | 0) + (c[u >> 2] | 0); if ( (((c[n >> 2] | 0) - (c[m >> 2] | 0)) | 0) >>> 0 >= (((c[q >> 2] | 0) - 1) | 0) >>> 0 ) { c[k >> 2] = 0; w = c[k >> 2] | 0; l = j; return w | 0; } else { c[k >> 2] = (c[n >> 2] | 0) - (c[m >> 2] | 0); w = c[k >> 2] | 0; l = j; return w | 0; } return 0; } function hj(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = e; c[j >> 2] = 0; c[k >> 2] = 0; while (1) { if ((c[k >> 2] | 0) > (c[i >> 2] | 0)) break; c[j >> 2] = c[j >> 2] | (c[((c[h >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0 ? (d[((c[g >> 2] | 0) + (c[k >> 2] << 2) + 2) >> 0] | 0 | 0) == 0 : 0); c[k >> 2] = (c[k >> 2] | 0) + 1; } l = f; return ((((c[j >> 2] | 0) != 0) ^ 1) & 1) | 0; } function ij(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = e; c[j >> 2] = 0; c[k >> 2] = 0; while (1) { if ((c[k >> 2] | 0) > (c[i >> 2] | 0)) break; e = N( d[((c[g >> 2] | 0) + (c[k >> 2] << 2) + 2) >> 0] | 0, c[((c[h >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0 ) | 0; c[j >> 2] = (c[j >> 2] | 0) + e; c[k >> 2] = (c[k >> 2] | 0) + 1; } l = f; return ((c[j >> 2] | 0) >>> 3) | 0; } function jj(a, b, d, e, f, g, h, i, j, k, m, n) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; var o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; o = l; l = (l + 48) | 0; p = (o + 44) | 0; q = (o + 40) | 0; r = (o + 36) | 0; s = (o + 32) | 0; t = (o + 28) | 0; u = (o + 24) | 0; v = (o + 20) | 0; w = (o + 16) | 0; x = (o + 12) | 0; y = (o + 8) | 0; z = (o + 4) | 0; A = o; c[p >> 2] = a; c[q >> 2] = b; c[r >> 2] = d; c[s >> 2] = e; c[t >> 2] = f; c[u >> 2] = g; c[v >> 2] = h; c[w >> 2] = i; c[x >> 2] = j; c[y >> 2] = k; c[z >> 2] = m; c[A >> 2] = n; n = fj( c[p >> 2] | 0, c[q >> 2] | 0, c[r >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0, c[u >> 2] | 0, 1, c[v >> 2] | 0, c[w >> 2] | 0, c[x >> 2] | 0, c[y >> 2] | 0, c[z >> 2] | 0, c[A >> 2] | 0 ) | 0; l = o; return n | 0; } function kj(a, b, d, e, f, g, h, i, j, k, m, n) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; var o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; o = l; l = (l + 48) | 0; p = (o + 44) | 0; q = (o + 40) | 0; r = (o + 36) | 0; s = (o + 32) | 0; t = (o + 28) | 0; u = (o + 24) | 0; v = (o + 20) | 0; w = (o + 16) | 0; x = (o + 12) | 0; y = (o + 8) | 0; z = (o + 4) | 0; A = o; c[p >> 2] = a; c[q >> 2] = b; c[r >> 2] = d; c[s >> 2] = e; c[t >> 2] = f; c[u >> 2] = g; c[v >> 2] = h; c[w >> 2] = i; c[x >> 2] = j; c[y >> 2] = k; c[z >> 2] = m; c[A >> 2] = n; n = fj( c[p >> 2] | 0, c[q >> 2] | 0, c[r >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0, c[u >> 2] | 0, 0, c[v >> 2] | 0, c[w >> 2] | 0, c[x >> 2] | 0, c[y >> 2] | 0, c[z >> 2] | 0, c[A >> 2] | 0 ) | 0; l = o; return n | 0; } function lj(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = ((c[d >> 2] | 0) + ((c[d >> 2] | 0) >>> 8)) | 0; if ((c[d >> 2] | 0) >>> 0 >= 131072) { e = 0; f = (a + e) | 0; l = b; return f | 0; } e = ((131072 - (c[d >> 2] | 0)) | 0) >>> 11; f = (a + e) | 0; l = b; return f | 0; } function mj() { var a = 0, b = 0, d = 0; a = l; l = (l + 16) | 0; b = a; c[b >> 2] = c[5406]; c[(b + 4) >> 2] = c[5407]; c[(b + 8) >> 2] = c[5408]; d = nj(b) | 0; l = a; return d | 0; } function nj(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = l; l = (l + 48) | 0; d = (b + 24) | 0; e = (b + 20) | 0; f = (b + 16) | 0; g = b; if ( (((((c[a >> 2] | 0) != 0) ^ 1) & 1) ^ ((((c[(a + 4) >> 2] | 0) != 0) ^ 1) & 1)) | 0 ) { c[e >> 2] = 0; h = c[e >> 2] | 0; l = b; return h | 0; } c[d >> 2] = c[a >> 2]; c[(d + 4) >> 2] = c[(a + 4) >> 2]; c[(d + 8) >> 2] = c[(a + 8) >> 2]; c[f >> 2] = Sh(656, d) | 0; if (c[f >> 2] | 0) { i = ((c[f >> 2] | 0) + 352) | 0; c[i >> 2] = c[a >> 2]; c[(i + 4) >> 2] = c[(a + 4) >> 2]; c[(i + 8) >> 2] = c[(a + 8) >> 2]; c[((c[f >> 2] | 0) + 12 + 44) >> 2] = 3; c[((c[f >> 2] | 0) + 12 + 32) >> 2] = 1; oj(g); c[d >> 2] = c[g >> 2]; c[(d + 4) >> 2] = c[(g + 4) >> 2]; c[(d + 8) >> 2] = c[(g + 8) >> 2]; c[(d + 12) >> 2] = c[(g + 12) >> 2]; g = pj(d) | 0; c[((c[f >> 2] | 0) + 8) >> 2] = g; c[e >> 2] = c[f >> 2]; h = c[e >> 2] | 0; l = b; return h | 0; } else { c[e >> 2] = 0; h = c[e >> 2] | 0; l = b; return h | 0; } return 0; } function oj(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0; b = l; l = (l + 32) | 0; d = (b + 28) | 0; e = (b + 24) | 0; f = (b + 20) | 0; g = (b + 16) | 0; h = b; c[d >> 2] = 0; c[e >> 2] = 0; c[f >> 2] = 0; c[g >> 2] = 0; c[h >> 2] = c[d >> 2]; c[(h + 4) >> 2] = c[e >> 2]; c[(h + 8) >> 2] = c[f >> 2]; c[(h + 12) >> 2] = c[g >> 2]; c[a >> 2] = c[h >> 2]; c[(a + 4) >> 2] = c[(h + 4) >> 2]; c[(a + 8) >> 2] = c[(h + 8) >> 2]; c[(a + 12) >> 2] = c[(h + 12) >> 2]; l = b; return; } function pj(a) { a = a | 0; return (((c[(a + 8) >> 2] & 256) | 0) != 0) | 0; } function qj(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0; b = l; l = (l + 32) | 0; d = (b + 8) | 0; e = (b + 4) | 0; f = b; c[f >> 2] = a; if (!(c[f >> 2] | 0)) { c[e >> 2] = 0; g = c[e >> 2] | 0; l = b; return g | 0; } if (c[((c[f >> 2] | 0) + 364) >> 2] | 0) { c[e >> 2] = -64; g = c[e >> 2] | 0; l = b; return g | 0; } else { a = c[((c[f >> 2] | 0) + 224) >> 2] | 0; h = ((c[f >> 2] | 0) + 352) | 0; c[d >> 2] = c[h >> 2]; c[(d + 4) >> 2] = c[(h + 4) >> 2]; c[(d + 8) >> 2] = c[(h + 8) >> 2]; Th(a, d); c[((c[f >> 2] | 0) + 224) >> 2] = 0; rj(c[((c[f >> 2] | 0) + 636) >> 2] | 0) | 0; c[((c[f >> 2] | 0) + 636) >> 2] = 0; a = c[f >> 2] | 0; h = ((c[f >> 2] | 0) + 352) | 0; c[d >> 2] = c[h >> 2]; c[(d + 4) >> 2] = c[(h + 4) >> 2]; c[(d + 8) >> 2] = c[(h + 8) >> 2]; Th(a, d); c[e >> 2] = 0; g = c[e >> 2] | 0; l = b; return g | 0; } return 0; } function rj(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0; b = l; l = (l + 32) | 0; d = (b + 20) | 0; e = (b + 16) | 0; f = (b + 12) | 0; g = b; c[f >> 2] = a; if (!(c[f >> 2] | 0)) { c[e >> 2] = 0; h = c[e >> 2] | 0; l = b; return h | 0; } else { a = ((c[f >> 2] | 0) + 4748) | 0; c[g >> 2] = c[a >> 2]; c[(g + 4) >> 2] = c[(a + 4) >> 2]; c[(g + 8) >> 2] = c[(a + 8) >> 2]; a = c[((c[f >> 2] | 0) + 12) >> 2] | 0; c[d >> 2] = c[g >> 2]; c[(d + 4) >> 2] = c[(g + 4) >> 2]; c[(d + 8) >> 2] = c[(g + 8) >> 2]; Th(a, d); a = c[c[f >> 2] >> 2] | 0; c[d >> 2] = c[g >> 2]; c[(d + 4) >> 2] = c[(g + 4) >> 2]; c[(d + 8) >> 2] = c[(g + 8) >> 2]; Th(a, d); a = c[f >> 2] | 0; c[d >> 2] = c[g >> 2]; c[(d + 4) >> 2] = c[(g + 4) >> 2]; c[(d + 8) >> 2] = c[(g + 8) >> 2]; Th(a, d); c[e >> 2] = 0; h = c[e >> 2] | 0; l = b; return h | 0; } return 0; } function sj(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0; g = l; l = (l + 96) | 0; h = (g + 64) | 0; i = (g + 60) | 0; j = (g + 8) | 0; k = (g + 56) | 0; m = (g + 52) | 0; n = g; o = (g + 48) | 0; p = (g + 44) | 0; q = (g + 16) | 0; c[i >> 2] = b; b = j; c[b >> 2] = d; c[(b + 4) >> 2] = e; c[k >> 2] = f; f = j; c[m >> 2] = ((c[f >> 2] | 0) != 0) | ((c[(f + 4) >> 2] | 0) != 0) ? 0 : 500; f = j; e = dE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, c[k >> 2] | 0, 0) | 0; if (((e | 0) != 0) | ((y | 0) != 0)) { e = j; f = dE(c[e >> 2] | 0, c[(e + 4) >> 2] | 0, c[k >> 2] | 0, 0) | 0; e = dE(f | 0, y | 0, c[m >> 2] | 0, 0) | 0; r = e; s = y; } else { r = -1; s = -1; } e = n; c[e >> 2] = r; c[(e + 4) >> 2] = s; s = n; e = c[(s + 4) >> 2] | 0; r = n; m = c[(r + 4) >> 2] | 0; f = n; n = c[(f + 4) >> 2] | 0; c[o >> 2] = (((e >>> 0 < 0) | (((e | 0) == 0) & ((c[s >> 2] | 0) >>> 0 <= 262144))) & 1) + (((m >>> 0 < 0) | (((m | 0) == 0) & ((c[r >> 2] | 0) >>> 0 <= 131072))) & 1) + (((n >>> 0 < 0) | (((n | 0) == 0) & ((c[f >> 2] | 0) >>> 0 <= 16384))) & 1); f = c[i >> 2] | 0; c[p >> 2] = f; n = (c[i >> 2] | 0) == 0 ? 3 : f; c[p >> 2] = n; f = (c[i >> 2] | 0) < 0 ? 0 : n; c[p >> 2] = f; c[p >> 2] = (c[i >> 2] | 0) > 22 ? 22 : f; f = (224 + (((c[o >> 2] | 0) * 644) | 0) + (((c[p >> 2] | 0) * 28) | 0)) | 0; c[q >> 2] = c[f >> 2]; c[(q + 4) >> 2] = c[(f + 4) >> 2]; c[(q + 8) >> 2] = c[(f + 8) >> 2]; c[(q + 12) >> 2] = c[(f + 12) >> 2]; c[(q + 16) >> 2] = c[(f + 16) >> 2]; c[(q + 20) >> 2] = c[(f + 20) >> 2]; c[(q + 24) >> 2] = c[(f + 24) >> 2]; if ((c[i >> 2] | 0) >= 0) { t = j; u = t; v = c[u >> 2] | 0; w = (t + 4) | 0; x = w; z = c[x >> 2] | 0; A = c[k >> 2] | 0; c[h >> 2] = c[q >> 2]; c[(h + 4) >> 2] = c[(q + 4) >> 2]; c[(h + 8) >> 2] = c[(q + 8) >> 2]; c[(h + 12) >> 2] = c[(q + 12) >> 2]; c[(h + 16) >> 2] = c[(q + 16) >> 2]; c[(h + 20) >> 2] = c[(q + 20) >> 2]; c[(h + 24) >> 2] = c[(q + 24) >> 2]; tj(a, h, v, z, A); l = g; return; } c[(q + 20) >> 2] = 0 - (c[i >> 2] | 0); t = j; u = t; v = c[u >> 2] | 0; w = (t + 4) | 0; x = w; z = c[x >> 2] | 0; A = c[k >> 2] | 0; c[h >> 2] = c[q >> 2]; c[(h + 4) >> 2] = c[(q + 4) >> 2]; c[(h + 8) >> 2] = c[(q + 8) >> 2]; c[(h + 12) >> 2] = c[(q + 12) >> 2]; c[(h + 16) >> 2] = c[(q + 16) >> 2]; c[(h + 20) >> 2] = c[(q + 20) >> 2]; c[(h + 24) >> 2] = c[(q + 24) >> 2]; tj(a, h, v, z, A); l = g; return; } function tj(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 32) | 0; h = g; i = (g + 20) | 0; j = (g + 16) | 0; k = (g + 12) | 0; m = (g + 8) | 0; n = h; c[n >> 2] = d; c[(n + 4) >> 2] = e; c[i >> 2] = f; if ( c[i >> 2] | 0 ? ((f = h), (e = dE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 1, 0) | 0), (f = y), (f >>> 0 < 0) | (((f | 0) == 0) & (e >>> 0 < 2))) : 0 ) { e = h; c[e >> 2] = 513; c[(e + 4) >> 2] = 0; } else o = 4; if ( (o | 0) == 4 ? ((o = h), ((c[o >> 2] | 0) == 0) & ((c[(o + 4) >> 2] | 0) == 0)) : 0 ) { o = h; c[o >> 2] = -1; c[(o + 4) >> 2] = -1; } o = h; e = c[(o + 4) >> 2] | 0; if ( (e >>> 0 < 0) | (((e | 0) == 0) & ((c[o >> 2] | 0) >>> 0 < 536870912)) ? (0 < 0) | ((0 == 0) & ((c[i >> 2] | 0) >>> 0 < 536870912)) : 0 ) { o = h; h = dE(c[o >> 2] | 0, c[(o + 4) >> 2] | 0, c[i >> 2] | 0, 0) | 0; c[j >> 2] = h; if ((c[j >> 2] | 0) >>> 0 < 64) p = 6; else p = ((uj(((c[j >> 2] | 0) - 1) | 0) | 0) + 1) | 0; c[k >> 2] = p; if ((c[b >> 2] | 0) >>> 0 > (c[k >> 2] | 0) >>> 0) c[b >> 2] = c[k >> 2]; } if ((c[(b + 8) >> 2] | 0) >>> 0 > (c[b >> 2] | 0) >>> 0) c[(b + 8) >> 2] = c[b >> 2]; c[m >> 2] = vj(c[(b + 4) >> 2] | 0, c[(b + 24) >> 2] | 0) | 0; if ((c[m >> 2] | 0) >>> 0 > (c[b >> 2] | 0) >>> 0) { k = (b + 4) | 0; c[k >> 2] = (c[k >> 2] | 0) - ((c[m >> 2] | 0) - (c[b >> 2] | 0)); } if ((c[b >> 2] | 0) >>> 0 >= 10) { c[a >> 2] = c[b >> 2]; c[(a + 4) >> 2] = c[(b + 4) >> 2]; c[(a + 8) >> 2] = c[(b + 8) >> 2]; c[(a + 12) >> 2] = c[(b + 12) >> 2]; c[(a + 16) >> 2] = c[(b + 16) >> 2]; c[(a + 20) >> 2] = c[(b + 20) >> 2]; c[(a + 24) >> 2] = c[(b + 24) >> 2]; l = g; return; } c[b >> 2] = 10; c[a >> 2] = c[b >> 2]; c[(a + 4) >> 2] = c[(b + 4) >> 2]; c[(a + 8) >> 2] = c[(b + 8) >> 2]; c[(a + 12) >> 2] = c[(b + 12) >> 2]; c[(a + 16) >> 2] = c[(b + 16) >> 2]; c[(a + 20) >> 2] = c[(b + 20) >> 2]; c[(a + 24) >> 2] = c[(b + 24) >> 2]; l = g; return; } function uj(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function vj(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = ((c[f >> 2] | 0) >>> 0 >= 6) & 1; l = d; return ((c[e >> 2] | 0) - (c[g >> 2] | 0)) | 0; } function wj(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[d >> 2] | 0) >>> 0 > 4294967176) | 0; } function xj(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = (e + 8) | 0; i = (e + 4) | 0; j = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; a: do { switch (c[h >> 2] | 0) { case 10: { if ((c[i >> 2] | 0) >>> 0 > 1) { c[f >> 2] = -40; break a; } else { c[c[g >> 2] >> 2] = c[i >> 2]; c[f >> 2] = c[c[g >> 2] >> 2]; break a; } break; } case 100: { c[j >> 2] = c[i >> 2]; if ((c[j >> 2] | 0) > (yj() | 0)) c[j >> 2] = yj() | 0; if (c[j >> 2] | 0) { c[((c[g >> 2] | 0) + 48) >> 2] = ((c[j >> 2] | 0) < 0) & 1; c[((c[g >> 2] | 0) + 44) >> 2] = c[j >> 2]; } if ((c[((c[g >> 2] | 0) + 44) >> 2] | 0) >= 0) { c[f >> 2] = c[((c[g >> 2] | 0) + 44) >> 2]; break a; } else { c[f >> 2] = 0; break a; } break; } case 101: { if ( (c[i >> 2] | 0) >>> 0 > 0 ? ((c[i >> 2] | 0) >>> 0 < 10) | ((c[i >> 2] | 0) >>> 0 > 30) | 0 : 0 ) { c[f >> 2] = -42; break a; } c[((c[g >> 2] | 0) + 4) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 4) >> 2]; break; } case 102: { if ( (c[i >> 2] | 0) >>> 0 > 0 ? ((c[i >> 2] | 0) >>> 0 < 6) | ((c[i >> 2] | 0) >>> 0 > 30) | 0 : 0 ) { c[f >> 2] = -42; break a; } c[((c[g >> 2] | 0) + 4 + 8) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 4 + 8) >> 2]; break; } case 103: { if ( (c[i >> 2] | 0) >>> 0 > 0 ? ((c[i >> 2] | 0) >>> 0 < 6) | ((c[i >> 2] | 0) >>> 0 > 29) | 0 : 0 ) { c[f >> 2] = -42; break a; } c[((c[g >> 2] | 0) + 4 + 4) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 4 + 4) >> 2]; break; } case 104: { if ( (c[i >> 2] | 0) >>> 0 > 0 ? ((c[i >> 2] | 0) >>> 0 < 1) | ((c[i >> 2] | 0) >>> 0 > 29) | 0 : 0 ) { c[f >> 2] = -42; break a; } c[((c[g >> 2] | 0) + 4 + 12) >> 2] = c[i >> 2]; c[f >> 2] = c[i >> 2]; break; } case 105: { if ( (c[i >> 2] | 0) >>> 0 > 0 ? ((c[i >> 2] | 0) >>> 0 < 3) | ((c[i >> 2] | 0) >>> 0 > 7) | 0 : 0 ) { c[f >> 2] = -42; break a; } c[((c[g >> 2] | 0) + 4 + 16) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 4 + 16) >> 2]; break; } case 106: { c[((c[g >> 2] | 0) + 4 + 20) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 4 + 20) >> 2]; break; } case 107: { if ( (c[i >> 2] | 0) >>> 0 > 0 ? ((c[i >> 2] | 0) >>> 0 < 1) | ((c[i >> 2] | 0) >>> 0 > 8) | 0 : 0 ) { c[f >> 2] = -42; break a; } c[((c[g >> 2] | 0) + 4 + 24) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 4 + 24) >> 2]; break; } case 1e3: { c[((c[g >> 2] | 0) + 48) >> 2] = (((c[i >> 2] | 0) != 0) ^ 1) & 1; c[f >> 2] = (((c[((c[g >> 2] | 0) + 48) >> 2] | 0) != 0) ^ 1) & 1; break; } case 200: { c[((c[g >> 2] | 0) + 32) >> 2] = ((c[i >> 2] | 0) >>> 0 > 0) & 1; c[f >> 2] = c[((c[g >> 2] | 0) + 32) >> 2]; break; } case 201: { c[((c[g >> 2] | 0) + 32 + 4) >> 2] = ((c[i >> 2] | 0) >>> 0 > 0) & 1; c[f >> 2] = c[((c[g >> 2] | 0) + 32 + 4) >> 2]; break; } case 202: { c[((c[g >> 2] | 0) + 32 + 8) >> 2] = (((c[i >> 2] | 0) != 0) ^ 1) & 1; c[f >> 2] = (((c[((c[g >> 2] | 0) + 32 + 8) >> 2] | 0) != 0) ^ 1) & 1; break; } case 1100: { c[((c[g >> 2] | 0) + 52) >> 2] = ((c[i >> 2] | 0) >>> 0 > 0) & 1; c[f >> 2] = c[((c[g >> 2] | 0) + 52) >> 2]; break; } case 400: { if ((c[i >> 2] | 0) >>> 0 > 0) { c[f >> 2] = -40; break a; } else { c[f >> 2] = 0; break a; } break; } case 401: { c[f >> 2] = -40; break; } case 402: { c[f >> 2] = -40; break; } case 160: { c[((c[g >> 2] | 0) + 68) >> 2] = ((c[i >> 2] | 0) >>> 0 > 0) & 1; c[f >> 2] = c[((c[g >> 2] | 0) + 68) >> 2]; break; } case 161: { if ( (c[i >> 2] | 0) >>> 0 > 0 ? ((c[i >> 2] | 0) >>> 0 < 6) | ((c[i >> 2] | 0) >>> 0 > 30) | 0 : 0 ) { c[f >> 2] = -42; break a; } c[((c[g >> 2] | 0) + 68 + 4) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 68 + 4) >> 2]; break; } case 162: { if ( (c[i >> 2] | 0) >>> 0 > 0 ? ((c[i >> 2] | 0) >>> 0 < 4) | ((c[i >> 2] | 0) >>> 0 > 4096) | 0 : 0 ) { c[f >> 2] = -42; break a; } c[((c[g >> 2] | 0) + 68 + 12) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 68 + 12) >> 2]; break; } case 163: { if ((c[i >> 2] | 0) >>> 0 > 8) { c[f >> 2] = -42; break a; } else { c[((c[g >> 2] | 0) + 68 + 8) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 68 + 8) >> 2]; break a; } break; } case 164: { if ((c[i >> 2] | 0) >>> 0 > 24) { c[f >> 2] = -42; break a; } else { c[((c[g >> 2] | 0) + 68 + 16) >> 2] = c[i >> 2]; c[f >> 2] = c[((c[g >> 2] | 0) + 68 + 16) >> 2]; break a; } break; } default: c[f >> 2] = -40; } } while (0); l = e; return c[f >> 2] | 0; } function yj() { return 22; } function zj(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; h = l; l = (l + 64) | 0; i = (h + 32) | 0; j = (h + 28) | 0; k = (h + 24) | 0; m = (h + 20) | 0; n = (h + 16) | 0; o = (h + 12) | 0; p = (h + 8) | 0; q = (h + 4) | 0; r = h; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = d; c[o >> 2] = e; if ( (((((c[g >> 2] | 0) != 0) ^ 1) & 1) ^ ((((c[(g + 4) >> 2] | 0) != 0) ^ 1) & 1)) | 0 ) { c[j >> 2] = 0; s = c[j >> 2] | 0; l = h; return s | 0; } c[i >> 2] = c[g >> 2]; c[(i + 4) >> 2] = c[(g + 4) >> 2]; c[(i + 8) >> 2] = c[(g + 8) >> 2]; c[p >> 2] = Rh(4764, i) | 0; c[q >> 2] = 6144 + (Aj(f, 0) | 0); e = c[q >> 2] | 0; c[i >> 2] = c[g >> 2]; c[(i + 4) >> 2] = c[(g + 4) >> 2]; c[(i + 8) >> 2] = c[(g + 8) >> 2]; c[r >> 2] = Rh(e, i) | 0; e = c[p >> 2] | 0; if (!(((c[p >> 2] | 0) != 0) & ((c[r >> 2] | 0) != 0))) { c[i >> 2] = c[g >> 2]; c[(i + 4) >> 2] = c[(g + 4) >> 2]; c[(i + 8) >> 2] = c[(g + 8) >> 2]; Th(e, i); d = c[r >> 2] | 0; c[i >> 2] = c[g >> 2]; c[(i + 4) >> 2] = c[(g + 4) >> 2]; c[(i + 8) >> 2] = c[(g + 8) >> 2]; Th(d, i); c[j >> 2] = 0; s = c[j >> 2] | 0; l = h; return s | 0; } d = (e + 4748) | 0; c[d >> 2] = c[g >> 2]; c[(d + 4) >> 2] = c[(g + 4) >> 2]; c[(d + 8) >> 2] = c[(g + 8) >> 2]; c[((c[p >> 2] | 0) + 12) >> 2] = c[r >> 2]; c[((c[p >> 2] | 0) + 16) >> 2] = c[q >> 2]; q = c[p >> 2] | 0; r = c[k >> 2] | 0; k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; c[i >> 2] = c[f >> 2]; c[(i + 4) >> 2] = c[(f + 4) >> 2]; c[(i + 8) >> 2] = c[(f + 8) >> 2]; c[(i + 12) >> 2] = c[(f + 12) >> 2]; c[(i + 16) >> 2] = c[(f + 16) >> 2]; c[(i + 20) >> 2] = c[(f + 20) >> 2]; c[(i + 24) >> 2] = c[(f + 24) >> 2]; f = (Ph(Bj(q, r, k, m, n, i) | 0) | 0) != 0; i = c[p >> 2] | 0; if (f) { rj(i) | 0; c[j >> 2] = 0; s = c[j >> 2] | 0; l = h; return s | 0; } else { c[j >> 2] = i; s = c[j >> 2] | 0; l = h; return s | 0; } return 0; } function Aj(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; d = l; l = (l + 48) | 0; e = (d + 32) | 0; f = (d + 28) | 0; g = (d + 24) | 0; h = (d + 20) | 0; i = (d + 16) | 0; j = (d + 12) | 0; k = (d + 8) | 0; m = (d + 4) | 0; n = d; c[e >> 2] = a; c[f >> 2] = b; if ((c[((c[e >> 2] | 0) + 24) >> 2] | 0) == 1) o = 0; else o = 1 << c[((c[e >> 2] | 0) + 4) >> 2]; c[g >> 2] = o; c[h >> 2] = 1 << c[((c[e >> 2] | 0) + 8) >> 2]; if ( c[f >> 2] | 0 ? (c[((c[e >> 2] | 0) + 16) >> 2] | 0) == 3 : 0 ) { if (17 < (c[c[e >> 2] >> 2] | 0) >>> 0) p = 17; else p = c[c[e >> 2] >> 2] | 0; } else p = 0; c[i >> 2] = p; c[j >> 2] = 1 << c[i >> 2]; c[k >> 2] = ((c[g >> 2] | 0) + (c[h >> 2] | 0) + (c[j >> 2] | 0)) << 2; c[m >> 2] = 149e3; if (c[f >> 2] | 0) { if ((c[((c[e >> 2] | 0) + 24) >> 2] | 0) == 7) q = 1; else q = (c[((c[e >> 2] | 0) + 24) >> 2] | 0) == 8; } else q = 0; c[n >> 2] = q ? 149e3 : 0; l = d; return ((c[k >> 2] | 0) + (c[n >> 2] | 0)) | 0; } function Bj(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; h = l; l = (l + 160) | 0; i = (h + 144) | 0; j = (h + 140) | 0; k = (h + 136) | 0; m = (h + 132) | 0; n = (h + 128) | 0; o = (h + 124) | 0; p = (h + 120) | 0; q = (h + 116) | 0; r = (h + 112) | 0; s = (h + 8) | 0; t = h; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = d; c[o >> 2] = e; c[p >> 2] = f; f = ((c[k >> 2] | 0) + 4720) | 0; c[f >> 2] = c[g >> 2]; c[(f + 4) >> 2] = c[(g + 4) >> 2]; c[(f + 8) >> 2] = c[(g + 8) >> 2]; c[(f + 12) >> 2] = c[(g + 12) >> 2]; c[(f + 16) >> 2] = c[(g + 16) >> 2]; c[(f + 20) >> 2] = c[(g + 20) >> 2]; c[(f + 24) >> 2] = c[(g + 24) >> 2]; do { if ( ((c[o >> 2] | 0) != 1) & ((c[m >> 2] | 0) != 0) & ((c[n >> 2] | 0) != 0) ) { f = c[n >> 2] | 0; e = ((c[k >> 2] | 0) + 4748) | 0; c[i >> 2] = c[e >> 2]; c[(i + 4) >> 2] = c[(e + 4) >> 2]; c[(i + 8) >> 2] = c[(e + 8) >> 2]; c[q >> 2] = Rh(f, i) | 0; c[c[k >> 2] >> 2] = c[q >> 2]; c[((c[k >> 2] | 0) + 4) >> 2] = c[q >> 2]; if (c[q >> 2] | 0) { mE(c[q >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0) | 0; break; } c[j >> 2] = -64; u = c[j >> 2] | 0; l = h; return u | 0; } else { c[c[k >> 2] >> 2] = 0; c[((c[k >> 2] | 0) + 4) >> 2] = c[m >> 2]; } } while (0); c[((c[k >> 2] | 0) + 8) >> 2] = c[n >> 2]; Cj(((c[k >> 2] | 0) + 128) | 0); c[r >> 2] = Dj( ((c[k >> 2] | 0) + 20) | 0, ((c[((c[k >> 2] | 0) + 12) >> 2] | 0) + 6144) | 0, g, 0, 0 ) | 0; r = s; n = (r + 104) | 0; do { c[r >> 2] = 0; r = (r + 4) | 0; } while ((r | 0) < (n | 0)); c[(s + 44) >> 2] = 3; c[(s + 32) >> 2] = 1; r = (s + 4) | 0; c[r >> 2] = c[g >> 2]; c[(r + 4) >> 2] = c[(g + 4) >> 2]; c[(r + 8) >> 2] = c[(g + 8) >> 2]; c[(r + 12) >> 2] = c[(g + 12) >> 2]; c[(r + 16) >> 2] = c[(g + 16) >> 2]; c[(r + 20) >> 2] = c[(g + 20) >> 2]; c[(r + 24) >> 2] = c[(g + 24) >> 2]; c[t >> 2] = Ej( ((c[k >> 2] | 0) + 128) | 0, ((c[k >> 2] | 0) + 20) | 0, s, c[((c[k >> 2] | 0) + 4) >> 2] | 0, c[((c[k >> 2] | 0) + 8) >> 2] | 0, c[p >> 2] | 0, c[((c[k >> 2] | 0) + 12) >> 2] | 0 ) | 0; p = (Ph(c[t >> 2] | 0) | 0) != 0; s = c[t >> 2] | 0; if (p) { c[j >> 2] = s; u = c[j >> 2] | 0; l = h; return u | 0; } else { c[((c[k >> 2] | 0) + 4760) >> 2] = s; c[j >> 2] = 0; u = c[j >> 2] | 0; l = h; return u | 0; } return 0; } function Cj(a) { a = a | 0; var b = 0, d = 0, e = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[d >> 2] = a; c[e >> 2] = 0; while (1) { if ((c[e >> 2] | 0) >= 3) break; c[((c[d >> 2] | 0) + 4580 + (c[e >> 2] << 2)) >> 2] = c[(11940 + (c[e >> 2] << 2)) >> 2]; c[e >> 2] = (c[e >> 2] | 0) + 1; } c[((c[d >> 2] | 0) + 4564) >> 2] = 0; c[((c[d >> 2] | 0) + 4568) >> 2] = 0; c[((c[d >> 2] | 0) + 4572) >> 2] = 0; c[((c[d >> 2] | 0) + 4576) >> 2] = 0; l = b; return; } function Dj(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0; g = l; l = (l + 48) | 0; h = (g + 36) | 0; i = (g + 32) | 0; j = (g + 28) | 0; k = (g + 24) | 0; m = (g + 20) | 0; n = (g + 16) | 0; o = (g + 12) | 0; p = (g + 8) | 0; q = (g + 4) | 0; r = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; if ((c[((c[j >> 2] | 0) + 24) >> 2] | 0) == 1) s = 0; else s = 1 << c[((c[j >> 2] | 0) + 4) >> 2]; c[n >> 2] = s; c[o >> 2] = 1 << c[((c[j >> 2] | 0) + 8) >> 2]; if ( c[m >> 2] | 0 ? (c[((c[j >> 2] | 0) + 16) >> 2] | 0) == 3 : 0 ) { if (17 < (c[c[j >> 2] >> 2] | 0) >>> 0) t = 17; else t = c[c[j >> 2] >> 2] | 0; } else t = 0; c[p >> 2] = t; c[q >> 2] = 1 << c[p >> 2]; c[r >> 2] = ((c[n >> 2] | 0) + (c[o >> 2] | 0) + (c[q >> 2] | 0)) << 2; c[((c[h >> 2] | 0) + 32) >> 2] = c[p >> 2]; p = c[h >> 2] | 0; c[p >> 2] = 0; c[(p + 4) >> 2] = 0; c[(p + 8) >> 2] = 0; c[(p + 12) >> 2] = 0; c[(p + 16) >> 2] = 0; hl(c[h >> 2] | 0); if ( c[m >> 2] | 0 ? ((c[((c[j >> 2] | 0) + 24) >> 2] | 0) == 7 ? 1 : (c[((c[j >> 2] | 0) + 24) >> 2] | 0) == 8) | 0 : 0 ) { c[((c[h >> 2] | 0) + 48) >> 2] = c[i >> 2]; c[((c[h >> 2] | 0) + 48 + 4) >> 2] = (c[((c[h >> 2] | 0) + 48) >> 2] | 0) + 1024; c[((c[h >> 2] | 0) + 48 + 8) >> 2] = (c[((c[h >> 2] | 0) + 48 + 4) >> 2] | 0) + 144; c[((c[h >> 2] | 0) + 48 + 12) >> 2] = (c[((c[h >> 2] | 0) + 48 + 8) >> 2] | 0) + 212; c[i >> 2] = (c[((c[h >> 2] | 0) + 48 + 12) >> 2] | 0) + 128; c[((c[h >> 2] | 0) + 48 + 16) >> 2] = c[i >> 2]; c[i >> 2] = (c[((c[h >> 2] | 0) + 48 + 16) >> 2] | 0) + 32768 + 8; c[((c[h >> 2] | 0) + 48 + 20) >> 2] = c[i >> 2]; c[i >> 2] = (c[((c[h >> 2] | 0) + 48 + 20) >> 2] | 0) + 114688 + 28; } if ((c[k >> 2] | 0) == 1) { u = c[i >> 2] | 0; v = c[h >> 2] | 0; w = (v + 36) | 0; c[w >> 2] = u; x = c[h >> 2] | 0; y = (x + 36) | 0; z = c[y >> 2] | 0; A = c[o >> 2] | 0; B = (z + (A << 2)) | 0; C = c[h >> 2] | 0; D = (C + 44) | 0; c[D >> 2] = B; E = c[h >> 2] | 0; F = (E + 44) | 0; G = c[F >> 2] | 0; H = c[n >> 2] | 0; I = (G + (H << 2)) | 0; J = c[h >> 2] | 0; K = (J + 40) | 0; c[K >> 2] = I; L = c[h >> 2] | 0; M = (L + 40) | 0; N = c[M >> 2] | 0; O = c[q >> 2] | 0; P = (N + (O << 2)) | 0; c[i >> 2] = P; Q = c[i >> 2] | 0; l = g; return Q | 0; } oE(c[i >> 2] | 0, 0, c[r >> 2] | 0) | 0; u = c[i >> 2] | 0; v = c[h >> 2] | 0; w = (v + 36) | 0; c[w >> 2] = u; x = c[h >> 2] | 0; y = (x + 36) | 0; z = c[y >> 2] | 0; A = c[o >> 2] | 0; B = (z + (A << 2)) | 0; C = c[h >> 2] | 0; D = (C + 44) | 0; c[D >> 2] = B; E = c[h >> 2] | 0; F = (E + 44) | 0; G = c[F >> 2] | 0; H = c[n >> 2] | 0; I = (G + (H << 2)) | 0; J = c[h >> 2] | 0; K = (J + 40) | 0; c[K >> 2] = I; L = c[h >> 2] | 0; M = (L + 40) | 0; N = c[M >> 2] | 0; O = c[q >> 2] | 0; P = (N + (O << 2)) | 0; c[i >> 2] = P; Q = c[i >> 2] | 0; l = g; return Q | 0; } function Ej(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; i = l; l = (l + 32) | 0; j = (i + 28) | 0; k = (i + 24) | 0; m = (i + 20) | 0; n = (i + 16) | 0; o = (i + 12) | 0; p = (i + 8) | 0; q = (i + 4) | 0; r = i; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = d; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; if (((c[o >> 2] | 0) == 0) | ((c[p >> 2] | 0) >>> 0 <= 8)) { c[j >> 2] = 0; s = c[j >> 2] | 0; l = i; return s | 0; } Cj(c[k >> 2] | 0); if ((c[q >> 2] | 0) == 1) { c[j >> 2] = Fj( c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; s = c[j >> 2] | 0; l = i; return s | 0; } if ((Gj(c[o >> 2] | 0) | 0) != -332356553) { if (!(c[q >> 2] | 0)) { c[j >> 2] = Fj( c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; s = c[j >> 2] | 0; l = i; return s | 0; } if ((c[q >> 2] | 0) == 2) { c[j >> 2] = -32; s = c[j >> 2] | 0; l = i; return s | 0; } } c[j >> 2] = Hj( c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[r >> 2] | 0 ) | 0; s = c[j >> 2] | 0; l = i; return s | 0; } function Fj(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = c[j >> 2]; c[n >> 2] = (c[m >> 2] | 0) + (c[k >> 2] | 0); c[o >> 2] = (c[i >> 2] | 0) + 4; Mj(c[h >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0) | 0; if (c[((c[i >> 2] | 0) + 52) >> 2] | 0) p = 0; else p = ((c[n >> 2] | 0) - (c[((c[h >> 2] | 0) + 4) >> 2] | 0)) | 0; c[((c[h >> 2] | 0) + 20) >> 2] = p; if ((c[k >> 2] | 0) >>> 0 <= 8) { c[g >> 2] = 0; q = c[g >> 2] | 0; l = f; return q | 0; } switch (c[((c[i >> 2] | 0) + 4 + 24) >> 2] | 0) { case 1: { Nj(c[h >> 2] | 0, c[o >> 2] | 0, c[n >> 2] | 0); break; } case 2: { Oj(c[h >> 2] | 0, c[o >> 2] | 0, c[n >> 2] | 0); break; } case 5: case 4: case 3: { if ((c[k >> 2] | 0) >>> 0 >= 8) Pj( c[h >> 2] | 0, c[o >> 2] | 0, ((c[n >> 2] | 0) + -8) | 0 ) | 0; break; } case 8: case 7: case 6: { if ((c[k >> 2] | 0) >>> 0 >= 8) Qj( c[h >> 2] | 0, c[o >> 2] | 0, ((c[n >> 2] | 0) + -8) | 0, c[n >> 2] | 0 ); break; } default: { } } c[((c[h >> 2] | 0) + 24) >> 2] = (c[n >> 2] | 0) - (c[((c[h >> 2] | 0) + 4) >> 2] | 0); c[g >> 2] = 0; q = c[g >> 2] | 0; l = f; return q | 0; } function Gj(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (Jj() | 0) != 0; f = Kj(c[e >> 2] | 0) | 0; if (a) { c[d >> 2] = f; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = Lj(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function Hj(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0; h = l; l = (l + 384) | 0; i = (h + 380) | 0; j = (h + 376) | 0; k = (h + 372) | 0; m = (h + 368) | 0; n = (h + 364) | 0; o = (h + 360) | 0; p = (h + 356) | 0; q = (h + 352) | 0; r = (h + 348) | 0; s = (h + 192) | 0; t = (h + 344) | 0; u = (h + 340) | 0; v = (h + 336) | 0; w = (h + 332) | 0; x = (h + 328) | 0; y = (h + 324) | 0; z = (h + 320) | 0; A = (h + 80) | 0; B = (h + 316) | 0; C = (h + 312) | 0; D = (h + 308) | 0; E = (h + 304) | 0; F = (h + 300) | 0; G = h; H = (h + 296) | 0; I = (h + 292) | 0; J = (h + 288) | 0; K = (h + 284) | 0; L = (h + 280) | 0; M = (h + 276) | 0; N = (h + 272) | 0; O = (h + 268) | 0; P = (h + 264) | 0; Q = (h + 260) | 0; R = (h + 256) | 0; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = c[n >> 2]; c[r >> 2] = (c[q >> 2] | 0) + (c[o >> 2] | 0); c[t >> 2] = 31; c[q >> 2] = (c[q >> 2] | 0) + 4; if (c[((c[m >> 2] | 0) + 32 + 8) >> 2] | 0) S = 0; else S = Gj(c[q >> 2] | 0) | 0; c[u >> 2] = S; c[q >> 2] = (c[q >> 2] | 0) + 4; c[v >> 2] = 255; c[w >> 2] = Ji( c[j >> 2] | 0, v, c[q >> 2] | 0, ((c[r >> 2] | 0) - (c[q >> 2] | 0)) | 0 ) | 0; if ($g(c[w >> 2] | 0) | 0) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } if ((c[v >> 2] | 0) >>> 0 < 255) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } c[q >> 2] = (c[q >> 2] | 0) + (c[w >> 2] | 0); c[y >> 2] = ah( s, t, x, c[q >> 2] | 0, ((c[r >> 2] | 0) - (c[q >> 2] | 0)) | 0 ) | 0; if (Zg(c[y >> 2] | 0) | 0) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } if ((c[x >> 2] | 0) >>> 0 > 8) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } c[z >> 2] = Uh( ((c[j >> 2] | 0) + 1024) | 0, s, c[t >> 2] | 0, c[x >> 2] | 0, c[p >> 2] | 0, 6144 ) | 0; if (wj(c[z >> 2] | 0) | 0) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } c[q >> 2] = (c[q >> 2] | 0) + (c[y >> 2] | 0); c[B >> 2] = 52; c[D >> 2] = ah( A, B, C, c[q >> 2] | 0, ((c[r >> 2] | 0) - (c[q >> 2] | 0)) | 0 ) | 0; if (Zg(c[D >> 2] | 0) | 0) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } if ((c[C >> 2] | 0) >>> 0 > 9) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } c[E >> 2] = Ij(A, c[B >> 2] | 0, 52) | 0; if (wj(c[E >> 2] | 0) | 0) { c[i >> 2] = c[E >> 2]; T = c[i >> 2] | 0; l = h; return T | 0; } c[F >> 2] = Uh( ((c[j >> 2] | 0) + 1796) | 0, A, c[B >> 2] | 0, c[C >> 2] | 0, c[p >> 2] | 0, 6144 ) | 0; if (wj(c[F >> 2] | 0) | 0) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } c[q >> 2] = (c[q >> 2] | 0) + (c[D >> 2] | 0); c[H >> 2] = 35; c[J >> 2] = ah( G, H, I, c[q >> 2] | 0, ((c[r >> 2] | 0) - (c[q >> 2] | 0)) | 0 ) | 0; if (Zg(c[J >> 2] | 0) | 0) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } if ((c[I >> 2] | 0) >>> 0 > 9) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } c[K >> 2] = Ij(G, c[H >> 2] | 0, 35) | 0; if (wj(c[K >> 2] | 0) | 0) { c[i >> 2] = c[K >> 2]; T = c[i >> 2] | 0; l = h; return T | 0; } c[L >> 2] = Uh( ((c[j >> 2] | 0) + 3248) | 0, G, c[H >> 2] | 0, c[I >> 2] | 0, c[p >> 2] | 0, 6144 ) | 0; if (wj(c[L >> 2] | 0) | 0) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } c[q >> 2] = (c[q >> 2] | 0) + (c[J >> 2] | 0); if ( (((c[q >> 2] | 0) + 12) | 0) >>> 0 > (c[r >> 2] | 0) >>> 0 ) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } J = Gj(c[q >> 2] | 0) | 0; c[((c[j >> 2] | 0) + 4580) >> 2] = J; J = Gj(((c[q >> 2] | 0) + 4) | 0) | 0; c[((c[j >> 2] | 0) + 4580 + 4) >> 2] = J; J = Gj(((c[q >> 2] | 0) + 8) | 0) | 0; c[((c[j >> 2] | 0) + 4580 + 8) >> 2] = J; c[q >> 2] = (c[q >> 2] | 0) + 12; c[M >> 2] = (c[r >> 2] | 0) - (c[q >> 2] | 0); c[N >> 2] = 31; if ((c[M >> 2] | 0) >>> 0 <= 4294836223) { c[O >> 2] = (c[M >> 2] | 0) + 131072; c[N >> 2] = uj(c[O >> 2] | 0) | 0; } c[P >> 2] = Ij( s, c[t >> 2] | 0, (c[N >> 2] | 0) >>> 0 < 31 ? c[N >> 2] | 0 : 31 ) | 0; if (wj(c[P >> 2] | 0) | 0) { c[i >> 2] = c[P >> 2]; T = c[i >> 2] | 0; l = h; return T | 0; } c[Q >> 2] = 0; while (1) { U = c[j >> 2] | 0; if ((c[Q >> 2] | 0) >>> 0 >= 3) { V = 42; break; } if (!(c[(U + 4580 + (c[Q >> 2] << 2)) >> 2] | 0)) { V = 38; break; } if ( (c[((c[j >> 2] | 0) + 4580 + (c[Q >> 2] << 2)) >> 2] | 0) >>> 0 > (c[M >> 2] | 0) >>> 0 ) { V = 40; break; } c[Q >> 2] = (c[Q >> 2] | 0) + 1; } if ((V | 0) == 38) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } else if ((V | 0) == 40) { c[i >> 2] = -30; T = c[i >> 2] | 0; l = h; return T | 0; } else if ((V | 0) == 42) { c[(U + 4564) >> 2] = 2; c[((c[j >> 2] | 0) + 4568) >> 2] = 2; c[((c[j >> 2] | 0) + 4572) >> 2] = 2; c[((c[j >> 2] | 0) + 4576) >> 2] = 2; c[R >> 2] = Fj( c[k >> 2] | 0, c[m >> 2] | 0, c[q >> 2] | 0, c[M >> 2] | 0 ) | 0; if (wj(c[R >> 2] | 0) | 0) { c[i >> 2] = c[R >> 2]; T = c[i >> 2] | 0; l = h; return T | 0; } else { c[i >> 2] = c[u >> 2]; T = c[i >> 2] | 0; l = h; return T | 0; } } return 0; } function Ij(a, d, e) { a = a | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[h >> 2] = a; c[i >> 2] = d; c[j >> 2] = e; if ((c[i >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0) { c[g >> 2] = -30; m = c[g >> 2] | 0; l = f; return m | 0; } c[k >> 2] = 0; while (1) { if ((c[k >> 2] | 0) >>> 0 > (c[j >> 2] | 0) >>> 0) { n = 8; break; } if (!(b[((c[h >> 2] | 0) + (c[k >> 2] << 1)) >> 1] | 0)) { n = 6; break; } c[k >> 2] = (c[k >> 2] | 0) + 1; } if ((n | 0) == 6) { c[g >> 2] = -30; m = c[g >> 2] | 0; l = f; return m | 0; } else if ((n | 0) == 8) { c[g >> 2] = 0; m = c[g >> 2] | 0; l = f; return m | 0; } return 0; } function Jj() { return d[11936] | 0 | 0; } function Kj(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function Lj(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function Mj(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; e = l; l = (l + 32) | 0; f = (e + 28) | 0; g = (e + 24) | 0; h = (e + 20) | 0; i = (e + 16) | 0; j = (e + 12) | 0; k = (e + 8) | 0; m = (e + 4) | 0; n = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = 1; if ((c[g >> 2] | 0) != (c[c[f >> 2] >> 2] | 0)) { c[k >> 2] = (c[c[f >> 2] >> 2] | 0) - (c[((c[f >> 2] | 0) + 4) >> 2] | 0); c[((c[f >> 2] | 0) + 16) >> 2] = c[((c[f >> 2] | 0) + 12) >> 2]; c[((c[f >> 2] | 0) + 12) >> 2] = c[k >> 2]; c[((c[f >> 2] | 0) + 8) >> 2] = c[((c[f >> 2] | 0) + 4) >> 2]; c[((c[f >> 2] | 0) + 4) >> 2] = (c[i >> 2] | 0) + (0 - (c[k >> 2] | 0)); if ( (((c[((c[f >> 2] | 0) + 12) >> 2] | 0) - (c[((c[f >> 2] | 0) + 16) >> 2] | 0)) | 0) >>> 0 < 8 ) c[((c[f >> 2] | 0) + 16) >> 2] = c[((c[f >> 2] | 0) + 12) >> 2]; c[j >> 2] = 0; } c[c[f >> 2] >> 2] = (c[i >> 2] | 0) + (c[h >> 2] | 0); if ( !( ((c[i >> 2] | 0) >>> 0 < (((c[((c[f >> 2] | 0) + 8) >> 2] | 0) + (c[((c[f >> 2] | 0) + 12) >> 2] | 0)) | 0) >>> 0 ? (((c[i >> 2] | 0) + (c[h >> 2] | 0)) | 0) >>> 0 > (((c[((c[f >> 2] | 0) + 8) >> 2] | 0) + (c[((c[f >> 2] | 0) + 16) >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) { o = c[j >> 2] | 0; l = e; return o | 0; } c[m >> 2] = (c[i >> 2] | 0) + (c[h >> 2] | 0) - (c[((c[f >> 2] | 0) + 8) >> 2] | 0); if ((c[m >> 2] | 0) > (c[((c[f >> 2] | 0) + 12) >> 2] | 0)) p = c[((c[f >> 2] | 0) + 12) >> 2] | 0; else p = c[m >> 2] | 0; c[n >> 2] = p; c[((c[f >> 2] | 0) + 16) >> 2] = c[n >> 2]; o = c[j >> 2] | 0; l = e; return o | 0; } function Nj(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; e = l; l = (l + 64) | 0; f = (e + 48) | 0; g = (e + 44) | 0; h = (e + 40) | 0; i = (e + 36) | 0; j = (e + 32) | 0; k = (e + 28) | 0; m = (e + 24) | 0; n = (e + 20) | 0; o = (e + 16) | 0; p = (e + 8) | 0; q = (e + 4) | 0; r = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[((c[f >> 2] | 0) + 36) >> 2]; c[j >> 2] = c[((c[g >> 2] | 0) + 8) >> 2]; c[k >> 2] = c[((c[g >> 2] | 0) + 16) >> 2]; c[m >> 2] = c[((c[f >> 2] | 0) + 4) >> 2]; c[n >> 2] = (c[m >> 2] | 0) + (c[((c[f >> 2] | 0) + 24) >> 2] | 0); c[o >> 2] = (c[h >> 2] | 0) + -8; c[(e + 12) >> 2] = 3; while (1) { if ( (((c[n >> 2] | 0) + 3 + -1) | 0) >>> 0 > (c[o >> 2] | 0) >>> 0 ) break; c[p >> 2] = (c[n >> 2] | 0) - (c[m >> 2] | 0); c[q >> 2] = 0; while (1) { s = c[n >> 2] | 0; if ((c[q >> 2] | 0) >>> 0 >= 3) break; c[r >> 2] = Tk( (s + (c[q >> 2] | 0)) | 0, c[j >> 2] | 0, c[k >> 2] | 0 ) | 0; if ( !((c[q >> 2] | 0) != 0 ? (c[((c[i >> 2] | 0) + (c[r >> 2] << 2)) >> 2] | 0) != 0 : 0) ) c[((c[i >> 2] | 0) + (c[r >> 2] << 2)) >> 2] = (c[p >> 2] | 0) + (c[q >> 2] | 0); c[q >> 2] = (c[q >> 2] | 0) + 1; } c[n >> 2] = s + 3; } l = e; return; } function Oj(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0; e = l; l = (l + 64) | 0; f = (e + 60) | 0; g = (e + 56) | 0; h = (e + 52) | 0; i = (e + 48) | 0; j = (e + 44) | 0; k = (e + 40) | 0; m = (e + 36) | 0; n = (e + 32) | 0; o = (e + 28) | 0; p = (e + 24) | 0; q = (e + 20) | 0; r = (e + 12) | 0; s = (e + 8) | 0; t = (e + 4) | 0; u = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[((c[f >> 2] | 0) + 36) >> 2]; c[j >> 2] = c[((c[g >> 2] | 0) + 8) >> 2]; c[k >> 2] = c[((c[g >> 2] | 0) + 16) >> 2]; c[m >> 2] = c[((c[f >> 2] | 0) + 44) >> 2]; c[n >> 2] = c[((c[g >> 2] | 0) + 4) >> 2]; c[o >> 2] = c[((c[f >> 2] | 0) + 4) >> 2]; c[p >> 2] = (c[o >> 2] | 0) + (c[((c[f >> 2] | 0) + 24) >> 2] | 0); c[q >> 2] = (c[h >> 2] | 0) + -8; c[(e + 16) >> 2] = 3; while (1) { if ( (((c[p >> 2] | 0) + 3 + -1) | 0) >>> 0 > (c[q >> 2] | 0) >>> 0 ) break; c[r >> 2] = (c[p >> 2] | 0) - (c[o >> 2] | 0); c[s >> 2] = 0; while (1) { v = c[p >> 2] | 0; if ((c[s >> 2] | 0) >>> 0 >= 3) break; c[t >> 2] = Dk( (v + (c[s >> 2] | 0)) | 0, c[n >> 2] | 0, c[k >> 2] | 0 ) | 0; c[u >> 2] = Dk( ((c[p >> 2] | 0) + (c[s >> 2] | 0)) | 0, c[j >> 2] | 0, 8 ) | 0; if (!(c[s >> 2] | 0)) c[((c[m >> 2] | 0) + (c[t >> 2] << 2)) >> 2] = (c[r >> 2] | 0) + (c[s >> 2] | 0); if ( !((c[s >> 2] | 0) != 0 ? (c[((c[i >> 2] | 0) + (c[u >> 2] << 2)) >> 2] | 0) != 0 : 0) ) c[((c[i >> 2] | 0) + (c[u >> 2] << 2)) >> 2] = (c[r >> 2] | 0) + (c[s >> 2] | 0); c[s >> 2] = (c[s >> 2] | 0) + 1; } c[p >> 2] = v + 3; } l = e; return; } function Pj(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = mk( c[f >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0, c[((c[g >> 2] | 0) + 16) >> 2] | 0 ) | 0; l = e; return d | 0; } function Qj(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; f = l; l = (l + 64) | 0; g = (f + 48) | 0; h = (f + 44) | 0; i = (f + 40) | 0; j = (f + 36) | 0; k = (f + 32) | 0; m = (f + 28) | 0; n = (f + 24) | 0; o = (f + 20) | 0; p = (f + 16) | 0; q = (f + 12) | 0; r = (f + 8) | 0; s = (f + 4) | 0; t = f; c[q >> 2] = a; c[r >> 2] = b; c[s >> 2] = d; c[t >> 2] = e; e = c[r >> 2] | 0; d = c[s >> 2] | 0; s = c[t >> 2] | 0; t = c[((c[r >> 2] | 0) + 16) >> 2] | 0; c[g >> 2] = c[q >> 2]; c[h >> 2] = e; c[i >> 2] = d; c[j >> 2] = s; c[k >> 2] = t; c[m >> 2] = 0; c[n >> 2] = c[((c[g >> 2] | 0) + 4) >> 2]; c[o >> 2] = (c[i >> 2] | 0) - (c[n >> 2] | 0); c[p >> 2] = c[((c[g >> 2] | 0) + 24) >> 2]; while (1) { if ((c[p >> 2] | 0) >>> 0 >= (c[o >> 2] | 0) >>> 0) break; i = Rj( c[g >> 2] | 0, c[h >> 2] | 0, ((c[n >> 2] | 0) + (c[p >> 2] | 0)) | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[p >> 2] = (c[p >> 2] | 0) + i; } c[((c[g >> 2] | 0) + 24) >> 2] = c[o >> 2]; l = f; return; } function Rj(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0; i = l; l = (l + 144) | 0; j = (i + 128) | 0; k = (i + 124) | 0; m = (i + 120) | 0; n = (i + 116) | 0; o = (i + 112) | 0; p = (i + 108) | 0; q = (i + 104) | 0; r = (i + 100) | 0; s = (i + 96) | 0; t = (i + 92) | 0; u = (i + 88) | 0; v = (i + 84) | 0; w = (i + 80) | 0; x = (i + 76) | 0; y = (i + 72) | 0; z = (i + 68) | 0; A = (i + 64) | 0; B = (i + 60) | 0; C = (i + 56) | 0; D = (i + 52) | 0; E = (i + 48) | 0; F = (i + 44) | 0; G = (i + 40) | 0; H = (i + 36) | 0; I = (i + 32) | 0; J = (i + 28) | 0; K = (i + 24) | 0; L = (i + 20) | 0; M = (i + 16) | 0; N = (i + 12) | 0; O = (i + 8) | 0; P = (i + 4) | 0; Q = i; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; c[r >> 2] = c[((c[k >> 2] | 0) + 36) >> 2]; c[s >> 2] = c[((c[m >> 2] | 0) + 8) >> 2]; c[t >> 2] = Sj(c[n >> 2] | 0, c[s >> 2] | 0, c[p >> 2] | 0) | 0; c[u >> 2] = c[((c[k >> 2] | 0) + 44) >> 2]; c[v >> 2] = (c[((c[m >> 2] | 0) + 4) >> 2] | 0) - 1; c[w >> 2] = (1 << c[v >> 2]) - 1; c[x >> 2] = c[((c[r >> 2] | 0) + (c[t >> 2] << 2)) >> 2]; c[y >> 2] = 0; c[z >> 2] = 0; c[A >> 2] = c[((c[k >> 2] | 0) + 4) >> 2]; c[B >> 2] = c[((c[k >> 2] | 0) + 8) >> 2]; c[C >> 2] = c[((c[k >> 2] | 0) + 12) >> 2]; c[D >> 2] = (c[B >> 2] | 0) + (c[C >> 2] | 0); c[E >> 2] = (c[A >> 2] | 0) + (c[C >> 2] | 0); c[G >> 2] = (c[n >> 2] | 0) - (c[A >> 2] | 0); if ((c[w >> 2] | 0) >>> 0 >= (c[G >> 2] | 0) >>> 0) R = 0; else R = ((c[G >> 2] | 0) - (c[w >> 2] | 0)) | 0; c[H >> 2] = R; c[I >> 2] = (c[u >> 2] | 0) + (((c[G >> 2] & c[w >> 2]) << 1) << 2); c[J >> 2] = (c[I >> 2] | 0) + 4; c[L >> 2] = c[((c[k >> 2] | 0) + 16) >> 2]; c[M >> 2] = (c[G >> 2] | 0) + 8 + 1; c[N >> 2] = 8; c[O >> 2] = 1 << c[((c[m >> 2] | 0) + 12) >> 2]; c[((c[r >> 2] | 0) + (c[t >> 2] << 2)) >> 2] = c[G >> 2]; while (1) { t = c[O >> 2] | 0; c[O >> 2] = t + -1; if (!t) break; if ((c[x >> 2] | 0) >>> 0 <= (c[L >> 2] | 0) >>> 0) break; c[P >> 2] = (c[u >> 2] | 0) + (((c[x >> 2] & c[w >> 2]) << 1) << 2); c[Q >> 2] = (c[y >> 2] | 0) >>> 0 < (c[z >> 2] | 0) >>> 0 ? c[y >> 2] | 0 : c[z >> 2] | 0; if ( c[q >> 2] | 0 ? (((c[x >> 2] | 0) + (c[Q >> 2] | 0)) | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 : 0 ) { c[F >> 2] = (c[B >> 2] | 0) + (c[x >> 2] | 0); t = Uj( ((c[n >> 2] | 0) + (c[Q >> 2] | 0)) | 0, ((c[F >> 2] | 0) + (c[Q >> 2] | 0)) | 0, c[o >> 2] | 0, c[D >> 2] | 0, c[E >> 2] | 0 ) | 0; c[Q >> 2] = (c[Q >> 2] | 0) + t; if ( (((c[x >> 2] | 0) + (c[Q >> 2] | 0)) | 0) >>> 0 >= (c[C >> 2] | 0) >>> 0 ) c[F >> 2] = (c[A >> 2] | 0) + (c[x >> 2] | 0); } else { c[F >> 2] = (c[A >> 2] | 0) + (c[x >> 2] | 0); t = Tj( ((c[n >> 2] | 0) + (c[Q >> 2] | 0)) | 0, ((c[F >> 2] | 0) + (c[Q >> 2] | 0)) | 0, c[o >> 2] | 0 ) | 0; c[Q >> 2] = (c[Q >> 2] | 0) + t; } if ( (c[Q >> 2] | 0) >>> 0 > (c[N >> 2] | 0) >>> 0 ? ((c[N >> 2] = c[Q >> 2]), (c[Q >> 2] | 0) >>> 0 > (((c[M >> 2] | 0) - (c[x >> 2] | 0)) | 0) >>> 0) : 0 ) c[M >> 2] = (c[x >> 2] | 0) + (c[Q >> 2] | 0); if ( (((c[n >> 2] | 0) + (c[Q >> 2] | 0)) | 0) == (c[o >> 2] | 0) ) break; t = c[x >> 2] | 0; if ( (d[((c[F >> 2] | 0) + (c[Q >> 2] | 0)) >> 0] | 0 | 0) < (d[((c[n >> 2] | 0) + (c[Q >> 2] | 0)) >> 0] | 0 | 0) ) { c[c[I >> 2] >> 2] = t; c[y >> 2] = c[Q >> 2]; if ((c[x >> 2] | 0) >>> 0 <= (c[H >> 2] | 0) >>> 0) { S = 17; break; } c[I >> 2] = (c[P >> 2] | 0) + 4; c[x >> 2] = c[((c[P >> 2] | 0) + 4) >> 2]; } else { c[c[J >> 2] >> 2] = t; c[z >> 2] = c[Q >> 2]; if ((c[x >> 2] | 0) >>> 0 <= (c[H >> 2] | 0) >>> 0) { S = 20; break; } c[J >> 2] = c[P >> 2]; c[x >> 2] = c[c[P >> 2] >> 2]; } } if ((S | 0) == 17) c[I >> 2] = K; else if ((S | 0) == 20) c[J >> 2] = K; c[c[J >> 2] >> 2] = 0; c[c[I >> 2] >> 2] = 0; if ((c[N >> 2] | 0) >>> 0 > 384) { c[j >> 2] = 192 < (((c[N >> 2] | 0) - 384) | 0) >>> 0 ? 192 : ((c[N >> 2] | 0) - 384) | 0; T = c[j >> 2] | 0; l = i; return T | 0; } else { c[j >> 2] = (c[M >> 2] | 0) - ((c[G >> 2] | 0) + 8); T = c[j >> 2] | 0; l = i; return T | 0; } return 0; } function Sj(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; switch (c[i >> 2] | 0) { case 8: { c[f >> 2] = dk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 5: { c[f >> 2] = ak(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 6: { c[f >> 2] = bk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 7: { c[f >> 2] = ck(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } default: c[f >> 2] = $j(c[g >> 2] | 0, c[h >> 2] | 0) | 0; } l = e; return c[f >> 2] | 0; } function Tj(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = c[h >> 2]; c[m >> 2] = (c[j >> 2] | 0) + -3; a: do { if ((c[h >> 2] | 0) >>> 0 < (c[m >> 2] | 0) >>> 0) { e = Vj(c[i >> 2] | 0) | 0; c[n >> 2] = e ^ (Vj(c[h >> 2] | 0) | 0); if (c[n >> 2] | 0) { c[g >> 2] = Wj(c[n >> 2] | 0) | 0; p = c[g >> 2] | 0; l = f; return p | 0; } c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; while (1) { if ((c[h >> 2] | 0) >>> 0 >= (c[m >> 2] | 0) >>> 0) break a; e = Vj(c[i >> 2] | 0) | 0; c[o >> 2] = e ^ (Vj(c[h >> 2] | 0) | 0); if (c[o >> 2] | 0) break; c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } e = Wj(c[o >> 2] | 0) | 0; c[h >> 2] = (c[h >> 2] | 0) + e; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } } while (0); if ( ( Xj() | 0 ? (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -3) | 0) >>> 0 : 0 ) ? ((o = Yj(c[i >> 2] | 0) | 0), (o | 0) == (Yj(c[h >> 2] | 0) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } if ( (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -1) | 0) >>> 0 ? ((o = (Zj(c[i >> 2] | 0) | 0) & 65535), (o | 0) == (((Zj(c[h >> 2] | 0) | 0) & 65535) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 2; c[i >> 2] = (c[i >> 2] | 0) + 2; } if ( (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? (d[c[i >> 2] >> 0] | 0 | 0) == (d[c[h >> 2] >> 0] | 0 | 0) : 0 ) c[h >> 2] = (c[h >> 2] | 0) + 1; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } function Uj(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ( (((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0) >>> 0 < (c[k >> 2] | 0) >>> 0 ) q = ((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0; else q = c[k >> 2] | 0; c[o >> 2] = q; c[p >> 2] = Tj(c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0) | 0; o = c[p >> 2] | 0; if ( (((c[j >> 2] | 0) + (c[p >> 2] | 0)) | 0) != (c[m >> 2] | 0) ) { c[h >> 2] = o; r = c[h >> 2] | 0; l = g; return r | 0; } else { c[h >> 2] = o + (Tj( ((c[i >> 2] | 0) + (c[p >> 2] | 0)) | 0, c[n >> 2] | 0, c[k >> 2] | 0 ) | 0); r = c[h >> 2] | 0; l = g; return r | 0; } return 0; } function Vj(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function Wj(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (_j() | 0) != 0; f = (Xj() | 0) != 0; g = c[e >> 2] | 0; do { if (a) { if (f) { e = ob(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (fE(g | 0) | 0) >> 3; break; } } else if (f) { e = lE(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (Q(g | 0) | 0) >> 3; break; } } while (0); l = b; return c[d >> 2] | 0; } function Xj() { return 0; } function Yj(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function Zj(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function _j() { return d[11936] | 0 | 0; } function $j(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Yj(c[e >> 2] | 0) | 0; e = lk(b, c[f >> 2] | 0) | 0; l = d; return e | 0; } function ak(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ek(c[e >> 2] | 0) | 0; e = kk(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function bk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ek(c[e >> 2] | 0) | 0; e = jk(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function ck(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ek(c[e >> 2] | 0) | 0; e = ik(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function dk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = ek(c[e >> 2] | 0) | 0; e = fk(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function ek(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = (_j() | 0) != 0; f = gk(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = hk(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function fk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = cE( c[d >> 2] | 0, c[(d + 4) >> 2] | 0, -1213897629, -820265764 ) | 0; d = iE(f | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return d | 0; } function gk(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; e = a; f = (a + 4) | 0; y = d[f >> 0] | (d[(f + 1) >> 0] << 8) | (d[(f + 2) >> 0] << 16) | (d[(f + 3) >> 0] << 24); l = b; return ( d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24) | 0 ); } function hk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function ik(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 8) | 0; d = cE(f | 0, y | 0, -591420061, 13573052) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function jk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 16) | 0; d = cE(f | 0, y | 0, -1126383717, 53019) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function kk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 24) | 0; d = cE(f | 0, y | 0, 465362107, 207) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function lk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = N(c[e >> 2] | 0, -1640531535) | 0; l = d; return (b >>> ((32 - (c[f >> 2] | 0)) | 0)) | 0; } function mk(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; f = l; l = (l + 48) | 0; g = (f + 44) | 0; h = (f + 40) | 0; i = (f + 36) | 0; j = (f + 32) | 0; k = (f + 28) | 0; m = (f + 24) | 0; n = (f + 20) | 0; o = (f + 16) | 0; p = (f + 12) | 0; q = (f + 8) | 0; r = (f + 4) | 0; s = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = c[((c[g >> 2] | 0) + 36) >> 2]; c[m >> 2] = c[((c[h >> 2] | 0) + 8) >> 2]; c[n >> 2] = c[((c[g >> 2] | 0) + 44) >> 2]; c[o >> 2] = (1 << c[((c[h >> 2] | 0) + 4) >> 2]) - 1; c[p >> 2] = c[((c[g >> 2] | 0) + 4) >> 2]; c[q >> 2] = (c[i >> 2] | 0) - (c[p >> 2] | 0); c[r >> 2] = c[((c[g >> 2] | 0) + 24) >> 2]; while (1) { if ((c[r >> 2] | 0) >>> 0 >= (c[q >> 2] | 0) >>> 0) break; c[s >> 2] = nk( ((c[p >> 2] | 0) + (c[r >> 2] | 0)) | 0, c[m >> 2] | 0, c[j >> 2] | 0 ) | 0; c[((c[n >> 2] | 0) + ((c[r >> 2] & c[o >> 2]) << 2)) >> 2] = c[((c[k >> 2] | 0) + (c[s >> 2] << 2)) >> 2]; c[((c[k >> 2] | 0) + (c[s >> 2] << 2)) >> 2] = c[r >> 2]; c[r >> 2] = (c[r >> 2] | 0) + 1; } c[((c[g >> 2] | 0) + 24) >> 2] = c[q >> 2]; q = c[k >> 2] | 0; k = c[ (q + ((nk(c[i >> 2] | 0, c[m >> 2] | 0, c[j >> 2] | 0) | 0) << 2)) >> 2 ] | 0; l = f; return k | 0; } function nk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; switch (c[i >> 2] | 0) { case 8: { c[f >> 2] = sk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 5: { c[f >> 2] = pk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 6: { c[f >> 2] = qk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 7: { c[f >> 2] = rk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } default: c[f >> 2] = ok(c[g >> 2] | 0, c[h >> 2] | 0) | 0; } l = e; return c[f >> 2] | 0; } function ok(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Bk(c[e >> 2] | 0) | 0; e = Ck(b, c[f >> 2] | 0) | 0; l = d; return e | 0; } function pk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = tk(c[e >> 2] | 0) | 0; e = Ak(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function qk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = tk(c[e >> 2] | 0) | 0; e = zk(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function rk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = tk(c[e >> 2] | 0) | 0; e = yk(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function sk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = tk(c[e >> 2] | 0) | 0; e = uk(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function tk(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = (vk() | 0) != 0; f = wk(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = xk(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function uk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = cE( c[d >> 2] | 0, c[(d + 4) >> 2] | 0, -1213897629, -820265764 ) | 0; d = iE(f | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return d | 0; } function vk() { return d[11936] | 0 | 0; } function wk(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; e = a; f = (a + 4) | 0; y = d[f >> 0] | (d[(f + 1) >> 0] << 8) | (d[(f + 2) >> 0] << 16) | (d[(f + 3) >> 0] << 24); l = b; return ( d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24) | 0 ); } function xk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function yk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 8) | 0; d = cE(f | 0, y | 0, -591420061, 13573052) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function zk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 16) | 0; d = cE(f | 0, y | 0, -1126383717, 53019) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function Ak(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 24) | 0; d = cE(f | 0, y | 0, 465362107, 207) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function Bk(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function Ck(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = N(c[e >> 2] | 0, -1640531535) | 0; l = d; return (b >>> ((32 - (c[f >> 2] | 0)) | 0)) | 0; } function Dk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; switch (c[i >> 2] | 0) { case 8: { c[f >> 2] = Ik(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 5: { c[f >> 2] = Fk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 6: { c[f >> 2] = Gk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 7: { c[f >> 2] = Hk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } default: c[f >> 2] = Ek(c[g >> 2] | 0, c[h >> 2] | 0) | 0; } l = e; return c[f >> 2] | 0; } function Ek(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Rk(c[e >> 2] | 0) | 0; e = Sk(b, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Fk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Jk(c[e >> 2] | 0) | 0; e = Qk(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Gk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Jk(c[e >> 2] | 0) | 0; e = Pk(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Hk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Jk(c[e >> 2] | 0) | 0; e = Ok(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Ik(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Jk(c[e >> 2] | 0) | 0; e = Kk(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Jk(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = (Lk() | 0) != 0; f = Mk(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = Nk(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function Kk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = cE( c[d >> 2] | 0, c[(d + 4) >> 2] | 0, -1213897629, -820265764 ) | 0; d = iE(f | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return d | 0; } function Lk() { return d[11936] | 0 | 0; } function Mk(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; e = a; f = (a + 4) | 0; y = d[f >> 0] | (d[(f + 1) >> 0] << 8) | (d[(f + 2) >> 0] << 16) | (d[(f + 3) >> 0] << 24); l = b; return ( d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24) | 0 ); } function Nk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function Ok(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 8) | 0; d = cE(f | 0, y | 0, -591420061, 13573052) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function Pk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 16) | 0; d = cE(f | 0, y | 0, -1126383717, 53019) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function Qk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 24) | 0; d = cE(f | 0, y | 0, 465362107, 207) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function Rk(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function Sk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = N(c[e >> 2] | 0, -1640531535) | 0; l = d; return (b >>> ((32 - (c[f >> 2] | 0)) | 0)) | 0; } function Tk(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; switch (c[i >> 2] | 0) { case 8: { c[f >> 2] = Yk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 5: { c[f >> 2] = Vk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 6: { c[f >> 2] = Wk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } case 7: { c[f >> 2] = Xk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; break; } default: c[f >> 2] = Uk(c[g >> 2] | 0, c[h >> 2] | 0) | 0; } l = e; return c[f >> 2] | 0; } function Uk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = fl(c[e >> 2] | 0) | 0; e = gl(b, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Vk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Zk(c[e >> 2] | 0) | 0; e = el(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Wk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Zk(c[e >> 2] | 0) | 0; e = dl(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Xk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Zk(c[e >> 2] | 0) | 0; e = cl(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Yk(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Zk(c[e >> 2] | 0) | 0; e = _k(b, y, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Zk(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = b; e = (b + 8) | 0; c[e >> 2] = a; a = ($k() | 0) != 0; f = al(c[e >> 2] | 0) | 0; e = y; if (a) { a = d; c[a >> 2] = f; c[(a + 4) >> 2] = e; } else { a = bl(f, e) | 0; e = d; c[e >> 2] = a; c[(e + 4) >> 2] = y; } e = d; y = c[(e + 4) >> 2] | 0; l = b; return c[e >> 2] | 0; } function _k(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = cE( c[d >> 2] | 0, c[(d + 4) >> 2] | 0, -1213897629, -820265764 ) | 0; d = iE(f | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return d | 0; } function $k() { return d[11936] | 0 | 0; } function al(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; e = a; f = (a + 4) | 0; y = d[f >> 0] | (d[(f + 1) >> 0] << 8) | (d[(f + 2) >> 0] << 16) | (d[(f + 3) >> 0] << 24); l = b; return ( d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24) | 0 ); } function bl(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function cl(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 8) | 0; d = cE(f | 0, y | 0, -591420061, 13573052) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function dl(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 16) | 0; d = cE(f | 0, y | 0, -1126383717, 53019) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function el(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = jE(c[d >> 2] | 0, c[(d + 4) >> 2] | 0, 24) | 0; d = cE(f | 0, y | 0, 465362107, 207) | 0; f = iE(d | 0, y | 0, (64 - (c[g >> 2] | 0)) | 0) | 0; l = e; return f | 0; } function fl(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function gl(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = N(c[e >> 2] | 0, -1640531535) | 0; l = d; return (b >>> ((32 - (c[f >> 2] | 0)) | 0)) | 0; } function hl(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; il(c[d >> 2] | 0); c[((c[d >> 2] | 0) + 24) >> 2] = (c[((c[d >> 2] | 0) + 12) >> 2] | 0) + 1; c[((c[d >> 2] | 0) + 20) >> 2] = 0; c[((c[d >> 2] | 0) + 48 + 28) >> 2] = 0; l = b; return; } function il(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = (b + 8) | 0; e = (b + 4) | 0; f = b; c[d >> 2] = a; c[e >> 2] = (c[c[d >> 2] >> 2] | 0) - (c[((c[d >> 2] | 0) + 4) >> 2] | 0); c[f >> 2] = c[e >> 2]; c[((c[d >> 2] | 0) + 16) >> 2] = c[f >> 2]; c[((c[d >> 2] | 0) + 12) >> 2] = c[f >> 2]; l = b; return; } function jl(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; c[((c[d >> 2] | 0) + 628) >> 2] = 0; a = ((c[d >> 2] | 0) + 240) | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; l = b; return; } function kl(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 12) | 0; e = (b + 8) | 0; f = (b + 4) | 0; g = b; c[d >> 2] = 1 << c[(a + 4) >> 2]; c[e >> 2] = (c[(a + 8) >> 2] | 0) >>> 0 < (c[(a + 4) >> 2] | 0) >>> 0 ? c[(a + 8) >> 2] | 0 : c[(a + 4) >> 2] | 0; c[f >> 2] = 1 << ((c[(a + 4) >> 2] | 0) - (c[e >> 2] | 0)); c[g >> 2] = (c[f >> 2] | 0) + (c[d >> 2] << 3); l = b; return (c[a >> 2] | 0 ? c[g >> 2] | 0 : 0) | 0; } function ll(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = d; c[e >> 2] = b; if (!(c[a >> 2] | 0)) { f = 0; l = d; return f | 0; } f = (((c[e >> 2] | 0) >>> 0) / ((c[(a + 12) >> 2] | 0) >>> 0)) | 0; l = d; return f | 0; } function ml(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0; h = l; l = (l + 304) | 0; i = (h + 200) | 0; j = (h + 80) | 0; k = (h + 196) | 0; m = (h + 192) | 0; n = h; o = (h + 188) | 0; p = (h + 184) | 0; q = (h + 76) | 0; r = (h + 72) | 0; s = (h + 68) | 0; t = (h + 64) | 0; u = (h + 60) | 0; v = (h + 56) | 0; w = (h + 52) | 0; x = (h + 48) | 0; z = (h + 44) | 0; A = (h + 40) | 0; B = (h + 36) | 0; C = (h + 32) | 0; D = (h + 28) | 0; E = (h + 24) | 0; F = (h + 20) | 0; G = (h + 16) | 0; H = (h + 12) | 0; I = (h + 8) | 0; c[m >> 2] = a; a = n; c[a >> 2] = d; c[(a + 4) >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; if (!(c[o >> 2] | 0)) { g = c[((c[m >> 2] | 0) + 596) >> 2] | 0; f = c[((c[m >> 2] | 0) + 232) >> 2] | 0; e = c[p >> 2] | 0; a = n; d = c[a >> 2] | 0; J = c[(a + 4) >> 2] | 0; K = j; L = ((c[m >> 2] | 0) + 116) | 0; M = (K + 104) | 0; do { c[K >> 2] = c[L >> 2]; K = (K + 4) | 0; L = (L + 4) | 0; } while ((K | 0) < (M | 0)); K = i; L = b; M = (K + 104) | 0; do { c[K >> 2] = c[L >> 2]; K = (K + 4) | 0; L = (L + 4) | 0; } while ((K | 0) < (M | 0)); if (nl(j, i, g, f, e, d, J) | 0) { J = c[m >> 2] | 0; d = n; e = c[d >> 2] | 0; f = c[(d + 4) >> 2] | 0; K = i; L = b; M = (K + 104) | 0; do { c[K >> 2] = c[L >> 2]; K = (K + 4) | 0; L = (L + 4) | 0; } while ((K | 0) < (M | 0)); c[k >> 2] = ol(J, i, e, f) | 0; N = c[k >> 2] | 0; l = h; return N | 0; } } if (c[(b + 68) >> 2] | 0) { c[(b + 68 + 20) >> 2] = c[(b + 4) >> 2]; pl((b + 68) | 0, (b + 4) | 0); f = ql(c[(b + 68 + 12) >> 2] | 0) | 0; e = ((c[m >> 2] | 0) + 408 + 32) | 0; c[e >> 2] = f; c[(e + 4) >> 2] = y; } e = jE(1, 0, c[(b + 4) >> 2] | 0) | 0; f = y; J = n; d = c[(J + 4) >> 2] | 0; if ( (f >>> 0 < d >>> 0) | ((f | 0) == (d | 0) ? e >>> 0 < (c[J >> 2] | 0) >>> 0 : 0) ) { J = jE(1, 0, c[(b + 4) >> 2] | 0) | 0; O = J; P = y; } else { J = n; O = c[J >> 2] | 0; P = c[(J + 4) >> 2] | 0; } if (1 > O >>> 0) Q = 1; else { O = jE(1, 0, c[(b + 4) >> 2] | 0) | 0; J = y; P = n; e = c[(P + 4) >> 2] | 0; if ( (J >>> 0 < e >>> 0) | ((J | 0) == (e | 0) ? O >>> 0 < (c[P >> 2] | 0) >>> 0 : 0) ) { P = jE(1, 0, c[(b + 4) >> 2] | 0) | 0; R = P; S = y; } else { P = n; R = c[P >> 2] | 0; S = c[(P + 4) >> 2] | 0; } Q = R; } c[q >> 2] = Q; c[r >> 2] = 131072 < (c[q >> 2] | 0) >>> 0 ? 131072 : c[q >> 2] | 0; c[s >> 2] = (c[(b + 4 + 16) >> 2] | 0) == 3 ? 3 : 4; c[t >> 2] = (((c[r >> 2] | 0) >>> 0) / ((c[s >> 2] | 0) >>> 0)) | 0; c[u >> 2] = (c[r >> 2] | 0) + (((c[t >> 2] | 0) * 11) | 0); if ((c[p >> 2] | 0) == 1) T = ((lj(c[r >> 2] | 0) | 0) + 1) | 0; else T = 0; c[v >> 2] = T; if ((c[p >> 2] | 0) == 1) U = ((c[q >> 2] | 0) + (c[r >> 2] | 0)) | 0; else U = 0; c[w >> 2] = U; c[x >> 2] = Aj((b + 4) | 0, 1) | 0; U = (b + 68) | 0; q = c[r >> 2] | 0; c[i >> 2] = c[U >> 2]; c[(i + 4) >> 2] = c[(U + 4) >> 2]; c[(i + 8) >> 2] = c[(U + 8) >> 2]; c[(i + 12) >> 2] = c[(U + 12) >> 2]; c[(i + 16) >> 2] = c[(U + 16) >> 2]; c[(i + 20) >> 2] = c[(U + 20) >> 2]; c[z >> 2] = ll(i, q) | 0; c[B >> 2] = 6144; c[C >> 2] = 9184; c[D >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); C = (b + 68) | 0; c[i >> 2] = c[C >> 2]; c[(i + 4) >> 2] = c[(C + 4) >> 2]; c[(i + 8) >> 2] = c[(C + 8) >> 2]; c[(i + 12) >> 2] = c[(C + 12) >> 2]; c[(i + 16) >> 2] = c[(C + 16) >> 2]; c[(i + 20) >> 2] = c[(C + 20) >> 2]; c[E >> 2] = kl(i) | 0; c[F >> 2] = (c[z >> 2] | 0) * 12; c[G >> 2] = 15328 + (c[E >> 2] | 0) + (c[F >> 2] | 0) + (c[x >> 2] | 0) + (c[u >> 2] | 0) + (c[D >> 2] | 0); do { if ( (c[((c[m >> 2] | 0) + 228) >> 2] | 0) >>> 0 < (c[G >> 2] | 0) >>> 0 ) { if (c[((c[m >> 2] | 0) + 364) >> 2] | 0) { c[k >> 2] = -64; N = c[k >> 2] | 0; l = h; return N | 0; } c[((c[m >> 2] | 0) + 228) >> 2] = 0; D = c[((c[m >> 2] | 0) + 224) >> 2] | 0; u = ((c[m >> 2] | 0) + 352) | 0; c[i >> 2] = c[u >> 2]; c[(i + 4) >> 2] = c[(u + 4) >> 2]; c[(i + 8) >> 2] = c[(u + 8) >> 2]; Th(D, i); D = c[G >> 2] | 0; u = ((c[m >> 2] | 0) + 352) | 0; c[i >> 2] = c[u >> 2]; c[(i + 4) >> 2] = c[(u + 4) >> 2]; c[(i + 8) >> 2] = c[(u + 8) >> 2]; u = Rh(D, i) | 0; c[((c[m >> 2] | 0) + 224) >> 2] = u; if (c[((c[m >> 2] | 0) + 224) >> 2] | 0) { c[((c[m >> 2] | 0) + 228) >> 2] = c[G >> 2]; c[A >> 2] = c[((c[m >> 2] | 0) + 224) >> 2]; c[((c[m >> 2] | 0) + 472) >> 2] = c[((c[m >> 2] | 0) + 224) >> 2]; c[((c[m >> 2] | 0) + 472 + 4) >> 2] = (c[((c[m >> 2] | 0) + 472) >> 2] | 0) + 4592; c[A >> 2] = (c[((c[m >> 2] | 0) + 472 + 4) >> 2] | 0) + 4592; c[((c[m >> 2] | 0) + 588) >> 2] = c[A >> 2]; break; } c[k >> 2] = -64; N = c[k >> 2] | 0; l = h; return N | 0; } } while (0); K = ((c[m >> 2] | 0) + 116) | 0; L = b; M = (K + 104) | 0; do { c[K >> 2] = c[L >> 2]; K = (K + 4) | 0; L = (L + 4) | 0; } while ((K | 0) < (M | 0)); L = n; K = dE(c[L >> 2] | 0, c[(L + 4) >> 2] | 0, 1, 0) | 0; L = ((c[m >> 2] | 0) + 240) | 0; c[L >> 2] = K; c[(L + 4) >> 2] = y; L = ((c[m >> 2] | 0) + 248) | 0; c[L >> 2] = 0; c[(L + 4) >> 2] = 0; L = ((c[m >> 2] | 0) + 256) | 0; c[L >> 2] = 0; c[(L + 4) >> 2] = 0; L = n; if ((c[L >> 2] | 0) == -1 ? (c[(L + 4) >> 2] | 0) == -1 : 0) c[((c[m >> 2] | 0) + 116 + 32) >> 2] = 0; c[((c[m >> 2] | 0) + 232) >> 2] = c[r >> 2]; Lh(((c[m >> 2] | 0) + 264) | 0, 0, 0) | 0; c[c[m >> 2] >> 2] = 1; c[((c[m >> 2] | 0) + 220) >> 2] = 0; Cj(c[((c[m >> 2] | 0) + 472) >> 2] | 0); c[A >> 2] = (c[((c[m >> 2] | 0) + 588) >> 2] | 0) + 6144; if (c[(b + 68) >> 2] | 0) { c[H >> 2] = 1 << c[(b + 68 + 4) >> 2]; oE(c[A >> 2] | 0, 0, (c[H >> 2] << 3) | 0) | 0; c[((c[m >> 2] | 0) + 408 + 20) >> 2] = c[A >> 2]; c[A >> 2] = (c[((c[m >> 2] | 0) + 408 + 20) >> 2] | 0) + (c[H >> 2] << 3); c[((c[m >> 2] | 0) + 448) >> 2] = c[A >> 2]; c[A >> 2] = (c[((c[m >> 2] | 0) + 448) >> 2] | 0) + (((c[z >> 2] | 0) * 12) | 0); c[((c[m >> 2] | 0) + 452) >> 2] = c[z >> 2]; z = ((c[m >> 2] | 0) + 408) | 0; c[z >> 2] = 0; c[(z + 4) >> 2] = 0; c[(z + 8) >> 2] = 0; c[(z + 12) >> 2] = 0; c[(z + 16) >> 2] = 0; } c[A >> 2] = Dj( ((c[m >> 2] | 0) + 472 + 8) | 0, c[A >> 2] | 0, (b + 4) | 0, c[o >> 2] | 0, 1 ) | 0; c[((c[m >> 2] | 0) + 368) >> 2] = c[A >> 2]; c[A >> 2] = (c[((c[m >> 2] | 0) + 368) >> 2] | 0) + (c[t >> 2] << 3); c[((c[m >> 2] | 0) + 368 + 16) >> 2] = c[A >> 2]; c[((c[m >> 2] | 0) + 368 + 20) >> 2] = (c[((c[m >> 2] | 0) + 368 + 16) >> 2] | 0) + (c[t >> 2] | 0); c[((c[m >> 2] | 0) + 368 + 24) >> 2] = (c[((c[m >> 2] | 0) + 368 + 20) >> 2] | 0) + (c[t >> 2] | 0); c[((c[m >> 2] | 0) + 368 + 8) >> 2] = (c[((c[m >> 2] | 0) + 368 + 24) >> 2] | 0) + (c[t >> 2] | 0); c[A >> 2] = (c[((c[m >> 2] | 0) + 368 + 8) >> 2] | 0) + (c[r >> 2] | 0); if (c[(b + 68) >> 2] | 0) { c[I >> 2] = 1 << ((c[(b + 68 + 4) >> 2] | 0) - (c[(b + 68 + 8) >> 2] | 0)); oE(c[A >> 2] | 0, 0, c[I >> 2] | 0) | 0; c[((c[m >> 2] | 0) + 408 + 24) >> 2] = c[A >> 2]; c[A >> 2] = (c[((c[m >> 2] | 0) + 408 + 24) >> 2] | 0) + (c[I >> 2] | 0); il(((c[m >> 2] | 0) + 408) | 0); } rl(c[m >> 2] | 0, 0, 0) | 0; c[((c[m >> 2] | 0) + 596) >> 2] = c[w >> 2]; c[((c[m >> 2] | 0) + 592) >> 2] = c[A >> 2]; c[((c[m >> 2] | 0) + 616) >> 2] = c[v >> 2]; c[((c[m >> 2] | 0) + 612) >> 2] = (c[((c[m >> 2] | 0) + 592) >> 2] | 0) + (c[w >> 2] | 0); c[k >> 2] = 0; N = c[k >> 2] | 0; l = h; return N | 0; } function nl(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; i = l; l = (l + 80) | 0; j = (i + 48) | 0; k = (i + 16) | 0; m = (i + 44) | 0; n = (i + 12) | 0; o = (i + 8) | 0; p = i; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; f = p; c[f >> 2] = g; c[(f + 4) >> 2] = h; h = (a + 4) | 0; f = (b + 4) | 0; c[k >> 2] = c[h >> 2]; c[(k + 4) >> 2] = c[(h + 4) >> 2]; c[(k + 8) >> 2] = c[(h + 8) >> 2]; c[(k + 12) >> 2] = c[(h + 12) >> 2]; c[(k + 16) >> 2] = c[(h + 16) >> 2]; c[(k + 20) >> 2] = c[(h + 20) >> 2]; c[(k + 24) >> 2] = c[(h + 24) >> 2]; c[j >> 2] = c[f >> 2]; c[(j + 4) >> 2] = c[(f + 4) >> 2]; c[(j + 8) >> 2] = c[(f + 8) >> 2]; c[(j + 12) >> 2] = c[(f + 12) >> 2]; c[(j + 16) >> 2] = c[(f + 16) >> 2]; c[(j + 20) >> 2] = c[(f + 20) >> 2]; c[(j + 24) >> 2] = c[(f + 24) >> 2]; if (!(tl(k, j) | 0)) { q = 0; r = q & 1; l = i; return r | 0; } f = (a + 68) | 0; a = (b + 68) | 0; c[k >> 2] = c[f >> 2]; c[(k + 4) >> 2] = c[(f + 4) >> 2]; c[(k + 8) >> 2] = c[(f + 8) >> 2]; c[(k + 12) >> 2] = c[(f + 12) >> 2]; c[(k + 16) >> 2] = c[(f + 16) >> 2]; c[(k + 20) >> 2] = c[(f + 20) >> 2]; c[j >> 2] = c[a >> 2]; c[(j + 4) >> 2] = c[(a + 4) >> 2]; c[(j + 8) >> 2] = c[(a + 8) >> 2]; c[(j + 12) >> 2] = c[(a + 12) >> 2]; c[(j + 16) >> 2] = c[(a + 16) >> 2]; c[(j + 20) >> 2] = c[(a + 20) >> 2]; if (!(ul(k, j) | 0)) { q = 0; r = q & 1; l = i; return r | 0; } k = c[m >> 2] | 0; m = c[n >> 2] | 0; n = c[o >> 2] | 0; o = (b + 4) | 0; b = p; p = c[b >> 2] | 0; a = c[(b + 4) >> 2] | 0; c[j >> 2] = c[o >> 2]; c[(j + 4) >> 2] = c[(o + 4) >> 2]; c[(j + 8) >> 2] = c[(o + 8) >> 2]; c[(j + 12) >> 2] = c[(o + 12) >> 2]; c[(j + 16) >> 2] = c[(o + 16) >> 2]; c[(j + 20) >> 2] = c[(o + 20) >> 2]; c[(j + 24) >> 2] = c[(o + 24) >> 2]; q = (vl(k, m, n, j, p, a) | 0) != 0; r = q & 1; l = i; return r | 0; } function ol(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = f; i = (f + 12) | 0; j = (f + 8) | 0; c[g >> 2] = a; a = h; c[a >> 2] = d; c[(a + 4) >> 2] = e; e = jE(1, 0, c[(b + 4) >> 2] | 0) | 0; a = y; d = h; k = c[(d + 4) >> 2] | 0; if ( (a >>> 0 < k >>> 0) | ((a | 0) == (k | 0) ? e >>> 0 < (c[d >> 2] | 0) >>> 0 : 0) ) { d = jE(1, 0, c[(b + 4) >> 2] | 0) | 0; m = y; n = d; } else { d = h; m = c[(d + 4) >> 2] | 0; n = c[d >> 2] | 0; } if (1 > n >>> 0) o = 1; else { n = jE(1, 0, c[(b + 4) >> 2] | 0) | 0; d = y; m = h; e = c[(m + 4) >> 2] | 0; if ( (d >>> 0 < e >>> 0) | ((d | 0) == (e | 0) ? n >>> 0 < (c[m >> 2] | 0) >>> 0 : 0) ) { m = jE(1, 0, c[(b + 4) >> 2] | 0) | 0; p = m; q = y; } else { m = h; p = c[m >> 2] | 0; q = c[(m + 4) >> 2] | 0; } o = p; } c[i >> 2] = o; c[j >> 2] = 131072 < (c[i >> 2] | 0) >>> 0 ? 131072 : c[i >> 2] | 0; c[((c[g >> 2] | 0) + 232) >> 2] = c[j >> 2]; j = ((c[g >> 2] | 0) + 116) | 0; i = b; o = (j + 104) | 0; do { c[j >> 2] = c[i >> 2]; j = (j + 4) | 0; i = (i + 4) | 0; } while ((j | 0) < (o | 0)); i = h; j = dE(c[i >> 2] | 0, c[(i + 4) >> 2] | 0, 1, 0) | 0; i = ((c[g >> 2] | 0) + 240) | 0; c[i >> 2] = j; c[(i + 4) >> 2] = y; i = ((c[g >> 2] | 0) + 248) | 0; c[i >> 2] = 0; c[(i + 4) >> 2] = 0; i = ((c[g >> 2] | 0) + 256) | 0; c[i >> 2] = 0; c[(i + 4) >> 2] = 0; i = h; if ((c[i >> 2] | 0) == -1 ? (c[(i + 4) >> 2] | 0) == -1 : 0) c[((c[g >> 2] | 0) + 116 + 32) >> 2] = 0; c[c[g >> 2] >> 2] = 1; c[((c[g >> 2] | 0) + 220) >> 2] = 0; if (!(c[(b + 68) >> 2] | 0)) { r = c[g >> 2] | 0; rl(r, 0, 0) | 0; s = c[g >> 2] | 0; t = (s + 472) | 0; u = (t + 8) | 0; hl(u); v = c[g >> 2] | 0; w = (v + 472) | 0; x = c[w >> 2] | 0; Cj(x); z = c[g >> 2] | 0; A = (z + 264) | 0; Lh(A, 0, 0) | 0; l = f; return 0; } il(((c[g >> 2] | 0) + 408) | 0); r = c[g >> 2] | 0; rl(r, 0, 0) | 0; s = c[g >> 2] | 0; t = (s + 472) | 0; u = (t + 8) | 0; hl(u); v = c[g >> 2] | 0; w = (v + 472) | 0; x = c[w >> 2] | 0; Cj(x); z = c[g >> 2] | 0; A = (z + 264) | 0; Lh(A, 0, 0) | 0; l = f; return 0; } function pl(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; d = l; l = (l + 16) | 0; e = (d + 12) | 0; f = (d + 8) | 0; g = (d + 4) | 0; h = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = c[c[f >> 2] >> 2]; if (!(c[((c[e >> 2] | 0) + 8) >> 2] | 0)) c[((c[e >> 2] | 0) + 8) >> 2] = 3; if (!(c[((c[e >> 2] | 0) + 12) >> 2] | 0)) c[((c[e >> 2] | 0) + 12) >> 2] = 64; if ((c[((c[f >> 2] | 0) + 24) >> 2] | 0) >>> 0 >= 7) { if ( (c[((c[f >> 2] | 0) + 20) >> 2] | 0) >>> 0 > (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 ) i = c[((c[f >> 2] | 0) + 20) >> 2] | 0; else i = c[((c[e >> 2] | 0) + 12) >> 2] | 0; c[h >> 2] = i; c[((c[e >> 2] | 0) + 12) >> 2] = c[h >> 2]; } if (!(c[((c[e >> 2] | 0) + 4) >> 2] | 0)) c[((c[e >> 2] | 0) + 4) >> 2] = 6 > (((c[g >> 2] | 0) - 7) | 0) >>> 0 ? 6 : ((c[g >> 2] | 0) - 7) | 0; if (!(c[((c[e >> 2] | 0) + 16) >> 2] | 0)) { if ( (c[g >> 2] | 0) >>> 0 < (c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 ) j = 0; else j = ((c[g >> 2] | 0) - (c[((c[e >> 2] | 0) + 4) >> 2] | 0)) | 0; c[((c[e >> 2] | 0) + 16) >> 2] = j; } j = c[e >> 2] | 0; if ( (c[((c[e >> 2] | 0) + 8) >> 2] | 0) >>> 0 < (c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 ) { k = c[(j + 8) >> 2] | 0; m = c[e >> 2] | 0; n = (m + 8) | 0; c[n >> 2] = k; l = d; return; } else { k = c[(j + 4) >> 2] | 0; m = c[e >> 2] | 0; n = (m + 8) | 0; c[n >> 2] = k; l = d; return; } } function ql(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = sl(-1213897629, -820265764, ((c[d >> 2] | 0) - 1) | 0, 0) | 0; l = b; return a | 0; } function rl(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; if ((c[c[g >> 2] >> 2] | 0) != 1) { c[f >> 2] = -60; j = c[f >> 2] | 0; l = e; return j | 0; } if (c[((c[g >> 2] | 0) + 116 + 68) >> 2] | 0) { c[f >> 2] = -40; j = c[f >> 2] | 0; l = e; return j | 0; } else { c[((c[g >> 2] | 0) + 456) >> 2] = c[h >> 2]; c[((c[g >> 2] | 0) + 456 + 8) >> 2] = c[i >> 2]; c[((c[g >> 2] | 0) + 456 + 12) >> 2] = c[i >> 2]; c[((c[g >> 2] | 0) + 456 + 4) >> 2] = 0; c[f >> 2] = 0; j = c[f >> 2] | 0; l = e; return j | 0; } return 0; } function sl(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 8) | 0; i = f; j = g; c[j >> 2] = a; c[(j + 4) >> 2] = b; b = h; c[b >> 2] = d; c[(b + 4) >> 2] = e; e = i; c[e >> 2] = 1; c[(e + 4) >> 2] = 0; while (1) { e = h; if ( !(((c[e >> 2] | 0) != 0) | ((c[(e + 4) >> 2] | 0) != 0)) ) break; if ((((c[h >> 2] & 1) | 0) != 0) | (0 != 0)) { e = g; b = i; d = cE( c[b >> 2] | 0, c[(b + 4) >> 2] | 0, c[e >> 2] | 0, c[(e + 4) >> 2] | 0 ) | 0; e = i; c[e >> 2] = d; c[(e + 4) >> 2] = y; } e = h; d = iE(c[e >> 2] | 0, c[(e + 4) >> 2] | 0, 1) | 0; e = h; c[e >> 2] = d; c[(e + 4) >> 2] = y; e = g; d = g; b = cE( c[d >> 2] | 0, c[(d + 4) >> 2] | 0, c[e >> 2] | 0, c[(e + 4) >> 2] | 0 ) | 0; e = g; c[e >> 2] = b; c[(e + 4) >> 2] = y; } g = i; y = c[(g + 4) >> 2] | 0; l = f; return c[g >> 2] | 0; } function tl(a, b) { a = a | 0; b = b | 0; return ( (((c[(a + 8) >> 2] | 0) == (c[(b + 8) >> 2] | 0) ? (c[(a + 4) >> 2] | 0) == (c[(b + 4) >> 2] | 0) : 0) & ((c[(a + 24) >> 2] | 0) == (c[(b + 24) >> 2] | 0)) & ((((c[(a + 16) >> 2] | 0) == 3) | 0) == (((c[(b + 16) >> 2] | 0) == 3) | 0))) | 0 ); } function ul(a, b) { a = a | 0; b = b | 0; var d = 0; if (!(c[a >> 2] | 0) ? !(c[b >> 2] | 0) : 0) d = 1; else if ( ( ( (c[a >> 2] | 0) == (c[b >> 2] | 0) ? (c[(a + 4) >> 2] | 0) == (c[(b + 4) >> 2] | 0) : 0 ) ? (c[(a + 8) >> 2] | 0) == (c[(b + 8) >> 2] | 0) : 0 ) ? (c[(a + 12) >> 2] | 0) == (c[(b + 12) >> 2] | 0) : 0 ) d = (c[(a + 16) >> 2] | 0) == (c[(b + 16) >> 2] | 0); else d = 0; return (d & 1) | 0; } function vl(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0; h = l; l = (l + 32) | 0; i = (h + 28) | 0; j = (h + 24) | 0; k = (h + 20) | 0; m = h; n = (h + 16) | 0; o = (h + 12) | 0; p = (h + 8) | 0; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; d = m; c[d >> 2] = f; c[(d + 4) >> 2] = g; g = jE(1, 0, c[e >> 2] | 0) | 0; d = y; f = m; b = c[(f + 4) >> 2] | 0; if ( (d >>> 0 < b >>> 0) | ((d | 0) == (b | 0) ? g >>> 0 < (c[f >> 2] | 0) >>> 0 : 0) ) { f = jE(1, 0, c[e >> 2] | 0) | 0; q = f; r = y; } else { f = m; q = c[f >> 2] | 0; r = c[(f + 4) >> 2] | 0; } if (1 > q >>> 0) s = 1; else { q = jE(1, 0, c[e >> 2] | 0) | 0; f = y; r = m; g = c[(r + 4) >> 2] | 0; if ( (f >>> 0 < g >>> 0) | ((f | 0) == (g | 0) ? q >>> 0 < (c[r >> 2] | 0) >>> 0 : 0) ) { r = jE(1, 0, c[e >> 2] | 0) | 0; t = r; u = y; } else { r = m; t = c[r >> 2] | 0; u = c[(r + 4) >> 2] | 0; } s = t; } c[n >> 2] = s; c[o >> 2] = 131072 < (c[n >> 2] | 0) >>> 0 ? 131072 : c[n >> 2] | 0; if ((c[k >> 2] | 0) != 1) { v = 0; c[p >> 2] = v; w = c[o >> 2] | 0; x = c[j >> 2] | 0; z = w >>> 0 <= x >>> 0; A = z & 1; B = c[p >> 2] | 0; C = c[i >> 2] | 0; D = B >>> 0 <= C >>> 0; E = D & 1; F = A & E; l = h; return F | 0; } v = ((c[n >> 2] | 0) + (c[o >> 2] | 0)) | 0; c[p >> 2] = v; w = c[o >> 2] | 0; x = c[j >> 2] | 0; z = w >>> 0 <= x >>> 0; A = z & 1; B = c[p >> 2] | 0; C = c[i >> 2] | 0; D = B >>> 0 <= C >>> 0; E = D & 1; F = A & E; l = h; return F | 0; } function wl(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; xl(c[f >> 2] | 0, c[g >> 2] & 65535); a[((c[f >> 2] | 0) + 2) >> 0] = (c[g >> 2] | 0) >>> 16; l = e; return; } function xl(d, f) { d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; g = l; l = (l + 16) | 0; h = (g + 4) | 0; i = (g + 8) | 0; j = g; c[h >> 2] = d; b[i >> 1] = f; f = (Jj() | 0) != 0; d = c[h >> 2] | 0; if (f) { yl(d, b[i >> 1] | 0); l = g; return; } else { c[j >> 2] = d; a[c[j >> 2] >> 0] = b[i >> 1]; a[((c[j >> 2] | 0) + 1) >> 0] = (e[i >> 1] | 0) >> 8; l = g; return; } } function yl(d, e) { d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = f; h = (f + 4) | 0; c[g >> 2] = d; b[h >> 1] = e; e = b[h >> 1] | 0; h = c[g >> 2] | 0; a[h >> 0] = e; a[(h + 1) >> 0] = e >> 8; l = f; return; } function zl(b) { b = b | 0; var d = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; d = l; l = (l + 48) | 0; f = (d + 32) | 0; g = (d + 28) | 0; h = (d + 24) | 0; i = (d + 20) | 0; j = (d + 16) | 0; k = (d + 12) | 0; m = (d + 8) | 0; n = (d + 4) | 0; o = d; c[f >> 2] = b; c[g >> 2] = c[c[f >> 2] >> 2]; c[h >> 2] = c[((c[f >> 2] | 0) + 16) >> 2]; c[i >> 2] = c[((c[f >> 2] | 0) + 24) >> 2]; c[j >> 2] = c[((c[f >> 2] | 0) + 20) >> 2]; c[k >> 2] = ((((c[((c[f >> 2] | 0) + 4) >> 2] | 0) - (c[c[f >> 2] >> 2] | 0)) | 0) / 8) | 0; c[m >> 2] = 0; while (1) { if ((c[m >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; c[n >> 2] = e[((c[g >> 2] | 0) + (c[m >> 2] << 3) + 4) >> 1]; c[o >> 2] = e[((c[g >> 2] | 0) + (c[m >> 2] << 3) + 6) >> 1]; b = (Al(c[n >> 2] | 0) | 0) & 255; a[((c[h >> 2] | 0) + (c[m >> 2] | 0)) >> 0] = b; b = (uj(c[((c[g >> 2] | 0) + (c[m >> 2] << 3)) >> 2] | 0) | 0) & 255; a[((c[i >> 2] | 0) + (c[m >> 2] | 0)) >> 0] = b; b = (Bl(c[o >> 2] | 0) | 0) & 255; a[((c[j >> 2] | 0) + (c[m >> 2] | 0)) >> 0] = b; c[m >> 2] = (c[m >> 2] | 0) + 1; } if ((c[((c[f >> 2] | 0) + 28) >> 2] | 0) == 1) a[ ((c[h >> 2] | 0) + (c[((c[f >> 2] | 0) + 32) >> 2] | 0)) >> 0 ] = 35; if ((c[((c[f >> 2] | 0) + 28) >> 2] | 0) != 2) { l = d; return; } a[ ((c[j >> 2] | 0) + (c[((c[f >> 2] | 0) + 32) >> 2] | 0)) >> 0 ] = 52; l = d; return; } function Al(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; if ((c[e >> 2] | 0) >>> 0 > 63) { f = ((uj(a) | 0) + 19) | 0; l = b; return f | 0; } else { f = d[(3008 + a) >> 0] | 0; l = b; return f | 0; } return 0; } function Bl(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; if ((c[e >> 2] | 0) >>> 0 > 127) { f = ((uj(a) | 0) + 36) | 0; l = b; return f | 0; } else { f = d[(3072 + a) >> 0] | 0; l = b; return f | 0; } return 0; } function Cl(a, b, d, e, f, g, h, i, j, k, m, n) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; var o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; o = l; l = (l + 64) | 0; p = (o + 48) | 0; q = (o + 44) | 0; r = (o + 40) | 0; s = (o + 36) | 0; t = (o + 32) | 0; u = (o + 28) | 0; v = (o + 24) | 0; w = (o + 20) | 0; x = (o + 16) | 0; y = (o + 12) | 0; z = (o + 8) | 0; A = (o + 4) | 0; B = o; c[q >> 2] = a; c[r >> 2] = b; c[s >> 2] = d; c[t >> 2] = e; c[u >> 2] = f; c[v >> 2] = g; c[w >> 2] = h; c[x >> 2] = i; c[y >> 2] = j; c[z >> 2] = k; c[A >> 2] = m; c[B >> 2] = n; if (c[B >> 2] | 0) { c[p >> 2] = Dl( c[q >> 2] | 0, c[r >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[w >> 2] | 0, c[x >> 2] | 0, c[y >> 2] | 0, c[z >> 2] | 0, c[A >> 2] | 0 ) | 0; C = c[p >> 2] | 0; l = o; return C | 0; } else { c[p >> 2] = El( c[q >> 2] | 0, c[r >> 2] | 0, c[s >> 2] | 0, c[t >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[w >> 2] | 0, c[x >> 2] | 0, c[y >> 2] | 0, c[z >> 2] | 0, c[A >> 2] | 0 ) | 0; C = c[p >> 2] | 0; l = o; return C | 0; } return 0; } function Dl(b, f, g, h, i, j, k, m, n, o, p) { b = b | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; var q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0; q = l; l = (l + 208) | 0; r = (q + 192) | 0; s = (q + 188) | 0; t = (q + 184) | 0; u = (q + 180) | 0; v = (q + 176) | 0; w = (q + 172) | 0; x = (q + 168) | 0; y = (q + 164) | 0; z = (q + 160) | 0; A = (q + 156) | 0; B = (q + 152) | 0; C = (q + 148) | 0; D = (q + 128) | 0; E = (q + 112) | 0; F = (q + 96) | 0; G = (q + 80) | 0; H = (q + 76) | 0; I = (q + 72) | 0; J = (q + 68) | 0; K = (q + 64) | 0; L = (q + 198) | 0; M = (q + 197) | 0; N = (q + 196) | 0; O = (q + 60) | 0; P = (q + 56) | 0; Q = (q + 52) | 0; R = (q + 48) | 0; S = (q + 44) | 0; T = (q + 40) | 0; U = (q + 36) | 0; V = (q + 32) | 0; W = (q + 28) | 0; X = (q + 24) | 0; Y = (q + 20) | 0; Z = (q + 16) | 0; _ = (q + 12) | 0; $ = (q + 8) | 0; aa = (q + 4) | 0; ba = q; c[T >> 2] = b; c[U >> 2] = f; c[V >> 2] = g; c[W >> 2] = h; c[X >> 2] = i; c[Y >> 2] = j; c[Z >> 2] = k; c[_ >> 2] = m; c[$ >> 2] = n; c[aa >> 2] = o; c[ba >> 2] = p; p = c[U >> 2] | 0; U = c[V >> 2] | 0; V = c[W >> 2] | 0; W = c[X >> 2] | 0; X = c[Y >> 2] | 0; Y = c[Z >> 2] | 0; Z = c[_ >> 2] | 0; _ = c[$ >> 2] | 0; $ = c[aa >> 2] | 0; aa = c[ba >> 2] | 0; c[s >> 2] = c[T >> 2]; c[t >> 2] = p; c[u >> 2] = U; c[v >> 2] = V; c[w >> 2] = W; c[x >> 2] = X; c[y >> 2] = Y; c[z >> 2] = Z; c[A >> 2] = _; c[B >> 2] = $; c[C >> 2] = aa; c[H >> 2] = Fl(D, c[s >> 2] | 0, c[t >> 2] | 0) | 0; if (wj(c[H >> 2] | 0) | 0) { c[r >> 2] = -70; ca = c[r >> 2] | 0; l = q; return ca | 0; } Gl( E, c[u >> 2] | 0, d[((c[v >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0 ); Gl( F, c[w >> 2] | 0, d[((c[x >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0 ); Gl( G, c[y >> 2] | 0, d[((c[z >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0 ); Hl( D, e[ ((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3) + 4) >> 1 ] | 0, c[ (5696 + ((d[((c[z >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0) << 2)) >> 2 ] | 0 ); if (Il() | 0) Jl(D); Hl( D, e[ ((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3) + 6) >> 1 ] | 0, c[ (5840 + ((d[((c[v >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0) << 2)) >> 2 ] | 0 ); if (Il() | 0) Jl(D); if (c[C >> 2] | 0) { c[I >> 2] = d[((c[x >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0]; y = c[I >> 2] | 0; w = c[I >> 2] | 0; u = (Il() | 0) != 0; if (w >>> 0 < (((u ? 25 : 57) - 1) | 0) >>> 0) da = c[I >> 2] | 0; else { u = (Il() | 0) != 0; da = ((u ? 25 : 57) - 1) | 0; } c[J >> 2] = y - da; if (c[J >> 2] | 0) { Hl( D, c[ ((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3)) >> 2 ] | 0, c[J >> 2] | 0 ); Jl(D); } Hl( D, (c[ ((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3)) >> 2 ] | 0) >>> (c[J >> 2] | 0), ((c[I >> 2] | 0) - (c[J >> 2] | 0)) | 0 ); } else Hl( D, c[((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3)) >> 2] | 0, d[((c[x >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0 ); Jl(D); c[K >> 2] = (c[B >> 2] | 0) - 2; while (1) { if ((c[K >> 2] | 0) >>> 0 >= (c[B >> 2] | 0) >>> 0) break; a[L >> 0] = a[((c[z >> 2] | 0) + (c[K >> 2] | 0)) >> 0] | 0; a[M >> 0] = a[((c[x >> 2] | 0) + (c[K >> 2] | 0)) >> 0] | 0; a[N >> 0] = a[((c[v >> 2] | 0) + (c[K >> 2] | 0)) >> 0] | 0; c[O >> 2] = c[(5696 + ((d[L >> 0] | 0) << 2)) >> 2]; c[P >> 2] = d[M >> 0]; c[Q >> 2] = c[(5840 + ((d[N >> 0] | 0) << 2)) >> 2]; Kl(D, F, d[M >> 0] | 0); Kl(D, E, d[N >> 0] | 0); if (Il() | 0) Jl(D); Kl(D, G, d[L >> 0] | 0); if ( !(!(Il() | 0) ? (((c[P >> 2] | 0) + (c[Q >> 2] | 0) + (c[O >> 2] | 0)) | 0) >>> 0 < 31 : 0) ) Jl(D); Hl( D, e[((c[A >> 2] | 0) + (c[K >> 2] << 3) + 4) >> 1] | 0, c[O >> 2] | 0 ); if ( Il() | 0 ? (((c[O >> 2] | 0) + (c[Q >> 2] | 0)) | 0) >>> 0 > 24 : 0 ) Jl(D); Hl( D, e[((c[A >> 2] | 0) + (c[K >> 2] << 3) + 6) >> 1] | 0, c[Q >> 2] | 0 ); if ( !(!(Il() | 0) ? (((c[P >> 2] | 0) + (c[Q >> 2] | 0) + (c[O >> 2] | 0)) | 0) >>> 0 <= 56 : 0) ) Jl(D); if (c[C >> 2] | 0) { J = c[P >> 2] | 0; I = c[P >> 2] | 0; da = (Il() | 0) != 0; if (I >>> 0 < (((da ? 25 : 57) - 1) | 0) >>> 0) ea = c[P >> 2] | 0; else { da = (Il() | 0) != 0; ea = ((da ? 25 : 57) - 1) | 0; } c[R >> 2] = J - ea; if (c[R >> 2] | 0) { Hl( D, c[((c[A >> 2] | 0) + (c[K >> 2] << 3)) >> 2] | 0, c[R >> 2] | 0 ); Jl(D); } Hl( D, (c[((c[A >> 2] | 0) + (c[K >> 2] << 3)) >> 2] | 0) >>> (c[R >> 2] | 0), ((c[P >> 2] | 0) - (c[R >> 2] | 0)) | 0 ); } else Hl( D, c[((c[A >> 2] | 0) + (c[K >> 2] << 3)) >> 2] | 0, c[P >> 2] | 0 ); Jl(D); c[K >> 2] = (c[K >> 2] | 0) + -1; } Ll(D, E); Ll(D, F); Ll(D, G); c[S >> 2] = Ml(D) | 0; if (!(c[S >> 2] | 0)) { c[r >> 2] = -70; ca = c[r >> 2] | 0; l = q; return ca | 0; } else { c[r >> 2] = c[S >> 2]; ca = c[r >> 2] | 0; l = q; return ca | 0; } return 0; } function El(b, f, g, h, i, j, k, m, n, o, p) { b = b | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; var q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0; q = l; l = (l + 208) | 0; r = (q + 192) | 0; s = (q + 188) | 0; t = (q + 184) | 0; u = (q + 180) | 0; v = (q + 176) | 0; w = (q + 172) | 0; x = (q + 168) | 0; y = (q + 164) | 0; z = (q + 160) | 0; A = (q + 156) | 0; B = (q + 152) | 0; C = (q + 148) | 0; D = (q + 128) | 0; E = (q + 112) | 0; F = (q + 96) | 0; G = (q + 80) | 0; H = (q + 76) | 0; I = (q + 72) | 0; J = (q + 68) | 0; K = (q + 64) | 0; L = (q + 198) | 0; M = (q + 197) | 0; N = (q + 196) | 0; O = (q + 60) | 0; P = (q + 56) | 0; Q = (q + 52) | 0; R = (q + 48) | 0; S = (q + 44) | 0; T = (q + 40) | 0; U = (q + 36) | 0; V = (q + 32) | 0; W = (q + 28) | 0; X = (q + 24) | 0; Y = (q + 20) | 0; Z = (q + 16) | 0; _ = (q + 12) | 0; $ = (q + 8) | 0; aa = (q + 4) | 0; ba = q; c[T >> 2] = b; c[U >> 2] = f; c[V >> 2] = g; c[W >> 2] = h; c[X >> 2] = i; c[Y >> 2] = j; c[Z >> 2] = k; c[_ >> 2] = m; c[$ >> 2] = n; c[aa >> 2] = o; c[ba >> 2] = p; p = c[U >> 2] | 0; U = c[V >> 2] | 0; V = c[W >> 2] | 0; W = c[X >> 2] | 0; X = c[Y >> 2] | 0; Y = c[Z >> 2] | 0; Z = c[_ >> 2] | 0; _ = c[$ >> 2] | 0; $ = c[aa >> 2] | 0; aa = c[ba >> 2] | 0; c[s >> 2] = c[T >> 2]; c[t >> 2] = p; c[u >> 2] = U; c[v >> 2] = V; c[w >> 2] = W; c[x >> 2] = X; c[y >> 2] = Y; c[z >> 2] = Z; c[A >> 2] = _; c[B >> 2] = $; c[C >> 2] = aa; c[H >> 2] = Fl(D, c[s >> 2] | 0, c[t >> 2] | 0) | 0; if (wj(c[H >> 2] | 0) | 0) { c[r >> 2] = -70; ca = c[r >> 2] | 0; l = q; return ca | 0; } Gl( E, c[u >> 2] | 0, d[((c[v >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0 ); Gl( F, c[w >> 2] | 0, d[((c[x >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0 ); Gl( G, c[y >> 2] | 0, d[((c[z >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0 ); Hl( D, e[ ((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3) + 4) >> 1 ] | 0, c[ (5696 + ((d[((c[z >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0) << 2)) >> 2 ] | 0 ); if (Il() | 0) Jl(D); Hl( D, e[ ((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3) + 6) >> 1 ] | 0, c[ (5840 + ((d[((c[v >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0) << 2)) >> 2 ] | 0 ); if (Il() | 0) Jl(D); if (c[C >> 2] | 0) { c[I >> 2] = d[((c[x >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0]; y = c[I >> 2] | 0; w = c[I >> 2] | 0; u = (Il() | 0) != 0; if (w >>> 0 < (((u ? 25 : 57) - 1) | 0) >>> 0) da = c[I >> 2] | 0; else { u = (Il() | 0) != 0; da = ((u ? 25 : 57) - 1) | 0; } c[J >> 2] = y - da; if (c[J >> 2] | 0) { Hl( D, c[ ((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3)) >> 2 ] | 0, c[J >> 2] | 0 ); Jl(D); } Hl( D, (c[ ((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3)) >> 2 ] | 0) >>> (c[J >> 2] | 0), ((c[I >> 2] | 0) - (c[J >> 2] | 0)) | 0 ); } else Hl( D, c[((c[A >> 2] | 0) + (((c[B >> 2] | 0) - 1) << 3)) >> 2] | 0, d[((c[x >> 2] | 0) + ((c[B >> 2] | 0) - 1)) >> 0] | 0 ); Jl(D); c[K >> 2] = (c[B >> 2] | 0) - 2; while (1) { if ((c[K >> 2] | 0) >>> 0 >= (c[B >> 2] | 0) >>> 0) break; a[L >> 0] = a[((c[z >> 2] | 0) + (c[K >> 2] | 0)) >> 0] | 0; a[M >> 0] = a[((c[x >> 2] | 0) + (c[K >> 2] | 0)) >> 0] | 0; a[N >> 0] = a[((c[v >> 2] | 0) + (c[K >> 2] | 0)) >> 0] | 0; c[O >> 2] = c[(5696 + ((d[L >> 0] | 0) << 2)) >> 2]; c[P >> 2] = d[M >> 0]; c[Q >> 2] = c[(5840 + ((d[N >> 0] | 0) << 2)) >> 2]; Kl(D, F, d[M >> 0] | 0); Kl(D, E, d[N >> 0] | 0); if (Il() | 0) Jl(D); Kl(D, G, d[L >> 0] | 0); if ( !(!(Il() | 0) ? (((c[P >> 2] | 0) + (c[Q >> 2] | 0) + (c[O >> 2] | 0)) | 0) >>> 0 < 31 : 0) ) Jl(D); Hl( D, e[((c[A >> 2] | 0) + (c[K >> 2] << 3) + 4) >> 1] | 0, c[O >> 2] | 0 ); if ( Il() | 0 ? (((c[O >> 2] | 0) + (c[Q >> 2] | 0)) | 0) >>> 0 > 24 : 0 ) Jl(D); Hl( D, e[((c[A >> 2] | 0) + (c[K >> 2] << 3) + 6) >> 1] | 0, c[Q >> 2] | 0 ); if ( !(!(Il() | 0) ? (((c[P >> 2] | 0) + (c[Q >> 2] | 0) + (c[O >> 2] | 0)) | 0) >>> 0 <= 56 : 0) ) Jl(D); if (c[C >> 2] | 0) { J = c[P >> 2] | 0; I = c[P >> 2] | 0; da = (Il() | 0) != 0; if (I >>> 0 < (((da ? 25 : 57) - 1) | 0) >>> 0) ea = c[P >> 2] | 0; else { da = (Il() | 0) != 0; ea = ((da ? 25 : 57) - 1) | 0; } c[R >> 2] = J - ea; if (c[R >> 2] | 0) { Hl( D, c[((c[A >> 2] | 0) + (c[K >> 2] << 3)) >> 2] | 0, c[R >> 2] | 0 ); Jl(D); } Hl( D, (c[((c[A >> 2] | 0) + (c[K >> 2] << 3)) >> 2] | 0) >>> (c[R >> 2] | 0), ((c[P >> 2] | 0) - (c[R >> 2] | 0)) | 0 ); } else Hl( D, c[((c[A >> 2] | 0) + (c[K >> 2] << 3)) >> 2] | 0, c[P >> 2] | 0 ); Jl(D); c[K >> 2] = (c[K >> 2] | 0) + -1; } Ll(D, E); Ll(D, F); Ll(D, G); c[S >> 2] = Ml(D) | 0; if (!(c[S >> 2] | 0)) { c[r >> 2] = -70; ca = c[r >> 2] | 0; l = q; return ca | 0; } else { c[r >> 2] = c[S >> 2]; ca = c[r >> 2] | 0; l = q; return ca | 0; } return 0; } function Fl(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[c[g >> 2] >> 2] = 0; c[((c[g >> 2] | 0) + 4) >> 2] = 0; c[((c[g >> 2] | 0) + 8) >> 2] = c[h >> 2]; c[((c[g >> 2] | 0) + 12) >> 2] = c[((c[g >> 2] | 0) + 8) >> 2]; c[((c[g >> 2] | 0) + 16) >> 2] = (c[((c[g >> 2] | 0) + 8) >> 2] | 0) + (c[i >> 2] | 0) + -4; if ((c[i >> 2] | 0) >>> 0 <= 4) { c[f >> 2] = -70; j = c[f >> 2] | 0; l = e; return j | 0; } else { c[f >> 2] = 0; j = c[f >> 2] | 0; l = e; return j | 0; } return 0; } function Gl(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 24) | 0; h = (f + 20) | 0; i = (f + 16) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; Ul(c[g >> 2] | 0, c[h >> 2] | 0); h = ((c[((c[g >> 2] | 0) + 8) >> 2] | 0) + (c[i >> 2] << 3)) | 0; c[j >> 2] = c[h >> 2]; c[(j + 4) >> 2] = c[(h + 4) >> 2]; c[k >> 2] = c[((c[g >> 2] | 0) + 4) >> 2]; c[m >> 2] = (((c[(j + 4) >> 2] | 0) + 32768) | 0) >>> 16; c[c[g >> 2] >> 2] = (c[m >> 2] << 16) - (c[(j + 4) >> 2] | 0); c[c[g >> 2] >> 2] = e[ ((c[k >> 2] | 0) + (((c[c[g >> 2] >> 2] >> c[m >> 2]) + (c[j >> 2] | 0)) << 1)) >> 1 ]; l = f; return; } function Hl(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = c[f >> 2] | 0; c[d >> 2] = c[d >> 2] | ((c[g >> 2] & c[(2800 + (c[h >> 2] << 2)) >> 2]) << c[((c[f >> 2] | 0) + 4) >> 2]); g = ((c[f >> 2] | 0) + 4) | 0; c[g >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return; } function Il() { return 1; } function Jl(a) { a = a | 0; var b = 0, d = 0, e = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[d >> 2] = a; c[e >> 2] = (c[((c[d >> 2] | 0) + 4) >> 2] | 0) >>> 3; Ol(c[((c[d >> 2] | 0) + 12) >> 2] | 0, c[c[d >> 2] >> 2] | 0); a = ((c[d >> 2] | 0) + 12) | 0; c[a >> 2] = (c[a >> 2] | 0) + (c[e >> 2] | 0); if ( (c[((c[d >> 2] | 0) + 12) >> 2] | 0) >>> 0 > (c[((c[d >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) c[((c[d >> 2] | 0) + 12) >> 2] = c[((c[d >> 2] | 0) + 16) >> 2]; a = ((c[d >> 2] | 0) + 4) | 0; c[a >> 2] = c[a >> 2] & 7; a = c[d >> 2] | 0; c[a >> 2] = (c[a >> 2] | 0) >>> (c[e >> 2] << 3); l = b; return; } function Kl(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 24) | 0; h = (f + 20) | 0; i = (f + 16) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; d = ((c[((c[h >> 2] | 0) + 8) >> 2] | 0) + (c[i >> 2] << 3)) | 0; c[j >> 2] = c[d >> 2]; c[(j + 4) >> 2] = c[(d + 4) >> 2]; c[k >> 2] = c[((c[h >> 2] | 0) + 4) >> 2]; c[m >> 2] = (((c[c[h >> 2] >> 2] | 0) + (c[(j + 4) >> 2] | 0)) | 0) >>> 16; Hl(c[g >> 2] | 0, c[c[h >> 2] >> 2] | 0, c[m >> 2] | 0); c[c[h >> 2] >> 2] = e[ ((c[k >> 2] | 0) + (((c[c[h >> 2] >> 2] >> c[m >> 2]) + (c[j >> 2] | 0)) << 1)) >> 1 ]; l = f; return; } function Ll(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; Hl( c[e >> 2] | 0, c[c[f >> 2] >> 2] | 0, c[((c[f >> 2] | 0) + 12) >> 2] | 0 ); Jl(c[e >> 2] | 0); l = d; return; } function Ml(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; Nl(c[e >> 2] | 0, 1, 1); Jl(c[e >> 2] | 0); if ( (c[((c[e >> 2] | 0) + 12) >> 2] | 0) >>> 0 >= (c[((c[e >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) { c[d >> 2] = 0; f = c[d >> 2] | 0; l = b; return f | 0; } else { c[d >> 2] = (c[((c[e >> 2] | 0) + 12) >> 2] | 0) - (c[((c[e >> 2] | 0) + 8) >> 2] | 0) + (((c[((c[e >> 2] | 0) + 4) >> 2] | 0) >>> 0 > 0) & 1); f = c[d >> 2] | 0; l = b; return f | 0; } return 0; } function Nl(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = c[f >> 2] | 0; c[d >> 2] = c[d >> 2] | (c[g >> 2] << c[((c[f >> 2] | 0) + 4) >> 2]); g = ((c[f >> 2] | 0) + 4) | 0; c[g >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return; } function Ol(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = (Il() | 0) != 0; a = c[e >> 2] | 0; e = c[f >> 2] | 0; if (b) { Pl(a, e); l = d; return; } else { Ql(a, e, 0); l = d; return; } } function Pl(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = (Jj() | 0) != 0; a = c[e >> 2] | 0; e = c[f >> 2] | 0; if (b) { Tl(a, e); l = d; return; } else { Tl(a, Lj(e) | 0); l = d; return; } } function Ql(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = e; c[f >> 2] = a; a = g; c[a >> 2] = b; c[(a + 4) >> 2] = d; d = (Jj() | 0) != 0; a = c[f >> 2] | 0; f = g; g = c[f >> 2] | 0; b = c[(f + 4) >> 2] | 0; if (d) { Rl(a, g, b); l = e; return; } else { d = Sl(g, b) | 0; Rl(a, d, y); l = e; return; } } function Rl(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 16) | 0; g = (f + 8) | 0; h = f; c[g >> 2] = b; b = h; c[b >> 2] = d; c[(b + 4) >> 2] = e; e = h; h = c[e >> 2] | 0; b = c[(e + 4) >> 2] | 0; e = c[g >> 2] | 0; g = e; a[g >> 0] = h; a[(g + 1) >> 0] = h >> 8; a[(g + 2) >> 0] = h >> 16; a[(g + 3) >> 0] = h >> 24; h = (e + 4) | 0; a[h >> 0] = b; a[(h + 1) >> 0] = b >> 8; a[(h + 2) >> 0] = b >> 16; a[(h + 3) >> 0] = b >> 24; l = f; return; } function Sl(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = d; f = e; c[f >> 2] = a; c[(f + 4) >> 2] = b; b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; b = y & -16777216; f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 40) | 0; f = b | (y & 16711680); b = e; jE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = f | (y & 65280); f = e; jE(c[f >> 2] | 0, c[(f + 4) >> 2] | 0, 8) | 0; f = b | (y & 255); b = e; a = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 8) | 0; b = e; g = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 24) | 0; b = e; h = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 40) | 0; b = e; e = iE(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, 56) | 0; y = f; l = d; return ( (a & -16777216) | (g & 16711680) | (h & 65280) | (e & 255) | 0 ); } function Tl(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[g >> 2] | 0; g = c[f >> 2] | 0; a[g >> 0] = d; a[(g + 1) >> 0] = d >> 8; a[(g + 2) >> 0] = d >> 16; a[(g + 3) >> 0] = d >> 24; l = e; return; } function Ul(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; d = l; l = (l + 32) | 0; e = (d + 16) | 0; f = (d + 12) | 0; g = (d + 8) | 0; h = (d + 4) | 0; i = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = c[f >> 2]; c[h >> 2] = c[g >> 2]; c[i >> 2] = (Vl(c[g >> 2] | 0) | 0) & 65535; c[c[e >> 2] >> 2] = 1 << c[i >> 2]; c[((c[e >> 2] | 0) + 4) >> 2] = (c[h >> 2] | 0) + 4; if (c[i >> 2] | 0) j = 1 << ((c[i >> 2] | 0) - 1); else j = 1; c[((c[e >> 2] | 0) + 8) >> 2] = (c[f >> 2] | 0) + 4 + (j << 2); c[((c[e >> 2] | 0) + 12) >> 2] = c[i >> 2]; l = d; return; } function Vl(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function Wl(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; l = d; return ( c[ (2928 + (((((c[f >> 2] | 0) != 0) & 1) * 36) | 0) + (c[e >> 2] << 2)) >> 2 ] | 0 ); } function Xl(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0; i = l; l = (l + 512) | 0; j = (i + 500) | 0; k = (i + 496) | 0; m = (i + 492) | 0; n = (i + 488) | 0; o = (i + 484) | 0; p = (i + 480) | 0; q = (i + 476) | 0; r = (i + 472) | 0; s = (i + 468) | 0; t = (i + 464) | 0; u = (i + 460) | 0; v = (i + 456) | 0; w = (i + 452) | 0; x = (i + 448) | 0; y = (i + 444) | 0; z = (i + 440) | 0; A = (i + 436) | 0; B = (i + 432) | 0; C = (i + 428) | 0; D = (i + 424) | 0; E = (i + 420) | 0; F = (i + 416) | 0; G = (i + 412) | 0; H = (i + 408) | 0; I = (i + 404) | 0; J = (i + 400) | 0; K = (i + 396) | 0; L = (i + 392) | 0; M = (i + 388) | 0; N = (i + 384) | 0; O = (i + 380) | 0; P = (i + 376) | 0; Q = (i + 372) | 0; R = (i + 368) | 0; S = (i + 364) | 0; T = (i + 360) | 0; U = (i + 356) | 0; V = (i + 352) | 0; W = (i + 348) | 0; X = (i + 344) | 0; Y = (i + 340) | 0; Z = (i + 336) | 0; _ = (i + 332) | 0; $ = (i + 328) | 0; aa = (i + 324) | 0; ba = (i + 320) | 0; ca = (i + 316) | 0; da = (i + 312) | 0; ea = (i + 308) | 0; fa = (i + 304) | 0; ga = (i + 300) | 0; ha = (i + 296) | 0; ia = (i + 292) | 0; ja = (i + 288) | 0; ka = (i + 284) | 0; la = (i + 280) | 0; ma = (i + 276) | 0; na = (i + 272) | 0; oa = (i + 268) | 0; pa = (i + 264) | 0; qa = (i + 260) | 0; ra = (i + 256) | 0; sa = (i + 252) | 0; ta = (i + 248) | 0; ua = (i + 244) | 0; va = (i + 240) | 0; wa = (i + 236) | 0; xa = (i + 232) | 0; ya = (i + 228) | 0; za = (i + 224) | 0; Aa = (i + 220) | 0; Ba = (i + 216) | 0; Ca = (i + 212) | 0; Da = (i + 208) | 0; Ea = (i + 204) | 0; Fa = (i + 200) | 0; Ga = (i + 196) | 0; Ha = (i + 192) | 0; Ia = (i + 188) | 0; Ja = (i + 184) | 0; Ka = (i + 180) | 0; La = (i + 176) | 0; Ma = (i + 172) | 0; Na = (i + 168) | 0; Oa = (i + 164) | 0; Pa = (i + 160) | 0; Qa = (i + 156) | 0; Ra = (i + 152) | 0; Sa = (i + 148) | 0; Ta = (i + 144) | 0; Ua = (i + 140) | 0; Va = (i + 136) | 0; Wa = (i + 132) | 0; Xa = (i + 128) | 0; Ya = (i + 124) | 0; Za = (i + 120) | 0; _a = (i + 116) | 0; $a = (i + 112) | 0; ab = (i + 108) | 0; bb = (i + 104) | 0; cb = (i + 100) | 0; db = (i + 96) | 0; eb = (i + 92) | 0; fb = (i + 88) | 0; gb = (i + 84) | 0; hb = (i + 80) | 0; ib = (i + 76) | 0; jb = (i + 72) | 0; kb = (i + 68) | 0; lb = (i + 64) | 0; mb = (i + 60) | 0; nb = (i + 56) | 0; ob = (i + 52) | 0; pb = (i + 48) | 0; qb = (i + 44) | 0; rb = (i + 40) | 0; sb = (i + 36) | 0; tb = (i + 32) | 0; ub = (i + 28) | 0; vb = (i + 24) | 0; wb = (i + 20) | 0; xb = (i + 16) | 0; yb = (i + 12) | 0; zb = (i + 8) | 0; Ab = (i + 4) | 0; Bb = i; c[tb >> 2] = a; c[ub >> 2] = b; c[vb >> 2] = e; c[wb >> 2] = f; c[xb >> 2] = g; c[yb >> 2] = h; c[zb >> 2] = c[((c[wb >> 2] | 0) + 8) >> 2]; c[Ab >> 2] = c[((c[wb >> 2] | 0) + 16) >> 2]; c[Bb >> 2] = c[((c[wb >> 2] | 0) + 20) >> 2]; switch (c[Ab >> 2] | 0) { case 7: { Ab = c[ub >> 2] | 0; wb = c[vb >> 2] | 0; h = c[xb >> 2] | 0; g = c[yb >> 2] | 0; f = c[zb >> 2] | 0; e = c[Bb >> 2] | 0; c[j >> 2] = c[tb >> 2]; c[k >> 2] = Ab; c[m >> 2] = wb; c[n >> 2] = h; c[o >> 2] = g; c[p >> 2] = f; c[q >> 2] = e; c[r >> 2] = 7; c[s >> 2] = c[((c[j >> 2] | 0) + 36) >> 2]; c[t >> 2] = c[((c[j >> 2] | 0) + 4) >> 2]; c[u >> 2] = c[n >> 2]; c[v >> 2] = c[u >> 2]; c[w >> 2] = c[u >> 2]; c[x >> 2] = c[((c[j >> 2] | 0) + 12) >> 2]; c[y >> 2] = (c[t >> 2] | 0) + (c[x >> 2] | 0); c[z >> 2] = (c[u >> 2] | 0) + (c[o >> 2] | 0); c[A >> 2] = (c[z >> 2] | 0) + -8; c[B >> 2] = c[c[m >> 2] >> 2]; c[C >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[D >> 2] = 0; c[v >> 2] = (c[v >> 2] | 0) + (((c[v >> 2] | 0) == (c[y >> 2] | 0)) & 1); c[E >> 2] = (c[v >> 2] | 0) - (c[y >> 2] | 0); if ((c[C >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0) { c[D >> 2] = c[C >> 2]; c[C >> 2] = 0; } if ((c[B >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0) { c[D >> 2] = c[B >> 2]; c[B >> 2] = 0; } a: while (1) { if ((c[v >> 2] | 0) >>> 0 >= (c[A >> 2] | 0) >>> 0) break; c[G >> 2] = Tk(c[v >> 2] | 0, c[p >> 2] | 0, c[r >> 2] | 0) | 0; c[H >> 2] = (c[v >> 2] | 0) - (c[t >> 2] | 0); c[I >> 2] = c[((c[s >> 2] | 0) + (c[G >> 2] << 2)) >> 2]; c[J >> 2] = (c[t >> 2] | 0) + (c[I >> 2] | 0); c[((c[s >> 2] | 0) + (c[G >> 2] << 2)) >> 2] = c[H >> 2]; E = ((c[B >> 2] | 0) >>> 0 > 0) & 1; o = fl( ((c[v >> 2] | 0) + 1 + (0 - (c[B >> 2] | 0))) | 0 ) | 0; do { if ( (E & ((o | 0) == (fl(((c[v >> 2] | 0) + 1) | 0) | 0))) | 0 ) { c[F >> 2] = (nn( ((c[v >> 2] | 0) + 1 + 4) | 0, ((c[v >> 2] | 0) + 1 + 4 + (0 - (c[B >> 2] | 0))) | 0, c[z >> 2] | 0 ) | 0) + 4; c[v >> 2] = (c[v >> 2] | 0) + 1; kn( c[k >> 2] | 0, ((c[v >> 2] | 0) - (c[w >> 2] | 0)) | 0, c[w >> 2] | 0, 0, ((c[F >> 2] | 0) - 3) | 0 ); } else { if ( (c[I >> 2] | 0) >>> 0 > (c[x >> 2] | 0) >>> 0 ? ((u = fl(c[J >> 2] | 0) | 0), (u | 0) == (fl(c[v >> 2] | 0) | 0)) : 0 ) { c[F >> 2] = (nn( ((c[v >> 2] | 0) + 4) | 0, ((c[J >> 2] | 0) + 4) | 0, c[z >> 2] | 0 ) | 0) + 4; c[K >> 2] = (c[v >> 2] | 0) - (c[J >> 2] | 0); while (1) { if ( !( ((c[v >> 2] | 0) >>> 0 > (c[w >> 2] | 0) >>> 0 ? (c[J >> 2] | 0) >>> 0 > (c[y >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[v >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[J >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[v >> 2] = (c[v >> 2] | 0) + -1; c[J >> 2] = (c[J >> 2] | 0) + -1; c[F >> 2] = (c[F >> 2] | 0) + 1; } c[C >> 2] = c[B >> 2]; c[B >> 2] = c[K >> 2]; kn( c[k >> 2] | 0, ((c[v >> 2] | 0) - (c[w >> 2] | 0)) | 0, c[w >> 2] | 0, ((c[K >> 2] | 0) + 2) | 0, ((c[F >> 2] | 0) - 3) | 0 ); break; } c[v >> 2] = (c[v >> 2] | 0) + ((((c[v >> 2] | 0) - (c[w >> 2] | 0)) >> 8) + (c[q >> 2] | 0)); continue a; } } while (0); c[v >> 2] = (c[v >> 2] | 0) + (c[F >> 2] | 0); c[w >> 2] = c[v >> 2]; b: do { if ((c[v >> 2] | 0) >>> 0 <= (c[A >> 2] | 0) >>> 0) { o = ((c[H >> 2] | 0) + 2) | 0; E = c[s >> 2] | 0; c[ (E + ((Tk( ((c[t >> 2] | 0) + (c[H >> 2] | 0) + 2) | 0, c[p >> 2] | 0, c[r >> 2] | 0 ) | 0) << 2)) >> 2 ] = o; o = ((c[v >> 2] | 0) + -2 - (c[t >> 2] | 0)) | 0; E = c[s >> 2] | 0; c[ (E + ((Tk( ((c[v >> 2] | 0) + -2) | 0, c[p >> 2] | 0, c[r >> 2] | 0 ) | 0) << 2)) >> 2 ] = o; while (1) { if ((c[v >> 2] | 0) >>> 0 > (c[A >> 2] | 0) >>> 0) break b; o = ((c[C >> 2] | 0) >>> 0 > 0) & 1; E = fl(c[v >> 2] | 0) | 0; if ( !( o & ((E | 0) == (fl( ((c[v >> 2] | 0) + (0 - (c[C >> 2] | 0))) | 0 ) | 0)) ) ) break b; c[L >> 2] = (nn( ((c[v >> 2] | 0) + 4) | 0, ((c[v >> 2] | 0) + 4 + (0 - (c[C >> 2] | 0))) | 0, c[z >> 2] | 0 ) | 0) + 4; c[M >> 2] = c[C >> 2]; c[C >> 2] = c[B >> 2]; c[B >> 2] = c[M >> 2]; E = ((c[v >> 2] | 0) - (c[t >> 2] | 0)) | 0; o = c[s >> 2] | 0; c[ (o + ((Tk( c[v >> 2] | 0, c[p >> 2] | 0, c[r >> 2] | 0 ) | 0) << 2)) >> 2 ] = E; kn( c[k >> 2] | 0, 0, c[w >> 2] | 0, 0, ((c[L >> 2] | 0) - 3) | 0 ); c[v >> 2] = (c[v >> 2] | 0) + (c[L >> 2] | 0); c[w >> 2] = c[v >> 2]; } } } while (0); } c[c[m >> 2] >> 2] = c[B >> 2] | 0 ? c[B >> 2] | 0 : c[D >> 2] | 0; c[((c[m >> 2] | 0) + 4) >> 2] = c[C >> 2] | 0 ? c[C >> 2] | 0 : c[D >> 2] | 0; c[sb >> 2] = (c[z >> 2] | 0) - (c[w >> 2] | 0); Cb = c[sb >> 2] | 0; l = i; return Cb | 0; } case 5: { w = c[ub >> 2] | 0; z = c[vb >> 2] | 0; D = c[xb >> 2] | 0; C = c[yb >> 2] | 0; m = c[zb >> 2] | 0; B = c[Bb >> 2] | 0; c[oa >> 2] = c[tb >> 2]; c[pa >> 2] = w; c[qa >> 2] = z; c[ra >> 2] = D; c[sa >> 2] = C; c[ta >> 2] = m; c[ua >> 2] = B; c[va >> 2] = 5; c[wa >> 2] = c[((c[oa >> 2] | 0) + 36) >> 2]; c[xa >> 2] = c[((c[oa >> 2] | 0) + 4) >> 2]; c[ya >> 2] = c[ra >> 2]; c[za >> 2] = c[ya >> 2]; c[Aa >> 2] = c[ya >> 2]; c[Ba >> 2] = c[((c[oa >> 2] | 0) + 12) >> 2]; c[Ca >> 2] = (c[xa >> 2] | 0) + (c[Ba >> 2] | 0); c[Da >> 2] = (c[ya >> 2] | 0) + (c[sa >> 2] | 0); c[Ea >> 2] = (c[Da >> 2] | 0) + -8; c[Fa >> 2] = c[c[qa >> 2] >> 2]; c[Ga >> 2] = c[((c[qa >> 2] | 0) + 4) >> 2]; c[Ha >> 2] = 0; c[za >> 2] = (c[za >> 2] | 0) + (((c[za >> 2] | 0) == (c[Ca >> 2] | 0)) & 1); c[Ia >> 2] = (c[za >> 2] | 0) - (c[Ca >> 2] | 0); if ((c[Ga >> 2] | 0) >>> 0 > (c[Ia >> 2] | 0) >>> 0) { c[Ha >> 2] = c[Ga >> 2]; c[Ga >> 2] = 0; } if ((c[Fa >> 2] | 0) >>> 0 > (c[Ia >> 2] | 0) >>> 0) { c[Ha >> 2] = c[Fa >> 2]; c[Fa >> 2] = 0; } c: while (1) { if ((c[za >> 2] | 0) >>> 0 >= (c[Ea >> 2] | 0) >>> 0) break; c[Ka >> 2] = Tk(c[za >> 2] | 0, c[ta >> 2] | 0, c[va >> 2] | 0) | 0; c[La >> 2] = (c[za >> 2] | 0) - (c[xa >> 2] | 0); c[Ma >> 2] = c[((c[wa >> 2] | 0) + (c[Ka >> 2] << 2)) >> 2]; c[Na >> 2] = (c[xa >> 2] | 0) + (c[Ma >> 2] | 0); c[((c[wa >> 2] | 0) + (c[Ka >> 2] << 2)) >> 2] = c[La >> 2]; Ia = ((c[Fa >> 2] | 0) >>> 0 > 0) & 1; sa = fl( ((c[za >> 2] | 0) + 1 + (0 - (c[Fa >> 2] | 0))) | 0 ) | 0; do { if ( (Ia & ((sa | 0) == (fl(((c[za >> 2] | 0) + 1) | 0) | 0))) | 0 ) { c[Ja >> 2] = (nn( ((c[za >> 2] | 0) + 1 + 4) | 0, ((c[za >> 2] | 0) + 1 + 4 + (0 - (c[Fa >> 2] | 0))) | 0, c[Da >> 2] | 0 ) | 0) + 4; c[za >> 2] = (c[za >> 2] | 0) + 1; kn( c[pa >> 2] | 0, ((c[za >> 2] | 0) - (c[Aa >> 2] | 0)) | 0, c[Aa >> 2] | 0, 0, ((c[Ja >> 2] | 0) - 3) | 0 ); } else { if ( (c[Ma >> 2] | 0) >>> 0 > (c[Ba >> 2] | 0) >>> 0 ? ((ya = fl(c[Na >> 2] | 0) | 0), (ya | 0) == (fl(c[za >> 2] | 0) | 0)) : 0 ) { c[Ja >> 2] = (nn( ((c[za >> 2] | 0) + 4) | 0, ((c[Na >> 2] | 0) + 4) | 0, c[Da >> 2] | 0 ) | 0) + 4; c[Oa >> 2] = (c[za >> 2] | 0) - (c[Na >> 2] | 0); while (1) { if ( !( ((c[za >> 2] | 0) >>> 0 > (c[Aa >> 2] | 0) >>> 0 ? (c[Na >> 2] | 0) >>> 0 > (c[Ca >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[za >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[Na >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[za >> 2] = (c[za >> 2] | 0) + -1; c[Na >> 2] = (c[Na >> 2] | 0) + -1; c[Ja >> 2] = (c[Ja >> 2] | 0) + 1; } c[Ga >> 2] = c[Fa >> 2]; c[Fa >> 2] = c[Oa >> 2]; kn( c[pa >> 2] | 0, ((c[za >> 2] | 0) - (c[Aa >> 2] | 0)) | 0, c[Aa >> 2] | 0, ((c[Oa >> 2] | 0) + 2) | 0, ((c[Ja >> 2] | 0) - 3) | 0 ); break; } c[za >> 2] = (c[za >> 2] | 0) + ((((c[za >> 2] | 0) - (c[Aa >> 2] | 0)) >> 8) + (c[ua >> 2] | 0)); continue c; } } while (0); c[za >> 2] = (c[za >> 2] | 0) + (c[Ja >> 2] | 0); c[Aa >> 2] = c[za >> 2]; d: do { if ( (c[za >> 2] | 0) >>> 0 <= (c[Ea >> 2] | 0) >>> 0 ) { sa = ((c[La >> 2] | 0) + 2) | 0; Ia = c[wa >> 2] | 0; c[ (Ia + ((Tk( ((c[xa >> 2] | 0) + (c[La >> 2] | 0) + 2) | 0, c[ta >> 2] | 0, c[va >> 2] | 0 ) | 0) << 2)) >> 2 ] = sa; sa = ((c[za >> 2] | 0) + -2 - (c[xa >> 2] | 0)) | 0; Ia = c[wa >> 2] | 0; c[ (Ia + ((Tk( ((c[za >> 2] | 0) + -2) | 0, c[ta >> 2] | 0, c[va >> 2] | 0 ) | 0) << 2)) >> 2 ] = sa; while (1) { if ( (c[za >> 2] | 0) >>> 0 > (c[Ea >> 2] | 0) >>> 0 ) break d; sa = ((c[Ga >> 2] | 0) >>> 0 > 0) & 1; Ia = fl(c[za >> 2] | 0) | 0; if ( !( sa & ((Ia | 0) == (fl( ((c[za >> 2] | 0) + (0 - (c[Ga >> 2] | 0))) | 0 ) | 0)) ) ) break d; c[Pa >> 2] = (nn( ((c[za >> 2] | 0) + 4) | 0, ((c[za >> 2] | 0) + 4 + (0 - (c[Ga >> 2] | 0))) | 0, c[Da >> 2] | 0 ) | 0) + 4; c[Qa >> 2] = c[Ga >> 2]; c[Ga >> 2] = c[Fa >> 2]; c[Fa >> 2] = c[Qa >> 2]; Ia = ((c[za >> 2] | 0) - (c[xa >> 2] | 0)) | 0; sa = c[wa >> 2] | 0; c[ (sa + ((Tk( c[za >> 2] | 0, c[ta >> 2] | 0, c[va >> 2] | 0 ) | 0) << 2)) >> 2 ] = Ia; kn( c[pa >> 2] | 0, 0, c[Aa >> 2] | 0, 0, ((c[Pa >> 2] | 0) - 3) | 0 ); c[za >> 2] = (c[za >> 2] | 0) + (c[Pa >> 2] | 0); c[Aa >> 2] = c[za >> 2]; } } } while (0); } c[c[qa >> 2] >> 2] = c[Fa >> 2] | 0 ? c[Fa >> 2] | 0 : c[Ha >> 2] | 0; c[((c[qa >> 2] | 0) + 4) >> 2] = c[Ga >> 2] | 0 ? c[Ga >> 2] | 0 : c[Ha >> 2] | 0; c[sb >> 2] = (c[Da >> 2] | 0) - (c[Aa >> 2] | 0); Cb = c[sb >> 2] | 0; l = i; return Cb | 0; } case 6: { Aa = c[ub >> 2] | 0; Da = c[vb >> 2] | 0; Ha = c[xb >> 2] | 0; Ga = c[yb >> 2] | 0; qa = c[zb >> 2] | 0; Fa = c[Bb >> 2] | 0; c[N >> 2] = c[tb >> 2]; c[O >> 2] = Aa; c[P >> 2] = Da; c[Q >> 2] = Ha; c[R >> 2] = Ga; c[S >> 2] = qa; c[T >> 2] = Fa; c[U >> 2] = 6; c[V >> 2] = c[((c[N >> 2] | 0) + 36) >> 2]; c[W >> 2] = c[((c[N >> 2] | 0) + 4) >> 2]; c[X >> 2] = c[Q >> 2]; c[Y >> 2] = c[X >> 2]; c[Z >> 2] = c[X >> 2]; c[_ >> 2] = c[((c[N >> 2] | 0) + 12) >> 2]; c[$ >> 2] = (c[W >> 2] | 0) + (c[_ >> 2] | 0); c[aa >> 2] = (c[X >> 2] | 0) + (c[R >> 2] | 0); c[ba >> 2] = (c[aa >> 2] | 0) + -8; c[ca >> 2] = c[c[P >> 2] >> 2]; c[da >> 2] = c[((c[P >> 2] | 0) + 4) >> 2]; c[ea >> 2] = 0; c[Y >> 2] = (c[Y >> 2] | 0) + (((c[Y >> 2] | 0) == (c[$ >> 2] | 0)) & 1); c[fa >> 2] = (c[Y >> 2] | 0) - (c[$ >> 2] | 0); if ((c[da >> 2] | 0) >>> 0 > (c[fa >> 2] | 0) >>> 0) { c[ea >> 2] = c[da >> 2]; c[da >> 2] = 0; } if ((c[ca >> 2] | 0) >>> 0 > (c[fa >> 2] | 0) >>> 0) { c[ea >> 2] = c[ca >> 2]; c[ca >> 2] = 0; } e: while (1) { if ((c[Y >> 2] | 0) >>> 0 >= (c[ba >> 2] | 0) >>> 0) break; c[ha >> 2] = Tk(c[Y >> 2] | 0, c[S >> 2] | 0, c[U >> 2] | 0) | 0; c[ia >> 2] = (c[Y >> 2] | 0) - (c[W >> 2] | 0); c[ja >> 2] = c[((c[V >> 2] | 0) + (c[ha >> 2] << 2)) >> 2]; c[ka >> 2] = (c[W >> 2] | 0) + (c[ja >> 2] | 0); c[((c[V >> 2] | 0) + (c[ha >> 2] << 2)) >> 2] = c[ia >> 2]; fa = ((c[ca >> 2] | 0) >>> 0 > 0) & 1; R = fl( ((c[Y >> 2] | 0) + 1 + (0 - (c[ca >> 2] | 0))) | 0 ) | 0; do { if ( (fa & ((R | 0) == (fl(((c[Y >> 2] | 0) + 1) | 0) | 0))) | 0 ) { c[ga >> 2] = (nn( ((c[Y >> 2] | 0) + 1 + 4) | 0, ((c[Y >> 2] | 0) + 1 + 4 + (0 - (c[ca >> 2] | 0))) | 0, c[aa >> 2] | 0 ) | 0) + 4; c[Y >> 2] = (c[Y >> 2] | 0) + 1; kn( c[O >> 2] | 0, ((c[Y >> 2] | 0) - (c[Z >> 2] | 0)) | 0, c[Z >> 2] | 0, 0, ((c[ga >> 2] | 0) - 3) | 0 ); } else { if ( (c[ja >> 2] | 0) >>> 0 > (c[_ >> 2] | 0) >>> 0 ? ((X = fl(c[ka >> 2] | 0) | 0), (X | 0) == (fl(c[Y >> 2] | 0) | 0)) : 0 ) { c[ga >> 2] = (nn( ((c[Y >> 2] | 0) + 4) | 0, ((c[ka >> 2] | 0) + 4) | 0, c[aa >> 2] | 0 ) | 0) + 4; c[la >> 2] = (c[Y >> 2] | 0) - (c[ka >> 2] | 0); while (1) { if ( !( ((c[Y >> 2] | 0) >>> 0 > (c[Z >> 2] | 0) >>> 0 ? (c[ka >> 2] | 0) >>> 0 > (c[$ >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[Y >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[ka >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[Y >> 2] = (c[Y >> 2] | 0) + -1; c[ka >> 2] = (c[ka >> 2] | 0) + -1; c[ga >> 2] = (c[ga >> 2] | 0) + 1; } c[da >> 2] = c[ca >> 2]; c[ca >> 2] = c[la >> 2]; kn( c[O >> 2] | 0, ((c[Y >> 2] | 0) - (c[Z >> 2] | 0)) | 0, c[Z >> 2] | 0, ((c[la >> 2] | 0) + 2) | 0, ((c[ga >> 2] | 0) - 3) | 0 ); break; } c[Y >> 2] = (c[Y >> 2] | 0) + ((((c[Y >> 2] | 0) - (c[Z >> 2] | 0)) >> 8) + (c[T >> 2] | 0)); continue e; } } while (0); c[Y >> 2] = (c[Y >> 2] | 0) + (c[ga >> 2] | 0); c[Z >> 2] = c[Y >> 2]; f: do { if ((c[Y >> 2] | 0) >>> 0 <= (c[ba >> 2] | 0) >>> 0) { R = ((c[ia >> 2] | 0) + 2) | 0; fa = c[V >> 2] | 0; c[ (fa + ((Tk( ((c[W >> 2] | 0) + (c[ia >> 2] | 0) + 2) | 0, c[S >> 2] | 0, c[U >> 2] | 0 ) | 0) << 2)) >> 2 ] = R; R = ((c[Y >> 2] | 0) + -2 - (c[W >> 2] | 0)) | 0; fa = c[V >> 2] | 0; c[ (fa + ((Tk( ((c[Y >> 2] | 0) + -2) | 0, c[S >> 2] | 0, c[U >> 2] | 0 ) | 0) << 2)) >> 2 ] = R; while (1) { if ( (c[Y >> 2] | 0) >>> 0 > (c[ba >> 2] | 0) >>> 0 ) break f; R = ((c[da >> 2] | 0) >>> 0 > 0) & 1; fa = fl(c[Y >> 2] | 0) | 0; if ( !( R & ((fa | 0) == (fl( ((c[Y >> 2] | 0) + (0 - (c[da >> 2] | 0))) | 0 ) | 0)) ) ) break f; c[ma >> 2] = (nn( ((c[Y >> 2] | 0) + 4) | 0, ((c[Y >> 2] | 0) + 4 + (0 - (c[da >> 2] | 0))) | 0, c[aa >> 2] | 0 ) | 0) + 4; c[na >> 2] = c[da >> 2]; c[da >> 2] = c[ca >> 2]; c[ca >> 2] = c[na >> 2]; fa = ((c[Y >> 2] | 0) - (c[W >> 2] | 0)) | 0; R = c[V >> 2] | 0; c[ (R + ((Tk( c[Y >> 2] | 0, c[S >> 2] | 0, c[U >> 2] | 0 ) | 0) << 2)) >> 2 ] = fa; kn( c[O >> 2] | 0, 0, c[Z >> 2] | 0, 0, ((c[ma >> 2] | 0) - 3) | 0 ); c[Y >> 2] = (c[Y >> 2] | 0) + (c[ma >> 2] | 0); c[Z >> 2] = c[Y >> 2]; } } } while (0); } c[c[P >> 2] >> 2] = c[ca >> 2] | 0 ? c[ca >> 2] | 0 : c[ea >> 2] | 0; c[((c[P >> 2] | 0) + 4) >> 2] = c[da >> 2] | 0 ? c[da >> 2] | 0 : c[ea >> 2] | 0; c[sb >> 2] = (c[aa >> 2] | 0) - (c[Z >> 2] | 0); Cb = c[sb >> 2] | 0; l = i; return Cb | 0; } default: { Z = c[ub >> 2] | 0; ub = c[vb >> 2] | 0; vb = c[xb >> 2] | 0; xb = c[yb >> 2] | 0; yb = c[zb >> 2] | 0; zb = c[Bb >> 2] | 0; c[Ra >> 2] = c[tb >> 2]; c[Sa >> 2] = Z; c[Ta >> 2] = ub; c[Ua >> 2] = vb; c[Va >> 2] = xb; c[Wa >> 2] = yb; c[Xa >> 2] = zb; c[Ya >> 2] = 4; c[Za >> 2] = c[((c[Ra >> 2] | 0) + 36) >> 2]; c[_a >> 2] = c[((c[Ra >> 2] | 0) + 4) >> 2]; c[$a >> 2] = c[Ua >> 2]; c[ab >> 2] = c[$a >> 2]; c[bb >> 2] = c[$a >> 2]; c[cb >> 2] = c[((c[Ra >> 2] | 0) + 12) >> 2]; c[db >> 2] = (c[_a >> 2] | 0) + (c[cb >> 2] | 0); c[eb >> 2] = (c[$a >> 2] | 0) + (c[Va >> 2] | 0); c[fb >> 2] = (c[eb >> 2] | 0) + -8; c[gb >> 2] = c[c[Ta >> 2] >> 2]; c[hb >> 2] = c[((c[Ta >> 2] | 0) + 4) >> 2]; c[ib >> 2] = 0; c[ab >> 2] = (c[ab >> 2] | 0) + (((c[ab >> 2] | 0) == (c[db >> 2] | 0)) & 1); c[jb >> 2] = (c[ab >> 2] | 0) - (c[db >> 2] | 0); if ((c[hb >> 2] | 0) >>> 0 > (c[jb >> 2] | 0) >>> 0) { c[ib >> 2] = c[hb >> 2]; c[hb >> 2] = 0; } if ((c[gb >> 2] | 0) >>> 0 > (c[jb >> 2] | 0) >>> 0) { c[ib >> 2] = c[gb >> 2]; c[gb >> 2] = 0; } g: while (1) { if ((c[ab >> 2] | 0) >>> 0 >= (c[fb >> 2] | 0) >>> 0) break; c[lb >> 2] = Tk(c[ab >> 2] | 0, c[Wa >> 2] | 0, c[Ya >> 2] | 0) | 0; c[mb >> 2] = (c[ab >> 2] | 0) - (c[_a >> 2] | 0); c[nb >> 2] = c[((c[Za >> 2] | 0) + (c[lb >> 2] << 2)) >> 2]; c[ob >> 2] = (c[_a >> 2] | 0) + (c[nb >> 2] | 0); c[((c[Za >> 2] | 0) + (c[lb >> 2] << 2)) >> 2] = c[mb >> 2]; jb = ((c[gb >> 2] | 0) >>> 0 > 0) & 1; Va = fl( ((c[ab >> 2] | 0) + 1 + (0 - (c[gb >> 2] | 0))) | 0 ) | 0; do { if ( (jb & ((Va | 0) == (fl(((c[ab >> 2] | 0) + 1) | 0) | 0))) | 0 ) { c[kb >> 2] = (nn( ((c[ab >> 2] | 0) + 1 + 4) | 0, ((c[ab >> 2] | 0) + 1 + 4 + (0 - (c[gb >> 2] | 0))) | 0, c[eb >> 2] | 0 ) | 0) + 4; c[ab >> 2] = (c[ab >> 2] | 0) + 1; kn( c[Sa >> 2] | 0, ((c[ab >> 2] | 0) - (c[bb >> 2] | 0)) | 0, c[bb >> 2] | 0, 0, ((c[kb >> 2] | 0) - 3) | 0 ); } else { if ( (c[nb >> 2] | 0) >>> 0 > (c[cb >> 2] | 0) >>> 0 ? (($a = fl(c[ob >> 2] | 0) | 0), ($a | 0) == (fl(c[ab >> 2] | 0) | 0)) : 0 ) { c[kb >> 2] = (nn( ((c[ab >> 2] | 0) + 4) | 0, ((c[ob >> 2] | 0) + 4) | 0, c[eb >> 2] | 0 ) | 0) + 4; c[pb >> 2] = (c[ab >> 2] | 0) - (c[ob >> 2] | 0); while (1) { if ( !( ((c[ab >> 2] | 0) >>> 0 > (c[bb >> 2] | 0) >>> 0 ? (c[ob >> 2] | 0) >>> 0 > (c[db >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[ab >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[ob >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[ab >> 2] = (c[ab >> 2] | 0) + -1; c[ob >> 2] = (c[ob >> 2] | 0) + -1; c[kb >> 2] = (c[kb >> 2] | 0) + 1; } c[hb >> 2] = c[gb >> 2]; c[gb >> 2] = c[pb >> 2]; kn( c[Sa >> 2] | 0, ((c[ab >> 2] | 0) - (c[bb >> 2] | 0)) | 0, c[bb >> 2] | 0, ((c[pb >> 2] | 0) + 2) | 0, ((c[kb >> 2] | 0) - 3) | 0 ); break; } c[ab >> 2] = (c[ab >> 2] | 0) + ((((c[ab >> 2] | 0) - (c[bb >> 2] | 0)) >> 8) + (c[Xa >> 2] | 0)); continue g; } } while (0); c[ab >> 2] = (c[ab >> 2] | 0) + (c[kb >> 2] | 0); c[bb >> 2] = c[ab >> 2]; h: do { if ( (c[ab >> 2] | 0) >>> 0 <= (c[fb >> 2] | 0) >>> 0 ) { Va = ((c[mb >> 2] | 0) + 2) | 0; jb = c[Za >> 2] | 0; c[ (jb + ((Tk( ((c[_a >> 2] | 0) + (c[mb >> 2] | 0) + 2) | 0, c[Wa >> 2] | 0, c[Ya >> 2] | 0 ) | 0) << 2)) >> 2 ] = Va; Va = ((c[ab >> 2] | 0) + -2 - (c[_a >> 2] | 0)) | 0; jb = c[Za >> 2] | 0; c[ (jb + ((Tk( ((c[ab >> 2] | 0) + -2) | 0, c[Wa >> 2] | 0, c[Ya >> 2] | 0 ) | 0) << 2)) >> 2 ] = Va; while (1) { if ( (c[ab >> 2] | 0) >>> 0 > (c[fb >> 2] | 0) >>> 0 ) break h; Va = ((c[hb >> 2] | 0) >>> 0 > 0) & 1; jb = fl(c[ab >> 2] | 0) | 0; if ( !( Va & ((jb | 0) == (fl( ((c[ab >> 2] | 0) + (0 - (c[hb >> 2] | 0))) | 0 ) | 0)) ) ) break h; c[qb >> 2] = (nn( ((c[ab >> 2] | 0) + 4) | 0, ((c[ab >> 2] | 0) + 4 + (0 - (c[hb >> 2] | 0))) | 0, c[eb >> 2] | 0 ) | 0) + 4; c[rb >> 2] = c[hb >> 2]; c[hb >> 2] = c[gb >> 2]; c[gb >> 2] = c[rb >> 2]; jb = ((c[ab >> 2] | 0) - (c[_a >> 2] | 0)) | 0; Va = c[Za >> 2] | 0; c[ (Va + ((Tk( c[ab >> 2] | 0, c[Wa >> 2] | 0, c[Ya >> 2] | 0 ) | 0) << 2)) >> 2 ] = jb; kn( c[Sa >> 2] | 0, 0, c[bb >> 2] | 0, 0, ((c[qb >> 2] | 0) - 3) | 0 ); c[ab >> 2] = (c[ab >> 2] | 0) + (c[qb >> 2] | 0); c[bb >> 2] = c[ab >> 2]; } } } while (0); } c[c[Ta >> 2] >> 2] = c[gb >> 2] | 0 ? c[gb >> 2] | 0 : c[ib >> 2] | 0; c[((c[Ta >> 2] | 0) + 4) >> 2] = c[hb >> 2] | 0 ? c[hb >> 2] | 0 : c[ib >> 2] | 0; c[sb >> 2] = (c[eb >> 2] | 0) - (c[bb >> 2] | 0); Cb = c[sb >> 2] | 0; l = i; return Cb | 0; } } return 0; } function Yl(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0; i = l; l = (l + 624) | 0; j = (i + 620) | 0; k = (i + 616) | 0; m = (i + 612) | 0; n = (i + 608) | 0; o = (i + 604) | 0; p = (i + 600) | 0; q = (i + 596) | 0; r = (i + 592) | 0; s = (i + 588) | 0; t = (i + 584) | 0; u = (i + 580) | 0; v = (i + 576) | 0; w = (i + 572) | 0; x = (i + 568) | 0; z = (i + 564) | 0; A = (i + 560) | 0; B = (i + 556) | 0; C = (i + 552) | 0; D = (i + 548) | 0; E = (i + 544) | 0; F = (i + 540) | 0; G = (i + 536) | 0; H = (i + 532) | 0; I = (i + 528) | 0; J = (i + 524) | 0; K = (i + 520) | 0; L = (i + 516) | 0; M = (i + 512) | 0; N = (i + 508) | 0; O = (i + 504) | 0; P = (i + 500) | 0; Q = (i + 496) | 0; R = (i + 492) | 0; S = (i + 488) | 0; T = (i + 484) | 0; U = (i + 480) | 0; V = (i + 476) | 0; W = (i + 472) | 0; X = (i + 468) | 0; Y = (i + 464) | 0; Z = (i + 460) | 0; _ = (i + 456) | 0; $ = (i + 452) | 0; aa = (i + 448) | 0; ba = (i + 444) | 0; ca = (i + 440) | 0; da = (i + 436) | 0; ea = (i + 432) | 0; fa = (i + 428) | 0; ga = (i + 424) | 0; ha = (i + 420) | 0; ia = (i + 416) | 0; ja = (i + 412) | 0; ka = (i + 408) | 0; la = (i + 404) | 0; ma = (i + 400) | 0; na = (i + 396) | 0; oa = (i + 392) | 0; pa = (i + 388) | 0; qa = (i + 384) | 0; ra = (i + 380) | 0; sa = (i + 376) | 0; ta = (i + 372) | 0; ua = (i + 368) | 0; va = (i + 364) | 0; wa = (i + 360) | 0; xa = (i + 356) | 0; ya = (i + 352) | 0; za = (i + 348) | 0; Aa = (i + 344) | 0; Ba = (i + 340) | 0; Ca = (i + 336) | 0; Da = (i + 332) | 0; Ea = (i + 328) | 0; Fa = (i + 324) | 0; Ga = (i + 320) | 0; Ha = (i + 316) | 0; Ia = (i + 312) | 0; Ja = (i + 308) | 0; Ka = (i + 304) | 0; La = (i + 300) | 0; Ma = (i + 296) | 0; Na = (i + 292) | 0; Oa = (i + 288) | 0; Pa = (i + 284) | 0; Qa = (i + 280) | 0; Ra = (i + 276) | 0; Sa = (i + 272) | 0; Ta = (i + 268) | 0; Ua = (i + 264) | 0; Va = (i + 260) | 0; Wa = (i + 256) | 0; Xa = (i + 252) | 0; Ya = (i + 248) | 0; Za = (i + 244) | 0; _a = (i + 240) | 0; $a = (i + 236) | 0; ab = (i + 232) | 0; bb = (i + 228) | 0; cb = (i + 224) | 0; db = (i + 220) | 0; eb = (i + 216) | 0; fb = (i + 212) | 0; gb = (i + 208) | 0; hb = (i + 204) | 0; ib = (i + 200) | 0; jb = (i + 196) | 0; kb = (i + 192) | 0; lb = (i + 188) | 0; mb = (i + 184) | 0; nb = (i + 180) | 0; ob = (i + 176) | 0; pb = (i + 172) | 0; qb = (i + 168) | 0; rb = (i + 164) | 0; sb = (i + 160) | 0; tb = (i + 156) | 0; ub = (i + 152) | 0; vb = (i + 148) | 0; wb = (i + 144) | 0; xb = (i + 140) | 0; yb = (i + 136) | 0; zb = (i + 132) | 0; Ab = (i + 128) | 0; Bb = (i + 124) | 0; Cb = (i + 120) | 0; Db = (i + 116) | 0; Eb = (i + 112) | 0; Fb = (i + 108) | 0; Gb = (i + 104) | 0; Hb = (i + 100) | 0; Ib = (i + 96) | 0; Jb = (i + 92) | 0; Kb = (i + 88) | 0; Lb = (i + 84) | 0; Mb = (i + 80) | 0; Nb = (i + 76) | 0; Ob = (i + 72) | 0; Pb = (i + 68) | 0; Qb = (i + 64) | 0; Rb = (i + 60) | 0; Sb = (i + 56) | 0; Tb = (i + 52) | 0; Ub = (i + 48) | 0; Vb = (i + 44) | 0; Wb = (i + 40) | 0; Xb = (i + 36) | 0; Yb = (i + 32) | 0; Zb = (i + 28) | 0; _b = (i + 24) | 0; $b = (i + 20) | 0; ac = (i + 16) | 0; bc = (i + 12) | 0; cc = (i + 8) | 0; dc = (i + 4) | 0; ec = i; c[_b >> 2] = a; c[$b >> 2] = b; c[ac >> 2] = e; c[bc >> 2] = f; c[cc >> 2] = g; c[dc >> 2] = h; c[ec >> 2] = c[((c[bc >> 2] | 0) + 16) >> 2]; switch (c[ec >> 2] | 0) { case 7: { ec = c[$b >> 2] | 0; h = c[ac >> 2] | 0; g = c[bc >> 2] | 0; f = c[cc >> 2] | 0; e = c[dc >> 2] | 0; c[j >> 2] = c[_b >> 2]; c[k >> 2] = ec; c[m >> 2] = h; c[n >> 2] = g; c[o >> 2] = f; c[p >> 2] = e; c[q >> 2] = 7; c[r >> 2] = c[((c[j >> 2] | 0) + 36) >> 2]; c[s >> 2] = c[((c[n >> 2] | 0) + 8) >> 2]; c[t >> 2] = c[((c[j >> 2] | 0) + 44) >> 2]; c[u >> 2] = c[((c[n >> 2] | 0) + 4) >> 2]; c[v >> 2] = c[((c[j >> 2] | 0) + 4) >> 2]; c[w >> 2] = c[o >> 2]; c[x >> 2] = c[w >> 2]; c[z >> 2] = c[w >> 2]; c[A >> 2] = c[((c[j >> 2] | 0) + 12) >> 2]; c[B >> 2] = (c[v >> 2] | 0) + (c[A >> 2] | 0); c[C >> 2] = (c[w >> 2] | 0) + (c[p >> 2] | 0); c[D >> 2] = (c[C >> 2] | 0) + -8; c[E >> 2] = c[c[m >> 2] >> 2]; c[F >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[G >> 2] = 0; c[x >> 2] = (c[x >> 2] | 0) + (((c[x >> 2] | 0) == (c[B >> 2] | 0)) & 1); c[H >> 2] = (c[x >> 2] | 0) - (c[B >> 2] | 0); if ((c[F >> 2] | 0) >>> 0 > (c[H >> 2] | 0) >>> 0) { c[G >> 2] = c[F >> 2]; c[F >> 2] = 0; } if ((c[E >> 2] | 0) >>> 0 > (c[H >> 2] | 0) >>> 0) { c[G >> 2] = c[E >> 2]; c[E >> 2] = 0; } a: while (1) { if ((c[x >> 2] | 0) >>> 0 >= (c[D >> 2] | 0) >>> 0) break; c[J >> 2] = Dk(c[x >> 2] | 0, c[s >> 2] | 0, 8) | 0; c[K >> 2] = Dk(c[x >> 2] | 0, c[u >> 2] | 0, c[q >> 2] | 0) | 0; c[L >> 2] = (c[x >> 2] | 0) - (c[v >> 2] | 0); c[M >> 2] = c[((c[r >> 2] | 0) + (c[J >> 2] << 2)) >> 2]; c[N >> 2] = c[((c[t >> 2] | 0) + (c[K >> 2] << 2)) >> 2]; c[O >> 2] = (c[v >> 2] | 0) + (c[M >> 2] | 0); c[P >> 2] = (c[v >> 2] | 0) + (c[N >> 2] | 0); H = c[L >> 2] | 0; c[((c[t >> 2] | 0) + (c[K >> 2] << 2)) >> 2] = H; c[((c[r >> 2] | 0) + (c[J >> 2] << 2)) >> 2] = H; H = ((c[E >> 2] | 0) >>> 0 > 0) & 1; p = Rk( ((c[x >> 2] | 0) + 1 + (0 - (c[E >> 2] | 0))) | 0 ) | 0; if ( (H & ((p | 0) == (Rk(((c[x >> 2] | 0) + 1) | 0) | 0))) | 0 ) { c[I >> 2] = (cn( ((c[x >> 2] | 0) + 1 + 4) | 0, ((c[x >> 2] | 0) + 1 + 4 + (0 - (c[E >> 2] | 0))) | 0, c[C >> 2] | 0 ) | 0) + 4; c[x >> 2] = (c[x >> 2] | 0) + 1; $m( c[k >> 2] | 0, ((c[x >> 2] | 0) - (c[z >> 2] | 0)) | 0, c[z >> 2] | 0, 0, ((c[I >> 2] | 0) - 3) | 0 ); } else { b: do { if ( (c[M >> 2] | 0) >>> 0 > (c[A >> 2] | 0) >>> 0 ? ((p = Mk(c[O >> 2] | 0) | 0), (H = y), (w = Mk(c[x >> 2] | 0) | 0), ((p | 0) == (w | 0)) & ((H | 0) == (y | 0))) : 0 ) { c[I >> 2] = (cn( ((c[x >> 2] | 0) + 8) | 0, ((c[O >> 2] | 0) + 8) | 0, c[C >> 2] | 0 ) | 0) + 8; c[Q >> 2] = (c[x >> 2] | 0) - (c[O >> 2] | 0); while (1) { if ( !( ((c[x >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (c[O >> 2] | 0) >>> 0 > (c[B >> 2] | 0) >>> 0 : 0) | 0 ) ) break b; if ( (d[((c[x >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[O >> 2] | 0) + -1) >> 0] | 0 | 0) ) break b; c[x >> 2] = (c[x >> 2] | 0) + -1; c[O >> 2] = (c[O >> 2] | 0) + -1; c[I >> 2] = (c[I >> 2] | 0) + 1; } } else fc = 121; } while (0); c: do { if ((fc | 0) == 121) { fc = 0; if ( (c[N >> 2] | 0) >>> 0 > (c[A >> 2] | 0) >>> 0 ? ((H = Rk(c[P >> 2] | 0) | 0), (H | 0) == (Rk(c[x >> 2] | 0) | 0)) : 0 ) { c[R >> 2] = Dk( ((c[x >> 2] | 0) + 1) | 0, c[s >> 2] | 0, 8 ) | 0; c[S >> 2] = c[((c[r >> 2] | 0) + (c[R >> 2] << 2)) >> 2]; c[T >> 2] = (c[v >> 2] | 0) + (c[S >> 2] | 0); c[((c[r >> 2] | 0) + (c[R >> 2] << 2)) >> 2] = (c[L >> 2] | 0) + 1; if ( (c[S >> 2] | 0) >>> 0 > (c[A >> 2] | 0) >>> 0 ? ((H = Mk(c[T >> 2] | 0) | 0), (w = y), (p = Mk(((c[x >> 2] | 0) + 1) | 0) | 0), ((H | 0) == (p | 0)) & ((w | 0) == (y | 0))) : 0 ) { c[I >> 2] = (cn( ((c[x >> 2] | 0) + 9) | 0, ((c[T >> 2] | 0) + 8) | 0, c[C >> 2] | 0 ) | 0) + 8; c[x >> 2] = (c[x >> 2] | 0) + 1; c[Q >> 2] = (c[x >> 2] | 0) - (c[T >> 2] | 0); while (1) { if ( !( ((c[x >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (c[T >> 2] | 0) >>> 0 > (c[B >> 2] | 0) >>> 0 : 0) | 0 ) ) break c; if ( (d[((c[x >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[T >> 2] | 0) + -1) >> 0] | 0 | 0) ) break c; c[x >> 2] = (c[x >> 2] | 0) + -1; c[T >> 2] = (c[T >> 2] | 0) + -1; c[I >> 2] = (c[I >> 2] | 0) + 1; } } c[I >> 2] = (cn( ((c[x >> 2] | 0) + 4) | 0, ((c[P >> 2] | 0) + 4) | 0, c[C >> 2] | 0 ) | 0) + 4; c[Q >> 2] = (c[x >> 2] | 0) - (c[P >> 2] | 0); while (1) { if ( !( ((c[x >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (c[P >> 2] | 0) >>> 0 > (c[B >> 2] | 0) >>> 0 : 0) | 0 ) ) break c; if ( (d[((c[x >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[P >> 2] | 0) + -1) >> 0] | 0 | 0) ) break c; c[x >> 2] = (c[x >> 2] | 0) + -1; c[P >> 2] = (c[P >> 2] | 0) + -1; c[I >> 2] = (c[I >> 2] | 0) + 1; } } c[x >> 2] = (c[x >> 2] | 0) + ((((c[x >> 2] | 0) - (c[z >> 2] | 0)) >> 8) + 1); continue a; } } while (0); c[F >> 2] = c[E >> 2]; c[E >> 2] = c[Q >> 2]; $m( c[k >> 2] | 0, ((c[x >> 2] | 0) - (c[z >> 2] | 0)) | 0, c[z >> 2] | 0, ((c[Q >> 2] | 0) + 2) | 0, ((c[I >> 2] | 0) - 3) | 0 ); } c[x >> 2] = (c[x >> 2] | 0) + (c[I >> 2] | 0); c[z >> 2] = c[x >> 2]; d: do { if ((c[x >> 2] | 0) >>> 0 <= (c[D >> 2] | 0) >>> 0) { w = ((c[L >> 2] | 0) + 2) | 0; p = c[t >> 2] | 0; c[ (p + ((Dk( ((c[v >> 2] | 0) + (c[L >> 2] | 0) + 2) | 0, c[u >> 2] | 0, c[q >> 2] | 0 ) | 0) << 2)) >> 2 ] = w; p = c[r >> 2] | 0; c[ (p + ((Dk( ((c[v >> 2] | 0) + (c[L >> 2] | 0) + 2) | 0, c[s >> 2] | 0, 8 ) | 0) << 2)) >> 2 ] = w; w = ((c[x >> 2] | 0) + -2 - (c[v >> 2] | 0)) | 0; p = c[t >> 2] | 0; c[ (p + ((Dk( ((c[x >> 2] | 0) + -2) | 0, c[u >> 2] | 0, c[q >> 2] | 0 ) | 0) << 2)) >> 2 ] = w; p = c[r >> 2] | 0; c[ (p + ((Dk( ((c[x >> 2] | 0) + -2) | 0, c[s >> 2] | 0, 8 ) | 0) << 2)) >> 2 ] = w; while (1) { if ((c[x >> 2] | 0) >>> 0 > (c[D >> 2] | 0) >>> 0) break d; w = ((c[F >> 2] | 0) >>> 0 > 0) & 1; p = Rk(c[x >> 2] | 0) | 0; if ( !( w & ((p | 0) == (Rk( ((c[x >> 2] | 0) + (0 - (c[F >> 2] | 0))) | 0 ) | 0)) ) ) break d; c[U >> 2] = (cn( ((c[x >> 2] | 0) + 4) | 0, ((c[x >> 2] | 0) + 4 + (0 - (c[F >> 2] | 0))) | 0, c[C >> 2] | 0 ) | 0) + 4; c[V >> 2] = c[F >> 2]; c[F >> 2] = c[E >> 2]; c[E >> 2] = c[V >> 2]; p = ((c[x >> 2] | 0) - (c[v >> 2] | 0)) | 0; w = c[t >> 2] | 0; c[ (w + ((Dk( c[x >> 2] | 0, c[u >> 2] | 0, c[q >> 2] | 0 ) | 0) << 2)) >> 2 ] = p; p = ((c[x >> 2] | 0) - (c[v >> 2] | 0)) | 0; w = c[r >> 2] | 0; c[ (w + ((Dk(c[x >> 2] | 0, c[s >> 2] | 0, 8) | 0) << 2)) >> 2 ] = p; $m( c[k >> 2] | 0, 0, c[z >> 2] | 0, 0, ((c[U >> 2] | 0) - 3) | 0 ); c[x >> 2] = (c[x >> 2] | 0) + (c[U >> 2] | 0); c[z >> 2] = c[x >> 2]; } } } while (0); } c[c[m >> 2] >> 2] = c[E >> 2] | 0 ? c[E >> 2] | 0 : c[G >> 2] | 0; c[((c[m >> 2] | 0) + 4) >> 2] = c[F >> 2] | 0 ? c[F >> 2] | 0 : c[G >> 2] | 0; c[Zb >> 2] = (c[C >> 2] | 0) - (c[z >> 2] | 0); gc = c[Zb >> 2] | 0; l = i; return gc | 0; } case 5: { z = c[$b >> 2] | 0; C = c[ac >> 2] | 0; G = c[bc >> 2] | 0; F = c[cc >> 2] | 0; m = c[dc >> 2] | 0; c[Fa >> 2] = c[_b >> 2]; c[Ga >> 2] = z; c[Ha >> 2] = C; c[Ia >> 2] = G; c[Ja >> 2] = F; c[Ka >> 2] = m; c[La >> 2] = 5; c[Ma >> 2] = c[((c[Fa >> 2] | 0) + 36) >> 2]; c[Na >> 2] = c[((c[Ia >> 2] | 0) + 8) >> 2]; c[Oa >> 2] = c[((c[Fa >> 2] | 0) + 44) >> 2]; c[Pa >> 2] = c[((c[Ia >> 2] | 0) + 4) >> 2]; c[Qa >> 2] = c[((c[Fa >> 2] | 0) + 4) >> 2]; c[Ra >> 2] = c[Ja >> 2]; c[Sa >> 2] = c[Ra >> 2]; c[Ta >> 2] = c[Ra >> 2]; c[Ua >> 2] = c[((c[Fa >> 2] | 0) + 12) >> 2]; c[Va >> 2] = (c[Qa >> 2] | 0) + (c[Ua >> 2] | 0); c[Wa >> 2] = (c[Ra >> 2] | 0) + (c[Ka >> 2] | 0); c[Xa >> 2] = (c[Wa >> 2] | 0) + -8; c[Ya >> 2] = c[c[Ha >> 2] >> 2]; c[Za >> 2] = c[((c[Ha >> 2] | 0) + 4) >> 2]; c[_a >> 2] = 0; c[Sa >> 2] = (c[Sa >> 2] | 0) + (((c[Sa >> 2] | 0) == (c[Va >> 2] | 0)) & 1); c[$a >> 2] = (c[Sa >> 2] | 0) - (c[Va >> 2] | 0); if ((c[Za >> 2] | 0) >>> 0 > (c[$a >> 2] | 0) >>> 0) { c[_a >> 2] = c[Za >> 2]; c[Za >> 2] = 0; } if ((c[Ya >> 2] | 0) >>> 0 > (c[$a >> 2] | 0) >>> 0) { c[_a >> 2] = c[Ya >> 2]; c[Ya >> 2] = 0; } e: while (1) { if ((c[Sa >> 2] | 0) >>> 0 >= (c[Xa >> 2] | 0) >>> 0) break; c[bb >> 2] = Dk(c[Sa >> 2] | 0, c[Na >> 2] | 0, 8) | 0; c[cb >> 2] = Dk(c[Sa >> 2] | 0, c[Pa >> 2] | 0, c[La >> 2] | 0) | 0; c[db >> 2] = (c[Sa >> 2] | 0) - (c[Qa >> 2] | 0); c[eb >> 2] = c[((c[Ma >> 2] | 0) + (c[bb >> 2] << 2)) >> 2]; c[fb >> 2] = c[((c[Oa >> 2] | 0) + (c[cb >> 2] << 2)) >> 2]; c[gb >> 2] = (c[Qa >> 2] | 0) + (c[eb >> 2] | 0); c[hb >> 2] = (c[Qa >> 2] | 0) + (c[fb >> 2] | 0); $a = c[db >> 2] | 0; c[((c[Oa >> 2] | 0) + (c[cb >> 2] << 2)) >> 2] = $a; c[((c[Ma >> 2] | 0) + (c[bb >> 2] << 2)) >> 2] = $a; $a = ((c[Ya >> 2] | 0) >>> 0 > 0) & 1; Ka = Rk( ((c[Sa >> 2] | 0) + 1 + (0 - (c[Ya >> 2] | 0))) | 0 ) | 0; if ( ($a & ((Ka | 0) == (Rk(((c[Sa >> 2] | 0) + 1) | 0) | 0))) | 0 ) { c[ab >> 2] = (cn( ((c[Sa >> 2] | 0) + 1 + 4) | 0, ((c[Sa >> 2] | 0) + 1 + 4 + (0 - (c[Ya >> 2] | 0))) | 0, c[Wa >> 2] | 0 ) | 0) + 4; c[Sa >> 2] = (c[Sa >> 2] | 0) + 1; $m( c[Ga >> 2] | 0, ((c[Sa >> 2] | 0) - (c[Ta >> 2] | 0)) | 0, c[Ta >> 2] | 0, 0, ((c[ab >> 2] | 0) - 3) | 0 ); } else { f: do { if ( (c[eb >> 2] | 0) >>> 0 > (c[Ua >> 2] | 0) >>> 0 ? ((Ka = Mk(c[gb >> 2] | 0) | 0), ($a = y), (Ra = Mk(c[Sa >> 2] | 0) | 0), ((Ka | 0) == (Ra | 0)) & (($a | 0) == (y | 0))) : 0 ) { c[ab >> 2] = (cn( ((c[Sa >> 2] | 0) + 8) | 0, ((c[gb >> 2] | 0) + 8) | 0, c[Wa >> 2] | 0 ) | 0) + 8; c[ib >> 2] = (c[Sa >> 2] | 0) - (c[gb >> 2] | 0); while (1) { if ( !( ((c[Sa >> 2] | 0) >>> 0 > (c[Ta >> 2] | 0) >>> 0 ? (c[gb >> 2] | 0) >>> 0 > (c[Va >> 2] | 0) >>> 0 : 0) | 0 ) ) break f; if ( (d[((c[Sa >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[gb >> 2] | 0) + -1) >> 0] | 0 | 0) ) break f; c[Sa >> 2] = (c[Sa >> 2] | 0) + -1; c[gb >> 2] = (c[gb >> 2] | 0) + -1; c[ab >> 2] = (c[ab >> 2] | 0) + 1; } } else fc = 51; } while (0); g: do { if ((fc | 0) == 51) { fc = 0; if ( (c[fb >> 2] | 0) >>> 0 > (c[Ua >> 2] | 0) >>> 0 ? (($a = Rk(c[hb >> 2] | 0) | 0), ($a | 0) == (Rk(c[Sa >> 2] | 0) | 0)) : 0 ) { c[jb >> 2] = Dk( ((c[Sa >> 2] | 0) + 1) | 0, c[Na >> 2] | 0, 8 ) | 0; c[kb >> 2] = c[ ((c[Ma >> 2] | 0) + (c[jb >> 2] << 2)) >> 2 ]; c[lb >> 2] = (c[Qa >> 2] | 0) + (c[kb >> 2] | 0); c[((c[Ma >> 2] | 0) + (c[jb >> 2] << 2)) >> 2] = (c[db >> 2] | 0) + 1; if ( (c[kb >> 2] | 0) >>> 0 > (c[Ua >> 2] | 0) >>> 0 ? (($a = Mk(c[lb >> 2] | 0) | 0), (Ra = y), (Ka = Mk(((c[Sa >> 2] | 0) + 1) | 0) | 0), (($a | 0) == (Ka | 0)) & ((Ra | 0) == (y | 0))) : 0 ) { c[ab >> 2] = (cn( ((c[Sa >> 2] | 0) + 9) | 0, ((c[lb >> 2] | 0) + 8) | 0, c[Wa >> 2] | 0 ) | 0) + 8; c[Sa >> 2] = (c[Sa >> 2] | 0) + 1; c[ib >> 2] = (c[Sa >> 2] | 0) - (c[lb >> 2] | 0); while (1) { if ( !( ((c[Sa >> 2] | 0) >>> 0 > (c[Ta >> 2] | 0) >>> 0 ? (c[lb >> 2] | 0) >>> 0 > (c[Va >> 2] | 0) >>> 0 : 0) | 0 ) ) break g; if ( (d[((c[Sa >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[lb >> 2] | 0) + -1) >> 0] | 0 | 0) ) break g; c[Sa >> 2] = (c[Sa >> 2] | 0) + -1; c[lb >> 2] = (c[lb >> 2] | 0) + -1; c[ab >> 2] = (c[ab >> 2] | 0) + 1; } } c[ab >> 2] = (cn( ((c[Sa >> 2] | 0) + 4) | 0, ((c[hb >> 2] | 0) + 4) | 0, c[Wa >> 2] | 0 ) | 0) + 4; c[ib >> 2] = (c[Sa >> 2] | 0) - (c[hb >> 2] | 0); while (1) { if ( !( ((c[Sa >> 2] | 0) >>> 0 > (c[Ta >> 2] | 0) >>> 0 ? (c[hb >> 2] | 0) >>> 0 > (c[Va >> 2] | 0) >>> 0 : 0) | 0 ) ) break g; if ( (d[((c[Sa >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[hb >> 2] | 0) + -1) >> 0] | 0 | 0) ) break g; c[Sa >> 2] = (c[Sa >> 2] | 0) + -1; c[hb >> 2] = (c[hb >> 2] | 0) + -1; c[ab >> 2] = (c[ab >> 2] | 0) + 1; } } c[Sa >> 2] = (c[Sa >> 2] | 0) + ((((c[Sa >> 2] | 0) - (c[Ta >> 2] | 0)) >> 8) + 1); continue e; } } while (0); c[Za >> 2] = c[Ya >> 2]; c[Ya >> 2] = c[ib >> 2]; $m( c[Ga >> 2] | 0, ((c[Sa >> 2] | 0) - (c[Ta >> 2] | 0)) | 0, c[Ta >> 2] | 0, ((c[ib >> 2] | 0) + 2) | 0, ((c[ab >> 2] | 0) - 3) | 0 ); } c[Sa >> 2] = (c[Sa >> 2] | 0) + (c[ab >> 2] | 0); c[Ta >> 2] = c[Sa >> 2]; h: do { if ( (c[Sa >> 2] | 0) >>> 0 <= (c[Xa >> 2] | 0) >>> 0 ) { Ra = ((c[db >> 2] | 0) + 2) | 0; Ka = c[Oa >> 2] | 0; c[ (Ka + ((Dk( ((c[Qa >> 2] | 0) + (c[db >> 2] | 0) + 2) | 0, c[Pa >> 2] | 0, c[La >> 2] | 0 ) | 0) << 2)) >> 2 ] = Ra; Ka = c[Ma >> 2] | 0; c[ (Ka + ((Dk( ((c[Qa >> 2] | 0) + (c[db >> 2] | 0) + 2) | 0, c[Na >> 2] | 0, 8 ) | 0) << 2)) >> 2 ] = Ra; Ra = ((c[Sa >> 2] | 0) + -2 - (c[Qa >> 2] | 0)) | 0; Ka = c[Oa >> 2] | 0; c[ (Ka + ((Dk( ((c[Sa >> 2] | 0) + -2) | 0, c[Pa >> 2] | 0, c[La >> 2] | 0 ) | 0) << 2)) >> 2 ] = Ra; Ka = c[Ma >> 2] | 0; c[ (Ka + ((Dk( ((c[Sa >> 2] | 0) + -2) | 0, c[Na >> 2] | 0, 8 ) | 0) << 2)) >> 2 ] = Ra; while (1) { if ( (c[Sa >> 2] | 0) >>> 0 > (c[Xa >> 2] | 0) >>> 0 ) break h; Ra = ((c[Za >> 2] | 0) >>> 0 > 0) & 1; Ka = Rk(c[Sa >> 2] | 0) | 0; if ( !( Ra & ((Ka | 0) == (Rk( ((c[Sa >> 2] | 0) + (0 - (c[Za >> 2] | 0))) | 0 ) | 0)) ) ) break h; c[mb >> 2] = (cn( ((c[Sa >> 2] | 0) + 4) | 0, ((c[Sa >> 2] | 0) + 4 + (0 - (c[Za >> 2] | 0))) | 0, c[Wa >> 2] | 0 ) | 0) + 4; c[nb >> 2] = c[Za >> 2]; c[Za >> 2] = c[Ya >> 2]; c[Ya >> 2] = c[nb >> 2]; Ka = ((c[Sa >> 2] | 0) - (c[Qa >> 2] | 0)) | 0; Ra = c[Oa >> 2] | 0; c[ (Ra + ((Dk( c[Sa >> 2] | 0, c[Pa >> 2] | 0, c[La >> 2] | 0 ) | 0) << 2)) >> 2 ] = Ka; Ka = ((c[Sa >> 2] | 0) - (c[Qa >> 2] | 0)) | 0; Ra = c[Ma >> 2] | 0; c[ (Ra + ((Dk(c[Sa >> 2] | 0, c[Na >> 2] | 0, 8) | 0) << 2)) >> 2 ] = Ka; $m( c[Ga >> 2] | 0, 0, c[Ta >> 2] | 0, 0, ((c[mb >> 2] | 0) - 3) | 0 ); c[Sa >> 2] = (c[Sa >> 2] | 0) + (c[mb >> 2] | 0); c[Ta >> 2] = c[Sa >> 2]; } } } while (0); } c[c[Ha >> 2] >> 2] = c[Ya >> 2] | 0 ? c[Ya >> 2] | 0 : c[_a >> 2] | 0; c[((c[Ha >> 2] | 0) + 4) >> 2] = c[Za >> 2] | 0 ? c[Za >> 2] | 0 : c[_a >> 2] | 0; c[Zb >> 2] = (c[Wa >> 2] | 0) - (c[Ta >> 2] | 0); gc = c[Zb >> 2] | 0; l = i; return gc | 0; } case 6: { Ta = c[$b >> 2] | 0; Wa = c[ac >> 2] | 0; _a = c[bc >> 2] | 0; Za = c[cc >> 2] | 0; Ha = c[dc >> 2] | 0; c[W >> 2] = c[_b >> 2]; c[X >> 2] = Ta; c[Y >> 2] = Wa; c[Z >> 2] = _a; c[_ >> 2] = Za; c[$ >> 2] = Ha; c[aa >> 2] = 6; c[ba >> 2] = c[((c[W >> 2] | 0) + 36) >> 2]; c[ca >> 2] = c[((c[Z >> 2] | 0) + 8) >> 2]; c[da >> 2] = c[((c[W >> 2] | 0) + 44) >> 2]; c[ea >> 2] = c[((c[Z >> 2] | 0) + 4) >> 2]; c[fa >> 2] = c[((c[W >> 2] | 0) + 4) >> 2]; c[ga >> 2] = c[_ >> 2]; c[ha >> 2] = c[ga >> 2]; c[ia >> 2] = c[ga >> 2]; c[ja >> 2] = c[((c[W >> 2] | 0) + 12) >> 2]; c[ka >> 2] = (c[fa >> 2] | 0) + (c[ja >> 2] | 0); c[la >> 2] = (c[ga >> 2] | 0) + (c[$ >> 2] | 0); c[ma >> 2] = (c[la >> 2] | 0) + -8; c[na >> 2] = c[c[Y >> 2] >> 2]; c[oa >> 2] = c[((c[Y >> 2] | 0) + 4) >> 2]; c[pa >> 2] = 0; c[ha >> 2] = (c[ha >> 2] | 0) + (((c[ha >> 2] | 0) == (c[ka >> 2] | 0)) & 1); c[qa >> 2] = (c[ha >> 2] | 0) - (c[ka >> 2] | 0); if ((c[oa >> 2] | 0) >>> 0 > (c[qa >> 2] | 0) >>> 0) { c[pa >> 2] = c[oa >> 2]; c[oa >> 2] = 0; } if ((c[na >> 2] | 0) >>> 0 > (c[qa >> 2] | 0) >>> 0) { c[pa >> 2] = c[na >> 2]; c[na >> 2] = 0; } i: while (1) { if ((c[ha >> 2] | 0) >>> 0 >= (c[ma >> 2] | 0) >>> 0) break; c[sa >> 2] = Dk(c[ha >> 2] | 0, c[ca >> 2] | 0, 8) | 0; c[ta >> 2] = Dk(c[ha >> 2] | 0, c[ea >> 2] | 0, c[aa >> 2] | 0) | 0; c[ua >> 2] = (c[ha >> 2] | 0) - (c[fa >> 2] | 0); c[va >> 2] = c[((c[ba >> 2] | 0) + (c[sa >> 2] << 2)) >> 2]; c[wa >> 2] = c[((c[da >> 2] | 0) + (c[ta >> 2] << 2)) >> 2]; c[xa >> 2] = (c[fa >> 2] | 0) + (c[va >> 2] | 0); c[ya >> 2] = (c[fa >> 2] | 0) + (c[wa >> 2] | 0); qa = c[ua >> 2] | 0; c[((c[da >> 2] | 0) + (c[ta >> 2] << 2)) >> 2] = qa; c[((c[ba >> 2] | 0) + (c[sa >> 2] << 2)) >> 2] = qa; qa = ((c[na >> 2] | 0) >>> 0 > 0) & 1; $ = Rk( ((c[ha >> 2] | 0) + 1 + (0 - (c[na >> 2] | 0))) | 0 ) | 0; if ( (qa & (($ | 0) == (Rk(((c[ha >> 2] | 0) + 1) | 0) | 0))) | 0 ) { c[ra >> 2] = (cn( ((c[ha >> 2] | 0) + 1 + 4) | 0, ((c[ha >> 2] | 0) + 1 + 4 + (0 - (c[na >> 2] | 0))) | 0, c[la >> 2] | 0 ) | 0) + 4; c[ha >> 2] = (c[ha >> 2] | 0) + 1; $m( c[X >> 2] | 0, ((c[ha >> 2] | 0) - (c[ia >> 2] | 0)) | 0, c[ia >> 2] | 0, 0, ((c[ra >> 2] | 0) - 3) | 0 ); } else { j: do { if ( (c[va >> 2] | 0) >>> 0 > (c[ja >> 2] | 0) >>> 0 ? (($ = Mk(c[xa >> 2] | 0) | 0), (qa = y), (ga = Mk(c[ha >> 2] | 0) | 0), (($ | 0) == (ga | 0)) & ((qa | 0) == (y | 0))) : 0 ) { c[ra >> 2] = (cn( ((c[ha >> 2] | 0) + 8) | 0, ((c[xa >> 2] | 0) + 8) | 0, c[la >> 2] | 0 ) | 0) + 8; c[za >> 2] = (c[ha >> 2] | 0) - (c[xa >> 2] | 0); while (1) { if ( !( ((c[ha >> 2] | 0) >>> 0 > (c[ia >> 2] | 0) >>> 0 ? (c[xa >> 2] | 0) >>> 0 > (c[ka >> 2] | 0) >>> 0 : 0) | 0 ) ) break j; if ( (d[((c[ha >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[xa >> 2] | 0) + -1) >> 0] | 0 | 0) ) break j; c[ha >> 2] = (c[ha >> 2] | 0) + -1; c[xa >> 2] = (c[xa >> 2] | 0) + -1; c[ra >> 2] = (c[ra >> 2] | 0) + 1; } } else fc = 86; } while (0); k: do { if ((fc | 0) == 86) { fc = 0; if ( (c[wa >> 2] | 0) >>> 0 > (c[ja >> 2] | 0) >>> 0 ? ((qa = Rk(c[ya >> 2] | 0) | 0), (qa | 0) == (Rk(c[ha >> 2] | 0) | 0)) : 0 ) { c[Aa >> 2] = Dk( ((c[ha >> 2] | 0) + 1) | 0, c[ca >> 2] | 0, 8 ) | 0; c[Ba >> 2] = c[ ((c[ba >> 2] | 0) + (c[Aa >> 2] << 2)) >> 2 ]; c[Ca >> 2] = (c[fa >> 2] | 0) + (c[Ba >> 2] | 0); c[((c[ba >> 2] | 0) + (c[Aa >> 2] << 2)) >> 2] = (c[ua >> 2] | 0) + 1; if ( (c[Ba >> 2] | 0) >>> 0 > (c[ja >> 2] | 0) >>> 0 ? ((qa = Mk(c[Ca >> 2] | 0) | 0), (ga = y), ($ = Mk(((c[ha >> 2] | 0) + 1) | 0) | 0), ((qa | 0) == ($ | 0)) & ((ga | 0) == (y | 0))) : 0 ) { c[ra >> 2] = (cn( ((c[ha >> 2] | 0) + 9) | 0, ((c[Ca >> 2] | 0) + 8) | 0, c[la >> 2] | 0 ) | 0) + 8; c[ha >> 2] = (c[ha >> 2] | 0) + 1; c[za >> 2] = (c[ha >> 2] | 0) - (c[Ca >> 2] | 0); while (1) { if ( !( ((c[ha >> 2] | 0) >>> 0 > (c[ia >> 2] | 0) >>> 0 ? (c[Ca >> 2] | 0) >>> 0 > (c[ka >> 2] | 0) >>> 0 : 0) | 0 ) ) break k; if ( (d[((c[ha >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[Ca >> 2] | 0) + -1) >> 0] | 0 | 0) ) break k; c[ha >> 2] = (c[ha >> 2] | 0) + -1; c[Ca >> 2] = (c[Ca >> 2] | 0) + -1; c[ra >> 2] = (c[ra >> 2] | 0) + 1; } } c[ra >> 2] = (cn( ((c[ha >> 2] | 0) + 4) | 0, ((c[ya >> 2] | 0) + 4) | 0, c[la >> 2] | 0 ) | 0) + 4; c[za >> 2] = (c[ha >> 2] | 0) - (c[ya >> 2] | 0); while (1) { if ( !( ((c[ha >> 2] | 0) >>> 0 > (c[ia >> 2] | 0) >>> 0 ? (c[ya >> 2] | 0) >>> 0 > (c[ka >> 2] | 0) >>> 0 : 0) | 0 ) ) break k; if ( (d[((c[ha >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[ya >> 2] | 0) + -1) >> 0] | 0 | 0) ) break k; c[ha >> 2] = (c[ha >> 2] | 0) + -1; c[ya >> 2] = (c[ya >> 2] | 0) + -1; c[ra >> 2] = (c[ra >> 2] | 0) + 1; } } c[ha >> 2] = (c[ha >> 2] | 0) + ((((c[ha >> 2] | 0) - (c[ia >> 2] | 0)) >> 8) + 1); continue i; } } while (0); c[oa >> 2] = c[na >> 2]; c[na >> 2] = c[za >> 2]; $m( c[X >> 2] | 0, ((c[ha >> 2] | 0) - (c[ia >> 2] | 0)) | 0, c[ia >> 2] | 0, ((c[za >> 2] | 0) + 2) | 0, ((c[ra >> 2] | 0) - 3) | 0 ); } c[ha >> 2] = (c[ha >> 2] | 0) + (c[ra >> 2] | 0); c[ia >> 2] = c[ha >> 2]; l: do { if ( (c[ha >> 2] | 0) >>> 0 <= (c[ma >> 2] | 0) >>> 0 ) { ga = ((c[ua >> 2] | 0) + 2) | 0; $ = c[da >> 2] | 0; c[ ($ + ((Dk( ((c[fa >> 2] | 0) + (c[ua >> 2] | 0) + 2) | 0, c[ea >> 2] | 0, c[aa >> 2] | 0 ) | 0) << 2)) >> 2 ] = ga; $ = c[ba >> 2] | 0; c[ ($ + ((Dk( ((c[fa >> 2] | 0) + (c[ua >> 2] | 0) + 2) | 0, c[ca >> 2] | 0, 8 ) | 0) << 2)) >> 2 ] = ga; ga = ((c[ha >> 2] | 0) + -2 - (c[fa >> 2] | 0)) | 0; $ = c[da >> 2] | 0; c[ ($ + ((Dk( ((c[ha >> 2] | 0) + -2) | 0, c[ea >> 2] | 0, c[aa >> 2] | 0 ) | 0) << 2)) >> 2 ] = ga; $ = c[ba >> 2] | 0; c[ ($ + ((Dk( ((c[ha >> 2] | 0) + -2) | 0, c[ca >> 2] | 0, 8 ) | 0) << 2)) >> 2 ] = ga; while (1) { if ( (c[ha >> 2] | 0) >>> 0 > (c[ma >> 2] | 0) >>> 0 ) break l; ga = ((c[oa >> 2] | 0) >>> 0 > 0) & 1; $ = Rk(c[ha >> 2] | 0) | 0; if ( !( ga & (($ | 0) == (Rk( ((c[ha >> 2] | 0) + (0 - (c[oa >> 2] | 0))) | 0 ) | 0)) ) ) break l; c[Da >> 2] = (cn( ((c[ha >> 2] | 0) + 4) | 0, ((c[ha >> 2] | 0) + 4 + (0 - (c[oa >> 2] | 0))) | 0, c[la >> 2] | 0 ) | 0) + 4; c[Ea >> 2] = c[oa >> 2]; c[oa >> 2] = c[na >> 2]; c[na >> 2] = c[Ea >> 2]; $ = ((c[ha >> 2] | 0) - (c[fa >> 2] | 0)) | 0; ga = c[da >> 2] | 0; c[ (ga + ((Dk( c[ha >> 2] | 0, c[ea >> 2] | 0, c[aa >> 2] | 0 ) | 0) << 2)) >> 2 ] = $; $ = ((c[ha >> 2] | 0) - (c[fa >> 2] | 0)) | 0; ga = c[ba >> 2] | 0; c[ (ga + ((Dk(c[ha >> 2] | 0, c[ca >> 2] | 0, 8) | 0) << 2)) >> 2 ] = $; $m( c[X >> 2] | 0, 0, c[ia >> 2] | 0, 0, ((c[Da >> 2] | 0) - 3) | 0 ); c[ha >> 2] = (c[ha >> 2] | 0) + (c[Da >> 2] | 0); c[ia >> 2] = c[ha >> 2]; } } } while (0); } c[c[Y >> 2] >> 2] = c[na >> 2] | 0 ? c[na >> 2] | 0 : c[pa >> 2] | 0; c[((c[Y >> 2] | 0) + 4) >> 2] = c[oa >> 2] | 0 ? c[oa >> 2] | 0 : c[pa >> 2] | 0; c[Zb >> 2] = (c[la >> 2] | 0) - (c[ia >> 2] | 0); gc = c[Zb >> 2] | 0; l = i; return gc | 0; } default: { ia = c[$b >> 2] | 0; $b = c[ac >> 2] | 0; ac = c[bc >> 2] | 0; bc = c[cc >> 2] | 0; cc = c[dc >> 2] | 0; c[ob >> 2] = c[_b >> 2]; c[pb >> 2] = ia; c[qb >> 2] = $b; c[rb >> 2] = ac; c[sb >> 2] = bc; c[tb >> 2] = cc; c[ub >> 2] = 4; c[vb >> 2] = c[((c[ob >> 2] | 0) + 36) >> 2]; c[wb >> 2] = c[((c[rb >> 2] | 0) + 8) >> 2]; c[xb >> 2] = c[((c[ob >> 2] | 0) + 44) >> 2]; c[yb >> 2] = c[((c[rb >> 2] | 0) + 4) >> 2]; c[zb >> 2] = c[((c[ob >> 2] | 0) + 4) >> 2]; c[Ab >> 2] = c[sb >> 2]; c[Bb >> 2] = c[Ab >> 2]; c[Cb >> 2] = c[Ab >> 2]; c[Db >> 2] = c[((c[ob >> 2] | 0) + 12) >> 2]; c[Eb >> 2] = (c[zb >> 2] | 0) + (c[Db >> 2] | 0); c[Fb >> 2] = (c[Ab >> 2] | 0) + (c[tb >> 2] | 0); c[Gb >> 2] = (c[Fb >> 2] | 0) + -8; c[Hb >> 2] = c[c[qb >> 2] >> 2]; c[Ib >> 2] = c[((c[qb >> 2] | 0) + 4) >> 2]; c[Jb >> 2] = 0; c[Bb >> 2] = (c[Bb >> 2] | 0) + (((c[Bb >> 2] | 0) == (c[Eb >> 2] | 0)) & 1); c[Kb >> 2] = (c[Bb >> 2] | 0) - (c[Eb >> 2] | 0); if ((c[Ib >> 2] | 0) >>> 0 > (c[Kb >> 2] | 0) >>> 0) { c[Jb >> 2] = c[Ib >> 2]; c[Ib >> 2] = 0; } if ((c[Hb >> 2] | 0) >>> 0 > (c[Kb >> 2] | 0) >>> 0) { c[Jb >> 2] = c[Hb >> 2]; c[Hb >> 2] = 0; } m: while (1) { if ((c[Bb >> 2] | 0) >>> 0 >= (c[Gb >> 2] | 0) >>> 0) break; c[Mb >> 2] = Dk(c[Bb >> 2] | 0, c[wb >> 2] | 0, 8) | 0; c[Nb >> 2] = Dk(c[Bb >> 2] | 0, c[yb >> 2] | 0, c[ub >> 2] | 0) | 0; c[Ob >> 2] = (c[Bb >> 2] | 0) - (c[zb >> 2] | 0); c[Pb >> 2] = c[((c[vb >> 2] | 0) + (c[Mb >> 2] << 2)) >> 2]; c[Qb >> 2] = c[((c[xb >> 2] | 0) + (c[Nb >> 2] << 2)) >> 2]; c[Rb >> 2] = (c[zb >> 2] | 0) + (c[Pb >> 2] | 0); c[Sb >> 2] = (c[zb >> 2] | 0) + (c[Qb >> 2] | 0); Kb = c[Ob >> 2] | 0; c[((c[xb >> 2] | 0) + (c[Nb >> 2] << 2)) >> 2] = Kb; c[((c[vb >> 2] | 0) + (c[Mb >> 2] << 2)) >> 2] = Kb; Kb = ((c[Hb >> 2] | 0) >>> 0 > 0) & 1; tb = Rk( ((c[Bb >> 2] | 0) + 1 + (0 - (c[Hb >> 2] | 0))) | 0 ) | 0; if ( (Kb & ((tb | 0) == (Rk(((c[Bb >> 2] | 0) + 1) | 0) | 0))) | 0 ) { c[Lb >> 2] = (cn( ((c[Bb >> 2] | 0) + 1 + 4) | 0, ((c[Bb >> 2] | 0) + 1 + 4 + (0 - (c[Hb >> 2] | 0))) | 0, c[Fb >> 2] | 0 ) | 0) + 4; c[Bb >> 2] = (c[Bb >> 2] | 0) + 1; $m( c[pb >> 2] | 0, ((c[Bb >> 2] | 0) - (c[Cb >> 2] | 0)) | 0, c[Cb >> 2] | 0, 0, ((c[Lb >> 2] | 0) - 3) | 0 ); } else { n: do { if ( (c[Pb >> 2] | 0) >>> 0 > (c[Db >> 2] | 0) >>> 0 ? ((tb = Mk(c[Rb >> 2] | 0) | 0), (Kb = y), (Ab = Mk(c[Bb >> 2] | 0) | 0), ((tb | 0) == (Ab | 0)) & ((Kb | 0) == (y | 0))) : 0 ) { c[Lb >> 2] = (cn( ((c[Bb >> 2] | 0) + 8) | 0, ((c[Rb >> 2] | 0) + 8) | 0, c[Fb >> 2] | 0 ) | 0) + 8; c[Tb >> 2] = (c[Bb >> 2] | 0) - (c[Rb >> 2] | 0); while (1) { if ( !( ((c[Bb >> 2] | 0) >>> 0 > (c[Cb >> 2] | 0) >>> 0 ? (c[Rb >> 2] | 0) >>> 0 > (c[Eb >> 2] | 0) >>> 0 : 0) | 0 ) ) break n; if ( (d[((c[Bb >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[Rb >> 2] | 0) + -1) >> 0] | 0 | 0) ) break n; c[Bb >> 2] = (c[Bb >> 2] | 0) + -1; c[Rb >> 2] = (c[Rb >> 2] | 0) + -1; c[Lb >> 2] = (c[Lb >> 2] | 0) + 1; } } else fc = 16; } while (0); o: do { if ((fc | 0) == 16) { fc = 0; if ( (c[Qb >> 2] | 0) >>> 0 > (c[Db >> 2] | 0) >>> 0 ? ((Kb = Rk(c[Sb >> 2] | 0) | 0), (Kb | 0) == (Rk(c[Bb >> 2] | 0) | 0)) : 0 ) { c[Ub >> 2] = Dk( ((c[Bb >> 2] | 0) + 1) | 0, c[wb >> 2] | 0, 8 ) | 0; c[Vb >> 2] = c[ ((c[vb >> 2] | 0) + (c[Ub >> 2] << 2)) >> 2 ]; c[Wb >> 2] = (c[zb >> 2] | 0) + (c[Vb >> 2] | 0); c[((c[vb >> 2] | 0) + (c[Ub >> 2] << 2)) >> 2] = (c[Ob >> 2] | 0) + 1; if ( (c[Vb >> 2] | 0) >>> 0 > (c[Db >> 2] | 0) >>> 0 ? ((Kb = Mk(c[Wb >> 2] | 0) | 0), (Ab = y), (tb = Mk(((c[Bb >> 2] | 0) + 1) | 0) | 0), ((Kb | 0) == (tb | 0)) & ((Ab | 0) == (y | 0))) : 0 ) { c[Lb >> 2] = (cn( ((c[Bb >> 2] | 0) + 9) | 0, ((c[Wb >> 2] | 0) + 8) | 0, c[Fb >> 2] | 0 ) | 0) + 8; c[Bb >> 2] = (c[Bb >> 2] | 0) + 1; c[Tb >> 2] = (c[Bb >> 2] | 0) - (c[Wb >> 2] | 0); while (1) { if ( !( ((c[Bb >> 2] | 0) >>> 0 > (c[Cb >> 2] | 0) >>> 0 ? (c[Wb >> 2] | 0) >>> 0 > (c[Eb >> 2] | 0) >>> 0 : 0) | 0 ) ) break o; if ( (d[((c[Bb >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[Wb >> 2] | 0) + -1) >> 0] | 0 | 0) ) break o; c[Bb >> 2] = (c[Bb >> 2] | 0) + -1; c[Wb >> 2] = (c[Wb >> 2] | 0) + -1; c[Lb >> 2] = (c[Lb >> 2] | 0) + 1; } } c[Lb >> 2] = (cn( ((c[Bb >> 2] | 0) + 4) | 0, ((c[Sb >> 2] | 0) + 4) | 0, c[Fb >> 2] | 0 ) | 0) + 4; c[Tb >> 2] = (c[Bb >> 2] | 0) - (c[Sb >> 2] | 0); while (1) { if ( !( ((c[Bb >> 2] | 0) >>> 0 > (c[Cb >> 2] | 0) >>> 0 ? (c[Sb >> 2] | 0) >>> 0 > (c[Eb >> 2] | 0) >>> 0 : 0) | 0 ) ) break o; if ( (d[((c[Bb >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[Sb >> 2] | 0) + -1) >> 0] | 0 | 0) ) break o; c[Bb >> 2] = (c[Bb >> 2] | 0) + -1; c[Sb >> 2] = (c[Sb >> 2] | 0) + -1; c[Lb >> 2] = (c[Lb >> 2] | 0) + 1; } } c[Bb >> 2] = (c[Bb >> 2] | 0) + ((((c[Bb >> 2] | 0) - (c[Cb >> 2] | 0)) >> 8) + 1); continue m; } } while (0); c[Ib >> 2] = c[Hb >> 2]; c[Hb >> 2] = c[Tb >> 2]; $m( c[pb >> 2] | 0, ((c[Bb >> 2] | 0) - (c[Cb >> 2] | 0)) | 0, c[Cb >> 2] | 0, ((c[Tb >> 2] | 0) + 2) | 0, ((c[Lb >> 2] | 0) - 3) | 0 ); } c[Bb >> 2] = (c[Bb >> 2] | 0) + (c[Lb >> 2] | 0); c[Cb >> 2] = c[Bb >> 2]; p: do { if ( (c[Bb >> 2] | 0) >>> 0 <= (c[Gb >> 2] | 0) >>> 0 ) { Ab = ((c[Ob >> 2] | 0) + 2) | 0; tb = c[xb >> 2] | 0; c[ (tb + ((Dk( ((c[zb >> 2] | 0) + (c[Ob >> 2] | 0) + 2) | 0, c[yb >> 2] | 0, c[ub >> 2] | 0 ) | 0) << 2)) >> 2 ] = Ab; tb = c[vb >> 2] | 0; c[ (tb + ((Dk( ((c[zb >> 2] | 0) + (c[Ob >> 2] | 0) + 2) | 0, c[wb >> 2] | 0, 8 ) | 0) << 2)) >> 2 ] = Ab; Ab = ((c[Bb >> 2] | 0) + -2 - (c[zb >> 2] | 0)) | 0; tb = c[xb >> 2] | 0; c[ (tb + ((Dk( ((c[Bb >> 2] | 0) + -2) | 0, c[yb >> 2] | 0, c[ub >> 2] | 0 ) | 0) << 2)) >> 2 ] = Ab; tb = c[vb >> 2] | 0; c[ (tb + ((Dk( ((c[Bb >> 2] | 0) + -2) | 0, c[wb >> 2] | 0, 8 ) | 0) << 2)) >> 2 ] = Ab; while (1) { if ( (c[Bb >> 2] | 0) >>> 0 > (c[Gb >> 2] | 0) >>> 0 ) break p; Ab = ((c[Ib >> 2] | 0) >>> 0 > 0) & 1; tb = Rk(c[Bb >> 2] | 0) | 0; if ( !( Ab & ((tb | 0) == (Rk( ((c[Bb >> 2] | 0) + (0 - (c[Ib >> 2] | 0))) | 0 ) | 0)) ) ) break p; c[Xb >> 2] = (cn( ((c[Bb >> 2] | 0) + 4) | 0, ((c[Bb >> 2] | 0) + 4 + (0 - (c[Ib >> 2] | 0))) | 0, c[Fb >> 2] | 0 ) | 0) + 4; c[Yb >> 2] = c[Ib >> 2]; c[Ib >> 2] = c[Hb >> 2]; c[Hb >> 2] = c[Yb >> 2]; tb = ((c[Bb >> 2] | 0) - (c[zb >> 2] | 0)) | 0; Ab = c[xb >> 2] | 0; c[ (Ab + ((Dk( c[Bb >> 2] | 0, c[yb >> 2] | 0, c[ub >> 2] | 0 ) | 0) << 2)) >> 2 ] = tb; tb = ((c[Bb >> 2] | 0) - (c[zb >> 2] | 0)) | 0; Ab = c[vb >> 2] | 0; c[ (Ab + ((Dk(c[Bb >> 2] | 0, c[wb >> 2] | 0, 8) | 0) << 2)) >> 2 ] = tb; $m( c[pb >> 2] | 0, 0, c[Cb >> 2] | 0, 0, ((c[Xb >> 2] | 0) - 3) | 0 ); c[Bb >> 2] = (c[Bb >> 2] | 0) + (c[Xb >> 2] | 0); c[Cb >> 2] = c[Bb >> 2]; } } } while (0); } c[c[qb >> 2] >> 2] = c[Hb >> 2] | 0 ? c[Hb >> 2] | 0 : c[Jb >> 2] | 0; c[((c[qb >> 2] | 0) + 4) >> 2] = c[Ib >> 2] | 0 ? c[Ib >> 2] | 0 : c[Jb >> 2] | 0; c[Zb >> 2] = (c[Fb >> 2] | 0) - (c[Cb >> 2] | 0); gc = c[Zb >> 2] | 0; l = i; return gc | 0; } } return 0; } function jm(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0, hc = 0, ic = 0, jc = 0, kc = 0, lc = 0, mc = 0, nc = 0, oc = 0, pc = 0, qc = 0, rc = 0, sc = 0, tc = 0, uc = 0, vc = 0, wc = 0, xc = 0, yc = 0, zc = 0, Ac = 0, Bc = 0, Cc = 0, Dc = 0, Ec = 0, Fc = 0, Gc = 0, Hc = 0, Ic = 0, Jc = 0, Kc = 0, Lc = 0, Mc = 0, Nc = 0, Oc = 0, Pc = 0, Qc = 0, Rc = 0, Sc = 0, Tc = 0, Uc = 0, Vc = 0, Wc = 0, Xc = 0, Yc = 0, Zc = 0, _c = 0, $c = 0, ad = 0, bd = 0, cd = 0, dd = 0, ed = 0, fd = 0, gd = 0, hd = 0, id = 0, jd = 0, kd = 0, ld = 0, md = 0, nd = 0, od = 0, pd = 0, qd = 0, rd = 0, sd = 0, td = 0, ud = 0, vd = 0, wd = 0, xd = 0, yd = 0, zd = 0, Ad = 0, Bd = 0, Cd = 0, Dd = 0, Ed = 0, Fd = 0, Gd = 0, Hd = 0, Id = 0, Jd = 0, Kd = 0, Ld = 0, Md = 0, Nd = 0, Od = 0, Pd = 0, Qd = 0, Rd = 0, Sd = 0, Td = 0, Ud = 0, Vd = 0, Wd = 0, Xd = 0, Yd = 0, Zd = 0, _d = 0, $d = 0, ae = 0, be = 0, ce = 0, de = 0, ee = 0, fe = 0, ge = 0, he = 0, ie = 0, je = 0, ke = 0, le = 0, me = 0, ne = 0, oe = 0, pe = 0, qe = 0, re = 0, se = 0, te = 0, ue = 0, ve = 0, we = 0, xe = 0, ye = 0, ze = 0, Ae = 0, Be = 0, Ce = 0, De = 0, Ee = 0, Fe = 0, Ge = 0, He = 0, Ie = 0, Je = 0, Ke = 0, Le = 0, Me = 0, Ne = 0, Oe = 0, Pe = 0, Qe = 0, Re = 0, Se = 0, Te = 0, Ue = 0, Ve = 0, We = 0, Xe = 0, Ye = 0, Ze = 0, _e = 0, $e = 0, af = 0, bf = 0, cf = 0, df = 0, ef = 0, ff = 0, gf = 0, hf = 0, jf = 0, kf = 0, lf = 0, mf = 0, nf = 0, of = 0, pf = 0, qf = 0, rf = 0, sf = 0, tf = 0, uf = 0, vf = 0, wf = 0, xf = 0, yf = 0, zf = 0, Af = 0, Bf = 0, Cf = 0, Df = 0, Ef = 0, Ff = 0, Gf = 0, Hf = 0, If = 0, Jf = 0, Kf = 0, Lf = 0, Mf = 0, Nf = 0, Of = 0, Pf = 0, Qf = 0, Rf = 0, Sf = 0, Tf = 0, Uf = 0, Vf = 0, Wf = 0, Xf = 0, Yf = 0, Zf = 0, _f = 0, $f = 0, ag = 0, bg = 0, cg = 0, dg = 0, eg = 0, fg = 0, gg = 0, hg = 0, ig = 0, jg = 0, kg = 0, lg = 0, mg = 0, ng = 0, og = 0, pg = 0, qg = 0, rg = 0, sg = 0, tg = 0, ug = 0, vg = 0, wg = 0, xg = 0, yg = 0, zg = 0, Ag = 0, Bg = 0, Cg = 0, Dg = 0, Eg = 0, Fg = 0, Gg = 0, Hg = 0, Ig = 0, Jg = 0, Kg = 0, Lg = 0, Mg = 0, Ng = 0, Og = 0, Pg = 0, Qg = 0, Rg = 0, Sg = 0, Tg = 0, Ug = 0, Vg = 0, Wg = 0, Xg = 0, Yg = 0, Zg = 0, _g = 0, $g = 0, ah = 0, bh = 0, ch = 0, dh = 0, eh = 0, fh = 0, gh = 0, hh = 0, ih = 0, jh = 0, kh = 0, lh = 0, mh = 0, nh = 0, oh = 0, ph = 0, qh = 0, rh = 0, sh = 0, th = 0, uh = 0, vh = 0, wh = 0, xh = 0, yh = 0, zh = 0, Ah = 0, Bh = 0, Ch = 0, Dh = 0, Eh = 0, Fh = 0, Gh = 0, Hh = 0, Ih = 0, Jh = 0, Kh = 0, Lh = 0, Mh = 0, Nh = 0, Oh = 0, Ph = 0, Qh = 0, Rh = 0, Sh = 0, Th = 0, Uh = 0, Vh = 0, Wh = 0, Xh = 0, Yh = 0, Zh = 0, _h = 0, $h = 0, ai = 0, bi = 0, ci = 0, di = 0, ei = 0, fi = 0, gi = 0, hi = 0, ii = 0, ji = 0, ki = 0, li = 0, mi = 0, ni = 0, oi = 0, pi = 0, qi = 0, ri = 0, si = 0, ti = 0, ui = 0, vi = 0, wi = 0, xi = 0, yi = 0, zi = 0, Ai = 0, Bi = 0, Ci = 0, Di = 0, Ei = 0, Fi = 0, Gi = 0, Hi = 0, Ii = 0, Ji = 0, Ki = 0, Li = 0, Mi = 0, Ni = 0, Oi = 0, Pi = 0, Qi = 0, Ri = 0, Si = 0, Ti = 0, Ui = 0, Vi = 0, Wi = 0, Xi = 0, Yi = 0, Zi = 0, _i = 0, $i = 0, aj = 0, bj = 0, cj = 0, dj = 0, ej = 0, fj = 0, gj = 0, hj = 0, ij = 0, jj = 0, kj = 0, lj = 0, mj = 0, nj = 0, oj = 0, pj = 0, qj = 0, rj = 0, sj = 0, tj = 0, uj = 0, vj = 0, wj = 0, xj = 0, yj = 0, zj = 0, Aj = 0, Bj = 0, Cj = 0, Dj = 0, Ej = 0; i = l; l = (l + 2144) | 0; j = (i + 2136) | 0; k = (i + 2132) | 0; m = (i + 2128) | 0; n = (i + 2124) | 0; o = (i + 2120) | 0; p = (i + 2116) | 0; q = (i + 2112) | 0; r = (i + 2108) | 0; s = (i + 2104) | 0; t = (i + 2100) | 0; u = (i + 2096) | 0; v = (i + 2092) | 0; w = (i + 2088) | 0; x = (i + 2084) | 0; y = (i + 2080) | 0; z = (i + 2076) | 0; A = (i + 2072) | 0; B = (i + 2068) | 0; C = (i + 2064) | 0; D = (i + 2060) | 0; E = (i + 2056) | 0; F = (i + 2052) | 0; G = (i + 2048) | 0; H = (i + 2044) | 0; I = (i + 2040) | 0; J = (i + 2036) | 0; K = (i + 2032) | 0; L = (i + 2028) | 0; M = (i + 2024) | 0; N = (i + 2020) | 0; O = (i + 2016) | 0; P = (i + 2012) | 0; Q = (i + 2008) | 0; R = (i + 2004) | 0; S = (i + 2e3) | 0; T = (i + 1996) | 0; U = (i + 1992) | 0; V = (i + 1988) | 0; W = (i + 1984) | 0; X = (i + 1980) | 0; Y = (i + 1976) | 0; Z = (i + 1972) | 0; _ = (i + 1968) | 0; $ = (i + 1964) | 0; aa = (i + 1960) | 0; ba = (i + 1956) | 0; ca = (i + 1952) | 0; da = (i + 1948) | 0; ea = (i + 1944) | 0; fa = (i + 1940) | 0; ga = (i + 1936) | 0; ha = (i + 1932) | 0; ia = (i + 1928) | 0; ja = (i + 1924) | 0; ka = (i + 1920) | 0; la = (i + 1916) | 0; ma = (i + 1912) | 0; na = (i + 1908) | 0; oa = (i + 1904) | 0; pa = (i + 1900) | 0; qa = (i + 1896) | 0; ra = (i + 1892) | 0; sa = (i + 1888) | 0; ta = (i + 1884) | 0; ua = (i + 1880) | 0; va = (i + 1876) | 0; wa = (i + 1872) | 0; xa = (i + 1868) | 0; ya = (i + 1864) | 0; za = (i + 1860) | 0; Aa = (i + 1856) | 0; Ba = (i + 1852) | 0; Ca = (i + 1848) | 0; Da = (i + 1844) | 0; Ea = (i + 1840) | 0; Fa = (i + 1836) | 0; Ga = (i + 1832) | 0; Ha = (i + 1828) | 0; Ia = (i + 1824) | 0; Ja = (i + 1820) | 0; Ka = (i + 1816) | 0; La = (i + 1812) | 0; Ma = (i + 1808) | 0; Na = (i + 1804) | 0; Oa = (i + 1800) | 0; Pa = (i + 1796) | 0; Qa = (i + 1792) | 0; Ra = (i + 1788) | 0; Sa = (i + 1784) | 0; Ta = (i + 1780) | 0; Ua = (i + 1776) | 0; Va = (i + 1772) | 0; Wa = (i + 1768) | 0; Xa = (i + 1764) | 0; Ya = (i + 1760) | 0; Za = (i + 1756) | 0; _a = (i + 1752) | 0; $a = (i + 1748) | 0; ab = (i + 1744) | 0; bb = (i + 1740) | 0; cb = (i + 1736) | 0; db = (i + 1732) | 0; eb = (i + 1728) | 0; fb = (i + 1724) | 0; gb = (i + 1720) | 0; hb = (i + 1716) | 0; ib = (i + 1712) | 0; jb = (i + 1708) | 0; kb = (i + 1704) | 0; lb = (i + 1700) | 0; mb = (i + 1696) | 0; nb = (i + 1692) | 0; ob = (i + 1688) | 0; pb = (i + 1684) | 0; qb = (i + 1680) | 0; rb = (i + 1676) | 0; sb = (i + 1672) | 0; tb = (i + 1668) | 0; ub = (i + 1664) | 0; vb = (i + 1660) | 0; wb = (i + 1656) | 0; xb = (i + 1652) | 0; yb = (i + 1648) | 0; zb = (i + 1644) | 0; Ab = (i + 1640) | 0; Bb = (i + 1636) | 0; Cb = (i + 1632) | 0; Db = (i + 1628) | 0; Eb = (i + 1624) | 0; Fb = (i + 1620) | 0; Gb = (i + 1616) | 0; Hb = (i + 1612) | 0; Ib = (i + 1608) | 0; Jb = (i + 1604) | 0; Kb = (i + 1600) | 0; Lb = (i + 1596) | 0; Mb = (i + 1592) | 0; Nb = (i + 1588) | 0; Ob = (i + 1584) | 0; Pb = (i + 1580) | 0; Qb = (i + 1576) | 0; Rb = (i + 1572) | 0; Sb = (i + 1568) | 0; Tb = (i + 1564) | 0; Ub = (i + 1560) | 0; Vb = (i + 1556) | 0; Wb = (i + 1552) | 0; Xb = (i + 1548) | 0; Yb = (i + 1544) | 0; Zb = (i + 1540) | 0; _b = (i + 1536) | 0; $b = (i + 1532) | 0; ac = (i + 1528) | 0; bc = (i + 1524) | 0; cc = (i + 1520) | 0; dc = (i + 1516) | 0; ec = (i + 1512) | 0; fc = (i + 1508) | 0; gc = (i + 1504) | 0; hc = (i + 1500) | 0; ic = (i + 1496) | 0; jc = (i + 1492) | 0; kc = (i + 1488) | 0; lc = (i + 1484) | 0; mc = (i + 1480) | 0; nc = (i + 1476) | 0; oc = (i + 1472) | 0; pc = (i + 1468) | 0; qc = (i + 1464) | 0; rc = (i + 1460) | 0; sc = (i + 1456) | 0; tc = (i + 1452) | 0; uc = (i + 1448) | 0; vc = (i + 1444) | 0; wc = (i + 1440) | 0; xc = (i + 1436) | 0; yc = (i + 1432) | 0; zc = (i + 1428) | 0; Ac = (i + 1424) | 0; Bc = (i + 1420) | 0; Cc = (i + 1416) | 0; Dc = (i + 1412) | 0; Ec = (i + 1408) | 0; Fc = (i + 1404) | 0; Gc = (i + 1400) | 0; Hc = (i + 1396) | 0; Ic = (i + 1392) | 0; Jc = (i + 1388) | 0; Kc = (i + 1384) | 0; Lc = (i + 1380) | 0; Mc = (i + 1376) | 0; Nc = (i + 1372) | 0; Oc = (i + 1368) | 0; Pc = (i + 1364) | 0; Qc = (i + 1360) | 0; Rc = (i + 1356) | 0; Sc = (i + 1352) | 0; Tc = (i + 1348) | 0; Uc = (i + 1344) | 0; Vc = (i + 1340) | 0; Wc = (i + 1336) | 0; Xc = (i + 1332) | 0; Yc = (i + 1328) | 0; Zc = (i + 1324) | 0; _c = (i + 1320) | 0; $c = (i + 1316) | 0; ad = (i + 1312) | 0; bd = (i + 1308) | 0; cd = (i + 1304) | 0; dd = (i + 1300) | 0; ed = (i + 1296) | 0; fd = (i + 1292) | 0; gd = (i + 1288) | 0; hd = (i + 1284) | 0; id = (i + 1280) | 0; jd = (i + 1276) | 0; kd = (i + 1272) | 0; ld = (i + 1268) | 0; md = (i + 1264) | 0; nd = (i + 1260) | 0; od = (i + 1256) | 0; pd = (i + 1252) | 0; qd = (i + 1248) | 0; rd = (i + 1244) | 0; sd = (i + 1240) | 0; td = (i + 1236) | 0; ud = (i + 1232) | 0; vd = (i + 1228) | 0; wd = (i + 1224) | 0; xd = (i + 1220) | 0; yd = (i + 1216) | 0; zd = (i + 1212) | 0; Ad = (i + 1208) | 0; Bd = (i + 1204) | 0; Cd = (i + 1200) | 0; Dd = (i + 1196) | 0; Ed = (i + 1192) | 0; Fd = (i + 1188) | 0; Gd = (i + 1184) | 0; Hd = (i + 1180) | 0; Id = (i + 1176) | 0; Jd = (i + 1172) | 0; Kd = (i + 1168) | 0; Ld = (i + 1164) | 0; Md = (i + 1160) | 0; Nd = (i + 1156) | 0; Od = (i + 1152) | 0; Pd = (i + 1148) | 0; Qd = (i + 1144) | 0; Rd = (i + 1140) | 0; Sd = (i + 1136) | 0; Td = (i + 1132) | 0; Ud = (i + 1128) | 0; Vd = (i + 1124) | 0; Wd = (i + 1120) | 0; Xd = (i + 1116) | 0; Yd = (i + 1112) | 0; Zd = (i + 1108) | 0; _d = (i + 1104) | 0; $d = (i + 1100) | 0; ae = (i + 1096) | 0; be = (i + 1092) | 0; ce = (i + 1088) | 0; de = (i + 1084) | 0; ee = (i + 1080) | 0; fe = (i + 1076) | 0; ge = (i + 1072) | 0; he = (i + 1068) | 0; ie = (i + 1064) | 0; je = (i + 1060) | 0; ke = (i + 1056) | 0; le = (i + 1052) | 0; me = (i + 1048) | 0; ne = (i + 1044) | 0; oe = (i + 1040) | 0; pe = (i + 1036) | 0; qe = (i + 1032) | 0; re = (i + 1028) | 0; se = (i + 1024) | 0; te = (i + 1020) | 0; ue = (i + 1016) | 0; ve = (i + 1012) | 0; we = (i + 1008) | 0; xe = (i + 1004) | 0; ye = (i + 1e3) | 0; ze = (i + 996) | 0; Ae = (i + 992) | 0; Be = (i + 988) | 0; Ce = (i + 984) | 0; De = (i + 980) | 0; Ee = (i + 976) | 0; Fe = (i + 972) | 0; Ge = (i + 968) | 0; He = (i + 964) | 0; Ie = (i + 960) | 0; Je = (i + 956) | 0; Ke = (i + 952) | 0; Le = (i + 948) | 0; Me = (i + 944) | 0; Ne = (i + 940) | 0; Oe = (i + 936) | 0; Pe = (i + 932) | 0; Qe = (i + 928) | 0; Re = (i + 924) | 0; Se = (i + 920) | 0; Te = (i + 916) | 0; Ue = (i + 912) | 0; Ve = (i + 908) | 0; We = (i + 904) | 0; Xe = (i + 900) | 0; Ye = (i + 896) | 0; Ze = (i + 892) | 0; _e = (i + 888) | 0; $e = (i + 884) | 0; af = (i + 880) | 0; bf = (i + 876) | 0; cf = (i + 872) | 0; df = (i + 868) | 0; ef = (i + 864) | 0; ff = (i + 860) | 0; gf = (i + 856) | 0; hf = (i + 852) | 0; jf = (i + 848) | 0; kf = (i + 844) | 0; lf = (i + 840) | 0; mf = (i + 836) | 0; nf = (i + 832) | 0; of = (i + 828) | 0; pf = (i + 824) | 0; qf = (i + 820) | 0; rf = (i + 816) | 0; sf = (i + 812) | 0; tf = (i + 808) | 0; uf = (i + 804) | 0; vf = (i + 800) | 0; wf = (i + 796) | 0; xf = (i + 792) | 0; yf = (i + 788) | 0; zf = (i + 784) | 0; Af = (i + 780) | 0; Bf = (i + 776) | 0; Cf = (i + 772) | 0; Df = (i + 768) | 0; Ef = (i + 764) | 0; Ff = (i + 760) | 0; Gf = (i + 756) | 0; Hf = (i + 752) | 0; If = (i + 748) | 0; Jf = (i + 744) | 0; Kf = (i + 740) | 0; Lf = (i + 736) | 0; Mf = (i + 732) | 0; Nf = (i + 728) | 0; Of = (i + 724) | 0; Pf = (i + 720) | 0; Qf = (i + 716) | 0; Rf = (i + 712) | 0; Sf = (i + 708) | 0; Tf = (i + 704) | 0; Uf = (i + 700) | 0; Vf = (i + 696) | 0; Wf = (i + 692) | 0; Xf = (i + 688) | 0; Yf = (i + 684) | 0; Zf = (i + 680) | 0; _f = (i + 676) | 0; $f = (i + 672) | 0; ag = (i + 668) | 0; bg = (i + 664) | 0; cg = (i + 660) | 0; dg = (i + 656) | 0; eg = (i + 652) | 0; fg = (i + 648) | 0; gg = (i + 644) | 0; hg = (i + 640) | 0; ig = (i + 636) | 0; jg = (i + 632) | 0; kg = (i + 628) | 0; lg = (i + 624) | 0; mg = (i + 620) | 0; ng = (i + 616) | 0; og = (i + 612) | 0; pg = (i + 608) | 0; qg = (i + 604) | 0; rg = (i + 600) | 0; sg = (i + 596) | 0; tg = (i + 592) | 0; ug = (i + 588) | 0; vg = (i + 584) | 0; wg = (i + 580) | 0; xg = (i + 576) | 0; yg = (i + 572) | 0; zg = (i + 568) | 0; Ag = (i + 564) | 0; Bg = (i + 560) | 0; Cg = (i + 556) | 0; Dg = (i + 552) | 0; Eg = (i + 548) | 0; Fg = (i + 544) | 0; Gg = (i + 540) | 0; Hg = (i + 536) | 0; Ig = (i + 532) | 0; Jg = (i + 528) | 0; Kg = (i + 524) | 0; Lg = (i + 520) | 0; Mg = (i + 516) | 0; Ng = (i + 512) | 0; Og = (i + 508) | 0; Pg = (i + 504) | 0; Qg = (i + 500) | 0; Rg = (i + 496) | 0; Sg = (i + 492) | 0; Tg = (i + 488) | 0; Ug = (i + 484) | 0; Vg = (i + 480) | 0; Wg = (i + 476) | 0; Xg = (i + 472) | 0; Yg = (i + 468) | 0; Zg = (i + 464) | 0; _g = (i + 460) | 0; $g = (i + 456) | 0; ah = (i + 452) | 0; bh = (i + 448) | 0; ch = (i + 444) | 0; dh = (i + 440) | 0; eh = (i + 436) | 0; fh = (i + 432) | 0; gh = (i + 428) | 0; hh = (i + 424) | 0; ih = (i + 420) | 0; jh = (i + 416) | 0; kh = (i + 412) | 0; lh = (i + 408) | 0; mh = (i + 404) | 0; nh = (i + 400) | 0; oh = (i + 396) | 0; ph = (i + 392) | 0; qh = (i + 388) | 0; rh = (i + 384) | 0; sh = (i + 380) | 0; th = (i + 376) | 0; uh = (i + 372) | 0; vh = (i + 368) | 0; wh = (i + 364) | 0; xh = (i + 360) | 0; yh = (i + 356) | 0; zh = (i + 352) | 0; Ah = (i + 348) | 0; Bh = (i + 344) | 0; Ch = (i + 340) | 0; Dh = (i + 336) | 0; Eh = (i + 332) | 0; Fh = (i + 328) | 0; Gh = (i + 324) | 0; Hh = (i + 320) | 0; Ih = (i + 316) | 0; Jh = (i + 312) | 0; Kh = (i + 308) | 0; Lh = (i + 304) | 0; Mh = (i + 300) | 0; Nh = (i + 296) | 0; Oh = (i + 292) | 0; Ph = (i + 288) | 0; Qh = (i + 284) | 0; Rh = (i + 280) | 0; Sh = (i + 276) | 0; Th = (i + 272) | 0; Uh = (i + 268) | 0; Vh = (i + 264) | 0; Wh = (i + 260) | 0; Xh = (i + 256) | 0; Yh = (i + 252) | 0; Zh = (i + 248) | 0; _h = (i + 244) | 0; $h = (i + 240) | 0; ai = (i + 236) | 0; bi = (i + 232) | 0; ci = (i + 228) | 0; di = (i + 216) | 0; ei = (i + 212) | 0; fi = (i + 208) | 0; gi = (i + 204) | 0; hi = (i + 200) | 0; ii = (i + 196) | 0; ji = (i + 192) | 0; ki = (i + 188) | 0; li = (i + 184) | 0; mi = (i + 180) | 0; ni = (i + 176) | 0; oi = (i + 172) | 0; pi = (i + 168) | 0; qi = (i + 164) | 0; ri = (i + 160) | 0; si = (i + 148) | 0; ti = (i + 144) | 0; ui = (i + 140) | 0; vi = (i + 136) | 0; wi = (i + 132) | 0; xi = (i + 128) | 0; yi = (i + 124) | 0; zi = (i + 120) | 0; Ai = (i + 116) | 0; Bi = (i + 112) | 0; Ci = (i + 108) | 0; Di = (i + 104) | 0; Ei = (i + 100) | 0; Fi = (i + 88) | 0; Gi = (i + 84) | 0; Hi = (i + 80) | 0; Ii = (i + 76) | 0; Ji = (i + 72) | 0; Ki = (i + 68) | 0; Li = (i + 64) | 0; Mi = (i + 60) | 0; Ni = (i + 56) | 0; Oi = (i + 52) | 0; Pi = (i + 48) | 0; Qi = (i + 44) | 0; Ri = (i + 40) | 0; Si = (i + 36) | 0; Ti = (i + 32) | 0; Ui = (i + 28) | 0; Vi = (i + 24) | 0; Wi = (i + 20) | 0; Xi = (i + 16) | 0; Yi = (i + 12) | 0; Zi = (i + 8) | 0; _i = (i + 4) | 0; $i = i; c[Wi >> 2] = a; c[Xi >> 2] = b; c[Yi >> 2] = e; c[Zi >> 2] = f; c[_i >> 2] = g; c[$i >> 2] = h; h = c[Xi >> 2] | 0; Xi = c[Yi >> 2] | 0; Yi = c[Zi >> 2] | 0; Zi = c[_i >> 2] | 0; _i = c[$i >> 2] | 0; c[Lh >> 2] = c[Wi >> 2]; c[Mh >> 2] = h; c[Nh >> 2] = Xi; c[Oh >> 2] = Yi; c[Ph >> 2] = Zi; c[Qh >> 2] = _i; c[Rh >> 2] = 0; c[Sh >> 2] = 1; c[Th >> 2] = (c[Lh >> 2] | 0) + 48; c[Uh >> 2] = c[Ph >> 2]; c[Vh >> 2] = c[Uh >> 2]; c[Wh >> 2] = c[Uh >> 2]; c[Xh >> 2] = (c[Uh >> 2] | 0) + (c[Qh >> 2] | 0); c[Yh >> 2] = (c[Xh >> 2] | 0) + -8; c[Zh >> 2] = c[((c[Lh >> 2] | 0) + 4) >> 2]; c[_h >> 2] = (c[Zh >> 2] | 0) + (c[((c[Lh >> 2] | 0) + 12) >> 2] | 0); if ((c[((c[Oh >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095) aj = c[((c[Oh >> 2] | 0) + 20) >> 2] | 0; else aj = 4095; c[$h >> 2] = aj; c[ai >> 2] = (c[((c[Oh >> 2] | 0) + 16) >> 2] | 0) == 3 ? 3 : 4; c[bi >> 2] = c[((c[Th >> 2] | 0) + 20) >> 2]; c[ci >> 2] = c[((c[Th >> 2] | 0) + 16) >> 2]; c[((c[Lh >> 2] | 0) + 28) >> 2] = c[((c[Lh >> 2] | 0) + 24) >> 2]; lm(c[Th >> 2] | 0, c[Ph >> 2] | 0, c[Qh >> 2] | 0); c[Vh >> 2] = (c[Vh >> 2] | 0) + (((c[Vh >> 2] | 0) == (c[_h >> 2] | 0)) & 1); c[di >> 2] = 0; c[(di + 4) >> 2] = 0; c[(di + 8) >> 2] = 0; while (1) { if ((c[Vh >> 2] | 0) >>> 0 >= (c[Yh >> 2] | 0) >>> 0) break; c[fi >> 2] = 0; c[ii >> 2] = (c[Vh >> 2] | 0) - (c[Wh >> 2] | 0); c[ji >> 2] = (((c[ii >> 2] | 0) != 0) ^ 1) & 1; _h = c[Oh >> 2] | 0; Qh = c[Vh >> 2] | 0; Ph = c[Xh >> 2] | 0; aj = c[Sh >> 2] | 0; Zh = c[Nh >> 2] | 0; Uh = c[ji >> 2] | 0; _i = c[ci >> 2] | 0; Zi = c[ai >> 2] | 0; c[Bh >> 2] = c[Lh >> 2]; c[Ch >> 2] = _h; c[Dh >> 2] = Qh; c[Eh >> 2] = Ph; c[Fh >> 2] = aj; c[Gh >> 2] = Zh; c[Hh >> 2] = Uh; c[Ih >> 2] = _i; c[Jh >> 2] = Zi; c[Kh >> 2] = c[((c[Ch >> 2] | 0) + 16) >> 2]; a: do { if ( (c[Dh >> 2] | 0) >>> 0 < (((c[((c[Bh >> 2] | 0) + 4) >> 2] | 0) + (c[((c[Bh >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) c[Ah >> 2] = 0; else { Zi = c[Ch >> 2] | 0; _i = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; Zh = c[Kh >> 2] | 0; aj = c[Fh >> 2] | 0; c[rh >> 2] = c[Bh >> 2]; c[sh >> 2] = Zi; c[th >> 2] = _i; c[uh >> 2] = Uh; c[vh >> 2] = Zh; c[wh >> 2] = aj; c[xh >> 2] = c[((c[rh >> 2] | 0) + 4) >> 2]; c[yh >> 2] = (c[th >> 2] | 0) - (c[xh >> 2] | 0); c[zh >> 2] = c[((c[rh >> 2] | 0) + 24) >> 2]; while (1) { if ((c[zh >> 2] | 0) >>> 0 >= (c[yh >> 2] | 0) >>> 0) break; aj = Rj( c[rh >> 2] | 0, c[sh >> 2] | 0, ((c[xh >> 2] | 0) + (c[zh >> 2] | 0)) | 0, c[uh >> 2] | 0, c[vh >> 2] | 0, c[wh >> 2] | 0 ) | 0; c[zh >> 2] = (c[zh >> 2] | 0) + aj; } c[((c[rh >> 2] | 0) + 24) >> 2] = c[yh >> 2]; switch (c[Kh >> 2] | 0) { case 3: { aj = c[Ch >> 2] | 0; Zh = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; _i = c[Fh >> 2] | 0; Zi = c[Gh >> 2] | 0; Ph = c[Hh >> 2] | 0; Qh = c[Ih >> 2] | 0; _h = c[Jh >> 2] | 0; c[wg >> 2] = c[Bh >> 2]; c[xg >> 2] = aj; c[yg >> 2] = Zh; c[zg >> 2] = Uh; c[Ag >> 2] = _i; c[Bg >> 2] = Zi; c[Cg >> 2] = Ph; c[Dg >> 2] = Qh; c[Eg >> 2] = _h; c[Fg >> 2] = 3; if ( (c[((c[xg >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) bj = c[((c[xg >> 2] | 0) + 20) >> 2] | 0; else bj = 4095; c[Gg >> 2] = bj; c[Hg >> 2] = c[((c[wg >> 2] | 0) + 4) >> 2]; c[Ig >> 2] = (c[yg >> 2] | 0) - (c[Hg >> 2] | 0); c[Jg >> 2] = c[((c[xg >> 2] | 0) + 8) >> 2]; c[Kg >> 2] = (c[Fg >> 2] | 0) == 3 ? 3 : 4; c[Lg >> 2] = c[((c[wg >> 2] | 0) + 36) >> 2]; c[Mg >> 2] = Sj( c[yg >> 2] | 0, c[Jg >> 2] | 0, c[Fg >> 2] | 0 ) | 0; c[Ng >> 2] = c[((c[Lg >> 2] | 0) + (c[Mg >> 2] << 2)) >> 2]; c[Og >> 2] = c[((c[wg >> 2] | 0) + 44) >> 2]; c[Pg >> 2] = (c[((c[xg >> 2] | 0) + 4) >> 2] | 0) - 1; c[Qg >> 2] = (1 << c[Pg >> 2]) - 1; c[Rg >> 2] = 0; c[Sg >> 2] = 0; c[Tg >> 2] = c[((c[wg >> 2] | 0) + 8) >> 2]; c[Ug >> 2] = c[((c[wg >> 2] | 0) + 12) >> 2]; c[Vg >> 2] = (c[Tg >> 2] | 0) + (c[Ug >> 2] | 0); c[Wg >> 2] = (c[Hg >> 2] | 0) + (c[Ug >> 2] | 0); if ( (c[Qg >> 2] | 0) >>> 0 >= (c[Ig >> 2] | 0) >>> 0 ) cj = 0; else cj = ((c[Ig >> 2] | 0) - (c[Qg >> 2] | 0)) | 0; c[Xg >> 2] = cj; c[Yg >> 2] = c[((c[wg >> 2] | 0) + 16) >> 2]; c[Zg >> 2] = (c[Og >> 2] | 0) + (((c[Ig >> 2] & c[Qg >> 2]) << 1) << 2); c[_g >> 2] = (c[Og >> 2] | 0) + (((c[Ig >> 2] & c[Qg >> 2]) << 1) << 2) + 4; c[$g >> 2] = (c[Ig >> 2] | 0) + 8 + 1; c[bh >> 2] = 0; c[ch >> 2] = 1 << c[((c[xg >> 2] | 0) + 12) >> 2]; c[dh >> 2] = (c[Eg >> 2] | 0) - 1; c[eh >> 2] = 3 + (c[Cg >> 2] | 0); c[fh >> 2] = c[Cg >> 2]; while (1) { if ( (c[fh >> 2] | 0) >>> 0 >= (c[eh >> 2] | 0) >>> 0 ) { dj = 31; break; } _h = c[Bg >> 2] | 0; if ((c[fh >> 2] | 0) == 3) ej = ((c[_h >> 2] | 0) - 1) | 0; else ej = c[(_h + (c[fh >> 2] << 2)) >> 2] | 0; c[gh >> 2] = ej; c[hh >> 2] = (c[Ig >> 2] | 0) - (c[gh >> 2] | 0); c[ih >> 2] = 0; if ( (((c[gh >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ig >> 2] | 0) - (c[Ug >> 2] | 0)) | 0) >>> 0 ) { _h = mm(c[yg >> 2] | 0, c[Kg >> 2] | 0) | 0; if ( (_h | 0) == (mm( ((c[yg >> 2] | 0) + (0 - (c[gh >> 2] | 0))) | 0, c[Kg >> 2] | 0 ) | 0) ) { _h = Tj( ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0) + (0 - (c[gh >> 2] | 0))) | 0, c[zg >> 2] | 0 ) | 0; c[ih >> 2] = _h + (c[Kg >> 2] | 0); } } else { c[jh >> 2] = (c[Tg >> 2] | 0) + (c[hh >> 2] | 0); if ( ( c[Ag >> 2] | 0 ? ((((c[Ug >> 2] | 0) - 1 - (c[hh >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[gh >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ig >> 2] | 0) - (c[Yg >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((_h = mm(c[yg >> 2] | 0, c[Kg >> 2] | 0) | 0), (_h | 0) == (mm(c[jh >> 2] | 0, c[Kg >> 2] | 0) | 0)) : 0 ) { _h = Uj( ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, ((c[jh >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; c[ih >> 2] = _h + (c[Kg >> 2] | 0); } } if ( (c[ih >> 2] | 0) >>> 0 > (c[dh >> 2] | 0) >>> 0 ? ((c[dh >> 2] = c[ih >> 2]), (c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3)) >> 2 ] = (c[fh >> 2] | 0) - (c[Cg >> 2] | 0)), (c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3) + 4) >> 2 ] = c[ih >> 2]), (c[bh >> 2] = (c[bh >> 2] | 0) + 1), ((c[ih >> 2] | 0) >>> 0 > (c[Gg >> 2] | 0) >>> 0 ? 1 : (((c[yg >> 2] | 0) + (c[ih >> 2] | 0)) | 0) == (c[zg >> 2] | 0)) | 0) : 0 ) { dj = 29; break; } c[fh >> 2] = (c[fh >> 2] | 0) + 1; } do { if ((dj | 0) == 29) { dj = 0; c[vg >> 2] = c[bh >> 2]; } else if ((dj | 0) == 31) { dj = 0; if ( ( (c[Fg >> 2] | 0) == 3 ? (c[dh >> 2] | 0) >>> 0 < (c[Fg >> 2] | 0) >>> 0 : 0 ) ? ((c[kh >> 2] = nm(c[wg >> 2] | 0, c[yg >> 2] | 0) | 0), ((c[kh >> 2] | 0) >>> 0 > (c[Yg >> 2] | 0) >>> 0 ? (((c[Ig >> 2] | 0) - (c[kh >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ag >> 2] | 0 ? (c[kh >> 2] | 0) >>> 0 < (c[Ug >> 2] | 0) >>> 0 : 0 ) { c[nh >> 2] = (c[Tg >> 2] | 0) + (c[kh >> 2] | 0); c[lh >> 2] = Uj( c[yg >> 2] | 0, c[nh >> 2] | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; } else { c[mh >> 2] = (c[Hg >> 2] | 0) + (c[kh >> 2] | 0); c[lh >> 2] = Tj( c[yg >> 2] | 0, c[mh >> 2] | 0, c[zg >> 2] | 0 ) | 0; } if ( (c[lh >> 2] | 0) >>> 0 >= (c[Fg >> 2] | 0) >>> 0 ? ((c[dh >> 2] = c[lh >> 2]), (c[c[Dg >> 2] >> 2] = (c[Ig >> 2] | 0) - (c[kh >> 2] | 0) + 2), (c[((c[Dg >> 2] | 0) + 4) >> 2] = c[lh >> 2]), (c[bh >> 2] = 1), ((c[lh >> 2] | 0) >>> 0 > (c[Gg >> 2] | 0) >>> 0 ? 1 : (((c[yg >> 2] | 0) + (c[lh >> 2] | 0)) | 0) == (c[zg >> 2] | 0)) | 0) : 0 ) { c[((c[wg >> 2] | 0) + 24) >> 2] = (c[Ig >> 2] | 0) + 1; c[vg >> 2] = 1; break; } } c[((c[Lg >> 2] | 0) + (c[Mg >> 2] << 2)) >> 2] = c[Ig >> 2]; while (1) { _h = c[ch >> 2] | 0; c[ch >> 2] = _h + -1; if (!_h) break; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Yg >> 2] | 0) >>> 0 ) break; c[oh >> 2] = (c[Og >> 2] | 0) + (((c[Ng >> 2] & c[Qg >> 2]) << 1) << 2); c[ph >> 2] = (c[Rg >> 2] | 0) >>> 0 < (c[Sg >> 2] | 0) >>> 0 ? c[Rg >> 2] | 0 : c[Sg >> 2] | 0; if ( c[Ag >> 2] | 0 ? (((c[Ng >> 2] | 0) + (c[ph >> 2] | 0)) | 0) >>> 0 < (c[Ug >> 2] | 0) >>> 0 : 0 ) { c[qh >> 2] = (c[Tg >> 2] | 0) + (c[Ng >> 2] | 0); _h = Uj( ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0, ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; c[ph >> 2] = (c[ph >> 2] | 0) + _h; if ( (((c[Ng >> 2] | 0) + (c[ph >> 2] | 0)) | 0) >>> 0 >= (c[Ug >> 2] | 0) >>> 0 ) c[qh >> 2] = (c[Hg >> 2] | 0) + (c[Ng >> 2] | 0); } else { c[qh >> 2] = (c[Hg >> 2] | 0) + (c[Ng >> 2] | 0); _h = Tj( ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0, ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) | 0, c[zg >> 2] | 0 ) | 0; c[ph >> 2] = (c[ph >> 2] | 0) + _h; } if ( (c[ph >> 2] | 0) >>> 0 > (c[dh >> 2] | 0) >>> 0 ) { if ( (c[ph >> 2] | 0) >>> 0 > (((c[$g >> 2] | 0) - (c[Ng >> 2] | 0)) | 0) >>> 0 ) c[$g >> 2] = (c[Ng >> 2] | 0) + (c[ph >> 2] | 0); c[dh >> 2] = c[ph >> 2]; c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3)) >> 2 ] = (c[Ig >> 2] | 0) - (c[Ng >> 2] | 0) + 2; c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3) + 4) >> 2 ] = c[ph >> 2]; c[bh >> 2] = (c[bh >> 2] | 0) + 1; if ((c[ph >> 2] | 0) >>> 0 > 4096) break; if ( (((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0) == (c[zg >> 2] | 0) ) break; } _h = c[Ng >> 2] | 0; if ( (d[ ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Zg >> 2] >> 2] = _h; c[Rg >> 2] = c[ph >> 2]; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Xg >> 2] | 0) >>> 0 ) { dj = 56; break; } c[Zg >> 2] = (c[oh >> 2] | 0) + 4; c[Ng >> 2] = c[((c[oh >> 2] | 0) + 4) >> 2]; } else { c[c[_g >> 2] >> 2] = _h; c[Sg >> 2] = c[ph >> 2]; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Xg >> 2] | 0) >>> 0 ) { dj = 59; break; } c[_g >> 2] = c[oh >> 2]; c[Ng >> 2] = c[c[oh >> 2] >> 2]; } } if ((dj | 0) == 56) { dj = 0; c[Zg >> 2] = ah; } else if ((dj | 0) == 59) { dj = 0; c[_g >> 2] = ah; } c[c[_g >> 2] >> 2] = 0; c[c[Zg >> 2] >> 2] = 0; c[((c[wg >> 2] | 0) + 24) >> 2] = (c[$g >> 2] | 0) - 8; c[vg >> 2] = c[bh >> 2]; } } while (0); c[Ah >> 2] = c[vg >> 2]; break a; break; } case 7: case 6: { _h = c[Ch >> 2] | 0; Qh = c[Dh >> 2] | 0; Ph = c[Eh >> 2] | 0; Zi = c[Fh >> 2] | 0; _i = c[Gh >> 2] | 0; Uh = c[Hh >> 2] | 0; Zh = c[Ih >> 2] | 0; aj = c[Jh >> 2] | 0; c[Hd >> 2] = c[Bh >> 2]; c[Id >> 2] = _h; c[Jd >> 2] = Qh; c[Kd >> 2] = Ph; c[Ld >> 2] = Zi; c[Md >> 2] = _i; c[Nd >> 2] = Uh; c[Od >> 2] = Zh; c[Pd >> 2] = aj; c[Qd >> 2] = 6; if ( (c[((c[Id >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) fj = c[((c[Id >> 2] | 0) + 20) >> 2] | 0; else fj = 4095; c[Rd >> 2] = fj; c[Sd >> 2] = c[((c[Hd >> 2] | 0) + 4) >> 2]; c[Td >> 2] = (c[Jd >> 2] | 0) - (c[Sd >> 2] | 0); c[Ud >> 2] = c[((c[Id >> 2] | 0) + 8) >> 2]; c[Vd >> 2] = (c[Qd >> 2] | 0) == 3 ? 3 : 4; c[Wd >> 2] = c[((c[Hd >> 2] | 0) + 36) >> 2]; c[Xd >> 2] = Sj( c[Jd >> 2] | 0, c[Ud >> 2] | 0, c[Qd >> 2] | 0 ) | 0; c[Yd >> 2] = c[((c[Wd >> 2] | 0) + (c[Xd >> 2] << 2)) >> 2]; c[Zd >> 2] = c[((c[Hd >> 2] | 0) + 44) >> 2]; c[_d >> 2] = (c[((c[Id >> 2] | 0) + 4) >> 2] | 0) - 1; c[$d >> 2] = (1 << c[_d >> 2]) - 1; c[ae >> 2] = 0; c[be >> 2] = 0; c[ce >> 2] = c[((c[Hd >> 2] | 0) + 8) >> 2]; c[de >> 2] = c[((c[Hd >> 2] | 0) + 12) >> 2]; c[ee >> 2] = (c[ce >> 2] | 0) + (c[de >> 2] | 0); c[fe >> 2] = (c[Sd >> 2] | 0) + (c[de >> 2] | 0); if ( (c[$d >> 2] | 0) >>> 0 >= (c[Td >> 2] | 0) >>> 0 ) gj = 0; else gj = ((c[Td >> 2] | 0) - (c[$d >> 2] | 0)) | 0; c[ge >> 2] = gj; c[he >> 2] = c[((c[Hd >> 2] | 0) + 16) >> 2]; c[ie >> 2] = (c[Zd >> 2] | 0) + (((c[Td >> 2] & c[$d >> 2]) << 1) << 2); c[je >> 2] = (c[Zd >> 2] | 0) + (((c[Td >> 2] & c[$d >> 2]) << 1) << 2) + 4; c[ke >> 2] = (c[Td >> 2] | 0) + 8 + 1; c[me >> 2] = 0; c[ne >> 2] = 1 << c[((c[Id >> 2] | 0) + 12) >> 2]; c[oe >> 2] = (c[Pd >> 2] | 0) - 1; c[pe >> 2] = 3 + (c[Nd >> 2] | 0); c[qe >> 2] = c[Nd >> 2]; while (1) { if ( (c[qe >> 2] | 0) >>> 0 >= (c[pe >> 2] | 0) >>> 0 ) { dj = 190; break; } aj = c[Md >> 2] | 0; if ((c[qe >> 2] | 0) == 3) hj = ((c[aj >> 2] | 0) - 1) | 0; else hj = c[(aj + (c[qe >> 2] << 2)) >> 2] | 0; c[re >> 2] = hj; c[se >> 2] = (c[Td >> 2] | 0) - (c[re >> 2] | 0); c[te >> 2] = 0; if ( (((c[re >> 2] | 0) - 1) | 0) >>> 0 < (((c[Td >> 2] | 0) - (c[de >> 2] | 0)) | 0) >>> 0 ) { aj = mm(c[Jd >> 2] | 0, c[Vd >> 2] | 0) | 0; if ( (aj | 0) == (mm( ((c[Jd >> 2] | 0) + (0 - (c[re >> 2] | 0))) | 0, c[Vd >> 2] | 0 ) | 0) ) { aj = Tj( ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0) + (0 - (c[re >> 2] | 0))) | 0, c[Kd >> 2] | 0 ) | 0; c[te >> 2] = aj + (c[Vd >> 2] | 0); } } else { c[ue >> 2] = (c[ce >> 2] | 0) + (c[se >> 2] | 0); if ( ( c[Ld >> 2] | 0 ? ((((c[de >> 2] | 0) - 1 - (c[se >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[re >> 2] | 0) - 1) | 0) >>> 0 < (((c[Td >> 2] | 0) - (c[he >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((aj = mm(c[Jd >> 2] | 0, c[Vd >> 2] | 0) | 0), (aj | 0) == (mm(c[ue >> 2] | 0, c[Vd >> 2] | 0) | 0)) : 0 ) { aj = Uj( ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, ((c[ue >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; c[te >> 2] = aj + (c[Vd >> 2] | 0); } } if ( (c[te >> 2] | 0) >>> 0 > (c[oe >> 2] | 0) >>> 0 ? ((c[oe >> 2] = c[te >> 2]), (c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3)) >> 2 ] = (c[qe >> 2] | 0) - (c[Nd >> 2] | 0)), (c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3) + 4) >> 2 ] = c[te >> 2]), (c[me >> 2] = (c[me >> 2] | 0) + 1), ((c[te >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0 ? 1 : (((c[Jd >> 2] | 0) + (c[te >> 2] | 0)) | 0) == (c[Kd >> 2] | 0)) | 0) : 0 ) { dj = 188; break; } c[qe >> 2] = (c[qe >> 2] | 0) + 1; } do { if ((dj | 0) == 188) { dj = 0; c[Gd >> 2] = c[me >> 2]; } else if ((dj | 0) == 190) { dj = 0; if ( ( (c[Qd >> 2] | 0) == 3 ? (c[oe >> 2] | 0) >>> 0 < (c[Qd >> 2] | 0) >>> 0 : 0 ) ? ((c[ve >> 2] = nm(c[Hd >> 2] | 0, c[Jd >> 2] | 0) | 0), ((c[ve >> 2] | 0) >>> 0 > (c[he >> 2] | 0) >>> 0 ? (((c[Td >> 2] | 0) - (c[ve >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ld >> 2] | 0 ? (c[ve >> 2] | 0) >>> 0 < (c[de >> 2] | 0) >>> 0 : 0 ) { c[ye >> 2] = (c[ce >> 2] | 0) + (c[ve >> 2] | 0); c[we >> 2] = Uj( c[Jd >> 2] | 0, c[ye >> 2] | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; } else { c[xe >> 2] = (c[Sd >> 2] | 0) + (c[ve >> 2] | 0); c[we >> 2] = Tj( c[Jd >> 2] | 0, c[xe >> 2] | 0, c[Kd >> 2] | 0 ) | 0; } if ( (c[we >> 2] | 0) >>> 0 >= (c[Qd >> 2] | 0) >>> 0 ? ((c[oe >> 2] = c[we >> 2]), (c[c[Od >> 2] >> 2] = (c[Td >> 2] | 0) - (c[ve >> 2] | 0) + 2), (c[((c[Od >> 2] | 0) + 4) >> 2] = c[we >> 2]), (c[me >> 2] = 1), ((c[we >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0 ? 1 : (((c[Jd >> 2] | 0) + (c[we >> 2] | 0)) | 0) == (c[Kd >> 2] | 0)) | 0) : 0 ) { c[((c[Hd >> 2] | 0) + 24) >> 2] = (c[Td >> 2] | 0) + 1; c[Gd >> 2] = 1; break; } } c[((c[Wd >> 2] | 0) + (c[Xd >> 2] << 2)) >> 2] = c[Td >> 2]; while (1) { aj = c[ne >> 2] | 0; c[ne >> 2] = aj + -1; if (!aj) break; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[he >> 2] | 0) >>> 0 ) break; c[ze >> 2] = (c[Zd >> 2] | 0) + (((c[Yd >> 2] & c[$d >> 2]) << 1) << 2); c[Ae >> 2] = (c[ae >> 2] | 0) >>> 0 < (c[be >> 2] | 0) >>> 0 ? c[ae >> 2] | 0 : c[be >> 2] | 0; if ( c[Ld >> 2] | 0 ? (((c[Yd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) >>> 0 < (c[de >> 2] | 0) >>> 0 : 0 ) { c[Be >> 2] = (c[ce >> 2] | 0) + (c[Yd >> 2] | 0); aj = Uj( ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; c[Ae >> 2] = (c[Ae >> 2] | 0) + aj; if ( (((c[Yd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) >>> 0 >= (c[de >> 2] | 0) >>> 0 ) c[Be >> 2] = (c[Sd >> 2] | 0) + (c[Yd >> 2] | 0); } else { c[Be >> 2] = (c[Sd >> 2] | 0) + (c[Yd >> 2] | 0); aj = Tj( ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, c[Kd >> 2] | 0 ) | 0; c[Ae >> 2] = (c[Ae >> 2] | 0) + aj; } if ( (c[Ae >> 2] | 0) >>> 0 > (c[oe >> 2] | 0) >>> 0 ) { if ( (c[Ae >> 2] | 0) >>> 0 > (((c[ke >> 2] | 0) - (c[Yd >> 2] | 0)) | 0) >>> 0 ) c[ke >> 2] = (c[Yd >> 2] | 0) + (c[Ae >> 2] | 0); c[oe >> 2] = c[Ae >> 2]; c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3)) >> 2 ] = (c[Td >> 2] | 0) - (c[Yd >> 2] | 0) + 2; c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3) + 4) >> 2 ] = c[Ae >> 2]; c[me >> 2] = (c[me >> 2] | 0) + 1; if ((c[Ae >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) == (c[Kd >> 2] | 0) ) break; } aj = c[Yd >> 2] | 0; if ( (d[ ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[ie >> 2] >> 2] = aj; c[ae >> 2] = c[Ae >> 2]; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[ge >> 2] | 0) >>> 0 ) { dj = 215; break; } c[ie >> 2] = (c[ze >> 2] | 0) + 4; c[Yd >> 2] = c[((c[ze >> 2] | 0) + 4) >> 2]; } else { c[c[je >> 2] >> 2] = aj; c[be >> 2] = c[Ae >> 2]; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[ge >> 2] | 0) >>> 0 ) { dj = 218; break; } c[je >> 2] = c[ze >> 2]; c[Yd >> 2] = c[c[ze >> 2] >> 2]; } } if ((dj | 0) == 215) { dj = 0; c[ie >> 2] = le; } else if ((dj | 0) == 218) { dj = 0; c[je >> 2] = le; } c[c[je >> 2] >> 2] = 0; c[c[ie >> 2] >> 2] = 0; c[((c[Hd >> 2] | 0) + 24) >> 2] = (c[ke >> 2] | 0) - 8; c[Gd >> 2] = c[me >> 2]; } } while (0); c[Ah >> 2] = c[Gd >> 2]; break a; break; } case 5: { aj = c[Ch >> 2] | 0; Zh = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; _i = c[Fh >> 2] | 0; Zi = c[Gh >> 2] | 0; Ph = c[Hh >> 2] | 0; Qh = c[Ih >> 2] | 0; _h = c[Jh >> 2] | 0; c[De >> 2] = c[Bh >> 2]; c[Ee >> 2] = aj; c[Fe >> 2] = Zh; c[Ge >> 2] = Uh; c[He >> 2] = _i; c[Ie >> 2] = Zi; c[Je >> 2] = Ph; c[Ke >> 2] = Qh; c[Le >> 2] = _h; c[Me >> 2] = 5; if ( (c[((c[Ee >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) ij = c[((c[Ee >> 2] | 0) + 20) >> 2] | 0; else ij = 4095; c[Ne >> 2] = ij; c[Oe >> 2] = c[((c[De >> 2] | 0) + 4) >> 2]; c[Pe >> 2] = (c[Fe >> 2] | 0) - (c[Oe >> 2] | 0); c[Qe >> 2] = c[((c[Ee >> 2] | 0) + 8) >> 2]; c[Re >> 2] = (c[Me >> 2] | 0) == 3 ? 3 : 4; c[Se >> 2] = c[((c[De >> 2] | 0) + 36) >> 2]; c[Te >> 2] = Sj( c[Fe >> 2] | 0, c[Qe >> 2] | 0, c[Me >> 2] | 0 ) | 0; c[Ue >> 2] = c[((c[Se >> 2] | 0) + (c[Te >> 2] << 2)) >> 2]; c[Ve >> 2] = c[((c[De >> 2] | 0) + 44) >> 2]; c[We >> 2] = (c[((c[Ee >> 2] | 0) + 4) >> 2] | 0) - 1; c[Xe >> 2] = (1 << c[We >> 2]) - 1; c[Ye >> 2] = 0; c[Ze >> 2] = 0; c[_e >> 2] = c[((c[De >> 2] | 0) + 8) >> 2]; c[$e >> 2] = c[((c[De >> 2] | 0) + 12) >> 2]; c[af >> 2] = (c[_e >> 2] | 0) + (c[$e >> 2] | 0); c[bf >> 2] = (c[Oe >> 2] | 0) + (c[$e >> 2] | 0); if ( (c[Xe >> 2] | 0) >>> 0 >= (c[Pe >> 2] | 0) >>> 0 ) jj = 0; else jj = ((c[Pe >> 2] | 0) - (c[Xe >> 2] | 0)) | 0; c[cf >> 2] = jj; c[df >> 2] = c[((c[De >> 2] | 0) + 16) >> 2]; c[ef >> 2] = (c[Ve >> 2] | 0) + (((c[Pe >> 2] & c[Xe >> 2]) << 1) << 2); c[ff >> 2] = (c[Ve >> 2] | 0) + (((c[Pe >> 2] & c[Xe >> 2]) << 1) << 2) + 4; c[gf >> 2] = (c[Pe >> 2] | 0) + 8 + 1; c[jf >> 2] = 0; c[kf >> 2] = 1 << c[((c[Ee >> 2] | 0) + 12) >> 2]; c[lf >> 2] = (c[Le >> 2] | 0) - 1; c[mf >> 2] = 3 + (c[Je >> 2] | 0); c[nf >> 2] = c[Je >> 2]; while (1) { if ( (c[nf >> 2] | 0) >>> 0 >= (c[mf >> 2] | 0) >>> 0 ) { dj = 137; break; } _h = c[Ie >> 2] | 0; if ((c[nf >> 2] | 0) == 3) kj = ((c[_h >> 2] | 0) - 1) | 0; else kj = c[(_h + (c[nf >> 2] << 2)) >> 2] | 0; c[of >> 2] = kj; c[pf >> 2] = (c[Pe >> 2] | 0) - (c[of >> 2] | 0); c[qf >> 2] = 0; if ( (((c[of >> 2] | 0) - 1) | 0) >>> 0 < (((c[Pe >> 2] | 0) - (c[$e >> 2] | 0)) | 0) >>> 0 ) { _h = mm(c[Fe >> 2] | 0, c[Re >> 2] | 0) | 0; if ( (_h | 0) == (mm( ((c[Fe >> 2] | 0) + (0 - (c[of >> 2] | 0))) | 0, c[Re >> 2] | 0 ) | 0) ) { _h = Tj( ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0)) | 0, ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0) + (0 - (c[of >> 2] | 0))) | 0, c[Ge >> 2] | 0 ) | 0; c[qf >> 2] = _h + (c[Re >> 2] | 0); } } else { c[rf >> 2] = (c[_e >> 2] | 0) + (c[pf >> 2] | 0); if ( ( c[He >> 2] | 0 ? ((((c[$e >> 2] | 0) - 1 - (c[pf >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[of >> 2] | 0) - 1) | 0) >>> 0 < (((c[Pe >> 2] | 0) - (c[df >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((_h = mm(c[Fe >> 2] | 0, c[Re >> 2] | 0) | 0), (_h | 0) == (mm(c[rf >> 2] | 0, c[Re >> 2] | 0) | 0)) : 0 ) { _h = Uj( ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0)) | 0, ((c[rf >> 2] | 0) + (c[Re >> 2] | 0)) | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; c[qf >> 2] = _h + (c[Re >> 2] | 0); } } if ( (c[qf >> 2] | 0) >>> 0 > (c[lf >> 2] | 0) >>> 0 ? ((c[lf >> 2] = c[qf >> 2]), (c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3)) >> 2 ] = (c[nf >> 2] | 0) - (c[Je >> 2] | 0)), (c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3) + 4) >> 2 ] = c[qf >> 2]), (c[jf >> 2] = (c[jf >> 2] | 0) + 1), ((c[qf >> 2] | 0) >>> 0 > (c[Ne >> 2] | 0) >>> 0 ? 1 : (((c[Fe >> 2] | 0) + (c[qf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0)) | 0) : 0 ) { dj = 135; break; } c[nf >> 2] = (c[nf >> 2] | 0) + 1; } do { if ((dj | 0) == 135) { dj = 0; c[Ce >> 2] = c[jf >> 2]; } else if ((dj | 0) == 137) { dj = 0; if ( ( (c[Me >> 2] | 0) == 3 ? (c[lf >> 2] | 0) >>> 0 < (c[Me >> 2] | 0) >>> 0 : 0 ) ? ((c[sf >> 2] = nm(c[De >> 2] | 0, c[Fe >> 2] | 0) | 0), ((c[sf >> 2] | 0) >>> 0 > (c[df >> 2] | 0) >>> 0 ? (((c[Pe >> 2] | 0) - (c[sf >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[He >> 2] | 0 ? (c[sf >> 2] | 0) >>> 0 < (c[$e >> 2] | 0) >>> 0 : 0 ) { c[vf >> 2] = (c[_e >> 2] | 0) + (c[sf >> 2] | 0); c[tf >> 2] = Uj( c[Fe >> 2] | 0, c[vf >> 2] | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; } else { c[uf >> 2] = (c[Oe >> 2] | 0) + (c[sf >> 2] | 0); c[tf >> 2] = Tj( c[Fe >> 2] | 0, c[uf >> 2] | 0, c[Ge >> 2] | 0 ) | 0; } if ( (c[tf >> 2] | 0) >>> 0 >= (c[Me >> 2] | 0) >>> 0 ? ((c[lf >> 2] = c[tf >> 2]), (c[c[Ke >> 2] >> 2] = (c[Pe >> 2] | 0) - (c[sf >> 2] | 0) + 2), (c[((c[Ke >> 2] | 0) + 4) >> 2] = c[tf >> 2]), (c[jf >> 2] = 1), ((c[tf >> 2] | 0) >>> 0 > (c[Ne >> 2] | 0) >>> 0 ? 1 : (((c[Fe >> 2] | 0) + (c[tf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0)) | 0) : 0 ) { c[((c[De >> 2] | 0) + 24) >> 2] = (c[Pe >> 2] | 0) + 1; c[Ce >> 2] = 1; break; } } c[((c[Se >> 2] | 0) + (c[Te >> 2] << 2)) >> 2] = c[Pe >> 2]; while (1) { _h = c[kf >> 2] | 0; c[kf >> 2] = _h + -1; if (!_h) break; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[df >> 2] | 0) >>> 0 ) break; c[wf >> 2] = (c[Ve >> 2] | 0) + (((c[Ue >> 2] & c[Xe >> 2]) << 1) << 2); c[xf >> 2] = (c[Ye >> 2] | 0) >>> 0 < (c[Ze >> 2] | 0) >>> 0 ? c[Ye >> 2] | 0 : c[Ze >> 2] | 0; if ( c[He >> 2] | 0 ? (((c[Ue >> 2] | 0) + (c[xf >> 2] | 0)) | 0) >>> 0 < (c[$e >> 2] | 0) >>> 0 : 0 ) { c[yf >> 2] = (c[_e >> 2] | 0) + (c[Ue >> 2] | 0); _h = Uj( ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0, ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; c[xf >> 2] = (c[xf >> 2] | 0) + _h; if ( (((c[Ue >> 2] | 0) + (c[xf >> 2] | 0)) | 0) >>> 0 >= (c[$e >> 2] | 0) >>> 0 ) c[yf >> 2] = (c[Oe >> 2] | 0) + (c[Ue >> 2] | 0); } else { c[yf >> 2] = (c[Oe >> 2] | 0) + (c[Ue >> 2] | 0); _h = Tj( ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0, ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) | 0, c[Ge >> 2] | 0 ) | 0; c[xf >> 2] = (c[xf >> 2] | 0) + _h; } if ( (c[xf >> 2] | 0) >>> 0 > (c[lf >> 2] | 0) >>> 0 ) { if ( (c[xf >> 2] | 0) >>> 0 > (((c[gf >> 2] | 0) - (c[Ue >> 2] | 0)) | 0) >>> 0 ) c[gf >> 2] = (c[Ue >> 2] | 0) + (c[xf >> 2] | 0); c[lf >> 2] = c[xf >> 2]; c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3)) >> 2 ] = (c[Pe >> 2] | 0) - (c[Ue >> 2] | 0) + 2; c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3) + 4) >> 2 ] = c[xf >> 2]; c[jf >> 2] = (c[jf >> 2] | 0) + 1; if ((c[xf >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0) ) break; } _h = c[Ue >> 2] | 0; if ( (d[ ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[ef >> 2] >> 2] = _h; c[Ye >> 2] = c[xf >> 2]; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[cf >> 2] | 0) >>> 0 ) { dj = 162; break; } c[ef >> 2] = (c[wf >> 2] | 0) + 4; c[Ue >> 2] = c[((c[wf >> 2] | 0) + 4) >> 2]; } else { c[c[ff >> 2] >> 2] = _h; c[Ze >> 2] = c[xf >> 2]; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[cf >> 2] | 0) >>> 0 ) { dj = 165; break; } c[ff >> 2] = c[wf >> 2]; c[Ue >> 2] = c[c[wf >> 2] >> 2]; } } if ((dj | 0) == 162) { dj = 0; c[ef >> 2] = hf; } else if ((dj | 0) == 165) { dj = 0; c[ff >> 2] = hf; } c[c[ff >> 2] >> 2] = 0; c[c[ef >> 2] >> 2] = 0; c[((c[De >> 2] | 0) + 24) >> 2] = (c[gf >> 2] | 0) - 8; c[Ce >> 2] = c[jf >> 2]; } } while (0); c[Ah >> 2] = c[Ce >> 2]; break a; break; } default: { _h = c[Ch >> 2] | 0; Qh = c[Dh >> 2] | 0; Ph = c[Eh >> 2] | 0; Zi = c[Fh >> 2] | 0; _i = c[Gh >> 2] | 0; Uh = c[Hh >> 2] | 0; Zh = c[Ih >> 2] | 0; aj = c[Jh >> 2] | 0; c[Af >> 2] = c[Bh >> 2]; c[Bf >> 2] = _h; c[Cf >> 2] = Qh; c[Df >> 2] = Ph; c[Ef >> 2] = Zi; c[Ff >> 2] = _i; c[Gf >> 2] = Uh; c[Hf >> 2] = Zh; c[If >> 2] = aj; c[Jf >> 2] = 4; if ( (c[((c[Bf >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) lj = c[((c[Bf >> 2] | 0) + 20) >> 2] | 0; else lj = 4095; c[Kf >> 2] = lj; c[Lf >> 2] = c[((c[Af >> 2] | 0) + 4) >> 2]; c[Mf >> 2] = (c[Cf >> 2] | 0) - (c[Lf >> 2] | 0); c[Nf >> 2] = c[((c[Bf >> 2] | 0) + 8) >> 2]; c[Of >> 2] = (c[Jf >> 2] | 0) == 3 ? 3 : 4; c[Pf >> 2] = c[((c[Af >> 2] | 0) + 36) >> 2]; c[Qf >> 2] = Sj( c[Cf >> 2] | 0, c[Nf >> 2] | 0, c[Jf >> 2] | 0 ) | 0; c[Rf >> 2] = c[((c[Pf >> 2] | 0) + (c[Qf >> 2] << 2)) >> 2]; c[Sf >> 2] = c[((c[Af >> 2] | 0) + 44) >> 2]; c[Tf >> 2] = (c[((c[Bf >> 2] | 0) + 4) >> 2] | 0) - 1; c[Uf >> 2] = (1 << c[Tf >> 2]) - 1; c[Vf >> 2] = 0; c[Wf >> 2] = 0; c[Xf >> 2] = c[((c[Af >> 2] | 0) + 8) >> 2]; c[Yf >> 2] = c[((c[Af >> 2] | 0) + 12) >> 2]; c[Zf >> 2] = (c[Xf >> 2] | 0) + (c[Yf >> 2] | 0); c[_f >> 2] = (c[Lf >> 2] | 0) + (c[Yf >> 2] | 0); if ( (c[Uf >> 2] | 0) >>> 0 >= (c[Mf >> 2] | 0) >>> 0 ) mj = 0; else mj = ((c[Mf >> 2] | 0) - (c[Uf >> 2] | 0)) | 0; c[$f >> 2] = mj; c[ag >> 2] = c[((c[Af >> 2] | 0) + 16) >> 2]; c[bg >> 2] = (c[Sf >> 2] | 0) + (((c[Mf >> 2] & c[Uf >> 2]) << 1) << 2); c[cg >> 2] = (c[Sf >> 2] | 0) + (((c[Mf >> 2] & c[Uf >> 2]) << 1) << 2) + 4; c[dg >> 2] = (c[Mf >> 2] | 0) + 8 + 1; c[fg >> 2] = 0; c[gg >> 2] = 1 << c[((c[Bf >> 2] | 0) + 12) >> 2]; c[hg >> 2] = (c[If >> 2] | 0) - 1; c[ig >> 2] = 3 + (c[Gf >> 2] | 0); c[jg >> 2] = c[Gf >> 2]; while (1) { if ( (c[jg >> 2] | 0) >>> 0 >= (c[ig >> 2] | 0) >>> 0 ) { dj = 84; break; } aj = c[Ff >> 2] | 0; if ((c[jg >> 2] | 0) == 3) nj = ((c[aj >> 2] | 0) - 1) | 0; else nj = c[(aj + (c[jg >> 2] << 2)) >> 2] | 0; c[kg >> 2] = nj; c[lg >> 2] = (c[Mf >> 2] | 0) - (c[kg >> 2] | 0); c[mg >> 2] = 0; if ( (((c[kg >> 2] | 0) - 1) | 0) >>> 0 < (((c[Mf >> 2] | 0) - (c[Yf >> 2] | 0)) | 0) >>> 0 ) { aj = mm(c[Cf >> 2] | 0, c[Of >> 2] | 0) | 0; if ( (aj | 0) == (mm( ((c[Cf >> 2] | 0) + (0 - (c[kg >> 2] | 0))) | 0, c[Of >> 2] | 0 ) | 0) ) { aj = Tj( ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0)) | 0, ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0) + (0 - (c[kg >> 2] | 0))) | 0, c[Df >> 2] | 0 ) | 0; c[mg >> 2] = aj + (c[Of >> 2] | 0); } } else { c[ng >> 2] = (c[Xf >> 2] | 0) + (c[lg >> 2] | 0); if ( ( c[Ef >> 2] | 0 ? ((((c[Yf >> 2] | 0) - 1 - (c[lg >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[kg >> 2] | 0) - 1) | 0) >>> 0 < (((c[Mf >> 2] | 0) - (c[ag >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((aj = mm(c[Cf >> 2] | 0, c[Of >> 2] | 0) | 0), (aj | 0) == (mm(c[ng >> 2] | 0, c[Of >> 2] | 0) | 0)) : 0 ) { aj = Uj( ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0)) | 0, ((c[ng >> 2] | 0) + (c[Of >> 2] | 0)) | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; c[mg >> 2] = aj + (c[Of >> 2] | 0); } } if ( (c[mg >> 2] | 0) >>> 0 > (c[hg >> 2] | 0) >>> 0 ? ((c[hg >> 2] = c[mg >> 2]), (c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3)) >> 2 ] = (c[jg >> 2] | 0) - (c[Gf >> 2] | 0)), (c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3) + 4) >> 2 ] = c[mg >> 2]), (c[fg >> 2] = (c[fg >> 2] | 0) + 1), ((c[mg >> 2] | 0) >>> 0 > (c[Kf >> 2] | 0) >>> 0 ? 1 : (((c[Cf >> 2] | 0) + (c[mg >> 2] | 0)) | 0) == (c[Df >> 2] | 0)) | 0) : 0 ) { dj = 82; break; } c[jg >> 2] = (c[jg >> 2] | 0) + 1; } do { if ((dj | 0) == 82) { dj = 0; c[zf >> 2] = c[fg >> 2]; } else if ((dj | 0) == 84) { dj = 0; if ( ( (c[Jf >> 2] | 0) == 3 ? (c[hg >> 2] | 0) >>> 0 < (c[Jf >> 2] | 0) >>> 0 : 0 ) ? ((c[og >> 2] = nm(c[Af >> 2] | 0, c[Cf >> 2] | 0) | 0), ((c[og >> 2] | 0) >>> 0 > (c[ag >> 2] | 0) >>> 0 ? (((c[Mf >> 2] | 0) - (c[og >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ef >> 2] | 0 ? (c[og >> 2] | 0) >>> 0 < (c[Yf >> 2] | 0) >>> 0 : 0 ) { c[rg >> 2] = (c[Xf >> 2] | 0) + (c[og >> 2] | 0); c[pg >> 2] = Uj( c[Cf >> 2] | 0, c[rg >> 2] | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; } else { c[qg >> 2] = (c[Lf >> 2] | 0) + (c[og >> 2] | 0); c[pg >> 2] = Tj( c[Cf >> 2] | 0, c[qg >> 2] | 0, c[Df >> 2] | 0 ) | 0; } if ( (c[pg >> 2] | 0) >>> 0 >= (c[Jf >> 2] | 0) >>> 0 ? ((c[hg >> 2] = c[pg >> 2]), (c[c[Hf >> 2] >> 2] = (c[Mf >> 2] | 0) - (c[og >> 2] | 0) + 2), (c[((c[Hf >> 2] | 0) + 4) >> 2] = c[pg >> 2]), (c[fg >> 2] = 1), ((c[pg >> 2] | 0) >>> 0 > (c[Kf >> 2] | 0) >>> 0 ? 1 : (((c[Cf >> 2] | 0) + (c[pg >> 2] | 0)) | 0) == (c[Df >> 2] | 0)) | 0) : 0 ) { c[((c[Af >> 2] | 0) + 24) >> 2] = (c[Mf >> 2] | 0) + 1; c[zf >> 2] = 1; break; } } c[((c[Pf >> 2] | 0) + (c[Qf >> 2] << 2)) >> 2] = c[Mf >> 2]; while (1) { aj = c[gg >> 2] | 0; c[gg >> 2] = aj + -1; if (!aj) break; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[ag >> 2] | 0) >>> 0 ) break; c[sg >> 2] = (c[Sf >> 2] | 0) + (((c[Rf >> 2] & c[Uf >> 2]) << 1) << 2); c[tg >> 2] = (c[Vf >> 2] | 0) >>> 0 < (c[Wf >> 2] | 0) >>> 0 ? c[Vf >> 2] | 0 : c[Wf >> 2] | 0; if ( c[Ef >> 2] | 0 ? (((c[Rf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) >>> 0 < (c[Yf >> 2] | 0) >>> 0 : 0 ) { c[ug >> 2] = (c[Xf >> 2] | 0) + (c[Rf >> 2] | 0); aj = Uj( ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0, ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; c[tg >> 2] = (c[tg >> 2] | 0) + aj; if ( (((c[Rf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) >>> 0 >= (c[Yf >> 2] | 0) >>> 0 ) c[ug >> 2] = (c[Lf >> 2] | 0) + (c[Rf >> 2] | 0); } else { c[ug >> 2] = (c[Lf >> 2] | 0) + (c[Rf >> 2] | 0); aj = Tj( ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0, ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) | 0, c[Df >> 2] | 0 ) | 0; c[tg >> 2] = (c[tg >> 2] | 0) + aj; } if ( (c[tg >> 2] | 0) >>> 0 > (c[hg >> 2] | 0) >>> 0 ) { if ( (c[tg >> 2] | 0) >>> 0 > (((c[dg >> 2] | 0) - (c[Rf >> 2] | 0)) | 0) >>> 0 ) c[dg >> 2] = (c[Rf >> 2] | 0) + (c[tg >> 2] | 0); c[hg >> 2] = c[tg >> 2]; c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3)) >> 2 ] = (c[Mf >> 2] | 0) - (c[Rf >> 2] | 0) + 2; c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3) + 4) >> 2 ] = c[tg >> 2]; c[fg >> 2] = (c[fg >> 2] | 0) + 1; if ((c[tg >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) == (c[Df >> 2] | 0) ) break; } aj = c[Rf >> 2] | 0; if ( (d[ ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[bg >> 2] >> 2] = aj; c[Vf >> 2] = c[tg >> 2]; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[$f >> 2] | 0) >>> 0 ) { dj = 109; break; } c[bg >> 2] = (c[sg >> 2] | 0) + 4; c[Rf >> 2] = c[((c[sg >> 2] | 0) + 4) >> 2]; } else { c[c[cg >> 2] >> 2] = aj; c[Wf >> 2] = c[tg >> 2]; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[$f >> 2] | 0) >>> 0 ) { dj = 112; break; } c[cg >> 2] = c[sg >> 2]; c[Rf >> 2] = c[c[sg >> 2] >> 2]; } } if ((dj | 0) == 109) { dj = 0; c[bg >> 2] = eg; } else if ((dj | 0) == 112) { dj = 0; c[cg >> 2] = eg; } c[c[cg >> 2] >> 2] = 0; c[c[bg >> 2] >> 2] = 0; c[((c[Af >> 2] | 0) + 24) >> 2] = (c[dg >> 2] | 0) - 8; c[zf >> 2] = c[fg >> 2]; } } while (0); c[Ah >> 2] = c[zf >> 2]; break a; } } } } while (0); c[ki >> 2] = c[Ah >> 2]; if (!(c[ki >> 2] | 0)) { c[Vh >> 2] = (c[Vh >> 2] | 0) + 1; continue; } c[li >> 2] = 0; while (1) { if ((c[li >> 2] | 0) >>> 0 >= 3) break; c[((c[bi >> 2] | 0) + 16 + (c[li >> 2] << 2)) >> 2] = c[((c[Nh >> 2] | 0) + (c[li >> 2] << 2)) >> 2]; c[li >> 2] = (c[li >> 2] | 0) + 1; } c[((c[bi >> 2] | 0) + 8) >> 2] = 1; c[((c[bi >> 2] | 0) + 12) >> 2] = c[ii >> 2]; c[mi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[ki >> 2] | 0) - 1) << 3) + 4) >> 2 ]; do { if ((c[mi >> 2] | 0) >>> 0 <= (c[$h >> 2] | 0) >>> 0) { c[ni >> 2] = om( di, c[Wh >> 2] | 0, c[ii >> 2] | 0, c[Th >> 2] | 0 ) | 0; c[oi >> 2] = 0; while (1) { if ((c[oi >> 2] | 0) >>> 0 >= (c[ai >> 2] | 0) >>> 0) break; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 8) >> 2 ] = 1; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0)) >> 2 ] = 1073741824; c[oi >> 2] = (c[oi >> 2] | 0) + 1; } c[pi >> 2] = 0; while (1) { if ((c[pi >> 2] | 0) >>> 0 >= (c[ki >> 2] | 0) >>> 0) break; c[qi >> 2] = c[((c[ci >> 2] | 0) + (c[pi >> 2] << 3)) >> 2]; c[ri >> 2] = c[((c[ci >> 2] | 0) + (c[pi >> 2] << 3) + 4) >> 2]; pm( si, c[Nh >> 2] | 0, c[qi >> 2] | 0, c[ji >> 2] | 0 ); while (1) { if ((c[oi >> 2] | 0) >>> 0 > (c[ri >> 2] | 0) >>> 0) break; aj = c[ni >> 2] | 0; Zh = c[oi >> 2] | 0; Uh = c[Th >> 2] | 0; _i = c[Rh >> 2] | 0; c[yd >> 2] = c[qi >> 2]; c[zd >> 2] = Zh; c[Ad >> 2] = Uh; c[Bd >> 2] = _i; c[Dd >> 2] = qm(((c[yd >> 2] | 0) + 1) | 0) | 0; c[Ed >> 2] = (c[zd >> 2] | 0) - 3; if (c[((c[Ad >> 2] | 0) + 56) >> 2] | 0) { _i = ((qm(((c[Ed >> 2] | 0) + 1) | 0) | 0) + 16) | 0; c[xd >> 2] = _i + (c[Dd >> 2] | 0); } else { _i = ((c[Dd >> 2] | 0) + (c[((c[Ad >> 2] | 0) + 52) >> 2] | 0)) | 0; c[Cd >> 2] = _i - (qm( ((c[ ((c[((c[Ad >> 2] | 0) + 12) >> 2] | 0) + (c[Dd >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); if ( ((c[Bd >> 2] | 0) < 2) & ((c[Dd >> 2] | 0) >>> 0 >= 20) ) c[Cd >> 2] = (c[Cd >> 2] | 0) + (((c[Dd >> 2] | 0) - 19) << 1); c[Fd >> 2] = rm(c[Ed >> 2] | 0) | 0; _i = ((c[(5840 + (c[Fd >> 2] << 2)) >> 2] | 0) + (c[((c[Ad >> 2] | 0) + 48) >> 2] | 0)) | 0; Uh = (_i - (qm( ((c[ ((c[((c[Ad >> 2] | 0) + 8) >> 2] | 0) + (c[Fd >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0)) | 0; c[Cd >> 2] = (c[Cd >> 2] | 0) + Uh; c[xd >> 2] = c[Cd >> 2]; } c[ti >> 2] = aj + (c[xd >> 2] | 0); c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[oi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[qi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[ii >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0)) >> 2 ] = c[ti >> 2]; aj = ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 16) | 0; c[aj >> 2] = c[si >> 2]; c[(aj + 4) >> 2] = c[(si + 4) >> 2]; c[(aj + 8) >> 2] = c[(si + 8) >> 2]; c[oi >> 2] = (c[oi >> 2] | 0) + 1; } c[pi >> 2] = (c[pi >> 2] | 0) + 1; } c[fi >> 2] = (c[oi >> 2] | 0) - 1; c[ei >> 2] = 1; b: while (1) { if ((c[ei >> 2] | 0) >>> 0 > (c[fi >> 2] | 0) >>> 0) { dj = 504; break; } c[ui >> 2] = (c[Vh >> 2] | 0) + (c[ei >> 2] | 0); if ( (c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 8) >> 2 ] | 0) == 1 ) oj = ((c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 12) >> 2 ] | 0) + 1) | 0; else oj = 1; c[vi >> 2] = oj; if ((c[ei >> 2] | 0) >>> 0 > (c[vi >> 2] | 0) >>> 0) { aj = c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - (c[vi >> 2] | 0)) | 0) * 28) | 0)) >> 2 ] | 0; c[wi >> 2] = aj + (sm( ((c[ui >> 2] | 0) + (0 - (c[vi >> 2] | 0))) | 0, c[vi >> 2] | 0, c[Th >> 2] | 0 ) | 0); } else c[wi >> 2] = tm( di, c[Wh >> 2] | 0, c[vi >> 2] | 0, c[Th >> 2] | 0 ) | 0; if ( (c[wi >> 2] | 0) <= (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] | 0) ) { c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] = 1; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 4) >> 2 ] = 0; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[vi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] = c[wi >> 2]; aj = ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0; Uh = ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 16) | 0; c[aj >> 2] = c[Uh >> 2]; c[(aj + 4) >> 2] = c[(Uh + 4) >> 2]; c[(aj + 8) >> 2] = c[(Uh + 8) >> 2]; } c: do { if ( (c[ui >> 2] | 0) >>> 0 <= (c[Yh >> 2] | 0) >>> 0 ) { if ((c[ei >> 2] | 0) == (c[fi >> 2] | 0)) { dj = 504; break b; } if ( (c[Rh >> 2] | 0) == 0 ? (c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) + 1) | 0) * 28) | 0)) >> 2 ] | 0) <= (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] | 0) : 0 ) break; c[xi >> 2] = ((c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] | 0) != 1) & 1; if ( (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] | 0) == 1 ) pj = c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 12) >> 2 ] | 0; else pj = 0; c[yi >> 2] = pj; if ( (c[ei >> 2] | 0) >>> 0 > (c[yi >> 2] | 0) >>> 0 ) qj = c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - (c[yi >> 2] | 0)) | 0) * 28) | 0)) >> 2 ] | 0; else qj = 0; c[zi >> 2] = qj; Uh = c[zi >> 2] | 0; c[Ai >> 2] = Uh + (um( ((c[ui >> 2] | 0) + (0 - (c[yi >> 2] | 0))) | 0, c[yi >> 2] | 0, c[Th >> 2] | 0 ) | 0); Uh = c[Oh >> 2] | 0; aj = c[ui >> 2] | 0; _i = c[Xh >> 2] | 0; Zh = c[Sh >> 2] | 0; Zi = ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0; Ph = c[xi >> 2] | 0; Qh = c[ci >> 2] | 0; _h = c[ai >> 2] | 0; c[nd >> 2] = c[Lh >> 2]; c[od >> 2] = Uh; c[pd >> 2] = aj; c[qd >> 2] = _i; c[rd >> 2] = Zh; c[sd >> 2] = Zi; c[td >> 2] = Ph; c[ud >> 2] = Qh; c[vd >> 2] = _h; c[wd >> 2] = c[((c[od >> 2] | 0) + 16) >> 2]; d: do { if ( (c[pd >> 2] | 0) >>> 0 < (((c[((c[nd >> 2] | 0) + 4) >> 2] | 0) + (c[((c[nd >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) c[md >> 2] = 0; else { _h = c[od >> 2] | 0; Qh = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Zi = c[wd >> 2] | 0; Zh = c[rd >> 2] | 0; c[dd >> 2] = c[nd >> 2]; c[ed >> 2] = _h; c[fd >> 2] = Qh; c[gd >> 2] = Ph; c[hd >> 2] = Zi; c[id >> 2] = Zh; c[jd >> 2] = c[((c[dd >> 2] | 0) + 4) >> 2]; c[kd >> 2] = (c[fd >> 2] | 0) - (c[jd >> 2] | 0); c[ld >> 2] = c[((c[dd >> 2] | 0) + 24) >> 2]; while (1) { if ( (c[ld >> 2] | 0) >>> 0 >= (c[kd >> 2] | 0) >>> 0 ) break; Zh = Rj( c[dd >> 2] | 0, c[ed >> 2] | 0, ((c[jd >> 2] | 0) + (c[ld >> 2] | 0)) | 0, c[gd >> 2] | 0, c[hd >> 2] | 0, c[id >> 2] | 0 ) | 0; c[ld >> 2] = (c[ld >> 2] | 0) + Zh; } c[((c[dd >> 2] | 0) + 24) >> 2] = c[kd >> 2]; switch (c[wd >> 2] | 0) { case 3: { Zh = c[od >> 2] | 0; Zi = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Qh = c[rd >> 2] | 0; _h = c[sd >> 2] | 0; _i = c[td >> 2] | 0; aj = c[ud >> 2] | 0; Uh = c[vd >> 2] | 0; c[ic >> 2] = c[nd >> 2]; c[jc >> 2] = Zh; c[kc >> 2] = Zi; c[lc >> 2] = Ph; c[mc >> 2] = Qh; c[nc >> 2] = _h; c[oc >> 2] = _i; c[pc >> 2] = aj; c[qc >> 2] = Uh; c[rc >> 2] = 3; if ( (c[((c[jc >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) rj = c[((c[jc >> 2] | 0) + 20) >> 2] | 0; else rj = 4095; c[sc >> 2] = rj; c[tc >> 2] = c[((c[ic >> 2] | 0) + 4) >> 2]; c[uc >> 2] = (c[kc >> 2] | 0) - (c[tc >> 2] | 0); c[vc >> 2] = c[((c[jc >> 2] | 0) + 8) >> 2]; c[wc >> 2] = (c[rc >> 2] | 0) == 3 ? 3 : 4; c[xc >> 2] = c[((c[ic >> 2] | 0) + 36) >> 2]; c[yc >> 2] = Sj( c[kc >> 2] | 0, c[vc >> 2] | 0, c[rc >> 2] | 0 ) | 0; c[zc >> 2] = c[ ((c[xc >> 2] | 0) + (c[yc >> 2] << 2)) >> 2 ]; c[Ac >> 2] = c[((c[ic >> 2] | 0) + 44) >> 2]; c[Bc >> 2] = (c[((c[jc >> 2] | 0) + 4) >> 2] | 0) - 1; c[Cc >> 2] = (1 << c[Bc >> 2]) - 1; c[Dc >> 2] = 0; c[Ec >> 2] = 0; c[Fc >> 2] = c[((c[ic >> 2] | 0) + 8) >> 2]; c[Gc >> 2] = c[((c[ic >> 2] | 0) + 12) >> 2]; c[Hc >> 2] = (c[Fc >> 2] | 0) + (c[Gc >> 2] | 0); c[Ic >> 2] = (c[tc >> 2] | 0) + (c[Gc >> 2] | 0); if ( (c[Cc >> 2] | 0) >>> 0 >= (c[uc >> 2] | 0) >>> 0 ) sj = 0; else sj = ((c[uc >> 2] | 0) - (c[Cc >> 2] | 0)) | 0; c[Jc >> 2] = sj; c[Kc >> 2] = c[((c[ic >> 2] | 0) + 16) >> 2]; c[Lc >> 2] = (c[Ac >> 2] | 0) + (((c[uc >> 2] & c[Cc >> 2]) << 1) << 2); c[Mc >> 2] = (c[Ac >> 2] | 0) + (((c[uc >> 2] & c[Cc >> 2]) << 1) << 2) + 4; c[Nc >> 2] = (c[uc >> 2] | 0) + 8 + 1; c[Pc >> 2] = 0; c[Qc >> 2] = 1 << c[((c[jc >> 2] | 0) + 12) >> 2]; c[Rc >> 2] = (c[qc >> 2] | 0) - 1; c[Sc >> 2] = 3 + (c[oc >> 2] | 0); c[Tc >> 2] = c[oc >> 2]; while (1) { if ( (c[Tc >> 2] | 0) >>> 0 >= (c[Sc >> 2] | 0) >>> 0 ) { dj = 287; break; } Uh = c[nc >> 2] | 0; if ((c[Tc >> 2] | 0) == 3) tj = ((c[Uh >> 2] | 0) - 1) | 0; else tj = c[(Uh + (c[Tc >> 2] << 2)) >> 2] | 0; c[Uc >> 2] = tj; c[Vc >> 2] = (c[uc >> 2] | 0) - (c[Uc >> 2] | 0); c[Wc >> 2] = 0; do { if ( (((c[Uc >> 2] | 0) - 1) | 0) >>> 0 < (((c[uc >> 2] | 0) - (c[Gc >> 2] | 0)) | 0) >>> 0 ) { Uh = mm( c[kc >> 2] | 0, c[wc >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( ((c[kc >> 2] | 0) + (0 - (c[Uc >> 2] | 0))) | 0, c[wc >> 2] | 0 ) | 0) ) break; Uh = Tj( ((c[kc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, ((c[kc >> 2] | 0) + (c[wc >> 2] | 0) + (0 - (c[Uc >> 2] | 0))) | 0, c[lc >> 2] | 0 ) | 0; c[Wc >> 2] = Uh + (c[wc >> 2] | 0); } else { c[Xc >> 2] = (c[Fc >> 2] | 0) + (c[Vc >> 2] | 0); if (!(c[mc >> 2] | 0)) break; if ( !( ((((c[Gc >> 2] | 0) - 1 - (c[Vc >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[Uc >> 2] | 0) - 1) | 0) >>> 0 < (((c[uc >> 2] | 0) - (c[Kc >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Uh = mm( c[kc >> 2] | 0, c[wc >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( c[Xc >> 2] | 0, c[wc >> 2] | 0 ) | 0) ) break; Uh = Uj( ((c[kc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, ((c[Xc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; c[Wc >> 2] = Uh + (c[wc >> 2] | 0); } } while (0); if ( (c[Wc >> 2] | 0) >>> 0 > (c[Rc >> 2] | 0) >>> 0 ? ((c[Rc >> 2] = c[Wc >> 2]), (c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3)) >> 2 ] = (c[Tc >> 2] | 0) - (c[oc >> 2] | 0)), (c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3) + 4) >> 2 ] = c[Wc >> 2]), (c[Pc >> 2] = (c[Pc >> 2] | 0) + 1), ((c[Wc >> 2] | 0) >>> 0 > (c[sc >> 2] | 0) >>> 0 ? 1 : (((c[kc >> 2] | 0) + (c[Wc >> 2] | 0)) | 0) == (c[lc >> 2] | 0)) | 0) : 0 ) { dj = 285; break; } c[Tc >> 2] = (c[Tc >> 2] | 0) + 1; } e: do { if ((dj | 0) == 285) { dj = 0; c[hc >> 2] = c[Pc >> 2]; } else if ((dj | 0) == 287) { dj = 0; do { if ((c[rc >> 2] | 0) == 3) { if ( (c[Rc >> 2] | 0) >>> 0 >= (c[rc >> 2] | 0) >>> 0 ) break; c[Yc >> 2] = nm( c[ic >> 2] | 0, c[kc >> 2] | 0 ) | 0; if ( !( ((c[Yc >> 2] | 0) >>> 0 > (c[Kc >> 2] | 0) >>> 0 ? (((c[uc >> 2] | 0) - (c[Yc >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[mc >> 2] | 0) { if ( (c[Yc >> 2] | 0) >>> 0 >= (c[Gc >> 2] | 0) >>> 0 ) { dj = 292; break; } c[$c >> 2] = (c[Fc >> 2] | 0) + (c[Yc >> 2] | 0); c[Zc >> 2] = Uj( c[kc >> 2] | 0, c[$c >> 2] | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; } else dj = 292; } while (0); if ((dj | 0) == 292) { dj = 0; c[_c >> 2] = (c[tc >> 2] | 0) + (c[Yc >> 2] | 0); c[Zc >> 2] = Tj( c[kc >> 2] | 0, c[_c >> 2] | 0, c[lc >> 2] | 0 ) | 0; } if ( (c[Zc >> 2] | 0) >>> 0 < (c[rc >> 2] | 0) >>> 0 ) break; c[Rc >> 2] = c[Zc >> 2]; c[c[pc >> 2] >> 2] = (c[uc >> 2] | 0) - (c[Yc >> 2] | 0) + 2; c[((c[pc >> 2] | 0) + 4) >> 2] = c[Zc >> 2]; c[Pc >> 2] = 1; if ( !( ((c[Zc >> 2] | 0) >>> 0 > (c[sc >> 2] | 0) >>> 0 ? 1 : (((c[kc >> 2] | 0) + (c[Zc >> 2] | 0)) | 0) == (c[lc >> 2] | 0)) | 0 ) ) break; c[((c[ic >> 2] | 0) + 24) >> 2] = (c[uc >> 2] | 0) + 1; c[hc >> 2] = 1; break e; } } while (0); c[ ((c[xc >> 2] | 0) + (c[yc >> 2] << 2)) >> 2 ] = c[uc >> 2]; while (1) { Uh = c[Qc >> 2] | 0; c[Qc >> 2] = Uh + -1; if (!Uh) break; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Kc >> 2] | 0) >>> 0 ) break; c[ad >> 2] = (c[Ac >> 2] | 0) + (((c[zc >> 2] & c[Cc >> 2]) << 1) << 2); c[bd >> 2] = (c[Dc >> 2] | 0) >>> 0 < (c[Ec >> 2] | 0) >>> 0 ? c[Dc >> 2] | 0 : c[Ec >> 2] | 0; do { if (c[mc >> 2] | 0) { if ( (((c[zc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) >>> 0 >= (c[Gc >> 2] | 0) >>> 0 ) { dj = 302; break; } c[cd >> 2] = (c[Fc >> 2] | 0) + (c[zc >> 2] | 0); Uh = Uj( ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0, ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; c[bd >> 2] = (c[bd >> 2] | 0) + Uh; if ( (((c[zc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) >>> 0 < (c[Gc >> 2] | 0) >>> 0 ) break; c[cd >> 2] = (c[tc >> 2] | 0) + (c[zc >> 2] | 0); } else dj = 302; } while (0); if ((dj | 0) == 302) { dj = 0; c[cd >> 2] = (c[tc >> 2] | 0) + (c[zc >> 2] | 0); Uh = Tj( ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0, ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) | 0, c[lc >> 2] | 0 ) | 0; c[bd >> 2] = (c[bd >> 2] | 0) + Uh; } if ( (c[bd >> 2] | 0) >>> 0 > (c[Rc >> 2] | 0) >>> 0 ) { if ( (c[bd >> 2] | 0) >>> 0 > (((c[Nc >> 2] | 0) - (c[zc >> 2] | 0)) | 0) >>> 0 ) c[Nc >> 2] = (c[zc >> 2] | 0) + (c[bd >> 2] | 0); c[Rc >> 2] = c[bd >> 2]; c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3)) >> 2 ] = (c[uc >> 2] | 0) - (c[zc >> 2] | 0) + 2; c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3) + 4) >> 2 ] = c[bd >> 2]; c[Pc >> 2] = (c[Pc >> 2] | 0) + 1; if ((c[bd >> 2] | 0) >>> 0 > 4096) break; if ( (((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) == (c[lc >> 2] | 0) ) break; } Uh = c[zc >> 2] | 0; if ( (d[ ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Lc >> 2] >> 2] = Uh; c[Dc >> 2] = c[bd >> 2]; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Jc >> 2] | 0) >>> 0 ) { dj = 312; break; } c[Lc >> 2] = (c[ad >> 2] | 0) + 4; c[zc >> 2] = c[((c[ad >> 2] | 0) + 4) >> 2]; } else { c[c[Mc >> 2] >> 2] = Uh; c[Ec >> 2] = c[bd >> 2]; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Jc >> 2] | 0) >>> 0 ) { dj = 315; break; } c[Mc >> 2] = c[ad >> 2]; c[zc >> 2] = c[c[ad >> 2] >> 2]; } } if ((dj | 0) == 312) { dj = 0; c[Lc >> 2] = Oc; } else if ((dj | 0) == 315) { dj = 0; c[Mc >> 2] = Oc; } c[c[Mc >> 2] >> 2] = 0; c[c[Lc >> 2] >> 2] = 0; c[((c[ic >> 2] | 0) + 24) >> 2] = (c[Nc >> 2] | 0) - 8; c[hc >> 2] = c[Pc >> 2]; } } while (0); c[md >> 2] = c[hc >> 2]; break d; break; } case 7: case 6: { Uh = c[od >> 2] | 0; aj = c[pd >> 2] | 0; _i = c[qd >> 2] | 0; _h = c[rd >> 2] | 0; Qh = c[sd >> 2] | 0; Ph = c[td >> 2] | 0; Zi = c[ud >> 2] | 0; Zh = c[vd >> 2] | 0; c[u >> 2] = c[nd >> 2]; c[v >> 2] = Uh; c[w >> 2] = aj; c[x >> 2] = _i; c[y >> 2] = _h; c[z >> 2] = Qh; c[A >> 2] = Ph; c[B >> 2] = Zi; c[C >> 2] = Zh; c[D >> 2] = 6; if ( (c[((c[v >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) uj = c[((c[v >> 2] | 0) + 20) >> 2] | 0; else uj = 4095; c[E >> 2] = uj; c[F >> 2] = c[((c[u >> 2] | 0) + 4) >> 2]; c[G >> 2] = (c[w >> 2] | 0) - (c[F >> 2] | 0); c[H >> 2] = c[((c[v >> 2] | 0) + 8) >> 2]; c[I >> 2] = (c[D >> 2] | 0) == 3 ? 3 : 4; c[J >> 2] = c[((c[u >> 2] | 0) + 36) >> 2]; c[K >> 2] = Sj( c[w >> 2] | 0, c[H >> 2] | 0, c[D >> 2] | 0 ) | 0; c[L >> 2] = c[ ((c[J >> 2] | 0) + (c[K >> 2] << 2)) >> 2 ]; c[M >> 2] = c[((c[u >> 2] | 0) + 44) >> 2]; c[N >> 2] = (c[((c[v >> 2] | 0) + 4) >> 2] | 0) - 1; c[O >> 2] = (1 << c[N >> 2]) - 1; c[P >> 2] = 0; c[Q >> 2] = 0; c[R >> 2] = c[((c[u >> 2] | 0) + 8) >> 2]; c[S >> 2] = c[((c[u >> 2] | 0) + 12) >> 2]; c[T >> 2] = (c[R >> 2] | 0) + (c[S >> 2] | 0); c[U >> 2] = (c[F >> 2] | 0) + (c[S >> 2] | 0); if ( (c[O >> 2] | 0) >>> 0 >= (c[G >> 2] | 0) >>> 0 ) vj = 0; else vj = ((c[G >> 2] | 0) - (c[O >> 2] | 0)) | 0; c[V >> 2] = vj; c[W >> 2] = c[((c[u >> 2] | 0) + 16) >> 2]; c[X >> 2] = (c[M >> 2] | 0) + (((c[G >> 2] & c[O >> 2]) << 1) << 2); c[Y >> 2] = (c[M >> 2] | 0) + (((c[G >> 2] & c[O >> 2]) << 1) << 2) + 4; c[Z >> 2] = (c[G >> 2] | 0) + 8 + 1; c[$ >> 2] = 0; c[aa >> 2] = 1 << c[((c[v >> 2] | 0) + 12) >> 2]; c[ba >> 2] = (c[C >> 2] | 0) - 1; c[ca >> 2] = 3 + (c[A >> 2] | 0); c[da >> 2] = c[A >> 2]; while (1) { if ( (c[da >> 2] | 0) >>> 0 >= (c[ca >> 2] | 0) >>> 0 ) { dj = 446; break; } Zh = c[z >> 2] | 0; if ((c[da >> 2] | 0) == 3) wj = ((c[Zh >> 2] | 0) - 1) | 0; else wj = c[(Zh + (c[da >> 2] << 2)) >> 2] | 0; c[ea >> 2] = wj; c[fa >> 2] = (c[G >> 2] | 0) - (c[ea >> 2] | 0); c[ga >> 2] = 0; do { if ( (((c[ea >> 2] | 0) - 1) | 0) >>> 0 < (((c[G >> 2] | 0) - (c[S >> 2] | 0)) | 0) >>> 0 ) { Zh = mm(c[w >> 2] | 0, c[I >> 2] | 0) | 0; if ( (Zh | 0) != (mm( ((c[w >> 2] | 0) + (0 - (c[ea >> 2] | 0))) | 0, c[I >> 2] | 0 ) | 0) ) break; Zh = Tj( ((c[w >> 2] | 0) + (c[I >> 2] | 0)) | 0, ((c[w >> 2] | 0) + (c[I >> 2] | 0) + (0 - (c[ea >> 2] | 0))) | 0, c[x >> 2] | 0 ) | 0; c[ga >> 2] = Zh + (c[I >> 2] | 0); } else { c[ha >> 2] = (c[R >> 2] | 0) + (c[fa >> 2] | 0); if (!(c[y >> 2] | 0)) break; if ( !( ((((c[S >> 2] | 0) - 1 - (c[fa >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[ea >> 2] | 0) - 1) | 0) >>> 0 < (((c[G >> 2] | 0) - (c[W >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Zh = mm(c[w >> 2] | 0, c[I >> 2] | 0) | 0; if ( (Zh | 0) != (mm( c[ha >> 2] | 0, c[I >> 2] | 0 ) | 0) ) break; Zh = Uj( ((c[w >> 2] | 0) + (c[I >> 2] | 0)) | 0, ((c[ha >> 2] | 0) + (c[I >> 2] | 0)) | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[ga >> 2] = Zh + (c[I >> 2] | 0); } } while (0); if ( (c[ga >> 2] | 0) >>> 0 > (c[ba >> 2] | 0) >>> 0 ? ((c[ba >> 2] = c[ga >> 2]), (c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3)) >> 2 ] = (c[da >> 2] | 0) - (c[A >> 2] | 0)), (c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3) + 4) >> 2 ] = c[ga >> 2]), (c[$ >> 2] = (c[$ >> 2] | 0) + 1), ((c[ga >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0 ? 1 : (((c[w >> 2] | 0) + (c[ga >> 2] | 0)) | 0) == (c[x >> 2] | 0)) | 0) : 0 ) { dj = 444; break; } c[da >> 2] = (c[da >> 2] | 0) + 1; } f: do { if ((dj | 0) == 444) { dj = 0; c[t >> 2] = c[$ >> 2]; } else if ((dj | 0) == 446) { dj = 0; do { if ((c[D >> 2] | 0) == 3) { if ( (c[ba >> 2] | 0) >>> 0 >= (c[D >> 2] | 0) >>> 0 ) break; c[ia >> 2] = nm( c[u >> 2] | 0, c[w >> 2] | 0 ) | 0; if ( !( ((c[ia >> 2] | 0) >>> 0 > (c[W >> 2] | 0) >>> 0 ? (((c[G >> 2] | 0) - (c[ia >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[y >> 2] | 0) { if ( (c[ia >> 2] | 0) >>> 0 >= (c[S >> 2] | 0) >>> 0 ) { dj = 451; break; } c[la >> 2] = (c[R >> 2] | 0) + (c[ia >> 2] | 0); c[ja >> 2] = Uj( c[w >> 2] | 0, c[la >> 2] | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; } else dj = 451; } while (0); if ((dj | 0) == 451) { dj = 0; c[ka >> 2] = (c[F >> 2] | 0) + (c[ia >> 2] | 0); c[ja >> 2] = Tj( c[w >> 2] | 0, c[ka >> 2] | 0, c[x >> 2] | 0 ) | 0; } if ( (c[ja >> 2] | 0) >>> 0 < (c[D >> 2] | 0) >>> 0 ) break; c[ba >> 2] = c[ja >> 2]; c[c[B >> 2] >> 2] = (c[G >> 2] | 0) - (c[ia >> 2] | 0) + 2; c[((c[B >> 2] | 0) + 4) >> 2] = c[ja >> 2]; c[$ >> 2] = 1; if ( !( ((c[ja >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0 ? 1 : (((c[w >> 2] | 0) + (c[ja >> 2] | 0)) | 0) == (c[x >> 2] | 0)) | 0 ) ) break; c[((c[u >> 2] | 0) + 24) >> 2] = (c[G >> 2] | 0) + 1; c[t >> 2] = 1; break f; } } while (0); c[ ((c[J >> 2] | 0) + (c[K >> 2] << 2)) >> 2 ] = c[G >> 2]; while (1) { Zh = c[aa >> 2] | 0; c[aa >> 2] = Zh + -1; if (!Zh) break; if ( (c[L >> 2] | 0) >>> 0 <= (c[W >> 2] | 0) >>> 0 ) break; c[ma >> 2] = (c[M >> 2] | 0) + (((c[L >> 2] & c[O >> 2]) << 1) << 2); c[na >> 2] = (c[P >> 2] | 0) >>> 0 < (c[Q >> 2] | 0) >>> 0 ? c[P >> 2] | 0 : c[Q >> 2] | 0; do { if (c[y >> 2] | 0) { if ( (((c[L >> 2] | 0) + (c[na >> 2] | 0)) | 0) >>> 0 >= (c[S >> 2] | 0) >>> 0 ) { dj = 461; break; } c[oa >> 2] = (c[R >> 2] | 0) + (c[L >> 2] | 0); Zh = Uj( ((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0, ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[na >> 2] = (c[na >> 2] | 0) + Zh; if ( (((c[L >> 2] | 0) + (c[na >> 2] | 0)) | 0) >>> 0 < (c[S >> 2] | 0) >>> 0 ) break; c[oa >> 2] = (c[F >> 2] | 0) + (c[L >> 2] | 0); } else dj = 461; } while (0); if ((dj | 0) == 461) { dj = 0; c[oa >> 2] = (c[F >> 2] | 0) + (c[L >> 2] | 0); Zh = Tj( ((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0, ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) | 0, c[x >> 2] | 0 ) | 0; c[na >> 2] = (c[na >> 2] | 0) + Zh; } if ( (c[na >> 2] | 0) >>> 0 > (c[ba >> 2] | 0) >>> 0 ) { if ( (c[na >> 2] | 0) >>> 0 > (((c[Z >> 2] | 0) - (c[L >> 2] | 0)) | 0) >>> 0 ) c[Z >> 2] = (c[L >> 2] | 0) + (c[na >> 2] | 0); c[ba >> 2] = c[na >> 2]; c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3)) >> 2 ] = (c[G >> 2] | 0) - (c[L >> 2] | 0) + 2; c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3) + 4) >> 2 ] = c[na >> 2]; c[$ >> 2] = (c[$ >> 2] | 0) + 1; if ((c[na >> 2] | 0) >>> 0 > 4096) break; if ( (((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0) == (c[x >> 2] | 0) ) break; } Zh = c[L >> 2] | 0; if ( (d[ ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[w >> 2] | 0) + (c[na >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[X >> 2] >> 2] = Zh; c[P >> 2] = c[na >> 2]; if ( (c[L >> 2] | 0) >>> 0 <= (c[V >> 2] | 0) >>> 0 ) { dj = 471; break; } c[X >> 2] = (c[ma >> 2] | 0) + 4; c[L >> 2] = c[((c[ma >> 2] | 0) + 4) >> 2]; } else { c[c[Y >> 2] >> 2] = Zh; c[Q >> 2] = c[na >> 2]; if ( (c[L >> 2] | 0) >>> 0 <= (c[V >> 2] | 0) >>> 0 ) { dj = 474; break; } c[Y >> 2] = c[ma >> 2]; c[L >> 2] = c[c[ma >> 2] >> 2]; } } if ((dj | 0) == 471) { dj = 0; c[X >> 2] = _; } else if ((dj | 0) == 474) { dj = 0; c[Y >> 2] = _; } c[c[Y >> 2] >> 2] = 0; c[c[X >> 2] >> 2] = 0; c[((c[u >> 2] | 0) + 24) >> 2] = (c[Z >> 2] | 0) - 8; c[t >> 2] = c[$ >> 2]; } } while (0); c[md >> 2] = c[t >> 2]; break d; break; } case 5: { Zh = c[od >> 2] | 0; Zi = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Qh = c[rd >> 2] | 0; _h = c[sd >> 2] | 0; _i = c[td >> 2] | 0; aj = c[ud >> 2] | 0; Uh = c[vd >> 2] | 0; c[qa >> 2] = c[nd >> 2]; c[ra >> 2] = Zh; c[sa >> 2] = Zi; c[ta >> 2] = Ph; c[ua >> 2] = Qh; c[va >> 2] = _h; c[wa >> 2] = _i; c[xa >> 2] = aj; c[ya >> 2] = Uh; c[za >> 2] = 5; if ( (c[((c[ra >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) xj = c[((c[ra >> 2] | 0) + 20) >> 2] | 0; else xj = 4095; c[Aa >> 2] = xj; c[Ba >> 2] = c[((c[qa >> 2] | 0) + 4) >> 2]; c[Ca >> 2] = (c[sa >> 2] | 0) - (c[Ba >> 2] | 0); c[Da >> 2] = c[((c[ra >> 2] | 0) + 8) >> 2]; c[Ea >> 2] = (c[za >> 2] | 0) == 3 ? 3 : 4; c[Fa >> 2] = c[((c[qa >> 2] | 0) + 36) >> 2]; c[Ga >> 2] = Sj( c[sa >> 2] | 0, c[Da >> 2] | 0, c[za >> 2] | 0 ) | 0; c[Ha >> 2] = c[ ((c[Fa >> 2] | 0) + (c[Ga >> 2] << 2)) >> 2 ]; c[Ia >> 2] = c[((c[qa >> 2] | 0) + 44) >> 2]; c[Ja >> 2] = (c[((c[ra >> 2] | 0) + 4) >> 2] | 0) - 1; c[Ka >> 2] = (1 << c[Ja >> 2]) - 1; c[La >> 2] = 0; c[Ma >> 2] = 0; c[Na >> 2] = c[((c[qa >> 2] | 0) + 8) >> 2]; c[Oa >> 2] = c[((c[qa >> 2] | 0) + 12) >> 2]; c[Pa >> 2] = (c[Na >> 2] | 0) + (c[Oa >> 2] | 0); c[Qa >> 2] = (c[Ba >> 2] | 0) + (c[Oa >> 2] | 0); if ( (c[Ka >> 2] | 0) >>> 0 >= (c[Ca >> 2] | 0) >>> 0 ) yj = 0; else yj = ((c[Ca >> 2] | 0) - (c[Ka >> 2] | 0)) | 0; c[Ra >> 2] = yj; c[Sa >> 2] = c[((c[qa >> 2] | 0) + 16) >> 2]; c[Ta >> 2] = (c[Ia >> 2] | 0) + (((c[Ca >> 2] & c[Ka >> 2]) << 1) << 2); c[Ua >> 2] = (c[Ia >> 2] | 0) + (((c[Ca >> 2] & c[Ka >> 2]) << 1) << 2) + 4; c[Va >> 2] = (c[Ca >> 2] | 0) + 8 + 1; c[Xa >> 2] = 0; c[Ya >> 2] = 1 << c[((c[ra >> 2] | 0) + 12) >> 2]; c[Za >> 2] = (c[ya >> 2] | 0) - 1; c[_a >> 2] = 3 + (c[wa >> 2] | 0); c[$a >> 2] = c[wa >> 2]; while (1) { if ( (c[$a >> 2] | 0) >>> 0 >= (c[_a >> 2] | 0) >>> 0 ) { dj = 393; break; } Uh = c[va >> 2] | 0; if ((c[$a >> 2] | 0) == 3) zj = ((c[Uh >> 2] | 0) - 1) | 0; else zj = c[(Uh + (c[$a >> 2] << 2)) >> 2] | 0; c[ab >> 2] = zj; c[bb >> 2] = (c[Ca >> 2] | 0) - (c[ab >> 2] | 0); c[cb >> 2] = 0; do { if ( (((c[ab >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ca >> 2] | 0) - (c[Oa >> 2] | 0)) | 0) >>> 0 ) { Uh = mm( c[sa >> 2] | 0, c[Ea >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( ((c[sa >> 2] | 0) + (0 - (c[ab >> 2] | 0))) | 0, c[Ea >> 2] | 0 ) | 0) ) break; Uh = Tj( ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0) + (0 - (c[ab >> 2] | 0))) | 0, c[ta >> 2] | 0 ) | 0; c[cb >> 2] = Uh + (c[Ea >> 2] | 0); } else { c[db >> 2] = (c[Na >> 2] | 0) + (c[bb >> 2] | 0); if (!(c[ua >> 2] | 0)) break; if ( !( ((((c[Oa >> 2] | 0) - 1 - (c[bb >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[ab >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ca >> 2] | 0) - (c[Sa >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Uh = mm( c[sa >> 2] | 0, c[Ea >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( c[db >> 2] | 0, c[Ea >> 2] | 0 ) | 0) ) break; Uh = Uj( ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, ((c[db >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; c[cb >> 2] = Uh + (c[Ea >> 2] | 0); } } while (0); if ( (c[cb >> 2] | 0) >>> 0 > (c[Za >> 2] | 0) >>> 0 ? ((c[Za >> 2] = c[cb >> 2]), (c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3)) >> 2 ] = (c[$a >> 2] | 0) - (c[wa >> 2] | 0)), (c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3) + 4) >> 2 ] = c[cb >> 2]), (c[Xa >> 2] = (c[Xa >> 2] | 0) + 1), ((c[cb >> 2] | 0) >>> 0 > (c[Aa >> 2] | 0) >>> 0 ? 1 : (((c[sa >> 2] | 0) + (c[cb >> 2] | 0)) | 0) == (c[ta >> 2] | 0)) | 0) : 0 ) { dj = 391; break; } c[$a >> 2] = (c[$a >> 2] | 0) + 1; } g: do { if ((dj | 0) == 391) { dj = 0; c[pa >> 2] = c[Xa >> 2]; } else if ((dj | 0) == 393) { dj = 0; do { if ((c[za >> 2] | 0) == 3) { if ( (c[Za >> 2] | 0) >>> 0 >= (c[za >> 2] | 0) >>> 0 ) break; c[eb >> 2] = nm( c[qa >> 2] | 0, c[sa >> 2] | 0 ) | 0; if ( !( ((c[eb >> 2] | 0) >>> 0 > (c[Sa >> 2] | 0) >>> 0 ? (((c[Ca >> 2] | 0) - (c[eb >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[ua >> 2] | 0) { if ( (c[eb >> 2] | 0) >>> 0 >= (c[Oa >> 2] | 0) >>> 0 ) { dj = 398; break; } c[hb >> 2] = (c[Na >> 2] | 0) + (c[eb >> 2] | 0); c[fb >> 2] = Uj( c[sa >> 2] | 0, c[hb >> 2] | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; } else dj = 398; } while (0); if ((dj | 0) == 398) { dj = 0; c[gb >> 2] = (c[Ba >> 2] | 0) + (c[eb >> 2] | 0); c[fb >> 2] = Tj( c[sa >> 2] | 0, c[gb >> 2] | 0, c[ta >> 2] | 0 ) | 0; } if ( (c[fb >> 2] | 0) >>> 0 < (c[za >> 2] | 0) >>> 0 ) break; c[Za >> 2] = c[fb >> 2]; c[c[xa >> 2] >> 2] = (c[Ca >> 2] | 0) - (c[eb >> 2] | 0) + 2; c[((c[xa >> 2] | 0) + 4) >> 2] = c[fb >> 2]; c[Xa >> 2] = 1; if ( !( ((c[fb >> 2] | 0) >>> 0 > (c[Aa >> 2] | 0) >>> 0 ? 1 : (((c[sa >> 2] | 0) + (c[fb >> 2] | 0)) | 0) == (c[ta >> 2] | 0)) | 0 ) ) break; c[((c[qa >> 2] | 0) + 24) >> 2] = (c[Ca >> 2] | 0) + 1; c[pa >> 2] = 1; break g; } } while (0); c[ ((c[Fa >> 2] | 0) + (c[Ga >> 2] << 2)) >> 2 ] = c[Ca >> 2]; while (1) { Uh = c[Ya >> 2] | 0; c[Ya >> 2] = Uh + -1; if (!Uh) break; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Sa >> 2] | 0) >>> 0 ) break; c[ib >> 2] = (c[Ia >> 2] | 0) + (((c[Ha >> 2] & c[Ka >> 2]) << 1) << 2); c[jb >> 2] = (c[La >> 2] | 0) >>> 0 < (c[Ma >> 2] | 0) >>> 0 ? c[La >> 2] | 0 : c[Ma >> 2] | 0; do { if (c[ua >> 2] | 0) { if ( (((c[Ha >> 2] | 0) + (c[jb >> 2] | 0)) | 0) >>> 0 >= (c[Oa >> 2] | 0) >>> 0 ) { dj = 408; break; } c[kb >> 2] = (c[Na >> 2] | 0) + (c[Ha >> 2] | 0); Uh = Uj( ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0, ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; c[jb >> 2] = (c[jb >> 2] | 0) + Uh; if ( (((c[Ha >> 2] | 0) + (c[jb >> 2] | 0)) | 0) >>> 0 < (c[Oa >> 2] | 0) >>> 0 ) break; c[kb >> 2] = (c[Ba >> 2] | 0) + (c[Ha >> 2] | 0); } else dj = 408; } while (0); if ((dj | 0) == 408) { dj = 0; c[kb >> 2] = (c[Ba >> 2] | 0) + (c[Ha >> 2] | 0); Uh = Tj( ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0, ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) | 0, c[ta >> 2] | 0 ) | 0; c[jb >> 2] = (c[jb >> 2] | 0) + Uh; } if ( (c[jb >> 2] | 0) >>> 0 > (c[Za >> 2] | 0) >>> 0 ) { if ( (c[jb >> 2] | 0) >>> 0 > (((c[Va >> 2] | 0) - (c[Ha >> 2] | 0)) | 0) >>> 0 ) c[Va >> 2] = (c[Ha >> 2] | 0) + (c[jb >> 2] | 0); c[Za >> 2] = c[jb >> 2]; c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3)) >> 2 ] = (c[Ca >> 2] | 0) - (c[Ha >> 2] | 0) + 2; c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3) + 4) >> 2 ] = c[jb >> 2]; c[Xa >> 2] = (c[Xa >> 2] | 0) + 1; if ((c[jb >> 2] | 0) >>> 0 > 4096) break; if ( (((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0) == (c[ta >> 2] | 0) ) break; } Uh = c[Ha >> 2] | 0; if ( (d[ ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Ta >> 2] >> 2] = Uh; c[La >> 2] = c[jb >> 2]; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Ra >> 2] | 0) >>> 0 ) { dj = 418; break; } c[Ta >> 2] = (c[ib >> 2] | 0) + 4; c[Ha >> 2] = c[((c[ib >> 2] | 0) + 4) >> 2]; } else { c[c[Ua >> 2] >> 2] = Uh; c[Ma >> 2] = c[jb >> 2]; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Ra >> 2] | 0) >>> 0 ) { dj = 421; break; } c[Ua >> 2] = c[ib >> 2]; c[Ha >> 2] = c[c[ib >> 2] >> 2]; } } if ((dj | 0) == 418) { dj = 0; c[Ta >> 2] = Wa; } else if ((dj | 0) == 421) { dj = 0; c[Ua >> 2] = Wa; } c[c[Ua >> 2] >> 2] = 0; c[c[Ta >> 2] >> 2] = 0; c[((c[qa >> 2] | 0) + 24) >> 2] = (c[Va >> 2] | 0) - 8; c[pa >> 2] = c[Xa >> 2]; } } while (0); c[md >> 2] = c[pa >> 2]; break d; break; } default: { Uh = c[od >> 2] | 0; aj = c[pd >> 2] | 0; _i = c[qd >> 2] | 0; _h = c[rd >> 2] | 0; Qh = c[sd >> 2] | 0; Ph = c[td >> 2] | 0; Zi = c[ud >> 2] | 0; Zh = c[vd >> 2] | 0; c[mb >> 2] = c[nd >> 2]; c[nb >> 2] = Uh; c[ob >> 2] = aj; c[pb >> 2] = _i; c[qb >> 2] = _h; c[rb >> 2] = Qh; c[sb >> 2] = Ph; c[tb >> 2] = Zi; c[ub >> 2] = Zh; c[vb >> 2] = 4; if ( (c[((c[nb >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) Aj = c[((c[nb >> 2] | 0) + 20) >> 2] | 0; else Aj = 4095; c[wb >> 2] = Aj; c[xb >> 2] = c[((c[mb >> 2] | 0) + 4) >> 2]; c[yb >> 2] = (c[ob >> 2] | 0) - (c[xb >> 2] | 0); c[zb >> 2] = c[((c[nb >> 2] | 0) + 8) >> 2]; c[Ab >> 2] = (c[vb >> 2] | 0) == 3 ? 3 : 4; c[Bb >> 2] = c[((c[mb >> 2] | 0) + 36) >> 2]; c[Cb >> 2] = Sj( c[ob >> 2] | 0, c[zb >> 2] | 0, c[vb >> 2] | 0 ) | 0; c[Db >> 2] = c[ ((c[Bb >> 2] | 0) + (c[Cb >> 2] << 2)) >> 2 ]; c[Eb >> 2] = c[((c[mb >> 2] | 0) + 44) >> 2]; c[Fb >> 2] = (c[((c[nb >> 2] | 0) + 4) >> 2] | 0) - 1; c[Gb >> 2] = (1 << c[Fb >> 2]) - 1; c[Hb >> 2] = 0; c[Ib >> 2] = 0; c[Jb >> 2] = c[((c[mb >> 2] | 0) + 8) >> 2]; c[Kb >> 2] = c[((c[mb >> 2] | 0) + 12) >> 2]; c[Lb >> 2] = (c[Jb >> 2] | 0) + (c[Kb >> 2] | 0); c[Mb >> 2] = (c[xb >> 2] | 0) + (c[Kb >> 2] | 0); if ( (c[Gb >> 2] | 0) >>> 0 >= (c[yb >> 2] | 0) >>> 0 ) Bj = 0; else Bj = ((c[yb >> 2] | 0) - (c[Gb >> 2] | 0)) | 0; c[Nb >> 2] = Bj; c[Ob >> 2] = c[((c[mb >> 2] | 0) + 16) >> 2]; c[Pb >> 2] = (c[Eb >> 2] | 0) + (((c[yb >> 2] & c[Gb >> 2]) << 1) << 2); c[Qb >> 2] = (c[Eb >> 2] | 0) + (((c[yb >> 2] & c[Gb >> 2]) << 1) << 2) + 4; c[Rb >> 2] = (c[yb >> 2] | 0) + 8 + 1; c[Tb >> 2] = 0; c[Ub >> 2] = 1 << c[((c[nb >> 2] | 0) + 12) >> 2]; c[Vb >> 2] = (c[ub >> 2] | 0) - 1; c[Wb >> 2] = 3 + (c[sb >> 2] | 0); c[Xb >> 2] = c[sb >> 2]; while (1) { if ( (c[Xb >> 2] | 0) >>> 0 >= (c[Wb >> 2] | 0) >>> 0 ) { dj = 340; break; } Zh = c[rb >> 2] | 0; if ((c[Xb >> 2] | 0) == 3) Cj = ((c[Zh >> 2] | 0) - 1) | 0; else Cj = c[(Zh + (c[Xb >> 2] << 2)) >> 2] | 0; c[Yb >> 2] = Cj; c[Zb >> 2] = (c[yb >> 2] | 0) - (c[Yb >> 2] | 0); c[_b >> 2] = 0; do { if ( (((c[Yb >> 2] | 0) - 1) | 0) >>> 0 < (((c[yb >> 2] | 0) - (c[Kb >> 2] | 0)) | 0) >>> 0 ) { Zh = mm( c[ob >> 2] | 0, c[Ab >> 2] | 0 ) | 0; if ( (Zh | 0) != (mm( ((c[ob >> 2] | 0) + (0 - (c[Yb >> 2] | 0))) | 0, c[Ab >> 2] | 0 ) | 0) ) break; Zh = Tj( ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0) + (0 - (c[Yb >> 2] | 0))) | 0, c[pb >> 2] | 0 ) | 0; c[_b >> 2] = Zh + (c[Ab >> 2] | 0); } else { c[$b >> 2] = (c[Jb >> 2] | 0) + (c[Zb >> 2] | 0); if (!(c[qb >> 2] | 0)) break; if ( !( ((((c[Kb >> 2] | 0) - 1 - (c[Zb >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[Yb >> 2] | 0) - 1) | 0) >>> 0 < (((c[yb >> 2] | 0) - (c[Ob >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Zh = mm( c[ob >> 2] | 0, c[Ab >> 2] | 0 ) | 0; if ( (Zh | 0) != (mm( c[$b >> 2] | 0, c[Ab >> 2] | 0 ) | 0) ) break; Zh = Uj( ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, ((c[$b >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; c[_b >> 2] = Zh + (c[Ab >> 2] | 0); } } while (0); if ( (c[_b >> 2] | 0) >>> 0 > (c[Vb >> 2] | 0) >>> 0 ? ((c[Vb >> 2] = c[_b >> 2]), (c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3)) >> 2 ] = (c[Xb >> 2] | 0) - (c[sb >> 2] | 0)), (c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3) + 4) >> 2 ] = c[_b >> 2]), (c[Tb >> 2] = (c[Tb >> 2] | 0) + 1), ((c[_b >> 2] | 0) >>> 0 > (c[wb >> 2] | 0) >>> 0 ? 1 : (((c[ob >> 2] | 0) + (c[_b >> 2] | 0)) | 0) == (c[pb >> 2] | 0)) | 0) : 0 ) { dj = 338; break; } c[Xb >> 2] = (c[Xb >> 2] | 0) + 1; } h: do { if ((dj | 0) == 338) { dj = 0; c[lb >> 2] = c[Tb >> 2]; } else if ((dj | 0) == 340) { dj = 0; do { if ((c[vb >> 2] | 0) == 3) { if ( (c[Vb >> 2] | 0) >>> 0 >= (c[vb >> 2] | 0) >>> 0 ) break; c[ac >> 2] = nm( c[mb >> 2] | 0, c[ob >> 2] | 0 ) | 0; if ( !( ((c[ac >> 2] | 0) >>> 0 > (c[Ob >> 2] | 0) >>> 0 ? (((c[yb >> 2] | 0) - (c[ac >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[qb >> 2] | 0) { if ( (c[ac >> 2] | 0) >>> 0 >= (c[Kb >> 2] | 0) >>> 0 ) { dj = 345; break; } c[dc >> 2] = (c[Jb >> 2] | 0) + (c[ac >> 2] | 0); c[bc >> 2] = Uj( c[ob >> 2] | 0, c[dc >> 2] | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; } else dj = 345; } while (0); if ((dj | 0) == 345) { dj = 0; c[cc >> 2] = (c[xb >> 2] | 0) + (c[ac >> 2] | 0); c[bc >> 2] = Tj( c[ob >> 2] | 0, c[cc >> 2] | 0, c[pb >> 2] | 0 ) | 0; } if ( (c[bc >> 2] | 0) >>> 0 < (c[vb >> 2] | 0) >>> 0 ) break; c[Vb >> 2] = c[bc >> 2]; c[c[tb >> 2] >> 2] = (c[yb >> 2] | 0) - (c[ac >> 2] | 0) + 2; c[((c[tb >> 2] | 0) + 4) >> 2] = c[bc >> 2]; c[Tb >> 2] = 1; if ( !( ((c[bc >> 2] | 0) >>> 0 > (c[wb >> 2] | 0) >>> 0 ? 1 : (((c[ob >> 2] | 0) + (c[bc >> 2] | 0)) | 0) == (c[pb >> 2] | 0)) | 0 ) ) break; c[((c[mb >> 2] | 0) + 24) >> 2] = (c[yb >> 2] | 0) + 1; c[lb >> 2] = 1; break h; } } while (0); c[ ((c[Bb >> 2] | 0) + (c[Cb >> 2] << 2)) >> 2 ] = c[yb >> 2]; while (1) { Zh = c[Ub >> 2] | 0; c[Ub >> 2] = Zh + -1; if (!Zh) break; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Ob >> 2] | 0) >>> 0 ) break; c[ec >> 2] = (c[Eb >> 2] | 0) + (((c[Db >> 2] & c[Gb >> 2]) << 1) << 2); c[fc >> 2] = (c[Hb >> 2] | 0) >>> 0 < (c[Ib >> 2] | 0) >>> 0 ? c[Hb >> 2] | 0 : c[Ib >> 2] | 0; do { if (c[qb >> 2] | 0) { if ( (((c[Db >> 2] | 0) + (c[fc >> 2] | 0)) | 0) >>> 0 >= (c[Kb >> 2] | 0) >>> 0 ) { dj = 355; break; } c[gc >> 2] = (c[Jb >> 2] | 0) + (c[Db >> 2] | 0); Zh = Uj( ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0, ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; c[fc >> 2] = (c[fc >> 2] | 0) + Zh; if ( (((c[Db >> 2] | 0) + (c[fc >> 2] | 0)) | 0) >>> 0 < (c[Kb >> 2] | 0) >>> 0 ) break; c[gc >> 2] = (c[xb >> 2] | 0) + (c[Db >> 2] | 0); } else dj = 355; } while (0); if ((dj | 0) == 355) { dj = 0; c[gc >> 2] = (c[xb >> 2] | 0) + (c[Db >> 2] | 0); Zh = Tj( ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0, ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) | 0, c[pb >> 2] | 0 ) | 0; c[fc >> 2] = (c[fc >> 2] | 0) + Zh; } if ( (c[fc >> 2] | 0) >>> 0 > (c[Vb >> 2] | 0) >>> 0 ) { if ( (c[fc >> 2] | 0) >>> 0 > (((c[Rb >> 2] | 0) - (c[Db >> 2] | 0)) | 0) >>> 0 ) c[Rb >> 2] = (c[Db >> 2] | 0) + (c[fc >> 2] | 0); c[Vb >> 2] = c[fc >> 2]; c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3)) >> 2 ] = (c[yb >> 2] | 0) - (c[Db >> 2] | 0) + 2; c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3) + 4) >> 2 ] = c[fc >> 2]; c[Tb >> 2] = (c[Tb >> 2] | 0) + 1; if ((c[fc >> 2] | 0) >>> 0 > 4096) break; if ( (((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0) == (c[pb >> 2] | 0) ) break; } Zh = c[Db >> 2] | 0; if ( (d[ ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Pb >> 2] >> 2] = Zh; c[Hb >> 2] = c[fc >> 2]; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Nb >> 2] | 0) >>> 0 ) { dj = 365; break; } c[Pb >> 2] = (c[ec >> 2] | 0) + 4; c[Db >> 2] = c[((c[ec >> 2] | 0) + 4) >> 2]; } else { c[c[Qb >> 2] >> 2] = Zh; c[Ib >> 2] = c[fc >> 2]; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Nb >> 2] | 0) >>> 0 ) { dj = 368; break; } c[Qb >> 2] = c[ec >> 2]; c[Db >> 2] = c[c[ec >> 2] >> 2]; } } if ((dj | 0) == 365) { dj = 0; c[Pb >> 2] = Sb; } else if ((dj | 0) == 368) { dj = 0; c[Qb >> 2] = Sb; } c[c[Qb >> 2] >> 2] = 0; c[c[Pb >> 2] >> 2] = 0; c[((c[mb >> 2] | 0) + 24) >> 2] = (c[Rb >> 2] | 0) - 8; c[lb >> 2] = c[Tb >> 2]; } } while (0); c[md >> 2] = c[lb >> 2]; break d; } } } } while (0); c[Bi >> 2] = c[md >> 2]; if (c[Bi >> 2] | 0) { c[Di >> 2] = c[ ((c[ci >> 2] | 0) + (((c[Bi >> 2] | 0) - 1) << 3) + 4) >> 2 ]; if ( ((c[Di >> 2] | 0) >>> 0 > (c[$h >> 2] | 0) >>> 0 ? 1 : (((c[ei >> 2] | 0) + (c[Di >> 2] | 0)) | 0) >>> 0 >= 4096) | 0 ) { dj = 481; break b; } c[Ci >> 2] = 0; while (1) { if ( (c[Ci >> 2] | 0) >>> 0 >= (c[Bi >> 2] | 0) >>> 0 ) break c; c[Ei >> 2] = c[ ((c[ci >> 2] | 0) + (c[Ci >> 2] << 3)) >> 2 ]; pm( Fi, ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0, c[Ei >> 2] | 0, c[xi >> 2] | 0 ); c[Gi >> 2] = c[ ((c[ci >> 2] | 0) + (c[Ci >> 2] << 3) + 4) >> 2 ]; if ((c[Ci >> 2] | 0) >>> 0 > 0) Dj = ((c[ ((c[ci >> 2] | 0) + (((c[Ci >> 2] | 0) - 1) << 3) + 4) >> 2 ] | 0) + 1) | 0; else Dj = c[ai >> 2] | 0; c[Hi >> 2] = Dj; c[Ii >> 2] = c[Gi >> 2]; i: while (1) { if ( (c[Ii >> 2] | 0) >>> 0 < (c[Hi >> 2] | 0) >>> 0 ) break; c[Ji >> 2] = (c[ei >> 2] | 0) + (c[Ii >> 2] | 0); Zh = c[Ai >> 2] | 0; Zi = c[Ii >> 2] | 0; Ph = c[Th >> 2] | 0; Qh = c[Rh >> 2] | 0; c[k >> 2] = c[Ei >> 2]; c[m >> 2] = Zi; c[n >> 2] = Ph; c[o >> 2] = Qh; c[q >> 2] = qm(((c[k >> 2] | 0) + 1) | 0) | 0; c[r >> 2] = (c[m >> 2] | 0) - 3; if (c[((c[n >> 2] | 0) + 56) >> 2] | 0) { Qh = ((qm(((c[r >> 2] | 0) + 1) | 0) | 0) + 16) | 0; c[j >> 2] = Qh + (c[q >> 2] | 0); } else { Qh = ((c[q >> 2] | 0) + (c[((c[n >> 2] | 0) + 52) >> 2] | 0)) | 0; c[p >> 2] = Qh - (qm( ((c[ ((c[((c[n >> 2] | 0) + 12) >> 2] | 0) + (c[q >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); if ( ((c[o >> 2] | 0) < 2) & ((c[q >> 2] | 0) >>> 0 >= 20) ) c[p >> 2] = (c[p >> 2] | 0) + (((c[q >> 2] | 0) - 19) << 1); c[s >> 2] = rm(c[r >> 2] | 0) | 0; Qh = ((c[(5840 + (c[s >> 2] << 2)) >> 2] | 0) + (c[((c[n >> 2] | 0) + 48) >> 2] | 0)) | 0; Ph = (Qh - (qm( ((c[ ((c[((c[n >> 2] | 0) + 8) >> 2] | 0) + (c[s >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0)) | 0; c[p >> 2] = (c[p >> 2] | 0) + Ph; c[j >> 2] = c[p >> 2]; } c[Ki >> 2] = Zh + (c[j >> 2] | 0); do { if ( (c[Ji >> 2] | 0) >>> 0 <= (c[fi >> 2] | 0) >>> 0 ) { if ( (c[Ki >> 2] | 0) < (c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0)) >> 2 ] | 0) ) { dj = 496; break; } if (!(c[Rh >> 2] | 0)) break i; } else dj = 496; } while (0); if ((dj | 0) == 496) { dj = 0; while (1) { if ( (c[fi >> 2] | 0) >>> 0 >= (c[Ji >> 2] | 0) >>> 0 ) break; c[ ((c[bi >> 2] | 0) + (((((c[fi >> 2] | 0) + 1) | 0) * 28) | 0)) >> 2 ] = 1073741824; c[fi >> 2] = (c[fi >> 2] | 0) + 1; } c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[Ii >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[Ei >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[yi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0)) >> 2 ] = c[Ki >> 2]; Zh = ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 16) | 0; c[Zh >> 2] = c[Fi >> 2]; c[(Zh + 4) >> 2] = c[(Fi + 4) >> 2]; c[(Zh + 8) >> 2] = c[(Fi + 8) >> 2]; } c[Ii >> 2] = (c[Ii >> 2] | 0) + -1; } c[Ci >> 2] = (c[Ci >> 2] | 0) + 1; } } } } while (0); c[ei >> 2] = (c[ei >> 2] | 0) + 1; } if ((dj | 0) == 481) { dj = 0; c[gi >> 2] = c[Di >> 2]; c[hi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[Bi >> 2] | 0) - 1) << 3)) >> 2 ]; c[fi >> 2] = (c[ei >> 2] | 0) + 1; break; } else if ((dj | 0) == 504) { dj = 0; c[gi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[fi >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[hi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[fi >> 2] | 0) * 28) | 0) + 4) >> 2 ]; c[ei >> 2] = (c[fi >> 2] | 0) - (c[gi >> 2] | 0); break; } } else { c[gi >> 2] = c[mi >> 2]; c[hi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[ki >> 2] | 0) - 1) << 3)) >> 2 ]; c[ei >> 2] = 0; c[fi >> 2] = 1; } } while (0); c[Li >> 2] = c[gi >> 2]; c[Mi >> 2] = c[hi >> 2]; c[Ni >> 2] = c[ei >> 2]; while (1) { c[Oi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[Pi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 4) >> 2 ]; c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[Li >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[Mi >> 2]; c[Li >> 2] = c[Oi >> 2]; c[Mi >> 2] = c[Pi >> 2]; if ((c[Oi >> 2] | 0) >>> 0 > (c[Ni >> 2] | 0) >>> 0) break; c[Ni >> 2] = (c[Ni >> 2] | 0) - (c[Oi >> 2] | 0); } c[Qi >> 2] = 0; while (1) { if ((c[Qi >> 2] | 0) >>> 0 >= (c[fi >> 2] | 0) >>> 0) break; c[Ri >> 2] = (c[Vh >> 2] | 0) - (c[Wh >> 2] | 0); c[Si >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Qi >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[Ti >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Qi >> 2] | 0) * 28) | 0) + 4) >> 2 ]; if ((c[Si >> 2] | 0) == 1) { c[Vh >> 2] = (c[Vh >> 2] | 0) + 1; c[Qi >> 2] = (c[Qi >> 2] | 0) + 1; continue; } c[Qi >> 2] = (c[Qi >> 2] | 0) + (c[Si >> 2] | 0); c[Vh >> 2] = (c[Vh >> 2] | 0) + (c[Si >> 2] | 0); if ((c[Ti >> 2] | 0) >>> 0 < 3) { c[Ui >> 2] = (c[Ti >> 2] | 0) + (((c[Ri >> 2] | 0) == 0) & 1); if (c[Ui >> 2] | 0) { Zh = c[Nh >> 2] | 0; if ((c[Ui >> 2] | 0) == 3) Ej = ((c[Zh >> 2] | 0) - 1) | 0; else Ej = c[(Zh + (c[Ui >> 2] << 2)) >> 2] | 0; c[Vi >> 2] = Ej; if ((c[Ui >> 2] | 0) >>> 0 >= 2) c[((c[Nh >> 2] | 0) + 8) >> 2] = c[((c[Nh >> 2] | 0) + 4) >> 2]; c[((c[Nh >> 2] | 0) + 4) >> 2] = c[c[Nh >> 2] >> 2]; c[c[Nh >> 2] >> 2] = c[Vi >> 2]; } } else { c[((c[Nh >> 2] | 0) + 8) >> 2] = c[((c[Nh >> 2] | 0) + 4) >> 2]; c[((c[Nh >> 2] | 0) + 4) >> 2] = c[c[Nh >> 2] >> 2]; c[c[Nh >> 2] >> 2] = (c[Ti >> 2] | 0) - 2; } vm( c[Th >> 2] | 0, c[Ri >> 2] | 0, c[Wh >> 2] | 0, c[Ti >> 2] | 0, c[Si >> 2] | 0 ); wm( c[Mh >> 2] | 0, c[Ri >> 2] | 0, c[Wh >> 2] | 0, c[Ti >> 2] | 0, ((c[Si >> 2] | 0) - 3) | 0 ); c[Wh >> 2] = c[Vh >> 2]; } xm(c[Th >> 2] | 0); } l = i; return ((c[Xh >> 2] | 0) - (c[Wh >> 2] | 0)) | 0; } function km(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0, hc = 0, ic = 0, jc = 0, kc = 0, lc = 0, mc = 0, nc = 0, oc = 0, pc = 0, qc = 0, rc = 0, sc = 0, tc = 0, uc = 0, vc = 0, wc = 0, xc = 0, yc = 0, zc = 0, Ac = 0, Bc = 0, Cc = 0, Dc = 0, Ec = 0, Fc = 0, Gc = 0, Hc = 0, Ic = 0, Jc = 0, Kc = 0, Lc = 0, Mc = 0, Nc = 0, Oc = 0, Pc = 0, Qc = 0, Rc = 0, Sc = 0, Tc = 0, Uc = 0, Vc = 0, Wc = 0, Xc = 0, Yc = 0, Zc = 0, _c = 0, $c = 0, ad = 0, bd = 0, cd = 0, dd = 0, ed = 0, fd = 0, gd = 0, hd = 0, id = 0, jd = 0, kd = 0, ld = 0, md = 0, nd = 0, od = 0, pd = 0, qd = 0, rd = 0, sd = 0, td = 0, ud = 0, vd = 0, wd = 0, xd = 0, yd = 0, zd = 0, Ad = 0, Bd = 0, Cd = 0, Dd = 0, Ed = 0, Fd = 0, Gd = 0, Hd = 0, Id = 0, Jd = 0, Kd = 0, Ld = 0, Md = 0, Nd = 0, Od = 0, Pd = 0, Qd = 0, Rd = 0, Sd = 0, Td = 0, Ud = 0, Vd = 0, Wd = 0, Xd = 0, Yd = 0, Zd = 0, _d = 0, $d = 0, ae = 0, be = 0, ce = 0, de = 0, ee = 0, fe = 0, ge = 0, he = 0, ie = 0, je = 0, ke = 0, le = 0, me = 0, ne = 0, oe = 0, pe = 0, qe = 0, re = 0, se = 0, te = 0, ue = 0, ve = 0, we = 0, xe = 0, ye = 0, ze = 0, Ae = 0, Be = 0, Ce = 0, De = 0, Ee = 0, Fe = 0, Ge = 0, He = 0, Ie = 0, Je = 0, Ke = 0, Le = 0, Me = 0, Ne = 0, Oe = 0, Pe = 0, Qe = 0, Re = 0, Se = 0, Te = 0, Ue = 0, Ve = 0, We = 0, Xe = 0, Ye = 0, Ze = 0, _e = 0, $e = 0, af = 0, bf = 0, cf = 0, df = 0, ef = 0, ff = 0, gf = 0, hf = 0, jf = 0, kf = 0, lf = 0, mf = 0, nf = 0, of = 0, pf = 0, qf = 0, rf = 0, sf = 0, tf = 0, uf = 0, vf = 0, wf = 0, xf = 0, yf = 0, zf = 0, Af = 0, Bf = 0, Cf = 0, Df = 0, Ef = 0, Ff = 0, Gf = 0, Hf = 0, If = 0, Jf = 0, Kf = 0, Lf = 0, Mf = 0, Nf = 0, Of = 0, Pf = 0, Qf = 0, Rf = 0, Sf = 0, Tf = 0, Uf = 0, Vf = 0, Wf = 0, Xf = 0, Yf = 0, Zf = 0, _f = 0, $f = 0, ag = 0, bg = 0, cg = 0, dg = 0, eg = 0, fg = 0, gg = 0, hg = 0, ig = 0, jg = 0, kg = 0, lg = 0, mg = 0, ng = 0, og = 0, pg = 0, qg = 0, rg = 0, sg = 0, tg = 0, ug = 0, vg = 0, wg = 0, xg = 0, yg = 0, zg = 0, Ag = 0, Bg = 0, Cg = 0, Dg = 0, Eg = 0, Fg = 0, Gg = 0, Hg = 0, Ig = 0, Jg = 0, Kg = 0, Lg = 0, Mg = 0, Ng = 0, Og = 0, Pg = 0, Qg = 0, Rg = 0, Sg = 0, Tg = 0, Ug = 0, Vg = 0, Wg = 0, Xg = 0, Yg = 0, Zg = 0, _g = 0, $g = 0, ah = 0, bh = 0, ch = 0, dh = 0, eh = 0, fh = 0, gh = 0, hh = 0, ih = 0, jh = 0, kh = 0, lh = 0, mh = 0, nh = 0, oh = 0, ph = 0, qh = 0, rh = 0, sh = 0, th = 0, uh = 0, vh = 0, wh = 0, xh = 0, yh = 0, zh = 0, Ah = 0, Bh = 0, Ch = 0, Dh = 0, Eh = 0, Fh = 0, Gh = 0, Hh = 0, Ih = 0, Jh = 0, Kh = 0, Lh = 0, Mh = 0, Nh = 0, Oh = 0, Ph = 0, Qh = 0, Rh = 0, Sh = 0, Th = 0, Uh = 0, Vh = 0, Wh = 0, Xh = 0, Yh = 0, Zh = 0, _h = 0, $h = 0, ai = 0, bi = 0, ci = 0, di = 0, ei = 0, fi = 0, gi = 0, hi = 0, ii = 0, ji = 0, ki = 0, li = 0, mi = 0, ni = 0, oi = 0, pi = 0, qi = 0, ri = 0, si = 0, ti = 0, ui = 0, vi = 0, wi = 0, xi = 0, yi = 0, zi = 0, Ai = 0, Bi = 0, Ci = 0, Di = 0, Ei = 0, Fi = 0, Gi = 0, Hi = 0, Ii = 0, Ji = 0, Ki = 0, Li = 0, Mi = 0, Ni = 0, Oi = 0, Pi = 0, Qi = 0, Ri = 0, Si = 0, Ti = 0, Ui = 0, Vi = 0, Wi = 0, Xi = 0, Yi = 0, Zi = 0, _i = 0, $i = 0, aj = 0, bj = 0, cj = 0, dj = 0, ej = 0, fj = 0, gj = 0, hj = 0, ij = 0, jj = 0, kj = 0, lj = 0, mj = 0, nj = 0, oj = 0, pj = 0, qj = 0, rj = 0, sj = 0, tj = 0, uj = 0, vj = 0, wj = 0, xj = 0, yj = 0, zj = 0, Aj = 0, Bj = 0, Cj = 0, Dj = 0, Ej = 0; i = l; l = (l + 2144) | 0; j = (i + 2136) | 0; k = (i + 2132) | 0; m = (i + 2128) | 0; n = (i + 2124) | 0; o = (i + 2120) | 0; p = (i + 2116) | 0; q = (i + 2112) | 0; r = (i + 2108) | 0; s = (i + 2104) | 0; t = (i + 2100) | 0; u = (i + 2096) | 0; v = (i + 2092) | 0; w = (i + 2088) | 0; x = (i + 2084) | 0; y = (i + 2080) | 0; z = (i + 2076) | 0; A = (i + 2072) | 0; B = (i + 2068) | 0; C = (i + 2064) | 0; D = (i + 2060) | 0; E = (i + 2056) | 0; F = (i + 2052) | 0; G = (i + 2048) | 0; H = (i + 2044) | 0; I = (i + 2040) | 0; J = (i + 2036) | 0; K = (i + 2032) | 0; L = (i + 2028) | 0; M = (i + 2024) | 0; N = (i + 2020) | 0; O = (i + 2016) | 0; P = (i + 2012) | 0; Q = (i + 2008) | 0; R = (i + 2004) | 0; S = (i + 2e3) | 0; T = (i + 1996) | 0; U = (i + 1992) | 0; V = (i + 1988) | 0; W = (i + 1984) | 0; X = (i + 1980) | 0; Y = (i + 1976) | 0; Z = (i + 1972) | 0; _ = (i + 1968) | 0; $ = (i + 1964) | 0; aa = (i + 1960) | 0; ba = (i + 1956) | 0; ca = (i + 1952) | 0; da = (i + 1948) | 0; ea = (i + 1944) | 0; fa = (i + 1940) | 0; ga = (i + 1936) | 0; ha = (i + 1932) | 0; ia = (i + 1928) | 0; ja = (i + 1924) | 0; ka = (i + 1920) | 0; la = (i + 1916) | 0; ma = (i + 1912) | 0; na = (i + 1908) | 0; oa = (i + 1904) | 0; pa = (i + 1900) | 0; qa = (i + 1896) | 0; ra = (i + 1892) | 0; sa = (i + 1888) | 0; ta = (i + 1884) | 0; ua = (i + 1880) | 0; va = (i + 1876) | 0; wa = (i + 1872) | 0; xa = (i + 1868) | 0; ya = (i + 1864) | 0; za = (i + 1860) | 0; Aa = (i + 1856) | 0; Ba = (i + 1852) | 0; Ca = (i + 1848) | 0; Da = (i + 1844) | 0; Ea = (i + 1840) | 0; Fa = (i + 1836) | 0; Ga = (i + 1832) | 0; Ha = (i + 1828) | 0; Ia = (i + 1824) | 0; Ja = (i + 1820) | 0; Ka = (i + 1816) | 0; La = (i + 1812) | 0; Ma = (i + 1808) | 0; Na = (i + 1804) | 0; Oa = (i + 1800) | 0; Pa = (i + 1796) | 0; Qa = (i + 1792) | 0; Ra = (i + 1788) | 0; Sa = (i + 1784) | 0; Ta = (i + 1780) | 0; Ua = (i + 1776) | 0; Va = (i + 1772) | 0; Wa = (i + 1768) | 0; Xa = (i + 1764) | 0; Ya = (i + 1760) | 0; Za = (i + 1756) | 0; _a = (i + 1752) | 0; $a = (i + 1748) | 0; ab = (i + 1744) | 0; bb = (i + 1740) | 0; cb = (i + 1736) | 0; db = (i + 1732) | 0; eb = (i + 1728) | 0; fb = (i + 1724) | 0; gb = (i + 1720) | 0; hb = (i + 1716) | 0; ib = (i + 1712) | 0; jb = (i + 1708) | 0; kb = (i + 1704) | 0; lb = (i + 1700) | 0; mb = (i + 1696) | 0; nb = (i + 1692) | 0; ob = (i + 1688) | 0; pb = (i + 1684) | 0; qb = (i + 1680) | 0; rb = (i + 1676) | 0; sb = (i + 1672) | 0; tb = (i + 1668) | 0; ub = (i + 1664) | 0; vb = (i + 1660) | 0; wb = (i + 1656) | 0; xb = (i + 1652) | 0; yb = (i + 1648) | 0; zb = (i + 1644) | 0; Ab = (i + 1640) | 0; Bb = (i + 1636) | 0; Cb = (i + 1632) | 0; Db = (i + 1628) | 0; Eb = (i + 1624) | 0; Fb = (i + 1620) | 0; Gb = (i + 1616) | 0; Hb = (i + 1612) | 0; Ib = (i + 1608) | 0; Jb = (i + 1604) | 0; Kb = (i + 1600) | 0; Lb = (i + 1596) | 0; Mb = (i + 1592) | 0; Nb = (i + 1588) | 0; Ob = (i + 1584) | 0; Pb = (i + 1580) | 0; Qb = (i + 1576) | 0; Rb = (i + 1572) | 0; Sb = (i + 1568) | 0; Tb = (i + 1564) | 0; Ub = (i + 1560) | 0; Vb = (i + 1556) | 0; Wb = (i + 1552) | 0; Xb = (i + 1548) | 0; Yb = (i + 1544) | 0; Zb = (i + 1540) | 0; _b = (i + 1536) | 0; $b = (i + 1532) | 0; ac = (i + 1528) | 0; bc = (i + 1524) | 0; cc = (i + 1520) | 0; dc = (i + 1516) | 0; ec = (i + 1512) | 0; fc = (i + 1508) | 0; gc = (i + 1504) | 0; hc = (i + 1500) | 0; ic = (i + 1496) | 0; jc = (i + 1492) | 0; kc = (i + 1488) | 0; lc = (i + 1484) | 0; mc = (i + 1480) | 0; nc = (i + 1476) | 0; oc = (i + 1472) | 0; pc = (i + 1468) | 0; qc = (i + 1464) | 0; rc = (i + 1460) | 0; sc = (i + 1456) | 0; tc = (i + 1452) | 0; uc = (i + 1448) | 0; vc = (i + 1444) | 0; wc = (i + 1440) | 0; xc = (i + 1436) | 0; yc = (i + 1432) | 0; zc = (i + 1428) | 0; Ac = (i + 1424) | 0; Bc = (i + 1420) | 0; Cc = (i + 1416) | 0; Dc = (i + 1412) | 0; Ec = (i + 1408) | 0; Fc = (i + 1404) | 0; Gc = (i + 1400) | 0; Hc = (i + 1396) | 0; Ic = (i + 1392) | 0; Jc = (i + 1388) | 0; Kc = (i + 1384) | 0; Lc = (i + 1380) | 0; Mc = (i + 1376) | 0; Nc = (i + 1372) | 0; Oc = (i + 1368) | 0; Pc = (i + 1364) | 0; Qc = (i + 1360) | 0; Rc = (i + 1356) | 0; Sc = (i + 1352) | 0; Tc = (i + 1348) | 0; Uc = (i + 1344) | 0; Vc = (i + 1340) | 0; Wc = (i + 1336) | 0; Xc = (i + 1332) | 0; Yc = (i + 1328) | 0; Zc = (i + 1324) | 0; _c = (i + 1320) | 0; $c = (i + 1316) | 0; ad = (i + 1312) | 0; bd = (i + 1308) | 0; cd = (i + 1304) | 0; dd = (i + 1300) | 0; ed = (i + 1296) | 0; fd = (i + 1292) | 0; gd = (i + 1288) | 0; hd = (i + 1284) | 0; id = (i + 1280) | 0; jd = (i + 1276) | 0; kd = (i + 1272) | 0; ld = (i + 1268) | 0; md = (i + 1264) | 0; nd = (i + 1260) | 0; od = (i + 1256) | 0; pd = (i + 1252) | 0; qd = (i + 1248) | 0; rd = (i + 1244) | 0; sd = (i + 1240) | 0; td = (i + 1236) | 0; ud = (i + 1232) | 0; vd = (i + 1228) | 0; wd = (i + 1224) | 0; xd = (i + 1220) | 0; yd = (i + 1216) | 0; zd = (i + 1212) | 0; Ad = (i + 1208) | 0; Bd = (i + 1204) | 0; Cd = (i + 1200) | 0; Dd = (i + 1196) | 0; Ed = (i + 1192) | 0; Fd = (i + 1188) | 0; Gd = (i + 1184) | 0; Hd = (i + 1180) | 0; Id = (i + 1176) | 0; Jd = (i + 1172) | 0; Kd = (i + 1168) | 0; Ld = (i + 1164) | 0; Md = (i + 1160) | 0; Nd = (i + 1156) | 0; Od = (i + 1152) | 0; Pd = (i + 1148) | 0; Qd = (i + 1144) | 0; Rd = (i + 1140) | 0; Sd = (i + 1136) | 0; Td = (i + 1132) | 0; Ud = (i + 1128) | 0; Vd = (i + 1124) | 0; Wd = (i + 1120) | 0; Xd = (i + 1116) | 0; Yd = (i + 1112) | 0; Zd = (i + 1108) | 0; _d = (i + 1104) | 0; $d = (i + 1100) | 0; ae = (i + 1096) | 0; be = (i + 1092) | 0; ce = (i + 1088) | 0; de = (i + 1084) | 0; ee = (i + 1080) | 0; fe = (i + 1076) | 0; ge = (i + 1072) | 0; he = (i + 1068) | 0; ie = (i + 1064) | 0; je = (i + 1060) | 0; ke = (i + 1056) | 0; le = (i + 1052) | 0; me = (i + 1048) | 0; ne = (i + 1044) | 0; oe = (i + 1040) | 0; pe = (i + 1036) | 0; qe = (i + 1032) | 0; re = (i + 1028) | 0; se = (i + 1024) | 0; te = (i + 1020) | 0; ue = (i + 1016) | 0; ve = (i + 1012) | 0; we = (i + 1008) | 0; xe = (i + 1004) | 0; ye = (i + 1e3) | 0; ze = (i + 996) | 0; Ae = (i + 992) | 0; Be = (i + 988) | 0; Ce = (i + 984) | 0; De = (i + 980) | 0; Ee = (i + 976) | 0; Fe = (i + 972) | 0; Ge = (i + 968) | 0; He = (i + 964) | 0; Ie = (i + 960) | 0; Je = (i + 956) | 0; Ke = (i + 952) | 0; Le = (i + 948) | 0; Me = (i + 944) | 0; Ne = (i + 940) | 0; Oe = (i + 936) | 0; Pe = (i + 932) | 0; Qe = (i + 928) | 0; Re = (i + 924) | 0; Se = (i + 920) | 0; Te = (i + 916) | 0; Ue = (i + 912) | 0; Ve = (i + 908) | 0; We = (i + 904) | 0; Xe = (i + 900) | 0; Ye = (i + 896) | 0; Ze = (i + 892) | 0; _e = (i + 888) | 0; $e = (i + 884) | 0; af = (i + 880) | 0; bf = (i + 876) | 0; cf = (i + 872) | 0; df = (i + 868) | 0; ef = (i + 864) | 0; ff = (i + 860) | 0; gf = (i + 856) | 0; hf = (i + 852) | 0; jf = (i + 848) | 0; kf = (i + 844) | 0; lf = (i + 840) | 0; mf = (i + 836) | 0; nf = (i + 832) | 0; of = (i + 828) | 0; pf = (i + 824) | 0; qf = (i + 820) | 0; rf = (i + 816) | 0; sf = (i + 812) | 0; tf = (i + 808) | 0; uf = (i + 804) | 0; vf = (i + 800) | 0; wf = (i + 796) | 0; xf = (i + 792) | 0; yf = (i + 788) | 0; zf = (i + 784) | 0; Af = (i + 780) | 0; Bf = (i + 776) | 0; Cf = (i + 772) | 0; Df = (i + 768) | 0; Ef = (i + 764) | 0; Ff = (i + 760) | 0; Gf = (i + 756) | 0; Hf = (i + 752) | 0; If = (i + 748) | 0; Jf = (i + 744) | 0; Kf = (i + 740) | 0; Lf = (i + 736) | 0; Mf = (i + 732) | 0; Nf = (i + 728) | 0; Of = (i + 724) | 0; Pf = (i + 720) | 0; Qf = (i + 716) | 0; Rf = (i + 712) | 0; Sf = (i + 708) | 0; Tf = (i + 704) | 0; Uf = (i + 700) | 0; Vf = (i + 696) | 0; Wf = (i + 692) | 0; Xf = (i + 688) | 0; Yf = (i + 684) | 0; Zf = (i + 680) | 0; _f = (i + 676) | 0; $f = (i + 672) | 0; ag = (i + 668) | 0; bg = (i + 664) | 0; cg = (i + 660) | 0; dg = (i + 656) | 0; eg = (i + 652) | 0; fg = (i + 648) | 0; gg = (i + 644) | 0; hg = (i + 640) | 0; ig = (i + 636) | 0; jg = (i + 632) | 0; kg = (i + 628) | 0; lg = (i + 624) | 0; mg = (i + 620) | 0; ng = (i + 616) | 0; og = (i + 612) | 0; pg = (i + 608) | 0; qg = (i + 604) | 0; rg = (i + 600) | 0; sg = (i + 596) | 0; tg = (i + 592) | 0; ug = (i + 588) | 0; vg = (i + 584) | 0; wg = (i + 580) | 0; xg = (i + 576) | 0; yg = (i + 572) | 0; zg = (i + 568) | 0; Ag = (i + 564) | 0; Bg = (i + 560) | 0; Cg = (i + 556) | 0; Dg = (i + 552) | 0; Eg = (i + 548) | 0; Fg = (i + 544) | 0; Gg = (i + 540) | 0; Hg = (i + 536) | 0; Ig = (i + 532) | 0; Jg = (i + 528) | 0; Kg = (i + 524) | 0; Lg = (i + 520) | 0; Mg = (i + 516) | 0; Ng = (i + 512) | 0; Og = (i + 508) | 0; Pg = (i + 504) | 0; Qg = (i + 500) | 0; Rg = (i + 496) | 0; Sg = (i + 492) | 0; Tg = (i + 488) | 0; Ug = (i + 484) | 0; Vg = (i + 480) | 0; Wg = (i + 476) | 0; Xg = (i + 472) | 0; Yg = (i + 468) | 0; Zg = (i + 464) | 0; _g = (i + 460) | 0; $g = (i + 456) | 0; ah = (i + 452) | 0; bh = (i + 448) | 0; ch = (i + 444) | 0; dh = (i + 440) | 0; eh = (i + 436) | 0; fh = (i + 432) | 0; gh = (i + 428) | 0; hh = (i + 424) | 0; ih = (i + 420) | 0; jh = (i + 416) | 0; kh = (i + 412) | 0; lh = (i + 408) | 0; mh = (i + 404) | 0; nh = (i + 400) | 0; oh = (i + 396) | 0; ph = (i + 392) | 0; qh = (i + 388) | 0; rh = (i + 384) | 0; sh = (i + 380) | 0; th = (i + 376) | 0; uh = (i + 372) | 0; vh = (i + 368) | 0; wh = (i + 364) | 0; xh = (i + 360) | 0; yh = (i + 356) | 0; zh = (i + 352) | 0; Ah = (i + 348) | 0; Bh = (i + 344) | 0; Ch = (i + 340) | 0; Dh = (i + 336) | 0; Eh = (i + 332) | 0; Fh = (i + 328) | 0; Gh = (i + 324) | 0; Hh = (i + 320) | 0; Ih = (i + 316) | 0; Jh = (i + 312) | 0; Kh = (i + 308) | 0; Lh = (i + 304) | 0; Mh = (i + 300) | 0; Nh = (i + 296) | 0; Oh = (i + 292) | 0; Ph = (i + 288) | 0; Qh = (i + 284) | 0; Rh = (i + 280) | 0; Sh = (i + 276) | 0; Th = (i + 272) | 0; Uh = (i + 268) | 0; Vh = (i + 264) | 0; Wh = (i + 260) | 0; Xh = (i + 256) | 0; Yh = (i + 252) | 0; Zh = (i + 248) | 0; _h = (i + 244) | 0; $h = (i + 240) | 0; ai = (i + 236) | 0; bi = (i + 232) | 0; ci = (i + 228) | 0; di = (i + 216) | 0; ei = (i + 212) | 0; fi = (i + 208) | 0; gi = (i + 204) | 0; hi = (i + 200) | 0; ii = (i + 196) | 0; ji = (i + 192) | 0; ki = (i + 188) | 0; li = (i + 184) | 0; mi = (i + 180) | 0; ni = (i + 176) | 0; oi = (i + 172) | 0; pi = (i + 168) | 0; qi = (i + 164) | 0; ri = (i + 160) | 0; si = (i + 148) | 0; ti = (i + 144) | 0; ui = (i + 140) | 0; vi = (i + 136) | 0; wi = (i + 132) | 0; xi = (i + 128) | 0; yi = (i + 124) | 0; zi = (i + 120) | 0; Ai = (i + 116) | 0; Bi = (i + 112) | 0; Ci = (i + 108) | 0; Di = (i + 104) | 0; Ei = (i + 100) | 0; Fi = (i + 88) | 0; Gi = (i + 84) | 0; Hi = (i + 80) | 0; Ii = (i + 76) | 0; Ji = (i + 72) | 0; Ki = (i + 68) | 0; Li = (i + 64) | 0; Mi = (i + 60) | 0; Ni = (i + 56) | 0; Oi = (i + 52) | 0; Pi = (i + 48) | 0; Qi = (i + 44) | 0; Ri = (i + 40) | 0; Si = (i + 36) | 0; Ti = (i + 32) | 0; Ui = (i + 28) | 0; Vi = (i + 24) | 0; Wi = (i + 20) | 0; Xi = (i + 16) | 0; Yi = (i + 12) | 0; Zi = (i + 8) | 0; _i = (i + 4) | 0; $i = i; c[Wi >> 2] = a; c[Xi >> 2] = b; c[Yi >> 2] = e; c[Zi >> 2] = f; c[_i >> 2] = g; c[$i >> 2] = h; h = c[Xi >> 2] | 0; Xi = c[Yi >> 2] | 0; Yi = c[Zi >> 2] | 0; Zi = c[_i >> 2] | 0; _i = c[$i >> 2] | 0; c[Lh >> 2] = c[Wi >> 2]; c[Mh >> 2] = h; c[Nh >> 2] = Xi; c[Oh >> 2] = Yi; c[Ph >> 2] = Zi; c[Qh >> 2] = _i; c[Rh >> 2] = 2; c[Sh >> 2] = 1; c[Th >> 2] = (c[Lh >> 2] | 0) + 48; c[Uh >> 2] = c[Ph >> 2]; c[Vh >> 2] = c[Uh >> 2]; c[Wh >> 2] = c[Uh >> 2]; c[Xh >> 2] = (c[Uh >> 2] | 0) + (c[Qh >> 2] | 0); c[Yh >> 2] = (c[Xh >> 2] | 0) + -8; c[Zh >> 2] = c[((c[Lh >> 2] | 0) + 4) >> 2]; c[_h >> 2] = (c[Zh >> 2] | 0) + (c[((c[Lh >> 2] | 0) + 12) >> 2] | 0); if ((c[((c[Oh >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095) aj = c[((c[Oh >> 2] | 0) + 20) >> 2] | 0; else aj = 4095; c[$h >> 2] = aj; c[ai >> 2] = (c[((c[Oh >> 2] | 0) + 16) >> 2] | 0) == 3 ? 3 : 4; c[bi >> 2] = c[((c[Th >> 2] | 0) + 20) >> 2]; c[ci >> 2] = c[((c[Th >> 2] | 0) + 16) >> 2]; c[((c[Lh >> 2] | 0) + 28) >> 2] = c[((c[Lh >> 2] | 0) + 24) >> 2]; lm(c[Th >> 2] | 0, c[Ph >> 2] | 0, c[Qh >> 2] | 0); c[Vh >> 2] = (c[Vh >> 2] | 0) + (((c[Vh >> 2] | 0) == (c[_h >> 2] | 0)) & 1); c[di >> 2] = 0; c[(di + 4) >> 2] = 0; c[(di + 8) >> 2] = 0; while (1) { if ((c[Vh >> 2] | 0) >>> 0 >= (c[Yh >> 2] | 0) >>> 0) break; c[fi >> 2] = 0; c[ii >> 2] = (c[Vh >> 2] | 0) - (c[Wh >> 2] | 0); c[ji >> 2] = (((c[ii >> 2] | 0) != 0) ^ 1) & 1; _h = c[Oh >> 2] | 0; Qh = c[Vh >> 2] | 0; Ph = c[Xh >> 2] | 0; aj = c[Sh >> 2] | 0; Zh = c[Nh >> 2] | 0; Uh = c[ji >> 2] | 0; _i = c[ci >> 2] | 0; Zi = c[ai >> 2] | 0; c[Bh >> 2] = c[Lh >> 2]; c[Ch >> 2] = _h; c[Dh >> 2] = Qh; c[Eh >> 2] = Ph; c[Fh >> 2] = aj; c[Gh >> 2] = Zh; c[Hh >> 2] = Uh; c[Ih >> 2] = _i; c[Jh >> 2] = Zi; c[Kh >> 2] = c[((c[Ch >> 2] | 0) + 16) >> 2]; a: do { if ( (c[Dh >> 2] | 0) >>> 0 < (((c[((c[Bh >> 2] | 0) + 4) >> 2] | 0) + (c[((c[Bh >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) c[Ah >> 2] = 0; else { Zi = c[Ch >> 2] | 0; _i = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; Zh = c[Kh >> 2] | 0; aj = c[Fh >> 2] | 0; c[rh >> 2] = c[Bh >> 2]; c[sh >> 2] = Zi; c[th >> 2] = _i; c[uh >> 2] = Uh; c[vh >> 2] = Zh; c[wh >> 2] = aj; c[xh >> 2] = c[((c[rh >> 2] | 0) + 4) >> 2]; c[yh >> 2] = (c[th >> 2] | 0) - (c[xh >> 2] | 0); c[zh >> 2] = c[((c[rh >> 2] | 0) + 24) >> 2]; while (1) { if ((c[zh >> 2] | 0) >>> 0 >= (c[yh >> 2] | 0) >>> 0) break; aj = Rj( c[rh >> 2] | 0, c[sh >> 2] | 0, ((c[xh >> 2] | 0) + (c[zh >> 2] | 0)) | 0, c[uh >> 2] | 0, c[vh >> 2] | 0, c[wh >> 2] | 0 ) | 0; c[zh >> 2] = (c[zh >> 2] | 0) + aj; } c[((c[rh >> 2] | 0) + 24) >> 2] = c[yh >> 2]; switch (c[Kh >> 2] | 0) { case 3: { aj = c[Ch >> 2] | 0; Zh = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; _i = c[Fh >> 2] | 0; Zi = c[Gh >> 2] | 0; Ph = c[Hh >> 2] | 0; Qh = c[Ih >> 2] | 0; _h = c[Jh >> 2] | 0; c[wg >> 2] = c[Bh >> 2]; c[xg >> 2] = aj; c[yg >> 2] = Zh; c[zg >> 2] = Uh; c[Ag >> 2] = _i; c[Bg >> 2] = Zi; c[Cg >> 2] = Ph; c[Dg >> 2] = Qh; c[Eg >> 2] = _h; c[Fg >> 2] = 3; if ( (c[((c[xg >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) bj = c[((c[xg >> 2] | 0) + 20) >> 2] | 0; else bj = 4095; c[Gg >> 2] = bj; c[Hg >> 2] = c[((c[wg >> 2] | 0) + 4) >> 2]; c[Ig >> 2] = (c[yg >> 2] | 0) - (c[Hg >> 2] | 0); c[Jg >> 2] = c[((c[xg >> 2] | 0) + 8) >> 2]; c[Kg >> 2] = (c[Fg >> 2] | 0) == 3 ? 3 : 4; c[Lg >> 2] = c[((c[wg >> 2] | 0) + 36) >> 2]; c[Mg >> 2] = Sj( c[yg >> 2] | 0, c[Jg >> 2] | 0, c[Fg >> 2] | 0 ) | 0; c[Ng >> 2] = c[((c[Lg >> 2] | 0) + (c[Mg >> 2] << 2)) >> 2]; c[Og >> 2] = c[((c[wg >> 2] | 0) + 44) >> 2]; c[Pg >> 2] = (c[((c[xg >> 2] | 0) + 4) >> 2] | 0) - 1; c[Qg >> 2] = (1 << c[Pg >> 2]) - 1; c[Rg >> 2] = 0; c[Sg >> 2] = 0; c[Tg >> 2] = c[((c[wg >> 2] | 0) + 8) >> 2]; c[Ug >> 2] = c[((c[wg >> 2] | 0) + 12) >> 2]; c[Vg >> 2] = (c[Tg >> 2] | 0) + (c[Ug >> 2] | 0); c[Wg >> 2] = (c[Hg >> 2] | 0) + (c[Ug >> 2] | 0); if ( (c[Qg >> 2] | 0) >>> 0 >= (c[Ig >> 2] | 0) >>> 0 ) cj = 0; else cj = ((c[Ig >> 2] | 0) - (c[Qg >> 2] | 0)) | 0; c[Xg >> 2] = cj; c[Yg >> 2] = c[((c[wg >> 2] | 0) + 16) >> 2]; c[Zg >> 2] = (c[Og >> 2] | 0) + (((c[Ig >> 2] & c[Qg >> 2]) << 1) << 2); c[_g >> 2] = (c[Og >> 2] | 0) + (((c[Ig >> 2] & c[Qg >> 2]) << 1) << 2) + 4; c[$g >> 2] = (c[Ig >> 2] | 0) + 8 + 1; c[bh >> 2] = 0; c[ch >> 2] = 1 << c[((c[xg >> 2] | 0) + 12) >> 2]; c[dh >> 2] = (c[Eg >> 2] | 0) - 1; c[eh >> 2] = 3 + (c[Cg >> 2] | 0); c[fh >> 2] = c[Cg >> 2]; while (1) { if ( (c[fh >> 2] | 0) >>> 0 >= (c[eh >> 2] | 0) >>> 0 ) { dj = 31; break; } _h = c[Bg >> 2] | 0; if ((c[fh >> 2] | 0) == 3) ej = ((c[_h >> 2] | 0) - 1) | 0; else ej = c[(_h + (c[fh >> 2] << 2)) >> 2] | 0; c[gh >> 2] = ej; c[hh >> 2] = (c[Ig >> 2] | 0) - (c[gh >> 2] | 0); c[ih >> 2] = 0; if ( (((c[gh >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ig >> 2] | 0) - (c[Ug >> 2] | 0)) | 0) >>> 0 ) { _h = mm(c[yg >> 2] | 0, c[Kg >> 2] | 0) | 0; if ( (_h | 0) == (mm( ((c[yg >> 2] | 0) + (0 - (c[gh >> 2] | 0))) | 0, c[Kg >> 2] | 0 ) | 0) ) { _h = Tj( ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0) + (0 - (c[gh >> 2] | 0))) | 0, c[zg >> 2] | 0 ) | 0; c[ih >> 2] = _h + (c[Kg >> 2] | 0); } } else { c[jh >> 2] = (c[Tg >> 2] | 0) + (c[hh >> 2] | 0); if ( ( c[Ag >> 2] | 0 ? ((((c[Ug >> 2] | 0) - 1 - (c[hh >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[gh >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ig >> 2] | 0) - (c[Yg >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((_h = mm(c[yg >> 2] | 0, c[Kg >> 2] | 0) | 0), (_h | 0) == (mm(c[jh >> 2] | 0, c[Kg >> 2] | 0) | 0)) : 0 ) { _h = Uj( ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, ((c[jh >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; c[ih >> 2] = _h + (c[Kg >> 2] | 0); } } if ( (c[ih >> 2] | 0) >>> 0 > (c[dh >> 2] | 0) >>> 0 ? ((c[dh >> 2] = c[ih >> 2]), (c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3)) >> 2 ] = (c[fh >> 2] | 0) - (c[Cg >> 2] | 0)), (c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3) + 4) >> 2 ] = c[ih >> 2]), (c[bh >> 2] = (c[bh >> 2] | 0) + 1), ((c[ih >> 2] | 0) >>> 0 > (c[Gg >> 2] | 0) >>> 0 ? 1 : (((c[yg >> 2] | 0) + (c[ih >> 2] | 0)) | 0) == (c[zg >> 2] | 0)) | 0) : 0 ) { dj = 29; break; } c[fh >> 2] = (c[fh >> 2] | 0) + 1; } do { if ((dj | 0) == 29) { dj = 0; c[vg >> 2] = c[bh >> 2]; } else if ((dj | 0) == 31) { dj = 0; if ( ( (c[Fg >> 2] | 0) == 3 ? (c[dh >> 2] | 0) >>> 0 < (c[Fg >> 2] | 0) >>> 0 : 0 ) ? ((c[kh >> 2] = nm(c[wg >> 2] | 0, c[yg >> 2] | 0) | 0), ((c[kh >> 2] | 0) >>> 0 > (c[Yg >> 2] | 0) >>> 0 ? (((c[Ig >> 2] | 0) - (c[kh >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ag >> 2] | 0 ? (c[kh >> 2] | 0) >>> 0 < (c[Ug >> 2] | 0) >>> 0 : 0 ) { c[nh >> 2] = (c[Tg >> 2] | 0) + (c[kh >> 2] | 0); c[lh >> 2] = Uj( c[yg >> 2] | 0, c[nh >> 2] | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; } else { c[mh >> 2] = (c[Hg >> 2] | 0) + (c[kh >> 2] | 0); c[lh >> 2] = Tj( c[yg >> 2] | 0, c[mh >> 2] | 0, c[zg >> 2] | 0 ) | 0; } if ( (c[lh >> 2] | 0) >>> 0 >= (c[Fg >> 2] | 0) >>> 0 ? ((c[dh >> 2] = c[lh >> 2]), (c[c[Dg >> 2] >> 2] = (c[Ig >> 2] | 0) - (c[kh >> 2] | 0) + 2), (c[((c[Dg >> 2] | 0) + 4) >> 2] = c[lh >> 2]), (c[bh >> 2] = 1), ((c[lh >> 2] | 0) >>> 0 > (c[Gg >> 2] | 0) >>> 0 ? 1 : (((c[yg >> 2] | 0) + (c[lh >> 2] | 0)) | 0) == (c[zg >> 2] | 0)) | 0) : 0 ) { c[((c[wg >> 2] | 0) + 24) >> 2] = (c[Ig >> 2] | 0) + 1; c[vg >> 2] = 1; break; } } c[((c[Lg >> 2] | 0) + (c[Mg >> 2] << 2)) >> 2] = c[Ig >> 2]; while (1) { _h = c[ch >> 2] | 0; c[ch >> 2] = _h + -1; if (!_h) break; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Yg >> 2] | 0) >>> 0 ) break; c[oh >> 2] = (c[Og >> 2] | 0) + (((c[Ng >> 2] & c[Qg >> 2]) << 1) << 2); c[ph >> 2] = (c[Rg >> 2] | 0) >>> 0 < (c[Sg >> 2] | 0) >>> 0 ? c[Rg >> 2] | 0 : c[Sg >> 2] | 0; if ( c[Ag >> 2] | 0 ? (((c[Ng >> 2] | 0) + (c[ph >> 2] | 0)) | 0) >>> 0 < (c[Ug >> 2] | 0) >>> 0 : 0 ) { c[qh >> 2] = (c[Tg >> 2] | 0) + (c[Ng >> 2] | 0); _h = Uj( ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0, ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; c[ph >> 2] = (c[ph >> 2] | 0) + _h; if ( (((c[Ng >> 2] | 0) + (c[ph >> 2] | 0)) | 0) >>> 0 >= (c[Ug >> 2] | 0) >>> 0 ) c[qh >> 2] = (c[Hg >> 2] | 0) + (c[Ng >> 2] | 0); } else { c[qh >> 2] = (c[Hg >> 2] | 0) + (c[Ng >> 2] | 0); _h = Tj( ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0, ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) | 0, c[zg >> 2] | 0 ) | 0; c[ph >> 2] = (c[ph >> 2] | 0) + _h; } if ( (c[ph >> 2] | 0) >>> 0 > (c[dh >> 2] | 0) >>> 0 ) { if ( (c[ph >> 2] | 0) >>> 0 > (((c[$g >> 2] | 0) - (c[Ng >> 2] | 0)) | 0) >>> 0 ) c[$g >> 2] = (c[Ng >> 2] | 0) + (c[ph >> 2] | 0); c[dh >> 2] = c[ph >> 2]; c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3)) >> 2 ] = (c[Ig >> 2] | 0) - (c[Ng >> 2] | 0) + 2; c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3) + 4) >> 2 ] = c[ph >> 2]; c[bh >> 2] = (c[bh >> 2] | 0) + 1; if ((c[ph >> 2] | 0) >>> 0 > 4096) break; if ( (((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0) == (c[zg >> 2] | 0) ) break; } _h = c[Ng >> 2] | 0; if ( (d[ ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Zg >> 2] >> 2] = _h; c[Rg >> 2] = c[ph >> 2]; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Xg >> 2] | 0) >>> 0 ) { dj = 56; break; } c[Zg >> 2] = (c[oh >> 2] | 0) + 4; c[Ng >> 2] = c[((c[oh >> 2] | 0) + 4) >> 2]; } else { c[c[_g >> 2] >> 2] = _h; c[Sg >> 2] = c[ph >> 2]; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Xg >> 2] | 0) >>> 0 ) { dj = 59; break; } c[_g >> 2] = c[oh >> 2]; c[Ng >> 2] = c[c[oh >> 2] >> 2]; } } if ((dj | 0) == 56) { dj = 0; c[Zg >> 2] = ah; } else if ((dj | 0) == 59) { dj = 0; c[_g >> 2] = ah; } c[c[_g >> 2] >> 2] = 0; c[c[Zg >> 2] >> 2] = 0; c[((c[wg >> 2] | 0) + 24) >> 2] = (c[$g >> 2] | 0) - 8; c[vg >> 2] = c[bh >> 2]; } } while (0); c[Ah >> 2] = c[vg >> 2]; break a; break; } case 7: case 6: { _h = c[Ch >> 2] | 0; Qh = c[Dh >> 2] | 0; Ph = c[Eh >> 2] | 0; Zi = c[Fh >> 2] | 0; _i = c[Gh >> 2] | 0; Uh = c[Hh >> 2] | 0; Zh = c[Ih >> 2] | 0; aj = c[Jh >> 2] | 0; c[Hd >> 2] = c[Bh >> 2]; c[Id >> 2] = _h; c[Jd >> 2] = Qh; c[Kd >> 2] = Ph; c[Ld >> 2] = Zi; c[Md >> 2] = _i; c[Nd >> 2] = Uh; c[Od >> 2] = Zh; c[Pd >> 2] = aj; c[Qd >> 2] = 6; if ( (c[((c[Id >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) fj = c[((c[Id >> 2] | 0) + 20) >> 2] | 0; else fj = 4095; c[Rd >> 2] = fj; c[Sd >> 2] = c[((c[Hd >> 2] | 0) + 4) >> 2]; c[Td >> 2] = (c[Jd >> 2] | 0) - (c[Sd >> 2] | 0); c[Ud >> 2] = c[((c[Id >> 2] | 0) + 8) >> 2]; c[Vd >> 2] = (c[Qd >> 2] | 0) == 3 ? 3 : 4; c[Wd >> 2] = c[((c[Hd >> 2] | 0) + 36) >> 2]; c[Xd >> 2] = Sj( c[Jd >> 2] | 0, c[Ud >> 2] | 0, c[Qd >> 2] | 0 ) | 0; c[Yd >> 2] = c[((c[Wd >> 2] | 0) + (c[Xd >> 2] << 2)) >> 2]; c[Zd >> 2] = c[((c[Hd >> 2] | 0) + 44) >> 2]; c[_d >> 2] = (c[((c[Id >> 2] | 0) + 4) >> 2] | 0) - 1; c[$d >> 2] = (1 << c[_d >> 2]) - 1; c[ae >> 2] = 0; c[be >> 2] = 0; c[ce >> 2] = c[((c[Hd >> 2] | 0) + 8) >> 2]; c[de >> 2] = c[((c[Hd >> 2] | 0) + 12) >> 2]; c[ee >> 2] = (c[ce >> 2] | 0) + (c[de >> 2] | 0); c[fe >> 2] = (c[Sd >> 2] | 0) + (c[de >> 2] | 0); if ( (c[$d >> 2] | 0) >>> 0 >= (c[Td >> 2] | 0) >>> 0 ) gj = 0; else gj = ((c[Td >> 2] | 0) - (c[$d >> 2] | 0)) | 0; c[ge >> 2] = gj; c[he >> 2] = c[((c[Hd >> 2] | 0) + 16) >> 2]; c[ie >> 2] = (c[Zd >> 2] | 0) + (((c[Td >> 2] & c[$d >> 2]) << 1) << 2); c[je >> 2] = (c[Zd >> 2] | 0) + (((c[Td >> 2] & c[$d >> 2]) << 1) << 2) + 4; c[ke >> 2] = (c[Td >> 2] | 0) + 8 + 1; c[me >> 2] = 0; c[ne >> 2] = 1 << c[((c[Id >> 2] | 0) + 12) >> 2]; c[oe >> 2] = (c[Pd >> 2] | 0) - 1; c[pe >> 2] = 3 + (c[Nd >> 2] | 0); c[qe >> 2] = c[Nd >> 2]; while (1) { if ( (c[qe >> 2] | 0) >>> 0 >= (c[pe >> 2] | 0) >>> 0 ) { dj = 190; break; } aj = c[Md >> 2] | 0; if ((c[qe >> 2] | 0) == 3) hj = ((c[aj >> 2] | 0) - 1) | 0; else hj = c[(aj + (c[qe >> 2] << 2)) >> 2] | 0; c[re >> 2] = hj; c[se >> 2] = (c[Td >> 2] | 0) - (c[re >> 2] | 0); c[te >> 2] = 0; if ( (((c[re >> 2] | 0) - 1) | 0) >>> 0 < (((c[Td >> 2] | 0) - (c[de >> 2] | 0)) | 0) >>> 0 ) { aj = mm(c[Jd >> 2] | 0, c[Vd >> 2] | 0) | 0; if ( (aj | 0) == (mm( ((c[Jd >> 2] | 0) + (0 - (c[re >> 2] | 0))) | 0, c[Vd >> 2] | 0 ) | 0) ) { aj = Tj( ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0) + (0 - (c[re >> 2] | 0))) | 0, c[Kd >> 2] | 0 ) | 0; c[te >> 2] = aj + (c[Vd >> 2] | 0); } } else { c[ue >> 2] = (c[ce >> 2] | 0) + (c[se >> 2] | 0); if ( ( c[Ld >> 2] | 0 ? ((((c[de >> 2] | 0) - 1 - (c[se >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[re >> 2] | 0) - 1) | 0) >>> 0 < (((c[Td >> 2] | 0) - (c[he >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((aj = mm(c[Jd >> 2] | 0, c[Vd >> 2] | 0) | 0), (aj | 0) == (mm(c[ue >> 2] | 0, c[Vd >> 2] | 0) | 0)) : 0 ) { aj = Uj( ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, ((c[ue >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; c[te >> 2] = aj + (c[Vd >> 2] | 0); } } if ( (c[te >> 2] | 0) >>> 0 > (c[oe >> 2] | 0) >>> 0 ? ((c[oe >> 2] = c[te >> 2]), (c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3)) >> 2 ] = (c[qe >> 2] | 0) - (c[Nd >> 2] | 0)), (c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3) + 4) >> 2 ] = c[te >> 2]), (c[me >> 2] = (c[me >> 2] | 0) + 1), ((c[te >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0 ? 1 : (((c[Jd >> 2] | 0) + (c[te >> 2] | 0)) | 0) == (c[Kd >> 2] | 0)) | 0) : 0 ) { dj = 188; break; } c[qe >> 2] = (c[qe >> 2] | 0) + 1; } do { if ((dj | 0) == 188) { dj = 0; c[Gd >> 2] = c[me >> 2]; } else if ((dj | 0) == 190) { dj = 0; if ( ( (c[Qd >> 2] | 0) == 3 ? (c[oe >> 2] | 0) >>> 0 < (c[Qd >> 2] | 0) >>> 0 : 0 ) ? ((c[ve >> 2] = nm(c[Hd >> 2] | 0, c[Jd >> 2] | 0) | 0), ((c[ve >> 2] | 0) >>> 0 > (c[he >> 2] | 0) >>> 0 ? (((c[Td >> 2] | 0) - (c[ve >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ld >> 2] | 0 ? (c[ve >> 2] | 0) >>> 0 < (c[de >> 2] | 0) >>> 0 : 0 ) { c[ye >> 2] = (c[ce >> 2] | 0) + (c[ve >> 2] | 0); c[we >> 2] = Uj( c[Jd >> 2] | 0, c[ye >> 2] | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; } else { c[xe >> 2] = (c[Sd >> 2] | 0) + (c[ve >> 2] | 0); c[we >> 2] = Tj( c[Jd >> 2] | 0, c[xe >> 2] | 0, c[Kd >> 2] | 0 ) | 0; } if ( (c[we >> 2] | 0) >>> 0 >= (c[Qd >> 2] | 0) >>> 0 ? ((c[oe >> 2] = c[we >> 2]), (c[c[Od >> 2] >> 2] = (c[Td >> 2] | 0) - (c[ve >> 2] | 0) + 2), (c[((c[Od >> 2] | 0) + 4) >> 2] = c[we >> 2]), (c[me >> 2] = 1), ((c[we >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0 ? 1 : (((c[Jd >> 2] | 0) + (c[we >> 2] | 0)) | 0) == (c[Kd >> 2] | 0)) | 0) : 0 ) { c[((c[Hd >> 2] | 0) + 24) >> 2] = (c[Td >> 2] | 0) + 1; c[Gd >> 2] = 1; break; } } c[((c[Wd >> 2] | 0) + (c[Xd >> 2] << 2)) >> 2] = c[Td >> 2]; while (1) { aj = c[ne >> 2] | 0; c[ne >> 2] = aj + -1; if (!aj) break; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[he >> 2] | 0) >>> 0 ) break; c[ze >> 2] = (c[Zd >> 2] | 0) + (((c[Yd >> 2] & c[$d >> 2]) << 1) << 2); c[Ae >> 2] = (c[ae >> 2] | 0) >>> 0 < (c[be >> 2] | 0) >>> 0 ? c[ae >> 2] | 0 : c[be >> 2] | 0; if ( c[Ld >> 2] | 0 ? (((c[Yd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) >>> 0 < (c[de >> 2] | 0) >>> 0 : 0 ) { c[Be >> 2] = (c[ce >> 2] | 0) + (c[Yd >> 2] | 0); aj = Uj( ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; c[Ae >> 2] = (c[Ae >> 2] | 0) + aj; if ( (((c[Yd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) >>> 0 >= (c[de >> 2] | 0) >>> 0 ) c[Be >> 2] = (c[Sd >> 2] | 0) + (c[Yd >> 2] | 0); } else { c[Be >> 2] = (c[Sd >> 2] | 0) + (c[Yd >> 2] | 0); aj = Tj( ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, c[Kd >> 2] | 0 ) | 0; c[Ae >> 2] = (c[Ae >> 2] | 0) + aj; } if ( (c[Ae >> 2] | 0) >>> 0 > (c[oe >> 2] | 0) >>> 0 ) { if ( (c[Ae >> 2] | 0) >>> 0 > (((c[ke >> 2] | 0) - (c[Yd >> 2] | 0)) | 0) >>> 0 ) c[ke >> 2] = (c[Yd >> 2] | 0) + (c[Ae >> 2] | 0); c[oe >> 2] = c[Ae >> 2]; c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3)) >> 2 ] = (c[Td >> 2] | 0) - (c[Yd >> 2] | 0) + 2; c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3) + 4) >> 2 ] = c[Ae >> 2]; c[me >> 2] = (c[me >> 2] | 0) + 1; if ((c[Ae >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) == (c[Kd >> 2] | 0) ) break; } aj = c[Yd >> 2] | 0; if ( (d[ ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[ie >> 2] >> 2] = aj; c[ae >> 2] = c[Ae >> 2]; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[ge >> 2] | 0) >>> 0 ) { dj = 215; break; } c[ie >> 2] = (c[ze >> 2] | 0) + 4; c[Yd >> 2] = c[((c[ze >> 2] | 0) + 4) >> 2]; } else { c[c[je >> 2] >> 2] = aj; c[be >> 2] = c[Ae >> 2]; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[ge >> 2] | 0) >>> 0 ) { dj = 218; break; } c[je >> 2] = c[ze >> 2]; c[Yd >> 2] = c[c[ze >> 2] >> 2]; } } if ((dj | 0) == 215) { dj = 0; c[ie >> 2] = le; } else if ((dj | 0) == 218) { dj = 0; c[je >> 2] = le; } c[c[je >> 2] >> 2] = 0; c[c[ie >> 2] >> 2] = 0; c[((c[Hd >> 2] | 0) + 24) >> 2] = (c[ke >> 2] | 0) - 8; c[Gd >> 2] = c[me >> 2]; } } while (0); c[Ah >> 2] = c[Gd >> 2]; break a; break; } case 5: { aj = c[Ch >> 2] | 0; Zh = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; _i = c[Fh >> 2] | 0; Zi = c[Gh >> 2] | 0; Ph = c[Hh >> 2] | 0; Qh = c[Ih >> 2] | 0; _h = c[Jh >> 2] | 0; c[De >> 2] = c[Bh >> 2]; c[Ee >> 2] = aj; c[Fe >> 2] = Zh; c[Ge >> 2] = Uh; c[He >> 2] = _i; c[Ie >> 2] = Zi; c[Je >> 2] = Ph; c[Ke >> 2] = Qh; c[Le >> 2] = _h; c[Me >> 2] = 5; if ( (c[((c[Ee >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) ij = c[((c[Ee >> 2] | 0) + 20) >> 2] | 0; else ij = 4095; c[Ne >> 2] = ij; c[Oe >> 2] = c[((c[De >> 2] | 0) + 4) >> 2]; c[Pe >> 2] = (c[Fe >> 2] | 0) - (c[Oe >> 2] | 0); c[Qe >> 2] = c[((c[Ee >> 2] | 0) + 8) >> 2]; c[Re >> 2] = (c[Me >> 2] | 0) == 3 ? 3 : 4; c[Se >> 2] = c[((c[De >> 2] | 0) + 36) >> 2]; c[Te >> 2] = Sj( c[Fe >> 2] | 0, c[Qe >> 2] | 0, c[Me >> 2] | 0 ) | 0; c[Ue >> 2] = c[((c[Se >> 2] | 0) + (c[Te >> 2] << 2)) >> 2]; c[Ve >> 2] = c[((c[De >> 2] | 0) + 44) >> 2]; c[We >> 2] = (c[((c[Ee >> 2] | 0) + 4) >> 2] | 0) - 1; c[Xe >> 2] = (1 << c[We >> 2]) - 1; c[Ye >> 2] = 0; c[Ze >> 2] = 0; c[_e >> 2] = c[((c[De >> 2] | 0) + 8) >> 2]; c[$e >> 2] = c[((c[De >> 2] | 0) + 12) >> 2]; c[af >> 2] = (c[_e >> 2] | 0) + (c[$e >> 2] | 0); c[bf >> 2] = (c[Oe >> 2] | 0) + (c[$e >> 2] | 0); if ( (c[Xe >> 2] | 0) >>> 0 >= (c[Pe >> 2] | 0) >>> 0 ) jj = 0; else jj = ((c[Pe >> 2] | 0) - (c[Xe >> 2] | 0)) | 0; c[cf >> 2] = jj; c[df >> 2] = c[((c[De >> 2] | 0) + 16) >> 2]; c[ef >> 2] = (c[Ve >> 2] | 0) + (((c[Pe >> 2] & c[Xe >> 2]) << 1) << 2); c[ff >> 2] = (c[Ve >> 2] | 0) + (((c[Pe >> 2] & c[Xe >> 2]) << 1) << 2) + 4; c[gf >> 2] = (c[Pe >> 2] | 0) + 8 + 1; c[jf >> 2] = 0; c[kf >> 2] = 1 << c[((c[Ee >> 2] | 0) + 12) >> 2]; c[lf >> 2] = (c[Le >> 2] | 0) - 1; c[mf >> 2] = 3 + (c[Je >> 2] | 0); c[nf >> 2] = c[Je >> 2]; while (1) { if ( (c[nf >> 2] | 0) >>> 0 >= (c[mf >> 2] | 0) >>> 0 ) { dj = 137; break; } _h = c[Ie >> 2] | 0; if ((c[nf >> 2] | 0) == 3) kj = ((c[_h >> 2] | 0) - 1) | 0; else kj = c[(_h + (c[nf >> 2] << 2)) >> 2] | 0; c[of >> 2] = kj; c[pf >> 2] = (c[Pe >> 2] | 0) - (c[of >> 2] | 0); c[qf >> 2] = 0; if ( (((c[of >> 2] | 0) - 1) | 0) >>> 0 < (((c[Pe >> 2] | 0) - (c[$e >> 2] | 0)) | 0) >>> 0 ) { _h = mm(c[Fe >> 2] | 0, c[Re >> 2] | 0) | 0; if ( (_h | 0) == (mm( ((c[Fe >> 2] | 0) + (0 - (c[of >> 2] | 0))) | 0, c[Re >> 2] | 0 ) | 0) ) { _h = Tj( ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0)) | 0, ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0) + (0 - (c[of >> 2] | 0))) | 0, c[Ge >> 2] | 0 ) | 0; c[qf >> 2] = _h + (c[Re >> 2] | 0); } } else { c[rf >> 2] = (c[_e >> 2] | 0) + (c[pf >> 2] | 0); if ( ( c[He >> 2] | 0 ? ((((c[$e >> 2] | 0) - 1 - (c[pf >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[of >> 2] | 0) - 1) | 0) >>> 0 < (((c[Pe >> 2] | 0) - (c[df >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((_h = mm(c[Fe >> 2] | 0, c[Re >> 2] | 0) | 0), (_h | 0) == (mm(c[rf >> 2] | 0, c[Re >> 2] | 0) | 0)) : 0 ) { _h = Uj( ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0)) | 0, ((c[rf >> 2] | 0) + (c[Re >> 2] | 0)) | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; c[qf >> 2] = _h + (c[Re >> 2] | 0); } } if ( (c[qf >> 2] | 0) >>> 0 > (c[lf >> 2] | 0) >>> 0 ? ((c[lf >> 2] = c[qf >> 2]), (c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3)) >> 2 ] = (c[nf >> 2] | 0) - (c[Je >> 2] | 0)), (c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3) + 4) >> 2 ] = c[qf >> 2]), (c[jf >> 2] = (c[jf >> 2] | 0) + 1), ((c[qf >> 2] | 0) >>> 0 > (c[Ne >> 2] | 0) >>> 0 ? 1 : (((c[Fe >> 2] | 0) + (c[qf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0)) | 0) : 0 ) { dj = 135; break; } c[nf >> 2] = (c[nf >> 2] | 0) + 1; } do { if ((dj | 0) == 135) { dj = 0; c[Ce >> 2] = c[jf >> 2]; } else if ((dj | 0) == 137) { dj = 0; if ( ( (c[Me >> 2] | 0) == 3 ? (c[lf >> 2] | 0) >>> 0 < (c[Me >> 2] | 0) >>> 0 : 0 ) ? ((c[sf >> 2] = nm(c[De >> 2] | 0, c[Fe >> 2] | 0) | 0), ((c[sf >> 2] | 0) >>> 0 > (c[df >> 2] | 0) >>> 0 ? (((c[Pe >> 2] | 0) - (c[sf >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[He >> 2] | 0 ? (c[sf >> 2] | 0) >>> 0 < (c[$e >> 2] | 0) >>> 0 : 0 ) { c[vf >> 2] = (c[_e >> 2] | 0) + (c[sf >> 2] | 0); c[tf >> 2] = Uj( c[Fe >> 2] | 0, c[vf >> 2] | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; } else { c[uf >> 2] = (c[Oe >> 2] | 0) + (c[sf >> 2] | 0); c[tf >> 2] = Tj( c[Fe >> 2] | 0, c[uf >> 2] | 0, c[Ge >> 2] | 0 ) | 0; } if ( (c[tf >> 2] | 0) >>> 0 >= (c[Me >> 2] | 0) >>> 0 ? ((c[lf >> 2] = c[tf >> 2]), (c[c[Ke >> 2] >> 2] = (c[Pe >> 2] | 0) - (c[sf >> 2] | 0) + 2), (c[((c[Ke >> 2] | 0) + 4) >> 2] = c[tf >> 2]), (c[jf >> 2] = 1), ((c[tf >> 2] | 0) >>> 0 > (c[Ne >> 2] | 0) >>> 0 ? 1 : (((c[Fe >> 2] | 0) + (c[tf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0)) | 0) : 0 ) { c[((c[De >> 2] | 0) + 24) >> 2] = (c[Pe >> 2] | 0) + 1; c[Ce >> 2] = 1; break; } } c[((c[Se >> 2] | 0) + (c[Te >> 2] << 2)) >> 2] = c[Pe >> 2]; while (1) { _h = c[kf >> 2] | 0; c[kf >> 2] = _h + -1; if (!_h) break; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[df >> 2] | 0) >>> 0 ) break; c[wf >> 2] = (c[Ve >> 2] | 0) + (((c[Ue >> 2] & c[Xe >> 2]) << 1) << 2); c[xf >> 2] = (c[Ye >> 2] | 0) >>> 0 < (c[Ze >> 2] | 0) >>> 0 ? c[Ye >> 2] | 0 : c[Ze >> 2] | 0; if ( c[He >> 2] | 0 ? (((c[Ue >> 2] | 0) + (c[xf >> 2] | 0)) | 0) >>> 0 < (c[$e >> 2] | 0) >>> 0 : 0 ) { c[yf >> 2] = (c[_e >> 2] | 0) + (c[Ue >> 2] | 0); _h = Uj( ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0, ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; c[xf >> 2] = (c[xf >> 2] | 0) + _h; if ( (((c[Ue >> 2] | 0) + (c[xf >> 2] | 0)) | 0) >>> 0 >= (c[$e >> 2] | 0) >>> 0 ) c[yf >> 2] = (c[Oe >> 2] | 0) + (c[Ue >> 2] | 0); } else { c[yf >> 2] = (c[Oe >> 2] | 0) + (c[Ue >> 2] | 0); _h = Tj( ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0, ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) | 0, c[Ge >> 2] | 0 ) | 0; c[xf >> 2] = (c[xf >> 2] | 0) + _h; } if ( (c[xf >> 2] | 0) >>> 0 > (c[lf >> 2] | 0) >>> 0 ) { if ( (c[xf >> 2] | 0) >>> 0 > (((c[gf >> 2] | 0) - (c[Ue >> 2] | 0)) | 0) >>> 0 ) c[gf >> 2] = (c[Ue >> 2] | 0) + (c[xf >> 2] | 0); c[lf >> 2] = c[xf >> 2]; c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3)) >> 2 ] = (c[Pe >> 2] | 0) - (c[Ue >> 2] | 0) + 2; c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3) + 4) >> 2 ] = c[xf >> 2]; c[jf >> 2] = (c[jf >> 2] | 0) + 1; if ((c[xf >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0) ) break; } _h = c[Ue >> 2] | 0; if ( (d[ ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[ef >> 2] >> 2] = _h; c[Ye >> 2] = c[xf >> 2]; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[cf >> 2] | 0) >>> 0 ) { dj = 162; break; } c[ef >> 2] = (c[wf >> 2] | 0) + 4; c[Ue >> 2] = c[((c[wf >> 2] | 0) + 4) >> 2]; } else { c[c[ff >> 2] >> 2] = _h; c[Ze >> 2] = c[xf >> 2]; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[cf >> 2] | 0) >>> 0 ) { dj = 165; break; } c[ff >> 2] = c[wf >> 2]; c[Ue >> 2] = c[c[wf >> 2] >> 2]; } } if ((dj | 0) == 162) { dj = 0; c[ef >> 2] = hf; } else if ((dj | 0) == 165) { dj = 0; c[ff >> 2] = hf; } c[c[ff >> 2] >> 2] = 0; c[c[ef >> 2] >> 2] = 0; c[((c[De >> 2] | 0) + 24) >> 2] = (c[gf >> 2] | 0) - 8; c[Ce >> 2] = c[jf >> 2]; } } while (0); c[Ah >> 2] = c[Ce >> 2]; break a; break; } default: { _h = c[Ch >> 2] | 0; Qh = c[Dh >> 2] | 0; Ph = c[Eh >> 2] | 0; Zi = c[Fh >> 2] | 0; _i = c[Gh >> 2] | 0; Uh = c[Hh >> 2] | 0; Zh = c[Ih >> 2] | 0; aj = c[Jh >> 2] | 0; c[Af >> 2] = c[Bh >> 2]; c[Bf >> 2] = _h; c[Cf >> 2] = Qh; c[Df >> 2] = Ph; c[Ef >> 2] = Zi; c[Ff >> 2] = _i; c[Gf >> 2] = Uh; c[Hf >> 2] = Zh; c[If >> 2] = aj; c[Jf >> 2] = 4; if ( (c[((c[Bf >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) lj = c[((c[Bf >> 2] | 0) + 20) >> 2] | 0; else lj = 4095; c[Kf >> 2] = lj; c[Lf >> 2] = c[((c[Af >> 2] | 0) + 4) >> 2]; c[Mf >> 2] = (c[Cf >> 2] | 0) - (c[Lf >> 2] | 0); c[Nf >> 2] = c[((c[Bf >> 2] | 0) + 8) >> 2]; c[Of >> 2] = (c[Jf >> 2] | 0) == 3 ? 3 : 4; c[Pf >> 2] = c[((c[Af >> 2] | 0) + 36) >> 2]; c[Qf >> 2] = Sj( c[Cf >> 2] | 0, c[Nf >> 2] | 0, c[Jf >> 2] | 0 ) | 0; c[Rf >> 2] = c[((c[Pf >> 2] | 0) + (c[Qf >> 2] << 2)) >> 2]; c[Sf >> 2] = c[((c[Af >> 2] | 0) + 44) >> 2]; c[Tf >> 2] = (c[((c[Bf >> 2] | 0) + 4) >> 2] | 0) - 1; c[Uf >> 2] = (1 << c[Tf >> 2]) - 1; c[Vf >> 2] = 0; c[Wf >> 2] = 0; c[Xf >> 2] = c[((c[Af >> 2] | 0) + 8) >> 2]; c[Yf >> 2] = c[((c[Af >> 2] | 0) + 12) >> 2]; c[Zf >> 2] = (c[Xf >> 2] | 0) + (c[Yf >> 2] | 0); c[_f >> 2] = (c[Lf >> 2] | 0) + (c[Yf >> 2] | 0); if ( (c[Uf >> 2] | 0) >>> 0 >= (c[Mf >> 2] | 0) >>> 0 ) mj = 0; else mj = ((c[Mf >> 2] | 0) - (c[Uf >> 2] | 0)) | 0; c[$f >> 2] = mj; c[ag >> 2] = c[((c[Af >> 2] | 0) + 16) >> 2]; c[bg >> 2] = (c[Sf >> 2] | 0) + (((c[Mf >> 2] & c[Uf >> 2]) << 1) << 2); c[cg >> 2] = (c[Sf >> 2] | 0) + (((c[Mf >> 2] & c[Uf >> 2]) << 1) << 2) + 4; c[dg >> 2] = (c[Mf >> 2] | 0) + 8 + 1; c[fg >> 2] = 0; c[gg >> 2] = 1 << c[((c[Bf >> 2] | 0) + 12) >> 2]; c[hg >> 2] = (c[If >> 2] | 0) - 1; c[ig >> 2] = 3 + (c[Gf >> 2] | 0); c[jg >> 2] = c[Gf >> 2]; while (1) { if ( (c[jg >> 2] | 0) >>> 0 >= (c[ig >> 2] | 0) >>> 0 ) { dj = 84; break; } aj = c[Ff >> 2] | 0; if ((c[jg >> 2] | 0) == 3) nj = ((c[aj >> 2] | 0) - 1) | 0; else nj = c[(aj + (c[jg >> 2] << 2)) >> 2] | 0; c[kg >> 2] = nj; c[lg >> 2] = (c[Mf >> 2] | 0) - (c[kg >> 2] | 0); c[mg >> 2] = 0; if ( (((c[kg >> 2] | 0) - 1) | 0) >>> 0 < (((c[Mf >> 2] | 0) - (c[Yf >> 2] | 0)) | 0) >>> 0 ) { aj = mm(c[Cf >> 2] | 0, c[Of >> 2] | 0) | 0; if ( (aj | 0) == (mm( ((c[Cf >> 2] | 0) + (0 - (c[kg >> 2] | 0))) | 0, c[Of >> 2] | 0 ) | 0) ) { aj = Tj( ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0)) | 0, ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0) + (0 - (c[kg >> 2] | 0))) | 0, c[Df >> 2] | 0 ) | 0; c[mg >> 2] = aj + (c[Of >> 2] | 0); } } else { c[ng >> 2] = (c[Xf >> 2] | 0) + (c[lg >> 2] | 0); if ( ( c[Ef >> 2] | 0 ? ((((c[Yf >> 2] | 0) - 1 - (c[lg >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[kg >> 2] | 0) - 1) | 0) >>> 0 < (((c[Mf >> 2] | 0) - (c[ag >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((aj = mm(c[Cf >> 2] | 0, c[Of >> 2] | 0) | 0), (aj | 0) == (mm(c[ng >> 2] | 0, c[Of >> 2] | 0) | 0)) : 0 ) { aj = Uj( ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0)) | 0, ((c[ng >> 2] | 0) + (c[Of >> 2] | 0)) | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; c[mg >> 2] = aj + (c[Of >> 2] | 0); } } if ( (c[mg >> 2] | 0) >>> 0 > (c[hg >> 2] | 0) >>> 0 ? ((c[hg >> 2] = c[mg >> 2]), (c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3)) >> 2 ] = (c[jg >> 2] | 0) - (c[Gf >> 2] | 0)), (c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3) + 4) >> 2 ] = c[mg >> 2]), (c[fg >> 2] = (c[fg >> 2] | 0) + 1), ((c[mg >> 2] | 0) >>> 0 > (c[Kf >> 2] | 0) >>> 0 ? 1 : (((c[Cf >> 2] | 0) + (c[mg >> 2] | 0)) | 0) == (c[Df >> 2] | 0)) | 0) : 0 ) { dj = 82; break; } c[jg >> 2] = (c[jg >> 2] | 0) + 1; } do { if ((dj | 0) == 82) { dj = 0; c[zf >> 2] = c[fg >> 2]; } else if ((dj | 0) == 84) { dj = 0; if ( ( (c[Jf >> 2] | 0) == 3 ? (c[hg >> 2] | 0) >>> 0 < (c[Jf >> 2] | 0) >>> 0 : 0 ) ? ((c[og >> 2] = nm(c[Af >> 2] | 0, c[Cf >> 2] | 0) | 0), ((c[og >> 2] | 0) >>> 0 > (c[ag >> 2] | 0) >>> 0 ? (((c[Mf >> 2] | 0) - (c[og >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ef >> 2] | 0 ? (c[og >> 2] | 0) >>> 0 < (c[Yf >> 2] | 0) >>> 0 : 0 ) { c[rg >> 2] = (c[Xf >> 2] | 0) + (c[og >> 2] | 0); c[pg >> 2] = Uj( c[Cf >> 2] | 0, c[rg >> 2] | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; } else { c[qg >> 2] = (c[Lf >> 2] | 0) + (c[og >> 2] | 0); c[pg >> 2] = Tj( c[Cf >> 2] | 0, c[qg >> 2] | 0, c[Df >> 2] | 0 ) | 0; } if ( (c[pg >> 2] | 0) >>> 0 >= (c[Jf >> 2] | 0) >>> 0 ? ((c[hg >> 2] = c[pg >> 2]), (c[c[Hf >> 2] >> 2] = (c[Mf >> 2] | 0) - (c[og >> 2] | 0) + 2), (c[((c[Hf >> 2] | 0) + 4) >> 2] = c[pg >> 2]), (c[fg >> 2] = 1), ((c[pg >> 2] | 0) >>> 0 > (c[Kf >> 2] | 0) >>> 0 ? 1 : (((c[Cf >> 2] | 0) + (c[pg >> 2] | 0)) | 0) == (c[Df >> 2] | 0)) | 0) : 0 ) { c[((c[Af >> 2] | 0) + 24) >> 2] = (c[Mf >> 2] | 0) + 1; c[zf >> 2] = 1; break; } } c[((c[Pf >> 2] | 0) + (c[Qf >> 2] << 2)) >> 2] = c[Mf >> 2]; while (1) { aj = c[gg >> 2] | 0; c[gg >> 2] = aj + -1; if (!aj) break; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[ag >> 2] | 0) >>> 0 ) break; c[sg >> 2] = (c[Sf >> 2] | 0) + (((c[Rf >> 2] & c[Uf >> 2]) << 1) << 2); c[tg >> 2] = (c[Vf >> 2] | 0) >>> 0 < (c[Wf >> 2] | 0) >>> 0 ? c[Vf >> 2] | 0 : c[Wf >> 2] | 0; if ( c[Ef >> 2] | 0 ? (((c[Rf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) >>> 0 < (c[Yf >> 2] | 0) >>> 0 : 0 ) { c[ug >> 2] = (c[Xf >> 2] | 0) + (c[Rf >> 2] | 0); aj = Uj( ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0, ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; c[tg >> 2] = (c[tg >> 2] | 0) + aj; if ( (((c[Rf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) >>> 0 >= (c[Yf >> 2] | 0) >>> 0 ) c[ug >> 2] = (c[Lf >> 2] | 0) + (c[Rf >> 2] | 0); } else { c[ug >> 2] = (c[Lf >> 2] | 0) + (c[Rf >> 2] | 0); aj = Tj( ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0, ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) | 0, c[Df >> 2] | 0 ) | 0; c[tg >> 2] = (c[tg >> 2] | 0) + aj; } if ( (c[tg >> 2] | 0) >>> 0 > (c[hg >> 2] | 0) >>> 0 ) { if ( (c[tg >> 2] | 0) >>> 0 > (((c[dg >> 2] | 0) - (c[Rf >> 2] | 0)) | 0) >>> 0 ) c[dg >> 2] = (c[Rf >> 2] | 0) + (c[tg >> 2] | 0); c[hg >> 2] = c[tg >> 2]; c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3)) >> 2 ] = (c[Mf >> 2] | 0) - (c[Rf >> 2] | 0) + 2; c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3) + 4) >> 2 ] = c[tg >> 2]; c[fg >> 2] = (c[fg >> 2] | 0) + 1; if ((c[tg >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) == (c[Df >> 2] | 0) ) break; } aj = c[Rf >> 2] | 0; if ( (d[ ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[bg >> 2] >> 2] = aj; c[Vf >> 2] = c[tg >> 2]; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[$f >> 2] | 0) >>> 0 ) { dj = 109; break; } c[bg >> 2] = (c[sg >> 2] | 0) + 4; c[Rf >> 2] = c[((c[sg >> 2] | 0) + 4) >> 2]; } else { c[c[cg >> 2] >> 2] = aj; c[Wf >> 2] = c[tg >> 2]; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[$f >> 2] | 0) >>> 0 ) { dj = 112; break; } c[cg >> 2] = c[sg >> 2]; c[Rf >> 2] = c[c[sg >> 2] >> 2]; } } if ((dj | 0) == 109) { dj = 0; c[bg >> 2] = eg; } else if ((dj | 0) == 112) { dj = 0; c[cg >> 2] = eg; } c[c[cg >> 2] >> 2] = 0; c[c[bg >> 2] >> 2] = 0; c[((c[Af >> 2] | 0) + 24) >> 2] = (c[dg >> 2] | 0) - 8; c[zf >> 2] = c[fg >> 2]; } } while (0); c[Ah >> 2] = c[zf >> 2]; break a; } } } } while (0); c[ki >> 2] = c[Ah >> 2]; if (!(c[ki >> 2] | 0)) { c[Vh >> 2] = (c[Vh >> 2] | 0) + 1; continue; } c[li >> 2] = 0; while (1) { if ((c[li >> 2] | 0) >>> 0 >= 3) break; c[((c[bi >> 2] | 0) + 16 + (c[li >> 2] << 2)) >> 2] = c[((c[Nh >> 2] | 0) + (c[li >> 2] << 2)) >> 2]; c[li >> 2] = (c[li >> 2] | 0) + 1; } c[((c[bi >> 2] | 0) + 8) >> 2] = 1; c[((c[bi >> 2] | 0) + 12) >> 2] = c[ii >> 2]; c[mi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[ki >> 2] | 0) - 1) << 3) + 4) >> 2 ]; do { if ((c[mi >> 2] | 0) >>> 0 <= (c[$h >> 2] | 0) >>> 0) { c[ni >> 2] = om( di, c[Wh >> 2] | 0, c[ii >> 2] | 0, c[Th >> 2] | 0 ) | 0; c[oi >> 2] = 0; while (1) { if ((c[oi >> 2] | 0) >>> 0 >= (c[ai >> 2] | 0) >>> 0) break; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 8) >> 2 ] = 1; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0)) >> 2 ] = 1073741824; c[oi >> 2] = (c[oi >> 2] | 0) + 1; } c[pi >> 2] = 0; while (1) { if ((c[pi >> 2] | 0) >>> 0 >= (c[ki >> 2] | 0) >>> 0) break; c[qi >> 2] = c[((c[ci >> 2] | 0) + (c[pi >> 2] << 3)) >> 2]; c[ri >> 2] = c[((c[ci >> 2] | 0) + (c[pi >> 2] << 3) + 4) >> 2]; pm( si, c[Nh >> 2] | 0, c[qi >> 2] | 0, c[ji >> 2] | 0 ); while (1) { if ((c[oi >> 2] | 0) >>> 0 > (c[ri >> 2] | 0) >>> 0) break; aj = c[ni >> 2] | 0; Zh = c[oi >> 2] | 0; Uh = c[Th >> 2] | 0; _i = c[Rh >> 2] | 0; c[yd >> 2] = c[qi >> 2]; c[zd >> 2] = Zh; c[Ad >> 2] = Uh; c[Bd >> 2] = _i; c[Dd >> 2] = qm(((c[yd >> 2] | 0) + 1) | 0) | 0; c[Ed >> 2] = (c[zd >> 2] | 0) - 3; if (c[((c[Ad >> 2] | 0) + 56) >> 2] | 0) { _i = ((qm(((c[Ed >> 2] | 0) + 1) | 0) | 0) + 16) | 0; c[xd >> 2] = _i + (c[Dd >> 2] | 0); } else { _i = ((c[Dd >> 2] | 0) + (c[((c[Ad >> 2] | 0) + 52) >> 2] | 0)) | 0; c[Cd >> 2] = _i - (qm( ((c[ ((c[((c[Ad >> 2] | 0) + 12) >> 2] | 0) + (c[Dd >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); if ( ((c[Bd >> 2] | 0) < 2) & ((c[Dd >> 2] | 0) >>> 0 >= 20) ) c[Cd >> 2] = (c[Cd >> 2] | 0) + (((c[Dd >> 2] | 0) - 19) << 1); c[Fd >> 2] = rm(c[Ed >> 2] | 0) | 0; _i = ((c[(5840 + (c[Fd >> 2] << 2)) >> 2] | 0) + (c[((c[Ad >> 2] | 0) + 48) >> 2] | 0)) | 0; Uh = (_i - (qm( ((c[ ((c[((c[Ad >> 2] | 0) + 8) >> 2] | 0) + (c[Fd >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0)) | 0; c[Cd >> 2] = (c[Cd >> 2] | 0) + Uh; c[xd >> 2] = c[Cd >> 2]; } c[ti >> 2] = aj + (c[xd >> 2] | 0); c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[oi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[qi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[ii >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0)) >> 2 ] = c[ti >> 2]; aj = ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 16) | 0; c[aj >> 2] = c[si >> 2]; c[(aj + 4) >> 2] = c[(si + 4) >> 2]; c[(aj + 8) >> 2] = c[(si + 8) >> 2]; c[oi >> 2] = (c[oi >> 2] | 0) + 1; } c[pi >> 2] = (c[pi >> 2] | 0) + 1; } c[fi >> 2] = (c[oi >> 2] | 0) - 1; c[ei >> 2] = 1; b: while (1) { if ((c[ei >> 2] | 0) >>> 0 > (c[fi >> 2] | 0) >>> 0) { dj = 504; break; } c[ui >> 2] = (c[Vh >> 2] | 0) + (c[ei >> 2] | 0); if ( (c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 8) >> 2 ] | 0) == 1 ) oj = ((c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 12) >> 2 ] | 0) + 1) | 0; else oj = 1; c[vi >> 2] = oj; if ((c[ei >> 2] | 0) >>> 0 > (c[vi >> 2] | 0) >>> 0) { aj = c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - (c[vi >> 2] | 0)) | 0) * 28) | 0)) >> 2 ] | 0; c[wi >> 2] = aj + (sm( ((c[ui >> 2] | 0) + (0 - (c[vi >> 2] | 0))) | 0, c[vi >> 2] | 0, c[Th >> 2] | 0 ) | 0); } else c[wi >> 2] = tm( di, c[Wh >> 2] | 0, c[vi >> 2] | 0, c[Th >> 2] | 0 ) | 0; if ( (c[wi >> 2] | 0) <= (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] | 0) ) { c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] = 1; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 4) >> 2 ] = 0; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[vi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] = c[wi >> 2]; aj = ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0; Uh = ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 16) | 0; c[aj >> 2] = c[Uh >> 2]; c[(aj + 4) >> 2] = c[(Uh + 4) >> 2]; c[(aj + 8) >> 2] = c[(Uh + 8) >> 2]; } c: do { if ( (c[ui >> 2] | 0) >>> 0 <= (c[Yh >> 2] | 0) >>> 0 ) { if ((c[ei >> 2] | 0) == (c[fi >> 2] | 0)) { dj = 504; break b; } if ( (c[Rh >> 2] | 0) == 0 ? (c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) + 1) | 0) * 28) | 0)) >> 2 ] | 0) <= (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] | 0) : 0 ) break; c[xi >> 2] = ((c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] | 0) != 1) & 1; if ( (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] | 0) == 1 ) pj = c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 12) >> 2 ] | 0; else pj = 0; c[yi >> 2] = pj; if ( (c[ei >> 2] | 0) >>> 0 > (c[yi >> 2] | 0) >>> 0 ) qj = c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - (c[yi >> 2] | 0)) | 0) * 28) | 0)) >> 2 ] | 0; else qj = 0; c[zi >> 2] = qj; Uh = c[zi >> 2] | 0; c[Ai >> 2] = Uh + (um( ((c[ui >> 2] | 0) + (0 - (c[yi >> 2] | 0))) | 0, c[yi >> 2] | 0, c[Th >> 2] | 0 ) | 0); Uh = c[Oh >> 2] | 0; aj = c[ui >> 2] | 0; _i = c[Xh >> 2] | 0; Zh = c[Sh >> 2] | 0; Zi = ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0; Ph = c[xi >> 2] | 0; Qh = c[ci >> 2] | 0; _h = c[ai >> 2] | 0; c[nd >> 2] = c[Lh >> 2]; c[od >> 2] = Uh; c[pd >> 2] = aj; c[qd >> 2] = _i; c[rd >> 2] = Zh; c[sd >> 2] = Zi; c[td >> 2] = Ph; c[ud >> 2] = Qh; c[vd >> 2] = _h; c[wd >> 2] = c[((c[od >> 2] | 0) + 16) >> 2]; d: do { if ( (c[pd >> 2] | 0) >>> 0 < (((c[((c[nd >> 2] | 0) + 4) >> 2] | 0) + (c[((c[nd >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) c[md >> 2] = 0; else { _h = c[od >> 2] | 0; Qh = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Zi = c[wd >> 2] | 0; Zh = c[rd >> 2] | 0; c[dd >> 2] = c[nd >> 2]; c[ed >> 2] = _h; c[fd >> 2] = Qh; c[gd >> 2] = Ph; c[hd >> 2] = Zi; c[id >> 2] = Zh; c[jd >> 2] = c[((c[dd >> 2] | 0) + 4) >> 2]; c[kd >> 2] = (c[fd >> 2] | 0) - (c[jd >> 2] | 0); c[ld >> 2] = c[((c[dd >> 2] | 0) + 24) >> 2]; while (1) { if ( (c[ld >> 2] | 0) >>> 0 >= (c[kd >> 2] | 0) >>> 0 ) break; Zh = Rj( c[dd >> 2] | 0, c[ed >> 2] | 0, ((c[jd >> 2] | 0) + (c[ld >> 2] | 0)) | 0, c[gd >> 2] | 0, c[hd >> 2] | 0, c[id >> 2] | 0 ) | 0; c[ld >> 2] = (c[ld >> 2] | 0) + Zh; } c[((c[dd >> 2] | 0) + 24) >> 2] = c[kd >> 2]; switch (c[wd >> 2] | 0) { case 3: { Zh = c[od >> 2] | 0; Zi = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Qh = c[rd >> 2] | 0; _h = c[sd >> 2] | 0; _i = c[td >> 2] | 0; aj = c[ud >> 2] | 0; Uh = c[vd >> 2] | 0; c[ic >> 2] = c[nd >> 2]; c[jc >> 2] = Zh; c[kc >> 2] = Zi; c[lc >> 2] = Ph; c[mc >> 2] = Qh; c[nc >> 2] = _h; c[oc >> 2] = _i; c[pc >> 2] = aj; c[qc >> 2] = Uh; c[rc >> 2] = 3; if ( (c[((c[jc >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) rj = c[((c[jc >> 2] | 0) + 20) >> 2] | 0; else rj = 4095; c[sc >> 2] = rj; c[tc >> 2] = c[((c[ic >> 2] | 0) + 4) >> 2]; c[uc >> 2] = (c[kc >> 2] | 0) - (c[tc >> 2] | 0); c[vc >> 2] = c[((c[jc >> 2] | 0) + 8) >> 2]; c[wc >> 2] = (c[rc >> 2] | 0) == 3 ? 3 : 4; c[xc >> 2] = c[((c[ic >> 2] | 0) + 36) >> 2]; c[yc >> 2] = Sj( c[kc >> 2] | 0, c[vc >> 2] | 0, c[rc >> 2] | 0 ) | 0; c[zc >> 2] = c[ ((c[xc >> 2] | 0) + (c[yc >> 2] << 2)) >> 2 ]; c[Ac >> 2] = c[((c[ic >> 2] | 0) + 44) >> 2]; c[Bc >> 2] = (c[((c[jc >> 2] | 0) + 4) >> 2] | 0) - 1; c[Cc >> 2] = (1 << c[Bc >> 2]) - 1; c[Dc >> 2] = 0; c[Ec >> 2] = 0; c[Fc >> 2] = c[((c[ic >> 2] | 0) + 8) >> 2]; c[Gc >> 2] = c[((c[ic >> 2] | 0) + 12) >> 2]; c[Hc >> 2] = (c[Fc >> 2] | 0) + (c[Gc >> 2] | 0); c[Ic >> 2] = (c[tc >> 2] | 0) + (c[Gc >> 2] | 0); if ( (c[Cc >> 2] | 0) >>> 0 >= (c[uc >> 2] | 0) >>> 0 ) sj = 0; else sj = ((c[uc >> 2] | 0) - (c[Cc >> 2] | 0)) | 0; c[Jc >> 2] = sj; c[Kc >> 2] = c[((c[ic >> 2] | 0) + 16) >> 2]; c[Lc >> 2] = (c[Ac >> 2] | 0) + (((c[uc >> 2] & c[Cc >> 2]) << 1) << 2); c[Mc >> 2] = (c[Ac >> 2] | 0) + (((c[uc >> 2] & c[Cc >> 2]) << 1) << 2) + 4; c[Nc >> 2] = (c[uc >> 2] | 0) + 8 + 1; c[Pc >> 2] = 0; c[Qc >> 2] = 1 << c[((c[jc >> 2] | 0) + 12) >> 2]; c[Rc >> 2] = (c[qc >> 2] | 0) - 1; c[Sc >> 2] = 3 + (c[oc >> 2] | 0); c[Tc >> 2] = c[oc >> 2]; while (1) { if ( (c[Tc >> 2] | 0) >>> 0 >= (c[Sc >> 2] | 0) >>> 0 ) { dj = 287; break; } Uh = c[nc >> 2] | 0; if ((c[Tc >> 2] | 0) == 3) tj = ((c[Uh >> 2] | 0) - 1) | 0; else tj = c[(Uh + (c[Tc >> 2] << 2)) >> 2] | 0; c[Uc >> 2] = tj; c[Vc >> 2] = (c[uc >> 2] | 0) - (c[Uc >> 2] | 0); c[Wc >> 2] = 0; do { if ( (((c[Uc >> 2] | 0) - 1) | 0) >>> 0 < (((c[uc >> 2] | 0) - (c[Gc >> 2] | 0)) | 0) >>> 0 ) { Uh = mm( c[kc >> 2] | 0, c[wc >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( ((c[kc >> 2] | 0) + (0 - (c[Uc >> 2] | 0))) | 0, c[wc >> 2] | 0 ) | 0) ) break; Uh = Tj( ((c[kc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, ((c[kc >> 2] | 0) + (c[wc >> 2] | 0) + (0 - (c[Uc >> 2] | 0))) | 0, c[lc >> 2] | 0 ) | 0; c[Wc >> 2] = Uh + (c[wc >> 2] | 0); } else { c[Xc >> 2] = (c[Fc >> 2] | 0) + (c[Vc >> 2] | 0); if (!(c[mc >> 2] | 0)) break; if ( !( ((((c[Gc >> 2] | 0) - 1 - (c[Vc >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[Uc >> 2] | 0) - 1) | 0) >>> 0 < (((c[uc >> 2] | 0) - (c[Kc >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Uh = mm( c[kc >> 2] | 0, c[wc >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( c[Xc >> 2] | 0, c[wc >> 2] | 0 ) | 0) ) break; Uh = Uj( ((c[kc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, ((c[Xc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; c[Wc >> 2] = Uh + (c[wc >> 2] | 0); } } while (0); if ( (c[Wc >> 2] | 0) >>> 0 > (c[Rc >> 2] | 0) >>> 0 ? ((c[Rc >> 2] = c[Wc >> 2]), (c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3)) >> 2 ] = (c[Tc >> 2] | 0) - (c[oc >> 2] | 0)), (c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3) + 4) >> 2 ] = c[Wc >> 2]), (c[Pc >> 2] = (c[Pc >> 2] | 0) + 1), ((c[Wc >> 2] | 0) >>> 0 > (c[sc >> 2] | 0) >>> 0 ? 1 : (((c[kc >> 2] | 0) + (c[Wc >> 2] | 0)) | 0) == (c[lc >> 2] | 0)) | 0) : 0 ) { dj = 285; break; } c[Tc >> 2] = (c[Tc >> 2] | 0) + 1; } e: do { if ((dj | 0) == 285) { dj = 0; c[hc >> 2] = c[Pc >> 2]; } else if ((dj | 0) == 287) { dj = 0; do { if ((c[rc >> 2] | 0) == 3) { if ( (c[Rc >> 2] | 0) >>> 0 >= (c[rc >> 2] | 0) >>> 0 ) break; c[Yc >> 2] = nm( c[ic >> 2] | 0, c[kc >> 2] | 0 ) | 0; if ( !( ((c[Yc >> 2] | 0) >>> 0 > (c[Kc >> 2] | 0) >>> 0 ? (((c[uc >> 2] | 0) - (c[Yc >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[mc >> 2] | 0) { if ( (c[Yc >> 2] | 0) >>> 0 >= (c[Gc >> 2] | 0) >>> 0 ) { dj = 292; break; } c[$c >> 2] = (c[Fc >> 2] | 0) + (c[Yc >> 2] | 0); c[Zc >> 2] = Uj( c[kc >> 2] | 0, c[$c >> 2] | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; } else dj = 292; } while (0); if ((dj | 0) == 292) { dj = 0; c[_c >> 2] = (c[tc >> 2] | 0) + (c[Yc >> 2] | 0); c[Zc >> 2] = Tj( c[kc >> 2] | 0, c[_c >> 2] | 0, c[lc >> 2] | 0 ) | 0; } if ( (c[Zc >> 2] | 0) >>> 0 < (c[rc >> 2] | 0) >>> 0 ) break; c[Rc >> 2] = c[Zc >> 2]; c[c[pc >> 2] >> 2] = (c[uc >> 2] | 0) - (c[Yc >> 2] | 0) + 2; c[((c[pc >> 2] | 0) + 4) >> 2] = c[Zc >> 2]; c[Pc >> 2] = 1; if ( !( ((c[Zc >> 2] | 0) >>> 0 > (c[sc >> 2] | 0) >>> 0 ? 1 : (((c[kc >> 2] | 0) + (c[Zc >> 2] | 0)) | 0) == (c[lc >> 2] | 0)) | 0 ) ) break; c[((c[ic >> 2] | 0) + 24) >> 2] = (c[uc >> 2] | 0) + 1; c[hc >> 2] = 1; break e; } } while (0); c[ ((c[xc >> 2] | 0) + (c[yc >> 2] << 2)) >> 2 ] = c[uc >> 2]; while (1) { Uh = c[Qc >> 2] | 0; c[Qc >> 2] = Uh + -1; if (!Uh) break; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Kc >> 2] | 0) >>> 0 ) break; c[ad >> 2] = (c[Ac >> 2] | 0) + (((c[zc >> 2] & c[Cc >> 2]) << 1) << 2); c[bd >> 2] = (c[Dc >> 2] | 0) >>> 0 < (c[Ec >> 2] | 0) >>> 0 ? c[Dc >> 2] | 0 : c[Ec >> 2] | 0; do { if (c[mc >> 2] | 0) { if ( (((c[zc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) >>> 0 >= (c[Gc >> 2] | 0) >>> 0 ) { dj = 302; break; } c[cd >> 2] = (c[Fc >> 2] | 0) + (c[zc >> 2] | 0); Uh = Uj( ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0, ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; c[bd >> 2] = (c[bd >> 2] | 0) + Uh; if ( (((c[zc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) >>> 0 < (c[Gc >> 2] | 0) >>> 0 ) break; c[cd >> 2] = (c[tc >> 2] | 0) + (c[zc >> 2] | 0); } else dj = 302; } while (0); if ((dj | 0) == 302) { dj = 0; c[cd >> 2] = (c[tc >> 2] | 0) + (c[zc >> 2] | 0); Uh = Tj( ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0, ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) | 0, c[lc >> 2] | 0 ) | 0; c[bd >> 2] = (c[bd >> 2] | 0) + Uh; } if ( (c[bd >> 2] | 0) >>> 0 > (c[Rc >> 2] | 0) >>> 0 ) { if ( (c[bd >> 2] | 0) >>> 0 > (((c[Nc >> 2] | 0) - (c[zc >> 2] | 0)) | 0) >>> 0 ) c[Nc >> 2] = (c[zc >> 2] | 0) + (c[bd >> 2] | 0); c[Rc >> 2] = c[bd >> 2]; c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3)) >> 2 ] = (c[uc >> 2] | 0) - (c[zc >> 2] | 0) + 2; c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3) + 4) >> 2 ] = c[bd >> 2]; c[Pc >> 2] = (c[Pc >> 2] | 0) + 1; if ((c[bd >> 2] | 0) >>> 0 > 4096) break; if ( (((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) == (c[lc >> 2] | 0) ) break; } Uh = c[zc >> 2] | 0; if ( (d[ ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Lc >> 2] >> 2] = Uh; c[Dc >> 2] = c[bd >> 2]; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Jc >> 2] | 0) >>> 0 ) { dj = 312; break; } c[Lc >> 2] = (c[ad >> 2] | 0) + 4; c[zc >> 2] = c[((c[ad >> 2] | 0) + 4) >> 2]; } else { c[c[Mc >> 2] >> 2] = Uh; c[Ec >> 2] = c[bd >> 2]; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Jc >> 2] | 0) >>> 0 ) { dj = 315; break; } c[Mc >> 2] = c[ad >> 2]; c[zc >> 2] = c[c[ad >> 2] >> 2]; } } if ((dj | 0) == 312) { dj = 0; c[Lc >> 2] = Oc; } else if ((dj | 0) == 315) { dj = 0; c[Mc >> 2] = Oc; } c[c[Mc >> 2] >> 2] = 0; c[c[Lc >> 2] >> 2] = 0; c[((c[ic >> 2] | 0) + 24) >> 2] = (c[Nc >> 2] | 0) - 8; c[hc >> 2] = c[Pc >> 2]; } } while (0); c[md >> 2] = c[hc >> 2]; break d; break; } case 7: case 6: { Uh = c[od >> 2] | 0; aj = c[pd >> 2] | 0; _i = c[qd >> 2] | 0; _h = c[rd >> 2] | 0; Qh = c[sd >> 2] | 0; Ph = c[td >> 2] | 0; Zi = c[ud >> 2] | 0; Zh = c[vd >> 2] | 0; c[u >> 2] = c[nd >> 2]; c[v >> 2] = Uh; c[w >> 2] = aj; c[x >> 2] = _i; c[y >> 2] = _h; c[z >> 2] = Qh; c[A >> 2] = Ph; c[B >> 2] = Zi; c[C >> 2] = Zh; c[D >> 2] = 6; if ( (c[((c[v >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) uj = c[((c[v >> 2] | 0) + 20) >> 2] | 0; else uj = 4095; c[E >> 2] = uj; c[F >> 2] = c[((c[u >> 2] | 0) + 4) >> 2]; c[G >> 2] = (c[w >> 2] | 0) - (c[F >> 2] | 0); c[H >> 2] = c[((c[v >> 2] | 0) + 8) >> 2]; c[I >> 2] = (c[D >> 2] | 0) == 3 ? 3 : 4; c[J >> 2] = c[((c[u >> 2] | 0) + 36) >> 2]; c[K >> 2] = Sj( c[w >> 2] | 0, c[H >> 2] | 0, c[D >> 2] | 0 ) | 0; c[L >> 2] = c[ ((c[J >> 2] | 0) + (c[K >> 2] << 2)) >> 2 ]; c[M >> 2] = c[((c[u >> 2] | 0) + 44) >> 2]; c[N >> 2] = (c[((c[v >> 2] | 0) + 4) >> 2] | 0) - 1; c[O >> 2] = (1 << c[N >> 2]) - 1; c[P >> 2] = 0; c[Q >> 2] = 0; c[R >> 2] = c[((c[u >> 2] | 0) + 8) >> 2]; c[S >> 2] = c[((c[u >> 2] | 0) + 12) >> 2]; c[T >> 2] = (c[R >> 2] | 0) + (c[S >> 2] | 0); c[U >> 2] = (c[F >> 2] | 0) + (c[S >> 2] | 0); if ( (c[O >> 2] | 0) >>> 0 >= (c[G >> 2] | 0) >>> 0 ) vj = 0; else vj = ((c[G >> 2] | 0) - (c[O >> 2] | 0)) | 0; c[V >> 2] = vj; c[W >> 2] = c[((c[u >> 2] | 0) + 16) >> 2]; c[X >> 2] = (c[M >> 2] | 0) + (((c[G >> 2] & c[O >> 2]) << 1) << 2); c[Y >> 2] = (c[M >> 2] | 0) + (((c[G >> 2] & c[O >> 2]) << 1) << 2) + 4; c[Z >> 2] = (c[G >> 2] | 0) + 8 + 1; c[$ >> 2] = 0; c[aa >> 2] = 1 << c[((c[v >> 2] | 0) + 12) >> 2]; c[ba >> 2] = (c[C >> 2] | 0) - 1; c[ca >> 2] = 3 + (c[A >> 2] | 0); c[da >> 2] = c[A >> 2]; while (1) { if ( (c[da >> 2] | 0) >>> 0 >= (c[ca >> 2] | 0) >>> 0 ) { dj = 446; break; } Zh = c[z >> 2] | 0; if ((c[da >> 2] | 0) == 3) wj = ((c[Zh >> 2] | 0) - 1) | 0; else wj = c[(Zh + (c[da >> 2] << 2)) >> 2] | 0; c[ea >> 2] = wj; c[fa >> 2] = (c[G >> 2] | 0) - (c[ea >> 2] | 0); c[ga >> 2] = 0; do { if ( (((c[ea >> 2] | 0) - 1) | 0) >>> 0 < (((c[G >> 2] | 0) - (c[S >> 2] | 0)) | 0) >>> 0 ) { Zh = mm(c[w >> 2] | 0, c[I >> 2] | 0) | 0; if ( (Zh | 0) != (mm( ((c[w >> 2] | 0) + (0 - (c[ea >> 2] | 0))) | 0, c[I >> 2] | 0 ) | 0) ) break; Zh = Tj( ((c[w >> 2] | 0) + (c[I >> 2] | 0)) | 0, ((c[w >> 2] | 0) + (c[I >> 2] | 0) + (0 - (c[ea >> 2] | 0))) | 0, c[x >> 2] | 0 ) | 0; c[ga >> 2] = Zh + (c[I >> 2] | 0); } else { c[ha >> 2] = (c[R >> 2] | 0) + (c[fa >> 2] | 0); if (!(c[y >> 2] | 0)) break; if ( !( ((((c[S >> 2] | 0) - 1 - (c[fa >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[ea >> 2] | 0) - 1) | 0) >>> 0 < (((c[G >> 2] | 0) - (c[W >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Zh = mm(c[w >> 2] | 0, c[I >> 2] | 0) | 0; if ( (Zh | 0) != (mm( c[ha >> 2] | 0, c[I >> 2] | 0 ) | 0) ) break; Zh = Uj( ((c[w >> 2] | 0) + (c[I >> 2] | 0)) | 0, ((c[ha >> 2] | 0) + (c[I >> 2] | 0)) | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[ga >> 2] = Zh + (c[I >> 2] | 0); } } while (0); if ( (c[ga >> 2] | 0) >>> 0 > (c[ba >> 2] | 0) >>> 0 ? ((c[ba >> 2] = c[ga >> 2]), (c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3)) >> 2 ] = (c[da >> 2] | 0) - (c[A >> 2] | 0)), (c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3) + 4) >> 2 ] = c[ga >> 2]), (c[$ >> 2] = (c[$ >> 2] | 0) + 1), ((c[ga >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0 ? 1 : (((c[w >> 2] | 0) + (c[ga >> 2] | 0)) | 0) == (c[x >> 2] | 0)) | 0) : 0 ) { dj = 444; break; } c[da >> 2] = (c[da >> 2] | 0) + 1; } f: do { if ((dj | 0) == 444) { dj = 0; c[t >> 2] = c[$ >> 2]; } else if ((dj | 0) == 446) { dj = 0; do { if ((c[D >> 2] | 0) == 3) { if ( (c[ba >> 2] | 0) >>> 0 >= (c[D >> 2] | 0) >>> 0 ) break; c[ia >> 2] = nm( c[u >> 2] | 0, c[w >> 2] | 0 ) | 0; if ( !( ((c[ia >> 2] | 0) >>> 0 > (c[W >> 2] | 0) >>> 0 ? (((c[G >> 2] | 0) - (c[ia >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[y >> 2] | 0) { if ( (c[ia >> 2] | 0) >>> 0 >= (c[S >> 2] | 0) >>> 0 ) { dj = 451; break; } c[la >> 2] = (c[R >> 2] | 0) + (c[ia >> 2] | 0); c[ja >> 2] = Uj( c[w >> 2] | 0, c[la >> 2] | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; } else dj = 451; } while (0); if ((dj | 0) == 451) { dj = 0; c[ka >> 2] = (c[F >> 2] | 0) + (c[ia >> 2] | 0); c[ja >> 2] = Tj( c[w >> 2] | 0, c[ka >> 2] | 0, c[x >> 2] | 0 ) | 0; } if ( (c[ja >> 2] | 0) >>> 0 < (c[D >> 2] | 0) >>> 0 ) break; c[ba >> 2] = c[ja >> 2]; c[c[B >> 2] >> 2] = (c[G >> 2] | 0) - (c[ia >> 2] | 0) + 2; c[((c[B >> 2] | 0) + 4) >> 2] = c[ja >> 2]; c[$ >> 2] = 1; if ( !( ((c[ja >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0 ? 1 : (((c[w >> 2] | 0) + (c[ja >> 2] | 0)) | 0) == (c[x >> 2] | 0)) | 0 ) ) break; c[((c[u >> 2] | 0) + 24) >> 2] = (c[G >> 2] | 0) + 1; c[t >> 2] = 1; break f; } } while (0); c[ ((c[J >> 2] | 0) + (c[K >> 2] << 2)) >> 2 ] = c[G >> 2]; while (1) { Zh = c[aa >> 2] | 0; c[aa >> 2] = Zh + -1; if (!Zh) break; if ( (c[L >> 2] | 0) >>> 0 <= (c[W >> 2] | 0) >>> 0 ) break; c[ma >> 2] = (c[M >> 2] | 0) + (((c[L >> 2] & c[O >> 2]) << 1) << 2); c[na >> 2] = (c[P >> 2] | 0) >>> 0 < (c[Q >> 2] | 0) >>> 0 ? c[P >> 2] | 0 : c[Q >> 2] | 0; do { if (c[y >> 2] | 0) { if ( (((c[L >> 2] | 0) + (c[na >> 2] | 0)) | 0) >>> 0 >= (c[S >> 2] | 0) >>> 0 ) { dj = 461; break; } c[oa >> 2] = (c[R >> 2] | 0) + (c[L >> 2] | 0); Zh = Uj( ((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0, ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[na >> 2] = (c[na >> 2] | 0) + Zh; if ( (((c[L >> 2] | 0) + (c[na >> 2] | 0)) | 0) >>> 0 < (c[S >> 2] | 0) >>> 0 ) break; c[oa >> 2] = (c[F >> 2] | 0) + (c[L >> 2] | 0); } else dj = 461; } while (0); if ((dj | 0) == 461) { dj = 0; c[oa >> 2] = (c[F >> 2] | 0) + (c[L >> 2] | 0); Zh = Tj( ((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0, ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) | 0, c[x >> 2] | 0 ) | 0; c[na >> 2] = (c[na >> 2] | 0) + Zh; } if ( (c[na >> 2] | 0) >>> 0 > (c[ba >> 2] | 0) >>> 0 ) { if ( (c[na >> 2] | 0) >>> 0 > (((c[Z >> 2] | 0) - (c[L >> 2] | 0)) | 0) >>> 0 ) c[Z >> 2] = (c[L >> 2] | 0) + (c[na >> 2] | 0); c[ba >> 2] = c[na >> 2]; c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3)) >> 2 ] = (c[G >> 2] | 0) - (c[L >> 2] | 0) + 2; c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3) + 4) >> 2 ] = c[na >> 2]; c[$ >> 2] = (c[$ >> 2] | 0) + 1; if ((c[na >> 2] | 0) >>> 0 > 4096) break; if ( (((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0) == (c[x >> 2] | 0) ) break; } Zh = c[L >> 2] | 0; if ( (d[ ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[w >> 2] | 0) + (c[na >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[X >> 2] >> 2] = Zh; c[P >> 2] = c[na >> 2]; if ( (c[L >> 2] | 0) >>> 0 <= (c[V >> 2] | 0) >>> 0 ) { dj = 471; break; } c[X >> 2] = (c[ma >> 2] | 0) + 4; c[L >> 2] = c[((c[ma >> 2] | 0) + 4) >> 2]; } else { c[c[Y >> 2] >> 2] = Zh; c[Q >> 2] = c[na >> 2]; if ( (c[L >> 2] | 0) >>> 0 <= (c[V >> 2] | 0) >>> 0 ) { dj = 474; break; } c[Y >> 2] = c[ma >> 2]; c[L >> 2] = c[c[ma >> 2] >> 2]; } } if ((dj | 0) == 471) { dj = 0; c[X >> 2] = _; } else if ((dj | 0) == 474) { dj = 0; c[Y >> 2] = _; } c[c[Y >> 2] >> 2] = 0; c[c[X >> 2] >> 2] = 0; c[((c[u >> 2] | 0) + 24) >> 2] = (c[Z >> 2] | 0) - 8; c[t >> 2] = c[$ >> 2]; } } while (0); c[md >> 2] = c[t >> 2]; break d; break; } case 5: { Zh = c[od >> 2] | 0; Zi = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Qh = c[rd >> 2] | 0; _h = c[sd >> 2] | 0; _i = c[td >> 2] | 0; aj = c[ud >> 2] | 0; Uh = c[vd >> 2] | 0; c[qa >> 2] = c[nd >> 2]; c[ra >> 2] = Zh; c[sa >> 2] = Zi; c[ta >> 2] = Ph; c[ua >> 2] = Qh; c[va >> 2] = _h; c[wa >> 2] = _i; c[xa >> 2] = aj; c[ya >> 2] = Uh; c[za >> 2] = 5; if ( (c[((c[ra >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) xj = c[((c[ra >> 2] | 0) + 20) >> 2] | 0; else xj = 4095; c[Aa >> 2] = xj; c[Ba >> 2] = c[((c[qa >> 2] | 0) + 4) >> 2]; c[Ca >> 2] = (c[sa >> 2] | 0) - (c[Ba >> 2] | 0); c[Da >> 2] = c[((c[ra >> 2] | 0) + 8) >> 2]; c[Ea >> 2] = (c[za >> 2] | 0) == 3 ? 3 : 4; c[Fa >> 2] = c[((c[qa >> 2] | 0) + 36) >> 2]; c[Ga >> 2] = Sj( c[sa >> 2] | 0, c[Da >> 2] | 0, c[za >> 2] | 0 ) | 0; c[Ha >> 2] = c[ ((c[Fa >> 2] | 0) + (c[Ga >> 2] << 2)) >> 2 ]; c[Ia >> 2] = c[((c[qa >> 2] | 0) + 44) >> 2]; c[Ja >> 2] = (c[((c[ra >> 2] | 0) + 4) >> 2] | 0) - 1; c[Ka >> 2] = (1 << c[Ja >> 2]) - 1; c[La >> 2] = 0; c[Ma >> 2] = 0; c[Na >> 2] = c[((c[qa >> 2] | 0) + 8) >> 2]; c[Oa >> 2] = c[((c[qa >> 2] | 0) + 12) >> 2]; c[Pa >> 2] = (c[Na >> 2] | 0) + (c[Oa >> 2] | 0); c[Qa >> 2] = (c[Ba >> 2] | 0) + (c[Oa >> 2] | 0); if ( (c[Ka >> 2] | 0) >>> 0 >= (c[Ca >> 2] | 0) >>> 0 ) yj = 0; else yj = ((c[Ca >> 2] | 0) - (c[Ka >> 2] | 0)) | 0; c[Ra >> 2] = yj; c[Sa >> 2] = c[((c[qa >> 2] | 0) + 16) >> 2]; c[Ta >> 2] = (c[Ia >> 2] | 0) + (((c[Ca >> 2] & c[Ka >> 2]) << 1) << 2); c[Ua >> 2] = (c[Ia >> 2] | 0) + (((c[Ca >> 2] & c[Ka >> 2]) << 1) << 2) + 4; c[Va >> 2] = (c[Ca >> 2] | 0) + 8 + 1; c[Xa >> 2] = 0; c[Ya >> 2] = 1 << c[((c[ra >> 2] | 0) + 12) >> 2]; c[Za >> 2] = (c[ya >> 2] | 0) - 1; c[_a >> 2] = 3 + (c[wa >> 2] | 0); c[$a >> 2] = c[wa >> 2]; while (1) { if ( (c[$a >> 2] | 0) >>> 0 >= (c[_a >> 2] | 0) >>> 0 ) { dj = 393; break; } Uh = c[va >> 2] | 0; if ((c[$a >> 2] | 0) == 3) zj = ((c[Uh >> 2] | 0) - 1) | 0; else zj = c[(Uh + (c[$a >> 2] << 2)) >> 2] | 0; c[ab >> 2] = zj; c[bb >> 2] = (c[Ca >> 2] | 0) - (c[ab >> 2] | 0); c[cb >> 2] = 0; do { if ( (((c[ab >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ca >> 2] | 0) - (c[Oa >> 2] | 0)) | 0) >>> 0 ) { Uh = mm( c[sa >> 2] | 0, c[Ea >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( ((c[sa >> 2] | 0) + (0 - (c[ab >> 2] | 0))) | 0, c[Ea >> 2] | 0 ) | 0) ) break; Uh = Tj( ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0) + (0 - (c[ab >> 2] | 0))) | 0, c[ta >> 2] | 0 ) | 0; c[cb >> 2] = Uh + (c[Ea >> 2] | 0); } else { c[db >> 2] = (c[Na >> 2] | 0) + (c[bb >> 2] | 0); if (!(c[ua >> 2] | 0)) break; if ( !( ((((c[Oa >> 2] | 0) - 1 - (c[bb >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[ab >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ca >> 2] | 0) - (c[Sa >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Uh = mm( c[sa >> 2] | 0, c[Ea >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( c[db >> 2] | 0, c[Ea >> 2] | 0 ) | 0) ) break; Uh = Uj( ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, ((c[db >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; c[cb >> 2] = Uh + (c[Ea >> 2] | 0); } } while (0); if ( (c[cb >> 2] | 0) >>> 0 > (c[Za >> 2] | 0) >>> 0 ? ((c[Za >> 2] = c[cb >> 2]), (c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3)) >> 2 ] = (c[$a >> 2] | 0) - (c[wa >> 2] | 0)), (c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3) + 4) >> 2 ] = c[cb >> 2]), (c[Xa >> 2] = (c[Xa >> 2] | 0) + 1), ((c[cb >> 2] | 0) >>> 0 > (c[Aa >> 2] | 0) >>> 0 ? 1 : (((c[sa >> 2] | 0) + (c[cb >> 2] | 0)) | 0) == (c[ta >> 2] | 0)) | 0) : 0 ) { dj = 391; break; } c[$a >> 2] = (c[$a >> 2] | 0) + 1; } g: do { if ((dj | 0) == 391) { dj = 0; c[pa >> 2] = c[Xa >> 2]; } else if ((dj | 0) == 393) { dj = 0; do { if ((c[za >> 2] | 0) == 3) { if ( (c[Za >> 2] | 0) >>> 0 >= (c[za >> 2] | 0) >>> 0 ) break; c[eb >> 2] = nm( c[qa >> 2] | 0, c[sa >> 2] | 0 ) | 0; if ( !( ((c[eb >> 2] | 0) >>> 0 > (c[Sa >> 2] | 0) >>> 0 ? (((c[Ca >> 2] | 0) - (c[eb >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[ua >> 2] | 0) { if ( (c[eb >> 2] | 0) >>> 0 >= (c[Oa >> 2] | 0) >>> 0 ) { dj = 398; break; } c[hb >> 2] = (c[Na >> 2] | 0) + (c[eb >> 2] | 0); c[fb >> 2] = Uj( c[sa >> 2] | 0, c[hb >> 2] | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; } else dj = 398; } while (0); if ((dj | 0) == 398) { dj = 0; c[gb >> 2] = (c[Ba >> 2] | 0) + (c[eb >> 2] | 0); c[fb >> 2] = Tj( c[sa >> 2] | 0, c[gb >> 2] | 0, c[ta >> 2] | 0 ) | 0; } if ( (c[fb >> 2] | 0) >>> 0 < (c[za >> 2] | 0) >>> 0 ) break; c[Za >> 2] = c[fb >> 2]; c[c[xa >> 2] >> 2] = (c[Ca >> 2] | 0) - (c[eb >> 2] | 0) + 2; c[((c[xa >> 2] | 0) + 4) >> 2] = c[fb >> 2]; c[Xa >> 2] = 1; if ( !( ((c[fb >> 2] | 0) >>> 0 > (c[Aa >> 2] | 0) >>> 0 ? 1 : (((c[sa >> 2] | 0) + (c[fb >> 2] | 0)) | 0) == (c[ta >> 2] | 0)) | 0 ) ) break; c[((c[qa >> 2] | 0) + 24) >> 2] = (c[Ca >> 2] | 0) + 1; c[pa >> 2] = 1; break g; } } while (0); c[ ((c[Fa >> 2] | 0) + (c[Ga >> 2] << 2)) >> 2 ] = c[Ca >> 2]; while (1) { Uh = c[Ya >> 2] | 0; c[Ya >> 2] = Uh + -1; if (!Uh) break; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Sa >> 2] | 0) >>> 0 ) break; c[ib >> 2] = (c[Ia >> 2] | 0) + (((c[Ha >> 2] & c[Ka >> 2]) << 1) << 2); c[jb >> 2] = (c[La >> 2] | 0) >>> 0 < (c[Ma >> 2] | 0) >>> 0 ? c[La >> 2] | 0 : c[Ma >> 2] | 0; do { if (c[ua >> 2] | 0) { if ( (((c[Ha >> 2] | 0) + (c[jb >> 2] | 0)) | 0) >>> 0 >= (c[Oa >> 2] | 0) >>> 0 ) { dj = 408; break; } c[kb >> 2] = (c[Na >> 2] | 0) + (c[Ha >> 2] | 0); Uh = Uj( ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0, ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; c[jb >> 2] = (c[jb >> 2] | 0) + Uh; if ( (((c[Ha >> 2] | 0) + (c[jb >> 2] | 0)) | 0) >>> 0 < (c[Oa >> 2] | 0) >>> 0 ) break; c[kb >> 2] = (c[Ba >> 2] | 0) + (c[Ha >> 2] | 0); } else dj = 408; } while (0); if ((dj | 0) == 408) { dj = 0; c[kb >> 2] = (c[Ba >> 2] | 0) + (c[Ha >> 2] | 0); Uh = Tj( ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0, ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) | 0, c[ta >> 2] | 0 ) | 0; c[jb >> 2] = (c[jb >> 2] | 0) + Uh; } if ( (c[jb >> 2] | 0) >>> 0 > (c[Za >> 2] | 0) >>> 0 ) { if ( (c[jb >> 2] | 0) >>> 0 > (((c[Va >> 2] | 0) - (c[Ha >> 2] | 0)) | 0) >>> 0 ) c[Va >> 2] = (c[Ha >> 2] | 0) + (c[jb >> 2] | 0); c[Za >> 2] = c[jb >> 2]; c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3)) >> 2 ] = (c[Ca >> 2] | 0) - (c[Ha >> 2] | 0) + 2; c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3) + 4) >> 2 ] = c[jb >> 2]; c[Xa >> 2] = (c[Xa >> 2] | 0) + 1; if ((c[jb >> 2] | 0) >>> 0 > 4096) break; if ( (((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0) == (c[ta >> 2] | 0) ) break; } Uh = c[Ha >> 2] | 0; if ( (d[ ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Ta >> 2] >> 2] = Uh; c[La >> 2] = c[jb >> 2]; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Ra >> 2] | 0) >>> 0 ) { dj = 418; break; } c[Ta >> 2] = (c[ib >> 2] | 0) + 4; c[Ha >> 2] = c[((c[ib >> 2] | 0) + 4) >> 2]; } else { c[c[Ua >> 2] >> 2] = Uh; c[Ma >> 2] = c[jb >> 2]; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Ra >> 2] | 0) >>> 0 ) { dj = 421; break; } c[Ua >> 2] = c[ib >> 2]; c[Ha >> 2] = c[c[ib >> 2] >> 2]; } } if ((dj | 0) == 418) { dj = 0; c[Ta >> 2] = Wa; } else if ((dj | 0) == 421) { dj = 0; c[Ua >> 2] = Wa; } c[c[Ua >> 2] >> 2] = 0; c[c[Ta >> 2] >> 2] = 0; c[((c[qa >> 2] | 0) + 24) >> 2] = (c[Va >> 2] | 0) - 8; c[pa >> 2] = c[Xa >> 2]; } } while (0); c[md >> 2] = c[pa >> 2]; break d; break; } default: { Uh = c[od >> 2] | 0; aj = c[pd >> 2] | 0; _i = c[qd >> 2] | 0; _h = c[rd >> 2] | 0; Qh = c[sd >> 2] | 0; Ph = c[td >> 2] | 0; Zi = c[ud >> 2] | 0; Zh = c[vd >> 2] | 0; c[mb >> 2] = c[nd >> 2]; c[nb >> 2] = Uh; c[ob >> 2] = aj; c[pb >> 2] = _i; c[qb >> 2] = _h; c[rb >> 2] = Qh; c[sb >> 2] = Ph; c[tb >> 2] = Zi; c[ub >> 2] = Zh; c[vb >> 2] = 4; if ( (c[((c[nb >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) Aj = c[((c[nb >> 2] | 0) + 20) >> 2] | 0; else Aj = 4095; c[wb >> 2] = Aj; c[xb >> 2] = c[((c[mb >> 2] | 0) + 4) >> 2]; c[yb >> 2] = (c[ob >> 2] | 0) - (c[xb >> 2] | 0); c[zb >> 2] = c[((c[nb >> 2] | 0) + 8) >> 2]; c[Ab >> 2] = (c[vb >> 2] | 0) == 3 ? 3 : 4; c[Bb >> 2] = c[((c[mb >> 2] | 0) + 36) >> 2]; c[Cb >> 2] = Sj( c[ob >> 2] | 0, c[zb >> 2] | 0, c[vb >> 2] | 0 ) | 0; c[Db >> 2] = c[ ((c[Bb >> 2] | 0) + (c[Cb >> 2] << 2)) >> 2 ]; c[Eb >> 2] = c[((c[mb >> 2] | 0) + 44) >> 2]; c[Fb >> 2] = (c[((c[nb >> 2] | 0) + 4) >> 2] | 0) - 1; c[Gb >> 2] = (1 << c[Fb >> 2]) - 1; c[Hb >> 2] = 0; c[Ib >> 2] = 0; c[Jb >> 2] = c[((c[mb >> 2] | 0) + 8) >> 2]; c[Kb >> 2] = c[((c[mb >> 2] | 0) + 12) >> 2]; c[Lb >> 2] = (c[Jb >> 2] | 0) + (c[Kb >> 2] | 0); c[Mb >> 2] = (c[xb >> 2] | 0) + (c[Kb >> 2] | 0); if ( (c[Gb >> 2] | 0) >>> 0 >= (c[yb >> 2] | 0) >>> 0 ) Bj = 0; else Bj = ((c[yb >> 2] | 0) - (c[Gb >> 2] | 0)) | 0; c[Nb >> 2] = Bj; c[Ob >> 2] = c[((c[mb >> 2] | 0) + 16) >> 2]; c[Pb >> 2] = (c[Eb >> 2] | 0) + (((c[yb >> 2] & c[Gb >> 2]) << 1) << 2); c[Qb >> 2] = (c[Eb >> 2] | 0) + (((c[yb >> 2] & c[Gb >> 2]) << 1) << 2) + 4; c[Rb >> 2] = (c[yb >> 2] | 0) + 8 + 1; c[Tb >> 2] = 0; c[Ub >> 2] = 1 << c[((c[nb >> 2] | 0) + 12) >> 2]; c[Vb >> 2] = (c[ub >> 2] | 0) - 1; c[Wb >> 2] = 3 + (c[sb >> 2] | 0); c[Xb >> 2] = c[sb >> 2]; while (1) { if ( (c[Xb >> 2] | 0) >>> 0 >= (c[Wb >> 2] | 0) >>> 0 ) { dj = 340; break; } Zh = c[rb >> 2] | 0; if ((c[Xb >> 2] | 0) == 3) Cj = ((c[Zh >> 2] | 0) - 1) | 0; else Cj = c[(Zh + (c[Xb >> 2] << 2)) >> 2] | 0; c[Yb >> 2] = Cj; c[Zb >> 2] = (c[yb >> 2] | 0) - (c[Yb >> 2] | 0); c[_b >> 2] = 0; do { if ( (((c[Yb >> 2] | 0) - 1) | 0) >>> 0 < (((c[yb >> 2] | 0) - (c[Kb >> 2] | 0)) | 0) >>> 0 ) { Zh = mm( c[ob >> 2] | 0, c[Ab >> 2] | 0 ) | 0; if ( (Zh | 0) != (mm( ((c[ob >> 2] | 0) + (0 - (c[Yb >> 2] | 0))) | 0, c[Ab >> 2] | 0 ) | 0) ) break; Zh = Tj( ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0) + (0 - (c[Yb >> 2] | 0))) | 0, c[pb >> 2] | 0 ) | 0; c[_b >> 2] = Zh + (c[Ab >> 2] | 0); } else { c[$b >> 2] = (c[Jb >> 2] | 0) + (c[Zb >> 2] | 0); if (!(c[qb >> 2] | 0)) break; if ( !( ((((c[Kb >> 2] | 0) - 1 - (c[Zb >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[Yb >> 2] | 0) - 1) | 0) >>> 0 < (((c[yb >> 2] | 0) - (c[Ob >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Zh = mm( c[ob >> 2] | 0, c[Ab >> 2] | 0 ) | 0; if ( (Zh | 0) != (mm( c[$b >> 2] | 0, c[Ab >> 2] | 0 ) | 0) ) break; Zh = Uj( ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, ((c[$b >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; c[_b >> 2] = Zh + (c[Ab >> 2] | 0); } } while (0); if ( (c[_b >> 2] | 0) >>> 0 > (c[Vb >> 2] | 0) >>> 0 ? ((c[Vb >> 2] = c[_b >> 2]), (c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3)) >> 2 ] = (c[Xb >> 2] | 0) - (c[sb >> 2] | 0)), (c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3) + 4) >> 2 ] = c[_b >> 2]), (c[Tb >> 2] = (c[Tb >> 2] | 0) + 1), ((c[_b >> 2] | 0) >>> 0 > (c[wb >> 2] | 0) >>> 0 ? 1 : (((c[ob >> 2] | 0) + (c[_b >> 2] | 0)) | 0) == (c[pb >> 2] | 0)) | 0) : 0 ) { dj = 338; break; } c[Xb >> 2] = (c[Xb >> 2] | 0) + 1; } h: do { if ((dj | 0) == 338) { dj = 0; c[lb >> 2] = c[Tb >> 2]; } else if ((dj | 0) == 340) { dj = 0; do { if ((c[vb >> 2] | 0) == 3) { if ( (c[Vb >> 2] | 0) >>> 0 >= (c[vb >> 2] | 0) >>> 0 ) break; c[ac >> 2] = nm( c[mb >> 2] | 0, c[ob >> 2] | 0 ) | 0; if ( !( ((c[ac >> 2] | 0) >>> 0 > (c[Ob >> 2] | 0) >>> 0 ? (((c[yb >> 2] | 0) - (c[ac >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[qb >> 2] | 0) { if ( (c[ac >> 2] | 0) >>> 0 >= (c[Kb >> 2] | 0) >>> 0 ) { dj = 345; break; } c[dc >> 2] = (c[Jb >> 2] | 0) + (c[ac >> 2] | 0); c[bc >> 2] = Uj( c[ob >> 2] | 0, c[dc >> 2] | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; } else dj = 345; } while (0); if ((dj | 0) == 345) { dj = 0; c[cc >> 2] = (c[xb >> 2] | 0) + (c[ac >> 2] | 0); c[bc >> 2] = Tj( c[ob >> 2] | 0, c[cc >> 2] | 0, c[pb >> 2] | 0 ) | 0; } if ( (c[bc >> 2] | 0) >>> 0 < (c[vb >> 2] | 0) >>> 0 ) break; c[Vb >> 2] = c[bc >> 2]; c[c[tb >> 2] >> 2] = (c[yb >> 2] | 0) - (c[ac >> 2] | 0) + 2; c[((c[tb >> 2] | 0) + 4) >> 2] = c[bc >> 2]; c[Tb >> 2] = 1; if ( !( ((c[bc >> 2] | 0) >>> 0 > (c[wb >> 2] | 0) >>> 0 ? 1 : (((c[ob >> 2] | 0) + (c[bc >> 2] | 0)) | 0) == (c[pb >> 2] | 0)) | 0 ) ) break; c[((c[mb >> 2] | 0) + 24) >> 2] = (c[yb >> 2] | 0) + 1; c[lb >> 2] = 1; break h; } } while (0); c[ ((c[Bb >> 2] | 0) + (c[Cb >> 2] << 2)) >> 2 ] = c[yb >> 2]; while (1) { Zh = c[Ub >> 2] | 0; c[Ub >> 2] = Zh + -1; if (!Zh) break; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Ob >> 2] | 0) >>> 0 ) break; c[ec >> 2] = (c[Eb >> 2] | 0) + (((c[Db >> 2] & c[Gb >> 2]) << 1) << 2); c[fc >> 2] = (c[Hb >> 2] | 0) >>> 0 < (c[Ib >> 2] | 0) >>> 0 ? c[Hb >> 2] | 0 : c[Ib >> 2] | 0; do { if (c[qb >> 2] | 0) { if ( (((c[Db >> 2] | 0) + (c[fc >> 2] | 0)) | 0) >>> 0 >= (c[Kb >> 2] | 0) >>> 0 ) { dj = 355; break; } c[gc >> 2] = (c[Jb >> 2] | 0) + (c[Db >> 2] | 0); Zh = Uj( ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0, ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; c[fc >> 2] = (c[fc >> 2] | 0) + Zh; if ( (((c[Db >> 2] | 0) + (c[fc >> 2] | 0)) | 0) >>> 0 < (c[Kb >> 2] | 0) >>> 0 ) break; c[gc >> 2] = (c[xb >> 2] | 0) + (c[Db >> 2] | 0); } else dj = 355; } while (0); if ((dj | 0) == 355) { dj = 0; c[gc >> 2] = (c[xb >> 2] | 0) + (c[Db >> 2] | 0); Zh = Tj( ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0, ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) | 0, c[pb >> 2] | 0 ) | 0; c[fc >> 2] = (c[fc >> 2] | 0) + Zh; } if ( (c[fc >> 2] | 0) >>> 0 > (c[Vb >> 2] | 0) >>> 0 ) { if ( (c[fc >> 2] | 0) >>> 0 > (((c[Rb >> 2] | 0) - (c[Db >> 2] | 0)) | 0) >>> 0 ) c[Rb >> 2] = (c[Db >> 2] | 0) + (c[fc >> 2] | 0); c[Vb >> 2] = c[fc >> 2]; c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3)) >> 2 ] = (c[yb >> 2] | 0) - (c[Db >> 2] | 0) + 2; c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3) + 4) >> 2 ] = c[fc >> 2]; c[Tb >> 2] = (c[Tb >> 2] | 0) + 1; if ((c[fc >> 2] | 0) >>> 0 > 4096) break; if ( (((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0) == (c[pb >> 2] | 0) ) break; } Zh = c[Db >> 2] | 0; if ( (d[ ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Pb >> 2] >> 2] = Zh; c[Hb >> 2] = c[fc >> 2]; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Nb >> 2] | 0) >>> 0 ) { dj = 365; break; } c[Pb >> 2] = (c[ec >> 2] | 0) + 4; c[Db >> 2] = c[((c[ec >> 2] | 0) + 4) >> 2]; } else { c[c[Qb >> 2] >> 2] = Zh; c[Ib >> 2] = c[fc >> 2]; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Nb >> 2] | 0) >>> 0 ) { dj = 368; break; } c[Qb >> 2] = c[ec >> 2]; c[Db >> 2] = c[c[ec >> 2] >> 2]; } } if ((dj | 0) == 365) { dj = 0; c[Pb >> 2] = Sb; } else if ((dj | 0) == 368) { dj = 0; c[Qb >> 2] = Sb; } c[c[Qb >> 2] >> 2] = 0; c[c[Pb >> 2] >> 2] = 0; c[((c[mb >> 2] | 0) + 24) >> 2] = (c[Rb >> 2] | 0) - 8; c[lb >> 2] = c[Tb >> 2]; } } while (0); c[md >> 2] = c[lb >> 2]; break d; } } } } while (0); c[Bi >> 2] = c[md >> 2]; if (c[Bi >> 2] | 0) { c[Di >> 2] = c[ ((c[ci >> 2] | 0) + (((c[Bi >> 2] | 0) - 1) << 3) + 4) >> 2 ]; if ( ((c[Di >> 2] | 0) >>> 0 > (c[$h >> 2] | 0) >>> 0 ? 1 : (((c[ei >> 2] | 0) + (c[Di >> 2] | 0)) | 0) >>> 0 >= 4096) | 0 ) { dj = 481; break b; } c[Ci >> 2] = 0; while (1) { if ( (c[Ci >> 2] | 0) >>> 0 >= (c[Bi >> 2] | 0) >>> 0 ) break c; c[Ei >> 2] = c[ ((c[ci >> 2] | 0) + (c[Ci >> 2] << 3)) >> 2 ]; pm( Fi, ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0, c[Ei >> 2] | 0, c[xi >> 2] | 0 ); c[Gi >> 2] = c[ ((c[ci >> 2] | 0) + (c[Ci >> 2] << 3) + 4) >> 2 ]; if ((c[Ci >> 2] | 0) >>> 0 > 0) Dj = ((c[ ((c[ci >> 2] | 0) + (((c[Ci >> 2] | 0) - 1) << 3) + 4) >> 2 ] | 0) + 1) | 0; else Dj = c[ai >> 2] | 0; c[Hi >> 2] = Dj; c[Ii >> 2] = c[Gi >> 2]; i: while (1) { if ( (c[Ii >> 2] | 0) >>> 0 < (c[Hi >> 2] | 0) >>> 0 ) break; c[Ji >> 2] = (c[ei >> 2] | 0) + (c[Ii >> 2] | 0); Zh = c[Ai >> 2] | 0; Zi = c[Ii >> 2] | 0; Ph = c[Th >> 2] | 0; Qh = c[Rh >> 2] | 0; c[k >> 2] = c[Ei >> 2]; c[m >> 2] = Zi; c[n >> 2] = Ph; c[o >> 2] = Qh; c[q >> 2] = qm(((c[k >> 2] | 0) + 1) | 0) | 0; c[r >> 2] = (c[m >> 2] | 0) - 3; if (c[((c[n >> 2] | 0) + 56) >> 2] | 0) { Qh = ((qm(((c[r >> 2] | 0) + 1) | 0) | 0) + 16) | 0; c[j >> 2] = Qh + (c[q >> 2] | 0); } else { Qh = ((c[q >> 2] | 0) + (c[((c[n >> 2] | 0) + 52) >> 2] | 0)) | 0; c[p >> 2] = Qh - (qm( ((c[ ((c[((c[n >> 2] | 0) + 12) >> 2] | 0) + (c[q >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); if ( ((c[o >> 2] | 0) < 2) & ((c[q >> 2] | 0) >>> 0 >= 20) ) c[p >> 2] = (c[p >> 2] | 0) + (((c[q >> 2] | 0) - 19) << 1); c[s >> 2] = rm(c[r >> 2] | 0) | 0; Qh = ((c[(5840 + (c[s >> 2] << 2)) >> 2] | 0) + (c[((c[n >> 2] | 0) + 48) >> 2] | 0)) | 0; Ph = (Qh - (qm( ((c[ ((c[((c[n >> 2] | 0) + 8) >> 2] | 0) + (c[s >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0)) | 0; c[p >> 2] = (c[p >> 2] | 0) + Ph; c[j >> 2] = c[p >> 2]; } c[Ki >> 2] = Zh + (c[j >> 2] | 0); do { if ( (c[Ji >> 2] | 0) >>> 0 <= (c[fi >> 2] | 0) >>> 0 ) { if ( (c[Ki >> 2] | 0) < (c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0)) >> 2 ] | 0) ) { dj = 496; break; } if (!(c[Rh >> 2] | 0)) break i; } else dj = 496; } while (0); if ((dj | 0) == 496) { dj = 0; while (1) { if ( (c[fi >> 2] | 0) >>> 0 >= (c[Ji >> 2] | 0) >>> 0 ) break; c[ ((c[bi >> 2] | 0) + (((((c[fi >> 2] | 0) + 1) | 0) * 28) | 0)) >> 2 ] = 1073741824; c[fi >> 2] = (c[fi >> 2] | 0) + 1; } c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[Ii >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[Ei >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[yi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0)) >> 2 ] = c[Ki >> 2]; Zh = ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 16) | 0; c[Zh >> 2] = c[Fi >> 2]; c[(Zh + 4) >> 2] = c[(Fi + 4) >> 2]; c[(Zh + 8) >> 2] = c[(Fi + 8) >> 2]; } c[Ii >> 2] = (c[Ii >> 2] | 0) + -1; } c[Ci >> 2] = (c[Ci >> 2] | 0) + 1; } } } } while (0); c[ei >> 2] = (c[ei >> 2] | 0) + 1; } if ((dj | 0) == 481) { dj = 0; c[gi >> 2] = c[Di >> 2]; c[hi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[Bi >> 2] | 0) - 1) << 3)) >> 2 ]; c[fi >> 2] = (c[ei >> 2] | 0) + 1; break; } else if ((dj | 0) == 504) { dj = 0; c[gi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[fi >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[hi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[fi >> 2] | 0) * 28) | 0) + 4) >> 2 ]; c[ei >> 2] = (c[fi >> 2] | 0) - (c[gi >> 2] | 0); break; } } else { c[gi >> 2] = c[mi >> 2]; c[hi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[ki >> 2] | 0) - 1) << 3)) >> 2 ]; c[ei >> 2] = 0; c[fi >> 2] = 1; } } while (0); c[Li >> 2] = c[gi >> 2]; c[Mi >> 2] = c[hi >> 2]; c[Ni >> 2] = c[ei >> 2]; while (1) { c[Oi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[Pi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 4) >> 2 ]; c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[Li >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[Mi >> 2]; c[Li >> 2] = c[Oi >> 2]; c[Mi >> 2] = c[Pi >> 2]; if ((c[Oi >> 2] | 0) >>> 0 > (c[Ni >> 2] | 0) >>> 0) break; c[Ni >> 2] = (c[Ni >> 2] | 0) - (c[Oi >> 2] | 0); } c[Qi >> 2] = 0; while (1) { if ((c[Qi >> 2] | 0) >>> 0 >= (c[fi >> 2] | 0) >>> 0) break; c[Ri >> 2] = (c[Vh >> 2] | 0) - (c[Wh >> 2] | 0); c[Si >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Qi >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[Ti >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Qi >> 2] | 0) * 28) | 0) + 4) >> 2 ]; if ((c[Si >> 2] | 0) == 1) { c[Vh >> 2] = (c[Vh >> 2] | 0) + 1; c[Qi >> 2] = (c[Qi >> 2] | 0) + 1; continue; } c[Qi >> 2] = (c[Qi >> 2] | 0) + (c[Si >> 2] | 0); c[Vh >> 2] = (c[Vh >> 2] | 0) + (c[Si >> 2] | 0); if ((c[Ti >> 2] | 0) >>> 0 < 3) { c[Ui >> 2] = (c[Ti >> 2] | 0) + (((c[Ri >> 2] | 0) == 0) & 1); if (c[Ui >> 2] | 0) { Zh = c[Nh >> 2] | 0; if ((c[Ui >> 2] | 0) == 3) Ej = ((c[Zh >> 2] | 0) - 1) | 0; else Ej = c[(Zh + (c[Ui >> 2] << 2)) >> 2] | 0; c[Vi >> 2] = Ej; if ((c[Ui >> 2] | 0) >>> 0 >= 2) c[((c[Nh >> 2] | 0) + 8) >> 2] = c[((c[Nh >> 2] | 0) + 4) >> 2]; c[((c[Nh >> 2] | 0) + 4) >> 2] = c[c[Nh >> 2] >> 2]; c[c[Nh >> 2] >> 2] = c[Vi >> 2]; } } else { c[((c[Nh >> 2] | 0) + 8) >> 2] = c[((c[Nh >> 2] | 0) + 4) >> 2]; c[((c[Nh >> 2] | 0) + 4) >> 2] = c[c[Nh >> 2] >> 2]; c[c[Nh >> 2] >> 2] = (c[Ti >> 2] | 0) - 2; } vm( c[Th >> 2] | 0, c[Ri >> 2] | 0, c[Wh >> 2] | 0, c[Ti >> 2] | 0, c[Si >> 2] | 0 ); wm( c[Mh >> 2] | 0, c[Ri >> 2] | 0, c[Wh >> 2] | 0, c[Ti >> 2] | 0, ((c[Si >> 2] | 0) - 3) | 0 ); c[Wh >> 2] = c[Vh >> 2]; } xm(c[Th >> 2] | 0); } l = i; return ((c[Xh >> 2] | 0) - (c[Wh >> 2] | 0)) | 0; } function lm(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = e; c[((c[g >> 2] | 0) + 56) >> 2] = 0; if (c[((c[g >> 2] | 0) + 28) >> 2] | 0) { c[((c[g >> 2] | 0) + 24) >> 2] = 0; c[k >> 2] = 0; while (1) { m = c[g >> 2] | 0; if ((c[k >> 2] | 0) >>> 0 > 255) break; c[((c[c[g >> 2] >> 2] | 0) + (c[k >> 2] << 2)) >> 2] = 1 + ((c[((c[m >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0) >>> 5); e = ((c[g >> 2] | 0) + 24) | 0; c[e >> 2] = (c[e >> 2] | 0) + (c[((c[c[g >> 2] >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0); c[k >> 2] = (c[k >> 2] | 0) + 1; } c[(m + 28) >> 2] = 0; c[k >> 2] = 0; while (1) { n = c[g >> 2] | 0; if ((c[k >> 2] | 0) >>> 0 > 35) break; c[ ((c[((c[g >> 2] | 0) + 4) >> 2] | 0) + (c[k >> 2] << 2)) >> 2 ] = 1 + ((c[((c[(n + 4) >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0) >>> 5); m = ((c[g >> 2] | 0) + 28) | 0; c[m >> 2] = (c[m >> 2] | 0) + (c[ ((c[((c[g >> 2] | 0) + 4) >> 2] | 0) + (c[k >> 2] << 2)) >> 2 ] | 0); c[k >> 2] = (c[k >> 2] | 0) + 1; } c[(n + 32) >> 2] = 0; c[k >> 2] = 0; while (1) { o = c[g >> 2] | 0; if ((c[k >> 2] | 0) >>> 0 > 52) break; c[ ((c[((c[g >> 2] | 0) + 8) >> 2] | 0) + (c[k >> 2] << 2)) >> 2 ] = 1 + ((c[((c[(o + 8) >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0) >>> 4); n = ((c[g >> 2] | 0) + 32) | 0; c[n >> 2] = (c[n >> 2] | 0) + (c[ ((c[((c[g >> 2] | 0) + 8) >> 2] | 0) + (c[k >> 2] << 2)) >> 2 ] | 0); c[k >> 2] = (c[k >> 2] | 0) + 1; } c[(o + 36) >> 2] = 0; c[k >> 2] = 0; while (1) { if ((c[k >> 2] | 0) >>> 0 > 31) break; c[ ((c[((c[g >> 2] | 0) + 12) >> 2] | 0) + (c[k >> 2] << 2)) >> 2 ] = 1 + ((c[ ((c[((c[g >> 2] | 0) + 12) >> 2] | 0) + (c[k >> 2] << 2)) >> 2 ] | 0) >>> 4); o = ((c[g >> 2] | 0) + 36) | 0; c[o >> 2] = (c[o >> 2] | 0) + (c[ ((c[((c[g >> 2] | 0) + 12) >> 2] | 0) + (c[k >> 2] << 2)) >> 2 ] | 0); c[k >> 2] = (c[k >> 2] | 0) + 1; } p = c[g >> 2] | 0; xm(p); l = f; return; } if ((c[i >> 2] | 0) >>> 0 <= 1024) c[((c[g >> 2] | 0) + 56) >> 2] = 1; c[j >> 2] = 0; while (1) { if ((c[j >> 2] | 0) >>> 0 > 255) break; c[((c[c[g >> 2] >> 2] | 0) + (c[j >> 2] << 2)) >> 2] = 0; c[j >> 2] = (c[j >> 2] | 0) + 1; } c[j >> 2] = 0; while (1) { q = c[g >> 2] | 0; if ((c[j >> 2] | 0) >>> 0 >= (c[i >> 2] | 0) >>> 0) break; k = ((c[q >> 2] | 0) + ((d[((c[h >> 2] | 0) + (c[j >> 2] | 0)) >> 0] | 0) << 2)) | 0; c[k >> 2] = (c[k >> 2] | 0) + 1; c[j >> 2] = (c[j >> 2] | 0) + 1; } c[(q + 24) >> 2] = 0; c[j >> 2] = 0; while (1) { if ((c[j >> 2] | 0) >>> 0 > 255) break; c[((c[c[g >> 2] >> 2] | 0) + (c[j >> 2] << 2)) >> 2] = 1 + ((c[((c[c[g >> 2] >> 2] | 0) + (c[j >> 2] << 2)) >> 2] | 0) >>> 4); q = ((c[g >> 2] | 0) + 24) | 0; c[q >> 2] = (c[q >> 2] | 0) + (c[((c[c[g >> 2] >> 2] | 0) + (c[j >> 2] << 2)) >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 1; } c[j >> 2] = 0; while (1) { r = c[g >> 2] | 0; if ((c[j >> 2] | 0) >>> 0 > 35) break; c[((c[(r + 4) >> 2] | 0) + (c[j >> 2] << 2)) >> 2] = 1; c[j >> 2] = (c[j >> 2] | 0) + 1; } c[(r + 28) >> 2] = 36; c[j >> 2] = 0; while (1) { s = c[g >> 2] | 0; if ((c[j >> 2] | 0) >>> 0 > 52) break; c[((c[(s + 8) >> 2] | 0) + (c[j >> 2] << 2)) >> 2] = 1; c[j >> 2] = (c[j >> 2] | 0) + 1; } c[(s + 32) >> 2] = 53; c[j >> 2] = 0; while (1) { t = c[g >> 2] | 0; if ((c[j >> 2] | 0) >>> 0 > 31) break; c[((c[(t + 12) >> 2] | 0) + (c[j >> 2] << 2)) >> 2] = 1; c[j >> 2] = (c[j >> 2] | 0) + 1; } c[(t + 36) >> 2] = 32; p = c[g >> 2] | 0; xm(p); l = f; return; } function mm(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[f >> 2] = a; c[g >> 2] = b; do { if ((c[g >> 2] | 0) == 3) { b = (_j() | 0) != 0; a = Yj(c[f >> 2] | 0) | 0; if (b) { c[e >> 2] = a << 8; break; } else { c[e >> 2] = a >>> 8; break; } } else c[e >> 2] = Yj(c[f >> 2] | 0) | 0; } while (0); l = d; return c[e >> 2] | 0; } function nm(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; d = l; l = (l + 32) | 0; e = (d + 28) | 0; f = (d + 24) | 0; g = (d + 20) | 0; h = (d + 16) | 0; i = (d + 12) | 0; j = (d + 8) | 0; k = (d + 4) | 0; m = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = c[((c[e >> 2] | 0) + 40) >> 2]; c[h >> 2] = c[((c[e >> 2] | 0) + 32) >> 2]; c[i >> 2] = c[((c[e >> 2] | 0) + 4) >> 2]; c[j >> 2] = c[((c[e >> 2] | 0) + 28) >> 2]; b = ((c[f >> 2] | 0) - (c[i >> 2] | 0)) | 0; c[((c[e >> 2] | 0) + 28) >> 2] = b; c[k >> 2] = b; c[m >> 2] = Fm(c[f >> 2] | 0, c[h >> 2] | 0) | 0; while (1) { if ((c[j >> 2] | 0) >>> 0 >= (c[k >> 2] | 0) >>> 0) break; f = c[j >> 2] | 0; b = c[g >> 2] | 0; c[ (b + ((Fm( ((c[i >> 2] | 0) + (c[j >> 2] | 0)) | 0, c[h >> 2] | 0 ) | 0) << 2)) >> 2 ] = f; c[j >> 2] = (c[j >> 2] | 0) + 1; } l = d; return c[((c[g >> 2] | 0) + (c[m >> 2] << 2)) >> 2] | 0; } function om(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0; f = l; l = (l + 16) | 0; g = (f + 12) | 0; h = (f + 8) | 0; i = (f + 4) | 0; j = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; e = Dm( c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0 ) | 0; h = (e + (Cm(c[i >> 2] | 0, c[j >> 2] | 0) | 0)) | 0; l = f; return h | 0; } function pm(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = e; if ((c[h >> 2] | 0) >>> 0 >= 3) { c[(j + 8) >> 2] = c[((c[g >> 2] | 0) + 4) >> 2]; c[(j + 4) >> 2] = c[c[g >> 2] >> 2]; c[j >> 2] = (c[h >> 2] | 0) - 2; c[a >> 2] = c[j >> 2]; c[(a + 4) >> 2] = c[(j + 4) >> 2]; c[(a + 8) >> 2] = c[(j + 8) >> 2]; l = f; return; } c[k >> 2] = (c[h >> 2] | 0) + (c[i >> 2] | 0); if ((c[k >> 2] | 0) >>> 0 <= 0) { i = c[g >> 2] | 0; c[j >> 2] = c[i >> 2]; c[(j + 4) >> 2] = c[(i + 4) >> 2]; c[(j + 8) >> 2] = c[(i + 8) >> 2]; c[a >> 2] = c[j >> 2]; c[(a + 4) >> 2] = c[(j + 4) >> 2]; c[(a + 8) >> 2] = c[(j + 8) >> 2]; l = f; return; } i = c[g >> 2] | 0; if ((c[k >> 2] | 0) == 3) n = ((c[i >> 2] | 0) - 1) | 0; else n = c[(i + (c[k >> 2] << 2)) >> 2] | 0; c[m >> 2] = n; n = c[g >> 2] | 0; if ((c[k >> 2] | 0) >>> 0 >= 2) o = c[(n + 4) >> 2] | 0; else o = c[(n + 8) >> 2] | 0; c[(j + 8) >> 2] = o; c[(j + 4) >> 2] = c[c[g >> 2] >> 2]; c[j >> 2] = c[m >> 2]; c[a >> 2] = c[j >> 2]; c[(a + 4) >> 2] = c[(j + 4) >> 2]; c[(a + 8) >> 2] = c[(j + 8) >> 2]; l = f; return; } function qm(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function rm(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; if ((c[e >> 2] | 0) >>> 0 > 127) { f = ((qm(a) | 0) + 36) | 0; l = b; return f | 0; } else { f = d[(3072 + a) >> 0] | 0; l = b; return f | 0; } return 0; } function sm(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = Bm(c[f >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0) | 0; c[i >> 2] = d + (Em(c[g >> 2] | 0, c[h >> 2] | 0) | 0); l = e; return c[i >> 2] | 0; } function tm(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; e = Dm( c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0 ) | 0; c[k >> 2] = e + (Em(c[i >> 2] | 0, c[j >> 2] | 0) | 0); l = f; return c[k >> 2] | 0; } function um(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; d = Bm(c[f >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0) | 0; f = (d + (Cm(c[g >> 2] | 0, c[h >> 2] | 0) | 0)) | 0; l = e; return f | 0; } function vm(a, b, e, f, g) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; h = l; l = (l + 48) | 0; i = (h + 36) | 0; j = (h + 32) | 0; k = (h + 28) | 0; m = (h + 24) | 0; n = (h + 20) | 0; o = (h + 16) | 0; p = (h + 12) | 0; q = (h + 8) | 0; r = (h + 4) | 0; s = h; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; c[o >> 2] = 0; while (1) { if ((c[o >> 2] | 0) >>> 0 >= (c[j >> 2] | 0) >>> 0) break; g = ((c[c[i >> 2] >> 2] | 0) + ((d[((c[k >> 2] | 0) + (c[o >> 2] | 0)) >> 0] | 0) << 2)) | 0; c[g >> 2] = (c[g >> 2] | 0) + 2; c[o >> 2] = (c[o >> 2] | 0) + 1; } o = ((c[i >> 2] | 0) + 24) | 0; c[o >> 2] = (c[o >> 2] | 0) + (c[j >> 2] << 1); c[p >> 2] = Am(c[j >> 2] | 0) | 0; j = ((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + (c[p >> 2] << 2)) | 0; c[j >> 2] = (c[j >> 2] | 0) + 1; j = ((c[i >> 2] | 0) + 28) | 0; c[j >> 2] = (c[j >> 2] | 0) + 1; c[q >> 2] = qm(((c[m >> 2] | 0) + 1) | 0) | 0; m = ((c[((c[i >> 2] | 0) + 12) >> 2] | 0) + (c[q >> 2] << 2)) | 0; c[m >> 2] = (c[m >> 2] | 0) + 1; m = ((c[i >> 2] | 0) + 36) | 0; c[m >> 2] = (c[m >> 2] | 0) + 1; c[r >> 2] = (c[n >> 2] | 0) - 3; c[s >> 2] = rm(c[r >> 2] | 0) | 0; r = ((c[((c[i >> 2] | 0) + 8) >> 2] | 0) + (c[s >> 2] << 2)) | 0; c[r >> 2] = (c[r >> 2] | 0) + 1; r = ((c[i >> 2] | 0) + 32) | 0; c[r >> 2] = (c[r >> 2] | 0) + 1; l = h; return; } function wm(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; ym( c[((c[i >> 2] | 0) + 12) >> 2] | 0, c[k >> 2] | 0, c[j >> 2] | 0 ); k = ((c[i >> 2] | 0) + 12) | 0; c[k >> 2] = (c[k >> 2] | 0) + (c[j >> 2] | 0); if ((c[j >> 2] | 0) >>> 0 > 65535) { c[((c[i >> 2] | 0) + 28) >> 2] = 1; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; } b[((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + 4) >> 1] = c[j >> 2]; c[c[((c[i >> 2] | 0) + 4) >> 2] >> 2] = (c[m >> 2] | 0) + 1; if ((c[n >> 2] | 0) >>> 0 <= 65535) { o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } c[((c[i >> 2] | 0) + 28) >> 2] = 2; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } function xm(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = qm(((c[((c[d >> 2] | 0) + 24) >> 2] | 0) + 1) | 0) | 0; c[((c[d >> 2] | 0) + 40) >> 2] = a; a = qm(((c[((c[d >> 2] | 0) + 28) >> 2] | 0) + 1) | 0) | 0; c[((c[d >> 2] | 0) + 44) >> 2] = a; a = qm(((c[((c[d >> 2] | 0) + 32) >> 2] | 0) + 1) | 0) | 0; c[((c[d >> 2] | 0) + 48) >> 2] = a; a = qm(((c[((c[d >> 2] | 0) + 36) >> 2] | 0) + 1) | 0) | 0; c[((c[d >> 2] | 0) + 52) >> 2] = a; l = b; return; } function ym(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { zm(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function zm(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function Am(a) { a = a | 0; var b = 0, e = 0, f = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; if ((c[e >> 2] | 0) >>> 0 > 63) { f = ((qm(a) | 0) + 19) | 0; l = b; return f | 0; } else { f = d[(3008 + a) >> 0] | 0; l = b; return f | 0; } return 0; } function Bm(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 32) | 0; g = (f + 20) | 0; h = (f + 16) | 0; i = (f + 12) | 0; j = (f + 8) | 0; k = (f + 4) | 0; m = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; e = c[i >> 2] | 0; if (c[((c[j >> 2] | 0) + 56) >> 2] | 0) { c[g >> 2] = e * 6; n = c[g >> 2] | 0; l = f; return n | 0; } if (!e) { c[g >> 2] = 0; n = c[g >> 2] | 0; l = f; return n | 0; } c[m >> 2] = N(c[i >> 2] | 0, c[((c[j >> 2] | 0) + 40) >> 2] | 0) | 0; c[k >> 2] = 0; while (1) { if ((c[k >> 2] | 0) >>> 0 >= (c[i >> 2] | 0) >>> 0) break; e = qm( ((c[ ((c[c[j >> 2] >> 2] | 0) + ((d[((c[h >> 2] | 0) + (c[k >> 2] | 0)) >> 0] | 0) << 2)) >> 2 ] | 0) + 1) | 0 ) | 0; c[m >> 2] = (c[m >> 2] | 0) - e; c[k >> 2] = (c[k >> 2] | 0) + 1; } c[g >> 2] = c[m >> 2]; n = c[g >> 2] | 0; l = f; return n | 0; } function Cm(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; d = l; l = (l + 32) | 0; e = (d + 16) | 0; f = (d + 12) | 0; g = (d + 8) | 0; h = (d + 4) | 0; i = d; c[f >> 2] = a; c[g >> 2] = b; b = c[f >> 2] | 0; if (c[((c[g >> 2] | 0) + 56) >> 2] | 0) { c[e >> 2] = qm((b + 1) | 0) | 0; j = c[e >> 2] | 0; l = d; return j | 0; } else { c[h >> 2] = Am(b) | 0; b = ((c[(5696 + (c[h >> 2] << 2)) >> 2] | 0) + (c[((c[g >> 2] | 0) + 44) >> 2] | 0)) | 0; c[i >> 2] = b - (qm( ((c[ ((c[((c[g >> 2] | 0) + 4) >> 2] | 0) + (c[h >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); c[e >> 2] = c[i >> 2]; j = c[e >> 2] | 0; l = d; return j | 0; } return 0; } function Dm(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; if ((c[h >> 2] | 0) == (c[c[g >> 2] >> 2] | 0)) { c[k >> 2] = c[((c[g >> 2] | 0) + 8) >> 2]; c[n >> 2] = (c[h >> 2] | 0) + (c[((c[g >> 2] | 0) + 4) >> 2] | 0); c[m >> 2] = (c[i >> 2] | 0) - (c[((c[g >> 2] | 0) + 4) >> 2] | 0); } else { c[k >> 2] = 0; c[n >> 2] = c[h >> 2]; c[m >> 2] = c[i >> 2]; } e = c[k >> 2] | 0; c[o >> 2] = e + (Bm(c[n >> 2] | 0, c[m >> 2] | 0, c[j >> 2] | 0) | 0); c[c[g >> 2] >> 2] = c[h >> 2]; c[((c[g >> 2] | 0) + 4) >> 2] = c[i >> 2]; c[((c[g >> 2] | 0) + 8) >> 2] = c[o >> 2]; l = f; return c[o >> 2] | 0; } function Em(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; d = l; l = (l + 32) | 0; e = (d + 16) | 0; f = (d + 12) | 0; g = (d + 8) | 0; h = (d + 4) | 0; i = d; c[f >> 2] = a; c[g >> 2] = b; b = c[f >> 2] | 0; if (c[((c[g >> 2] | 0) + 56) >> 2] | 0) { c[e >> 2] = qm((b + 1) | 0) | 0; j = c[e >> 2] | 0; l = d; return j | 0; } else { c[h >> 2] = Am(b) | 0; b = c[(5696 + (c[h >> 2] << 2)) >> 2] | 0; f = (b + (qm( ((c[c[((c[g >> 2] | 0) + 4) >> 2] >> 2] | 0) + 1) | 0 ) | 0)) | 0; c[i >> 2] = f - (qm( ((c[ ((c[((c[g >> 2] | 0) + 4) >> 2] | 0) + (c[h >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); c[e >> 2] = c[i >> 2]; j = c[e >> 2] | 0; l = d; return j | 0; } return 0; } function Fm(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = Gm(c[e >> 2] | 0) | 0; e = Hm(b, c[f >> 2] | 0) | 0; l = d; return e | 0; } function Gm(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (_j() | 0) != 0; f = Yj(c[e >> 2] | 0) | 0; if (a) { c[d >> 2] = f; g = c[d >> 2] | 0; l = b; return g | 0; } else { c[d >> 2] = Im(f) | 0; g = c[d >> 2] | 0; l = b; return g | 0; } return 0; } function Hm(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; b = N(c[e >> 2] << 8, 506832829) | 0; l = d; return (b >>> ((32 - (c[f >> 2] | 0)) | 0)) | 0; } function Im(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ( ((c[d >> 2] << 24) & -16777216) | ((c[d >> 2] << 8) & 16711680) | (((c[d >> 2] | 0) >>> 8) & 65280) | (((c[d >> 2] | 0) >>> 24) & 255) | 0 ); } function Jm(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; switch (c[((c[j >> 2] | 0) + 16) >> 2] | 0) { case 7: case 6: { c[h >> 2] = Vm( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 6 ) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } case 5: { c[h >> 2] = Vm( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 5 ) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } default: { c[h >> 2] = Vm( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 4 ) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } } return 0; } function Km(a, b, e, f, g) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0; h = l; l = (l + 320) | 0; i = (h + 308) | 0; j = (h + 304) | 0; k = (h + 300) | 0; m = (h + 296) | 0; n = (h + 292) | 0; o = (h + 288) | 0; p = (h + 284) | 0; q = (h + 280) | 0; r = (h + 276) | 0; s = (h + 272) | 0; t = (h + 268) | 0; u = (h + 264) | 0; v = (h + 260) | 0; w = (h + 256) | 0; x = (h + 252) | 0; y = (h + 248) | 0; z = (h + 244) | 0; A = (h + 240) | 0; B = (h + 236) | 0; C = (h + 232) | 0; D = (h + 228) | 0; E = (h + 224) | 0; F = (h + 220) | 0; G = (h + 216) | 0; H = (h + 212) | 0; I = (h + 208) | 0; J = (h + 204) | 0; K = (h + 200) | 0; L = (h + 196) | 0; M = (h + 192) | 0; N = (h + 188) | 0; O = (h + 184) | 0; P = (h + 180) | 0; Q = (h + 176) | 0; R = (h + 172) | 0; S = (h + 168) | 0; T = (h + 164) | 0; U = (h + 160) | 0; V = (h + 156) | 0; W = (h + 152) | 0; X = (h + 148) | 0; Y = (h + 144) | 0; Z = (h + 140) | 0; _ = (h + 136) | 0; $ = (h + 132) | 0; aa = (h + 128) | 0; ba = (h + 124) | 0; ca = (h + 120) | 0; da = (h + 116) | 0; ea = (h + 112) | 0; fa = (h + 108) | 0; ga = (h + 104) | 0; ha = (h + 100) | 0; ia = (h + 96) | 0; ja = (h + 92) | 0; ka = (h + 88) | 0; la = (h + 84) | 0; ma = (h + 80) | 0; na = (h + 76) | 0; oa = (h + 72) | 0; pa = (h + 68) | 0; qa = (h + 64) | 0; ra = (h + 60) | 0; sa = (h + 56) | 0; ta = (h + 52) | 0; ua = (h + 48) | 0; va = (h + 44) | 0; wa = (h + 40) | 0; xa = (h + 36) | 0; ya = (h + 32) | 0; za = (h + 28) | 0; Aa = (h + 24) | 0; Ba = (h + 20) | 0; Ca = (h + 16) | 0; Da = (h + 12) | 0; Ea = (h + 8) | 0; Fa = (h + 4) | 0; Ga = h; c[Ca >> 2] = a; c[Da >> 2] = b; c[Ea >> 2] = e; c[Fa >> 2] = f; c[Ga >> 2] = g; switch (c[((c[Da >> 2] | 0) + 16) >> 2] | 0) { case 7: case 6: { g = c[Da >> 2] | 0; f = c[Ea >> 2] | 0; e = c[Fa >> 2] | 0; b = c[Ga >> 2] | 0; c[i >> 2] = c[Ca >> 2]; c[j >> 2] = g; c[k >> 2] = f; c[m >> 2] = e; c[n >> 2] = b; c[o >> 2] = 6; c[p >> 2] = 1; c[q >> 2] = c[((c[i >> 2] | 0) + 44) >> 2]; c[r >> 2] = 1 << c[((c[j >> 2] | 0) + 4) >> 2]; c[s >> 2] = (c[r >> 2] | 0) - 1; c[t >> 2] = c[((c[i >> 2] | 0) + 4) >> 2]; c[u >> 2] = c[((c[i >> 2] | 0) + 8) >> 2]; c[v >> 2] = c[((c[i >> 2] | 0) + 12) >> 2]; c[w >> 2] = (c[t >> 2] | 0) + (c[v >> 2] | 0); c[x >> 2] = (c[u >> 2] | 0) + (c[v >> 2] | 0); c[y >> 2] = c[((c[i >> 2] | 0) + 16) >> 2]; c[z >> 2] = (c[k >> 2] | 0) - (c[t >> 2] | 0); if ((c[z >> 2] | 0) >>> 0 > (c[r >> 2] | 0) >>> 0) Ha = ((c[z >> 2] | 0) - (c[r >> 2] | 0)) | 0; else Ha = 0; c[A >> 2] = Ha; c[B >> 2] = 1 << c[((c[j >> 2] | 0) + 12) >> 2]; c[C >> 2] = 3; c[D >> 2] = mk( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[o >> 2] | 0 ) | 0; while (1) { if ( !( ((c[B >> 2] | 0) >>> 0 > 0 ? (c[D >> 2] | 0) >>> 0 > (c[y >> 2] | 0) >>> 0 : 0) | 0 ) ) break; c[E >> 2] = 0; if ( c[p >> 2] | 0 ? (c[D >> 2] | 0) >>> 0 < (c[v >> 2] | 0) >>> 0 : 0 ) { c[G >> 2] = (c[u >> 2] | 0) + (c[D >> 2] | 0); o = Bk(c[G >> 2] | 0) | 0; if ((o | 0) == (Bk(c[k >> 2] | 0) | 0)) c[E >> 2] = (Lm( ((c[k >> 2] | 0) + 4) | 0, ((c[G >> 2] | 0) + 4) | 0, c[m >> 2] | 0, c[x >> 2] | 0, c[w >> 2] | 0 ) | 0) + 4; } else Ia = 38; if ( (Ia | 0) == 38 ? ((Ia = 0), (c[F >> 2] = (c[t >> 2] | 0) + (c[D >> 2] | 0)), (d[((c[F >> 2] | 0) + (c[C >> 2] | 0)) >> 0] | 0 | 0) == (d[((c[k >> 2] | 0) + (c[C >> 2] | 0)) >> 0] | 0 | 0)) : 0 ) c[E >> 2] = Qm(c[k >> 2] | 0, c[F >> 2] | 0, c[m >> 2] | 0) | 0; if ( (c[E >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0 ? ((c[C >> 2] = c[E >> 2]), (c[c[n >> 2] >> 2] = (c[z >> 2] | 0) - (c[D >> 2] | 0) + 2), (((c[k >> 2] | 0) + (c[E >> 2] | 0)) | 0) == (c[m >> 2] | 0)) : 0 ) break; if ((c[D >> 2] | 0) >>> 0 <= (c[A >> 2] | 0) >>> 0) break; c[D >> 2] = c[ ((c[q >> 2] | 0) + ((c[D >> 2] & c[s >> 2]) << 2)) >> 2 ]; c[B >> 2] = (c[B >> 2] | 0) + -1; } c[Ba >> 2] = c[C >> 2]; Ja = c[Ba >> 2] | 0; l = h; return Ja | 0; } case 5: { C = c[Da >> 2] | 0; B = c[Ea >> 2] | 0; s = c[Fa >> 2] | 0; D = c[Ga >> 2] | 0; c[H >> 2] = c[Ca >> 2]; c[I >> 2] = C; c[J >> 2] = B; c[K >> 2] = s; c[L >> 2] = D; c[M >> 2] = 5; c[N >> 2] = 1; c[O >> 2] = c[((c[H >> 2] | 0) + 44) >> 2]; c[P >> 2] = 1 << c[((c[I >> 2] | 0) + 4) >> 2]; c[Q >> 2] = (c[P >> 2] | 0) - 1; c[R >> 2] = c[((c[H >> 2] | 0) + 4) >> 2]; c[S >> 2] = c[((c[H >> 2] | 0) + 8) >> 2]; c[T >> 2] = c[((c[H >> 2] | 0) + 12) >> 2]; c[U >> 2] = (c[R >> 2] | 0) + (c[T >> 2] | 0); c[V >> 2] = (c[S >> 2] | 0) + (c[T >> 2] | 0); c[W >> 2] = c[((c[H >> 2] | 0) + 16) >> 2]; c[X >> 2] = (c[J >> 2] | 0) - (c[R >> 2] | 0); if ((c[X >> 2] | 0) >>> 0 > (c[P >> 2] | 0) >>> 0) Ka = ((c[X >> 2] | 0) - (c[P >> 2] | 0)) | 0; else Ka = 0; c[Y >> 2] = Ka; c[Z >> 2] = 1 << c[((c[I >> 2] | 0) + 12) >> 2]; c[_ >> 2] = 3; c[$ >> 2] = mk( c[H >> 2] | 0, c[I >> 2] | 0, c[J >> 2] | 0, c[M >> 2] | 0 ) | 0; while (1) { if ( !( ((c[Z >> 2] | 0) >>> 0 > 0 ? (c[$ >> 2] | 0) >>> 0 > (c[W >> 2] | 0) >>> 0 : 0) | 0 ) ) break; c[aa >> 2] = 0; if ( c[N >> 2] | 0 ? (c[$ >> 2] | 0) >>> 0 < (c[T >> 2] | 0) >>> 0 : 0 ) { c[ca >> 2] = (c[S >> 2] | 0) + (c[$ >> 2] | 0); M = Bk(c[ca >> 2] | 0) | 0; if ((M | 0) == (Bk(c[J >> 2] | 0) | 0)) c[aa >> 2] = (Lm( ((c[J >> 2] | 0) + 4) | 0, ((c[ca >> 2] | 0) + 4) | 0, c[K >> 2] | 0, c[V >> 2] | 0, c[U >> 2] | 0 ) | 0) + 4; } else Ia = 23; if ( (Ia | 0) == 23 ? ((Ia = 0), (c[ba >> 2] = (c[R >> 2] | 0) + (c[$ >> 2] | 0)), (d[((c[ba >> 2] | 0) + (c[_ >> 2] | 0)) >> 0] | 0 | 0) == (d[((c[J >> 2] | 0) + (c[_ >> 2] | 0)) >> 0] | 0 | 0)) : 0 ) c[aa >> 2] = Qm(c[J >> 2] | 0, c[ba >> 2] | 0, c[K >> 2] | 0) | 0; if ( (c[aa >> 2] | 0) >>> 0 > (c[_ >> 2] | 0) >>> 0 ? ((c[_ >> 2] = c[aa >> 2]), (c[c[L >> 2] >> 2] = (c[X >> 2] | 0) - (c[$ >> 2] | 0) + 2), (((c[J >> 2] | 0) + (c[aa >> 2] | 0)) | 0) == (c[K >> 2] | 0)) : 0 ) break; if ((c[$ >> 2] | 0) >>> 0 <= (c[Y >> 2] | 0) >>> 0) break; c[$ >> 2] = c[ ((c[O >> 2] | 0) + ((c[$ >> 2] & c[Q >> 2]) << 2)) >> 2 ]; c[Z >> 2] = (c[Z >> 2] | 0) + -1; } c[Ba >> 2] = c[_ >> 2]; Ja = c[Ba >> 2] | 0; l = h; return Ja | 0; } default: { _ = c[Da >> 2] | 0; Da = c[Ea >> 2] | 0; Ea = c[Fa >> 2] | 0; Fa = c[Ga >> 2] | 0; c[da >> 2] = c[Ca >> 2]; c[ea >> 2] = _; c[fa >> 2] = Da; c[ga >> 2] = Ea; c[ha >> 2] = Fa; c[ia >> 2] = 4; c[ja >> 2] = 1; c[ka >> 2] = c[((c[da >> 2] | 0) + 44) >> 2]; c[la >> 2] = 1 << c[((c[ea >> 2] | 0) + 4) >> 2]; c[ma >> 2] = (c[la >> 2] | 0) - 1; c[na >> 2] = c[((c[da >> 2] | 0) + 4) >> 2]; c[oa >> 2] = c[((c[da >> 2] | 0) + 8) >> 2]; c[pa >> 2] = c[((c[da >> 2] | 0) + 12) >> 2]; c[qa >> 2] = (c[na >> 2] | 0) + (c[pa >> 2] | 0); c[ra >> 2] = (c[oa >> 2] | 0) + (c[pa >> 2] | 0); c[sa >> 2] = c[((c[da >> 2] | 0) + 16) >> 2]; c[ta >> 2] = (c[fa >> 2] | 0) - (c[na >> 2] | 0); if ((c[ta >> 2] | 0) >>> 0 > (c[la >> 2] | 0) >>> 0) La = ((c[ta >> 2] | 0) - (c[la >> 2] | 0)) | 0; else La = 0; c[ua >> 2] = La; c[va >> 2] = 1 << c[((c[ea >> 2] | 0) + 12) >> 2]; c[wa >> 2] = 3; c[xa >> 2] = mk( c[da >> 2] | 0, c[ea >> 2] | 0, c[fa >> 2] | 0, c[ia >> 2] | 0 ) | 0; while (1) { if ( !( ((c[va >> 2] | 0) >>> 0 > 0 ? (c[xa >> 2] | 0) >>> 0 > (c[sa >> 2] | 0) >>> 0 : 0) | 0 ) ) break; c[ya >> 2] = 0; if ( c[ja >> 2] | 0 ? (c[xa >> 2] | 0) >>> 0 < (c[pa >> 2] | 0) >>> 0 : 0 ) { c[Aa >> 2] = (c[oa >> 2] | 0) + (c[xa >> 2] | 0); ia = Bk(c[Aa >> 2] | 0) | 0; if ((ia | 0) == (Bk(c[fa >> 2] | 0) | 0)) c[ya >> 2] = (Lm( ((c[fa >> 2] | 0) + 4) | 0, ((c[Aa >> 2] | 0) + 4) | 0, c[ga >> 2] | 0, c[ra >> 2] | 0, c[qa >> 2] | 0 ) | 0) + 4; } else Ia = 8; if ( (Ia | 0) == 8 ? ((Ia = 0), (c[za >> 2] = (c[na >> 2] | 0) + (c[xa >> 2] | 0)), (d[((c[za >> 2] | 0) + (c[wa >> 2] | 0)) >> 0] | 0 | 0) == (d[((c[fa >> 2] | 0) + (c[wa >> 2] | 0)) >> 0] | 0 | 0)) : 0 ) c[ya >> 2] = Qm(c[fa >> 2] | 0, c[za >> 2] | 0, c[ga >> 2] | 0) | 0; if ( (c[ya >> 2] | 0) >>> 0 > (c[wa >> 2] | 0) >>> 0 ? ((c[wa >> 2] = c[ya >> 2]), (c[c[ha >> 2] >> 2] = (c[ta >> 2] | 0) - (c[xa >> 2] | 0) + 2), (((c[fa >> 2] | 0) + (c[ya >> 2] | 0)) | 0) == (c[ga >> 2] | 0)) : 0 ) break; if ((c[xa >> 2] | 0) >>> 0 <= (c[ua >> 2] | 0) >>> 0) break; c[xa >> 2] = c[ ((c[ka >> 2] | 0) + ((c[xa >> 2] & c[ma >> 2]) << 2)) >> 2 ]; c[va >> 2] = (c[va >> 2] | 0) + -1; } c[Ba >> 2] = c[wa >> 2]; Ja = c[Ba >> 2] | 0; l = h; return Ja | 0; } } return 0; } function Lm(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ( (((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0) >>> 0 < (c[k >> 2] | 0) >>> 0 ) q = ((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0; else q = c[k >> 2] | 0; c[o >> 2] = q; c[p >> 2] = Qm(c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0) | 0; o = c[p >> 2] | 0; if ( (((c[j >> 2] | 0) + (c[p >> 2] | 0)) | 0) != (c[m >> 2] | 0) ) { c[h >> 2] = o; r = c[h >> 2] | 0; l = g; return r | 0; } else { c[h >> 2] = o + (Qm( ((c[i >> 2] | 0) + (c[p >> 2] | 0)) | 0, c[n >> 2] | 0, c[k >> 2] | 0 ) | 0); r = c[h >> 2] | 0; l = g; return r | 0; } return 0; } function Mm(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; a = (31 - (Q(c[d >> 2] | 0) | 0)) | 0; l = b; return a | 0; } function Nm(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; Om( c[((c[i >> 2] | 0) + 12) >> 2] | 0, c[k >> 2] | 0, c[j >> 2] | 0 ); k = ((c[i >> 2] | 0) + 12) | 0; c[k >> 2] = (c[k >> 2] | 0) + (c[j >> 2] | 0); if ((c[j >> 2] | 0) >>> 0 > 65535) { c[((c[i >> 2] | 0) + 28) >> 2] = 1; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; } b[((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + 4) >> 1] = c[j >> 2]; c[c[((c[i >> 2] | 0) + 4) >> 2] >> 2] = (c[m >> 2] | 0) + 1; if ((c[n >> 2] | 0) >>> 0 <= 65535) { o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } c[((c[i >> 2] | 0) + 28) >> 2] = 2; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } function Om(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { Pm(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function Pm(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function Qm(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = c[h >> 2]; c[m >> 2] = (c[j >> 2] | 0) + -3; a: do { if ((c[h >> 2] | 0) >>> 0 < (c[m >> 2] | 0) >>> 0) { e = Rm(c[i >> 2] | 0) | 0; c[n >> 2] = e ^ (Rm(c[h >> 2] | 0) | 0); if (c[n >> 2] | 0) { c[g >> 2] = Sm(c[n >> 2] | 0) | 0; p = c[g >> 2] | 0; l = f; return p | 0; } c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; while (1) { if ((c[h >> 2] | 0) >>> 0 >= (c[m >> 2] | 0) >>> 0) break a; e = Rm(c[i >> 2] | 0) | 0; c[o >> 2] = e ^ (Rm(c[h >> 2] | 0) | 0); if (c[o >> 2] | 0) break; c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } e = Sm(c[o >> 2] | 0) | 0; c[h >> 2] = (c[h >> 2] | 0) + e; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } } while (0); if ( ( Tm() | 0 ? (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -3) | 0) >>> 0 : 0 ) ? ((o = Bk(c[i >> 2] | 0) | 0), (o | 0) == (Bk(c[h >> 2] | 0) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } if ( (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -1) | 0) >>> 0 ? ((o = (Um(c[i >> 2] | 0) | 0) & 65535), (o | 0) == (((Um(c[h >> 2] | 0) | 0) & 65535) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 2; c[i >> 2] = (c[i >> 2] | 0) + 2; } if ( (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? (d[c[i >> 2] >> 0] | 0 | 0) == (d[c[h >> 2] >> 0] | 0 | 0) : 0 ) c[h >> 2] = (c[h >> 2] | 0) + 1; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } function Rm(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function Sm(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (vk() | 0) != 0; f = (Tm() | 0) != 0; g = c[e >> 2] | 0; do { if (a) { if (f) { e = ob(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (fE(g | 0) | 0) >> 3; break; } } else if (f) { e = lE(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (Q(g | 0) | 0) >> 3; break; } } while (0); l = b; return c[d >> 2] | 0; } function Tm() { return 0; } function Um(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function Vm(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; h = l; l = (l + 32) | 0; i = (h + 24) | 0; j = (h + 20) | 0; k = (h + 16) | 0; m = (h + 12) | 0; n = (h + 8) | 0; o = (h + 4) | 0; p = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; if ( (c[m >> 2] | 0) >>> 0 < (((c[((c[j >> 2] | 0) + 4) >> 2] | 0) + (c[((c[j >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) { c[i >> 2] = 0; q = c[i >> 2] | 0; l = h; return q | 0; } else { Wm( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[p >> 2] | 0 ); c[i >> 2] = Xm( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, 1 ) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } return 0; } function Wm(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; g = l; l = (l + 80) | 0; h = (g + 64) | 0; i = (g + 60) | 0; j = (g + 56) | 0; k = (g + 48) | 0; m = (g + 44) | 0; n = (g + 40) | 0; o = (g + 36) | 0; p = (g + 32) | 0; q = (g + 28) | 0; r = (g + 24) | 0; s = (g + 20) | 0; t = (g + 16) | 0; u = (g + 12) | 0; v = (g + 8) | 0; w = (g + 4) | 0; x = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[(g + 52) >> 2] = e; c[k >> 2] = f; c[m >> 2] = c[((c[h >> 2] | 0) + 36) >> 2]; c[n >> 2] = c[((c[i >> 2] | 0) + 8) >> 2]; c[o >> 2] = c[((c[h >> 2] | 0) + 44) >> 2]; c[p >> 2] = (c[((c[i >> 2] | 0) + 4) >> 2] | 0) - 1; c[q >> 2] = (1 << c[p >> 2]) - 1; c[r >> 2] = c[((c[h >> 2] | 0) + 4) >> 2]; c[s >> 2] = (c[j >> 2] | 0) - (c[r >> 2] | 0); c[t >> 2] = c[((c[h >> 2] | 0) + 24) >> 2]; while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[s >> 2] | 0) >>> 0) break; c[u >> 2] = nk( ((c[r >> 2] | 0) + (c[t >> 2] | 0)) | 0, c[n >> 2] | 0, c[k >> 2] | 0 ) | 0; c[v >> 2] = c[((c[m >> 2] | 0) + (c[u >> 2] << 2)) >> 2]; c[w >> 2] = (c[o >> 2] | 0) + (((c[t >> 2] & c[q >> 2]) << 1) << 2); c[x >> 2] = (c[w >> 2] | 0) + 4; c[((c[m >> 2] | 0) + (c[u >> 2] << 2)) >> 2] = c[t >> 2]; c[c[w >> 2] >> 2] = c[v >> 2]; c[c[x >> 2] >> 2] = 1; c[t >> 2] = (c[t >> 2] | 0) + 1; } c[((c[h >> 2] | 0) + 24) >> 2] = c[s >> 2]; l = g; return; } function Xm(a, b, e, f, g, h, i) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0; j = l; l = (l + 176) | 0; k = (j + 160) | 0; m = (j + 156) | 0; n = (j + 152) | 0; o = (j + 148) | 0; p = (j + 144) | 0; q = (j + 140) | 0; r = (j + 136) | 0; s = (j + 132) | 0; t = (j + 128) | 0; u = (j + 124) | 0; v = (j + 120) | 0; w = (j + 116) | 0; x = (j + 112) | 0; y = (j + 108) | 0; z = (j + 104) | 0; A = (j + 100) | 0; B = (j + 96) | 0; C = (j + 92) | 0; D = (j + 88) | 0; E = (j + 84) | 0; F = (j + 80) | 0; G = (j + 76) | 0; H = (j + 72) | 0; I = (j + 68) | 0; J = (j + 64) | 0; K = (j + 60) | 0; L = (j + 56) | 0; M = (j + 52) | 0; N = (j + 48) | 0; O = (j + 44) | 0; P = (j + 40) | 0; Q = (j + 36) | 0; R = (j + 32) | 0; S = (j + 28) | 0; T = (j + 24) | 0; U = (j + 20) | 0; V = (j + 16) | 0; W = (j + 12) | 0; X = (j + 8) | 0; Y = (j + 4) | 0; Z = j; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; c[r >> 2] = i; c[s >> 2] = c[((c[k >> 2] | 0) + 36) >> 2]; c[t >> 2] = c[((c[m >> 2] | 0) + 8) >> 2]; c[u >> 2] = nk(c[n >> 2] | 0, c[t >> 2] | 0, c[q >> 2] | 0) | 0; c[v >> 2] = c[((c[s >> 2] | 0) + (c[u >> 2] << 2)) >> 2]; c[w >> 2] = c[((c[k >> 2] | 0) + 4) >> 2]; c[x >> 2] = (c[n >> 2] | 0) - (c[w >> 2] | 0); c[y >> 2] = c[((c[k >> 2] | 0) + 16) >> 2]; c[z >> 2] = c[((c[k >> 2] | 0) + 44) >> 2]; c[A >> 2] = (c[((c[m >> 2] | 0) + 4) >> 2] | 0) - 1; c[B >> 2] = (1 << c[A >> 2]) - 1; if ((c[B >> 2] | 0) >>> 0 >= (c[x >> 2] | 0) >>> 0) _ = 0; else _ = ((c[x >> 2] | 0) - (c[B >> 2] | 0)) | 0; c[C >> 2] = _; c[D >> 2] = (c[C >> 2] | 0) >>> 0 > (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[y >> 2] | 0; c[E >> 2] = (c[z >> 2] | 0) + (((c[v >> 2] & c[B >> 2]) << 1) << 2); c[F >> 2] = (c[z >> 2] | 0) + (((c[v >> 2] & c[B >> 2]) << 1) << 2) + 4; c[G >> 2] = 1 << c[((c[m >> 2] | 0) + 12) >> 2]; c[H >> 2] = c[G >> 2]; c[I >> 2] = 0; while (1) { if ((c[v >> 2] | 0) >>> 0 <= (c[D >> 2] | 0) >>> 0) break; if ( !((c[H >> 2] | 0) >>> 0 > 1 ? (c[c[F >> 2] >> 2] | 0) == 1 : 0) ) break; c[c[F >> 2] >> 2] = c[I >> 2]; c[I >> 2] = c[v >> 2]; c[v >> 2] = c[c[E >> 2] >> 2]; c[E >> 2] = (c[z >> 2] | 0) + (((c[v >> 2] & c[B >> 2]) << 1) << 2); c[F >> 2] = (c[z >> 2] | 0) + (((c[v >> 2] & c[B >> 2]) << 1) << 2) + 4; c[H >> 2] = (c[H >> 2] | 0) + -1; } if ( (c[v >> 2] | 0) >>> 0 > (c[D >> 2] | 0) >>> 0 ? (c[c[F >> 2] >> 2] | 0) == 1 : 0 ) { c[c[F >> 2] >> 2] = 0; c[c[E >> 2] >> 2] = 0; } c[v >> 2] = c[I >> 2]; while (1) { if (!(c[v >> 2] | 0)) break; c[J >> 2] = (c[z >> 2] | 0) + (((c[v >> 2] & c[B >> 2]) << 1) << 2) + 4; c[K >> 2] = c[c[J >> 2] >> 2]; Ym( c[k >> 2] | 0, c[m >> 2] | 0, c[v >> 2] | 0, c[o >> 2] | 0, c[H >> 2] | 0, c[D >> 2] | 0, c[r >> 2] | 0 ); c[v >> 2] = c[K >> 2]; c[H >> 2] = (c[H >> 2] | 0) + 1; } c[L >> 2] = 0; c[M >> 2] = 0; c[N >> 2] = c[((c[k >> 2] | 0) + 8) >> 2]; c[O >> 2] = c[((c[k >> 2] | 0) + 12) >> 2]; c[P >> 2] = (c[N >> 2] | 0) + (c[O >> 2] | 0); c[Q >> 2] = (c[w >> 2] | 0) + (c[O >> 2] | 0); c[R >> 2] = (c[z >> 2] | 0) + (((c[x >> 2] & c[B >> 2]) << 1) << 2); c[S >> 2] = (c[z >> 2] | 0) + (((c[x >> 2] & c[B >> 2]) << 1) << 2) + 4; c[T >> 2] = (c[x >> 2] | 0) + 8 + 1; c[V >> 2] = 0; c[v >> 2] = c[((c[s >> 2] | 0) + (c[u >> 2] << 2)) >> 2]; c[((c[s >> 2] | 0) + (c[u >> 2] << 2)) >> 2] = c[x >> 2]; while (1) { u = c[G >> 2] | 0; c[G >> 2] = u + -1; if (!u) break; if ((c[v >> 2] | 0) >>> 0 <= (c[y >> 2] | 0) >>> 0) break; c[W >> 2] = (c[z >> 2] | 0) + (((c[v >> 2] & c[B >> 2]) << 1) << 2); c[X >> 2] = (c[L >> 2] | 0) >>> 0 < (c[M >> 2] | 0) >>> 0 ? c[L >> 2] | 0 : c[M >> 2] | 0; if ( c[r >> 2] | 0 ? (((c[v >> 2] | 0) + (c[X >> 2] | 0)) | 0) >>> 0 < (c[O >> 2] | 0) >>> 0 : 0 ) { c[Y >> 2] = (c[N >> 2] | 0) + (c[v >> 2] | 0); u = Lm( ((c[n >> 2] | 0) + (c[X >> 2] | 0)) | 0, ((c[Y >> 2] | 0) + (c[X >> 2] | 0)) | 0, c[o >> 2] | 0, c[P >> 2] | 0, c[Q >> 2] | 0 ) | 0; c[X >> 2] = (c[X >> 2] | 0) + u; if ( (((c[v >> 2] | 0) + (c[X >> 2] | 0)) | 0) >>> 0 >= (c[O >> 2] | 0) >>> 0 ) c[Y >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); } else { c[Y >> 2] = (c[w >> 2] | 0) + (c[v >> 2] | 0); u = Qm( ((c[n >> 2] | 0) + (c[X >> 2] | 0)) | 0, ((c[Y >> 2] | 0) + (c[X >> 2] | 0)) | 0, c[o >> 2] | 0 ) | 0; c[X >> 2] = (c[X >> 2] | 0) + u; } if ((c[X >> 2] | 0) >>> 0 > (c[V >> 2] | 0) >>> 0) { if ( (c[X >> 2] | 0) >>> 0 > (((c[T >> 2] | 0) - (c[v >> 2] | 0)) | 0) >>> 0 ) c[T >> 2] = (c[v >> 2] | 0) + (c[X >> 2] | 0); u = ((c[X >> 2] | 0) - (c[V >> 2] | 0)) << 2; s = Mm(((c[x >> 2] | 0) - (c[v >> 2] | 0) + 1) | 0) | 0; if ( (u | 0) > ((s - (Mm(((c[c[p >> 2] >> 2] | 0) + 1) | 0) | 0)) | 0) ) { c[V >> 2] = c[X >> 2]; c[c[p >> 2] >> 2] = 2 + (c[x >> 2] | 0) - (c[v >> 2] | 0); } if ( (((c[n >> 2] | 0) + (c[X >> 2] | 0)) | 0) == (c[o >> 2] | 0) ) break; } s = c[v >> 2] | 0; if ( (d[((c[Y >> 2] | 0) + (c[X >> 2] | 0)) >> 0] | 0 | 0) < (d[((c[n >> 2] | 0) + (c[X >> 2] | 0)) >> 0] | 0 | 0) ) { c[c[R >> 2] >> 2] = s; c[L >> 2] = c[X >> 2]; if ((c[v >> 2] | 0) >>> 0 <= (c[C >> 2] | 0) >>> 0) { $ = 29; break; } c[R >> 2] = (c[W >> 2] | 0) + 4; c[v >> 2] = c[((c[W >> 2] | 0) + 4) >> 2]; } else { c[c[S >> 2] >> 2] = s; c[M >> 2] = c[X >> 2]; if ((c[v >> 2] | 0) >>> 0 <= (c[C >> 2] | 0) >>> 0) { $ = 32; break; } c[S >> 2] = c[W >> 2]; c[v >> 2] = c[c[W >> 2] >> 2]; } } if (($ | 0) == 29) c[R >> 2] = U; else if (($ | 0) == 32) c[S >> 2] = U; c[c[S >> 2] >> 2] = 0; c[c[R >> 2] >> 2] = 0; c[((c[k >> 2] | 0) + 24) >> 2] = (c[T >> 2] | 0) - 8; if ((c[V >> 2] | 0) >>> 0 < 3) { aa = c[V >> 2] | 0; l = j; return aa | 0; } c[Z >> 2] = (c[x >> 2] | 0) - ((c[c[p >> 2] >> 2] | 0) - 2); aa = c[V >> 2] | 0; l = j; return aa | 0; } function Ym(a, b, e, f, g, h, i) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0; j = l; l = (l + 112) | 0; k = (j + 108) | 0; m = (j + 104) | 0; n = (j + 100) | 0; o = (j + 96) | 0; p = (j + 92) | 0; q = (j + 88) | 0; r = (j + 84) | 0; s = (j + 80) | 0; t = (j + 76) | 0; u = (j + 72) | 0; v = (j + 68) | 0; w = (j + 64) | 0; x = (j + 60) | 0; y = (j + 56) | 0; z = (j + 52) | 0; A = (j + 48) | 0; B = (j + 44) | 0; C = (j + 40) | 0; D = (j + 36) | 0; E = (j + 32) | 0; F = (j + 28) | 0; G = (j + 24) | 0; H = (j + 20) | 0; I = (j + 16) | 0; J = (j + 12) | 0; K = (j + 8) | 0; L = (j + 4) | 0; M = j; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; c[r >> 2] = i; c[s >> 2] = c[((c[k >> 2] | 0) + 44) >> 2]; c[t >> 2] = (c[((c[m >> 2] | 0) + 4) >> 2] | 0) - 1; c[u >> 2] = (1 << c[t >> 2]) - 1; c[v >> 2] = 0; c[w >> 2] = 0; c[x >> 2] = c[((c[k >> 2] | 0) + 4) >> 2]; c[y >> 2] = c[((c[k >> 2] | 0) + 8) >> 2]; c[z >> 2] = c[((c[k >> 2] | 0) + 12) >> 2]; c[A >> 2] = (c[n >> 2] | 0) >>> 0 >= (c[z >> 2] | 0) >>> 0 ? ((c[x >> 2] | 0) + (c[n >> 2] | 0)) | 0 : ((c[y >> 2] | 0) + (c[n >> 2] | 0)) | 0; c[B >> 2] = (c[n >> 2] | 0) >>> 0 >= (c[z >> 2] | 0) >>> 0 ? c[o >> 2] | 0 : ((c[y >> 2] | 0) + (c[z >> 2] | 0)) | 0; c[C >> 2] = (c[y >> 2] | 0) + (c[z >> 2] | 0); c[D >> 2] = (c[x >> 2] | 0) + (c[z >> 2] | 0); c[F >> 2] = (c[s >> 2] | 0) + (((c[n >> 2] & c[u >> 2]) << 1) << 2); c[G >> 2] = (c[F >> 2] | 0) + 4; c[H >> 2] = c[c[F >> 2] >> 2]; c[J >> 2] = c[((c[k >> 2] | 0) + 16) >> 2]; while (1) { k = c[p >> 2] | 0; c[p >> 2] = k + -1; if (!k) { N = 23; break; } if ((c[H >> 2] | 0) >>> 0 <= (c[J >> 2] | 0) >>> 0) { N = 23; break; } c[K >> 2] = (c[s >> 2] | 0) + (((c[H >> 2] & c[u >> 2]) << 1) << 2); c[L >> 2] = (c[v >> 2] | 0) >>> 0 < (c[w >> 2] | 0) >>> 0 ? c[v >> 2] | 0 : c[w >> 2] | 0; if ( ( c[r >> 2] | 0 ? (((c[H >> 2] | 0) + (c[L >> 2] | 0)) | 0) >>> 0 < (c[z >> 2] | 0) >>> 0 : 0 ) ? (c[n >> 2] | 0) >>> 0 >= (c[z >> 2] | 0) >>> 0 : 0 ) { c[E >> 2] = (c[y >> 2] | 0) + (c[H >> 2] | 0); k = Lm( ((c[A >> 2] | 0) + (c[L >> 2] | 0)) | 0, ((c[E >> 2] | 0) + (c[L >> 2] | 0)) | 0, c[B >> 2] | 0, c[C >> 2] | 0, c[D >> 2] | 0 ) | 0; c[L >> 2] = (c[L >> 2] | 0) + k; if ( (((c[H >> 2] | 0) + (c[L >> 2] | 0)) | 0) >>> 0 >= (c[z >> 2] | 0) >>> 0 ) c[E >> 2] = (c[x >> 2] | 0) + (c[H >> 2] | 0); } else { if ( c[r >> 2] | 0 ? (((c[H >> 2] | 0) + (c[L >> 2] | 0)) | 0) >>> 0 < (c[z >> 2] | 0) >>> 0 : 0 ) O = c[y >> 2] | 0; else O = c[x >> 2] | 0; c[M >> 2] = O; c[E >> 2] = (c[M >> 2] | 0) + (c[H >> 2] | 0); k = Qm( ((c[A >> 2] | 0) + (c[L >> 2] | 0)) | 0, ((c[E >> 2] | 0) + (c[L >> 2] | 0)) | 0, c[B >> 2] | 0 ) | 0; c[L >> 2] = (c[L >> 2] | 0) + k; } if ( (((c[A >> 2] | 0) + (c[L >> 2] | 0)) | 0) == (c[B >> 2] | 0) ) { N = 23; break; } k = c[H >> 2] | 0; if ( (d[((c[E >> 2] | 0) + (c[L >> 2] | 0)) >> 0] | 0 | 0) < (d[((c[A >> 2] | 0) + (c[L >> 2] | 0)) >> 0] | 0 | 0) ) { c[c[F >> 2] >> 2] = k; c[v >> 2] = c[L >> 2]; if ((c[H >> 2] | 0) >>> 0 <= (c[q >> 2] | 0) >>> 0) { N = 17; break; } c[F >> 2] = (c[K >> 2] | 0) + 4; c[H >> 2] = c[((c[K >> 2] | 0) + 4) >> 2]; } else { c[c[G >> 2] >> 2] = k; c[w >> 2] = c[L >> 2]; if ((c[H >> 2] | 0) >>> 0 <= (c[q >> 2] | 0) >>> 0) { N = 20; break; } c[G >> 2] = c[K >> 2]; c[H >> 2] = c[c[K >> 2] >> 2]; } } if ((N | 0) == 17) { c[F >> 2] = I; P = c[G >> 2] | 0; c[P >> 2] = 0; Q = c[F >> 2] | 0; c[Q >> 2] = 0; l = j; return; } else if ((N | 0) == 20) { c[G >> 2] = I; P = c[G >> 2] | 0; c[P >> 2] = 0; Q = c[F >> 2] | 0; c[Q >> 2] = 0; l = j; return; } else if ((N | 0) == 23) { P = c[G >> 2] | 0; c[P >> 2] = 0; Q = c[F >> 2] | 0; c[Q >> 2] = 0; l = j; return; } } function Zm(a, b, e, f, g, h, i) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0; j = l; l = (l + 240) | 0; k = (j + 224) | 0; m = (j + 220) | 0; n = (j + 216) | 0; o = (j + 212) | 0; p = (j + 208) | 0; q = (j + 204) | 0; r = (j + 200) | 0; s = (j + 196) | 0; t = (j + 192) | 0; u = (j + 188) | 0; v = (j + 184) | 0; w = (j + 180) | 0; x = (j + 176) | 0; z = (j + 172) | 0; A = (j + 168) | 0; B = (j + 164) | 0; C = (j + 160) | 0; D = (j + 156) | 0; E = (j + 152) | 0; F = (j + 148) | 0; G = (j + 144) | 0; H = (j + 140) | 0; I = (j + 136) | 0; J = (j + 132) | 0; K = (j + 128) | 0; L = (j + 124) | 0; M = (j + 120) | 0; N = (j + 116) | 0; O = (j + 112) | 0; P = (j + 108) | 0; Q = (j + 104) | 0; R = (j + 100) | 0; S = (j + 96) | 0; T = (j + 92) | 0; U = (j + 88) | 0; V = (j + 84) | 0; W = (j + 80) | 0; X = (j + 76) | 0; Y = (j + 72) | 0; Z = (j + 68) | 0; _ = (j + 64) | 0; $ = (j + 60) | 0; aa = (j + 56) | 0; ba = (j + 52) | 0; ca = (j + 48) | 0; da = (j + 44) | 0; ea = (j + 40) | 0; fa = (j + 36) | 0; ga = (j + 32) | 0; ha = (j + 28) | 0; ia = (j + 24) | 0; ja = (j + 20) | 0; ka = (j + 16) | 0; la = (j + 12) | 0; ma = (j + 8) | 0; na = (j + 4) | 0; oa = j; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = h; c[r >> 2] = i; c[s >> 2] = c[((c[k >> 2] | 0) + 36) >> 2]; c[t >> 2] = c[((c[o >> 2] | 0) + 8) >> 2]; c[u >> 2] = c[((c[k >> 2] | 0) + 44) >> 2]; c[v >> 2] = c[((c[o >> 2] | 0) + 4) >> 2]; c[w >> 2] = c[((c[k >> 2] | 0) + 4) >> 2]; c[x >> 2] = c[((c[k >> 2] | 0) + 8) >> 2]; c[z >> 2] = c[p >> 2]; c[A >> 2] = c[z >> 2]; c[B >> 2] = c[z >> 2]; c[C >> 2] = c[((c[k >> 2] | 0) + 16) >> 2]; c[D >> 2] = (c[x >> 2] | 0) + (c[C >> 2] | 0); c[E >> 2] = c[((c[k >> 2] | 0) + 12) >> 2]; c[F >> 2] = (c[w >> 2] | 0) + (c[E >> 2] | 0); c[G >> 2] = (c[x >> 2] | 0) + (c[E >> 2] | 0); c[H >> 2] = (c[z >> 2] | 0) + (c[q >> 2] | 0); c[I >> 2] = (c[H >> 2] | 0) + -8; c[J >> 2] = c[c[n >> 2] >> 2]; c[K >> 2] = c[((c[n >> 2] | 0) + 4) >> 2]; a: while (1) { if ((c[A >> 2] | 0) >>> 0 >= (c[I >> 2] | 0) >>> 0) break; c[L >> 2] = Dk(c[A >> 2] | 0, c[v >> 2] | 0, c[r >> 2] | 0) | 0; c[M >> 2] = c[((c[u >> 2] | 0) + (c[L >> 2] << 2)) >> 2]; c[N >> 2] = (c[M >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[x >> 2] | 0 : c[w >> 2] | 0; c[O >> 2] = (c[N >> 2] | 0) + (c[M >> 2] | 0); c[P >> 2] = Dk(c[A >> 2] | 0, c[t >> 2] | 0, 8) | 0; c[Q >> 2] = c[((c[s >> 2] | 0) + (c[P >> 2] << 2)) >> 2]; c[R >> 2] = (c[Q >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[x >> 2] | 0 : c[w >> 2] | 0; c[S >> 2] = (c[R >> 2] | 0) + (c[Q >> 2] | 0); c[T >> 2] = (c[A >> 2] | 0) - (c[w >> 2] | 0); c[U >> 2] = (c[T >> 2] | 0) + 1 - (c[J >> 2] | 0); c[V >> 2] = (c[U >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[x >> 2] | 0 : c[w >> 2] | 0; c[W >> 2] = (c[V >> 2] | 0) + (c[U >> 2] | 0); q = c[T >> 2] | 0; c[((c[s >> 2] | 0) + (c[P >> 2] << 2)) >> 2] = q; c[((c[u >> 2] | 0) + (c[L >> 2] << 2)) >> 2] = q; if ( ((c[U >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0 ? (((c[E >> 2] | 0) - 1 - (c[U >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ? ((q = Rk(c[W >> 2] | 0) | 0), (q | 0) == (Rk(((c[A >> 2] | 0) + 1) | 0) | 0)) : 0 ) { c[Y >> 2] = (c[U >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[G >> 2] | 0 : c[H >> 2] | 0; c[X >> 2] = (_m( ((c[A >> 2] | 0) + 1 + 4) | 0, ((c[W >> 2] | 0) + 4) | 0, c[H >> 2] | 0, c[Y >> 2] | 0, c[F >> 2] | 0 ) | 0) + 4; c[A >> 2] = (c[A >> 2] | 0) + 1; $m( c[m >> 2] | 0, ((c[A >> 2] | 0) - (c[B >> 2] | 0)) | 0, c[B >> 2] | 0, 0, ((c[X >> 2] | 0) - 3) | 0 ); } else pa = 6; do { if ((pa | 0) == 6) { pa = 0; if ( (c[Q >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0 ? ((q = Mk(c[S >> 2] | 0) | 0), (z = y), (k = Mk(c[A >> 2] | 0) | 0), ((q | 0) == (k | 0)) & ((z | 0) == (y | 0))) : 0 ) { c[Z >> 2] = (c[Q >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[G >> 2] | 0 : c[H >> 2] | 0; c[_ >> 2] = (c[Q >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[D >> 2] | 0 : c[F >> 2] | 0; c[X >> 2] = (_m( ((c[A >> 2] | 0) + 8) | 0, ((c[S >> 2] | 0) + 8) | 0, c[H >> 2] | 0, c[Z >> 2] | 0, c[F >> 2] | 0 ) | 0) + 8; c[$ >> 2] = (c[T >> 2] | 0) - (c[Q >> 2] | 0); while (1) { if ( !( ((c[A >> 2] | 0) >>> 0 > (c[B >> 2] | 0) >>> 0 ? (c[S >> 2] | 0) >>> 0 > (c[_ >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[A >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[S >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[A >> 2] = (c[A >> 2] | 0) + -1; c[S >> 2] = (c[S >> 2] | 0) + -1; c[X >> 2] = (c[X >> 2] | 0) + 1; } c[K >> 2] = c[J >> 2]; c[J >> 2] = c[$ >> 2]; $m( c[m >> 2] | 0, ((c[A >> 2] | 0) - (c[B >> 2] | 0)) | 0, c[B >> 2] | 0, ((c[$ >> 2] | 0) + 2) | 0, ((c[X >> 2] | 0) - 3) | 0 ); break; } if ( (c[M >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0 ? ((z = Rk(c[O >> 2] | 0) | 0), (z | 0) == (Rk(c[A >> 2] | 0) | 0)) : 0 ) { c[aa >> 2] = Dk(((c[A >> 2] | 0) + 1) | 0, c[t >> 2] | 0, 8) | 0; c[ba >> 2] = c[((c[s >> 2] | 0) + (c[aa >> 2] << 2)) >> 2]; c[ca >> 2] = (c[ba >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[x >> 2] | 0 : c[w >> 2] | 0; c[da >> 2] = (c[ca >> 2] | 0) + (c[ba >> 2] | 0); c[((c[s >> 2] | 0) + (c[aa >> 2] << 2)) >> 2] = (c[T >> 2] | 0) + 1; b: do { if ( (c[ba >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0 ? ((z = Mk(c[da >> 2] | 0) | 0), (k = y), (q = Mk(((c[A >> 2] | 0) + 1) | 0) | 0), ((z | 0) == (q | 0)) & ((k | 0) == (y | 0))) : 0 ) { c[fa >> 2] = (c[ba >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[G >> 2] | 0 : c[H >> 2] | 0; c[ga >> 2] = (c[ba >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[D >> 2] | 0 : c[F >> 2] | 0; c[X >> 2] = (_m( ((c[A >> 2] | 0) + 9) | 0, ((c[da >> 2] | 0) + 8) | 0, c[H >> 2] | 0, c[fa >> 2] | 0, c[F >> 2] | 0 ) | 0) + 8; c[A >> 2] = (c[A >> 2] | 0) + 1; c[ea >> 2] = (c[T >> 2] | 0) + 1 - (c[ba >> 2] | 0); while (1) { if ( !( ((c[A >> 2] | 0) >>> 0 > (c[B >> 2] | 0) >>> 0 ? (c[da >> 2] | 0) >>> 0 > (c[ga >> 2] | 0) >>> 0 : 0) | 0 ) ) break b; if ( (d[((c[A >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[da >> 2] | 0) + -1) >> 0] | 0 | 0) ) break b; c[A >> 2] = (c[A >> 2] | 0) + -1; c[da >> 2] = (c[da >> 2] | 0) + -1; c[X >> 2] = (c[X >> 2] | 0) + 1; } } else pa = 21; } while (0); c: do { if ((pa | 0) == 21) { pa = 0; c[ha >> 2] = (c[M >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[G >> 2] | 0 : c[H >> 2] | 0; c[ia >> 2] = (c[M >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[D >> 2] | 0 : c[F >> 2] | 0; c[X >> 2] = (_m( ((c[A >> 2] | 0) + 4) | 0, ((c[O >> 2] | 0) + 4) | 0, c[H >> 2] | 0, c[ha >> 2] | 0, c[F >> 2] | 0 ) | 0) + 4; c[ea >> 2] = (c[T >> 2] | 0) - (c[M >> 2] | 0); while (1) { if ( !( ((c[A >> 2] | 0) >>> 0 > (c[B >> 2] | 0) >>> 0 ? (c[O >> 2] | 0) >>> 0 > (c[ia >> 2] | 0) >>> 0 : 0) | 0 ) ) break c; if ( (d[((c[A >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[O >> 2] | 0) + -1) >> 0] | 0 | 0) ) break c; c[A >> 2] = (c[A >> 2] | 0) + -1; c[O >> 2] = (c[O >> 2] | 0) + -1; c[X >> 2] = (c[X >> 2] | 0) + 1; } } } while (0); c[K >> 2] = c[J >> 2]; c[J >> 2] = c[ea >> 2]; $m( c[m >> 2] | 0, ((c[A >> 2] | 0) - (c[B >> 2] | 0)) | 0, c[B >> 2] | 0, ((c[ea >> 2] | 0) + 2) | 0, ((c[X >> 2] | 0) - 3) | 0 ); break; } c[A >> 2] = (c[A >> 2] | 0) + ((((c[A >> 2] | 0) - (c[B >> 2] | 0)) >> 8) + 1); continue a; } } while (0); c[A >> 2] = (c[A >> 2] | 0) + (c[X >> 2] | 0); c[B >> 2] = c[A >> 2]; d: do { if ((c[A >> 2] | 0) >>> 0 <= (c[I >> 2] | 0) >>> 0) { k = ((c[T >> 2] | 0) + 2) | 0; q = c[u >> 2] | 0; c[ (q + ((Dk( ((c[w >> 2] | 0) + (c[T >> 2] | 0) + 2) | 0, c[v >> 2] | 0, c[r >> 2] | 0 ) | 0) << 2)) >> 2 ] = k; k = ((c[T >> 2] | 0) + 2) | 0; q = c[s >> 2] | 0; c[ (q + ((Dk( ((c[w >> 2] | 0) + (c[T >> 2] | 0) + 2) | 0, c[t >> 2] | 0, 8 ) | 0) << 2)) >> 2 ] = k; k = ((c[A >> 2] | 0) + -2 - (c[w >> 2] | 0)) | 0; q = c[u >> 2] | 0; c[ (q + ((Dk( ((c[A >> 2] | 0) + -2) | 0, c[v >> 2] | 0, c[r >> 2] | 0 ) | 0) << 2)) >> 2 ] = k; k = ((c[A >> 2] | 0) + -2 - (c[w >> 2] | 0)) | 0; q = c[s >> 2] | 0; c[ (q + ((Dk(((c[A >> 2] | 0) + -2) | 0, c[t >> 2] | 0, 8) | 0) << 2)) >> 2 ] = k; while (1) { if ((c[A >> 2] | 0) >>> 0 > (c[I >> 2] | 0) >>> 0) break d; c[ja >> 2] = (c[A >> 2] | 0) - (c[w >> 2] | 0); c[ka >> 2] = (c[ja >> 2] | 0) - (c[K >> 2] | 0); c[la >> 2] = (c[ka >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? ((c[x >> 2] | 0) + (c[ka >> 2] | 0)) | 0 : ((c[w >> 2] | 0) + (c[ka >> 2] | 0)) | 0; if ( !( ((c[ka >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0 ? (((c[E >> 2] | 0) - 1 - (c[ka >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ) ) break d; k = Rk(c[la >> 2] | 0) | 0; if ((k | 0) != (Rk(c[A >> 2] | 0) | 0)) break d; c[ma >> 2] = (c[ka >> 2] | 0) >>> 0 < (c[E >> 2] | 0) >>> 0 ? c[G >> 2] | 0 : c[H >> 2] | 0; c[na >> 2] = (_m( ((c[A >> 2] | 0) + 4) | 0, ((c[la >> 2] | 0) + 4) | 0, c[H >> 2] | 0, c[ma >> 2] | 0, c[F >> 2] | 0 ) | 0) + 4; c[oa >> 2] = c[K >> 2]; c[K >> 2] = c[J >> 2]; c[J >> 2] = c[oa >> 2]; $m( c[m >> 2] | 0, 0, c[B >> 2] | 0, 0, ((c[na >> 2] | 0) - 3) | 0 ); k = c[ja >> 2] | 0; q = c[u >> 2] | 0; c[ (q + ((Dk( c[A >> 2] | 0, c[v >> 2] | 0, c[r >> 2] | 0 ) | 0) << 2)) >> 2 ] = k; k = c[ja >> 2] | 0; q = c[s >> 2] | 0; c[ (q + ((Dk(c[A >> 2] | 0, c[t >> 2] | 0, 8) | 0) << 2)) >> 2 ] = k; c[A >> 2] = (c[A >> 2] | 0) + (c[na >> 2] | 0); c[B >> 2] = c[A >> 2]; } } } while (0); } c[c[n >> 2] >> 2] = c[J >> 2]; c[((c[n >> 2] | 0) + 4) >> 2] = c[K >> 2]; l = j; return ((c[H >> 2] | 0) - (c[B >> 2] | 0)) | 0; } function _m(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ( (((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0) >>> 0 < (c[k >> 2] | 0) >>> 0 ) q = ((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0; else q = c[k >> 2] | 0; c[o >> 2] = q; c[p >> 2] = cn(c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0) | 0; o = c[p >> 2] | 0; if ( (((c[j >> 2] | 0) + (c[p >> 2] | 0)) | 0) != (c[m >> 2] | 0) ) { c[h >> 2] = o; r = c[h >> 2] | 0; l = g; return r | 0; } else { c[h >> 2] = o + (cn( ((c[i >> 2] | 0) + (c[p >> 2] | 0)) | 0, c[n >> 2] | 0, c[k >> 2] | 0 ) | 0); r = c[h >> 2] | 0; l = g; return r | 0; } return 0; } function $m(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; an( c[((c[i >> 2] | 0) + 12) >> 2] | 0, c[k >> 2] | 0, c[j >> 2] | 0 ); k = ((c[i >> 2] | 0) + 12) | 0; c[k >> 2] = (c[k >> 2] | 0) + (c[j >> 2] | 0); if ((c[j >> 2] | 0) >>> 0 > 65535) { c[((c[i >> 2] | 0) + 28) >> 2] = 1; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; } b[((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + 4) >> 1] = c[j >> 2]; c[c[((c[i >> 2] | 0) + 4) >> 2] >> 2] = (c[m >> 2] | 0) + 1; if ((c[n >> 2] | 0) >>> 0 <= 65535) { o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } c[((c[i >> 2] | 0) + 28) >> 2] = 2; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } function an(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { bn(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function bn(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function cn(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = c[h >> 2]; c[m >> 2] = (c[j >> 2] | 0) + -3; a: do { if ((c[h >> 2] | 0) >>> 0 < (c[m >> 2] | 0) >>> 0) { e = dn(c[i >> 2] | 0) | 0; c[n >> 2] = e ^ (dn(c[h >> 2] | 0) | 0); if (c[n >> 2] | 0) { c[g >> 2] = en(c[n >> 2] | 0) | 0; p = c[g >> 2] | 0; l = f; return p | 0; } c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; while (1) { if ((c[h >> 2] | 0) >>> 0 >= (c[m >> 2] | 0) >>> 0) break a; e = dn(c[i >> 2] | 0) | 0; c[o >> 2] = e ^ (dn(c[h >> 2] | 0) | 0); if (c[o >> 2] | 0) break; c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } e = en(c[o >> 2] | 0) | 0; c[h >> 2] = (c[h >> 2] | 0) + e; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } } while (0); if ( ( fn() | 0 ? (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -3) | 0) >>> 0 : 0 ) ? ((o = Rk(c[i >> 2] | 0) | 0), (o | 0) == (Rk(c[h >> 2] | 0) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } if ( (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -1) | 0) >>> 0 ? ((o = (gn(c[i >> 2] | 0) | 0) & 65535), (o | 0) == (((gn(c[h >> 2] | 0) | 0) & 65535) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 2; c[i >> 2] = (c[i >> 2] | 0) + 2; } if ( (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? (d[c[i >> 2] >> 0] | 0 | 0) == (d[c[h >> 2] >> 0] | 0 | 0) : 0 ) c[h >> 2] = (c[h >> 2] | 0) + 1; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } function dn(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function en(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (Lk() | 0) != 0; f = (fn() | 0) != 0; g = c[e >> 2] | 0; do { if (a) { if (f) { e = ob(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (fE(g | 0) | 0) >> 3; break; } } else if (f) { e = lE(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (Q(g | 0) | 0) >> 3; break; } } while (0); l = b; return c[d >> 2] | 0; } function fn() { return 0; } function gn(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function hn(a, b, e, f, g, h, i, j) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0; k = l; l = (l + 176) | 0; m = (k + 164) | 0; n = (k + 160) | 0; o = (k + 156) | 0; p = (k + 152) | 0; q = (k + 148) | 0; r = (k + 144) | 0; s = (k + 140) | 0; t = (k + 136) | 0; u = (k + 132) | 0; v = (k + 128) | 0; w = (k + 124) | 0; x = (k + 120) | 0; y = (k + 116) | 0; z = (k + 112) | 0; A = (k + 108) | 0; B = (k + 104) | 0; C = (k + 100) | 0; D = (k + 96) | 0; E = (k + 92) | 0; F = (k + 88) | 0; G = (k + 84) | 0; H = (k + 80) | 0; I = (k + 76) | 0; J = (k + 72) | 0; K = (k + 68) | 0; L = (k + 64) | 0; M = (k + 60) | 0; N = (k + 56) | 0; O = (k + 52) | 0; P = (k + 48) | 0; Q = (k + 44) | 0; R = (k + 40) | 0; S = (k + 36) | 0; T = (k + 32) | 0; U = (k + 28) | 0; V = (k + 24) | 0; W = (k + 20) | 0; X = (k + 16) | 0; Y = (k + 12) | 0; Z = (k + 8) | 0; _ = (k + 4) | 0; $ = k; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = j; c[u >> 2] = c[((c[m >> 2] | 0) + 36) >> 2]; c[v >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[w >> 2] = c[((c[m >> 2] | 0) + 8) >> 2]; c[x >> 2] = c[p >> 2]; c[y >> 2] = c[x >> 2]; c[z >> 2] = c[x >> 2]; c[A >> 2] = c[((c[m >> 2] | 0) + 16) >> 2]; c[B >> 2] = (c[w >> 2] | 0) + (c[A >> 2] | 0); c[C >> 2] = c[((c[m >> 2] | 0) + 12) >> 2]; c[D >> 2] = (c[v >> 2] | 0) + (c[C >> 2] | 0); c[E >> 2] = (c[w >> 2] | 0) + (c[C >> 2] | 0); c[F >> 2] = (c[x >> 2] | 0) + (c[q >> 2] | 0); c[G >> 2] = (c[F >> 2] | 0) + -8; c[H >> 2] = c[c[o >> 2] >> 2]; c[I >> 2] = c[((c[o >> 2] | 0) + 4) >> 2]; a: while (1) { if ((c[y >> 2] | 0) >>> 0 >= (c[G >> 2] | 0) >>> 0) break; c[J >> 2] = Tk(c[y >> 2] | 0, c[r >> 2] | 0, c[t >> 2] | 0) | 0; c[K >> 2] = c[((c[u >> 2] | 0) + (c[J >> 2] << 2)) >> 2]; c[L >> 2] = (c[K >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 ? c[w >> 2] | 0 : c[v >> 2] | 0; c[M >> 2] = (c[L >> 2] | 0) + (c[K >> 2] | 0); c[N >> 2] = (c[y >> 2] | 0) - (c[v >> 2] | 0); c[O >> 2] = (c[N >> 2] | 0) + 1 - (c[H >> 2] | 0); c[P >> 2] = (c[O >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 ? c[w >> 2] | 0 : c[v >> 2] | 0; c[Q >> 2] = (c[P >> 2] | 0) + (c[O >> 2] | 0); c[((c[u >> 2] | 0) + (c[J >> 2] << 2)) >> 2] = c[N >> 2]; if ( ((c[O >> 2] | 0) >>> 0 > (c[A >> 2] | 0) >>> 0 ? (((c[C >> 2] | 0) - 1 - (c[O >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ? ((q = fl(c[Q >> 2] | 0) | 0), (q | 0) == (fl(((c[y >> 2] | 0) + 1) | 0) | 0)) : 0 ) { c[S >> 2] = (c[O >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 ? c[E >> 2] | 0 : c[F >> 2] | 0; c[R >> 2] = (jn( ((c[y >> 2] | 0) + 1 + 4) | 0, ((c[Q >> 2] | 0) + 4) | 0, c[F >> 2] | 0, c[S >> 2] | 0, c[D >> 2] | 0 ) | 0) + 4; c[y >> 2] = (c[y >> 2] | 0) + 1; kn( c[n >> 2] | 0, ((c[y >> 2] | 0) - (c[z >> 2] | 0)) | 0, c[z >> 2] | 0, 0, ((c[R >> 2] | 0) - 3) | 0 ); } else aa = 6; do { if ((aa | 0) == 6) { aa = 0; if ( (c[K >> 2] | 0) >>> 0 >= (c[A >> 2] | 0) >>> 0 ? ((q = fl(c[M >> 2] | 0) | 0), (q | 0) == (fl(c[y >> 2] | 0) | 0)) : 0 ) { c[T >> 2] = (c[K >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 ? c[E >> 2] | 0 : c[F >> 2] | 0; c[U >> 2] = (c[K >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[D >> 2] | 0; c[R >> 2] = (jn( ((c[y >> 2] | 0) + 4) | 0, ((c[M >> 2] | 0) + 4) | 0, c[F >> 2] | 0, c[T >> 2] | 0, c[D >> 2] | 0 ) | 0) + 4; while (1) { if ( !( ((c[y >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (c[M >> 2] | 0) >>> 0 > (c[U >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[y >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[M >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[y >> 2] = (c[y >> 2] | 0) + -1; c[M >> 2] = (c[M >> 2] | 0) + -1; c[R >> 2] = (c[R >> 2] | 0) + 1; } c[V >> 2] = (c[N >> 2] | 0) - (c[K >> 2] | 0); c[I >> 2] = c[H >> 2]; c[H >> 2] = c[V >> 2]; kn( c[n >> 2] | 0, ((c[y >> 2] | 0) - (c[z >> 2] | 0)) | 0, c[z >> 2] | 0, ((c[V >> 2] | 0) + 2) | 0, ((c[R >> 2] | 0) - 3) | 0 ); break; } c[y >> 2] = (c[y >> 2] | 0) + ((((c[y >> 2] | 0) - (c[z >> 2] | 0)) >> 8) + (c[s >> 2] | 0)); continue a; } } while (0); c[y >> 2] = (c[y >> 2] | 0) + (c[R >> 2] | 0); c[z >> 2] = c[y >> 2]; b: do { if ((c[y >> 2] | 0) >>> 0 <= (c[G >> 2] | 0) >>> 0) { q = ((c[N >> 2] | 0) + 2) | 0; x = c[u >> 2] | 0; c[ (x + ((Tk( ((c[v >> 2] | 0) + (c[N >> 2] | 0) + 2) | 0, c[r >> 2] | 0, c[t >> 2] | 0 ) | 0) << 2)) >> 2 ] = q; q = ((c[y >> 2] | 0) + -2 - (c[v >> 2] | 0)) | 0; x = c[u >> 2] | 0; c[ (x + ((Tk( ((c[y >> 2] | 0) + -2) | 0, c[r >> 2] | 0, c[t >> 2] | 0 ) | 0) << 2)) >> 2 ] = q; while (1) { if ((c[y >> 2] | 0) >>> 0 > (c[G >> 2] | 0) >>> 0) break b; c[W >> 2] = (c[y >> 2] | 0) - (c[v >> 2] | 0); c[X >> 2] = (c[W >> 2] | 0) - (c[I >> 2] | 0); c[Y >> 2] = (c[X >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 ? ((c[w >> 2] | 0) + (c[X >> 2] | 0)) | 0 : ((c[v >> 2] | 0) + (c[X >> 2] | 0)) | 0; if ( !( ((c[X >> 2] | 0) >>> 0 > (c[A >> 2] | 0) >>> 0 ? (((c[C >> 2] | 0) - 1 - (c[X >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ) ) break b; q = fl(c[Y >> 2] | 0) | 0; if ((q | 0) != (fl(c[y >> 2] | 0) | 0)) break b; c[Z >> 2] = (c[X >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 ? c[E >> 2] | 0 : c[F >> 2] | 0; c[_ >> 2] = (jn( ((c[y >> 2] | 0) + 4) | 0, ((c[Y >> 2] | 0) + 4) | 0, c[F >> 2] | 0, c[Z >> 2] | 0, c[D >> 2] | 0 ) | 0) + 4; c[$ >> 2] = c[I >> 2]; c[I >> 2] = c[H >> 2]; c[H >> 2] = c[$ >> 2]; kn( c[n >> 2] | 0, 0, c[z >> 2] | 0, 0, ((c[_ >> 2] | 0) - 3) | 0 ); q = c[W >> 2] | 0; x = c[u >> 2] | 0; c[ (x + ((Tk( c[y >> 2] | 0, c[r >> 2] | 0, c[t >> 2] | 0 ) | 0) << 2)) >> 2 ] = q; c[y >> 2] = (c[y >> 2] | 0) + (c[_ >> 2] | 0); c[z >> 2] = c[y >> 2]; } } } while (0); } c[c[o >> 2] >> 2] = c[H >> 2]; c[((c[o >> 2] | 0) + 4) >> 2] = c[I >> 2]; l = k; return ((c[F >> 2] | 0) - (c[z >> 2] | 0)) | 0; } function jn(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ( (((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0) >>> 0 < (c[k >> 2] | 0) >>> 0 ) q = ((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0; else q = c[k >> 2] | 0; c[o >> 2] = q; c[p >> 2] = nn(c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0) | 0; o = c[p >> 2] | 0; if ( (((c[j >> 2] | 0) + (c[p >> 2] | 0)) | 0) != (c[m >> 2] | 0) ) { c[h >> 2] = o; r = c[h >> 2] | 0; l = g; return r | 0; } else { c[h >> 2] = o + (nn( ((c[i >> 2] | 0) + (c[p >> 2] | 0)) | 0, c[n >> 2] | 0, c[k >> 2] | 0 ) | 0); r = c[h >> 2] | 0; l = g; return r | 0; } return 0; } function kn(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; ln( c[((c[i >> 2] | 0) + 12) >> 2] | 0, c[k >> 2] | 0, c[j >> 2] | 0 ); k = ((c[i >> 2] | 0) + 12) | 0; c[k >> 2] = (c[k >> 2] | 0) + (c[j >> 2] | 0); if ((c[j >> 2] | 0) >>> 0 > 65535) { c[((c[i >> 2] | 0) + 28) >> 2] = 1; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; } b[((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + 4) >> 1] = c[j >> 2]; c[c[((c[i >> 2] | 0) + 4) >> 2] >> 2] = (c[m >> 2] | 0) + 1; if ((c[n >> 2] | 0) >>> 0 <= 65535) { o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } c[((c[i >> 2] | 0) + 28) >> 2] = 2; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } function ln(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { mn(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function mn(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function nn(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = c[h >> 2]; c[m >> 2] = (c[j >> 2] | 0) + -3; a: do { if ((c[h >> 2] | 0) >>> 0 < (c[m >> 2] | 0) >>> 0) { e = on(c[i >> 2] | 0) | 0; c[n >> 2] = e ^ (on(c[h >> 2] | 0) | 0); if (c[n >> 2] | 0) { c[g >> 2] = pn(c[n >> 2] | 0) | 0; p = c[g >> 2] | 0; l = f; return p | 0; } c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; while (1) { if ((c[h >> 2] | 0) >>> 0 >= (c[m >> 2] | 0) >>> 0) break a; e = on(c[i >> 2] | 0) | 0; c[o >> 2] = e ^ (on(c[h >> 2] | 0) | 0); if (c[o >> 2] | 0) break; c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } e = pn(c[o >> 2] | 0) | 0; c[h >> 2] = (c[h >> 2] | 0) + e; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } } while (0); if ( ( qn() | 0 ? (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -3) | 0) >>> 0 : 0 ) ? ((o = fl(c[i >> 2] | 0) | 0), (o | 0) == (fl(c[h >> 2] | 0) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } if ( (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -1) | 0) >>> 0 ? ((o = (rn(c[i >> 2] | 0) | 0) & 65535), (o | 0) == (((rn(c[h >> 2] | 0) | 0) & 65535) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 2; c[i >> 2] = (c[i >> 2] | 0) + 2; } if ( (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? (d[c[i >> 2] >> 0] | 0 | 0) == (d[c[h >> 2] >> 0] | 0 | 0) : 0 ) c[h >> 2] = (c[h >> 2] | 0) + 1; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } function on(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function pn(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = ($k() | 0) != 0; f = (qn() | 0) != 0; g = c[e >> 2] | 0; do { if (a) { if (f) { e = ob(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (fE(g | 0) | 0) >> 3; break; } } else if (f) { e = lE(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (Q(g | 0) | 0) >> 3; break; } } while (0); l = b; return c[d >> 2] | 0; } function qn() { return 0; } function rn(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function sn(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; switch (c[((c[j >> 2] | 0) + 16) >> 2] | 0) { case 7: case 6: { c[h >> 2] = un( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 6 ) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } case 5: { c[h >> 2] = un( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 5 ) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } default: { c[h >> 2] = un( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 4 ) | 0; o = c[h >> 2] | 0; l = g; return o | 0; } } return 0; } function tn(a, b, e, f, g) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0; h = l; l = (l + 320) | 0; i = (h + 308) | 0; j = (h + 304) | 0; k = (h + 300) | 0; m = (h + 296) | 0; n = (h + 292) | 0; o = (h + 288) | 0; p = (h + 284) | 0; q = (h + 280) | 0; r = (h + 276) | 0; s = (h + 272) | 0; t = (h + 268) | 0; u = (h + 264) | 0; v = (h + 260) | 0; w = (h + 256) | 0; x = (h + 252) | 0; y = (h + 248) | 0; z = (h + 244) | 0; A = (h + 240) | 0; B = (h + 236) | 0; C = (h + 232) | 0; D = (h + 228) | 0; E = (h + 224) | 0; F = (h + 220) | 0; G = (h + 216) | 0; H = (h + 212) | 0; I = (h + 208) | 0; J = (h + 204) | 0; K = (h + 200) | 0; L = (h + 196) | 0; M = (h + 192) | 0; N = (h + 188) | 0; O = (h + 184) | 0; P = (h + 180) | 0; Q = (h + 176) | 0; R = (h + 172) | 0; S = (h + 168) | 0; T = (h + 164) | 0; U = (h + 160) | 0; V = (h + 156) | 0; W = (h + 152) | 0; X = (h + 148) | 0; Y = (h + 144) | 0; Z = (h + 140) | 0; _ = (h + 136) | 0; $ = (h + 132) | 0; aa = (h + 128) | 0; ba = (h + 124) | 0; ca = (h + 120) | 0; da = (h + 116) | 0; ea = (h + 112) | 0; fa = (h + 108) | 0; ga = (h + 104) | 0; ha = (h + 100) | 0; ia = (h + 96) | 0; ja = (h + 92) | 0; ka = (h + 88) | 0; la = (h + 84) | 0; ma = (h + 80) | 0; na = (h + 76) | 0; oa = (h + 72) | 0; pa = (h + 68) | 0; qa = (h + 64) | 0; ra = (h + 60) | 0; sa = (h + 56) | 0; ta = (h + 52) | 0; ua = (h + 48) | 0; va = (h + 44) | 0; wa = (h + 40) | 0; xa = (h + 36) | 0; ya = (h + 32) | 0; za = (h + 28) | 0; Aa = (h + 24) | 0; Ba = (h + 20) | 0; Ca = (h + 16) | 0; Da = (h + 12) | 0; Ea = (h + 8) | 0; Fa = (h + 4) | 0; Ga = h; c[Ca >> 2] = a; c[Da >> 2] = b; c[Ea >> 2] = e; c[Fa >> 2] = f; c[Ga >> 2] = g; switch (c[((c[Da >> 2] | 0) + 16) >> 2] | 0) { case 7: case 6: { g = c[Da >> 2] | 0; f = c[Ea >> 2] | 0; e = c[Fa >> 2] | 0; b = c[Ga >> 2] | 0; c[i >> 2] = c[Ca >> 2]; c[j >> 2] = g; c[k >> 2] = f; c[m >> 2] = e; c[n >> 2] = b; c[o >> 2] = 6; c[p >> 2] = 0; c[q >> 2] = c[((c[i >> 2] | 0) + 44) >> 2]; c[r >> 2] = 1 << c[((c[j >> 2] | 0) + 4) >> 2]; c[s >> 2] = (c[r >> 2] | 0) - 1; c[t >> 2] = c[((c[i >> 2] | 0) + 4) >> 2]; c[u >> 2] = c[((c[i >> 2] | 0) + 8) >> 2]; c[v >> 2] = c[((c[i >> 2] | 0) + 12) >> 2]; c[w >> 2] = (c[t >> 2] | 0) + (c[v >> 2] | 0); c[x >> 2] = (c[u >> 2] | 0) + (c[v >> 2] | 0); c[y >> 2] = c[((c[i >> 2] | 0) + 16) >> 2]; c[z >> 2] = (c[k >> 2] | 0) - (c[t >> 2] | 0); if ((c[z >> 2] | 0) >>> 0 > (c[r >> 2] | 0) >>> 0) Ha = ((c[z >> 2] | 0) - (c[r >> 2] | 0)) | 0; else Ha = 0; c[A >> 2] = Ha; c[B >> 2] = 1 << c[((c[j >> 2] | 0) + 12) >> 2]; c[C >> 2] = 3; c[D >> 2] = mk( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[o >> 2] | 0 ) | 0; while (1) { if ( !( ((c[B >> 2] | 0) >>> 0 > 0 ? (c[D >> 2] | 0) >>> 0 > (c[y >> 2] | 0) >>> 0 : 0) | 0 ) ) break; c[E >> 2] = 0; if ( c[p >> 2] | 0 ? (c[D >> 2] | 0) >>> 0 < (c[v >> 2] | 0) >>> 0 : 0 ) { c[G >> 2] = (c[u >> 2] | 0) + (c[D >> 2] | 0); o = Bk(c[G >> 2] | 0) | 0; if ((o | 0) == (Bk(c[k >> 2] | 0) | 0)) c[E >> 2] = (Lm( ((c[k >> 2] | 0) + 4) | 0, ((c[G >> 2] | 0) + 4) | 0, c[m >> 2] | 0, c[x >> 2] | 0, c[w >> 2] | 0 ) | 0) + 4; } else Ia = 38; if ( (Ia | 0) == 38 ? ((Ia = 0), (c[F >> 2] = (c[t >> 2] | 0) + (c[D >> 2] | 0)), (d[((c[F >> 2] | 0) + (c[C >> 2] | 0)) >> 0] | 0 | 0) == (d[((c[k >> 2] | 0) + (c[C >> 2] | 0)) >> 0] | 0 | 0)) : 0 ) c[E >> 2] = Qm(c[k >> 2] | 0, c[F >> 2] | 0, c[m >> 2] | 0) | 0; if ( (c[E >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0 ? ((c[C >> 2] = c[E >> 2]), (c[c[n >> 2] >> 2] = (c[z >> 2] | 0) - (c[D >> 2] | 0) + 2), (((c[k >> 2] | 0) + (c[E >> 2] | 0)) | 0) == (c[m >> 2] | 0)) : 0 ) break; if ((c[D >> 2] | 0) >>> 0 <= (c[A >> 2] | 0) >>> 0) break; c[D >> 2] = c[ ((c[q >> 2] | 0) + ((c[D >> 2] & c[s >> 2]) << 2)) >> 2 ]; c[B >> 2] = (c[B >> 2] | 0) + -1; } c[Ba >> 2] = c[C >> 2]; Ja = c[Ba >> 2] | 0; l = h; return Ja | 0; } case 5: { C = c[Da >> 2] | 0; B = c[Ea >> 2] | 0; s = c[Fa >> 2] | 0; D = c[Ga >> 2] | 0; c[H >> 2] = c[Ca >> 2]; c[I >> 2] = C; c[J >> 2] = B; c[K >> 2] = s; c[L >> 2] = D; c[M >> 2] = 5; c[N >> 2] = 0; c[O >> 2] = c[((c[H >> 2] | 0) + 44) >> 2]; c[P >> 2] = 1 << c[((c[I >> 2] | 0) + 4) >> 2]; c[Q >> 2] = (c[P >> 2] | 0) - 1; c[R >> 2] = c[((c[H >> 2] | 0) + 4) >> 2]; c[S >> 2] = c[((c[H >> 2] | 0) + 8) >> 2]; c[T >> 2] = c[((c[H >> 2] | 0) + 12) >> 2]; c[U >> 2] = (c[R >> 2] | 0) + (c[T >> 2] | 0); c[V >> 2] = (c[S >> 2] | 0) + (c[T >> 2] | 0); c[W >> 2] = c[((c[H >> 2] | 0) + 16) >> 2]; c[X >> 2] = (c[J >> 2] | 0) - (c[R >> 2] | 0); if ((c[X >> 2] | 0) >>> 0 > (c[P >> 2] | 0) >>> 0) Ka = ((c[X >> 2] | 0) - (c[P >> 2] | 0)) | 0; else Ka = 0; c[Y >> 2] = Ka; c[Z >> 2] = 1 << c[((c[I >> 2] | 0) + 12) >> 2]; c[_ >> 2] = 3; c[$ >> 2] = mk( c[H >> 2] | 0, c[I >> 2] | 0, c[J >> 2] | 0, c[M >> 2] | 0 ) | 0; while (1) { if ( !( ((c[Z >> 2] | 0) >>> 0 > 0 ? (c[$ >> 2] | 0) >>> 0 > (c[W >> 2] | 0) >>> 0 : 0) | 0 ) ) break; c[aa >> 2] = 0; if ( c[N >> 2] | 0 ? (c[$ >> 2] | 0) >>> 0 < (c[T >> 2] | 0) >>> 0 : 0 ) { c[ca >> 2] = (c[S >> 2] | 0) + (c[$ >> 2] | 0); M = Bk(c[ca >> 2] | 0) | 0; if ((M | 0) == (Bk(c[J >> 2] | 0) | 0)) c[aa >> 2] = (Lm( ((c[J >> 2] | 0) + 4) | 0, ((c[ca >> 2] | 0) + 4) | 0, c[K >> 2] | 0, c[V >> 2] | 0, c[U >> 2] | 0 ) | 0) + 4; } else Ia = 23; if ( (Ia | 0) == 23 ? ((Ia = 0), (c[ba >> 2] = (c[R >> 2] | 0) + (c[$ >> 2] | 0)), (d[((c[ba >> 2] | 0) + (c[_ >> 2] | 0)) >> 0] | 0 | 0) == (d[((c[J >> 2] | 0) + (c[_ >> 2] | 0)) >> 0] | 0 | 0)) : 0 ) c[aa >> 2] = Qm(c[J >> 2] | 0, c[ba >> 2] | 0, c[K >> 2] | 0) | 0; if ( (c[aa >> 2] | 0) >>> 0 > (c[_ >> 2] | 0) >>> 0 ? ((c[_ >> 2] = c[aa >> 2]), (c[c[L >> 2] >> 2] = (c[X >> 2] | 0) - (c[$ >> 2] | 0) + 2), (((c[J >> 2] | 0) + (c[aa >> 2] | 0)) | 0) == (c[K >> 2] | 0)) : 0 ) break; if ((c[$ >> 2] | 0) >>> 0 <= (c[Y >> 2] | 0) >>> 0) break; c[$ >> 2] = c[ ((c[O >> 2] | 0) + ((c[$ >> 2] & c[Q >> 2]) << 2)) >> 2 ]; c[Z >> 2] = (c[Z >> 2] | 0) + -1; } c[Ba >> 2] = c[_ >> 2]; Ja = c[Ba >> 2] | 0; l = h; return Ja | 0; } default: { _ = c[Da >> 2] | 0; Da = c[Ea >> 2] | 0; Ea = c[Fa >> 2] | 0; Fa = c[Ga >> 2] | 0; c[da >> 2] = c[Ca >> 2]; c[ea >> 2] = _; c[fa >> 2] = Da; c[ga >> 2] = Ea; c[ha >> 2] = Fa; c[ia >> 2] = 4; c[ja >> 2] = 0; c[ka >> 2] = c[((c[da >> 2] | 0) + 44) >> 2]; c[la >> 2] = 1 << c[((c[ea >> 2] | 0) + 4) >> 2]; c[ma >> 2] = (c[la >> 2] | 0) - 1; c[na >> 2] = c[((c[da >> 2] | 0) + 4) >> 2]; c[oa >> 2] = c[((c[da >> 2] | 0) + 8) >> 2]; c[pa >> 2] = c[((c[da >> 2] | 0) + 12) >> 2]; c[qa >> 2] = (c[na >> 2] | 0) + (c[pa >> 2] | 0); c[ra >> 2] = (c[oa >> 2] | 0) + (c[pa >> 2] | 0); c[sa >> 2] = c[((c[da >> 2] | 0) + 16) >> 2]; c[ta >> 2] = (c[fa >> 2] | 0) - (c[na >> 2] | 0); if ((c[ta >> 2] | 0) >>> 0 > (c[la >> 2] | 0) >>> 0) La = ((c[ta >> 2] | 0) - (c[la >> 2] | 0)) | 0; else La = 0; c[ua >> 2] = La; c[va >> 2] = 1 << c[((c[ea >> 2] | 0) + 12) >> 2]; c[wa >> 2] = 3; c[xa >> 2] = mk( c[da >> 2] | 0, c[ea >> 2] | 0, c[fa >> 2] | 0, c[ia >> 2] | 0 ) | 0; while (1) { if ( !( ((c[va >> 2] | 0) >>> 0 > 0 ? (c[xa >> 2] | 0) >>> 0 > (c[sa >> 2] | 0) >>> 0 : 0) | 0 ) ) break; c[ya >> 2] = 0; if ( c[ja >> 2] | 0 ? (c[xa >> 2] | 0) >>> 0 < (c[pa >> 2] | 0) >>> 0 : 0 ) { c[Aa >> 2] = (c[oa >> 2] | 0) + (c[xa >> 2] | 0); ia = Bk(c[Aa >> 2] | 0) | 0; if ((ia | 0) == (Bk(c[fa >> 2] | 0) | 0)) c[ya >> 2] = (Lm( ((c[fa >> 2] | 0) + 4) | 0, ((c[Aa >> 2] | 0) + 4) | 0, c[ga >> 2] | 0, c[ra >> 2] | 0, c[qa >> 2] | 0 ) | 0) + 4; } else Ia = 8; if ( (Ia | 0) == 8 ? ((Ia = 0), (c[za >> 2] = (c[na >> 2] | 0) + (c[xa >> 2] | 0)), (d[((c[za >> 2] | 0) + (c[wa >> 2] | 0)) >> 0] | 0 | 0) == (d[((c[fa >> 2] | 0) + (c[wa >> 2] | 0)) >> 0] | 0 | 0)) : 0 ) c[ya >> 2] = Qm(c[fa >> 2] | 0, c[za >> 2] | 0, c[ga >> 2] | 0) | 0; if ( (c[ya >> 2] | 0) >>> 0 > (c[wa >> 2] | 0) >>> 0 ? ((c[wa >> 2] = c[ya >> 2]), (c[c[ha >> 2] >> 2] = (c[ta >> 2] | 0) - (c[xa >> 2] | 0) + 2), (((c[fa >> 2] | 0) + (c[ya >> 2] | 0)) | 0) == (c[ga >> 2] | 0)) : 0 ) break; if ((c[xa >> 2] | 0) >>> 0 <= (c[ua >> 2] | 0) >>> 0) break; c[xa >> 2] = c[ ((c[ka >> 2] | 0) + ((c[xa >> 2] & c[ma >> 2]) << 2)) >> 2 ]; c[va >> 2] = (c[va >> 2] | 0) + -1; } c[Ba >> 2] = c[wa >> 2]; Ja = c[Ba >> 2] | 0; l = h; return Ja | 0; } } return 0; } function un(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; h = l; l = (l + 32) | 0; i = (h + 24) | 0; j = (h + 20) | 0; k = (h + 16) | 0; m = (h + 12) | 0; n = (h + 8) | 0; o = (h + 4) | 0; p = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; if ( (c[m >> 2] | 0) >>> 0 < (((c[((c[j >> 2] | 0) + 4) >> 2] | 0) + (c[((c[j >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) { c[i >> 2] = 0; q = c[i >> 2] | 0; l = h; return q | 0; } else { Wm( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[p >> 2] | 0 ); c[i >> 2] = Xm( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, 0 ) | 0; q = c[i >> 2] | 0; l = h; return q | 0; } return 0; } function vn(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 16) | 0; i = (g + 12) | 0; j = (g + 8) | 0; k = (g + 4) | 0; m = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; f = wn( c[h >> 2] | 0, c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, 1, 0 ) | 0; l = g; return f | 0; } function wn(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0; i = l; l = (l + 160) | 0; j = (i + 48) | 0; k = (i + 40) | 0; m = (i + 36) | 0; n = (i + 32) | 0; o = (i + 28) | 0; p = (i + 24) | 0; q = (i + 20) | 0; r = (i + 16) | 0; s = (i + 12) | 0; t = (i + 8) | 0; u = (i + 4) | 0; v = i; c[m >> 2] = a; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = (c[m >> 2] | 0) + 472 + 8; c[u >> 2] = 0; if (!(c[c[m >> 2] >> 2] | 0)) { c[k >> 2] = -60; w = c[k >> 2] | 0; l = i; return w | 0; } do { if (c[r >> 2] | 0 ? (c[c[m >> 2] >> 2] | 0) == 1 : 0) { h = c[n >> 2] | 0; g = c[o >> 2] | 0; f = ((c[m >> 2] | 0) + 116) | 0; e = ((c[m >> 2] | 0) + 240) | 0; d = eE(c[e >> 2] | 0, c[(e + 4) >> 2] | 0, 1, 0) | 0; e = y; b = c[((c[m >> 2] | 0) + 220) >> 2] | 0; a = j; x = f; f = (a + 104) | 0; do { c[a >> 2] = c[x >> 2]; a = (a + 4) | 0; x = (x + 4) | 0; } while ((a | 0) < (f | 0)); c[u >> 2] = xn(h, g, j, d, e, b) | 0; x = (Ph(c[u >> 2] | 0) | 0) != 0; a = c[u >> 2] | 0; if (!x) { c[o >> 2] = (c[o >> 2] | 0) - a; c[n >> 2] = (c[n >> 2] | 0) + (c[u >> 2] | 0); c[c[m >> 2] >> 2] = 2; break; } c[k >> 2] = a; w = c[k >> 2] | 0; l = i; return w | 0; } } while (0); if (!(c[q >> 2] | 0)) { c[k >> 2] = c[u >> 2]; w = c[k >> 2] | 0; l = i; return w | 0; } if (!(Mj(c[t >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0) | 0)) c[((c[t >> 2] | 0) + 24) >> 2] = c[((c[t >> 2] | 0) + 12) >> 2]; if (c[((c[m >> 2] | 0) + 116 + 68) >> 2] | 0) Mj( ((c[m >> 2] | 0) + 408) | 0, c[p >> 2] | 0, c[q >> 2] | 0 ) | 0; t = c[m >> 2] | 0; j = c[n >> 2] | 0; n = c[o >> 2] | 0; o = c[p >> 2] | 0; p = c[q >> 2] | 0; if (c[r >> 2] | 0) z = yn(t, j, n, o, p, c[s >> 2] | 0) | 0; else z = zn(t, j, n, o, p) | 0; c[v >> 2] = z; if (Ph(c[v >> 2] | 0) | 0) { c[k >> 2] = c[v >> 2]; w = c[k >> 2] | 0; l = i; return w | 0; } z = ((c[m >> 2] | 0) + 248) | 0; p = z; o = dE(c[p >> 2] | 0, c[(p + 4) >> 2] | 0, c[q >> 2] | 0, 0) | 0; q = z; c[q >> 2] = o; c[(q + 4) >> 2] = y; q = ((c[m >> 2] | 0) + 256) | 0; o = q; z = dE( c[o >> 2] | 0, c[(o + 4) >> 2] | 0, ((c[v >> 2] | 0) + (c[u >> 2] | 0)) | 0, 0 ) | 0; o = q; c[o >> 2] = z; c[(o + 4) >> 2] = y; if ( c[((c[m >> 2] | 0) + 116 + 32) >> 2] | 0 ? ((o = ((c[m >> 2] | 0) + 248) | 0), (z = dE(c[o >> 2] | 0, c[(o + 4) >> 2] | 0, 1, 0) | 0), (o = y), (q = ((c[m >> 2] | 0) + 240) | 0), (m = c[(q + 4) >> 2] | 0), (o >>> 0 > m >>> 0) | ((o | 0) == (m | 0) ? z >>> 0 > (c[q >> 2] | 0) >>> 0 : 0)) : 0 ) { c[k >> 2] = -72; w = c[k >> 2] | 0; l = i; return w | 0; } c[k >> 2] = (c[v >> 2] | 0) + (c[u >> 2] | 0); w = c[k >> 2] | 0; l = i; return w | 0; } function xn(b, d, e, f, g, h) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0; i = l; l = (l + 64) | 0; j = (i + 52) | 0; k = (i + 48) | 0; m = (i + 44) | 0; n = i; o = (i + 40) | 0; p = (i + 36) | 0; q = (i + 32) | 0; r = (i + 28) | 0; s = (i + 24) | 0; t = (i + 20) | 0; u = (i + 16) | 0; v = (i + 57) | 0; w = (i + 12) | 0; x = (i + 56) | 0; y = (i + 8) | 0; c[k >> 2] = b; c[m >> 2] = d; d = n; c[d >> 2] = f; c[(d + 4) >> 2] = g; c[o >> 2] = h; c[p >> 2] = c[k >> 2]; c[q >> 2] = (((c[o >> 2] | 0) >>> 0 > 0) & 1) + (((c[o >> 2] | 0) >>> 0 >= 256) & 1) + (((c[o >> 2] | 0) >>> 0 >= 65536) & 1); c[r >> 2] = c[(e + 32 + 8) >> 2] | 0 ? 0 : c[q >> 2] | 0; c[s >> 2] = ((c[(e + 32 + 4) >> 2] | 0) >>> 0 > 0) & 1; c[t >> 2] = 1 << c[(e + 4) >> 2]; if (c[(e + 32) >> 2] | 0) { q = n; h = c[(q + 4) >> 2] | 0; z = (0 > h >>> 0) | (0 == (h | 0) ? (c[t >> 2] | 0) >>> 0 >= (c[q >> 2] | 0) >>> 0 : 0); } else z = 0; c[u >> 2] = z & 1; a[v >> 0] = ((c[(e + 4) >> 2] | 0) - 10) << 3; if (c[(e + 32) >> 2] | 0) { z = n; q = c[(z + 4) >> 2] | 0; t = n; h = c[(t + 4) >> 2] | 0; g = n; d = c[(g + 4) >> 2] | 0; A = ((((q >>> 0 > 0) | (((q | 0) == 0) & ((c[z >> 2] | 0) >>> 0 >= 256))) & 1) + (((h >>> 0 > 0) | (((h | 0) == 0) & ((c[t >> 2] | 0) >>> 0 >= 65792))) & 1) + (((d >>> 0 > 0) | (((d | 0) == 0) & ((c[g >> 2] | 0) >>> 0 >= 4294967295))) & 1)) | 0; } else A = 0; c[w >> 2] = A; a[x >> 0] = (c[r >> 2] | 0) + (c[s >> 2] << 2) + (c[u >> 2] << 5) + (c[w >> 2] << 6); c[y >> 2] = 0; if ((c[m >> 2] | 0) >>> 0 < 18) { c[j >> 2] = -70; B = c[j >> 2] | 0; l = i; return B | 0; } if (!(c[e >> 2] | 0)) { Pl(c[k >> 2] | 0, -47205080); c[y >> 2] = 4; } k = a[x >> 0] | 0; x = c[p >> 2] | 0; e = c[y >> 2] | 0; c[y >> 2] = e + 1; a[(x + e) >> 0] = k; if (!(c[u >> 2] | 0)) { k = a[v >> 0] | 0; v = c[p >> 2] | 0; e = c[y >> 2] | 0; c[y >> 2] = e + 1; a[(v + e) >> 0] = k; } switch (c[r >> 2] | 0) { case 3: { Pl( ((c[p >> 2] | 0) + (c[y >> 2] | 0)) | 0, c[o >> 2] | 0 ); c[y >> 2] = (c[y >> 2] | 0) + 4; break; } case 1: { a[((c[p >> 2] | 0) + (c[y >> 2] | 0)) >> 0] = c[o >> 2]; c[y >> 2] = (c[y >> 2] | 0) + 1; break; } case 2: { xl( ((c[p >> 2] | 0) + (c[y >> 2] | 0)) | 0, c[o >> 2] & 65535 ); c[y >> 2] = (c[y >> 2] | 0) + 2; break; } default: { } } switch (c[w >> 2] | 0) { case 3: { w = n; Ql( ((c[p >> 2] | 0) + (c[y >> 2] | 0)) | 0, c[w >> 2] | 0, c[(w + 4) >> 2] | 0 ); c[y >> 2] = (c[y >> 2] | 0) + 8; break; } case 1: { w = ((c[p >> 2] | 0) + (c[y >> 2] | 0)) | 0; o = n; xl( w, (eE(c[o >> 2] | 0, c[(o + 4) >> 2] | 0, 256, 0) | 0) & 65535 ); c[y >> 2] = (c[y >> 2] | 0) + 2; break; } case 2: { Pl( ((c[p >> 2] | 0) + (c[y >> 2] | 0)) | 0, c[n >> 2] | 0 ); c[y >> 2] = (c[y >> 2] | 0) + 4; break; } default: if (c[u >> 2] | 0) { u = c[n >> 2] & 255; n = c[p >> 2] | 0; p = c[y >> 2] | 0; c[y >> 2] = p + 1; a[(n + p) >> 0] = u; } } c[j >> 2] = c[y >> 2]; B = c[j >> 2] | 0; l = i; return B | 0; } function yn(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0; h = l; l = (l + 112) | 0; i = (h + 80) | 0; j = (h + 76) | 0; k = (h + 72) | 0; m = (h + 68) | 0; n = (h + 64) | 0; o = (h + 60) | 0; p = (h + 56) | 0; q = (h + 52) | 0; r = (h + 48) | 0; s = (h + 44) | 0; t = (h + 40) | 0; u = (h + 36) | 0; v = (h + 32) | 0; w = (h + 28) | 0; x = (h + 24) | 0; y = (h + 20) | 0; z = (h + 16) | 0; A = (h + 12) | 0; B = (h + 8) | 0; C = (h + 4) | 0; D = h; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = d; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = c[((c[k >> 2] | 0) + 232) >> 2]; c[s >> 2] = c[p >> 2]; c[t >> 2] = c[o >> 2]; c[u >> 2] = c[m >> 2]; c[v >> 2] = c[u >> 2]; c[w >> 2] = 1 << c[((c[k >> 2] | 0) + 116 + 4) >> 2]; if ( c[p >> 2] | 0 ? (c[((c[k >> 2] | 0) + 116 + 32 + 4) >> 2] | 0) != 0 : 0 ) Nh( ((c[k >> 2] | 0) + 264) | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; while (1) { if (!(c[s >> 2] | 0)) { E = 24; break; } c[x >> 2] = (c[k >> 2] | 0) + 472 + 8; c[y >> 2] = c[q >> 2] & ((c[r >> 2] | 0) >>> 0 >= (c[s >> 2] | 0) >>> 0); if ((c[n >> 2] | 0) >>> 0 < 6) { E = 6; break; } if ((c[s >> 2] | 0) >>> 0 < (c[r >> 2] | 0) >>> 0) c[r >> 2] = c[s >> 2]; p = c[x >> 2] | 0; o = ((c[t >> 2] | 0) + (c[r >> 2] | 0)) | 0; c[i >> 2] = c[p >> 2]; c[(i + 4) >> 2] = c[(p + 4) >> 2]; c[(i + 8) >> 2] = c[(p + 8) >> 2]; c[(i + 12) >> 2] = c[(p + 12) >> 2]; c[(i + 16) >> 2] = c[(p + 16) >> 2]; if (ro(i, o) | 0) { c[z >> 2] = vj( c[((c[k >> 2] | 0) + 116 + 4 + 4) >> 2] | 0, c[((c[k >> 2] | 0) + 116 + 4 + 24) >> 2] | 0 ) | 0; c[A >> 2] = so( c[x >> 2] | 0, c[z >> 2] | 0, c[w >> 2] | 0, c[t >> 2] | 0 ) | 0; to(c[k >> 2] | 0, c[A >> 2] | 0); if ( (c[((c[x >> 2] | 0) + 24) >> 2] | 0) >>> 0 < (c[A >> 2] | 0) >>> 0 ) c[((c[x >> 2] | 0) + 24) >> 2] = 0; else { o = ((c[x >> 2] | 0) + 24) | 0; c[o >> 2] = (c[o >> 2] | 0) - (c[A >> 2] | 0); } c[((c[x >> 2] | 0) + 20) >> 2] = 0; } uo( c[x >> 2] | 0, ((c[t >> 2] | 0) + (c[r >> 2] | 0)) | 0, c[w >> 2] | 0, ((c[x >> 2] | 0) + 20) | 0 ); if ( (c[((c[x >> 2] | 0) + 24) >> 2] | 0) >>> 0 < (c[((c[x >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) c[((c[x >> 2] | 0) + 24) >> 2] = c[((c[x >> 2] | 0) + 16) >> 2]; c[B >> 2] = zn( c[k >> 2] | 0, ((c[v >> 2] | 0) + 3) | 0, ((c[n >> 2] | 0) - 3) | 0, c[t >> 2] | 0, c[r >> 2] | 0 ) | 0; o = (Ph(c[B >> 2] | 0) | 0) != 0; F = c[B >> 2] | 0; if (o) { E = 17; break; } o = c[y >> 2] | 0; if (!F) { c[C >> 2] = o + 0 + (c[r >> 2] << 3); if ( (((c[r >> 2] | 0) + 3) | 0) >>> 0 > (c[n >> 2] | 0) >>> 0 ) { E = 20; break; } Pl(c[v >> 2] | 0, c[C >> 2] | 0); mE( ((c[v >> 2] | 0) + 3) | 0, c[t >> 2] | 0, c[r >> 2] | 0 ) | 0; c[B >> 2] = 3 + (c[r >> 2] | 0); } else { c[D >> 2] = o + 4 + (c[B >> 2] << 3); wl(c[v >> 2] | 0, c[D >> 2] | 0); c[B >> 2] = (c[B >> 2] | 0) + 3; } c[t >> 2] = (c[t >> 2] | 0) + (c[r >> 2] | 0); c[s >> 2] = (c[s >> 2] | 0) - (c[r >> 2] | 0); c[v >> 2] = (c[v >> 2] | 0) + (c[B >> 2] | 0); c[n >> 2] = (c[n >> 2] | 0) - (c[B >> 2] | 0); } if ((E | 0) == 6) { c[j >> 2] = -70; G = c[j >> 2] | 0; l = h; return G | 0; } else if ((E | 0) == 17) { c[j >> 2] = F; G = c[j >> 2] | 0; l = h; return G | 0; } else if ((E | 0) == 20) { c[j >> 2] = -70; G = c[j >> 2] | 0; l = h; return G | 0; } else if ((E | 0) == 24) { if ( c[q >> 2] | 0 ? (c[v >> 2] | 0) >>> 0 > (c[u >> 2] | 0) >>> 0 : 0 ) c[c[k >> 2] >> 2] = 3; c[j >> 2] = (c[v >> 2] | 0) - (c[u >> 2] | 0); G = c[j >> 2] | 0; l = h; return G | 0; } return 0; } function zn(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0; g = l; l = (l + 112) | 0; h = (g + 92) | 0; i = (g + 88) | 0; j = (g + 84) | 0; k = (g + 80) | 0; m = (g + 76) | 0; n = (g + 72) | 0; o = (g + 68) | 0; p = (g + 64) | 0; q = (g + 60) | 0; r = (g + 56) | 0; s = (g + 52) | 0; t = (g + 48) | 0; u = (g + 44) | 0; v = (g + 40) | 0; w = (g + 24) | 0; x = (g + 16) | 0; y = (g + 12) | 0; z = (g + 8) | 0; A = (g + 4) | 0; B = g; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = (c[j >> 2] | 0) + 472 + 8; f = c[j >> 2] | 0; if ((c[o >> 2] | 0) >>> 0 < 7) { An( (f + 456) | 0, c[o >> 2] | 0, c[((c[j >> 2] | 0) + 116 + 4 + 16) >> 2] | 0 ); c[i >> 2] = 0; C = c[i >> 2] | 0; l = g; return C | 0; } Bn((f + 368) | 0); c[q >> 2] = c[((c[p >> 2] | 0) + 4) >> 2]; c[r >> 2] = c[n >> 2]; c[s >> 2] = (c[r >> 2] | 0) - (c[q >> 2] | 0); if ( (c[s >> 2] | 0) >>> 0 > (((c[((c[p >> 2] | 0) + 24) >> 2] | 0) + 384) | 0) >>> 0 ) { if ( 192 < (((c[s >> 2] | 0) - (c[((c[p >> 2] | 0) + 24) >> 2] | 0) - 384) | 0) >>> 0 ) D = 192; else D = ((c[s >> 2] | 0) - (c[((c[p >> 2] | 0) + 24) >> 2] | 0) - 384) | 0; c[((c[p >> 2] | 0) + 24) >> 2] = (c[s >> 2] | 0) - D; } D = c[p >> 2] | 0; c[h >> 2] = c[D >> 2]; c[(h + 4) >> 2] = c[(D + 4) >> 2]; c[(h + 8) >> 2] = c[(D + 8) >> 2]; c[(h + 12) >> 2] = c[(D + 12) >> 2]; c[(h + 16) >> 2] = c[(D + 16) >> 2]; c[t >> 2] = Cn(h) | 0; c[v >> 2] = 0; while (1) { E = c[j >> 2] | 0; if ((c[v >> 2] | 0) >= 3) break; c[ ((c[((c[j >> 2] | 0) + 472 + 4) >> 2] | 0) + 4580 + (c[v >> 2] << 2)) >> 2 ] = c[ ((c[(E + 472) >> 2] | 0) + 4580 + (c[v >> 2] << 2)) >> 2 ]; c[v >> 2] = (c[v >> 2] | 0) + 1; } v = c[j >> 2] | 0; do { if ( (c[(E + 456 + 4) >> 2] | 0) >>> 0 < (c[((c[j >> 2] | 0) + 456 + 8) >> 2] | 0) >>> 0 ) c[u >> 2] = Dn( (v + 456) | 0, c[p >> 2] | 0, ((c[j >> 2] | 0) + 368) | 0, ((c[((c[j >> 2] | 0) + 472 + 4) >> 2] | 0) + 4580) | 0, ((c[j >> 2] | 0) + 116 + 4) | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[t >> 2] | 0 ) | 0; else { if (!(c[(v + 116 + 68) >> 2] | 0)) { c[y >> 2] = Wl( c[((c[j >> 2] | 0) + 116 + 4 + 24) >> 2] | 0, c[t >> 2] | 0 ) | 0; c[u >> 2] = uc[c[y >> 2] & 31]( c[p >> 2] | 0, ((c[j >> 2] | 0) + 368) | 0, ((c[((c[j >> 2] | 0) + 472 + 4) >> 2] | 0) + 4580) | 0, ((c[j >> 2] | 0) + 116 + 4) | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; break; } c[w >> 2] = 0; c[(w + 4) >> 2] = 0; c[(w + 8) >> 2] = 0; c[(w + 12) >> 2] = 0; c[w >> 2] = c[((c[j >> 2] | 0) + 448) >> 2]; c[(w + 12) >> 2] = c[((c[j >> 2] | 0) + 452) >> 2]; c[x >> 2] = En( ((c[j >> 2] | 0) + 408) | 0, w, ((c[j >> 2] | 0) + 116 + 68) | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; if (!(wj(c[x >> 2] | 0) | 0)) { c[u >> 2] = Dn( w, c[p >> 2] | 0, ((c[j >> 2] | 0) + 368) | 0, ((c[((c[j >> 2] | 0) + 472 + 4) >> 2] | 0) + 4580) | 0, ((c[j >> 2] | 0) + 116 + 4) | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[t >> 2] | 0 ) | 0; break; } c[i >> 2] = c[x >> 2]; C = c[i >> 2] | 0; l = g; return C | 0; } } while (0); c[z >> 2] = (c[n >> 2] | 0) + (c[o >> 2] | 0) + (0 - (c[u >> 2] | 0)); Fn(((c[j >> 2] | 0) + 368) | 0, c[z >> 2] | 0, c[u >> 2] | 0); c[A >> 2] = Gn( ((c[j >> 2] | 0) + 368) | 0, c[((c[j >> 2] | 0) + 472) >> 2] | 0, c[((c[j >> 2] | 0) + 472 + 4) >> 2] | 0, ((c[j >> 2] | 0) + 116) | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[o >> 2] | 0, c[((c[j >> 2] | 0) + 588) >> 2] | 0, c[((c[j >> 2] | 0) + 8) >> 2] | 0 ) | 0; o = (Ph(c[A >> 2] | 0) | 0) != 0; if (o | ((c[A >> 2] | 0) == 0)) { c[i >> 2] = c[A >> 2]; C = c[i >> 2] | 0; l = g; return C | 0; } else { c[B >> 2] = c[((c[j >> 2] | 0) + 472) >> 2]; c[((c[j >> 2] | 0) + 472) >> 2] = c[((c[j >> 2] | 0) + 472 + 4) >> 2]; c[((c[j >> 2] | 0) + 472 + 4) >> 2] = c[B >> 2]; c[i >> 2] = c[A >> 2]; C = c[i >> 2] | 0; l = g; return C | 0; } return 0; } function An(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; while (1) { if ((c[g >> 2] | 0) >>> 0 <= 0) { j = 12; break; } if ( (c[((c[f >> 2] | 0) + 4) >> 2] | 0) >>> 0 >= (c[((c[f >> 2] | 0) + 8) >> 2] | 0) >>> 0 ) { j = 12; break; } c[i >> 2] = (c[c[f >> 2] >> 2] | 0) + (((c[((c[f >> 2] | 0) + 4) >> 2] | 0) * 12) | 0); if ( (c[g >> 2] | 0) >>> 0 <= (c[((c[i >> 2] | 0) + 4) >> 2] | 0) >>> 0 ) { j = 5; break; } c[g >> 2] = (c[g >> 2] | 0) - (c[((c[i >> 2] | 0) + 4) >> 2] | 0); c[((c[i >> 2] | 0) + 4) >> 2] = 0; if ( (c[g >> 2] | 0) >>> 0 < (c[((c[i >> 2] | 0) + 8) >> 2] | 0) >>> 0 ) { j = 7; break; } c[g >> 2] = (c[g >> 2] | 0) - (c[((c[i >> 2] | 0) + 8) >> 2] | 0); c[((c[i >> 2] | 0) + 8) >> 2] = 0; d = ((c[f >> 2] | 0) + 4) | 0; c[d >> 2] = (c[d >> 2] | 0) + 1; } if ((j | 0) == 5) { d = ((c[i >> 2] | 0) + 4) | 0; c[d >> 2] = (c[d >> 2] | 0) - (c[g >> 2] | 0); l = e; return; } else if ((j | 0) == 7) { d = ((c[i >> 2] | 0) + 8) | 0; c[d >> 2] = (c[d >> 2] | 0) - (c[g >> 2] | 0); if ( (c[((c[i >> 2] | 0) + 8) >> 2] | 0) >>> 0 >= (c[h >> 2] | 0) >>> 0 ) { l = e; return; } if ( (((c[((c[f >> 2] | 0) + 4) >> 2] | 0) + 1) | 0) >>> 0 < (c[((c[f >> 2] | 0) + 8) >> 2] | 0) >>> 0 ) { h = ((c[i >> 2] | 0) + 12 + 4) | 0; c[h >> 2] = (c[h >> 2] | 0) + (c[((c[i >> 2] | 0) + 8) >> 2] | 0); } i = ((c[f >> 2] | 0) + 4) | 0; c[i >> 2] = (c[i >> 2] | 0) + 1; l = e; return; } else if ((j | 0) == 12) { l = e; return; } } function Bn(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; c[((c[d >> 2] | 0) + 12) >> 2] = c[((c[d >> 2] | 0) + 8) >> 2]; c[((c[d >> 2] | 0) + 4) >> 2] = c[c[d >> 2] >> 2]; c[((c[d >> 2] | 0) + 28) >> 2] = 0; l = b; return; } function Cn(a) { a = a | 0; return ( ((c[(a + 16) >> 2] | 0) >>> 0 < (c[(a + 12) >> 2] | 0) >>> 0) | 0 ); } function Dn(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; j = l; l = (l + 80) | 0; k = (j + 76) | 0; m = (j + 72) | 0; n = (j + 68) | 0; o = (j + 64) | 0; p = (j + 60) | 0; q = (j + 56) | 0; r = (j + 52) | 0; s = (j + 48) | 0; t = (j + 44) | 0; u = (j + 40) | 0; v = (j + 36) | 0; w = (j + 32) | 0; x = (j + 28) | 0; y = (j + 24) | 0; z = (j + 12) | 0; A = (j + 8) | 0; B = (j + 4) | 0; C = j; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = d; c[o >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; c[t >> 2] = c[((c[p >> 2] | 0) + 16) >> 2]; c[u >> 2] = Wl(c[((c[p >> 2] | 0) + 24) >> 2] | 0, c[s >> 2] | 0) | 0; c[v >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[w >> 2] = c[q >> 2]; c[x >> 2] = (c[w >> 2] | 0) + (c[r >> 2] | 0); c[y >> 2] = c[w >> 2]; while (1) { if ( (c[((c[k >> 2] | 0) + 4) >> 2] | 0) >>> 0 >= (c[((c[k >> 2] | 0) + 8) >> 2] | 0) >>> 0 ) break; if ((c[y >> 2] | 0) >>> 0 >= (c[x >> 2] | 0) >>> 0) break; lo( z, c[k >> 2] | 0, ((c[x >> 2] | 0) - (c[y >> 2] | 0)) | 0, c[t >> 2] | 0 ); if (!(c[z >> 2] | 0)) break; mo(c[m >> 2] | 0, c[y >> 2] | 0); no(c[m >> 2] | 0, c[p >> 2] | 0, c[y >> 2] | 0) | 0; c[B >> 2] = uc[c[u >> 2] & 31]( c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[y >> 2] | 0, c[(z + 4) >> 2] | 0 ) | 0; c[y >> 2] = (c[y >> 2] | 0) + (c[(z + 4) >> 2] | 0); c[((c[m >> 2] | 0) + 24) >> 2] = (c[y >> 2] | 0) - (c[v >> 2] | 0); c[A >> 2] = 2; while (1) { if ((c[A >> 2] | 0) <= 0) break; c[((c[o >> 2] | 0) + (c[A >> 2] << 2)) >> 2] = c[ ((c[o >> 2] | 0) + (((c[A >> 2] | 0) - 1) << 2)) >> 2 ]; c[A >> 2] = (c[A >> 2] | 0) + -1; } c[c[o >> 2] >> 2] = c[z >> 2]; oo( c[n >> 2] | 0, c[B >> 2] | 0, ((c[y >> 2] | 0) + (0 - (c[B >> 2] | 0))) | 0, ((c[z >> 2] | 0) + 2) | 0, ((c[(z + 8) >> 2] | 0) - 3) | 0 ); c[y >> 2] = (c[y >> 2] | 0) + (c[(z + 8) >> 2] | 0); } mo(c[m >> 2] | 0, c[y >> 2] | 0); no(c[m >> 2] | 0, c[p >> 2] | 0, c[y >> 2] | 0) | 0; c[C >> 2] = uc[c[u >> 2] & 31]( c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[y >> 2] | 0, ((c[x >> 2] | 0) - (c[y >> 2] | 0)) | 0 ) | 0; c[((c[m >> 2] | 0) + 24) >> 2] = (c[x >> 2] | 0) - (c[v >> 2] | 0); l = j; return c[C >> 2] | 0; } function En(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0; g = l; l = (l + 112) | 0; h = (g + 84) | 0; i = (g + 80) | 0; j = (g + 76) | 0; k = (g + 72) | 0; m = (g + 68) | 0; n = (g + 64) | 0; o = (g + 60) | 0; p = (g + 56) | 0; q = (g + 52) | 0; r = (g + 48) | 0; s = (g + 40) | 0; t = (g + 36) | 0; u = (g + 32) | 0; v = (g + 28) | 0; w = (g + 24) | 0; x = (g + 20) | 0; y = (g + 16) | 0; z = (g + 12) | 0; A = (g + 8) | 0; B = (g + 4) | 0; C = g; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = 1 << c[((c[m >> 2] | 0) + 20) >> 2]; c[q >> 2] = c[n >> 2]; c[r >> 2] = (c[q >> 2] | 0) + (c[o >> 2] | 0); c[(g + 44) >> 2] = 1048576; c[s >> 2] = ((((c[o >> 2] | 0) >>> 0) / 1048576) | 0) + (((((c[o >> 2] | 0) >>> 0) % 1048576 | 0 | 0) != 0) & 1); c[u >> 2] = 0; c[t >> 2] = 0; while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[s >> 2] | 0) >>> 0) { D = 12; break; } if ( (c[((c[k >> 2] | 0) + 8) >> 2] | 0) >>> 0 >= (c[((c[k >> 2] | 0) + 12) >> 2] | 0) >>> 0 ) { D = 12; break; } c[v >> 2] = (c[q >> 2] | 0) + (c[t >> 2] << 20); c[w >> 2] = (c[r >> 2] | 0) - (c[v >> 2] | 0); c[x >> 2] = (c[w >> 2] | 0) >>> 0 < 1048576 ? c[r >> 2] | 0 : ((c[v >> 2] | 0) + 1048576) | 0; c[y >> 2] = (c[x >> 2] | 0) - (c[v >> 2] | 0); c[A >> 2] = c[((c[k >> 2] | 0) + 8) >> 2]; o = c[j >> 2] | 0; f = c[x >> 2] | 0; c[h >> 2] = c[o >> 2]; c[(h + 4) >> 2] = c[(o + 4) >> 2]; c[(h + 8) >> 2] = c[(o + 8) >> 2]; c[(h + 12) >> 2] = c[(o + 12) >> 2]; c[(h + 16) >> 2] = c[(o + 16) >> 2]; if (On(h, f) | 0) { c[B >> 2] = 1 << c[((c[m >> 2] | 0) + 4) >> 2]; c[C >> 2] = Pn(c[j >> 2] | 0, 0, c[p >> 2] | 0, c[n >> 2] | 0) | 0; Qn( c[((c[j >> 2] | 0) + 20) >> 2] | 0, c[B >> 2] | 0, c[C >> 2] | 0 ); } Rn(c[j >> 2] | 0, c[x >> 2] | 0, c[p >> 2] | 0, 0); c[z >> 2] = Sn( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[v >> 2] | 0, c[y >> 2] | 0 ) | 0; if (Ph(c[z >> 2] | 0) | 0) { D = 7; break; } if ( (c[A >> 2] | 0) >>> 0 < (c[((c[k >> 2] | 0) + 8) >> 2] | 0) >>> 0 ) { f = ((c[c[k >> 2] >> 2] | 0) + (((c[A >> 2] | 0) * 12) | 0) + 4) | 0; c[f >> 2] = (c[f >> 2] | 0) + (c[u >> 2] | 0); c[u >> 2] = c[z >> 2]; } else c[u >> 2] = (c[u >> 2] | 0) + (c[y >> 2] | 0); c[t >> 2] = (c[t >> 2] | 0) + 1; } if ((D | 0) == 7) { c[i >> 2] = c[z >> 2]; E = c[i >> 2] | 0; l = g; return E | 0; } else if ((D | 0) == 12) { c[i >> 2] = 0; E = c[i >> 2] | 0; l = g; return E | 0; } return 0; } function Fn(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = (e + 8) | 0; g = (e + 4) | 0; h = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; mE( c[((c[f >> 2] | 0) + 12) >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0 ) | 0; g = ((c[f >> 2] | 0) + 12) | 0; c[g >> 2] = (c[g >> 2] | 0) + (c[h >> 2] | 0); l = e; return; } function Gn(a, b, d, e, f, g, h, i, j) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; k = l; l = (l + 48) | 0; m = (k + 44) | 0; n = (k + 40) | 0; o = (k + 36) | 0; p = (k + 32) | 0; q = (k + 28) | 0; r = (k + 24) | 0; s = (k + 20) | 0; t = (k + 16) | 0; u = (k + 12) | 0; v = (k + 8) | 0; w = (k + 4) | 0; x = k; c[n >> 2] = a; c[o >> 2] = b; c[p >> 2] = d; c[q >> 2] = e; c[r >> 2] = f; c[s >> 2] = g; c[t >> 2] = h; c[u >> 2] = i; c[v >> 2] = j; c[w >> 2] = Hn( c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, c[r >> 2] | 0, c[s >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0 ) | 0; if ( ((c[w >> 2] | 0) == -70 ? (c[t >> 2] | 0) >>> 0 <= (c[s >> 2] | 0) >>> 0 : 0) | 0 ) { c[m >> 2] = 0; y = c[m >> 2] | 0; l = k; return y | 0; } if (Ph(c[w >> 2] | 0) | 0) { c[m >> 2] = c[w >> 2]; y = c[m >> 2] | 0; l = k; return y | 0; } s = c[t >> 2] | 0; c[x >> 2] = s - (In(c[t >> 2] | 0) | 0); if ((c[w >> 2] | 0) >>> 0 >= (c[x >> 2] | 0) >>> 0) { c[m >> 2] = 0; y = c[m >> 2] | 0; l = k; return y | 0; } if ((c[((c[p >> 2] | 0) + 4568) >> 2] | 0) == 2) c[((c[p >> 2] | 0) + 4568) >> 2] = 1; c[m >> 2] = c[w >> 2]; y = c[m >> 2] | 0; l = k; return y | 0; } function Hn(b, d, e, f, g, h, i, j) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0; k = l; l = (l + 368) | 0; m = (k + 364) | 0; n = (k + 360) | 0; o = (k + 356) | 0; p = (k + 352) | 0; q = (k + 348) | 0; r = (k + 344) | 0; s = (k + 340) | 0; t = (k + 336) | 0; u = (k + 332) | 0; v = (k + 328) | 0; w = k; x = (k + 324) | 0; y = (k + 320) | 0; z = (k + 316) | 0; A = (k + 312) | 0; B = (k + 308) | 0; C = (k + 304) | 0; D = (k + 300) | 0; E = (k + 296) | 0; F = (k + 292) | 0; G = (k + 288) | 0; H = (k + 284) | 0; I = (k + 280) | 0; J = (k + 276) | 0; K = (k + 272) | 0; L = (k + 268) | 0; M = (k + 264) | 0; N = (k + 260) | 0; O = (k + 256) | 0; P = (k + 252) | 0; Q = (k + 248) | 0; R = (k + 244) | 0; S = (k + 240) | 0; T = (k + 236) | 0; U = (k + 232) | 0; V = (k + 228) | 0; W = (k + 224) | 0; X = (k + 220) | 0; Y = (k + 216) | 0; Z = (k + 212) | 0; c[n >> 2] = b; c[o >> 2] = d; c[p >> 2] = e; c[q >> 2] = f; c[r >> 2] = g; c[s >> 2] = h; c[t >> 2] = i; c[u >> 2] = j; j = c[((c[q >> 2] | 0) + 4) >> 2] | 0; i = (Il() | 0) != 0; c[v >> 2] = (j >>> 0 > (i ? 25 : 57) >>> 0) & 1; c[x >> 2] = (c[p >> 2] | 0) + 3248; c[y >> 2] = (c[p >> 2] | 0) + 1024; c[z >> 2] = (c[p >> 2] | 0) + 1796; c[D >> 2] = c[c[n >> 2] >> 2]; c[E >> 2] = c[((c[n >> 2] | 0) + 24) >> 2]; c[F >> 2] = c[((c[n >> 2] | 0) + 16) >> 2]; c[G >> 2] = c[((c[n >> 2] | 0) + 20) >> 2]; c[H >> 2] = c[r >> 2]; c[I >> 2] = (c[H >> 2] | 0) + (c[s >> 2] | 0); c[J >> 2] = c[H >> 2]; c[K >> 2] = ((((c[((c[n >> 2] | 0) + 4) >> 2] | 0) - (c[c[n >> 2] >> 2] | 0)) | 0) / 8) | 0; c[M >> 2] = c[((c[n >> 2] | 0) + 8) >> 2]; c[N >> 2] = (c[((c[n >> 2] | 0) + 12) >> 2] | 0) - (c[M >> 2] | 0); c[O >> 2] = Jn( c[o >> 2] | 0, c[p >> 2] | 0, c[((c[q >> 2] | 0) + 4 + 24) >> 2] | 0, c[((c[q >> 2] | 0) + 48) >> 2] | 0, c[J >> 2] | 0, c[s >> 2] | 0, c[M >> 2] | 0, c[N >> 2] | 0, c[t >> 2] | 0, c[u >> 2] | 0 ) | 0; N = (Ph(c[O >> 2] | 0) | 0) != 0; M = c[O >> 2] | 0; if (N) { c[m >> 2] = M; _ = c[m >> 2] | 0; l = k; return _ | 0; } c[J >> 2] = (c[J >> 2] | 0) + M; if ((((c[I >> 2] | 0) - (c[J >> 2] | 0)) | 0) < 4) { c[m >> 2] = -70; _ = c[m >> 2] | 0; l = k; return _ | 0; } M = c[K >> 2] | 0; do { if ((c[K >> 2] | 0) >>> 0 >= 127) { if (M >>> 0 < 32512) { a[c[J >> 2] >> 0] = ((c[K >> 2] | 0) >>> 8) + 128; a[((c[J >> 2] | 0) + 1) >> 0] = c[K >> 2]; c[J >> 2] = (c[J >> 2] | 0) + 2; break; } else { a[c[J >> 2] >> 0] = -1; xl( ((c[J >> 2] | 0) + 1) | 0, ((c[K >> 2] | 0) - 32512) & 65535 ); c[J >> 2] = (c[J >> 2] | 0) + 3; break; } } else { N = c[J >> 2] | 0; c[J >> 2] = N + 1; a[N >> 0] = M; } } while (0); if (!(c[K >> 2] | 0)) { mE( ((c[p >> 2] | 0) + 3248) | 0, ((c[o >> 2] | 0) + 3248) | 0, 1316 ) | 0; c[((c[p >> 2] | 0) + 4576) >> 2] = c[((c[o >> 2] | 0) + 4576) >> 2]; mE( ((c[p >> 2] | 0) + 1024) | 0, ((c[o >> 2] | 0) + 1024) | 0, 772 ) | 0; c[((c[p >> 2] | 0) + 4568) >> 2] = c[((c[o >> 2] | 0) + 4568) >> 2]; mE( ((c[p >> 2] | 0) + 1796) | 0, ((c[o >> 2] | 0) + 1796) | 0, 1452 ) | 0; c[((c[p >> 2] | 0) + 4572) >> 2] = c[((c[o >> 2] | 0) + 4572) >> 2]; c[m >> 2] = (c[J >> 2] | 0) - (c[H >> 2] | 0); _ = c[m >> 2] | 0; l = k; return _ | 0; } M = c[J >> 2] | 0; c[J >> 2] = M + 1; c[L >> 2] = M; zl(c[n >> 2] | 0); c[P >> 2] = 35; c[Q >> 2] = _h(w, P, c[F >> 2] | 0, c[K >> 2] | 0, c[t >> 2] | 0) | 0; c[((c[p >> 2] | 0) + 4576) >> 2] = c[((c[o >> 2] | 0) + 4576) >> 2]; c[A >> 2] = Kn( ((c[p >> 2] | 0) + 4576) | 0, c[Q >> 2] | 0, c[K >> 2] | 0, 6, 1 ) | 0; c[R >> 2] = Ln( c[J >> 2] | 0, ((c[I >> 2] | 0) - (c[J >> 2] | 0)) | 0, c[x >> 2] | 0, 9, c[A >> 2] | 0, w, c[P >> 2] | 0, c[F >> 2] | 0, c[K >> 2] | 0, 3200, 6, 35, ((c[o >> 2] | 0) + 3248) | 0, 1316, c[t >> 2] | 0, 6144 ) | 0; P = (Ph(c[R >> 2] | 0) | 0) != 0; Q = c[R >> 2] | 0; if (P) { c[m >> 2] = Q; _ = c[m >> 2] | 0; l = k; return _ | 0; } c[J >> 2] = (c[J >> 2] | 0) + Q; c[S >> 2] = 31; c[T >> 2] = _h(w, S, c[E >> 2] | 0, c[K >> 2] | 0, c[t >> 2] | 0) | 0; c[U >> 2] = (c[S >> 2] | 0) >>> 0 <= 28 ? 1 : 0; c[((c[p >> 2] | 0) + 4568) >> 2] = c[((c[o >> 2] | 0) + 4568) >> 2]; c[B >> 2] = Kn( ((c[p >> 2] | 0) + 4568) | 0, c[T >> 2] | 0, c[K >> 2] | 0, 5, c[U >> 2] | 0 ) | 0; c[V >> 2] = Ln( c[J >> 2] | 0, ((c[I >> 2] | 0) - (c[J >> 2] | 0)) | 0, c[y >> 2] | 0, 8, c[B >> 2] | 0, w, c[S >> 2] | 0, c[E >> 2] | 0, c[K >> 2] | 0, 3280, 5, 28, ((c[o >> 2] | 0) + 1024) | 0, 772, c[t >> 2] | 0, 6144 ) | 0; S = (Ph(c[V >> 2] | 0) | 0) != 0; U = c[V >> 2] | 0; if (S) { c[m >> 2] = U; _ = c[m >> 2] | 0; l = k; return _ | 0; } c[J >> 2] = (c[J >> 2] | 0) + U; c[W >> 2] = 52; c[X >> 2] = _h(w, W, c[G >> 2] | 0, c[K >> 2] | 0, c[t >> 2] | 0) | 0; c[((c[p >> 2] | 0) + 4572) >> 2] = c[((c[o >> 2] | 0) + 4572) >> 2]; c[C >> 2] = Kn( ((c[p >> 2] | 0) + 4572) | 0, c[X >> 2] | 0, c[K >> 2] | 0, 6, 1 ) | 0; c[Y >> 2] = Ln( c[J >> 2] | 0, ((c[I >> 2] | 0) - (c[J >> 2] | 0)) | 0, c[z >> 2] | 0, 9, c[C >> 2] | 0, w, c[W >> 2] | 0, c[G >> 2] | 0, c[K >> 2] | 0, 3344, 6, 52, ((c[o >> 2] | 0) + 1796) | 0, 1452, c[t >> 2] | 0, 6144 ) | 0; t = (Ph(c[Y >> 2] | 0) | 0) != 0; o = c[Y >> 2] | 0; if (t) { c[m >> 2] = o; _ = c[m >> 2] | 0; l = k; return _ | 0; } c[J >> 2] = (c[J >> 2] | 0) + o; a[c[L >> 2] >> 0] = (c[A >> 2] << 6) + (c[B >> 2] << 4) + (c[C >> 2] << 2); c[Z >> 2] = Cl( c[J >> 2] | 0, ((c[I >> 2] | 0) - (c[J >> 2] | 0)) | 0, c[z >> 2] | 0, c[G >> 2] | 0, c[y >> 2] | 0, c[E >> 2] | 0, c[x >> 2] | 0, c[F >> 2] | 0, c[D >> 2] | 0, c[K >> 2] | 0, c[v >> 2] | 0, c[u >> 2] | 0 ) | 0; u = (Ph(c[Z >> 2] | 0) | 0) != 0; v = c[Z >> 2] | 0; if (u) { c[m >> 2] = v; _ = c[m >> 2] | 0; l = k; return _ | 0; } else { c[J >> 2] = (c[J >> 2] | 0) + v; c[m >> 2] = (c[J >> 2] | 0) - (c[H >> 2] | 0); _ = c[m >> 2] | 0; l = k; return _ | 0; } return 0; } function In(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return (((c[d >> 2] | 0) >>> 6) + 2) | 0; } function Jn(b, d, e, f, g, h, i, j, k, m) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0; n = l; l = (l + 96) | 0; o = (n + 88) | 0; p = (n + 84) | 0; q = (n + 80) | 0; r = (n + 76) | 0; s = (n + 72) | 0; t = (n + 68) | 0; u = (n + 64) | 0; v = (n + 60) | 0; w = (n + 56) | 0; x = (n + 52) | 0; y = (n + 48) | 0; z = (n + 44) | 0; A = (n + 40) | 0; B = (n + 36) | 0; C = (n + 32) | 0; D = (n + 28) | 0; E = (n + 24) | 0; F = (n + 20) | 0; G = (n + 16) | 0; H = (n + 12) | 0; I = (n + 8) | 0; J = (n + 4) | 0; K = n; c[p >> 2] = b; c[q >> 2] = d; c[r >> 2] = e; c[s >> 2] = f; c[t >> 2] = g; c[u >> 2] = h; c[v >> 2] = i; c[w >> 2] = j; c[x >> 2] = k; c[y >> 2] = m; c[z >> 2] = In(c[w >> 2] | 0) | 0; c[A >> 2] = 3 + (((c[w >> 2] | 0) >>> 0 >= 1024) & 1) + (((c[w >> 2] | 0) >>> 0 >= 16384) & 1); c[B >> 2] = c[t >> 2]; c[C >> 2] = ((c[w >> 2] | 0) >>> 0 < 256) & 1; c[D >> 2] = 2; c[((c[q >> 2] | 0) + 4564) >> 2] = c[((c[p >> 2] | 0) + 4564) >> 2]; mE(c[q >> 2] | 0, c[p >> 2] | 0, 1024) | 0; if (c[s >> 2] | 0) { c[o >> 2] = Mn( c[t >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[w >> 2] | 0 ) | 0; L = c[o >> 2] | 0; l = n; return L | 0; } c[F >> 2] = (c[((c[p >> 2] | 0) + 4564) >> 2] | 0) == 2 ? 6 : 63; if ((c[w >> 2] | 0) >>> 0 <= (c[F >> 2] | 0) >>> 0) { c[o >> 2] = Mn( c[t >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[w >> 2] | 0 ) | 0; L = c[o >> 2] | 0; l = n; return L | 0; } if ( (c[u >> 2] | 0) >>> 0 < (((c[A >> 2] | 0) + 1) | 0) >>> 0 ) { c[o >> 2] = -70; L = c[o >> 2] | 0; l = n; return L | 0; } c[G >> 2] = c[((c[p >> 2] | 0) + 4564) >> 2]; c[H >> 2] = (c[r >> 2] | 0) >>> 0 < 4 ? ((c[w >> 2] | 0) >>> 0 <= 1024) & 1 : 0; if (((c[G >> 2] | 0) == 2) & ((c[A >> 2] | 0) == 3)) c[C >> 2] = 1; r = ((c[B >> 2] | 0) + (c[A >> 2] | 0)) | 0; F = ((c[u >> 2] | 0) - (c[A >> 2] | 0)) | 0; s = c[v >> 2] | 0; m = c[w >> 2] | 0; k = c[x >> 2] | 0; x = c[q >> 2] | 0; j = c[H >> 2] | 0; H = c[y >> 2] | 0; if (c[C >> 2] | 0) M = jj(r, F, s, m, 255, 11, k, 6144, x, G, j, H) | 0; else M = kj(r, F, s, m, 255, 11, k, 6144, x, G, j, H) | 0; c[E >> 2] = M; if (c[G >> 2] | 0) c[D >> 2] = 3; G = (c[E >> 2] | 0) == 0 ? 1 : (c[E >> 2] | 0) >>> 0 >= (((c[w >> 2] | 0) - (c[z >> 2] | 0)) | 0) >>> 0; if (G | (wj(c[E >> 2] | 0) | 0) | 0) { mE(c[q >> 2] | 0, c[p >> 2] | 0, 1024) | 0; c[o >> 2] = Mn( c[t >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[w >> 2] | 0 ) | 0; L = c[o >> 2] | 0; l = n; return L | 0; } if ((c[E >> 2] | 0) == 1) { mE(c[q >> 2] | 0, c[p >> 2] | 0, 1024) | 0; c[o >> 2] = Nn( c[t >> 2] | 0, c[u >> 2] | 0, c[v >> 2] | 0, c[w >> 2] | 0 ) | 0; L = c[o >> 2] | 0; l = n; return L | 0; } if ((c[D >> 2] | 0) == 2) c[((c[q >> 2] | 0) + 4564) >> 2] = 1; switch (c[A >> 2] | 0) { case 3: { c[I >> 2] = (c[D >> 2] | 0) + (((((c[C >> 2] | 0) != 0) ^ 1) & 1) << 2) + (c[w >> 2] << 4) + (c[E >> 2] << 14); wl(c[B >> 2] | 0, c[I >> 2] | 0); break; } case 4: { c[J >> 2] = (c[D >> 2] | 0) + 8 + (c[w >> 2] << 4) + (c[E >> 2] << 18); Pl(c[B >> 2] | 0, c[J >> 2] | 0); break; } case 5: { c[K >> 2] = (c[D >> 2] | 0) + 12 + (c[w >> 2] << 4) + (c[E >> 2] << 22); Pl(c[B >> 2] | 0, c[K >> 2] | 0); a[((c[B >> 2] | 0) + 4) >> 0] = (c[E >> 2] | 0) >>> 10; break; } default: { } } c[o >> 2] = (c[A >> 2] | 0) + (c[E >> 2] | 0); L = c[o >> 2] | 0; l = n; return L | 0; } function Kn(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 16) | 0; j = (g + 12) | 0; k = (g + 8) | 0; m = (g + 4) | 0; n = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ( (c[j >> 2] | 0) == (c[k >> 2] | 0) ? ((c[n >> 2] | 0) == 0) | ((c[k >> 2] | 0) >>> 0 > 2) : 0 ) { c[c[i >> 2] >> 2] = 1; c[h >> 2] = 1; o = c[h >> 2] | 0; l = g; return o | 0; } if ( c[n >> 2] | 0 ? (c[k >> 2] | 0) >>> 0 < 1e3 ? (c[c[i >> 2] >> 2] | 0) == 2 : 0 : 0 ) { c[h >> 2] = 3; o = c[h >> 2] | 0; l = g; return o | 0; } do { if (c[n >> 2] | 0) { if ( (c[k >> 2] | 0) >>> 0 >= 64 ? (c[j >> 2] | 0) >>> 0 >= ((c[k >> 2] | 0) >>> (((c[m >> 2] | 0) - 1) | 0)) >>> 0 : 0 ) break; c[c[i >> 2] >> 2] = 0; c[h >> 2] = 0; o = c[h >> 2] | 0; l = g; return o | 0; } } while (0); c[c[i >> 2] >> 2] = 1; c[h >> 2] = 2; o = c[h >> 2] | 0; l = g; return o | 0; } function Ln(b, e, f, g, h, i, j, k, m, n, o, p, q, r, s, t) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; q = q | 0; r = r | 0; s = s | 0; t = t | 0; var u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0; u = l; l = (l + 224) | 0; v = (u + 208) | 0; w = (u + 204) | 0; x = (u + 200) | 0; y = (u + 196) | 0; z = (u + 192) | 0; A = (u + 188) | 0; B = (u + 184) | 0; C = (u + 180) | 0; D = (u + 176) | 0; E = (u + 172) | 0; F = (u + 168) | 0; G = (u + 164) | 0; H = (u + 160) | 0; I = (u + 156) | 0; J = (u + 152) | 0; K = (u + 148) | 0; L = (u + 144) | 0; M = (u + 140) | 0; N = (u + 136) | 0; O = (u + 132) | 0; P = (u + 128) | 0; Q = u; R = (u + 124) | 0; S = (u + 120) | 0; T = (u + 116) | 0; U = (u + 112) | 0; V = (u + 108) | 0; c[w >> 2] = b; c[x >> 2] = e; c[y >> 2] = f; c[z >> 2] = g; c[A >> 2] = h; c[B >> 2] = i; c[C >> 2] = j; c[D >> 2] = k; c[E >> 2] = m; c[F >> 2] = n; c[G >> 2] = o; c[H >> 2] = p; c[I >> 2] = q; c[J >> 2] = r; c[K >> 2] = s; c[L >> 2] = t; c[M >> 2] = c[w >> 2]; c[N >> 2] = (c[M >> 2] | 0) + (c[x >> 2] | 0); switch (c[A >> 2] | 0) { case 1: { a[c[M >> 2] >> 0] = a[c[D >> 2] >> 0] | 0; c[O >> 2] = ii(c[y >> 2] | 0, c[C >> 2] & 255) | 0; if (wj(c[O >> 2] | 0) | 0) { c[v >> 2] = c[O >> 2]; W = c[v >> 2] | 0; l = u; return W | 0; } else { c[v >> 2] = 1; W = c[v >> 2] | 0; l = u; return W | 0; } break; } case 3: { mE(c[y >> 2] | 0, c[I >> 2] | 0, c[J >> 2] | 0) | 0; c[v >> 2] = 0; W = c[v >> 2] | 0; l = u; return W | 0; } case 0: { c[P >> 2] = Uh( c[y >> 2] | 0, c[F >> 2] | 0, c[H >> 2] | 0, c[G >> 2] | 0, c[K >> 2] | 0, c[L >> 2] | 0 ) | 0; if (wj(c[P >> 2] | 0) | 0) { c[v >> 2] = c[P >> 2]; W = c[v >> 2] | 0; l = u; return W | 0; } else { c[v >> 2] = 0; W = c[v >> 2] | 0; l = u; return W | 0; } break; } case 2: { c[R >> 2] = c[E >> 2]; c[S >> 2] = ei(c[z >> 2] | 0, c[E >> 2] | 0, c[C >> 2] | 0) | 0; if ( (c[ ((c[B >> 2] | 0) + ((d[ ((c[D >> 2] | 0) + ((c[E >> 2] | 0) - 1)) >> 0 ] | 0) << 2)) >> 2 ] | 0) >>> 0 > 1 ) { z = ((c[B >> 2] | 0) + ((d[ ((c[D >> 2] | 0) + ((c[E >> 2] | 0) - 1)) >> 0 ] | 0) << 2)) | 0; c[z >> 2] = (c[z >> 2] | 0) + -1; c[R >> 2] = (c[R >> 2] | 0) + -1; } c[T >> 2] = fi( Q, c[S >> 2] | 0, c[B >> 2] | 0, c[R >> 2] | 0, c[C >> 2] | 0 ) | 0; if (wj(c[T >> 2] | 0) | 0) { c[v >> 2] = c[T >> 2]; W = c[v >> 2] | 0; l = u; return W | 0; } c[U >> 2] = Xh( c[M >> 2] | 0, ((c[N >> 2] | 0) - (c[M >> 2] | 0)) | 0, Q, c[C >> 2] | 0, c[S >> 2] | 0 ) | 0; if (Zg(c[U >> 2] | 0) | 0) { c[v >> 2] = c[U >> 2]; W = c[v >> 2] | 0; l = u; return W | 0; } c[V >> 2] = Uh( c[y >> 2] | 0, Q, c[C >> 2] | 0, c[S >> 2] | 0, c[K >> 2] | 0, c[L >> 2] | 0 ) | 0; if (wj(c[V >> 2] | 0) | 0) { c[v >> 2] = c[V >> 2]; W = c[v >> 2] | 0; l = u; return W | 0; } else { c[v >> 2] = c[U >> 2]; W = c[v >> 2] | 0; l = u; return W | 0; } break; } default: { c[v >> 2] = -1; W = c[v >> 2] | 0; l = u; return W | 0; } } return 0; } function Mn(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 32) | 0; h = (g + 24) | 0; i = (g + 20) | 0; j = (g + 16) | 0; k = (g + 12) | 0; m = (g + 8) | 0; n = (g + 4) | 0; o = g; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = c[i >> 2]; c[o >> 2] = 1 + (((c[m >> 2] | 0) >>> 0 > 31) & 1) + (((c[m >> 2] | 0) >>> 0 > 4095) & 1); if ( (((c[m >> 2] | 0) + (c[o >> 2] | 0)) | 0) >>> 0 > (c[j >> 2] | 0) >>> 0 ) { c[h >> 2] = -70; p = c[h >> 2] | 0; l = g; return p | 0; } switch (c[o >> 2] | 0) { case 1: { a[c[n >> 2] >> 0] = 0 + (c[m >> 2] << 3); break; } case 2: { xl(c[n >> 2] | 0, (4 + (c[m >> 2] << 4)) & 65535); break; } case 3: { Pl(c[n >> 2] | 0, (12 + (c[m >> 2] << 4)) | 0); break; } default: { } } mE( ((c[n >> 2] | 0) + (c[o >> 2] | 0)) | 0, c[k >> 2] | 0, c[m >> 2] | 0 ) | 0; c[h >> 2] = (c[m >> 2] | 0) + (c[o >> 2] | 0); p = c[h >> 2] | 0; l = g; return p | 0; } function Nn(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 32) | 0; h = (g + 20) | 0; i = (g + 12) | 0; j = (g + 8) | 0; k = (g + 4) | 0; m = g; c[h >> 2] = b; c[(g + 16) >> 2] = d; c[i >> 2] = e; c[j >> 2] = f; c[k >> 2] = c[h >> 2]; c[m >> 2] = 1 + (((c[j >> 2] | 0) >>> 0 > 31) & 1) + (((c[j >> 2] | 0) >>> 0 > 4095) & 1); switch (c[m >> 2] | 0) { case 1: { a[c[k >> 2] >> 0] = 1 + (c[j >> 2] << 3); break; } case 2: { xl(c[k >> 2] | 0, (5 + (c[j >> 2] << 4)) & 65535); break; } case 3: { Pl(c[k >> 2] | 0, (13 + (c[j >> 2] << 4)) | 0); break; } default: { } } a[((c[k >> 2] | 0) + (c[m >> 2] | 0)) >> 0] = a[c[i >> 2] >> 0] | 0; l = g; return ((c[m >> 2] | 0) + 1) | 0; } function On(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = b; c[f >> 2] = (c[e >> 2] | 0) - (c[(a + 4) >> 2] | 0); l = d; return ((c[f >> 2] | 0) >>> 0 > 2684354560) | 0; } function Pn(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (1 << c[h >> 2]) - 1; c[m >> 2] = (c[j >> 2] | 0) - (c[((c[g >> 2] | 0) + 4) >> 2] | 0); c[n >> 2] = (c[m >> 2] & c[k >> 2]) + (c[i >> 2] | 0); c[o >> 2] = (c[m >> 2] | 0) - (c[n >> 2] | 0); n = ((c[g >> 2] | 0) + 4) | 0; c[n >> 2] = (c[n >> 2] | 0) + (c[o >> 2] | 0); n = ((c[g >> 2] | 0) + 8) | 0; c[n >> 2] = (c[n >> 2] | 0) + (c[o >> 2] | 0); n = ((c[g >> 2] | 0) + 16) | 0; c[n >> 2] = (c[n >> 2] | 0) - (c[o >> 2] | 0); n = ((c[g >> 2] | 0) + 12) | 0; c[n >> 2] = (c[n >> 2] | 0) - (c[o >> 2] | 0); l = f; return c[o >> 2] | 0; } function Qn(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = 0; while (1) { if ((c[i >> 2] | 0) >>> 0 >= (c[g >> 2] | 0) >>> 0) break; if ( (c[((c[f >> 2] | 0) + (c[i >> 2] << 3)) >> 2] | 0) >>> 0 < (c[h >> 2] | 0) >>> 0 ) c[((c[f >> 2] | 0) + (c[i >> 2] << 3)) >> 2] = 0; else { d = ((c[f >> 2] | 0) + (c[i >> 2] << 3)) | 0; c[d >> 2] = (c[d >> 2] | 0) - (c[h >> 2] | 0); } c[i >> 2] = (c[i >> 2] | 0) + 1; } l = e; return; } function Rn(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 24) | 0; h = (f + 20) | 0; i = (f + 16) | 0; j = (f + 12) | 0; k = (f + 8) | 0; m = (f + 4) | 0; n = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (c[h >> 2] | 0) - (c[((c[g >> 2] | 0) + 4) >> 2] | 0); if (c[j >> 2] | 0) o = c[c[j >> 2] >> 2] | 0; else o = 0; c[m >> 2] = o; if ( (c[k >> 2] | 0) >>> 0 <= (((c[i >> 2] | 0) + (c[m >> 2] | 0)) | 0) >>> 0 ) { l = f; return; } c[n >> 2] = (c[k >> 2] | 0) - (c[i >> 2] | 0); if ( (c[((c[g >> 2] | 0) + 16) >> 2] | 0) >>> 0 < (c[n >> 2] | 0) >>> 0 ) c[((c[g >> 2] | 0) + 16) >> 2] = c[n >> 2]; if ( (c[((c[g >> 2] | 0) + 12) >> 2] | 0) >>> 0 < (c[((c[g >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) c[((c[g >> 2] | 0) + 12) >> 2] = c[((c[g >> 2] | 0) + 16) >> 2]; if (!(c[j >> 2] | 0)) { l = f; return; } c[c[j >> 2] >> 2] = 0; l = f; return; } function Sn(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0; h = l; l = (l + 224) | 0; i = (h + 200) | 0; j = (h + 192) | 0; k = (h + 188) | 0; m = (h + 184) | 0; n = (h + 180) | 0; o = (h + 176) | 0; p = (h + 172) | 0; q = (h + 168) | 0; r = (h + 164) | 0; s = (h + 8) | 0; t = (h + 160) | 0; u = (h + 156) | 0; v = (h + 152) | 0; w = (h + 148) | 0; x = (h + 144) | 0; z = (h + 140) | 0; A = (h + 136) | 0; B = (h + 132) | 0; C = (h + 128) | 0; D = (h + 124) | 0; E = (h + 120) | 0; F = (h + 116) | 0; G = (h + 112) | 0; H = (h + 108) | 0; I = (h + 104) | 0; J = (h + 100) | 0; K = (h + 96) | 0; L = h; M = (h + 92) | 0; N = (h + 88) | 0; O = (h + 84) | 0; P = (h + 80) | 0; Q = (h + 76) | 0; R = (h + 72) | 0; S = (h + 68) | 0; T = (h + 64) | 0; U = (h + 60) | 0; V = (h + 56) | 0; W = (h + 52) | 0; X = (h + 48) | 0; Y = (h + 44) | 0; Z = (h + 40) | 0; _ = (h + 36) | 0; $ = (h + 32) | 0; aa = (h + 28) | 0; ba = (h + 24) | 0; ca = (h + 20) | 0; da = (h + 16) | 0; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; g = c[k >> 2] | 0; c[i >> 2] = c[g >> 2]; c[(i + 4) >> 2] = c[(g + 4) >> 2]; c[(i + 8) >> 2] = c[(g + 8) >> 2]; c[(i + 12) >> 2] = c[(g + 12) >> 2]; c[(i + 16) >> 2] = c[(g + 16) >> 2]; c[q >> 2] = Tn(i) | 0; c[r >> 2] = c[((c[n >> 2] | 0) + 12) >> 2]; g = ((c[k >> 2] | 0) + 32) | 0; f = c[(g + 4) >> 2] | 0; e = s; c[e >> 2] = c[g >> 2]; c[(e + 4) >> 2] = f; c[t >> 2] = (c[((c[n >> 2] | 0) + 4) >> 2] | 0) - (c[((c[n >> 2] | 0) + 8) >> 2] | 0); c[u >> 2] = 1 << c[((c[n >> 2] | 0) + 8) >> 2]; c[v >> 2] = c[((c[n >> 2] | 0) + 16) >> 2]; c[w >> 2] = (1 << c[((c[n >> 2] | 0) + 16) >> 2]) - 1; c[x >> 2] = c[((c[k >> 2] | 0) + 12) >> 2]; if (c[q >> 2] | 0) ea = c[((c[k >> 2] | 0) + 16) >> 2] | 0; else ea = c[x >> 2] | 0; c[z >> 2] = ea; c[A >> 2] = c[((c[k >> 2] | 0) + 4) >> 2]; if (c[q >> 2] | 0) fa = c[((c[k >> 2] | 0) + 8) >> 2] | 0; else fa = 0; c[B >> 2] = fa; c[C >> 2] = c[q >> 2] | 0 ? ((c[B >> 2] | 0) + (c[z >> 2] | 0)) | 0 : 0; c[D >> 2] = c[q >> 2] | 0 ? ((c[B >> 2] | 0) + (c[x >> 2] | 0)) | 0 : 0; c[E >> 2] = (c[A >> 2] | 0) + (c[x >> 2] | 0); c[F >> 2] = c[o >> 2]; c[G >> 2] = (c[F >> 2] | 0) + (c[p >> 2] | 0); c[H >> 2] = (c[G >> 2] | 0) + (0 - ((c[r >> 2] | 0) >>> 0 > 8 ? c[r >> 2] | 0 : 8)); c[I >> 2] = c[F >> 2]; c[J >> 2] = c[F >> 2]; c[K >> 2] = 0; p = L; c[p >> 2] = 0; c[(p + 4) >> 2] = 0; while (1) { if ((c[J >> 2] | 0) >>> 0 > (c[H >> 2] | 0) >>> 0) { ga = 32; break; } c[N >> 2] = (c[J >> 2] | 0) - (c[A >> 2] | 0); c[O >> 2] = 0; c[P >> 2] = 0; c[Q >> 2] = 0; if ((c[J >> 2] | 0) != (c[F >> 2] | 0)) { p = L; o = s; fa = Un( c[p >> 2] | 0, c[(p + 4) >> 2] | 0, a[c[K >> 2] >> 0] | 0, a[((c[K >> 2] | 0) + (c[r >> 2] | 0)) >> 0] | 0, c[o >> 2] | 0, c[(o + 4) >> 2] | 0 ) | 0; o = L; c[o >> 2] = fa; c[(o + 4) >> 2] = y; } else { o = Vn(c[J >> 2] | 0, c[r >> 2] | 0) | 0; fa = L; c[fa >> 2] = o; c[(fa + 4) >> 2] = y; } c[K >> 2] = c[J >> 2]; fa = L; o = Wn( c[fa >> 2] | 0, c[(fa + 4) >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0 ) | 0; if ((o | 0) != (c[w >> 2] | 0)) { c[J >> 2] = (c[J >> 2] | 0) + 1; continue; } o = c[k >> 2] | 0; fa = L; p = Xn(c[fa >> 2] | 0, c[(fa + 4) >> 2] | 0, c[t >> 2] | 0) | 0; fa = c[n >> 2] | 0; c[i >> 2] = c[fa >> 2]; c[(i + 4) >> 2] = c[(fa + 4) >> 2]; c[(i + 8) >> 2] = c[(fa + 8) >> 2]; c[(i + 12) >> 2] = c[(fa + 12) >> 2]; c[(i + 16) >> 2] = c[(fa + 16) >> 2]; c[(i + 20) >> 2] = c[(fa + 20) >> 2]; c[R >> 2] = Yn(o, p, i) | 0; c[T >> 2] = 0; p = L; c[U >> 2] = Zn(c[p >> 2] | 0, c[(p + 4) >> 2] | 0, c[t >> 2] | 0) | 0; c[S >> 2] = c[R >> 2]; while (1) { if ( (c[S >> 2] | 0) >>> 0 >= (((c[R >> 2] | 0) + (c[u >> 2] << 3)) | 0) >>> 0 ) break; do { if ( (c[((c[S >> 2] | 0) + 4) >> 2] | 0) == (c[U >> 2] | 0) ? (c[c[S >> 2] >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 : 0 ) { if (c[q >> 2] | 0) { c[Y >> 2] = (c[c[S >> 2] >> 2] | 0) >>> 0 < (c[x >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[A >> 2] | 0; c[Z >> 2] = (c[Y >> 2] | 0) + (c[c[S >> 2] >> 2] | 0); c[_ >> 2] = (c[c[S >> 2] >> 2] | 0) >>> 0 < (c[x >> 2] | 0) >>> 0 ? c[D >> 2] | 0 : c[G >> 2] | 0; c[$ >> 2] = (c[c[S >> 2] >> 2] | 0) >>> 0 < (c[x >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[E >> 2] | 0; c[V >> 2] = _n( c[J >> 2] | 0, c[Z >> 2] | 0, c[G >> 2] | 0, c[_ >> 2] | 0, c[E >> 2] | 0 ) | 0; if ((c[V >> 2] | 0) >>> 0 < (c[r >> 2] | 0) >>> 0) break; c[W >> 2] = $n( c[J >> 2] | 0, c[I >> 2] | 0, c[Z >> 2] | 0, c[$ >> 2] | 0 ) | 0; c[X >> 2] = (c[V >> 2] | 0) + (c[W >> 2] | 0); } else { c[aa >> 2] = (c[A >> 2] | 0) + (c[c[S >> 2] >> 2] | 0); c[V >> 2] = ao(c[J >> 2] | 0, c[aa >> 2] | 0, c[G >> 2] | 0) | 0; if ((c[V >> 2] | 0) >>> 0 < (c[r >> 2] | 0) >>> 0) break; c[W >> 2] = $n( c[J >> 2] | 0, c[I >> 2] | 0, c[aa >> 2] | 0, c[E >> 2] | 0 ) | 0; c[X >> 2] = (c[V >> 2] | 0) + (c[W >> 2] | 0); } if ((c[X >> 2] | 0) >>> 0 > (c[T >> 2] | 0) >>> 0) { c[T >> 2] = c[X >> 2]; c[O >> 2] = c[V >> 2]; c[P >> 2] = c[W >> 2]; c[Q >> 2] = c[S >> 2]; } } } while (0); c[S >> 2] = (c[S >> 2] | 0) + 8; } if (!(c[Q >> 2] | 0)) { p = c[k >> 2] | 0; o = L; fa = c[o >> 2] | 0; ea = c[(o + 4) >> 2] | 0; o = c[t >> 2] | 0; f = c[N >> 2] | 0; e = c[n >> 2] | 0; c[i >> 2] = c[e >> 2]; c[(i + 4) >> 2] = c[(e + 4) >> 2]; c[(i + 8) >> 2] = c[(e + 8) >> 2]; c[(i + 12) >> 2] = c[(e + 12) >> 2]; c[(i + 16) >> 2] = c[(e + 16) >> 2]; c[(i + 20) >> 2] = c[(e + 20) >> 2]; bo(p, fa, ea, o, f, i); c[J >> 2] = (c[J >> 2] | 0) + 1; continue; } c[M >> 2] = (c[O >> 2] | 0) + (c[P >> 2] | 0); c[J >> 2] = (c[J >> 2] | 0) + (0 - (c[P >> 2] | 0)); c[ba >> 2] = c[c[Q >> 2] >> 2]; c[ca >> 2] = (c[N >> 2] | 0) - (c[ba >> 2] | 0); c[da >> 2] = (c[c[m >> 2] >> 2] | 0) + (((c[((c[m >> 2] | 0) + 8) >> 2] | 0) * 12) | 0); if ( (c[((c[m >> 2] | 0) + 8) >> 2] | 0) == (c[((c[m >> 2] | 0) + 12) >> 2] | 0) ) { ga = 28; break; } c[((c[da >> 2] | 0) + 4) >> 2] = (c[J >> 2] | 0) - (c[I >> 2] | 0); c[((c[da >> 2] | 0) + 8) >> 2] = c[M >> 2]; c[c[da >> 2] >> 2] = c[ca >> 2]; f = ((c[m >> 2] | 0) + 8) | 0; c[f >> 2] = (c[f >> 2] | 0) + 1; f = c[k >> 2] | 0; o = L; ea = c[o >> 2] | 0; fa = c[(o + 4) >> 2] | 0; o = c[t >> 2] | 0; p = ((c[K >> 2] | 0) - (c[A >> 2] | 0)) | 0; e = c[n >> 2] | 0; c[i >> 2] = c[e >> 2]; c[(i + 4) >> 2] = c[(e + 4) >> 2]; c[(i + 8) >> 2] = c[(e + 8) >> 2]; c[(i + 12) >> 2] = c[(e + 12) >> 2]; c[(i + 16) >> 2] = c[(e + 16) >> 2]; c[(i + 20) >> 2] = c[(e + 20) >> 2]; bo(f, ea, fa, o, p, i); if ( (((c[J >> 2] | 0) + (c[M >> 2] | 0)) | 0) >>> 0 <= (c[H >> 2] | 0) >>> 0 ) { p = c[k >> 2] | 0; o = L; fa = c[o >> 2] | 0; ea = c[(o + 4) >> 2] | 0; o = c[K >> 2] | 0; f = ((c[J >> 2] | 0) + (c[M >> 2] | 0)) | 0; e = c[A >> 2] | 0; g = c[t >> 2] | 0; d = c[n >> 2] | 0; c[i >> 2] = c[d >> 2]; c[(i + 4) >> 2] = c[(d + 4) >> 2]; c[(i + 8) >> 2] = c[(d + 8) >> 2]; c[(i + 12) >> 2] = c[(d + 12) >> 2]; c[(i + 16) >> 2] = c[(d + 16) >> 2]; c[(i + 20) >> 2] = c[(d + 20) >> 2]; d = co(p, fa, ea, o, f, e, g, i) | 0; g = L; c[g >> 2] = d; c[(g + 4) >> 2] = y; c[K >> 2] = (c[J >> 2] | 0) + (c[M >> 2] | 0) + -1; } c[J >> 2] = (c[J >> 2] | 0) + (c[M >> 2] | 0); c[I >> 2] = c[J >> 2]; } if ((ga | 0) == 28) { c[j >> 2] = -70; ha = c[j >> 2] | 0; l = h; return ha | 0; } else if ((ga | 0) == 32) { c[j >> 2] = (c[G >> 2] | 0) - (c[I >> 2] | 0); ha = c[j >> 2] | 0; l = h; return ha | 0; } return 0; } function Tn(a) { a = a | 0; return ( ((c[(a + 16) >> 2] | 0) >>> 0 < (c[(a + 12) >> 2] | 0) >>> 0) | 0 ); } function Un(b, e, f, g, h, i) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; j = l; l = (l + 32) | 0; k = (j + 8) | 0; m = (j + 17) | 0; n = (j + 16) | 0; o = j; p = k; c[p >> 2] = b; c[(p + 4) >> 2] = e; a[m >> 0] = f; a[n >> 0] = g; g = o; c[g >> 2] = h; c[(g + 4) >> 2] = i; i = ((d[m >> 0] | 0) + 10) | 0; m = o; o = cE( i | 0, ((((i | 0) < 0) << 31) >> 31) | 0, c[m >> 2] | 0, c[(m + 4) >> 2] | 0 ) | 0; m = k; i = eE(c[m >> 2] | 0, c[(m + 4) >> 2] | 0, o | 0, y | 0) | 0; o = k; c[o >> 2] = i; c[(o + 4) >> 2] = y; o = k; i = cE( c[o >> 2] | 0, c[(o + 4) >> 2] | 0, -1213897629, -820265764 ) | 0; o = k; c[o >> 2] = i; c[(o + 4) >> 2] = y; o = ((d[n >> 0] | 0) + 10) | 0; n = k; i = dE( c[n >> 2] | 0, c[(n + 4) >> 2] | 0, o | 0, ((((o | 0) < 0) << 31) >> 31) | 0 ) | 0; o = k; c[o >> 2] = i; c[(o + 4) >> 2] = y; o = k; y = c[(o + 4) >> 2] | 0; l = j; return c[o >> 2] | 0; } function Vn(a, b) { a = a | 0; b = b | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; e = l; l = (l + 32) | 0; f = (e + 16) | 0; g = (e + 12) | 0; h = e; i = (e + 8) | 0; c[f >> 2] = a; c[g >> 2] = b; b = h; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[i >> 2] = 0; while (1) { b = h; j = c[b >> 2] | 0; k = c[(b + 4) >> 2] | 0; if ((c[i >> 2] | 0) >>> 0 >= (c[g >> 2] | 0) >>> 0) break; b = cE(j | 0, k | 0, -1213897629, -820265764) | 0; a = h; c[a >> 2] = b; c[(a + 4) >> 2] = y; a = ((d[((c[f >> 2] | 0) + (c[i >> 2] | 0)) >> 0] | 0) + 10) | 0; b = h; m = dE( c[b >> 2] | 0, c[(b + 4) >> 2] | 0, a | 0, ((((a | 0) < 0) << 31) >> 31) | 0 ) | 0; a = h; c[a >> 2] = m; c[(a + 4) >> 2] = y; c[i >> 2] = (c[i >> 2] | 0) + 1; } y = k; l = e; return j | 0; } function Wn(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = f; i = (f + 12) | 0; j = (f + 8) | 0; k = h; c[k >> 2] = a; c[(k + 4) >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; e = h; h = c[e >> 2] | 0; d = c[(e + 4) >> 2] | 0; if ( ((32 - (c[i >> 2] | 0)) | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ) { c[g >> 2] = h & ((1 << c[j >> 2]) - 1); m = c[g >> 2] | 0; l = f; return m | 0; } else { e = iE( h | 0, d | 0, (32 - (c[i >> 2] | 0) - (c[j >> 2] | 0)) | 0 ) | 0; c[g >> 2] = e & ((1 << c[j >> 2]) - 1); m = c[g >> 2] | 0; l = f; return m | 0; } return 0; } function Xn(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; if (!(c[g >> 2] | 0)) { i = 0; l = e; return i | 0; } d = f; f = iE( c[d >> 2] | 0, c[(d + 4) >> 2] | 0, (64 - (c[g >> 2] | 0)) | 0 ) | 0; i = f; l = e; return i | 0; } function Yn(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = a; c[g >> 2] = b; l = e; return ( ((c[((c[f >> 2] | 0) + 20) >> 2] | 0) + ((c[g >> 2] << c[(d + 8) >> 2]) << 3)) | 0 ); } function Zn(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 8) | 0; h = f; c[h >> 2] = a; c[(h + 4) >> 2] = b; c[g >> 2] = d; d = f; f = iE( c[d >> 2] | 0, c[(d + 4) >> 2] | 0, (32 - (c[g >> 2] | 0)) | 0 ) | 0; l = e; return f | 0; } function _n(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; if ( (((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0) >>> 0 < (c[k >> 2] | 0) >>> 0 ) q = ((c[i >> 2] | 0) + ((c[m >> 2] | 0) - (c[j >> 2] | 0))) | 0; else q = c[k >> 2] | 0; c[o >> 2] = q; c[p >> 2] = ao(c[i >> 2] | 0, c[j >> 2] | 0, c[o >> 2] | 0) | 0; o = c[p >> 2] | 0; if ( (((c[j >> 2] | 0) + (c[p >> 2] | 0)) | 0) != (c[m >> 2] | 0) ) { c[h >> 2] = o; r = c[h >> 2] | 0; l = g; return r | 0; } else { c[h >> 2] = o + (ao( ((c[i >> 2] | 0) + (c[p >> 2] | 0)) | 0, c[n >> 2] | 0, c[k >> 2] | 0 ) | 0); r = c[h >> 2] | 0; l = g; return r | 0; } return 0; } function $n(a, b, e, f) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; g = l; l = (l + 32) | 0; h = (g + 16) | 0; i = (g + 12) | 0; j = (g + 8) | 0; k = (g + 4) | 0; m = g; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = f; c[m >> 2] = 0; while (1) { if ((c[h >> 2] | 0) >>> 0 <= (c[i >> 2] | 0) >>> 0) { n = 6; break; } if ((c[j >> 2] | 0) >>> 0 <= (c[k >> 2] | 0) >>> 0) { n = 6; break; } if ( (d[((c[h >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[j >> 2] | 0) + -1) >> 0] | 0 | 0) ) { n = 6; break; } c[h >> 2] = (c[h >> 2] | 0) + -1; c[j >> 2] = (c[j >> 2] | 0) + -1; c[m >> 2] = (c[m >> 2] | 0) + 1; } if ((n | 0) == 6) { l = g; return c[m >> 2] | 0; } return 0; } function ao(a, b, e) { a = a | 0; b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = e; c[k >> 2] = c[h >> 2]; c[m >> 2] = (c[j >> 2] | 0) + -3; a: do { if ((c[h >> 2] | 0) >>> 0 < (c[m >> 2] | 0) >>> 0) { e = fo(c[i >> 2] | 0) | 0; c[n >> 2] = e ^ (fo(c[h >> 2] | 0) | 0); if (c[n >> 2] | 0) { c[g >> 2] = go(c[n >> 2] | 0) | 0; p = c[g >> 2] | 0; l = f; return p | 0; } c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; while (1) { if ((c[h >> 2] | 0) >>> 0 >= (c[m >> 2] | 0) >>> 0) break a; e = fo(c[i >> 2] | 0) | 0; c[o >> 2] = e ^ (fo(c[h >> 2] | 0) | 0); if (c[o >> 2] | 0) break; c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } e = go(c[o >> 2] | 0) | 0; c[h >> 2] = (c[h >> 2] | 0) + e; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } } while (0); if ( ( ho() | 0 ? (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -3) | 0) >>> 0 : 0 ) ? ((o = io(c[i >> 2] | 0) | 0), (o | 0) == (io(c[h >> 2] | 0) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 4; c[i >> 2] = (c[i >> 2] | 0) + 4; } if ( (c[h >> 2] | 0) >>> 0 < (((c[j >> 2] | 0) + -1) | 0) >>> 0 ? ((o = (jo(c[i >> 2] | 0) | 0) & 65535), (o | 0) == (((jo(c[h >> 2] | 0) | 0) & 65535) | 0)) : 0 ) { c[h >> 2] = (c[h >> 2] | 0) + 2; c[i >> 2] = (c[i >> 2] | 0) + 2; } if ( (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? (d[c[i >> 2] >> 0] | 0 | 0) == (d[c[h >> 2] >> 0] | 0 | 0) : 0 ) c[h >> 2] = (c[h >> 2] | 0) + 1; c[g >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0); p = c[g >> 2] | 0; l = f; return p | 0; } function bo(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; h = l; l = (l + 80) | 0; i = (h + 56) | 0; j = (h + 48) | 0; k = (h + 40) | 0; m = h; n = (h + 36) | 0; o = (h + 32) | 0; p = (h + 28) | 0; q = (h + 24) | 0; r = (h + 20) | 0; s = (h + 16) | 0; t = (h + 8) | 0; c[k >> 2] = a; a = m; c[a >> 2] = b; c[(a + 4) >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; f = m; c[p >> 2] = Wn( c[f >> 2] | 0, c[(f + 4) >> 2] | 0, c[n >> 2] | 0, c[(g + 16) >> 2] | 0 ) | 0; c[q >> 2] = (1 << c[(g + 16) >> 2]) - 1; if ((c[p >> 2] | 0) != (c[q >> 2] | 0)) { l = h; return; } q = m; c[r >> 2] = Xn(c[q >> 2] | 0, c[(q + 4) >> 2] | 0, c[n >> 2] | 0) | 0; q = m; c[s >> 2] = Zn(c[q >> 2] | 0, c[(q + 4) >> 2] | 0, c[n >> 2] | 0) | 0; c[t >> 2] = c[o >> 2]; c[(t + 4) >> 2] = c[s >> 2]; s = c[k >> 2] | 0; k = c[r >> 2] | 0; c[j >> 2] = c[t >> 2]; c[(j + 4) >> 2] = c[(t + 4) >> 2]; c[i >> 2] = c[g >> 2]; c[(i + 4) >> 2] = c[(g + 4) >> 2]; c[(i + 8) >> 2] = c[(g + 8) >> 2]; c[(i + 12) >> 2] = c[(g + 12) >> 2]; c[(i + 16) >> 2] = c[(g + 16) >> 2]; c[(i + 20) >> 2] = c[(g + 20) >> 2]; eo(s, k, j, i); l = h; return; } function co(b, d, e, f, g, h, i, j) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; k = l; l = (l + 64) | 0; m = (k + 40) | 0; n = (k + 36) | 0; o = (k + 8) | 0; p = (k + 32) | 0; q = (k + 28) | 0; r = (k + 24) | 0; s = (k + 20) | 0; t = k; u = (k + 16) | 0; c[n >> 2] = b; b = o; c[b >> 2] = d; c[(b + 4) >> 2] = e; c[p >> 2] = f; c[q >> 2] = g; c[r >> 2] = h; c[s >> 2] = i; i = o; o = c[(i + 4) >> 2] | 0; h = t; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = o; c[u >> 2] = (c[p >> 2] | 0) + 1; while (1) { p = t; v = c[p >> 2] | 0; w = c[(p + 4) >> 2] | 0; if ((c[u >> 2] | 0) >>> 0 >= (c[q >> 2] | 0) >>> 0) break; p = ((c[n >> 2] | 0) + 32) | 0; o = Un( v, w, a[((c[u >> 2] | 0) + -1) >> 0] | 0, a[ ((c[u >> 2] | 0) + ((c[(j + 12) >> 2] | 0) - 1)) >> 0 ] | 0, c[p >> 2] | 0, c[(p + 4) >> 2] | 0 ) | 0; p = t; c[p >> 2] = o; c[(p + 4) >> 2] = y; p = c[n >> 2] | 0; o = t; h = c[o >> 2] | 0; i = c[(o + 4) >> 2] | 0; o = c[s >> 2] | 0; g = ((c[u >> 2] | 0) - (c[r >> 2] | 0)) | 0; c[m >> 2] = c[j >> 2]; c[(m + 4) >> 2] = c[(j + 4) >> 2]; c[(m + 8) >> 2] = c[(j + 8) >> 2]; c[(m + 12) >> 2] = c[(j + 12) >> 2]; c[(m + 16) >> 2] = c[(j + 16) >> 2]; c[(m + 20) >> 2] = c[(j + 20) >> 2]; bo(p, h, i, o, g, m); c[u >> 2] = (c[u >> 2] | 0) + 1; } y = w; l = k; return v | 0; } function eo(b, e, f, g) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0; h = l; l = (l + 48) | 0; i = (h + 16) | 0; j = (h + 8) | 0; k = (h + 4) | 0; m = h; c[j >> 2] = b; c[k >> 2] = e; c[m >> 2] = c[((c[j >> 2] | 0) + 24) >> 2]; e = c[j >> 2] | 0; j = c[k >> 2] | 0; c[i >> 2] = c[g >> 2]; c[(i + 4) >> 2] = c[(g + 4) >> 2]; c[(i + 8) >> 2] = c[(g + 8) >> 2]; c[(i + 12) >> 2] = c[(g + 12) >> 2]; c[(i + 16) >> 2] = c[(g + 16) >> 2]; c[(i + 20) >> 2] = c[(g + 20) >> 2]; b = Yn(e, j, i) | 0; i = (b + ((d[((c[m >> 2] | 0) + (c[k >> 2] | 0)) >> 0] | 0) << 3)) | 0; c[i >> 2] = c[f >> 2]; c[(i + 4) >> 2] = c[(f + 4) >> 2]; f = ((c[m >> 2] | 0) + (c[k >> 2] | 0)) | 0; a[f >> 0] = (((a[f >> 0] | 0) + 1) << 24) >> 24; f = ((c[m >> 2] | 0) + (c[k >> 2] | 0)) | 0; a[f >> 0] = (d[f >> 0] | 0) & ((1 << c[(g + 8) >> 2]) - 1); l = h; return; } function fo(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function go(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0; b = l; l = (l + 16) | 0; d = (b + 4) | 0; e = b; c[e >> 2] = a; a = (ko() | 0) != 0; f = (ho() | 0) != 0; g = c[e >> 2] | 0; do { if (a) { if (f) { e = ob(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (fE(g | 0) | 0) >> 3; break; } } else if (f) { e = lE(g | 0, 0, 0) | 0; c[d >> 2] = e >> 3; break; } else { c[d >> 2] = (Q(g | 0) | 0) >> 3; break; } } while (0); l = b; return c[d >> 2] | 0; } function ho() { return 0; } function io(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return ( d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0 ); } function jo(a) { a = a | 0; var b = 0, e = 0; b = l; l = (l + 16) | 0; e = b; c[e >> 2] = a; a = c[e >> 2] | 0; l = b; return d[a >> 0] | (d[(a + 1) >> 0] << 8) | 0; } function ko() { return d[11936] | 0 | 0; } function lo(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0; f = l; l = (l + 32) | 0; g = (f + 20) | 0; h = (f + 16) | 0; i = (f + 12) | 0; j = f; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = e; e = ((c[c[g >> 2] >> 2] | 0) + (((c[((c[g >> 2] | 0) + 4) >> 2] | 0) * 12) | 0)) | 0; c[j >> 2] = c[e >> 2]; c[(j + 4) >> 2] = c[(e + 4) >> 2]; c[(j + 8) >> 2] = c[(e + 8) >> 2]; if ( (c[h >> 2] | 0) >>> 0 >= (((c[(j + 4) >> 2] | 0) + (c[(j + 8) >> 2] | 0)) | 0) >>> 0 ) { e = ((c[g >> 2] | 0) + 4) | 0; c[e >> 2] = (c[e >> 2] | 0) + 1; c[a >> 2] = c[j >> 2]; c[(a + 4) >> 2] = c[(j + 4) >> 2]; c[(a + 8) >> 2] = c[(j + 8) >> 2]; l = f; return; } if ((c[h >> 2] | 0) >>> 0 > (c[(j + 4) >> 2] | 0) >>> 0) { if ( (c[h >> 2] | 0) >>> 0 < (((c[(j + 4) >> 2] | 0) + (c[(j + 8) >> 2] | 0)) | 0) >>> 0 ? ((c[(j + 8) >> 2] = (c[h >> 2] | 0) - (c[(j + 4) >> 2] | 0)), (c[(j + 8) >> 2] | 0) >>> 0 < (c[i >> 2] | 0) >>> 0) : 0 ) c[j >> 2] = 0; } else c[j >> 2] = 0; An(c[g >> 2] | 0, c[h >> 2] | 0, c[i >> 2] | 0); c[a >> 2] = c[j >> 2]; c[(a + 4) >> 2] = c[(j + 4) >> 2]; c[(a + 8) >> 2] = c[(j + 8) >> 2]; l = f; return; } function mo(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = l; l = (l + 16) | 0; e = (d + 8) | 0; f = (d + 4) | 0; g = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = (c[f >> 2] | 0) - (c[((c[e >> 2] | 0) + 4) >> 2] | 0); if ( (c[g >> 2] | 0) >>> 0 <= (((c[((c[e >> 2] | 0) + 24) >> 2] | 0) + 1024) | 0) >>> 0 ) { l = d; return; } if ( 512 < (((c[g >> 2] | 0) - (c[((c[e >> 2] | 0) + 24) >> 2] | 0) - 1024) | 0) >>> 0 ) h = 512; else h = ((c[g >> 2] | 0) - (c[((c[e >> 2] | 0) + 24) >> 2] | 0) - 1024) | 0; c[((c[e >> 2] | 0) + 24) >> 2] = (c[g >> 2] | 0) - h; l = d; return; } function no(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = (e + 12) | 0; g = (e + 8) | 0; h = (e + 4) | 0; i = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[h >> 2]; switch (c[((c[g >> 2] | 0) + 24) >> 2] | 0) { case 1: { Nj(c[f >> 2] | 0, c[g >> 2] | 0, c[i >> 2] | 0); c[((c[f >> 2] | 0) + 24) >> 2] = (c[i >> 2] | 0) - (c[((c[f >> 2] | 0) + 4) >> 2] | 0); l = e; return 0; } case 2: { Oj(c[f >> 2] | 0, c[g >> 2] | 0, c[i >> 2] | 0); c[((c[f >> 2] | 0) + 24) >> 2] = (c[i >> 2] | 0) - (c[((c[f >> 2] | 0) + 4) >> 2] | 0); l = e; return 0; } default: { l = e; return 0; } } return 0; } function oo(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; h = l; l = (l + 32) | 0; i = (h + 16) | 0; j = (h + 12) | 0; k = (h + 8) | 0; m = (h + 4) | 0; n = h; c[i >> 2] = a; c[j >> 2] = d; c[k >> 2] = e; c[m >> 2] = f; c[n >> 2] = g; po( c[((c[i >> 2] | 0) + 12) >> 2] | 0, c[k >> 2] | 0, c[j >> 2] | 0 ); k = ((c[i >> 2] | 0) + 12) | 0; c[k >> 2] = (c[k >> 2] | 0) + (c[j >> 2] | 0); if ((c[j >> 2] | 0) >>> 0 > 65535) { c[((c[i >> 2] | 0) + 28) >> 2] = 1; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; } b[((c[((c[i >> 2] | 0) + 4) >> 2] | 0) + 4) >> 1] = c[j >> 2]; c[c[((c[i >> 2] | 0) + 4) >> 2] >> 2] = (c[m >> 2] | 0) + 1; if ((c[n >> 2] | 0) >>> 0 <= 65535) { o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } c[((c[i >> 2] | 0) + 28) >> 2] = 2; c[((c[i >> 2] | 0) + 32) >> 2] = ((((c[((c[i >> 2] | 0) + 4) >> 2] | 0) - (c[c[i >> 2] >> 2] | 0)) | 0) / 8) | 0; o = c[n >> 2] | 0; p = o & 65535; q = c[i >> 2] | 0; r = (q + 4) | 0; s = c[r >> 2] | 0; t = (s + 6) | 0; b[t >> 1] = p; u = c[i >> 2] | 0; v = (u + 4) | 0; w = c[v >> 2] | 0; x = (w + 8) | 0; c[v >> 2] = x; l = h; return; } function po(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 32) | 0; f = (e + 20) | 0; g = (e + 16) | 0; h = (e + 12) | 0; i = (e + 8) | 0; j = (e + 4) | 0; k = e; c[f >> 2] = a; c[g >> 2] = b; c[h >> 2] = d; c[i >> 2] = c[g >> 2]; c[j >> 2] = c[f >> 2]; c[k >> 2] = (c[j >> 2] | 0) + (c[h >> 2] | 0); do { qo(c[j >> 2] | 0, c[i >> 2] | 0); c[j >> 2] = (c[j >> 2] | 0) + 8; c[i >> 2] = (c[i >> 2] | 0) + 8; } while ((c[j >> 2] | 0) >>> 0 < (c[k >> 2] | 0) >>> 0); l = e; return; } function qo(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = (e + 4) | 0; g = e; c[f >> 2] = b; c[g >> 2] = d; d = c[f >> 2] | 0; f = c[g >> 2] | 0; a[d >> 0] = a[f >> 0] | 0; a[(d + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(d + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(d + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(d + 4) >> 0] = a[(f + 4) >> 0] | 0; a[(d + 5) >> 0] = a[(f + 5) >> 0] | 0; a[(d + 6) >> 0] = a[(f + 6) >> 0] | 0; a[(d + 7) >> 0] = a[(f + 7) >> 0] | 0; l = e; return; } function ro(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = b; c[f >> 2] = (c[e >> 2] | 0) - (c[(a + 4) >> 2] | 0); l = d; return ((c[f >> 2] | 0) >>> 0 > 2684354560) | 0; } function so(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 28) | 0; h = (f + 24) | 0; i = (f + 20) | 0; j = (f + 16) | 0; k = (f + 12) | 0; m = (f + 8) | 0; n = (f + 4) | 0; o = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (1 << c[h >> 2]) - 1; c[m >> 2] = (c[j >> 2] | 0) - (c[((c[g >> 2] | 0) + 4) >> 2] | 0); c[n >> 2] = (c[m >> 2] & c[k >> 2]) + (c[i >> 2] | 0); c[o >> 2] = (c[m >> 2] | 0) - (c[n >> 2] | 0); n = ((c[g >> 2] | 0) + 4) | 0; c[n >> 2] = (c[n >> 2] | 0) + (c[o >> 2] | 0); n = ((c[g >> 2] | 0) + 8) | 0; c[n >> 2] = (c[n >> 2] | 0) + (c[o >> 2] | 0); n = ((c[g >> 2] | 0) + 16) | 0; c[n >> 2] = (c[n >> 2] | 0) - (c[o >> 2] | 0); n = ((c[g >> 2] | 0) + 12) | 0; c[n >> 2] = (c[n >> 2] | 0) - (c[o >> 2] | 0); l = f; return c[o >> 2] | 0; } function to(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; d = l; l = (l + 32) | 0; e = (d + 20) | 0; f = (d + 16) | 0; g = (d + 12) | 0; h = (d + 8) | 0; i = (d + 4) | 0; j = d; c[e >> 2] = a; c[f >> 2] = b; c[g >> 2] = (c[e >> 2] | 0) + 472 + 8; c[h >> 2] = 1 << c[((c[e >> 2] | 0) + 116 + 4 + 8) >> 2]; vo( c[((c[g >> 2] | 0) + 36) >> 2] | 0, c[h >> 2] | 0, c[f >> 2] | 0 ); do { if ((c[((c[e >> 2] | 0) + 116 + 4 + 24) >> 2] | 0) != 1) { c[i >> 2] = 1 << c[((c[e >> 2] | 0) + 116 + 4 + 4) >> 2]; h = c[((c[g >> 2] | 0) + 44) >> 2] | 0; b = c[i >> 2] | 0; a = c[f >> 2] | 0; if ((c[((c[e >> 2] | 0) + 116 + 4 + 24) >> 2] | 0) == 6) { wo(h, b, a); break; } else { vo(h, b, a); break; } } } while (0); if (!(c[((c[g >> 2] | 0) + 32) >> 2] | 0)) { l = d; return; } c[j >> 2] = 1 << c[((c[g >> 2] | 0) + 32) >> 2]; vo( c[((c[g >> 2] | 0) + 40) >> 2] | 0, c[j >> 2] | 0, c[f >> 2] | 0 ); l = d; return; } function uo(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 32) | 0; g = (f + 24) | 0; h = (f + 20) | 0; i = (f + 16) | 0; j = (f + 12) | 0; k = (f + 8) | 0; m = (f + 4) | 0; n = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (c[h >> 2] | 0) - (c[((c[g >> 2] | 0) + 4) >> 2] | 0); if (c[j >> 2] | 0) o = c[c[j >> 2] >> 2] | 0; else o = 0; c[m >> 2] = o; if ( (c[k >> 2] | 0) >>> 0 <= (((c[i >> 2] | 0) + (c[m >> 2] | 0)) | 0) >>> 0 ) { l = f; return; } c[n >> 2] = (c[k >> 2] | 0) - (c[i >> 2] | 0); if ( (c[((c[g >> 2] | 0) + 16) >> 2] | 0) >>> 0 < (c[n >> 2] | 0) >>> 0 ) c[((c[g >> 2] | 0) + 16) >> 2] = c[n >> 2]; if ( (c[((c[g >> 2] | 0) + 12) >> 2] | 0) >>> 0 < (c[((c[g >> 2] | 0) + 16) >> 2] | 0) >>> 0 ) c[((c[g >> 2] | 0) + 12) >> 2] = c[((c[g >> 2] | 0) + 16) >> 2]; if (!(c[j >> 2] | 0)) { l = f; return; } c[c[j >> 2] >> 2] = 0; l = f; return; } function vo(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; e = l; l = (l + 48) | 0; f = (e + 44) | 0; g = (e + 40) | 0; h = (e + 36) | 0; i = (e + 32) | 0; j = (e + 28) | 0; k = (e + 24) | 0; m = (e + 20) | 0; n = (e + 16) | 0; o = (e + 12) | 0; p = (e + 8) | 0; q = (e + 4) | 0; r = e; c[p >> 2] = a; c[q >> 2] = b; c[r >> 2] = d; d = c[q >> 2] | 0; q = c[r >> 2] | 0; c[f >> 2] = c[p >> 2]; c[g >> 2] = d; c[h >> 2] = q; c[i >> 2] = 0; c[j >> 2] = ((c[g >> 2] | 0) / 16) | 0; c[k >> 2] = 0; c[m >> 2] = 0; while (1) { if ((c[m >> 2] | 0) >= (c[j >> 2] | 0)) break; c[n >> 2] = 0; while (1) { if ((c[n >> 2] | 0) >= 16) break; if (c[i >> 2] | 0) { c[o >> 2] = (c[((c[f >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0) == 1 ? c[h >> 2] | 0 : 0; g = ((c[f >> 2] | 0) + (c[k >> 2] << 2)) | 0; c[g >> 2] = (c[g >> 2] | 0) + (c[o >> 2] | 0); } if ( (c[((c[f >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0) >>> 0 < (c[h >> 2] | 0) >>> 0 ) c[((c[f >> 2] | 0) + (c[k >> 2] << 2)) >> 2] = 0; else { g = ((c[f >> 2] | 0) + (c[k >> 2] << 2)) | 0; c[g >> 2] = (c[g >> 2] | 0) - (c[h >> 2] | 0); } c[k >> 2] = (c[k >> 2] | 0) + 1; c[n >> 2] = (c[n >> 2] | 0) + 1; } c[m >> 2] = (c[m >> 2] | 0) + 1; } l = e; return; } function wo(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; e = l; l = (l + 48) | 0; f = (e + 44) | 0; g = (e + 40) | 0; h = (e + 36) | 0; i = (e + 32) | 0; j = (e + 28) | 0; k = (e + 24) | 0; m = (e + 20) | 0; n = (e + 16) | 0; o = (e + 12) | 0; p = (e + 8) | 0; q = (e + 4) | 0; r = e; c[p >> 2] = a; c[q >> 2] = b; c[r >> 2] = d; d = c[q >> 2] | 0; q = c[r >> 2] | 0; c[f >> 2] = c[p >> 2]; c[g >> 2] = d; c[h >> 2] = q; c[i >> 2] = 1; c[j >> 2] = ((c[g >> 2] | 0) / 16) | 0; c[k >> 2] = 0; c[m >> 2] = 0; while (1) { if ((c[m >> 2] | 0) >= (c[j >> 2] | 0)) break; c[n >> 2] = 0; while (1) { if ((c[n >> 2] | 0) >= 16) break; if (c[i >> 2] | 0) { c[o >> 2] = (c[((c[f >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0) == 1 ? c[h >> 2] | 0 : 0; g = ((c[f >> 2] | 0) + (c[k >> 2] << 2)) | 0; c[g >> 2] = (c[g >> 2] | 0) + (c[o >> 2] | 0); } if ( (c[((c[f >> 2] | 0) + (c[k >> 2] << 2)) >> 2] | 0) >>> 0 < (c[h >> 2] | 0) >>> 0 ) c[((c[f >> 2] | 0) + (c[k >> 2] << 2)) >> 2] = 0; else { g = ((c[f >> 2] | 0) + (c[k >> 2] << 2)) | 0; c[g >> 2] = (c[g >> 2] | 0) - (c[h >> 2] | 0); } c[k >> 2] = (c[k >> 2] | 0) + 1; c[n >> 2] = (c[n >> 2] | 0) + 1; } c[m >> 2] = (c[m >> 2] | 0) + 1; } l = e; return; } function xo(a, b, d, e, f, g, h, i, j) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; k = l; l = (l + 160) | 0; m = (k + 48) | 0; n = (k + 40) | 0; o = (k + 36) | 0; p = (k + 32) | 0; q = (k + 28) | 0; r = (k + 24) | 0; s = (k + 20) | 0; t = k; u = (k + 16) | 0; v = (k + 12) | 0; w = (k + 8) | 0; c[o >> 2] = a; c[p >> 2] = b; c[q >> 2] = d; c[r >> 2] = e; c[s >> 2] = f; f = t; c[f >> 2] = h; c[(f + 4) >> 2] = i; c[u >> 2] = j; if ( c[s >> 2] | 0 ? (c[((c[s >> 2] | 0) + 8) >> 2] | 0) >>> 0 > 0 : 0 ) { x = ((c[o >> 2] | 0) + 12) | 0; y = g; z = (x + 104) | 0; do { c[x >> 2] = c[y >> 2]; x = (x + 4) | 0; y = (y + 4) | 0; } while ((x | 0) < (z | 0)); j = c[o >> 2] | 0; i = c[s >> 2] | 0; s = c[(g + 4) >> 2] | 0; f = (g + 32) | 0; h = t; e = c[h >> 2] | 0; d = c[(h + 4) >> 2] | 0; h = c[u >> 2] | 0; c[m >> 2] = c[f >> 2]; c[(m + 4) >> 2] = c[(f + 4) >> 2]; c[(m + 8) >> 2] = c[(f + 8) >> 2]; c[n >> 2] = yo(j, i, s, m, e, d, h) | 0; A = c[n >> 2] | 0; l = k; return A | 0; } h = c[o >> 2] | 0; d = t; t = c[d >> 2] | 0; e = c[(d + 4) >> 2] | 0; d = c[u >> 2] | 0; x = m; y = g; z = (x + 104) | 0; do { c[x >> 2] = c[y >> 2]; x = (x + 4) | 0; y = (y + 4) | 0; } while ((x | 0) < (z | 0)); c[v >> 2] = ml(h, m, t, e, 0, d) | 0; if (wj(c[v >> 2] | 0) | 0) { c[n >> 2] = c[v >> 2]; A = c[n >> 2] | 0; l = k; return A | 0; } c[w >> 2] = Ej( c[((c[o >> 2] | 0) + 472) >> 2] | 0, ((c[o >> 2] | 0) + 472 + 8) | 0, g, c[p >> 2] | 0, c[q >> 2] | 0, c[r >> 2] | 0, c[((c[o >> 2] | 0) + 588) >> 2] | 0 ) | 0; r = (Ph(c[w >> 2] | 0) | 0) != 0; q = c[w >> 2] | 0; if (r) { c[n >> 2] = q; A = c[n >> 2] | 0; l = k; return A | 0; } else { c[((c[o >> 2] | 0) + 220) >> 2] = q; c[n >> 2] = 0; A = c[n >> 2] | 0; l = k; return A | 0; } return 0; } function yo(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; i = l; l = (l + 256) | 0; j = (i + 152) | 0; k = (i + 148) | 0; m = (i + 144) | 0; n = (i + 140) | 0; o = i; p = (i + 136) | 0; q = (i + 32) | 0; r = (i + 28) | 0; s = (i + 24) | 0; t = (i + 20) | 0; u = (i + 16) | 0; v = (i + 12) | 0; w = (i + 8) | 0; c[k >> 2] = a; c[m >> 2] = b; c[n >> 2] = d; d = o; c[d >> 2] = f; c[(d + 4) >> 2] = g; c[p >> 2] = h; h = q; g = ((c[k >> 2] | 0) + 12) | 0; d = (h + 104) | 0; do { c[h >> 2] = c[g >> 2]; h = (h + 4) | 0; g = (g + 4) | 0; } while ((h | 0) < (d | 0)); f = (q + 4) | 0; b = ((c[m >> 2] | 0) + 4720) | 0; c[f >> 2] = c[b >> 2]; c[(f + 4) >> 2] = c[(b + 4) >> 2]; c[(f + 8) >> 2] = c[(b + 8) >> 2]; c[(f + 12) >> 2] = c[(b + 12) >> 2]; c[(f + 16) >> 2] = c[(b + 16) >> 2]; c[(f + 20) >> 2] = c[(b + 20) >> 2]; c[(f + 24) >> 2] = c[(b + 24) >> 2]; if (c[n >> 2] | 0) c[(q + 4) >> 2] = c[n >> 2]; n = (q + 32) | 0; c[n >> 2] = c[e >> 2]; c[(n + 4) >> 2] = c[(e + 4) >> 2]; c[(n + 8) >> 2] = c[(e + 8) >> 2]; e = c[k >> 2] | 0; n = o; o = c[n >> 2] | 0; b = c[(n + 4) >> 2] | 0; n = c[p >> 2] | 0; h = j; g = q; d = (h + 104) | 0; do { c[h >> 2] = c[g >> 2]; h = (h + 4) | 0; g = (g + 4) | 0; } while ((h | 0) < (d | 0)); ml(e, j, o, b, 1, n) | 0; if ((c[((c[m >> 2] | 0) + 4720 + 24) >> 2] | 0) == 1) x = 0; else x = 1 << c[((c[m >> 2] | 0) + 4720 + 4) >> 2]; c[r >> 2] = x; c[s >> 2] = 1 << c[((c[m >> 2] | 0) + 4720 + 8) >> 2]; c[t >> 2] = ((c[r >> 2] | 0) + (c[s >> 2] | 0)) << 2; mE( c[((c[k >> 2] | 0) + 472 + 8 + 36) >> 2] | 0, c[((c[m >> 2] | 0) + 20 + 36) >> 2] | 0, c[t >> 2] | 0 ) | 0; c[u >> 2] = 1 << c[((c[k >> 2] | 0) + 472 + 8 + 32) >> 2]; oE( c[((c[k >> 2] | 0) + 472 + 8 + 40) >> 2] | 0, 0, (c[u >> 2] << 2) | 0 ) | 0; c[v >> 2] = (c[m >> 2] | 0) + 20; c[w >> 2] = (c[k >> 2] | 0) + 472 + 8; u = c[w >> 2] | 0; t = c[v >> 2] | 0; c[u >> 2] = c[t >> 2]; c[(u + 4) >> 2] = c[(t + 4) >> 2]; c[(u + 8) >> 2] = c[(t + 8) >> 2]; c[(u + 12) >> 2] = c[(t + 12) >> 2]; c[(u + 16) >> 2] = c[(t + 16) >> 2]; c[((c[w >> 2] | 0) + 24) >> 2] = c[((c[v >> 2] | 0) + 24) >> 2]; c[((c[w >> 2] | 0) + 28) >> 2] = c[((c[v >> 2] | 0) + 28) >> 2]; c[((c[w >> 2] | 0) + 20) >> 2] = c[((c[v >> 2] | 0) + 20) >> 2]; c[((c[k >> 2] | 0) + 220) >> 2] = c[((c[m >> 2] | 0) + 4760) >> 2]; mE( c[((c[k >> 2] | 0) + 472) >> 2] | 0, ((c[m >> 2] | 0) + 128) | 0, 4592 ) | 0; l = i; return 0; } function zo(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 112) | 0; f = e; g = f; h = b; b = (g + 104) | 0; do { c[g >> 2] = c[h >> 2]; g = (g + 4) | 0; h = (h + 4) | 0; } while ((g | 0) < (b | 0)); i = (f + 4) | 0; c[i >> 2] = c[d >> 2]; c[(i + 4) >> 2] = c[(d + 4) >> 2]; c[(i + 8) >> 2] = c[(d + 8) >> 2]; c[(i + 12) >> 2] = c[(d + 12) >> 2]; c[(i + 16) >> 2] = c[(d + 16) >> 2]; c[(i + 20) >> 2] = c[(d + 20) >> 2]; c[(i + 24) >> 2] = c[(d + 24) >> 2]; i = (f + 32) | 0; j = (d + 28) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; c[(f + 44) >> 2] = 3; g = a; h = f; b = (g + 104) | 0; do { c[g >> 2] = c[h >> 2]; g = (g + 4) | 0; h = (h + 4) | 0; } while ((g | 0) < (b | 0)); l = e; return; } function Ao(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; g = l; l = (l + 96) | 0; h = (g + 84) | 0; i = g; j = (g + 80) | 0; k = (g + 40) | 0; m = (g + 8) | 0; c[h >> 2] = b; b = i; c[b >> 2] = d; c[(b + 4) >> 2] = e; c[j >> 2] = f; f = i; sj( m, c[h >> 2] | 0, c[f >> 2] | 0, c[(f + 4) >> 2] | 0, c[j >> 2] | 0 ); j = k; f = (j + 40) | 0; do { c[j >> 2] = 0; j = (j + 4) | 0; } while ((j | 0) < (f | 0)); c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; c[(k + 12) >> 2] = c[(m + 12) >> 2]; c[(k + 16) >> 2] = c[(m + 16) >> 2]; c[(k + 20) >> 2] = c[(m + 20) >> 2]; c[(k + 24) >> 2] = c[(m + 24) >> 2]; c[(k + 28) >> 2] = 1; j = a; a = k; f = (j + 40) | 0; do { c[j >> 2] = c[a >> 2]; j = (j + 4) | 0; a = (a + 4) | 0; } while ((j | 0) < (f | 0)); l = g; return; } function Bo(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 32) | 0; h = (g + 28) | 0; i = (g + 24) | 0; j = (g + 20) | 0; k = (g + 16) | 0; m = (g + 12) | 0; n = (g + 8) | 0; o = (g + 4) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[p >> 2] = wn( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 1, 1 ) | 0; if (Ph(c[p >> 2] | 0) | 0) { c[h >> 2] = c[p >> 2]; q = c[h >> 2] | 0; l = g; return q | 0; } c[o >> 2] = Co( c[i >> 2] | 0, ((c[j >> 2] | 0) + (c[p >> 2] | 0)) | 0, ((c[k >> 2] | 0) - (c[p >> 2] | 0)) | 0 ) | 0; if (Ph(c[o >> 2] | 0) | 0) { c[h >> 2] = c[o >> 2]; q = c[h >> 2] | 0; l = g; return q | 0; } if ( c[((c[i >> 2] | 0) + 116 + 32) >> 2] | 0 ? ((k = ((c[i >> 2] | 0) + 240) | 0), (j = c[k >> 2] | 0), (n = c[(k + 4) >> 2] | 0), (k = ((c[i >> 2] | 0) + 248) | 0), (i = dE(c[k >> 2] | 0, c[(k + 4) >> 2] | 0, 1, 0) | 0), ((j | 0) != (i | 0)) | ((n | 0) != (y | 0))) : 0 ) { c[h >> 2] = -72; q = c[h >> 2] | 0; l = g; return q | 0; } c[h >> 2] = (c[p >> 2] | 0) + (c[o >> 2] | 0); q = c[h >> 2] | 0; l = g; return q | 0; } function Co(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; e = l; l = (l + 144) | 0; f = (e + 40) | 0; g = (e + 32) | 0; h = (e + 28) | 0; i = (e + 24) | 0; j = (e + 20) | 0; k = (e + 16) | 0; m = (e + 12) | 0; n = (e + 8) | 0; o = (e + 4) | 0; p = e; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; c[k >> 2] = c[i >> 2]; c[m >> 2] = c[k >> 2]; c[n >> 2] = 0; if (!(c[c[h >> 2] >> 2] | 0)) { c[g >> 2] = -60; q = c[g >> 2] | 0; l = e; return q | 0; } do { if ((c[c[h >> 2] >> 2] | 0) == 1) { d = c[i >> 2] | 0; b = c[j >> 2] | 0; a = f; r = ((c[h >> 2] | 0) + 116) | 0; s = (a + 104) | 0; do { c[a >> 2] = c[r >> 2]; a = (a + 4) | 0; r = (r + 4) | 0; } while ((a | 0) < (s | 0)); c[n >> 2] = xn(d, b, f, 0, 0, 0) | 0; r = (Ph(c[n >> 2] | 0) | 0) != 0; a = c[n >> 2] | 0; if (!r) { c[j >> 2] = (c[j >> 2] | 0) - a; c[m >> 2] = (c[m >> 2] | 0) + (c[n >> 2] | 0); c[c[h >> 2] >> 2] = 2; break; } c[g >> 2] = a; q = c[g >> 2] | 0; l = e; return q | 0; } } while (0); do { if ((c[c[h >> 2] >> 2] | 0) != 3) { c[o >> 2] = 1; if ((c[j >> 2] | 0) >>> 0 >= 4) { Pl(c[m >> 2] | 0, 1); c[m >> 2] = (c[m >> 2] | 0) + 3; c[j >> 2] = (c[j >> 2] | 0) - 3; break; } c[g >> 2] = -70; q = c[g >> 2] | 0; l = e; return q | 0; } } while (0); do { if (c[((c[h >> 2] | 0) + 116 + 32 + 4) >> 2] | 0) { o = Oh(((c[h >> 2] | 0) + 264) | 0) | 0; c[p >> 2] = o; if ((c[j >> 2] | 0) >>> 0 >= 4) { Pl(c[m >> 2] | 0, c[p >> 2] | 0); c[m >> 2] = (c[m >> 2] | 0) + 4; break; } c[g >> 2] = -70; q = c[g >> 2] | 0; l = e; return q | 0; } } while (0); c[c[h >> 2] >> 2] = 0; c[g >> 2] = (c[m >> 2] | 0) - (c[k >> 2] | 0); q = c[g >> 2] | 0; l = e; return q | 0; } function Do(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0; j = l; l = (l + 144) | 0; k = (j + 40) | 0; m = (j + 32) | 0; n = (j + 28) | 0; o = (j + 24) | 0; p = (j + 20) | 0; q = (j + 16) | 0; r = (j + 12) | 0; s = (j + 8) | 0; t = (j + 4) | 0; u = j; c[n >> 2] = a; c[o >> 2] = b; c[p >> 2] = d; c[q >> 2] = e; c[r >> 2] = f; c[s >> 2] = g; c[t >> 2] = h; h = c[n >> 2] | 0; g = c[s >> 2] | 0; s = c[t >> 2] | 0; t = c[r >> 2] | 0; f = k; e = i; i = (f + 104) | 0; do { c[f >> 2] = c[e >> 2]; f = (f + 4) | 0; e = (e + 4) | 0; } while ((f | 0) < (i | 0)); c[u >> 2] = xo(h, g, s, 0, 0, k, t, 0, 0) | 0; if (wj(c[u >> 2] | 0) | 0) { c[m >> 2] = c[u >> 2]; v = c[m >> 2] | 0; l = j; return v | 0; } else { c[m >> 2] = Bo( c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, c[r >> 2] | 0 ) | 0; v = c[m >> 2] | 0; l = j; return v | 0; } return 0; } function Eo(a, b, d, e, f, g, h, i) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; j = l; l = (l + 400) | 0; k = (j + 288) | 0; m = (j + 176) | 0; n = (j + 280) | 0; o = (j + 168) | 0; p = (j + 164) | 0; q = (j + 160) | 0; r = (j + 156) | 0; s = (j + 152) | 0; t = (j + 148) | 0; u = (j + 144) | 0; v = (j + 104) | 0; w = j; c[n >> 2] = a; c[o >> 2] = b; c[p >> 2] = d; c[q >> 2] = e; c[r >> 2] = f; c[s >> 2] = g; c[t >> 2] = h; c[u >> 2] = i; Ao( v, c[u >> 2] | 0, c[r >> 2] | 0 ? c[r >> 2] | 0 : 1, 0, c[s >> 2] | 0 ? c[t >> 2] | 0 : 0 ); i = m; h = ((c[n >> 2] | 0) + 12) | 0; g = (i + 104) | 0; do { c[i >> 2] = c[h >> 2]; i = (i + 4) | 0; h = (h + 4) | 0; } while ((i | 0) < (g | 0)); i = k; h = v; g = (i + 40) | 0; do { c[i >> 2] = c[h >> 2]; i = (i + 4) | 0; h = (h + 4) | 0; } while ((i | 0) < (g | 0)); zo(w, m, k); xj(w, 1e3, ((c[u >> 2] | 0) >= 0) & 1) | 0; u = c[n >> 2] | 0; n = c[o >> 2] | 0; o = c[p >> 2] | 0; p = c[q >> 2] | 0; q = c[r >> 2] | 0; r = c[s >> 2] | 0; s = c[t >> 2] | 0; i = k; h = w; g = (i + 104) | 0; do { c[i >> 2] = c[h >> 2]; i = (i + 4) | 0; h = (h + 4) | 0; } while ((i | 0) < (g | 0)); h = Do(u, n, o, p, q, r, s, k) | 0; l = j; return h | 0; } function Fo(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; h = l; l = (l + 32) | 0; i = (h + 20) | 0; j = (h + 16) | 0; k = (h + 12) | 0; m = (h + 8) | 0; n = (h + 4) | 0; o = h; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; g = Eo( c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, 0, 0, c[o >> 2] | 0 ) | 0; l = h; return g | 0; } function Go(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 704) | 0; h = (g + 680) | 0; i = (g + 676) | 0; j = (g + 672) | 0; k = (g + 668) | 0; m = (g + 664) | 0; n = (g + 660) | 0; o = (g + 656) | 0; p = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; oE(p | 0, 0, 656) | 0; f = (p + 352) | 0; c[f >> 2] = c[5406]; c[(f + 4) >> 2] = c[5407]; c[(f + 8) >> 2] = c[5408]; c[o >> 2] = Fo( p, c[i >> 2] | 0, c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0 ) | 0; n = c[(p + 224) >> 2] | 0; c[h >> 2] = c[5406]; c[(h + 4) >> 2] = c[5407]; c[(h + 8) >> 2] = c[5408]; Th(n, h); l = g; return c[o >> 2] | 0; } function Ho(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; e = l; l = (l + 80) | 0; f = (e + 68) | 0; g = (e + 40) | 0; h = (e + 36) | 0; i = (e + 32) | 0; j = (e + 28) | 0; k = e; c[h >> 2] = a; c[i >> 2] = b; c[j >> 2] = d; sj(k, c[j >> 2] | 0, 0, 0, c[i >> 2] | 0); j = c[h >> 2] | 0; h = c[i >> 2] | 0; c[g >> 2] = c[k >> 2]; c[(g + 4) >> 2] = c[(k + 4) >> 2]; c[(g + 8) >> 2] = c[(k + 8) >> 2]; c[(g + 12) >> 2] = c[(k + 12) >> 2]; c[(g + 16) >> 2] = c[(k + 16) >> 2]; c[(g + 20) >> 2] = c[(k + 20) >> 2]; c[(g + 24) >> 2] = c[(k + 24) >> 2]; c[f >> 2] = c[5406]; c[(f + 4) >> 2] = c[5407]; c[(f + 8) >> 2] = c[5408]; k = zj(j, h, 0, 0, g, f) | 0; l = e; return k | 0; } function Io(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; d = l; l = (l + 16) | 0; e = d; c[e >> 2] = b; b = ((c[e >> 2] | 0) + 4720) | 0; c[a >> 2] = c[b >> 2]; c[(a + 4) >> 2] = c[(b + 4) >> 2]; c[(a + 8) >> 2] = c[(b + 8) >> 2]; c[(a + 12) >> 2] = c[(b + 12) >> 2]; c[(a + 16) >> 2] = c[(b + 16) >> 2]; c[(a + 20) >> 2] = c[(b + 20) >> 2]; c[(a + 24) >> 2] = c[(b + 24) >> 2]; l = d; return; } function Jo(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; g = l; l = (l + 272) | 0; h = (g + 168) | 0; i = (g + 160) | 0; j = (g + 156) | 0; k = (g + 152) | 0; m = g; n = (g + 48) | 0; o = (g + 16) | 0; p = (g + 12) | 0; q = (g + 8) | 0; c[j >> 2] = a; c[k >> 2] = b; b = m; c[b >> 2] = e; c[(b + 4) >> 2] = f; if (!(c[k >> 2] | 0)) { c[i >> 2] = -32; r = c[i >> 2] | 0; l = g; return r | 0; } f = n; b = ((c[j >> 2] | 0) + 12) | 0; e = (f + 104) | 0; do { c[f >> 2] = c[b >> 2]; f = (f + 4) | 0; b = (b + 4) | 0; } while ((f | 0) < (e | 0)); a = (n + 4) | 0; Io(o, c[k >> 2] | 0); c[a >> 2] = c[o >> 2]; c[(a + 4) >> 2] = c[(o + 4) >> 2]; c[(a + 8) >> 2] = c[(o + 8) >> 2]; c[(a + 12) >> 2] = c[(o + 12) >> 2]; c[(a + 16) >> 2] = c[(o + 16) >> 2]; c[(a + 20) >> 2] = c[(o + 20) >> 2]; c[(a + 24) >> 2] = c[(o + 24) >> 2]; o = m; if ((c[o >> 2] | 0) != -1 ? 1 : (c[(o + 4) >> 2] | 0) != -1) { o = m; a = c[(o + 4) >> 2] | 0; s = (a >>> 0 < 0) | (((a | 0) == 0) & ((c[o >> 2] | 0) >>> 0 < 524288)); o = m; a = c[(o + 4) >> 2] | 0; a = s ? c[o >> 2] | 0 : 524288; c[p >> 2] = a; if ((c[p >> 2] | 0) >>> 0 > 1) t = ((uj(((c[p >> 2] | 0) - 1) | 0) | 0) + 1) | 0; else t = 1; c[q >> 2] = t; c[(n + 4) >> 2] = (c[(n + 4) >> 2] | 0) >>> 0 > (c[q >> 2] | 0) >>> 0 ? c[(n + 4) >> 2] | 0 : c[q >> 2] | 0; } q = (n + 32) | 0; c[q >> 2] = c[d >> 2]; c[(q + 4) >> 2] = c[(d + 4) >> 2]; c[(q + 8) >> 2] = c[(d + 8) >> 2]; d = c[j >> 2] | 0; j = c[k >> 2] | 0; k = m; m = c[k >> 2] | 0; q = c[(k + 4) >> 2] | 0; f = h; b = n; e = (f + 104) | 0; do { c[f >> 2] = c[b >> 2]; f = (f + 4) | 0; b = (b + 4) | 0; } while ((f | 0) < (e | 0)); c[i >> 2] = xo(d, 0, 0, 0, j, h, m, q, 0) | 0; r = c[i >> 2] | 0; l = g; return r | 0; } function hy(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0; g = l; l = (l + 112) | 0; h = (g + 100) | 0; i = (g + 96) | 0; j = (g + 92) | 0; k = (g + 88) | 0; m = (g + 84) | 0; n = (g + 80) | 0; o = (g + 76) | 0; p = (g + 72) | 0; q = (g + 68) | 0; r = (g + 64) | 0; s = (g + 60) | 0; t = (g + 56) | 0; u = (g + 52) | 0; v = (g + 48) | 0; w = (g + 44) | 0; x = (g + 40) | 0; y = (g + 36) | 0; z = (g + 32) | 0; A = (g + 28) | 0; B = (g + 24) | 0; C = (g + 20) | 0; D = (g + 16) | 0; E = (g + 12) | 0; F = (g + 8) | 0; G = (g + 4) | 0; H = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = c[o >> 2]; c[q >> 2] = (c[o >> 2] | 0) + (c[c[n >> 2] >> 2] | 0); c[r >> 2] = c[j >> 2]; c[s >> 2] = c[r >> 2]; c[t >> 2] = (c[r >> 2] | 0) + (c[c[k >> 2] >> 2] | 0); c[u >> 2] = 1; a: while (1) { if (!(c[u >> 2] | 0)) { I = 48; break; } switch (c[((c[i >> 2] | 0) + 80) >> 2] | 0) { case 0: { I = 4; break a; break; } case 1: { c[v >> 2] = yq( ((c[i >> 2] | 0) + 8) | 0, c[m >> 2] | 0, c[c[n >> 2] >> 2] | 0 ) | 0; j = (mr(c[v >> 2] | 0) | 0) != 0; J = c[v >> 2] | 0; if (j) { I = 6; break a; } K = c[i >> 2] | 0; if (J | 0) { I = 8; break a; } c[(K + 80) >> 2] = 3; break; } case 2: { c[w >> 2] = ry( ((c[i >> 2] | 0) + 84 + (c[((c[i >> 2] | 0) + 76) >> 2] | 0)) | 0, (5 - (c[((c[i >> 2] | 0) + 76) >> 2] | 0)) | 0, c[m >> 2] | 0, c[c[n >> 2] >> 2] | 0 ) | 0; j = ((c[i >> 2] | 0) + 76) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[w >> 2] | 0); c[p >> 2] = (c[p >> 2] | 0) + (c[w >> 2] | 0); c[w >> 2] = yq( ((c[i >> 2] | 0) + 8) | 0, ((c[i >> 2] | 0) + 84) | 0, c[((c[i >> 2] | 0) + 76) >> 2] | 0 ) | 0; j = (mr(c[w >> 2] | 0) | 0) != 0; L = c[w >> 2] | 0; if (j) { I = 11; break a; } if (L | 0) { I = 13; break a; } else I = 14; break; } case 3: { I = 14; break; } case 4: { I = 23; break; } case 5: { I = 33; break; } case 6: { I = 42; break; } default: { I = 46; break a; } } do { if ((I | 0) == 14) { I = 0; c[x >> 2] = 1 << c[((c[i >> 2] | 0) + 8 + 8) >> 2]; c[y >> 2] = 131072; if ( (c[((c[i >> 2] | 0) + 52) >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? (Dy(c[((c[i >> 2] | 0) + 48) >> 2] | 0), (c[((c[i >> 2] | 0) + 52) >> 2] = c[y >> 2]), (j = Cy(c[y >> 2] | 0) | 0), (c[((c[i >> 2] | 0) + 48) >> 2] = j), (c[((c[i >> 2] | 0) + 48) >> 2] | 0) == 0) : 0 ) { I = 16; break a; } if ( (c[((c[i >> 2] | 0) + 64) >> 2] | 0) >>> 0 < (c[x >> 2] | 0) >>> 0 ? (Dy(c[((c[i >> 2] | 0) + 60) >> 2] | 0), (c[((c[i >> 2] | 0) + 64) >> 2] = c[x >> 2]), (j = Cy(c[x >> 2] | 0) | 0), (c[((c[i >> 2] | 0) + 60) >> 2] = j), (c[((c[i >> 2] | 0) + 60) >> 2] | 0) == 0) : 0 ) { I = 19; break a; } j = c[i >> 2] | 0; if (c[((c[i >> 2] | 0) + 76) >> 2] | 0) { mE( c[(j + 48) >> 2] | 0, ((c[i >> 2] | 0) + 84) | 0, c[((c[i >> 2] | 0) + 76) >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 56) >> 2] = c[((c[i >> 2] | 0) + 76) >> 2]; c[((c[i >> 2] | 0) + 76) >> 2] = 0; c[((c[i >> 2] | 0) + 80) >> 2] = 5; break; } else { c[(j + 80) >> 2] = 4; I = 23; break; } } } while (0); do { if ((I | 0) == 23) { I = 0; c[z >> 2] = sy(c[c[i >> 2] >> 2] | 0) | 0; if (!(c[z >> 2] | 0)) { c[((c[i >> 2] | 0) + 80) >> 2] = 0; c[u >> 2] = 0; break; } if ( (((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0) >>> 0 < (c[z >> 2] | 0) >>> 0 ) { if ((c[p >> 2] | 0) == (c[q >> 2] | 0)) { c[u >> 2] = 0; break; } else { c[((c[i >> 2] | 0) + 80) >> 2] = 5; I = 33; break; } } else { c[A >> 2] = ty( c[c[i >> 2] >> 2] | 0, ((c[((c[i >> 2] | 0) + 60) >> 2] | 0) + (c[((c[i >> 2] | 0) + 68) >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 64) >> 2] | 0) - (c[((c[i >> 2] | 0) + 68) >> 2] | 0)) | 0, c[p >> 2] | 0, c[z >> 2] | 0 ) | 0; if (mr(c[A >> 2] | 0) | 0) { I = 27; break a; } c[p >> 2] = (c[p >> 2] | 0) + (c[z >> 2] | 0); if (!(c[A >> 2] | 0)) break; c[((c[i >> 2] | 0) + 72) >> 2] = (c[((c[i >> 2] | 0) + 68) >> 2] | 0) + (c[A >> 2] | 0); c[((c[i >> 2] | 0) + 80) >> 2] = 6; break; } } } while (0); do { if ((I | 0) == 33) { I = 0; c[B >> 2] = sy(c[c[i >> 2] >> 2] | 0) | 0; c[C >> 2] = (c[B >> 2] | 0) - (c[((c[i >> 2] | 0) + 56) >> 2] | 0); if ( (c[C >> 2] | 0) >>> 0 > (((c[((c[i >> 2] | 0) + 52) >> 2] | 0) - (c[((c[i >> 2] | 0) + 56) >> 2] | 0)) | 0) >>> 0 ) { I = 34; break a; } c[D >> 2] = ry( ((c[((c[i >> 2] | 0) + 48) >> 2] | 0) + (c[((c[i >> 2] | 0) + 56) >> 2] | 0)) | 0, c[C >> 2] | 0, c[p >> 2] | 0, ((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0 ) | 0; c[p >> 2] = (c[p >> 2] | 0) + (c[D >> 2] | 0); j = ((c[i >> 2] | 0) + 56) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[D >> 2] | 0); if ((c[D >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0) { c[u >> 2] = 0; break; } c[E >> 2] = ty( c[c[i >> 2] >> 2] | 0, ((c[((c[i >> 2] | 0) + 60) >> 2] | 0) + (c[((c[i >> 2] | 0) + 68) >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 64) >> 2] | 0) - (c[((c[i >> 2] | 0) + 68) >> 2] | 0)) | 0, c[((c[i >> 2] | 0) + 48) >> 2] | 0, c[B >> 2] | 0 ) | 0; if (mr(c[E >> 2] | 0) | 0) { I = 38; break a; } c[((c[i >> 2] | 0) + 56) >> 2] = 0; j = c[i >> 2] | 0; if (c[E >> 2] | 0) { c[((c[i >> 2] | 0) + 72) >> 2] = (c[(j + 68) >> 2] | 0) + (c[E >> 2] | 0); c[((c[i >> 2] | 0) + 80) >> 2] = 6; I = 42; break; } else { c[(j + 80) >> 2] = 4; break; } } } while (0); do { if ((I | 0) == 42) { I = 0; c[F >> 2] = (c[((c[i >> 2] | 0) + 72) >> 2] | 0) - (c[((c[i >> 2] | 0) + 68) >> 2] | 0); c[G >> 2] = ry( c[s >> 2] | 0, ((c[t >> 2] | 0) - (c[s >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 60) >> 2] | 0) + (c[((c[i >> 2] | 0) + 68) >> 2] | 0)) | 0, c[F >> 2] | 0 ) | 0; c[s >> 2] = (c[s >> 2] | 0) + (c[G >> 2] | 0); j = ((c[i >> 2] | 0) + 68) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[G >> 2] | 0); if ((c[G >> 2] | 0) != (c[F >> 2] | 0)) { c[u >> 2] = 0; break; } c[((c[i >> 2] | 0) + 80) >> 2] = 4; if ( (((c[((c[i >> 2] | 0) + 68) >> 2] | 0) + 131072) | 0) >>> 0 > (c[((c[i >> 2] | 0) + 64) >> 2] | 0) >>> 0 ) { c[((c[i >> 2] | 0) + 72) >> 2] = 0; c[((c[i >> 2] | 0) + 68) >> 2] = 0; } } } while (0); } switch (I | 0) { case 4: { c[h >> 2] = -62; M = c[h >> 2] | 0; l = g; return M | 0; } case 6: { c[h >> 2] = J; M = c[h >> 2] | 0; l = g; return M | 0; } case 8: { mE( (K + 84 + (c[((c[i >> 2] | 0) + 76) >> 2] | 0)) | 0, c[m >> 2] | 0, c[c[n >> 2] >> 2] | 0 ) | 0; m = ((c[i >> 2] | 0) + 76) | 0; c[m >> 2] = (c[m >> 2] | 0) + (c[c[n >> 2] >> 2] | 0); c[c[k >> 2] >> 2] = 0; c[((c[i >> 2] | 0) + 80) >> 2] = 2; c[h >> 2] = (c[v >> 2] | 0) - (c[((c[i >> 2] | 0) + 76) >> 2] | 0); M = c[h >> 2] | 0; l = g; return M | 0; } case 11: { c[h >> 2] = L; M = c[h >> 2] | 0; l = g; return M | 0; } case 13: { c[c[k >> 2] >> 2] = 0; c[h >> 2] = (c[w >> 2] | 0) - (c[((c[i >> 2] | 0) + 76) >> 2] | 0); M = c[h >> 2] | 0; l = g; return M | 0; } case 16: { c[h >> 2] = -64; M = c[h >> 2] | 0; l = g; return M | 0; } case 19: { c[h >> 2] = -64; M = c[h >> 2] | 0; l = g; return M | 0; } case 27: { c[h >> 2] = c[A >> 2]; M = c[h >> 2] | 0; l = g; return M | 0; } case 34: { c[h >> 2] = -20; M = c[h >> 2] | 0; l = g; return M | 0; } case 38: { c[h >> 2] = c[E >> 2]; M = c[h >> 2] | 0; l = g; return M | 0; } case 46: { c[h >> 2] = -1; M = c[h >> 2] | 0; l = g; return M | 0; } case 48: { c[c[n >> 2] >> 2] = (c[p >> 2] | 0) - (c[o >> 2] | 0); c[c[k >> 2] >> 2] = (c[s >> 2] | 0) - (c[r >> 2] | 0); c[H >> 2] = sy(c[c[i >> 2] >> 2] | 0) | 0; if ((c[H >> 2] | 0) >>> 0 > 3) c[H >> 2] = (c[H >> 2] | 0) + 3; c[H >> 2] = (c[H >> 2] | 0) - (c[((c[i >> 2] | 0) + 56) >> 2] | 0); c[h >> 2] = c[H >> 2]; M = c[h >> 2] | 0; l = g; return M | 0; } } return 0; } function iy(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0; g = l; l = (l + 128) | 0; h = (g + 116) | 0; i = (g + 112) | 0; j = (g + 108) | 0; k = (g + 104) | 0; m = (g + 100) | 0; n = (g + 96) | 0; o = (g + 92) | 0; p = (g + 88) | 0; q = (g + 84) | 0; r = (g + 80) | 0; s = (g + 76) | 0; t = (g + 72) | 0; u = (g + 68) | 0; v = (g + 64) | 0; w = (g + 60) | 0; x = (g + 56) | 0; y = (g + 52) | 0; z = (g + 48) | 0; A = (g + 44) | 0; B = (g + 40) | 0; C = (g + 36) | 0; D = (g + 32) | 0; E = (g + 28) | 0; F = (g + 24) | 0; G = (g + 20) | 0; H = (g + 16) | 0; I = (g + 12) | 0; J = (g + 8) | 0; K = (g + 4) | 0; L = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = (c[o >> 2] | 0) + (c[c[n >> 2] >> 2] | 0); c[q >> 2] = c[o >> 2]; c[r >> 2] = c[j >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[c[k >> 2] >> 2] | 0); c[t >> 2] = c[r >> 2]; c[u >> 2] = 1; a: while (1) { if (!(c[u >> 2] | 0)) { M = 50; break; } b: do { switch (c[((c[i >> 2] | 0) + 24) >> 2] | 0) { case 0: { M = 4; break a; break; } case 1: { c[v >> 2] = zq( ((c[i >> 2] | 0) + 8) | 0, ((c[i >> 2] | 0) + 60) | 0, c[((c[i >> 2] | 0) + 76) >> 2] | 0 ) | 0; if (c[v >> 2] | 0) { c[w >> 2] = (c[v >> 2] | 0) - (c[((c[i >> 2] | 0) + 76) >> 2] | 0); if (jr(c[v >> 2] | 0) | 0) { M = 7; break a; } N = ((c[i >> 2] | 0) + 60 + (c[((c[i >> 2] | 0) + 76) >> 2] | 0)) | 0; O = c[q >> 2] | 0; if ( (c[w >> 2] | 0) >>> 0 > (((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0) >>> 0 ) { M = 9; break a; } mE(N | 0, O | 0, c[w >> 2] | 0) | 0; c[((c[i >> 2] | 0) + 76) >> 2] = c[v >> 2]; c[q >> 2] = (c[q >> 2] | 0) + (c[w >> 2] | 0); break b; } c[x >> 2] = oy(c[c[i >> 2] >> 2] | 0) | 0; c[y >> 2] = py( c[c[i >> 2] >> 2] | 0, 0, 0, ((c[i >> 2] | 0) + 60) | 0, c[x >> 2] | 0 ) | 0; if (jr(c[y >> 2] | 0) | 0) { M = 12; break a; } if ( (c[x >> 2] | 0) >>> 0 < (c[((c[i >> 2] | 0) + 76) >> 2] | 0) >>> 0 ? ((c[z >> 2] = oy(c[c[i >> 2] >> 2] | 0) | 0), (c[A >> 2] = py( c[c[i >> 2] >> 2] | 0, 0, 0, ((c[i >> 2] | 0) + 60 + (c[x >> 2] | 0)) | 0, c[z >> 2] | 0 ) | 0), jr(c[A >> 2] | 0) | 0) : 0 ) { M = 15; break a; } if ( ((1 << c[((c[i >> 2] | 0) + 8 + 8) >> 2]) | 0) < 131072 ) P = 1 << c[((c[i >> 2] | 0) + 8 + 8) >> 2]; else P = 131072; c[B >> 2] = P; c[((c[i >> 2] | 0) + 56) >> 2] = c[B >> 2]; if ( (c[((c[i >> 2] | 0) + 32) >> 2] | 0) >>> 0 < (c[B >> 2] | 0) >>> 0 ? (Dy(c[((c[i >> 2] | 0) + 28) >> 2] | 0), (c[((c[i >> 2] | 0) + 32) >> 2] = c[B >> 2]), (j = Cy(c[B >> 2] | 0) | 0), (c[((c[i >> 2] | 0) + 28) >> 2] = j), (c[((c[i >> 2] | 0) + 28) >> 2] | 0) == 0) : 0 ) { M = 20; break a; } c[C >> 2] = (1 << c[((c[i >> 2] | 0) + 8 + 8) >> 2]) + (c[B >> 2] | 0) + 16; if ( (c[((c[i >> 2] | 0) + 44) >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 ? (Dy(c[((c[i >> 2] | 0) + 40) >> 2] | 0), (c[((c[i >> 2] | 0) + 44) >> 2] = c[C >> 2]), (j = Cy(c[C >> 2] | 0) | 0), (c[((c[i >> 2] | 0) + 40) >> 2] = j), (c[((c[i >> 2] | 0) + 40) >> 2] | 0) == 0) : 0 ) { M = 23; break a; } c[((c[i >> 2] | 0) + 24) >> 2] = 2; M = 25; break; } case 2: { M = 25; break; } case 3: { M = 35; break; } case 4: { M = 44; break; } default: { M = 48; break a; } } } while (0); do { if ((M | 0) == 25) { M = 0; c[D >> 2] = oy(c[c[i >> 2] >> 2] | 0) | 0; if (!(c[D >> 2] | 0)) { c[((c[i >> 2] | 0) + 24) >> 2] = 0; c[u >> 2] = 0; break; } if ( (((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0) >>> 0 < (c[D >> 2] | 0) >>> 0 ) { if ((c[q >> 2] | 0) == (c[p >> 2] | 0)) { c[u >> 2] = 0; break; } else { c[((c[i >> 2] | 0) + 24) >> 2] = 3; M = 35; break; } } else { c[E >> 2] = py( c[c[i >> 2] >> 2] | 0, ((c[((c[i >> 2] | 0) + 40) >> 2] | 0) + (c[((c[i >> 2] | 0) + 48) >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 44) >> 2] | 0) - (c[((c[i >> 2] | 0) + 48) >> 2] | 0)) | 0, c[q >> 2] | 0, c[D >> 2] | 0 ) | 0; if (jr(c[E >> 2] | 0) | 0) { M = 29; break a; } c[q >> 2] = (c[q >> 2] | 0) + (c[D >> 2] | 0); if (!(c[E >> 2] | 0)) break; c[((c[i >> 2] | 0) + 52) >> 2] = (c[((c[i >> 2] | 0) + 48) >> 2] | 0) + (c[E >> 2] | 0); c[((c[i >> 2] | 0) + 24) >> 2] = 4; break; } } } while (0); do { if ((M | 0) == 35) { M = 0; c[F >> 2] = oy(c[c[i >> 2] >> 2] | 0) | 0; c[G >> 2] = (c[F >> 2] | 0) - (c[((c[i >> 2] | 0) + 36) >> 2] | 0); if ( (c[G >> 2] | 0) >>> 0 > (((c[((c[i >> 2] | 0) + 32) >> 2] | 0) - (c[((c[i >> 2] | 0) + 36) >> 2] | 0)) | 0) >>> 0 ) { M = 36; break a; } c[H >> 2] = qy( ((c[((c[i >> 2] | 0) + 28) >> 2] | 0) + (c[((c[i >> 2] | 0) + 36) >> 2] | 0)) | 0, c[G >> 2] | 0, c[q >> 2] | 0, ((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0 ) | 0; c[q >> 2] = (c[q >> 2] | 0) + (c[H >> 2] | 0); j = ((c[i >> 2] | 0) + 36) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[H >> 2] | 0); if ((c[H >> 2] | 0) >>> 0 < (c[G >> 2] | 0) >>> 0) { c[u >> 2] = 0; break; } c[I >> 2] = py( c[c[i >> 2] >> 2] | 0, ((c[((c[i >> 2] | 0) + 40) >> 2] | 0) + (c[((c[i >> 2] | 0) + 48) >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 44) >> 2] | 0) - (c[((c[i >> 2] | 0) + 48) >> 2] | 0)) | 0, c[((c[i >> 2] | 0) + 28) >> 2] | 0, c[F >> 2] | 0 ) | 0; if (jr(c[I >> 2] | 0) | 0) { M = 40; break a; } c[((c[i >> 2] | 0) + 36) >> 2] = 0; j = c[i >> 2] | 0; if (c[I >> 2] | 0) { c[((c[i >> 2] | 0) + 52) >> 2] = (c[(j + 48) >> 2] | 0) + (c[I >> 2] | 0); c[((c[i >> 2] | 0) + 24) >> 2] = 4; M = 44; break; } else { c[(j + 24) >> 2] = 2; break; } } } while (0); do { if ((M | 0) == 44) { M = 0; c[J >> 2] = (c[((c[i >> 2] | 0) + 52) >> 2] | 0) - (c[((c[i >> 2] | 0) + 48) >> 2] | 0); c[K >> 2] = qy( c[t >> 2] | 0, ((c[s >> 2] | 0) - (c[t >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 40) >> 2] | 0) + (c[((c[i >> 2] | 0) + 48) >> 2] | 0)) | 0, c[J >> 2] | 0 ) | 0; c[t >> 2] = (c[t >> 2] | 0) + (c[K >> 2] | 0); j = ((c[i >> 2] | 0) + 48) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[K >> 2] | 0); if ((c[K >> 2] | 0) != (c[J >> 2] | 0)) { c[u >> 2] = 0; break; } c[((c[i >> 2] | 0) + 24) >> 2] = 2; if ( (((c[((c[i >> 2] | 0) + 48) >> 2] | 0) + (c[((c[i >> 2] | 0) + 56) >> 2] | 0)) | 0) >>> 0 > (c[((c[i >> 2] | 0) + 44) >> 2] | 0) >>> 0 ) { c[((c[i >> 2] | 0) + 52) >> 2] = 0; c[((c[i >> 2] | 0) + 48) >> 2] = 0; } } } while (0); } switch (M | 0) { case 4: { c[h >> 2] = -62; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 7: { c[h >> 2] = c[v >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 9: { mE( N | 0, O | 0, ((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0 ) | 0; O = ((c[i >> 2] | 0) + 76) | 0; c[O >> 2] = (c[O >> 2] | 0) + ((c[p >> 2] | 0) - (c[q >> 2] | 0)); c[q >> 2] = c[p >> 2]; c[u >> 2] = 0; c[c[k >> 2] >> 2] = 0; c[h >> 2] = (c[v >> 2] | 0) - (c[((c[i >> 2] | 0) + 76) >> 2] | 0) + 3; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 12: { c[h >> 2] = c[y >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 15: { c[h >> 2] = c[A >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 20: { c[h >> 2] = -64; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 23: { c[h >> 2] = -64; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 29: { c[h >> 2] = c[E >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 36: { c[h >> 2] = -20; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 40: { c[h >> 2] = c[I >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 48: { c[h >> 2] = -1; Q = c[h >> 2] | 0; l = g; return Q | 0; } case 50: { c[c[n >> 2] >> 2] = (c[q >> 2] | 0) - (c[o >> 2] | 0); c[c[k >> 2] >> 2] = (c[t >> 2] | 0) - (c[r >> 2] | 0); c[L >> 2] = oy(c[c[i >> 2] >> 2] | 0) | 0; if ((c[L >> 2] | 0) >>> 0 > 3) c[L >> 2] = (c[L >> 2] | 0) + 3; c[L >> 2] = (c[L >> 2] | 0) - (c[((c[i >> 2] | 0) + 36) >> 2] | 0); c[h >> 2] = c[L >> 2]; Q = c[h >> 2] | 0; l = g; return Q | 0; } } return 0; } function jy(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0; g = l; l = (l + 128) | 0; h = (g + 124) | 0; i = (g + 120) | 0; j = (g + 116) | 0; k = (g + 112) | 0; m = (g + 108) | 0; n = (g + 104) | 0; o = (g + 100) | 0; p = (g + 96) | 0; q = (g + 92) | 0; r = (g + 88) | 0; s = (g + 84) | 0; t = (g + 80) | 0; u = (g + 76) | 0; v = (g + 72) | 0; w = (g + 68) | 0; x = (g + 64) | 0; y = (g + 60) | 0; z = (g + 56) | 0; A = (g + 52) | 0; B = (g + 48) | 0; C = (g + 44) | 0; D = (g + 40) | 0; E = (g + 36) | 0; F = (g + 32) | 0; G = (g + 28) | 0; H = (g + 24) | 0; I = (g + 20) | 0; J = (g + 16) | 0; K = (g + 12) | 0; L = (g + 8) | 0; M = (g + 4) | 0; N = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = (c[o >> 2] | 0) + (c[c[n >> 2] >> 2] | 0); c[q >> 2] = c[o >> 2]; c[r >> 2] = c[j >> 2]; c[s >> 2] = (c[r >> 2] | 0) + (c[c[k >> 2] >> 2] | 0); c[t >> 2] = c[r >> 2]; c[u >> 2] = 1; a: while (1) { if (!(c[u >> 2] | 0)) { O = 54; break; } b: do { switch (c[((c[i >> 2] | 0) + 32) >> 2] | 0) { case 0: { O = 4; break a; break; } case 1: { c[v >> 2] = Aq( ((c[i >> 2] | 0) + 8) | 0, ((c[i >> 2] | 0) + 68) | 0, c[((c[i >> 2] | 0) + 88) >> 2] | 0 ) | 0; j = (hr(c[v >> 2] | 0) | 0) != 0; P = c[v >> 2] | 0; if (j) { O = 6; break a; } if (P | 0) { c[w >> 2] = (c[v >> 2] | 0) - (c[((c[i >> 2] | 0) + 88) >> 2] | 0); Q = ((c[i >> 2] | 0) + 68 + (c[((c[i >> 2] | 0) + 88) >> 2] | 0)) | 0; R = c[q >> 2] | 0; if ( (c[w >> 2] | 0) >>> 0 > (((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0) >>> 0 ) { O = 9; break a; } mE(Q | 0, R | 0, c[w >> 2] | 0) | 0; c[((c[i >> 2] | 0) + 88) >> 2] = c[v >> 2]; c[q >> 2] = (c[q >> 2] | 0) + (c[w >> 2] | 0); break b; } c[x >> 2] = ky(c[c[i >> 2] >> 2] | 0) | 0; c[y >> 2] = ly( c[c[i >> 2] >> 2] | 0, 0, 0, ((c[i >> 2] | 0) + 68) | 0, c[x >> 2] | 0 ) | 0; if (hr(c[y >> 2] | 0) | 0) { O = 12; break a; } if ( (c[x >> 2] | 0) >>> 0 < (c[((c[i >> 2] | 0) + 88) >> 2] | 0) >>> 0 ? ((c[z >> 2] = ky(c[c[i >> 2] >> 2] | 0) | 0), (c[A >> 2] = ly( c[c[i >> 2] >> 2] | 0, 0, 0, ((c[i >> 2] | 0) + 68 + (c[x >> 2] | 0)) | 0, c[z >> 2] | 0 ) | 0), hr(c[A >> 2] | 0) | 0) : 0 ) { O = 15; break a; } if ( (c[((c[i >> 2] | 0) + 8 + 8) >> 2] | 0) >>> 0 > 1024 ) S = c[((c[i >> 2] | 0) + 8 + 8) >> 2] | 0; else S = 1024; c[((c[i >> 2] | 0) + 8 + 8) >> 2] = S; if ( (c[((c[i >> 2] | 0) + 8 + 8) >> 2] | 0) >>> 0 < 131072 ) T = c[((c[i >> 2] | 0) + 8 + 8) >> 2] | 0; else T = 131072; c[B >> 2] = T; c[((c[i >> 2] | 0) + 64) >> 2] = c[B >> 2]; if ( (c[((c[i >> 2] | 0) + 40) >> 2] | 0) >>> 0 < (c[B >> 2] | 0) >>> 0 ? (xc[c[((c[i >> 2] | 0) + 92 + 4) >> 2] & 31]( c[((c[i >> 2] | 0) + 92 + 8) >> 2] | 0, c[((c[i >> 2] | 0) + 36) >> 2] | 0 ), (c[((c[i >> 2] | 0) + 40) >> 2] = c[B >> 2]), (j = qc[c[((c[i >> 2] | 0) + 92) >> 2] & 63]( c[((c[i >> 2] | 0) + 92 + 8) >> 2] | 0, c[B >> 2] | 0 ) | 0), (c[((c[i >> 2] | 0) + 36) >> 2] = j), (c[((c[i >> 2] | 0) + 36) >> 2] | 0) == 0) : 0 ) { O = 22; break a; } c[C >> 2] = (c[((c[i >> 2] | 0) + 8 + 8) >> 2] | 0) + (c[B >> 2] | 0) + 16; if ( (c[((c[i >> 2] | 0) + 52) >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0 ? (xc[c[((c[i >> 2] | 0) + 92 + 4) >> 2] & 31]( c[((c[i >> 2] | 0) + 92 + 8) >> 2] | 0, c[((c[i >> 2] | 0) + 48) >> 2] | 0 ), (c[((c[i >> 2] | 0) + 52) >> 2] = c[C >> 2]), (j = qc[c[((c[i >> 2] | 0) + 92) >> 2] & 63]( c[((c[i >> 2] | 0) + 92 + 8) >> 2] | 0, c[C >> 2] | 0 ) | 0), (c[((c[i >> 2] | 0) + 48) >> 2] = j), (c[((c[i >> 2] | 0) + 48) >> 2] | 0) == 0) : 0 ) { O = 25; break a; } c[((c[i >> 2] | 0) + 32) >> 2] = 2; O = 27; break; } case 2: { O = 27; break; } case 3: { O = 39; break; } case 4: { O = 48; break; } default: { O = 52; break a; } } } while (0); do { if ((O | 0) == 27) { O = 0; c[D >> 2] = ky(c[c[i >> 2] >> 2] | 0) | 0; if (!(c[D >> 2] | 0)) { c[((c[i >> 2] | 0) + 32) >> 2] = 0; c[u >> 2] = 0; break; } if ( (((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0) >>> 0 < (c[D >> 2] | 0) >>> 0 ) if ((c[q >> 2] | 0) == (c[p >> 2] | 0)) { c[u >> 2] = 0; break; } else { c[((c[i >> 2] | 0) + 32) >> 2] = 3; O = 39; break; } c[E >> 2] = my(c[c[i >> 2] >> 2] | 0) | 0; if (c[E >> 2] | 0) U = 0; else U = ((c[((c[i >> 2] | 0) + 52) >> 2] | 0) - (c[((c[i >> 2] | 0) + 56) >> 2] | 0)) | 0; c[F >> 2] = ly( c[c[i >> 2] >> 2] | 0, ((c[((c[i >> 2] | 0) + 48) >> 2] | 0) + (c[((c[i >> 2] | 0) + 56) >> 2] | 0)) | 0, U, c[q >> 2] | 0, c[D >> 2] | 0 ) | 0; if (hr(c[F >> 2] | 0) | 0) { O = 33; break a; } c[q >> 2] = (c[q >> 2] | 0) + (c[D >> 2] | 0); if (((c[F >> 2] | 0) != 0) | ((c[E >> 2] | 0) != 0)) { c[((c[i >> 2] | 0) + 60) >> 2] = (c[((c[i >> 2] | 0) + 56) >> 2] | 0) + (c[F >> 2] | 0); c[((c[i >> 2] | 0) + 32) >> 2] = 4; } } } while (0); do { if ((O | 0) == 39) { O = 0; c[G >> 2] = ky(c[c[i >> 2] >> 2] | 0) | 0; c[H >> 2] = (c[G >> 2] | 0) - (c[((c[i >> 2] | 0) + 44) >> 2] | 0); if ( (c[H >> 2] | 0) >>> 0 > (((c[((c[i >> 2] | 0) + 40) >> 2] | 0) - (c[((c[i >> 2] | 0) + 44) >> 2] | 0)) | 0) >>> 0 ) { O = 40; break a; } c[I >> 2] = ny( ((c[((c[i >> 2] | 0) + 36) >> 2] | 0) + (c[((c[i >> 2] | 0) + 44) >> 2] | 0)) | 0, c[H >> 2] | 0, c[q >> 2] | 0, ((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0 ) | 0; c[q >> 2] = (c[q >> 2] | 0) + (c[I >> 2] | 0); j = ((c[i >> 2] | 0) + 44) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[I >> 2] | 0); if ((c[I >> 2] | 0) >>> 0 < (c[H >> 2] | 0) >>> 0) { c[u >> 2] = 0; break; } c[J >> 2] = my(c[c[i >> 2] >> 2] | 0) | 0; c[K >> 2] = ly( c[c[i >> 2] >> 2] | 0, ((c[((c[i >> 2] | 0) + 48) >> 2] | 0) + (c[((c[i >> 2] | 0) + 56) >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 52) >> 2] | 0) - (c[((c[i >> 2] | 0) + 56) >> 2] | 0)) | 0, c[((c[i >> 2] | 0) + 36) >> 2] | 0, c[G >> 2] | 0 ) | 0; if (hr(c[K >> 2] | 0) | 0) { O = 44; break a; } c[((c[i >> 2] | 0) + 44) >> 2] = 0; j = c[i >> 2] | 0; if (((c[K >> 2] | 0) != 0) | ((c[J >> 2] | 0) != 0)) { c[((c[i >> 2] | 0) + 60) >> 2] = (c[(j + 56) >> 2] | 0) + (c[K >> 2] | 0); c[((c[i >> 2] | 0) + 32) >> 2] = 4; O = 48; break; } else { c[(j + 32) >> 2] = 2; break; } } } while (0); do { if ((O | 0) == 48) { O = 0; c[L >> 2] = (c[((c[i >> 2] | 0) + 60) >> 2] | 0) - (c[((c[i >> 2] | 0) + 56) >> 2] | 0); c[M >> 2] = ny( c[t >> 2] | 0, ((c[s >> 2] | 0) - (c[t >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 48) >> 2] | 0) + (c[((c[i >> 2] | 0) + 56) >> 2] | 0)) | 0, c[L >> 2] | 0 ) | 0; c[t >> 2] = (c[t >> 2] | 0) + (c[M >> 2] | 0); j = ((c[i >> 2] | 0) + 56) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[M >> 2] | 0); if ((c[M >> 2] | 0) != (c[L >> 2] | 0)) { c[u >> 2] = 0; break; } c[((c[i >> 2] | 0) + 32) >> 2] = 2; if ( (((c[((c[i >> 2] | 0) + 56) >> 2] | 0) + (c[((c[i >> 2] | 0) + 64) >> 2] | 0)) | 0) >>> 0 > (c[((c[i >> 2] | 0) + 52) >> 2] | 0) >>> 0 ) { c[((c[i >> 2] | 0) + 60) >> 2] = 0; c[((c[i >> 2] | 0) + 56) >> 2] = 0; } } } while (0); } switch (O | 0) { case 4: { c[h >> 2] = -62; V = c[h >> 2] | 0; l = g; return V | 0; } case 6: { c[h >> 2] = P; V = c[h >> 2] | 0; l = g; return V | 0; } case 9: { mE( Q | 0, R | 0, ((c[p >> 2] | 0) - (c[q >> 2] | 0)) | 0 ) | 0; R = ((c[i >> 2] | 0) + 88) | 0; c[R >> 2] = (c[R >> 2] | 0) + ((c[p >> 2] | 0) - (c[q >> 2] | 0)); c[c[k >> 2] >> 2] = 0; c[h >> 2] = (c[v >> 2] | 0) - (c[((c[i >> 2] | 0) + 88) >> 2] | 0) + 3; V = c[h >> 2] | 0; l = g; return V | 0; } case 12: { c[h >> 2] = c[y >> 2]; V = c[h >> 2] | 0; l = g; return V | 0; } case 15: { c[h >> 2] = c[A >> 2]; V = c[h >> 2] | 0; l = g; return V | 0; } case 22: { c[h >> 2] = -64; V = c[h >> 2] | 0; l = g; return V | 0; } case 25: { c[h >> 2] = -64; V = c[h >> 2] | 0; l = g; return V | 0; } case 33: { c[h >> 2] = c[F >> 2]; V = c[h >> 2] | 0; l = g; return V | 0; } case 40: { c[h >> 2] = -20; V = c[h >> 2] | 0; l = g; return V | 0; } case 44: { c[h >> 2] = c[K >> 2]; V = c[h >> 2] | 0; l = g; return V | 0; } case 52: { c[h >> 2] = -1; V = c[h >> 2] | 0; l = g; return V | 0; } case 54: { c[c[n >> 2] >> 2] = (c[q >> 2] | 0) - (c[o >> 2] | 0); c[c[k >> 2] >> 2] = (c[t >> 2] | 0) - (c[r >> 2] | 0); c[N >> 2] = ky(c[c[i >> 2] >> 2] | 0) | 0; c[N >> 2] = (c[N >> 2] | 0) - (c[((c[i >> 2] | 0) + 44) >> 2] | 0); c[h >> 2] = c[N >> 2]; V = c[h >> 2] | 0; l = g; return V | 0; } } return 0; } function ky(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return c[((c[d >> 2] | 0) + 21536) >> 2] | 0; } function ly(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0; i = l; l = (l + 80) | 0; j = (i + 64) | 0; k = (i + 60) | 0; m = (i + 56) | 0; n = (i + 52) | 0; o = (i + 48) | 0; p = (i + 44) | 0; q = (i + 40) | 0; r = (i + 32) | 0; s = (i + 24) | 0; t = i; u = (i + 20) | 0; v = (i + 16) | 0; w = (i + 12) | 0; x = (i + 8) | 0; c[k >> 2] = b; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; c[p >> 2] = h; if ( (c[p >> 2] | 0) != (c[((c[k >> 2] | 0) + 21536) >> 2] | 0) ) { c[j >> 2] = -72; z = c[j >> 2] | 0; l = i; return z | 0; } if (c[n >> 2] | 0) us(c[k >> 2] | 0, c[m >> 2] | 0); a: do { switch (c[((c[k >> 2] | 0) + 21580) >> 2] | 0) { case 0: { if ((c[p >> 2] | 0) != 5) { c[j >> 2] = -72; z = c[j >> 2] | 0; l = i; return z | 0; } if ( (((Bq(c[o >> 2] | 0) | 0) & -16) | 0) == 407710288 ) { h = ((c[k >> 2] | 0) + 152788) | 0; g = c[o >> 2] | 0; a[h >> 0] = a[g >> 0] | 0; a[(h + 1) >> 0] = a[(g + 1) >> 0] | 0; a[(h + 2) >> 0] = a[(g + 2) >> 0] | 0; a[(h + 3) >> 0] = a[(g + 3) >> 0] | 0; a[(h + 4) >> 0] = a[(g + 4) >> 0] | 0; c[((c[k >> 2] | 0) + 21536) >> 2] = 3; c[((c[k >> 2] | 0) + 21580) >> 2] = 4; c[j >> 2] = 0; z = c[j >> 2] | 0; l = i; return z | 0; } g = Cq(c[o >> 2] | 0, 5) | 0; c[((c[k >> 2] | 0) + 21680) >> 2] = g; g = (hr(c[((c[k >> 2] | 0) + 21680) >> 2] | 0) | 0) != 0; h = c[k >> 2] | 0; if (g) { c[j >> 2] = c[(h + 21680) >> 2]; z = c[j >> 2] | 0; l = i; return z | 0; } g = (h + 152788) | 0; h = c[o >> 2] | 0; a[g >> 0] = a[h >> 0] | 0; a[(g + 1) >> 0] = a[(h + 1) >> 0] | 0; a[(g + 2) >> 0] = a[(h + 2) >> 0] | 0; a[(g + 3) >> 0] = a[(h + 3) >> 0] | 0; a[(g + 4) >> 0] = a[(h + 4) >> 0] | 0; h = c[k >> 2] | 0; if ( (c[((c[k >> 2] | 0) + 21680) >> 2] | 0) >>> 0 <= 5 ) { c[(h + 21536) >> 2] = 0; break a; } c[((c[k >> 2] | 0) + 21536) >> 2] = (c[(h + 21680) >> 2] | 0) - 5; c[((c[k >> 2] | 0) + 21580) >> 2] = 1; c[j >> 2] = 0; z = c[j >> 2] | 0; l = i; return z | 0; } case 1: break; case 2: { c[s >> 2] = ir(c[o >> 2] | 0, 3, r) | 0; if (hr(c[s >> 2] | 0) | 0) { c[j >> 2] = c[s >> 2]; z = c[j >> 2] | 0; l = i; return z | 0; } if ((c[r >> 2] | 0) == 3) { if ( c[((c[k >> 2] | 0) + 21552 + 16) >> 2] | 0 ? ((h = Oh(((c[k >> 2] | 0) + 21592) | 0) | 0), (g = t), (c[g >> 2] = h), (c[(g + 4) >> 2] = y), (g = t), (h = iE(c[g >> 2] | 0, c[(g + 4) >> 2] | 0, 11) | 0), (c[u >> 2] = h & 4194303), (c[v >> 2] = c[o >> 2]), (c[w >> 2] = (d[((c[v >> 2] | 0) + 2) >> 0] | 0) + ((d[((c[v >> 2] | 0) + 1) >> 0] | 0) << 8) + (((d[c[v >> 2] >> 0] | 0) & 63) << 16)), (c[w >> 2] | 0) != (c[u >> 2] | 0)) : 0 ) { c[j >> 2] = -22; z = c[j >> 2] | 0; l = i; return z | 0; } c[((c[k >> 2] | 0) + 21536) >> 2] = 0; c[((c[k >> 2] | 0) + 21580) >> 2] = 0; } else { c[((c[k >> 2] | 0) + 21536) >> 2] = c[s >> 2]; c[((c[k >> 2] | 0) + 21576) >> 2] = c[r >> 2]; c[((c[k >> 2] | 0) + 21580) >> 2] = 3; } c[j >> 2] = 0; z = c[j >> 2] | 0; l = i; return z | 0; } case 3: { switch (c[((c[k >> 2] | 0) + 21576) >> 2] | 0) { case 0: { c[x >> 2] = xs( c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; break; } case 1: { c[x >> 2] = ys( c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0 ) | 0; break; } case 2: { c[j >> 2] = -1; z = c[j >> 2] | 0; l = i; return z | 0; } case 3: { c[x >> 2] = 0; break; } default: { c[j >> 2] = -1; z = c[j >> 2] | 0; l = i; return z | 0; } } c[((c[k >> 2] | 0) + 21580) >> 2] = 2; c[((c[k >> 2] | 0) + 21536) >> 2] = 3; c[((c[k >> 2] | 0) + 21520) >> 2] = (c[m >> 2] | 0) + (c[x >> 2] | 0); if (hr(c[x >> 2] | 0) | 0) { c[j >> 2] = c[x >> 2]; z = c[j >> 2] | 0; l = i; return z | 0; } if (c[((c[k >> 2] | 0) + 21552 + 16) >> 2] | 0) Nh( ((c[k >> 2] | 0) + 21592) | 0, c[m >> 2] | 0, c[x >> 2] | 0 ) | 0; c[j >> 2] = c[x >> 2]; z = c[j >> 2] | 0; l = i; return z | 0; } case 4: { mE( ((c[k >> 2] | 0) + 152788 + 5) | 0, c[o >> 2] | 0, c[((c[k >> 2] | 0) + 21536) >> 2] | 0 ) | 0; h = Bq(((c[k >> 2] | 0) + 152788 + 4) | 0) | 0; c[((c[k >> 2] | 0) + 21536) >> 2] = h; c[((c[k >> 2] | 0) + 21580) >> 2] = 5; c[j >> 2] = 0; z = c[j >> 2] | 0; l = i; return z | 0; } case 5: { c[((c[k >> 2] | 0) + 21536) >> 2] = 0; c[((c[k >> 2] | 0) + 21580) >> 2] = 0; c[j >> 2] = 0; z = c[j >> 2] | 0; l = i; return z | 0; } default: { c[j >> 2] = -1; z = c[j >> 2] | 0; l = i; return z | 0; } } } while (0); mE( ((c[k >> 2] | 0) + 152788 + 5) | 0, c[o >> 2] | 0, c[((c[k >> 2] | 0) + 21536) >> 2] | 0 ) | 0; c[q >> 2] = ws( c[k >> 2] | 0, ((c[k >> 2] | 0) + 152788) | 0, c[((c[k >> 2] | 0) + 21680) >> 2] | 0 ) | 0; if (hr(c[q >> 2] | 0) | 0) { c[j >> 2] = c[q >> 2]; z = c[j >> 2] | 0; l = i; return z | 0; } else { c[((c[k >> 2] | 0) + 21536) >> 2] = 3; c[((c[k >> 2] | 0) + 21580) >> 2] = 2; c[j >> 2] = 0; z = c[j >> 2] | 0; l = i; return z | 0; } return 0; } function my(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return ((c[((c[d >> 2] | 0) + 21580) >> 2] | 0) == 5) | 0; } function ny(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? c[h >> 2] | 0 : c[j >> 2] | 0; mE(c[g >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0) | 0; l = f; return c[k >> 2] | 0; } function oy(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return c[((c[d >> 2] | 0) + 21536) >> 2] | 0; } function py(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; h = l; l = (l + 48) | 0; i = (h + 40) | 0; j = (h + 36) | 0; k = (h + 32) | 0; m = (h + 28) | 0; n = (h + 24) | 0; o = (h + 20) | 0; p = (h + 16) | 0; q = (h + 8) | 0; r = (h + 4) | 0; s = h; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; if ( (c[o >> 2] | 0) != (c[((c[j >> 2] | 0) + 21536) >> 2] | 0) ) { c[i >> 2] = -72; t = c[i >> 2] | 0; l = h; return t | 0; } if (c[m >> 2] | 0) Kt(c[j >> 2] | 0, c[k >> 2] | 0); a: do { switch (c[((c[j >> 2] | 0) + 21564) >> 2] | 0) { case 0: { if ((c[o >> 2] | 0) != 5) { c[i >> 2] = -72; t = c[i >> 2] | 0; l = h; return t | 0; } g = Nq(c[n >> 2] | 0, 5) | 0; c[((c[j >> 2] | 0) + 21540) >> 2] = g; g = (jr(c[((c[j >> 2] | 0) + 21540) >> 2] | 0) | 0) != 0; f = c[j >> 2] | 0; if (g) { c[i >> 2] = c[(f + 21540) >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } g = (f + 152660) | 0; f = c[n >> 2] | 0; a[g >> 0] = a[f >> 0] | 0; a[(g + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(g + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(g + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(g + 4) >> 0] = a[(f + 4) >> 0] | 0; f = c[j >> 2] | 0; if ( (c[((c[j >> 2] | 0) + 21540) >> 2] | 0) >>> 0 <= 5 ) { c[(f + 21536) >> 2] = 0; break a; } c[((c[j >> 2] | 0) + 21536) >> 2] = (c[(f + 21540) >> 2] | 0) - 5; c[((c[j >> 2] | 0) + 21564) >> 2] = 1; c[i >> 2] = 0; t = c[i >> 2] | 0; l = h; return t | 0; } case 1: break; case 2: { c[r >> 2] = kr(c[n >> 2] | 0, 3, q) | 0; if (jr(c[r >> 2] | 0) | 0) { c[i >> 2] = c[r >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } if ((c[q >> 2] | 0) == 3) { c[((c[j >> 2] | 0) + 21536) >> 2] = 0; c[((c[j >> 2] | 0) + 21564) >> 2] = 0; } else { c[((c[j >> 2] | 0) + 21536) >> 2] = c[r >> 2]; c[((c[j >> 2] | 0) + 21560) >> 2] = c[q >> 2]; c[((c[j >> 2] | 0) + 21564) >> 2] = 3; } c[i >> 2] = 0; t = c[i >> 2] | 0; l = h; return t | 0; } case 3: { switch (c[((c[j >> 2] | 0) + 21560) >> 2] | 0) { case 0: { c[s >> 2] = Nt( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; break; } case 1: { c[s >> 2] = Ot( c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; break; } case 2: { c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } case 3: { c[s >> 2] = 0; break; } default: { c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } } c[((c[j >> 2] | 0) + 21564) >> 2] = 2; c[((c[j >> 2] | 0) + 21536) >> 2] = 3; c[((c[j >> 2] | 0) + 21520) >> 2] = (c[k >> 2] | 0) + (c[s >> 2] | 0); c[i >> 2] = c[s >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } default: { c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } } } while (0); mE( ((c[j >> 2] | 0) + 152660 + 5) | 0, c[n >> 2] | 0, c[((c[j >> 2] | 0) + 21536) >> 2] | 0 ) | 0; c[p >> 2] = Mt( c[j >> 2] | 0, ((c[j >> 2] | 0) + 152660) | 0, c[((c[j >> 2] | 0) + 21540) >> 2] | 0 ) | 0; if (jr(c[p >> 2] | 0) | 0) { c[i >> 2] = c[p >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } else { c[((c[j >> 2] | 0) + 21536) >> 2] = 3; c[((c[j >> 2] | 0) + 21564) >> 2] = 2; c[i >> 2] = 0; t = c[i >> 2] | 0; l = h; return t | 0; } return 0; } function qy(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? c[h >> 2] | 0 : c[j >> 2] | 0; mE(c[g >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0) | 0; l = f; return c[k >> 2] | 0; } function ry(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? c[h >> 2] | 0 : c[j >> 2] | 0; mE(c[g >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0) | 0; l = f; return c[k >> 2] | 0; } function sy(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return c[((c[d >> 2] | 0) + 26656) >> 2] | 0; } function ty(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; h = l; l = (l + 48) | 0; i = (h + 40) | 0; j = (h + 36) | 0; k = (h + 32) | 0; m = (h + 28) | 0; n = (h + 24) | 0; o = (h + 20) | 0; p = (h + 16) | 0; q = (h + 8) | 0; r = (h + 4) | 0; s = h; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; if ( (c[o >> 2] | 0) != (c[((c[j >> 2] | 0) + 26656) >> 2] | 0) ) { c[i >> 2] = -72; t = c[i >> 2] | 0; l = h; return t | 0; } Tu(c[j >> 2] | 0, c[k >> 2] | 0); a: do { switch (c[((c[j >> 2] | 0) + 26708) >> 2] | 0) { case 0: { if ((c[o >> 2] | 0) != 5) { c[i >> 2] = -72; t = c[i >> 2] | 0; l = h; return t | 0; } g = Vu(c[j >> 2] | 0, c[n >> 2] | 0, 5) | 0; c[((c[j >> 2] | 0) + 26660) >> 2] = g; g = (mr(c[((c[j >> 2] | 0) + 26660) >> 2] | 0) | 0) != 0; f = c[j >> 2] | 0; if (g) { c[i >> 2] = c[(f + 26660) >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } g = (f + 157804) | 0; f = c[n >> 2] | 0; a[g >> 0] = a[f >> 0] | 0; a[(g + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(g + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(g + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(g + 4) >> 0] = a[(f + 4) >> 0] | 0; if ( (c[((c[j >> 2] | 0) + 26660) >> 2] | 0) >>> 0 <= 5 ) { c[((c[j >> 2] | 0) + 26656) >> 2] = 0; break a; } c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } case 1: break; case 2: { c[r >> 2] = lr(c[n >> 2] | 0, 3, q) | 0; if (mr(c[r >> 2] | 0) | 0) { c[i >> 2] = c[r >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } if ((c[q >> 2] | 0) == 3) { c[((c[j >> 2] | 0) + 26656) >> 2] = 0; c[((c[j >> 2] | 0) + 26708) >> 2] = 0; } else { c[((c[j >> 2] | 0) + 26656) >> 2] = c[r >> 2]; c[((c[j >> 2] | 0) + 26704) >> 2] = c[q >> 2]; c[((c[j >> 2] | 0) + 26708) >> 2] = 3; } c[i >> 2] = 0; t = c[i >> 2] | 0; l = h; return t | 0; } case 3: { switch (c[((c[j >> 2] | 0) + 26704) >> 2] | 0) { case 0: { c[s >> 2] = Xu( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; break; } case 1: { c[s >> 2] = Yu( c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; break; } case 2: { c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } case 3: { c[s >> 2] = 0; break; } default: { c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } } c[((c[j >> 2] | 0) + 26708) >> 2] = 2; c[((c[j >> 2] | 0) + 26656) >> 2] = 3; c[((c[j >> 2] | 0) + 26640) >> 2] = (c[k >> 2] | 0) + (c[s >> 2] | 0); c[i >> 2] = c[s >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } default: { c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } } } while (0); c[p >> 2] = Wu( c[j >> 2] | 0, ((c[j >> 2] | 0) + 157804) | 0, c[((c[j >> 2] | 0) + 26660) >> 2] | 0 ) | 0; if (mr(c[p >> 2] | 0) | 0) { c[i >> 2] = c[p >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } else { c[((c[j >> 2] | 0) + 26656) >> 2] = 3; c[((c[j >> 2] | 0) + 26708) >> 2] = 2; c[i >> 2] = 0; t = c[i >> 2] | 0; l = h; return t | 0; } return 0; } function uy(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0; g = l; l = (l + 112) | 0; h = (g + 100) | 0; i = (g + 96) | 0; j = (g + 92) | 0; k = (g + 88) | 0; m = (g + 84) | 0; n = (g + 80) | 0; o = (g + 76) | 0; p = (g + 72) | 0; q = (g + 68) | 0; r = (g + 64) | 0; s = (g + 60) | 0; t = (g + 56) | 0; u = (g + 52) | 0; v = (g + 48) | 0; w = (g + 44) | 0; x = (g + 40) | 0; y = (g + 36) | 0; z = (g + 32) | 0; A = (g + 28) | 0; B = (g + 24) | 0; C = (g + 20) | 0; D = (g + 16) | 0; E = (g + 12) | 0; F = (g + 8) | 0; G = (g + 4) | 0; H = g; c[i >> 2] = a; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = c[m >> 2]; c[p >> 2] = c[o >> 2]; c[q >> 2] = (c[o >> 2] | 0) + (c[c[n >> 2] >> 2] | 0); c[r >> 2] = c[j >> 2]; c[s >> 2] = c[r >> 2]; c[t >> 2] = (c[r >> 2] | 0) + (c[c[k >> 2] >> 2] | 0); c[u >> 2] = 1; a: while (1) { if (!(c[u >> 2] | 0)) { I = 50; break; } switch (c[((c[i >> 2] | 0) + 80) >> 2] | 0) { case 0: { I = 4; break a; break; } case 1: { c[v >> 2] = sx( ((c[i >> 2] | 0) + 8) | 0, c[m >> 2] | 0, c[c[n >> 2] >> 2] | 0 ) | 0; j = (rr(c[v >> 2] | 0) | 0) != 0; J = c[v >> 2] | 0; if (j) { I = 6; break a; } K = c[i >> 2] | 0; if (J | 0) { I = 8; break a; } c[(K + 80) >> 2] = 3; break; } case 2: { c[w >> 2] = vy( ((c[i >> 2] | 0) + 84 + (c[((c[i >> 2] | 0) + 68) >> 2] | 0)) | 0, (5 - (c[((c[i >> 2] | 0) + 68) >> 2] | 0)) | 0, c[m >> 2] | 0, c[c[n >> 2] >> 2] | 0 ) | 0; j = ((c[i >> 2] | 0) + 68) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[w >> 2] | 0); c[p >> 2] = (c[p >> 2] | 0) + (c[w >> 2] | 0); c[w >> 2] = sx( ((c[i >> 2] | 0) + 8) | 0, ((c[i >> 2] | 0) + 84) | 0, c[((c[i >> 2] | 0) + 68) >> 2] | 0 ) | 0; j = (rr(c[w >> 2] | 0) | 0) != 0; L = c[w >> 2] | 0; if (j) { I = 11; break a; } if (L | 0) { I = 13; break a; } else I = 14; break; } case 3: { I = 14; break; } case 4: { I = 25; break; } case 5: { I = 35; break; } case 6: { I = 44; break; } default: { I = 48; break a; } } do { if ((I | 0) == 14) { I = 0; c[x >> 2] = 1 << c[((c[i >> 2] | 0) + 8 + 8) >> 2]; c[y >> 2] = 131072; if ( (c[((c[i >> 2] | 0) + 44) >> 2] | 0) >>> 0 < 131072 ? (Dy(c[((c[i >> 2] | 0) + 40) >> 2] | 0), (c[((c[i >> 2] | 0) + 44) >> 2] = 131072), (j = Cy(131072) | 0), (c[((c[i >> 2] | 0) + 40) >> 2] = j), (c[((c[i >> 2] | 0) + 40) >> 2] | 0) == 0) : 0 ) { I = 16; break a; } if ( (c[((c[i >> 2] | 0) + 56) >> 2] | 0) >>> 0 < (c[x >> 2] | 0) >>> 0 ? (Dy(c[((c[i >> 2] | 0) + 52) >> 2] | 0), (c[((c[i >> 2] | 0) + 56) >> 2] = c[x >> 2]), (j = Cy(c[x >> 2] | 0) | 0), (c[((c[i >> 2] | 0) + 52) >> 2] = j), (c[((c[i >> 2] | 0) + 52) >> 2] | 0) == 0) : 0 ) { I = 19; break a; } if (c[((c[i >> 2] | 0) + 76) >> 2] | 0) lw( c[c[i >> 2] >> 2] | 0, c[((c[i >> 2] | 0) + 72) >> 2] | 0, c[((c[i >> 2] | 0) + 76) >> 2] | 0 ); j = c[i >> 2] | 0; if (c[((c[i >> 2] | 0) + 68) >> 2] | 0) { mE( c[(j + 40) >> 2] | 0, ((c[i >> 2] | 0) + 84) | 0, c[((c[i >> 2] | 0) + 68) >> 2] | 0 ) | 0; c[((c[i >> 2] | 0) + 48) >> 2] = c[((c[i >> 2] | 0) + 68) >> 2]; c[((c[i >> 2] | 0) + 68) >> 2] = 0; c[((c[i >> 2] | 0) + 80) >> 2] = 5; break; } else { c[(j + 80) >> 2] = 4; I = 25; break; } } } while (0); do { if ((I | 0) == 25) { I = 0; c[z >> 2] = wy(c[c[i >> 2] >> 2] | 0) | 0; if (!(c[z >> 2] | 0)) { c[((c[i >> 2] | 0) + 80) >> 2] = 0; c[u >> 2] = 0; break; } if ( (((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0) >>> 0 < (c[z >> 2] | 0) >>> 0 ) { if ((c[p >> 2] | 0) == (c[q >> 2] | 0)) { c[u >> 2] = 0; break; } else { c[((c[i >> 2] | 0) + 80) >> 2] = 5; I = 35; break; } } else { c[A >> 2] = xy( c[c[i >> 2] >> 2] | 0, ((c[((c[i >> 2] | 0) + 52) >> 2] | 0) + (c[((c[i >> 2] | 0) + 60) >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 56) >> 2] | 0) - (c[((c[i >> 2] | 0) + 60) >> 2] | 0)) | 0, c[p >> 2] | 0, c[z >> 2] | 0 ) | 0; if (rr(c[A >> 2] | 0) | 0) { I = 29; break a; } c[p >> 2] = (c[p >> 2] | 0) + (c[z >> 2] | 0); if (!(c[A >> 2] | 0)) break; c[((c[i >> 2] | 0) + 64) >> 2] = (c[((c[i >> 2] | 0) + 60) >> 2] | 0) + (c[A >> 2] | 0); c[((c[i >> 2] | 0) + 80) >> 2] = 6; break; } } } while (0); do { if ((I | 0) == 35) { I = 0; c[B >> 2] = wy(c[c[i >> 2] >> 2] | 0) | 0; c[C >> 2] = (c[B >> 2] | 0) - (c[((c[i >> 2] | 0) + 48) >> 2] | 0); if ( (c[C >> 2] | 0) >>> 0 > (((c[((c[i >> 2] | 0) + 44) >> 2] | 0) - (c[((c[i >> 2] | 0) + 48) >> 2] | 0)) | 0) >>> 0 ) { I = 36; break a; } c[D >> 2] = vy( ((c[((c[i >> 2] | 0) + 40) >> 2] | 0) + (c[((c[i >> 2] | 0) + 48) >> 2] | 0)) | 0, c[C >> 2] | 0, c[p >> 2] | 0, ((c[q >> 2] | 0) - (c[p >> 2] | 0)) | 0 ) | 0; c[p >> 2] = (c[p >> 2] | 0) + (c[D >> 2] | 0); j = ((c[i >> 2] | 0) + 48) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[D >> 2] | 0); if ((c[D >> 2] | 0) >>> 0 < (c[C >> 2] | 0) >>> 0) { c[u >> 2] = 0; break; } c[E >> 2] = xy( c[c[i >> 2] >> 2] | 0, ((c[((c[i >> 2] | 0) + 52) >> 2] | 0) + (c[((c[i >> 2] | 0) + 60) >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 56) >> 2] | 0) - (c[((c[i >> 2] | 0) + 60) >> 2] | 0)) | 0, c[((c[i >> 2] | 0) + 40) >> 2] | 0, c[B >> 2] | 0 ) | 0; if (rr(c[E >> 2] | 0) | 0) { I = 40; break a; } c[((c[i >> 2] | 0) + 48) >> 2] = 0; j = c[i >> 2] | 0; if (c[E >> 2] | 0) { c[((c[i >> 2] | 0) + 64) >> 2] = (c[(j + 60) >> 2] | 0) + (c[E >> 2] | 0); c[((c[i >> 2] | 0) + 80) >> 2] = 6; I = 44; break; } else { c[(j + 80) >> 2] = 4; break; } } } while (0); do { if ((I | 0) == 44) { I = 0; c[F >> 2] = (c[((c[i >> 2] | 0) + 64) >> 2] | 0) - (c[((c[i >> 2] | 0) + 60) >> 2] | 0); c[G >> 2] = vy( c[s >> 2] | 0, ((c[t >> 2] | 0) - (c[s >> 2] | 0)) | 0, ((c[((c[i >> 2] | 0) + 52) >> 2] | 0) + (c[((c[i >> 2] | 0) + 60) >> 2] | 0)) | 0, c[F >> 2] | 0 ) | 0; c[s >> 2] = (c[s >> 2] | 0) + (c[G >> 2] | 0); j = ((c[i >> 2] | 0) + 60) | 0; c[j >> 2] = (c[j >> 2] | 0) + (c[G >> 2] | 0); if ((c[G >> 2] | 0) != (c[F >> 2] | 0)) { c[u >> 2] = 0; break; } c[((c[i >> 2] | 0) + 80) >> 2] = 4; if ( (((c[((c[i >> 2] | 0) + 60) >> 2] | 0) + 131072) | 0) >>> 0 > (c[((c[i >> 2] | 0) + 56) >> 2] | 0) >>> 0 ) { c[((c[i >> 2] | 0) + 64) >> 2] = 0; c[((c[i >> 2] | 0) + 60) >> 2] = 0; } } } while (0); } switch (I | 0) { case 4: { c[h >> 2] = -62; M = c[h >> 2] | 0; l = g; return M | 0; } case 6: { c[h >> 2] = J; M = c[h >> 2] | 0; l = g; return M | 0; } case 8: { mE( (K + 84 + (c[((c[i >> 2] | 0) + 68) >> 2] | 0)) | 0, c[m >> 2] | 0, c[c[n >> 2] >> 2] | 0 ) | 0; m = ((c[i >> 2] | 0) + 68) | 0; c[m >> 2] = (c[m >> 2] | 0) + (c[c[n >> 2] >> 2] | 0); c[c[k >> 2] >> 2] = 0; c[((c[i >> 2] | 0) + 80) >> 2] = 2; c[h >> 2] = (c[v >> 2] | 0) - (c[((c[i >> 2] | 0) + 68) >> 2] | 0); M = c[h >> 2] | 0; l = g; return M | 0; } case 11: { c[h >> 2] = L; M = c[h >> 2] | 0; l = g; return M | 0; } case 13: { c[c[k >> 2] >> 2] = 0; c[h >> 2] = (c[w >> 2] | 0) - (c[((c[i >> 2] | 0) + 68) >> 2] | 0); M = c[h >> 2] | 0; l = g; return M | 0; } case 16: { c[h >> 2] = -64; M = c[h >> 2] | 0; l = g; return M | 0; } case 19: { c[h >> 2] = -64; M = c[h >> 2] | 0; l = g; return M | 0; } case 29: { c[h >> 2] = c[A >> 2]; M = c[h >> 2] | 0; l = g; return M | 0; } case 36: { c[h >> 2] = -20; M = c[h >> 2] | 0; l = g; return M | 0; } case 40: { c[h >> 2] = c[E >> 2]; M = c[h >> 2] | 0; l = g; return M | 0; } case 48: { c[h >> 2] = -1; M = c[h >> 2] | 0; l = g; return M | 0; } case 50: { c[c[n >> 2] >> 2] = (c[p >> 2] | 0) - (c[o >> 2] | 0); c[c[k >> 2] >> 2] = (c[s >> 2] | 0) - (c[r >> 2] | 0); c[H >> 2] = wy(c[c[i >> 2] >> 2] | 0) | 0; if ((c[H >> 2] | 0) >>> 0 > 3) c[H >> 2] = (c[H >> 2] | 0) + 3; c[H >> 2] = (c[H >> 2] | 0) - (c[((c[i >> 2] | 0) + 48) >> 2] | 0); c[h >> 2] = c[H >> 2]; M = c[h >> 2] | 0; l = g; return M | 0; } } return 0; } function vy(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = (f + 12) | 0; i = (f + 8) | 0; j = (f + 4) | 0; k = f; c[g >> 2] = a; c[h >> 2] = b; c[i >> 2] = d; c[j >> 2] = e; c[k >> 2] = (c[h >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0 ? c[h >> 2] | 0 : c[j >> 2] | 0; mE(c[g >> 2] | 0, c[i >> 2] | 0, c[k >> 2] | 0) | 0; l = f; return c[k >> 2] | 0; } function wy(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = a; l = b; return c[((c[d >> 2] | 0) + 10268) >> 2] | 0; } function xy(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; h = l; l = (l + 48) | 0; i = (h + 40) | 0; j = (h + 36) | 0; k = (h + 32) | 0; m = (h + 28) | 0; n = (h + 24) | 0; o = (h + 20) | 0; p = (h + 16) | 0; q = (h + 8) | 0; r = (h + 4) | 0; s = h; c[j >> 2] = b; c[k >> 2] = d; c[m >> 2] = e; c[n >> 2] = f; c[o >> 2] = g; if ( (c[o >> 2] | 0) != (c[((c[j >> 2] | 0) + 10268) >> 2] | 0) ) { c[i >> 2] = -72; t = c[i >> 2] | 0; l = h; return t | 0; } yy(c[j >> 2] | 0, c[k >> 2] | 0); a: do { switch (c[((c[j >> 2] | 0) + 10316) >> 2] | 0) { case 0: { if ((c[o >> 2] | 0) != 5) { c[i >> 2] = -72; t = c[i >> 2] | 0; l = h; return t | 0; } g = mw(c[j >> 2] | 0, c[n >> 2] | 0, 5) | 0; c[((c[j >> 2] | 0) + 10272) >> 2] = g; g = (rr(c[((c[j >> 2] | 0) + 10272) >> 2] | 0) | 0) != 0; f = c[j >> 2] | 0; if (g) { c[i >> 2] = c[(f + 10272) >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } g = (f + 141408) | 0; f = c[n >> 2] | 0; a[g >> 0] = a[f >> 0] | 0; a[(g + 1) >> 0] = a[(f + 1) >> 0] | 0; a[(g + 2) >> 0] = a[(f + 2) >> 0] | 0; a[(g + 3) >> 0] = a[(f + 3) >> 0] | 0; a[(g + 4) >> 0] = a[(f + 4) >> 0] | 0; if ( (c[((c[j >> 2] | 0) + 10272) >> 2] | 0) >>> 0 <= 5 ) { c[((c[j >> 2] | 0) + 10268) >> 2] = 0; break a; } c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } case 1: break; case 2: { c[r >> 2] = qr(c[n >> 2] | 0, 3, q) | 0; if (rr(c[r >> 2] | 0) | 0) { c[i >> 2] = c[r >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } if ((c[q >> 2] | 0) == 3) { c[((c[j >> 2] | 0) + 10268) >> 2] = 0; c[((c[j >> 2] | 0) + 10316) >> 2] = 0; } else { c[((c[j >> 2] | 0) + 10268) >> 2] = c[r >> 2]; c[((c[j >> 2] | 0) + 10312) >> 2] = c[q >> 2]; c[((c[j >> 2] | 0) + 10316) >> 2] = 3; } c[i >> 2] = 0; t = c[i >> 2] | 0; l = h; return t | 0; } case 3: { switch (c[((c[j >> 2] | 0) + 10312) >> 2] | 0) { case 0: { c[s >> 2] = ow( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; break; } case 1: { c[s >> 2] = pw( c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0 ) | 0; break; } case 2: { c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } case 3: { c[s >> 2] = 0; break; } default: { c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } } c[((c[j >> 2] | 0) + 10316) >> 2] = 2; c[((c[j >> 2] | 0) + 10268) >> 2] = 3; c[((c[j >> 2] | 0) + 10252) >> 2] = (c[k >> 2] | 0) + (c[s >> 2] | 0); c[i >> 2] = c[s >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } default: { c[i >> 2] = -1; t = c[i >> 2] | 0; l = h; return t | 0; } } } while (0); c[p >> 2] = nw( c[j >> 2] | 0, ((c[j >> 2] | 0) + 141408) | 0, c[((c[j >> 2] | 0) + 10272) >> 2] | 0 ) | 0; if (rr(c[p >> 2] | 0) | 0) { c[i >> 2] = c[p >> 2]; t = c[i >> 2] | 0; l = h; return t | 0; } else { c[((c[j >> 2] | 0) + 10268) >> 2] = 3; c[((c[j >> 2] | 0) + 10316) >> 2] = 2; c[i >> 2] = 0; t = c[i >> 2] | 0; l = h; return t | 0; } return 0; } function yy(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = l; l = (l + 16) | 0; e = (d + 4) | 0; f = d; c[e >> 2] = a; c[f >> 2] = b; if ( (c[f >> 2] | 0) == (c[((c[e >> 2] | 0) + 10252) >> 2] | 0) ) { l = d; return; } c[((c[e >> 2] | 0) + 10264) >> 2] = c[((c[e >> 2] | 0) + 10252) >> 2]; c[((c[e >> 2] | 0) + 10260) >> 2] = (c[f >> 2] | 0) + (0 - ((c[((c[e >> 2] | 0) + 10252) >> 2] | 0) - (c[((c[e >> 2] | 0) + 10256) >> 2] | 0))); c[((c[e >> 2] | 0) + 10256) >> 2] = c[f >> 2]; c[((c[e >> 2] | 0) + 10252) >> 2] = c[f >> 2]; l = d; return; } function zy() { Ay(0); return; } function Ay(a) { a = a | 0; Wa(10928, 20112); La(10944, 20117, 1, 1, 0); Sa(10952, 19886, 1, -128, 127); Sa(10968, 19891, 1, -128, 127); Sa(10960, 19903, 1, 0, 255); Sa(10976, 19917, 2, -32768, 32767); Sa(10984, 19923, 2, 0, 65535); Sa(10992, 20122, 4, -2147483648, 2147483647); Sa(11e3, 20126, 4, 0, -1); Sa(11008, 20139, 4, -2147483648, 2147483647); Sa(11016, 20144, 4, 0, -1); Qa(11024, 20168, 4); Qa(11032, 20280, 8); Ua(10624, 19495); Ua(10648, 16561); Va(10672, 4, 16594); Pa(9840, 16607); Ta(10696, 0, 16623); Ta(10704, 0, 16653); Ta(10712, 1, 16690); Ta(10720, 2, 16729); Ta(10728, 3, 16760); Ta(10736, 4, 16800); Ta(10744, 5, 16829); Ta(10752, 4, 16867); Ta(10760, 5, 16897); Ta(10704, 0, 16936); Ta(10712, 1, 16968); Ta(10720, 2, 17001); Ta(10728, 3, 17034); Ta(10736, 4, 17068); Ta(10744, 5, 17101); Ta(10768, 6, 17135); Ta(10776, 7, 17166); Ta(10784, 7, 17198); return; } function By(a) { a = a | 0; return Oz(c[(a + 4) >> 2] | 0) | 0; } function Cy(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0; b = l; l = (l + 16) | 0; d = b; do { if (a >>> 0 < 245) { e = a >>> 0 < 11 ? 16 : (a + 11) & -8; f = e >>> 3; g = c[5418] | 0; h = g >>> f; if ((h & 3) | 0) { i = (((h & 1) ^ 1) + f) | 0; j = (21712 + ((i << 1) << 2)) | 0; k = (j + 8) | 0; m = c[k >> 2] | 0; n = (m + 8) | 0; o = c[n >> 2] | 0; if ((o | 0) == (j | 0)) c[5418] = g & ~(1 << i); else { c[(o + 12) >> 2] = j; c[k >> 2] = o; } o = i << 3; c[(m + 4) >> 2] = o | 3; i = (m + o + 4) | 0; c[i >> 2] = c[i >> 2] | 1; p = n; l = b; return p | 0; } n = c[5420] | 0; if (e >>> 0 > n >>> 0) { if (h | 0) { i = 2 << f; o = (h << f) & (i | (0 - i)); i = ((o & (0 - o)) + -1) | 0; o = (i >>> 12) & 16; f = i >>> o; i = (f >>> 5) & 8; h = f >>> i; f = (h >>> 2) & 4; m = h >>> f; h = (m >>> 1) & 2; k = m >>> h; m = (k >>> 1) & 1; j = ((i | o | f | h | m) + (k >>> m)) | 0; m = (21712 + ((j << 1) << 2)) | 0; k = (m + 8) | 0; h = c[k >> 2] | 0; f = (h + 8) | 0; o = c[f >> 2] | 0; if ((o | 0) == (m | 0)) { i = g & ~(1 << j); c[5418] = i; q = i; } else { c[(o + 12) >> 2] = m; c[k >> 2] = o; q = g; } o = j << 3; j = (o - e) | 0; c[(h + 4) >> 2] = e | 3; k = (h + e) | 0; c[(k + 4) >> 2] = j | 1; c[(h + o) >> 2] = j; if (n | 0) { o = c[5423] | 0; h = n >>> 3; m = (21712 + ((h << 1) << 2)) | 0; i = 1 << h; if (!(q & i)) { c[5418] = q | i; r = m; s = (m + 8) | 0; } else { i = (m + 8) | 0; r = c[i >> 2] | 0; s = i; } c[s >> 2] = o; c[(r + 12) >> 2] = o; c[(o + 8) >> 2] = r; c[(o + 12) >> 2] = m; } c[5420] = j; c[5423] = k; p = f; l = b; return p | 0; } f = c[5419] | 0; if (f) { k = ((f & (0 - f)) + -1) | 0; j = (k >>> 12) & 16; m = k >>> j; k = (m >>> 5) & 8; o = m >>> k; m = (o >>> 2) & 4; i = o >>> m; o = (i >>> 1) & 2; h = i >>> o; i = (h >>> 1) & 1; t = c[ (21976 + (((k | j | m | o | i) + (h >>> i)) << 2)) >> 2 ] | 0; i = t; h = t; o = ((c[(t + 4) >> 2] & -8) - e) | 0; while (1) { t = c[(i + 16) >> 2] | 0; if (!t) { m = c[(i + 20) >> 2] | 0; if (!m) break; else u = m; } else u = t; t = ((c[(u + 4) >> 2] & -8) - e) | 0; m = t >>> 0 < o >>> 0; i = u; h = m ? u : h; o = m ? t : o; } i = (h + e) | 0; if (i >>> 0 > h >>> 0) { t = c[(h + 24) >> 2] | 0; m = c[(h + 12) >> 2] | 0; do { if ((m | 0) == (h | 0)) { j = (h + 20) | 0; k = c[j >> 2] | 0; if (!k) { v = (h + 16) | 0; w = c[v >> 2] | 0; if (!w) { x = 0; break; } else { y = w; z = v; } } else { y = k; z = j; } j = y; k = z; while (1) { v = (j + 20) | 0; w = c[v >> 2] | 0; if (!w) { A = (j + 16) | 0; B = c[A >> 2] | 0; if (!B) break; else { C = B; D = A; } } else { C = w; D = v; } j = C; k = D; } c[k >> 2] = 0; x = j; } else { v = c[(h + 8) >> 2] | 0; c[(v + 12) >> 2] = m; c[(m + 8) >> 2] = v; x = m; } } while (0); do { if (t | 0) { m = c[(h + 28) >> 2] | 0; v = (21976 + (m << 2)) | 0; if ((h | 0) == (c[v >> 2] | 0)) { c[v >> 2] = x; if (!x) { c[5419] = f & ~(1 << m); break; } } else { m = (t + 16) | 0; c[ ((c[m >> 2] | 0) == (h | 0) ? m : (t + 20) | 0) >> 2 ] = x; if (!x) break; } c[(x + 24) >> 2] = t; m = c[(h + 16) >> 2] | 0; if (m | 0) { c[(x + 16) >> 2] = m; c[(m + 24) >> 2] = x; } m = c[(h + 20) >> 2] | 0; if (m | 0) { c[(x + 20) >> 2] = m; c[(m + 24) >> 2] = x; } } } while (0); if (o >>> 0 < 16) { t = (o + e) | 0; c[(h + 4) >> 2] = t | 3; f = (h + t + 4) | 0; c[f >> 2] = c[f >> 2] | 1; } else { c[(h + 4) >> 2] = e | 3; c[(i + 4) >> 2] = o | 1; c[(i + o) >> 2] = o; if (n | 0) { f = c[5423] | 0; t = n >>> 3; m = (21712 + ((t << 1) << 2)) | 0; v = 1 << t; if (!(v & g)) { c[5418] = v | g; E = m; F = (m + 8) | 0; } else { v = (m + 8) | 0; E = c[v >> 2] | 0; F = v; } c[F >> 2] = f; c[(E + 12) >> 2] = f; c[(f + 8) >> 2] = E; c[(f + 12) >> 2] = m; } c[5420] = o; c[5423] = i; } p = (h + 8) | 0; l = b; return p | 0; } else G = e; } else G = e; } else G = e; } else if (a >>> 0 <= 4294967231) { m = (a + 11) | 0; f = m & -8; v = c[5419] | 0; if (v) { t = (0 - f) | 0; w = m >>> 8; if (w) { if (f >>> 0 > 16777215) H = 31; else { m = (((w + 1048320) | 0) >>> 16) & 8; A = w << m; w = (((A + 520192) | 0) >>> 16) & 4; B = A << w; A = (((B + 245760) | 0) >>> 16) & 2; I = (14 - (w | m | A) + ((B << A) >>> 15)) | 0; H = ((f >>> ((I + 7) | 0)) & 1) | (I << 1); } } else H = 0; I = c[(21976 + (H << 2)) >> 2] | 0; a: do { if (!I) { J = 0; K = 0; L = t; M = 61; } else { A = 0; B = t; m = I; w = f << ((H | 0) == 31 ? 0 : (25 - (H >>> 1)) | 0); N = 0; while (1) { O = ((c[(m + 4) >> 2] & -8) - f) | 0; if (O >>> 0 < B >>> 0) { if (!O) { P = m; Q = 0; R = m; M = 65; break a; } else { S = m; T = O; } } else { S = A; T = B; } O = c[(m + 20) >> 2] | 0; m = c[(m + 16 + ((w >>> 31) << 2)) >> 2] | 0; U = ((O | 0) == 0) | ((O | 0) == (m | 0)) ? N : O; if (!m) { J = U; K = S; L = T; M = 61; break; } else { A = S; B = T; w = w << 1; N = U; } } } } while (0); if ((M | 0) == 61) { if (((J | 0) == 0) & ((K | 0) == 0)) { I = 2 << H; t = (I | (0 - I)) & v; if (!t) { G = f; break; } I = ((t & (0 - t)) + -1) | 0; t = (I >>> 12) & 16; e = I >>> t; I = (e >>> 5) & 8; h = e >>> I; e = (h >>> 2) & 4; i = h >>> e; h = (i >>> 1) & 2; o = i >>> h; i = (o >>> 1) & 1; V = 0; W = c[ (21976 + (((I | t | e | h | i) + (o >>> i)) << 2)) >> 2 ] | 0; } else { V = K; W = J; } if (!W) { X = V; Y = L; } else { P = V; Q = L; R = W; M = 65; } } if ((M | 0) == 65) { i = P; o = Q; h = R; while (1) { e = ((c[(h + 4) >> 2] & -8) - f) | 0; t = e >>> 0 < o >>> 0; I = t ? e : o; e = t ? h : i; t = c[(h + 16) >> 2] | 0; if (!t) Z = c[(h + 20) >> 2] | 0; else Z = t; if (!Z) { X = e; Y = I; break; } else { i = e; o = I; h = Z; } } } if ( ( (X | 0) != 0 ? Y >>> 0 < (((c[5420] | 0) - f) | 0) >>> 0 : 0 ) ? ((h = (X + f) | 0), h >>> 0 > X >>> 0) : 0 ) { o = c[(X + 24) >> 2] | 0; i = c[(X + 12) >> 2] | 0; do { if ((i | 0) == (X | 0)) { I = (X + 20) | 0; e = c[I >> 2] | 0; if (!e) { t = (X + 16) | 0; g = c[t >> 2] | 0; if (!g) { _ = 0; break; } else { $ = g; aa = t; } } else { $ = e; aa = I; } I = $; e = aa; while (1) { t = (I + 20) | 0; g = c[t >> 2] | 0; if (!g) { n = (I + 16) | 0; N = c[n >> 2] | 0; if (!N) break; else { ba = N; ca = n; } } else { ba = g; ca = t; } I = ba; e = ca; } c[e >> 2] = 0; _ = I; } else { t = c[(X + 8) >> 2] | 0; c[(t + 12) >> 2] = i; c[(i + 8) >> 2] = t; _ = i; } } while (0); do { if (o) { i = c[(X + 28) >> 2] | 0; t = (21976 + (i << 2)) | 0; if ((X | 0) == (c[t >> 2] | 0)) { c[t >> 2] = _; if (!_) { t = v & ~(1 << i); c[5419] = t; da = t; break; } } else { t = (o + 16) | 0; c[ ((c[t >> 2] | 0) == (X | 0) ? t : (o + 20) | 0) >> 2 ] = _; if (!_) { da = v; break; } } c[(_ + 24) >> 2] = o; t = c[(X + 16) >> 2] | 0; if (t | 0) { c[(_ + 16) >> 2] = t; c[(t + 24) >> 2] = _; } t = c[(X + 20) >> 2] | 0; if (t) { c[(_ + 20) >> 2] = t; c[(t + 24) >> 2] = _; da = v; } else da = v; } else da = v; } while (0); b: do { if (Y >>> 0 < 16) { v = (Y + f) | 0; c[(X + 4) >> 2] = v | 3; o = (X + v + 4) | 0; c[o >> 2] = c[o >> 2] | 1; } else { c[(X + 4) >> 2] = f | 3; c[(h + 4) >> 2] = Y | 1; c[(h + Y) >> 2] = Y; o = Y >>> 3; if (Y >>> 0 < 256) { v = (21712 + ((o << 1) << 2)) | 0; t = c[5418] | 0; i = 1 << o; if (!(t & i)) { c[5418] = t | i; ea = v; fa = (v + 8) | 0; } else { i = (v + 8) | 0; ea = c[i >> 2] | 0; fa = i; } c[fa >> 2] = h; c[(ea + 12) >> 2] = h; c[(h + 8) >> 2] = ea; c[(h + 12) >> 2] = v; break; } v = Y >>> 8; if (v) { if (Y >>> 0 > 16777215) ga = 31; else { i = (((v + 1048320) | 0) >>> 16) & 8; t = v << i; v = (((t + 520192) | 0) >>> 16) & 4; o = t << v; t = (((o + 245760) | 0) >>> 16) & 2; g = (14 - (v | i | t) + ((o << t) >>> 15)) | 0; ga = ((Y >>> ((g + 7) | 0)) & 1) | (g << 1); } } else ga = 0; g = (21976 + (ga << 2)) | 0; c[(h + 28) >> 2] = ga; t = (h + 16) | 0; c[(t + 4) >> 2] = 0; c[t >> 2] = 0; t = 1 << ga; if (!(da & t)) { c[5419] = da | t; c[g >> 2] = h; c[(h + 24) >> 2] = g; c[(h + 12) >> 2] = h; c[(h + 8) >> 2] = h; break; } t = c[g >> 2] | 0; c: do { if (((c[(t + 4) >> 2] & -8) | 0) == (Y | 0)) ha = t; else { g = Y << ((ga | 0) == 31 ? 0 : (25 - (ga >>> 1)) | 0); o = t; while (1) { ia = (o + 16 + ((g >>> 31) << 2)) | 0; i = c[ia >> 2] | 0; if (!i) break; if ( ((c[(i + 4) >> 2] & -8) | 0) == (Y | 0) ) { ha = i; break c; } else { g = g << 1; o = i; } } c[ia >> 2] = h; c[(h + 24) >> 2] = o; c[(h + 12) >> 2] = h; c[(h + 8) >> 2] = h; break b; } } while (0); t = (ha + 8) | 0; I = c[t >> 2] | 0; c[(I + 12) >> 2] = h; c[t >> 2] = h; c[(h + 8) >> 2] = I; c[(h + 12) >> 2] = ha; c[(h + 24) >> 2] = 0; } } while (0); p = (X + 8) | 0; l = b; return p | 0; } else G = f; } else G = f; } else G = -1; } while (0); X = c[5420] | 0; if (X >>> 0 >= G >>> 0) { ha = (X - G) | 0; ia = c[5423] | 0; if (ha >>> 0 > 15) { Y = (ia + G) | 0; c[5423] = Y; c[5420] = ha; c[(Y + 4) >> 2] = ha | 1; c[(ia + X) >> 2] = ha; c[(ia + 4) >> 2] = G | 3; } else { c[5420] = 0; c[5423] = 0; c[(ia + 4) >> 2] = X | 3; ha = (ia + X + 4) | 0; c[ha >> 2] = c[ha >> 2] | 1; } p = (ia + 8) | 0; l = b; return p | 0; } ia = c[5421] | 0; if (ia >>> 0 > G >>> 0) { ha = (ia - G) | 0; c[5421] = ha; X = c[5424] | 0; Y = (X + G) | 0; c[5424] = Y; c[(Y + 4) >> 2] = ha | 1; c[(X + 4) >> 2] = G | 3; p = (X + 8) | 0; l = b; return p | 0; } if (!(c[5536] | 0)) { c[5538] = 4096; c[5537] = 4096; c[5539] = -1; c[5540] = -1; c[5541] = 0; c[5529] = 0; c[5536] = (d & -16) ^ 1431655768; ja = 4096; } else ja = c[5538] | 0; d = (G + 48) | 0; X = (G + 47) | 0; ha = (ja + X) | 0; Y = (0 - ja) | 0; ja = ha & Y; if (ja >>> 0 <= G >>> 0) { p = 0; l = b; return p | 0; } ga = c[5528] | 0; if ( ga | 0 ? ((da = c[5526] | 0), (ea = (da + ja) | 0), (ea >>> 0 <= da >>> 0) | (ea >>> 0 > ga >>> 0)) : 0 ) { p = 0; l = b; return p | 0; } d: do { if (!(c[5529] & 4)) { ga = c[5424] | 0; e: do { if (ga) { ea = 22120; while (1) { da = c[ea >> 2] | 0; if ( da >>> 0 <= ga >>> 0 ? ((da + (c[(ea + 4) >> 2] | 0)) | 0) >>> 0 > ga >>> 0 : 0 ) break; da = c[(ea + 8) >> 2] | 0; if (!da) { M = 128; break e; } else ea = da; } da = (ha - ia) & Y; if (da >>> 0 < 2147483647) { fa = pE(da | 0) | 0; if ( (fa | 0) == (((c[ea >> 2] | 0) + (c[(ea + 4) >> 2] | 0)) | 0) ) { if ((fa | 0) == (-1 | 0)) ka = da; else { la = da; ma = fa; M = 145; break d; } } else { na = fa; oa = da; M = 136; } } else ka = 0; } else M = 128; } while (0); do { if ((M | 0) == 128) { ga = pE(0) | 0; if ( (ga | 0) != (-1 | 0) ? ((f = ga), (da = c[5537] | 0), (fa = (da + -1) | 0), (_ = ((((fa & f) | 0) == 0 ? 0 : (((fa + f) & (0 - da)) - f) | 0) + ja) | 0), (f = c[5526] | 0), (da = (_ + f) | 0), (_ >>> 0 > G >>> 0) & (_ >>> 0 < 2147483647)) : 0 ) { fa = c[5528] | 0; if ( fa | 0 ? (da >>> 0 <= f >>> 0) | (da >>> 0 > fa >>> 0) : 0 ) { ka = 0; break; } fa = pE(_ | 0) | 0; if ((fa | 0) == (ga | 0)) { la = _; ma = ga; M = 145; break d; } else { na = fa; oa = _; M = 136; } } else ka = 0; } } while (0); do { if ((M | 0) == 136) { _ = (0 - oa) | 0; if ( !( (d >>> 0 > oa >>> 0) & ((oa >>> 0 < 2147483647) & ((na | 0) != (-1 | 0))) ) ) if ((na | 0) == (-1 | 0)) { ka = 0; break; } else { la = oa; ma = na; M = 145; break d; } fa = c[5538] | 0; ga = (X - oa + fa) & (0 - fa); if (ga >>> 0 >= 2147483647) { la = oa; ma = na; M = 145; break d; } if ((pE(ga | 0) | 0) == (-1 | 0)) { pE(_ | 0) | 0; ka = 0; break; } else { la = (ga + oa) | 0; ma = na; M = 145; break d; } } } while (0); c[5529] = c[5529] | 4; pa = ka; M = 143; } else { pa = 0; M = 143; } } while (0); if ( ((M | 0) == 143 ? ja >>> 0 < 2147483647 : 0) ? ((ka = pE(ja | 0) | 0), (ja = pE(0) | 0), (na = (ja - ka) | 0), (oa = na >>> 0 > ((G + 40) | 0) >>> 0), !( ((ka | 0) == (-1 | 0)) | (oa ^ 1) | (((ka >>> 0 < ja >>> 0) & (((ka | 0) != (-1 | 0)) & ((ja | 0) != (-1 | 0)))) ^ 1) )) : 0 ) { la = oa ? na : pa; ma = ka; M = 145; } if ((M | 0) == 145) { ka = ((c[5526] | 0) + la) | 0; c[5526] = ka; if (ka >>> 0 > (c[5527] | 0) >>> 0) c[5527] = ka; ka = c[5424] | 0; f: do { if (ka) { pa = 22120; while (1) { qa = c[pa >> 2] | 0; ra = c[(pa + 4) >> 2] | 0; if ((ma | 0) == ((qa + ra) | 0)) { M = 154; break; } na = c[(pa + 8) >> 2] | 0; if (!na) break; else pa = na; } if ( ( (M | 0) == 154 ? ((na = (pa + 4) | 0), ((c[(pa + 12) >> 2] & 8) | 0) == 0) : 0 ) ? (ma >>> 0 > ka >>> 0) & (qa >>> 0 <= ka >>> 0) : 0 ) { c[na >> 2] = ra + la; na = ((c[5421] | 0) + la) | 0; oa = (ka + 8) | 0; ja = ((oa & 7) | 0) == 0 ? 0 : (0 - oa) & 7; oa = (ka + ja) | 0; X = (na - ja) | 0; c[5424] = oa; c[5421] = X; c[(oa + 4) >> 2] = X | 1; c[(ka + na + 4) >> 2] = 40; c[5425] = c[5540]; break; } if (ma >>> 0 < (c[5422] | 0) >>> 0) c[5422] = ma; na = (ma + la) | 0; X = 22120; while (1) { if ((c[X >> 2] | 0) == (na | 0)) { M = 162; break; } oa = c[(X + 8) >> 2] | 0; if (!oa) break; else X = oa; } if ( (M | 0) == 162 ? ((c[(X + 12) >> 2] & 8) | 0) == 0 : 0 ) { c[X >> 2] = ma; pa = (X + 4) | 0; c[pa >> 2] = (c[pa >> 2] | 0) + la; pa = (ma + 8) | 0; oa = (ma + (((pa & 7) | 0) == 0 ? 0 : (0 - pa) & 7)) | 0; pa = (na + 8) | 0; ja = (na + (((pa & 7) | 0) == 0 ? 0 : (0 - pa) & 7)) | 0; pa = (oa + G) | 0; d = (ja - oa - G) | 0; c[(oa + 4) >> 2] = G | 3; g: do { if ((ka | 0) == (ja | 0)) { Y = ((c[5421] | 0) + d) | 0; c[5421] = Y; c[5424] = pa; c[(pa + 4) >> 2] = Y | 1; } else { if ((c[5423] | 0) == (ja | 0)) { Y = ((c[5420] | 0) + d) | 0; c[5420] = Y; c[5423] = pa; c[(pa + 4) >> 2] = Y | 1; c[(pa + Y) >> 2] = Y; break; } Y = c[(ja + 4) >> 2] | 0; if (((Y & 3) | 0) == 1) { ia = Y & -8; ha = Y >>> 3; h: do { if (Y >>> 0 < 256) { ga = c[(ja + 8) >> 2] | 0; _ = c[(ja + 12) >> 2] | 0; if ((_ | 0) == (ga | 0)) { c[5418] = c[5418] & ~(1 << ha); break; } else { c[(ga + 12) >> 2] = _; c[(_ + 8) >> 2] = ga; break; } } else { ga = c[(ja + 24) >> 2] | 0; _ = c[(ja + 12) >> 2] | 0; do { if ((_ | 0) == (ja | 0)) { fa = (ja + 16) | 0; da = (fa + 4) | 0; f = c[da >> 2] | 0; if (!f) { ca = c[fa >> 2] | 0; if (!ca) { sa = 0; break; } else { ta = ca; ua = fa; } } else { ta = f; ua = da; } da = ta; f = ua; while (1) { fa = (da + 20) | 0; ca = c[fa >> 2] | 0; if (!ca) { ba = (da + 16) | 0; aa = c[ba >> 2] | 0; if (!aa) break; else { va = aa; wa = ba; } } else { va = ca; wa = fa; } da = va; f = wa; } c[f >> 2] = 0; sa = da; } else { fa = c[(ja + 8) >> 2] | 0; c[(fa + 12) >> 2] = _; c[(_ + 8) >> 2] = fa; sa = _; } } while (0); if (!ga) break; _ = c[(ja + 28) >> 2] | 0; o = (21976 + (_ << 2)) | 0; do { if ((c[o >> 2] | 0) != (ja | 0)) { fa = (ga + 16) | 0; c[ ((c[fa >> 2] | 0) == (ja | 0) ? fa : (ga + 20) | 0) >> 2 ] = sa; if (!sa) break h; } else { c[o >> 2] = sa; if (sa | 0) break; c[5419] = c[5419] & ~(1 << _); break h; } } while (0); c[(sa + 24) >> 2] = ga; _ = (ja + 16) | 0; o = c[_ >> 2] | 0; if (o | 0) { c[(sa + 16) >> 2] = o; c[(o + 24) >> 2] = sa; } o = c[(_ + 4) >> 2] | 0; if (!o) break; c[(sa + 20) >> 2] = o; c[(o + 24) >> 2] = sa; } } while (0); xa = (ja + ia) | 0; ya = (ia + d) | 0; } else { xa = ja; ya = d; } ha = (xa + 4) | 0; c[ha >> 2] = c[ha >> 2] & -2; c[(pa + 4) >> 2] = ya | 1; c[(pa + ya) >> 2] = ya; ha = ya >>> 3; if (ya >>> 0 < 256) { Y = (21712 + ((ha << 1) << 2)) | 0; ea = c[5418] | 0; o = 1 << ha; if (!(ea & o)) { c[5418] = ea | o; za = Y; Aa = (Y + 8) | 0; } else { o = (Y + 8) | 0; za = c[o >> 2] | 0; Aa = o; } c[Aa >> 2] = pa; c[(za + 12) >> 2] = pa; c[(pa + 8) >> 2] = za; c[(pa + 12) >> 2] = Y; break; } Y = ya >>> 8; do { if (!Y) Ba = 0; else { if (ya >>> 0 > 16777215) { Ba = 31; break; } o = (((Y + 1048320) | 0) >>> 16) & 8; ea = Y << o; ha = (((ea + 520192) | 0) >>> 16) & 4; _ = ea << ha; ea = (((_ + 245760) | 0) >>> 16) & 2; fa = (14 - (ha | o | ea) + ((_ << ea) >>> 15)) | 0; Ba = ((ya >>> ((fa + 7) | 0)) & 1) | (fa << 1); } } while (0); Y = (21976 + (Ba << 2)) | 0; c[(pa + 28) >> 2] = Ba; ia = (pa + 16) | 0; c[(ia + 4) >> 2] = 0; c[ia >> 2] = 0; ia = c[5419] | 0; fa = 1 << Ba; if (!(ia & fa)) { c[5419] = ia | fa; c[Y >> 2] = pa; c[(pa + 24) >> 2] = Y; c[(pa + 12) >> 2] = pa; c[(pa + 8) >> 2] = pa; break; } fa = c[Y >> 2] | 0; i: do { if (((c[(fa + 4) >> 2] & -8) | 0) == (ya | 0)) Ca = fa; else { Y = ya << ((Ba | 0) == 31 ? 0 : (25 - (Ba >>> 1)) | 0); ia = fa; while (1) { Da = (ia + 16 + ((Y >>> 31) << 2)) | 0; ea = c[Da >> 2] | 0; if (!ea) break; if ( ((c[(ea + 4) >> 2] & -8) | 0) == (ya | 0) ) { Ca = ea; break i; } else { Y = Y << 1; ia = ea; } } c[Da >> 2] = pa; c[(pa + 24) >> 2] = ia; c[(pa + 12) >> 2] = pa; c[(pa + 8) >> 2] = pa; break g; } } while (0); fa = (Ca + 8) | 0; Y = c[fa >> 2] | 0; c[(Y + 12) >> 2] = pa; c[fa >> 2] = pa; c[(pa + 8) >> 2] = Y; c[(pa + 12) >> 2] = Ca; c[(pa + 24) >> 2] = 0; } } while (0); p = (oa + 8) | 0; l = b; return p | 0; } pa = 22120; while (1) { d = c[pa >> 2] | 0; if ( d >>> 0 <= ka >>> 0 ? ((Ea = (d + (c[(pa + 4) >> 2] | 0)) | 0), Ea >>> 0 > ka >>> 0) : 0 ) break; pa = c[(pa + 8) >> 2] | 0; } pa = (Ea + -47) | 0; oa = (pa + 8) | 0; d = (pa + (((oa & 7) | 0) == 0 ? 0 : (0 - oa) & 7)) | 0; oa = (ka + 16) | 0; pa = d >>> 0 < oa >>> 0 ? ka : d; d = (pa + 8) | 0; ja = (la + -40) | 0; na = (ma + 8) | 0; X = ((na & 7) | 0) == 0 ? 0 : (0 - na) & 7; na = (ma + X) | 0; Y = (ja - X) | 0; c[5424] = na; c[5421] = Y; c[(na + 4) >> 2] = Y | 1; c[(ma + ja + 4) >> 2] = 40; c[5425] = c[5540]; ja = (pa + 4) | 0; c[ja >> 2] = 27; c[d >> 2] = c[5530]; c[(d + 4) >> 2] = c[5531]; c[(d + 8) >> 2] = c[5532]; c[(d + 12) >> 2] = c[5533]; c[5530] = ma; c[5531] = la; c[5533] = 0; c[5532] = d; d = (pa + 24) | 0; do { Y = d; d = (d + 4) | 0; c[d >> 2] = 7; } while (((Y + 8) | 0) >>> 0 < Ea >>> 0); if ((pa | 0) != (ka | 0)) { d = (pa - ka) | 0; c[ja >> 2] = c[ja >> 2] & -2; c[(ka + 4) >> 2] = d | 1; c[pa >> 2] = d; Y = d >>> 3; if (d >>> 0 < 256) { na = (21712 + ((Y << 1) << 2)) | 0; X = c[5418] | 0; fa = 1 << Y; if (!(X & fa)) { c[5418] = X | fa; Fa = na; Ga = (na + 8) | 0; } else { fa = (na + 8) | 0; Fa = c[fa >> 2] | 0; Ga = fa; } c[Ga >> 2] = ka; c[(Fa + 12) >> 2] = ka; c[(ka + 8) >> 2] = Fa; c[(ka + 12) >> 2] = na; break; } na = d >>> 8; if (na) { if (d >>> 0 > 16777215) Ha = 31; else { fa = (((na + 1048320) | 0) >>> 16) & 8; X = na << fa; na = (((X + 520192) | 0) >>> 16) & 4; Y = X << na; X = (((Y + 245760) | 0) >>> 16) & 2; ga = (14 - (na | fa | X) + ((Y << X) >>> 15)) | 0; Ha = ((d >>> ((ga + 7) | 0)) & 1) | (ga << 1); } } else Ha = 0; ga = (21976 + (Ha << 2)) | 0; c[(ka + 28) >> 2] = Ha; c[(ka + 20) >> 2] = 0; c[oa >> 2] = 0; X = c[5419] | 0; Y = 1 << Ha; if (!(X & Y)) { c[5419] = X | Y; c[ga >> 2] = ka; c[(ka + 24) >> 2] = ga; c[(ka + 12) >> 2] = ka; c[(ka + 8) >> 2] = ka; break; } Y = c[ga >> 2] | 0; j: do { if (((c[(Y + 4) >> 2] & -8) | 0) == (d | 0)) Ia = Y; else { ga = d << ((Ha | 0) == 31 ? 0 : (25 - (Ha >>> 1)) | 0); X = Y; while (1) { Ja = (X + 16 + ((ga >>> 31) << 2)) | 0; fa = c[Ja >> 2] | 0; if (!fa) break; if (((c[(fa + 4) >> 2] & -8) | 0) == (d | 0)) { Ia = fa; break j; } else { ga = ga << 1; X = fa; } } c[Ja >> 2] = ka; c[(ka + 24) >> 2] = X; c[(ka + 12) >> 2] = ka; c[(ka + 8) >> 2] = ka; break f; } } while (0); d = (Ia + 8) | 0; Y = c[d >> 2] | 0; c[(Y + 12) >> 2] = ka; c[d >> 2] = ka; c[(ka + 8) >> 2] = Y; c[(ka + 12) >> 2] = Ia; c[(ka + 24) >> 2] = 0; } } else { Y = c[5422] | 0; if (((Y | 0) == 0) | (ma >>> 0 < Y >>> 0)) c[5422] = ma; c[5530] = ma; c[5531] = la; c[5533] = 0; c[5427] = c[5536]; c[5426] = -1; c[5431] = 21712; c[5430] = 21712; c[5433] = 21720; c[5432] = 21720; c[5435] = 21728; c[5434] = 21728; c[5437] = 21736; c[5436] = 21736; c[5439] = 21744; c[5438] = 21744; c[5441] = 21752; c[5440] = 21752; c[5443] = 21760; c[5442] = 21760; c[5445] = 21768; c[5444] = 21768; c[5447] = 21776; c[5446] = 21776; c[5449] = 21784; c[5448] = 21784; c[5451] = 21792; c[5450] = 21792; c[5453] = 21800; c[5452] = 21800; c[5455] = 21808; c[5454] = 21808; c[5457] = 21816; c[5456] = 21816; c[5459] = 21824; c[5458] = 21824; c[5461] = 21832; c[5460] = 21832; c[5463] = 21840; c[5462] = 21840; c[5465] = 21848; c[5464] = 21848; c[5467] = 21856; c[5466] = 21856; c[5469] = 21864; c[5468] = 21864; c[5471] = 21872; c[5470] = 21872; c[5473] = 21880; c[5472] = 21880; c[5475] = 21888; c[5474] = 21888; c[5477] = 21896; c[5476] = 21896; c[5479] = 21904; c[5478] = 21904; c[5481] = 21912; c[5480] = 21912; c[5483] = 21920; c[5482] = 21920; c[5485] = 21928; c[5484] = 21928; c[5487] = 21936; c[5486] = 21936; c[5489] = 21944; c[5488] = 21944; c[5491] = 21952; c[5490] = 21952; c[5493] = 21960; c[5492] = 21960; Y = (la + -40) | 0; d = (ma + 8) | 0; oa = ((d & 7) | 0) == 0 ? 0 : (0 - d) & 7; d = (ma + oa) | 0; pa = (Y - oa) | 0; c[5424] = d; c[5421] = pa; c[(d + 4) >> 2] = pa | 1; c[(ma + Y + 4) >> 2] = 40; c[5425] = c[5540]; } } while (0); ma = c[5421] | 0; if (ma >>> 0 > G >>> 0) { la = (ma - G) | 0; c[5421] = la; ma = c[5424] | 0; ka = (ma + G) | 0; c[5424] = ka; c[(ka + 4) >> 2] = la | 1; c[(ma + 4) >> 2] = G | 3; p = (ma + 8) | 0; l = b; return p | 0; } } c[(My() | 0) >> 2] = 12; p = 0; l = b; return p | 0; } function Dy(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0; if (!a) return; b = (a + -8) | 0; d = c[5422] | 0; e = c[(a + -4) >> 2] | 0; a = e & -8; f = (b + a) | 0; do { if (!(e & 1)) { g = c[b >> 2] | 0; if (!(e & 3)) return; h = (b + (0 - g)) | 0; i = (g + a) | 0; if (h >>> 0 < d >>> 0) return; if ((c[5423] | 0) == (h | 0)) { j = (f + 4) | 0; k = c[j >> 2] | 0; if (((k & 3) | 0) != 3) { l = h; m = i; n = h; break; } c[5420] = i; c[j >> 2] = k & -2; c[(h + 4) >> 2] = i | 1; c[(h + i) >> 2] = i; return; } k = g >>> 3; if (g >>> 0 < 256) { g = c[(h + 8) >> 2] | 0; j = c[(h + 12) >> 2] | 0; if ((j | 0) == (g | 0)) { c[5418] = c[5418] & ~(1 << k); l = h; m = i; n = h; break; } else { c[(g + 12) >> 2] = j; c[(j + 8) >> 2] = g; l = h; m = i; n = h; break; } } g = c[(h + 24) >> 2] | 0; j = c[(h + 12) >> 2] | 0; do { if ((j | 0) == (h | 0)) { k = (h + 16) | 0; o = (k + 4) | 0; p = c[o >> 2] | 0; if (!p) { q = c[k >> 2] | 0; if (!q) { r = 0; break; } else { s = q; t = k; } } else { s = p; t = o; } o = s; p = t; while (1) { k = (o + 20) | 0; q = c[k >> 2] | 0; if (!q) { u = (o + 16) | 0; v = c[u >> 2] | 0; if (!v) break; else { w = v; x = u; } } else { w = q; x = k; } o = w; p = x; } c[p >> 2] = 0; r = o; } else { k = c[(h + 8) >> 2] | 0; c[(k + 12) >> 2] = j; c[(j + 8) >> 2] = k; r = j; } } while (0); if (g) { j = c[(h + 28) >> 2] | 0; k = (21976 + (j << 2)) | 0; if ((c[k >> 2] | 0) == (h | 0)) { c[k >> 2] = r; if (!r) { c[5419] = c[5419] & ~(1 << j); l = h; m = i; n = h; break; } } else { j = (g + 16) | 0; c[ ((c[j >> 2] | 0) == (h | 0) ? j : (g + 20) | 0) >> 2 ] = r; if (!r) { l = h; m = i; n = h; break; } } c[(r + 24) >> 2] = g; j = (h + 16) | 0; k = c[j >> 2] | 0; if (k | 0) { c[(r + 16) >> 2] = k; c[(k + 24) >> 2] = r; } k = c[(j + 4) >> 2] | 0; if (k) { c[(r + 20) >> 2] = k; c[(k + 24) >> 2] = r; l = h; m = i; n = h; } else { l = h; m = i; n = h; } } else { l = h; m = i; n = h; } } else { l = b; m = a; n = b; } } while (0); if (n >>> 0 >= f >>> 0) return; b = (f + 4) | 0; a = c[b >> 2] | 0; if (!(a & 1)) return; if (!(a & 2)) { if ((c[5424] | 0) == (f | 0)) { r = ((c[5421] | 0) + m) | 0; c[5421] = r; c[5424] = l; c[(l + 4) >> 2] = r | 1; if ((l | 0) != (c[5423] | 0)) return; c[5423] = 0; c[5420] = 0; return; } if ((c[5423] | 0) == (f | 0)) { r = ((c[5420] | 0) + m) | 0; c[5420] = r; c[5423] = n; c[(l + 4) >> 2] = r | 1; c[(n + r) >> 2] = r; return; } r = ((a & -8) + m) | 0; x = a >>> 3; do { if (a >>> 0 < 256) { w = c[(f + 8) >> 2] | 0; t = c[(f + 12) >> 2] | 0; if ((t | 0) == (w | 0)) { c[5418] = c[5418] & ~(1 << x); break; } else { c[(w + 12) >> 2] = t; c[(t + 8) >> 2] = w; break; } } else { w = c[(f + 24) >> 2] | 0; t = c[(f + 12) >> 2] | 0; do { if ((t | 0) == (f | 0)) { s = (f + 16) | 0; d = (s + 4) | 0; e = c[d >> 2] | 0; if (!e) { k = c[s >> 2] | 0; if (!k) { y = 0; break; } else { z = k; A = s; } } else { z = e; A = d; } d = z; e = A; while (1) { s = (d + 20) | 0; k = c[s >> 2] | 0; if (!k) { j = (d + 16) | 0; q = c[j >> 2] | 0; if (!q) break; else { B = q; C = j; } } else { B = k; C = s; } d = B; e = C; } c[e >> 2] = 0; y = d; } else { o = c[(f + 8) >> 2] | 0; c[(o + 12) >> 2] = t; c[(t + 8) >> 2] = o; y = t; } } while (0); if (w | 0) { t = c[(f + 28) >> 2] | 0; h = (21976 + (t << 2)) | 0; if ((c[h >> 2] | 0) == (f | 0)) { c[h >> 2] = y; if (!y) { c[5419] = c[5419] & ~(1 << t); break; } } else { t = (w + 16) | 0; c[ ((c[t >> 2] | 0) == (f | 0) ? t : (w + 20) | 0) >> 2 ] = y; if (!y) break; } c[(y + 24) >> 2] = w; t = (f + 16) | 0; h = c[t >> 2] | 0; if (h | 0) { c[(y + 16) >> 2] = h; c[(h + 24) >> 2] = y; } h = c[(t + 4) >> 2] | 0; if (h | 0) { c[(y + 20) >> 2] = h; c[(h + 24) >> 2] = y; } } } } while (0); c[(l + 4) >> 2] = r | 1; c[(n + r) >> 2] = r; if ((l | 0) == (c[5423] | 0)) { c[5420] = r; return; } else D = r; } else { c[b >> 2] = a & -2; c[(l + 4) >> 2] = m | 1; c[(n + m) >> 2] = m; D = m; } m = D >>> 3; if (D >>> 0 < 256) { n = (21712 + ((m << 1) << 2)) | 0; a = c[5418] | 0; b = 1 << m; if (!(a & b)) { c[5418] = a | b; E = n; F = (n + 8) | 0; } else { b = (n + 8) | 0; E = c[b >> 2] | 0; F = b; } c[F >> 2] = l; c[(E + 12) >> 2] = l; c[(l + 8) >> 2] = E; c[(l + 12) >> 2] = n; return; } n = D >>> 8; if (n) { if (D >>> 0 > 16777215) G = 31; else { E = (((n + 1048320) | 0) >>> 16) & 8; F = n << E; n = (((F + 520192) | 0) >>> 16) & 4; b = F << n; F = (((b + 245760) | 0) >>> 16) & 2; a = (14 - (n | E | F) + ((b << F) >>> 15)) | 0; G = ((D >>> ((a + 7) | 0)) & 1) | (a << 1); } } else G = 0; a = (21976 + (G << 2)) | 0; c[(l + 28) >> 2] = G; c[(l + 20) >> 2] = 0; c[(l + 16) >> 2] = 0; F = c[5419] | 0; b = 1 << G; a: do { if (!(F & b)) { c[5419] = F | b; c[a >> 2] = l; c[(l + 24) >> 2] = a; c[(l + 12) >> 2] = l; c[(l + 8) >> 2] = l; } else { E = c[a >> 2] | 0; b: do { if (((c[(E + 4) >> 2] & -8) | 0) == (D | 0)) H = E; else { n = D << ((G | 0) == 31 ? 0 : (25 - (G >>> 1)) | 0); m = E; while (1) { I = (m + 16 + ((n >>> 31) << 2)) | 0; r = c[I >> 2] | 0; if (!r) break; if (((c[(r + 4) >> 2] & -8) | 0) == (D | 0)) { H = r; break b; } else { n = n << 1; m = r; } } c[I >> 2] = l; c[(l + 24) >> 2] = m; c[(l + 12) >> 2] = l; c[(l + 8) >> 2] = l; break a; } } while (0); E = (H + 8) | 0; w = c[E >> 2] | 0; c[(w + 12) >> 2] = l; c[E >> 2] = l; c[(l + 8) >> 2] = w; c[(l + 12) >> 2] = H; c[(l + 24) >> 2] = 0; } } while (0); l = ((c[5426] | 0) + -1) | 0; c[5426] = l; if (l | 0) return; l = 22128; while (1) { H = c[l >> 2] | 0; if (!H) break; else l = (H + 8) | 0; } c[5426] = -1; return; } function Ey(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; if (a) { d = N(b, a) | 0; if ((b | a) >>> 0 > 65535) e = (((d >>> 0) / (a >>> 0)) | 0 | 0) == (b | 0) ? d : -1; else e = d; } else e = 0; d = Cy(e) | 0; if (!d) return d | 0; if (!(c[(d + -4) >> 2] & 3)) return d | 0; oE(d | 0, 0, e | 0) | 0; return d | 0; } function Fy(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; if (!a) { d = Cy(b) | 0; return d | 0; } if (b >>> 0 > 4294967231) { c[(My() | 0) >> 2] = 12; d = 0; return d | 0; } e = Gy((a + -8) | 0, b >>> 0 < 11 ? 16 : (b + 11) & -8) | 0; if (e | 0) { d = (e + 8) | 0; return d | 0; } e = Cy(b) | 0; if (!e) { d = 0; return d | 0; } f = c[(a + -4) >> 2] | 0; g = ((f & -8) - (((f & 3) | 0) == 0 ? 8 : 4)) | 0; mE(e | 0, a | 0, (g >>> 0 < b >>> 0 ? g : b) | 0) | 0; Dy(a); d = e; return d | 0; } function Gy(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; d = (a + 4) | 0; e = c[d >> 2] | 0; f = e & -8; g = (a + f) | 0; if (!(e & 3)) { if (b >>> 0 < 256) { h = 0; return h | 0; } if ( f >>> 0 >= ((b + 4) | 0) >>> 0 ? ((f - b) | 0) >>> 0 <= (c[5538] << 1) >>> 0 : 0 ) { h = a; return h | 0; } h = 0; return h | 0; } if (f >>> 0 >= b >>> 0) { i = (f - b) | 0; if (i >>> 0 <= 15) { h = a; return h | 0; } j = (a + b) | 0; c[d >> 2] = (e & 1) | b | 2; c[(j + 4) >> 2] = i | 3; k = (g + 4) | 0; c[k >> 2] = c[k >> 2] | 1; Hy(j, i); h = a; return h | 0; } if ((c[5424] | 0) == (g | 0)) { i = ((c[5421] | 0) + f) | 0; j = (i - b) | 0; k = (a + b) | 0; if (i >>> 0 <= b >>> 0) { h = 0; return h | 0; } c[d >> 2] = (e & 1) | b | 2; c[(k + 4) >> 2] = j | 1; c[5424] = k; c[5421] = j; h = a; return h | 0; } if ((c[5423] | 0) == (g | 0)) { j = ((c[5420] | 0) + f) | 0; if (j >>> 0 < b >>> 0) { h = 0; return h | 0; } k = (j - b) | 0; if (k >>> 0 > 15) { i = (a + b) | 0; l = (a + j) | 0; c[d >> 2] = (e & 1) | b | 2; c[(i + 4) >> 2] = k | 1; c[l >> 2] = k; m = (l + 4) | 0; c[m >> 2] = c[m >> 2] & -2; n = i; o = k; } else { c[d >> 2] = (e & 1) | j | 2; k = (a + j + 4) | 0; c[k >> 2] = c[k >> 2] | 1; n = 0; o = 0; } c[5420] = o; c[5423] = n; h = a; return h | 0; } n = c[(g + 4) >> 2] | 0; if ((n & 2) | 0) { h = 0; return h | 0; } o = ((n & -8) + f) | 0; if (o >>> 0 < b >>> 0) { h = 0; return h | 0; } f = (o - b) | 0; k = n >>> 3; do { if (n >>> 0 < 256) { j = c[(g + 8) >> 2] | 0; i = c[(g + 12) >> 2] | 0; if ((i | 0) == (j | 0)) { c[5418] = c[5418] & ~(1 << k); break; } else { c[(j + 12) >> 2] = i; c[(i + 8) >> 2] = j; break; } } else { j = c[(g + 24) >> 2] | 0; i = c[(g + 12) >> 2] | 0; do { if ((i | 0) == (g | 0)) { m = (g + 16) | 0; l = (m + 4) | 0; p = c[l >> 2] | 0; if (!p) { q = c[m >> 2] | 0; if (!q) { r = 0; break; } else { s = q; t = m; } } else { s = p; t = l; } l = s; p = t; while (1) { m = (l + 20) | 0; q = c[m >> 2] | 0; if (!q) { u = (l + 16) | 0; v = c[u >> 2] | 0; if (!v) break; else { w = v; x = u; } } else { w = q; x = m; } l = w; p = x; } c[p >> 2] = 0; r = l; } else { m = c[(g + 8) >> 2] | 0; c[(m + 12) >> 2] = i; c[(i + 8) >> 2] = m; r = i; } } while (0); if (j | 0) { i = c[(g + 28) >> 2] | 0; m = (21976 + (i << 2)) | 0; if ((c[m >> 2] | 0) == (g | 0)) { c[m >> 2] = r; if (!r) { c[5419] = c[5419] & ~(1 << i); break; } } else { i = (j + 16) | 0; c[ ((c[i >> 2] | 0) == (g | 0) ? i : (j + 20) | 0) >> 2 ] = r; if (!r) break; } c[(r + 24) >> 2] = j; i = (g + 16) | 0; m = c[i >> 2] | 0; if (m | 0) { c[(r + 16) >> 2] = m; c[(m + 24) >> 2] = r; } m = c[(i + 4) >> 2] | 0; if (m | 0) { c[(r + 20) >> 2] = m; c[(m + 24) >> 2] = r; } } } } while (0); if (f >>> 0 < 16) { c[d >> 2] = (e & 1) | o | 2; r = (a + o + 4) | 0; c[r >> 2] = c[r >> 2] | 1; h = a; return h | 0; } else { r = (a + b) | 0; c[d >> 2] = (e & 1) | b | 2; c[(r + 4) >> 2] = f | 3; b = (a + o + 4) | 0; c[b >> 2] = c[b >> 2] | 1; Hy(r, f); h = a; return h | 0; } return 0; } function Hy(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0; d = (a + b) | 0; e = c[(a + 4) >> 2] | 0; do { if (!(e & 1)) { f = c[a >> 2] | 0; if (!(e & 3)) return; g = (a + (0 - f)) | 0; h = (f + b) | 0; if ((c[5423] | 0) == (g | 0)) { i = (d + 4) | 0; j = c[i >> 2] | 0; if (((j & 3) | 0) != 3) { k = g; l = h; break; } c[5420] = h; c[i >> 2] = j & -2; c[(g + 4) >> 2] = h | 1; c[d >> 2] = h; return; } j = f >>> 3; if (f >>> 0 < 256) { f = c[(g + 8) >> 2] | 0; i = c[(g + 12) >> 2] | 0; if ((i | 0) == (f | 0)) { c[5418] = c[5418] & ~(1 << j); k = g; l = h; break; } else { c[(f + 12) >> 2] = i; c[(i + 8) >> 2] = f; k = g; l = h; break; } } f = c[(g + 24) >> 2] | 0; i = c[(g + 12) >> 2] | 0; do { if ((i | 0) == (g | 0)) { j = (g + 16) | 0; m = (j + 4) | 0; n = c[m >> 2] | 0; if (!n) { o = c[j >> 2] | 0; if (!o) { p = 0; break; } else { q = o; r = j; } } else { q = n; r = m; } m = q; n = r; while (1) { j = (m + 20) | 0; o = c[j >> 2] | 0; if (!o) { s = (m + 16) | 0; t = c[s >> 2] | 0; if (!t) break; else { u = t; v = s; } } else { u = o; v = j; } m = u; n = v; } c[n >> 2] = 0; p = m; } else { j = c[(g + 8) >> 2] | 0; c[(j + 12) >> 2] = i; c[(i + 8) >> 2] = j; p = i; } } while (0); if (f) { i = c[(g + 28) >> 2] | 0; j = (21976 + (i << 2)) | 0; if ((c[j >> 2] | 0) == (g | 0)) { c[j >> 2] = p; if (!p) { c[5419] = c[5419] & ~(1 << i); k = g; l = h; break; } } else { i = (f + 16) | 0; c[ ((c[i >> 2] | 0) == (g | 0) ? i : (f + 20) | 0) >> 2 ] = p; if (!p) { k = g; l = h; break; } } c[(p + 24) >> 2] = f; i = (g + 16) | 0; j = c[i >> 2] | 0; if (j | 0) { c[(p + 16) >> 2] = j; c[(j + 24) >> 2] = p; } j = c[(i + 4) >> 2] | 0; if (j) { c[(p + 20) >> 2] = j; c[(j + 24) >> 2] = p; k = g; l = h; } else { k = g; l = h; } } else { k = g; l = h; } } else { k = a; l = b; } } while (0); b = (d + 4) | 0; a = c[b >> 2] | 0; if (!(a & 2)) { if ((c[5424] | 0) == (d | 0)) { p = ((c[5421] | 0) + l) | 0; c[5421] = p; c[5424] = k; c[(k + 4) >> 2] = p | 1; if ((k | 0) != (c[5423] | 0)) return; c[5423] = 0; c[5420] = 0; return; } if ((c[5423] | 0) == (d | 0)) { p = ((c[5420] | 0) + l) | 0; c[5420] = p; c[5423] = k; c[(k + 4) >> 2] = p | 1; c[(k + p) >> 2] = p; return; } p = ((a & -8) + l) | 0; v = a >>> 3; do { if (a >>> 0 < 256) { u = c[(d + 8) >> 2] | 0; r = c[(d + 12) >> 2] | 0; if ((r | 0) == (u | 0)) { c[5418] = c[5418] & ~(1 << v); break; } else { c[(u + 12) >> 2] = r; c[(r + 8) >> 2] = u; break; } } else { u = c[(d + 24) >> 2] | 0; r = c[(d + 12) >> 2] | 0; do { if ((r | 0) == (d | 0)) { q = (d + 16) | 0; e = (q + 4) | 0; j = c[e >> 2] | 0; if (!j) { i = c[q >> 2] | 0; if (!i) { w = 0; break; } else { x = i; y = q; } } else { x = j; y = e; } e = x; j = y; while (1) { q = (e + 20) | 0; i = c[q >> 2] | 0; if (!i) { o = (e + 16) | 0; s = c[o >> 2] | 0; if (!s) break; else { z = s; A = o; } } else { z = i; A = q; } e = z; j = A; } c[j >> 2] = 0; w = e; } else { m = c[(d + 8) >> 2] | 0; c[(m + 12) >> 2] = r; c[(r + 8) >> 2] = m; w = r; } } while (0); if (u | 0) { r = c[(d + 28) >> 2] | 0; h = (21976 + (r << 2)) | 0; if ((c[h >> 2] | 0) == (d | 0)) { c[h >> 2] = w; if (!w) { c[5419] = c[5419] & ~(1 << r); break; } } else { r = (u + 16) | 0; c[ ((c[r >> 2] | 0) == (d | 0) ? r : (u + 20) | 0) >> 2 ] = w; if (!w) break; } c[(w + 24) >> 2] = u; r = (d + 16) | 0; h = c[r >> 2] | 0; if (h | 0) { c[(w + 16) >> 2] = h; c[(h + 24) >> 2] = w; } h = c[(r + 4) >> 2] | 0; if (h | 0) { c[(w + 20) >> 2] = h; c[(h + 24) >> 2] = w; } } } } while (0); c[(k + 4) >> 2] = p | 1; c[(k + p) >> 2] = p; if ((k | 0) == (c[5423] | 0)) { c[5420] = p; return; } else B = p; } else { c[b >> 2] = a & -2; c[(k + 4) >> 2] = l | 1; c[(k + l) >> 2] = l; B = l; } l = B >>> 3; if (B >>> 0 < 256) { a = (21712 + ((l << 1) << 2)) | 0; b = c[5418] | 0; p = 1 << l; if (!(b & p)) { c[5418] = b | p; C = a; D = (a + 8) | 0; } else { p = (a + 8) | 0; C = c[p >> 2] | 0; D = p; } c[D >> 2] = k; c[(C + 12) >> 2] = k; c[(k + 8) >> 2] = C; c[(k + 12) >> 2] = a; return; } a = B >>> 8; if (a) { if (B >>> 0 > 16777215) E = 31; else { C = (((a + 1048320) | 0) >>> 16) & 8; D = a << C; a = (((D + 520192) | 0) >>> 16) & 4; p = D << a; D = (((p + 245760) | 0) >>> 16) & 2; b = (14 - (a | C | D) + ((p << D) >>> 15)) | 0; E = ((B >>> ((b + 7) | 0)) & 1) | (b << 1); } } else E = 0; b = (21976 + (E << 2)) | 0; c[(k + 28) >> 2] = E; c[(k + 20) >> 2] = 0; c[(k + 16) >> 2] = 0; D = c[5419] | 0; p = 1 << E; if (!(D & p)) { c[5419] = D | p; c[b >> 2] = k; c[(k + 24) >> 2] = b; c[(k + 12) >> 2] = k; c[(k + 8) >> 2] = k; return; } p = c[b >> 2] | 0; a: do { if (((c[(p + 4) >> 2] & -8) | 0) == (B | 0)) F = p; else { b = B << ((E | 0) == 31 ? 0 : (25 - (E >>> 1)) | 0); D = p; while (1) { G = (D + 16 + ((b >>> 31) << 2)) | 0; C = c[G >> 2] | 0; if (!C) break; if (((c[(C + 4) >> 2] & -8) | 0) == (B | 0)) { F = C; break a; } else { b = b << 1; D = C; } } c[G >> 2] = k; c[(k + 24) >> 2] = D; c[(k + 12) >> 2] = k; c[(k + 8) >> 2] = k; return; } } while (0); G = (F + 8) | 0; B = c[G >> 2] | 0; c[(B + 12) >> 2] = k; c[G >> 2] = k; c[(k + 8) >> 2] = B; c[(k + 12) >> 2] = F; c[(k + 24) >> 2] = 0; return; } function Iy(a) { a = a | 0; var b = 0, d = 0; b = l; l = (l + 16) | 0; d = b; c[d >> 2] = Oy(c[(a + 60) >> 2] | 0) | 0; a = Ly(Ja(6, d | 0) | 0) | 0; l = b; return a | 0; } function Jy(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0; f = l; l = (l + 32) | 0; g = f; c[(b + 36) >> 2] = 3; if ( ((c[b >> 2] & 64) | 0) == 0 ? ((c[g >> 2] = c[(b + 60) >> 2]), (c[(g + 4) >> 2] = 21523), (c[(g + 8) >> 2] = f + 16), Ia(54, g | 0) | 0) : 0 ) a[(b + 75) >> 0] = -1; g = Ny(b, d, e) | 0; l = f; return g | 0; } function Ky(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; e = l; l = (l + 32) | 0; f = e; g = (e + 20) | 0; c[f >> 2] = c[(a + 60) >> 2]; c[(f + 4) >> 2] = 0; c[(f + 8) >> 2] = b; c[(f + 12) >> 2] = g; c[(f + 16) >> 2] = d; if ((Ly(Da(140, f | 0) | 0) | 0) < 0) { c[g >> 2] = -1; h = -1; } else h = c[g >> 2] | 0; l = e; return h | 0; } function Ly(a) { a = a | 0; var b = 0; if (a >>> 0 > 4294963200) { c[(My() | 0) >> 2] = 0 - a; b = -1; } else b = a; return b | 0; } function My() { return 22232; } function Ny(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; e = l; l = (l + 48) | 0; f = (e + 32) | 0; g = (e + 16) | 0; h = e; i = (a + 28) | 0; j = c[i >> 2] | 0; c[h >> 2] = j; k = (a + 20) | 0; m = ((c[k >> 2] | 0) - j) | 0; c[(h + 4) >> 2] = m; c[(h + 8) >> 2] = b; c[(h + 12) >> 2] = d; b = (m + d) | 0; m = (a + 60) | 0; c[g >> 2] = c[m >> 2]; c[(g + 4) >> 2] = h; c[(g + 8) >> 2] = 2; j = Ly(Fa(146, g | 0) | 0) | 0; a: do { if ((b | 0) != (j | 0)) { g = 2; n = b; o = h; p = j; while (1) { if ((p | 0) < 0) break; n = (n - p) | 0; q = c[(o + 4) >> 2] | 0; r = p >>> 0 > q >>> 0; s = r ? (o + 8) | 0 : o; t = (g + ((r << 31) >> 31)) | 0; u = (p - (r ? q : 0)) | 0; c[s >> 2] = (c[s >> 2] | 0) + u; q = (s + 4) | 0; c[q >> 2] = (c[q >> 2] | 0) - u; c[f >> 2] = c[m >> 2]; c[(f + 4) >> 2] = s; c[(f + 8) >> 2] = t; p = Ly(Fa(146, f | 0) | 0) | 0; if ((n | 0) == (p | 0)) { v = 3; break a; } else { g = t; o = s; } } c[(a + 16) >> 2] = 0; c[i >> 2] = 0; c[k >> 2] = 0; c[a >> 2] = c[a >> 2] | 32; if ((g | 0) == 2) w = 0; else w = (d - (c[(o + 4) >> 2] | 0)) | 0; } else v = 3; } while (0); if ((v | 0) == 3) { v = c[(a + 44) >> 2] | 0; c[(a + 16) >> 2] = v + (c[(a + 48) >> 2] | 0); a = v; c[i >> 2] = a; c[k >> 2] = a; w = d; } l = e; return w | 0; } function Oy(a) { a = a | 0; return a | 0; } function Py(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 32) | 0; g = (f + 16) | 0; h = f; c[h >> 2] = d; i = (h + 4) | 0; j = (b + 48) | 0; k = c[j >> 2] | 0; c[i >> 2] = e - (((k | 0) != 0) & 1); m = (b + 44) | 0; c[(h + 8) >> 2] = c[m >> 2]; c[(h + 12) >> 2] = k; c[g >> 2] = c[(b + 60) >> 2]; c[(g + 4) >> 2] = h; c[(g + 8) >> 2] = 2; h = Ly(Ea(145, g | 0) | 0) | 0; if ((h | 0) >= 1) { g = c[i >> 2] | 0; if (h >>> 0 > g >>> 0) { i = c[m >> 2] | 0; m = (b + 4) | 0; c[m >> 2] = i; k = i; c[(b + 8) >> 2] = k + (h - g); if (!(c[j >> 2] | 0)) n = e; else { c[m >> 2] = k + 1; a[(d + (e + -1)) >> 0] = a[k >> 0] | 0; n = e; } } else n = h; } else { c[b >> 2] = c[b >> 2] | ((h & 48) ^ 16); n = h; } l = f; return n | 0; } function Qy(b, c, d) { b = b | 0; c = c | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; a: do { if (!d) e = 0; else { f = b; g = d; h = c; while (1) { i = a[f >> 0] | 0; j = a[h >> 0] | 0; if ((i << 24) >> 24 != (j << 24) >> 24) break; g = (g + -1) | 0; if (!g) { e = 0; break a; } else { f = (f + 1) | 0; h = (h + 1) | 0; } } e = ((i & 255) - (j & 255)) | 0; } } while (0); return e | 0; } function Ry(b, c) { b = b | 0; c = c | 0; var d = 0; d = Xy(b, c) | 0; return ( ((a[d >> 0] | 0) == ((c & 255) << 24) >> 24 ? d : 0) | 0 ); } function Sy(a) { a = a | 0; return (((a + -48) | 0) >>> 0 < 10) | 0; } function Ty(b) { b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0; d = b; a: do { if (!(d & 3)) { e = b; f = 5; } else { g = b; h = d; while (1) { if (!(a[g >> 0] | 0)) { i = h; break a; } j = (g + 1) | 0; h = j; if (!(h & 3)) { e = j; f = 5; break; } else g = j; } } } while (0); if ((f | 0) == 5) { f = e; while (1) { k = c[f >> 2] | 0; if ( !(((k & -2139062144) ^ -2139062144) & (k + -16843009)) ) f = (f + 4) | 0; else break; } if (!(((k & 255) << 24) >> 24)) l = f; else { k = f; while (1) { f = (k + 1) | 0; if (!(a[f >> 0] | 0)) { l = f; break; } else k = f; } } i = l; } return (i - d) | 0; } function Uy(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; f = d & 255; g = (e | 0) != 0; a: do { if (g & (((b & 3) | 0) != 0)) { h = d & 255; i = b; j = e; while (1) { if ((a[i >> 0] | 0) == (h << 24) >> 24) { k = i; l = j; m = 6; break a; } n = (i + 1) | 0; o = (j + -1) | 0; p = (o | 0) != 0; if (p & (((n & 3) | 0) != 0)) { i = n; j = o; } else { q = n; r = o; s = p; m = 5; break; } } } else { q = b; r = e; s = g; m = 5; } } while (0); if ((m | 0) == 5) if (s) { k = q; l = r; m = 6; } else m = 16; b: do { if ((m | 0) == 6) { r = d & 255; if ((a[k >> 0] | 0) == (r << 24) >> 24) if (!l) { m = 16; break; } else { t = k; break; } q = N(f, 16843009) | 0; c: do { if (l >>> 0 > 3) { s = k; g = l; while (1) { e = c[s >> 2] ^ q; if ( (((e & -2139062144) ^ -2139062144) & (e + -16843009)) | 0 ) { u = g; v = s; break c; } e = (s + 4) | 0; b = (g + -4) | 0; if (b >>> 0 > 3) { s = e; g = b; } else { w = e; x = b; m = 11; break; } } } else { w = k; x = l; m = 11; } } while (0); if ((m | 0) == 11) if (!x) { m = 16; break; } else { u = x; v = w; } q = v; g = u; while (1) { if ((a[q >> 0] | 0) == (r << 24) >> 24) { t = q; break b; } g = (g + -1) | 0; if (!g) { m = 16; break; } else q = (q + 1) | 0; } } } while (0); if ((m | 0) == 16) t = 0; return t | 0; } function Vy(a) { a = a | 0; return 0; } function Wy(a) { a = a | 0; return; } function Xy(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; e = d & 255; a: do { if (!e) f = (b + (Ty(b) | 0)) | 0; else { if (!(b & 3)) g = b; else { h = d & 255; i = b; while (1) { j = a[i >> 0] | 0; if ( (j << 24) >> 24 == 0 ? 1 : (j << 24) >> 24 == (h << 24) >> 24 ) { f = i; break a; } j = (i + 1) | 0; if (!(j & 3)) { g = j; break; } else i = j; } } i = N(e, 16843009) | 0; h = c[g >> 2] | 0; b: do { if ( !(((h & -2139062144) ^ -2139062144) & (h + -16843009)) ) { j = g; k = h; while (1) { l = k ^ i; if ( (((l & -2139062144) ^ -2139062144) & (l + -16843009)) | 0 ) { m = j; break b; } l = (j + 4) | 0; k = c[l >> 2] | 0; if ( (((k & -2139062144) ^ -2139062144) & (k + -16843009)) | 0 ) { m = l; break; } else j = l; } } else m = g; } while (0); i = d & 255; h = m; while (1) { j = a[h >> 0] | 0; if ( (j << 24) >> 24 == 0 ? 1 : (j << 24) >> 24 == (i << 24) >> 24 ) { f = h; break; } else h = (h + 1) | 0; } } } while (0); return f | 0; } function Yy(a, b) { a = a | 0; b = b | 0; var d = 0; if (!b) d = 0; else d = Zy(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, a) | 0; return ((d | 0) == 0 ? a : d) | 0; } function Zy(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; f = ((c[b >> 2] | 0) + 1794895138) | 0; g = _y(c[(b + 8) >> 2] | 0, f) | 0; h = _y(c[(b + 12) >> 2] | 0, f) | 0; i = _y(c[(b + 16) >> 2] | 0, f) | 0; a: do { if ( ( g >>> 0 < (d >>> 2) >>> 0 ? ((j = (d - (g << 2)) | 0), (h >>> 0 < j >>> 0) & (i >>> 0 < j >>> 0)) : 0 ) ? (((i | h) & 3) | 0) == 0 : 0 ) { j = h >>> 2; k = i >>> 2; l = 0; m = g; while (1) { n = m >>> 1; o = (l + n) | 0; p = o << 1; q = (p + j) | 0; r = _y(c[(b + (q << 2)) >> 2] | 0, f) | 0; s = _y(c[(b + ((q + 1) << 2)) >> 2] | 0, f) | 0; if ( !( (s >>> 0 < d >>> 0) & (r >>> 0 < ((d - s) | 0) >>> 0) ) ) { t = 0; break a; } if (a[(b + (s + r)) >> 0] | 0) { t = 0; break a; } r = $y(e, (b + s) | 0) | 0; if (!r) break; s = (r | 0) < 0; if ((m | 0) == 1) { t = 0; break a; } l = s ? l : o; m = s ? n : (m - n) | 0; } m = (p + k) | 0; l = _y(c[(b + (m << 2)) >> 2] | 0, f) | 0; j = _y(c[(b + ((m + 1) << 2)) >> 2] | 0, f) | 0; if ((j >>> 0 < d >>> 0) & (l >>> 0 < ((d - j) | 0) >>> 0)) t = (a[(b + (j + l)) >> 0] | 0) == 0 ? (b + j) | 0 : 0; else t = 0; } else t = 0; } while (0); return t | 0; } function _y(a, b) { a = a | 0; b = b | 0; var c = 0; c = kE(a | 0) | 0; return ((b | 0) == 0 ? a : c) | 0; } function $y(b, c) { b = b | 0; c = c | 0; var d = 0, e = 0, f = 0, g = 0; d = a[b >> 0] | 0; e = a[c >> 0] | 0; if ( (d << 24) >> 24 == 0 ? 1 : (d << 24) >> 24 != (e << 24) >> 24 ) { f = e; g = d; } else { d = c; c = b; do { c = (c + 1) | 0; d = (d + 1) | 0; b = a[c >> 0] | 0; e = a[d >> 0] | 0; } while ( !((b << 24) >> 24 == 0 ? 1 : (b << 24) >> 24 != (e << 24) >> 24) ); f = e; g = b; } return ((g & 255) - (f & 255)) | 0; } function az() { return 12260; } function bz(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0; f = l; l = (l + 16) | 0; g = f; c[g >> 2] = e; e = cz(a, b, d, g) | 0; l = f; return e | 0; } function cz(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; g = l; l = (l + 128) | 0; h = (g + 124) | 0; i = g; j = i; k = 12504; m = (j + 124) | 0; do { c[j >> 2] = c[k >> 2]; j = (j + 4) | 0; k = (k + 4) | 0; } while ((j | 0) < (m | 0)); if (((d + -1) | 0) >>> 0 > 2147483646) { if (!d) { n = h; o = 1; p = 4; } else { c[(My() | 0) >> 2] = 75; q = -1; } } else { n = b; o = d; p = 4; } if ((p | 0) == 4) { p = (-2 - n) | 0; d = o >>> 0 > p >>> 0 ? p : o; c[(i + 48) >> 2] = d; o = (i + 20) | 0; c[o >> 2] = n; c[(i + 44) >> 2] = n; p = (n + d) | 0; n = (i + 16) | 0; c[n >> 2] = p; c[(i + 28) >> 2] = p; p = dz(i, e, f) | 0; if (!d) q = p; else { d = c[o >> 2] | 0; a[ (d + ((((d | 0) == (c[n >> 2] | 0)) << 31) >> 31)) >> 0 ] = 0; q = p; } } l = g; return q | 0; } function dz(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; f = l; l = (l + 224) | 0; g = (f + 208) | 0; h = (f + 160) | 0; i = (f + 80) | 0; j = f; k = h; m = (k + 40) | 0; do { c[k >> 2] = 0; k = (k + 4) | 0; } while ((k | 0) < (m | 0)); c[g >> 2] = c[e >> 2]; if ((ez(0, d, g, i, h) | 0) < 0) n = -1; else { if ((c[(b + 76) >> 2] | 0) > -1) o = Vy(b) | 0; else o = 0; e = c[b >> 2] | 0; k = e & 32; if ((a[(b + 74) >> 0] | 0) < 1) c[b >> 2] = e & -33; e = (b + 48) | 0; if (!(c[e >> 2] | 0)) { m = (b + 44) | 0; p = c[m >> 2] | 0; c[m >> 2] = j; q = (b + 28) | 0; c[q >> 2] = j; r = (b + 20) | 0; c[r >> 2] = j; c[e >> 2] = 80; s = (b + 16) | 0; c[s >> 2] = j + 80; j = ez(b, d, g, i, h) | 0; if (!p) t = j; else { rc[c[(b + 36) >> 2] & 31](b, 0, 0) | 0; u = (c[r >> 2] | 0) == 0 ? -1 : j; c[m >> 2] = p; c[e >> 2] = 0; c[s >> 2] = 0; c[q >> 2] = 0; c[r >> 2] = 0; t = u; } } else t = ez(b, d, g, i, h) | 0; h = c[b >> 2] | 0; c[b >> 2] = h | k; if (o | 0) Wy(b); n = ((h & 32) | 0) == 0 ? t : -1; } l = f; return n | 0; } function ez(d, e, f, g, i) { d = d | 0; e = e | 0; f = f | 0; g = g | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0; j = l; l = (l + 64) | 0; k = (j + 56) | 0; m = (j + 40) | 0; n = j; o = (j + 48) | 0; p = (j + 60) | 0; c[k >> 2] = e; e = (d | 0) != 0; q = (n + 40) | 0; r = q; s = (n + 39) | 0; n = (o + 4) | 0; t = 0; u = 0; v = 0; a: while (1) { w = t; x = u; while (1) { do { if ((x | 0) > -1) { if ((w | 0) > ((2147483647 - x) | 0)) { c[(My() | 0) >> 2] = 75; z = -1; break; } else { z = (w + x) | 0; break; } } else z = x; } while (0); A = c[k >> 2] | 0; B = a[A >> 0] | 0; if (!((B << 24) >> 24)) { C = 94; break a; } D = B; B = A; b: while (1) { switch ((D << 24) >> 24) { case 37: { C = 10; break b; break; } case 0: { E = B; break b; break; } default: { } } F = (B + 1) | 0; c[k >> 2] = F; D = a[F >> 0] | 0; B = F; } c: do { if ((C | 0) == 10) { C = 0; D = B; F = B; while (1) { if ((a[(F + 1) >> 0] | 0) != 37) { E = D; break c; } G = (D + 1) | 0; F = (F + 2) | 0; c[k >> 2] = F; if ((a[F >> 0] | 0) != 37) { E = G; break; } else D = G; } } } while (0); w = (E - A) | 0; if (e) fz(d, A, w); if (!w) break; else x = z; } x = (Sy(a[((c[k >> 2] | 0) + 1) >> 0] | 0) | 0) == 0; w = c[k >> 2] | 0; if (!x ? (a[(w + 2) >> 0] | 0) == 36 : 0) { H = ((a[(w + 1) >> 0] | 0) + -48) | 0; I = 1; J = 3; } else { H = -1; I = v; J = 1; } x = (w + J) | 0; c[k >> 2] = x; w = a[x >> 0] | 0; B = (((w << 24) >> 24) + -32) | 0; if ((B >>> 0 > 31) | ((((1 << B) & 75913) | 0) == 0)) { K = 0; L = w; M = x; } else { w = 0; D = B; B = x; while (1) { x = (1 << D) | w; F = (B + 1) | 0; c[k >> 2] = F; G = a[F >> 0] | 0; D = (((G << 24) >> 24) + -32) | 0; if ((D >>> 0 > 31) | ((((1 << D) & 75913) | 0) == 0)) { K = x; L = G; M = F; break; } else { w = x; B = F; } } } if ((L << 24) >> 24 == 42) { if ( (Sy(a[(M + 1) >> 0] | 0) | 0) != 0 ? ((B = c[k >> 2] | 0), (a[(B + 2) >> 0] | 0) == 36) : 0 ) { w = (B + 1) | 0; c[(i + (((a[w >> 0] | 0) + -48) << 2)) >> 2] = 10; N = c[(g + (((a[w >> 0] | 0) + -48) << 3)) >> 2] | 0; O = 1; P = (B + 3) | 0; } else { if (I | 0) { Q = -1; break; } if (e) { B = ((c[f >> 2] | 0) + (4 - 1)) & ~(4 - 1); w = c[B >> 2] | 0; c[f >> 2] = B + 4; R = w; } else R = 0; N = R; O = 0; P = ((c[k >> 2] | 0) + 1) | 0; } c[k >> 2] = P; w = (N | 0) < 0; S = w ? (0 - N) | 0 : N; T = w ? K | 8192 : K; U = O; V = P; } else { w = gz(k) | 0; if ((w | 0) < 0) { Q = -1; break; } S = w; T = K; U = I; V = c[k >> 2] | 0; } do { if ((a[V >> 0] | 0) == 46) { w = (V + 1) | 0; if ((a[w >> 0] | 0) != 42) { c[k >> 2] = w; w = gz(k) | 0; W = w; X = c[k >> 2] | 0; break; } if ( Sy(a[(V + 2) >> 0] | 0) | 0 ? ((w = c[k >> 2] | 0), (a[(w + 3) >> 0] | 0) == 36) : 0 ) { B = (w + 2) | 0; c[(i + (((a[B >> 0] | 0) + -48) << 2)) >> 2] = 10; D = c[(g + (((a[B >> 0] | 0) + -48) << 3)) >> 2] | 0; B = (w + 4) | 0; c[k >> 2] = B; W = D; X = B; break; } if (U | 0) { Q = -1; break a; } if (e) { B = ((c[f >> 2] | 0) + (4 - 1)) & ~(4 - 1); D = c[B >> 2] | 0; c[f >> 2] = B + 4; Y = D; } else Y = 0; D = ((c[k >> 2] | 0) + 2) | 0; c[k >> 2] = D; W = Y; X = D; } else { W = -1; X = V; } } while (0); D = 0; B = X; while (1) { if ((((a[B >> 0] | 0) + -65) | 0) >>> 0 > 57) { Q = -1; break a; } w = B; B = (B + 1) | 0; c[k >> 2] = B; Z = a[ ((a[w >> 0] | 0) + -65 + (7456 + ((D * 58) | 0))) >> 0 ] | 0; _ = Z & 255; if (((_ + -1) | 0) >>> 0 >= 8) break; else D = _; } if (!((Z << 24) >> 24)) { Q = -1; break; } w = (H | 0) > -1; do { if ((Z << 24) >> 24 == 19) { if (w) { Q = -1; break a; } else C = 54; } else { if (w) { c[(i + (H << 2)) >> 2] = _; F = (g + (H << 3)) | 0; x = c[(F + 4) >> 2] | 0; G = m; c[G >> 2] = c[F >> 2]; c[(G + 4) >> 2] = x; C = 54; break; } if (!e) { Q = 0; break a; } hz(m, _, f); $ = c[k >> 2] | 0; C = 55; } } while (0); if ((C | 0) == 54) { C = 0; if (e) { $ = B; C = 55; } else aa = 0; } d: do { if ((C | 0) == 55) { C = 0; w = a[($ + -1) >> 0] | 0; x = ((D | 0) != 0) & (((w & 15) | 0) == 3) ? w & -33 : w; w = T & -65537; G = ((T & 8192) | 0) == 0 ? T : w; e: do { switch (x | 0) { case 110: { switch (((D & 255) << 24) >> 24) { case 0: { c[c[m >> 2] >> 2] = z; aa = 0; break d; break; } case 1: { c[c[m >> 2] >> 2] = z; aa = 0; break d; break; } case 2: { F = c[m >> 2] | 0; c[F >> 2] = z; c[(F + 4) >> 2] = (((z | 0) < 0) << 31) >> 31; aa = 0; break d; break; } case 3: { b[c[m >> 2] >> 1] = z; aa = 0; break d; break; } case 4: { a[c[m >> 2] >> 0] = z; aa = 0; break d; break; } case 6: { c[c[m >> 2] >> 2] = z; aa = 0; break d; break; } case 7: { F = c[m >> 2] | 0; c[F >> 2] = z; c[(F + 4) >> 2] = (((z | 0) < 0) << 31) >> 31; aa = 0; break d; break; } default: { aa = 0; break d; } } break; } case 112: { ba = 120; ca = W >>> 0 > 8 ? W : 8; da = G | 8; C = 67; break; } case 88: case 120: { ba = x; ca = W; da = G; C = 67; break; } case 111: { F = m; ea = c[F >> 2] | 0; fa = c[(F + 4) >> 2] | 0; F = jz(ea, fa, q) | 0; ga = (r - F) | 0; ha = F; ia = 0; ja = 17834; ka = (((G & 8) | 0) == 0) | ((W | 0) > (ga | 0)) ? W : (ga + 1) | 0; la = G; ma = ea; na = fa; C = 73; break; } case 105: case 100: { fa = m; ea = c[fa >> 2] | 0; ga = c[(fa + 4) >> 2] | 0; if ((ga | 0) < 0) { fa = eE(0, 0, ea | 0, ga | 0) | 0; F = y; oa = m; c[oa >> 2] = fa; c[(oa + 4) >> 2] = F; pa = 1; qa = 17834; ra = fa; sa = F; C = 72; break e; } else { pa = (((G & 2049) | 0) != 0) & 1; qa = ((G & 2048) | 0) == 0 ? ((G & 1) | 0) == 0 ? 17834 : 17836 : 17835; ra = ea; sa = ga; C = 72; break e; } break; } case 117: { ga = m; pa = 0; qa = 17834; ra = c[ga >> 2] | 0; sa = c[(ga + 4) >> 2] | 0; C = 72; break; } case 99: { a[s >> 0] = c[m >> 2]; ta = s; ua = 0; va = 17834; wa = 1; xa = w; ya = r; break; } case 109: { za = lz(c[(My() | 0) >> 2] | 0) | 0; C = 77; break; } case 115: { ga = c[m >> 2] | 0; za = (ga | 0) == 0 ? 17844 : ga; C = 77; break; } case 67: { c[o >> 2] = c[m >> 2]; c[n >> 2] = 0; c[m >> 2] = o; Aa = -1; C = 81; break; } case 83: { if (!W) { mz(d, 32, S, 0, G); Ba = 0; C = 91; } else { Aa = W; C = 81; } break; } case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { aa = oz(d, +h[m >> 3], S, W, G, x) | 0; break d; break; } default: { ta = A; ua = 0; va = 17834; wa = W; xa = G; ya = r; } } } while (0); f: do { if ((C | 0) == 67) { C = 0; x = m; ga = c[x >> 2] | 0; ea = c[(x + 4) >> 2] | 0; x = iz(ga, ea, q, ba & 32) | 0; F = (((da & 8) | 0) == 0) | (((ga | 0) == 0) & ((ea | 0) == 0)); ha = x; ia = F ? 0 : 2; ja = F ? 17834 : (17834 + (ba >>> 4)) | 0; ka = ca; la = da; ma = ga; na = ea; C = 73; } else if ((C | 0) == 72) { C = 0; ha = kz(ra, sa, q) | 0; ia = pa; ja = qa; ka = W; la = G; ma = ra; na = sa; C = 73; } else if ((C | 0) == 77) { C = 0; ea = Uy(za, 0, W) | 0; ga = (ea | 0) == 0; ta = za; ua = 0; va = 17834; wa = ga ? W : (ea - za) | 0; xa = w; ya = ga ? (za + W) | 0 : ea; } else if ((C | 0) == 81) { C = 0; ea = c[m >> 2] | 0; ga = 0; while (1) { F = c[ea >> 2] | 0; if (!F) { Ca = ga; break; } x = nz(p, F) | 0; Da = (x | 0) < 0; if (Da | (x >>> 0 > ((Aa - ga) | 0) >>> 0)) { C = 85; break; } F = (x + ga) | 0; if (Aa >>> 0 > F >>> 0) { ea = (ea + 4) | 0; ga = F; } else { Ca = F; break; } } if ((C | 0) == 85) { C = 0; if (Da) { Q = -1; break a; } else Ca = ga; } mz(d, 32, S, Ca, G); if (!Ca) { Ba = 0; C = 91; } else { ea = c[m >> 2] | 0; F = 0; while (1) { x = c[ea >> 2] | 0; if (!x) { Ba = Ca; C = 91; break f; } fa = nz(p, x) | 0; F = (fa + F) | 0; if ((F | 0) > (Ca | 0)) { Ba = Ca; C = 91; break f; } fz(d, p, fa); if (F >>> 0 >= Ca >>> 0) { Ba = Ca; C = 91; break; } else ea = (ea + 4) | 0; } } } } while (0); if ((C | 0) == 73) { C = 0; w = ((ma | 0) != 0) | ((na | 0) != 0); ea = ((ka | 0) != 0) | w; F = (r - ha + ((w ^ 1) & 1)) | 0; ta = ea ? ha : q; ua = ia; va = ja; wa = ea ? ((ka | 0) > (F | 0) ? ka : F) : 0; xa = (ka | 0) > -1 ? la & -65537 : la; ya = r; } else if ((C | 0) == 91) { C = 0; mz(d, 32, S, Ba, G ^ 8192); aa = (S | 0) > (Ba | 0) ? S : Ba; break; } F = (ya - ta) | 0; ea = (wa | 0) < (F | 0) ? F : wa; w = (ea + ua) | 0; ga = (S | 0) < (w | 0) ? w : S; mz(d, 32, ga, w, xa); fz(d, va, ua); mz(d, 48, ga, w, xa ^ 65536); mz(d, 48, ea, F, 0); fz(d, ta, F); mz(d, 32, ga, w, xa ^ 8192); aa = ga; } } while (0); t = aa; u = z; v = U; } g: do { if ((C | 0) == 94) if (!d) { if (!v) Q = 0; else { U = 1; while (1) { u = c[(i + (U << 2)) >> 2] | 0; if (!u) break; hz((g + (U << 3)) | 0, u, f); u = (U + 1) | 0; if (u >>> 0 < 10) U = u; else { Q = 1; break g; } } u = U; while (1) { if (c[(i + (u << 2)) >> 2] | 0) { Q = -1; break g; } u = (u + 1) | 0; if (u >>> 0 >= 10) { Q = 1; break; } } } } else Q = z; } while (0); l = j; return Q | 0; } function fz(a, b, d) { a = a | 0; b = b | 0; d = d | 0; if (!(c[a >> 2] & 32)) xz(b, d, a) | 0; return; } function gz(b) { b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; if (!(Sy(a[c[b >> 2] >> 0] | 0) | 0)) d = 0; else { e = 0; while (1) { f = c[b >> 2] | 0; g = (((e * 10) | 0) + -48 + (a[f >> 0] | 0)) | 0; h = (f + 1) | 0; c[b >> 2] = h; if (!(Sy(a[h >> 0] | 0) | 0)) { d = g; break; } else e = g; } } return d | 0; } function hz(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, i = 0, j = 0.0; a: do { if (b >>> 0 <= 20) do { switch (b | 0) { case 9: { e = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1); f = c[e >> 2] | 0; c[d >> 2] = e + 4; c[a >> 2] = f; break a; break; } case 10: { f = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1); e = c[f >> 2] | 0; c[d >> 2] = f + 4; f = a; c[f >> 2] = e; c[(f + 4) >> 2] = (((e | 0) < 0) << 31) >> 31; break a; break; } case 11: { e = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1); f = c[e >> 2] | 0; c[d >> 2] = e + 4; e = a; c[e >> 2] = f; c[(e + 4) >> 2] = 0; break a; break; } case 12: { e = ((c[d >> 2] | 0) + (8 - 1)) & ~(8 - 1); f = e; g = c[f >> 2] | 0; i = c[(f + 4) >> 2] | 0; c[d >> 2] = e + 8; e = a; c[e >> 2] = g; c[(e + 4) >> 2] = i; break a; break; } case 13: { i = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1); e = c[i >> 2] | 0; c[d >> 2] = i + 4; i = ((e & 65535) << 16) >> 16; e = a; c[e >> 2] = i; c[(e + 4) >> 2] = (((i | 0) < 0) << 31) >> 31; break a; break; } case 14: { i = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1); e = c[i >> 2] | 0; c[d >> 2] = i + 4; i = a; c[i >> 2] = e & 65535; c[(i + 4) >> 2] = 0; break a; break; } case 15: { i = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1); e = c[i >> 2] | 0; c[d >> 2] = i + 4; i = ((e & 255) << 24) >> 24; e = a; c[e >> 2] = i; c[(e + 4) >> 2] = (((i | 0) < 0) << 31) >> 31; break a; break; } case 16: { i = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1); e = c[i >> 2] | 0; c[d >> 2] = i + 4; i = a; c[i >> 2] = e & 255; c[(i + 4) >> 2] = 0; break a; break; } case 17: { i = ((c[d >> 2] | 0) + (8 - 1)) & ~(8 - 1); j = +h[i >> 3]; c[d >> 2] = i + 8; h[a >> 3] = j; break a; break; } case 18: { i = ((c[d >> 2] | 0) + (8 - 1)) & ~(8 - 1); j = +h[i >> 3]; c[d >> 2] = i + 8; h[a >> 3] = j; break a; break; } default: break a; } } while (0); } while (0); return; } function iz(b, c, e, f) { b = b | 0; c = c | 0; e = e | 0; f = f | 0; var g = 0, h = 0; if (((b | 0) == 0) & ((c | 0) == 0)) g = e; else { h = e; e = c; c = b; while (1) { b = (h + -1) | 0; a[b >> 0] = d[(7920 + (c & 15)) >> 0] | 0 | f; c = iE(c | 0, e | 0, 4) | 0; e = y; if (((c | 0) == 0) & ((e | 0) == 0)) { g = b; break; } else h = b; } } return g | 0; } function jz(b, c, d) { b = b | 0; c = c | 0; d = d | 0; var e = 0, f = 0; if (((b | 0) == 0) & ((c | 0) == 0)) e = d; else { f = d; d = c; c = b; while (1) { b = (f + -1) | 0; a[b >> 0] = (c & 7) | 48; c = iE(c | 0, d | 0, 3) | 0; d = y; if (((c | 0) == 0) & ((d | 0) == 0)) { e = b; break; } else f = b; } } return e | 0; } function kz(b, c, d) { b = b | 0; c = c | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; if ( (c >>> 0 > 0) | (((c | 0) == 0) & (b >>> 0 > 4294967295)) ) { e = d; f = b; g = c; do { c = f; f = hE(f | 0, g | 0, 10, 0) | 0; h = g; g = y; i = cE(f | 0, g | 0, 10, 0) | 0; j = eE(c | 0, h | 0, i | 0, y | 0) | 0; e = (e + -1) | 0; a[e >> 0] = (j & 255) | 48; } while ( (h >>> 0 > 9) | (((h | 0) == 9) & (c >>> 0 > 4294967295)) ); k = f; l = e; } else { k = b; l = d; } if (!k) m = l; else { d = k; k = l; while (1) { l = d; d = ((d >>> 0) / 10) | 0; b = (k + -1) | 0; a[b >> 0] = (l - ((d * 10) | 0)) | 48; if (l >>> 0 < 10) { m = b; break; } else k = b; } } return m | 0; } function lz(a) { a = a | 0; return vz(a, c[((uz() | 0) + 188) >> 2] | 0) | 0; } function mz(a, b, c, d, e) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = l; l = (l + 256) | 0; g = f; if (((c | 0) > (d | 0)) & (((e & 73728) | 0) == 0)) { e = (c - d) | 0; oE( g | 0, ((b << 24) >> 24) | 0, (e >>> 0 < 256 ? e : 256) | 0 ) | 0; if (e >>> 0 > 255) { b = (c - d) | 0; d = e; do { fz(a, g, 256); d = (d + -256) | 0; } while (d >>> 0 > 255); h = b & 255; } else h = e; fz(a, g, h); } l = f; return; } function nz(a, b) { a = a | 0; b = b | 0; var c = 0; if (!a) c = 0; else c = sz(a, b, 0) | 0; return c | 0; } function oz(b, e, f, g, h, i) { b = b | 0; e = +e; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0.0, u = 0, v = 0.0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0.0, G = 0, H = 0, I = 0, J = 0.0, K = 0, L = 0, M = 0, O = 0, P = 0, Q = 0, R = 0.0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0.0, ja = 0.0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0; j = l; l = (l + 560) | 0; k = (j + 32) | 0; m = (j + 536) | 0; n = j; o = n; p = (j + 540) | 0; c[m >> 2] = 0; q = (p + 12) | 0; r = pz(e) | 0; s = y; if ((s | 0) < 0) { t = -e; u = pz(t) | 0; v = t; w = 1; x = 17851; z = y; A = u; } else { v = e; w = (((h & 2049) | 0) != 0) & 1; x = ((h & 2048) | 0) == 0 ? ((h & 1) | 0) == 0 ? 17852 : 17857 : 17854; z = s; A = r; } do { if ((0 == 0) & (((z & 2146435072) | 0) == 2146435072)) { r = ((i & 32) | 0) != 0; A = (w + 3) | 0; mz(b, 32, f, A, h & -65537); fz(b, x, w); fz( b, (v != v) | (0.0 != 0.0) ? r ? 17878 : 17882 : r ? 17870 : 17874, 3 ); mz(b, 32, f, A, h ^ 8192); B = A; } else { e = +qz(v, m) * 2.0; A = e != 0.0; if (A) c[m >> 2] = (c[m >> 2] | 0) + -1; r = i | 32; if ((r | 0) == 97) { s = i & 32; u = (s | 0) == 0 ? x : (x + 9) | 0; C = w | 2; D = (12 - g) | 0; do { if (!((g >>> 0 > 11) | ((D | 0) == 0))) { t = 8.0; E = D; do { E = (E + -1) | 0; t = t * 16.0; } while ((E | 0) != 0); if ((a[u >> 0] | 0) == 45) { F = -(t + (-e - t)); break; } else { F = e + t - t; break; } } else F = e; } while (0); D = c[m >> 2] | 0; E = (D | 0) < 0 ? (0 - D) | 0 : D; G = kz(E, (((E | 0) < 0) << 31) >> 31, q) | 0; if ((G | 0) == (q | 0)) { E = (p + 11) | 0; a[E >> 0] = 48; H = E; } else H = G; a[(H + -1) >> 0] = ((D >> 31) & 2) + 43; D = (H + -2) | 0; a[D >> 0] = i + 15; G = (g | 0) < 1; E = ((h & 8) | 0) == 0; I = n; J = F; while (1) { K = ~~J; L = (I + 1) | 0; a[I >> 0] = s | d[(7920 + K) >> 0]; J = (J - +(K | 0)) * 16.0; if ( ((L - o) | 0) == 1 ? !(E & (G & (J == 0.0))) : 0 ) { a[L >> 0] = 46; M = (I + 2) | 0; } else M = L; if (!(J != 0.0)) break; else I = M; } I = M; if ((g | 0) != 0 ? ((-2 - o + I) | 0) < (g | 0) : 0) { G = q; E = D; O = (g + 2 + G - E) | 0; P = G; Q = E; } else { E = q; G = D; O = (E - o - G + I) | 0; P = E; Q = G; } G = (O + C) | 0; mz(b, 32, f, G, h); fz(b, u, C); mz(b, 48, f, G, h ^ 65536); E = (I - o) | 0; fz(b, n, E); I = (P - Q) | 0; mz(b, 48, (O - (E + I)) | 0, 0, 0); fz(b, D, I); mz(b, 32, f, G, h ^ 8192); B = G; break; } G = (g | 0) < 0 ? 6 : g; if (A) { I = ((c[m >> 2] | 0) + -28) | 0; c[m >> 2] = I; R = e * 268435456.0; S = I; } else { R = e; S = c[m >> 2] | 0; } I = (S | 0) < 0 ? k : (k + 288) | 0; E = I; J = R; do { s = ~~J >>> 0; c[E >> 2] = s; E = (E + 4) | 0; J = (J - +(s >>> 0)) * 1.0e9; } while (J != 0.0); A = I; if ((S | 0) > 0) { D = I; C = E; u = S; while (1) { s = (u | 0) < 29 ? u : 29; L = (C + -4) | 0; if (L >>> 0 >= D >>> 0) { K = L; L = 0; do { T = jE(c[K >> 2] | 0, 0, s | 0) | 0; U = dE(T | 0, y | 0, L | 0, 0) | 0; T = y; L = hE(U | 0, T | 0, 1e9, 0) | 0; V = cE(L | 0, y | 0, 1e9, 0) | 0; W = eE(U | 0, T | 0, V | 0, y | 0) | 0; c[K >> 2] = W; K = (K + -4) | 0; } while (K >>> 0 >= D >>> 0); if (L) { K = (D + -4) | 0; c[K >> 2] = L; X = K; } else X = D; } else X = D; a: do { if (C >>> 0 > X >>> 0) { K = C; while (1) { W = (K + -4) | 0; if (c[W >> 2] | 0) { Y = K; break a; } if (W >>> 0 > X >>> 0) K = W; else { Y = W; break; } } } else Y = C; } while (0); L = ((c[m >> 2] | 0) - s) | 0; c[m >> 2] = L; if ((L | 0) > 0) { D = X; C = Y; u = L; } else { Z = X; _ = Y; $ = L; break; } } } else { Z = I; _ = E; $ = S; } if (($ | 0) < 0) { u = (((((G + 25) | 0) / 9) | 0) + 1) | 0; C = (r | 0) == 102; D = Z; L = _; K = $; while (1) { W = (0 - K) | 0; V = (W | 0) < 9 ? W : 9; if (D >>> 0 < L >>> 0) { W = ((1 << V) + -1) | 0; T = 1e9 >>> V; U = 0; aa = D; do { ba = c[aa >> 2] | 0; c[aa >> 2] = (ba >>> V) + U; U = N(ba & W, T) | 0; aa = (aa + 4) | 0; } while (aa >>> 0 < L >>> 0); aa = (c[D >> 2] | 0) == 0 ? (D + 4) | 0 : D; if (!U) { ca = L; da = aa; } else { c[L >> 2] = U; ca = (L + 4) | 0; da = aa; } } else { ca = L; da = (c[D >> 2] | 0) == 0 ? (D + 4) | 0 : D; } aa = C ? I : da; T = (((ca - aa) >> 2) | 0) > (u | 0) ? (aa + (u << 2)) | 0 : ca; K = ((c[m >> 2] | 0) + V) | 0; c[m >> 2] = K; if ((K | 0) >= 0) { ea = da; fa = T; break; } else { D = da; L = T; } } } else { ea = Z; fa = _; } if (ea >>> 0 < fa >>> 0) { L = (((A - ea) >> 2) * 9) | 0; D = c[ea >> 2] | 0; if (D >>> 0 < 10) ga = L; else { K = L; L = 10; while (1) { L = (L * 10) | 0; u = (K + 1) | 0; if (D >>> 0 < L >>> 0) { ga = u; break; } else K = u; } } } else ga = 0; K = (r | 0) == 103; L = (G | 0) != 0; D = (G - ((r | 0) == 102 ? 0 : ga) + (((L & K) << 31) >> 31)) | 0; if ((D | 0) < ((((((fa - A) >> 2) * 9) | 0) + -9) | 0)) { u = (D + 9216) | 0; D = ((u | 0) / 9) | 0; C = (I + 4 + ((D + -1024) << 2)) | 0; E = (u - ((D * 9) | 0)) | 0; if ((E | 0) < 8) { D = E; E = 10; while (1) { u = (E * 10) | 0; if ((D | 0) < 7) { D = (D + 1) | 0; E = u; } else { ha = u; break; } } } else ha = 10; E = c[C >> 2] | 0; D = ((E >>> 0) / (ha >>> 0)) | 0; r = (E - (N(D, ha) | 0)) | 0; u = ((C + 4) | 0) == (fa | 0); if (!(u & ((r | 0) == 0))) { t = ((D & 1) | 0) == 0 ? 9007199254740992.0 : 9007199254740994.0; D = ha >>> 1; J = r >>> 0 < D >>> 0 ? 0.5 : u & ((r | 0) == (D | 0)) ? 1.0 : 1.5; if (!w) { ia = J; ja = t; } else { D = (a[x >> 0] | 0) == 45; ia = D ? -J : J; ja = D ? -t : t; } D = (E - r) | 0; c[C >> 2] = D; if (ja + ia != ja) { r = (D + ha) | 0; c[C >> 2] = r; if (r >>> 0 > 999999999) { r = C; D = ea; while (1) { E = (r + -4) | 0; c[r >> 2] = 0; if (E >>> 0 < D >>> 0) { u = (D + -4) | 0; c[u >> 2] = 0; ka = u; } else ka = D; u = ((c[E >> 2] | 0) + 1) | 0; c[E >> 2] = u; if (u >>> 0 > 999999999) { r = E; D = ka; } else { la = E; ma = ka; break; } } } else { la = C; ma = ea; } D = (((A - ma) >> 2) * 9) | 0; r = c[ma >> 2] | 0; if (r >>> 0 < 10) { na = la; oa = D; pa = ma; } else { E = D; D = 10; while (1) { D = (D * 10) | 0; u = (E + 1) | 0; if (r >>> 0 < D >>> 0) { na = la; oa = u; pa = ma; break; } else E = u; } } } else { na = C; oa = ga; pa = ea; } } else { na = C; oa = ga; pa = ea; } E = (na + 4) | 0; qa = oa; ra = fa >>> 0 > E >>> 0 ? E : fa; sa = pa; } else { qa = ga; ra = fa; sa = ea; } E = (0 - qa) | 0; b: do { if (ra >>> 0 > sa >>> 0) { D = ra; while (1) { r = (D + -4) | 0; if (c[r >> 2] | 0) { ta = D; ua = 1; break b; } if (r >>> 0 > sa >>> 0) D = r; else { ta = r; ua = 0; break; } } } else { ta = ra; ua = 0; } } while (0); do { if (K) { C = (G + ((L ^ 1) & 1)) | 0; if (((C | 0) > (qa | 0)) & ((qa | 0) > -5)) { va = (i + -1) | 0; wa = (C + -1 - qa) | 0; } else { va = (i + -2) | 0; wa = (C + -1) | 0; } if (!(h & 8)) { if ( ua ? ((C = c[(ta + -4) >> 2] | 0), (C | 0) != 0) : 0 ) { if (!((C >>> 0) % 10 | 0)) { D = 0; V = 10; while (1) { V = (V * 10) | 0; U = (D + 1) | 0; if ((C >>> 0) % (V >>> 0) | 0 | 0) { xa = U; break; } else D = U; } } else xa = 0; } else xa = 9; D = (((((ta - A) >> 2) * 9) | 0) + -9) | 0; if ((va | 32 | 0) == 102) { V = (D - xa) | 0; C = (V | 0) > 0 ? V : 0; ya = va; za = (wa | 0) < (C | 0) ? wa : C; break; } else { C = (D + qa - xa) | 0; D = (C | 0) > 0 ? C : 0; ya = va; za = (wa | 0) < (D | 0) ? wa : D; break; } } else { ya = va; za = wa; } } else { ya = i; za = G; } } while (0); G = (za | 0) != 0; A = G ? 1 : (h >>> 3) & 1; L = (ya | 32 | 0) == 102; if (L) { Aa = 0; Ba = (qa | 0) > 0 ? qa : 0; } else { K = (qa | 0) < 0 ? E : qa; D = kz(K, (((K | 0) < 0) << 31) >> 31, q) | 0; K = q; if (((K - D) | 0) < 2) { C = D; while (1) { V = (C + -1) | 0; a[V >> 0] = 48; if (((K - V) | 0) < 2) C = V; else { Ca = V; break; } } } else Ca = D; a[(Ca + -1) >> 0] = ((qa >> 31) & 2) + 43; C = (Ca + -2) | 0; a[C >> 0] = ya; Aa = C; Ba = (K - C) | 0; } C = (w + 1 + za + A + Ba) | 0; mz(b, 32, f, C, h); fz(b, x, w); mz(b, 48, f, C, h ^ 65536); if (L) { E = sa >>> 0 > I >>> 0 ? I : sa; V = (n + 9) | 0; U = V; r = (n + 8) | 0; u = E; do { T = kz(c[u >> 2] | 0, 0, V) | 0; if ((u | 0) == (E | 0)) { if ((T | 0) == (V | 0)) { a[r >> 0] = 48; Da = r; } else Da = T; } else if (T >>> 0 > n >>> 0) { oE(n | 0, 48, (T - o) | 0) | 0; aa = T; while (1) { W = (aa + -1) | 0; if (W >>> 0 > n >>> 0) aa = W; else { Da = W; break; } } } else Da = T; fz(b, Da, (U - Da) | 0); u = (u + 4) | 0; } while (u >>> 0 <= I >>> 0); if (!((((h & 8) | 0) == 0) & (G ^ 1))) fz(b, 18964, 1); if ((u >>> 0 < ta >>> 0) & ((za | 0) > 0)) { I = za; U = u; while (1) { r = kz(c[U >> 2] | 0, 0, V) | 0; if (r >>> 0 > n >>> 0) { oE(n | 0, 48, (r - o) | 0) | 0; E = r; while (1) { L = (E + -1) | 0; if (L >>> 0 > n >>> 0) E = L; else { Ea = L; break; } } } else Ea = r; fz(b, Ea, (I | 0) < 9 ? I : 9); U = (U + 4) | 0; E = (I + -9) | 0; if (!((U >>> 0 < ta >>> 0) & ((I | 0) > 9))) { Fa = E; break; } else I = E; } } else Fa = za; mz(b, 48, (Fa + 9) | 0, 9, 0); } else { I = ua ? ta : (sa + 4) | 0; if ((sa >>> 0 < I >>> 0) & ((za | 0) > -1)) { U = (n + 9) | 0; V = ((h & 8) | 0) == 0; u = U; G = (0 - o) | 0; E = (n + 8) | 0; T = za; L = sa; while (1) { A = kz(c[L >> 2] | 0, 0, U) | 0; if ((A | 0) == (U | 0)) { a[E >> 0] = 48; Ga = E; } else Ga = A; do { if ((L | 0) == (sa | 0)) { A = (Ga + 1) | 0; fz(b, Ga, 1); if (V & ((T | 0) < 1)) { Ha = A; break; } fz(b, 18964, 1); Ha = A; } else { if (Ga >>> 0 <= n >>> 0) { Ha = Ga; break; } oE(n | 0, 48, (Ga + G) | 0) | 0; A = Ga; while (1) { K = (A + -1) | 0; if (K >>> 0 > n >>> 0) A = K; else { Ha = K; break; } } } } while (0); r = (u - Ha) | 0; fz(b, Ha, (T | 0) > (r | 0) ? r : T); A = (T - r) | 0; L = (L + 4) | 0; if (!((L >>> 0 < I >>> 0) & ((A | 0) > -1))) { Ia = A; break; } else T = A; } } else Ia = za; mz(b, 48, (Ia + 18) | 0, 18, 0); fz(b, Aa, (q - Aa) | 0); } mz(b, 32, f, C, h ^ 8192); B = C; } } while (0); l = j; return ((B | 0) < (f | 0) ? f : B) | 0; } function pz(a) { a = +a; var b = 0; h[j >> 3] = a; b = c[j >> 2] | 0; y = c[(j + 4) >> 2] | 0; return b | 0; } function qz(a, b) { a = +a; b = b | 0; return +(+rz(a, b)); } function rz(a, b) { a = +a; b = b | 0; var d = 0, e = 0, f = 0, g = 0.0, i = 0.0, k = 0, l = 0.0; h[j >> 3] = a; d = c[j >> 2] | 0; e = c[(j + 4) >> 2] | 0; f = iE(d | 0, e | 0, 52) | 0; switch (f & 2047) { case 0: { if (a != 0.0) { g = +rz(a * 18446744073709551616.0, b); i = g; k = ((c[b >> 2] | 0) + -64) | 0; } else { i = a; k = 0; } c[b >> 2] = k; l = i; break; } case 2047: { l = a; break; } default: { c[b >> 2] = (f & 2047) + -1022; c[j >> 2] = d; c[(j + 4) >> 2] = (e & -2146435073) | 1071644672; l = +h[j >> 3]; } } return +l; } function sz(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0; do { if (b) { if (d >>> 0 < 128) { a[b >> 0] = d; f = 1; break; } if (!(c[c[((tz() | 0) + 188) >> 2] >> 2] | 0)) if (((d & -128) | 0) == 57216) { a[b >> 0] = d; f = 1; break; } else { c[(My() | 0) >> 2] = 84; f = -1; break; } if (d >>> 0 < 2048) { a[b >> 0] = (d >>> 6) | 192; a[(b + 1) >> 0] = (d & 63) | 128; f = 2; break; } if ((d >>> 0 < 55296) | (((d & -8192) | 0) == 57344)) { a[b >> 0] = (d >>> 12) | 224; a[(b + 1) >> 0] = ((d >>> 6) & 63) | 128; a[(b + 2) >> 0] = (d & 63) | 128; f = 3; break; } if (((d + -65536) | 0) >>> 0 < 1048576) { a[b >> 0] = (d >>> 18) | 240; a[(b + 1) >> 0] = ((d >>> 12) & 63) | 128; a[(b + 2) >> 0] = ((d >>> 6) & 63) | 128; a[(b + 3) >> 0] = (d & 63) | 128; f = 4; break; } else { c[(My() | 0) >> 2] = 84; f = -1; break; } } else f = 1; } while (0); return f | 0; } function tz() { return az() | 0; } function uz() { return az() | 0; } function vz(b, e) { b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0; f = 0; while (1) { if ((d[(7936 + f) >> 0] | 0) == (b | 0)) { g = 4; break; } h = (f + 1) | 0; if ((h | 0) == 87) { i = 87; g = 5; break; } else f = h; } if ((g | 0) == 4) if (!f) j = 8032; else { i = f; g = 5; } if ((g | 0) == 5) { g = 8032; f = i; while (1) { i = g; do { b = i; i = (i + 1) | 0; } while ((a[b >> 0] | 0) != 0); f = (f + -1) | 0; if (!f) { j = i; break; } else g = i; } } return wz(j, c[(e + 20) >> 2] | 0) | 0; } function wz(a, b) { a = a | 0; b = b | 0; return Yy(a, b) | 0; } function xz(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0; f = (e + 16) | 0; g = c[f >> 2] | 0; if (!g) { if (!(yz(e) | 0)) { h = c[f >> 2] | 0; i = 5; } else j = 0; } else { h = g; i = 5; } a: do { if ((i | 0) == 5) { g = (e + 20) | 0; f = c[g >> 2] | 0; k = f; if (((h - f) | 0) >>> 0 < d >>> 0) { j = rc[c[(e + 36) >> 2] & 31](e, b, d) | 0; break; } b: do { if (((a[(e + 75) >> 0] | 0) < 0) | ((d | 0) == 0)) { l = 0; m = b; n = d; o = k; } else { f = d; while (1) { p = (f + -1) | 0; if ((a[(b + p) >> 0] | 0) == 10) break; if (!p) { l = 0; m = b; n = d; o = k; break b; } else f = p; } p = rc[c[(e + 36) >> 2] & 31](e, b, f) | 0; if (p >>> 0 < f >>> 0) { j = p; break a; } l = f; m = (b + f) | 0; n = (d - f) | 0; o = c[g >> 2] | 0; } } while (0); mE(o | 0, m | 0, n | 0) | 0; c[g >> 2] = (c[g >> 2] | 0) + n; j = (l + n) | 0; } } while (0); return j | 0; } function yz(b) { b = b | 0; var d = 0, e = 0, f = 0; d = (b + 74) | 0; e = a[d >> 0] | 0; a[d >> 0] = (e + 255) | e; e = c[b >> 2] | 0; if (!(e & 8)) { c[(b + 8) >> 2] = 0; c[(b + 4) >> 2] = 0; d = c[(b + 44) >> 2] | 0; c[(b + 28) >> 2] = d; c[(b + 20) >> 2] = d; c[(b + 16) >> 2] = d + (c[(b + 48) >> 2] | 0); f = 0; } else { c[b >> 2] = e | 32; f = -1; } return f | 0; } function zz(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = (a + 20) | 0; f = c[e >> 2] | 0; g = ((c[(a + 16) >> 2] | 0) - f) | 0; a = g >>> 0 > d >>> 0 ? d : g; mE(f | 0, b | 0, a | 0) | 0; c[e >> 2] = (c[e >> 2] | 0) + a; return d | 0; } function Az(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; d = l; l = (l + 16) | 0; e = d; c[e >> 2] = b; b = dz(c[3e3] | 0, a, e) | 0; l = d; return b | 0; } function Bz(b, e) { b = b | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 16) | 0; g = f; h = e & 255; a[g >> 0] = h; i = (b + 16) | 0; j = c[i >> 2] | 0; if (!j) { if (!(yz(b) | 0)) { k = c[i >> 2] | 0; m = 4; } else n = -1; } else { k = j; m = 4; } do { if ((m | 0) == 4) { j = (b + 20) | 0; i = c[j >> 2] | 0; if ( i >>> 0 < k >>> 0 ? ((o = e & 255), (o | 0) != (a[(b + 75) >> 0] | 0)) : 0 ) { c[j >> 2] = i + 1; a[i >> 0] = h; n = o; break; } if ((rc[c[(b + 36) >> 2] & 31](b, g, 1) | 0) == 1) n = d[g >> 0] | 0; else n = -1; } } while (0); l = f; return n | 0; } function Cz(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 48) | 0; f = (e + 32) | 0; g = (e + 16) | 0; h = e; if (Ry(17886, a[d >> 0] | 0) | 0) { i = Dz(d) | 0; c[h >> 2] = b; c[(h + 4) >> 2] = i | 32768; c[(h + 8) >> 2] = 438; b = Ly(Ha(5, h | 0) | 0) | 0; if ((b | 0) >= 0) { if ((i & 524288) | 0) { c[g >> 2] = b; c[(g + 4) >> 2] = 2; c[(g + 8) >> 2] = 1; Ga(221, g | 0) | 0; } g = Ez(b, d) | 0; if (!g) { c[f >> 2] = b; Ja(6, f | 0) | 0; j = 0; } else j = g; } else j = 0; } else { c[(My() | 0) >> 2] = 22; j = 0; } l = e; return j | 0; } function Dz(b) { b = b | 0; var c = 0, d = 0, e = 0, f = 0; c = (Ry(b, 43) | 0) == 0; d = a[b >> 0] | 0; e = c ? ((d << 24) >> 24 != 114) & 1 : 2; c = (Ry(b, 120) | 0) == 0; f = c ? e : e | 128; e = (Ry(b, 101) | 0) == 0; b = e ? f : f | 524288; f = (d << 24) >> 24 == 114 ? b : b | 64; b = (d << 24) >> 24 == 119 ? f | 512 : f; return ((d << 24) >> 24 == 97 ? b | 1024 : b) | 0; } function Ez(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; e = l; l = (l + 64) | 0; f = (e + 40) | 0; g = (e + 24) | 0; h = (e + 16) | 0; i = e; j = (e + 56) | 0; if (Ry(17886, a[d >> 0] | 0) | 0) { k = Cy(1156) | 0; if (!k) m = 0; else { oE(k | 0, 0, 124) | 0; if (!(Ry(d, 43) | 0)) c[k >> 2] = (a[d >> 0] | 0) == 114 ? 8 : 4; if (Ry(d, 101) | 0) { c[i >> 2] = b; c[(i + 4) >> 2] = 2; c[(i + 8) >> 2] = 1; Ga(221, i | 0) | 0; } if ((a[d >> 0] | 0) == 97) { c[h >> 2] = b; c[(h + 4) >> 2] = 3; d = Ga(221, h | 0) | 0; if (!(d & 1024)) { c[g >> 2] = b; c[(g + 4) >> 2] = 4; c[(g + 8) >> 2] = d | 1024; Ga(221, g | 0) | 0; } g = c[k >> 2] | 128; c[k >> 2] = g; n = g; } else n = c[k >> 2] | 0; c[(k + 60) >> 2] = b; c[(k + 44) >> 2] = k + 132; c[(k + 48) >> 2] = 1024; g = (k + 75) | 0; a[g >> 0] = -1; if ( ((n & 8) | 0) == 0 ? ((c[f >> 2] = b), (c[(f + 4) >> 2] = 21523), (c[(f + 8) >> 2] = j), (Ia(54, f | 0) | 0) == 0) : 0 ) a[g >> 0] = 10; c[(k + 32) >> 2] = 22; c[(k + 36) >> 2] = 3; c[(k + 40) >> 2] = 2; c[(k + 12) >> 2] = 29; if (!(c[5543] | 0)) c[(k + 76) >> 2] = -1; Fz(k) | 0; m = k; } } else { c[(My() | 0) >> 2] = 22; m = 0; } l = e; return m | 0; } function Fz(a) { a = a | 0; var b = 0, d = 0; b = Gz() | 0; c[(a + 56) >> 2] = c[b >> 2]; d = c[b >> 2] | 0; if (d | 0) c[(d + 52) >> 2] = a; c[b >> 2] = a; Hz(); return a | 0; } function Gz() { Aa(22236); return 22244; } function Hz() { Ka(22236); return; } function Iz() { return az() | 0; } function Jz(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; do { if (a) { if ((c[(a + 76) >> 2] | 0) <= -1) { b = Mz(a) | 0; break; } d = (Vy(a) | 0) == 0; e = Mz(a) | 0; if (d) b = e; else { Wy(a); b = e; } } else { if (!(c[3032] | 0)) f = 0; else f = Jz(c[3032] | 0) | 0; e = c[(Gz() | 0) >> 2] | 0; if (!e) g = f; else { d = e; e = f; while (1) { if ((c[(d + 76) >> 2] | 0) > -1) h = Vy(d) | 0; else h = 0; if ( (c[(d + 20) >> 2] | 0) >>> 0 > (c[(d + 28) >> 2] | 0) >>> 0 ) i = Mz(d) | 0 | e; else i = e; if (h | 0) Wy(d); d = c[(d + 56) >> 2] | 0; if (!d) { g = i; break; } else e = i; } } Hz(); b = g; } } while (0); return b | 0; } function Kz(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0; if ((c[(a + 76) >> 2] | 0) > -1) b = Vy(a) | 0; else b = 0; Lz(a); d = ((c[a >> 2] & 1) | 0) != 0; if (!d) { e = Gz() | 0; f = c[(a + 52) >> 2] | 0; g = (a + 56) | 0; if (f | 0) c[(f + 56) >> 2] = c[g >> 2]; h = c[g >> 2] | 0; if (h | 0) c[(h + 52) >> 2] = f; if ((c[e >> 2] | 0) == (a | 0)) c[e >> 2] = h; Hz(); } h = Jz(a) | 0; e = pc[c[(a + 12) >> 2] & 63](a) | 0 | h; h = c[(a + 92) >> 2] | 0; if (h | 0) Dy(h); if (d) { if (b | 0) Wy(a); } else Dy(a); return e | 0; } function Lz(a) { a = a | 0; var b = 0, d = 0, e = 0; if (c[(a + 68) >> 2] | 0) { b = c[(a + 116) >> 2] | 0; d = (a + 112) | 0; if (b | 0) c[(b + 112) >> 2] = c[d >> 2]; a = c[d >> 2] | 0; if (!a) e = ((Iz() | 0) + 232) | 0; else e = (a + 116) | 0; c[e >> 2] = b; } return; } function Mz(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; b = (a + 20) | 0; d = (a + 28) | 0; if ( (c[b >> 2] | 0) >>> 0 > (c[d >> 2] | 0) >>> 0 ? (rc[c[(a + 36) >> 2] & 31](a, 0, 0) | 0, (c[b >> 2] | 0) == 0) : 0 ) e = -1; else { f = (a + 4) | 0; g = c[f >> 2] | 0; h = (a + 8) | 0; i = c[h >> 2] | 0; if (g >>> 0 < i >>> 0) rc[c[(a + 40) >> 2] & 31](a, (g - i) | 0, 1) | 0; c[(a + 16) >> 2] = 0; c[d >> 2] = 0; c[b >> 2] = 0; c[h >> 2] = 0; c[f >> 2] = 0; e = 0; } return e | 0; } function Nz(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; if ((c[(d + 76) >> 2] | 0) >= 0 ? (Vy(d) | 0) != 0 : 0) { e = b & 255; f = b & 255; if ( (f | 0) != (a[(d + 75) >> 0] | 0) ? ((g = (d + 20) | 0), (h = c[g >> 2] | 0), h >>> 0 < (c[(d + 16) >> 2] | 0) >>> 0) : 0 ) { c[g >> 2] = h + 1; a[h >> 0] = e; i = f; } else i = Bz(d, b) | 0; Wy(d); j = i; } else k = 3; do { if ((k | 0) == 3) { i = b & 255; f = b & 255; if ( (f | 0) != (a[(d + 75) >> 0] | 0) ? ((e = (d + 20) | 0), (h = c[e >> 2] | 0), h >>> 0 < (c[(d + 16) >> 2] | 0) >>> 0) : 0 ) { c[e >> 2] = h + 1; a[h >> 0] = i; j = f; break; } j = Bz(d, b) | 0; } } while (0); return j | 0; } function Oz(a) { a = a | 0; var b = 0, c = 0, d = 0; b = ((Ty(a) | 0) + 1) | 0; c = Cy(b) | 0; if (!c) d = 0; else d = mE(c | 0, a | 0, b | 0) | 0; return d | 0; } function Pz(a) { a = a | 0; return (((a + -65) | 0) >>> 0 < 26) | 0; } function Qz(a) { a = a | 0; return ( ((((((a | 32) + -97) | 0) >>> 0 < 6) | ((Sy(a) | 0) != 0)) & 1) | 0 ); } function Rz(a) { a = a | 0; return; } function Sz(a) { a = a | 0; Rz(a); Vz(a); return; } function Tz(a) { a = a | 0; return 17890; } function Uz(a) { a = a | 0; var b = 0, c = 0; b = (a | 0) == 0 ? 1 : a; while (1) { a = Cy(b) | 0; if (a | 0) { c = a; break; } a = ZD() | 0; if (!a) { c = 0; break; } vc[a & 3](); } return c | 0; } function Vz(a) { a = a | 0; Dy(a); return; } function Wz(a) { a = a | 0; lb(); } function Xz() { var a = 0, b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; a = l; l = (l + 48) | 0; b = (a + 32) | 0; d = (a + 24) | 0; e = (a + 16) | 0; f = a; g = (a + 36) | 0; a = Yz() | 0; if (a | 0 ? ((h = c[a >> 2] | 0), h | 0) : 0) { a = (h + 48) | 0; i = c[a >> 2] | 0; j = c[(a + 4) >> 2] | 0; if ( !( (((i & -256) | 0) == 1126902528) & ((j | 0) == 1129074247) ) ) { c[d >> 2] = 18077; Zz(18027, d); } if (((i | 0) == 1126902529) & ((j | 0) == 1129074247)) k = c[(h + 44) >> 2] | 0; else k = (h + 80) | 0; c[g >> 2] = k; k = c[h >> 2] | 0; h = c[(k + 4) >> 2] | 0; if ( rc[c[((c[2704] | 0) + 16) >> 2] & 31](10816, k, g) | 0 ) { k = c[g >> 2] | 0; g = pc[c[((c[k >> 2] | 0) + 8) >> 2] & 63](k) | 0; c[f >> 2] = 18077; c[(f + 4) >> 2] = h; c[(f + 8) >> 2] = g; Zz(17941, f); } else { c[e >> 2] = 18077; c[(e + 4) >> 2] = h; Zz(17986, e); } } Zz(18065, b); } function Yz() { var a = 0, b = 0; a = l; l = (l + 16) | 0; if (!(rb(22248, 3) | 0)) { b = pb(c[5563] | 0) | 0; l = a; return b | 0; } else Zz(18216, a); return 0; } function Zz(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; d = l; l = (l + 16) | 0; e = d; c[e >> 2] = b; b = c[3033] | 0; dz(b, a, e) | 0; Nz(10, b) | 0; lb(); } function _z(a) { a = a | 0; return; } function $z(a) { a = a | 0; _z(a); Vz(a); return; } function aA(a) { a = a | 0; return; } function bA(a) { a = a | 0; return; } function cA(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 64) | 0; f = e; if (!(gA(a, b, 0) | 0)) { if ( (b | 0) != 0 ? ((g = kA(b, 10840, 10824, 0) | 0), (g | 0) != 0) : 0 ) { b = (f + 4) | 0; h = (b + 52) | 0; do { c[b >> 2] = 0; b = (b + 4) | 0; } while ((b | 0) < (h | 0)); c[f >> 2] = g; c[(f + 8) >> 2] = a; c[(f + 12) >> 2] = -1; c[(f + 48) >> 2] = 1; zc[c[((c[g >> 2] | 0) + 28) >> 2] & 7]( g, f, c[d >> 2] | 0, 1 ); if ((c[(f + 24) >> 2] | 0) == 1) { c[d >> 2] = c[(f + 16) >> 2]; i = 1; } else i = 0; j = i; } else j = 0; } else j = 1; l = e; return j | 0; } function dA(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; if (gA(a, c[(b + 8) >> 2] | 0, g) | 0) jA(0, b, d, e, f); return; } function eA(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0; do { if (!(gA(b, c[(d + 8) >> 2] | 0, g) | 0)) { if (gA(b, c[d >> 2] | 0, g) | 0) { if ( (c[(d + 16) >> 2] | 0) != (e | 0) ? ((h = (d + 20) | 0), (c[h >> 2] | 0) != (e | 0)) : 0 ) { c[(d + 32) >> 2] = f; c[h >> 2] = e; h = (d + 40) | 0; c[h >> 2] = (c[h >> 2] | 0) + 1; if ( (c[(d + 36) >> 2] | 0) == 1 ? (c[(d + 24) >> 2] | 0) == 2 : 0 ) a[(d + 54) >> 0] = 1; c[(d + 44) >> 2] = 4; break; } if ((f | 0) == 1) c[(d + 32) >> 2] = 1; } } else iA(0, d, e, f); } while (0); return; } function fA(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; if (gA(a, c[(b + 8) >> 2] | 0, 0) | 0) hA(0, b, d, e); return; } function gA(a, b, c) { a = a | 0; b = b | 0; c = c | 0; return ((a | 0) == (b | 0)) | 0; } function hA(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0; b = (d + 16) | 0; g = c[b >> 2] | 0; do { if (g) { if ((g | 0) != (e | 0)) { h = (d + 36) | 0; c[h >> 2] = (c[h >> 2] | 0) + 1; c[(d + 24) >> 2] = 2; a[(d + 54) >> 0] = 1; break; } h = (d + 24) | 0; if ((c[h >> 2] | 0) == 2) c[h >> 2] = f; } else { c[b >> 2] = e; c[(d + 24) >> 2] = f; c[(d + 36) >> 2] = 1; } } while (0); return; } function iA(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; if ( (c[(b + 4) >> 2] | 0) == (d | 0) ? ((d = (b + 28) | 0), (c[d >> 2] | 0) != 1) : 0 ) c[d >> 2] = e; return; } function jA(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0; a[(d + 53) >> 0] = 1; do { if ((c[(d + 4) >> 2] | 0) == (f | 0)) { a[(d + 52) >> 0] = 1; b = (d + 16) | 0; h = c[b >> 2] | 0; if (!h) { c[b >> 2] = e; c[(d + 24) >> 2] = g; c[(d + 36) >> 2] = 1; if (!((g | 0) == 1 ? (c[(d + 48) >> 2] | 0) == 1 : 0)) break; a[(d + 54) >> 0] = 1; break; } if ((h | 0) != (e | 0)) { h = (d + 36) | 0; c[h >> 2] = (c[h >> 2] | 0) + 1; a[(d + 54) >> 0] = 1; break; } h = (d + 24) | 0; b = c[h >> 2] | 0; if ((b | 0) == 2) { c[h >> 2] = g; i = g; } else i = b; if ((i | 0) == 1 ? (c[(d + 48) >> 2] | 0) == 1 : 0) a[(d + 54) >> 0] = 1; } } while (0); return; } function kA(d, e, f, g) { d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; h = l; l = (l + 64) | 0; i = h; j = c[d >> 2] | 0; k = (d + (c[(j + -8) >> 2] | 0)) | 0; m = c[(j + -4) >> 2] | 0; c[i >> 2] = f; c[(i + 4) >> 2] = d; c[(i + 8) >> 2] = e; c[(i + 12) >> 2] = g; g = (i + 16) | 0; e = (i + 20) | 0; d = (i + 24) | 0; j = (i + 28) | 0; n = (i + 32) | 0; o = (i + 40) | 0; p = g; q = (p + 36) | 0; do { c[p >> 2] = 0; p = (p + 4) | 0; } while ((p | 0) < (q | 0)); b[(g + 36) >> 1] = 0; a[(g + 38) >> 0] = 0; a: do { if (gA(m, f, 0) | 0) { c[(i + 48) >> 2] = 1; Bc[c[((c[m >> 2] | 0) + 20) >> 2] & 3](m, i, k, k, 1, 0); r = (c[d >> 2] | 0) == 1 ? k : 0; } else { Ac[c[((c[m >> 2] | 0) + 24) >> 2] & 3](m, i, k, 1, 0); switch (c[(i + 36) >> 2] | 0) { case 0: { r = ((c[o >> 2] | 0) == 1) & ((c[j >> 2] | 0) == 1) & ((c[n >> 2] | 0) == 1) ? c[e >> 2] | 0 : 0; break a; break; } case 1: break; default: { r = 0; break a; } } if ( (c[d >> 2] | 0) != 1 ? !( ((c[o >> 2] | 0) == 0) & ((c[j >> 2] | 0) == 1) & ((c[n >> 2] | 0) == 1) ) : 0 ) { r = 0; break; } r = c[g >> 2] | 0; } } while (0); l = h; return r | 0; } function lA(a) { a = a | 0; _z(a); Vz(a); return; } function mA(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0; if (gA(a, c[(b + 8) >> 2] | 0, g) | 0) jA(0, b, d, e, f); else { h = c[(a + 8) >> 2] | 0; Bc[c[((c[h >> 2] | 0) + 20) >> 2] & 3](h, b, d, e, f, g); } return; } function nA(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0; do { if (!(gA(b, c[(d + 8) >> 2] | 0, g) | 0)) { if (!(gA(b, c[d >> 2] | 0, g) | 0)) { h = c[(b + 8) >> 2] | 0; Ac[c[((c[h >> 2] | 0) + 24) >> 2] & 3](h, d, e, f, g); break; } if ( (c[(d + 16) >> 2] | 0) != (e | 0) ? ((h = (d + 20) | 0), (c[h >> 2] | 0) != (e | 0)) : 0 ) { c[(d + 32) >> 2] = f; i = (d + 44) | 0; if ((c[i >> 2] | 0) == 4) break; j = (d + 52) | 0; a[j >> 0] = 0; k = (d + 53) | 0; a[k >> 0] = 0; l = c[(b + 8) >> 2] | 0; Bc[c[((c[l >> 2] | 0) + 20) >> 2] & 3]( l, d, e, e, 1, g ); if (a[k >> 0] | 0) { if (!(a[j >> 0] | 0)) { m = 1; n = 11; } else n = 15; } else { m = 0; n = 11; } do { if ((n | 0) == 11) { c[h >> 2] = e; j = (d + 40) | 0; c[j >> 2] = (c[j >> 2] | 0) + 1; if ( (c[(d + 36) >> 2] | 0) == 1 ? (c[(d + 24) >> 2] | 0) == 2 : 0 ) { a[(d + 54) >> 0] = 1; if (m) { n = 15; break; } else { o = 4; break; } } if (m) n = 15; else o = 4; } } while (0); if ((n | 0) == 15) o = 3; c[i >> 2] = o; break; } if ((f | 0) == 1) c[(d + 32) >> 2] = 1; } else iA(0, d, e, f); } while (0); return; } function oA(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0; if (gA(a, c[(b + 8) >> 2] | 0, 0) | 0) hA(0, b, d, e); else { f = c[(a + 8) >> 2] | 0; zc[c[((c[f >> 2] | 0) + 28) >> 2] & 7](f, b, d, e); } return; } function pA(a) { a = a | 0; return; } function qA() { var a = 0; a = l; l = (l + 16) | 0; if (!(qb(22252, 72) | 0)) { l = a; return; } else Zz(18265, a); } function rA(a) { a = a | 0; var b = 0; b = l; l = (l + 16) | 0; Dy(a); if (!(sb(c[5563] | 0, 0) | 0)) { l = b; return; } else Zz(18315, b); } function sA() { var a = 0, b = 0; a = Yz() | 0; if ( (a | 0 ? ((b = c[a >> 2] | 0), b | 0) : 0) ? ((a = (b + 48) | 0), ((c[a >> 2] & -256) | 0) == 1126902528 ? (c[(a + 4) >> 2] | 0) == 1129074247 : 0) : 0 ) tA(c[(b + 12) >> 2] | 0); tA(uA() | 0); } function tA(a) { a = a | 0; var b = 0; b = l; l = (l + 16) | 0; vc[a & 3](); Zz(18368, b); } function uA() { var a = 0; a = c[3162] | 0; c[3162] = a + 0; return a | 0; } function vA(a) { a = a | 0; return; } function wA(a) { a = a | 0; _z(a); Vz(a); return; } function xA(a, b, c) { a = a | 0; b = b | 0; c = c | 0; return gA(a, b, 0) | 0; } function yA(a) { a = a | 0; _z(a); Vz(a); return; } function zA(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; e = l; l = (l + 64) | 0; f = e; c[d >> 2] = c[c[d >> 2] >> 2]; if (!(AA(a, b, 0) | 0)) { if ( ( (b | 0) != 0 ? ((g = kA(b, 10840, 10896, 0) | 0), (g | 0) != 0) : 0 ) ? ((c[(g + 8) >> 2] & ~c[(a + 8) >> 2]) | 0) == 0 : 0 ) { b = (a + 12) | 0; a = (g + 12) | 0; if ( !(gA(c[b >> 2] | 0, c[a >> 2] | 0, 0) | 0) ? !(gA(c[b >> 2] | 0, 10928, 0) | 0) : 0 ) { g = c[b >> 2] | 0; if ( ( ( (g | 0) != 0 ? ((b = kA(g, 10840, 10824, 0) | 0), (b | 0) != 0) : 0 ) ? ((g = c[a >> 2] | 0), (g | 0) != 0) : 0 ) ? ((a = kA(g, 10840, 10824, 0) | 0), (a | 0) != 0) : 0 ) { g = (f + 4) | 0; h = (g + 52) | 0; do { c[g >> 2] = 0; g = (g + 4) | 0; } while ((g | 0) < (h | 0)); c[f >> 2] = a; c[(f + 8) >> 2] = b; c[(f + 12) >> 2] = -1; c[(f + 48) >> 2] = 1; zc[c[((c[a >> 2] | 0) + 28) >> 2] & 7]( a, f, c[d >> 2] | 0, 1 ); if ((c[(f + 24) >> 2] | 0) == 1) { c[d >> 2] = c[(f + 16) >> 2]; i = 1; } else i = 0; j = i; } else j = 0; } else j = 1; } else j = 0; } else j = 1; l = e; return j | 0; } function AA(a, b, c) { a = a | 0; b = b | 0; c = c | 0; var d = 0; if (gA(a, b, 0) | 0) d = 1; else d = gA(b, 10936, 0) | 0; return d | 0; } function BA(a) { a = a | 0; _z(a); Vz(a); return; } function CA(a, b, c) { a = a | 0; b = b | 0; c = c | 0; return 0; } function DA(a) { a = a | 0; _z(a); Vz(a); return; } function EA(b, d, e, f, g, h) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; if (gA(b, c[(d + 8) >> 2] | 0, h) | 0) jA(0, d, e, f, g); else { i = (d + 52) | 0; j = a[i >> 0] | 0; k = (d + 53) | 0; l = a[k >> 0] | 0; m = c[(b + 12) >> 2] | 0; n = (b + 16 + (m << 3)) | 0; a[i >> 0] = 0; a[k >> 0] = 0; IA((b + 16) | 0, d, e, f, g, h); a: do { if ((m | 0) > 1) { o = (d + 24) | 0; p = (b + 8) | 0; q = (d + 54) | 0; r = (b + 24) | 0; do { if (a[q >> 0] | 0) break a; if (!(a[i >> 0] | 0)) { if (a[k >> 0] | 0 ? ((c[p >> 2] & 1) | 0) == 0 : 0) break a; } else { if ((c[o >> 2] | 0) == 1) break a; if (!(c[p >> 2] & 2)) break a; } a[i >> 0] = 0; a[k >> 0] = 0; IA(r, d, e, f, g, h); r = (r + 8) | 0; } while (r >>> 0 < n >>> 0); } } while (0); a[i >> 0] = j; a[k >> 0] = l; } return; } function FA(b, d, e, f, g) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; a: do { if (!(gA(b, c[(d + 8) >> 2] | 0, g) | 0)) { if (!(gA(b, c[d >> 2] | 0, g) | 0)) { h = c[(b + 12) >> 2] | 0; i = (b + 16 + (h << 3)) | 0; JA((b + 16) | 0, d, e, f, g); j = (b + 24) | 0; if ((h | 0) <= 1) break; h = c[(b + 8) >> 2] | 0; if ( ((h & 2) | 0) == 0 ? ((k = (d + 36) | 0), (c[k >> 2] | 0) != 1) : 0 ) { if (!(h & 1)) { h = (d + 54) | 0; l = j; while (1) { if (a[h >> 0] | 0) break a; if ((c[k >> 2] | 0) == 1) break a; JA(l, d, e, f, g); l = (l + 8) | 0; if (l >>> 0 >= i >>> 0) break a; } } l = (d + 24) | 0; h = (d + 54) | 0; m = j; while (1) { if (a[h >> 0] | 0) break a; if ((c[k >> 2] | 0) == 1 ? (c[l >> 2] | 0) == 1 : 0) break a; JA(m, d, e, f, g); m = (m + 8) | 0; if (m >>> 0 >= i >>> 0) break a; } } m = (d + 54) | 0; l = j; while (1) { if (a[m >> 0] | 0) break a; JA(l, d, e, f, g); l = (l + 8) | 0; if (l >>> 0 >= i >>> 0) break a; } } if ( (c[(d + 16) >> 2] | 0) != (e | 0) ? ((i = (d + 20) | 0), (c[i >> 2] | 0) != (e | 0)) : 0 ) { c[(d + 32) >> 2] = f; l = (d + 44) | 0; if ((c[l >> 2] | 0) == 4) break; m = (b + 16 + (c[(b + 12) >> 2] << 3)) | 0; j = (d + 52) | 0; k = (d + 53) | 0; h = (d + 54) | 0; n = (b + 8) | 0; o = (d + 24) | 0; p = 0; q = (b + 16) | 0; r = 0; b: while (1) { if (q >>> 0 >= m >>> 0) { s = p; t = 18; break; } a[j >> 0] = 0; a[k >> 0] = 0; IA(q, d, e, e, 1, g); if (a[h >> 0] | 0) { s = p; t = 18; break; } do { if (a[k >> 0] | 0) { if (!(a[j >> 0] | 0)) if (!(c[n >> 2] & 1)) { s = 1; t = 18; break b; } else { u = 1; v = r; break; } if ((c[o >> 2] | 0) == 1) { t = 23; break b; } if (!(c[n >> 2] & 2)) { t = 23; break b; } else { u = 1; v = 1; } } else { u = p; v = r; } } while (0); p = u; q = (q + 8) | 0; r = v; } do { if ((t | 0) == 18) { if ( ( !r ? ((c[i >> 2] = e), (q = (d + 40) | 0), (c[q >> 2] = (c[q >> 2] | 0) + 1), (c[(d + 36) >> 2] | 0) == 1) : 0 ) ? (c[o >> 2] | 0) == 2 : 0 ) { a[h >> 0] = 1; if (s) { t = 23; break; } else { w = 4; break; } } if (s) t = 23; else w = 4; } } while (0); if ((t | 0) == 23) w = 3; c[l >> 2] = w; break; } if ((f | 0) == 1) c[(d + 32) >> 2] = 1; } else iA(0, d, e, f); } while (0); return; } function GA(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0; a: do { if (!(gA(b, c[(d + 8) >> 2] | 0, 0) | 0)) { g = c[(b + 12) >> 2] | 0; h = (b + 16 + (g << 3)) | 0; HA((b + 16) | 0, d, e, f); if ((g | 0) > 1) { g = (d + 54) | 0; i = (b + 24) | 0; do { HA(i, d, e, f); if (a[g >> 0] | 0) break a; i = (i + 8) | 0; } while (i >>> 0 < h >>> 0); } } else hA(0, d, e, f); } while (0); return; } function HA(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; f = c[(a + 4) >> 2] | 0; g = f >> 8; if (!(f & 1)) h = g; else h = c[((c[d >> 2] | 0) + g) >> 2] | 0; g = c[a >> 2] | 0; zc[c[((c[g >> 2] | 0) + 28) >> 2] & 7]( g, b, (d + h) | 0, ((f & 2) | 0) == 0 ? 2 : e ); return; } function IA(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0; h = c[(a + 4) >> 2] | 0; i = h >> 8; if (!(h & 1)) j = i; else j = c[((c[e >> 2] | 0) + i) >> 2] | 0; i = c[a >> 2] | 0; Bc[c[((c[i >> 2] | 0) + 20) >> 2] & 3]( i, b, d, (e + j) | 0, ((h & 2) | 0) == 0 ? 2 : f, g ); return; } function JA(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0; g = c[(a + 4) >> 2] | 0; h = g >> 8; if (!(g & 1)) i = h; else i = c[((c[d >> 2] | 0) + h) >> 2] | 0; h = c[a >> 2] | 0; Ac[c[((c[h >> 2] | 0) + 24) >> 2] & 3]( h, b, (d + i) | 0, ((g & 2) | 0) == 0 ? 2 : e, f ); return; } function KA(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0; g = l; l = (l + 4192) | 0; h = (g + 4176) | 0; i = g; j = (g + 4112) | 0; if ( (b | 0) != 0 ? ((k = (d | 0) != 0), (m = (e | 0) == 0), !(k & m)) : 0 ) { if (k) n = c[e >> 2] | 0; else n = 0; LA(i); MA(j, i); k = (j + 48) | 0; o = (j + 61) | 0; c[k >> 2] = 0; c[(k + 4) >> 2] = 0; c[(k + 8) >> 2] = 0; a[(k + 12) >> 0] = 0; a[o >> 0] = 1; k = (j + 32) | 0; p = (j + 36) | 0; q = c[p >> 2] | 0; if (q >>> 0 < (c[(j + 40) >> 2] | 0) >>> 0) { NA(h, i); c[q >> 2] = 0; c[(q + 4) >> 2] = 0; c[(q + 8) >> 2] = 0; c[(q + 12) >> 2] = c[h >> 2]; c[p >> 2] = (c[p >> 2] | 0) + 16; } else OA(k, i); q = (j + 62) | 0; a[q >> 0] = 0; a[(j + 63) >> 0] = 1; c[h >> 2] = 0; r = (b + (Ty(b) | 0)) | 0; PA(b, r, j, h); s = c[h >> 2] | 0; do { if (!(((s | 0) != 0) | ((a[q >> 0] | 0) == 0))) { t = c[k >> 2] | 0; if ( (t | 0) != (c[p >> 2] | 0) ? (c[t >> 2] | 0) != (c[(t + 4) >> 2] | 0) : 0 ) { a[q >> 0] = 0; a[o >> 0] = 0; t = c[j >> 2] | 0; u = (j + 4) | 0; v = c[u >> 2] | 0; while (1) { if ((v | 0) == (t | 0)) break; w = (v + -24) | 0; QA(w); v = w; } c[u >> 2] = t; v = c[(j + 16) >> 2] | 0; w = (j + 20) | 0; x = c[w >> 2] | 0; while (1) { if ((x | 0) == (v | 0)) break; y = (x + -16) | 0; RA(y); x = y; } c[w >> 2] = v; PA(b, r, j, h); if (!(a[q >> 0] | 0)) { z = c[h >> 2] | 0; A = 22; break; } else { c[h >> 2] = -2; B = 0; C = -2; break; } } else A = 23; } else { z = s; A = 22; } } while (0); if ((A | 0) == 22) if (!z) A = 23; else { B = 0; C = z; } do { if ((A | 0) == 23) { z = (j + 4) | 0; s = SA(((c[z >> 2] | 0) + -24) | 0) | 0; q = (s + 1) | 0; if (q >>> 0 > n >>> 0) { r = Fy(d, q) | 0; if (!r) { c[h >> 2] = -1; B = 0; C = -1; break; } if (m) D = r; else { c[e >> 2] = q; D = r; } } else if (!d) { B = 0; C = 0; break; } else D = d; r = c[z >> 2] | 0; q = (r + -12) | 0; b = a[(q + 11) >> 0] | 0; o = (b << 24) >> 24 < 0; TA( (r + -24) | 0, o ? c[q >> 2] | 0 : q, o ? c[(r + -8) >> 2] | 0 : b & 255 ) | 0; b = ((c[z >> 2] | 0) + -24) | 0; if ((a[(b + 11) >> 0] | 0) < 0) E = c[b >> 2] | 0; else E = b; mE(D | 0, E | 0, s | 0) | 0; a[(D + s) >> 0] = 0; B = D; C = 0; } } while (0); if (f | 0) c[f >> 2] = C; UA(j); VA(i); F = B; } else if (!f) F = 0; else { c[f >> 2] = -3; F = 0; } l = g; return F | 0; } function LA(a) { a = a | 0; c[(a + 4096) >> 2] = a; return; } function MA(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; d = l; l = (l + 16) | 0; e = d; SD(e, b); c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; c[(a + 12) >> 2] = c[e >> 2]; NA(e, b); TD((a + 16) | 0, e); UD(e, b); VD((a + 32) | 0, e); l = d; return; } function NA(a, b) { a = a | 0; b = b | 0; c[a >> 2] = b; return; } function OA(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; d = l; l = (l + 32) | 0; e = (d + 20) | 0; f = d; g = (a + 4) | 0; h = ((((c[g >> 2] | 0) - (c[a >> 2] | 0)) >> 4) + 1) | 0; i = qD(a) | 0; if (i >>> 0 < h >>> 0) Wz(a); else { j = c[a >> 2] | 0; k = ((c[(a + 8) >> 2] | 0) - j) | 0; m = k >> 3; rD( f, (k >> 4) >>> 0 < (i >>> 1) >>> 0 ? m >>> 0 < h >>> 0 ? h : m : i, ((c[g >> 2] | 0) - j) >> 4, (a + 12) | 0 ); j = (f + 8) | 0; g = c[j >> 2] | 0; NA(e, b); c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; c[(g + 12) >> 2] = c[e >> 2]; c[j >> 2] = g + 16; sD(a, f); tD(f); l = d; return; } } function PA(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; a: do { if (b >>> 0 < d >>> 0) { b: do { if ((a[b >> 0] | 0) != 95) { if ((mB(b, d, e) | 0) != (d | 0)) { c[f >> 2] = -2; break a; } } else { if (((d - b) | 0) <= 3) { c[f >> 2] = -2; break a; } switch (a[(b + 1) >> 0] | 0) { case 90: { g = (b + 2) | 0; h = jB(g, d, e) | 0; if ( !(((h | 0) == (g | 0)) | ((h | 0) == (d | 0))) ? (a[h >> 0] | 0) == 46 : 0 ) i = kB(h, d, e) | 0; else i = h; if ((i | 0) == (d | 0)) break b; c[f >> 2] = -2; break a; break; } case 95: { j = 11; break; } default: { } } if ( ((j | 0) == 11 ? (a[(b + 2) >> 0] | 0) == 95 : 0) ? (a[(b + 3) >> 0] | 0) == 90 : 0 ) { h = (b + 4) | 0; g = jB(h, d, e) | 0; if (((g | 0) == (h | 0)) | ((g | 0) == (d | 0))) { c[f >> 2] = -2; break a; } if ((lB(g, d, e) | 0) == (d | 0)) break; c[f >> 2] = -2; break a; } c[f >> 2] = -2; break a; } } while (0); if ( (c[f >> 2] | 0) == 0 ? (c[e >> 2] | 0) == (c[(e + 4) >> 2] | 0) : 0 ) c[f >> 2] = -2; } else c[f >> 2] = -2; } while (0); return; } function QA(a) { a = a | 0; iB((a + 12) | 0); iB(a); return; } function RA(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = c[a >> 2] | 0; if (b | 0) { d = (a + 4) | 0; e = c[d >> 2] | 0; while (1) { if ((e | 0) == (b | 0)) break; f = (e + -24) | 0; QA(f); e = f; } c[d >> 2] = b; b = c[a >> 2] | 0; hB( (a + 12) | 0, b, ((((c[(a + 8) >> 2] | 0) - b) | 0) / 24) | 0 ); } return; } function SA(b) { b = b | 0; var d = 0, e = 0, f = 0; d = a[(b + 11) >> 0] | 0; if ((d << 24) >> 24 < 0) e = c[(b + 4) >> 2] | 0; else e = d & 255; d = a[(b + 12 + 11) >> 0] | 0; if ((d << 24) >> 24 < 0) f = c[(b + 16) >> 2] | 0; else f = d & 255; return (f + e) | 0; } function TA(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 16) | 0; g = f; h = (b + 11) | 0; i = a[h >> 0] | 0; j = (i << 24) >> 24 < 0; if (j) { k = c[(b + 4) >> 2] | 0; m = ((c[(b + 8) >> 2] & 2147483647) + -1) | 0; } else { k = i & 255; m = 10; } if (((m - k) | 0) >>> 0 >= e >>> 0) { if (e | 0) { if (j) n = c[b >> 2] | 0; else n = b; bB((n + k) | 0, d, e) | 0; j = (k + e) | 0; if ((a[h >> 0] | 0) < 0) c[(b + 4) >> 2] = j; else a[h >> 0] = j; a[g >> 0] = 0; cB((n + j) | 0, g); } } else dB(b, m, (k + e - m) | 0, k, k, 0, e, d); l = f; return b | 0; } function UA(a) { a = a | 0; WA((a + 32) | 0); XA((a + 16) | 0); RA(a); return; } function VA(a) { a = a | 0; c[(a + 4096) >> 2] = 0; return; } function WA(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = c[a >> 2] | 0; if (b | 0) { d = (a + 4) | 0; e = c[d >> 2] | 0; while (1) { if ((e | 0) == (b | 0)) break; f = (e + -16) | 0; XA(f); e = f; } c[d >> 2] = b; b = c[a >> 2] | 0; aB((a + 12) | 0, b, ((c[(a + 8) >> 2] | 0) - b) >> 4); } return; } function XA(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = c[a >> 2] | 0; if (b | 0) { d = (a + 4) | 0; e = c[d >> 2] | 0; while (1) { if ((e | 0) == (b | 0)) break; f = (e + -16) | 0; RA(f); e = f; } c[d >> 2] = b; b = c[a >> 2] | 0; YA((a + 12) | 0, b, ((c[(a + 8) >> 2] | 0) - b) >> 4); } return; } function YA(a, b, d) { a = a | 0; b = b | 0; d = d | 0; ZA(c[a >> 2] | 0, b, d << 4); return; } function ZA(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0; if (_A(a, b) | 0) { e = (b + ($A(d) | 0)) | 0; d = (a + 4096) | 0; if ((e | 0) == (c[d >> 2] | 0)) c[d >> 2] = b; } else Dy(b); return; } function _A(a, b) { a = a | 0; b = b | 0; return ( ((((a + 4096) | 0) >>> 0 >= b >>> 0) & (a >>> 0 <= b >>> 0)) | 0 ); } function $A(a) { a = a | 0; return ((a + 15) & -16) | 0; } function aB(a, b, d) { a = a | 0; b = b | 0; d = d | 0; ZA(c[a >> 2] | 0, b, d << 4); return; } function bB(a, b, c) { a = a | 0; b = b | 0; c = c | 0; if (c | 0) mE(a | 0, b | 0, c | 0) | 0; return a | 0; } function cB(b, c) { b = b | 0; c = c | 0; a[b >> 0] = a[c >> 0] | 0; return; } function dB(b, d, e, f, g, h, i, j) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, m = 0, n = 0, o = 0, p = 0, q = 0; k = l; l = (l + 16) | 0; m = k; if (((-18 - d) | 0) >>> 0 < e >>> 0) eB(b); if ((a[(b + 11) >> 0] | 0) < 0) n = c[b >> 2] | 0; else n = b; if (d >>> 0 < 2147483623) { o = (e + d) | 0; e = d << 1; p = o >>> 0 < e >>> 0 ? e : o; q = p >>> 0 < 11 ? 11 : (p + 16) & -16; } else q = -17; p = fB(q) | 0; if (g | 0) bB(p, n, g) | 0; if (i | 0) bB((p + g) | 0, j, i) | 0; j = (f - h) | 0; f = (j - g) | 0; if (f | 0) bB((p + g + i) | 0, (n + g + h) | 0, f) | 0; if ((d | 0) != 10) gB(n); c[b >> 2] = p; c[(b + 8) >> 2] = q | -2147483648; q = (j + i) | 0; c[(b + 4) >> 2] = q; a[m >> 0] = 0; cB((p + q) | 0, m); l = k; return; } function eB(a) { a = a | 0; lb(); } function fB(a) { a = a | 0; return Cy(a) | 0; } function gB(a) { a = a | 0; Dy(a); return; } function hB(a, b, d) { a = a | 0; b = b | 0; d = d | 0; ZA(c[a >> 2] | 0, b, (d * 24) | 0); return; } function iB(b) { b = b | 0; if ((a[(b + 11) >> 0] | 0) < 0) gB(c[b >> 2] | 0); return; } function jB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0; f = l; l = (l + 64) | 0; g = (f + 48) | 0; h = (f + 40) | 0; i = (f + 32) | 0; j = (f + 24) | 0; k = (f + 12) | 0; m = f; if ((b | 0) != (d | 0)) { n = (e + 56) | 0; MD(h, n); c[n >> 2] = (c[n >> 2] | 0) + 1; o = (e + 61) | 0; ND(i, o); if ((c[n >> 2] | 0) >>> 0 > 1) a[o >> 0] = 1; a: do { switch (a[b >> 0] | 0) { case 84: case 71: { p = OD(b, d, e) | 0; q = 1; break; } default: { n = MB(b, d, e) | 0; r = c[(e + 48) >> 2] | 0; s = c[(e + 52) >> 2] | 0; b: do { if ((n | 0) != (b | 0)) { if ((n | 0) != (d | 0)) { switch (a[n >> 0] | 0) { case 46: case 69: { t = n; break b; break; } default: { } } ND(j, o); a[o >> 0] = 0; c[k >> 2] = 0; c[(k + 4) >> 2] = 0; c[(k + 8) >> 2] = 0; u = 0; while (1) { if ((u | 0) == 3) break; c[(k + (u << 2)) >> 2] = 0; u = (u + 1) | 0; } u = (e + 4) | 0; v = c[u >> 2] | 0; c: do { if ((c[e >> 2] | 0) != (v | 0)) { w = (v + -24) | 0; x = a[(w + 11) >> 0] | 0; y = (x << 24) >> 24 < 0; if (y) z = c[(v + -20) >> 2] | 0; else z = x & 255; if (z) { if (!(a[(e + 60) >> 0] | 0)) { if (y) { A = c[w >> 2] | 0; B = c[(v + -20) >> 2] | 0; } else { A = w; B = x & 255; } if ((a[(A + B + -1) >> 0] | 0) == 62) { if (y) { C = c[(v + -20) >> 2] | 0; D = c[w >> 2] | 0; } else { C = x & 255; D = w; } if ( (a[(D + (C + -2)) >> 0] | 0) != 45 ) { if (y) { E = c[(v + -20) >> 2] | 0; F = c[w >> 2] | 0; } else { E = x & 255; F = w; } if ( (a[(F + (E + -2)) >> 0] | 0) != 62 ) { x = mB(n, d, e) | 0; if ((x | 0) == (n | 0)) { G = b; H = 0; break; } y = c[u >> 2] | 0; I = y; if ( ((((y - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { G = b; H = 0; break; } y = (I + -24) | 0; c[m >> 2] = c[y >> 2]; c[(m + 4) >> 2] = c[(y + 4) >> 2]; c[(m + 8) >> 2] = c[(y + 8) >> 2]; J = 0; while (1) { if ((J | 0) == 3) break; c[(y + (J << 2)) >> 2] = 0; J = (J + 1) | 0; } J = (I + -12) | 0; y = (k + 11) | 0; if ((a[y >> 0] | 0) < 0) { K = c[k >> 2] | 0; a[g >> 0] = 0; cB(K, g); c[(k + 4) >> 2] = 0; } else { a[g >> 0] = 0; cB(k, g); a[y >> 0] = 0; } TB(k); c[k >> 2] = c[J >> 2]; c[(k + 4) >> 2] = c[(J + 4) >> 2]; c[(k + 8) >> 2] = c[(J + 8) >> 2]; K = 0; while (1) { if ((K | 0) == 3) break; c[(J + (K << 2)) >> 2] = 0; K = (K + 1) | 0; } K = a[y >> 0] | 0; if ( !( ((K << 24) >> 24 < 0 ? c[(k + 4) >> 2] | 0 : K & 255) | 0 ) ) NC(m, 32); K = c[u >> 2] | 0; J = 0; while (1) { if ((J | 0) == -1) break; I = (J + -1) | 0; QA((K + ((I * 24) | 0)) | 0); J = I; } c[u >> 2] = K + -24; J = a[(m + 11) >> 0] | 0; y = (J << 24) >> 24 < 0; zD( (K + -48) | 0, 0, y ? c[m >> 2] | 0 : m, y ? c[(m + 4) >> 2] | 0 : J & 255 ) | 0; iB(m); L = x; M = ((c[u >> 2] | 0) + -24) | 0; } else { L = n; M = w; } } else { L = n; M = w; } } else { L = n; M = w; } } else { L = n; M = w; } NC(M, 40); if ( (L | 0) != (d | 0) ? (a[L >> 0] | 0) == 118 : 0 ) { N = (L + 1) | 0; O = c[e >> 2] | 0; P = c[u >> 2] | 0; } else Q = 50; do { if ((Q | 0) == 50) { J = (g + 11) | 0; y = (g + 4) | 0; I = (m + 11) | 0; R = (m + 4) | 0; S = 1; T = L; d: while (1) { U = T; while (1) { V = ((((c[u >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; W = mB(U, d, e) | 0; X = c[u >> 2] | 0; Y = c[e >> 2] | 0; Z = (((X - Y) | 0) / 24) | 0; if ((W | 0) == (U | 0)) { Q = 74; break d; } if (Z >>> 0 > V >>> 0) break; else U = W; } c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; _ = 0; while (1) { if ((_ | 0) == 3) break; c[(g + (_ << 2)) >> 2] = 0; _ = (_ + 1) | 0; } _ = V; while (1) { if (_ >>> 0 >= Z >>> 0) break; $ = a[J >> 0] | 0; if ( (($ << 24) >> 24 < 0 ? c[y >> 2] | 0 : $ & 255) | 0 ) qB(g, 18897) | 0; FB( m, ((c[e >> 2] | 0) + ((_ * 24) | 0)) | 0 ); $ = a[I >> 0] | 0; aa = ($ << 24) >> 24 < 0; TA( g, aa ? c[m >> 2] | 0 : m, aa ? c[R >> 2] | 0 : $ & 255 ) | 0; iB(m); _ = (_ + 1) | 0; } _ = V; while (1) { if (_ >>> 0 >= Z >>> 0) break; $ = c[u >> 2] | 0; aa = 0; while (1) { if ((aa | 0) == -1) break; ba = (aa + -1) | 0; QA(($ + ((ba * 24) | 0)) | 0); aa = ba; } c[u >> 2] = $ + -24; _ = (_ + 1) | 0; } _ = a[J >> 0] | 0; aa = c[y >> 2] | 0; ba = _ & 255; if ( !( ((_ << 24) >> 24 < 0 ? aa : ba) | 0 ) ) ca = S; else { da = c[u >> 2] | 0; if ((c[e >> 2] | 0) == (da | 0)) { Q = 86; break; } if (S) { ea = ba; fa = da; ga = _; ha = aa; } else { qB((da + -24) | 0, 18897) | 0; da = a[J >> 0] | 0; ea = da & 255; fa = c[u >> 2] | 0; ga = da; ha = c[y >> 2] | 0; } da = (ga << 24) >> 24 < 0; TA( (fa + -24) | 0, da ? c[g >> 2] | 0 : g, da ? ha : ea ) | 0; ca = 0; } iB(g); S = ca; T = W; } if ((Q | 0) == 74) { N = U; O = Y; P = X; break; } else if ((Q | 0) == 86) { iB(g); G = b; H = 0; break c; } } } while (0); if ((O | 0) != (P | 0)) { NC((P + -24) | 0, 41); if ((r & 1) | 0) qB( ((c[u >> 2] | 0) + -24) | 0, 18620 ) | 0; if ((r & 2) | 0) qB( ((c[u >> 2] | 0) + -24) | 0, 18627 ) | 0; if ((r & 4) | 0) qB( ((c[u >> 2] | 0) + -24) | 0, 18637 ) | 0; switch (s | 0) { case 1: { qB( ((c[u >> 2] | 0) + -24) | 0, 20101 ) | 0; break; } case 2: { qB( ((c[u >> 2] | 0) + -24) | 0, 20104 ) | 0; break; } default: { } } w = a[(k + 11) >> 0] | 0; x = (w << 24) >> 24 < 0; TA( ((c[u >> 2] | 0) + -24) | 0, x ? c[k >> 2] | 0 : k, x ? c[(k + 4) >> 2] | 0 : w & 255 ) | 0; G = N; H = 1; } else { G = b; H = 0; } } else { G = b; H = 0; } } else { G = b; H = 0; } } while (0); iB(k); PD(j); if (H) t = G; else { p = G; q = 0; break a; } } else t = d; } else t = b; } while (0); p = t; q = 1; } } } while (0); PD(i); QD(h); if (q) { ia = p; Q = 90; } else ja = b; } else { ia = b; Q = 90; } if ((Q | 0) == 90) ja = ia; l = f; return ja | 0; } function kB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 48) | 0; g = (f + 24) | 0; h = (f + 12) | 0; i = f; if ( ((b | 0) != (d | 0) ? (a[b >> 0] | 0) == 46 : 0) ? ((j = (e + 4) | 0), (c[e >> 2] | 0) != (c[j >> 2] | 0)) : 0 ) { c[i >> 2] = 0; c[(i + 4) >> 2] = 0; c[(i + 8) >> 2] = 0; QC(i, b, d); pB(i, 0, 18670) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; e = 0; while (1) { if ((e | 0) == 3) break; c[(i + (e << 2)) >> 2] = 0; e = (e + 1) | 0; } qB(h, 18673) | 0; c[g >> 2] = c[h >> 2]; c[(g + 4) >> 2] = c[(h + 4) >> 2]; c[(g + 8) >> 2] = c[(h + 8) >> 2]; e = 0; while (1) { if ((e | 0) == 3) break; c[(h + (e << 2)) >> 2] = 0; e = (e + 1) | 0; } e = a[(g + 11) >> 0] | 0; k = (e << 24) >> 24 < 0; TA( ((c[j >> 2] | 0) + -24) | 0, k ? c[g >> 2] | 0 : g, k ? c[(g + 4) >> 2] | 0 : e & 255 ) | 0; iB(g); iB(h); iB(i); m = d; } else m = b; l = f; return m | 0; } function lB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0; a: do { if (((d - b) | 0) > 12) { f = 0; g = b; while (1) { if (f >>> 0 >= 13) break; if ((a[g >> 0] | 0) != (a[(20306 + f) >> 0] | 0)) { h = b; break a; } f = (f + 1) | 0; g = (g + 1) | 0; } b: do { if ((g | 0) == (d | 0)) i = d; else { if ((a[g >> 0] | 0) == 95) { f = (g + 1) | 0; if ((f | 0) == (d | 0)) { h = b; break a; } if ((((a[f >> 0] | 0) + -48) | 0) >>> 0 >= 10) { h = b; break a; } j = (g + 2) | 0; } else j = g; f = j; while (1) { if ((f | 0) == (d | 0)) { i = d; break b; } if ((((a[f >> 0] | 0) + -48) | 0) >>> 0 >= 10) { i = f; break b; } f = (f + 1) | 0; } } } while (0); g = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) != (g | 0)) { pB((g + -24) | 0, 0, 20320) | 0; h = i; } else h = b; } else h = b; } while (0); return h | 0; } function mB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0; f = l; l = (l + 144) | 0; g = (f + 128) | 0; h = (f + 104) | 0; i = (f + 40) | 0; j = (f + 88) | 0; k = (f + 24) | 0; m = (f + 76) | 0; n = (f + 12) | 0; o = f; p = (f + 64) | 0; a: do { if ((b | 0) != (d | 0)) { switch (a[b >> 0] | 0) { case 75: case 86: case 114: { c[g >> 2] = 0; q = nB(b, d, g) | 0; b: do { if ( (q | 0) != (b | 0) ? ((r = (a[q >> 0] | 0) == 70), (s = (e + 4) | 0), (t = ((((c[s >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0), (u = mB(q, d, e) | 0), (v = ((((c[s >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0), (u | 0) != (q | 0)) : 0 ) { s = (e + 20) | 0; w = c[s >> 2] | 0; if (r) { x = 0; while (1) { if ((x | 0) == -1) break; y = (x + -1) | 0; RA((w + (y << 4)) | 0); x = y; } x = (w + -16) | 0; c[s >> 2] = x; z = x; } else z = w; x = c[(e + 12) >> 2] | 0; c[h >> 2] = x; if (z >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[z >> 2] = 0; c[(z + 4) >> 2] = 0; c[(z + 8) >> 2] = 0; c[(z + 12) >> 2] = x; c[s >> 2] = (c[s >> 2] | 0) + 16; } else oB((e + 16) | 0, h); x = c[g >> 2] | 0; y = ((x & 1) | 0) == 0; A = ((x & 2) | 0) == 0; B = ((x & 4) | 0) == 0; x = t; while (1) { if (x >>> 0 >= v >>> 0) { C = u; break b; } if (r) { D = c[e >> 2] | 0; E = (D + ((x * 24) | 0) + 12) | 0; F = a[(E + 11) >> 0] | 0; G = (F << 24) >> 24 < 0; if (G) { H = c[(D + ((x * 24) | 0) + 16) >> 2] | 0; I = c[E >> 2] | 0; } else { H = F & 255; I = E; } J = (H + -2) | 0; if ((a[(I + J) >> 0] | 0) == 38) K = (H + -3) | 0; else { if (G) { L = c[E >> 2] | 0; M = c[(D + ((x * 24) | 0) + 16) >> 2] | 0; } else { L = E; M = F & 255; } K = (a[(L + M + -1) >> 0] | 0) == 38 ? J : H; } if (y) N = K; else { pB(E, K, 18620) | 0; N = (K + 6) | 0; } if (A) O = N; else { pB( ((c[e >> 2] | 0) + ((x * 24) | 0) + 12) | 0, N, 18627 ) | 0; O = (N + 9) | 0; } if (!B) pB( ((c[e >> 2] | 0) + ((x * 24) | 0) + 12) | 0, O, 18637 ) | 0; } else { if (!y) qB( ((c[e >> 2] | 0) + ((x * 24) | 0)) | 0, 18620 ) | 0; if (!A) qB( ((c[e >> 2] | 0) + ((x * 24) | 0)) | 0, 18627 ) | 0; if (!B) qB( ((c[e >> 2] | 0) + ((x * 24) | 0)) | 0, 18637 ) | 0; } E = c[s >> 2] | 0; J = ((c[e >> 2] | 0) + ((x * 24) | 0)) | 0; F = (E + -12) | 0; D = c[F >> 2] | 0; if ((D | 0) == (c[(E + -8) >> 2] | 0)) sB((E + -16) | 0, J); else { rB(D, J); c[F >> 2] = (c[F >> 2] | 0) + 24; } x = (x + 1) | 0; } } else C = b; } while (0); P = C; break a; break; } default: { } } q = tB(b, d, e) | 0; if ((q | 0) == (b | 0)) { c: do { switch (a[b >> 0] | 0) { case 65: { x = uB(b, d, e) | 0; if ((x | 0) == (b | 0)) { P = b; break a; } s = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (s | 0)) { P = b; break a; } c[h >> 2] = c[(e + 12) >> 2]; vB(g, (s + -24) | 0, h); s = (e + 20) | 0; B = c[s >> 2] | 0; if (B >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[B >> 2] = 0; A = (B + 4) | 0; c[A >> 2] = 0; y = (B + 8) | 0; c[y >> 2] = 0; c[(B + 12) >> 2] = c[(g + 12) >> 2]; c[B >> 2] = c[g >> 2]; B = (g + 4) | 0; c[A >> 2] = c[B >> 2]; A = (g + 8) | 0; c[y >> 2] = c[A >> 2]; c[A >> 2] = 0; c[B >> 2] = 0; c[g >> 2] = 0; c[s >> 2] = (c[s >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); P = x; break a; break; } case 67: { x = (b + 1) | 0; s = mB(x, d, e) | 0; if ((s | 0) == (x | 0)) { P = b; break a; } x = (e + 4) | 0; B = c[x >> 2] | 0; if ((c[e >> 2] | 0) == (B | 0)) { P = b; break a; } qB((B + -24) | 0, 18647) | 0; B = ((c[x >> 2] | 0) + -24) | 0; c[h >> 2] = c[(e + 12) >> 2]; vB(g, B, h); B = (e + 20) | 0; x = c[B >> 2] | 0; if (x >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[x >> 2] = 0; A = (x + 4) | 0; c[A >> 2] = 0; y = (x + 8) | 0; c[y >> 2] = 0; c[(x + 12) >> 2] = c[(g + 12) >> 2]; c[x >> 2] = c[g >> 2]; x = (g + 4) | 0; c[A >> 2] = c[x >> 2]; A = (g + 8) | 0; c[y >> 2] = c[A >> 2]; c[A >> 2] = 0; c[x >> 2] = 0; c[g >> 2] = 0; c[B >> 2] = (c[B >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); P = s; break a; break; } case 70: { s = xB(b, d, e) | 0; if ((s | 0) == (b | 0)) { P = b; break a; } B = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (B | 0)) { P = b; break a; } c[h >> 2] = c[(e + 12) >> 2]; vB(g, (B + -24) | 0, h); B = (e + 20) | 0; x = c[B >> 2] | 0; if (x >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[x >> 2] = 0; A = (x + 4) | 0; c[A >> 2] = 0; y = (x + 8) | 0; c[y >> 2] = 0; c[(x + 12) >> 2] = c[(g + 12) >> 2]; c[x >> 2] = c[g >> 2]; x = (g + 4) | 0; c[A >> 2] = c[x >> 2]; A = (g + 8) | 0; c[y >> 2] = c[A >> 2]; c[A >> 2] = 0; c[x >> 2] = 0; c[g >> 2] = 0; c[B >> 2] = (c[B >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); P = s; break a; break; } case 71: { s = (b + 1) | 0; B = mB(s, d, e) | 0; if ((B | 0) == (s | 0)) { P = b; break a; } s = (e + 4) | 0; x = c[s >> 2] | 0; if ((c[e >> 2] | 0) == (x | 0)) { P = b; break a; } qB((x + -24) | 0, 18656) | 0; x = ((c[s >> 2] | 0) + -24) | 0; c[h >> 2] = c[(e + 12) >> 2]; vB(g, x, h); x = (e + 20) | 0; s = c[x >> 2] | 0; if (s >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[s >> 2] = 0; A = (s + 4) | 0; c[A >> 2] = 0; y = (s + 8) | 0; c[y >> 2] = 0; c[(s + 12) >> 2] = c[(g + 12) >> 2]; c[s >> 2] = c[g >> 2]; s = (g + 4) | 0; c[A >> 2] = c[s >> 2]; A = (g + 8) | 0; c[y >> 2] = c[A >> 2]; c[A >> 2] = 0; c[s >> 2] = 0; c[g >> 2] = 0; c[x >> 2] = (c[x >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); P = B; break a; break; } case 77: { B = yB(b, d, e) | 0; if ((B | 0) == (b | 0)) { P = b; break a; } x = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (x | 0)) { P = b; break a; } c[h >> 2] = c[(e + 12) >> 2]; vB(g, (x + -24) | 0, h); x = (e + 20) | 0; s = c[x >> 2] | 0; if (s >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[s >> 2] = 0; A = (s + 4) | 0; c[A >> 2] = 0; y = (s + 8) | 0; c[y >> 2] = 0; c[(s + 12) >> 2] = c[(g + 12) >> 2]; c[s >> 2] = c[g >> 2]; s = (g + 4) | 0; c[A >> 2] = c[s >> 2]; A = (g + 8) | 0; c[y >> 2] = c[A >> 2]; c[A >> 2] = 0; c[s >> 2] = 0; c[g >> 2] = 0; c[x >> 2] = (c[x >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); P = B; break a; break; } case 79: { B = (e + 4) | 0; x = ((((c[B >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; s = (b + 1) | 0; A = mB(s, d, e) | 0; y = ((((c[B >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; if ((A | 0) == (s | 0)) { P = b; break a; } s = c[(e + 12) >> 2] | 0; c[g >> 2] = s; B = (e + 20) | 0; r = c[B >> 2] | 0; if (r >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[r >> 2] = 0; c[(r + 4) >> 2] = 0; c[(r + 8) >> 2] = 0; c[(r + 12) >> 2] = s; c[B >> 2] = (c[B >> 2] | 0) + 16; } else oB((e + 16) | 0, g); s = (g + 11) | 0; r = (g + 4) | 0; u = x; while (1) { if (u >>> 0 >= y >>> 0) { P = A; break a; } zB( g, ((c[e >> 2] | 0) + ((u * 24) | 0) + 12) | 0, 2 ); x = AB(18667) | 0; v = a[s >> 0] | 0; if ( (x | 0) == (((v << 24) >> 24 < 0 ? c[r >> 2] | 0 : v & 255) | 0) ) Q = (BB(g, 18667, x) | 0) == 0; else Q = 0; iB(g); x = c[e >> 2] | 0; v = (x + ((u * 24) | 0)) | 0; if (!Q) { t = (x + ((u * 24) | 0) + 12) | 0; if ((a[(t + 11) >> 0] | 0) < 0) R = c[t >> 2] | 0; else R = t; if ((a[R >> 0] | 0) == 40) { qB(v, 18675) | 0; pB( ((c[e >> 2] | 0) + ((u * 24) | 0) + 12) | 0, 0, 18673 ) | 0; } } else { qB(v, 18670) | 0; pB( ((c[e >> 2] | 0) + ((u * 24) | 0) + 12) | 0, 0, 18673 ) | 0; } qB( ((c[e >> 2] | 0) + ((u * 24) | 0)) | 0, 18677 ) | 0; v = c[B >> 2] | 0; t = ((c[e >> 2] | 0) + ((u * 24) | 0)) | 0; x = (v + -12) | 0; w = c[x >> 2] | 0; if ((w | 0) == (c[(v + -8) >> 2] | 0)) sB((v + -16) | 0, t); else { rB(w, t); c[x >> 2] = (c[x >> 2] | 0) + 24; } u = (u + 1) | 0; } break; } case 80: { u = (e + 4) | 0; B = ((((c[u >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; r = (b + 1) | 0; s = mB(r, d, e) | 0; A = ((((c[u >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; if ((s | 0) == (r | 0)) { P = b; break a; } u = c[(e + 12) >> 2] | 0; c[g >> 2] = u; y = (e + 20) | 0; x = c[y >> 2] | 0; if (x >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[x >> 2] = 0; c[(x + 4) >> 2] = 0; c[(x + 8) >> 2] = 0; c[(x + 12) >> 2] = u; c[y >> 2] = (c[y >> 2] | 0) + 16; } else oB((e + 16) | 0, g); u = (g + 11) | 0; x = (g + 4) | 0; t = (g + 11) | 0; w = (g + 4) | 0; v = B; while (1) { if (v >>> 0 >= A >>> 0) { P = s; break a; } zB( g, ((c[e >> 2] | 0) + ((v * 24) | 0) + 12) | 0, 2 ); B = AB(18667) | 0; F = a[u >> 0] | 0; if ( (B | 0) == (((F << 24) >> 24 < 0 ? c[x >> 2] | 0 : F & 255) | 0) ) S = (BB(g, 18667, B) | 0) == 0; else S = 0; iB(g); B = c[e >> 2] | 0; F = (B + ((v * 24) | 0)) | 0; if (!S) { J = (B + ((v * 24) | 0) + 12) | 0; if ((a[(J + 11) >> 0] | 0) < 0) T = c[J >> 2] | 0; else T = J; if ((a[T >> 0] | 0) == 40) { qB(F, 18675) | 0; pB( ((c[e >> 2] | 0) + ((v * 24) | 0) + 12) | 0, 0, 18673 ) | 0; } } else { qB(F, 18670) | 0; pB( ((c[e >> 2] | 0) + ((v * 24) | 0) + 12) | 0, 0, 18673 ) | 0; } if ((a[r >> 0] | 0) == 85) { zB( g, ((c[e >> 2] | 0) + ((v * 24) | 0)) | 0, 12 ); F = AB(18680) | 0; J = a[t >> 0] | 0; if ( (F | 0) == (((J << 24) >> 24 < 0 ? c[w >> 2] | 0 : J & 255) | 0) ) U = (BB(g, 18680, F) | 0) != 0; else U = 1; iB(g); F = ((c[e >> 2] | 0) + ((v * 24) | 0)) | 0; if (U) { V = F; W = 113; } else CB(F); } else { V = ((c[e >> 2] | 0) + ((v * 24) | 0)) | 0; W = 113; } if ((W | 0) == 113) { W = 0; qB(V, 18693) | 0; } F = c[y >> 2] | 0; J = ((c[e >> 2] | 0) + ((v * 24) | 0)) | 0; B = (F + -12) | 0; D = c[B >> 2] | 0; if ((D | 0) == (c[(F + -8) >> 2] | 0)) sB((F + -16) | 0, J); else { rB(D, J); c[B >> 2] = (c[B >> 2] | 0) + 24; } v = (v + 1) | 0; } break; } case 82: { v = (e + 4) | 0; y = ((((c[v >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; w = (b + 1) | 0; t = mB(w, d, e) | 0; r = ((((c[v >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; if ((t | 0) == (w | 0)) { P = b; break a; } w = c[(e + 12) >> 2] | 0; c[g >> 2] = w; v = (e + 20) | 0; x = c[v >> 2] | 0; if (x >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[x >> 2] = 0; c[(x + 4) >> 2] = 0; c[(x + 8) >> 2] = 0; c[(x + 12) >> 2] = w; c[v >> 2] = (c[v >> 2] | 0) + 16; } else oB((e + 16) | 0, g); w = (g + 11) | 0; x = (g + 4) | 0; u = y; while (1) { if (u >>> 0 >= r >>> 0) { P = t; break a; } zB( g, ((c[e >> 2] | 0) + ((u * 24) | 0) + 12) | 0, 2 ); y = AB(18667) | 0; s = a[w >> 0] | 0; if ( (y | 0) == (((s << 24) >> 24 < 0 ? c[x >> 2] | 0 : s & 255) | 0) ) X = (BB(g, 18667, y) | 0) == 0; else X = 0; iB(g); y = c[e >> 2] | 0; s = (y + ((u * 24) | 0)) | 0; if (!X) { A = (y + ((u * 24) | 0) + 12) | 0; if ((a[(A + 11) >> 0] | 0) < 0) Y = c[A >> 2] | 0; else Y = A; if ((a[Y >> 0] | 0) == 40) { qB(s, 18675) | 0; pB( ((c[e >> 2] | 0) + ((u * 24) | 0) + 12) | 0, 0, 18673 ) | 0; } } else { qB(s, 18670) | 0; pB( ((c[e >> 2] | 0) + ((u * 24) | 0) + 12) | 0, 0, 18673 ) | 0; } qB( ((c[e >> 2] | 0) + ((u * 24) | 0)) | 0, 18695 ) | 0; s = c[v >> 2] | 0; A = ((c[e >> 2] | 0) + ((u * 24) | 0)) | 0; y = (s + -12) | 0; B = c[y >> 2] | 0; if ((B | 0) == (c[(s + -8) >> 2] | 0)) sB((s + -16) | 0, A); else { rB(B, A); c[y >> 2] = (c[y >> 2] | 0) + 24; } u = (u + 1) | 0; } break; } case 84: { u = (e + 4) | 0; v = ((((c[u >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; x = DB(b, d, e) | 0; w = ((((c[u >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; if ((x | 0) == (b | 0)) { P = b; break a; } t = (e + 16) | 0; r = (e + 12) | 0; y = c[r >> 2] | 0; c[g >> 2] = y; A = (e + 20) | 0; B = c[A >> 2] | 0; s = (e + 24) | 0; if (B >>> 0 < (c[s >> 2] | 0) >>> 0) { c[B >> 2] = 0; c[(B + 4) >> 2] = 0; c[(B + 8) >> 2] = 0; c[(B + 12) >> 2] = y; c[A >> 2] = (c[A >> 2] | 0) + 16; } else oB(t, g); y = v; while (1) { if (y >>> 0 >= w >>> 0) break; B = c[A >> 2] | 0; J = ((c[e >> 2] | 0) + ((y * 24) | 0)) | 0; D = (B + -12) | 0; F = c[D >> 2] | 0; if ((F | 0) == (c[(B + -8) >> 2] | 0)) sB((B + -16) | 0, J); else { rB(F, J); c[D >> 2] = (c[D >> 2] | 0) + 24; } y = (y + 1) | 0; } if ( !( ((w | 0) == ((v + 1) | 0)) & ((a[(e + 63) >> 0] | 0) != 0) ) ) { P = x; break a; } y = EB(x, d, e) | 0; if ((y | 0) == (x | 0)) { P = x; break a; } FB(g, ((c[u >> 2] | 0) + -24) | 0); D = c[u >> 2] | 0; J = 0; while (1) { if ((J | 0) == -1) break; F = (J + -1) | 0; QA((D + ((F * 24) | 0)) | 0); J = F; } c[u >> 2] = D + -24; J = a[(g + 11) >> 0] | 0; x = (J << 24) >> 24 < 0; TA( (D + -48) | 0, x ? c[g >> 2] | 0 : g, x ? c[(g + 4) >> 2] | 0 : J & 255 ) | 0; J = ((c[u >> 2] | 0) + -24) | 0; c[i >> 2] = c[r >> 2]; vB(h, J, i); J = c[A >> 2] | 0; if (J >>> 0 < (c[s >> 2] | 0) >>> 0) { c[J >> 2] = 0; x = (J + 4) | 0; c[x >> 2] = 0; v = (J + 8) | 0; c[v >> 2] = 0; c[(J + 12) >> 2] = c[(h + 12) >> 2]; c[J >> 2] = c[h >> 2]; J = (h + 4) | 0; c[x >> 2] = c[J >> 2]; x = (h + 8) | 0; c[v >> 2] = c[x >> 2]; c[x >> 2] = 0; c[J >> 2] = 0; c[h >> 2] = 0; c[A >> 2] = (c[A >> 2] | 0) + 16; } else wB(t, h); RA(h); iB(g); P = y; break a; break; } case 85: { J = (b + 1) | 0; if ((J | 0) == (d | 0)) { P = b; break a; } x = GB(J, d, e) | 0; if ((x | 0) == (J | 0)) { P = b; break a; } J = mB(x, d, e) | 0; if ((J | 0) == (x | 0)) { P = b; break a; } x = (e + 4) | 0; v = c[x >> 2] | 0; if ( ((((v - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { P = b; break a; } FB(g, (v + -24) | 0); v = c[x >> 2] | 0; w = 0; while (1) { if ((w | 0) == -1) break; F = (w + -1) | 0; QA((v + ((F * 24) | 0)) | 0); w = F; } c[x >> 2] = v + -24; zB(h, (v + -48) | 0, 9); w = AB(18697) | 0; y = a[(h + 11) >> 0] | 0; if ( (w | 0) == (((y << 24) >> 24 < 0 ? c[(h + 4) >> 2] | 0 : y & 255) | 0) ) { y = (BB(h, 18697, w) | 0) == 0; iB(h); if (y) { FB(h, ((c[x >> 2] | 0) + -24) | 0); y = c[x >> 2] | 0; w = 0; while (1) { if ((w | 0) == -1) break; t = (w + -1) | 0; QA((y + ((t * 24) | 0)) | 0); w = t; } c[x >> 2] = y + -24; w = (h + 11) | 0; v = a[w >> 0] | 0; t = (v << 24) >> 24 < 0; A = (h + 4) | 0; s = t ? c[h >> 2] | 0 : h; r = GB( (s + 9) | 0, (s + (t ? c[A >> 2] | 0 : v & 255)) | 0, e ) | 0; if ( (r | 0) == ((((a[w >> 0] | 0) < 0 ? c[h >> 2] | 0 : h) + 9) | 0) ) { HB(k, g, 18707); r = a[w >> 0] | 0; w = (r << 24) >> 24 < 0; TA( k, w ? c[h >> 2] | 0 : h, w ? c[A >> 2] | 0 : r & 255 ) | 0; c[p >> 2] = c[k >> 2]; c[(p + 4) >> 2] = c[(k + 4) >> 2]; c[(p + 8) >> 2] = c[(k + 8) >> 2]; r = 0; while (1) { if ((r | 0) == 3) break; c[(k + (r << 2)) >> 2] = 0; r = (r + 1) | 0; } IB(i, p); r = c[x >> 2] | 0; if (r >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(r, i); c[x >> 2] = (c[x >> 2] | 0) + 24; } else LB(e, i); QA(i); iB(p); iB(k); } else { HB(n, g, 18709); FB(o, ((c[x >> 2] | 0) + -24) | 0); r = a[(o + 11) >> 0] | 0; y = (r << 24) >> 24 < 0; TA( n, y ? c[o >> 2] | 0 : o, y ? c[(o + 4) >> 2] | 0 : r & 255 ) | 0; c[k >> 2] = c[n >> 2]; c[(k + 4) >> 2] = c[(n + 4) >> 2]; c[(k + 8) >> 2] = c[(n + 8) >> 2]; r = 0; while (1) { if ((r | 0) == 3) break; c[(n + (r << 2)) >> 2] = 0; r = (r + 1) | 0; } qB(k, 18711) | 0; c[m >> 2] = c[k >> 2]; c[(m + 4) >> 2] = c[(k + 4) >> 2]; c[(m + 8) >> 2] = c[(k + 8) >> 2]; r = 0; while (1) { if ((r | 0) == 3) break; c[(k + (r << 2)) >> 2] = 0; r = (r + 1) | 0; } IB(i, m); JB(((c[x >> 2] | 0) + -24) | 0, i); QA(i); iB(m); iB(k); iB(o); iB(n); } iB(h); } else W = 167; } else { iB(h); W = 167; } if ((W | 0) == 167) { HB(i, g, 18707); FB(k, ((c[x >> 2] | 0) + -24) | 0); r = a[(k + 11) >> 0] | 0; y = (r << 24) >> 24 < 0; TA( i, y ? c[k >> 2] | 0 : k, y ? c[(k + 4) >> 2] | 0 : r & 255 ) | 0; c[j >> 2] = c[i >> 2]; c[(j + 4) >> 2] = c[(i + 4) >> 2]; c[(j + 8) >> 2] = c[(i + 8) >> 2]; r = 0; while (1) { if ((r | 0) == 3) break; c[(i + (r << 2)) >> 2] = 0; r = (r + 1) | 0; } IB(h, j); JB(((c[x >> 2] | 0) + -24) | 0, h); QA(h); iB(j); iB(k); iB(i); } r = ((c[x >> 2] | 0) + -24) | 0; c[i >> 2] = c[(e + 12) >> 2]; vB(h, r, i); r = (e + 20) | 0; y = c[r >> 2] | 0; if (y >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[y >> 2] = 0; A = (y + 4) | 0; c[A >> 2] = 0; w = (y + 8) | 0; c[w >> 2] = 0; c[(y + 12) >> 2] = c[(h + 12) >> 2]; c[y >> 2] = c[h >> 2]; y = (h + 4) | 0; c[A >> 2] = c[y >> 2]; A = (h + 8) | 0; c[w >> 2] = c[A >> 2]; c[A >> 2] = 0; c[y >> 2] = 0; c[h >> 2] = 0; c[r >> 2] = (c[r >> 2] | 0) + 16; } else wB((e + 16) | 0, h); RA(h); iB(g); P = J; break a; break; } case 83: { r = (b + 1) | 0; if ( (r | 0) != (d | 0) ? (a[r >> 0] | 0) == 116 : 0 ) { r = MB(b, d, e) | 0; if ((r | 0) == (b | 0)) { P = b; break a; } y = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (y | 0)) { P = b; break a; } c[h >> 2] = c[(e + 12) >> 2]; vB(g, (y + -24) | 0, h); y = (e + 20) | 0; A = c[y >> 2] | 0; if (A >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[A >> 2] = 0; w = (A + 4) | 0; c[w >> 2] = 0; v = (A + 8) | 0; c[v >> 2] = 0; c[(A + 12) >> 2] = c[(g + 12) >> 2]; c[A >> 2] = c[g >> 2]; A = (g + 4) | 0; c[w >> 2] = c[A >> 2]; w = (g + 8) | 0; c[v >> 2] = c[w >> 2]; c[w >> 2] = 0; c[A >> 2] = 0; c[g >> 2] = 0; c[y >> 2] = (c[y >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); P = r; break a; } r = NB(b, d, e) | 0; if ((r | 0) == (b | 0)) { P = b; break a; } y = EB(r, d, e) | 0; if ((y | 0) == (r | 0)) { P = r; break a; } A = (e + 4) | 0; w = c[A >> 2] | 0; if ( ((((w - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { P = r; break a; } FB(g, (w + -24) | 0); w = c[A >> 2] | 0; r = 0; while (1) { if ((r | 0) == -1) break; v = (r + -1) | 0; QA((w + ((v * 24) | 0)) | 0); r = v; } c[A >> 2] = w + -24; r = a[(g + 11) >> 0] | 0; J = (r << 24) >> 24 < 0; TA( (w + -48) | 0, J ? c[g >> 2] | 0 : g, J ? c[(g + 4) >> 2] | 0 : r & 255 ) | 0; r = ((c[A >> 2] | 0) + -24) | 0; c[i >> 2] = c[(e + 12) >> 2]; vB(h, r, i); r = (e + 20) | 0; J = c[r >> 2] | 0; if (J >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[J >> 2] = 0; x = (J + 4) | 0; c[x >> 2] = 0; v = (J + 8) | 0; c[v >> 2] = 0; c[(J + 12) >> 2] = c[(h + 12) >> 2]; c[J >> 2] = c[h >> 2]; J = (h + 4) | 0; c[x >> 2] = c[J >> 2]; x = (h + 8) | 0; c[v >> 2] = c[x >> 2]; c[x >> 2] = 0; c[J >> 2] = 0; c[h >> 2] = 0; c[r >> 2] = (c[r >> 2] | 0) + 16; } else wB((e + 16) | 0, h); RA(h); iB(g); P = y; break a; break; } case 68: { r = (b + 1) | 0; if ((r | 0) != (d | 0)) switch (a[r >> 0] | 0) { case 112: { r = (e + 4) | 0; J = ((((c[r >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; x = (b + 2) | 0; v = mB(x, d, e) | 0; t = ((((c[r >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; if ((v | 0) == (x | 0)) break c; x = c[(e + 12) >> 2] | 0; c[g >> 2] = x; r = (e + 20) | 0; s = c[r >> 2] | 0; if ( s >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0 ) { c[s >> 2] = 0; c[(s + 4) >> 2] = 0; c[(s + 8) >> 2] = 0; c[(s + 12) >> 2] = x; c[r >> 2] = (c[r >> 2] | 0) + 16; } else oB((e + 16) | 0, g); x = J; while (1) { if (x >>> 0 >= t >>> 0) { P = v; break a; } J = c[r >> 2] | 0; s = ((c[e >> 2] | 0) + ((x * 24) | 0)) | 0; u = (J + -12) | 0; D = c[u >> 2] | 0; if ((D | 0) == (c[(J + -8) >> 2] | 0)) sB((J + -16) | 0, s); else { rB(D, s); c[u >> 2] = (c[u >> 2] | 0) + 24; } x = (x + 1) | 0; } break; } case 84: case 116: { x = OB(b, d, e) | 0; if ((x | 0) == (b | 0)) break c; r = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (r | 0)) { P = b; break a; } c[h >> 2] = c[(e + 12) >> 2]; vB(g, (r + -24) | 0, h); r = (e + 20) | 0; v = c[r >> 2] | 0; if ( v >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0 ) { c[v >> 2] = 0; t = (v + 4) | 0; c[t >> 2] = 0; y = (v + 8) | 0; c[y >> 2] = 0; c[(v + 12) >> 2] = c[(g + 12) >> 2]; c[v >> 2] = c[g >> 2]; v = (g + 4) | 0; c[t >> 2] = c[v >> 2]; t = (g + 8) | 0; c[y >> 2] = c[t >> 2]; c[t >> 2] = 0; c[v >> 2] = 0; c[g >> 2] = 0; c[r >> 2] = (c[r >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); P = x; break a; break; } case 118: { x = PB(b, d, e) | 0; if ((x | 0) == (b | 0)) break c; r = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (r | 0)) { P = b; break a; } c[h >> 2] = c[(e + 12) >> 2]; vB(g, (r + -24) | 0, h); r = (e + 20) | 0; v = c[r >> 2] | 0; if ( v >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0 ) { c[v >> 2] = 0; t = (v + 4) | 0; c[t >> 2] = 0; y = (v + 8) | 0; c[y >> 2] = 0; c[(v + 12) >> 2] = c[(g + 12) >> 2]; c[v >> 2] = c[g >> 2]; v = (g + 4) | 0; c[t >> 2] = c[v >> 2]; t = (g + 8) | 0; c[y >> 2] = c[t >> 2]; c[t >> 2] = 0; c[v >> 2] = 0; c[g >> 2] = 0; c[r >> 2] = (c[r >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); P = x; break a; break; } default: break c; } break; } default: { } } } while (0); x = tB(b, d, e) | 0; if ((x | 0) == (b | 0)) { r = MB(b, d, e) | 0; if ( (r | 0) != (b | 0) ? ((v = c[(e + 4) >> 2] | 0), (c[e >> 2] | 0) != (v | 0)) : 0 ) { c[h >> 2] = c[(e + 12) >> 2]; vB(g, (v + -24) | 0, h); v = (e + 20) | 0; t = c[v >> 2] | 0; if (t >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[t >> 2] = 0; y = (t + 4) | 0; c[y >> 2] = 0; A = (t + 8) | 0; c[A >> 2] = 0; c[(t + 12) >> 2] = c[(g + 12) >> 2]; c[t >> 2] = c[g >> 2]; t = (g + 4) | 0; c[y >> 2] = c[t >> 2]; y = (g + 8) | 0; c[A >> 2] = c[y >> 2]; c[y >> 2] = 0; c[t >> 2] = 0; c[g >> 2] = 0; c[v >> 2] = (c[v >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); P = r; } else P = b; } else P = x; } else P = q; } else P = b; } while (0); l = f; return P | 0; } function nB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; c[e >> 2] = 0; if ((b | 0) != (d | 0)) { d = a[b >> 0] | 0; if ((d << 24) >> 24 == 114) { c[e >> 2] = 4; f = (b + 1) | 0; g = f; h = 4; i = a[f >> 0] | 0; } else { g = b; h = 0; i = d; } if ((i << 24) >> 24 == 86) { d = h | 2; c[e >> 2] = d; f = (g + 1) | 0; j = f; k = a[f >> 0] | 0; l = d; } else { j = g; k = i; l = h; } if ((k << 24) >> 24 == 75) { c[e >> 2] = l | 1; m = (j + 1) | 0; } else m = j; } else m = b; return m | 0; } function oB(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; d = l; l = (l + 32) | 0; e = d; f = (a + 4) | 0; g = ((((c[f >> 2] | 0) - (c[a >> 2] | 0)) >> 4) + 1) | 0; h = AD(a) | 0; if (h >>> 0 < g >>> 0) Wz(a); else { i = c[a >> 2] | 0; j = ((c[(a + 8) >> 2] | 0) - i) | 0; k = j >> 3; BD( e, (j >> 4) >>> 0 < (h >>> 1) >>> 0 ? k >>> 0 < g >>> 0 ? g : k : h, ((c[f >> 2] | 0) - i) >> 4, (a + 12) | 0 ); i = (e + 8) | 0; f = c[i >> 2] | 0; c[f >> 2] = 0; c[(f + 4) >> 2] = 0; c[(f + 8) >> 2] = 0; c[(f + 12) >> 2] = c[b >> 2]; c[i >> 2] = f + 16; CD(a, e); DD(e); l = d; return; } } function pB(a, b, c) { a = a | 0; b = b | 0; c = c | 0; return zD(a, b, c, AB(c) | 0) | 0; } function qB(a, b) { a = a | 0; b = b | 0; return TA(a, b, AB(b) | 0) | 0; } function rB(a, b) { a = a | 0; b = b | 0; TC(a, b); TC((a + 12) | 0, (b + 12) | 0); return; } function sB(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; d = l; l = (l + 32) | 0; e = d; f = (a + 4) | 0; g = ((((((c[f >> 2] | 0) - (c[a >> 2] | 0)) | 0) / 24) | 0) + 1) | 0; h = XC(a) | 0; if (h >>> 0 < g >>> 0) Wz(a); else { i = c[a >> 2] | 0; j = ((((c[(a + 8) >> 2] | 0) - i) | 0) / 24) | 0; k = j << 1; YC( e, j >>> 0 < (h >>> 1) >>> 0 ? k >>> 0 < g >>> 0 ? g : k : h, ((((c[f >> 2] | 0) - i) | 0) / 24) | 0, (a + 12) | 0 ); i = (e + 8) | 0; f = c[i >> 2] | 0; rB(f, b); c[i >> 2] = f + 24; ZC(a, e); _C(e); l = d; return; } } function tB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0; f = l; l = (l + 32) | 0; g = f; a: do { if ((b | 0) == (d | 0)) h = b; else do { switch (a[b >> 0] | 0) { case 118: { cD(g, 20112); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 119: { HD(g); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 98: { cD(g, 20117); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 99: { cD(g, 19886); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 97: { JC(g, 19891); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 104: { gD(g, 19903); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 115: { sC(g, 19917); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 116: { KC(g, 19923); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 105: { ID(g, 20122); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 106: { LC(g, 20126); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 108: { cD(g, 20139); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 109: { gD(g, 20144); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 120: { GC(g, 20158); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 121: { JD(g); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 110: { KD(g, 19952); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 111: { HC(g, 19961); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 102: { sC(g, 20168); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 100: { LD(g); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 101: { JC(g, 20174); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 103: { FC(g, 20186); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 122: { ID(g, 20197); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 1) | 0; break a; break; } case 117: { i = (b + 1) | 0; j = GB(i, d, e) | 0; h = (j | 0) == (i | 0) ? b : j; break a; break; } case 68: { j = (b + 1) | 0; if ((j | 0) == (d | 0)) { h = b; break a; } switch (a[j >> 0] | 0) { case 100: { GC(g, 20201); j = (e + 4) | 0; i = c[j >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[j >> 2] = (c[j >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 2) | 0; break a; break; } case 101: { FC(g, 20211); j = (e + 4) | 0; i = c[j >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[j >> 2] = (c[j >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 2) | 0; break a; break; } case 102: { GC(g, 20222); j = (e + 4) | 0; i = c[j >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[j >> 2] = (c[j >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 2) | 0; break a; break; } case 104: { GC(g, 20232); j = (e + 4) | 0; i = c[j >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[j >> 2] = (c[j >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 2) | 0; break a; break; } case 105: { KD(g, 20242); j = (e + 4) | 0; i = c[j >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[j >> 2] = (c[j >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 2) | 0; break a; break; } case 115: { KD(g, 20251); j = (e + 4) | 0; i = c[j >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[j >> 2] = (c[j >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 2) | 0; break a; break; } case 97: { cD(g, 20260); j = (e + 4) | 0; i = c[j >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[j >> 2] = (c[j >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 2) | 0; break a; break; } case 110: { KC(g, 20265); j = (e + 4) | 0; i = c[j >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[j >> 2] = (c[j >> 2] | 0) + 24; } else LB(e, g); QA(g); h = (b + 2) | 0; break a; break; } default: { h = b; break a; } } break; } default: { h = b; break a; } } } while (0); } while (0); l = f; return h | 0; } function uB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; f = l; l = (l + 112) | 0; g = (f + 96) | 0; h = (f + 72) | 0; i = (f + 48) | 0; j = (f + 36) | 0; k = (f + 24) | 0; m = (f + 12) | 0; n = f; do { if ( ((b | 0) != (d | 0) ? (a[b >> 0] | 0) == 65 : 0) ? ((o = (b + 1) | 0), (o | 0) != (d | 0)) : 0 ) { p = a[o >> 0] | 0; if ((p << 24) >> 24 == 95) { q = (b + 2) | 0; r = mB(q, d, e) | 0; if ((r | 0) == (q | 0)) { s = b; break; } q = (e + 4) | 0; t = c[q >> 2] | 0; if ((c[e >> 2] | 0) == (t | 0)) { s = b; break; } zB(g, (t + -12) | 0, 2); t = AB(18667) | 0; u = a[(g + 11) >> 0] | 0; if ( (t | 0) == (((u << 24) >> 24 < 0 ? c[(g + 4) >> 2] | 0 : u & 255) | 0) ) { u = (BB(g, 18667, t) | 0) == 0; iB(g); if (u) GD(((c[q >> 2] | 0) + -12) | 0); } else iB(g); pB(((c[q >> 2] | 0) + -12) | 0, 0, 20108) | 0; s = r; break; } if (((p + -49) & 255) < 9) { p = QB(o, d) | 0; if ((p | 0) == (d | 0)) { s = b; break; } if ((a[p >> 0] | 0) != 95) { s = b; break; } r = (p + 1) | 0; q = mB(r, d, e) | 0; if ((q | 0) == (r | 0)) { s = b; break; } r = (e + 4) | 0; u = c[r >> 2] | 0; if ((c[e >> 2] | 0) == (u | 0)) { s = b; break; } zB(g, (u + -12) | 0, 2); u = AB(18667) | 0; t = a[(g + 11) >> 0] | 0; if ( (u | 0) == (((t << 24) >> 24 < 0 ? c[(g + 4) >> 2] | 0 : t & 255) | 0) ) { t = (BB(g, 18667, u) | 0) == 0; iB(g); if (t) GD(((c[r >> 2] | 0) + -12) | 0); } else iB(g); t = ((c[r >> 2] | 0) + -12) | 0; c[i >> 2] = 0; c[(i + 4) >> 2] = 0; c[(i + 8) >> 2] = 0; QC(i, o, p); pB(i, 0, 18667) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; p = 0; while (1) { if ((p | 0) == 3) break; c[(i + (p << 2)) >> 2] = 0; p = (p + 1) | 0; } qB(h, 18722) | 0; c[g >> 2] = c[h >> 2]; c[(g + 4) >> 2] = c[(h + 4) >> 2]; c[(g + 8) >> 2] = c[(h + 8) >> 2]; p = 0; while (1) { if ((p | 0) == 3) break; c[(h + (p << 2)) >> 2] = 0; p = (p + 1) | 0; } p = a[(g + 11) >> 0] | 0; r = (p << 24) >> 24 < 0; zD( t, 0, r ? c[g >> 2] | 0 : g, r ? c[(g + 4) >> 2] | 0 : p & 255 ) | 0; iB(g); iB(h); iB(i); s = q; break; } p = SB(o, d, e) | 0; if ( ( ( !(((p | 0) == (o | 0)) | ((p | 0) == (d | 0))) ? (a[p >> 0] | 0) == 95 : 0 ) ? ((r = (p + 1) | 0), (p = mB(r, d, e) | 0), (p | 0) != (r | 0)) : 0 ) ? ((r = (e + 4) | 0), (u = c[r >> 2] | 0), ((((u - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) : 0 ) { KB(h, (u + -24) | 0); u = c[r >> 2] | 0; v = 0; while (1) { if ((v | 0) == -1) break; w = (v + -1) | 0; QA((u + ((w * 24) | 0)) | 0); v = w; } c[r >> 2] = u + -24; KB(i, (u + -48) | 0); v = c[r >> 2] | 0; o = (v + -24) | 0; q = (o + 11) | 0; if ((a[q >> 0] | 0) < 0) { t = c[o >> 2] | 0; a[g >> 0] = 0; cB(t, g); c[(v + -20) >> 2] = 0; } else { a[g >> 0] = 0; cB(o, g); a[q >> 0] = 0; } TB(o); c[o >> 2] = c[h >> 2]; c[(o + 4) >> 2] = c[(h + 4) >> 2]; c[(o + 8) >> 2] = c[(h + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(h + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } o = (h + 12) | 0; zB(g, o, 2); u = AB(18667) | 0; q = a[(g + 11) >> 0] | 0; if ( (u | 0) == (((q << 24) >> 24 < 0 ? c[(g + 4) >> 2] | 0 : q & 255) | 0) ) { q = (BB(g, 18667, u) | 0) == 0; iB(g); if (q) GD(o); } else iB(g); FB(n, i); pB(n, 0, 18667) | 0; c[m >> 2] = c[n >> 2]; c[(m + 4) >> 2] = c[(n + 4) >> 2]; c[(m + 8) >> 2] = c[(n + 8) >> 2]; q = 0; while (1) { if ((q | 0) == 3) break; c[(n + (q << 2)) >> 2] = 0; q = (q + 1) | 0; } qB(m, 18722) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; q = 0; while (1) { if ((q | 0) == 3) break; c[(m + (q << 2)) >> 2] = 0; q = (q + 1) | 0; } q = a[(o + 11) >> 0] | 0; u = (q << 24) >> 24 < 0; TA( k, u ? c[o >> 2] | 0 : o, u ? c[(h + 16) >> 2] | 0 : q & 255 ) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; q = 0; while (1) { if ((q | 0) == 3) break; c[(k + (q << 2)) >> 2] = 0; q = (q + 1) | 0; } q = c[r >> 2] | 0; o = (q + -12) | 0; u = (o + 11) | 0; if ((a[u >> 0] | 0) < 0) { v = c[o >> 2] | 0; a[g >> 0] = 0; cB(v, g); c[(q + -8) >> 2] = 0; } else { a[g >> 0] = 0; cB(o, g); a[u >> 0] = 0; } TB(o); c[o >> 2] = c[j >> 2]; c[(o + 4) >> 2] = c[(j + 4) >> 2]; c[(o + 8) >> 2] = c[(j + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(j + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } iB(j); iB(k); iB(m); iB(n); QA(i); QA(h); s = p; } else s = b; } else s = b; } while (0); l = f; return s | 0; } function vB(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0; c[a >> 2] = 0; e = (a + 4) | 0; c[e >> 2] = 0; c[(a + 8) >> 2] = 0; c[(a + 12) >> 2] = c[d >> 2]; FD(a); rB(c[e >> 2] | 0, b); c[e >> 2] = (c[e >> 2] | 0) + 24; return; } function wB(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; d = l; l = (l + 32) | 0; e = d; f = (a + 4) | 0; g = ((((c[f >> 2] | 0) - (c[a >> 2] | 0)) >> 4) + 1) | 0; h = AD(a) | 0; if (h >>> 0 < g >>> 0) Wz(a); else { i = c[a >> 2] | 0; j = ((c[(a + 8) >> 2] | 0) - i) | 0; k = j >> 3; BD( e, (j >> 4) >>> 0 < (h >>> 1) >>> 0 ? k >>> 0 < g >>> 0 ? g : k : h, ((c[f >> 2] | 0) - i) >> 4, (a + 12) | 0 ); i = (e + 8) | 0; f = c[i >> 2] | 0; c[f >> 2] = 0; h = (f + 4) | 0; c[h >> 2] = 0; k = (f + 8) | 0; c[k >> 2] = 0; c[(f + 12) >> 2] = c[(b + 12) >> 2]; c[f >> 2] = c[b >> 2]; g = (b + 4) | 0; c[h >> 2] = c[g >> 2]; h = (b + 8) | 0; c[k >> 2] = c[h >> 2]; c[h >> 2] = 0; c[g >> 2] = 0; c[b >> 2] = 0; c[i >> 2] = f + 16; CD(a, e); DD(e); l = d; return; } } function xB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; f = l; l = (l + 32) | 0; g = (f + 12) | 0; h = f; do { if ( ((b | 0) != (d | 0) ? (a[b >> 0] | 0) == 70 : 0) ? ((i = (b + 1) | 0), (i | 0) != (d | 0)) : 0 ) { if ((a[i >> 0] | 0) == 89) { j = (b + 2) | 0; if ((j | 0) == (d | 0)) { k = b; break; } else m = j; } else m = i; i = mB(m, d, e) | 0; if ((i | 0) != (m | 0)) { c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18675, AB(18675) | 0); j = (e + 4) | 0; n = (g + 11) | 0; o = (g + 4) | 0; p = (h + 11) | 0; q = (h + 4) | 0; r = 0; s = i; a: while (1) { t = s; b: while (1) { if ((t | 0) == (d | 0)) { u = 11; break a; } switch (a[t >> 0] | 0) { case 69: { u = 16; break a; break; } case 118: { v = (t + 1) | 0; break; } case 82: { i = (t + 1) | 0; if ( (i | 0) != (d | 0) ? (a[i >> 0] | 0) == 69 : 0 ) { w = 1; x = i; break b; } else u = 23; break; } case 79: { i = (t + 1) | 0; if ( (i | 0) != (d | 0) ? (a[i >> 0] | 0) == 69 : 0 ) { w = 2; x = i; break b; } else u = 23; break; } default: u = 23; } c: do { if ((u | 0) == 23) { u = 0; i = ((((c[j >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; y = mB(t, d, e) | 0; z = ((((c[j >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; if (((y | 0) == (t | 0)) | ((y | 0) == (d | 0))) break a; A = i; while (1) { if (A >>> 0 >= z >>> 0) break; B = a[n >> 0] | 0; if ( ((B << 24) >> 24 < 0 ? c[o >> 2] | 0 : B & 255) >>> 0 > 1 ) qB(g, 18897) | 0; FB(h, ((c[e >> 2] | 0) + ((A * 24) | 0)) | 0); B = a[p >> 0] | 0; C = (B << 24) >> 24 < 0; TA( g, C ? c[h >> 2] | 0 : h, C ? c[q >> 2] | 0 : B & 255 ) | 0; iB(h); A = (A + 1) | 0; } A = i; while (1) { if (A >>> 0 >= z >>> 0) { v = y; break c; } B = c[j >> 2] | 0; C = 0; while (1) { if ((C | 0) == -1) break; D = (C + -1) | 0; QA((B + ((D * 24) | 0)) | 0); C = D; } c[j >> 2] = B + -24; A = (A + 1) | 0; } } } while (0); t = v; } r = w; s = x; } if ((u | 0) == 11) { s = c[j >> 2] | 0; q = 0; while (1) { if ((q | 0) == -1) break; p = (q + -1) | 0; QA((s + ((p * 24) | 0)) | 0); q = p; } c[j >> 2] = s + -24; } else if ((u | 0) == 16) { q = (t + 1) | 0; qB(g, 18673) | 0; switch (r & 3) { case 1: { qB(g, 20101) | 0; break; } case 2: { qB(g, 20104) | 0; break; } default: { } } p = c[j >> 2] | 0; if ((c[e >> 2] | 0) != (p | 0)) { qB((p + -24) | 0, 18707) | 0; p = a[n >> 0] | 0; A = (p << 24) >> 24 < 0; zD( ((c[j >> 2] | 0) + -12) | 0, 0, A ? c[g >> 2] | 0 : g, A ? c[o >> 2] | 0 : p & 255 ) | 0; iB(g); k = q; break; } } iB(g); k = b; } else k = b; } else k = b; } while (0); l = f; return k | 0; } function yB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; f = l; l = (l + 112) | 0; g = (f + 96) | 0; h = (f + 72) | 0; i = (f + 48) | 0; j = (f + 36) | 0; k = (f + 24) | 0; m = (f + 12) | 0; n = f; if ( ( ( ((b | 0) != (d | 0) ? (a[b >> 0] | 0) == 77 : 0) ? ((o = (b + 1) | 0), (p = mB(o, d, e) | 0), (p | 0) != (o | 0)) : 0 ) ? ((o = mB(p, d, e) | 0), (o | 0) != (p | 0)) : 0 ) ? ((p = (e + 4) | 0), (d = c[p >> 2] | 0), ((((d - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) : 0 ) { KB(h, (d + -24) | 0); d = c[p >> 2] | 0; e = 0; while (1) { if ((e | 0) == -1) break; q = (e + -1) | 0; QA((d + ((q * 24) | 0)) | 0); e = q; } c[p >> 2] = d + -24; KB(i, (d + -48) | 0); d = (h + 12) | 0; a: do { if ( (a[ ((a[(d + 11) >> 0] | 0) < 0 ? c[d >> 2] | 0 : d) >> 0 ] | 0) == 40 ) { qB(h, 18675) | 0; c[m >> 2] = c[h >> 2]; c[(m + 4) >> 2] = c[(h + 4) >> 2]; c[(m + 8) >> 2] = c[(h + 8) >> 2]; e = 0; while (1) { if ((e | 0) == 3) break; c[(h + (e << 2)) >> 2] = 0; e = (e + 1) | 0; } FB(n, i); e = a[(n + 11) >> 0] | 0; q = (e << 24) >> 24 < 0; TA( m, q ? c[n >> 2] | 0 : n, q ? c[(n + 4) >> 2] | 0 : e & 255 ) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; e = 0; while (1) { if ((e | 0) == 3) break; c[(m + (e << 2)) >> 2] = 0; e = (e + 1) | 0; } qB(k, 20097) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; e = 0; while (1) { if ((e | 0) == 3) break; c[(k + (e << 2)) >> 2] = 0; e = (e + 1) | 0; } e = c[p >> 2] | 0; q = (e + -24) | 0; r = (q + 11) | 0; if ((a[r >> 0] | 0) < 0) { s = c[q >> 2] | 0; a[g >> 0] = 0; cB(s, g); c[(e + -20) >> 2] = 0; } else { a[g >> 0] = 0; cB(q, g); a[r >> 0] = 0; } TB(q); c[q >> 2] = c[j >> 2]; c[(q + 4) >> 2] = c[(j + 4) >> 2]; c[(q + 8) >> 2] = c[(j + 8) >> 2]; q = 0; while (1) { if ((q | 0) == 3) break; c[(j + (q << 2)) >> 2] = 0; q = (q + 1) | 0; } iB(j); iB(k); iB(n); iB(m); pB(d, 0, 18673) | 0; c[j >> 2] = c[d >> 2]; c[(j + 4) >> 2] = c[(d + 4) >> 2]; c[(j + 8) >> 2] = c[(d + 8) >> 2]; q = 0; while (1) { if ((q | 0) == 3) break; c[(d + (q << 2)) >> 2] = 0; q = (q + 1) | 0; } q = c[p >> 2] | 0; r = (q + -12) | 0; e = (r + 11) | 0; if ((a[e >> 0] | 0) < 0) { s = c[r >> 2] | 0; a[g >> 0] = 0; cB(s, g); c[(q + -8) >> 2] = 0; } else { a[g >> 0] = 0; cB(r, g); a[e >> 0] = 0; } TB(r); c[r >> 2] = c[j >> 2]; c[(r + 4) >> 2] = c[(j + 4) >> 2]; c[(r + 8) >> 2] = c[(j + 8) >> 2]; r = 0; while (1) { if ((r | 0) == 3) break; c[(j + (r << 2)) >> 2] = 0; r = (r + 1) | 0; } iB(j); } else { qB(h, 18707) | 0; c[m >> 2] = c[h >> 2]; c[(m + 4) >> 2] = c[(h + 4) >> 2]; c[(m + 8) >> 2] = c[(h + 8) >> 2]; r = 0; while (1) { if ((r | 0) == 3) break; c[(h + (r << 2)) >> 2] = 0; r = (r + 1) | 0; } FB(n, i); r = a[(n + 11) >> 0] | 0; e = (r << 24) >> 24 < 0; TA( m, e ? c[n >> 2] | 0 : n, e ? c[(n + 4) >> 2] | 0 : r & 255 ) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; r = 0; while (1) { if ((r | 0) == 3) break; c[(m + (r << 2)) >> 2] = 0; r = (r + 1) | 0; } qB(k, 20097) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; r = 0; while (1) { if ((r | 0) == 3) break; c[(k + (r << 2)) >> 2] = 0; r = (r + 1) | 0; } r = c[p >> 2] | 0; e = (r + -24) | 0; q = (e + 11) | 0; if ((a[q >> 0] | 0) < 0) { s = c[e >> 2] | 0; a[g >> 0] = 0; cB(s, g); c[(r + -20) >> 2] = 0; } else { a[g >> 0] = 0; cB(e, g); a[q >> 0] = 0; } TB(e); c[e >> 2] = c[j >> 2]; c[(e + 4) >> 2] = c[(j + 4) >> 2]; c[(e + 8) >> 2] = c[(j + 8) >> 2]; e = 0; while (1) { if ((e | 0) == 3) break; c[(j + (e << 2)) >> 2] = 0; e = (e + 1) | 0; } iB(j); iB(k); iB(n); iB(m); e = c[p >> 2] | 0; q = (e + -12) | 0; r = (q + 11) | 0; if ((a[r >> 0] | 0) < 0) { s = c[q >> 2] | 0; a[g >> 0] = 0; cB(s, g); c[(e + -8) >> 2] = 0; } else { a[g >> 0] = 0; cB(q, g); a[r >> 0] = 0; } TB(q); c[q >> 2] = c[d >> 2]; c[(q + 4) >> 2] = c[(d + 4) >> 2]; c[(q + 8) >> 2] = c[(d + 8) >> 2]; q = 0; while (1) { if ((q | 0) == 3) break a; c[(d + (q << 2)) >> 2] = 0; q = (q + 1) | 0; } } } while (0); QA(i); QA(h); t = o; } else t = b; l = f; return t | 0; } function zB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; f = a[(d + 11) >> 0] | 0; g = (f << 24) >> 24 < 0; h = g ? c[(d + 4) >> 2] | 0 : f & 255; RB(b, g ? c[d >> 2] | 0 : d, h >>> 0 < e >>> 0 ? h : e); return; } function AB(a) { a = a | 0; return Ty(a) | 0; } function BB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0; f = a[(b + 11) >> 0] | 0; g = (f << 24) >> 24 < 0; if (g) h = c[(b + 4) >> 2] | 0; else h = f & 255; if ((e | 0) == -1) xD(b); if (g) i = c[b >> 2] | 0; else i = b; b = h >>> 0 > e >>> 0; g = yD(i, d, b ? e : h) | 0; if (!g) return (h >>> 0 < e >>> 0 ? -1 : b & 1) | 0; else return g | 0; return 0; } function CB(a) { a = a | 0; wD(a, AB(20094) | 0); return; } function DB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; f = l; l = (l + 48) | 0; g = (f + 16) | 0; h = f; a: do { if (((d - b) | 0) > 1 ? (a[b >> 0] | 0) == 84 : 0) { i = a[(b + 1) >> 0] | 0; if ((i << 24) >> 24 == 95) { j = c[(e + 36) >> 2] | 0; if ((c[(e + 32) >> 2] | 0) == (j | 0)) { k = b; break; } m = c[(j + -16) >> 2] | 0; if ((m | 0) == (c[(j + -12) >> 2] | 0)) { vD(g); j = (e + 4) | 0; n = c[j >> 2] | 0; if (n >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(n, g); c[j >> 2] = (c[j >> 2] | 0) + 24; } else LB(e, g); QA(g); a[(e + 62) >> 0] = 1; k = (b + 2) | 0; break; } j = c[(m + 4) >> 2] | 0; n = (e + 4) | 0; o = (e + 8) | 0; p = c[m >> 2] | 0; while (1) { if ((p | 0) == (j | 0)) break; m = c[n >> 2] | 0; if ((m | 0) == (c[o >> 2] | 0)) sB(e, p); else { rB(m, p); c[n >> 2] = (c[n >> 2] | 0) + 24; } p = (p + 24) | 0; } k = (b + 2) | 0; break; } p = (((i << 24) >> 24) + -48) | 0; if (p >>> 0 < 10) { n = p; p = (b + 2) | 0; while (1) { if ((p | 0) == (d | 0)) { k = b; break a; } q = a[p >> 0] | 0; o = (((q << 24) >> 24) + -48) | 0; if (o >>> 0 >= 10) break; n = (o + ((n * 10) | 0)) | 0; p = (p + 1) | 0; } if ( (q << 24) >> 24 == 95 ? ((i = c[(e + 36) >> 2] | 0), (c[(e + 32) >> 2] | 0) != (i | 0)) : 0 ) { o = (n + 1) | 0; j = c[(i + -16) >> 2] | 0; m = j; if ( o >>> 0 >= (((c[(i + -12) >> 2] | 0) - j) >> 4) >>> 0 ) { j = (p + 1) | 0; c[h >> 2] = 0; c[(h + 4) >> 2] = 0; c[(h + 8) >> 2] = 0; QC(h, b, j); IB(g, h); i = (e + 4) | 0; r = c[i >> 2] | 0; if (r >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(r, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); iB(h); a[(e + 62) >> 0] = 1; k = j; break; } j = c[(m + (o << 4) + 4) >> 2] | 0; i = (e + 4) | 0; r = (e + 8) | 0; s = c[(m + (o << 4)) >> 2] | 0; while (1) { if ((s | 0) == (j | 0)) break; o = c[i >> 2] | 0; if ((o | 0) == (c[r >> 2] | 0)) sB(e, s); else { rB(o, s); c[i >> 2] = (c[i >> 2] | 0) + 24; } s = (s + 24) | 0; } k = (p + 1) | 0; } else k = b; } else k = b; } else k = b; } while (0); l = f; return k | 0; } function EB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0; f = l; l = (l + 64) | 0; g = (f + 32) | 0; h = (f + 16) | 0; i = (f + 12) | 0; j = f; do { if (((d - b) | 0) > 1 ? (a[b >> 0] | 0) == 73 : 0) { k = (e + 61) | 0; m = (e + 36) | 0; if (a[k >> 0] | 0) { n = c[m >> 2] | 0; o = c[(n + -16) >> 2] | 0; p = (n + -12) | 0; n = c[p >> 2] | 0; while (1) { if ((n | 0) == (o | 0)) break; q = (n + -16) | 0; RA(q); n = q; } c[p >> 2] = o; } c[h >> 2] = 0; c[(h + 4) >> 2] = 0; c[(h + 8) >> 2] = 0; RB(h, 18709, AB(18709) | 0); n = (e + 4) | 0; q = (e + 12) | 0; r = (e + 40) | 0; s = (e + 32) | 0; t = (h + 11) | 0; u = (h + 4) | 0; v = (g + 11) | 0; w = (g + 4) | 0; x = (b + 1) | 0; while (1) { if ((a[x >> 0] | 0) == 69) break; if (a[k >> 0] | 0) { c[i >> 2] = c[q >> 2]; y = c[m >> 2] | 0; if (y >>> 0 < (c[r >> 2] | 0) >>> 0) { nD(g, i); c[y >> 2] = 0; c[(y + 4) >> 2] = 0; c[(y + 8) >> 2] = 0; c[(y + 12) >> 2] = c[g >> 2]; c[m >> 2] = (c[m >> 2] | 0) + 16; } else oD(s, i); } y = ((((c[n >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; z = pD(x, d, e) | 0; A = ((((c[n >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; if (a[k >> 0] | 0) { B = c[m >> 2] | 0; C = 0; while (1) { if ((C | 0) == -1) break; D = (C + -1) | 0; XA((B + (D << 4)) | 0); C = D; } c[m >> 2] = B + -16; } if (((z | 0) == (x | 0)) | ((z | 0) == (d | 0))) { E = 53; break; } a: do { if (a[k >> 0] | 0) { C = c[m >> 2] | 0; D = c[q >> 2] | 0; c[g >> 2] = D; F = (C + -12) | 0; G = c[F >> 2] | 0; if (G >>> 0 < (c[(C + -8) >> 2] | 0) >>> 0) { c[G >> 2] = 0; c[(G + 4) >> 2] = 0; c[(G + 8) >> 2] = 0; c[(G + 12) >> 2] = D; c[F >> 2] = (c[F >> 2] | 0) + 16; } else oB((C + -16) | 0, g); C = y; while (1) { if (C >>> 0 >= A >>> 0) break a; F = c[((c[m >> 2] | 0) + -12) >> 2] | 0; D = ((c[e >> 2] | 0) + ((C * 24) | 0)) | 0; G = (F + -12) | 0; H = c[G >> 2] | 0; if ((H | 0) == (c[(F + -8) >> 2] | 0)) sB((F + -16) | 0, D); else { rB(H, D); c[G >> 2] = (c[G >> 2] | 0) + 24; } C = (C + 1) | 0; } } } while (0); B = y; while (1) { if (B >>> 0 >= A >>> 0) break; C = a[t >> 0] | 0; if ( ((C << 24) >> 24 < 0 ? c[u >> 2] | 0 : C & 255) >>> 0 > 1 ) qB(h, 18897) | 0; FB(g, ((c[e >> 2] | 0) + ((B * 24) | 0)) | 0); C = a[v >> 0] | 0; G = (C << 24) >> 24 < 0; TA( h, G ? c[g >> 2] | 0 : g, G ? c[w >> 2] | 0 : C & 255 ) | 0; iB(g); B = (B + 1) | 0; } B = A; while (1) { if ((B | 0) == (y | 0)) break; C = c[n >> 2] | 0; G = 0; while (1) { if ((G | 0) == -1) break; D = (G + -1) | 0; QA((C + ((D * 24) | 0)) | 0); G = D; } c[n >> 2] = C + -24; B = (B + -1) | 0; } x = z; } if ((E | 0) == 53) { iB(h); I = b; break; } w = (x + 1) | 0; v = a[t >> 0] | 0; m = (v << 24) >> 24 < 0; if ( (a[ ((m ? c[h >> 2] | 0 : h) + (m ? c[u >> 2] | 0 : v & 255) + -1) >> 0 ] | 0) == 62 ) qB(h, 20088) | 0; else qB(h, 18711) | 0; c[j >> 2] = c[h >> 2]; c[(j + 4) >> 2] = c[(h + 4) >> 2]; c[(j + 8) >> 2] = c[(h + 8) >> 2]; v = 0; while (1) { if ((v | 0) == 3) break; c[(h + (v << 2)) >> 2] = 0; v = (v + 1) | 0; } IB(g, j); v = c[n >> 2] | 0; if (v >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(v, g); c[n >> 2] = (c[n >> 2] | 0) + 24; } else LB(e, g); QA(g); iB(j); iB(h); I = w; } else I = b; } while (0); l = f; return I | 0; } function FB(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = (d + 12) | 0; f = a[(e + 11) >> 0] | 0; g = (f << 24) >> 24 < 0; TA( d, g ? c[e >> 2] | 0 : e, g ? c[(d + 16) >> 2] | 0 : f & 255 ) | 0; c[b >> 2] = c[d >> 2]; c[(b + 4) >> 2] = c[(d + 4) >> 2]; c[(b + 8) >> 2] = c[(d + 8) >> 2]; b = 0; while (1) { if ((b | 0) == 3) break; c[(d + (b << 2)) >> 2] = 0; b = (b + 1) | 0; } return; } function GB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; f = l; l = (l + 64) | 0; g = (f + 40) | 0; h = (f + 16) | 0; i = f; a: do { if ( ( (b | 0) != (d | 0) ? ((j = ((a[b >> 0] | 0) + -48) | 0), j >>> 0 < 10) : 0 ) ? ((k = (b + 1) | 0), (k | 0) != (d | 0)) : 0 ) { m = j; j = k; while (1) { k = ((a[j >> 0] | 0) + -48) | 0; if (k >>> 0 >= 10) break; n = (j + 1) | 0; if ((n | 0) == (d | 0)) { o = b; break a; } m = (k + ((m * 10) | 0)) | 0; j = n; } if (((d - j) | 0) >>> 0 >= m >>> 0) { c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, j, m); zB(h, g, 10); n = AB(20055) | 0; k = a[(h + 11) >> 0] | 0; if ( (n | 0) == (((k << 24) >> 24 < 0 ? c[(h + 4) >> 2] | 0 : k & 255) | 0) ) p = (BB(h, 20055, n) | 0) == 0; else p = 0; iB(h); if (p) { mD(h); n = (e + 4) | 0; k = c[n >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, h); c[n >> 2] = (c[n >> 2] | 0) + 24; } else LB(e, h); QA(h); } else { c[i >> 2] = c[g >> 2]; c[(i + 4) >> 2] = c[(g + 4) >> 2]; c[(i + 8) >> 2] = c[(g + 8) >> 2]; n = 0; while (1) { if ((n | 0) == 3) break; c[(g + (n << 2)) >> 2] = 0; n = (n + 1) | 0; } IB(h, i); n = (e + 4) | 0; k = c[n >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, h); c[n >> 2] = (c[n >> 2] | 0) + 24; } else LB(e, h); QA(h); iB(i); } iB(g); o = (j + m) | 0; } else o = b; } else o = b; } while (0); l = f; return o | 0; } function HB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; f = 0; while (1) { if ((f | 0) == 3) break; c[(b + (f << 2)) >> 2] = 0; f = (f + 1) | 0; } f = (d + 11) | 0; g = a[f >> 0] | 0; h = (g << 24) >> 24 < 0 ? c[(d + 4) >> 2] | 0 : g & 255; g = AB(e) | 0; VB( b, (a[f >> 0] | 0) < 0 ? c[d >> 2] | 0 : d, h, (h + g) | 0 ); TA(b, e, g) | 0; return; } function IB(a, b) { a = a | 0; b = b | 0; var d = 0; c[a >> 2] = c[b >> 2]; c[(a + 4) >> 2] = c[(b + 4) >> 2]; c[(a + 8) >> 2] = c[(b + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(b + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } d = (a + 12) | 0; c[d >> 2] = 0; c[(d + 4) >> 2] = 0; c[(d + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(d + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function JB(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; e = l; l = (l + 16) | 0; f = e; g = (b + 11) | 0; if ((a[g >> 0] | 0) < 0) { h = c[b >> 2] | 0; a[f >> 0] = 0; cB(h, f); c[(b + 4) >> 2] = 0; } else { a[f >> 0] = 0; cB(b, f); a[g >> 0] = 0; } TB(b); c[b >> 2] = c[d >> 2]; c[(b + 4) >> 2] = c[(d + 4) >> 2]; c[(b + 8) >> 2] = c[(d + 8) >> 2]; g = 0; while (1) { if ((g | 0) == 3) break; c[(d + (g << 2)) >> 2] = 0; g = (g + 1) | 0; } g = (b + 12) | 0; h = (d + 12) | 0; d = (g + 11) | 0; if ((a[d >> 0] | 0) < 0) { i = c[g >> 2] | 0; a[f >> 0] = 0; cB(i, f); c[(b + 16) >> 2] = 0; } else { a[f >> 0] = 0; cB(g, f); a[d >> 0] = 0; } TB(g); c[g >> 2] = c[h >> 2]; c[(g + 4) >> 2] = c[(h + 4) >> 2]; c[(g + 8) >> 2] = c[(h + 8) >> 2]; g = 0; while (1) { if ((g | 0) == 3) break; c[(h + (g << 2)) >> 2] = 0; g = (g + 1) | 0; } l = e; return; } function KB(a, b) { a = a | 0; b = b | 0; var d = 0; c[a >> 2] = c[b >> 2]; c[(a + 4) >> 2] = c[(b + 4) >> 2]; c[(a + 8) >> 2] = c[(b + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(b + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } d = (a + 12) | 0; a = (b + 12) | 0; c[d >> 2] = c[a >> 2]; c[(d + 4) >> 2] = c[(a + 4) >> 2]; c[(d + 8) >> 2] = c[(a + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(a + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } return; } function LB(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; d = l; l = (l + 32) | 0; e = d; f = (a + 4) | 0; g = ((((((c[f >> 2] | 0) - (c[a >> 2] | 0)) | 0) / 24) | 0) + 1) | 0; h = XC(a) | 0; if (h >>> 0 < g >>> 0) Wz(a); else { i = c[a >> 2] | 0; j = ((((c[(a + 8) >> 2] | 0) - i) | 0) / 24) | 0; k = j << 1; YC( e, j >>> 0 < (h >>> 1) >>> 0 ? k >>> 0 < g >>> 0 ? g : k : h, ((((c[f >> 2] | 0) - i) | 0) / 24) | 0, (a + 12) | 0 ); i = (e + 8) | 0; f = c[i >> 2] | 0; KB(f, b); c[i >> 2] = f + 24; ZC(a, e); _C(e); l = d; return; } } function MB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; f = l; l = (l + 32) | 0; g = (f + 8) | 0; h = f; a: do { if (((d - b) | 0) > 1) { i = (a[b >> 0] | 0) == 76 ? (b + 1) | 0 : b; switch (a[i >> 0] | 0) { case 78: { j = hD(i, d, e) | 0; k = (j | 0) == (i | 0) ? b : j; break a; break; } case 90: { j = iD(i, d, e) | 0; k = (j | 0) == (i | 0) ? b : j; break a; break; } default: { j = jD(i, d, e) | 0; if ((j | 0) == (i | 0)) { m = NB(i, d, e) | 0; if (((m | 0) == (i | 0)) | ((m | 0) == (d | 0))) { k = b; break a; } if ((a[m >> 0] | 0) != 73) { k = b; break a; } i = EB(m, d, e) | 0; if ((i | 0) == (m | 0)) { k = b; break a; } m = (e + 4) | 0; n = c[m >> 2] | 0; if ( ((((n - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { k = b; break a; } FB(g, (n + -24) | 0); n = c[m >> 2] | 0; o = 0; while (1) { if ((o | 0) == -1) break; p = (o + -1) | 0; QA((n + ((p * 24) | 0)) | 0); o = p; } c[m >> 2] = n + -24; o = a[(g + 11) >> 0] | 0; p = (o << 24) >> 24 < 0; TA( (n + -48) | 0, p ? c[g >> 2] | 0 : g, p ? c[(g + 4) >> 2] | 0 : o & 255 ) | 0; iB(g); k = i; break a; } if ((j | 0) == (d | 0)) { k = d; break a; } if ((a[j >> 0] | 0) != 73) { k = j; break a; } o = (e + 4) | 0; p = c[o >> 2] | 0; if ((c[e >> 2] | 0) == (p | 0)) { k = b; break a; } c[h >> 2] = c[(e + 12) >> 2]; vB(g, (p + -24) | 0, h); p = (e + 20) | 0; q = c[p >> 2] | 0; if (q >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[q >> 2] = 0; r = (q + 4) | 0; c[r >> 2] = 0; s = (q + 8) | 0; c[s >> 2] = 0; c[(q + 12) >> 2] = c[(g + 12) >> 2]; c[q >> 2] = c[g >> 2]; q = (g + 4) | 0; c[r >> 2] = c[q >> 2]; r = (g + 8) | 0; c[s >> 2] = c[r >> 2]; c[r >> 2] = 0; c[q >> 2] = 0; c[g >> 2] = 0; c[p >> 2] = (c[p >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); p = EB(j, d, e) | 0; if ((p | 0) == (j | 0)) { k = b; break a; } q = c[o >> 2] | 0; if ( ((((q - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { k = b; break a; } FB(g, (q + -24) | 0); q = c[o >> 2] | 0; r = 0; while (1) { if ((r | 0) == -1) break; s = (r + -1) | 0; QA((q + ((s * 24) | 0)) | 0); r = s; } c[o >> 2] = q + -24; r = a[(g + 11) >> 0] | 0; j = (r << 24) >> 24 < 0; TA( (q + -48) | 0, j ? c[g >> 2] | 0 : g, j ? c[(g + 4) >> 2] | 0 : r & 255 ) | 0; iB(g); k = p; break a; } } } else k = b; } while (0); l = f; return k | 0; } function NB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; f = l; l = (l + 32) | 0; g = f; a: do { if (((d - b) | 0) > 1 ? (a[b >> 0] | 0) == 83 : 0) { h = a[(b + 1) >> 0] | 0; switch (h | 0) { case 97: { KC(g, 20001); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); k = (b + 2) | 0; break a; break; } case 98: { HC(g, 20016); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); k = (b + 2) | 0; break a; break; } case 115: { JC(g, 19495); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); k = (b + 2) | 0; break a; break; } case 105: { LC(g, 19591); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); k = (b + 2) | 0; break a; break; } case 111: { LC(g, 19668); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); k = (b + 2) | 0; break a; break; } case 100: { gD(g, 19745); i = (e + 4) | 0; j = c[i >> 2] | 0; if (j >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(j, g); c[i >> 2] = (c[i >> 2] | 0) + 24; } else LB(e, g); QA(g); k = (b + 2) | 0; break a; break; } case 95: { i = c[(e + 16) >> 2] | 0; if ((i | 0) == (c[(e + 20) >> 2] | 0)) { k = b; break a; } j = c[(i + 4) >> 2] | 0; m = (e + 4) | 0; n = (e + 8) | 0; o = c[i >> 2] | 0; while (1) { if ((o | 0) == (j | 0)) break; i = c[m >> 2] | 0; if ((i | 0) == (c[n >> 2] | 0)) sB(e, o); else { rB(i, o); c[m >> 2] = (c[m >> 2] | 0) + 24; } o = (o + 24) | 0; } k = (b + 2) | 0; break a; break; } default: { o = (h + -48) | 0; m = o >>> 0 < 10; if (!m ? (Pz(h) | 0) == 0 : 0) { k = b; break a; } n = (b + 2) | 0; j = m ? o : (h + -55) | 0; while (1) { if ((n | 0) == (d | 0)) { k = b; break a; } p = a[n >> 0] | 0; o = (p << 24) >> 24; m = (o + -48) | 0; i = m >>> 0 < 10; if (!i ? (Pz(o) | 0) == 0 : 0) break; n = (n + 1) | 0; j = ((i ? m : (o + -55) | 0) + ((j * 36) | 0)) | 0; } if ((p << 24) >> 24 != 95) { k = b; break a; } h = (j + 1) | 0; o = c[(e + 16) >> 2] | 0; m = o; if ( h >>> 0 >= (((c[(e + 20) >> 2] | 0) - o) >> 4) >>> 0 ) { k = b; break a; } o = c[(m + (h << 4) + 4) >> 2] | 0; i = (e + 4) | 0; q = (e + 8) | 0; r = c[(m + (h << 4)) >> 2] | 0; while (1) { if ((r | 0) == (o | 0)) break; h = c[i >> 2] | 0; if ((h | 0) == (c[q >> 2] | 0)) sB(e, r); else { rB(h, r); c[i >> 2] = (c[i >> 2] | 0) + 24; } r = (r + 24) | 0; } k = (n + 1) | 0; break a; } } } else k = b; } while (0); l = f; return k | 0; } function OB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 64) | 0; g = (f + 40) | 0; h = (f + 12) | 0; i = (f + 24) | 0; j = f; a: do { if (((d - b) | 0) > 3 ? (a[b >> 0] | 0) == 68 : 0) { switch (a[(b + 1) >> 0] | 0) { case 84: case 116: break; default: { k = b; break a; } } m = (b + 2) | 0; n = SB(m, d, e) | 0; if ( ( !(((n | 0) == (m | 0)) | ((n | 0) == (d | 0))) ? (a[n >> 0] | 0) == 69 : 0 ) ? ((m = (e + 4) | 0), (o = c[m >> 2] | 0), (c[e >> 2] | 0) != (o | 0)) : 0 ) { FB(j, (o + -24) | 0); pB(j, 0, 19991) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(j + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } qB(i, 18673) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(i + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } IB(g, h); JB(((c[m >> 2] | 0) + -24) | 0, g); QA(g); iB(h); iB(i); iB(j); k = (n + 1) | 0; } else k = b; } else k = b; } while (0); l = f; return k | 0; } function PB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; f = l; l = (l + 64) | 0; g = (f + 40) | 0; h = (f + 12) | 0; i = f; j = (f + 24) | 0; a: do { if ( (((d - b) | 0) > 3 ? (a[b >> 0] | 0) == 68 : 0) ? (a[(b + 1) >> 0] | 0) == 118 : 0 ) { k = (b + 2) | 0; m = a[k >> 0] | 0; if (((m + -49) & 255) < 9) { n = QB(k, d) | 0; if ((n | 0) == (d | 0)) { o = b; break; } if ((a[n >> 0] | 0) != 95) { o = b; break; } p = (n - k) | 0; q = (n + 1) | 0; if ((q | 0) == (d | 0)) { o = b; break; } if ((a[q >> 0] | 0) != 112) { r = mB(q, d, e) | 0; if ((r | 0) == (q | 0)) { o = b; break; } q = (e + 4) | 0; if ((c[e >> 2] | 0) == (c[q >> 2] | 0)) { o = b; break; } c[i >> 2] = 0; c[(i + 4) >> 2] = 0; c[(i + 8) >> 2] = 0; RB(i, k, p); pB(i, 0, 18713) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; s = 0; while (1) { if ((s | 0) == 3) break; c[(i + (s << 2)) >> 2] = 0; s = (s + 1) | 0; } qB(h, 18722) | 0; c[g >> 2] = c[h >> 2]; c[(g + 4) >> 2] = c[(h + 4) >> 2]; c[(g + 8) >> 2] = c[(h + 8) >> 2]; s = 0; while (1) { if ((s | 0) == 3) break; c[(h + (s << 2)) >> 2] = 0; s = (s + 1) | 0; } s = a[(g + 11) >> 0] | 0; t = (s << 24) >> 24 < 0; TA( ((c[q >> 2] | 0) + -24) | 0, t ? c[g >> 2] | 0 : g, t ? c[(g + 4) >> 2] | 0 : s & 255 ) | 0; iB(g); iB(h); iB(i); o = r; break; } s = (n + 2) | 0; c[i >> 2] = 0; c[(i + 4) >> 2] = 0; c[(i + 8) >> 2] = 0; RB(i, k, p); pB(i, 0, 18724) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; t = 0; while (1) { if ((t | 0) == 3) break; c[(i + (t << 2)) >> 2] = 0; t = (t + 1) | 0; } qB(h, 18722) | 0; c[j >> 2] = c[h >> 2]; c[(j + 4) >> 2] = c[(h + 4) >> 2]; c[(j + 8) >> 2] = c[(h + 8) >> 2]; t = 0; while (1) { if ((t | 0) == 3) break; c[(h + (t << 2)) >> 2] = 0; t = (t + 1) | 0; } IB(g, j); t = (e + 4) | 0; p = c[t >> 2] | 0; if (p >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(p, g); c[t >> 2] = (c[t >> 2] | 0) + 24; } else LB(e, g); QA(g); iB(j); iB(h); iB(i); o = s; break; } c[h >> 2] = 0; c[(h + 4) >> 2] = 0; c[(h + 8) >> 2] = 0; t = 0; while (1) { if ((t | 0) == 3) break; c[(h + (t << 2)) >> 2] = 0; t = (t + 1) | 0; } if ( (m << 24) >> 24 != 95 ? ((t = SB(k, d, e) | 0), (t | 0) != (k | 0)) : 0 ) { s = (e + 4) | 0; p = c[s >> 2] | 0; if ((c[e >> 2] | 0) != (p | 0)) { FB(i, (p + -24) | 0); p = (h + 11) | 0; if ((a[p >> 0] | 0) < 0) { n = c[h >> 2] | 0; a[g >> 0] = 0; cB(n, g); c[(h + 4) >> 2] = 0; } else { a[g >> 0] = 0; cB(h, g); a[p >> 0] = 0; } TB(h); c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; p = 0; while (1) { if ((p | 0) == 3) break; c[(i + (p << 2)) >> 2] = 0; p = (p + 1) | 0; } iB(i); p = c[s >> 2] | 0; m = 0; while (1) { if ((m | 0) == -1) break; n = (m + -1) | 0; QA((p + ((n * 24) | 0)) | 0); m = n; } c[s >> 2] = p + -24; u = t; v = 44; } } else { u = k; v = 44; } do { if ((v | 0) == 44) { if ( ( ((u | 0) != (d | 0) ? (a[u >> 0] | 0) == 95 : 0) ? ((m = (u + 1) | 0), (m | 0) != (d | 0)) : 0 ) ? ((n = mB(m, d, e) | 0), (n | 0) != (m | 0)) : 0 ) { m = (e + 4) | 0; if ((c[e >> 2] | 0) == (c[m >> 2] | 0)) break; UB(i, 18713, h); qB(i, 18722) | 0; c[g >> 2] = c[i >> 2]; c[(g + 4) >> 2] = c[(i + 4) >> 2]; c[(g + 8) >> 2] = c[(i + 8) >> 2]; r = 0; while (1) { if ((r | 0) == 3) break; c[(i + (r << 2)) >> 2] = 0; r = (r + 1) | 0; } r = a[(g + 11) >> 0] | 0; q = (r << 24) >> 24 < 0; TA( ((c[m >> 2] | 0) + -24) | 0, q ? c[g >> 2] | 0 : g, q ? c[(g + 4) >> 2] | 0 : r & 255 ) | 0; iB(g); iB(i); w = n; } else w = b; iB(h); o = w; break a; } } while (0); iB(h); o = b; } else o = b; } while (0); l = f; return o | 0; } function QB(b, c) { b = b | 0; c = c | 0; var d = 0, e = 0, f = 0; a: do { if ( (b | 0) != (c | 0) ? ((d = (a[b >> 0] | 0) == 110 ? (b + 1) | 0 : b), (d | 0) != (c | 0)) : 0 ) { e = a[d >> 0] | 0; if ((e << 24) >> 24 == 48) { f = (d + 1) | 0; break; } if (((e + -49) & 255) < 9) { e = d; while (1) { d = (e + 1) | 0; if ((d | 0) == (c | 0)) { f = c; break a; } if ((((a[d >> 0] | 0) + -48) | 0) >>> 0 < 10) e = d; else { f = d; break; } } } else f = b; } else f = b; } while (0); return f | 0; } function RB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0; f = l; l = (l + 16) | 0; g = f; if (e >>> 0 > 4294967279) eB(b); if (e >>> 0 < 11) { a[(b + 11) >> 0] = e; h = b; } else { i = (e + 16) & -16; j = fB(i) | 0; c[b >> 2] = j; c[(b + 8) >> 2] = i | -2147483648; c[(b + 4) >> 2] = e; h = j; } bB(h, d, e) | 0; a[g >> 0] = 0; cB((h + e) | 0, g); l = f; return; } function SB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0; f = l; l = (l + 208) | 0; g = (f + 176) | 0; h = (f + 112) | 0; i = (f + 88) | 0; j = (f + 64) | 0; k = (f + 48) | 0; m = (f + 160) | 0; n = (f + 36) | 0; o = (f + 148) | 0; p = (f + 136) | 0; q = (f + 124) | 0; r = (f + 24) | 0; s = (f + 12) | 0; t = f; u = d; v = (u - b) | 0; a: do { if ((v | 0) > 1) { if ((v | 0) > 3 ? (a[b >> 0] | 0) == 103 : 0) { w = (a[(b + 1) >> 0] | 0) == 115; x = w ? (b + 2) | 0 : b; y = w; } else { x = b; y = 0; } do { switch (a[x >> 0] | 0) { case 76: { z = WB(b, d, e) | 0; break a; break; } case 84: { z = DB(b, d, e) | 0; break a; break; } case 102: { z = XB(b, d, e) | 0; break a; break; } case 97: { switch (a[(x + 1) >> 0] | 0) { case 97: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18677, AB(18677) | 0); A = YB(w, d, g, e) | 0; iB(g); z = (A | 0) == (w | 0) ? b : A; break a; break; } case 100: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18695, AB(18695) | 0); w = ZB(A, d, g, e) | 0; iB(g); z = (w | 0) == (A | 0) ? b : w; break a; break; } case 110: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18695, AB(18695) | 0); A = YB(w, d, g, e) | 0; iB(g); z = (A | 0) == (w | 0) ? b : A; break a; break; } case 78: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18738, AB(18738) | 0); w = YB(A, d, g, e) | 0; iB(g); z = (w | 0) == (A | 0) ? b : w; break a; break; } case 83: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18741, AB(18741) | 0); A = YB(w, d, g, e) | 0; iB(g); z = (A | 0) == (w | 0) ? b : A; break a; break; } case 116: { z = _B(b, d, e) | 0; break a; break; } case 122: { z = $B(b, d, e) | 0; break a; break; } default: { z = b; break a; } } break; } case 99: { switch (a[(x + 1) >> 0] | 0) { case 99: { z = aC(b, d, e) | 0; break a; break; } case 108: { z = bC(b, d, e) | 0; break a; break; } case 109: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18743, AB(18743) | 0); w = YB(A, d, g, e) | 0; iB(g); z = (w | 0) == (A | 0) ? b : w; break a; break; } case 111: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18745, AB(18745) | 0); A = ZB(w, d, g, e) | 0; iB(g); z = (A | 0) == (w | 0) ? b : A; break a; break; } case 118: { z = cC(b, d, e) | 0; break a; break; } default: { z = b; break a; } } break; } case 100: { switch (a[(x + 1) >> 0] | 0) { case 97: { A = (x + 2) | 0; w = SB(A, d, e) | 0; if ((w | 0) == (A | 0)) { z = b; break a; } A = (e + 4) | 0; if ((c[e >> 2] | 0) == (c[A >> 2] | 0)) { z = b; break a; } c[j >> 2] = 0; c[(j + 4) >> 2] = 0; c[(j + 8) >> 2] = 0; b: do { if (y) RB(j, 18747, AB(18747) | 0); else { B = 0; while (1) { if ((B | 0) == 3) break b; c[(j + (B << 2)) >> 2] = 0; B = (B + 1) | 0; } } } while (0); qB(j, 18750) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; B = 0; while (1) { if ((B | 0) == 3) break; c[(j + (B << 2)) >> 2] = 0; B = (B + 1) | 0; } FB(k, ((c[A >> 2] | 0) + -24) | 0); B = a[(k + 11) >> 0] | 0; C = (B << 24) >> 24 < 0; TA( i, C ? c[k >> 2] | 0 : k, C ? c[(k + 4) >> 2] | 0 : B & 255 ) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; B = 0; while (1) { if ((B | 0) == 3) break; c[(i + (B << 2)) >> 2] = 0; B = (B + 1) | 0; } B = c[A >> 2] | 0; C = (B + -24) | 0; D = (C + 11) | 0; if ((a[D >> 0] | 0) < 0) { E = c[C >> 2] | 0; a[g >> 0] = 0; cB(E, g); c[(B + -20) >> 2] = 0; } else { a[g >> 0] = 0; cB(C, g); a[D >> 0] = 0; } TB(C); c[C >> 2] = c[h >> 2]; c[(C + 4) >> 2] = c[(h + 4) >> 2]; c[(C + 8) >> 2] = c[(h + 8) >> 2]; C = 0; while (1) { if ((C | 0) == 3) break; c[(h + (C << 2)) >> 2] = 0; C = (C + 1) | 0; } iB(h); iB(k); iB(i); iB(j); z = w; break a; break; } case 99: { z = dC(b, d, e) | 0; break a; break; } case 101: { C = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18693, AB(18693) | 0); A = ZB(C, d, g, e) | 0; iB(g); z = (A | 0) == (C | 0) ? b : A; break a; break; } case 108: { A = (x + 2) | 0; C = SB(A, d, e) | 0; if ((C | 0) == (A | 0)) { z = b; break a; } A = (e + 4) | 0; if ((c[e >> 2] | 0) == (c[A >> 2] | 0)) { z = b; break a; } c[j >> 2] = 0; c[(j + 4) >> 2] = 0; c[(j + 8) >> 2] = 0; c: do { if (y) RB(j, 18747, AB(18747) | 0); else { D = 0; while (1) { if ((D | 0) == 3) break c; c[(j + (D << 2)) >> 2] = 0; D = (D + 1) | 0; } } } while (0); qB(j, 18760) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(j + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } FB(k, ((c[A >> 2] | 0) + -24) | 0); w = a[(k + 11) >> 0] | 0; D = (w << 24) >> 24 < 0; TA( i, D ? c[k >> 2] | 0 : k, D ? c[(k + 4) >> 2] | 0 : w & 255 ) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(i + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } w = c[A >> 2] | 0; D = (w + -24) | 0; B = (D + 11) | 0; if ((a[B >> 0] | 0) < 0) { E = c[D >> 2] | 0; a[g >> 0] = 0; cB(E, g); c[(w + -20) >> 2] = 0; } else { a[g >> 0] = 0; cB(D, g); a[B >> 0] = 0; } TB(D); c[D >> 2] = c[h >> 2]; c[(D + 4) >> 2] = c[(h + 4) >> 2]; c[(D + 8) >> 2] = c[(h + 8) >> 2]; D = 0; while (1) { if ((D | 0) == 3) break; c[(h + (D << 2)) >> 2] = 0; D = (D + 1) | 0; } iB(h); iB(k); iB(i); iB(j); z = C; break a; break; } case 110: { z = eC(b, d, e) | 0; break a; break; } case 115: { z = fC(b, d, e) | 0; break a; break; } case 116: { z = gC(b, d, e) | 0; break a; break; } case 118: { D = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18768, AB(18768) | 0); A = YB(D, d, g, e) | 0; iB(g); z = (A | 0) == (D | 0) ? b : A; break a; break; } case 86: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18770, AB(18770) | 0); D = YB(A, d, g, e) | 0; iB(g); z = (D | 0) == (A | 0) ? b : D; break a; break; } default: { z = b; break a; } } break; } case 101: { switch (a[(x + 1) >> 0] | 0) { case 111: { D = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18773, AB(18773) | 0); A = YB(D, d, g, e) | 0; iB(g); z = (A | 0) == (D | 0) ? b : A; break a; break; } case 79: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18775, AB(18775) | 0); D = YB(A, d, g, e) | 0; iB(g); z = (D | 0) == (A | 0) ? b : D; break a; break; } case 113: { D = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18778, AB(18778) | 0); A = YB(D, d, g, e) | 0; iB(g); z = (A | 0) == (D | 0) ? b : A; break a; break; } default: { z = b; break a; } } break; } case 103: { switch (a[(x + 1) >> 0] | 0) { case 101: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18781, AB(18781) | 0); D = YB(A, d, g, e) | 0; iB(g); z = (D | 0) == (A | 0) ? b : D; break a; break; } case 116: { D = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18711, AB(18711) | 0); A = YB(D, d, g, e) | 0; iB(g); z = (A | 0) == (D | 0) ? b : A; break a; break; } default: { z = b; break a; } } break; } case 105: { if ((a[(x + 1) >> 0] | 0) != 120) { z = b; break a; } A = (b + 2) | 0; D = SB(A, d, e) | 0; if ((D | 0) == (A | 0)) { z = b; break a; } A = SB(D, d, e) | 0; B = (e + 4) | 0; if ((A | 0) == (D | 0)) { D = c[B >> 2] | 0; w = 0; while (1) { if ((w | 0) == -1) break; E = (w + -1) | 0; QA((D + ((E * 24) | 0)) | 0); w = E; } c[B >> 2] = D + -24; z = b; break a; } w = c[B >> 2] | 0; if ( ((((w - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { z = b; break a; } FB(g, (w + -24) | 0); w = c[B >> 2] | 0; C = 0; while (1) { if ((C | 0) == -1) break; E = (C + -1) | 0; QA((w + ((E * 24) | 0)) | 0); C = E; } c[B >> 2] = w + -24; FB(h, (w + -48) | 0); UB(n, 18675, h); qB(n, 18784) | 0; c[k >> 2] = c[n >> 2]; c[(k + 4) >> 2] = c[(n + 4) >> 2]; c[(k + 8) >> 2] = c[(n + 8) >> 2]; C = 0; while (1) { if ((C | 0) == 3) break; c[(n + (C << 2)) >> 2] = 0; C = (C + 1) | 0; } C = a[(g + 11) >> 0] | 0; w = (C << 24) >> 24 < 0; TA( k, w ? c[g >> 2] | 0 : g, w ? c[(g + 4) >> 2] | 0 : C & 255 ) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; C = 0; while (1) { if ((C | 0) == 3) break; c[(k + (C << 2)) >> 2] = 0; C = (C + 1) | 0; } qB(j, 18722) | 0; c[m >> 2] = c[j >> 2]; c[(m + 4) >> 2] = c[(j + 4) >> 2]; c[(m + 8) >> 2] = c[(j + 8) >> 2]; C = 0; while (1) { if ((C | 0) == 3) break; c[(j + (C << 2)) >> 2] = 0; C = (C + 1) | 0; } IB(i, m); JB(((c[B >> 2] | 0) + -24) | 0, i); QA(i); iB(m); iB(j); iB(k); iB(n); iB(h); iB(g); z = A; break a; break; } case 108: { switch (a[(x + 1) >> 0] | 0) { case 101: { C = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18787, AB(18787) | 0); w = YB(C, d, g, e) | 0; iB(g); z = (w | 0) == (C | 0) ? b : w; break a; break; } case 115: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18790, AB(18790) | 0); C = YB(w, d, g, e) | 0; iB(g); z = (C | 0) == (w | 0) ? b : C; break a; break; } case 83: { C = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18793, AB(18793) | 0); w = YB(C, d, g, e) | 0; iB(g); z = (w | 0) == (C | 0) ? b : w; break a; break; } case 116: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18709, AB(18709) | 0); C = YB(w, d, g, e) | 0; iB(g); z = (C | 0) == (w | 0) ? b : C; break a; break; } default: { z = b; break a; } } break; } case 109: { switch (a[(x + 1) >> 0] | 0) { case 105: { C = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18797, AB(18797) | 0); w = YB(C, d, g, e) | 0; iB(g); z = (w | 0) == (C | 0) ? b : w; break a; break; } case 73: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18799, AB(18799) | 0); C = YB(w, d, g, e) | 0; iB(g); z = (C | 0) == (w | 0) ? b : C; break a; break; } case 108: { C = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18693, AB(18693) | 0); w = YB(C, d, g, e) | 0; iB(g); z = (w | 0) == (C | 0) ? b : w; break a; break; } case 76: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18802, AB(18802) | 0); C = YB(w, d, g, e) | 0; iB(g); z = (C | 0) == (w | 0) ? b : C; break a; break; } case 109: { C = (b + 2) | 0; if ( (C | 0) != (d | 0) ? (a[C >> 0] | 0) == 95 : 0 ) { w = (b + 3) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18805, AB(18805) | 0); D = ZB(w, d, g, e) | 0; iB(g); z = (D | 0) == (w | 0) ? b : D; break a; } D = SB(C, d, e) | 0; if ((D | 0) == (C | 0)) { z = b; break a; } C = (e + 4) | 0; w = c[C >> 2] | 0; if ((c[e >> 2] | 0) == (w | 0)) { z = b; break a; } FB(i, (w + -24) | 0); pB(i, 0, 18675) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(i + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } qB(h, 18808) | 0; c[o >> 2] = c[h >> 2]; c[(o + 4) >> 2] = c[(h + 4) >> 2]; c[(o + 8) >> 2] = c[(h + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(h + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } IB(g, o); JB(((c[C >> 2] | 0) + -24) | 0, g); QA(g); iB(o); iB(h); iB(i); z = D; break a; break; } default: { z = b; break a; } } break; } case 110: { switch (a[(x + 1) >> 0] | 0) { case 119: case 97: { z = hC(b, d, e) | 0; break a; break; } case 101: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18812, AB(18812) | 0); A = YB(w, d, g, e) | 0; iB(g); z = (A | 0) == (w | 0) ? b : A; break a; break; } case 103: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18797, AB(18797) | 0); w = ZB(A, d, g, e) | 0; iB(g); z = (w | 0) == (A | 0) ? b : w; break a; break; } case 116: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18815, AB(18815) | 0); A = ZB(w, d, g, e) | 0; iB(g); z = (A | 0) == (w | 0) ? b : A; break a; break; } case 120: { A = (b + 2) | 0; w = iC(A, d, e) | 0; z = (w | 0) == (A | 0) ? b : w; break a; break; } default: { z = b; break a; } } break; } case 111: { switch (a[(x + 1) >> 0] | 0) { case 110: { z = eC(b, d, e) | 0; break a; break; } case 111: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18817, AB(18817) | 0); A = YB(w, d, g, e) | 0; iB(g); z = (A | 0) == (w | 0) ? b : A; break a; break; } case 114: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18820, AB(18820) | 0); w = YB(A, d, g, e) | 0; iB(g); z = (w | 0) == (A | 0) ? b : w; break a; break; } case 82: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18822, AB(18822) | 0); A = YB(w, d, g, e) | 0; iB(g); z = (A | 0) == (w | 0) ? b : A; break a; break; } default: { z = b; break a; } } break; } case 112: { switch (a[(x + 1) >> 0] | 0) { case 109: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18825, AB(18825) | 0); w = YB(A, d, g, e) | 0; iB(g); z = (w | 0) == (A | 0) ? b : w; break a; break; } case 108: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18829, AB(18829) | 0); A = YB(w, d, g, e) | 0; iB(g); z = (A | 0) == (w | 0) ? b : A; break a; break; } case 76: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18831, AB(18831) | 0); w = YB(A, d, g, e) | 0; iB(g); z = (w | 0) == (A | 0) ? b : w; break a; break; } case 112: { w = (b + 2) | 0; if ( (w | 0) != (d | 0) ? (a[w >> 0] | 0) == 95 : 0 ) { A = (b + 3) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18834, AB(18834) | 0); B = ZB(A, d, g, e) | 0; iB(g); z = (B | 0) == (A | 0) ? b : B; break a; } B = SB(w, d, e) | 0; if ((B | 0) == (w | 0)) { z = b; break a; } w = (e + 4) | 0; A = c[w >> 2] | 0; if ((c[e >> 2] | 0) == (A | 0)) { z = b; break a; } FB(i, (A + -24) | 0); pB(i, 0, 18675) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; A = 0; while (1) { if ((A | 0) == 3) break; c[(i + (A << 2)) >> 2] = 0; A = (A + 1) | 0; } qB(h, 18837) | 0; c[p >> 2] = c[h >> 2]; c[(p + 4) >> 2] = c[(h + 4) >> 2]; c[(p + 8) >> 2] = c[(h + 8) >> 2]; A = 0; while (1) { if ((A | 0) == 3) break; c[(h + (A << 2)) >> 2] = 0; A = (A + 1) | 0; } IB(g, p); JB(((c[w >> 2] | 0) + -24) | 0, g); QA(g); iB(p); iB(h); iB(i); z = B; break a; break; } case 115: { A = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18829, AB(18829) | 0); D = ZB(A, d, g, e) | 0; iB(g); z = (D | 0) == (A | 0) ? b : D; break a; break; } case 116: { z = jC(b, d, e) | 0; break a; break; } default: { z = b; break a; } } break; } case 113: { if ((a[(x + 1) >> 0] | 0) != 117) { z = b; break a; } D = (b + 2) | 0; A = SB(D, d, e) | 0; if ((A | 0) == (D | 0)) { z = b; break a; } D = SB(A, d, e) | 0; if ((D | 0) == (A | 0)) { A = (e + 4) | 0; C = c[A >> 2] | 0; E = 0; while (1) { if ((E | 0) == -1) break; F = (E + -1) | 0; QA((C + ((F * 24) | 0)) | 0); E = F; } c[A >> 2] = C + -24; z = b; break a; } E = SB(D, d, e) | 0; B = (e + 4) | 0; if ((E | 0) == (D | 0)) { w = c[B >> 2] | 0; F = 0; while (1) { if ((F | 0) == -1) break; G = (F + -1) | 0; QA((w + ((G * 24) | 0)) | 0); F = G; } F = (w + -24) | 0; c[B >> 2] = F; D = 0; while (1) { if ((D | 0) == -1) break; C = (D + -1) | 0; QA((F + ((C * 24) | 0)) | 0); D = C; } c[B >> 2] = w + -48; z = b; break a; } D = c[B >> 2] | 0; if ( ((((D - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 3 ) { z = b; break a; } FB(g, (D + -24) | 0); D = c[B >> 2] | 0; F = 0; while (1) { if ((F | 0) == -1) break; C = (F + -1) | 0; QA((D + ((C * 24) | 0)) | 0); F = C; } c[B >> 2] = D + -24; FB(h, (D + -48) | 0); F = c[B >> 2] | 0; w = 0; while (1) { if ((w | 0) == -1) break; C = (w + -1) | 0; QA((F + ((C * 24) | 0)) | 0); w = C; } c[B >> 2] = F + -24; FB(i, (F + -48) | 0); UB(t, 18675, i); qB(t, 18841) | 0; c[s >> 2] = c[t >> 2]; c[(s + 4) >> 2] = c[(t + 4) >> 2]; c[(s + 8) >> 2] = c[(t + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(t + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } w = a[(h + 11) >> 0] | 0; F = (w << 24) >> 24 < 0; TA( s, F ? c[h >> 2] | 0 : h, F ? c[(h + 4) >> 2] | 0 : w & 255 ) | 0; c[r >> 2] = c[s >> 2]; c[(r + 4) >> 2] = c[(s + 4) >> 2]; c[(r + 8) >> 2] = c[(s + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(s + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } qB(r, 18847) | 0; c[n >> 2] = c[r >> 2]; c[(n + 4) >> 2] = c[(r + 4) >> 2]; c[(n + 8) >> 2] = c[(r + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(r + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } w = a[(g + 11) >> 0] | 0; F = (w << 24) >> 24 < 0; TA( n, F ? c[g >> 2] | 0 : g, F ? c[(g + 4) >> 2] | 0 : w & 255 ) | 0; c[k >> 2] = c[n >> 2]; c[(k + 4) >> 2] = c[(n + 4) >> 2]; c[(k + 8) >> 2] = c[(n + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(n + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } qB(k, 18673) | 0; c[q >> 2] = c[k >> 2]; c[(q + 4) >> 2] = c[(k + 4) >> 2]; c[(q + 8) >> 2] = c[(k + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(k + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } IB(j, q); JB(((c[B >> 2] | 0) + -24) | 0, j); QA(j); iB(q); iB(k); iB(n); iB(r); iB(s); iB(t); iB(i); iB(h); iB(g); z = E; break a; break; } case 114: { switch (a[(x + 1) >> 0] | 0) { case 99: { z = kC(b, d, e) | 0; break a; break; } case 109: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18853, AB(18853) | 0); F = YB(w, d, g, e) | 0; iB(g); z = (F | 0) == (w | 0) ? b : F; break a; break; } case 77: { F = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18855, AB(18855) | 0); w = YB(F, d, g, e) | 0; iB(g); z = (w | 0) == (F | 0) ? b : w; break a; break; } case 115: { w = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18858, AB(18858) | 0); F = YB(w, d, g, e) | 0; iB(g); z = (F | 0) == (w | 0) ? b : F; break a; break; } case 83: { F = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18861, AB(18861) | 0); w = YB(F, d, g, e) | 0; iB(g); z = (w | 0) == (F | 0) ? b : w; break a; break; } default: { z = b; break a; } } break; } case 115: { switch (a[(x + 1) >> 0] | 0) { case 99: { z = lC(b, d, e) | 0; break a; break; } case 112: { z = mC(b, d, e) | 0; break a; break; } case 114: { z = eC(b, d, e) | 0; break a; break; } case 116: { z = nC(b, d, e) | 0; break a; break; } case 122: { z = oC(b, d, e) | 0; break a; break; } case 90: { if (((u - x) | 0) <= 2) { z = b; break a; } switch (a[(x + 2) >> 0] | 0) { case 84: { z = pC(b, d, e) | 0; break a; break; } case 102: { z = qC(b, d, e) | 0; break a; break; } default: { z = b; break a; } } break; } default: { z = b; break a; } } break; } case 116: { switch (a[(x + 1) >> 0] | 0) { case 105: case 101: { z = rC(b, d, e) | 0; break a; break; } case 114: { sC(g, 18865); w = (e + 4) | 0; F = c[w >> 2] | 0; if (F >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(F, g); c[w >> 2] = (c[w >> 2] | 0) + 24; } else LB(e, g); QA(g); z = (b + 2) | 0; break a; break; } case 119: { z = tC(b, d, e) | 0; break a; break; } default: { z = b; break a; } } break; } case 57: case 56: case 55: case 54: case 53: case 52: case 51: case 50: case 49: { z = eC(b, d, e) | 0; break a; break; } default: { z = b; break a; } } } while (0); } else z = b; } while (0); l = f; return z | 0; } function TB(b) { b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; d = (b + 11) | 0; e = a[d >> 0] | 0; f = (e << 24) >> 24 < 0; if (f) { g = c[(b + 4) >> 2] | 0; h = ((c[(b + 8) >> 2] & 2147483647) + -1) | 0; } else { g = e & 255; h = 10; } i = g >>> 0 < 11; j = i ? 10 : (((g + 16) & -16) + -1) | 0; a: do { if ((j | 0) != (h | 0)) { do { if (i) { k = c[b >> 2] | 0; if (f) { l = 0; m = k; n = b; o = 12; } else { bB(b, k, ((e & 255) + 1) | 0) | 0; gB(k); o = 15; } } else { k = (j + 1) | 0; p = fB(k) | 0; if ((j >>> 0 <= h >>> 0) & ((p | 0) == 0)) break a; q = a[d >> 0] | 0; if ((q << 24) >> 24 < 0) { l = 1; m = c[b >> 2] | 0; n = p; o = 12; break; } else { bB(p, b, ((q & 255) + 1) | 0) | 0; r = p; s = k; t = (b + 4) | 0; o = 14; break; } } } while (0); if ((o | 0) == 12) { k = (b + 4) | 0; bB(n, m, ((c[k >> 2] | 0) + 1) | 0) | 0; gB(m); if (l) { r = n; s = (j + 1) | 0; t = k; o = 14; } else o = 15; } if ((o | 0) == 14) { c[(b + 8) >> 2] = s | -2147483648; c[t >> 2] = g; c[b >> 2] = r; break; } else if ((o | 0) == 15) { a[d >> 0] = g; break; } } } while (0); return; } function UB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; f = 0; while (1) { if ((f | 0) == 3) break; c[(b + (f << 2)) >> 2] = 0; f = (f + 1) | 0; } f = AB(d) | 0; g = (e + 11) | 0; h = a[g >> 0] | 0; i = (h << 24) >> 24 < 0 ? c[(e + 4) >> 2] | 0 : h & 255; VB(b, d, f, (i + f) | 0); TA(b, (a[g >> 0] | 0) < 0 ? c[e >> 2] | 0 : e, i) | 0; return; } function VB(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; g = l; l = (l + 16) | 0; h = g; if (f >>> 0 > 4294967279) eB(b); if (f >>> 0 < 11) { a[(b + 11) >> 0] = e; i = b; } else { j = (f + 16) & -16; f = fB(j) | 0; c[b >> 2] = f; c[(b + 8) >> 2] = j | -2147483648; c[(b + 4) >> 2] = e; i = f; } bB(i, d, e) | 0; a[h >> 0] = 0; cB((i + e) | 0, h); l = g; return; } function WB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; f = l; l = (l + 96) | 0; g = (f + 64) | 0; h = (f + 48) | 0; i = (f + 36) | 0; j = (f + 24) | 0; k = (f + 12) | 0; m = f; a: do { if (((d - b) | 0) > 3 ? (a[b >> 0] | 0) == 76 : 0) { n = (b + 1) | 0; do { switch (a[n >> 0] | 0) { case 84: { o = b; break a; break; } case 119: { p = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19867, AB(19867) | 0); q = bD(p, d, g, e) | 0; iB(g); o = (q | 0) == (p | 0) ? b : q; break a; break; } case 98: { if ((a[(b + 3) >> 0] | 0) != 69) { o = b; break a; } switch (a[(b + 2) >> 0] | 0) { case 48: { sC(g, 19875); q = (e + 4) | 0; p = c[q >> 2] | 0; if (p >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(p, g); c[q >> 2] = (c[q >> 2] | 0) + 24; } else LB(e, g); QA(g); o = (b + 4) | 0; break a; break; } case 49: { cD(g, 19881); q = (e + 4) | 0; p = c[q >> 2] | 0; if (p >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(p, g); c[q >> 2] = (c[q >> 2] | 0) + 24; } else LB(e, g); QA(g); o = (b + 4) | 0; break a; break; } default: { o = b; break a; } } break; } case 99: { q = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19886, AB(19886) | 0); p = bD(q, d, g, e) | 0; iB(g); o = (p | 0) == (q | 0) ? b : p; break a; break; } case 97: { p = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19891, AB(19891) | 0); q = bD(p, d, g, e) | 0; iB(g); o = (q | 0) == (p | 0) ? b : q; break a; break; } case 104: { q = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19903, AB(19903) | 0); p = bD(q, d, g, e) | 0; iB(g); o = (p | 0) == (q | 0) ? b : p; break a; break; } case 115: { p = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19917, AB(19917) | 0); q = bD(p, d, g, e) | 0; iB(g); o = (q | 0) == (p | 0) ? b : q; break a; break; } case 116: { q = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19923, AB(19923) | 0); p = bD(q, d, g, e) | 0; iB(g); o = (p | 0) == (q | 0) ? b : p; break a; break; } case 105: { p = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 22268, AB(22268) | 0); q = bD(p, d, g, e) | 0; iB(g); o = (q | 0) == (p | 0) ? b : q; break a; break; } case 106: { q = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19938, AB(19938) | 0); p = bD(q, d, g, e) | 0; iB(g); o = (p | 0) == (q | 0) ? b : p; break a; break; } case 108: { p = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19940, AB(19940) | 0); q = bD(p, d, g, e) | 0; iB(g); o = (q | 0) == (p | 0) ? b : q; break a; break; } case 109: { q = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19942, AB(19942) | 0); p = bD(q, d, g, e) | 0; iB(g); o = (p | 0) == (q | 0) ? b : p; break a; break; } case 120: { p = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19945, AB(19945) | 0); q = bD(p, d, g, e) | 0; iB(g); o = (q | 0) == (p | 0) ? b : q; break a; break; } case 121: { q = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19948, AB(19948) | 0); p = bD(q, d, g, e) | 0; iB(g); o = (p | 0) == (q | 0) ? b : p; break a; break; } case 110: { p = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19952, AB(19952) | 0); q = bD(p, d, g, e) | 0; iB(g); o = (q | 0) == (p | 0) ? b : q; break a; break; } case 111: { q = (b + 2) | 0; c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 19961, AB(19961) | 0); p = bD(q, d, g, e) | 0; iB(g); o = (p | 0) == (q | 0) ? b : p; break a; break; } case 102: { p = (b + 2) | 0; q = dD(p, d, e) | 0; o = (q | 0) == (p | 0) ? b : q; break a; break; } case 100: { q = (b + 2) | 0; p = eD(q, d, e) | 0; o = (p | 0) == (q | 0) ? b : p; break a; break; } case 101: { p = (b + 2) | 0; q = fD(p, d, e) | 0; o = (q | 0) == (p | 0) ? b : q; break a; break; } case 95: { if ((a[(b + 2) >> 0] | 0) != 90) { o = b; break a; } q = (b + 3) | 0; p = jB(q, d, e) | 0; if (((p | 0) == (q | 0)) | ((p | 0) == (d | 0))) { o = b; break a; } o = (a[p >> 0] | 0) == 69 ? (p + 1) | 0 : b; break a; break; } default: { p = mB(n, d, e) | 0; if (((p | 0) == (n | 0)) | ((p | 0) == (d | 0))) { o = b; break a; } if ((a[p >> 0] | 0) == 69) { o = (p + 1) | 0; break a; } q = p; while (1) { if ((q | 0) == (d | 0)) { o = b; break a; } r = a[q >> 0] | 0; if (((((r << 24) >> 24) + -48) | 0) >>> 0 >= 10) break; q = (q + 1) | 0; } if ( !(((q | 0) != (p | 0)) & ((r << 24) >> 24 == 69)) ) { o = b; break a; } s = (e + 4) | 0; t = c[s >> 2] | 0; if ((c[e >> 2] | 0) == (t | 0)) { o = b; break a; } FB(k, (t + -24) | 0); pB(k, 0, 18675) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; t = 0; while (1) { if ((t | 0) == 3) break; c[(k + (t << 2)) >> 2] = 0; t = (t + 1) | 0; } qB(j, 18673) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; t = 0; while (1) { if ((t | 0) == 3) break; c[(j + (t << 2)) >> 2] = 0; t = (t + 1) | 0; } c[m >> 2] = 0; c[(m + 4) >> 2] = 0; c[(m + 8) >> 2] = 0; QC(m, p, q); t = a[(m + 11) >> 0] | 0; u = (t << 24) >> 24 < 0; TA( i, u ? c[m >> 2] | 0 : m, u ? c[(m + 4) >> 2] | 0 : t & 255 ) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; t = 0; while (1) { if ((t | 0) == 3) break; c[(i + (t << 2)) >> 2] = 0; t = (t + 1) | 0; } IB(g, h); JB(((c[s >> 2] | 0) + -24) | 0, g); QA(g); iB(h); iB(m); iB(i); iB(j); iB(k); o = (q + 1) | 0; break a; } } } while (0); } else o = b; } while (0); l = f; return o | 0; } function XB(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; f = l; l = (l + 80) | 0; g = (f + 64) | 0; h = (f + 40) | 0; i = (f + 12) | 0; j = (f + 24) | 0; k = f; a: do { if (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 102 : 0) { switch (a[(b + 1) >> 0] | 0) { case 112: { m = nB((b + 2) | 0, d, g) | 0; n = QB(m, d) | 0; if ((n | 0) != (d | 0) ? (a[n >> 0] | 0) == 95 : 0) { c[j >> 2] = 0; c[(j + 4) >> 2] = 0; c[(j + 8) >> 2] = 0; QC(j, m, n); pB(j, 0, 19864) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; m = 0; while (1) { if ((m | 0) == 3) break; c[(j + (m << 2)) >> 2] = 0; m = (m + 1) | 0; } IB(h, i); m = (e + 4) | 0; o = c[m >> 2] | 0; if (o >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(o, h); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, h); QA(h); iB(i); iB(j); p = (n + 1) | 0; } else p = b; q = p; break a; break; } case 76: break; default: { q = b; break a; } } m = QB((b + 2) | 0, d) | 0; if ( ( ((m | 0) != (d | 0) ? (a[m >> 0] | 0) == 112 : 0) ? ((o = nB((m + 1) | 0, d, g) | 0), (m = QB(o, d) | 0), (m | 0) != (d | 0)) : 0 ) ? (a[m >> 0] | 0) == 95 : 0 ) { c[j >> 2] = 0; c[(j + 4) >> 2] = 0; c[(j + 8) >> 2] = 0; QC(j, o, m); pB(j, 0, 19864) | 0; c[k >> 2] = c[j >> 2]; c[(k + 4) >> 2] = c[(j + 4) >> 2]; c[(k + 8) >> 2] = c[(j + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(j + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } IB(h, k); o = (e + 4) | 0; n = c[o >> 2] | 0; if (n >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(n, h); c[o >> 2] = (c[o >> 2] | 0) + 24; } else LB(e, h); QA(h); iB(k); iB(j); r = (m + 1) | 0; } else r = b; q = r; } else q = b; } while (0); l = f; return q | 0; } function YB(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0; g = l; l = (l + 96) | 0; h = (g + 84) | 0; i = (g + 72) | 0; j = (g + 60) | 0; k = (g + 48) | 0; m = (g + 36) | 0; n = (g + 24) | 0; o = (g + 12) | 0; p = g; q = SB(b, d, f) | 0; do { if ((q | 0) != (b | 0)) { r = SB(q, d, f) | 0; s = (f + 4) | 0; if ((r | 0) == (q | 0)) { t = c[s >> 2] | 0; u = 0; while (1) { if ((u | 0) == -1) break; v = (u + -1) | 0; QA((t + ((v * 24) | 0)) | 0); u = v; } c[s >> 2] = t + -24; w = b; break; } u = c[s >> 2] | 0; if (((((u - (c[f >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) { FB(i, (u + -24) | 0); u = c[s >> 2] | 0; v = 0; while (1) { if ((v | 0) == -1) break; x = (v + -1) | 0; QA((u + ((x * 24) | 0)) | 0); v = x; } c[s >> 2] = u + -24; FB(j, (u + -48) | 0); v = c[s >> 2] | 0; t = (v + -24) | 0; x = (t + 11) | 0; if ((a[x >> 0] | 0) < 0) { y = c[t >> 2] | 0; a[h >> 0] = 0; cB(y, h); c[(v + -20) >> 2] = 0; } else { a[h >> 0] = 0; cB(t, h); a[x >> 0] = 0; } x = AB(18711) | 0; v = (e + 11) | 0; y = a[v >> 0] | 0; z = (e + 4) | 0; if ( (x | 0) == (((y << 24) >> 24 < 0 ? c[z >> 2] | 0 : y & 255) | 0) ? (BB(e, 18711, x) | 0) == 0 : 0 ) NC(t, 40); UB(p, 18675, j); qB(p, 18961) | 0; c[o >> 2] = c[p >> 2]; c[(o + 4) >> 2] = c[(p + 4) >> 2]; c[(o + 8) >> 2] = c[(p + 8) >> 2]; x = 0; while (1) { if ((x | 0) == 3) break; c[(p + (x << 2)) >> 2] = 0; x = (x + 1) | 0; } x = a[v >> 0] | 0; s = (x << 24) >> 24 < 0; TA( o, s ? c[e >> 2] | 0 : e, s ? c[z >> 2] | 0 : x & 255 ) | 0; c[n >> 2] = c[o >> 2]; c[(n + 4) >> 2] = c[(o + 4) >> 2]; c[(n + 8) >> 2] = c[(o + 8) >> 2]; x = 0; while (1) { if ((x | 0) == 3) break; c[(o + (x << 2)) >> 2] = 0; x = (x + 1) | 0; } qB(n, 18670) | 0; c[m >> 2] = c[n >> 2]; c[(m + 4) >> 2] = c[(n + 4) >> 2]; c[(m + 8) >> 2] = c[(n + 8) >> 2]; x = 0; while (1) { if ((x | 0) == 3) break; c[(n + (x << 2)) >> 2] = 0; x = (x + 1) | 0; } x = a[(i + 11) >> 0] | 0; s = (x << 24) >> 24 < 0; TA( m, s ? c[i >> 2] | 0 : i, s ? c[(i + 4) >> 2] | 0 : x & 255 ) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; x = 0; while (1) { if ((x | 0) == 3) break; c[(m + (x << 2)) >> 2] = 0; x = (x + 1) | 0; } qB(k, 18673) | 0; c[h >> 2] = c[k >> 2]; c[(h + 4) >> 2] = c[(k + 4) >> 2]; c[(h + 8) >> 2] = c[(k + 8) >> 2]; x = 0; while (1) { if ((x | 0) == 3) break; c[(k + (x << 2)) >> 2] = 0; x = (x + 1) | 0; } x = a[(h + 11) >> 0] | 0; s = (x << 24) >> 24 < 0; TA( t, s ? c[h >> 2] | 0 : h, s ? c[(h + 4) >> 2] | 0 : x & 255 ) | 0; iB(h); iB(k); iB(m); iB(n); iB(o); iB(p); x = AB(18711) | 0; s = a[v >> 0] | 0; if ( (x | 0) == (((s << 24) >> 24 < 0 ? c[z >> 2] | 0 : s & 255) | 0) ? (BB(e, 18711, x) | 0) == 0 : 0 ) NC(t, 41); iB(j); iB(i); w = r; } else w = b; } else w = b; } while (0); l = g; return w | 0; } function ZB(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 64) | 0; h = (g + 48) | 0; i = (g + 36) | 0; j = (g + 24) | 0; k = (g + 12) | 0; m = g; n = SB(b, d, f) | 0; if ( (n | 0) != (b | 0) ? ((d = (f + 4) | 0), (c[f >> 2] | 0) != (c[d >> 2] | 0)) : 0 ) { HB(k, e, 18675); FB(m, ((c[d >> 2] | 0) + -24) | 0); e = a[(m + 11) >> 0] | 0; f = (e << 24) >> 24 < 0; TA( k, f ? c[m >> 2] | 0 : m, f ? c[(m + 4) >> 2] | 0 : e & 255 ) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; e = 0; while (1) { if ((e | 0) == 3) break; c[(k + (e << 2)) >> 2] = 0; e = (e + 1) | 0; } qB(j, 18673) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; e = 0; while (1) { if ((e | 0) == 3) break; c[(j + (e << 2)) >> 2] = 0; e = (e + 1) | 0; } e = c[d >> 2] | 0; d = (e + -24) | 0; f = (d + 11) | 0; if ((a[f >> 0] | 0) < 0) { o = c[d >> 2] | 0; a[h >> 0] = 0; cB(o, h); c[(e + -20) >> 2] = 0; } else { a[h >> 0] = 0; cB(d, h); a[f >> 0] = 0; } TB(d); c[d >> 2] = c[i >> 2]; c[(d + 4) >> 2] = c[(i + 4) >> 2]; c[(d + 8) >> 2] = c[(i + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(i + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } iB(i); iB(j); iB(m); iB(k); p = n; } else p = b; l = g; return p | 0; } function _B(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 48) | 0; g = (f + 36) | 0; h = (f + 24) | 0; i = (f + 12) | 0; j = f; if ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 97 : 0) ? (a[(b + 1) >> 0] | 0) == 116 : 0 ) ? ((k = (b + 2) | 0), (m = mB(k, d, e) | 0), (m | 0) != (k | 0)) : 0 ) ? ((k = (e + 4) | 0), (d = c[k >> 2] | 0), (c[e >> 2] | 0) != (d | 0)) : 0 ) { FB(j, (d + -24) | 0); pB(j, 0, 19854) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(j + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(i, 18673) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(i + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } d = c[k >> 2] | 0; k = (d + -24) | 0; e = (k + 11) | 0; if ((a[e >> 0] | 0) < 0) { n = c[k >> 2] | 0; a[g >> 0] = 0; cB(n, g); c[(d + -20) >> 2] = 0; } else { a[g >> 0] = 0; cB(k, g); a[e >> 0] = 0; } TB(k); c[k >> 2] = c[h >> 2]; c[(k + 4) >> 2] = c[(h + 4) >> 2]; c[(k + 8) >> 2] = c[(h + 8) >> 2]; k = 0; while (1) { if ((k | 0) == 3) break; c[(h + (k << 2)) >> 2] = 0; k = (k + 1) | 0; } iB(h); iB(i); iB(j); o = m; } else o = b; l = f; return o | 0; } function $B(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 48) | 0; g = (f + 36) | 0; h = (f + 24) | 0; i = (f + 12) | 0; j = f; if ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 97 : 0) ? (a[(b + 1) >> 0] | 0) == 122 : 0 ) ? ((k = (b + 2) | 0), (m = SB(k, d, e) | 0), (m | 0) != (k | 0)) : 0 ) ? ((k = (e + 4) | 0), (d = c[k >> 2] | 0), (c[e >> 2] | 0) != (d | 0)) : 0 ) { FB(j, (d + -24) | 0); pB(j, 0, 19854) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(j + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(i, 18673) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(i + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } d = c[k >> 2] | 0; k = (d + -24) | 0; e = (k + 11) | 0; if ((a[e >> 0] | 0) < 0) { n = c[k >> 2] | 0; a[g >> 0] = 0; cB(n, g); c[(d + -20) >> 2] = 0; } else { a[g >> 0] = 0; cB(k, g); a[e >> 0] = 0; } TB(k); c[k >> 2] = c[h >> 2]; c[(k + 4) >> 2] = c[(h + 4) >> 2]; c[(k + 8) >> 2] = c[(h + 8) >> 2]; k = 0; while (1) { if ((k | 0) == 3) break; c[(h + (k << 2)) >> 2] = 0; k = (k + 1) | 0; } iB(h); iB(i); iB(j); o = m; } else o = b; l = f; return o | 0; } function aC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; f = l; l = (l + 112) | 0; g = (f + 88) | 0; h = (f + 64) | 0; i = (f + 36) | 0; j = (f + 48) | 0; k = (f + 24) | 0; m = (f + 12) | 0; n = f; if ( ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 99 : 0) ? (a[(b + 1) >> 0] | 0) == 99 : 0 ) ? ((o = (b + 2) | 0), (p = mB(o, d, e) | 0), (p | 0) != (o | 0)) : 0 ) ? ((o = SB(p, d, e) | 0), (o | 0) != (p | 0)) : 0 ) ? ((p = (e + 4) | 0), (d = c[p >> 2] | 0), ((((d - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) : 0 ) { FB(g, (d + -24) | 0); d = c[p >> 2] | 0; e = 0; while (1) { if ((e | 0) == -1) break; q = (e + -1) | 0; QA((d + ((q * 24) | 0)) | 0); e = q; } c[p >> 2] = d + -24; FB(n, (d + -48) | 0); pB(n, 0, 19842) | 0; c[m >> 2] = c[n >> 2]; c[(m + 4) >> 2] = c[(n + 4) >> 2]; c[(m + 8) >> 2] = c[(n + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(n + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(m, 18922) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(m + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } d = a[(g + 11) >> 0] | 0; e = (d << 24) >> 24 < 0; TA( k, e ? c[g >> 2] | 0 : g, e ? c[(g + 4) >> 2] | 0 : d & 255 ) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(k + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(j, 18673) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(j + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } IB(h, i); JB(((c[p >> 2] | 0) + -24) | 0, h); QA(h); iB(i); iB(j); iB(k); iB(m); iB(n); iB(g); r = o; } else r = b; l = f; return r | 0; } function bC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; f = l; l = (l + 32) | 0; g = (f + 12) | 0; h = f; a: do { if ( ( ( (((d - b) | 0) > 3 ? (a[b >> 0] | 0) == 99 : 0) ? (a[(b + 1) >> 0] | 0) == 108 : 0 ) ? ((i = (b + 2) | 0), (j = SB(i, d, e) | 0), !(((j | 0) == (i | 0)) | ((j | 0) == (d | 0)))) : 0 ) ? ((i = (e + 4) | 0), (k = c[i >> 2] | 0), (c[e >> 2] | 0) != (k | 0)) : 0 ) { m = (k + -12) | 0; n = a[(m + 11) >> 0] | 0; o = (n << 24) >> 24 < 0; TA( (k + -24) | 0, o ? c[m >> 2] | 0 : m, o ? c[(k + -8) >> 2] | 0 : n & 255 ) | 0; c[h >> 2] = 0; c[(h + 4) >> 2] = 0; c[(h + 8) >> 2] = 0; n = 0; while (1) { if ((n | 0) == 3) break; c[(h + (n << 2)) >> 2] = 0; n = (n + 1) | 0; } n = c[i >> 2] | 0; k = (n + -12) | 0; o = (k + 11) | 0; if ((a[o >> 0] | 0) < 0) { m = c[k >> 2] | 0; a[g >> 0] = 0; cB(m, g); c[(n + -8) >> 2] = 0; } else { a[g >> 0] = 0; cB(k, g); a[o >> 0] = 0; } TB(k); c[k >> 2] = c[h >> 2]; c[(k + 4) >> 2] = c[(h + 4) >> 2]; c[(k + 8) >> 2] = c[(h + 8) >> 2]; k = 0; while (1) { if ((k | 0) == 3) break; c[(h + (k << 2)) >> 2] = 0; k = (k + 1) | 0; } iB(h); qB(((c[i >> 2] | 0) + -24) | 0, 18675) | 0; k = (g + 11) | 0; o = (g + 4) | 0; n = 0; m = j; while (1) { if ((a[m >> 0] | 0) == 69) break; p = SB(m, d, e) | 0; if (((p | 0) == (m | 0)) | ((p | 0) == (d | 0))) { q = b; break a; } r = c[i >> 2] | 0; if ((c[e >> 2] | 0) == (r | 0)) { q = b; break a; } FB(g, (r + -24) | 0); r = c[i >> 2] | 0; s = 0; while (1) { if ((s | 0) == -1) break; t = (s + -1) | 0; QA((r + ((t * 24) | 0)) | 0); s = t; } s = (r + -24) | 0; c[i >> 2] = s; t = a[k >> 0] | 0; u = (t << 24) >> 24 < 0; v = u ? c[o >> 2] | 0 : t & 255; if (v) { if ((c[e >> 2] | 0) == (s | 0)) { w = 0; x = b; y = m; } else { TA((r + -48) | 0, u ? c[g >> 2] | 0 : g, v) | 0; w = 1; x = n; y = p; } } else { w = 1; x = n; y = p; } iB(g); if (w) { n = x; m = y; } else { q = x; break a; } } n = c[i >> 2] | 0; if ((c[e >> 2] | 0) != (n | 0)) { qB((n + -24) | 0, 18673) | 0; q = (m + 1) | 0; } else q = b; } else q = b; } while (0); l = f; return q | 0; } function cC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0; f = l; l = (l + 112) | 0; g = (f + 88) | 0; h = (f + 64) | 0; i = (f + 36) | 0; j = (f + 48) | 0; k = (f + 24) | 0; m = (f + 12) | 0; n = f; a: do { if ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 99 : 0) ? (a[(b + 1) >> 0] | 0) == 118 : 0 ) ? ((o = (e + 63) | 0), (p = a[o >> 0] | 0), (a[o >> 0] = 0), (q = (b + 2) | 0), (r = mB(q, d, e) | 0), (a[o >> 0] = p), !(((r | 0) == (q | 0)) | ((r | 0) == (d | 0)))) : 0 ) { if ((a[r >> 0] | 0) != 95) { q = SB(r, d, e) | 0; if ((q | 0) == (r | 0)) { s = b; break; } else t = q; } else { q = (r + 1) | 0; if ((q | 0) == (d | 0)) { s = b; break; } r = a[q >> 0] | 0; b: do { if ((r << 24) >> 24 == 69) { p = (e + 4) | 0; o = c[p >> 2] | 0; if (o >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { c[o >> 2] = 0; c[(o + 4) >> 2] = 0; c[(o + 8) >> 2] = 0; c[(o + 12) >> 2] = 0; c[(o + 16) >> 2] = 0; c[(o + 20) >> 2] = 0; VC(o); c[p >> 2] = (c[p >> 2] | 0) + 24; u = q; break; } else { WC(e); u = q; break; } } else { p = q; o = r; while (1) { if ((o << 24) >> 24 == 69) { u = p; break b; } v = SB(p, d, e) | 0; if (((v | 0) == (p | 0)) | ((v | 0) == (d | 0))) { s = b; break a; } p = v; o = a[v >> 0] | 0; } } } while (0); t = (u + 1) | 0; } r = (e + 4) | 0; q = c[r >> 2] | 0; if (((((q - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) { FB(g, (q + -24) | 0); q = c[r >> 2] | 0; o = 0; while (1) { if ((o | 0) == -1) break; p = (o + -1) | 0; QA((q + ((p * 24) | 0)) | 0); o = p; } c[r >> 2] = q + -24; FB(n, (q + -48) | 0); pB(n, 0, 18675) | 0; c[m >> 2] = c[n >> 2]; c[(m + 4) >> 2] = c[(n + 4) >> 2]; c[(m + 8) >> 2] = c[(n + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(n + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } qB(m, 19839) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(m + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } o = a[(g + 11) >> 0] | 0; q = (o << 24) >> 24 < 0; TA( k, q ? c[g >> 2] | 0 : g, q ? c[(g + 4) >> 2] | 0 : o & 255 ) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(k + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } qB(j, 18673) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(j + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } IB(h, i); JB(((c[r >> 2] | 0) + -24) | 0, h); QA(h); iB(i); iB(j); iB(k); iB(m); iB(n); iB(g); s = t; } else s = b; } else s = b; } while (0); l = f; return s | 0; } function dC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; f = l; l = (l + 112) | 0; g = (f + 88) | 0; h = (f + 64) | 0; i = (f + 36) | 0; j = (f + 48) | 0; k = (f + 24) | 0; m = (f + 12) | 0; n = f; if ( ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 100 : 0) ? (a[(b + 1) >> 0] | 0) == 99 : 0 ) ? ((o = (b + 2) | 0), (p = mB(o, d, e) | 0), (p | 0) != (o | 0)) : 0 ) ? ((o = SB(p, d, e) | 0), (o | 0) != (p | 0)) : 0 ) ? ((p = (e + 4) | 0), (d = c[p >> 2] | 0), ((((d - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) : 0 ) { FB(g, (d + -24) | 0); d = c[p >> 2] | 0; e = 0; while (1) { if ((e | 0) == -1) break; q = (e + -1) | 0; QA((d + ((q * 24) | 0)) | 0); e = q; } c[p >> 2] = d + -24; FB(n, (d + -48) | 0); pB(n, 0, 19825) | 0; c[m >> 2] = c[n >> 2]; c[(m + 4) >> 2] = c[(n + 4) >> 2]; c[(m + 8) >> 2] = c[(n + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(n + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(m, 18922) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(m + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } d = a[(g + 11) >> 0] | 0; e = (d << 24) >> 24 < 0; TA( k, e ? c[g >> 2] | 0 : g, e ? c[(g + 4) >> 2] | 0 : d & 255 ) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(k + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(j, 18673) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(j + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } IB(h, i); JB(((c[p >> 2] | 0) + -24) | 0, h); QA(h); iB(i); iB(j); iB(k); iB(m); iB(n); iB(g); r = o; } else r = b; l = f; return r | 0; } function eC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0; f = l; l = (l + 32) | 0; g = (f + 12) | 0; h = f; i = d; a: do { if (((i - b) | 0) > 2) { if ((a[b >> 0] | 0) == 103) { j = (a[(b + 1) >> 0] | 0) == 115; k = j; m = j ? (b + 2) | 0 : b; } else { k = 0; m = b; } j = xC(m, d, e) | 0; if ((j | 0) != (m | 0)) { if (!k) { n = j; break; } o = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (o | 0)) { n = b; break; } pB((o + -24) | 0, 0, 18747) | 0; n = j; break; } if ( (((i - m) | 0) > 2 ? (a[m >> 0] | 0) == 115 : 0) ? (a[(m + 1) >> 0] | 0) == 114 : 0 ) { j = (m + 2) | 0; if ((a[j >> 0] | 0) == 78) { o = (m + 3) | 0; p = yC(o, d, e) | 0; if (((p | 0) == (o | 0)) | ((p | 0) == (d | 0))) { n = b; break; } o = EB(p, d, e) | 0; q = (e + 4) | 0; do { if ((o | 0) == (p | 0)) { r = p; s = e; } else { t = c[q >> 2] | 0; if ( ((((t - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { n = b; break a; } FB(g, (t + -24) | 0); t = c[q >> 2] | 0; u = 0; while (1) { if ((u | 0) == -1) break; v = (u + -1) | 0; QA((t + ((v * 24) | 0)) | 0); u = v; } c[q >> 2] = t + -24; u = a[(g + 11) >> 0] | 0; v = (u << 24) >> 24 < 0; TA( (t + -48) | 0, v ? c[g >> 2] | 0 : g, v ? c[(g + 4) >> 2] | 0 : u & 255 ) | 0; if ((o | 0) != (d | 0)) { iB(g); r = o; s = e; break; } u = c[q >> 2] | 0; v = 0; while (1) { if ((v | 0) == -1) break; w = (v + -1) | 0; QA((u + ((w * 24) | 0)) | 0); v = w; } c[q >> 2] = u + -24; iB(g); n = b; break a; } } while (0); o = (h + 11) | 0; p = (h + 4) | 0; v = r; while (1) { if ((a[v >> 0] | 0) == 69) break; t = zC(v, d, e) | 0; if (((t | 0) == (v | 0)) | ((t | 0) == (d | 0))) { n = b; break a; } w = c[q >> 2] | 0; if ( ((((w - (c[s >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { n = b; break a; } FB(g, (w + -24) | 0); w = c[q >> 2] | 0; x = 0; while (1) { if ((x | 0) == -1) break; y = (x + -1) | 0; QA((w + ((y * 24) | 0)) | 0); x = y; } c[q >> 2] = w + -24; pB(g, 0, 18747) | 0; c[h >> 2] = c[g >> 2]; c[(h + 4) >> 2] = c[(g + 4) >> 2]; c[(h + 8) >> 2] = c[(g + 8) >> 2]; x = 0; while (1) { if ((x | 0) == 3) break; c[(g + (x << 2)) >> 2] = 0; x = (x + 1) | 0; } x = a[o >> 0] | 0; w = (x << 24) >> 24 < 0; TA( ((c[q >> 2] | 0) + -24) | 0, w ? c[h >> 2] | 0 : h, w ? c[p >> 2] | 0 : x & 255 ) | 0; iB(h); iB(g); v = t; } p = (v + 1) | 0; o = xC(p, d, e) | 0; if ((o | 0) == (p | 0)) { p = c[q >> 2] | 0; if ((c[e >> 2] | 0) == (p | 0)) { n = b; break; } x = 0; while (1) { if ((x | 0) == -1) break; w = (x + -1) | 0; QA((p + ((w * 24) | 0)) | 0); x = w; } c[q >> 2] = p + -24; n = b; break; } x = c[q >> 2] | 0; if ( ((((x - (c[s >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { n = b; break; } FB(g, (x + -24) | 0); x = c[q >> 2] | 0; v = 0; while (1) { if ((v | 0) == -1) break; w = (v + -1) | 0; QA((x + ((w * 24) | 0)) | 0); v = w; } c[q >> 2] = x + -24; pB(g, 0, 18747) | 0; c[h >> 2] = c[g >> 2]; c[(h + 4) >> 2] = c[(g + 4) >> 2]; c[(h + 8) >> 2] = c[(g + 8) >> 2]; v = 0; while (1) { if ((v | 0) == 3) break; c[(g + (v << 2)) >> 2] = 0; v = (v + 1) | 0; } v = a[(h + 11) >> 0] | 0; x = (v << 24) >> 24 < 0; TA( ((c[q >> 2] | 0) + -24) | 0, x ? c[h >> 2] | 0 : h, x ? c[(h + 4) >> 2] | 0 : v & 255 ) | 0; iB(h); iB(g); n = o; break; } v = yC(j, d, e) | 0; if ((v | 0) != (j | 0)) { x = EB(v, d, e) | 0; if ((x | 0) == (v | 0)) z = v; else { v = (e + 4) | 0; p = c[v >> 2] | 0; if ( ((((p - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { n = b; break; } FB(g, (p + -24) | 0); p = c[v >> 2] | 0; w = 0; while (1) { if ((w | 0) == -1) break; u = (w + -1) | 0; QA((p + ((u * 24) | 0)) | 0); w = u; } c[v >> 2] = p + -24; w = a[(g + 11) >> 0] | 0; o = (w << 24) >> 24 < 0; TA( (p + -48) | 0, o ? c[g >> 2] | 0 : g, o ? c[(g + 4) >> 2] | 0 : w & 255 ) | 0; iB(g); z = x; } w = xC(z, d, e) | 0; if ((w | 0) == (z | 0)) { o = (e + 4) | 0; q = c[o >> 2] | 0; if ((c[e >> 2] | 0) == (q | 0)) { n = b; break; } u = 0; while (1) { if ((u | 0) == -1) break; y = (u + -1) | 0; QA((q + ((y * 24) | 0)) | 0); u = y; } c[o >> 2] = q + -24; n = b; break; } u = (e + 4) | 0; x = c[u >> 2] | 0; if ( ((((x - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { n = b; break; } FB(g, (x + -24) | 0); x = c[u >> 2] | 0; p = 0; while (1) { if ((p | 0) == -1) break; v = (p + -1) | 0; QA((x + ((v * 24) | 0)) | 0); p = v; } c[u >> 2] = x + -24; pB(g, 0, 18747) | 0; c[h >> 2] = c[g >> 2]; c[(h + 4) >> 2] = c[(g + 4) >> 2]; c[(h + 8) >> 2] = c[(g + 8) >> 2]; p = 0; while (1) { if ((p | 0) == 3) break; c[(g + (p << 2)) >> 2] = 0; p = (p + 1) | 0; } p = a[(h + 11) >> 0] | 0; x = (p << 24) >> 24 < 0; TA( ((c[u >> 2] | 0) + -24) | 0, x ? c[h >> 2] | 0 : h, x ? c[(h + 4) >> 2] | 0 : p & 255 ) | 0; iB(h); iB(g); n = w; break; } p = zC(j, d, e) | 0; if (!(((p | 0) == (j | 0)) | ((p | 0) == (d | 0)))) { if (k) { x = (e + 4) | 0; q = c[x >> 2] | 0; if ((c[e >> 2] | 0) == (q | 0)) { n = b; break; } pB((q + -24) | 0, 0, 18747) | 0; A = x; } else A = (e + 4) | 0; x = (h + 11) | 0; q = (h + 4) | 0; o = p; while (1) { if ((a[o >> 0] | 0) == 69) break; p = zC(o, d, e) | 0; if (((p | 0) == (o | 0)) | ((p | 0) == (d | 0))) { n = b; break a; } v = c[A >> 2] | 0; if ( ((((v - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { n = b; break a; } FB(g, (v + -24) | 0); v = c[A >> 2] | 0; y = 0; while (1) { if ((y | 0) == -1) break; B = (y + -1) | 0; QA((v + ((B * 24) | 0)) | 0); y = B; } c[A >> 2] = v + -24; pB(g, 0, 18747) | 0; c[h >> 2] = c[g >> 2]; c[(h + 4) >> 2] = c[(g + 4) >> 2]; c[(h + 8) >> 2] = c[(g + 8) >> 2]; y = 0; while (1) { if ((y | 0) == 3) break; c[(g + (y << 2)) >> 2] = 0; y = (y + 1) | 0; } y = a[x >> 0] | 0; v = (y << 24) >> 24 < 0; TA( ((c[A >> 2] | 0) + -24) | 0, v ? c[h >> 2] | 0 : h, v ? c[q >> 2] | 0 : y & 255 ) | 0; iB(h); iB(g); o = p; } q = (o + 1) | 0; x = xC(q, d, e) | 0; if ((x | 0) == (q | 0)) { q = c[A >> 2] | 0; if ((c[e >> 2] | 0) == (q | 0)) { n = b; break; } j = 0; while (1) { if ((j | 0) == -1) break; w = (j + -1) | 0; QA((q + ((w * 24) | 0)) | 0); j = w; } c[A >> 2] = q + -24; n = b; break; } j = c[A >> 2] | 0; if ( ((((j - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2 ) { FB(g, (j + -24) | 0); j = c[A >> 2] | 0; o = 0; while (1) { if ((o | 0) == -1) break; w = (o + -1) | 0; QA((j + ((w * 24) | 0)) | 0); o = w; } c[A >> 2] = j + -24; pB(g, 0, 18747) | 0; c[h >> 2] = c[g >> 2]; c[(h + 4) >> 2] = c[(g + 4) >> 2]; c[(h + 8) >> 2] = c[(g + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(g + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } o = a[(h + 11) >> 0] | 0; j = (o << 24) >> 24 < 0; TA( ((c[A >> 2] | 0) + -24) | 0, j ? c[h >> 2] | 0 : h, j ? c[(h + 4) >> 2] | 0 : o & 255 ) | 0; iB(h); iB(g); n = x; } else n = b; } else n = b; } else n = b; } else n = b; } while (0); l = f; return n | 0; } function fC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 12) | 0; h = f; if ( ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 100 : 0) ? (a[(b + 1) >> 0] | 0) == 115 : 0 ) ? ((i = (b + 2) | 0), (j = SB(i, d, e) | 0), (j | 0) != (i | 0)) : 0 ) ? ((i = SB(j, d, e) | 0), (i | 0) != (j | 0)) : 0 ) ? ((j = (e + 4) | 0), (d = c[j >> 2] | 0), ((((d - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) : 0 ) { FB(g, (d + -24) | 0); d = c[j >> 2] | 0; e = 0; while (1) { if ((e | 0) == -1) break; k = (e + -1) | 0; QA((d + ((k * 24) | 0)) | 0); e = k; } c[j >> 2] = d + -24; UB(h, 18966, g); d = a[(h + 11) >> 0] | 0; e = (d << 24) >> 24 < 0; TA( ((c[j >> 2] | 0) + -24) | 0, e ? c[h >> 2] | 0 : h, e ? c[(h + 4) >> 2] | 0 : d & 255 ) | 0; iB(h); iB(g); m = i; } else m = b; l = f; return m | 0; } function gC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = (f + 12) | 0; h = f; if ( ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 100 : 0) ? (a[(b + 1) >> 0] | 0) == 116 : 0 ) ? ((i = (b + 2) | 0), (j = SB(i, d, e) | 0), (j | 0) != (i | 0)) : 0 ) ? ((i = eC(j, d, e) | 0), (i | 0) != (j | 0)) : 0 ) ? ((j = (e + 4) | 0), (d = c[j >> 2] | 0), ((((d - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) : 0 ) { FB(g, (d + -24) | 0); d = c[j >> 2] | 0; e = 0; while (1) { if ((e | 0) == -1) break; k = (e + -1) | 0; QA((d + ((k * 24) | 0)) | 0); e = k; } c[j >> 2] = d + -24; UB(h, 18964, g); d = a[(h + 11) >> 0] | 0; e = (d << 24) >> 24 < 0; TA( ((c[j >> 2] | 0) + -24) | 0, e ? c[h >> 2] | 0 : h, e ? c[(h + 4) >> 2] | 0 : d & 255 ) | 0; iB(h); iB(g); m = i; } else m = b; l = f; return m | 0; } function hC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; f = l; l = (l + 112) | 0; g = (f + 88) | 0; h = (f + 76) | 0; i = (f + 64) | 0; j = (f + 40) | 0; k = (f + 16) | 0; m = f; n = (f + 52) | 0; o = d; a: do { if (((o - b) | 0) > 3) { p = a[b >> 0] | 0; if ((p << 24) >> 24 == 103) { q = (a[(b + 1) >> 0] | 0) == 115; r = q ? (b + 2) | 0 : b; s = q; t = r; u = a[r >> 0] | 0; } else { s = 0; t = b; u = p; } if ((u << 24) >> 24 == 110) { p = a[(t + 1) >> 0] | 0; switch ((p << 24) >> 24) { case 97: case 119: break; default: { v = b; break a; } } r = (p << 24) >> 24 == 97; p = (t + 2) | 0; b: do { if ((p | 0) != (d | 0)) { q = 0; w = p; while (1) { if ((a[w >> 0] | 0) == 95) break; x = SB(w, d, e) | 0; if (((x | 0) == (w | 0)) | ((x | 0) == (d | 0))) break b; else { q = 1; w = x; } } x = (w + 1) | 0; y = mB(x, d, e) | 0; if ( !(((y | 0) == (x | 0)) | ((y | 0) == (d | 0))) ) { x = a[y >> 0] | 0; c: do { if ( !( (((o - y) | 0) > 2) & ((x << 24) >> 24 == 112) ) ) { if ((x << 24) >> 24 == 69) { z = 0; A = y; } else break b; } else { if ((a[(y + 1) >> 0] | 0) != 105) break b; B = (y + 2) | 0; while (1) { if ((a[B >> 0] | 0) == 69) { z = 1; A = B; break c; } C = B; B = SB(B, d, e) | 0; if ( ((B | 0) == (C | 0)) | ((B | 0) == (d | 0)) ) break b; } } } while (0); c[h >> 2] = 0; c[(h + 4) >> 2] = 0; c[(h + 8) >> 2] = 0; y = 0; while (1) { if ((y | 0) == 3) break; c[(h + (y << 2)) >> 2] = 0; y = (y + 1) | 0; } if (z) { y = (e + 4) | 0; x = c[y >> 2] | 0; if ((c[e >> 2] | 0) == (x | 0)) { D = b; E = 1; } else { FB(i, (x + -24) | 0); x = (h + 11) | 0; if ((a[x >> 0] | 0) < 0) { w = c[h >> 2] | 0; a[g >> 0] = 0; cB(w, g); c[(h + 4) >> 2] = 0; } else { a[g >> 0] = 0; cB(h, g); a[x >> 0] = 0; } TB(h); c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; x = 0; while (1) { if ((x | 0) == 3) break; c[(i + (x << 2)) >> 2] = 0; x = (x + 1) | 0; } iB(i); x = c[y >> 2] | 0; w = 0; while (1) { if ((w | 0) == -1) break; B = (w + -1) | 0; QA((x + ((B * 24) | 0)) | 0); w = B; } w = (x + -24) | 0; c[y >> 2] = w; F = y; G = e; H = w; I = 33; } } else { w = (e + 4) | 0; F = w; G = e; H = c[w >> 2] | 0; I = 33; } if ((I | 0) == 33) if ((c[G >> 2] | 0) == (H | 0)) { D = b; E = 1; } else { FB(i, (H + -24) | 0); w = c[F >> 2] | 0; B = 0; while (1) { if ((B | 0) == -1) break; C = (B + -1) | 0; QA((w + ((C * 24) | 0)) | 0); B = C; } B = (w + -24) | 0; c[F >> 2] = B; c[j >> 2] = 0; c[(j + 4) >> 2] = 0; c[(j + 8) >> 2] = 0; y = 0; while (1) { if ((y | 0) == 3) break; c[(j + (y << 2)) >> 2] = 0; y = (y + 1) | 0; } if (q) { if ((c[G >> 2] | 0) == (B | 0)) { J = b; K = 1; } else { FB(k, (w + -48) | 0); y = (j + 11) | 0; if ((a[y >> 0] | 0) < 0) { x = c[j >> 2] | 0; a[g >> 0] = 0; cB(x, g); c[(j + 4) >> 2] = 0; } else { a[g >> 0] = 0; cB(j, g); a[y >> 0] = 0; } TB(j); c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; y = 0; while (1) { if ((y | 0) == 3) break; c[(k + (y << 2)) >> 2] = 0; y = (y + 1) | 0; } iB(k); y = c[F >> 2] | 0; w = 0; while (1) { if ((w | 0) == -1) break; B = (w + -1) | 0; QA((y + ((B * 24) | 0)) | 0); w = B; } c[F >> 2] = y + -24; I = 52; } } else I = 52; if ((I | 0) == 52) { c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; w = 0; while (1) { if ((w | 0) == 3) break; c[(g + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } if (s) uC(g, 18747); if (r) qB(g, 18957) | 0; else qB(g, 18707) | 0; if (q) { UB(m, 18675, j); qB(m, 18961) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(m + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } w = a[(k + 11) >> 0] | 0; q = (w << 24) >> 24 < 0; TA( g, q ? c[k >> 2] | 0 : k, q ? c[(k + 4) >> 2] | 0 : w & 255 ) | 0; iB(k); iB(m); } w = a[(i + 11) >> 0] | 0; q = (w << 24) >> 24 < 0; TA( g, q ? c[i >> 2] | 0 : i, q ? c[(i + 4) >> 2] | 0 : w & 255 ) | 0; if (z) { UB(m, 18670, h); qB(m, 18673) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(m + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } w = a[(k + 11) >> 0] | 0; q = (w << 24) >> 24 < 0; TA( g, q ? c[k >> 2] | 0 : k, q ? c[(k + 4) >> 2] | 0 : w & 255 ) | 0; iB(k); iB(m); } c[n >> 2] = c[g >> 2]; c[(n + 4) >> 2] = c[(g + 4) >> 2]; c[(n + 8) >> 2] = c[(g + 8) >> 2]; w = 0; while (1) { if ((w | 0) == 3) break; c[(g + (w << 2)) >> 2] = 0; w = (w + 1) | 0; } IB(k, n); w = c[F >> 2] | 0; if (w >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(w, k); c[F >> 2] = (c[F >> 2] | 0) + 24; } else LB(e, k); QA(k); iB(n); iB(g); J = (A + 1) | 0; K = 0; } iB(j); iB(i); D = J; E = K; } iB(h); if (!E) { v = D; break a; } } } } while (0); v = b; } else v = b; } else v = b; } while (0); l = f; return v | 0; } function iC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 48) | 0; g = (f + 36) | 0; h = (f + 24) | 0; i = (f + 12) | 0; j = f; k = SB(b, d, e) | 0; if ( (k | 0) != (b | 0) ? ((d = (e + 4) | 0), (m = c[d >> 2] | 0), (c[e >> 2] | 0) != (m | 0)) : 0 ) { FB(j, (m + -24) | 0); pB(j, 0, 18946) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; m = 0; while (1) { if ((m | 0) == 3) break; c[(j + (m << 2)) >> 2] = 0; m = (m + 1) | 0; } qB(i, 18673) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; m = 0; while (1) { if ((m | 0) == 3) break; c[(i + (m << 2)) >> 2] = 0; m = (m + 1) | 0; } m = c[d >> 2] | 0; d = (m + -24) | 0; e = (d + 11) | 0; if ((a[e >> 0] | 0) < 0) { n = c[d >> 2] | 0; a[g >> 0] = 0; cB(n, g); c[(m + -20) >> 2] = 0; } else { a[g >> 0] = 0; cB(d, g); a[e >> 0] = 0; } TB(d); c[d >> 2] = c[h >> 2]; c[(d + 4) >> 2] = c[(h + 4) >> 2]; c[(d + 8) >> 2] = c[(h + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(h + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } iB(h); iB(i); iB(j); o = k; } else o = b; l = f; return o | 0; } function jC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; f = l; l = (l + 16) | 0; g = f; if ( ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 112 : 0) ? (a[(b + 1) >> 0] | 0) == 116 : 0 ) ? ((h = (b + 2) | 0), (i = SB(h, d, e) | 0), (i | 0) != (h | 0)) : 0 ) ? ((h = SB(i, d, e) | 0), (h | 0) != (i | 0)) : 0 ) ? ((i = (e + 4) | 0), (d = c[i >> 2] | 0), ((((d - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) : 0 ) { FB(g, (d + -24) | 0); d = c[i >> 2] | 0; e = 0; while (1) { if ((e | 0) == -1) break; j = (e + -1) | 0; QA((d + ((j * 24) | 0)) | 0); e = j; } c[i >> 2] = d + -24; qB((d + -48) | 0, 18943) | 0; d = a[(g + 11) >> 0] | 0; e = (d << 24) >> 24 < 0; TA( ((c[i >> 2] | 0) + -24) | 0, e ? c[g >> 2] | 0 : g, e ? c[(g + 4) >> 2] | 0 : d & 255 ) | 0; iB(g); k = h; } else k = b; l = f; return k | 0; } function kC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; f = l; l = (l + 112) | 0; g = (f + 88) | 0; h = (f + 64) | 0; i = (f + 36) | 0; j = (f + 48) | 0; k = (f + 24) | 0; m = (f + 12) | 0; n = f; if ( ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 114 : 0) ? (a[(b + 1) >> 0] | 0) == 99 : 0 ) ? ((o = (b + 2) | 0), (p = mB(o, d, e) | 0), (p | 0) != (o | 0)) : 0 ) ? ((o = SB(p, d, e) | 0), (o | 0) != (p | 0)) : 0 ) ? ((p = (e + 4) | 0), (d = c[p >> 2] | 0), ((((d - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) : 0 ) { FB(g, (d + -24) | 0); d = c[p >> 2] | 0; e = 0; while (1) { if ((e | 0) == -1) break; q = (e + -1) | 0; QA((d + ((q * 24) | 0)) | 0); e = q; } c[p >> 2] = d + -24; FB(n, (d + -48) | 0); pB(n, 0, 18925) | 0; c[m >> 2] = c[n >> 2]; c[(m + 4) >> 2] = c[(n + 4) >> 2]; c[(m + 8) >> 2] = c[(n + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(n + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(m, 18922) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(m + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } d = a[(g + 11) >> 0] | 0; e = (d << 24) >> 24 < 0; TA( k, e ? c[g >> 2] | 0 : g, e ? c[(g + 4) >> 2] | 0 : d & 255 ) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(k + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(j, 18673) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(j + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } IB(h, i); JB(((c[p >> 2] | 0) + -24) | 0, h); QA(h); iB(i); iB(j); iB(k); iB(m); iB(n); iB(g); r = o; } else r = b; l = f; return r | 0; } function lC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; f = l; l = (l + 112) | 0; g = (f + 88) | 0; h = (f + 64) | 0; i = (f + 36) | 0; j = (f + 48) | 0; k = (f + 24) | 0; m = (f + 12) | 0; n = f; if ( ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 115 : 0) ? (a[(b + 1) >> 0] | 0) == 99 : 0 ) ? ((o = (b + 2) | 0), (p = mB(o, d, e) | 0), (p | 0) != (o | 0)) : 0 ) ? ((o = SB(p, d, e) | 0), (o | 0) != (p | 0)) : 0 ) ? ((p = (e + 4) | 0), (d = c[p >> 2] | 0), ((((d - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 >= 2) : 0 ) { FB(g, (d + -24) | 0); d = c[p >> 2] | 0; e = 0; while (1) { if ((e | 0) == -1) break; q = (e + -1) | 0; QA((d + ((q * 24) | 0)) | 0); e = q; } c[p >> 2] = d + -24; FB(n, (d + -48) | 0); pB(n, 0, 18909) | 0; c[m >> 2] = c[n >> 2]; c[(m + 4) >> 2] = c[(n + 4) >> 2]; c[(m + 8) >> 2] = c[(n + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(n + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(m, 18922) | 0; c[k >> 2] = c[m >> 2]; c[(k + 4) >> 2] = c[(m + 4) >> 2]; c[(k + 8) >> 2] = c[(m + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(m + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } d = a[(g + 11) >> 0] | 0; e = (d << 24) >> 24 < 0; TA( k, e ? c[g >> 2] | 0 : g, e ? c[(g + 4) >> 2] | 0 : d & 255 ) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(k + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(j, 18673) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(j + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } IB(h, i); JB(((c[p >> 2] | 0) + -24) | 0, h); QA(h); iB(i); iB(j); iB(k); iB(m); iB(n); iB(g); r = o; } else r = b; l = f; return r | 0; } function mC(b, c, d) { b = b | 0; c = c | 0; d = d | 0; var e = 0, f = 0, g = 0; if ( (((c - b) | 0) > 2 ? (a[b >> 0] | 0) == 115 : 0) ? (a[(b + 1) >> 0] | 0) == 112 : 0 ) { e = (b + 2) | 0; f = SB(e, c, d) | 0; g = (f | 0) == (e | 0) ? b : f; } else g = b; return g | 0; } function nC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 64) | 0; g = (f + 40) | 0; h = (f + 12) | 0; i = (f + 24) | 0; j = f; if ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 115 : 0) ? (a[(b + 1) >> 0] | 0) == 116 : 0 ) ? ((k = (b + 2) | 0), (m = mB(k, d, e) | 0), (m | 0) != (k | 0)) : 0 ) ? ((k = (e + 4) | 0), (d = c[k >> 2] | 0), (c[e >> 2] | 0) != (d | 0)) : 0 ) { FB(j, (d + -24) | 0); pB(j, 0, 18900) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(j + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(i, 18673) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(i + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } IB(g, h); JB(((c[k >> 2] | 0) + -24) | 0, g); QA(g); iB(h); iB(i); iB(j); n = m; } else n = b; l = f; return n | 0; } function oC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 64) | 0; g = (f + 40) | 0; h = (f + 12) | 0; i = (f + 24) | 0; j = f; if ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 115 : 0) ? (a[(b + 1) >> 0] | 0) == 122 : 0 ) ? ((k = (b + 2) | 0), (m = SB(k, d, e) | 0), (m | 0) != (k | 0)) : 0 ) ? ((k = (e + 4) | 0), (d = c[k >> 2] | 0), (c[e >> 2] | 0) != (d | 0)) : 0 ) { FB(j, (d + -24) | 0); pB(j, 0, 18900) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(j + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(i, 18673) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(i + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } IB(g, h); JB(((c[k >> 2] | 0) + -24) | 0, g); QA(g); iB(h); iB(i); iB(j); n = m; } else n = b; l = f; return n | 0; } function pC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; f = l; l = (l + 64) | 0; g = (f + 48) | 0; h = (f + 24) | 0; i = f; j = (f + 12) | 0; if ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 115 : 0) ? (a[(b + 1) >> 0] | 0) == 90 : 0 ) ? ((k = (b + 2) | 0), (a[k >> 0] | 0) == 84) : 0 ) ? ((m = (e + 4) | 0), (n = ((((c[m >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0), (o = DB(k, d, e) | 0), (d = ((((c[m >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0), (o | 0) != (k | 0)) : 0 ) { c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; RB(g, 18886, AB(18886) | 0); a: do { if ((n | 0) != (d | 0)) { FB(h, ((c[e >> 2] | 0) + ((n * 24) | 0)) | 0); k = a[(h + 11) >> 0] | 0; p = (k << 24) >> 24 < 0; TA( g, p ? c[h >> 2] | 0 : h, p ? c[(h + 4) >> 2] | 0 : k & 255 ) | 0; iB(h); k = (h + 11) | 0; p = (h + 4) | 0; q = n; while (1) { r = (q + 1) | 0; if ((r | 0) == (d | 0)) break a; FB(i, ((c[e >> 2] | 0) + ((r * 24) | 0)) | 0); pB(i, 0, 18897) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; s = 0; while (1) { if ((s | 0) == 3) break; c[(i + (s << 2)) >> 2] = 0; s = (s + 1) | 0; } s = a[k >> 0] | 0; t = (s << 24) >> 24 < 0; TA( g, t ? c[h >> 2] | 0 : h, t ? c[p >> 2] | 0 : s & 255 ) | 0; iB(h); iB(i); q = r; } } } while (0); qB(g, 18673) | 0; i = d; while (1) { if ((i | 0) == (n | 0)) break; d = c[m >> 2] | 0; q = 0; while (1) { if ((q | 0) == -1) break; p = (q + -1) | 0; QA((d + ((p * 24) | 0)) | 0); q = p; } c[m >> 2] = d + -24; i = (i + -1) | 0; } c[j >> 2] = c[g >> 2]; c[(j + 4) >> 2] = c[(g + 4) >> 2]; c[(j + 8) >> 2] = c[(g + 8) >> 2]; i = 0; while (1) { if ((i | 0) == 3) break; c[(g + (i << 2)) >> 2] = 0; i = (i + 1) | 0; } IB(h, j); i = c[m >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, h); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, h); QA(h); iB(j); iB(g); u = o; } else u = b; l = f; return u | 0; } function qC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 64) | 0; g = (f + 40) | 0; h = (f + 12) | 0; i = (f + 24) | 0; j = f; if ( ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 115 : 0) ? (a[(b + 1) >> 0] | 0) == 90 : 0 ) ? ((k = (b + 2) | 0), (a[k >> 0] | 0) == 102) : 0 ) ? ((m = XB(k, d, e) | 0), (m | 0) != (k | 0)) : 0 ) ? ((k = (e + 4) | 0), (d = c[k >> 2] | 0), (c[e >> 2] | 0) != (d | 0)) : 0 ) { FB(j, (d + -24) | 0); pB(j, 0, 18886) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(j + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } qB(i, 18673) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(i + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } IB(g, h); JB(((c[k >> 2] | 0) + -24) | 0, g); QA(g); iB(h); iB(i); iB(j); n = m; } else n = b; l = f; return n | 0; } function rC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 64) | 0; g = (f + 40) | 0; h = (f + 12) | 0; i = (f + 24) | 0; j = f; a: do { if (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 116 : 0) { k = a[(b + 1) >> 0] | 0; switch ((k << 24) >> 24) { case 105: case 101: break; default: { m = b; break a; } } n = (b + 2) | 0; if ((k << 24) >> 24 == 101) o = SB(n, d, e) | 0; else o = mB(n, d, e) | 0; if ( (o | 0) != (n | 0) ? ((n = (e + 4) | 0), (k = c[n >> 2] | 0), (c[e >> 2] | 0) != (k | 0)) : 0 ) { FB(j, (k + -24) | 0); pB(j, 0, 18878) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; k = 0; while (1) { if ((k | 0) == 3) break; c[(j + (k << 2)) >> 2] = 0; k = (k + 1) | 0; } qB(i, 18673) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; k = 0; while (1) { if ((k | 0) == 3) break; c[(i + (k << 2)) >> 2] = 0; k = (k + 1) | 0; } IB(g, h); JB(((c[n >> 2] | 0) + -24) | 0, g); QA(g); iB(h); iB(i); iB(j); m = o; } else m = b; } else m = b; } while (0); l = f; return m | 0; } function sC(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 5); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function tC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 48) | 0; g = (f + 24) | 0; h = f; i = (f + 12) | 0; if ( ( ( (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 116 : 0) ? (a[(b + 1) >> 0] | 0) == 119 : 0 ) ? ((j = (b + 2) | 0), (k = SB(j, d, e) | 0), (k | 0) != (j | 0)) : 0 ) ? ((j = (e + 4) | 0), (d = c[j >> 2] | 0), (c[e >> 2] | 0) != (d | 0)) : 0 ) { FB(i, (d + -24) | 0); pB(i, 0, 18871) | 0; c[h >> 2] = c[i >> 2]; c[(h + 4) >> 2] = c[(i + 4) >> 2]; c[(h + 8) >> 2] = c[(i + 8) >> 2]; d = 0; while (1) { if ((d | 0) == 3) break; c[(i + (d << 2)) >> 2] = 0; d = (d + 1) | 0; } IB(g, h); JB(((c[j >> 2] | 0) + -24) | 0, g); QA(g); iB(h); iB(i); m = k; } else m = b; l = f; return m | 0; } function uC(a, b) { a = a | 0; b = b | 0; vC(a, b, AB(b) | 0); return; } function vC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; f = l; l = (l + 16) | 0; g = f; h = (b + 11) | 0; i = a[h >> 0] | 0; j = (i << 24) >> 24 < 0; if (j) k = ((c[(b + 8) >> 2] & 2147483647) + -1) | 0; else k = 10; do { if (k >>> 0 >= e >>> 0) { if (j) m = c[b >> 2] | 0; else m = b; wC(m, d, e) | 0; a[g >> 0] = 0; cB((m + e) | 0, g); if ((a[h >> 0] | 0) < 0) { c[(b + 4) >> 2] = e; break; } else { a[h >> 0] = e; break; } } else { if (j) n = c[(b + 4) >> 2] | 0; else n = i & 255; dB(b, k, (e - k) | 0, n, 0, n, e, d); } } while (0); l = f; return; } function wC(a, b, c) { a = a | 0; b = b | 0; c = c | 0; if (c | 0) nE(a | 0, b | 0, c | 0) | 0; return a | 0; } function xC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; f = l; l = (l + 16) | 0; g = f; a: do { if (((d - b) | 0) > 1) { h = a[b >> 0] | 0; switch ((h << 24) >> 24) { case 100: case 111: { if ((a[(b + 1) >> 0] | 0) == 110) { i = (b + 2) | 0; if ((h << 24) >> 24 != 111) { h = UC(i, d, e) | 0; j = (h | 0) == (i | 0) ? b : h; break a; } h = EC(i, d, e) | 0; if ((h | 0) == (i | 0)) { j = b; break a; } i = EB(h, d, e) | 0; if ((i | 0) == (h | 0)) { j = h; break a; } h = (e + 4) | 0; k = c[h >> 2] | 0; if ( ((((k - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { j = i; break a; } FB(g, (k + -24) | 0); k = c[h >> 2] | 0; m = 0; while (1) { if ((m | 0) == -1) break; n = (m + -1) | 0; QA((k + ((n * 24) | 0)) | 0); m = n; } c[h >> 2] = k + -24; m = a[(g + 11) >> 0] | 0; n = (m << 24) >> 24 < 0; TA( (k + -48) | 0, n ? c[g >> 2] | 0 : g, n ? c[(g + 4) >> 2] | 0 : m & 255 ) | 0; iB(g); j = i; break a; } break; } default: { } } m = AC(b, d, e) | 0; if ((m | 0) == (b | 0)) { n = EC(b, d, e) | 0; if ((n | 0) != (b | 0)) { o = EB(n, d, e) | 0; if ((o | 0) != (n | 0)) { p = (e + 4) | 0; q = c[p >> 2] | 0; if ( ((((q - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) j = o; else { FB(g, (q + -24) | 0); q = c[p >> 2] | 0; r = 0; while (1) { if ((r | 0) == -1) break; s = (r + -1) | 0; QA((q + ((s * 24) | 0)) | 0); r = s; } c[p >> 2] = q + -24; r = a[(g + 11) >> 0] | 0; i = (r << 24) >> 24 < 0; TA( (q + -48) | 0, i ? c[g >> 2] | 0 : g, i ? c[(g + 4) >> 2] | 0 : r & 255 ) | 0; iB(g); j = o; } } else j = n; } else j = b; } else j = m; } else j = b; } while (0); l = f; return j | 0; } function yC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; f = l; l = (l + 32) | 0; g = (f + 8) | 0; h = f; a: do { if ((b | 0) == (d | 0)) i = b; else switch (a[b >> 0] | 0) { case 84: { j = (e + 4) | 0; k = ((((c[j >> 2] | 0) - (c[e >> 2] | 0)) | 0) / 24) | 0; m = DB(b, d, e) | 0; n = c[j >> 2] | 0; o = (((n - (c[e >> 2] | 0)) | 0) / 24) | 0; p = n; if ( ((m | 0) != (b | 0)) & ((o | 0) == ((k + 1) | 0)) ) { c[h >> 2] = c[(e + 12) >> 2]; vB(g, (p + -24) | 0, h); n = (e + 20) | 0; q = c[n >> 2] | 0; if (q >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[q >> 2] = 0; r = (q + 4) | 0; c[r >> 2] = 0; s = (q + 8) | 0; c[s >> 2] = 0; c[(q + 12) >> 2] = c[(g + 12) >> 2]; c[q >> 2] = c[g >> 2]; q = (g + 4) | 0; c[r >> 2] = c[q >> 2]; r = (g + 8) | 0; c[s >> 2] = c[r >> 2]; c[r >> 2] = 0; c[q >> 2] = 0; c[g >> 2] = 0; c[n >> 2] = (c[n >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); i = m; break a; } m = o; o = p; while (1) { if ((m | 0) == (k | 0)) { i = b; break a; } p = 0; while (1) { if ((p | 0) == -1) break; n = (p + -1) | 0; QA((o + ((n * 24) | 0)) | 0); p = n; } p = (o + -24) | 0; c[j >> 2] = p; m = (m + -1) | 0; o = p; } break; } case 68: { o = OB(b, d, e) | 0; if ((o | 0) == (b | 0)) { i = b; break a; } m = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (m | 0)) { i = b; break a; } c[h >> 2] = c[(e + 12) >> 2]; vB(g, (m + -24) | 0, h); m = (e + 20) | 0; j = c[m >> 2] | 0; if (j >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[j >> 2] = 0; k = (j + 4) | 0; c[k >> 2] = 0; p = (j + 8) | 0; c[p >> 2] = 0; c[(j + 12) >> 2] = c[(g + 12) >> 2]; c[j >> 2] = c[g >> 2]; j = (g + 4) | 0; c[k >> 2] = c[j >> 2]; k = (g + 8) | 0; c[p >> 2] = c[k >> 2]; c[k >> 2] = 0; c[j >> 2] = 0; c[g >> 2] = 0; c[m >> 2] = (c[m >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); i = o; break a; break; } case 83: { o = NB(b, d, e) | 0; if ((o | 0) != (b | 0)) { i = o; break a; } if (((d - b) | 0) <= 2) { i = b; break a; } if ((a[(b + 1) >> 0] | 0) != 116) { i = b; break a; } o = (b + 2) | 0; m = BC(o, d, e) | 0; if ((m | 0) == (o | 0)) { i = b; break a; } o = (e + 4) | 0; j = c[o >> 2] | 0; if ((c[e >> 2] | 0) == (j | 0)) { i = b; break a; } pB((j + -24) | 0, 0, 18969) | 0; j = ((c[o >> 2] | 0) + -24) | 0; c[h >> 2] = c[(e + 12) >> 2]; vB(g, j, h); j = (e + 20) | 0; o = c[j >> 2] | 0; if (o >>> 0 < (c[(e + 24) >> 2] | 0) >>> 0) { c[o >> 2] = 0; k = (o + 4) | 0; c[k >> 2] = 0; p = (o + 8) | 0; c[p >> 2] = 0; c[(o + 12) >> 2] = c[(g + 12) >> 2]; c[o >> 2] = c[g >> 2]; o = (g + 4) | 0; c[k >> 2] = c[o >> 2]; k = (g + 8) | 0; c[p >> 2] = c[k >> 2]; c[k >> 2] = 0; c[o >> 2] = 0; c[g >> 2] = 0; c[j >> 2] = (c[j >> 2] | 0) + 16; } else wB((e + 16) | 0, g); RA(g); i = m; break a; break; } default: { i = b; break a; } } } while (0); l = f; return i | 0; } function zC(a, b, c) { a = a | 0; b = b | 0; c = c | 0; return AC(a, b, c) | 0; } function AC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 16) | 0; g = f; if ( (b | 0) != (d | 0) ? ((h = GB(b, d, e) | 0), (h | 0) != (b | 0)) : 0 ) { i = EB(h, d, e) | 0; if ((i | 0) != (h | 0)) { d = (e + 4) | 0; j = c[d >> 2] | 0; if (((((j - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2) k = b; else { FB(g, (j + -24) | 0); j = c[d >> 2] | 0; e = 0; while (1) { if ((e | 0) == -1) break; m = (e + -1) | 0; QA((j + ((m * 24) | 0)) | 0); e = m; } c[d >> 2] = j + -24; d = a[(g + 11) >> 0] | 0; e = (d << 24) >> 24 < 0; TA( (j + -48) | 0, e ? c[g >> 2] | 0 : g, e ? c[(g + 4) >> 2] | 0 : d & 255 ) | 0; iB(g); k = i; } } else k = h; } else k = b; l = f; return k | 0; } function BC(b, c, d) { b = b | 0; c = c | 0; d = d | 0; var e = 0; a: do { if ((b | 0) == (c | 0)) e = b; else switch (a[b >> 0] | 0) { case 68: case 67: { e = CC(b, c, d) | 0; break a; break; } case 85: { e = DC(b, c, d) | 0; break a; break; } case 57: case 56: case 55: case 54: case 53: case 52: case 51: case 50: case 49: { e = GB(b, c, d) | 0; break a; break; } default: return EC(b, c, d) | 0; } } while (0); return e | 0; } function CC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0; f = l; l = (l + 64) | 0; g = (f + 40) | 0; h = (f + 24) | 0; i = f; j = (f + 12) | 0; a: do { if ( ((d - b) | 0) > 1 ? ((k = (e + 4) | 0), (m = c[k >> 2] | 0), (c[e >> 2] | 0) != (m | 0)) : 0 ) { switch (a[b >> 0] | 0) { case 67: { switch (a[(b + 1) >> 0] | 0) { case 53: case 51: case 50: case 49: break; default: { n = b; break a; } } SC(h, (m + -24) | 0); IB(g, h); o = c[k >> 2] | 0; if (o >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(o, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); iB(h); a[(e + 60) >> 0] = 1; n = (b + 2) | 0; break a; break; } case 68: break; default: { n = b; break a; } } switch (a[(b + 1) >> 0] | 0) { case 53: case 50: case 49: case 48: break; default: { n = b; break a; } } SC(j, (m + -24) | 0); pB(j, 0, 18745) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; m = 0; while (1) { if ((m | 0) == 3) break; c[(j + (m << 2)) >> 2] = 0; m = (m + 1) | 0; } IB(g, i); m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); iB(i); iB(j); a[(e + 60) >> 0] = 1; n = (b + 2) | 0; } else n = b; } while (0); l = f; return n | 0; } function Zl(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0; i = l; l = (l + 192) | 0; j = (i + 176) | 0; k = (i + 172) | 0; m = (i + 168) | 0; n = (i + 164) | 0; o = (i + 160) | 0; p = (i + 156) | 0; q = (i + 152) | 0; r = (i + 148) | 0; s = (i + 144) | 0; t = (i + 140) | 0; u = (i + 136) | 0; v = (i + 132) | 0; w = (i + 128) | 0; x = (i + 124) | 0; y = (i + 120) | 0; z = (i + 116) | 0; A = (i + 112) | 0; B = (i + 108) | 0; C = (i + 104) | 0; D = (i + 100) | 0; E = (i + 96) | 0; F = (i + 92) | 0; G = (i + 88) | 0; H = (i + 84) | 0; I = (i + 80) | 0; J = (i + 76) | 0; K = (i + 72) | 0; L = (i + 68) | 0; M = (i + 64) | 0; N = (i + 60) | 0; O = (i + 56) | 0; P = (i + 52) | 0; Q = (i + 48) | 0; R = (i + 44) | 0; S = (i + 40) | 0; T = (i + 36) | 0; U = (i + 32) | 0; V = (i + 28) | 0; W = (i + 24) | 0; X = (i + 20) | 0; Y = (i + 16) | 0; Z = (i + 12) | 0; _ = (i + 8) | 0; $ = (i + 4) | 0; aa = i; c[X >> 2] = a; c[Y >> 2] = b; c[Z >> 2] = e; c[_ >> 2] = f; c[$ >> 2] = g; c[aa >> 2] = h; h = c[Y >> 2] | 0; Y = c[Z >> 2] | 0; Z = c[_ >> 2] | 0; _ = c[$ >> 2] | 0; $ = c[aa >> 2] | 0; c[j >> 2] = c[X >> 2]; c[k >> 2] = h; c[m >> 2] = Y; c[n >> 2] = Z; c[o >> 2] = _; c[p >> 2] = $; c[q >> 2] = 0; c[r >> 2] = 0; c[s >> 2] = c[o >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = c[s >> 2]; c[v >> 2] = (c[s >> 2] | 0) + (c[p >> 2] | 0); c[w >> 2] = (c[v >> 2] | 0) + -8; c[x >> 2] = (c[((c[j >> 2] | 0) + 4) >> 2] | 0) + (c[((c[j >> 2] | 0) + 12) >> 2] | 0); c[y >> 2] = c[q >> 2] | 0 ? 5 : 4; c[z >> 2] = c[c[m >> 2] >> 2]; c[A >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[B >> 2] = 0; c[t >> 2] = (c[t >> 2] | 0) + (((c[t >> 2] | 0) == (c[x >> 2] | 0)) & 1); c[((c[j >> 2] | 0) + 28) >> 2] = c[((c[j >> 2] | 0) + 24) >> 2]; c[C >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); if ((c[A >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0) { c[B >> 2] = c[A >> 2]; c[A >> 2] = 0; } if ((c[z >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0) { c[B >> 2] = c[z >> 2]; c[z >> 2] = 0; } while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[D >> 2] = 0; c[E >> 2] = 0; c[F >> 2] = (c[t >> 2] | 0) + 1; C = ((c[z >> 2] | 0) >>> 0 > 0) & 1; q = Bk(((c[t >> 2] | 0) + 1) | 0) | 0; if ( !((C & ((q | 0) == (Bk( ((c[t >> 2] | 0) + 1 + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0 ? ((c[D >> 2] = (Qm( ((c[t >> 2] | 0) + 1 + 4) | 0, ((c[t >> 2] | 0) + 1 + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), !(c[r >> 2] | 0)) : 0) ) { c[G >> 2] = 99999999; c[H >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, G ) | 0; if ((c[H >> 2] | 0) >>> 0 > (c[D >> 2] | 0) >>> 0) { c[D >> 2] = c[H >> 2]; c[F >> 2] = c[t >> 2]; c[E >> 2] = c[G >> 2]; } if ((c[D >> 2] | 0) >>> 0 < 4) { c[t >> 2] = (c[t >> 2] | 0) + ((((c[t >> 2] | 0) - (c[u >> 2] | 0)) >> 8) + 1); continue; } a: do { if ((c[r >> 2] | 0) >>> 0 >= 1) while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; if ( ( ( c[E >> 2] | 0 ? ((q = ((c[z >> 2] | 0) >>> 0 > 0) & 1), (C = Bk(c[t >> 2] | 0) | 0), (q & ((C | 0) == (Bk( ((c[t >> 2] | 0) + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0) : 0 ) ? ((c[I >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), (c[J >> 2] = (c[I >> 2] | 0) * 3), (C = ((c[D >> 2] | 0) * 3) | 0), (c[K >> 2] = C - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 1), (c[I >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[J >> 2] | 0) > (c[K >> 2] | 0) : 0 ) { c[D >> 2] = c[I >> 2]; c[E >> 2] = 0; c[F >> 2] = c[t >> 2]; } c[L >> 2] = 99999999; c[M >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, L ) | 0; C = c[M >> 2] << 2; c[N >> 2] = C - (Mm(((c[L >> 2] | 0) + 1) | 0) | 0); C = c[D >> 2] << 2; c[O >> 2] = C - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 4; if ( (c[M >> 2] | 0) >>> 0 >= 4 ? (c[N >> 2] | 0) > (c[O >> 2] | 0) : 0 ) { c[D >> 2] = c[M >> 2]; c[E >> 2] = c[L >> 2]; c[F >> 2] = c[t >> 2]; continue; } if ((c[r >> 2] | 0) != 2) break a; if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; do { if ( ( c[E >> 2] | 0 ? ((C = ((c[z >> 2] | 0) >>> 0 > 0) & 1), (q = Bk(c[t >> 2] | 0) | 0), (C & ((q | 0) == (Bk( ((c[t >> 2] | 0) + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0) : 0 ) ? ((c[P >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), (c[Q >> 2] = c[P >> 2] << 2), (q = c[D >> 2] << 2), (c[R >> 2] = q - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 1), (c[P >> 2] | 0) >>> 0 >= 4) : 0 ) { if ((c[Q >> 2] | 0) <= (c[R >> 2] | 0)) break; c[D >> 2] = c[P >> 2]; c[E >> 2] = 0; c[F >> 2] = c[t >> 2]; } } while (0); c[S >> 2] = 99999999; c[T >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, S ) | 0; q = c[T >> 2] << 2; c[U >> 2] = q - (Mm(((c[S >> 2] | 0) + 1) | 0) | 0); q = c[D >> 2] << 2; c[V >> 2] = q - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 7; if ((c[T >> 2] | 0) >>> 0 < 4) break a; if ((c[U >> 2] | 0) <= (c[V >> 2] | 0)) break a; c[D >> 2] = c[T >> 2]; c[E >> 2] = c[S >> 2]; c[F >> 2] = c[t >> 2]; } } while (0); if (c[E >> 2] | 0) { while (1) { if ( !( ((c[F >> 2] | 0) >>> 0 > (c[u >> 2] | 0) >>> 0 ? (((c[F >> 2] | 0) + (0 - ((c[E >> 2] | 0) - 2))) | 0) >>> 0 > (c[x >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[F >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[ ((c[F >> 2] | 0) + (0 - ((c[E >> 2] | 0) - 2)) + -1) >> 0 ] | 0 | 0) ) break; c[F >> 2] = (c[F >> 2] | 0) + -1; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[A >> 2] = c[z >> 2]; c[z >> 2] = (c[E >> 2] | 0) - 2; } } c[W >> 2] = (c[F >> 2] | 0) - (c[u >> 2] | 0); Nm( c[k >> 2] | 0, c[W >> 2] | 0, c[u >> 2] | 0, c[E >> 2] | 0, ((c[D >> 2] | 0) - 3) | 0 ); q = ((c[F >> 2] | 0) + (c[D >> 2] | 0)) | 0; c[t >> 2] = q; c[u >> 2] = q; while (1) { if ( !( ((c[A >> 2] | 0) >>> 0 > 0 ? (c[t >> 2] | 0) >>> 0 <= (c[w >> 2] | 0) >>> 0 : 0) | 0 ) ) break; q = Bk(c[t >> 2] | 0) | 0; if ( (q | 0) != (Bk(((c[t >> 2] | 0) + (0 - (c[A >> 2] | 0))) | 0) | 0) ) break; c[D >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[A >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4; c[E >> 2] = c[A >> 2]; c[A >> 2] = c[z >> 2]; c[z >> 2] = c[E >> 2]; Nm( c[k >> 2] | 0, 0, c[u >> 2] | 0, 0, ((c[D >> 2] | 0) - 3) | 0 ); c[t >> 2] = (c[t >> 2] | 0) + (c[D >> 2] | 0); c[u >> 2] = c[t >> 2]; } } c[c[m >> 2] >> 2] = c[z >> 2] | 0 ? c[z >> 2] | 0 : c[B >> 2] | 0; c[((c[m >> 2] | 0) + 4) >> 2] = c[A >> 2] | 0 ? c[A >> 2] | 0 : c[B >> 2] | 0; l = i; return ((c[v >> 2] | 0) - (c[u >> 2] | 0)) | 0; } function _l(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0; i = l; l = (l + 192) | 0; j = (i + 176) | 0; k = (i + 172) | 0; m = (i + 168) | 0; n = (i + 164) | 0; o = (i + 160) | 0; p = (i + 156) | 0; q = (i + 152) | 0; r = (i + 148) | 0; s = (i + 144) | 0; t = (i + 140) | 0; u = (i + 136) | 0; v = (i + 132) | 0; w = (i + 128) | 0; x = (i + 124) | 0; y = (i + 120) | 0; z = (i + 116) | 0; A = (i + 112) | 0; B = (i + 108) | 0; C = (i + 104) | 0; D = (i + 100) | 0; E = (i + 96) | 0; F = (i + 92) | 0; G = (i + 88) | 0; H = (i + 84) | 0; I = (i + 80) | 0; J = (i + 76) | 0; K = (i + 72) | 0; L = (i + 68) | 0; M = (i + 64) | 0; N = (i + 60) | 0; O = (i + 56) | 0; P = (i + 52) | 0; Q = (i + 48) | 0; R = (i + 44) | 0; S = (i + 40) | 0; T = (i + 36) | 0; U = (i + 32) | 0; V = (i + 28) | 0; W = (i + 24) | 0; X = (i + 20) | 0; Y = (i + 16) | 0; Z = (i + 12) | 0; _ = (i + 8) | 0; $ = (i + 4) | 0; aa = i; c[X >> 2] = a; c[Y >> 2] = b; c[Z >> 2] = e; c[_ >> 2] = f; c[$ >> 2] = g; c[aa >> 2] = h; h = c[Y >> 2] | 0; Y = c[Z >> 2] | 0; Z = c[_ >> 2] | 0; _ = c[$ >> 2] | 0; $ = c[aa >> 2] | 0; c[j >> 2] = c[X >> 2]; c[k >> 2] = h; c[m >> 2] = Y; c[n >> 2] = Z; c[o >> 2] = _; c[p >> 2] = $; c[q >> 2] = 0; c[r >> 2] = 1; c[s >> 2] = c[o >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = c[s >> 2]; c[v >> 2] = (c[s >> 2] | 0) + (c[p >> 2] | 0); c[w >> 2] = (c[v >> 2] | 0) + -8; c[x >> 2] = (c[((c[j >> 2] | 0) + 4) >> 2] | 0) + (c[((c[j >> 2] | 0) + 12) >> 2] | 0); c[y >> 2] = c[q >> 2] | 0 ? 5 : 4; c[z >> 2] = c[c[m >> 2] >> 2]; c[A >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[B >> 2] = 0; c[t >> 2] = (c[t >> 2] | 0) + (((c[t >> 2] | 0) == (c[x >> 2] | 0)) & 1); c[((c[j >> 2] | 0) + 28) >> 2] = c[((c[j >> 2] | 0) + 24) >> 2]; c[C >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); if ((c[A >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0) { c[B >> 2] = c[A >> 2]; c[A >> 2] = 0; } if ((c[z >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0) { c[B >> 2] = c[z >> 2]; c[z >> 2] = 0; } while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[D >> 2] = 0; c[E >> 2] = 0; c[F >> 2] = (c[t >> 2] | 0) + 1; C = ((c[z >> 2] | 0) >>> 0 > 0) & 1; q = Bk(((c[t >> 2] | 0) + 1) | 0) | 0; if ( !((C & ((q | 0) == (Bk( ((c[t >> 2] | 0) + 1 + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0 ? ((c[D >> 2] = (Qm( ((c[t >> 2] | 0) + 1 + 4) | 0, ((c[t >> 2] | 0) + 1 + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), !(c[r >> 2] | 0)) : 0) ) { c[G >> 2] = 99999999; c[H >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, G ) | 0; if ((c[H >> 2] | 0) >>> 0 > (c[D >> 2] | 0) >>> 0) { c[D >> 2] = c[H >> 2]; c[F >> 2] = c[t >> 2]; c[E >> 2] = c[G >> 2]; } if ((c[D >> 2] | 0) >>> 0 < 4) { c[t >> 2] = (c[t >> 2] | 0) + ((((c[t >> 2] | 0) - (c[u >> 2] | 0)) >> 8) + 1); continue; } a: do { if ((c[r >> 2] | 0) >>> 0 >= 1) while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; if ( ( ( c[E >> 2] | 0 ? ((q = ((c[z >> 2] | 0) >>> 0 > 0) & 1), (C = Bk(c[t >> 2] | 0) | 0), (q & ((C | 0) == (Bk( ((c[t >> 2] | 0) + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0) : 0 ) ? ((c[I >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), (c[J >> 2] = (c[I >> 2] | 0) * 3), (C = ((c[D >> 2] | 0) * 3) | 0), (c[K >> 2] = C - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 1), (c[I >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[J >> 2] | 0) > (c[K >> 2] | 0) : 0 ) { c[D >> 2] = c[I >> 2]; c[E >> 2] = 0; c[F >> 2] = c[t >> 2]; } c[L >> 2] = 99999999; c[M >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, L ) | 0; C = c[M >> 2] << 2; c[N >> 2] = C - (Mm(((c[L >> 2] | 0) + 1) | 0) | 0); C = c[D >> 2] << 2; c[O >> 2] = C - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 4; if ( (c[M >> 2] | 0) >>> 0 >= 4 ? (c[N >> 2] | 0) > (c[O >> 2] | 0) : 0 ) { c[D >> 2] = c[M >> 2]; c[E >> 2] = c[L >> 2]; c[F >> 2] = c[t >> 2]; continue; } if ((c[r >> 2] | 0) != 2) break a; if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; do { if ( ( c[E >> 2] | 0 ? ((C = ((c[z >> 2] | 0) >>> 0 > 0) & 1), (q = Bk(c[t >> 2] | 0) | 0), (C & ((q | 0) == (Bk( ((c[t >> 2] | 0) + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0) : 0 ) ? ((c[P >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), (c[Q >> 2] = c[P >> 2] << 2), (q = c[D >> 2] << 2), (c[R >> 2] = q - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 1), (c[P >> 2] | 0) >>> 0 >= 4) : 0 ) { if ((c[Q >> 2] | 0) <= (c[R >> 2] | 0)) break; c[D >> 2] = c[P >> 2]; c[E >> 2] = 0; c[F >> 2] = c[t >> 2]; } } while (0); c[S >> 2] = 99999999; c[T >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, S ) | 0; q = c[T >> 2] << 2; c[U >> 2] = q - (Mm(((c[S >> 2] | 0) + 1) | 0) | 0); q = c[D >> 2] << 2; c[V >> 2] = q - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 7; if ((c[T >> 2] | 0) >>> 0 < 4) break a; if ((c[U >> 2] | 0) <= (c[V >> 2] | 0)) break a; c[D >> 2] = c[T >> 2]; c[E >> 2] = c[S >> 2]; c[F >> 2] = c[t >> 2]; } } while (0); if (c[E >> 2] | 0) { while (1) { if ( !( ((c[F >> 2] | 0) >>> 0 > (c[u >> 2] | 0) >>> 0 ? (((c[F >> 2] | 0) + (0 - ((c[E >> 2] | 0) - 2))) | 0) >>> 0 > (c[x >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[F >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[ ((c[F >> 2] | 0) + (0 - ((c[E >> 2] | 0) - 2)) + -1) >> 0 ] | 0 | 0) ) break; c[F >> 2] = (c[F >> 2] | 0) + -1; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[A >> 2] = c[z >> 2]; c[z >> 2] = (c[E >> 2] | 0) - 2; } } c[W >> 2] = (c[F >> 2] | 0) - (c[u >> 2] | 0); Nm( c[k >> 2] | 0, c[W >> 2] | 0, c[u >> 2] | 0, c[E >> 2] | 0, ((c[D >> 2] | 0) - 3) | 0 ); q = ((c[F >> 2] | 0) + (c[D >> 2] | 0)) | 0; c[t >> 2] = q; c[u >> 2] = q; while (1) { if ( !( ((c[A >> 2] | 0) >>> 0 > 0 ? (c[t >> 2] | 0) >>> 0 <= (c[w >> 2] | 0) >>> 0 : 0) | 0 ) ) break; q = Bk(c[t >> 2] | 0) | 0; if ( (q | 0) != (Bk(((c[t >> 2] | 0) + (0 - (c[A >> 2] | 0))) | 0) | 0) ) break; c[D >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[A >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4; c[E >> 2] = c[A >> 2]; c[A >> 2] = c[z >> 2]; c[z >> 2] = c[E >> 2]; Nm( c[k >> 2] | 0, 0, c[u >> 2] | 0, 0, ((c[D >> 2] | 0) - 3) | 0 ); c[t >> 2] = (c[t >> 2] | 0) + (c[D >> 2] | 0); c[u >> 2] = c[t >> 2]; } } c[c[m >> 2] >> 2] = c[z >> 2] | 0 ? c[z >> 2] | 0 : c[B >> 2] | 0; c[((c[m >> 2] | 0) + 4) >> 2] = c[A >> 2] | 0 ? c[A >> 2] | 0 : c[B >> 2] | 0; l = i; return ((c[v >> 2] | 0) - (c[u >> 2] | 0)) | 0; } function $l(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0; i = l; l = (l + 192) | 0; j = (i + 176) | 0; k = (i + 172) | 0; m = (i + 168) | 0; n = (i + 164) | 0; o = (i + 160) | 0; p = (i + 156) | 0; q = (i + 152) | 0; r = (i + 148) | 0; s = (i + 144) | 0; t = (i + 140) | 0; u = (i + 136) | 0; v = (i + 132) | 0; w = (i + 128) | 0; x = (i + 124) | 0; y = (i + 120) | 0; z = (i + 116) | 0; A = (i + 112) | 0; B = (i + 108) | 0; C = (i + 104) | 0; D = (i + 100) | 0; E = (i + 96) | 0; F = (i + 92) | 0; G = (i + 88) | 0; H = (i + 84) | 0; I = (i + 80) | 0; J = (i + 76) | 0; K = (i + 72) | 0; L = (i + 68) | 0; M = (i + 64) | 0; N = (i + 60) | 0; O = (i + 56) | 0; P = (i + 52) | 0; Q = (i + 48) | 0; R = (i + 44) | 0; S = (i + 40) | 0; T = (i + 36) | 0; U = (i + 32) | 0; V = (i + 28) | 0; W = (i + 24) | 0; X = (i + 20) | 0; Y = (i + 16) | 0; Z = (i + 12) | 0; _ = (i + 8) | 0; $ = (i + 4) | 0; aa = i; c[X >> 2] = a; c[Y >> 2] = b; c[Z >> 2] = e; c[_ >> 2] = f; c[$ >> 2] = g; c[aa >> 2] = h; h = c[Y >> 2] | 0; Y = c[Z >> 2] | 0; Z = c[_ >> 2] | 0; _ = c[$ >> 2] | 0; $ = c[aa >> 2] | 0; c[j >> 2] = c[X >> 2]; c[k >> 2] = h; c[m >> 2] = Y; c[n >> 2] = Z; c[o >> 2] = _; c[p >> 2] = $; c[q >> 2] = 0; c[r >> 2] = 2; c[s >> 2] = c[o >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = c[s >> 2]; c[v >> 2] = (c[s >> 2] | 0) + (c[p >> 2] | 0); c[w >> 2] = (c[v >> 2] | 0) + -8; c[x >> 2] = (c[((c[j >> 2] | 0) + 4) >> 2] | 0) + (c[((c[j >> 2] | 0) + 12) >> 2] | 0); c[y >> 2] = c[q >> 2] | 0 ? 5 : 4; c[z >> 2] = c[c[m >> 2] >> 2]; c[A >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[B >> 2] = 0; c[t >> 2] = (c[t >> 2] | 0) + (((c[t >> 2] | 0) == (c[x >> 2] | 0)) & 1); c[((c[j >> 2] | 0) + 28) >> 2] = c[((c[j >> 2] | 0) + 24) >> 2]; c[C >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); if ((c[A >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0) { c[B >> 2] = c[A >> 2]; c[A >> 2] = 0; } if ((c[z >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0) { c[B >> 2] = c[z >> 2]; c[z >> 2] = 0; } while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[D >> 2] = 0; c[E >> 2] = 0; c[F >> 2] = (c[t >> 2] | 0) + 1; C = ((c[z >> 2] | 0) >>> 0 > 0) & 1; q = Bk(((c[t >> 2] | 0) + 1) | 0) | 0; if ( !((C & ((q | 0) == (Bk( ((c[t >> 2] | 0) + 1 + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0 ? ((c[D >> 2] = (Qm( ((c[t >> 2] | 0) + 1 + 4) | 0, ((c[t >> 2] | 0) + 1 + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), !(c[r >> 2] | 0)) : 0) ) { c[G >> 2] = 99999999; c[H >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, G ) | 0; if ((c[H >> 2] | 0) >>> 0 > (c[D >> 2] | 0) >>> 0) { c[D >> 2] = c[H >> 2]; c[F >> 2] = c[t >> 2]; c[E >> 2] = c[G >> 2]; } if ((c[D >> 2] | 0) >>> 0 < 4) { c[t >> 2] = (c[t >> 2] | 0) + ((((c[t >> 2] | 0) - (c[u >> 2] | 0)) >> 8) + 1); continue; } a: do { if ((c[r >> 2] | 0) >>> 0 >= 1) while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; if ( ( ( c[E >> 2] | 0 ? ((q = ((c[z >> 2] | 0) >>> 0 > 0) & 1), (C = Bk(c[t >> 2] | 0) | 0), (q & ((C | 0) == (Bk( ((c[t >> 2] | 0) + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0) : 0 ) ? ((c[I >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), (c[J >> 2] = (c[I >> 2] | 0) * 3), (C = ((c[D >> 2] | 0) * 3) | 0), (c[K >> 2] = C - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 1), (c[I >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[J >> 2] | 0) > (c[K >> 2] | 0) : 0 ) { c[D >> 2] = c[I >> 2]; c[E >> 2] = 0; c[F >> 2] = c[t >> 2]; } c[L >> 2] = 99999999; c[M >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, L ) | 0; C = c[M >> 2] << 2; c[N >> 2] = C - (Mm(((c[L >> 2] | 0) + 1) | 0) | 0); C = c[D >> 2] << 2; c[O >> 2] = C - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 4; if ( (c[M >> 2] | 0) >>> 0 >= 4 ? (c[N >> 2] | 0) > (c[O >> 2] | 0) : 0 ) { c[D >> 2] = c[M >> 2]; c[E >> 2] = c[L >> 2]; c[F >> 2] = c[t >> 2]; continue; } if ((c[r >> 2] | 0) != 2) break a; if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; do { if ( ( c[E >> 2] | 0 ? ((C = ((c[z >> 2] | 0) >>> 0 > 0) & 1), (q = Bk(c[t >> 2] | 0) | 0), (C & ((q | 0) == (Bk( ((c[t >> 2] | 0) + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0) : 0 ) ? ((c[P >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), (c[Q >> 2] = c[P >> 2] << 2), (q = c[D >> 2] << 2), (c[R >> 2] = q - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 1), (c[P >> 2] | 0) >>> 0 >= 4) : 0 ) { if ((c[Q >> 2] | 0) <= (c[R >> 2] | 0)) break; c[D >> 2] = c[P >> 2]; c[E >> 2] = 0; c[F >> 2] = c[t >> 2]; } } while (0); c[S >> 2] = 99999999; c[T >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, S ) | 0; q = c[T >> 2] << 2; c[U >> 2] = q - (Mm(((c[S >> 2] | 0) + 1) | 0) | 0); q = c[D >> 2] << 2; c[V >> 2] = q - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 7; if ((c[T >> 2] | 0) >>> 0 < 4) break a; if ((c[U >> 2] | 0) <= (c[V >> 2] | 0)) break a; c[D >> 2] = c[T >> 2]; c[E >> 2] = c[S >> 2]; c[F >> 2] = c[t >> 2]; } } while (0); if (c[E >> 2] | 0) { while (1) { if ( !( ((c[F >> 2] | 0) >>> 0 > (c[u >> 2] | 0) >>> 0 ? (((c[F >> 2] | 0) + (0 - ((c[E >> 2] | 0) - 2))) | 0) >>> 0 > (c[x >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[F >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[ ((c[F >> 2] | 0) + (0 - ((c[E >> 2] | 0) - 2)) + -1) >> 0 ] | 0 | 0) ) break; c[F >> 2] = (c[F >> 2] | 0) + -1; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[A >> 2] = c[z >> 2]; c[z >> 2] = (c[E >> 2] | 0) - 2; } } c[W >> 2] = (c[F >> 2] | 0) - (c[u >> 2] | 0); Nm( c[k >> 2] | 0, c[W >> 2] | 0, c[u >> 2] | 0, c[E >> 2] | 0, ((c[D >> 2] | 0) - 3) | 0 ); q = ((c[F >> 2] | 0) + (c[D >> 2] | 0)) | 0; c[t >> 2] = q; c[u >> 2] = q; while (1) { if ( !( ((c[A >> 2] | 0) >>> 0 > 0 ? (c[t >> 2] | 0) >>> 0 <= (c[w >> 2] | 0) >>> 0 : 0) | 0 ) ) break; q = Bk(c[t >> 2] | 0) | 0; if ( (q | 0) != (Bk(((c[t >> 2] | 0) + (0 - (c[A >> 2] | 0))) | 0) | 0) ) break; c[D >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[A >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4; c[E >> 2] = c[A >> 2]; c[A >> 2] = c[z >> 2]; c[z >> 2] = c[E >> 2]; Nm( c[k >> 2] | 0, 0, c[u >> 2] | 0, 0, ((c[D >> 2] | 0) - 3) | 0 ); c[t >> 2] = (c[t >> 2] | 0) + (c[D >> 2] | 0); c[u >> 2] = c[t >> 2]; } } c[c[m >> 2] >> 2] = c[z >> 2] | 0 ? c[z >> 2] | 0 : c[B >> 2] | 0; c[((c[m >> 2] | 0) + 4) >> 2] = c[A >> 2] | 0 ? c[A >> 2] | 0 : c[B >> 2] | 0; l = i; return ((c[v >> 2] | 0) - (c[u >> 2] | 0)) | 0; } function am(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0; i = l; l = (l + 192) | 0; j = (i + 176) | 0; k = (i + 172) | 0; m = (i + 168) | 0; n = (i + 164) | 0; o = (i + 160) | 0; p = (i + 156) | 0; q = (i + 152) | 0; r = (i + 148) | 0; s = (i + 144) | 0; t = (i + 140) | 0; u = (i + 136) | 0; v = (i + 132) | 0; w = (i + 128) | 0; x = (i + 124) | 0; y = (i + 120) | 0; z = (i + 116) | 0; A = (i + 112) | 0; B = (i + 108) | 0; C = (i + 104) | 0; D = (i + 100) | 0; E = (i + 96) | 0; F = (i + 92) | 0; G = (i + 88) | 0; H = (i + 84) | 0; I = (i + 80) | 0; J = (i + 76) | 0; K = (i + 72) | 0; L = (i + 68) | 0; M = (i + 64) | 0; N = (i + 60) | 0; O = (i + 56) | 0; P = (i + 52) | 0; Q = (i + 48) | 0; R = (i + 44) | 0; S = (i + 40) | 0; T = (i + 36) | 0; U = (i + 32) | 0; V = (i + 28) | 0; W = (i + 24) | 0; X = (i + 20) | 0; Y = (i + 16) | 0; Z = (i + 12) | 0; _ = (i + 8) | 0; $ = (i + 4) | 0; aa = i; c[X >> 2] = a; c[Y >> 2] = b; c[Z >> 2] = e; c[_ >> 2] = f; c[$ >> 2] = g; c[aa >> 2] = h; h = c[Y >> 2] | 0; Y = c[Z >> 2] | 0; Z = c[_ >> 2] | 0; _ = c[$ >> 2] | 0; $ = c[aa >> 2] | 0; c[j >> 2] = c[X >> 2]; c[k >> 2] = h; c[m >> 2] = Y; c[n >> 2] = Z; c[o >> 2] = _; c[p >> 2] = $; c[q >> 2] = 1; c[r >> 2] = 2; c[s >> 2] = c[o >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = c[s >> 2]; c[v >> 2] = (c[s >> 2] | 0) + (c[p >> 2] | 0); c[w >> 2] = (c[v >> 2] | 0) + -8; c[x >> 2] = (c[((c[j >> 2] | 0) + 4) >> 2] | 0) + (c[((c[j >> 2] | 0) + 12) >> 2] | 0); c[y >> 2] = c[q >> 2] | 0 ? 5 : 4; c[z >> 2] = c[c[m >> 2] >> 2]; c[A >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[B >> 2] = 0; c[t >> 2] = (c[t >> 2] | 0) + (((c[t >> 2] | 0) == (c[x >> 2] | 0)) & 1); c[((c[j >> 2] | 0) + 28) >> 2] = c[((c[j >> 2] | 0) + 24) >> 2]; c[C >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); if ((c[A >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0) { c[B >> 2] = c[A >> 2]; c[A >> 2] = 0; } if ((c[z >> 2] | 0) >>> 0 > (c[C >> 2] | 0) >>> 0) { c[B >> 2] = c[z >> 2]; c[z >> 2] = 0; } while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[D >> 2] = 0; c[E >> 2] = 0; c[F >> 2] = (c[t >> 2] | 0) + 1; C = ((c[z >> 2] | 0) >>> 0 > 0) & 1; q = Bk(((c[t >> 2] | 0) + 1) | 0) | 0; if ( !((C & ((q | 0) == (Bk( ((c[t >> 2] | 0) + 1 + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0 ? ((c[D >> 2] = (Qm( ((c[t >> 2] | 0) + 1 + 4) | 0, ((c[t >> 2] | 0) + 1 + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), !(c[r >> 2] | 0)) : 0) ) { c[G >> 2] = 99999999; c[H >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, G ) | 0; if ((c[H >> 2] | 0) >>> 0 > (c[D >> 2] | 0) >>> 0) { c[D >> 2] = c[H >> 2]; c[F >> 2] = c[t >> 2]; c[E >> 2] = c[G >> 2]; } if ((c[D >> 2] | 0) >>> 0 < 4) { c[t >> 2] = (c[t >> 2] | 0) + ((((c[t >> 2] | 0) - (c[u >> 2] | 0)) >> 8) + 1); continue; } a: do { if ((c[r >> 2] | 0) >>> 0 >= 1) while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; if ( ( ( c[E >> 2] | 0 ? ((q = ((c[z >> 2] | 0) >>> 0 > 0) & 1), (C = Bk(c[t >> 2] | 0) | 0), (q & ((C | 0) == (Bk( ((c[t >> 2] | 0) + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0) : 0 ) ? ((c[I >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), (c[J >> 2] = (c[I >> 2] | 0) * 3), (C = ((c[D >> 2] | 0) * 3) | 0), (c[K >> 2] = C - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 1), (c[I >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[J >> 2] | 0) > (c[K >> 2] | 0) : 0 ) { c[D >> 2] = c[I >> 2]; c[E >> 2] = 0; c[F >> 2] = c[t >> 2]; } c[L >> 2] = 99999999; c[M >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, L ) | 0; C = c[M >> 2] << 2; c[N >> 2] = C - (Mm(((c[L >> 2] | 0) + 1) | 0) | 0); C = c[D >> 2] << 2; c[O >> 2] = C - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 4; if ( (c[M >> 2] | 0) >>> 0 >= 4 ? (c[N >> 2] | 0) > (c[O >> 2] | 0) : 0 ) { c[D >> 2] = c[M >> 2]; c[E >> 2] = c[L >> 2]; c[F >> 2] = c[t >> 2]; continue; } if ((c[r >> 2] | 0) != 2) break a; if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; do { if ( ( c[E >> 2] | 0 ? ((C = ((c[z >> 2] | 0) >>> 0 > 0) & 1), (q = Bk(c[t >> 2] | 0) | 0), (C & ((q | 0) == (Bk( ((c[t >> 2] | 0) + (0 - (c[z >> 2] | 0))) | 0 ) | 0))) | 0) : 0 ) ? ((c[P >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[z >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4), (c[Q >> 2] = c[P >> 2] << 2), (q = c[D >> 2] << 2), (c[R >> 2] = q - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 1), (c[P >> 2] | 0) >>> 0 >= 4) : 0 ) { if ((c[Q >> 2] | 0) <= (c[R >> 2] | 0)) break; c[D >> 2] = c[P >> 2]; c[E >> 2] = 0; c[F >> 2] = c[t >> 2]; } } while (0); c[S >> 2] = 99999999; c[T >> 2] = tc[c[y >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, S ) | 0; q = c[T >> 2] << 2; c[U >> 2] = q - (Mm(((c[S >> 2] | 0) + 1) | 0) | 0); q = c[D >> 2] << 2; c[V >> 2] = q - (Mm(((c[E >> 2] | 0) + 1) | 0) | 0) + 7; if ((c[T >> 2] | 0) >>> 0 < 4) break a; if ((c[U >> 2] | 0) <= (c[V >> 2] | 0)) break a; c[D >> 2] = c[T >> 2]; c[E >> 2] = c[S >> 2]; c[F >> 2] = c[t >> 2]; } } while (0); if (c[E >> 2] | 0) { while (1) { if ( !( ((c[F >> 2] | 0) >>> 0 > (c[u >> 2] | 0) >>> 0 ? (((c[F >> 2] | 0) + (0 - ((c[E >> 2] | 0) - 2))) | 0) >>> 0 > (c[x >> 2] | 0) >>> 0 : 0) | 0 ) ) break; if ( (d[((c[F >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[ ((c[F >> 2] | 0) + (0 - ((c[E >> 2] | 0) - 2)) + -1) >> 0 ] | 0 | 0) ) break; c[F >> 2] = (c[F >> 2] | 0) + -1; c[D >> 2] = (c[D >> 2] | 0) + 1; } c[A >> 2] = c[z >> 2]; c[z >> 2] = (c[E >> 2] | 0) - 2; } } c[W >> 2] = (c[F >> 2] | 0) - (c[u >> 2] | 0); Nm( c[k >> 2] | 0, c[W >> 2] | 0, c[u >> 2] | 0, c[E >> 2] | 0, ((c[D >> 2] | 0) - 3) | 0 ); q = ((c[F >> 2] | 0) + (c[D >> 2] | 0)) | 0; c[t >> 2] = q; c[u >> 2] = q; while (1) { if ( !( ((c[A >> 2] | 0) >>> 0 > 0 ? (c[t >> 2] | 0) >>> 0 <= (c[w >> 2] | 0) >>> 0 : 0) | 0 ) ) break; q = Bk(c[t >> 2] | 0) | 0; if ( (q | 0) != (Bk(((c[t >> 2] | 0) + (0 - (c[A >> 2] | 0))) | 0) | 0) ) break; c[D >> 2] = (Qm( ((c[t >> 2] | 0) + 4) | 0, ((c[t >> 2] | 0) + 4 + (0 - (c[A >> 2] | 0))) | 0, c[v >> 2] | 0 ) | 0) + 4; c[E >> 2] = c[A >> 2]; c[A >> 2] = c[z >> 2]; c[z >> 2] = c[E >> 2]; Nm( c[k >> 2] | 0, 0, c[u >> 2] | 0, 0, ((c[D >> 2] | 0) - 3) | 0 ); c[t >> 2] = (c[t >> 2] | 0) + (c[D >> 2] | 0); c[u >> 2] = c[t >> 2]; } } c[c[m >> 2] >> 2] = c[z >> 2] | 0 ? c[z >> 2] | 0 : c[B >> 2] | 0; c[((c[m >> 2] | 0) + 4) >> 2] = c[A >> 2] | 0 ? c[A >> 2] | 0 : c[B >> 2] | 0; l = i; return ((c[v >> 2] | 0) - (c[u >> 2] | 0)) | 0; } function bm(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0, hc = 0, ic = 0, jc = 0, kc = 0, lc = 0, mc = 0, nc = 0, oc = 0, pc = 0, qc = 0, rc = 0, sc = 0, tc = 0, uc = 0, vc = 0, wc = 0, xc = 0, yc = 0, zc = 0, Ac = 0, Bc = 0, Cc = 0, Dc = 0, Ec = 0, Fc = 0, Gc = 0, Hc = 0, Ic = 0, Jc = 0, Kc = 0, Lc = 0, Mc = 0, Nc = 0, Oc = 0, Pc = 0, Qc = 0, Rc = 0, Sc = 0, Tc = 0, Uc = 0, Vc = 0, Wc = 0, Xc = 0, Yc = 0, Zc = 0, _c = 0, $c = 0, ad = 0, bd = 0, cd = 0, dd = 0, ed = 0, fd = 0, gd = 0, hd = 0, id = 0, jd = 0, kd = 0, ld = 0, md = 0, nd = 0, od = 0, pd = 0, qd = 0, rd = 0, sd = 0, td = 0, ud = 0, vd = 0, wd = 0, xd = 0, yd = 0, zd = 0, Ad = 0, Bd = 0, Cd = 0, Dd = 0, Ed = 0, Fd = 0, Gd = 0, Hd = 0, Id = 0, Jd = 0, Kd = 0, Ld = 0, Md = 0, Nd = 0, Od = 0, Pd = 0, Qd = 0, Rd = 0, Sd = 0, Td = 0, Ud = 0, Vd = 0, Wd = 0, Xd = 0, Yd = 0, Zd = 0, _d = 0, $d = 0, ae = 0, be = 0, ce = 0, de = 0, ee = 0, fe = 0, ge = 0, he = 0, ie = 0, je = 0, ke = 0, le = 0, me = 0, ne = 0, oe = 0, pe = 0, qe = 0, re = 0, se = 0, te = 0, ue = 0, ve = 0, we = 0, xe = 0, ye = 0, ze = 0, Ae = 0, Be = 0, Ce = 0, De = 0, Ee = 0, Fe = 0, Ge = 0, He = 0, Ie = 0, Je = 0, Ke = 0, Le = 0, Me = 0, Ne = 0, Oe = 0, Pe = 0, Qe = 0, Re = 0, Se = 0, Te = 0, Ue = 0, Ve = 0, We = 0, Xe = 0, Ye = 0, Ze = 0, _e = 0, $e = 0, af = 0, bf = 0, cf = 0, df = 0, ef = 0, ff = 0, gf = 0, hf = 0, jf = 0, kf = 0, lf = 0, mf = 0, nf = 0, of = 0, pf = 0, qf = 0, rf = 0, sf = 0, tf = 0, uf = 0, vf = 0, wf = 0, xf = 0, yf = 0, zf = 0, Af = 0, Bf = 0, Cf = 0, Df = 0, Ef = 0, Ff = 0, Gf = 0, Hf = 0, If = 0, Jf = 0, Kf = 0, Lf = 0, Mf = 0, Nf = 0, Of = 0, Pf = 0, Qf = 0, Rf = 0, Sf = 0, Tf = 0, Uf = 0, Vf = 0, Wf = 0, Xf = 0, Yf = 0, Zf = 0, _f = 0, $f = 0, ag = 0, bg = 0, cg = 0, dg = 0, eg = 0, fg = 0, gg = 0, hg = 0, ig = 0, jg = 0, kg = 0, lg = 0, mg = 0, ng = 0, og = 0, pg = 0, qg = 0, rg = 0, sg = 0, tg = 0, ug = 0, vg = 0, wg = 0, xg = 0, yg = 0, zg = 0, Ag = 0, Bg = 0, Cg = 0, Dg = 0, Eg = 0, Fg = 0, Gg = 0, Hg = 0, Ig = 0, Jg = 0, Kg = 0, Lg = 0, Mg = 0, Ng = 0, Og = 0, Pg = 0, Qg = 0, Rg = 0, Sg = 0, Tg = 0, Ug = 0, Vg = 0, Wg = 0, Xg = 0, Yg = 0, Zg = 0, _g = 0, $g = 0, ah = 0, bh = 0, ch = 0, dh = 0, eh = 0, fh = 0, gh = 0, hh = 0, ih = 0, jh = 0, kh = 0, lh = 0, mh = 0, nh = 0, oh = 0, ph = 0, qh = 0, rh = 0, sh = 0, th = 0, uh = 0, vh = 0, wh = 0, xh = 0, yh = 0, zh = 0, Ah = 0, Bh = 0, Ch = 0, Dh = 0, Eh = 0, Fh = 0, Gh = 0, Hh = 0, Ih = 0, Jh = 0, Kh = 0, Lh = 0, Mh = 0, Nh = 0, Oh = 0, Ph = 0, Qh = 0, Rh = 0, Sh = 0, Th = 0, Uh = 0, Vh = 0, Wh = 0, Xh = 0, Yh = 0, Zh = 0, _h = 0, $h = 0, ai = 0, bi = 0, ci = 0, di = 0, ei = 0, fi = 0, gi = 0, hi = 0, ii = 0, ji = 0, ki = 0, li = 0, mi = 0, ni = 0, oi = 0, pi = 0, qi = 0, ri = 0, si = 0, ti = 0, ui = 0, vi = 0, wi = 0, xi = 0, yi = 0, zi = 0, Ai = 0, Bi = 0, Ci = 0, Di = 0, Ei = 0, Fi = 0, Gi = 0, Hi = 0, Ii = 0, Ji = 0, Ki = 0, Li = 0, Mi = 0, Ni = 0, Oi = 0, Pi = 0, Qi = 0, Ri = 0, Si = 0, Ti = 0, Ui = 0, Vi = 0, Wi = 0, Xi = 0, Yi = 0, Zi = 0, _i = 0, $i = 0, aj = 0, bj = 0, cj = 0, dj = 0, ej = 0, fj = 0, gj = 0, hj = 0, ij = 0, jj = 0, kj = 0, lj = 0, mj = 0, nj = 0, oj = 0, pj = 0, qj = 0, rj = 0, sj = 0, tj = 0, uj = 0, vj = 0, wj = 0, xj = 0, yj = 0, zj = 0, Aj = 0, Bj = 0, Cj = 0, Dj = 0, Ej = 0; i = l; l = (l + 2144) | 0; j = (i + 2136) | 0; k = (i + 2132) | 0; m = (i + 2128) | 0; n = (i + 2124) | 0; o = (i + 2120) | 0; p = (i + 2116) | 0; q = (i + 2112) | 0; r = (i + 2108) | 0; s = (i + 2104) | 0; t = (i + 2100) | 0; u = (i + 2096) | 0; v = (i + 2092) | 0; w = (i + 2088) | 0; x = (i + 2084) | 0; y = (i + 2080) | 0; z = (i + 2076) | 0; A = (i + 2072) | 0; B = (i + 2068) | 0; C = (i + 2064) | 0; D = (i + 2060) | 0; E = (i + 2056) | 0; F = (i + 2052) | 0; G = (i + 2048) | 0; H = (i + 2044) | 0; I = (i + 2040) | 0; J = (i + 2036) | 0; K = (i + 2032) | 0; L = (i + 2028) | 0; M = (i + 2024) | 0; N = (i + 2020) | 0; O = (i + 2016) | 0; P = (i + 2012) | 0; Q = (i + 2008) | 0; R = (i + 2004) | 0; S = (i + 2e3) | 0; T = (i + 1996) | 0; U = (i + 1992) | 0; V = (i + 1988) | 0; W = (i + 1984) | 0; X = (i + 1980) | 0; Y = (i + 1976) | 0; Z = (i + 1972) | 0; _ = (i + 1968) | 0; $ = (i + 1964) | 0; aa = (i + 1960) | 0; ba = (i + 1956) | 0; ca = (i + 1952) | 0; da = (i + 1948) | 0; ea = (i + 1944) | 0; fa = (i + 1940) | 0; ga = (i + 1936) | 0; ha = (i + 1932) | 0; ia = (i + 1928) | 0; ja = (i + 1924) | 0; ka = (i + 1920) | 0; la = (i + 1916) | 0; ma = (i + 1912) | 0; na = (i + 1908) | 0; oa = (i + 1904) | 0; pa = (i + 1900) | 0; qa = (i + 1896) | 0; ra = (i + 1892) | 0; sa = (i + 1888) | 0; ta = (i + 1884) | 0; ua = (i + 1880) | 0; va = (i + 1876) | 0; wa = (i + 1872) | 0; xa = (i + 1868) | 0; ya = (i + 1864) | 0; za = (i + 1860) | 0; Aa = (i + 1856) | 0; Ba = (i + 1852) | 0; Ca = (i + 1848) | 0; Da = (i + 1844) | 0; Ea = (i + 1840) | 0; Fa = (i + 1836) | 0; Ga = (i + 1832) | 0; Ha = (i + 1828) | 0; Ia = (i + 1824) | 0; Ja = (i + 1820) | 0; Ka = (i + 1816) | 0; La = (i + 1812) | 0; Ma = (i + 1808) | 0; Na = (i + 1804) | 0; Oa = (i + 1800) | 0; Pa = (i + 1796) | 0; Qa = (i + 1792) | 0; Ra = (i + 1788) | 0; Sa = (i + 1784) | 0; Ta = (i + 1780) | 0; Ua = (i + 1776) | 0; Va = (i + 1772) | 0; Wa = (i + 1768) | 0; Xa = (i + 1764) | 0; Ya = (i + 1760) | 0; Za = (i + 1756) | 0; _a = (i + 1752) | 0; $a = (i + 1748) | 0; ab = (i + 1744) | 0; bb = (i + 1740) | 0; cb = (i + 1736) | 0; db = (i + 1732) | 0; eb = (i + 1728) | 0; fb = (i + 1724) | 0; gb = (i + 1720) | 0; hb = (i + 1716) | 0; ib = (i + 1712) | 0; jb = (i + 1708) | 0; kb = (i + 1704) | 0; lb = (i + 1700) | 0; mb = (i + 1696) | 0; nb = (i + 1692) | 0; ob = (i + 1688) | 0; pb = (i + 1684) | 0; qb = (i + 1680) | 0; rb = (i + 1676) | 0; sb = (i + 1672) | 0; tb = (i + 1668) | 0; ub = (i + 1664) | 0; vb = (i + 1660) | 0; wb = (i + 1656) | 0; xb = (i + 1652) | 0; yb = (i + 1648) | 0; zb = (i + 1644) | 0; Ab = (i + 1640) | 0; Bb = (i + 1636) | 0; Cb = (i + 1632) | 0; Db = (i + 1628) | 0; Eb = (i + 1624) | 0; Fb = (i + 1620) | 0; Gb = (i + 1616) | 0; Hb = (i + 1612) | 0; Ib = (i + 1608) | 0; Jb = (i + 1604) | 0; Kb = (i + 1600) | 0; Lb = (i + 1596) | 0; Mb = (i + 1592) | 0; Nb = (i + 1588) | 0; Ob = (i + 1584) | 0; Pb = (i + 1580) | 0; Qb = (i + 1576) | 0; Rb = (i + 1572) | 0; Sb = (i + 1568) | 0; Tb = (i + 1564) | 0; Ub = (i + 1560) | 0; Vb = (i + 1556) | 0; Wb = (i + 1552) | 0; Xb = (i + 1548) | 0; Yb = (i + 1544) | 0; Zb = (i + 1540) | 0; _b = (i + 1536) | 0; $b = (i + 1532) | 0; ac = (i + 1528) | 0; bc = (i + 1524) | 0; cc = (i + 1520) | 0; dc = (i + 1516) | 0; ec = (i + 1512) | 0; fc = (i + 1508) | 0; gc = (i + 1504) | 0; hc = (i + 1500) | 0; ic = (i + 1496) | 0; jc = (i + 1492) | 0; kc = (i + 1488) | 0; lc = (i + 1484) | 0; mc = (i + 1480) | 0; nc = (i + 1476) | 0; oc = (i + 1472) | 0; pc = (i + 1468) | 0; qc = (i + 1464) | 0; rc = (i + 1460) | 0; sc = (i + 1456) | 0; tc = (i + 1452) | 0; uc = (i + 1448) | 0; vc = (i + 1444) | 0; wc = (i + 1440) | 0; xc = (i + 1436) | 0; yc = (i + 1432) | 0; zc = (i + 1428) | 0; Ac = (i + 1424) | 0; Bc = (i + 1420) | 0; Cc = (i + 1416) | 0; Dc = (i + 1412) | 0; Ec = (i + 1408) | 0; Fc = (i + 1404) | 0; Gc = (i + 1400) | 0; Hc = (i + 1396) | 0; Ic = (i + 1392) | 0; Jc = (i + 1388) | 0; Kc = (i + 1384) | 0; Lc = (i + 1380) | 0; Mc = (i + 1376) | 0; Nc = (i + 1372) | 0; Oc = (i + 1368) | 0; Pc = (i + 1364) | 0; Qc = (i + 1360) | 0; Rc = (i + 1356) | 0; Sc = (i + 1352) | 0; Tc = (i + 1348) | 0; Uc = (i + 1344) | 0; Vc = (i + 1340) | 0; Wc = (i + 1336) | 0; Xc = (i + 1332) | 0; Yc = (i + 1328) | 0; Zc = (i + 1324) | 0; _c = (i + 1320) | 0; $c = (i + 1316) | 0; ad = (i + 1312) | 0; bd = (i + 1308) | 0; cd = (i + 1304) | 0; dd = (i + 1300) | 0; ed = (i + 1296) | 0; fd = (i + 1292) | 0; gd = (i + 1288) | 0; hd = (i + 1284) | 0; id = (i + 1280) | 0; jd = (i + 1276) | 0; kd = (i + 1272) | 0; ld = (i + 1268) | 0; md = (i + 1264) | 0; nd = (i + 1260) | 0; od = (i + 1256) | 0; pd = (i + 1252) | 0; qd = (i + 1248) | 0; rd = (i + 1244) | 0; sd = (i + 1240) | 0; td = (i + 1236) | 0; ud = (i + 1232) | 0; vd = (i + 1228) | 0; wd = (i + 1224) | 0; xd = (i + 1220) | 0; yd = (i + 1216) | 0; zd = (i + 1212) | 0; Ad = (i + 1208) | 0; Bd = (i + 1204) | 0; Cd = (i + 1200) | 0; Dd = (i + 1196) | 0; Ed = (i + 1192) | 0; Fd = (i + 1188) | 0; Gd = (i + 1184) | 0; Hd = (i + 1180) | 0; Id = (i + 1176) | 0; Jd = (i + 1172) | 0; Kd = (i + 1168) | 0; Ld = (i + 1164) | 0; Md = (i + 1160) | 0; Nd = (i + 1156) | 0; Od = (i + 1152) | 0; Pd = (i + 1148) | 0; Qd = (i + 1144) | 0; Rd = (i + 1140) | 0; Sd = (i + 1136) | 0; Td = (i + 1132) | 0; Ud = (i + 1128) | 0; Vd = (i + 1124) | 0; Wd = (i + 1120) | 0; Xd = (i + 1116) | 0; Yd = (i + 1112) | 0; Zd = (i + 1108) | 0; _d = (i + 1104) | 0; $d = (i + 1100) | 0; ae = (i + 1096) | 0; be = (i + 1092) | 0; ce = (i + 1088) | 0; de = (i + 1084) | 0; ee = (i + 1080) | 0; fe = (i + 1076) | 0; ge = (i + 1072) | 0; he = (i + 1068) | 0; ie = (i + 1064) | 0; je = (i + 1060) | 0; ke = (i + 1056) | 0; le = (i + 1052) | 0; me = (i + 1048) | 0; ne = (i + 1044) | 0; oe = (i + 1040) | 0; pe = (i + 1036) | 0; qe = (i + 1032) | 0; re = (i + 1028) | 0; se = (i + 1024) | 0; te = (i + 1020) | 0; ue = (i + 1016) | 0; ve = (i + 1012) | 0; we = (i + 1008) | 0; xe = (i + 1004) | 0; ye = (i + 1e3) | 0; ze = (i + 996) | 0; Ae = (i + 992) | 0; Be = (i + 988) | 0; Ce = (i + 984) | 0; De = (i + 980) | 0; Ee = (i + 976) | 0; Fe = (i + 972) | 0; Ge = (i + 968) | 0; He = (i + 964) | 0; Ie = (i + 960) | 0; Je = (i + 956) | 0; Ke = (i + 952) | 0; Le = (i + 948) | 0; Me = (i + 944) | 0; Ne = (i + 940) | 0; Oe = (i + 936) | 0; Pe = (i + 932) | 0; Qe = (i + 928) | 0; Re = (i + 924) | 0; Se = (i + 920) | 0; Te = (i + 916) | 0; Ue = (i + 912) | 0; Ve = (i + 908) | 0; We = (i + 904) | 0; Xe = (i + 900) | 0; Ye = (i + 896) | 0; Ze = (i + 892) | 0; _e = (i + 888) | 0; $e = (i + 884) | 0; af = (i + 880) | 0; bf = (i + 876) | 0; cf = (i + 872) | 0; df = (i + 868) | 0; ef = (i + 864) | 0; ff = (i + 860) | 0; gf = (i + 856) | 0; hf = (i + 852) | 0; jf = (i + 848) | 0; kf = (i + 844) | 0; lf = (i + 840) | 0; mf = (i + 836) | 0; nf = (i + 832) | 0; of = (i + 828) | 0; pf = (i + 824) | 0; qf = (i + 820) | 0; rf = (i + 816) | 0; sf = (i + 812) | 0; tf = (i + 808) | 0; uf = (i + 804) | 0; vf = (i + 800) | 0; wf = (i + 796) | 0; xf = (i + 792) | 0; yf = (i + 788) | 0; zf = (i + 784) | 0; Af = (i + 780) | 0; Bf = (i + 776) | 0; Cf = (i + 772) | 0; Df = (i + 768) | 0; Ef = (i + 764) | 0; Ff = (i + 760) | 0; Gf = (i + 756) | 0; Hf = (i + 752) | 0; If = (i + 748) | 0; Jf = (i + 744) | 0; Kf = (i + 740) | 0; Lf = (i + 736) | 0; Mf = (i + 732) | 0; Nf = (i + 728) | 0; Of = (i + 724) | 0; Pf = (i + 720) | 0; Qf = (i + 716) | 0; Rf = (i + 712) | 0; Sf = (i + 708) | 0; Tf = (i + 704) | 0; Uf = (i + 700) | 0; Vf = (i + 696) | 0; Wf = (i + 692) | 0; Xf = (i + 688) | 0; Yf = (i + 684) | 0; Zf = (i + 680) | 0; _f = (i + 676) | 0; $f = (i + 672) | 0; ag = (i + 668) | 0; bg = (i + 664) | 0; cg = (i + 660) | 0; dg = (i + 656) | 0; eg = (i + 652) | 0; fg = (i + 648) | 0; gg = (i + 644) | 0; hg = (i + 640) | 0; ig = (i + 636) | 0; jg = (i + 632) | 0; kg = (i + 628) | 0; lg = (i + 624) | 0; mg = (i + 620) | 0; ng = (i + 616) | 0; og = (i + 612) | 0; pg = (i + 608) | 0; qg = (i + 604) | 0; rg = (i + 600) | 0; sg = (i + 596) | 0; tg = (i + 592) | 0; ug = (i + 588) | 0; vg = (i + 584) | 0; wg = (i + 580) | 0; xg = (i + 576) | 0; yg = (i + 572) | 0; zg = (i + 568) | 0; Ag = (i + 564) | 0; Bg = (i + 560) | 0; Cg = (i + 556) | 0; Dg = (i + 552) | 0; Eg = (i + 548) | 0; Fg = (i + 544) | 0; Gg = (i + 540) | 0; Hg = (i + 536) | 0; Ig = (i + 532) | 0; Jg = (i + 528) | 0; Kg = (i + 524) | 0; Lg = (i + 520) | 0; Mg = (i + 516) | 0; Ng = (i + 512) | 0; Og = (i + 508) | 0; Pg = (i + 504) | 0; Qg = (i + 500) | 0; Rg = (i + 496) | 0; Sg = (i + 492) | 0; Tg = (i + 488) | 0; Ug = (i + 484) | 0; Vg = (i + 480) | 0; Wg = (i + 476) | 0; Xg = (i + 472) | 0; Yg = (i + 468) | 0; Zg = (i + 464) | 0; _g = (i + 460) | 0; $g = (i + 456) | 0; ah = (i + 452) | 0; bh = (i + 448) | 0; ch = (i + 444) | 0; dh = (i + 440) | 0; eh = (i + 436) | 0; fh = (i + 432) | 0; gh = (i + 428) | 0; hh = (i + 424) | 0; ih = (i + 420) | 0; jh = (i + 416) | 0; kh = (i + 412) | 0; lh = (i + 408) | 0; mh = (i + 404) | 0; nh = (i + 400) | 0; oh = (i + 396) | 0; ph = (i + 392) | 0; qh = (i + 388) | 0; rh = (i + 384) | 0; sh = (i + 380) | 0; th = (i + 376) | 0; uh = (i + 372) | 0; vh = (i + 368) | 0; wh = (i + 364) | 0; xh = (i + 360) | 0; yh = (i + 356) | 0; zh = (i + 352) | 0; Ah = (i + 348) | 0; Bh = (i + 344) | 0; Ch = (i + 340) | 0; Dh = (i + 336) | 0; Eh = (i + 332) | 0; Fh = (i + 328) | 0; Gh = (i + 324) | 0; Hh = (i + 320) | 0; Ih = (i + 316) | 0; Jh = (i + 312) | 0; Kh = (i + 308) | 0; Lh = (i + 304) | 0; Mh = (i + 300) | 0; Nh = (i + 296) | 0; Oh = (i + 292) | 0; Ph = (i + 288) | 0; Qh = (i + 284) | 0; Rh = (i + 280) | 0; Sh = (i + 276) | 0; Th = (i + 272) | 0; Uh = (i + 268) | 0; Vh = (i + 264) | 0; Wh = (i + 260) | 0; Xh = (i + 256) | 0; Yh = (i + 252) | 0; Zh = (i + 248) | 0; _h = (i + 244) | 0; $h = (i + 240) | 0; ai = (i + 236) | 0; bi = (i + 232) | 0; ci = (i + 228) | 0; di = (i + 216) | 0; ei = (i + 212) | 0; fi = (i + 208) | 0; gi = (i + 204) | 0; hi = (i + 200) | 0; ii = (i + 196) | 0; ji = (i + 192) | 0; ki = (i + 188) | 0; li = (i + 184) | 0; mi = (i + 180) | 0; ni = (i + 176) | 0; oi = (i + 172) | 0; pi = (i + 168) | 0; qi = (i + 164) | 0; ri = (i + 160) | 0; si = (i + 148) | 0; ti = (i + 144) | 0; ui = (i + 140) | 0; vi = (i + 136) | 0; wi = (i + 132) | 0; xi = (i + 128) | 0; yi = (i + 124) | 0; zi = (i + 120) | 0; Ai = (i + 116) | 0; Bi = (i + 112) | 0; Ci = (i + 108) | 0; Di = (i + 104) | 0; Ei = (i + 100) | 0; Fi = (i + 88) | 0; Gi = (i + 84) | 0; Hi = (i + 80) | 0; Ii = (i + 76) | 0; Ji = (i + 72) | 0; Ki = (i + 68) | 0; Li = (i + 64) | 0; Mi = (i + 60) | 0; Ni = (i + 56) | 0; Oi = (i + 52) | 0; Pi = (i + 48) | 0; Qi = (i + 44) | 0; Ri = (i + 40) | 0; Si = (i + 36) | 0; Ti = (i + 32) | 0; Ui = (i + 28) | 0; Vi = (i + 24) | 0; Wi = (i + 20) | 0; Xi = (i + 16) | 0; Yi = (i + 12) | 0; Zi = (i + 8) | 0; _i = (i + 4) | 0; $i = i; c[Wi >> 2] = a; c[Xi >> 2] = b; c[Yi >> 2] = e; c[Zi >> 2] = f; c[_i >> 2] = g; c[$i >> 2] = h; h = c[Xi >> 2] | 0; Xi = c[Yi >> 2] | 0; Yi = c[Zi >> 2] | 0; Zi = c[_i >> 2] | 0; _i = c[$i >> 2] | 0; c[Lh >> 2] = c[Wi >> 2]; c[Mh >> 2] = h; c[Nh >> 2] = Xi; c[Oh >> 2] = Yi; c[Ph >> 2] = Zi; c[Qh >> 2] = _i; c[Rh >> 2] = 0; c[Sh >> 2] = 0; c[Th >> 2] = (c[Lh >> 2] | 0) + 48; c[Uh >> 2] = c[Ph >> 2]; c[Vh >> 2] = c[Uh >> 2]; c[Wh >> 2] = c[Uh >> 2]; c[Xh >> 2] = (c[Uh >> 2] | 0) + (c[Qh >> 2] | 0); c[Yh >> 2] = (c[Xh >> 2] | 0) + -8; c[Zh >> 2] = c[((c[Lh >> 2] | 0) + 4) >> 2]; c[_h >> 2] = (c[Zh >> 2] | 0) + (c[((c[Lh >> 2] | 0) + 12) >> 2] | 0); if ((c[((c[Oh >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095) aj = c[((c[Oh >> 2] | 0) + 20) >> 2] | 0; else aj = 4095; c[$h >> 2] = aj; c[ai >> 2] = (c[((c[Oh >> 2] | 0) + 16) >> 2] | 0) == 3 ? 3 : 4; c[bi >> 2] = c[((c[Th >> 2] | 0) + 20) >> 2]; c[ci >> 2] = c[((c[Th >> 2] | 0) + 16) >> 2]; c[((c[Lh >> 2] | 0) + 28) >> 2] = c[((c[Lh >> 2] | 0) + 24) >> 2]; lm(c[Th >> 2] | 0, c[Ph >> 2] | 0, c[Qh >> 2] | 0); c[Vh >> 2] = (c[Vh >> 2] | 0) + (((c[Vh >> 2] | 0) == (c[_h >> 2] | 0)) & 1); c[di >> 2] = 0; c[(di + 4) >> 2] = 0; c[(di + 8) >> 2] = 0; while (1) { if ((c[Vh >> 2] | 0) >>> 0 >= (c[Yh >> 2] | 0) >>> 0) break; c[fi >> 2] = 0; c[ii >> 2] = (c[Vh >> 2] | 0) - (c[Wh >> 2] | 0); c[ji >> 2] = (((c[ii >> 2] | 0) != 0) ^ 1) & 1; _h = c[Oh >> 2] | 0; Qh = c[Vh >> 2] | 0; Ph = c[Xh >> 2] | 0; aj = c[Sh >> 2] | 0; Zh = c[Nh >> 2] | 0; Uh = c[ji >> 2] | 0; _i = c[ci >> 2] | 0; Zi = c[ai >> 2] | 0; c[Bh >> 2] = c[Lh >> 2]; c[Ch >> 2] = _h; c[Dh >> 2] = Qh; c[Eh >> 2] = Ph; c[Fh >> 2] = aj; c[Gh >> 2] = Zh; c[Hh >> 2] = Uh; c[Ih >> 2] = _i; c[Jh >> 2] = Zi; c[Kh >> 2] = c[((c[Ch >> 2] | 0) + 16) >> 2]; a: do { if ( (c[Dh >> 2] | 0) >>> 0 < (((c[((c[Bh >> 2] | 0) + 4) >> 2] | 0) + (c[((c[Bh >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) c[Ah >> 2] = 0; else { Zi = c[Ch >> 2] | 0; _i = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; Zh = c[Kh >> 2] | 0; aj = c[Fh >> 2] | 0; c[rh >> 2] = c[Bh >> 2]; c[sh >> 2] = Zi; c[th >> 2] = _i; c[uh >> 2] = Uh; c[vh >> 2] = Zh; c[wh >> 2] = aj; c[xh >> 2] = c[((c[rh >> 2] | 0) + 4) >> 2]; c[yh >> 2] = (c[th >> 2] | 0) - (c[xh >> 2] | 0); c[zh >> 2] = c[((c[rh >> 2] | 0) + 24) >> 2]; while (1) { if ((c[zh >> 2] | 0) >>> 0 >= (c[yh >> 2] | 0) >>> 0) break; aj = Rj( c[rh >> 2] | 0, c[sh >> 2] | 0, ((c[xh >> 2] | 0) + (c[zh >> 2] | 0)) | 0, c[uh >> 2] | 0, c[vh >> 2] | 0, c[wh >> 2] | 0 ) | 0; c[zh >> 2] = (c[zh >> 2] | 0) + aj; } c[((c[rh >> 2] | 0) + 24) >> 2] = c[yh >> 2]; switch (c[Kh >> 2] | 0) { case 3: { aj = c[Ch >> 2] | 0; Zh = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; _i = c[Fh >> 2] | 0; Zi = c[Gh >> 2] | 0; Ph = c[Hh >> 2] | 0; Qh = c[Ih >> 2] | 0; _h = c[Jh >> 2] | 0; c[wg >> 2] = c[Bh >> 2]; c[xg >> 2] = aj; c[yg >> 2] = Zh; c[zg >> 2] = Uh; c[Ag >> 2] = _i; c[Bg >> 2] = Zi; c[Cg >> 2] = Ph; c[Dg >> 2] = Qh; c[Eg >> 2] = _h; c[Fg >> 2] = 3; if ( (c[((c[xg >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) bj = c[((c[xg >> 2] | 0) + 20) >> 2] | 0; else bj = 4095; c[Gg >> 2] = bj; c[Hg >> 2] = c[((c[wg >> 2] | 0) + 4) >> 2]; c[Ig >> 2] = (c[yg >> 2] | 0) - (c[Hg >> 2] | 0); c[Jg >> 2] = c[((c[xg >> 2] | 0) + 8) >> 2]; c[Kg >> 2] = (c[Fg >> 2] | 0) == 3 ? 3 : 4; c[Lg >> 2] = c[((c[wg >> 2] | 0) + 36) >> 2]; c[Mg >> 2] = Sj( c[yg >> 2] | 0, c[Jg >> 2] | 0, c[Fg >> 2] | 0 ) | 0; c[Ng >> 2] = c[((c[Lg >> 2] | 0) + (c[Mg >> 2] << 2)) >> 2]; c[Og >> 2] = c[((c[wg >> 2] | 0) + 44) >> 2]; c[Pg >> 2] = (c[((c[xg >> 2] | 0) + 4) >> 2] | 0) - 1; c[Qg >> 2] = (1 << c[Pg >> 2]) - 1; c[Rg >> 2] = 0; c[Sg >> 2] = 0; c[Tg >> 2] = c[((c[wg >> 2] | 0) + 8) >> 2]; c[Ug >> 2] = c[((c[wg >> 2] | 0) + 12) >> 2]; c[Vg >> 2] = (c[Tg >> 2] | 0) + (c[Ug >> 2] | 0); c[Wg >> 2] = (c[Hg >> 2] | 0) + (c[Ug >> 2] | 0); if ( (c[Qg >> 2] | 0) >>> 0 >= (c[Ig >> 2] | 0) >>> 0 ) cj = 0; else cj = ((c[Ig >> 2] | 0) - (c[Qg >> 2] | 0)) | 0; c[Xg >> 2] = cj; c[Yg >> 2] = c[((c[wg >> 2] | 0) + 16) >> 2]; c[Zg >> 2] = (c[Og >> 2] | 0) + (((c[Ig >> 2] & c[Qg >> 2]) << 1) << 2); c[_g >> 2] = (c[Og >> 2] | 0) + (((c[Ig >> 2] & c[Qg >> 2]) << 1) << 2) + 4; c[$g >> 2] = (c[Ig >> 2] | 0) + 8 + 1; c[bh >> 2] = 0; c[ch >> 2] = 1 << c[((c[xg >> 2] | 0) + 12) >> 2]; c[dh >> 2] = (c[Eg >> 2] | 0) - 1; c[eh >> 2] = 3 + (c[Cg >> 2] | 0); c[fh >> 2] = c[Cg >> 2]; while (1) { if ( (c[fh >> 2] | 0) >>> 0 >= (c[eh >> 2] | 0) >>> 0 ) { dj = 31; break; } _h = c[Bg >> 2] | 0; if ((c[fh >> 2] | 0) == 3) ej = ((c[_h >> 2] | 0) - 1) | 0; else ej = c[(_h + (c[fh >> 2] << 2)) >> 2] | 0; c[gh >> 2] = ej; c[hh >> 2] = (c[Ig >> 2] | 0) - (c[gh >> 2] | 0); c[ih >> 2] = 0; if ( (((c[gh >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ig >> 2] | 0) - (c[Ug >> 2] | 0)) | 0) >>> 0 ) { _h = mm(c[yg >> 2] | 0, c[Kg >> 2] | 0) | 0; if ( (_h | 0) == (mm( ((c[yg >> 2] | 0) + (0 - (c[gh >> 2] | 0))) | 0, c[Kg >> 2] | 0 ) | 0) ) { _h = Tj( ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0) + (0 - (c[gh >> 2] | 0))) | 0, c[zg >> 2] | 0 ) | 0; c[ih >> 2] = _h + (c[Kg >> 2] | 0); } } else { c[jh >> 2] = (c[Tg >> 2] | 0) + (c[hh >> 2] | 0); if ( ( c[Ag >> 2] | 0 ? ((((c[Ug >> 2] | 0) - 1 - (c[hh >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[gh >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ig >> 2] | 0) - (c[Yg >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((_h = mm(c[yg >> 2] | 0, c[Kg >> 2] | 0) | 0), (_h | 0) == (mm(c[jh >> 2] | 0, c[Kg >> 2] | 0) | 0)) : 0 ) { _h = Uj( ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, ((c[jh >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; c[ih >> 2] = _h + (c[Kg >> 2] | 0); } } if ( (c[ih >> 2] | 0) >>> 0 > (c[dh >> 2] | 0) >>> 0 ? ((c[dh >> 2] = c[ih >> 2]), (c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3)) >> 2 ] = (c[fh >> 2] | 0) - (c[Cg >> 2] | 0)), (c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3) + 4) >> 2 ] = c[ih >> 2]), (c[bh >> 2] = (c[bh >> 2] | 0) + 1), ((c[ih >> 2] | 0) >>> 0 > (c[Gg >> 2] | 0) >>> 0 ? 1 : (((c[yg >> 2] | 0) + (c[ih >> 2] | 0)) | 0) == (c[zg >> 2] | 0)) | 0) : 0 ) { dj = 29; break; } c[fh >> 2] = (c[fh >> 2] | 0) + 1; } do { if ((dj | 0) == 29) { dj = 0; c[vg >> 2] = c[bh >> 2]; } else if ((dj | 0) == 31) { dj = 0; if ( ( (c[Fg >> 2] | 0) == 3 ? (c[dh >> 2] | 0) >>> 0 < (c[Fg >> 2] | 0) >>> 0 : 0 ) ? ((c[kh >> 2] = nm(c[wg >> 2] | 0, c[yg >> 2] | 0) | 0), ((c[kh >> 2] | 0) >>> 0 > (c[Yg >> 2] | 0) >>> 0 ? (((c[Ig >> 2] | 0) - (c[kh >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ag >> 2] | 0 ? (c[kh >> 2] | 0) >>> 0 < (c[Ug >> 2] | 0) >>> 0 : 0 ) { c[nh >> 2] = (c[Tg >> 2] | 0) + (c[kh >> 2] | 0); c[lh >> 2] = Uj( c[yg >> 2] | 0, c[nh >> 2] | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; } else { c[mh >> 2] = (c[Hg >> 2] | 0) + (c[kh >> 2] | 0); c[lh >> 2] = Tj( c[yg >> 2] | 0, c[mh >> 2] | 0, c[zg >> 2] | 0 ) | 0; } if ( (c[lh >> 2] | 0) >>> 0 >= (c[Fg >> 2] | 0) >>> 0 ? ((c[dh >> 2] = c[lh >> 2]), (c[c[Dg >> 2] >> 2] = (c[Ig >> 2] | 0) - (c[kh >> 2] | 0) + 2), (c[((c[Dg >> 2] | 0) + 4) >> 2] = c[lh >> 2]), (c[bh >> 2] = 1), ((c[lh >> 2] | 0) >>> 0 > (c[Gg >> 2] | 0) >>> 0 ? 1 : (((c[yg >> 2] | 0) + (c[lh >> 2] | 0)) | 0) == (c[zg >> 2] | 0)) | 0) : 0 ) { c[((c[wg >> 2] | 0) + 24) >> 2] = (c[Ig >> 2] | 0) + 1; c[vg >> 2] = 1; break; } } c[((c[Lg >> 2] | 0) + (c[Mg >> 2] << 2)) >> 2] = c[Ig >> 2]; while (1) { _h = c[ch >> 2] | 0; c[ch >> 2] = _h + -1; if (!_h) break; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Yg >> 2] | 0) >>> 0 ) break; c[oh >> 2] = (c[Og >> 2] | 0) + (((c[Ng >> 2] & c[Qg >> 2]) << 1) << 2); c[ph >> 2] = (c[Rg >> 2] | 0) >>> 0 < (c[Sg >> 2] | 0) >>> 0 ? c[Rg >> 2] | 0 : c[Sg >> 2] | 0; if ( c[Ag >> 2] | 0 ? (((c[Ng >> 2] | 0) + (c[ph >> 2] | 0)) | 0) >>> 0 < (c[Ug >> 2] | 0) >>> 0 : 0 ) { c[qh >> 2] = (c[Tg >> 2] | 0) + (c[Ng >> 2] | 0); _h = Uj( ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0, ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; c[ph >> 2] = (c[ph >> 2] | 0) + _h; if ( (((c[Ng >> 2] | 0) + (c[ph >> 2] | 0)) | 0) >>> 0 >= (c[Ug >> 2] | 0) >>> 0 ) c[qh >> 2] = (c[Hg >> 2] | 0) + (c[Ng >> 2] | 0); } else { c[qh >> 2] = (c[Hg >> 2] | 0) + (c[Ng >> 2] | 0); _h = Tj( ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0, ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) | 0, c[zg >> 2] | 0 ) | 0; c[ph >> 2] = (c[ph >> 2] | 0) + _h; } if ( (c[ph >> 2] | 0) >>> 0 > (c[dh >> 2] | 0) >>> 0 ) { if ( (c[ph >> 2] | 0) >>> 0 > (((c[$g >> 2] | 0) - (c[Ng >> 2] | 0)) | 0) >>> 0 ) c[$g >> 2] = (c[Ng >> 2] | 0) + (c[ph >> 2] | 0); c[dh >> 2] = c[ph >> 2]; c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3)) >> 2 ] = (c[Ig >> 2] | 0) - (c[Ng >> 2] | 0) + 2; c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3) + 4) >> 2 ] = c[ph >> 2]; c[bh >> 2] = (c[bh >> 2] | 0) + 1; if ((c[ph >> 2] | 0) >>> 0 > 4096) break; if ( (((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0) == (c[zg >> 2] | 0) ) break; } _h = c[Ng >> 2] | 0; if ( (d[ ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Zg >> 2] >> 2] = _h; c[Rg >> 2] = c[ph >> 2]; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Xg >> 2] | 0) >>> 0 ) { dj = 56; break; } c[Zg >> 2] = (c[oh >> 2] | 0) + 4; c[Ng >> 2] = c[((c[oh >> 2] | 0) + 4) >> 2]; } else { c[c[_g >> 2] >> 2] = _h; c[Sg >> 2] = c[ph >> 2]; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Xg >> 2] | 0) >>> 0 ) { dj = 59; break; } c[_g >> 2] = c[oh >> 2]; c[Ng >> 2] = c[c[oh >> 2] >> 2]; } } if ((dj | 0) == 56) { dj = 0; c[Zg >> 2] = ah; } else if ((dj | 0) == 59) { dj = 0; c[_g >> 2] = ah; } c[c[_g >> 2] >> 2] = 0; c[c[Zg >> 2] >> 2] = 0; c[((c[wg >> 2] | 0) + 24) >> 2] = (c[$g >> 2] | 0) - 8; c[vg >> 2] = c[bh >> 2]; } } while (0); c[Ah >> 2] = c[vg >> 2]; break a; break; } case 7: case 6: { _h = c[Ch >> 2] | 0; Qh = c[Dh >> 2] | 0; Ph = c[Eh >> 2] | 0; Zi = c[Fh >> 2] | 0; _i = c[Gh >> 2] | 0; Uh = c[Hh >> 2] | 0; Zh = c[Ih >> 2] | 0; aj = c[Jh >> 2] | 0; c[Hd >> 2] = c[Bh >> 2]; c[Id >> 2] = _h; c[Jd >> 2] = Qh; c[Kd >> 2] = Ph; c[Ld >> 2] = Zi; c[Md >> 2] = _i; c[Nd >> 2] = Uh; c[Od >> 2] = Zh; c[Pd >> 2] = aj; c[Qd >> 2] = 6; if ( (c[((c[Id >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) fj = c[((c[Id >> 2] | 0) + 20) >> 2] | 0; else fj = 4095; c[Rd >> 2] = fj; c[Sd >> 2] = c[((c[Hd >> 2] | 0) + 4) >> 2]; c[Td >> 2] = (c[Jd >> 2] | 0) - (c[Sd >> 2] | 0); c[Ud >> 2] = c[((c[Id >> 2] | 0) + 8) >> 2]; c[Vd >> 2] = (c[Qd >> 2] | 0) == 3 ? 3 : 4; c[Wd >> 2] = c[((c[Hd >> 2] | 0) + 36) >> 2]; c[Xd >> 2] = Sj( c[Jd >> 2] | 0, c[Ud >> 2] | 0, c[Qd >> 2] | 0 ) | 0; c[Yd >> 2] = c[((c[Wd >> 2] | 0) + (c[Xd >> 2] << 2)) >> 2]; c[Zd >> 2] = c[((c[Hd >> 2] | 0) + 44) >> 2]; c[_d >> 2] = (c[((c[Id >> 2] | 0) + 4) >> 2] | 0) - 1; c[$d >> 2] = (1 << c[_d >> 2]) - 1; c[ae >> 2] = 0; c[be >> 2] = 0; c[ce >> 2] = c[((c[Hd >> 2] | 0) + 8) >> 2]; c[de >> 2] = c[((c[Hd >> 2] | 0) + 12) >> 2]; c[ee >> 2] = (c[ce >> 2] | 0) + (c[de >> 2] | 0); c[fe >> 2] = (c[Sd >> 2] | 0) + (c[de >> 2] | 0); if ( (c[$d >> 2] | 0) >>> 0 >= (c[Td >> 2] | 0) >>> 0 ) gj = 0; else gj = ((c[Td >> 2] | 0) - (c[$d >> 2] | 0)) | 0; c[ge >> 2] = gj; c[he >> 2] = c[((c[Hd >> 2] | 0) + 16) >> 2]; c[ie >> 2] = (c[Zd >> 2] | 0) + (((c[Td >> 2] & c[$d >> 2]) << 1) << 2); c[je >> 2] = (c[Zd >> 2] | 0) + (((c[Td >> 2] & c[$d >> 2]) << 1) << 2) + 4; c[ke >> 2] = (c[Td >> 2] | 0) + 8 + 1; c[me >> 2] = 0; c[ne >> 2] = 1 << c[((c[Id >> 2] | 0) + 12) >> 2]; c[oe >> 2] = (c[Pd >> 2] | 0) - 1; c[pe >> 2] = 3 + (c[Nd >> 2] | 0); c[qe >> 2] = c[Nd >> 2]; while (1) { if ( (c[qe >> 2] | 0) >>> 0 >= (c[pe >> 2] | 0) >>> 0 ) { dj = 190; break; } aj = c[Md >> 2] | 0; if ((c[qe >> 2] | 0) == 3) hj = ((c[aj >> 2] | 0) - 1) | 0; else hj = c[(aj + (c[qe >> 2] << 2)) >> 2] | 0; c[re >> 2] = hj; c[se >> 2] = (c[Td >> 2] | 0) - (c[re >> 2] | 0); c[te >> 2] = 0; if ( (((c[re >> 2] | 0) - 1) | 0) >>> 0 < (((c[Td >> 2] | 0) - (c[de >> 2] | 0)) | 0) >>> 0 ) { aj = mm(c[Jd >> 2] | 0, c[Vd >> 2] | 0) | 0; if ( (aj | 0) == (mm( ((c[Jd >> 2] | 0) + (0 - (c[re >> 2] | 0))) | 0, c[Vd >> 2] | 0 ) | 0) ) { aj = Tj( ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0) + (0 - (c[re >> 2] | 0))) | 0, c[Kd >> 2] | 0 ) | 0; c[te >> 2] = aj + (c[Vd >> 2] | 0); } } else { c[ue >> 2] = (c[ce >> 2] | 0) + (c[se >> 2] | 0); if ( ( c[Ld >> 2] | 0 ? ((((c[de >> 2] | 0) - 1 - (c[se >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[re >> 2] | 0) - 1) | 0) >>> 0 < (((c[Td >> 2] | 0) - (c[he >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((aj = mm(c[Jd >> 2] | 0, c[Vd >> 2] | 0) | 0), (aj | 0) == (mm(c[ue >> 2] | 0, c[Vd >> 2] | 0) | 0)) : 0 ) { aj = Uj( ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, ((c[ue >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; c[te >> 2] = aj + (c[Vd >> 2] | 0); } } if ( (c[te >> 2] | 0) >>> 0 > (c[oe >> 2] | 0) >>> 0 ? ((c[oe >> 2] = c[te >> 2]), (c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3)) >> 2 ] = (c[qe >> 2] | 0) - (c[Nd >> 2] | 0)), (c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3) + 4) >> 2 ] = c[te >> 2]), (c[me >> 2] = (c[me >> 2] | 0) + 1), ((c[te >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0 ? 1 : (((c[Jd >> 2] | 0) + (c[te >> 2] | 0)) | 0) == (c[Kd >> 2] | 0)) | 0) : 0 ) { dj = 188; break; } c[qe >> 2] = (c[qe >> 2] | 0) + 1; } do { if ((dj | 0) == 188) { dj = 0; c[Gd >> 2] = c[me >> 2]; } else if ((dj | 0) == 190) { dj = 0; if ( ( (c[Qd >> 2] | 0) == 3 ? (c[oe >> 2] | 0) >>> 0 < (c[Qd >> 2] | 0) >>> 0 : 0 ) ? ((c[ve >> 2] = nm(c[Hd >> 2] | 0, c[Jd >> 2] | 0) | 0), ((c[ve >> 2] | 0) >>> 0 > (c[he >> 2] | 0) >>> 0 ? (((c[Td >> 2] | 0) - (c[ve >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ld >> 2] | 0 ? (c[ve >> 2] | 0) >>> 0 < (c[de >> 2] | 0) >>> 0 : 0 ) { c[ye >> 2] = (c[ce >> 2] | 0) + (c[ve >> 2] | 0); c[we >> 2] = Uj( c[Jd >> 2] | 0, c[ye >> 2] | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; } else { c[xe >> 2] = (c[Sd >> 2] | 0) + (c[ve >> 2] | 0); c[we >> 2] = Tj( c[Jd >> 2] | 0, c[xe >> 2] | 0, c[Kd >> 2] | 0 ) | 0; } if ( (c[we >> 2] | 0) >>> 0 >= (c[Qd >> 2] | 0) >>> 0 ? ((c[oe >> 2] = c[we >> 2]), (c[c[Od >> 2] >> 2] = (c[Td >> 2] | 0) - (c[ve >> 2] | 0) + 2), (c[((c[Od >> 2] | 0) + 4) >> 2] = c[we >> 2]), (c[me >> 2] = 1), ((c[we >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0 ? 1 : (((c[Jd >> 2] | 0) + (c[we >> 2] | 0)) | 0) == (c[Kd >> 2] | 0)) | 0) : 0 ) { c[((c[Hd >> 2] | 0) + 24) >> 2] = (c[Td >> 2] | 0) + 1; c[Gd >> 2] = 1; break; } } c[((c[Wd >> 2] | 0) + (c[Xd >> 2] << 2)) >> 2] = c[Td >> 2]; while (1) { aj = c[ne >> 2] | 0; c[ne >> 2] = aj + -1; if (!aj) break; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[he >> 2] | 0) >>> 0 ) break; c[ze >> 2] = (c[Zd >> 2] | 0) + (((c[Yd >> 2] & c[$d >> 2]) << 1) << 2); c[Ae >> 2] = (c[ae >> 2] | 0) >>> 0 < (c[be >> 2] | 0) >>> 0 ? c[ae >> 2] | 0 : c[be >> 2] | 0; if ( c[Ld >> 2] | 0 ? (((c[Yd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) >>> 0 < (c[de >> 2] | 0) >>> 0 : 0 ) { c[Be >> 2] = (c[ce >> 2] | 0) + (c[Yd >> 2] | 0); aj = Uj( ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; c[Ae >> 2] = (c[Ae >> 2] | 0) + aj; if ( (((c[Yd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) >>> 0 >= (c[de >> 2] | 0) >>> 0 ) c[Be >> 2] = (c[Sd >> 2] | 0) + (c[Yd >> 2] | 0); } else { c[Be >> 2] = (c[Sd >> 2] | 0) + (c[Yd >> 2] | 0); aj = Tj( ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, c[Kd >> 2] | 0 ) | 0; c[Ae >> 2] = (c[Ae >> 2] | 0) + aj; } if ( (c[Ae >> 2] | 0) >>> 0 > (c[oe >> 2] | 0) >>> 0 ) { if ( (c[Ae >> 2] | 0) >>> 0 > (((c[ke >> 2] | 0) - (c[Yd >> 2] | 0)) | 0) >>> 0 ) c[ke >> 2] = (c[Yd >> 2] | 0) + (c[Ae >> 2] | 0); c[oe >> 2] = c[Ae >> 2]; c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3)) >> 2 ] = (c[Td >> 2] | 0) - (c[Yd >> 2] | 0) + 2; c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3) + 4) >> 2 ] = c[Ae >> 2]; c[me >> 2] = (c[me >> 2] | 0) + 1; if ((c[Ae >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) == (c[Kd >> 2] | 0) ) break; } aj = c[Yd >> 2] | 0; if ( (d[ ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[ie >> 2] >> 2] = aj; c[ae >> 2] = c[Ae >> 2]; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[ge >> 2] | 0) >>> 0 ) { dj = 215; break; } c[ie >> 2] = (c[ze >> 2] | 0) + 4; c[Yd >> 2] = c[((c[ze >> 2] | 0) + 4) >> 2]; } else { c[c[je >> 2] >> 2] = aj; c[be >> 2] = c[Ae >> 2]; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[ge >> 2] | 0) >>> 0 ) { dj = 218; break; } c[je >> 2] = c[ze >> 2]; c[Yd >> 2] = c[c[ze >> 2] >> 2]; } } if ((dj | 0) == 215) { dj = 0; c[ie >> 2] = le; } else if ((dj | 0) == 218) { dj = 0; c[je >> 2] = le; } c[c[je >> 2] >> 2] = 0; c[c[ie >> 2] >> 2] = 0; c[((c[Hd >> 2] | 0) + 24) >> 2] = (c[ke >> 2] | 0) - 8; c[Gd >> 2] = c[me >> 2]; } } while (0); c[Ah >> 2] = c[Gd >> 2]; break a; break; } case 5: { aj = c[Ch >> 2] | 0; Zh = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; _i = c[Fh >> 2] | 0; Zi = c[Gh >> 2] | 0; Ph = c[Hh >> 2] | 0; Qh = c[Ih >> 2] | 0; _h = c[Jh >> 2] | 0; c[De >> 2] = c[Bh >> 2]; c[Ee >> 2] = aj; c[Fe >> 2] = Zh; c[Ge >> 2] = Uh; c[He >> 2] = _i; c[Ie >> 2] = Zi; c[Je >> 2] = Ph; c[Ke >> 2] = Qh; c[Le >> 2] = _h; c[Me >> 2] = 5; if ( (c[((c[Ee >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) ij = c[((c[Ee >> 2] | 0) + 20) >> 2] | 0; else ij = 4095; c[Ne >> 2] = ij; c[Oe >> 2] = c[((c[De >> 2] | 0) + 4) >> 2]; c[Pe >> 2] = (c[Fe >> 2] | 0) - (c[Oe >> 2] | 0); c[Qe >> 2] = c[((c[Ee >> 2] | 0) + 8) >> 2]; c[Re >> 2] = (c[Me >> 2] | 0) == 3 ? 3 : 4; c[Se >> 2] = c[((c[De >> 2] | 0) + 36) >> 2]; c[Te >> 2] = Sj( c[Fe >> 2] | 0, c[Qe >> 2] | 0, c[Me >> 2] | 0 ) | 0; c[Ue >> 2] = c[((c[Se >> 2] | 0) + (c[Te >> 2] << 2)) >> 2]; c[Ve >> 2] = c[((c[De >> 2] | 0) + 44) >> 2]; c[We >> 2] = (c[((c[Ee >> 2] | 0) + 4) >> 2] | 0) - 1; c[Xe >> 2] = (1 << c[We >> 2]) - 1; c[Ye >> 2] = 0; c[Ze >> 2] = 0; c[_e >> 2] = c[((c[De >> 2] | 0) + 8) >> 2]; c[$e >> 2] = c[((c[De >> 2] | 0) + 12) >> 2]; c[af >> 2] = (c[_e >> 2] | 0) + (c[$e >> 2] | 0); c[bf >> 2] = (c[Oe >> 2] | 0) + (c[$e >> 2] | 0); if ( (c[Xe >> 2] | 0) >>> 0 >= (c[Pe >> 2] | 0) >>> 0 ) jj = 0; else jj = ((c[Pe >> 2] | 0) - (c[Xe >> 2] | 0)) | 0; c[cf >> 2] = jj; c[df >> 2] = c[((c[De >> 2] | 0) + 16) >> 2]; c[ef >> 2] = (c[Ve >> 2] | 0) + (((c[Pe >> 2] & c[Xe >> 2]) << 1) << 2); c[ff >> 2] = (c[Ve >> 2] | 0) + (((c[Pe >> 2] & c[Xe >> 2]) << 1) << 2) + 4; c[gf >> 2] = (c[Pe >> 2] | 0) + 8 + 1; c[jf >> 2] = 0; c[kf >> 2] = 1 << c[((c[Ee >> 2] | 0) + 12) >> 2]; c[lf >> 2] = (c[Le >> 2] | 0) - 1; c[mf >> 2] = 3 + (c[Je >> 2] | 0); c[nf >> 2] = c[Je >> 2]; while (1) { if ( (c[nf >> 2] | 0) >>> 0 >= (c[mf >> 2] | 0) >>> 0 ) { dj = 137; break; } _h = c[Ie >> 2] | 0; if ((c[nf >> 2] | 0) == 3) kj = ((c[_h >> 2] | 0) - 1) | 0; else kj = c[(_h + (c[nf >> 2] << 2)) >> 2] | 0; c[of >> 2] = kj; c[pf >> 2] = (c[Pe >> 2] | 0) - (c[of >> 2] | 0); c[qf >> 2] = 0; if ( (((c[of >> 2] | 0) - 1) | 0) >>> 0 < (((c[Pe >> 2] | 0) - (c[$e >> 2] | 0)) | 0) >>> 0 ) { _h = mm(c[Fe >> 2] | 0, c[Re >> 2] | 0) | 0; if ( (_h | 0) == (mm( ((c[Fe >> 2] | 0) + (0 - (c[of >> 2] | 0))) | 0, c[Re >> 2] | 0 ) | 0) ) { _h = Tj( ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0)) | 0, ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0) + (0 - (c[of >> 2] | 0))) | 0, c[Ge >> 2] | 0 ) | 0; c[qf >> 2] = _h + (c[Re >> 2] | 0); } } else { c[rf >> 2] = (c[_e >> 2] | 0) + (c[pf >> 2] | 0); if ( ( c[He >> 2] | 0 ? ((((c[$e >> 2] | 0) - 1 - (c[pf >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[of >> 2] | 0) - 1) | 0) >>> 0 < (((c[Pe >> 2] | 0) - (c[df >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((_h = mm(c[Fe >> 2] | 0, c[Re >> 2] | 0) | 0), (_h | 0) == (mm(c[rf >> 2] | 0, c[Re >> 2] | 0) | 0)) : 0 ) { _h = Uj( ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0)) | 0, ((c[rf >> 2] | 0) + (c[Re >> 2] | 0)) | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; c[qf >> 2] = _h + (c[Re >> 2] | 0); } } if ( (c[qf >> 2] | 0) >>> 0 > (c[lf >> 2] | 0) >>> 0 ? ((c[lf >> 2] = c[qf >> 2]), (c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3)) >> 2 ] = (c[nf >> 2] | 0) - (c[Je >> 2] | 0)), (c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3) + 4) >> 2 ] = c[qf >> 2]), (c[jf >> 2] = (c[jf >> 2] | 0) + 1), ((c[qf >> 2] | 0) >>> 0 > (c[Ne >> 2] | 0) >>> 0 ? 1 : (((c[Fe >> 2] | 0) + (c[qf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0)) | 0) : 0 ) { dj = 135; break; } c[nf >> 2] = (c[nf >> 2] | 0) + 1; } do { if ((dj | 0) == 135) { dj = 0; c[Ce >> 2] = c[jf >> 2]; } else if ((dj | 0) == 137) { dj = 0; if ( ( (c[Me >> 2] | 0) == 3 ? (c[lf >> 2] | 0) >>> 0 < (c[Me >> 2] | 0) >>> 0 : 0 ) ? ((c[sf >> 2] = nm(c[De >> 2] | 0, c[Fe >> 2] | 0) | 0), ((c[sf >> 2] | 0) >>> 0 > (c[df >> 2] | 0) >>> 0 ? (((c[Pe >> 2] | 0) - (c[sf >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[He >> 2] | 0 ? (c[sf >> 2] | 0) >>> 0 < (c[$e >> 2] | 0) >>> 0 : 0 ) { c[vf >> 2] = (c[_e >> 2] | 0) + (c[sf >> 2] | 0); c[tf >> 2] = Uj( c[Fe >> 2] | 0, c[vf >> 2] | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; } else { c[uf >> 2] = (c[Oe >> 2] | 0) + (c[sf >> 2] | 0); c[tf >> 2] = Tj( c[Fe >> 2] | 0, c[uf >> 2] | 0, c[Ge >> 2] | 0 ) | 0; } if ( (c[tf >> 2] | 0) >>> 0 >= (c[Me >> 2] | 0) >>> 0 ? ((c[lf >> 2] = c[tf >> 2]), (c[c[Ke >> 2] >> 2] = (c[Pe >> 2] | 0) - (c[sf >> 2] | 0) + 2), (c[((c[Ke >> 2] | 0) + 4) >> 2] = c[tf >> 2]), (c[jf >> 2] = 1), ((c[tf >> 2] | 0) >>> 0 > (c[Ne >> 2] | 0) >>> 0 ? 1 : (((c[Fe >> 2] | 0) + (c[tf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0)) | 0) : 0 ) { c[((c[De >> 2] | 0) + 24) >> 2] = (c[Pe >> 2] | 0) + 1; c[Ce >> 2] = 1; break; } } c[((c[Se >> 2] | 0) + (c[Te >> 2] << 2)) >> 2] = c[Pe >> 2]; while (1) { _h = c[kf >> 2] | 0; c[kf >> 2] = _h + -1; if (!_h) break; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[df >> 2] | 0) >>> 0 ) break; c[wf >> 2] = (c[Ve >> 2] | 0) + (((c[Ue >> 2] & c[Xe >> 2]) << 1) << 2); c[xf >> 2] = (c[Ye >> 2] | 0) >>> 0 < (c[Ze >> 2] | 0) >>> 0 ? c[Ye >> 2] | 0 : c[Ze >> 2] | 0; if ( c[He >> 2] | 0 ? (((c[Ue >> 2] | 0) + (c[xf >> 2] | 0)) | 0) >>> 0 < (c[$e >> 2] | 0) >>> 0 : 0 ) { c[yf >> 2] = (c[_e >> 2] | 0) + (c[Ue >> 2] | 0); _h = Uj( ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0, ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; c[xf >> 2] = (c[xf >> 2] | 0) + _h; if ( (((c[Ue >> 2] | 0) + (c[xf >> 2] | 0)) | 0) >>> 0 >= (c[$e >> 2] | 0) >>> 0 ) c[yf >> 2] = (c[Oe >> 2] | 0) + (c[Ue >> 2] | 0); } else { c[yf >> 2] = (c[Oe >> 2] | 0) + (c[Ue >> 2] | 0); _h = Tj( ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0, ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) | 0, c[Ge >> 2] | 0 ) | 0; c[xf >> 2] = (c[xf >> 2] | 0) + _h; } if ( (c[xf >> 2] | 0) >>> 0 > (c[lf >> 2] | 0) >>> 0 ) { if ( (c[xf >> 2] | 0) >>> 0 > (((c[gf >> 2] | 0) - (c[Ue >> 2] | 0)) | 0) >>> 0 ) c[gf >> 2] = (c[Ue >> 2] | 0) + (c[xf >> 2] | 0); c[lf >> 2] = c[xf >> 2]; c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3)) >> 2 ] = (c[Pe >> 2] | 0) - (c[Ue >> 2] | 0) + 2; c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3) + 4) >> 2 ] = c[xf >> 2]; c[jf >> 2] = (c[jf >> 2] | 0) + 1; if ((c[xf >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0) ) break; } _h = c[Ue >> 2] | 0; if ( (d[ ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[ef >> 2] >> 2] = _h; c[Ye >> 2] = c[xf >> 2]; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[cf >> 2] | 0) >>> 0 ) { dj = 162; break; } c[ef >> 2] = (c[wf >> 2] | 0) + 4; c[Ue >> 2] = c[((c[wf >> 2] | 0) + 4) >> 2]; } else { c[c[ff >> 2] >> 2] = _h; c[Ze >> 2] = c[xf >> 2]; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[cf >> 2] | 0) >>> 0 ) { dj = 165; break; } c[ff >> 2] = c[wf >> 2]; c[Ue >> 2] = c[c[wf >> 2] >> 2]; } } if ((dj | 0) == 162) { dj = 0; c[ef >> 2] = hf; } else if ((dj | 0) == 165) { dj = 0; c[ff >> 2] = hf; } c[c[ff >> 2] >> 2] = 0; c[c[ef >> 2] >> 2] = 0; c[((c[De >> 2] | 0) + 24) >> 2] = (c[gf >> 2] | 0) - 8; c[Ce >> 2] = c[jf >> 2]; } } while (0); c[Ah >> 2] = c[Ce >> 2]; break a; break; } default: { _h = c[Ch >> 2] | 0; Qh = c[Dh >> 2] | 0; Ph = c[Eh >> 2] | 0; Zi = c[Fh >> 2] | 0; _i = c[Gh >> 2] | 0; Uh = c[Hh >> 2] | 0; Zh = c[Ih >> 2] | 0; aj = c[Jh >> 2] | 0; c[Af >> 2] = c[Bh >> 2]; c[Bf >> 2] = _h; c[Cf >> 2] = Qh; c[Df >> 2] = Ph; c[Ef >> 2] = Zi; c[Ff >> 2] = _i; c[Gf >> 2] = Uh; c[Hf >> 2] = Zh; c[If >> 2] = aj; c[Jf >> 2] = 4; if ( (c[((c[Bf >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) lj = c[((c[Bf >> 2] | 0) + 20) >> 2] | 0; else lj = 4095; c[Kf >> 2] = lj; c[Lf >> 2] = c[((c[Af >> 2] | 0) + 4) >> 2]; c[Mf >> 2] = (c[Cf >> 2] | 0) - (c[Lf >> 2] | 0); c[Nf >> 2] = c[((c[Bf >> 2] | 0) + 8) >> 2]; c[Of >> 2] = (c[Jf >> 2] | 0) == 3 ? 3 : 4; c[Pf >> 2] = c[((c[Af >> 2] | 0) + 36) >> 2]; c[Qf >> 2] = Sj( c[Cf >> 2] | 0, c[Nf >> 2] | 0, c[Jf >> 2] | 0 ) | 0; c[Rf >> 2] = c[((c[Pf >> 2] | 0) + (c[Qf >> 2] << 2)) >> 2]; c[Sf >> 2] = c[((c[Af >> 2] | 0) + 44) >> 2]; c[Tf >> 2] = (c[((c[Bf >> 2] | 0) + 4) >> 2] | 0) - 1; c[Uf >> 2] = (1 << c[Tf >> 2]) - 1; c[Vf >> 2] = 0; c[Wf >> 2] = 0; c[Xf >> 2] = c[((c[Af >> 2] | 0) + 8) >> 2]; c[Yf >> 2] = c[((c[Af >> 2] | 0) + 12) >> 2]; c[Zf >> 2] = (c[Xf >> 2] | 0) + (c[Yf >> 2] | 0); c[_f >> 2] = (c[Lf >> 2] | 0) + (c[Yf >> 2] | 0); if ( (c[Uf >> 2] | 0) >>> 0 >= (c[Mf >> 2] | 0) >>> 0 ) mj = 0; else mj = ((c[Mf >> 2] | 0) - (c[Uf >> 2] | 0)) | 0; c[$f >> 2] = mj; c[ag >> 2] = c[((c[Af >> 2] | 0) + 16) >> 2]; c[bg >> 2] = (c[Sf >> 2] | 0) + (((c[Mf >> 2] & c[Uf >> 2]) << 1) << 2); c[cg >> 2] = (c[Sf >> 2] | 0) + (((c[Mf >> 2] & c[Uf >> 2]) << 1) << 2) + 4; c[dg >> 2] = (c[Mf >> 2] | 0) + 8 + 1; c[fg >> 2] = 0; c[gg >> 2] = 1 << c[((c[Bf >> 2] | 0) + 12) >> 2]; c[hg >> 2] = (c[If >> 2] | 0) - 1; c[ig >> 2] = 3 + (c[Gf >> 2] | 0); c[jg >> 2] = c[Gf >> 2]; while (1) { if ( (c[jg >> 2] | 0) >>> 0 >= (c[ig >> 2] | 0) >>> 0 ) { dj = 84; break; } aj = c[Ff >> 2] | 0; if ((c[jg >> 2] | 0) == 3) nj = ((c[aj >> 2] | 0) - 1) | 0; else nj = c[(aj + (c[jg >> 2] << 2)) >> 2] | 0; c[kg >> 2] = nj; c[lg >> 2] = (c[Mf >> 2] | 0) - (c[kg >> 2] | 0); c[mg >> 2] = 0; if ( (((c[kg >> 2] | 0) - 1) | 0) >>> 0 < (((c[Mf >> 2] | 0) - (c[Yf >> 2] | 0)) | 0) >>> 0 ) { aj = mm(c[Cf >> 2] | 0, c[Of >> 2] | 0) | 0; if ( (aj | 0) == (mm( ((c[Cf >> 2] | 0) + (0 - (c[kg >> 2] | 0))) | 0, c[Of >> 2] | 0 ) | 0) ) { aj = Tj( ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0)) | 0, ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0) + (0 - (c[kg >> 2] | 0))) | 0, c[Df >> 2] | 0 ) | 0; c[mg >> 2] = aj + (c[Of >> 2] | 0); } } else { c[ng >> 2] = (c[Xf >> 2] | 0) + (c[lg >> 2] | 0); if ( ( c[Ef >> 2] | 0 ? ((((c[Yf >> 2] | 0) - 1 - (c[lg >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[kg >> 2] | 0) - 1) | 0) >>> 0 < (((c[Mf >> 2] | 0) - (c[ag >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((aj = mm(c[Cf >> 2] | 0, c[Of >> 2] | 0) | 0), (aj | 0) == (mm(c[ng >> 2] | 0, c[Of >> 2] | 0) | 0)) : 0 ) { aj = Uj( ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0)) | 0, ((c[ng >> 2] | 0) + (c[Of >> 2] | 0)) | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; c[mg >> 2] = aj + (c[Of >> 2] | 0); } } if ( (c[mg >> 2] | 0) >>> 0 > (c[hg >> 2] | 0) >>> 0 ? ((c[hg >> 2] = c[mg >> 2]), (c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3)) >> 2 ] = (c[jg >> 2] | 0) - (c[Gf >> 2] | 0)), (c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3) + 4) >> 2 ] = c[mg >> 2]), (c[fg >> 2] = (c[fg >> 2] | 0) + 1), ((c[mg >> 2] | 0) >>> 0 > (c[Kf >> 2] | 0) >>> 0 ? 1 : (((c[Cf >> 2] | 0) + (c[mg >> 2] | 0)) | 0) == (c[Df >> 2] | 0)) | 0) : 0 ) { dj = 82; break; } c[jg >> 2] = (c[jg >> 2] | 0) + 1; } do { if ((dj | 0) == 82) { dj = 0; c[zf >> 2] = c[fg >> 2]; } else if ((dj | 0) == 84) { dj = 0; if ( ( (c[Jf >> 2] | 0) == 3 ? (c[hg >> 2] | 0) >>> 0 < (c[Jf >> 2] | 0) >>> 0 : 0 ) ? ((c[og >> 2] = nm(c[Af >> 2] | 0, c[Cf >> 2] | 0) | 0), ((c[og >> 2] | 0) >>> 0 > (c[ag >> 2] | 0) >>> 0 ? (((c[Mf >> 2] | 0) - (c[og >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ef >> 2] | 0 ? (c[og >> 2] | 0) >>> 0 < (c[Yf >> 2] | 0) >>> 0 : 0 ) { c[rg >> 2] = (c[Xf >> 2] | 0) + (c[og >> 2] | 0); c[pg >> 2] = Uj( c[Cf >> 2] | 0, c[rg >> 2] | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; } else { c[qg >> 2] = (c[Lf >> 2] | 0) + (c[og >> 2] | 0); c[pg >> 2] = Tj( c[Cf >> 2] | 0, c[qg >> 2] | 0, c[Df >> 2] | 0 ) | 0; } if ( (c[pg >> 2] | 0) >>> 0 >= (c[Jf >> 2] | 0) >>> 0 ? ((c[hg >> 2] = c[pg >> 2]), (c[c[Hf >> 2] >> 2] = (c[Mf >> 2] | 0) - (c[og >> 2] | 0) + 2), (c[((c[Hf >> 2] | 0) + 4) >> 2] = c[pg >> 2]), (c[fg >> 2] = 1), ((c[pg >> 2] | 0) >>> 0 > (c[Kf >> 2] | 0) >>> 0 ? 1 : (((c[Cf >> 2] | 0) + (c[pg >> 2] | 0)) | 0) == (c[Df >> 2] | 0)) | 0) : 0 ) { c[((c[Af >> 2] | 0) + 24) >> 2] = (c[Mf >> 2] | 0) + 1; c[zf >> 2] = 1; break; } } c[((c[Pf >> 2] | 0) + (c[Qf >> 2] << 2)) >> 2] = c[Mf >> 2]; while (1) { aj = c[gg >> 2] | 0; c[gg >> 2] = aj + -1; if (!aj) break; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[ag >> 2] | 0) >>> 0 ) break; c[sg >> 2] = (c[Sf >> 2] | 0) + (((c[Rf >> 2] & c[Uf >> 2]) << 1) << 2); c[tg >> 2] = (c[Vf >> 2] | 0) >>> 0 < (c[Wf >> 2] | 0) >>> 0 ? c[Vf >> 2] | 0 : c[Wf >> 2] | 0; if ( c[Ef >> 2] | 0 ? (((c[Rf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) >>> 0 < (c[Yf >> 2] | 0) >>> 0 : 0 ) { c[ug >> 2] = (c[Xf >> 2] | 0) + (c[Rf >> 2] | 0); aj = Uj( ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0, ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; c[tg >> 2] = (c[tg >> 2] | 0) + aj; if ( (((c[Rf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) >>> 0 >= (c[Yf >> 2] | 0) >>> 0 ) c[ug >> 2] = (c[Lf >> 2] | 0) + (c[Rf >> 2] | 0); } else { c[ug >> 2] = (c[Lf >> 2] | 0) + (c[Rf >> 2] | 0); aj = Tj( ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0, ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) | 0, c[Df >> 2] | 0 ) | 0; c[tg >> 2] = (c[tg >> 2] | 0) + aj; } if ( (c[tg >> 2] | 0) >>> 0 > (c[hg >> 2] | 0) >>> 0 ) { if ( (c[tg >> 2] | 0) >>> 0 > (((c[dg >> 2] | 0) - (c[Rf >> 2] | 0)) | 0) >>> 0 ) c[dg >> 2] = (c[Rf >> 2] | 0) + (c[tg >> 2] | 0); c[hg >> 2] = c[tg >> 2]; c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3)) >> 2 ] = (c[Mf >> 2] | 0) - (c[Rf >> 2] | 0) + 2; c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3) + 4) >> 2 ] = c[tg >> 2]; c[fg >> 2] = (c[fg >> 2] | 0) + 1; if ((c[tg >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) == (c[Df >> 2] | 0) ) break; } aj = c[Rf >> 2] | 0; if ( (d[ ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[bg >> 2] >> 2] = aj; c[Vf >> 2] = c[tg >> 2]; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[$f >> 2] | 0) >>> 0 ) { dj = 109; break; } c[bg >> 2] = (c[sg >> 2] | 0) + 4; c[Rf >> 2] = c[((c[sg >> 2] | 0) + 4) >> 2]; } else { c[c[cg >> 2] >> 2] = aj; c[Wf >> 2] = c[tg >> 2]; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[$f >> 2] | 0) >>> 0 ) { dj = 112; break; } c[cg >> 2] = c[sg >> 2]; c[Rf >> 2] = c[c[sg >> 2] >> 2]; } } if ((dj | 0) == 109) { dj = 0; c[bg >> 2] = eg; } else if ((dj | 0) == 112) { dj = 0; c[cg >> 2] = eg; } c[c[cg >> 2] >> 2] = 0; c[c[bg >> 2] >> 2] = 0; c[((c[Af >> 2] | 0) + 24) >> 2] = (c[dg >> 2] | 0) - 8; c[zf >> 2] = c[fg >> 2]; } } while (0); c[Ah >> 2] = c[zf >> 2]; break a; } } } } while (0); c[ki >> 2] = c[Ah >> 2]; if (!(c[ki >> 2] | 0)) { c[Vh >> 2] = (c[Vh >> 2] | 0) + 1; continue; } c[li >> 2] = 0; while (1) { if ((c[li >> 2] | 0) >>> 0 >= 3) break; c[((c[bi >> 2] | 0) + 16 + (c[li >> 2] << 2)) >> 2] = c[((c[Nh >> 2] | 0) + (c[li >> 2] << 2)) >> 2]; c[li >> 2] = (c[li >> 2] | 0) + 1; } c[((c[bi >> 2] | 0) + 8) >> 2] = 1; c[((c[bi >> 2] | 0) + 12) >> 2] = c[ii >> 2]; c[mi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[ki >> 2] | 0) - 1) << 3) + 4) >> 2 ]; do { if ((c[mi >> 2] | 0) >>> 0 <= (c[$h >> 2] | 0) >>> 0) { c[ni >> 2] = om( di, c[Wh >> 2] | 0, c[ii >> 2] | 0, c[Th >> 2] | 0 ) | 0; c[oi >> 2] = 0; while (1) { if ((c[oi >> 2] | 0) >>> 0 >= (c[ai >> 2] | 0) >>> 0) break; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 8) >> 2 ] = 1; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0)) >> 2 ] = 1073741824; c[oi >> 2] = (c[oi >> 2] | 0) + 1; } c[pi >> 2] = 0; while (1) { if ((c[pi >> 2] | 0) >>> 0 >= (c[ki >> 2] | 0) >>> 0) break; c[qi >> 2] = c[((c[ci >> 2] | 0) + (c[pi >> 2] << 3)) >> 2]; c[ri >> 2] = c[((c[ci >> 2] | 0) + (c[pi >> 2] << 3) + 4) >> 2]; pm( si, c[Nh >> 2] | 0, c[qi >> 2] | 0, c[ji >> 2] | 0 ); while (1) { if ((c[oi >> 2] | 0) >>> 0 > (c[ri >> 2] | 0) >>> 0) break; aj = c[ni >> 2] | 0; Zh = c[oi >> 2] | 0; Uh = c[Th >> 2] | 0; _i = c[Rh >> 2] | 0; c[yd >> 2] = c[qi >> 2]; c[zd >> 2] = Zh; c[Ad >> 2] = Uh; c[Bd >> 2] = _i; c[Dd >> 2] = qm(((c[yd >> 2] | 0) + 1) | 0) | 0; c[Ed >> 2] = (c[zd >> 2] | 0) - 3; if (c[((c[Ad >> 2] | 0) + 56) >> 2] | 0) { _i = ((qm(((c[Ed >> 2] | 0) + 1) | 0) | 0) + 16) | 0; c[xd >> 2] = _i + (c[Dd >> 2] | 0); } else { _i = ((c[Dd >> 2] | 0) + (c[((c[Ad >> 2] | 0) + 52) >> 2] | 0)) | 0; c[Cd >> 2] = _i - (qm( ((c[ ((c[((c[Ad >> 2] | 0) + 12) >> 2] | 0) + (c[Dd >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); if ( ((c[Bd >> 2] | 0) < 2) & ((c[Dd >> 2] | 0) >>> 0 >= 20) ) c[Cd >> 2] = (c[Cd >> 2] | 0) + (((c[Dd >> 2] | 0) - 19) << 1); c[Fd >> 2] = rm(c[Ed >> 2] | 0) | 0; _i = ((c[(5840 + (c[Fd >> 2] << 2)) >> 2] | 0) + (c[((c[Ad >> 2] | 0) + 48) >> 2] | 0)) | 0; Uh = (_i - (qm( ((c[ ((c[((c[Ad >> 2] | 0) + 8) >> 2] | 0) + (c[Fd >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0)) | 0; c[Cd >> 2] = (c[Cd >> 2] | 0) + Uh; c[xd >> 2] = c[Cd >> 2]; } c[ti >> 2] = aj + (c[xd >> 2] | 0); c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[oi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[qi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[ii >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0)) >> 2 ] = c[ti >> 2]; aj = ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 16) | 0; c[aj >> 2] = c[si >> 2]; c[(aj + 4) >> 2] = c[(si + 4) >> 2]; c[(aj + 8) >> 2] = c[(si + 8) >> 2]; c[oi >> 2] = (c[oi >> 2] | 0) + 1; } c[pi >> 2] = (c[pi >> 2] | 0) + 1; } c[fi >> 2] = (c[oi >> 2] | 0) - 1; c[ei >> 2] = 1; b: while (1) { if ((c[ei >> 2] | 0) >>> 0 > (c[fi >> 2] | 0) >>> 0) { dj = 504; break; } c[ui >> 2] = (c[Vh >> 2] | 0) + (c[ei >> 2] | 0); if ( (c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 8) >> 2 ] | 0) == 1 ) oj = ((c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 12) >> 2 ] | 0) + 1) | 0; else oj = 1; c[vi >> 2] = oj; if ((c[ei >> 2] | 0) >>> 0 > (c[vi >> 2] | 0) >>> 0) { aj = c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - (c[vi >> 2] | 0)) | 0) * 28) | 0)) >> 2 ] | 0; c[wi >> 2] = aj + (sm( ((c[ui >> 2] | 0) + (0 - (c[vi >> 2] | 0))) | 0, c[vi >> 2] | 0, c[Th >> 2] | 0 ) | 0); } else c[wi >> 2] = tm( di, c[Wh >> 2] | 0, c[vi >> 2] | 0, c[Th >> 2] | 0 ) | 0; if ( (c[wi >> 2] | 0) <= (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] | 0) ) { c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] = 1; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 4) >> 2 ] = 0; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[vi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] = c[wi >> 2]; aj = ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0; Uh = ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 16) | 0; c[aj >> 2] = c[Uh >> 2]; c[(aj + 4) >> 2] = c[(Uh + 4) >> 2]; c[(aj + 8) >> 2] = c[(Uh + 8) >> 2]; } c: do { if ( (c[ui >> 2] | 0) >>> 0 <= (c[Yh >> 2] | 0) >>> 0 ) { if ((c[ei >> 2] | 0) == (c[fi >> 2] | 0)) { dj = 504; break b; } if ( (c[Rh >> 2] | 0) == 0 ? (c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) + 1) | 0) * 28) | 0)) >> 2 ] | 0) <= (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] | 0) : 0 ) break; c[xi >> 2] = ((c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] | 0) != 1) & 1; if ( (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] | 0) == 1 ) pj = c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 12) >> 2 ] | 0; else pj = 0; c[yi >> 2] = pj; if ( (c[ei >> 2] | 0) >>> 0 > (c[yi >> 2] | 0) >>> 0 ) qj = c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - (c[yi >> 2] | 0)) | 0) * 28) | 0)) >> 2 ] | 0; else qj = 0; c[zi >> 2] = qj; Uh = c[zi >> 2] | 0; c[Ai >> 2] = Uh + (um( ((c[ui >> 2] | 0) + (0 - (c[yi >> 2] | 0))) | 0, c[yi >> 2] | 0, c[Th >> 2] | 0 ) | 0); Uh = c[Oh >> 2] | 0; aj = c[ui >> 2] | 0; _i = c[Xh >> 2] | 0; Zh = c[Sh >> 2] | 0; Zi = ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0; Ph = c[xi >> 2] | 0; Qh = c[ci >> 2] | 0; _h = c[ai >> 2] | 0; c[nd >> 2] = c[Lh >> 2]; c[od >> 2] = Uh; c[pd >> 2] = aj; c[qd >> 2] = _i; c[rd >> 2] = Zh; c[sd >> 2] = Zi; c[td >> 2] = Ph; c[ud >> 2] = Qh; c[vd >> 2] = _h; c[wd >> 2] = c[((c[od >> 2] | 0) + 16) >> 2]; d: do { if ( (c[pd >> 2] | 0) >>> 0 < (((c[((c[nd >> 2] | 0) + 4) >> 2] | 0) + (c[((c[nd >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) c[md >> 2] = 0; else { _h = c[od >> 2] | 0; Qh = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Zi = c[wd >> 2] | 0; Zh = c[rd >> 2] | 0; c[dd >> 2] = c[nd >> 2]; c[ed >> 2] = _h; c[fd >> 2] = Qh; c[gd >> 2] = Ph; c[hd >> 2] = Zi; c[id >> 2] = Zh; c[jd >> 2] = c[((c[dd >> 2] | 0) + 4) >> 2]; c[kd >> 2] = (c[fd >> 2] | 0) - (c[jd >> 2] | 0); c[ld >> 2] = c[((c[dd >> 2] | 0) + 24) >> 2]; while (1) { if ( (c[ld >> 2] | 0) >>> 0 >= (c[kd >> 2] | 0) >>> 0 ) break; Zh = Rj( c[dd >> 2] | 0, c[ed >> 2] | 0, ((c[jd >> 2] | 0) + (c[ld >> 2] | 0)) | 0, c[gd >> 2] | 0, c[hd >> 2] | 0, c[id >> 2] | 0 ) | 0; c[ld >> 2] = (c[ld >> 2] | 0) + Zh; } c[((c[dd >> 2] | 0) + 24) >> 2] = c[kd >> 2]; switch (c[wd >> 2] | 0) { case 3: { Zh = c[od >> 2] | 0; Zi = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Qh = c[rd >> 2] | 0; _h = c[sd >> 2] | 0; _i = c[td >> 2] | 0; aj = c[ud >> 2] | 0; Uh = c[vd >> 2] | 0; c[ic >> 2] = c[nd >> 2]; c[jc >> 2] = Zh; c[kc >> 2] = Zi; c[lc >> 2] = Ph; c[mc >> 2] = Qh; c[nc >> 2] = _h; c[oc >> 2] = _i; c[pc >> 2] = aj; c[qc >> 2] = Uh; c[rc >> 2] = 3; if ( (c[((c[jc >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) rj = c[((c[jc >> 2] | 0) + 20) >> 2] | 0; else rj = 4095; c[sc >> 2] = rj; c[tc >> 2] = c[((c[ic >> 2] | 0) + 4) >> 2]; c[uc >> 2] = (c[kc >> 2] | 0) - (c[tc >> 2] | 0); c[vc >> 2] = c[((c[jc >> 2] | 0) + 8) >> 2]; c[wc >> 2] = (c[rc >> 2] | 0) == 3 ? 3 : 4; c[xc >> 2] = c[((c[ic >> 2] | 0) + 36) >> 2]; c[yc >> 2] = Sj( c[kc >> 2] | 0, c[vc >> 2] | 0, c[rc >> 2] | 0 ) | 0; c[zc >> 2] = c[ ((c[xc >> 2] | 0) + (c[yc >> 2] << 2)) >> 2 ]; c[Ac >> 2] = c[((c[ic >> 2] | 0) + 44) >> 2]; c[Bc >> 2] = (c[((c[jc >> 2] | 0) + 4) >> 2] | 0) - 1; c[Cc >> 2] = (1 << c[Bc >> 2]) - 1; c[Dc >> 2] = 0; c[Ec >> 2] = 0; c[Fc >> 2] = c[((c[ic >> 2] | 0) + 8) >> 2]; c[Gc >> 2] = c[((c[ic >> 2] | 0) + 12) >> 2]; c[Hc >> 2] = (c[Fc >> 2] | 0) + (c[Gc >> 2] | 0); c[Ic >> 2] = (c[tc >> 2] | 0) + (c[Gc >> 2] | 0); if ( (c[Cc >> 2] | 0) >>> 0 >= (c[uc >> 2] | 0) >>> 0 ) sj = 0; else sj = ((c[uc >> 2] | 0) - (c[Cc >> 2] | 0)) | 0; c[Jc >> 2] = sj; c[Kc >> 2] = c[((c[ic >> 2] | 0) + 16) >> 2]; c[Lc >> 2] = (c[Ac >> 2] | 0) + (((c[uc >> 2] & c[Cc >> 2]) << 1) << 2); c[Mc >> 2] = (c[Ac >> 2] | 0) + (((c[uc >> 2] & c[Cc >> 2]) << 1) << 2) + 4; c[Nc >> 2] = (c[uc >> 2] | 0) + 8 + 1; c[Pc >> 2] = 0; c[Qc >> 2] = 1 << c[((c[jc >> 2] | 0) + 12) >> 2]; c[Rc >> 2] = (c[qc >> 2] | 0) - 1; c[Sc >> 2] = 3 + (c[oc >> 2] | 0); c[Tc >> 2] = c[oc >> 2]; while (1) { if ( (c[Tc >> 2] | 0) >>> 0 >= (c[Sc >> 2] | 0) >>> 0 ) { dj = 287; break; } Uh = c[nc >> 2] | 0; if ((c[Tc >> 2] | 0) == 3) tj = ((c[Uh >> 2] | 0) - 1) | 0; else tj = c[(Uh + (c[Tc >> 2] << 2)) >> 2] | 0; c[Uc >> 2] = tj; c[Vc >> 2] = (c[uc >> 2] | 0) - (c[Uc >> 2] | 0); c[Wc >> 2] = 0; do { if ( (((c[Uc >> 2] | 0) - 1) | 0) >>> 0 < (((c[uc >> 2] | 0) - (c[Gc >> 2] | 0)) | 0) >>> 0 ) { Uh = mm( c[kc >> 2] | 0, c[wc >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( ((c[kc >> 2] | 0) + (0 - (c[Uc >> 2] | 0))) | 0, c[wc >> 2] | 0 ) | 0) ) break; Uh = Tj( ((c[kc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, ((c[kc >> 2] | 0) + (c[wc >> 2] | 0) + (0 - (c[Uc >> 2] | 0))) | 0, c[lc >> 2] | 0 ) | 0; c[Wc >> 2] = Uh + (c[wc >> 2] | 0); } else { c[Xc >> 2] = (c[Fc >> 2] | 0) + (c[Vc >> 2] | 0); if (!(c[mc >> 2] | 0)) break; if ( !( ((((c[Gc >> 2] | 0) - 1 - (c[Vc >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[Uc >> 2] | 0) - 1) | 0) >>> 0 < (((c[uc >> 2] | 0) - (c[Kc >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Uh = mm( c[kc >> 2] | 0, c[wc >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( c[Xc >> 2] | 0, c[wc >> 2] | 0 ) | 0) ) break; Uh = Uj( ((c[kc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, ((c[Xc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; c[Wc >> 2] = Uh + (c[wc >> 2] | 0); } } while (0); if ( (c[Wc >> 2] | 0) >>> 0 > (c[Rc >> 2] | 0) >>> 0 ? ((c[Rc >> 2] = c[Wc >> 2]), (c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3)) >> 2 ] = (c[Tc >> 2] | 0) - (c[oc >> 2] | 0)), (c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3) + 4) >> 2 ] = c[Wc >> 2]), (c[Pc >> 2] = (c[Pc >> 2] | 0) + 1), ((c[Wc >> 2] | 0) >>> 0 > (c[sc >> 2] | 0) >>> 0 ? 1 : (((c[kc >> 2] | 0) + (c[Wc >> 2] | 0)) | 0) == (c[lc >> 2] | 0)) | 0) : 0 ) { dj = 285; break; } c[Tc >> 2] = (c[Tc >> 2] | 0) + 1; } e: do { if ((dj | 0) == 285) { dj = 0; c[hc >> 2] = c[Pc >> 2]; } else if ((dj | 0) == 287) { dj = 0; do { if ((c[rc >> 2] | 0) == 3) { if ( (c[Rc >> 2] | 0) >>> 0 >= (c[rc >> 2] | 0) >>> 0 ) break; c[Yc >> 2] = nm( c[ic >> 2] | 0, c[kc >> 2] | 0 ) | 0; if ( !( ((c[Yc >> 2] | 0) >>> 0 > (c[Kc >> 2] | 0) >>> 0 ? (((c[uc >> 2] | 0) - (c[Yc >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[mc >> 2] | 0) { if ( (c[Yc >> 2] | 0) >>> 0 >= (c[Gc >> 2] | 0) >>> 0 ) { dj = 292; break; } c[$c >> 2] = (c[Fc >> 2] | 0) + (c[Yc >> 2] | 0); c[Zc >> 2] = Uj( c[kc >> 2] | 0, c[$c >> 2] | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; } else dj = 292; } while (0); if ((dj | 0) == 292) { dj = 0; c[_c >> 2] = (c[tc >> 2] | 0) + (c[Yc >> 2] | 0); c[Zc >> 2] = Tj( c[kc >> 2] | 0, c[_c >> 2] | 0, c[lc >> 2] | 0 ) | 0; } if ( (c[Zc >> 2] | 0) >>> 0 < (c[rc >> 2] | 0) >>> 0 ) break; c[Rc >> 2] = c[Zc >> 2]; c[c[pc >> 2] >> 2] = (c[uc >> 2] | 0) - (c[Yc >> 2] | 0) + 2; c[((c[pc >> 2] | 0) + 4) >> 2] = c[Zc >> 2]; c[Pc >> 2] = 1; if ( !( ((c[Zc >> 2] | 0) >>> 0 > (c[sc >> 2] | 0) >>> 0 ? 1 : (((c[kc >> 2] | 0) + (c[Zc >> 2] | 0)) | 0) == (c[lc >> 2] | 0)) | 0 ) ) break; c[((c[ic >> 2] | 0) + 24) >> 2] = (c[uc >> 2] | 0) + 1; c[hc >> 2] = 1; break e; } } while (0); c[ ((c[xc >> 2] | 0) + (c[yc >> 2] << 2)) >> 2 ] = c[uc >> 2]; while (1) { Uh = c[Qc >> 2] | 0; c[Qc >> 2] = Uh + -1; if (!Uh) break; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Kc >> 2] | 0) >>> 0 ) break; c[ad >> 2] = (c[Ac >> 2] | 0) + (((c[zc >> 2] & c[Cc >> 2]) << 1) << 2); c[bd >> 2] = (c[Dc >> 2] | 0) >>> 0 < (c[Ec >> 2] | 0) >>> 0 ? c[Dc >> 2] | 0 : c[Ec >> 2] | 0; do { if (c[mc >> 2] | 0) { if ( (((c[zc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) >>> 0 >= (c[Gc >> 2] | 0) >>> 0 ) { dj = 302; break; } c[cd >> 2] = (c[Fc >> 2] | 0) + (c[zc >> 2] | 0); Uh = Uj( ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0, ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; c[bd >> 2] = (c[bd >> 2] | 0) + Uh; if ( (((c[zc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) >>> 0 < (c[Gc >> 2] | 0) >>> 0 ) break; c[cd >> 2] = (c[tc >> 2] | 0) + (c[zc >> 2] | 0); } else dj = 302; } while (0); if ((dj | 0) == 302) { dj = 0; c[cd >> 2] = (c[tc >> 2] | 0) + (c[zc >> 2] | 0); Uh = Tj( ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0, ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) | 0, c[lc >> 2] | 0 ) | 0; c[bd >> 2] = (c[bd >> 2] | 0) + Uh; } if ( (c[bd >> 2] | 0) >>> 0 > (c[Rc >> 2] | 0) >>> 0 ) { if ( (c[bd >> 2] | 0) >>> 0 > (((c[Nc >> 2] | 0) - (c[zc >> 2] | 0)) | 0) >>> 0 ) c[Nc >> 2] = (c[zc >> 2] | 0) + (c[bd >> 2] | 0); c[Rc >> 2] = c[bd >> 2]; c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3)) >> 2 ] = (c[uc >> 2] | 0) - (c[zc >> 2] | 0) + 2; c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3) + 4) >> 2 ] = c[bd >> 2]; c[Pc >> 2] = (c[Pc >> 2] | 0) + 1; if ((c[bd >> 2] | 0) >>> 0 > 4096) break; if ( (((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) == (c[lc >> 2] | 0) ) break; } Uh = c[zc >> 2] | 0; if ( (d[ ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Lc >> 2] >> 2] = Uh; c[Dc >> 2] = c[bd >> 2]; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Jc >> 2] | 0) >>> 0 ) { dj = 312; break; } c[Lc >> 2] = (c[ad >> 2] | 0) + 4; c[zc >> 2] = c[((c[ad >> 2] | 0) + 4) >> 2]; } else { c[c[Mc >> 2] >> 2] = Uh; c[Ec >> 2] = c[bd >> 2]; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Jc >> 2] | 0) >>> 0 ) { dj = 315; break; } c[Mc >> 2] = c[ad >> 2]; c[zc >> 2] = c[c[ad >> 2] >> 2]; } } if ((dj | 0) == 312) { dj = 0; c[Lc >> 2] = Oc; } else if ((dj | 0) == 315) { dj = 0; c[Mc >> 2] = Oc; } c[c[Mc >> 2] >> 2] = 0; c[c[Lc >> 2] >> 2] = 0; c[((c[ic >> 2] | 0) + 24) >> 2] = (c[Nc >> 2] | 0) - 8; c[hc >> 2] = c[Pc >> 2]; } } while (0); c[md >> 2] = c[hc >> 2]; break d; break; } case 7: case 6: { Uh = c[od >> 2] | 0; aj = c[pd >> 2] | 0; _i = c[qd >> 2] | 0; _h = c[rd >> 2] | 0; Qh = c[sd >> 2] | 0; Ph = c[td >> 2] | 0; Zi = c[ud >> 2] | 0; Zh = c[vd >> 2] | 0; c[u >> 2] = c[nd >> 2]; c[v >> 2] = Uh; c[w >> 2] = aj; c[x >> 2] = _i; c[y >> 2] = _h; c[z >> 2] = Qh; c[A >> 2] = Ph; c[B >> 2] = Zi; c[C >> 2] = Zh; c[D >> 2] = 6; if ( (c[((c[v >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) uj = c[((c[v >> 2] | 0) + 20) >> 2] | 0; else uj = 4095; c[E >> 2] = uj; c[F >> 2] = c[((c[u >> 2] | 0) + 4) >> 2]; c[G >> 2] = (c[w >> 2] | 0) - (c[F >> 2] | 0); c[H >> 2] = c[((c[v >> 2] | 0) + 8) >> 2]; c[I >> 2] = (c[D >> 2] | 0) == 3 ? 3 : 4; c[J >> 2] = c[((c[u >> 2] | 0) + 36) >> 2]; c[K >> 2] = Sj( c[w >> 2] | 0, c[H >> 2] | 0, c[D >> 2] | 0 ) | 0; c[L >> 2] = c[ ((c[J >> 2] | 0) + (c[K >> 2] << 2)) >> 2 ]; c[M >> 2] = c[((c[u >> 2] | 0) + 44) >> 2]; c[N >> 2] = (c[((c[v >> 2] | 0) + 4) >> 2] | 0) - 1; c[O >> 2] = (1 << c[N >> 2]) - 1; c[P >> 2] = 0; c[Q >> 2] = 0; c[R >> 2] = c[((c[u >> 2] | 0) + 8) >> 2]; c[S >> 2] = c[((c[u >> 2] | 0) + 12) >> 2]; c[T >> 2] = (c[R >> 2] | 0) + (c[S >> 2] | 0); c[U >> 2] = (c[F >> 2] | 0) + (c[S >> 2] | 0); if ( (c[O >> 2] | 0) >>> 0 >= (c[G >> 2] | 0) >>> 0 ) vj = 0; else vj = ((c[G >> 2] | 0) - (c[O >> 2] | 0)) | 0; c[V >> 2] = vj; c[W >> 2] = c[((c[u >> 2] | 0) + 16) >> 2]; c[X >> 2] = (c[M >> 2] | 0) + (((c[G >> 2] & c[O >> 2]) << 1) << 2); c[Y >> 2] = (c[M >> 2] | 0) + (((c[G >> 2] & c[O >> 2]) << 1) << 2) + 4; c[Z >> 2] = (c[G >> 2] | 0) + 8 + 1; c[$ >> 2] = 0; c[aa >> 2] = 1 << c[((c[v >> 2] | 0) + 12) >> 2]; c[ba >> 2] = (c[C >> 2] | 0) - 1; c[ca >> 2] = 3 + (c[A >> 2] | 0); c[da >> 2] = c[A >> 2]; while (1) { if ( (c[da >> 2] | 0) >>> 0 >= (c[ca >> 2] | 0) >>> 0 ) { dj = 446; break; } Zh = c[z >> 2] | 0; if ((c[da >> 2] | 0) == 3) wj = ((c[Zh >> 2] | 0) - 1) | 0; else wj = c[(Zh + (c[da >> 2] << 2)) >> 2] | 0; c[ea >> 2] = wj; c[fa >> 2] = (c[G >> 2] | 0) - (c[ea >> 2] | 0); c[ga >> 2] = 0; do { if ( (((c[ea >> 2] | 0) - 1) | 0) >>> 0 < (((c[G >> 2] | 0) - (c[S >> 2] | 0)) | 0) >>> 0 ) { Zh = mm(c[w >> 2] | 0, c[I >> 2] | 0) | 0; if ( (Zh | 0) != (mm( ((c[w >> 2] | 0) + (0 - (c[ea >> 2] | 0))) | 0, c[I >> 2] | 0 ) | 0) ) break; Zh = Tj( ((c[w >> 2] | 0) + (c[I >> 2] | 0)) | 0, ((c[w >> 2] | 0) + (c[I >> 2] | 0) + (0 - (c[ea >> 2] | 0))) | 0, c[x >> 2] | 0 ) | 0; c[ga >> 2] = Zh + (c[I >> 2] | 0); } else { c[ha >> 2] = (c[R >> 2] | 0) + (c[fa >> 2] | 0); if (!(c[y >> 2] | 0)) break; if ( !( ((((c[S >> 2] | 0) - 1 - (c[fa >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[ea >> 2] | 0) - 1) | 0) >>> 0 < (((c[G >> 2] | 0) - (c[W >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Zh = mm(c[w >> 2] | 0, c[I >> 2] | 0) | 0; if ( (Zh | 0) != (mm( c[ha >> 2] | 0, c[I >> 2] | 0 ) | 0) ) break; Zh = Uj( ((c[w >> 2] | 0) + (c[I >> 2] | 0)) | 0, ((c[ha >> 2] | 0) + (c[I >> 2] | 0)) | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[ga >> 2] = Zh + (c[I >> 2] | 0); } } while (0); if ( (c[ga >> 2] | 0) >>> 0 > (c[ba >> 2] | 0) >>> 0 ? ((c[ba >> 2] = c[ga >> 2]), (c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3)) >> 2 ] = (c[da >> 2] | 0) - (c[A >> 2] | 0)), (c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3) + 4) >> 2 ] = c[ga >> 2]), (c[$ >> 2] = (c[$ >> 2] | 0) + 1), ((c[ga >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0 ? 1 : (((c[w >> 2] | 0) + (c[ga >> 2] | 0)) | 0) == (c[x >> 2] | 0)) | 0) : 0 ) { dj = 444; break; } c[da >> 2] = (c[da >> 2] | 0) + 1; } f: do { if ((dj | 0) == 444) { dj = 0; c[t >> 2] = c[$ >> 2]; } else if ((dj | 0) == 446) { dj = 0; do { if ((c[D >> 2] | 0) == 3) { if ( (c[ba >> 2] | 0) >>> 0 >= (c[D >> 2] | 0) >>> 0 ) break; c[ia >> 2] = nm( c[u >> 2] | 0, c[w >> 2] | 0 ) | 0; if ( !( ((c[ia >> 2] | 0) >>> 0 > (c[W >> 2] | 0) >>> 0 ? (((c[G >> 2] | 0) - (c[ia >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[y >> 2] | 0) { if ( (c[ia >> 2] | 0) >>> 0 >= (c[S >> 2] | 0) >>> 0 ) { dj = 451; break; } c[la >> 2] = (c[R >> 2] | 0) + (c[ia >> 2] | 0); c[ja >> 2] = Uj( c[w >> 2] | 0, c[la >> 2] | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; } else dj = 451; } while (0); if ((dj | 0) == 451) { dj = 0; c[ka >> 2] = (c[F >> 2] | 0) + (c[ia >> 2] | 0); c[ja >> 2] = Tj( c[w >> 2] | 0, c[ka >> 2] | 0, c[x >> 2] | 0 ) | 0; } if ( (c[ja >> 2] | 0) >>> 0 < (c[D >> 2] | 0) >>> 0 ) break; c[ba >> 2] = c[ja >> 2]; c[c[B >> 2] >> 2] = (c[G >> 2] | 0) - (c[ia >> 2] | 0) + 2; c[((c[B >> 2] | 0) + 4) >> 2] = c[ja >> 2]; c[$ >> 2] = 1; if ( !( ((c[ja >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0 ? 1 : (((c[w >> 2] | 0) + (c[ja >> 2] | 0)) | 0) == (c[x >> 2] | 0)) | 0 ) ) break; c[((c[u >> 2] | 0) + 24) >> 2] = (c[G >> 2] | 0) + 1; c[t >> 2] = 1; break f; } } while (0); c[ ((c[J >> 2] | 0) + (c[K >> 2] << 2)) >> 2 ] = c[G >> 2]; while (1) { Zh = c[aa >> 2] | 0; c[aa >> 2] = Zh + -1; if (!Zh) break; if ( (c[L >> 2] | 0) >>> 0 <= (c[W >> 2] | 0) >>> 0 ) break; c[ma >> 2] = (c[M >> 2] | 0) + (((c[L >> 2] & c[O >> 2]) << 1) << 2); c[na >> 2] = (c[P >> 2] | 0) >>> 0 < (c[Q >> 2] | 0) >>> 0 ? c[P >> 2] | 0 : c[Q >> 2] | 0; do { if (c[y >> 2] | 0) { if ( (((c[L >> 2] | 0) + (c[na >> 2] | 0)) | 0) >>> 0 >= (c[S >> 2] | 0) >>> 0 ) { dj = 461; break; } c[oa >> 2] = (c[R >> 2] | 0) + (c[L >> 2] | 0); Zh = Uj( ((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0, ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[na >> 2] = (c[na >> 2] | 0) + Zh; if ( (((c[L >> 2] | 0) + (c[na >> 2] | 0)) | 0) >>> 0 < (c[S >> 2] | 0) >>> 0 ) break; c[oa >> 2] = (c[F >> 2] | 0) + (c[L >> 2] | 0); } else dj = 461; } while (0); if ((dj | 0) == 461) { dj = 0; c[oa >> 2] = (c[F >> 2] | 0) + (c[L >> 2] | 0); Zh = Tj( ((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0, ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) | 0, c[x >> 2] | 0 ) | 0; c[na >> 2] = (c[na >> 2] | 0) + Zh; } if ( (c[na >> 2] | 0) >>> 0 > (c[ba >> 2] | 0) >>> 0 ) { if ( (c[na >> 2] | 0) >>> 0 > (((c[Z >> 2] | 0) - (c[L >> 2] | 0)) | 0) >>> 0 ) c[Z >> 2] = (c[L >> 2] | 0) + (c[na >> 2] | 0); c[ba >> 2] = c[na >> 2]; c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3)) >> 2 ] = (c[G >> 2] | 0) - (c[L >> 2] | 0) + 2; c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3) + 4) >> 2 ] = c[na >> 2]; c[$ >> 2] = (c[$ >> 2] | 0) + 1; if ((c[na >> 2] | 0) >>> 0 > 4096) break; if ( (((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0) == (c[x >> 2] | 0) ) break; } Zh = c[L >> 2] | 0; if ( (d[ ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[w >> 2] | 0) + (c[na >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[X >> 2] >> 2] = Zh; c[P >> 2] = c[na >> 2]; if ( (c[L >> 2] | 0) >>> 0 <= (c[V >> 2] | 0) >>> 0 ) { dj = 471; break; } c[X >> 2] = (c[ma >> 2] | 0) + 4; c[L >> 2] = c[((c[ma >> 2] | 0) + 4) >> 2]; } else { c[c[Y >> 2] >> 2] = Zh; c[Q >> 2] = c[na >> 2]; if ( (c[L >> 2] | 0) >>> 0 <= (c[V >> 2] | 0) >>> 0 ) { dj = 474; break; } c[Y >> 2] = c[ma >> 2]; c[L >> 2] = c[c[ma >> 2] >> 2]; } } if ((dj | 0) == 471) { dj = 0; c[X >> 2] = _; } else if ((dj | 0) == 474) { dj = 0; c[Y >> 2] = _; } c[c[Y >> 2] >> 2] = 0; c[c[X >> 2] >> 2] = 0; c[((c[u >> 2] | 0) + 24) >> 2] = (c[Z >> 2] | 0) - 8; c[t >> 2] = c[$ >> 2]; } } while (0); c[md >> 2] = c[t >> 2]; break d; break; } case 5: { Zh = c[od >> 2] | 0; Zi = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Qh = c[rd >> 2] | 0; _h = c[sd >> 2] | 0; _i = c[td >> 2] | 0; aj = c[ud >> 2] | 0; Uh = c[vd >> 2] | 0; c[qa >> 2] = c[nd >> 2]; c[ra >> 2] = Zh; c[sa >> 2] = Zi; c[ta >> 2] = Ph; c[ua >> 2] = Qh; c[va >> 2] = _h; c[wa >> 2] = _i; c[xa >> 2] = aj; c[ya >> 2] = Uh; c[za >> 2] = 5; if ( (c[((c[ra >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) xj = c[((c[ra >> 2] | 0) + 20) >> 2] | 0; else xj = 4095; c[Aa >> 2] = xj; c[Ba >> 2] = c[((c[qa >> 2] | 0) + 4) >> 2]; c[Ca >> 2] = (c[sa >> 2] | 0) - (c[Ba >> 2] | 0); c[Da >> 2] = c[((c[ra >> 2] | 0) + 8) >> 2]; c[Ea >> 2] = (c[za >> 2] | 0) == 3 ? 3 : 4; c[Fa >> 2] = c[((c[qa >> 2] | 0) + 36) >> 2]; c[Ga >> 2] = Sj( c[sa >> 2] | 0, c[Da >> 2] | 0, c[za >> 2] | 0 ) | 0; c[Ha >> 2] = c[ ((c[Fa >> 2] | 0) + (c[Ga >> 2] << 2)) >> 2 ]; c[Ia >> 2] = c[((c[qa >> 2] | 0) + 44) >> 2]; c[Ja >> 2] = (c[((c[ra >> 2] | 0) + 4) >> 2] | 0) - 1; c[Ka >> 2] = (1 << c[Ja >> 2]) - 1; c[La >> 2] = 0; c[Ma >> 2] = 0; c[Na >> 2] = c[((c[qa >> 2] | 0) + 8) >> 2]; c[Oa >> 2] = c[((c[qa >> 2] | 0) + 12) >> 2]; c[Pa >> 2] = (c[Na >> 2] | 0) + (c[Oa >> 2] | 0); c[Qa >> 2] = (c[Ba >> 2] | 0) + (c[Oa >> 2] | 0); if ( (c[Ka >> 2] | 0) >>> 0 >= (c[Ca >> 2] | 0) >>> 0 ) yj = 0; else yj = ((c[Ca >> 2] | 0) - (c[Ka >> 2] | 0)) | 0; c[Ra >> 2] = yj; c[Sa >> 2] = c[((c[qa >> 2] | 0) + 16) >> 2]; c[Ta >> 2] = (c[Ia >> 2] | 0) + (((c[Ca >> 2] & c[Ka >> 2]) << 1) << 2); c[Ua >> 2] = (c[Ia >> 2] | 0) + (((c[Ca >> 2] & c[Ka >> 2]) << 1) << 2) + 4; c[Va >> 2] = (c[Ca >> 2] | 0) + 8 + 1; c[Xa >> 2] = 0; c[Ya >> 2] = 1 << c[((c[ra >> 2] | 0) + 12) >> 2]; c[Za >> 2] = (c[ya >> 2] | 0) - 1; c[_a >> 2] = 3 + (c[wa >> 2] | 0); c[$a >> 2] = c[wa >> 2]; while (1) { if ( (c[$a >> 2] | 0) >>> 0 >= (c[_a >> 2] | 0) >>> 0 ) { dj = 393; break; } Uh = c[va >> 2] | 0; if ((c[$a >> 2] | 0) == 3) zj = ((c[Uh >> 2] | 0) - 1) | 0; else zj = c[(Uh + (c[$a >> 2] << 2)) >> 2] | 0; c[ab >> 2] = zj; c[bb >> 2] = (c[Ca >> 2] | 0) - (c[ab >> 2] | 0); c[cb >> 2] = 0; do { if ( (((c[ab >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ca >> 2] | 0) - (c[Oa >> 2] | 0)) | 0) >>> 0 ) { Uh = mm( c[sa >> 2] | 0, c[Ea >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( ((c[sa >> 2] | 0) + (0 - (c[ab >> 2] | 0))) | 0, c[Ea >> 2] | 0 ) | 0) ) break; Uh = Tj( ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0) + (0 - (c[ab >> 2] | 0))) | 0, c[ta >> 2] | 0 ) | 0; c[cb >> 2] = Uh + (c[Ea >> 2] | 0); } else { c[db >> 2] = (c[Na >> 2] | 0) + (c[bb >> 2] | 0); if (!(c[ua >> 2] | 0)) break; if ( !( ((((c[Oa >> 2] | 0) - 1 - (c[bb >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[ab >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ca >> 2] | 0) - (c[Sa >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Uh = mm( c[sa >> 2] | 0, c[Ea >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( c[db >> 2] | 0, c[Ea >> 2] | 0 ) | 0) ) break; Uh = Uj( ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, ((c[db >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; c[cb >> 2] = Uh + (c[Ea >> 2] | 0); } } while (0); if ( (c[cb >> 2] | 0) >>> 0 > (c[Za >> 2] | 0) >>> 0 ? ((c[Za >> 2] = c[cb >> 2]), (c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3)) >> 2 ] = (c[$a >> 2] | 0) - (c[wa >> 2] | 0)), (c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3) + 4) >> 2 ] = c[cb >> 2]), (c[Xa >> 2] = (c[Xa >> 2] | 0) + 1), ((c[cb >> 2] | 0) >>> 0 > (c[Aa >> 2] | 0) >>> 0 ? 1 : (((c[sa >> 2] | 0) + (c[cb >> 2] | 0)) | 0) == (c[ta >> 2] | 0)) | 0) : 0 ) { dj = 391; break; } c[$a >> 2] = (c[$a >> 2] | 0) + 1; } g: do { if ((dj | 0) == 391) { dj = 0; c[pa >> 2] = c[Xa >> 2]; } else if ((dj | 0) == 393) { dj = 0; do { if ((c[za >> 2] | 0) == 3) { if ( (c[Za >> 2] | 0) >>> 0 >= (c[za >> 2] | 0) >>> 0 ) break; c[eb >> 2] = nm( c[qa >> 2] | 0, c[sa >> 2] | 0 ) | 0; if ( !( ((c[eb >> 2] | 0) >>> 0 > (c[Sa >> 2] | 0) >>> 0 ? (((c[Ca >> 2] | 0) - (c[eb >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[ua >> 2] | 0) { if ( (c[eb >> 2] | 0) >>> 0 >= (c[Oa >> 2] | 0) >>> 0 ) { dj = 398; break; } c[hb >> 2] = (c[Na >> 2] | 0) + (c[eb >> 2] | 0); c[fb >> 2] = Uj( c[sa >> 2] | 0, c[hb >> 2] | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; } else dj = 398; } while (0); if ((dj | 0) == 398) { dj = 0; c[gb >> 2] = (c[Ba >> 2] | 0) + (c[eb >> 2] | 0); c[fb >> 2] = Tj( c[sa >> 2] | 0, c[gb >> 2] | 0, c[ta >> 2] | 0 ) | 0; } if ( (c[fb >> 2] | 0) >>> 0 < (c[za >> 2] | 0) >>> 0 ) break; c[Za >> 2] = c[fb >> 2]; c[c[xa >> 2] >> 2] = (c[Ca >> 2] | 0) - (c[eb >> 2] | 0) + 2; c[((c[xa >> 2] | 0) + 4) >> 2] = c[fb >> 2]; c[Xa >> 2] = 1; if ( !( ((c[fb >> 2] | 0) >>> 0 > (c[Aa >> 2] | 0) >>> 0 ? 1 : (((c[sa >> 2] | 0) + (c[fb >> 2] | 0)) | 0) == (c[ta >> 2] | 0)) | 0 ) ) break; c[((c[qa >> 2] | 0) + 24) >> 2] = (c[Ca >> 2] | 0) + 1; c[pa >> 2] = 1; break g; } } while (0); c[ ((c[Fa >> 2] | 0) + (c[Ga >> 2] << 2)) >> 2 ] = c[Ca >> 2]; while (1) { Uh = c[Ya >> 2] | 0; c[Ya >> 2] = Uh + -1; if (!Uh) break; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Sa >> 2] | 0) >>> 0 ) break; c[ib >> 2] = (c[Ia >> 2] | 0) + (((c[Ha >> 2] & c[Ka >> 2]) << 1) << 2); c[jb >> 2] = (c[La >> 2] | 0) >>> 0 < (c[Ma >> 2] | 0) >>> 0 ? c[La >> 2] | 0 : c[Ma >> 2] | 0; do { if (c[ua >> 2] | 0) { if ( (((c[Ha >> 2] | 0) + (c[jb >> 2] | 0)) | 0) >>> 0 >= (c[Oa >> 2] | 0) >>> 0 ) { dj = 408; break; } c[kb >> 2] = (c[Na >> 2] | 0) + (c[Ha >> 2] | 0); Uh = Uj( ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0, ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; c[jb >> 2] = (c[jb >> 2] | 0) + Uh; if ( (((c[Ha >> 2] | 0) + (c[jb >> 2] | 0)) | 0) >>> 0 < (c[Oa >> 2] | 0) >>> 0 ) break; c[kb >> 2] = (c[Ba >> 2] | 0) + (c[Ha >> 2] | 0); } else dj = 408; } while (0); if ((dj | 0) == 408) { dj = 0; c[kb >> 2] = (c[Ba >> 2] | 0) + (c[Ha >> 2] | 0); Uh = Tj( ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0, ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) | 0, c[ta >> 2] | 0 ) | 0; c[jb >> 2] = (c[jb >> 2] | 0) + Uh; } if ( (c[jb >> 2] | 0) >>> 0 > (c[Za >> 2] | 0) >>> 0 ) { if ( (c[jb >> 2] | 0) >>> 0 > (((c[Va >> 2] | 0) - (c[Ha >> 2] | 0)) | 0) >>> 0 ) c[Va >> 2] = (c[Ha >> 2] | 0) + (c[jb >> 2] | 0); c[Za >> 2] = c[jb >> 2]; c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3)) >> 2 ] = (c[Ca >> 2] | 0) - (c[Ha >> 2] | 0) + 2; c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3) + 4) >> 2 ] = c[jb >> 2]; c[Xa >> 2] = (c[Xa >> 2] | 0) + 1; if ((c[jb >> 2] | 0) >>> 0 > 4096) break; if ( (((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0) == (c[ta >> 2] | 0) ) break; } Uh = c[Ha >> 2] | 0; if ( (d[ ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Ta >> 2] >> 2] = Uh; c[La >> 2] = c[jb >> 2]; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Ra >> 2] | 0) >>> 0 ) { dj = 418; break; } c[Ta >> 2] = (c[ib >> 2] | 0) + 4; c[Ha >> 2] = c[((c[ib >> 2] | 0) + 4) >> 2]; } else { c[c[Ua >> 2] >> 2] = Uh; c[Ma >> 2] = c[jb >> 2]; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Ra >> 2] | 0) >>> 0 ) { dj = 421; break; } c[Ua >> 2] = c[ib >> 2]; c[Ha >> 2] = c[c[ib >> 2] >> 2]; } } if ((dj | 0) == 418) { dj = 0; c[Ta >> 2] = Wa; } else if ((dj | 0) == 421) { dj = 0; c[Ua >> 2] = Wa; } c[c[Ua >> 2] >> 2] = 0; c[c[Ta >> 2] >> 2] = 0; c[((c[qa >> 2] | 0) + 24) >> 2] = (c[Va >> 2] | 0) - 8; c[pa >> 2] = c[Xa >> 2]; } } while (0); c[md >> 2] = c[pa >> 2]; break d; break; } default: { Uh = c[od >> 2] | 0; aj = c[pd >> 2] | 0; _i = c[qd >> 2] | 0; _h = c[rd >> 2] | 0; Qh = c[sd >> 2] | 0; Ph = c[td >> 2] | 0; Zi = c[ud >> 2] | 0; Zh = c[vd >> 2] | 0; c[mb >> 2] = c[nd >> 2]; c[nb >> 2] = Uh; c[ob >> 2] = aj; c[pb >> 2] = _i; c[qb >> 2] = _h; c[rb >> 2] = Qh; c[sb >> 2] = Ph; c[tb >> 2] = Zi; c[ub >> 2] = Zh; c[vb >> 2] = 4; if ( (c[((c[nb >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) Aj = c[((c[nb >> 2] | 0) + 20) >> 2] | 0; else Aj = 4095; c[wb >> 2] = Aj; c[xb >> 2] = c[((c[mb >> 2] | 0) + 4) >> 2]; c[yb >> 2] = (c[ob >> 2] | 0) - (c[xb >> 2] | 0); c[zb >> 2] = c[((c[nb >> 2] | 0) + 8) >> 2]; c[Ab >> 2] = (c[vb >> 2] | 0) == 3 ? 3 : 4; c[Bb >> 2] = c[((c[mb >> 2] | 0) + 36) >> 2]; c[Cb >> 2] = Sj( c[ob >> 2] | 0, c[zb >> 2] | 0, c[vb >> 2] | 0 ) | 0; c[Db >> 2] = c[ ((c[Bb >> 2] | 0) + (c[Cb >> 2] << 2)) >> 2 ]; c[Eb >> 2] = c[((c[mb >> 2] | 0) + 44) >> 2]; c[Fb >> 2] = (c[((c[nb >> 2] | 0) + 4) >> 2] | 0) - 1; c[Gb >> 2] = (1 << c[Fb >> 2]) - 1; c[Hb >> 2] = 0; c[Ib >> 2] = 0; c[Jb >> 2] = c[((c[mb >> 2] | 0) + 8) >> 2]; c[Kb >> 2] = c[((c[mb >> 2] | 0) + 12) >> 2]; c[Lb >> 2] = (c[Jb >> 2] | 0) + (c[Kb >> 2] | 0); c[Mb >> 2] = (c[xb >> 2] | 0) + (c[Kb >> 2] | 0); if ( (c[Gb >> 2] | 0) >>> 0 >= (c[yb >> 2] | 0) >>> 0 ) Bj = 0; else Bj = ((c[yb >> 2] | 0) - (c[Gb >> 2] | 0)) | 0; c[Nb >> 2] = Bj; c[Ob >> 2] = c[((c[mb >> 2] | 0) + 16) >> 2]; c[Pb >> 2] = (c[Eb >> 2] | 0) + (((c[yb >> 2] & c[Gb >> 2]) << 1) << 2); c[Qb >> 2] = (c[Eb >> 2] | 0) + (((c[yb >> 2] & c[Gb >> 2]) << 1) << 2) + 4; c[Rb >> 2] = (c[yb >> 2] | 0) + 8 + 1; c[Tb >> 2] = 0; c[Ub >> 2] = 1 << c[((c[nb >> 2] | 0) + 12) >> 2]; c[Vb >> 2] = (c[ub >> 2] | 0) - 1; c[Wb >> 2] = 3 + (c[sb >> 2] | 0); c[Xb >> 2] = c[sb >> 2]; while (1) { if ( (c[Xb >> 2] | 0) >>> 0 >= (c[Wb >> 2] | 0) >>> 0 ) { dj = 340; break; } Zh = c[rb >> 2] | 0; if ((c[Xb >> 2] | 0) == 3) Cj = ((c[Zh >> 2] | 0) - 1) | 0; else Cj = c[(Zh + (c[Xb >> 2] << 2)) >> 2] | 0; c[Yb >> 2] = Cj; c[Zb >> 2] = (c[yb >> 2] | 0) - (c[Yb >> 2] | 0); c[_b >> 2] = 0; do { if ( (((c[Yb >> 2] | 0) - 1) | 0) >>> 0 < (((c[yb >> 2] | 0) - (c[Kb >> 2] | 0)) | 0) >>> 0 ) { Zh = mm( c[ob >> 2] | 0, c[Ab >> 2] | 0 ) | 0; if ( (Zh | 0) != (mm( ((c[ob >> 2] | 0) + (0 - (c[Yb >> 2] | 0))) | 0, c[Ab >> 2] | 0 ) | 0) ) break; Zh = Tj( ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0) + (0 - (c[Yb >> 2] | 0))) | 0, c[pb >> 2] | 0 ) | 0; c[_b >> 2] = Zh + (c[Ab >> 2] | 0); } else { c[$b >> 2] = (c[Jb >> 2] | 0) + (c[Zb >> 2] | 0); if (!(c[qb >> 2] | 0)) break; if ( !( ((((c[Kb >> 2] | 0) - 1 - (c[Zb >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[Yb >> 2] | 0) - 1) | 0) >>> 0 < (((c[yb >> 2] | 0) - (c[Ob >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Zh = mm( c[ob >> 2] | 0, c[Ab >> 2] | 0 ) | 0; if ( (Zh | 0) != (mm( c[$b >> 2] | 0, c[Ab >> 2] | 0 ) | 0) ) break; Zh = Uj( ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, ((c[$b >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; c[_b >> 2] = Zh + (c[Ab >> 2] | 0); } } while (0); if ( (c[_b >> 2] | 0) >>> 0 > (c[Vb >> 2] | 0) >>> 0 ? ((c[Vb >> 2] = c[_b >> 2]), (c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3)) >> 2 ] = (c[Xb >> 2] | 0) - (c[sb >> 2] | 0)), (c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3) + 4) >> 2 ] = c[_b >> 2]), (c[Tb >> 2] = (c[Tb >> 2] | 0) + 1), ((c[_b >> 2] | 0) >>> 0 > (c[wb >> 2] | 0) >>> 0 ? 1 : (((c[ob >> 2] | 0) + (c[_b >> 2] | 0)) | 0) == (c[pb >> 2] | 0)) | 0) : 0 ) { dj = 338; break; } c[Xb >> 2] = (c[Xb >> 2] | 0) + 1; } h: do { if ((dj | 0) == 338) { dj = 0; c[lb >> 2] = c[Tb >> 2]; } else if ((dj | 0) == 340) { dj = 0; do { if ((c[vb >> 2] | 0) == 3) { if ( (c[Vb >> 2] | 0) >>> 0 >= (c[vb >> 2] | 0) >>> 0 ) break; c[ac >> 2] = nm( c[mb >> 2] | 0, c[ob >> 2] | 0 ) | 0; if ( !( ((c[ac >> 2] | 0) >>> 0 > (c[Ob >> 2] | 0) >>> 0 ? (((c[yb >> 2] | 0) - (c[ac >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[qb >> 2] | 0) { if ( (c[ac >> 2] | 0) >>> 0 >= (c[Kb >> 2] | 0) >>> 0 ) { dj = 345; break; } c[dc >> 2] = (c[Jb >> 2] | 0) + (c[ac >> 2] | 0); c[bc >> 2] = Uj( c[ob >> 2] | 0, c[dc >> 2] | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; } else dj = 345; } while (0); if ((dj | 0) == 345) { dj = 0; c[cc >> 2] = (c[xb >> 2] | 0) + (c[ac >> 2] | 0); c[bc >> 2] = Tj( c[ob >> 2] | 0, c[cc >> 2] | 0, c[pb >> 2] | 0 ) | 0; } if ( (c[bc >> 2] | 0) >>> 0 < (c[vb >> 2] | 0) >>> 0 ) break; c[Vb >> 2] = c[bc >> 2]; c[c[tb >> 2] >> 2] = (c[yb >> 2] | 0) - (c[ac >> 2] | 0) + 2; c[((c[tb >> 2] | 0) + 4) >> 2] = c[bc >> 2]; c[Tb >> 2] = 1; if ( !( ((c[bc >> 2] | 0) >>> 0 > (c[wb >> 2] | 0) >>> 0 ? 1 : (((c[ob >> 2] | 0) + (c[bc >> 2] | 0)) | 0) == (c[pb >> 2] | 0)) | 0 ) ) break; c[((c[mb >> 2] | 0) + 24) >> 2] = (c[yb >> 2] | 0) + 1; c[lb >> 2] = 1; break h; } } while (0); c[ ((c[Bb >> 2] | 0) + (c[Cb >> 2] << 2)) >> 2 ] = c[yb >> 2]; while (1) { Zh = c[Ub >> 2] | 0; c[Ub >> 2] = Zh + -1; if (!Zh) break; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Ob >> 2] | 0) >>> 0 ) break; c[ec >> 2] = (c[Eb >> 2] | 0) + (((c[Db >> 2] & c[Gb >> 2]) << 1) << 2); c[fc >> 2] = (c[Hb >> 2] | 0) >>> 0 < (c[Ib >> 2] | 0) >>> 0 ? c[Hb >> 2] | 0 : c[Ib >> 2] | 0; do { if (c[qb >> 2] | 0) { if ( (((c[Db >> 2] | 0) + (c[fc >> 2] | 0)) | 0) >>> 0 >= (c[Kb >> 2] | 0) >>> 0 ) { dj = 355; break; } c[gc >> 2] = (c[Jb >> 2] | 0) + (c[Db >> 2] | 0); Zh = Uj( ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0, ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; c[fc >> 2] = (c[fc >> 2] | 0) + Zh; if ( (((c[Db >> 2] | 0) + (c[fc >> 2] | 0)) | 0) >>> 0 < (c[Kb >> 2] | 0) >>> 0 ) break; c[gc >> 2] = (c[xb >> 2] | 0) + (c[Db >> 2] | 0); } else dj = 355; } while (0); if ((dj | 0) == 355) { dj = 0; c[gc >> 2] = (c[xb >> 2] | 0) + (c[Db >> 2] | 0); Zh = Tj( ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0, ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) | 0, c[pb >> 2] | 0 ) | 0; c[fc >> 2] = (c[fc >> 2] | 0) + Zh; } if ( (c[fc >> 2] | 0) >>> 0 > (c[Vb >> 2] | 0) >>> 0 ) { if ( (c[fc >> 2] | 0) >>> 0 > (((c[Rb >> 2] | 0) - (c[Db >> 2] | 0)) | 0) >>> 0 ) c[Rb >> 2] = (c[Db >> 2] | 0) + (c[fc >> 2] | 0); c[Vb >> 2] = c[fc >> 2]; c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3)) >> 2 ] = (c[yb >> 2] | 0) - (c[Db >> 2] | 0) + 2; c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3) + 4) >> 2 ] = c[fc >> 2]; c[Tb >> 2] = (c[Tb >> 2] | 0) + 1; if ((c[fc >> 2] | 0) >>> 0 > 4096) break; if ( (((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0) == (c[pb >> 2] | 0) ) break; } Zh = c[Db >> 2] | 0; if ( (d[ ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Pb >> 2] >> 2] = Zh; c[Hb >> 2] = c[fc >> 2]; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Nb >> 2] | 0) >>> 0 ) { dj = 365; break; } c[Pb >> 2] = (c[ec >> 2] | 0) + 4; c[Db >> 2] = c[((c[ec >> 2] | 0) + 4) >> 2]; } else { c[c[Qb >> 2] >> 2] = Zh; c[Ib >> 2] = c[fc >> 2]; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Nb >> 2] | 0) >>> 0 ) { dj = 368; break; } c[Qb >> 2] = c[ec >> 2]; c[Db >> 2] = c[c[ec >> 2] >> 2]; } } if ((dj | 0) == 365) { dj = 0; c[Pb >> 2] = Sb; } else if ((dj | 0) == 368) { dj = 0; c[Qb >> 2] = Sb; } c[c[Qb >> 2] >> 2] = 0; c[c[Pb >> 2] >> 2] = 0; c[((c[mb >> 2] | 0) + 24) >> 2] = (c[Rb >> 2] | 0) - 8; c[lb >> 2] = c[Tb >> 2]; } } while (0); c[md >> 2] = c[lb >> 2]; break d; } } } } while (0); c[Bi >> 2] = c[md >> 2]; if (c[Bi >> 2] | 0) { c[Di >> 2] = c[ ((c[ci >> 2] | 0) + (((c[Bi >> 2] | 0) - 1) << 3) + 4) >> 2 ]; if ( ((c[Di >> 2] | 0) >>> 0 > (c[$h >> 2] | 0) >>> 0 ? 1 : (((c[ei >> 2] | 0) + (c[Di >> 2] | 0)) | 0) >>> 0 >= 4096) | 0 ) { dj = 481; break b; } c[Ci >> 2] = 0; while (1) { if ( (c[Ci >> 2] | 0) >>> 0 >= (c[Bi >> 2] | 0) >>> 0 ) break c; c[Ei >> 2] = c[ ((c[ci >> 2] | 0) + (c[Ci >> 2] << 3)) >> 2 ]; pm( Fi, ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0, c[Ei >> 2] | 0, c[xi >> 2] | 0 ); c[Gi >> 2] = c[ ((c[ci >> 2] | 0) + (c[Ci >> 2] << 3) + 4) >> 2 ]; if ((c[Ci >> 2] | 0) >>> 0 > 0) Dj = ((c[ ((c[ci >> 2] | 0) + (((c[Ci >> 2] | 0) - 1) << 3) + 4) >> 2 ] | 0) + 1) | 0; else Dj = c[ai >> 2] | 0; c[Hi >> 2] = Dj; c[Ii >> 2] = c[Gi >> 2]; i: while (1) { if ( (c[Ii >> 2] | 0) >>> 0 < (c[Hi >> 2] | 0) >>> 0 ) break; c[Ji >> 2] = (c[ei >> 2] | 0) + (c[Ii >> 2] | 0); Zh = c[Ai >> 2] | 0; Zi = c[Ii >> 2] | 0; Ph = c[Th >> 2] | 0; Qh = c[Rh >> 2] | 0; c[k >> 2] = c[Ei >> 2]; c[m >> 2] = Zi; c[n >> 2] = Ph; c[o >> 2] = Qh; c[q >> 2] = qm(((c[k >> 2] | 0) + 1) | 0) | 0; c[r >> 2] = (c[m >> 2] | 0) - 3; if (c[((c[n >> 2] | 0) + 56) >> 2] | 0) { Qh = ((qm(((c[r >> 2] | 0) + 1) | 0) | 0) + 16) | 0; c[j >> 2] = Qh + (c[q >> 2] | 0); } else { Qh = ((c[q >> 2] | 0) + (c[((c[n >> 2] | 0) + 52) >> 2] | 0)) | 0; c[p >> 2] = Qh - (qm( ((c[ ((c[((c[n >> 2] | 0) + 12) >> 2] | 0) + (c[q >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); if ( ((c[o >> 2] | 0) < 2) & ((c[q >> 2] | 0) >>> 0 >= 20) ) c[p >> 2] = (c[p >> 2] | 0) + (((c[q >> 2] | 0) - 19) << 1); c[s >> 2] = rm(c[r >> 2] | 0) | 0; Qh = ((c[(5840 + (c[s >> 2] << 2)) >> 2] | 0) + (c[((c[n >> 2] | 0) + 48) >> 2] | 0)) | 0; Ph = (Qh - (qm( ((c[ ((c[((c[n >> 2] | 0) + 8) >> 2] | 0) + (c[s >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0)) | 0; c[p >> 2] = (c[p >> 2] | 0) + Ph; c[j >> 2] = c[p >> 2]; } c[Ki >> 2] = Zh + (c[j >> 2] | 0); do { if ( (c[Ji >> 2] | 0) >>> 0 <= (c[fi >> 2] | 0) >>> 0 ) { if ( (c[Ki >> 2] | 0) < (c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0)) >> 2 ] | 0) ) { dj = 496; break; } if (!(c[Rh >> 2] | 0)) break i; } else dj = 496; } while (0); if ((dj | 0) == 496) { dj = 0; while (1) { if ( (c[fi >> 2] | 0) >>> 0 >= (c[Ji >> 2] | 0) >>> 0 ) break; c[ ((c[bi >> 2] | 0) + (((((c[fi >> 2] | 0) + 1) | 0) * 28) | 0)) >> 2 ] = 1073741824; c[fi >> 2] = (c[fi >> 2] | 0) + 1; } c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[Ii >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[Ei >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[yi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0)) >> 2 ] = c[Ki >> 2]; Zh = ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 16) | 0; c[Zh >> 2] = c[Fi >> 2]; c[(Zh + 4) >> 2] = c[(Fi + 4) >> 2]; c[(Zh + 8) >> 2] = c[(Fi + 8) >> 2]; } c[Ii >> 2] = (c[Ii >> 2] | 0) + -1; } c[Ci >> 2] = (c[Ci >> 2] | 0) + 1; } } } } while (0); c[ei >> 2] = (c[ei >> 2] | 0) + 1; } if ((dj | 0) == 481) { dj = 0; c[gi >> 2] = c[Di >> 2]; c[hi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[Bi >> 2] | 0) - 1) << 3)) >> 2 ]; c[fi >> 2] = (c[ei >> 2] | 0) + 1; break; } else if ((dj | 0) == 504) { dj = 0; c[gi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[fi >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[hi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[fi >> 2] | 0) * 28) | 0) + 4) >> 2 ]; c[ei >> 2] = (c[fi >> 2] | 0) - (c[gi >> 2] | 0); break; } } else { c[gi >> 2] = c[mi >> 2]; c[hi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[ki >> 2] | 0) - 1) << 3)) >> 2 ]; c[ei >> 2] = 0; c[fi >> 2] = 1; } } while (0); c[Li >> 2] = c[gi >> 2]; c[Mi >> 2] = c[hi >> 2]; c[Ni >> 2] = c[ei >> 2]; while (1) { c[Oi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[Pi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 4) >> 2 ]; c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[Li >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[Mi >> 2]; c[Li >> 2] = c[Oi >> 2]; c[Mi >> 2] = c[Pi >> 2]; if ((c[Oi >> 2] | 0) >>> 0 > (c[Ni >> 2] | 0) >>> 0) break; c[Ni >> 2] = (c[Ni >> 2] | 0) - (c[Oi >> 2] | 0); } c[Qi >> 2] = 0; while (1) { if ((c[Qi >> 2] | 0) >>> 0 >= (c[fi >> 2] | 0) >>> 0) break; c[Ri >> 2] = (c[Vh >> 2] | 0) - (c[Wh >> 2] | 0); c[Si >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Qi >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[Ti >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Qi >> 2] | 0) * 28) | 0) + 4) >> 2 ]; if ((c[Si >> 2] | 0) == 1) { c[Vh >> 2] = (c[Vh >> 2] | 0) + 1; c[Qi >> 2] = (c[Qi >> 2] | 0) + 1; continue; } c[Qi >> 2] = (c[Qi >> 2] | 0) + (c[Si >> 2] | 0); c[Vh >> 2] = (c[Vh >> 2] | 0) + (c[Si >> 2] | 0); if ((c[Ti >> 2] | 0) >>> 0 < 3) { c[Ui >> 2] = (c[Ti >> 2] | 0) + (((c[Ri >> 2] | 0) == 0) & 1); if (c[Ui >> 2] | 0) { Zh = c[Nh >> 2] | 0; if ((c[Ui >> 2] | 0) == 3) Ej = ((c[Zh >> 2] | 0) - 1) | 0; else Ej = c[(Zh + (c[Ui >> 2] << 2)) >> 2] | 0; c[Vi >> 2] = Ej; if ((c[Ui >> 2] | 0) >>> 0 >= 2) c[((c[Nh >> 2] | 0) + 8) >> 2] = c[((c[Nh >> 2] | 0) + 4) >> 2]; c[((c[Nh >> 2] | 0) + 4) >> 2] = c[c[Nh >> 2] >> 2]; c[c[Nh >> 2] >> 2] = c[Vi >> 2]; } } else { c[((c[Nh >> 2] | 0) + 8) >> 2] = c[((c[Nh >> 2] | 0) + 4) >> 2]; c[((c[Nh >> 2] | 0) + 4) >> 2] = c[c[Nh >> 2] >> 2]; c[c[Nh >> 2] >> 2] = (c[Ti >> 2] | 0) - 2; } vm( c[Th >> 2] | 0, c[Ri >> 2] | 0, c[Wh >> 2] | 0, c[Ti >> 2] | 0, c[Si >> 2] | 0 ); wm( c[Mh >> 2] | 0, c[Ri >> 2] | 0, c[Wh >> 2] | 0, c[Ti >> 2] | 0, ((c[Si >> 2] | 0) - 3) | 0 ); c[Wh >> 2] = c[Vh >> 2]; } xm(c[Th >> 2] | 0); } l = i; return ((c[Xh >> 2] | 0) - (c[Wh >> 2] | 0)) | 0; } function cm(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Qa = 0, Ra = 0, Sa = 0, Ta = 0, Ua = 0, Va = 0, Wa = 0, Xa = 0, Ya = 0, Za = 0, _a = 0, $a = 0, ab = 0, bb = 0, cb = 0, db = 0, eb = 0, fb = 0, gb = 0, hb = 0, ib = 0, jb = 0, kb = 0, lb = 0, mb = 0, nb = 0, ob = 0, pb = 0, qb = 0, rb = 0, sb = 0, tb = 0, ub = 0, vb = 0, wb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0, Cb = 0, Db = 0, Eb = 0, Fb = 0, Gb = 0, Hb = 0, Ib = 0, Jb = 0, Kb = 0, Lb = 0, Mb = 0, Nb = 0, Ob = 0, Pb = 0, Qb = 0, Rb = 0, Sb = 0, Tb = 0, Ub = 0, Vb = 0, Wb = 0, Xb = 0, Yb = 0, Zb = 0, _b = 0, $b = 0, ac = 0, bc = 0, cc = 0, dc = 0, ec = 0, fc = 0, gc = 0, hc = 0, ic = 0, jc = 0, kc = 0, lc = 0, mc = 0, nc = 0, oc = 0, pc = 0, qc = 0, rc = 0, sc = 0, tc = 0, uc = 0, vc = 0, wc = 0, xc = 0, yc = 0, zc = 0, Ac = 0, Bc = 0, Cc = 0, Dc = 0, Ec = 0, Fc = 0, Gc = 0, Hc = 0, Ic = 0, Jc = 0, Kc = 0, Lc = 0, Mc = 0, Nc = 0, Oc = 0, Pc = 0, Qc = 0, Rc = 0, Sc = 0, Tc = 0, Uc = 0, Vc = 0, Wc = 0, Xc = 0, Yc = 0, Zc = 0, _c = 0, $c = 0, ad = 0, bd = 0, cd = 0, dd = 0, ed = 0, fd = 0, gd = 0, hd = 0, id = 0, jd = 0, kd = 0, ld = 0, md = 0, nd = 0, od = 0, pd = 0, qd = 0, rd = 0, sd = 0, td = 0, ud = 0, vd = 0, wd = 0, xd = 0, yd = 0, zd = 0, Ad = 0, Bd = 0, Cd = 0, Dd = 0, Ed = 0, Fd = 0, Gd = 0, Hd = 0, Id = 0, Jd = 0, Kd = 0, Ld = 0, Md = 0, Nd = 0, Od = 0, Pd = 0, Qd = 0, Rd = 0, Sd = 0, Td = 0, Ud = 0, Vd = 0, Wd = 0, Xd = 0, Yd = 0, Zd = 0, _d = 0, $d = 0, ae = 0, be = 0, ce = 0, de = 0, ee = 0, fe = 0, ge = 0, he = 0, ie = 0, je = 0, ke = 0, le = 0, me = 0, ne = 0, oe = 0, pe = 0, qe = 0, re = 0, se = 0, te = 0, ue = 0, ve = 0, we = 0, xe = 0, ye = 0, ze = 0, Ae = 0, Be = 0, Ce = 0, De = 0, Ee = 0, Fe = 0, Ge = 0, He = 0, Ie = 0, Je = 0, Ke = 0, Le = 0, Me = 0, Ne = 0, Oe = 0, Pe = 0, Qe = 0, Re = 0, Se = 0, Te = 0, Ue = 0, Ve = 0, We = 0, Xe = 0, Ye = 0, Ze = 0, _e = 0, $e = 0, af = 0, bf = 0, cf = 0, df = 0, ef = 0, ff = 0, gf = 0, hf = 0, jf = 0, kf = 0, lf = 0, mf = 0, nf = 0, of = 0, pf = 0, qf = 0, rf = 0, sf = 0, tf = 0, uf = 0, vf = 0, wf = 0, xf = 0, yf = 0, zf = 0, Af = 0, Bf = 0, Cf = 0, Df = 0, Ef = 0, Ff = 0, Gf = 0, Hf = 0, If = 0, Jf = 0, Kf = 0, Lf = 0, Mf = 0, Nf = 0, Of = 0, Pf = 0, Qf = 0, Rf = 0, Sf = 0, Tf = 0, Uf = 0, Vf = 0, Wf = 0, Xf = 0, Yf = 0, Zf = 0, _f = 0, $f = 0, ag = 0, bg = 0, cg = 0, dg = 0, eg = 0, fg = 0, gg = 0, hg = 0, ig = 0, jg = 0, kg = 0, lg = 0, mg = 0, ng = 0, og = 0, pg = 0, qg = 0, rg = 0, sg = 0, tg = 0, ug = 0, vg = 0, wg = 0, xg = 0, yg = 0, zg = 0, Ag = 0, Bg = 0, Cg = 0, Dg = 0, Eg = 0, Fg = 0, Gg = 0, Hg = 0, Ig = 0, Jg = 0, Kg = 0, Lg = 0, Mg = 0, Ng = 0, Og = 0, Pg = 0, Qg = 0, Rg = 0, Sg = 0, Tg = 0, Ug = 0, Vg = 0, Wg = 0, Xg = 0, Yg = 0, Zg = 0, _g = 0, $g = 0, ah = 0, bh = 0, ch = 0, dh = 0, eh = 0, fh = 0, gh = 0, hh = 0, ih = 0, jh = 0, kh = 0, lh = 0, mh = 0, nh = 0, oh = 0, ph = 0, qh = 0, rh = 0, sh = 0, th = 0, uh = 0, vh = 0, wh = 0, xh = 0, yh = 0, zh = 0, Ah = 0, Bh = 0, Ch = 0, Dh = 0, Eh = 0, Fh = 0, Gh = 0, Hh = 0, Ih = 0, Jh = 0, Kh = 0, Lh = 0, Mh = 0, Nh = 0, Oh = 0, Ph = 0, Qh = 0, Rh = 0, Sh = 0, Th = 0, Uh = 0, Vh = 0, Wh = 0, Xh = 0, Yh = 0, Zh = 0, _h = 0, $h = 0, ai = 0, bi = 0, ci = 0, di = 0, ei = 0, fi = 0, gi = 0, hi = 0, ii = 0, ji = 0, ki = 0, li = 0, mi = 0, ni = 0, oi = 0, pi = 0, qi = 0, ri = 0, si = 0, ti = 0, ui = 0, vi = 0, wi = 0, xi = 0, yi = 0, zi = 0, Ai = 0, Bi = 0, Ci = 0, Di = 0, Ei = 0, Fi = 0, Gi = 0, Hi = 0, Ii = 0, Ji = 0, Ki = 0, Li = 0, Mi = 0, Ni = 0, Oi = 0, Pi = 0, Qi = 0, Ri = 0, Si = 0, Ti = 0, Ui = 0, Vi = 0, Wi = 0, Xi = 0, Yi = 0, Zi = 0, _i = 0, $i = 0, aj = 0, bj = 0, cj = 0, dj = 0, ej = 0, fj = 0, gj = 0, hj = 0, ij = 0, jj = 0, kj = 0, lj = 0, mj = 0, nj = 0, oj = 0, pj = 0, qj = 0, rj = 0, sj = 0, tj = 0, uj = 0, vj = 0, wj = 0, xj = 0, yj = 0, zj = 0, Aj = 0, Bj = 0, Cj = 0, Dj = 0, Ej = 0; i = l; l = (l + 2144) | 0; j = (i + 2136) | 0; k = (i + 2132) | 0; m = (i + 2128) | 0; n = (i + 2124) | 0; o = (i + 2120) | 0; p = (i + 2116) | 0; q = (i + 2112) | 0; r = (i + 2108) | 0; s = (i + 2104) | 0; t = (i + 2100) | 0; u = (i + 2096) | 0; v = (i + 2092) | 0; w = (i + 2088) | 0; x = (i + 2084) | 0; y = (i + 2080) | 0; z = (i + 2076) | 0; A = (i + 2072) | 0; B = (i + 2068) | 0; C = (i + 2064) | 0; D = (i + 2060) | 0; E = (i + 2056) | 0; F = (i + 2052) | 0; G = (i + 2048) | 0; H = (i + 2044) | 0; I = (i + 2040) | 0; J = (i + 2036) | 0; K = (i + 2032) | 0; L = (i + 2028) | 0; M = (i + 2024) | 0; N = (i + 2020) | 0; O = (i + 2016) | 0; P = (i + 2012) | 0; Q = (i + 2008) | 0; R = (i + 2004) | 0; S = (i + 2e3) | 0; T = (i + 1996) | 0; U = (i + 1992) | 0; V = (i + 1988) | 0; W = (i + 1984) | 0; X = (i + 1980) | 0; Y = (i + 1976) | 0; Z = (i + 1972) | 0; _ = (i + 1968) | 0; $ = (i + 1964) | 0; aa = (i + 1960) | 0; ba = (i + 1956) | 0; ca = (i + 1952) | 0; da = (i + 1948) | 0; ea = (i + 1944) | 0; fa = (i + 1940) | 0; ga = (i + 1936) | 0; ha = (i + 1932) | 0; ia = (i + 1928) | 0; ja = (i + 1924) | 0; ka = (i + 1920) | 0; la = (i + 1916) | 0; ma = (i + 1912) | 0; na = (i + 1908) | 0; oa = (i + 1904) | 0; pa = (i + 1900) | 0; qa = (i + 1896) | 0; ra = (i + 1892) | 0; sa = (i + 1888) | 0; ta = (i + 1884) | 0; ua = (i + 1880) | 0; va = (i + 1876) | 0; wa = (i + 1872) | 0; xa = (i + 1868) | 0; ya = (i + 1864) | 0; za = (i + 1860) | 0; Aa = (i + 1856) | 0; Ba = (i + 1852) | 0; Ca = (i + 1848) | 0; Da = (i + 1844) | 0; Ea = (i + 1840) | 0; Fa = (i + 1836) | 0; Ga = (i + 1832) | 0; Ha = (i + 1828) | 0; Ia = (i + 1824) | 0; Ja = (i + 1820) | 0; Ka = (i + 1816) | 0; La = (i + 1812) | 0; Ma = (i + 1808) | 0; Na = (i + 1804) | 0; Oa = (i + 1800) | 0; Pa = (i + 1796) | 0; Qa = (i + 1792) | 0; Ra = (i + 1788) | 0; Sa = (i + 1784) | 0; Ta = (i + 1780) | 0; Ua = (i + 1776) | 0; Va = (i + 1772) | 0; Wa = (i + 1768) | 0; Xa = (i + 1764) | 0; Ya = (i + 1760) | 0; Za = (i + 1756) | 0; _a = (i + 1752) | 0; $a = (i + 1748) | 0; ab = (i + 1744) | 0; bb = (i + 1740) | 0; cb = (i + 1736) | 0; db = (i + 1732) | 0; eb = (i + 1728) | 0; fb = (i + 1724) | 0; gb = (i + 1720) | 0; hb = (i + 1716) | 0; ib = (i + 1712) | 0; jb = (i + 1708) | 0; kb = (i + 1704) | 0; lb = (i + 1700) | 0; mb = (i + 1696) | 0; nb = (i + 1692) | 0; ob = (i + 1688) | 0; pb = (i + 1684) | 0; qb = (i + 1680) | 0; rb = (i + 1676) | 0; sb = (i + 1672) | 0; tb = (i + 1668) | 0; ub = (i + 1664) | 0; vb = (i + 1660) | 0; wb = (i + 1656) | 0; xb = (i + 1652) | 0; yb = (i + 1648) | 0; zb = (i + 1644) | 0; Ab = (i + 1640) | 0; Bb = (i + 1636) | 0; Cb = (i + 1632) | 0; Db = (i + 1628) | 0; Eb = (i + 1624) | 0; Fb = (i + 1620) | 0; Gb = (i + 1616) | 0; Hb = (i + 1612) | 0; Ib = (i + 1608) | 0; Jb = (i + 1604) | 0; Kb = (i + 1600) | 0; Lb = (i + 1596) | 0; Mb = (i + 1592) | 0; Nb = (i + 1588) | 0; Ob = (i + 1584) | 0; Pb = (i + 1580) | 0; Qb = (i + 1576) | 0; Rb = (i + 1572) | 0; Sb = (i + 1568) | 0; Tb = (i + 1564) | 0; Ub = (i + 1560) | 0; Vb = (i + 1556) | 0; Wb = (i + 1552) | 0; Xb = (i + 1548) | 0; Yb = (i + 1544) | 0; Zb = (i + 1540) | 0; _b = (i + 1536) | 0; $b = (i + 1532) | 0; ac = (i + 1528) | 0; bc = (i + 1524) | 0; cc = (i + 1520) | 0; dc = (i + 1516) | 0; ec = (i + 1512) | 0; fc = (i + 1508) | 0; gc = (i + 1504) | 0; hc = (i + 1500) | 0; ic = (i + 1496) | 0; jc = (i + 1492) | 0; kc = (i + 1488) | 0; lc = (i + 1484) | 0; mc = (i + 1480) | 0; nc = (i + 1476) | 0; oc = (i + 1472) | 0; pc = (i + 1468) | 0; qc = (i + 1464) | 0; rc = (i + 1460) | 0; sc = (i + 1456) | 0; tc = (i + 1452) | 0; uc = (i + 1448) | 0; vc = (i + 1444) | 0; wc = (i + 1440) | 0; xc = (i + 1436) | 0; yc = (i + 1432) | 0; zc = (i + 1428) | 0; Ac = (i + 1424) | 0; Bc = (i + 1420) | 0; Cc = (i + 1416) | 0; Dc = (i + 1412) | 0; Ec = (i + 1408) | 0; Fc = (i + 1404) | 0; Gc = (i + 1400) | 0; Hc = (i + 1396) | 0; Ic = (i + 1392) | 0; Jc = (i + 1388) | 0; Kc = (i + 1384) | 0; Lc = (i + 1380) | 0; Mc = (i + 1376) | 0; Nc = (i + 1372) | 0; Oc = (i + 1368) | 0; Pc = (i + 1364) | 0; Qc = (i + 1360) | 0; Rc = (i + 1356) | 0; Sc = (i + 1352) | 0; Tc = (i + 1348) | 0; Uc = (i + 1344) | 0; Vc = (i + 1340) | 0; Wc = (i + 1336) | 0; Xc = (i + 1332) | 0; Yc = (i + 1328) | 0; Zc = (i + 1324) | 0; _c = (i + 1320) | 0; $c = (i + 1316) | 0; ad = (i + 1312) | 0; bd = (i + 1308) | 0; cd = (i + 1304) | 0; dd = (i + 1300) | 0; ed = (i + 1296) | 0; fd = (i + 1292) | 0; gd = (i + 1288) | 0; hd = (i + 1284) | 0; id = (i + 1280) | 0; jd = (i + 1276) | 0; kd = (i + 1272) | 0; ld = (i + 1268) | 0; md = (i + 1264) | 0; nd = (i + 1260) | 0; od = (i + 1256) | 0; pd = (i + 1252) | 0; qd = (i + 1248) | 0; rd = (i + 1244) | 0; sd = (i + 1240) | 0; td = (i + 1236) | 0; ud = (i + 1232) | 0; vd = (i + 1228) | 0; wd = (i + 1224) | 0; xd = (i + 1220) | 0; yd = (i + 1216) | 0; zd = (i + 1212) | 0; Ad = (i + 1208) | 0; Bd = (i + 1204) | 0; Cd = (i + 1200) | 0; Dd = (i + 1196) | 0; Ed = (i + 1192) | 0; Fd = (i + 1188) | 0; Gd = (i + 1184) | 0; Hd = (i + 1180) | 0; Id = (i + 1176) | 0; Jd = (i + 1172) | 0; Kd = (i + 1168) | 0; Ld = (i + 1164) | 0; Md = (i + 1160) | 0; Nd = (i + 1156) | 0; Od = (i + 1152) | 0; Pd = (i + 1148) | 0; Qd = (i + 1144) | 0; Rd = (i + 1140) | 0; Sd = (i + 1136) | 0; Td = (i + 1132) | 0; Ud = (i + 1128) | 0; Vd = (i + 1124) | 0; Wd = (i + 1120) | 0; Xd = (i + 1116) | 0; Yd = (i + 1112) | 0; Zd = (i + 1108) | 0; _d = (i + 1104) | 0; $d = (i + 1100) | 0; ae = (i + 1096) | 0; be = (i + 1092) | 0; ce = (i + 1088) | 0; de = (i + 1084) | 0; ee = (i + 1080) | 0; fe = (i + 1076) | 0; ge = (i + 1072) | 0; he = (i + 1068) | 0; ie = (i + 1064) | 0; je = (i + 1060) | 0; ke = (i + 1056) | 0; le = (i + 1052) | 0; me = (i + 1048) | 0; ne = (i + 1044) | 0; oe = (i + 1040) | 0; pe = (i + 1036) | 0; qe = (i + 1032) | 0; re = (i + 1028) | 0; se = (i + 1024) | 0; te = (i + 1020) | 0; ue = (i + 1016) | 0; ve = (i + 1012) | 0; we = (i + 1008) | 0; xe = (i + 1004) | 0; ye = (i + 1e3) | 0; ze = (i + 996) | 0; Ae = (i + 992) | 0; Be = (i + 988) | 0; Ce = (i + 984) | 0; De = (i + 980) | 0; Ee = (i + 976) | 0; Fe = (i + 972) | 0; Ge = (i + 968) | 0; He = (i + 964) | 0; Ie = (i + 960) | 0; Je = (i + 956) | 0; Ke = (i + 952) | 0; Le = (i + 948) | 0; Me = (i + 944) | 0; Ne = (i + 940) | 0; Oe = (i + 936) | 0; Pe = (i + 932) | 0; Qe = (i + 928) | 0; Re = (i + 924) | 0; Se = (i + 920) | 0; Te = (i + 916) | 0; Ue = (i + 912) | 0; Ve = (i + 908) | 0; We = (i + 904) | 0; Xe = (i + 900) | 0; Ye = (i + 896) | 0; Ze = (i + 892) | 0; _e = (i + 888) | 0; $e = (i + 884) | 0; af = (i + 880) | 0; bf = (i + 876) | 0; cf = (i + 872) | 0; df = (i + 868) | 0; ef = (i + 864) | 0; ff = (i + 860) | 0; gf = (i + 856) | 0; hf = (i + 852) | 0; jf = (i + 848) | 0; kf = (i + 844) | 0; lf = (i + 840) | 0; mf = (i + 836) | 0; nf = (i + 832) | 0; of = (i + 828) | 0; pf = (i + 824) | 0; qf = (i + 820) | 0; rf = (i + 816) | 0; sf = (i + 812) | 0; tf = (i + 808) | 0; uf = (i + 804) | 0; vf = (i + 800) | 0; wf = (i + 796) | 0; xf = (i + 792) | 0; yf = (i + 788) | 0; zf = (i + 784) | 0; Af = (i + 780) | 0; Bf = (i + 776) | 0; Cf = (i + 772) | 0; Df = (i + 768) | 0; Ef = (i + 764) | 0; Ff = (i + 760) | 0; Gf = (i + 756) | 0; Hf = (i + 752) | 0; If = (i + 748) | 0; Jf = (i + 744) | 0; Kf = (i + 740) | 0; Lf = (i + 736) | 0; Mf = (i + 732) | 0; Nf = (i + 728) | 0; Of = (i + 724) | 0; Pf = (i + 720) | 0; Qf = (i + 716) | 0; Rf = (i + 712) | 0; Sf = (i + 708) | 0; Tf = (i + 704) | 0; Uf = (i + 700) | 0; Vf = (i + 696) | 0; Wf = (i + 692) | 0; Xf = (i + 688) | 0; Yf = (i + 684) | 0; Zf = (i + 680) | 0; _f = (i + 676) | 0; $f = (i + 672) | 0; ag = (i + 668) | 0; bg = (i + 664) | 0; cg = (i + 660) | 0; dg = (i + 656) | 0; eg = (i + 652) | 0; fg = (i + 648) | 0; gg = (i + 644) | 0; hg = (i + 640) | 0; ig = (i + 636) | 0; jg = (i + 632) | 0; kg = (i + 628) | 0; lg = (i + 624) | 0; mg = (i + 620) | 0; ng = (i + 616) | 0; og = (i + 612) | 0; pg = (i + 608) | 0; qg = (i + 604) | 0; rg = (i + 600) | 0; sg = (i + 596) | 0; tg = (i + 592) | 0; ug = (i + 588) | 0; vg = (i + 584) | 0; wg = (i + 580) | 0; xg = (i + 576) | 0; yg = (i + 572) | 0; zg = (i + 568) | 0; Ag = (i + 564) | 0; Bg = (i + 560) | 0; Cg = (i + 556) | 0; Dg = (i + 552) | 0; Eg = (i + 548) | 0; Fg = (i + 544) | 0; Gg = (i + 540) | 0; Hg = (i + 536) | 0; Ig = (i + 532) | 0; Jg = (i + 528) | 0; Kg = (i + 524) | 0; Lg = (i + 520) | 0; Mg = (i + 516) | 0; Ng = (i + 512) | 0; Og = (i + 508) | 0; Pg = (i + 504) | 0; Qg = (i + 500) | 0; Rg = (i + 496) | 0; Sg = (i + 492) | 0; Tg = (i + 488) | 0; Ug = (i + 484) | 0; Vg = (i + 480) | 0; Wg = (i + 476) | 0; Xg = (i + 472) | 0; Yg = (i + 468) | 0; Zg = (i + 464) | 0; _g = (i + 460) | 0; $g = (i + 456) | 0; ah = (i + 452) | 0; bh = (i + 448) | 0; ch = (i + 444) | 0; dh = (i + 440) | 0; eh = (i + 436) | 0; fh = (i + 432) | 0; gh = (i + 428) | 0; hh = (i + 424) | 0; ih = (i + 420) | 0; jh = (i + 416) | 0; kh = (i + 412) | 0; lh = (i + 408) | 0; mh = (i + 404) | 0; nh = (i + 400) | 0; oh = (i + 396) | 0; ph = (i + 392) | 0; qh = (i + 388) | 0; rh = (i + 384) | 0; sh = (i + 380) | 0; th = (i + 376) | 0; uh = (i + 372) | 0; vh = (i + 368) | 0; wh = (i + 364) | 0; xh = (i + 360) | 0; yh = (i + 356) | 0; zh = (i + 352) | 0; Ah = (i + 348) | 0; Bh = (i + 344) | 0; Ch = (i + 340) | 0; Dh = (i + 336) | 0; Eh = (i + 332) | 0; Fh = (i + 328) | 0; Gh = (i + 324) | 0; Hh = (i + 320) | 0; Ih = (i + 316) | 0; Jh = (i + 312) | 0; Kh = (i + 308) | 0; Lh = (i + 304) | 0; Mh = (i + 300) | 0; Nh = (i + 296) | 0; Oh = (i + 292) | 0; Ph = (i + 288) | 0; Qh = (i + 284) | 0; Rh = (i + 280) | 0; Sh = (i + 276) | 0; Th = (i + 272) | 0; Uh = (i + 268) | 0; Vh = (i + 264) | 0; Wh = (i + 260) | 0; Xh = (i + 256) | 0; Yh = (i + 252) | 0; Zh = (i + 248) | 0; _h = (i + 244) | 0; $h = (i + 240) | 0; ai = (i + 236) | 0; bi = (i + 232) | 0; ci = (i + 228) | 0; di = (i + 216) | 0; ei = (i + 212) | 0; fi = (i + 208) | 0; gi = (i + 204) | 0; hi = (i + 200) | 0; ii = (i + 196) | 0; ji = (i + 192) | 0; ki = (i + 188) | 0; li = (i + 184) | 0; mi = (i + 180) | 0; ni = (i + 176) | 0; oi = (i + 172) | 0; pi = (i + 168) | 0; qi = (i + 164) | 0; ri = (i + 160) | 0; si = (i + 148) | 0; ti = (i + 144) | 0; ui = (i + 140) | 0; vi = (i + 136) | 0; wi = (i + 132) | 0; xi = (i + 128) | 0; yi = (i + 124) | 0; zi = (i + 120) | 0; Ai = (i + 116) | 0; Bi = (i + 112) | 0; Ci = (i + 108) | 0; Di = (i + 104) | 0; Ei = (i + 100) | 0; Fi = (i + 88) | 0; Gi = (i + 84) | 0; Hi = (i + 80) | 0; Ii = (i + 76) | 0; Ji = (i + 72) | 0; Ki = (i + 68) | 0; Li = (i + 64) | 0; Mi = (i + 60) | 0; Ni = (i + 56) | 0; Oi = (i + 52) | 0; Pi = (i + 48) | 0; Qi = (i + 44) | 0; Ri = (i + 40) | 0; Si = (i + 36) | 0; Ti = (i + 32) | 0; Ui = (i + 28) | 0; Vi = (i + 24) | 0; Wi = (i + 20) | 0; Xi = (i + 16) | 0; Yi = (i + 12) | 0; Zi = (i + 8) | 0; _i = (i + 4) | 0; $i = i; c[Wi >> 2] = a; c[Xi >> 2] = b; c[Yi >> 2] = e; c[Zi >> 2] = f; c[_i >> 2] = g; c[$i >> 2] = h; h = c[Xi >> 2] | 0; Xi = c[Yi >> 2] | 0; Yi = c[Zi >> 2] | 0; Zi = c[_i >> 2] | 0; _i = c[$i >> 2] | 0; c[Lh >> 2] = c[Wi >> 2]; c[Mh >> 2] = h; c[Nh >> 2] = Xi; c[Oh >> 2] = Yi; c[Ph >> 2] = Zi; c[Qh >> 2] = _i; c[Rh >> 2] = 2; c[Sh >> 2] = 0; c[Th >> 2] = (c[Lh >> 2] | 0) + 48; c[Uh >> 2] = c[Ph >> 2]; c[Vh >> 2] = c[Uh >> 2]; c[Wh >> 2] = c[Uh >> 2]; c[Xh >> 2] = (c[Uh >> 2] | 0) + (c[Qh >> 2] | 0); c[Yh >> 2] = (c[Xh >> 2] | 0) + -8; c[Zh >> 2] = c[((c[Lh >> 2] | 0) + 4) >> 2]; c[_h >> 2] = (c[Zh >> 2] | 0) + (c[((c[Lh >> 2] | 0) + 12) >> 2] | 0); if ((c[((c[Oh >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095) aj = c[((c[Oh >> 2] | 0) + 20) >> 2] | 0; else aj = 4095; c[$h >> 2] = aj; c[ai >> 2] = (c[((c[Oh >> 2] | 0) + 16) >> 2] | 0) == 3 ? 3 : 4; c[bi >> 2] = c[((c[Th >> 2] | 0) + 20) >> 2]; c[ci >> 2] = c[((c[Th >> 2] | 0) + 16) >> 2]; c[((c[Lh >> 2] | 0) + 28) >> 2] = c[((c[Lh >> 2] | 0) + 24) >> 2]; lm(c[Th >> 2] | 0, c[Ph >> 2] | 0, c[Qh >> 2] | 0); c[Vh >> 2] = (c[Vh >> 2] | 0) + (((c[Vh >> 2] | 0) == (c[_h >> 2] | 0)) & 1); c[di >> 2] = 0; c[(di + 4) >> 2] = 0; c[(di + 8) >> 2] = 0; while (1) { if ((c[Vh >> 2] | 0) >>> 0 >= (c[Yh >> 2] | 0) >>> 0) break; c[fi >> 2] = 0; c[ii >> 2] = (c[Vh >> 2] | 0) - (c[Wh >> 2] | 0); c[ji >> 2] = (((c[ii >> 2] | 0) != 0) ^ 1) & 1; _h = c[Oh >> 2] | 0; Qh = c[Vh >> 2] | 0; Ph = c[Xh >> 2] | 0; aj = c[Sh >> 2] | 0; Zh = c[Nh >> 2] | 0; Uh = c[ji >> 2] | 0; _i = c[ci >> 2] | 0; Zi = c[ai >> 2] | 0; c[Bh >> 2] = c[Lh >> 2]; c[Ch >> 2] = _h; c[Dh >> 2] = Qh; c[Eh >> 2] = Ph; c[Fh >> 2] = aj; c[Gh >> 2] = Zh; c[Hh >> 2] = Uh; c[Ih >> 2] = _i; c[Jh >> 2] = Zi; c[Kh >> 2] = c[((c[Ch >> 2] | 0) + 16) >> 2]; a: do { if ( (c[Dh >> 2] | 0) >>> 0 < (((c[((c[Bh >> 2] | 0) + 4) >> 2] | 0) + (c[((c[Bh >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) c[Ah >> 2] = 0; else { Zi = c[Ch >> 2] | 0; _i = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; Zh = c[Kh >> 2] | 0; aj = c[Fh >> 2] | 0; c[rh >> 2] = c[Bh >> 2]; c[sh >> 2] = Zi; c[th >> 2] = _i; c[uh >> 2] = Uh; c[vh >> 2] = Zh; c[wh >> 2] = aj; c[xh >> 2] = c[((c[rh >> 2] | 0) + 4) >> 2]; c[yh >> 2] = (c[th >> 2] | 0) - (c[xh >> 2] | 0); c[zh >> 2] = c[((c[rh >> 2] | 0) + 24) >> 2]; while (1) { if ((c[zh >> 2] | 0) >>> 0 >= (c[yh >> 2] | 0) >>> 0) break; aj = Rj( c[rh >> 2] | 0, c[sh >> 2] | 0, ((c[xh >> 2] | 0) + (c[zh >> 2] | 0)) | 0, c[uh >> 2] | 0, c[vh >> 2] | 0, c[wh >> 2] | 0 ) | 0; c[zh >> 2] = (c[zh >> 2] | 0) + aj; } c[((c[rh >> 2] | 0) + 24) >> 2] = c[yh >> 2]; switch (c[Kh >> 2] | 0) { case 3: { aj = c[Ch >> 2] | 0; Zh = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; _i = c[Fh >> 2] | 0; Zi = c[Gh >> 2] | 0; Ph = c[Hh >> 2] | 0; Qh = c[Ih >> 2] | 0; _h = c[Jh >> 2] | 0; c[wg >> 2] = c[Bh >> 2]; c[xg >> 2] = aj; c[yg >> 2] = Zh; c[zg >> 2] = Uh; c[Ag >> 2] = _i; c[Bg >> 2] = Zi; c[Cg >> 2] = Ph; c[Dg >> 2] = Qh; c[Eg >> 2] = _h; c[Fg >> 2] = 3; if ( (c[((c[xg >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) bj = c[((c[xg >> 2] | 0) + 20) >> 2] | 0; else bj = 4095; c[Gg >> 2] = bj; c[Hg >> 2] = c[((c[wg >> 2] | 0) + 4) >> 2]; c[Ig >> 2] = (c[yg >> 2] | 0) - (c[Hg >> 2] | 0); c[Jg >> 2] = c[((c[xg >> 2] | 0) + 8) >> 2]; c[Kg >> 2] = (c[Fg >> 2] | 0) == 3 ? 3 : 4; c[Lg >> 2] = c[((c[wg >> 2] | 0) + 36) >> 2]; c[Mg >> 2] = Sj( c[yg >> 2] | 0, c[Jg >> 2] | 0, c[Fg >> 2] | 0 ) | 0; c[Ng >> 2] = c[((c[Lg >> 2] | 0) + (c[Mg >> 2] << 2)) >> 2]; c[Og >> 2] = c[((c[wg >> 2] | 0) + 44) >> 2]; c[Pg >> 2] = (c[((c[xg >> 2] | 0) + 4) >> 2] | 0) - 1; c[Qg >> 2] = (1 << c[Pg >> 2]) - 1; c[Rg >> 2] = 0; c[Sg >> 2] = 0; c[Tg >> 2] = c[((c[wg >> 2] | 0) + 8) >> 2]; c[Ug >> 2] = c[((c[wg >> 2] | 0) + 12) >> 2]; c[Vg >> 2] = (c[Tg >> 2] | 0) + (c[Ug >> 2] | 0); c[Wg >> 2] = (c[Hg >> 2] | 0) + (c[Ug >> 2] | 0); if ( (c[Qg >> 2] | 0) >>> 0 >= (c[Ig >> 2] | 0) >>> 0 ) cj = 0; else cj = ((c[Ig >> 2] | 0) - (c[Qg >> 2] | 0)) | 0; c[Xg >> 2] = cj; c[Yg >> 2] = c[((c[wg >> 2] | 0) + 16) >> 2]; c[Zg >> 2] = (c[Og >> 2] | 0) + (((c[Ig >> 2] & c[Qg >> 2]) << 1) << 2); c[_g >> 2] = (c[Og >> 2] | 0) + (((c[Ig >> 2] & c[Qg >> 2]) << 1) << 2) + 4; c[$g >> 2] = (c[Ig >> 2] | 0) + 8 + 1; c[bh >> 2] = 0; c[ch >> 2] = 1 << c[((c[xg >> 2] | 0) + 12) >> 2]; c[dh >> 2] = (c[Eg >> 2] | 0) - 1; c[eh >> 2] = 3 + (c[Cg >> 2] | 0); c[fh >> 2] = c[Cg >> 2]; while (1) { if ( (c[fh >> 2] | 0) >>> 0 >= (c[eh >> 2] | 0) >>> 0 ) { dj = 31; break; } _h = c[Bg >> 2] | 0; if ((c[fh >> 2] | 0) == 3) ej = ((c[_h >> 2] | 0) - 1) | 0; else ej = c[(_h + (c[fh >> 2] << 2)) >> 2] | 0; c[gh >> 2] = ej; c[hh >> 2] = (c[Ig >> 2] | 0) - (c[gh >> 2] | 0); c[ih >> 2] = 0; if ( (((c[gh >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ig >> 2] | 0) - (c[Ug >> 2] | 0)) | 0) >>> 0 ) { _h = mm(c[yg >> 2] | 0, c[Kg >> 2] | 0) | 0; if ( (_h | 0) == (mm( ((c[yg >> 2] | 0) + (0 - (c[gh >> 2] | 0))) | 0, c[Kg >> 2] | 0 ) | 0) ) { _h = Tj( ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0) + (0 - (c[gh >> 2] | 0))) | 0, c[zg >> 2] | 0 ) | 0; c[ih >> 2] = _h + (c[Kg >> 2] | 0); } } else { c[jh >> 2] = (c[Tg >> 2] | 0) + (c[hh >> 2] | 0); if ( ( c[Ag >> 2] | 0 ? ((((c[Ug >> 2] | 0) - 1 - (c[hh >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[gh >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ig >> 2] | 0) - (c[Yg >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((_h = mm(c[yg >> 2] | 0, c[Kg >> 2] | 0) | 0), (_h | 0) == (mm(c[jh >> 2] | 0, c[Kg >> 2] | 0) | 0)) : 0 ) { _h = Uj( ((c[yg >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, ((c[jh >> 2] | 0) + (c[Kg >> 2] | 0)) | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; c[ih >> 2] = _h + (c[Kg >> 2] | 0); } } if ( (c[ih >> 2] | 0) >>> 0 > (c[dh >> 2] | 0) >>> 0 ? ((c[dh >> 2] = c[ih >> 2]), (c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3)) >> 2 ] = (c[fh >> 2] | 0) - (c[Cg >> 2] | 0)), (c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3) + 4) >> 2 ] = c[ih >> 2]), (c[bh >> 2] = (c[bh >> 2] | 0) + 1), ((c[ih >> 2] | 0) >>> 0 > (c[Gg >> 2] | 0) >>> 0 ? 1 : (((c[yg >> 2] | 0) + (c[ih >> 2] | 0)) | 0) == (c[zg >> 2] | 0)) | 0) : 0 ) { dj = 29; break; } c[fh >> 2] = (c[fh >> 2] | 0) + 1; } do { if ((dj | 0) == 29) { dj = 0; c[vg >> 2] = c[bh >> 2]; } else if ((dj | 0) == 31) { dj = 0; if ( ( (c[Fg >> 2] | 0) == 3 ? (c[dh >> 2] | 0) >>> 0 < (c[Fg >> 2] | 0) >>> 0 : 0 ) ? ((c[kh >> 2] = nm(c[wg >> 2] | 0, c[yg >> 2] | 0) | 0), ((c[kh >> 2] | 0) >>> 0 > (c[Yg >> 2] | 0) >>> 0 ? (((c[Ig >> 2] | 0) - (c[kh >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ag >> 2] | 0 ? (c[kh >> 2] | 0) >>> 0 < (c[Ug >> 2] | 0) >>> 0 : 0 ) { c[nh >> 2] = (c[Tg >> 2] | 0) + (c[kh >> 2] | 0); c[lh >> 2] = Uj( c[yg >> 2] | 0, c[nh >> 2] | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; } else { c[mh >> 2] = (c[Hg >> 2] | 0) + (c[kh >> 2] | 0); c[lh >> 2] = Tj( c[yg >> 2] | 0, c[mh >> 2] | 0, c[zg >> 2] | 0 ) | 0; } if ( (c[lh >> 2] | 0) >>> 0 >= (c[Fg >> 2] | 0) >>> 0 ? ((c[dh >> 2] = c[lh >> 2]), (c[c[Dg >> 2] >> 2] = (c[Ig >> 2] | 0) - (c[kh >> 2] | 0) + 2), (c[((c[Dg >> 2] | 0) + 4) >> 2] = c[lh >> 2]), (c[bh >> 2] = 1), ((c[lh >> 2] | 0) >>> 0 > (c[Gg >> 2] | 0) >>> 0 ? 1 : (((c[yg >> 2] | 0) + (c[lh >> 2] | 0)) | 0) == (c[zg >> 2] | 0)) | 0) : 0 ) { c[((c[wg >> 2] | 0) + 24) >> 2] = (c[Ig >> 2] | 0) + 1; c[vg >> 2] = 1; break; } } c[((c[Lg >> 2] | 0) + (c[Mg >> 2] << 2)) >> 2] = c[Ig >> 2]; while (1) { _h = c[ch >> 2] | 0; c[ch >> 2] = _h + -1; if (!_h) break; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Yg >> 2] | 0) >>> 0 ) break; c[oh >> 2] = (c[Og >> 2] | 0) + (((c[Ng >> 2] & c[Qg >> 2]) << 1) << 2); c[ph >> 2] = (c[Rg >> 2] | 0) >>> 0 < (c[Sg >> 2] | 0) >>> 0 ? c[Rg >> 2] | 0 : c[Sg >> 2] | 0; if ( c[Ag >> 2] | 0 ? (((c[Ng >> 2] | 0) + (c[ph >> 2] | 0)) | 0) >>> 0 < (c[Ug >> 2] | 0) >>> 0 : 0 ) { c[qh >> 2] = (c[Tg >> 2] | 0) + (c[Ng >> 2] | 0); _h = Uj( ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0, ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) | 0, c[zg >> 2] | 0, c[Vg >> 2] | 0, c[Wg >> 2] | 0 ) | 0; c[ph >> 2] = (c[ph >> 2] | 0) + _h; if ( (((c[Ng >> 2] | 0) + (c[ph >> 2] | 0)) | 0) >>> 0 >= (c[Ug >> 2] | 0) >>> 0 ) c[qh >> 2] = (c[Hg >> 2] | 0) + (c[Ng >> 2] | 0); } else { c[qh >> 2] = (c[Hg >> 2] | 0) + (c[Ng >> 2] | 0); _h = Tj( ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0, ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) | 0, c[zg >> 2] | 0 ) | 0; c[ph >> 2] = (c[ph >> 2] | 0) + _h; } if ( (c[ph >> 2] | 0) >>> 0 > (c[dh >> 2] | 0) >>> 0 ) { if ( (c[ph >> 2] | 0) >>> 0 > (((c[$g >> 2] | 0) - (c[Ng >> 2] | 0)) | 0) >>> 0 ) c[$g >> 2] = (c[Ng >> 2] | 0) + (c[ph >> 2] | 0); c[dh >> 2] = c[ph >> 2]; c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3)) >> 2 ] = (c[Ig >> 2] | 0) - (c[Ng >> 2] | 0) + 2; c[ ((c[Dg >> 2] | 0) + (c[bh >> 2] << 3) + 4) >> 2 ] = c[ph >> 2]; c[bh >> 2] = (c[bh >> 2] | 0) + 1; if ((c[ph >> 2] | 0) >>> 0 > 4096) break; if ( (((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) | 0) == (c[zg >> 2] | 0) ) break; } _h = c[Ng >> 2] | 0; if ( (d[ ((c[qh >> 2] | 0) + (c[ph >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[yg >> 2] | 0) + (c[ph >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Zg >> 2] >> 2] = _h; c[Rg >> 2] = c[ph >> 2]; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Xg >> 2] | 0) >>> 0 ) { dj = 56; break; } c[Zg >> 2] = (c[oh >> 2] | 0) + 4; c[Ng >> 2] = c[((c[oh >> 2] | 0) + 4) >> 2]; } else { c[c[_g >> 2] >> 2] = _h; c[Sg >> 2] = c[ph >> 2]; if ( (c[Ng >> 2] | 0) >>> 0 <= (c[Xg >> 2] | 0) >>> 0 ) { dj = 59; break; } c[_g >> 2] = c[oh >> 2]; c[Ng >> 2] = c[c[oh >> 2] >> 2]; } } if ((dj | 0) == 56) { dj = 0; c[Zg >> 2] = ah; } else if ((dj | 0) == 59) { dj = 0; c[_g >> 2] = ah; } c[c[_g >> 2] >> 2] = 0; c[c[Zg >> 2] >> 2] = 0; c[((c[wg >> 2] | 0) + 24) >> 2] = (c[$g >> 2] | 0) - 8; c[vg >> 2] = c[bh >> 2]; } } while (0); c[Ah >> 2] = c[vg >> 2]; break a; break; } case 7: case 6: { _h = c[Ch >> 2] | 0; Qh = c[Dh >> 2] | 0; Ph = c[Eh >> 2] | 0; Zi = c[Fh >> 2] | 0; _i = c[Gh >> 2] | 0; Uh = c[Hh >> 2] | 0; Zh = c[Ih >> 2] | 0; aj = c[Jh >> 2] | 0; c[Hd >> 2] = c[Bh >> 2]; c[Id >> 2] = _h; c[Jd >> 2] = Qh; c[Kd >> 2] = Ph; c[Ld >> 2] = Zi; c[Md >> 2] = _i; c[Nd >> 2] = Uh; c[Od >> 2] = Zh; c[Pd >> 2] = aj; c[Qd >> 2] = 6; if ( (c[((c[Id >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) fj = c[((c[Id >> 2] | 0) + 20) >> 2] | 0; else fj = 4095; c[Rd >> 2] = fj; c[Sd >> 2] = c[((c[Hd >> 2] | 0) + 4) >> 2]; c[Td >> 2] = (c[Jd >> 2] | 0) - (c[Sd >> 2] | 0); c[Ud >> 2] = c[((c[Id >> 2] | 0) + 8) >> 2]; c[Vd >> 2] = (c[Qd >> 2] | 0) == 3 ? 3 : 4; c[Wd >> 2] = c[((c[Hd >> 2] | 0) + 36) >> 2]; c[Xd >> 2] = Sj( c[Jd >> 2] | 0, c[Ud >> 2] | 0, c[Qd >> 2] | 0 ) | 0; c[Yd >> 2] = c[((c[Wd >> 2] | 0) + (c[Xd >> 2] << 2)) >> 2]; c[Zd >> 2] = c[((c[Hd >> 2] | 0) + 44) >> 2]; c[_d >> 2] = (c[((c[Id >> 2] | 0) + 4) >> 2] | 0) - 1; c[$d >> 2] = (1 << c[_d >> 2]) - 1; c[ae >> 2] = 0; c[be >> 2] = 0; c[ce >> 2] = c[((c[Hd >> 2] | 0) + 8) >> 2]; c[de >> 2] = c[((c[Hd >> 2] | 0) + 12) >> 2]; c[ee >> 2] = (c[ce >> 2] | 0) + (c[de >> 2] | 0); c[fe >> 2] = (c[Sd >> 2] | 0) + (c[de >> 2] | 0); if ( (c[$d >> 2] | 0) >>> 0 >= (c[Td >> 2] | 0) >>> 0 ) gj = 0; else gj = ((c[Td >> 2] | 0) - (c[$d >> 2] | 0)) | 0; c[ge >> 2] = gj; c[he >> 2] = c[((c[Hd >> 2] | 0) + 16) >> 2]; c[ie >> 2] = (c[Zd >> 2] | 0) + (((c[Td >> 2] & c[$d >> 2]) << 1) << 2); c[je >> 2] = (c[Zd >> 2] | 0) + (((c[Td >> 2] & c[$d >> 2]) << 1) << 2) + 4; c[ke >> 2] = (c[Td >> 2] | 0) + 8 + 1; c[me >> 2] = 0; c[ne >> 2] = 1 << c[((c[Id >> 2] | 0) + 12) >> 2]; c[oe >> 2] = (c[Pd >> 2] | 0) - 1; c[pe >> 2] = 3 + (c[Nd >> 2] | 0); c[qe >> 2] = c[Nd >> 2]; while (1) { if ( (c[qe >> 2] | 0) >>> 0 >= (c[pe >> 2] | 0) >>> 0 ) { dj = 190; break; } aj = c[Md >> 2] | 0; if ((c[qe >> 2] | 0) == 3) hj = ((c[aj >> 2] | 0) - 1) | 0; else hj = c[(aj + (c[qe >> 2] << 2)) >> 2] | 0; c[re >> 2] = hj; c[se >> 2] = (c[Td >> 2] | 0) - (c[re >> 2] | 0); c[te >> 2] = 0; if ( (((c[re >> 2] | 0) - 1) | 0) >>> 0 < (((c[Td >> 2] | 0) - (c[de >> 2] | 0)) | 0) >>> 0 ) { aj = mm(c[Jd >> 2] | 0, c[Vd >> 2] | 0) | 0; if ( (aj | 0) == (mm( ((c[Jd >> 2] | 0) + (0 - (c[re >> 2] | 0))) | 0, c[Vd >> 2] | 0 ) | 0) ) { aj = Tj( ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0) + (0 - (c[re >> 2] | 0))) | 0, c[Kd >> 2] | 0 ) | 0; c[te >> 2] = aj + (c[Vd >> 2] | 0); } } else { c[ue >> 2] = (c[ce >> 2] | 0) + (c[se >> 2] | 0); if ( ( c[Ld >> 2] | 0 ? ((((c[de >> 2] | 0) - 1 - (c[se >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[re >> 2] | 0) - 1) | 0) >>> 0 < (((c[Td >> 2] | 0) - (c[he >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((aj = mm(c[Jd >> 2] | 0, c[Vd >> 2] | 0) | 0), (aj | 0) == (mm(c[ue >> 2] | 0, c[Vd >> 2] | 0) | 0)) : 0 ) { aj = Uj( ((c[Jd >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, ((c[ue >> 2] | 0) + (c[Vd >> 2] | 0)) | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; c[te >> 2] = aj + (c[Vd >> 2] | 0); } } if ( (c[te >> 2] | 0) >>> 0 > (c[oe >> 2] | 0) >>> 0 ? ((c[oe >> 2] = c[te >> 2]), (c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3)) >> 2 ] = (c[qe >> 2] | 0) - (c[Nd >> 2] | 0)), (c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3) + 4) >> 2 ] = c[te >> 2]), (c[me >> 2] = (c[me >> 2] | 0) + 1), ((c[te >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0 ? 1 : (((c[Jd >> 2] | 0) + (c[te >> 2] | 0)) | 0) == (c[Kd >> 2] | 0)) | 0) : 0 ) { dj = 188; break; } c[qe >> 2] = (c[qe >> 2] | 0) + 1; } do { if ((dj | 0) == 188) { dj = 0; c[Gd >> 2] = c[me >> 2]; } else if ((dj | 0) == 190) { dj = 0; if ( ( (c[Qd >> 2] | 0) == 3 ? (c[oe >> 2] | 0) >>> 0 < (c[Qd >> 2] | 0) >>> 0 : 0 ) ? ((c[ve >> 2] = nm(c[Hd >> 2] | 0, c[Jd >> 2] | 0) | 0), ((c[ve >> 2] | 0) >>> 0 > (c[he >> 2] | 0) >>> 0 ? (((c[Td >> 2] | 0) - (c[ve >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ld >> 2] | 0 ? (c[ve >> 2] | 0) >>> 0 < (c[de >> 2] | 0) >>> 0 : 0 ) { c[ye >> 2] = (c[ce >> 2] | 0) + (c[ve >> 2] | 0); c[we >> 2] = Uj( c[Jd >> 2] | 0, c[ye >> 2] | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; } else { c[xe >> 2] = (c[Sd >> 2] | 0) + (c[ve >> 2] | 0); c[we >> 2] = Tj( c[Jd >> 2] | 0, c[xe >> 2] | 0, c[Kd >> 2] | 0 ) | 0; } if ( (c[we >> 2] | 0) >>> 0 >= (c[Qd >> 2] | 0) >>> 0 ? ((c[oe >> 2] = c[we >> 2]), (c[c[Od >> 2] >> 2] = (c[Td >> 2] | 0) - (c[ve >> 2] | 0) + 2), (c[((c[Od >> 2] | 0) + 4) >> 2] = c[we >> 2]), (c[me >> 2] = 1), ((c[we >> 2] | 0) >>> 0 > (c[Rd >> 2] | 0) >>> 0 ? 1 : (((c[Jd >> 2] | 0) + (c[we >> 2] | 0)) | 0) == (c[Kd >> 2] | 0)) | 0) : 0 ) { c[((c[Hd >> 2] | 0) + 24) >> 2] = (c[Td >> 2] | 0) + 1; c[Gd >> 2] = 1; break; } } c[((c[Wd >> 2] | 0) + (c[Xd >> 2] << 2)) >> 2] = c[Td >> 2]; while (1) { aj = c[ne >> 2] | 0; c[ne >> 2] = aj + -1; if (!aj) break; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[he >> 2] | 0) >>> 0 ) break; c[ze >> 2] = (c[Zd >> 2] | 0) + (((c[Yd >> 2] & c[$d >> 2]) << 1) << 2); c[Ae >> 2] = (c[ae >> 2] | 0) >>> 0 < (c[be >> 2] | 0) >>> 0 ? c[ae >> 2] | 0 : c[be >> 2] | 0; if ( c[Ld >> 2] | 0 ? (((c[Yd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) >>> 0 < (c[de >> 2] | 0) >>> 0 : 0 ) { c[Be >> 2] = (c[ce >> 2] | 0) + (c[Yd >> 2] | 0); aj = Uj( ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, c[Kd >> 2] | 0, c[ee >> 2] | 0, c[fe >> 2] | 0 ) | 0; c[Ae >> 2] = (c[Ae >> 2] | 0) + aj; if ( (((c[Yd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) >>> 0 >= (c[de >> 2] | 0) >>> 0 ) c[Be >> 2] = (c[Sd >> 2] | 0) + (c[Yd >> 2] | 0); } else { c[Be >> 2] = (c[Sd >> 2] | 0) + (c[Yd >> 2] | 0); aj = Tj( ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) | 0, c[Kd >> 2] | 0 ) | 0; c[Ae >> 2] = (c[Ae >> 2] | 0) + aj; } if ( (c[Ae >> 2] | 0) >>> 0 > (c[oe >> 2] | 0) >>> 0 ) { if ( (c[Ae >> 2] | 0) >>> 0 > (((c[ke >> 2] | 0) - (c[Yd >> 2] | 0)) | 0) >>> 0 ) c[ke >> 2] = (c[Yd >> 2] | 0) + (c[Ae >> 2] | 0); c[oe >> 2] = c[Ae >> 2]; c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3)) >> 2 ] = (c[Td >> 2] | 0) - (c[Yd >> 2] | 0) + 2; c[ ((c[Od >> 2] | 0) + (c[me >> 2] << 3) + 4) >> 2 ] = c[Ae >> 2]; c[me >> 2] = (c[me >> 2] | 0) + 1; if ((c[Ae >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) | 0) == (c[Kd >> 2] | 0) ) break; } aj = c[Yd >> 2] | 0; if ( (d[ ((c[Be >> 2] | 0) + (c[Ae >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Jd >> 2] | 0) + (c[Ae >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[ie >> 2] >> 2] = aj; c[ae >> 2] = c[Ae >> 2]; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[ge >> 2] | 0) >>> 0 ) { dj = 215; break; } c[ie >> 2] = (c[ze >> 2] | 0) + 4; c[Yd >> 2] = c[((c[ze >> 2] | 0) + 4) >> 2]; } else { c[c[je >> 2] >> 2] = aj; c[be >> 2] = c[Ae >> 2]; if ( (c[Yd >> 2] | 0) >>> 0 <= (c[ge >> 2] | 0) >>> 0 ) { dj = 218; break; } c[je >> 2] = c[ze >> 2]; c[Yd >> 2] = c[c[ze >> 2] >> 2]; } } if ((dj | 0) == 215) { dj = 0; c[ie >> 2] = le; } else if ((dj | 0) == 218) { dj = 0; c[je >> 2] = le; } c[c[je >> 2] >> 2] = 0; c[c[ie >> 2] >> 2] = 0; c[((c[Hd >> 2] | 0) + 24) >> 2] = (c[ke >> 2] | 0) - 8; c[Gd >> 2] = c[me >> 2]; } } while (0); c[Ah >> 2] = c[Gd >> 2]; break a; break; } case 5: { aj = c[Ch >> 2] | 0; Zh = c[Dh >> 2] | 0; Uh = c[Eh >> 2] | 0; _i = c[Fh >> 2] | 0; Zi = c[Gh >> 2] | 0; Ph = c[Hh >> 2] | 0; Qh = c[Ih >> 2] | 0; _h = c[Jh >> 2] | 0; c[De >> 2] = c[Bh >> 2]; c[Ee >> 2] = aj; c[Fe >> 2] = Zh; c[Ge >> 2] = Uh; c[He >> 2] = _i; c[Ie >> 2] = Zi; c[Je >> 2] = Ph; c[Ke >> 2] = Qh; c[Le >> 2] = _h; c[Me >> 2] = 5; if ( (c[((c[Ee >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) ij = c[((c[Ee >> 2] | 0) + 20) >> 2] | 0; else ij = 4095; c[Ne >> 2] = ij; c[Oe >> 2] = c[((c[De >> 2] | 0) + 4) >> 2]; c[Pe >> 2] = (c[Fe >> 2] | 0) - (c[Oe >> 2] | 0); c[Qe >> 2] = c[((c[Ee >> 2] | 0) + 8) >> 2]; c[Re >> 2] = (c[Me >> 2] | 0) == 3 ? 3 : 4; c[Se >> 2] = c[((c[De >> 2] | 0) + 36) >> 2]; c[Te >> 2] = Sj( c[Fe >> 2] | 0, c[Qe >> 2] | 0, c[Me >> 2] | 0 ) | 0; c[Ue >> 2] = c[((c[Se >> 2] | 0) + (c[Te >> 2] << 2)) >> 2]; c[Ve >> 2] = c[((c[De >> 2] | 0) + 44) >> 2]; c[We >> 2] = (c[((c[Ee >> 2] | 0) + 4) >> 2] | 0) - 1; c[Xe >> 2] = (1 << c[We >> 2]) - 1; c[Ye >> 2] = 0; c[Ze >> 2] = 0; c[_e >> 2] = c[((c[De >> 2] | 0) + 8) >> 2]; c[$e >> 2] = c[((c[De >> 2] | 0) + 12) >> 2]; c[af >> 2] = (c[_e >> 2] | 0) + (c[$e >> 2] | 0); c[bf >> 2] = (c[Oe >> 2] | 0) + (c[$e >> 2] | 0); if ( (c[Xe >> 2] | 0) >>> 0 >= (c[Pe >> 2] | 0) >>> 0 ) jj = 0; else jj = ((c[Pe >> 2] | 0) - (c[Xe >> 2] | 0)) | 0; c[cf >> 2] = jj; c[df >> 2] = c[((c[De >> 2] | 0) + 16) >> 2]; c[ef >> 2] = (c[Ve >> 2] | 0) + (((c[Pe >> 2] & c[Xe >> 2]) << 1) << 2); c[ff >> 2] = (c[Ve >> 2] | 0) + (((c[Pe >> 2] & c[Xe >> 2]) << 1) << 2) + 4; c[gf >> 2] = (c[Pe >> 2] | 0) + 8 + 1; c[jf >> 2] = 0; c[kf >> 2] = 1 << c[((c[Ee >> 2] | 0) + 12) >> 2]; c[lf >> 2] = (c[Le >> 2] | 0) - 1; c[mf >> 2] = 3 + (c[Je >> 2] | 0); c[nf >> 2] = c[Je >> 2]; while (1) { if ( (c[nf >> 2] | 0) >>> 0 >= (c[mf >> 2] | 0) >>> 0 ) { dj = 137; break; } _h = c[Ie >> 2] | 0; if ((c[nf >> 2] | 0) == 3) kj = ((c[_h >> 2] | 0) - 1) | 0; else kj = c[(_h + (c[nf >> 2] << 2)) >> 2] | 0; c[of >> 2] = kj; c[pf >> 2] = (c[Pe >> 2] | 0) - (c[of >> 2] | 0); c[qf >> 2] = 0; if ( (((c[of >> 2] | 0) - 1) | 0) >>> 0 < (((c[Pe >> 2] | 0) - (c[$e >> 2] | 0)) | 0) >>> 0 ) { _h = mm(c[Fe >> 2] | 0, c[Re >> 2] | 0) | 0; if ( (_h | 0) == (mm( ((c[Fe >> 2] | 0) + (0 - (c[of >> 2] | 0))) | 0, c[Re >> 2] | 0 ) | 0) ) { _h = Tj( ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0)) | 0, ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0) + (0 - (c[of >> 2] | 0))) | 0, c[Ge >> 2] | 0 ) | 0; c[qf >> 2] = _h + (c[Re >> 2] | 0); } } else { c[rf >> 2] = (c[_e >> 2] | 0) + (c[pf >> 2] | 0); if ( ( c[He >> 2] | 0 ? ((((c[$e >> 2] | 0) - 1 - (c[pf >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[of >> 2] | 0) - 1) | 0) >>> 0 < (((c[Pe >> 2] | 0) - (c[df >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((_h = mm(c[Fe >> 2] | 0, c[Re >> 2] | 0) | 0), (_h | 0) == (mm(c[rf >> 2] | 0, c[Re >> 2] | 0) | 0)) : 0 ) { _h = Uj( ((c[Fe >> 2] | 0) + (c[Re >> 2] | 0)) | 0, ((c[rf >> 2] | 0) + (c[Re >> 2] | 0)) | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; c[qf >> 2] = _h + (c[Re >> 2] | 0); } } if ( (c[qf >> 2] | 0) >>> 0 > (c[lf >> 2] | 0) >>> 0 ? ((c[lf >> 2] = c[qf >> 2]), (c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3)) >> 2 ] = (c[nf >> 2] | 0) - (c[Je >> 2] | 0)), (c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3) + 4) >> 2 ] = c[qf >> 2]), (c[jf >> 2] = (c[jf >> 2] | 0) + 1), ((c[qf >> 2] | 0) >>> 0 > (c[Ne >> 2] | 0) >>> 0 ? 1 : (((c[Fe >> 2] | 0) + (c[qf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0)) | 0) : 0 ) { dj = 135; break; } c[nf >> 2] = (c[nf >> 2] | 0) + 1; } do { if ((dj | 0) == 135) { dj = 0; c[Ce >> 2] = c[jf >> 2]; } else if ((dj | 0) == 137) { dj = 0; if ( ( (c[Me >> 2] | 0) == 3 ? (c[lf >> 2] | 0) >>> 0 < (c[Me >> 2] | 0) >>> 0 : 0 ) ? ((c[sf >> 2] = nm(c[De >> 2] | 0, c[Fe >> 2] | 0) | 0), ((c[sf >> 2] | 0) >>> 0 > (c[df >> 2] | 0) >>> 0 ? (((c[Pe >> 2] | 0) - (c[sf >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[He >> 2] | 0 ? (c[sf >> 2] | 0) >>> 0 < (c[$e >> 2] | 0) >>> 0 : 0 ) { c[vf >> 2] = (c[_e >> 2] | 0) + (c[sf >> 2] | 0); c[tf >> 2] = Uj( c[Fe >> 2] | 0, c[vf >> 2] | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; } else { c[uf >> 2] = (c[Oe >> 2] | 0) + (c[sf >> 2] | 0); c[tf >> 2] = Tj( c[Fe >> 2] | 0, c[uf >> 2] | 0, c[Ge >> 2] | 0 ) | 0; } if ( (c[tf >> 2] | 0) >>> 0 >= (c[Me >> 2] | 0) >>> 0 ? ((c[lf >> 2] = c[tf >> 2]), (c[c[Ke >> 2] >> 2] = (c[Pe >> 2] | 0) - (c[sf >> 2] | 0) + 2), (c[((c[Ke >> 2] | 0) + 4) >> 2] = c[tf >> 2]), (c[jf >> 2] = 1), ((c[tf >> 2] | 0) >>> 0 > (c[Ne >> 2] | 0) >>> 0 ? 1 : (((c[Fe >> 2] | 0) + (c[tf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0)) | 0) : 0 ) { c[((c[De >> 2] | 0) + 24) >> 2] = (c[Pe >> 2] | 0) + 1; c[Ce >> 2] = 1; break; } } c[((c[Se >> 2] | 0) + (c[Te >> 2] << 2)) >> 2] = c[Pe >> 2]; while (1) { _h = c[kf >> 2] | 0; c[kf >> 2] = _h + -1; if (!_h) break; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[df >> 2] | 0) >>> 0 ) break; c[wf >> 2] = (c[Ve >> 2] | 0) + (((c[Ue >> 2] & c[Xe >> 2]) << 1) << 2); c[xf >> 2] = (c[Ye >> 2] | 0) >>> 0 < (c[Ze >> 2] | 0) >>> 0 ? c[Ye >> 2] | 0 : c[Ze >> 2] | 0; if ( c[He >> 2] | 0 ? (((c[Ue >> 2] | 0) + (c[xf >> 2] | 0)) | 0) >>> 0 < (c[$e >> 2] | 0) >>> 0 : 0 ) { c[yf >> 2] = (c[_e >> 2] | 0) + (c[Ue >> 2] | 0); _h = Uj( ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0, ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) | 0, c[Ge >> 2] | 0, c[af >> 2] | 0, c[bf >> 2] | 0 ) | 0; c[xf >> 2] = (c[xf >> 2] | 0) + _h; if ( (((c[Ue >> 2] | 0) + (c[xf >> 2] | 0)) | 0) >>> 0 >= (c[$e >> 2] | 0) >>> 0 ) c[yf >> 2] = (c[Oe >> 2] | 0) + (c[Ue >> 2] | 0); } else { c[yf >> 2] = (c[Oe >> 2] | 0) + (c[Ue >> 2] | 0); _h = Tj( ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0, ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) | 0, c[Ge >> 2] | 0 ) | 0; c[xf >> 2] = (c[xf >> 2] | 0) + _h; } if ( (c[xf >> 2] | 0) >>> 0 > (c[lf >> 2] | 0) >>> 0 ) { if ( (c[xf >> 2] | 0) >>> 0 > (((c[gf >> 2] | 0) - (c[Ue >> 2] | 0)) | 0) >>> 0 ) c[gf >> 2] = (c[Ue >> 2] | 0) + (c[xf >> 2] | 0); c[lf >> 2] = c[xf >> 2]; c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3)) >> 2 ] = (c[Pe >> 2] | 0) - (c[Ue >> 2] | 0) + 2; c[ ((c[Ke >> 2] | 0) + (c[jf >> 2] << 3) + 4) >> 2 ] = c[xf >> 2]; c[jf >> 2] = (c[jf >> 2] | 0) + 1; if ((c[xf >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) | 0) == (c[Ge >> 2] | 0) ) break; } _h = c[Ue >> 2] | 0; if ( (d[ ((c[yf >> 2] | 0) + (c[xf >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Fe >> 2] | 0) + (c[xf >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[ef >> 2] >> 2] = _h; c[Ye >> 2] = c[xf >> 2]; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[cf >> 2] | 0) >>> 0 ) { dj = 162; break; } c[ef >> 2] = (c[wf >> 2] | 0) + 4; c[Ue >> 2] = c[((c[wf >> 2] | 0) + 4) >> 2]; } else { c[c[ff >> 2] >> 2] = _h; c[Ze >> 2] = c[xf >> 2]; if ( (c[Ue >> 2] | 0) >>> 0 <= (c[cf >> 2] | 0) >>> 0 ) { dj = 165; break; } c[ff >> 2] = c[wf >> 2]; c[Ue >> 2] = c[c[wf >> 2] >> 2]; } } if ((dj | 0) == 162) { dj = 0; c[ef >> 2] = hf; } else if ((dj | 0) == 165) { dj = 0; c[ff >> 2] = hf; } c[c[ff >> 2] >> 2] = 0; c[c[ef >> 2] >> 2] = 0; c[((c[De >> 2] | 0) + 24) >> 2] = (c[gf >> 2] | 0) - 8; c[Ce >> 2] = c[jf >> 2]; } } while (0); c[Ah >> 2] = c[Ce >> 2]; break a; break; } default: { _h = c[Ch >> 2] | 0; Qh = c[Dh >> 2] | 0; Ph = c[Eh >> 2] | 0; Zi = c[Fh >> 2] | 0; _i = c[Gh >> 2] | 0; Uh = c[Hh >> 2] | 0; Zh = c[Ih >> 2] | 0; aj = c[Jh >> 2] | 0; c[Af >> 2] = c[Bh >> 2]; c[Bf >> 2] = _h; c[Cf >> 2] = Qh; c[Df >> 2] = Ph; c[Ef >> 2] = Zi; c[Ff >> 2] = _i; c[Gf >> 2] = Uh; c[Hf >> 2] = Zh; c[If >> 2] = aj; c[Jf >> 2] = 4; if ( (c[((c[Bf >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) lj = c[((c[Bf >> 2] | 0) + 20) >> 2] | 0; else lj = 4095; c[Kf >> 2] = lj; c[Lf >> 2] = c[((c[Af >> 2] | 0) + 4) >> 2]; c[Mf >> 2] = (c[Cf >> 2] | 0) - (c[Lf >> 2] | 0); c[Nf >> 2] = c[((c[Bf >> 2] | 0) + 8) >> 2]; c[Of >> 2] = (c[Jf >> 2] | 0) == 3 ? 3 : 4; c[Pf >> 2] = c[((c[Af >> 2] | 0) + 36) >> 2]; c[Qf >> 2] = Sj( c[Cf >> 2] | 0, c[Nf >> 2] | 0, c[Jf >> 2] | 0 ) | 0; c[Rf >> 2] = c[((c[Pf >> 2] | 0) + (c[Qf >> 2] << 2)) >> 2]; c[Sf >> 2] = c[((c[Af >> 2] | 0) + 44) >> 2]; c[Tf >> 2] = (c[((c[Bf >> 2] | 0) + 4) >> 2] | 0) - 1; c[Uf >> 2] = (1 << c[Tf >> 2]) - 1; c[Vf >> 2] = 0; c[Wf >> 2] = 0; c[Xf >> 2] = c[((c[Af >> 2] | 0) + 8) >> 2]; c[Yf >> 2] = c[((c[Af >> 2] | 0) + 12) >> 2]; c[Zf >> 2] = (c[Xf >> 2] | 0) + (c[Yf >> 2] | 0); c[_f >> 2] = (c[Lf >> 2] | 0) + (c[Yf >> 2] | 0); if ( (c[Uf >> 2] | 0) >>> 0 >= (c[Mf >> 2] | 0) >>> 0 ) mj = 0; else mj = ((c[Mf >> 2] | 0) - (c[Uf >> 2] | 0)) | 0; c[$f >> 2] = mj; c[ag >> 2] = c[((c[Af >> 2] | 0) + 16) >> 2]; c[bg >> 2] = (c[Sf >> 2] | 0) + (((c[Mf >> 2] & c[Uf >> 2]) << 1) << 2); c[cg >> 2] = (c[Sf >> 2] | 0) + (((c[Mf >> 2] & c[Uf >> 2]) << 1) << 2) + 4; c[dg >> 2] = (c[Mf >> 2] | 0) + 8 + 1; c[fg >> 2] = 0; c[gg >> 2] = 1 << c[((c[Bf >> 2] | 0) + 12) >> 2]; c[hg >> 2] = (c[If >> 2] | 0) - 1; c[ig >> 2] = 3 + (c[Gf >> 2] | 0); c[jg >> 2] = c[Gf >> 2]; while (1) { if ( (c[jg >> 2] | 0) >>> 0 >= (c[ig >> 2] | 0) >>> 0 ) { dj = 84; break; } aj = c[Ff >> 2] | 0; if ((c[jg >> 2] | 0) == 3) nj = ((c[aj >> 2] | 0) - 1) | 0; else nj = c[(aj + (c[jg >> 2] << 2)) >> 2] | 0; c[kg >> 2] = nj; c[lg >> 2] = (c[Mf >> 2] | 0) - (c[kg >> 2] | 0); c[mg >> 2] = 0; if ( (((c[kg >> 2] | 0) - 1) | 0) >>> 0 < (((c[Mf >> 2] | 0) - (c[Yf >> 2] | 0)) | 0) >>> 0 ) { aj = mm(c[Cf >> 2] | 0, c[Of >> 2] | 0) | 0; if ( (aj | 0) == (mm( ((c[Cf >> 2] | 0) + (0 - (c[kg >> 2] | 0))) | 0, c[Of >> 2] | 0 ) | 0) ) { aj = Tj( ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0)) | 0, ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0) + (0 - (c[kg >> 2] | 0))) | 0, c[Df >> 2] | 0 ) | 0; c[mg >> 2] = aj + (c[Of >> 2] | 0); } } else { c[ng >> 2] = (c[Xf >> 2] | 0) + (c[lg >> 2] | 0); if ( ( c[Ef >> 2] | 0 ? ((((c[Yf >> 2] | 0) - 1 - (c[lg >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[kg >> 2] | 0) - 1) | 0) >>> 0 < (((c[Mf >> 2] | 0) - (c[ag >> 2] | 0)) | 0) >>> 0 : 0) | 0 : 0 ) ? ((aj = mm(c[Cf >> 2] | 0, c[Of >> 2] | 0) | 0), (aj | 0) == (mm(c[ng >> 2] | 0, c[Of >> 2] | 0) | 0)) : 0 ) { aj = Uj( ((c[Cf >> 2] | 0) + (c[Of >> 2] | 0)) | 0, ((c[ng >> 2] | 0) + (c[Of >> 2] | 0)) | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; c[mg >> 2] = aj + (c[Of >> 2] | 0); } } if ( (c[mg >> 2] | 0) >>> 0 > (c[hg >> 2] | 0) >>> 0 ? ((c[hg >> 2] = c[mg >> 2]), (c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3)) >> 2 ] = (c[jg >> 2] | 0) - (c[Gf >> 2] | 0)), (c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3) + 4) >> 2 ] = c[mg >> 2]), (c[fg >> 2] = (c[fg >> 2] | 0) + 1), ((c[mg >> 2] | 0) >>> 0 > (c[Kf >> 2] | 0) >>> 0 ? 1 : (((c[Cf >> 2] | 0) + (c[mg >> 2] | 0)) | 0) == (c[Df >> 2] | 0)) | 0) : 0 ) { dj = 82; break; } c[jg >> 2] = (c[jg >> 2] | 0) + 1; } do { if ((dj | 0) == 82) { dj = 0; c[zf >> 2] = c[fg >> 2]; } else if ((dj | 0) == 84) { dj = 0; if ( ( (c[Jf >> 2] | 0) == 3 ? (c[hg >> 2] | 0) >>> 0 < (c[Jf >> 2] | 0) >>> 0 : 0 ) ? ((c[og >> 2] = nm(c[Af >> 2] | 0, c[Cf >> 2] | 0) | 0), ((c[og >> 2] | 0) >>> 0 > (c[ag >> 2] | 0) >>> 0 ? (((c[Mf >> 2] | 0) - (c[og >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0) : 0 ) { if ( c[Ef >> 2] | 0 ? (c[og >> 2] | 0) >>> 0 < (c[Yf >> 2] | 0) >>> 0 : 0 ) { c[rg >> 2] = (c[Xf >> 2] | 0) + (c[og >> 2] | 0); c[pg >> 2] = Uj( c[Cf >> 2] | 0, c[rg >> 2] | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; } else { c[qg >> 2] = (c[Lf >> 2] | 0) + (c[og >> 2] | 0); c[pg >> 2] = Tj( c[Cf >> 2] | 0, c[qg >> 2] | 0, c[Df >> 2] | 0 ) | 0; } if ( (c[pg >> 2] | 0) >>> 0 >= (c[Jf >> 2] | 0) >>> 0 ? ((c[hg >> 2] = c[pg >> 2]), (c[c[Hf >> 2] >> 2] = (c[Mf >> 2] | 0) - (c[og >> 2] | 0) + 2), (c[((c[Hf >> 2] | 0) + 4) >> 2] = c[pg >> 2]), (c[fg >> 2] = 1), ((c[pg >> 2] | 0) >>> 0 > (c[Kf >> 2] | 0) >>> 0 ? 1 : (((c[Cf >> 2] | 0) + (c[pg >> 2] | 0)) | 0) == (c[Df >> 2] | 0)) | 0) : 0 ) { c[((c[Af >> 2] | 0) + 24) >> 2] = (c[Mf >> 2] | 0) + 1; c[zf >> 2] = 1; break; } } c[((c[Pf >> 2] | 0) + (c[Qf >> 2] << 2)) >> 2] = c[Mf >> 2]; while (1) { aj = c[gg >> 2] | 0; c[gg >> 2] = aj + -1; if (!aj) break; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[ag >> 2] | 0) >>> 0 ) break; c[sg >> 2] = (c[Sf >> 2] | 0) + (((c[Rf >> 2] & c[Uf >> 2]) << 1) << 2); c[tg >> 2] = (c[Vf >> 2] | 0) >>> 0 < (c[Wf >> 2] | 0) >>> 0 ? c[Vf >> 2] | 0 : c[Wf >> 2] | 0; if ( c[Ef >> 2] | 0 ? (((c[Rf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) >>> 0 < (c[Yf >> 2] | 0) >>> 0 : 0 ) { c[ug >> 2] = (c[Xf >> 2] | 0) + (c[Rf >> 2] | 0); aj = Uj( ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0, ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) | 0, c[Df >> 2] | 0, c[Zf >> 2] | 0, c[_f >> 2] | 0 ) | 0; c[tg >> 2] = (c[tg >> 2] | 0) + aj; if ( (((c[Rf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) >>> 0 >= (c[Yf >> 2] | 0) >>> 0 ) c[ug >> 2] = (c[Lf >> 2] | 0) + (c[Rf >> 2] | 0); } else { c[ug >> 2] = (c[Lf >> 2] | 0) + (c[Rf >> 2] | 0); aj = Tj( ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0, ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) | 0, c[Df >> 2] | 0 ) | 0; c[tg >> 2] = (c[tg >> 2] | 0) + aj; } if ( (c[tg >> 2] | 0) >>> 0 > (c[hg >> 2] | 0) >>> 0 ) { if ( (c[tg >> 2] | 0) >>> 0 > (((c[dg >> 2] | 0) - (c[Rf >> 2] | 0)) | 0) >>> 0 ) c[dg >> 2] = (c[Rf >> 2] | 0) + (c[tg >> 2] | 0); c[hg >> 2] = c[tg >> 2]; c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3)) >> 2 ] = (c[Mf >> 2] | 0) - (c[Rf >> 2] | 0) + 2; c[ ((c[Hf >> 2] | 0) + (c[fg >> 2] << 3) + 4) >> 2 ] = c[tg >> 2]; c[fg >> 2] = (c[fg >> 2] | 0) + 1; if ((c[tg >> 2] | 0) >>> 0 > 4096) break; if ( (((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) | 0) == (c[Df >> 2] | 0) ) break; } aj = c[Rf >> 2] | 0; if ( (d[ ((c[ug >> 2] | 0) + (c[tg >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[Cf >> 2] | 0) + (c[tg >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[bg >> 2] >> 2] = aj; c[Vf >> 2] = c[tg >> 2]; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[$f >> 2] | 0) >>> 0 ) { dj = 109; break; } c[bg >> 2] = (c[sg >> 2] | 0) + 4; c[Rf >> 2] = c[((c[sg >> 2] | 0) + 4) >> 2]; } else { c[c[cg >> 2] >> 2] = aj; c[Wf >> 2] = c[tg >> 2]; if ( (c[Rf >> 2] | 0) >>> 0 <= (c[$f >> 2] | 0) >>> 0 ) { dj = 112; break; } c[cg >> 2] = c[sg >> 2]; c[Rf >> 2] = c[c[sg >> 2] >> 2]; } } if ((dj | 0) == 109) { dj = 0; c[bg >> 2] = eg; } else if ((dj | 0) == 112) { dj = 0; c[cg >> 2] = eg; } c[c[cg >> 2] >> 2] = 0; c[c[bg >> 2] >> 2] = 0; c[((c[Af >> 2] | 0) + 24) >> 2] = (c[dg >> 2] | 0) - 8; c[zf >> 2] = c[fg >> 2]; } } while (0); c[Ah >> 2] = c[zf >> 2]; break a; } } } } while (0); c[ki >> 2] = c[Ah >> 2]; if (!(c[ki >> 2] | 0)) { c[Vh >> 2] = (c[Vh >> 2] | 0) + 1; continue; } c[li >> 2] = 0; while (1) { if ((c[li >> 2] | 0) >>> 0 >= 3) break; c[((c[bi >> 2] | 0) + 16 + (c[li >> 2] << 2)) >> 2] = c[((c[Nh >> 2] | 0) + (c[li >> 2] << 2)) >> 2]; c[li >> 2] = (c[li >> 2] | 0) + 1; } c[((c[bi >> 2] | 0) + 8) >> 2] = 1; c[((c[bi >> 2] | 0) + 12) >> 2] = c[ii >> 2]; c[mi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[ki >> 2] | 0) - 1) << 3) + 4) >> 2 ]; do { if ((c[mi >> 2] | 0) >>> 0 <= (c[$h >> 2] | 0) >>> 0) { c[ni >> 2] = om( di, c[Wh >> 2] | 0, c[ii >> 2] | 0, c[Th >> 2] | 0 ) | 0; c[oi >> 2] = 0; while (1) { if ((c[oi >> 2] | 0) >>> 0 >= (c[ai >> 2] | 0) >>> 0) break; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 8) >> 2 ] = 1; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0)) >> 2 ] = 1073741824; c[oi >> 2] = (c[oi >> 2] | 0) + 1; } c[pi >> 2] = 0; while (1) { if ((c[pi >> 2] | 0) >>> 0 >= (c[ki >> 2] | 0) >>> 0) break; c[qi >> 2] = c[((c[ci >> 2] | 0) + (c[pi >> 2] << 3)) >> 2]; c[ri >> 2] = c[((c[ci >> 2] | 0) + (c[pi >> 2] << 3) + 4) >> 2]; pm( si, c[Nh >> 2] | 0, c[qi >> 2] | 0, c[ji >> 2] | 0 ); while (1) { if ((c[oi >> 2] | 0) >>> 0 > (c[ri >> 2] | 0) >>> 0) break; aj = c[ni >> 2] | 0; Zh = c[oi >> 2] | 0; Uh = c[Th >> 2] | 0; _i = c[Rh >> 2] | 0; c[yd >> 2] = c[qi >> 2]; c[zd >> 2] = Zh; c[Ad >> 2] = Uh; c[Bd >> 2] = _i; c[Dd >> 2] = qm(((c[yd >> 2] | 0) + 1) | 0) | 0; c[Ed >> 2] = (c[zd >> 2] | 0) - 3; if (c[((c[Ad >> 2] | 0) + 56) >> 2] | 0) { _i = ((qm(((c[Ed >> 2] | 0) + 1) | 0) | 0) + 16) | 0; c[xd >> 2] = _i + (c[Dd >> 2] | 0); } else { _i = ((c[Dd >> 2] | 0) + (c[((c[Ad >> 2] | 0) + 52) >> 2] | 0)) | 0; c[Cd >> 2] = _i - (qm( ((c[ ((c[((c[Ad >> 2] | 0) + 12) >> 2] | 0) + (c[Dd >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); if ( ((c[Bd >> 2] | 0) < 2) & ((c[Dd >> 2] | 0) >>> 0 >= 20) ) c[Cd >> 2] = (c[Cd >> 2] | 0) + (((c[Dd >> 2] | 0) - 19) << 1); c[Fd >> 2] = rm(c[Ed >> 2] | 0) | 0; _i = ((c[(5840 + (c[Fd >> 2] << 2)) >> 2] | 0) + (c[((c[Ad >> 2] | 0) + 48) >> 2] | 0)) | 0; Uh = (_i - (qm( ((c[ ((c[((c[Ad >> 2] | 0) + 8) >> 2] | 0) + (c[Fd >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0)) | 0; c[Cd >> 2] = (c[Cd >> 2] | 0) + Uh; c[xd >> 2] = c[Cd >> 2]; } c[ti >> 2] = aj + (c[xd >> 2] | 0); c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[oi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[qi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[ii >> 2]; c[ ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0)) >> 2 ] = c[ti >> 2]; aj = ((c[bi >> 2] | 0) + (((c[oi >> 2] | 0) * 28) | 0) + 16) | 0; c[aj >> 2] = c[si >> 2]; c[(aj + 4) >> 2] = c[(si + 4) >> 2]; c[(aj + 8) >> 2] = c[(si + 8) >> 2]; c[oi >> 2] = (c[oi >> 2] | 0) + 1; } c[pi >> 2] = (c[pi >> 2] | 0) + 1; } c[fi >> 2] = (c[oi >> 2] | 0) - 1; c[ei >> 2] = 1; b: while (1) { if ((c[ei >> 2] | 0) >>> 0 > (c[fi >> 2] | 0) >>> 0) { dj = 504; break; } c[ui >> 2] = (c[Vh >> 2] | 0) + (c[ei >> 2] | 0); if ( (c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 8) >> 2 ] | 0) == 1 ) oj = ((c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 12) >> 2 ] | 0) + 1) | 0; else oj = 1; c[vi >> 2] = oj; if ((c[ei >> 2] | 0) >>> 0 > (c[vi >> 2] | 0) >>> 0) { aj = c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - (c[vi >> 2] | 0)) | 0) * 28) | 0)) >> 2 ] | 0; c[wi >> 2] = aj + (sm( ((c[ui >> 2] | 0) + (0 - (c[vi >> 2] | 0))) | 0, c[vi >> 2] | 0, c[Th >> 2] | 0 ) | 0); } else c[wi >> 2] = tm( di, c[Wh >> 2] | 0, c[vi >> 2] | 0, c[Th >> 2] | 0 ) | 0; if ( (c[wi >> 2] | 0) <= (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] | 0) ) { c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] = 1; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 4) >> 2 ] = 0; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[vi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] = c[wi >> 2]; aj = ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0; Uh = ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - 1) | 0) * 28) | 0) + 16) | 0; c[aj >> 2] = c[Uh >> 2]; c[(aj + 4) >> 2] = c[(Uh + 4) >> 2]; c[(aj + 8) >> 2] = c[(Uh + 8) >> 2]; } c: do { if ( (c[ui >> 2] | 0) >>> 0 <= (c[Yh >> 2] | 0) >>> 0 ) { if ((c[ei >> 2] | 0) == (c[fi >> 2] | 0)) { dj = 504; break b; } if ( (c[Rh >> 2] | 0) == 0 ? (c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) + 1) | 0) * 28) | 0)) >> 2 ] | 0) <= (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0)) >> 2 ] | 0) : 0 ) break; c[xi >> 2] = ((c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] | 0) != 1) & 1; if ( (c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 8) >> 2 ] | 0) == 1 ) pj = c[ ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 12) >> 2 ] | 0; else pj = 0; c[yi >> 2] = pj; if ( (c[ei >> 2] | 0) >>> 0 > (c[yi >> 2] | 0) >>> 0 ) qj = c[ ((c[bi >> 2] | 0) + (((((c[ei >> 2] | 0) - (c[yi >> 2] | 0)) | 0) * 28) | 0)) >> 2 ] | 0; else qj = 0; c[zi >> 2] = qj; Uh = c[zi >> 2] | 0; c[Ai >> 2] = Uh + (um( ((c[ui >> 2] | 0) + (0 - (c[yi >> 2] | 0))) | 0, c[yi >> 2] | 0, c[Th >> 2] | 0 ) | 0); Uh = c[Oh >> 2] | 0; aj = c[ui >> 2] | 0; _i = c[Xh >> 2] | 0; Zh = c[Sh >> 2] | 0; Zi = ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0; Ph = c[xi >> 2] | 0; Qh = c[ci >> 2] | 0; _h = c[ai >> 2] | 0; c[nd >> 2] = c[Lh >> 2]; c[od >> 2] = Uh; c[pd >> 2] = aj; c[qd >> 2] = _i; c[rd >> 2] = Zh; c[sd >> 2] = Zi; c[td >> 2] = Ph; c[ud >> 2] = Qh; c[vd >> 2] = _h; c[wd >> 2] = c[((c[od >> 2] | 0) + 16) >> 2]; d: do { if ( (c[pd >> 2] | 0) >>> 0 < (((c[((c[nd >> 2] | 0) + 4) >> 2] | 0) + (c[((c[nd >> 2] | 0) + 24) >> 2] | 0)) | 0) >>> 0 ) c[md >> 2] = 0; else { _h = c[od >> 2] | 0; Qh = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Zi = c[wd >> 2] | 0; Zh = c[rd >> 2] | 0; c[dd >> 2] = c[nd >> 2]; c[ed >> 2] = _h; c[fd >> 2] = Qh; c[gd >> 2] = Ph; c[hd >> 2] = Zi; c[id >> 2] = Zh; c[jd >> 2] = c[((c[dd >> 2] | 0) + 4) >> 2]; c[kd >> 2] = (c[fd >> 2] | 0) - (c[jd >> 2] | 0); c[ld >> 2] = c[((c[dd >> 2] | 0) + 24) >> 2]; while (1) { if ( (c[ld >> 2] | 0) >>> 0 >= (c[kd >> 2] | 0) >>> 0 ) break; Zh = Rj( c[dd >> 2] | 0, c[ed >> 2] | 0, ((c[jd >> 2] | 0) + (c[ld >> 2] | 0)) | 0, c[gd >> 2] | 0, c[hd >> 2] | 0, c[id >> 2] | 0 ) | 0; c[ld >> 2] = (c[ld >> 2] | 0) + Zh; } c[((c[dd >> 2] | 0) + 24) >> 2] = c[kd >> 2]; switch (c[wd >> 2] | 0) { case 3: { Zh = c[od >> 2] | 0; Zi = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Qh = c[rd >> 2] | 0; _h = c[sd >> 2] | 0; _i = c[td >> 2] | 0; aj = c[ud >> 2] | 0; Uh = c[vd >> 2] | 0; c[ic >> 2] = c[nd >> 2]; c[jc >> 2] = Zh; c[kc >> 2] = Zi; c[lc >> 2] = Ph; c[mc >> 2] = Qh; c[nc >> 2] = _h; c[oc >> 2] = _i; c[pc >> 2] = aj; c[qc >> 2] = Uh; c[rc >> 2] = 3; if ( (c[((c[jc >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) rj = c[((c[jc >> 2] | 0) + 20) >> 2] | 0; else rj = 4095; c[sc >> 2] = rj; c[tc >> 2] = c[((c[ic >> 2] | 0) + 4) >> 2]; c[uc >> 2] = (c[kc >> 2] | 0) - (c[tc >> 2] | 0); c[vc >> 2] = c[((c[jc >> 2] | 0) + 8) >> 2]; c[wc >> 2] = (c[rc >> 2] | 0) == 3 ? 3 : 4; c[xc >> 2] = c[((c[ic >> 2] | 0) + 36) >> 2]; c[yc >> 2] = Sj( c[kc >> 2] | 0, c[vc >> 2] | 0, c[rc >> 2] | 0 ) | 0; c[zc >> 2] = c[ ((c[xc >> 2] | 0) + (c[yc >> 2] << 2)) >> 2 ]; c[Ac >> 2] = c[((c[ic >> 2] | 0) + 44) >> 2]; c[Bc >> 2] = (c[((c[jc >> 2] | 0) + 4) >> 2] | 0) - 1; c[Cc >> 2] = (1 << c[Bc >> 2]) - 1; c[Dc >> 2] = 0; c[Ec >> 2] = 0; c[Fc >> 2] = c[((c[ic >> 2] | 0) + 8) >> 2]; c[Gc >> 2] = c[((c[ic >> 2] | 0) + 12) >> 2]; c[Hc >> 2] = (c[Fc >> 2] | 0) + (c[Gc >> 2] | 0); c[Ic >> 2] = (c[tc >> 2] | 0) + (c[Gc >> 2] | 0); if ( (c[Cc >> 2] | 0) >>> 0 >= (c[uc >> 2] | 0) >>> 0 ) sj = 0; else sj = ((c[uc >> 2] | 0) - (c[Cc >> 2] | 0)) | 0; c[Jc >> 2] = sj; c[Kc >> 2] = c[((c[ic >> 2] | 0) + 16) >> 2]; c[Lc >> 2] = (c[Ac >> 2] | 0) + (((c[uc >> 2] & c[Cc >> 2]) << 1) << 2); c[Mc >> 2] = (c[Ac >> 2] | 0) + (((c[uc >> 2] & c[Cc >> 2]) << 1) << 2) + 4; c[Nc >> 2] = (c[uc >> 2] | 0) + 8 + 1; c[Pc >> 2] = 0; c[Qc >> 2] = 1 << c[((c[jc >> 2] | 0) + 12) >> 2]; c[Rc >> 2] = (c[qc >> 2] | 0) - 1; c[Sc >> 2] = 3 + (c[oc >> 2] | 0); c[Tc >> 2] = c[oc >> 2]; while (1) { if ( (c[Tc >> 2] | 0) >>> 0 >= (c[Sc >> 2] | 0) >>> 0 ) { dj = 287; break; } Uh = c[nc >> 2] | 0; if ((c[Tc >> 2] | 0) == 3) tj = ((c[Uh >> 2] | 0) - 1) | 0; else tj = c[(Uh + (c[Tc >> 2] << 2)) >> 2] | 0; c[Uc >> 2] = tj; c[Vc >> 2] = (c[uc >> 2] | 0) - (c[Uc >> 2] | 0); c[Wc >> 2] = 0; do { if ( (((c[Uc >> 2] | 0) - 1) | 0) >>> 0 < (((c[uc >> 2] | 0) - (c[Gc >> 2] | 0)) | 0) >>> 0 ) { Uh = mm( c[kc >> 2] | 0, c[wc >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( ((c[kc >> 2] | 0) + (0 - (c[Uc >> 2] | 0))) | 0, c[wc >> 2] | 0 ) | 0) ) break; Uh = Tj( ((c[kc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, ((c[kc >> 2] | 0) + (c[wc >> 2] | 0) + (0 - (c[Uc >> 2] | 0))) | 0, c[lc >> 2] | 0 ) | 0; c[Wc >> 2] = Uh + (c[wc >> 2] | 0); } else { c[Xc >> 2] = (c[Fc >> 2] | 0) + (c[Vc >> 2] | 0); if (!(c[mc >> 2] | 0)) break; if ( !( ((((c[Gc >> 2] | 0) - 1 - (c[Vc >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[Uc >> 2] | 0) - 1) | 0) >>> 0 < (((c[uc >> 2] | 0) - (c[Kc >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Uh = mm( c[kc >> 2] | 0, c[wc >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( c[Xc >> 2] | 0, c[wc >> 2] | 0 ) | 0) ) break; Uh = Uj( ((c[kc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, ((c[Xc >> 2] | 0) + (c[wc >> 2] | 0)) | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; c[Wc >> 2] = Uh + (c[wc >> 2] | 0); } } while (0); if ( (c[Wc >> 2] | 0) >>> 0 > (c[Rc >> 2] | 0) >>> 0 ? ((c[Rc >> 2] = c[Wc >> 2]), (c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3)) >> 2 ] = (c[Tc >> 2] | 0) - (c[oc >> 2] | 0)), (c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3) + 4) >> 2 ] = c[Wc >> 2]), (c[Pc >> 2] = (c[Pc >> 2] | 0) + 1), ((c[Wc >> 2] | 0) >>> 0 > (c[sc >> 2] | 0) >>> 0 ? 1 : (((c[kc >> 2] | 0) + (c[Wc >> 2] | 0)) | 0) == (c[lc >> 2] | 0)) | 0) : 0 ) { dj = 285; break; } c[Tc >> 2] = (c[Tc >> 2] | 0) + 1; } e: do { if ((dj | 0) == 285) { dj = 0; c[hc >> 2] = c[Pc >> 2]; } else if ((dj | 0) == 287) { dj = 0; do { if ((c[rc >> 2] | 0) == 3) { if ( (c[Rc >> 2] | 0) >>> 0 >= (c[rc >> 2] | 0) >>> 0 ) break; c[Yc >> 2] = nm( c[ic >> 2] | 0, c[kc >> 2] | 0 ) | 0; if ( !( ((c[Yc >> 2] | 0) >>> 0 > (c[Kc >> 2] | 0) >>> 0 ? (((c[uc >> 2] | 0) - (c[Yc >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[mc >> 2] | 0) { if ( (c[Yc >> 2] | 0) >>> 0 >= (c[Gc >> 2] | 0) >>> 0 ) { dj = 292; break; } c[$c >> 2] = (c[Fc >> 2] | 0) + (c[Yc >> 2] | 0); c[Zc >> 2] = Uj( c[kc >> 2] | 0, c[$c >> 2] | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; } else dj = 292; } while (0); if ((dj | 0) == 292) { dj = 0; c[_c >> 2] = (c[tc >> 2] | 0) + (c[Yc >> 2] | 0); c[Zc >> 2] = Tj( c[kc >> 2] | 0, c[_c >> 2] | 0, c[lc >> 2] | 0 ) | 0; } if ( (c[Zc >> 2] | 0) >>> 0 < (c[rc >> 2] | 0) >>> 0 ) break; c[Rc >> 2] = c[Zc >> 2]; c[c[pc >> 2] >> 2] = (c[uc >> 2] | 0) - (c[Yc >> 2] | 0) + 2; c[((c[pc >> 2] | 0) + 4) >> 2] = c[Zc >> 2]; c[Pc >> 2] = 1; if ( !( ((c[Zc >> 2] | 0) >>> 0 > (c[sc >> 2] | 0) >>> 0 ? 1 : (((c[kc >> 2] | 0) + (c[Zc >> 2] | 0)) | 0) == (c[lc >> 2] | 0)) | 0 ) ) break; c[((c[ic >> 2] | 0) + 24) >> 2] = (c[uc >> 2] | 0) + 1; c[hc >> 2] = 1; break e; } } while (0); c[ ((c[xc >> 2] | 0) + (c[yc >> 2] << 2)) >> 2 ] = c[uc >> 2]; while (1) { Uh = c[Qc >> 2] | 0; c[Qc >> 2] = Uh + -1; if (!Uh) break; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Kc >> 2] | 0) >>> 0 ) break; c[ad >> 2] = (c[Ac >> 2] | 0) + (((c[zc >> 2] & c[Cc >> 2]) << 1) << 2); c[bd >> 2] = (c[Dc >> 2] | 0) >>> 0 < (c[Ec >> 2] | 0) >>> 0 ? c[Dc >> 2] | 0 : c[Ec >> 2] | 0; do { if (c[mc >> 2] | 0) { if ( (((c[zc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) >>> 0 >= (c[Gc >> 2] | 0) >>> 0 ) { dj = 302; break; } c[cd >> 2] = (c[Fc >> 2] | 0) + (c[zc >> 2] | 0); Uh = Uj( ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0, ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) | 0, c[lc >> 2] | 0, c[Hc >> 2] | 0, c[Ic >> 2] | 0 ) | 0; c[bd >> 2] = (c[bd >> 2] | 0) + Uh; if ( (((c[zc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) >>> 0 < (c[Gc >> 2] | 0) >>> 0 ) break; c[cd >> 2] = (c[tc >> 2] | 0) + (c[zc >> 2] | 0); } else dj = 302; } while (0); if ((dj | 0) == 302) { dj = 0; c[cd >> 2] = (c[tc >> 2] | 0) + (c[zc >> 2] | 0); Uh = Tj( ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0, ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) | 0, c[lc >> 2] | 0 ) | 0; c[bd >> 2] = (c[bd >> 2] | 0) + Uh; } if ( (c[bd >> 2] | 0) >>> 0 > (c[Rc >> 2] | 0) >>> 0 ) { if ( (c[bd >> 2] | 0) >>> 0 > (((c[Nc >> 2] | 0) - (c[zc >> 2] | 0)) | 0) >>> 0 ) c[Nc >> 2] = (c[zc >> 2] | 0) + (c[bd >> 2] | 0); c[Rc >> 2] = c[bd >> 2]; c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3)) >> 2 ] = (c[uc >> 2] | 0) - (c[zc >> 2] | 0) + 2; c[ ((c[pc >> 2] | 0) + (c[Pc >> 2] << 3) + 4) >> 2 ] = c[bd >> 2]; c[Pc >> 2] = (c[Pc >> 2] | 0) + 1; if ((c[bd >> 2] | 0) >>> 0 > 4096) break; if ( (((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) | 0) == (c[lc >> 2] | 0) ) break; } Uh = c[zc >> 2] | 0; if ( (d[ ((c[cd >> 2] | 0) + (c[bd >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[kc >> 2] | 0) + (c[bd >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Lc >> 2] >> 2] = Uh; c[Dc >> 2] = c[bd >> 2]; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Jc >> 2] | 0) >>> 0 ) { dj = 312; break; } c[Lc >> 2] = (c[ad >> 2] | 0) + 4; c[zc >> 2] = c[((c[ad >> 2] | 0) + 4) >> 2]; } else { c[c[Mc >> 2] >> 2] = Uh; c[Ec >> 2] = c[bd >> 2]; if ( (c[zc >> 2] | 0) >>> 0 <= (c[Jc >> 2] | 0) >>> 0 ) { dj = 315; break; } c[Mc >> 2] = c[ad >> 2]; c[zc >> 2] = c[c[ad >> 2] >> 2]; } } if ((dj | 0) == 312) { dj = 0; c[Lc >> 2] = Oc; } else if ((dj | 0) == 315) { dj = 0; c[Mc >> 2] = Oc; } c[c[Mc >> 2] >> 2] = 0; c[c[Lc >> 2] >> 2] = 0; c[((c[ic >> 2] | 0) + 24) >> 2] = (c[Nc >> 2] | 0) - 8; c[hc >> 2] = c[Pc >> 2]; } } while (0); c[md >> 2] = c[hc >> 2]; break d; break; } case 7: case 6: { Uh = c[od >> 2] | 0; aj = c[pd >> 2] | 0; _i = c[qd >> 2] | 0; _h = c[rd >> 2] | 0; Qh = c[sd >> 2] | 0; Ph = c[td >> 2] | 0; Zi = c[ud >> 2] | 0; Zh = c[vd >> 2] | 0; c[u >> 2] = c[nd >> 2]; c[v >> 2] = Uh; c[w >> 2] = aj; c[x >> 2] = _i; c[y >> 2] = _h; c[z >> 2] = Qh; c[A >> 2] = Ph; c[B >> 2] = Zi; c[C >> 2] = Zh; c[D >> 2] = 6; if ( (c[((c[v >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) uj = c[((c[v >> 2] | 0) + 20) >> 2] | 0; else uj = 4095; c[E >> 2] = uj; c[F >> 2] = c[((c[u >> 2] | 0) + 4) >> 2]; c[G >> 2] = (c[w >> 2] | 0) - (c[F >> 2] | 0); c[H >> 2] = c[((c[v >> 2] | 0) + 8) >> 2]; c[I >> 2] = (c[D >> 2] | 0) == 3 ? 3 : 4; c[J >> 2] = c[((c[u >> 2] | 0) + 36) >> 2]; c[K >> 2] = Sj( c[w >> 2] | 0, c[H >> 2] | 0, c[D >> 2] | 0 ) | 0; c[L >> 2] = c[ ((c[J >> 2] | 0) + (c[K >> 2] << 2)) >> 2 ]; c[M >> 2] = c[((c[u >> 2] | 0) + 44) >> 2]; c[N >> 2] = (c[((c[v >> 2] | 0) + 4) >> 2] | 0) - 1; c[O >> 2] = (1 << c[N >> 2]) - 1; c[P >> 2] = 0; c[Q >> 2] = 0; c[R >> 2] = c[((c[u >> 2] | 0) + 8) >> 2]; c[S >> 2] = c[((c[u >> 2] | 0) + 12) >> 2]; c[T >> 2] = (c[R >> 2] | 0) + (c[S >> 2] | 0); c[U >> 2] = (c[F >> 2] | 0) + (c[S >> 2] | 0); if ( (c[O >> 2] | 0) >>> 0 >= (c[G >> 2] | 0) >>> 0 ) vj = 0; else vj = ((c[G >> 2] | 0) - (c[O >> 2] | 0)) | 0; c[V >> 2] = vj; c[W >> 2] = c[((c[u >> 2] | 0) + 16) >> 2]; c[X >> 2] = (c[M >> 2] | 0) + (((c[G >> 2] & c[O >> 2]) << 1) << 2); c[Y >> 2] = (c[M >> 2] | 0) + (((c[G >> 2] & c[O >> 2]) << 1) << 2) + 4; c[Z >> 2] = (c[G >> 2] | 0) + 8 + 1; c[$ >> 2] = 0; c[aa >> 2] = 1 << c[((c[v >> 2] | 0) + 12) >> 2]; c[ba >> 2] = (c[C >> 2] | 0) - 1; c[ca >> 2] = 3 + (c[A >> 2] | 0); c[da >> 2] = c[A >> 2]; while (1) { if ( (c[da >> 2] | 0) >>> 0 >= (c[ca >> 2] | 0) >>> 0 ) { dj = 446; break; } Zh = c[z >> 2] | 0; if ((c[da >> 2] | 0) == 3) wj = ((c[Zh >> 2] | 0) - 1) | 0; else wj = c[(Zh + (c[da >> 2] << 2)) >> 2] | 0; c[ea >> 2] = wj; c[fa >> 2] = (c[G >> 2] | 0) - (c[ea >> 2] | 0); c[ga >> 2] = 0; do { if ( (((c[ea >> 2] | 0) - 1) | 0) >>> 0 < (((c[G >> 2] | 0) - (c[S >> 2] | 0)) | 0) >>> 0 ) { Zh = mm(c[w >> 2] | 0, c[I >> 2] | 0) | 0; if ( (Zh | 0) != (mm( ((c[w >> 2] | 0) + (0 - (c[ea >> 2] | 0))) | 0, c[I >> 2] | 0 ) | 0) ) break; Zh = Tj( ((c[w >> 2] | 0) + (c[I >> 2] | 0)) | 0, ((c[w >> 2] | 0) + (c[I >> 2] | 0) + (0 - (c[ea >> 2] | 0))) | 0, c[x >> 2] | 0 ) | 0; c[ga >> 2] = Zh + (c[I >> 2] | 0); } else { c[ha >> 2] = (c[R >> 2] | 0) + (c[fa >> 2] | 0); if (!(c[y >> 2] | 0)) break; if ( !( ((((c[S >> 2] | 0) - 1 - (c[fa >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[ea >> 2] | 0) - 1) | 0) >>> 0 < (((c[G >> 2] | 0) - (c[W >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Zh = mm(c[w >> 2] | 0, c[I >> 2] | 0) | 0; if ( (Zh | 0) != (mm( c[ha >> 2] | 0, c[I >> 2] | 0 ) | 0) ) break; Zh = Uj( ((c[w >> 2] | 0) + (c[I >> 2] | 0)) | 0, ((c[ha >> 2] | 0) + (c[I >> 2] | 0)) | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[ga >> 2] = Zh + (c[I >> 2] | 0); } } while (0); if ( (c[ga >> 2] | 0) >>> 0 > (c[ba >> 2] | 0) >>> 0 ? ((c[ba >> 2] = c[ga >> 2]), (c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3)) >> 2 ] = (c[da >> 2] | 0) - (c[A >> 2] | 0)), (c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3) + 4) >> 2 ] = c[ga >> 2]), (c[$ >> 2] = (c[$ >> 2] | 0) + 1), ((c[ga >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0 ? 1 : (((c[w >> 2] | 0) + (c[ga >> 2] | 0)) | 0) == (c[x >> 2] | 0)) | 0) : 0 ) { dj = 444; break; } c[da >> 2] = (c[da >> 2] | 0) + 1; } f: do { if ((dj | 0) == 444) { dj = 0; c[t >> 2] = c[$ >> 2]; } else if ((dj | 0) == 446) { dj = 0; do { if ((c[D >> 2] | 0) == 3) { if ( (c[ba >> 2] | 0) >>> 0 >= (c[D >> 2] | 0) >>> 0 ) break; c[ia >> 2] = nm( c[u >> 2] | 0, c[w >> 2] | 0 ) | 0; if ( !( ((c[ia >> 2] | 0) >>> 0 > (c[W >> 2] | 0) >>> 0 ? (((c[G >> 2] | 0) - (c[ia >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[y >> 2] | 0) { if ( (c[ia >> 2] | 0) >>> 0 >= (c[S >> 2] | 0) >>> 0 ) { dj = 451; break; } c[la >> 2] = (c[R >> 2] | 0) + (c[ia >> 2] | 0); c[ja >> 2] = Uj( c[w >> 2] | 0, c[la >> 2] | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; } else dj = 451; } while (0); if ((dj | 0) == 451) { dj = 0; c[ka >> 2] = (c[F >> 2] | 0) + (c[ia >> 2] | 0); c[ja >> 2] = Tj( c[w >> 2] | 0, c[ka >> 2] | 0, c[x >> 2] | 0 ) | 0; } if ( (c[ja >> 2] | 0) >>> 0 < (c[D >> 2] | 0) >>> 0 ) break; c[ba >> 2] = c[ja >> 2]; c[c[B >> 2] >> 2] = (c[G >> 2] | 0) - (c[ia >> 2] | 0) + 2; c[((c[B >> 2] | 0) + 4) >> 2] = c[ja >> 2]; c[$ >> 2] = 1; if ( !( ((c[ja >> 2] | 0) >>> 0 > (c[E >> 2] | 0) >>> 0 ? 1 : (((c[w >> 2] | 0) + (c[ja >> 2] | 0)) | 0) == (c[x >> 2] | 0)) | 0 ) ) break; c[((c[u >> 2] | 0) + 24) >> 2] = (c[G >> 2] | 0) + 1; c[t >> 2] = 1; break f; } } while (0); c[ ((c[J >> 2] | 0) + (c[K >> 2] << 2)) >> 2 ] = c[G >> 2]; while (1) { Zh = c[aa >> 2] | 0; c[aa >> 2] = Zh + -1; if (!Zh) break; if ( (c[L >> 2] | 0) >>> 0 <= (c[W >> 2] | 0) >>> 0 ) break; c[ma >> 2] = (c[M >> 2] | 0) + (((c[L >> 2] & c[O >> 2]) << 1) << 2); c[na >> 2] = (c[P >> 2] | 0) >>> 0 < (c[Q >> 2] | 0) >>> 0 ? c[P >> 2] | 0 : c[Q >> 2] | 0; do { if (c[y >> 2] | 0) { if ( (((c[L >> 2] | 0) + (c[na >> 2] | 0)) | 0) >>> 0 >= (c[S >> 2] | 0) >>> 0 ) { dj = 461; break; } c[oa >> 2] = (c[R >> 2] | 0) + (c[L >> 2] | 0); Zh = Uj( ((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0, ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) | 0, c[x >> 2] | 0, c[T >> 2] | 0, c[U >> 2] | 0 ) | 0; c[na >> 2] = (c[na >> 2] | 0) + Zh; if ( (((c[L >> 2] | 0) + (c[na >> 2] | 0)) | 0) >>> 0 < (c[S >> 2] | 0) >>> 0 ) break; c[oa >> 2] = (c[F >> 2] | 0) + (c[L >> 2] | 0); } else dj = 461; } while (0); if ((dj | 0) == 461) { dj = 0; c[oa >> 2] = (c[F >> 2] | 0) + (c[L >> 2] | 0); Zh = Tj( ((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0, ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) | 0, c[x >> 2] | 0 ) | 0; c[na >> 2] = (c[na >> 2] | 0) + Zh; } if ( (c[na >> 2] | 0) >>> 0 > (c[ba >> 2] | 0) >>> 0 ) { if ( (c[na >> 2] | 0) >>> 0 > (((c[Z >> 2] | 0) - (c[L >> 2] | 0)) | 0) >>> 0 ) c[Z >> 2] = (c[L >> 2] | 0) + (c[na >> 2] | 0); c[ba >> 2] = c[na >> 2]; c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3)) >> 2 ] = (c[G >> 2] | 0) - (c[L >> 2] | 0) + 2; c[ ((c[B >> 2] | 0) + (c[$ >> 2] << 3) + 4) >> 2 ] = c[na >> 2]; c[$ >> 2] = (c[$ >> 2] | 0) + 1; if ((c[na >> 2] | 0) >>> 0 > 4096) break; if ( (((c[w >> 2] | 0) + (c[na >> 2] | 0)) | 0) == (c[x >> 2] | 0) ) break; } Zh = c[L >> 2] | 0; if ( (d[ ((c[oa >> 2] | 0) + (c[na >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[w >> 2] | 0) + (c[na >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[X >> 2] >> 2] = Zh; c[P >> 2] = c[na >> 2]; if ( (c[L >> 2] | 0) >>> 0 <= (c[V >> 2] | 0) >>> 0 ) { dj = 471; break; } c[X >> 2] = (c[ma >> 2] | 0) + 4; c[L >> 2] = c[((c[ma >> 2] | 0) + 4) >> 2]; } else { c[c[Y >> 2] >> 2] = Zh; c[Q >> 2] = c[na >> 2]; if ( (c[L >> 2] | 0) >>> 0 <= (c[V >> 2] | 0) >>> 0 ) { dj = 474; break; } c[Y >> 2] = c[ma >> 2]; c[L >> 2] = c[c[ma >> 2] >> 2]; } } if ((dj | 0) == 471) { dj = 0; c[X >> 2] = _; } else if ((dj | 0) == 474) { dj = 0; c[Y >> 2] = _; } c[c[Y >> 2] >> 2] = 0; c[c[X >> 2] >> 2] = 0; c[((c[u >> 2] | 0) + 24) >> 2] = (c[Z >> 2] | 0) - 8; c[t >> 2] = c[$ >> 2]; } } while (0); c[md >> 2] = c[t >> 2]; break d; break; } case 5: { Zh = c[od >> 2] | 0; Zi = c[pd >> 2] | 0; Ph = c[qd >> 2] | 0; Qh = c[rd >> 2] | 0; _h = c[sd >> 2] | 0; _i = c[td >> 2] | 0; aj = c[ud >> 2] | 0; Uh = c[vd >> 2] | 0; c[qa >> 2] = c[nd >> 2]; c[ra >> 2] = Zh; c[sa >> 2] = Zi; c[ta >> 2] = Ph; c[ua >> 2] = Qh; c[va >> 2] = _h; c[wa >> 2] = _i; c[xa >> 2] = aj; c[ya >> 2] = Uh; c[za >> 2] = 5; if ( (c[((c[ra >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) xj = c[((c[ra >> 2] | 0) + 20) >> 2] | 0; else xj = 4095; c[Aa >> 2] = xj; c[Ba >> 2] = c[((c[qa >> 2] | 0) + 4) >> 2]; c[Ca >> 2] = (c[sa >> 2] | 0) - (c[Ba >> 2] | 0); c[Da >> 2] = c[((c[ra >> 2] | 0) + 8) >> 2]; c[Ea >> 2] = (c[za >> 2] | 0) == 3 ? 3 : 4; c[Fa >> 2] = c[((c[qa >> 2] | 0) + 36) >> 2]; c[Ga >> 2] = Sj( c[sa >> 2] | 0, c[Da >> 2] | 0, c[za >> 2] | 0 ) | 0; c[Ha >> 2] = c[ ((c[Fa >> 2] | 0) + (c[Ga >> 2] << 2)) >> 2 ]; c[Ia >> 2] = c[((c[qa >> 2] | 0) + 44) >> 2]; c[Ja >> 2] = (c[((c[ra >> 2] | 0) + 4) >> 2] | 0) - 1; c[Ka >> 2] = (1 << c[Ja >> 2]) - 1; c[La >> 2] = 0; c[Ma >> 2] = 0; c[Na >> 2] = c[((c[qa >> 2] | 0) + 8) >> 2]; c[Oa >> 2] = c[((c[qa >> 2] | 0) + 12) >> 2]; c[Pa >> 2] = (c[Na >> 2] | 0) + (c[Oa >> 2] | 0); c[Qa >> 2] = (c[Ba >> 2] | 0) + (c[Oa >> 2] | 0); if ( (c[Ka >> 2] | 0) >>> 0 >= (c[Ca >> 2] | 0) >>> 0 ) yj = 0; else yj = ((c[Ca >> 2] | 0) - (c[Ka >> 2] | 0)) | 0; c[Ra >> 2] = yj; c[Sa >> 2] = c[((c[qa >> 2] | 0) + 16) >> 2]; c[Ta >> 2] = (c[Ia >> 2] | 0) + (((c[Ca >> 2] & c[Ka >> 2]) << 1) << 2); c[Ua >> 2] = (c[Ia >> 2] | 0) + (((c[Ca >> 2] & c[Ka >> 2]) << 1) << 2) + 4; c[Va >> 2] = (c[Ca >> 2] | 0) + 8 + 1; c[Xa >> 2] = 0; c[Ya >> 2] = 1 << c[((c[ra >> 2] | 0) + 12) >> 2]; c[Za >> 2] = (c[ya >> 2] | 0) - 1; c[_a >> 2] = 3 + (c[wa >> 2] | 0); c[$a >> 2] = c[wa >> 2]; while (1) { if ( (c[$a >> 2] | 0) >>> 0 >= (c[_a >> 2] | 0) >>> 0 ) { dj = 393; break; } Uh = c[va >> 2] | 0; if ((c[$a >> 2] | 0) == 3) zj = ((c[Uh >> 2] | 0) - 1) | 0; else zj = c[(Uh + (c[$a >> 2] << 2)) >> 2] | 0; c[ab >> 2] = zj; c[bb >> 2] = (c[Ca >> 2] | 0) - (c[ab >> 2] | 0); c[cb >> 2] = 0; do { if ( (((c[ab >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ca >> 2] | 0) - (c[Oa >> 2] | 0)) | 0) >>> 0 ) { Uh = mm( c[sa >> 2] | 0, c[Ea >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( ((c[sa >> 2] | 0) + (0 - (c[ab >> 2] | 0))) | 0, c[Ea >> 2] | 0 ) | 0) ) break; Uh = Tj( ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0) + (0 - (c[ab >> 2] | 0))) | 0, c[ta >> 2] | 0 ) | 0; c[cb >> 2] = Uh + (c[Ea >> 2] | 0); } else { c[db >> 2] = (c[Na >> 2] | 0) + (c[bb >> 2] | 0); if (!(c[ua >> 2] | 0)) break; if ( !( ((((c[Oa >> 2] | 0) - 1 - (c[bb >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[ab >> 2] | 0) - 1) | 0) >>> 0 < (((c[Ca >> 2] | 0) - (c[Sa >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Uh = mm( c[sa >> 2] | 0, c[Ea >> 2] | 0 ) | 0; if ( (Uh | 0) != (mm( c[db >> 2] | 0, c[Ea >> 2] | 0 ) | 0) ) break; Uh = Uj( ((c[sa >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, ((c[db >> 2] | 0) + (c[Ea >> 2] | 0)) | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; c[cb >> 2] = Uh + (c[Ea >> 2] | 0); } } while (0); if ( (c[cb >> 2] | 0) >>> 0 > (c[Za >> 2] | 0) >>> 0 ? ((c[Za >> 2] = c[cb >> 2]), (c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3)) >> 2 ] = (c[$a >> 2] | 0) - (c[wa >> 2] | 0)), (c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3) + 4) >> 2 ] = c[cb >> 2]), (c[Xa >> 2] = (c[Xa >> 2] | 0) + 1), ((c[cb >> 2] | 0) >>> 0 > (c[Aa >> 2] | 0) >>> 0 ? 1 : (((c[sa >> 2] | 0) + (c[cb >> 2] | 0)) | 0) == (c[ta >> 2] | 0)) | 0) : 0 ) { dj = 391; break; } c[$a >> 2] = (c[$a >> 2] | 0) + 1; } g: do { if ((dj | 0) == 391) { dj = 0; c[pa >> 2] = c[Xa >> 2]; } else if ((dj | 0) == 393) { dj = 0; do { if ((c[za >> 2] | 0) == 3) { if ( (c[Za >> 2] | 0) >>> 0 >= (c[za >> 2] | 0) >>> 0 ) break; c[eb >> 2] = nm( c[qa >> 2] | 0, c[sa >> 2] | 0 ) | 0; if ( !( ((c[eb >> 2] | 0) >>> 0 > (c[Sa >> 2] | 0) >>> 0 ? (((c[Ca >> 2] | 0) - (c[eb >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[ua >> 2] | 0) { if ( (c[eb >> 2] | 0) >>> 0 >= (c[Oa >> 2] | 0) >>> 0 ) { dj = 398; break; } c[hb >> 2] = (c[Na >> 2] | 0) + (c[eb >> 2] | 0); c[fb >> 2] = Uj( c[sa >> 2] | 0, c[hb >> 2] | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; } else dj = 398; } while (0); if ((dj | 0) == 398) { dj = 0; c[gb >> 2] = (c[Ba >> 2] | 0) + (c[eb >> 2] | 0); c[fb >> 2] = Tj( c[sa >> 2] | 0, c[gb >> 2] | 0, c[ta >> 2] | 0 ) | 0; } if ( (c[fb >> 2] | 0) >>> 0 < (c[za >> 2] | 0) >>> 0 ) break; c[Za >> 2] = c[fb >> 2]; c[c[xa >> 2] >> 2] = (c[Ca >> 2] | 0) - (c[eb >> 2] | 0) + 2; c[((c[xa >> 2] | 0) + 4) >> 2] = c[fb >> 2]; c[Xa >> 2] = 1; if ( !( ((c[fb >> 2] | 0) >>> 0 > (c[Aa >> 2] | 0) >>> 0 ? 1 : (((c[sa >> 2] | 0) + (c[fb >> 2] | 0)) | 0) == (c[ta >> 2] | 0)) | 0 ) ) break; c[((c[qa >> 2] | 0) + 24) >> 2] = (c[Ca >> 2] | 0) + 1; c[pa >> 2] = 1; break g; } } while (0); c[ ((c[Fa >> 2] | 0) + (c[Ga >> 2] << 2)) >> 2 ] = c[Ca >> 2]; while (1) { Uh = c[Ya >> 2] | 0; c[Ya >> 2] = Uh + -1; if (!Uh) break; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Sa >> 2] | 0) >>> 0 ) break; c[ib >> 2] = (c[Ia >> 2] | 0) + (((c[Ha >> 2] & c[Ka >> 2]) << 1) << 2); c[jb >> 2] = (c[La >> 2] | 0) >>> 0 < (c[Ma >> 2] | 0) >>> 0 ? c[La >> 2] | 0 : c[Ma >> 2] | 0; do { if (c[ua >> 2] | 0) { if ( (((c[Ha >> 2] | 0) + (c[jb >> 2] | 0)) | 0) >>> 0 >= (c[Oa >> 2] | 0) >>> 0 ) { dj = 408; break; } c[kb >> 2] = (c[Na >> 2] | 0) + (c[Ha >> 2] | 0); Uh = Uj( ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0, ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) | 0, c[ta >> 2] | 0, c[Pa >> 2] | 0, c[Qa >> 2] | 0 ) | 0; c[jb >> 2] = (c[jb >> 2] | 0) + Uh; if ( (((c[Ha >> 2] | 0) + (c[jb >> 2] | 0)) | 0) >>> 0 < (c[Oa >> 2] | 0) >>> 0 ) break; c[kb >> 2] = (c[Ba >> 2] | 0) + (c[Ha >> 2] | 0); } else dj = 408; } while (0); if ((dj | 0) == 408) { dj = 0; c[kb >> 2] = (c[Ba >> 2] | 0) + (c[Ha >> 2] | 0); Uh = Tj( ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0, ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) | 0, c[ta >> 2] | 0 ) | 0; c[jb >> 2] = (c[jb >> 2] | 0) + Uh; } if ( (c[jb >> 2] | 0) >>> 0 > (c[Za >> 2] | 0) >>> 0 ) { if ( (c[jb >> 2] | 0) >>> 0 > (((c[Va >> 2] | 0) - (c[Ha >> 2] | 0)) | 0) >>> 0 ) c[Va >> 2] = (c[Ha >> 2] | 0) + (c[jb >> 2] | 0); c[Za >> 2] = c[jb >> 2]; c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3)) >> 2 ] = (c[Ca >> 2] | 0) - (c[Ha >> 2] | 0) + 2; c[ ((c[xa >> 2] | 0) + (c[Xa >> 2] << 3) + 4) >> 2 ] = c[jb >> 2]; c[Xa >> 2] = (c[Xa >> 2] | 0) + 1; if ((c[jb >> 2] | 0) >>> 0 > 4096) break; if ( (((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) | 0) == (c[ta >> 2] | 0) ) break; } Uh = c[Ha >> 2] | 0; if ( (d[ ((c[kb >> 2] | 0) + (c[jb >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[sa >> 2] | 0) + (c[jb >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Ta >> 2] >> 2] = Uh; c[La >> 2] = c[jb >> 2]; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Ra >> 2] | 0) >>> 0 ) { dj = 418; break; } c[Ta >> 2] = (c[ib >> 2] | 0) + 4; c[Ha >> 2] = c[((c[ib >> 2] | 0) + 4) >> 2]; } else { c[c[Ua >> 2] >> 2] = Uh; c[Ma >> 2] = c[jb >> 2]; if ( (c[Ha >> 2] | 0) >>> 0 <= (c[Ra >> 2] | 0) >>> 0 ) { dj = 421; break; } c[Ua >> 2] = c[ib >> 2]; c[Ha >> 2] = c[c[ib >> 2] >> 2]; } } if ((dj | 0) == 418) { dj = 0; c[Ta >> 2] = Wa; } else if ((dj | 0) == 421) { dj = 0; c[Ua >> 2] = Wa; } c[c[Ua >> 2] >> 2] = 0; c[c[Ta >> 2] >> 2] = 0; c[((c[qa >> 2] | 0) + 24) >> 2] = (c[Va >> 2] | 0) - 8; c[pa >> 2] = c[Xa >> 2]; } } while (0); c[md >> 2] = c[pa >> 2]; break d; break; } default: { Uh = c[od >> 2] | 0; aj = c[pd >> 2] | 0; _i = c[qd >> 2] | 0; _h = c[rd >> 2] | 0; Qh = c[sd >> 2] | 0; Ph = c[td >> 2] | 0; Zi = c[ud >> 2] | 0; Zh = c[vd >> 2] | 0; c[mb >> 2] = c[nd >> 2]; c[nb >> 2] = Uh; c[ob >> 2] = aj; c[pb >> 2] = _i; c[qb >> 2] = _h; c[rb >> 2] = Qh; c[sb >> 2] = Ph; c[tb >> 2] = Zi; c[ub >> 2] = Zh; c[vb >> 2] = 4; if ( (c[((c[nb >> 2] | 0) + 20) >> 2] | 0) >>> 0 < 4095 ) Aj = c[((c[nb >> 2] | 0) + 20) >> 2] | 0; else Aj = 4095; c[wb >> 2] = Aj; c[xb >> 2] = c[((c[mb >> 2] | 0) + 4) >> 2]; c[yb >> 2] = (c[ob >> 2] | 0) - (c[xb >> 2] | 0); c[zb >> 2] = c[((c[nb >> 2] | 0) + 8) >> 2]; c[Ab >> 2] = (c[vb >> 2] | 0) == 3 ? 3 : 4; c[Bb >> 2] = c[((c[mb >> 2] | 0) + 36) >> 2]; c[Cb >> 2] = Sj( c[ob >> 2] | 0, c[zb >> 2] | 0, c[vb >> 2] | 0 ) | 0; c[Db >> 2] = c[ ((c[Bb >> 2] | 0) + (c[Cb >> 2] << 2)) >> 2 ]; c[Eb >> 2] = c[((c[mb >> 2] | 0) + 44) >> 2]; c[Fb >> 2] = (c[((c[nb >> 2] | 0) + 4) >> 2] | 0) - 1; c[Gb >> 2] = (1 << c[Fb >> 2]) - 1; c[Hb >> 2] = 0; c[Ib >> 2] = 0; c[Jb >> 2] = c[((c[mb >> 2] | 0) + 8) >> 2]; c[Kb >> 2] = c[((c[mb >> 2] | 0) + 12) >> 2]; c[Lb >> 2] = (c[Jb >> 2] | 0) + (c[Kb >> 2] | 0); c[Mb >> 2] = (c[xb >> 2] | 0) + (c[Kb >> 2] | 0); if ( (c[Gb >> 2] | 0) >>> 0 >= (c[yb >> 2] | 0) >>> 0 ) Bj = 0; else Bj = ((c[yb >> 2] | 0) - (c[Gb >> 2] | 0)) | 0; c[Nb >> 2] = Bj; c[Ob >> 2] = c[((c[mb >> 2] | 0) + 16) >> 2]; c[Pb >> 2] = (c[Eb >> 2] | 0) + (((c[yb >> 2] & c[Gb >> 2]) << 1) << 2); c[Qb >> 2] = (c[Eb >> 2] | 0) + (((c[yb >> 2] & c[Gb >> 2]) << 1) << 2) + 4; c[Rb >> 2] = (c[yb >> 2] | 0) + 8 + 1; c[Tb >> 2] = 0; c[Ub >> 2] = 1 << c[((c[nb >> 2] | 0) + 12) >> 2]; c[Vb >> 2] = (c[ub >> 2] | 0) - 1; c[Wb >> 2] = 3 + (c[sb >> 2] | 0); c[Xb >> 2] = c[sb >> 2]; while (1) { if ( (c[Xb >> 2] | 0) >>> 0 >= (c[Wb >> 2] | 0) >>> 0 ) { dj = 340; break; } Zh = c[rb >> 2] | 0; if ((c[Xb >> 2] | 0) == 3) Cj = ((c[Zh >> 2] | 0) - 1) | 0; else Cj = c[(Zh + (c[Xb >> 2] << 2)) >> 2] | 0; c[Yb >> 2] = Cj; c[Zb >> 2] = (c[yb >> 2] | 0) - (c[Yb >> 2] | 0); c[_b >> 2] = 0; do { if ( (((c[Yb >> 2] | 0) - 1) | 0) >>> 0 < (((c[yb >> 2] | 0) - (c[Kb >> 2] | 0)) | 0) >>> 0 ) { Zh = mm( c[ob >> 2] | 0, c[Ab >> 2] | 0 ) | 0; if ( (Zh | 0) != (mm( ((c[ob >> 2] | 0) + (0 - (c[Yb >> 2] | 0))) | 0, c[Ab >> 2] | 0 ) | 0) ) break; Zh = Tj( ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0) + (0 - (c[Yb >> 2] | 0))) | 0, c[pb >> 2] | 0 ) | 0; c[_b >> 2] = Zh + (c[Ab >> 2] | 0); } else { c[$b >> 2] = (c[Jb >> 2] | 0) + (c[Zb >> 2] | 0); if (!(c[qb >> 2] | 0)) break; if ( !( ((((c[Kb >> 2] | 0) - 1 - (c[Zb >> 2] | 0)) | 0) >>> 0 >= 3 ? (((c[Yb >> 2] | 0) - 1) | 0) >>> 0 < (((c[yb >> 2] | 0) - (c[Ob >> 2] | 0)) | 0) >>> 0 : 0) | 0 ) ) break; Zh = mm( c[ob >> 2] | 0, c[Ab >> 2] | 0 ) | 0; if ( (Zh | 0) != (mm( c[$b >> 2] | 0, c[Ab >> 2] | 0 ) | 0) ) break; Zh = Uj( ((c[ob >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, ((c[$b >> 2] | 0) + (c[Ab >> 2] | 0)) | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; c[_b >> 2] = Zh + (c[Ab >> 2] | 0); } } while (0); if ( (c[_b >> 2] | 0) >>> 0 > (c[Vb >> 2] | 0) >>> 0 ? ((c[Vb >> 2] = c[_b >> 2]), (c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3)) >> 2 ] = (c[Xb >> 2] | 0) - (c[sb >> 2] | 0)), (c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3) + 4) >> 2 ] = c[_b >> 2]), (c[Tb >> 2] = (c[Tb >> 2] | 0) + 1), ((c[_b >> 2] | 0) >>> 0 > (c[wb >> 2] | 0) >>> 0 ? 1 : (((c[ob >> 2] | 0) + (c[_b >> 2] | 0)) | 0) == (c[pb >> 2] | 0)) | 0) : 0 ) { dj = 338; break; } c[Xb >> 2] = (c[Xb >> 2] | 0) + 1; } h: do { if ((dj | 0) == 338) { dj = 0; c[lb >> 2] = c[Tb >> 2]; } else if ((dj | 0) == 340) { dj = 0; do { if ((c[vb >> 2] | 0) == 3) { if ( (c[Vb >> 2] | 0) >>> 0 >= (c[vb >> 2] | 0) >>> 0 ) break; c[ac >> 2] = nm( c[mb >> 2] | 0, c[ob >> 2] | 0 ) | 0; if ( !( ((c[ac >> 2] | 0) >>> 0 > (c[Ob >> 2] | 0) >>> 0 ? (((c[yb >> 2] | 0) - (c[ac >> 2] | 0)) | 0) >>> 0 < 262144 : 0) | 0 ) ) break; do { if (c[qb >> 2] | 0) { if ( (c[ac >> 2] | 0) >>> 0 >= (c[Kb >> 2] | 0) >>> 0 ) { dj = 345; break; } c[dc >> 2] = (c[Jb >> 2] | 0) + (c[ac >> 2] | 0); c[bc >> 2] = Uj( c[ob >> 2] | 0, c[dc >> 2] | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; } else dj = 345; } while (0); if ((dj | 0) == 345) { dj = 0; c[cc >> 2] = (c[xb >> 2] | 0) + (c[ac >> 2] | 0); c[bc >> 2] = Tj( c[ob >> 2] | 0, c[cc >> 2] | 0, c[pb >> 2] | 0 ) | 0; } if ( (c[bc >> 2] | 0) >>> 0 < (c[vb >> 2] | 0) >>> 0 ) break; c[Vb >> 2] = c[bc >> 2]; c[c[tb >> 2] >> 2] = (c[yb >> 2] | 0) - (c[ac >> 2] | 0) + 2; c[((c[tb >> 2] | 0) + 4) >> 2] = c[bc >> 2]; c[Tb >> 2] = 1; if ( !( ((c[bc >> 2] | 0) >>> 0 > (c[wb >> 2] | 0) >>> 0 ? 1 : (((c[ob >> 2] | 0) + (c[bc >> 2] | 0)) | 0) == (c[pb >> 2] | 0)) | 0 ) ) break; c[((c[mb >> 2] | 0) + 24) >> 2] = (c[yb >> 2] | 0) + 1; c[lb >> 2] = 1; break h; } } while (0); c[ ((c[Bb >> 2] | 0) + (c[Cb >> 2] << 2)) >> 2 ] = c[yb >> 2]; while (1) { Zh = c[Ub >> 2] | 0; c[Ub >> 2] = Zh + -1; if (!Zh) break; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Ob >> 2] | 0) >>> 0 ) break; c[ec >> 2] = (c[Eb >> 2] | 0) + (((c[Db >> 2] & c[Gb >> 2]) << 1) << 2); c[fc >> 2] = (c[Hb >> 2] | 0) >>> 0 < (c[Ib >> 2] | 0) >>> 0 ? c[Hb >> 2] | 0 : c[Ib >> 2] | 0; do { if (c[qb >> 2] | 0) { if ( (((c[Db >> 2] | 0) + (c[fc >> 2] | 0)) | 0) >>> 0 >= (c[Kb >> 2] | 0) >>> 0 ) { dj = 355; break; } c[gc >> 2] = (c[Jb >> 2] | 0) + (c[Db >> 2] | 0); Zh = Uj( ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0, ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) | 0, c[pb >> 2] | 0, c[Lb >> 2] | 0, c[Mb >> 2] | 0 ) | 0; c[fc >> 2] = (c[fc >> 2] | 0) + Zh; if ( (((c[Db >> 2] | 0) + (c[fc >> 2] | 0)) | 0) >>> 0 < (c[Kb >> 2] | 0) >>> 0 ) break; c[gc >> 2] = (c[xb >> 2] | 0) + (c[Db >> 2] | 0); } else dj = 355; } while (0); if ((dj | 0) == 355) { dj = 0; c[gc >> 2] = (c[xb >> 2] | 0) + (c[Db >> 2] | 0); Zh = Tj( ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0, ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) | 0, c[pb >> 2] | 0 ) | 0; c[fc >> 2] = (c[fc >> 2] | 0) + Zh; } if ( (c[fc >> 2] | 0) >>> 0 > (c[Vb >> 2] | 0) >>> 0 ) { if ( (c[fc >> 2] | 0) >>> 0 > (((c[Rb >> 2] | 0) - (c[Db >> 2] | 0)) | 0) >>> 0 ) c[Rb >> 2] = (c[Db >> 2] | 0) + (c[fc >> 2] | 0); c[Vb >> 2] = c[fc >> 2]; c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3)) >> 2 ] = (c[yb >> 2] | 0) - (c[Db >> 2] | 0) + 2; c[ ((c[tb >> 2] | 0) + (c[Tb >> 2] << 3) + 4) >> 2 ] = c[fc >> 2]; c[Tb >> 2] = (c[Tb >> 2] | 0) + 1; if ((c[fc >> 2] | 0) >>> 0 > 4096) break; if ( (((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) | 0) == (c[pb >> 2] | 0) ) break; } Zh = c[Db >> 2] | 0; if ( (d[ ((c[gc >> 2] | 0) + (c[fc >> 2] | 0)) >> 0 ] | 0 | 0) < (d[ ((c[ob >> 2] | 0) + (c[fc >> 2] | 0)) >> 0 ] | 0 | 0) ) { c[c[Pb >> 2] >> 2] = Zh; c[Hb >> 2] = c[fc >> 2]; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Nb >> 2] | 0) >>> 0 ) { dj = 365; break; } c[Pb >> 2] = (c[ec >> 2] | 0) + 4; c[Db >> 2] = c[((c[ec >> 2] | 0) + 4) >> 2]; } else { c[c[Qb >> 2] >> 2] = Zh; c[Ib >> 2] = c[fc >> 2]; if ( (c[Db >> 2] | 0) >>> 0 <= (c[Nb >> 2] | 0) >>> 0 ) { dj = 368; break; } c[Qb >> 2] = c[ec >> 2]; c[Db >> 2] = c[c[ec >> 2] >> 2]; } } if ((dj | 0) == 365) { dj = 0; c[Pb >> 2] = Sb; } else if ((dj | 0) == 368) { dj = 0; c[Qb >> 2] = Sb; } c[c[Qb >> 2] >> 2] = 0; c[c[Pb >> 2] >> 2] = 0; c[((c[mb >> 2] | 0) + 24) >> 2] = (c[Rb >> 2] | 0) - 8; c[lb >> 2] = c[Tb >> 2]; } } while (0); c[md >> 2] = c[lb >> 2]; break d; } } } } while (0); c[Bi >> 2] = c[md >> 2]; if (c[Bi >> 2] | 0) { c[Di >> 2] = c[ ((c[ci >> 2] | 0) + (((c[Bi >> 2] | 0) - 1) << 3) + 4) >> 2 ]; if ( ((c[Di >> 2] | 0) >>> 0 > (c[$h >> 2] | 0) >>> 0 ? 1 : (((c[ei >> 2] | 0) + (c[Di >> 2] | 0)) | 0) >>> 0 >= 4096) | 0 ) { dj = 481; break b; } c[Ci >> 2] = 0; while (1) { if ( (c[Ci >> 2] | 0) >>> 0 >= (c[Bi >> 2] | 0) >>> 0 ) break c; c[Ei >> 2] = c[ ((c[ci >> 2] | 0) + (c[Ci >> 2] << 3)) >> 2 ]; pm( Fi, ((c[bi >> 2] | 0) + (((c[ei >> 2] | 0) * 28) | 0) + 16) | 0, c[Ei >> 2] | 0, c[xi >> 2] | 0 ); c[Gi >> 2] = c[ ((c[ci >> 2] | 0) + (c[Ci >> 2] << 3) + 4) >> 2 ]; if ((c[Ci >> 2] | 0) >>> 0 > 0) Dj = ((c[ ((c[ci >> 2] | 0) + (((c[Ci >> 2] | 0) - 1) << 3) + 4) >> 2 ] | 0) + 1) | 0; else Dj = c[ai >> 2] | 0; c[Hi >> 2] = Dj; c[Ii >> 2] = c[Gi >> 2]; i: while (1) { if ( (c[Ii >> 2] | 0) >>> 0 < (c[Hi >> 2] | 0) >>> 0 ) break; c[Ji >> 2] = (c[ei >> 2] | 0) + (c[Ii >> 2] | 0); Zh = c[Ai >> 2] | 0; Zi = c[Ii >> 2] | 0; Ph = c[Th >> 2] | 0; Qh = c[Rh >> 2] | 0; c[k >> 2] = c[Ei >> 2]; c[m >> 2] = Zi; c[n >> 2] = Ph; c[o >> 2] = Qh; c[q >> 2] = qm(((c[k >> 2] | 0) + 1) | 0) | 0; c[r >> 2] = (c[m >> 2] | 0) - 3; if (c[((c[n >> 2] | 0) + 56) >> 2] | 0) { Qh = ((qm(((c[r >> 2] | 0) + 1) | 0) | 0) + 16) | 0; c[j >> 2] = Qh + (c[q >> 2] | 0); } else { Qh = ((c[q >> 2] | 0) + (c[((c[n >> 2] | 0) + 52) >> 2] | 0)) | 0; c[p >> 2] = Qh - (qm( ((c[ ((c[((c[n >> 2] | 0) + 12) >> 2] | 0) + (c[q >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0); if ( ((c[o >> 2] | 0) < 2) & ((c[q >> 2] | 0) >>> 0 >= 20) ) c[p >> 2] = (c[p >> 2] | 0) + (((c[q >> 2] | 0) - 19) << 1); c[s >> 2] = rm(c[r >> 2] | 0) | 0; Qh = ((c[(5840 + (c[s >> 2] << 2)) >> 2] | 0) + (c[((c[n >> 2] | 0) + 48) >> 2] | 0)) | 0; Ph = (Qh - (qm( ((c[ ((c[((c[n >> 2] | 0) + 8) >> 2] | 0) + (c[s >> 2] << 2)) >> 2 ] | 0) + 1) | 0 ) | 0)) | 0; c[p >> 2] = (c[p >> 2] | 0) + Ph; c[j >> 2] = c[p >> 2]; } c[Ki >> 2] = Zh + (c[j >> 2] | 0); do { if ( (c[Ji >> 2] | 0) >>> 0 <= (c[fi >> 2] | 0) >>> 0 ) { if ( (c[Ki >> 2] | 0) < (c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0)) >> 2 ] | 0) ) { dj = 496; break; } if (!(c[Rh >> 2] | 0)) break i; } else dj = 496; } while (0); if ((dj | 0) == 496) { dj = 0; while (1) { if ( (c[fi >> 2] | 0) >>> 0 >= (c[Ji >> 2] | 0) >>> 0 ) break; c[ ((c[bi >> 2] | 0) + (((((c[fi >> 2] | 0) + 1) | 0) * 28) | 0)) >> 2 ] = 1073741824; c[fi >> 2] = (c[fi >> 2] | 0) + 1; } c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[Ii >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[Ei >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 12) >> 2 ] = c[yi >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0)) >> 2 ] = c[Ki >> 2]; Zh = ((c[bi >> 2] | 0) + (((c[Ji >> 2] | 0) * 28) | 0) + 16) | 0; c[Zh >> 2] = c[Fi >> 2]; c[(Zh + 4) >> 2] = c[(Fi + 4) >> 2]; c[(Zh + 8) >> 2] = c[(Fi + 8) >> 2]; } c[Ii >> 2] = (c[Ii >> 2] | 0) + -1; } c[Ci >> 2] = (c[Ci >> 2] | 0) + 1; } } } } while (0); c[ei >> 2] = (c[ei >> 2] | 0) + 1; } if ((dj | 0) == 481) { dj = 0; c[gi >> 2] = c[Di >> 2]; c[hi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[Bi >> 2] | 0) - 1) << 3)) >> 2 ]; c[fi >> 2] = (c[ei >> 2] | 0) + 1; break; } else if ((dj | 0) == 504) { dj = 0; c[gi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[fi >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[hi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[fi >> 2] | 0) * 28) | 0) + 4) >> 2 ]; c[ei >> 2] = (c[fi >> 2] | 0) - (c[gi >> 2] | 0); break; } } else { c[gi >> 2] = c[mi >> 2]; c[hi >> 2] = c[ ((c[ci >> 2] | 0) + (((c[ki >> 2] | 0) - 1) << 3)) >> 2 ]; c[ei >> 2] = 0; c[fi >> 2] = 1; } } while (0); c[Li >> 2] = c[gi >> 2]; c[Mi >> 2] = c[hi >> 2]; c[Ni >> 2] = c[ei >> 2]; while (1) { c[Oi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[Pi >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 4) >> 2 ]; c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 8) >> 2 ] = c[Li >> 2]; c[ ((c[bi >> 2] | 0) + (((c[Ni >> 2] | 0) * 28) | 0) + 4) >> 2 ] = c[Mi >> 2]; c[Li >> 2] = c[Oi >> 2]; c[Mi >> 2] = c[Pi >> 2]; if ((c[Oi >> 2] | 0) >>> 0 > (c[Ni >> 2] | 0) >>> 0) break; c[Ni >> 2] = (c[Ni >> 2] | 0) - (c[Oi >> 2] | 0); } c[Qi >> 2] = 0; while (1) { if ((c[Qi >> 2] | 0) >>> 0 >= (c[fi >> 2] | 0) >>> 0) break; c[Ri >> 2] = (c[Vh >> 2] | 0) - (c[Wh >> 2] | 0); c[Si >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Qi >> 2] | 0) * 28) | 0) + 8) >> 2 ]; c[Ti >> 2] = c[ ((c[bi >> 2] | 0) + (((c[Qi >> 2] | 0) * 28) | 0) + 4) >> 2 ]; if ((c[Si >> 2] | 0) == 1) { c[Vh >> 2] = (c[Vh >> 2] | 0) + 1; c[Qi >> 2] = (c[Qi >> 2] | 0) + 1; continue; } c[Qi >> 2] = (c[Qi >> 2] | 0) + (c[Si >> 2] | 0); c[Vh >> 2] = (c[Vh >> 2] | 0) + (c[Si >> 2] | 0); if ((c[Ti >> 2] | 0) >>> 0 < 3) { c[Ui >> 2] = (c[Ti >> 2] | 0) + (((c[Ri >> 2] | 0) == 0) & 1); if (c[Ui >> 2] | 0) { Zh = c[Nh >> 2] | 0; if ((c[Ui >> 2] | 0) == 3) Ej = ((c[Zh >> 2] | 0) - 1) | 0; else Ej = c[(Zh + (c[Ui >> 2] << 2)) >> 2] | 0; c[Vi >> 2] = Ej; if ((c[Ui >> 2] | 0) >>> 0 >= 2) c[((c[Nh >> 2] | 0) + 8) >> 2] = c[((c[Nh >> 2] | 0) + 4) >> 2]; c[((c[Nh >> 2] | 0) + 4) >> 2] = c[c[Nh >> 2] >> 2]; c[c[Nh >> 2] >> 2] = c[Vi >> 2]; } } else { c[((c[Nh >> 2] | 0) + 8) >> 2] = c[((c[Nh >> 2] | 0) + 4) >> 2]; c[((c[Nh >> 2] | 0) + 4) >> 2] = c[c[Nh >> 2] >> 2]; c[c[Nh >> 2] >> 2] = (c[Ti >> 2] | 0) - 2; } vm( c[Th >> 2] | 0, c[Ri >> 2] | 0, c[Wh >> 2] | 0, c[Ti >> 2] | 0, c[Si >> 2] | 0 ); wm( c[Mh >> 2] | 0, c[Ri >> 2] | 0, c[Wh >> 2] | 0, c[Ti >> 2] | 0, ((c[Si >> 2] | 0) - 3) | 0 ); c[Wh >> 2] = c[Vh >> 2]; } xm(c[Th >> 2] | 0); } l = i; return ((c[Xh >> 2] | 0) - (c[Wh >> 2] | 0)) | 0; } function dm(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; h = l; l = (l + 48) | 0; i = (h + 36) | 0; j = (h + 32) | 0; k = (h + 28) | 0; m = (h + 24) | 0; n = (h + 20) | 0; o = (h + 16) | 0; p = (h + 12) | 0; q = (h + 8) | 0; r = (h + 4) | 0; s = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = c[((c[n >> 2] | 0) + 8) >> 2]; c[r >> 2] = c[((c[n >> 2] | 0) + 16) >> 2]; c[s >> 2] = c[((c[n >> 2] | 0) + 20) >> 2]; switch (c[r >> 2] | 0) { case 7: { c[i >> 2] = hn( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, c[s >> 2] | 0, 7 ) | 0; t = c[i >> 2] | 0; l = h; return t | 0; } case 5: { c[i >> 2] = hn( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, c[s >> 2] | 0, 5 ) | 0; t = c[i >> 2] | 0; l = h; return t | 0; } case 6: { c[i >> 2] = hn( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, c[s >> 2] | 0, 6 ) | 0; t = c[i >> 2] | 0; l = h; return t | 0; } default: { c[i >> 2] = hn( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, c[q >> 2] | 0, c[s >> 2] | 0, 4 ) | 0; t = c[i >> 2] | 0; l = h; return t | 0; } } return 0; } function em(a, b, d, e, f, g) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; h = l; l = (l + 32) | 0; i = (h + 28) | 0; j = (h + 24) | 0; k = (h + 20) | 0; m = (h + 16) | 0; n = (h + 12) | 0; o = (h + 8) | 0; p = (h + 4) | 0; q = h; c[j >> 2] = a; c[k >> 2] = b; c[m >> 2] = d; c[n >> 2] = e; c[o >> 2] = f; c[p >> 2] = g; c[q >> 2] = c[((c[n >> 2] | 0) + 16) >> 2]; switch (c[q >> 2] | 0) { case 7: { c[i >> 2] = Zm( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, 7 ) | 0; r = c[i >> 2] | 0; l = h; return r | 0; } case 5: { c[i >> 2] = Zm( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, 5 ) | 0; r = c[i >> 2] | 0; l = h; return r | 0; } case 6: { c[i >> 2] = Zm( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, 6 ) | 0; r = c[i >> 2] | 0; l = h; return r | 0; } default: { c[i >> 2] = Zm( c[j >> 2] | 0, c[k >> 2] | 0, c[m >> 2] | 0, c[n >> 2] | 0, c[o >> 2] | 0, c[p >> 2] | 0, 4 ) | 0; r = c[i >> 2] | 0; l = h; return r | 0; } } return 0; } function fm(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0; i = l; l = (l + 288) | 0; j = (i + 272) | 0; k = (i + 268) | 0; m = (i + 264) | 0; n = (i + 260) | 0; o = (i + 256) | 0; p = (i + 252) | 0; q = (i + 248) | 0; r = (i + 244) | 0; s = (i + 240) | 0; t = (i + 236) | 0; u = (i + 232) | 0; v = (i + 228) | 0; w = (i + 224) | 0; x = (i + 220) | 0; y = (i + 216) | 0; z = (i + 212) | 0; A = (i + 208) | 0; B = (i + 204) | 0; C = (i + 200) | 0; D = (i + 196) | 0; E = (i + 192) | 0; F = (i + 188) | 0; G = (i + 184) | 0; H = (i + 180) | 0; I = (i + 176) | 0; J = (i + 172) | 0; K = (i + 168) | 0; L = (i + 164) | 0; M = (i + 160) | 0; N = (i + 156) | 0; O = (i + 152) | 0; P = (i + 148) | 0; Q = (i + 144) | 0; R = (i + 140) | 0; S = (i + 136) | 0; T = (i + 132) | 0; U = (i + 128) | 0; V = (i + 124) | 0; W = (i + 120) | 0; X = (i + 116) | 0; Y = (i + 112) | 0; Z = (i + 108) | 0; _ = (i + 104) | 0; $ = (i + 100) | 0; aa = (i + 96) | 0; ba = (i + 92) | 0; ca = (i + 88) | 0; da = (i + 84) | 0; ea = (i + 80) | 0; fa = (i + 76) | 0; ga = (i + 72) | 0; ha = (i + 68) | 0; ia = (i + 64) | 0; ja = (i + 60) | 0; ka = (i + 56) | 0; la = (i + 52) | 0; ma = (i + 48) | 0; na = (i + 44) | 0; oa = (i + 40) | 0; pa = (i + 36) | 0; qa = (i + 32) | 0; ra = (i + 28) | 0; sa = (i + 24) | 0; ta = (i + 20) | 0; ua = (i + 16) | 0; va = (i + 12) | 0; wa = (i + 8) | 0; xa = (i + 4) | 0; ya = i; c[ta >> 2] = a; c[ua >> 2] = b; c[va >> 2] = e; c[wa >> 2] = f; c[xa >> 2] = g; c[ya >> 2] = h; h = c[ua >> 2] | 0; ua = c[va >> 2] | 0; va = c[wa >> 2] | 0; wa = c[xa >> 2] | 0; xa = c[ya >> 2] | 0; c[j >> 2] = c[ta >> 2]; c[k >> 2] = h; c[m >> 2] = ua; c[n >> 2] = va; c[o >> 2] = wa; c[p >> 2] = xa; c[q >> 2] = 0; c[r >> 2] = 0; c[s >> 2] = c[o >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = c[s >> 2]; c[v >> 2] = (c[s >> 2] | 0) + (c[p >> 2] | 0); c[w >> 2] = (c[v >> 2] | 0) + -8; c[x >> 2] = c[((c[j >> 2] | 0) + 4) >> 2]; c[y >> 2] = c[((c[j >> 2] | 0) + 12) >> 2]; c[z >> 2] = c[((c[j >> 2] | 0) + 16) >> 2]; c[A >> 2] = (c[x >> 2] | 0) + (c[y >> 2] | 0); c[B >> 2] = c[((c[j >> 2] | 0) + 8) >> 2]; c[C >> 2] = (c[B >> 2] | 0) + (c[y >> 2] | 0); c[D >> 2] = (c[B >> 2] | 0) + (c[z >> 2] | 0); c[E >> 2] = c[q >> 2] | 0 ? 7 : 6; c[F >> 2] = c[c[m >> 2] >> 2]; c[G >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[((c[j >> 2] | 0) + 28) >> 2] = c[((c[j >> 2] | 0) + 24) >> 2]; c[t >> 2] = (c[t >> 2] | 0) + (((c[t >> 2] | 0) == (c[A >> 2] | 0)) & 1); while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[H >> 2] = 0; c[I >> 2] = 0; c[J >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); c[L >> 2] = (c[K >> 2] | 0) + 1 - (c[F >> 2] | 0); c[M >> 2] = (c[L >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0; c[N >> 2] = (c[M >> 2] | 0) + (c[L >> 2] | 0); if ( !(( ((c[L >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[L >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ? ((q = Bk(((c[t >> 2] | 0) + 1) | 0) | 0), (q | 0) == (Bk(c[N >> 2] | 0) | 0)) : 0 ) ? ((c[O >> 2] = (c[L >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[H >> 2] = (Lm( ((c[t >> 2] | 0) + 1 + 4) | 0, ((c[N >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[O >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), !(c[r >> 2] | 0)) : 0) ) { c[P >> 2] = 99999999; c[Q >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, P ) | 0; if ((c[Q >> 2] | 0) >>> 0 > (c[H >> 2] | 0) >>> 0) { c[H >> 2] = c[Q >> 2]; c[J >> 2] = c[t >> 2]; c[I >> 2] = c[P >> 2]; } if ((c[H >> 2] | 0) >>> 0 < 4) { c[t >> 2] = (c[t >> 2] | 0) + ((((c[t >> 2] | 0) - (c[u >> 2] | 0)) >> 8) + 1); continue; } a: do { if ((c[r >> 2] | 0) >>> 0 >= 1) while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[K >> 2] | 0) + 1; if ( ( ( ( c[I >> 2] | 0 ? ((c[R >> 2] = (c[K >> 2] | 0) - (c[F >> 2] | 0)), (c[S >> 2] = (c[R >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0), (c[T >> 2] = (c[S >> 2] | 0) + (c[R >> 2] | 0)), ((c[R >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[R >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0) : 0 ) ? ((q = Bk(c[t >> 2] | 0) | 0), (q | 0) == (Bk(c[T >> 2] | 0) | 0)) : 0 ) ? ((c[U >> 2] = (c[R >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[V >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[T >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[U >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), (c[W >> 2] = (c[V >> 2] | 0) * 3), (q = ((c[H >> 2] | 0) * 3) | 0), (c[X >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 1), (c[V >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[W >> 2] | 0) > (c[X >> 2] | 0) : 0 ) { c[H >> 2] = c[V >> 2]; c[I >> 2] = 0; c[J >> 2] = c[t >> 2]; } c[Y >> 2] = 99999999; c[Z >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, Y ) | 0; q = c[Z >> 2] << 2; c[_ >> 2] = q - (Mm(((c[Y >> 2] | 0) + 1) | 0) | 0); q = c[H >> 2] << 2; c[$ >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 4; if ( (c[Z >> 2] | 0) >>> 0 >= 4 ? (c[_ >> 2] | 0) > (c[$ >> 2] | 0) : 0 ) { c[H >> 2] = c[Z >> 2]; c[I >> 2] = c[Y >> 2]; c[J >> 2] = c[t >> 2]; continue; } if ((c[r >> 2] | 0) != 2) break a; if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[K >> 2] | 0) + 1; if ( ( ( ( c[I >> 2] | 0 ? ((c[aa >> 2] = (c[K >> 2] | 0) - (c[F >> 2] | 0)), (c[ba >> 2] = (c[aa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0), (c[ca >> 2] = (c[ba >> 2] | 0) + (c[aa >> 2] | 0)), ((c[aa >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[aa >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0) : 0 ) ? ((q = Bk(c[t >> 2] | 0) | 0), (q | 0) == (Bk(c[ca >> 2] | 0) | 0)) : 0 ) ? ((c[da >> 2] = (c[aa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[ea >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[ca >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[da >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), (c[fa >> 2] = c[ea >> 2] << 2), (q = c[H >> 2] << 2), (c[ga >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 1), (c[ea >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[fa >> 2] | 0) > (c[ga >> 2] | 0) : 0 ) { c[H >> 2] = c[ea >> 2]; c[I >> 2] = 0; c[J >> 2] = c[t >> 2]; } c[ha >> 2] = 99999999; c[ia >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, ha ) | 0; q = c[ia >> 2] << 2; c[ja >> 2] = q - (Mm(((c[ha >> 2] | 0) + 1) | 0) | 0); q = c[H >> 2] << 2; c[ka >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 7; if ((c[ia >> 2] | 0) >>> 0 < 4) break a; if ((c[ja >> 2] | 0) <= (c[ka >> 2] | 0)) break a; c[H >> 2] = c[ia >> 2]; c[I >> 2] = c[ha >> 2]; c[J >> 2] = c[t >> 2]; } } while (0); if (c[I >> 2] | 0) { c[la >> 2] = (c[J >> 2] | 0) - (c[x >> 2] | 0) - ((c[I >> 2] | 0) - 2); c[ma >> 2] = (c[la >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? ((c[B >> 2] | 0) + (c[la >> 2] | 0)) | 0 : ((c[x >> 2] | 0) + (c[la >> 2] | 0)) | 0; c[na >> 2] = (c[la >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[D >> 2] | 0 : c[A >> 2] | 0; while (1) { if ((c[J >> 2] | 0) >>> 0 <= (c[u >> 2] | 0) >>> 0) break; if ((c[ma >> 2] | 0) >>> 0 <= (c[na >> 2] | 0) >>> 0) break; if ( (d[((c[J >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[ma >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[J >> 2] = (c[J >> 2] | 0) + -1; c[ma >> 2] = (c[ma >> 2] | 0) + -1; c[H >> 2] = (c[H >> 2] | 0) + 1; } c[G >> 2] = c[F >> 2]; c[F >> 2] = (c[I >> 2] | 0) - 2; } } c[oa >> 2] = (c[J >> 2] | 0) - (c[u >> 2] | 0); Nm( c[k >> 2] | 0, c[oa >> 2] | 0, c[u >> 2] | 0, c[I >> 2] | 0, ((c[H >> 2] | 0) - 3) | 0 ); q = ((c[J >> 2] | 0) + (c[H >> 2] | 0)) | 0; c[t >> 2] = q; c[u >> 2] = q; while (1) { if ((c[t >> 2] | 0) >>> 0 > (c[w >> 2] | 0) >>> 0) break; c[pa >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0) - (c[G >> 2] | 0); c[qa >> 2] = (c[pa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0; c[ra >> 2] = (c[qa >> 2] | 0) + (c[pa >> 2] | 0); if ( !( ((c[pa >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[pa >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ) ) break; q = Bk(c[t >> 2] | 0) | 0; if ((q | 0) != (Bk(c[ra >> 2] | 0) | 0)) break; c[sa >> 2] = (c[pa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0; c[H >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[ra >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[sa >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4; c[I >> 2] = c[G >> 2]; c[G >> 2] = c[F >> 2]; c[F >> 2] = c[I >> 2]; Nm( c[k >> 2] | 0, 0, c[u >> 2] | 0, 0, ((c[H >> 2] | 0) - 3) | 0 ); c[t >> 2] = (c[t >> 2] | 0) + (c[H >> 2] | 0); c[u >> 2] = c[t >> 2]; } } c[c[m >> 2] >> 2] = c[F >> 2]; c[((c[m >> 2] | 0) + 4) >> 2] = c[G >> 2]; l = i; return ((c[v >> 2] | 0) - (c[u >> 2] | 0)) | 0; } function gm(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0; i = l; l = (l + 288) | 0; j = (i + 272) | 0; k = (i + 268) | 0; m = (i + 264) | 0; n = (i + 260) | 0; o = (i + 256) | 0; p = (i + 252) | 0; q = (i + 248) | 0; r = (i + 244) | 0; s = (i + 240) | 0; t = (i + 236) | 0; u = (i + 232) | 0; v = (i + 228) | 0; w = (i + 224) | 0; x = (i + 220) | 0; y = (i + 216) | 0; z = (i + 212) | 0; A = (i + 208) | 0; B = (i + 204) | 0; C = (i + 200) | 0; D = (i + 196) | 0; E = (i + 192) | 0; F = (i + 188) | 0; G = (i + 184) | 0; H = (i + 180) | 0; I = (i + 176) | 0; J = (i + 172) | 0; K = (i + 168) | 0; L = (i + 164) | 0; M = (i + 160) | 0; N = (i + 156) | 0; O = (i + 152) | 0; P = (i + 148) | 0; Q = (i + 144) | 0; R = (i + 140) | 0; S = (i + 136) | 0; T = (i + 132) | 0; U = (i + 128) | 0; V = (i + 124) | 0; W = (i + 120) | 0; X = (i + 116) | 0; Y = (i + 112) | 0; Z = (i + 108) | 0; _ = (i + 104) | 0; $ = (i + 100) | 0; aa = (i + 96) | 0; ba = (i + 92) | 0; ca = (i + 88) | 0; da = (i + 84) | 0; ea = (i + 80) | 0; fa = (i + 76) | 0; ga = (i + 72) | 0; ha = (i + 68) | 0; ia = (i + 64) | 0; ja = (i + 60) | 0; ka = (i + 56) | 0; la = (i + 52) | 0; ma = (i + 48) | 0; na = (i + 44) | 0; oa = (i + 40) | 0; pa = (i + 36) | 0; qa = (i + 32) | 0; ra = (i + 28) | 0; sa = (i + 24) | 0; ta = (i + 20) | 0; ua = (i + 16) | 0; va = (i + 12) | 0; wa = (i + 8) | 0; xa = (i + 4) | 0; ya = i; c[ta >> 2] = a; c[ua >> 2] = b; c[va >> 2] = e; c[wa >> 2] = f; c[xa >> 2] = g; c[ya >> 2] = h; h = c[ua >> 2] | 0; ua = c[va >> 2] | 0; va = c[wa >> 2] | 0; wa = c[xa >> 2] | 0; xa = c[ya >> 2] | 0; c[j >> 2] = c[ta >> 2]; c[k >> 2] = h; c[m >> 2] = ua; c[n >> 2] = va; c[o >> 2] = wa; c[p >> 2] = xa; c[q >> 2] = 0; c[r >> 2] = 1; c[s >> 2] = c[o >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = c[s >> 2]; c[v >> 2] = (c[s >> 2] | 0) + (c[p >> 2] | 0); c[w >> 2] = (c[v >> 2] | 0) + -8; c[x >> 2] = c[((c[j >> 2] | 0) + 4) >> 2]; c[y >> 2] = c[((c[j >> 2] | 0) + 12) >> 2]; c[z >> 2] = c[((c[j >> 2] | 0) + 16) >> 2]; c[A >> 2] = (c[x >> 2] | 0) + (c[y >> 2] | 0); c[B >> 2] = c[((c[j >> 2] | 0) + 8) >> 2]; c[C >> 2] = (c[B >> 2] | 0) + (c[y >> 2] | 0); c[D >> 2] = (c[B >> 2] | 0) + (c[z >> 2] | 0); c[E >> 2] = c[q >> 2] | 0 ? 7 : 6; c[F >> 2] = c[c[m >> 2] >> 2]; c[G >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[((c[j >> 2] | 0) + 28) >> 2] = c[((c[j >> 2] | 0) + 24) >> 2]; c[t >> 2] = (c[t >> 2] | 0) + (((c[t >> 2] | 0) == (c[A >> 2] | 0)) & 1); while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[H >> 2] = 0; c[I >> 2] = 0; c[J >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); c[L >> 2] = (c[K >> 2] | 0) + 1 - (c[F >> 2] | 0); c[M >> 2] = (c[L >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0; c[N >> 2] = (c[M >> 2] | 0) + (c[L >> 2] | 0); if ( !(( ((c[L >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[L >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ? ((q = Bk(((c[t >> 2] | 0) + 1) | 0) | 0), (q | 0) == (Bk(c[N >> 2] | 0) | 0)) : 0 ) ? ((c[O >> 2] = (c[L >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[H >> 2] = (Lm( ((c[t >> 2] | 0) + 1 + 4) | 0, ((c[N >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[O >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), !(c[r >> 2] | 0)) : 0) ) { c[P >> 2] = 99999999; c[Q >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, P ) | 0; if ((c[Q >> 2] | 0) >>> 0 > (c[H >> 2] | 0) >>> 0) { c[H >> 2] = c[Q >> 2]; c[J >> 2] = c[t >> 2]; c[I >> 2] = c[P >> 2]; } if ((c[H >> 2] | 0) >>> 0 < 4) { c[t >> 2] = (c[t >> 2] | 0) + ((((c[t >> 2] | 0) - (c[u >> 2] | 0)) >> 8) + 1); continue; } a: do { if ((c[r >> 2] | 0) >>> 0 >= 1) while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[K >> 2] | 0) + 1; if ( ( ( ( c[I >> 2] | 0 ? ((c[R >> 2] = (c[K >> 2] | 0) - (c[F >> 2] | 0)), (c[S >> 2] = (c[R >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0), (c[T >> 2] = (c[S >> 2] | 0) + (c[R >> 2] | 0)), ((c[R >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[R >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0) : 0 ) ? ((q = Bk(c[t >> 2] | 0) | 0), (q | 0) == (Bk(c[T >> 2] | 0) | 0)) : 0 ) ? ((c[U >> 2] = (c[R >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[V >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[T >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[U >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), (c[W >> 2] = (c[V >> 2] | 0) * 3), (q = ((c[H >> 2] | 0) * 3) | 0), (c[X >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 1), (c[V >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[W >> 2] | 0) > (c[X >> 2] | 0) : 0 ) { c[H >> 2] = c[V >> 2]; c[I >> 2] = 0; c[J >> 2] = c[t >> 2]; } c[Y >> 2] = 99999999; c[Z >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, Y ) | 0; q = c[Z >> 2] << 2; c[_ >> 2] = q - (Mm(((c[Y >> 2] | 0) + 1) | 0) | 0); q = c[H >> 2] << 2; c[$ >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 4; if ( (c[Z >> 2] | 0) >>> 0 >= 4 ? (c[_ >> 2] | 0) > (c[$ >> 2] | 0) : 0 ) { c[H >> 2] = c[Z >> 2]; c[I >> 2] = c[Y >> 2]; c[J >> 2] = c[t >> 2]; continue; } if ((c[r >> 2] | 0) != 2) break a; if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[K >> 2] | 0) + 1; if ( ( ( ( c[I >> 2] | 0 ? ((c[aa >> 2] = (c[K >> 2] | 0) - (c[F >> 2] | 0)), (c[ba >> 2] = (c[aa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0), (c[ca >> 2] = (c[ba >> 2] | 0) + (c[aa >> 2] | 0)), ((c[aa >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[aa >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0) : 0 ) ? ((q = Bk(c[t >> 2] | 0) | 0), (q | 0) == (Bk(c[ca >> 2] | 0) | 0)) : 0 ) ? ((c[da >> 2] = (c[aa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[ea >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[ca >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[da >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), (c[fa >> 2] = c[ea >> 2] << 2), (q = c[H >> 2] << 2), (c[ga >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 1), (c[ea >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[fa >> 2] | 0) > (c[ga >> 2] | 0) : 0 ) { c[H >> 2] = c[ea >> 2]; c[I >> 2] = 0; c[J >> 2] = c[t >> 2]; } c[ha >> 2] = 99999999; c[ia >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, ha ) | 0; q = c[ia >> 2] << 2; c[ja >> 2] = q - (Mm(((c[ha >> 2] | 0) + 1) | 0) | 0); q = c[H >> 2] << 2; c[ka >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 7; if ((c[ia >> 2] | 0) >>> 0 < 4) break a; if ((c[ja >> 2] | 0) <= (c[ka >> 2] | 0)) break a; c[H >> 2] = c[ia >> 2]; c[I >> 2] = c[ha >> 2]; c[J >> 2] = c[t >> 2]; } } while (0); if (c[I >> 2] | 0) { c[la >> 2] = (c[J >> 2] | 0) - (c[x >> 2] | 0) - ((c[I >> 2] | 0) - 2); c[ma >> 2] = (c[la >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? ((c[B >> 2] | 0) + (c[la >> 2] | 0)) | 0 : ((c[x >> 2] | 0) + (c[la >> 2] | 0)) | 0; c[na >> 2] = (c[la >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[D >> 2] | 0 : c[A >> 2] | 0; while (1) { if ((c[J >> 2] | 0) >>> 0 <= (c[u >> 2] | 0) >>> 0) break; if ((c[ma >> 2] | 0) >>> 0 <= (c[na >> 2] | 0) >>> 0) break; if ( (d[((c[J >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[ma >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[J >> 2] = (c[J >> 2] | 0) + -1; c[ma >> 2] = (c[ma >> 2] | 0) + -1; c[H >> 2] = (c[H >> 2] | 0) + 1; } c[G >> 2] = c[F >> 2]; c[F >> 2] = (c[I >> 2] | 0) - 2; } } c[oa >> 2] = (c[J >> 2] | 0) - (c[u >> 2] | 0); Nm( c[k >> 2] | 0, c[oa >> 2] | 0, c[u >> 2] | 0, c[I >> 2] | 0, ((c[H >> 2] | 0) - 3) | 0 ); q = ((c[J >> 2] | 0) + (c[H >> 2] | 0)) | 0; c[t >> 2] = q; c[u >> 2] = q; while (1) { if ((c[t >> 2] | 0) >>> 0 > (c[w >> 2] | 0) >>> 0) break; c[pa >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0) - (c[G >> 2] | 0); c[qa >> 2] = (c[pa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0; c[ra >> 2] = (c[qa >> 2] | 0) + (c[pa >> 2] | 0); if ( !( ((c[pa >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[pa >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ) ) break; q = Bk(c[t >> 2] | 0) | 0; if ((q | 0) != (Bk(c[ra >> 2] | 0) | 0)) break; c[sa >> 2] = (c[pa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0; c[H >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[ra >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[sa >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4; c[I >> 2] = c[G >> 2]; c[G >> 2] = c[F >> 2]; c[F >> 2] = c[I >> 2]; Nm( c[k >> 2] | 0, 0, c[u >> 2] | 0, 0, ((c[H >> 2] | 0) - 3) | 0 ); c[t >> 2] = (c[t >> 2] | 0) + (c[H >> 2] | 0); c[u >> 2] = c[t >> 2]; } } c[c[m >> 2] >> 2] = c[F >> 2]; c[((c[m >> 2] | 0) + 4) >> 2] = c[G >> 2]; l = i; return ((c[v >> 2] | 0) - (c[u >> 2] | 0)) | 0; } function hm(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0; i = l; l = (l + 288) | 0; j = (i + 272) | 0; k = (i + 268) | 0; m = (i + 264) | 0; n = (i + 260) | 0; o = (i + 256) | 0; p = (i + 252) | 0; q = (i + 248) | 0; r = (i + 244) | 0; s = (i + 240) | 0; t = (i + 236) | 0; u = (i + 232) | 0; v = (i + 228) | 0; w = (i + 224) | 0; x = (i + 220) | 0; y = (i + 216) | 0; z = (i + 212) | 0; A = (i + 208) | 0; B = (i + 204) | 0; C = (i + 200) | 0; D = (i + 196) | 0; E = (i + 192) | 0; F = (i + 188) | 0; G = (i + 184) | 0; H = (i + 180) | 0; I = (i + 176) | 0; J = (i + 172) | 0; K = (i + 168) | 0; L = (i + 164) | 0; M = (i + 160) | 0; N = (i + 156) | 0; O = (i + 152) | 0; P = (i + 148) | 0; Q = (i + 144) | 0; R = (i + 140) | 0; S = (i + 136) | 0; T = (i + 132) | 0; U = (i + 128) | 0; V = (i + 124) | 0; W = (i + 120) | 0; X = (i + 116) | 0; Y = (i + 112) | 0; Z = (i + 108) | 0; _ = (i + 104) | 0; $ = (i + 100) | 0; aa = (i + 96) | 0; ba = (i + 92) | 0; ca = (i + 88) | 0; da = (i + 84) | 0; ea = (i + 80) | 0; fa = (i + 76) | 0; ga = (i + 72) | 0; ha = (i + 68) | 0; ia = (i + 64) | 0; ja = (i + 60) | 0; ka = (i + 56) | 0; la = (i + 52) | 0; ma = (i + 48) | 0; na = (i + 44) | 0; oa = (i + 40) | 0; pa = (i + 36) | 0; qa = (i + 32) | 0; ra = (i + 28) | 0; sa = (i + 24) | 0; ta = (i + 20) | 0; ua = (i + 16) | 0; va = (i + 12) | 0; wa = (i + 8) | 0; xa = (i + 4) | 0; ya = i; c[ta >> 2] = a; c[ua >> 2] = b; c[va >> 2] = e; c[wa >> 2] = f; c[xa >> 2] = g; c[ya >> 2] = h; h = c[ua >> 2] | 0; ua = c[va >> 2] | 0; va = c[wa >> 2] | 0; wa = c[xa >> 2] | 0; xa = c[ya >> 2] | 0; c[j >> 2] = c[ta >> 2]; c[k >> 2] = h; c[m >> 2] = ua; c[n >> 2] = va; c[o >> 2] = wa; c[p >> 2] = xa; c[q >> 2] = 0; c[r >> 2] = 2; c[s >> 2] = c[o >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = c[s >> 2]; c[v >> 2] = (c[s >> 2] | 0) + (c[p >> 2] | 0); c[w >> 2] = (c[v >> 2] | 0) + -8; c[x >> 2] = c[((c[j >> 2] | 0) + 4) >> 2]; c[y >> 2] = c[((c[j >> 2] | 0) + 12) >> 2]; c[z >> 2] = c[((c[j >> 2] | 0) + 16) >> 2]; c[A >> 2] = (c[x >> 2] | 0) + (c[y >> 2] | 0); c[B >> 2] = c[((c[j >> 2] | 0) + 8) >> 2]; c[C >> 2] = (c[B >> 2] | 0) + (c[y >> 2] | 0); c[D >> 2] = (c[B >> 2] | 0) + (c[z >> 2] | 0); c[E >> 2] = c[q >> 2] | 0 ? 7 : 6; c[F >> 2] = c[c[m >> 2] >> 2]; c[G >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[((c[j >> 2] | 0) + 28) >> 2] = c[((c[j >> 2] | 0) + 24) >> 2]; c[t >> 2] = (c[t >> 2] | 0) + (((c[t >> 2] | 0) == (c[A >> 2] | 0)) & 1); while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[H >> 2] = 0; c[I >> 2] = 0; c[J >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); c[L >> 2] = (c[K >> 2] | 0) + 1 - (c[F >> 2] | 0); c[M >> 2] = (c[L >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0; c[N >> 2] = (c[M >> 2] | 0) + (c[L >> 2] | 0); if ( !(( ((c[L >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[L >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ? ((q = Bk(((c[t >> 2] | 0) + 1) | 0) | 0), (q | 0) == (Bk(c[N >> 2] | 0) | 0)) : 0 ) ? ((c[O >> 2] = (c[L >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[H >> 2] = (Lm( ((c[t >> 2] | 0) + 1 + 4) | 0, ((c[N >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[O >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), !(c[r >> 2] | 0)) : 0) ) { c[P >> 2] = 99999999; c[Q >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, P ) | 0; if ((c[Q >> 2] | 0) >>> 0 > (c[H >> 2] | 0) >>> 0) { c[H >> 2] = c[Q >> 2]; c[J >> 2] = c[t >> 2]; c[I >> 2] = c[P >> 2]; } if ((c[H >> 2] | 0) >>> 0 < 4) { c[t >> 2] = (c[t >> 2] | 0) + ((((c[t >> 2] | 0) - (c[u >> 2] | 0)) >> 8) + 1); continue; } a: do { if ((c[r >> 2] | 0) >>> 0 >= 1) while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[K >> 2] | 0) + 1; if ( ( ( ( c[I >> 2] | 0 ? ((c[R >> 2] = (c[K >> 2] | 0) - (c[F >> 2] | 0)), (c[S >> 2] = (c[R >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0), (c[T >> 2] = (c[S >> 2] | 0) + (c[R >> 2] | 0)), ((c[R >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[R >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0) : 0 ) ? ((q = Bk(c[t >> 2] | 0) | 0), (q | 0) == (Bk(c[T >> 2] | 0) | 0)) : 0 ) ? ((c[U >> 2] = (c[R >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[V >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[T >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[U >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), (c[W >> 2] = (c[V >> 2] | 0) * 3), (q = ((c[H >> 2] | 0) * 3) | 0), (c[X >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 1), (c[V >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[W >> 2] | 0) > (c[X >> 2] | 0) : 0 ) { c[H >> 2] = c[V >> 2]; c[I >> 2] = 0; c[J >> 2] = c[t >> 2]; } c[Y >> 2] = 99999999; c[Z >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, Y ) | 0; q = c[Z >> 2] << 2; c[_ >> 2] = q - (Mm(((c[Y >> 2] | 0) + 1) | 0) | 0); q = c[H >> 2] << 2; c[$ >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 4; if ( (c[Z >> 2] | 0) >>> 0 >= 4 ? (c[_ >> 2] | 0) > (c[$ >> 2] | 0) : 0 ) { c[H >> 2] = c[Z >> 2]; c[I >> 2] = c[Y >> 2]; c[J >> 2] = c[t >> 2]; continue; } if ((c[r >> 2] | 0) != 2) break a; if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[K >> 2] | 0) + 1; if ( ( ( ( c[I >> 2] | 0 ? ((c[aa >> 2] = (c[K >> 2] | 0) - (c[F >> 2] | 0)), (c[ba >> 2] = (c[aa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0), (c[ca >> 2] = (c[ba >> 2] | 0) + (c[aa >> 2] | 0)), ((c[aa >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[aa >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0) : 0 ) ? ((q = Bk(c[t >> 2] | 0) | 0), (q | 0) == (Bk(c[ca >> 2] | 0) | 0)) : 0 ) ? ((c[da >> 2] = (c[aa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[ea >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[ca >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[da >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), (c[fa >> 2] = c[ea >> 2] << 2), (q = c[H >> 2] << 2), (c[ga >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 1), (c[ea >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[fa >> 2] | 0) > (c[ga >> 2] | 0) : 0 ) { c[H >> 2] = c[ea >> 2]; c[I >> 2] = 0; c[J >> 2] = c[t >> 2]; } c[ha >> 2] = 99999999; c[ia >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, ha ) | 0; q = c[ia >> 2] << 2; c[ja >> 2] = q - (Mm(((c[ha >> 2] | 0) + 1) | 0) | 0); q = c[H >> 2] << 2; c[ka >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 7; if ((c[ia >> 2] | 0) >>> 0 < 4) break a; if ((c[ja >> 2] | 0) <= (c[ka >> 2] | 0)) break a; c[H >> 2] = c[ia >> 2]; c[I >> 2] = c[ha >> 2]; c[J >> 2] = c[t >> 2]; } } while (0); if (c[I >> 2] | 0) { c[la >> 2] = (c[J >> 2] | 0) - (c[x >> 2] | 0) - ((c[I >> 2] | 0) - 2); c[ma >> 2] = (c[la >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? ((c[B >> 2] | 0) + (c[la >> 2] | 0)) | 0 : ((c[x >> 2] | 0) + (c[la >> 2] | 0)) | 0; c[na >> 2] = (c[la >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[D >> 2] | 0 : c[A >> 2] | 0; while (1) { if ((c[J >> 2] | 0) >>> 0 <= (c[u >> 2] | 0) >>> 0) break; if ((c[ma >> 2] | 0) >>> 0 <= (c[na >> 2] | 0) >>> 0) break; if ( (d[((c[J >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[ma >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[J >> 2] = (c[J >> 2] | 0) + -1; c[ma >> 2] = (c[ma >> 2] | 0) + -1; c[H >> 2] = (c[H >> 2] | 0) + 1; } c[G >> 2] = c[F >> 2]; c[F >> 2] = (c[I >> 2] | 0) - 2; } } c[oa >> 2] = (c[J >> 2] | 0) - (c[u >> 2] | 0); Nm( c[k >> 2] | 0, c[oa >> 2] | 0, c[u >> 2] | 0, c[I >> 2] | 0, ((c[H >> 2] | 0) - 3) | 0 ); q = ((c[J >> 2] | 0) + (c[H >> 2] | 0)) | 0; c[t >> 2] = q; c[u >> 2] = q; while (1) { if ((c[t >> 2] | 0) >>> 0 > (c[w >> 2] | 0) >>> 0) break; c[pa >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0) - (c[G >> 2] | 0); c[qa >> 2] = (c[pa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0; c[ra >> 2] = (c[qa >> 2] | 0) + (c[pa >> 2] | 0); if ( !( ((c[pa >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[pa >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ) ) break; q = Bk(c[t >> 2] | 0) | 0; if ((q | 0) != (Bk(c[ra >> 2] | 0) | 0)) break; c[sa >> 2] = (c[pa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0; c[H >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[ra >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[sa >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4; c[I >> 2] = c[G >> 2]; c[G >> 2] = c[F >> 2]; c[F >> 2] = c[I >> 2]; Nm( c[k >> 2] | 0, 0, c[u >> 2] | 0, 0, ((c[H >> 2] | 0) - 3) | 0 ); c[t >> 2] = (c[t >> 2] | 0) + (c[H >> 2] | 0); c[u >> 2] = c[t >> 2]; } } c[c[m >> 2] >> 2] = c[F >> 2]; c[((c[m >> 2] | 0) + 4) >> 2] = c[G >> 2]; l = i; return ((c[v >> 2] | 0) - (c[u >> 2] | 0)) | 0; } function im(a, b, e, f, g, h) { a = a | 0; b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0; i = l; l = (l + 288) | 0; j = (i + 272) | 0; k = (i + 268) | 0; m = (i + 264) | 0; n = (i + 260) | 0; o = (i + 256) | 0; p = (i + 252) | 0; q = (i + 248) | 0; r = (i + 244) | 0; s = (i + 240) | 0; t = (i + 236) | 0; u = (i + 232) | 0; v = (i + 228) | 0; w = (i + 224) | 0; x = (i + 220) | 0; y = (i + 216) | 0; z = (i + 212) | 0; A = (i + 208) | 0; B = (i + 204) | 0; C = (i + 200) | 0; D = (i + 196) | 0; E = (i + 192) | 0; F = (i + 188) | 0; G = (i + 184) | 0; H = (i + 180) | 0; I = (i + 176) | 0; J = (i + 172) | 0; K = (i + 168) | 0; L = (i + 164) | 0; M = (i + 160) | 0; N = (i + 156) | 0; O = (i + 152) | 0; P = (i + 148) | 0; Q = (i + 144) | 0; R = (i + 140) | 0; S = (i + 136) | 0; T = (i + 132) | 0; U = (i + 128) | 0; V = (i + 124) | 0; W = (i + 120) | 0; X = (i + 116) | 0; Y = (i + 112) | 0; Z = (i + 108) | 0; _ = (i + 104) | 0; $ = (i + 100) | 0; aa = (i + 96) | 0; ba = (i + 92) | 0; ca = (i + 88) | 0; da = (i + 84) | 0; ea = (i + 80) | 0; fa = (i + 76) | 0; ga = (i + 72) | 0; ha = (i + 68) | 0; ia = (i + 64) | 0; ja = (i + 60) | 0; ka = (i + 56) | 0; la = (i + 52) | 0; ma = (i + 48) | 0; na = (i + 44) | 0; oa = (i + 40) | 0; pa = (i + 36) | 0; qa = (i + 32) | 0; ra = (i + 28) | 0; sa = (i + 24) | 0; ta = (i + 20) | 0; ua = (i + 16) | 0; va = (i + 12) | 0; wa = (i + 8) | 0; xa = (i + 4) | 0; ya = i; c[ta >> 2] = a; c[ua >> 2] = b; c[va >> 2] = e; c[wa >> 2] = f; c[xa >> 2] = g; c[ya >> 2] = h; h = c[ua >> 2] | 0; ua = c[va >> 2] | 0; va = c[wa >> 2] | 0; wa = c[xa >> 2] | 0; xa = c[ya >> 2] | 0; c[j >> 2] = c[ta >> 2]; c[k >> 2] = h; c[m >> 2] = ua; c[n >> 2] = va; c[o >> 2] = wa; c[p >> 2] = xa; c[q >> 2] = 1; c[r >> 2] = 2; c[s >> 2] = c[o >> 2]; c[t >> 2] = c[s >> 2]; c[u >> 2] = c[s >> 2]; c[v >> 2] = (c[s >> 2] | 0) + (c[p >> 2] | 0); c[w >> 2] = (c[v >> 2] | 0) + -8; c[x >> 2] = c[((c[j >> 2] | 0) + 4) >> 2]; c[y >> 2] = c[((c[j >> 2] | 0) + 12) >> 2]; c[z >> 2] = c[((c[j >> 2] | 0) + 16) >> 2]; c[A >> 2] = (c[x >> 2] | 0) + (c[y >> 2] | 0); c[B >> 2] = c[((c[j >> 2] | 0) + 8) >> 2]; c[C >> 2] = (c[B >> 2] | 0) + (c[y >> 2] | 0); c[D >> 2] = (c[B >> 2] | 0) + (c[z >> 2] | 0); c[E >> 2] = c[q >> 2] | 0 ? 7 : 6; c[F >> 2] = c[c[m >> 2] >> 2]; c[G >> 2] = c[((c[m >> 2] | 0) + 4) >> 2]; c[((c[j >> 2] | 0) + 28) >> 2] = c[((c[j >> 2] | 0) + 24) >> 2]; c[t >> 2] = (c[t >> 2] | 0) + (((c[t >> 2] | 0) == (c[A >> 2] | 0)) & 1); while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break; c[H >> 2] = 0; c[I >> 2] = 0; c[J >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0); c[L >> 2] = (c[K >> 2] | 0) + 1 - (c[F >> 2] | 0); c[M >> 2] = (c[L >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0; c[N >> 2] = (c[M >> 2] | 0) + (c[L >> 2] | 0); if ( !(( ((c[L >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[L >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ? ((q = Bk(((c[t >> 2] | 0) + 1) | 0) | 0), (q | 0) == (Bk(c[N >> 2] | 0) | 0)) : 0 ) ? ((c[O >> 2] = (c[L >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[H >> 2] = (Lm( ((c[t >> 2] | 0) + 1 + 4) | 0, ((c[N >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[O >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), !(c[r >> 2] | 0)) : 0) ) { c[P >> 2] = 99999999; c[Q >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, P ) | 0; if ((c[Q >> 2] | 0) >>> 0 > (c[H >> 2] | 0) >>> 0) { c[H >> 2] = c[Q >> 2]; c[J >> 2] = c[t >> 2]; c[I >> 2] = c[P >> 2]; } if ((c[H >> 2] | 0) >>> 0 < 4) { c[t >> 2] = (c[t >> 2] | 0) + ((((c[t >> 2] | 0) - (c[u >> 2] | 0)) >> 8) + 1); continue; } a: do { if ((c[r >> 2] | 0) >>> 0 >= 1) while (1) { if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[K >> 2] | 0) + 1; if ( ( ( ( c[I >> 2] | 0 ? ((c[R >> 2] = (c[K >> 2] | 0) - (c[F >> 2] | 0)), (c[S >> 2] = (c[R >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0), (c[T >> 2] = (c[S >> 2] | 0) + (c[R >> 2] | 0)), ((c[R >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[R >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0) : 0 ) ? ((q = Bk(c[t >> 2] | 0) | 0), (q | 0) == (Bk(c[T >> 2] | 0) | 0)) : 0 ) ? ((c[U >> 2] = (c[R >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[V >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[T >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[U >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), (c[W >> 2] = (c[V >> 2] | 0) * 3), (q = ((c[H >> 2] | 0) * 3) | 0), (c[X >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 1), (c[V >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[W >> 2] | 0) > (c[X >> 2] | 0) : 0 ) { c[H >> 2] = c[V >> 2]; c[I >> 2] = 0; c[J >> 2] = c[t >> 2]; } c[Y >> 2] = 99999999; c[Z >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, Y ) | 0; q = c[Z >> 2] << 2; c[_ >> 2] = q - (Mm(((c[Y >> 2] | 0) + 1) | 0) | 0); q = c[H >> 2] << 2; c[$ >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 4; if ( (c[Z >> 2] | 0) >>> 0 >= 4 ? (c[_ >> 2] | 0) > (c[$ >> 2] | 0) : 0 ) { c[H >> 2] = c[Z >> 2]; c[I >> 2] = c[Y >> 2]; c[J >> 2] = c[t >> 2]; continue; } if ((c[r >> 2] | 0) != 2) break a; if ((c[t >> 2] | 0) >>> 0 >= (c[w >> 2] | 0) >>> 0) break a; c[t >> 2] = (c[t >> 2] | 0) + 1; c[K >> 2] = (c[K >> 2] | 0) + 1; if ( ( ( ( c[I >> 2] | 0 ? ((c[aa >> 2] = (c[K >> 2] | 0) - (c[F >> 2] | 0)), (c[ba >> 2] = (c[aa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0), (c[ca >> 2] = (c[ba >> 2] | 0) + (c[aa >> 2] | 0)), ((c[aa >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[aa >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0) : 0 ) ? ((q = Bk(c[t >> 2] | 0) | 0), (q | 0) == (Bk(c[ca >> 2] | 0) | 0)) : 0 ) ? ((c[da >> 2] = (c[aa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0), (c[ea >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[ca >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[da >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4), (c[fa >> 2] = c[ea >> 2] << 2), (q = c[H >> 2] << 2), (c[ga >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 1), (c[ea >> 2] | 0) >>> 0 >= 4) : 0 ) ? (c[fa >> 2] | 0) > (c[ga >> 2] | 0) : 0 ) { c[H >> 2] = c[ea >> 2]; c[I >> 2] = 0; c[J >> 2] = c[t >> 2]; } c[ha >> 2] = 99999999; c[ia >> 2] = tc[c[E >> 2] & 7]( c[j >> 2] | 0, c[n >> 2] | 0, c[t >> 2] | 0, c[v >> 2] | 0, ha ) | 0; q = c[ia >> 2] << 2; c[ja >> 2] = q - (Mm(((c[ha >> 2] | 0) + 1) | 0) | 0); q = c[H >> 2] << 2; c[ka >> 2] = q - (Mm(((c[I >> 2] | 0) + 1) | 0) | 0) + 7; if ((c[ia >> 2] | 0) >>> 0 < 4) break a; if ((c[ja >> 2] | 0) <= (c[ka >> 2] | 0)) break a; c[H >> 2] = c[ia >> 2]; c[I >> 2] = c[ha >> 2]; c[J >> 2] = c[t >> 2]; } } while (0); if (c[I >> 2] | 0) { c[la >> 2] = (c[J >> 2] | 0) - (c[x >> 2] | 0) - ((c[I >> 2] | 0) - 2); c[ma >> 2] = (c[la >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? ((c[B >> 2] | 0) + (c[la >> 2] | 0)) | 0 : ((c[x >> 2] | 0) + (c[la >> 2] | 0)) | 0; c[na >> 2] = (c[la >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[D >> 2] | 0 : c[A >> 2] | 0; while (1) { if ((c[J >> 2] | 0) >>> 0 <= (c[u >> 2] | 0) >>> 0) break; if ((c[ma >> 2] | 0) >>> 0 <= (c[na >> 2] | 0) >>> 0) break; if ( (d[((c[J >> 2] | 0) + -1) >> 0] | 0 | 0) != (d[((c[ma >> 2] | 0) + -1) >> 0] | 0 | 0) ) break; c[J >> 2] = (c[J >> 2] | 0) + -1; c[ma >> 2] = (c[ma >> 2] | 0) + -1; c[H >> 2] = (c[H >> 2] | 0) + 1; } c[G >> 2] = c[F >> 2]; c[F >> 2] = (c[I >> 2] | 0) - 2; } } c[oa >> 2] = (c[J >> 2] | 0) - (c[u >> 2] | 0); Nm( c[k >> 2] | 0, c[oa >> 2] | 0, c[u >> 2] | 0, c[I >> 2] | 0, ((c[H >> 2] | 0) - 3) | 0 ); q = ((c[J >> 2] | 0) + (c[H >> 2] | 0)) | 0; c[t >> 2] = q; c[u >> 2] = q; while (1) { if ((c[t >> 2] | 0) >>> 0 > (c[w >> 2] | 0) >>> 0) break; c[pa >> 2] = (c[t >> 2] | 0) - (c[x >> 2] | 0) - (c[G >> 2] | 0); c[qa >> 2] = (c[pa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[B >> 2] | 0 : c[x >> 2] | 0; c[ra >> 2] = (c[qa >> 2] | 0) + (c[pa >> 2] | 0); if ( !( ((c[pa >> 2] | 0) >>> 0 > (c[z >> 2] | 0) >>> 0 ? (((c[y >> 2] | 0) - 1 - (c[pa >> 2] | 0)) | 0) >>> 0 >= 3 : 0) | 0 ) ) break; q = Bk(c[t >> 2] | 0) | 0; if ((q | 0) != (Bk(c[ra >> 2] | 0) | 0)) break; c[sa >> 2] = (c[pa >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0 ? c[C >> 2] | 0 : c[v >> 2] | 0; c[H >> 2] = (Lm( ((c[t >> 2] | 0) + 4) | 0, ((c[ra >> 2] | 0) + 4) | 0, c[v >> 2] | 0, c[sa >> 2] | 0, c[A >> 2] | 0 ) | 0) + 4; c[I >> 2] = c[G >> 2]; c[G >> 2] = c[F >> 2]; c[F >> 2] = c[I >> 2]; Nm( c[k >> 2] | 0, 0, c[u >> 2] | 0, 0, ((c[H >> 2] | 0) - 3) | 0 ); c[t >> 2] = (c[t >> 2] | 0) + (c[H >> 2] | 0); c[u >> 2] = c[t >> 2]; } } c[c[m >> 2] >> 2] = c[F >> 2]; c[((c[m >> 2] | 0) + 4) >> 2] = c[G >> 2]; l = i; return ((c[v >> 2] | 0) - (c[u >> 2] | 0)) | 0; } function DC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0; f = l; l = (l + 80) | 0; g = (f + 56) | 0; h = (f + 40) | 0; i = (f + 28) | 0; j = (f + 12) | 0; k = f; m = (f + 24) | 0; a: do { if (((d - b) | 0) > 2 ? (a[b >> 0] | 0) == 85 : 0) { switch (a[(b + 1) >> 0] | 0) { case 116: { c[h >> 2] = 0; c[(h + 4) >> 2] = 0; c[(h + 8) >> 2] = 0; RB(h, 19476, AB(19476) | 0); IB(g, h); n = (e + 4) | 0; o = c[n >> 2] | 0; if (o >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(o, g); c[n >> 2] = (c[n >> 2] | 0) + 24; } else LB(e, g); QA(g); iB(h); o = (b + 2) | 0; if ((o | 0) == (d | 0)) { p = c[n >> 2] | 0; q = 0; while (1) { if ((q | 0) == -1) break; r = (q + -1) | 0; QA((p + ((r * 24) | 0)) | 0); q = r; } c[n >> 2] = p + -24; s = b; break a; } if ((((a[o >> 0] | 0) + -48) | 0) >>> 0 < 10) { q = (b + 3) | 0; while (1) { if ((q | 0) == (d | 0)) { t = d; break; } if ((((a[q >> 0] | 0) + -48) | 0) >>> 0 >= 10) { t = q; break; } q = (q + 1) | 0; } MC(((c[n >> 2] | 0) + -24) | 0, o, t); u = t; } else u = o; NC(((c[n >> 2] | 0) + -24) | 0, 39); if ((u | 0) != (d | 0) ? (a[u >> 0] | 0) == 95 : 0) { s = (u + 1) | 0; break a; } q = c[n >> 2] | 0; p = 0; while (1) { if ((p | 0) == -1) break; r = (p + -1) | 0; QA((q + ((r * 24) | 0)) | 0); p = r; } c[n >> 2] = q + -24; s = b; break a; break; } case 108: break; default: { s = b; break a; } } c[i >> 2] = 0; c[(i + 4) >> 2] = 0; c[(i + 8) >> 2] = 0; RB(i, 19485, AB(19485) | 0); IB(g, i); p = (e + 4) | 0; o = c[p >> 2] | 0; if (o >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(o, g); c[p >> 2] = (c[p >> 2] | 0) + 24; } else LB(e, g); QA(g); iB(i); o = (b + 2) | 0; do { if ((a[o >> 0] | 0) != 118) { r = mB(o, d, e) | 0; if ((r | 0) == (o | 0)) { v = c[p >> 2] | 0; w = 0; while (1) { if ((w | 0) == -1) break; x = (w + -1) | 0; QA((v + ((x * 24) | 0)) | 0); w = x; } c[p >> 2] = v + -24; s = b; break a; } w = c[p >> 2] | 0; if ( ((((w - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { s = b; break a; } FB(j, (w + -24) | 0); w = c[p >> 2] | 0; x = 0; while (1) { if ((x | 0) == -1) break; y = (x + -1) | 0; QA((w + ((y * 24) | 0)) | 0); x = y; } c[p >> 2] = w + -24; x = (j + 11) | 0; v = a[x >> 0] | 0; y = (v << 24) >> 24 < 0; z = (j + 4) | 0; TA( (w + -48) | 0, y ? c[j >> 2] | 0 : j, y ? c[z >> 2] | 0 : v & 255 ) | 0; v = r; while (1) { y = mB(v, d, e) | 0; if ((y | 0) == (v | 0)) { A = 54; break; } B = c[p >> 2] | 0; if ( ((((B - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { A = 82; break; } FB(k, (B + -24) | 0); if ((a[x >> 0] | 0) < 0) { B = c[j >> 2] | 0; a[g >> 0] = 0; cB(B, g); c[z >> 2] = 0; } else { a[g >> 0] = 0; cB(j, g); a[x >> 0] = 0; } TB(j); c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; B = 0; while (1) { if ((B | 0) == 3) break; c[(k + (B << 2)) >> 2] = 0; B = (B + 1) | 0; } iB(k); B = c[p >> 2] | 0; C = 0; while (1) { if ((C | 0) == -1) break; D = (C + -1) | 0; QA((B + ((D * 24) | 0)) | 0); C = D; } c[p >> 2] = B + -24; C = a[x >> 0] | 0; if ( ((C << 24) >> 24 < 0 ? c[z >> 2] | 0 : C & 255) | 0 ) { qB((B + -48) | 0, 18897) | 0; C = a[x >> 0] | 0; D = (C << 24) >> 24 < 0; TA( ((c[p >> 2] | 0) + -24) | 0, D ? c[j >> 2] | 0 : j, D ? c[z >> 2] | 0 : C & 255 ) | 0; } v = y; } if ((A | 0) == 54) { qB(((c[p >> 2] | 0) + -24) | 0, 18673) | 0; iB(j); E = v; break; } else if ((A | 0) == 82) { iB(j); s = b; break a; } } else { NC(((c[p >> 2] | 0) + -24) | 0, 41); E = (b + 3) | 0; } } while (0); if ((E | 0) != (d | 0) ? (a[E >> 0] | 0) == 69 : 0) { o = (E + 1) | 0; if ((o | 0) == (d | 0)) { q = c[p >> 2] | 0; n = 0; while (1) { if ((n | 0) == -1) break; z = (n + -1) | 0; QA((q + ((z * 24) | 0)) | 0); n = z; } c[p >> 2] = q + -24; s = b; break; } if ((((a[o >> 0] | 0) + -48) | 0) >>> 0 < 10) { n = (E + 2) | 0; while (1) { if ((n | 0) == (d | 0)) { F = d; break; } if ((((a[n >> 0] | 0) + -48) | 0) >>> 0 >= 10) { F = n; break; } n = (n + 1) | 0; } n = ((c[p >> 2] | 0) + -24) | 0; if ((a[(n + 11) >> 0] | 0) < 0) G = c[n >> 2] | 0; else G = n; c[m >> 2] = G + 7; c[g >> 2] = c[m >> 2]; OC(n, g, o, F) | 0; H = F; } else H = o; if ((H | 0) != (d | 0) ? (a[H >> 0] | 0) == 95 : 0) { s = (H + 1) | 0; break; } n = c[p >> 2] | 0; q = 0; while (1) { if ((q | 0) == -1) break; z = (q + -1) | 0; QA((n + ((z * 24) | 0)) | 0); q = z; } c[p >> 2] = n + -24; s = b; break; } q = c[p >> 2] | 0; o = 0; while (1) { if ((o | 0) == -1) break; z = (o + -1) | 0; QA((q + ((z * 24) | 0)) | 0); o = z; } c[p >> 2] = q + -24; s = b; } else s = b; } while (0); l = f; return s | 0; } function EC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 32) | 0; g = f; a: do { if (((d - b) | 0) > 1) do { switch (a[b >> 0] | 0) { case 97: { switch (a[(b + 1) >> 0] | 0) { case 97: { FC(g, 18975); h = (e + 4) | 0; i = c[h >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[h >> 2] = (c[h >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 110: case 100: { GC(g, 18986); h = (e + 4) | 0; i = c[h >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[h >> 2] = (c[h >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 78: { FC(g, 18996); h = (e + 4) | 0; i = c[h >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[h >> 2] = (c[h >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 83: { GC(g, 19007); h = (e + 4) | 0; i = c[h >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[h >> 2] = (c[h >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 99: { switch (a[(b + 1) >> 0] | 0) { case 108: { FC(g, 19017); h = (e + 4) | 0; i = c[h >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[h >> 2] = (c[h >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 109: { GC(g, 19028); h = (e + 4) | 0; i = c[h >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[h >> 2] = (c[h >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 111: { GC(g, 19038); h = (e + 4) | 0; i = c[h >> 2] | 0; if (i >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(i, g); c[h >> 2] = (c[h >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 118: { h = (e + 63) | 0; i = a[h >> 0] | 0; a[h >> 0] = 0; k = (b + 2) | 0; m = mB(k, d, e) | 0; a[h >> 0] = i; if ((m | 0) == (k | 0)) { j = b; break a; } k = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (k | 0)) { j = b; break a; } pB((k + -24) | 0, 0, 19048) | 0; a[(e + 60) >> 0] = 1; j = m; break a; break; } default: { j = b; break a; } } break; } case 100: { switch (a[(b + 1) >> 0] | 0) { case 97: { HC(g, 19058); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 101: { GC(g, 19076); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 108: { IC(g); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 118: { GC(g, 19086); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 86: { FC(g, 19096); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 101: { switch (a[(b + 1) >> 0] | 0) { case 111: { GC(g, 19107); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 79: { FC(g, 19117); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 113: { FC(g, 19128); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 103: { switch (a[(b + 1) >> 0] | 0) { case 101: { FC(g, 19139); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 116: { GC(g, 19150); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 105: { if ((a[(b + 1) >> 0] | 0) != 120) { j = b; break a; } FC(g, 19160); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 108: { switch (a[(b + 1) >> 0] | 0) { case 101: { FC(g, 19171); m = (e + 4) | 0; k = c[m >> 2] | 0; if (k >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(k, g); c[m >> 2] = (c[m >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 105: { m = (b + 2) | 0; k = GB(m, d, e) | 0; if ((k | 0) == (m | 0)) { j = b; break a; } m = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (m | 0)) { j = b; break a; } pB((m + -24) | 0, 0, 19182) | 0; j = k; break a; break; } case 115: { FC(g, 19194); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 83: { JC(g, 19205); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 116: { GC(g, 19217); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 109: { switch (a[(b + 1) >> 0] | 0) { case 105: { GC(g, 19227); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 73: { FC(g, 19237); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 108: { GC(g, 19076); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 76: { FC(g, 19248); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 109: { FC(g, 19259); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 110: { switch (a[(b + 1) >> 0] | 0) { case 97: { KC(g, 19270); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 101: { FC(g, 19285); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 103: { GC(g, 19227); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 116: { GC(g, 19296); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 119: { LC(g, 19306); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 111: { switch (a[(b + 1) >> 0] | 0) { case 111: { FC(g, 19319); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 114: { GC(g, 19330); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 82: { FC(g, 19340); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 112: { switch (a[(b + 1) >> 0] | 0) { case 109: { JC(g, 19351); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 108: { GC(g, 19363); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 76: { FC(g, 19373); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 112: { FC(g, 19384); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 115: { GC(g, 19363); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 116: { FC(g, 19395); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 113: { if ((a[(b + 1) >> 0] | 0) != 117) { j = b; break a; } GC(g, 19406); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 114: { switch (a[(b + 1) >> 0] | 0) { case 109: { GC(g, 19416); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 77: { FC(g, 19426); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 115: { FC(g, 19437); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } case 83: { JC(g, 19448); k = (e + 4) | 0; m = c[k >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[k >> 2] = (c[k >> 2] | 0) + 24; } else LB(e, g); QA(g); j = (b + 2) | 0; break a; break; } default: { j = b; break a; } } break; } case 118: { if ( (((a[(b + 1) >> 0] | 0) + -48) | 0) >>> 0 >= 10 ) { j = b; break a; } k = (b + 2) | 0; m = GB(k, d, e) | 0; if ((m | 0) == (k | 0)) { j = b; break a; } k = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (k | 0)) { j = b; break a; } pB((k + -24) | 0, 0, 19048) | 0; j = m; break a; break; } default: { j = b; break a; } } } while (0); else j = b; } while (0); l = f; return j | 0; } function FC(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 10); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function GC(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 9); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function HC(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 17); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function IC(a) { a = a | 0; var b = 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, 19460, 15); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function JC(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 11); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function KC(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 14); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function LC(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 12); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function MC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; f = l; l = (l + 16) | 0; g = d; h = f; i = (b + 11) | 0; j = a[i >> 0] | 0; k = (j << 24) >> 24 < 0; if (k) { m = c[(b + 4) >> 2] | 0; n = ((c[(b + 8) >> 2] & 2147483647) + -1) | 0; } else { m = j & 255; n = 10; } o = (e - g) | 0; do { if (o | 0) { if (k) { p = c[b >> 2] | 0; q = c[(b + 4) >> 2] | 0; } else { p = b; q = j & 255; } if (PC(d, p, (p + q) | 0) | 0) { c[h >> 2] = 0; c[(h + 4) >> 2] = 0; c[(h + 8) >> 2] = 0; QC(h, d, e); r = a[(h + 11) >> 0] | 0; s = (r << 24) >> 24 < 0; TA( b, s ? c[h >> 2] | 0 : h, s ? c[(h + 4) >> 2] | 0 : r & 255 ) | 0; iB(h); break; } if (((n - m) | 0) >>> 0 < o >>> 0) RC(b, n, (m + o - n) | 0, m, m, 0); if ((a[i >> 0] | 0) < 0) t = c[b >> 2] | 0; else t = b; r = (e + (m - g)) | 0; s = (t + m) | 0; u = d; while (1) { if ((u | 0) == (e | 0)) break; cB(s, u); s = (s + 1) | 0; u = (u + 1) | 0; } a[h >> 0] = 0; cB((t + r) | 0, h); u = (m + o) | 0; if ((a[i >> 0] | 0) < 0) { c[(b + 4) >> 2] = u; break; } else { a[i >> 0] = u; break; } } } while (0); l = f; return; } function NC(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0; e = l; l = (l + 16) | 0; f = e; g = (e + 1) | 0; a[f >> 0] = d; d = (b + 11) | 0; h = a[d >> 0] | 0; i = (h << 24) >> 24 < 0; if (i) { j = c[(b + 4) >> 2] | 0; k = ((c[(b + 8) >> 2] & 2147483647) + -1) | 0; } else { j = h & 255; k = 10; } if ((j | 0) == (k | 0)) { RC(b, k, 1, k, k, 0); if ((a[d >> 0] | 0) < 0) m = 8; else m = 7; } else if (i) m = 8; else m = 7; if ((m | 0) == 7) { a[d >> 0] = j + 1; n = b; } else if ((m | 0) == 8) { m = c[b >> 2] | 0; c[(b + 4) >> 2] = j + 1; n = m; } m = (n + j) | 0; cB(m, f); a[g >> 0] = 0; cB((m + 1) | 0, g); l = e; return; } function OC(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; g = l; l = (l + 32) | 0; h = (g + 16) | 0; i = (g + 4) | 0; j = g; k = (b + 11) | 0; m = a[k >> 0] | 0; n = (m << 24) >> 24 < 0; if (n) o = c[b >> 2] | 0; else o = b; p = c[d >> 2] | 0; d = (p - o) | 0; o = (f - e) | 0; do { if (!o) { q = m; r = 27; } else { if (n) { s = c[b >> 2] | 0; t = c[(b + 4) >> 2] | 0; } else { s = b; t = m & 255; } if (PC(e, s, (s + t) | 0) | 0) { c[i >> 2] = 0; c[(i + 4) >> 2] = 0; c[(i + 8) >> 2] = 0; QC(i, e, f); c[j >> 2] = p; u = a[(i + 11) >> 0] | 0; v = (u << 24) >> 24 < 0; w = v ? c[i >> 2] | 0 : i; x = (w + (v ? c[(i + 4) >> 2] | 0 : u & 255)) | 0; c[h >> 2] = c[j >> 2]; u = OC(b, h, w, x) | 0; iB(i); y = u; break; } u = a[k >> 0] | 0; x = (u << 24) >> 24 < 0; if (x) { z = c[(b + 4) >> 2] | 0; A = ((c[(b + 8) >> 2] & 2147483647) + -1) | 0; } else { z = u & 255; A = 10; } if (((A - z) | 0) >>> 0 >= o >>> 0) { if (x) B = c[b >> 2] | 0; else B = b; x = (z - d) | 0; if (!x) C = B; else { u = (B + d) | 0; wC((u + o) | 0, u, x) | 0; C = B; } } else { RC(b, A, (z + o - A) | 0, z, d, o); C = c[b >> 2] | 0; } x = (z + o) | 0; if ((a[k >> 0] | 0) < 0) c[(b + 4) >> 2] = x; else a[k >> 0] = x; a[h >> 0] = 0; cB((C + x) | 0, h); x = e; u = (C + d) | 0; while (1) { if ((x | 0) == (f | 0)) break; cB(u, x); x = (x + 1) | 0; u = (u + 1) | 0; } q = a[k >> 0] | 0; r = 27; } } while (0); if ((r | 0) == 27) { if ((q << 24) >> 24 < 0) D = c[b >> 2] | 0; else D = b; y = (D + d) | 0; } l = g; return y | 0; } function PC(a, b, c) { a = a | 0; b = b | 0; c = c | 0; return ((b >>> 0 <= a >>> 0) & (a >>> 0 < c >>> 0)) | 0; } function QC(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; f = l; l = (l + 16) | 0; g = d; h = f; i = (e - g) | 0; if (i >>> 0 > 4294967279) eB(b); if (i >>> 0 < 11) { a[(b + 11) >> 0] = i; j = b; } else { k = (i + 16) & -16; m = fB(k) | 0; c[b >> 2] = m; c[(b + 8) >> 2] = k | -2147483648; c[(b + 4) >> 2] = i; j = m; } m = (e - g) | 0; g = d; d = j; while (1) { if ((g | 0) == (e | 0)) break; cB(d, g); g = (g + 1) | 0; d = (d + 1) | 0; } a[h >> 0] = 0; cB((j + m) | 0, h); l = f; return; } function RC(b, d, e, f, g, h) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, l = 0; if (((-17 - d) | 0) >>> 0 < e >>> 0) eB(b); if ((a[(b + 11) >> 0] | 0) < 0) i = c[b >> 2] | 0; else i = b; if (d >>> 0 < 2147483623) { j = (e + d) | 0; e = d << 1; k = j >>> 0 < e >>> 0 ? e : j; l = k >>> 0 < 11 ? 11 : (k + 16) & -16; } else l = -17; k = fB(l) | 0; if (g | 0) bB(k, i, g) | 0; j = (f - g) | 0; if (j | 0) bB((k + g + h) | 0, (i + g) | 0, j) | 0; if ((d | 0) != 10) gB(i); c[b >> 2] = k; c[(b + 8) >> 2] = l | -2147483648; return; } function SC(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; e = (d + 11) | 0; f = a[e >> 0] | 0; g = (d + 4) | 0; a: do { if (!(((f << 24) >> 24 < 0 ? c[g >> 2] | 0 : f & 255) | 0)) TC(b, d); else { h = AB(19495) | 0; i = a[e >> 0] | 0; if ( (h | 0) == (((i << 24) >> 24 < 0 ? c[g >> 2] | 0 : i & 255) | 0) ? (BB(d, 19495, h) | 0) == 0 : 0 ) { uC(d, 19507); c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; RB(b, 19578, AB(19578) | 0); break; } h = AB(19591) | 0; i = a[e >> 0] | 0; if ( (h | 0) == (((i << 24) >> 24 < 0 ? c[g >> 2] | 0 : i & 255) | 0) ? (BB(d, 19591, h) | 0) == 0 : 0 ) { uC(d, 19604); c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; RB(b, 19654, AB(19654) | 0); break; } h = AB(19668) | 0; i = a[e >> 0] | 0; if ( (h | 0) == (((i << 24) >> 24 < 0 ? c[g >> 2] | 0 : i & 255) | 0) ? (BB(d, 19668, h) | 0) == 0 : 0 ) { uC(d, 19681); c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; RB(b, 19731, AB(19731) | 0); break; } h = AB(19745) | 0; i = a[e >> 0] | 0; j = c[g >> 2] | 0; k = i & 255; do { if ((h | 0) == (((i << 24) >> 24 < 0 ? j : k) | 0)) { if (!(BB(d, 19745, h) | 0)) { uC(d, 19759); c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; RB(b, 19810, AB(19810) | 0); break a; } else { l = a[e >> 0] | 0; m = l & 255; n = l; o = c[g >> 2] | 0; break; } } else { m = k; n = i; o = j; } } while (0); j = (n << 24) >> 24 < 0; i = j ? c[d >> 2] | 0 : d; k = (i + (j ? o : m)) | 0; do { if ((a[(k + -1) >> 0] | 0) == 62) { j = 1; h = k; b: while (1) { p = h; c: while (1) { q = (p + -1) | 0; if ((q | 0) == (i | 0)) break b; switch (a[(p + -2) >> 0] | 0) { case 60: { r = 24; break c; break; } case 62: { r = 25; break c; break; } default: p = q; } } if ((r | 0) == 24) { r = 0; l = (j + -1) | 0; if (!l) { r = 27; break; } else s = l; } else if ((r | 0) == 25) { r = 0; s = (j + 1) | 0; } j = s; h = q; } if ((r | 0) == 27) { t = (p + -2) | 0; break; } c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; h = 0; while (1) { if ((h | 0) == 3) break a; c[(b + (h << 2)) >> 2] = 0; h = (h + 1) | 0; } } else t = k; } while (0); k = t; while (1) { h = (k + -1) | 0; if ((h | 0) == (i | 0)) { u = i; break; } if ((a[h >> 0] | 0) == 58) { u = k; break; } else k = h; } c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; QC(b, u, t); } } while (0); return; } function TC(b, d) { b = b | 0; d = d | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; if ((a[(d + 11) >> 0] | 0) < 0) RB(b, c[d >> 2] | 0, c[(d + 4) >> 2] | 0); else { c[b >> 2] = c[d >> 2]; c[(b + 4) >> 2] = c[(d + 4) >> 2]; c[(b + 8) >> 2] = c[(d + 8) >> 2]; } return; } function UC(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; if ((a | 0) != (b | 0)) { e = yC(a, b, d) | 0; if ((e | 0) == (a | 0)) f = AC(a, b, d) | 0; else f = e; if ( (f | 0) != (a | 0) ? ((e = c[(d + 4) >> 2] | 0), (c[d >> 2] | 0) != (e | 0)) : 0 ) { pB((e + -24) | 0, 0, 18745) | 0; g = f; } else g = a; } else g = a; return g | 0; } function VC(a) { a = a | 0; var b = 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; b = 0; while (1) { if ((b | 0) == 3) break; c[(a + (b << 2)) >> 2] = 0; b = (b + 1) | 0; } b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function WC(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0; b = l; l = (l + 32) | 0; d = b; e = (a + 4) | 0; f = ((((((c[e >> 2] | 0) - (c[a >> 2] | 0)) | 0) / 24) | 0) + 1) | 0; g = XC(a) | 0; if (g >>> 0 < f >>> 0) Wz(a); else { h = c[a >> 2] | 0; i = ((((c[(a + 8) >> 2] | 0) - h) | 0) / 24) | 0; j = i << 1; YC( d, i >>> 0 < (g >>> 1) >>> 0 ? j >>> 0 < f >>> 0 ? f : j : g, ((((c[e >> 2] | 0) - h) | 0) / 24) | 0, (a + 12) | 0 ); h = (d + 8) | 0; e = c[h >> 2] | 0; c[e >> 2] = 0; c[(e + 4) >> 2] = 0; c[(e + 8) >> 2] = 0; c[(e + 12) >> 2] = 0; c[(e + 16) >> 2] = 0; c[(e + 20) >> 2] = 0; VC(e); c[h >> 2] = e + 24; ZC(a, d); _C(d); l = b; return; } } function XC(a) { a = a | 0; return 178956970; } function YC(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0; f = (a + 12) | 0; c[f >> 2] = 0; c[(a + 16) >> 2] = e; if (!b) g = 0; else g = $C(e, b) | 0; c[a >> 2] = g; e = (g + ((d * 24) | 0)) | 0; c[(a + 8) >> 2] = e; c[(a + 4) >> 2] = e; c[f >> 2] = g + ((b * 24) | 0); return; } function ZC(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; d = c[a >> 2] | 0; e = (a + 4) | 0; f = (b + 4) | 0; g = c[e >> 2] | 0; while (1) { if ((g | 0) == (d | 0)) break; h = (g + -24) | 0; KB(((c[f >> 2] | 0) + -24) | 0, h); c[f >> 2] = (c[f >> 2] | 0) + -24; g = h; } g = c[a >> 2] | 0; c[a >> 2] = c[f >> 2]; c[f >> 2] = g; g = (b + 8) | 0; d = c[e >> 2] | 0; c[e >> 2] = c[g >> 2]; c[g >> 2] = d; d = (a + 8) | 0; a = (b + 12) | 0; g = c[d >> 2] | 0; c[d >> 2] = c[a >> 2]; c[a >> 2] = g; c[b >> 2] = c[f >> 2]; return; } function _C(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = c[(a + 4) >> 2] | 0; d = (a + 8) | 0; while (1) { e = c[d >> 2] | 0; if ((e | 0) == (b | 0)) break; f = (e + -24) | 0; c[d >> 2] = f; QA(f); } d = c[a >> 2] | 0; if (d | 0) hB( c[(a + 16) >> 2] | 0, d, ((((c[(a + 12) >> 2] | 0) - d) | 0) / 24) | 0 ); return; } function $C(a, b) { a = a | 0; b = b | 0; return aD(c[a >> 2] | 0, (b * 24) | 0) | 0; } function aD(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0; d = $A(b) | 0; b = (a + 4096) | 0; e = c[b >> 2] | 0; if (((a + 4096 - e) | 0) >>> 0 < d >>> 0) f = Cy(d) | 0; else { c[b >> 2] = e + d; f = e; } return f | 0; } function bD(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; g = l; l = (l + 48) | 0; h = (g + 24) | 0; i = g; j = (g + 12) | 0; k = QB(b, d) | 0; if ( !(((k | 0) == (b | 0)) | ((k | 0) == (d | 0))) ? (a[k >> 0] | 0) == 69 : 0 ) { d = (e + 11) | 0; m = a[d >> 0] | 0; n = (e + 4) | 0; do { if ( ((m << 24) >> 24 < 0 ? c[n >> 2] | 0 : m & 255) >>> 0 <= 3 ) { o = (f + 4) | 0; p = c[o >> 2] | 0; if (p >>> 0 < (c[(f + 8) >> 2] | 0) >>> 0) { c[p >> 2] = 0; c[(p + 4) >> 2] = 0; c[(p + 8) >> 2] = 0; c[(p + 12) >> 2] = 0; c[(p + 16) >> 2] = 0; c[(p + 20) >> 2] = 0; VC(p); c[o >> 2] = (c[o >> 2] | 0) + 24; break; } else { WC(f); break; } } else { UB(j, 18675, e); qB(j, 18673) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; o = 0; while (1) { if ((o | 0) == 3) break; c[(j + (o << 2)) >> 2] = 0; o = (o + 1) | 0; } IB(h, i); o = (f + 4) | 0; p = c[o >> 2] | 0; if (p >>> 0 < (c[(f + 8) >> 2] | 0) >>> 0) { KB(p, h); c[o >> 2] = (c[o >> 2] | 0) + 24; } else LB(f, h); QA(h); iB(i); iB(j); } } while (0); j = (f + 4) | 0; if ((a[b >> 0] | 0) == 110) { NC(((c[j >> 2] | 0) + -24) | 0, 45); q = (b + 1) | 0; } else q = b; MC(((c[j >> 2] | 0) + -24) | 0, q, k); q = a[d >> 0] | 0; d = (q << 24) >> 24 < 0; f = d ? c[n >> 2] | 0 : q & 255; if (f >>> 0 < 4) TA( ((c[j >> 2] | 0) + -24) | 0, d ? c[e >> 2] | 0 : e, f ) | 0; r = (k + 1) | 0; } else r = b; l = g; return r | 0; } function cD(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 4); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function dD(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0; f = l; l = (l + 64) | 0; i = (f + 24) | 0; j = (f + 60) | 0; k = f; m = (f + 48) | 0; a: do { if (((d - b) | 0) >>> 0 > 8) { n = 0; o = j; while (1) { p = a[(b + n) >> 0] | 0; q = (p << 24) >> 24; if ((n | 0) == 8) { r = 6; break; } if (!(Qz(q) | 0)) break; s = a[(b + (n | 1)) >> 0] | 0; a[o >> 0] = (((((q + -48) | 0) >>> 0 < 10 ? 0 : 9) + q) << 4) + s + (((s + -48) | 0) >>> 0 < 10 ? 208 : 169); n = (n + 2) | 0; o = (o + 1) | 0; } do { if ((r | 0) == 6) { if ((p << 24) >> 24 == 69) { b: do { if ((o | 0) != (j | 0)) { n = o; s = j; while (1) { q = (n + -1) | 0; if (s >>> 0 >= q >>> 0) break b; t = a[s >> 0] | 0; a[s >> 0] = a[q >> 0] | 0; a[q >> 0] = t; n = q; s = (s + 1) | 0; } } } while (0); c[k >> 2] = 0; c[(k + 4) >> 2] = 0; c[(k + 8) >> 2] = 0; c[(k + 12) >> 2] = 0; c[(k + 16) >> 2] = 0; c[(k + 20) >> 2] = 0; h[i >> 3] = +g[j >> 2]; s = bz(k, 24, 19987, i) | 0; if (s >>> 0 > 23) break; c[m >> 2] = 0; c[(m + 4) >> 2] = 0; c[(m + 8) >> 2] = 0; RB(m, k, s); IB(i, m); s = (e + 4) | 0; n = c[s >> 2] | 0; if (n >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(n, i); c[s >> 2] = (c[s >> 2] | 0) + 24; } else LB(e, i); QA(i); iB(m); u = (b + 9) | 0; } else u = b; v = u; break a; } } while (0); v = b; } else v = b; } while (0); l = f; return v | 0; } function eD(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; f = l; l = (l + 80) | 0; g = (f + 40) | 0; i = (f + 32) | 0; j = f; k = (f + 64) | 0; a: do { if (((d - b) | 0) >>> 0 > 16) { m = 0; n = i; while (1) { o = a[(b + m) >> 0] | 0; p = (o << 24) >> 24; if ((m | 0) == 16) { q = 6; break; } if (!(Qz(p) | 0)) break; r = a[(b + (m | 1)) >> 0] | 0; a[n >> 0] = (((((p + -48) | 0) >>> 0 < 10 ? 0 : 9) + p) << 4) + r + (((r + -48) | 0) >>> 0 < 10 ? 208 : 169); m = (m + 2) | 0; n = (n + 1) | 0; } do { if ((q | 0) == 6) { if ((o << 24) >> 24 == 69) { b: do { if ((n | 0) != (i | 0)) { m = n; r = i; while (1) { p = (m + -1) | 0; if (r >>> 0 >= p >>> 0) break b; s = a[r >> 0] | 0; a[r >> 0] = a[p >> 0] | 0; a[p >> 0] = s; m = p; r = (r + 1) | 0; } } } while (0); c[j >> 2] = 0; c[(j + 4) >> 2] = 0; c[(j + 8) >> 2] = 0; c[(j + 12) >> 2] = 0; c[(j + 16) >> 2] = 0; c[(j + 20) >> 2] = 0; c[(j + 24) >> 2] = 0; c[(j + 28) >> 2] = 0; h[g >> 3] = +h[i >> 3]; r = bz(j, 32, 19984, g) | 0; if (r >>> 0 > 31) break; c[k >> 2] = 0; c[(k + 4) >> 2] = 0; c[(k + 8) >> 2] = 0; RB(k, j, r); IB(g, k); r = (e + 4) | 0; m = c[r >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[r >> 2] = (c[r >> 2] | 0) + 24; } else LB(e, g); QA(g); iB(k); t = (b + 17) | 0; } else t = b; u = t; break a; } } while (0); u = b; } else u = b; } while (0); l = f; return u | 0; } function fD(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0; f = l; l = (l + 96) | 0; g = (f + 48) | 0; i = (f + 40) | 0; j = f; k = (f + 72) | 0; a: do { if (((d - b) | 0) >>> 0 > 20) { m = 0; n = i; while (1) { o = a[(b + m) >> 0] | 0; p = (o << 24) >> 24; if ((m | 0) == 20) { q = 6; break; } if (!(Qz(p) | 0)) break; r = a[(b + (m | 1)) >> 0] | 0; a[n >> 0] = (((((p + -48) | 0) >>> 0 < 10 ? 0 : 9) + p) << 4) + r + (((r + -48) | 0) >>> 0 < 10 ? 208 : 169); m = (m + 2) | 0; n = (n + 1) | 0; } do { if ((q | 0) == 6) { if ((o << 24) >> 24 == 69) { b: do { if ((n | 0) != (i | 0)) { m = n; r = i; while (1) { p = (m + -1) | 0; if (r >>> 0 >= p >>> 0) break b; s = a[r >> 0] | 0; a[r >> 0] = a[p >> 0] | 0; a[p >> 0] = s; m = p; r = (r + 1) | 0; } } } while (0); r = j; m = (r + 40) | 0; do { c[r >> 2] = 0; r = (r + 4) | 0; } while ((r | 0) < (m | 0)); h[g >> 3] = +h[i >> 3]; r = bz(j, 40, 19979, g) | 0; if (r >>> 0 > 39) break; c[k >> 2] = 0; c[(k + 4) >> 2] = 0; c[(k + 8) >> 2] = 0; RB(k, j, r); IB(g, k); r = (e + 4) | 0; m = c[r >> 2] | 0; if (m >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { KB(m, g); c[r >> 2] = (c[r >> 2] | 0) + 24; } else LB(e, g); QA(g); iB(k); t = (b + 21) | 0; } else t = b; u = t; break a; } } while (0); u = b; } else u = b; } while (0); l = f; return u | 0; } function gD(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 13); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function hD(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0; f = l; l = (l + 48) | 0; g = (f + 36) | 0; h = (f + 24) | 0; i = (f + 8) | 0; j = f; a: do { if ((b | 0) != (d | 0) ? (a[b >> 0] | 0) == 78 : 0) { k = nB((b + 1) | 0, d, g) | 0; b: do { if ((k | 0) != (d | 0)) { m = (e + 52) | 0; c[m >> 2] = 0; switch (a[k >> 0] | 0) { case 82: { n = 1; o = 6; break; } case 79: { n = 2; o = 6; break; } default: p = k; } if ((o | 0) == 6) { c[m >> 2] = n; p = (k + 1) | 0; } m = (e + 4) | 0; q = c[m >> 2] | 0; if (q >>> 0 < (c[(e + 8) >> 2] | 0) >>> 0) { c[q >> 2] = 0; c[(q + 4) >> 2] = 0; c[(q + 8) >> 2] = 0; c[(q + 12) >> 2] = 0; c[(q + 16) >> 2] = 0; c[(q + 20) >> 2] = 0; VC(q); c[m >> 2] = (c[m >> 2] | 0) + 24; } else WC(e); if ( (((d - p) | 0) > 1 ? (a[p >> 0] | 0) == 83 : 0) ? (a[(p + 1) >> 0] | 0) == 116 : 0 ) { uC(((c[m >> 2] | 0) + -24) | 0, 20051); r = (p + 2) | 0; } else r = p; if ((r | 0) == (d | 0)) { q = c[m >> 2] | 0; s = 0; while (1) { if ((s | 0) == -1) break; t = (s + -1) | 0; QA((q + ((t * 24) | 0)) | 0); s = t; } c[m >> 2] = q + -24; break; } s = (h + 11) | 0; t = (h + 4) | 0; u = (e + 12) | 0; v = (e + 20) | 0; w = (e + 24) | 0; x = (i + 11) | 0; y = (i + 4) | 0; z = (i + 11) | 0; A = (i + 4) | 0; B = (i + 12) | 0; C = (i + 4) | 0; D = (i + 8) | 0; E = (e + 16) | 0; F = (i + 12) | 0; G = (i + 4) | 0; H = (i + 8) | 0; I = (i + 11) | 0; J = (i + 4) | 0; K = (i + 12) | 0; L = (i + 4) | 0; M = (i + 8) | 0; N = (i + 11) | 0; O = (i + 4) | 0; P = (i + 12) | 0; Q = (i + 4) | 0; R = (i + 8) | 0; S = (i + 12) | 0; T = (i + 4) | 0; U = (i + 8) | 0; V = 0; W = r; c: while (1) { X = W; d: while (1) { Y = a[X >> 0] | 0; if ((Y << 24) >> 24 == 69) break c; switch (((Y << 24) >> 24) | 0) { case 83: { o = 23; break d; break; } case 84: { o = 39; break d; break; } case 68: { o = 53; break d; break; } case 73: { Y = EB(X, d, e) | 0; if ( ((Y | 0) == (X | 0)) | ((Y | 0) == (d | 0)) ) break b; FB(h, ((c[m >> 2] | 0) + -24) | 0); Z = c[m >> 2] | 0; _ = 0; while (1) { if ((_ | 0) == -1) break; $ = (_ + -1) | 0; QA((Z + (($ * 24) | 0)) | 0); _ = $; } c[m >> 2] = Z + -24; _ = a[s >> 0] | 0; $ = (_ << 24) >> 24 < 0; TA( (Z + -48) | 0, $ ? c[h >> 2] | 0 : h, $ ? c[t >> 2] | 0 : _ & 255 ) | 0; _ = ((c[m >> 2] | 0) + -24) | 0; c[j >> 2] = c[u >> 2]; vB(i, _, j); _ = c[v >> 2] | 0; if (_ >>> 0 < (c[w >> 2] | 0) >>> 0) { c[_ >> 2] = 0; $ = (_ + 4) | 0; c[$ >> 2] = 0; aa = (_ + 8) | 0; c[aa >> 2] = 0; c[(_ + 12) >> 2] = c[B >> 2]; c[_ >> 2] = c[i >> 2]; c[$ >> 2] = c[C >> 2]; c[aa >> 2] = c[D >> 2]; c[D >> 2] = 0; c[C >> 2] = 0; c[i >> 2] = 0; c[v >> 2] = (c[v >> 2] | 0) + 16; } else wB(E, i); RA(i); iB(h); ba = Y; break; } case 76: { aa = (X + 1) | 0; if ((aa | 0) == (d | 0)) break b; else ba = aa; break; } default: { o = 79; break d; } } X = ba; } e: do { if ((o | 0) == 23) { o = 0; aa = (X + 1) | 0; if ( (aa | 0) != (d | 0) ? (a[aa >> 0] | 0) == 116 : 0 ) { o = 79; break; } aa = NB(X, d, e) | 0; if ( ((aa | 0) == (X | 0)) | ((aa | 0) == (d | 0)) ) break b; FB(h, ((c[m >> 2] | 0) + -24) | 0); $ = c[m >> 2] | 0; _ = 0; while (1) { if ((_ | 0) == -1) break; ca = (_ + -1) | 0; QA(($ + ((ca * 24) | 0)) | 0); _ = ca; } c[m >> 2] = $ + -24; _ = ($ + -48) | 0; Y = a[(_ + 11) >> 0] | 0; if ((Y << 24) >> 24 < 0) da = c[($ + -44) >> 2] | 0; else da = Y & 255; if (!da) lD(_, h); else { UB(i, 18747, h); _ = a[I >> 0] | 0; Y = (_ << 24) >> 24 < 0; TA( ((c[m >> 2] | 0) + -24) | 0, Y ? c[i >> 2] | 0 : i, Y ? c[J >> 2] | 0 : _ & 255 ) | 0; iB(i); _ = ((c[m >> 2] | 0) + -24) | 0; c[j >> 2] = c[u >> 2]; vB(i, _, j); _ = c[v >> 2] | 0; if (_ >>> 0 < (c[w >> 2] | 0) >>> 0) { c[_ >> 2] = 0; Y = (_ + 4) | 0; c[Y >> 2] = 0; Z = (_ + 8) | 0; c[Z >> 2] = 0; c[(_ + 12) >> 2] = c[S >> 2]; c[_ >> 2] = c[i >> 2]; c[Y >> 2] = c[T >> 2]; c[Z >> 2] = c[U >> 2]; c[U >> 2] = 0; c[T >> 2] = 0; c[i >> 2] = 0; c[v >> 2] = (c[v >> 2] | 0) + 16; } else wB(E, i); RA(i); } iB(h); ea = aa; } else if ((o | 0) == 39) { o = 0; Z = DB(X, d, e) | 0; if (((Z | 0) == (X | 0)) | ((Z | 0) == (d | 0))) break b; FB(h, ((c[m >> 2] | 0) + -24) | 0); Y = c[m >> 2] | 0; _ = 0; while (1) { if ((_ | 0) == -1) break; ca = (_ + -1) | 0; QA((Y + ((ca * 24) | 0)) | 0); _ = ca; } c[m >> 2] = Y + -24; _ = (Y + -48) | 0; aa = a[(_ + 11) >> 0] | 0; if ((aa << 24) >> 24 < 0) fa = c[(Y + -44) >> 2] | 0; else fa = aa & 255; if (!fa) lD(_, h); else { UB(i, 18747, h); _ = a[z >> 0] | 0; aa = (_ << 24) >> 24 < 0; TA( ((c[m >> 2] | 0) + -24) | 0, aa ? c[i >> 2] | 0 : i, aa ? c[A >> 2] | 0 : _ & 255 ) | 0; iB(i); } _ = ((c[m >> 2] | 0) + -24) | 0; c[j >> 2] = c[u >> 2]; vB(i, _, j); _ = c[v >> 2] | 0; if (_ >>> 0 < (c[w >> 2] | 0) >>> 0) { c[_ >> 2] = 0; aa = (_ + 4) | 0; c[aa >> 2] = 0; $ = (_ + 8) | 0; c[$ >> 2] = 0; c[(_ + 12) >> 2] = c[K >> 2]; c[_ >> 2] = c[i >> 2]; c[aa >> 2] = c[L >> 2]; c[$ >> 2] = c[M >> 2]; c[M >> 2] = 0; c[L >> 2] = 0; c[i >> 2] = 0; c[v >> 2] = (c[v >> 2] | 0) + 16; } else wB(E, i); RA(i); iB(h); ea = Z; } else if ((o | 0) == 53) { o = 0; $ = (X + 1) | 0; if (($ | 0) != (d | 0)) switch (a[$ >> 0] | 0) { case 84: case 116: break; default: { o = 79; break e; } } $ = OB(X, d, e) | 0; if ((($ | 0) == (X | 0)) | (($ | 0) == (d | 0))) break b; FB(h, ((c[m >> 2] | 0) + -24) | 0); aa = c[m >> 2] | 0; _ = 0; while (1) { if ((_ | 0) == -1) break; ca = (_ + -1) | 0; QA((aa + ((ca * 24) | 0)) | 0); _ = ca; } c[m >> 2] = aa + -24; _ = (aa + -48) | 0; Z = a[(_ + 11) >> 0] | 0; if ((Z << 24) >> 24 < 0) ga = c[(aa + -44) >> 2] | 0; else ga = Z & 255; if (!ga) lD(_, h); else { UB(i, 18747, h); _ = a[N >> 0] | 0; Z = (_ << 24) >> 24 < 0; TA( ((c[m >> 2] | 0) + -24) | 0, Z ? c[i >> 2] | 0 : i, Z ? c[O >> 2] | 0 : _ & 255 ) | 0; iB(i); } _ = ((c[m >> 2] | 0) + -24) | 0; c[j >> 2] = c[u >> 2]; vB(i, _, j); _ = c[v >> 2] | 0; if (_ >>> 0 < (c[w >> 2] | 0) >>> 0) { c[_ >> 2] = 0; Z = (_ + 4) | 0; c[Z >> 2] = 0; Y = (_ + 8) | 0; c[Y >> 2] = 0; c[(_ + 12) >> 2] = c[P >> 2]; c[_ >> 2] = c[i >> 2]; c[Z >> 2] = c[Q >> 2]; c[Y >> 2] = c[R >> 2]; c[R >> 2] = 0; c[Q >> 2] = 0; c[i >> 2] = 0; c[v >> 2] = (c[v >> 2] | 0) + 16; } else wB(E, i); RA(i); iB(h); ea = $; } } while (0); if ((o | 0) == 79) { o = 0; Y = BC(X, d, e) | 0; if (((Y | 0) == (X | 0)) | ((Y | 0) == (d | 0))) break b; FB(h, ((c[m >> 2] | 0) + -24) | 0); Z = c[m >> 2] | 0; _ = 0; while (1) { if ((_ | 0) == -1) break; ca = (_ + -1) | 0; QA((Z + ((ca * 24) | 0)) | 0); _ = ca; } c[m >> 2] = Z + -24; _ = (Z + -48) | 0; ca = a[(_ + 11) >> 0] | 0; if ((ca << 24) >> 24 < 0) ha = c[(Z + -44) >> 2] | 0; else ha = ca & 255; if (!ha) lD(_, h); else { UB(i, 18747, h); _ = a[x >> 0] | 0; ca = (_ << 24) >> 24 < 0; TA( ((c[m >> 2] | 0) + -24) | 0, ca ? c[i >> 2] | 0 : i, ca ? c[y >> 2] | 0 : _ & 255 ) | 0; iB(i); } _ = ((c[m >> 2] | 0) + -24) | 0; c[j >> 2] = c[u >> 2]; vB(i, _, j); _ = c[v >> 2] | 0; if (_ >>> 0 < (c[w >> 2] | 0) >>> 0) { c[_ >> 2] = 0; ca = (_ + 4) | 0; c[ca >> 2] = 0; ia = (_ + 8) | 0; c[ia >> 2] = 0; c[(_ + 12) >> 2] = c[F >> 2]; c[_ >> 2] = c[i >> 2]; c[ca >> 2] = c[G >> 2]; c[ia >> 2] = c[H >> 2]; c[H >> 2] = 0; c[G >> 2] = 0; c[i >> 2] = 0; c[v >> 2] = (c[v >> 2] | 0) + 16; } else wB(E, i); RA(i); iB(h); ea = Y; } V = 1; W = ea; } W = (X + 1) | 0; c[(e + 48) >> 2] = c[g >> 2]; if ( V ? ((E = c[v >> 2] | 0), (c[(e + 16) >> 2] | 0) != (E | 0)) : 0 ) { G = 0; while (1) { if ((G | 0) == -1) break; H = (G + -1) | 0; RA((E + (H << 4)) | 0); G = H; } c[v >> 2] = E + -16; } ja = W; break a; } } while (0); ja = b; } else ja = b; } while (0); l = f; return ja | 0; } function iD(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; f = l; l = (l + 16) | 0; g = f; a: do { if ( ( ( ((b | 0) != (d | 0) ? (a[b >> 0] | 0) == 90 : 0) ? ((h = (b + 1) | 0), (i = jB(h, d, e) | 0), !(((i | 0) == (h | 0)) | ((i | 0) == (d | 0)))) : 0 ) ? (a[i >> 0] | 0) == 69 : 0 ) ? ((h = (i + 1) | 0), (h | 0) != (d | 0)) : 0 ) switch (a[h >> 0] | 0) { case 115: { j = kD((i + 2) | 0, d) | 0; k = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (k | 0)) { m = j; break a; } qB((k + -24) | 0, 20034) | 0; m = j; break a; break; } case 100: { j = (i + 2) | 0; if ((j | 0) == (d | 0)) { m = b; break a; } i = QB(j, d) | 0; if ((i | 0) == (d | 0)) { m = b; break a; } if ((a[i >> 0] | 0) != 95) { m = b; break a; } j = (i + 1) | 0; i = MB(j, d, e) | 0; k = (e + 4) | 0; if ((i | 0) == (j | 0)) { j = c[k >> 2] | 0; n = 0; while (1) { if ((n | 0) == -1) break; o = (n + -1) | 0; QA((j + ((o * 24) | 0)) | 0); n = o; } c[k >> 2] = j + -24; m = b; break a; } n = c[k >> 2] | 0; if ( ((((n - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { m = b; break a; } FB(g, (n + -24) | 0); n = c[k >> 2] | 0; o = 0; while (1) { if ((o | 0) == -1) break; p = (o + -1) | 0; QA((n + ((p * 24) | 0)) | 0); o = p; } c[k >> 2] = n + -24; qB((n + -48) | 0, 18747) | 0; o = a[(g + 11) >> 0] | 0; j = (o << 24) >> 24 < 0; TA( ((c[k >> 2] | 0) + -24) | 0, j ? c[g >> 2] | 0 : g, j ? c[(g + 4) >> 2] | 0 : o & 255 ) | 0; iB(g); m = i; break a; break; } default: { o = MB(h, d, e) | 0; if ((o | 0) == (h | 0)) { j = (e + 4) | 0; p = c[j >> 2] | 0; q = 0; while (1) { if ((q | 0) == -1) break; r = (q + -1) | 0; QA((p + ((r * 24) | 0)) | 0); q = r; } c[j >> 2] = p + -24; m = b; break a; } q = kD(o, d) | 0; h = (e + 4) | 0; i = c[h >> 2] | 0; if ( ((((i - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { m = q; break a; } FB(g, (i + -24) | 0); i = c[h >> 2] | 0; k = 0; while (1) { if ((k | 0) == -1) break; n = (k + -1) | 0; QA((i + ((n * 24) | 0)) | 0); k = n; } c[h >> 2] = i + -24; qB((i + -48) | 0, 18747) | 0; k = a[(g + 11) >> 0] | 0; o = (k << 24) >> 24 < 0; TA( ((c[h >> 2] | 0) + -24) | 0, o ? c[g >> 2] | 0 : g, o ? c[(g + 4) >> 2] | 0 : k & 255 ) | 0; iB(g); m = q; break a; } } else m = b; } while (0); l = f; return m | 0; } function jD(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0; if (((d - b) | 0) > 1) { if ( (a[b >> 0] | 0) == 83 ? (a[(b + 1) >> 0] | 0) == 116 : 0 ) { f = (b + 2) | 0; if ((f | 0) == (d | 0)) { g = 0; h = d; } else { g = 0; h = (a[f >> 0] | 0) == 76 ? (b + 3) | 0 : f; } } else { g = 1; h = b; } f = BC(h, d, e) | 0; d = (f | 0) == (h | 0); if (!(g | d)) { g = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (g | 0)) i = b; else { pB((g + -24) | 0, 0, 18969) | 0; i = f; } } else i = d ? b : f; } else i = b; return i | 0; } function kD(b, c) { b = b | 0; c = c | 0; var d = 0, e = 0, f = 0, g = 0; a: do { if ((b | 0) != (c | 0)) { d = a[b >> 0] | 0; if ((d << 24) >> 24 != 95) { if (((((d << 24) >> 24) + -48) | 0) >>> 0 >= 10) { e = b; break; } d = b; while (1) { f = (d + 1) | 0; if ((f | 0) == (c | 0)) { e = c; break a; } if ((((a[f >> 0] | 0) + -48) | 0) >>> 0 < 10) d = f; else { e = f; break a; } } } d = (b + 1) | 0; if ((d | 0) != (c | 0)) { f = a[d >> 0] | 0; if (((((f << 24) >> 24) + -48) | 0) >>> 0 < 10) { e = (b + 2) | 0; break; } if ((f << 24) >> 24 == 95) { f = (b + 2) | 0; while (1) { if ((f | 0) == (c | 0)) { e = b; break a; } g = a[f >> 0] | 0; if (((((g << 24) >> 24) + -48) | 0) >>> 0 >= 10) break; f = (f + 1) | 0; } return ((g << 24) >> 24 == 95 ? (f + 1) | 0 : b) | 0; } else e = b; } else e = b; } else e = b; } while (0); return e | 0; } function lD(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0; if ((b | 0) != (d | 0)) { e = a[(d + 11) >> 0] | 0; f = (e << 24) >> 24 < 0; vC( b, f ? c[d >> 2] | 0 : d, f ? c[(d + 4) >> 2] | 0 : e & 255 ); } return; } function mD(a) { a = a | 0; var b = 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, 20066, 21); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function nD(a, b) { a = a | 0; b = b | 0; c[a >> 2] = c[b >> 2]; return; } function oD(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; d = l; l = (l + 32) | 0; e = (d + 20) | 0; f = d; g = (a + 4) | 0; h = ((((c[g >> 2] | 0) - (c[a >> 2] | 0)) >> 4) + 1) | 0; i = qD(a) | 0; if (i >>> 0 < h >>> 0) Wz(a); else { j = c[a >> 2] | 0; k = ((c[(a + 8) >> 2] | 0) - j) | 0; m = k >> 3; rD( f, (k >> 4) >>> 0 < (i >>> 1) >>> 0 ? m >>> 0 < h >>> 0 ? h : m : i, ((c[g >> 2] | 0) - j) >> 4, (a + 12) | 0 ); j = (f + 8) | 0; g = c[j >> 2] | 0; nD(e, b); c[g >> 2] = 0; c[(g + 4) >> 2] = 0; c[(g + 8) >> 2] = 0; c[(g + 12) >> 2] = c[e >> 2]; c[j >> 2] = g + 16; sD(a, f); tD(f); l = d; return; } } function pD(b, c, d) { b = b | 0; c = c | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; a: do { if ((b | 0) == (c | 0)) e = b; else switch (a[b >> 0] | 0) { case 88: { f = (b + 1) | 0; g = SB(f, c, d) | 0; if (((g | 0) == (f | 0)) | ((g | 0) == (c | 0))) { e = b; break a; } e = (a[g >> 0] | 0) == 69 ? (g + 1) | 0 : b; break a; break; } case 74: { g = (b + 1) | 0; if ((g | 0) == (c | 0)) { e = b; break a; } f = g; while (1) { if ((a[f >> 0] | 0) == 69) break; g = pD(f, c, d) | 0; if ((g | 0) == (f | 0)) { e = b; break a; } else f = g; } e = (f + 1) | 0; break a; break; } case 76: { g = (b + 1) | 0; if ((g | 0) != (c | 0) ? (a[g >> 0] | 0) == 90 : 0) { g = (b + 2) | 0; h = jB(g, c, d) | 0; if (((h | 0) == (g | 0)) | ((h | 0) == (c | 0))) { e = b; break a; } e = (a[h >> 0] | 0) == 69 ? (h + 1) | 0 : b; break a; } e = WB(b, c, d) | 0; break a; break; } default: { e = mB(b, c, d) | 0; break a; } } } while (0); return e | 0; } function qD(a) { a = a | 0; return 268435455; } function rD(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0; f = (a + 12) | 0; c[f >> 2] = 0; c[(a + 16) >> 2] = e; if (!b) g = 0; else g = uD(e, b) | 0; c[a >> 2] = g; e = (g + (d << 4)) | 0; c[(a + 8) >> 2] = e; c[(a + 4) >> 2] = e; c[f >> 2] = g + (b << 4); return; } function sD(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0; d = c[a >> 2] | 0; e = (a + 4) | 0; f = (b + 4) | 0; g = c[e >> 2] | 0; while (1) { if ((g | 0) == (d | 0)) break; h = c[f >> 2] | 0; i = (h + -16) | 0; j = (g + -16) | 0; c[i >> 2] = 0; k = (h + -12) | 0; c[k >> 2] = 0; l = (h + -8) | 0; c[l >> 2] = 0; c[(h + -4) >> 2] = c[(g + -4) >> 2]; c[i >> 2] = c[j >> 2]; i = (g + -12) | 0; c[k >> 2] = c[i >> 2]; k = (g + -8) | 0; c[l >> 2] = c[k >> 2]; c[k >> 2] = 0; c[i >> 2] = 0; c[j >> 2] = 0; c[f >> 2] = (c[f >> 2] | 0) + -16; g = j; } g = c[a >> 2] | 0; c[a >> 2] = c[f >> 2]; c[f >> 2] = g; g = (b + 8) | 0; d = c[e >> 2] | 0; c[e >> 2] = c[g >> 2]; c[g >> 2] = d; d = (a + 8) | 0; a = (b + 12) | 0; g = c[d >> 2] | 0; c[d >> 2] = c[a >> 2]; c[a >> 2] = g; c[b >> 2] = c[f >> 2]; return; } function tD(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = c[(a + 4) >> 2] | 0; d = (a + 8) | 0; while (1) { e = c[d >> 2] | 0; if ((e | 0) == (b | 0)) break; f = (e + -16) | 0; c[d >> 2] = f; XA(f); } d = c[a >> 2] | 0; if (d | 0) aB( c[(a + 16) >> 2] | 0, d, ((c[(a + 12) >> 2] | 0) - d) >> 4 ); return; } function uD(a, b) { a = a | 0; b = b | 0; return aD(c[a >> 2] | 0, b << 4) | 0; } function vD(a) { a = a | 0; var b = 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, 20091, 2); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function wD(b, d) { b = b | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0; e = l; l = (l + 16) | 0; f = e; g = (b + 11) | 0; h = a[g >> 0] | 0; i = (h << 24) >> 24 < 0; if (i) { j = c[(b + 4) >> 2] | 0; k = j >>> 0 < 11 ? j : 11; m = j; n = ((c[(b + 8) >> 2] & 2147483647) + -1) | 0; } else { j = h & 255; k = j >>> 0 < 11 ? j : 11; m = j; n = 10; } if (((k - m + n) | 0) >>> 0 < d >>> 0) dB(b, n, (d - k + m - n) | 0, m, 0, k, d, 20094); else { if (i) o = c[b >> 2] | 0; else o = b; do { if ((k | 0) != (d | 0)) { i = (m - k) | 0; if (!i) { p = k; q = 0; r = 20094; s = d; t = 17; } else { if (k >>> 0 > d >>> 0) { wC(o, 20094, d) | 0; wC((o + d) | 0, (o + k) | 0, i) | 0; u = k; v = d; break; } do { if ( (o >>> 0 < 20094 >>> 0) & (((o + m) | 0) >>> 0 > 20094 >>> 0) ) { if (((o + k) | 0) >>> 0 > 20094 >>> 0) { wC(o, 20094, k) | 0; w = 0; x = k; y = (20094 + d) | 0; z = (d - k) | 0; break; } else { w = k; x = 0; y = (20094 + (d - k)) | 0; z = d; break; } } else { w = k; x = 0; y = 20094; z = d; } } while (0); n = (o + x) | 0; wC((n + z) | 0, (n + w) | 0, i) | 0; p = w; q = x; r = y; s = z; t = 17; } } else { p = d; q = 0; r = 20094; s = d; t = 17; } } while (0); if ((t | 0) == 17) { wC((o + q) | 0, r, s) | 0; u = p; v = s; } s = (v - u + m) | 0; if ((a[g >> 0] | 0) < 0) c[(b + 4) >> 2] = s; else a[g >> 0] = s; a[f >> 0] = 0; cB((o + s) | 0, f); } l = e; return; } function xD(a) { a = a | 0; lb(); } function yD(a, b, c) { a = a | 0; b = b | 0; c = c | 0; var d = 0; if (!c) d = 0; else d = Qy(a, b, c) | 0; return d | 0; } function zD(b, d, e, f) { b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0; g = l; l = (l + 16) | 0; h = g; i = (b + 11) | 0; j = a[i >> 0] | 0; k = (j << 24) >> 24 < 0; if (k) m = c[(b + 4) >> 2] | 0; else m = j & 255; if (m >>> 0 < d >>> 0) xD(b); if (k) n = ((c[(b + 8) >> 2] & 2147483647) + -1) | 0; else n = 10; if (((n - m) | 0) >>> 0 >= f >>> 0) { if (f | 0) { if (k) o = c[b >> 2] | 0; else o = b; k = (m - d) | 0; j = (o + d) | 0; if (!k) p = e; else { wC((j + f) | 0, j, k) | 0; p = (j >>> 0 <= e >>> 0) & (((o + m) | 0) >>> 0 > e >>> 0) ? (e + f) | 0 : e; } wC(j, p, f) | 0; p = (m + f) | 0; if ((a[i >> 0] | 0) < 0) c[(b + 4) >> 2] = p; else a[i >> 0] = p; a[h >> 0] = 0; cB((o + p) | 0, h); } } else dB(b, n, (m + f - n) | 0, m, d, 0, f, e); l = g; return b | 0; } function AD(a) { a = a | 0; return 268435455; } function BD(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0; f = (a + 12) | 0; c[f >> 2] = 0; c[(a + 16) >> 2] = e; if (!b) g = 0; else g = ED(e, b) | 0; c[a >> 2] = g; e = (g + (d << 4)) | 0; c[(a + 8) >> 2] = e; c[(a + 4) >> 2] = e; c[f >> 2] = g + (b << 4); return; } function CD(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0; d = c[a >> 2] | 0; e = (a + 4) | 0; f = (b + 4) | 0; g = c[e >> 2] | 0; while (1) { if ((g | 0) == (d | 0)) break; h = c[f >> 2] | 0; i = (h + -16) | 0; j = (g + -16) | 0; c[i >> 2] = 0; k = (h + -12) | 0; c[k >> 2] = 0; l = (h + -8) | 0; c[l >> 2] = 0; c[(h + -4) >> 2] = c[(g + -4) >> 2]; c[i >> 2] = c[j >> 2]; i = (g + -12) | 0; c[k >> 2] = c[i >> 2]; k = (g + -8) | 0; c[l >> 2] = c[k >> 2]; c[k >> 2] = 0; c[i >> 2] = 0; c[j >> 2] = 0; c[f >> 2] = (c[f >> 2] | 0) + -16; g = j; } g = c[a >> 2] | 0; c[a >> 2] = c[f >> 2]; c[f >> 2] = g; g = (b + 8) | 0; d = c[e >> 2] | 0; c[e >> 2] = c[g >> 2]; c[g >> 2] = d; d = (a + 8) | 0; a = (b + 12) | 0; g = c[d >> 2] | 0; c[d >> 2] = c[a >> 2]; c[a >> 2] = g; c[b >> 2] = c[f >> 2]; return; } function DD(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0; b = c[(a + 4) >> 2] | 0; d = (a + 8) | 0; while (1) { e = c[d >> 2] | 0; if ((e | 0) == (b | 0)) break; f = (e + -16) | 0; c[d >> 2] = f; RA(f); } d = c[a >> 2] | 0; if (d | 0) YA( c[(a + 16) >> 2] | 0, d, ((c[(a + 12) >> 2] | 0) - d) >> 4 ); return; } function ED(a, b) { a = a | 0; b = b | 0; return aD(c[a >> 2] | 0, b << 4) | 0; } function FD(a) { a = a | 0; var b = 0; if (!(XC(a) | 0)) Wz(a); else { b = $C((a + 12) | 0, 1) | 0; c[(a + 4) >> 2] = b; c[a >> 2] = b; c[(a + 8) >> 2] = b + 24; return; } } function GD(b) { b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0; d = l; l = (l + 16) | 0; e = d; f = (b + 11) | 0; g = a[f >> 0] | 0; if ((g << 24) >> 24 < 0) { h = c[b >> 2] | 0; i = c[(b + 4) >> 2] | 0; } else { h = b; i = g & 255; } j = ((i | 0) != 0) & 1; k = (i - j) | 0; if (!k) m = g; else { wC(h, (h + j) | 0, k) | 0; m = a[f >> 0] | 0; } if ((m << 24) >> 24 < 0) c[(b + 4) >> 2] = k; else a[f >> 0] = k; a[e >> 0] = 0; cB((h + k) | 0, e); l = d; return; } function HD(a) { a = a | 0; var b = 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, 19867, 7); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function ID(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 3); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function JD(a) { a = a | 0; var b = 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, 20287, 18); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function KD(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, b, 8); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function LD(a) { a = a | 0; var b = 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; RB(a, 20280, 6); b = (a + 12) | 0; c[b >> 2] = 0; c[(b + 4) >> 2] = 0; c[(b + 8) >> 2] = 0; a = 0; while (1) { if ((a | 0) == 3) break; c[(b + (a << 2)) >> 2] = 0; a = (a + 1) | 0; } return; } function MD(a, b) { a = a | 0; b = b | 0; c[a >> 2] = b; c[(a + 4) >> 2] = c[b >> 2]; return; } function ND(b, d) { b = b | 0; d = d | 0; c[b >> 2] = d; a[(b + 4) >> 0] = a[d >> 0] | 0; return; } function OD(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; f = l; l = (l + 64) | 0; g = (f + 60) | 0; h = (f + 48) | 0; i = (f + 36) | 0; j = (f + 24) | 0; k = (f + 12) | 0; m = f; a: do { if (((d - b) | 0) > 2) { switch (a[b >> 0] | 0) { case 84: break; case 71: { switch (a[(b + 1) >> 0] | 0) { case 86: { n = (b + 2) | 0; o = MB(n, d, e) | 0; if ((o | 0) == (n | 0)) { p = b; q = 60; break a; } n = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (n | 0)) { r = b; break a; } pB((n + -24) | 0, 0, 20505) | 0; p = o; q = 60; break a; break; } case 82: { o = (b + 2) | 0; n = MB(o, d, e) | 0; if ((n | 0) == (o | 0)) { p = b; q = 60; break a; } o = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (o | 0)) { r = b; break a; } pB((o + -24) | 0, 0, 20525) | 0; p = n; q = 60; break a; break; } default: { p = b; q = 60; break a; } } break; } default: { p = b; q = 60; break a; } } n = (b + 1) | 0; switch (a[n >> 0] | 0) { case 86: { o = (b + 2) | 0; s = mB(o, d, e) | 0; if ((s | 0) == (o | 0)) { p = b; q = 60; break a; } o = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (o | 0)) { r = b; break a; } pB((o + -24) | 0, 0, 20354) | 0; p = s; q = 60; break a; break; } case 84: { s = (b + 2) | 0; o = mB(s, d, e) | 0; if ((o | 0) == (s | 0)) { p = b; q = 60; break a; } s = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (s | 0)) { r = b; break a; } pB((s + -24) | 0, 0, 20366) | 0; p = o; q = 60; break a; break; } case 73: { o = (b + 2) | 0; s = mB(o, d, e) | 0; if ((s | 0) == (o | 0)) { p = b; q = 60; break a; } o = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (o | 0)) { r = b; break a; } pB((o + -24) | 0, 0, 20375) | 0; p = s; q = 60; break a; break; } case 83: { s = (b + 2) | 0; o = mB(s, d, e) | 0; if ((o | 0) == (s | 0)) { p = b; q = 60; break a; } s = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (s | 0)) { r = b; break a; } pB((s + -24) | 0, 0, 20389) | 0; p = o; q = 60; break a; break; } case 99: { o = (b + 2) | 0; s = RD(o, d) | 0; if ((s | 0) == (o | 0)) { p = b; q = 60; break a; } o = RD(s, d) | 0; if ((o | 0) == (s | 0)) { p = b; q = 60; break a; } s = jB(o, d, e) | 0; if ((s | 0) == (o | 0)) { p = b; q = 60; break a; } o = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) == (o | 0)) { r = b; break a; } pB((o + -24) | 0, 0, 20408) | 0; p = s; q = 60; break a; break; } case 67: { s = (b + 2) | 0; o = mB(s, d, e) | 0; if ((o | 0) == (s | 0)) { p = b; q = 60; break a; } s = QB(o, d) | 0; if (((s | 0) == (o | 0)) | ((s | 0) == (d | 0))) { p = b; q = 60; break a; } if ((a[s >> 0] | 0) != 95) { p = b; q = 60; break a; } o = (s + 1) | 0; s = mB(o, d, e) | 0; if ((s | 0) == (o | 0)) { p = b; q = 60; break a; } o = (e + 4) | 0; t = c[o >> 2] | 0; if ( ((((t - (c[e >> 2] | 0)) | 0) / 24) | 0) >>> 0 < 2 ) { r = b; break a; } FB(h, (t + -24) | 0); t = c[o >> 2] | 0; u = 0; while (1) { if ((u | 0) == -1) break; v = (u + -1) | 0; QA((t + ((v * 24) | 0)) | 0); u = v; } c[o >> 2] = t + -24; pB(h, 0, 20435) | 0; c[k >> 2] = c[h >> 2]; c[(k + 4) >> 2] = c[(h + 4) >> 2]; c[(k + 8) >> 2] = c[(h + 8) >> 2]; u = 0; while (1) { if ((u | 0) == 3) break; c[(h + (u << 2)) >> 2] = 0; u = (u + 1) | 0; } qB(k, 20460) | 0; c[j >> 2] = c[k >> 2]; c[(j + 4) >> 2] = c[(k + 4) >> 2]; c[(j + 8) >> 2] = c[(k + 8) >> 2]; u = 0; while (1) { if ((u | 0) == 3) break; c[(k + (u << 2)) >> 2] = 0; u = (u + 1) | 0; } FB(m, ((c[o >> 2] | 0) + -24) | 0); u = a[(m + 11) >> 0] | 0; t = (u << 24) >> 24 < 0; TA( j, t ? c[m >> 2] | 0 : m, t ? c[(m + 4) >> 2] | 0 : u & 255 ) | 0; c[i >> 2] = c[j >> 2]; c[(i + 4) >> 2] = c[(j + 4) >> 2]; c[(i + 8) >> 2] = c[(j + 8) >> 2]; u = 0; while (1) { if ((u | 0) == 3) break; c[(j + (u << 2)) >> 2] = 0; u = (u + 1) | 0; } u = c[o >> 2] | 0; t = (u + -24) | 0; v = (t + 11) | 0; if ((a[v >> 0] | 0) < 0) { w = c[t >> 2] | 0; a[g >> 0] = 0; cB(w, g); c[(u + -20) >> 2] = 0; } else { a[g >> 0] = 0; cB(t, g); a[v >> 0] = 0; } TB(t); c[t >> 2] = c[i >> 2]; c[(t + 4) >> 2] = c[(i + 4) >> 2]; c[(t + 8) >> 2] = c[(i + 8) >> 2]; t = 0; while (1) { if ((t | 0) == 3) break; c[(i + (t << 2)) >> 2] = 0; t = (t + 1) | 0; } iB(i); iB(m); iB(j); iB(k); iB(h); p = s; q = 60; break a; break; } default: { t = RD(n, d) | 0; do { if ((t | 0) != (n | 0)) { o = jB(t, d, e) | 0; if ((o | 0) != (t | 0)) { v = c[(e + 4) >> 2] | 0; if ((c[e >> 2] | 0) != (v | 0)) { u = (v + -24) | 0; if ((a[(b + 2) >> 0] | 0) == 118) { pB(u, 0, 20465) | 0; x = 0; y = o; break; } else { pB(u, 0, 20483) | 0; x = 0; y = o; break; } } else { x = 1; y = b; } } else { x = 0; y = b; } } else { x = 3; y = b; } } while (0); switch (x & 3) { case 3: case 0: { p = y; q = 60; break a; break; } default: { } } if (!x) { p = y; q = 60; break a; } else { r = b; break a; } } } } else { p = b; q = 60; } } while (0); if ((q | 0) == 60) r = p; l = f; return r | 0; } function PD(b) { b = b | 0; a[c[b >> 2] >> 0] = a[(b + 4) >> 0] | 0; return; } function QD(a) { a = a | 0; c[c[a >> 2] >> 2] = c[(a + 4) >> 2]; return; } function RD(b, c) { b = b | 0; c = c | 0; var d = 0, e = 0, f = 0; a: do { if ((b | 0) != (c | 0)) { switch (a[b >> 0] | 0) { case 104: { d = (b + 1) | 0; e = QB(d, c) | 0; if (((e | 0) == (d | 0)) | ((e | 0) == (c | 0))) { f = b; break a; } return ((a[e >> 0] | 0) == 95 ? (e + 1) | 0 : b) | 0; } case 118: break; default: { f = b; break a; } } e = (b + 1) | 0; d = QB(e, c) | 0; if ( ( !(((d | 0) == (e | 0)) | ((d | 0) == (c | 0))) ? (a[d >> 0] | 0) == 95 : 0 ) ? ((e = (d + 1) | 0), (d = QB(e, c) | 0), !(((d | 0) == (e | 0)) | ((d | 0) == (c | 0)))) : 0 ) f = (a[d >> 0] | 0) == 95 ? (d + 1) | 0 : b; else f = b; } else f = b; } while (0); return f | 0; } function SD(a, b) { a = a | 0; b = b | 0; c[a >> 2] = b; return; } function TD(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; c[(a + 12) >> 2] = c[b >> 2]; return; } function UD(a, b) { a = a | 0; b = b | 0; c[a >> 2] = b; return; } function VD(a, b) { a = a | 0; b = b | 0; c[a >> 2] = 0; c[(a + 4) >> 2] = 0; c[(a + 8) >> 2] = 0; c[(a + 12) >> 2] = c[b >> 2]; return; } function WD(b) { b = b | 0; var c = 0; if ((a[b >> 0] | 0) == 1) c = 0; else { a[b >> 0] = 1; c = 1; } return c | 0; } function XD(a) { a = a | 0; return; } function YD(a) { a = a | 0; return; } function ZD() { var a = 0; a = c[5564] | 0; c[5564] = a + 0; return a | 0; } function _D(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; e = l; l = (l + 16) | 0; f = e; c[f >> 2] = c[d >> 2]; g = rc[c[((c[a >> 2] | 0) + 16) >> 2] & 31](a, b, f) | 0; if (g) c[d >> 2] = c[f >> 2]; l = e; return (g & 1) | 0; } function $D(a) { a = a | 0; var b = 0; if (!a) b = 0; else b = ((kA(a, 10840, 10896, 0) | 0) != 0) & 1; return b | 0; } function aE() {} function bE(a, b) { a = a | 0; b = b | 0; var c = 0, d = 0, e = 0, f = 0; c = a & 65535; d = b & 65535; e = N(d, c) | 0; f = a >>> 16; a = ((e >>> 16) + (N(d, f) | 0)) | 0; d = b >>> 16; b = N(d, c) | 0; return ( ((y = ((a >>> 16) + (N(d, f) | 0) + ((((a & 65535) + b) | 0) >>> 16)) | 0), ((a + b) << 16) | (e & 65535) | 0) | 0 ); } function cE(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; var e = 0, f = 0; e = a; a = c; c = bE(e, a) | 0; f = y; return ( ((y = ((N(b, a) | 0) + (N(d, e) | 0) + f) | (f & 0)), c | 0 | 0) | 0 ); } function dE(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; var e = 0; e = (a + c) >>> 0; return ( ((y = (b + d + ((e >>> 0 < a >>> 0) | 0)) >>> 0), e | 0) | 0 ); } function eE(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; var e = 0; e = (b - d) >>> 0; e = (b - d - ((c >>> 0 > a >>> 0) | 0)) >>> 0; return ((y = e), ((a - c) >>> 0) | 0) | 0; } function fE(a) { a = a | 0; return (a ? (31 - (Q(a ^ (a - 1)) | 0)) | 0 : 32) | 0; } function gE(a, b, d, e, f) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0; g = a; h = b; i = h; j = d; k = e; l = k; if (!i) { m = (f | 0) != 0; if (!l) { if (m) { c[f >> 2] = (g >>> 0) % (j >>> 0); c[(f + 4) >> 2] = 0; } n = 0; o = ((g >>> 0) / (j >>> 0)) >>> 0; return ((y = n), o) | 0; } else { if (!m) { n = 0; o = 0; return ((y = n), o) | 0; } c[f >> 2] = a | 0; c[(f + 4) >> 2] = b & 0; n = 0; o = 0; return ((y = n), o) | 0; } } m = (l | 0) == 0; do { if (j) { if (!m) { p = ((Q(l | 0) | 0) - (Q(i | 0) | 0)) | 0; if (p >>> 0 <= 31) { q = (p + 1) | 0; r = (31 - p) | 0; s = (p - 31) >> 31; t = q; u = ((g >>> (q >>> 0)) & s) | (i << r); v = (i >>> (q >>> 0)) & s; w = 0; x = g << r; break; } if (!f) { n = 0; o = 0; return ((y = n), o) | 0; } c[f >> 2] = a | 0; c[(f + 4) >> 2] = h | (b & 0); n = 0; o = 0; return ((y = n), o) | 0; } r = (j - 1) | 0; if ((r & j) | 0) { s = ((Q(j | 0) | 0) + 33 - (Q(i | 0) | 0)) | 0; q = (64 - s) | 0; p = (32 - s) | 0; z = p >> 31; A = (s - 32) | 0; B = A >> 31; t = s; u = (((p - 1) >> 31) & (i >>> (A >>> 0))) | (((i << p) | (g >>> (s >>> 0))) & B); v = B & (i >>> (s >>> 0)); w = (g << q) & z; x = (((i << q) | (g >>> (A >>> 0))) & z) | ((g << p) & ((s - 33) >> 31)); break; } if (f | 0) { c[f >> 2] = r & g; c[(f + 4) >> 2] = 0; } if ((j | 0) == 1) { n = h | (b & 0); o = a | 0 | 0; return ((y = n), o) | 0; } else { r = fE(j | 0) | 0; n = (i >>> (r >>> 0)) | 0; o = (i << (32 - r)) | (g >>> (r >>> 0)) | 0; return ((y = n), o) | 0; } } else { if (m) { if (f | 0) { c[f >> 2] = (i >>> 0) % (j >>> 0); c[(f + 4) >> 2] = 0; } n = 0; o = ((i >>> 0) / (j >>> 0)) >>> 0; return ((y = n), o) | 0; } if (!g) { if (f | 0) { c[f >> 2] = 0; c[(f + 4) >> 2] = (i >>> 0) % (l >>> 0); } n = 0; o = ((i >>> 0) / (l >>> 0)) >>> 0; return ((y = n), o) | 0; } r = (l - 1) | 0; if (!(r & l)) { if (f | 0) { c[f >> 2] = a | 0; c[(f + 4) >> 2] = (r & i) | (b & 0); } n = 0; o = i >>> ((fE(l | 0) | 0) >>> 0); return ((y = n), o) | 0; } r = ((Q(l | 0) | 0) - (Q(i | 0) | 0)) | 0; if (r >>> 0 <= 30) { s = (r + 1) | 0; p = (31 - r) | 0; t = s; u = (i << p) | (g >>> (s >>> 0)); v = i >>> (s >>> 0); w = 0; x = g << p; break; } if (!f) { n = 0; o = 0; return ((y = n), o) | 0; } c[f >> 2] = a | 0; c[(f + 4) >> 2] = h | (b & 0); n = 0; o = 0; return ((y = n), o) | 0; } } while (0); if (!t) { C = x; D = w; E = v; F = u; G = 0; H = 0; } else { b = d | 0 | 0; d = k | (e & 0); e = dE(b | 0, d | 0, -1, -1) | 0; k = y; h = x; x = w; w = v; v = u; u = t; t = 0; do { a = h; h = (x >>> 31) | (h << 1); x = t | (x << 1); g = (v << 1) | (a >>> 31) | 0; a = (v >>> 31) | (w << 1) | 0; eE(e | 0, k | 0, g | 0, a | 0) | 0; i = y; l = (i >> 31) | (((i | 0) < 0 ? -1 : 0) << 1); t = l & 1; v = eE( g | 0, a | 0, (l & b) | 0, (((((i | 0) < 0 ? -1 : 0) >> 31) | (((i | 0) < 0 ? -1 : 0) << 1)) & d) | 0 ) | 0; w = y; u = (u - 1) | 0; } while ((u | 0) != 0); C = h; D = x; E = w; F = v; G = 0; H = t; } t = D; D = 0; if (f | 0) { c[f >> 2] = F; c[(f + 4) >> 2] = E; } n = ((t | 0) >>> 31) | ((C | D) << 1) | (((D << 1) | (t >>> 31)) & 0) | G; o = (((t << 1) | (0 >>> 31)) & -2) | H; return ((y = n), o) | 0; } function hE(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; return gE(a, b, c, d, 0) | 0; } function iE(a, b, c) { a = a | 0; b = b | 0; c = c | 0; if ((c | 0) < 32) { y = b >>> c; return (a >>> c) | ((b & ((1 << c) - 1)) << (32 - c)); } y = 0; return (b >>> (c - 32)) | 0; } function jE(a, b, c) { a = a | 0; b = b | 0; c = c | 0; if ((c | 0) < 32) { y = (b << c) | ((a & (((1 << c) - 1) << (32 - c))) >>> (32 - c)); return a << c; } y = a << (c - 32); return 0; } function kE(a) { a = a | 0; return ( ((a & 255) << 24) | (((a >> 8) & 255) << 16) | (((a >> 16) & 255) << 8) | (a >>> 24) | 0 ); } function lE(a, b, c) { a = a | 0; b = b | 0; c = c | 0; c = Q(b) | 0; if ((c | 0) == 32) c = (c + (Q(a) | 0)) | 0; y = 0; return c | 0; } function mE(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; if ((e | 0) >= 8192) return nb(b | 0, d | 0, e | 0) | 0; f = b | 0; g = (b + e) | 0; if ((b & 3) == (d & 3)) { while (b & 3) { if (!e) return f | 0; a[b >> 0] = a[d >> 0] | 0; b = (b + 1) | 0; d = (d + 1) | 0; e = (e - 1) | 0; } h = (g & -4) | 0; e = (h - 64) | 0; while ((b | 0) <= (e | 0)) { c[b >> 2] = c[d >> 2]; c[(b + 4) >> 2] = c[(d + 4) >> 2]; c[(b + 8) >> 2] = c[(d + 8) >> 2]; c[(b + 12) >> 2] = c[(d + 12) >> 2]; c[(b + 16) >> 2] = c[(d + 16) >> 2]; c[(b + 20) >> 2] = c[(d + 20) >> 2]; c[(b + 24) >> 2] = c[(d + 24) >> 2]; c[(b + 28) >> 2] = c[(d + 28) >> 2]; c[(b + 32) >> 2] = c[(d + 32) >> 2]; c[(b + 36) >> 2] = c[(d + 36) >> 2]; c[(b + 40) >> 2] = c[(d + 40) >> 2]; c[(b + 44) >> 2] = c[(d + 44) >> 2]; c[(b + 48) >> 2] = c[(d + 48) >> 2]; c[(b + 52) >> 2] = c[(d + 52) >> 2]; c[(b + 56) >> 2] = c[(d + 56) >> 2]; c[(b + 60) >> 2] = c[(d + 60) >> 2]; b = (b + 64) | 0; d = (d + 64) | 0; } while ((b | 0) < (h | 0)) { c[b >> 2] = c[d >> 2]; b = (b + 4) | 0; d = (d + 4) | 0; } } else { h = (g - 4) | 0; while ((b | 0) < (h | 0)) { a[b >> 0] = a[d >> 0] | 0; a[(b + 1) >> 0] = a[(d + 1) >> 0] | 0; a[(b + 2) >> 0] = a[(d + 2) >> 0] | 0; a[(b + 3) >> 0] = a[(d + 3) >> 0] | 0; b = (b + 4) | 0; d = (d + 4) | 0; } } while ((b | 0) < (g | 0)) { a[b >> 0] = a[d >> 0] | 0; b = (b + 1) | 0; d = (d + 1) | 0; } return f | 0; } function nE(b, c, d) { b = b | 0; c = c | 0; d = d | 0; var e = 0; if (((c | 0) < (b | 0)) & ((b | 0) < ((c + d) | 0))) { e = b; c = (c + d) | 0; b = (b + d) | 0; while ((d | 0) > 0) { b = (b - 1) | 0; c = (c - 1) | 0; d = (d - 1) | 0; a[b >> 0] = a[c >> 0] | 0; } b = e; } else mE(b, c, d) | 0; return b | 0; } function oE(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0; f = (b + e) | 0; d = d & 255; if ((e | 0) >= 67) { while (b & 3) { a[b >> 0] = d; b = (b + 1) | 0; } g = (f & -4) | 0; h = (g - 64) | 0; i = d | (d << 8) | (d << 16) | (d << 24); while ((b | 0) <= (h | 0)) { c[b >> 2] = i; c[(b + 4) >> 2] = i; c[(b + 8) >> 2] = i; c[(b + 12) >> 2] = i; c[(b + 16) >> 2] = i; c[(b + 20) >> 2] = i; c[(b + 24) >> 2] = i; c[(b + 28) >> 2] = i; c[(b + 32) >> 2] = i; c[(b + 36) >> 2] = i; c[(b + 40) >> 2] = i; c[(b + 44) >> 2] = i; c[(b + 48) >> 2] = i; c[(b + 52) >> 2] = i; c[(b + 56) >> 2] = i; c[(b + 60) >> 2] = i; b = (b + 64) | 0; } while ((b | 0) < (g | 0)) { c[b >> 2] = i; b = (b + 4) | 0; } } while ((b | 0) < (f | 0)) { a[b >> 0] = d; b = (b + 1) | 0; } return (f - e) | 0; } function pE(a) { a = a | 0; var b = 0, d = 0; b = c[i >> 2] | 0; d = (b + a) | 0; if ((((a | 0) > 0) & ((d | 0) < (b | 0))) | ((d | 0) < 0)) { V() | 0; Ca(12); return -1; } c[i >> 2] = d; if ((d | 0) > (U() | 0) ? (T() | 0) == 0 : 0) { c[i >> 2] = b; Ca(12); return -1; } return b | 0; } function qE(a) { a = a | 0; return oc[a & 7]() | 0; } function rE(a, b) { a = a | 0; b = b | 0; return pc[a & 63](b | 0) | 0; } function sE(a, b, c) { a = a | 0; b = b | 0; c = c | 0; return qc[a & 63](b | 0, c | 0) | 0; } function tE(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; return rc[a & 31](b | 0, c | 0, d | 0) | 0; } function uE(a, b, c, d, e) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; return sc[a & 15](b | 0, c | 0, d | 0, e | 0) | 0; } function vE(a, b, c, d, e, f) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; return tc[a & 7](b | 0, c | 0, d | 0, e | 0, f | 0) | 0; } function wE(a, b, c, d, e, f, g) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; return ( uc[a & 31](b | 0, c | 0, d | 0, e | 0, f | 0, g | 0) | 0 ); } function xE(a) { a = a | 0; vc[a & 3](); } function yE(a, b) { a = a | 0; b = b | 0; wc[a & 127](b | 0); } function zE(a, b, c) { a = a | 0; b = b | 0; c = c | 0; xc[a & 31](b | 0, c | 0); } function AE(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; yc[a & 7](b | 0, c | 0, d | 0); } function BE(a, b, c, d, e) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; zc[a & 7](b | 0, c | 0, d | 0, e | 0); } function CE(a, b, c, d, e, f) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; Ac[a & 3](b | 0, c | 0, d | 0, e | 0, f | 0); } function DE(a, b, c, d, e, f, g) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; Bc[a & 3](b | 0, c | 0, d | 0, e | 0, f | 0, g | 0); } function EE() { R(0); return 0; } function FE(a) { a = a | 0; R(1); return 0; } function GE(a, b) { a = a | 0; b = b | 0; R(2); return 0; } function HE(a, b, c) { a = a | 0; b = b | 0; c = c | 0; R(3); return 0; } function IE(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; R(4); return 0; } function JE(a, b, c, d, e) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; R(5); return 0; } function KE(a, b, c, d, e, f) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; R(6); return 0; } function LE() { R(7); } function ME(a) { a = a | 0; R(8); } function NE(a, b) { a = a | 0; b = b | 0; R(9); } function OE(a, b, c) { a = a | 0; b = b | 0; c = c | 0; R(10); } function PE(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; R(11); } function QE(a, b, c, d, e) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; R(12); } function RE(a, b, c, d, e, f) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; R(13); } // EMSCRIPTEN_END_FUNCS var oc = [EE, Ce, Me, Ue, ge, EE, EE, EE]; var pc = [ FE, fd, ld, nd, td, vd, Bd, Ed, Kd, Md, Sd, Ud, _d, kf, qf, xf, Df, If, Of, Tf, Zf, fg, lg, og, ug, Fg, Lg, Og, Ug, Iy, Tz, qe, ve, Qc, Ae, De, Ke, Ne, Se, Ve, Wc, ee, he, Mc, Oo, Gx, FE, FE, FE, FE, FE, FE, FE, FE, FE, FE, FE, FE, FE, FE, FE, FE, FE, FE, ]; var qc = [ GE, kd, sd, Ad, Jd, Rd, Zd, pf, Cf, Nf, Yf, jg, kg, sg, tg, Jg, Kg, Sg, Tg, Ht, pe, Oc, ze, $e, af, Rc, Sc, Uc, Vc, We, Xc, Zc, _c, ke, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, GE, ]; var rc = [ HE, Jy, Ky, Ny, zz, cA, xA, zA, CA, ue, Ee, Fe, cf, Oe, Pe, Tc, Re, Xe, Yc, Ze, le, ce, Py, HE, HE, HE, HE, HE, HE, HE, HE, HE, ]; var sc = [ IE, vu, wu, Kv, Lv, Xw, Yw, bf, He, df, rf, Qe, Ye, me, IE, IE, ]; var tc = [JE, Ge, Ie, Je, tn, sn, Km, Jm]; var uc = [ KE, Xl, Yl, Zl, _l, $l, am, bm, cm, dm, em, fm, gm, hm, im, jm, km, KE, KE, KE, KE, KE, KE, KE, KE, KE, KE, KE, KE, KE, KE, KE, ]; var vc = [LE, Xz, Jc, qA]; var wc = [ ME, Cd, ed, hd, id, md, pd, qd, ud, xd, yd, Dd, Gd, Hd, Ld, Od, Pd, Td, Wd, Xd, hf, jf, mf, nf, vf, wf, zf, Af, Gf, Hf, Kf, Lf, Rf, Sf, Vf, Wf, dg, eg, hg, ig, ng, qg, rg, Dg, Eg, Hg, Ig, Ng, Qg, Rg, Rz, Sz, _z, $z, aA, bA, lA, wA, yA, BA, DA, ne, re, we, Be, Le, Te, fe, ef, sf, Ff, Qf, rA, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ME, ]; var xc = [ NE, gd, jd, od, rd, wd, zd, Fd, Id, Nd, Qd, Vd, Yd, lf, of, yf, Bf, Jf, Mf, Uf, Xf, gg, pg, Gg, Pg, It, Kc, Lc, Nc, $d, NE, NE, ]; var yc = [OE, oe, ie, ae, be, OE, OE, OE]; var zc = [PE, fA, oA, GA, je, PE, PE, PE]; var Ac = [QE, eA, nA, FA]; var Bc = [RE, dA, mA, EA]; return { __GLOBAL__sub_I_bind_cpp: zy, __GLOBAL__sub_I_zstd_binding_cc: _e, ___cxa_can_catch: _D, ___cxa_demangle: KA, ___cxa_is_pointer_type: $D, ___errno_location: My, ___getTypeName: By, ___muldi3: cE, ___udivdi3: hE, _bitshift64Lshr: iE, _bitshift64Shl: jE, _free: Dy, _i64Add: dE, _i64Subtract: eE, _llvm_bswap_i32: kE, _llvm_ctlz_i64: lE, _llvm_cttz_i32: fE, _malloc: Cy, _memcpy: mE, _memmove: nE, _memset: oE, _sbrk: pE, dynCall_i: qE, dynCall_ii: rE, dynCall_iii: sE, dynCall_iiii: tE, dynCall_iiiii: uE, dynCall_iiiiii: vE, dynCall_iiiiiii: wE, dynCall_v: xE, dynCall_vi: yE, dynCall_vii: zE, dynCall_viii: AE, dynCall_viiii: BE, dynCall_viiiii: CE, dynCall_viiiiii: DE, establishStackSpace: Fc, getTempRet0: Ic, runPostSets: aE, setTempRet0: Hc, setThrew: Gc, stackAlloc: Cc, stackRestore: Ec, stackSave: Dc, }; })( // EMSCRIPTEN_END_ASM Module.asmGlobalArg, Module.asmLibraryArg, buffer ); var __GLOBAL__sub_I_bind_cpp = (Module[ "__GLOBAL__sub_I_bind_cpp" ] = asm["__GLOBAL__sub_I_bind_cpp"]); var __GLOBAL__sub_I_zstd_binding_cc = (Module[ "__GLOBAL__sub_I_zstd_binding_cc" ] = asm["__GLOBAL__sub_I_zstd_binding_cc"]); var ___cxa_can_catch = (Module["___cxa_can_catch"] = asm["___cxa_can_catch"]); var ___cxa_demangle = (Module["___cxa_demangle"] = asm["___cxa_demangle"]); var ___cxa_is_pointer_type = (Module["___cxa_is_pointer_type"] = asm["___cxa_is_pointer_type"]); var ___errno_location = (Module["___errno_location"] = asm["___errno_location"]); var ___getTypeName = (Module["___getTypeName"] = asm["___getTypeName"]); var ___muldi3 = (Module["___muldi3"] = asm["___muldi3"]); var ___udivdi3 = (Module["___udivdi3"] = asm["___udivdi3"]); var _bitshift64Lshr = (Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]); var _bitshift64Shl = (Module["_bitshift64Shl"] = asm["_bitshift64Shl"]); var _free = (Module["_free"] = asm["_free"]); var _i64Add = (Module["_i64Add"] = asm["_i64Add"]); var _i64Subtract = (Module["_i64Subtract"] = asm["_i64Subtract"]); var _llvm_bswap_i32 = (Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]); var _llvm_ctlz_i64 = (Module["_llvm_ctlz_i64"] = asm["_llvm_ctlz_i64"]); var _llvm_cttz_i32 = (Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"]); var _malloc = (Module["_malloc"] = asm["_malloc"]); var _memcpy = (Module["_memcpy"] = asm["_memcpy"]); var _memmove = (Module["_memmove"] = asm["_memmove"]); var _memset = (Module["_memset"] = asm["_memset"]); var _sbrk = (Module["_sbrk"] = asm["_sbrk"]); var establishStackSpace = (Module["establishStackSpace"] = asm["establishStackSpace"]); var getTempRet0 = (Module["getTempRet0"] = asm["getTempRet0"]); var runPostSets = (Module["runPostSets"] = asm["runPostSets"]); var setTempRet0 = (Module["setTempRet0"] = asm["setTempRet0"]); var setThrew = (Module["setThrew"] = asm["setThrew"]); var stackAlloc = (Module["stackAlloc"] = asm["stackAlloc"]); var _stackRestore = (Module["stackRestore"] = asm["stackRestore"]); var _stackSave = (Module["stackSave"] = asm["stackSave"]); var dynCall_i = (Module["dynCall_i"] = asm["dynCall_i"]); var dynCall_ii = (Module["dynCall_ii"] = asm["dynCall_ii"]); var dynCall_iii = (Module["dynCall_iii"] = asm["dynCall_iii"]); var dynCall_iiii = (Module["dynCall_iiii"] = asm["dynCall_iiii"]); var dynCall_iiiii = (Module["dynCall_iiiii"] = asm["dynCall_iiiii"]); var dynCall_iiiiii = (Module["dynCall_iiiiii"] = asm["dynCall_iiiiii"]); var dynCall_iiiiiii = (Module["dynCall_iiiiiii"] = asm["dynCall_iiiiiii"]); var dynCall_v = (Module["dynCall_v"] = asm["dynCall_v"]); var dynCall_vi = (Module["dynCall_vi"] = asm["dynCall_vi"]); var dynCall_vii = (Module["dynCall_vii"] = asm["dynCall_vii"]); var dynCall_viii = (Module["dynCall_viii"] = asm["dynCall_viii"]); var dynCall_viiii = (Module["dynCall_viiii"] = asm["dynCall_viiii"]); var dynCall_viiiii = (Module["dynCall_viiiii"] = asm["dynCall_viiiii"]); var dynCall_viiiiii = (Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]); Module["asm"] = asm; Module["FS"] = FS; if (memoryInitializer) { if (!isDataURI(memoryInitializer)) { memoryInitializer = locateFile(memoryInitializer); } if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) { var data = Module["readBinary"](memoryInitializer); HEAPU8.set(data, GLOBAL_BASE); } else { var doBrowserLoad = function doBrowserLoad() { Module["readAsync"]( memoryInitializer, applyMemoryInitializer, function () { throw ( "could not load memory initializer " + memoryInitializer ); } ); }; addRunDependency("memory initializer"); var applyMemoryInitializer = function applyMemoryInitializer( data ) { if (data.byteLength) data = new Uint8Array(data); HEAPU8.set(data, GLOBAL_BASE); if (Module["memoryInitializerRequest"]) delete Module["memoryInitializerRequest"].response; removeRunDependency("memory initializer"); }; var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer); if (memoryInitializerBytes) { applyMemoryInitializer(memoryInitializerBytes.buffer); } else if (Module["memoryInitializerRequest"]) { var useRequest = function useRequest() { var request = Module["memoryInitializerRequest"]; var response = request.response; if (request.status !== 200 && request.status !== 0) { var data = tryParseAsDataURI( Module["memoryInitializerRequestURL"] ); if (data) { response = data.buffer; } else { console.warn( "a problem seems to have happened with Module.memoryInitializerRequest, status: " + request.status + ", retrying " + memoryInitializer ); doBrowserLoad(); return; } } applyMemoryInitializer(response); }; if (Module["memoryInitializerRequest"].response) { setTimeout(useRequest, 0); } else { Module["memoryInitializerRequest"].addEventListener( "load", useRequest ); } } else { doBrowserLoad(); } } } Module["then"] = function (func) { if (Module["calledRun"]) { func(Module); } else { var old = Module["onRuntimeInitialized"]; Module["onRuntimeInitialized"] = function () { if (old) old(); func(Module); }; } return Module; }; function ExitStatus(status) { this.name = "ExitStatus"; this.message = "Program terminated with exit(" + status + ")"; this.status = status; } ExitStatus.prototype = new Error(); ExitStatus.prototype.constructor = ExitStatus; var initialStackTop; dependenciesFulfilled = function runCaller() { if (!Module["calledRun"]) run(); if (!Module["calledRun"]) dependenciesFulfilled = runCaller; }; function run(args) { args = args || Module["arguments"]; if (runDependencies > 0) { return; } preRun(); if (runDependencies > 0) return; if (Module["calledRun"]) return; function doRun() { if (Module["calledRun"]) return; Module["calledRun"] = true; if (ABORT) return; ensureInitRuntime(); preMain(); if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); postRun(); } if (Module["setStatus"]) { Module["setStatus"]("Running..."); setTimeout(function () { setTimeout(function () { Module["setStatus"](""); }, 1); doRun(); }, 1); } else { doRun(); } } Module["run"] = run; function abort(what) { if (Module["onAbort"]) { Module["onAbort"](what); } if (what !== undefined) { out(what); err(what); what = JSON.stringify(what); } else { what = ""; } ABORT = true; EXITSTATUS = 1; throw ( "abort(" + what + "). Build with -s ASSERTIONS=1 for more info." ); } Module["abort"] = abort; if (Module["preInit"]) { if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; while (Module["preInit"].length > 0) { Module["preInit"].pop()(); } } Module["noExitRuntime"] = true; run(); return Module; }; })(); if ( (typeof exports === "undefined" ? "undefined" : _typeof(exports)) === "object" && (typeof module === "undefined" ? "undefined" : _typeof(module)) === "object" ) module.exports = Module; else if (typeof define === "function" && define["amd"]) define([], function () { return Module; }); else if ( (typeof exports === "undefined" ? "undefined" : _typeof(exports)) === "object" ) exports["Module"] = Module; }).call(this, require("_process"), require("buffer").Buffer, "/lib"); }, { _process: 126, buffer: 54, crypto: 63, fs: 9, path: 119 }, ], 7: [ function (require, module, exports) { "use strict"; var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var ArrayBufferHelper = require("./helpers.js").ArrayBufferHelper; var constants = require("./constants.js"); var onReady = function onReady(binding) { var codec = new binding.ZstdCodec(); var withBindingInstance = function withBindingInstance( instance, callback ) { try { return callback(instance); } finally { instance.delete(); } }; var withCppVector = function withCppVector(callback) { var vector = new binding.VectorU8(); return withBindingInstance(vector, callback); }; var correctCompressionLevel = function correctCompressionLevel( compression_level ) { return compression_level || constants.DEFAULT_COMPRESSION_LEVEL; }; var compressBoundImpl = function compressBoundImpl(content_size) { var rc = codec.compressBound(content_size); return rc >= 0 ? rc : null; }; var contentSizeImpl = function contentSizeImpl(src_vec) { var rc = codec.contentSize(src_vec); return rc >= 0 ? rc : null; }; var ArrayBufferSink = (function () { function ArrayBufferSink(initial_size) { _classCallCheck(this, ArrayBufferSink); this._buffer = new ArrayBuffer(initial_size); this._array = new Uint8Array(this._buffer); this._offset = 0; } _createClass(ArrayBufferSink, [ { key: "concat", value: function concat(array) { if (array.length + this._offset > this._array.length) { this._grow(Math.max(this._array.length, array.length) * 2); } this._array.set(array, this._offset); this._offset += array.length; }, }, { key: "array", value: function array() { // NOTE: clone buffer to shrink to fit var buffer = ArrayBufferHelper.transfer( this._buffer, this._offset ); return new Uint8Array(buffer); }, }, { key: "_grow", value: function _grow(new_size) { this._buffer = ArrayBufferHelper.transfer( this._buffer, new_size ); this._array = new Uint8Array(this._buffer); }, }, ]); return ArrayBufferSink; })(); var Generic = (function () { function Generic() { _classCallCheck(this, Generic); } _createClass(Generic, [ { key: "compressBound", value: function compressBound(content_bytes) { return compressBoundImpl(content_bytes.length); }, }, { key: "contentSize", value: function contentSize(compressed_bytes) { return withCppVector(function (src) { binding.cloneToVector(src, compressed_bytes); return contentSizeImpl(src); }); }, }, ]); return Generic; })(); var Simple = (function () { function Simple() { _classCallCheck(this, Simple); } _createClass(Simple, [ { key: "compress", value: function compress(content_bytes, compression_level) { // use basic-api `compress`, to embed `frameContentSize`. var compressBound = compressBoundImpl(content_bytes.length); if (!compressBound) return null; compression_level = correctCompressionLevel(compression_level); return withCppVector(function (src) { return withCppVector(function (dest) { binding.cloneToVector(src, content_bytes); dest.resize(compressBound, 0); var rc = codec.compress(dest, src, compression_level); if (rc < 0) return null; // `rc` is compressed size dest.resize(rc, 0); return binding.cloneAsTypedArray(dest); }); }); }, }, { key: "decompress", value: function decompress(compressed_bytes) { // use streaming-api, to support data without `frameContentSize`. return withCppVector(function (src) { return withCppVector(function (dest) { binding.cloneToVector(src, compressed_bytes); var contentSize = contentSizeImpl(src); if (!contentSize) return null; dest.resize(contentSize, 0); var rc = codec.decompress(dest, src); if (rc < 0 || rc != contentSize) return null; // `rc` is compressed size return binding.cloneAsTypedArray(dest); }); }); }, }, { key: "compressUsingDict", value: function compressUsingDict(content_bytes, cdict) { // use basic-api `compress`, to embed `frameContentSize`. var compressBound = compressBoundImpl(content_bytes.length); if (!compressBound) return null; return withCppVector(function (src) { return withCppVector(function (dest) { binding.cloneToVector(src, content_bytes); dest.resize(compressBound, 0); var rc = codec.compressUsingDict(dest, src, cdict.get()); if (rc < 0) return null; // `rc` is original content size dest.resize(rc, 0); return binding.cloneAsTypedArray(dest); }); }); }, }, { key: "decompressUsingDict", value: function decompressUsingDict(compressed_bytes, ddict) { // use streaming-api, to support data without `frameContentSize`. return withCppVector(function (src) { return withCppVector(function (dest) { binding.cloneToVector(src, compressed_bytes); var contentSize = contentSizeImpl(src); if (!contentSize) return null; dest.resize(contentSize, 0); var rc = codec.decompressUsingDict( dest, src, ddict.get() ); if (rc < 0 || rc != contentSize) return null; // `rc` is compressed size return binding.cloneAsTypedArray(dest); }); }); }, }, ]); return Simple; })(); var Streaming = (function () { function Streaming() { _classCallCheck(this, Streaming); } _createClass(Streaming, [ { key: "compress", value: function compress(content_bytes, compression_level) { return withBindingInstance( new binding.ZstdCompressStreamBinding(), function (stream) { var initial_size = compressBoundImpl( content_bytes.length ); var sink = new ArrayBufferSink(initial_size); var callback = function callback(compressed) { sink.concat(compressed); }; var level = correctCompressionLevel(compression_level); if (!stream.begin(level)) return null; if (!stream.transform(content_bytes, callback)) return null; if (!stream.end(callback)) return null; return sink.array(); } ); }, }, { key: "compressChunks", value: function compressChunks( chunks, size_hint, compression_level ) { return withBindingInstance( new binding.ZstdCompressStreamBinding(), function (stream) { var initial_size = size_hint || constants.STREAMING_DEFAULT_BUFFER_SIZE; var sink = new ArrayBufferSink(initial_size); var callback = function callback(compressed) { sink.concat(compressed); }; var level = correctCompressionLevel(compression_level); if (!stream.begin(level)) return null; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for ( var _iterator = chunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true ) { var chunk = _step.value; if (!stream.transform(chunk, callback)) return null; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } if (!stream.end(callback)) return null; return sink.array(); } ); }, }, { key: "compressUsingDict", value: function compressUsingDict(content_bytes, cdict) { return withBindingInstance( new binding.ZstdCompressStreamBinding(), function (stream) { var initial_size = compressBoundImpl( content_bytes.length ); var sink = new ArrayBufferSink(initial_size); var callback = function callback(compressed) { sink.concat(compressed); }; if (!stream.beginUsingDict(cdict.get())) return null; if (!stream.transform(content_bytes, callback)) return null; if (!stream.end(callback)) return null; return sink.array(); } ); }, }, { key: "compressChunksUsingDict", value: function compressChunksUsingDict( chunks, size_hint, cdict ) { return withBindingInstance( new binding.ZstdCompressStreamBinding(), function (stream) { var initial_size = size_hint || constants.STREAMING_DEFAULT_BUFFER_SIZE; var sink = new ArrayBufferSink(initial_size); var callback = function callback(compressed) { sink.concat(compressed); }; if (!stream.beginUsingDict(cdict.get())) return null; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for ( var _iterator2 = chunks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true ) { var chunk = _step2.value; if (!stream.transform(chunk, callback)) return null; } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if ( !_iteratorNormalCompletion2 && _iterator2.return ) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } if (!stream.end(callback)) return null; return sink.array(); } ); }, }, { key: "decompress", value: function decompress(compressed_bytes, size_hint) { var _this = this; return withBindingInstance( new binding.ZstdDecompressStreamBinding(), function (stream) { var initial_size = size_hint || _this._estimateContentSize(compressed_bytes); var sink = new ArrayBufferSink(initial_size); var callback = function callback(decompressed) { sink.concat(decompressed); }; if (!stream.begin()) return null; if (!stream.transform(compressed_bytes, callback)) return null; if (!stream.end(callback)) return null; return sink.array(); } ); }, }, { key: "decompressChunks", value: function decompressChunks(chunks, size_hint) { return withBindingInstance( new binding.ZstdDecompressStreamBinding(), function (stream) { var initial_size = size_hint || constants.STREAMING_DEFAULT_BUFFER_SIZE; var sink = new ArrayBufferSink(initial_size); var callback = function callback(decompressed) { sink.concat(decompressed); }; if (!stream.begin()) return null; var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for ( var _iterator3 = chunks[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true ) { var chunk = _step3.value; if (!stream.transform(chunk, callback)) return null; } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if ( !_iteratorNormalCompletion3 && _iterator3.return ) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } if (!stream.end(callback)) return null; return sink.array(); } ); }, }, { key: "decompressUsingDict", value: function decompressUsingDict( compressed_bytes, size_hint, ddict ) { var _this2 = this; return withBindingInstance( new binding.ZstdDecompressStreamBinding(), function (stream) { var initial_size = size_hint || _this2._estimateContentSize(compressed_bytes); var sink = new ArrayBufferSink(initial_size); var callback = function callback(decompressed) { sink.concat(decompressed); }; if (!stream.beginUsingDict(ddict.get())) return null; if (!stream.transform(compressed_bytes, callback)) return null; if (!stream.end(callback)) return null; return sink.array(); } ); }, }, { key: "decompressChunksUsingDict", value: function decompressChunksUsingDict( chunks, size_hint, ddict ) { return withBindingInstance( new binding.ZstdDecompressStreamBinding(), function (stream) { var initial_size = size_hint || constants.STREAMING_DEFAULT_BUFFER_SIZE; var sink = new ArrayBufferSink(initial_size); var callback = function callback(decompressed) { sink.concat(decompressed); }; if (!stream.beginUsingDict(ddict.get())) return null; var _iteratorNormalCompletion4 = true; var _didIteratorError4 = false; var _iteratorError4 = undefined; try { for ( var _iterator4 = chunks[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true ) { var chunk = _step4.value; if (!stream.transform(chunk, callback)) return null; } } catch (err) { _didIteratorError4 = true; _iteratorError4 = err; } finally { try { if ( !_iteratorNormalCompletion4 && _iterator4.return ) { _iterator4.return(); } } finally { if (_didIteratorError4) { throw _iteratorError4; } } } if (!stream.end(callback)) return null; return sink.array(); } ); }, }, { key: "_estimateContentSize", value: function _estimateContentSize(compressed_bytes) { // REF: https://code.facebook.com/posts/1658392934479273/smaller-and-faster-data-compression-with-zstandard/ // with lzbench, ratio=3.11 .. 3.14. round up to integer return compressed_bytes.length * 4; }, }, ]); return Streaming; })(); var ZstdCompressionDict = (function () { function ZstdCompressionDict(dict_bytes, compression_level) { _classCallCheck(this, ZstdCompressionDict); this.binding = binding.createCompressionDict( dict_bytes, compression_level ); } _createClass(ZstdCompressionDict, [ { key: "get", value: function get() { return this.binding; }, }, { key: "close", value: function close() { if (this.binding) { this.binding.delete(); } }, }, { key: "delete", value: function _delete() { this.close(); }, }, ]); return ZstdCompressionDict; })(); var ZstdDecompressionDict = (function () { function ZstdDecompressionDict(dict_bytes) { _classCallCheck(this, ZstdDecompressionDict); this.binding = new binding.createDecompressionDict(dict_bytes); } _createClass(ZstdDecompressionDict, [ { key: "get", value: function get() { return this.binding; }, }, { key: "close", value: function close() { if (this.binding) { this.binding.delete(); } }, }, { key: "delete", value: function _delete() { this.close(); }, }, ]); return ZstdDecompressionDict; })(); var zstd = {}; zstd.Generic = Generic; zstd.Simple = Simple; zstd.Streaming = Streaming; zstd.Dict = {}; zstd.Dict.Compress = ZstdCompressionDict; zstd.Dict.Decompress = ZstdDecompressionDict; return zstd; }; exports.run = function (f) { return require("./module.js").run(function (binding) { var zstd = onReady(binding); f(zstd); }); }; }, { "./constants.js": 2, "./helpers.js": 3, "./module.js": 4 }, ], 8: [ function (require, module, exports) { "use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError( "this hasn't been initialised - super() hasn't been called" ); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError( "Super expression must either be null or a function, not " + typeof superClass ); } subClass.prototype = Object.create( superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true, }, } ); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : (subClass.__proto__ = superClass); } var stream = require("stream"); var binding = require("./module.js").Binding; var constants = require("./constants.js"); var helpers = require("./helpers.js"); var getClassName = helpers.getClassName; var toTypedArray = helpers.toTypedArray; var fromTypedArrayToBuffer = helpers.fromTypedArrayToBuffer; var onReady = function onReady(binding) { var ZstdCompressTransform = (function (_stream$Transform) { _inherits(ZstdCompressTransform, _stream$Transform); function ZstdCompressTransform( compression_level, string_decoder, option ) { _classCallCheck(this, ZstdCompressTransform); var _this = _possibleConstructorReturn( this, ( ZstdCompressTransform.__proto__ || Object.getPrototypeOf(ZstdCompressTransform) ).call(this, option || {}) ); _this.string_decoder = string_decoder; _this.binding = new binding.ZstdCompressStreamBinding(); _this.binding.begin( compression_level || constants.DEFAULT_COMPRESSION_LEVEL ); _this.callback = function (compressed) { _this.push(fromTypedArrayToBuffer(compressed), "buffer"); }; return _this; } _createClass(ZstdCompressTransform, [ { key: "_transform", value: function _transform(chunk, encoding, callback) { var chunkBytes = toTypedArray( chunk, encoding, this.string_decoder ); if (!chunkBytes) { var type_name = getClassName(chunk) || (typeof chunk === "undefined" ? "undefined" : _typeof(chunk)); callback(new Error("unsupported chunk type: " + type_name)); return; } if (this.binding.transform(chunkBytes, this.callback)) { callback(); } else { callback( new Error("ZstdDecompressTransform: Error on _transform") ); } }, }, { key: "_flush", value: function _flush(callback) { if (this.binding.flush(this.callback)) { callback(); } else { callback( new Error("ZstdDecompressTransform: Error on _flush") ); } }, }, { key: "_final", value: function _final(callback) { if (this.binding.end(this.callback)) { callback(); } else { callback( new Error("ZstdDecompressTransform: Error on _final") ); } }, }, ]); return ZstdCompressTransform; })(stream.Transform); var ZstdDecompressTransform = (function (_stream$Transform2) { _inherits(ZstdDecompressTransform, _stream$Transform2); function ZstdDecompressTransform(option) { _classCallCheck(this, ZstdDecompressTransform); var _this2 = _possibleConstructorReturn( this, ( ZstdDecompressTransform.__proto__ || Object.getPrototypeOf(ZstdDecompressTransform) ).call(this, option || {}) ); _this2.binding = new binding.ZstdDecompressStreamBinding(); _this2.binding.begin(); _this2.callback = function (decompressed) { _this2.push(fromTypedArrayToBuffer(decompressed), "buffer"); }; return _this2; } _createClass(ZstdDecompressTransform, [ { key: "_transform", value: function _transform(chunk, encoding, callback) { var chunkBytes = toTypedArray( chunk, encoding, this.string_decoder ); if (!chunkBytes) { var type_name = getClassName(chunk) || (typeof chunk === "undefined" ? "undefined" : _typeof(chunk)); callback(new Error("unsupported chunk type: " + type_name)); return; } if (this.binding.transform(chunk, this.callback)) { callback(); } else { callback( new Error("ZstdDecompressTransform: Error on _transform") ); } }, }, { key: "_flush", value: function _flush(callback) { if (this.binding.flush(this.callback)) { callback(); } else { callback( new Error("ZstdDecompressTransform: Error on _flush") ); } }, }, { key: "_final", value: function _final(callback) { if (this.binding.end(this.callback)) { callback(); } else { callback( new Error("ZstdDecompressTransform: Error on _final") ); } }, }, ]); return ZstdDecompressTransform; })(stream.Transform); var streams = {}; streams.ZstdCompressTransform = ZstdCompressTransform; streams.ZstdDecompressTransform = ZstdDecompressTransform; return streams; }; exports = function exports(f) { return require("./module.js").then(function (binding) { var streams = onReady(binding); f(streams); }); }; }, { "./constants.js": 2, "./helpers.js": 3, "./module.js": 4, stream: 157 }, ], 9: [function (require, module, exports) {}, {}], 10: [ function (require, module, exports) { var asn1 = exports; asn1.bignum = require("bn.js"); asn1.define = require("./asn1/api.js").define; asn1.base = require("./asn1/base.js"); asn1.constants = require("./asn1/constants.js"); asn1.decoders = require("./asn1/decoders.js"); asn1.encoders = require("./asn1/encoders.js"); }, { "./asn1/api": 11, "./asn1/base": 13, "./asn1/constants": 17, "./asn1/decoders": 19, "./asn1/encoders": 22, "bn.js": 25, }, ], 11: [ function (require, module, exports) { var asn1 = require("../asn1.js"); var inherits = require("inherits"); var api = exports; api.define = function define(name, body) { return new Entity(name, body); }; function Entity(name, body) { this.name = name; this.body = body; this.decoders = {}; this.encoders = {}; } Entity.prototype._createNamed = function createNamed(base) { var named; try { named = require("vm").runInThisContext( "(function " + this.name + "(entity) {\n" + " this._initNamed(entity);\n" + "})" ); } catch (e) { named = function (entity) { this._initNamed(entity); }; } inherits(named, base); named.prototype._initNamed = function initnamed(entity) { base.call(this, entity); }; return new named(this); }; Entity.prototype._getDecoder = function _getDecoder(enc) { enc = enc || "der"; // Lazily create decoder if (!this.decoders.hasOwnProperty(enc)) this.decoders[enc] = this._createNamed(asn1.decoders[enc]); return this.decoders[enc]; }; Entity.prototype.decode = function decode(data, enc, options) { return this._getDecoder(enc).decode(data, options); }; Entity.prototype._getEncoder = function _getEncoder(enc) { enc = enc || "der"; // Lazily create encoder if (!this.encoders.hasOwnProperty(enc)) this.encoders[enc] = this._createNamed(asn1.encoders[enc]); return this.encoders[enc]; }; Entity.prototype.encode = function encode( data, enc, /* internal */ reporter ) { return this._getEncoder(enc).encode(data, reporter); }; }, { "../asn1": 10, inherits: 108, vm: 160 }, ], 12: [ function (require, module, exports) { var inherits = require("inherits"); var Reporter = require("../base.js").Reporter; var Buffer = require("buffer").Buffer; function DecoderBuffer(base, options) { Reporter.call(this, options); if (!Buffer.isBuffer(base)) { this.error("Input not Buffer"); return; } this.base = base; this.offset = 0; this.length = base.length; } inherits(DecoderBuffer, Reporter); exports.DecoderBuffer = DecoderBuffer; DecoderBuffer.prototype.save = function save() { return { offset: this.offset, reporter: Reporter.prototype.save.call(this), }; }; DecoderBuffer.prototype.restore = function restore(save) { // Return skipped data var res = new DecoderBuffer(this.base); res.offset = save.offset; res.length = this.offset; this.offset = save.offset; Reporter.prototype.restore.call(this, save.reporter); return res; }; DecoderBuffer.prototype.isEmpty = function isEmpty() { return this.offset === this.length; }; DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) { if (this.offset + 1 <= this.length) return this.base.readUInt8(this.offset++, true); else return this.error(fail || "DecoderBuffer overrun"); }; DecoderBuffer.prototype.skip = function skip(bytes, fail) { if (!(this.offset + bytes <= this.length)) return this.error(fail || "DecoderBuffer overrun"); var res = new DecoderBuffer(this.base); // Share reporter state res._reporterState = this._reporterState; res.offset = this.offset; res.length = this.offset + bytes; this.offset += bytes; return res; }; DecoderBuffer.prototype.raw = function raw(save) { return this.base.slice(save ? save.offset : this.offset, this.length); }; function EncoderBuffer(value, reporter) { if (Array.isArray(value)) { this.length = 0; this.value = value.map(function (item) { if (!(item instanceof EncoderBuffer)) item = new EncoderBuffer(item, reporter); this.length += item.length; return item; }, this); } else if (typeof value === "number") { if (!(0 <= value && value <= 0xff)) return reporter.error("non-byte EncoderBuffer value"); this.value = value; this.length = 1; } else if (typeof value === "string") { this.value = value; this.length = Buffer.byteLength(value); } else if (Buffer.isBuffer(value)) { this.value = value; this.length = value.length; } else { return reporter.error("Unsupported type: " + typeof value); } } exports.EncoderBuffer = EncoderBuffer; EncoderBuffer.prototype.join = function join(out, offset) { if (!out) out = new Buffer(this.length); if (!offset) offset = 0; if (this.length === 0) return out; if (Array.isArray(this.value)) { this.value.forEach(function (item) { item.join(out, offset); offset += item.length; }); } else { if (typeof this.value === "number") out[offset] = this.value; else if (typeof this.value === "string") out.write(this.value, offset); else if (Buffer.isBuffer(this.value)) this.value.copy(out, offset); offset += this.length; } return out; }; }, { "../base": 13, buffer: 54, inherits: 108 }, ], 13: [ function (require, module, exports) { var base = exports; base.Reporter = require("./reporter.js").Reporter; base.DecoderBuffer = require("./buffer.js").DecoderBuffer; base.EncoderBuffer = require("./buffer.js").EncoderBuffer; base.Node = require("./node.js"); }, { "./buffer": 12, "./node": 14, "./reporter": 15 }, ], 14: [ function (require, module, exports) { var Reporter = require("../base.js").Reporter; var EncoderBuffer = require("../base.js").EncoderBuffer; var DecoderBuffer = require("../base.js").DecoderBuffer; var assert = require("minimalistic-assert"); // Supported tags var tags = [ "seq", "seqof", "set", "setof", "objid", "bool", "gentime", "utctime", "null_", "enum", "int", "objDesc", "bitstr", "bmpstr", "charstr", "genstr", "graphstr", "ia5str", "iso646str", "numstr", "octstr", "printstr", "t61str", "unistr", "utf8str", "videostr", ]; // Public methods list var methods = [ "key", "obj", "use", "optional", "explicit", "implicit", "def", "choice", "any", "contains", ].concat(tags); // Overrided methods list var overrided = [ "_peekTag", "_decodeTag", "_use", "_decodeStr", "_decodeObjid", "_decodeTime", "_decodeNull", "_decodeInt", "_decodeBool", "_decodeList", "_encodeComposite", "_encodeStr", "_encodeObjid", "_encodeTime", "_encodeNull", "_encodeInt", "_encodeBool", ]; function Node(enc, parent) { var state = {}; this._baseState = state; state.enc = enc; state.parent = parent || null; state.children = null; // State state.tag = null; state.args = null; state.reverseArgs = null; state.choice = null; state.optional = false; state.any = false; state.obj = false; state.use = null; state.useDecoder = null; state.key = null; state["default"] = null; state.explicit = null; state.implicit = null; state.contains = null; // Should create new instance on each method if (!state.parent) { state.children = []; this._wrap(); } } module.exports = Node; var stateProps = [ "enc", "parent", "children", "tag", "args", "reverseArgs", "choice", "optional", "any", "obj", "use", "alteredUse", "key", "default", "explicit", "implicit", "contains", ]; Node.prototype.clone = function clone() { var state = this._baseState; var cstate = {}; stateProps.forEach(function (prop) { cstate[prop] = state[prop]; }); var res = new this.constructor(cstate.parent); res._baseState = cstate; return res; }; Node.prototype._wrap = function wrap() { var state = this._baseState; methods.forEach(function (method) { this[method] = function _wrappedMethod() { var clone = new this.constructor(this); state.children.push(clone); return clone[method].apply(clone, arguments); }; }, this); }; Node.prototype._init = function init(body) { var state = this._baseState; assert(state.parent === null); body.call(this); // Filter children state.children = state.children.filter(function (child) { return child._baseState.parent === this; }, this); assert.equal( state.children.length, 1, "Root node can have only one child" ); }; Node.prototype._useArgs = function useArgs(args) { var state = this._baseState; // Filter children and args var children = args.filter(function (arg) { return arg instanceof this.constructor; }, this); args = args.filter(function (arg) { return !(arg instanceof this.constructor); }, this); if (children.length !== 0) { assert(state.children === null); state.children = children; // Replace parent to maintain backward link children.forEach(function (child) { child._baseState.parent = this; }, this); } if (args.length !== 0) { assert(state.args === null); state.args = args; state.reverseArgs = args.map(function (arg) { if (typeof arg !== "object" || arg.constructor !== Object) return arg; var res = {}; Object.keys(arg).forEach(function (key) { if (key == (key | 0)) key |= 0; var value = arg[key]; res[value] = key; }); return res; }); } }; // // Overrided methods // overrided.forEach(function (method) { Node.prototype[method] = function _overrided() { var state = this._baseState; throw new Error( method + " not implemented for encoding: " + state.enc ); }; }); // // Public methods // tags.forEach(function (tag) { Node.prototype[tag] = function _tagMethod() { var state = this._baseState; var args = Array.prototype.slice.call(arguments); assert(state.tag === null); state.tag = tag; this._useArgs(args); return this; }; }); Node.prototype.use = function use(item) { assert(item); var state = this._baseState; assert(state.use === null); state.use = item; return this; }; Node.prototype.optional = function optional() { var state = this._baseState; state.optional = true; return this; }; Node.prototype.def = function def(val) { var state = this._baseState; assert(state["default"] === null); state["default"] = val; state.optional = true; return this; }; Node.prototype.explicit = function explicit(num) { var state = this._baseState; assert(state.explicit === null && state.implicit === null); state.explicit = num; return this; }; Node.prototype.implicit = function implicit(num) { var state = this._baseState; assert(state.explicit === null && state.implicit === null); state.implicit = num; return this; }; Node.prototype.obj = function obj() { var state = this._baseState; var args = Array.prototype.slice.call(arguments); state.obj = true; if (args.length !== 0) this._useArgs(args); return this; }; Node.prototype.key = function key(newKey) { var state = this._baseState; assert(state.key === null); state.key = newKey; return this; }; Node.prototype.any = function any() { var state = this._baseState; state.any = true; return this; }; Node.prototype.choice = function choice(obj) { var state = this._baseState; assert(state.choice === null); state.choice = obj; this._useArgs( Object.keys(obj).map(function (key) { return obj[key]; }) ); return this; }; Node.prototype.contains = function contains(item) { var state = this._baseState; assert(state.use === null); state.contains = item; return this; }; // // Decoding // Node.prototype._decode = function decode(input, options) { var state = this._baseState; // Decode root node if (state.parent === null) return input.wrapResult(state.children[0]._decode(input, options)); var result = state["default"]; var present = true; var prevKey = null; if (state.key !== null) prevKey = input.enterKey(state.key); // Check if tag is there if (state.optional) { var tag = null; if (state.explicit !== null) tag = state.explicit; else if (state.implicit !== null) tag = state.implicit; else if (state.tag !== null) tag = state.tag; if (tag === null && !state.any) { // Trial and Error var save = input.save(); try { if (state.choice === null) this._decodeGeneric(state.tag, input, options); else this._decodeChoice(input, options); present = true; } catch (e) { present = false; } input.restore(save); } else { present = this._peekTag(input, tag, state.any); if (input.isError(present)) return present; } } // Push object on stack var prevObj; if (state.obj && present) prevObj = input.enterObject(); if (present) { // Unwrap explicit values if (state.explicit !== null) { var explicit = this._decodeTag(input, state.explicit); if (input.isError(explicit)) return explicit; input = explicit; } var start = input.offset; // Unwrap implicit and normal values if (state.use === null && state.choice === null) { if (state.any) var save = input.save(); var body = this._decodeTag( input, state.implicit !== null ? state.implicit : state.tag, state.any ); if (input.isError(body)) return body; if (state.any) result = input.raw(save); else input = body; } if (options && options.track && state.tag !== null) options.track(input.path(), start, input.length, "tagged"); if (options && options.track && state.tag !== null) options.track( input.path(), input.offset, input.length, "content" ); // Select proper method for tag if (state.any) result = result; else if (state.choice === null) result = this._decodeGeneric(state.tag, input, options); else result = this._decodeChoice(input, options); if (input.isError(result)) return result; // Decode children if ( !state.any && state.choice === null && state.children !== null ) { state.children.forEach(function decodeChildren(child) { // NOTE: We are ignoring errors here, to let parser continue with other // parts of encoded data child._decode(input, options); }); } // Decode contained/encoded by schema, only in bit or octet strings if ( state.contains && (state.tag === "octstr" || state.tag === "bitstr") ) { var data = new DecoderBuffer(result); result = this._getUse( state.contains, input._reporterState.obj )._decode(data, options); } } // Pop object if (state.obj && present) result = input.leaveObject(prevObj); // Set key if (state.key !== null && (result !== null || present === true)) input.leaveKey(prevKey, state.key, result); else if (prevKey !== null) input.exitKey(prevKey); return result; }; Node.prototype._decodeGeneric = function decodeGeneric( tag, input, options ) { var state = this._baseState; if (tag === "seq" || tag === "set") return null; if (tag === "seqof" || tag === "setof") return this._decodeList(input, tag, state.args[0], options); else if (/str$/.test(tag)) return this._decodeStr(input, tag, options); else if (tag === "objid" && state.args) return this._decodeObjid( input, state.args[0], state.args[1], options ); else if (tag === "objid") return this._decodeObjid(input, null, null, options); else if (tag === "gentime" || tag === "utctime") return this._decodeTime(input, tag, options); else if (tag === "null_") return this._decodeNull(input, options); else if (tag === "bool") return this._decodeBool(input, options); else if (tag === "objDesc") return this._decodeStr(input, tag, options); else if (tag === "int" || tag === "enum") return this._decodeInt(input, state.args && state.args[0], options); if (state.use !== null) { return this._getUse(state.use, input._reporterState.obj)._decode( input, options ); } else { return input.error("unknown tag: " + tag); } }; Node.prototype._getUse = function _getUse(entity, obj) { var state = this._baseState; // Create altered use decoder if implicit is set state.useDecoder = this._use(entity, obj); assert(state.useDecoder._baseState.parent === null); state.useDecoder = state.useDecoder._baseState.children[0]; if (state.implicit !== state.useDecoder._baseState.implicit) { state.useDecoder = state.useDecoder.clone(); state.useDecoder._baseState.implicit = state.implicit; } return state.useDecoder; }; Node.prototype._decodeChoice = function decodeChoice(input, options) { var state = this._baseState; var result = null; var match = false; Object.keys(state.choice).some(function (key) { var save = input.save(); var node = state.choice[key]; try { var value = node._decode(input, options); if (input.isError(value)) return false; result = { type: key, value: value }; match = true; } catch (e) { input.restore(save); return false; } return true; }, this); if (!match) return input.error("Choice not matched"); return result; }; // // Encoding // Node.prototype._createEncoderBuffer = function createEncoderBuffer( data ) { return new EncoderBuffer(data, this.reporter); }; Node.prototype._encode = function encode(data, reporter, parent) { var state = this._baseState; if (state["default"] !== null && state["default"] === data) return; var result = this._encodeValue(data, reporter, parent); if (result === undefined) return; if (this._skipDefault(result, reporter, parent)) return; return result; }; Node.prototype._encodeValue = function encode(data, reporter, parent) { var state = this._baseState; // Decode root node if (state.parent === null) return state.children[0]._encode(data, reporter || new Reporter()); var result = null; // Set reporter to share it with a child class this.reporter = reporter; // Check if data is there if (state.optional && data === undefined) { if (state["default"] !== null) data = state["default"]; else return; } // Encode children first var content = null; var primitive = false; if (state.any) { // Anything that was given is translated to buffer result = this._createEncoderBuffer(data); } else if (state.choice) { result = this._encodeChoice(data, reporter); } else if (state.contains) { content = this._getUse(state.contains, parent)._encode( data, reporter ); primitive = true; } else if (state.children) { content = state.children .map(function (child) { if (child._baseState.tag === "null_") return child._encode(null, reporter, data); if (child._baseState.key === null) return reporter.error("Child should have a key"); var prevKey = reporter.enterKey(child._baseState.key); if (typeof data !== "object") return reporter.error( "Child expected, but input is not object" ); var res = child._encode( data[child._baseState.key], reporter, data ); reporter.leaveKey(prevKey); return res; }, this) .filter(function (child) { return child; }); content = this._createEncoderBuffer(content); } else { if (state.tag === "seqof" || state.tag === "setof") { // TODO(indutny): this should be thrown on DSL level if (!(state.args && state.args.length === 1)) return reporter.error("Too many args for : " + state.tag); if (!Array.isArray(data)) return reporter.error("seqof/setof, but data is not Array"); var child = this.clone(); child._baseState.implicit = null; content = this._createEncoderBuffer( data.map(function (item) { var state = this._baseState; return this._getUse(state.args[0], data)._encode( item, reporter ); }, child) ); } else if (state.use !== null) { result = this._getUse(state.use, parent)._encode(data, reporter); } else { content = this._encodePrimitive(state.tag, data); primitive = true; } } // Encode data itself var result; if (!state.any && state.choice === null) { var tag = state.implicit !== null ? state.implicit : state.tag; var cls = state.implicit === null ? "universal" : "context"; if (tag === null) { if (state.use === null) reporter.error("Tag could be ommited only for .use()"); } else { if (state.use === null) result = this._encodeComposite(tag, primitive, cls, content); } } // Wrap in explicit if (state.explicit !== null) result = this._encodeComposite( state.explicit, false, "context", result ); return result; }; Node.prototype._encodeChoice = function encodeChoice(data, reporter) { var state = this._baseState; var node = state.choice[data.type]; if (!node) { assert( false, data.type + " not found in " + JSON.stringify(Object.keys(state.choice)) ); } return node._encode(data.value, reporter); }; Node.prototype._encodePrimitive = function encodePrimitive(tag, data) { var state = this._baseState; if (/str$/.test(tag)) return this._encodeStr(data, tag); else if (tag === "objid" && state.args) return this._encodeObjid(data, state.reverseArgs[0], state.args[1]); else if (tag === "objid") return this._encodeObjid(data, null, null); else if (tag === "gentime" || tag === "utctime") return this._encodeTime(data, tag); else if (tag === "null_") return this._encodeNull(); else if (tag === "int" || tag === "enum") return this._encodeInt(data, state.args && state.reverseArgs[0]); else if (tag === "bool") return this._encodeBool(data); else if (tag === "objDesc") return this._encodeStr(data, tag); else throw new Error("Unsupported tag: " + tag); }; Node.prototype._isNumstr = function isNumstr(str) { return /^[0-9 ]*$/.test(str); }; Node.prototype._isPrintstr = function isPrintstr(str) { return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str); }; }, { "../base": 13, "minimalistic-assert": 112 }, ], 15: [ function (require, module, exports) { var inherits = require("inherits"); function Reporter(options) { this._reporterState = { obj: null, path: [], options: options || {}, errors: [], }; } exports.Reporter = Reporter; Reporter.prototype.isError = function isError(obj) { return obj instanceof ReporterError; }; Reporter.prototype.save = function save() { var state = this._reporterState; return { obj: state.obj, pathLen: state.path.length }; }; Reporter.prototype.restore = function restore(data) { var state = this._reporterState; state.obj = data.obj; state.path = state.path.slice(0, data.pathLen); }; Reporter.prototype.enterKey = function enterKey(key) { return this._reporterState.path.push(key); }; Reporter.prototype.exitKey = function exitKey(index) { var state = this._reporterState; state.path = state.path.slice(0, index - 1); }; Reporter.prototype.leaveKey = function leaveKey(index, key, value) { var state = this._reporterState; this.exitKey(index); if (state.obj !== null) state.obj[key] = value; }; Reporter.prototype.path = function path() { return this._reporterState.path.join("/"); }; Reporter.prototype.enterObject = function enterObject() { var state = this._reporterState; var prev = state.obj; state.obj = {}; return prev; }; Reporter.prototype.leaveObject = function leaveObject(prev) { var state = this._reporterState; var now = state.obj; state.obj = prev; return now; }; Reporter.prototype.error = function error(msg) { var err; var state = this._reporterState; var inherited = msg instanceof ReporterError; if (inherited) { err = msg; } else { err = new ReporterError( state.path .map(function (elem) { return "[" + JSON.stringify(elem) + "]"; }) .join(""), msg.message || msg, msg.stack ); } if (!state.options.partial) throw err; if (!inherited) state.errors.push(err); return err; }; Reporter.prototype.wrapResult = function wrapResult(result) { var state = this._reporterState; if (!state.options.partial) return result; return { result: this.isError(result) ? null : result, errors: state.errors, }; }; function ReporterError(path, msg) { this.path = path; this.rethrow(msg); } inherits(ReporterError, Error); ReporterError.prototype.rethrow = function rethrow(msg) { this.message = msg + " at: " + (this.path || "(shallow)"); if (Error.captureStackTrace) Error.captureStackTrace(this, ReporterError); if (!this.stack) { try { // IE only adds stack when thrown throw new Error(this.message); } catch (e) { this.stack = e.stack; } } return this; }; }, { inherits: 108 }, ], 16: [ function (require, module, exports) { var constants = require("../constants.js"); exports.tagClass = { 0: "universal", 1: "application", 2: "context", 3: "private", }; exports.tagClassByName = constants._reverse(exports.tagClass); exports.tag = { 0x00: "end", 0x01: "bool", 0x02: "int", 0x03: "bitstr", 0x04: "octstr", 0x05: "null_", 0x06: "objid", 0x07: "objDesc", 0x08: "external", 0x09: "real", 0x0a: "enum", 0x0b: "embed", 0x0c: "utf8str", 0x0d: "relativeOid", 0x10: "seq", 0x11: "set", 0x12: "numstr", 0x13: "printstr", 0x14: "t61str", 0x15: "videostr", 0x16: "ia5str", 0x17: "utctime", 0x18: "gentime", 0x19: "graphstr", 0x1a: "iso646str", 0x1b: "genstr", 0x1c: "unistr", 0x1d: "charstr", 0x1e: "bmpstr", }; exports.tagByName = constants._reverse(exports.tag); }, { "../constants": 17 }, ], 17: [ function (require, module, exports) { var constants = exports; // Helper constants._reverse = function reverse(map) { var res = {}; Object.keys(map).forEach(function (key) { // Convert key to integer if it is stringified if ((key | 0) == key) key = key | 0; var value = map[key]; res[value] = key; }); return res; }; constants.der = require("./der.js"); }, { "./der": 16 }, ], 18: [ function (require, module, exports) { var inherits = require("inherits"); var asn1 = require("../../asn1.js"); var base = asn1.base; var bignum = asn1.bignum; // Import DER constants var der = asn1.constants.der; function DERDecoder(entity) { this.enc = "der"; this.name = entity.name; this.entity = entity; // Construct base tree this.tree = new DERNode(); this.tree._init(entity.body); } module.exports = DERDecoder; DERDecoder.prototype.decode = function decode(data, options) { if (!(data instanceof base.DecoderBuffer)) data = new base.DecoderBuffer(data, options); return this.tree._decode(data, options); }; // Tree methods function DERNode(parent) { base.Node.call(this, "der", parent); } inherits(DERNode, base.Node); DERNode.prototype._peekTag = function peekTag(buffer, tag, any) { if (buffer.isEmpty()) return false; var state = buffer.save(); var decodedTag = derDecodeTag( buffer, 'Failed to peek tag: "' + tag + '"' ); if (buffer.isError(decodedTag)) return decodedTag; buffer.restore(state); return ( decodedTag.tag === tag || decodedTag.tagStr === tag || decodedTag.tagStr + "of" === tag || any ); }; DERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) { var decodedTag = derDecodeTag( buffer, 'Failed to decode tag of "' + tag + '"' ); if (buffer.isError(decodedTag)) return decodedTag; var len = derDecodeLen( buffer, decodedTag.primitive, 'Failed to get length of "' + tag + '"' ); // Failure if (buffer.isError(len)) return len; if ( !any && decodedTag.tag !== tag && decodedTag.tagStr !== tag && decodedTag.tagStr + "of" !== tag ) { return buffer.error('Failed to match tag: "' + tag + '"'); } if (decodedTag.primitive || len !== null) return buffer.skip(len, 'Failed to match body of: "' + tag + '"'); // Indefinite length... find END tag var state = buffer.save(); var res = this._skipUntilEnd( buffer, 'Failed to skip indefinite length body: "' + this.tag + '"' ); if (buffer.isError(res)) return res; len = buffer.offset - state.offset; buffer.restore(state); return buffer.skip(len, 'Failed to match body of: "' + tag + '"'); }; DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) { while (true) { var tag = derDecodeTag(buffer, fail); if (buffer.isError(tag)) return tag; var len = derDecodeLen(buffer, tag.primitive, fail); if (buffer.isError(len)) return len; var res; if (tag.primitive || len !== null) res = buffer.skip(len); else res = this._skipUntilEnd(buffer, fail); // Failure if (buffer.isError(res)) return res; if (tag.tagStr === "end") break; } }; DERNode.prototype._decodeList = function decodeList( buffer, tag, decoder, options ) { var result = []; while (!buffer.isEmpty()) { var possibleEnd = this._peekTag(buffer, "end"); if (buffer.isError(possibleEnd)) return possibleEnd; var res = decoder.decode(buffer, "der", options); if (buffer.isError(res) && possibleEnd) break; result.push(res); } return result; }; DERNode.prototype._decodeStr = function decodeStr(buffer, tag) { if (tag === "bitstr") { var unused = buffer.readUInt8(); if (buffer.isError(unused)) return unused; return { unused: unused, data: buffer.raw() }; } else if (tag === "bmpstr") { var raw = buffer.raw(); if (raw.length % 2 === 1) return buffer.error( "Decoding of string type: bmpstr length mismatch" ); var str = ""; for (var i = 0; i < raw.length / 2; i++) { str += String.fromCharCode(raw.readUInt16BE(i * 2)); } return str; } else if (tag === "numstr") { var numstr = buffer.raw().toString("ascii"); if (!this._isNumstr(numstr)) { return buffer.error( "Decoding of string type: " + "numstr unsupported characters" ); } return numstr; } else if (tag === "octstr") { return buffer.raw(); } else if (tag === "objDesc") { return buffer.raw(); } else if (tag === "printstr") { var printstr = buffer.raw().toString("ascii"); if (!this._isPrintstr(printstr)) { return buffer.error( "Decoding of string type: " + "printstr unsupported characters" ); } return printstr; } else if (/str$/.test(tag)) { return buffer.raw().toString(); } else { return buffer.error( "Decoding of string type: " + tag + " unsupported" ); } }; DERNode.prototype._decodeObjid = function decodeObjid( buffer, values, relative ) { var result; var identifiers = []; var ident = 0; while (!buffer.isEmpty()) { var subident = buffer.readUInt8(); ident <<= 7; ident |= subident & 0x7f; if ((subident & 0x80) === 0) { identifiers.push(ident); ident = 0; } } if (subident & 0x80) identifiers.push(ident); var first = (identifiers[0] / 40) | 0; var second = identifiers[0] % 40; if (relative) result = identifiers; else result = [first, second].concat(identifiers.slice(1)); if (values) { var tmp = values[result.join(" ")]; if (tmp === undefined) tmp = values[result.join(".")]; if (tmp !== undefined) result = tmp; } return result; }; DERNode.prototype._decodeTime = function decodeTime(buffer, tag) { var str = buffer.raw().toString(); if (tag === "gentime") { var year = str.slice(0, 4) | 0; var mon = str.slice(4, 6) | 0; var day = str.slice(6, 8) | 0; var hour = str.slice(8, 10) | 0; var min = str.slice(10, 12) | 0; var sec = str.slice(12, 14) | 0; } else if (tag === "utctime") { var year = str.slice(0, 2) | 0; var mon = str.slice(2, 4) | 0; var day = str.slice(4, 6) | 0; var hour = str.slice(6, 8) | 0; var min = str.slice(8, 10) | 0; var sec = str.slice(10, 12) | 0; if (year < 70) year = 2000 + year; else year = 1900 + year; } else { return buffer.error( "Decoding " + tag + " time is not supported yet" ); } return Date.UTC(year, mon - 1, day, hour, min, sec, 0); }; DERNode.prototype._decodeNull = function decodeNull(buffer) { return null; }; DERNode.prototype._decodeBool = function decodeBool(buffer) { var res = buffer.readUInt8(); if (buffer.isError(res)) return res; else return res !== 0; }; DERNode.prototype._decodeInt = function decodeInt(buffer, values) { // Bigint, return as it is (assume big endian) var raw = buffer.raw(); var res = new bignum(raw); if (values) res = values[res.toString(10)] || res; return res; }; DERNode.prototype._use = function use(entity, obj) { if (typeof entity === "function") entity = entity(obj); return entity._getDecoder("der").tree; }; // Utility methods function derDecodeTag(buf, fail) { var tag = buf.readUInt8(fail); if (buf.isError(tag)) return tag; var cls = der.tagClass[tag >> 6]; var primitive = (tag & 0x20) === 0; // Multi-octet tag - load if ((tag & 0x1f) === 0x1f) { var oct = tag; tag = 0; while ((oct & 0x80) === 0x80) { oct = buf.readUInt8(fail); if (buf.isError(oct)) return oct; tag <<= 7; tag |= oct & 0x7f; } } else { tag &= 0x1f; } var tagStr = der.tag[tag]; return { cls: cls, primitive: primitive, tag: tag, tagStr: tagStr, }; } function derDecodeLen(buf, primitive, fail) { var len = buf.readUInt8(fail); if (buf.isError(len)) return len; // Indefinite form if (!primitive && len === 0x80) return null; // Definite form if ((len & 0x80) === 0) { // Short form return len; } // Long form var num = len & 0x7f; if (num > 4) return buf.error("length octect is too long"); len = 0; for (var i = 0; i < num; i++) { len <<= 8; var j = buf.readUInt8(fail); if (buf.isError(j)) return j; len |= j; } return len; } }, { "../../asn1": 10, inherits: 108 }, ], 19: [ function (require, module, exports) { var decoders = exports; decoders.der = require("./der.js"); decoders.pem = require("./pem.js"); }, { "./der": 18, "./pem": 20 }, ], 20: [ function (require, module, exports) { var inherits = require("inherits"); var Buffer = require("buffer").Buffer; var DERDecoder = require("./der.js"); function PEMDecoder(entity) { DERDecoder.call(this, entity); this.enc = "pem"; } inherits(PEMDecoder, DERDecoder); module.exports = PEMDecoder; PEMDecoder.prototype.decode = function decode(data, options) { var lines = data.toString().split(/[\r\n]+/g); var label = options.label.toUpperCase(); var re = /^-----(BEGIN|END) ([^-]+)-----$/; var start = -1; var end = -1; for (var i = 0; i < lines.length; i++) { var match = lines[i].match(re); if (match === null) continue; if (match[2] !== label) continue; if (start === -1) { if (match[1] !== "BEGIN") break; start = i; } else { if (match[1] !== "END") break; end = i; break; } } if (start === -1 || end === -1) throw new Error("PEM section not found for: " + label); var base64 = lines.slice(start + 1, end).join(""); // Remove excessive symbols base64.replace(/[^a-z0-9\+\/=]+/gi, ""); var input = new Buffer(base64, "base64"); return DERDecoder.prototype.decode.call(this, input, options); }; }, { "./der": 18, buffer: 54, inherits: 108 }, ], 21: [ function (require, module, exports) { var inherits = require("inherits"); var Buffer = require("buffer").Buffer; var asn1 = require("../../asn1.js"); var base = asn1.base; // Import DER constants var der = asn1.constants.der; function DEREncoder(entity) { this.enc = "der"; this.name = entity.name; this.entity = entity; // Construct base tree this.tree = new DERNode(); this.tree._init(entity.body); } module.exports = DEREncoder; DEREncoder.prototype.encode = function encode(data, reporter) { return this.tree._encode(data, reporter).join(); }; // Tree methods function DERNode(parent) { base.Node.call(this, "der", parent); } inherits(DERNode, base.Node); DERNode.prototype._encodeComposite = function encodeComposite( tag, primitive, cls, content ) { var encodedTag = encodeTag(tag, primitive, cls, this.reporter); // Short form if (content.length < 0x80) { var header = new Buffer(2); header[0] = encodedTag; header[1] = content.length; return this._createEncoderBuffer([header, content]); } // Long form // Count octets required to store length var lenOctets = 1; for (var i = content.length; i >= 0x100; i >>= 8) lenOctets++; var header = new Buffer(1 + 1 + lenOctets); header[0] = encodedTag; header[1] = 0x80 | lenOctets; for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) header[i] = j & 0xff; return this._createEncoderBuffer([header, content]); }; DERNode.prototype._encodeStr = function encodeStr(str, tag) { if (tag === "bitstr") { return this._createEncoderBuffer([str.unused | 0, str.data]); } else if (tag === "bmpstr") { var buf = new Buffer(str.length * 2); for (var i = 0; i < str.length; i++) { buf.writeUInt16BE(str.charCodeAt(i), i * 2); } return this._createEncoderBuffer(buf); } else if (tag === "numstr") { if (!this._isNumstr(str)) { return this.reporter.error( "Encoding of string type: numstr supports " + "only digits and space" ); } return this._createEncoderBuffer(str); } else if (tag === "printstr") { if (!this._isPrintstr(str)) { return this.reporter.error( "Encoding of string type: printstr supports " + "only latin upper and lower case letters, " + "digits, space, apostrophe, left and rigth " + "parenthesis, plus sign, comma, hyphen, " + "dot, slash, colon, equal sign, " + "question mark" ); } return this._createEncoderBuffer(str); } else if (/str$/.test(tag)) { return this._createEncoderBuffer(str); } else if (tag === "objDesc") { return this._createEncoderBuffer(str); } else { return this.reporter.error( "Encoding of string type: " + tag + " unsupported" ); } }; DERNode.prototype._encodeObjid = function encodeObjid( id, values, relative ) { if (typeof id === "string") { if (!values) return this.reporter.error( "string objid given, but no values map found" ); if (!values.hasOwnProperty(id)) return this.reporter.error("objid not found in values map"); id = values[id].split(/[\s\.]+/g); for (var i = 0; i < id.length; i++) id[i] |= 0; } else if (Array.isArray(id)) { id = id.slice(); for (var i = 0; i < id.length; i++) id[i] |= 0; } if (!Array.isArray(id)) { return this.reporter.error( "objid() should be either array or string, " + "got: " + JSON.stringify(id) ); } if (!relative) { if (id[1] >= 40) return this.reporter.error("Second objid identifier OOB"); id.splice(0, 2, id[0] * 40 + id[1]); } // Count number of octets var size = 0; for (var i = 0; i < id.length; i++) { var ident = id[i]; for (size++; ident >= 0x80; ident >>= 7) size++; } var objid = new Buffer(size); var offset = objid.length - 1; for (var i = id.length - 1; i >= 0; i--) { var ident = id[i]; objid[offset--] = ident & 0x7f; while ((ident >>= 7) > 0) objid[offset--] = 0x80 | (ident & 0x7f); } return this._createEncoderBuffer(objid); }; function two(num) { if (num < 10) return "0" + num; else return num; } DERNode.prototype._encodeTime = function encodeTime(time, tag) { var str; var date = new Date(time); if (tag === "gentime") { str = [ two(date.getFullYear()), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), "Z", ].join(""); } else if (tag === "utctime") { str = [ two(date.getFullYear() % 100), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), "Z", ].join(""); } else { this.reporter.error( "Encoding " + tag + " time is not supported yet" ); } return this._encodeStr(str, "octstr"); }; DERNode.prototype._encodeNull = function encodeNull() { return this._createEncoderBuffer(""); }; DERNode.prototype._encodeInt = function encodeInt(num, values) { if (typeof num === "string") { if (!values) return this.reporter.error( "String int or enum given, but no values map" ); if (!values.hasOwnProperty(num)) { return this.reporter.error( "Values map doesn't contain: " + JSON.stringify(num) ); } num = values[num]; } // Bignum, assume big endian if (typeof num !== "number" && !Buffer.isBuffer(num)) { var numArray = num.toArray(); if (!num.sign && numArray[0] & 0x80) { numArray.unshift(0); } num = new Buffer(numArray); } if (Buffer.isBuffer(num)) { var size = num.length; if (num.length === 0) size++; var out = new Buffer(size); num.copy(out); if (num.length === 0) out[0] = 0; return this._createEncoderBuffer(out); } if (num < 0x80) return this._createEncoderBuffer(num); if (num < 0x100) return this._createEncoderBuffer([0, num]); var size = 1; for (var i = num; i >= 0x100; i >>= 8) size++; var out = new Array(size); for (var i = out.length - 1; i >= 0; i--) { out[i] = num & 0xff; num >>= 8; } if (out[0] & 0x80) { out.unshift(0); } return this._createEncoderBuffer(new Buffer(out)); }; DERNode.prototype._encodeBool = function encodeBool(value) { return this._createEncoderBuffer(value ? 0xff : 0); }; DERNode.prototype._use = function use(entity, obj) { if (typeof entity === "function") entity = entity(obj); return entity._getEncoder("der").tree; }; DERNode.prototype._skipDefault = function skipDefault( dataBuffer, reporter, parent ) { var state = this._baseState; var i; if (state["default"] === null) return false; var data = dataBuffer.join(); if (state.defaultBuffer === undefined) state.defaultBuffer = this._encodeValue( state["default"], reporter, parent ).join(); if (data.length !== state.defaultBuffer.length) return false; for (i = 0; i < data.length; i++) if (data[i] !== state.defaultBuffer[i]) return false; return true; }; // Utility methods function encodeTag(tag, primitive, cls, reporter) { var res; if (tag === "seqof") tag = "seq"; else if (tag === "setof") tag = "set"; if (der.tagByName.hasOwnProperty(tag)) res = der.tagByName[tag]; else if (typeof tag === "number" && (tag | 0) === tag) res = tag; else return reporter.error("Unknown tag: " + tag); if (res >= 0x1f) return reporter.error("Multi-octet tag encoding unsupported"); if (!primitive) res |= 0x20; res |= der.tagClassByName[cls || "universal"] << 6; return res; } }, { "../../asn1": 10, buffer: 54, inherits: 108 }, ], 22: [ function (require, module, exports) { var encoders = exports; encoders.der = require("./der.js"); encoders.pem = require("./pem.js"); }, { "./der": 21, "./pem": 23 }, ], 23: [ function (require, module, exports) { var inherits = require("inherits"); var DEREncoder = require("./der.js"); function PEMEncoder(entity) { DEREncoder.call(this, entity); this.enc = "pem"; } inherits(PEMEncoder, DEREncoder); module.exports = PEMEncoder; PEMEncoder.prototype.encode = function encode(data, options) { var buf = DEREncoder.prototype.encode.call(this, data); var p = buf.toString("base64"); var out = ["-----BEGIN " + options.label + "-----"]; for (var i = 0; i < p.length; i += 64) out.push(p.slice(i, i + 64)); out.push("-----END " + options.label + "-----"); return out.join("\n"); }; }, { "./der": 21, inherits: 108 }, ], 24: [ function (require, module, exports) { "use strict"; exports.byteLength = byteLength; exports.toByteArray = toByteArray; exports.fromByteArray = fromByteArray; var lookup = []; var revLookup = []; var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; for (var i = 0, len = code.length; i < len; ++i) { lookup[i] = code[i]; revLookup[code.charCodeAt(i)] = i; } revLookup["-".charCodeAt(0)] = 62; revLookup["_".charCodeAt(0)] = 63; function placeHoldersCount(b64) { var len = b64.length; if (len % 4 > 0) { throw new Error("Invalid string. Length must be a multiple of 4"); } // the number of equal signs (place holders) // if there are two placeholders, than the two characters before it // represent one byte // if there is only one, then the three characters before it represent 2 bytes // this is just a cheap hack to not do indexOf twice return b64[len - 2] === "=" ? 2 : b64[len - 1] === "=" ? 1 : 0; } function byteLength(b64) { // base64 is 4/3 + up to two characters of the original data return (b64.length * 3) / 4 - placeHoldersCount(b64); } function toByteArray(b64) { var i, l, tmp, placeHolders, arr; var len = b64.length; placeHolders = placeHoldersCount(b64); arr = new Arr((len * 3) / 4 - placeHolders); // if there are placeholders, only get up to the last complete 4 chars l = placeHolders > 0 ? len - 4 : len; var L = 0; for (i = 0; i < l; i += 4) { tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]; arr[L++] = (tmp >> 16) & 0xff; arr[L++] = (tmp >> 8) & 0xff; arr[L++] = tmp & 0xff; } if (placeHolders === 2) { tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4); arr[L++] = tmp & 0xff; } else if (placeHolders === 1) { tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2); arr[L++] = (tmp >> 8) & 0xff; arr[L++] = tmp & 0xff; } return arr; } function tripletToBase64(num) { return ( lookup[(num >> 18) & 0x3f] + lookup[(num >> 12) & 0x3f] + lookup[(num >> 6) & 0x3f] + lookup[num & 0x3f] ); } function encodeChunk(uint8, start, end) { var tmp; var output = []; for (var i = start; i < end; i += 3) { tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2]; output.push(tripletToBase64(tmp)); } return output.join(""); } function fromByteArray(uint8) { var tmp; var len = uint8.length; var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes var output = ""; var parts = []; var maxChunkLength = 16383; // must be multiple of 3 // go through the array every three bytes, we'll deal with trailing stuff later for ( var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength ) { parts.push( encodeChunk( uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength ) ); } // pad the end with zeros, but make sure to not forget the extra bytes if (extraBytes === 1) { tmp = uint8[len - 1]; output += lookup[tmp >> 2]; output += lookup[(tmp << 4) & 0x3f]; output += "=="; } else if (extraBytes === 2) { tmp = (uint8[len - 2] << 8) + uint8[len - 1]; output += lookup[tmp >> 10]; output += lookup[(tmp >> 4) & 0x3f]; output += lookup[(tmp << 2) & 0x3f]; output += "="; } parts.push(output); return parts.join(""); } }, {}, ], 25: [ function (require, module, exports) { (function (module, exports) { "use strict"; // Utils function assert(val, msg) { if (!val) throw new Error(msg || "Assertion failed"); } // Could use `inherits` module, but don't want to move from single file // architecture yet. function inherits(ctor, superCtor) { ctor.super_ = superCtor; var TempCtor = function () {}; TempCtor.prototype = superCtor.prototype; ctor.prototype = new TempCtor(); ctor.prototype.constructor = ctor; } // BN function BN(number, base, endian) { if (BN.isBN(number)) { return number; } this.negative = 0; this.words = null; this.length = 0; // Reduction context this.red = null; if (number !== null) { if (base === "le" || base === "be") { endian = base; base = 10; } this._init(number || 0, base || 10, endian || "be"); } } if (typeof module === "object") { module.exports = BN; } else { exports.BN = BN; } BN.BN = BN; BN.wordSize = 26; var Buffer; try { Buffer = require("buffer").Buffer; } catch (e) {} BN.isBN = function isBN(num) { if (num instanceof BN) { return true; } return ( num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words) ); }; BN.max = function max(left, right) { if (left.cmp(right) > 0) return left; return right; }; BN.min = function min(left, right) { if (left.cmp(right) < 0) return left; return right; }; BN.prototype._init = function init(number, base, endian) { if (typeof number === "number") { return this._initNumber(number, base, endian); } if (typeof number === "object") { return this._initArray(number, base, endian); } if (base === "hex") { base = 16; } assert(base === (base | 0) && base >= 2 && base <= 36); number = number.toString().replace(/\s+/g, ""); var start = 0; if (number[0] === "-") { start++; } if (base === 16) { this._parseHex(number, start); } else { this._parseBase(number, base, start); } if (number[0] === "-") { this.negative = 1; } this.strip(); if (endian !== "le") return; this._initArray(this.toArray(), base, endian); }; BN.prototype._initNumber = function _initNumber( number, base, endian ) { if (number < 0) { this.negative = 1; number = -number; } if (number < 0x4000000) { this.words = [number & 0x3ffffff]; this.length = 1; } else if (number < 0x10000000000000) { this.words = [ number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff, ]; this.length = 2; } else { assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) this.words = [ number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff, 1, ]; this.length = 3; } if (endian !== "le") return; // Reverse the bytes this._initArray(this.toArray(), base, endian); }; BN.prototype._initArray = function _initArray(number, base, endian) { // Perhaps a Uint8Array assert(typeof number.length === "number"); if (number.length <= 0) { this.words = [0]; this.length = 1; return this; } this.length = Math.ceil(number.length / 3); this.words = new Array(this.length); for (var i = 0; i < this.length; i++) { this.words[i] = 0; } var j, w; var off = 0; if (endian === "be") { for (i = number.length - 1, j = 0; i >= 0; i -= 3) { w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16); this.words[j] |= (w << off) & 0x3ffffff; this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; off += 24; if (off >= 26) { off -= 26; j++; } } } else if (endian === "le") { for (i = 0, j = 0; i < number.length; i += 3) { w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16); this.words[j] |= (w << off) & 0x3ffffff; this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; off += 24; if (off >= 26) { off -= 26; j++; } } } return this.strip(); }; function parseHex(str, start, end) { var r = 0; var len = Math.min(str.length, end); for (var i = start; i < len; i++) { var c = str.charCodeAt(i) - 48; r <<= 4; // 'a' - 'f' if (c >= 49 && c <= 54) { r |= c - 49 + 0xa; // 'A' - 'F' } else if (c >= 17 && c <= 22) { r |= c - 17 + 0xa; // '0' - '9' } else { r |= c & 0xf; } } return r; } BN.prototype._parseHex = function _parseHex(number, start) { // Create possibly bigger array to ensure that it fits the number this.length = Math.ceil((number.length - start) / 6); this.words = new Array(this.length); for (var i = 0; i < this.length; i++) { this.words[i] = 0; } var j, w; // Scan 24-bit chunks and add them to the number var off = 0; for (i = number.length - 6, j = 0; i >= start; i -= 6) { w = parseHex(number, i, i + 6); this.words[j] |= (w << off) & 0x3ffffff; // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb this.words[j + 1] |= (w >>> (26 - off)) & 0x3fffff; off += 24; if (off >= 26) { off -= 26; j++; } } if (i + 6 !== start) { w = parseHex(number, start, i + 6); this.words[j] |= (w << off) & 0x3ffffff; this.words[j + 1] |= (w >>> (26 - off)) & 0x3fffff; } this.strip(); }; function parseBase(str, start, end, mul) { var r = 0; var len = Math.min(str.length, end); for (var i = start; i < len; i++) { var c = str.charCodeAt(i) - 48; r *= mul; // 'a' if (c >= 49) { r += c - 49 + 0xa; // 'A' } else if (c >= 17) { r += c - 17 + 0xa; // '0' - '9' } else { r += c; } } return r; } BN.prototype._parseBase = function _parseBase(number, base, start) { // Initialize as zero this.words = [0]; this.length = 1; // Find length of limb in base for ( var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base ) { limbLen++; } limbLen--; limbPow = (limbPow / base) | 0; var total = number.length - start; var mod = total % limbLen; var end = Math.min(total, total - mod) + start; var word = 0; for (var i = start; i < end; i += limbLen) { word = parseBase(number, i, i + limbLen, base); this.imuln(limbPow); if (this.words[0] + word < 0x4000000) { this.words[0] += word; } else { this._iaddn(word); } } if (mod !== 0) { var pow = 1; word = parseBase(number, i, number.length, base); for (i = 0; i < mod; i++) { pow *= base; } this.imuln(pow); if (this.words[0] + word < 0x4000000) { this.words[0] += word; } else { this._iaddn(word); } } }; BN.prototype.copy = function copy(dest) { dest.words = new Array(this.length); for (var i = 0; i < this.length; i++) { dest.words[i] = this.words[i]; } dest.length = this.length; dest.negative = this.negative; dest.red = this.red; }; BN.prototype.clone = function clone() { var r = new BN(null); this.copy(r); return r; }; BN.prototype._expand = function _expand(size) { while (this.length < size) { this.words[this.length++] = 0; } return this; }; // Remove leading `0` from `this` BN.prototype.strip = function strip() { while (this.length > 1 && this.words[this.length - 1] === 0) { this.length--; } return this._normSign(); }; BN.prototype._normSign = function _normSign() { // -0 = 0 if (this.length === 1 && this.words[0] === 0) { this.negative = 0; } return this; }; BN.prototype.inspect = function inspect() { return (this.red ? ""; }; /* var zeros = []; var groupSizes = []; var groupBases = []; var s = ''; var i = -1; while (++i < BN.wordSize) { zeros[i] = s; s += '0'; } groupSizes[0] = 0; groupSizes[1] = 0; groupBases[0] = 0; groupBases[1] = 0; var base = 2 - 1; while (++base < 36 + 1) { var groupSize = 0; var groupBase = 1; while (groupBase < (1 << BN.wordSize) / base) { groupBase *= base; groupSize += 1; } groupSizes[base] = groupSize; groupBases[base] = groupBase; } */ var zeros = [ "", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000", ]; var groupSizes = [ 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, ]; var groupBases = [ 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176, ]; BN.prototype.toString = function toString(base, padding) { base = base || 10; padding = padding | 0 || 1; var out; if (base === 16 || base === "hex") { out = ""; var off = 0; var carry = 0; for (var i = 0; i < this.length; i++) { var w = this.words[i]; var word = (((w << off) | carry) & 0xffffff).toString(16); carry = (w >>> (24 - off)) & 0xffffff; if (carry !== 0 || i !== this.length - 1) { out = zeros[6 - word.length] + word + out; } else { out = word + out; } off += 2; if (off >= 26) { off -= 26; i--; } } if (carry !== 0) { out = carry.toString(16) + out; } while (out.length % padding !== 0) { out = "0" + out; } if (this.negative !== 0) { out = "-" + out; } return out; } if (base === (base | 0) && base >= 2 && base <= 36) { // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize); var groupBase = groupBases[base]; out = ""; var c = this.clone(); c.negative = 0; while (!c.isZero()) { var r = c.modn(groupBase).toString(base); c = c.idivn(groupBase); if (!c.isZero()) { out = zeros[groupSize - r.length] + r + out; } else { out = r + out; } } if (this.isZero()) { out = "0" + out; } while (out.length % padding !== 0) { out = "0" + out; } if (this.negative !== 0) { out = "-" + out; } return out; } assert(false, "Base should be between 2 and 36"); }; BN.prototype.toNumber = function toNumber() { var ret = this.words[0]; if (this.length === 2) { ret += this.words[1] * 0x4000000; } else if (this.length === 3 && this.words[2] === 0x01) { // NOTE: at this stage it is known that the top bit is set ret += 0x10000000000000 + this.words[1] * 0x4000000; } else if (this.length > 2) { assert(false, "Number can only safely store up to 53 bits"); } return this.negative !== 0 ? -ret : ret; }; BN.prototype.toJSON = function toJSON() { return this.toString(16); }; BN.prototype.toBuffer = function toBuffer(endian, length) { assert(typeof Buffer !== "undefined"); return this.toArrayLike(Buffer, endian, length); }; BN.prototype.toArray = function toArray(endian, length) { return this.toArrayLike(Array, endian, length); }; BN.prototype.toArrayLike = function toArrayLike( ArrayType, endian, length ) { var byteLength = this.byteLength(); var reqLength = length || Math.max(1, byteLength); assert( byteLength <= reqLength, "byte array longer than desired length" ); assert(reqLength > 0, "Requested array length <= 0"); this.strip(); var littleEndian = endian === "le"; var res = new ArrayType(reqLength); var b, i; var q = this.clone(); if (!littleEndian) { // Assume big-endian for (i = 0; i < reqLength - byteLength; i++) { res[i] = 0; } for (i = 0; !q.isZero(); i++) { b = q.andln(0xff); q.iushrn(8); res[reqLength - i - 1] = b; } } else { for (i = 0; !q.isZero(); i++) { b = q.andln(0xff); q.iushrn(8); res[i] = b; } for (; i < reqLength; i++) { res[i] = 0; } } return res; }; if (Math.clz32) { BN.prototype._countBits = function _countBits(w) { return 32 - Math.clz32(w); }; } else { BN.prototype._countBits = function _countBits(w) { var t = w; var r = 0; if (t >= 0x1000) { r += 13; t >>>= 13; } if (t >= 0x40) { r += 7; t >>>= 7; } if (t >= 0x8) { r += 4; t >>>= 4; } if (t >= 0x02) { r += 2; t >>>= 2; } return r + t; }; } BN.prototype._zeroBits = function _zeroBits(w) { // Short-cut if (w === 0) return 26; var t = w; var r = 0; if ((t & 0x1fff) === 0) { r += 13; t >>>= 13; } if ((t & 0x7f) === 0) { r += 7; t >>>= 7; } if ((t & 0xf) === 0) { r += 4; t >>>= 4; } if ((t & 0x3) === 0) { r += 2; t >>>= 2; } if ((t & 0x1) === 0) { r++; } return r; }; // Return number of used bits in a BN BN.prototype.bitLength = function bitLength() { var w = this.words[this.length - 1]; var hi = this._countBits(w); return (this.length - 1) * 26 + hi; }; function toBitArray(num) { var w = new Array(num.bitLength()); for (var bit = 0; bit < w.length; bit++) { var off = (bit / 26) | 0; var wbit = bit % 26; w[bit] = (num.words[off] & (1 << wbit)) >>> wbit; } return w; } // Number of trailing zero bits BN.prototype.zeroBits = function zeroBits() { if (this.isZero()) return 0; var r = 0; for (var i = 0; i < this.length; i++) { var b = this._zeroBits(this.words[i]); r += b; if (b !== 26) break; } return r; }; BN.prototype.byteLength = function byteLength() { return Math.ceil(this.bitLength() / 8); }; BN.prototype.toTwos = function toTwos(width) { if (this.negative !== 0) { return this.abs().inotn(width).iaddn(1); } return this.clone(); }; BN.prototype.fromTwos = function fromTwos(width) { if (this.testn(width - 1)) { return this.notn(width).iaddn(1).ineg(); } return this.clone(); }; BN.prototype.isNeg = function isNeg() { return this.negative !== 0; }; // Return negative clone of `this` BN.prototype.neg = function neg() { return this.clone().ineg(); }; BN.prototype.ineg = function ineg() { if (!this.isZero()) { this.negative ^= 1; } return this; }; // Or `num` with `this` in-place BN.prototype.iuor = function iuor(num) { while (this.length < num.length) { this.words[this.length++] = 0; } for (var i = 0; i < num.length; i++) { this.words[i] = this.words[i] | num.words[i]; } return this.strip(); }; BN.prototype.ior = function ior(num) { assert((this.negative | num.negative) === 0); return this.iuor(num); }; // Or `num` with `this` BN.prototype.or = function or(num) { if (this.length > num.length) return this.clone().ior(num); return num.clone().ior(this); }; BN.prototype.uor = function uor(num) { if (this.length > num.length) return this.clone().iuor(num); return num.clone().iuor(this); }; // And `num` with `this` in-place BN.prototype.iuand = function iuand(num) { // b = min-length(num, this) var b; if (this.length > num.length) { b = num; } else { b = this; } for (var i = 0; i < b.length; i++) { this.words[i] = this.words[i] & num.words[i]; } this.length = b.length; return this.strip(); }; BN.prototype.iand = function iand(num) { assert((this.negative | num.negative) === 0); return this.iuand(num); }; // And `num` with `this` BN.prototype.and = function and(num) { if (this.length > num.length) return this.clone().iand(num); return num.clone().iand(this); }; BN.prototype.uand = function uand(num) { if (this.length > num.length) return this.clone().iuand(num); return num.clone().iuand(this); }; // Xor `num` with `this` in-place BN.prototype.iuxor = function iuxor(num) { // a.length > b.length var a; var b; if (this.length > num.length) { a = this; b = num; } else { a = num; b = this; } for (var i = 0; i < b.length; i++) { this.words[i] = a.words[i] ^ b.words[i]; } if (this !== a) { for (; i < a.length; i++) { this.words[i] = a.words[i]; } } this.length = a.length; return this.strip(); }; BN.prototype.ixor = function ixor(num) { assert((this.negative | num.negative) === 0); return this.iuxor(num); }; // Xor `num` with `this` BN.prototype.xor = function xor(num) { if (this.length > num.length) return this.clone().ixor(num); return num.clone().ixor(this); }; BN.prototype.uxor = function uxor(num) { if (this.length > num.length) return this.clone().iuxor(num); return num.clone().iuxor(this); }; // Not ``this`` with ``width`` bitwidth BN.prototype.inotn = function inotn(width) { assert(typeof width === "number" && width >= 0); var bytesNeeded = Math.ceil(width / 26) | 0; var bitsLeft = width % 26; // Extend the buffer with leading zeroes this._expand(bytesNeeded); if (bitsLeft > 0) { bytesNeeded--; } // Handle complete words for (var i = 0; i < bytesNeeded; i++) { this.words[i] = ~this.words[i] & 0x3ffffff; } // Handle the residue if (bitsLeft > 0) { this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft)); } // And remove leading zeroes return this.strip(); }; BN.prototype.notn = function notn(width) { return this.clone().inotn(width); }; // Set `bit` of `this` BN.prototype.setn = function setn(bit, val) { assert(typeof bit === "number" && bit >= 0); var off = (bit / 26) | 0; var wbit = bit % 26; this._expand(off + 1); if (val) { this.words[off] = this.words[off] | (1 << wbit); } else { this.words[off] = this.words[off] & ~(1 << wbit); } return this.strip(); }; // Add `num` to `this` in-place BN.prototype.iadd = function iadd(num) { var r; // negative + positive if (this.negative !== 0 && num.negative === 0) { this.negative = 0; r = this.isub(num); this.negative ^= 1; return this._normSign(); // positive + negative } else if (this.negative === 0 && num.negative !== 0) { num.negative = 0; r = this.isub(num); num.negative = 1; return r._normSign(); } // a.length > b.length var a, b; if (this.length > num.length) { a = this; b = num; } else { a = num; b = this; } var carry = 0; for (var i = 0; i < b.length; i++) { r = (a.words[i] | 0) + (b.words[i] | 0) + carry; this.words[i] = r & 0x3ffffff; carry = r >>> 26; } for (; carry !== 0 && i < a.length; i++) { r = (a.words[i] | 0) + carry; this.words[i] = r & 0x3ffffff; carry = r >>> 26; } this.length = a.length; if (carry !== 0) { this.words[this.length] = carry; this.length++; // Copy the rest of the words } else if (a !== this) { for (; i < a.length; i++) { this.words[i] = a.words[i]; } } return this; }; // Add `num` to `this` BN.prototype.add = function add(num) { var res; if (num.negative !== 0 && this.negative === 0) { num.negative = 0; res = this.sub(num); num.negative ^= 1; return res; } else if (num.negative === 0 && this.negative !== 0) { this.negative = 0; res = num.sub(this); this.negative = 1; return res; } if (this.length > num.length) return this.clone().iadd(num); return num.clone().iadd(this); }; // Subtract `num` from `this` in-place BN.prototype.isub = function isub(num) { // this - (-num) = this + num if (num.negative !== 0) { num.negative = 0; var r = this.iadd(num); num.negative = 1; return r._normSign(); // -this - num = -(this + num) } else if (this.negative !== 0) { this.negative = 0; this.iadd(num); this.negative = 1; return this._normSign(); } // At this point both numbers are positive var cmp = this.cmp(num); // Optimization - zeroify if (cmp === 0) { this.negative = 0; this.length = 1; this.words[0] = 0; return this; } // a > b var a, b; if (cmp > 0) { a = this; b = num; } else { a = num; b = this; } var carry = 0; for (var i = 0; i < b.length; i++) { r = (a.words[i] | 0) - (b.words[i] | 0) + carry; carry = r >> 26; this.words[i] = r & 0x3ffffff; } for (; carry !== 0 && i < a.length; i++) { r = (a.words[i] | 0) + carry; carry = r >> 26; this.words[i] = r & 0x3ffffff; } // Copy rest of the words if (carry === 0 && i < a.length && a !== this) { for (; i < a.length; i++) { this.words[i] = a.words[i]; } } this.length = Math.max(this.length, i); if (a !== this) { this.negative = 1; } return this.strip(); }; // Subtract `num` from `this` BN.prototype.sub = function sub(num) { return this.clone().isub(num); }; function smallMulTo(self, num, out) { out.negative = num.negative ^ self.negative; var len = (self.length + num.length) | 0; out.length = len; len = (len - 1) | 0; // Peel one iteration (compiler can't do it, because of code complexity) var a = self.words[0] | 0; var b = num.words[0] | 0; var r = a * b; var lo = r & 0x3ffffff; var carry = (r / 0x4000000) | 0; out.words[0] = lo; for (var k = 1; k < len; k++) { // Sum all words with the same `i + j = k` and accumulate `ncarry`, // note that ncarry could be >= 0x3ffffff var ncarry = carry >>> 26; var rword = carry & 0x3ffffff; var maxJ = Math.min(k, num.length - 1); for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { var i = (k - j) | 0; a = self.words[i] | 0; b = num.words[j] | 0; r = a * b + rword; ncarry += (r / 0x4000000) | 0; rword = r & 0x3ffffff; } out.words[k] = rword | 0; carry = ncarry | 0; } if (carry !== 0) { out.words[k] = carry | 0; } else { out.length--; } return out.strip(); } // TODO(indutny): it may be reasonable to omit it for users who don't need // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit // multiplication (like elliptic secp256k1). var comb10MulTo = function comb10MulTo(self, num, out) { var a = self.words; var b = num.words; var o = out.words; var c = 0; var lo; var mid; var hi; var a0 = a[0] | 0; var al0 = a0 & 0x1fff; var ah0 = a0 >>> 13; var a1 = a[1] | 0; var al1 = a1 & 0x1fff; var ah1 = a1 >>> 13; var a2 = a[2] | 0; var al2 = a2 & 0x1fff; var ah2 = a2 >>> 13; var a3 = a[3] | 0; var al3 = a3 & 0x1fff; var ah3 = a3 >>> 13; var a4 = a[4] | 0; var al4 = a4 & 0x1fff; var ah4 = a4 >>> 13; var a5 = a[5] | 0; var al5 = a5 & 0x1fff; var ah5 = a5 >>> 13; var a6 = a[6] | 0; var al6 = a6 & 0x1fff; var ah6 = a6 >>> 13; var a7 = a[7] | 0; var al7 = a7 & 0x1fff; var ah7 = a7 >>> 13; var a8 = a[8] | 0; var al8 = a8 & 0x1fff; var ah8 = a8 >>> 13; var a9 = a[9] | 0; var al9 = a9 & 0x1fff; var ah9 = a9 >>> 13; var b0 = b[0] | 0; var bl0 = b0 & 0x1fff; var bh0 = b0 >>> 13; var b1 = b[1] | 0; var bl1 = b1 & 0x1fff; var bh1 = b1 >>> 13; var b2 = b[2] | 0; var bl2 = b2 & 0x1fff; var bh2 = b2 >>> 13; var b3 = b[3] | 0; var bl3 = b3 & 0x1fff; var bh3 = b3 >>> 13; var b4 = b[4] | 0; var bl4 = b4 & 0x1fff; var bh4 = b4 >>> 13; var b5 = b[5] | 0; var bl5 = b5 & 0x1fff; var bh5 = b5 >>> 13; var b6 = b[6] | 0; var bl6 = b6 & 0x1fff; var bh6 = b6 >>> 13; var b7 = b[7] | 0; var bl7 = b7 & 0x1fff; var bh7 = b7 >>> 13; var b8 = b[8] | 0; var bl8 = b8 & 0x1fff; var bh8 = b8 >>> 13; var b9 = b[9] | 0; var bl9 = b9 & 0x1fff; var bh9 = b9 >>> 13; out.negative = self.negative ^ num.negative; out.length = 19; /* k = 0 */ lo = Math.imul(al0, bl0); mid = Math.imul(al0, bh0); mid = (mid + Math.imul(ah0, bl0)) | 0; hi = Math.imul(ah0, bh0); var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0; w0 &= 0x3ffffff; /* k = 1 */ lo = Math.imul(al1, bl0); mid = Math.imul(al1, bh0); mid = (mid + Math.imul(ah1, bl0)) | 0; hi = Math.imul(ah1, bh0); lo = (lo + Math.imul(al0, bl1)) | 0; mid = (mid + Math.imul(al0, bh1)) | 0; mid = (mid + Math.imul(ah0, bl1)) | 0; hi = (hi + Math.imul(ah0, bh1)) | 0; var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0; w1 &= 0x3ffffff; /* k = 2 */ lo = Math.imul(al2, bl0); mid = Math.imul(al2, bh0); mid = (mid + Math.imul(ah2, bl0)) | 0; hi = Math.imul(ah2, bh0); lo = (lo + Math.imul(al1, bl1)) | 0; mid = (mid + Math.imul(al1, bh1)) | 0; mid = (mid + Math.imul(ah1, bl1)) | 0; hi = (hi + Math.imul(ah1, bh1)) | 0; lo = (lo + Math.imul(al0, bl2)) | 0; mid = (mid + Math.imul(al0, bh2)) | 0; mid = (mid + Math.imul(ah0, bl2)) | 0; hi = (hi + Math.imul(ah0, bh2)) | 0; var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0; w2 &= 0x3ffffff; /* k = 3 */ lo = Math.imul(al3, bl0); mid = Math.imul(al3, bh0); mid = (mid + Math.imul(ah3, bl0)) | 0; hi = Math.imul(ah3, bh0); lo = (lo + Math.imul(al2, bl1)) | 0; mid = (mid + Math.imul(al2, bh1)) | 0; mid = (mid + Math.imul(ah2, bl1)) | 0; hi = (hi + Math.imul(ah2, bh1)) | 0; lo = (lo + Math.imul(al1, bl2)) | 0; mid = (mid + Math.imul(al1, bh2)) | 0; mid = (mid + Math.imul(ah1, bl2)) | 0; hi = (hi + Math.imul(ah1, bh2)) | 0; lo = (lo + Math.imul(al0, bl3)) | 0; mid = (mid + Math.imul(al0, bh3)) | 0; mid = (mid + Math.imul(ah0, bl3)) | 0; hi = (hi + Math.imul(ah0, bh3)) | 0; var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0; w3 &= 0x3ffffff; /* k = 4 */ lo = Math.imul(al4, bl0); mid = Math.imul(al4, bh0); mid = (mid + Math.imul(ah4, bl0)) | 0; hi = Math.imul(ah4, bh0); lo = (lo + Math.imul(al3, bl1)) | 0; mid = (mid + Math.imul(al3, bh1)) | 0; mid = (mid + Math.imul(ah3, bl1)) | 0; hi = (hi + Math.imul(ah3, bh1)) | 0; lo = (lo + Math.imul(al2, bl2)) | 0; mid = (mid + Math.imul(al2, bh2)) | 0; mid = (mid + Math.imul(ah2, bl2)) | 0; hi = (hi + Math.imul(ah2, bh2)) | 0; lo = (lo + Math.imul(al1, bl3)) | 0; mid = (mid + Math.imul(al1, bh3)) | 0; mid = (mid + Math.imul(ah1, bl3)) | 0; hi = (hi + Math.imul(ah1, bh3)) | 0; lo = (lo + Math.imul(al0, bl4)) | 0; mid = (mid + Math.imul(al0, bh4)) | 0; mid = (mid + Math.imul(ah0, bl4)) | 0; hi = (hi + Math.imul(ah0, bh4)) | 0; var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0; w4 &= 0x3ffffff; /* k = 5 */ lo = Math.imul(al5, bl0); mid = Math.imul(al5, bh0); mid = (mid + Math.imul(ah5, bl0)) | 0; hi = Math.imul(ah5, bh0); lo = (lo + Math.imul(al4, bl1)) | 0; mid = (mid + Math.imul(al4, bh1)) | 0; mid = (mid + Math.imul(ah4, bl1)) | 0; hi = (hi + Math.imul(ah4, bh1)) | 0; lo = (lo + Math.imul(al3, bl2)) | 0; mid = (mid + Math.imul(al3, bh2)) | 0; mid = (mid + Math.imul(ah3, bl2)) | 0; hi = (hi + Math.imul(ah3, bh2)) | 0; lo = (lo + Math.imul(al2, bl3)) | 0; mid = (mid + Math.imul(al2, bh3)) | 0; mid = (mid + Math.imul(ah2, bl3)) | 0; hi = (hi + Math.imul(ah2, bh3)) | 0; lo = (lo + Math.imul(al1, bl4)) | 0; mid = (mid + Math.imul(al1, bh4)) | 0; mid = (mid + Math.imul(ah1, bl4)) | 0; hi = (hi + Math.imul(ah1, bh4)) | 0; lo = (lo + Math.imul(al0, bl5)) | 0; mid = (mid + Math.imul(al0, bh5)) | 0; mid = (mid + Math.imul(ah0, bl5)) | 0; hi = (hi + Math.imul(ah0, bh5)) | 0; var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0; w5 &= 0x3ffffff; /* k = 6 */ lo = Math.imul(al6, bl0); mid = Math.imul(al6, bh0); mid = (mid + Math.imul(ah6, bl0)) | 0; hi = Math.imul(ah6, bh0); lo = (lo + Math.imul(al5, bl1)) | 0; mid = (mid + Math.imul(al5, bh1)) | 0; mid = (mid + Math.imul(ah5, bl1)) | 0; hi = (hi + Math.imul(ah5, bh1)) | 0; lo = (lo + Math.imul(al4, bl2)) | 0; mid = (mid + Math.imul(al4, bh2)) | 0; mid = (mid + Math.imul(ah4, bl2)) | 0; hi = (hi + Math.imul(ah4, bh2)) | 0; lo = (lo + Math.imul(al3, bl3)) | 0; mid = (mid + Math.imul(al3, bh3)) | 0; mid = (mid + Math.imul(ah3, bl3)) | 0; hi = (hi + Math.imul(ah3, bh3)) | 0; lo = (lo + Math.imul(al2, bl4)) | 0; mid = (mid + Math.imul(al2, bh4)) | 0; mid = (mid + Math.imul(ah2, bl4)) | 0; hi = (hi + Math.imul(ah2, bh4)) | 0; lo = (lo + Math.imul(al1, bl5)) | 0; mid = (mid + Math.imul(al1, bh5)) | 0; mid = (mid + Math.imul(ah1, bl5)) | 0; hi = (hi + Math.imul(ah1, bh5)) | 0; lo = (lo + Math.imul(al0, bl6)) | 0; mid = (mid + Math.imul(al0, bh6)) | 0; mid = (mid + Math.imul(ah0, bl6)) | 0; hi = (hi + Math.imul(ah0, bh6)) | 0; var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0; w6 &= 0x3ffffff; /* k = 7 */ lo = Math.imul(al7, bl0); mid = Math.imul(al7, bh0); mid = (mid + Math.imul(ah7, bl0)) | 0; hi = Math.imul(ah7, bh0); lo = (lo + Math.imul(al6, bl1)) | 0; mid = (mid + Math.imul(al6, bh1)) | 0; mid = (mid + Math.imul(ah6, bl1)) | 0; hi = (hi + Math.imul(ah6, bh1)) | 0; lo = (lo + Math.imul(al5, bl2)) | 0; mid = (mid + Math.imul(al5, bh2)) | 0; mid = (mid + Math.imul(ah5, bl2)) | 0; hi = (hi + Math.imul(ah5, bh2)) | 0; lo = (lo + Math.imul(al4, bl3)) | 0; mid = (mid + Math.imul(al4, bh3)) | 0; mid = (mid + Math.imul(ah4, bl3)) | 0; hi = (hi + Math.imul(ah4, bh3)) | 0; lo = (lo + Math.imul(al3, bl4)) | 0; mid = (mid + Math.imul(al3, bh4)) | 0; mid = (mid + Math.imul(ah3, bl4)) | 0; hi = (hi + Math.imul(ah3, bh4)) | 0; lo = (lo + Math.imul(al2, bl5)) | 0; mid = (mid + Math.imul(al2, bh5)) | 0; mid = (mid + Math.imul(ah2, bl5)) | 0; hi = (hi + Math.imul(ah2, bh5)) | 0; lo = (lo + Math.imul(al1, bl6)) | 0; mid = (mid + Math.imul(al1, bh6)) | 0; mid = (mid + Math.imul(ah1, bl6)) | 0; hi = (hi + Math.imul(ah1, bh6)) | 0; lo = (lo + Math.imul(al0, bl7)) | 0; mid = (mid + Math.imul(al0, bh7)) | 0; mid = (mid + Math.imul(ah0, bl7)) | 0; hi = (hi + Math.imul(ah0, bh7)) | 0; var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0; w7 &= 0x3ffffff; /* k = 8 */ lo = Math.imul(al8, bl0); mid = Math.imul(al8, bh0); mid = (mid + Math.imul(ah8, bl0)) | 0; hi = Math.imul(ah8, bh0); lo = (lo + Math.imul(al7, bl1)) | 0; mid = (mid + Math.imul(al7, bh1)) | 0; mid = (mid + Math.imul(ah7, bl1)) | 0; hi = (hi + Math.imul(ah7, bh1)) | 0; lo = (lo + Math.imul(al6, bl2)) | 0; mid = (mid + Math.imul(al6, bh2)) | 0; mid = (mid + Math.imul(ah6, bl2)) | 0; hi = (hi + Math.imul(ah6, bh2)) | 0; lo = (lo + Math.imul(al5, bl3)) | 0; mid = (mid + Math.imul(al5, bh3)) | 0; mid = (mid + Math.imul(ah5, bl3)) | 0; hi = (hi + Math.imul(ah5, bh3)) | 0; lo = (lo + Math.imul(al4, bl4)) | 0; mid = (mid + Math.imul(al4, bh4)) | 0; mid = (mid + Math.imul(ah4, bl4)) | 0; hi = (hi + Math.imul(ah4, bh4)) | 0; lo = (lo + Math.imul(al3, bl5)) | 0; mid = (mid + Math.imul(al3, bh5)) | 0; mid = (mid + Math.imul(ah3, bl5)) | 0; hi = (hi + Math.imul(ah3, bh5)) | 0; lo = (lo + Math.imul(al2, bl6)) | 0; mid = (mid + Math.imul(al2, bh6)) | 0; mid = (mid + Math.imul(ah2, bl6)) | 0; hi = (hi + Math.imul(ah2, bh6)) | 0; lo = (lo + Math.imul(al1, bl7)) | 0; mid = (mid + Math.imul(al1, bh7)) | 0; mid = (mid + Math.imul(ah1, bl7)) | 0; hi = (hi + Math.imul(ah1, bh7)) | 0; lo = (lo + Math.imul(al0, bl8)) | 0; mid = (mid + Math.imul(al0, bh8)) | 0; mid = (mid + Math.imul(ah0, bl8)) | 0; hi = (hi + Math.imul(ah0, bh8)) | 0; var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0; w8 &= 0x3ffffff; /* k = 9 */ lo = Math.imul(al9, bl0); mid = Math.imul(al9, bh0); mid = (mid + Math.imul(ah9, bl0)) | 0; hi = Math.imul(ah9, bh0); lo = (lo + Math.imul(al8, bl1)) | 0; mid = (mid + Math.imul(al8, bh1)) | 0; mid = (mid + Math.imul(ah8, bl1)) | 0; hi = (hi + Math.imul(ah8, bh1)) | 0; lo = (lo + Math.imul(al7, bl2)) | 0; mid = (mid + Math.imul(al7, bh2)) | 0; mid = (mid + Math.imul(ah7, bl2)) | 0; hi = (hi + Math.imul(ah7, bh2)) | 0; lo = (lo + Math.imul(al6, bl3)) | 0; mid = (mid + Math.imul(al6, bh3)) | 0; mid = (mid + Math.imul(ah6, bl3)) | 0; hi = (hi + Math.imul(ah6, bh3)) | 0; lo = (lo + Math.imul(al5, bl4)) | 0; mid = (mid + Math.imul(al5, bh4)) | 0; mid = (mid + Math.imul(ah5, bl4)) | 0; hi = (hi + Math.imul(ah5, bh4)) | 0; lo = (lo + Math.imul(al4, bl5)) | 0; mid = (mid + Math.imul(al4, bh5)) | 0; mid = (mid + Math.imul(ah4, bl5)) | 0; hi = (hi + Math.imul(ah4, bh5)) | 0; lo = (lo + Math.imul(al3, bl6)) | 0; mid = (mid + Math.imul(al3, bh6)) | 0; mid = (mid + Math.imul(ah3, bl6)) | 0; hi = (hi + Math.imul(ah3, bh6)) | 0; lo = (lo + Math.imul(al2, bl7)) | 0; mid = (mid + Math.imul(al2, bh7)) | 0; mid = (mid + Math.imul(ah2, bl7)) | 0; hi = (hi + Math.imul(ah2, bh7)) | 0; lo = (lo + Math.imul(al1, bl8)) | 0; mid = (mid + Math.imul(al1, bh8)) | 0; mid = (mid + Math.imul(ah1, bl8)) | 0; hi = (hi + Math.imul(ah1, bh8)) | 0; lo = (lo + Math.imul(al0, bl9)) | 0; mid = (mid + Math.imul(al0, bh9)) | 0; mid = (mid + Math.imul(ah0, bl9)) | 0; hi = (hi + Math.imul(ah0, bh9)) | 0; var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0; w9 &= 0x3ffffff; /* k = 10 */ lo = Math.imul(al9, bl1); mid = Math.imul(al9, bh1); mid = (mid + Math.imul(ah9, bl1)) | 0; hi = Math.imul(ah9, bh1); lo = (lo + Math.imul(al8, bl2)) | 0; mid = (mid + Math.imul(al8, bh2)) | 0; mid = (mid + Math.imul(ah8, bl2)) | 0; hi = (hi + Math.imul(ah8, bh2)) | 0; lo = (lo + Math.imul(al7, bl3)) | 0; mid = (mid + Math.imul(al7, bh3)) | 0; mid = (mid + Math.imul(ah7, bl3)) | 0; hi = (hi + Math.imul(ah7, bh3)) | 0; lo = (lo + Math.imul(al6, bl4)) | 0; mid = (mid + Math.imul(al6, bh4)) | 0; mid = (mid + Math.imul(ah6, bl4)) | 0; hi = (hi + Math.imul(ah6, bh4)) | 0; lo = (lo + Math.imul(al5, bl5)) | 0; mid = (mid + Math.imul(al5, bh5)) | 0; mid = (mid + Math.imul(ah5, bl5)) | 0; hi = (hi + Math.imul(ah5, bh5)) | 0; lo = (lo + Math.imul(al4, bl6)) | 0; mid = (mid + Math.imul(al4, bh6)) | 0; mid = (mid + Math.imul(ah4, bl6)) | 0; hi = (hi + Math.imul(ah4, bh6)) | 0; lo = (lo + Math.imul(al3, bl7)) | 0; mid = (mid + Math.imul(al3, bh7)) | 0; mid = (mid + Math.imul(ah3, bl7)) | 0; hi = (hi + Math.imul(ah3, bh7)) | 0; lo = (lo + Math.imul(al2, bl8)) | 0; mid = (mid + Math.imul(al2, bh8)) | 0; mid = (mid + Math.imul(ah2, bl8)) | 0; hi = (hi + Math.imul(ah2, bh8)) | 0; lo = (lo + Math.imul(al1, bl9)) | 0; mid = (mid + Math.imul(al1, bh9)) | 0; mid = (mid + Math.imul(ah1, bl9)) | 0; hi = (hi + Math.imul(ah1, bh9)) | 0; var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0; w10 &= 0x3ffffff; /* k = 11 */ lo = Math.imul(al9, bl2); mid = Math.imul(al9, bh2); mid = (mid + Math.imul(ah9, bl2)) | 0; hi = Math.imul(ah9, bh2); lo = (lo + Math.imul(al8, bl3)) | 0; mid = (mid + Math.imul(al8, bh3)) | 0; mid = (mid + Math.imul(ah8, bl3)) | 0; hi = (hi + Math.imul(ah8, bh3)) | 0; lo = (lo + Math.imul(al7, bl4)) | 0; mid = (mid + Math.imul(al7, bh4)) | 0; mid = (mid + Math.imul(ah7, bl4)) | 0; hi = (hi + Math.imul(ah7, bh4)) | 0; lo = (lo + Math.imul(al6, bl5)) | 0; mid = (mid + Math.imul(al6, bh5)) | 0; mid = (mid + Math.imul(ah6, bl5)) | 0; hi = (hi + Math.imul(ah6, bh5)) | 0; lo = (lo + Math.imul(al5, bl6)) | 0; mid = (mid + Math.imul(al5, bh6)) | 0; mid = (mid + Math.imul(ah5, bl6)) | 0; hi = (hi + Math.imul(ah5, bh6)) | 0; lo = (lo + Math.imul(al4, bl7)) | 0; mid = (mid + Math.imul(al4, bh7)) | 0; mid = (mid + Math.imul(ah4, bl7)) | 0; hi = (hi + Math.imul(ah4, bh7)) | 0; lo = (lo + Math.imul(al3, bl8)) | 0; mid = (mid + Math.imul(al3, bh8)) | 0; mid = (mid + Math.imul(ah3, bl8)) | 0; hi = (hi + Math.imul(ah3, bh8)) | 0; lo = (lo + Math.imul(al2, bl9)) | 0; mid = (mid + Math.imul(al2, bh9)) | 0; mid = (mid + Math.imul(ah2, bl9)) | 0; hi = (hi + Math.imul(ah2, bh9)) | 0; var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0; w11 &= 0x3ffffff; /* k = 12 */ lo = Math.imul(al9, bl3); mid = Math.imul(al9, bh3); mid = (mid + Math.imul(ah9, bl3)) | 0; hi = Math.imul(ah9, bh3); lo = (lo + Math.imul(al8, bl4)) | 0; mid = (mid + Math.imul(al8, bh4)) | 0; mid = (mid + Math.imul(ah8, bl4)) | 0; hi = (hi + Math.imul(ah8, bh4)) | 0; lo = (lo + Math.imul(al7, bl5)) | 0; mid = (mid + Math.imul(al7, bh5)) | 0; mid = (mid + Math.imul(ah7, bl5)) | 0; hi = (hi + Math.imul(ah7, bh5)) | 0; lo = (lo + Math.imul(al6, bl6)) | 0; mid = (mid + Math.imul(al6, bh6)) | 0; mid = (mid + Math.imul(ah6, bl6)) | 0; hi = (hi + Math.imul(ah6, bh6)) | 0; lo = (lo + Math.imul(al5, bl7)) | 0; mid = (mid + Math.imul(al5, bh7)) | 0; mid = (mid + Math.imul(ah5, bl7)) | 0; hi = (hi + Math.imul(ah5, bh7)) | 0; lo = (lo + Math.imul(al4, bl8)) | 0; mid = (mid + Math.imul(al4, bh8)) | 0; mid = (mid + Math.imul(ah4, bl8)) | 0; hi = (hi + Math.imul(ah4, bh8)) | 0; lo = (lo + Math.imul(al3, bl9)) | 0; mid = (mid + Math.imul(al3, bh9)) | 0; mid = (mid + Math.imul(ah3, bl9)) | 0; hi = (hi + Math.imul(ah3, bh9)) | 0; var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0; w12 &= 0x3ffffff; /* k = 13 */ lo = Math.imul(al9, bl4); mid = Math.imul(al9, bh4); mid = (mid + Math.imul(ah9, bl4)) | 0; hi = Math.imul(ah9, bh4); lo = (lo + Math.imul(al8, bl5)) | 0; mid = (mid + Math.imul(al8, bh5)) | 0; mid = (mid + Math.imul(ah8, bl5)) | 0; hi = (hi + Math.imul(ah8, bh5)) | 0; lo = (lo + Math.imul(al7, bl6)) | 0; mid = (mid + Math.imul(al7, bh6)) | 0; mid = (mid + Math.imul(ah7, bl6)) | 0; hi = (hi + Math.imul(ah7, bh6)) | 0; lo = (lo + Math.imul(al6, bl7)) | 0; mid = (mid + Math.imul(al6, bh7)) | 0; mid = (mid + Math.imul(ah6, bl7)) | 0; hi = (hi + Math.imul(ah6, bh7)) | 0; lo = (lo + Math.imul(al5, bl8)) | 0; mid = (mid + Math.imul(al5, bh8)) | 0; mid = (mid + Math.imul(ah5, bl8)) | 0; hi = (hi + Math.imul(ah5, bh8)) | 0; lo = (lo + Math.imul(al4, bl9)) | 0; mid = (mid + Math.imul(al4, bh9)) | 0; mid = (mid + Math.imul(ah4, bl9)) | 0; hi = (hi + Math.imul(ah4, bh9)) | 0; var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0; w13 &= 0x3ffffff; /* k = 14 */ lo = Math.imul(al9, bl5); mid = Math.imul(al9, bh5); mid = (mid + Math.imul(ah9, bl5)) | 0; hi = Math.imul(ah9, bh5); lo = (lo + Math.imul(al8, bl6)) | 0; mid = (mid + Math.imul(al8, bh6)) | 0; mid = (mid + Math.imul(ah8, bl6)) | 0; hi = (hi + Math.imul(ah8, bh6)) | 0; lo = (lo + Math.imul(al7, bl7)) | 0; mid = (mid + Math.imul(al7, bh7)) | 0; mid = (mid + Math.imul(ah7, bl7)) | 0; hi = (hi + Math.imul(ah7, bh7)) | 0; lo = (lo + Math.imul(al6, bl8)) | 0; mid = (mid + Math.imul(al6, bh8)) | 0; mid = (mid + Math.imul(ah6, bl8)) | 0; hi = (hi + Math.imul(ah6, bh8)) | 0; lo = (lo + Math.imul(al5, bl9)) | 0; mid = (mid + Math.imul(al5, bh9)) | 0; mid = (mid + Math.imul(ah5, bl9)) | 0; hi = (hi + Math.imul(ah5, bh9)) | 0; var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0; w14 &= 0x3ffffff; /* k = 15 */ lo = Math.imul(al9, bl6); mid = Math.imul(al9, bh6); mid = (mid + Math.imul(ah9, bl6)) | 0; hi = Math.imul(ah9, bh6); lo = (lo + Math.imul(al8, bl7)) | 0; mid = (mid + Math.imul(al8, bh7)) | 0; mid = (mid + Math.imul(ah8, bl7)) | 0; hi = (hi + Math.imul(ah8, bh7)) | 0; lo = (lo + Math.imul(al7, bl8)) | 0; mid = (mid + Math.imul(al7, bh8)) | 0; mid = (mid + Math.imul(ah7, bl8)) | 0; hi = (hi + Math.imul(ah7, bh8)) | 0; lo = (lo + Math.imul(al6, bl9)) | 0; mid = (mid + Math.imul(al6, bh9)) | 0; mid = (mid + Math.imul(ah6, bl9)) | 0; hi = (hi + Math.imul(ah6, bh9)) | 0; var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0; w15 &= 0x3ffffff; /* k = 16 */ lo = Math.imul(al9, bl7); mid = Math.imul(al9, bh7); mid = (mid + Math.imul(ah9, bl7)) | 0; hi = Math.imul(ah9, bh7); lo = (lo + Math.imul(al8, bl8)) | 0; mid = (mid + Math.imul(al8, bh8)) | 0; mid = (mid + Math.imul(ah8, bl8)) | 0; hi = (hi + Math.imul(ah8, bh8)) | 0; lo = (lo + Math.imul(al7, bl9)) | 0; mid = (mid + Math.imul(al7, bh9)) | 0; mid = (mid + Math.imul(ah7, bl9)) | 0; hi = (hi + Math.imul(ah7, bh9)) | 0; var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0; w16 &= 0x3ffffff; /* k = 17 */ lo = Math.imul(al9, bl8); mid = Math.imul(al9, bh8); mid = (mid + Math.imul(ah9, bl8)) | 0; hi = Math.imul(ah9, bh8); lo = (lo + Math.imul(al8, bl9)) | 0; mid = (mid + Math.imul(al8, bh9)) | 0; mid = (mid + Math.imul(ah8, bl9)) | 0; hi = (hi + Math.imul(ah8, bh9)) | 0; var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0; w17 &= 0x3ffffff; /* k = 18 */ lo = Math.imul(al9, bl9); mid = Math.imul(al9, bh9); mid = (mid + Math.imul(ah9, bl9)) | 0; hi = Math.imul(ah9, bh9); var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0; w18 &= 0x3ffffff; o[0] = w0; o[1] = w1; o[2] = w2; o[3] = w3; o[4] = w4; o[5] = w5; o[6] = w6; o[7] = w7; o[8] = w8; o[9] = w9; o[10] = w10; o[11] = w11; o[12] = w12; o[13] = w13; o[14] = w14; o[15] = w15; o[16] = w16; o[17] = w17; o[18] = w18; if (c !== 0) { o[19] = c; out.length++; } return out; }; // Polyfill comb if (!Math.imul) { comb10MulTo = smallMulTo; } function bigMulTo(self, num, out) { out.negative = num.negative ^ self.negative; out.length = self.length + num.length; var carry = 0; var hncarry = 0; for (var k = 0; k < out.length - 1; k++) { // Sum all words with the same `i + j = k` and accumulate `ncarry`, // note that ncarry could be >= 0x3ffffff var ncarry = hncarry; hncarry = 0; var rword = carry & 0x3ffffff; var maxJ = Math.min(k, num.length - 1); for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { var i = k - j; var a = self.words[i] | 0; var b = num.words[j] | 0; var r = a * b; var lo = r & 0x3ffffff; ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; lo = (lo + rword) | 0; rword = lo & 0x3ffffff; ncarry = (ncarry + (lo >>> 26)) | 0; hncarry += ncarry >>> 26; ncarry &= 0x3ffffff; } out.words[k] = rword; carry = ncarry; ncarry = hncarry; } if (carry !== 0) { out.words[k] = carry; } else { out.length--; } return out.strip(); } function jumboMulTo(self, num, out) { var fftm = new FFTM(); return fftm.mulp(self, num, out); } BN.prototype.mulTo = function mulTo(num, out) { var res; var len = this.length + num.length; if (this.length === 10 && num.length === 10) { res = comb10MulTo(this, num, out); } else if (len < 63) { res = smallMulTo(this, num, out); } else if (len < 1024) { res = bigMulTo(this, num, out); } else { res = jumboMulTo(this, num, out); } return res; }; // Cooley-Tukey algorithm for FFT // slightly revisited to rely on looping instead of recursion function FFTM(x, y) { this.x = x; this.y = y; } FFTM.prototype.makeRBT = function makeRBT(N) { var t = new Array(N); var l = BN.prototype._countBits(N) - 1; for (var i = 0; i < N; i++) { t[i] = this.revBin(i, l, N); } return t; }; // Returns binary-reversed representation of `x` FFTM.prototype.revBin = function revBin(x, l, N) { if (x === 0 || x === N - 1) return x; var rb = 0; for (var i = 0; i < l; i++) { rb |= (x & 1) << (l - i - 1); x >>= 1; } return rb; }; // Performs "tweedling" phase, therefore 'emulating' // behaviour of the recursive algorithm FFTM.prototype.permute = function permute( rbt, rws, iws, rtws, itws, N ) { for (var i = 0; i < N; i++) { rtws[i] = rws[rbt[i]]; itws[i] = iws[rbt[i]]; } }; FFTM.prototype.transform = function transform( rws, iws, rtws, itws, N, rbt ) { this.permute(rbt, rws, iws, rtws, itws, N); for (var s = 1; s < N; s <<= 1) { var l = s << 1; var rtwdf = Math.cos((2 * Math.PI) / l); var itwdf = Math.sin((2 * Math.PI) / l); for (var p = 0; p < N; p += l) { var rtwdf_ = rtwdf; var itwdf_ = itwdf; for (var j = 0; j < s; j++) { var re = rtws[p + j]; var ie = itws[p + j]; var ro = rtws[p + j + s]; var io = itws[p + j + s]; var rx = rtwdf_ * ro - itwdf_ * io; io = rtwdf_ * io + itwdf_ * ro; ro = rx; rtws[p + j] = re + ro; itws[p + j] = ie + io; rtws[p + j + s] = re - ro; itws[p + j + s] = ie - io; /* jshint maxdepth : false */ if (j !== l) { rx = rtwdf * rtwdf_ - itwdf * itwdf_; itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; rtwdf_ = rx; } } } } }; FFTM.prototype.guessLen13b = function guessLen13b(n, m) { var N = Math.max(m, n) | 1; var odd = N & 1; var i = 0; for (N = (N / 2) | 0; N; N = N >>> 1) { i++; } return 1 << (i + 1 + odd); }; FFTM.prototype.conjugate = function conjugate(rws, iws, N) { if (N <= 1) return; for (var i = 0; i < N / 2; i++) { var t = rws[i]; rws[i] = rws[N - i - 1]; rws[N - i - 1] = t; t = iws[i]; iws[i] = -iws[N - i - 1]; iws[N - i - 1] = -t; } }; FFTM.prototype.normalize13b = function normalize13b(ws, N) { var carry = 0; for (var i = 0; i < N / 2; i++) { var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry; ws[i] = w & 0x3ffffff; if (w < 0x4000000) { carry = 0; } else { carry = (w / 0x4000000) | 0; } } return ws; }; FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { var carry = 0; for (var i = 0; i < len; i++) { carry = carry + (ws[i] | 0); rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; } // Pad with zeroes for (i = 2 * len; i < N; ++i) { rws[i] = 0; } assert(carry === 0); assert((carry & ~0x1fff) === 0); }; FFTM.prototype.stub = function stub(N) { var ph = new Array(N); for (var i = 0; i < N; i++) { ph[i] = 0; } return ph; }; FFTM.prototype.mulp = function mulp(x, y, out) { var N = 2 * this.guessLen13b(x.length, y.length); var rbt = this.makeRBT(N); var _ = this.stub(N); var rws = new Array(N); var rwst = new Array(N); var iwst = new Array(N); var nrws = new Array(N); var nrwst = new Array(N); var niwst = new Array(N); var rmws = out.words; rmws.length = N; this.convert13b(x.words, x.length, rws, N); this.convert13b(y.words, y.length, nrws, N); this.transform(rws, _, rwst, iwst, N, rbt); this.transform(nrws, _, nrwst, niwst, N, rbt); for (var i = 0; i < N; i++) { var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; rwst[i] = rx; } this.conjugate(rwst, iwst, N); this.transform(rwst, iwst, rmws, _, N, rbt); this.conjugate(rmws, _, N); this.normalize13b(rmws, N); out.negative = x.negative ^ y.negative; out.length = x.length + y.length; return out.strip(); }; // Multiply `this` by `num` BN.prototype.mul = function mul(num) { var out = new BN(null); out.words = new Array(this.length + num.length); return this.mulTo(num, out); }; // Multiply employing FFT BN.prototype.mulf = function mulf(num) { var out = new BN(null); out.words = new Array(this.length + num.length); return jumboMulTo(this, num, out); }; // In-place Multiplication BN.prototype.imul = function imul(num) { return this.clone().mulTo(num, this); }; BN.prototype.imuln = function imuln(num) { assert(typeof num === "number"); assert(num < 0x4000000); // Carry var carry = 0; for (var i = 0; i < this.length; i++) { var w = (this.words[i] | 0) * num; var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); carry >>= 26; carry += (w / 0x4000000) | 0; // NOTE: lo is 27bit maximum carry += lo >>> 26; this.words[i] = lo & 0x3ffffff; } if (carry !== 0) { this.words[i] = carry; this.length++; } return this; }; BN.prototype.muln = function muln(num) { return this.clone().imuln(num); }; // `this` * `this` BN.prototype.sqr = function sqr() { return this.mul(this); }; // `this` * `this` in-place BN.prototype.isqr = function isqr() { return this.imul(this.clone()); }; // Math.pow(`this`, `num`) BN.prototype.pow = function pow(num) { var w = toBitArray(num); if (w.length === 0) return new BN(1); // Skip leading zeroes var res = this; for (var i = 0; i < w.length; i++, res = res.sqr()) { if (w[i] !== 0) break; } if (++i < w.length) { for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { if (w[i] === 0) continue; res = res.mul(q); } } return res; }; // Shift-left in-place BN.prototype.iushln = function iushln(bits) { assert(typeof bits === "number" && bits >= 0); var r = bits % 26; var s = (bits - r) / 26; var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); var i; if (r !== 0) { var carry = 0; for (i = 0; i < this.length; i++) { var newCarry = this.words[i] & carryMask; var c = ((this.words[i] | 0) - newCarry) << r; this.words[i] = c | carry; carry = newCarry >>> (26 - r); } if (carry) { this.words[i] = carry; this.length++; } } if (s !== 0) { for (i = this.length - 1; i >= 0; i--) { this.words[i + s] = this.words[i]; } for (i = 0; i < s; i++) { this.words[i] = 0; } this.length += s; } return this.strip(); }; BN.prototype.ishln = function ishln(bits) { // TODO(indutny): implement me assert(this.negative === 0); return this.iushln(bits); }; // Shift-right in-place // NOTE: `hint` is a lowest bit before trailing zeroes // NOTE: if `extended` is present - it will be filled with destroyed bits BN.prototype.iushrn = function iushrn(bits, hint, extended) { assert(typeof bits === "number" && bits >= 0); var h; if (hint) { h = (hint - (hint % 26)) / 26; } else { h = 0; } var r = bits % 26; var s = Math.min((bits - r) / 26, this.length); var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); var maskedWords = extended; h -= s; h = Math.max(0, h); // Extended mode, copy masked part if (maskedWords) { for (var i = 0; i < s; i++) { maskedWords.words[i] = this.words[i]; } maskedWords.length = s; } if (s === 0) { // No-op, we should not move anything at all } else if (this.length > s) { this.length -= s; for (i = 0; i < this.length; i++) { this.words[i] = this.words[i + s]; } } else { this.words[0] = 0; this.length = 1; } var carry = 0; for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { var word = this.words[i] | 0; this.words[i] = (carry << (26 - r)) | (word >>> r); carry = word & mask; } // Push carried bits as a mask if (maskedWords && carry !== 0) { maskedWords.words[maskedWords.length++] = carry; } if (this.length === 0) { this.words[0] = 0; this.length = 1; } return this.strip(); }; BN.prototype.ishrn = function ishrn(bits, hint, extended) { // TODO(indutny): implement me assert(this.negative === 0); return this.iushrn(bits, hint, extended); }; // Shift-left BN.prototype.shln = function shln(bits) { return this.clone().ishln(bits); }; BN.prototype.ushln = function ushln(bits) { return this.clone().iushln(bits); }; // Shift-right BN.prototype.shrn = function shrn(bits) { return this.clone().ishrn(bits); }; BN.prototype.ushrn = function ushrn(bits) { return this.clone().iushrn(bits); }; // Test if n bit is set BN.prototype.testn = function testn(bit) { assert(typeof bit === "number" && bit >= 0); var r = bit % 26; var s = (bit - r) / 26; var q = 1 << r; // Fast case: bit is much higher than all existing words if (this.length <= s) return false; // Check bit and return var w = this.words[s]; return !!(w & q); }; // Return only lowers bits of number (in-place) BN.prototype.imaskn = function imaskn(bits) { assert(typeof bits === "number" && bits >= 0); var r = bits % 26; var s = (bits - r) / 26; assert( this.negative === 0, "imaskn works only with positive numbers" ); if (this.length <= s) { return this; } if (r !== 0) { s++; } this.length = Math.min(s, this.length); if (r !== 0) { var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); this.words[this.length - 1] &= mask; } return this.strip(); }; // Return only lowers bits of number BN.prototype.maskn = function maskn(bits) { return this.clone().imaskn(bits); }; // Add plain number `num` to `this` BN.prototype.iaddn = function iaddn(num) { assert(typeof num === "number"); assert(num < 0x4000000); if (num < 0) return this.isubn(-num); // Possible sign change if (this.negative !== 0) { if (this.length === 1 && (this.words[0] | 0) < num) { this.words[0] = num - (this.words[0] | 0); this.negative = 0; return this; } this.negative = 0; this.isubn(num); this.negative = 1; return this; } // Add without checks return this._iaddn(num); }; BN.prototype._iaddn = function _iaddn(num) { this.words[0] += num; // Carry for ( var i = 0; i < this.length && this.words[i] >= 0x4000000; i++ ) { this.words[i] -= 0x4000000; if (i === this.length - 1) { this.words[i + 1] = 1; } else { this.words[i + 1]++; } } this.length = Math.max(this.length, i + 1); return this; }; // Subtract plain number `num` from `this` BN.prototype.isubn = function isubn(num) { assert(typeof num === "number"); assert(num < 0x4000000); if (num < 0) return this.iaddn(-num); if (this.negative !== 0) { this.negative = 0; this.iaddn(num); this.negative = 1; return this; } this.words[0] -= num; if (this.length === 1 && this.words[0] < 0) { this.words[0] = -this.words[0]; this.negative = 1; } else { // Carry for (var i = 0; i < this.length && this.words[i] < 0; i++) { this.words[i] += 0x4000000; this.words[i + 1] -= 1; } } return this.strip(); }; BN.prototype.addn = function addn(num) { return this.clone().iaddn(num); }; BN.prototype.subn = function subn(num) { return this.clone().isubn(num); }; BN.prototype.iabs = function iabs() { this.negative = 0; return this; }; BN.prototype.abs = function abs() { return this.clone().iabs(); }; BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { var len = num.length + shift; var i; this._expand(len); var w; var carry = 0; for (i = 0; i < num.length; i++) { w = (this.words[i + shift] | 0) + carry; var right = (num.words[i] | 0) * mul; w -= right & 0x3ffffff; carry = (w >> 26) - ((right / 0x4000000) | 0); this.words[i + shift] = w & 0x3ffffff; } for (; i < this.length - shift; i++) { w = (this.words[i + shift] | 0) + carry; carry = w >> 26; this.words[i + shift] = w & 0x3ffffff; } if (carry === 0) return this.strip(); // Subtraction overflow assert(carry === -1); carry = 0; for (i = 0; i < this.length; i++) { w = -(this.words[i] | 0) + carry; carry = w >> 26; this.words[i] = w & 0x3ffffff; } this.negative = 1; return this.strip(); }; BN.prototype._wordDiv = function _wordDiv(num, mode) { var shift = this.length - num.length; var a = this.clone(); var b = num; // Normalize var bhi = b.words[b.length - 1] | 0; var bhiBits = this._countBits(bhi); shift = 26 - bhiBits; if (shift !== 0) { b = b.ushln(shift); a.iushln(shift); bhi = b.words[b.length - 1] | 0; } // Initialize quotient var m = a.length - b.length; var q; if (mode !== "mod") { q = new BN(null); q.length = m + 1; q.words = new Array(q.length); for (var i = 0; i < q.length; i++) { q.words[i] = 0; } } var diff = a.clone()._ishlnsubmul(b, 1, m); if (diff.negative === 0) { a = diff; if (q) { q.words[m] = 1; } } for (var j = m - 1; j >= 0; j--) { var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max // (0x7ffffff) qj = Math.min((qj / bhi) | 0, 0x3ffffff); a._ishlnsubmul(b, qj, j); while (a.negative !== 0) { qj--; a.negative = 0; a._ishlnsubmul(b, 1, j); if (!a.isZero()) { a.negative ^= 1; } } if (q) { q.words[j] = qj; } } if (q) { q.strip(); } a.strip(); // Denormalize if (mode !== "div" && shift !== 0) { a.iushrn(shift); } return { div: q || null, mod: a, }; }; // NOTE: 1) `mode` can be set to `mod` to request mod only, // to `div` to request div only, or be absent to // request both div & mod // 2) `positive` is true if unsigned mod is requested BN.prototype.divmod = function divmod(num, mode, positive) { assert(!num.isZero()); if (this.isZero()) { return { div: new BN(0), mod: new BN(0), }; } var div, mod, res; if (this.negative !== 0 && num.negative === 0) { res = this.neg().divmod(num, mode); if (mode !== "mod") { div = res.div.neg(); } if (mode !== "div") { mod = res.mod.neg(); if (positive && mod.negative !== 0) { mod.iadd(num); } } return { div: div, mod: mod, }; } if (this.negative === 0 && num.negative !== 0) { res = this.divmod(num.neg(), mode); if (mode !== "mod") { div = res.div.neg(); } return { div: div, mod: res.mod, }; } if ((this.negative & num.negative) !== 0) { res = this.neg().divmod(num.neg(), mode); if (mode !== "div") { mod = res.mod.neg(); if (positive && mod.negative !== 0) { mod.isub(num); } } return { div: res.div, mod: mod, }; } // Both numbers are positive at this point // Strip both numbers to approximate shift value if (num.length > this.length || this.cmp(num) < 0) { return { div: new BN(0), mod: this, }; } // Very short reduction if (num.length === 1) { if (mode === "div") { return { div: this.divn(num.words[0]), mod: null, }; } if (mode === "mod") { return { div: null, mod: new BN(this.modn(num.words[0])), }; } return { div: this.divn(num.words[0]), mod: new BN(this.modn(num.words[0])), }; } return this._wordDiv(num, mode); }; // Find `this` / `num` BN.prototype.div = function div(num) { return this.divmod(num, "div", false).div; }; // Find `this` % `num` BN.prototype.mod = function mod(num) { return this.divmod(num, "mod", false).mod; }; BN.prototype.umod = function umod(num) { return this.divmod(num, "mod", true).mod; }; // Find Round(`this` / `num`) BN.prototype.divRound = function divRound(num) { var dm = this.divmod(num); // Fast case - exact division if (dm.mod.isZero()) return dm.div; var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; var half = num.ushrn(1); var r2 = num.andln(1); var cmp = mod.cmp(half); // Round down if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div; // Round up return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); }; BN.prototype.modn = function modn(num) { assert(num <= 0x3ffffff); var p = (1 << 26) % num; var acc = 0; for (var i = this.length - 1; i >= 0; i--) { acc = (p * acc + (this.words[i] | 0)) % num; } return acc; }; // In-place division by number BN.prototype.idivn = function idivn(num) { assert(num <= 0x3ffffff); var carry = 0; for (var i = this.length - 1; i >= 0; i--) { var w = (this.words[i] | 0) + carry * 0x4000000; this.words[i] = (w / num) | 0; carry = w % num; } return this.strip(); }; BN.prototype.divn = function divn(num) { return this.clone().idivn(num); }; BN.prototype.egcd = function egcd(p) { assert(p.negative === 0); assert(!p.isZero()); var x = this; var y = p.clone(); if (x.negative !== 0) { x = x.umod(p); } else { x = x.clone(); } // A * x + B * y = x var A = new BN(1); var B = new BN(0); // C * x + D * y = y var C = new BN(0); var D = new BN(1); var g = 0; while (x.isEven() && y.isEven()) { x.iushrn(1); y.iushrn(1); ++g; } var yp = y.clone(); var xp = x.clone(); while (!x.isZero()) { for ( var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1 ); if (i > 0) { x.iushrn(i); while (i-- > 0) { if (A.isOdd() || B.isOdd()) { A.iadd(yp); B.isub(xp); } A.iushrn(1); B.iushrn(1); } } for ( var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1 ); if (j > 0) { y.iushrn(j); while (j-- > 0) { if (C.isOdd() || D.isOdd()) { C.iadd(yp); D.isub(xp); } C.iushrn(1); D.iushrn(1); } } if (x.cmp(y) >= 0) { x.isub(y); A.isub(C); B.isub(D); } else { y.isub(x); C.isub(A); D.isub(B); } } return { a: C, b: D, gcd: y.iushln(g), }; }; // This is reduced incarnation of the binary EEA // above, designated to invert members of the // _prime_ fields F(p) at a maximal speed BN.prototype._invmp = function _invmp(p) { assert(p.negative === 0); assert(!p.isZero()); var a = this; var b = p.clone(); if (a.negative !== 0) { a = a.umod(p); } else { a = a.clone(); } var x1 = new BN(1); var x2 = new BN(0); var delta = b.clone(); while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { for ( var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1 ); if (i > 0) { a.iushrn(i); while (i-- > 0) { if (x1.isOdd()) { x1.iadd(delta); } x1.iushrn(1); } } for ( var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1 ); if (j > 0) { b.iushrn(j); while (j-- > 0) { if (x2.isOdd()) { x2.iadd(delta); } x2.iushrn(1); } } if (a.cmp(b) >= 0) { a.isub(b); x1.isub(x2); } else { b.isub(a); x2.isub(x1); } } var res; if (a.cmpn(1) === 0) { res = x1; } else { res = x2; } if (res.cmpn(0) < 0) { res.iadd(p); } return res; }; BN.prototype.gcd = function gcd(num) { if (this.isZero()) return num.abs(); if (num.isZero()) return this.abs(); var a = this.clone(); var b = num.clone(); a.negative = 0; b.negative = 0; // Remove common factor of two for (var shift = 0; a.isEven() && b.isEven(); shift++) { a.iushrn(1); b.iushrn(1); } do { while (a.isEven()) { a.iushrn(1); } while (b.isEven()) { b.iushrn(1); } var r = a.cmp(b); if (r < 0) { // Swap `a` and `b` to make `a` always bigger than `b` var t = a; a = b; b = t; } else if (r === 0 || b.cmpn(1) === 0) { break; } a.isub(b); } while (true); return b.iushln(shift); }; // Invert number in the field F(num) BN.prototype.invm = function invm(num) { return this.egcd(num).a.umod(num); }; BN.prototype.isEven = function isEven() { return (this.words[0] & 1) === 0; }; BN.prototype.isOdd = function isOdd() { return (this.words[0] & 1) === 1; }; // And first word and num BN.prototype.andln = function andln(num) { return this.words[0] & num; }; // Increment at the bit position in-line BN.prototype.bincn = function bincn(bit) { assert(typeof bit === "number"); var r = bit % 26; var s = (bit - r) / 26; var q = 1 << r; // Fast case: bit is much higher than all existing words if (this.length <= s) { this._expand(s + 1); this.words[s] |= q; return this; } // Add bit and propagate, if needed var carry = q; for (var i = s; carry !== 0 && i < this.length; i++) { var w = this.words[i] | 0; w += carry; carry = w >>> 26; w &= 0x3ffffff; this.words[i] = w; } if (carry !== 0) { this.words[i] = carry; this.length++; } return this; }; BN.prototype.isZero = function isZero() { return this.length === 1 && this.words[0] === 0; }; BN.prototype.cmpn = function cmpn(num) { var negative = num < 0; if (this.negative !== 0 && !negative) return -1; if (this.negative === 0 && negative) return 1; this.strip(); var res; if (this.length > 1) { res = 1; } else { if (negative) { num = -num; } assert(num <= 0x3ffffff, "Number is too big"); var w = this.words[0] | 0; res = w === num ? 0 : w < num ? -1 : 1; } if (this.negative !== 0) return -res | 0; return res; }; // Compare two numbers and return: // 1 - if `this` > `num` // 0 - if `this` == `num` // -1 - if `this` < `num` BN.prototype.cmp = function cmp(num) { if (this.negative !== 0 && num.negative === 0) return -1; if (this.negative === 0 && num.negative !== 0) return 1; var res = this.ucmp(num); if (this.negative !== 0) return -res | 0; return res; }; // Unsigned comparison BN.prototype.ucmp = function ucmp(num) { // At this point both numbers have the same sign if (this.length > num.length) return 1; if (this.length < num.length) return -1; var res = 0; for (var i = this.length - 1; i >= 0; i--) { var a = this.words[i] | 0; var b = num.words[i] | 0; if (a === b) continue; if (a < b) { res = -1; } else if (a > b) { res = 1; } break; } return res; }; BN.prototype.gtn = function gtn(num) { return this.cmpn(num) === 1; }; BN.prototype.gt = function gt(num) { return this.cmp(num) === 1; }; BN.prototype.gten = function gten(num) { return this.cmpn(num) >= 0; }; BN.prototype.gte = function gte(num) { return this.cmp(num) >= 0; }; BN.prototype.ltn = function ltn(num) { return this.cmpn(num) === -1; }; BN.prototype.lt = function lt(num) { return this.cmp(num) === -1; }; BN.prototype.lten = function lten(num) { return this.cmpn(num) <= 0; }; BN.prototype.lte = function lte(num) { return this.cmp(num) <= 0; }; BN.prototype.eqn = function eqn(num) { return this.cmpn(num) === 0; }; BN.prototype.eq = function eq(num) { return this.cmp(num) === 0; }; // // A reduce context, could be using montgomery or something better, depending // on the `m` itself. // BN.red = function red(num) { return new Red(num); }; BN.prototype.toRed = function toRed(ctx) { assert(!this.red, "Already a number in reduction context"); assert(this.negative === 0, "red works only with positives"); return ctx.convertTo(this)._forceRed(ctx); }; BN.prototype.fromRed = function fromRed() { assert( this.red, "fromRed works only with numbers in reduction context" ); return this.red.convertFrom(this); }; BN.prototype._forceRed = function _forceRed(ctx) { this.red = ctx; return this; }; BN.prototype.forceRed = function forceRed(ctx) { assert(!this.red, "Already a number in reduction context"); return this._forceRed(ctx); }; BN.prototype.redAdd = function redAdd(num) { assert(this.red, "redAdd works only with red numbers"); return this.red.add(this, num); }; BN.prototype.redIAdd = function redIAdd(num) { assert(this.red, "redIAdd works only with red numbers"); return this.red.iadd(this, num); }; BN.prototype.redSub = function redSub(num) { assert(this.red, "redSub works only with red numbers"); return this.red.sub(this, num); }; BN.prototype.redISub = function redISub(num) { assert(this.red, "redISub works only with red numbers"); return this.red.isub(this, num); }; BN.prototype.redShl = function redShl(num) { assert(this.red, "redShl works only with red numbers"); return this.red.shl(this, num); }; BN.prototype.redMul = function redMul(num) { assert(this.red, "redMul works only with red numbers"); this.red._verify2(this, num); return this.red.mul(this, num); }; BN.prototype.redIMul = function redIMul(num) { assert(this.red, "redMul works only with red numbers"); this.red._verify2(this, num); return this.red.imul(this, num); }; BN.prototype.redSqr = function redSqr() { assert(this.red, "redSqr works only with red numbers"); this.red._verify1(this); return this.red.sqr(this); }; BN.prototype.redISqr = function redISqr() { assert(this.red, "redISqr works only with red numbers"); this.red._verify1(this); return this.red.isqr(this); }; // Square root over p BN.prototype.redSqrt = function redSqrt() { assert(this.red, "redSqrt works only with red numbers"); this.red._verify1(this); return this.red.sqrt(this); }; BN.prototype.redInvm = function redInvm() { assert(this.red, "redInvm works only with red numbers"); this.red._verify1(this); return this.red.invm(this); }; // Return negative clone of `this` % `red modulo` BN.prototype.redNeg = function redNeg() { assert(this.red, "redNeg works only with red numbers"); this.red._verify1(this); return this.red.neg(this); }; BN.prototype.redPow = function redPow(num) { assert(this.red && !num.red, "redPow(normalNum)"); this.red._verify1(this); return this.red.pow(this, num); }; // Prime numbers with efficient reduction var primes = { k256: null, p224: null, p192: null, p25519: null, }; // Pseudo-Mersenne prime function MPrime(name, p) { // P = 2 ^ N - K this.name = name; this.p = new BN(p, 16); this.n = this.p.bitLength(); this.k = new BN(1).iushln(this.n).isub(this.p); this.tmp = this._tmp(); } MPrime.prototype._tmp = function _tmp() { var tmp = new BN(null); tmp.words = new Array(Math.ceil(this.n / 13)); return tmp; }; MPrime.prototype.ireduce = function ireduce(num) { // Assumes that `num` is less than `P^2` // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) var r = num; var rlen; do { this.split(r, this.tmp); r = this.imulK(r); r = r.iadd(this.tmp); rlen = r.bitLength(); } while (rlen > this.n); var cmp = rlen < this.n ? -1 : r.ucmp(this.p); if (cmp === 0) { r.words[0] = 0; r.length = 1; } else if (cmp > 0) { r.isub(this.p); } else { r.strip(); } return r; }; MPrime.prototype.split = function split(input, out) { input.iushrn(this.n, 0, out); }; MPrime.prototype.imulK = function imulK(num) { return num.imul(this.k); }; function K256() { MPrime.call( this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f" ); } inherits(K256, MPrime); K256.prototype.split = function split(input, output) { // 256 = 9 * 26 + 22 var mask = 0x3fffff; var outLen = Math.min(input.length, 9); for (var i = 0; i < outLen; i++) { output.words[i] = input.words[i]; } output.length = outLen; if (input.length <= 9) { input.words[0] = 0; input.length = 1; return; } // Shift by 9 limbs var prev = input.words[9]; output.words[output.length++] = prev & mask; for (i = 10; i < input.length; i++) { var next = input.words[i] | 0; input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22); prev = next; } prev >>>= 22; input.words[i - 10] = prev; if (prev === 0 && input.length > 10) { input.length -= 10; } else { input.length -= 9; } }; K256.prototype.imulK = function imulK(num) { // K = 0x1000003d1 = [ 0x40, 0x3d1 ] num.words[num.length] = 0; num.words[num.length + 1] = 0; num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 var lo = 0; for (var i = 0; i < num.length; i++) { var w = num.words[i] | 0; lo += w * 0x3d1; num.words[i] = lo & 0x3ffffff; lo = w * 0x40 + ((lo / 0x4000000) | 0); } // Fast length reduction if (num.words[num.length - 1] === 0) { num.length--; if (num.words[num.length - 1] === 0) { num.length--; } } return num; }; function P224() { MPrime.call( this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001" ); } inherits(P224, MPrime); function P192() { MPrime.call( this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff" ); } inherits(P192, MPrime); function P25519() { // 2 ^ 255 - 19 MPrime.call( this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed" ); } inherits(P25519, MPrime); P25519.prototype.imulK = function imulK(num) { // K = 0x13 var carry = 0; for (var i = 0; i < num.length; i++) { var hi = (num.words[i] | 0) * 0x13 + carry; var lo = hi & 0x3ffffff; hi >>>= 26; num.words[i] = lo; carry = hi; } if (carry !== 0) { num.words[num.length++] = carry; } return num; }; // Exported mostly for testing purposes, use plain name instead BN._prime = function prime(name) { // Cached version of prime if (primes[name]) return primes[name]; var prime; if (name === "k256") { prime = new K256(); } else if (name === "p224") { prime = new P224(); } else if (name === "p192") { prime = new P192(); } else if (name === "p25519") { prime = new P25519(); } else { throw new Error("Unknown prime " + name); } primes[name] = prime; return prime; }; // // Base reduction engine // function Red(m) { if (typeof m === "string") { var prime = BN._prime(m); this.m = prime.p; this.prime = prime; } else { assert(m.gtn(1), "modulus must be greater than 1"); this.m = m; this.prime = null; } } Red.prototype._verify1 = function _verify1(a) { assert(a.negative === 0, "red works only with positives"); assert(a.red, "red works only with red numbers"); }; Red.prototype._verify2 = function _verify2(a, b) { assert( (a.negative | b.negative) === 0, "red works only with positives" ); assert(a.red && a.red === b.red, "red works only with red numbers"); }; Red.prototype.imod = function imod(a) { if (this.prime) return this.prime.ireduce(a)._forceRed(this); return a.umod(this.m)._forceRed(this); }; Red.prototype.neg = function neg(a) { if (a.isZero()) { return a.clone(); } return this.m.sub(a)._forceRed(this); }; Red.prototype.add = function add(a, b) { this._verify2(a, b); var res = a.add(b); if (res.cmp(this.m) >= 0) { res.isub(this.m); } return res._forceRed(this); }; Red.prototype.iadd = function iadd(a, b) { this._verify2(a, b); var res = a.iadd(b); if (res.cmp(this.m) >= 0) { res.isub(this.m); } return res; }; Red.prototype.sub = function sub(a, b) { this._verify2(a, b); var res = a.sub(b); if (res.cmpn(0) < 0) { res.iadd(this.m); } return res._forceRed(this); }; Red.prototype.isub = function isub(a, b) { this._verify2(a, b); var res = a.isub(b); if (res.cmpn(0) < 0) { res.iadd(this.m); } return res; }; Red.prototype.shl = function shl(a, num) { this._verify1(a); return this.imod(a.ushln(num)); }; Red.prototype.imul = function imul(a, b) { this._verify2(a, b); return this.imod(a.imul(b)); }; Red.prototype.mul = function mul(a, b) { this._verify2(a, b); return this.imod(a.mul(b)); }; Red.prototype.isqr = function isqr(a) { return this.imul(a, a.clone()); }; Red.prototype.sqr = function sqr(a) { return this.mul(a, a); }; Red.prototype.sqrt = function sqrt(a) { if (a.isZero()) return a.clone(); var mod3 = this.m.andln(3); assert(mod3 % 2 === 1); // Fast case if (mod3 === 3) { var pow = this.m.add(new BN(1)).iushrn(2); return this.pow(a, pow); } // Tonelli-Shanks algorithm (Totally unoptimized and slow) // // Find Q and S, that Q * 2 ^ S = (P - 1) var q = this.m.subn(1); var s = 0; while (!q.isZero() && q.andln(1) === 0) { s++; q.iushrn(1); } assert(!q.isZero()); var one = new BN(1).toRed(this); var nOne = one.redNeg(); // Find quadratic non-residue // NOTE: Max is such because of generalized Riemann hypothesis. var lpow = this.m.subn(1).iushrn(1); var z = this.m.bitLength(); z = new BN(2 * z * z).toRed(this); while (this.pow(z, lpow).cmp(nOne) !== 0) { z.redIAdd(nOne); } var c = this.pow(z, q); var r = this.pow(a, q.addn(1).iushrn(1)); var t = this.pow(a, q); var m = s; while (t.cmp(one) !== 0) { var tmp = t; for (var i = 0; tmp.cmp(one) !== 0; i++) { tmp = tmp.redSqr(); } assert(i < m); var b = this.pow(c, new BN(1).iushln(m - i - 1)); r = r.redMul(b); c = b.redSqr(); t = t.redMul(c); m = i; } return r; }; Red.prototype.invm = function invm(a) { var inv = a._invmp(this.m); if (inv.negative !== 0) { inv.negative = 0; return this.imod(inv).redNeg(); } else { return this.imod(inv); } }; Red.prototype.pow = function pow(a, num) { if (num.isZero()) return new BN(1).toRed(this); if (num.cmpn(1) === 0) return a.clone(); var windowSize = 4; var wnd = new Array(1 << windowSize); wnd[0] = new BN(1).toRed(this); wnd[1] = a; for (var i = 2; i < wnd.length; i++) { wnd[i] = this.mul(wnd[i - 1], a); } var res = wnd[0]; var current = 0; var currentLen = 0; var start = num.bitLength() % 26; if (start === 0) { start = 26; } for (i = num.length - 1; i >= 0; i--) { var word = num.words[i]; for (var j = start - 1; j >= 0; j--) { var bit = (word >> j) & 1; if (res !== wnd[0]) { res = this.sqr(res); } if (bit === 0 && current === 0) { currentLen = 0; continue; } current <<= 1; current |= bit; currentLen++; if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; res = this.mul(res, wnd[current]); currentLen = 0; current = 0; } start = 26; } return res; }; Red.prototype.convertTo = function convertTo(num) { var r = num.umod(this.m); return r === num ? r.clone() : r; }; Red.prototype.convertFrom = function convertFrom(num) { var res = num.clone(); res.red = null; return res; }; // // Montgomery method engine // BN.mont = function mont(num) { return new Mont(num); }; function Mont(m) { Red.call(this, m); this.shift = this.m.bitLength(); if (this.shift % 26 !== 0) { this.shift += 26 - (this.shift % 26); } this.r = new BN(1).iushln(this.shift); this.r2 = this.imod(this.r.sqr()); this.rinv = this.r._invmp(this.m); this.minv = this.rinv.mul(this.r).isubn(1).div(this.m); this.minv = this.minv.umod(this.r); this.minv = this.r.sub(this.minv); } inherits(Mont, Red); Mont.prototype.convertTo = function convertTo(num) { return this.imod(num.ushln(this.shift)); }; Mont.prototype.convertFrom = function convertFrom(num) { var r = this.imod(num.mul(this.rinv)); r.red = null; return r; }; Mont.prototype.imul = function imul(a, b) { if (a.isZero() || b.isZero()) { a.words[0] = 0; a.length = 1; return a; } var t = a.imul(b); var c = t .maskn(this.shift) .mul(this.minv) .imaskn(this.shift) .mul(this.m); var u = t.isub(c).iushrn(this.shift); var res = u; if (u.cmp(this.m) >= 0) { res = u.isub(this.m); } else if (u.cmpn(0) < 0) { res = u.iadd(this.m); } return res._forceRed(this); }; Mont.prototype.mul = function mul(a, b) { if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); var t = a.mul(b); var c = t .maskn(this.shift) .mul(this.minv) .imaskn(this.shift) .mul(this.m); var u = t.isub(c).iushrn(this.shift); var res = u; if (u.cmp(this.m) >= 0) { res = u.isub(this.m); } else if (u.cmpn(0) < 0) { res = u.iadd(this.m); } return res._forceRed(this); }; Mont.prototype.invm = function invm(a) { // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R var res = this.imod(a._invmp(this.m).mul(this.r2)); return res._forceRed(this); }; })(typeof module === "undefined" || module, this); }, { buffer: 27 }, ], 26: [ function (require, module, exports) { var r; module.exports = function rand(len) { if (!r) r = new Rand(null); return r.generate(len); }; function Rand(rand) { this.rand = rand; } module.exports.Rand = Rand; Rand.prototype.generate = function generate(len) { return this._rand(len); }; // Emulate crypto API using randy Rand.prototype._rand = function _rand(n) { if (this.rand.getBytes) return this.rand.getBytes(n); var res = new Uint8Array(n); for (var i = 0; i < res.length; i++) res[i] = this.rand.getByte(); return res; }; if (typeof self === "object") { if (self.crypto && self.crypto.getRandomValues) { // Modern browsers Rand.prototype._rand = function _rand(n) { var arr = new Uint8Array(n); self.crypto.getRandomValues(arr); return arr; }; } else if (self.msCrypto && self.msCrypto.getRandomValues) { // IE Rand.prototype._rand = function _rand(n) { var arr = new Uint8Array(n); self.msCrypto.getRandomValues(arr); return arr; }; // Safari's WebWorkers do not have `crypto` } else if (typeof window === "object") { // Old junk Rand.prototype._rand = function () { throw new Error("Not implemented yet"); }; } } else { // Node.js or Web worker with no crypto support try { var crypto = require("crypto"); if (typeof crypto.randomBytes !== "function") throw new Error("Not supported"); Rand.prototype._rand = function _rand(n) { return crypto.randomBytes(n); }; } catch (e) {} } }, { crypto: 27 }, ], 27: [ function (require, module, exports) { arguments[4][9][0].apply(exports, arguments); }, { dup: 9 }, ], 28: [ function (require, module, exports) { (function (Buffer) { // based on the aes implimentation in triple sec // https://github.com/keybase/triplesec // which is in turn based on the one from crypto-js // https://code.google.com/p/crypto-js/ var uint_max = Math.pow(2, 32); function fixup_uint32(x) { var ret, x_pos; ret = x > uint_max || x < 0 ? ((x_pos = Math.abs(x) % uint_max), x < 0 ? uint_max - x_pos : x_pos) : x; return ret; } function scrub_vec(v) { for (var i = 0; i < v.length; v++) { v[i] = 0; } return false; } function Global() { this.SBOX = []; this.INV_SBOX = []; this.SUB_MIX = [[], [], [], []]; this.INV_SUB_MIX = [[], [], [], []]; this.init(); this.RCON = [ 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, ]; } Global.prototype.init = function () { var d, i, sx, t, x, x2, x4, x8, xi, _i; d = (function () { var _i, _results; _results = []; for (i = _i = 0; _i < 256; i = ++_i) { if (i < 128) { _results.push(i << 1); } else { _results.push((i << 1) ^ 0x11b); } } return _results; })(); x = 0; xi = 0; for (i = _i = 0; _i < 256; i = ++_i) { sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; this.SBOX[x] = sx; this.INV_SBOX[sx] = x; x2 = d[x]; x4 = d[x2]; x8 = d[x4]; t = (d[sx] * 0x101) ^ (sx * 0x1010100); this.SUB_MIX[0][x] = (t << 24) | (t >>> 8); this.SUB_MIX[1][x] = (t << 16) | (t >>> 16); this.SUB_MIX[2][x] = (t << 8) | (t >>> 24); this.SUB_MIX[3][x] = t; t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); this.INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8); this.INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16); this.INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24); this.INV_SUB_MIX[3][sx] = t; if (x === 0) { x = xi = 1; } else { x = x2 ^ d[d[d[x8 ^ x2]]]; xi ^= d[d[xi]]; } } return true; }; var G = new Global(); AES.blockSize = 4 * 4; AES.prototype.blockSize = AES.blockSize; AES.keySize = 256 / 8; AES.prototype.keySize = AES.keySize; function bufferToArray(buf) { var len = buf.length / 4; var out = new Array(len); var i = -1; while (++i < len) { out[i] = buf.readUInt32BE(i * 4); } return out; } function AES(key) { this._key = bufferToArray(key); this._doReset(); } AES.prototype._doReset = function () { var invKsRow, keySize, keyWords, ksRow, ksRows, t; keyWords = this._key; keySize = keyWords.length; this._nRounds = keySize + 6; ksRows = (this._nRounds + 1) * 4; this._keySchedule = []; for (ksRow = 0; ksRow < ksRows; ksRow++) { this._keySchedule[ksRow] = ksRow < keySize ? keyWords[ksRow] : ((t = this._keySchedule[ksRow - 1]), ksRow % keySize === 0 ? ((t = (t << 8) | (t >>> 24)), (t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff]), (t ^= G.RCON[(ksRow / keySize) | 0] << 24)) : keySize > 6 && ksRow % keySize === 4 ? (t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff]) : void 0, this._keySchedule[ksRow - keySize] ^ t); } this._invKeySchedule = []; for (invKsRow = 0; invKsRow < ksRows; invKsRow++) { ksRow = ksRows - invKsRow; t = this._keySchedule[ksRow - (invKsRow % 4 ? 0 : 4)]; this._invKeySchedule[invKsRow] = invKsRow < 4 || ksRow <= 4 ? t : G.INV_SUB_MIX[0][G.SBOX[t >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[(t >>> 16) & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[(t >>> 8) & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[t & 0xff]]; } return true; }; AES.prototype.encryptBlock = function (M) { M = bufferToArray(new Buffer(M)); var out = this._doCryptBlock( M, this._keySchedule, G.SUB_MIX, G.SBOX ); var buf = new Buffer(16); buf.writeUInt32BE(out[0], 0); buf.writeUInt32BE(out[1], 4); buf.writeUInt32BE(out[2], 8); buf.writeUInt32BE(out[3], 12); return buf; }; AES.prototype.decryptBlock = function (M) { M = bufferToArray(new Buffer(M)); var temp = [M[3], M[1]]; M[1] = temp[0]; M[3] = temp[1]; var out = this._doCryptBlock( M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX ); var buf = new Buffer(16); buf.writeUInt32BE(out[0], 0); buf.writeUInt32BE(out[3], 4); buf.writeUInt32BE(out[2], 8); buf.writeUInt32BE(out[1], 12); return buf; }; AES.prototype.scrub = function () { scrub_vec(this._keySchedule); scrub_vec(this._invKeySchedule); scrub_vec(this._key); }; AES.prototype._doCryptBlock = function ( M, keySchedule, SUB_MIX, SBOX ) { var ksRow, s0, s1, s2, s3, t0, t1, t2, t3; s0 = M[0] ^ keySchedule[0]; s1 = M[1] ^ keySchedule[1]; s2 = M[2] ^ keySchedule[2]; s3 = M[3] ^ keySchedule[3]; ksRow = 4; for (var round = 1; round < this._nRounds; round++) { t0 = SUB_MIX[0][s0 >>> 24] ^ SUB_MIX[1][(s1 >>> 16) & 0xff] ^ SUB_MIX[2][(s2 >>> 8) & 0xff] ^ SUB_MIX[3][s3 & 0xff] ^ keySchedule[ksRow++]; t1 = SUB_MIX[0][s1 >>> 24] ^ SUB_MIX[1][(s2 >>> 16) & 0xff] ^ SUB_MIX[2][(s3 >>> 8) & 0xff] ^ SUB_MIX[3][s0 & 0xff] ^ keySchedule[ksRow++]; t2 = SUB_MIX[0][s2 >>> 24] ^ SUB_MIX[1][(s3 >>> 16) & 0xff] ^ SUB_MIX[2][(s0 >>> 8) & 0xff] ^ SUB_MIX[3][s1 & 0xff] ^ keySchedule[ksRow++]; t3 = SUB_MIX[0][s3 >>> 24] ^ SUB_MIX[1][(s0 >>> 16) & 0xff] ^ SUB_MIX[2][(s1 >>> 8) & 0xff] ^ SUB_MIX[3][s2 & 0xff] ^ keySchedule[ksRow++]; s0 = t0; s1 = t1; s2 = t2; s3 = t3; } t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; return [ fixup_uint32(t0), fixup_uint32(t1), fixup_uint32(t2), fixup_uint32(t3), ]; }; exports.AES = AES; }).call(this, require("buffer").Buffer); }, { buffer: 54 }, ], 29: [ function (require, module, exports) { (function (Buffer) { var aes = require("./aes.js"); var Transform = require("cipher-base"); var inherits = require("inherits"); var GHASH = require("./ghash.js"); var xor = require("buffer-xor"); inherits(StreamCipher, Transform); module.exports = StreamCipher; function StreamCipher(mode, key, iv, decrypt) { if (!(this instanceof StreamCipher)) { return new StreamCipher(mode, key, iv); } Transform.call(this); this._finID = Buffer.concat([iv, new Buffer([0, 0, 0, 1])]); iv = Buffer.concat([iv, new Buffer([0, 0, 0, 2])]); this._cipher = new aes.AES(key); this._prev = new Buffer(iv.length); this._cache = new Buffer(""); this._secCache = new Buffer(""); this._decrypt = decrypt; this._alen = 0; this._len = 0; iv.copy(this._prev); this._mode = mode; var h = new Buffer(4); h.fill(0); this._ghash = new GHASH(this._cipher.encryptBlock(h)); this._authTag = null; this._called = false; } StreamCipher.prototype._update = function (chunk) { if (!this._called && this._alen) { var rump = 16 - (this._alen % 16); if (rump < 16) { rump = new Buffer(rump); rump.fill(0); this._ghash.update(rump); } } this._called = true; var out = this._mode.encrypt(this, chunk); if (this._decrypt) { this._ghash.update(chunk); } else { this._ghash.update(out); } this._len += chunk.length; return out; }; StreamCipher.prototype._final = function () { if (this._decrypt && !this._authTag) { throw new Error( "Unsupported state or unable to authenticate data" ); } var tag = xor( this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID) ); if (this._decrypt) { if (xorTest(tag, this._authTag)) { throw new Error( "Unsupported state or unable to authenticate data" ); } } else { this._authTag = tag; } this._cipher.scrub(); }; StreamCipher.prototype.getAuthTag = function getAuthTag() { if (!this._decrypt && Buffer.isBuffer(this._authTag)) { return this._authTag; } else { throw new Error( "Attempting to get auth tag in unsupported state" ); } }; StreamCipher.prototype.setAuthTag = function setAuthTag(tag) { if (this._decrypt) { this._authTag = tag; } else { throw new Error( "Attempting to set auth tag in unsupported state" ); } }; StreamCipher.prototype.setAAD = function setAAD(buf) { if (!this._called) { this._ghash.update(buf); this._alen += buf.length; } else { throw new Error("Attempting to set AAD in unsupported state"); } }; function xorTest(a, b) { var out = 0; if (a.length !== b.length) { out++; } var len = Math.min(a.length, b.length); var i = -1; while (++i < len) { out += a[i] ^ b[i]; } return out; } }).call(this, require("buffer").Buffer); }, { "./aes": 28, "./ghash": 33, buffer: 54, "buffer-xor": 53, "cipher-base": 55, inherits: 108, }, ], 30: [ function (require, module, exports) { var ciphers = require("./encrypter.js"); exports.createCipher = exports.Cipher = ciphers.createCipher; exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv; var deciphers = require("./decrypter.js"); exports.createDecipher = exports.Decipher = deciphers.createDecipher; exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv; var modes = require("./modes.js"); function getCiphers() { return Object.keys(modes); } exports.listCiphers = exports.getCiphers = getCiphers; }, { "./decrypter": 31, "./encrypter": 32, "./modes": 34 }, ], 31: [ function (require, module, exports) { (function (Buffer) { var aes = require("./aes.js"); var Transform = require("cipher-base"); var inherits = require("inherits"); var modes = require("./modes.js"); var StreamCipher = require("./streamCipher.js"); var AuthCipher = require("./authCipher.js"); var ebtk = require("evp_bytestokey"); inherits(Decipher, Transform); function Decipher(mode, key, iv) { if (!(this instanceof Decipher)) { return new Decipher(mode, key, iv); } Transform.call(this); this._cache = new Splitter(); this._last = void 0; this._cipher = new aes.AES(key); this._prev = new Buffer(iv.length); iv.copy(this._prev); this._mode = mode; this._autopadding = true; } Decipher.prototype._update = function (data) { this._cache.add(data); var chunk; var thing; var out = []; while ((chunk = this._cache.get(this._autopadding))) { thing = this._mode.decrypt(this, chunk); out.push(thing); } return Buffer.concat(out); }; Decipher.prototype._final = function () { var chunk = this._cache.flush(); if (this._autopadding) { return unpad(this._mode.decrypt(this, chunk)); } else if (chunk) { throw new Error("data not multiple of block length"); } }; Decipher.prototype.setAutoPadding = function (setTo) { this._autopadding = !!setTo; return this; }; function Splitter() { if (!(this instanceof Splitter)) { return new Splitter(); } this.cache = new Buffer(""); } Splitter.prototype.add = function (data) { this.cache = Buffer.concat([this.cache, data]); }; Splitter.prototype.get = function (autoPadding) { var out; if (autoPadding) { if (this.cache.length > 16) { out = this.cache.slice(0, 16); this.cache = this.cache.slice(16); return out; } } else { if (this.cache.length >= 16) { out = this.cache.slice(0, 16); this.cache = this.cache.slice(16); return out; } } return null; }; Splitter.prototype.flush = function () { if (this.cache.length) { return this.cache; } }; function unpad(last) { var padded = last[15]; var i = -1; while (++i < padded) { if (last[i + (16 - padded)] !== padded) { throw new Error("unable to decrypt data"); } } if (padded === 16) { return; } return last.slice(0, 16 - padded); } var modelist = { ECB: require("./modes/ecb.js"), CBC: require("./modes/cbc.js"), CFB: require("./modes/cfb.js"), CFB8: require("./modes/cfb8.js"), CFB1: require("./modes/cfb1.js"), OFB: require("./modes/ofb.js"), CTR: require("./modes/ctr.js"), GCM: require("./modes/ctr.js"), }; function createDecipheriv(suite, password, iv) { var config = modes[suite.toLowerCase()]; if (!config) { throw new TypeError("invalid suite type"); } if (typeof iv === "string") { iv = new Buffer(iv); } if (typeof password === "string") { password = new Buffer(password); } if (password.length !== config.key / 8) { throw new TypeError("invalid key length " + password.length); } if (iv.length !== config.iv) { throw new TypeError("invalid iv length " + iv.length); } if (config.type === "stream") { return new StreamCipher( modelist[config.mode], password, iv, true ); } else if (config.type === "auth") { return new AuthCipher(modelist[config.mode], password, iv, true); } return new Decipher(modelist[config.mode], password, iv); } function createDecipher(suite, password) { var config = modes[suite.toLowerCase()]; if (!config) { throw new TypeError("invalid suite type"); } var keys = ebtk(password, false, config.key, config.iv); return createDecipheriv(suite, keys.key, keys.iv); } exports.createDecipher = createDecipher; exports.createDecipheriv = createDecipheriv; }).call(this, require("buffer").Buffer); }, { "./aes": 28, "./authCipher": 29, "./modes": 34, "./modes/cbc": 35, "./modes/cfb": 36, "./modes/cfb1": 37, "./modes/cfb8": 38, "./modes/ctr": 39, "./modes/ecb": 40, "./modes/ofb": 41, "./streamCipher": 42, buffer: 54, "cipher-base": 55, evp_bytestokey: 91, inherits: 108, }, ], 32: [ function (require, module, exports) { (function (Buffer) { var aes = require("./aes.js"); var Transform = require("cipher-base"); var inherits = require("inherits"); var modes = require("./modes.js"); var ebtk = require("evp_bytestokey"); var StreamCipher = require("./streamCipher.js"); var AuthCipher = require("./authCipher.js"); inherits(Cipher, Transform); function Cipher(mode, key, iv) { if (!(this instanceof Cipher)) { return new Cipher(mode, key, iv); } Transform.call(this); this._cache = new Splitter(); this._cipher = new aes.AES(key); this._prev = new Buffer(iv.length); iv.copy(this._prev); this._mode = mode; this._autopadding = true; } Cipher.prototype._update = function (data) { this._cache.add(data); var chunk; var thing; var out = []; while ((chunk = this._cache.get())) { thing = this._mode.encrypt(this, chunk); out.push(thing); } return Buffer.concat(out); }; Cipher.prototype._final = function () { var chunk = this._cache.flush(); if (this._autopadding) { chunk = this._mode.encrypt(this, chunk); this._cipher.scrub(); return chunk; } else if ( chunk.toString("hex") !== "10101010101010101010101010101010" ) { this._cipher.scrub(); throw new Error("data not multiple of block length"); } }; Cipher.prototype.setAutoPadding = function (setTo) { this._autopadding = !!setTo; return this; }; function Splitter() { if (!(this instanceof Splitter)) { return new Splitter(); } this.cache = new Buffer(""); } Splitter.prototype.add = function (data) { this.cache = Buffer.concat([this.cache, data]); }; Splitter.prototype.get = function () { if (this.cache.length > 15) { var out = this.cache.slice(0, 16); this.cache = this.cache.slice(16); return out; } return null; }; Splitter.prototype.flush = function () { var len = 16 - this.cache.length; var padBuff = new Buffer(len); var i = -1; while (++i < len) { padBuff.writeUInt8(len, i); } var out = Buffer.concat([this.cache, padBuff]); return out; }; var modelist = { ECB: require("./modes/ecb.js"), CBC: require("./modes/cbc.js"), CFB: require("./modes/cfb.js"), CFB8: require("./modes/cfb8.js"), CFB1: require("./modes/cfb1.js"), OFB: require("./modes/ofb.js"), CTR: require("./modes/ctr.js"), GCM: require("./modes/ctr.js"), }; function createCipheriv(suite, password, iv) { var config = modes[suite.toLowerCase()]; if (!config) { throw new TypeError("invalid suite type"); } if (typeof iv === "string") { iv = new Buffer(iv); } if (typeof password === "string") { password = new Buffer(password); } if (password.length !== config.key / 8) { throw new TypeError("invalid key length " + password.length); } if (iv.length !== config.iv) { throw new TypeError("invalid iv length " + iv.length); } if (config.type === "stream") { return new StreamCipher(modelist[config.mode], password, iv); } else if (config.type === "auth") { return new AuthCipher(modelist[config.mode], password, iv); } return new Cipher(modelist[config.mode], password, iv); } function createCipher(suite, password) { var config = modes[suite.toLowerCase()]; if (!config) { throw new TypeError("invalid suite type"); } var keys = ebtk(password, false, config.key, config.iv); return createCipheriv(suite, keys.key, keys.iv); } exports.createCipheriv = createCipheriv; exports.createCipher = createCipher; }).call(this, require("buffer").Buffer); }, { "./aes": 28, "./authCipher": 29, "./modes": 34, "./modes/cbc": 35, "./modes/cfb": 36, "./modes/cfb1": 37, "./modes/cfb8": 38, "./modes/ctr": 39, "./modes/ecb": 40, "./modes/ofb": 41, "./streamCipher": 42, buffer: 54, "cipher-base": 55, evp_bytestokey: 91, inherits: 108, }, ], 33: [ function (require, module, exports) { (function (Buffer) { var zeros = new Buffer(16); zeros.fill(0); module.exports = GHASH; function GHASH(key) { this.h = key; this.state = new Buffer(16); this.state.fill(0); this.cache = new Buffer(""); } // from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html // by Juho Vähä-Herttua GHASH.prototype.ghash = function (block) { var i = -1; while (++i < block.length) { this.state[i] ^= block[i]; } this._multiply(); }; GHASH.prototype._multiply = function () { var Vi = toArray(this.h); var Zi = [0, 0, 0, 0]; var j, xi, lsb_Vi; var i = -1; while (++i < 128) { xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0; if (xi) { // Z_i+1 = Z_i ^ V_i Zi = xor(Zi, Vi); } // Store the value of LSB(V_i) lsb_Vi = (Vi[3] & 1) !== 0; // V_i+1 = V_i >> 1 for (j = 3; j > 0; j--) { Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31); } Vi[0] = Vi[0] >>> 1; // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R if (lsb_Vi) { Vi[0] = Vi[0] ^ (0xe1 << 24); } } this.state = fromArray(Zi); }; GHASH.prototype.update = function (buf) { this.cache = Buffer.concat([this.cache, buf]); var chunk; while (this.cache.length >= 16) { chunk = this.cache.slice(0, 16); this.cache = this.cache.slice(16); this.ghash(chunk); } }; GHASH.prototype.final = function (abl, bl) { if (this.cache.length) { this.ghash(Buffer.concat([this.cache, zeros], 16)); } this.ghash(fromArray([0, abl, 0, bl])); return this.state; }; function toArray(buf) { return [ buf.readUInt32BE(0), buf.readUInt32BE(4), buf.readUInt32BE(8), buf.readUInt32BE(12), ]; } function fromArray(out) { out = out.map(fixup_uint32); var buf = new Buffer(16); buf.writeUInt32BE(out[0], 0); buf.writeUInt32BE(out[1], 4); buf.writeUInt32BE(out[2], 8); buf.writeUInt32BE(out[3], 12); return buf; } var uint_max = Math.pow(2, 32); function fixup_uint32(x) { var ret, x_pos; ret = x > uint_max || x < 0 ? ((x_pos = Math.abs(x) % uint_max), x < 0 ? uint_max - x_pos : x_pos) : x; return ret; } function xor(a, b) { return [a[0] ^ b[0], a[1] ^ b[1], a[2] ^ b[2], a[3] ^ b[3]]; } }).call(this, require("buffer").Buffer); }, { buffer: 54 }, ], 34: [ function (require, module, exports) { exports["aes-128-ecb"] = { cipher: "AES", key: 128, iv: 0, mode: "ECB", type: "block", }; exports["aes-192-ecb"] = { cipher: "AES", key: 192, iv: 0, mode: "ECB", type: "block", }; exports["aes-256-ecb"] = { cipher: "AES", key: 256, iv: 0, mode: "ECB", type: "block", }; exports["aes-128-cbc"] = { cipher: "AES", key: 128, iv: 16, mode: "CBC", type: "block", }; exports["aes-192-cbc"] = { cipher: "AES", key: 192, iv: 16, mode: "CBC", type: "block", }; exports["aes-256-cbc"] = { cipher: "AES", key: 256, iv: 16, mode: "CBC", type: "block", }; exports["aes128"] = exports["aes-128-cbc"]; exports["aes192"] = exports["aes-192-cbc"]; exports["aes256"] = exports["aes-256-cbc"]; exports["aes-128-cfb"] = { cipher: "AES", key: 128, iv: 16, mode: "CFB", type: "stream", }; exports["aes-192-cfb"] = { cipher: "AES", key: 192, iv: 16, mode: "CFB", type: "stream", }; exports["aes-256-cfb"] = { cipher: "AES", key: 256, iv: 16, mode: "CFB", type: "stream", }; exports["aes-128-cfb8"] = { cipher: "AES", key: 128, iv: 16, mode: "CFB8", type: "stream", }; exports["aes-192-cfb8"] = { cipher: "AES", key: 192, iv: 16, mode: "CFB8", type: "stream", }; exports["aes-256-cfb8"] = { cipher: "AES", key: 256, iv: 16, mode: "CFB8", type: "stream", }; exports["aes-128-cfb1"] = { cipher: "AES", key: 128, iv: 16, mode: "CFB1", type: "stream", }; exports["aes-192-cfb1"] = { cipher: "AES", key: 192, iv: 16, mode: "CFB1", type: "stream", }; exports["aes-256-cfb1"] = { cipher: "AES", key: 256, iv: 16, mode: "CFB1", type: "stream", }; exports["aes-128-ofb"] = { cipher: "AES", key: 128, iv: 16, mode: "OFB", type: "stream", }; exports["aes-192-ofb"] = { cipher: "AES", key: 192, iv: 16, mode: "OFB", type: "stream", }; exports["aes-256-ofb"] = { cipher: "AES", key: 256, iv: 16, mode: "OFB", type: "stream", }; exports["aes-128-ctr"] = { cipher: "AES", key: 128, iv: 16, mode: "CTR", type: "stream", }; exports["aes-192-ctr"] = { cipher: "AES", key: 192, iv: 16, mode: "CTR", type: "stream", }; exports["aes-256-ctr"] = { cipher: "AES", key: 256, iv: 16, mode: "CTR", type: "stream", }; exports["aes-128-gcm"] = { cipher: "AES", key: 128, iv: 12, mode: "GCM", type: "auth", }; exports["aes-192-gcm"] = { cipher: "AES", key: 192, iv: 12, mode: "GCM", type: "auth", }; exports["aes-256-gcm"] = { cipher: "AES", key: 256, iv: 12, mode: "GCM", type: "auth", }; }, {}, ], 35: [ function (require, module, exports) { var xor = require("buffer-xor"); exports.encrypt = function (self, block) { var data = xor(block, self._prev); self._prev = self._cipher.encryptBlock(data); return self._prev; }; exports.decrypt = function (self, block) { var pad = self._prev; self._prev = block; var out = self._cipher.decryptBlock(block); return xor(out, pad); }; }, { "buffer-xor": 53 }, ], 36: [ function (require, module, exports) { (function (Buffer) { var xor = require("buffer-xor"); exports.encrypt = function (self, data, decrypt) { var out = new Buffer(""); var len; while (data.length) { if (self._cache.length === 0) { self._cache = self._cipher.encryptBlock(self._prev); self._prev = new Buffer(""); } if (self._cache.length <= data.length) { len = self._cache.length; out = Buffer.concat([ out, encryptStart(self, data.slice(0, len), decrypt), ]); data = data.slice(len); } else { out = Buffer.concat([out, encryptStart(self, data, decrypt)]); break; } } return out; }; function encryptStart(self, data, decrypt) { var len = data.length; var out = xor(data, self._cache); self._cache = self._cache.slice(len); self._prev = Buffer.concat([self._prev, decrypt ? data : out]); return out; } }).call(this, require("buffer").Buffer); }, { buffer: 54, "buffer-xor": 53 }, ], 37: [ function (require, module, exports) { (function (Buffer) { function encryptByte(self, byteParam, decrypt) { var pad; var i = -1; var len = 8; var out = 0; var bit, value; while (++i < len) { pad = self._cipher.encryptBlock(self._prev); bit = byteParam & (1 << (7 - i)) ? 0x80 : 0; value = pad[0] ^ bit; out += (value & 0x80) >> i % 8; self._prev = shiftIn(self._prev, decrypt ? bit : value); } return out; } exports.encrypt = function (self, chunk, decrypt) { var len = chunk.length; var out = new Buffer(len); var i = -1; while (++i < len) { out[i] = encryptByte(self, chunk[i], decrypt); } return out; }; function shiftIn(buffer, value) { var len = buffer.length; var i = -1; var out = new Buffer(buffer.length); buffer = Buffer.concat([buffer, new Buffer([value])]); while (++i < len) { out[i] = (buffer[i] << 1) | (buffer[i + 1] >> 7); } return out; } }).call(this, require("buffer").Buffer); }, { buffer: 54 }, ], 38: [ function (require, module, exports) { (function (Buffer) { function encryptByte(self, byteParam, decrypt) { var pad = self._cipher.encryptBlock(self._prev); var out = pad[0] ^ byteParam; self._prev = Buffer.concat([ self._prev.slice(1), new Buffer([decrypt ? byteParam : out]), ]); return out; } exports.encrypt = function (self, chunk, decrypt) { var len = chunk.length; var out = new Buffer(len); var i = -1; while (++i < len) { out[i] = encryptByte(self, chunk[i], decrypt); } return out; }; }).call(this, require("buffer").Buffer); }, { buffer: 54 }, ], 39: [ function (require, module, exports) { (function (Buffer) { var xor = require("buffer-xor"); function incr32(iv) { var len = iv.length; var item; while (len--) { item = iv.readUInt8(len); if (item === 255) { iv.writeUInt8(0, len); } else { item++; iv.writeUInt8(item, len); break; } } } function getBlock(self) { var out = self._cipher.encryptBlock(self._prev); incr32(self._prev); return out; } exports.encrypt = function (self, chunk) { while (self._cache.length < chunk.length) { self._cache = Buffer.concat([self._cache, getBlock(self)]); } var pad = self._cache.slice(0, chunk.length); self._cache = self._cache.slice(chunk.length); return xor(chunk, pad); }; }).call(this, require("buffer").Buffer); }, { buffer: 54, "buffer-xor": 53 }, ], 40: [ function (require, module, exports) { exports.encrypt = function (self, block) { return self._cipher.encryptBlock(block); }; exports.decrypt = function (self, block) { return self._cipher.decryptBlock(block); }; }, {}, ], 41: [ function (require, module, exports) { (function (Buffer) { var xor = require("buffer-xor"); function getBlock(self) { self._prev = self._cipher.encryptBlock(self._prev); return self._prev; } exports.encrypt = function (self, chunk) { while (self._cache.length < chunk.length) { self._cache = Buffer.concat([self._cache, getBlock(self)]); } var pad = self._cache.slice(0, chunk.length); self._cache = self._cache.slice(chunk.length); return xor(chunk, pad); }; }).call(this, require("buffer").Buffer); }, { buffer: 54, "buffer-xor": 53 }, ], 42: [ function (require, module, exports) { (function (Buffer) { var aes = require("./aes.js"); var Transform = require("cipher-base"); var inherits = require("inherits"); inherits(StreamCipher, Transform); module.exports = StreamCipher; function StreamCipher(mode, key, iv, decrypt) { if (!(this instanceof StreamCipher)) { return new StreamCipher(mode, key, iv); } Transform.call(this); this._cipher = new aes.AES(key); this._prev = new Buffer(iv.length); this._cache = new Buffer(""); this._secCache = new Buffer(""); this._decrypt = decrypt; iv.copy(this._prev); this._mode = mode; } StreamCipher.prototype._update = function (chunk) { return this._mode.encrypt(this, chunk, this._decrypt); }; StreamCipher.prototype._final = function () { this._cipher.scrub(); }; }).call(this, require("buffer").Buffer); }, { "./aes": 28, buffer: 54, "cipher-base": 55, inherits: 108 }, ], 43: [ function (require, module, exports) { var ebtk = require("evp_bytestokey"); var aes = require("browserify-aes/browser"); var DES = require("browserify-des"); var desModes = require("browserify-des/modes"); var aesModes = require("browserify-aes/modes"); function createCipher(suite, password) { var keyLen, ivLen; suite = suite.toLowerCase(); if (aesModes[suite]) { keyLen = aesModes[suite].key; ivLen = aesModes[suite].iv; } else if (desModes[suite]) { keyLen = desModes[suite].key * 8; ivLen = desModes[suite].iv; } else { throw new TypeError("invalid suite type"); } var keys = ebtk(password, false, keyLen, ivLen); return createCipheriv(suite, keys.key, keys.iv); } function createDecipher(suite, password) { var keyLen, ivLen; suite = suite.toLowerCase(); if (aesModes[suite]) { keyLen = aesModes[suite].key; ivLen = aesModes[suite].iv; } else if (desModes[suite]) { keyLen = desModes[suite].key * 8; ivLen = desModes[suite].iv; } else { throw new TypeError("invalid suite type"); } var keys = ebtk(password, false, keyLen, ivLen); return createDecipheriv(suite, keys.key, keys.iv); } function createCipheriv(suite, key, iv) { suite = suite.toLowerCase(); if (aesModes[suite]) { return aes.createCipheriv(suite, key, iv); } else if (desModes[suite]) { return new DES({ key: key, iv: iv, mode: suite, }); } else { throw new TypeError("invalid suite type"); } } function createDecipheriv(suite, key, iv) { suite = suite.toLowerCase(); if (aesModes[suite]) { return aes.createDecipheriv(suite, key, iv); } else if (desModes[suite]) { return new DES({ key: key, iv: iv, mode: suite, decrypt: true, }); } else { throw new TypeError("invalid suite type"); } } exports.createCipher = exports.Cipher = createCipher; exports.createCipheriv = exports.Cipheriv = createCipheriv; exports.createDecipher = exports.Decipher = createDecipher; exports.createDecipheriv = exports.Decipheriv = createDecipheriv; function getCiphers() { return Object.keys(desModes).concat(aes.getCiphers()); } exports.listCiphers = exports.getCiphers = getCiphers; }, { "browserify-aes/browser": 30, "browserify-aes/modes": 34, "browserify-des": 44, "browserify-des/modes": 45, evp_bytestokey: 91, }, ], 44: [ function (require, module, exports) { (function (Buffer) { var CipherBase = require("cipher-base"); var des = require("des.js"); var inherits = require("inherits"); var modes = { "des-ede3-cbc": des.CBC.instantiate(des.EDE), "des-ede3": des.EDE, "des-ede-cbc": des.CBC.instantiate(des.EDE), "des-ede": des.EDE, "des-cbc": des.CBC.instantiate(des.DES), "des-ecb": des.DES, }; modes.des = modes["des-cbc"]; modes.des3 = modes["des-ede3-cbc"]; module.exports = DES; inherits(DES, CipherBase); function DES(opts) { CipherBase.call(this); var modeName = opts.mode.toLowerCase(); var mode = modes[modeName]; var type; if (opts.decrypt) { type = "decrypt"; } else { type = "encrypt"; } var key = opts.key; if (modeName === "des-ede" || modeName === "des-ede-cbc") { key = Buffer.concat([key, key.slice(0, 8)]); } var iv = opts.iv; this._des = mode.create({ key: key, iv: iv, type: type, }); } DES.prototype._update = function (data) { return new Buffer(this._des.update(data)); }; DES.prototype._final = function () { return new Buffer(this._des.final()); }; }).call(this, require("buffer").Buffer); }, { buffer: 54, "cipher-base": 55, "des.js": 64, inherits: 108 }, ], 45: [ function (require, module, exports) { exports["des-ecb"] = { key: 8, iv: 0, }; exports["des-cbc"] = exports.des = { key: 8, iv: 8, }; exports["des-ede3-cbc"] = exports.des3 = { key: 24, iv: 8, }; exports["des-ede3"] = { key: 24, iv: 0, }; exports["des-ede-cbc"] = { key: 16, iv: 8, }; exports["des-ede"] = { key: 16, iv: 0, }; }, {}, ], 46: [ function (require, module, exports) { (function (Buffer) { var bn = require("bn.js"); var randomBytes = require("randombytes"); module.exports = crt; function blind(priv) { var r = getr(priv); var blinder = r .toRed(bn.mont(priv.modulus)) .redPow(new bn(priv.publicExponent)) .fromRed(); return { blinder: blinder, unblinder: r.invm(priv.modulus), }; } function crt(msg, priv) { var blinds = blind(priv); var len = priv.modulus.byteLength(); var mod = bn.mont(priv.modulus); var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus); var c1 = blinded.toRed(bn.mont(priv.prime1)); var c2 = blinded.toRed(bn.mont(priv.prime2)); var qinv = priv.coefficient; var p = priv.prime1; var q = priv.prime2; var m1 = c1.redPow(priv.exponent1); var m2 = c2.redPow(priv.exponent2); m1 = m1.fromRed(); m2 = m2.fromRed(); var h = m1.isub(m2).imul(qinv).umod(p); h.imul(q); m2.iadd(h); return new Buffer( m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len) ); } crt.getr = getr; function getr(priv) { var len = priv.modulus.byteLength(); var r = new bn(randomBytes(len)); while ( r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2) ) { r = new bn(randomBytes(len)); } return r; } }).call(this, require("buffer").Buffer); }, { "bn.js": 25, buffer: 54, randombytes: 133 }, ], 47: [ function (require, module, exports) { module.exports = require("./browser/algorithms.json"); }, { "./browser/algorithms.json": 48 }, ], 48: [ function (require, module, exports) { module.exports = { sha224WithRSAEncryption: { sign: "rsa", hash: "sha224", id: "302d300d06096086480165030402040500041c", }, "RSA-SHA224": { sign: "ecdsa/rsa", hash: "sha224", id: "302d300d06096086480165030402040500041c", }, sha256WithRSAEncryption: { sign: "rsa", hash: "sha256", id: "3031300d060960864801650304020105000420", }, "RSA-SHA256": { sign: "ecdsa/rsa", hash: "sha256", id: "3031300d060960864801650304020105000420", }, sha384WithRSAEncryption: { sign: "rsa", hash: "sha384", id: "3041300d060960864801650304020205000430", }, "RSA-SHA384": { sign: "ecdsa/rsa", hash: "sha384", id: "3041300d060960864801650304020205000430", }, sha512WithRSAEncryption: { sign: "rsa", hash: "sha512", id: "3051300d060960864801650304020305000440", }, "RSA-SHA512": { sign: "ecdsa/rsa", hash: "sha512", id: "3051300d060960864801650304020305000440", }, "RSA-SHA1": { sign: "rsa", hash: "sha1", id: "3021300906052b0e03021a05000414", }, "ecdsa-with-SHA1": { sign: "ecdsa", hash: "sha1", id: "", }, sha256: { sign: "ecdsa", hash: "sha256", id: "", }, sha224: { sign: "ecdsa", hash: "sha224", id: "", }, sha384: { sign: "ecdsa", hash: "sha384", id: "", }, sha512: { sign: "ecdsa", hash: "sha512", id: "", }, "DSA-SHA": { sign: "dsa", hash: "sha1", id: "", }, "DSA-SHA1": { sign: "dsa", hash: "sha1", id: "", }, DSA: { sign: "dsa", hash: "sha1", id: "", }, "DSA-WITH-SHA224": { sign: "dsa", hash: "sha224", id: "", }, "DSA-SHA224": { sign: "dsa", hash: "sha224", id: "", }, "DSA-WITH-SHA256": { sign: "dsa", hash: "sha256", id: "", }, "DSA-SHA256": { sign: "dsa", hash: "sha256", id: "", }, "DSA-WITH-SHA384": { sign: "dsa", hash: "sha384", id: "", }, "DSA-SHA384": { sign: "dsa", hash: "sha384", id: "", }, "DSA-WITH-SHA512": { sign: "dsa", hash: "sha512", id: "", }, "DSA-SHA512": { sign: "dsa", hash: "sha512", id: "", }, "DSA-RIPEMD160": { sign: "dsa", hash: "rmd160", id: "", }, ripemd160WithRSA: { sign: "rsa", hash: "rmd160", id: "3021300906052b2403020105000414", }, "RSA-RIPEMD160": { sign: "rsa", hash: "rmd160", id: "3021300906052b2403020105000414", }, md5WithRSAEncryption: { sign: "rsa", hash: "md5", id: "3020300c06082a864886f70d020505000410", }, "RSA-MD5": { sign: "rsa", hash: "md5", id: "3020300c06082a864886f70d020505000410", }, }; }, {}, ], 49: [ function (require, module, exports) { module.exports = { "1.3.132.0.10": "secp256k1", "1.3.132.0.33": "p224", "1.2.840.10045.3.1.1": "p192", "1.2.840.10045.3.1.7": "p256", "1.3.132.0.34": "p384", "1.3.132.0.35": "p521", }; }, {}, ], 50: [ function (require, module, exports) { (function (Buffer) { var createHash = require("create-hash"); var stream = require("stream"); var inherits = require("inherits"); var sign = require("./sign.js"); var verify = require("./verify.js"); var algorithms = require("./algorithms.json"); Object.keys(algorithms).forEach(function (key) { algorithms[key].id = new Buffer(algorithms[key].id, "hex"); algorithms[key.toLowerCase()] = algorithms[key]; }); function Sign(algorithm) { stream.Writable.call(this); var data = algorithms[algorithm]; if (!data) throw new Error("Unknown message digest"); this._hashType = data.hash; this._hash = createHash(data.hash); this._tag = data.id; this._signType = data.sign; } inherits(Sign, stream.Writable); Sign.prototype._write = function _write(data, _, done) { this._hash.update(data); done(); }; Sign.prototype.update = function update(data, enc) { if (typeof data === "string") data = new Buffer(data, enc); this._hash.update(data); return this; }; Sign.prototype.sign = function signMethod(key, enc) { this.end(); var hash = this._hash.digest(); var sig = sign( hash, key, this._hashType, this._signType, this._tag ); return enc ? sig.toString(enc) : sig; }; function Verify(algorithm) { stream.Writable.call(this); var data = algorithms[algorithm]; if (!data) throw new Error("Unknown message digest"); this._hash = createHash(data.hash); this._tag = data.id; this._signType = data.sign; } inherits(Verify, stream.Writable); Verify.prototype._write = function _write(data, _, done) { this._hash.update(data); done(); }; Verify.prototype.update = function update(data, enc) { if (typeof data === "string") data = new Buffer(data, enc); this._hash.update(data); return this; }; Verify.prototype.verify = function verifyMethod(key, sig, enc) { if (typeof sig === "string") sig = new Buffer(sig, enc); this.end(); var hash = this._hash.digest(); return verify(sig, hash, key, this._signType, this._tag); }; function createSign(algorithm) { return new Sign(algorithm); } function createVerify(algorithm) { return new Verify(algorithm); } module.exports = { Sign: createSign, Verify: createVerify, createSign: createSign, createVerify: createVerify, }; }).call(this, require("buffer").Buffer); }, { "./algorithms.json": 48, "./sign": 51, "./verify": 52, buffer: 54, "create-hash": 58, inherits: 108, stream: 157, }, ], 51: [ function (require, module, exports) { (function (Buffer) { // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var createHmac = require("create-hmac"); var crt = require("browserify-rsa"); var EC = require("elliptic").ec; var BN = require("bn.js"); var parseKeys = require("parse-asn1"); var curves = require("./curves.json"); function sign(hash, key, hashType, signType, tag) { var priv = parseKeys(key); if (priv.curve) { // rsa keys can be interpreted as ecdsa ones in openssl if (signType !== "ecdsa" && signType !== "ecdsa/rsa") throw new Error("wrong private key type"); return ecSign(hash, priv); } else if (priv.type === "dsa") { if (signType !== "dsa") throw new Error("wrong private key type"); return dsaSign(hash, priv, hashType); } else { if (signType !== "rsa" && signType !== "ecdsa/rsa") throw new Error("wrong private key type"); } hash = Buffer.concat([tag, hash]); var len = priv.modulus.byteLength(); var pad = [0, 1]; while (hash.length + pad.length + 1 < len) pad.push(0xff); pad.push(0x00); var i = -1; while (++i < hash.length) pad.push(hash[i]); var out = crt(pad, priv); return out; } function ecSign(hash, priv) { var curveId = curves[priv.curve.join(".")]; if (!curveId) throw new Error("unknown curve " + priv.curve.join(".")); var curve = new EC(curveId); var key = curve.keyFromPrivate(priv.privateKey); var out = key.sign(hash); return new Buffer(out.toDER()); } function dsaSign(hash, priv, algo) { var x = priv.params.priv_key; var p = priv.params.p; var q = priv.params.q; var g = priv.params.g; var r = new BN(0); var k; var H = bits2int(hash, q).mod(q); var s = false; var kv = getKey(x, q, hash, algo); while (s === false) { k = makeKey(q, kv, algo); r = makeR(g, k, p, q); s = k .invm(q) .imul(H.add(x.mul(r))) .mod(q); if (s.cmpn(0) === 0) { s = false; r = new BN(0); } } return toDER(r, s); } function toDER(r, s) { r = r.toArray(); s = s.toArray(); // Pad values if (r[0] & 0x80) r = [0].concat(r); if (s[0] & 0x80) s = [0].concat(s); var total = r.length + s.length + 4; var res = [0x30, total, 0x02, r.length]; res = res.concat(r, [0x02, s.length], s); return new Buffer(res); } function getKey(x, q, hash, algo) { x = new Buffer(x.toArray()); if (x.length < q.byteLength()) { var zeros = new Buffer(q.byteLength() - x.length); zeros.fill(0); x = Buffer.concat([zeros, x]); } var hlen = hash.length; var hbits = bits2octets(hash, q); var v = new Buffer(hlen); v.fill(1); var k = new Buffer(hlen); k.fill(0); k = createHmac(algo, k) .update(v) .update(new Buffer([0])) .update(x) .update(hbits) .digest(); v = createHmac(algo, k).update(v).digest(); k = createHmac(algo, k) .update(v) .update(new Buffer([1])) .update(x) .update(hbits) .digest(); v = createHmac(algo, k).update(v).digest(); return { k: k, v: v }; } function bits2int(obits, q) { var bits = new BN(obits); var shift = (obits.length << 3) - q.bitLength(); if (shift > 0) bits.ishrn(shift); return bits; } function bits2octets(bits, q) { bits = bits2int(bits, q); bits = bits.mod(q); var out = new Buffer(bits.toArray()); if (out.length < q.byteLength()) { var zeros = new Buffer(q.byteLength() - out.length); zeros.fill(0); out = Buffer.concat([zeros, out]); } return out; } function makeKey(q, kv, algo) { var t; var k; do { t = new Buffer(0); while (t.length * 8 < q.bitLength()) { kv.v = createHmac(algo, kv.k).update(kv.v).digest(); t = Buffer.concat([t, kv.v]); } k = bits2int(t, q); kv.k = createHmac(algo, kv.k) .update(kv.v) .update(new Buffer([0])) .digest(); kv.v = createHmac(algo, kv.k).update(kv.v).digest(); } while (k.cmp(q) !== -1); return k; } function makeR(g, k, p, q) { return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q); } module.exports = sign; module.exports.getKey = getKey; module.exports.makeKey = makeKey; }).call(this, require("buffer").Buffer); }, { "./curves.json": 49, "bn.js": 25, "browserify-rsa": 46, buffer: 54, "create-hmac": 61, elliptic: 74, "parse-asn1": 118, }, ], 52: [ function (require, module, exports) { (function (Buffer) { // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var BN = require("bn.js"); var EC = require("elliptic").ec; var parseKeys = require("parse-asn1"); var curves = require("./curves.json"); function verify(sig, hash, key, signType, tag) { var pub = parseKeys(key); if (pub.type === "ec") { // rsa keys can be interpreted as ecdsa ones in openssl if (signType !== "ecdsa" && signType !== "ecdsa/rsa") throw new Error("wrong public key type"); return ecVerify(sig, hash, pub); } else if (pub.type === "dsa") { if (signType !== "dsa") throw new Error("wrong public key type"); return dsaVerify(sig, hash, pub); } else { if (signType !== "rsa" && signType !== "ecdsa/rsa") throw new Error("wrong public key type"); } hash = Buffer.concat([tag, hash]); var len = pub.modulus.byteLength(); var pad = [1]; var padNum = 0; while (hash.length + pad.length + 2 < len) { pad.push(0xff); padNum++; } pad.push(0x00); var i = -1; while (++i < hash.length) { pad.push(hash[i]); } pad = new Buffer(pad); var red = BN.mont(pub.modulus); sig = new BN(sig).toRed(red); sig = sig.redPow(new BN(pub.publicExponent)); sig = new Buffer(sig.fromRed().toArray()); var out = padNum < 8 ? 1 : 0; len = Math.min(sig.length, pad.length); if (sig.length !== pad.length) out = 1; i = -1; while (++i < len) out |= sig[i] ^ pad[i]; return out === 0; } function ecVerify(sig, hash, pub) { var curveId = curves[pub.data.algorithm.curve.join(".")]; if (!curveId) throw new Error( "unknown curve " + pub.data.algorithm.curve.join(".") ); var curve = new EC(curveId); var pubkey = pub.data.subjectPrivateKey.data; return curve.verify(hash, sig, pubkey); } function dsaVerify(sig, hash, pub) { var p = pub.data.p; var q = pub.data.q; var g = pub.data.g; var y = pub.data.pub_key; var unpacked = parseKeys.signature.decode(sig, "der"); var s = unpacked.s; var r = unpacked.r; checkValue(s, q); checkValue(r, q); var montp = BN.mont(p); var w = s.invm(q); var v = g .toRed(montp) .redPow(new BN(hash).mul(w).mod(q)) .fromRed() .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()) .mod(p) .mod(q); return v.cmp(r) === 0; } function checkValue(b, q) { if (b.cmpn(0) <= 0) throw new Error("invalid sig"); if (b.cmp(q) >= q) throw new Error("invalid sig"); } module.exports = verify; }).call(this, require("buffer").Buffer); }, { "./curves.json": 49, "bn.js": 25, buffer: 54, elliptic: 74, "parse-asn1": 118, }, ], 53: [ function (require, module, exports) { (function (Buffer) { module.exports = function xor(a, b) { var length = Math.min(a.length, b.length); var buffer = new Buffer(length); for (var i = 0; i < length; ++i) { buffer[i] = a[i] ^ b[i]; } return buffer; }; }).call(this, require("buffer").Buffer); }, { buffer: 54 }, ], 54: [ function (require, module, exports) { /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ /* eslint-disable no-proto */ "use strict"; var base64 = require("base64-js"); var ieee754 = require("ieee754"); exports.Buffer = Buffer; exports.SlowBuffer = SlowBuffer; exports.INSPECT_MAX_BYTES = 50; var K_MAX_LENGTH = 0x7fffffff; exports.kMaxLength = K_MAX_LENGTH; /** * If `Buffer.TYPED_ARRAY_SUPPORT`: * === true Use Uint8Array implementation (fastest) * === false Print warning and recommend using `buffer` v4.x which has an Object * implementation (most compatible, even IE6) * * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, * Opera 11.6+, iOS 4.2+. * * We report that the browser does not support typed arrays if the are not subclassable * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support * for __proto__ and has a buggy typed array implementation. */ Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport(); if ( !Buffer.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function" ) { console.error( "This browser lacks typed array (Uint8Array) support which is required by " + "`buffer` v5.x. Use `buffer` v4.x if you require old browser support." ); } function typedArraySupport() { // Can typed array instances can be augmented? try { var arr = new Uint8Array(1); arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42; }, }; return arr.foo() === 42; } catch (e) { return false; } } function createBuffer(length) { if (length > K_MAX_LENGTH) { throw new RangeError("Invalid typed array length"); } // Return an augmented `Uint8Array` instance var buf = new Uint8Array(length); buf.__proto__ = Buffer.prototype; return buf; } /** * The Buffer constructor returns instances of `Uint8Array` that have their * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of * `Uint8Array`, so the returned instances will have all the node `Buffer` methods * and the `Uint8Array` methods. Square bracket notation works as expected -- it * returns a single octet. * * The `Uint8Array` prototype remains unmodified. */ function Buffer(arg, encodingOrOffset, length) { // Common case. if (typeof arg === "number") { if (typeof encodingOrOffset === "string") { throw new Error( "If encoding is specified then the first argument must be a string" ); } return allocUnsafe(arg); } return from(arg, encodingOrOffset, length); } // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 if ( typeof Symbol !== "undefined" && Symbol.species && Buffer[Symbol.species] === Buffer ) { Object.defineProperty(Buffer, Symbol.species, { value: null, configurable: true, enumerable: false, writable: false, }); } Buffer.poolSize = 8192; // not used by this implementation function from(value, encodingOrOffset, length) { if (typeof value === "number") { throw new TypeError('"value" argument must not be a number'); } if (isArrayBuffer(value)) { return fromArrayBuffer(value, encodingOrOffset, length); } if (typeof value === "string") { return fromString(value, encodingOrOffset); } return fromObject(value); } /** * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError * if value is a number. * Buffer.from(str[, encoding]) * Buffer.from(array) * Buffer.from(buffer) * Buffer.from(arrayBuffer[, byteOffset[, length]]) **/ Buffer.from = function (value, encodingOrOffset, length) { return from(value, encodingOrOffset, length); }; // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: // https://github.com/feross/buffer/pull/148 Buffer.prototype.__proto__ = Uint8Array.prototype; Buffer.__proto__ = Uint8Array; function assertSize(size) { if (typeof size !== "number") { throw new TypeError('"size" argument must be a number'); } else if (size < 0) { throw new RangeError('"size" argument must not be negative'); } } function alloc(size, fill, encoding) { assertSize(size); if (size <= 0) { return createBuffer(size); } if (fill !== undefined) { // Only pay attention to encoding if it's a string. This // prevents accidentally sending in a number that would // be interpretted as a start offset. return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill); } return createBuffer(size); } /** * Creates a new filled Buffer instance. * alloc(size[, fill[, encoding]]) **/ Buffer.alloc = function (size, fill, encoding) { return alloc(size, fill, encoding); }; function allocUnsafe(size) { assertSize(size); return createBuffer(size < 0 ? 0 : checked(size) | 0); } /** * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. * */ Buffer.allocUnsafe = function (size) { return allocUnsafe(size); }; /** * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. */ Buffer.allocUnsafeSlow = function (size) { return allocUnsafe(size); }; function fromString(string, encoding) { if (typeof encoding !== "string" || encoding === "") { encoding = "utf8"; } if (!Buffer.isEncoding(encoding)) { throw new TypeError('"encoding" must be a valid string encoding'); } var length = byteLength(string, encoding) | 0; var buf = createBuffer(length); var actual = buf.write(string, encoding); if (actual !== length) { // Writing a hex string, for example, that contains invalid characters will // cause everything after the first invalid character to be ignored. (e.g. // 'abxxcd' will be treated as 'ab') buf = buf.slice(0, actual); } return buf; } function fromArrayLike(array) { var length = array.length < 0 ? 0 : checked(array.length) | 0; var buf = createBuffer(length); for (var i = 0; i < length; i += 1) { buf[i] = array[i] & 255; } return buf; } function fromArrayBuffer(array, byteOffset, length) { if (byteOffset < 0 || array.byteLength < byteOffset) { throw new RangeError("'offset' is out of bounds"); } if (array.byteLength < byteOffset + (length || 0)) { throw new RangeError("'length' is out of bounds"); } var buf; if (byteOffset === undefined && length === undefined) { buf = new Uint8Array(array); } else if (length === undefined) { buf = new Uint8Array(array, byteOffset); } else { buf = new Uint8Array(array, byteOffset, length); } // Return an augmented `Uint8Array` instance buf.__proto__ = Buffer.prototype; return buf; } function fromObject(obj) { if (Buffer.isBuffer(obj)) { var len = checked(obj.length) | 0; var buf = createBuffer(len); if (buf.length === 0) { return buf; } obj.copy(buf, 0, 0, len); return buf; } if (obj) { if (isArrayBufferView(obj) || "length" in obj) { if (typeof obj.length !== "number" || numberIsNaN(obj.length)) { return createBuffer(0); } return fromArrayLike(obj); } if (obj.type === "Buffer" && Array.isArray(obj.data)) { return fromArrayLike(obj.data); } } throw new TypeError( "First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object." ); } function checked(length) { // Note: cannot use `length < K_MAX_LENGTH` here because that fails when // length is NaN (which is otherwise coerced to zero.) if (length >= K_MAX_LENGTH) { throw new RangeError( "Attempt to allocate Buffer larger than maximum " + "size: 0x" + K_MAX_LENGTH.toString(16) + " bytes" ); } return length | 0; } function SlowBuffer(length) { if (+length != length) { // eslint-disable-line eqeqeq length = 0; } return Buffer.alloc(+length); } Buffer.isBuffer = function isBuffer(b) { return b != null && b._isBuffer === true; }; Buffer.compare = function compare(a, b) { if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { throw new TypeError("Arguments must be Buffers"); } if (a === b) return 0; var x = a.length; var y = b.length; for (var i = 0, len = Math.min(x, y); i < len; ++i) { if (a[i] !== b[i]) { x = a[i]; y = b[i]; break; } } if (x < y) return -1; if (y < x) return 1; return 0; }; Buffer.isEncoding = function isEncoding(encoding) { switch (String(encoding).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return true; default: return false; } }; Buffer.concat = function concat(list, length) { if (!Array.isArray(list)) { throw new TypeError('"list" argument must be an Array of Buffers'); } if (list.length === 0) { return Buffer.alloc(0); } var i; if (length === undefined) { length = 0; for (i = 0; i < list.length; ++i) { length += list[i].length; } } var buffer = Buffer.allocUnsafe(length); var pos = 0; for (i = 0; i < list.length; ++i) { var buf = list[i]; if (!Buffer.isBuffer(buf)) { throw new TypeError( '"list" argument must be an Array of Buffers' ); } buf.copy(buffer, pos); pos += buf.length; } return buffer; }; function byteLength(string, encoding) { if (Buffer.isBuffer(string)) { return string.length; } if (isArrayBufferView(string) || isArrayBuffer(string)) { return string.byteLength; } if (typeof string !== "string") { string = "" + string; } var len = string.length; if (len === 0) return 0; // Use a for loop to avoid recursion var loweredCase = false; for (;;) { switch (encoding) { case "ascii": case "latin1": case "binary": return len; case "utf8": case "utf-8": case undefined: return utf8ToBytes(string).length; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return len * 2; case "hex": return len >>> 1; case "base64": return base64ToBytes(string).length; default: if (loweredCase) return utf8ToBytes(string).length; // assume utf8 encoding = ("" + encoding).toLowerCase(); loweredCase = true; } } } Buffer.byteLength = byteLength; function slowToString(encoding, start, end) { var loweredCase = false; // No need to verify that "this.length <= MAX_UINT32" since it's a read-only // property of a typed array. // This behaves neither like String nor Uint8Array in that we set start/end // to their upper/lower bounds if the value passed is out of range. // undefined is handled specially as per ECMA-262 6th Edition, // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. if (start === undefined || start < 0) { start = 0; } // Return early if start > this.length. Done here to prevent potential uint32 // coercion fail below. if (start > this.length) { return ""; } if (end === undefined || end > this.length) { end = this.length; } if (end <= 0) { return ""; } // Force coersion to uint32. This will also coerce falsey/NaN values to 0. end >>>= 0; start >>>= 0; if (end <= start) { return ""; } if (!encoding) encoding = "utf8"; while (true) { switch (encoding) { case "hex": return hexSlice(this, start, end); case "utf8": case "utf-8": return utf8Slice(this, start, end); case "ascii": return asciiSlice(this, start, end); case "latin1": case "binary": return latin1Slice(this, start, end); case "base64": return base64Slice(this, start, end); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return utf16leSlice(this, start, end); default: if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); encoding = (encoding + "").toLowerCase(); loweredCase = true; } } } // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) // to detect a Buffer instance. It's not possible to use `instanceof Buffer` // reliably in a browserify context because there could be multiple different // copies of the 'buffer' package in use. This method works even for Buffer // instances that were created from another copy of the `buffer` package. // See: https://github.com/feross/buffer/issues/154 Buffer.prototype._isBuffer = true; function swap(b, n, m) { var i = b[n]; b[n] = b[m]; b[m] = i; } Buffer.prototype.swap16 = function swap16() { var len = this.length; if (len % 2 !== 0) { throw new RangeError("Buffer size must be a multiple of 16-bits"); } for (var i = 0; i < len; i += 2) { swap(this, i, i + 1); } return this; }; Buffer.prototype.swap32 = function swap32() { var len = this.length; if (len % 4 !== 0) { throw new RangeError("Buffer size must be a multiple of 32-bits"); } for (var i = 0; i < len; i += 4) { swap(this, i, i + 3); swap(this, i + 1, i + 2); } return this; }; Buffer.prototype.swap64 = function swap64() { var len = this.length; if (len % 8 !== 0) { throw new RangeError("Buffer size must be a multiple of 64-bits"); } for (var i = 0; i < len; i += 8) { swap(this, i, i + 7); swap(this, i + 1, i + 6); swap(this, i + 2, i + 5); swap(this, i + 3, i + 4); } return this; }; Buffer.prototype.toString = function toString() { var length = this.length; if (length === 0) return ""; if (arguments.length === 0) return utf8Slice(this, 0, length); return slowToString.apply(this, arguments); }; Buffer.prototype.equals = function equals(b) { if (!Buffer.isBuffer(b)) throw new TypeError("Argument must be a Buffer"); if (this === b) return true; return Buffer.compare(this, b) === 0; }; Buffer.prototype.inspect = function inspect() { var str = ""; var max = exports.INSPECT_MAX_BYTES; if (this.length > 0) { str = this.toString("hex", 0, max).match(/.{2}/g).join(" "); if (this.length > max) str += " ... "; } return ""; }; Buffer.prototype.compare = function compare( target, start, end, thisStart, thisEnd ) { if (!Buffer.isBuffer(target)) { throw new TypeError("Argument must be a Buffer"); } if (start === undefined) { start = 0; } if (end === undefined) { end = target ? target.length : 0; } if (thisStart === undefined) { thisStart = 0; } if (thisEnd === undefined) { thisEnd = this.length; } if ( start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length ) { throw new RangeError("out of range index"); } if (thisStart >= thisEnd && start >= end) { return 0; } if (thisStart >= thisEnd) { return -1; } if (start >= end) { return 1; } start >>>= 0; end >>>= 0; thisStart >>>= 0; thisEnd >>>= 0; if (this === target) return 0; var x = thisEnd - thisStart; var y = end - start; var len = Math.min(x, y); var thisCopy = this.slice(thisStart, thisEnd); var targetCopy = target.slice(start, end); for (var i = 0; i < len; ++i) { if (thisCopy[i] !== targetCopy[i]) { x = thisCopy[i]; y = targetCopy[i]; break; } } if (x < y) return -1; if (y < x) return 1; return 0; }; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, // OR the last index of `val` in `buffer` at offset <= `byteOffset`. // // Arguments: // - buffer - a Buffer to search // - val - a string, Buffer, or number // - byteOffset - an index into `buffer`; will be clamped to an int32 // - encoding - an optional encoding, relevant is val is a string // - dir - true for indexOf, false for lastIndexOf function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { // Empty buffer means no match if (buffer.length === 0) return -1; // Normalize byteOffset if (typeof byteOffset === "string") { encoding = byteOffset; byteOffset = 0; } else if (byteOffset > 0x7fffffff) { byteOffset = 0x7fffffff; } else if (byteOffset < -0x80000000) { byteOffset = -0x80000000; } byteOffset = +byteOffset; // Coerce to Number. if (numberIsNaN(byteOffset)) { // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer byteOffset = dir ? 0 : buffer.length - 1; } // Normalize byteOffset: negative offsets start from the end of the buffer if (byteOffset < 0) byteOffset = buffer.length + byteOffset; if (byteOffset >= buffer.length) { if (dir) return -1; else byteOffset = buffer.length - 1; } else if (byteOffset < 0) { if (dir) byteOffset = 0; else return -1; } // Normalize val if (typeof val === "string") { val = Buffer.from(val, encoding); } // Finally, search either indexOf (if dir is true) or lastIndexOf if (Buffer.isBuffer(val)) { // Special case: looking for empty string/buffer always fails if (val.length === 0) { return -1; } return arrayIndexOf(buffer, val, byteOffset, encoding, dir); } else if (typeof val === "number") { val = val & 0xff; // Search for a byte value [0-255] if (typeof Uint8Array.prototype.indexOf === "function") { if (dir) { return Uint8Array.prototype.indexOf.call( buffer, val, byteOffset ); } else { return Uint8Array.prototype.lastIndexOf.call( buffer, val, byteOffset ); } } return arrayIndexOf(buffer, [val], byteOffset, encoding, dir); } throw new TypeError("val must be string, number or Buffer"); } function arrayIndexOf(arr, val, byteOffset, encoding, dir) { var indexSize = 1; var arrLength = arr.length; var valLength = val.length; if (encoding !== undefined) { encoding = String(encoding).toLowerCase(); if ( encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le" ) { if (arr.length < 2 || val.length < 2) { return -1; } indexSize = 2; arrLength /= 2; valLength /= 2; byteOffset /= 2; } } function read(buf, i) { if (indexSize === 1) { return buf[i]; } else { return buf.readUInt16BE(i * indexSize); } } var i; if (dir) { var foundIndex = -1; for (i = byteOffset; i < arrLength; i++) { if ( read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex) ) { if (foundIndex === -1) foundIndex = i; if (i - foundIndex + 1 === valLength) return foundIndex * indexSize; } else { if (foundIndex !== -1) i -= i - foundIndex; foundIndex = -1; } } } else { if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; for (i = byteOffset; i >= 0; i--) { var found = true; for (var j = 0; j < valLength; j++) { if (read(arr, i + j) !== read(val, j)) { found = false; break; } } if (found) return i; } } return -1; } Buffer.prototype.includes = function includes( val, byteOffset, encoding ) { return this.indexOf(val, byteOffset, encoding) !== -1; }; Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, true); }; Buffer.prototype.lastIndexOf = function lastIndexOf( val, byteOffset, encoding ) { return bidirectionalIndexOf(this, val, byteOffset, encoding, false); }; function hexWrite(buf, string, offset, length) { offset = Number(offset) || 0; var remaining = buf.length - offset; if (!length) { length = remaining; } else { length = Number(length); if (length > remaining) { length = remaining; } } // must be an even number of digits var strLen = string.length; if (strLen % 2 !== 0) throw new TypeError("Invalid hex string"); if (length > strLen / 2) { length = strLen / 2; } for (var i = 0; i < length; ++i) { var parsed = parseInt(string.substr(i * 2, 2), 16); if (numberIsNaN(parsed)) return i; buf[offset + i] = parsed; } return i; } function utf8Write(buf, string, offset, length) { return blitBuffer( utf8ToBytes(string, buf.length - offset), buf, offset, length ); } function asciiWrite(buf, string, offset, length) { return blitBuffer(asciiToBytes(string), buf, offset, length); } function latin1Write(buf, string, offset, length) { return asciiWrite(buf, string, offset, length); } function base64Write(buf, string, offset, length) { return blitBuffer(base64ToBytes(string), buf, offset, length); } function ucs2Write(buf, string, offset, length) { return blitBuffer( utf16leToBytes(string, buf.length - offset), buf, offset, length ); } Buffer.prototype.write = function write( string, offset, length, encoding ) { // Buffer#write(string) if (offset === undefined) { encoding = "utf8"; length = this.length; offset = 0; // Buffer#write(string, encoding) } else if (length === undefined && typeof offset === "string") { encoding = offset; length = this.length; offset = 0; // Buffer#write(string, offset[, length][, encoding]) } else if (isFinite(offset)) { offset = offset >>> 0; if (isFinite(length)) { length = length >>> 0; if (encoding === undefined) encoding = "utf8"; } else { encoding = length; length = undefined; } } else { throw new Error( "Buffer.write(string, encoding, offset[, length]) is no longer supported" ); } var remaining = this.length - offset; if (length === undefined || length > remaining) length = remaining; if ( (string.length > 0 && (length < 0 || offset < 0)) || offset > this.length ) { throw new RangeError("Attempt to write outside buffer bounds"); } if (!encoding) encoding = "utf8"; var loweredCase = false; for (;;) { switch (encoding) { case "hex": return hexWrite(this, string, offset, length); case "utf8": case "utf-8": return utf8Write(this, string, offset, length); case "ascii": return asciiWrite(this, string, offset, length); case "latin1": case "binary": return latin1Write(this, string, offset, length); case "base64": // Warning: maxLength not taken into account in base64Write return base64Write(this, string, offset, length); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return ucs2Write(this, string, offset, length); default: if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); encoding = ("" + encoding).toLowerCase(); loweredCase = true; } } }; Buffer.prototype.toJSON = function toJSON() { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0), }; }; function base64Slice(buf, start, end) { if (start === 0 && end === buf.length) { return base64.fromByteArray(buf); } else { return base64.fromByteArray(buf.slice(start, end)); } } function utf8Slice(buf, start, end) { end = Math.min(buf.length, end); var res = []; var i = start; while (i < end) { var firstByte = buf[i]; var codePoint = null; var bytesPerSequence = firstByte > 0xef ? 4 : firstByte > 0xdf ? 3 : firstByte > 0xbf ? 2 : 1; if (i + bytesPerSequence <= end) { var secondByte, thirdByte, fourthByte, tempCodePoint; switch (bytesPerSequence) { case 1: if (firstByte < 0x80) { codePoint = firstByte; } break; case 2: secondByte = buf[i + 1]; if ((secondByte & 0xc0) === 0x80) { tempCodePoint = ((firstByte & 0x1f) << 0x6) | (secondByte & 0x3f); if (tempCodePoint > 0x7f) { codePoint = tempCodePoint; } } break; case 3: secondByte = buf[i + 1]; thirdByte = buf[i + 2]; if ( (secondByte & 0xc0) === 0x80 && (thirdByte & 0xc0) === 0x80 ) { tempCodePoint = ((firstByte & 0xf) << 0xc) | ((secondByte & 0x3f) << 0x6) | (thirdByte & 0x3f); if ( tempCodePoint > 0x7ff && (tempCodePoint < 0xd800 || tempCodePoint > 0xdfff) ) { codePoint = tempCodePoint; } } break; case 4: secondByte = buf[i + 1]; thirdByte = buf[i + 2]; fourthByte = buf[i + 3]; if ( (secondByte & 0xc0) === 0x80 && (thirdByte & 0xc0) === 0x80 && (fourthByte & 0xc0) === 0x80 ) { tempCodePoint = ((firstByte & 0xf) << 0x12) | ((secondByte & 0x3f) << 0xc) | ((thirdByte & 0x3f) << 0x6) | (fourthByte & 0x3f); if (tempCodePoint > 0xffff && tempCodePoint < 0x110000) { codePoint = tempCodePoint; } } } } if (codePoint === null) { // we did not generate a valid codePoint so insert a // replacement char (U+FFFD) and advance only 1 byte codePoint = 0xfffd; bytesPerSequence = 1; } else if (codePoint > 0xffff) { // encode to utf16 (surrogate pair dance) codePoint -= 0x10000; res.push(((codePoint >>> 10) & 0x3ff) | 0xd800); codePoint = 0xdc00 | (codePoint & 0x3ff); } res.push(codePoint); i += bytesPerSequence; } return decodeCodePointsArray(res); } // Based on http://stackoverflow.com/a/22747272/680742, the browser with // the lowest limit is Chrome, with 0x10000 args. // We go 1 magnitude less, for safety var MAX_ARGUMENTS_LENGTH = 0x1000; function decodeCodePointsArray(codePoints) { var len = codePoints.length; if (len <= MAX_ARGUMENTS_LENGTH) { return String.fromCharCode.apply(String, codePoints); // avoid extra slice() } // Decode in chunks to avoid "call stack size exceeded". var res = ""; var i = 0; while (i < len) { res += String.fromCharCode.apply( String, codePoints.slice(i, (i += MAX_ARGUMENTS_LENGTH)) ); } return res; } function asciiSlice(buf, start, end) { var ret = ""; end = Math.min(buf.length, end); for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i] & 0x7f); } return ret; } function latin1Slice(buf, start, end) { var ret = ""; end = Math.min(buf.length, end); for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i]); } return ret; } function hexSlice(buf, start, end) { var len = buf.length; if (!start || start < 0) start = 0; if (!end || end < 0 || end > len) end = len; var out = ""; for (var i = start; i < end; ++i) { out += toHex(buf[i]); } return out; } function utf16leSlice(buf, start, end) { var bytes = buf.slice(start, end); var res = ""; for (var i = 0; i < bytes.length; i += 2) { res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); } return res; } Buffer.prototype.slice = function slice(start, end) { var len = this.length; start = ~~start; end = end === undefined ? len : ~~end; if (start < 0) { start += len; if (start < 0) start = 0; } else if (start > len) { start = len; } if (end < 0) { end += len; if (end < 0) end = 0; } else if (end > len) { end = len; } if (end < start) end = start; var newBuf = this.subarray(start, end); // Return an augmented `Uint8Array` instance newBuf.__proto__ = Buffer.prototype; return newBuf; }; /* * Need to make sure that buffer isn't trying to write out of bounds. */ function checkOffset(offset, ext, length) { if (offset % 1 !== 0 || offset < 0) throw new RangeError("offset is not uint"); if (offset + ext > length) throw new RangeError("Trying to access beyond buffer length"); } Buffer.prototype.readUIntLE = function readUIntLE( offset, byteLength, noAssert ) { offset = offset >>> 0; byteLength = byteLength >>> 0; if (!noAssert) checkOffset(offset, byteLength, this.length); var val = this[offset]; var mul = 1; var i = 0; while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul; } return val; }; Buffer.prototype.readUIntBE = function readUIntBE( offset, byteLength, noAssert ) { offset = offset >>> 0; byteLength = byteLength >>> 0; if (!noAssert) { checkOffset(offset, byteLength, this.length); } var val = this[offset + --byteLength]; var mul = 1; while (byteLength > 0 && (mul *= 0x100)) { val += this[offset + --byteLength] * mul; } return val; }; Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 1, this.length); return this[offset]; }; Buffer.prototype.readUInt16LE = function readUInt16LE( offset, noAssert ) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 2, this.length); return this[offset] | (this[offset + 1] << 8); }; Buffer.prototype.readUInt16BE = function readUInt16BE( offset, noAssert ) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 2, this.length); return (this[offset] << 8) | this[offset + 1]; }; Buffer.prototype.readUInt32LE = function readUInt32LE( offset, noAssert ) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 4, this.length); return ( (this[offset] | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + this[offset + 3] * 0x1000000 ); }; Buffer.prototype.readUInt32BE = function readUInt32BE( offset, noAssert ) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 4, this.length); return ( this[offset] * 0x1000000 + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]) ); }; Buffer.prototype.readIntLE = function readIntLE( offset, byteLength, noAssert ) { offset = offset >>> 0; byteLength = byteLength >>> 0; if (!noAssert) checkOffset(offset, byteLength, this.length); var val = this[offset]; var mul = 1; var i = 0; while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul; } mul *= 0x80; if (val >= mul) val -= Math.pow(2, 8 * byteLength); return val; }; Buffer.prototype.readIntBE = function readIntBE( offset, byteLength, noAssert ) { offset = offset >>> 0; byteLength = byteLength >>> 0; if (!noAssert) checkOffset(offset, byteLength, this.length); var i = byteLength; var mul = 1; var val = this[offset + --i]; while (i > 0 && (mul *= 0x100)) { val += this[offset + --i] * mul; } mul *= 0x80; if (val >= mul) val -= Math.pow(2, 8 * byteLength); return val; }; Buffer.prototype.readInt8 = function readInt8(offset, noAssert) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 1, this.length); if (!(this[offset] & 0x80)) return this[offset]; return (0xff - this[offset] + 1) * -1; }; Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 2, this.length); var val = this[offset] | (this[offset + 1] << 8); return val & 0x8000 ? val | 0xffff0000 : val; }; Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 2, this.length); var val = this[offset + 1] | (this[offset] << 8); return val & 0x8000 ? val | 0xffff0000 : val; }; Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 4, this.length); return ( this[offset] | (this[offset + 1] << 8) | (this[offset + 2] << 16) | (this[offset + 3] << 24) ); }; Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 4, this.length); return ( (this[offset] << 24) | (this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3] ); }; Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 4, this.length); return ieee754.read(this, offset, true, 23, 4); }; Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 4, this.length); return ieee754.read(this, offset, false, 23, 4); }; Buffer.prototype.readDoubleLE = function readDoubleLE( offset, noAssert ) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 8, this.length); return ieee754.read(this, offset, true, 52, 8); }; Buffer.prototype.readDoubleBE = function readDoubleBE( offset, noAssert ) { offset = offset >>> 0; if (!noAssert) checkOffset(offset, 8, this.length); return ieee754.read(this, offset, false, 52, 8); }; function checkInt(buf, value, offset, ext, max, min) { if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (value > max || value < min) throw new RangeError('"value" argument is out of bounds'); if (offset + ext > buf.length) throw new RangeError("Index out of range"); } Buffer.prototype.writeUIntLE = function writeUIntLE( value, offset, byteLength, noAssert ) { value = +value; offset = offset >>> 0; byteLength = byteLength >>> 0; if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1; checkInt(this, value, offset, byteLength, maxBytes, 0); } var mul = 1; var i = 0; this[offset] = value & 0xff; while (++i < byteLength && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xff; } return offset + byteLength; }; Buffer.prototype.writeUIntBE = function writeUIntBE( value, offset, byteLength, noAssert ) { value = +value; offset = offset >>> 0; byteLength = byteLength >>> 0; if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1; checkInt(this, value, offset, byteLength, maxBytes, 0); } var i = byteLength - 1; var mul = 1; this[offset + i] = value & 0xff; while (--i >= 0 && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xff; } return offset + byteLength; }; Buffer.prototype.writeUInt8 = function writeUInt8( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0); this[offset] = value & 0xff; return offset + 1; }; Buffer.prototype.writeUInt16LE = function writeUInt16LE( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); this[offset] = value & 0xff; this[offset + 1] = value >>> 8; return offset + 2; }; Buffer.prototype.writeUInt16BE = function writeUInt16BE( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); this[offset] = value >>> 8; this[offset + 1] = value & 0xff; return offset + 2; }; Buffer.prototype.writeUInt32LE = function writeUInt32LE( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); this[offset + 3] = value >>> 24; this[offset + 2] = value >>> 16; this[offset + 1] = value >>> 8; this[offset] = value & 0xff; return offset + 4; }; Buffer.prototype.writeUInt32BE = function writeUInt32BE( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); this[offset] = value >>> 24; this[offset + 1] = value >>> 16; this[offset + 2] = value >>> 8; this[offset + 3] = value & 0xff; return offset + 4; }; Buffer.prototype.writeIntLE = function writeIntLE( value, offset, byteLength, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) { var limit = Math.pow(2, 8 * byteLength - 1); checkInt(this, value, offset, byteLength, limit - 1, -limit); } var i = 0; var mul = 1; var sub = 0; this[offset] = value & 0xff; while (++i < byteLength && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { sub = 1; } this[offset + i] = (((value / mul) >> 0) - sub) & 0xff; } return offset + byteLength; }; Buffer.prototype.writeIntBE = function writeIntBE( value, offset, byteLength, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) { var limit = Math.pow(2, 8 * byteLength - 1); checkInt(this, value, offset, byteLength, limit - 1, -limit); } var i = byteLength - 1; var mul = 1; var sub = 0; this[offset + i] = value & 0xff; while (--i >= 0 && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { sub = 1; } this[offset + i] = (((value / mul) >> 0) - sub) & 0xff; } return offset + byteLength; }; Buffer.prototype.writeInt8 = function writeInt8( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80); if (value < 0) value = 0xff + value + 1; this[offset] = value & 0xff; return offset + 1; }; Buffer.prototype.writeInt16LE = function writeInt16LE( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); this[offset] = value & 0xff; this[offset + 1] = value >>> 8; return offset + 2; }; Buffer.prototype.writeInt16BE = function writeInt16BE( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); this[offset] = value >>> 8; this[offset + 1] = value & 0xff; return offset + 2; }; Buffer.prototype.writeInt32LE = function writeInt32LE( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); this[offset] = value & 0xff; this[offset + 1] = value >>> 8; this[offset + 2] = value >>> 16; this[offset + 3] = value >>> 24; return offset + 4; }; Buffer.prototype.writeInt32BE = function writeInt32BE( value, offset, noAssert ) { value = +value; offset = offset >>> 0; if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); if (value < 0) value = 0xffffffff + value + 1; this[offset] = value >>> 24; this[offset + 1] = value >>> 16; this[offset + 2] = value >>> 8; this[offset + 3] = value & 0xff; return offset + 4; }; function checkIEEE754(buf, value, offset, ext, max, min) { if (offset + ext > buf.length) throw new RangeError("Index out of range"); if (offset < 0) throw new RangeError("Index out of range"); } function writeFloat(buf, value, offset, littleEndian, noAssert) { value = +value; offset = offset >>> 0; if (!noAssert) { checkIEEE754( buf, value, offset, 4, 3.4028234663852886e38, -3.4028234663852886e38 ); } ieee754.write(buf, value, offset, littleEndian, 23, 4); return offset + 4; } Buffer.prototype.writeFloatLE = function writeFloatLE( value, offset, noAssert ) { return writeFloat(this, value, offset, true, noAssert); }; Buffer.prototype.writeFloatBE = function writeFloatBE( value, offset, noAssert ) { return writeFloat(this, value, offset, false, noAssert); }; function writeDouble(buf, value, offset, littleEndian, noAssert) { value = +value; offset = offset >>> 0; if (!noAssert) { checkIEEE754( buf, value, offset, 8, 1.7976931348623157e308, -1.7976931348623157e308 ); } ieee754.write(buf, value, offset, littleEndian, 52, 8); return offset + 8; } Buffer.prototype.writeDoubleLE = function writeDoubleLE( value, offset, noAssert ) { return writeDouble(this, value, offset, true, noAssert); }; Buffer.prototype.writeDoubleBE = function writeDoubleBE( value, offset, noAssert ) { return writeDouble(this, value, offset, false, noAssert); }; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) Buffer.prototype.copy = function copy(target, targetStart, start, end) { if (!start) start = 0; if (!end && end !== 0) end = this.length; if (targetStart >= target.length) targetStart = target.length; if (!targetStart) targetStart = 0; if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done if (end === start) return 0; if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions if (targetStart < 0) { throw new RangeError("targetStart out of bounds"); } if (start < 0 || start >= this.length) throw new RangeError("sourceStart out of bounds"); if (end < 0) throw new RangeError("sourceEnd out of bounds"); // Are we oob? if (end > this.length) end = this.length; if (target.length - targetStart < end - start) { end = target.length - targetStart + start; } var len = end - start; var i; if (this === target && start < targetStart && targetStart < end) { // descending copy from end for (i = len - 1; i >= 0; --i) { target[i + targetStart] = this[i + start]; } } else if (len < 1000) { // ascending copy from start for (i = 0; i < len; ++i) { target[i + targetStart] = this[i + start]; } } else { Uint8Array.prototype.set.call( target, this.subarray(start, start + len), targetStart ); } return len; }; // Usage: // buffer.fill(number[, offset[, end]]) // buffer.fill(buffer[, offset[, end]]) // buffer.fill(string[, offset[, end]][, encoding]) Buffer.prototype.fill = function fill(val, start, end, encoding) { // Handle string cases: if (typeof val === "string") { if (typeof start === "string") { encoding = start; start = 0; end = this.length; } else if (typeof end === "string") { encoding = end; end = this.length; } if (val.length === 1) { var code = val.charCodeAt(0); if (code < 256) { val = code; } } if (encoding !== undefined && typeof encoding !== "string") { throw new TypeError("encoding must be a string"); } if (typeof encoding === "string" && !Buffer.isEncoding(encoding)) { throw new TypeError("Unknown encoding: " + encoding); } } else if (typeof val === "number") { val = val & 255; } // Invalid ranges are not set to a default, so can range check early. if (start < 0 || this.length < start || this.length < end) { throw new RangeError("Out of range index"); } if (end <= start) { return this; } start = start >>> 0; end = end === undefined ? this.length : end >>> 0; if (!val) val = 0; var i; if (typeof val === "number") { for (i = start; i < end; ++i) { this[i] = val; } } else { var bytes = Buffer.isBuffer(val) ? val : new Buffer(val, encoding); var len = bytes.length; for (i = 0; i < end - start; ++i) { this[i + start] = bytes[i % len]; } } return this; }; // HELPER FUNCTIONS // ================ var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; function base64clean(str) { // Node strips out invalid characters like \n and \t from the string, base64-js does not str = str.trim().replace(INVALID_BASE64_RE, ""); // Node converts strings with length < 2 to '' if (str.length < 2) return ""; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not while (str.length % 4 !== 0) { str = str + "="; } return str; } function toHex(n) { if (n < 16) return "0" + n.toString(16); return n.toString(16); } function utf8ToBytes(string, units) { units = units || Infinity; var codePoint; var length = string.length; var leadSurrogate = null; var bytes = []; for (var i = 0; i < length; ++i) { codePoint = string.charCodeAt(i); // is surrogate component if (codePoint > 0xd7ff && codePoint < 0xe000) { // last char was a lead if (!leadSurrogate) { // no lead yet if (codePoint > 0xdbff) { // unexpected trail if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); continue; } else if (i + 1 === length) { // unpaired lead if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); continue; } // valid lead leadSurrogate = codePoint; continue; } // 2 leads in a row if (codePoint < 0xdc00) { if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); leadSurrogate = codePoint; continue; } // valid surrogate pair codePoint = (((leadSurrogate - 0xd800) << 10) | (codePoint - 0xdc00)) + 0x10000; } else if (leadSurrogate) { // valid bmp char, but last char was a lead if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); } leadSurrogate = null; // encode utf8 if (codePoint < 0x80) { if ((units -= 1) < 0) break; bytes.push(codePoint); } else if (codePoint < 0x800) { if ((units -= 2) < 0) break; bytes.push((codePoint >> 0x6) | 0xc0, (codePoint & 0x3f) | 0x80); } else if (codePoint < 0x10000) { if ((units -= 3) < 0) break; bytes.push( (codePoint >> 0xc) | 0xe0, ((codePoint >> 0x6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80 ); } else if (codePoint < 0x110000) { if ((units -= 4) < 0) break; bytes.push( (codePoint >> 0x12) | 0xf0, ((codePoint >> 0xc) & 0x3f) | 0x80, ((codePoint >> 0x6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80 ); } else { throw new Error("Invalid code point"); } } return bytes; } function asciiToBytes(str) { var byteArray = []; for (var i = 0; i < str.length; ++i) { // Node's code seems to be doing this and not & 0x7F.. byteArray.push(str.charCodeAt(i) & 0xff); } return byteArray; } function utf16leToBytes(str, units) { var c, hi, lo; var byteArray = []; for (var i = 0; i < str.length; ++i) { if ((units -= 2) < 0) break; c = str.charCodeAt(i); hi = c >> 8; lo = c % 256; byteArray.push(lo); byteArray.push(hi); } return byteArray; } function base64ToBytes(str) { return base64.toByteArray(base64clean(str)); } function blitBuffer(src, dst, offset, length) { for (var i = 0; i < length; ++i) { if (i + offset >= dst.length || i >= src.length) break; dst[i + offset] = src[i]; } return i; } // ArrayBuffers from another context (i.e. an iframe) do not pass the `instanceof` check // but they should be treated as valid. See: https://github.com/feross/buffer/issues/166 function isArrayBuffer(obj) { return ( obj instanceof ArrayBuffer || (obj != null && obj.constructor != null && obj.constructor.name === "ArrayBuffer" && typeof obj.byteLength === "number") ); } // Node 0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView` function isArrayBufferView(obj) { return ( typeof ArrayBuffer.isView === "function" && ArrayBuffer.isView(obj) ); } function numberIsNaN(obj) { return obj !== obj; // eslint-disable-line no-self-compare } }, { "base64-js": 24, ieee754: 106 }, ], 55: [ function (require, module, exports) { var Buffer = require("safe-buffer").Buffer; var Transform = require("stream").Transform; var StringDecoder = require("string_decoder").StringDecoder; var inherits = require("inherits"); function CipherBase(hashMode) { Transform.call(this); this.hashMode = typeof hashMode === "string"; if (this.hashMode) { this[hashMode] = this._finalOrDigest; } else { this.final = this._finalOrDigest; } if (this._final) { this.__final = this._final; this._final = null; } this._decoder = null; this._encoding = null; } inherits(CipherBase, Transform); CipherBase.prototype.update = function (data, inputEnc, outputEnc) { if (typeof data === "string") { data = Buffer.from(data, inputEnc); } var outData = this._update(data); if (this.hashMode) return this; if (outputEnc) { outData = this._toString(outData, outputEnc); } return outData; }; CipherBase.prototype.setAutoPadding = function () {}; CipherBase.prototype.getAuthTag = function () { throw new Error("trying to get auth tag in unsupported state"); }; CipherBase.prototype.setAuthTag = function () { throw new Error("trying to set auth tag in unsupported state"); }; CipherBase.prototype.setAAD = function () { throw new Error("trying to set aad in unsupported state"); }; CipherBase.prototype._transform = function (data, _, next) { var err; try { if (this.hashMode) { this._update(data); } else { this.push(this._update(data)); } } catch (e) { err = e; } finally { next(err); } }; CipherBase.prototype._flush = function (done) { var err; try { this.push(this.__final()); } catch (e) { err = e; } done(err); }; CipherBase.prototype._finalOrDigest = function (outputEnc) { var outData = this.__final() || Buffer.alloc(0); if (outputEnc) { outData = this._toString(outData, outputEnc, true); } return outData; }; CipherBase.prototype._toString = function (value, enc, fin) { if (!this._decoder) { this._decoder = new StringDecoder(enc); this._encoding = enc; } if (this._encoding !== enc) throw new Error("can't switch encodings"); var out = this._decoder.write(value); if (fin) { out += this._decoder.end(); } return out; }; module.exports = CipherBase; }, { inherits: 108, "safe-buffer": 148, stream: 157, string_decoder: 158 }, ], 56: [ function (require, module, exports) { (function (Buffer) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // NOTE: These type checking functions intentionally don't use `instanceof` // because it is fragile and can be easily faked with `Object.create()`. function isArray(arg) { if (Array.isArray) { return Array.isArray(arg); } return objectToString(arg) === "[object Array]"; } exports.isArray = isArray; function isBoolean(arg) { return typeof arg === "boolean"; } exports.isBoolean = isBoolean; function isNull(arg) { return arg === null; } exports.isNull = isNull; function isNullOrUndefined(arg) { return arg == null; } exports.isNullOrUndefined = isNullOrUndefined; function isNumber(arg) { return typeof arg === "number"; } exports.isNumber = isNumber; function isString(arg) { return typeof arg === "string"; } exports.isString = isString; function isSymbol(arg) { return typeof arg === "symbol"; } exports.isSymbol = isSymbol; function isUndefined(arg) { return arg === void 0; } exports.isUndefined = isUndefined; function isRegExp(re) { return objectToString(re) === "[object RegExp]"; } exports.isRegExp = isRegExp; function isObject(arg) { return typeof arg === "object" && arg !== null; } exports.isObject = isObject; function isDate(d) { return objectToString(d) === "[object Date]"; } exports.isDate = isDate; function isError(e) { return objectToString(e) === "[object Error]" || e instanceof Error; } exports.isError = isError; function isFunction(arg) { return typeof arg === "function"; } exports.isFunction = isFunction; function isPrimitive(arg) { return ( arg === null || typeof arg === "boolean" || typeof arg === "number" || typeof arg === "string" || typeof arg === "symbol" || // ES6 symbol typeof arg === "undefined" ); } exports.isPrimitive = isPrimitive; exports.isBuffer = Buffer.isBuffer; function objectToString(o) { return Object.prototype.toString.call(o); } }).call(this, { isBuffer: require("../../is-buffer/index.js") }); }, { "../../is-buffer/index.js": 109 }, ], 57: [ function (require, module, exports) { (function (Buffer) { var elliptic = require("elliptic"); var BN = require("bn.js"); module.exports = function createECDH(curve) { return new ECDH(curve); }; var aliases = { secp256k1: { name: "secp256k1", byteLength: 32, }, secp224r1: { name: "p224", byteLength: 28, }, prime256v1: { name: "p256", byteLength: 32, }, prime192v1: { name: "p192", byteLength: 24, }, ed25519: { name: "ed25519", byteLength: 32, }, secp384r1: { name: "p384", byteLength: 48, }, secp521r1: { name: "p521", byteLength: 66, }, }; aliases.p224 = aliases.secp224r1; aliases.p256 = aliases.secp256r1 = aliases.prime256v1; aliases.p192 = aliases.secp192r1 = aliases.prime192v1; aliases.p384 = aliases.secp384r1; aliases.p521 = aliases.secp521r1; function ECDH(curve) { this.curveType = aliases[curve]; if (!this.curveType) { this.curveType = { name: curve, }; } this.curve = new elliptic.ec(this.curveType.name); this.keys = void 0; } ECDH.prototype.generateKeys = function (enc, format) { this.keys = this.curve.genKeyPair(); return this.getPublicKey(enc, format); }; ECDH.prototype.computeSecret = function (other, inenc, enc) { inenc = inenc || "utf8"; if (!Buffer.isBuffer(other)) { other = new Buffer(other, inenc); } var otherPub = this.curve.keyFromPublic(other).getPublic(); var out = otherPub.mul(this.keys.getPrivate()).getX(); return formatReturnValue(out, enc, this.curveType.byteLength); }; ECDH.prototype.getPublicKey = function (enc, format) { var key = this.keys.getPublic(format === "compressed", true); if (format === "hybrid") { if (key[key.length - 1] % 2) { key[0] = 7; } else { key[0] = 6; } } return formatReturnValue(key, enc); }; ECDH.prototype.getPrivateKey = function (enc) { return formatReturnValue(this.keys.getPrivate(), enc); }; ECDH.prototype.setPublicKey = function (pub, enc) { enc = enc || "utf8"; if (!Buffer.isBuffer(pub)) { pub = new Buffer(pub, enc); } this.keys._importPublic(pub); return this; }; ECDH.prototype.setPrivateKey = function (priv, enc) { enc = enc || "utf8"; if (!Buffer.isBuffer(priv)) { priv = new Buffer(priv, enc); } var _priv = new BN(priv); _priv = _priv.toString(16); this.keys._importPrivate(_priv); return this; }; function formatReturnValue(bn, enc, len) { if (!Array.isArray(bn)) { bn = bn.toArray(); } var buf = new Buffer(bn); if (len && buf.length < len) { var zeros = new Buffer(len - buf.length); zeros.fill(0); buf = Buffer.concat([zeros, buf]); } if (!enc) { return buf; } else { return buf.toString(enc); } } }).call(this, require("buffer").Buffer); }, { "bn.js": 25, buffer: 54, elliptic: 74 }, ], 58: [ function (require, module, exports) { (function (Buffer) { "use strict"; var inherits = require("inherits"); var md5 = require("./md5.js"); var RIPEMD160 = require("ripemd160"); var sha = require("sha.js"); var Base = require("cipher-base"); function HashNoConstructor(hash) { Base.call(this, "digest"); this._hash = hash; this.buffers = []; } inherits(HashNoConstructor, Base); HashNoConstructor.prototype._update = function (data) { this.buffers.push(data); }; HashNoConstructor.prototype._final = function () { var buf = Buffer.concat(this.buffers); var r = this._hash(buf); this.buffers = null; return r; }; function Hash(hash) { Base.call(this, "digest"); this._hash = hash; } inherits(Hash, Base); Hash.prototype._update = function (data) { this._hash.update(data); }; Hash.prototype._final = function () { return this._hash.digest(); }; module.exports = function createHash(alg) { alg = alg.toLowerCase(); if (alg === "md5") return new HashNoConstructor(md5); if (alg === "rmd160" || alg === "ripemd160") return new Hash(new RIPEMD160()); return new Hash(sha(alg)); }; }).call(this, require("buffer").Buffer); }, { "./md5": 60, buffer: 54, "cipher-base": 55, inherits: 108, ripemd160: 147, "sha.js": 150, }, ], 59: [ function (require, module, exports) { (function (Buffer) { "use strict"; var intSize = 4; var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(0); var charSize = 8; var hashSize = 16; function toArray(buf) { if (buf.length % intSize !== 0) { var len = buf.length + (intSize - (buf.length % intSize)); buf = Buffer.concat([buf, zeroBuffer], len); } var arr = new Array(buf.length >>> 2); for (var i = 0, j = 0; i < buf.length; i += intSize, j++) { arr[j] = buf.readInt32LE(i); } return arr; } module.exports = function hash(buf, fn) { var arr = fn(toArray(buf), buf.length * charSize); buf = new Buffer(hashSize); for (var i = 0; i < arr.length; i++) { buf.writeInt32LE(arr[i], i << 2, true); } return buf; }; }).call(this, require("buffer").Buffer); }, { buffer: 54 }, ], 60: [ function (require, module, exports) { "use strict"; /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See http://pajhome.org.uk/crypt/md5 for more info. */ var makeHash = require("./make-hash.js"); /* * Calculate the MD5 of an array of little-endian words, and a bit length */ function core_md5(x, len) { /* append padding */ x[len >> 5] |= 0x80 << len % 32; x[(((len + 64) >>> 9) << 4) + 14] = len; var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; for (var i = 0; i < x.length; i += 16) { var olda = a; var oldb = b; var oldc = c; var oldd = d; a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936); d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586); c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819); b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330); a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897); d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426); c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341); b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983); a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416); d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417); c = md5_ff(c, d, a, b, x[i + 10], 17, -42063); b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162); a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682); d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101); c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290); b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329); a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510); d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632); c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713); b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302); a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691); d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083); c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335); b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848); a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438); d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690); c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961); b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501); a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467); d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784); c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473); b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734); a = md5_hh(a, b, c, d, x[i + 5], 4, -378558); d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463); c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562); b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556); a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060); d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353); c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632); b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640); a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174); d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222); c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979); b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189); a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487); d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835); c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520); b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651); a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844); d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415); c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905); b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055); a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571); d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606); c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523); b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799); a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359); d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744); c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380); b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649); a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070); d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379); c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259); b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551); a = safe_add(a, olda); b = safe_add(b, oldb); c = safe_add(c, oldc); d = safe_add(d, oldd); } return [a, b, c, d]; } /* * These functions implement the four basic operations the algorithm uses. */ function md5_cmn(q, a, b, x, s, t) { return safe_add( bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b ); } function md5_ff(a, b, c, d, x, s, t) { return md5_cmn((b & c) | (~b & d), a, b, x, s, t); } function md5_gg(a, b, c, d, x, s, t) { return md5_cmn((b & d) | (c & ~d), a, b, x, s, t); } function md5_hh(a, b, c, d, x, s, t) { return md5_cmn(b ^ c ^ d, a, b, x, s, t); } function md5_ii(a, b, c, d, x, s, t) { return md5_cmn(c ^ (b | ~d), a, b, x, s, t); } /* * Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */ function safe_add(x, y) { var lsw = (x & 0xffff) + (y & 0xffff); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xffff); } /* * Bitwise rotate a 32-bit number to the left. */ function bit_rol(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)); } module.exports = function md5(buf) { return makeHash(buf, core_md5); }; }, { "./make-hash": 59 }, ], 61: [ function (require, module, exports) { "use strict"; var inherits = require("inherits"); var Legacy = require("./legacy.js"); var Base = require("cipher-base"); var Buffer = require("safe-buffer").Buffer; var md5 = require("create-hash/md5"); var RIPEMD160 = require("ripemd160"); var sha = require("sha.js"); var ZEROS = Buffer.alloc(128); function Hmac(alg, key) { Base.call(this, "digest"); if (typeof key === "string") { key = Buffer.from(key); } var blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64; this._alg = alg; this._key = key; if (key.length > blocksize) { var hash = alg === "rmd160" ? new RIPEMD160() : sha(alg); key = hash.update(key).digest(); } else if (key.length < blocksize) { key = Buffer.concat([key, ZEROS], blocksize); } var ipad = (this._ipad = Buffer.allocUnsafe(blocksize)); var opad = (this._opad = Buffer.allocUnsafe(blocksize)); for (var i = 0; i < blocksize; i++) { ipad[i] = key[i] ^ 0x36; opad[i] = key[i] ^ 0x5c; } this._hash = alg === "rmd160" ? new RIPEMD160() : sha(alg); this._hash.update(ipad); } inherits(Hmac, Base); Hmac.prototype._update = function (data) { this._hash.update(data); }; Hmac.prototype._final = function () { var h = this._hash.digest(); var hash = this._alg === "rmd160" ? new RIPEMD160() : sha(this._alg); return hash.update(this._opad).update(h).digest(); }; module.exports = function createHmac(alg, key) { alg = alg.toLowerCase(); if (alg === "rmd160" || alg === "ripemd160") { return new Hmac("rmd160", key); } if (alg === "md5") { return new Legacy(md5, key); } return new Hmac(alg, key); }; }, { "./legacy": 62, "cipher-base": 55, "create-hash/md5": 60, inherits: 108, ripemd160: 147, "safe-buffer": 148, "sha.js": 150, }, ], 62: [ function (require, module, exports) { "use strict"; var inherits = require("inherits"); var Buffer = require("safe-buffer").Buffer; var Base = require("cipher-base"); var ZEROS = Buffer.alloc(128); var blocksize = 64; function Hmac(alg, key) { Base.call(this, "digest"); if (typeof key === "string") { key = Buffer.from(key); } this._alg = alg; this._key = key; if (key.length > blocksize) { key = alg(key); } else if (key.length < blocksize) { key = Buffer.concat([key, ZEROS], blocksize); } var ipad = (this._ipad = Buffer.allocUnsafe(blocksize)); var opad = (this._opad = Buffer.allocUnsafe(blocksize)); for (var i = 0; i < blocksize; i++) { ipad[i] = key[i] ^ 0x36; opad[i] = key[i] ^ 0x5c; } this._hash = [ipad]; } inherits(Hmac, Base); Hmac.prototype._update = function (data) { this._hash.push(data); }; Hmac.prototype._final = function () { var h = this._alg(Buffer.concat(this._hash)); return this._alg(Buffer.concat([this._opad, h])); }; module.exports = Hmac; }, { "cipher-base": 55, inherits: 108, "safe-buffer": 148 }, ], 63: [ function (require, module, exports) { "use strict"; exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require("randombytes"); exports.createHash = exports.Hash = require("create-hash"); exports.createHmac = exports.Hmac = require("create-hmac"); var algos = require("browserify-sign/algos"); var algoKeys = Object.keys(algos); var hashes = [ "sha1", "sha224", "sha256", "sha384", "sha512", "md5", "rmd160", ].concat(algoKeys); exports.getHashes = function () { return hashes; }; var p = require("pbkdf2"); exports.pbkdf2 = p.pbkdf2; exports.pbkdf2Sync = p.pbkdf2Sync; var aes = require("browserify-cipher"); exports.Cipher = aes.Cipher; exports.createCipher = aes.createCipher; exports.Cipheriv = aes.Cipheriv; exports.createCipheriv = aes.createCipheriv; exports.Decipher = aes.Decipher; exports.createDecipher = aes.createDecipher; exports.Decipheriv = aes.Decipheriv; exports.createDecipheriv = aes.createDecipheriv; exports.getCiphers = aes.getCiphers; exports.listCiphers = aes.listCiphers; var dh = require("diffie-hellman"); exports.DiffieHellmanGroup = dh.DiffieHellmanGroup; exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup; exports.getDiffieHellman = dh.getDiffieHellman; exports.createDiffieHellman = dh.createDiffieHellman; exports.DiffieHellman = dh.DiffieHellman; var sign = require("browserify-sign"); exports.createSign = sign.createSign; exports.Sign = sign.Sign; exports.createVerify = sign.createVerify; exports.Verify = sign.Verify; exports.createECDH = require("create-ecdh"); var publicEncrypt = require("public-encrypt"); exports.publicEncrypt = publicEncrypt.publicEncrypt; exports.privateEncrypt = publicEncrypt.privateEncrypt; exports.publicDecrypt = publicEncrypt.publicDecrypt; exports.privateDecrypt = publicEncrypt.privateDecrypt; // the least I can do is make error messages for the rest of the node.js/crypto api. // ;[ // 'createCredentials' // ].forEach(function (name) { // exports[name] = function () { // throw new Error([ // 'sorry, ' + name + ' is not implemented yet', // 'we accept pull requests', // 'https://github.com/crypto-browserify/crypto-browserify' // ].join('\n')) // } // }) exports.createCredentials = function () { throw new Error( [ "sorry, createCredentials is not implemented yet", "we accept pull requests", "https://github.com/crypto-browserify/crypto-browserify", ].join("\n") ); }; exports.constants = { DH_CHECK_P_NOT_SAFE_PRIME: 2, DH_CHECK_P_NOT_PRIME: 1, DH_UNABLE_TO_CHECK_GENERATOR: 4, DH_NOT_SUITABLE_GENERATOR: 8, NPN_ENABLED: 1, ALPN_ENABLED: 1, RSA_PKCS1_PADDING: 1, RSA_SSLV23_PADDING: 2, RSA_NO_PADDING: 3, RSA_PKCS1_OAEP_PADDING: 4, RSA_X931_PADDING: 5, RSA_PKCS1_PSS_PADDING: 6, POINT_CONVERSION_COMPRESSED: 2, POINT_CONVERSION_UNCOMPRESSED: 4, POINT_CONVERSION_HYBRID: 6, }; }, { "browserify-cipher": 43, "browserify-sign": 50, "browserify-sign/algos": 47, "create-ecdh": 57, "create-hash": 58, "create-hmac": 61, "diffie-hellman": 70, pbkdf2: 120, "public-encrypt": 127, randombytes: 133, }, ], 64: [ function (require, module, exports) { "use strict"; exports.utils = require("./des/utils.js"); exports.Cipher = require("./des/cipher.js"); exports.DES = require("./des/des.js"); exports.CBC = require("./des/cbc.js"); exports.EDE = require("./des/ede.js"); }, { "./des/cbc": 65, "./des/cipher": 66, "./des/des": 67, "./des/ede": 68, "./des/utils": 69, }, ], 65: [ function (require, module, exports) { "use strict"; var assert = require("minimalistic-assert"); var inherits = require("inherits"); var proto = {}; function CBCState(iv) { assert.equal(iv.length, 8, "Invalid IV length"); this.iv = new Array(8); for (var i = 0; i < this.iv.length; i++) this.iv[i] = iv[i]; } function instantiate(Base) { function CBC(options) { Base.call(this, options); this._cbcInit(); } inherits(CBC, Base); var keys = Object.keys(proto); for (var i = 0; i < keys.length; i++) { var key = keys[i]; CBC.prototype[key] = proto[key]; } CBC.create = function create(options) { return new CBC(options); }; return CBC; } exports.instantiate = instantiate; proto._cbcInit = function _cbcInit() { var state = new CBCState(this.options.iv); this._cbcState = state; }; proto._update = function _update(inp, inOff, out, outOff) { var state = this._cbcState; var superProto = this.constructor.super_.prototype; var iv = state.iv; if (this.type === "encrypt") { for (var i = 0; i < this.blockSize; i++) iv[i] ^= inp[inOff + i]; superProto._update.call(this, iv, 0, out, outOff); for (var i = 0; i < this.blockSize; i++) iv[i] = out[outOff + i]; } else { superProto._update.call(this, inp, inOff, out, outOff); for (var i = 0; i < this.blockSize; i++) out[outOff + i] ^= iv[i]; for (var i = 0; i < this.blockSize; i++) iv[i] = inp[inOff + i]; } }; }, { inherits: 108, "minimalistic-assert": 112 }, ], 66: [ function (require, module, exports) { "use strict"; var assert = require("minimalistic-assert"); function Cipher(options) { this.options = options; this.type = this.options.type; this.blockSize = 8; this._init(); this.buffer = new Array(this.blockSize); this.bufferOff = 0; } module.exports = Cipher; Cipher.prototype._init = function _init() { // Might be overrided }; Cipher.prototype.update = function update(data) { if (data.length === 0) return []; if (this.type === "decrypt") return this._updateDecrypt(data); else return this._updateEncrypt(data); }; Cipher.prototype._buffer = function _buffer(data, off) { // Append data to buffer var min = Math.min( this.buffer.length - this.bufferOff, data.length - off ); for (var i = 0; i < min; i++) this.buffer[this.bufferOff + i] = data[off + i]; this.bufferOff += min; // Shift next return min; }; Cipher.prototype._flushBuffer = function _flushBuffer(out, off) { this._update(this.buffer, 0, out, off); this.bufferOff = 0; return this.blockSize; }; Cipher.prototype._updateEncrypt = function _updateEncrypt(data) { var inputOff = 0; var outputOff = 0; var count = ((this.bufferOff + data.length) / this.blockSize) | 0; var out = new Array(count * this.blockSize); if (this.bufferOff !== 0) { inputOff += this._buffer(data, inputOff); if (this.bufferOff === this.buffer.length) outputOff += this._flushBuffer(out, outputOff); } // Write blocks var max = data.length - ((data.length - inputOff) % this.blockSize); for (; inputOff < max; inputOff += this.blockSize) { this._update(data, inputOff, out, outputOff); outputOff += this.blockSize; } // Queue rest for (; inputOff < data.length; inputOff++, this.bufferOff++) this.buffer[this.bufferOff] = data[inputOff]; return out; }; Cipher.prototype._updateDecrypt = function _updateDecrypt(data) { var inputOff = 0; var outputOff = 0; var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1; var out = new Array(count * this.blockSize); // TODO(indutny): optimize it, this is far from optimal for (; count > 0; count--) { inputOff += this._buffer(data, inputOff); outputOff += this._flushBuffer(out, outputOff); } // Buffer rest of the input inputOff += this._buffer(data, inputOff); return out; }; Cipher.prototype.final = function final(buffer) { var first; if (buffer) first = this.update(buffer); var last; if (this.type === "encrypt") last = this._finalEncrypt(); else last = this._finalDecrypt(); if (first) return first.concat(last); else return last; }; Cipher.prototype._pad = function _pad(buffer, off) { if (off === 0) return false; while (off < buffer.length) buffer[off++] = 0; return true; }; Cipher.prototype._finalEncrypt = function _finalEncrypt() { if (!this._pad(this.buffer, this.bufferOff)) return []; var out = new Array(this.blockSize); this._update(this.buffer, 0, out, 0); return out; }; Cipher.prototype._unpad = function _unpad(buffer) { return buffer; }; Cipher.prototype._finalDecrypt = function _finalDecrypt() { assert.equal( this.bufferOff, this.blockSize, "Not enough data to decrypt" ); var out = new Array(this.blockSize); this._flushBuffer(out, 0); return this._unpad(out); }; }, { "minimalistic-assert": 112 }, ], 67: [ function (require, module, exports) { "use strict"; var assert = require("minimalistic-assert"); var inherits = require("inherits"); var des = require("../des.js"); var utils = des.utils; var Cipher = des.Cipher; function DESState() { this.tmp = new Array(2); this.keys = null; } function DES(options) { Cipher.call(this, options); var state = new DESState(); this._desState = state; this.deriveKeys(state, options.key); } inherits(DES, Cipher); module.exports = DES; DES.create = function create(options) { return new DES(options); }; var shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1]; DES.prototype.deriveKeys = function deriveKeys(state, key) { state.keys = new Array(16 * 2); assert.equal(key.length, this.blockSize, "Invalid key length"); var kL = utils.readUInt32BE(key, 0); var kR = utils.readUInt32BE(key, 4); utils.pc1(kL, kR, state.tmp, 0); kL = state.tmp[0]; kR = state.tmp[1]; for (var i = 0; i < state.keys.length; i += 2) { var shift = shiftTable[i >>> 1]; kL = utils.r28shl(kL, shift); kR = utils.r28shl(kR, shift); utils.pc2(kL, kR, state.keys, i); } }; DES.prototype._update = function _update(inp, inOff, out, outOff) { var state = this._desState; var l = utils.readUInt32BE(inp, inOff); var r = utils.readUInt32BE(inp, inOff + 4); // Initial Permutation utils.ip(l, r, state.tmp, 0); l = state.tmp[0]; r = state.tmp[1]; if (this.type === "encrypt") this._encrypt(state, l, r, state.tmp, 0); else this._decrypt(state, l, r, state.tmp, 0); l = state.tmp[0]; r = state.tmp[1]; utils.writeUInt32BE(out, l, outOff); utils.writeUInt32BE(out, r, outOff + 4); }; DES.prototype._pad = function _pad(buffer, off) { var value = buffer.length - off; for (var i = off; i < buffer.length; i++) buffer[i] = value; return true; }; DES.prototype._unpad = function _unpad(buffer) { var pad = buffer[buffer.length - 1]; for (var i = buffer.length - pad; i < buffer.length; i++) assert.equal(buffer[i], pad); return buffer.slice(0, buffer.length - pad); }; DES.prototype._encrypt = function _encrypt( state, lStart, rStart, out, off ) { var l = lStart; var r = rStart; // Apply f() x16 times for (var i = 0; i < state.keys.length; i += 2) { var keyL = state.keys[i]; var keyR = state.keys[i + 1]; // f(r, k) utils.expand(r, state.tmp, 0); keyL ^= state.tmp[0]; keyR ^= state.tmp[1]; var s = utils.substitute(keyL, keyR); var f = utils.permute(s); var t = r; r = (l ^ f) >>> 0; l = t; } // Reverse Initial Permutation utils.rip(r, l, out, off); }; DES.prototype._decrypt = function _decrypt( state, lStart, rStart, out, off ) { var l = rStart; var r = lStart; // Apply f() x16 times for (var i = state.keys.length - 2; i >= 0; i -= 2) { var keyL = state.keys[i]; var keyR = state.keys[i + 1]; // f(r, k) utils.expand(l, state.tmp, 0); keyL ^= state.tmp[0]; keyR ^= state.tmp[1]; var s = utils.substitute(keyL, keyR); var f = utils.permute(s); var t = l; l = (r ^ f) >>> 0; r = t; } // Reverse Initial Permutation utils.rip(l, r, out, off); }; }, { "../des": 64, inherits: 108, "minimalistic-assert": 112 }, ], 68: [ function (require, module, exports) { "use strict"; var assert = require("minimalistic-assert"); var inherits = require("inherits"); var des = require("../des.js"); var Cipher = des.Cipher; var DES = des.DES; function EDEState(type, key) { assert.equal(key.length, 24, "Invalid key length"); var k1 = key.slice(0, 8); var k2 = key.slice(8, 16); var k3 = key.slice(16, 24); if (type === "encrypt") { this.ciphers = [ DES.create({ type: "encrypt", key: k1 }), DES.create({ type: "decrypt", key: k2 }), DES.create({ type: "encrypt", key: k3 }), ]; } else { this.ciphers = [ DES.create({ type: "decrypt", key: k3 }), DES.create({ type: "encrypt", key: k2 }), DES.create({ type: "decrypt", key: k1 }), ]; } } function EDE(options) { Cipher.call(this, options); var state = new EDEState(this.type, this.options.key); this._edeState = state; } inherits(EDE, Cipher); module.exports = EDE; EDE.create = function create(options) { return new EDE(options); }; EDE.prototype._update = function _update(inp, inOff, out, outOff) { var state = this._edeState; state.ciphers[0]._update(inp, inOff, out, outOff); state.ciphers[1]._update(out, outOff, out, outOff); state.ciphers[2]._update(out, outOff, out, outOff); }; EDE.prototype._pad = DES.prototype._pad; EDE.prototype._unpad = DES.prototype._unpad; }, { "../des": 64, inherits: 108, "minimalistic-assert": 112 }, ], 69: [ function (require, module, exports) { "use strict"; exports.readUInt32BE = function readUInt32BE(bytes, off) { var res = (bytes[0 + off] << 24) | (bytes[1 + off] << 16) | (bytes[2 + off] << 8) | bytes[3 + off]; return res >>> 0; }; exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) { bytes[0 + off] = value >>> 24; bytes[1 + off] = (value >>> 16) & 0xff; bytes[2 + off] = (value >>> 8) & 0xff; bytes[3 + off] = value & 0xff; }; exports.ip = function ip(inL, inR, out, off) { var outL = 0; var outR = 0; for (var i = 6; i >= 0; i -= 2) { for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inR >>> (j + i)) & 1; } for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inL >>> (j + i)) & 1; } } for (var i = 6; i >= 0; i -= 2) { for (var j = 1; j <= 25; j += 8) { outR <<= 1; outR |= (inR >>> (j + i)) & 1; } for (var j = 1; j <= 25; j += 8) { outR <<= 1; outR |= (inL >>> (j + i)) & 1; } } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.rip = function rip(inL, inR, out, off) { var outL = 0; var outR = 0; for (var i = 0; i < 4; i++) { for (var j = 24; j >= 0; j -= 8) { outL <<= 1; outL |= (inR >>> (j + i)) & 1; outL <<= 1; outL |= (inL >>> (j + i)) & 1; } } for (var i = 4; i < 8; i++) { for (var j = 24; j >= 0; j -= 8) { outR <<= 1; outR |= (inR >>> (j + i)) & 1; outR <<= 1; outR |= (inL >>> (j + i)) & 1; } } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.pc1 = function pc1(inL, inR, out, off) { var outL = 0; var outR = 0; // 7, 15, 23, 31, 39, 47, 55, 63 // 6, 14, 22, 30, 39, 47, 55, 63 // 5, 13, 21, 29, 39, 47, 55, 63 // 4, 12, 20, 28 for (var i = 7; i >= 5; i--) { for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inR >> (j + i)) & 1; } for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inL >> (j + i)) & 1; } } for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inR >> (j + i)) & 1; } // 1, 9, 17, 25, 33, 41, 49, 57 // 2, 10, 18, 26, 34, 42, 50, 58 // 3, 11, 19, 27, 35, 43, 51, 59 // 36, 44, 52, 60 for (var i = 1; i <= 3; i++) { for (var j = 0; j <= 24; j += 8) { outR <<= 1; outR |= (inR >> (j + i)) & 1; } for (var j = 0; j <= 24; j += 8) { outR <<= 1; outR |= (inL >> (j + i)) & 1; } } for (var j = 0; j <= 24; j += 8) { outR <<= 1; outR |= (inL >> (j + i)) & 1; } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.r28shl = function r28shl(num, shift) { return ((num << shift) & 0xfffffff) | (num >>> (28 - shift)); }; var pc2table = [ // inL => outL 14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, // inR => outR 15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24, ]; exports.pc2 = function pc2(inL, inR, out, off) { var outL = 0; var outR = 0; var len = pc2table.length >>> 1; for (var i = 0; i < len; i++) { outL <<= 1; outL |= (inL >>> pc2table[i]) & 0x1; } for (var i = len; i < pc2table.length; i++) { outR <<= 1; outR |= (inR >>> pc2table[i]) & 0x1; } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.expand = function expand(r, out, off) { var outL = 0; var outR = 0; outL = ((r & 1) << 5) | (r >>> 27); for (var i = 23; i >= 15; i -= 4) { outL <<= 6; outL |= (r >>> i) & 0x3f; } for (var i = 11; i >= 3; i -= 4) { outR |= (r >>> i) & 0x3f; outR <<= 6; } outR |= ((r & 0x1f) << 1) | (r >>> 31); out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; var sTable = [ 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11, ]; exports.substitute = function substitute(inL, inR) { var out = 0; for (var i = 0; i < 4; i++) { var b = (inL >>> (18 - i * 6)) & 0x3f; var sb = sTable[i * 0x40 + b]; out <<= 4; out |= sb; } for (var i = 0; i < 4; i++) { var b = (inR >>> (18 - i * 6)) & 0x3f; var sb = sTable[4 * 0x40 + i * 0x40 + b]; out <<= 4; out |= sb; } return out >>> 0; }; var permuteTable = [ 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7, ]; exports.permute = function permute(num) { var out = 0; for (var i = 0; i < permuteTable.length; i++) { out <<= 1; out |= (num >>> permuteTable[i]) & 0x1; } return out >>> 0; }; exports.padSplit = function padSplit(num, size, group) { var str = num.toString(2); while (str.length < size) str = "0" + str; var out = []; for (var i = 0; i < size; i += group) out.push(str.slice(i, i + group)); return out.join(" "); }; }, {}, ], 70: [ function (require, module, exports) { (function (Buffer) { var generatePrime = require("./lib/generatePrime.js"); var primes = require("./lib/primes.json"); var DH = require("./lib/dh.js"); function getDiffieHellman(mod) { var prime = new Buffer(primes[mod].prime, "hex"); var gen = new Buffer(primes[mod].gen, "hex"); return new DH(prime, gen); } var ENCODINGS = { binary: true, hex: true, base64: true, }; function createDiffieHellman(prime, enc, generator, genc) { if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) { return createDiffieHellman(prime, "binary", enc, generator); } enc = enc || "binary"; genc = genc || "binary"; generator = generator || new Buffer([2]); if (!Buffer.isBuffer(generator)) { generator = new Buffer(generator, genc); } if (typeof prime === "number") { return new DH(generatePrime(prime, generator), generator, true); } if (!Buffer.isBuffer(prime)) { prime = new Buffer(prime, enc); } return new DH(prime, generator, true); } exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman; exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman; }).call(this, require("buffer").Buffer); }, { "./lib/dh": 71, "./lib/generatePrime": 72, "./lib/primes.json": 73, buffer: 54, }, ], 71: [ function (require, module, exports) { (function (Buffer) { var BN = require("bn.js"); var MillerRabin = require("miller-rabin"); var millerRabin = new MillerRabin(); var TWENTYFOUR = new BN(24); var ELEVEN = new BN(11); var TEN = new BN(10); var THREE = new BN(3); var SEVEN = new BN(7); var primes = require("./generatePrime.js"); var randomBytes = require("randombytes"); module.exports = DH; function setPublicKey(pub, enc) { enc = enc || "utf8"; if (!Buffer.isBuffer(pub)) { pub = new Buffer(pub, enc); } this._pub = new BN(pub); return this; } function setPrivateKey(priv, enc) { enc = enc || "utf8"; if (!Buffer.isBuffer(priv)) { priv = new Buffer(priv, enc); } this._priv = new BN(priv); return this; } var primeCache = {}; function checkPrime(prime, generator) { var gen = generator.toString("hex"); var hex = [gen, prime.toString(16)].join("_"); if (hex in primeCache) { return primeCache[hex]; } var error = 0; if ( prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime) ) { //not a prime so +1 error += 1; if (gen === "02" || gen === "05") { // we'd be able to check the generator // it would fail so +8 error += 8; } else { //we wouldn't be able to test the generator // so +4 error += 4; } primeCache[hex] = error; return error; } if (!millerRabin.test(prime.shrn(1))) { //not a safe prime error += 2; } var rem; switch (gen) { case "02": if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) { // unsuidable generator error += 8; } break; case "05": rem = prime.mod(TEN); if (rem.cmp(THREE) && rem.cmp(SEVEN)) { // prime mod 10 needs to equal 3 or 7 error += 8; } break; default: error += 4; } primeCache[hex] = error; return error; } function DH(prime, generator, malleable) { this.setGenerator(generator); this.__prime = new BN(prime); this._prime = BN.mont(this.__prime); this._primeLen = prime.length; this._pub = undefined; this._priv = undefined; this._primeCode = undefined; if (malleable) { this.setPublicKey = setPublicKey; this.setPrivateKey = setPrivateKey; } else { this._primeCode = 8; } } Object.defineProperty(DH.prototype, "verifyError", { enumerable: true, get: function () { if (typeof this._primeCode !== "number") { this._primeCode = checkPrime(this.__prime, this.__gen); } return this._primeCode; }, }); DH.prototype.generateKeys = function () { if (!this._priv) { this._priv = new BN(randomBytes(this._primeLen)); } this._pub = this._gen .toRed(this._prime) .redPow(this._priv) .fromRed(); return this.getPublicKey(); }; DH.prototype.computeSecret = function (other) { other = new BN(other); other = other.toRed(this._prime); var secret = other.redPow(this._priv).fromRed(); var out = new Buffer(secret.toArray()); var prime = this.getPrime(); if (out.length < prime.length) { var front = new Buffer(prime.length - out.length); front.fill(0); out = Buffer.concat([front, out]); } return out; }; DH.prototype.getPublicKey = function getPublicKey(enc) { return formatReturnValue(this._pub, enc); }; DH.prototype.getPrivateKey = function getPrivateKey(enc) { return formatReturnValue(this._priv, enc); }; DH.prototype.getPrime = function (enc) { return formatReturnValue(this.__prime, enc); }; DH.prototype.getGenerator = function (enc) { return formatReturnValue(this._gen, enc); }; DH.prototype.setGenerator = function (gen, enc) { enc = enc || "utf8"; if (!Buffer.isBuffer(gen)) { gen = new Buffer(gen, enc); } this.__gen = gen; this._gen = new BN(gen); return this; }; function formatReturnValue(bn, enc) { var buf = new Buffer(bn.toArray()); if (!enc) { return buf; } else { return buf.toString(enc); } } }).call(this, require("buffer").Buffer); }, { "./generatePrime": 72, "bn.js": 25, buffer: 54, "miller-rabin": 111, randombytes: 133, }, ], 72: [ function (require, module, exports) { var randomBytes = require("randombytes"); module.exports = findPrime; findPrime.simpleSieve = simpleSieve; findPrime.fermatTest = fermatTest; var BN = require("bn.js"); var TWENTYFOUR = new BN(24); var MillerRabin = require("miller-rabin"); var millerRabin = new MillerRabin(); var ONE = new BN(1); var TWO = new BN(2); var FIVE = new BN(5); var SIXTEEN = new BN(16); var EIGHT = new BN(8); var TEN = new BN(10); var THREE = new BN(3); var SEVEN = new BN(7); var ELEVEN = new BN(11); var FOUR = new BN(4); var TWELVE = new BN(12); var primes = null; function _getPrimes() { if (primes !== null) return primes; var limit = 0x100000; var res = []; res[0] = 2; for (var i = 1, k = 3; k < limit; k += 2) { var sqrt = Math.ceil(Math.sqrt(k)); for (var j = 0; j < i && res[j] <= sqrt; j++) if (k % res[j] === 0) break; if (i !== j && res[j] <= sqrt) continue; res[i++] = k; } primes = res; return res; } function simpleSieve(p) { var primes = _getPrimes(); for (var i = 0; i < primes.length; i++) if (p.modn(primes[i]) === 0) { if (p.cmpn(primes[i]) === 0) { return true; } else { return false; } } return true; } function fermatTest(p) { var red = BN.mont(p); return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0; } function findPrime(bits, gen) { if (bits < 16) { // this is what openssl does if (gen === 2 || gen === 5) { return new BN([0x8c, 0x7b]); } else { return new BN([0x8c, 0x27]); } } gen = new BN(gen); var num, n2; while (true) { num = new BN(randomBytes(Math.ceil(bits / 8))); while (num.bitLength() > bits) { num.ishrn(1); } if (num.isEven()) { num.iadd(ONE); } if (!num.testn(1)) { num.iadd(TWO); } if (!gen.cmp(TWO)) { while (num.mod(TWENTYFOUR).cmp(ELEVEN)) { num.iadd(FOUR); } } else if (!gen.cmp(FIVE)) { while (num.mod(TEN).cmp(THREE)) { num.iadd(FOUR); } } n2 = num.shrn(1); if ( simpleSieve(n2) && simpleSieve(num) && fermatTest(n2) && fermatTest(num) && millerRabin.test(n2) && millerRabin.test(num) ) { return num; } } } }, { "bn.js": 25, "miller-rabin": 111, randombytes: 133 }, ], 73: [ function (require, module, exports) { module.exports = { modp1: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff", }, modp2: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff", }, modp5: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff", }, modp14: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff", }, modp15: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff", }, modp16: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff", }, modp17: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff", }, modp18: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff", }, }; }, {}, ], 74: [ function (require, module, exports) { "use strict"; var elliptic = exports; elliptic.version = require("../package.json").version; elliptic.utils = require("./elliptic/utils.js"); elliptic.rand = require("brorand"); elliptic.curve = require("./elliptic/curve.js"); elliptic.curves = require("./elliptic/curves.js"); // Protocols elliptic.ec = require("./elliptic/ec.js"); elliptic.eddsa = require("./elliptic/eddsa.js"); }, { "../package.json": 89, "./elliptic/curve": 77, "./elliptic/curves": 80, "./elliptic/ec": 81, "./elliptic/eddsa": 84, "./elliptic/utils": 88, brorand: 26, }, ], 75: [ function (require, module, exports) { "use strict"; var BN = require("bn.js"); var elliptic = require("../../elliptic.js"); var utils = elliptic.utils; var getNAF = utils.getNAF; var getJSF = utils.getJSF; var assert = utils.assert; function BaseCurve(type, conf) { this.type = type; this.p = new BN(conf.p, 16); // Use Montgomery, when there is no fast reduction for the prime this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); // Useful for many curves this.zero = new BN(0).toRed(this.red); this.one = new BN(1).toRed(this.red); this.two = new BN(2).toRed(this.red); // Curve configuration, optional this.n = conf.n && new BN(conf.n, 16); this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); // Temporary arrays this._wnafT1 = new Array(4); this._wnafT2 = new Array(4); this._wnafT3 = new Array(4); this._wnafT4 = new Array(4); // Generalized Greg Maxwell's trick var adjustCount = this.n && this.p.div(this.n); if (!adjustCount || adjustCount.cmpn(100) > 0) { this.redN = null; } else { this._maxwellTrick = true; this.redN = this.n.toRed(this.red); } } module.exports = BaseCurve; BaseCurve.prototype.point = function point() { throw new Error("Not implemented"); }; BaseCurve.prototype.validate = function validate() { throw new Error("Not implemented"); }; BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) { assert(p.precomputed); var doubles = p._getDoubles(); var naf = getNAF(k, 1); var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1); I /= 3; // Translate into more windowed form var repr = []; for (var j = 0; j < naf.length; j += doubles.step) { var nafW = 0; for (var k = j + doubles.step - 1; k >= j; k--) nafW = (nafW << 1) + naf[k]; repr.push(nafW); } var a = this.jpoint(null, null, null); var b = this.jpoint(null, null, null); for (var i = I; i > 0; i--) { for (var j = 0; j < repr.length; j++) { var nafW = repr[j]; if (nafW === i) b = b.mixedAdd(doubles.points[j]); else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg()); } a = a.add(b); } return a.toP(); }; BaseCurve.prototype._wnafMul = function _wnafMul(p, k) { var w = 4; // Precompute window var nafPoints = p._getNAFPoints(w); w = nafPoints.wnd; var wnd = nafPoints.points; // Get NAF form var naf = getNAF(k, w); // Add `this`*(N+1) for every w-NAF index var acc = this.jpoint(null, null, null); for (var i = naf.length - 1; i >= 0; i--) { // Count zeroes for (var k = 0; i >= 0 && naf[i] === 0; i--) k++; if (i >= 0) k++; acc = acc.dblp(k); if (i < 0) break; var z = naf[i]; assert(z !== 0); if (p.type === "affine") { // J +- P if (z > 0) acc = acc.mixedAdd(wnd[(z - 1) >> 1]); else acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg()); } else { // J +- J if (z > 0) acc = acc.add(wnd[(z - 1) >> 1]); else acc = acc.add(wnd[(-z - 1) >> 1].neg()); } } return p.type === "affine" ? acc.toP() : acc; }; BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd( defW, points, coeffs, len, jacobianResult ) { var wndWidth = this._wnafT1; var wnd = this._wnafT2; var naf = this._wnafT3; // Fill all arrays var max = 0; for (var i = 0; i < len; i++) { var p = points[i]; var nafPoints = p._getNAFPoints(defW); wndWidth[i] = nafPoints.wnd; wnd[i] = nafPoints.points; } // Comb small window NAFs for (var i = len - 1; i >= 1; i -= 2) { var a = i - 1; var b = i; if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { naf[a] = getNAF(coeffs[a], wndWidth[a]); naf[b] = getNAF(coeffs[b], wndWidth[b]); max = Math.max(naf[a].length, max); max = Math.max(naf[b].length, max); continue; } var comb = [ points[a] /* 1 */, null /* 3 */, null /* 5 */, points[b] /* 7 */, ]; // Try to avoid Projective points, if possible if (points[a].y.cmp(points[b].y) === 0) { comb[1] = points[a].add(points[b]); comb[2] = points[a].toJ().mixedAdd(points[b].neg()); } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { comb[1] = points[a].toJ().mixedAdd(points[b]); comb[2] = points[a].add(points[b].neg()); } else { comb[1] = points[a].toJ().mixedAdd(points[b]); comb[2] = points[a].toJ().mixedAdd(points[b].neg()); } var index = [ -3 /* -1 -1 */, -1 /* -1 0 */, -5 /* -1 1 */, -7 /* 0 -1 */, 0 /* 0 0 */, 7 /* 0 1 */, 5 /* 1 -1 */, 1 /* 1 0 */, 3 /* 1 1 */, ]; var jsf = getJSF(coeffs[a], coeffs[b]); max = Math.max(jsf[0].length, max); naf[a] = new Array(max); naf[b] = new Array(max); for (var j = 0; j < max; j++) { var ja = jsf[0][j] | 0; var jb = jsf[1][j] | 0; naf[a][j] = index[(ja + 1) * 3 + (jb + 1)]; naf[b][j] = 0; wnd[a] = comb; } } var acc = this.jpoint(null, null, null); var tmp = this._wnafT4; for (var i = max; i >= 0; i--) { var k = 0; while (i >= 0) { var zero = true; for (var j = 0; j < len; j++) { tmp[j] = naf[j][i] | 0; if (tmp[j] !== 0) zero = false; } if (!zero) break; k++; i--; } if (i >= 0) k++; acc = acc.dblp(k); if (i < 0) break; for (var j = 0; j < len; j++) { var z = tmp[j]; var p; if (z === 0) continue; else if (z > 0) p = wnd[j][(z - 1) >> 1]; else if (z < 0) p = wnd[j][(-z - 1) >> 1].neg(); if (p.type === "affine") acc = acc.mixedAdd(p); else acc = acc.add(p); } } // Zeroify references for (var i = 0; i < len; i++) wnd[i] = null; if (jacobianResult) return acc; else return acc.toP(); }; function BasePoint(curve, type) { this.curve = curve; this.type = type; this.precomputed = null; } BaseCurve.BasePoint = BasePoint; BasePoint.prototype.eq = function eq(/*other*/) { throw new Error("Not implemented"); }; BasePoint.prototype.validate = function validate() { return this.curve.validate(this); }; BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { bytes = utils.toArray(bytes, enc); var len = this.p.byteLength(); // uncompressed, hybrid-odd, hybrid-even if ( (bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && bytes.length - 1 === 2 * len ) { if (bytes[0] === 0x06) assert(bytes[bytes.length - 1] % 2 === 0); else if (bytes[0] === 0x07) assert(bytes[bytes.length - 1] % 2 === 1); var res = this.point( bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len) ); return res; } else if ( (bytes[0] === 0x02 || bytes[0] === 0x03) && bytes.length - 1 === len ) { return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03); } throw new Error("Unknown point format"); }; BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { return this.encode(enc, true); }; BasePoint.prototype._encode = function _encode(compact) { var len = this.curve.p.byteLength(); var x = this.getX().toArray("be", len); if (compact) return [this.getY().isEven() ? 0x02 : 0x03].concat(x); return [0x04].concat(x, this.getY().toArray("be", len)); }; BasePoint.prototype.encode = function encode(enc, compact) { return utils.encode(this._encode(compact), enc); }; BasePoint.prototype.precompute = function precompute(power) { if (this.precomputed) return this; var precomputed = { doubles: null, naf: null, beta: null, }; precomputed.naf = this._getNAFPoints(8); precomputed.doubles = this._getDoubles(4, power); precomputed.beta = this._getBeta(); this.precomputed = precomputed; return this; }; BasePoint.prototype._hasDoubles = function _hasDoubles(k) { if (!this.precomputed) return false; var doubles = this.precomputed.doubles; if (!doubles) return false; return ( doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step) ); }; BasePoint.prototype._getDoubles = function _getDoubles(step, power) { if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles; var doubles = [this]; var acc = this; for (var i = 0; i < power; i += step) { for (var j = 0; j < step; j++) acc = acc.dbl(); doubles.push(acc); } return { step: step, points: doubles, }; }; BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { if (this.precomputed && this.precomputed.naf) return this.precomputed.naf; var res = [this]; var max = (1 << wnd) - 1; var dbl = max === 1 ? null : this.dbl(); for (var i = 1; i < max; i++) res[i] = res[i - 1].add(dbl); return { wnd: wnd, points: res, }; }; BasePoint.prototype._getBeta = function _getBeta() { return null; }; BasePoint.prototype.dblp = function dblp(k) { var r = this; for (var i = 0; i < k; i++) r = r.dbl(); return r; }; }, { "../../elliptic": 74, "bn.js": 25 }, ], 76: [ function (require, module, exports) { "use strict"; var curve = require("../curve.js"); var elliptic = require("../../elliptic.js"); var BN = require("bn.js"); var inherits = require("inherits"); var Base = curve.base; var assert = elliptic.utils.assert; function EdwardsCurve(conf) { // NOTE: Important as we are creating point in Base.call() this.twisted = (conf.a | 0) !== 1; this.mOneA = this.twisted && (conf.a | 0) === -1; this.extended = this.mOneA; Base.call(this, "edwards", conf); this.a = new BN(conf.a, 16).umod(this.red.m); this.a = this.a.toRed(this.red); this.c = new BN(conf.c, 16).toRed(this.red); this.c2 = this.c.redSqr(); this.d = new BN(conf.d, 16).toRed(this.red); this.dd = this.d.redAdd(this.d); assert(!this.twisted || this.c.fromRed().cmpn(1) === 0); this.oneC = (conf.c | 0) === 1; } inherits(EdwardsCurve, Base); module.exports = EdwardsCurve; EdwardsCurve.prototype._mulA = function _mulA(num) { if (this.mOneA) return num.redNeg(); else return this.a.redMul(num); }; EdwardsCurve.prototype._mulC = function _mulC(num) { if (this.oneC) return num; else return this.c.redMul(num); }; // Just for compatibility with Short curve EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) { return this.point(x, y, z, t); }; EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) { x = new BN(x, 16); if (!x.red) x = x.toRed(this.red); var x2 = x.redSqr(); var rhs = this.c2.redSub(this.a.redMul(x2)); var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2)); var y2 = rhs.redMul(lhs.redInvm()); var y = y2.redSqrt(); if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error("invalid point"); var isOdd = y.fromRed().isOdd(); if ((odd && !isOdd) || (!odd && isOdd)) y = y.redNeg(); return this.point(x, y); }; EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) { y = new BN(y, 16); if (!y.red) y = y.toRed(this.red); // x^2 = (y^2 - 1) / (d y^2 + 1) var y2 = y.redSqr(); var lhs = y2.redSub(this.one); var rhs = y2.redMul(this.d).redAdd(this.one); var x2 = lhs.redMul(rhs.redInvm()); if (x2.cmp(this.zero) === 0) { if (odd) throw new Error("invalid point"); else return this.point(this.zero, y); } var x = x2.redSqrt(); if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error("invalid point"); if (x.isOdd() !== odd) x = x.redNeg(); return this.point(x, y); }; EdwardsCurve.prototype.validate = function validate(point) { if (point.isInfinity()) return true; // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2) point.normalize(); var x2 = point.x.redSqr(); var y2 = point.y.redSqr(); var lhs = x2.redMul(this.a).redAdd(y2); var rhs = this.c2.redMul( this.one.redAdd(this.d.redMul(x2).redMul(y2)) ); return lhs.cmp(rhs) === 0; }; function Point(curve, x, y, z, t) { Base.BasePoint.call(this, curve, "projective"); if (x === null && y === null && z === null) { this.x = this.curve.zero; this.y = this.curve.one; this.z = this.curve.one; this.t = this.curve.zero; this.zOne = true; } else { this.x = new BN(x, 16); this.y = new BN(y, 16); this.z = z ? new BN(z, 16) : this.curve.one; this.t = t && new BN(t, 16); if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.y.red) this.y = this.y.toRed(this.curve.red); if (!this.z.red) this.z = this.z.toRed(this.curve.red); if (this.t && !this.t.red) this.t = this.t.toRed(this.curve.red); this.zOne = this.z === this.curve.one; // Use extended coordinates if (this.curve.extended && !this.t) { this.t = this.x.redMul(this.y); if (!this.zOne) this.t = this.t.redMul(this.z.redInvm()); } } } inherits(Point, Base.BasePoint); EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) { return Point.fromJSON(this, obj); }; EdwardsCurve.prototype.point = function point(x, y, z, t) { return new Point(this, x, y, z, t); }; Point.fromJSON = function fromJSON(curve, obj) { return new Point(curve, obj[0], obj[1], obj[2]); }; Point.prototype.inspect = function inspect() { if (this.isInfinity()) return ""; return ( "" ); }; Point.prototype.isInfinity = function isInfinity() { // XXX This code assumes that zero is always zero in red return this.x.cmpn(0) === 0 && this.y.cmp(this.z) === 0; }; Point.prototype._extDbl = function _extDbl() { // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html // #doubling-dbl-2008-hwcd // 4M + 4S // A = X1^2 var a = this.x.redSqr(); // B = Y1^2 var b = this.y.redSqr(); // C = 2 * Z1^2 var c = this.z.redSqr(); c = c.redIAdd(c); // D = a * A var d = this.curve._mulA(a); // E = (X1 + Y1)^2 - A - B var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b); // G = D + B var g = d.redAdd(b); // F = G - C var f = g.redSub(c); // H = D - B var h = d.redSub(b); // X3 = E * F var nx = e.redMul(f); // Y3 = G * H var ny = g.redMul(h); // T3 = E * H var nt = e.redMul(h); // Z3 = F * G var nz = f.redMul(g); return this.curve.point(nx, ny, nz, nt); }; Point.prototype._projDbl = function _projDbl() { // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html // #doubling-dbl-2008-bbjlp // #doubling-dbl-2007-bl // and others // Generally 3M + 4S or 2M + 4S // B = (X1 + Y1)^2 var b = this.x.redAdd(this.y).redSqr(); // C = X1^2 var c = this.x.redSqr(); // D = Y1^2 var d = this.y.redSqr(); var nx; var ny; var nz; if (this.curve.twisted) { // E = a * C var e = this.curve._mulA(c); // F = E + D var f = e.redAdd(d); if (this.zOne) { // X3 = (B - C - D) * (F - 2) nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)); // Y3 = F * (E - D) ny = f.redMul(e.redSub(d)); // Z3 = F^2 - 2 * F nz = f.redSqr().redSub(f).redSub(f); } else { // H = Z1^2 var h = this.z.redSqr(); // J = F - 2 * H var j = f.redSub(h).redISub(h); // X3 = (B-C-D)*J nx = b.redSub(c).redISub(d).redMul(j); // Y3 = F * (E - D) ny = f.redMul(e.redSub(d)); // Z3 = F * J nz = f.redMul(j); } } else { // E = C + D var e = c.redAdd(d); // H = (c * Z1)^2 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr(); // J = E - 2 * H var j = e.redSub(h).redSub(h); // X3 = c * (B - E) * J nx = this.curve._mulC(b.redISub(e)).redMul(j); // Y3 = c * E * (C - D) ny = this.curve._mulC(e).redMul(c.redISub(d)); // Z3 = E * J nz = e.redMul(j); } return this.curve.point(nx, ny, nz); }; Point.prototype.dbl = function dbl() { if (this.isInfinity()) return this; // Double in extended coordinates if (this.curve.extended) return this._extDbl(); else return this._projDbl(); }; Point.prototype._extAdd = function _extAdd(p) { // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html // #addition-add-2008-hwcd-3 // 8M // A = (Y1 - X1) * (Y2 - X2) var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)); // B = (Y1 + X1) * (Y2 + X2) var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)); // C = T1 * k * T2 var c = this.t.redMul(this.curve.dd).redMul(p.t); // D = Z1 * 2 * Z2 var d = this.z.redMul(p.z.redAdd(p.z)); // E = B - A var e = b.redSub(a); // F = D - C var f = d.redSub(c); // G = D + C var g = d.redAdd(c); // H = B + A var h = b.redAdd(a); // X3 = E * F var nx = e.redMul(f); // Y3 = G * H var ny = g.redMul(h); // T3 = E * H var nt = e.redMul(h); // Z3 = F * G var nz = f.redMul(g); return this.curve.point(nx, ny, nz, nt); }; Point.prototype._projAdd = function _projAdd(p) { // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html // #addition-add-2008-bbjlp // #addition-add-2007-bl // 10M + 1S // A = Z1 * Z2 var a = this.z.redMul(p.z); // B = A^2 var b = a.redSqr(); // C = X1 * X2 var c = this.x.redMul(p.x); // D = Y1 * Y2 var d = this.y.redMul(p.y); // E = d * C * D var e = this.curve.d.redMul(c).redMul(d); // F = B - E var f = b.redSub(e); // G = B + E var g = b.redAdd(e); // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D) var tmp = this.x .redAdd(this.y) .redMul(p.x.redAdd(p.y)) .redISub(c) .redISub(d); var nx = a.redMul(f).redMul(tmp); var ny; var nz; if (this.curve.twisted) { // Y3 = A * G * (D - a * C) ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))); // Z3 = F * G nz = f.redMul(g); } else { // Y3 = A * G * (D - C) ny = a.redMul(g).redMul(d.redSub(c)); // Z3 = c * F * G nz = this.curve._mulC(f).redMul(g); } return this.curve.point(nx, ny, nz); }; Point.prototype.add = function add(p) { if (this.isInfinity()) return p; if (p.isInfinity()) return this; if (this.curve.extended) return this._extAdd(p); else return this._projAdd(p); }; Point.prototype.mul = function mul(k) { if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k); else return this.curve._wnafMul(this, k); }; Point.prototype.mulAdd = function mulAdd(k1, p, k2) { return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, false); }; Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) { return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, true); }; Point.prototype.normalize = function normalize() { if (this.zOne) return this; // Normalize coordinates var zi = this.z.redInvm(); this.x = this.x.redMul(zi); this.y = this.y.redMul(zi); if (this.t) this.t = this.t.redMul(zi); this.z = this.curve.one; this.zOne = true; return this; }; Point.prototype.neg = function neg() { return this.curve.point( this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg() ); }; Point.prototype.getX = function getX() { this.normalize(); return this.x.fromRed(); }; Point.prototype.getY = function getY() { this.normalize(); return this.y.fromRed(); }; Point.prototype.eq = function eq(other) { return ( this === other || (this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0) ); }; Point.prototype.eqXToP = function eqXToP(x) { var rx = x.toRed(this.curve.red).redMul(this.z); if (this.x.cmp(rx) === 0) return true; var xc = x.clone(); var t = this.curve.redN.redMul(this.z); for (;;) { xc.iadd(this.curve.n); if (xc.cmp(this.curve.p) >= 0) return false; rx.redIAdd(t); if (this.x.cmp(rx) === 0) return true; } return false; }; // Compatibility with BaseCurve Point.prototype.toP = Point.prototype.normalize; Point.prototype.mixedAdd = Point.prototype.add; }, { "../../elliptic": 74, "../curve": 77, "bn.js": 25, inherits: 108 }, ], 77: [ function (require, module, exports) { "use strict"; var curve = exports; curve.base = require("./base.js"); curve.short = require("./short.js"); curve.mont = require("./mont.js"); curve.edwards = require("./edwards.js"); }, { "./base": 75, "./edwards": 76, "./mont": 78, "./short": 79 }, ], 78: [ function (require, module, exports) { "use strict"; var curve = require("../curve.js"); var BN = require("bn.js"); var inherits = require("inherits"); var Base = curve.base; var elliptic = require("../../elliptic.js"); var utils = elliptic.utils; function MontCurve(conf) { Base.call(this, "mont", conf); this.a = new BN(conf.a, 16).toRed(this.red); this.b = new BN(conf.b, 16).toRed(this.red); this.i4 = new BN(4).toRed(this.red).redInvm(); this.two = new BN(2).toRed(this.red); this.a24 = this.i4.redMul(this.a.redAdd(this.two)); } inherits(MontCurve, Base); module.exports = MontCurve; MontCurve.prototype.validate = function validate(point) { var x = point.normalize().x; var x2 = x.redSqr(); var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x); var y = rhs.redSqrt(); return y.redSqr().cmp(rhs) === 0; }; function Point(curve, x, z) { Base.BasePoint.call(this, curve, "projective"); if (x === null && z === null) { this.x = this.curve.one; this.z = this.curve.zero; } else { this.x = new BN(x, 16); this.z = new BN(z, 16); if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.z.red) this.z = this.z.toRed(this.curve.red); } } inherits(Point, Base.BasePoint); MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) { return this.point(utils.toArray(bytes, enc), 1); }; MontCurve.prototype.point = function point(x, z) { return new Point(this, x, z); }; MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) { return Point.fromJSON(this, obj); }; Point.prototype.precompute = function precompute() { // No-op }; Point.prototype._encode = function _encode() { return this.getX().toArray("be", this.curve.p.byteLength()); }; Point.fromJSON = function fromJSON(curve, obj) { return new Point(curve, obj[0], obj[1] || curve.one); }; Point.prototype.inspect = function inspect() { if (this.isInfinity()) return ""; return ( "" ); }; Point.prototype.isInfinity = function isInfinity() { // XXX This code assumes that zero is always zero in red return this.z.cmpn(0) === 0; }; Point.prototype.dbl = function dbl() { // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3 // 2M + 2S + 4A // A = X1 + Z1 var a = this.x.redAdd(this.z); // AA = A^2 var aa = a.redSqr(); // B = X1 - Z1 var b = this.x.redSub(this.z); // BB = B^2 var bb = b.redSqr(); // C = AA - BB var c = aa.redSub(bb); // X3 = AA * BB var nx = aa.redMul(bb); // Z3 = C * (BB + A24 * C) var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c))); return this.curve.point(nx, nz); }; Point.prototype.add = function add() { throw new Error("Not supported on Montgomery curve"); }; Point.prototype.diffAdd = function diffAdd(p, diff) { // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3 // 4M + 2S + 6A // A = X2 + Z2 var a = this.x.redAdd(this.z); // B = X2 - Z2 var b = this.x.redSub(this.z); // C = X3 + Z3 var c = p.x.redAdd(p.z); // D = X3 - Z3 var d = p.x.redSub(p.z); // DA = D * A var da = d.redMul(a); // CB = C * B var cb = c.redMul(b); // X5 = Z1 * (DA + CB)^2 var nx = diff.z.redMul(da.redAdd(cb).redSqr()); // Z5 = X1 * (DA - CB)^2 var nz = diff.x.redMul(da.redISub(cb).redSqr()); return this.curve.point(nx, nz); }; Point.prototype.mul = function mul(k) { var t = k.clone(); var a = this; // (N / 2) * Q + Q var b = this.curve.point(null, null); // (N / 2) * Q var c = this; // Q for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) bits.push(t.andln(1)); for (var i = bits.length - 1; i >= 0; i--) { if (bits[i] === 0) { // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q a = a.diffAdd(b, c); // N * Q = 2 * ((N / 2) * Q + Q)) b = b.dbl(); } else { // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q) b = a.diffAdd(b, c); // N * Q + Q = 2 * ((N / 2) * Q + Q) a = a.dbl(); } } return b; }; Point.prototype.mulAdd = function mulAdd() { throw new Error("Not supported on Montgomery curve"); }; Point.prototype.jumlAdd = function jumlAdd() { throw new Error("Not supported on Montgomery curve"); }; Point.prototype.eq = function eq(other) { return this.getX().cmp(other.getX()) === 0; }; Point.prototype.normalize = function normalize() { this.x = this.x.redMul(this.z.redInvm()); this.z = this.curve.one; return this; }; Point.prototype.getX = function getX() { // Normalize coordinates this.normalize(); return this.x.fromRed(); }; }, { "../../elliptic": 74, "../curve": 77, "bn.js": 25, inherits: 108 }, ], 79: [ function (require, module, exports) { "use strict"; var curve = require("../curve.js"); var elliptic = require("../../elliptic.js"); var BN = require("bn.js"); var inherits = require("inherits"); var Base = curve.base; var assert = elliptic.utils.assert; function ShortCurve(conf) { Base.call(this, "short", conf); this.a = new BN(conf.a, 16).toRed(this.red); this.b = new BN(conf.b, 16).toRed(this.red); this.tinv = this.two.redInvm(); this.zeroA = this.a.fromRed().cmpn(0) === 0; this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; // If the curve is endomorphic, precalculate beta and lambda this.endo = this._getEndomorphism(conf); this._endoWnafT1 = new Array(4); this._endoWnafT2 = new Array(4); } inherits(ShortCurve, Base); module.exports = ShortCurve; ShortCurve.prototype._getEndomorphism = function _getEndomorphism( conf ) { // No efficient endomorphism if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return; // Compute beta and lambda, that lambda * P = (beta * Px; Py) var beta; var lambda; if (conf.beta) { beta = new BN(conf.beta, 16).toRed(this.red); } else { var betas = this._getEndoRoots(this.p); // Choose the smallest beta beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; beta = beta.toRed(this.red); } if (conf.lambda) { lambda = new BN(conf.lambda, 16); } else { // Choose the lambda that is matching selected beta var lambdas = this._getEndoRoots(this.n); if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { lambda = lambdas[0]; } else { lambda = lambdas[1]; assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); } } // Get basis vectors, used for balanced length-two representation var basis; if (conf.basis) { basis = conf.basis.map(function (vec) { return { a: new BN(vec.a, 16), b: new BN(vec.b, 16), }; }); } else { basis = this._getEndoBasis(lambda); } return { beta: beta, lambda: lambda, basis: basis, }; }; ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { // Find roots of for x^2 + x + 1 in F // Root = (-1 +- Sqrt(-3)) / 2 // var red = num === this.p ? this.red : BN.mont(num); var tinv = new BN(2).toRed(red).redInvm(); var ntinv = tinv.redNeg(); var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv); var l1 = ntinv.redAdd(s).fromRed(); var l2 = ntinv.redSub(s).fromRed(); return [l1, l2]; }; ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { // aprxSqrt >= sqrt(this.n) var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); // 3.74 // Run EGCD, until r(L + 1) < aprxSqrt var u = lambda; var v = this.n.clone(); var x1 = new BN(1); var y1 = new BN(0); var x2 = new BN(0); var y2 = new BN(1); // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n) var a0; var b0; // First vector var a1; var b1; // Second vector var a2; var b2; var prevR; var i = 0; var r; var x; while (u.cmpn(0) !== 0) { var q = v.div(u); r = v.sub(q.mul(u)); x = x2.sub(q.mul(x1)); var y = y2.sub(q.mul(y1)); if (!a1 && r.cmp(aprxSqrt) < 0) { a0 = prevR.neg(); b0 = x1; a1 = r.neg(); b1 = x; } else if (a1 && ++i === 2) { break; } prevR = r; v = u; u = r; x2 = x1; x1 = x; y2 = y1; y1 = y; } a2 = r.neg(); b2 = x; var len1 = a1.sqr().add(b1.sqr()); var len2 = a2.sqr().add(b2.sqr()); if (len2.cmp(len1) >= 0) { a2 = a0; b2 = b0; } // Normalize signs if (a1.negative) { a1 = a1.neg(); b1 = b1.neg(); } if (a2.negative) { a2 = a2.neg(); b2 = b2.neg(); } return [ { a: a1, b: b1 }, { a: a2, b: b2 }, ]; }; ShortCurve.prototype._endoSplit = function _endoSplit(k) { var basis = this.endo.basis; var v1 = basis[0]; var v2 = basis[1]; var c1 = v2.b.mul(k).divRound(this.n); var c2 = v1.b.neg().mul(k).divRound(this.n); var p1 = c1.mul(v1.a); var p2 = c2.mul(v2.a); var q1 = c1.mul(v1.b); var q2 = c2.mul(v2.b); // Calculate answer var k1 = k.sub(p1).sub(p2); var k2 = q1.add(q2).neg(); return { k1: k1, k2: k2 }; }; ShortCurve.prototype.pointFromX = function pointFromX(x, odd) { x = new BN(x, 16); if (!x.red) x = x.toRed(this.red); var y2 = x .redSqr() .redMul(x) .redIAdd(x.redMul(this.a)) .redIAdd(this.b); var y = y2.redSqrt(); if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error("invalid point"); // XXX Is there any way to tell if the number is odd without converting it // to non-red form? var isOdd = y.fromRed().isOdd(); if ((odd && !isOdd) || (!odd && isOdd)) y = y.redNeg(); return this.point(x, y); }; ShortCurve.prototype.validate = function validate(point) { if (point.inf) return true; var x = point.x; var y = point.y; var ax = this.a.redMul(x); var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b); return y.redSqr().redISub(rhs).cmpn(0) === 0; }; ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd( points, coeffs, jacobianResult ) { var npoints = this._endoWnafT1; var ncoeffs = this._endoWnafT2; for (var i = 0; i < points.length; i++) { var split = this._endoSplit(coeffs[i]); var p = points[i]; var beta = p._getBeta(); if (split.k1.negative) { split.k1.ineg(); p = p.neg(true); } if (split.k2.negative) { split.k2.ineg(); beta = beta.neg(true); } npoints[i * 2] = p; npoints[i * 2 + 1] = beta; ncoeffs[i * 2] = split.k1; ncoeffs[i * 2 + 1] = split.k2; } var res = this._wnafMulAdd( 1, npoints, ncoeffs, i * 2, jacobianResult ); // Clean-up references to points and coefficients for (var j = 0; j < i * 2; j++) { npoints[j] = null; ncoeffs[j] = null; } return res; }; function Point(curve, x, y, isRed) { Base.BasePoint.call(this, curve, "affine"); if (x === null && y === null) { this.x = null; this.y = null; this.inf = true; } else { this.x = new BN(x, 16); this.y = new BN(y, 16); // Force redgomery representation when loading from JSON if (isRed) { this.x.forceRed(this.curve.red); this.y.forceRed(this.curve.red); } if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.y.red) this.y = this.y.toRed(this.curve.red); this.inf = false; } } inherits(Point, Base.BasePoint); ShortCurve.prototype.point = function point(x, y, isRed) { return new Point(this, x, y, isRed); }; ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { return Point.fromJSON(this, obj, red); }; Point.prototype._getBeta = function _getBeta() { if (!this.curve.endo) return; var pre = this.precomputed; if (pre && pre.beta) return pre.beta; var beta = this.curve.point( this.x.redMul(this.curve.endo.beta), this.y ); if (pre) { var curve = this.curve; var endoMul = function (p) { return curve.point(p.x.redMul(curve.endo.beta), p.y); }; pre.beta = beta; beta.precomputed = { beta: null, naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(endoMul), }, doubles: pre.doubles && { step: pre.doubles.step, points: pre.doubles.points.map(endoMul), }, }; } return beta; }; Point.prototype.toJSON = function toJSON() { if (!this.precomputed) return [this.x, this.y]; return [ this.x, this.y, this.precomputed && { doubles: this.precomputed.doubles && { step: this.precomputed.doubles.step, points: this.precomputed.doubles.points.slice(1), }, naf: this.precomputed.naf && { wnd: this.precomputed.naf.wnd, points: this.precomputed.naf.points.slice(1), }, }, ]; }; Point.fromJSON = function fromJSON(curve, obj, red) { if (typeof obj === "string") obj = JSON.parse(obj); var res = curve.point(obj[0], obj[1], red); if (!obj[2]) return res; function obj2point(obj) { return curve.point(obj[0], obj[1], red); } var pre = obj[2]; res.precomputed = { beta: null, doubles: pre.doubles && { step: pre.doubles.step, points: [res].concat(pre.doubles.points.map(obj2point)), }, naf: pre.naf && { wnd: pre.naf.wnd, points: [res].concat(pre.naf.points.map(obj2point)), }, }; return res; }; Point.prototype.inspect = function inspect() { if (this.isInfinity()) return ""; return ( "" ); }; Point.prototype.isInfinity = function isInfinity() { return this.inf; }; Point.prototype.add = function add(p) { // O + P = P if (this.inf) return p; // P + O = P if (p.inf) return this; // P + P = 2P if (this.eq(p)) return this.dbl(); // P + (-P) = O if (this.neg().eq(p)) return this.curve.point(null, null); // P + Q = O if (this.x.cmp(p.x) === 0) return this.curve.point(null, null); var c = this.y.redSub(p.y); if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm()); var nx = c.redSqr().redISub(this.x).redISub(p.x); var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); return this.curve.point(nx, ny); }; Point.prototype.dbl = function dbl() { if (this.inf) return this; // 2P = O var ys1 = this.y.redAdd(this.y); if (ys1.cmpn(0) === 0) return this.curve.point(null, null); var a = this.curve.a; var x2 = this.x.redSqr(); var dyinv = ys1.redInvm(); var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv); var nx = c.redSqr().redISub(this.x.redAdd(this.x)); var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); return this.curve.point(nx, ny); }; Point.prototype.getX = function getX() { return this.x.fromRed(); }; Point.prototype.getY = function getY() { return this.y.fromRed(); }; Point.prototype.mul = function mul(k) { k = new BN(k, 16); if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k); else if (this.curve.endo) return this.curve._endoWnafMulAdd([this], [k]); else return this.curve._wnafMul(this, k); }; Point.prototype.mulAdd = function mulAdd(k1, p2, k2) { var points = [this, p2]; var coeffs = [k1, k2]; if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs); else return this.curve._wnafMulAdd(1, points, coeffs, 2); }; Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) { var points = [this, p2]; var coeffs = [k1, k2]; if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true); else return this.curve._wnafMulAdd(1, points, coeffs, 2, true); }; Point.prototype.eq = function eq(p) { return ( this === p || (this.inf === p.inf && (this.inf || (this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0))) ); }; Point.prototype.neg = function neg(_precompute) { if (this.inf) return this; var res = this.curve.point(this.x, this.y.redNeg()); if (_precompute && this.precomputed) { var pre = this.precomputed; var negate = function (p) { return p.neg(); }; res.precomputed = { naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(negate), }, doubles: pre.doubles && { step: pre.doubles.step, points: pre.doubles.points.map(negate), }, }; } return res; }; Point.prototype.toJ = function toJ() { if (this.inf) return this.curve.jpoint(null, null, null); var res = this.curve.jpoint(this.x, this.y, this.curve.one); return res; }; function JPoint(curve, x, y, z) { Base.BasePoint.call(this, curve, "jacobian"); if (x === null && y === null && z === null) { this.x = this.curve.one; this.y = this.curve.one; this.z = new BN(0); } else { this.x = new BN(x, 16); this.y = new BN(y, 16); this.z = new BN(z, 16); } if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.y.red) this.y = this.y.toRed(this.curve.red); if (!this.z.red) this.z = this.z.toRed(this.curve.red); this.zOne = this.z === this.curve.one; } inherits(JPoint, Base.BasePoint); ShortCurve.prototype.jpoint = function jpoint(x, y, z) { return new JPoint(this, x, y, z); }; JPoint.prototype.toP = function toP() { if (this.isInfinity()) return this.curve.point(null, null); var zinv = this.z.redInvm(); var zinv2 = zinv.redSqr(); var ax = this.x.redMul(zinv2); var ay = this.y.redMul(zinv2).redMul(zinv); return this.curve.point(ax, ay); }; JPoint.prototype.neg = function neg() { return this.curve.jpoint(this.x, this.y.redNeg(), this.z); }; JPoint.prototype.add = function add(p) { // O + P = P if (this.isInfinity()) return p; // P + O = P if (p.isInfinity()) return this; // 12M + 4S + 7A var pz2 = p.z.redSqr(); var z2 = this.z.redSqr(); var u1 = this.x.redMul(pz2); var u2 = p.x.redMul(z2); var s1 = this.y.redMul(pz2.redMul(p.z)); var s2 = p.y.redMul(z2.redMul(this.z)); var h = u1.redSub(u2); var r = s1.redSub(s2); if (h.cmpn(0) === 0) { if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null); else return this.dbl(); } var h2 = h.redSqr(); var h3 = h2.redMul(h); var v = u1.redMul(h2); var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); var nz = this.z.redMul(p.z).redMul(h); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.mixedAdd = function mixedAdd(p) { // O + P = P if (this.isInfinity()) return p.toJ(); // P + O = P if (p.isInfinity()) return this; // 8M + 3S + 7A var z2 = this.z.redSqr(); var u1 = this.x; var u2 = p.x.redMul(z2); var s1 = this.y; var s2 = p.y.redMul(z2).redMul(this.z); var h = u1.redSub(u2); var r = s1.redSub(s2); if (h.cmpn(0) === 0) { if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null); else return this.dbl(); } var h2 = h.redSqr(); var h3 = h2.redMul(h); var v = u1.redMul(h2); var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); var nz = this.z.redMul(h); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.dblp = function dblp(pow) { if (pow === 0) return this; if (this.isInfinity()) return this; if (!pow) return this.dbl(); if (this.curve.zeroA || this.curve.threeA) { var r = this; for (var i = 0; i < pow; i++) r = r.dbl(); return r; } // 1M + 2S + 1A + N * (4S + 5M + 8A) // N = 1 => 6M + 6S + 9A var a = this.curve.a; var tinv = this.curve.tinv; var jx = this.x; var jy = this.y; var jz = this.z; var jz4 = jz.redSqr().redSqr(); // Reuse results var jyd = jy.redAdd(jy); for (var i = 0; i < pow; i++) { var jx2 = jx.redSqr(); var jyd2 = jyd.redSqr(); var jyd4 = jyd2.redSqr(); var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); var t1 = jx.redMul(jyd2); var nx = c.redSqr().redISub(t1.redAdd(t1)); var t2 = t1.redISub(nx); var dny = c.redMul(t2); dny = dny.redIAdd(dny).redISub(jyd4); var nz = jyd.redMul(jz); if (i + 1 < pow) jz4 = jz4.redMul(jyd4); jx = nx; jz = nz; jyd = dny; } return this.curve.jpoint(jx, jyd.redMul(tinv), jz); }; JPoint.prototype.dbl = function dbl() { if (this.isInfinity()) return this; if (this.curve.zeroA) return this._zeroDbl(); else if (this.curve.threeA) return this._threeDbl(); else return this._dbl(); }; JPoint.prototype._zeroDbl = function _zeroDbl() { var nx; var ny; var nz; // Z = 1 if (this.zOne) { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html // #doubling-mdbl-2007-bl // 1M + 5S + 14A // XX = X1^2 var xx = this.x.redSqr(); // YY = Y1^2 var yy = this.y.redSqr(); // YYYY = YY^2 var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY) var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); s = s.redIAdd(s); // M = 3 * XX + a; a = 0 var m = xx.redAdd(xx).redIAdd(xx); // T = M ^ 2 - 2*S var t = m.redSqr().redISub(s).redISub(s); // 8 * YYYY var yyyy8 = yyyy.redIAdd(yyyy); yyyy8 = yyyy8.redIAdd(yyyy8); yyyy8 = yyyy8.redIAdd(yyyy8); // X3 = T nx = t; // Y3 = M * (S - T) - 8 * YYYY ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2*Y1 nz = this.y.redAdd(this.y); } else { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html // #doubling-dbl-2009-l // 2M + 5S + 13A // A = X1^2 var a = this.x.redSqr(); // B = Y1^2 var b = this.y.redSqr(); // C = B^2 var c = b.redSqr(); // D = 2 * ((X1 + B)^2 - A - C) var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c); d = d.redIAdd(d); // E = 3 * A var e = a.redAdd(a).redIAdd(a); // F = E^2 var f = e.redSqr(); // 8 * C var c8 = c.redIAdd(c); c8 = c8.redIAdd(c8); c8 = c8.redIAdd(c8); // X3 = F - 2 * D nx = f.redISub(d).redISub(d); // Y3 = E * (D - X3) - 8 * C ny = e.redMul(d.redISub(nx)).redISub(c8); // Z3 = 2 * Y1 * Z1 nz = this.y.redMul(this.z); nz = nz.redIAdd(nz); } return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype._threeDbl = function _threeDbl() { var nx; var ny; var nz; // Z = 1 if (this.zOne) { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html // #doubling-mdbl-2007-bl // 1M + 5S + 15A // XX = X1^2 var xx = this.x.redSqr(); // YY = Y1^2 var yy = this.y.redSqr(); // YYYY = YY^2 var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY) var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); s = s.redIAdd(s); // M = 3 * XX + a var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); // T = M^2 - 2 * S var t = m.redSqr().redISub(s).redISub(s); // X3 = T nx = t; // Y3 = M * (S - T) - 8 * YYYY var yyyy8 = yyyy.redIAdd(yyyy); yyyy8 = yyyy8.redIAdd(yyyy8); yyyy8 = yyyy8.redIAdd(yyyy8); ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2 * Y1 nz = this.y.redAdd(this.y); } else { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b // 3M + 5S // delta = Z1^2 var delta = this.z.redSqr(); // gamma = Y1^2 var gamma = this.y.redSqr(); // beta = X1 * gamma var beta = this.x.redMul(gamma); // alpha = 3 * (X1 - delta) * (X1 + delta) var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); alpha = alpha.redAdd(alpha).redIAdd(alpha); // X3 = alpha^2 - 8 * beta var beta4 = beta.redIAdd(beta); beta4 = beta4.redIAdd(beta4); var beta8 = beta4.redAdd(beta4); nx = alpha.redSqr().redISub(beta8); // Z3 = (Y1 + Z1)^2 - gamma - delta nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2 var ggamma8 = gamma.redSqr(); ggamma8 = ggamma8.redIAdd(ggamma8); ggamma8 = ggamma8.redIAdd(ggamma8); ggamma8 = ggamma8.redIAdd(ggamma8); ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); } return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype._dbl = function _dbl() { var a = this.curve.a; // 4M + 6S + 10A var jx = this.x; var jy = this.y; var jz = this.z; var jz4 = jz.redSqr().redSqr(); var jx2 = jx.redSqr(); var jy2 = jy.redSqr(); var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); var jxd4 = jx.redAdd(jx); jxd4 = jxd4.redIAdd(jxd4); var t1 = jxd4.redMul(jy2); var nx = c.redSqr().redISub(t1.redAdd(t1)); var t2 = t1.redISub(nx); var jyd8 = jy2.redSqr(); jyd8 = jyd8.redIAdd(jyd8); jyd8 = jyd8.redIAdd(jyd8); jyd8 = jyd8.redIAdd(jyd8); var ny = c.redMul(t2).redISub(jyd8); var nz = jy.redAdd(jy).redMul(jz); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.trpl = function trpl() { if (!this.curve.zeroA) return this.dbl().add(this); // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl // 5M + 10S + ... // XX = X1^2 var xx = this.x.redSqr(); // YY = Y1^2 var yy = this.y.redSqr(); // ZZ = Z1^2 var zz = this.z.redSqr(); // YYYY = YY^2 var yyyy = yy.redSqr(); // M = 3 * XX + a * ZZ2; a = 0 var m = xx.redAdd(xx).redIAdd(xx); // MM = M^2 var mm = m.redSqr(); // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); e = e.redIAdd(e); e = e.redAdd(e).redIAdd(e); e = e.redISub(mm); // EE = E^2 var ee = e.redSqr(); // T = 16*YYYY var t = yyyy.redIAdd(yyyy); t = t.redIAdd(t); t = t.redIAdd(t); t = t.redIAdd(t); // U = (M + E)^2 - MM - EE - T var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); // X3 = 4 * (X1 * EE - 4 * YY * U) var yyu4 = yy.redMul(u); yyu4 = yyu4.redIAdd(yyu4); yyu4 = yyu4.redIAdd(yyu4); var nx = this.x.redMul(ee).redISub(yyu4); nx = nx.redIAdd(nx); nx = nx.redIAdd(nx); // Y3 = 8 * Y1 * (U * (T - U) - E * EE) var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))); ny = ny.redIAdd(ny); ny = ny.redIAdd(ny); ny = ny.redIAdd(ny); // Z3 = (Z1 + E)^2 - ZZ - EE var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.mul = function mul(k, kbase) { k = new BN(k, kbase); return this.curve._wnafMul(this, k); }; JPoint.prototype.eq = function eq(p) { if (p.type === "affine") return this.eq(p.toJ()); if (this === p) return true; // x1 * z2^2 == x2 * z1^2 var z2 = this.z.redSqr(); var pz2 = p.z.redSqr(); if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false; // y1 * z2^3 == y2 * z1^3 var z3 = z2.redMul(this.z); var pz3 = pz2.redMul(p.z); return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0; }; JPoint.prototype.eqXToP = function eqXToP(x) { var zs = this.z.redSqr(); var rx = x.toRed(this.curve.red).redMul(zs); if (this.x.cmp(rx) === 0) return true; var xc = x.clone(); var t = this.curve.redN.redMul(zs); for (;;) { xc.iadd(this.curve.n); if (xc.cmp(this.curve.p) >= 0) return false; rx.redIAdd(t); if (this.x.cmp(rx) === 0) return true; } return false; }; JPoint.prototype.inspect = function inspect() { if (this.isInfinity()) return ""; return ( "" ); }; JPoint.prototype.isInfinity = function isInfinity() { // XXX This code assumes that zero is always zero in red return this.z.cmpn(0) === 0; }; }, { "../../elliptic": 74, "../curve": 77, "bn.js": 25, inherits: 108 }, ], 80: [ function (require, module, exports) { "use strict"; var curves = exports; var hash = require("hash.js"); var elliptic = require("../elliptic.js"); var assert = elliptic.utils.assert; function PresetCurve(options) { if (options.type === "short") this.curve = new elliptic.curve.short(options); else if (options.type === "edwards") this.curve = new elliptic.curve.edwards(options); else this.curve = new elliptic.curve.mont(options); this.g = this.curve.g; this.n = this.curve.n; this.hash = options.hash; assert(this.g.validate(), "Invalid curve"); assert(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O"); } curves.PresetCurve = PresetCurve; function defineCurve(name, options) { Object.defineProperty(curves, name, { configurable: true, enumerable: true, get: function () { var curve = new PresetCurve(options); Object.defineProperty(curves, name, { configurable: true, enumerable: true, value: curve, }); return curve; }, }); } defineCurve("p192", { type: "short", prime: "p192", p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff", a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc", b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1", n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831", hash: hash.sha256, gRed: false, g: [ "188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012", "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811", ], }); defineCurve("p224", { type: "short", prime: "p224", p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001", a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe", b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4", n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d", hash: hash.sha256, gRed: false, g: [ "b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21", "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34", ], }); defineCurve("p256", { type: "short", prime: null, p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff", a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc", b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b", n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551", hash: hash.sha256, gRed: false, g: [ "6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296", "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5", ], }); defineCurve("p384", { type: "short", prime: null, p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff " + "fffffffe ffffffff 00000000 00000000 ffffffff", a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff " + "fffffffe ffffffff 00000000 00000000 fffffffc", b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f " + "5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef", n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 " + "f4372ddf 581a0db2 48b0a77a ecec196a ccc52973", hash: hash.sha384, gRed: false, g: [ "aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 " + "5502f25d bf55296c 3a545e38 72760ab7", "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 " + "0a60b1ce 1d7e819d 7a431d7c 90ea0e5f", ], }); defineCurve("p521", { type: "short", prime: null, p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff " + "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff " + "ffffffff ffffffff ffffffff ffffffff ffffffff", a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff " + "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff " + "ffffffff ffffffff ffffffff ffffffff fffffffc", b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b " + "99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd " + "3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00", n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff " + "ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 " + "f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409", hash: hash.sha512, gRed: false, g: [ "000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 " + "053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 " + "a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66", "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 " + "579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 " + "3fad0761 353c7086 a272c240 88be9476 9fd16650", ], }); defineCurve("curve25519", { type: "mont", prime: "p25519", p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", a: "76d06", b: "1", n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", hash: hash.sha256, gRed: false, g: ["9"], }); defineCurve("ed25519", { type: "edwards", prime: "p25519", p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", a: "-1", c: "1", // -121665 * (121666^(-1)) (mod P) d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3", n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", hash: hash.sha256, gRed: false, g: [ "216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a", // 4/5 "6666666666666666666666666666666666666666666666666666666666666658", ], }); var pre; try { pre = require("./precomputed/secp256k1.js"); } catch (e) { pre = undefined; } defineCurve("secp256k1", { type: "short", prime: "k256", p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f", a: "0", b: "7", n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141", h: "1", hash: hash.sha256, // Precomputed endomorphism beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", basis: [ { a: "3086d221a7d46bcde86c90e49284eb15", b: "-e4437ed6010e88286f547fa90abfe4c3", }, { a: "114ca50f7a8e2f3f657c1108d9d44cfd8", b: "3086d221a7d46bcde86c90e49284eb15", }, ], gRed: false, g: [ "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", pre, ], }); }, { "../elliptic": 74, "./precomputed/secp256k1": 87, "hash.js": 93 }, ], 81: [ function (require, module, exports) { "use strict"; var BN = require("bn.js"); var HmacDRBG = require("hmac-drbg"); var elliptic = require("../../elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; var KeyPair = require("./key.js"); var Signature = require("./signature.js"); function EC(options) { if (!(this instanceof EC)) return new EC(options); // Shortcut `elliptic.ec(curve-name)` if (typeof options === "string") { assert( elliptic.curves.hasOwnProperty(options), "Unknown curve " + options ); options = elliptic.curves[options]; } // Shortcut for `elliptic.ec(elliptic.curves.curveName)` if (options instanceof elliptic.curves.PresetCurve) options = { curve: options }; this.curve = options.curve.curve; this.n = this.curve.n; this.nh = this.n.ushrn(1); this.g = this.curve.g; // Point on curve this.g = options.curve.g; this.g.precompute(options.curve.n.bitLength() + 1); // Hash for function for DRBG this.hash = options.hash || options.curve.hash; } module.exports = EC; EC.prototype.keyPair = function keyPair(options) { return new KeyPair(this, options); }; EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { return KeyPair.fromPrivate(this, priv, enc); }; EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { return KeyPair.fromPublic(this, pub, enc); }; EC.prototype.genKeyPair = function genKeyPair(options) { if (!options) options = {}; // Instantiate Hmac_DRBG var drbg = new HmacDRBG({ hash: this.hash, pers: options.pers, persEnc: options.persEnc || "utf8", entropy: options.entropy || elliptic.rand(this.hash.hmacStrength), entropyEnc: (options.entropy && options.entropyEnc) || "utf8", nonce: this.n.toArray(), }); var bytes = this.n.byteLength(); var ns2 = this.n.sub(new BN(2)); do { var priv = new BN(drbg.generate(bytes)); if (priv.cmp(ns2) > 0) continue; priv.iaddn(1); return this.keyFromPrivate(priv); } while (true); }; EC.prototype._truncateToN = function truncateToN(msg, truncOnly) { var delta = msg.byteLength() * 8 - this.n.bitLength(); if (delta > 0) msg = msg.ushrn(delta); if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n); else return msg; }; EC.prototype.sign = function sign(msg, key, enc, options) { if (typeof enc === "object") { options = enc; enc = null; } if (!options) options = {}; key = this.keyFromPrivate(key, enc); msg = this._truncateToN(new BN(msg, 16)); // Zero-extend key to provide enough entropy var bytes = this.n.byteLength(); var bkey = key.getPrivate().toArray("be", bytes); // Zero-extend nonce to have the same byte size as N var nonce = msg.toArray("be", bytes); // Instantiate Hmac_DRBG var drbg = new HmacDRBG({ hash: this.hash, entropy: bkey, nonce: nonce, pers: options.pers, persEnc: options.persEnc || "utf8", }); // Number of bytes to generate var ns1 = this.n.sub(new BN(1)); for (var iter = 0; true; iter++) { var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength())); k = this._truncateToN(k, true); if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue; var kp = this.g.mul(k); if (kp.isInfinity()) continue; var kpX = kp.getX(); var r = kpX.umod(this.n); if (r.cmpn(0) === 0) continue; var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg)); s = s.umod(this.n); if (s.cmpn(0) === 0) continue; var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0); // Use complement of `s`, if it is > `n / 2` if (options.canonical && s.cmp(this.nh) > 0) { s = this.n.sub(s); recoveryParam ^= 1; } return new Signature({ r: r, s: s, recoveryParam: recoveryParam }); } }; EC.prototype.verify = function verify(msg, signature, key, enc) { msg = this._truncateToN(new BN(msg, 16)); key = this.keyFromPublic(key, enc); signature = new Signature(signature, "hex"); // Perform primitive values validation var r = signature.r; var s = signature.s; if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false; if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false; // Validate signature var sinv = s.invm(this.n); var u1 = sinv.mul(msg).umod(this.n); var u2 = sinv.mul(r).umod(this.n); if (!this.curve._maxwellTrick) { var p = this.g.mulAdd(u1, key.getPublic(), u2); if (p.isInfinity()) return false; return p.getX().umod(this.n).cmp(r) === 0; } // NOTE: Greg Maxwell's trick, inspired by: // https://git.io/vad3K var p = this.g.jmulAdd(u1, key.getPublic(), u2); if (p.isInfinity()) return false; // Compare `p.x` of Jacobian point with `r`, // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the // inverse of `p.z^2` return p.eqXToP(r); }; EC.prototype.recoverPubKey = function (msg, signature, j, enc) { assert((3 & j) === j, "The recovery param is more than two bits"); signature = new Signature(signature, enc); var n = this.n; var e = new BN(msg); var r = signature.r; var s = signature.s; // A set LSB signifies that the y-coordinate is odd var isYOdd = j & 1; var isSecondKey = j >> 1; if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) throw new Error("Unable to find sencond key candinate"); // 1.1. Let x = r + jn. if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd); else r = this.curve.pointFromX(r, isYOdd); var rInv = signature.r.invm(n); var s1 = n.sub(e).mul(rInv).umod(n); var s2 = s.mul(rInv).umod(n); // 1.6.1 Compute Q = r^-1 (sR - eG) // Q = r^-1 (sR + -eG) return this.g.mulAdd(s1, r, s2); }; EC.prototype.getKeyRecoveryParam = function (e, signature, Q, enc) { signature = new Signature(signature, enc); if (signature.recoveryParam !== null) return signature.recoveryParam; for (var i = 0; i < 4; i++) { var Qprime; try { Qprime = this.recoverPubKey(e, signature, i); } catch (e) { continue; } if (Qprime.eq(Q)) return i; } throw new Error("Unable to find valid recovery factor"); }; }, { "../../elliptic": 74, "./key": 82, "./signature": 83, "bn.js": 25, "hmac-drbg": 105, }, ], 82: [ function (require, module, exports) { "use strict"; var BN = require("bn.js"); var elliptic = require("../../elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; function KeyPair(ec, options) { this.ec = ec; this.priv = null; this.pub = null; // KeyPair(ec, { priv: ..., pub: ... }) if (options.priv) this._importPrivate(options.priv, options.privEnc); if (options.pub) this._importPublic(options.pub, options.pubEnc); } module.exports = KeyPair; KeyPair.fromPublic = function fromPublic(ec, pub, enc) { if (pub instanceof KeyPair) return pub; return new KeyPair(ec, { pub: pub, pubEnc: enc, }); }; KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { if (priv instanceof KeyPair) return priv; return new KeyPair(ec, { priv: priv, privEnc: enc, }); }; KeyPair.prototype.validate = function validate() { var pub = this.getPublic(); if (pub.isInfinity()) return { result: false, reason: "Invalid public key" }; if (!pub.validate()) return { result: false, reason: "Public key is not a point" }; if (!pub.mul(this.ec.curve.n).isInfinity()) return { result: false, reason: "Public key * N != O" }; return { result: true, reason: null }; }; KeyPair.prototype.getPublic = function getPublic(compact, enc) { // compact is optional argument if (typeof compact === "string") { enc = compact; compact = null; } if (!this.pub) this.pub = this.ec.g.mul(this.priv); if (!enc) return this.pub; return this.pub.encode(enc, compact); }; KeyPair.prototype.getPrivate = function getPrivate(enc) { if (enc === "hex") return this.priv.toString(16, 2); else return this.priv; }; KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { this.priv = new BN(key, enc || 16); // Ensure that the priv won't be bigger than n, otherwise we may fail // in fixed multiplication method this.priv = this.priv.umod(this.ec.curve.n); }; KeyPair.prototype._importPublic = function _importPublic(key, enc) { if (key.x || key.y) { // Montgomery points only have an `x` coordinate. // Weierstrass/Edwards points on the other hand have both `x` and // `y` coordinates. if (this.ec.curve.type === "mont") { assert(key.x, "Need x coordinate"); } else if ( this.ec.curve.type === "short" || this.ec.curve.type === "edwards" ) { assert(key.x && key.y, "Need both x and y coordinate"); } this.pub = this.ec.curve.point(key.x, key.y); return; } this.pub = this.ec.curve.decodePoint(key, enc); }; // ECDH KeyPair.prototype.derive = function derive(pub) { return pub.mul(this.priv).getX(); }; // ECDSA KeyPair.prototype.sign = function sign(msg, enc, options) { return this.ec.sign(msg, this, enc, options); }; KeyPair.prototype.verify = function verify(msg, signature) { return this.ec.verify(msg, signature, this); }; KeyPair.prototype.inspect = function inspect() { return ( "" ); }; }, { "../../elliptic": 74, "bn.js": 25 }, ], 83: [ function (require, module, exports) { "use strict"; var BN = require("bn.js"); var elliptic = require("../../elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; function Signature(options, enc) { if (options instanceof Signature) return options; if (this._importDER(options, enc)) return; assert(options.r && options.s, "Signature without r or s"); this.r = new BN(options.r, 16); this.s = new BN(options.s, 16); if (options.recoveryParam === undefined) this.recoveryParam = null; else this.recoveryParam = options.recoveryParam; } module.exports = Signature; function Position() { this.place = 0; } function getLength(buf, p) { var initial = buf[p.place++]; if (!(initial & 0x80)) { return initial; } var octetLen = initial & 0xf; var val = 0; for (var i = 0, off = p.place; i < octetLen; i++, off++) { val <<= 8; val |= buf[off]; } p.place = off; return val; } function rmPadding(buf) { var i = 0; var len = buf.length - 1; while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) { i++; } if (i === 0) { return buf; } return buf.slice(i); } Signature.prototype._importDER = function _importDER(data, enc) { data = utils.toArray(data, enc); var p = new Position(); if (data[p.place++] !== 0x30) { return false; } var len = getLength(data, p); if (len + p.place !== data.length) { return false; } if (data[p.place++] !== 0x02) { return false; } var rlen = getLength(data, p); var r = data.slice(p.place, rlen + p.place); p.place += rlen; if (data[p.place++] !== 0x02) { return false; } var slen = getLength(data, p); if (data.length !== slen + p.place) { return false; } var s = data.slice(p.place, slen + p.place); if (r[0] === 0 && r[1] & 0x80) { r = r.slice(1); } if (s[0] === 0 && s[1] & 0x80) { s = s.slice(1); } this.r = new BN(r); this.s = new BN(s); this.recoveryParam = null; return true; }; function constructLength(arr, len) { if (len < 0x80) { arr.push(len); return; } var octets = 1 + ((Math.log(len) / Math.LN2) >>> 3); arr.push(octets | 0x80); while (--octets) { arr.push((len >>> (octets << 3)) & 0xff); } arr.push(len); } Signature.prototype.toDER = function toDER(enc) { var r = this.r.toArray(); var s = this.s.toArray(); // Pad values if (r[0] & 0x80) r = [0].concat(r); // Pad values if (s[0] & 0x80) s = [0].concat(s); r = rmPadding(r); s = rmPadding(s); while (!s[0] && !(s[1] & 0x80)) { s = s.slice(1); } var arr = [0x02]; constructLength(arr, r.length); arr = arr.concat(r); arr.push(0x02); constructLength(arr, s.length); var backHalf = arr.concat(s); var res = [0x30]; constructLength(res, backHalf.length); res = res.concat(backHalf); return utils.encode(res, enc); }; }, { "../../elliptic": 74, "bn.js": 25 }, ], 84: [ function (require, module, exports) { "use strict"; var hash = require("hash.js"); var elliptic = require("../../elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; var parseBytes = utils.parseBytes; var KeyPair = require("./key.js"); var Signature = require("./signature.js"); function EDDSA(curve) { assert(curve === "ed25519", "only tested with ed25519 so far"); if (!(this instanceof EDDSA)) return new EDDSA(curve); var curve = elliptic.curves[curve].curve; this.curve = curve; this.g = curve.g; this.g.precompute(curve.n.bitLength() + 1); this.pointClass = curve.point().constructor; this.encodingLength = Math.ceil(curve.n.bitLength() / 8); this.hash = hash.sha512; } module.exports = EDDSA; /** * @param {Array|String} message - message bytes * @param {Array|String|KeyPair} secret - secret bytes or a keypair * @returns {Signature} - signature */ EDDSA.prototype.sign = function sign(message, secret) { message = parseBytes(message); var key = this.keyFromSecret(secret); var r = this.hashInt(key.messagePrefix(), message); var R = this.g.mul(r); var Rencoded = this.encodePoint(R); var s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul( key.priv() ); var S = r.add(s_).umod(this.curve.n); return this.makeSignature({ R: R, S: S, Rencoded: Rencoded }); }; /** * @param {Array} message - message bytes * @param {Array|String|Signature} sig - sig bytes * @param {Array|String|Point|KeyPair} pub - public key * @returns {Boolean} - true if public key matches sig of message */ EDDSA.prototype.verify = function verify(message, sig, pub) { message = parseBytes(message); sig = this.makeSignature(sig); var key = this.keyFromPublic(pub); var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message); var SG = this.g.mul(sig.S()); var RplusAh = sig.R().add(key.pub().mul(h)); return RplusAh.eq(SG); }; EDDSA.prototype.hashInt = function hashInt() { var hash = this.hash(); for (var i = 0; i < arguments.length; i++) hash.update(arguments[i]); return utils.intFromLE(hash.digest()).umod(this.curve.n); }; EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) { return KeyPair.fromPublic(this, pub); }; EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) { return KeyPair.fromSecret(this, secret); }; EDDSA.prototype.makeSignature = function makeSignature(sig) { if (sig instanceof Signature) return sig; return new Signature(this, sig); }; /** * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2 * * EDDSA defines methods for encoding and decoding points and integers. These are * helper convenience methods, that pass along to utility functions implied * parameters. * */ EDDSA.prototype.encodePoint = function encodePoint(point) { var enc = point.getY().toArray("le", this.encodingLength); enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0; return enc; }; EDDSA.prototype.decodePoint = function decodePoint(bytes) { bytes = utils.parseBytes(bytes); var lastIx = bytes.length - 1; var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80); var xIsOdd = (bytes[lastIx] & 0x80) !== 0; var y = utils.intFromLE(normed); return this.curve.pointFromY(y, xIsOdd); }; EDDSA.prototype.encodeInt = function encodeInt(num) { return num.toArray("le", this.encodingLength); }; EDDSA.prototype.decodeInt = function decodeInt(bytes) { return utils.intFromLE(bytes); }; EDDSA.prototype.isPoint = function isPoint(val) { return val instanceof this.pointClass; }; }, { "../../elliptic": 74, "./key": 85, "./signature": 86, "hash.js": 93 }, ], 85: [ function (require, module, exports) { "use strict"; var elliptic = require("../../elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; var parseBytes = utils.parseBytes; var cachedProperty = utils.cachedProperty; /** * @param {EDDSA} eddsa - instance * @param {Object} params - public/private key parameters * * @param {Array} [params.secret] - secret seed bytes * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms) * @param {Array} [params.pub] - public key point encoded as bytes * */ function KeyPair(eddsa, params) { this.eddsa = eddsa; this._secret = parseBytes(params.secret); if (eddsa.isPoint(params.pub)) this._pub = params.pub; else this._pubBytes = parseBytes(params.pub); } KeyPair.fromPublic = function fromPublic(eddsa, pub) { if (pub instanceof KeyPair) return pub; return new KeyPair(eddsa, { pub: pub }); }; KeyPair.fromSecret = function fromSecret(eddsa, secret) { if (secret instanceof KeyPair) return secret; return new KeyPair(eddsa, { secret: secret }); }; KeyPair.prototype.secret = function secret() { return this._secret; }; cachedProperty(KeyPair, "pubBytes", function pubBytes() { return this.eddsa.encodePoint(this.pub()); }); cachedProperty(KeyPair, "pub", function pub() { if (this._pubBytes) return this.eddsa.decodePoint(this._pubBytes); return this.eddsa.g.mul(this.priv()); }); cachedProperty(KeyPair, "privBytes", function privBytes() { var eddsa = this.eddsa; var hash = this.hash(); var lastIx = eddsa.encodingLength - 1; var a = hash.slice(0, eddsa.encodingLength); a[0] &= 248; a[lastIx] &= 127; a[lastIx] |= 64; return a; }); cachedProperty(KeyPair, "priv", function priv() { return this.eddsa.decodeInt(this.privBytes()); }); cachedProperty(KeyPair, "hash", function hash() { return this.eddsa.hash().update(this.secret()).digest(); }); cachedProperty(KeyPair, "messagePrefix", function messagePrefix() { return this.hash().slice(this.eddsa.encodingLength); }); KeyPair.prototype.sign = function sign(message) { assert(this._secret, "KeyPair can only verify"); return this.eddsa.sign(message, this); }; KeyPair.prototype.verify = function verify(message, sig) { return this.eddsa.verify(message, sig, this); }; KeyPair.prototype.getSecret = function getSecret(enc) { assert(this._secret, "KeyPair is public only"); return utils.encode(this.secret(), enc); }; KeyPair.prototype.getPublic = function getPublic(enc) { return utils.encode(this.pubBytes(), enc); }; module.exports = KeyPair; }, { "../../elliptic": 74 }, ], 86: [ function (require, module, exports) { "use strict"; var BN = require("bn.js"); var elliptic = require("../../elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; var cachedProperty = utils.cachedProperty; var parseBytes = utils.parseBytes; /** * @param {EDDSA} eddsa - eddsa instance * @param {Array|Object} sig - * @param {Array|Point} [sig.R] - R point as Point or bytes * @param {Array|bn} [sig.S] - S scalar as bn or bytes * @param {Array} [sig.Rencoded] - R point encoded * @param {Array} [sig.Sencoded] - S scalar encoded */ function Signature(eddsa, sig) { this.eddsa = eddsa; if (typeof sig !== "object") sig = parseBytes(sig); if (Array.isArray(sig)) { sig = { R: sig.slice(0, eddsa.encodingLength), S: sig.slice(eddsa.encodingLength), }; } assert(sig.R && sig.S, "Signature without R or S"); if (eddsa.isPoint(sig.R)) this._R = sig.R; if (sig.S instanceof BN) this._S = sig.S; this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded; this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded; } cachedProperty(Signature, "S", function S() { return this.eddsa.decodeInt(this.Sencoded()); }); cachedProperty(Signature, "R", function R() { return this.eddsa.decodePoint(this.Rencoded()); }); cachedProperty(Signature, "Rencoded", function Rencoded() { return this.eddsa.encodePoint(this.R()); }); cachedProperty(Signature, "Sencoded", function Sencoded() { return this.eddsa.encodeInt(this.S()); }); Signature.prototype.toBytes = function toBytes() { return this.Rencoded().concat(this.Sencoded()); }; Signature.prototype.toHex = function toHex() { return utils.encode(this.toBytes(), "hex").toUpperCase(); }; module.exports = Signature; }, { "../../elliptic": 74, "bn.js": 25 }, ], 87: [ function (require, module, exports) { module.exports = { doubles: { step: 4, points: [ [ "e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a", "f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821", ], [ "8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508", "11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf", ], [ "175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739", "d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695", ], [ "363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640", "4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9", ], [ "8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c", "4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36", ], [ "723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda", "96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f", ], [ "eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa", "5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999", ], [ "100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0", "cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09", ], [ "e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d", "9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d", ], [ "feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d", "e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088", ], [ "da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1", "9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d", ], [ "53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0", "5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8", ], [ "8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047", "10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a", ], [ "385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862", "283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453", ], [ "6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7", "7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160", ], [ "3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd", "56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0", ], [ "85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83", "7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6", ], [ "948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a", "53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589", ], [ "6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8", "bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17", ], [ "e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d", "4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda", ], [ "e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725", "7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd", ], [ "213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754", "4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2", ], [ "4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c", "17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6", ], [ "fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6", "6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f", ], [ "76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39", "c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01", ], [ "c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891", "893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3", ], [ "d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b", "febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f", ], [ "b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03", "2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7", ], [ "e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d", "eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78", ], [ "a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070", "7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1", ], [ "90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4", "e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150", ], [ "8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da", "662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82", ], [ "e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11", "1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc", ], [ "8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e", "efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b", ], [ "e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41", "2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51", ], [ "b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef", "67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45", ], [ "d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8", "db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120", ], [ "324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d", "648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84", ], [ "4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96", "35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d", ], [ "9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd", "ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d", ], [ "6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5", "9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8", ], [ "a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266", "40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8", ], [ "7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71", "34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac", ], [ "928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac", "c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f", ], [ "85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751", "1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962", ], [ "ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e", "493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907", ], [ "827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241", "c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec", ], [ "eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3", "be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d", ], [ "e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f", "4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414", ], [ "1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19", "aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd", ], [ "146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be", "b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0", ], [ "fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9", "6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811", ], [ "da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2", "8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1", ], [ "a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13", "7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c", ], [ "174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c", "ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73", ], [ "959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba", "2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd", ], [ "d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151", "e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405", ], [ "64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073", "d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589", ], [ "8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458", "38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e", ], [ "13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b", "69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27", ], [ "bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366", "d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1", ], [ "8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa", "40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482", ], [ "8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0", "620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945", ], [ "dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787", "7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573", ], [ "f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e", "ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82", ], ], }, naf: { wnd: 7, points: [ [ "f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9", "388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672", ], [ "2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4", "d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6", ], [ "5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc", "6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da", ], [ "acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe", "cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37", ], [ "774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb", "d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b", ], [ "f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8", "ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81", ], [ "d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e", "581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58", ], [ "defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34", "4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77", ], [ "2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c", "85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a", ], [ "352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5", "321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c", ], [ "2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f", "2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67", ], [ "9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714", "73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402", ], [ "daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729", "a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55", ], [ "c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db", "2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482", ], [ "6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4", "e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82", ], [ "1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5", "b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396", ], [ "605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479", "2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49", ], [ "62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d", "80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf", ], [ "80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f", "1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a", ], [ "7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb", "d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7", ], [ "d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9", "eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933", ], [ "49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963", "758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a", ], [ "77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74", "958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6", ], [ "f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530", "e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37", ], [ "463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b", "5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e", ], [ "f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247", "cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6", ], [ "caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1", "cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476", ], [ "2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120", "4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40", ], [ "7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435", "91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61", ], [ "754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18", "673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683", ], [ "e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8", "59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5", ], [ "186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb", "3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b", ], [ "df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f", "55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417", ], [ "5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143", "efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868", ], [ "290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba", "e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a", ], [ "af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45", "f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6", ], [ "766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a", "744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996", ], [ "59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e", "c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e", ], [ "f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8", "e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d", ], [ "7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c", "30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2", ], [ "948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519", "e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e", ], [ "7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab", "100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437", ], [ "3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca", "ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311", ], [ "d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf", "8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4", ], [ "1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610", "68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575", ], [ "733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4", "f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d", ], [ "15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c", "d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d", ], [ "a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940", "edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629", ], [ "e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980", "a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06", ], [ "311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3", "66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374", ], [ "34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf", "9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee", ], [ "f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63", "4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1", ], [ "d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448", "fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b", ], [ "32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf", "5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661", ], [ "7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5", "8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6", ], [ "ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6", "8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e", ], [ "16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5", "5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d", ], [ "eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99", "f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc", ], [ "78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51", "f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4", ], [ "494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5", "42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c", ], [ "a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5", "204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b", ], [ "c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997", "4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913", ], [ "841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881", "73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154", ], [ "5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5", "39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865", ], [ "36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66", "d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc", ], [ "336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726", "ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224", ], [ "8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede", "6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e", ], [ "1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94", "60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6", ], [ "85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31", "3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511", ], [ "29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51", "b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b", ], [ "a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252", "ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2", ], [ "4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5", "cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c", ], [ "d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b", "6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3", ], [ "ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4", "322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d", ], [ "af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f", "6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700", ], [ "e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889", "2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4", ], [ "591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246", "b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196", ], [ "11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984", "998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4", ], [ "3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a", "b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257", ], [ "cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030", "bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13", ], [ "c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197", "6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096", ], [ "c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593", "c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38", ], [ "a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef", "21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f", ], [ "347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38", "60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448", ], [ "da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a", "49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a", ], [ "c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111", "5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4", ], [ "4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502", "7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437", ], [ "3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea", "be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7", ], [ "cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26", "8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d", ], [ "b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986", "39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a", ], [ "d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e", "62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54", ], [ "48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4", "25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77", ], [ "dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda", "ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517", ], [ "6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859", "cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10", ], [ "e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f", "f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125", ], [ "eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c", "6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e", ], [ "13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942", "fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1", ], [ "ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a", "1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2", ], [ "b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80", "5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423", ], [ "ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d", "438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8", ], [ "8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1", "cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758", ], [ "52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63", "c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375", ], [ "e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352", "6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d", ], [ "7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193", "ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec", ], [ "5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00", "9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0", ], [ "32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58", "ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c", ], [ "e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7", "d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4", ], [ "8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8", "c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f", ], [ "4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e", "67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649", ], [ "3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d", "cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826", ], [ "674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b", "299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5", ], [ "d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f", "f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87", ], [ "30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6", "462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b", ], [ "be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297", "62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc", ], [ "93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a", "7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c", ], [ "b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c", "ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f", ], [ "d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52", "4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a", ], [ "d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb", "bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46", ], [ "463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065", "bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f", ], [ "7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917", "603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03", ], [ "74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9", "cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08", ], [ "30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3", "553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8", ], [ "9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57", "712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373", ], [ "176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66", "ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3", ], [ "75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8", "9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8", ], [ "809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721", "9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1", ], [ "1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180", "4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9", ], ], }, }; }, {}, ], 88: [ function (require, module, exports) { "use strict"; var utils = exports; var BN = require("bn.js"); var minAssert = require("minimalistic-assert"); var minUtils = require("minimalistic-crypto-utils"); utils.assert = minAssert; utils.toArray = minUtils.toArray; utils.zero2 = minUtils.zero2; utils.toHex = minUtils.toHex; utils.encode = minUtils.encode; // Represent num in a w-NAF form function getNAF(num, w) { var naf = []; var ws = 1 << (w + 1); var k = num.clone(); while (k.cmpn(1) >= 0) { var z; if (k.isOdd()) { var mod = k.andln(ws - 1); if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod; else z = mod; k.isubn(z); } else { z = 0; } naf.push(z); // Optimization, shift by word if possible var shift = k.cmpn(0) !== 0 && k.andln(ws - 1) === 0 ? w + 1 : 1; for (var i = 1; i < shift; i++) naf.push(0); k.iushrn(shift); } return naf; } utils.getNAF = getNAF; // Represent k1, k2 in a Joint Sparse Form function getJSF(k1, k2) { var jsf = [[], []]; k1 = k1.clone(); k2 = k2.clone(); var d1 = 0; var d2 = 0; while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { // First phase var m14 = (k1.andln(3) + d1) & 3; var m24 = (k2.andln(3) + d2) & 3; if (m14 === 3) m14 = -1; if (m24 === 3) m24 = -1; var u1; if ((m14 & 1) === 0) { u1 = 0; } else { var m8 = (k1.andln(7) + d1) & 7; if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14; else u1 = m14; } jsf[0].push(u1); var u2; if ((m24 & 1) === 0) { u2 = 0; } else { var m8 = (k2.andln(7) + d2) & 7; if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24; else u2 = m24; } jsf[1].push(u2); // Second phase if (2 * d1 === u1 + 1) d1 = 1 - d1; if (2 * d2 === u2 + 1) d2 = 1 - d2; k1.iushrn(1); k2.iushrn(1); } return jsf; } utils.getJSF = getJSF; function cachedProperty(obj, name, computer) { var key = "_" + name; obj.prototype[name] = function cachedProperty() { return this[key] !== undefined ? this[key] : (this[key] = computer.call(this)); }; } utils.cachedProperty = cachedProperty; function parseBytes(bytes) { return typeof bytes === "string" ? utils.toArray(bytes, "hex") : bytes; } utils.parseBytes = parseBytes; function intFromLE(bytes) { return new BN(bytes, "hex", "le"); } utils.intFromLE = intFromLE; }, { "bn.js": 25, "minimalistic-assert": 112, "minimalistic-crypto-utils": 113, }, ], 89: [ function (require, module, exports) { module.exports = { _from: "elliptic@^6.0.0", _id: "elliptic@6.4.0", _inBundle: false, _integrity: "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", _location: "/browserify/elliptic", _phantomChildren: {}, _requested: { type: "range", registry: true, raw: "elliptic@^6.0.0", name: "elliptic", escapedName: "elliptic", rawSpec: "^6.0.0", saveSpec: null, fetchSpec: "^6.0.0", }, _requiredBy: [ "/browserify/browserify-sign", "/browserify/create-ecdh", ], _resolved: "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", _shasum: "cac9af8762c85836187003c8dfe193e5e2eae5df", _spec: "elliptic@^6.0.0", _where: "/usr/local/lib/node_modules/browserify/node_modules/browserify-sign", author: { name: "Fedor Indutny", email: "fedor@indutny.com", }, bugs: { url: "https://github.com/indutny/elliptic/issues", }, bundleDependencies: false, dependencies: { "bn.js": "^4.4.0", brorand: "^1.0.1", "hash.js": "^1.0.0", "hmac-drbg": "^1.0.0", inherits: "^2.0.1", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.0", }, deprecated: false, description: "EC cryptography", devDependencies: { brfs: "^1.4.3", coveralls: "^2.11.3", grunt: "^0.4.5", "grunt-browserify": "^5.0.0", "grunt-cli": "^1.2.0", "grunt-contrib-connect": "^1.0.0", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-uglify": "^1.0.1", "grunt-mocha-istanbul": "^3.0.1", "grunt-saucelabs": "^8.6.2", istanbul: "^0.4.2", jscs: "^2.9.0", jshint: "^2.6.0", mocha: "^2.1.0", }, files: ["lib"], homepage: "https://github.com/indutny/elliptic", keywords: ["EC", "Elliptic", "curve", "Cryptography"], license: "MIT", main: "lib/elliptic.js", name: "elliptic", repository: { type: "git", url: "git+ssh://git@github.com/indutny/elliptic.git", }, scripts: { jscs: "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", jshint: "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", lint: "npm run jscs && npm run jshint", test: "npm run lint && npm run unit", unit: "istanbul test _mocha --reporter=spec test/index.js", version: "grunt dist && git add dist/", }, version: "6.4.0", }; }, {}, ], 90: [ function (require, module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. function EventEmitter() { this._events = this._events || {}; this._maxListeners = this._maxListeners || undefined; } module.exports = EventEmitter; // Backwards-compat with node 0.10.x EventEmitter.EventEmitter = EventEmitter; EventEmitter.prototype._events = undefined; EventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are // added to it. This is a useful default which helps finding memory leaks. EventEmitter.defaultMaxListeners = 10; // Obviously not all Emitters should be limited to 10. This function allows // that to be increased. Set to zero for unlimited. EventEmitter.prototype.setMaxListeners = function (n) { if (!isNumber(n) || n < 0 || isNaN(n)) throw TypeError("n must be a positive number"); this._maxListeners = n; return this; }; EventEmitter.prototype.emit = function (type) { var er, handler, len, args, i, listeners; if (!this._events) this._events = {}; // If there is no 'error' event listener then throw. if (type === "error") { if ( !this._events.error || (isObject(this._events.error) && !this._events.error.length) ) { er = arguments[1]; if (er instanceof Error) { throw er; // Unhandled 'error' event } else { // At least give some kind of context to the user var err = new Error( 'Uncaught, unspecified "error" event. (' + er + ")" ); err.context = er; throw err; } } } handler = this._events[type]; if (isUndefined(handler)) return false; if (isFunction(handler)) { switch (arguments.length) { // fast cases case 1: handler.call(this); break; case 2: handler.call(this, arguments[1]); break; case 3: handler.call(this, arguments[1], arguments[2]); break; // slower default: args = Array.prototype.slice.call(arguments, 1); handler.apply(this, args); } } else if (isObject(handler)) { args = Array.prototype.slice.call(arguments, 1); listeners = handler.slice(); len = listeners.length; for (i = 0; i < len; i++) listeners[i].apply(this, args); } return true; }; EventEmitter.prototype.addListener = function (type, listener) { var m; if (!isFunction(listener)) throw TypeError("listener must be a function"); if (!this._events) this._events = {}; // To avoid recursion in the case that type === "newListener"! Before // adding it to the listeners, first emit "newListener". if (this._events.newListener) this.emit( "newListener", type, isFunction(listener.listener) ? listener.listener : listener ); if (!this._events[type]) // Optimize the case of one listener. Don't need the extra array object. this._events[type] = listener; else if (isObject(this._events[type])) // If we've already got an array, just append. this._events[type].push(listener); // Adding the second element, need to change to array. else this._events[type] = [this._events[type], listener]; // Check for listener leak if (isObject(this._events[type]) && !this._events[type].warned) { if (!isUndefined(this._maxListeners)) { m = this._maxListeners; } else { m = EventEmitter.defaultMaxListeners; } if (m && m > 0 && this._events[type].length > m) { this._events[type].warned = true; console.error( "(node) warning: possible EventEmitter memory " + "leak detected. %d listeners added. " + "Use emitter.setMaxListeners() to increase limit.", this._events[type].length ); if (typeof console.trace === "function") { // not supported in IE 10 console.trace(); } } } return this; }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.once = function (type, listener) { if (!isFunction(listener)) throw TypeError("listener must be a function"); var fired = false; function g() { this.removeListener(type, g); if (!fired) { fired = true; listener.apply(this, arguments); } } g.listener = listener; this.on(type, g); return this; }; // emits a 'removeListener' event iff the listener was removed EventEmitter.prototype.removeListener = function (type, listener) { var list, position, length, i; if (!isFunction(listener)) throw TypeError("listener must be a function"); if (!this._events || !this._events[type]) return this; list = this._events[type]; length = list.length; position = -1; if ( list === listener || (isFunction(list.listener) && list.listener === listener) ) { delete this._events[type]; if (this._events.removeListener) this.emit("removeListener", type, listener); } else if (isObject(list)) { for (i = length; i-- > 0; ) { if ( list[i] === listener || (list[i].listener && list[i].listener === listener) ) { position = i; break; } } if (position < 0) return this; if (list.length === 1) { list.length = 0; delete this._events[type]; } else { list.splice(position, 1); } if (this._events.removeListener) this.emit("removeListener", type, listener); } return this; }; EventEmitter.prototype.removeAllListeners = function (type) { var key, listeners; if (!this._events) return this; // not listening for removeListener, no need to emit if (!this._events.removeListener) { if (arguments.length === 0) this._events = {}; else if (this._events[type]) delete this._events[type]; return this; } // emit removeListener for all listeners on all events if (arguments.length === 0) { for (key in this._events) { if (key === "removeListener") continue; this.removeAllListeners(key); } this.removeAllListeners("removeListener"); this._events = {}; return this; } listeners = this._events[type]; if (isFunction(listeners)) { this.removeListener(type, listeners); } else if (listeners) { // LIFO order while (listeners.length) this.removeListener(type, listeners[listeners.length - 1]); } delete this._events[type]; return this; }; EventEmitter.prototype.listeners = function (type) { var ret; if (!this._events || !this._events[type]) ret = []; else if (isFunction(this._events[type])) ret = [this._events[type]]; else ret = this._events[type].slice(); return ret; }; EventEmitter.prototype.listenerCount = function (type) { if (this._events) { var evlistener = this._events[type]; if (isFunction(evlistener)) return 1; else if (evlistener) return evlistener.length; } return 0; }; EventEmitter.listenerCount = function (emitter, type) { return emitter.listenerCount(type); }; function isFunction(arg) { return typeof arg === "function"; } function isNumber(arg) { return typeof arg === "number"; } function isObject(arg) { return typeof arg === "object" && arg !== null; } function isUndefined(arg) { return arg === void 0; } }, {}, ], 91: [ function (require, module, exports) { (function (Buffer) { var md5 = require("create-hash/md5"); module.exports = EVP_BytesToKey; function EVP_BytesToKey(password, salt, keyLen, ivLen) { if (!Buffer.isBuffer(password)) { password = new Buffer(password, "binary"); } if (salt && !Buffer.isBuffer(salt)) { salt = new Buffer(salt, "binary"); } keyLen = keyLen / 8; ivLen = ivLen || 0; var ki = 0; var ii = 0; var key = new Buffer(keyLen); var iv = new Buffer(ivLen); var addmd = 0; var md_buf; var i; var bufs = []; while (true) { if (addmd++ > 0) { bufs.push(md_buf); } bufs.push(password); if (salt) { bufs.push(salt); } md_buf = md5(Buffer.concat(bufs)); bufs = []; i = 0; if (keyLen > 0) { while (true) { if (keyLen === 0) { break; } if (i === md_buf.length) { break; } key[ki++] = md_buf[i]; keyLen--; i++; } } if (ivLen > 0 && i !== md_buf.length) { while (true) { if (ivLen === 0) { break; } if (i === md_buf.length) { break; } iv[ii++] = md_buf[i]; ivLen--; i++; } } if (keyLen === 0 && ivLen === 0) { break; } } for (i = 0; i < md_buf.length; i++) { md_buf[i] = 0; } return { key: key, iv: iv, }; } }).call(this, require("buffer").Buffer); }, { buffer: 54, "create-hash/md5": 60 }, ], 92: [ function (require, module, exports) { (function (Buffer) { "use strict"; var Transform = require("stream").Transform; var inherits = require("inherits"); function HashBase(blockSize) { Transform.call(this); this._block = new Buffer(blockSize); this._blockSize = blockSize; this._blockOffset = 0; this._length = [0, 0, 0, 0]; this._finalized = false; } inherits(HashBase, Transform); HashBase.prototype._transform = function (chunk, encoding, callback) { var error = null; try { if (encoding !== "buffer") chunk = new Buffer(chunk, encoding); this.update(chunk); } catch (err) { error = err; } callback(error); }; HashBase.prototype._flush = function (callback) { var error = null; try { this.push(this._digest()); } catch (err) { error = err; } callback(error); }; HashBase.prototype.update = function (data, encoding) { if (!Buffer.isBuffer(data) && typeof data !== "string") throw new TypeError("Data must be a string or a buffer"); if (this._finalized) throw new Error("Digest already called"); if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || "binary"); // consume data var block = this._block; var offset = 0; while ( this._blockOffset + data.length - offset >= this._blockSize ) { for (var i = this._blockOffset; i < this._blockSize; ) block[i++] = data[offset++]; this._update(); this._blockOffset = 0; } while (offset < data.length) block[this._blockOffset++] = data[offset++]; // update length for (var j = 0, carry = data.length * 8; carry > 0; ++j) { this._length[j] += carry; carry = (this._length[j] / 0x0100000000) | 0; if (carry > 0) this._length[j] -= 0x0100000000 * carry; } return this; }; HashBase.prototype._update = function (data) { throw new Error("_update is not implemented"); }; HashBase.prototype.digest = function (encoding) { if (this._finalized) throw new Error("Digest already called"); this._finalized = true; var digest = this._digest(); if (encoding !== undefined) digest = digest.toString(encoding); return digest; }; HashBase.prototype._digest = function () { throw new Error("_digest is not implemented"); }; module.exports = HashBase; }).call(this, require("buffer").Buffer); }, { buffer: 54, inherits: 108, stream: 157 }, ], 93: [ function (require, module, exports) { var hash = exports; hash.utils = require("./hash/utils.js"); hash.common = require("./hash/common.js"); hash.sha = require("./hash/sha.js"); hash.ripemd = require("./hash/ripemd.js"); hash.hmac = require("./hash/hmac.js"); // Proxy hash functions to the main object hash.sha1 = hash.sha.sha1; hash.sha256 = hash.sha.sha256; hash.sha224 = hash.sha.sha224; hash.sha384 = hash.sha.sha384; hash.sha512 = hash.sha.sha512; hash.ripemd160 = hash.ripemd.ripemd160; }, { "./hash/common": 94, "./hash/hmac": 95, "./hash/ripemd": 96, "./hash/sha": 97, "./hash/utils": 104, }, ], 94: [ function (require, module, exports) { "use strict"; var utils = require("./utils.js"); var assert = require("minimalistic-assert"); function BlockHash() { this.pending = null; this.pendingTotal = 0; this.blockSize = this.constructor.blockSize; this.outSize = this.constructor.outSize; this.hmacStrength = this.constructor.hmacStrength; this.padLength = this.constructor.padLength / 8; this.endian = "big"; this._delta8 = this.blockSize / 8; this._delta32 = this.blockSize / 32; } exports.BlockHash = BlockHash; BlockHash.prototype.update = function update(msg, enc) { // Convert message to array, pad it, and join into 32bit blocks msg = utils.toArray(msg, enc); if (!this.pending) this.pending = msg; else this.pending = this.pending.concat(msg); this.pendingTotal += msg.length; // Enough data, try updating if (this.pending.length >= this._delta8) { msg = this.pending; // Process pending data in blocks var r = msg.length % this._delta8; this.pending = msg.slice(msg.length - r, msg.length); if (this.pending.length === 0) this.pending = null; msg = utils.join32(msg, 0, msg.length - r, this.endian); for (var i = 0; i < msg.length; i += this._delta32) this._update(msg, i, i + this._delta32); } return this; }; BlockHash.prototype.digest = function digest(enc) { this.update(this._pad()); assert(this.pending === null); return this._digest(enc); }; BlockHash.prototype._pad = function pad() { var len = this.pendingTotal; var bytes = this._delta8; var k = bytes - ((len + this.padLength) % bytes); var res = new Array(k + this.padLength); res[0] = 0x80; for (var i = 1; i < k; i++) res[i] = 0; // Append length len <<= 3; if (this.endian === "big") { for (var t = 8; t < this.padLength; t++) res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = (len >>> 24) & 0xff; res[i++] = (len >>> 16) & 0xff; res[i++] = (len >>> 8) & 0xff; res[i++] = len & 0xff; } else { res[i++] = len & 0xff; res[i++] = (len >>> 8) & 0xff; res[i++] = (len >>> 16) & 0xff; res[i++] = (len >>> 24) & 0xff; res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = 0; for (t = 8; t < this.padLength; t++) res[i++] = 0; } return res; }; }, { "./utils": 104, "minimalistic-assert": 112 }, ], 95: [ function (require, module, exports) { "use strict"; var utils = require("./utils.js"); var assert = require("minimalistic-assert"); function Hmac(hash, key, enc) { if (!(this instanceof Hmac)) return new Hmac(hash, key, enc); this.Hash = hash; this.blockSize = hash.blockSize / 8; this.outSize = hash.outSize / 8; this.inner = null; this.outer = null; this._init(utils.toArray(key, enc)); } module.exports = Hmac; Hmac.prototype._init = function init(key) { // Shorten key, if needed if (key.length > this.blockSize) key = new this.Hash().update(key).digest(); assert(key.length <= this.blockSize); // Add padding to key for (var i = key.length; i < this.blockSize; i++) key.push(0); for (i = 0; i < key.length; i++) key[i] ^= 0x36; this.inner = new this.Hash().update(key); // 0x36 ^ 0x5c = 0x6a for (i = 0; i < key.length; i++) key[i] ^= 0x6a; this.outer = new this.Hash().update(key); }; Hmac.prototype.update = function update(msg, enc) { this.inner.update(msg, enc); return this; }; Hmac.prototype.digest = function digest(enc) { this.outer.update(this.inner.digest()); return this.outer.digest(enc); }; }, { "./utils": 104, "minimalistic-assert": 112 }, ], 96: [ function (require, module, exports) { "use strict"; var utils = require("./utils.js"); var common = require("./common.js"); var rotl32 = utils.rotl32; var sum32 = utils.sum32; var sum32_3 = utils.sum32_3; var sum32_4 = utils.sum32_4; var BlockHash = common.BlockHash; function RIPEMD160() { if (!(this instanceof RIPEMD160)) return new RIPEMD160(); BlockHash.call(this); this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; this.endian = "little"; } utils.inherits(RIPEMD160, BlockHash); exports.ripemd160 = RIPEMD160; RIPEMD160.blockSize = 512; RIPEMD160.outSize = 160; RIPEMD160.hmacStrength = 192; RIPEMD160.padLength = 64; RIPEMD160.prototype._update = function update(msg, start) { var A = this.h[0]; var B = this.h[1]; var C = this.h[2]; var D = this.h[3]; var E = this.h[4]; var Ah = A; var Bh = B; var Ch = C; var Dh = D; var Eh = E; for (var j = 0; j < 80; j++) { var T = sum32( rotl32(sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E ); A = E; E = D; D = rotl32(C, 10); C = B; B = T; T = sum32( rotl32( sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j] ), Eh ); Ah = Eh; Eh = Dh; Dh = rotl32(Ch, 10); Ch = Bh; Bh = T; } T = sum32_3(this.h[1], C, Dh); this.h[1] = sum32_3(this.h[2], D, Eh); this.h[2] = sum32_3(this.h[3], E, Ah); this.h[3] = sum32_3(this.h[4], A, Bh); this.h[4] = sum32_3(this.h[0], B, Ch); this.h[0] = T; }; RIPEMD160.prototype._digest = function digest(enc) { if (enc === "hex") return utils.toHex32(this.h, "little"); else return utils.split32(this.h, "little"); }; function f(j, x, y, z) { if (j <= 15) return x ^ y ^ z; else if (j <= 31) return (x & y) | (~x & z); else if (j <= 47) return (x | ~y) ^ z; else if (j <= 63) return (x & z) | (y & ~z); else return x ^ (y | ~z); } function K(j) { if (j <= 15) return 0x00000000; else if (j <= 31) return 0x5a827999; else if (j <= 47) return 0x6ed9eba1; else if (j <= 63) return 0x8f1bbcdc; else return 0xa953fd4e; } function Kh(j) { if (j <= 15) return 0x50a28be6; else if (j <= 31) return 0x5c4dd124; else if (j <= 47) return 0x6d703ef3; else if (j <= 63) return 0x7a6d76e9; else return 0x00000000; } var r = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, ]; var rh = [ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, ]; var s = [ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6, ]; var sh = [ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11, ]; }, { "./common": 94, "./utils": 104 }, ], 97: [ function (require, module, exports) { "use strict"; exports.sha1 = require("./sha/1.js"); exports.sha224 = require("./sha/224.js"); exports.sha256 = require("./sha/256.js"); exports.sha384 = require("./sha/384.js"); exports.sha512 = require("./sha/512.js"); }, { "./sha/1": 98, "./sha/224": 99, "./sha/256": 100, "./sha/384": 101, "./sha/512": 102, }, ], 98: [ function (require, module, exports) { "use strict"; var utils = require("../utils.js"); var common = require("../common.js"); var shaCommon = require("./common.js"); var rotl32 = utils.rotl32; var sum32 = utils.sum32; var sum32_5 = utils.sum32_5; var ft_1 = shaCommon.ft_1; var BlockHash = common.BlockHash; var sha1_K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; function SHA1() { if (!(this instanceof SHA1)) return new SHA1(); BlockHash.call(this); this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; this.W = new Array(80); } utils.inherits(SHA1, BlockHash); module.exports = SHA1; SHA1.blockSize = 512; SHA1.outSize = 160; SHA1.hmacStrength = 80; SHA1.padLength = 64; SHA1.prototype._update = function _update(msg, start) { var W = this.W; for (var i = 0; i < 16; i++) W[i] = msg[start + i]; for (; i < W.length; i++) W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); var a = this.h[0]; var b = this.h[1]; var c = this.h[2]; var d = this.h[3]; var e = this.h[4]; for (i = 0; i < W.length; i++) { var s = ~~(i / 20); var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]); e = d; d = c; c = rotl32(b, 30); b = a; a = t; } this.h[0] = sum32(this.h[0], a); this.h[1] = sum32(this.h[1], b); this.h[2] = sum32(this.h[2], c); this.h[3] = sum32(this.h[3], d); this.h[4] = sum32(this.h[4], e); }; SHA1.prototype._digest = function digest(enc) { if (enc === "hex") return utils.toHex32(this.h, "big"); else return utils.split32(this.h, "big"); }; }, { "../common": 94, "../utils": 104, "./common": 103 }, ], 99: [ function (require, module, exports) { "use strict"; var utils = require("../utils.js"); var SHA256 = require("./256.js"); function SHA224() { if (!(this instanceof SHA224)) return new SHA224(); SHA256.call(this); this.h = [ 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4, ]; } utils.inherits(SHA224, SHA256); module.exports = SHA224; SHA224.blockSize = 512; SHA224.outSize = 224; SHA224.hmacStrength = 192; SHA224.padLength = 64; SHA224.prototype._digest = function digest(enc) { // Just truncate output if (enc === "hex") return utils.toHex32(this.h.slice(0, 7), "big"); else return utils.split32(this.h.slice(0, 7), "big"); }; }, { "../utils": 104, "./256": 100 }, ], 100: [ function (require, module, exports) { "use strict"; var utils = require("../utils.js"); var common = require("../common.js"); var shaCommon = require("./common.js"); var assert = require("minimalistic-assert"); var sum32 = utils.sum32; var sum32_4 = utils.sum32_4; var sum32_5 = utils.sum32_5; var ch32 = shaCommon.ch32; var maj32 = shaCommon.maj32; var s0_256 = shaCommon.s0_256; var s1_256 = shaCommon.s1_256; var g0_256 = shaCommon.g0_256; var g1_256 = shaCommon.g1_256; var BlockHash = common.BlockHash; var sha256_K = [ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, ]; function SHA256() { if (!(this instanceof SHA256)) return new SHA256(); BlockHash.call(this); this.h = [ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, ]; this.k = sha256_K; this.W = new Array(64); } utils.inherits(SHA256, BlockHash); module.exports = SHA256; SHA256.blockSize = 512; SHA256.outSize = 256; SHA256.hmacStrength = 192; SHA256.padLength = 64; SHA256.prototype._update = function _update(msg, start) { var W = this.W; for (var i = 0; i < 16; i++) W[i] = msg[start + i]; for (; i < W.length; i++) W[i] = sum32_4( g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16] ); var a = this.h[0]; var b = this.h[1]; var c = this.h[2]; var d = this.h[3]; var e = this.h[4]; var f = this.h[5]; var g = this.h[6]; var h = this.h[7]; assert(this.k.length === W.length); for (i = 0; i < W.length; i++) { var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]); var T2 = sum32(s0_256(a), maj32(a, b, c)); h = g; g = f; f = e; e = sum32(d, T1); d = c; c = b; b = a; a = sum32(T1, T2); } this.h[0] = sum32(this.h[0], a); this.h[1] = sum32(this.h[1], b); this.h[2] = sum32(this.h[2], c); this.h[3] = sum32(this.h[3], d); this.h[4] = sum32(this.h[4], e); this.h[5] = sum32(this.h[5], f); this.h[6] = sum32(this.h[6], g); this.h[7] = sum32(this.h[7], h); }; SHA256.prototype._digest = function digest(enc) { if (enc === "hex") return utils.toHex32(this.h, "big"); else return utils.split32(this.h, "big"); }; }, { "../common": 94, "../utils": 104, "./common": 103, "minimalistic-assert": 112, }, ], 101: [ function (require, module, exports) { "use strict"; var utils = require("../utils.js"); var SHA512 = require("./512.js"); function SHA384() { if (!(this instanceof SHA384)) return new SHA384(); SHA512.call(this); this.h = [ 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939, 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4, ]; } utils.inherits(SHA384, SHA512); module.exports = SHA384; SHA384.blockSize = 1024; SHA384.outSize = 384; SHA384.hmacStrength = 192; SHA384.padLength = 128; SHA384.prototype._digest = function digest(enc) { if (enc === "hex") return utils.toHex32(this.h.slice(0, 12), "big"); else return utils.split32(this.h.slice(0, 12), "big"); }; }, { "../utils": 104, "./512": 102 }, ], 102: [ function (require, module, exports) { "use strict"; var utils = require("../utils.js"); var common = require("../common.js"); var assert = require("minimalistic-assert"); var rotr64_hi = utils.rotr64_hi; var rotr64_lo = utils.rotr64_lo; var shr64_hi = utils.shr64_hi; var shr64_lo = utils.shr64_lo; var sum64 = utils.sum64; var sum64_hi = utils.sum64_hi; var sum64_lo = utils.sum64_lo; var sum64_4_hi = utils.sum64_4_hi; var sum64_4_lo = utils.sum64_4_lo; var sum64_5_hi = utils.sum64_5_hi; var sum64_5_lo = utils.sum64_5_lo; var BlockHash = common.BlockHash; var sha512_K = [ 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817, ]; function SHA512() { if (!(this instanceof SHA512)) return new SHA512(); BlockHash.call(this); this.h = [ 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1, 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179, ]; this.k = sha512_K; this.W = new Array(160); } utils.inherits(SHA512, BlockHash); module.exports = SHA512; SHA512.blockSize = 1024; SHA512.outSize = 512; SHA512.hmacStrength = 192; SHA512.padLength = 128; SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) { var W = this.W; // 32 x 32bit words for (var i = 0; i < 32; i++) W[i] = msg[start + i]; for (; i < W.length; i += 2) { var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2 var c0_lo = g1_512_lo(W[i - 4], W[i - 3]); var c1_hi = W[i - 14]; // i - 7 var c1_lo = W[i - 13]; var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15 var c2_lo = g0_512_lo(W[i - 30], W[i - 29]); var c3_hi = W[i - 32]; // i - 16 var c3_lo = W[i - 31]; W[i] = sum64_4_hi( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo ); W[i + 1] = sum64_4_lo( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo ); } }; SHA512.prototype._update = function _update(msg, start) { this._prepareBlock(msg, start); var W = this.W; var ah = this.h[0]; var al = this.h[1]; var bh = this.h[2]; var bl = this.h[3]; var ch = this.h[4]; var cl = this.h[5]; var dh = this.h[6]; var dl = this.h[7]; var eh = this.h[8]; var el = this.h[9]; var fh = this.h[10]; var fl = this.h[11]; var gh = this.h[12]; var gl = this.h[13]; var hh = this.h[14]; var hl = this.h[15]; assert(this.k.length === W.length); for (var i = 0; i < W.length; i += 2) { var c0_hi = hh; var c0_lo = hl; var c1_hi = s1_512_hi(eh, el); var c1_lo = s1_512_lo(eh, el); var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl); var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl); var c3_hi = this.k[i]; var c3_lo = this.k[i + 1]; var c4_hi = W[i]; var c4_lo = W[i + 1]; var T1_hi = sum64_5_hi( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo ); var T1_lo = sum64_5_lo( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo ); c0_hi = s0_512_hi(ah, al); c0_lo = s0_512_lo(ah, al); c1_hi = maj64_hi(ah, al, bh, bl, ch, cl); c1_lo = maj64_lo(ah, al, bh, bl, ch, cl); var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo); var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo); hh = gh; hl = gl; gh = fh; gl = fl; fh = eh; fl = el; eh = sum64_hi(dh, dl, T1_hi, T1_lo); el = sum64_lo(dl, dl, T1_hi, T1_lo); dh = ch; dl = cl; ch = bh; cl = bl; bh = ah; bl = al; ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo); al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo); } sum64(this.h, 0, ah, al); sum64(this.h, 2, bh, bl); sum64(this.h, 4, ch, cl); sum64(this.h, 6, dh, dl); sum64(this.h, 8, eh, el); sum64(this.h, 10, fh, fl); sum64(this.h, 12, gh, gl); sum64(this.h, 14, hh, hl); }; SHA512.prototype._digest = function digest(enc) { if (enc === "hex") return utils.toHex32(this.h, "big"); else return utils.split32(this.h, "big"); }; function ch64_hi(xh, xl, yh, yl, zh) { var r = (xh & yh) ^ (~xh & zh); if (r < 0) r += 0x100000000; return r; } function ch64_lo(xh, xl, yh, yl, zh, zl) { var r = (xl & yl) ^ (~xl & zl); if (r < 0) r += 0x100000000; return r; } function maj64_hi(xh, xl, yh, yl, zh) { var r = (xh & yh) ^ (xh & zh) ^ (yh & zh); if (r < 0) r += 0x100000000; return r; } function maj64_lo(xh, xl, yh, yl, zh, zl) { var r = (xl & yl) ^ (xl & zl) ^ (yl & zl); if (r < 0) r += 0x100000000; return r; } function s0_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 28); var c1_hi = rotr64_hi(xl, xh, 2); // 34 var c2_hi = rotr64_hi(xl, xh, 7); // 39 var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function s0_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 28); var c1_lo = rotr64_lo(xl, xh, 2); // 34 var c2_lo = rotr64_lo(xl, xh, 7); // 39 var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } function s1_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 14); var c1_hi = rotr64_hi(xh, xl, 18); var c2_hi = rotr64_hi(xl, xh, 9); // 41 var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function s1_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 14); var c1_lo = rotr64_lo(xh, xl, 18); var c2_lo = rotr64_lo(xl, xh, 9); // 41 var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } function g0_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 1); var c1_hi = rotr64_hi(xh, xl, 8); var c2_hi = shr64_hi(xh, xl, 7); var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function g0_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 1); var c1_lo = rotr64_lo(xh, xl, 8); var c2_lo = shr64_lo(xh, xl, 7); var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } function g1_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 19); var c1_hi = rotr64_hi(xl, xh, 29); // 61 var c2_hi = shr64_hi(xh, xl, 6); var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function g1_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 19); var c1_lo = rotr64_lo(xl, xh, 29); // 61 var c2_lo = shr64_lo(xh, xl, 6); var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } }, { "../common": 94, "../utils": 104, "minimalistic-assert": 112 }, ], 103: [ function (require, module, exports) { "use strict"; var utils = require("../utils.js"); var rotr32 = utils.rotr32; function ft_1(s, x, y, z) { if (s === 0) return ch32(x, y, z); if (s === 1 || s === 3) return p32(x, y, z); if (s === 2) return maj32(x, y, z); } exports.ft_1 = ft_1; function ch32(x, y, z) { return (x & y) ^ (~x & z); } exports.ch32 = ch32; function maj32(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); } exports.maj32 = maj32; function p32(x, y, z) { return x ^ y ^ z; } exports.p32 = p32; function s0_256(x) { return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22); } exports.s0_256 = s0_256; function s1_256(x) { return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25); } exports.s1_256 = s1_256; function g0_256(x) { return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3); } exports.g0_256 = g0_256; function g1_256(x) { return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10); } exports.g1_256 = g1_256; }, { "../utils": 104 }, ], 104: [ function (require, module, exports) { "use strict"; var assert = require("minimalistic-assert"); var inherits = require("inherits"); exports.inherits = inherits; function toArray(msg, enc) { if (Array.isArray(msg)) return msg.slice(); if (!msg) return []; var res = []; if (typeof msg === "string") { if (!enc) { for (var i = 0; i < msg.length; i++) { var c = msg.charCodeAt(i); var hi = c >> 8; var lo = c & 0xff; if (hi) res.push(hi, lo); else res.push(lo); } } else if (enc === "hex") { msg = msg.replace(/[^a-z0-9]+/gi, ""); if (msg.length % 2 !== 0) msg = "0" + msg; for (i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16)); } } else { for (i = 0; i < msg.length; i++) res[i] = msg[i] | 0; } return res; } exports.toArray = toArray; function toHex(msg) { var res = ""; for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16)); return res; } exports.toHex = toHex; function htonl(w) { var res = (w >>> 24) | ((w >>> 8) & 0xff00) | ((w << 8) & 0xff0000) | ((w & 0xff) << 24); return res >>> 0; } exports.htonl = htonl; function toHex32(msg, endian) { var res = ""; for (var i = 0; i < msg.length; i++) { var w = msg[i]; if (endian === "little") w = htonl(w); res += zero8(w.toString(16)); } return res; } exports.toHex32 = toHex32; function zero2(word) { if (word.length === 1) return "0" + word; else return word; } exports.zero2 = zero2; function zero8(word) { if (word.length === 7) return "0" + word; else if (word.length === 6) return "00" + word; else if (word.length === 5) return "000" + word; else if (word.length === 4) return "0000" + word; else if (word.length === 3) return "00000" + word; else if (word.length === 2) return "000000" + word; else if (word.length === 1) return "0000000" + word; else return word; } exports.zero8 = zero8; function join32(msg, start, end, endian) { var len = end - start; assert(len % 4 === 0); var res = new Array(len / 4); for (var i = 0, k = start; i < res.length; i++, k += 4) { var w; if (endian === "big") w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3]; else w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k]; res[i] = w >>> 0; } return res; } exports.join32 = join32; function split32(msg, endian) { var res = new Array(msg.length * 4); for (var i = 0, k = 0; i < msg.length; i++, k += 4) { var m = msg[i]; if (endian === "big") { res[k] = m >>> 24; res[k + 1] = (m >>> 16) & 0xff; res[k + 2] = (m >>> 8) & 0xff; res[k + 3] = m & 0xff; } else { res[k + 3] = m >>> 24; res[k + 2] = (m >>> 16) & 0xff; res[k + 1] = (m >>> 8) & 0xff; res[k] = m & 0xff; } } return res; } exports.split32 = split32; function rotr32(w, b) { return (w >>> b) | (w << (32 - b)); } exports.rotr32 = rotr32; function rotl32(w, b) { return (w << b) | (w >>> (32 - b)); } exports.rotl32 = rotl32; function sum32(a, b) { return (a + b) >>> 0; } exports.sum32 = sum32; function sum32_3(a, b, c) { return (a + b + c) >>> 0; } exports.sum32_3 = sum32_3; function sum32_4(a, b, c, d) { return (a + b + c + d) >>> 0; } exports.sum32_4 = sum32_4; function sum32_5(a, b, c, d, e) { return (a + b + c + d + e) >>> 0; } exports.sum32_5 = sum32_5; function sum64(buf, pos, ah, al) { var bh = buf[pos]; var bl = buf[pos + 1]; var lo = (al + bl) >>> 0; var hi = (lo < al ? 1 : 0) + ah + bh; buf[pos] = hi >>> 0; buf[pos + 1] = lo; } exports.sum64 = sum64; function sum64_hi(ah, al, bh, bl) { var lo = (al + bl) >>> 0; var hi = (lo < al ? 1 : 0) + ah + bh; return hi >>> 0; } exports.sum64_hi = sum64_hi; function sum64_lo(ah, al, bh, bl) { var lo = al + bl; return lo >>> 0; } exports.sum64_lo = sum64_lo; function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { var carry = 0; var lo = al; lo = (lo + bl) >>> 0; carry += lo < al ? 1 : 0; lo = (lo + cl) >>> 0; carry += lo < cl ? 1 : 0; lo = (lo + dl) >>> 0; carry += lo < dl ? 1 : 0; var hi = ah + bh + ch + dh + carry; return hi >>> 0; } exports.sum64_4_hi = sum64_4_hi; function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { var lo = al + bl + cl + dl; return lo >>> 0; } exports.sum64_4_lo = sum64_4_lo; function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { var carry = 0; var lo = al; lo = (lo + bl) >>> 0; carry += lo < al ? 1 : 0; lo = (lo + cl) >>> 0; carry += lo < cl ? 1 : 0; lo = (lo + dl) >>> 0; carry += lo < dl ? 1 : 0; lo = (lo + el) >>> 0; carry += lo < el ? 1 : 0; var hi = ah + bh + ch + dh + eh + carry; return hi >>> 0; } exports.sum64_5_hi = sum64_5_hi; function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { var lo = al + bl + cl + dl + el; return lo >>> 0; } exports.sum64_5_lo = sum64_5_lo; function rotr64_hi(ah, al, num) { var r = (al << (32 - num)) | (ah >>> num); return r >>> 0; } exports.rotr64_hi = rotr64_hi; function rotr64_lo(ah, al, num) { var r = (ah << (32 - num)) | (al >>> num); return r >>> 0; } exports.rotr64_lo = rotr64_lo; function shr64_hi(ah, al, num) { return ah >>> num; } exports.shr64_hi = shr64_hi; function shr64_lo(ah, al, num) { var r = (ah << (32 - num)) | (al >>> num); return r >>> 0; } exports.shr64_lo = shr64_lo; }, { inherits: 108, "minimalistic-assert": 112 }, ], 105: [ function (require, module, exports) { "use strict"; var hash = require("hash.js"); var utils = require("minimalistic-crypto-utils"); var assert = require("minimalistic-assert"); function HmacDRBG(options) { if (!(this instanceof HmacDRBG)) return new HmacDRBG(options); this.hash = options.hash; this.predResist = !!options.predResist; this.outLen = this.hash.outSize; this.minEntropy = options.minEntropy || this.hash.hmacStrength; this._reseed = null; this.reseedInterval = null; this.K = null; this.V = null; var entropy = utils.toArray( options.entropy, options.entropyEnc || "hex" ); var nonce = utils.toArray(options.nonce, options.nonceEnc || "hex"); var pers = utils.toArray(options.pers, options.persEnc || "hex"); assert( entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits" ); this._init(entropy, nonce, pers); } module.exports = HmacDRBG; HmacDRBG.prototype._init = function init(entropy, nonce, pers) { var seed = entropy.concat(nonce).concat(pers); this.K = new Array(this.outLen / 8); this.V = new Array(this.outLen / 8); for (var i = 0; i < this.V.length; i++) { this.K[i] = 0x00; this.V[i] = 0x01; } this._update(seed); this._reseed = 1; this.reseedInterval = 0x1000000000000; // 2^48 }; HmacDRBG.prototype._hmac = function hmac() { return new hash.hmac(this.hash, this.K); }; HmacDRBG.prototype._update = function update(seed) { var kmac = this._hmac().update(this.V).update([0x00]); if (seed) kmac = kmac.update(seed); this.K = kmac.digest(); this.V = this._hmac().update(this.V).digest(); if (!seed) return; this.K = this._hmac() .update(this.V) .update([0x01]) .update(seed) .digest(); this.V = this._hmac().update(this.V).digest(); }; HmacDRBG.prototype.reseed = function reseed( entropy, entropyEnc, add, addEnc ) { // Optional entropy enc if (typeof entropyEnc !== "string") { addEnc = add; add = entropyEnc; entropyEnc = null; } entropy = utils.toArray(entropy, entropyEnc); add = utils.toArray(add, addEnc); assert( entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits" ); this._update(entropy.concat(add || [])); this._reseed = 1; }; HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { if (this._reseed > this.reseedInterval) throw new Error("Reseed is required"); // Optional encoding if (typeof enc !== "string") { addEnc = add; add = enc; enc = null; } // Optional additional data if (add) { add = utils.toArray(add, addEnc || "hex"); this._update(add); } var temp = []; while (temp.length < len) { this.V = this._hmac().update(this.V).digest(); temp = temp.concat(this.V); } var res = temp.slice(0, len); this._update(add); this._reseed++; return utils.encode(res, enc); }; }, { "hash.js": 93, "minimalistic-assert": 112, "minimalistic-crypto-utils": 113, }, ], 106: [ function (require, module, exports) { exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m; var eLen = nBytes * 8 - mLen - 1; var eMax = (1 << eLen) - 1; var eBias = eMax >> 1; var nBits = -7; var i = isLE ? nBytes - 1 : 0; var d = isLE ? -1 : 1; var s = buffer[offset + i]; i += d; e = s & ((1 << -nBits) - 1); s >>= -nBits; nBits += eLen; for ( ; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8 ) {} m = e & ((1 << -nBits) - 1); e >>= -nBits; nBits += mLen; for ( ; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8 ) {} if (e === 0) { e = 1 - eBias; } else if (e === eMax) { return m ? NaN : (s ? -1 : 1) * Infinity; } else { m = m + Math.pow(2, mLen); e = e - eBias; } return (s ? -1 : 1) * m * Math.pow(2, e - mLen); }; exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { var e, m, c; var eLen = nBytes * 8 - mLen - 1; var eMax = (1 << eLen) - 1; var eBias = eMax >> 1; var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; var i = isLE ? 0 : nBytes - 1; var d = isLE ? 1 : -1; var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; value = Math.abs(value); if (isNaN(value) || value === Infinity) { m = isNaN(value) ? 1 : 0; e = eMax; } else { e = Math.floor(Math.log(value) / Math.LN2); if (value * (c = Math.pow(2, -e)) < 1) { e--; c *= 2; } if (e + eBias >= 1) { value += rt / c; } else { value += rt * Math.pow(2, 1 - eBias); } if (value * c >= 2) { e++; c /= 2; } if (e + eBias >= eMax) { m = 0; e = eMax; } else if (e + eBias >= 1) { m = (value * c - 1) * Math.pow(2, mLen); e = e + eBias; } else { m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); e = 0; } } for ( ; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8 ) {} e = (e << mLen) | m; eLen += mLen; for ( ; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8 ) {} buffer[offset + i - d] |= s * 128; }; }, {}, ], 107: [ function (require, module, exports) { var indexOf = [].indexOf; module.exports = function (arr, obj) { if (indexOf) return arr.indexOf(obj); for (var i = 0; i < arr.length; ++i) { if (arr[i] === obj) return i; } return -1; }; }, {}, ], 108: [ function (require, module, exports) { if (typeof Object.create === "function") { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor; ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writable: true, configurable: true, }, }); }; } else { // old school shim for old browsers module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor; var TempCtor = function () {}; TempCtor.prototype = superCtor.prototype; ctor.prototype = new TempCtor(); ctor.prototype.constructor = ctor; }; } }, {}, ], 109: [ function (require, module, exports) { /*! * Determine if an object is a Buffer * * @author Feross Aboukhadijeh * @license MIT */ // The _isBuffer check is for Safari 5-7 support, because it's missing // Object.prototype.constructor. Remove this eventually module.exports = function (obj) { return ( obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) ); }; function isBuffer(obj) { return ( !!obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj) ); } // For Node v0.10 support. Remove this eventually. function isSlowBuffer(obj) { return ( typeof obj.readFloatLE === "function" && typeof obj.slice === "function" && isBuffer(obj.slice(0, 0)) ); } }, {}, ], 110: [ function (require, module, exports) { var toString = {}.toString; module.exports = Array.isArray || function (arr) { return toString.call(arr) == "[object Array]"; }; }, {}, ], 111: [ function (require, module, exports) { var bn = require("bn.js"); var brorand = require("brorand"); function MillerRabin(rand) { this.rand = rand || new brorand.Rand(); } module.exports = MillerRabin; MillerRabin.create = function create(rand) { return new MillerRabin(rand); }; MillerRabin.prototype._rand = function _rand(n) { var len = n.bitLength(); var buf = this.rand.generate(Math.ceil(len / 8)); // Set low bits buf[0] |= 3; // Mask high bits var mask = len & 0x7; if (mask !== 0) buf[buf.length - 1] >>= 7 - mask; return new bn(buf); }; MillerRabin.prototype.test = function test(n, k, cb) { var len = n.bitLength(); var red = bn.mont(n); var rone = new bn(1).toRed(red); if (!k) k = Math.max(1, (len / 48) | 0); // Find d and s, (n - 1) = (2 ^ s) * d; var n1 = n.subn(1); var n2 = n1.subn(1); for (var s = 0; !n1.testn(s); s++) {} var d = n.shrn(s); var rn1 = n1.toRed(red); var prime = true; for (; k > 0; k--) { var a = this._rand(n2); if (cb) cb(a); var x = a.toRed(red).redPow(d); if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue; for (var i = 1; i < s; i++) { x = x.redSqr(); if (x.cmp(rone) === 0) return false; if (x.cmp(rn1) === 0) break; } if (i === s) return false; } return prime; }; MillerRabin.prototype.getDivisor = function getDivisor(n, k) { var len = n.bitLength(); var red = bn.mont(n); var rone = new bn(1).toRed(red); if (!k) k = Math.max(1, (len / 48) | 0); // Find d and s, (n - 1) = (2 ^ s) * d; var n1 = n.subn(1); var n2 = n1.subn(1); for (var s = 0; !n1.testn(s); s++) {} var d = n.shrn(s); var rn1 = n1.toRed(red); for (; k > 0; k--) { var a = this._rand(n2); var g = n.gcd(a); if (g.cmpn(1) !== 0) return g; var x = a.toRed(red).redPow(d); if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue; for (var i = 1; i < s; i++) { x = x.redSqr(); if (x.cmp(rone) === 0) return x.fromRed().subn(1).gcd(n); if (x.cmp(rn1) === 0) break; } if (i === s) { x = x.redSqr(); return x.fromRed().subn(1).gcd(n); } } return false; }; }, { "bn.js": 25, brorand: 26 }, ], 112: [ function (require, module, exports) { module.exports = assert; function assert(val, msg) { if (!val) throw new Error(msg || "Assertion failed"); } assert.equal = function assertEqual(l, r, msg) { if (l != r) throw new Error(msg || "Assertion failed: " + l + " != " + r); }; }, {}, ], 113: [ function (require, module, exports) { "use strict"; var utils = exports; function toArray(msg, enc) { if (Array.isArray(msg)) return msg.slice(); if (!msg) return []; var res = []; if (typeof msg !== "string") { for (var i = 0; i < msg.length; i++) res[i] = msg[i] | 0; return res; } if (enc === "hex") { msg = msg.replace(/[^a-z0-9]+/gi, ""); if (msg.length % 2 !== 0) msg = "0" + msg; for (var i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16)); } else { for (var i = 0; i < msg.length; i++) { var c = msg.charCodeAt(i); var hi = c >> 8; var lo = c & 0xff; if (hi) res.push(hi, lo); else res.push(lo); } } return res; } utils.toArray = toArray; function zero2(word) { if (word.length === 1) return "0" + word; else return word; } utils.zero2 = zero2; function toHex(msg) { var res = ""; for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16)); return res; } utils.toHex = toHex; utils.encode = function encode(arr, enc) { if (enc === "hex") return toHex(arr); else return arr; }; }, {}, ], 114: [ function (require, module, exports) { module.exports = { "2.16.840.1.101.3.4.1.1": "aes-128-ecb", "2.16.840.1.101.3.4.1.2": "aes-128-cbc", "2.16.840.1.101.3.4.1.3": "aes-128-ofb", "2.16.840.1.101.3.4.1.4": "aes-128-cfb", "2.16.840.1.101.3.4.1.21": "aes-192-ecb", "2.16.840.1.101.3.4.1.22": "aes-192-cbc", "2.16.840.1.101.3.4.1.23": "aes-192-ofb", "2.16.840.1.101.3.4.1.24": "aes-192-cfb", "2.16.840.1.101.3.4.1.41": "aes-256-ecb", "2.16.840.1.101.3.4.1.42": "aes-256-cbc", "2.16.840.1.101.3.4.1.43": "aes-256-ofb", "2.16.840.1.101.3.4.1.44": "aes-256-cfb", }; }, {}, ], 115: [ function (require, module, exports) { // from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js // Fedor, you are amazing. "use strict"; var asn1 = require("asn1.js"); exports.certificate = require("./certificate.js"); var RSAPrivateKey = asn1.define("RSAPrivateKey", function () { this.seq().obj( this.key("version").int(), this.key("modulus").int(), this.key("publicExponent").int(), this.key("privateExponent").int(), this.key("prime1").int(), this.key("prime2").int(), this.key("exponent1").int(), this.key("exponent2").int(), this.key("coefficient").int() ); }); exports.RSAPrivateKey = RSAPrivateKey; var RSAPublicKey = asn1.define("RSAPublicKey", function () { this.seq().obj( this.key("modulus").int(), this.key("publicExponent").int() ); }); exports.RSAPublicKey = RSAPublicKey; var PublicKey = asn1.define("SubjectPublicKeyInfo", function () { this.seq().obj( this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr() ); }); exports.PublicKey = PublicKey; var AlgorithmIdentifier = asn1.define( "AlgorithmIdentifier", function () { this.seq().obj( this.key("algorithm").objid(), this.key("none").null_().optional(), this.key("curve").objid().optional(), this.key("params") .seq() .obj( this.key("p").int(), this.key("q").int(), this.key("g").int() ) .optional() ); } ); var PrivateKeyInfo = asn1.define("PrivateKeyInfo", function () { this.seq().obj( this.key("version").int(), this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPrivateKey").octstr() ); }); exports.PrivateKey = PrivateKeyInfo; var EncryptedPrivateKeyInfo = asn1.define( "EncryptedPrivateKeyInfo", function () { this.seq().obj( this.key("algorithm") .seq() .obj( this.key("id").objid(), this.key("decrypt") .seq() .obj( this.key("kde") .seq() .obj( this.key("id").objid(), this.key("kdeparams") .seq() .obj( this.key("salt").octstr(), this.key("iters").int() ) ), this.key("cipher") .seq() .obj(this.key("algo").objid(), this.key("iv").octstr()) ) ), this.key("subjectPrivateKey").octstr() ); } ); exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo; var DSAPrivateKey = asn1.define("DSAPrivateKey", function () { this.seq().obj( this.key("version").int(), this.key("p").int(), this.key("q").int(), this.key("g").int(), this.key("pub_key").int(), this.key("priv_key").int() ); }); exports.DSAPrivateKey = DSAPrivateKey; exports.DSAparam = asn1.define("DSAparam", function () { this.int(); }); var ECPrivateKey = asn1.define("ECPrivateKey", function () { this.seq().obj( this.key("version").int(), this.key("privateKey").octstr(), this.key("parameters").optional().explicit(0).use(ECParameters), this.key("publicKey").optional().explicit(1).bitstr() ); }); exports.ECPrivateKey = ECPrivateKey; var ECParameters = asn1.define("ECParameters", function () { this.choice({ namedCurve: this.objid(), }); }); exports.signature = asn1.define("signature", function () { this.seq().obj(this.key("r").int(), this.key("s").int()); }); }, { "./certificate": 116, "asn1.js": 10 }, ], 116: [ function (require, module, exports) { // from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js // thanks to @Rantanen "use strict"; var asn = require("asn1.js"); var Time = asn.define("Time", function () { this.choice({ utcTime: this.utctime(), generalTime: this.gentime(), }); }); var AttributeTypeValue = asn.define("AttributeTypeValue", function () { this.seq().obj(this.key("type").objid(), this.key("value").any()); }); var AlgorithmIdentifier = asn.define( "AlgorithmIdentifier", function () { this.seq().obj( this.key("algorithm").objid(), this.key("parameters").optional() ); } ); var SubjectPublicKeyInfo = asn.define( "SubjectPublicKeyInfo", function () { this.seq().obj( this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr() ); } ); var RelativeDistinguishedName = asn.define( "RelativeDistinguishedName", function () { this.setof(AttributeTypeValue); } ); var RDNSequence = asn.define("RDNSequence", function () { this.seqof(RelativeDistinguishedName); }); var Name = asn.define("Name", function () { this.choice({ rdnSequence: this.use(RDNSequence), }); }); var Validity = asn.define("Validity", function () { this.seq().obj( this.key("notBefore").use(Time), this.key("notAfter").use(Time) ); }); var Extension = asn.define("Extension", function () { this.seq().obj( this.key("extnID").objid(), this.key("critical").bool().def(false), this.key("extnValue").octstr() ); }); var TBSCertificate = asn.define("TBSCertificate", function () { this.seq().obj( this.key("version").explicit(0).int(), this.key("serialNumber").int(), this.key("signature").use(AlgorithmIdentifier), this.key("issuer").use(Name), this.key("validity").use(Validity), this.key("subject").use(Name), this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo), this.key("issuerUniqueID").implicit(1).bitstr().optional(), this.key("subjectUniqueID").implicit(2).bitstr().optional(), this.key("extensions").explicit(3).seqof(Extension).optional() ); }); var X509Certificate = asn.define("X509Certificate", function () { this.seq().obj( this.key("tbsCertificate").use(TBSCertificate), this.key("signatureAlgorithm").use(AlgorithmIdentifier), this.key("signatureValue").bitstr() ); }); module.exports = X509Certificate; }, { "asn1.js": 10 }, ], 117: [ function (require, module, exports) { (function (Buffer) { // adapted from https://github.com/apatil/pemstrip var findProc = /Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m; var startRegex = /^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n/m; var fullRegex = /^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?-----END \1-----$/m; var evp = require("evp_bytestokey"); var ciphers = require("browserify-aes"); module.exports = function (okey, password) { var key = okey.toString(); var match = key.match(findProc); var decrypted; if (!match) { var match2 = key.match(fullRegex); decrypted = new Buffer(match2[2].replace(/\r?\n/g, ""), "base64"); } else { var suite = "aes" + match[1]; var iv = new Buffer(match[2], "hex"); var cipherText = new Buffer( match[3].replace(/\r?\n/g, ""), "base64" ); var cipherKey = evp( password, iv.slice(0, 8), parseInt(match[1], 10) ).key; var out = []; var cipher = ciphers.createDecipheriv(suite, cipherKey, iv); out.push(cipher.update(cipherText)); out.push(cipher.final()); decrypted = Buffer.concat(out); } var tag = key.match(startRegex)[1]; return { tag: tag, data: decrypted, }; }; }).call(this, require("buffer").Buffer); }, { "browserify-aes": 30, buffer: 54, evp_bytestokey: 91 }, ], 118: [ function (require, module, exports) { (function (Buffer) { var asn1 = require("./asn1.js"); var aesid = require("./aesid.json"); var fixProc = require("./fixProc.js"); var ciphers = require("browserify-aes"); var compat = require("pbkdf2"); module.exports = parseKeys; function parseKeys(buffer) { var password; if (typeof buffer === "object" && !Buffer.isBuffer(buffer)) { password = buffer.passphrase; buffer = buffer.key; } if (typeof buffer === "string") { buffer = new Buffer(buffer); } var stripped = fixProc(buffer, password); var type = stripped.tag; var data = stripped.data; var subtype, ndata; switch (type) { case "CERTIFICATE": ndata = asn1.certificate.decode(data, "der").tbsCertificate .subjectPublicKeyInfo; // falls through case "PUBLIC KEY": if (!ndata) { ndata = asn1.PublicKey.decode(data, "der"); } subtype = ndata.algorithm.algorithm.join("."); switch (subtype) { case "1.2.840.113549.1.1.1": return asn1.RSAPublicKey.decode( ndata.subjectPublicKey.data, "der" ); case "1.2.840.10045.2.1": ndata.subjectPrivateKey = ndata.subjectPublicKey; return { type: "ec", data: ndata, }; case "1.2.840.10040.4.1": ndata.algorithm.params.pub_key = asn1.DSAparam.decode( ndata.subjectPublicKey.data, "der" ); return { type: "dsa", data: ndata.algorithm.params, }; default: throw new Error("unknown key id " + subtype); } throw new Error("unknown key type " + type); case "ENCRYPTED PRIVATE KEY": data = asn1.EncryptedPrivateKey.decode(data, "der"); data = decrypt(data, password); // falls through case "PRIVATE KEY": ndata = asn1.PrivateKey.decode(data, "der"); subtype = ndata.algorithm.algorithm.join("."); switch (subtype) { case "1.2.840.113549.1.1.1": return asn1.RSAPrivateKey.decode( ndata.subjectPrivateKey, "der" ); case "1.2.840.10045.2.1": return { curve: ndata.algorithm.curve, privateKey: asn1.ECPrivateKey.decode( ndata.subjectPrivateKey, "der" ).privateKey, }; case "1.2.840.10040.4.1": ndata.algorithm.params.priv_key = asn1.DSAparam.decode( ndata.subjectPrivateKey, "der" ); return { type: "dsa", params: ndata.algorithm.params, }; default: throw new Error("unknown key id " + subtype); } throw new Error("unknown key type " + type); case "RSA PUBLIC KEY": return asn1.RSAPublicKey.decode(data, "der"); case "RSA PRIVATE KEY": return asn1.RSAPrivateKey.decode(data, "der"); case "DSA PRIVATE KEY": return { type: "dsa", params: asn1.DSAPrivateKey.decode(data, "der"), }; case "EC PRIVATE KEY": data = asn1.ECPrivateKey.decode(data, "der"); return { curve: data.parameters.value, privateKey: data.privateKey, }; default: throw new Error("unknown key type " + type); } } parseKeys.signature = asn1.signature; function decrypt(data, password) { var salt = data.algorithm.decrypt.kde.kdeparams.salt; var iters = parseInt( data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10 ); var algo = aesid[data.algorithm.decrypt.cipher.algo.join(".")]; var iv = data.algorithm.decrypt.cipher.iv; var cipherText = data.subjectPrivateKey; var keylen = parseInt(algo.split("-")[1], 10) / 8; var key = compat.pbkdf2Sync(password, salt, iters, keylen); var cipher = ciphers.createDecipheriv(algo, key, iv); var out = []; out.push(cipher.update(cipherText)); out.push(cipher.final()); return Buffer.concat(out); } }).call(this, require("buffer").Buffer); }, { "./aesid.json": 114, "./asn1": 115, "./fixProc": 117, "browserify-aes": 30, buffer: 54, pbkdf2: 120, }, ], 119: [ function (require, module, exports) { (function (process) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // resolves . and .. elements in a path array with directory names there // must be no slashes, empty elements, or device names (c:\) in the array // (so also no leading and trailing slashes - it does not distinguish // relative and absolute paths) function normalizeArray(parts, allowAboveRoot) { // if the path tries to go above the root, `up` ends up > 0 var up = 0; for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; if (last === ".") { parts.splice(i, 1); } else if (last === "..") { parts.splice(i, 1); up++; } else if (up) { parts.splice(i, 1); up--; } } // if the path is allowed to go above the root, restore leading ..s if (allowAboveRoot) { for (; up--; up) { parts.unshift(".."); } } return parts; } // Split a filename into [root, dir, basename, ext], unix version // 'root' is just a slash, or nothing. var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; var splitPath = function (filename) { return splitPathRe.exec(filename).slice(1); }; // path.resolve([from ...], to) // posix version exports.resolve = function () { var resolvedPath = "", resolvedAbsolute = false; for ( var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i-- ) { var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries if (typeof path !== "string") { throw new TypeError( "Arguments to path.resolve must be strings" ); } else if (!path) { continue; } resolvedPath = path + "/" + resolvedPath; resolvedAbsolute = path.charAt(0) === "/"; } // At this point the path should be resolved to a full absolute path, but // handle relative paths to be safe (might happen when process.cwd() fails) // Normalize the path resolvedPath = normalizeArray( filter(resolvedPath.split("/"), function (p) { return !!p; }), !resolvedAbsolute ).join("/"); return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; }; // path.normalize(path) // posix version exports.normalize = function (path) { var isAbsolute = exports.isAbsolute(path), trailingSlash = substr(path, -1) === "/"; // Normalize the path path = normalizeArray( filter(path.split("/"), function (p) { return !!p; }), !isAbsolute ).join("/"); if (!path && !isAbsolute) { path = "."; } if (path && trailingSlash) { path += "/"; } return (isAbsolute ? "/" : "") + path; }; // posix version exports.isAbsolute = function (path) { return path.charAt(0) === "/"; }; // posix version exports.join = function () { var paths = Array.prototype.slice.call(arguments, 0); return exports.normalize( filter(paths, function (p, index) { if (typeof p !== "string") { throw new TypeError("Arguments to path.join must be strings"); } return p; }).join("/") ); }; // path.relative(from, to) // posix version exports.relative = function (from, to) { from = exports.resolve(from).substr(1); to = exports.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== "") break; } var end = arr.length - 1; for (; end >= 0; end--) { if (arr[end] !== "") break; } if (start > end) return []; return arr.slice(start, end - start + 1); } var fromParts = trim(from.split("/")); var toParts = trim(to.split("/")); var length = Math.min(fromParts.length, toParts.length); var samePartsLength = length; for (var i = 0; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break; } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push(".."); } outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join("/"); }; exports.sep = "/"; exports.delimiter = ":"; exports.dirname = function (path) { var result = splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { // No dirname whatsoever return "."; } if (dir) { // It has a dirname, strip trailing slash dir = dir.substr(0, dir.length - 1); } return root + dir; }; exports.basename = function (path, ext) { var f = splitPath(path)[2]; // TODO: make this comparison case-insensitive on windows? if (ext && f.substr(-1 * ext.length) === ext) { f = f.substr(0, f.length - ext.length); } return f; }; exports.extname = function (path) { return splitPath(path)[3]; }; function filter(xs, f) { if (xs.filter) return xs.filter(f); var res = []; for (var i = 0; i < xs.length; i++) { if (f(xs[i], i, xs)) res.push(xs[i]); } return res; } // String.prototype.substr - negative index don't work in IE8 var substr = "ab".substr(-1) === "b" ? function (str, start, len) { return str.substr(start, len); } : function (str, start, len) { if (start < 0) start = str.length + start; return str.substr(start, len); }; }).call(this, require("_process")); }, { _process: 126 }, ], 120: [ function (require, module, exports) { exports.pbkdf2 = require("./lib/async.js"); exports.pbkdf2Sync = require("./lib/sync.js"); }, { "./lib/async": 121, "./lib/sync": 124 }, ], 121: [ function (require, module, exports) { (function (process, global) { var checkParameters = require("./precondition.js"); var defaultEncoding = require("./default-encoding.js"); var sync = require("./sync.js"); var Buffer = require("safe-buffer").Buffer; var ZERO_BUF; var subtle = global.crypto && global.crypto.subtle; var toBrowser = { sha: "SHA-1", "sha-1": "SHA-1", sha1: "SHA-1", sha256: "SHA-256", "sha-256": "SHA-256", sha384: "SHA-384", "sha-384": "SHA-384", "sha-512": "SHA-512", sha512: "SHA-512", }; var checks = []; function checkNative(algo) { if (global.process && !global.process.browser) { return Promise.resolve(false); } if (!subtle || !subtle.importKey || !subtle.deriveBits) { return Promise.resolve(false); } if (checks[algo] !== undefined) { return checks[algo]; } ZERO_BUF = ZERO_BUF || Buffer.alloc(8); var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo) .then(function () { return true; }) .catch(function () { return false; }); checks[algo] = prom; return prom; } function browserPbkdf2(password, salt, iterations, length, algo) { return subtle .importKey("raw", password, { name: "PBKDF2" }, false, [ "deriveBits", ]) .then(function (key) { return subtle.deriveBits( { name: "PBKDF2", salt: salt, iterations: iterations, hash: { name: algo, }, }, key, length << 3 ); }) .then(function (res) { return Buffer.from(res); }); } function resolvePromise(promise, callback) { promise.then( function (out) { process.nextTick(function () { callback(null, out); }); }, function (e) { process.nextTick(function () { callback(e); }); } ); } module.exports = function ( password, salt, iterations, keylen, digest, callback ) { if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding); if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding); checkParameters(iterations, keylen); if (typeof digest === "function") { callback = digest; digest = undefined; } if (typeof callback !== "function") throw new Error("No callback provided to pbkdf2"); digest = digest || "sha1"; var algo = toBrowser[digest.toLowerCase()]; if (!algo || typeof global.Promise !== "function") { return process.nextTick(function () { var out; try { out = sync(password, salt, iterations, keylen, digest); } catch (e) { return callback(e); } callback(null, out); }); } resolvePromise( checkNative(algo).then(function (resp) { if (resp) { return browserPbkdf2( password, salt, iterations, keylen, algo ); } else { return sync(password, salt, iterations, keylen, digest); } }), callback ); }; }).call( this, require("_process"), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {} ); }, { "./default-encoding": 122, "./precondition": 123, "./sync": 124, _process: 126, "safe-buffer": 148, }, ], 122: [ function (require, module, exports) { (function (process) { var defaultEncoding; /* istanbul ignore next */ if (process.browser) { defaultEncoding = "utf-8"; } else { var pVersionMajor = parseInt( process.version.split(".")[0].slice(1), 10 ); defaultEncoding = pVersionMajor >= 6 ? "utf-8" : "binary"; } module.exports = defaultEncoding; }).call(this, require("_process")); }, { _process: 126 }, ], 123: [ function (require, module, exports) { var MAX_ALLOC = Math.pow(2, 30) - 1; // default in iojs module.exports = function (iterations, keylen) { if (typeof iterations !== "number") { throw new TypeError("Iterations not a number"); } if (iterations < 0) { throw new TypeError("Bad iterations"); } if (typeof keylen !== "number") { throw new TypeError("Key length not a number"); } if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */ throw new TypeError("Bad key length"); } }; }, {}, ], 124: [ function (require, module, exports) { var md5 = require("create-hash/md5"); var rmd160 = require("ripemd160"); var sha = require("sha.js"); var checkParameters = require("./precondition.js"); var defaultEncoding = require("./default-encoding.js"); var Buffer = require("safe-buffer").Buffer; var ZEROS = Buffer.alloc(128); var sizes = { md5: 16, sha1: 20, sha224: 28, sha256: 32, sha384: 48, sha512: 64, rmd160: 20, ripemd160: 20, }; function Hmac(alg, key, saltLen) { var hash = getDigest(alg); var blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64; if (key.length > blocksize) { key = hash(key); } else if (key.length < blocksize) { key = Buffer.concat([key, ZEROS], blocksize); } var ipad = Buffer.allocUnsafe(blocksize + sizes[alg]); var opad = Buffer.allocUnsafe(blocksize + sizes[alg]); for (var i = 0; i < blocksize; i++) { ipad[i] = key[i] ^ 0x36; opad[i] = key[i] ^ 0x5c; } var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4); ipad.copy(ipad1, 0, 0, blocksize); this.ipad1 = ipad1; this.ipad2 = ipad; this.opad = opad; this.alg = alg; this.blocksize = blocksize; this.hash = hash; this.size = sizes[alg]; } Hmac.prototype.run = function (data, ipad) { data.copy(ipad, this.blocksize); var h = this.hash(ipad); h.copy(this.opad, this.blocksize); return this.hash(this.opad); }; function getDigest(alg) { function shaFunc(data) { return sha(alg).update(data).digest(); } if (alg === "rmd160" || alg === "ripemd160") return rmd160; if (alg === "md5") return md5; return shaFunc; } function pbkdf2(password, salt, iterations, keylen, digest) { if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding); if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding); checkParameters(iterations, keylen); digest = digest || "sha1"; var hmac = new Hmac(digest, password, salt.length); var DK = Buffer.allocUnsafe(keylen); var block1 = Buffer.allocUnsafe(salt.length + 4); salt.copy(block1, 0, 0, salt.length); var destPos = 0; var hLen = sizes[digest]; var l = Math.ceil(keylen / hLen); for (var i = 1; i <= l; i++) { block1.writeUInt32BE(i, salt.length); var T = hmac.run(block1, hmac.ipad1); var U = T; for (var j = 1; j < iterations; j++) { U = hmac.run(U, hmac.ipad2); for (var k = 0; k < hLen; k++) T[k] ^= U[k]; } T.copy(DK, destPos); destPos += hLen; } return DK; } module.exports = pbkdf2; }, { "./default-encoding": 122, "./precondition": 123, "create-hash/md5": 60, ripemd160: 147, "safe-buffer": 148, "sha.js": 150, }, ], 125: [ function (require, module, exports) { (function (process) { "use strict"; if ( !process.version || process.version.indexOf("v0.") === 0 || (process.version.indexOf("v1.") === 0 && process.version.indexOf("v1.8.") !== 0) ) { module.exports = nextTick; } else { module.exports = process.nextTick; } function nextTick(fn, arg1, arg2, arg3) { if (typeof fn !== "function") { throw new TypeError('"callback" argument must be a function'); } var len = arguments.length; var args, i; switch (len) { case 0: case 1: return process.nextTick(fn); case 2: return process.nextTick(function afterTickOne() { fn.call(null, arg1); }); case 3: return process.nextTick(function afterTickTwo() { fn.call(null, arg1, arg2); }); case 4: return process.nextTick(function afterTickThree() { fn.call(null, arg1, arg2, arg3); }); default: args = new Array(len - 1); i = 0; while (i < args.length) { args[i++] = arguments[i]; } return process.nextTick(function afterTick() { fn.apply(null, args); }); } } }).call(this, require("_process")); }, { _process: 126 }, ], 126: [ function (require, module, exports) { // shim for using process in browser var process = (module.exports = {}); // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error("setTimeout has not been defined"); } function defaultClearTimeout() { throw new Error("clearTimeout has not been defined"); } (function () { try { if (typeof setTimeout === "function") { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === "function") { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } })(); function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ( (cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout ) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch (e) { try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch (e) { // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ( (cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout ) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e) { try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e) { // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while (len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = "browser"; process.browser = true; process.env = {}; process.argv = []; process.version = ""; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return []; }; process.binding = function (name) { throw new Error("process.binding is not supported"); }; process.cwd = function () { return "/"; }; process.chdir = function (dir) { throw new Error("process.chdir is not supported"); }; process.umask = function () { return 0; }; }, {}, ], 127: [ function (require, module, exports) { exports.publicEncrypt = require("./publicEncrypt.js"); exports.privateDecrypt = require("./privateDecrypt.js"); exports.privateEncrypt = function privateEncrypt(key, buf) { return exports.publicEncrypt(key, buf, true); }; exports.publicDecrypt = function publicDecrypt(key, buf) { return exports.privateDecrypt(key, buf, true); }; }, { "./privateDecrypt": 129, "./publicEncrypt": 130 }, ], 128: [ function (require, module, exports) { (function (Buffer) { var createHash = require("create-hash"); module.exports = function (seed, len) { var t = new Buffer(""); var i = 0, c; while (t.length < len) { c = i2ops(i++); t = Buffer.concat([ t, createHash("sha1").update(seed).update(c).digest(), ]); } return t.slice(0, len); }; function i2ops(c) { var out = new Buffer(4); out.writeUInt32BE(c, 0); return out; } }).call(this, require("buffer").Buffer); }, { buffer: 54, "create-hash": 58 }, ], 129: [ function (require, module, exports) { (function (Buffer) { var parseKeys = require("parse-asn1"); var mgf = require("./mgf.js"); var xor = require("./xor.js"); var bn = require("bn.js"); var crt = require("browserify-rsa"); var createHash = require("create-hash"); var withPublic = require("./withPublic.js"); module.exports = function privateDecrypt(private_key, enc, reverse) { var padding; if (private_key.padding) { padding = private_key.padding; } else if (reverse) { padding = 1; } else { padding = 4; } var key = parseKeys(private_key); var k = key.modulus.byteLength(); if (enc.length > k || new bn(enc).cmp(key.modulus) >= 0) { throw new Error("decryption error"); } var msg; if (reverse) { msg = withPublic(new bn(enc), key); } else { msg = crt(enc, key); } var zBuffer = new Buffer(k - msg.length); zBuffer.fill(0); msg = Buffer.concat([zBuffer, msg], k); if (padding === 4) { return oaep(key, msg); } else if (padding === 1) { return pkcs1(key, msg, reverse); } else if (padding === 3) { return msg; } else { throw new Error("unknown padding"); } }; function oaep(key, msg) { var n = key.modulus; var k = key.modulus.byteLength(); var mLen = msg.length; var iHash = createHash("sha1").update(new Buffer("")).digest(); var hLen = iHash.length; var hLen2 = 2 * hLen; if (msg[0] !== 0) { throw new Error("decryption error"); } var maskedSeed = msg.slice(1, hLen + 1); var maskedDb = msg.slice(hLen + 1); var seed = xor(maskedSeed, mgf(maskedDb, hLen)); var db = xor(maskedDb, mgf(seed, k - hLen - 1)); if (compare(iHash, db.slice(0, hLen))) { throw new Error("decryption error"); } var i = hLen; while (db[i] === 0) { i++; } if (db[i++] !== 1) { throw new Error("decryption error"); } return db.slice(i); } function pkcs1(key, msg, reverse) { var p1 = msg.slice(0, 2); var i = 2; var status = 0; while (msg[i++] !== 0) { if (i >= msg.length) { status++; break; } } var ps = msg.slice(2, i - 1); var p2 = msg.slice(i - 1, i); if ( (p1.toString("hex") !== "0002" && !reverse) || (p1.toString("hex") !== "0001" && reverse) ) { status++; } if (ps.length < 8) { status++; } if (status) { throw new Error("decryption error"); } return msg.slice(i); } function compare(a, b) { a = new Buffer(a); b = new Buffer(b); var dif = 0; var len = a.length; if (a.length !== b.length) { dif++; len = Math.min(a.length, b.length); } var i = -1; while (++i < len) { dif += a[i] ^ b[i]; } return dif; } }).call(this, require("buffer").Buffer); }, { "./mgf": 128, "./withPublic": 131, "./xor": 132, "bn.js": 25, "browserify-rsa": 46, buffer: 54, "create-hash": 58, "parse-asn1": 118, }, ], 130: [ function (require, module, exports) { (function (Buffer) { var parseKeys = require("parse-asn1"); var randomBytes = require("randombytes"); var createHash = require("create-hash"); var mgf = require("./mgf.js"); var xor = require("./xor.js"); var bn = require("bn.js"); var withPublic = require("./withPublic.js"); var crt = require("browserify-rsa"); var constants = { RSA_PKCS1_OAEP_PADDING: 4, RSA_PKCS1_PADDIN: 1, RSA_NO_PADDING: 3, }; module.exports = function publicEncrypt(public_key, msg, reverse) { var padding; if (public_key.padding) { padding = public_key.padding; } else if (reverse) { padding = 1; } else { padding = 4; } var key = parseKeys(public_key); var paddedMsg; if (padding === 4) { paddedMsg = oaep(key, msg); } else if (padding === 1) { paddedMsg = pkcs1(key, msg, reverse); } else if (padding === 3) { paddedMsg = new bn(msg); if (paddedMsg.cmp(key.modulus) >= 0) { throw new Error("data too long for modulus"); } } else { throw new Error("unknown padding"); } if (reverse) { return crt(paddedMsg, key); } else { return withPublic(paddedMsg, key); } }; function oaep(key, msg) { var k = key.modulus.byteLength(); var mLen = msg.length; var iHash = createHash("sha1").update(new Buffer("")).digest(); var hLen = iHash.length; var hLen2 = 2 * hLen; if (mLen > k - hLen2 - 2) { throw new Error("message too long"); } var ps = new Buffer(k - mLen - hLen2 - 2); ps.fill(0); var dblen = k - hLen - 1; var seed = randomBytes(hLen); var maskedDb = xor( Buffer.concat([iHash, ps, new Buffer([1]), msg], dblen), mgf(seed, dblen) ); var maskedSeed = xor(seed, mgf(maskedDb, hLen)); return new bn( Buffer.concat([new Buffer([0]), maskedSeed, maskedDb], k) ); } function pkcs1(key, msg, reverse) { var mLen = msg.length; var k = key.modulus.byteLength(); if (mLen > k - 11) { throw new Error("message too long"); } var ps; if (reverse) { ps = new Buffer(k - mLen - 3); ps.fill(0xff); } else { ps = nonZero(k - mLen - 3); } return new bn( Buffer.concat( [new Buffer([0, reverse ? 1 : 2]), ps, new Buffer([0]), msg], k ) ); } function nonZero(len, crypto) { var out = new Buffer(len); var i = 0; var cache = randomBytes(len * 2); var cur = 0; var num; while (i < len) { if (cur === cache.length) { cache = randomBytes(len * 2); cur = 0; } num = cache[cur++]; if (num) { out[i++] = num; } } return out; } }).call(this, require("buffer").Buffer); }, { "./mgf": 128, "./withPublic": 131, "./xor": 132, "bn.js": 25, "browserify-rsa": 46, buffer: 54, "create-hash": 58, "parse-asn1": 118, randombytes: 133, }, ], 131: [ function (require, module, exports) { (function (Buffer) { var bn = require("bn.js"); function withPublic(paddedMsg, key) { return new Buffer( paddedMsg .toRed(bn.mont(key.modulus)) .redPow(new bn(key.publicExponent)) .fromRed() .toArray() ); } module.exports = withPublic; }).call(this, require("buffer").Buffer); }, { "bn.js": 25, buffer: 54 }, ], 132: [ function (require, module, exports) { module.exports = function xor(a, b) { var len = a.length; var i = -1; while (++i < len) { a[i] ^= b[i]; } return a; }; }, {}, ], 133: [ function (require, module, exports) { (function (process, global) { "use strict"; function oldBrowser() { throw new Error( "secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11" ); } var Buffer = require("safe-buffer").Buffer; var crypto = global.crypto || global.msCrypto; if (crypto && crypto.getRandomValues) { module.exports = randomBytes; } else { module.exports = oldBrowser; } function randomBytes(size, cb) { // phantomjs needs to throw if (size > 65536) throw new Error("requested too many random bytes"); // in case browserify isn't using the Uint8Array version var rawBytes = new global.Uint8Array(size); // This will not work in older browsers. // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues if (size > 0) { // getRandomValues fails on IE if size == 0 crypto.getRandomValues(rawBytes); } // XXX: phantomjs doesn't like a buffer being passed here var bytes = Buffer.from(rawBytes.buffer); if (typeof cb === "function") { return process.nextTick(function () { cb(null, bytes); }); } return bytes; } }).call( this, require("_process"), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {} ); }, { _process: 126, "safe-buffer": 148 }, ], 134: [ function (require, module, exports) { module.exports = require("./lib/_stream_duplex.js"); }, { "./lib/_stream_duplex.js": 135 }, ], 135: [ function (require, module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from // Writable. "use strict"; /**/ var processNextTick = require("process-nextick-args"); /**/ /**/ var objectKeys = Object.keys || function (obj) { var keys = []; for (var key in obj) { keys.push(key); } return keys; }; /**/ module.exports = Duplex; /**/ var util = require("core-util-is"); util.inherits = require("inherits"); /**/ var Readable = require("./_stream_readable.js"); var Writable = require("./_stream_writable.js"); util.inherits(Duplex, Readable); var keys = objectKeys(Writable.prototype); for (var v = 0; v < keys.length; v++) { var method = keys[v]; if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options); Writable.call(this, options); if (options && options.readable === false) this.readable = false; if (options && options.writable === false) this.writable = false; this.allowHalfOpen = true; if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; this.once("end", onend); } // the no-half-open enforcer function onend() { // if we allow half-open state, or if the writable side ended, // then we're ok. if (this.allowHalfOpen || this._writableState.ended) return; // no more data can be written. // But allow more writes to happen in this tick. processNextTick(onEndNT, this); } function onEndNT(self) { self.end(); } Object.defineProperty(Duplex.prototype, "destroyed", { get: function () { if ( this._readableState === undefined || this._writableState === undefined ) { return false; } return ( this._readableState.destroyed && this._writableState.destroyed ); }, set: function (value) { // we ignore the value if the stream // has not been initialized yet if ( this._readableState === undefined || this._writableState === undefined ) { return; } // backward compatibility, the user is explicitly // managing destroyed this._readableState.destroyed = value; this._writableState.destroyed = value; }, }); Duplex.prototype._destroy = function (err, cb) { this.push(null); this.end(); processNextTick(cb, err); }; function forEach(xs, f) { for (var i = 0, l = xs.length; i < l; i++) { f(xs[i], i); } } }, { "./_stream_readable": 137, "./_stream_writable": 139, "core-util-is": 56, inherits: 108, "process-nextick-args": 125, }, ], 136: [ function (require, module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a passthrough stream. // basically just the most minimal sort of Transform stream. // Every written chunk gets output as-is. "use strict"; module.exports = PassThrough; var Transform = require("./_stream_transform.js"); /**/ var util = require("core-util-is"); util.inherits = require("inherits"); /**/ util.inherits(PassThrough, Transform); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; }, { "./_stream_transform": 138, "core-util-is": 56, inherits: 108 }, ], 137: [ function (require, module, exports) { (function (process, global) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. "use strict"; /**/ var processNextTick = require("process-nextick-args"); /**/ module.exports = Readable; /**/ var isArray = require("isarray"); /**/ /**/ var Duplex; /**/ Readable.ReadableState = ReadableState; /**/ var EE = require("events").EventEmitter; var EElistenerCount = function (emitter, type) { return emitter.listeners(type).length; }; /**/ /**/ var Stream = require("./internal/streams/stream.js"); /**/ // TODO(bmeurer): Change this back to const once hole checks are // properly optimized away early in Ignition+TurboFan. /**/ var Buffer = require("safe-buffer").Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } /**/ /**/ var util = require("core-util-is"); util.inherits = require("inherits"); /**/ /**/ var debugUtil = require("util"); var debug = void 0; if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog("stream"); } else { debug = function () {}; } /**/ var BufferList = require("./internal/streams/BufferList.js"); var destroyImpl = require("./internal/streams/destroy.js"); var StringDecoder; util.inherits(Readable, Stream); var kProxyEvents = ["error", "close", "destroy", "pause", "resume"]; function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. if (typeof emitter.prependListener === "function") { return emitter.prependListener(event, fn); } else { // This is a hack to make sure that our error handler is attached before any // userland ones. NEVER DO THIS. This is here only because this code needs // to continue to work with older versions of Node.js that do not include // the prependListener() method. The goal is to eventually remove this hack. if (!emitter._events || !emitter._events[event]) emitter.on(event, fn); else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn); else emitter._events[event] = [fn, emitter._events[event]]; } } function ReadableState(options, stream) { Duplex = Duplex || require("./_stream_duplex.js"); options = options || {}; // object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away this.objectMode = !!options.objectMode; if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" var hwm = options.highWaterMark; var defaultHwm = this.objectMode ? 16 : 16 * 1024; this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. this.highWaterMark = Math.floor(this.highWaterMark); // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than // array.shift() this.buffer = new BufferList(); this.length = 0; this.pipes = null; this.pipesCount = 0; this.flowing = null; this.ended = false; this.endEmitted = false; this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted // immediately, or on a later tick. We set this to true at first, because // any actions that shouldn't happen until "later" should generally also // not happen before the first read call. this.sync = true; // whenever we return null, then we set a flag to say // that we're awaiting a 'readable' event emission. this.needReadable = false; this.emittedReadable = false; this.readableListening = false; this.resumeScheduled = false; // has it been destroyed this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || "utf8"; // the number of writers that are awaiting a drain event in .pipe()s this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled this.readingMore = false; this.decoder = null; this.encoding = null; if (options.encoding) { if (!StringDecoder) StringDecoder = require("string_decoder/").StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } function Readable(options) { Duplex = Duplex || require("./_stream_duplex.js"); if (!(this instanceof Readable)) return new Readable(options); this._readableState = new ReadableState(options, this); // legacy this.readable = true; if (options) { if (typeof options.read === "function") this._read = options.read; if (typeof options.destroy === "function") this._destroy = options.destroy; } Stream.call(this); } Object.defineProperty(Readable.prototype, "destroyed", { get: function () { if (this._readableState === undefined) { return false; } return this._readableState.destroyed; }, set: function (value) { // we ignore the value if the stream // has not been initialized yet if (!this._readableState) { return; } // backward compatibility, the user is explicitly // managing destroyed this._readableState.destroyed = value; }, }); Readable.prototype.destroy = destroyImpl.destroy; Readable.prototype._undestroy = destroyImpl.undestroy; Readable.prototype._destroy = function (err, cb) { this.push(null); cb(err); }; // Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; var skipChunkCheck; if (!state.objectMode) { if (typeof chunk === "string") { encoding = encoding || state.defaultEncoding; if (encoding !== state.encoding) { chunk = Buffer.from(chunk, encoding); encoding = ""; } skipChunkCheck = true; } } else { skipChunkCheck = true; } return readableAddChunk( this, chunk, encoding, false, skipChunkCheck ); }; // Unshift should *always* be something directly out of read() Readable.prototype.unshift = function (chunk) { return readableAddChunk(this, chunk, null, true, false); }; function readableAddChunk( stream, chunk, encoding, addToFront, skipChunkCheck ) { var state = stream._readableState; if (chunk === null) { state.reading = false; onEofChunk(stream, state); } else { var er; if (!skipChunkCheck) er = chunkInvalid(state, chunk); if (er) { stream.emit("error", er); } else if (state.objectMode || (chunk && chunk.length > 0)) { if ( typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype ) { chunk = _uint8ArrayToBuffer(chunk); } if (addToFront) { if (state.endEmitted) stream.emit( "error", new Error("stream.unshift() after end event") ); else addChunk(stream, state, chunk, true); } else if (state.ended) { stream.emit("error", new Error("stream.push() after EOF")); } else { state.reading = false; if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false); else maybeReadMore(stream, state); } else { addChunk(stream, state, chunk, false); } } } else if (!addToFront) { state.reading = false; } } return needMoreData(state); } function addChunk(stream, state, chunk, addToFront) { if (state.flowing && state.length === 0 && !state.sync) { stream.emit("data", chunk); stream.read(0); } else { // update the buffer info. state.length += state.objectMode ? 1 : chunk.length; if (addToFront) state.buffer.unshift(chunk); else state.buffer.push(chunk); if (state.needReadable) emitReadable(stream); } maybeReadMore(stream, state); } function chunkInvalid(state, chunk) { var er; if ( !_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== undefined && !state.objectMode ) { er = new TypeError("Invalid non-string/buffer chunk"); } return er; } // if it's past the high water mark, we can push in some more. // Also, if we have no data yet, we can stand some // more bytes. This is to work around cases where hwm=0, // such as the repl. Also, if the push() triggered a // readable event, and the user called read(largeNumber) such that // needReadable was set, then we ought to push more, so that another // 'readable' event will be triggered. function needMoreData(state) { return ( !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0) ); } Readable.prototype.isPaused = function () { return this._readableState.flowing === false; }; // backwards compatibility. Readable.prototype.setEncoding = function (enc) { if (!StringDecoder) StringDecoder = require("string_decoder/").StringDecoder; this._readableState.decoder = new StringDecoder(enc); this._readableState.encoding = enc; return this; }; // Don't raise the hwm > 8MB var MAX_HWM = 0x800000; function computeNewHighWaterMark(n) { if (n >= MAX_HWM) { n = MAX_HWM; } else { // Get the next highest power of 2 to prevent increasing hwm excessively in // tiny amounts n--; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; n++; } return n; } // This function is designed to be inlinable, so please take care when making // changes to the function body. function howMuchToRead(n, state) { if (n <= 0 || (state.length === 0 && state.ended)) return 0; if (state.objectMode) return 1; if (n !== n) { // Only flow one buffer at a time if (state.flowing && state.length) return state.buffer.head.data.length; else return state.length; } // If we're asking for more than the current hwm, then raise the hwm. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); if (n <= state.length) return n; // Don't have enough if (!state.ended) { state.needReadable = true; return 0; } return state.length; } // you can override either this method, or the async _read(n) below. Readable.prototype.read = function (n) { debug("read", n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. if ( n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended) ) { debug("read: emitReadable", state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this); else emitReadable(this); return null; } n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. if (n === 0 && state.ended) { if (state.length === 0) endReadable(this); return null; } // All the actual chunk generation logic needs to be // *below* the call to _read. The reason is that in certain // synthetic stream cases, such as passthrough streams, _read // may be a completely synchronous operation which may change // the state of the read buffer, providing enough data when // before there was *not* enough. // // So, the steps are: // 1. Figure out what the state of things will be after we do // a read from the buffer. // // 2. If that resulting state will trigger a _read, then call _read. // Note that this may be asynchronous, or synchronous. Yes, it is // deeply ugly to write APIs this way, but that still doesn't mean // that the Readable class should behave improperly, as streams are // designed to be sync/async agnostic. // Take note if the _read call is sync or async (ie, if the read call // has returned yet), so that we know whether or not it's safe to emit // 'readable' etc. // // 3. Actually pull the requested chunks out of the buffer and return. // if we need a readable event, then we need to do some reading. var doRead = state.needReadable; debug("need readable", doRead); // if we currently have less than the highWaterMark, then also read some if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; debug("length less than watermark", doRead); } // however, if we've ended, then there's no point, and if we're already // reading, then it's unnecessary. if (state.ended || state.reading) { doRead = false; debug("reading or ended", doRead); } else if (doRead) { debug("do read"); state.reading = true; state.sync = true; // if the length is currently zero, then we *need* a readable event. if (state.length === 0) state.needReadable = true; // call internal read method this._read(state.highWaterMark); state.sync = false; // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. if (!state.reading) n = howMuchToRead(nOrig, state); } var ret; if (n > 0) ret = fromList(n, state); else ret = null; if (ret === null) { state.needReadable = true; n = 0; } else { state.length -= n; } if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. if (nOrig !== n && state.ended) endReadable(this); } if (ret !== null) this.emit("data", ret); return ret; }; function onEofChunk(stream, state) { if (state.ended) return; if (state.decoder) { var chunk = state.decoder.end(); if (chunk && chunk.length) { state.buffer.push(chunk); state.length += state.objectMode ? 1 : chunk.length; } } state.ended = true; // emit 'readable' now to make sure it gets picked up. emitReadable(stream); } // Don't emit readable right away in sync mode, because this can trigger // another read() call => stack overflow. This way, it might trigger // a nextTick recursion warning, but that's not so bad. function emitReadable(stream) { var state = stream._readableState; state.needReadable = false; if (!state.emittedReadable) { debug("emitReadable", state.flowing); state.emittedReadable = true; if (state.sync) processNextTick(emitReadable_, stream); else emitReadable_(stream); } } function emitReadable_(stream) { debug("emit readable"); stream.emit("readable"); flow(stream); } // at this point, the user has presumably seen the 'readable' event, // and called read() to consume some data. that may have triggered // in turn another _read(n) call, in which case reading = true if // it's in progress. // However, if we're not ended, or reading, and the length < hwm, // then go ahead and try to read some more preemptively. function maybeReadMore(stream, state) { if (!state.readingMore) { state.readingMore = true; processNextTick(maybeReadMore_, stream, state); } } function maybeReadMore_(stream, state) { var len = state.length; while ( !state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark ) { debug("maybeReadMore read 0"); stream.read(0); if (len === state.length) // didn't get any data, stop spinning. break; else len = state.length; } state.readingMore = false; } // abstract method. to be overridden in specific implementation classes. // call cb(er, data) where data is <= n in length. // for virtual (non-string, non-buffer) streams, "length" is somewhat // arbitrary, and perhaps not very meaningful. Readable.prototype._read = function (n) { this.emit("error", new Error("_read() is not implemented")); }; Readable.prototype.pipe = function (dest, pipeOpts) { var src = this; var state = this._readableState; switch (state.pipesCount) { case 0: state.pipes = dest; break; case 1: state.pipes = [state.pipes, dest]; break; default: state.pipes.push(dest); break; } state.pipesCount += 1; debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) processNextTick(endFn); else src.once("end", endFn); dest.on("unpipe", onunpipe); function onunpipe(readable, unpipeInfo) { debug("onunpipe"); if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; cleanup(); } } } function onend() { debug("onend"); dest.end(); } // when the dest drains, it reduces the awaitDrain counter // on the source. This would be more elegant with a .once() // handler in flow(), but adding and removing repeatedly is // too slow. var ondrain = pipeOnDrain(src); dest.on("drain", ondrain); var cleanedUp = false; function cleanup() { debug("cleanup"); // cleanup event handlers once the pipe is broken dest.removeListener("close", onclose); dest.removeListener("finish", onfinish); dest.removeListener("drain", ondrain); dest.removeListener("error", onerror); dest.removeListener("unpipe", onunpipe); src.removeListener("end", onend); src.removeListener("end", unpipe); src.removeListener("data", ondata); cleanedUp = true; // if the reader is waiting for a drain event from this // specific writer, then it would cause it to never start // flowing again. // So, if this is awaiting a drain, then we just call it now. // If we don't know, then assume that we are waiting for one. if ( state.awaitDrain && (!dest._writableState || dest._writableState.needDrain) ) ondrain(); } // If the user pushes more data while we're writing to dest then we'll end up // in ondata again. However, we only want to increase awaitDrain once because // dest will only emit one 'drain' event for the multiple writes. // => Introduce a guard on increasing awaitDrain. var increasedAwaitDrain = false; src.on("data", ondata); function ondata(chunk) { debug("ondata"); increasedAwaitDrain = false; var ret = dest.write(chunk); if (false === ret && !increasedAwaitDrain) { // If the user unpiped during `dest.write()`, it is possible // to get stuck in a permanently paused state if that write // also returned false. // => Check whether `dest` is still a piping destination. if ( ((state.pipesCount === 1 && state.pipes === dest) || (state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1)) && !cleanedUp ) { debug( "false write response, pause", src._readableState.awaitDrain ); src._readableState.awaitDrain++; increasedAwaitDrain = true; } src.pause(); } } // if the dest has an error, then stop piping into it. // however, don't suppress the throwing behavior for this. function onerror(er) { debug("onerror", er); unpipe(); dest.removeListener("error", onerror); if (EElistenerCount(dest, "error") === 0) dest.emit("error", er); } // Make sure our error handler is attached before userland ones. prependListener(dest, "error", onerror); // Both close and finish should trigger unpipe, but only once. function onclose() { dest.removeListener("finish", onfinish); unpipe(); } dest.once("close", onclose); function onfinish() { debug("onfinish"); dest.removeListener("close", onclose); unpipe(); } dest.once("finish", onfinish); function unpipe() { debug("unpipe"); src.unpipe(dest); } // tell the dest that it's being piped to dest.emit("pipe", src); // start the flow if it hasn't been started already. if (!state.flowing) { debug("pipe resume"); src.resume(); } return dest; }; function pipeOnDrain(src) { return function () { var state = src._readableState; debug("pipeOnDrain", state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; if (state.awaitDrain === 0 && EElistenerCount(src, "data")) { state.flowing = true; flow(src); } }; } Readable.prototype.unpipe = function (dest) { var state = this._readableState; var unpipeInfo = { hasUnpiped: false }; // if we're not piping anywhere, then do nothing. if (state.pipesCount === 0) return this; // just one destination. most common case. if (state.pipesCount === 1) { // passed in one, but it's not the right one. if (dest && dest !== state.pipes) return this; if (!dest) dest = state.pipes; // got a match. state.pipes = null; state.pipesCount = 0; state.flowing = false; if (dest) dest.emit("unpipe", this, unpipeInfo); return this; } // slow case. multiple pipe destinations. if (!dest) { // remove all. var dests = state.pipes; var len = state.pipesCount; state.pipes = null; state.pipesCount = 0; state.flowing = false; for (var i = 0; i < len; i++) { dests[i].emit("unpipe", this, unpipeInfo); } return this; } // try to find the right one. var index = indexOf(state.pipes, dest); if (index === -1) return this; state.pipes.splice(index, 1); state.pipesCount -= 1; if (state.pipesCount === 1) state.pipes = state.pipes[0]; dest.emit("unpipe", this, unpipeInfo); return this; }; // set up data events if they are asked for // Ensure readable listeners eventually get something Readable.prototype.on = function (ev, fn) { var res = Stream.prototype.on.call(this, ev, fn); if (ev === "data") { // Start flowing on next tick if stream isn't explicitly paused if (this._readableState.flowing !== false) this.resume(); } else if (ev === "readable") { var state = this._readableState; if (!state.endEmitted && !state.readableListening) { state.readableListening = state.needReadable = true; state.emittedReadable = false; if (!state.reading) { processNextTick(nReadingNextTick, this); } else if (state.length) { emitReadable(this); } } } return res; }; Readable.prototype.addListener = Readable.prototype.on; function nReadingNextTick(self) { debug("readable nexttick read 0"); self.read(0); } // pause() and resume() are remnants of the legacy readable stream API // If the user uses them, then switch into old mode. Readable.prototype.resume = function () { var state = this._readableState; if (!state.flowing) { debug("resume"); state.flowing = true; resume(this, state); } return this; }; function resume(stream, state) { if (!state.resumeScheduled) { state.resumeScheduled = true; processNextTick(resume_, stream, state); } } function resume_(stream, state) { if (!state.reading) { debug("resume read 0"); stream.read(0); } state.resumeScheduled = false; state.awaitDrain = 0; stream.emit("resume"); flow(stream); if (state.flowing && !state.reading) stream.read(0); } Readable.prototype.pause = function () { debug("call pause flowing=%j", this._readableState.flowing); if (false !== this._readableState.flowing) { debug("pause"); this._readableState.flowing = false; this.emit("pause"); } return this; }; function flow(stream) { var state = stream._readableState; debug("flow", state.flowing); while (state.flowing && stream.read() !== null) {} } // wrap an old-style stream as the async data source. // This is *not* part of the readable stream interface. // It is an ugly unfortunate mess of history. Readable.prototype.wrap = function (stream) { var state = this._readableState; var paused = false; var self = this; stream.on("end", function () { debug("wrapped end"); if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) self.push(chunk); } self.push(null); }); stream.on("data", function (chunk) { debug("wrapped data"); if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode if (state.objectMode && (chunk === null || chunk === undefined)) return; else if (!state.objectMode && (!chunk || !chunk.length)) return; var ret = self.push(chunk); if (!ret) { paused = true; stream.pause(); } }); // proxy all the other methods. // important when wrapping filters and duplexes. for (var i in stream) { if (this[i] === undefined && typeof stream[i] === "function") { this[i] = (function (method) { return function () { return stream[method].apply(stream, arguments); }; })(i); } } // proxy certain important events. for (var n = 0; n < kProxyEvents.length; n++) { stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); } // when we try to consume some more bytes, simply unpause the // underlying stream. self._read = function (n) { debug("wrapped _read", n); if (paused) { paused = false; stream.resume(); } }; return self; }; // exposed for testing purposes only. Readable._fromList = fromList; // Pluck off n bytes from an array of buffers. // Length is the combined lengths of all the buffers in the list. // This function is designed to be inlinable, so please take care when making // changes to the function body. function fromList(n, state) { // nothing buffered if (state.length === 0) return null; var ret; if (state.objectMode) ret = state.buffer.shift(); else if (!n || n >= state.length) { // read it all, truncate the list if (state.decoder) ret = state.buffer.join(""); else if (state.buffer.length === 1) ret = state.buffer.head.data; else ret = state.buffer.concat(state.length); state.buffer.clear(); } else { // read part of list ret = fromListPartial(n, state.buffer, state.decoder); } return ret; } // Extracts only enough buffered data to satisfy the amount requested. // This function is designed to be inlinable, so please take care when making // changes to the function body. function fromListPartial(n, list, hasStrings) { var ret; if (n < list.head.data.length) { // slice is the same for buffers and strings ret = list.head.data.slice(0, n); list.head.data = list.head.data.slice(n); } else if (n === list.head.data.length) { // first chunk is a perfect match ret = list.shift(); } else { // result spans more than one buffer ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); } return ret; } // Copies a specified amount of characters from the list of buffered data // chunks. // This function is designed to be inlinable, so please take care when making // changes to the function body. function copyFromBufferString(n, list) { var p = list.head; var c = 1; var ret = p.data; n -= ret.length; while ((p = p.next)) { var str = p.data; var nb = n > str.length ? str.length : n; if (nb === str.length) ret += str; else ret += str.slice(0, n); n -= nb; if (n === 0) { if (nb === str.length) { ++c; if (p.next) list.head = p.next; else list.head = list.tail = null; } else { list.head = p; p.data = str.slice(nb); } break; } ++c; } list.length -= c; return ret; } // Copies a specified amount of bytes from the list of buffered data chunks. // This function is designed to be inlinable, so please take care when making // changes to the function body. function copyFromBuffer(n, list) { var ret = Buffer.allocUnsafe(n); var p = list.head; var c = 1; p.data.copy(ret); n -= p.data.length; while ((p = p.next)) { var buf = p.data; var nb = n > buf.length ? buf.length : n; buf.copy(ret, ret.length - n, 0, nb); n -= nb; if (n === 0) { if (nb === buf.length) { ++c; if (p.next) list.head = p.next; else list.head = list.tail = null; } else { list.head = p; p.data = buf.slice(nb); } break; } ++c; } list.length -= c; return ret; } function endReadable(stream) { var state = stream._readableState; // If we get here before consuming all the bytes, then that is a // bug in node. Should never happen. if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); if (!state.endEmitted) { state.ended = true; processNextTick(endReadableNT, state, stream); } } function endReadableNT(state, stream) { // Check that we didn't get one last unshift. if (!state.endEmitted && state.length === 0) { state.endEmitted = true; stream.readable = false; stream.emit("end"); } } function forEach(xs, f) { for (var i = 0, l = xs.length; i < l; i++) { f(xs[i], i); } } function indexOf(xs, x) { for (var i = 0, l = xs.length; i < l; i++) { if (xs[i] === x) return i; } return -1; } }).call( this, require("_process"), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {} ); }, { "./_stream_duplex": 135, "./internal/streams/BufferList": 140, "./internal/streams/destroy": 141, "./internal/streams/stream": 142, _process: 126, "core-util-is": 56, events: 90, inherits: 108, isarray: 110, "process-nextick-args": 125, "safe-buffer": 148, "string_decoder/": 158, util: 27, }, ], 138: [ function (require, module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a transform stream is a readable/writable stream where you do // something with the data. Sometimes it's called a "filter", // but that's not a great name for it, since that implies a thing where // some bits pass through, and others are simply ignored. (That would // be a valid example of a transform, of course.) // // While the output is causally related to the input, it's not a // necessarily symmetric or synchronous transformation. For example, // a zlib stream might take multiple plain-text writes(), and then // emit a single compressed chunk some time in the future. // // Here's how this works: // // The Transform stream has all the aspects of the readable and writable // stream classes. When you write(chunk), that calls _write(chunk,cb) // internally, and returns false if there's a lot of pending writes // buffered up. When you call read(), that calls _read(n) until // there's enough pending readable data buffered up. // // In a transform stream, the written data is placed in a buffer. When // _read(n) is called, it transforms the queued up data, calling the // buffered _write cb's as it consumes chunks. If consuming a single // written chunk would result in multiple output chunks, then the first // outputted bit calls the readcb, and subsequent chunks just go into // the read buffer, and will cause it to emit 'readable' if necessary. // // This way, back-pressure is actually determined by the reading side, // since _read has to be called to start processing a new chunk. However, // a pathological inflate type of transform can cause excessive buffering // here. For example, imagine a stream where every byte of input is // interpreted as an integer from 0-255, and then results in that many // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in // 1kb of data being output. In this case, you could write a very small // amount of input, and end up with a very large amount of output. In // such a pathological inflating mechanism, there'd be no way to tell // the system to stop doing the transform. A single 4MB write could // cause the system to run out of memory. // // However, even in such a pathological case, only a single written chunk // would be consumed, and then the rest would wait (un-transformed) until // the results of the previous transformed chunk were consumed. "use strict"; module.exports = Transform; var Duplex = require("./_stream_duplex.js"); /**/ var util = require("core-util-is"); util.inherits = require("inherits"); /**/ util.inherits(Transform, Duplex); function TransformState(stream) { this.afterTransform = function (er, data) { return afterTransform(stream, er, data); }; this.needTransform = false; this.transforming = false; this.writecb = null; this.writechunk = null; this.writeencoding = null; } function afterTransform(stream, er, data) { var ts = stream._transformState; ts.transforming = false; var cb = ts.writecb; if (!cb) { return stream.emit( "error", new Error("write callback called multiple times") ); } ts.writechunk = null; ts.writecb = null; if (data !== null && data !== undefined) stream.push(data); cb(er); var rs = stream._readableState; rs.reading = false; if (rs.needReadable || rs.length < rs.highWaterMark) { stream._read(rs.highWaterMark); } } function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options); this._transformState = new TransformState(this); var stream = this; // start out asking for a readable event once data is transformed. this._readableState.needReadable = true; // we have implemented the _read method, and done the other things // that Readable wants before the first _read call, so unset the // sync guard flag. this._readableState.sync = false; if (options) { if (typeof options.transform === "function") this._transform = options.transform; if (typeof options.flush === "function") this._flush = options.flush; } // When the writable side finishes, then flush out anything remaining. this.once("prefinish", function () { if (typeof this._flush === "function") this._flush(function (er, data) { done(stream, er, data); }); else done(stream); }); } Transform.prototype.push = function (chunk, encoding) { this._transformState.needTransform = false; return Duplex.prototype.push.call(this, chunk, encoding); }; // This is the part where you do stuff! // override this function in implementation classes. // 'chunk' is an input chunk. // // Call `push(newChunk)` to pass along transformed output // to the readable side. You may call 'push' zero or more times. // // Call `cb(err)` when you are done with this chunk. If you pass // an error, then that'll put the hurt on the whole operation. If you // never call cb(), then you'll never get another chunk. Transform.prototype._transform = function (chunk, encoding, cb) { throw new Error("_transform() is not implemented"); }; Transform.prototype._write = function (chunk, encoding, cb) { var ts = this._transformState; ts.writecb = cb; ts.writechunk = chunk; ts.writeencoding = encoding; if (!ts.transforming) { var rs = this._readableState; if ( ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark ) this._read(rs.highWaterMark); } }; // Doesn't matter what the args are here. // _transform does all the work. // That we got here means that the readable side wants more data. Transform.prototype._read = function (n) { var ts = this._transformState; if (ts.writechunk !== null && ts.writecb && !ts.transforming) { ts.transforming = true; this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); } else { // mark that we need a transform, so that any data that comes in // will get processed, now that we've asked for it. ts.needTransform = true; } }; Transform.prototype._destroy = function (err, cb) { var _this = this; Duplex.prototype._destroy.call(this, err, function (err2) { cb(err2); _this.emit("close"); }); }; function done(stream, er, data) { if (er) return stream.emit("error", er); if (data !== null && data !== undefined) stream.push(data); // if there's nothing in the write buffer, then that means // that nothing more will ever be provided var ws = stream._writableState; var ts = stream._transformState; if (ws.length) throw new Error("Calling transform done when ws.length != 0"); if (ts.transforming) throw new Error("Calling transform done when still transforming"); return stream.push(null); } }, { "./_stream_duplex": 135, "core-util-is": 56, inherits: 108 }, ], 139: [ function (require, module, exports) { (function (process, global) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. "use strict"; /**/ var processNextTick = require("process-nextick-args"); /**/ module.exports = Writable; /* */ function WriteReq(chunk, encoding, cb) { this.chunk = chunk; this.encoding = encoding; this.callback = cb; this.next = null; } // It seems a linked list but it is not // there will be only 2 of these for each stream function CorkedRequest(state) { var _this = this; this.next = null; this.entry = null; this.finish = function () { onCorkedFinish(_this, state); }; } /* */ /**/ var asyncWrite = !process.browser && ["v0.10", "v0.9."].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; /**/ /**/ var Duplex; /**/ Writable.WritableState = WritableState; /**/ var util = require("core-util-is"); util.inherits = require("inherits"); /**/ /**/ var internalUtil = { deprecate: require("util-deprecate"), }; /**/ /**/ var Stream = require("./internal/streams/stream.js"); /**/ /**/ var Buffer = require("safe-buffer").Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } /**/ var destroyImpl = require("./internal/streams/destroy.js"); util.inherits(Writable, Stream); function nop() {} function WritableState(options, stream) { Duplex = Duplex || require("./_stream_duplex.js"); options = options || {}; // object stream flag to indicate whether or not this stream // contains buffers or objects. this.objectMode = !!options.objectMode; if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if // the entire buffer is not flushed immediately on write() var hwm = options.highWaterMark; var defaultHwm = this.objectMode ? 16 : 16 * 1024; this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. this.highWaterMark = Math.floor(this.highWaterMark); // if _final has been called this.finalCalled = false; // drain event flag. this.needDrain = false; // at the start of calling end() this.ending = false; // when end() has been called, and returned this.ended = false; // when 'finish' is emitted this.finished = false; // has it been destroyed this.destroyed = false; // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. var noDecode = options.decodeStrings === false; this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || "utf8"; // not an actual buffer we keep track of, but a measurement // of how much we're waiting to get pushed to some underlying // socket or file. this.length = 0; // a flag to see when we're in the middle of a write. this.writing = false; // when true all writes will be buffered until .uncork() call this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, // or on a later tick. We set this to true at first, because any // actions that shouldn't happen until "later" should generally also // not happen before the first write call. this.sync = true; // a flag to know if we're processing previously buffered items, which // may call the _write() callback in the same tick, so that we don't // end up in an overlapped onwrite situation. this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) this.onwrite = function (er) { onwrite(stream, er); }; // the callback that the user supplies to write(chunk,encoding,cb) this.writecb = null; // the amount that is being written when _write is called. this.writelen = 0; this.bufferedRequest = null; this.lastBufferedRequest = null; // number of pending user-supplied write callbacks // this must be 0 before 'finish' can be emitted this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs // This is relevant for synchronous Transform streams this.prefinished = false; // True if the error was already emitted and should not be thrown again this.errorEmitted = false; // count buffered requests this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always // one allocated and free to use, and we maintain at most two this.corkedRequestsFree = new CorkedRequest(this); } WritableState.prototype.getBuffer = function getBuffer() { var current = this.bufferedRequest; var out = []; while (current) { out.push(current); current = current.next; } return out; }; (function () { try { Object.defineProperty(WritableState.prototype, "buffer", { get: internalUtil.deprecate( function () { return this.getBuffer(); }, "_writableState.buffer is deprecated. Use _writableState.getBuffer " + "instead.", "DEP0003" ), }); } catch (_) {} })(); // Test _writableState for inheritance to account for Duplex streams, // whose prototype chain only points to Readable. var realHasInstance; if ( typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function" ) { realHasInstance = Function.prototype[Symbol.hasInstance]; Object.defineProperty(Writable, Symbol.hasInstance, { value: function (object) { if (realHasInstance.call(this, object)) return true; return object && object._writableState instanceof WritableState; }, }); } else { realHasInstance = function (object) { return object instanceof this; }; } function Writable(options) { Duplex = Duplex || require("./_stream_duplex.js"); // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` // would return false, as no `_writableState` property is attached. // Trying to use the custom `instanceof` for Writable here will also break the // Node.js LazyTransform implementation, which has a non-trivial getter for // `_writableState` that would lead to infinite recursion. if ( !realHasInstance.call(Writable, this) && !(this instanceof Duplex) ) { return new Writable(options); } this._writableState = new WritableState(options, this); // legacy. this.writable = true; if (options) { if (typeof options.write === "function") this._write = options.write; if (typeof options.writev === "function") this._writev = options.writev; if (typeof options.destroy === "function") this._destroy = options.destroy; if (typeof options.final === "function") this._final = options.final; } Stream.call(this); } // Otherwise people can pipe Writable streams, which is just wrong. Writable.prototype.pipe = function () { this.emit("error", new Error("Cannot pipe, not readable")); }; function writeAfterEnd(stream, cb) { var er = new Error("write after end"); // TODO: defer error events consistently everywhere, not just the cb stream.emit("error", er); processNextTick(cb, er); } // Checks that a user-supplied chunk is valid, especially for the particular // mode the stream is in. Currently this means that `null` is never accepted // and undefined/non-string values are only allowed in object mode. function validChunk(stream, state, chunk, cb) { var valid = true; var er = false; if (chunk === null) { er = new TypeError("May not write null values to stream"); } else if ( typeof chunk !== "string" && chunk !== undefined && !state.objectMode ) { er = new TypeError("Invalid non-string/buffer chunk"); } if (er) { stream.emit("error", er); processNextTick(cb, er); valid = false; } return valid; } Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; var isBuf = _isUint8Array(chunk) && !state.objectMode; if (isBuf && !Buffer.isBuffer(chunk)) { chunk = _uint8ArrayToBuffer(chunk); } if (typeof encoding === "function") { cb = encoding; encoding = null; } if (isBuf) encoding = "buffer"; else if (!encoding) encoding = state.defaultEncoding; if (typeof cb !== "function") cb = nop; if (state.ended) writeAfterEnd(this, cb); else if (isBuf || validChunk(this, state, chunk, cb)) { state.pendingcb++; ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); } return ret; }; Writable.prototype.cork = function () { var state = this._writableState; state.corked++; }; Writable.prototype.uncork = function () { var state = this._writableState; if (state.corked) { state.corked--; if ( !state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest ) clearBuffer(this, state); } }; Writable.prototype.setDefaultEncoding = function setDefaultEncoding( encoding ) { // node::ParseEncoding() requires lower case. if (typeof encoding === "string") encoding = encoding.toLowerCase(); if ( !( [ "hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw", ].indexOf((encoding + "").toLowerCase()) > -1 ) ) throw new TypeError("Unknown encoding: " + encoding); this._writableState.defaultEncoding = encoding; return this; }; function decodeChunk(state, chunk, encoding) { if ( !state.objectMode && state.decodeStrings !== false && typeof chunk === "string" ) { chunk = Buffer.from(chunk, encoding); } return chunk; } // if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { var newChunk = decodeChunk(state, chunk, encoding); if (chunk !== newChunk) { isBuf = true; encoding = "buffer"; chunk = newChunk; } } var len = state.objectMode ? 1 : chunk.length; state.length += len; var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. if (!ret) state.needDrain = true; if (state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = { chunk: chunk, encoding: encoding, isBuf: isBuf, callback: cb, next: null, }; if (last) { last.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } state.bufferedRequestCount += 1; } else { doWrite(stream, state, false, len, chunk, encoding, cb); } return ret; } function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; state.writecb = cb; state.writing = true; state.sync = true; if (writev) stream._writev(chunk, state.onwrite); else stream._write(chunk, encoding, state.onwrite); state.sync = false; } function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; if (sync) { // defer the callback if we are being called synchronously // to avoid piling up things on the stack processNextTick(cb, er); // this can emit finish, and it will always happen // after error processNextTick(finishMaybe, stream, state); stream._writableState.errorEmitted = true; stream.emit("error", er); } else { // the caller expect this to happen before if // it is async cb(er); stream._writableState.errorEmitted = true; stream.emit("error", er); // this can emit finish, but finish must // always follow error finishMaybe(stream, state); } } function onwriteStateUpdate(state) { state.writing = false; state.writecb = null; state.length -= state.writelen; state.writelen = 0; } function onwrite(stream, er) { var state = stream._writableState; var sync = state.sync; var cb = state.writecb; onwriteStateUpdate(state); if (er) onwriteError(stream, state, sync, er, cb); else { // Check if we're actually ready to finish, but don't emit yet var finished = needFinish(state); if ( !finished && !state.corked && !state.bufferProcessing && state.bufferedRequest ) { clearBuffer(stream, state); } if (sync) { /**/ asyncWrite(afterWrite, stream, state, finished, cb); /**/ } else { afterWrite(stream, state, finished, cb); } } } function afterWrite(stream, state, finished, cb) { if (!finished) onwriteDrain(stream, state); state.pendingcb--; cb(); finishMaybe(stream, state); } // Must force callback to be called on nextTick, so that we don't // emit 'drain' before the write() consumer gets the 'false' return // value, and has a chance to attach a 'drain' listener. function onwriteDrain(stream, state) { if (state.length === 0 && state.needDrain) { state.needDrain = false; stream.emit("drain"); } } // if there's something in the buffer waiting, then process it function clearBuffer(stream, state) { state.bufferProcessing = true; var entry = state.bufferedRequest; if (stream._writev && entry && entry.next) { // Fast case, write everything using _writev() var l = state.bufferedRequestCount; var buffer = new Array(l); var holder = state.corkedRequestsFree; holder.entry = entry; var count = 0; var allBuffers = true; while (entry) { buffer[count] = entry; if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } buffer.allBuffers = allBuffers; doWrite( stream, state, true, state.length, buffer, "", holder.finish ); // doWrite is almost always async, defer these to save a bit of time // as the hot path ends with doWrite state.pendingcb++; state.lastBufferedRequest = null; if (holder.next) { state.corkedRequestsFree = holder.next; holder.next = null; } else { state.corkedRequestsFree = new CorkedRequest(state); } } else { // Slow case, write chunks one-by-one while (entry) { var chunk = entry.chunk; var encoding = entry.encoding; var cb = entry.callback; var len = state.objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, cb); entry = entry.next; // if we didn't call the onwrite immediately, then // it means that we need to wait until it does. // also, that means that the chunk and cb are currently // being processed, so move the buffer counter past them. if (state.writing) { break; } } if (entry === null) state.lastBufferedRequest = null; } state.bufferedRequestCount = 0; state.bufferedRequest = entry; state.bufferProcessing = false; } Writable.prototype._write = function (chunk, encoding, cb) { cb(new Error("_write() is not implemented")); }; Writable.prototype._writev = null; Writable.prototype.end = function (chunk, encoding, cb) { var state = this._writableState; if (typeof chunk === "function") { cb = chunk; chunk = null; encoding = null; } else if (typeof encoding === "function") { cb = encoding; encoding = null; } if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks if (state.corked) { state.corked = 1; this.uncork(); } // ignore unnecessary end() calls. if (!state.ending && !state.finished) endWritable(this, state, cb); }; function needFinish(state) { return ( state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing ); } function callFinal(stream, state) { stream._final(function (err) { state.pendingcb--; if (err) { stream.emit("error", err); } state.prefinished = true; stream.emit("prefinish"); finishMaybe(stream, state); }); } function prefinish(stream, state) { if (!state.prefinished && !state.finalCalled) { if (typeof stream._final === "function") { state.pendingcb++; state.finalCalled = true; processNextTick(callFinal, stream, state); } else { state.prefinished = true; stream.emit("prefinish"); } } } function finishMaybe(stream, state) { var need = needFinish(state); if (need) { prefinish(stream, state); if (state.pendingcb === 0) { state.finished = true; stream.emit("finish"); } } return need; } function endWritable(stream, state, cb) { state.ending = true; finishMaybe(stream, state); if (cb) { if (state.finished) processNextTick(cb); else stream.once("finish", cb); } state.ended = true; stream.writable = false; } function onCorkedFinish(corkReq, state, err) { var entry = corkReq.entry; corkReq.entry = null; while (entry) { var cb = entry.callback; state.pendingcb--; cb(err); entry = entry.next; } if (state.corkedRequestsFree) { state.corkedRequestsFree.next = corkReq; } else { state.corkedRequestsFree = corkReq; } } Object.defineProperty(Writable.prototype, "destroyed", { get: function () { if (this._writableState === undefined) { return false; } return this._writableState.destroyed; }, set: function (value) { // we ignore the value if the stream // has not been initialized yet if (!this._writableState) { return; } // backward compatibility, the user is explicitly // managing destroyed this._writableState.destroyed = value; }, }); Writable.prototype.destroy = destroyImpl.destroy; Writable.prototype._undestroy = destroyImpl.undestroy; Writable.prototype._destroy = function (err, cb) { this.end(); cb(err); }; }).call( this, require("_process"), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {} ); }, { "./_stream_duplex": 135, "./internal/streams/destroy": 141, "./internal/streams/stream": 142, _process: 126, "core-util-is": 56, inherits: 108, "process-nextick-args": 125, "safe-buffer": 148, "util-deprecate": 159, }, ], 140: [ function (require, module, exports) { "use strict"; /**/ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Buffer = require("safe-buffer").Buffer; /**/ function copyBuffer(src, target, offset) { src.copy(target, offset); } module.exports = (function () { function BufferList() { _classCallCheck(this, BufferList); this.head = null; this.tail = null; this.length = 0; } BufferList.prototype.push = function push(v) { var entry = { data: v, next: null }; if (this.length > 0) this.tail.next = entry; else this.head = entry; this.tail = entry; ++this.length; }; BufferList.prototype.unshift = function unshift(v) { var entry = { data: v, next: this.head }; if (this.length === 0) this.tail = entry; this.head = entry; ++this.length; }; BufferList.prototype.shift = function shift() { if (this.length === 0) return; var ret = this.head.data; if (this.length === 1) this.head = this.tail = null; else this.head = this.head.next; --this.length; return ret; }; BufferList.prototype.clear = function clear() { this.head = this.tail = null; this.length = 0; }; BufferList.prototype.join = function join(s) { if (this.length === 0) return ""; var p = this.head; var ret = "" + p.data; while ((p = p.next)) { ret += s + p.data; } return ret; }; BufferList.prototype.concat = function concat(n) { if (this.length === 0) return Buffer.alloc(0); if (this.length === 1) return this.head.data; var ret = Buffer.allocUnsafe(n >>> 0); var p = this.head; var i = 0; while (p) { copyBuffer(p.data, ret, i); i += p.data.length; p = p.next; } return ret; }; return BufferList; })(); }, { "safe-buffer": 148 }, ], 141: [ function (require, module, exports) { "use strict"; /**/ var processNextTick = require("process-nextick-args"); /**/ // undocumented cb() API, needed for core, not for public API function destroy(err, cb) { var _this = this; var readableDestroyed = this._readableState && this._readableState.destroyed; var writableDestroyed = this._writableState && this._writableState.destroyed; if (readableDestroyed || writableDestroyed) { if (cb) { cb(err); } else if ( err && (!this._writableState || !this._writableState.errorEmitted) ) { processNextTick(emitErrorNT, this, err); } return; } // we set destroyed to true before firing error callbacks in order // to make it re-entrance safe in case destroy() is called within callbacks if (this._readableState) { this._readableState.destroyed = true; } // if this is a duplex stream mark the writable part as destroyed as well if (this._writableState) { this._writableState.destroyed = true; } this._destroy(err || null, function (err) { if (!cb && err) { processNextTick(emitErrorNT, _this, err); if (_this._writableState) { _this._writableState.errorEmitted = true; } } else if (cb) { cb(err); } }); } function undestroy() { if (this._readableState) { this._readableState.destroyed = false; this._readableState.reading = false; this._readableState.ended = false; this._readableState.endEmitted = false; } if (this._writableState) { this._writableState.destroyed = false; this._writableState.ended = false; this._writableState.ending = false; this._writableState.finished = false; this._writableState.errorEmitted = false; } } function emitErrorNT(self, err) { self.emit("error", err); } module.exports = { destroy: destroy, undestroy: undestroy, }; }, { "process-nextick-args": 125 }, ], 142: [ function (require, module, exports) { module.exports = require("events").EventEmitter; }, { events: 90 }, ], 143: [ function (require, module, exports) { module.exports = require("./readable.js").PassThrough; }, { "./readable": 144 }, ], 144: [ function (require, module, exports) { exports = module.exports = require("./lib/_stream_readable.js"); exports.Stream = exports; exports.Readable = exports; exports.Writable = require("./lib/_stream_writable.js"); exports.Duplex = require("./lib/_stream_duplex.js"); exports.Transform = require("./lib/_stream_transform.js"); exports.PassThrough = require("./lib/_stream_passthrough.js"); }, { "./lib/_stream_duplex.js": 135, "./lib/_stream_passthrough.js": 136, "./lib/_stream_readable.js": 137, "./lib/_stream_transform.js": 138, "./lib/_stream_writable.js": 139, }, ], 145: [ function (require, module, exports) { module.exports = require("./readable.js").Transform; }, { "./readable": 144 }, ], 146: [ function (require, module, exports) { module.exports = require("./lib/_stream_writable.js"); }, { "./lib/_stream_writable.js": 139 }, ], 147: [ function (require, module, exports) { (function (Buffer) { "use strict"; var inherits = require("inherits"); var HashBase = require("hash-base"); function RIPEMD160() { HashBase.call(this, 64); // state this._a = 0x67452301; this._b = 0xefcdab89; this._c = 0x98badcfe; this._d = 0x10325476; this._e = 0xc3d2e1f0; } inherits(RIPEMD160, HashBase); RIPEMD160.prototype._update = function () { var m = new Array(16); for (var i = 0; i < 16; ++i) m[i] = this._block.readInt32LE(i * 4); var al = this._a; var bl = this._b; var cl = this._c; var dl = this._d; var el = this._e; // Mj = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 // K = 0x00000000 // Sj = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8 al = fn1(al, bl, cl, dl, el, m[0], 0x00000000, 11); cl = rotl(cl, 10); el = fn1(el, al, bl, cl, dl, m[1], 0x00000000, 14); bl = rotl(bl, 10); dl = fn1(dl, el, al, bl, cl, m[2], 0x00000000, 15); al = rotl(al, 10); cl = fn1(cl, dl, el, al, bl, m[3], 0x00000000, 12); el = rotl(el, 10); bl = fn1(bl, cl, dl, el, al, m[4], 0x00000000, 5); dl = rotl(dl, 10); al = fn1(al, bl, cl, dl, el, m[5], 0x00000000, 8); cl = rotl(cl, 10); el = fn1(el, al, bl, cl, dl, m[6], 0x00000000, 7); bl = rotl(bl, 10); dl = fn1(dl, el, al, bl, cl, m[7], 0x00000000, 9); al = rotl(al, 10); cl = fn1(cl, dl, el, al, bl, m[8], 0x00000000, 11); el = rotl(el, 10); bl = fn1(bl, cl, dl, el, al, m[9], 0x00000000, 13); dl = rotl(dl, 10); al = fn1(al, bl, cl, dl, el, m[10], 0x00000000, 14); cl = rotl(cl, 10); el = fn1(el, al, bl, cl, dl, m[11], 0x00000000, 15); bl = rotl(bl, 10); dl = fn1(dl, el, al, bl, cl, m[12], 0x00000000, 6); al = rotl(al, 10); cl = fn1(cl, dl, el, al, bl, m[13], 0x00000000, 7); el = rotl(el, 10); bl = fn1(bl, cl, dl, el, al, m[14], 0x00000000, 9); dl = rotl(dl, 10); al = fn1(al, bl, cl, dl, el, m[15], 0x00000000, 8); cl = rotl(cl, 10); // Mj = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8 // K = 0x5a827999 // Sj = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12 el = fn2(el, al, bl, cl, dl, m[7], 0x5a827999, 7); bl = rotl(bl, 10); dl = fn2(dl, el, al, bl, cl, m[4], 0x5a827999, 6); al = rotl(al, 10); cl = fn2(cl, dl, el, al, bl, m[13], 0x5a827999, 8); el = rotl(el, 10); bl = fn2(bl, cl, dl, el, al, m[1], 0x5a827999, 13); dl = rotl(dl, 10); al = fn2(al, bl, cl, dl, el, m[10], 0x5a827999, 11); cl = rotl(cl, 10); el = fn2(el, al, bl, cl, dl, m[6], 0x5a827999, 9); bl = rotl(bl, 10); dl = fn2(dl, el, al, bl, cl, m[15], 0x5a827999, 7); al = rotl(al, 10); cl = fn2(cl, dl, el, al, bl, m[3], 0x5a827999, 15); el = rotl(el, 10); bl = fn2(bl, cl, dl, el, al, m[12], 0x5a827999, 7); dl = rotl(dl, 10); al = fn2(al, bl, cl, dl, el, m[0], 0x5a827999, 12); cl = rotl(cl, 10); el = fn2(el, al, bl, cl, dl, m[9], 0x5a827999, 15); bl = rotl(bl, 10); dl = fn2(dl, el, al, bl, cl, m[5], 0x5a827999, 9); al = rotl(al, 10); cl = fn2(cl, dl, el, al, bl, m[2], 0x5a827999, 11); el = rotl(el, 10); bl = fn2(bl, cl, dl, el, al, m[14], 0x5a827999, 7); dl = rotl(dl, 10); al = fn2(al, bl, cl, dl, el, m[11], 0x5a827999, 13); cl = rotl(cl, 10); el = fn2(el, al, bl, cl, dl, m[8], 0x5a827999, 12); bl = rotl(bl, 10); // Mj = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12 // K = 0x6ed9eba1 // Sj = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5 dl = fn3(dl, el, al, bl, cl, m[3], 0x6ed9eba1, 11); al = rotl(al, 10); cl = fn3(cl, dl, el, al, bl, m[10], 0x6ed9eba1, 13); el = rotl(el, 10); bl = fn3(bl, cl, dl, el, al, m[14], 0x6ed9eba1, 6); dl = rotl(dl, 10); al = fn3(al, bl, cl, dl, el, m[4], 0x6ed9eba1, 7); cl = rotl(cl, 10); el = fn3(el, al, bl, cl, dl, m[9], 0x6ed9eba1, 14); bl = rotl(bl, 10); dl = fn3(dl, el, al, bl, cl, m[15], 0x6ed9eba1, 9); al = rotl(al, 10); cl = fn3(cl, dl, el, al, bl, m[8], 0x6ed9eba1, 13); el = rotl(el, 10); bl = fn3(bl, cl, dl, el, al, m[1], 0x6ed9eba1, 15); dl = rotl(dl, 10); al = fn3(al, bl, cl, dl, el, m[2], 0x6ed9eba1, 14); cl = rotl(cl, 10); el = fn3(el, al, bl, cl, dl, m[7], 0x6ed9eba1, 8); bl = rotl(bl, 10); dl = fn3(dl, el, al, bl, cl, m[0], 0x6ed9eba1, 13); al = rotl(al, 10); cl = fn3(cl, dl, el, al, bl, m[6], 0x6ed9eba1, 6); el = rotl(el, 10); bl = fn3(bl, cl, dl, el, al, m[13], 0x6ed9eba1, 5); dl = rotl(dl, 10); al = fn3(al, bl, cl, dl, el, m[11], 0x6ed9eba1, 12); cl = rotl(cl, 10); el = fn3(el, al, bl, cl, dl, m[5], 0x6ed9eba1, 7); bl = rotl(bl, 10); dl = fn3(dl, el, al, bl, cl, m[12], 0x6ed9eba1, 5); al = rotl(al, 10); // Mj = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2 // K = 0x8f1bbcdc // Sj = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12 cl = fn4(cl, dl, el, al, bl, m[1], 0x8f1bbcdc, 11); el = rotl(el, 10); bl = fn4(bl, cl, dl, el, al, m[9], 0x8f1bbcdc, 12); dl = rotl(dl, 10); al = fn4(al, bl, cl, dl, el, m[11], 0x8f1bbcdc, 14); cl = rotl(cl, 10); el = fn4(el, al, bl, cl, dl, m[10], 0x8f1bbcdc, 15); bl = rotl(bl, 10); dl = fn4(dl, el, al, bl, cl, m[0], 0x8f1bbcdc, 14); al = rotl(al, 10); cl = fn4(cl, dl, el, al, bl, m[8], 0x8f1bbcdc, 15); el = rotl(el, 10); bl = fn4(bl, cl, dl, el, al, m[12], 0x8f1bbcdc, 9); dl = rotl(dl, 10); al = fn4(al, bl, cl, dl, el, m[4], 0x8f1bbcdc, 8); cl = rotl(cl, 10); el = fn4(el, al, bl, cl, dl, m[13], 0x8f1bbcdc, 9); bl = rotl(bl, 10); dl = fn4(dl, el, al, bl, cl, m[3], 0x8f1bbcdc, 14); al = rotl(al, 10); cl = fn4(cl, dl, el, al, bl, m[7], 0x8f1bbcdc, 5); el = rotl(el, 10); bl = fn4(bl, cl, dl, el, al, m[15], 0x8f1bbcdc, 6); dl = rotl(dl, 10); al = fn4(al, bl, cl, dl, el, m[14], 0x8f1bbcdc, 8); cl = rotl(cl, 10); el = fn4(el, al, bl, cl, dl, m[5], 0x8f1bbcdc, 6); bl = rotl(bl, 10); dl = fn4(dl, el, al, bl, cl, m[6], 0x8f1bbcdc, 5); al = rotl(al, 10); cl = fn4(cl, dl, el, al, bl, m[2], 0x8f1bbcdc, 12); el = rotl(el, 10); // Mj = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 // K = 0xa953fd4e // Sj = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 bl = fn5(bl, cl, dl, el, al, m[4], 0xa953fd4e, 9); dl = rotl(dl, 10); al = fn5(al, bl, cl, dl, el, m[0], 0xa953fd4e, 15); cl = rotl(cl, 10); el = fn5(el, al, bl, cl, dl, m[5], 0xa953fd4e, 5); bl = rotl(bl, 10); dl = fn5(dl, el, al, bl, cl, m[9], 0xa953fd4e, 11); al = rotl(al, 10); cl = fn5(cl, dl, el, al, bl, m[7], 0xa953fd4e, 6); el = rotl(el, 10); bl = fn5(bl, cl, dl, el, al, m[12], 0xa953fd4e, 8); dl = rotl(dl, 10); al = fn5(al, bl, cl, dl, el, m[2], 0xa953fd4e, 13); cl = rotl(cl, 10); el = fn5(el, al, bl, cl, dl, m[10], 0xa953fd4e, 12); bl = rotl(bl, 10); dl = fn5(dl, el, al, bl, cl, m[14], 0xa953fd4e, 5); al = rotl(al, 10); cl = fn5(cl, dl, el, al, bl, m[1], 0xa953fd4e, 12); el = rotl(el, 10); bl = fn5(bl, cl, dl, el, al, m[3], 0xa953fd4e, 13); dl = rotl(dl, 10); al = fn5(al, bl, cl, dl, el, m[8], 0xa953fd4e, 14); cl = rotl(cl, 10); el = fn5(el, al, bl, cl, dl, m[11], 0xa953fd4e, 11); bl = rotl(bl, 10); dl = fn5(dl, el, al, bl, cl, m[6], 0xa953fd4e, 8); al = rotl(al, 10); cl = fn5(cl, dl, el, al, bl, m[15], 0xa953fd4e, 5); el = rotl(el, 10); bl = fn5(bl, cl, dl, el, al, m[13], 0xa953fd4e, 6); dl = rotl(dl, 10); var ar = this._a; var br = this._b; var cr = this._c; var dr = this._d; var er = this._e; // M'j = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12 // K' = 0x50a28be6 // S'j = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6 ar = fn5(ar, br, cr, dr, er, m[5], 0x50a28be6, 8); cr = rotl(cr, 10); er = fn5(er, ar, br, cr, dr, m[14], 0x50a28be6, 9); br = rotl(br, 10); dr = fn5(dr, er, ar, br, cr, m[7], 0x50a28be6, 9); ar = rotl(ar, 10); cr = fn5(cr, dr, er, ar, br, m[0], 0x50a28be6, 11); er = rotl(er, 10); br = fn5(br, cr, dr, er, ar, m[9], 0x50a28be6, 13); dr = rotl(dr, 10); ar = fn5(ar, br, cr, dr, er, m[2], 0x50a28be6, 15); cr = rotl(cr, 10); er = fn5(er, ar, br, cr, dr, m[11], 0x50a28be6, 15); br = rotl(br, 10); dr = fn5(dr, er, ar, br, cr, m[4], 0x50a28be6, 5); ar = rotl(ar, 10); cr = fn5(cr, dr, er, ar, br, m[13], 0x50a28be6, 7); er = rotl(er, 10); br = fn5(br, cr, dr, er, ar, m[6], 0x50a28be6, 7); dr = rotl(dr, 10); ar = fn5(ar, br, cr, dr, er, m[15], 0x50a28be6, 8); cr = rotl(cr, 10); er = fn5(er, ar, br, cr, dr, m[8], 0x50a28be6, 11); br = rotl(br, 10); dr = fn5(dr, er, ar, br, cr, m[1], 0x50a28be6, 14); ar = rotl(ar, 10); cr = fn5(cr, dr, er, ar, br, m[10], 0x50a28be6, 14); er = rotl(er, 10); br = fn5(br, cr, dr, er, ar, m[3], 0x50a28be6, 12); dr = rotl(dr, 10); ar = fn5(ar, br, cr, dr, er, m[12], 0x50a28be6, 6); cr = rotl(cr, 10); // M'j = 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2 // K' = 0x5c4dd124 // S'j = 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11 er = fn4(er, ar, br, cr, dr, m[6], 0x5c4dd124, 9); br = rotl(br, 10); dr = fn4(dr, er, ar, br, cr, m[11], 0x5c4dd124, 13); ar = rotl(ar, 10); cr = fn4(cr, dr, er, ar, br, m[3], 0x5c4dd124, 15); er = rotl(er, 10); br = fn4(br, cr, dr, er, ar, m[7], 0x5c4dd124, 7); dr = rotl(dr, 10); ar = fn4(ar, br, cr, dr, er, m[0], 0x5c4dd124, 12); cr = rotl(cr, 10); er = fn4(er, ar, br, cr, dr, m[13], 0x5c4dd124, 8); br = rotl(br, 10); dr = fn4(dr, er, ar, br, cr, m[5], 0x5c4dd124, 9); ar = rotl(ar, 10); cr = fn4(cr, dr, er, ar, br, m[10], 0x5c4dd124, 11); er = rotl(er, 10); br = fn4(br, cr, dr, er, ar, m[14], 0x5c4dd124, 7); dr = rotl(dr, 10); ar = fn4(ar, br, cr, dr, er, m[15], 0x5c4dd124, 7); cr = rotl(cr, 10); er = fn4(er, ar, br, cr, dr, m[8], 0x5c4dd124, 12); br = rotl(br, 10); dr = fn4(dr, er, ar, br, cr, m[12], 0x5c4dd124, 7); ar = rotl(ar, 10); cr = fn4(cr, dr, er, ar, br, m[4], 0x5c4dd124, 6); er = rotl(er, 10); br = fn4(br, cr, dr, er, ar, m[9], 0x5c4dd124, 15); dr = rotl(dr, 10); ar = fn4(ar, br, cr, dr, er, m[1], 0x5c4dd124, 13); cr = rotl(cr, 10); er = fn4(er, ar, br, cr, dr, m[2], 0x5c4dd124, 11); br = rotl(br, 10); // M'j = 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13 // K' = 0x6d703ef3 // S'j = 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5 dr = fn3(dr, er, ar, br, cr, m[15], 0x6d703ef3, 9); ar = rotl(ar, 10); cr = fn3(cr, dr, er, ar, br, m[5], 0x6d703ef3, 7); er = rotl(er, 10); br = fn3(br, cr, dr, er, ar, m[1], 0x6d703ef3, 15); dr = rotl(dr, 10); ar = fn3(ar, br, cr, dr, er, m[3], 0x6d703ef3, 11); cr = rotl(cr, 10); er = fn3(er, ar, br, cr, dr, m[7], 0x6d703ef3, 8); br = rotl(br, 10); dr = fn3(dr, er, ar, br, cr, m[14], 0x6d703ef3, 6); ar = rotl(ar, 10); cr = fn3(cr, dr, er, ar, br, m[6], 0x6d703ef3, 6); er = rotl(er, 10); br = fn3(br, cr, dr, er, ar, m[9], 0x6d703ef3, 14); dr = rotl(dr, 10); ar = fn3(ar, br, cr, dr, er, m[11], 0x6d703ef3, 12); cr = rotl(cr, 10); er = fn3(er, ar, br, cr, dr, m[8], 0x6d703ef3, 13); br = rotl(br, 10); dr = fn3(dr, er, ar, br, cr, m[12], 0x6d703ef3, 5); ar = rotl(ar, 10); cr = fn3(cr, dr, er, ar, br, m[2], 0x6d703ef3, 14); er = rotl(er, 10); br = fn3(br, cr, dr, er, ar, m[10], 0x6d703ef3, 13); dr = rotl(dr, 10); ar = fn3(ar, br, cr, dr, er, m[0], 0x6d703ef3, 13); cr = rotl(cr, 10); er = fn3(er, ar, br, cr, dr, m[4], 0x6d703ef3, 7); br = rotl(br, 10); dr = fn3(dr, er, ar, br, cr, m[13], 0x6d703ef3, 5); ar = rotl(ar, 10); // M'j = 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14 // K' = 0x7a6d76e9 // S'j = 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8 cr = fn2(cr, dr, er, ar, br, m[8], 0x7a6d76e9, 15); er = rotl(er, 10); br = fn2(br, cr, dr, er, ar, m[6], 0x7a6d76e9, 5); dr = rotl(dr, 10); ar = fn2(ar, br, cr, dr, er, m[4], 0x7a6d76e9, 8); cr = rotl(cr, 10); er = fn2(er, ar, br, cr, dr, m[1], 0x7a6d76e9, 11); br = rotl(br, 10); dr = fn2(dr, er, ar, br, cr, m[3], 0x7a6d76e9, 14); ar = rotl(ar, 10); cr = fn2(cr, dr, er, ar, br, m[11], 0x7a6d76e9, 14); er = rotl(er, 10); br = fn2(br, cr, dr, er, ar, m[15], 0x7a6d76e9, 6); dr = rotl(dr, 10); ar = fn2(ar, br, cr, dr, er, m[0], 0x7a6d76e9, 14); cr = rotl(cr, 10); er = fn2(er, ar, br, cr, dr, m[5], 0x7a6d76e9, 6); br = rotl(br, 10); dr = fn2(dr, er, ar, br, cr, m[12], 0x7a6d76e9, 9); ar = rotl(ar, 10); cr = fn2(cr, dr, er, ar, br, m[2], 0x7a6d76e9, 12); er = rotl(er, 10); br = fn2(br, cr, dr, er, ar, m[13], 0x7a6d76e9, 9); dr = rotl(dr, 10); ar = fn2(ar, br, cr, dr, er, m[9], 0x7a6d76e9, 12); cr = rotl(cr, 10); er = fn2(er, ar, br, cr, dr, m[7], 0x7a6d76e9, 5); br = rotl(br, 10); dr = fn2(dr, er, ar, br, cr, m[10], 0x7a6d76e9, 15); ar = rotl(ar, 10); cr = fn2(cr, dr, er, ar, br, m[14], 0x7a6d76e9, 8); er = rotl(er, 10); // M'j = 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 // K' = 0x00000000 // S'j = 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 br = fn1(br, cr, dr, er, ar, m[12], 0x00000000, 8); dr = rotl(dr, 10); ar = fn1(ar, br, cr, dr, er, m[15], 0x00000000, 5); cr = rotl(cr, 10); er = fn1(er, ar, br, cr, dr, m[10], 0x00000000, 12); br = rotl(br, 10); dr = fn1(dr, er, ar, br, cr, m[4], 0x00000000, 9); ar = rotl(ar, 10); cr = fn1(cr, dr, er, ar, br, m[1], 0x00000000, 12); er = rotl(er, 10); br = fn1(br, cr, dr, er, ar, m[5], 0x00000000, 5); dr = rotl(dr, 10); ar = fn1(ar, br, cr, dr, er, m[8], 0x00000000, 14); cr = rotl(cr, 10); er = fn1(er, ar, br, cr, dr, m[7], 0x00000000, 6); br = rotl(br, 10); dr = fn1(dr, er, ar, br, cr, m[6], 0x00000000, 8); ar = rotl(ar, 10); cr = fn1(cr, dr, er, ar, br, m[2], 0x00000000, 13); er = rotl(er, 10); br = fn1(br, cr, dr, er, ar, m[13], 0x00000000, 6); dr = rotl(dr, 10); ar = fn1(ar, br, cr, dr, er, m[14], 0x00000000, 5); cr = rotl(cr, 10); er = fn1(er, ar, br, cr, dr, m[0], 0x00000000, 15); br = rotl(br, 10); dr = fn1(dr, er, ar, br, cr, m[3], 0x00000000, 13); ar = rotl(ar, 10); cr = fn1(cr, dr, er, ar, br, m[9], 0x00000000, 11); er = rotl(er, 10); br = fn1(br, cr, dr, er, ar, m[11], 0x00000000, 11); dr = rotl(dr, 10); // change state var t = (this._b + cl + dr) | 0; this._b = (this._c + dl + er) | 0; this._c = (this._d + el + ar) | 0; this._d = (this._e + al + br) | 0; this._e = (this._a + bl + cr) | 0; this._a = t; }; RIPEMD160.prototype._digest = function () { // create padding and handle blocks this._block[this._blockOffset++] = 0x80; if (this._blockOffset > 56) { this._block.fill(0, this._blockOffset, 64); this._update(); this._blockOffset = 0; } this._block.fill(0, this._blockOffset, 56); this._block.writeUInt32LE(this._length[0], 56); this._block.writeUInt32LE(this._length[1], 60); this._update(); // produce result var buffer = new Buffer(20); buffer.writeInt32LE(this._a, 0); buffer.writeInt32LE(this._b, 4); buffer.writeInt32LE(this._c, 8); buffer.writeInt32LE(this._d, 12); buffer.writeInt32LE(this._e, 16); return buffer; }; function rotl(x, n) { return (x << n) | (x >>> (32 - n)); } function fn1(a, b, c, d, e, m, k, s) { return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0; } function fn2(a, b, c, d, e, m, k, s) { return (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + e) | 0; } function fn3(a, b, c, d, e, m, k, s) { return (rotl((a + ((b | ~c) ^ d) + m + k) | 0, s) + e) | 0; } function fn4(a, b, c, d, e, m, k, s) { return (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + e) | 0; } function fn5(a, b, c, d, e, m, k, s) { return (rotl((a + (b ^ (c | ~d)) + m + k) | 0, s) + e) | 0; } module.exports = RIPEMD160; }).call(this, require("buffer").Buffer); }, { buffer: 54, "hash-base": 92, inherits: 108 }, ], 148: [ function (require, module, exports) { /* eslint-disable node/no-deprecated-api */ var buffer = require("buffer"); var Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers function copyProps(src, dst) { for (var key in src) { dst[key] = src[key]; } } if ( Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow ) { module.exports = buffer; } else { // Copy properties from require('buffer') copyProps(buffer, exports); exports.Buffer = SafeBuffer; } function SafeBuffer(arg, encodingOrOffset, length) { return Buffer(arg, encodingOrOffset, length); } // Copy static methods from Buffer copyProps(Buffer, SafeBuffer); SafeBuffer.from = function (arg, encodingOrOffset, length) { if (typeof arg === "number") { throw new TypeError("Argument must not be a number"); } return Buffer(arg, encodingOrOffset, length); }; SafeBuffer.alloc = function (size, fill, encoding) { if (typeof size !== "number") { throw new TypeError("Argument must be a number"); } var buf = Buffer(size); if (fill !== undefined) { if (typeof encoding === "string") { buf.fill(fill, encoding); } else { buf.fill(fill); } } else { buf.fill(0); } return buf; }; SafeBuffer.allocUnsafe = function (size) { if (typeof size !== "number") { throw new TypeError("Argument must be a number"); } return Buffer(size); }; SafeBuffer.allocUnsafeSlow = function (size) { if (typeof size !== "number") { throw new TypeError("Argument must be a number"); } return buffer.SlowBuffer(size); }; }, { buffer: 54 }, ], 149: [ function (require, module, exports) { (function (Buffer) { // prototype class for hash functions function Hash(blockSize, finalSize) { this._block = new Buffer(blockSize); this._finalSize = finalSize; this._blockSize = blockSize; this._len = 0; this._s = 0; } Hash.prototype.update = function (data, enc) { if (typeof data === "string") { enc = enc || "utf8"; data = new Buffer(data, enc); } var l = (this._len += data.length); var s = this._s || 0; var f = 0; var buffer = this._block; while (s < l) { var t = Math.min( data.length, f + this._blockSize - (s % this._blockSize) ); var ch = t - f; for (var i = 0; i < ch; i++) { buffer[(s % this._blockSize) + i] = data[i + f]; } s += ch; f += ch; if (s % this._blockSize === 0) { this._update(buffer); } } this._s = s; return this; }; Hash.prototype.digest = function (enc) { // Suppose the length of the message M, in bits, is l var l = this._len * 8; // Append the bit 1 to the end of the message this._block[this._len % this._blockSize] = 0x80; // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize this._block.fill(0, (this._len % this._blockSize) + 1); if (l % (this._blockSize * 8) >= this._finalSize * 8) { this._update(this._block); this._block.fill(0); } // to this append the block which is equal to the number l written in binary // TODO: handle case where l is > Math.pow(2, 29) this._block.writeInt32BE(l, this._blockSize - 4); var hash = this._update(this._block) || this._hash(); return enc ? hash.toString(enc) : hash; }; Hash.prototype._update = function () { throw new Error("_update must be implemented by subclass"); }; module.exports = Hash; }).call(this, require("buffer").Buffer); }, { buffer: 54 }, ], 150: [ function (require, module, exports) { var exports = (module.exports = function SHA(algorithm) { algorithm = algorithm.toLowerCase(); var Algorithm = exports[algorithm]; if (!Algorithm) throw new Error( algorithm + " is not supported (we accept pull requests)" ); return new Algorithm(); }); exports.sha = require("./sha.js"); exports.sha1 = require("./sha1.js"); exports.sha224 = require("./sha224.js"); exports.sha256 = require("./sha256.js"); exports.sha384 = require("./sha384.js"); exports.sha512 = require("./sha512.js"); }, { "./sha": 151, "./sha1": 152, "./sha224": 153, "./sha256": 154, "./sha384": 155, "./sha512": 156, }, ], 151: [ function (require, module, exports) { (function (Buffer) { /* * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined * in FIPS PUB 180-1 * This source code is derived from sha1.js of the same repository. * The difference between SHA-0 and SHA-1 is just a bitwise rotate left * operation was added. */ var inherits = require("inherits"); var Hash = require("./hash.js"); var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0]; var W = new Array(80); function Sha() { this.init(); this._w = W; Hash.call(this, 64, 56); } inherits(Sha, Hash); Sha.prototype.init = function () { this._a = 0x67452301; this._b = 0xefcdab89; this._c = 0x98badcfe; this._d = 0x10325476; this._e = 0xc3d2e1f0; return this; }; function rotl5(num) { return (num << 5) | (num >>> 27); } function rotl30(num) { return (num << 30) | (num >>> 2); } function ft(s, b, c, d) { if (s === 0) return (b & c) | (~b & d); if (s === 2) return (b & c) | (b & d) | (c & d); return b ^ c ^ d; } Sha.prototype._update = function (M) { var W = this._w; var a = this._a | 0; var b = this._b | 0; var c = this._c | 0; var d = this._d | 0; var e = this._e | 0; for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4); for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; for (var j = 0; j < 80; ++j) { var s = ~~(j / 20); var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0; e = d; d = c; c = rotl30(b); b = a; a = t; } this._a = (a + this._a) | 0; this._b = (b + this._b) | 0; this._c = (c + this._c) | 0; this._d = (d + this._d) | 0; this._e = (e + this._e) | 0; }; Sha.prototype._hash = function () { var H = new Buffer(20); H.writeInt32BE(this._a | 0, 0); H.writeInt32BE(this._b | 0, 4); H.writeInt32BE(this._c | 0, 8); H.writeInt32BE(this._d | 0, 12); H.writeInt32BE(this._e | 0, 16); return H; }; module.exports = Sha; }).call(this, require("buffer").Buffer); }, { "./hash": 149, buffer: 54, inherits: 108 }, ], 152: [ function (require, module, exports) { (function (Buffer) { /* * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined * in FIPS PUB 180-1 * Version 2.1a Copyright Paul Johnston 2000 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See http://pajhome.org.uk/crypt/md5 for details. */ var inherits = require("inherits"); var Hash = require("./hash.js"); var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0]; var W = new Array(80); function Sha1() { this.init(); this._w = W; Hash.call(this, 64, 56); } inherits(Sha1, Hash); Sha1.prototype.init = function () { this._a = 0x67452301; this._b = 0xefcdab89; this._c = 0x98badcfe; this._d = 0x10325476; this._e = 0xc3d2e1f0; return this; }; function rotl1(num) { return (num << 1) | (num >>> 31); } function rotl5(num) { return (num << 5) | (num >>> 27); } function rotl30(num) { return (num << 30) | (num >>> 2); } function ft(s, b, c, d) { if (s === 0) return (b & c) | (~b & d); if (s === 2) return (b & c) | (b & d) | (c & d); return b ^ c ^ d; } Sha1.prototype._update = function (M) { var W = this._w; var a = this._a | 0; var b = this._b | 0; var c = this._c | 0; var d = this._d | 0; var e = this._e | 0; for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4); for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]); for (var j = 0; j < 80; ++j) { var s = ~~(j / 20); var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0; e = d; d = c; c = rotl30(b); b = a; a = t; } this._a = (a + this._a) | 0; this._b = (b + this._b) | 0; this._c = (c + this._c) | 0; this._d = (d + this._d) | 0; this._e = (e + this._e) | 0; }; Sha1.prototype._hash = function () { var H = new Buffer(20); H.writeInt32BE(this._a | 0, 0); H.writeInt32BE(this._b | 0, 4); H.writeInt32BE(this._c | 0, 8); H.writeInt32BE(this._d | 0, 12); H.writeInt32BE(this._e | 0, 16); return H; }; module.exports = Sha1; }).call(this, require("buffer").Buffer); }, { "./hash": 149, buffer: 54, inherits: 108 }, ], 153: [ function (require, module, exports) { (function (Buffer) { /** * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined * in FIPS 180-2 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * */ var inherits = require("inherits"); var Sha256 = require("./sha256.js"); var Hash = require("./hash.js"); var W = new Array(64); function Sha224() { this.init(); this._w = W; // new Array(64) Hash.call(this, 64, 56); } inherits(Sha224, Sha256); Sha224.prototype.init = function () { this._a = 0xc1059ed8; this._b = 0x367cd507; this._c = 0x3070dd17; this._d = 0xf70e5939; this._e = 0xffc00b31; this._f = 0x68581511; this._g = 0x64f98fa7; this._h = 0xbefa4fa4; return this; }; Sha224.prototype._hash = function () { var H = new Buffer(28); H.writeInt32BE(this._a, 0); H.writeInt32BE(this._b, 4); H.writeInt32BE(this._c, 8); H.writeInt32BE(this._d, 12); H.writeInt32BE(this._e, 16); H.writeInt32BE(this._f, 20); H.writeInt32BE(this._g, 24); return H; }; module.exports = Sha224; }).call(this, require("buffer").Buffer); }, { "./hash": 149, "./sha256": 154, buffer: 54, inherits: 108 }, ], 154: [ function (require, module, exports) { (function (Buffer) { /** * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined * in FIPS 180-2 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * */ var inherits = require("inherits"); var Hash = require("./hash.js"); var K = [ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, ]; var W = new Array(64); function Sha256() { this.init(); this._w = W; // new Array(64) Hash.call(this, 64, 56); } inherits(Sha256, Hash); Sha256.prototype.init = function () { this._a = 0x6a09e667; this._b = 0xbb67ae85; this._c = 0x3c6ef372; this._d = 0xa54ff53a; this._e = 0x510e527f; this._f = 0x9b05688c; this._g = 0x1f83d9ab; this._h = 0x5be0cd19; return this; }; function ch(x, y, z) { return z ^ (x & (y ^ z)); } function maj(x, y, z) { return (x & y) | (z & (x | y)); } function sigma0(x) { return ( ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10)) ); } function sigma1(x) { return ( ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7)) ); } function gamma0(x) { return ( ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3) ); } function gamma1(x) { return ( ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10) ); } Sha256.prototype._update = function (M) { var W = this._w; var a = this._a | 0; var b = this._b | 0; var c = this._c | 0; var d = this._d | 0; var e = this._e | 0; var f = this._f | 0; var g = this._g | 0; var h = this._h | 0; for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4); for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0; for (var j = 0; j < 64; ++j) { var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0; var T2 = (sigma0(a) + maj(a, b, c)) | 0; h = g; g = f; f = e; e = (d + T1) | 0; d = c; c = b; b = a; a = (T1 + T2) | 0; } this._a = (a + this._a) | 0; this._b = (b + this._b) | 0; this._c = (c + this._c) | 0; this._d = (d + this._d) | 0; this._e = (e + this._e) | 0; this._f = (f + this._f) | 0; this._g = (g + this._g) | 0; this._h = (h + this._h) | 0; }; Sha256.prototype._hash = function () { var H = new Buffer(32); H.writeInt32BE(this._a, 0); H.writeInt32BE(this._b, 4); H.writeInt32BE(this._c, 8); H.writeInt32BE(this._d, 12); H.writeInt32BE(this._e, 16); H.writeInt32BE(this._f, 20); H.writeInt32BE(this._g, 24); H.writeInt32BE(this._h, 28); return H; }; module.exports = Sha256; }).call(this, require("buffer").Buffer); }, { "./hash": 149, buffer: 54, inherits: 108 }, ], 155: [ function (require, module, exports) { (function (Buffer) { var inherits = require("inherits"); var SHA512 = require("./sha512.js"); var Hash = require("./hash.js"); var W = new Array(160); function Sha384() { this.init(); this._w = W; Hash.call(this, 128, 112); } inherits(Sha384, SHA512); Sha384.prototype.init = function () { this._ah = 0xcbbb9d5d; this._bh = 0x629a292a; this._ch = 0x9159015a; this._dh = 0x152fecd8; this._eh = 0x67332667; this._fh = 0x8eb44a87; this._gh = 0xdb0c2e0d; this._hh = 0x47b5481d; this._al = 0xc1059ed8; this._bl = 0x367cd507; this._cl = 0x3070dd17; this._dl = 0xf70e5939; this._el = 0xffc00b31; this._fl = 0x68581511; this._gl = 0x64f98fa7; this._hl = 0xbefa4fa4; return this; }; Sha384.prototype._hash = function () { var H = new Buffer(48); function writeInt64BE(h, l, offset) { H.writeInt32BE(h, offset); H.writeInt32BE(l, offset + 4); } writeInt64BE(this._ah, this._al, 0); writeInt64BE(this._bh, this._bl, 8); writeInt64BE(this._ch, this._cl, 16); writeInt64BE(this._dh, this._dl, 24); writeInt64BE(this._eh, this._el, 32); writeInt64BE(this._fh, this._fl, 40); return H; }; module.exports = Sha384; }).call(this, require("buffer").Buffer); }, { "./hash": 149, "./sha512": 156, buffer: 54, inherits: 108 }, ], 156: [ function (require, module, exports) { (function (Buffer) { var inherits = require("inherits"); var Hash = require("./hash.js"); var K = [ 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817, ]; var W = new Array(160); function Sha512() { this.init(); this._w = W; Hash.call(this, 128, 112); } inherits(Sha512, Hash); Sha512.prototype.init = function () { this._ah = 0x6a09e667; this._bh = 0xbb67ae85; this._ch = 0x3c6ef372; this._dh = 0xa54ff53a; this._eh = 0x510e527f; this._fh = 0x9b05688c; this._gh = 0x1f83d9ab; this._hh = 0x5be0cd19; this._al = 0xf3bcc908; this._bl = 0x84caa73b; this._cl = 0xfe94f82b; this._dl = 0x5f1d36f1; this._el = 0xade682d1; this._fl = 0x2b3e6c1f; this._gl = 0xfb41bd6b; this._hl = 0x137e2179; return this; }; function Ch(x, y, z) { return z ^ (x & (y ^ z)); } function maj(x, y, z) { return (x & y) | (z & (x | y)); } function sigma0(x, xl) { return ( ((x >>> 28) | (xl << 4)) ^ ((xl >>> 2) | (x << 30)) ^ ((xl >>> 7) | (x << 25)) ); } function sigma1(x, xl) { return ( ((x >>> 14) | (xl << 18)) ^ ((x >>> 18) | (xl << 14)) ^ ((xl >>> 9) | (x << 23)) ); } function Gamma0(x, xl) { return ( ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ (x >>> 7) ); } function Gamma0l(x, xl) { return ( ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ ((x >>> 7) | (xl << 25)) ); } function Gamma1(x, xl) { return ( ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ (x >>> 6) ); } function Gamma1l(x, xl) { return ( ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ ((x >>> 6) | (xl << 26)) ); } function getCarry(a, b) { return a >>> 0 < b >>> 0 ? 1 : 0; } Sha512.prototype._update = function (M) { var W = this._w; var ah = this._ah | 0; var bh = this._bh | 0; var ch = this._ch | 0; var dh = this._dh | 0; var eh = this._eh | 0; var fh = this._fh | 0; var gh = this._gh | 0; var hh = this._hh | 0; var al = this._al | 0; var bl = this._bl | 0; var cl = this._cl | 0; var dl = this._dl | 0; var el = this._el | 0; var fl = this._fl | 0; var gl = this._gl | 0; var hl = this._hl | 0; for (var i = 0; i < 32; i += 2) { W[i] = M.readInt32BE(i * 4); W[i + 1] = M.readInt32BE(i * 4 + 4); } for (; i < 160; i += 2) { var xh = W[i - 15 * 2]; var xl = W[i - 15 * 2 + 1]; var gamma0 = Gamma0(xh, xl); var gamma0l = Gamma0l(xl, xh); xh = W[i - 2 * 2]; xl = W[i - 2 * 2 + 1]; var gamma1 = Gamma1(xh, xl); var gamma1l = Gamma1l(xl, xh); // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] var Wi7h = W[i - 7 * 2]; var Wi7l = W[i - 7 * 2 + 1]; var Wi16h = W[i - 16 * 2]; var Wi16l = W[i - 16 * 2 + 1]; var Wil = (gamma0l + Wi7l) | 0; var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0; Wil = (Wil + gamma1l) | 0; Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0; Wil = (Wil + Wi16l) | 0; Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0; W[i] = Wih; W[i + 1] = Wil; } for (var j = 0; j < 160; j += 2) { Wih = W[j]; Wil = W[j + 1]; var majh = maj(ah, bh, ch); var majl = maj(al, bl, cl); var sigma0h = sigma0(ah, al); var sigma0l = sigma0(al, ah); var sigma1h = sigma1(eh, el); var sigma1l = sigma1(el, eh); // t1 = h + sigma1 + ch + K[j] + W[j] var Kih = K[j]; var Kil = K[j + 1]; var chh = Ch(eh, fh, gh); var chl = Ch(el, fl, gl); var t1l = (hl + sigma1l) | 0; var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0; t1l = (t1l + chl) | 0; t1h = (t1h + chh + getCarry(t1l, chl)) | 0; t1l = (t1l + Kil) | 0; t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0; t1l = (t1l + Wil) | 0; t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0; // t2 = sigma0 + maj var t2l = (sigma0l + majl) | 0; var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0; hh = gh; hl = gl; gh = fh; gl = fl; fh = eh; fl = el; el = (dl + t1l) | 0; eh = (dh + t1h + getCarry(el, dl)) | 0; dh = ch; dl = cl; ch = bh; cl = bl; bh = ah; bl = al; al = (t1l + t2l) | 0; ah = (t1h + t2h + getCarry(al, t1l)) | 0; } this._al = (this._al + al) | 0; this._bl = (this._bl + bl) | 0; this._cl = (this._cl + cl) | 0; this._dl = (this._dl + dl) | 0; this._el = (this._el + el) | 0; this._fl = (this._fl + fl) | 0; this._gl = (this._gl + gl) | 0; this._hl = (this._hl + hl) | 0; this._ah = (this._ah + ah + getCarry(this._al, al)) | 0; this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0; this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0; this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0; this._eh = (this._eh + eh + getCarry(this._el, el)) | 0; this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0; this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0; this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0; }; Sha512.prototype._hash = function () { var H = new Buffer(64); function writeInt64BE(h, l, offset) { H.writeInt32BE(h, offset); H.writeInt32BE(l, offset + 4); } writeInt64BE(this._ah, this._al, 0); writeInt64BE(this._bh, this._bl, 8); writeInt64BE(this._ch, this._cl, 16); writeInt64BE(this._dh, this._dl, 24); writeInt64BE(this._eh, this._el, 32); writeInt64BE(this._fh, this._fl, 40); writeInt64BE(this._gh, this._gl, 48); writeInt64BE(this._hh, this._hl, 56); return H; }; module.exports = Sha512; }).call(this, require("buffer").Buffer); }, { "./hash": 149, buffer: 54, inherits: 108 }, ], 157: [ function (require, module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. module.exports = Stream; var EE = require("events").EventEmitter; var inherits = require("inherits"); inherits(Stream, EE); Stream.Readable = require("readable-stream/readable.js"); Stream.Writable = require("readable-stream/writable.js"); Stream.Duplex = require("readable-stream/duplex.js"); Stream.Transform = require("readable-stream/transform.js"); Stream.PassThrough = require("readable-stream/passthrough.js"); // Backwards-compat with node 0.4.x Stream.Stream = Stream; // old-style streams. Note that the pipe method (the only relevant // part of this class) is overridden in the Readable class. function Stream() { EE.call(this); } Stream.prototype.pipe = function (dest, options) { var source = this; function ondata(chunk) { if (dest.writable) { if (false === dest.write(chunk) && source.pause) { source.pause(); } } } source.on("data", ondata); function ondrain() { if (source.readable && source.resume) { source.resume(); } } dest.on("drain", ondrain); // If the 'end' option is not supplied, dest.end() will be called when // source gets the 'end' or 'close' events. Only dest.end() once. if (!dest._isStdio && (!options || options.end !== false)) { source.on("end", onend); source.on("close", onclose); } var didOnEnd = false; function onend() { if (didOnEnd) return; didOnEnd = true; dest.end(); } function onclose() { if (didOnEnd) return; didOnEnd = true; if (typeof dest.destroy === "function") dest.destroy(); } // don't leave dangling pipes when there are errors. function onerror(er) { cleanup(); if (EE.listenerCount(this, "error") === 0) { throw er; // Unhandled stream error in pipe. } } source.on("error", onerror); dest.on("error", onerror); // remove all the event listeners that were added. function cleanup() { source.removeListener("data", ondata); dest.removeListener("drain", ondrain); source.removeListener("end", onend); source.removeListener("close", onclose); source.removeListener("error", onerror); dest.removeListener("error", onerror); source.removeListener("end", cleanup); source.removeListener("close", cleanup); dest.removeListener("close", cleanup); } source.on("end", cleanup); source.on("close", cleanup); dest.on("close", cleanup); dest.emit("pipe", source); // Allow for unix-like usage: A.pipe(B).pipe(C) return dest; }; }, { events: 90, inherits: 108, "readable-stream/duplex.js": 134, "readable-stream/passthrough.js": 143, "readable-stream/readable.js": 144, "readable-stream/transform.js": 145, "readable-stream/writable.js": 146, }, ], 158: [ function (require, module, exports) { "use strict"; var Buffer = require("safe-buffer").Buffer; var isEncoding = Buffer.isEncoding || function (encoding) { encoding = "" + encoding; switch (encoding && encoding.toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": case "raw": return true; default: return false; } }; function _normalizeEncoding(enc) { if (!enc) return "utf8"; var retried; while (true) { switch (enc) { case "utf8": case "utf-8": return "utf8"; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return "utf16le"; case "latin1": case "binary": return "latin1"; case "base64": case "ascii": case "hex": return enc; default: if (retried) return; // undefined enc = ("" + enc).toLowerCase(); retried = true; } } } // Do not cache `Buffer.isEncoding` when checking encoding names as some // modules monkey-patch it to support additional encodings function normalizeEncoding(enc) { var nenc = _normalizeEncoding(enc); if ( typeof nenc !== "string" && (Buffer.isEncoding === isEncoding || !isEncoding(enc)) ) throw new Error("Unknown encoding: " + enc); return nenc || enc; } // StringDecoder provides an interface for efficiently splitting a series of // buffers into a series of JS strings without breaking apart multi-byte // characters. exports.StringDecoder = StringDecoder; function StringDecoder(encoding) { this.encoding = normalizeEncoding(encoding); var nb; switch (this.encoding) { case "utf16le": this.text = utf16Text; this.end = utf16End; nb = 4; break; case "utf8": this.fillLast = utf8FillLast; nb = 4; break; case "base64": this.text = base64Text; this.end = base64End; nb = 3; break; default: this.write = simpleWrite; this.end = simpleEnd; return; } this.lastNeed = 0; this.lastTotal = 0; this.lastChar = Buffer.allocUnsafe(nb); } StringDecoder.prototype.write = function (buf) { if (buf.length === 0) return ""; var r; var i; if (this.lastNeed) { r = this.fillLast(buf); if (r === undefined) return ""; i = this.lastNeed; this.lastNeed = 0; } else { i = 0; } if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); return r || ""; }; StringDecoder.prototype.end = utf8End; // Returns only complete characters in a Buffer StringDecoder.prototype.text = utf8Text; // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer StringDecoder.prototype.fillLast = function (buf) { if (this.lastNeed <= buf.length) { buf.copy( this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed ); return this.lastChar.toString(this.encoding, 0, this.lastTotal); } buf.copy( this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length ); this.lastNeed -= buf.length; }; // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a // continuation byte. function utf8CheckByte(byte) { if (byte <= 0x7f) return 0; else if (byte >> 5 === 0x06) return 2; else if (byte >> 4 === 0x0e) return 3; else if (byte >> 3 === 0x1e) return 4; return -1; } // Checks at most 3 bytes at the end of a Buffer in order to detect an // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) // needed to complete the UTF-8 character (if applicable) are returned. function utf8CheckIncomplete(self, buf, i) { var j = buf.length - 1; if (j < i) return 0; var nb = utf8CheckByte(buf[j]); if (nb >= 0) { if (nb > 0) self.lastNeed = nb - 1; return nb; } if (--j < i) return 0; nb = utf8CheckByte(buf[j]); if (nb >= 0) { if (nb > 0) self.lastNeed = nb - 2; return nb; } if (--j < i) return 0; nb = utf8CheckByte(buf[j]); if (nb >= 0) { if (nb > 0) { if (nb === 2) nb = 0; else self.lastNeed = nb - 3; } return nb; } return 0; } // Validates as many continuation bytes for a multi-byte UTF-8 character as // needed or are available. If we see a non-continuation byte where we expect // one, we "replace" the validated continuation bytes we've seen so far with // UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding // behavior. The continuation byte check is included three times in the case // where all of the continuation bytes for a character exist in the same buffer. // It is also done this way as a slight performance increase instead of using a // loop. function utf8CheckExtraBytes(self, buf, p) { if ((buf[0] & 0xc0) !== 0x80) { self.lastNeed = 0; return "\ufffd".repeat(p); } if (self.lastNeed > 1 && buf.length > 1) { if ((buf[1] & 0xc0) !== 0x80) { self.lastNeed = 1; return "\ufffd".repeat(p + 1); } if (self.lastNeed > 2 && buf.length > 2) { if ((buf[2] & 0xc0) !== 0x80) { self.lastNeed = 2; return "\ufffd".repeat(p + 2); } } } } // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. function utf8FillLast(buf) { var p = this.lastTotal - this.lastNeed; var r = utf8CheckExtraBytes(this, buf, p); if (r !== undefined) return r; if (this.lastNeed <= buf.length) { buf.copy(this.lastChar, p, 0, this.lastNeed); return this.lastChar.toString(this.encoding, 0, this.lastTotal); } buf.copy(this.lastChar, p, 0, buf.length); this.lastNeed -= buf.length; } // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a // partial character, the character's bytes are buffered until the required // number of bytes are available. function utf8Text(buf, i) { var total = utf8CheckIncomplete(this, buf, i); if (!this.lastNeed) return buf.toString("utf8", i); this.lastTotal = total; var end = buf.length - (total - this.lastNeed); buf.copy(this.lastChar, 0, end); return buf.toString("utf8", i, end); } // For UTF-8, a replacement character for each buffered byte of a (partial) // character needs to be added to the output. function utf8End(buf) { var r = buf && buf.length ? this.write(buf) : ""; if (this.lastNeed) return r + "\ufffd".repeat(this.lastTotal - this.lastNeed); return r; } // UTF-16LE typically needs two bytes per character, but even if we have an even // number of bytes available, we need to check if we end on a leading/high // surrogate. In that case, we need to wait for the next two bytes in order to // decode the last character properly. function utf16Text(buf, i) { if ((buf.length - i) % 2 === 0) { var r = buf.toString("utf16le", i); if (r) { var c = r.charCodeAt(r.length - 1); if (c >= 0xd800 && c <= 0xdbff) { this.lastNeed = 2; this.lastTotal = 4; this.lastChar[0] = buf[buf.length - 2]; this.lastChar[1] = buf[buf.length - 1]; return r.slice(0, -1); } } return r; } this.lastNeed = 1; this.lastTotal = 2; this.lastChar[0] = buf[buf.length - 1]; return buf.toString("utf16le", i, buf.length - 1); } // For UTF-16LE we do not explicitly append special replacement characters if we // end on a partial character, we simply let v8 handle that. function utf16End(buf) { var r = buf && buf.length ? this.write(buf) : ""; if (this.lastNeed) { var end = this.lastTotal - this.lastNeed; return r + this.lastChar.toString("utf16le", 0, end); } return r; } function base64Text(buf, i) { var n = (buf.length - i) % 3; if (n === 0) return buf.toString("base64", i); this.lastNeed = 3 - n; this.lastTotal = 3; if (n === 1) { this.lastChar[0] = buf[buf.length - 1]; } else { this.lastChar[0] = buf[buf.length - 2]; this.lastChar[1] = buf[buf.length - 1]; } return buf.toString("base64", i, buf.length - n); } function base64End(buf) { var r = buf && buf.length ? this.write(buf) : ""; if (this.lastNeed) return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed); return r; } // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) function simpleWrite(buf) { return buf.toString(this.encoding); } function simpleEnd(buf) { return buf && buf.length ? this.write(buf) : ""; } }, { "safe-buffer": 148 }, ], 159: [ function (require, module, exports) { (function (global) { /** * Module exports. */ module.exports = deprecate; /** * Mark that a method should not be used. * Returns a modified function which warns once by default. * * If `localStorage.noDeprecation = true` is set, then it is a no-op. * * If `localStorage.throwDeprecation = true` is set, then deprecated functions * will throw an Error when invoked. * * If `localStorage.traceDeprecation = true` is set, then deprecated functions * will invoke `console.trace()` instead of `console.error()`. * * @param {Function} fn - the function to deprecate * @param {String} msg - the string to print to the console when `fn` is invoked * @returns {Function} a new "deprecated" version of `fn` * @api public */ function deprecate(fn, msg) { if (config("noDeprecation")) { return fn; } var warned = false; function deprecated() { if (!warned) { if (config("throwDeprecation")) { throw new Error(msg); } else if (config("traceDeprecation")) { console.trace(msg); } else { console.warn(msg); } warned = true; } return fn.apply(this, arguments); } return deprecated; } /** * Checks `localStorage` for boolean values for the given `name`. * * @param {String} name * @returns {Boolean} * @api private */ function config(name) { // accessing global.localStorage can trigger a DOMException in sandboxed iframes try { if (!global.localStorage) return false; } catch (_) { return false; } var val = global.localStorage[name]; if (null == val) return false; return String(val).toLowerCase() === "true"; } }).call( this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {} ); }, {}, ], 160: [ function (require, module, exports) { var indexOf = require("indexof"); var Object_keys = function (obj) { if (Object.keys) return Object.keys(obj); else { var res = []; for (var key in obj) res.push(key); return res; } }; var forEach = function (xs, fn) { if (xs.forEach) return xs.forEach(fn); else for (var i = 0; i < xs.length; i++) { fn(xs[i], i, xs); } }; var defineProp = (function () { try { Object.defineProperty({}, "_", {}); return function (obj, name, value) { Object.defineProperty(obj, name, { writable: true, enumerable: false, configurable: true, value: value, }); }; } catch (e) { return function (obj, name, value) { obj[name] = value; }; } })(); var globals = [ "Array", "Boolean", "Date", "Error", "EvalError", "Function", "Infinity", "JSON", "Math", "NaN", "Number", "Object", "RangeError", "ReferenceError", "RegExp", "String", "SyntaxError", "TypeError", "URIError", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "undefined", "unescape", ]; function Context() {} Context.prototype = {}; var Script = (exports.Script = function NodeScript(code) { if (!(this instanceof Script)) return new Script(code); this.code = code; }); Script.prototype.runInContext = function (context) { if (!(context instanceof Context)) { throw new TypeError("needs a 'context' argument."); } var iframe = document.createElement("iframe"); if (!iframe.style) iframe.style = {}; iframe.style.display = "none"; document.body.appendChild(iframe); var win = iframe.contentWindow; var wEval = win.eval, wExecScript = win.execScript; if (!wEval && wExecScript) { // win.eval() magically appears when this is called in IE: wExecScript.call(win, "null"); wEval = win.eval; } forEach(Object_keys(context), function (key) { win[key] = context[key]; }); forEach(globals, function (key) { if (context[key]) { win[key] = context[key]; } }); var winKeys = Object_keys(win); var res = wEval.call(win, this.code); forEach(Object_keys(win), function (key) { // Avoid copying circular objects like `top` and `window` by only // updating existing context properties or new properties in the `win` // that was only introduced after the eval. if (key in context || indexOf(winKeys, key) === -1) { context[key] = win[key]; } }); forEach(globals, function (key) { if (!(key in context)) { defineProp(context, key, win[key]); } }); document.body.removeChild(iframe); return res; }; Script.prototype.runInThisContext = function () { return eval(this.code); // maybe... }; Script.prototype.runInNewContext = function (context) { var ctx = Script.createContext(context); var res = this.runInContext(ctx); forEach(Object_keys(ctx), function (key) { context[key] = ctx[key]; }); return res; }; forEach(Object_keys(Script.prototype), function (name) { exports[name] = Script[name] = function (code) { var s = Script(code); return s[name].apply(s, [].slice.call(arguments, 1)); }; }); exports.createScript = function (code) { return exports.Script(code); }; exports.createContext = Script.createContext = function (context) { var copy = new Context(); if (typeof context === "object") { forEach(Object_keys(context), function (key) { copy[key] = context[key]; }); } return copy; }; }, { indexof: 107 }, ], }, {}, [1] );