Skip to content

Instantly share code, notes, and snippets.

@ddugovic
Created June 14, 2018 00:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ddugovic/fcb01fe12e189ec4a30f86b467e5658f to your computer and use it in GitHub Desktop.
Save ddugovic/fcb01fe12e189ec4a30f86b467e5658f to your computer and use it in GitHub Desktop.
Relay Chess Stockfish.js
This file has been truncated, but you can view the full file.
var Module = {
print: (function(stdout) {
postMessage(stdout)
})
};
var Module;
if (!Module) Module = (typeof Module !== "undefined" ? Module : null) || {};
var moduleOverrides = {};
for (var key in Module) {
if (Module.hasOwnProperty(key)) {
moduleOverrides[key] = Module[key]
}
}
var ENVIRONMENT_IS_WEB = typeof window === "object";
var ENVIRONMENT_IS_WORKER = typeof importScripts === "function";
var ENVIRONMENT_IS_NODE = typeof process === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
if (ENVIRONMENT_IS_NODE) {
if (!Module["print"]) Module["print"] = function print(x) {
process["stdout"].write(x + "\n")
};
if (!Module["printErr"]) Module["printErr"] = function printErr(x) {
process["stderr"].write(x + "\n")
};
var nodeFS = require("fs");
var nodePath = require("path");
Module["read"] = function read(filename, binary) {
filename = nodePath["normalize"](filename);
var ret = nodeFS["readFileSync"](filename);
if (!ret && filename != nodePath["resolve"](filename)) {
filename = path.join(__dirname, "..", "src", filename);
ret = nodeFS["readFileSync"](filename)
}
if (ret && !binary) ret = ret.toString();
return ret
};
Module["readBinary"] = function readBinary(filename) {
var ret = Module["read"](filename, true);
if (!ret.buffer) {
ret = new Uint8Array(ret)
}
assert(ret.buffer);
return ret
};
Module["load"] = function load(f) {
globalEval(read(f))
};
if (!Module["thisProgram"]) {
if (process["argv"].length > 1) {
Module["thisProgram"] = process["argv"][1].replace(/\\/g, "/")
} else {
Module["thisProgram"] = "unknown-program"
}
}
Module["arguments"] = process["argv"].slice(2);
if (typeof module !== "undefined") {
module["exports"] = Module
}
process["on"]("uncaughtException", (function(ex) {
if (!(ex instanceof ExitStatus)) {
throw ex
}
}));
Module["inspect"] = (function() {
return "[Emscripten Module object]"
})
} else if (ENVIRONMENT_IS_SHELL) {
if (!Module["print"]) Module["print"] = print;
if (typeof printErr != "undefined") Module["printErr"] = printErr;
if (typeof read != "undefined") {
Module["read"] = read
} else {
Module["read"] = function read() {
throw "no read() available (jsc?)"
}
}
Module["readBinary"] = function readBinary(f) {
if (typeof readbuffer === "function") {
return new Uint8Array(readbuffer(f))
}
var data = read(f, "binary");
assert(typeof data === "object");
return data
};
if (typeof scriptArgs != "undefined") {
Module["arguments"] = scriptArgs
} else if (typeof arguments != "undefined") {
Module["arguments"] = arguments
}
} else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
Module["read"] = function read(url) {
var xhr = new XMLHttpRequest;
xhr.open("GET", url, false);
xhr.send(null);
return xhr.responseText
};
if (typeof arguments != "undefined") {
Module["arguments"] = arguments
}
if (typeof console !== "undefined") {
if (!Module["print"]) Module["print"] = function print(x) {
console.log(x)
};
if (!Module["printErr"]) Module["printErr"] = function printErr(x) {
console.log(x)
}
} else {
var TRY_USE_DUMP = false;
if (!Module["print"]) Module["print"] = TRY_USE_DUMP && typeof dump !== "undefined" ? (function(x) {
dump(x)
}) : (function(x) {})
}
if (ENVIRONMENT_IS_WORKER) {
Module["load"] = importScripts
}
if (typeof Module["setWindowTitle"] === "undefined") {
Module["setWindowTitle"] = (function(title) {
document.title = title
})
}
} else {
throw "Unknown runtime environment. Where are we?"
}
function globalEval(x) {
eval.call(null, x)
}
if (!Module["load"] && Module["read"]) {
Module["load"] = function load(f) {
globalEval(Module["read"](f))
}
}
if (!Module["print"]) {
Module["print"] = (function() {})
}
if (!Module["printErr"]) {
Module["printErr"] = Module["print"]
}
if (!Module["arguments"]) {
Module["arguments"] = []
}
if (!Module["thisProgram"]) {
Module["thisProgram"] = "./this.program"
}
Module.print = Module["print"];
Module.printErr = Module["printErr"];
Module["preRun"] = [];
Module["postRun"] = [];
for (var key in moduleOverrides) {
if (moduleOverrides.hasOwnProperty(key)) {
Module[key] = moduleOverrides[key]
}
}
var Runtime = {
setTempRet0: (function(value) {
tempRet0 = value
}),
getTempRet0: (function() {
return tempRet0
}),
stackSave: (function() {
return STACKTOP
}),
stackRestore: (function(stackTop) {
STACKTOP = stackTop
}),
getNativeTypeSize: (function(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 Runtime.QUANTUM_SIZE
} else if (type[0] === "i") {
var bits = parseInt(type.substr(1));
assert(bits % 8 === 0);
return bits / 8
} else {
return 0
}
}
}
}),
getNativeFieldSize: (function(type) {
return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE)
}),
STACK_ALIGN: 16,
prepVararg: (function(ptr, type) {
if (type === "double" || type === "i64") {
if (ptr & 7) {
assert((ptr & 7) === 4);
ptr += 4
}
} else {
assert((ptr & 3) === 0)
}
return ptr
}),
getAlignSize: (function(type, size, vararg) {
if (!vararg && (type == "i64" || type == "double")) return 8;
if (!type) return Math.min(size, 8);
return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE)
}),
dynCall: (function(sig, ptr, args) {
if (args && args.length) {
if (!args.splice) args = Array.prototype.slice.call(args);
args.splice(0, 0, ptr);
return Module["dynCall_" + sig].apply(null, args)
} else {
return Module["dynCall_" + sig].call(null, ptr)
}
}),
functionPointers: [],
addFunction: (function(func) {
for (var i = 0; i < Runtime.functionPointers.length; i++) {
if (!Runtime.functionPointers[i]) {
Runtime.functionPointers[i] = func;
return 2 * (1 + i)
}
}
throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."
}),
removeFunction: (function(index) {
Runtime.functionPointers[(index - 2) / 2] = null
}),
warnOnce: (function(text) {
if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
if (!Runtime.warnOnce.shown[text]) {
Runtime.warnOnce.shown[text] = 1;
Module.printErr(text)
}
}),
funcWrappers: {},
getFuncWrapper: (function(func, sig) {
assert(sig);
if (!Runtime.funcWrappers[sig]) {
Runtime.funcWrappers[sig] = {}
}
var sigCache = Runtime.funcWrappers[sig];
if (!sigCache[func]) {
sigCache[func] = function dynCall_wrapper() {
return Runtime.dynCall(sig, func, arguments)
}
}
return sigCache[func]
}),
getCompilerSetting: (function(name) {
throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"
}),
stackAlloc: (function(size) {
var ret = STACKTOP;
STACKTOP = STACKTOP + size | 0;
STACKTOP = STACKTOP + 15 & -16;
return ret
}),
staticAlloc: (function(size) {
var ret = STATICTOP;
STATICTOP = STATICTOP + size | 0;
STATICTOP = STATICTOP + 15 & -16;
return ret
}),
dynamicAlloc: (function(size) {
var ret = DYNAMICTOP;
DYNAMICTOP = DYNAMICTOP + size | 0;
DYNAMICTOP = DYNAMICTOP + 15 & -16;
if (DYNAMICTOP >= TOTAL_MEMORY) {
var success = enlargeMemory();
if (!success) {
DYNAMICTOP = ret;
return 0
}
}
return ret
}),
alignMemory: (function(size, quantum) {
var ret = size = Math.ceil(size / (quantum ? quantum : 16)) * (quantum ? quantum : 16);
return ret
}),
makeBigInt: (function(low, high, unsigned) {
var ret = unsigned ? +(low >>> 0) + +(high >>> 0) * +4294967296 : +(low >>> 0) + +(high | 0) * +4294967296;
return ret
}),
GLOBAL_BASE: 8,
QUANTUM_SIZE: 4,
__dummy__: 0
};
Module["Runtime"] = Runtime;
var __THREW__ = 0;
var ABORT = false;
var EXITSTATUS = 0;
var undef = 0;
var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat;
var tempI64, tempI64b;
var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9;
function assert(condition, text) {
if (!condition) {
abort("Assertion failed: " + text)
}
}
var globalScope = this;
function getCFunc(ident) {
var func = Module["_" + ident];
if (!func) {
try {
func = eval("_" + ident)
} catch (e) {}
}
assert(func, "Cannot call unknown function " + ident + " (perhaps LLVM optimizations or closure removed it?)");
return func
}
var cwrap, ccall;
((function() {
var JSfuncs = {
"stackSave": (function() {
Runtime.stackSave()
}),
"stackRestore": (function() {
Runtime.stackRestore()
}),
"arrayToC": (function(arr) {
var ret = Runtime.stackAlloc(arr.length);
writeArrayToMemory(arr, ret);
return ret
}),
"stringToC": (function(str) {
var ret = 0;
if (str !== null && str !== undefined && str !== 0) {
ret = Runtime.stackAlloc((str.length << 2) + 1);
writeStringToMemory(str, ret)
}
return ret
})
};
var toC = {
"string": JSfuncs["stringToC"],
"array": JSfuncs["arrayToC"]
};
ccall = function ccallFunc(ident, returnType, argTypes, args, opts) {
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 = Runtime.stackSave();
cArgs[i] = converter(args[i])
} else {
cArgs[i] = args[i]
}
}
}
var ret = func.apply(null, cArgs);
if (returnType === "string") ret = Pointer_stringify(ret);
if (stack !== 0) {
if (opts && opts.async) {
EmterpreterAsync.asyncFinalizers.push((function() {
Runtime.stackRestore(stack)
}));
return
}
Runtime.stackRestore(stack)
}
return ret
};
var sourceRegex = /^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;
function parseJSFunc(jsfunc) {
var parsed = jsfunc.toString().match(sourceRegex).slice(1);
return {
arguments: parsed[0],
body: parsed[1],
returnValue: parsed[2]
}
}
var JSsource = {};
for (var fun in JSfuncs) {
if (JSfuncs.hasOwnProperty(fun)) {
JSsource[fun] = parseJSFunc(JSfuncs[fun])
}
}
cwrap = function cwrap(ident, returnType, argTypes) {
argTypes = argTypes || [];
var cfunc = getCFunc(ident);
var numericArgs = argTypes.every((function(type) {
return type === "number"
}));
var numericRet = returnType !== "string";
if (numericRet && numericArgs) {
return cfunc
}
var argNames = argTypes.map((function(x, i) {
return "$" + i
}));
var funcstr = "(function(" + argNames.join(",") + ") {";
var nargs = argTypes.length;
if (!numericArgs) {
funcstr += "var stack = " + JSsource["stackSave"].body + ";";
for (var i = 0; i < nargs; i++) {
var arg = argNames[i],
type = argTypes[i];
if (type === "number") continue;
var convertCode = JSsource[type + "ToC"];
funcstr += "var " + convertCode.arguments + " = " + arg + ";";
funcstr += convertCode.body + ";";
funcstr += arg + "=" + convertCode.returnValue + ";"
}
}
var cfuncname = parseJSFunc((function() {
return cfunc
})).returnValue;
funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");";
if (!numericRet) {
var strgfy = parseJSFunc((function() {
return Pointer_stringify
})).returnValue;
funcstr += "ret = " + strgfy + "(ret);"
}
if (!numericArgs) {
funcstr += JSsource["stackRestore"].body.replace("()", "(stack)") + ";"
}
funcstr += "return ret})";
return eval(funcstr)
}
}))();
Module["ccall"] = ccall;
Module["cwrap"] = cwrap;
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)
}
}
Module["setValue"] = setValue;
function getValue(ptr, type, noSafe) {
type = type || "i8";
if (type.charAt(type.length - 1) === "*") type = "i32";
switch (type) {
case "i1":
return HEAP8[ptr >> 0];
case "i8":
return HEAP8[ptr >> 0];
case "i16":
return HEAP16[ptr >> 1];
case "i32":
return HEAP32[ptr >> 2];
case "i64":
return HEAP32[ptr >> 2];
case "float":
return HEAPF32[ptr >> 2];
case "double":
return HEAPF64[ptr >> 3];
default:
abort("invalid type for setValue: " + type)
}
return null
}
Module["getValue"] = getValue;
var ALLOC_NORMAL = 0;
var ALLOC_STACK = 1;
var ALLOC_STATIC = 2;
var ALLOC_DYNAMIC = 3;
var ALLOC_NONE = 4;
Module["ALLOC_NORMAL"] = ALLOC_NORMAL;
Module["ALLOC_STACK"] = ALLOC_STACK;
Module["ALLOC_STATIC"] = ALLOC_STATIC;
Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC;
Module["ALLOC_NONE"] = ALLOC_NONE;
function allocate(slab, types, allocator, ptr) {
var zeroinit, size;
if (typeof slab === "number") {
zeroinit = true;
size = slab
} else {
zeroinit = false;
size = slab.length
}
var singleType = typeof types === "string" ? types : null;
var ret;
if (allocator == ALLOC_NONE) {
ret = ptr
} else {
ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length))
}
if (zeroinit) {
var ptr = ret,
stop;
assert((ret & 3) == 0);
stop = ret + (size & ~3);
for (; ptr < stop; ptr += 4) {
HEAP32[ptr >> 2] = 0
}
stop = ret + size;
while (ptr < stop) {
HEAP8[ptr++ >> 0] = 0
}
return ret
}
if (singleType === "i8") {
if (slab.subarray || slab.slice) {
HEAPU8.set(slab, ret)
} else {
HEAPU8.set(new Uint8Array(slab), ret)
}
return ret
}
var i = 0,
type, typeSize, previousType;
while (i < size) {
var curr = slab[i];
if (typeof curr === "function") {
curr = Runtime.getFunctionIndex(curr)
}
type = singleType || types[i];
if (type === 0) {
i++;
continue
}
if (type == "i64") type = "i32";
setValue(ret + i, curr, type);
if (previousType !== type) {
typeSize = Runtime.getNativeTypeSize(type);
previousType = type
}
i += typeSize
}
return ret
}
Module["allocate"] = allocate;
function getMemory(size) {
if (!staticSealed) return Runtime.staticAlloc(size);
if (typeof _sbrk !== "undefined" && !_sbrk.called || !runtimeInitialized) return Runtime.dynamicAlloc(size);
return _malloc(size)
}
Module["getMemory"] = getMemory;
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 Module["UTF8ToString"](ptr)
}
Module["Pointer_stringify"] = Pointer_stringify;
function AsciiToString(ptr) {
var str = "";
while (1) {
var ch = HEAP8[ptr++ >> 0];
if (!ch) return str;
str += String.fromCharCode(ch)
}
}
Module["AsciiToString"] = AsciiToString;
function stringToAscii(str, outPtr) {
return writeAsciiToMemory(str, outPtr, false)
}
Module["stringToAscii"] = stringToAscii;
function UTF8ArrayToString(u8Array, idx) {
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)
}
}
}
Module["UTF8ArrayToString"] = UTF8ArrayToString;
function UTF8ToString(ptr) {
return UTF8ArrayToString(HEAPU8, ptr)
}
Module["UTF8ToString"] = UTF8ToString;
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) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 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
}
Module["stringToUTF8Array"] = stringToUTF8Array;
function stringToUTF8(str, outPtr, maxBytesToWrite) {
return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite)
}
Module["stringToUTF8"] = stringToUTF8;
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
}
Module["lengthBytesUTF8"] = lengthBytesUTF8;
function UTF16ToString(ptr) {
var i = 0;
var str = "";
while (1) {
var codeUnit = HEAP16[ptr + i * 2 >> 1];
if (codeUnit == 0) return str;
++i;
str += String.fromCharCode(codeUnit)
}
}
Module["UTF16ToString"] = UTF16ToString;
function stringToUTF16(str, outPtr, maxBytesToWrite) {
if (maxBytesToWrite === undefined) {
maxBytesToWrite = 2147483647
}
if (maxBytesToWrite < 2) return 0;
maxBytesToWrite -= 2;
var startPtr = outPtr;
var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
for (var i = 0; i < numCharsToWrite; ++i) {
var codeUnit = str.charCodeAt(i);
HEAP16[outPtr >> 1] = codeUnit;
outPtr += 2
}
HEAP16[outPtr >> 1] = 0;
return outPtr - startPtr
}
Module["stringToUTF16"] = stringToUTF16;
function lengthBytesUTF16(str) {
return str.length * 2
}
Module["lengthBytesUTF16"] = lengthBytesUTF16;
function UTF32ToString(ptr) {
var i = 0;
var str = "";
while (1) {
var utf32 = HEAP32[ptr + i * 4 >> 2];
if (utf32 == 0) return str;
++i;
if (utf32 >= 65536) {
var ch = utf32 - 65536;
str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023)
} else {
str += String.fromCharCode(utf32)
}
}
}
Module["UTF32ToString"] = UTF32ToString;
function stringToUTF32(str, outPtr, maxBytesToWrite) {
if (maxBytesToWrite === undefined) {
maxBytesToWrite = 2147483647
}
if (maxBytesToWrite < 4) return 0;
var startPtr = outPtr;
var endPtr = startPtr + maxBytesToWrite - 4;
for (var i = 0; i < str.length; ++i) {
var codeUnit = str.charCodeAt(i);
if (codeUnit >= 55296 && codeUnit <= 57343) {
var trailSurrogate = str.charCodeAt(++i);
codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023
}
HEAP32[outPtr >> 2] = codeUnit;
outPtr += 4;
if (outPtr + 4 > endPtr) break
}
HEAP32[outPtr >> 2] = 0;
return outPtr - startPtr
}
Module["stringToUTF32"] = stringToUTF32;
function lengthBytesUTF32(str) {
var len = 0;
for (var i = 0; i < str.length; ++i) {
var codeUnit = str.charCodeAt(i);
if (codeUnit >= 55296 && codeUnit <= 57343) ++i;
len += 4
}
return len
}
Module["lengthBytesUTF32"] = lengthBytesUTF32;
function demangle(func) {
var hasLibcxxabi = !!Module["___cxa_demangle"];
if (hasLibcxxabi) {
try {
var buf = _malloc(func.length);
writeStringToMemory(func.substr(1), buf);
var status = _malloc(4);
var ret = Module["___cxa_demangle"](buf, 0, 0, status);
if (getValue(status, "i32") === 0 && ret) {
return Pointer_stringify(ret)
}
} catch (e) {} finally {
if (buf) _free(buf);
if (status) _free(status);
if (ret) _free(ret)
}
}
var i = 3;
var basicTypes = {
"v": "void",
"b": "bool",
"c": "char",
"s": "short",
"i": "int",
"l": "long",
"f": "float",
"d": "double",
"w": "wchar_t",
"a": "signed char",
"h": "unsigned char",
"t": "unsigned short",
"j": "unsigned int",
"m": "unsigned long",
"x": "long long",
"y": "unsigned long long",
"z": "..."
};
var subs = [];
var first = true;
function dump(x) {
if (x) Module.print(x);
Module.print(func);
var pre = "";
for (var a = 0; a < i; a++) pre += " ";
Module.print(pre + "^")
}
function parseNested() {
i++;
if (func[i] === "K") i++;
var parts = [];
while (func[i] !== "E") {
if (func[i] === "S") {
i++;
var next = func.indexOf("_", i);
var num = func.substring(i, next) || 0;
parts.push(subs[num] || "?");
i = next + 1;
continue
}
if (func[i] === "C") {
parts.push(parts[parts.length - 1]);
i += 2;
continue
}
var size = parseInt(func.substr(i));
var pre = size.toString().length;
if (!size || !pre) {
i--;
break
}
var curr = func.substr(i + pre, size);
parts.push(curr);
subs.push(curr);
i += pre + size
}
i++;
return parts
}
function parse(rawList, limit, allowVoid) {
limit = limit || Infinity;
var ret = "",
list = [];
function flushList() {
return "(" + list.join(", ") + ")"
}
var name;
if (func[i] === "N") {
name = parseNested().join("::");
limit--;
if (limit === 0) return rawList ? [name] : name
} else {
if (func[i] === "K" || first && func[i] === "L") i++;
var size = parseInt(func.substr(i));
if (size) {
var pre = size.toString().length;
name = func.substr(i + pre, size);
i += pre + size
}
}
first = false;
if (func[i] === "I") {
i++;
var iList = parse(true);
var iRet = parse(true, 1, true);
ret += iRet[0] + " " + name + "<" + iList.join(", ") + ">"
} else {
ret = name
}
paramLoop: while (i < func.length && limit-- > 0) {
var c = func[i++];
if (c in basicTypes) {
list.push(basicTypes[c])
} else {
switch (c) {
case "P":
list.push(parse(true, 1, true)[0] + "*");
break;
case "R":
list.push(parse(true, 1, true)[0] + "&");
break;
case "L":
{
i++;
var end = func.indexOf("E", i);
var size = end - i;list.push(func.substr(i, size));i += size + 2;
break
};
case "A":
{
var size = parseInt(func.substr(i));i += size.toString().length;
if (func[i] !== "_") throw "?";i++;list.push(parse(true, 1, true)[0] + " [" + size + "]");
break
};
case "E":
break paramLoop;
default:
ret += "?" + c;
break paramLoop
}
}
}
if (!allowVoid && list.length === 1 && list[0] === "void") list = [];
if (rawList) {
if (ret) {
list.push(ret + "?")
}
return list
} else {
return ret + flushList()
}
}
var parsed = func;
try {
if (func == "Object._main" || func == "_main") {
return "main()"
}
if (typeof func === "number") func = Pointer_stringify(func);
if (func[0] !== "_") return func;
if (func[1] !== "_") return func;
if (func[2] !== "Z") return func;
switch (func[3]) {
case "n":
return "operator new()";
case "d":
return "operator delete()"
}
parsed = parse()
} catch (e) {
parsed += "?"
}
if (parsed.indexOf("?") >= 0 && !hasLibcxxabi) {
Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")
}
return parsed
}
function demangleAll(text) {
return text.replace(/__Z[\w\d_]+/g, (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() {
return demangleAll(jsStackTrace())
}
Module["stackTrace"] = stackTrace;
var PAGE_SIZE = 4096;
function alignMemoryPage(x) {
if (x % 4096 > 0) {
x += 4096 - x % 4096
}
return x
}
var HEAP;
var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
var STATIC_BASE = 0,
STATICTOP = 0,
staticSealed = false;
var STACK_BASE = 0,
STACKTOP = 0,
STACK_MAX = 0;
var DYNAMIC_BASE = 0,
DYNAMICTOP = 0;
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 adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or 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"] || 3355e4;
var totalMemory = 64 * 1024;
while (totalMemory < TOTAL_MEMORY || totalMemory < 2 * TOTAL_STACK) {
if (totalMemory < 16 * 1024 * 1024) {
totalMemory *= 2
} else {
totalMemory += 16 * 1024 * 1024
}
}
if (totalMemory !== TOTAL_MEMORY) {
TOTAL_MEMORY = totalMemory
}
assert(typeof Int32Array !== "undefined" && typeof Float64Array !== "undefined" && !!(new Int32Array(1))["subarray"] && !!(new Int32Array(1))["set"], "JS engine does not provide full typed array support");
var buffer;
buffer = new ArrayBuffer(TOTAL_MEMORY);
HEAP8 = new Int8Array(buffer);
HEAP16 = new Int16Array(buffer);
HEAP32 = new Int32Array(buffer);
HEAPU8 = new Uint8Array(buffer);
HEAPU16 = new Uint16Array(buffer);
HEAPU32 = new Uint32Array(buffer);
HEAPF32 = new Float32Array(buffer);
HEAPF64 = new Float64Array(buffer);
HEAP32[0] = 255;
assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, "Typed arrays 2 must be run on a little-endian system");
Module["HEAP"] = HEAP;
Module["buffer"] = buffer;
Module["HEAP8"] = HEAP8;
Module["HEAP16"] = HEAP16;
Module["HEAP32"] = HEAP32;
Module["HEAPU8"] = HEAPU8;
Module["HEAPU16"] = HEAPU16;
Module["HEAPU32"] = HEAPU32;
Module["HEAPF32"] = HEAPF32;
Module["HEAPF64"] = HEAPF64;
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) {
Runtime.dynCall("v", func)
} else {
Runtime.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)
}
Module["addOnPreRun"] = addOnPreRun;
function addOnInit(cb) {
__ATINIT__.unshift(cb)
}
Module["addOnInit"] = addOnInit;
function addOnPreMain(cb) {
__ATMAIN__.unshift(cb)
}
Module["addOnPreMain"] = addOnPreMain;
function addOnExit(cb) {
__ATEXIT__.unshift(cb)
}
Module["addOnExit"] = addOnExit;
function addOnPostRun(cb) {
__ATPOSTRUN__.unshift(cb)
}
Module["addOnPostRun"] = addOnPostRun;
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
}
Module["intArrayFromString"] = intArrayFromString;
function intArrayToString(array) {
var ret = [];
for (var i = 0; i < array.length; i++) {
var chr = array[i];
if (chr > 255) {
chr &= 255
}
ret.push(String.fromCharCode(chr))
}
return ret.join("")
}
Module["intArrayToString"] = intArrayToString;
function writeStringToMemory(string, buffer, dontAddNull) {
var array = intArrayFromString(string, dontAddNull);
var i = 0;
while (i < array.length) {
var chr = array[i];
HEAP8[buffer + i >> 0] = chr;
i = i + 1
}
}
Module["writeStringToMemory"] = writeStringToMemory;
function writeArrayToMemory(array, buffer) {
for (var i = 0; i < array.length; i++) {
HEAP8[buffer++ >> 0] = array[i]
}
}
Module["writeArrayToMemory"] = writeArrayToMemory;
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
}
Module["writeAsciiToMemory"] = writeAsciiToMemory;
function unSign(value, bits, ignore) {
if (value >= 0) {
return value
}
return bits <= 32 ? 2 * Math.abs(1 << bits - 1) + value : Math.pow(2, bits) + value
}
function reSign(value, bits, ignore) {
if (value <= 0) {
return value
}
var half = bits <= 32 ? Math.abs(1 << bits - 1) : Math.pow(2, bits - 1);
if (value >= half && (bits <= 32 || value > half)) {
value = -2 * half + value
}
return value
}
if (!Math["imul"] || Math["imul"](4294967295, 5) !== -5) Math["imul"] = function imul(a, b) {
var ah = a >>> 16;
var al = a & 65535;
var bh = b >>> 16;
var bl = b & 65535;
return al * bl + (ah * bl + al * bh << 16) | 0
};
Math.imul = Math["imul"];
if (!Math["clz32"]) Math["clz32"] = (function(x) {
x = x >>> 0;
for (var i = 0; i < 32; i++) {
if (x & 1 << 31 - i) return i
}
return 32
});
Math.clz32 = Math["clz32"];
var Math_abs = Math.abs;
var Math_cos = Math.cos;
var Math_sin = Math.sin;
var Math_tan = Math.tan;
var Math_acos = Math.acos;
var Math_asin = Math.asin;
var Math_atan = Math.atan;
var Math_atan2 = Math.atan2;
var Math_exp = Math.exp;
var Math_log = Math.log;
var Math_sqrt = Math.sqrt;
var Math_ceil = Math.ceil;
var Math_floor = Math.floor;
var Math_pow = Math.pow;
var Math_imul = Math.imul;
var Math_fround = Math.fround;
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)
}
}
Module["addRunDependency"] = addRunDependency;
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["removeRunDependency"] = removeRunDependency;
Module["preloadedImages"] = {};
Module["preloadedAudios"] = {};
var memoryInitializer = null;
var ASM_CONSTS = [];
STATIC_BASE = 8;
STATICTOP = STATIC_BASE + 1181472;
__ATINIT__.push({
func: (function() {
__GLOBAL__I_000101()
})
}, {
func: (function() {
__GLOBAL__sub_I_bitbase_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_bitboard_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_endgame_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_evaluate_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_main_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_material_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_misc_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_movegen_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_movepick_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_pawns_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_position_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_psqt_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_search_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_thread_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_timeman_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_tt_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_uci_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_ucioption_cpp()
})
}, {
func: (function() {
__GLOBAL__sub_I_iostream_cpp()
})
});
allocate([], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
allocate([15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 0, 0, 0, 60, 60, 60, 60, 60, 0, 0, 0, 60, 60, 60, 60, 60, 0, 0, 0, 240, 240, 240, 240, 240, 0, 0, 0, 240, 240, 240, 240, 240, 0, 0, 0, 240, 240, 240, 240, 240, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 0, 0, 0, 60, 60, 60, 60, 60, 0, 0, 0, 60, 60, 60, 60, 60, 0, 0, 0, 240, 240, 240, 240, 240, 0, 0, 0, 240, 240, 240, 240, 240, 0, 0, 0, 240, 240, 240, 240, 240], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 949056);
allocate([12, 179, 16, 0, 70, 229, 17, 0, 72, 178, 14, 0, 0, 0, 0, 0, 228, 178, 16, 0, 83, 229, 17, 0, 228, 178, 16, 0, 96, 229, 17, 0, 12, 179, 16, 0, 109, 229, 17, 0, 80, 178, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 142, 229, 17, 0, 88, 178, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 176, 229, 17, 0, 104, 178, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 213, 229, 17, 0, 104, 178, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 17, 251, 17, 0, 8, 179, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 80, 251, 17, 0, 8, 179, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 104, 251, 17, 0, 0, 179, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 129, 251, 17, 0, 0, 179, 14, 0, 0, 0, 0, 0, 228, 178, 16, 0, 92, 252, 17, 0, 12, 179, 16, 0, 110, 252, 17, 0, 216, 178, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 152, 252, 17, 0, 216, 178, 14, 0, 0, 0, 0, 0, 228, 178, 16, 0, 194, 252, 17, 0, 228, 178, 16, 0, 243, 252, 17, 0, 52, 179, 16, 0, 36, 253, 17, 0, 0, 0, 0, 0, 1, 0, 0, 0, 224, 178, 14, 0, 3, 244, 255, 255, 52, 179, 16, 0, 83, 253, 17, 0, 0, 0, 0, 0, 1, 0, 0, 0, 240, 178, 14, 0, 3, 244, 255, 255, 52, 179, 16, 0, 130, 253, 17, 0, 0, 0, 0, 0, 1, 0, 0, 0, 224, 178, 14, 0, 3, 244, 255, 255, 52, 179, 16, 0, 177, 253, 17, 0, 0, 0, 0, 0, 1, 0, 0, 0, 240, 178, 14, 0, 3, 244, 255, 255, 12, 179, 16, 0, 1, 254, 17, 0, 96, 186, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 23, 254, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 144, 185, 14, 0, 2, 0, 0, 0, 52, 179, 16, 0, 41, 254, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 152, 185, 14, 0, 2, 0, 0, 0, 52, 179, 16, 0, 75, 254, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 152, 185, 14, 0, 2, 0, 0, 0, 52, 179, 16, 0, 110, 254, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 152, 185, 14, 0, 2, 0, 0, 0, 12, 179, 16, 0, 145, 254, 17, 0, 224, 179, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 179, 254, 17, 0, 224, 179, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 214, 254, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 152, 185, 14, 0, 2, 0, 0, 0, 12, 179, 16, 0, 248, 254, 17, 0, 112, 179, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 14, 255, 17, 0, 112, 179, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 34, 255, 17, 0, 112, 179, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 54, 255, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 144, 185, 14, 0, 2, 0, 0, 0, 12, 179, 16, 0, 72, 255, 17, 0, 112, 179, 14, 0, 0, 0, 0, 0, 12, 179, 16, 0, 93, 255, 17, 0, 112, 179, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 114, 255, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 160, 185, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 182, 255, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 184, 185, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 250, 255, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 208, 185, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 62, 0, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 232, 185, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 130, 0, 18, 0, 0, 0, 0, 0, 3, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 0, 186, 14, 0, 2, 0, 0, 0, 8, 186, 14, 0, 0, 8, 0, 0, 52, 179, 16, 0, 199, 0, 18, 0, 0, 0, 0, 0, 3, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 0, 186, 14, 0, 2, 0, 0, 0, 16, 186, 14, 0, 0, 8, 0, 0, 52, 179, 16, 0, 12, 1, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 24, 186, 14, 0, 0, 8, 0, 0, 52, 179, 16, 0, 81, 1, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 24, 186, 14, 0, 0, 8, 0, 0, 52, 179, 16, 0, 150, 1, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 32, 186, 14, 0, 2, 0, 0, 0, 52, 179, 16, 0, 178, 1, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 32, 186, 14, 0, 2, 0, 0, 0, 52, 179, 16, 0, 206, 1, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 32, 186, 14, 0, 2, 0, 0, 0, 52, 179, 16, 0, 234, 1, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 32, 186, 14, 0, 2, 0, 0, 0, 52, 179, 16, 0, 6, 2, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 40, 186, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 76, 2, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 48, 186, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 146, 2, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 56, 186, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 216, 2, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 64, 186, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 30, 3, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 72, 186, 14, 0, 2, 0, 0, 0, 52, 179, 16, 0, 51, 3, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 112, 179, 14, 0, 2, 0, 0, 0, 72, 186, 14, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 178, 16, 0, 236, 6, 18, 0, 228, 178, 16, 0, 213, 6, 18, 0, 52, 179, 16, 0, 191, 6, 18, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88, 186, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 144, 6, 18, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88, 186, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 122, 6, 18, 0, 0, 0, 0, 0, 1, 0, 0, 0, 80, 186, 14, 0, 0, 0, 0, 0, 52, 179, 16, 0, 75, 6, 18, 0, 0, 0, 0, 0, 1, 0, 0, 0, 80, 186, 14, 0, 0, 0, 0, 0, 228, 178, 16, 0, 56, 6, 18, 0, 228, 178, 16, 0, 22, 6, 18, 0, 228, 178, 16, 0, 244, 5, 18, 0, 228, 178, 16, 0, 223, 5, 18, 0, 228, 178, 16, 0, 202, 5, 18, 0, 228, 178, 16, 0, 177, 5, 18, 0, 228, 178, 16, 0, 152, 5, 18, 0, 228, 178, 16, 0, 127, 5, 18, 0, 228, 178, 16, 0, 102, 5, 18, 0, 228, 178, 16, 0, 78, 5, 18, 0, 228, 178, 16, 0, 97, 6, 18, 0, 228, 178, 16, 0, 166, 6, 18, 0, 228, 178, 16, 0, 1, 7, 18], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 963120);
allocate([7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 15, 0, 0, 0, 10, 0, 0, 0, 6, 0, 0, 0, 250, 255, 255, 255, 246, 255, 255, 255, 241, 255, 255, 255, 239, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 249, 255, 255, 255, 247, 255, 255, 255, 8, 0, 0, 0, 1, 0, 0, 0, 255, 255, 255, 255, 248, 255, 255, 255, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 248, 255, 255, 255, 255, 255, 255, 255, 9, 0, 0, 0, 249, 255, 255, 255, 247, 255, 255, 255, 7, 0, 0, 0, 17, 35, 0, 0, 16, 174, 0, 0, 71, 212, 0, 0, 86, 152, 0, 0, 99, 22, 0, 0, 229, 115, 1, 0, 208, 153, 1, 0, 124, 66, 0, 0, 216, 2, 0, 0, 76, 40, 0, 0, 229, 214, 0, 0, 35, 128, 0, 0, 249, 47, 0, 0, 252, 58, 0, 0, 5, 65, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 90, 0, 0, 0, 80, 0, 0, 0, 70, 0, 0, 0, 70, 0, 0, 0, 80, 0, 0, 0, 90, 0, 0, 0, 100, 0, 0, 0, 90, 0, 0, 0, 70, 0, 0, 0, 60, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 60, 0, 0, 0, 70, 0, 0, 0, 90, 0, 0, 0, 80, 0, 0, 0, 60, 0, 0, 0, 40, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 40, 0, 0, 0, 60, 0, 0, 0, 80, 0, 0, 0, 70, 0, 0, 0, 50, 0, 0, 0, 30, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 30, 0, 0, 0, 50, 0, 0, 0, 70, 0, 0, 0, 70, 0, 0, 0, 50, 0, 0, 0, 30, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 30, 0, 0, 0, 50, 0, 0, 0, 70, 0, 0, 0, 80, 0, 0, 0, 60, 0, 0, 0, 40, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 40, 0, 0, 0, 60, 0, 0, 0, 80, 0, 0, 0, 90, 0, 0, 0, 70, 0, 0, 0, 60, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 60, 0, 0, 0, 70, 0, 0, 0, 90, 0, 0, 0, 100, 0, 0, 0, 90, 0, 0, 0, 80, 0, 0, 0, 70, 0, 0, 0, 70, 0, 0, 0, 80, 0, 0, 0, 90, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 80, 0, 0, 0, 60, 0, 0, 0, 40, 0, 0, 0, 20, 0, 0, 0, 10, 0, 0, 0, 200, 0, 0, 0, 190, 0, 0, 0, 180, 0, 0, 0, 170, 0, 0, 0, 160, 0, 0, 0, 150, 0, 0, 0, 140, 0, 0, 0, 130, 0, 0, 0, 190, 0, 0, 0, 180, 0, 0, 0, 170, 0, 0, 0, 160, 0, 0, 0, 150, 0, 0, 0, 140, 0, 0, 0, 130, 0, 0, 0, 140, 0, 0, 0, 180, 0, 0, 0, 170, 0, 0, 0, 155, 0, 0, 0, 140, 0, 0, 0, 140, 0, 0, 0, 125, 0, 0, 0, 140, 0, 0, 0, 150, 0, 0, 0, 170, 0, 0, 0, 160, 0, 0, 0, 140, 0, 0, 0, 120, 0, 0, 0, 110, 0, 0, 0, 140, 0, 0, 0, 150, 0, 0, 0, 160, 0, 0, 0, 160, 0, 0, 0, 150, 0, 0, 0, 140, 0, 0, 0, 110, 0, 0, 0, 120, 0, 0, 0, 140, 0, 0, 0, 160, 0, 0, 0, 170, 0, 0, 0, 150, 0, 0, 0, 140, 0, 0, 0, 125, 0, 0, 0, 140, 0, 0, 0, 140, 0, 0, 0, 155, 0, 0, 0, 170, 0, 0, 0, 180, 0, 0, 0, 140, 0, 0, 0, 130, 0, 0, 0, 140, 0, 0, 0, 150, 0, 0, 0, 160, 0, 0, 0, 170, 0, 0, 0, 180, 0, 0, 0, 190, 0, 0, 0, 130, 0, 0, 0, 140, 0, 0, 0, 150, 0, 0, 0, 160, 0, 0, 0, 170, 0, 0, 0, 180, 0, 0, 0, 190, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 40, 0, 0, 0, 60, 0, 0, 0, 80, 0, 0, 0, 90, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 21, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 13, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 15, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 16, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 18, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 27, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 73, 0, 0, 0, 166, 0, 0, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 0, 0, 0, 38, 0, 0, 0, 73, 0, 0, 0, 166, 0, 0, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 56, 0, 0, 0, 248, 255, 255, 255, 0, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 192, 255, 255, 255, 192, 255, 255, 255, 0, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 192, 255, 255, 255, 192, 255, 255, 255, 0, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 18, 0, 0, 0, 52, 108, 15, 0, 0, 109, 15, 0, 112, 108, 15, 0, 132, 108, 15, 0, 220, 117, 15, 0, 240, 117, 15, 0, 40, 109, 15, 0, 20, 109, 15, 0, 92, 108, 15, 0, 72, 108, 15, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 56, 0, 0, 0, 248, 255, 255, 255, 0, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 192, 255, 255, 255, 192, 255, 255, 255, 0, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 255, 0, 0, 0, 253, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 255, 255, 255, 254, 255, 255, 255, 47, 0, 0, 0, 105, 0, 0, 0, 107, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 255, 255, 255, 24, 0, 0, 0, 122, 0, 0, 0, 137, 0, 0, 0, 122, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 65, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 39, 0, 0, 0, 24, 0, 0, 0, 232, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 100, 0, 0, 0, 219, 255, 255, 255, 141, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 37, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 38, 0, 0, 0, 22, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 39, 0, 0, 0, 23, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 40, 0, 0, 0, 24, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 41, 0, 0, 0, 25, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 152, 255, 255, 255, 152, 255, 255, 255, 0, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 152, 255, 255, 255, 152, 255, 255, 255, 0, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 26, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 24, 0, 0, 0, 3, 0, 0, 0, 25, 0, 0, 0, 40, 113, 15, 0, 248, 111, 15, 0, 12, 112, 15, 0, 60, 113, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 29, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 30, 0, 0, 0, 20, 0, 0, 0, 26, 0, 0, 0, 3, 0, 0, 0, 27, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 21, 0, 0, 0, 26, 0, 0, 0, 51, 0, 0, 0, 87, 0, 0, 0, 89, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 76, 0, 0, 0, 88, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 7, 0, 0, 0, 54, 0, 0, 0, 78, 0, 0, 0, 77, 0, 0, 0, 92, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 11, 0, 0, 0, 44, 0, 0, 0, 68, 0, 0, 0, 87, 0, 0, 0, 90, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 134, 0, 0, 0, 38, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 139, 0, 0, 0, 37, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 115, 0, 0, 0, 43, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 124, 0, 0, 0, 57, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 43, 0, 0, 0, 100, 0, 0, 0, 56, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 20, 0, 0, 0, 98, 0, 0, 0, 40, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 39, 0, 0, 0, 103, 0, 0, 0, 36, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 19, 0, 0, 0, 108, 0, 0, 0, 42, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 14, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 30, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 22, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 24, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 254, 255, 255, 231, 254, 255, 255, 57, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 141, 0, 0, 0, 39, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 142, 0, 0, 0, 48, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 126, 0, 0, 0, 51, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 200, 255, 255, 255, 200, 255, 255, 255, 0, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 200, 255, 255, 255, 200, 255, 255, 255, 0, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 4, 118, 15, 0, 220, 117, 15, 0, 240, 117, 15, 0, 24, 118, 15, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 196, 255, 255, 255, 196, 255, 255, 255, 0, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 196, 255, 255, 255, 196, 255, 255, 255, 0, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 148, 118, 15, 0, 108, 118, 15, 0, 128, 118, 15, 0, 168, 118, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 241, 2, 0, 0, 58, 3, 0, 0, 5, 5, 0, 0, 209, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 0, 0, 0, 64, 3, 0, 0, 129, 3, 0, 0, 91, 5, 0, 0, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 254, 255, 255, 92, 254, 255, 255, 88, 253, 255, 255, 75, 252, 255, 255, 88, 252, 255, 255, 26, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 253, 255, 255, 219, 254, 255, 255, 137, 255, 255, 255, 22, 255, 255, 255, 195, 252, 255, 255, 88, 255, 255, 255], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 1008272);
allocate([62, 0, 0, 0, 63, 0, 0, 0, 64], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 1028240);
allocate([227, 1, 0, 0, 58, 2, 0, 0, 91, 2, 0, 0, 42, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56, 178, 14, 0, 67, 0, 0, 0, 68, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 178, 14, 0, 69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 120, 178, 14, 0, 69, 0, 0, 0, 73, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 136, 178, 14, 0, 69, 0, 0, 0, 74, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 192, 3, 0, 0, 192, 4, 0, 0, 192, 5, 0, 0, 192, 6, 0, 0, 192, 7, 0, 0, 192, 8, 0, 0, 192, 9, 0, 0, 192, 10, 0, 0, 192, 11, 0, 0, 192, 12, 0, 0, 192, 13, 0, 0, 192, 14, 0, 0, 192, 15, 0, 0, 192, 16, 0, 0, 192, 17, 0, 0, 192, 18, 0, 0, 192, 19, 0, 0, 192, 20, 0, 0, 192, 21, 0, 0, 192, 22, 0, 0, 192, 23, 0, 0, 192, 24, 0, 0, 192, 25, 0, 0, 192, 26, 0, 0, 192, 27, 0, 0, 192, 28, 0, 0, 192, 29, 0, 0, 192, 30, 0, 0, 192, 31, 0, 0, 192, 0, 0, 0, 179, 1, 0, 0, 195, 2, 0, 0, 195, 3, 0, 0, 195, 4, 0, 0, 195, 5, 0, 0, 195, 6, 0, 0, 195, 7, 0, 0, 195, 8, 0, 0, 195, 9, 0, 0, 195, 10, 0, 0, 195, 11, 0, 0, 195, 12, 0, 0, 195, 13, 0, 0, 211, 14, 0, 0, 195, 15, 0, 0, 195, 0, 0, 12, 187, 1, 0, 12, 195, 2, 0, 12, 195, 3, 0, 12, 195, 4, 0, 12, 211, 12, 181, 16, 0, 124, 181, 16, 0, 236, 181, 16, 0, 236, 181, 16, 0, 220, 221, 16, 0, 92, 190, 16, 0, 92, 184, 16, 0, 0, 0, 0, 0, 10, 0, 0, 0, 100, 0, 0, 0, 232, 3, 0, 0, 16, 39, 0, 0, 160, 134, 1, 0, 64, 66, 15, 0, 128, 150, 152, 0, 0, 225, 245, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 177, 248, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 169, 244, 17, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 8, 0, 0, 0, 161, 240, 17, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 123, 0, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 126, 0, 0, 0, 127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 1094164);
allocate([1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 122, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 122, 0, 0, 0, 123, 0, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 126, 0, 0, 0, 127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 1097304);
allocate([152, 178, 14, 0, 75, 0, 0, 0, 76, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 28, 0, 0, 0, 13, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 168, 178, 14, 0, 75, 0, 0, 0, 77, 0, 0, 0, 4, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 37, 0, 0, 0, 34, 0, 0, 0, 12, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 30, 0, 0, 0, 14, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 184, 178, 14, 0, 50, 0, 0, 0, 78, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 40, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 41, 0, 0, 0, 20, 0, 0, 0, 24, 0, 0, 0, 15, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 200, 178, 14, 0, 50, 0, 0, 0, 79, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 33, 0, 0, 0, 3, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 14, 0, 50, 0, 0, 0, 80, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 41, 0, 0, 0, 20, 0, 0, 0, 24, 0, 0, 0, 3, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 8, 179, 14, 0, 75, 0, 0, 0, 81, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 37, 0, 0, 0, 34, 0, 0, 0, 12, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 31, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 16, 179, 14, 0, 25, 0, 0, 0, 26, 0, 0, 0, 248, 255, 255, 255, 248, 255, 255, 255, 16, 179, 14, 0, 27, 0, 0, 0, 28, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 40, 179, 14, 0, 82, 0, 0, 0, 83, 0, 0, 0, 248, 255, 255, 255, 248, 255, 255, 255, 40, 179, 14, 0, 84, 0, 0, 0, 85, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 64, 179, 14, 0, 42, 0, 0, 0, 43, 0, 0, 0, 252, 255, 255, 255, 252, 255, 255, 255, 64, 179, 14, 0, 44, 0, 0, 0, 45, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 88, 179, 14, 0, 86, 0, 0, 0, 87, 0, 0, 0, 252, 255, 255, 255, 252, 255, 255, 255, 88, 179, 14, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 216, 178, 14, 0, 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 80, 180, 14, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 180, 14, 0, 95, 0, 0, 0, 96, 0, 0, 0, 94, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 180, 14, 0, 97, 0, 0, 0, 98, 0, 0, 0, 94, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 180, 14, 0, 99, 0, 0, 0, 100, 0, 0, 0, 94, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 180, 14, 0, 101, 0, 0, 0, 102, 0, 0, 0, 94, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 181, 14, 0, 103, 0, 0, 0, 104, 0, 0, 0, 94, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 9, 0, 0, 0, 26, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 181, 14, 0, 105, 0, 0, 0, 106, 0, 0, 0, 94, 0, 0, 0, 44, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 248, 255, 255, 255, 48, 181, 14, 0, 45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 181, 14, 0, 107, 0, 0, 0, 108, 0, 0, 0, 94, 0, 0, 0, 52, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 248, 255, 255, 255, 88, 181, 14, 0, 53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 181, 14, 0, 109, 0, 0, 0, 110, 0, 0, 0, 94, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 181, 14, 0, 111, 0, 0, 0, 112, 0, 0, 0, 94, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 181, 14, 0, 113, 0, 0, 0, 114, 0, 0, 0, 94, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 62, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 181, 14, 0, 115, 0, 0, 0, 116, 0, 0, 0, 94, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 65, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 14, 0, 117, 0, 0, 0, 118, 0, 0, 0, 94, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 68, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 182, 14, 0, 119, 0, 0, 0, 120, 0, 0, 0, 94, 0, 0, 0, 69, 0, 0, 0, 70, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 71, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 182, 14, 0, 121, 0, 0, 0, 122, 0, 0, 0, 94, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 182, 14, 0, 123, 0, 0, 0, 124, 0, 0, 0, 94, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 182, 14, 0, 125, 0, 0, 0, 126, 0, 0, 0, 94, 0, 0, 0, 1, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 182, 14, 0, 127, 0, 0, 0, 128, 0, 0, 0, 94, 0, 0, 0, 2, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 182, 14, 0, 129, 0, 0, 0, 130, 0, 0, 0, 94, 0, 0, 0, 18, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 182, 14, 0, 131, 0, 0, 0, 132, 0, 0, 0, 94, 0, 0, 0, 19, 0, 0, 0, 9, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 180, 14, 0, 133, 0, 0, 0, 134, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 180, 14, 0, 135, 0, 0, 0, 136, 0, 0, 0, 94, 0, 0, 0, 35, 0, 0, 0, 20, 0, 0, 0, 36, 0, 0, 0, 21, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 22, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 180, 14, 0, 137, 0, 0, 0, 138, 0, 0, 0, 94, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 13, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 180, 14, 0, 139, 0, 0, 0, 140, 0, 0, 0, 94, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 160, 180, 14, 0, 141, 0, 0, 0, 142, 0, 0, 0, 94, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 112, 179, 14, 0, 143, 0, 0, 0, 144, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 128, 179, 14, 0, 143, 0, 0, 0, 145, 0, 0, 0, 94, 0, 0, 0, 23, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 38, 0, 0, 0, 24, 0, 0, 0, 39, 0, 0, 0, 25, 0, 0, 0, 40, 0, 0, 0, 5, 0, 0, 0, 26, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 160, 179, 14, 0, 143, 0, 0, 0, 146, 0, 0, 0, 94, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 16, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 192, 179, 14, 0, 143, 0, 0, 0, 147, 0, 0, 0, 94, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 18, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 224, 179, 14, 0, 143, 0, 0, 0, 148, 0, 0, 0, 94, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 20, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 180, 14, 0, 143, 0, 0, 0, 149, 0, 0, 0, 94, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 20, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 16, 180, 14, 0, 143, 0, 0, 0, 150, 0, 0, 0, 94, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 20, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 121, 0, 0, 0, 37, 0, 0, 0, 89, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 37, 0, 0, 0, 73, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 112, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 114, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 97, 0, 0, 0, 108, 0, 0, 0, 115, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 111, 0, 0, 0, 110, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 101, 0, 0, 0, 100, 0, 0, 0, 110, 0, 0, 0, 101, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 104, 0, 0, 0, 117, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 97, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 114, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 111, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 101, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 104, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 97, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 97, 0, 0, 0, 110, 0, 0, 0, 117, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 101, 0, 0, 0, 98, 0, 0, 0, 114, 0, 0, 0, 117, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 99, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 112, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 108, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 117, 0, 0, 0, 103, 0, 0, 0, 117, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 101, 0, 0, 0, 112, 0, 0, 0, 116, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 99, 0, 0, 0, 116, 0, 0, 0, 111, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 111, 0, 0, 0, 118, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 101, 0, 0, 0, 99, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 97, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 101, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 112, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 117, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 101, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 99, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 111, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 101, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 97, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 98, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 73, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 3, 32, 2, 32, 2, 32, 2, 32, 2, 32, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 96, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 213, 8, 213, 8, 213, 8, 213, 8, 213, 8, 213, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 214, 8, 214, 8, 214, 8, 214, 8, 214, 8, 214, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 4, 192, 4, 192, 4, 192, 4, 192, 2], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 1099856);
allocate([75, 80, 75, 0, 75, 78, 78, 75, 0, 75, 66, 78, 75, 0, 75, 82, 75, 80, 0, 75, 82, 75, 66, 0, 75, 82, 75, 78, 0, 75, 81, 75, 80, 0, 75, 81, 75, 82, 0, 75, 78, 80, 75, 0, 75, 78, 80, 75, 66, 0, 75, 82, 80, 75, 82, 0, 75, 82, 80, 75, 66, 0, 75, 66, 80, 75, 66, 0, 75, 66, 80, 75, 78, 0, 75, 66, 80, 80, 75, 66, 0, 75, 82, 80, 80, 75, 82, 80, 0, 47, 56, 47, 56, 47, 56, 47, 56, 47, 56, 47, 56, 47, 0, 32, 119, 32, 45, 32, 45, 32, 48, 32, 49, 48, 0, 74, 97, 110, 32, 70, 101, 98, 32, 77, 97, 114, 32, 65, 112, 114, 32, 77, 97, 121, 32, 74, 117, 110, 32, 74, 117, 108, 32, 65, 117, 103, 32, 83, 101, 112, 32, 79, 99, 116, 32, 78, 111, 118, 32, 68, 101, 99, 0, 79, 99, 116, 32, 32, 50, 32, 50, 48, 49, 54, 0, 83, 116, 111, 99, 107, 102, 105, 115, 104, 32, 0, 10, 105, 100, 32, 97, 117, 116, 104, 111, 114, 32, 0, 32, 98, 121, 32, 0, 84, 46, 32, 82, 111, 109, 115, 116, 97, 100, 44, 32, 77, 46, 32, 67, 111, 115, 116, 97, 108, 98, 97, 44, 32, 74, 46, 32, 75, 105, 105, 115, 107, 105, 44, 32, 71, 46, 32, 76, 105, 110, 115, 99, 111, 116, 116, 0, 119, 0, 60, 60, 32, 0, 62, 62, 32, 0, 32, 119, 32, 0, 32, 98, 32, 0, 32, 45, 32, 0, 43, 0, 32, 80, 78, 66, 82, 81, 75, 32, 32, 112, 110, 98, 114, 113, 107, 0, 0, 0, 105, 110, 102, 111, 32, 100, 101, 112, 116, 104, 32, 48, 32, 115, 99, 111, 114, 101, 32, 0, 98, 101, 115, 116, 109, 111, 118, 101, 32, 0, 32, 112, 111, 110, 100, 101, 114, 32, 0, 105, 110, 102, 111, 0, 32, 100, 101, 112, 116, 104, 32, 0, 32, 115, 101, 108, 100, 101, 112, 116, 104, 32, 0, 32, 109, 117, 108, 116, 105, 112, 118, 32, 0, 32, 115, 99, 111, 114, 101, 32, 0, 32, 117, 112, 112, 101, 114, 98, 111, 117, 110, 100, 0, 32, 108, 111, 119, 101, 114, 98, 111, 117, 110, 100, 0, 32, 110, 111, 100, 101, 115, 32, 0, 32, 110, 112, 115, 32, 0, 32, 104, 97, 115, 104, 102, 117, 108, 108, 32, 0, 32, 116, 98, 104, 105, 116, 115, 32, 0, 32, 116, 105, 109, 101, 32, 0, 32, 112, 118, 0, 105, 110, 102, 111, 32, 110, 111, 100, 101, 115, 32, 0, 105, 110, 102, 111, 32, 100, 101, 112, 116, 104, 32, 0, 32, 99, 117, 114, 114, 109, 111, 118, 101, 32, 0, 32, 99, 117, 114, 114, 109, 111, 118, 101, 110, 117, 109, 98, 101, 114, 32, 0, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 97, 108, 108, 111, 99, 97, 116, 101, 32, 0, 77, 66, 32, 102, 111, 114, 32, 116, 114, 97, 110, 115, 112, 111, 115, 105, 116, 105, 111, 110, 32, 116, 97, 98, 108, 101, 46, 0, 0, 114, 110, 98, 113, 107, 98, 110, 114, 47, 112, 112, 112, 112, 112, 112, 112, 112, 47, 56, 47, 56, 47, 56, 47, 56, 47, 80, 80, 80, 80, 80, 80, 80, 80, 47, 82, 78, 66, 81, 75, 66, 78, 82, 32, 119, 32, 75, 81, 107, 113, 32, 45, 32, 48, 32, 49, 0, 113, 117, 105, 116, 0, 115, 116, 111, 112, 0, 112, 111, 110, 100, 101, 114, 104, 105, 116, 0, 117, 99, 105, 0, 105, 100, 32, 110, 97, 109, 101, 32, 0, 10, 0, 10, 117, 99, 105, 111, 107, 0, 117, 99, 105, 110, 101, 119, 103, 97, 109, 101, 0, 105, 115, 114, 101, 97, 100, 121, 0, 114, 101, 97, 100, 121, 111, 107, 0, 103, 111, 0, 115, 101, 97, 114, 99, 104, 109, 111, 118, 101, 115, 0, 119, 116, 105, 109, 101, 0, 98, 116, 105, 109, 101, 0, 119, 105, 110, 99, 0, 98, 105, 110, 99, 0, 109, 111, 118, 101, 115, 116, 111, 103, 111, 0, 100, 101, 112, 116, 104, 0, 110, 111, 100, 101, 115, 0, 109, 111, 118, 101, 116, 105, 109, 101, 0, 109, 97, 116, 101, 0, 105, 110, 102, 105, 110, 105, 116, 101, 0, 112, 111, 110, 100, 101, 114, 0, 112, 111, 115, 105, 116, 105, 111, 110, 0, 115, 116, 97, 114, 116, 112, 111, 115, 0, 114, 110, 98, 113, 107, 98, 110, 114, 47, 112, 112, 112, 112, 112, 112, 112, 112, 47, 56, 47, 49, 80, 80, 50, 80, 80, 49, 47, 80, 80, 80, 80, 80, 80, 80, 80, 47, 80, 80, 80, 80, 80, 80, 80, 80, 47, 80, 80, 80, 80, 80, 80, 80, 80, 47, 80, 80, 80, 80, 80, 80, 80, 80, 32, 119, 32, 107, 113, 32, 45, 32, 48, 32, 49, 0, 56, 47, 56, 47, 56, 47, 56, 47, 56, 47, 56, 47, 107, 114, 98, 110, 78, 66, 82, 75, 47, 113, 114, 98, 110, 78, 66, 82, 81, 32, 119, 32, 45, 32, 45, 32, 48, 32, 49, 0, 114, 110, 98, 113, 107, 98, 110, 114, 47, 112, 112, 112, 112, 112, 112, 112, 112, 47, 56, 47, 56, 47, 56, 47, 56, 47, 80, 80, 80, 80, 80, 80, 80, 80, 47, 82, 78, 66, 81, 75, 66, 78, 82, 32, 119, 32, 75, 81, 107, 113, 32, 45, 32, 51, 43, 51, 32, 48, 32, 49, 0, 102, 101, 110, 0, 109, 111, 118, 101, 115, 0, 32, 0, 105, 110, 102, 111, 32, 115, 116, 114, 105, 110, 103, 32, 118, 97, 114, 105, 97, 110, 116, 32, 0, 32, 115, 116, 97, 114, 116, 112, 111, 115, 32, 0, 115, 101, 116, 111, 112, 116, 105, 111, 110, 0, 118, 97, 108, 117, 101, 0, 78, 111, 32, 115, 117, 99, 104, 32, 111, 112, 116, 105, 111, 110, 58, 32, 0, 85, 110, 107, 110, 111, 119, 110, 32, 99, 111, 109, 109, 97, 110, 100, 58, 32, 0, 99, 112, 32, 0, 109, 97, 116, 101, 32, 0, 40, 110, 111, 110, 101, 41, 0, 48, 48, 48, 48, 0, 32, 112, 110, 98, 114, 113, 107, 0, 115, 112, 105, 110, 0, 68, 101, 98, 117, 103, 32, 76, 111, 103, 32, 70, 105, 108, 101, 0, 115, 116, 114, 105, 110, 103, 0, 67, 111, 110, 116, 101, 109, 112, 116, 0, 84, 104, 114, 101, 97, 100, 115, 0, 72, 97, 115, 104, 0, 67, 108, 101, 97, 114, 32, 72, 97, 115, 104, 0, 98, 117, 116, 116, 111, 110, 0, 80, 111, 110, 100, 101, 114, 0, 99, 104, 101, 99, 107, 0, 77, 117, 108, 116, 105, 80, 86, 0, 83, 107, 105, 108, 108, 32, 76, 101, 118, 101, 108, 0, 77, 111, 118, 101, 32, 79, 118, 101, 114, 104, 101, 97, 100, 0, 77, 105, 110, 105, 109, 117, 109, 32, 84, 104, 105, 110, 107, 105, 110, 103, 32, 84, 105, 109, 101, 0, 83, 108, 111, 119, 32, 77, 111, 118, 101, 114, 0, 110, 111, 100, 101, 115, 116, 105, 109, 101, 0, 85, 67, 73, 95, 67, 104, 101, 115, 115, 57, 54, 48, 0, 85, 67, 73, 95, 86, 97, 114, 105, 97, 110, 116, 0, 10, 111, 112, 116, 105, 111, 110, 32, 110, 97, 109, 101, 32, 0, 32, 116, 121, 112, 101, 32, 0, 32, 100, 101, 102, 97, 117, 108, 116, 32, 0, 99, 111, 109, 98, 111, 0, 32, 118, 97, 114, 32, 0, 32, 109, 105, 110, 32, 0, 32, 109, 97, 120, 32, 0, 99, 104, 101, 115, 115, 0, 97, 116, 111, 109, 105, 99, 0, 103, 105, 118, 101, 97, 119, 97, 121, 0, 104, 111, 114, 100, 101, 0, 107, 105, 110, 103, 111, 102, 116, 104, 101, 104, 105, 108, 108, 0, 114, 97, 99, 105, 110, 103, 107, 105, 110, 103, 115, 0, 114, 101, 108, 97, 121, 0, 116, 104, 114, 101, 101, 99, 104, 101, 99, 107, 0, 83, 116, 57, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 83, 116, 57, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 83, 116, 57, 116, 121, 112, 101, 95, 105, 110, 102, 111, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 54, 95, 95, 115, 104, 105, 109, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 55, 95, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 50, 48, 95, 95, 115, 105, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 50, 49, 95, 95, 118, 109, 105, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 0, 33, 34, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 32, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 34, 0, 67, 58, 92, 99, 121, 103, 100, 114, 105, 118, 101, 92, 99, 92, 80, 114, 111, 103, 114, 97, 109, 32, 70, 105, 108, 101, 115, 92, 69, 109, 115, 99, 114, 105, 112, 116, 101, 110, 92, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 92, 49, 46, 51, 53, 46, 48, 92, 115, 121, 115, 116, 101, 109, 92, 105, 110, 99, 108, 117, 100, 101, 92, 108, 105, 98, 99, 120, 120, 92, 115, 116, 114, 105, 110, 103, 0, 95, 95, 116, 104, 114, 111, 119, 95, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 0, 33, 34, 118, 101, 99, 116, 111, 114, 32, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 34, 0, 112, 116, 104, 114, 101, 97, 100, 95, 111, 110, 99, 101, 32, 102, 97, 105, 108, 117, 114, 101, 32, 105, 110, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 95, 102, 97, 115, 116, 40, 41, 0, 115, 116, 100, 58, 58, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 116, 101, 114, 109, 105, 110, 97, 116, 101, 95, 104, 97, 110, 100, 108, 101, 114, 32, 117, 110, 101, 120, 112, 101, 99, 116, 101, 100, 108, 121, 32, 114, 101, 116, 117, 114, 110, 101, 100, 0, 99, 97, 110, 110, 111, 116, 32, 99, 114, 101, 97, 116, 101, 32, 112, 116, 104, 114, 101, 97, 100, 32, 107, 101, 121, 32, 102, 111, 114, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 40, 41, 0, 99, 97, 110, 110, 111, 116, 32, 122, 101, 114, 111, 32, 111, 117, 116, 32, 116, 104, 114, 101, 97, 100, 32, 118, 97, 108, 117, 101, 32, 102, 111, 114, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 40, 41, 0, 33, 34, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 32, 111, 117, 116, 95, 111, 102, 95, 114, 97, 110, 103, 101, 34, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 121, 112, 101, 32, 37, 115, 58, 32, 37, 115, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 121, 112, 101, 32, 37, 115, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 102, 111, 114, 101, 105, 103, 110, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 0, 117, 110, 99, 97, 117, 103, 104, 116, 0, 84, 33, 34, 25, 13, 1, 2, 3, 17, 75, 28, 12, 16, 4, 11, 29, 18, 30, 39, 104, 110, 111, 112, 113, 98, 32, 5, 6, 15, 19, 20, 21, 26, 8, 22, 7, 40, 36, 23, 24, 9, 10, 14, 27, 31, 37, 35, 131, 130, 125, 38, 42, 43, 60, 61, 62, 63, 67, 71, 74, 77, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 105, 106, 107, 108, 114, 115, 116, 121, 122, 123, 124, 0, 73, 108, 108, 101, 103, 97, 108, 32, 98, 121, 116, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 0, 68, 111, 109, 97, 105, 110, 32, 101, 114, 114, 111, 114, 0, 82, 101, 115, 117, 108, 116, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 98, 108, 101, 0, 78, 111, 116, 32, 97, 32, 116, 116, 121, 0, 80, 101, 114, 109, 105, 115, 115, 105, 111, 110, 32, 100, 101, 110, 105, 101, 100, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 110, 111, 116, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 0, 78, 111, 32, 115, 117, 99, 104, 32, 102, 105, 108, 101, 32, 111, 114, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 78, 111, 32, 115, 117, 99, 104, 32, 112, 114, 111, 99, 101, 115, 115, 0, 70, 105, 108, 101, 32, 101, 120, 105, 115, 116, 115, 0, 86, 97, 108, 117, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 32, 102, 111, 114, 32, 100, 97, 116, 97, 32, 116, 121, 112, 101, 0, 78, 111, 32, 115, 112, 97, 99, 101, 32, 108, 101, 102, 116, 32, 111, 110, 32, 100, 101, 118, 105, 99, 101, 0, 79, 117, 116, 32, 111, 102, 32, 109, 101, 109, 111, 114, 121, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 98, 117, 115, 121, 0, 73, 110, 116, 101, 114, 114, 117, 112, 116, 101, 100, 32, 115, 121, 115, 116, 101, 109, 32, 99, 97, 108, 108, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 116, 101, 109, 112, 111, 114, 97, 114, 105, 108, 121, 32, 117, 110, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 73, 110, 118, 97, 108, 105, 100, 32, 115, 101, 101, 107, 0, 67, 114, 111, 115, 115, 45, 100, 101, 118, 105, 99, 101, 32, 108, 105, 110, 107, 0, 82, 101, 97, 100, 45, 111, 110, 108, 121, 32, 102, 105, 108, 101, 32, 115, 121, 115, 116, 101, 109, 0, 68, 105, 114, 101, 99, 116, 111, 114, 121, 32, 110, 111, 116, 32, 101, 109, 112, 116, 121, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 115, 101, 116, 32, 98, 121, 32, 112, 101, 101, 114, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 116, 105, 109, 101, 100, 32, 111, 117, 116, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 102, 117, 115, 101, 100, 0, 72, 111, 115, 116, 32, 105, 115, 32, 100, 111, 119, 110, 0, 72, 111, 115, 116, 32, 105, 115, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 0, 65, 100, 100, 114, 101, 115, 115, 32, 105, 110, 32, 117, 115, 101, 0, 66, 114, 111, 107, 101, 110, 32, 112, 105, 112, 101, 0, 73, 47, 79, 32, 101, 114, 114, 111, 114, 0, 78, 111, 32, 115, 117, 99, 104, 32, 100, 101, 118, 105, 99, 101, 32, 111, 114, 32, 97, 100, 100, 114, 101, 115, 115, 0, 66, 108, 111, 99, 107, 32, 100, 101, 118, 105, 99, 101, 32, 114, 101, 113, 117, 105, 114, 101, 100, 0, 78, 111, 32, 115, 117, 99, 104, 32, 100, 101, 118, 105, 99, 101, 0, 78, 111, 116, 32, 97, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 73, 115, 32, 97, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 84, 101, 120, 116, 32, 102, 105, 108, 101, 32, 98, 117, 115, 121, 0, 69, 120, 101, 99, 32, 102, 111, 114, 109, 97, 116, 32, 101, 114, 114, 111, 114, 0, 73, 110, 118, 97, 108, 105, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 0, 65, 114, 103, 117, 109, 101, 110, 116, 32, 108, 105, 115, 116, 32, 116, 111, 111, 32, 108, 111, 110, 103, 0, 83, 121, 109, 98, 111, 108, 105, 99, 32, 108, 105, 110, 107, 32, 108, 111, 111, 112, 0, 70, 105, 108, 101, 110, 97, 109, 101, 32, 116, 111, 111, 32, 108, 111, 110, 103, 0, 84, 111, 111, 32, 109, 97, 110, 121, 32, 111, 112, 101, 110, 32, 102, 105, 108, 101, 115, 32, 105, 110, 32, 115, 121, 115, 116, 101, 109, 0, 78, 111, 32, 102, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 66, 97, 100, 32, 102, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 0, 78, 111, 32, 99, 104, 105, 108, 100, 32, 112, 114, 111, 99, 101, 115, 115, 0, 66, 97, 100, 32, 97, 100, 100, 114, 101, 115, 115, 0, 70, 105, 108, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 0, 84, 111, 111, 32, 109, 97, 110, 121, 32, 108, 105, 110, 107, 115, 0, 78, 111, 32, 108, 111, 99, 107, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 100, 101, 97, 100, 108, 111, 99, 107, 32, 119, 111, 117, 108, 100, 32, 111, 99, 99, 117, 114, 0, 83, 116, 97, 116, 101, 32, 110, 111, 116, 32, 114, 101, 99, 111, 118, 101, 114, 97, 98, 108, 101, 0, 80, 114, 101, 118, 105, 111, 117, 115, 32, 111, 119, 110, 101, 114, 32, 100, 105, 101, 100, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 99, 97, 110, 99, 101, 108, 101, 100, 0, 70, 117, 110, 99, 116, 105, 111, 110, 32, 110, 111, 116, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 0, 78, 111, 32, 109, 101, 115, 115, 97, 103, 101, 32, 111, 102, 32, 100, 101, 115, 105, 114, 101, 100, 32, 116, 121, 112, 101, 0, 73, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 114, 101, 109, 111, 118, 101, 100, 0, 68, 101, 118, 105, 99, 101, 32, 110, 111, 116, 32, 97, 32, 115, 116, 114, 101, 97, 109, 0, 78, 111, 32, 100, 97, 116, 97, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 68, 101, 118, 105, 99, 101, 32, 116, 105, 109, 101, 111, 117, 116, 0, 79, 117, 116, 32, 111, 102, 32, 115, 116, 114, 101, 97, 109, 115, 32, 114, 101, 115, 111, 117, 114, 99, 101, 115, 0, 76, 105, 110, 107, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 101, 118, 101, 114, 101, 100, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 101, 114, 114, 111, 114, 0, 66, 97, 100, 32, 109, 101, 115, 115, 97, 103, 101, 0, 70, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 32, 105, 110, 32, 98, 97, 100, 32, 115, 116, 97, 116, 101, 0, 78, 111, 116, 32, 97, 32, 115, 111, 99, 107, 101, 116, 0, 68, 101, 115, 116, 105, 110, 97, 116, 105, 111, 110, 32, 97, 100, 100, 114, 101, 115, 115, 32, 114, 101, 113, 117, 105, 114, 101, 100, 0, 77, 101, 115, 115, 97, 103, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 119, 114, 111, 110, 103, 32, 116, 121, 112, 101, 32, 102, 111, 114, 32, 115, 111, 99, 107, 101, 116, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 83, 111, 99, 107, 101, 116, 32, 116, 121, 112, 101, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 78, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 102, 97, 109, 105, 108, 121, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 65, 100, 100, 114, 101, 115, 115, 32, 102, 97, 109, 105, 108, 121, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 98, 121, 32, 112, 114, 111, 116, 111, 99, 111, 108, 0, 65, 100, 100, 114, 101, 115, 115, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 78, 101, 116, 119, 111, 114, 107, 32, 105, 115, 32, 100, 111, 119, 110, 0, 78, 101, 116, 119, 111, 114, 107, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 115, 101, 116, 32, 98, 121, 32, 110, 101, 116, 119, 111, 114, 107, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 97, 98, 111, 114, 116, 101, 100, 0, 78, 111, 32, 98, 117, 102, 102, 101, 114, 32, 115, 112, 97, 99, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 83, 111, 99, 107, 101, 116, 32, 105, 115, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 0, 83, 111, 99, 107, 101, 116, 32, 110, 111, 116, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 0, 67, 97, 110, 110, 111, 116, 32, 115, 101, 110, 100, 32, 97, 102, 116, 101, 114, 32, 115, 111, 99, 107, 101, 116, 32, 115, 104, 117, 116, 100, 111, 119, 110, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 97, 108, 114, 101, 97, 100, 121, 32, 105, 110, 32, 112, 114, 111, 103, 114, 101, 115, 115, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 105, 110, 32, 112, 114, 111, 103, 114, 101, 115, 115, 0, 83, 116, 97, 108, 101, 32, 102, 105, 108, 101, 32, 104, 97, 110, 100, 108, 101, 0, 82, 101, 109, 111, 116, 101, 32, 73, 47, 79, 32, 101, 114, 114, 111, 114, 0, 81, 117, 111, 116, 97, 32, 101, 120, 99, 101, 101, 100, 101, 100, 0, 78, 111, 32, 109, 101, 100, 105, 117, 109, 32, 102, 111, 117, 110, 100, 0, 87, 114, 111, 110, 103, 32, 109, 101, 100, 105, 117, 109, 32, 116, 121, 112, 101, 0, 78, 111, 32, 101, 114, 114, 111, 114, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 0, 0, 105, 110, 102, 105, 110, 105, 116, 121, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 4, 7, 3, 6, 5, 0, 80, 79, 83, 73, 88, 0, 114, 119, 97], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 1171412);
allocate([17, 0, 10, 0, 17, 17, 17, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 15, 10, 17, 17, 17, 3, 10, 7, 0, 1, 19, 9, 11, 11, 0, 0, 9, 6, 11, 0, 0, 11, 0, 6, 17, 0, 0, 0, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 10, 10, 17, 17, 17, 0, 10, 0, 0, 2, 0, 9, 11, 0, 0, 0, 9, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 4, 13, 0, 0, 0, 0, 9, 14, 0, 0, 0, 0, 0, 14, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 15, 0, 0, 0, 0, 9, 16, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 0, 0, 0, 0, 9, 11, 0, 0, 0, 0, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 45, 43, 32, 32, 32, 48, 88, 48, 120, 0, 40, 110, 117, 108, 108, 41, 0, 45, 48, 88, 43, 48, 88, 32, 48, 88, 45, 48, 120, 43, 48, 120, 32, 48, 120, 0, 105, 110, 102, 0, 73, 78, 70, 0, 110, 97, 110, 0, 78, 65, 78, 0, 46, 0, 99, 111, 110, 100, 105, 116, 105, 111, 110, 95, 118, 97, 114, 105, 97, 98, 108, 101, 58, 58, 119, 97, 105, 116, 58, 32, 109, 117, 116, 101, 120, 32, 110, 111, 116, 32, 108, 111, 99, 107, 101, 100, 0, 99, 111, 110, 100, 105, 116, 105, 111, 110, 95, 118, 97, 114, 105, 97, 98, 108, 101, 32, 119, 97, 105, 116, 32, 102, 97, 105, 108, 101, 100, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 115, 116, 100, 111, 117, 116, 98, 117, 102, 73, 119, 69, 69, 0, 117, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 108, 111, 99, 97, 108, 101, 32, 102, 111, 114, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 105, 110, 112, 117, 116, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 115, 116, 100, 105, 110, 98, 117, 102, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 115, 116, 100, 111, 117, 116, 98, 117, 102, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 115, 116, 100, 105, 110, 98, 117, 102, 73, 99, 69, 69, 0, 109, 117, 116, 101, 120, 32, 108, 111, 99, 107, 32, 102, 97, 105, 108, 101, 100, 0, 101, 99, 32, 61, 61, 32, 48, 0, 67, 58, 92, 99, 121, 103, 100, 114, 105, 118, 101, 92, 99, 92, 80, 114, 111, 103, 114, 97, 109, 32, 70, 105, 108, 101, 115, 92, 69, 109, 115, 99, 114, 105, 112, 116, 101, 110, 92, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 92, 49, 46, 51, 53, 46, 48, 92, 115, 121, 115, 116, 101, 109, 92, 108, 105, 98, 92, 108, 105, 98, 99, 120, 120, 92, 109, 117, 116, 101, 120, 46, 99, 112, 112, 0, 117, 110, 108, 111, 99, 107, 0, 115, 116, 111, 105, 0, 37, 100, 0, 58, 32, 110, 111, 32, 99, 111, 110, 118, 101, 114, 115, 105, 111, 110, 0, 58, 32, 111, 117, 116, 32, 111, 102, 32, 114, 97, 110, 103, 101, 0, 99, 108, 111, 99, 107, 95, 103, 101, 116, 116, 105, 109, 101, 40, 67, 76, 79, 67, 75, 95, 77, 79, 78, 79, 84, 79, 78, 73, 67, 41, 32, 102, 97, 105, 108, 101, 100, 0, 78, 83, 116, 51, 95, 95, 49, 56, 105, 111, 115, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 98, 97, 115, 105, 99, 95, 105, 111, 115, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 98, 97, 115, 105, 99, 95, 105, 111, 115, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 101, 97, 109, 98, 117, 102, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 101, 97, 109, 98, 117, 102, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102, 65, 66, 67, 68, 69, 70, 120, 88, 43, 45, 112, 80, 105, 73, 110, 78, 0, 78, 83, 116, 51, 95, 95, 49, 54, 108, 111, 99, 97, 108, 101, 53, 102, 97, 99, 101, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 53, 99, 116, 121, 112, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 99, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 68, 115, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 68, 105, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 54, 95, 95, 110, 97, 114, 114, 111, 119, 95, 116, 111, 95, 117, 116, 102, 56, 73, 76, 106, 51, 50, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 55, 95, 95, 119, 105, 100, 101, 110, 95, 102, 114, 111, 109, 95, 117, 116, 102, 56, 73, 76, 106, 51, 50, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 119, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 54, 108, 111, 99, 97, 108, 101, 53, 95, 95, 105, 109, 112, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 108, 108, 97, 116, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 108, 108, 97, 116, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 53, 99, 116, 121, 112, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 110, 117, 109, 112, 117, 110, 99, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 110, 117, 109, 112, 117, 110, 99, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 99, 76, 98, 48, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 99, 76, 98, 49, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 119, 76, 98, 48, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 119, 76, 98, 49, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 109, 101, 115, 115, 97, 103, 101, 115, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 109, 101, 115, 115, 97, 103, 101, 115, 73, 119, 69, 69, 0, 37, 112, 0, 67, 0, 37, 0, 0, 0, 0, 0, 108, 0, 108, 108, 0, 0, 76, 0, 37, 112, 0, 0, 0, 0, 37, 72, 58, 37, 77, 58, 37, 83, 37, 109, 47, 37, 100, 47, 37, 121, 37, 89, 45, 37, 109, 45, 37, 100, 37, 73, 58, 37, 77, 58, 37, 83, 32, 37, 112, 37, 72, 58, 37, 77, 37, 72, 58, 37, 77, 58, 37, 83, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 37, 76, 102, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 37, 46, 48, 76, 102, 0, 33, 34, 118, 101, 99, 116, 111, 114, 32, 111, 117, 116, 95, 111, 102, 95, 114, 97, 110, 103, 101, 34, 0, 67, 58, 92, 99, 121, 103, 100, 114, 105, 118, 101, 92, 99, 92, 80, 114, 111, 103, 114, 97, 109, 32, 70, 105, 108, 101, 115, 92, 69, 109, 115, 99, 114, 105, 112, 116, 101, 110, 92, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 92, 49, 46, 51, 53, 46, 48, 92, 115, 121, 115, 116, 101, 109, 92, 105, 110, 99, 108, 117, 100, 101, 92, 108, 105, 98, 99, 120, 120, 92, 118, 101, 99, 116, 111, 114, 0, 95, 95, 116, 104, 114, 111, 119, 95, 111, 117, 116, 95, 111, 102, 95, 114, 97, 110, 103, 101, 0, 116, 114, 117, 101, 0, 102, 97, 108, 115, 101, 0, 83, 117, 110, 100, 97, 121, 0, 77, 111, 110, 100, 97, 121, 0, 84, 117, 101, 115, 100, 97, 121, 0, 87, 101, 100, 110, 101, 115, 100, 97, 121, 0, 84, 104, 117, 114, 115, 100, 97, 121, 0, 70, 114, 105, 100, 97, 121, 0, 83, 97, 116, 117, 114, 100, 97, 121, 0, 83, 117, 110, 0, 77, 111, 110, 0, 84, 117, 101, 0, 87, 101, 100, 0, 84, 104, 117, 0, 70, 114, 105, 0, 83, 97, 116, 0, 74, 97, 110, 117, 97, 114, 121, 0, 70, 101, 98, 114, 117, 97, 114, 121, 0, 77, 97, 114, 99, 104, 0, 65, 112, 114, 105, 108, 0, 77, 97, 121, 0, 74, 117, 110, 101, 0, 74, 117, 108, 121, 0, 65, 117, 103, 117, 115, 116, 0, 83, 101, 112, 116, 101, 109, 98, 101, 114, 0, 79, 99, 116, 111, 98, 101, 114, 0, 78, 111, 118, 101, 109, 98, 101, 114, 0, 68, 101, 99, 101, 109, 98, 101, 114, 0, 74, 97, 110, 0, 70, 101, 98, 0, 77, 97, 114, 0, 65, 112, 114, 0, 74, 117, 110, 0, 74, 117, 108, 0, 65, 117, 103, 0, 83, 101, 112, 0, 79, 99, 116, 0, 78, 111, 118, 0, 68, 101, 99, 0, 65, 77, 0, 80, 77, 0, 37, 109, 47, 37, 100, 47, 37, 121, 0, 37, 72, 58, 37, 77, 58, 37, 83, 0, 37, 97, 32, 37, 98, 32, 37, 100, 32, 37, 72, 58, 37, 77, 58, 37, 83, 32, 37, 89, 0, 37, 73, 58, 37, 77, 58, 37, 83, 32, 37, 112, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 109, 101, 115, 115, 97, 103, 101, 115, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 116, 105, 109, 101, 95, 112, 117, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 50, 48, 95, 95, 116, 105, 109, 101, 95, 103, 101, 116, 95, 99, 95, 115, 116, 111, 114, 97, 103, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 50, 48, 95, 95, 116, 105, 109, 101, 95, 103, 101, 116, 95, 99, 95, 115, 116, 111, 114, 97, 103, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 116, 105, 109, 101, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 112, 117, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 110, 117, 109, 95, 112, 117, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 112, 117, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 103, 101, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 110, 117, 109, 95, 103, 101, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 103, 101, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 99, 111, 100, 101, 99, 118, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 99, 116, 121, 112, 101, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 115, 104, 97, 114, 101, 100, 95, 99, 111, 117, 110, 116, 69, 0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 1177769);
var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
assert(tempDoublePtr % 8 == 0);
function copyTempFloat(ptr) {
HEAP8[tempDoublePtr] = HEAP8[ptr];
HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1];
HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2];
HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3]
}
function copyTempDouble(ptr) {
HEAP8[tempDoublePtr] = HEAP8[ptr];
HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1];
HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2];
HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3];
HEAP8[tempDoublePtr + 4] = HEAP8[ptr + 4];
HEAP8[tempDoublePtr + 5] = HEAP8[ptr + 5];
HEAP8[tempDoublePtr + 6] = HEAP8[ptr + 6];
HEAP8[tempDoublePtr + 7] = HEAP8[ptr + 7]
}
function _emscripten_get_now() {
if (!_emscripten_get_now.actual) {
if (ENVIRONMENT_IS_NODE) {
_emscripten_get_now.actual = function _emscripten_get_now_actual() {
var t = process["hrtime"]();
return t[0] * 1e3 + t[1] / 1e6
}
} else if (typeof dateNow !== "undefined") {
_emscripten_get_now.actual = dateNow
} else if (typeof self === "object" && self["performance"] && typeof self["performance"]["now"] === "function") {
_emscripten_get_now.actual = function _emscripten_get_now_actual() {
return self["performance"]["now"]()
}
} else if (typeof performance === "object" && typeof performance["now"] === "function") {
_emscripten_get_now.actual = function _emscripten_get_now_actual() {
return performance["now"]()
}
} else {
_emscripten_get_now.actual = Date.now
}
}
return _emscripten_get_now.actual()
}
function _emscripten_get_now_is_monotonic() {
return ENVIRONMENT_IS_NODE || typeof dateNow !== "undefined" || (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && self["performance"] && self["performance"]["now"]
}
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
};
function ___setErrNo(value) {
if (Module["___errno_location"]) HEAP32[Module["___errno_location"]() >> 2] = value;
return value
}
function _clock_gettime(clk_id, tp) {
var now;
if (clk_id === 0) {
now = Date.now()
} else if (clk_id === 1 && _emscripten_get_now_is_monotonic()) {
now = _emscripten_get_now()
} else {
___setErrNo(ERRNO_CODES.EINVAL);
return -1
}
HEAP32[tp >> 2] = now / 1e3 | 0;
HEAP32[tp + 4 >> 2] = now % 1e3 * 1e3 * 1e3 | 0;
return 0
}
Module["_i64Subtract"] = _i64Subtract;
function ___assert_fail(condition, filename, line, func) {
ABORT = true;
throw "Assertion failed: " + Pointer_stringify(condition) + ", at: " + [filename ? Pointer_stringify(filename) : "unknown filename", line, func ? Pointer_stringify(func) : "unknown function"] + " at " + stackTrace()
}
function __ZSt18uncaught_exceptionv() {
return !!__ZSt18uncaught_exceptionv.uncaught_exception
}
var EXCEPTIONS = {
last: 0,
caught: [],
infos: {},
deAdjust: (function(adjusted) {
if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted;
for (var ptr in EXCEPTIONS.infos) {
var info = EXCEPTIONS.infos[ptr];
if (info.adjusted === adjusted) {
return ptr
}
}
return adjusted
}),
addRef: (function(ptr) {
if (!ptr) return;
var info = EXCEPTIONS.infos[ptr];
info.refcount++
}),
decRef: (function(ptr) {
if (!ptr) return;
var info = EXCEPTIONS.infos[ptr];
assert(info.refcount > 0);
info.refcount--;
if (info.refcount === 0) {
if (info.destructor) {
Runtime.dynCall("vi", info.destructor, [ptr])
}
delete EXCEPTIONS.infos[ptr];
___cxa_free_exception(ptr)
}
}),
clearRef: (function(ptr) {
if (!ptr) return;
var info = EXCEPTIONS.infos[ptr];
info.refcount = 0
})
};
function ___resumeException(ptr) {
if (!EXCEPTIONS.last) {
EXCEPTIONS.last = ptr
}
EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(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 (asm["setTempRet0"](0), 0) | 0
}
var info = EXCEPTIONS.infos[thrown];
var throwntype = info.type;
if (!throwntype) {
return (asm["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 (asm["setTempRet0"](typeArray[i]), thrown) | 0
}
}
thrown = HEAP32[thrown >> 2];
return (asm["setTempRet0"](throwntype), thrown) | 0
}
function ___cxa_throw(ptr, type, destructor) {
EXCEPTIONS.infos[ptr] = {
ptr: ptr,
adjusted: ptr,
type: type,
destructor: destructor,
refcount: 0
};
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."
}
Module["_memset"] = _memset;
var _BDtoILow = true;
function _pthread_mutex_lock() {}
function _pthread_cond_signal() {}
function _abort() {
Module["abort"]()
}
function _pthread_cond_destroy() {}
function _pthread_mutex_destroy() {}
function _pthread_once(ptr, func) {
if (!_pthread_once.seen) _pthread_once.seen = {};
if (ptr in _pthread_once.seen) return;
Runtime.dynCall("v", func);
_pthread_once.seen[ptr] = 1
}
function ___lock() {}
function ___unlock() {}
var PTHREAD_SPECIFIC = {};
function _pthread_getspecific(key) {
return PTHREAD_SPECIFIC[key] || 0
}
var _log = Math_log;
var _fabs = Math_abs;
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 __isLeapYear(year) {
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)
}
function __arraySum(array, index) {
var sum = 0;
for (var i = 0; i <= index; sum += array[i++]);
return sum
}
var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
function __addDays(date, days) {
var newDate = new Date(date.getTime());
while (days > 0) {
var leap = __isLeapYear(newDate.getFullYear());
var currentMonth = newDate.getMonth();
var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];
if (days > daysInCurrentMonth - newDate.getDate()) {
days -= daysInCurrentMonth - newDate.getDate() + 1;
newDate.setDate(1);
if (currentMonth < 11) {
newDate.setMonth(currentMonth + 1)
} else {
newDate.setMonth(0);
newDate.setFullYear(newDate.getFullYear() + 1)
}
} else {
newDate.setDate(newDate.getDate() + days);
return newDate
}
}
return newDate
}
function _strftime(s, maxsize, format, tm) {
var tm_zone = HEAP32[tm + 40 >> 2];
var date = {
tm_sec: HEAP32[tm >> 2],
tm_min: HEAP32[tm + 4 >> 2],
tm_hour: HEAP32[tm + 8 >> 2],
tm_mday: HEAP32[tm + 12 >> 2],
tm_mon: HEAP32[tm + 16 >> 2],
tm_year: HEAP32[tm + 20 >> 2],
tm_wday: HEAP32[tm + 24 >> 2],
tm_yday: HEAP32[tm + 28 >> 2],
tm_isdst: HEAP32[tm + 32 >> 2],
tm_gmtoff: HEAP32[tm + 36 >> 2],
tm_zone: tm_zone ? Pointer_stringify(tm_zone) : ""
};
var pattern = Pointer_stringify(format);
var EXPANSION_RULES_1 = {
"%c": "%a %b %d %H:%M:%S %Y",
"%D": "%m/%d/%y",
"%F": "%Y-%m-%d",
"%h": "%b",
"%r": "%I:%M:%S %p",
"%R": "%H:%M",
"%T": "%H:%M:%S",
"%x": "%m/%d/%y",
"%X": "%H:%M:%S"
};
for (var rule in EXPANSION_RULES_1) {
pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule])
}
var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
function leadingSomething(value, digits, character) {
var str = typeof value === "number" ? value.toString() : value || "";
while (str.length < digits) {
str = character[0] + str
}
return str
}
function leadingNulls(value, digits) {
return leadingSomething(value, digits, "0")
}
function compareByDay(date1, date2) {
function sgn(value) {
return value < 0 ? -1 : value > 0 ? 1 : 0
}
var compare;
if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {
if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {
compare = sgn(date1.getDate() - date2.getDate())
}
}
return compare
}
function getFirstWeekStartDate(janFourth) {
switch (janFourth.getDay()) {
case 0:
return new Date(janFourth.getFullYear() - 1, 11, 29);
case 1:
return janFourth;
case 2:
return new Date(janFourth.getFullYear(), 0, 3);
case 3:
return new Date(janFourth.getFullYear(), 0, 2);
case 4:
return new Date(janFourth.getFullYear(), 0, 1);
case 5:
return new Date(janFourth.getFullYear() - 1, 11, 31);
case 6:
return new Date(janFourth.getFullYear() - 1, 11, 30)
}
}
function getWeekBasedYear(date) {
var thisDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);
var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);
var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
return thisDate.getFullYear() + 1
} else {
return thisDate.getFullYear()
}
} else {
return thisDate.getFullYear() - 1
}
}
var EXPANSION_RULES_2 = {
"%a": (function(date) {
return WEEKDAYS[date.tm_wday].substring(0, 3)
}),
"%A": (function(date) {
return WEEKDAYS[date.tm_wday]
}),
"%b": (function(date) {
return MONTHS[date.tm_mon].substring(0, 3)
}),
"%B": (function(date) {
return MONTHS[date.tm_mon]
}),
"%C": (function(date) {
var year = date.tm_year + 1900;
return leadingNulls(year / 100 | 0, 2)
}),
"%d": (function(date) {
return leadingNulls(date.tm_mday, 2)
}),
"%e": (function(date) {
return leadingSomething(date.tm_mday, 2, " ")
}),
"%g": (function(date) {
return getWeekBasedYear(date).toString().substring(2)
}),
"%G": (function(date) {
return getWeekBasedYear(date)
}),
"%H": (function(date) {
return leadingNulls(date.tm_hour, 2)
}),
"%I": (function(date) {
return leadingNulls(date.tm_hour < 13 ? date.tm_hour : date.tm_hour - 12, 2)
}),
"%j": (function(date) {
return leadingNulls(date.tm_mday + __arraySum(__isLeapYear(date.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon - 1), 3)
}),
"%m": (function(date) {
return leadingNulls(date.tm_mon + 1, 2)
}),
"%M": (function(date) {
return leadingNulls(date.tm_min, 2)
}),
"%n": (function() {
return "\n"
}),
"%p": (function(date) {
if (date.tm_hour > 0 && date.tm_hour < 13) {
return "AM"
} else {
return "PM"
}
}),
"%S": (function(date) {
return leadingNulls(date.tm_sec, 2)
}),
"%t": (function() {
return "\t"
}),
"%u": (function(date) {
var day = new Date(date.tm_year + 1900, date.tm_mon + 1, date.tm_mday, 0, 0, 0, 0);
return day.getDay() || 7
}),
"%U": (function(date) {
var janFirst = new Date(date.tm_year + 1900, 0, 1);
var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7 - janFirst.getDay());
var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday);
if (compareByDay(firstSunday, endDate) < 0) {
var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;
var firstSundayUntilEndJanuary = 31 - firstSunday.getDate();
var days = firstSundayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();
return leadingNulls(Math.ceil(days / 7), 2)
}
return compareByDay(firstSunday, janFirst) === 0 ? "01" : "00"
}),
"%V": (function(date) {
var janFourthThisYear = new Date(date.tm_year + 1900, 0, 4);
var janFourthNextYear = new Date(date.tm_year + 1901, 0, 4);
var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
var endDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);
if (compareByDay(endDate, firstWeekStartThisYear) < 0) {
return "53"
}
if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {
return "01"
}
var daysDifference;
if (firstWeekStartThisYear.getFullYear() < date.tm_year + 1900) {
daysDifference = date.tm_yday + 32 - firstWeekStartThisYear.getDate()
} else {
daysDifference = date.tm_yday + 1 - firstWeekStartThisYear.getDate()
}
return leadingNulls(Math.ceil(daysDifference / 7), 2)
}),
"%w": (function(date) {
var day = new Date(date.tm_year + 1900, date.tm_mon + 1, date.tm_mday, 0, 0, 0, 0);
return day.getDay()
}),
"%W": (function(date) {
var janFirst = new Date(date.tm_year, 0, 1);
var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7 - janFirst.getDay() + 1);
var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday);
if (compareByDay(firstMonday, endDate) < 0) {
var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;
var firstMondayUntilEndJanuary = 31 - firstMonday.getDate();
var days = firstMondayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();
return leadingNulls(Math.ceil(days / 7), 2)
}
return compareByDay(firstMonday, janFirst) === 0 ? "01" : "00"
}),
"%y": (function(date) {
return (date.tm_year + 1900).toString().substring(2)
}),
"%Y": (function(date) {
return date.tm_year + 1900
}),
"%z": (function(date) {
var off = date.tm_gmtoff;
var ahead = off >= 0;
off = Math.abs(off) / 60;
off = off / 60 * 100 + off % 60;
return (ahead ? "+" : "-") + String("0000" + off).slice(-4)
}),
"%Z": (function(date) {
return date.tm_zone
}),
"%%": (function() {
return "%"
})
};
for (var rule in EXPANSION_RULES_2) {
if (pattern.indexOf(rule) >= 0) {
pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date))
}
}
var bytes = intArrayFromString(pattern, false);
if (bytes.length > maxsize) {
return 0
}
writeArrayToMemory(bytes, s);
return bytes.length - 1
}
function _strftime_l(s, maxsize, format, tm) {
return _strftime(s, maxsize, format, tm)
}
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"
};
var TTY = {
ttys: [],
init: (function() {}),
shutdown: (function() {}),
register: (function(dev, ops) {
TTY.ttys[dev] = {
input: [],
output: [],
ops: ops
};
FS.registerDevice(dev, TTY.stream_ops)
}),
stream_ops: {
open: (function(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(stream) {
stream.tty.ops.flush(stream.tty)
}),
flush: (function(stream) {
stream.tty.ops.flush(stream.tty)
}),
read: (function(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(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(tty) {
if (!tty.input.length) {
var result = null;
if (ENVIRONMENT_IS_NODE) {
var BUFSIZE = 256;
var buf = new Buffer(BUFSIZE);
var bytesRead = 0;
var fd = process.stdin.fd;
var usingDevice = false;
try {
fd = fs.openSync("/dev/stdin", "r");
usingDevice = true
} catch (e) {}
bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null);
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(tty, val) {
if (val === null || val === 10) {
Module["print"](UTF8ArrayToString(tty.output, 0));
tty.output = []
} else {
if (val != 0) tty.output.push(val)
}
}),
flush: (function(tty) {
if (tty.output && tty.output.length > 0) {
Module["print"](UTF8ArrayToString(tty.output, 0));
tty.output = []
}
})
},
default_tty1_ops: {
put_char: (function(tty, val) {
if (val === null || val === 10) {
Module["printErr"](UTF8ArrayToString(tty.output, 0));
tty.output = []
} else {
if (val != 0) tty.output.push(val)
}
}),
flush: (function(tty) {
if (tty.output && tty.output.length > 0) {
Module["printErr"](UTF8ArrayToString(tty.output, 0));
tty.output = []
}
})
}
};
var MEMFS = {
ops_table: null,
mount: (function(mount) {
return MEMFS.createNode(null, "/", 16384 | 511, 0)
}),
createNode: (function(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(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(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(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.buffer.byteLength : 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(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(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(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(parent, name) {
throw FS.genericErrors[ERRNO_CODES.ENOENT]
}),
mknod: (function(parent, name, mode, dev) {
return MEMFS.createNode(parent, name, mode, dev)
}),
rename: (function(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(parent, name) {
delete parent.contents[name]
}),
rmdir: (function(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(node) {
var entries = [".", ".."];
for (var key in node.contents) {
if (!node.contents.hasOwnProperty(key)) {
continue
}
entries.push(key)
}
return entries
}),
symlink: (function(parent, newname, oldpath) {
var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
node.link = oldpath;
return node
}),
readlink: (function(node) {
if (!FS.isLink(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL)
}
return node.link
})
},
stream_ops: {
read: (function(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(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(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(stream, offset, length) {
MEMFS.expandFileStorage(stream.node, offset + length);
stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length)
}),
mmap: (function(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(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() {
if (typeof indexedDB !== "undefined") return indexedDB;
var ret = null;
if (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) {
return MEMFS.mount.apply(null, arguments)
}),
syncfs: (function(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(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)
}
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(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(mount, callback) {
var entries = {};
IDBFS.getDB(mount.mountpoint, (function(err, db) {
if (err) return callback(err);
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()
})
}))
}),
loadLocalEntry: (function(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(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, {
encoding: "binary",
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(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(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(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(store, path, callback) {
var req = store.delete(path);
req.onsuccess = (function() {
callback(null)
});
req.onerror = (function(e) {
callback(this.error);
e.preventDefault()
})
}),
reconcile: (function(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 errored = false;
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() {
NODEFS.isWindows = !!process.platform.match(/^win/)
}),
mount: (function(mount) {
assert(ENVIRONMENT_IS_NODE);
return NODEFS.createNode(null, "/", NODEFS.getMode(mount.opts.root), 0)
}),
createNode: (function(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(path) {
var stat;
try {
stat = fs.lstatSync(path);
if (NODEFS.isWindows) {
stat.mode = stat.mode | (stat.mode & 146) >> 1
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
return stat.mode
}),
realPath: (function(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)
}),
flagsToPermissionStringMap: {
0: "r",
1: "r+",
2: "r+",
64: "r",
65: "r+",
66: "r+",
129: "rx+",
193: "rx+",
514: "w+",
577: "w",
578: "w+",
705: "wx",
706: "wx+",
1024: "a",
1025: "a",
1026: "a+",
1089: "a",
1090: "a+",
1153: "ax",
1154: "ax+",
1217: "ax",
1218: "ax+",
4096: "rs",
4098: "rs+"
},
flagsToPermissionString: (function(flags) {
flags &= ~32768;
if (flags in NODEFS.flagsToPermissionStringMap) {
return NODEFS.flagsToPermissionStringMap[flags]
} else {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL)
}
}),
node_ops: {
getattr: (function(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(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(parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
var mode = NODEFS.getMode(path);
return NODEFS.createNode(parent, name, mode)
}),
mknod: (function(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(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(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(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(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(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(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(stream) {
var path = NODEFS.realPath(stream.node);
try {
if (FS.isFile(stream.node.mode)) {
stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags))
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
}),
close: (function(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(stream, buffer, offset, length, position) {
if (length === 0) return 0;
var nbuffer = new Buffer(length);
var res;
try {
res = fs.readSync(stream.nfd, nbuffer, 0, length, position)
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
if (res > 0) {
for (var i = 0; i < res; i++) {
buffer[offset + i] = nbuffer[i]
}
}
return res
}),
write: (function(stream, buffer, offset, length, position) {
var nbuffer = new Buffer(buffer.subarray(offset, offset + length));
var res;
try {
res = fs.writeSync(stream.nfd, nbuffer, 0, length, position)
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
return res
}),
llseek: (function(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) {
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, curr, 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(mount.opts["files"] || [], (function(file) {
WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate)
}));
(mount.opts["blobs"] || []).forEach((function(obj) {
WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"])
}));
(mount.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(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(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(node, attr) {
if (attr.mode !== undefined) {
node.mode = attr.mode
}
if (attr.timestamp !== undefined) {
node.timestamp = attr.timestamp
}
}),
lookup: (function(parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT)
}),
mknod: (function(parent, name, mode, dev) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
}),
rename: (function(oldNode, newDir, newName) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
}),
unlink: (function(parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
}),
rmdir: (function(parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
}),
readdir: (function(node) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
}),
symlink: (function(parent, newName, oldPath) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
}),
readlink: (function(node) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
})
},
stream_ops: {
read: (function(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(stream, buffer, offset, length, position) {
throw new FS.ErrnoError(ERRNO_CODES.EIO)
}),
llseek: (function(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
})
}
};
var _stdin = allocate(1, "i32*", ALLOC_STATIC);
var _stdout = allocate(1, "i32*", ALLOC_STATIC);
var _stderr = allocate(1, "i32*", ALLOC_STATIC);
var FS = {
root: null,
mounts: [],
devices: [null],
streams: [],
nextInode: 1,
nameTable: null,
currentPath: "/",
initialized: false,
ignorePermissions: true,
trackingDelegate: {},
tracking: {
openFlags: {
READ: 1,
WRITE: 2
}
},
ErrnoError: null,
genericErrors: {},
filesystems: null,
handleFSError: (function(e) {
if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace();
return ___setErrNo(e.errno)
}),
lookupPath: (function(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(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(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(node) {
var hash = FS.hashName(node.parent.id, node.name);
node.name_next = FS.nameTable[hash];
FS.nameTable[hash] = node
}),
hashRemoveNode: (function(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(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(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() {
return (this.mode & readMode) === readMode
}),
set: (function(val) {
val ? this.mode |= readMode : this.mode &= ~readMode
})
},
write: {
get: (function() {
return (this.mode & writeMode) === writeMode
}),
set: (function(val) {
val ? this.mode |= writeMode : this.mode &= ~writeMode
})
},
isFolder: {
get: (function() {
return FS.isDir(this.mode)
})
},
isDevice: {
get: (function() {
return FS.isChrdev(this.mode)
})
}
})
}
var node = new FS.FSNode(parent, name, mode, rdev);
FS.hashAddNode(node);
return node
}),
destroyNode: (function(node) {
FS.hashRemoveNode(node)
}),
isRoot: (function(node) {
return node === node.parent
}),
isMountpoint: (function(node) {
return !!node.mounted
}),
isFile: (function(mode) {
return (mode & 61440) === 32768
}),
isDir: (function(mode) {
return (mode & 61440) === 16384
}),
isLink: (function(mode) {
return (mode & 61440) === 40960
}),
isChrdev: (function(mode) {
return (mode & 61440) === 8192
}),
isBlkdev: (function(mode) {
return (mode & 61440) === 24576
}),
isFIFO: (function(mode) {
return (mode & 61440) === 4096
}),
isSocket: (function(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(str) {
var flags = FS.flagModes[str];
if (typeof flags === "undefined") {
throw new Error("Unknown file open mode: " + str)
}
return flags
}),
flagsToPermissionString: (function(flag) {
var perms = ["r", "w", "rw"][flag & 3];
if (flag & 512) {
perms += "w"
}
return perms
}),
nodePermissions: (function(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(dir) {
var err = FS.nodePermissions(dir, "x");
if (err) return err;
if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES;
return 0
}),
mayCreate: (function(dir, name) {
try {
var node = FS.lookupNode(dir, name);
return ERRNO_CODES.EEXIST
} catch (e) {}
return FS.nodePermissions(dir, "wx")
}),
mayDelete: (function(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(node, flags) {
if (!node) {
return ERRNO_CODES.ENOENT
}
if (FS.isLink(node.mode)) {
return ERRNO_CODES.ELOOP
} else if (FS.isDir(node.mode)) {
if ((flags & 2097155) !== 0 || flags & 512) {
return ERRNO_CODES.EISDIR
}
}
return FS.nodePermissions(node, FS.flagsToPermissionString(flags))
}),
MAX_OPEN_FDS: 4096,
nextfd: (function(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(fd) {
return FS.streams[fd]
}),
createStream: (function(stream, fd_start, fd_end) {
if (!FS.FSStream) {
FS.FSStream = (function() {});
FS.FSStream.prototype = {};
Object.defineProperties(FS.FSStream.prototype, {
object: {
get: (function() {
return this.node
}),
set: (function(val) {
this.node = val
})
},
isRead: {
get: (function() {
return (this.flags & 2097155) !== 1
})
},
isWrite: {
get: (function() {
return (this.flags & 2097155) !== 0
})
},
isAppend: {
get: (function() {
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(fd) {
FS.streams[fd] = null
}),
chrdev_stream_ops: {
open: (function(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() {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)
})
},
major: (function(dev) {
return dev >> 8
}),
minor: (function(dev) {
return dev & 255
}),
makedev: (function(ma, mi) {
return ma << 8 | mi
}),
registerDevice: (function(dev, ops) {
FS.devices[dev] = {
stream_ops: ops
}
}),
getDevice: (function(dev) {
return FS.devices[dev]
}),
getMounts: (function(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(populate, callback) {
if (typeof populate === "function") {
callback = populate;
populate = false
}
var mounts = FS.getMounts(FS.root.mount);
var completed = 0;
function done(err) {
if (err) {
if (!done.errored) {
done.errored = true;
return callback(err)
}
return
}
if (++completed >= mounts.length) {
callback(null)
}
}
mounts.forEach((function(mount) {
if (!mount.type.syncfs) {
return done(null)
}
mount.type.syncfs(mount, populate, done)
}))
}),
mount: (function(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(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(parent, name) {
return parent.node_ops.lookup(parent, name)
}),
mknod: (function(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(path, mode) {
mode = mode !== undefined ? mode : 438;
mode &= 4095;
mode |= 32768;
return FS.mknod(path, mode, 0)
}),
mkdir: (function(path, mode) {
mode = mode !== undefined ? mode : 511;
mode &= 511 | 512;
mode |= 16384;
return FS.mknod(path, mode, 0)
}),
mkdev: (function(path, mode, dev) {
if (typeof dev === "undefined") {
dev = mode;
mode = 438
}
mode |= 8192;
return FS.mknod(path, mode, dev)
}),
symlink: (function(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(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(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(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(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) {
if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM;
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(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(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(path) {
return FS.stat(path, true)
}),
chmod: (function(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(path, mode) {
FS.chmod(path, mode, true)
}),
fchmod: (function(fd, mode) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF)
}
FS.chmod(stream.node, mode)
}),
chown: (function(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(path, uid, gid) {
FS.chown(path, uid, gid, true)
}),
fchown: (function(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(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(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(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(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 === "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;
Module["printErr"]("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(stream) {
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)
}
}),
llseek: (function(stream, offset, whence) {
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(stream, buffer, offset, length, position) {
if (length < 0 || position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL)
}
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 = true;
if (typeof position === "undefined") {
position = stream.position;
seeking = false
} 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(stream, buffer, offset, length, position, canOwn) {
if (length < 0 || position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL)
}
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 = true;
if (typeof position === "undefined") {
position = stream.position;
seeking = false
} 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(stream, offset, length) {
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(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(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(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(stream) {
return 0
}),
ioctl: (function(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(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(path, data, opts) {
opts = opts || {};
opts.flags = opts.flags || "w";
opts.encoding = opts.encoding || "utf8";
if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
throw new Error('Invalid encoding type "' + opts.encoding + '"')
}
var stream = FS.open(path, opts.flags, opts.mode);
if (opts.encoding === "utf8") {
var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn)
} else if (opts.encoding === "binary") {
FS.write(stream, data, 0, data.length, 0, opts.canOwn)
}
FS.close(stream)
}),
cwd: (function() {
return FS.currentPath
}),
chdir: (function(path) {
var lookup = FS.lookupPath(path, {
follow: true
});
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() {
FS.mkdir("/tmp");
FS.mkdir("/home");
FS.mkdir("/home/web_user")
}),
createDefaultDevices: (function() {
FS.mkdir("/dev");
FS.registerDevice(FS.makedev(1, 3), {
read: (function() {
return 0
}),
write: (function(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() {
crypto.getRandomValues(randomBuffer);
return randomBuffer[0]
})
} else if (ENVIRONMENT_IS_NODE) {
random_device = (function() {
return require("crypto").randomBytes(1)[0]
})
} else {
random_device = (function() {
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() {
FS.mkdir("/proc");
FS.mkdir("/proc/self");
FS.mkdir("/proc/self/fd");
FS.mount({
mount: (function() {
var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73);
node.node_ops = {
lookup: (function(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() {
return stream.path
})
}
};
ret.parent = ret;
return ret
})
};
return node
})
}, {}, "/proc/self/fd")
}),
createStandardStreams: (function() {
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() {
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]
};
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 = "<generic error, no stack>"
}))
}),
staticInit: (function() {
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(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() {
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(canRead, canWrite) {
var mode = 0;
if (canRead) mode |= 292 | 73;
if (canWrite) mode |= 146;
return mode
}),
joinPath: (function(parts, forceRelative) {
var path = PATH.join.apply(null, parts);
if (forceRelative && path[0] == "/") path = path.substr(1);
return path
}),
absolutePath: (function(relative, base) {
return PATH.resolve(base, relative)
}),
standardizePath: (function(path) {
return PATH.normalize(path)
}),
findObject: (function(path, dontResolveLastLink) {
var ret = FS.analyzePath(path, dontResolveLastLink);
if (ret.exists) {
return ret.object
} else {
___setErrNo(ret.error);
return null
}
}),
analyzePath: (function(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(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(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(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(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(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(stream) {
stream.seekable = false
}),
close: (function(stream) {
if (output && output.buffer && output.buffer.length) {
output(10)
}
}),
read: (function(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(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(parent, name, target, canRead, canWrite) {
var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
return FS.symlink(target, path)
}),
forceLoadFile: (function(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(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 chunkSize = 1024 * 1024;
if (!hasByteServing) chunkSize = datalength;
var doXHR = (function(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]
}));
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.defineProperty(lazyArray, "length", {
get: (function() {
if (!this.lengthKnown) {
this.cacheLength()
}
return this._length
})
});
Object.defineProperty(lazyArray, "chunkSize", {
get: (function() {
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.defineProperty(node, "usedBytes", {
get: (function() {
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(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() {
return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB
}),
DB_NAME: (function() {
return "EM_FS_" + window.location.pathname
}),
DB_VERSION: 20,
DB_STORE_NAME: "FILE_DATA",
saveFilesToDB: (function(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(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 PATH = {
splitPath: (function(filename) {
var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
return splitPathRe.exec(filename).slice(1)
}),
normalizeArray: (function(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(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(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(path) {
if (path === "/") return "/";
var lastSlash = path.lastIndexOf("/");
if (lastSlash === -1) return path;
return path.substr(lastSlash + 1)
}),
extname: (function(path) {
return PATH.splitPath(path)[3]
}),
join: (function() {
var paths = Array.prototype.slice.call(arguments, 0);
return PATH.normalize(paths.join("/"))
}),
join2: (function(l, r) {
return PATH.normalize(l + "/" + r)
}),
resolve: (function() {
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(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("/")
})
};
function _emscripten_set_main_loop_timing(mode, value) {
Browser.mainLoop.timingMode = mode;
Browser.mainLoop.timingValue = value;
if (!Browser.mainLoop.func) {
return 1
}
if (mode == 0) {
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() {
setTimeout(Browser.mainLoop.runner, value)
};
Browser.mainLoop.method = "timeout"
} else if (mode == 1) {
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() {
Browser.requestAnimationFrame(Browser.mainLoop.runner)
};
Browser.mainLoop.method = "rAF"
} else if (mode == 2) {
if (!window["setImmediate"]) {
var setImmediates = [];
var emscriptenMainLoopMessageId = "__emcc";
function Browser_setImmediate_messageHandler(event) {
if (event.source === window && event.data === emscriptenMainLoopMessageId) {
event.stopPropagation();
setImmediates.shift()()
}
}
window.addEventListener("message", Browser_setImmediate_messageHandler, true);
window["setImmediate"] = function Browser_emulated_setImmediate(func) {
setImmediates.push(func);
window.postMessage(emscriptenMainLoopMessageId, "*")
}
}
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() {
window["setImmediate"](Browser.mainLoop.runner)
};
Browser.mainLoop.method = "immediate"
}
return 0
}
function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) {
Module["noExitRuntime"] = true;
assert(!Browser.mainLoop.func, "emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");
Browser.mainLoop.func = func;
Browser.mainLoop.arg = arg;
var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop;
Browser.mainLoop.runner = function Browser_mainLoop_runner() {
if (ABORT) return;
if (Browser.mainLoop.queue.length > 0) {
var start = Date.now();
var blocker = Browser.mainLoop.queue.shift();
blocker.func(blocker.arg);
if (Browser.mainLoop.remainingBlockers) {
var remaining = Browser.mainLoop.remainingBlockers;
var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining);
if (blocker.counted) {
Browser.mainLoop.remainingBlockers = next
} else {
next = next + .5;
Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9
}
}
console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + " ms");
Browser.mainLoop.updateStatus();
setTimeout(Browser.mainLoop.runner, 0);
return
}
if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0;
if (Browser.mainLoop.timingMode == 1 && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) {
Browser.mainLoop.scheduler();
return
}
if (Browser.mainLoop.method === "timeout" && Module.ctx) {
Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");
Browser.mainLoop.method = ""
}
Browser.mainLoop.runIter((function() {
if (typeof arg !== "undefined") {
Runtime.dynCall("vi", func, [arg])
} else {
Runtime.dynCall("v", func)
}
}));
if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
if (typeof SDL === "object" && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData();
Browser.mainLoop.scheduler()
};
if (!noSetTiming) {
if (fps && fps > 0) _emscripten_set_main_loop_timing(0, 1e3 / fps);
else _emscripten_set_main_loop_timing(1, 1);
Browser.mainLoop.scheduler()
}
if (simulateInfiniteLoop) {
throw "SimulateInfiniteLoop"
}
}
var Browser = {
mainLoop: {
scheduler: null,
method: "",
currentlyRunningMainloop: 0,
func: null,
arg: 0,
timingMode: 0,
timingValue: 0,
currentFrameNumber: 0,
queue: [],
pause: (function() {
Browser.mainLoop.scheduler = null;
Browser.mainLoop.currentlyRunningMainloop++
}),
resume: (function() {
Browser.mainLoop.currentlyRunningMainloop++;
var timingMode = Browser.mainLoop.timingMode;
var timingValue = Browser.mainLoop.timingValue;
var func = Browser.mainLoop.func;
Browser.mainLoop.func = null;
_emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true);
_emscripten_set_main_loop_timing(timingMode, timingValue);
Browser.mainLoop.scheduler()
}),
updateStatus: (function() {
if (Module["setStatus"]) {
var message = Module["statusMessage"] || "Please wait...";
var remaining = Browser.mainLoop.remainingBlockers;
var expected = Browser.mainLoop.expectedBlockers;
if (remaining) {
if (remaining < expected) {
Module["setStatus"](message + " (" + (expected - remaining) + "/" + expected + ")")
} else {
Module["setStatus"](message)
}
} else {
Module["setStatus"]("")
}
}
}),
runIter: (function(func) {
if (ABORT) return;
if (Module["preMainLoop"]) {
var preRet = Module["preMainLoop"]();
if (preRet === false) {
return
}
}
try {
func()
} catch (e) {
if (e instanceof ExitStatus) {
return
} else {
if (e && typeof e === "object" && e.stack) Module.printErr("exception thrown: " + [e, e.stack]);
throw e
}
}
if (Module["postMainLoop"]) Module["postMainLoop"]()
})
},
isFullScreen: false,
pointerLock: false,
moduleContextCreatedCallbacks: [],
workers: [],
init: (function() {
if (!Module["preloadPlugins"]) Module["preloadPlugins"] = [];
if (Browser.initted) return;
Browser.initted = true;
try {
new Blob;
Browser.hasBlobConstructor = true
} catch (e) {
Browser.hasBlobConstructor = false;
console.log("warning: no blob constructor, cannot create blobs with mimetypes")
}
Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null;
Browser.URLObject = typeof window != "undefined" ? window.URL ? window.URL : window.webkitURL : undefined;
if (!Module.noImageDecoding && typeof Browser.URLObject === "undefined") {
console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
Module.noImageDecoding = true
}
var imagePlugin = {};
imagePlugin["canHandle"] = function imagePlugin_canHandle(name) {
return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name)
};
imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) {
var b = null;
if (Browser.hasBlobConstructor) {
try {
b = new Blob([byteArray], {
type: Browser.getMimetype(name)
});
if (b.size !== byteArray.length) {
b = new Blob([(new Uint8Array(byteArray)).buffer], {
type: Browser.getMimetype(name)
})
}
} catch (e) {
Runtime.warnOnce("Blob constructor present but fails: " + e + "; falling back to blob builder")
}
}
if (!b) {
var bb = new Browser.BlobBuilder;
bb.append((new Uint8Array(byteArray)).buffer);
b = bb.getBlob()
}
var url = Browser.URLObject.createObjectURL(b);
var img = new Image;
img.onload = function img_onload() {
assert(img.complete, "Image " + name + " could not be decoded");
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
Module["preloadedImages"][name] = canvas;
Browser.URLObject.revokeObjectURL(url);
if (onload) onload(byteArray)
};
img.onerror = function img_onerror(event) {
console.log("Image " + url + " could not be decoded");
if (onerror) onerror()
};
img.src = url
};
Module["preloadPlugins"].push(imagePlugin);
var audioPlugin = {};
audioPlugin["canHandle"] = function audioPlugin_canHandle(name) {
return !Module.noAudioDecoding && name.substr(-4) in {
".ogg": 1,
".wav": 1,
".mp3": 1
}
};
audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) {
var done = false;
function finish(audio) {
if (done) return;
done = true;
Module["preloadedAudios"][name] = audio;
if (onload) onload(byteArray)
}
function fail() {
if (done) return;
done = true;
Module["preloadedAudios"][name] = new Audio;
if (onerror) onerror()
}
if (Browser.hasBlobConstructor) {
try {
var b = new Blob([byteArray], {
type: Browser.getMimetype(name)
})
} catch (e) {
return fail()
}
var url = Browser.URLObject.createObjectURL(b);
var audio = new Audio;
audio.addEventListener("canplaythrough", (function() {
finish(audio)
}), false);
audio.onerror = function audio_onerror(event) {
if (done) return;
console.log("warning: browser could not fully decode audio " + name + ", trying slower base64 approach");
function encode64(data) {
var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var PAD = "=";
var ret = "";
var leftchar = 0;
var leftbits = 0;
for (var i = 0; i < data.length; i++) {
leftchar = leftchar << 8 | data[i];
leftbits += 8;
while (leftbits >= 6) {
var curr = leftchar >> leftbits - 6 & 63;
leftbits -= 6;
ret += BASE[curr]
}
}
if (leftbits == 2) {
ret += BASE[(leftchar & 3) << 4];
ret += PAD + PAD
} else if (leftbits == 4) {
ret += BASE[(leftchar & 15) << 2];
ret += PAD
}
return ret
}
audio.src = "data:audio/x-" + name.substr(-3) + ";base64," + encode64(byteArray);
finish(audio)
};
audio.src = url;
Browser.safeSetTimeout((function() {
finish(audio)
}), 1e4)
} else {
return fail()
}
};
Module["preloadPlugins"].push(audioPlugin);
var canvas = Module["canvas"];
function pointerLockChange() {
Browser.pointerLock = document["pointerLockElement"] === canvas || document["mozPointerLockElement"] === canvas || document["webkitPointerLockElement"] === canvas || document["msPointerLockElement"] === canvas
}
if (canvas) {
canvas.requestPointerLock = canvas["requestPointerLock"] || canvas["mozRequestPointerLock"] || canvas["webkitRequestPointerLock"] || canvas["msRequestPointerLock"] || (function() {});
canvas.exitPointerLock = document["exitPointerLock"] || document["mozExitPointerLock"] || document["webkitExitPointerLock"] || document["msExitPointerLock"] || (function() {});
canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
document.addEventListener("pointerlockchange", pointerLockChange, false);
document.addEventListener("mozpointerlockchange", pointerLockChange, false);
document.addEventListener("webkitpointerlockchange", pointerLockChange, false);
document.addEventListener("mspointerlockchange", pointerLockChange, false);
if (Module["elementPointerLock"]) {
canvas.addEventListener("click", (function(ev) {
if (!Browser.pointerLock && canvas.requestPointerLock) {
canvas.requestPointerLock();
ev.preventDefault()
}
}), false)
}
}
}),
createContext: (function(canvas, useWebGL, setInModule, webGLContextAttributes) {
if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx;
var ctx;
var contextHandle;
if (useWebGL) {
var contextAttributes = {
antialias: false,
alpha: false
};
if (webGLContextAttributes) {
for (var attribute in webGLContextAttributes) {
contextAttributes[attribute] = webGLContextAttributes[attribute]
}
}
contextHandle = GL.createContext(canvas, contextAttributes);
if (contextHandle) {
ctx = GL.getContext(contextHandle).GLctx
}
canvas.style.backgroundColor = "black"
} else {
ctx = canvas.getContext("2d")
}
if (!ctx) return null;
if (setInModule) {
if (!useWebGL) assert(typeof GLctx === "undefined", "cannot set in module if GLctx is used, but we are a non-GL context that would replace it");
Module.ctx = ctx;
if (useWebGL) GL.makeContextCurrent(contextHandle);
Module.useWebGL = useWebGL;
Browser.moduleContextCreatedCallbacks.forEach((function(callback) {
callback()
}));
Browser.init()
}
return ctx
}),
destroyContext: (function(canvas, useWebGL, setInModule) {}),
fullScreenHandlersInstalled: false,
lockPointer: undefined,
resizeCanvas: undefined,
requestFullScreen: (function(lockPointer, resizeCanvas, vrDevice) {
Browser.lockPointer = lockPointer;
Browser.resizeCanvas = resizeCanvas;
Browser.vrDevice = vrDevice;
if (typeof Browser.lockPointer === "undefined") Browser.lockPointer = true;
if (typeof Browser.resizeCanvas === "undefined") Browser.resizeCanvas = false;
if (typeof Browser.vrDevice === "undefined") Browser.vrDevice = null;
var canvas = Module["canvas"];
function fullScreenChange() {
Browser.isFullScreen = false;
var canvasContainer = canvas.parentNode;
if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer) {
canvas.cancelFullScreen = document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["webkitCancelFullScreen"] || document["msExitFullscreen"] || document["exitFullscreen"] || (function() {});
canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document);
if (Browser.lockPointer) canvas.requestPointerLock();
Browser.isFullScreen = true;
if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize()
} else {
canvasContainer.parentNode.insertBefore(canvas, canvasContainer);
canvasContainer.parentNode.removeChild(canvasContainer);
if (Browser.resizeCanvas) Browser.setWindowedCanvasSize()
}
if (Module["onFullScreen"]) Module["onFullScreen"](Browser.isFullScreen);
Browser.updateCanvasDimensions(canvas)
}
if (!Browser.fullScreenHandlersInstalled) {
Browser.fullScreenHandlersInstalled = true;
document.addEventListener("fullscreenchange", fullScreenChange, false);
document.addEventListener("mozfullscreenchange", fullScreenChange, false);
document.addEventListener("webkitfullscreenchange", fullScreenChange, false);
document.addEventListener("MSFullscreenChange", fullScreenChange, false)
}
var canvasContainer = document.createElement("div");
canvas.parentNode.insertBefore(canvasContainer, canvas);
canvasContainer.appendChild(canvas);
canvasContainer.requestFullScreen = canvasContainer["requestFullScreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullScreen"] ? (function() {
canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])
}) : null);
if (vrDevice) {
canvasContainer.requestFullScreen({
vrDisplay: vrDevice
})
} else {
canvasContainer.requestFullScreen()
}
}),
nextRAF: 0,
fakeRequestAnimationFrame: (function(func) {
var now = Date.now();
if (Browser.nextRAF === 0) {
Browser.nextRAF = now + 1e3 / 60
} else {
while (now + 2 >= Browser.nextRAF) {
Browser.nextRAF += 1e3 / 60
}
}
var delay = Math.max(Browser.nextRAF - now, 0);
setTimeout(func, delay)
}),
requestAnimationFrame: function requestAnimationFrame(func) {
if (typeof window === "undefined") {
Browser.fakeRequestAnimationFrame(func)
} else {
if (!window.requestAnimationFrame) {
window.requestAnimationFrame = window["requestAnimationFrame"] || window["mozRequestAnimationFrame"] || window["webkitRequestAnimationFrame"] || window["msRequestAnimationFrame"] || window["oRequestAnimationFrame"] || Browser.fakeRequestAnimationFrame
}
window.requestAnimationFrame(func)
}
},
safeCallback: (function(func) {
return (function() {
if (!ABORT) return func.apply(null, arguments)
})
}),
allowAsyncCallbacks: true,
queuedAsyncCallbacks: [],
pauseAsyncCallbacks: (function() {
Browser.allowAsyncCallbacks = false
}),
resumeAsyncCallbacks: (function() {
Browser.allowAsyncCallbacks = true;
if (Browser.queuedAsyncCallbacks.length > 0) {
var callbacks = Browser.queuedAsyncCallbacks;
Browser.queuedAsyncCallbacks = [];
callbacks.forEach((function(func) {
func()
}))
}
}),
safeRequestAnimationFrame: (function(func) {
return Browser.requestAnimationFrame((function() {
if (ABORT) return;
if (Browser.allowAsyncCallbacks) {
func()
} else {
Browser.queuedAsyncCallbacks.push(func)
}
}))
}),
safeSetTimeout: (function(func, timeout) {
Module["noExitRuntime"] = true;
return setTimeout((function() {
if (ABORT) return;
if (Browser.allowAsyncCallbacks) {
func()
} else {
Browser.queuedAsyncCallbacks.push(func)
}
}), timeout)
}),
safeSetInterval: (function(func, timeout) {
Module["noExitRuntime"] = true;
return setInterval((function() {
if (ABORT) return;
if (Browser.allowAsyncCallbacks) {
func()
}
}), timeout)
}),
getMimetype: (function(name) {
return {
"jpg": "image/jpeg",
"jpeg": "image/jpeg",
"png": "image/png",
"bmp": "image/bmp",
"ogg": "audio/ogg",
"wav": "audio/wav",
"mp3": "audio/mpeg"
}[name.substr(name.lastIndexOf(".") + 1)]
}),
getUserMedia: (function(func) {
if (!window.getUserMedia) {
window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"]
}
window.getUserMedia(func)
}),
getMovementX: (function(event) {
return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0
}),
getMovementY: (function(event) {
return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0
}),
getMouseWheelDelta: (function(event) {
var delta = 0;
switch (event.type) {
case "DOMMouseScroll":
delta = event.detail;
break;
case "mousewheel":
delta = event.wheelDelta;
break;
case "wheel":
delta = event["deltaY"];
break;
default:
throw "unrecognized mouse wheel event: " + event.type
}
return delta
}),
mouseX: 0,
mouseY: 0,
mouseMovementX: 0,
mouseMovementY: 0,
touches: {},
lastTouches: {},
calculateMouseEvent: (function(event) {
if (Browser.pointerLock) {
if (event.type != "mousemove" && "mozMovementX" in event) {
Browser.mouseMovementX = Browser.mouseMovementY = 0
} else {
Browser.mouseMovementX = Browser.getMovementX(event);
Browser.mouseMovementY = Browser.getMovementY(event)
}
if (typeof SDL != "undefined") {
Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
Browser.mouseY = SDL.mouseY + Browser.mouseMovementY
} else {
Browser.mouseX += Browser.mouseMovementX;
Browser.mouseY += Browser.mouseMovementY
}
} else {
var rect = Module["canvas"].getBoundingClientRect();
var cw = Module["canvas"].width;
var ch = Module["canvas"].height;
var scrollX = typeof window.scrollX !== "undefined" ? window.scrollX : window.pageXOffset;
var scrollY = typeof window.scrollY !== "undefined" ? window.scrollY : window.pageYOffset;
if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") {
var touch = event.touch;
if (touch === undefined) {
return
}
var adjustedX = touch.pageX - (scrollX + rect.left);
var adjustedY = touch.pageY - (scrollY + rect.top);
adjustedX = adjustedX * (cw / rect.width);
adjustedY = adjustedY * (ch / rect.height);
var coords = {
x: adjustedX,
y: adjustedY
};
if (event.type === "touchstart") {
Browser.lastTouches[touch.identifier] = coords;
Browser.touches[touch.identifier] = coords
} else if (event.type === "touchend" || event.type === "touchmove") {
var last = Browser.touches[touch.identifier];
if (!last) last = coords;
Browser.lastTouches[touch.identifier] = last;
Browser.touches[touch.identifier] = coords
}
return
}
var x = event.pageX - (scrollX + rect.left);
var y = event.pageY - (scrollY + rect.top);
x = x * (cw / rect.width);
y = y * (ch / rect.height);
Browser.mouseMovementX = x - Browser.mouseX;
Browser.mouseMovementY = y - Browser.mouseY;
Browser.mouseX = x;
Browser.mouseY = y
}
}),
xhrLoad: (function(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)
} else {
onerror()
}
};
xhr.onerror = onerror;
xhr.send(null)
}),
asyncLoad: (function(url, onload, onerror, noRunDep) {
Browser.xhrLoad(url, (function(arrayBuffer) {
assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
onload(new Uint8Array(arrayBuffer));
if (!noRunDep) removeRunDependency("al " + url)
}), (function(event) {
if (onerror) {
onerror()
} else {
throw 'Loading data file "' + url + '" failed.'
}
}));
if (!noRunDep) addRunDependency("al " + url)
}),
resizeListeners: [],
updateResizeListeners: (function() {
var canvas = Module["canvas"];
Browser.resizeListeners.forEach((function(listener) {
listener(canvas.width, canvas.height)
}))
}),
setCanvasSize: (function(width, height, noUpdates) {
var canvas = Module["canvas"];
Browser.updateCanvasDimensions(canvas, width, height);
if (!noUpdates) Browser.updateResizeListeners()
}),
windowedWidth: 0,
windowedHeight: 0,
setFullScreenCanvasSize: (function() {
if (typeof SDL != "undefined") {
var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2];
flags = flags | 8388608;
HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags
}
Browser.updateResizeListeners()
}),
setWindowedCanvasSize: (function() {
if (typeof SDL != "undefined") {
var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2];
flags = flags & ~8388608;
HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags
}
Browser.updateResizeListeners()
}),
updateCanvasDimensions: (function(canvas, wNative, hNative) {
if (wNative && hNative) {
canvas.widthNative = wNative;
canvas.heightNative = hNative
} else {
wNative = canvas.widthNative;
hNative = canvas.heightNative
}
var w = wNative;
var h = hNative;
if (Module["forcedAspectRatio"] && Module["forcedAspectRatio"] > 0) {
if (w / h < Module["forcedAspectRatio"]) {
w = Math.round(h * Module["forcedAspectRatio"])
} else {
h = Math.round(w / Module["forcedAspectRatio"])
}
}
if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvas.parentNode && typeof screen != "undefined") {
var factor = Math.min(screen.width / w, screen.height / h);
w = Math.round(w * factor);
h = Math.round(h * factor)
}
if (Browser.resizeCanvas) {
if (canvas.width != w) canvas.width = w;
if (canvas.height != h) canvas.height = h;
if (typeof canvas.style != "undefined") {
canvas.style.removeProperty("width");
canvas.style.removeProperty("height")
}
} else {
if (canvas.width != wNative) canvas.width = wNative;
if (canvas.height != hNative) canvas.height = hNative;
if (typeof canvas.style != "undefined") {
if (w != wNative || h != hNative) {
canvas.style.setProperty("width", w + "px", "important");
canvas.style.setProperty("height", h + "px", "important")
} else {
canvas.style.removeProperty("width");
canvas.style.removeProperty("height")
}
}
}
}),
wgetRequests: {},
nextWgetRequestHandle: 0,
getNextWgetRequestHandle: (function() {
var handle = Browser.nextWgetRequestHandle;
Browser.nextWgetRequestHandle++;
return handle
})
};
function _pthread_setspecific(key, value) {
if (!(key in PTHREAD_SPECIFIC)) {
return ERRNO_CODES.EINVAL
}
PTHREAD_SPECIFIC[key] = value;
return 0
}
function __exit(status) {
Module["exit"](status)
}
function _exit(status) {
__exit(status)
}
function _emscripten_memcpy_big(dest, src, num) {
HEAPU8.set(HEAPU8.subarray(src, src + num), dest);
return dest
}
Module["_memcpy"] = _memcpy;
Module["_memmove"] = _memmove;
function _malloc(bytes) {
var ptr = Runtime.dynamicAlloc(bytes + 8);
return ptr + 8 & 4294967288
}
Module["_malloc"] = _malloc;
function ___cxa_allocate_exception(size) {
return _malloc(size)
}
var SYSCALLS = {
DEFAULT_POLLMASK: 5,
mappings: {},
umask: 511,
calculateAt: (function(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(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(addr, stream, len, flags) {
var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len));
FS.msync(stream, buffer, 0, len, flags)
}),
doMkdir: (function(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(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(path, buf, bufsize) {
if (bufsize <= 0) return -ERRNO_CODES.EINVAL;
var ret = FS.readlink(path);
ret = ret.slice(0, Math.max(0, bufsize));
writeStringToMemory(ret, buf, true);
return ret.length
}),
doAccess: (function(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(path, flags, suggestFD) {
var suggest = FS.getStream(suggestFD);
if (suggest) FS.close(suggest);
return FS.open(path, flags, 0, suggestFD, suggestFD).fd
}),
doReadv: (function(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(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(varargs) {
SYSCALLS.varargs += 4;
var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];
return ret
}),
getStr: (function() {
var ret = Pointer_stringify(SYSCALLS.get());
return ret
}),
getStreamFromFD: (function() {
var stream = FS.getStream(SYSCALLS.get());
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return stream
}),
getSocketFromFD: (function() {
var socket = SOCKFS.getSocket(SYSCALLS.get());
if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return socket
}),
getSocketAddress: (function(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() {
var low = SYSCALLS.get(),
high = SYSCALLS.get();
if (low >= 0) assert(high === 0);
else assert(high === -1);
return low
}),
getZero: (function() {
assert(SYSCALLS.get() === 0)
})
};
function ___syscall54(which, varargs) {
SYSCALLS.varargs = varargs;
try {
var stream = SYSCALLS.getStreamFromFD(),
op = SYSCALLS.get();
switch (op) {
case 21505:
{
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0
};
case 21506:
{
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)
};
default:
abort("bad ioctl syscall " + op)
}
} catch (e) {
if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno
}
}
function ___cxa_guard_release() {}
function _sysconf(name) {
switch (name) {
case 30:
return PAGE_SIZE;
case 85:
return totalMemory / PAGE_SIZE;
case 132:
case 133:
case 12:
case 137:
case 138:
case 15:
case 235:
case 16:
case 17:
case 18:
case 19:
case 20:
case 149:
case 13:
case 10:
case 236:
case 153:
case 9:
case 21:
case 22:
case 159:
case 154:
case 14:
case 77:
case 78:
case 139:
case 80:
case 81:
case 82:
case 68:
case 67:
case 164:
case 11:
case 29:
case 47:
case 48:
case 95:
case 52:
case 51:
case 46:
return 200809;
case 79:
return 0;
case 27:
case 246:
case 127:
case 128:
case 23:
case 24:
case 160:
case 161:
case 181:
case 182:
case 242:
case 183:
case 184:
case 243:
case 244:
case 245:
case 165:
case 178:
case 179:
case 49:
case 50:
case 168:
case 169:
case 175:
case 170:
case 171:
case 172:
case 97:
case 76:
case 32:
case 173:
case 35:
return -1;
case 176:
case 177:
case 7:
case 155:
case 8:
case 157:
case 125:
case 126:
case 92:
case 93:
case 129:
case 130:
case 131:
case 94:
case 91:
return 1;
case 74:
case 60:
case 69:
case 70:
case 4:
return 1024;
case 31:
case 42:
case 72:
return 32;
case 87:
case 26:
case 33:
return 2147483647;
case 34:
case 1:
return 47839;
case 38:
case 36:
return 99;
case 43:
case 37:
return 2048;
case 0:
return 2097152;
case 3:
return 65536;
case 28:
return 32768;
case 44:
return 32767;
case 75:
return 16384;
case 39:
return 1e3;
case 89:
return 700;
case 71:
return 256;
case 40:
return 255;
case 2:
return 100;
case 180:
return 64;
case 25:
return 20;
case 5:
return 16;
case 6:
return 6;
case 73:
return 4;
case 84:
{
if (typeof navigator === "object") return navigator["hardwareConcurrency"] || 1;
return 1
}
}
___setErrNo(ERRNO_CODES.EINVAL);
return -1
}
Module["_bitshift64Lshr"] = _bitshift64Lshr;
var _BDtoIHigh = true;
function _pthread_cleanup_push(routine, arg) {
__ATEXIT__.push((function() {
Runtime.dynCall("vi", routine, [arg])
}));
_pthread_cleanup_push.level = __ATEXIT__.length
}
function _pthread_cond_broadcast() {
return 0
}
function ___cxa_guard_acquire(variable) {
if (!HEAP8[variable >> 0]) {
HEAP8[variable >> 0] = 1;
return 1
}
return 0
}
function _pthread_cleanup_pop() {
assert(_pthread_cleanup_push.level == __ATEXIT__.length, "cannot pop if something else added meanwhile!");
__ATEXIT__.pop();
_pthread_cleanup_push.level = __ATEXIT__.length
}
Module["_i64Add"] = _i64Add;
function _pthread_join() {}
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 ___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
}
}
var _llvm_pow_f64 = Math_pow;
function _sbrk(bytes) {
var self = _sbrk;
if (!self.called) {
DYNAMICTOP = alignMemoryPage(DYNAMICTOP);
self.called = true;
assert(Runtime.dynamicAlloc);
self.alloc = Runtime.dynamicAlloc;
Runtime.dynamicAlloc = (function() {
abort("cannot dynamically allocate, sbrk now has control")
})
}
var ret = DYNAMICTOP;
if (bytes != 0) {
var success = self.alloc(bytes);
if (!success) return -1 >>> 0
}
return ret
}
Module["_bitshift64Shl"] = _bitshift64Shl;
function ___cxa_begin_catch(ptr) {
__ZSt18uncaught_exceptionv.uncaught_exception--;
EXCEPTIONS.caught.push(ptr);
EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));
return ptr
}
var _BItoD = true;
var cttz_i8 = allocate([8, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0], "i8", ALLOC_STATIC);
Module["_llvm_cttz_i32"] = _llvm_cttz_i32;
function _llvm_cttz_i64(l, h) {
var ret = _llvm_cttz_i32(l);
if (ret == 32) ret += _llvm_cttz_i32(h);
return (asm["setTempRet0"](0), ret) | 0
}
function _pthread_cond_wait() {
return 0
}
function _pthread_mutex_unlock() {}
Module["_llvm_ctlz_i64"] = _llvm_ctlz_i64;
var _exp = Math_exp;
function _time(ptr) {
var ret = Date.now() / 1e3 | 0;
if (ptr) {
HEAP32[ptr >> 2] = ret
}
return ret
}
function _pthread_self() {
return 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;
assert(offset_high === 0);
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 _emscripten_async_call(func, arg, millis) {
Module["noExitRuntime"] = true;
function wrapper() {
Runtime.getFuncWrapper(func, "vi")(arg)
}
if (millis >= 0) {
Browser.safeSetTimeout(wrapper, millis)
} else {
Browser.safeRequestAnimationFrame(wrapper)
}
}
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 ___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
}
}
Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) {
Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice)
};
Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) {
Browser.requestAnimationFrame(func)
};
Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) {
Browser.setCanvasSize(width, height, noUpdates)
};
Module["pauseMainLoop"] = function Module_pauseMainLoop() {
Browser.mainLoop.pause()
};
Module["resumeMainLoop"] = function Module_resumeMainLoop() {
Browser.mainLoop.resume()
};
Module["getUserMedia"] = function Module_getUserMedia() {
Browser.getUserMedia()
};
Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) {
return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes)
};
FS.staticInit();
__ATINIT__.unshift((function() {
if (!Module["noFSInit"] && !FS.init.initialized) FS.init()
}));
__ATMAIN__.push((function() {
FS.ignorePermissions = false
}));
__ATEXIT__.push((function() {
FS.quit()
}));
Module["FS_createFolder"] = FS.createFolder;
Module["FS_createPath"] = FS.createPath;
Module["FS_createDataFile"] = FS.createDataFile;
Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
Module["FS_createLazyFile"] = FS.createLazyFile;
Module["FS_createLink"] = FS.createLink;
Module["FS_createDevice"] = FS.createDevice;
Module["FS_unlink"] = FS.unlink;
__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()
}
STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
staticSealed = true;
STACK_MAX = STACK_BASE + TOTAL_STACK;
DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
function invoke_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7) {
try {
return Module["dynCall_iiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_iiii(index, a1, a2, a3) {
try {
return Module["dynCall_iiii"](index, a1, a2, a3)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_viiiii(index, a1, a2, a3, a4, a5) {
try {
Module["dynCall_viiiii"](index, a1, a2, a3, a4, a5)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_iiiiiid(index, a1, a2, a3, a4, a5, a6) {
try {
return Module["dynCall_iiiiiid"](index, a1, a2, a3, a4, a5, a6)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_vi(index, a1) {
try {
Module["dynCall_vi"](index, a1)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_vii(index, a1, a2) {
try {
Module["dynCall_vii"](index, a1, a2)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) {
try {
return Module["dynCall_iiiiiii"](index, a1, a2, a3, a4, a5, a6)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_iiiiid(index, a1, a2, a3, a4, a5) {
try {
return Module["dynCall_iiiiid"](index, a1, a2, a3, a4, a5)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_ii(index, a1) {
try {
return Module["dynCall_ii"](index, a1)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_viii(index, a1, a2, a3) {
try {
Module["dynCall_viii"](index, a1, a2, a3)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_v(index) {
try {
Module["dynCall_v"](index)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) {
try {
return Module["dynCall_iiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_iiiii(index, a1, a2, a3, a4) {
try {
return Module["dynCall_iiiii"](index, a1, a2, a3, a4)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) {
try {
Module["dynCall_viiiiii"](index, a1, a2, a3, a4, a5, a6)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_iii(index, a1, a2) {
try {
return Module["dynCall_iii"](index, a1, a2)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_iiiiii(index, a1, a2, a3, a4, a5) {
try {
return Module["dynCall_iiiiii"](index, a1, a2, a3, a4, a5)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["setThrew"](1, 0)
}
}
function invoke_viiii(index, a1, a2, a3, a4) {
try {
Module["dynCall_viiii"](index, a1, a2, a3, a4)
} catch (e) {
if (typeof e !== "number" && e !== "longjmp") throw e;
asm["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,
"invoke_iiiiiiii": invoke_iiiiiiii,
"invoke_iiii": invoke_iiii,
"invoke_viiiii": invoke_viiiii,
"invoke_iiiiiid": invoke_iiiiiid,
"invoke_vi": invoke_vi,
"invoke_vii": invoke_vii,
"invoke_iiiiiii": invoke_iiiiiii,
"invoke_iiiiid": invoke_iiiiid,
"invoke_ii": invoke_ii,
"invoke_viii": invoke_viii,
"invoke_v": invoke_v,
"invoke_iiiiiiiii": invoke_iiiiiiiii,
"invoke_iiiii": invoke_iiiii,
"invoke_viiiiii": invoke_viiiiii,
"invoke_iii": invoke_iii,
"invoke_iiiiii": invoke_iiiiii,
"invoke_viiii": invoke_viiii,
"_fabs": _fabs,
"_pthread_getspecific": _pthread_getspecific,
"_pthread_cond_wait": _pthread_cond_wait,
"_exp": _exp,
"_emscripten_get_now_is_monotonic": _emscripten_get_now_is_monotonic,
"_llvm_pow_f64": _llvm_pow_f64,
"_pthread_key_create": _pthread_key_create,
"_pthread_cleanup_push": _pthread_cleanup_push,
"_abort": _abort,
"___cxa_guard_acquire": ___cxa_guard_acquire,
"___setErrNo": ___setErrNo,
"___assert_fail": ___assert_fail,
"___cxa_allocate_exception": ___cxa_allocate_exception,
"_pthread_join": _pthread_join,
"__isLeapYear": __isLeapYear,
"___cxa_guard_release": ___cxa_guard_release,
"__addDays": __addDays,
"_strftime_l": _strftime_l,
"_pthread_cond_destroy": _pthread_cond_destroy,
"_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing,
"_sbrk": _sbrk,
"___cxa_begin_catch": ___cxa_begin_catch,
"_emscripten_memcpy_big": _emscripten_memcpy_big,
"___resumeException": ___resumeException,
"__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv,
"__exit": __exit,
"_strftime": _strftime,
"__arraySum": __arraySum,
"___syscall221": ___syscall221,
"_pthread_cond_signal": _pthread_cond_signal,
"_pthread_self": _pthread_self,
"_pthread_mutex_destroy": _pthread_mutex_destroy,
"_pthread_mutex_unlock": _pthread_mutex_unlock,
"_pthread_once": _pthread_once,
"_clock_gettime": _clock_gettime,
"___syscall54": ___syscall54,
"___unlock": ___unlock,
"_pthread_cleanup_pop": _pthread_cleanup_pop,
"_pthread_cond_broadcast": _pthread_cond_broadcast,
"_emscripten_set_main_loop": _emscripten_set_main_loop,
"_emscripten_get_now": _emscripten_get_now,
"_llvm_cttz_i64": _llvm_cttz_i64,
"_log": _log,
"_pthread_setspecific": _pthread_setspecific,
"___cxa_throw": ___cxa_throw,
"_sysconf": _sysconf,
"___lock": ___lock,
"___syscall6": ___syscall6,
"___syscall5": ___syscall5,
"_emscripten_async_call": _emscripten_async_call,
"_time": _time,
"_pthread_mutex_lock": _pthread_mutex_lock,
"___syscall140": ___syscall140,
"_exit": _exit,
"___cxa_find_matching_catch": ___cxa_find_matching_catch,
"___syscall145": ___syscall145,
"___syscall146": ___syscall146,
"STACKTOP": STACKTOP,
"STACK_MAX": STACK_MAX,
"tempDoublePtr": tempDoublePtr,
"ABORT": ABORT,
"cttz_i8": cttz_i8
}; // EMSCRIPTEN_START_ASM
var asm = (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.STACKTOP | 0;
var j = env.STACK_MAX | 0;
var k = env.tempDoublePtr | 0;
var l = env.ABORT | 0;
var m = env.cttz_i8 | 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,
y = 0,
z = 0,
A = 0,
B = 0.0;
var C = 0;
var D = 0;
var E = 0;
var F = 0;
var G = 0;
var H = 0;
var I = 0;
var J = 0;
var K = 0;
var L = 0;
var M = global.Math.floor;
var N = global.Math.abs;
var O = global.Math.sqrt;
var P = global.Math.pow;
var Q = global.Math.cos;
var R = global.Math.sin;
var S = global.Math.tan;
var T = global.Math.acos;
var U = global.Math.asin;
var V = global.Math.atan;
var W = global.Math.atan2;
var X = global.Math.exp;
var Y = global.Math.log;
var Z = global.Math.ceil;
var _ = global.Math.imul;
var $ = global.Math.min;
var aa = global.Math.clz32;
var ba = env.abort;
var ca = env.assert;
var da = env.invoke_iiiiiiii;
var ea = env.invoke_iiii;
var fa = env.invoke_viiiii;
var ga = env.invoke_iiiiiid;
var ha = env.invoke_vi;
var ia = env.invoke_vii;
var ja = env.invoke_iiiiiii;
var ka = env.invoke_iiiiid;
var la = env.invoke_ii;
var ma = env.invoke_viii;
var na = env.invoke_v;
var oa = env.invoke_iiiiiiiii;
var pa = env.invoke_iiiii;
var qa = env.invoke_viiiiii;
var ra = env.invoke_iii;
var sa = env.invoke_iiiiii;
var ta = env.invoke_viiii;
var ua = env._fabs;
var va = env._pthread_getspecific;
var wa = env._pthread_cond_wait;
var xa = env._exp;
var ya = env._emscripten_get_now_is_monotonic;
var za = env._llvm_pow_f64;
var Aa = env._pthread_key_create;
var Ba = env._pthread_cleanup_push;
var Ca = env._abort;
var Da = env.___cxa_guard_acquire;
var Ea = env.___setErrNo;
var Fa = env.___assert_fail;
var Ga = env.___cxa_allocate_exception;
var Ha = env._pthread_join;
var Ia = env.__isLeapYear;
var Ja = env.___cxa_guard_release;
var Ka = env.__addDays;
var La = env._strftime_l;
var Ma = env._pthread_cond_destroy;
var Na = env._emscripten_set_main_loop_timing;
var Oa = env._sbrk;
var Pa = env.___cxa_begin_catch;
var Qa = env._emscripten_memcpy_big;
var Ra = env.___resumeException;
var Sa = env.__ZSt18uncaught_exceptionv;
var Ta = env.__exit;
var Ua = env._strftime;
var Va = env.__arraySum;
var Wa = env.___syscall221;
var Xa = env._pthread_cond_signal;
var Ya = env._pthread_self;
var Za = env._pthread_mutex_destroy;
var _a = env._pthread_mutex_unlock;
var $a = env._pthread_once;
var ab = env._clock_gettime;
var bb = env.___syscall54;
var cb = env.___unlock;
var db = env._pthread_cleanup_pop;
var eb = env._pthread_cond_broadcast;
var fb = env._emscripten_set_main_loop;
var gb = env._emscripten_get_now;
var hb = env._llvm_cttz_i64;
var ib = env._log;
var jb = env._pthread_setspecific;
var kb = env.___cxa_throw;
var lb = env._sysconf;
var mb = env.___lock;
var nb = env.___syscall6;
var ob = env.___syscall5;
var pb = env._emscripten_async_call;
var qb = env._time;
var rb = env._pthread_mutex_lock;
var sb = env.___syscall140;
var tb = env._exit;
var ub = env.___cxa_find_matching_catch;
var vb = env.___syscall145;
var wb = env.___syscall146;
var xb = 0.0;
// EMSCRIPTEN_START_FUNCS
function Ro(e, f, g, h, j, k, l, m) {
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
l = l | 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;
o = i;
i = i + 32 | 0;
u = o + 16 | 0;
r = o + 12 | 0;
p = o + 8 | 0;
q = o + 4 | 0;
t = o;
v = gm(h) | 0;
c[p >> 2] = v;
p = Jr(p, 1101600) | 0;
av(v) | 0;
c[j >> 2] = 0;
v = p + 8 | 0;
w = c[f >> 2] | 0;
a: do
if ((l | 0) != (m | 0)) {
b: while (1) {
x = w;
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[f >> 2] = 0;
w = 0;
x = 0
}
} else w = 0;
A = (w | 0) == 0;
y = c[g >> 2] | 0;
z = y;
do
if (y) {
if ((c[y + 12 >> 2] | 0) == (c[y + 16 >> 2] | 0) ? (Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) == -1 : 0) {
c[g >> 2] = 0;
z = 0;
n = 11;
break
}
if (!A) {
n = 12;
break b
}
} else n = 11;
while (0);
if ((n | 0) == 11) {
n = 0;
if (A) {
n = 12;
break
} else y = 0
}
c: do
if ((zb[c[(c[p >> 2] | 0) + 36 >> 2] & 31](p, a[l >> 0] | 0, 0) | 0) << 24 >> 24 == 37) {
A = l + 1 | 0;
if ((A | 0) == (m | 0)) {
n = 15;
break b
}
y = zb[c[(c[p >> 2] | 0) + 36 >> 2] & 31](p, a[A >> 0] | 0, 0) | 0;
switch (y << 24 >> 24) {
case 48:
case 69:
{
B = l + 2 | 0;
if ((B | 0) == (m | 0)) {
n = 18;
break b
}
l = A;w = zb[c[(c[p >> 2] | 0) + 36 >> 2] & 31](p, a[B >> 0] | 0, 0) | 0;
break
};
default:
{
w = y;y = 0
}
}
B = c[(c[e >> 2] | 0) + 36 >> 2] | 0;
c[q >> 2] = x;
c[t >> 2] = z;
c[r >> 2] = c[q >> 2];
c[u >> 2] = c[t >> 2];
c[f >> 2] = Jb[B & 15](e, r, u, h, j, k, w, y) | 0;
l = l + 2 | 0
} else {
x = a[l >> 0] | 0;
if (x << 24 >> 24 > -1 ? (s = c[v >> 2] | 0, (b[s + (x << 24 >> 24 << 1) >> 1] & 8192) != 0) : 0) {
do {
l = l + 1 | 0;
if ((l | 0) == (m | 0)) {
l = m;
break
}
x = a[l >> 0] | 0;
if (x << 24 >> 24 <= -1) break
} while ((b[s + (x << 24 >> 24 << 1) >> 1] & 8192) != 0);
z = y;
while (1) {
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[f >> 2] = 0;
w = 0
}
} else w = 0;
A = (w | 0) == 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) != (c[y + 16 >> 2] | 0))
if (A) {
x = z;
break
} else break c;
if ((Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) != -1)
if (A ^ (z | 0) == 0) {
x = z;
y = z;
break
} else break c;
else {
c[g >> 2] = 0;
x = 0;
n = 37;
break
}
} else {
x = z;
n = 37
}
while (0);
if ((n | 0) == 37) {
n = 0;
if (A) break c;
else y = 0
}
z = w + 12 | 0;
B = c[z >> 2] | 0;
A = w + 16 | 0;
if ((B | 0) == (c[A >> 2] | 0)) B = Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0;
else B = d[B >> 0] | 0;
if ((B & 255) << 24 >> 24 <= -1) break c;
if (!(b[(c[v >> 2] | 0) + (B << 24 >> 24 << 1) >> 1] & 8192)) break c;
B = c[z >> 2] | 0;
if ((B | 0) == (c[A >> 2] | 0)) {
Gb[c[(c[w >> 2] | 0) + 40 >> 2] & 127](w) | 0;
z = x;
continue
} else {
c[z >> 2] = B + 1;
z = x;
continue
}
}
}
y = w + 12 | 0;
z = c[y >> 2] | 0;
x = w + 16 | 0;
if ((z | 0) == (c[x >> 2] | 0)) z = Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0;
else z = d[z >> 0] | 0;
B = Mb[c[(c[p >> 2] | 0) + 12 >> 2] & 63](p, z & 255) | 0;
if (B << 24 >> 24 != (Mb[c[(c[p >> 2] | 0) + 12 >> 2] & 63](p, a[l >> 0] | 0) | 0) << 24 >> 24) {
n = 55;
break b
}
z = c[y >> 2] | 0;
if ((z | 0) == (c[x >> 2] | 0)) Gb[c[(c[w >> 2] | 0) + 40 >> 2] & 127](w) | 0;
else c[y >> 2] = z + 1;
l = l + 1 | 0
}
while (0);
w = c[f >> 2] | 0;
if (!((l | 0) != (m | 0) & (c[j >> 2] | 0) == 0)) break a
}
if ((n | 0) == 12) {
c[j >> 2] = 4;
break
} else if ((n | 0) == 15) {
c[j >> 2] = 4;
break
} else if ((n | 0) == 18) {
c[j >> 2] = 4;
break
} else if ((n | 0) == 55) {
c[j >> 2] = 4;
w = c[f >> 2] | 0;
break
}
}
while (0);
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[f >> 2] = 0;
w = 0
}
} else w = 0;
f = (w | 0) == 0;
p = c[g >> 2] | 0;
do
if (p) {
if ((c[p + 12 >> 2] | 0) == (c[p + 16 >> 2] | 0) ? (Gb[c[(c[p >> 2] | 0) + 36 >> 2] & 127](p) | 0) == -1 : 0) {
c[g >> 2] = 0;
n = 65;
break
}
if (!f) n = 66
} else n = 65;
while (0);
if ((n | 0) == 65 ? f : 0) n = 66;
if ((n | 0) == 66) c[j >> 2] = c[j >> 2] | 2;
i = o;
return w | 0
}
function So(a) {
a = a | 0;
return
}
function To(a) {
a = a | 0;
Ph(a);
return
}
function Uo(a) {
a = a | 0;
return 2
}
function Vo(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Ro(a, k, j, e, f, g, 1180513, 1180521) | 0;
i = h;
return b | 0
}
function Wo(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 j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0;
j = i;
i = i + 16 | 0;
k = j + 12 | 0;
l = j + 8 | 0;
n = j + 4 | 0;
m = j;
o = b + 8 | 0;
o = Gb[c[(c[o >> 2] | 0) + 20 >> 2] & 127](o) | 0;
c[n >> 2] = c[d >> 2];
c[m >> 2] = c[e >> 2];
d = a[o >> 0] | 0;
p = (d & 1) == 0;
e = p ? o + 1 | 0 : c[o + 8 >> 2] | 0;
d = e + (p ? (d & 255) >>> 1 : c[o + 4 >> 2] | 0) | 0;
c[l >> 2] = c[n >> 2];
c[k >> 2] = c[m >> 2];
d = Ro(b, l, k, f, g, h, e, d) | 0;
i = j;
return d | 0
}
function Xo(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 8 | 0;
m = h + 4 | 0;
k = h;
l = gm(e) | 0;
c[m >> 2] = l;
e = Jr(m, 1101600) | 0;
av(l) | 0;
g = g + 24 | 0;
c[k >> 2] = c[d >> 2];
c[j >> 2] = c[k >> 2];
Yo(a, g, b, j, f, e);
i = h;
return c[b >> 2] | 0
}
function Yo(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,
j = 0,
k = 0;
h = i;
i = i + 16 | 0;
j = h + 4 | 0;
k = h;
a = a + 8 | 0;
a = Gb[c[c[a >> 2] >> 2] & 127](a) | 0;
c[k >> 2] = c[e >> 2];
e = a + 168 | 0;
c[j >> 2] = c[k >> 2];
f = (vt(d, j, a, e, g, f, 0) | 0) - a | 0;
if ((f | 0) < 168) c[b >> 2] = ((f | 0) / 12 | 0 | 0) % 7 | 0;
i = h;
return
}
function Zo(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 8 | 0;
m = h + 4 | 0;
k = h;
l = gm(e) | 0;
c[m >> 2] = l;
e = Jr(m, 1101600) | 0;
av(l) | 0;
g = g + 16 | 0;
c[k >> 2] = c[d >> 2];
c[j >> 2] = c[k >> 2];
_o(a, g, b, j, f, e);
i = h;
return c[b >> 2] | 0
}
function _o(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,
j = 0,
k = 0;
h = i;
i = i + 16 | 0;
j = h + 4 | 0;
k = h;
a = a + 8 | 0;
a = Gb[c[(c[a >> 2] | 0) + 4 >> 2] & 127](a) | 0;
c[k >> 2] = c[e >> 2];
e = a + 288 | 0;
c[j >> 2] = c[k >> 2];
f = (vt(d, j, a, e, g, f, 0) | 0) - a | 0;
if ((f | 0) < 288) c[b >> 2] = ((f | 0) / 12 | 0 | 0) % 12 | 0;
i = h;
return
}
function $o(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 8 | 0;
m = h + 4 | 0;
k = h;
l = gm(e) | 0;
c[m >> 2] = l;
e = Jr(m, 1101600) | 0;
av(l) | 0;
g = g + 20 | 0;
c[k >> 2] = c[d >> 2];
c[j >> 2] = c[k >> 2];
ap(a, g, b, j, f, e);
i = h;
return c[b >> 2] | 0
}
function ap(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 4) | 0;
if (!(c[f >> 2] & 4)) {
if ((g | 0) < 69) f = g + 2e3 | 0;
else f = (g + -69 | 0) >>> 0 < 31 ? g + 1900 | 0 : g;
c[b >> 2] = f + -1900
}
i = a;
return
}
function bp(b, d, e, f, g, h, j, k) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
var 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,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
O = 0,
P = 0,
Q = 0,
R = 0,
S = 0,
T = 0,
U = 0;
k = i;
i = i + 144 | 0;
O = k + 132 | 0;
R = k + 116 | 0;
N = k + 128 | 0;
P = k + 124 | 0;
Q = k + 120 | 0;
T = k + 112 | 0;
S = k + 108 | 0;
m = k + 104 | 0;
o = k + 100 | 0;
n = k + 96 | 0;
q = k + 92 | 0;
p = k + 88 | 0;
r = k + 84 | 0;
s = k + 80 | 0;
t = k + 76 | 0;
u = k + 72 | 0;
v = k + 68 | 0;
w = k + 64 | 0;
x = k + 60 | 0;
z = k + 56 | 0;
y = k + 52 | 0;
B = k + 48 | 0;
A = k + 44 | 0;
C = k + 40 | 0;
E = k + 36 | 0;
D = k + 32 | 0;
F = k + 28 | 0;
H = k + 24 | 0;
G = k + 20 | 0;
J = k + 16 | 0;
I = k + 12 | 0;
K = k + 8 | 0;
L = k + 4 | 0;
M = k;
c[g >> 2] = 0;
U = gm(f) | 0;
c[N >> 2] = U;
N = Jr(N, 1101600) | 0;
av(U) | 0;
do switch (j << 24 >> 24 | 0) {
case 65:
case 97:
{
c[P >> 2] = c[e >> 2];c[O >> 2] = c[P >> 2];Yo(b, h + 24 | 0, d, O, g, N);l = 26;
break
};
case 104:
case 66:
case 98:
{
c[Q >> 2] = c[e >> 2];c[O >> 2] = c[Q >> 2];_o(b, h + 16 | 0, d, O, g, N);l = 26;
break
};
case 99:
{
l = b + 8 | 0;l = Gb[c[(c[l >> 2] | 0) + 12 >> 2] & 127](l) | 0;c[T >> 2] = c[d >> 2];c[S >> 2] = c[e >> 2];Q = a[l >> 0] | 0;P = (Q & 1) == 0;U = P ? l + 1 | 0 : c[l + 8 >> 2] | 0;l = U + (P ? (Q & 255) >>> 1 : c[l + 4 >> 2] | 0) | 0;c[R >> 2] = c[T >> 2];c[O >> 2] = c[S >> 2];c[d >> 2] = Ro(b, R, O, f, g, h, U, l) | 0;l = 26;
break
};
case 101:
case 100:
{
c[m >> 2] = c[e >> 2];c[O >> 2] = c[m >> 2];cp(b, h + 12 | 0, d, O, g, N);l = 26;
break
};
case 68:
{
c[o >> 2] = c[d >> 2];c[n >> 2] = c[e >> 2];c[R >> 2] = c[o >> 2];c[O >> 2] = c[n >> 2];c[d >> 2] = Ro(b, R, O, f, g, h, 1180521, 1180529) | 0;l = 26;
break
};
case 70:
{
c[q >> 2] = c[d >> 2];c[p >> 2] = c[e >> 2];c[R >> 2] = c[q >> 2];c[O >> 2] = c[p >> 2];c[d >> 2] = Ro(b, R, O, f, g, h, 1180529, 1180537) | 0;l = 26;
break
};
case 72:
{
c[r >> 2] = c[e >> 2];c[O >> 2] = c[r >> 2];dp(b, h + 8 | 0, d, O, g, N);l = 26;
break
};
case 73:
{
c[s >> 2] = c[e >> 2];c[O >> 2] = c[s >> 2];ep(b, h + 8 | 0, d, O, g, N);l = 26;
break
};
case 106:
{
c[t >> 2] = c[e >> 2];c[O >> 2] = c[t >> 2];fp(b, h + 28 | 0, d, O, g, N);l = 26;
break
};
case 109:
{
c[u >> 2] = c[e >> 2];c[O >> 2] = c[u >> 2];gp(b, h + 16 | 0, d, O, g, N);l = 26;
break
};
case 77:
{
c[v >> 2] = c[e >> 2];c[O >> 2] = c[v >> 2];hp(b, h + 4 | 0, d, O, g, N);l = 26;
break
};
case 116:
case 110:
{
c[w >> 2] = c[e >> 2];c[O >> 2] = c[w >> 2];ip(b, d, O, g, N);l = 26;
break
};
case 112:
{
c[x >> 2] = c[e >> 2];c[O >> 2] = c[x >> 2];jp(b, h + 8 | 0, d, O, g, N);l = 26;
break
};
case 114:
{
c[z >> 2] = c[d >> 2];c[y >> 2] = c[e >> 2];c[R >> 2] = c[z >> 2];c[O >> 2] = c[y >> 2];c[d >> 2] = Ro(b, R, O, f, g, h, 1180537, 1180548) | 0;l = 26;
break
};
case 82:
{
c[B >> 2] = c[d >> 2];c[A >> 2] = c[e >> 2];c[R >> 2] = c[B >> 2];c[O >> 2] = c[A >> 2];c[d >> 2] = Ro(b, R, O, f, g, h, 1180548, 1180553) | 0;l = 26;
break
};
case 83:
{
c[C >> 2] = c[e >> 2];c[O >> 2] = c[C >> 2];kp(b, h, d, O, g, N);l = 26;
break
};
case 84:
{
c[E >> 2] = c[d >> 2];c[D >> 2] = c[e >> 2];c[R >> 2] = c[E >> 2];c[O >> 2] = c[D >> 2];c[d >> 2] = Ro(b, R, O, f, g, h, 1180553, 1180561) | 0;l = 26;
break
};
case 119:
{
c[F >> 2] = c[e >> 2];c[O >> 2] = c[F >> 2];lp(b, h + 24 | 0, d, O, g, N);l = 26;
break
};
case 120:
{
U = c[(c[b >> 2] | 0) + 20 >> 2] | 0;c[H >> 2] = c[d >> 2];c[G >> 2] = c[e >> 2];c[R >> 2] = c[H >> 2];c[O >> 2] = c[G >> 2];d = Eb[U & 63](b, R, O, f, g, h) | 0;
break
};
case 88:
{
l = b + 8 | 0;l = Gb[c[(c[l >> 2] | 0) + 24 >> 2] & 127](l) | 0;c[J >> 2] = c[d >> 2];c[I >> 2] = c[e >> 2];T = a[l >> 0] | 0;S = (T & 1) == 0;U = S ? l + 1 | 0 : c[l + 8 >> 2] | 0;l = U + (S ? (T & 255) >>> 1 : c[l + 4 >> 2] | 0) | 0;c[R >> 2] = c[J >> 2];c[O >> 2] = c[I >> 2];c[d >> 2] = Ro(b, R, O, f, g, h, U, l) | 0;l = 26;
break
};
case 121:
{
c[K >> 2] = c[e >> 2];c[O >> 2] = c[K >> 2];ap(b, h + 20 | 0, d, O, g, N);l = 26;
break
};
case 89:
{
c[L >> 2] = c[e >> 2];c[O >> 2] = c[L >> 2];mp(b, h + 20 | 0, d, O, g, N);l = 26;
break
};
case 37:
{
c[M >> 2] = c[e >> 2];c[O >> 2] = c[M >> 2];np(b, d, O, g, N);l = 26;
break
};
default:
{
c[g >> 2] = c[g >> 2] | 4;l = 26
}
}
while (0);
if ((l | 0) == 26) d = c[d >> 2] | 0;
i = k;
return d | 0
}
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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g + -1 | 0) >>> 0 < 31 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function dp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 24 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function ep(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g + -1 | 0) >>> 0 < 12 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function fp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 3) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 366 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 13 & (d & 4 | 0) == 0) c[b >> 2] = g + -1;
else c[f >> 2] = d | 4;
i = a;
return
}
function hp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 60 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function ip(a, e, f, g, h) {
a = a | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
var i = 0,
j = 0,
k = 0;
a = h + 8 | 0;
a: while (1) {
h = c[e >> 2] | 0;
do
if (h) {
if ((c[h + 12 >> 2] | 0) == (c[h + 16 >> 2] | 0))
if ((Gb[c[(c[h >> 2] | 0) + 36 >> 2] & 127](h) | 0) == -1) {
c[e >> 2] = 0;
h = 0;
break
} else {
h = c[e >> 2] | 0;
break
}
} else h = 0;
while (0);
j = (h | 0) == 0;
h = c[f >> 2] | 0;
do
if (h) {
if ((c[h + 12 >> 2] | 0) != (c[h + 16 >> 2] | 0))
if (j) break;
else break a;
if ((Gb[c[(c[h >> 2] | 0) + 36 >> 2] & 127](h) | 0) != -1)
if (j) break;
else break a;
else {
c[f >> 2] = 0;
i = 12;
break
}
} else i = 12;
while (0);
if ((i | 0) == 12) {
i = 0;
if (j) {
h = 0;
break
} else h = 0
}
j = c[e >> 2] | 0;
k = c[j + 12 >> 2] | 0;
if ((k | 0) == (c[j + 16 >> 2] | 0)) j = Gb[c[(c[j >> 2] | 0) + 36 >> 2] & 127](j) | 0;
else j = d[k >> 0] | 0;
if ((j & 255) << 24 >> 24 <= -1) break;
if (!(b[(c[a >> 2] | 0) + (j << 24 >> 24 << 1) >> 1] & 8192)) break;
k = c[e >> 2] | 0;
j = k + 12 | 0;
h = c[j >> 2] | 0;
if ((h | 0) == (c[k + 16 >> 2] | 0)) {
Gb[c[(c[k >> 2] | 0) + 40 >> 2] & 127](k) | 0;
continue
} else {
c[j >> 2] = h + 1;
continue
}
}
a = c[e >> 2] | 0;
do
if (a) {
if ((c[a + 12 >> 2] | 0) == (c[a + 16 >> 2] | 0))
if ((Gb[c[(c[a >> 2] | 0) + 36 >> 2] & 127](a) | 0) == -1) {
c[e >> 2] = 0;
a = 0;
break
} else {
a = c[e >> 2] | 0;
break
}
} else a = 0;
while (0);
e = (a | 0) == 0;
do
if (h) {
if ((c[h + 12 >> 2] | 0) == (c[h + 16 >> 2] | 0) ? (Gb[c[(c[h >> 2] | 0) + 36 >> 2] & 127](h) | 0) == -1 : 0) {
c[f >> 2] = 0;
i = 32;
break
}
if (!e) i = 33
} else i = 32;
while (0);
if ((i | 0) == 32 ? e : 0) i = 33;
if ((i | 0) == 33) c[g >> 2] = c[g >> 2] | 2;
return
}
function jp(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 j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
j = i;
i = i + 16 | 0;
k = j + 4 | 0;
l = j;
b = b + 8 | 0;
b = Gb[c[(c[b >> 2] | 0) + 8 >> 2] & 127](b) | 0;
m = a[b >> 0] | 0;
if (!(m & 1)) m = (m & 255) >>> 1;
else m = c[b + 4 >> 2] | 0;
n = a[b + 12 >> 0] | 0;
if (!(n & 1)) n = (n & 255) >>> 1;
else n = c[b + 16 >> 2] | 0;
do
if ((m | 0) != (0 - n | 0)) {
c[l >> 2] = c[f >> 2];
f = b + 24 | 0;
c[k >> 2] = c[l >> 2];
f = vt(e, k, b, f, h, g, 0) | 0;
g = c[d >> 2] | 0;
if ((f | 0) == (b | 0) & (g | 0) == 12) {
c[d >> 2] = 0;
break
}
if ((g | 0) < 12 & (f - b | 0) == 12) c[d >> 2] = g + 12
} else c[g >> 2] = c[g >> 2] | 4;
while (0);
i = j;
return
}
function kp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 61 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function lp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 1) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 7 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function mp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Tt(d, h, f, g, 4) | 0;
if (!(c[f >> 2] & 4)) c[b >> 2] = g + -1900;
i = a;
return
}
function np(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;
a = c[b >> 2] | 0;
do
if (a) {
if ((c[a + 12 >> 2] | 0) == (c[a + 16 >> 2] | 0))
if ((Gb[c[(c[a >> 2] | 0) + 36 >> 2] & 127](a) | 0) == -1) {
c[b >> 2] = 0;
a = 0;
break
} else {
a = c[b >> 2] | 0;
break
}
} else a = 0;
while (0);
i = (a | 0) == 0;
h = c[e >> 2] | 0;
do
if (h) {
if ((c[h + 12 >> 2] | 0) == (c[h + 16 >> 2] | 0) ? (Gb[c[(c[h >> 2] | 0) + 36 >> 2] & 127](h) | 0) == -1 : 0) {
c[e >> 2] = 0;
a = 11;
break
}
if (i) a = 13;
else a = 12
} else a = 11;
while (0);
if ((a | 0) == 11)
if (i) a = 12;
else {
h = 0;
a = 13
}
a: do
if ((a | 0) == 12) c[f >> 2] = c[f >> 2] | 6;
else
if ((a | 0) == 13) {
j = c[b >> 2] | 0;
i = c[j + 12 >> 2] | 0;
if ((i | 0) == (c[j + 16 >> 2] | 0)) i = Gb[c[(c[j >> 2] | 0) + 36 >> 2] & 127](j) | 0;
else i = d[i >> 0] | 0;
if ((zb[c[(c[g >> 2] | 0) + 36 >> 2] & 31](g, i & 255, 0) | 0) << 24 >> 24 != 37) {
c[f >> 2] = c[f >> 2] | 4;
break
}
i = c[b >> 2] | 0;
j = i + 12 | 0;
g = c[j >> 2] | 0;
if ((g | 0) == (c[i + 16 >> 2] | 0)) {
Gb[c[(c[i >> 2] | 0) + 40 >> 2] & 127](i) | 0;
i = c[b >> 2] | 0;
if (!i) i = 0;
else a = 21
} else {
c[j >> 2] = g + 1;
a = 21
}
do
if ((a | 0) == 21)
if ((c[i + 12 >> 2] | 0) == (c[i + 16 >> 2] | 0))
if ((Gb[c[(c[i >> 2] | 0) + 36 >> 2] & 127](i) | 0) == -1) {
c[b >> 2] = 0;
i = 0;
break
} else {
i = c[b >> 2] | 0;
break
}
while (0);
b = (i | 0) == 0;
do
if (h) {
if ((c[h + 12 >> 2] | 0) == (c[h + 16 >> 2] | 0) ? (Gb[c[(c[h >> 2] | 0) + 36 >> 2] & 127](h) | 0) == -1 : 0) {
c[e >> 2] = 0;
a = 30;
break
}
if (b) break a
} else a = 30;
while (0);
if ((a | 0) == 30 ? !b : 0) break;
c[f >> 2] = c[f >> 2] | 2
}
while (0);
return
}
function op(a, b, d, e, f, g, h, j) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
k = i;
i = i + 32 | 0;
n = k + 16 | 0;
m = k + 12 | 0;
o = k + 8 | 0;
p = k + 4 | 0;
q = k;
r = gm(e) | 0;
c[o >> 2] = r;
o = Jr(o, 1101592) | 0;
av(r) | 0;
c[f >> 2] = 0;
r = c[b >> 2] | 0;
a: do
if ((h | 0) != (j | 0)) {
b: while (1) {
s = r;
if (r) {
t = c[r + 12 >> 2] | 0;
if ((t | 0) == (c[r + 16 >> 2] | 0)) t = Gb[c[(c[r >> 2] | 0) + 36 >> 2] & 127](r) | 0;
else t = c[t >> 2] | 0;
if ((t | 0) == -1) {
c[b >> 2] = 0;
r = 0;
v = 1;
s = 0
} else v = 0
} else {
r = 0;
v = 1
}
t = c[d >> 2] | 0;
u = t;
do
if (t) {
w = c[t + 12 >> 2] | 0;
if ((w | 0) == (c[t + 16 >> 2] | 0)) w = Gb[c[(c[t >> 2] | 0) + 36 >> 2] & 127](t) | 0;
else w = c[w >> 2] | 0;
if ((w | 0) != -1)
if (v) break;
else {
l = 16;
break b
}
else {
c[d >> 2] = 0;
u = 0;
l = 14;
break
}
} else l = 14;
while (0);
if ((l | 0) == 14) {
l = 0;
if (v) {
l = 16;
break
} else t = 0
}
c: do
if ((zb[c[(c[o >> 2] | 0) + 52 >> 2] & 31](o, c[h >> 2] | 0, 0) | 0) << 24 >> 24 == 37) {
w = h + 4 | 0;
if ((w | 0) == (j | 0)) {
l = 19;
break b
}
t = zb[c[(c[o >> 2] | 0) + 52 >> 2] & 31](o, c[w >> 2] | 0, 0) | 0;
switch (t << 24 >> 24) {
case 48:
case 69:
{
v = h + 8 | 0;
if ((v | 0) == (j | 0)) {
l = 22;
break b
}
h = w;r = zb[c[(c[o >> 2] | 0) + 52 >> 2] & 31](o, c[v >> 2] | 0, 0) | 0;
break
};
default:
{
r = t;t = 0
}
}
w = c[(c[a >> 2] | 0) + 36 >> 2] | 0;
c[p >> 2] = s;
c[q >> 2] = u;
c[m >> 2] = c[p >> 2];
c[n >> 2] = c[q >> 2];
c[b >> 2] = Jb[w & 15](a, m, n, e, f, g, r, t) | 0;
h = h + 8 | 0
} else {
if (!(zb[c[(c[o >> 2] | 0) + 12 >> 2] & 31](o, 8192, c[h >> 2] | 0) | 0)) {
s = r + 12 | 0;
u = c[s >> 2] | 0;
t = r + 16 | 0;
if ((u | 0) == (c[t >> 2] | 0)) u = Gb[c[(c[r >> 2] | 0) + 36 >> 2] & 127](r) | 0;
else u = c[u >> 2] | 0;
w = Mb[c[(c[o >> 2] | 0) + 28 >> 2] & 63](o, u) | 0;
if ((w | 0) != (Mb[c[(c[o >> 2] | 0) + 28 >> 2] & 63](o, c[h >> 2] | 0) | 0)) {
l = 59;
break b
}
u = c[s >> 2] | 0;
if ((u | 0) == (c[t >> 2] | 0)) Gb[c[(c[r >> 2] | 0) + 40 >> 2] & 127](r) | 0;
else c[s >> 2] = u + 4;
h = h + 4 | 0;
break
}
do {
h = h + 4 | 0;
if ((h | 0) == (j | 0)) {
h = j;
break
}
} while (zb[c[(c[o >> 2] | 0) + 12 >> 2] & 31](o, 8192, c[h >> 2] | 0) | 0);
s = t;
u = t;
while (1) {
if (r) {
t = c[r + 12 >> 2] | 0;
if ((t | 0) == (c[r + 16 >> 2] | 0)) t = Gb[c[(c[r >> 2] | 0) + 36 >> 2] & 127](r) | 0;
else t = c[t >> 2] | 0;
if ((t | 0) == -1) {
c[b >> 2] = 0;
t = 1;
r = 0
} else t = 0
} else {
t = 1;
r = 0
}
do
if (u) {
v = c[u + 12 >> 2] | 0;
if ((v | 0) == (c[u + 16 >> 2] | 0)) u = Gb[c[(c[u >> 2] | 0) + 36 >> 2] & 127](u) | 0;
else u = c[v >> 2] | 0;
if ((u | 0) != -1)
if (t ^ (s | 0) == 0) {
t = s;
u = s;
break
} else break c;
else {
c[d >> 2] = 0;
s = 0;
l = 42;
break
}
} else l = 42;
while (0);
if ((l | 0) == 42) {
l = 0;
if (t) break c;
else {
t = s;
u = 0
}
}
s = r + 12 | 0;
w = c[s >> 2] | 0;
v = r + 16 | 0;
if ((w | 0) == (c[v >> 2] | 0)) w = Gb[c[(c[r >> 2] | 0) + 36 >> 2] & 127](r) | 0;
else w = c[w >> 2] | 0;
if (!(zb[c[(c[o >> 2] | 0) + 12 >> 2] & 31](o, 8192, w) | 0)) break c;
w = c[s >> 2] | 0;
if ((w | 0) == (c[v >> 2] | 0)) {
Gb[c[(c[r >> 2] | 0) + 40 >> 2] & 127](r) | 0;
s = t;
continue
} else {
c[s >> 2] = w + 4;
s = t;
continue
}
}
}
while (0);
r = c[b >> 2] | 0;
if (!((h | 0) != (j | 0) & (c[f >> 2] | 0) == 0)) break a
}
if ((l | 0) == 16) {
c[f >> 2] = 4;
break
} else if ((l | 0) == 19) {
c[f >> 2] = 4;
break
} else if ((l | 0) == 22) {
c[f >> 2] = 4;
break
} else if ((l | 0) == 59) {
c[f >> 2] = 4;
r = c[b >> 2] | 0;
break
}
}
while (0);
if (r) {
j = c[r + 12 >> 2] | 0;
if ((j | 0) == (c[r + 16 >> 2] | 0)) j = Gb[c[(c[r >> 2] | 0) + 36 >> 2] & 127](r) | 0;
else j = c[j >> 2] | 0;
if ((j | 0) == -1) {
c[b >> 2] = 0;
r = 0;
b = 1
} else b = 0
} else {
r = 0;
b = 1
}
m = c[d >> 2] | 0;
do
if (m) {
j = c[m + 12 >> 2] | 0;
if ((j | 0) == (c[m + 16 >> 2] | 0)) j = Gb[c[(c[m >> 2] | 0) + 36 >> 2] & 127](m) | 0;
else j = c[j >> 2] | 0;
if ((j | 0) != -1)
if (b) break;
else {
l = 74;
break
}
else {
c[d >> 2] = 0;
l = 72;
break
}
} else l = 72;
while (0);
if ((l | 0) == 72 ? b : 0) l = 74;
if ((l | 0) == 74) c[f >> 2] = c[f >> 2] | 2;
i = k;
return r | 0
}
function pp(a) {
a = a | 0;
return
}
function qp(a) {
a = a | 0;
Ph(a);
return
}
function rp(a) {
a = a | 0;
return 2
}
function sp(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = op(a, k, j, e, f, g, 1102168, 1102200) | 0;
i = h;
return b | 0
}
function tp(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 j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0;
j = i;
i = i + 16 | 0;
k = j + 12 | 0;
l = j + 8 | 0;
n = j + 4 | 0;
m = j;
q = b + 8 | 0;
q = Gb[c[(c[q >> 2] | 0) + 20 >> 2] & 127](q) | 0;
c[n >> 2] = c[d >> 2];
c[m >> 2] = c[e >> 2];
o = a[q >> 0] | 0;
p = (o & 1) == 0;
d = q + 4 | 0;
e = p ? d : c[q + 8 >> 2] | 0;
d = e + ((p ? (o & 255) >>> 1 : c[d >> 2] | 0) << 2) | 0;
c[l >> 2] = c[n >> 2];
c[k >> 2] = c[m >> 2];
d = op(b, l, k, f, g, h, e, d) | 0;
i = j;
return d | 0
}
function up(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 8 | 0;
m = h + 4 | 0;
k = h;
l = gm(e) | 0;
c[m >> 2] = l;
e = Jr(m, 1101592) | 0;
av(l) | 0;
g = g + 24 | 0;
c[k >> 2] = c[d >> 2];
c[j >> 2] = c[k >> 2];
vp(a, g, b, j, f, e);
i = h;
return c[b >> 2] | 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,
j = 0,
k = 0;
h = i;
i = i + 16 | 0;
j = h + 4 | 0;
k = h;
a = a + 8 | 0;
a = Gb[c[c[a >> 2] >> 2] & 127](a) | 0;
c[k >> 2] = c[e >> 2];
e = a + 168 | 0;
c[j >> 2] = c[k >> 2];
f = (Gt(d, j, a, e, g, f, 0) | 0) - a | 0;
if ((f | 0) < 168) c[b >> 2] = ((f | 0) / 12 | 0 | 0) % 7 | 0;
i = h;
return
}
function wp(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 8 | 0;
m = h + 4 | 0;
k = h;
l = gm(e) | 0;
c[m >> 2] = l;
e = Jr(m, 1101592) | 0;
av(l) | 0;
g = g + 16 | 0;
c[k >> 2] = c[d >> 2];
c[j >> 2] = c[k >> 2];
xp(a, g, b, j, f, e);
i = h;
return c[b >> 2] | 0
}
function xp(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,
j = 0,
k = 0;
h = i;
i = i + 16 | 0;
j = h + 4 | 0;
k = h;
a = a + 8 | 0;
a = Gb[c[(c[a >> 2] | 0) + 4 >> 2] & 127](a) | 0;
c[k >> 2] = c[e >> 2];
e = a + 288 | 0;
c[j >> 2] = c[k >> 2];
f = (Gt(d, j, a, e, g, f, 0) | 0) - a | 0;
if ((f | 0) < 288) c[b >> 2] = ((f | 0) / 12 | 0 | 0) % 12 | 0;
i = h;
return
}
function yp(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 8 | 0;
m = h + 4 | 0;
k = h;
l = gm(e) | 0;
c[m >> 2] = l;
e = Jr(m, 1101592) | 0;
av(l) | 0;
g = g + 20 | 0;
c[k >> 2] = c[d >> 2];
c[j >> 2] = c[k >> 2];
zp(a, g, b, j, f, e);
i = h;
return c[b >> 2] | 0
}
function zp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 4) | 0;
if (!(c[f >> 2] & 4)) {
if ((g | 0) < 69) f = g + 2e3 | 0;
else f = (g + -69 | 0) >>> 0 < 31 ? g + 1900 | 0 : g;
c[b >> 2] = f + -1900
}
i = a;
return
}
function Ap(b, d, e, f, g, h, j, k) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
var 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,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
O = 0,
P = 0,
Q = 0,
R = 0,
S = 0,
T = 0,
U = 0;
k = i;
i = i + 144 | 0;
O = k + 132 | 0;
R = k + 116 | 0;
N = k + 128 | 0;
P = k + 124 | 0;
Q = k + 120 | 0;
T = k + 112 | 0;
S = k + 108 | 0;
m = k + 104 | 0;
o = k + 100 | 0;
n = k + 96 | 0;
q = k + 92 | 0;
p = k + 88 | 0;
r = k + 84 | 0;
s = k + 80 | 0;
t = k + 76 | 0;
u = k + 72 | 0;
v = k + 68 | 0;
w = k + 64 | 0;
x = k + 60 | 0;
z = k + 56 | 0;
y = k + 52 | 0;
B = k + 48 | 0;
A = k + 44 | 0;
C = k + 40 | 0;
E = k + 36 | 0;
D = k + 32 | 0;
F = k + 28 | 0;
H = k + 24 | 0;
G = k + 20 | 0;
J = k + 16 | 0;
I = k + 12 | 0;
K = k + 8 | 0;
L = k + 4 | 0;
M = k;
c[g >> 2] = 0;
U = gm(f) | 0;
c[N >> 2] = U;
N = Jr(N, 1101592) | 0;
av(U) | 0;
do switch (j << 24 >> 24 | 0) {
case 65:
case 97:
{
c[P >> 2] = c[e >> 2];c[O >> 2] = c[P >> 2];vp(b, h + 24 | 0, d, O, g, N);l = 26;
break
};
case 104:
case 66:
case 98:
{
c[Q >> 2] = c[e >> 2];c[O >> 2] = c[Q >> 2];xp(b, h + 16 | 0, d, O, g, N);l = 26;
break
};
case 99:
{
U = b + 8 | 0;U = Gb[c[(c[U >> 2] | 0) + 12 >> 2] & 127](U) | 0;c[T >> 2] = c[d >> 2];c[S >> 2] = c[e >> 2];Q = a[U >> 0] | 0;P = (Q & 1) == 0;l = U + 4 | 0;U = P ? l : c[U + 8 >> 2] | 0;l = U + ((P ? (Q & 255) >>> 1 : c[l >> 2] | 0) << 2) | 0;c[R >> 2] = c[T >> 2];c[O >> 2] = c[S >> 2];c[d >> 2] = op(b, R, O, f, g, h, U, l) | 0;l = 26;
break
};
case 101:
case 100:
{
c[m >> 2] = c[e >> 2];c[O >> 2] = c[m >> 2];Bp(b, h + 12 | 0, d, O, g, N);l = 26;
break
};
case 68:
{
c[o >> 2] = c[d >> 2];c[n >> 2] = c[e >> 2];c[R >> 2] = c[o >> 2];c[O >> 2] = c[n >> 2];c[d >> 2] = op(b, R, O, f, g, h, 1102200, 1102232) | 0;l = 26;
break
};
case 70:
{
c[q >> 2] = c[d >> 2];c[p >> 2] = c[e >> 2];c[R >> 2] = c[q >> 2];c[O >> 2] = c[p >> 2];c[d >> 2] = op(b, R, O, f, g, h, 1102232, 1102264) | 0;l = 26;
break
};
case 72:
{
c[r >> 2] = c[e >> 2];c[O >> 2] = c[r >> 2];Cp(b, h + 8 | 0, d, O, g, N);l = 26;
break
};
case 73:
{
c[s >> 2] = c[e >> 2];c[O >> 2] = c[s >> 2];Dp(b, h + 8 | 0, d, O, g, N);l = 26;
break
};
case 106:
{
c[t >> 2] = c[e >> 2];c[O >> 2] = c[t >> 2];Ep(b, h + 28 | 0, d, O, g, N);l = 26;
break
};
case 109:
{
c[u >> 2] = c[e >> 2];c[O >> 2] = c[u >> 2];Fp(b, h + 16 | 0, d, O, g, N);l = 26;
break
};
case 77:
{
c[v >> 2] = c[e >> 2];c[O >> 2] = c[v >> 2];Gp(b, h + 4 | 0, d, O, g, N);l = 26;
break
};
case 116:
case 110:
{
c[w >> 2] = c[e >> 2];c[O >> 2] = c[w >> 2];Hp(b, d, O, g, N);l = 26;
break
};
case 112:
{
c[x >> 2] = c[e >> 2];c[O >> 2] = c[x >> 2];Ip(b, h + 8 | 0, d, O, g, N);l = 26;
break
};
case 114:
{
c[z >> 2] = c[d >> 2];c[y >> 2] = c[e >> 2];c[R >> 2] = c[z >> 2];c[O >> 2] = c[y >> 2];c[d >> 2] = op(b, R, O, f, g, h, 1102264, 1102308) | 0;l = 26;
break
};
case 82:
{
c[B >> 2] = c[d >> 2];c[A >> 2] = c[e >> 2];c[R >> 2] = c[B >> 2];c[O >> 2] = c[A >> 2];c[d >> 2] = op(b, R, O, f, g, h, 1102308, 1102328) | 0;l = 26;
break
};
case 83:
{
c[C >> 2] = c[e >> 2];c[O >> 2] = c[C >> 2];Jp(b, h, d, O, g, N);l = 26;
break
};
case 84:
{
c[E >> 2] = c[d >> 2];c[D >> 2] = c[e >> 2];c[R >> 2] = c[E >> 2];c[O >> 2] = c[D >> 2];c[d >> 2] = op(b, R, O, f, g, h, 1102328, 1102360) | 0;l = 26;
break
};
case 119:
{
c[F >> 2] = c[e >> 2];c[O >> 2] = c[F >> 2];Kp(b, h + 24 | 0, d, O, g, N);l = 26;
break
};
case 120:
{
U = c[(c[b >> 2] | 0) + 20 >> 2] | 0;c[H >> 2] = c[d >> 2];c[G >> 2] = c[e >> 2];c[R >> 2] = c[H >> 2];c[O >> 2] = c[G >> 2];d = Eb[U & 63](b, R, O, f, g, h) | 0;
break
};
case 88:
{
U = b + 8 | 0;U = Gb[c[(c[U >> 2] | 0) + 24 >> 2] & 127](U) | 0;c[J >> 2] = c[d >> 2];c[I >> 2] = c[e >> 2];T = a[U >> 0] | 0;S = (T & 1) == 0;l = U + 4 | 0;U = S ? l : c[U + 8 >> 2] | 0;l = U + ((S ? (T & 255) >>> 1 : c[l >> 2] | 0) << 2) | 0;c[R >> 2] = c[J >> 2];c[O >> 2] = c[I >> 2];c[d >> 2] = op(b, R, O, f, g, h, U, l) | 0;l = 26;
break
};
case 121:
{
c[K >> 2] = c[e >> 2];c[O >> 2] = c[K >> 2];zp(b, h + 20 | 0, d, O, g, N);l = 26;
break
};
case 89:
{
c[L >> 2] = c[e >> 2];c[O >> 2] = c[L >> 2];Lp(b, h + 20 | 0, d, O, g, N);l = 26;
break
};
case 37:
{
c[M >> 2] = c[e >> 2];c[O >> 2] = c[M >> 2];Mp(b, d, O, g, N);l = 26;
break
};
default:
{
c[g >> 2] = c[g >> 2] | 4;l = 26
}
}
while (0);
if ((l | 0) == 26) d = c[d >> 2] | 0;
i = k;
return d | 0
}
function Bp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g + -1 | 0) >>> 0 < 31 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 24 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function Dp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g + -1 | 0) >>> 0 < 12 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function Ep(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 3) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 366 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function Fp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 13 & (d & 4 | 0) == 0) c[b >> 2] = g + -1;
else c[f >> 2] = d | 4;
i = a;
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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 60 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function Hp(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;
a: while (1) {
a = c[b >> 2] | 0;
do
if (a) {
h = c[a + 12 >> 2] | 0;
if ((h | 0) == (c[a + 16 >> 2] | 0)) a = Gb[c[(c[a >> 2] | 0) + 36 >> 2] & 127](a) | 0;
else a = c[h >> 2] | 0;
if ((a | 0) == -1) {
c[b >> 2] = 0;
a = 1;
break
} else {
a = (c[b >> 2] | 0) == 0;
break
}
} else a = 1;
while (0);
h = c[d >> 2] | 0;
do
if (h) {
i = c[h + 12 >> 2] | 0;
if ((i | 0) == (c[h + 16 >> 2] | 0)) i = Gb[c[(c[h >> 2] | 0) + 36 >> 2] & 127](h) | 0;
else i = c[i >> 2] | 0;
if ((i | 0) != -1)
if (a) break;
else {
f = h;
break a
}
else {
c[d >> 2] = 0;
g = 15;
break
}
} else g = 15;
while (0);
if ((g | 0) == 15) {
g = 0;
if (a) {
f = 0;
break
} else h = 0
}
a = c[b >> 2] | 0;
i = c[a + 12 >> 2] | 0;
if ((i | 0) == (c[a + 16 >> 2] | 0)) a = Gb[c[(c[a >> 2] | 0) + 36 >> 2] & 127](a) | 0;
else a = c[i >> 2] | 0;
if (!(zb[c[(c[f >> 2] | 0) + 12 >> 2] & 31](f, 8192, a) | 0)) {
f = h;
break
}
a = c[b >> 2] | 0;
h = a + 12 | 0;
i = c[h >> 2] | 0;
if ((i | 0) == (c[a + 16 >> 2] | 0)) {
Gb[c[(c[a >> 2] | 0) + 40 >> 2] & 127](a) | 0;
continue
} else {
c[h >> 2] = i + 4;
continue
}
}
a = c[b >> 2] | 0;
do
if (a) {
h = c[a + 12 >> 2] | 0;
if ((h | 0) == (c[a + 16 >> 2] | 0)) a = Gb[c[(c[a >> 2] | 0) + 36 >> 2] & 127](a) | 0;
else a = c[h >> 2] | 0;
if ((a | 0) == -1) {
c[b >> 2] = 0;
b = 1;
break
} else {
b = (c[b >> 2] | 0) == 0;
break
}
} else b = 1;
while (0);
do
if (f) {
a = c[f + 12 >> 2] | 0;
if ((a | 0) == (c[f + 16 >> 2] | 0)) f = Gb[c[(c[f >> 2] | 0) + 36 >> 2] & 127](f) | 0;
else f = c[a >> 2] | 0;
if ((f | 0) != -1)
if (b) break;
else {
g = 39;
break
}
else {
c[d >> 2] = 0;
g = 37;
break
}
} else g = 37;
while (0);
if ((g | 0) == 37 ? b : 0) g = 39;
if ((g | 0) == 39) c[e >> 2] = c[e >> 2] | 2;
return
}
function Ip(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 j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
j = i;
i = i + 16 | 0;
k = j + 4 | 0;
l = j;
b = b + 8 | 0;
b = Gb[c[(c[b >> 2] | 0) + 8 >> 2] & 127](b) | 0;
m = a[b >> 0] | 0;
if (!(m & 1)) m = (m & 255) >>> 1;
else m = c[b + 4 >> 2] | 0;
n = a[b + 12 >> 0] | 0;
if (!(n & 1)) n = (n & 255) >>> 1;
else n = c[b + 16 >> 2] | 0;
do
if ((m | 0) != (0 - n | 0)) {
c[l >> 2] = c[f >> 2];
f = b + 24 | 0;
c[k >> 2] = c[l >> 2];
f = Gt(e, k, b, f, h, g, 0) | 0;
g = c[d >> 2] | 0;
if ((f | 0) == (b | 0) & (g | 0) == 12) {
c[d >> 2] = 0;
break
}
if ((g | 0) < 12 & (f - b | 0) == 12) c[d >> 2] = g + 12
} else c[g >> 2] = c[g >> 2] | 4;
while (0);
i = j;
return
}
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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 2) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 61 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function Kp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 1) | 0;
d = c[f >> 2] | 0;
if ((g | 0) < 7 & (d & 4 | 0) == 0) c[b >> 2] = g;
else c[f >> 2] = d | 4;
i = a;
return
}
function Lp(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,
j = 0;
a = i;
i = i + 16 | 0;
h = a + 4 | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[h >> 2] = c[j >> 2];
g = Ut(d, h, f, g, 4) | 0;
if (!(c[f >> 2] & 4)) c[b >> 2] = g + -1900;
i = a;
return
}
function Mp(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[b >> 2] | 0;
do
if (g) {
a = c[g + 12 >> 2] | 0;
if ((a | 0) == (c[g + 16 >> 2] | 0)) a = Gb[c[(c[g >> 2] | 0) + 36 >> 2] & 127](g) | 0;
else a = c[a >> 2] | 0;
if ((a | 0) == -1) {
c[b >> 2] = 0;
h = 1;
break
} else {
h = (c[b >> 2] | 0) == 0;
break
}
} else h = 1;
while (0);
g = c[d >> 2] | 0;
do
if (g) {
a = c[g + 12 >> 2] | 0;
if ((a | 0) == (c[g + 16 >> 2] | 0)) a = Gb[c[(c[g >> 2] | 0) + 36 >> 2] & 127](g) | 0;
else a = c[a >> 2] | 0;
if ((a | 0) != -1)
if (h) {
a = 17;
break
} else {
a = 16;
break
}
else {
c[d >> 2] = 0;
a = 14;
break
}
} else a = 14;
while (0);
if ((a | 0) == 14)
if (h) a = 16;
else {
g = 0;
a = 17
}
a: do
if ((a | 0) == 16) c[e >> 2] = c[e >> 2] | 6;
else
if ((a | 0) == 17) {
i = c[b >> 2] | 0;
h = c[i + 12 >> 2] | 0;
if ((h | 0) == (c[i + 16 >> 2] | 0)) h = Gb[c[(c[i >> 2] | 0) + 36 >> 2] & 127](i) | 0;
else h = c[h >> 2] | 0;
if ((zb[c[(c[f >> 2] | 0) + 52 >> 2] & 31](f, h, 0) | 0) << 24 >> 24 != 37) {
c[e >> 2] = c[e >> 2] | 4;
break
}
h = c[b >> 2] | 0;
f = h + 12 | 0;
i = c[f >> 2] | 0;
if ((i | 0) == (c[h + 16 >> 2] | 0)) {
Gb[c[(c[h >> 2] | 0) + 40 >> 2] & 127](h) | 0;
h = c[b >> 2] | 0;
if (!h) b = 1;
else a = 25
} else {
c[f >> 2] = i + 4;
a = 25
}
do
if ((a | 0) == 25) {
f = c[h + 12 >> 2] | 0;
if ((f | 0) == (c[h + 16 >> 2] | 0)) f = Gb[c[(c[h >> 2] | 0) + 36 >> 2] & 127](h) | 0;
else f = c[f >> 2] | 0;
if ((f | 0) == -1) {
c[b >> 2] = 0;
b = 1;
break
} else {
b = (c[b >> 2] | 0) == 0;
break
}
}
while (0);
do
if (g) {
f = c[g + 12 >> 2] | 0;
if ((f | 0) == (c[g + 16 >> 2] | 0)) g = Gb[c[(c[g >> 2] | 0) + 36 >> 2] & 127](g) | 0;
else g = c[f >> 2] | 0;
if ((g | 0) != -1)
if (b) break a;
else break;
else {
c[d >> 2] = 0;
a = 37;
break
}
} else a = 37;
while (0);
if ((a | 0) == 37 ? !b : 0) break;
c[e >> 2] = c[e >> 2] | 2
}
while (0);
return
}
function Np(a) {
a = a | 0;
Op(a + 8 | 0);
return
}
function Op(a) {
a = a | 0;
var b = 0;
b = c[a >> 2] | 0;
if ((b | 0) != (Wn() | 0)) Vi(c[a >> 2] | 0);
return
}
function Pp(a) {
a = a | 0;
Op(a + 8 | 0);
Ph(a);
return
}
function Qp(b, d, e, f, g, h, j) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var k = 0;
e = i;
i = i + 112 | 0;
f = e + 4 | 0;
k = e;
c[k >> 2] = f + 100;
Rp(b + 8 | 0, f, k, g, h, j);
j = c[k >> 2] | 0;
g = c[d >> 2] | 0;
if ((f | 0) != (j | 0))
do {
b = a[f >> 0] | 0;
do
if (g) {
d = g + 24 | 0;
h = c[d >> 2] | 0;
if ((h | 0) == (c[g + 28 >> 2] | 0)) {
k = (Mb[c[(c[g >> 2] | 0) + 52 >> 2] & 63](g, b & 255) | 0) == -1;
g = k ? 0 : g;
break
} else {
c[d >> 2] = h + 1;
a[h >> 0] = b;
break
}
} else g = 0;
while (0);
f = f + 1 | 0
} while ((f | 0) != (j | 0));
i = e;
return g | 0
}
function Rp(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 j = 0,
k = 0,
l = 0,
m = 0;
j = i;
i = i + 16 | 0;
k = j;
a[k >> 0] = 37;
m = k + 1 | 0;
a[m >> 0] = g;
l = k + 2 | 0;
a[l >> 0] = h;
a[k + 3 >> 0] = 0;
if (h << 24 >> 24) {
a[m >> 0] = h;
a[l >> 0] = g
}
c[e >> 2] = d + (La(d | 0, (c[e >> 2] | 0) - d | 0, k | 0, f | 0, c[b >> 2] | 0) | 0);
i = j;
return
}
function Sp(a) {
a = a | 0;
Op(a + 8 | 0);
return
}
function Tp(a) {
a = a | 0;
Op(a + 8 | 0);
Ph(a);
return
}
function Up(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 j = 0;
d = i;
i = i + 416 | 0;
e = d + 8 | 0;
j = d;
c[j >> 2] = e + 400;
Vp(a + 8 | 0, e, j, f, g, h);
h = c[j >> 2] | 0;
g = c[b >> 2] | 0;
if ((e | 0) == (h | 0)) e = g;
else {
b = e;
e = g;
do {
a = c[b >> 2] | 0;
if (!e) e = 0;
else {
g = e + 24 | 0;
f = c[g >> 2] | 0;
if ((f | 0) == (c[e + 28 >> 2] | 0)) a = Mb[c[(c[e >> 2] | 0) + 52 >> 2] & 63](e, a) | 0;
else {
c[g >> 2] = f + 4;
c[f >> 2] = a
}
e = (a | 0) == -1 ? 0 : e
}
b = b + 4 | 0
} while ((b | 0) != (h | 0))
}
i = d;
return e | 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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 128 | 0;
l = h + 16 | 0;
m = h + 12 | 0;
j = h;
k = h + 8 | 0;
c[m >> 2] = l + 100;
Rp(a, l, m, e, f, g);
e = j;
c[e >> 2] = 0;
c[e + 4 >> 2] = 0;
c[k >> 2] = l;
e = (c[d >> 2] | 0) - b >> 2;
g = Zi(c[a >> 2] | 0) | 0;
a = lj(b, k, e, j) | 0;
if (g) Zi(g) | 0;
c[d >> 2] = b + (a << 2);
i = h;
return
}
function Wp(a) {
a = a | 0;
return
}
function Xp(a) {
a = a | 0;
Ph(a);
return
}
function Yp(a) {
a = a | 0;
return 127
}
function Zp(a) {
a = a | 0;
return 127
}
function _p(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function $p(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function aq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function bq(a, b) {
a = a | 0;
b = b | 0;
ql(a, 1, 45);
return
}
function cq(a) {
a = a | 0;
return 0
}
function dq(b, c) {
b = b | 0;
c = c | 0;
a[b >> 0] = 2;
a[b + 1 >> 0] = 3;
a[b + 2 >> 0] = 0;
a[b + 3 >> 0] = 4;
return
}
function eq(b, c) {
b = b | 0;
c = c | 0;
a[b >> 0] = 2;
a[b + 1 >> 0] = 3;
a[b + 2 >> 0] = 0;
a[b + 3 >> 0] = 4;
return
}
function fq(a) {
a = a | 0;
return
}
function gq(a) {
a = a | 0;
Ph(a);
return
}
function hq(a) {
a = a | 0;
return 127
}
function iq(a) {
a = a | 0;
return 127
}
function jq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function kq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function lq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function mq(a, b) {
a = a | 0;
b = b | 0;
ql(a, 1, 45);
return
}
function nq(a) {
a = a | 0;
return 0
}
function oq(b, c) {
b = b | 0;
c = c | 0;
a[b >> 0] = 2;
a[b + 1 >> 0] = 3;
a[b + 2 >> 0] = 0;
a[b + 3 >> 0] = 4;
return
}
function pq(b, c) {
b = b | 0;
c = c | 0;
a[b >> 0] = 2;
a[b + 1 >> 0] = 3;
a[b + 2 >> 0] = 0;
a[b + 3 >> 0] = 4;
return
}
function qq(a) {
a = a | 0;
return
}
function rq(a) {
a = a | 0;
Ph(a);
return
}
function sq(a) {
a = a | 0;
return 2147483647
}
function tq(a) {
a = a | 0;
return 2147483647
}
function uq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function vq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function wq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function xq(a, b) {
a = a | 0;
b = b | 0;
Ll(a, 1, 45);
return
}
function yq(a) {
a = a | 0;
return 0
}
function zq(b, c) {
b = b | 0;
c = c | 0;
a[b >> 0] = 2;
a[b + 1 >> 0] = 3;
a[b + 2 >> 0] = 0;
a[b + 3 >> 0] = 4;
return
}
function Aq(b, c) {
b = b | 0;
c = c | 0;
a[b >> 0] = 2;
a[b + 1 >> 0] = 3;
a[b + 2 >> 0] = 0;
a[b + 3 >> 0] = 4;
return
}
function Bq(a) {
a = a | 0;
return
}
function Cq(a) {
a = a | 0;
Ph(a);
return
}
function Dq(a) {
a = a | 0;
return 2147483647
}
function Eq(a) {
a = a | 0;
return 2147483647
}
function Fq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function Gq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function Hq(a, b) {
a = a | 0;
b = b | 0;
c[a >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
return
}
function Iq(a, b) {
a = a | 0;
b = b | 0;
Ll(a, 1, 45);
return
}
function Jq(a) {
a = a | 0;
return 0
}
function Kq(b, c) {
b = b | 0;
c = c | 0;
a[b >> 0] = 2;
a[b + 1 >> 0] = 3;
a[b + 2 >> 0] = 0;
a[b + 3 >> 0] = 4;
return
}
function Lq(b, c) {
b = b | 0;
c = c | 0;
a[b >> 0] = 2;
a[b + 1 >> 0] = 3;
a[b + 2 >> 0] = 0;
a[b + 3 >> 0] = 4;
return
}
function Mq(a) {
a = a | 0;
return
}
function Nq(a) {
a = a | 0;
Ph(a);
return
}
function Oq(b, d, e, f, g, h, j) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
l = i;
i = i + 240 | 0;
q = l + 24 | 0;
p = l;
E = l + 136 | 0;
b = l + 16 | 0;
r = l + 12 | 0;
m = l + 8 | 0;
t = l + 134 | 0;
B = l + 4 | 0;
s = l + 124 | 0;
c[b >> 2] = E;
k = b + 4 | 0;
c[k >> 2] = 160;
E = E + 100 | 0;
c[m >> 2] = gm(g) | 0;
u = Jr(m, 1101600) | 0;
a[t >> 0] = 0;
c[B >> 2] = c[e >> 2];
C = c[g + 4 >> 2] | 0;
c[q >> 2] = c[B >> 2];
if (Qq(d, q, f, m, C, h, t, u, b, r, E) | 0) {
Kb[c[(c[u >> 2] | 0) + 32 >> 2] & 7](u, 1180561, 1180571, s) | 0;
u = c[r >> 2] | 0;
g = c[b >> 2] | 0;
f = u - g | 0;
if ((f | 0) > 98) {
f = zk(f + 2 | 0) | 0;
if (!f) ui();
else {
o = f;
D = f
}
} else {
o = 0;
D = q
}
if (a[t >> 0] | 0) {
a[D >> 0] = 45;
D = D + 1 | 0
}
t = s + 10 | 0;
f = s;
if (g >>> 0 < u >>> 0) {
x = s + 1 | 0;
y = x + 1 | 0;
B = y + 1 | 0;
C = B + 1 | 0;
w = C + 1 | 0;
z = w + 1 | 0;
v = z + 1 | 0;
u = v + 1 | 0;
A = u + 1 | 0;
do {
E = a[g >> 0] | 0;
if ((a[s >> 0] | 0) != E << 24 >> 24)
if ((a[x >> 0] | 0) != E << 24 >> 24)
if ((a[y >> 0] | 0) != E << 24 >> 24)
if ((a[B >> 0] | 0) != E << 24 >> 24)
if ((a[C >> 0] | 0) != E << 24 >> 24)
if ((a[w >> 0] | 0) != E << 24 >> 24)
if ((a[z >> 0] | 0) != E << 24 >> 24)
if ((a[v >> 0] | 0) != E << 24 >> 24)
if ((a[u >> 0] | 0) == E << 24 >> 24) E = u;
else E = (a[A >> 0] | 0) == E << 24 >> 24 ? A : t;
else E = v;
else E = z;
else E = w;
else E = C;
else E = B;
else E = y;
else E = x;
else E = s;
a[D >> 0] = a[1180561 + (E - f) >> 0] | 0;
g = g + 1 | 0;
D = D + 1 | 0
} while (g >>> 0 < (c[r >> 2] | 0) >>> 0)
}
a[D >> 0] = 0;
c[p >> 2] = j;
Gj(q, 1180572, p) | 0;
if (o) Ak(o)
}
j = c[d >> 2] | 0;
do
if (j) {
if ((c[j + 12 >> 2] | 0) == (c[j + 16 >> 2] | 0))
if ((Gb[c[(c[j >> 2] | 0) + 36 >> 2] & 127](j) | 0) == -1) {
c[d >> 2] = 0;
j = 0;
break
} else {
j = c[d >> 2] | 0;
break
}
} else j = 0;
while (0);
j = (j | 0) == 0;
o = c[e >> 2] | 0;
do
if (o) {
if ((c[o + 12 >> 2] | 0) == (c[o + 16 >> 2] | 0) ? (Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](o) | 0) == -1 : 0) {
c[e >> 2] = 0;
n = 25;
break
}
if (!j) n = 26
} else n = 25;
while (0);
if ((n | 0) == 25 ? j : 0) n = 26;
if ((n | 0) == 26) c[h >> 2] = c[h >> 2] | 2;
d = c[d >> 2] | 0;
av(c[m >> 2] | 0) | 0;
h = c[b >> 2] | 0;
c[b >> 2] = 0;
if (h) Cb[c[k >> 2] & 255](h);
i = l;
return d | 0
}
function Pq(a) {
a = a | 0;
return
}
function Qq(e, f, g, h, j, k, l, m, n, o, p) {
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
l = l | 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;
r = i;
i = i + 512 | 0;
F = r + 88 | 0;
U = r + 96 | 0;
q = r + 80 | 0;
C = r + 72 | 0;
D = r + 68 | 0;
E = r + 500 | 0;
B = r + 497 | 0;
A = r + 496 | 0;
w = r + 56 | 0;
v = r + 44 | 0;
t = r + 32 | 0;
s = r + 20 | 0;
u = r + 8 | 0;
z = r + 4 | 0;
x = r;
c[F >> 2] = p;
c[q >> 2] = U;
p = q + 4 | 0;
c[p >> 2] = 160;
c[C >> 2] = U;
c[D >> 2] = U + 400;
c[w >> 2] = 0;
c[w + 4 >> 2] = 0;
c[w + 8 >> 2] = 0;
c[v >> 2] = 0;
c[v + 4 >> 2] = 0;
c[v + 8 >> 2] = 0;
c[t >> 2] = 0;
c[t + 4 >> 2] = 0;
c[t + 8 >> 2] = 0;
c[s >> 2] = 0;
c[s + 4 >> 2] = 0;
c[s + 8 >> 2] = 0;
c[u >> 2] = 0;
c[u + 4 >> 2] = 0;
c[u + 8 >> 2] = 0;
Tq(g, h, E, B, A, w, v, t, s, z);
c[o >> 2] = c[n >> 2];
J = m + 8 | 0;
h = t + 4 | 0;
I = s + 4 | 0;
G = s + 8 | 0;
H = s + 1 | 0;
g = t + 8 | 0;
m = t + 1 | 0;
K = (j & 512 | 0) != 0;
M = v + 8 | 0;
j = v + 1 | 0;
S = v + 4 | 0;
T = u + 4 | 0;
O = u + 8 | 0;
P = u + 1 | 0;
L = E + 3 | 0;
N = w + 4 | 0;
R = 0;
Q = 0;
a: while (1) {
V = c[e >> 2] | 0;
do
if (V) {
if ((c[V + 12 >> 2] | 0) == (c[V + 16 >> 2] | 0))
if ((Gb[c[(c[V >> 2] | 0) + 36 >> 2] & 127](V) | 0) == -1) {
c[e >> 2] = 0;
V = 0;
break
} else {
V = c[e >> 2] | 0;
break
}
} else V = 0;
while (0);
W = (V | 0) == 0;
V = c[f >> 2] | 0;
do
if (V) {
if ((c[V + 12 >> 2] | 0) != (c[V + 16 >> 2] | 0))
if (W) break;
else {
y = 202;
break a
}
if ((Gb[c[(c[V >> 2] | 0) + 36 >> 2] & 127](V) | 0) != -1)
if (W) break;
else {
y = 202;
break a
}
else {
c[f >> 2] = 0;
y = 12;
break
}
} else y = 12;
while (0);
if ((y | 0) == 12) {
y = 0;
if (W) {
y = 202;
break
} else V = 0
}
b: do switch (a[E + R >> 0] | 0) {
case 1:
{
if ((R | 0) != 3) {
y = c[e >> 2] | 0;
W = c[y + 12 >> 2] | 0;
if ((W | 0) == (c[y + 16 >> 2] | 0)) y = Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0;
else y = d[W >> 0] | 0;
if ((y & 255) << 24 >> 24 <= -1) {
y = 26;
break a
}
if (!(b[(c[J >> 2] | 0) + (y << 24 >> 24 << 1) >> 1] & 8192)) {
y = 26;
break a
}
y = c[e >> 2] | 0;
X = y + 12 | 0;
W = c[X >> 2] | 0;
if ((W | 0) == (c[y + 16 >> 2] | 0)) y = Gb[c[(c[y >> 2] | 0) + 40 >> 2] & 127](y) | 0;
else {
c[X >> 2] = W + 1;
y = d[W >> 0] | 0
}
Al(u, y & 255);
X = V;
W = V;
y = 28
}
break
};
case 0:
{
if ((R | 0) != 3) {
X = V;
W = V;
y = 28
}
break
};
case 3:
{
X = a[t >> 0] | 0;V = (X & 1) == 0 ? (X & 255) >>> 1 : c[h >> 2] | 0;_ = a[s >> 0] | 0;_ = (_ & 1) == 0 ? (_ & 255) >>> 1 : c[I >> 2] | 0;
if ((V | 0) != (0 - _ | 0)) {
V = (V | 0) == 0;
Z = c[e >> 2] | 0;
Y = c[Z + 12 >> 2] | 0;
W = c[Z + 16 >> 2] | 0;
$ = (Y | 0) == (W | 0);
if (V | (_ | 0) == 0) {
if ($) W = Gb[c[(c[Z >> 2] | 0) + 36 >> 2] & 127](Z) | 0;
else W = d[Y >> 0] | 0;
W = W & 255;
if (V) {
if (W << 24 >> 24 != (a[((a[s >> 0] & 1) == 0 ? H : c[G >> 2] | 0) >> 0] | 0)) break b;
V = c[e >> 2] | 0;
W = V + 12 | 0;
X = c[W >> 2] | 0;
if ((X | 0) == (c[V + 16 >> 2] | 0)) Gb[c[(c[V >> 2] | 0) + 40 >> 2] & 127](V) | 0;
else c[W >> 2] = X + 1;
a[l >> 0] = 1;
ca = a[s >> 0] | 0;
Q = ((ca & 1) == 0 ? (ca & 255) >>> 1 : c[I >> 2] | 0) >>> 0 > 1 ? s : Q;
break b
}
if (W << 24 >> 24 != (a[((a[t >> 0] & 1) == 0 ? m : c[g >> 2] | 0) >> 0] | 0)) {
a[l >> 0] = 1;
break b
}
V = c[e >> 2] | 0;
W = V + 12 | 0;
X = c[W >> 2] | 0;
if ((X | 0) == (c[V + 16 >> 2] | 0)) Gb[c[(c[V >> 2] | 0) + 40 >> 2] & 127](V) | 0;
else c[W >> 2] = X + 1;
ca = a[t >> 0] | 0;
Q = ((ca & 1) == 0 ? (ca & 255) >>> 1 : c[h >> 2] | 0) >>> 0 > 1 ? t : Q;
break b
}
if ($) {
V = Gb[c[(c[Z >> 2] | 0) + 36 >> 2] & 127](Z) | 0;
W = c[e >> 2] | 0;
X = a[t >> 0] | 0;
Z = W;
Y = c[W + 12 >> 2] | 0;
W = c[W + 16 >> 2] | 0
} else V = d[Y >> 0] | 0;
_ = Z + 12 | 0;
W = (Y | 0) == (W | 0);
if ((V & 255) << 24 >> 24 == (a[((X & 1) == 0 ? m : c[g >> 2] | 0) >> 0] | 0)) {
if (W) Gb[c[(c[Z >> 2] | 0) + 40 >> 2] & 127](Z) | 0;
else c[_ >> 2] = Y + 1;
ca = a[t >> 0] | 0;
Q = ((ca & 1) == 0 ? (ca & 255) >>> 1 : c[h >> 2] | 0) >>> 0 > 1 ? t : Q;
break b
}
if (W) V = Gb[c[(c[Z >> 2] | 0) + 36 >> 2] & 127](Z) | 0;
else V = d[Y >> 0] | 0;
if ((V & 255) << 24 >> 24 != (a[((a[s >> 0] & 1) == 0 ? H : c[G >> 2] | 0) >> 0] | 0)) {
y = 82;
break a
}
V = c[e >> 2] | 0;
W = V + 12 | 0;
X = c[W >> 2] | 0;
if ((X | 0) == (c[V + 16 >> 2] | 0)) Gb[c[(c[V >> 2] | 0) + 40 >> 2] & 127](V) | 0;
else c[W >> 2] = X + 1;
a[l >> 0] = 1;
ca = a[s >> 0] | 0;
Q = ((ca & 1) == 0 ? (ca & 255) >>> 1 : c[I >> 2] | 0) >>> 0 > 1 ? s : Q
}
break
};
case 2:
{
if (!(R >>> 0 < 2 | (Q | 0) != 0) ? !(K | (R | 0) == 2 & (a[L >> 0] | 0) != 0) : 0) {
Q = 0;
break b
}
X = a[v >> 0] | 0;_ = (X & 1) == 0;W = c[M >> 2] | 0;Z = _ ? j : W;Y = Z;c: do
if ((R | 0) != 0 ? (d[E + (R + -1) >> 0] | 0) < 2 : 0) {
ca = _ ? (X & 255) >>> 1 : c[S >> 2] | 0;
aa = Z + ca | 0;
ba = c[J >> 2] | 0;
d: do
if (!ca) _ = Y;
else {
$ = Z;
_ = Y;
do {
ca = a[$ >> 0] | 0;
if (ca << 24 >> 24 <= -1) break d;
if (!(b[ba + (ca << 24 >> 24 << 1) >> 1] & 8192)) break d;
$ = $ + 1 | 0;
_ = $
} while (($ | 0) != (aa | 0))
}
while (0);
$ = _ - Y | 0;
ba = a[u >> 0] | 0;
aa = (ba & 1) == 0;
ba = aa ? (ba & 255) >>> 1 : c[T >> 2] | 0;
if (ba >>> 0 >= $ >>> 0) {
ca = aa ? P : c[O >> 2] | 0;
aa = ca + ba | 0;
if ((_ | 0) == (Y | 0)) Y = _;
else {
$ = ca + (ba - $) | 0;
while (1) {
if ((a[$ >> 0] | 0) != (a[Z >> 0] | 0)) break c;
$ = $ + 1 | 0;
if (($ | 0) == (aa | 0)) {
Y = _;
break
} else Z = Z + 1 | 0
}
}
}
}while (0);ca = (X & 1) == 0;W = (ca ? j : W) + (ca ? (X & 255) >>> 1 : c[S >> 2] | 0) | 0;e: do
if ((Y | 0) == (W | 0)) Y = W;
else {
X = V;
W = V;
while (1) {
V = c[e >> 2] | 0;
do
if (V) {
if ((c[V + 12 >> 2] | 0) == (c[V + 16 >> 2] | 0))
if ((Gb[c[(c[V >> 2] | 0) + 36 >> 2] & 127](V) | 0) == -1) {
c[e >> 2] = 0;
V = 0;
break
} else {
V = c[e >> 2] | 0;
break
}
} else V = 0;
while (0);
Z = (V | 0) == 0;
do
if (W) {
if ((c[W + 12 >> 2] | 0) != (c[W + 16 >> 2] | 0))
if (Z) {
V = X;
break
} else break e;
if ((Gb[c[(c[W >> 2] | 0) + 36 >> 2] & 127](W) | 0) != -1)
if (Z ^ (X | 0) == 0) {
V = X;
W = X;
break
} else break e;
else {
c[f >> 2] = 0;
V = 0;
y = 107;
break
}
} else {
V = X;
y = 107
}
while (0);
if ((y | 0) == 107) {
y = 0;
if (Z) break e;
else W = 0
}
Z = c[e >> 2] | 0;
X = c[Z + 12 >> 2] | 0;
if ((X | 0) == (c[Z + 16 >> 2] | 0)) X = Gb[c[(c[Z >> 2] | 0) + 36 >> 2] & 127](Z) | 0;
else X = d[X >> 0] | 0;
if ((X & 255) << 24 >> 24 != (a[Y >> 0] | 0)) break e;
X = c[e >> 2] | 0;
Z = X + 12 | 0;
_ = c[Z >> 2] | 0;
if ((_ | 0) == (c[X + 16 >> 2] | 0)) Gb[c[(c[X >> 2] | 0) + 40 >> 2] & 127](X) | 0;
else c[Z >> 2] = _ + 1;
Y = Y + 1 | 0;
X = a[v >> 0] | 0;
ca = (X & 1) == 0;
X = (ca ? j : c[M >> 2] | 0) + (ca ? (X & 255) >>> 1 : c[S >> 2] | 0) | 0;
if ((Y | 0) == (X | 0)) {
Y = X;
break
} else X = V
}
}while (0);
if (K ? (ca = a[v >> 0] | 0, ba = (ca & 1) == 0, (Y | 0) != ((ba ? j : c[M >> 2] | 0) + (ba ? (ca & 255) >>> 1 : c[S >> 2] | 0) | 0)) : 0) {
y = 119;
break a
}
break
};
case 4:
{
W = a[A >> 0] | 0;Z = V;Y = V;V = 0;f: while (1) {
X = c[e >> 2] | 0;
do
if (X) {
if ((c[X + 12 >> 2] | 0) == (c[X + 16 >> 2] | 0))
if ((Gb[c[(c[X >> 2] | 0) + 36 >> 2] & 127](X) | 0) == -1) {
c[e >> 2] = 0;
X = 0;
break
} else {
X = c[e >> 2] | 0;
break
}
} else X = 0;
while (0);
_ = (X | 0) == 0;
do
if (Y) {
if ((c[Y + 12 >> 2] | 0) != (c[Y + 16 >> 2] | 0))
if (_) {
X = Z;
break
} else {
X = Z;
break f
}
if ((Gb[c[(c[Y >> 2] | 0) + 36 >> 2] & 127](Y) | 0) != -1)
if (_ ^ (Z | 0) == 0) {
X = Z;
Y = Z;
break
} else {
X = Z;
break f
}
else {
c[f >> 2] = 0;
X = 0;
y = 130;
break
}
} else {
X = Z;
y = 130
}
while (0);
if ((y | 0) == 130) {
y = 0;
if (_) break;
else Y = 0
}
_ = c[e >> 2] | 0;
Z = c[_ + 12 >> 2] | 0;
if ((Z | 0) == (c[_ + 16 >> 2] | 0)) _ = Gb[c[(c[_ >> 2] | 0) + 36 >> 2] & 127](_) | 0;
else _ = d[Z >> 0] | 0;
Z = _ & 255;
if (Z << 24 >> 24 > -1 ? (b[(c[J >> 2] | 0) + (_ << 24 >> 24 << 1) >> 1] & 2048) != 0 : 0) {
_ = c[o >> 2] | 0;
if ((_ | 0) == (c[F >> 2] | 0)) {
Vt(n, o, F);
_ = c[o >> 2] | 0
}
c[o >> 2] = _ + 1;
a[_ >> 0] = Z;
V = V + 1 | 0
} else {
ca = a[w >> 0] | 0;
if (!(Z << 24 >> 24 == W << 24 >> 24 & ((V | 0) != 0 ? (((ca & 1) == 0 ? (ca & 255) >>> 1 : c[N >> 2] | 0) | 0) != 0 : 0))) break;
if ((U | 0) == (c[D >> 2] | 0)) {
Wt(q, C, D);
U = c[C >> 2] | 0
}
ca = U + 4 | 0;
c[C >> 2] = ca;
c[U >> 2] = V;
U = ca;
V = 0
}
$ = c[e >> 2] | 0;
Z = $ + 12 | 0;
_ = c[Z >> 2] | 0;
if ((_ | 0) == (c[$ + 16 >> 2] | 0)) {
Gb[c[(c[$ >> 2] | 0) + 40 >> 2] & 127]($) | 0;
Z = X;
continue
} else {
c[Z >> 2] = _ + 1;
Z = X;
continue
}
}
if ((V | 0) != 0 ? (c[q >> 2] | 0) != (U | 0) : 0) {
if ((U | 0) == (c[D >> 2] | 0)) {
Wt(q, C, D);
U = c[C >> 2] | 0
}
ca = U + 4 | 0;
c[C >> 2] = ca;
c[U >> 2] = V;
U = ca
}
V = c[z >> 2] | 0;
if ((V | 0) > 0) {
W = c[e >> 2] | 0;
do
if (W) {
if ((c[W + 12 >> 2] | 0) == (c[W + 16 >> 2] | 0))
if ((Gb[c[(c[W >> 2] | 0) + 36 >> 2] & 127](W) | 0) == -1) {
c[e >> 2] = 0;
W = 0;
break
} else {
W = c[e >> 2] | 0;
break
}
} else W = 0;
while (0);
W = (W | 0) == 0;
do
if (X) {
if ((c[X + 12 >> 2] | 0) == (c[X + 16 >> 2] | 0) ? (Gb[c[(c[X >> 2] | 0) + 36 >> 2] & 127](X) | 0) == -1 : 0) {
c[f >> 2] = 0;
y = 162;
break
}
if (!W) {
y = 167;
break a
}
} else y = 162;
while (0);
if ((y | 0) == 162) {
y = 0;
if (W) {
y = 167;
break a
} else X = 0
}
W = c[e >> 2] | 0;
Y = c[W + 12 >> 2] | 0;
if ((Y | 0) == (c[W + 16 >> 2] | 0)) W = Gb[c[(c[W >> 2] | 0) + 36 >> 2] & 127](W) | 0;
else W = d[Y >> 0] | 0;
if ((W & 255) << 24 >> 24 != (a[B >> 0] | 0)) {
y = 167;
break a
}
W = c[e >> 2] | 0;
Y = W + 12 | 0;
Z = c[Y >> 2] | 0;
if ((Z | 0) == (c[W + 16 >> 2] | 0)) Gb[c[(c[W >> 2] | 0) + 40 >> 2] & 127](W) | 0;
else c[Y >> 2] = Z + 1;
if ((V | 0) > 0) {
Y = X;
while (1) {
W = c[e >> 2] | 0;
do
if (W) {
if ((c[W + 12 >> 2] | 0) == (c[W + 16 >> 2] | 0))
if ((Gb[c[(c[W >> 2] | 0) + 36 >> 2] & 127](W) | 0) == -1) {
c[e >> 2] = 0;
W = 0;
break
} else {
W = c[e >> 2] | 0;
break
}
} else W = 0;
while (0);
Z = (W | 0) == 0;
do
if (X) {
if ((c[X + 12 >> 2] | 0) != (c[X + 16 >> 2] | 0))
if (Z) {
W = Y;
break
} else {
y = 189;
break a
}
if ((Gb[c[(c[X >> 2] | 0) + 36 >> 2] & 127](X) | 0) != -1)
if (Z ^ (Y | 0) == 0) {
W = Y;
X = Y;
break
} else {
y = 189;
break a
}
else {
c[f >> 2] = 0;
W = 0;
y = 182;
break
}
} else {
W = Y;
y = 182
}
while (0);
if ((y | 0) == 182) {
y = 0;
if (Z) {
y = 189;
break a
} else X = 0
}
Z = c[e >> 2] | 0;
Y = c[Z + 12 >> 2] | 0;
if ((Y | 0) == (c[Z + 16 >> 2] | 0)) Y = Gb[c[(c[Z >> 2] | 0) + 36 >> 2] & 127](Z) | 0;
else Y = d[Y >> 0] | 0;
if ((Y & 255) << 24 >> 24 <= -1) {
y = 189;
break a
}
if (!(b[(c[J >> 2] | 0) + (Y << 24 >> 24 << 1) >> 1] & 2048)) {
y = 189;
break a
}
if ((c[o >> 2] | 0) == (c[F >> 2] | 0)) Vt(n, o, F);
Z = c[e >> 2] | 0;
Y = c[Z + 12 >> 2] | 0;
if ((Y | 0) == (c[Z + 16 >> 2] | 0)) Y = Gb[c[(c[Z >> 2] | 0) + 36 >> 2] & 127](Z) | 0;
else Y = d[Y >> 0] | 0;
Z = c[o >> 2] | 0;
c[o >> 2] = Z + 1;
a[Z >> 0] = Y;
Z = V;
V = V + -1 | 0;
c[z >> 2] = V;
Y = c[e >> 2] | 0;
_ = Y + 12 | 0;
$ = c[_ >> 2] | 0;
if (($ | 0) == (c[Y + 16 >> 2] | 0)) Gb[c[(c[Y >> 2] | 0) + 40 >> 2] & 127](Y) | 0;
else c[_ >> 2] = $ + 1;
if ((Z | 0) <= 1) break;
else Y = W
}
}
}
if ((c[o >> 2] | 0) == (c[n >> 2] | 0)) {
y = 200;
break a
}
break
};
default:
{}
}
while (0);
g: do
if ((y | 0) == 28)
while (1) {
y = 0;
V = c[e >> 2] | 0;
do
if (V) {
if ((c[V + 12 >> 2] | 0) == (c[V + 16 >> 2] | 0))
if ((Gb[c[(c[V >> 2] | 0) + 36 >> 2] & 127](V) | 0) == -1) {
c[e >> 2] = 0;
V = 0;
break
} else {
V = c[e >> 2] | 0;
break
}
} else V = 0;
while (0);
Y = (V | 0) == 0;
do
if (W) {
if ((c[W + 12 >> 2] | 0) != (c[W + 16 >> 2] | 0))
if (Y) {
V = X;
break
} else break g;
if ((Gb[c[(c[W >> 2] | 0) + 36 >> 2] & 127](W) | 0) != -1)
if (Y ^ (X | 0) == 0) {
V = X;
W = X;
break
} else break g;
else {
c[f >> 2] = 0;
V = 0;
y = 38;
break
}
} else {
V = X;
y = 38
}
while (0);
if ((y | 0) == 38) {
y = 0;
if (Y) break g;
else W = 0
}
X = c[e >> 2] | 0;
Y = c[X + 12 >> 2] | 0;
if ((Y | 0) == (c[X + 16 >> 2] | 0)) X = Gb[c[(c[X >> 2] | 0) + 36 >> 2] & 127](X) | 0;
else X = d[Y >> 0] | 0;
if ((X & 255) << 24 >> 24 <= -1) break g;
if (!(b[(c[J >> 2] | 0) + (X << 24 >> 24 << 1) >> 1] & 8192)) break g;
y = c[e >> 2] | 0;
Y = y + 12 | 0;
X = c[Y >> 2] | 0;
if ((X | 0) == (c[y + 16 >> 2] | 0)) y = Gb[c[(c[y >> 2] | 0) + 40 >> 2] & 127](y) | 0;
else {
c[Y >> 2] = X + 1;
y = d[X >> 0] | 0
}
Al(u, y & 255);
X = V;
y = 28
}
while (0);
R = R + 1 | 0;
if (R >>> 0 >= 4) {
y = 202;
break
}
}
h: do
if ((y | 0) == 26) {
c[k >> 2] = c[k >> 2] | 4;
k = 0
} else
if ((y | 0) == 82) {
c[k >> 2] = c[k >> 2] | 4;
k = 0
} else if ((y | 0) == 119) {
c[k >> 2] = c[k >> 2] | 4;
k = 0
} else if ((y | 0) == 167) {
c[k >> 2] = c[k >> 2] | 4;
k = 0
} else if ((y | 0) == 189) {
c[k >> 2] = c[k >> 2] | 4;
k = 0
} else if ((y | 0) == 200) {
c[k >> 2] = c[k >> 2] | 4;
k = 0
} else if ((y | 0) == 202) {
i: do
if (Q) {
z = Q + 1 | 0;
A = Q + 8 | 0;
B = Q + 4 | 0;
C = 1;
j: while (1) {
D = a[Q >> 0] | 0;
if (!(D & 1)) D = (D & 255) >>> 1;
else D = c[B >> 2] | 0;
if (C >>> 0 >= D >>> 0) break i;
D = c[e >> 2] | 0;
do
if (D) {
if ((c[D + 12 >> 2] | 0) == (c[D + 16 >> 2] | 0))
if ((Gb[c[(c[D >> 2] | 0) + 36 >> 2] & 127](D) | 0) == -1) {
c[e >> 2] = 0;
D = 0;
break
} else {
D = c[e >> 2] | 0;
break
}
} else D = 0;
while (0);
D = (D | 0) == 0;
o = c[f >> 2] | 0;
do
if (o) {
if ((c[o + 12 >> 2] | 0) == (c[o + 16 >> 2] | 0) ? (Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](o) | 0) == -1 : 0) {
c[f >> 2] = 0;
y = 218;
break
}
if (!D) break j
} else y = 218;
while (0);
if ((y | 0) == 218 ? (y = 0, D) : 0) break;
o = c[e >> 2] | 0;
D = c[o + 12 >> 2] | 0;
if ((D | 0) == (c[o + 16 >> 2] | 0)) D = Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](o) | 0;
else D = d[D >> 0] | 0;
if (!(a[Q >> 0] & 1)) o = z;
else o = c[A >> 2] | 0;
if ((D & 255) << 24 >> 24 != (a[o + C >> 0] | 0)) break;
C = C + 1 | 0;
o = c[e >> 2] | 0;
D = o + 12 | 0;
n = c[D >> 2] | 0;
if ((n | 0) == (c[o + 16 >> 2] | 0)) {
Gb[c[(c[o >> 2] | 0) + 40 >> 2] & 127](o) | 0;
continue
} else {
c[D >> 2] = n + 1;
continue
}
}
c[k >> 2] = c[k >> 2] | 4;
k = 0;
break h
}while (0);f = c[q >> 2] | 0;
if ((f | 0) != (U | 0) ? (c[x >> 2] = 0, Uq(w, f, U, x), (c[x >> 2] | 0) != 0) : 0) {
c[k >> 2] = c[k >> 2] | 4;
k = 0
} else k = 1
}
while (0);
sl(u);
sl(s);
sl(t);
sl(v);
sl(w);
s = c[q >> 2] | 0;
c[q >> 2] = 0;
if (s) Cb[c[p >> 2] & 255](s);
i = r;
return k | 0
}
function Rq(a) {
a = a | 0;
return
}
function Sq(b, d, e, f, g, h, j) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
l = i;
i = i + 144 | 0;
v = l + 24 | 0;
s = l + 32 | 0;
b = l + 16 | 0;
p = l + 8 | 0;
u = l + 4 | 0;
q = l + 28 | 0;
w = l;
c[b >> 2] = s;
k = b + 4 | 0;
c[k >> 2] = 160;
s = s + 100 | 0;
n = gm(g) | 0;
c[u >> 2] = n;
r = Jr(u, 1101600) | 0;
a[q >> 0] = 0;
o = c[e >> 2] | 0;
c[w >> 2] = o;
t = c[g + 4 >> 2] | 0;
c[v >> 2] = c[w >> 2];
g = o;
if (Qq(d, v, f, u, t, h, q, r, b, p, s) | 0) {
if (!(a[j >> 0] & 1)) {
a[j + 1 >> 0] = 0;
a[j >> 0] = 0
} else {
a[c[j + 8 >> 2] >> 0] = 0;
c[j + 4 >> 2] = 0
}
if (a[q >> 0] | 0) Al(j, Mb[c[(c[r >> 2] | 0) + 28 >> 2] & 63](r, 45) | 0);
f = Mb[c[(c[r >> 2] | 0) + 28 >> 2] & 63](r, 48) | 0;
r = c[b >> 2] | 0;
p = c[p >> 2] | 0;
q = p + -1 | 0;
a: do
if (r >>> 0 < q >>> 0)
do {
if ((a[r >> 0] | 0) != f << 24 >> 24) break a;
r = r + 1 | 0
} while (r >>> 0 < q >>> 0);
while (0);
Xt(j, r, p) | 0
}
j = c[d >> 2] | 0;
do
if (j) {
if ((c[j + 12 >> 2] | 0) == (c[j + 16 >> 2] | 0))
if ((Gb[c[(c[j >> 2] | 0) + 36 >> 2] & 127](j) | 0) == -1) {
c[d >> 2] = 0;
j = 0;
break
} else {
j = c[d >> 2] | 0;
break
}
} else j = 0;
while (0);
j = (j | 0) == 0;
do
if (o) {
if ((c[g + 12 >> 2] | 0) == (c[g + 16 >> 2] | 0) ? (Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](g) | 0) == -1 : 0) {
c[e >> 2] = 0;
m = 21;
break
}
if (!j) m = 22
} else m = 21;
while (0);
if ((m | 0) == 21 ? j : 0) m = 22;
if ((m | 0) == 22) c[h >> 2] = c[h >> 2] | 2;
d = c[d >> 2] | 0;
av(n) | 0;
h = c[b >> 2] | 0;
c[b >> 2] = 0;
if (h) Cb[c[k >> 2] & 255](h);
i = l;
return d | 0
}
function Tq(b, d, e, f, g, h, j, k, l, m) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
l = l | 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;
n = i;
i = i + 112 | 0;
t = n + 100 | 0;
u = n + 88 | 0;
o = n + 76 | 0;
w = n + 64 | 0;
x = n + 52 | 0;
q = n + 48 | 0;
v = n + 36 | 0;
p = n + 24 | 0;
r = n + 12 | 0;
s = n;
if (b) {
p = Jr(d, 1101208) | 0;
Db[c[(c[p >> 2] | 0) + 44 >> 2] & 63](t, p);
b = c[t >> 2] | 0;
a[e >> 0] = b;
a[e + 1 >> 0] = b >> 8;
a[e + 2 >> 0] = b >> 16;
a[e + 3 >> 0] = b >> 24;
Db[c[(c[p >> 2] | 0) + 32 >> 2] & 63](u, p);
if (!(a[l >> 0] & 1)) {
a[l + 1 >> 0] = 0;
a[l >> 0] = 0
} else {
a[c[l + 8 >> 2] >> 0] = 0;
c[l + 4 >> 2] = 0
}
yl(l, 0);
c[l >> 2] = c[u >> 2];
c[l + 4 >> 2] = c[u + 4 >> 2];
c[l + 8 >> 2] = c[u + 8 >> 2];
c[u >> 2] = 0;
c[u + 4 >> 2] = 0;
c[u + 8 >> 2] = 0;
sl(u);
Db[c[(c[p >> 2] | 0) + 28 >> 2] & 63](o, p);
if (!(a[k >> 0] & 1)) {
a[k + 1 >> 0] = 0;
a[k >> 0] = 0
} else {
a[c[k + 8 >> 2] >> 0] = 0;
c[k + 4 >> 2] = 0
}
yl(k, 0);
c[k >> 2] = c[o >> 2];
c[k + 4 >> 2] = c[o + 4 >> 2];
c[k + 8 >> 2] = c[o + 8 >> 2];
c[o >> 2] = 0;
c[o + 4 >> 2] = 0;
c[o + 8 >> 2] = 0;
sl(o);
a[f >> 0] = Gb[c[(c[p >> 2] | 0) + 12 >> 2] & 127](p) | 0;
a[g >> 0] = Gb[c[(c[p >> 2] | 0) + 16 >> 2] & 127](p) | 0;
Db[c[(c[p >> 2] | 0) + 20 >> 2] & 63](w, p);
if (!(a[h >> 0] & 1)) {
a[h + 1 >> 0] = 0;
a[h >> 0] = 0
} else {
a[c[h + 8 >> 2] >> 0] = 0;
c[h + 4 >> 2] = 0
}
yl(h, 0);
c[h >> 2] = c[w >> 2];
c[h + 4 >> 2] = c[w + 4 >> 2];
c[h + 8 >> 2] = c[w + 8 >> 2];
c[w >> 2] = 0;
c[w + 4 >> 2] = 0;
c[w + 8 >> 2] = 0;
sl(w);
Db[c[(c[p >> 2] | 0) + 24 >> 2] & 63](x, p);
if (!(a[j >> 0] & 1)) {
a[j + 1 >> 0] = 0;
a[j >> 0] = 0
} else {
a[c[j + 8 >> 2] >> 0] = 0;
c[j + 4 >> 2] = 0
}
yl(j, 0);
c[j >> 2] = c[x >> 2];
c[j + 4 >> 2] = c[x + 4 >> 2];
c[j + 8 >> 2] = c[x + 8 >> 2];
c[x >> 2] = 0;
c[x + 4 >> 2] = 0;
c[x + 8 >> 2] = 0;
sl(x);
e = Gb[c[(c[p >> 2] | 0) + 36 >> 2] & 127](p) | 0
} else {
o = Jr(d, 1101144) | 0;
Db[c[(c[o >> 2] | 0) + 44 >> 2] & 63](q, o);
b = c[q >> 2] | 0;
a[e >> 0] = b;
a[e + 1 >> 0] = b >> 8;
a[e + 2 >> 0] = b >> 16;
a[e + 3 >> 0] = b >> 24;
Db[c[(c[o >> 2] | 0) + 32 >> 2] & 63](v, o);
if (!(a[l >> 0] & 1)) {
a[l + 1 >> 0] = 0;
a[l >> 0] = 0
} else {
a[c[l + 8 >> 2] >> 0] = 0;
c[l + 4 >> 2] = 0
}
yl(l, 0);
c[l >> 2] = c[v >> 2];
c[l + 4 >> 2] = c[v + 4 >> 2];
c[l + 8 >> 2] = c[v + 8 >> 2];
c[v >> 2] = 0;
c[v + 4 >> 2] = 0;
c[v + 8 >> 2] = 0;
sl(v);
Db[c[(c[o >> 2] | 0) + 28 >> 2] & 63](p, o);
if (!(a[k >> 0] & 1)) {
a[k + 1 >> 0] = 0;
a[k >> 0] = 0
} else {
a[c[k + 8 >> 2] >> 0] = 0;
c[k + 4 >> 2] = 0
}
yl(k, 0);
c[k >> 2] = c[p >> 2];
c[k + 4 >> 2] = c[p + 4 >> 2];
c[k + 8 >> 2] = c[p + 8 >> 2];
c[p >> 2] = 0;
c[p + 4 >> 2] = 0;
c[p + 8 >> 2] = 0;
sl(p);
a[f >> 0] = Gb[c[(c[o >> 2] | 0) + 12 >> 2] & 127](o) | 0;
a[g >> 0] = Gb[c[(c[o >> 2] | 0) + 16 >> 2] & 127](o) | 0;
Db[c[(c[o >> 2] | 0) + 20 >> 2] & 63](r, o);
if (!(a[h >> 0] & 1)) {
a[h + 1 >> 0] = 0;
a[h >> 0] = 0
} else {
a[c[h + 8 >> 2] >> 0] = 0;
c[h + 4 >> 2] = 0
}
yl(h, 0);
c[h >> 2] = c[r >> 2];
c[h + 4 >> 2] = c[r + 4 >> 2];
c[h + 8 >> 2] = c[r + 8 >> 2];
c[r >> 2] = 0;
c[r + 4 >> 2] = 0;
c[r + 8 >> 2] = 0;
sl(r);
Db[c[(c[o >> 2] | 0) + 24 >> 2] & 63](s, o);
if (!(a[j >> 0] & 1)) {
a[j + 1 >> 0] = 0;
a[j >> 0] = 0
} else {
a[c[j + 8 >> 2] >> 0] = 0;
c[j + 4 >> 2] = 0
}
yl(j, 0);
c[j >> 2] = c[s >> 2];
c[j + 4 >> 2] = c[s + 4 >> 2];
c[j + 8 >> 2] = c[s + 8 >> 2];
c[s >> 2] = 0;
c[s + 4 >> 2] = 0;
c[s + 8 >> 2] = 0;
sl(s);
e = Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](o) | 0
}
c[m >> 2] = e;
i = n;
return
}
function Uq(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;
h = a[b >> 0] | 0;
g = b + 4 | 0;
i = c[g >> 2] | 0;
a: do
if (((h & 1) == 0 ? (h & 255) >>> 1 : i) | 0) {
if ((d | 0) != (e | 0)) {
i = e + -4 | 0;
if (i >>> 0 > d >>> 0) {
h = d;
do {
j = c[h >> 2] | 0;
c[h >> 2] = c[i >> 2];
c[i >> 2] = j;
h = h + 4 | 0;
i = i + -4 | 0
} while (h >>> 0 < i >>> 0)
}
h = a[b >> 0] | 0;
i = c[g >> 2] | 0
}
j = (h & 1) == 0;
g = j ? b + 1 | 0 : c[b + 8 >> 2] | 0;
e = e + -4 | 0;
b = g + (j ? (h & 255) >>> 1 : i) | 0;
i = a[g >> 0] | 0;
h = i << 24 >> 24 < 1 | i << 24 >> 24 == 127;
b: do
if (e >>> 0 > d >>> 0) {
while (1) {
if (!h ? (i << 24 >> 24 | 0) != (c[d >> 2] | 0) : 0) break;
g = (b - g | 0) > 1 ? g + 1 | 0 : g;
d = d + 4 | 0;
i = a[g >> 0] | 0;
h = i << 24 >> 24 < 1 | i << 24 >> 24 == 127;
if (d >>> 0 >= e >>> 0) break b
}
c[f >> 2] = 4;
break a
}
while (0);
if (!h ? ((c[e >> 2] | 0) + -1 | 0) >>> 0 >= i << 24 >> 24 >>> 0 : 0) c[f >> 2] = 4
}
while (0);
return
}
function Vq(a) {
a = a | 0;
return
}
function Wq(a) {
a = a | 0;
Ph(a);
return
}
function Xq(b, d, e, f, g, h, j) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
l = i;
i = i + 576 | 0;
s = l + 424 | 0;
q = l;
E = l + 24 | 0;
b = l + 16 | 0;
r = l + 12 | 0;
m = l + 8 | 0;
t = l + 464 | 0;
B = l + 4 | 0;
p = l + 468 | 0;
c[b >> 2] = E;
k = b + 4 | 0;
c[k >> 2] = 160;
E = E + 400 | 0;
c[m >> 2] = gm(g) | 0;
u = Jr(m, 1101592) | 0;
a[t >> 0] = 0;
c[B >> 2] = c[e >> 2];
C = c[g + 4 >> 2] | 0;
c[s >> 2] = c[B >> 2];
if (Yq(d, s, f, m, C, h, t, u, b, r, E) | 0) {
Kb[c[(c[u >> 2] | 0) + 48 >> 2] & 7](u, 1180576, 1180586, s) | 0;
u = c[r >> 2] | 0;
g = c[b >> 2] | 0;
f = u - g | 0;
if ((f | 0) > 392) {
f = zk((f >> 2) + 2 | 0) | 0;
if (!f) ui();
else {
o = f;
D = f
}
} else {
o = 0;
D = p
}
if (a[t >> 0] | 0) {
a[D >> 0] = 45;
D = D + 1 | 0
}
f = s + 40 | 0;
t = s;
if (g >>> 0 < u >>> 0) {
A = s + 4 | 0;
B = A + 4 | 0;
v = B + 4 | 0;
w = v + 4 | 0;
x = w + 4 | 0;
y = x + 4 | 0;
u = y + 4 | 0;
C = u + 4 | 0;
z = C + 4 | 0;
do {
E = c[g >> 2] | 0;
if ((c[s >> 2] | 0) != (E | 0))
if ((c[A >> 2] | 0) != (E | 0))
if ((c[B >> 2] | 0) != (E | 0))
if ((c[v >> 2] | 0) != (E | 0))
if ((c[w >> 2] | 0) != (E | 0))
if ((c[x >> 2] | 0) != (E | 0))
if ((c[y >> 2] | 0) != (E | 0))
if ((c[u >> 2] | 0) != (E | 0))
if ((c[C >> 2] | 0) == (E | 0)) E = C;
else E = (c[z >> 2] | 0) == (E | 0) ? z : f;
else E = u;
else E = y;
else E = x;
else E = w;
else E = v;
else E = B;
else E = A;
else E = s;
a[D >> 0] = a[1180576 + (E - t >> 2) >> 0] | 0;
g = g + 4 | 0;
D = D + 1 | 0
} while (g >>> 0 < (c[r >> 2] | 0) >>> 0)
}
a[D >> 0] = 0;
c[q >> 2] = j;
Gj(p, 1180572, q) | 0;
if (o) Ak(o)
}
j = c[d >> 2] | 0;
do
if (j) {
o = c[j + 12 >> 2] | 0;
if ((o | 0) == (c[j + 16 >> 2] | 0)) j = Gb[c[(c[j >> 2] | 0) + 36 >> 2] & 127](j) | 0;
else j = c[o >> 2] | 0;
if ((j | 0) == -1) {
c[d >> 2] = 0;
j = 1;
break
} else {
j = (c[d >> 2] | 0) == 0;
break
}
} else j = 1;
while (0);
o = c[e >> 2] | 0;
do
if (o) {
p = c[o + 12 >> 2] | 0;
if ((p | 0) == (c[o + 16 >> 2] | 0)) o = Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](o) | 0;
else o = c[p >> 2] | 0;
if ((o | 0) != -1)
if (j) break;
else {
n = 30;
break
}
else {
c[e >> 2] = 0;
n = 28;
break
}
} else n = 28;
while (0);
if ((n | 0) == 28 ? j : 0) n = 30;
if ((n | 0) == 30) c[h >> 2] = c[h >> 2] | 2;
d = c[d >> 2] | 0;
av(c[m >> 2] | 0) | 0;
h = c[b >> 2] | 0;
c[b >> 2] = 0;
if (h) Cb[c[k >> 2] & 255](h);
i = l;
return d | 0
}
function Yq(b, e, f, g, h, j, k, l, m, n, o) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
l = l | 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,
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;
p = i;
i = i + 512 | 0;
z = p + 496 | 0;
P = p + 96 | 0;
q = p + 88 | 0;
A = p + 80 | 0;
B = p + 76 | 0;
y = p + 500 | 0;
C = p + 72 | 0;
E = p + 68 | 0;
r = p + 56 | 0;
v = p + 44 | 0;
s = p + 32 | 0;
u = p + 20 | 0;
t = p + 8 | 0;
D = p + 4 | 0;
w = p;
c[z >> 2] = o;
c[q >> 2] = P;
o = q + 4 | 0;
c[o >> 2] = 160;
c[A >> 2] = P;
c[B >> 2] = P + 400;
c[r >> 2] = 0;
c[r + 4 >> 2] = 0;
c[r + 8 >> 2] = 0;
c[v >> 2] = 0;
c[v + 4 >> 2] = 0;
c[v + 8 >> 2] = 0;
c[s >> 2] = 0;
c[s + 4 >> 2] = 0;
c[s + 8 >> 2] = 0;
c[u >> 2] = 0;
c[u + 4 >> 2] = 0;
c[u + 8 >> 2] = 0;
c[t >> 2] = 0;
c[t + 4 >> 2] = 0;
c[t + 8 >> 2] = 0;
_q(f, g, y, C, E, r, v, s, u, D);
c[n >> 2] = c[m >> 2];
F = s + 4 | 0;
G = u + 4 | 0;
f = u + 8 | 0;
g = s + 8 | 0;
I = (h & 512 | 0) != 0;
K = v + 8 | 0;
H = v + 4 | 0;
h = t + 4 | 0;
M = t + 8 | 0;
L = y + 3 | 0;
J = r + 4 | 0;
O = 0;
N = 0;
a: while (1) {
Q = c[b >> 2] | 0;
do
if (Q) {
R = c[Q + 12 >> 2] | 0;
if ((R | 0) == (c[Q + 16 >> 2] | 0)) Q = Gb[c[(c[Q >> 2] | 0) + 36 >> 2] & 127](Q) | 0;
else Q = c[R >> 2] | 0;
if ((Q | 0) == -1) {
c[b >> 2] = 0;
R = 1;
break
} else {
R = (c[b >> 2] | 0) == 0;
break
}
} else R = 1;
while (0);
Q = c[e >> 2] | 0;
do
if (Q) {
S = c[Q + 12 >> 2] | 0;
if ((S | 0) == (c[Q + 16 >> 2] | 0)) S = Gb[c[(c[Q >> 2] | 0) + 36 >> 2] & 127](Q) | 0;
else S = c[S >> 2] | 0;
if ((S | 0) != -1)
if (R) break;
else {
x = 217;
break a
}
else {
c[e >> 2] = 0;
x = 15;
break
}
} else x = 15;
while (0);
if ((x | 0) == 15) {
x = 0;
if (R) {
x = 217;
break
} else Q = 0
}
b: do switch (a[y + O >> 0] | 0) {
case 1:
{
if ((O | 0) != 3) {
x = c[b >> 2] | 0;
R = c[x + 12 >> 2] | 0;
if ((R | 0) == (c[x + 16 >> 2] | 0)) x = Gb[c[(c[x >> 2] | 0) + 36 >> 2] & 127](x) | 0;
else x = c[R >> 2] | 0;
if (!(zb[c[(c[l >> 2] | 0) + 12 >> 2] & 31](l, 8192, x) | 0)) {
x = 28;
break a
}
x = c[b >> 2] | 0;
R = x + 12 | 0;
S = c[R >> 2] | 0;
if ((S | 0) == (c[x + 16 >> 2] | 0)) x = Gb[c[(c[x >> 2] | 0) + 40 >> 2] & 127](x) | 0;
else {
c[R >> 2] = S + 4;
x = c[S >> 2] | 0
}
Ql(t, x);
R = Q;
x = 30
}
break
};
case 0:
{
if ((O | 0) != 3) {
R = Q;
x = 30
}
break
};
case 3:
{
S = a[s >> 0] | 0;R = (S & 1) == 0 ? (S & 255) >>> 1 : c[F >> 2] | 0;Q = a[u >> 0] | 0;Q = (Q & 1) == 0 ? (Q & 255) >>> 1 : c[G >> 2] | 0;
if ((R | 0) != (0 - Q | 0)) {
V = (R | 0) == 0;
U = c[b >> 2] | 0;
T = c[U + 12 >> 2] | 0;
R = c[U + 16 >> 2] | 0;
W = (T | 0) == (R | 0);
if (V | (Q | 0) == 0) {
if (W) Q = Gb[c[(c[U >> 2] | 0) + 36 >> 2] & 127](U) | 0;
else Q = c[T >> 2] | 0;
if (V) {
if ((Q | 0) != (c[((a[u >> 0] & 1) == 0 ? G : c[f >> 2] | 0) >> 2] | 0)) break b;
S = c[b >> 2] | 0;
Q = S + 12 | 0;
R = c[Q >> 2] | 0;
if ((R | 0) == (c[S + 16 >> 2] | 0)) Gb[c[(c[S >> 2] | 0) + 40 >> 2] & 127](S) | 0;
else c[Q >> 2] = R + 4;
a[k >> 0] = 1;
Z = a[u >> 0] | 0;
N = ((Z & 1) == 0 ? (Z & 255) >>> 1 : c[G >> 2] | 0) >>> 0 > 1 ? u : N;
break b
}
if ((Q | 0) != (c[((a[s >> 0] & 1) == 0 ? F : c[g >> 2] | 0) >> 2] | 0)) {
a[k >> 0] = 1;
break b
}
Q = c[b >> 2] | 0;
R = Q + 12 | 0;
S = c[R >> 2] | 0;
if ((S | 0) == (c[Q + 16 >> 2] | 0)) Gb[c[(c[Q >> 2] | 0) + 40 >> 2] & 127](Q) | 0;
else c[R >> 2] = S + 4;
Z = a[s >> 0] | 0;
N = ((Z & 1) == 0 ? (Z & 255) >>> 1 : c[F >> 2] | 0) >>> 0 > 1 ? s : N;
break b
}
if (W) {
Q = Gb[c[(c[U >> 2] | 0) + 36 >> 2] & 127](U) | 0;
R = c[b >> 2] | 0;
S = a[s >> 0] | 0;
U = R;
T = c[R + 12 >> 2] | 0;
R = c[R + 16 >> 2] | 0
} else Q = c[T >> 2] | 0;
V = U + 12 | 0;
R = (T | 0) == (R | 0);
if ((Q | 0) == (c[((S & 1) == 0 ? F : c[g >> 2] | 0) >> 2] | 0)) {
if (R) Gb[c[(c[U >> 2] | 0) + 40 >> 2] & 127](U) | 0;
else c[V >> 2] = T + 4;
Z = a[s >> 0] | 0;
N = ((Z & 1) == 0 ? (Z & 255) >>> 1 : c[F >> 2] | 0) >>> 0 > 1 ? s : N;
break b
}
if (R) Q = Gb[c[(c[U >> 2] | 0) + 36 >> 2] & 127](U) | 0;
else Q = c[T >> 2] | 0;
if ((Q | 0) != (c[((a[u >> 0] & 1) == 0 ? G : c[f >> 2] | 0) >> 2] | 0)) {
x = 86;
break a
}
Q = c[b >> 2] | 0;
R = Q + 12 | 0;
S = c[R >> 2] | 0;
if ((S | 0) == (c[Q + 16 >> 2] | 0)) Gb[c[(c[Q >> 2] | 0) + 40 >> 2] & 127](Q) | 0;
else c[R >> 2] = S + 4;
a[k >> 0] = 1;
Z = a[u >> 0] | 0;
N = ((Z & 1) == 0 ? (Z & 255) >>> 1 : c[G >> 2] | 0) >>> 0 > 1 ? u : N
}
break
};
case 2:
{
if (!(O >>> 0 < 2 | (N | 0) != 0) ? !(I | (O | 0) == 2 & (a[L >> 0] | 0) != 0) : 0) {
N = 0;
break b
}
R = a[v >> 0] | 0;S = c[K >> 2] | 0;U = (R & 1) == 0 ? H : S;T = U;c: do
if ((O | 0) != 0 ? (d[y + (O + -1) >> 0] | 0) < 2 : 0) {
Z = (R & 1) == 0;
d: do
if ((U | 0) != ((Z ? H : S) + ((Z ? (R & 255) >>> 1 : c[H >> 2] | 0) << 2) | 0)) {
while (1) {
if (!(zb[c[(c[l >> 2] | 0) + 12 >> 2] & 31](l, 8192, c[U >> 2] | 0) | 0)) break;
U = U + 4 | 0;
T = U;
R = a[v >> 0] | 0;
S = c[K >> 2] | 0;
Z = (R & 1) == 0;
if ((U | 0) == ((Z ? H : S) + ((Z ? (R & 255) >>> 1 : c[H >> 2] | 0) << 2) | 0)) break d
}
R = a[v >> 0] | 0;
S = c[K >> 2] | 0
}
while (0);
Y = (R & 1) == 0 ? H : S;
U = Y;
W = T - U >> 2;
X = a[t >> 0] | 0;
V = (X & 1) == 0;
X = V ? (X & 255) >>> 1 : c[h >> 2] | 0;
if (X >>> 0 >= W >>> 0) {
Z = V ? h : c[M >> 2] | 0;
V = Z + (X << 2) | 0;
if (W) {
W = Z + (X - W << 2) | 0;
while (1) {
if ((c[W >> 2] | 0) != (c[Y >> 2] | 0)) {
T = U;
break c
}
W = W + 4 | 0;
if ((W | 0) == (V | 0)) break;
else Y = Y + 4 | 0
}
}
} else T = U
}while (0);Z = (R & 1) == 0;R = (Z ? H : S) + ((Z ? (R & 255) >>> 1 : c[H >> 2] | 0) << 2) | 0;e: do
if ((T | 0) == (R | 0)) Q = R;
else {
R = Q;
S = Q;
Q = T;
while (1) {
T = c[b >> 2] | 0;
do
if (T) {
U = c[T + 12 >> 2] | 0;
if ((U | 0) == (c[T + 16 >> 2] | 0)) T = Gb[c[(c[T >> 2] | 0) + 36 >> 2] & 127](T) | 0;
else T = c[U >> 2] | 0;
if ((T | 0) == -1) {
c[b >> 2] = 0;
T = 1;
break
} else {
T = (c[b >> 2] | 0) == 0;
break
}
} else T = 1;
while (0);
do
if (S) {
U = c[S + 12 >> 2] | 0;
if ((U | 0) == (c[S + 16 >> 2] | 0)) S = Gb[c[(c[S >> 2] | 0) + 36 >> 2] & 127](S) | 0;
else S = c[U >> 2] | 0;
if ((S | 0) != -1)
if (T ^ (R | 0) == 0) {
T = R;
S = R;
break
} else break e;
else {
c[e >> 2] = 0;
R = 0;
x = 114;
break
}
} else x = 114;
while (0);
if ((x | 0) == 114) {
x = 0;
if (T) break e;
else {
T = R;
S = 0
}
}
R = c[b >> 2] | 0;
U = c[R + 12 >> 2] | 0;
if ((U | 0) == (c[R + 16 >> 2] | 0)) R = Gb[c[(c[R >> 2] | 0) + 36 >> 2] & 127](R) | 0;
else R = c[U >> 2] | 0;
if ((R | 0) != (c[Q >> 2] | 0)) break e;
R = c[b >> 2] | 0;
U = R + 12 | 0;
V = c[U >> 2] | 0;
if ((V | 0) == (c[R + 16 >> 2] | 0)) Gb[c[(c[R >> 2] | 0) + 40 >> 2] & 127](R) | 0;
else c[U >> 2] = V + 4;
Q = Q + 4 | 0;
R = a[v >> 0] | 0;
Z = (R & 1) == 0;
R = (Z ? H : c[K >> 2] | 0) + ((Z ? (R & 255) >>> 1 : c[H >> 2] | 0) << 2) | 0;
if ((Q | 0) == (R | 0)) {
Q = R;
break
} else R = T
}
}while (0);
if (I ? (Z = a[v >> 0] | 0, Y = (Z & 1) == 0, (Q | 0) != ((Y ? H : c[K >> 2] | 0) + ((Y ? (Z & 255) >>> 1 : c[H >> 2] | 0) << 2) | 0)) : 0) {
x = 126;
break a
}
break
};
case 4:
{
R = c[E >> 2] | 0;T = Q;U = Q;Q = 0;f: while (1) {
V = c[b >> 2] | 0;
do
if (V) {
S = c[V + 12 >> 2] | 0;
if ((S | 0) == (c[V + 16 >> 2] | 0)) S = Gb[c[(c[V >> 2] | 0) + 36 >> 2] & 127](V) | 0;
else S = c[S >> 2] | 0;
if ((S | 0) == -1) {
c[b >> 2] = 0;
V = 1;
break
} else {
V = (c[b >> 2] | 0) == 0;
break
}
} else V = 1;
while (0);
do
if (U) {
S = c[U + 12 >> 2] | 0;
if ((S | 0) == (c[U + 16 >> 2] | 0)) S = Gb[c[(c[U >> 2] | 0) + 36 >> 2] & 127](U) | 0;
else S = c[S >> 2] | 0;
if ((S | 0) != -1)
if (V ^ (T | 0) == 0) {
S = T;
U = T;
break
} else {
S = T;
break f
}
else {
c[e >> 2] = 0;
S = 0;
x = 140;
break
}
} else {
S = T;
x = 140
}
while (0);
if ((x | 0) == 140) {
x = 0;
if (V) break;
else U = 0
}
V = c[b >> 2] | 0;
T = c[V + 12 >> 2] | 0;
if ((T | 0) == (c[V + 16 >> 2] | 0)) T = Gb[c[(c[V >> 2] | 0) + 36 >> 2] & 127](V) | 0;
else T = c[T >> 2] | 0;
if (zb[c[(c[l >> 2] | 0) + 12 >> 2] & 31](l, 2048, T) | 0) {
V = c[n >> 2] | 0;
if ((V | 0) == (c[z >> 2] | 0)) {
Yt(m, n, z);
V = c[n >> 2] | 0
}
c[n >> 2] = V + 4;
c[V >> 2] = T;
Q = Q + 1 | 0
} else {
Z = a[r >> 0] | 0;
if (!((T | 0) == (R | 0) & ((Q | 0) != 0 ? (((Z & 1) == 0 ? (Z & 255) >>> 1 : c[J >> 2] | 0) | 0) != 0 : 0))) break;
if ((P | 0) == (c[B >> 2] | 0)) {
Wt(q, A, B);
P = c[A >> 2] | 0
}
Z = P + 4 | 0;
c[A >> 2] = Z;
c[P >> 2] = Q;
P = Z;
Q = 0
}
V = c[b >> 2] | 0;
T = V + 12 | 0;
W = c[T >> 2] | 0;
if ((W | 0) == (c[V + 16 >> 2] | 0)) {
Gb[c[(c[V >> 2] | 0) + 40 >> 2] & 127](V) | 0;
T = S;
continue
} else {
c[T >> 2] = W + 4;
T = S;
continue
}
}
if ((Q | 0) != 0 ? (c[q >> 2] | 0) != (P | 0) : 0) {
if ((P | 0) == (c[B >> 2] | 0)) {
Wt(q, A, B);
P = c[A >> 2] | 0
}
Z = P + 4 | 0;
c[A >> 2] = Z;
c[P >> 2] = Q;
P = Z
}
Q = c[D >> 2] | 0;
if ((Q | 0) > 0) {
T = c[b >> 2] | 0;
do
if (T) {
R = c[T + 12 >> 2] | 0;
if ((R | 0) == (c[T + 16 >> 2] | 0)) R = Gb[c[(c[T >> 2] | 0) + 36 >> 2] & 127](T) | 0;
else R = c[R >> 2] | 0;
if ((R | 0) == -1) {
c[b >> 2] = 0;
R = 1;
break
} else {
R = (c[b >> 2] | 0) == 0;
break
}
} else R = 1;
while (0);
do
if (S) {
T = c[S + 12 >> 2] | 0;
if ((T | 0) == (c[S + 16 >> 2] | 0)) T = Gb[c[(c[S >> 2] | 0) + 36 >> 2] & 127](S) | 0;
else T = c[T >> 2] | 0;
if ((T | 0) != -1)
if (R) break;
else {
x = 180;
break a
}
else {
c[e >> 2] = 0;
x = 174;
break
}
} else x = 174;
while (0);
if ((x | 0) == 174) {
x = 0;
if (R) {
x = 180;
break a
} else S = 0
}
R = c[b >> 2] | 0;
T = c[R + 12 >> 2] | 0;
if ((T | 0) == (c[R + 16 >> 2] | 0)) R = Gb[c[(c[R >> 2] | 0) + 36 >> 2] & 127](R) | 0;
else R = c[T >> 2] | 0;
if ((R | 0) != (c[C >> 2] | 0)) {
x = 180;
break a
}
U = c[b >> 2] | 0;
T = U + 12 | 0;
R = c[T >> 2] | 0;
if ((R | 0) == (c[U + 16 >> 2] | 0)) Gb[c[(c[U >> 2] | 0) + 40 >> 2] & 127](U) | 0;
else c[T >> 2] = R + 4;
if ((Q | 0) > 0) {
T = S;
R = S;
while (1) {
U = c[b >> 2] | 0;
do
if (U) {
S = c[U + 12 >> 2] | 0;
if ((S | 0) == (c[U + 16 >> 2] | 0)) S = Gb[c[(c[U >> 2] | 0) + 36 >> 2] & 127](U) | 0;
else S = c[S >> 2] | 0;
if ((S | 0) == -1) {
c[b >> 2] = 0;
U = 1;
break
} else {
U = (c[b >> 2] | 0) == 0;
break
}
} else U = 1;
while (0);
do
if (R) {
S = c[R + 12 >> 2] | 0;
if ((S | 0) == (c[R + 16 >> 2] | 0)) R = Gb[c[(c[R >> 2] | 0) + 36 >> 2] & 127](R) | 0;
else R = c[S >> 2] | 0;
if ((R | 0) != -1)
if (U ^ (T | 0) == 0) {
S = T;
R = T;
break
} else {
x = 204;
break a
}
else {
c[e >> 2] = 0;
S = 0;
x = 198;
break
}
} else {
S = T;
x = 198
}
while (0);
if ((x | 0) == 198) {
x = 0;
if (U) {
x = 204;
break a
} else R = 0
}
T = c[b >> 2] | 0;
U = c[T + 12 >> 2] | 0;
if ((U | 0) == (c[T + 16 >> 2] | 0)) T = Gb[c[(c[T >> 2] | 0) + 36 >> 2] & 127](T) | 0;
else T = c[U >> 2] | 0;
if (!(zb[c[(c[l >> 2] | 0) + 12 >> 2] & 31](l, 2048, T) | 0)) {
x = 204;
break a
}
if ((c[n >> 2] | 0) == (c[z >> 2] | 0)) Yt(m, n, z);
T = c[b >> 2] | 0;
U = c[T + 12 >> 2] | 0;
if ((U | 0) == (c[T + 16 >> 2] | 0)) T = Gb[c[(c[T >> 2] | 0) + 36 >> 2] & 127](T) | 0;
else T = c[U >> 2] | 0;
W = c[n >> 2] | 0;
c[n >> 2] = W + 4;
c[W >> 2] = T;
W = Q;
Q = Q + -1 | 0;
c[D >> 2] = Q;
U = c[b >> 2] | 0;
T = U + 12 | 0;
V = c[T >> 2] | 0;
if ((V | 0) == (c[U + 16 >> 2] | 0)) Gb[c[(c[U >> 2] | 0) + 40 >> 2] & 127](U) | 0;
else c[T >> 2] = V + 4;
if ((W | 0) <= 1) break;
else T = S
}
}
}
if ((c[n >> 2] | 0) == (c[m >> 2] | 0)) {
x = 215;
break a
}
break
};
default:
{}
}
while (0);
g: do
if ((x | 0) == 30)
while (1) {
x = 0;
S = c[b >> 2] | 0;
do
if (S) {
T = c[S + 12 >> 2] | 0;
if ((T | 0) == (c[S + 16 >> 2] | 0)) S = Gb[c[(c[S >> 2] | 0) + 36 >> 2] & 127](S) | 0;
else S = c[T >> 2] | 0;
if ((S | 0) == -1) {
c[b >> 2] = 0;
S = 1;
break
} else {
S = (c[b >> 2] | 0) == 0;
break
}
} else S = 1;
while (0);
do
if (Q) {
T = c[Q + 12 >> 2] | 0;
if ((T | 0) == (c[Q + 16 >> 2] | 0)) Q = Gb[c[(c[Q >> 2] | 0) + 36 >> 2] & 127](Q) | 0;
else Q = c[T >> 2] | 0;
if ((Q | 0) != -1)
if (S ^ (R | 0) == 0) {
S = R;
Q = R;
break
} else break g;
else {
c[e >> 2] = 0;
R = 0;
x = 43;
break
}
} else x = 43;
while (0);
if ((x | 0) == 43) {
x = 0;
if (S) break g;
else {
S = R;
Q = 0
}
}
T = c[b >> 2] | 0;
R = c[T + 12 >> 2] | 0;
if ((R | 0) == (c[T + 16 >> 2] | 0)) R = Gb[c[(c[T >> 2] | 0) + 36 >> 2] & 127](T) | 0;
else R = c[R >> 2] | 0;
if (!(zb[c[(c[l >> 2] | 0) + 12 >> 2] & 31](l, 8192, R) | 0)) break g;
R = c[b >> 2] | 0;
T = R + 12 | 0;
x = c[T >> 2] | 0;
if ((x | 0) == (c[R + 16 >> 2] | 0)) x = Gb[c[(c[R >> 2] | 0) + 40 >> 2] & 127](R) | 0;
else {
c[T >> 2] = x + 4;
x = c[x >> 2] | 0
}
Ql(t, x);
R = S;
x = 30
}
while (0);
O = O + 1 | 0;
if (O >>> 0 >= 4) {
x = 217;
break
}
}
h: do
if ((x | 0) == 28) {
c[j >> 2] = c[j >> 2] | 4;
j = 0
} else
if ((x | 0) == 86) {
c[j >> 2] = c[j >> 2] | 4;
j = 0
} else if ((x | 0) == 126) {
c[j >> 2] = c[j >> 2] | 4;
j = 0
} else if ((x | 0) == 180) {
c[j >> 2] = c[j >> 2] | 4;
j = 0
} else if ((x | 0) == 204) {
c[j >> 2] = c[j >> 2] | 4;
j = 0
} else if ((x | 0) == 215) {
c[j >> 2] = c[j >> 2] | 4;
j = 0
} else if ((x | 0) == 217) {
i: do
if (N) {
l = N + 4 | 0;
y = N + 8 | 0;
n = 1;
j: while (1) {
z = a[N >> 0] | 0;
if (!(z & 1)) z = (z & 255) >>> 1;
else z = c[l >> 2] | 0;
if (n >>> 0 >= z >>> 0) break i;
z = c[b >> 2] | 0;
do
if (z) {
m = c[z + 12 >> 2] | 0;
if ((m | 0) == (c[z + 16 >> 2] | 0)) z = Gb[c[(c[z >> 2] | 0) + 36 >> 2] & 127](z) | 0;
else z = c[m >> 2] | 0;
if ((z | 0) == -1) {
c[b >> 2] = 0;
z = 1;
break
} else {
z = (c[b >> 2] | 0) == 0;
break
}
} else z = 1;
while (0);
A = c[e >> 2] | 0;
do
if (A) {
m = c[A + 12 >> 2] | 0;
if ((m | 0) == (c[A + 16 >> 2] | 0)) m = Gb[c[(c[A >> 2] | 0) + 36 >> 2] & 127](A) | 0;
else m = c[m >> 2] | 0;
if ((m | 0) != -1)
if (z) break;
else break j;
else {
c[e >> 2] = 0;
x = 236;
break
}
} else x = 236;
while (0);
if ((x | 0) == 236 ? (x = 0, z) : 0) break;
m = c[b >> 2] | 0;
z = c[m + 12 >> 2] | 0;
if ((z | 0) == (c[m + 16 >> 2] | 0)) m = Gb[c[(c[m >> 2] | 0) + 36 >> 2] & 127](m) | 0;
else m = c[z >> 2] | 0;
if (!(a[N >> 0] & 1)) z = l;
else z = c[y >> 2] | 0;
if ((m | 0) != (c[z + (n << 2) >> 2] | 0)) break;
n = n + 1 | 0;
m = c[b >> 2] | 0;
z = m + 12 | 0;
A = c[z >> 2] | 0;
if ((A | 0) == (c[m + 16 >> 2] | 0)) {
Gb[c[(c[m >> 2] | 0) + 40 >> 2] & 127](m) | 0;
continue
} else {
c[z >> 2] = A + 4;
continue
}
}
c[j >> 2] = c[j >> 2] | 4;
j = 0;
break h
}while (0);e = c[q >> 2] | 0;
if ((e | 0) != (P | 0) ? (c[w >> 2] = 0, Uq(r, e, P, w), (c[w >> 2] | 0) != 0) : 0) {
c[j >> 2] = c[j >> 2] | 4;
j = 0
} else j = 1
}
while (0);
Ml(t);
Ml(u);
Ml(s);
Ml(v);
sl(r);
r = c[q >> 2] | 0;
c[q >> 2] = 0;
if (r) Cb[c[o >> 2] & 255](r);
i = p;
return j | 0
}
function Zq(b, d, e, f, g, h, j) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
k = i;
i = i + 432 | 0;
v = k + 424 | 0;
s = k + 24 | 0;
l = k + 16 | 0;
p = k + 8 | 0;
u = k + 4 | 0;
q = k + 428 | 0;
w = k;
c[l >> 2] = s;
b = l + 4 | 0;
c[b >> 2] = 160;
s = s + 400 | 0;
n = gm(g) | 0;
c[u >> 2] = n;
r = Jr(u, 1101592) | 0;
a[q >> 0] = 0;
o = c[e >> 2] | 0;
c[w >> 2] = o;
t = c[g + 4 >> 2] | 0;
c[v >> 2] = c[w >> 2];
g = o;
if (Yq(d, v, f, u, t, h, q, r, l, p, s) | 0) {
if (!(a[j >> 0] & 1)) a[j >> 0] = 0;
else c[c[j + 8 >> 2] >> 2] = 0;
c[j + 4 >> 2] = 0;
if (a[q >> 0] | 0) Ql(j, Mb[c[(c[r >> 2] | 0) + 44 >> 2] & 63](r, 45) | 0);
f = Mb[c[(c[r >> 2] | 0) + 44 >> 2] & 63](r, 48) | 0;
r = c[l >> 2] | 0;
p = c[p >> 2] | 0;
q = p + -4 | 0;
a: do
if (r >>> 0 < q >>> 0)
do {
if ((c[r >> 2] | 0) != (f | 0)) break a;
r = r + 4 | 0
} while (r >>> 0 < q >>> 0);
while (0);
Zt(j, r, p) | 0
}
j = c[d >> 2] | 0;
do
if (j) {
p = c[j + 12 >> 2] | 0;
if ((p | 0) == (c[j + 16 >> 2] | 0)) j = Gb[c[(c[j >> 2] | 0) + 36 >> 2] & 127](j) | 0;
else j = c[p >> 2] | 0;
if ((j | 0) == -1) {
c[d >> 2] = 0;
j = 1;
break
} else {
j = (c[d >> 2] | 0) == 0;
break
}
} else j = 1;
while (0);
do
if (o) {
p = c[g + 12 >> 2] | 0;
if ((p | 0) == (c[g + 16 >> 2] | 0)) o = Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](g) | 0;
else o = c[p >> 2] | 0;
if ((o | 0) != -1)
if (j) break;
else {
m = 26;
break
}
else {
c[e >> 2] = 0;
m = 24;
break
}
} else m = 24;
while (0);
if ((m | 0) == 24 ? j : 0) m = 26;
if ((m | 0) == 26) c[h >> 2] = c[h >> 2] | 2;
m = c[d >> 2] | 0;
av(n) | 0;
n = c[l >> 2] | 0;
c[l >> 2] = 0;
if (n) Cb[c[b >> 2] & 255](n);
i = k;
return m | 0
}
function _q(b, d, e, f, g, h, j, k, l, m) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
l = l | 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;
n = i;
i = i + 112 | 0;
t = n + 100 | 0;
u = n + 88 | 0;
o = n + 76 | 0;
w = n + 64 | 0;
x = n + 52 | 0;
q = n + 48 | 0;
v = n + 36 | 0;
p = n + 24 | 0;
r = n + 12 | 0;
s = n;
if (b) {
p = Jr(d, 1101336) | 0;
Db[c[(c[p >> 2] | 0) + 44 >> 2] & 63](t, p);
b = c[t >> 2] | 0;
a[e >> 0] = b;
a[e + 1 >> 0] = b >> 8;
a[e + 2 >> 0] = b >> 16;
a[e + 3 >> 0] = b >> 24;
Db[c[(c[p >> 2] | 0) + 32 >> 2] & 63](u, p);
if (!(a[l >> 0] & 1)) a[l >> 0] = 0;
else c[c[l + 8 >> 2] >> 2] = 0;
c[l + 4 >> 2] = 0;
Pl(l, 0);
c[l >> 2] = c[u >> 2];
c[l + 4 >> 2] = c[u + 4 >> 2];
c[l + 8 >> 2] = c[u + 8 >> 2];
c[u >> 2] = 0;
c[u + 4 >> 2] = 0;
c[u + 8 >> 2] = 0;
Ml(u);
Db[c[(c[p >> 2] | 0) + 28 >> 2] & 63](o, p);
if (!(a[k >> 0] & 1)) a[k >> 0] = 0;
else c[c[k + 8 >> 2] >> 2] = 0;
c[k + 4 >> 2] = 0;
Pl(k, 0);
c[k >> 2] = c[o >> 2];
c[k + 4 >> 2] = c[o + 4 >> 2];
c[k + 8 >> 2] = c[o + 8 >> 2];
c[o >> 2] = 0;
c[o + 4 >> 2] = 0;
c[o + 8 >> 2] = 0;
Ml(o);
c[f >> 2] = Gb[c[(c[p >> 2] | 0) + 12 >> 2] & 127](p) | 0;
c[g >> 2] = Gb[c[(c[p >> 2] | 0) + 16 >> 2] & 127](p) | 0;
Db[c[(c[p >> 2] | 0) + 20 >> 2] & 63](w, p);
if (!(a[h >> 0] & 1)) {
a[h + 1 >> 0] = 0;
a[h >> 0] = 0
} else {
a[c[h + 8 >> 2] >> 0] = 0;
c[h + 4 >> 2] = 0
}
yl(h, 0);
c[h >> 2] = c[w >> 2];
c[h + 4 >> 2] = c[w + 4 >> 2];
c[h + 8 >> 2] = c[w + 8 >> 2];
c[w >> 2] = 0;
c[w + 4 >> 2] = 0;
c[w + 8 >> 2] = 0;
sl(w);
Db[c[(c[p >> 2] | 0) + 24 >> 2] & 63](x, p);
if (!(a[j >> 0] & 1)) a[j >> 0] = 0;
else c[c[j + 8 >> 2] >> 2] = 0;
c[j + 4 >> 2] = 0;
Pl(j, 0);
c[j >> 2] = c[x >> 2];
c[j + 4 >> 2] = c[x + 4 >> 2];
c[j + 8 >> 2] = c[x + 8 >> 2];
c[x >> 2] = 0;
c[x + 4 >> 2] = 0;
c[x + 8 >> 2] = 0;
Ml(x);
e = Gb[c[(c[p >> 2] | 0) + 36 >> 2] & 127](p) | 0
} else {
o = Jr(d, 1101272) | 0;
Db[c[(c[o >> 2] | 0) + 44 >> 2] & 63](q, o);
b = c[q >> 2] | 0;
a[e >> 0] = b;
a[e + 1 >> 0] = b >> 8;
a[e + 2 >> 0] = b >> 16;
a[e + 3 >> 0] = b >> 24;
Db[c[(c[o >> 2] | 0) + 32 >> 2] & 63](v, o);
if (!(a[l >> 0] & 1)) a[l >> 0] = 0;
else c[c[l + 8 >> 2] >> 2] = 0;
c[l + 4 >> 2] = 0;
Pl(l, 0);
c[l >> 2] = c[v >> 2];
c[l + 4 >> 2] = c[v + 4 >> 2];
c[l + 8 >> 2] = c[v + 8 >> 2];
c[v >> 2] = 0;
c[v + 4 >> 2] = 0;
c[v + 8 >> 2] = 0;
Ml(v);
Db[c[(c[o >> 2] | 0) + 28 >> 2] & 63](p, o);
if (!(a[k >> 0] & 1)) a[k >> 0] = 0;
else c[c[k + 8 >> 2] >> 2] = 0;
c[k + 4 >> 2] = 0;
Pl(k, 0);
c[k >> 2] = c[p >> 2];
c[k + 4 >> 2] = c[p + 4 >> 2];
c[k + 8 >> 2] = c[p + 8 >> 2];
c[p >> 2] = 0;
c[p + 4 >> 2] = 0;
c[p + 8 >> 2] = 0;
Ml(p);
c[f >> 2] = Gb[c[(c[o >> 2] | 0) + 12 >> 2] & 127](o) | 0;
c[g >> 2] = Gb[c[(c[o >> 2] | 0) + 16 >> 2] & 127](o) | 0;
Db[c[(c[o >> 2] | 0) + 20 >> 2] & 63](r, o);
if (!(a[h >> 0] & 1)) {
a[h + 1 >> 0] = 0;
a[h >> 0] = 0
} else {
a[c[h + 8 >> 2] >> 0] = 0;
c[h + 4 >> 2] = 0
}
yl(h, 0);
c[h >> 2] = c[r >> 2];
c[h + 4 >> 2] = c[r + 4 >> 2];
c[h + 8 >> 2] = c[r + 8 >> 2];
c[r >> 2] = 0;
c[r + 4 >> 2] = 0;
c[r + 8 >> 2] = 0;
sl(r);
Db[c[(c[o >> 2] | 0) + 24 >> 2] & 63](s, o);
if (!(a[j >> 0] & 1)) a[j >> 0] = 0;
else c[c[j + 8 >> 2] >> 2] = 0;
c[j + 4 >> 2] = 0;
Pl(j, 0);
c[j >> 2] = c[s >> 2];
c[j + 4 >> 2] = c[s + 4 >> 2];
c[j + 8 >> 2] = c[s + 8 >> 2];
c[s >> 2] = 0;
c[s + 4 >> 2] = 0;
c[s + 8 >> 2] = 0;
Ml(s);
e = Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](o) | 0
}
c[m >> 2] = e;
i = n;
return
}
function $q(a) {
a = a | 0;
return
}
function ar(a) {
a = a | 0;
Ph(a);
return
}
function br(b, d, e, f, g, j) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
j = +j;
var 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;
p = i;
i = i + 384 | 0;
x = p + 8 | 0;
F = p;
E = p + 284 | 0;
D = p + 72 | 0;
G = p + 184 | 0;
t = p + 68 | 0;
A = p + 80 | 0;
v = p + 77 | 0;
u = p + 76 | 0;
m = p + 56 | 0;
b = p + 44 | 0;
n = p + 32 | 0;
C = p + 28 | 0;
B = p + 84 | 0;
z = p + 24 | 0;
y = p + 20 | 0;
w = p + 16 | 0;
c[D >> 2] = E;
h[x >> 3] = j;
E = Fj(E, 100, 1180587, x) | 0;
if (E >>> 0 > 99) {
G = Wn() | 0;
h[F >> 3] = j;
G = Rt(D, G, 1180587, F) | 0;
E = c[D >> 2] | 0;
if (!E) ui();
F = zk(G) | 0;
if (!F) ui();
else {
l = F;
k = E;
r = F;
q = G
}
} else {
l = 0;
k = 0;
r = G;
q = E
}
E = gm(f) | 0;
c[t >> 2] = E;
F = Jr(t, 1101600) | 0;
G = c[D >> 2] | 0;
Kb[c[(c[F >> 2] | 0) + 32 >> 2] & 7](F, G, G + q | 0, r) | 0;
if (!q) D = 0;
else D = (a[c[D >> 2] >> 0] | 0) == 45;
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
c[n >> 2] = 0;
c[n + 4 >> 2] = 0;
c[n + 8 >> 2] = 0;
cr(e, D, t, A, v, u, m, b, n, C);
e = c[C >> 2] | 0;
if ((q | 0) > (e | 0)) {
G = a[n >> 0] | 0;
C = a[b >> 0] | 0;
C = (q - e << 1 | 1) + e + ((G & 1) == 0 ? (G & 255) >>> 1 : c[n + 4 >> 2] | 0) + ((C & 1) == 0 ? (C & 255) >>> 1 : c[b + 4 >> 2] | 0) | 0
} else {
G = a[n >> 0] | 0;
C = a[b >> 0] | 0;
C = e + 2 + ((G & 1) == 0 ? (G & 255) >>> 1 : c[n + 4 >> 2] | 0) + ((C & 1) == 0 ? (C & 255) >>> 1 : c[b + 4 >> 2] | 0) | 0
}
if (C >>> 0 > 100) {
B = zk(C) | 0;
if (!B) ui();
else {
o = B;
s = B
}
} else {
o = 0;
s = B
}
dr(s, z, y, c[f + 4 >> 2] | 0, r, r + q | 0, F, D, A, a[v >> 0] | 0, a[u >> 0] | 0, m, b, n, e);
c[w >> 2] = c[d >> 2];
G = c[z >> 2] | 0;
q = c[y >> 2] | 0;
c[x >> 2] = c[w >> 2];
q = Od(x, s, G, q, f, g) | 0;
if (o) {
Ak(o);
E = c[t >> 2] | 0
}
sl(n);
sl(b);
sl(m);
av(E) | 0;
if (l) Ak(l);
if (k) Ak(k);
i = p;
return q | 0
}
function cr(b, d, e, f, g, h, j, k, l, m) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
l = l | 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;
n = i;
i = i + 112 | 0;
t = n + 108 | 0;
u = n + 96 | 0;
x = n + 92 | 0;
v = n + 80 | 0;
q = n + 68 | 0;
r = n + 56 | 0;
y = n + 52 | 0;
w = n + 40 | 0;
s = n + 36 | 0;
z = n + 24 | 0;
p = n + 12 | 0;
o = n;
if (b) {
o = Jr(e, 1101208) | 0;
p = c[o >> 2] | 0;
if (d) {
Db[c[p + 44 >> 2] & 63](t, o);
b = c[t >> 2] | 0;
a[f >> 0] = b;
a[f + 1 >> 0] = b >> 8;
a[f + 2 >> 0] = b >> 16;
a[f + 3 >> 0] = b >> 24;
Db[c[(c[o >> 2] | 0) + 32 >> 2] & 63](u, o);
if (!(a[l >> 0] & 1)) {
a[l + 1 >> 0] = 0;
a[l >> 0] = 0
} else {
a[c[l + 8 >> 2] >> 0] = 0;
c[l + 4 >> 2] = 0
}
yl(l, 0);
c[l >> 2] = c[u >> 2];
c[l + 4 >> 2] = c[u + 4 >> 2];
c[l + 8 >> 2] = c[u + 8 >> 2];
c[u >> 2] = 0;
c[u + 4 >> 2] = 0;
c[u + 8 >> 2] = 0;
sl(u);
l = o
} else {
Db[c[p + 40 >> 2] & 63](x, o);
b = c[x >> 2] | 0;
a[f >> 0] = b;
a[f + 1 >> 0] = b >> 8;
a[f + 2 >> 0] = b >> 16;
a[f + 3 >> 0] = b >> 24;
Db[c[(c[o >> 2] | 0) + 28 >> 2] & 63](v, o);
if (!(a[l >> 0] & 1)) {
a[l + 1 >> 0] = 0;
a[l >> 0] = 0
} else {
a[c[l + 8 >> 2] >> 0] = 0;
c[l + 4 >> 2] = 0
}
yl(l, 0);
c[l >> 2] = c[v >> 2];
c[l + 4 >> 2] = c[v + 4 >> 2];
c[l + 8 >> 2] = c[v + 8 >> 2];
c[v >> 2] = 0;
c[v + 4 >> 2] = 0;
c[v + 8 >> 2] = 0;
sl(v);
l = o
}
a[g >> 0] = Gb[c[(c[o >> 2] | 0) + 12 >> 2] & 127](o) | 0;
a[h >> 0] = Gb[c[(c[o >> 2] | 0) + 16 >> 2] & 127](o) | 0;
Db[c[(c[l >> 2] | 0) + 20 >> 2] & 63](q, o);
if (!(a[j >> 0] & 1)) {
a[j + 1 >> 0] = 0;
a[j >> 0] = 0
} else {
a[c[j + 8 >> 2] >> 0] = 0;
c[j + 4 >> 2] = 0
}
yl(j, 0);
c[j >> 2] = c[q >> 2];
c[j + 4 >> 2] = c[q + 4 >> 2];
c[j + 8 >> 2] = c[q + 8 >> 2];
c[q >> 2] = 0;
c[q + 4 >> 2] = 0;
c[q + 8 >> 2] = 0;
sl(q);
Db[c[(c[l >> 2] | 0) + 24 >> 2] & 63](r, o);
if (!(a[k >> 0] & 1)) {
a[k + 1 >> 0] = 0;
a[k >> 0] = 0
} else {
a[c[k + 8 >> 2] >> 0] = 0;
c[k + 4 >> 2] = 0
}
yl(k, 0);
c[k >> 2] = c[r >> 2];
c[k + 4 >> 2] = c[r + 4 >> 2];
c[k + 8 >> 2] = c[r + 8 >> 2];
c[r >> 2] = 0;
c[r + 4 >> 2] = 0;
c[r + 8 >> 2] = 0;
sl(r);
h = Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](o) | 0
} else {
q = Jr(e, 1101144) | 0;
r = c[q >> 2] | 0;
if (d) {
Db[c[r + 44 >> 2] & 63](y, q);
b = c[y >> 2] | 0;
a[f >> 0] = b;
a[f + 1 >> 0] = b >> 8;
a[f + 2 >> 0] = b >> 16;
a[f + 3 >> 0] = b >> 24;
Db[c[(c[q >> 2] | 0) + 32 >> 2] & 63](w, q);
if (!(a[l >> 0] & 1)) {
a[l + 1 >> 0] = 0;
a[l >> 0] = 0
} else {
a[c[l + 8 >> 2] >> 0] = 0;
c[l + 4 >> 2] = 0
}
yl(l, 0);
c[l >> 2] = c[w >> 2];
c[l + 4 >> 2] = c[w + 4 >> 2];
c[l + 8 >> 2] = c[w + 8 >> 2];
c[w >> 2] = 0;
c[w + 4 >> 2] = 0;
c[w + 8 >> 2] = 0;
sl(w);
l = q
} else {
Db[c[r + 40 >> 2] & 63](s, q);
b = c[s >> 2] | 0;
a[f >> 0] = b;
a[f + 1 >> 0] = b >> 8;
a[f + 2 >> 0] = b >> 16;
a[f + 3 >> 0] = b >> 24;
Db[c[(c[q >> 2] | 0) + 28 >> 2] & 63](z, q);
if (!(a[l >> 0] & 1)) {
a[l + 1 >> 0] = 0;
a[l >> 0] = 0
} else {
a[c[l + 8 >> 2] >> 0] = 0;
c[l + 4 >> 2] = 0
}
yl(l, 0);
c[l >> 2] = c[z >> 2];
c[l + 4 >> 2] = c[z + 4 >> 2];
c[l + 8 >> 2] = c[z + 8 >> 2];
c[z >> 2] = 0;
c[z + 4 >> 2] = 0;
c[z + 8 >> 2] = 0;
sl(z);
l = q
}
a[g >> 0] = Gb[c[(c[q >> 2] | 0) + 12 >> 2] & 127](q) | 0;
a[h >> 0] = Gb[c[(c[q >> 2] | 0) + 16 >> 2] & 127](q) | 0;
Db[c[(c[l >> 2] | 0) + 20 >> 2] & 63](p, q);
if (!(a[j >> 0] & 1)) {
a[j + 1 >> 0] = 0;
a[j >> 0] = 0
} else {
a[c[j + 8 >> 2] >> 0] = 0;
c[j + 4 >> 2] = 0
}
yl(j, 0);
c[j >> 2] = c[p >> 2];
c[j + 4 >> 2] = c[p + 4 >> 2];
c[j + 8 >> 2] = c[p + 8 >> 2];
c[p >> 2] = 0;
c[p + 4 >> 2] = 0;
c[p + 8 >> 2] = 0;
sl(p);
Db[c[(c[l >> 2] | 0) + 24 >> 2] & 63](o, q);
if (!(a[k >> 0] & 1)) {
a[k + 1 >> 0] = 0;
a[k >> 0] = 0
} else {
a[c[k + 8 >> 2] >> 0] = 0;
c[k + 4 >> 2] = 0
}
yl(k, 0);
c[k >> 2] = c[o >> 2];
c[k + 4 >> 2] = c[o + 4 >> 2];
c[k + 8 >> 2] = c[o + 8 >> 2];
c[o >> 2] = 0;
c[o + 4 >> 2] = 0;
c[o + 8 >> 2] = 0;
sl(o);
h = Gb[c[(c[q >> 2] | 0) + 36 >> 2] & 127](q) | 0
}
c[m >> 2] = h;
i = n;
return
}
function dr(d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) {
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
i = i | 0;
j = j | 0;
k = k | 0;
l = l | 0;
m = m | 0;
n = n | 0;
o = o | 0;
p = p | 0;
q = q | 0;
r = r | 0;
var 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;
c[f >> 2] = d;
u = q + 4 | 0;
t = q + 8 | 0;
s = q + 1 | 0;
G = p + 4 | 0;
H = (g & 512 | 0) == 0;
E = p + 8 | 0;
D = p + 1 | 0;
C = j + 8 | 0;
B = (r | 0) > 0;
v = o + 4 | 0;
x = o + 8 | 0;
w = o + 1 | 0;
y = r + 1 | 0;
A = -2 - r - ((r | 0) < 0 ? ~r : -1) | 0;
z = (r | 0) > 0;
I = 0;
do {
switch (a[l + I >> 0] | 0) {
case 0:
{
c[e >> 2] = c[f >> 2];
break
};
case 1:
{
c[e >> 2] = c[f >> 2];N = Mb[c[(c[j >> 2] | 0) + 28 >> 2] & 63](j, 32) | 0;O = c[f >> 2] | 0;c[f >> 2] = O + 1;a[O >> 0] = N;
break
};
case 3:
{
O = a[q >> 0] | 0;J = (O & 1) == 0;
if ((J ? (O & 255) >>> 1 : c[u >> 2] | 0) | 0) {
N = a[(J ? s : c[t >> 2] | 0) >> 0] | 0;
O = c[f >> 2] | 0;
c[f >> 2] = O + 1;
a[O >> 0] = N
}
break
};
case 2:
{
L = a[p >> 0] | 0;J = (L & 1) == 0;L = J ? (L & 255) >>> 1 : c[G >> 2] | 0;
if (!(H | (L | 0) == 0)) {
K = J ? D : c[E >> 2] | 0;
J = K + L | 0;
M = c[f >> 2] | 0;
if (L)
do {
a[M >> 0] = a[K >> 0] | 0;
K = K + 1 | 0;
M = M + 1 | 0
} while ((K | 0) != (J | 0));
c[f >> 2] = M
}
break
};
case 4:
{
J = c[f >> 2] | 0;h = k ? h + 1 | 0 : h;L = h;M = c[C >> 2] | 0;a: do
if (h >>> 0 < i >>> 0) {
K = h;
do {
N = a[K >> 0] | 0;
if (N << 24 >> 24 <= -1) break a;
if (!(b[M + (N << 24 >> 24 << 1) >> 1] & 2048)) break a;
K = K + 1 | 0
} while (K >>> 0 < i >>> 0)
} else K = h;while (0);M = K;
if (B) {
M = -2 - M - ~(M >>> 0 > L >>> 0 ? L : M) | 0;
M = A >>> 0 > M >>> 0 ? A : M;
if (K >>> 0 > h >>> 0 & z) {
N = K;
L = r;
while (1) {
N = N + -1 | 0;
P = a[N >> 0] | 0;
O = c[f >> 2] | 0;
c[f >> 2] = O + 1;
a[O >> 0] = P;
O = (L | 0) > 1;
if (!(N >>> 0 > h >>> 0 & O)) {
N = O;
break
} else L = L + -1 | 0
}
} else N = z;
L = y + M | 0;
K = K + (M + 1) | 0;
if (N) M = Mb[c[(c[j >> 2] | 0) + 28 >> 2] & 63](j, 48) | 0;
else M = 0;
N = c[f >> 2] | 0;
c[f >> 2] = N + 1;
if ((L | 0) > 0)
while (1) {
a[N >> 0] = M;
N = c[f >> 2] | 0;
c[f >> 2] = N + 1;
if ((L | 0) > 1) L = L + -1 | 0;
else break
}
a[N >> 0] = m
}
if ((K | 0) != (h | 0)) {
P = a[o >> 0] | 0;
L = (P & 1) == 0;
if (!((L ? (P & 255) >>> 1 : c[v >> 2] | 0) | 0)) M = -1;
else M = a[(L ? w : c[x >> 2] | 0) >> 0] | 0;
if ((K | 0) != (h | 0)) {
N = 0;
L = 0;
while (1) {
if ((L | 0) == (M | 0)) {
P = c[f >> 2] | 0;
c[f >> 2] = P + 1;
a[P >> 0] = n;
N = N + 1 | 0;
P = a[o >> 0] | 0;
M = (P & 1) == 0;
if (N >>> 0 < (M ? (P & 255) >>> 1 : c[v >> 2] | 0) >>> 0) {
M = a[(M ? w : c[x >> 2] | 0) + N >> 0] | 0;
M = M << 24 >> 24 == 127 ? -1 : M << 24 >> 24;
L = 0
} else {
M = L;
L = 0
}
}
K = K + -1 | 0;
O = a[K >> 0] | 0;
P = c[f >> 2] | 0;
c[f >> 2] = P + 1;
a[P >> 0] = O;
if ((K | 0) == (h | 0)) break;
else L = L + 1 | 0
}
}
} else {
O = Mb[c[(c[j >> 2] | 0) + 28 >> 2] & 63](j, 48) | 0;
P = c[f >> 2] | 0;
c[f >> 2] = P + 1;
a[P >> 0] = O
}
K = c[f >> 2] | 0;
if ((J | 0) != (K | 0) ? (F = K + -1 | 0, J >>> 0 < F >>> 0) : 0) {
K = F;
do {
P = a[J >> 0] | 0;
a[J >> 0] = a[K >> 0] | 0;
a[K >> 0] = P;
J = J + 1 | 0;
K = K + -1 | 0
} while (J >>> 0 < K >>> 0)
}
break
};
default:
{}
}
I = I + 1 | 0
} while ((I | 0) != 4);
P = a[q >> 0] | 0;
l = (P & 1) == 0;
u = l ? (P & 255) >>> 1 : c[u >> 2] | 0;
if (u >>> 0 > 1) {
t = l ? s : c[t >> 2] | 0;
s = t + u | 0;
l = c[f >> 2] | 0;
if ((u | 0) != 1) {
t = t + 1 | 0;
do {
a[l >> 0] = a[t >> 0] | 0;
l = l + 1 | 0;
t = t + 1 | 0
} while ((t | 0) != (s | 0))
}
c[f >> 2] = l
}
switch (g & 176 | 0) {
case 32:
{
c[e >> 2] = c[f >> 2];
break
};
case 16:
break;
default:
c[e >> 2] = d
}
return
}
function er(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 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;
b = i;
i = i + 176 | 0;
w = b + 56 | 0;
n = b + 52 | 0;
x = b + 64 | 0;
q = b + 61 | 0;
s = b + 60 | 0;
m = b + 40 | 0;
l = b + 28 | 0;
k = b + 16 | 0;
B = b + 12 | 0;
y = b + 68 | 0;
u = b + 8 | 0;
t = b + 4 | 0;
v = b;
o = gm(f) | 0;
c[n >> 2] = o;
r = Jr(n, 1101600) | 0;
C = a[h >> 0] | 0;
z = (C & 1) == 0;
A = h + 4 | 0;
if (!((z ? (C & 255) >>> 1 : c[A >> 2] | 0) | 0)) z = 0;
else {
z = a[(z ? h + 1 | 0 : c[h + 8 >> 2] | 0) >> 0] | 0;
z = z << 24 >> 24 == (Mb[c[(c[r >> 2] | 0) + 28 >> 2] & 63](r, 45) | 0) << 24 >> 24
}
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
c[l >> 2] = 0;
c[l + 4 >> 2] = 0;
c[l + 8 >> 2] = 0;
c[k >> 2] = 0;
c[k + 4 >> 2] = 0;
c[k + 8 >> 2] = 0;
cr(e, z, n, x, q, s, m, l, k, B);
e = a[h >> 0] | 0;
A = c[A >> 2] | 0;
C = (e & 1) == 0 ? (e & 255) >>> 1 : A;
B = c[B >> 2] | 0;
if ((C | 0) > (B | 0)) {
E = a[k >> 0] | 0;
D = a[l >> 0] | 0;
C = (C - B << 1 | 1) + B + ((E & 1) == 0 ? (E & 255) >>> 1 : c[k + 4 >> 2] | 0) + ((D & 1) == 0 ? (D & 255) >>> 1 : c[l + 4 >> 2] | 0) | 0
} else {
E = a[k >> 0] | 0;
C = a[l >> 0] | 0;
C = B + 2 + ((E & 1) == 0 ? (E & 255) >>> 1 : c[k + 4 >> 2] | 0) + ((C & 1) == 0 ? (C & 255) >>> 1 : c[l + 4 >> 2] | 0) | 0
}
if (C >>> 0 > 100) {
y = zk(C) | 0;
if (!y) ui();
else {
j = y;
p = y
}
} else {
j = 0;
p = y
}
D = (e & 1) == 0;
E = D ? h + 1 | 0 : c[h + 8 >> 2] | 0;
dr(p, u, t, c[f + 4 >> 2] | 0, E, E + (D ? (e & 255) >>> 1 : A) | 0, r, z, x, a[q >> 0] | 0, a[s >> 0] | 0, m, l, k, B);
c[v >> 2] = c[d >> 2];
D = c[u >> 2] | 0;
E = c[t >> 2] | 0;
c[w >> 2] = c[v >> 2];
g = Od(w, p, D, E, f, g) | 0;
if (j) {
Ak(j);
o = c[n >> 2] | 0
}
sl(k);
sl(l);
sl(m);
av(o) | 0;
i = b;
return g | 0
}
function fr(a) {
a = a | 0;
return
}
function gr(a) {
a = a | 0;
Ph(a);
return
}
function hr(b, d, e, f, g, j) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
j = +j;
var 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;
p = i;
i = i + 1008 | 0;
x = p + 8 | 0;
F = p;
E = p + 896 | 0;
D = p + 888 | 0;
G = p + 488 | 0;
t = p + 480 | 0;
A = p + 892 | 0;
v = p + 72 | 0;
u = p + 68 | 0;
m = p + 56 | 0;
b = p + 44 | 0;
n = p + 32 | 0;
C = p + 28 | 0;
B = p + 80 | 0;
z = p + 24 | 0;
y = p + 20 | 0;
w = p + 16 | 0;
c[D >> 2] = E;
h[x >> 3] = j;
E = Fj(E, 100, 1180587, x) | 0;
if (E >>> 0 > 99) {
G = Wn() | 0;
h[F >> 3] = j;
G = Rt(D, G, 1180587, F) | 0;
E = c[D >> 2] | 0;
if (!E) ui();
F = zk(G << 2) | 0;
if (!F) ui();
else {
l = F;
k = E;
r = F;
q = G
}
} else {
l = 0;
k = 0;
r = G;
q = E
}
E = gm(f) | 0;
c[t >> 2] = E;
F = Jr(t, 1101592) | 0;
G = c[D >> 2] | 0;
Kb[c[(c[F >> 2] | 0) + 48 >> 2] & 7](F, G, G + q | 0, r) | 0;
if (!q) D = 0;
else D = (a[c[D >> 2] >> 0] | 0) == 45;
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
c[n >> 2] = 0;
c[n + 4 >> 2] = 0;
c[n + 8 >> 2] = 0;
ir(e, D, t, A, v, u, m, b, n, C);
e = c[C >> 2] | 0;
if ((q | 0) > (e | 0)) {
G = a[n >> 0] | 0;
C = a[b >> 0] | 0;
C = (q - e << 1 | 1) + e + ((G & 1) == 0 ? (G & 255) >>> 1 : c[n + 4 >> 2] | 0) + ((C & 1) == 0 ? (C & 255) >>> 1 : c[b + 4 >> 2] | 0) | 0
} else {
G = a[n >> 0] | 0;
C = a[b >> 0] | 0;
C = e + 2 + ((G & 1) == 0 ? (G & 255) >>> 1 : c[n + 4 >> 2] | 0) + ((C & 1) == 0 ? (C & 255) >>> 1 : c[b + 4 >> 2] | 0) | 0
}
if (C >>> 0 > 100) {
B = zk(C << 2) | 0;
if (!B) ui();
else {
o = B;
s = B
}
} else {
o = 0;
s = B
}
jr(s, z, y, c[f + 4 >> 2] | 0, r, r + (q << 2) | 0, F, D, A, c[v >> 2] | 0, c[u >> 2] | 0, m, b, n, e);
c[w >> 2] = c[d >> 2];
G = c[z >> 2] | 0;
q = c[y >> 2] | 0;
c[x >> 2] = c[w >> 2];
q = St(x, s, G, q, f, g) | 0;
if (o) {
Ak(o);
E = c[t >> 2] | 0
}
Ml(n);
Ml(b);
sl(m);
av(E) | 0;
if (l) Ak(l);
if (k) Ak(k);
i = p;
return q | 0
}
function ir(b, d, e, f, g, h, j, k, l, m) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
l = l | 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;
n = i;
i = i + 112 | 0;
w = n + 108 | 0;
o = n + 96 | 0;
u = n + 92 | 0;
v = n + 80 | 0;
y = n + 68 | 0;
z = n + 56 | 0;
q = n + 52 | 0;
x = n + 40 | 0;
s = n + 36 | 0;
r = n + 24 | 0;
p = n + 12 | 0;
t = n;
if (b) {
p = Jr(e, 1101336) | 0;
q = c[p >> 2] | 0;
if (d) {
Db[c[q + 44 >> 2] & 63](w, p);
b = c[w >> 2] | 0;
a[f >> 0] = b;
a[f + 1 >> 0] = b >> 8;
a[f + 2 >> 0] = b >> 16;
a[f + 3 >> 0] = b >> 24;
Db[c[(c[p >> 2] | 0) + 32 >> 2] & 63](o, p);
if (!(a[l >> 0] & 1)) a[l >> 0] = 0;
else c[c[l + 8 >> 2] >> 2] = 0;
c[l + 4 >> 2] = 0;
Pl(l, 0);
c[l >> 2] = c[o >> 2];
c[l + 4 >> 2] = c[o + 4 >> 2];
c[l + 8 >> 2] = c[o + 8 >> 2];
c[o >> 2] = 0;
c[o + 4 >> 2] = 0;
c[o + 8 >> 2] = 0;
Ml(o)
} else {
Db[c[q + 40 >> 2] & 63](u, p);
b = c[u >> 2] | 0;
a[f >> 0] = b;
a[f + 1 >> 0] = b >> 8;
a[f + 2 >> 0] = b >> 16;
a[f + 3 >> 0] = b >> 24;
Db[c[(c[p >> 2] | 0) + 28 >> 2] & 63](v, p);
if (!(a[l >> 0] & 1)) a[l >> 0] = 0;
else c[c[l + 8 >> 2] >> 2] = 0;
c[l + 4 >> 2] = 0;
Pl(l, 0);
c[l >> 2] = c[v >> 2];
c[l + 4 >> 2] = c[v + 4 >> 2];
c[l + 8 >> 2] = c[v + 8 >> 2];
c[v >> 2] = 0;
c[v + 4 >> 2] = 0;
c[v + 8 >> 2] = 0;
Ml(v)
}
c[g >> 2] = Gb[c[(c[p >> 2] | 0) + 12 >> 2] & 127](p) | 0;
c[h >> 2] = Gb[c[(c[p >> 2] | 0) + 16 >> 2] & 127](p) | 0;
Db[c[(c[p >> 2] | 0) + 20 >> 2] & 63](y, p);
if (!(a[j >> 0] & 1)) {
a[j + 1 >> 0] = 0;
a[j >> 0] = 0
} else {
a[c[j + 8 >> 2] >> 0] = 0;
c[j + 4 >> 2] = 0
}
yl(j, 0);
c[j >> 2] = c[y >> 2];
c[j + 4 >> 2] = c[y + 4 >> 2];
c[j + 8 >> 2] = c[y + 8 >> 2];
c[y >> 2] = 0;
c[y + 4 >> 2] = 0;
c[y + 8 >> 2] = 0;
sl(y);
Db[c[(c[p >> 2] | 0) + 24 >> 2] & 63](z, p);
if (!(a[k >> 0] & 1)) a[k >> 0] = 0;
else c[c[k + 8 >> 2] >> 2] = 0;
c[k + 4 >> 2] = 0;
Pl(k, 0);
c[k >> 2] = c[z >> 2];
c[k + 4 >> 2] = c[z + 4 >> 2];
c[k + 8 >> 2] = c[z + 8 >> 2];
c[z >> 2] = 0;
c[z + 4 >> 2] = 0;
c[z + 8 >> 2] = 0;
Ml(z);
d = Gb[c[(c[p >> 2] | 0) + 36 >> 2] & 127](p) | 0
} else {
o = Jr(e, 1101272) | 0;
u = c[o >> 2] | 0;
if (d) {
Db[c[u + 44 >> 2] & 63](q, o);
b = c[q >> 2] | 0;
a[f >> 0] = b;
a[f + 1 >> 0] = b >> 8;
a[f + 2 >> 0] = b >> 16;
a[f + 3 >> 0] = b >> 24;
Db[c[(c[o >> 2] | 0) + 32 >> 2] & 63](x, o);
if (!(a[l >> 0] & 1)) a[l >> 0] = 0;
else c[c[l + 8 >> 2] >> 2] = 0;
c[l + 4 >> 2] = 0;
Pl(l, 0);
c[l >> 2] = c[x >> 2];
c[l + 4 >> 2] = c[x + 4 >> 2];
c[l + 8 >> 2] = c[x + 8 >> 2];
c[x >> 2] = 0;
c[x + 4 >> 2] = 0;
c[x + 8 >> 2] = 0;
Ml(x)
} else {
Db[c[u + 40 >> 2] & 63](s, o);
b = c[s >> 2] | 0;
a[f >> 0] = b;
a[f + 1 >> 0] = b >> 8;
a[f + 2 >> 0] = b >> 16;
a[f + 3 >> 0] = b >> 24;
Db[c[(c[o >> 2] | 0) + 28 >> 2] & 63](r, o);
if (!(a[l >> 0] & 1)) a[l >> 0] = 0;
else c[c[l + 8 >> 2] >> 2] = 0;
c[l + 4 >> 2] = 0;
Pl(l, 0);
c[l >> 2] = c[r >> 2];
c[l + 4 >> 2] = c[r + 4 >> 2];
c[l + 8 >> 2] = c[r + 8 >> 2];
c[r >> 2] = 0;
c[r + 4 >> 2] = 0;
c[r + 8 >> 2] = 0;
Ml(r)
}
c[g >> 2] = Gb[c[(c[o >> 2] | 0) + 12 >> 2] & 127](o) | 0;
c[h >> 2] = Gb[c[(c[o >> 2] | 0) + 16 >> 2] & 127](o) | 0;
Db[c[(c[o >> 2] | 0) + 20 >> 2] & 63](p, o);
if (!(a[j >> 0] & 1)) {
a[j + 1 >> 0] = 0;
a[j >> 0] = 0
} else {
a[c[j + 8 >> 2] >> 0] = 0;
c[j + 4 >> 2] = 0
}
yl(j, 0);
c[j >> 2] = c[p >> 2];
c[j + 4 >> 2] = c[p + 4 >> 2];
c[j + 8 >> 2] = c[p + 8 >> 2];
c[p >> 2] = 0;
c[p + 4 >> 2] = 0;
c[p + 8 >> 2] = 0;
sl(p);
Db[c[(c[o >> 2] | 0) + 24 >> 2] & 63](t, o);
if (!(a[k >> 0] & 1)) a[k >> 0] = 0;
else c[c[k + 8 >> 2] >> 2] = 0;
c[k + 4 >> 2] = 0;
Pl(k, 0);
c[k >> 2] = c[t >> 2];
c[k + 4 >> 2] = c[t + 4 >> 2];
c[k + 8 >> 2] = c[t + 8 >> 2];
c[t >> 2] = 0;
c[t + 4 >> 2] = 0;
c[t + 8 >> 2] = 0;
Ml(t);
d = Gb[c[(c[o >> 2] | 0) + 36 >> 2] & 127](o) | 0
}
c[m >> 2] = d;
i = n;
return
}
function jr(b, d, e, f, g, h, i, j, k, l, m, n, o, p, q) {
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;
l = l | 0;
m = m | 0;
n = n | 0;
o = o | 0;
p = p | 0;
q = q | 0;
var 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;
c[e >> 2] = b;
r = p + 4 | 0;
s = p + 8 | 0;
x = o + 4 | 0;
z = (f & 512 | 0) == 0;
y = o + 8 | 0;
w = (q | 0) > 0;
B = n + 4 | 0;
u = n + 8 | 0;
t = n + 1 | 0;
v = (q | 0) > 0;
C = 0;
do {
switch (a[k + C >> 0] | 0) {
case 0:
{
c[d >> 2] = c[e >> 2];
break
};
case 1:
{
c[d >> 2] = c[e >> 2];I = Mb[c[(c[i >> 2] | 0) + 44 >> 2] & 63](i, 32) | 0;J = c[e >> 2] | 0;c[e >> 2] = J + 4;c[J >> 2] = I;
break
};
case 3:
{
J = a[p >> 0] | 0;D = (J & 1) == 0;
if ((D ? (J & 255) >>> 1 : c[r >> 2] | 0) | 0) {
I = c[(D ? r : c[s >> 2] | 0) >> 2] | 0;
J = c[e >> 2] | 0;
c[e >> 2] = J + 4;
c[J >> 2] = I
}
break
};
case 2:
{
D = a[o >> 0] | 0;E = (D & 1) == 0;D = E ? (D & 255) >>> 1 : c[x >> 2] | 0;
if (!(z | (D | 0) == 0)) {
H = E ? x : c[y >> 2] | 0;
F = H + (D << 2) | 0;
G = c[e >> 2] | 0;
if (D) {
E = G;
while (1) {
c[E >> 2] = c[H >> 2];
H = H + 4 | 0;
if ((H | 0) == (F | 0)) break;
else E = E + 4 | 0
}
}
c[e >> 2] = G + (D << 2)
}
break
};
case 4:
{
D = c[e >> 2] | 0;g = j ? g + 4 | 0 : g;a: do
if (g >>> 0 < h >>> 0) {
F = g;
do {
if (!(zb[c[(c[i >> 2] | 0) + 12 >> 2] & 31](i, 2048, c[F >> 2] | 0) | 0)) break a;
F = F + 4 | 0
} while (F >>> 0 < h >>> 0)
} else F = g;while (0);
if (w) {
if (F >>> 0 > g >>> 0 & v) {
H = c[e >> 2] | 0;
I = q;
while (1) {
F = F + -4 | 0;
E = H + 4 | 0;
c[H >> 2] = c[F >> 2];
G = I + -1 | 0;
H = (I | 0) > 1;
if (F >>> 0 > g >>> 0 & H) {
H = E;
I = G
} else break
}
c[e >> 2] = E;
E = H
} else {
E = v;
G = q
}
if (E) H = Mb[c[(c[i >> 2] | 0) + 44 >> 2] & 63](i, 48) | 0;
else H = 0;
I = c[e >> 2] | 0;
J = G + ((G | 0) < 0 ? ~G : -1) | 0;
if ((G | 0) > 0) {
E = I;
while (1) {
c[E >> 2] = H;
if ((G | 0) > 1) {
E = E + 4 | 0;
G = G + -1 | 0
} else break
}
}
c[e >> 2] = I + (J + 2 << 2);
c[I + (J + 1 << 2) >> 2] = l
}
if ((F | 0) == (g | 0)) {
I = Mb[c[(c[i >> 2] | 0) + 44 >> 2] & 63](i, 48) | 0;
J = c[e >> 2] | 0;
E = J + 4 | 0;
c[e >> 2] = E;
c[J >> 2] = I
} else {
J = a[n >> 0] | 0;
G = (J & 1) == 0;
E = c[B >> 2] | 0;
if (!((G ? (J & 255) >>> 1 : E) | 0)) J = -1;
else J = a[(G ? t : c[u >> 2] | 0) >> 0] | 0;
if ((F | 0) != (g | 0)) {
I = 0;
G = 0;
while (1) {
H = c[e >> 2] | 0;
if ((G | 0) == (J | 0)) {
J = H + 4 | 0;
c[e >> 2] = J;
c[H >> 2] = m;
I = I + 1 | 0;
K = a[n >> 0] | 0;
H = (K & 1) == 0;
if (I >>> 0 < (H ? (K & 255) >>> 1 : E) >>> 0) {
G = a[(H ? t : c[u >> 2] | 0) + I >> 0] | 0;
H = J;
J = G << 24 >> 24 == 127 ? -1 : G << 24 >> 24;
G = 0
} else {
H = J;
J = G;
G = 0
}
}
F = F + -4 | 0;
K = c[F >> 2] | 0;
c[e >> 2] = H + 4;
c[H >> 2] = K;
if ((F | 0) == (g | 0)) break;
else G = G + 1 | 0
}
}
E = c[e >> 2] | 0
}
if ((D | 0) != (E | 0) ? (A = E + -4 | 0, D >>> 0 < A >>> 0) : 0) {
E = A;
do {
K = c[D >> 2] | 0;
c[D >> 2] = c[E >> 2];
c[E >> 2] = K;
D = D + 4 | 0;
E = E + -4 | 0
} while (D >>> 0 < E >>> 0)
}
break
};
default:
{}
}
C = C + 1 | 0
} while ((C | 0) != 4);
t = a[p >> 0] | 0;
u = (t & 1) == 0;
t = u ? (t & 255) >>> 1 : c[r >> 2] | 0;
if (t >>> 0 > 1) {
u = u ? r : c[s >> 2] | 0;
v = u + 4 | 0;
u = u + (t << 2) | 0;
r = c[e >> 2] | 0;
s = u - v | 0;
if ((t | 0) != 1) {
t = r;
while (1) {
c[t >> 2] = c[v >> 2];
v = v + 4 | 0;
if ((v | 0) == (u | 0)) break;
else t = t + 4 | 0
}
}
c[e >> 2] = r + (s >>> 2 << 2)
}
switch (f & 176 | 0) {
case 32:
{
c[d >> 2] = c[e >> 2];
break
};
case 16:
break;
default:
c[d >> 2] = b
}
return
}
function kr(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 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;
l = i;
i = i + 480 | 0;
r = l + 464 | 0;
n = l + 60 | 0;
t = l + 468 | 0;
u = l + 56 | 0;
v = l + 52 | 0;
m = l + 40 | 0;
b = l + 28 | 0;
k = l + 16 | 0;
C = l + 12 | 0;
z = l + 64 | 0;
y = l + 8 | 0;
q = l + 4 | 0;
w = l;
o = gm(f) | 0;
c[n >> 2] = o;
s = Jr(n, 1101592) | 0;
D = a[h >> 0] | 0;
A = (D & 1) == 0;
x = h + 4 | 0;
if (!((A ? (D & 255) >>> 1 : c[x >> 2] | 0) | 0)) A = 0;
else {
A = c[(A ? x : c[h + 8 >> 2] | 0) >> 2] | 0;
A = (A | 0) == (Mb[c[(c[s >> 2] | 0) + 44 >> 2] & 63](s, 45) | 0)
}
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
c[k >> 2] = 0;
c[k + 4 >> 2] = 0;
c[k + 8 >> 2] = 0;
ir(e, A, n, t, u, v, m, b, k, C);
B = a[h >> 0] | 0;
e = c[x >> 2] | 0;
D = (B & 1) == 0 ? (B & 255) >>> 1 : e;
C = c[C >> 2] | 0;
if ((D | 0) > (C | 0)) {
F = a[k >> 0] | 0;
E = a[b >> 0] | 0;
D = (D - C << 1 | 1) + C + ((F & 1) == 0 ? (F & 255) >>> 1 : c[k + 4 >> 2] | 0) + ((E & 1) == 0 ? (E & 255) >>> 1 : c[b + 4 >> 2] | 0) | 0
} else {
F = a[k >> 0] | 0;
D = a[b >> 0] | 0;
D = C + 2 + ((F & 1) == 0 ? (F & 255) >>> 1 : c[k + 4 >> 2] | 0) + ((D & 1) == 0 ? (D & 255) >>> 1 : c[b + 4 >> 2] | 0) | 0
}
if (D >>> 0 > 100) {
z = zk(D << 2) | 0;
if (!z) ui();
else {
j = z;
p = z
}
} else {
j = 0;
p = z
}
F = (B & 1) == 0;
E = F ? x : c[h + 8 >> 2] | 0;
jr(p, y, q, c[f + 4 >> 2] | 0, E, E + ((F ? (B & 255) >>> 1 : e) << 2) | 0, s, A, t, c[u >> 2] | 0, c[v >> 2] | 0, m, b, k, C);
c[w >> 2] = c[d >> 2];
F = c[y >> 2] | 0;
d = c[q >> 2] | 0;
c[r >> 2] = c[w >> 2];
d = St(r, p, F, d, f, g) | 0;
if (j) {
Ak(j);
o = c[n >> 2] | 0
}
Ml(k);
Ml(b);
sl(m);
av(o) | 0;
i = l;
return d | 0
}
function lr(a) {
a = a | 0;
return
}
function mr(a) {
a = a | 0;
Ph(a);
return
}
function nr(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
e = Ui((a[d >> 0] & 1) == 0 ? d + 1 | 0 : c[d + 8 >> 2] | 0, 1) | 0;
return e >>> ((e | 0) != (-1 | 0) & 1) | 0
}
function or(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 j = 0,
k = 0,
l = 0,
m = 0;
d = i;
i = i + 16 | 0;
j = d;
c[j >> 2] = 0;
c[j + 4 >> 2] = 0;
c[j + 8 >> 2] = 0;
l = a[h >> 0] | 0;
m = (l & 1) == 0;
k = m ? h + 1 | 0 : c[h + 8 >> 2] | 0;
l = m ? (l & 255) >>> 1 : c[h + 4 >> 2] | 0;
h = k + l | 0;
if ((l | 0) > 0)
do {
Al(j, a[k >> 0] | 0);
k = k + 1 | 0
} while (k >>> 0 < h >>> 0);
g = Ti((e | 0) == -1 ? -1 : e << 1, f, g, (a[j >> 0] & 1) == 0 ? j + 1 | 0 : c[j + 8 >> 2] | 0) | 0;
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
m = ik(g) | 0;
e = g + m | 0;
if ((m | 0) > 0)
do {
Al(b, a[g >> 0] | 0);
g = g + 1 | 0
} while (g >>> 0 < e >>> 0);
sl(j);
i = d;
return
}
function pr(a, b) {
a = a | 0;
b = b | 0;
return
}
function qr(a) {
a = a | 0;
return
}
function rr(a) {
a = a | 0;
Ph(a);
return
}
function sr(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
e = Ui((a[d >> 0] & 1) == 0 ? d + 1 | 0 : c[d + 8 >> 2] | 0, 1) | 0;
return e >>> ((e | 0) != (-1 | 0) & 1) | 0
}
function tr(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 j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0;
o = i;
i = i + 176 | 0;
n = o + 168 | 0;
j = o + 40 | 0;
l = o + 32 | 0;
k = o + 28 | 0;
m = o + 16 | 0;
p = o + 8 | 0;
d = o;
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
c[p + 4 >> 2] = 0;
c[p >> 2] = 1102076;
q = a[h >> 0] | 0;
t = (q & 1) == 0;
r = h + 4 | 0;
s = t ? r : c[h + 8 >> 2] | 0;
r = t ? (q & 255) >>> 1 : c[r >> 2] | 0;
h = s + (r << 2) | 0;
q = j + 32 | 0;
if ((r | 0) > 0)
do {
c[k >> 2] = s;
r = Jb[c[(c[p >> 2] | 0) + 12 >> 2] & 15](p, n, s, h, k, j, q, l) | 0;
if (j >>> 0 < (c[l >> 2] | 0) >>> 0) {
s = j;
do {
Al(m, a[s >> 0] | 0);
s = s + 1 | 0
} while (s >>> 0 < (c[l >> 2] | 0) >>> 0)
}
s = c[k >> 2] | 0
} while ((r | 0) != 2 & s >>> 0 < h >>> 0);
h = Ti((e | 0) == -1 ? -1 : e << 1, f, g, (a[m >> 0] & 1) == 0 ? m + 1 | 0 : c[m + 8 >> 2] | 0) | 0;
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
c[d + 4 >> 2] = 0;
c[d >> 2] = 1102124;
t = ik(h) | 0;
f = h + t | 0;
g = f;
e = j + 128 | 0;
if ((t | 0) > 0)
do {
c[k >> 2] = h;
p = Jb[c[(c[d >> 2] | 0) + 16 >> 2] & 15](d, n, h, (g - h | 0) > 32 ? h + 32 | 0 : f, k, j, e, l) | 0;
if (j >>> 0 < (c[l >> 2] | 0) >>> 0) {
h = j;
do {
Ql(b, c[h >> 2] | 0);
h = h + 4 | 0
} while (h >>> 0 < (c[l >> 2] | 0) >>> 0)
}
h = c[k >> 2] | 0
} while ((p | 0) != 2 & h >>> 0 < f >>> 0);
sl(m);
i = o;
return
}
function ur(a, b) {
a = a | 0;
b = b | 0;
return
}
function vr(a) {
a = a | 0;
Fa(1180593, 1180616, 314, 1180702)
}
function wr(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0;
c[a + 4 >> 2] = b + -1;
c[a >> 2] = 1101576;
d = a + 8 | 0;
_t(d, 28);
pl(a + 144 | 0, 1180491, 1);
d = c[d >> 2] | 0;
b = a + 12 | 0;
e = c[b >> 2] | 0;
if ((e | 0) != (d | 0)) {
do e = e + -4 | 0; while ((e | 0) != (d | 0));
c[b >> 2] = e
}
c[241091] = 0;
c[241090] = 1100504;
$t(a, 964360);
c[241093] = 0;
c[241092] = 1100544;
au(a, 964368);
_r(964376, 0, 0, 1);
bu(a, 964376);
c[241099] = 0;
c[241098] = 1101864;
cu(a, 964392);
c[241101] = 0;
c[241100] = 1101932;
du(a, 964400);
c[241103] = 0;
c[241102] = 1101684;
c[241104] = Wn() | 0;
eu(a, 964408);
c[241107] = 0;
c[241106] = 1101980;
fu(a, 964424);
c[241109] = 0;
c[241108] = 1102028;
gu(a, 964432);
Rs(964440, 1);
hu(a, 964440);
Ss(964464, 1);
iu(a, 964464);
c[241125] = 0;
c[241124] = 1100584;
ju(a, 964496);
c[241127] = 0;
c[241126] = 1100656;
ku(a, 964504);
c[241129] = 0;
c[241128] = 1100728;
lu(a, 964512);
c[241131] = 0;
c[241130] = 1100788;
mu(a, 964520);
c[241133] = 0;
c[241132] = 1101096;
nu(a, 964528);
c[241135] = 0;
c[241134] = 1101160;
ou(a, 964536);
c[241137] = 0;
c[241136] = 1101224;
pu(a, 964544);
c[241139] = 0;
c[241138] = 1101288;
qu(a, 964552);
c[241141] = 0;
c[241140] = 1101352;
ru(a, 964560);
c[241143] = 0;
c[241142] = 1101388;
su(a, 964568);
c[241145] = 0;
c[241144] = 1101424;
tu(a, 964576);
c[241147] = 0;
c[241146] = 1101460;
uu(a, 964584);
c[241149] = 0;
c[241148] = 1100848;
c[241150] = 1100896;
vu(a, 964592);
c[241153] = 0;
c[241152] = 1100940;
c[241154] = 1100988;
wu(a, 964608);
c[241157] = 0;
c[241156] = 1101844;
c[241158] = Wn() | 0;
c[241156] = 1101032;
xu(a, 964624);
c[241161] = 0;
c[241160] = 1101844;
c[241162] = Wn() | 0;
c[241160] = 1101064;
yu(a, 964640);
c[241165] = 0;
c[241164] = 1101496;
zu(a, 964656);
c[241167] = 0;
c[241166] = 1101536;
Au(a, 964664);
return
}
function xr() {
if ((a[964672] | 0) == 0 ? (Da(964672) | 0) != 0 : 0) {
Br() | 0;
c[275591] = 1102360;
Ja(964672)
}
return c[275591] | 0
}
function yr(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0;
$u(b);
e = a + 8 | 0;
f = c[e >> 2] | 0;
if ((c[a + 12 >> 2] | 0) - f >> 2 >>> 0 <= d >>> 0) {
Bu(e, d + 1 | 0);
f = c[e >> 2] | 0
}
a = c[f + (d << 2) >> 2] | 0;
if (a) {
av(a) | 0;
f = c[e >> 2] | 0
}
c[f + (d << 2) >> 2] = b;
return
}
function zr(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0;
c[a >> 2] = 1101576;
b = a + 8 | 0;
d = a + 12 | 0;
f = c[b >> 2] | 0;
if ((c[d >> 2] | 0) != (f | 0)) {
e = 0;
do {
f = c[f + (e << 2) >> 2] | 0;
if (f) av(f) | 0;
e = e + 1 | 0;
f = c[b >> 2] | 0
} while (e >>> 0 < (c[d >> 2] | 0) - f >> 2 >>> 0)
}
sl(a + 144 | 0);
Cu(b);
return
}
function Ar(a) {
a = a | 0;
zr(a);
Ph(a);
return
}
function Br() {
wr(964680, 1);
c[275590] = 964680;
return 1102360
}
function Cr() {
var a = 0;
a = c[(xr() | 0) >> 2] | 0;
c[275592] = a;
$u(a);
return 1102368
}
function Dr() {
if ((a[964840] | 0) == 0 ? (Da(964840) | 0) != 0 : 0) {
Cr() | 0;
c[275593] = 1102368;
Ja(964840)
}
return c[275593] | 0
}
function Er(a) {
a = a | 0;
var b = 0;
b = c[(Dr() | 0) >> 2] | 0;
c[a >> 2] = b;
$u(b);
return
}
function Fr(a, b) {
a = a | 0;
b = b | 0;
b = c[b >> 2] | 0;
c[a >> 2] = b;
$u(b);
return
}
function Gr(a) {
a = a | 0;
av(c[a >> 2] | 0) | 0;
return
}
function Hr(a, b) {
a = a | 0;
b = b | 0;
a = c[a >> 2] | 0;
return Du(a, Ir(b) | 0) | 0
}
function Ir(a) {
a = a | 0;
var b = 0,
d = 0;
b = i;
i = i + 16 | 0;
d = b;
if ((c[a >> 2] | 0) != -1) {
c[d >> 2] = a;
c[d + 4 >> 2] = 161;
c[d + 8 >> 2] = 0;
nl(a, d, 162)
}
i = b;
return (c[a + 4 >> 2] | 0) + -1 | 0
}
function Jr(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = c[a >> 2] | 0;
a = Ir(b) | 0;
return c[(c[d + 8 >> 2] | 0) + (a << 2) >> 2] | 0
}
function Kr(a) {
a = a | 0;
Ph(a);
return
}
function Lr(a) {
a = a | 0;
if (a) Cb[c[(c[a >> 2] | 0) + 4 >> 2] & 255](a);
return
}
function Mr(a) {
a = a | 0;
var b = 0;
b = c[275397] | 0;
c[275397] = b + 1;
c[a + 4 >> 2] = b + 1;
return
}
function Nr(a) {
a = a | 0;
Ph(a);
return
}
function Or(a, d, e) {
a = a | 0;
d = d | 0;
e = e | 0;
if (e >>> 0 < 128) e = (b[(c[(Ii() | 0) >> 2] | 0) + (e << 1) >> 1] & d) << 16 >> 16 != 0;
else e = 0;
return e | 0
}
function Pr(a, d, f, g) {
a = a | 0;
d = d | 0;
f = f | 0;
g = g | 0;
var h = 0,
i = 0;
a = (f - d | 0) >>> 2;
if ((d | 0) != (f | 0)) {
h = d;
while (1) {
i = c[h >> 2] | 0;
if (i >>> 0 < 128) i = e[(c[(Ii() | 0) >> 2] | 0) + (i << 1) >> 1] | 0;
else i = 0;
b[g >> 1] = i;
h = h + 4 | 0;
if ((h | 0) == (f | 0)) break;
else g = g + 2 | 0
}
}
return d + (a << 2) | 0
}
function Qr(a, d, e, f) {
a = a | 0;
d = d | 0;
e = e | 0;
f = f | 0;
a: do
if ((e | 0) != (f | 0))
do {
a = c[e >> 2] | 0;
if (a >>> 0 < 128 ? (b[(c[(Ii() | 0) >> 2] | 0) + (a << 1) >> 1] & d) << 16 >> 16 != 0 : 0) {
f = e;
break a
}
e = e + 4 | 0
} while ((e | 0) != (f | 0));
while (0);
return f | 0
}
function Rr(a, d, e, f) {
a = a | 0;
d = d | 0;
e = e | 0;
f = f | 0;
a: do
if ((e | 0) != (f | 0))
do {
a = c[e >> 2] | 0;
if (a >>> 0 >= 128) {
f = e;
break a
}
if (!((b[(c[(Ii() | 0) >> 2] | 0) + (a << 1) >> 1] & d) << 16 >> 16)) {
f = e;
break a
}
e = e + 4 | 0
} while ((e | 0) != (f | 0));
while (0);
return f | 0
}
function Sr(a, b) {
a = a | 0;
b = b | 0;
if (b >>> 0 < 128) b = c[(c[(Ki() | 0) >> 2] | 0) + (b << 2) >> 2] | 0;
return b | 0
}
function Tr(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0;
a = (d - b | 0) >>> 2;
if ((b | 0) != (d | 0)) {
e = b;
do {
f = c[e >> 2] | 0;
if (f >>> 0 < 128) f = c[(c[(Ki() | 0) >> 2] | 0) + (f << 2) >> 2] | 0;
c[e >> 2] = f;
e = e + 4 | 0
} while ((e | 0) != (d | 0))
}
return b + (a << 2) | 0
}
function Ur(a, b) {
a = a | 0;
b = b | 0;
if (b >>> 0 < 128) b = c[(c[(Ji() | 0) >> 2] | 0) + (b << 2) >> 2] | 0;
return b | 0
}
function Vr(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0;
a = (d - b | 0) >>> 2;
if ((b | 0) != (d | 0)) {
e = b;
do {
f = c[e >> 2] | 0;
if (f >>> 0 < 128) f = c[(c[(Ji() | 0) >> 2] | 0) + (f << 2) >> 2] | 0;
c[e >> 2] = f;
e = e + 4 | 0
} while ((e | 0) != (d | 0))
}
return b + (a << 2) | 0
}
function Wr(a, b) {
a = a | 0;
b = b | 0;
return b << 24 >> 24 | 0
}
function Xr(b, d, e, f) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
if ((d | 0) != (e | 0))
while (1) {
c[f >> 2] = a[d >> 0];
d = d + 1 | 0;
if ((d | 0) == (e | 0)) break;
else f = f + 4 | 0
}
return e | 0
}
function Yr(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return (b >>> 0 < 128 ? b & 255 : c) | 0
}
function Zr(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;
b = (e - d | 0) >>> 2;
if ((d | 0) != (e | 0)) {
h = d;
while (1) {
i = c[h >> 2] | 0;
a[g >> 0] = i >>> 0 < 128 ? i & 255 : f;
h = h + 4 | 0;
if ((h | 0) == (e | 0)) break;
else g = g + 1 | 0
}
}
return d + (b << 2) | 0
}
function _r(b, d, e, f) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
c[b + 4 >> 2] = f + -1;
c[b >> 2] = 1101616;
f = b + 8 | 0;
c[f >> 2] = d;
a[b + 12 >> 0] = e & 1;
if (!d) c[f >> 2] = c[(Ii() | 0) >> 2];
return
}
function $r(b) {
b = b | 0;
var d = 0;
c[b >> 2] = 1101616;
d = c[b + 8 >> 2] | 0;
if ((d | 0) != 0 ? (a[b + 12 >> 0] | 0) != 0 : 0) Qh(d);
return
}
function as(a) {
a = a | 0;
$r(a);
Ph(a);
return
}
function bs(a, b) {
a = a | 0;
b = b | 0;
if (b << 24 >> 24 > -1) b = c[(c[(Ki() | 0) >> 2] | 0) + ((b & 255) << 2) >> 2] & 255;
return b | 0
}
function cs(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
if ((d | 0) != (e | 0))
do {
b = a[d >> 0] | 0;
if (b << 24 >> 24 > -1) b = c[(c[(Ki() | 0) >> 2] | 0) + (b << 24 >> 24 << 2) >> 2] & 255;
a[d >> 0] = b;
d = d + 1 | 0
} while ((d | 0) != (e | 0));
return e | 0
}
function ds(a, b) {
a = a | 0;
b = b | 0;
if (b << 24 >> 24 > -1) b = c[(c[(Ji() | 0) >> 2] | 0) + (b << 24 >> 24 << 2) >> 2] & 255;
return b | 0
}
function es(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
if ((d | 0) != (e | 0))
do {
b = a[d >> 0] | 0;
if (b << 24 >> 24 > -1) b = c[(c[(Ji() | 0) >> 2] | 0) + (b << 24 >> 24 << 2) >> 2] & 255;
a[d >> 0] = b;
d = d + 1 | 0
} while ((d | 0) != (e | 0));
return e | 0
}
function fs(a, b) {
a = a | 0;
b = b | 0;
return b | 0
}
function gs(b, c, d, e) {
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
if ((c | 0) != (d | 0))
while (1) {
a[e >> 0] = a[c >> 0] | 0;
c = c + 1 | 0;
if ((c | 0) == (d | 0)) break;
else e = e + 1 | 0
}
return d | 0
}
function hs(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return (b << 24 >> 24 > -1 ? b : c) | 0
}
function is(b, c, d, e, f) {
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
f = f | 0;
if ((c | 0) != (d | 0))
while (1) {
b = a[c >> 0] | 0;
a[f >> 0] = b << 24 >> 24 > -1 ? b : e;
c = c + 1 | 0;
if ((c | 0) == (d | 0)) break;
else f = f + 1 | 0
}
return d | 0
}
function js(a) {
a = a | 0;
Ph(a);
return
}
function ks(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;
c[f >> 2] = d;
c[i >> 2] = g;
return 3
}
function ls(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;
c[f >> 2] = d;
c[i >> 2] = g;
return 3
}
function ms(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
c[f >> 2] = d;
return 3
}
function ns(a) {
a = a | 0;
return 1
}
function os(a) {
a = a | 0;
return 1
}
function ps(a, b, c, d, e) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
b = d - c | 0;
return (b >>> 0 < e >>> 0 ? b : e) | 0
}
function qs(a) {
a = a | 0;
return 1
}
function rs(a) {
a = a | 0;
ut(a);
Ph(a);
return
}
function ss(b, d, e, f, g, h, j, k) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
var l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0;
l = i;
i = i + 16 | 0;
n = l;
o = l + 8 | 0;
a: do
if ((e | 0) == (f | 0)) q = f;
else {
q = e;
while (1) {
if (!(c[q >> 2] | 0)) break a;
q = q + 4 | 0;
if ((q | 0) == (f | 0)) {
q = f;
break
}
}
}
while (0);
c[k >> 2] = h;
c[g >> 2] = e;
p = j;
b = b + 8 | 0;
b: do
if ((h | 0) == (j | 0) | (e | 0) == (f | 0)) m = 29;
else {
c: while (1) {
t = d;
r = c[t + 4 >> 2] | 0;
s = n;
c[s >> 2] = c[t >> 2];
c[s + 4 >> 2] = r;
s = Zi(c[b >> 2] | 0) | 0;
r = oj(h, g, q - e >> 2, p - h | 0, d) | 0;
if (s) Zi(s) | 0;
switch (r | 0) {
case 0:
{
g = 1;
break b
};
case -1:
break c;
default:
{}
}
h = (c[k >> 2] | 0) + r | 0;
c[k >> 2] = h;
if ((h | 0) == (j | 0)) {
m = 15;
break
}
if ((q | 0) == (f | 0)) {
e = c[g >> 2] | 0;
q = f
} else {
e = Zi(c[b >> 2] | 0) | 0;
h = nj(o, 0, d) | 0;
if (e) Zi(e) | 0;
if ((h | 0) == -1) {
g = 2;
break b
}
if (h >>> 0 > (p - (c[k >> 2] | 0) | 0) >>> 0) {
g = 1;
break b
}
if (h) {
e = o;
while (1) {
s = a[e >> 0] | 0;
t = c[k >> 2] | 0;
c[k >> 2] = t + 1;
a[t >> 0] = s;
h = h + -1 | 0;
if (!h) break;
else e = e + 1 | 0
}
}
e = (c[g >> 2] | 0) + 4 | 0;
c[g >> 2] = e;
d: do
if ((e | 0) == (f | 0)) q = f;
else {
q = e;
while (1) {
if (!(c[q >> 2] | 0)) break d;
q = q + 4 | 0;
if ((q | 0) == (f | 0)) {
q = f;
break
}
}
}
while (0);
h = c[k >> 2] | 0
}
if ((h | 0) == (j | 0) | (e | 0) == (f | 0)) {
m = 29;
break b
}
}
if ((m | 0) == 15) {
e = c[g >> 2] | 0;
m = 29;
break
}
c[k >> 2] = h;e: do
if ((e | 0) != (c[g >> 2] | 0))
do {
o = c[e >> 2] | 0;
f = Zi(c[b >> 2] | 0) | 0;
o = nj(h, o, n) | 0;
if (f) Zi(f) | 0;
if ((o | 0) == -1) break e;
h = (c[k >> 2] | 0) + o | 0;
c[k >> 2] = h;
e = e + 4 | 0
} while ((e | 0) != (c[g >> 2] | 0));while (0);c[g >> 2] = e;g = 2
}
while (0);
if ((m | 0) == 29) g = (e | 0) != (f | 0) & 1;
i = l;
return g | 0
}
function ts(b, d, e, f, g, h, j, k) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
var l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0;
l = i;
i = i + 16 | 0;
n = l;
a: do
if ((e | 0) == (f | 0)) p = f;
else {
p = e;
while (1) {
if (!(a[p >> 0] | 0)) break a;
p = p + 1 | 0;
if ((p | 0) == (f | 0)) {
p = f;
break
}
}
}
while (0);
c[k >> 2] = h;
c[g >> 2] = e;
o = j;
b = b + 8 | 0;
b: do
if ((h | 0) == (j | 0) | (e | 0) == (f | 0)) m = 29;
else {
c: while (1) {
r = d;
s = c[r + 4 >> 2] | 0;
q = n;
c[q >> 2] = c[r >> 2];
c[q + 4 >> 2] = s;
q = p;
s = Zi(c[b >> 2] | 0) | 0;
r = kj(h, g, q - e | 0, o - h >> 2, d) | 0;
if (s) Zi(s) | 0;
switch (r | 0) {
case 0:
{
g = 2;
break b
};
case -1:
break c;
default:
{}
}
h = (c[k >> 2] | 0) + (r << 2) | 0;
c[k >> 2] = h;
if ((h | 0) == (j | 0)) {
m = 19;
break
}
e = c[g >> 2] | 0;
if ((p | 0) == (f | 0)) p = f;
else {
p = Zi(c[b >> 2] | 0) | 0;
e = ij(h, e, 1, d) | 0;
if (p) Zi(p) | 0;
if (e) {
g = 2;
break b
}
c[k >> 2] = (c[k >> 2] | 0) + 4;
e = (c[g >> 2] | 0) + 1 | 0;
c[g >> 2] = e;
d: do
if ((e | 0) == (f | 0)) p = f;
else {
p = e;
while (1) {
if (!(a[p >> 0] | 0)) break d;
p = p + 1 | 0;
if ((p | 0) == (f | 0)) {
p = f;
break
}
}
}
while (0);
h = c[k >> 2] | 0
}
if ((h | 0) == (j | 0) | (e | 0) == (f | 0)) {
m = 29;
break b
}
}
if ((m | 0) == 19) {
e = c[g >> 2] | 0;
m = 29;
break
}
c[k >> 2] = h;e: do
if ((e | 0) != (c[g >> 2] | 0)) {
f: while (1) {
j = Zi(c[b >> 2] | 0) | 0;
d = ij(h, e, q - e | 0, n) | 0;
if (j) Zi(j) | 0;
switch (d | 0) {
case -1:
{
m = 13;
break f
};
case -2:
{
m = 14;
break f
};
case 0:
{
e = e + 1 | 0;
break
};
default:
e = e + d | 0
}
h = (c[k >> 2] | 0) + 4 | 0;
c[k >> 2] = h;
if ((e | 0) == (c[g >> 2] | 0)) break e
}
if ((m | 0) == 13) {
c[g >> 2] = e;
g = 2;
break b
} else if ((m | 0) == 14) {
c[g >> 2] = e;
g = 1;
break b
}
}while (0);c[g >> 2] = e;g = (e | 0) != (f | 0) & 1
}
while (0);
if ((m | 0) == 29) g = (e | 0) != (f | 0) & 1;
i = l;
return g | 0
}
function us(b, d, e, f, g) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
var h = 0,
j = 0;
h = i;
i = i + 16 | 0;
j = h;
c[g >> 2] = e;
b = Zi(c[b + 8 >> 2] | 0) | 0;
d = nj(j, 0, d) | 0;
if (b) Zi(b) | 0;
switch (d | 0) {
case 0:
case -1:
{
g = 2;
break
};
default:
{
d = d + -1 | 0;
if (d >>> 0 <= (f - (c[g >> 2] | 0) | 0) >>> 0)
if (!d) g = 0;
else
while (1) {
b = a[j >> 0] | 0;
e = c[g >> 2] | 0;
c[g >> 2] = e + 1;
a[e >> 0] = b;
d = d + -1 | 0;
if (!d) {
g = 0;
break
} else j = j + 1 | 0
} else g = 1
}
}
i = h;
return g | 0
}
function vs(a) {
a = a | 0;
var b = 0,
d = 0;
a = a + 8 | 0;
d = Zi(c[a >> 2] | 0) | 0;
b = mj(0, 0, 4) | 0;
if (d) Zi(d) | 0;
if (!b) {
a = c[a >> 2] | 0;
if (a) {
a = Zi(a) | 0;
if (!a) a = 0;
else {
Zi(a) | 0;
a = 0
}
} else a = 1
} else a = -1;
return a | 0
}
function ws(a) {
a = a | 0;
return 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;
g = e;
a = a + 8 | 0;
a: do
if ((d | 0) == (e | 0) | (f | 0) == 0) i = 0;
else {
i = 0;
h = 0;
while (1) {
k = Zi(c[a >> 2] | 0) | 0;
j = hj(d, g - d | 0, b) | 0;
if (k) Zi(k) | 0;
switch (j | 0) {
case -2:
case -1:
break a;
case 0:
{
d = d + 1 | 0;j = 1;
break
};
default:
d = d + j | 0
}
i = j + i | 0;
h = h + 1 | 0;
if ((d | 0) == (e | 0) | h >>> 0 >= f >>> 0) break a
}
}
while (0);
return i | 0
}
function ys(a) {
a = a | 0;
a = c[a + 8 >> 2] | 0;
if (a) {
a = Zi(a) | 0;
if (!a) a = 4;
else {
Zi(a) | 0;
a = 4
}
} else a = 1;
return a | 0
}
function zs(a) {
a = a | 0;
Ph(a);
return
}
function As(a, b, d, e, f, g, h, j) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var k = 0,
l = 0;
a = i;
i = i + 16 | 0;
l = a + 4 | 0;
k = a;
c[l >> 2] = d;
c[k >> 2] = g;
b = Fu(d, e, l, g, h, k, 1114111, 0) | 0;
c[f >> 2] = c[l >> 2];
c[j >> 2] = c[k >> 2];
i = a;
return b | 0
}
function Bs(a, b, d, e, f, g, h, j) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var k = 0,
l = 0;
a = i;
i = i + 16 | 0;
l = a + 4 | 0;
k = a;
c[l >> 2] = d;
c[k >> 2] = g;
b = Gu(d, e, l, g, h, k, 1114111, 0) | 0;
c[f >> 2] = c[l >> 2];
c[j >> 2] = c[k >> 2];
i = a;
return b | 0
}
function Cs(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
c[f >> 2] = d;
return 3
}
function Ds(a) {
a = a | 0;
return 0
}
function Es(a) {
a = a | 0;
return 0
}
function Fs(a, b, c, d, e) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
return Hu(c, d, e, 1114111, 0) | 0
}
function Gs(a) {
a = a | 0;
return 4
}
function Hs(a) {
a = a | 0;
Ph(a);
return
}
function Is(a, b, d, e, f, g, h, j) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var k = 0,
l = 0;
a = i;
i = i + 16 | 0;
l = a + 4 | 0;
k = a;
c[l >> 2] = d;
c[k >> 2] = g;
b = Iu(d, e, l, g, h, k, 1114111, 0) | 0;
c[f >> 2] = c[l >> 2];
c[j >> 2] = c[k >> 2];
i = a;
return b | 0
}
function Js(a, b, d, e, f, g, h, j) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var k = 0,
l = 0;
a = i;
i = i + 16 | 0;
l = a + 4 | 0;
k = a;
c[l >> 2] = d;
c[k >> 2] = g;
b = Ju(d, e, l, g, h, k, 1114111, 0) | 0;
c[f >> 2] = c[l >> 2];
c[j >> 2] = c[k >> 2];
i = a;
return b | 0
}
function Ks(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
c[f >> 2] = d;
return 3
}
function Ls(a) {
a = a | 0;
return 0
}
function Ms(a) {
a = a | 0;
return 0
}
function Ns(a, b, c, d, e) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
return Ku(c, d, e, 1114111, 0) | 0
}
function Os(a) {
a = a | 0;
return 4
}
function Ps(a) {
a = a | 0;
Ph(a);
return
}
function Qs(a) {
a = a | 0;
Ph(a);
return
}
function Rs(b, d) {
b = b | 0;
d = d | 0;
c[b + 4 >> 2] = d + -1;
c[b >> 2] = 1101764;
a[b + 8 >> 0] = 46;
a[b + 9 >> 0] = 44;
d = b + 12 | 0;
c[d >> 2] = 0;
c[d + 4 >> 2] = 0;
c[d + 8 >> 2] = 0;
return
}
function Ss(a, b) {
a = a | 0;
b = b | 0;
c[a + 4 >> 2] = b + -1;
c[a >> 2] = 1101804;
c[a + 8 >> 2] = 46;
c[a + 12 >> 2] = 44;
b = a + 16 | 0;
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
return
}
function Ts(a) {
a = a | 0;
c[a >> 2] = 1101764;
sl(a + 12 | 0);
return
}
function Us(a) {
a = a | 0;
Ts(a);
Ph(a);
return
}
function Vs(a) {
a = a | 0;
c[a >> 2] = 1101804;
sl(a + 16 | 0);
return
}
function Ws(a) {
a = a | 0;
Vs(a);
Ph(a);
return
}
function Xs(b) {
b = b | 0;
return a[b + 8 >> 0] | 0
}
function Ys(a) {
a = a | 0;
return c[a + 8 >> 2] | 0
}
function Zs(b) {
b = b | 0;
return a[b + 9 >> 0] | 0
}
function _s(a) {
a = a | 0;
return c[a + 12 >> 2] | 0
}
function $s(a, b) {
a = a | 0;
b = b | 0;
ol(a, b + 12 | 0);
return
}
function at(a, b) {
a = a | 0;
b = b | 0;
ol(a, b + 16 | 0);
return
}
function bt(a, b) {
a = a | 0;
b = b | 0;
pl(a, 1180723, 4);
return
}
function ct(a, b) {
a = a | 0;
b = b | 0;
Kl(a, 1102376, jk(1102376) | 0);
return
}
function dt(a, b) {
a = a | 0;
b = b | 0;
pl(a, 1180728, 5);
return
}
function et(a, b) {
a = a | 0;
b = b | 0;
Kl(a, 1102396, jk(1102396) | 0);
return
}
function ft(a) {
a = a | 0;
switch (c[a + 4 >> 2] & 74 | 0) {
case 64:
{
a = 8;
break
};
case 8:
{
a = 16;
break
};
case 0:
{
a = 0;
break
};
default:
a = 10
}
return a | 0
}
function gt(b) {
b = b | 0;
if ((a[964848] | 0) == 0 ? (Da(964848) | 0) != 0 : 0) {
if ((a[964856] | 0) == 0 ? (Da(964856) | 0) != 0 : 0) {
b = 1102420;
do {
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
b = b + 12 | 0
} while ((b | 0) != 1102588);
Ja(964856)
}
ul(1102420, 1180734) | 0;
ul(1102432, 1180741) | 0;
ul(1102444, 1180748) | 0;
ul(1102456, 1180756) | 0;
ul(1102468, 1180766) | 0;
ul(1102480, 1180775) | 0;
ul(1102492, 1180782) | 0;
ul(1102504, 1180791) | 0;
ul(1102516, 1180795) | 0;
ul(1102528, 1180799) | 0;
ul(1102540, 1180803) | 0;
ul(1102552, 1180807) | 0;
ul(1102564, 1180811) | 0;
ul(1102576, 1180815) | 0;
c[275647] = 1102420;
Ja(964848)
}
return c[275647] | 0
}
function ht(b) {
b = b | 0;
if ((a[964864] | 0) == 0 ? (Da(964864) | 0) != 0 : 0) {
if ((a[964872] | 0) == 0 ? (Da(964872) | 0) != 0 : 0) {
b = 1102592;
do {
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
b = b + 12 | 0
} while ((b | 0) != 1102760);
Ja(964872)
}
Nl(1102592, 1102760) | 0;
Nl(1102604, 1102788) | 0;
Nl(1102616, 1102816) | 0;
Nl(1102628, 1102848) | 0;
Nl(1102640, 1102888) | 0;
Nl(1102652, 1102924) | 0;
Nl(1102664, 1102952) | 0;
Nl(1102676, 1102988) | 0;
Nl(1102688, 1103004) | 0;
Nl(1102700, 1103020) | 0;
Nl(1102712, 1103036) | 0;
Nl(1102724, 1103052) | 0;
Nl(1102736, 1103068) | 0;
Nl(1102748, 1103084) | 0;
c[275775] = 1102592;
Ja(964864)
}
return c[275775] | 0
}
function it(b) {
b = b | 0;
if ((a[964880] | 0) == 0 ? (Da(964880) | 0) != 0 : 0) {
if ((a[964888] | 0) == 0 ? (Da(964888) | 0) != 0 : 0) {
b = 1103104;
do {
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
b = b + 12 | 0
} while ((b | 0) != 1103392);
Ja(964888)
}
ul(1103104, 1180819) | 0;
ul(1103116, 1180827) | 0;
ul(1103128, 1180836) | 0;
ul(1103140, 1180842) | 0;
ul(1103152, 1180848) | 0;
ul(1103164, 1180852) | 0;
ul(1103176, 1180857) | 0;
ul(1103188, 1180862) | 0;
ul(1103200, 1180869) | 0;
ul(1103212, 1180879) | 0;
ul(1103224, 1180887) | 0;
ul(1103236, 1180896) | 0;
ul(1103248, 1180905) | 0;
ul(1103260, 1180909) | 0;
ul(1103272, 1180913) | 0;
ul(1103284, 1180917) | 0;
ul(1103296, 1180848) | 0;
ul(1103308, 1180921) | 0;
ul(1103320, 1180925) | 0;
ul(1103332, 1180929) | 0;
ul(1103344, 1180933) | 0;
ul(1103356, 1180937) | 0;
ul(1103368, 1180941) | 0;
ul(1103380, 1180945) | 0;
c[275848] = 1103104;
Ja(964880)
}
return c[275848] | 0
}
function jt(b) {
b = b | 0;
if ((a[964896] | 0) == 0 ? (Da(964896) | 0) != 0 : 0) {
if ((a[964904] | 0) == 0 ? (Da(964904) | 0) != 0 : 0) {
b = 1103396;
do {
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
b = b + 12 | 0
} while ((b | 0) != 1103684);
Ja(964904)
}
Nl(1103396, 1103684) | 0;
Nl(1103408, 1103716) | 0;
Nl(1103420, 1103752) | 0;
Nl(1103432, 1103776) | 0;
Nl(1103444, 1103800) | 0;
Nl(1103456, 1103816) | 0;
Nl(1103468, 1103836) | 0;
Nl(1103480, 1103856) | 0;
Nl(1103492, 1103884) | 0;
Nl(1103504, 1103924) | 0;
Nl(1103516, 1103956) | 0;
Nl(1103528, 1103992) | 0;
Nl(1103540, 1104028) | 0;
Nl(1103552, 1104044) | 0;
Nl(1103564, 1104060) | 0;
Nl(1103576, 1104076) | 0;
Nl(1103588, 1103800) | 0;
Nl(1103600, 1104092) | 0;
Nl(1103612, 1104108) | 0;
Nl(1103624, 1104124) | 0;
Nl(1103636, 1104140) | 0;
Nl(1103648, 1104156) | 0;
Nl(1103660, 1104172) | 0;
Nl(1103672, 1104188) | 0;
c[276051] = 1103396;
Ja(964896)
}
return c[276051] | 0
}
function kt(b) {
b = b | 0;
if ((a[964912] | 0) == 0 ? (Da(964912) | 0) != 0 : 0) {
if ((a[964920] | 0) == 0 ? (Da(964920) | 0) != 0 : 0) {
b = 1104208;
do {
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
b = b + 12 | 0
} while ((b | 0) != 1104496);
Ja(964920)
}
ul(1104208, 1180949) | 0;
ul(1104220, 1180952) | 0;
c[276124] = 1104208;
Ja(964912)
}
return c[276124] | 0
}
function lt(b) {
b = b | 0;
if ((a[964928] | 0) == 0 ? (Da(964928) | 0) != 0 : 0) {
if ((a[964936] | 0) == 0 ? (Da(964936) | 0) != 0 : 0) {
b = 1104500;
do {
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
b = b + 12 | 0
} while ((b | 0) != 1104788);
Ja(964936)
}
Nl(1104500, 1104788) | 0;
Nl(1104512, 1104800) | 0;
c[276203] = 1104500;
Ja(964928)
}
return c[276203] | 0
}
function mt(b) {
b = b | 0;
if ((a[964944] | 0) == 0 ? (Da(964944) | 0) != 0 : 0) {
pl(1104816, 1180955, 8);
Ja(964944)
}
return 1104816
}
function nt(b) {
b = b | 0;
if ((a[964952] | 0) == 0 ? (Da(964952) | 0) != 0 : 0) {
Kl(1104864, 1104828, jk(1104828) | 0);
Ja(964952)
}
return 1104864
}
function ot(b) {
b = b | 0;
if ((a[964960] | 0) == 0 ? (Da(964960) | 0) != 0 : 0) {
pl(1104876, 1180964, 8);
Ja(964960)
}
return 1104876
}
function pt(b) {
b = b | 0;
if ((a[964968] | 0) == 0 ? (Da(964968) | 0) != 0 : 0) {
Kl(1104924, 1104888, jk(1104888) | 0);
Ja(964968)
}
return 1104924
}
function qt(b) {
b = b | 0;
if ((a[964976] | 0) == 0 ? (Da(964976) | 0) != 0 : 0) {
pl(1104936, 1180973, 20);
Ja(964976)
}
return 1104936
}
function rt(b) {
b = b | 0;
if ((a[964984] | 0) == 0 ? (Da(964984) | 0) != 0 : 0) {
Kl(1105032, 1104948, jk(1104948) | 0);
Ja(964984)
}
return 1105032
}
function st(b) {
b = b | 0;
if ((a[964992] | 0) == 0 ? (Da(964992) | 0) != 0 : 0) {
pl(1105044, 1180994, 11);
Ja(964992)
}
return 1105044
}
function tt(b) {
b = b | 0;
if ((a[965e3] | 0) == 0 ? (Da(965e3) | 0) != 0 : 0) {
Kl(1105104, 1105056, jk(1105056) | 0);
Ja(965e3)
}
return 1105104
}
function ut(a) {
a = a | 0;
var b = 0;
c[a >> 2] = 1101684;
a = a + 8 | 0;
b = c[a >> 2] | 0;
if ((b | 0) != (Wn() | 0)) Vi(c[a >> 2] | 0);
return
}
function vt(b, e, f, g, h, j, k) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
var 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;
l = i;
i = i + 112 | 0;
p = l;
u = (g - f | 0) / 12 | 0;
if (u >>> 0 > 100) {
p = zk(u) | 0;
if (!p) ui();
else {
n = p;
o = p
}
} else {
n = 0;
o = p
}
if ((f | 0) == (g | 0)) t = 0;
else {
p = f;
t = 0;
q = o;
while (1) {
r = a[p >> 0] | 0;
if (!(r & 1)) r = (r & 255) >>> 1;
else r = c[p + 4 >> 2] | 0;
if (!r) {
a[q >> 0] = 2;
t = t + 1 | 0;
u = u + -1 | 0
} else a[q >> 0] = 1;
p = p + 12 | 0;
if ((p | 0) == (g | 0)) break;
else q = q + 1 | 0
}
}
q = (f | 0) == (g | 0);
p = (f | 0) == (g | 0);
r = 0;
a: while (1) {
s = c[b >> 2] | 0;
do
if (s) {
if ((c[s + 12 >> 2] | 0) == (c[s + 16 >> 2] | 0))
if ((Gb[c[(c[s >> 2] | 0) + 36 >> 2] & 127](s) | 0) == -1) {
c[b >> 2] = 0;
s = 0;
break
} else {
s = c[b >> 2] | 0;
break
}
} else s = 0;
while (0);
w = (s | 0) == 0;
v = c[e >> 2] | 0;
if (v) {
if ((c[v + 12 >> 2] | 0) == (c[v + 16 >> 2] | 0) ? (Gb[c[(c[v >> 2] | 0) + 36 >> 2] & 127](v) | 0) == -1 : 0) {
c[e >> 2] = 0;
v = 0
}
} else v = 0;
x = (v | 0) == 0;
s = c[b >> 2] | 0;
if (!((u | 0) != 0 & (w ^ x))) break;
v = c[s + 12 >> 2] | 0;
if ((v | 0) == (c[s + 16 >> 2] | 0)) s = Gb[c[(c[s >> 2] | 0) + 36 >> 2] & 127](s) | 0;
else s = d[v >> 0] | 0;
v = s & 255;
if (!k) v = Mb[c[(c[h >> 2] | 0) + 12 >> 2] & 63](h, v) | 0;
s = r + 1 | 0;
if (q) y = 0;
else {
y = 0;
w = f;
x = o;
while (1) {
do
if ((a[x >> 0] | 0) == 1) {
if (!(a[w >> 0] & 1)) z = w + 1 | 0;
else z = c[w + 8 >> 2] | 0;
z = a[z + r >> 0] | 0;
if (!k) z = Mb[c[(c[h >> 2] | 0) + 12 >> 2] & 63](h, z) | 0;
if (v << 24 >> 24 != z << 24 >> 24) {
a[x >> 0] = 0;
u = u + -1 | 0;
break
}
y = a[w >> 0] | 0;
if (!(y & 1)) y = (y & 255) >>> 1;
else y = c[w + 4 >> 2] | 0;
if ((y | 0) == (s | 0)) {
a[x >> 0] = 2;
y = 1;
t = t + 1 | 0;
u = u + -1 | 0
} else y = 1
}
while (0);
w = w + 12 | 0;
if ((w | 0) == (g | 0)) break;
else x = x + 1 | 0
}
}
if (!y) {
r = s;
continue
}
w = c[b >> 2] | 0;
v = w + 12 | 0;
r = c[v >> 2] | 0;
if ((r | 0) == (c[w + 16 >> 2] | 0)) Gb[c[(c[w >> 2] | 0) + 40 >> 2] & 127](w) | 0;
else c[v >> 2] = r + 1;
if ((t + u | 0) >>> 0 < 2 | p) {
r = s;
continue
} else {
r = f;
v = o
}
while (1) {
if ((a[v >> 0] | 0) == 2) {
w = a[r >> 0] | 0;
if (!(w & 1)) w = (w & 255) >>> 1;
else w = c[r + 4 >> 2] | 0;
if ((w | 0) != (s | 0)) {
a[v >> 0] = 0;
t = t + -1 | 0
}
}
r = r + 12 | 0;
if ((r | 0) == (g | 0)) {
r = s;
continue a
} else v = v + 1 | 0
}
}
do
if (s) {
if ((c[s + 12 >> 2] | 0) == (c[s + 16 >> 2] | 0))
if ((Gb[c[(c[s >> 2] | 0) + 36 >> 2] & 127](s) | 0) == -1) {
c[b >> 2] = 0;
s = 0;
break
} else {
s = c[b >> 2] | 0;
break
}
} else s = 0;
while (0);
b = (s | 0) == 0;
do
if (!x) {
if ((c[v + 12 >> 2] | 0) == (c[v + 16 >> 2] | 0) ? (Gb[c[(c[v >> 2] | 0) + 36 >> 2] & 127](v) | 0) == -1 : 0) {
c[e >> 2] = 0;
m = 65;
break
}
if (!b) m = 66
} else m = 65;
while (0);
if ((m | 0) == 65 ? b : 0) m = 66;
if ((m | 0) == 66) c[j >> 2] = c[j >> 2] | 2;
b: do
if ((f | 0) == (g | 0)) m = 70;
else
while (1) {
if ((a[o >> 0] | 0) == 2) {
g = f;
break b
}
f = f + 12 | 0;
if ((f | 0) == (g | 0)) {
m = 70;
break
} else o = o + 1 | 0
}
while (0);
if ((m | 0) == 70) c[j >> 2] = c[j >> 2] | 4;
Ak(n);
i = l;
return g | 0
}
function wt(b, e, f, g, h, j) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
b = i;
i = i + 240 | 0;
s = b + 202 | 0;
v = b + 200 | 0;
l = b + 24 | 0;
m = b + 12 | 0;
n = b + 8 | 0;
p = b + 40 | 0;
q = b + 4 | 0;
r = b;
o = ft(g) | 0;
ko(l, g, s, v);
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
if (!(a[m >> 0] & 1)) g = 10;
else g = (c[m >> 2] & -2) + -1 | 0;
wl(m, g, 0);
g = m + 8 | 0;
t = m + 1 | 0;
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x;
c[q >> 2] = p;
c[r >> 2] = 0;
u = m + 4 | 0;
v = a[v >> 0] | 0;
w = c[e >> 2] | 0;
a: while (1) {
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
z = (w | 0) == 0;
y = c[f >> 2] | 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) != (c[y + 16 >> 2] | 0))
if (z) break;
else break a;
if ((Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) != -1)
if (z) break;
else break a;
else {
c[f >> 2] = 0;
k = 13;
break
}
} else k = 13;
while (0);
if ((k | 0) == 13) {
k = 0;
if (z) {
y = 0;
break
} else y = 0
}
z = a[m >> 0] | 0;
z = (z & 1) == 0 ? (z & 255) >>> 1 : c[u >> 2] | 0;
if ((c[n >> 2] | 0) == (x + z | 0)) {
wl(m, z << 1, 0);
if (!(a[m >> 0] & 1)) x = 10;
else x = (c[m >> 2] & -2) + -1 | 0;
wl(m, x, 0);
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x + z
}
A = w + 12 | 0;
B = c[A >> 2] | 0;
z = w + 16 | 0;
if ((B | 0) == (c[z >> 2] | 0)) B = Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0;
else B = d[B >> 0] | 0;
if (Vn(B & 255, o, x, n, r, v, l, p, q, s) | 0) break;
y = c[A >> 2] | 0;
if ((y | 0) == (c[z >> 2] | 0)) {
Gb[c[(c[w >> 2] | 0) + 40 >> 2] & 127](w) | 0;
continue
} else {
c[A >> 2] = y + 1;
continue
}
}
B = a[l >> 0] | 0;
s = c[q >> 2] | 0;
if ((((B & 1) == 0 ? (B & 255) >>> 1 : c[l + 4 >> 2] | 0) | 0) != 0 ? (s - p | 0) < 160 : 0) {
A = c[r >> 2] | 0;
B = s + 4 | 0;
c[q >> 2] = B;
c[s >> 2] = A;
s = B
}
c[j >> 2] = Zu(x, c[n >> 2] | 0, h, o) | 0;
Uq(l, p, s, h);
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
j = (w | 0) == 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) == (c[y + 16 >> 2] | 0) ? (Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) == -1 : 0) {
c[f >> 2] = 0;
k = 38;
break
}
if (!j) k = 39
} else k = 38;
while (0);
if ((k | 0) == 38 ? j : 0) k = 39;
if ((k | 0) == 39) c[h >> 2] = c[h >> 2] | 2;
B = c[e >> 2] | 0;
sl(m);
sl(l);
i = b;
return B | 0
}
function xt(b, e, f, g, h, j) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
b = i;
i = i + 240 | 0;
s = b + 202 | 0;
v = b + 200 | 0;
l = b + 24 | 0;
m = b + 12 | 0;
n = b + 8 | 0;
p = b + 40 | 0;
q = b + 4 | 0;
r = b;
o = ft(g) | 0;
ko(l, g, s, v);
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
if (!(a[m >> 0] & 1)) g = 10;
else g = (c[m >> 2] & -2) + -1 | 0;
wl(m, g, 0);
g = m + 8 | 0;
t = m + 1 | 0;
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x;
c[q >> 2] = p;
c[r >> 2] = 0;
u = m + 4 | 0;
v = a[v >> 0] | 0;
w = c[e >> 2] | 0;
a: while (1) {
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
z = (w | 0) == 0;
y = c[f >> 2] | 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) != (c[y + 16 >> 2] | 0))
if (z) break;
else break a;
if ((Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) != -1)
if (z) break;
else break a;
else {
c[f >> 2] = 0;
k = 13;
break
}
} else k = 13;
while (0);
if ((k | 0) == 13) {
k = 0;
if (z) {
y = 0;
break
} else y = 0
}
z = a[m >> 0] | 0;
z = (z & 1) == 0 ? (z & 255) >>> 1 : c[u >> 2] | 0;
if ((c[n >> 2] | 0) == (x + z | 0)) {
wl(m, z << 1, 0);
if (!(a[m >> 0] & 1)) x = 10;
else x = (c[m >> 2] & -2) + -1 | 0;
wl(m, x, 0);
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x + z
}
A = w + 12 | 0;
B = c[A >> 2] | 0;
z = w + 16 | 0;
if ((B | 0) == (c[z >> 2] | 0)) B = Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0;
else B = d[B >> 0] | 0;
if (Vn(B & 255, o, x, n, r, v, l, p, q, s) | 0) break;
y = c[A >> 2] | 0;
if ((y | 0) == (c[z >> 2] | 0)) {
Gb[c[(c[w >> 2] | 0) + 40 >> 2] & 127](w) | 0;
continue
} else {
c[A >> 2] = y + 1;
continue
}
}
B = a[l >> 0] | 0;
s = c[q >> 2] | 0;
if ((((B & 1) == 0 ? (B & 255) >>> 1 : c[l + 4 >> 2] | 0) | 0) != 0 ? (s - p | 0) < 160 : 0) {
A = c[r >> 2] | 0;
B = s + 4 | 0;
c[q >> 2] = B;
c[s >> 2] = A;
s = B
}
A = Yu(x, c[n >> 2] | 0, h, o) | 0;
B = j;
c[B >> 2] = A;
c[B + 4 >> 2] = C;
Uq(l, p, s, h);
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
j = (w | 0) == 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) == (c[y + 16 >> 2] | 0) ? (Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) == -1 : 0) {
c[f >> 2] = 0;
k = 38;
break
}
if (!j) k = 39
} else k = 38;
while (0);
if ((k | 0) == 38 ? j : 0) k = 39;
if ((k | 0) == 39) c[h >> 2] = c[h >> 2] | 2;
B = c[e >> 2] | 0;
sl(m);
sl(l);
i = b;
return B | 0
}
function yt(e, f, g, h, j, k) {
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
k = k | 0;
var 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;
e = i;
i = i + 240 | 0;
t = e + 202 | 0;
w = e + 200 | 0;
m = e + 24 | 0;
n = e + 12 | 0;
o = e + 8 | 0;
q = e + 40 | 0;
r = e + 4 | 0;
s = e;
p = ft(h) | 0;
ko(m, h, t, w);
c[n >> 2] = 0;
c[n + 4 >> 2] = 0;
c[n + 8 >> 2] = 0;
if (!(a[n >> 0] & 1)) h = 10;
else h = (c[n >> 2] & -2) + -1 | 0;
wl(n, h, 0);
h = n + 8 | 0;
u = n + 1 | 0;
y = (a[n >> 0] & 1) == 0 ? u : c[h >> 2] | 0;
c[o >> 2] = y;
c[r >> 2] = q;
c[s >> 2] = 0;
v = n + 4 | 0;
w = a[w >> 0] | 0;
x = c[f >> 2] | 0;
a: while (1) {
if (x) {
if ((c[x + 12 >> 2] | 0) == (c[x + 16 >> 2] | 0) ? (Gb[c[(c[x >> 2] | 0) + 36 >> 2] & 127](x) | 0) == -1 : 0) {
c[f >> 2] = 0;
x = 0
}
} else x = 0;
A = (x | 0) == 0;
z = c[g >> 2] | 0;
do
if (z) {
if ((c[z + 12 >> 2] | 0) != (c[z + 16 >> 2] | 0))
if (A) break;
else break a;
if ((Gb[c[(c[z >> 2] | 0) + 36 >> 2] & 127](z) | 0) != -1)
if (A) break;
else break a;
else {
c[g >> 2] = 0;
l = 13;
break
}
} else l = 13;
while (0);
if ((l | 0) == 13) {
l = 0;
if (A) {
z = 0;
break
} else z = 0
}
A = a[n >> 0] | 0;
A = (A & 1) == 0 ? (A & 255) >>> 1 : c[v >> 2] | 0;
if ((c[o >> 2] | 0) == (y + A | 0)) {
wl(n, A << 1, 0);
if (!(a[n >> 0] & 1)) y = 10;
else y = (c[n >> 2] & -2) + -1 | 0;
wl(n, y, 0);
y = (a[n >> 0] & 1) == 0 ? u : c[h >> 2] | 0;
c[o >> 2] = y + A
}
B = x + 12 | 0;
C = c[B >> 2] | 0;
A = x + 16 | 0;
if ((C | 0) == (c[A >> 2] | 0)) C = Gb[c[(c[x >> 2] | 0) + 36 >> 2] & 127](x) | 0;
else C = d[C >> 0] | 0;
if (Vn(C & 255, p, y, o, s, w, m, q, r, t) | 0) break;
z = c[B >> 2] | 0;
if ((z | 0) == (c[A >> 2] | 0)) {
Gb[c[(c[x >> 2] | 0) + 40 >> 2] & 127](x) | 0;
continue
} else {
c[B >> 2] = z + 1;
continue
}
}
C = a[m >> 0] | 0;
t = c[r >> 2] | 0;
if ((((C & 1) == 0 ? (C & 255) >>> 1 : c[m + 4 >> 2] | 0) | 0) != 0 ? (t - q | 0) < 160 : 0) {
B = c[s >> 2] | 0;
C = t + 4 | 0;
c[r >> 2] = C;
c[t >> 2] = B;
t = C
}
b[k >> 1] = Xu(y, c[o >> 2] | 0, j, p) | 0;
Uq(m, q, t, j);
if (x) {
if ((c[x + 12 >> 2] | 0) == (c[x + 16 >> 2] | 0) ? (Gb[c[(c[x >> 2] | 0) + 36 >> 2] & 127](x) | 0) == -1 : 0) {
c[f >> 2] = 0;
x = 0
}
} else x = 0;
k = (x | 0) == 0;
do
if (z) {
if ((c[z + 12 >> 2] | 0) == (c[z + 16 >> 2] | 0) ? (Gb[c[(c[z >> 2] | 0) + 36 >> 2] & 127](z) | 0) == -1 : 0) {
c[g >> 2] = 0;
l = 38;
break
}
if (!k) l = 39
} else l = 38;
while (0);
if ((l | 0) == 38 ? k : 0) l = 39;
if ((l | 0) == 39) c[j >> 2] = c[j >> 2] | 2;
C = c[f >> 2] | 0;
sl(n);
sl(m);
i = e;
return C | 0
}
function zt(b, e, f, g, h, j) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
b = i;
i = i + 240 | 0;
s = b + 202 | 0;
v = b + 200 | 0;
l = b + 24 | 0;
m = b + 12 | 0;
n = b + 8 | 0;
p = b + 40 | 0;
q = b + 4 | 0;
r = b;
o = ft(g) | 0;
ko(l, g, s, v);
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
if (!(a[m >> 0] & 1)) g = 10;
else g = (c[m >> 2] & -2) + -1 | 0;
wl(m, g, 0);
g = m + 8 | 0;
t = m + 1 | 0;
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x;
c[q >> 2] = p;
c[r >> 2] = 0;
u = m + 4 | 0;
v = a[v >> 0] | 0;
w = c[e >> 2] | 0;
a: while (1) {
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
z = (w | 0) == 0;
y = c[f >> 2] | 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) != (c[y + 16 >> 2] | 0))
if (z) break;
else break a;
if ((Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) != -1)
if (z) break;
else break a;
else {
c[f >> 2] = 0;
k = 13;
break
}
} else k = 13;
while (0);
if ((k | 0) == 13) {
k = 0;
if (z) {
y = 0;
break
} else y = 0
}
z = a[m >> 0] | 0;
z = (z & 1) == 0 ? (z & 255) >>> 1 : c[u >> 2] | 0;
if ((c[n >> 2] | 0) == (x + z | 0)) {
wl(m, z << 1, 0);
if (!(a[m >> 0] & 1)) x = 10;
else x = (c[m >> 2] & -2) + -1 | 0;
wl(m, x, 0);
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x + z
}
A = w + 12 | 0;
B = c[A >> 2] | 0;
z = w + 16 | 0;
if ((B | 0) == (c[z >> 2] | 0)) B = Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0;
else B = d[B >> 0] | 0;
if (Vn(B & 255, o, x, n, r, v, l, p, q, s) | 0) break;
y = c[A >> 2] | 0;
if ((y | 0) == (c[z >> 2] | 0)) {
Gb[c[(c[w >> 2] | 0) + 40 >> 2] & 127](w) | 0;
continue
} else {
c[A >> 2] = y + 1;
continue
}
}
B = a[l >> 0] | 0;
s = c[q >> 2] | 0;
if ((((B & 1) == 0 ? (B & 255) >>> 1 : c[l + 4 >> 2] | 0) | 0) != 0 ? (s - p | 0) < 160 : 0) {
A = c[r >> 2] | 0;
B = s + 4 | 0;
c[q >> 2] = B;
c[s >> 2] = A;
s = B
}
c[j >> 2] = Wu(x, c[n >> 2] | 0, h, o) | 0;
Uq(l, p, s, h);
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
j = (w | 0) == 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) == (c[y + 16 >> 2] | 0) ? (Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) == -1 : 0) {
c[f >> 2] = 0;
k = 38;
break
}
if (!j) k = 39
} else k = 38;
while (0);
if ((k | 0) == 38 ? j : 0) k = 39;
if ((k | 0) == 39) c[h >> 2] = c[h >> 2] | 2;
B = c[e >> 2] | 0;
sl(m);
sl(l);
i = b;
return B | 0
}
function At(b, e, f, g, h, j) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
b = i;
i = i + 240 | 0;
s = b + 202 | 0;
v = b + 200 | 0;
l = b + 24 | 0;
m = b + 12 | 0;
n = b + 8 | 0;
p = b + 40 | 0;
q = b + 4 | 0;
r = b;
o = ft(g) | 0;
ko(l, g, s, v);
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
if (!(a[m >> 0] & 1)) g = 10;
else g = (c[m >> 2] & -2) + -1 | 0;
wl(m, g, 0);
g = m + 8 | 0;
t = m + 1 | 0;
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x;
c[q >> 2] = p;
c[r >> 2] = 0;
u = m + 4 | 0;
v = a[v >> 0] | 0;
w = c[e >> 2] | 0;
a: while (1) {
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
z = (w | 0) == 0;
y = c[f >> 2] | 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) != (c[y + 16 >> 2] | 0))
if (z) break;
else break a;
if ((Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) != -1)
if (z) break;
else break a;
else {
c[f >> 2] = 0;
k = 13;
break
}
} else k = 13;
while (0);
if ((k | 0) == 13) {
k = 0;
if (z) {
y = 0;
break
} else y = 0
}
z = a[m >> 0] | 0;
z = (z & 1) == 0 ? (z & 255) >>> 1 : c[u >> 2] | 0;
if ((c[n >> 2] | 0) == (x + z | 0)) {
wl(m, z << 1, 0);
if (!(a[m >> 0] & 1)) x = 10;
else x = (c[m >> 2] & -2) + -1 | 0;
wl(m, x, 0);
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x + z
}
A = w + 12 | 0;
B = c[A >> 2] | 0;
z = w + 16 | 0;
if ((B | 0) == (c[z >> 2] | 0)) B = Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0;
else B = d[B >> 0] | 0;
if (Vn(B & 255, o, x, n, r, v, l, p, q, s) | 0) break;
y = c[A >> 2] | 0;
if ((y | 0) == (c[z >> 2] | 0)) {
Gb[c[(c[w >> 2] | 0) + 40 >> 2] & 127](w) | 0;
continue
} else {
c[A >> 2] = y + 1;
continue
}
}
B = a[l >> 0] | 0;
s = c[q >> 2] | 0;
if ((((B & 1) == 0 ? (B & 255) >>> 1 : c[l + 4 >> 2] | 0) | 0) != 0 ? (s - p | 0) < 160 : 0) {
A = c[r >> 2] | 0;
B = s + 4 | 0;
c[q >> 2] = B;
c[s >> 2] = A;
s = B
}
c[j >> 2] = Vu(x, c[n >> 2] | 0, h, o) | 0;
Uq(l, p, s, h);
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
j = (w | 0) == 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) == (c[y + 16 >> 2] | 0) ? (Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) == -1 : 0) {
c[f >> 2] = 0;
k = 38;
break
}
if (!j) k = 39
} else k = 38;
while (0);
if ((k | 0) == 38 ? j : 0) k = 39;
if ((k | 0) == 39) c[h >> 2] = c[h >> 2] | 2;
B = c[e >> 2] | 0;
sl(m);
sl(l);
i = b;
return B | 0
}
function Bt(b, e, f, g, h, j) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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;
b = i;
i = i + 240 | 0;
s = b + 202 | 0;
v = b + 200 | 0;
l = b + 24 | 0;
m = b + 12 | 0;
n = b + 8 | 0;
p = b + 40 | 0;
q = b + 4 | 0;
r = b;
o = ft(g) | 0;
ko(l, g, s, v);
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
if (!(a[m >> 0] & 1)) g = 10;
else g = (c[m >> 2] & -2) + -1 | 0;
wl(m, g, 0);
g = m + 8 | 0;
t = m + 1 | 0;
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x;
c[q >> 2] = p;
c[r >> 2] = 0;
u = m + 4 | 0;
v = a[v >> 0] | 0;
w = c[e >> 2] | 0;
a: while (1) {
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
z = (w | 0) == 0;
y = c[f >> 2] | 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) != (c[y + 16 >> 2] | 0))
if (z) break;
else break a;
if ((Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) != -1)
if (z) break;
else break a;
else {
c[f >> 2] = 0;
k = 13;
break
}
} else k = 13;
while (0);
if ((k | 0) == 13) {
k = 0;
if (z) {
y = 0;
break
} else y = 0
}
z = a[m >> 0] | 0;
z = (z & 1) == 0 ? (z & 255) >>> 1 : c[u >> 2] | 0;
if ((c[n >> 2] | 0) == (x + z | 0)) {
wl(m, z << 1, 0);
if (!(a[m >> 0] & 1)) x = 10;
else x = (c[m >> 2] & -2) + -1 | 0;
wl(m, x, 0);
x = (a[m >> 0] & 1) == 0 ? t : c[g >> 2] | 0;
c[n >> 2] = x + z
}
A = w + 12 | 0;
B = c[A >> 2] | 0;
z = w + 16 | 0;
if ((B | 0) == (c[z >> 2] | 0)) B = Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0;
else B = d[B >> 0] | 0;
if (Vn(B & 255, o, x, n, r, v, l, p, q, s) | 0) break;
y = c[A >> 2] | 0;
if ((y | 0) == (c[z >> 2] | 0)) {
Gb[c[(c[w >> 2] | 0) + 40 >> 2] & 127](w) | 0;
continue
} else {
c[A >> 2] = y + 1;
continue
}
}
B = a[l >> 0] | 0;
s = c[q >> 2] | 0;
if ((((B & 1) == 0 ? (B & 255) >>> 1 : c[l + 4 >> 2] | 0) | 0) != 0 ? (s - p | 0) < 160 : 0) {
A = c[r >> 2] | 0;
B = s + 4 | 0;
c[q >> 2] = B;
c[s >> 2] = A;
s = B
}
A = Uu(x, c[n >> 2] | 0, h, o) | 0;
B = j;
c[B >> 2] = A;
c[B + 4 >> 2] = C;
Uq(l, p, s, h);
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[e >> 2] = 0;
w = 0
}
} else w = 0;
j = (w | 0) == 0;
do
if (y) {
if ((c[y + 12 >> 2] | 0) == (c[y + 16 >> 2] | 0) ? (Gb[c[(c[y >> 2] | 0) + 36 >> 2] & 127](y) | 0) == -1 : 0) {
c[f >> 2] = 0;
k = 38;
break
}
if (!j) k = 39
} else k = 38;
while (0);
if ((k | 0) == 38 ? j : 0) k = 39;
if ((k | 0) == 39) c[h >> 2] = c[h >> 2] | 2;
B = c[e >> 2] | 0;
sl(m);
sl(l);
i = b;
return B | 0
}
function Ct(b, e, f, h, j, k) {
b = b | 0;
e = e | 0;
f = f | 0;
h = h | 0;
j = j | 0;
k = k | 0;
var 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;
b = i;
i = i + 240 | 0;
u = b + 208 | 0;
x = b + 203 | 0;
y = b + 202 | 0;
m = b + 24 | 0;
n = b + 12 | 0;
o = b + 8 | 0;
p = b + 40 | 0;
q = b + 4 | 0;
r = b;
s = b + 201 | 0;
t = b + 200 | 0;
lo(m, h, u, x, y);
c[n >> 2] = 0;
c[n + 4 >> 2] = 0;
c[n + 8 >> 2] = 0;
if (!(a[n >> 0] & 1)) h = 10;
else h = (c[n >> 2] & -2) + -1 | 0;
wl(n, h, 0);
h = n + 8 | 0;
v = n + 1 | 0;
A = (a[n >> 0] & 1) == 0 ? v : c[h >> 2] | 0;
c[o >> 2] = A;
c[q >> 2] = p;
c[r >> 2] = 0;
a[s >> 0] = 1;
a[t >> 0] = 69;
w = n + 4 | 0;
x = a[x >> 0] | 0;
y = a[y >> 0] | 0;
z = c[e >> 2] | 0;
a: while (1) {
if (z) {
if ((c[z + 12 >> 2] | 0) == (c[z + 16 >> 2] | 0) ? (Gb[c[(c[z >> 2] | 0) + 36 >> 2] & 127](z) | 0) == -1 : 0) {
c[e >> 2] = 0;
z = 0
}
} else z = 0;
C = (z | 0) == 0;
B = c[f >> 2] | 0;
do
if (B) {
if ((c[B + 12 >> 2] | 0) != (c[B + 16 >> 2] | 0))
if (C) break;
else break a;
if ((Gb[c[(c[B >> 2] | 0) + 36 >> 2] & 127](B) | 0) != -1)
if (C) break;
else break a;
else {
c[f >> 2] = 0;
l = 13;
break
}
} else l = 13;
while (0);
if ((l | 0) == 13) {
l = 0;
if (C) {
B = 0;
break
} else B = 0
}
C = a[n >> 0] | 0;
C = (C & 1) == 0 ? (C & 255) >>> 1 : c[w >> 2] | 0;
if ((c[o >> 2] | 0) == (A + C | 0)) {
wl(n, C << 1, 0);
if (!(a[n >> 0] & 1)) A = 10;
else A = (c[n >> 2] & -2) + -1 | 0;
wl(n, A, 0);
A = (a[n >> 0] & 1) == 0 ? v : c[h >> 2] | 0;
c[o >> 2] = A + C
}
D = z + 12 | 0;
E = c[D >> 2] | 0;
C = z + 16 | 0;
if ((E | 0) == (c[C >> 2] | 0)) E = Gb[c[(c[z >> 2] | 0) + 36 >> 2] & 127](z) | 0;
else E = d[E >> 0] | 0;
if (mo(E & 255, s, t, A, o, x, y, m, p, q, r, u) | 0) break;
B = c[D >> 2] | 0;
if ((B | 0) == (c[C >> 2] | 0)) {
Gb[c[(c[z >> 2] | 0) + 40 >> 2] & 127](z) | 0;
continue
} else {
c[D >> 2] = B + 1;
continue
}
}
E = a[m >> 0] | 0;
t = c[q >> 2] | 0;
if (!((a[s >> 0] | 0) == 0 ? 1 : (((E & 1) == 0 ? (E & 255) >>> 1 : c[m + 4 >> 2] | 0) | 0) == 0) ? (t - p | 0) < 160 : 0) {
D = c[r >> 2] | 0;
E = t + 4 | 0;
c[q >> 2] = E;
c[t >> 2] = D;
t = E
}
g[k >> 2] = +Tu(A, c[o >> 2] | 0, j);
Uq(m, p, t, j);
if (z) {
if ((c[z + 12 >> 2] | 0) == (c[z + 16 >> 2] | 0) ? (Gb[c[(c[z >> 2] | 0) + 36 >> 2] & 127](z) | 0) == -1 : 0) {
c[e >> 2] = 0;
z = 0
}
} else z = 0;
k = (z | 0) == 0;
do
if (B) {
if ((c[B + 12 >> 2] | 0) == (c[B + 16 >> 2] | 0) ? (Gb[c[(c[B >> 2] | 0) + 36 >> 2] & 127](B) | 0) == -1 : 0) {
c[f >> 2] = 0;
l = 38;
break
}
if (!k) l = 39
} else l = 38;
while (0);
if ((l | 0) == 38 ? k : 0) l = 39;
if ((l | 0) == 39) c[j >> 2] = c[j >> 2] | 2;
E = c[e >> 2] | 0;
sl(n);
sl(m);
i = b;
return E | 0
}
function pk(e, f, g, j, l) {
e = e | 0;
f = f | 0;
g = g | 0;
j = j | 0;
l = l | 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,
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,
aa = 0,
ba = 0,
ca = 0,
da = 0,
ea = 0.0,
fa = 0,
ga = 0.0;
m = i;
i = i + 624 | 0;
y = m + 24 | 0;
o = m + 16 | 0;
s = m + 588 | 0;
r = m + 576 | 0;
A = m;
H = m + 536 | 0;
J = m + 8 | 0;
G = m + 528 | 0;
E = (e | 0) != 0;
I = H + 40 | 0;
p = I;
H = H + 39 | 0;
n = J + 4 | 0;
q = r + 12 | 0;
r = r + 11 | 0;
t = s;
x = q;
w = x - t | 0;
u = -2 - t | 0;
v = x + 2 | 0;
z = y + 288 | 0;
F = s + 9 | 0;
D = F;
B = s + 8 | 0;
K = 0;
Q = 0;
M = 0;
a: while (1) {
do
if ((K | 0) > -1)
if ((Q | 0) > (2147483647 - K | 0)) {
c[(Mi() | 0) >> 2] = 75;
K = -1;
break
} else {
K = Q + K | 0;
break
}
while (0);
N = a[f >> 0] | 0;
if (!(N << 24 >> 24)) {
L = 245;
break
} else O = f;
b: while (1) {
switch (N << 24 >> 24) {
case 37:
{
N = O;L = 9;
break b
};
case 0:
{
N = O;
break b
};
default:
{}
}
fa = O + 1 | 0;
N = a[fa >> 0] | 0;
O = fa
}
c: do
if ((L | 0) == 9)
while (1) {
L = 0;
if ((a[N + 1 >> 0] | 0) != 37) break c;
O = O + 1 | 0;
N = N + 2 | 0;
if ((a[N >> 0] | 0) == 37) L = 9;
else break
}
while (0);
Q = O - f | 0;
if (E ? (c[e >> 2] & 32 | 0) == 0 : 0) Bj(f, Q, e) | 0;
if ((O | 0) != (f | 0)) {
f = N;
continue
}
O = N + 1 | 0;
R = a[O >> 0] | 0;
P = (R << 24 >> 24) + -48 | 0;
if (P >>> 0 < 10) {
fa = (a[N + 2 >> 0] | 0) == 36;
O = fa ? N + 3 | 0 : O;
R = a[O >> 0] | 0;
P = fa ? P : -1;
M = fa ? 1 : M
} else P = -1;
N = R << 24 >> 24;
d: do
if ((N & -32 | 0) == 32) {
T = 0;
while (1) {
if (!(1 << N + -32 & 75913)) {
N = R;
break d
}
T = 1 << (R << 24 >> 24) + -32 | T;
O = O + 1 | 0;
R = a[O >> 0] | 0;
N = R << 24 >> 24;
if ((N & -32 | 0) != 32) {
N = R;
break
}
}
} else {
N = R;
T = 0
}
while (0);
do
if (N << 24 >> 24 == 42) {
V = O + 1 | 0;
N = (a[V >> 0] | 0) + -48 | 0;
if (N >>> 0 < 10 ? (a[O + 2 >> 0] | 0) == 36 : 0) {
c[l + (N << 2) >> 2] = 10;
M = 1;
O = O + 3 | 0;
N = c[j + ((a[V >> 0] | 0) + -48 << 3) >> 2] | 0
} else {
if (M) {
K = -1;
break a
}
if (!E) {
M = 0;
N = 0;
break
}
M = (c[g >> 2] | 0) + (4 - 1) & ~(4 - 1);
N = c[M >> 2] | 0;
c[g >> 2] = M + 4;
M = 0;
O = V
}
if ((N | 0) < 0) {
T = T | 8192;
V = O;
N = 0 - N | 0
} else V = O
} else {
R = (N << 24 >> 24) + -48 | 0;
if (R >>> 0 < 10) {
V = O;
N = 0;
O = R;
do {
N = (N * 10 | 0) + O | 0;
V = V + 1 | 0;
O = (a[V >> 0] | 0) + -48 | 0
} while (O >>> 0 < 10);
if ((N | 0) < 0) {
K = -1;
break a
}
} else {
V = O;
N = 0
}
}
while (0);
e: do
if ((a[V >> 0] | 0) == 46) {
R = V + 1 | 0;
O = a[R >> 0] | 0;
if (O << 24 >> 24 != 42) {
O = (O << 24 >> 24) + -48 | 0;
if (O >>> 0 < 10) {
V = R;
R = 0
} else {
V = R;
R = 0;
break
}
while (1) {
R = (R * 10 | 0) + O | 0;
V = V + 1 | 0;
O = (a[V >> 0] | 0) + -48 | 0;
if (O >>> 0 >= 10) break e
}
}
O = V + 2 | 0;
R = (a[O >> 0] | 0) + -48 | 0;
if (R >>> 0 < 10 ? (a[V + 3 >> 0] | 0) == 36 : 0) {
c[l + (R << 2) >> 2] = 10;
V = V + 4 | 0;
R = c[j + ((a[O >> 0] | 0) + -48 << 3) >> 2] | 0;
break
}
if (M) {
K = -1;
break a
}
if (E) {
V = (c[g >> 2] | 0) + (4 - 1) & ~(4 - 1);
R = c[V >> 2] | 0;
c[g >> 2] = V + 4;
V = O
} else {
V = O;
R = 0
}
} else R = -1;
while (0);
S = 0;
while (1) {
U = (a[V >> 0] | 0) + -65 | 0;
if (U >>> 0 > 57) {
K = -1;
break a
}
O = V + 1 | 0;
U = a[1177777 + (S * 58 | 0) + U >> 0] | 0;
X = U & 255;
if ((X + -1 | 0) >>> 0 < 8) {
V = O;
S = X
} else {
W = S;
break
}
}
if (!(U << 24 >> 24)) {
K = -1;
break
}
S = (P | 0) > -1;
do
if (U << 24 >> 24 == 19)
if (S) {
K = -1;
break a
} else L = 52;
else {
if (S) {
c[l + (P << 2) >> 2] = X;
da = j + (P << 3) | 0;
fa = c[da + 4 >> 2] | 0;
L = A;
c[L >> 2] = c[da >> 2];
c[L + 4 >> 2] = fa;
L = 52;
break
}
if (!E) {
K = 0;
break a
}
wk(A, X, g)
} while (0);
if ((L | 0) == 52 ? (L = 0, !E) : 0) {
f = O;
continue
}
S = a[V >> 0] | 0;
S = (W | 0) != 0 & (S & 15 | 0) == 3 ? S & -33 : S;
U = T & -65537;
P = (T & 8192 | 0) == 0 ? T : U;
f: do switch (S | 0) {
case 110:
switch (W | 0) {
case 0:
{
c[c[A >> 2] >> 2] = K;f = O;
continue a
};
case 1:
{
c[c[A >> 2] >> 2] = K;f = O;
continue a
};
case 2:
{
f = c[A >> 2] | 0;c[f >> 2] = K;c[f + 4 >> 2] = ((K | 0) < 0) << 31 >> 31;f = O;
continue a
};
case 3:
{
b[c[A >> 2] >> 1] = K;f = O;
continue a
};
case 4:
{
a[c[A >> 2] >> 0] = K;f = O;
continue a
};
case 6:
{
c[c[A >> 2] >> 2] = K;f = O;
continue a
};
case 7:
{
f = c[A >> 2] | 0;c[f >> 2] = K;c[f + 4 >> 2] = ((K | 0) < 0) << 31 >> 31;f = O;
continue a
};
default:
{
f = O;
continue a
}
};
case 112:
{
P = P | 8;R = R >>> 0 > 8 ? R : 8;S = 120;L = 64;
break
};
case 88:
case 120:
{
L = 64;
break
};
case 111:
{
Q = A;L = c[Q >> 2] | 0;Q = c[Q + 4 >> 2] | 0;
if ((L | 0) == 0 & (Q | 0) == 0) f = I;
else {
f = I;
do {
f = f + -1 | 0;
a[f >> 0] = L & 7 | 48;
L = gv(L | 0, Q | 0, 3) | 0;
Q = C
} while (!((L | 0) == 0 & (Q | 0) == 0))
}
if (!(P & 8)) {
Q = 0;
T = 1178257;
L = 77
} else {
Q = p - f + 1 | 0;
R = (R | 0) < (Q | 0) ? Q : R;
Q = 0;
T = 1178257;
L = 77
}
break
};
case 105:
case 100:
{
S = A;f = c[S >> 2] | 0;S = c[S + 4 >> 2] | 0;
if ((S | 0) < 0) {
f = cv(0, 0, f | 0, S | 0) | 0;
S = C;
Q = A;
c[Q >> 2] = f;
c[Q + 4 >> 2] = S;
Q = 1;
T = 1178257;
L = 76;
break f
}
if (!(P & 2048)) {
T = P & 1;
Q = T;
T = (T | 0) == 0 ? 1178257 : 1178259;
L = 76
} else {
Q = 1;
T = 1178258;
L = 76
}
break
};
case 117:
{
S = A;f = c[S >> 2] | 0;S = c[S + 4 >> 2] | 0;Q = 0;T = 1178257;L = 76;
break
};
case 99:
{
a[H >> 0] = c[A >> 2];f = H;P = U;U = 1;S = 0;T = 1178257;Q = I;
break
};
case 109:
{
Q = Li(c[(Mi() | 0) >> 2] | 0) | 0;L = 82;
break
};
case 115:
{
Q = c[A >> 2] | 0;Q = (Q | 0) != 0 ? Q : 1178267;L = 82;
break
};
case 67:
{
c[J >> 2] = c[A >> 2];c[n >> 2] = 0;c[A >> 2] = J;R = -1;L = 86;
break
};
case 83:
{
if (!R) {
yk(e, 32, N, 0, P);
Q = 0;
L = 98
} else L = 86;
break
};
case 65:
case 71:
case 70:
case 69:
case 97:
case 103:
case 102:
case 101:
{
ea = +h[A >> 3];c[o >> 2] = 0;h[k >> 3] = ea;
if ((c[k + 4 >> 2] | 0) >= 0)
if (!(P & 2048)) {
f = P & 1;
Q = f;
f = (f | 0) == 0 ? 1178275 : 1178280
} else {
Q = 1;
f = 1178277
}
else {
ea = -ea;
Q = 1;
f = 1178274
}
h[k >> 3] = ea;fa = c[k + 4 >> 2] & 2146435072;do
if (fa >>> 0 < 2146435072 | (fa | 0) == 2146435072 & 0 < 0) {
ea = +dj(ea, o) * 2.0;
T = ea != 0.0;
if (T) c[o >> 2] = (c[o >> 2] | 0) + -1;
V = S | 32;
if ((V | 0) == 97) {
T = S & 32;
f = (T | 0) == 0 ? f : f + 9 | 0;
Q = Q | 2;
U = 12 - R | 0;
do
if (!(R >>> 0 > 11 | (U | 0) == 0)) {
ga = 8.0;
do {
U = U + -1 | 0;
ga = ga * 16.0
} while ((U | 0) != 0);
if ((a[f >> 0] | 0) == 45) {
ea = -(ga + (-ea - ga));
break
} else {
ea = ea + ga - ga;
break
}
}
while (0);
U = c[o >> 2] | 0;
V = (U | 0) < 0 ? 0 - U | 0 : U;
V = xk(V, ((V | 0) < 0) << 31 >> 31, q) | 0;
if ((V | 0) == (q | 0)) {
a[r >> 0] = 48;
V = r
}
a[V + -1 >> 0] = (U >> 31 & 2) + 43;
U = V + -2 | 0;
a[U >> 0] = S + 15;
V = (R | 0) < 1;
S = (P & 8 | 0) == 0;
W = s;
do {
fa = ~~ea;
X = W + 1 | 0;
a[W >> 0] = d[1178241 + fa >> 0] | T;
ea = (ea - +(fa | 0)) * 16.0;
do
if ((X - t | 0) == 1) {
if (S & (V & ea == 0.0)) {
W = X;
break
}
a[X >> 0] = 46;
W = W + 2 | 0
} else W = X;
while (0)
} while (ea != 0.0);
S = (R | 0) != 0 & (u + W | 0) < (R | 0) ? v + R - U | 0 : w - U + W | 0;
R = S + Q | 0;
yk(e, 32, N, R, P);
if (!(c[e >> 2] & 32)) Bj(f, Q, e) | 0;
yk(e, 48, N, R, P ^ 65536);
Q = W - t | 0;
if (!(c[e >> 2] & 32)) Bj(s, Q, e) | 0;
f = x - U | 0;
yk(e, 48, S - (Q + f) | 0, 0, 0);
if (!(c[e >> 2] & 32)) Bj(U, f, e) | 0;
yk(e, 32, N, R, P ^ 8192);
Q = (R | 0) < (N | 0) ? N : R;
break
}
U = (R | 0) < 0 ? 6 : R;
if (T) {
R = (c[o >> 2] | 0) + -28 | 0;
c[o >> 2] = R;
ea = ea * 268435456.0
} else R = c[o >> 2] | 0;
R = (R | 0) < 0 ? y : z;
T = R;
W = R;
do {
fa = ~~ea >>> 0;
c[W >> 2] = fa;
W = W + 4 | 0;
ea = (ea - +(fa >>> 0)) * 1.0e9
} while (ea != 0.0);
Z = c[o >> 2] | 0;
if ((Z | 0) > 0) {
$ = R;
do {
X = (Z | 0) > 29 ? 29 : Z;
Y = W + -4 | 0;
do
if (Y >>> 0 >= $ >>> 0) {
Z = 0;
do {
fa = iv(c[Y >> 2] | 0, 0, X | 0) | 0;
fa = hv(fa | 0, C | 0, Z | 0, 0) | 0;
Z = C;
da = rv(fa | 0, Z | 0, 1e9, 0) | 0;
c[Y >> 2] = da;
Z = qv(fa | 0, Z | 0, 1e9, 0) | 0;
Y = Y + -4 | 0
} while (Y >>> 0 >= $ >>> 0);
if (!Z) break;
$ = $ + -4 | 0;
c[$ >> 2] = Z
}
while (0); while (1) {
if (W >>> 0 <= $ >>> 0) break;
Y = W + -4 | 0;
if (!(c[Y >> 2] | 0)) W = Y;
else break
}
Z = (c[o >> 2] | 0) - X | 0;
c[o >> 2] = Z
} while ((Z | 0) > 0)
} else $ = R;
if ((Z | 0) < 0) {
Y = ((U + 25 | 0) / 9 | 0) + 1 | 0;
X = (V | 0) == 102;
do {
Z = 0 - Z | 0;
Z = (Z | 0) > 9 ? 9 : Z;
do
if ($ >>> 0 < W >>> 0) {
ca = (1 << Z) + -1 | 0;
aa = 1e9 >>> Z;
da = 0;
ba = $;
do {
fa = c[ba >> 2] | 0;
c[ba >> 2] = (fa >>> Z) + da;
da = _(fa & ca, aa) | 0;
ba = ba + 4 | 0
} while (ba >>> 0 < W >>> 0);
$ = (c[$ >> 2] | 0) == 0 ? $ + 4 | 0 : $;
if (!da) break;
c[W >> 2] = da;
W = W + 4 | 0
} else $ = (c[$ >> 2] | 0) == 0 ? $ + 4 | 0 : $;
while (0);
fa = X ? R : $;
W = (W - fa >> 2 | 0) > (Y | 0) ? fa + (Y << 2) | 0 : W;
Z = (c[o >> 2] | 0) + Z | 0;
c[o >> 2] = Z
} while ((Z | 0) < 0)
}
do
if ($ >>> 0 < W >>> 0) {
Z = (T - $ >> 2) * 9 | 0;
X = c[$ >> 2] | 0;
if (X >>> 0 < 10) break;
else Y = 10;
do {
Y = Y * 10 | 0;
Z = Z + 1 | 0
} while (X >>> 0 >= Y >>> 0)
} else Z = 0;
while (0);
X = (V | 0) == 103;
Y = (U | 0) != 0;
V = U - ((V | 0) != 102 ? Z : 0) + ((Y & X) << 31 >> 31) | 0;
if ((V | 0) < (((W - T >> 2) * 9 | 0) + -9 | 0)) {
ca = V + 9216 | 0;
ba = (ca | 0) / 9 | 0;
aa = R + (ba + -1023 << 2) | 0;
ca = ((ca | 0) % 9 | 0) + 1 | 0;
if ((ca | 0) < 9) {
V = 10;
do {
V = V * 10 | 0;
ca = ca + 1 | 0
} while ((ca | 0) != 9)
} else V = 10;
ca = c[aa >> 2] | 0;
da = (ca >>> 0) % (V >>> 0) | 0;
if ((da | 0) == 0 ? (R + (ba + -1022 << 2) | 0) == (W | 0) : 0) V = $;
else L = 163;
do
if ((L | 0) == 163) {
L = 0;
ea = (((ca >>> 0) / (V >>> 0) | 0) & 1 | 0) == 0 ? 9007199254740992.0 : 9007199254740994.0;
fa = (V | 0) / 2 | 0;
do
if (da >>> 0 < fa >>> 0) ga = .5;
else {
if ((da | 0) == (fa | 0) ? (R + (ba + -1022 << 2) | 0) == (W | 0) : 0) {
ga = 1.0;
break
}
ga = 1.5
}
while (0);
do
if (Q) {
if ((a[f >> 0] | 0) != 45) break;
ea = -ea;
ga = -ga
}
while (0);
ba = ca - da | 0;
c[aa >> 2] = ba;
if (!(ea + ga != ea)) {
V = $;
break
}
fa = ba + V | 0;
c[aa >> 2] = fa;
if (fa >>> 0 > 999999999) {
V = $;
Z = aa;
while (1) {
aa = Z + -4 | 0;
c[Z >> 2] = 0;
if (aa >>> 0 < V >>> 0) {
V = V + -4 | 0;
c[V >> 2] = 0
}
fa = (c[aa >> 2] | 0) + 1 | 0;
c[aa >> 2] = fa;
if (fa >>> 0 > 999999999) Z = aa;
else break
}
} else V = $;
Z = (T - V >> 2) * 9 | 0;
$ = c[V >> 2] | 0;
if ($ >>> 0 < 10) break;
else ba = 10;
do {
ba = ba * 10 | 0;
Z = Z + 1 | 0
} while ($ >>> 0 >= ba >>> 0)
}
while (0);
fa = aa + 4 | 0;
W = W >>> 0 > fa >>> 0 ? fa : W
} else V = $;
aa = 0 - Z | 0;
while (1) {
if (W >>> 0 <= V >>> 0) {
$ = 0;
break
}
$ = W + -4 | 0;
if (!(c[$ >> 2] | 0)) W = $;
else {
$ = 1;
break
}
}
do
if (X) {
U = (Y & 1 ^ 1) + U | 0;
if ((U | 0) > (Z | 0) & (Z | 0) > -5) {
S = S + -1 | 0;
U = U + -1 - Z | 0
} else {
S = S + -2 | 0;
U = U + -1 | 0
}
Y = P & 8;
if (Y) break;
do
if ($) {
X = c[W + -4 >> 2] | 0;
if (!X) {
ba = 9;
break
}
if (!((X >>> 0) % 10 | 0)) {
Y = 10;
ba = 0
} else {
ba = 0;
break
}
do {
Y = Y * 10 | 0;
ba = ba + 1 | 0
} while (((X >>> 0) % (Y >>> 0) | 0 | 0) == 0)
} else ba = 9;
while (0);
T = ((W - T >> 2) * 9 | 0) + -9 | 0;
if ((S | 32 | 0) == 102) {
Y = T - ba | 0;
Y = (Y | 0) < 0 ? 0 : Y;
U = (U | 0) < (Y | 0) ? U : Y;
Y = 0;
break
} else {
Y = T + Z - ba | 0;
Y = (Y | 0) < 0 ? 0 : Y;
U = (U | 0) < (Y | 0) ? U : Y;
Y = 0;
break
}
} else Y = P & 8;
while (0);
T = U | Y;
ca = (T | 0) != 0 & 1;
ba = (S | 32 | 0) == 102;
if (ba) {
S = (Z | 0) > 0 ? Z : 0;
X = 0
} else {
X = (Z | 0) < 0 ? aa : Z;
X = xk(X, ((X | 0) < 0) << 31 >> 31, q) | 0;
if ((x - X | 0) < 2)
do {
X = X + -1 | 0;
a[X >> 0] = 48
} while ((x - X | 0) < 2);
a[X + -1 >> 0] = (Z >> 31 & 2) + 43;
X = X + -2 | 0;
a[X >> 0] = S;
S = x - X | 0
}
S = Q + 1 + U + ca + S | 0;
yk(e, 32, N, S, P);
if (!(c[e >> 2] & 32)) Bj(f, Q, e) | 0;
yk(e, 48, N, S, P ^ 65536);
do
if (ba) {
f = V >>> 0 > R >>> 0 ? R : V;
Q = f;
do {
V = xk(c[Q >> 2] | 0, 0, F) | 0;
do
if ((Q | 0) == (f | 0)) {
if ((V | 0) != (F | 0)) break;
a[B >> 0] = 48;
V = B
} else {
if (V >>> 0 <= s >>> 0) break;
do {
V = V + -1 | 0;
a[V >> 0] = 48
} while (V >>> 0 > s >>> 0)
}
while (0);
if (!(c[e >> 2] & 32)) Bj(V, D - V | 0, e) | 0;
Q = Q + 4 | 0
} while (Q >>> 0 <= R >>> 0);
do
if (T) {
if (c[e >> 2] & 32) break;
Bj(1178309, 1, e) | 0
}
while (0);
if ((U | 0) > 0 & Q >>> 0 < W >>> 0)
while (1) {
f = xk(c[Q >> 2] | 0, 0, F) | 0;
if (f >>> 0 > s >>> 0)
do {
f = f + -1 | 0;
a[f >> 0] = 48
} while (f >>> 0 > s >>> 0);
if (!(c[e >> 2] & 32)) Bj(f, (U | 0) > 9 ? 9 : U, e) | 0;
Q = Q + 4 | 0;
f = U + -9 | 0;
if (!((U | 0) > 9 & Q >>> 0 < W >>> 0)) {
U = f;
break
} else U = f
}
yk(e, 48, U + 9 | 0, 9, 0)
} else {
f = $ ? W : V + 4 | 0;
if ((U | 0) > -1) {
Q = (Y | 0) == 0;
R = V;
do {
T = xk(c[R >> 2] | 0, 0, F) | 0;
if ((T | 0) == (F | 0)) {
a[B >> 0] = 48;
T = B
}
do
if ((R | 0) == (V | 0)) {
W = T + 1 | 0;
if (!(c[e >> 2] & 32)) Bj(T, 1, e) | 0;
if (Q & (U | 0) < 1) break;
if (c[e >> 2] & 32) break;
Bj(1178309, 1, e) | 0
} else {
if (T >>> 0 <= s >>> 0) {
W = T;
break
}
do {
T = T + -1 | 0;
a[T >> 0] = 48
} while (T >>> 0 > s >>> 0);
W = T
}
while (0);
T = D - W | 0;
if (!(c[e >> 2] & 32)) Bj(W, (U | 0) > (T | 0) ? T : U, e) | 0;
U = U - T | 0;
R = R + 4 | 0
} while (R >>> 0 < f >>> 0 & (U | 0) > -1)
}
yk(e, 48, U + 18 | 0, 18, 0);
if (c[e >> 2] & 32) break;
Bj(X, x - X | 0, e) | 0
}
while (0);
yk(e, 32, N, S, P ^ 8192);
Q = (S | 0) < (N | 0) ? N : S
} else {
R = (S & 32 | 0) != 0;
S = ea != ea | 0.0 != 0.0;
T = S ? 0 : Q;
Q = T + 3 | 0;
yk(e, 32, N, Q, U);
U = c[e >> 2] | 0;
if (!(U & 32)) {
Bj(f, T, e) | 0;
U = c[e >> 2] | 0
}
if (!(U & 32)) Bj(S ? R ? 1178301 : 1178305 : R ? 1178293 : 1178297, 3, e) | 0;
yk(e, 32, N, Q, P ^ 8192);
Q = (Q | 0) < (N | 0) ? N : Q
}
while (0);
f = O;
continue a
};
default:
{
U = R;S = 0;T = 1178257;Q = I
}
}
while (0);
g: do
if ((L | 0) == 64) {
T = A;
Q = c[T >> 2] | 0;
T = c[T + 4 >> 2] | 0;
L = S & 32;
if (!((Q | 0) == 0 & (T | 0) == 0)) {
f = I;
do {
f = f + -1 | 0;
a[f >> 0] = d[1178241 + (Q & 15) >> 0] | L;
Q = gv(Q | 0, T | 0, 4) | 0;
T = C
} while (!((Q | 0) == 0 & (T | 0) == 0));
fa = A;
if ((P & 8 | 0) == 0 | (c[fa >> 2] | 0) == 0 & (c[fa + 4 >> 2] | 0) == 0) {
Q = 0;
T = 1178257;
L = 77
} else {
Q = 2;
T = 1178257 + (S >> 4) | 0;
L = 77
}
} else {
f = I;
Q = 0;
T = 1178257;
L = 77
}
} else
if ((L | 0) == 76) {
f = xk(f, S, I) | 0;
L = 77
} else if ((L | 0) == 82) {
L = 0;
fa = dk(Q, 0, R) | 0;
da = (fa | 0) == 0;
f = Q;
P = U;
U = da ? R : fa - Q | 0;
S = 0;
T = 1178257;
Q = da ? Q + R | 0 : fa
} else if ((L | 0) == 86) {
L = 0;
f = 0;
S = 0;
Q = c[A >> 2] | 0;
while (1) {
T = c[Q >> 2] | 0;
if (!T) break;
S = qj(G, T) | 0;
if ((S | 0) < 0 | S >>> 0 > (R - f | 0) >>> 0) break;
f = S + f | 0;
if (R >>> 0 > f >>> 0) Q = Q + 4 | 0;
else break
}
if ((S | 0) < 0) {
K = -1;
break a
}
yk(e, 32, N, f, P);
if (!f) {
Q = 0;
L = 98
} else {
L = 0;
Q = c[A >> 2] | 0;
while (1) {
R = c[Q >> 2] | 0;
if (!R) {
Q = f;
L = 98;
break g
}
R = qj(G, R) | 0;
L = R + L | 0;
if ((L | 0) > (f | 0)) {
Q = f;
L = 98;
break g
}
if (!(c[e >> 2] & 32)) Bj(G, R, e) | 0;
if (L >>> 0 >= f >>> 0) {
Q = f;
L = 98;
break
} else Q = Q + 4 | 0
}
}
}
while (0);
if ((L | 0) == 98) {
L = 0;
yk(e, 32, N, Q, P ^ 8192);
f = O;
Q = (N | 0) > (Q | 0) ? N : Q;
continue
}
if ((L | 0) == 77) {
L = 0;
P = (R | 0) > -1 ? P & -65537 : P;
S = A;
S = (c[S >> 2] | 0) != 0 | (c[S + 4 >> 2] | 0) != 0;
if ((R | 0) != 0 | S) {
U = (S & 1 ^ 1) + (p - f) | 0;
U = (R | 0) > (U | 0) ? R : U;
S = Q;
Q = I
} else {
f = I;
U = 0;
S = Q;
Q = I
}
}
R = Q - f | 0;
U = (U | 0) < (R | 0) ? R : U;
V = S + U | 0;
Q = (N | 0) < (V | 0) ? V : N;
yk(e, 32, Q, V, P);
if (!(c[e >> 2] & 32)) Bj(T, S, e) | 0;
yk(e, 48, Q, V, P ^ 65536);
yk(e, 48, U, R, 0);
if (!(c[e >> 2] & 32)) Bj(f, R, e) | 0;
yk(e, 32, Q, V, P ^ 8192);
f = O
}
h: do
if ((L | 0) == 245)
if (!e)
if (M) {
e = 1;
while (1) {
n = c[l + (e << 2) >> 2] | 0;
if (!n) break;
wk(j + (e << 3) | 0, n, g);
e = e + 1 | 0;
if ((e | 0) >= 10) {
K = 1;
break h
}
}
if ((e | 0) < 10)
while (1) {
if (c[l + (e << 2) >> 2] | 0) {
K = -1;
break h
}
e = e + 1 | 0;
if ((e | 0) >= 10) {
K = 1;
break
}
} else K = 1
} else K = 0;
while (0);
i = m;
return K | 0
}
function qk(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return Xj(a, b, c) | 0
}
function rk(a) {
a = a | 0;
if (!(c[a + 68 >> 2] | 0)) Qj(a);
return
}
function sk(a) {
a = a | 0;
if (!(c[a + 68 >> 2] | 0)) Qj(a);
return
}
function tk(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0.0;
e = i;
i = i + 112 | 0;
f = e;
h = f;
g = h + 112 | 0;
do {
c[h >> 2] = 0;
h = h + 4 | 0
} while ((h | 0) < (g | 0));
g = f + 4 | 0;
c[g >> 2] = a;
h = f + 8 | 0;
c[h >> 2] = -1;
c[f + 44 >> 2] = a;
c[f + 76 >> 2] = -1;
Pi(f, 0);
j = +Ni(f, d, 1);
f = (c[g >> 2] | 0) - (c[h >> 2] | 0) + (c[f + 108 >> 2] | 0) | 0;
if (b) c[b >> 2] = (f | 0) != 0 ? a + f | 0 : a;
i = e;
return +j
}
function uk(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,
j = 0,
k = 0;
g = i;
i = i + 112 | 0;
j = g;
c[j >> 2] = 0;
k = j + 4 | 0;
c[k >> 2] = a;
c[j + 44 >> 2] = a;
h = j + 8 | 0;
c[h >> 2] = (a | 0) < 0 ? -1 : a + 2147483647 | 0;
c[j + 76 >> 2] = -1;
Pi(j, 0);
f = Oi(j, d, 1, e, f) | 0;
if (b) c[b >> 2] = a + ((c[k >> 2] | 0) + (c[j + 108 >> 2] | 0) - (c[h >> 2] | 0));
i = g;
return f | 0
}
function vk(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0;
e = a + 20 | 0;
f = c[e >> 2] | 0;
a = (c[a + 16 >> 2] | 0) - f | 0;
a = a >>> 0 > d >>> 0 ? d : a;
ev(f | 0, b | 0, a | 0) | 0;
c[e >> 2] = (c[e >> 2] | 0) + a;
return d | 0
}
function wk(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0.0;
a: do
if (b >>> 0 <= 20)
do switch (b | 0) {
case 9:
{
e = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);b = c[e >> 2] | 0;c[d >> 2] = e + 4;c[a >> 2] = b;
break a
};
case 10:
{
e = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);b = c[e >> 2] | 0;c[d >> 2] = e + 4;e = a;c[e >> 2] = b;c[e + 4 >> 2] = ((b | 0) < 0) << 31 >> 31;
break a
};
case 11:
{
e = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);b = c[e >> 2] | 0;c[d >> 2] = e + 4;e = a;c[e >> 2] = b;c[e + 4 >> 2] = 0;
break a
};
case 12:
{
e = (c[d >> 2] | 0) + (8 - 1) & ~(8 - 1);b = e;f = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;c[d >> 2] = e + 8;e = a;c[e >> 2] = f;c[e + 4 >> 2] = b;
break a
};
case 13:
{
f = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);e = c[f >> 2] | 0;c[d >> 2] = f + 4;e = (e & 65535) << 16 >> 16;f = a;c[f >> 2] = e;c[f + 4 >> 2] = ((e | 0) < 0) << 31 >> 31;
break a
};
case 14:
{
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 & 65535;c[f + 4 >> 2] = 0;
break a
};
case 15:
{
f = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);e = c[f >> 2] | 0;c[d >> 2] = f + 4;e = (e & 255) << 24 >> 24;f = a;c[f >> 2] = e;c[f + 4 >> 2] = ((e | 0) < 0) << 31 >> 31;
break a
};
case 16:
{
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 & 255;c[f + 4 >> 2] = 0;
break a
};
case 17:
{
f = (c[d >> 2] | 0) + (8 - 1) & ~(8 - 1);g = +h[f >> 3];c[d >> 2] = f + 8;h[a >> 3] = g;
break a
};
case 18:
{
f = (c[d >> 2] | 0) + (8 - 1) & ~(8 - 1);g = +h[f >> 3];c[d >> 2] = f + 8;h[a >> 3] = g;
break a
};
default:
break a
}
while (0); while (0);
return
}
function xk(b, c, d) {
b = b | 0;
c = c | 0;
d = d | 0;
var e = 0;
if (c >>> 0 > 0 | (c | 0) == 0 & b >>> 0 > 4294967295) {
e = b;
while (1) {
b = rv(e | 0, c | 0, 10, 0) | 0;
d = d + -1 | 0;
a[d >> 0] = b | 48;
b = qv(e | 0, c | 0, 10, 0) | 0;
if (c >>> 0 > 9 | (c | 0) == 9 & e >>> 0 > 4294967295) {
e = b;
c = C
} else break
}
}
if (b)
while (1) {
d = d + -1 | 0;
a[d >> 0] = (b >>> 0) % 10 | 0 | 48;
if (b >>> 0 < 10) break;
else b = (b >>> 0) / 10 | 0
}
return d | 0
}
function yk(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,
j = 0;
h = i;
i = i + 256 | 0;
g = h;
do
if ((d | 0) > (e | 0) & (f & 73728 | 0) == 0) {
f = d - e | 0;
dv(g | 0, b | 0, (f >>> 0 > 256 ? 256 : f) | 0) | 0;
j = c[a >> 2] | 0;
b = (j & 32 | 0) == 0;
if (f >>> 0 > 255) {
d = d - e | 0;
do {
if (b) {
Bj(g, 256, a) | 0;
j = c[a >> 2] | 0
}
f = f + -256 | 0;
b = (j & 32 | 0) == 0
} while (f >>> 0 > 255);
if (b) f = d & 255;
else break
} else if (!b) break;
Bj(g, f, a) | 0
}
while (0);
i = h;
return
}
function zk(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;
do
if (a >>> 0 < 245) {
a = a >>> 0 < 11 ? 16 : a + 11 & -8;
y = a >>> 3;
q = c[274583] | 0;
z = q >>> y;
if (z & 3) {
h = (z & 1 ^ 1) + y | 0;
b = h << 1;
e = 1098372 + (b << 2) | 0;
b = 1098372 + (b + 2 << 2) | 0;
g = c[b >> 2] | 0;
f = g + 8 | 0;
d = c[f >> 2] | 0;
do
if ((e | 0) != (d | 0)) {
if (d >>> 0 < (c[274587] | 0) >>> 0) Ca();
i = d + 12 | 0;
if ((c[i >> 2] | 0) == (g | 0)) {
c[i >> 2] = e;
c[b >> 2] = d;
break
} else Ca()
} else c[274583] = q & ~(1 << h);
while (0);
I = h << 3;
c[g + 4 >> 2] = I | 3;
I = g + (I | 4) | 0;
c[I >> 2] = c[I >> 2] | 1;
I = f;
return I | 0
}
x = c[274585] | 0;
if (a >>> 0 > x >>> 0) {
if (z) {
h = 2 << y;
h = z << y & (h | 0 - h);
h = (h & 0 - h) + -1 | 0;
b = h >>> 12 & 16;
h = h >>> b;
e = h >>> 5 & 8;
h = h >>> e;
d = h >>> 2 & 4;
h = h >>> d;
f = h >>> 1 & 2;
h = h >>> f;
g = h >>> 1 & 1;
g = (e | b | d | f | g) + (h >>> g) | 0;
h = g << 1;
f = 1098372 + (h << 2) | 0;
h = 1098372 + (h + 2 << 2) | 0;
d = c[h >> 2] | 0;
b = d + 8 | 0;
e = c[b >> 2] | 0;
do
if ((f | 0) != (e | 0)) {
if (e >>> 0 < (c[274587] | 0) >>> 0) Ca();
i = e + 12 | 0;
if ((c[i >> 2] | 0) == (d | 0)) {
c[i >> 2] = f;
c[h >> 2] = e;
G = c[274585] | 0;
break
} else Ca()
} else {
c[274583] = q & ~(1 << g);
G = x
}
while (0);
I = g << 3;
f = I - a | 0;
c[d + 4 >> 2] = a | 3;
e = d + a | 0;
c[d + (a | 4) >> 2] = f | 1;
c[d + I >> 2] = f;
if (G) {
d = c[274588] | 0;
i = G >>> 3;
h = i << 1;
g = 1098372 + (h << 2) | 0;
j = c[274583] | 0;
i = 1 << i;
if (j & i) {
h = 1098372 + (h + 2 << 2) | 0;
i = c[h >> 2] | 0;
if (i >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
F = h;
E = i
}
} else {
c[274583] = j | i;
F = 1098372 + (h + 2 << 2) | 0;
E = g
}
c[F >> 2] = d;
c[E + 12 >> 2] = d;
c[d + 8 >> 2] = E;
c[d + 12 >> 2] = g
}
c[274585] = f;
c[274588] = e;
I = b;
return I | 0
}
q = c[274584] | 0;
if (q) {
b = (q & 0 - q) + -1 | 0;
H = b >>> 12 & 16;
b = b >>> H;
G = b >>> 5 & 8;
b = b >>> G;
I = b >>> 2 & 4;
b = b >>> I;
e = b >>> 1 & 2;
b = b >>> e;
d = b >>> 1 & 1;
d = c[1098636 + ((G | H | I | e | d) + (b >>> d) << 2) >> 2] | 0;
b = (c[d + 4 >> 2] & -8) - a | 0;
e = d;
while (1) {
f = c[e + 16 >> 2] | 0;
if (!f) {
f = c[e + 20 >> 2] | 0;
if (!f) break
}
e = (c[f + 4 >> 2] & -8) - a | 0;
I = e >>> 0 < b >>> 0;
b = I ? e : b;
e = f;
d = I ? f : d
}
g = c[274587] | 0;
if (d >>> 0 < g >>> 0) Ca();
e = d + a | 0;
if (d >>> 0 >= e >>> 0) Ca();
f = c[d + 24 >> 2] | 0;
h = c[d + 12 >> 2] | 0;
do
if ((h | 0) == (d | 0)) {
i = d + 20 | 0;
h = c[i >> 2] | 0;
if (!h) {
i = d + 16 | 0;
h = c[i >> 2] | 0;
if (!h) {
D = 0;
break
}
}
while (1) {
k = h + 20 | 0;
j = c[k >> 2] | 0;
if (j) {
h = j;
i = k;
continue
}
j = h + 16 | 0;
k = c[j >> 2] | 0;
if (!k) break;
else {
h = k;
i = j
}
}
if (i >>> 0 < g >>> 0) Ca();
else {
c[i >> 2] = 0;
D = h;
break
}
} else {
i = c[d + 8 >> 2] | 0;
if (i >>> 0 < g >>> 0) Ca();
g = i + 12 | 0;
if ((c[g >> 2] | 0) != (d | 0)) Ca();
j = h + 8 | 0;
if ((c[j >> 2] | 0) == (d | 0)) {
c[g >> 2] = h;
c[j >> 2] = i;
D = h;
break
} else Ca()
}
while (0);
do
if (f) {
g = c[d + 28 >> 2] | 0;
h = 1098636 + (g << 2) | 0;
if ((d | 0) == (c[h >> 2] | 0)) {
c[h >> 2] = D;
if (!D) {
c[274584] = c[274584] & ~(1 << g);
break
}
} else {
if (f >>> 0 < (c[274587] | 0) >>> 0) Ca();
g = f + 16 | 0;
if ((c[g >> 2] | 0) == (d | 0)) c[g >> 2] = D;
else c[f + 20 >> 2] = D;
if (!D) break
}
g = c[274587] | 0;
if (D >>> 0 < g >>> 0) Ca();
c[D + 24 >> 2] = f;
f = c[d + 16 >> 2] | 0;
do
if (f)
if (f >>> 0 < g >>> 0) Ca();
else {
c[D + 16 >> 2] = f;
c[f + 24 >> 2] = D;
break
}
while (0);
f = c[d + 20 >> 2] | 0;
if (f)
if (f >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[D + 20 >> 2] = f;
c[f + 24 >> 2] = D;
break
}
}
while (0);
if (b >>> 0 < 16) {
I = b + a | 0;
c[d + 4 >> 2] = I | 3;
I = d + (I + 4) | 0;
c[I >> 2] = c[I >> 2] | 1
} else {
c[d + 4 >> 2] = a | 3;
c[d + (a | 4) >> 2] = b | 1;
c[d + (b + a) >> 2] = b;
g = c[274585] | 0;
if (g) {
f = c[274588] | 0;
i = g >>> 3;
h = i << 1;
g = 1098372 + (h << 2) | 0;
j = c[274583] | 0;
i = 1 << i;
if (j & i) {
h = 1098372 + (h + 2 << 2) | 0;
i = c[h >> 2] | 0;
if (i >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
C = h;
B = i
}
} else {
c[274583] = j | i;
C = 1098372 + (h + 2 << 2) | 0;
B = g
}
c[C >> 2] = f;
c[B + 12 >> 2] = f;
c[f + 8 >> 2] = B;
c[f + 12 >> 2] = g
}
c[274585] = b;
c[274588] = e
}
I = d + 8 | 0;
return I | 0
}
}
} else if (a >>> 0 <= 4294967231) {
B = a + 11 | 0;
a = B & -8;
D = c[274584] | 0;
if (D) {
C = 0 - a | 0;
v = B >>> 8;
if (v)
if (a >>> 0 > 16777215) E = 31;
else {
H = (v + 1048320 | 0) >>> 16 & 8;
I = v << H;
G = (I + 520192 | 0) >>> 16 & 4;
I = I << G;
E = (I + 245760 | 0) >>> 16 & 2;
E = 14 - (G | H | E) + (I << E >>> 15) | 0;
E = a >>> (E + 7 | 0) & 1 | E << 1
}
else E = 0;
v = c[1098636 + (E << 2) >> 2] | 0;
a: do
if (!v) {
G = 0;
B = 0;
v = 86
} else {
G = 0;
F = a << ((E | 0) == 31 ? 0 : 25 - (E >>> 1) | 0);
B = 0;
while (1) {
H = c[v + 4 >> 2] & -8;
I = H - a | 0;
if (I >>> 0 < C >>> 0)
if ((H | 0) == (a | 0)) {
C = I;
G = v;
B = v;
v = 90;
break a
} else {
C = I;
B = v
}
I = c[v + 20 >> 2] | 0;
v = c[v + 16 + (F >>> 31 << 2) >> 2] | 0;
G = (I | 0) == 0 | (I | 0) == (v | 0) ? G : I;
if (!v) {
v = 86;
break
} else F = F << 1
}
}
while (0);
if ((v | 0) == 86) {
if ((G | 0) == 0 & (B | 0) == 0) {
B = 2 << E;
B = D & (B | 0 - B);
if (!B) break;
B = (B & 0 - B) + -1 | 0;
F = B >>> 12 & 16;
B = B >>> F;
E = B >>> 5 & 8;
B = B >>> E;
H = B >>> 2 & 4;
B = B >>> H;
I = B >>> 1 & 2;
B = B >>> I;
G = B >>> 1 & 1;
G = c[1098636 + ((E | F | H | I | G) + (B >>> G) << 2) >> 2] | 0;
B = 0
}
if (G) v = 90
}
if ((v | 0) == 90)
while (1) {
v = 0;
I = (c[G + 4 >> 2] & -8) - a | 0;
D = I >>> 0 < C >>> 0;
C = D ? I : C;
B = D ? G : B;
D = c[G + 16 >> 2] | 0;
if (D) {
G = D;
v = 90;
continue
}
G = c[G + 20 >> 2] | 0;
if (!G) break;
else v = 90
}
if ((B | 0) != 0 ? C >>> 0 < ((c[274585] | 0) - a | 0) >>> 0 : 0) {
e = c[274587] | 0;
if (B >>> 0 < e >>> 0) Ca();
b = B + a | 0;
if (B >>> 0 >= b >>> 0) Ca();
d = c[B + 24 >> 2] | 0;
g = c[B + 12 >> 2] | 0;
do
if ((g | 0) == (B | 0)) {
g = B + 20 | 0;
f = c[g >> 2] | 0;
if (!f) {
g = B + 16 | 0;
f = c[g >> 2] | 0;
if (!f) {
z = 0;
break
}
}
while (1) {
h = f + 20 | 0;
i = c[h >> 2] | 0;
if (i) {
f = i;
g = h;
continue
}
h = f + 16 | 0;
i = c[h >> 2] | 0;
if (!i) break;
else {
f = i;
g = h
}
}
if (g >>> 0 < e >>> 0) Ca();
else {
c[g >> 2] = 0;
z = f;
break
}
} else {
f = c[B + 8 >> 2] | 0;
if (f >>> 0 < e >>> 0) Ca();
e = f + 12 | 0;
if ((c[e >> 2] | 0) != (B | 0)) Ca();
h = g + 8 | 0;
if ((c[h >> 2] | 0) == (B | 0)) {
c[e >> 2] = g;
c[h >> 2] = f;
z = g;
break
} else Ca()
}
while (0);
do
if (d) {
f = c[B + 28 >> 2] | 0;
e = 1098636 + (f << 2) | 0;
if ((B | 0) == (c[e >> 2] | 0)) {
c[e >> 2] = z;
if (!z) {
c[274584] = c[274584] & ~(1 << f);
break
}
} else {
if (d >>> 0 < (c[274587] | 0) >>> 0) Ca();
e = d + 16 | 0;
if ((c[e >> 2] | 0) == (B | 0)) c[e >> 2] = z;
else c[d + 20 >> 2] = z;
if (!z) break
}
e = c[274587] | 0;
if (z >>> 0 < e >>> 0) Ca();
c[z + 24 >> 2] = d;
d = c[B + 16 >> 2] | 0;
do
if (d)
if (d >>> 0 < e >>> 0) Ca();
else {
c[z + 16 >> 2] = d;
c[d + 24 >> 2] = z;
break
}
while (0);
d = c[B + 20 >> 2] | 0;
if (d)
if (d >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[z + 20 >> 2] = d;
c[d + 24 >> 2] = z;
break
}
}
while (0);
b: do
if (C >>> 0 >= 16) {
c[B + 4 >> 2] = a | 3;
c[B + (a | 4) >> 2] = C | 1;
c[B + (C + a) >> 2] = C;
e = C >>> 3;
if (C >>> 0 < 256) {
g = e << 1;
d = 1098372 + (g << 2) | 0;
f = c[274583] | 0;
e = 1 << e;
if (f & e) {
e = 1098372 + (g + 2 << 2) | 0;
f = c[e >> 2] | 0;
if (f >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
y = e;
x = f
}
} else {
c[274583] = f | e;
y = 1098372 + (g + 2 << 2) | 0;
x = d
}
c[y >> 2] = b;
c[x + 12 >> 2] = b;
c[B + (a + 8) >> 2] = x;
c[B + (a + 12) >> 2] = d;
break
}
d = C >>> 8;
if (d)
if (C >>> 0 > 16777215) d = 31;
else {
H = (d + 1048320 | 0) >>> 16 & 8;
I = d << H;
G = (I + 520192 | 0) >>> 16 & 4;
I = I << G;
d = (I + 245760 | 0) >>> 16 & 2;
d = 14 - (G | H | d) + (I << d >>> 15) | 0;
d = C >>> (d + 7 | 0) & 1 | d << 1
}
else d = 0;
g = 1098636 + (d << 2) | 0;
c[B + (a + 28) >> 2] = d;
c[B + (a + 20) >> 2] = 0;
c[B + (a + 16) >> 2] = 0;
e = c[274584] | 0;
f = 1 << d;
if (!(e & f)) {
c[274584] = e | f;
c[g >> 2] = b;
c[B + (a + 24) >> 2] = g;
c[B + (a + 12) >> 2] = b;
c[B + (a + 8) >> 2] = b;
break
}
f = c[g >> 2] | 0;
c: do
if ((c[f + 4 >> 2] & -8 | 0) != (C | 0)) {
e = C << ((d | 0) == 31 ? 0 : 25 - (d >>> 1) | 0);
d = f;
while (1) {
f = d + 16 + (e >>> 31 << 2) | 0;
g = c[f >> 2] | 0;
if (!g) break;
if ((c[g + 4 >> 2] & -8 | 0) == (C | 0)) {
q = g;
break c
} else {
e = e << 1;
d = g
}
}
if (f >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[f >> 2] = b;
c[B + (a + 24) >> 2] = d;
c[B + (a + 12) >> 2] = b;
c[B + (a + 8) >> 2] = b;
break b
}
} else q = f;
while (0);
e = q + 8 | 0;
d = c[e >> 2] | 0;
I = c[274587] | 0;
if (d >>> 0 >= I >>> 0 & q >>> 0 >= I >>> 0) {
c[d + 12 >> 2] = b;
c[e >> 2] = b;
c[B + (a + 8) >> 2] = d;
c[B + (a + 12) >> 2] = q;
c[B + (a + 24) >> 2] = 0;
break
} else Ca()
} else {
I = C + a | 0;
c[B + 4 >> 2] = I | 3;
I = B + (I + 4) | 0;
c[I >> 2] = c[I >> 2] | 1
}
while (0);
I = B + 8 | 0;
return I | 0
}
}
} else a = -1;
while (0);
q = c[274585] | 0;
if (q >>> 0 >= a >>> 0) {
d = q - a | 0;
b = c[274588] | 0;
if (d >>> 0 > 15) {
c[274588] = b + a;
c[274585] = d;
c[b + (a + 4) >> 2] = d | 1;
c[b + q >> 2] = d;
c[b + 4 >> 2] = a | 3
} else {
c[274585] = 0;
c[274588] = 0;
c[b + 4 >> 2] = q | 3;
I = b + (q + 4) | 0;
c[I >> 2] = c[I >> 2] | 1
}
I = b + 8 | 0;
return I | 0
}
q = c[274586] | 0;
if (q >>> 0 > a >>> 0) {
H = q - a | 0;
c[274586] = H;
I = c[274589] | 0;
c[274589] = I + a;
c[I + (a + 4) >> 2] = H | 1;
c[I + 4 >> 2] = a | 3;
I = I + 8 | 0;
return I | 0
}
do
if (!(c[274701] | 0)) {
q = lb(30) | 0;
if (!(q + -1 & q)) {
c[274703] = q;
c[274702] = q;
c[274704] = -1;
c[274705] = -1;
c[274706] = 0;
c[274694] = 0;
c[274701] = (qb(0) | 0) & -16 ^ 1431655768;
break
} else Ca()
}
while (0);
z = a + 48 | 0;
q = c[274703] | 0;
y = a + 47 | 0;
B = q + y | 0;
q = 0 - q | 0;
x = B & q;
if (x >>> 0 <= a >>> 0) {
I = 0;
return I | 0
}
C = c[274693] | 0;
if ((C | 0) != 0 ? (H = c[274691] | 0, I = H + x | 0, I >>> 0 <= H >>> 0 | I >>> 0 > C >>> 0) : 0) {
I = 0;
return I | 0
}
d: do
if (!(c[274694] & 4)) {
D = c[274589] | 0;
e: do
if (D) {
C = 1098780;
while (1) {
E = c[C >> 2] | 0;
if (E >>> 0 <= D >>> 0 ? (A = C + 4 | 0, (E + (c[A >> 2] | 0) | 0) >>> 0 > D >>> 0) : 0) break;
C = c[C + 8 >> 2] | 0;
if (!C) {
v = 174;
break e
}
}
B = B - (c[274586] | 0) & q;
if (B >>> 0 < 2147483647) {
q = Oa(B | 0) | 0;
I = (q | 0) == ((c[C >> 2] | 0) + (c[A >> 2] | 0) | 0);
A = I ? B : 0;
if (I) {
if ((q | 0) != (-1 | 0)) {
r = A;
v = 194;
break d
}
} else v = 184
} else A = 0
} else v = 174;
while (0);
do
if ((v | 0) == 174) {
A = Oa(0) | 0;
if ((A | 0) != (-1 | 0)) {
q = A;
C = c[274702] | 0;
B = C + -1 | 0;
if (!(B & q)) B = x;
else B = x - q + (B + q & 0 - C) | 0;
q = c[274691] | 0;
C = q + B | 0;
if (B >>> 0 > a >>> 0 & B >>> 0 < 2147483647) {
I = c[274693] | 0;
if ((I | 0) != 0 ? C >>> 0 <= q >>> 0 | C >>> 0 > I >>> 0 : 0) {
A = 0;
break
}
q = Oa(B | 0) | 0;
I = (q | 0) == (A | 0);
v = I ? B : 0;
if (I) {
q = A;
r = v;
v = 194;
break d
} else {
A = v;
v = 184
}
} else A = 0
} else A = 0
}
while (0);
f: do
if ((v | 0) == 184) {
v = 0 - B | 0;
do
if (z >>> 0 > B >>> 0 & (B >>> 0 < 2147483647 & (q | 0) != (-1 | 0)) ? (w = c[274703] | 0, w = y - B + w & 0 - w, w >>> 0 < 2147483647) : 0)
if ((Oa(w | 0) | 0) == (-1 | 0)) {
Oa(v | 0) | 0;
break f
} else {
B = w + B | 0;
break
}
while (0);
if ((q | 0) != (-1 | 0)) {
r = B;
v = 194;
break d
}
}
while (0);
c[274694] = c[274694] | 4;
v = 191
} else {
A = 0;
v = 191
}
while (0);
if ((((v | 0) == 191 ? x >>> 0 < 2147483647 : 0) ? (u = Oa(x | 0) | 0, t = Oa(0) | 0, u >>> 0 < t >>> 0 & ((u | 0) != (-1 | 0) & (t | 0) != (-1 | 0))) : 0) ? (r = t - u | 0, s = r >>> 0 > (a + 40 | 0) >>> 0, s) : 0) {
q = u;
r = s ? r : A;
v = 194
}
if ((v | 0) == 194) {
s = (c[274691] | 0) + r | 0;
c[274691] = s;
if (s >>> 0 > (c[274692] | 0) >>> 0) c[274692] = s;
s = c[274589] | 0;
g: do
if (s) {
x = 1098780;
do {
t = c[x >> 2] | 0;
u = x + 4 | 0;
w = c[u >> 2] | 0;
if ((q | 0) == (t + w | 0)) {
m = t;
n = u;
p = w;
o = x;
v = 204;
break
}
x = c[x + 8 >> 2] | 0
} while ((x | 0) != 0);
if (((v | 0) == 204 ? (c[o + 12 >> 2] & 8 | 0) == 0 : 0) ? s >>> 0 < q >>> 0 & s >>> 0 >= m >>> 0 : 0) {
c[n >> 2] = p + r;
I = (c[274586] | 0) + r | 0;
H = s + 8 | 0;
H = (H & 7 | 0) == 0 ? 0 : 0 - H & 7;
G = I - H | 0;
c[274589] = s + H;
c[274586] = G;
c[s + (H + 4) >> 2] = G | 1;
c[s + (I + 4) >> 2] = 40;
c[274590] = c[274705];
break
}
m = c[274587] | 0;
if (q >>> 0 < m >>> 0) {
c[274587] = q;
m = q
}
o = q + r | 0;
n = 1098780;
while (1) {
if ((c[n >> 2] | 0) == (o | 0)) {
o = n;
v = 212;
break
}
n = c[n + 8 >> 2] | 0;
if (!n) {
b = 1098780;
break
}
}
if ((v | 0) == 212)
if (!(c[n + 12 >> 2] & 8)) {
c[o >> 2] = q;
i = n + 4 | 0;
c[i >> 2] = (c[i >> 2] | 0) + r;
i = q + 8 | 0;
i = (i & 7 | 0) == 0 ? 0 : 0 - i & 7;
l = q + (r + 8) | 0;
l = (l & 7 | 0) == 0 ? 0 : 0 - l & 7;
n = q + (l + r) | 0;
g = i + a | 0;
h = q + g | 0;
k = n - (q + i) - a | 0;
c[q + (i + 4) >> 2] = a | 3;
h: do
if ((n | 0) != (s | 0)) {
if ((n | 0) == (c[274588] | 0)) {
I = (c[274585] | 0) + k | 0;
c[274585] = I;
c[274588] = h;
c[q + (g + 4) >> 2] = I | 1;
c[q + (I + g) >> 2] = I;
break
}
o = r + 4 | 0;
s = c[q + (o + l) >> 2] | 0;
if ((s & 3 | 0) == 1) {
a = s & -8;
p = s >>> 3;
i: do
if (s >>> 0 >= 256) {
j = c[q + ((l | 24) + r) >> 2] | 0;
s = c[q + (r + 12 + l) >> 2] | 0;
do
if ((s | 0) == (n | 0)) {
t = l | 16;
s = q + (o + t) | 0;
p = c[s >> 2] | 0;
if (!p) {
s = q + (t + r) | 0;
p = c[s >> 2] | 0;
if (!p) {
f = 0;
break
}
}
while (1) {
t = p + 20 | 0;
u = c[t >> 2] | 0;
if (u) {
p = u;
s = t;
continue
}
t = p + 16 | 0;
u = c[t >> 2] | 0;
if (!u) break;
else {
p = u;
s = t
}
}
if (s >>> 0 < m >>> 0) Ca();
else {
c[s >> 2] = 0;
f = p;
break
}
} else {
p = c[q + ((l | 8) + r) >> 2] | 0;
if (p >>> 0 < m >>> 0) Ca();
m = p + 12 | 0;
if ((c[m >> 2] | 0) != (n | 0)) Ca();
t = s + 8 | 0;
if ((c[t >> 2] | 0) == (n | 0)) {
c[m >> 2] = s;
c[t >> 2] = p;
f = s;
break
} else Ca()
}
while (0);
if (!j) break;
p = c[q + (r + 28 + l) >> 2] | 0;
m = 1098636 + (p << 2) | 0;
do
if ((n | 0) != (c[m >> 2] | 0)) {
if (j >>> 0 < (c[274587] | 0) >>> 0) Ca();
m = j + 16 | 0;
if ((c[m >> 2] | 0) == (n | 0)) c[m >> 2] = f;
else c[j + 20 >> 2] = f;
if (!f) break i
} else {
c[m >> 2] = f;
if (f) break;
c[274584] = c[274584] & ~(1 << p);
break i
}
while (0);
m = c[274587] | 0;
if (f >>> 0 < m >>> 0) Ca();
c[f + 24 >> 2] = j;
n = l | 16;
j = c[q + (n + r) >> 2] | 0;
do
if (j)
if (j >>> 0 < m >>> 0) Ca();
else {
c[f + 16 >> 2] = j;
c[j + 24 >> 2] = f;
break
}
while (0);
j = c[q + (o + n) >> 2] | 0;
if (!j) break;
if (j >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[f + 20 >> 2] = j;
c[j + 24 >> 2] = f;
break
}
} else {
o = c[q + ((l | 8) + r) >> 2] | 0;
f = c[q + (r + 12 + l) >> 2] | 0;
s = 1098372 + (p << 1 << 2) | 0;
do
if ((o | 0) != (s | 0)) {
if (o >>> 0 < m >>> 0) Ca();
if ((c[o + 12 >> 2] | 0) == (n | 0)) break;
Ca()
}
while (0);
if ((f | 0) == (o | 0)) {
c[274583] = c[274583] & ~(1 << p);
break
}
do
if ((f | 0) == (s | 0)) j = f + 8 | 0;
else {
if (f >>> 0 < m >>> 0) Ca();
m = f + 8 | 0;
if ((c[m >> 2] | 0) == (n | 0)) {
j = m;
break
}
Ca()
}
while (0);
c[o + 12 >> 2] = f;
c[j >> 2] = o
}
while (0);
n = q + ((a | l) + r) | 0;
k = a + k | 0
}
f = n + 4 | 0;
c[f >> 2] = c[f >> 2] & -2;
c[q + (g + 4) >> 2] = k | 1;
c[q + (k + g) >> 2] = k;
f = k >>> 3;
if (k >>> 0 < 256) {
j = f << 1;
b = 1098372 + (j << 2) | 0;
k = c[274583] | 0;
f = 1 << f;
do
if (!(k & f)) {
c[274583] = k | f;
e = 1098372 + (j + 2 << 2) | 0;
d = b
} else {
j = 1098372 + (j + 2 << 2) | 0;
f = c[j >> 2] | 0;
if (f >>> 0 >= (c[274587] | 0) >>> 0) {
e = j;
d = f;
break
}
Ca()
}
while (0);
c[e >> 2] = h;
c[d + 12 >> 2] = h;
c[q + (g + 8) >> 2] = d;
c[q + (g + 12) >> 2] = b;
break
}
d = k >>> 8;
do
if (!d) d = 0;
else {
if (k >>> 0 > 16777215) {
d = 31;
break
}
H = (d + 1048320 | 0) >>> 16 & 8;
I = d << H;
G = (I + 520192 | 0) >>> 16 & 4;
I = I << G;
d = (I + 245760 | 0) >>> 16 & 2;
d = 14 - (G | H | d) + (I << d >>> 15) | 0;
d = k >>> (d + 7 | 0) & 1 | d << 1
}
while (0);
f = 1098636 + (d << 2) | 0;
c[q + (g + 28) >> 2] = d;
c[q + (g + 20) >> 2] = 0;
c[q + (g + 16) >> 2] = 0;
j = c[274584] | 0;
e = 1 << d;
if (!(j & e)) {
c[274584] = j | e;
c[f >> 2] = h;
c[q + (g + 24) >> 2] = f;
c[q + (g + 12) >> 2] = h;
c[q + (g + 8) >> 2] = h;
break
}
e = c[f >> 2] | 0;
j: do
if ((c[e + 4 >> 2] & -8 | 0) != (k | 0)) {
d = k << ((d | 0) == 31 ? 0 : 25 - (d >>> 1) | 0);
while (1) {
j = e + 16 + (d >>> 31 << 2) | 0;
f = c[j >> 2] | 0;
if (!f) break;
if ((c[f + 4 >> 2] & -8 | 0) == (k | 0)) {
b = f;
break j
} else {
d = d << 1;
e = f
}
}
if (j >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[j >> 2] = h;
c[q + (g + 24) >> 2] = e;
c[q + (g + 12) >> 2] = h;
c[q + (g + 8) >> 2] = h;
break h
}
} else b = e;
while (0);
e = b + 8 | 0;
d = c[e >> 2] | 0;
I = c[274587] | 0;
if (d >>> 0 >= I >>> 0 & b >>> 0 >= I >>> 0) {
c[d + 12 >> 2] = h;
c[e >> 2] = h;
c[q + (g + 8) >> 2] = d;
c[q + (g + 12) >> 2] = b;
c[q + (g + 24) >> 2] = 0;
break
} else Ca()
} else {
I = (c[274586] | 0) + k | 0;
c[274586] = I;
c[274589] = h;
c[q + (g + 4) >> 2] = I | 1
}
while (0);
I = q + (i | 8) | 0;
return I | 0
} else b = 1098780;
while (1) {
d = c[b >> 2] | 0;
if (d >>> 0 <= s >>> 0 ? (l = c[b + 4 >> 2] | 0, k = d + l | 0, k >>> 0 > s >>> 0) : 0) {
b = d;
break
}
b = c[b + 8 >> 2] | 0
}
f = b + (l + -39) | 0;
f = b + (l + -47 + ((f & 7 | 0) == 0 ? 0 : 0 - f & 7)) | 0;
d = s + 16 | 0;
f = f >>> 0 < d >>> 0 ? s : f;
b = f + 8 | 0;
e = q + 8 | 0;
e = (e & 7 | 0) == 0 ? 0 : 0 - e & 7;
I = r + -40 - e | 0;
c[274589] = q + e;
c[274586] = I;
c[q + (e + 4) >> 2] = I | 1;
c[q + (r + -36) >> 2] = 40;
c[274590] = c[274705];
e = f + 4 | 0;
c[e >> 2] = 27;
c[b >> 2] = c[274695];
c[b + 4 >> 2] = c[274696];
c[b + 8 >> 2] = c[274697];
c[b + 12 >> 2] = c[274698];
c[274695] = q;
c[274696] = r;
c[274698] = 0;
c[274697] = b;
b = f + 28 | 0;
c[b >> 2] = 7;
if ((f + 32 | 0) >>> 0 < k >>> 0)
do {
I = b;
b = b + 4 | 0;
c[b >> 2] = 7
} while ((I + 8 | 0) >>> 0 < k >>> 0);
if ((f | 0) != (s | 0)) {
b = f - s | 0;
c[e >> 2] = c[e >> 2] & -2;
c[s + 4 >> 2] = b | 1;
c[f >> 2] = b;
e = b >>> 3;
if (b >>> 0 < 256) {
d = e << 1;
b = 1098372 + (d << 2) | 0;
f = c[274583] | 0;
e = 1 << e;
if (f & e) {
e = 1098372 + (d + 2 << 2) | 0;
d = c[e >> 2] | 0;
if (d >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
h = e;
i = d
}
} else {
c[274583] = f | e;
h = 1098372 + (d + 2 << 2) | 0;
i = b
}
c[h >> 2] = s;
c[i + 12 >> 2] = s;
c[s + 8 >> 2] = i;
c[s + 12 >> 2] = b;
break
}
e = b >>> 8;
if (e)
if (b >>> 0 > 16777215) e = 31;
else {
H = (e + 1048320 | 0) >>> 16 & 8;
I = e << H;
G = (I + 520192 | 0) >>> 16 & 4;
I = I << G;
e = (I + 245760 | 0) >>> 16 & 2;
e = 14 - (G | H | e) + (I << e >>> 15) | 0;
e = b >>> (e + 7 | 0) & 1 | e << 1
}
else e = 0;
f = 1098636 + (e << 2) | 0;
c[s + 28 >> 2] = e;
c[s + 20 >> 2] = 0;
c[d >> 2] = 0;
h = c[274584] | 0;
d = 1 << e;
if (!(h & d)) {
c[274584] = h | d;
c[f >> 2] = s;
c[s + 24 >> 2] = f;
c[s + 12 >> 2] = s;
c[s + 8 >> 2] = s;
break
}
f = c[f >> 2] | 0;
k: do
if ((c[f + 4 >> 2] & -8 | 0) != (b | 0)) {
d = b << ((e | 0) == 31 ? 0 : 25 - (e >>> 1) | 0);
e = f;
while (1) {
f = e + 16 + (d >>> 31 << 2) | 0;
h = c[f >> 2] | 0;
if (!h) break;
if ((c[h + 4 >> 2] & -8 | 0) == (b | 0)) {
g = h;
break k
} else {
d = d << 1;
e = h
}
}
if (f >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[f >> 2] = s;
c[s + 24 >> 2] = e;
c[s + 12 >> 2] = s;
c[s + 8 >> 2] = s;
break g
}
} else g = f;
while (0);
d = g + 8 | 0;
b = c[d >> 2] | 0;
I = c[274587] | 0;
if (b >>> 0 >= I >>> 0 & g >>> 0 >= I >>> 0) {
c[b + 12 >> 2] = s;
c[d >> 2] = s;
c[s + 8 >> 2] = b;
c[s + 12 >> 2] = g;
c[s + 24 >> 2] = 0;
break
} else Ca()
}
} else {
I = c[274587] | 0;
if ((I | 0) == 0 | q >>> 0 < I >>> 0) c[274587] = q;
c[274695] = q;
c[274696] = r;
c[274698] = 0;
c[274592] = c[274701];
c[274591] = -1;
b = 0;
do {
I = b << 1;
H = 1098372 + (I << 2) | 0;
c[1098372 + (I + 3 << 2) >> 2] = H;
c[1098372 + (I + 2 << 2) >> 2] = H;
b = b + 1 | 0
} while ((b | 0) != 32);
I = q + 8 | 0;
I = (I & 7 | 0) == 0 ? 0 : 0 - I & 7;
H = r + -40 - I | 0;
c[274589] = q + I;
c[274586] = H;
c[q + (I + 4) >> 2] = H | 1;
c[q + (r + -36) >> 2] = 40;
c[274590] = c[274705]
}
while (0);
b = c[274586] | 0;
if (b >>> 0 > a >>> 0) {
H = b - a | 0;
c[274586] = H;
I = c[274589] | 0;
c[274589] = I + a;
c[I + (a + 4) >> 2] = H | 1;
c[I + 4 >> 2] = a | 3;
I = I + 8 | 0;
return I | 0
}
}
c[(Mi() | 0) >> 2] = 12;
I = 0;
return I | 0
}
function Ak(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;
if (!a) return;
o = a + -8 | 0;
p = c[274587] | 0;
if (o >>> 0 < p >>> 0) Ca();
l = c[a + -4 >> 2] | 0;
k = l & 3;
if ((k | 0) == 1) Ca();
i = l & -8;
g = a + (i + -8) | 0;
do
if (!(l & 1)) {
s = c[o >> 2] | 0;
if (!k) return;
o = -8 - s | 0;
k = a + o | 0;
l = s + i | 0;
if (k >>> 0 < p >>> 0) Ca();
if ((k | 0) == (c[274588] | 0)) {
b = a + (i + -4) | 0;
m = c[b >> 2] | 0;
if ((m & 3 | 0) != 3) {
b = k;
m = l;
break
}
c[274585] = l;
c[b >> 2] = m & -2;
c[a + (o + 4) >> 2] = l | 1;
c[g >> 2] = l;
return
}
r = s >>> 3;
if (s >>> 0 < 256) {
b = c[a + (o + 8) >> 2] | 0;
m = c[a + (o + 12) >> 2] | 0;
n = 1098372 + (r << 1 << 2) | 0;
if ((b | 0) != (n | 0)) {
if (b >>> 0 < p >>> 0) Ca();
if ((c[b + 12 >> 2] | 0) != (k | 0)) Ca()
}
if ((m | 0) == (b | 0)) {
c[274583] = c[274583] & ~(1 << r);
b = k;
m = l;
break
}
if ((m | 0) != (n | 0)) {
if (m >>> 0 < p >>> 0) Ca();
n = m + 8 | 0;
if ((c[n >> 2] | 0) == (k | 0)) q = n;
else Ca()
} else q = m + 8 | 0;
c[b + 12 >> 2] = m;
c[q >> 2] = b;
b = k;
m = l;
break
}
q = c[a + (o + 24) >> 2] | 0;
s = c[a + (o + 12) >> 2] | 0;
do
if ((s | 0) == (k | 0)) {
s = a + (o + 20) | 0;
r = c[s >> 2] | 0;
if (!r) {
s = a + (o + 16) | 0;
r = c[s >> 2] | 0;
if (!r) {
n = 0;
break
}
}
while (1) {
u = r + 20 | 0;
t = c[u >> 2] | 0;
if (t) {
r = t;
s = u;
continue
}
u = r + 16 | 0;
t = c[u >> 2] | 0;
if (!t) break;
else {
r = t;
s = u
}
}
if (s >>> 0 < p >>> 0) Ca();
else {
c[s >> 2] = 0;
n = r;
break
}
} else {
r = c[a + (o + 8) >> 2] | 0;
if (r >>> 0 < p >>> 0) Ca();
t = r + 12 | 0;
if ((c[t >> 2] | 0) != (k | 0)) Ca();
p = s + 8 | 0;
if ((c[p >> 2] | 0) == (k | 0)) {
c[t >> 2] = s;
c[p >> 2] = r;
n = s;
break
} else Ca()
}
while (0);
if (q) {
p = c[a + (o + 28) >> 2] | 0;
r = 1098636 + (p << 2) | 0;
if ((k | 0) == (c[r >> 2] | 0)) {
c[r >> 2] = n;
if (!n) {
c[274584] = c[274584] & ~(1 << p);
b = k;
m = l;
break
}
} else {
if (q >>> 0 < (c[274587] | 0) >>> 0) Ca();
p = q + 16 | 0;
if ((c[p >> 2] | 0) == (k | 0)) c[p >> 2] = n;
else c[q + 20 >> 2] = n;
if (!n) {
b = k;
m = l;
break
}
}
p = c[274587] | 0;
if (n >>> 0 < p >>> 0) Ca();
c[n + 24 >> 2] = q;
q = c[a + (o + 16) >> 2] | 0;
do
if (q)
if (q >>> 0 < p >>> 0) Ca();
else {
c[n + 16 >> 2] = q;
c[q + 24 >> 2] = n;
break
}
while (0);
o = c[a + (o + 20) >> 2] | 0;
if (o)
if (o >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[n + 20 >> 2] = o;
c[o + 24 >> 2] = n;
b = k;
m = l;
break
}
else {
b = k;
m = l
}
} else {
b = k;
m = l
}
} else {
b = o;
m = i
}
while (0);
if (b >>> 0 >= g >>> 0) Ca();
k = a + (i + -4) | 0;
l = c[k >> 2] | 0;
if (!(l & 1)) Ca();
if (!(l & 2)) {
if ((g | 0) == (c[274589] | 0)) {
u = (c[274586] | 0) + m | 0;
c[274586] = u;
c[274589] = b;
c[b + 4 >> 2] = u | 1;
if ((b | 0) != (c[274588] | 0)) return;
c[274588] = 0;
c[274585] = 0;
return
}
if ((g | 0) == (c[274588] | 0)) {
u = (c[274585] | 0) + m | 0;
c[274585] = u;
c[274588] = b;
c[b + 4 >> 2] = u | 1;
c[b + u >> 2] = u;
return
}
m = (l & -8) + m | 0;
k = l >>> 3;
do
if (l >>> 0 >= 256) {
j = c[a + (i + 16) >> 2] | 0;
l = c[a + (i | 4) >> 2] | 0;
do
if ((l | 0) == (g | 0)) {
l = a + (i + 12) | 0;
k = c[l >> 2] | 0;
if (!k) {
l = a + (i + 8) | 0;
k = c[l >> 2] | 0;
if (!k) {
h = 0;
break
}
}
while (1) {
n = k + 20 | 0;
o = c[n >> 2] | 0;
if (o) {
k = o;
l = n;
continue
}
o = k + 16 | 0;
n = c[o >> 2] | 0;
if (!n) break;
else {
k = n;
l = o
}
}
if (l >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[l >> 2] = 0;
h = k;
break
}
} else {
o = c[a + i >> 2] | 0;
if (o >>> 0 < (c[274587] | 0) >>> 0) Ca();
k = o + 12 | 0;
if ((c[k >> 2] | 0) != (g | 0)) Ca();
n = l + 8 | 0;
if ((c[n >> 2] | 0) == (g | 0)) {
c[k >> 2] = l;
c[n >> 2] = o;
h = l;
break
} else Ca()
}
while (0);
if (j) {
k = c[a + (i + 20) >> 2] | 0;
l = 1098636 + (k << 2) | 0;
if ((g | 0) == (c[l >> 2] | 0)) {
c[l >> 2] = h;
if (!h) {
c[274584] = c[274584] & ~(1 << k);
break
}
} else {
if (j >>> 0 < (c[274587] | 0) >>> 0) Ca();
k = j + 16 | 0;
if ((c[k >> 2] | 0) == (g | 0)) c[k >> 2] = h;
else c[j + 20 >> 2] = h;
if (!h) break
}
g = c[274587] | 0;
if (h >>> 0 < g >>> 0) Ca();
c[h + 24 >> 2] = j;
j = c[a + (i + 8) >> 2] | 0;
do
if (j)
if (j >>> 0 < g >>> 0) Ca();
else {
c[h + 16 >> 2] = j;
c[j + 24 >> 2] = h;
break
}
while (0);
g = c[a + (i + 12) >> 2] | 0;
if (g)
if (g >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[h + 20 >> 2] = g;
c[g + 24 >> 2] = h;
break
}
}
} else {
h = c[a + i >> 2] | 0;
a = c[a + (i | 4) >> 2] | 0;
i = 1098372 + (k << 1 << 2) | 0;
if ((h | 0) != (i | 0)) {
if (h >>> 0 < (c[274587] | 0) >>> 0) Ca();
if ((c[h + 12 >> 2] | 0) != (g | 0)) Ca()
}
if ((a | 0) == (h | 0)) {
c[274583] = c[274583] & ~(1 << k);
break
}
if ((a | 0) != (i | 0)) {
if (a >>> 0 < (c[274587] | 0) >>> 0) Ca();
i = a + 8 | 0;
if ((c[i >> 2] | 0) == (g | 0)) j = i;
else Ca()
} else j = a + 8 | 0;
c[h + 12 >> 2] = a;
c[j >> 2] = h
}
while (0);
c[b + 4 >> 2] = m | 1;
c[b + m >> 2] = m;
if ((b | 0) == (c[274588] | 0)) {
c[274585] = m;
return
}
} else {
c[k >> 2] = l & -2;
c[b + 4 >> 2] = m | 1;
c[b + m >> 2] = m
}
g = m >>> 3;
if (m >>> 0 < 256) {
a = g << 1;
d = 1098372 + (a << 2) | 0;
h = c[274583] | 0;
g = 1 << g;
if (h & g) {
g = 1098372 + (a + 2 << 2) | 0;
a = c[g >> 2] | 0;
if (a >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
e = g;
f = a
}
} else {
c[274583] = h | g;
e = 1098372 + (a + 2 << 2) | 0;
f = d
}
c[e >> 2] = b;
c[f + 12 >> 2] = b;
c[b + 8 >> 2] = f;
c[b + 12 >> 2] = d;
return
}
e = m >>> 8;
if (e)
if (m >>> 0 > 16777215) e = 31;
else {
t = (e + 1048320 | 0) >>> 16 & 8;
u = e << t;
s = (u + 520192 | 0) >>> 16 & 4;
u = u << s;
e = (u + 245760 | 0) >>> 16 & 2;
e = 14 - (s | t | e) + (u << e >>> 15) | 0;
e = m >>> (e + 7 | 0) & 1 | e << 1
}
else e = 0;
g = 1098636 + (e << 2) | 0;
c[b + 28 >> 2] = e;
c[b + 20 >> 2] = 0;
c[b + 16 >> 2] = 0;
a = c[274584] | 0;
f = 1 << e;
a: do
if (a & f) {
f = c[g >> 2] | 0;
b: do
if ((c[f + 4 >> 2] & -8 | 0) != (m | 0)) {
e = m << ((e | 0) == 31 ? 0 : 25 - (e >>> 1) | 0);
while (1) {
g = f + 16 + (e >>> 31 << 2) | 0;
a = c[g >> 2] | 0;
if (!a) break;
if ((c[a + 4 >> 2] & -8 | 0) == (m | 0)) {
d = a;
break b
} else {
e = e << 1;
f = a
}
}
if (g >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[g >> 2] = b;
c[b + 24 >> 2] = f;
c[b + 12 >> 2] = b;
c[b + 8 >> 2] = b;
break a
}
} else d = f;
while (0);
f = d + 8 | 0;
e = c[f >> 2] | 0;
u = c[274587] | 0;
if (e >>> 0 >= u >>> 0 & d >>> 0 >= u >>> 0) {
c[e + 12 >> 2] = b;
c[f >> 2] = b;
c[b + 8 >> 2] = e;
c[b + 12 >> 2] = d;
c[b + 24 >> 2] = 0;
break
} else Ca()
} else {
c[274584] = a | f;
c[g >> 2] = b;
c[b + 24 >> 2] = g;
c[b + 12 >> 2] = b;
c[b + 8 >> 2] = b
}
while (0);
u = (c[274591] | 0) + -1 | 0;
c[274591] = u;
if (!u) b = 1098788;
else return;
while (1) {
b = c[b >> 2] | 0;
if (!b) break;
else b = b + 8 | 0
}
c[274591] = -1;
return
}
function Bk(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
if (a) {
d = _(b, a) | 0;
if ((b | a) >>> 0 > 65535) d = ((d >>> 0) / (a >>> 0) | 0 | 0) == (b | 0) ? d : -1
} else d = 0;
a = zk(d) | 0;
if (!a) return a | 0;
if (!(c[a + -4 >> 2] & 3)) return a | 0;
dv(a | 0, 0, d | 0) | 0;
return a | 0
}
function Ck(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0;
if (!a) {
d = zk(b) | 0;
return d | 0
}
if (b >>> 0 > 4294967231) {
c[(Mi() | 0) >> 2] = 12;
d = 0;
return d | 0
}
d = Dk(a + -8 | 0, b >>> 0 < 11 ? 16 : b + 11 & -8) | 0;
if (d) {
d = d + 8 | 0;
return d | 0
}
d = zk(b) | 0;
if (!d) {
d = 0;
return d | 0
}
e = c[a + -4 >> 2] | 0;
e = (e & -8) - ((e & 3 | 0) == 0 ? 8 : 4) | 0;
ev(d | 0, a | 0, (e >>> 0 < b >>> 0 ? e : b) | 0) | 0;
Ak(a);
return d | 0
}
function Dk(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;
d = a + 4 | 0;
e = c[d >> 2] | 0;
j = e & -8;
h = a + j | 0;
k = c[274587] | 0;
g = e & 3;
if (!((g | 0) != 1 & a >>> 0 >= k >>> 0 & a >>> 0 < h >>> 0)) Ca();
f = a + (j | 4) | 0;
n = c[f >> 2] | 0;
if (!(n & 1)) Ca();
if (!g) {
if (b >>> 0 < 256) {
p = 0;
return p | 0
}
if (j >>> 0 >= (b + 4 | 0) >>> 0 ? (j - b | 0) >>> 0 <= c[274703] << 1 >>> 0 : 0) {
p = a;
return p | 0
}
p = 0;
return p | 0
}
if (j >>> 0 >= b >>> 0) {
g = j - b | 0;
if (g >>> 0 <= 15) {
p = a;
return p | 0
}
c[d >> 2] = e & 1 | b | 2;
c[a + (b + 4) >> 2] = g | 3;
c[f >> 2] = c[f >> 2] | 1;
Ek(a + b | 0, g);
p = a;
return p | 0
}
if ((h | 0) == (c[274589] | 0)) {
f = (c[274586] | 0) + j | 0;
if (f >>> 0 <= b >>> 0) {
p = 0;
return p | 0
}
p = f - b | 0;
c[d >> 2] = e & 1 | b | 2;
c[a + (b + 4) >> 2] = p | 1;
c[274589] = a + b;
c[274586] = p;
p = a;
return p | 0
}
if ((h | 0) == (c[274588] | 0)) {
g = (c[274585] | 0) + j | 0;
if (g >>> 0 < b >>> 0) {
p = 0;
return p | 0
}
f = g - b | 0;
if (f >>> 0 > 15) {
c[d >> 2] = e & 1 | b | 2;
c[a + (b + 4) >> 2] = f | 1;
c[a + g >> 2] = f;
d = a + (g + 4) | 0;
c[d >> 2] = c[d >> 2] & -2;
d = a + b | 0
} else {
c[d >> 2] = e & 1 | g | 2;
d = a + (g + 4) | 0;
c[d >> 2] = c[d >> 2] | 1;
d = 0;
f = 0
}
c[274585] = f;
c[274588] = d;
p = a;
return p | 0
}
if (n & 2) {
p = 0;
return p | 0
}
g = (n & -8) + j | 0;
if (g >>> 0 < b >>> 0) {
p = 0;
return p | 0
}
f = g - b | 0;
m = n >>> 3;
do
if (n >>> 0 >= 256) {
l = c[a + (j + 24) >> 2] | 0;
n = c[a + (j + 12) >> 2] | 0;
do
if ((n | 0) == (h | 0)) {
n = a + (j + 20) | 0;
m = c[n >> 2] | 0;
if (!m) {
n = a + (j + 16) | 0;
m = c[n >> 2] | 0;
if (!m) {
i = 0;
break
}
}
while (1) {
p = m + 20 | 0;
o = c[p >> 2] | 0;
if (o) {
m = o;
n = p;
continue
}
o = m + 16 | 0;
p = c[o >> 2] | 0;
if (!p) break;
else {
m = p;
n = o
}
}
if (n >>> 0 < k >>> 0) Ca();
else {
c[n >> 2] = 0;
i = m;
break
}
} else {
m = c[a + (j + 8) >> 2] | 0;
if (m >>> 0 < k >>> 0) Ca();
o = m + 12 | 0;
if ((c[o >> 2] | 0) != (h | 0)) Ca();
k = n + 8 | 0;
if ((c[k >> 2] | 0) == (h | 0)) {
c[o >> 2] = n;
c[k >> 2] = m;
i = n;
break
} else Ca()
}
while (0);
if (l) {
m = c[a + (j + 28) >> 2] | 0;
k = 1098636 + (m << 2) | 0;
if ((h | 0) == (c[k >> 2] | 0)) {
c[k >> 2] = i;
if (!i) {
c[274584] = c[274584] & ~(1 << m);
break
}
} else {
if (l >>> 0 < (c[274587] | 0) >>> 0) Ca();
k = l + 16 | 0;
if ((c[k >> 2] | 0) == (h | 0)) c[k >> 2] = i;
else c[l + 20 >> 2] = i;
if (!i) break
}
h = c[274587] | 0;
if (i >>> 0 < h >>> 0) Ca();
c[i + 24 >> 2] = l;
k = c[a + (j + 16) >> 2] | 0;
do
if (k)
if (k >>> 0 < h >>> 0) Ca();
else {
c[i + 16 >> 2] = k;
c[k + 24 >> 2] = i;
break
}
while (0);
h = c[a + (j + 20) >> 2] | 0;
if (h)
if (h >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[i + 20 >> 2] = h;
c[h + 24 >> 2] = i;
break
}
}
} else {
i = c[a + (j + 8) >> 2] | 0;
j = c[a + (j + 12) >> 2] | 0;
n = 1098372 + (m << 1 << 2) | 0;
if ((i | 0) != (n | 0)) {
if (i >>> 0 < k >>> 0) Ca();
if ((c[i + 12 >> 2] | 0) != (h | 0)) Ca()
}
if ((j | 0) == (i | 0)) {
c[274583] = c[274583] & ~(1 << m);
break
}
if ((j | 0) != (n | 0)) {
if (j >>> 0 < k >>> 0) Ca();
k = j + 8 | 0;
if ((c[k >> 2] | 0) == (h | 0)) l = k;
else Ca()
} else l = j + 8 | 0;
c[i + 12 >> 2] = j;
c[l >> 2] = i
}
while (0);
if (f >>> 0 < 16) {
c[d >> 2] = g | e & 1 | 2;
p = a + (g | 4) | 0;
c[p >> 2] = c[p >> 2] | 1;
p = a;
return p | 0
} else {
c[d >> 2] = e & 1 | b | 2;
c[a + (b + 4) >> 2] = f | 3;
p = a + (g | 4) | 0;
c[p >> 2] = c[p >> 2] | 1;
Ek(a + b | 0, f);
p = a;
return p | 0
}
return 0
}
function Ek(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;
g = a + b | 0;
j = c[a + 4 >> 2] | 0;
do
if (!(j & 1)) {
n = c[a >> 2] | 0;
if (!(j & 3)) return;
j = a + (0 - n) | 0;
k = n + b | 0;
p = c[274587] | 0;
if (j >>> 0 < p >>> 0) Ca();
if ((j | 0) == (c[274588] | 0)) {
d = a + (b + 4) | 0;
l = c[d >> 2] | 0;
if ((l & 3 | 0) != 3) {
d = j;
l = k;
break
}
c[274585] = k;
c[d >> 2] = l & -2;
c[a + (4 - n) >> 2] = k | 1;
c[g >> 2] = k;
return
}
q = n >>> 3;
if (n >>> 0 < 256) {
d = c[a + (8 - n) >> 2] | 0;
l = c[a + (12 - n) >> 2] | 0;
m = 1098372 + (q << 1 << 2) | 0;
if ((d | 0) != (m | 0)) {
if (d >>> 0 < p >>> 0) Ca();
if ((c[d + 12 >> 2] | 0) != (j | 0)) Ca()
}
if ((l | 0) == (d | 0)) {
c[274583] = c[274583] & ~(1 << q);
d = j;
l = k;
break
}
if ((l | 0) != (m | 0)) {
if (l >>> 0 < p >>> 0) Ca();
m = l + 8 | 0;
if ((c[m >> 2] | 0) == (j | 0)) o = m;
else Ca()
} else o = l + 8 | 0;
c[d + 12 >> 2] = l;
c[o >> 2] = d;
d = j;
l = k;
break
}
o = c[a + (24 - n) >> 2] | 0;
q = c[a + (12 - n) >> 2] | 0;
do
if ((q | 0) == (j | 0)) {
s = 16 - n | 0;
r = a + (s + 4) | 0;
q = c[r >> 2] | 0;
if (!q) {
r = a + s | 0;
q = c[r >> 2] | 0;
if (!q) {
m = 0;
break
}
}
while (1) {
t = q + 20 | 0;
s = c[t >> 2] | 0;
if (s) {
q = s;
r = t;
continue
}
t = q + 16 | 0;
s = c[t >> 2] | 0;
if (!s) break;
else {
q = s;
r = t
}
}
if (r >>> 0 < p >>> 0) Ca();
else {
c[r >> 2] = 0;
m = q;
break
}
} else {
r = c[a + (8 - n) >> 2] | 0;
if (r >>> 0 < p >>> 0) Ca();
p = r + 12 | 0;
if ((c[p >> 2] | 0) != (j | 0)) Ca();
s = q + 8 | 0;
if ((c[s >> 2] | 0) == (j | 0)) {
c[p >> 2] = q;
c[s >> 2] = r;
m = q;
break
} else Ca()
}
while (0);
if (o) {
q = c[a + (28 - n) >> 2] | 0;
p = 1098636 + (q << 2) | 0;
if ((j | 0) == (c[p >> 2] | 0)) {
c[p >> 2] = m;
if (!m) {
c[274584] = c[274584] & ~(1 << q);
d = j;
l = k;
break
}
} else {
if (o >>> 0 < (c[274587] | 0) >>> 0) Ca();
p = o + 16 | 0;
if ((c[p >> 2] | 0) == (j | 0)) c[p >> 2] = m;
else c[o + 20 >> 2] = m;
if (!m) {
d = j;
l = k;
break
}
}
p = c[274587] | 0;
if (m >>> 0 < p >>> 0) Ca();
c[m + 24 >> 2] = o;
n = 16 - n | 0;
o = c[a + n >> 2] | 0;
do
if (o)
if (o >>> 0 < p >>> 0) Ca();
else {
c[m + 16 >> 2] = o;
c[o + 24 >> 2] = m;
break
}
while (0);
n = c[a + (n + 4) >> 2] | 0;
if (n)
if (n >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[m + 20 >> 2] = n;
c[n + 24 >> 2] = m;
d = j;
l = k;
break
}
else {
d = j;
l = k
}
} else {
d = j;
l = k
}
} else {
d = a;
l = b
}
while (0);
j = c[274587] | 0;
if (g >>> 0 < j >>> 0) Ca();
k = a + (b + 4) | 0;
m = c[k >> 2] | 0;
if (!(m & 2)) {
if ((g | 0) == (c[274589] | 0)) {
t = (c[274586] | 0) + l | 0;
c[274586] = t;
c[274589] = d;
c[d + 4 >> 2] = t | 1;
if ((d | 0) != (c[274588] | 0)) return;
c[274588] = 0;
c[274585] = 0;
return
}
if ((g | 0) == (c[274588] | 0)) {
t = (c[274585] | 0) + l | 0;
c[274585] = t;
c[274588] = d;
c[d + 4 >> 2] = t | 1;
c[d + t >> 2] = t;
return
}
l = (m & -8) + l | 0;
k = m >>> 3;
do
if (m >>> 0 >= 256) {
i = c[a + (b + 24) >> 2] | 0;
k = c[a + (b + 12) >> 2] | 0;
do
if ((k | 0) == (g | 0)) {
m = a + (b + 20) | 0;
k = c[m >> 2] | 0;
if (!k) {
m = a + (b + 16) | 0;
k = c[m >> 2] | 0;
if (!k) {
h = 0;
break
}
}
while (1) {
o = k + 20 | 0;
n = c[o >> 2] | 0;
if (n) {
k = n;
m = o;
continue
}
o = k + 16 | 0;
n = c[o >> 2] | 0;
if (!n) break;
else {
k = n;
m = o
}
}
if (m >>> 0 < j >>> 0) Ca();
else {
c[m >> 2] = 0;
h = k;
break
}
} else {
m = c[a + (b + 8) >> 2] | 0;
if (m >>> 0 < j >>> 0) Ca();
j = m + 12 | 0;
if ((c[j >> 2] | 0) != (g | 0)) Ca();
n = k + 8 | 0;
if ((c[n >> 2] | 0) == (g | 0)) {
c[j >> 2] = k;
c[n >> 2] = m;
h = k;
break
} else Ca()
}
while (0);
if (i) {
k = c[a + (b + 28) >> 2] | 0;
j = 1098636 + (k << 2) | 0;
if ((g | 0) == (c[j >> 2] | 0)) {
c[j >> 2] = h;
if (!h) {
c[274584] = c[274584] & ~(1 << k);
break
}
} else {
if (i >>> 0 < (c[274587] | 0) >>> 0) Ca();
j = i + 16 | 0;
if ((c[j >> 2] | 0) == (g | 0)) c[j >> 2] = h;
else c[i + 20 >> 2] = h;
if (!h) break
}
g = c[274587] | 0;
if (h >>> 0 < g >>> 0) Ca();
c[h + 24 >> 2] = i;
i = c[a + (b + 16) >> 2] | 0;
do
if (i)
if (i >>> 0 < g >>> 0) Ca();
else {
c[h + 16 >> 2] = i;
c[i + 24 >> 2] = h;
break
}
while (0);
g = c[a + (b + 20) >> 2] | 0;
if (g)
if (g >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
c[h + 20 >> 2] = g;
c[g + 24 >> 2] = h;
break
}
}
} else {
h = c[a + (b + 8) >> 2] | 0;
a = c[a + (b + 12) >> 2] | 0;
b = 1098372 + (k << 1 << 2) | 0;
if ((h | 0) != (b | 0)) {
if (h >>> 0 < j >>> 0) Ca();
if ((c[h + 12 >> 2] | 0) != (g | 0)) Ca()
}
if ((a | 0) == (h | 0)) {
c[274583] = c[274583] & ~(1 << k);
break
}
if ((a | 0) != (b | 0)) {
if (a >>> 0 < j >>> 0) Ca();
b = a + 8 | 0;
if ((c[b >> 2] | 0) == (g | 0)) i = b;
else Ca()
} else i = a + 8 | 0;
c[h + 12 >> 2] = a;
c[i >> 2] = h
}
while (0);
c[d + 4 >> 2] = l | 1;
c[d + l >> 2] = l;
if ((d | 0) == (c[274588] | 0)) {
c[274585] = l;
return
}
} else {
c[k >> 2] = m & -2;
c[d + 4 >> 2] = l | 1;
c[d + l >> 2] = l
}
a = l >>> 3;
if (l >>> 0 < 256) {
b = a << 1;
g = 1098372 + (b << 2) | 0;
h = c[274583] | 0;
a = 1 << a;
if (h & a) {
a = 1098372 + (b + 2 << 2) | 0;
b = c[a >> 2] | 0;
if (b >>> 0 < (c[274587] | 0) >>> 0) Ca();
else {
f = a;
e = b
}
} else {
c[274583] = h | a;
f = 1098372 + (b + 2 << 2) | 0;
e = g
}
c[f >> 2] = d;
c[e + 12 >> 2] = d;
c[d + 8 >> 2] = e;
c[d + 12 >> 2] = g;
return
}
e = l >>> 8;
if (e)
if (l >>> 0 > 16777215) e = 31;
else {
s = (e + 1048320 | 0) >>> 16 & 8;
t = e << s;
r = (t + 520192 | 0) >>> 16 & 4;
t = t << r;
e = (t + 245760 | 0) >>> 16 & 2;
e = 14 - (r | s | e) + (t << e >>> 15) | 0;
e = l >>> (e + 7 | 0) & 1 | e << 1
}
else e = 0;
f = 1098636 + (e << 2) | 0;
c[d + 28 >> 2] = e;
c[d + 20 >> 2] = 0;
c[d + 16 >> 2] = 0;
a = c[274584] | 0;
g = 1 << e;
if (!(a & g)) {
c[274584] = a | g;
c[f >> 2] = d;
c[d + 24 >> 2] = f;
c[d + 12 >> 2] = d;
c[d + 8 >> 2] = d;
return
}
f = c[f >> 2] | 0;
a: do
if ((c[f + 4 >> 2] & -8 | 0) != (l | 0)) {
e = l << ((e | 0) == 31 ? 0 : 25 - (e >>> 1) | 0);
while (1) {
g = f + 16 + (e >>> 31 << 2) | 0;
a = c[g >> 2] | 0;
if (!a) break;
if ((c[a + 4 >> 2] & -8 | 0) == (l | 0)) {
f = a;
break a
} else {
e = e << 1;
f = a
}
}
if (g >>> 0 < (c[274587] | 0) >>> 0) Ca();
c[g >> 2] = d;
c[d + 24 >> 2] = f;
c[d + 12 >> 2] = d;
c[d + 8 >> 2] = d;
return
}
while (0);
g = f + 8 | 0;
e = c[g >> 2] | 0;
t = c[274587] | 0;
if (!(e >>> 0 >= t >>> 0 & f >>> 0 >= t >>> 0)) Ca();
c[e + 12 >> 2] = d;
c[g >> 2] = d;
c[d + 8 >> 2] = e;
c[d + 12 >> 2] = f;
c[d + 24 >> 2] = 0;
return
}
function Fk(a) {
a = a | 0;
Ma(a | 0) | 0;
return
}
function Gk(a) {
a = a | 0;
Xa(a | 0) | 0;
return
}
function Hk(a, b) {
a = a | 0;
b = b | 0;
(wa(a | 0, c[b >> 2] | 0) | 0) != 0;
return
}
function Ik(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0;
b = c[273686] | 0;
Lk(1099508, b, 1099564);
c[274707] = 1100332;
c[274709] = 1100352;
c[274708] = 0;
e = c[275080] | 0;
hm(1098828 + e | 0, 1099508);
c[1098828 + (e + 72) >> 2] = 0;
c[1098828 + (e + 76) >> 2] = -1;
e = c[273687] | 0;
Mk(1099612, e, 1099572);
c[274729] = 1100412;
c[274730] = 1100432;
h = c[275100] | 0;
hm(1098916 + h | 0, 1099612);
f = h + 72 | 0;
c[1098916 + f >> 2] = 0;
a = h + 76 | 0;
c[1098916 + a >> 2] = -1;
d = c[273685] | 0;
Mk(1099660, d, 1099580);
c[274750] = 1100412;
c[274751] = 1100432;
hm(1099e3 + h | 0, 1099660);
c[1099e3 + f >> 2] = 0;
c[1099e3 + a >> 2] = -1;
g = c[1099e3 + ((c[(c[274750] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0;
c[274771] = 1100412;
c[274772] = 1100432;
hm(1099084 + h | 0, g);
c[1099084 + f >> 2] = 0;
c[1099084 + a >> 2] = -1;
c[1098828 + ((c[(c[274707] | 0) + -12 >> 2] | 0) + 72) >> 2] = 1098916;
a = 1099e3 + ((c[(c[274750] | 0) + -12 >> 2] | 0) + 4) | 0;
c[a >> 2] = c[a >> 2] | 8192;
c[1099e3 + ((c[(c[274750] | 0) + -12 >> 2] | 0) + 72) >> 2] = 1098916;
Nk(1099708, b, 1099588);
c[274792] = 1100372;
c[274794] = 1100392;
c[274793] = 0;
b = c[275090] | 0;
hm(1099168 + b | 0, 1099708);
c[1099168 + (b + 72) >> 2] = 0;
c[1099168 + (b + 76) >> 2] = -1;
Ok(1099764, e, 1099596);
c[274814] = 1100452;
c[274815] = 1100472;
e = c[275110] | 0;
hm(1099256 + e | 0, 1099764);
b = e + 72 | 0;
c[1099256 + b >> 2] = 0;
a = e + 76 | 0;
c[1099256 + a >> 2] = -1;
Ok(1099812, d, 1099604);
c[274835] = 1100452;
c[274836] = 1100472;
hm(1099340 + e | 0, 1099812);
c[1099340 + b >> 2] = 0;
c[1099340 + a >> 2] = -1;
d = c[1099340 + ((c[(c[274835] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0;
c[274856] = 1100452;
c[274857] = 1100472;
hm(1099424 + e | 0, d);
c[1099424 + b >> 2] = 0;
c[1099424 + a >> 2] = -1;
c[1099168 + ((c[(c[274792] | 0) + -12 >> 2] | 0) + 72) >> 2] = 1099256;
a = 1099340 + ((c[(c[274835] | 0) + -12 >> 2] | 0) + 4) | 0;
c[a >> 2] = c[a >> 2] | 8192;
c[1099340 + ((c[(c[274835] | 0) + -12 >> 2] | 0) + 72) >> 2] = 1099256;
return
}
function Jk() {
Ik(0);
return
}
function Kk() {
return
}
function Lk(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
f = i;
i = i + 16 | 0;
h = f + 4 | 0;
g = f;
km(b);
c[b >> 2] = 1100060;
c[b + 32 >> 2] = d;
c[b + 40 >> 2] = e;
c[b + 48 >> 2] = -1;
a[b + 52 >> 0] = 0;
Fr(h, b + 4 | 0);
c[g >> 2] = c[h >> 2];
dl(b, g);
Gr(g);
i = f;
return
}
function Mk(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
f = i;
i = i + 16 | 0;
h = f + 4 | 0;
g = f;
km(b);
c[b >> 2] = 1099996;
c[b + 32 >> 2] = d;
Fr(h, b + 4 | 0);
c[g >> 2] = c[h >> 2];
d = Jr(g, 1101660) | 0;
Gr(g);
c[b + 36 >> 2] = d;
c[b + 40 >> 2] = e;
a[b + 44 >> 0] = (Gb[c[(c[d >> 2] | 0) + 28 >> 2] & 127](d) | 0) & 1;
i = f;
return
}
function Nk(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
f = i;
i = i + 16 | 0;
h = f + 4 | 0;
g = f;
zm(b);
c[b >> 2] = 1099932;
c[b + 32 >> 2] = d;
c[b + 40 >> 2] = e;
c[b + 48 >> 2] = -1;
a[b + 52 >> 0] = 0;
Fr(h, b + 4 | 0);
c[g >> 2] = c[h >> 2];
Uk(b, g);
Gr(g);
i = f;
return
}
function Ok(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
f = i;
i = i + 16 | 0;
h = f + 4 | 0;
g = f;
zm(b);
c[b >> 2] = 1099868;
c[b + 32 >> 2] = d;
Fr(h, b + 4 | 0);
c[g >> 2] = c[h >> 2];
d = Jr(g, 1101668) | 0;
Gr(g);
c[b + 36 >> 2] = d;
c[b + 40 >> 2] = e;
a[b + 44 >> 0] = (Gb[c[(c[d >> 2] | 0) + 28 >> 2] & 127](d) | 0) & 1;
i = f;
return
}
function Pk(a) {
a = a | 0;
xm(a);
Ph(a);
return
}
function Qk(b, d) {
b = b | 0;
d = d | 0;
Gb[c[(c[b >> 2] | 0) + 24 >> 2] & 127](b) | 0;
d = Jr(d, 1101668) | 0;
c[b + 36 >> 2] = d;
a[b + 44 >> 0] = (Gb[c[(c[d >> 2] | 0) + 28 >> 2] & 127](d) | 0) & 1;
return
}
function Rk(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0;
d = i;
i = i + 16 | 0;
g = d + 8 | 0;
j = d;
e = a + 36 | 0;
f = a + 40 | 0;
h = g + 8 | 0;
k = g;
a = a + 32 | 0;
a: while (1) {
l = c[e >> 2] | 0;
l = Nb[c[(c[l >> 2] | 0) + 20 >> 2] & 31](l, c[f >> 2] | 0, g, h, j) | 0;
m = (c[j >> 2] | 0) - k | 0;
if ((Cj(g, 1, m, c[a >> 2] | 0) | 0) != (m | 0)) {
e = -1;
break
}
switch (l | 0) {
case 1:
break;
case 2:
{
e = -1;
break a
};
default:
{
b = 4;
break a
}
}
}
if ((b | 0) == 4) e = ((sj(c[a >> 2] | 0) | 0) != 0) << 31 >> 31;
i = d;
return e | 0
}
function Sk(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0;
a: do
if (!(a[b + 44 >> 0] | 0))
if ((e | 0) > 0) {
f = 0;
while (1) {
if ((Mb[c[(c[b >> 2] | 0) + 52 >> 2] & 63](b, c[d >> 2] | 0) | 0) == -1) break a;
f = f + 1 | 0;
if ((f | 0) < (e | 0)) d = d + 4 | 0;
else break
}
} else f = 0;
else f = Cj(d, 4, e, c[b + 32 >> 2] | 0) | 0;
while (0);
return f | 0
}
function Tk(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0;
f = i;
i = i + 32 | 0;
k = f + 16 | 0;
q = f + 8 | 0;
j = f + 4 | 0;
h = f;
g = (d | 0) == -1;
a: do
if (!g) {
c[q >> 2] = d;
if (a[b + 44 >> 0] | 0)
if ((Cj(q, 4, 1, c[b + 32 >> 2] | 0) | 0) == 1) {
e = 11;
break
} else {
g = -1;
break
}
c[j >> 2] = k;
l = q + 4 | 0;
o = b + 36 | 0;
m = b + 40 | 0;
n = k + 8 | 0;
p = k;
b = b + 32 | 0;
while (1) {
r = c[o >> 2] | 0;
r = Jb[c[(c[r >> 2] | 0) + 12 >> 2] & 15](r, c[m >> 2] | 0, q, l, h, k, n, j) | 0;
if ((c[h >> 2] | 0) == (q | 0)) {
g = -1;
break a
}
if ((r | 0) == 3) break;
s = (r | 0) == 1;
if (r >>> 0 >= 2) {
g = -1;
break a
}
r = (c[j >> 2] | 0) - p | 0;
if ((Cj(k, 1, r, c[b >> 2] | 0) | 0) != (r | 0)) {
g = -1;
break a
}
if (s) q = s ? c[h >> 2] | 0 : q;
else {
e = 11;
break a
}
}
if ((Cj(q, 1, 1, c[b >> 2] | 0) | 0) != 1) g = -1;
else e = 11
} else e = 11;
while (0);
if ((e | 0) == 11) g = g ? 0 : d;
i = f;
return g | 0
}
function Uk(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0;
f = Jr(d, 1101668) | 0;
e = b + 36 | 0;
c[e >> 2] = f;
d = b + 44 | 0;
c[d >> 2] = Gb[c[(c[f >> 2] | 0) + 24 >> 2] & 127](f) | 0;
e = c[e >> 2] | 0;
a[b + 53 >> 0] = (Gb[c[(c[e >> 2] | 0) + 28 >> 2] & 127](e) | 0) & 1;
return
}
function Vk(a) {
a = a | 0;
xm(a);
Ph(a);
return
}
function Wk(a) {
a = a | 0;
return Zk(a, 0) | 0
}
function Xk(a) {
a = a | 0;
return Zk(a, 1) | 0
}
function Yk(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0;
e = i;
i = i + 32 | 0;
h = e + 16 | 0;
g = e + 8 | 0;
k = e + 4 | 0;
l = e;
f = b + 52 | 0;
m = (a[f >> 0] | 0) != 0;
a: do
if ((d | 0) == -1)
if (m) d = -1;
else {
d = c[b + 48 >> 2] | 0;
a[f >> 0] = (d | 0) != -1 & 1
}
else {
j = b + 48 | 0;
b: do
if (m) {
c[k >> 2] = c[j >> 2];
m = c[b + 36 >> 2] | 0;
switch (Jb[c[(c[m >> 2] | 0) + 12 >> 2] & 15](m, c[b + 40 >> 2] | 0, k, k + 4 | 0, l, h, h + 8 | 0, g) | 0) {
case 1:
case 2:
{
d = -1;
break a
};
case 3:
{
a[h >> 0] = c[j >> 2];c[g >> 2] = h + 1;
break
};
default:
{}
}
k = b + 32 | 0;
while (1) {
l = c[g >> 2] | 0;
if (l >>> 0 <= h >>> 0) break b;
b = l + -1 | 0;
c[g >> 2] = b;
if ((Hj(a[b >> 0] | 0, c[k >> 2] | 0) | 0) == -1) {
d = -1;
break a
}
}
}
while (0);
c[j >> 2] = d;
a[f >> 0] = 1
}
while (0);
i = e;
return d | 0
}
function Zk(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0;
e = i;
i = i + 32 | 0;
f = e + 16 | 0;
g = e + 8 | 0;
j = e + 4 | 0;
k = e;
h = b + 52 | 0;
a: do
if (a[h >> 0] | 0) {
f = b + 48 | 0;
g = c[f >> 2] | 0;
if (d) {
c[f >> 2] = -1;
a[h >> 0] = 0
}
} else {
p = c[b + 44 >> 2] | 0;
p = (p | 0) > 1 ? p : 1;
h = b + 32 | 0;
if ((p | 0) > 0) {
l = 0;
do {
m = Dj(c[h >> 2] | 0) | 0;
if ((m | 0) == -1) {
g = -1;
break a
}
a[f + l >> 0] = m;
l = l + 1 | 0
} while ((l | 0) < (p | 0))
}
b: do
if (!(a[b + 53 >> 0] | 0)) {
n = b + 40 | 0;
m = b + 36 | 0;
l = g + 4 | 0;
c: while (1) {
s = c[n >> 2] | 0;
q = s;
r = c[q >> 2] | 0;
q = c[q + 4 >> 2] | 0;
t = c[m >> 2] | 0;
o = f + p | 0;
switch (Jb[c[(c[t >> 2] | 0) + 16 >> 2] & 15](t, s, f, o, j, g, l, k) | 0) {
case 2:
{
g = -1;
break a
};
case 3:
break c;
case 1:
break;
default:
break b
}
t = c[n >> 2] | 0;
c[t >> 2] = r;
c[t + 4 >> 2] = q;
if ((p | 0) == 8) {
g = -1;
break a
}
q = Dj(c[h >> 2] | 0) | 0;
if ((q | 0) == -1) {
g = -1;
break a
}
a[o >> 0] = q;
p = p + 1 | 0
}
c[g >> 2] = a[f >> 0]
} else c[g >> 2] = a[f >> 0];
while (0);
if (d) {
g = c[g >> 2] | 0;
c[b + 48 >> 2] = g;
break
}
while (1) {
if ((p | 0) <= 0) break;
p = p + -1 | 0;
if ((Hj(a[f + p >> 0] | 0, c[h >> 2] | 0) | 0) == -1) {
g = -1;
break a
}
}
g = c[g >> 2] | 0
}
while (0);
i = e;
return g | 0
}
function _k(a) {
a = a | 0;
im(a);
Ph(a);
return
}
function $k(b, d) {
b = b | 0;
d = d | 0;
Gb[c[(c[b >> 2] | 0) + 24 >> 2] & 127](b) | 0;
d = Jr(d, 1101660) | 0;
c[b + 36 >> 2] = d;
a[b + 44 >> 0] = (Gb[c[(c[d >> 2] | 0) + 28 >> 2] & 127](d) | 0) & 1;
return
}
function al(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0;
d = i;
i = i + 16 | 0;
g = d + 8 | 0;
j = d;
e = a + 36 | 0;
f = a + 40 | 0;
h = g + 8 | 0;
k = g;
a = a + 32 | 0;
a: while (1) {
l = c[e >> 2] | 0;
l = Nb[c[(c[l >> 2] | 0) + 20 >> 2] & 31](l, c[f >> 2] | 0, g, h, j) | 0;
m = (c[j >> 2] | 0) - k | 0;
if ((Cj(g, 1, m, c[a >> 2] | 0) | 0) != (m | 0)) {
e = -1;
break
}
switch (l | 0) {
case 1:
break;
case 2:
{
e = -1;
break a
};
default:
{
b = 4;
break a
}
}
}
if ((b | 0) == 4) e = ((sj(c[a >> 2] | 0) | 0) != 0) << 31 >> 31;
i = d;
return e | 0
}
function bl(b, e, f) {
b = b | 0;
e = e | 0;
f = f | 0;
var g = 0;
a: do
if (!(a[b + 44 >> 0] | 0))
if ((f | 0) > 0) {
g = 0;
while (1) {
if ((Mb[c[(c[b >> 2] | 0) + 52 >> 2] & 63](b, d[e >> 0] | 0) | 0) == -1) break a;
g = g + 1 | 0;
if ((g | 0) < (f | 0)) e = e + 1 | 0;
else break
}
} else g = 0;
else g = Cj(e, 1, f, c[b + 32 >> 2] | 0) | 0;
while (0);
return g | 0
}
function cl(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0;
f = i;
i = i + 32 | 0;
k = f + 16 | 0;
q = f + 8 | 0;
j = f + 4 | 0;
h = f;
g = (d | 0) == -1;
a: do
if (!g) {
a[q >> 0] = d;
if (a[b + 44 >> 0] | 0)
if ((Cj(q, 1, 1, c[b + 32 >> 2] | 0) | 0) == 1) {
e = 11;
break
} else {
g = -1;
break
}
c[j >> 2] = k;
l = q + 1 | 0;
o = b + 36 | 0;
m = b + 40 | 0;
n = k + 8 | 0;
p = k;
b = b + 32 | 0;
while (1) {
r = c[o >> 2] | 0;
r = Jb[c[(c[r >> 2] | 0) + 12 >> 2] & 15](r, c[m >> 2] | 0, q, l, h, k, n, j) | 0;
if ((c[h >> 2] | 0) == (q | 0)) {
g = -1;
break a
}
if ((r | 0) == 3) break;
s = (r | 0) == 1;
if (r >>> 0 >= 2) {
g = -1;
break a
}
r = (c[j >> 2] | 0) - p | 0;
if ((Cj(k, 1, r, c[b >> 2] | 0) | 0) != (r | 0)) {
g = -1;
break a
}
if (s) q = s ? c[h >> 2] | 0 : q;
else {
e = 11;
break a
}
}
if ((Cj(q, 1, 1, c[b >> 2] | 0) | 0) != 1) g = -1;
else e = 11
} else e = 11;
while (0);
if ((e | 0) == 11) g = g ? 0 : d;
i = f;
return g | 0
}
function dl(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0;
f = Jr(d, 1101660) | 0;
e = b + 36 | 0;
c[e >> 2] = f;
d = b + 44 | 0;
c[d >> 2] = Gb[c[(c[f >> 2] | 0) + 24 >> 2] & 127](f) | 0;
e = c[e >> 2] | 0;
a[b + 53 >> 0] = (Gb[c[(c[e >> 2] | 0) + 28 >> 2] & 127](e) | 0) & 1;
return
}
function el(a) {
a = a | 0;
im(a);
Ph(a);
return
}
function fl(a) {
a = a | 0;
return il(a, 0) | 0
}
function gl(a) {
a = a | 0;
return il(a, 1) | 0
}
function hl(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0;
e = i;
i = i + 32 | 0;
h = e + 16 | 0;
g = e + 4 | 0;
k = e + 8 | 0;
l = e;
f = b + 52 | 0;
m = (a[f >> 0] | 0) != 0;
a: do
if ((d | 0) == -1)
if (m) d = -1;
else {
d = c[b + 48 >> 2] | 0;
a[f >> 0] = (d | 0) != -1 & 1
}
else {
j = b + 48 | 0;
b: do
if (m) {
a[k >> 0] = c[j >> 2];
m = c[b + 36 >> 2] | 0;
switch (Jb[c[(c[m >> 2] | 0) + 12 >> 2] & 15](m, c[b + 40 >> 2] | 0, k, k + 1 | 0, l, h, h + 8 | 0, g) | 0) {
case 1:
case 2:
{
d = -1;
break a
};
case 3:
{
a[h >> 0] = c[j >> 2];c[g >> 2] = h + 1;
break
};
default:
{}
}
k = b + 32 | 0;
while (1) {
l = c[g >> 2] | 0;
if (l >>> 0 <= h >>> 0) break b;
b = l + -1 | 0;
c[g >> 2] = b;
if ((Hj(a[b >> 0] | 0, c[k >> 2] | 0) | 0) == -1) {
d = -1;
break a
}
}
}
while (0);
c[j >> 2] = d;
a[f >> 0] = 1
}
while (0);
i = e;
return d | 0
}
function il(b, e) {
b = b | 0;
e = e | 0;
var f = 0,
g = 0,
h = 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;
f = i;
i = i + 32 | 0;
g = f + 16 | 0;
h = f + 8 | 0;
k = f + 4 | 0;
l = f;
j = b + 52 | 0;
a: do
if (a[j >> 0] | 0) {
g = b + 48 | 0;
h = c[g >> 2] | 0;
if (e) {
c[g >> 2] = -1;
a[j >> 0] = 0
}
} else {
q = c[b + 44 >> 2] | 0;
q = (q | 0) > 1 ? q : 1;
j = b + 32 | 0;
if ((q | 0) > 0) {
m = 0;
do {
n = Dj(c[j >> 2] | 0) | 0;
if ((n | 0) == -1) {
h = -1;
break a
}
a[g + m >> 0] = n;
m = m + 1 | 0
} while ((m | 0) < (q | 0))
}
b: do
if (!(a[b + 53 >> 0] | 0)) {
o = b + 40 | 0;
n = b + 36 | 0;
m = h + 1 | 0;
c: while (1) {
t = c[o >> 2] | 0;
r = t;
s = c[r >> 2] | 0;
r = c[r + 4 >> 2] | 0;
u = c[n >> 2] | 0;
p = g + q | 0;
switch (Jb[c[(c[u >> 2] | 0) + 16 >> 2] & 15](u, t, g, p, k, h, m, l) | 0) {
case 2:
{
h = -1;
break a
};
case 3:
break c;
case 1:
break;
default:
break b
}
u = c[o >> 2] | 0;
c[u >> 2] = s;
c[u + 4 >> 2] = r;
if ((q | 0) == 8) {
h = -1;
break a
}
r = Dj(c[j >> 2] | 0) | 0;
if ((r | 0) == -1) {
h = -1;
break a
}
a[p >> 0] = r;
q = q + 1 | 0
}
a[h >> 0] = a[g >> 0] | 0
} else a[h >> 0] = a[g >> 0] | 0;
while (0);
if (e) {
e = a[h >> 0] | 0;
c[b + 48 >> 2] = e & 255
} else {
while (1) {
if ((q | 0) <= 0) break;
q = q + -1 | 0;
if ((Hj(d[g + q >> 0] | 0, c[j >> 2] | 0) | 0) == -1) {
h = -1;
break a
}
}
e = a[h >> 0] | 0
}
h = e & 255
}
while (0);
i = f;
return h | 0
}
function jl(a, b) {
a = a | 0;
b = b | 0;
return
}
function kl(a) {
a = a | 0;
Za(a | 0) | 0;
return
}
function ll(a) {
a = a | 0;
(rb(a | 0) | 0) != 0;
return
}
function ml(a) {
a = a | 0;
if (!(_a(a | 0) | 0)) return;
else Fa(1178539, 1178547, 47, 1178632)
}
function nl(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
rb(1100116) | 0;
if ((c[a >> 2] | 0) == 1)
do wa(1100144, 1100116) | 0; while ((c[a >> 2] | 0) == 1);
if (!(c[a >> 2] | 0)) {
c[a >> 2] = 1;
_a(1100116) | 0;
Cb[d & 255](b);
rb(1100116) | 0;
c[a >> 2] = -1;
_a(1100116) | 0;
eb(1100144) | 0
} else _a(1100116) | 0;
return
}
function ol(b, d) {
b = b | 0;
d = d | 0;
if (!(a[d >> 0] & 1)) {
c[b >> 2] = c[d >> 2];
c[b + 4 >> 2] = c[d + 4 >> 2];
c[b + 8 >> 2] = c[d + 8 >> 2]
} else pl(b, c[d + 8 >> 2] | 0, c[d + 4 >> 2] | 0);
return
}
function pl(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0;
if (e >>> 0 > 4294967279) Jh(b);
if (e >>> 0 < 11) {
a[b >> 0] = e << 1;
b = b + 1 | 0
} else {
g = e + 16 & -16;
f = Mh(g) | 0;
c[b + 8 >> 2] = f;
c[b >> 2] = g | 1;
c[b + 4 >> 2] = e;
b = f
}
ev(b | 0, d | 0, e | 0) | 0;
a[b + e >> 0] = 0;
return
}
function ql(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0;
if (d >>> 0 > 4294967279) Jh(b);
if (d >>> 0 < 11) {
a[b >> 0] = d << 1;
b = b + 1 | 0
} else {
g = d + 16 & -16;
f = Mh(g) | 0;
c[b + 8 >> 2] = f;
c[b >> 2] = g | 1;
c[b + 4 >> 2] = d;
b = f
}
dv(b | 0, e | 0, d | 0) | 0;
a[b + d >> 0] = 0;
return
}
function rl(b, d, e, f, g) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
var h = 0;
h = a[d >> 0] | 0;
g = (h & 1) == 0;
h = g ? (h & 255) >>> 1 : c[d + 4 >> 2] | 0;
if (h >>> 0 < e >>> 0) zi(b);
else {
h = h - e | 0;
pl(b, (g ? d + 1 | 0 : c[d + 8 >> 2] | 0) + e | 0, h >>> 0 < f >>> 0 ? h : f);
return
}
}
function sl(b) {
b = b | 0;
if (a[b >> 0] & 1) Ph(c[b + 8 >> 2] | 0);
return
}
function tl(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0;
if ((b | 0) != (d | 0)) {
e = a[d >> 0] | 0;
f = (e & 1) == 0;
vl(b, f ? d + 1 | 0 : c[d + 8 >> 2] | 0, f ? (e & 255) >>> 1 : c[d + 4 >> 2] | 0) | 0
}
return b | 0
}
function ul(a, b) {
a = a | 0;
b = b | 0;
return vl(a, b, ik(b) | 0) | 0
}
function vl(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
g = a[b >> 0] | 0;
if (!(g & 1)) f = 10;
else {
g = c[b >> 2] | 0;
f = (g & -2) + -1 | 0;
g = g & 255
}
h = (g & 1) == 0;
do
if (f >>> 0 >= e >>> 0) {
if (h) f = b + 1 | 0;
else f = c[b + 8 >> 2] | 0;
fv(f | 0, d | 0, e | 0) | 0;
a[f + e >> 0] = 0;
if (!(a[b >> 0] & 1)) {
a[b >> 0] = e << 1;
break
} else {
c[b + 4 >> 2] = e;
break
}
} else {
if (h) g = (g & 255) >>> 1;
else g = c[b + 4 >> 2] | 0;
Cl(b, f, e - f | 0, g, 0, g, e, d)
}
while (0);
return b | 0
}
function wl(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0;
g = a[b >> 0] | 0;
f = (g & 1) == 0;
if (f) g = (g & 255) >>> 1;
else g = c[b + 4 >> 2] | 0;
do
if (g >>> 0 >= d >>> 0)
if (f) {
a[b + 1 + d >> 0] = 0;
a[b >> 0] = d << 1;
break
} else {
a[(c[b + 8 >> 2] | 0) + d >> 0] = 0;
c[b + 4 >> 2] = d;
break
}
else xl(b, d - g | 0, e) | 0; while (0);
return
}
function xl(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
if (d) {
h = a[b >> 0] | 0;
if (!(h & 1)) g = 10;
else {
h = c[b >> 2] | 0;
g = (h & -2) + -1 | 0;
h = h & 255
}
if (!(h & 1)) f = (h & 255) >>> 1;
else f = c[b + 4 >> 2] | 0;
if ((g - f | 0) >>> 0 < d >>> 0) {
Dl(b, g, d - g + f | 0, f, f, 0, 0);
h = a[b >> 0] | 0
}
if (!(h & 1)) g = b + 1 | 0;
else g = c[b + 8 >> 2] | 0;
dv(g + f | 0, e | 0, d | 0) | 0;
e = f + d | 0;
if (!(a[b >> 0] & 1)) a[b >> 0] = e << 1;
else c[b + 4 >> 2] = e;
a[g + e >> 0] = 0
}
return b | 0
}
function yl(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
i = 0,
j = 0;
if (d >>> 0 > 4294967279) Jh(b);
f = a[b >> 0] | 0;
if (!(f & 1)) g = 10;
else {
f = c[b >> 2] | 0;
g = (f & -2) + -1 | 0;
f = f & 255
}
if (!(f & 1)) e = (f & 255) >>> 1;
else e = c[b + 4 >> 2] | 0;
d = e >>> 0 > d >>> 0 ? e : d;
if (d >>> 0 < 11) d = 10;
else d = (d + 16 & -16) + -1 | 0;
do
if ((d | 0) != (g | 0)) {
do
if ((d | 0) != 10) {
i = Mh(d + 1 | 0) | 0;
if (!(f & 1)) {
j = 1;
h = b + 1 | 0;
g = 0;
break
} else {
j = 1;
h = c[b + 8 >> 2] | 0;
g = 1;
break
}
} else {
i = b + 1 | 0;
j = 0;
h = c[b + 8 >> 2] | 0;
g = 1
}
while (0);
if (!(f & 1)) f = (f & 255) >>> 1;
else f = c[b + 4 >> 2] | 0;
ev(i | 0, h | 0, f + 1 | 0) | 0;
if (g) Ph(h);
if (j) {
c[b >> 2] = d + 1 | 1;
c[b + 4 >> 2] = e;
c[b + 8 >> 2] = i;
break
} else {
a[b >> 0] = e << 1;
break
}
}
while (0);
return
}
function zl(a, b) {
a = a | 0;
b = b | 0;
return Bl(a, b, ik(b) | 0) | 0
}
function Al(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0;
e = a[b >> 0] | 0;
f = (e & 1) != 0;
if (f) {
g = (c[b >> 2] & -2) + -1 | 0;
e = c[b + 4 >> 2] | 0
} else {
g = 10;
e = (e & 255) >>> 1
}
if ((e | 0) == (g | 0)) {
Dl(b, g, 1, g, g, 0, 0);
if (!(a[b >> 0] & 1)) f = 7;
else f = 8
} else if (f) f = 8;
else f = 7;
if ((f | 0) == 7) {
a[b >> 0] = (e << 1) + 2;
b = b + 1 | 0;
g = e + 1 | 0
} else if ((f | 0) == 8) {
f = c[b + 8 >> 2] | 0;
g = e + 1 | 0;
c[b + 4 >> 2] = g;
b = f
}
a[b + e >> 0] = d;
a[b + g >> 0] = 0;
return
}
function Bl(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
h = a[b >> 0] | 0;
if (!(h & 1)) f = 10;
else {
h = c[b >> 2] | 0;
f = (h & -2) + -1 | 0;
h = h & 255
}
if (!(h & 1)) g = (h & 255) >>> 1;
else g = c[b + 4 >> 2] | 0;
if ((f - g | 0) >>> 0 >= e >>> 0) {
if (e) {
if (!(h & 1)) f = b + 1 | 0;
else f = c[b + 8 >> 2] | 0;
ev(f + g | 0, d | 0, e | 0) | 0;
e = g + e | 0;
if (!(a[b >> 0] & 1)) a[b >> 0] = e << 1;
else c[b + 4 >> 2] = e;
a[f + e >> 0] = 0
}
} else Cl(b, f, e - f + g | 0, g, g, 0, e, d);
return b | 0
}
function Cl(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,
l = 0;
if ((-18 - d | 0) >>> 0 < e >>> 0) Jh(b);
if (!(a[b >> 0] & 1)) k = b + 1 | 0;
else k = c[b + 8 >> 2] | 0;
if (d >>> 0 < 2147483623) {
l = e + d | 0;
e = d << 1;
l = l >>> 0 < e >>> 0 ? e : l;
l = l >>> 0 < 11 ? 11 : l + 16 & -16
} else l = -17;
e = Mh(l) | 0;
if (g) ev(e | 0, k | 0, g | 0) | 0;
if (i) ev(e + g | 0, j | 0, i | 0) | 0;
j = f - h | 0;
if ((j | 0) != (g | 0)) ev(e + (i + g) | 0, k + (h + g) | 0, j - g | 0) | 0;
if ((d | 0) != 10) Ph(k);
c[b + 8 >> 2] = e;
c[b >> 2] = l | 1;
l = j + i | 0;
c[b + 4 >> 2] = l;
a[e + l >> 0] = 0;
return
}
function Dl(b, d, e, f, g, h, i) {
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;
if ((-17 - d | 0) >>> 0 < e >>> 0) Jh(b);
if (!(a[b >> 0] & 1)) j = b + 1 | 0;
else j = c[b + 8 >> 2] | 0;
if (d >>> 0 < 2147483623) {
e = e + d | 0;
k = d << 1;
e = e >>> 0 < k >>> 0 ? k : e;
e = e >>> 0 < 11 ? 11 : e + 16 & -16
} else e = -17;
k = Mh(e) | 0;
if (g) ev(k | 0, j | 0, g | 0) | 0;
f = f - h | 0;
if ((f | 0) != (g | 0)) ev(k + (i + g) | 0, j + (h + g) | 0, f - g | 0) | 0;
if ((d | 0) != 10) Ph(j);
c[b + 8 >> 2] = k;
c[b >> 2] = e | 1;
return
}
function El(b, d, e, f) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0,
h = 0,
i = 0;
h = a[b >> 0] | 0;
i = (h & 1) == 0;
if (i) g = (h & 255) >>> 1;
else g = c[b + 4 >> 2] | 0;
if (g >>> 0 < d >>> 0) zi(b);
if (i) i = 10;
else {
h = c[b >> 2] | 0;
i = (h & -2) + -1 | 0;
h = h & 255
}
if ((i - g | 0) >>> 0 >= f >>> 0) {
if (f) {
if (!(h & 1)) h = b + 1 | 0;
else h = c[b + 8 >> 2] | 0;
if ((g | 0) == (d | 0)) d = h + d | 0;
else {
i = h + d | 0;
fv(h + (f + d) | 0, i | 0, g - d | 0) | 0;
e = i >>> 0 <= e >>> 0 & (h + g | 0) >>> 0 > e >>> 0 ? e + f | 0 : e;
d = i
}
fv(d | 0, e | 0, f | 0) | 0;
g = g + f | 0;
if (!(a[b >> 0] & 1)) a[b >> 0] = g << 1;
else c[b + 4 >> 2] = g;
a[h + g >> 0] = 0
}
} else Cl(b, i, g + f - i | 0, g, d, 0, f, e);
return b | 0
}
function Fl(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return El(a, b, c, ik(c) | 0) | 0
}
function Gl(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0;
g = a[b >> 0] | 0;
if (!(g & 1)) {
g = (g & 255) >>> 1;
b = b + 1 | 0
} else {
g = c[b + 4 >> 2] | 0;
b = c[b + 8 >> 2] | 0
}
if (g >>> 0 > e >>> 0 ? (f = dk(b + e | 0, d & 255, g - e | 0) | 0, (f | 0) != 0) : 0) e = f - b | 0;
else e = -1;
return e | 0
}
function Hl(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;
i = a[b >> 0] | 0;
h = (i & 1) == 0;
if (h) i = (i & 255) >>> 1;
else i = c[b + 4 >> 2] | 0;
if ((g | 0) == -1 | i >>> 0 < d >>> 0) zi(b);
i = i - d | 0;
e = i >>> 0 < e >>> 0 ? i : e;
if (h) h = b + 1 | 0;
else h = c[b + 8 >> 2] | 0;
b = e >>> 0 > g >>> 0;
d = ek(h + d | 0, f, b ? g : e) | 0;
if (!d)
if (e >>> 0 < g >>> 0) d = -1;
else return b & 1 | 0;
return d | 0
}
function Il(a, b) {
a = a | 0;
b = b | 0;
return Hl(a, 0, -1, b, ik(b) | 0) | 0
}
function Jl(b, d, e, f) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0;
if (f >>> 0 > 4294967279) Jh(b);
if (f >>> 0 < 11) {
a[b >> 0] = e << 1;
b = b + 1 | 0
} else {
g = f + 16 & -16;
f = Mh(g) | 0;
c[b + 8 >> 2] = f;
c[b >> 2] = g | 1;
c[b + 4 >> 2] = e;
b = f
}
ev(b | 0, d | 0, e | 0) | 0;
a[b + e >> 0] = 0;
return
}
function Kl(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0;
if (e >>> 0 > 1073741807) Jh(b);
if (e >>> 0 < 2) {
a[b >> 0] = e << 1;
b = b + 4 | 0
} else {
g = e + 4 & -4;
f = Mh(g << 2) | 0;
c[b + 8 >> 2] = f;
c[b >> 2] = g | 1;
c[b + 4 >> 2] = e;
b = f
}
kk(b, d, e) | 0;
c[b + (e << 2) >> 2] = 0;
return
}
function Ll(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0;
if (d >>> 0 > 1073741807) Jh(b);
if (d >>> 0 < 2) {
a[b >> 0] = d << 1;
b = b + 4 | 0
} else {
g = d + 4 & -4;
f = Mh(g << 2) | 0;
c[b + 8 >> 2] = f;
c[b >> 2] = g | 1;
c[b + 4 >> 2] = d;
b = f
}
mk(b, e, d) | 0;
c[b + (d << 2) >> 2] = 0;
return
}
function Ml(b) {
b = b | 0;
if (a[b >> 0] & 1) Ph(c[b + 8 >> 2] | 0);
return
}
function Nl(a, b) {
a = a | 0;
b = b | 0;
return Ol(a, b, jk(b) | 0) | 0
}
function Ol(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
g = a[b >> 0] | 0;
if (!(g & 1)) f = 1;
else {
g = c[b >> 2] | 0;
f = (g & -2) + -1 | 0;
g = g & 255
}
h = (g & 1) == 0;
do
if (f >>> 0 >= e >>> 0) {
if (h) f = b + 4 | 0;
else f = c[b + 8 >> 2] | 0;
lk(f, d, e) | 0;
c[f + (e << 2) >> 2] = 0;
if (!(a[b >> 0] & 1)) {
a[b >> 0] = e << 1;
break
} else {
c[b + 4 >> 2] = e;
break
}
} else {
if (h) g = (g & 255) >>> 1;
else g = c[b + 4 >> 2] | 0;
Rl(b, f, e - f | 0, g, 0, g, e, d)
}
while (0);
return b | 0
}
function Pl(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
i = 0,
j = 0;
if (d >>> 0 > 1073741807) Jh(b);
f = a[b >> 0] | 0;
if (!(f & 1)) g = 1;
else {
f = c[b >> 2] | 0;
g = (f & -2) + -1 | 0;
f = f & 255
}
if (!(f & 1)) e = (f & 255) >>> 1;
else e = c[b + 4 >> 2] | 0;
d = e >>> 0 > d >>> 0 ? e : d;
if (d >>> 0 < 2) d = 1;
else d = (d + 4 & -4) + -1 | 0;
do
if ((d | 0) != (g | 0)) {
do
if ((d | 0) != 1) {
i = Mh((d << 2) + 4 | 0) | 0;
if (!(f & 1)) {
j = 1;
h = b + 4 | 0;
g = 0;
break
} else {
j = 1;
h = c[b + 8 >> 2] | 0;
g = 1;
break
}
} else {
i = b + 4 | 0;
j = 0;
h = c[b + 8 >> 2] | 0;
g = 1
}
while (0);
if (!(f & 1)) f = (f & 255) >>> 1;
else f = c[b + 4 >> 2] | 0;
kk(i, h, f + 1 | 0) | 0;
if (g) Ph(h);
if (j) {
c[b >> 2] = d + 1 | 1;
c[b + 4 >> 2] = e;
c[b + 8 >> 2] = i;
break
} else {
a[b >> 0] = e << 1;
break
}
}
while (0);
return
}
function Ql(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0;
e = a[b >> 0] | 0;
f = (e & 1) != 0;
if (f) {
g = (c[b >> 2] & -2) + -1 | 0;
e = c[b + 4 >> 2] | 0
} else {
g = 1;
e = (e & 255) >>> 1
}
if ((e | 0) == (g | 0)) {
Sl(b, g, 1, g, g, 0, 0);
if (!(a[b >> 0] & 1)) f = 7;
else f = 8
} else if (f) f = 8;
else f = 7;
if ((f | 0) == 7) {
a[b >> 0] = (e << 1) + 2;
b = b + 4 | 0;
g = e + 1 | 0
} else if ((f | 0) == 8) {
f = c[b + 8 >> 2] | 0;
g = e + 1 | 0;
c[b + 4 >> 2] = g;
b = f
}
c[b + (e << 2) >> 2] = d;
c[b + (g << 2) >> 2] = 0;
return
}
function Rl(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,
l = 0;
if ((1073741806 - d | 0) >>> 0 < e >>> 0) Jh(b);
if (!(a[b >> 0] & 1)) k = b + 4 | 0;
else k = c[b + 8 >> 2] | 0;
if (d >>> 0 < 536870887) {
l = e + d | 0;
e = d << 1;
l = l >>> 0 < e >>> 0 ? e : l;
l = l >>> 0 < 2 ? 2 : l + 4 & -4
} else l = 1073741807;
e = Mh(l << 2) | 0;
if (g) kk(e, k, g) | 0;
if (i) kk(e + (g << 2) | 0, j, i) | 0;
j = f - h | 0;
if ((j | 0) != (g | 0)) kk(e + (i + g << 2) | 0, k + (h + g << 2) | 0, j - g | 0) | 0;
if ((d | 0) != 1) Ph(k);
c[b + 8 >> 2] = e;
c[b >> 2] = l | 1;
l = j + i | 0;
c[b + 4 >> 2] = l;
c[e + (l << 2) >> 2] = 0;
return
}
function Sl(b, d, e, f, g, h, i) {
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;
if ((1073741807 - d | 0) >>> 0 < e >>> 0) Jh(b);
if (!(a[b >> 0] & 1)) j = b + 4 | 0;
else j = c[b + 8 >> 2] | 0;
if (d >>> 0 < 536870887) {
e = e + d | 0;
k = d << 1;
e = e >>> 0 < k >>> 0 ? k : e;
e = e >>> 0 < 2 ? 2 : e + 4 & -4
} else e = 1073741807;
k = Mh(e << 2) | 0;
if (g) kk(k, j, g) | 0;
f = f - h | 0;
if ((f | 0) != (g | 0)) kk(k + (i + g << 2) | 0, j + (h + g << 2) | 0, f - g | 0) | 0;
if ((d | 0) != 1) Ph(j);
c[b + 8 >> 2] = k;
c[b >> 2] = e | 1;
return
}
function Tl(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
var d = 0,
e = 0;
d = i;
i = i + 16 | 0;
e = d;
pl(e, 1178639, 4);
a = Xl(e, a, b, c) | 0;
sl(e);
i = d;
return a | 0
}
function Ul(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0;
e = i;
i = i + 16 | 0;
g = e;
f = e + 4 | 0;
c[f >> 2] = 0;
c[f + 4 >> 2] = 0;
c[f + 8 >> 2] = 0;
if (!(a[f >> 0] & 1)) h = 10;
else h = (c[f >> 2] & -2) + -1 | 0;
wl(f, h, 0);
k = a[f >> 0] | 0;
j = f + 1 | 0;
h = f + 8 | 0;
l = k;
k = (k & 1) == 0 ? (k & 255) >>> 1 : c[f + 4 >> 2] | 0;
while (1) {
l = (l & 1) == 0 ? j : c[h >> 2] | 0;
c[g >> 2] = d;
l = Fj(l, k + 1 | 0, 1178644, g) | 0;
if ((l | 0) > -1)
if (l >>> 0 > k >>> 0) k = l;
else break;
else k = k << 1 | 1;
wl(f, k, 0);
l = a[f >> 0] | 0
}
wl(f, l, 0);
c[b >> 2] = c[f >> 2];
c[b + 4 >> 2] = c[f + 4 >> 2];
c[b + 8 >> 2] = c[f + 8 >> 2];
c[f >> 2] = 0;
c[f + 4 >> 2] = 0;
c[f + 8 >> 2] = 0;
sl(f);
i = e;
return
}
function Vl(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0,
i = 0;
g = d;
f = e - g | 0;
if (f >>> 0 > 4294967279) Jh(b);
if (f >>> 0 < 11) {
a[b >> 0] = f << 1;
f = b + 1 | 0
} else {
i = f + 16 & -16;
h = Mh(i) | 0;
c[b + 8 >> 2] = h;
c[b >> 2] = i | 1;
c[b + 4 >> 2] = f;
f = h
}
g = e - g | 0;
if ((d | 0) != (e | 0)) {
b = f;
while (1) {
a[b >> 0] = a[d >> 0] | 0;
d = d + 1 | 0;
if ((d | 0) == (e | 0)) break;
else b = b + 1 | 0
}
}
a[f + g >> 0] = 0;
return
}
function Wl(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0,
i = 0;
f = d;
g = e - f | 0;
h = g >> 2;
if (h >>> 0 > 1073741807) Jh(b);
if (h >>> 0 < 2) {
a[b >> 0] = g >>> 1;
g = b + 4 | 0
} else {
i = h + 4 & -4;
g = Mh(i << 2) | 0;
c[b + 8 >> 2] = g;
c[b >> 2] = i | 1;
c[b + 4 >> 2] = h
}
f = (e - f | 0) >>> 2;
if ((d | 0) != (e | 0)) {
h = g;
while (1) {
c[h >> 2] = c[d >> 2];
d = d + 4 | 0;
if ((d | 0) == (e | 0)) break;
else h = h + 4 | 0
}
}
c[g + (f << 2) >> 2] = 0;
return
}
function Xl(b, d, e, f) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0,
h = 0,
j = 0,
k = 0,
l = 0;
g = i;
i = i + 16 | 0;
h = g;
d = (a[d >> 0] & 1) == 0 ? d + 1 | 0 : c[d + 8 >> 2] | 0;
k = Mi() | 0;
l = c[k >> 2] | 0;
c[k >> 2] = 0;
f = ck(d, h, f) | 0;
j = c[k >> 2] | 0;
c[k >> 2] = l;
if ((j | 0) == 34) Yl(b);
h = c[h >> 2] | 0;
if ((h | 0) == (d | 0)) Zl(b);
if (e) c[e >> 2] = h - d;
i = g;
return f | 0
}
function Yl(b) {
b = b | 0;
var d = 0;
d = i;
i = i + 16 | 0;
_l(d, b, 1178663);
Ej((a[d >> 0] & 1) == 0 ? d + 1 | 0 : c[d + 8 >> 2] | 0) | 0;
Ca()
}
function Zl(b) {
b = b | 0;
var d = 0;
d = i;
i = i + 16 | 0;
_l(d, b, 1178647);
Ej((a[d >> 0] & 1) == 0 ? d + 1 | 0 : c[d + 8 >> 2] | 0) | 0;
Ca()
}
function _l(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;
g = a[d >> 0] | 0;
h = (g & 1) == 0;
g = h ? (g & 255) >>> 1 : c[d + 4 >> 2] | 0;
f = ik(e) | 0;
Jl(b, h ? d + 1 | 0 : c[d + 8 >> 2] | 0, g, g + f | 0);
Bl(b, e, f) | 0;
return
}
function $l(a) {
a = a | 0;
if (!(c[a >> 2] | 0)) return;
else Wh()
}
function am(a) {
a = a | 0;
Ha(c[a >> 2] | 0, 0) | 0;
c[a >> 2] = 0;
return
}
function bm() {
var a = 0,
b = 0,
d = 0;
b = i;
i = i + 16 | 0;
a = b;
(ab(1, a | 0) | 0) != 0;
d = c[a >> 2] | 0;
a = c[a + 4 >> 2] | 0;
d = pv(d | 0, ((d | 0) < 0) << 31 >> 31 | 0, 1e9, 0) | 0;
a = hv(d | 0, C | 0, a | 0, ((a | 0) < 0) << 31 >> 31 | 0) | 0;
i = b;
return a | 0
}
function cm(a, b) {
a = a | 0;
b = b | 0;
c[a + 16 >> 2] = (c[a + 24 >> 2] | 0) == 0 | b;
return
}
function dm(a) {
a = a | 0;
em(a);
return
}
function em(a) {
a = a | 0;
c[a >> 2] = 1100488;
fm(a, 0);
Gr(a + 28 | 0);
Ak(c[a + 32 >> 2] | 0);
Ak(c[a + 36 >> 2] | 0);
Ak(c[a + 48 >> 2] | 0);
Ak(c[a + 60 >> 2] | 0);
return
}
function fm(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0;
f = c[a + 40 >> 2] | 0;
d = a + 32 | 0;
e = a + 36 | 0;
if (f)
do {
f = f + -1 | 0;
Hb[c[(c[d >> 2] | 0) + (f << 2) >> 2] & 0](b, a, c[(c[e >> 2] | 0) + (f << 2) >> 2] | 0)
} while ((f | 0) != 0);
return
}
function gm(a) {
a = a | 0;
var b = 0,
d = 0;
d = i;
i = i + 16 | 0;
b = d;
Fr(b, a + 28 | 0);
i = d;
return c[b >> 2] | 0
}
function hm(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
c[a + 24 >> 2] = b;
c[a + 16 >> 2] = (b | 0) == 0 & 1;
c[a + 20 >> 2] = 0;
c[a + 4 >> 2] = 4098;
c[a + 12 >> 2] = 0;
c[a + 8 >> 2] = 6;
b = a + 28 | 0;
d = a + 32 | 0;
a = d + 40 | 0;
do {
c[d >> 2] = 0;
d = d + 4 | 0
} while ((d | 0) < (a | 0));
Er(b);
return
}
function im(a) {
a = a | 0;
c[a >> 2] = 1100200;
Gr(a + 4 | 0);
return
}
function jm(a) {
a = a | 0;
c[a >> 2] = 1100200;
Gr(a + 4 | 0);
Ph(a);
return
}
function km(a) {
a = a | 0;
c[a >> 2] = 1100200;
Er(a + 4 | 0);
a = a + 8 | 0;
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;
return
}
function lm(a, b) {
a = a | 0;
b = b | 0;
return
}
function mm(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return a | 0
}
function nm(a, b, d, e, f, g) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
g = a;
c[g >> 2] = 0;
c[g + 4 >> 2] = 0;
g = a + 8 | 0;
c[g >> 2] = -1;
c[g + 4 >> 2] = -1;
return
}
function om(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
e = a;
c[e >> 2] = 0;
c[e + 4 >> 2] = 0;
e = a + 8 | 0;
c[e >> 2] = -1;
c[e + 4 >> 2] = -1;
return
}
function pm(a) {
a = a | 0;
return 0
}
function qm(a) {
a = a | 0;
return 0
}
function rm(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0,
i = 0;
g = b + 12 | 0;
f = b + 16 | 0;
a: do
if ((e | 0) > 0) {
h = 0;
while (1) {
i = c[g >> 2] | 0;
if (i >>> 0 < (c[f >> 2] | 0) >>> 0) {
c[g >> 2] = i + 1;
i = a[i >> 0] | 0
} else {
i = Gb[c[(c[b >> 2] | 0) + 40 >> 2] & 127](b) | 0;
if ((i | 0) == -1) break a;
i = i & 255
}
a[d >> 0] = i;
h = h + 1 | 0;
if ((h | 0) < (e | 0)) d = d + 1 | 0;
else break
}
} else h = 0;
while (0);
return h | 0
}
function sm(a) {
a = a | 0;
return -1
}
function tm(a) {
a = a | 0;
var b = 0;
if ((Gb[c[(c[a >> 2] | 0) + 36 >> 2] & 127](a) | 0) == -1) a = -1;
else {
b = a + 12 | 0;
a = c[b >> 2] | 0;
c[b >> 2] = a + 1;
a = d[a >> 0] | 0
}
return a | 0
}
function um(a, b) {
a = a | 0;
b = b | 0;
return -1
}
function vm(b, e, f) {
b = b | 0;
e = e | 0;
f = f | 0;
var g = 0,
h = 0,
i = 0,
j = 0,
k = 0;
g = b + 24 | 0;
h = b + 28 | 0;
a: do
if ((f | 0) > 0) {
i = 0;
while (1) {
j = c[g >> 2] | 0;
if (j >>> 0 >= (c[h >> 2] | 0) >>> 0) {
if ((Mb[c[(c[b >> 2] | 0) + 52 >> 2] & 63](b, d[e >> 0] | 0) | 0) == -1) break a
} else {
k = a[e >> 0] | 0;
c[g >> 2] = j + 1;
a[j >> 0] = k
}
i = i + 1 | 0;
if ((i | 0) < (f | 0)) e = e + 1 | 0;
else break
}
} else i = 0;
while (0);
return i | 0
}
function wm(a, b) {
a = a | 0;
b = b | 0;
return -1
}
function xm(a) {
a = a | 0;
c[a >> 2] = 1100264;
Gr(a + 4 | 0);
return
}
function ym(a) {
a = a | 0;
c[a >> 2] = 1100264;
Gr(a + 4 | 0);
Ph(a);
return
}
function zm(a) {
a = a | 0;
c[a >> 2] = 1100264;
Er(a + 4 | 0);
a = a + 8 | 0;
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;
return
}
function Am(a, b) {
a = a | 0;
b = b | 0;
return
}
function Bm(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return a | 0
}
function Cm(a, b, d, e, f, g) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
g = a;
c[g >> 2] = 0;
c[g + 4 >> 2] = 0;
g = a + 8 | 0;
c[g >> 2] = -1;
c[g + 4 >> 2] = -1;
return
}
function Dm(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
e = a;
c[e >> 2] = 0;
c[e + 4 >> 2] = 0;
e = a + 8 | 0;
c[e >> 2] = -1;
c[e + 4 >> 2] = -1;
return
}
function Em(a) {
a = a | 0;
return 0
}
function Fm(a) {
a = a | 0;
return 0
}
function Gm(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0;
f = a + 12 | 0;
e = a + 16 | 0;
a: do
if ((d | 0) > 0) {
g = 0;
while (1) {
h = c[f >> 2] | 0;
if (h >>> 0 >= (c[e >> 2] | 0) >>> 0) {
h = Gb[c[(c[a >> 2] | 0) + 40 >> 2] & 127](a) | 0;
if ((h | 0) == -1) break a
} else {
c[f >> 2] = h + 4;
h = c[h >> 2] | 0
}
c[b >> 2] = h;
g = g + 1 | 0;
if ((g | 0) < (d | 0)) b = b + 4 | 0;
else break
}
} else g = 0;
while (0);
return g | 0
}
function Hm(a) {
a = a | 0;
return -1
}
function Im(a) {
a = a | 0;
var b = 0;
if ((Gb[c[(c[a >> 2] | 0) + 36 >> 2] & 127](a) | 0) == -1) a = -1;
else {
b = a + 12 | 0;
a = c[b >> 2] | 0;
c[b >> 2] = a + 4;
a = c[a >> 2] | 0
}
return a | 0
}
function Jm(a, b) {
a = a | 0;
b = b | 0;
return -1
}
function Km(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
i = 0;
e = a + 24 | 0;
f = a + 28 | 0;
a: do
if ((d | 0) > 0) {
g = 0;
while (1) {
h = c[e >> 2] | 0;
if (h >>> 0 >= (c[f >> 2] | 0) >>> 0) {
if ((Mb[c[(c[a >> 2] | 0) + 52 >> 2] & 63](a, c[b >> 2] | 0) | 0) == -1) break a
} else {
i = c[b >> 2] | 0;
c[e >> 2] = h + 4;
c[h >> 2] = i
}
g = g + 1 | 0;
if ((g | 0) < (d | 0)) b = b + 4 | 0;
else break
}
} else g = 0;
while (0);
return g | 0
}
function Lm(a, b) {
a = a | 0;
b = b | 0;
return -1
}
function Mm(a, b) {
a = a | 0;
b = b | 0;
return
}
function Nm(a) {
a = a | 0;
em(a + 8 | 0);
return
}
function Om(a) {
a = a | 0;
em(a + ((c[(c[a >> 2] | 0) + -12 >> 2] | 0) + 8) | 0);
return
}
function Pm(a) {
a = a | 0;
em(a + 8 | 0);
Ph(a);
return
}
function Qm(a) {
a = a | 0;
Pm(a + (c[(c[a >> 2] | 0) + -12 >> 2] | 0) | 0);
return
}
function Rm(e, f, g) {
e = e | 0;
f = f | 0;
g = g | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0;
j = i;
i = i + 16 | 0;
l = j;
a[e >> 0] = 0;
m = c[(c[f >> 2] | 0) + -12 >> 2] | 0;
n = f + (m + 16) | 0;
o = c[n >> 2] | 0;
if (!o) {
m = c[f + (m + 72) >> 2] | 0;
if (m) Sm(m) | 0;
do
if (!g ? (k = c[(c[f >> 2] | 0) + -12 >> 2] | 0, (c[f + (k + 4) >> 2] & 4096 | 0) != 0) : 0) {
c[l >> 2] = gm(f + k | 0) | 0;
g = Jr(l, 1101600) | 0;
Gr(l);
k = c[f + ((c[(c[f >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0;
g = g + 8 | 0;
a: do
if (!k) {
k = 0;
h = 9
} else
while (1) {
l = k;
if ((c[l + 12 >> 2] | 0) == (c[l + 16 >> 2] | 0)) {
o = (Gb[c[(c[k >> 2] | 0) + 36 >> 2] & 127](l) | 0) == -1;
k = o ? 0 : k;
if (o) {
h = 9;
break a
}
}
n = k;
m = n + 12 | 0;
o = c[m >> 2] | 0;
l = n + 16 | 0;
if ((o | 0) == (c[l >> 2] | 0)) o = Gb[c[(c[k >> 2] | 0) + 36 >> 2] & 127](n) | 0;
else o = d[o >> 0] | 0;
if ((o & 255) << 24 >> 24 <= -1) break a;
if (!(b[(c[g >> 2] | 0) + (o << 24 >> 24 << 1) >> 1] & 8192)) break a;
o = c[m >> 2] | 0;
if ((o | 0) == (c[l >> 2] | 0)) Gb[c[(c[k >> 2] | 0) + 40 >> 2] & 127](n) | 0;
else c[m >> 2] = o + 1;
if (!k) {
k = 0;
h = 9;
break
}
}
while (0);
if ((h | 0) == 9) n = k;
if (k) {
if ((c[n + 12 >> 2] | 0) != (c[n + 16 >> 2] | 0)) break;
if ((Gb[c[(c[k >> 2] | 0) + 36 >> 2] & 127](n) | 0) != -1) break
}
n = c[(c[f >> 2] | 0) + -12 >> 2] | 0;
o = f + (n + 16) | 0;
c[o >> 2] = c[o >> 2] | (c[f + (n + 24) >> 2] | 0) == 0 | 6
}
while (0);
a[e >> 0] = (c[f + ((c[(c[f >> 2] | 0) + -12 >> 2] | 0) + 16) >> 2] | 0) == 0 & 1
} else c[n >> 2] = o | (c[f + (m + 24) >> 2] | 0) == 0 | 4;
i = j;
return
}
function Sm(b) {
b = b | 0;
var d = 0,
e = 0,
f = 0;
d = i;
i = i + 16 | 0;
e = d;
if (c[b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0) {
cn(e, b);
if ((a[e >> 0] | 0) != 0 ? (f = c[b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0, (Gb[c[(c[f >> 2] | 0) + 24 >> 2] & 127](f) | 0) == -1) : 0) {
f = b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 16) | 0;
c[f >> 2] = c[f >> 2] | 1
}
dn(e)
}
i = d;
return b | 0
}
function Tm(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0;
e = i;
i = i + 32 | 0;
j = e + 24 | 0;
k = e + 20 | 0;
m = e + 16 | 0;
l = e + 12 | 0;
n = e + 28 | 0;
f = e + 8 | 0;
g = e + 4 | 0;
h = e;
Rm(n, b, 0);
if (a[n >> 0] | 0) {
c[f >> 2] = 0;
c[h >> 2] = gm(b + (c[(c[b >> 2] | 0) + -12 >> 2] | 0) | 0) | 0;
o = Jr(h, 1100640) | 0;
q = c[(c[b >> 2] | 0) + -12 >> 2] | 0;
n = b + q | 0;
p = c[(c[o >> 2] | 0) + 16 >> 2] | 0;
c[m >> 2] = c[b + (q + 24) >> 2];
c[l >> 2] = 0;
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
Eb[p & 63](o, k, j, n, f, g) | 0;
Gr(h);
c[d >> 2] = c[g >> 2];
d = c[(c[b >> 2] | 0) + -12 >> 2] | 0;
n = b + (d + 16) | 0;
c[n >> 2] = c[n >> 2] | c[f >> 2] | (c[b + (d + 24) >> 2] | 0) == 0
}
i = e;
return b | 0
}
function Um(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0;
e = i;
i = i + 32 | 0;
h = e + 20 | 0;
j = e + 16 | 0;
l = e + 12 | 0;
k = e + 8 | 0;
m = e + 24 | 0;
f = e + 4 | 0;
g = e;
Rm(m, b, 0);
if (a[m >> 0] | 0) {
c[f >> 2] = 0;
c[g >> 2] = gm(b + (c[(c[b >> 2] | 0) + -12 >> 2] | 0) | 0) | 0;
n = Jr(g, 1100640) | 0;
p = c[(c[b >> 2] | 0) + -12 >> 2] | 0;
m = b + p | 0;
o = c[(c[n >> 2] | 0) + 20 >> 2] | 0;
c[l >> 2] = c[b + (p + 24) >> 2];
c[k >> 2] = 0;
c[j >> 2] = c[l >> 2];
c[h >> 2] = c[k >> 2];
Eb[o & 63](n, j, h, m, f, d) | 0;
Gr(g);
d = c[(c[b >> 2] | 0) + -12 >> 2] | 0;
m = b + (d + 16) | 0;
c[m >> 2] = c[m >> 2] | c[f >> 2] | (c[b + (d + 24) >> 2] | 0) == 0
}
i = e;
return b | 0
}
function Vm(a) {
a = a | 0;
em(a + 8 | 0);
return
}
function Wm(a) {
a = a | 0;
em(a + ((c[(c[a >> 2] | 0) + -12 >> 2] | 0) + 8) | 0);
return
}
function Xm(a) {
a = a | 0;
em(a + 8 | 0);
Ph(a);
return
}
function Ym(a) {
a = a | 0;
Xm(a + (c[(c[a >> 2] | 0) + -12 >> 2] | 0) | 0);
return
}
function Zm(a, b) {
a = a | 0;
b = b | 0;
return
}
function _m(a) {
a = a | 0;
em(a + 4 | 0);
return
}
function $m(a) {
a = a | 0;
em(a + ((c[(c[a >> 2] | 0) + -12 >> 2] | 0) + 4) | 0);
return
}
function an(a) {
a = a | 0;
em(a + 4 | 0);
Ph(a);
return
}
function bn(a) {
a = a | 0;
an(a + (c[(c[a >> 2] | 0) + -12 >> 2] | 0) | 0);
return
}
function cn(b, d) {
b = b | 0;
d = d | 0;
var e = 0;
a[b >> 0] = 0;
c[b + 4 >> 2] = d;
e = c[(c[d >> 2] | 0) + -12 >> 2] | 0;
if (!(c[d + (e + 16) >> 2] | 0)) {
e = c[d + (e + 72) >> 2] | 0;
if (e) Sm(e) | 0;
a[b >> 0] = 1
}
return
}
function dn(a) {
a = a | 0;
var b = 0,
d = 0;
a = a + 4 | 0;
d = c[a >> 2] | 0;
b = c[(c[d >> 2] | 0) + -12 >> 2] | 0;
if (((((c[d + (b + 24) >> 2] | 0) != 0 ? (c[d + (b + 16) >> 2] | 0) == 0 : 0) ? (c[d + (b + 4) >> 2] & 8192 | 0) != 0 : 0) ? !(Sa() | 0) : 0) ? (d = c[a >> 2] | 0, d = c[d + ((c[(c[d >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0, (Gb[c[(c[d >> 2] | 0) + 24 >> 2] & 127](d) | 0) == -1) : 0) {
d = c[a >> 2] | 0;
d = d + ((c[(c[d >> 2] | 0) + -12 >> 2] | 0) + 16) | 0;
c[d >> 2] = c[d >> 2] | 1
}
return
}
function en(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
e = i;
i = i + 32 | 0;
g = e + 20 | 0;
f = e + 16 | 0;
j = e + 8 | 0;
k = e;
cn(j, b);
if (a[j >> 0] | 0) {
c[k >> 2] = gm(b + (c[(c[b >> 2] | 0) + -12 >> 2] | 0) | 0) | 0;
h = Jr(k, 1100772) | 0;
Gr(k);
m = c[(c[b >> 2] | 0) + -12 >> 2] | 0;
k = c[b + (m + 24) >> 2] | 0;
l = b + m | 0;
m = b + (m + 76) | 0;
n = c[m >> 2] | 0;
if ((n | 0) == -1) {
c[g >> 2] = gm(l) | 0;
n = Jr(g, 1101600) | 0;
n = Mb[c[(c[n >> 2] | 0) + 28 >> 2] & 63](n, 32) | 0;
Gr(g);
n = n << 24 >> 24;
c[m >> 2] = n
}
n = n & 255;
m = c[(c[h >> 2] | 0) + 16 >> 2] | 0;
c[f >> 2] = k;
c[g >> 2] = c[f >> 2];
if (!(Nb[m & 31](h, g, l, n, d) | 0)) {
n = b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 16) | 0;
c[n >> 2] = c[n >> 2] | 5
}
}
dn(j);
i = e;
return b | 0
}
function fn(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
e = i;
i = i + 32 | 0;
g = e + 20 | 0;
f = e + 16 | 0;
j = e + 8 | 0;
k = e;
cn(j, b);
if (a[j >> 0] | 0) {
c[k >> 2] = gm(b + (c[(c[b >> 2] | 0) + -12 >> 2] | 0) | 0) | 0;
h = Jr(k, 1100772) | 0;
Gr(k);
m = c[(c[b >> 2] | 0) + -12 >> 2] | 0;
k = c[b + (m + 24) >> 2] | 0;
l = b + m | 0;
m = b + (m + 76) | 0;
n = c[m >> 2] | 0;
if ((n | 0) == -1) {
c[g >> 2] = gm(l) | 0;
n = Jr(g, 1101600) | 0;
n = Mb[c[(c[n >> 2] | 0) + 28 >> 2] & 63](n, 32) | 0;
Gr(g);
n = n << 24 >> 24;
c[m >> 2] = n
}
n = n & 255;
m = c[(c[h >> 2] | 0) + 24 >> 2] | 0;
c[f >> 2] = k;
c[g >> 2] = c[f >> 2];
if (!(Nb[m & 31](h, g, l, n, d) | 0)) {
n = b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 16) | 0;
c[n >> 2] = c[n >> 2] | 5
}
}
dn(j);
i = e;
return b | 0
}
function gn(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0;
f = i;
i = i + 32 | 0;
h = f + 20 | 0;
g = f + 16 | 0;
k = f + 8 | 0;
l = f;
cn(k, b);
if (a[k >> 0] | 0) {
c[l >> 2] = gm(b + (c[(c[b >> 2] | 0) + -12 >> 2] | 0) | 0) | 0;
j = Jr(l, 1100772) | 0;
Gr(l);
n = c[(c[b >> 2] | 0) + -12 >> 2] | 0;
l = c[b + (n + 24) >> 2] | 0;
m = b + n | 0;
n = b + (n + 76) | 0;
o = c[n >> 2] | 0;
if ((o | 0) == -1) {
c[h >> 2] = gm(m) | 0;
o = Jr(h, 1101600) | 0;
o = Mb[c[(c[o >> 2] | 0) + 28 >> 2] & 63](o, 32) | 0;
Gr(h);
o = o << 24 >> 24;
c[n >> 2] = o
}
o = o & 255;
n = c[(c[j >> 2] | 0) + 20 >> 2] | 0;
c[g >> 2] = l;
c[h >> 2] = c[g >> 2];
if (!(Eb[n & 63](j, h, m, o, d, e) | 0)) {
o = b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 16) | 0;
c[o >> 2] = c[o >> 2] | 5
}
}
dn(k);
i = f;
return b | 0
}
function hn(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0;
f = i;
i = i + 32 | 0;
h = f + 20 | 0;
g = f + 16 | 0;
k = f + 8 | 0;
l = f;
cn(k, b);
if (a[k >> 0] | 0) {
c[l >> 2] = gm(b + (c[(c[b >> 2] | 0) + -12 >> 2] | 0) | 0) | 0;
j = Jr(l, 1100772) | 0;
Gr(l);
n = c[(c[b >> 2] | 0) + -12 >> 2] | 0;
l = c[b + (n + 24) >> 2] | 0;
m = b + n | 0;
n = b + (n + 76) | 0;
o = c[n >> 2] | 0;
if ((o | 0) == -1) {
c[h >> 2] = gm(m) | 0;
o = Jr(h, 1101600) | 0;
o = Mb[c[(c[o >> 2] | 0) + 28 >> 2] & 63](o, 32) | 0;
Gr(h);
o = o << 24 >> 24;
c[n >> 2] = o
}
o = o & 255;
n = c[(c[j >> 2] | 0) + 28 >> 2] | 0;
c[g >> 2] = l;
c[h >> 2] = c[g >> 2];
if (!(Eb[n & 63](j, h, m, o, d, e) | 0)) {
o = b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 16) | 0;
c[o >> 2] = c[o >> 2] | 5
}
}
dn(k);
i = f;
return b | 0
}
function jn(b, d) {
b = b | 0;
d = +d;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
e = i;
i = i + 32 | 0;
g = e + 20 | 0;
f = e + 16 | 0;
j = e + 8 | 0;
k = e;
cn(j, b);
if (a[j >> 0] | 0) {
c[k >> 2] = gm(b + (c[(c[b >> 2] | 0) + -12 >> 2] | 0) | 0) | 0;
h = Jr(k, 1100772) | 0;
Gr(k);
m = c[(c[b >> 2] | 0) + -12 >> 2] | 0;
k = c[b + (m + 24) >> 2] | 0;
l = b + m | 0;
m = b + (m + 76) | 0;
n = c[m >> 2] | 0;
if ((n | 0) == -1) {
c[g >> 2] = gm(l) | 0;
n = Jr(g, 1101600) | 0;
n = Mb[c[(c[n >> 2] | 0) + 28 >> 2] & 63](n, 32) | 0;
Gr(g);
n = n << 24 >> 24;
c[m >> 2] = n
}
n = n & 255;
m = c[(c[h >> 2] | 0) + 32 >> 2] | 0;
c[f >> 2] = k;
c[g >> 2] = c[f >> 2];
if (!(Fb[m & 7](h, g, l, n, d) | 0)) {
n = b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 16) | 0;
c[n >> 2] = c[n >> 2] | 5
}
}
dn(j);
i = e;
return b | 0
}
function kn(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0;
f = i;
i = i + 16 | 0;
e = f;
cn(e, b);
a: do
if (a[e >> 0] | 0) {
g = c[b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0;
h = g;
do
if (g) {
k = h + 24 | 0;
j = c[k >> 2] | 0;
if ((j | 0) == (c[h + 28 >> 2] | 0))
if ((Mb[c[(c[g >> 2] | 0) + 52 >> 2] & 63](h, d & 255) | 0) == -1) break;
else break a;
else {
c[k >> 2] = j + 1;
a[j >> 0] = d;
break a
}
}
while (0);
k = b + ((c[(c[b >> 2] | 0) + -12 >> 2] | 0) + 16) | 0;
c[k >> 2] = c[k >> 2] | 1
}
while (0);
dn(e);
i = f;
return b | 0
}
function ln(a) {
a = a | 0;
em(a + 4 | 0);
return
}
function mn(a) {
a = a | 0;
em(a + ((c[(c[a >> 2] | 0) + -12 >> 2] | 0) + 4) | 0);
return
}
function nn(a) {
a = a | 0;
em(a + 4 | 0);
Ph(a);
return
}
function on(a) {
a = a | 0;
nn(a + (c[(c[a >> 2] | 0) + -12 >> 2] | 0) | 0);
return
}
function pn(a, b) {
a = a | 0;
b = b | 0;
return
}
function qn(a) {
a = a | 0;
em(a + 12 | 0);
return
}
function rn(a) {
a = a | 0;
em(a + -8 + 12 | 0);
return
}
function sn(a) {
a = a | 0;
em(a + ((c[(c[a >> 2] | 0) + -12 >> 2] | 0) + 12) | 0);
return
}
function tn(a) {
a = a | 0;
em(a + 12 | 0);
Ph(a);
return
}
function un(a) {
a = a | 0;
tn(a + -8 | 0);
return
}
function vn(a) {
a = a | 0;
tn(a + (c[(c[a >> 2] | 0) + -12 >> 2] | 0) | 0);
return
}
function wn(a) {
a = a | 0;
em(a);
Ph(a);
return
}
function xn(a) {
a = a | 0;
return
}
function yn(a) {
a = a | 0;
return
}
function zn(a) {
a = a | 0;
Ph(a);
return
}
function An(b, c, d, e, f) {
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0,
h = 0;
a: do
if ((e | 0) == (f | 0)) g = 6;
else
while (1) {
if ((c | 0) == (d | 0)) {
d = -1;
break a
}
b = a[c >> 0] | 0;
h = a[e >> 0] | 0;
if (b << 24 >> 24 < h << 24 >> 24) {
d = -1;
break a
}
if (h << 24 >> 24 < b << 24 >> 24) {
d = 1;
break a
}
c = c + 1 | 0;
e = e + 1 | 0;
if ((e | 0) == (f | 0)) {
g = 6;
break
}
}
while (0);
if ((g | 0) == 6) d = (c | 0) != (d | 0) & 1;
return d | 0
}
function Bn(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
Vl(a, c, d);
return
}
function Cn(b, c, d) {
b = b | 0;
c = c | 0;
d = d | 0;
var e = 0;
if ((c | 0) == (d | 0)) b = 0;
else {
b = 0;
do {
b = (a[c >> 0] | 0) + (b << 4) | 0;
e = b & -268435456;
b = (e >>> 24 | e) ^ b;
c = c + 1 | 0
} while ((c | 0) != (d | 0))
}
return b | 0
}
function Dn(a) {
a = a | 0;
return
}
function En(a) {
a = a | 0;
Ph(a);
return
}
function Fn(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;
a: do
if ((e | 0) == (f | 0)) g = 6;
else
while (1) {
if ((b | 0) == (d | 0)) {
d = -1;
break a
}
a = c[b >> 2] | 0;
h = c[e >> 2] | 0;
if ((a | 0) < (h | 0)) {
d = -1;
break a
}
if ((h | 0) < (a | 0)) {
d = 1;
break a
}
b = b + 4 | 0;
e = e + 4 | 0;
if ((e | 0) == (f | 0)) {
g = 6;
break
}
}
while (0);
if ((g | 0) == 6) d = (b | 0) != (d | 0) & 1;
return d | 0
}
function Gn(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
Wl(a, c, d);
return
}
function Hn(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0;
if ((b | 0) == (d | 0)) a = 0;
else {
a = 0;
do {
a = (c[b >> 2] | 0) + (a << 4) | 0;
e = a & -268435456;
a = (e >>> 24 | e) ^ a;
b = b + 4 | 0
} while ((b | 0) != (d | 0))
}
return a | 0
}
function In(a) {
a = a | 0;
return
}
function Jn(a) {
a = a | 0;
Ph(a);
return
}
function Kn(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 j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0;
j = i;
i = i + 64 | 0;
r = j + 56 | 0;
s = j + 48 | 0;
k = j + 52 | 0;
m = j + 44 | 0;
l = j + 40 | 0;
q = j + 36 | 0;
p = j + 32 | 0;
n = j + 8 | 0;
o = j;
a: do
if (!(c[f + 4 >> 2] & 1)) {
c[k >> 2] = -1;
q = c[(c[b >> 2] | 0) + 16 >> 2] | 0;
c[m >> 2] = c[d >> 2];
c[l >> 2] = c[e >> 2];
c[s >> 2] = c[m >> 2];
c[r >> 2] = c[l >> 2];
l = Eb[q & 63](b, s, r, f, g, k) | 0;
c[d >> 2] = l;
switch (c[k >> 2] | 0) {
case 0:
{
a[h >> 0] = 0;
break a
};
case 1:
{
a[h >> 0] = 1;
break a
};
default:
{
a[h >> 0] = 1;c[g >> 2] = 4;
break a
}
}
} else {
s = gm(f) | 0;
c[q >> 2] = s;
l = Jr(q, 1101600) | 0;
av(s) | 0;
s = gm(f) | 0;
c[p >> 2] = s;
f = Jr(p, 1101740) | 0;
av(s) | 0;
Db[c[(c[f >> 2] | 0) + 24 >> 2] & 63](n, f);
Db[c[(c[f >> 2] | 0) + 28 >> 2] & 63](n + 12 | 0, f);
c[o >> 2] = c[e >> 2];
f = n + 24 | 0;
c[r >> 2] = c[o >> 2];
a[h >> 0] = (vt(d, r, n, f, l, g, 1) | 0) == (n | 0) & 1;
l = c[d >> 2] | 0;
sl(n + 12 | 0);
sl(n)
}
while (0);
i = j;
return l | 0
}
function Ln(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = wt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function Mn(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = xt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function Nn(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = yt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function On(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = zt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function Pn(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = At(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function Qn(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Bt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function Rn(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Ct(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function Sn(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Dt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function Tn(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Et(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function Un(b, e, f, g, h, j) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
j = j | 0;
var 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 = i;
i = i + 240 | 0;
o = b;
q = b + 208 | 0;
m = b + 32 | 0;
z = b + 28 | 0;
l = b + 16 | 0;
n = b + 12 | 0;
s = b + 48 | 0;
r = b + 8 | 0;
t = b + 4 | 0;
c[m >> 2] = 0;
c[m + 4 >> 2] = 0;
c[m + 8 >> 2] = 0;
A = gm(g) | 0;
c[z >> 2] = A;
z = Jr(z, 1101600) | 0;
Kb[c[(c[z >> 2] | 0) + 32 >> 2] & 7](z, 1179104, 1179130, q) | 0;
av(A) | 0;
c[l >> 2] = 0;
c[l + 4 >> 2] = 0;
c[l + 8 >> 2] = 0;
if (!(a[l >> 0] & 1)) g = 10;
else g = (c[l >> 2] & -2) + -1 | 0;
wl(l, g, 0);
g = l + 8 | 0;
p = l + 1 | 0;
x = (a[l >> 0] & 1) == 0 ? p : c[g >> 2] | 0;
c[n >> 2] = x;
c[r >> 2] = s;
c[t >> 2] = 0;
u = l + 4 | 0;
v = c[e >> 2] | 0;
a: while (1) {
if (v) {
if ((c[v + 12 >> 2] | 0) == (c[v + 16 >> 2] | 0) ? (Gb[c[(c[v >> 2] | 0) + 36 >> 2] & 127](v) | 0) == -1 : 0) {
c[e >> 2] = 0;
v = 0
}
} else v = 0;
y = (v | 0) == 0;
w = c[f >> 2] | 0;
do
if (w) {
if ((c[w + 12 >> 2] | 0) != (c[w + 16 >> 2] | 0))
if (y) break;
else break a;
if ((Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) != -1)
if (y) break;
else break a;
else {
c[f >> 2] = 0;
k = 13;
break
}
} else k = 13;
while (0);
if ((k | 0) == 13) {
k = 0;
if (y) {
w = 0;
break
} else w = 0
}
y = a[l >> 0] | 0;
y = (y & 1) == 0 ? (y & 255) >>> 1 : c[u >> 2] | 0;
if ((c[n >> 2] | 0) == (x + y | 0)) {
wl(l, y << 1, 0);
if (!(a[l >> 0] & 1)) x = 10;
else x = (c[l >> 2] & -2) + -1 | 0;
wl(l, x, 0);
x = (a[l >> 0] & 1) == 0 ? p : c[g >> 2] | 0;
c[n >> 2] = x + y
}
z = v + 12 | 0;
A = c[z >> 2] | 0;
y = v + 16 | 0;
if ((A | 0) == (c[y >> 2] | 0)) A = Gb[c[(c[v >> 2] | 0) + 36 >> 2] & 127](v) | 0;
else A = d[A >> 0] | 0;
if (Vn(A & 255, 16, x, n, t, 0, m, s, r, q) | 0) break;
w = c[z >> 2] | 0;
if ((w | 0) == (c[y >> 2] | 0)) {
Gb[c[(c[v >> 2] | 0) + 40 >> 2] & 127](v) | 0;
continue
} else {
c[z >> 2] = w + 1;
continue
}
}
wl(l, (c[n >> 2] | 0) - x | 0, 0);
z = (a[l >> 0] & 1) == 0 ? p : c[g >> 2] | 0;
A = Wn() | 0;
c[o >> 2] = j;
if ((Ft(z, A, 1180488, o) | 0) != 1) c[h >> 2] = 4;
if (v) {
if ((c[v + 12 >> 2] | 0) == (c[v + 16 >> 2] | 0) ? (Gb[c[(c[v >> 2] | 0) + 36 >> 2] & 127](v) | 0) == -1 : 0) {
c[e >> 2] = 0;
v = 0
}
} else v = 0;
j = (v | 0) == 0;
do
if (w) {
if ((c[w + 12 >> 2] | 0) == (c[w + 16 >> 2] | 0) ? (Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0) == -1 : 0) {
c[f >> 2] = 0;
k = 37;
break
}
if (!j) k = 38
} else k = 37;
while (0);
if ((k | 0) == 37 ? j : 0) k = 38;
if ((k | 0) == 38) c[h >> 2] = c[h >> 2] | 2;
A = c[e >> 2] | 0;
sl(l);
sl(m);
i = b;
return A | 0
}
function Vn(b, d, e, f, g, h, i, j, k, l) {
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;
l = l | 0;
var m = 0,
n = 0,
o = 0,
p = 0;
m = c[f >> 2] | 0;
n = (m | 0) == (e | 0);
do
if (n) {
p = (a[l + 24 >> 0] | 0) == b << 24 >> 24;
if (!p ? (a[l + 25 >> 0] | 0) != b << 24 >> 24 : 0) {
o = 5;
break
}
c[f >> 2] = e + 1;
a[e >> 0] = p ? 43 : 45;
c[g >> 2] = 0;
g = 0
} else o = 5;
while (0);
a: do
if ((o | 0) == 5) {
p = a[i >> 0] | 0;
if (b << 24 >> 24 == h << 24 >> 24 ? (((p & 1) == 0 ? (p & 255) >>> 1 : c[i + 4 >> 2] | 0) | 0) != 0 : 0) {
d = c[k >> 2] | 0;
if ((d - j | 0) >= 160) {
g = 0;
break
}
p = c[g >> 2] | 0;
c[k >> 2] = d + 4;
c[d >> 2] = p;
c[g >> 2] = 0;
g = 0;
break
}
k = l + 26 | 0;
j = l;
while (1) {
if ((a[j >> 0] | 0) == b << 24 >> 24) break;
j = j + 1 | 0;
if ((j | 0) == (k | 0)) {
j = k;
break
}
}
l = j - l | 0;
if ((l | 0) > 23) g = -1;
else {
switch (d | 0) {
case 10:
case 8:
{
if ((l | 0) >= (d | 0)) {
g = -1;
break a
}
break
};
case 16:
{
if ((l | 0) >= 22) {
if (n) {
g = -1;
break a
}
if ((m - e | 0) >= 3) {
g = -1;
break a
}
if ((a[m + -1 >> 0] | 0) != 48) {
g = -1;
break a
}
c[g >> 2] = 0;
g = a[1179104 + l >> 0] | 0;
c[f >> 2] = m + 1;
a[m >> 0] = g;
g = 0;
break a
}
break
};
default:
{}
}
p = a[1179104 + l >> 0] | 0;
c[f >> 2] = m + 1;
a[m >> 0] = p;
c[g >> 2] = (c[g >> 2] | 0) + 1;
g = 0
}
}
while (0);
return g | 0
}
function Wn() {
if ((a[964352] | 0) == 0 ? (Da(964352) | 0) != 0 : 0) {
c[275541] = Yi(2147483647, 1180491, 0) | 0;
Ja(964352)
}
return c[275541] | 0
}
function Xn(a) {
a = a | 0;
return
}
function Yn(a) {
a = a | 0;
Ph(a);
return
}
function Zn(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 j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0;
j = i;
i = i + 64 | 0;
r = j + 56 | 0;
s = j + 48 | 0;
k = j + 52 | 0;
m = j + 44 | 0;
l = j + 40 | 0;
q = j + 36 | 0;
p = j + 32 | 0;
n = j + 8 | 0;
o = j;
a: do
if (!(c[f + 4 >> 2] & 1)) {
c[k >> 2] = -1;
q = c[(c[b >> 2] | 0) + 16 >> 2] | 0;
c[m >> 2] = c[d >> 2];
c[l >> 2] = c[e >> 2];
c[s >> 2] = c[m >> 2];
c[r >> 2] = c[l >> 2];
l = Eb[q & 63](b, s, r, f, g, k) | 0;
c[d >> 2] = l;
switch (c[k >> 2] | 0) {
case 0:
{
a[h >> 0] = 0;
break a
};
case 1:
{
a[h >> 0] = 1;
break a
};
default:
{
a[h >> 0] = 1;c[g >> 2] = 4;
break a
}
}
} else {
s = gm(f) | 0;
c[q >> 2] = s;
l = Jr(q, 1101592) | 0;
av(s) | 0;
s = gm(f) | 0;
c[p >> 2] = s;
f = Jr(p, 1101748) | 0;
av(s) | 0;
Db[c[(c[f >> 2] | 0) + 24 >> 2] & 63](n, f);
Db[c[(c[f >> 2] | 0) + 28 >> 2] & 63](n + 12 | 0, f);
c[o >> 2] = c[e >> 2];
f = n + 24 | 0;
c[r >> 2] = c[o >> 2];
a[h >> 0] = (Gt(d, r, n, f, l, g, 1) | 0) == (n | 0) & 1;
l = c[d >> 2] | 0;
Ml(n + 12 | 0);
Ml(n)
}
while (0);
i = j;
return l | 0
}
function _n(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Ht(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function $n(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = It(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function ao(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Jt(a, k, j, e, f, g) | 0;
i = h;
return b | 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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Kt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function co(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Lt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function eo(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Mt(a, k, j, e, f, g) | 0;
i = h;
return b | 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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Nt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function go(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Ot(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function ho(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,
j = 0,
k = 0,
l = 0,
m = 0;
h = i;
i = i + 16 | 0;
j = h + 12 | 0;
k = h + 8 | 0;
m = h + 4 | 0;
l = h;
c[m >> 2] = c[b >> 2];
c[l >> 2] = c[d >> 2];
c[k >> 2] = c[m >> 2];
c[j >> 2] = c[l >> 2];
b = Pt(a, k, j, e, f, g) | 0;
i = h;
return b | 0
}
function io(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 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;
l = i;
i = i + 320 | 0;
m = l;
p = l + 208 | 0;
k = l + 192 | 0;
y = l + 28 | 0;
b = l + 16 | 0;
n = l + 12 | 0;
r = l + 32 | 0;
q = l + 8 | 0;
s = l + 4 | 0;
c[k >> 2] = 0;
c[k + 4 >> 2] = 0;
c[k + 8 >> 2] = 0;
z = gm(f) | 0;
c[y >> 2] = z;
y = Jr(y, 1101592) | 0;
Kb[c[(c[y >> 2] | 0) + 48 >> 2] & 7](y, 1179104, 1179130, p) | 0;
av(z) | 0;
c[b >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
if (!(a[b >> 0] & 1)) f = 10;
else f = (c[b >> 2] & -2) + -1 | 0;
wl(b, f, 0);
o = b + 8 | 0;
f = b + 1 | 0;
v = (a[b >> 0] & 1) == 0 ? f : c[o >> 2] | 0;
c[n >> 2] = v;
c[q >> 2] = r;
c[s >> 2] = 0;
t = b + 4 | 0;
u = c[d >> 2] | 0;
a: while (1) {
if (u) {
w = c[u + 12 >> 2] | 0;
if ((w | 0) == (c[u + 16 >> 2] | 0)) w = Gb[c[(c[u >> 2] | 0) + 36 >> 2] & 127](u) | 0;
else w = c[w >> 2] | 0;
if ((w | 0) == -1) {
c[d >> 2] = 0;
u = 0;
x = 1
} else x = 0
} else {
u = 0;
x = 1
}
w = c[e >> 2] | 0;
do
if (w) {
y = c[w + 12 >> 2] | 0;
if ((y | 0) == (c[w + 16 >> 2] | 0)) y = Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0;
else y = c[y >> 2] | 0;
if ((y | 0) != -1)
if (x) break;
else break a;
else {
c[e >> 2] = 0;
j = 16;
break
}
} else j = 16;
while (0);
if ((j | 0) == 16) {
j = 0;
if (x) {
w = 0;
break
} else w = 0
}
x = a[b >> 0] | 0;
x = (x & 1) == 0 ? (x & 255) >>> 1 : c[t >> 2] | 0;
if ((c[n >> 2] | 0) == (v + x | 0)) {
wl(b, x << 1, 0);
if (!(a[b >> 0] & 1)) v = 10;
else v = (c[b >> 2] & -2) + -1 | 0;
wl(b, v, 0);
v = (a[b >> 0] & 1) == 0 ? f : c[o >> 2] | 0;
c[n >> 2] = v + x
}
y = u + 12 | 0;
z = c[y >> 2] | 0;
x = u + 16 | 0;
if ((z | 0) == (c[x >> 2] | 0)) z = Gb[c[(c[u >> 2] | 0) + 36 >> 2] & 127](u) | 0;
else z = c[z >> 2] | 0;
if (jo(z, 16, v, n, s, 0, k, r, q, p) | 0) break;
w = c[y >> 2] | 0;
if ((w | 0) == (c[x >> 2] | 0)) {
Gb[c[(c[u >> 2] | 0) + 40 >> 2] & 127](u) | 0;
continue
} else {
c[y >> 2] = w + 4;
continue
}
}
wl(b, (c[n >> 2] | 0) - v | 0, 0);
y = (a[b >> 0] & 1) == 0 ? f : c[o >> 2] | 0;
z = Wn() | 0;
c[m >> 2] = h;
if ((Ft(y, z, 1180488, m) | 0) != 1) c[g >> 2] = 4;
if (u) {
h = c[u + 12 >> 2] | 0;
if ((h | 0) == (c[u + 16 >> 2] | 0)) h = Gb[c[(c[u >> 2] | 0) + 36 >> 2] & 127](u) | 0;
else h = c[h >> 2] | 0;
if ((h | 0) == -1) {
c[d >> 2] = 0;
h = 1
} else h = 0
} else h = 1;
do
if (w) {
m = c[w + 12 >> 2] | 0;
if ((m | 0) == (c[w + 16 >> 2] | 0)) m = Gb[c[(c[w >> 2] | 0) + 36 >> 2] & 127](w) | 0;
else m = c[m >> 2] | 0;
if ((m | 0) != -1)
if (h) break;
else {
j = 45;
break
}
else {
c[e >> 2] = 0;
j = 43;
break
}
} else j = 43;
while (0);
if ((j | 0) == 43 ? h : 0) j = 45;
if ((j | 0) == 45) c[g >> 2] = c[g >> 2] | 2;
z = c[d >> 2] | 0;
sl(b);
sl(k);
i = l;
return z | 0
}
function jo(b, d, e, f, g, h, i, j, k, l) {
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;
l = l | 0;
var m = 0,
n = 0,
o = 0,
p = 0;
m = c[f >> 2] | 0;
n = (m | 0) == (e | 0);
do
if (n) {
p = (c[l + 96 >> 2] | 0) == (b | 0);
if (!p ? (c[l + 100 >> 2] | 0) != (b | 0) : 0) {
o = 5;
break
}
c[f >> 2] = e + 1;
a[e >> 0] = p ? 43 : 45;
c[g >> 2] = 0;
g = 0
} else o = 5;
while (0);
a: do
if ((o | 0) == 5) {
p = a[i >> 0] | 0;
if ((b | 0) == (h | 0) ? (((p & 1) == 0 ? (p & 255) >>> 1 : c[i + 4 >> 2] | 0) | 0) != 0 : 0) {
d = c[k >> 2] | 0;
if ((d - j | 0) >= 160) {
g = 0;
break
}
p = c[g >> 2] | 0;
c[k >> 2] = d + 4;
c[d >> 2] = p;
c[g >> 2] = 0;
g = 0;
break
}
k = l + 104 | 0;
j = l;
while (1) {
if ((c[j >> 2] | 0) == (b | 0)) break;
j = j + 4 | 0;
if ((j | 0) == (k | 0)) {
j = k;
break
}
}
b = j - l | 0;
l = b >> 2;
if ((b | 0) > 92) g = -1;
else {
switch (d | 0) {
case 10:
case 8:
{
if ((l | 0) >= (d | 0)) {
g = -1;
break a
}
break
};
case 16:
{
if ((b | 0) >= 88) {
if (n) {
g = -1;
break a
}
if ((m - e | 0) >= 3) {
g = -1;
break a
}
if ((a[m + -1 >> 0] | 0) != 48) {
g = -1;
break a
}
c[g >> 2] = 0;
g = a[1179104 + l >> 0] | 0;
c[f >> 2] = m + 1;
a[m >> 0] = g;
g = 0;
break a
}
break
};
default:
{}
}
p = a[1179104 + l >> 0] | 0;
c[f >> 2] = m + 1;
a[m >> 0] = p;
c[g >> 2] = (c[g >> 2] | 0) + 1;
g = 0
}
}
while (0);
return g | 0
}
function ko(b, d, e, f) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0,
h = 0,
j = 0;
g = i;
i = i + 16 | 0;
h = g;
d = gm(d) | 0;
c[h >> 2] = d;
j = Jr(h, 1101600) | 0;
Kb[c[(c[j >> 2] | 0) + 32 >> 2] & 7](j, 1179104, 1179130, e) | 0;
e = Jr(h, 1101740) | 0;
a[f >> 0] = Gb[c[(c[e >> 2] | 0) + 16 >> 2] & 127](e) | 0;
Db[c[(c[e >> 2] | 0) + 20 >> 2] & 63](b, e);
av(d) | 0;
i = g;
return
}
function lo(b, d, e, f, g) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
var h = 0,
j = 0,
k = 0;
h = i;
i = i + 16 | 0;
j = h;
d = gm(d) | 0;
c[j >> 2] = d;
k = Jr(j, 1101600) | 0;
Kb[c[(c[k >> 2] | 0) + 32 >> 2] & 7](k, 1179104, 1179136, e) | 0;
e = Jr(j, 1101740) | 0;
a[f >> 0] = Gb[c[(c[e >> 2] | 0) + 12 >> 2] & 127](e) | 0;
a[g >> 0] = Gb[c[(c[e >> 2] | 0) + 16 >> 2] & 127](e) | 0;
Db[c[(c[e >> 2] | 0) + 20 >> 2] & 63](b, e);
av(d) | 0;
i = h;
return
}
function mo(b, e, f, g, h, i, j, k, l, m, n, o) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
i = i | 0;
j = j | 0;
k = k | 0;
l = l | 0;
m = m | 0;
n = n | 0;
o = o | 0;
var p = 0,
q = 0;
a: do
if (b << 24 >> 24 == i << 24 >> 24)
if (a[e >> 0] | 0) {
a[e >> 0] = 0;
j = c[h >> 2] | 0;
c[h >> 2] = j + 1;
a[j >> 0] = 46;
j = a[k >> 0] | 0;
if ((((j & 1) == 0 ? (j & 255) >>> 1 : c[k + 4 >> 2] | 0) | 0) != 0 ? (q = c[m >> 2] | 0, (q - l | 0) < 160) : 0) {
n = c[n >> 2] | 0;
c[m >> 2] = q + 4;
c[q >> 2] = n;
n = 0
} else n = 0
} else n = -1;
else {
if (b << 24 >> 24 == j << 24 >> 24 ? (j = a[k >> 0] | 0, (((j & 1) == 0 ? (j & 255) >>> 1 : c[k + 4 >> 2] | 0) | 0) != 0) : 0) {
if (!(a[e >> 0] | 0)) {
n = -1;
break
}
h = c[m >> 2] | 0;
if ((h - l | 0) >= 160) {
n = 0;
break
}
j = c[n >> 2] | 0;
c[m >> 2] = h + 4;
c[h >> 2] = j;
c[n >> 2] = 0;
n = 0;
break
}
i = o + 32 | 0;
q = o;
while (1) {
if ((a[q >> 0] | 0) == b << 24 >> 24) break;
q = q + 1 | 0;
if ((q | 0) == (i | 0)) {
q = i;
break
}
}
b = q - o | 0;
if ((b | 0) > 31) n = -1;
else {
o = a[1179104 + b >> 0] | 0;
switch (b | 0) {
case 24:
case 25:
{
n = c[h >> 2] | 0;
if ((n | 0) != (g | 0) ? (d[n + -1 >> 0] & 95 | 0) != (d[f >> 0] & 127 | 0) : 0) {
n = -1;
break a
}
c[h >> 2] = n + 1;a[n >> 0] = o;n = 0;
break a
};
case 23:
case 22:
{
a[f >> 0] = 80;n = c[h >> 2] | 0;c[h >> 2] = n + 1;a[n >> 0] = o;n = 0;
break a
};
default:
{
g = o & 95;
if ((((g | 0) == (a[f >> 0] | 0) ? (a[f >> 0] = g | 128, (a[e >> 0] | 0) != 0) : 0) ? (a[e >> 0] = 0, j = a[k >> 0] | 0, (((j & 1) == 0 ? (j & 255) >>> 1 : c[k + 4 >> 2] | 0) | 0) != 0) : 0) ? (p = c[m >> 2] | 0, (p - l | 0) < 160) : 0) {
j = c[n >> 2] | 0;
c[m >> 2] = p + 4;
c[p >> 2] = j
}
j = c[h >> 2] | 0;c[h >> 2] = j + 1;a[j >> 0] = o;
if ((b | 0) > 21) {
n = 0;
break a
}
c[n >> 2] = (c[n >> 2] | 0) + 1;n = 0;
break a
}
}
}
}
while (0);
return n | 0
}
function no(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
f = i;
i = i + 16 | 0;
g = f;
b = gm(b) | 0;
c[g >> 2] = b;
h = Jr(g, 1101592) | 0;
Kb[c[(c[h >> 2] | 0) + 48 >> 2] & 7](h, 1179104, 1179130, d) | 0;
d = Jr(g, 1101748) | 0;
c[e >> 2] = Gb[c[(c[d >> 2] | 0) + 16 >> 2] & 127](d) | 0;
Db[c[(c[d >> 2] | 0) + 20 >> 2] & 63](a, d);
av(b) | 0;
i = f;
return
}
function oo(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,
j = 0;
g = i;
i = i + 16 | 0;
h = g;
b = gm(b) | 0;
c[h >> 2] = b;
j = Jr(h, 1101592) | 0;
Kb[c[(c[j >> 2] | 0) + 48 >> 2] & 7](j, 1179104, 1179136, d) | 0;
d = Jr(h, 1101748) | 0;
c[e >> 2] = Gb[c[(c[d >> 2] | 0) + 12 >> 2] & 127](d) | 0;
c[f >> 2] = Gb[c[(c[d >> 2] | 0) + 16 >> 2] & 127](d) | 0;
Db[c[(c[d >> 2] | 0) + 20 >> 2] & 63](a, d);
av(b) | 0;
i = g;
return
}
function po(b, e, f, g, h, i, j, k, l, m, n, o) {
b = b | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
i = i | 0;
j = j | 0;
k = k | 0;
l = l | 0;
m = m | 0;
n = n | 0;
o = o | 0;
var p = 0,
q = 0;
a: do
if ((b | 0) == (i | 0))
if (a[e >> 0] | 0) {
a[e >> 0] = 0;
i = c[h >> 2] | 0;
c[h >> 2] = i + 1;
a[i >> 0] = 46;
i = a[k >> 0] | 0;
if ((((i & 1) == 0 ? (i & 255) >>> 1 : c[k + 4 >> 2] | 0) | 0) != 0 ? (q = c[m >> 2] | 0, (q - l | 0) < 160) : 0) {
n = c[n >> 2] | 0;
c[m >> 2] = q + 4;
c[q >> 2] = n;
n = 0
} else n = 0
} else n = -1;
else {
if ((b | 0) == (j | 0) ? (i = a[k >> 0] | 0, (((i & 1) == 0 ? (i & 255) >>> 1 : c[k + 4 >> 2] | 0) | 0) != 0) : 0) {
if (!(a[e >> 0] | 0)) {
n = -1;
break
}
f = c[m >> 2] | 0;
if ((f - l | 0) >= 160) {
n = 0;
break
}
i = c[n >> 2] | 0;
c[m >> 2] = f + 4;
c[f >> 2] = i;
c[n >> 2] = 0;
n = 0;
break
}
j = o + 128 | 0;
q = o;
while (1) {
if ((c[q >> 2] | 0) == (b | 0)) break;
q = q + 4 | 0;
if ((q | 0) == (j | 0)) {
q = j;
break
}
}
b = q - o | 0;
q = b >> 2;
if ((b | 0) <= 124) {
o = a[1179104 + q >> 0] | 0;
switch (q | 0) {
case 24:
case 25:
{
n = c[h >> 2] | 0;
if ((n | 0) != (g | 0) ? (d[n + -1 >> 0] & 95 | 0) != (d[f >> 0] & 127 | 0) : 0) {
n = -1;
break a
}
c[h >> 2] = n + 1;a[n >> 0] = o;n = 0;
break a
};
case 23:
case 22:
{
a[f >> 0] = 80;
break
};
default:
{
g = o & 95;
if ((((g | 0) == (a[f >> 0] | 0) ? (a[f >> 0] = g | 128, (a[e >> 0] | 0) != 0) : 0) ? (a[e >> 0] = 0, i = a[k >> 0] | 0, (((i & 1) == 0 ? (i & 255) >>> 1 : c[k + 4 >> 2] | 0) | 0) != 0) : 0) ? (p = c[m >> 2] | 0, (p - l | 0) < 160) : 0) {
i = c[n >> 2] | 0;
c[m >> 2] = p + 4;
c[p >> 2] = i
}
}
}
i = c[h >> 2] | 0;
c[h >> 2] = i + 1;
a[i >> 0] = o;
if ((b | 0) > 84) n = 0;
else {
c[n >> 2] = (c[n >> 2] | 0) + 1;
n = 0
}
} else n = -1
}
while (0);
return n | 0
}
function qo(a) {
a = a | 0;
return
}
function ro(a) {
a = a | 0;
Ph(a);
return
}
function so(b, d, e, f, g) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
h = i;
i = i + 32 | 0;
k = h + 20 | 0;
l = h + 16 | 0;
m = h + 12 | 0;
j = h;
if (!(c[e + 4 >> 2] & 1)) {
n = c[(c[b >> 2] | 0) + 24 >> 2] | 0;
c[l >> 2] = c[d >> 2];
d = g & 1;
c[k >> 2] = c[l >> 2];
d = Nb[n & 31](b, k, e, f, d) | 0
} else {
k = gm(e) | 0;
c[m >> 2] = k;
l = Jr(m, 1101740) | 0;
av(k) | 0;
k = c[l >> 2] | 0;
if (g) Db[c[k + 24 >> 2] & 63](j, l);
else Db[c[k + 28 >> 2] & 63](j, l);
m = a[j >> 0] | 0;
l = (m & 1) == 0;
n = j + 1 | 0;
k = j + 8 | 0;
g = l ? n : j + 1 | 0;
n = l ? n : c[j + 8 >> 2] | 0;
l = j + 4 | 0;
b = (m & 1) == 0;
if ((n | 0) != ((b ? g : c[k >> 2] | 0) + (b ? (m & 255) >>> 1 : c[l >> 2] | 0) | 0))
do {
m = a[n >> 0] | 0;
e = c[d >> 2] | 0;
do
if (e) {
b = e + 24 | 0;
f = c[b >> 2] | 0;
if ((f | 0) != (c[e + 28 >> 2] | 0)) {
c[b >> 2] = f + 1;
a[f >> 0] = m;
break
}
if ((Mb[c[(c[e >> 2] | 0) + 52 >> 2] & 63](e, m & 255) | 0) == -1) c[d >> 2] = 0
}
while (0);
n = n + 1 | 0;
m = a[j >> 0] | 0;
b = (m & 1) == 0
} while ((n | 0) != ((b ? g : c[k >> 2] | 0) + (b ? (m & 255) >>> 1 : c[l >> 2] | 0) | 0));
d = c[d >> 2] | 0;
sl(j)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment