commit e40fa9c5b6f54c9da4e3a86f433b88bb2f29147d
parent 0528d9ce0cbc67683adb24e7249a012b0b6b1e68
Author: finwo <finwo@pm.me>
Date: Tue, 18 Jun 2019 12:43:55 +0200
Don't use webassembly
Diffstat:
4 files changed, 11543 insertions(+), 316 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1,2 +1,3 @@
node_modules/
.tern*
+*.wasm
diff --git a/build.sh b/build.sh
@@ -1,4 +1,4 @@
#!/bin/sh
-emcc supercop.c lib/supercop/src/*.c -o supercop.js -O1
+emcc supercop.c lib/supercop/src/*.c -o supercop.js -O1 -s WASM=0
echo "if ('undefined' !== typeof module) module.exports = Module;" >> supercop.js
diff --git a/supercop.js b/supercop.js
@@ -90,10 +90,13 @@ if (ENVIRONMENT_IS_NODE) {
Module['read'] = function shell_read(filename, binary) {
var ret;
+ ret = tryParseAsDataURI(filename);
+ if (!ret) {
if (!nodeFS) nodeFS = require('fs');
if (!nodePath) nodePath = require('path');
filename = nodePath['normalize'](filename);
ret = nodeFS['readFileSync'](filename);
+ }
return binary ? ret : ret.toString();
};
@@ -137,12 +140,20 @@ if (ENVIRONMENT_IS_SHELL) {
if (typeof read != 'undefined') {
Module['read'] = function shell_read(f) {
+ var data = tryParseAsDataURI(f);
+ if (data) {
+ return intArrayToString(data);
+ }
return read(f);
};
}
Module['readBinary'] = function readBinary(f) {
var data;
+ data = tryParseAsDataURI(f);
+ if (data) {
+ return data;
+ }
if (typeof readbuffer === 'function') {
return new Uint8Array(readbuffer(f));
}
@@ -181,19 +192,35 @@ if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
Module['read'] = function shell_read(url) {
+ try {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.send(null);
return xhr.responseText;
+ } catch (err) {
+ var data = tryParseAsDataURI(url);
+ if (data) {
+ return intArrayToString(data);
+ }
+ throw err;
+ }
};
if (ENVIRONMENT_IS_WORKER) {
Module['readBinary'] = function readBinary(url) {
+ try {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.responseType = 'arraybuffer';
xhr.send(null);
return new Uint8Array(xhr.response);
+ } catch (err) {
+ var data = tryParseAsDataURI(url);
+ if (data) {
+ return data;
+ }
+ throw err;
+ }
};
}
@@ -206,6 +233,11 @@ if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
onload(xhr.response);
return;
}
+ var data = tryParseAsDataURI(url);
+ if (data) {
+ onload(data.buffer);
+ return;
+ }
onerror();
};
xhr.onerror = onerror;
@@ -309,106 +341,6 @@ var asm2wasmImports = { // special asm2wasm imports
var jsCallStartIndex = 1;
var functionPointers = new Array(0);
-// Wraps a JS function as a wasm function with a given signature.
-// In the future, we may get a WebAssembly.Function constructor. Until then,
-// we create a wasm module that takes the JS function as an import with a given
-// signature, and re-exports that as a wasm function.
-function convertJsFunctionToWasm(func, sig) {
-
- // The module is static, with the exception of the type section, which is
- // generated based on the signature passed in.
- var typeSection = [
- 0x01, // id: section,
- 0x00, // length: 0 (placeholder)
- 0x01, // count: 1
- 0x60, // form: func
- ];
- var sigRet = sig.slice(0, 1);
- var sigParam = sig.slice(1);
- var typeCodes = {
- 'i': 0x7f, // i32
- 'j': 0x7e, // i64
- 'f': 0x7d, // f32
- 'd': 0x7c, // f64
- };
-
- // Parameters, length + signatures
- typeSection.push(sigParam.length);
- for (var i = 0; i < sigParam.length; ++i) {
- typeSection.push(typeCodes[sigParam[i]]);
- }
-
- // Return values, length + signatures
- // With no multi-return in MVP, either 0 (void) or 1 (anything else)
- if (sigRet == 'v') {
- typeSection.push(0x00);
- } else {
- typeSection = typeSection.concat([0x01, typeCodes[sigRet]]);
- }
-
- // Write the overall length of the type section back into the section header
- // (excepting the 2 bytes for the section id and length)
- typeSection[1] = typeSection.length - 2;
-
- // Rest of the module is static
- var bytes = new Uint8Array([
- 0x00, 0x61, 0x73, 0x6d, // magic ("\0asm")
- 0x01, 0x00, 0x00, 0x00, // version: 1
- ].concat(typeSection, [
- 0x02, 0x07, // import section
- // (import "e" "f" (func 0 (type 0)))
- 0x01, 0x01, 0x65, 0x01, 0x66, 0x00, 0x00,
- 0x07, 0x05, // export section
- // (export "f" (func 0 (type 0)))
- 0x01, 0x01, 0x66, 0x00, 0x00,
- ]));
-
- // We can compile this wasm module synchronously because it is very small.
- // This accepts an import (at "e.f"), that it reroutes to an export (at "f")
- var module = new WebAssembly.Module(bytes);
- var instance = new WebAssembly.Instance(module, {
- e: {
- f: func
- }
- });
- var wrappedFunc = instance.exports.f;
- return wrappedFunc;
-}
-
-// Add a wasm function to the table.
-function addFunctionWasm(func, sig) {
- var table = wasmTable;
- var ret = table.length;
-
- // Grow the table
- try {
- table.grow(1);
- } catch (err) {
- if (!err instanceof RangeError) {
- throw err;
- }
- throw 'Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.';
- }
-
- // Insert new element
- try {
- // Attempting to call this with JS function will cause of table.set() to fail
- table.set(ret, func);
- } catch (err) {
- if (!err instanceof TypeError) {
- throw err;
- }
- assert(typeof sig !== 'undefined', 'Missing signature argument to addFunction');
- var wrapped = convertJsFunctionToWasm(func, sig);
- table.set(ret, wrapped);
- }
-
- return ret;
-}
-
-function removeFunctionWasm(index) {
- // TODO(sbc): Look into implementing this to allow re-using of table slots
-}
// 'sig' parameter is required for the llvm backend but only when func is not
// already a WebAssembly function.
@@ -491,7 +423,7 @@ var Runtime = {
// Above 0 is static memory, starting with globals.
// Then the stack.
// Then 'dynamic' memory for sbrk.
-var GLOBAL_BASE = 1024;
+var GLOBAL_BASE = 8;
@@ -508,9 +440,6 @@ var GLOBAL_BASE = 1024;
-if (typeof WebAssembly !== 'object') {
- err('no native wasm support detected');
-}
// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking.
@@ -1193,12 +1122,12 @@ function updateGlobalBufferViews() {
}
-var STATIC_BASE = 1024,
- STACK_BASE = 35232,
+var STATIC_BASE = 8,
+ STACK_BASE = 33216,
STACKTOP = STACK_BASE,
- STACK_MAX = 5278112,
- DYNAMIC_BASE = 5278112,
- DYNAMICTOP_PTR = 35200;
+ STACK_MAX = 5276096,
+ DYNAMIC_BASE = 5276096,
+ DYNAMICTOP_PTR = 33184;
@@ -1221,10 +1150,6 @@ if (Module['buffer']) {
buffer = Module['buffer'];
} else {
// Use a WebAssembly memory where available
- if (typeof WebAssembly === 'object' && typeof WebAssembly.Memory === 'function') {
- wasmMemory = new WebAssembly.Memory({ 'initial': INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE, 'maximum': INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE });
- buffer = wasmMemory.buffer;
- } else
{
buffer = new ArrayBuffer(INITIAL_TOTAL_MEMORY);
}
@@ -1444,151 +1369,6 @@ function isDataURI(filename) {
-var wasmBinaryFile = 'supercop.wasm';
-if (!isDataURI(wasmBinaryFile)) {
- wasmBinaryFile = locateFile(wasmBinaryFile);
-}
-
-function getBinary() {
- try {
- if (Module['wasmBinary']) {
- return new Uint8Array(Module['wasmBinary']);
- }
- if (Module['readBinary']) {
- return Module['readBinary'](wasmBinaryFile);
- } else {
- throw "both async and sync fetching of the wasm failed";
- }
- }
- catch (err) {
- abort(err);
- }
-}
-
-function getBinaryPromise() {
- // if we don't have the binary yet, and have the Fetch api, use that
- // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web
- if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {
- return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {
- if (!response['ok']) {
- throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
- }
- return response['arrayBuffer']();
- }).catch(function () {
- return getBinary();
- });
- }
- // Otherwise, getBinary should be able to get it synchronously
- return new Promise(function(resolve, reject) {
- resolve(getBinary());
- });
-}
-
-
-
-// Create the wasm instance.
-// Receives the wasm imports, returns the exports.
-function createWasm(env) {
-
- // prepare imports
- var info = {
- 'env': env
- ,
- 'global': {
- 'NaN': NaN,
- 'Infinity': Infinity
- },
- 'global.Math': Math,
- 'asm2wasm': asm2wasmImports
- };
- // Load the wasm module and create an instance of using native support in the JS engine.
- // handle a generated wasm instance, receiving its exports and
- // performing other necessary setup
- function receiveInstance(instance, module) {
- var exports = instance.exports;
- Module['asm'] = exports;
- removeRunDependency('wasm-instantiate');
- }
- addRunDependency('wasm-instantiate');
-
-
- function receiveInstantiatedSource(output) {
- // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.
- // receiveInstance() will swap in the exports (to Module.asm) so they can be called
- // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.
- // When the regression is fixed, can restore the above USE_PTHREADS-enabled path.
- receiveInstance(output['instance']);
- }
-
-
- function instantiateArrayBuffer(receiver) {
- return getBinaryPromise().then(function(binary) {
- return WebAssembly.instantiate(binary, info);
- }).then(receiver, function(reason) {
- err('failed to asynchronously prepare wasm: ' + reason);
- abort(reason);
- });
- }
-
- // Prefer streaming instantiation if available.
- function instantiateAsync() {
- if (!Module['wasmBinary'] &&
- typeof WebAssembly.instantiateStreaming === 'function' &&
- !isDataURI(wasmBinaryFile) &&
- typeof fetch === 'function') {
- fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function (response) {
- return WebAssembly.instantiateStreaming(response, info)
- .then(receiveInstantiatedSource, function(reason) {
- // We expect the most common failure cause to be a bad MIME type for the binary,
- // in which case falling back to ArrayBuffer instantiation should work.
- err('wasm streaming compile failed: ' + reason);
- err('falling back to ArrayBuffer instantiation');
- instantiateArrayBuffer(receiveInstantiatedSource);
- });
- });
- } else {
- return instantiateArrayBuffer(receiveInstantiatedSource);
- }
- }
- // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback
- // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel
- // to any other async startup actions they are performing.
- if (Module['instantiateWasm']) {
- try {
- return Module['instantiateWasm'](info, receiveInstance);
- } catch(e) {
- err('Module.instantiateWasm callback failed with error: ' + e);
- return false;
- }
- }
-
- instantiateAsync();
- return {}; // no exports yet; we'll fill them in later
-}
-
-// Provide an "asm.js function" for the application, called to "link" the asm.js module. We instantiate
-// the wasm module at that time, and it receives imports and provides exports and so forth, the app
-// doesn't need to care that it is wasm or asm.js.
-
-Module['asm'] = function(global, env, providedBuffer) {
- // memory was already allocated (so js could use the buffer)
- env['memory'] = wasmMemory
- ;
- // import table
- env['table'] = wasmTable = new WebAssembly.Table({
- 'initial': 0,
- 'maximum': 0,
- 'element': 'anyfunc'
- });
- // With the wasm backend __memory_base and __table_base and only needed for
- // relocatable output.
- env['__memory_base'] = 1024; // tell the memory segments where to place themselves
- // table starts at 0 by default (even in dynamic linking, for the main module)
- env['__table_base'] = 0;
-
- var exports = createWasm(env);
- return exports;
-};
// === Body ===
@@ -1598,18 +1378,18 @@ var ASM_CONSTS = [];
-// STATICTOP = STATIC_BASE + 34208;
+// STATICTOP = STATIC_BASE + 33208;
/* global initializers */ /*__ATINIT__.push();*/
-
+memoryInitializer = "data:application/octet-stream;base64,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";
/* no memory initializer */
-var tempDoublePtr = 35216
+var tempDoublePtr = 33200
function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
HEAP8[tempDoublePtr] = HEAP8[ptr];
@@ -1632,10 +1412,23 @@ function copyTempDouble(ptr) {
// {{PRE_LIBRARY}}
+
+
+
+
+
+
+
+
+
function _emscripten_get_heap_size() {
return HEAP8.length;
}
+
+
+
+
function _emscripten_memcpy_big(dest, src, num) {
HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
@@ -1689,79 +1482,11452 @@ function intArrayToString(array) {
}
-// ASM_LIBRARY EXTERN PRIMITIVES: Int8Array,Int32Array
+// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149
+
+// This code was written by Tyler Akins and has been placed in the
+// public domain. It would be nice if you left this header intact.
+// Base64 code from Tyler Akins -- http://rumkin.com
+/**
+ * Decodes a base64 string.
+ * @param {String} input The string to decode.
+ */
+var decodeBase64 = typeof atob === 'function' ? atob : function (input) {
+ var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
-var asmGlobalArg = {}
+ var output = '';
+ var chr1, chr2, chr3;
+ var enc1, enc2, enc3, enc4;
+ var i = 0;
+ // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
+ input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
+ do {
+ enc1 = keyStr.indexOf(input.charAt(i++));
+ enc2 = keyStr.indexOf(input.charAt(i++));
+ enc3 = keyStr.indexOf(input.charAt(i++));
+ enc4 = keyStr.indexOf(input.charAt(i++));
+
+ chr1 = (enc1 << 2) | (enc2 >> 4);
+ chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+ chr3 = ((enc3 & 3) << 6) | enc4;
+
+ output = output + String.fromCharCode(chr1);
+
+ if (enc3 !== 64) {
+ output = output + String.fromCharCode(chr2);
+ }
+ if (enc4 !== 64) {
+ output = output + String.fromCharCode(chr3);
+ }
+ } while (i < input.length);
+ return output;
+};
+
+// Converts a string of base64 into a byte array.
+// Throws error on invalid input.
+function intArrayFromBase64(s) {
+ if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) {
+ var buf;
+ try {
+ buf = Buffer.from(s, 'base64');
+ } catch (_) {
+ buf = new Buffer(s, 'base64');
+ }
+ return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
+ }
+
+ try {
+ var decoded = decodeBase64(s);
+ var bytes = new Uint8Array(decoded.length);
+ for (var i = 0 ; i < decoded.length ; ++i) {
+ bytes[i] = decoded.charCodeAt(i);
+ }
+ return bytes;
+ } catch (_) {
+ throw new Error('Converting base64 string to bytes failed.');
+ }
+}
+
+// If filename is a base64 data URI, parses and returns data (Buffer on node,
+// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined.
+function tryParseAsDataURI(filename) {
+ if (!isDataURI(filename)) {
+ return;
+ }
+
+ return intArrayFromBase64(filename.slice(dataURIPrefix.length));
+}
+
+
+// ASM_LIBRARY EXTERN PRIMITIVES: Math_imul,Int8Array,Int32Array
+
+
+var asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array }
var asmLibraryArg = {
- "abort": abort,
- "setTempRet0": setTempRet0,
- "getTempRet0": getTempRet0,
- "___setErrNo": ___setErrNo,
- "_emscripten_get_heap_size": _emscripten_get_heap_size,
- "_emscripten_memcpy_big": _emscripten_memcpy_big,
- "_emscripten_resize_heap": _emscripten_resize_heap,
- "abortOnCannotGrowMemory": abortOnCannotGrowMemory,
- "tempDoublePtr": tempDoublePtr,
- "DYNAMICTOP_PTR": DYNAMICTOP_PTR
+ "a": abort,
+ "b": setTempRet0,
+ "c": getTempRet0,
+ "d": ___setErrNo,
+ "e": _emscripten_get_heap_size,
+ "f": _emscripten_memcpy_big,
+ "g": _emscripten_resize_heap,
+ "h": abortOnCannotGrowMemory,
+ "i": tempDoublePtr,
+ "j": DYNAMICTOP_PTR
}
// EMSCRIPTEN_START_ASM
-var asm =Module["asm"]// EMSCRIPTEN_END_ASM
-(asmGlobalArg, asmLibraryArg, buffer);
+var asm = (/** @suppress {uselessCode} */ function(global, env, buffer) {
+'use asm';
+
+ var HEAP8 = new global.Int8Array(buffer),
+ HEAP32 = new global.Int32Array(buffer),
+ HEAPU8 = new global.Uint8Array(buffer),
+ tempDoublePtr=env.i|0,
+ DYNAMICTOP_PTR=env.j|0,
+ __THREW__ = 0,
+ threwValue = 0,
+ setjmpId = 0,
+ tempInt = 0,
+ tempBigInt = 0,
+ tempBigIntS = 0,
+ tempValue = 0,
+ tempDouble = 0.0,
+ Math_imul=global.Math.imul,
+ abort=env.a,
+ setTempRet0=env.b,
+ getTempRet0=env.c,
+ ___setErrNo=env.d,
+ _emscripten_get_heap_size=env.e,
+ _emscripten_memcpy_big=env.f,
+ _emscripten_resize_heap=env.g,
+ abortOnCannotGrowMemory=env.h,
+ STACKTOP = 33216,
+ STACK_MAX = 5276096,
+ tempFloat = 0.0;
+
+// EMSCRIPTEN_START_FUNCS
+
+function stackAlloc(size) {
+ size = size|0;
+ var ret = 0;
+ ret = STACKTOP;
+ STACKTOP = (STACKTOP + size)|0;
+ STACKTOP = (STACKTOP + 15)&-16;
+
+ return ret|0;
+}
+function stackSave() {
+ return STACKTOP|0;
+}
+function stackRestore(top) {
+ top = top|0;
+ STACKTOP = top;
+}
+function establishStackSpace(stackBase, stackMax) {
+ stackBase = stackBase|0;
+ stackMax = stackMax|0;
+ STACKTOP = stackBase;
+ STACK_MAX = stackMax;
+}
-Module["asm"] = asm;
-var ___errno_location = Module["___errno_location"] = function() {
- return Module["asm"]["___errno_location"].apply(null, arguments)
-};
+function _create_keypair($public_key,$private_key,$seed) {
+ $public_key = $public_key|0;
+ $private_key = $private_key|0;
+ $seed = $seed|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _ed25519_create_keypair($public_key,$private_key,$seed);
+ return;
+}
+function _sign($signature,$message,$message_len,$public_key,$private_key) {
+ $signature = $signature|0;
+ $message = $message|0;
+ $message_len = $message_len|0;
+ $public_key = $public_key|0;
+ $private_key = $private_key|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _ed25519_sign($signature,$message,$message_len,$public_key,$private_key);
+ return;
+}
+function _verify($signature,$message,$message_len,$public_key) {
+ $signature = $signature|0;
+ $message = $message|0;
+ $message_len = $message_len|0;
+ $public_key = $public_key|0;
+ var $call = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $call = (_ed25519_verify($signature,$message,$message_len,$public_key)|0);
+ return ($call|0);
+}
+function _fe_0($h) {
+ $h = $h|0;
+ var dest = 0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ dest=$h; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
+ return;
+}
+function _fe_1($h) {
+ $h = $h|0;
+ var $arrayidx1 = 0, dest = 0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ HEAP32[$h>>2] = 1;
+ $arrayidx1 = ((($h)) + 4|0);
+ dest=$arrayidx1; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
+ return;
+}
+function _fe_add($h,$f,$g) {
+ $h = $h|0;
+ $f = $f|0;
+ $g = $g|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
+ var $add = 0, $add20 = 0, $add21 = 0, $add22 = 0, $add23 = 0, $add24 = 0, $add25 = 0, $add26 = 0, $add27 = 0, $add28 = 0, $arrayidx1 = 0, $arrayidx11 = 0, $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0;
+ var $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx30 = 0, $arrayidx31 = 0, $arrayidx32 = 0, $arrayidx33 = 0, $arrayidx34 = 0, $arrayidx35 = 0, $arrayidx36 = 0, $arrayidx37 = 0, $arrayidx38 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[$f>>2]|0;
+ $arrayidx1 = ((($f)) + 4|0);
+ $1 = HEAP32[$arrayidx1>>2]|0;
+ $arrayidx2 = ((($f)) + 8|0);
+ $2 = HEAP32[$arrayidx2>>2]|0;
+ $arrayidx3 = ((($f)) + 12|0);
+ $3 = HEAP32[$arrayidx3>>2]|0;
+ $arrayidx4 = ((($f)) + 16|0);
+ $4 = HEAP32[$arrayidx4>>2]|0;
+ $arrayidx5 = ((($f)) + 20|0);
+ $5 = HEAP32[$arrayidx5>>2]|0;
+ $arrayidx6 = ((($f)) + 24|0);
+ $6 = HEAP32[$arrayidx6>>2]|0;
+ $arrayidx7 = ((($f)) + 28|0);
+ $7 = HEAP32[$arrayidx7>>2]|0;
+ $arrayidx8 = ((($f)) + 32|0);
+ $8 = HEAP32[$arrayidx8>>2]|0;
+ $arrayidx9 = ((($f)) + 36|0);
+ $9 = HEAP32[$arrayidx9>>2]|0;
+ $10 = HEAP32[$g>>2]|0;
+ $arrayidx11 = ((($g)) + 4|0);
+ $11 = HEAP32[$arrayidx11>>2]|0;
+ $arrayidx12 = ((($g)) + 8|0);
+ $12 = HEAP32[$arrayidx12>>2]|0;
+ $arrayidx13 = ((($g)) + 12|0);
+ $13 = HEAP32[$arrayidx13>>2]|0;
+ $arrayidx14 = ((($g)) + 16|0);
+ $14 = HEAP32[$arrayidx14>>2]|0;
+ $arrayidx15 = ((($g)) + 20|0);
+ $15 = HEAP32[$arrayidx15>>2]|0;
+ $arrayidx16 = ((($g)) + 24|0);
+ $16 = HEAP32[$arrayidx16>>2]|0;
+ $arrayidx17 = ((($g)) + 28|0);
+ $17 = HEAP32[$arrayidx17>>2]|0;
+ $arrayidx18 = ((($g)) + 32|0);
+ $18 = HEAP32[$arrayidx18>>2]|0;
+ $arrayidx19 = ((($g)) + 36|0);
+ $19 = HEAP32[$arrayidx19>>2]|0;
+ $add = (($10) + ($0))|0;
+ $add20 = (($11) + ($1))|0;
+ $add21 = (($12) + ($2))|0;
+ $add22 = (($13) + ($3))|0;
+ $add23 = (($14) + ($4))|0;
+ $add24 = (($15) + ($5))|0;
+ $add25 = (($16) + ($6))|0;
+ $add26 = (($17) + ($7))|0;
+ $add27 = (($18) + ($8))|0;
+ $add28 = (($19) + ($9))|0;
+ HEAP32[$h>>2] = $add;
+ $arrayidx30 = ((($h)) + 4|0);
+ HEAP32[$arrayidx30>>2] = $add20;
+ $arrayidx31 = ((($h)) + 8|0);
+ HEAP32[$arrayidx31>>2] = $add21;
+ $arrayidx32 = ((($h)) + 12|0);
+ HEAP32[$arrayidx32>>2] = $add22;
+ $arrayidx33 = ((($h)) + 16|0);
+ HEAP32[$arrayidx33>>2] = $add23;
+ $arrayidx34 = ((($h)) + 20|0);
+ HEAP32[$arrayidx34>>2] = $add24;
+ $arrayidx35 = ((($h)) + 24|0);
+ HEAP32[$arrayidx35>>2] = $add25;
+ $arrayidx36 = ((($h)) + 28|0);
+ HEAP32[$arrayidx36>>2] = $add26;
+ $arrayidx37 = ((($h)) + 32|0);
+ HEAP32[$arrayidx37>>2] = $add27;
+ $arrayidx38 = ((($h)) + 36|0);
+ HEAP32[$arrayidx38>>2] = $add28;
+ return;
+}
+function _fe_cmov($f,$g,$b) {
+ $f = $f|0;
+ $g = $g|0;
+ $b = $b|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
+ var $and = 0, $and29 = 0, $and30 = 0, $and31 = 0, $and32 = 0, $and33 = 0, $and34 = 0, $and35 = 0, $and36 = 0, $and37 = 0, $arrayidx1 = 0, $arrayidx11 = 0, $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0;
+ var $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $sub = 0, $xor = 0, $xor20 = 0, $xor21 = 0, $xor22 = 0, $xor23 = 0, $xor24 = 0, $xor25 = 0, $xor26 = 0, $xor27 = 0, $xor28 = 0, $xor38 = 0;
+ var $xor40 = 0, $xor42 = 0, $xor44 = 0, $xor46 = 0, $xor48 = 0, $xor50 = 0, $xor52 = 0, $xor54 = 0, $xor56 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[$f>>2]|0;
+ $arrayidx1 = ((($f)) + 4|0);
+ $1 = HEAP32[$arrayidx1>>2]|0;
+ $arrayidx2 = ((($f)) + 8|0);
+ $2 = HEAP32[$arrayidx2>>2]|0;
+ $arrayidx3 = ((($f)) + 12|0);
+ $3 = HEAP32[$arrayidx3>>2]|0;
+ $arrayidx4 = ((($f)) + 16|0);
+ $4 = HEAP32[$arrayidx4>>2]|0;
+ $arrayidx5 = ((($f)) + 20|0);
+ $5 = HEAP32[$arrayidx5>>2]|0;
+ $arrayidx6 = ((($f)) + 24|0);
+ $6 = HEAP32[$arrayidx6>>2]|0;
+ $arrayidx7 = ((($f)) + 28|0);
+ $7 = HEAP32[$arrayidx7>>2]|0;
+ $arrayidx8 = ((($f)) + 32|0);
+ $8 = HEAP32[$arrayidx8>>2]|0;
+ $arrayidx9 = ((($f)) + 36|0);
+ $9 = HEAP32[$arrayidx9>>2]|0;
+ $10 = HEAP32[$g>>2]|0;
+ $arrayidx11 = ((($g)) + 4|0);
+ $11 = HEAP32[$arrayidx11>>2]|0;
+ $arrayidx12 = ((($g)) + 8|0);
+ $12 = HEAP32[$arrayidx12>>2]|0;
+ $arrayidx13 = ((($g)) + 12|0);
+ $13 = HEAP32[$arrayidx13>>2]|0;
+ $arrayidx14 = ((($g)) + 16|0);
+ $14 = HEAP32[$arrayidx14>>2]|0;
+ $arrayidx15 = ((($g)) + 20|0);
+ $15 = HEAP32[$arrayidx15>>2]|0;
+ $arrayidx16 = ((($g)) + 24|0);
+ $16 = HEAP32[$arrayidx16>>2]|0;
+ $arrayidx17 = ((($g)) + 28|0);
+ $17 = HEAP32[$arrayidx17>>2]|0;
+ $arrayidx18 = ((($g)) + 32|0);
+ $18 = HEAP32[$arrayidx18>>2]|0;
+ $arrayidx19 = ((($g)) + 36|0);
+ $19 = HEAP32[$arrayidx19>>2]|0;
+ $xor = $10 ^ $0;
+ $xor20 = $11 ^ $1;
+ $xor21 = $12 ^ $2;
+ $xor22 = $13 ^ $3;
+ $xor23 = $14 ^ $4;
+ $xor24 = $15 ^ $5;
+ $xor25 = $16 ^ $6;
+ $xor26 = $17 ^ $7;
+ $xor27 = $18 ^ $8;
+ $xor28 = $19 ^ $9;
+ $sub = (0 - ($b))|0;
+ $and = $xor & $sub;
+ $and29 = $xor20 & $sub;
+ $and30 = $xor21 & $sub;
+ $and31 = $xor22 & $sub;
+ $and32 = $xor23 & $sub;
+ $and33 = $xor24 & $sub;
+ $and34 = $xor25 & $sub;
+ $and35 = $xor26 & $sub;
+ $and36 = $xor27 & $sub;
+ $and37 = $xor28 & $sub;
+ $xor38 = $and ^ $0;
+ HEAP32[$f>>2] = $xor38;
+ $xor40 = $and29 ^ $1;
+ HEAP32[$arrayidx1>>2] = $xor40;
+ $xor42 = $and30 ^ $2;
+ HEAP32[$arrayidx2>>2] = $xor42;
+ $xor44 = $and31 ^ $3;
+ HEAP32[$arrayidx3>>2] = $xor44;
+ $xor46 = $and32 ^ $4;
+ HEAP32[$arrayidx4>>2] = $xor46;
+ $xor48 = $and33 ^ $5;
+ HEAP32[$arrayidx5>>2] = $xor48;
+ $xor50 = $and34 ^ $6;
+ HEAP32[$arrayidx6>>2] = $xor50;
+ $xor52 = $and35 ^ $7;
+ HEAP32[$arrayidx7>>2] = $xor52;
+ $xor54 = $and36 ^ $8;
+ HEAP32[$arrayidx8>>2] = $xor54;
+ $xor56 = $and37 ^ $9;
+ HEAP32[$arrayidx9>>2] = $xor56;
+ return;
+}
+function _fe_copy($h,$f) {
+ $h = $h|0;
+ $f = $f|0;
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx11 = 0, $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0;
+ var $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[$f>>2]|0;
+ $arrayidx1 = ((($f)) + 4|0);
+ $1 = HEAP32[$arrayidx1>>2]|0;
+ $arrayidx2 = ((($f)) + 8|0);
+ $2 = HEAP32[$arrayidx2>>2]|0;
+ $arrayidx3 = ((($f)) + 12|0);
+ $3 = HEAP32[$arrayidx3>>2]|0;
+ $arrayidx4 = ((($f)) + 16|0);
+ $4 = HEAP32[$arrayidx4>>2]|0;
+ $arrayidx5 = ((($f)) + 20|0);
+ $5 = HEAP32[$arrayidx5>>2]|0;
+ $arrayidx6 = ((($f)) + 24|0);
+ $6 = HEAP32[$arrayidx6>>2]|0;
+ $arrayidx7 = ((($f)) + 28|0);
+ $7 = HEAP32[$arrayidx7>>2]|0;
+ $arrayidx8 = ((($f)) + 32|0);
+ $8 = HEAP32[$arrayidx8>>2]|0;
+ $arrayidx9 = ((($f)) + 36|0);
+ $9 = HEAP32[$arrayidx9>>2]|0;
+ HEAP32[$h>>2] = $0;
+ $arrayidx11 = ((($h)) + 4|0);
+ HEAP32[$arrayidx11>>2] = $1;
+ $arrayidx12 = ((($h)) + 8|0);
+ HEAP32[$arrayidx12>>2] = $2;
+ $arrayidx13 = ((($h)) + 12|0);
+ HEAP32[$arrayidx13>>2] = $3;
+ $arrayidx14 = ((($h)) + 16|0);
+ HEAP32[$arrayidx14>>2] = $4;
+ $arrayidx15 = ((($h)) + 20|0);
+ HEAP32[$arrayidx15>>2] = $5;
+ $arrayidx16 = ((($h)) + 24|0);
+ HEAP32[$arrayidx16>>2] = $6;
+ $arrayidx17 = ((($h)) + 28|0);
+ HEAP32[$arrayidx17>>2] = $7;
+ $arrayidx18 = ((($h)) + 32|0);
+ HEAP32[$arrayidx18>>2] = $8;
+ $arrayidx19 = ((($h)) + 36|0);
+ HEAP32[$arrayidx19>>2] = $9;
+ return;
+}
+function _fe_frombytes($h,$s) {
+ $h = $h|0;
+ $s = $s|0;
+ var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
+ var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
+ var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0;
+ var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0;
+ var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $add$ptr = 0, $add$ptr11 = 0, $add$ptr13 = 0, $add$ptr16 = 0, $add$ptr19 = 0, $add$ptr2 = 0, $add$ptr22 = 0, $add$ptr5 = 0, $add$ptr8 = 0, $arrayidx73 = 0;
+ var $arrayidx75 = 0, $arrayidx77 = 0, $arrayidx79 = 0, $arrayidx81 = 0, $arrayidx83 = 0, $arrayidx85 = 0, $arrayidx87 = 0, $arrayidx89 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (_load_4($s)|0);
+ $1 = (getTempRet0() | 0);
+ $add$ptr = ((($s)) + 4|0);
+ $2 = (_load_3($add$ptr)|0);
+ $3 = (getTempRet0() | 0);
+ $4 = (_bitshift64Shl(($2|0),($3|0),6)|0);
+ $5 = (getTempRet0() | 0);
+ $add$ptr2 = ((($s)) + 7|0);
+ $6 = (_load_3($add$ptr2)|0);
+ $7 = (getTempRet0() | 0);
+ $8 = (_bitshift64Shl(($6|0),($7|0),5)|0);
+ $9 = (getTempRet0() | 0);
+ $add$ptr5 = ((($s)) + 10|0);
+ $10 = (_load_3($add$ptr5)|0);
+ $11 = (getTempRet0() | 0);
+ $12 = (_bitshift64Shl(($10|0),($11|0),3)|0);
+ $13 = (getTempRet0() | 0);
+ $add$ptr8 = ((($s)) + 13|0);
+ $14 = (_load_3($add$ptr8)|0);
+ $15 = (getTempRet0() | 0);
+ $16 = (_bitshift64Shl(($14|0),($15|0),2)|0);
+ $17 = (getTempRet0() | 0);
+ $add$ptr11 = ((($s)) + 16|0);
+ $18 = (_load_4($add$ptr11)|0);
+ $19 = (getTempRet0() | 0);
+ $add$ptr13 = ((($s)) + 20|0);
+ $20 = (_load_3($add$ptr13)|0);
+ $21 = (getTempRet0() | 0);
+ $22 = (_bitshift64Shl(($20|0),($21|0),7)|0);
+ $23 = (getTempRet0() | 0);
+ $add$ptr16 = ((($s)) + 23|0);
+ $24 = (_load_3($add$ptr16)|0);
+ $25 = (getTempRet0() | 0);
+ $26 = (_bitshift64Shl(($24|0),($25|0),5)|0);
+ $27 = (getTempRet0() | 0);
+ $add$ptr19 = ((($s)) + 26|0);
+ $28 = (_load_3($add$ptr19)|0);
+ $29 = (getTempRet0() | 0);
+ $30 = (_bitshift64Shl(($28|0),($29|0),4)|0);
+ $31 = (getTempRet0() | 0);
+ $add$ptr22 = ((($s)) + 29|0);
+ $32 = (_load_3($add$ptr22)|0);
+ $33 = (getTempRet0() | 0);
+ $34 = (_bitshift64Shl(($32|0),($33|0),2)|0);
+ $35 = (getTempRet0() | 0);
+ $36 = $34 & 33554428;
+ $37 = (_i64Add(($36|0),0,16777216,0)|0);
+ $38 = (getTempRet0() | 0);
+ $39 = (_bitshift64Lshr(($37|0),($38|0),25)|0);
+ $40 = (getTempRet0() | 0);
+ $41 = (_i64Subtract(0,0,($39|0),($40|0))|0);
+ $42 = (getTempRet0() | 0);
+ $43 = $41 & 19;
+ $44 = (_i64Add(($43|0),0,($0|0),($1|0))|0);
+ $45 = (getTempRet0() | 0);
+ $46 = $37 & 33554432;
+ $47 = (_i64Subtract(($36|0),0,($46|0),0)|0);
+ $48 = (getTempRet0() | 0);
+ $49 = (_i64Add(($4|0),($5|0),16777216,0)|0);
+ $50 = (getTempRet0() | 0);
+ $51 = (_bitshift64Ashr(($49|0),($50|0),25)|0);
+ $52 = (getTempRet0() | 0);
+ $53 = (_i64Add(($51|0),($52|0),($8|0),($9|0))|0);
+ $54 = (getTempRet0() | 0);
+ $55 = $49 & -33554432;
+ $56 = (_i64Subtract(($4|0),($5|0),($55|0),0)|0);
+ $57 = (getTempRet0() | 0);
+ $58 = (_i64Add(($12|0),($13|0),16777216,0)|0);
+ $59 = (getTempRet0() | 0);
+ $60 = (_bitshift64Ashr(($58|0),($59|0),25)|0);
+ $61 = (getTempRet0() | 0);
+ $62 = (_i64Add(($60|0),($61|0),($16|0),($17|0))|0);
+ $63 = (getTempRet0() | 0);
+ $64 = $58 & -33554432;
+ $65 = (_i64Subtract(($12|0),($13|0),($64|0),0)|0);
+ $66 = (getTempRet0() | 0);
+ $67 = (_i64Add(($18|0),($19|0),16777216,0)|0);
+ $68 = (getTempRet0() | 0);
+ $69 = (_bitshift64Ashr(($67|0),($68|0),25)|0);
+ $70 = (getTempRet0() | 0);
+ $71 = (_i64Add(($22|0),($23|0),($69|0),($70|0))|0);
+ $72 = (getTempRet0() | 0);
+ $73 = $67 & -33554432;
+ $74 = (_i64Subtract(($18|0),($19|0),($73|0),0)|0);
+ $75 = (getTempRet0() | 0);
+ $76 = (_i64Add(($26|0),($27|0),16777216,0)|0);
+ $77 = (getTempRet0() | 0);
+ $78 = (_bitshift64Ashr(($76|0),($77|0),25)|0);
+ $79 = (getTempRet0() | 0);
+ $80 = (_i64Add(($78|0),($79|0),($30|0),($31|0))|0);
+ $81 = (getTempRet0() | 0);
+ $82 = $76 & -33554432;
+ $83 = (_i64Subtract(($26|0),($27|0),($82|0),0)|0);
+ $84 = (getTempRet0() | 0);
+ $85 = (_i64Add(($44|0),($45|0),33554432,0)|0);
+ $86 = (getTempRet0() | 0);
+ $87 = (_bitshift64Lshr(($85|0),($86|0),26)|0);
+ $88 = (getTempRet0() | 0);
+ $89 = (_i64Add(($56|0),($57|0),($87|0),($88|0))|0);
+ $90 = (getTempRet0() | 0);
+ $91 = $85 & -67108864;
+ $92 = (_i64Subtract(($44|0),($45|0),($91|0),0)|0);
+ $93 = (getTempRet0() | 0);
+ $94 = (_i64Add(($53|0),($54|0),33554432,0)|0);
+ $95 = (getTempRet0() | 0);
+ $96 = (_bitshift64Lshr(($94|0),($95|0),26)|0);
+ $97 = (getTempRet0() | 0);
+ $98 = (_i64Add(($65|0),($66|0),($96|0),($97|0))|0);
+ $99 = (getTempRet0() | 0);
+ $100 = $94 & -67108864;
+ $101 = (_i64Subtract(($53|0),($54|0),($100|0),0)|0);
+ $102 = (getTempRet0() | 0);
+ $103 = (_i64Add(($62|0),($63|0),33554432,0)|0);
+ $104 = (getTempRet0() | 0);
+ $105 = (_bitshift64Lshr(($103|0),($104|0),26)|0);
+ $106 = (getTempRet0() | 0);
+ $107 = (_i64Add(($74|0),($75|0),($105|0),($106|0))|0);
+ $108 = (getTempRet0() | 0);
+ $109 = $103 & -67108864;
+ $110 = (_i64Subtract(($62|0),($63|0),($109|0),0)|0);
+ $111 = (getTempRet0() | 0);
+ $112 = (_i64Add(($71|0),($72|0),33554432,0)|0);
+ $113 = (getTempRet0() | 0);
+ $114 = (_bitshift64Lshr(($112|0),($113|0),26)|0);
+ $115 = (getTempRet0() | 0);
+ $116 = (_i64Add(($83|0),($84|0),($114|0),($115|0))|0);
+ $117 = (getTempRet0() | 0);
+ $118 = $112 & -67108864;
+ $119 = (_i64Subtract(($71|0),($72|0),($118|0),0)|0);
+ $120 = (getTempRet0() | 0);
+ $121 = (_i64Add(($80|0),($81|0),33554432,0)|0);
+ $122 = (getTempRet0() | 0);
+ $123 = (_bitshift64Lshr(($121|0),($122|0),26)|0);
+ $124 = (getTempRet0() | 0);
+ $125 = (_i64Add(($47|0),($48|0),($123|0),($124|0))|0);
+ $126 = (getTempRet0() | 0);
+ $127 = $121 & -67108864;
+ $128 = (_i64Subtract(($80|0),($81|0),($127|0),0)|0);
+ $129 = (getTempRet0() | 0);
+ HEAP32[$h>>2] = $92;
+ $arrayidx73 = ((($h)) + 4|0);
+ HEAP32[$arrayidx73>>2] = $89;
+ $arrayidx75 = ((($h)) + 8|0);
+ HEAP32[$arrayidx75>>2] = $101;
+ $arrayidx77 = ((($h)) + 12|0);
+ HEAP32[$arrayidx77>>2] = $98;
+ $arrayidx79 = ((($h)) + 16|0);
+ HEAP32[$arrayidx79>>2] = $110;
+ $arrayidx81 = ((($h)) + 20|0);
+ HEAP32[$arrayidx81>>2] = $107;
+ $arrayidx83 = ((($h)) + 24|0);
+ HEAP32[$arrayidx83>>2] = $119;
+ $arrayidx85 = ((($h)) + 28|0);
+ HEAP32[$arrayidx85>>2] = $116;
+ $arrayidx87 = ((($h)) + 32|0);
+ HEAP32[$arrayidx87>>2] = $128;
+ $arrayidx89 = ((($h)) + 36|0);
+ HEAP32[$arrayidx89>>2] = $125;
+ return;
+}
+function _load_4($in) {
+ $in = $in|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0;
+ var $arrayidx3 = 0, $arrayidx7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP8[$in>>0]|0;
+ $1 = $0&255;
+ $arrayidx1 = ((($in)) + 1|0);
+ $2 = HEAP8[$arrayidx1>>0]|0;
+ $3 = $2&255;
+ $4 = (_bitshift64Shl(($3|0),0,8)|0);
+ $5 = (getTempRet0() | 0);
+ $6 = $4 | $1;
+ $arrayidx3 = ((($in)) + 2|0);
+ $7 = HEAP8[$arrayidx3>>0]|0;
+ $8 = $7&255;
+ $9 = (_bitshift64Shl(($8|0),0,16)|0);
+ $10 = (getTempRet0() | 0);
+ $11 = $6 | $9;
+ $12 = $5 | $10;
+ $arrayidx7 = ((($in)) + 3|0);
+ $13 = HEAP8[$arrayidx7>>0]|0;
+ $14 = $13&255;
+ $15 = (_bitshift64Shl(($14|0),0,24)|0);
+ $16 = (getTempRet0() | 0);
+ $17 = $11 | $15;
+ $18 = $12 | $16;
+ setTempRet0(($18) | 0);
+ return ($17|0);
+}
+function _load_3($in) {
+ $in = $in|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP8[$in>>0]|0;
+ $1 = $0&255;
+ $arrayidx1 = ((($in)) + 1|0);
+ $2 = HEAP8[$arrayidx1>>0]|0;
+ $3 = $2&255;
+ $4 = (_bitshift64Shl(($3|0),0,8)|0);
+ $5 = (getTempRet0() | 0);
+ $6 = $4 | $1;
+ $arrayidx3 = ((($in)) + 2|0);
+ $7 = HEAP8[$arrayidx3>>0]|0;
+ $8 = $7&255;
+ $9 = (_bitshift64Shl(($8|0),0,16)|0);
+ $10 = (getTempRet0() | 0);
+ $11 = $6 | $9;
+ $12 = $5 | $10;
+ setTempRet0(($12) | 0);
+ return ($11|0);
+}
+function _fe_invert($out,$z) {
+ $out = $out|0;
+ $z = $z|0;
+ var $exitcond = 0, $exitcond33 = 0, $exitcond34 = 0, $i$727 = 0, $i$826 = 0, $i$925 = 0, $inc104 = 0, $inc117 = 0, $inc91 = 0, $t0 = 0, $t1 = 0, $t2 = 0, $t3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 192|0;
+ $t0 = sp + 144|0;
+ $t1 = sp + 96|0;
+ $t2 = sp + 48|0;
+ $t3 = sp;
+ _fe_sq($t0,$z);
+ _fe_sq($t1,$t0);
+ _fe_sq($t1,$t1);
+ _fe_mul($t1,$z,$t1);
+ _fe_mul($t0,$t0,$t1);
+ _fe_sq($t2,$t0);
+ _fe_mul($t1,$t1,$t2);
+ _fe_sq($t2,$t1);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_mul($t1,$t2,$t1);
+ _fe_sq($t2,$t1);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_mul($t2,$t2,$t1);
+ _fe_sq($t3,$t2);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_sq($t3,$t3);
+ _fe_mul($t2,$t3,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_mul($t1,$t2,$t1);
+ _fe_sq($t2,$t1);
+ $i$727 = 1;
+ while(1) {
+ _fe_sq($t2,$t2);
+ $inc91 = (($i$727) + 1)|0;
+ $exitcond34 = ($inc91|0)==(50);
+ if ($exitcond34) {
+ break;
+ } else {
+ $i$727 = $inc91;
+ }
+ }
+ _fe_mul($t2,$t2,$t1);
+ _fe_sq($t3,$t2);
+ $i$826 = 1;
+ while(1) {
+ _fe_sq($t3,$t3);
+ $inc104 = (($i$826) + 1)|0;
+ $exitcond33 = ($inc104|0)==(100);
+ if ($exitcond33) {
+ break;
+ } else {
+ $i$826 = $inc104;
+ }
+ }
+ _fe_mul($t2,$t3,$t2);
+ _fe_sq($t2,$t2);
+ $i$925 = 1;
+ while(1) {
+ _fe_sq($t2,$t2);
+ $inc117 = (($i$925) + 1)|0;
+ $exitcond = ($inc117|0)==(50);
+ if ($exitcond) {
+ break;
+ } else {
+ $i$925 = $inc117;
+ }
+ }
+ _fe_mul($t1,$t2,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_mul($out,$t1,$t0);
+ STACKTOP = sp;return;
+}
+function _fe_sq($h,$f) {
+ $h = $h|0;
+ $f = $f|0;
+ var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
+ var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
+ var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
+ var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
+ var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
+ var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
+ var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
+ var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
+ var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
+ var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
+ var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
+ var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
+ var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
+ var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $37 = 0, $38 = 0, $39 = 0;
+ var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
+ var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arrayidx1 = 0, $arrayidx2 = 0, $arrayidx291 = 0, $arrayidx293 = 0, $arrayidx295 = 0, $arrayidx297 = 0, $arrayidx299 = 0, $arrayidx3 = 0, $arrayidx301 = 0, $arrayidx303 = 0, $arrayidx305 = 0, $arrayidx307 = 0, $arrayidx4 = 0, $arrayidx5 = 0;
+ var $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $mul = 0, $mul10 = 0, $mul11 = 0, $mul12 = 0, $mul13 = 0, $mul14 = 0, $mul15 = 0, $mul16 = 0, $mul17 = 0, $mul18 = 0, $mul19 = 0, $mul20 = 0, $mul21 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[$f>>2]|0;
+ $arrayidx1 = ((($f)) + 4|0);
+ $1 = HEAP32[$arrayidx1>>2]|0;
+ $arrayidx2 = ((($f)) + 8|0);
+ $2 = HEAP32[$arrayidx2>>2]|0;
+ $arrayidx3 = ((($f)) + 12|0);
+ $3 = HEAP32[$arrayidx3>>2]|0;
+ $arrayidx4 = ((($f)) + 16|0);
+ $4 = HEAP32[$arrayidx4>>2]|0;
+ $arrayidx5 = ((($f)) + 20|0);
+ $5 = HEAP32[$arrayidx5>>2]|0;
+ $arrayidx6 = ((($f)) + 24|0);
+ $6 = HEAP32[$arrayidx6>>2]|0;
+ $arrayidx7 = ((($f)) + 28|0);
+ $7 = HEAP32[$arrayidx7>>2]|0;
+ $arrayidx8 = ((($f)) + 32|0);
+ $8 = HEAP32[$arrayidx8>>2]|0;
+ $arrayidx9 = ((($f)) + 36|0);
+ $9 = HEAP32[$arrayidx9>>2]|0;
+ $mul = $0 << 1;
+ $mul10 = $1 << 1;
+ $mul11 = $2 << 1;
+ $mul12 = $3 << 1;
+ $mul13 = $4 << 1;
+ $mul14 = $5 << 1;
+ $mul15 = $6 << 1;
+ $mul16 = $7 << 1;
+ $mul17 = ($5*38)|0;
+ $mul18 = ($6*19)|0;
+ $mul19 = ($7*38)|0;
+ $mul20 = ($8*19)|0;
+ $mul21 = ($9*38)|0;
+ $10 = ($0|0)<(0);
+ $11 = $10 << 31 >> 31;
+ $12 = (___muldi3(($0|0),($11|0),($0|0),($11|0))|0);
+ $13 = (getTempRet0() | 0);
+ $14 = ($mul|0)<(0);
+ $15 = $14 << 31 >> 31;
+ $16 = ($1|0)<(0);
+ $17 = $16 << 31 >> 31;
+ $18 = (___muldi3(($mul|0),($15|0),($1|0),($17|0))|0);
+ $19 = (getTempRet0() | 0);
+ $20 = ($2|0)<(0);
+ $21 = $20 << 31 >> 31;
+ $22 = (___muldi3(($2|0),($21|0),($mul|0),($15|0))|0);
+ $23 = (getTempRet0() | 0);
+ $24 = ($3|0)<(0);
+ $25 = $24 << 31 >> 31;
+ $26 = (___muldi3(($3|0),($25|0),($mul|0),($15|0))|0);
+ $27 = (getTempRet0() | 0);
+ $28 = ($4|0)<(0);
+ $29 = $28 << 31 >> 31;
+ $30 = (___muldi3(($4|0),($29|0),($mul|0),($15|0))|0);
+ $31 = (getTempRet0() | 0);
+ $32 = ($5|0)<(0);
+ $33 = $32 << 31 >> 31;
+ $34 = (___muldi3(($5|0),($33|0),($mul|0),($15|0))|0);
+ $35 = (getTempRet0() | 0);
+ $36 = ($6|0)<(0);
+ $37 = $36 << 31 >> 31;
+ $38 = (___muldi3(($6|0),($37|0),($mul|0),($15|0))|0);
+ $39 = (getTempRet0() | 0);
+ $40 = ($7|0)<(0);
+ $41 = $40 << 31 >> 31;
+ $42 = (___muldi3(($7|0),($41|0),($mul|0),($15|0))|0);
+ $43 = (getTempRet0() | 0);
+ $44 = ($8|0)<(0);
+ $45 = $44 << 31 >> 31;
+ $46 = (___muldi3(($8|0),($45|0),($mul|0),($15|0))|0);
+ $47 = (getTempRet0() | 0);
+ $48 = ($9|0)<(0);
+ $49 = $48 << 31 >> 31;
+ $50 = (___muldi3(($9|0),($49|0),($mul|0),($15|0))|0);
+ $51 = (getTempRet0() | 0);
+ $52 = ($mul10|0)<(0);
+ $53 = $52 << 31 >> 31;
+ $54 = (___muldi3(($mul10|0),($53|0),($1|0),($17|0))|0);
+ $55 = (getTempRet0() | 0);
+ $56 = (___muldi3(($mul10|0),($53|0),($2|0),($21|0))|0);
+ $57 = (getTempRet0() | 0);
+ $58 = ($mul12|0)<(0);
+ $59 = $58 << 31 >> 31;
+ $60 = (___muldi3(($mul12|0),($59|0),($mul10|0),($53|0))|0);
+ $61 = (getTempRet0() | 0);
+ $62 = (___muldi3(($4|0),($29|0),($mul10|0),($53|0))|0);
+ $63 = (getTempRet0() | 0);
+ $64 = ($mul14|0)<(0);
+ $65 = $64 << 31 >> 31;
+ $66 = (___muldi3(($mul14|0),($65|0),($mul10|0),($53|0))|0);
+ $67 = (getTempRet0() | 0);
+ $68 = (___muldi3(($6|0),($37|0),($mul10|0),($53|0))|0);
+ $69 = (getTempRet0() | 0);
+ $70 = ($mul16|0)<(0);
+ $71 = $70 << 31 >> 31;
+ $72 = (___muldi3(($mul16|0),($71|0),($mul10|0),($53|0))|0);
+ $73 = (getTempRet0() | 0);
+ $74 = (___muldi3(($8|0),($45|0),($mul10|0),($53|0))|0);
+ $75 = (getTempRet0() | 0);
+ $76 = ($mul21|0)<(0);
+ $77 = $76 << 31 >> 31;
+ $78 = (___muldi3(($mul21|0),($77|0),($mul10|0),($53|0))|0);
+ $79 = (getTempRet0() | 0);
+ $80 = (___muldi3(($2|0),($21|0),($2|0),($21|0))|0);
+ $81 = (getTempRet0() | 0);
+ $82 = ($mul11|0)<(0);
+ $83 = $82 << 31 >> 31;
+ $84 = (___muldi3(($mul11|0),($83|0),($3|0),($25|0))|0);
+ $85 = (getTempRet0() | 0);
+ $86 = (___muldi3(($4|0),($29|0),($mul11|0),($83|0))|0);
+ $87 = (getTempRet0() | 0);
+ $88 = (___muldi3(($5|0),($33|0),($mul11|0),($83|0))|0);
+ $89 = (getTempRet0() | 0);
+ $90 = (___muldi3(($6|0),($37|0),($mul11|0),($83|0))|0);
+ $91 = (getTempRet0() | 0);
+ $92 = (___muldi3(($7|0),($41|0),($mul11|0),($83|0))|0);
+ $93 = (getTempRet0() | 0);
+ $94 = ($mul20|0)<(0);
+ $95 = $94 << 31 >> 31;
+ $96 = (___muldi3(($mul20|0),($95|0),($mul11|0),($83|0))|0);
+ $97 = (getTempRet0() | 0);
+ $98 = (___muldi3(($mul21|0),($77|0),($2|0),($21|0))|0);
+ $99 = (getTempRet0() | 0);
+ $100 = (___muldi3(($mul12|0),($59|0),($3|0),($25|0))|0);
+ $101 = (getTempRet0() | 0);
+ $102 = (___muldi3(($mul12|0),($59|0),($4|0),($29|0))|0);
+ $103 = (getTempRet0() | 0);
+ $104 = (___muldi3(($mul14|0),($65|0),($mul12|0),($59|0))|0);
+ $105 = (getTempRet0() | 0);
+ $106 = (___muldi3(($6|0),($37|0),($mul12|0),($59|0))|0);
+ $107 = (getTempRet0() | 0);
+ $108 = ($mul19|0)<(0);
+ $109 = $108 << 31 >> 31;
+ $110 = (___muldi3(($mul19|0),($109|0),($mul12|0),($59|0))|0);
+ $111 = (getTempRet0() | 0);
+ $112 = (___muldi3(($mul20|0),($95|0),($mul12|0),($59|0))|0);
+ $113 = (getTempRet0() | 0);
+ $114 = (___muldi3(($mul21|0),($77|0),($mul12|0),($59|0))|0);
+ $115 = (getTempRet0() | 0);
+ $116 = (___muldi3(($4|0),($29|0),($4|0),($29|0))|0);
+ $117 = (getTempRet0() | 0);
+ $118 = ($mul13|0)<(0);
+ $119 = $118 << 31 >> 31;
+ $120 = (___muldi3(($mul13|0),($119|0),($5|0),($33|0))|0);
+ $121 = (getTempRet0() | 0);
+ $122 = ($mul18|0)<(0);
+ $123 = $122 << 31 >> 31;
+ $124 = (___muldi3(($mul18|0),($123|0),($mul13|0),($119|0))|0);
+ $125 = (getTempRet0() | 0);
+ $126 = (___muldi3(($mul19|0),($109|0),($4|0),($29|0))|0);
+ $127 = (getTempRet0() | 0);
+ $128 = (___muldi3(($mul20|0),($95|0),($mul13|0),($119|0))|0);
+ $129 = (getTempRet0() | 0);
+ $130 = (___muldi3(($mul21|0),($77|0),($4|0),($29|0))|0);
+ $131 = (getTempRet0() | 0);
+ $132 = ($mul17|0)<(0);
+ $133 = $132 << 31 >> 31;
+ $134 = (___muldi3(($mul17|0),($133|0),($5|0),($33|0))|0);
+ $135 = (getTempRet0() | 0);
+ $136 = (___muldi3(($mul18|0),($123|0),($mul14|0),($65|0))|0);
+ $137 = (getTempRet0() | 0);
+ $138 = (___muldi3(($mul19|0),($109|0),($mul14|0),($65|0))|0);
+ $139 = (getTempRet0() | 0);
+ $140 = (___muldi3(($mul20|0),($95|0),($mul14|0),($65|0))|0);
+ $141 = (getTempRet0() | 0);
+ $142 = (___muldi3(($mul21|0),($77|0),($mul14|0),($65|0))|0);
+ $143 = (getTempRet0() | 0);
+ $144 = (___muldi3(($mul18|0),($123|0),($6|0),($37|0))|0);
+ $145 = (getTempRet0() | 0);
+ $146 = (___muldi3(($mul19|0),($109|0),($6|0),($37|0))|0);
+ $147 = (getTempRet0() | 0);
+ $148 = ($mul15|0)<(0);
+ $149 = $148 << 31 >> 31;
+ $150 = (___muldi3(($mul20|0),($95|0),($mul15|0),($149|0))|0);
+ $151 = (getTempRet0() | 0);
+ $152 = (___muldi3(($mul21|0),($77|0),($6|0),($37|0))|0);
+ $153 = (getTempRet0() | 0);
+ $154 = (___muldi3(($mul19|0),($109|0),($7|0),($41|0))|0);
+ $155 = (getTempRet0() | 0);
+ $156 = (___muldi3(($mul20|0),($95|0),($mul16|0),($71|0))|0);
+ $157 = (getTempRet0() | 0);
+ $158 = (___muldi3(($mul21|0),($77|0),($mul16|0),($71|0))|0);
+ $159 = (getTempRet0() | 0);
+ $160 = (___muldi3(($mul20|0),($95|0),($8|0),($45|0))|0);
+ $161 = (getTempRet0() | 0);
+ $162 = (___muldi3(($mul21|0),($77|0),($8|0),($45|0))|0);
+ $163 = (getTempRet0() | 0);
+ $164 = (___muldi3(($mul21|0),($77|0),($9|0),($49|0))|0);
+ $165 = (getTempRet0() | 0);
+ $166 = (_i64Add(($134|0),($135|0),($12|0),($13|0))|0);
+ $167 = (getTempRet0() | 0);
+ $168 = (_i64Add(($166|0),($167|0),($124|0),($125|0))|0);
+ $169 = (getTempRet0() | 0);
+ $170 = (_i64Add(($168|0),($169|0),($110|0),($111|0))|0);
+ $171 = (getTempRet0() | 0);
+ $172 = (_i64Add(($170|0),($171|0),($96|0),($97|0))|0);
+ $173 = (getTempRet0() | 0);
+ $174 = (_i64Add(($172|0),($173|0),($78|0),($79|0))|0);
+ $175 = (getTempRet0() | 0);
+ $176 = (_i64Add(($22|0),($23|0),($54|0),($55|0))|0);
+ $177 = (getTempRet0() | 0);
+ $178 = (_i64Add(($26|0),($27|0),($56|0),($57|0))|0);
+ $179 = (getTempRet0() | 0);
+ $180 = (_i64Add(($60|0),($61|0),($80|0),($81|0))|0);
+ $181 = (getTempRet0() | 0);
+ $182 = (_i64Add(($180|0),($181|0),($30|0),($31|0))|0);
+ $183 = (getTempRet0() | 0);
+ $184 = (_i64Add(($182|0),($183|0),($154|0),($155|0))|0);
+ $185 = (getTempRet0() | 0);
+ $186 = (_i64Add(($184|0),($185|0),($150|0),($151|0))|0);
+ $187 = (getTempRet0() | 0);
+ $188 = (_i64Add(($186|0),($187|0),($142|0),($143|0))|0);
+ $189 = (getTempRet0() | 0);
+ $190 = (_i64Add(($174|0),($175|0),33554432,0)|0);
+ $191 = (getTempRet0() | 0);
+ $192 = (_bitshift64Ashr(($190|0),($191|0),26)|0);
+ $193 = (getTempRet0() | 0);
+ $194 = (_i64Add(($136|0),($137|0),($18|0),($19|0))|0);
+ $195 = (getTempRet0() | 0);
+ $196 = (_i64Add(($194|0),($195|0),($126|0),($127|0))|0);
+ $197 = (getTempRet0() | 0);
+ $198 = (_i64Add(($196|0),($197|0),($112|0),($113|0))|0);
+ $199 = (getTempRet0() | 0);
+ $200 = (_i64Add(($198|0),($199|0),($98|0),($99|0))|0);
+ $201 = (getTempRet0() | 0);
+ $202 = (_i64Add(($200|0),($201|0),($192|0),($193|0))|0);
+ $203 = (getTempRet0() | 0);
+ $204 = $190 & -67108864;
+ $205 = (_i64Subtract(($174|0),($175|0),($204|0),($191|0))|0);
+ $206 = (getTempRet0() | 0);
+ $207 = (_i64Add(($188|0),($189|0),33554432,0)|0);
+ $208 = (getTempRet0() | 0);
+ $209 = (_bitshift64Ashr(($207|0),($208|0),26)|0);
+ $210 = (getTempRet0() | 0);
+ $211 = (_i64Add(($62|0),($63|0),($84|0),($85|0))|0);
+ $212 = (getTempRet0() | 0);
+ $213 = (_i64Add(($211|0),($212|0),($34|0),($35|0))|0);
+ $214 = (getTempRet0() | 0);
+ $215 = (_i64Add(($213|0),($214|0),($156|0),($157|0))|0);
+ $216 = (getTempRet0() | 0);
+ $217 = (_i64Add(($215|0),($216|0),($152|0),($153|0))|0);
+ $218 = (getTempRet0() | 0);
+ $219 = (_i64Add(($217|0),($218|0),($209|0),($210|0))|0);
+ $220 = (getTempRet0() | 0);
+ $221 = $207 & -67108864;
+ $222 = (_i64Subtract(($188|0),($189|0),($221|0),($208|0))|0);
+ $223 = (getTempRet0() | 0);
+ $224 = (_i64Add(($202|0),($203|0),16777216,0)|0);
+ $225 = (getTempRet0() | 0);
+ $226 = (_bitshift64Ashr(($224|0),($225|0),25)|0);
+ $227 = (getTempRet0() | 0);
+ $228 = (_i64Add(($176|0),($177|0),($144|0),($145|0))|0);
+ $229 = (getTempRet0() | 0);
+ $230 = (_i64Add(($228|0),($229|0),($138|0),($139|0))|0);
+ $231 = (getTempRet0() | 0);
+ $232 = (_i64Add(($230|0),($231|0),($128|0),($129|0))|0);
+ $233 = (getTempRet0() | 0);
+ $234 = (_i64Add(($232|0),($233|0),($114|0),($115|0))|0);
+ $235 = (getTempRet0() | 0);
+ $236 = (_i64Add(($234|0),($235|0),($226|0),($227|0))|0);
+ $237 = (getTempRet0() | 0);
+ $238 = $224 & -33554432;
+ $239 = (_i64Subtract(($202|0),($203|0),($238|0),0)|0);
+ $240 = (getTempRet0() | 0);
+ $241 = (_i64Add(($219|0),($220|0),16777216,0)|0);
+ $242 = (getTempRet0() | 0);
+ $243 = (_bitshift64Ashr(($241|0),($242|0),25)|0);
+ $244 = (getTempRet0() | 0);
+ $245 = (_i64Add(($100|0),($101|0),($86|0),($87|0))|0);
+ $246 = (getTempRet0() | 0);
+ $247 = (_i64Add(($245|0),($246|0),($66|0),($67|0))|0);
+ $248 = (getTempRet0() | 0);
+ $249 = (_i64Add(($247|0),($248|0),($38|0),($39|0))|0);
+ $250 = (getTempRet0() | 0);
+ $251 = (_i64Add(($249|0),($250|0),($160|0),($161|0))|0);
+ $252 = (getTempRet0() | 0);
+ $253 = (_i64Add(($251|0),($252|0),($158|0),($159|0))|0);
+ $254 = (getTempRet0() | 0);
+ $255 = (_i64Add(($253|0),($254|0),($243|0),($244|0))|0);
+ $256 = (getTempRet0() | 0);
+ $257 = $241 & -33554432;
+ $258 = (_i64Subtract(($219|0),($220|0),($257|0),0)|0);
+ $259 = (getTempRet0() | 0);
+ $260 = (_i64Add(($236|0),($237|0),33554432,0)|0);
+ $261 = (getTempRet0() | 0);
+ $262 = (_bitshift64Ashr(($260|0),($261|0),26)|0);
+ $263 = (getTempRet0() | 0);
+ $264 = (_i64Add(($178|0),($179|0),($146|0),($147|0))|0);
+ $265 = (getTempRet0() | 0);
+ $266 = (_i64Add(($264|0),($265|0),($140|0),($141|0))|0);
+ $267 = (getTempRet0() | 0);
+ $268 = (_i64Add(($266|0),($267|0),($130|0),($131|0))|0);
+ $269 = (getTempRet0() | 0);
+ $270 = (_i64Add(($268|0),($269|0),($262|0),($263|0))|0);
+ $271 = (getTempRet0() | 0);
+ $272 = $260 & -67108864;
+ $273 = (_i64Subtract(($236|0),($237|0),($272|0),0)|0);
+ $274 = (getTempRet0() | 0);
+ $275 = (_i64Add(($255|0),($256|0),33554432,0)|0);
+ $276 = (getTempRet0() | 0);
+ $277 = (_bitshift64Ashr(($275|0),($276|0),26)|0);
+ $278 = (getTempRet0() | 0);
+ $279 = (_i64Add(($88|0),($89|0),($102|0),($103|0))|0);
+ $280 = (getTempRet0() | 0);
+ $281 = (_i64Add(($279|0),($280|0),($68|0),($69|0))|0);
+ $282 = (getTempRet0() | 0);
+ $283 = (_i64Add(($281|0),($282|0),($42|0),($43|0))|0);
+ $284 = (getTempRet0() | 0);
+ $285 = (_i64Add(($283|0),($284|0),($162|0),($163|0))|0);
+ $286 = (getTempRet0() | 0);
+ $287 = (_i64Add(($285|0),($286|0),($277|0),($278|0))|0);
+ $288 = (getTempRet0() | 0);
+ $289 = $275 & -67108864;
+ $290 = (_i64Subtract(($255|0),($256|0),($289|0),0)|0);
+ $291 = (getTempRet0() | 0);
+ $292 = (_i64Add(($270|0),($271|0),16777216,0)|0);
+ $293 = (getTempRet0() | 0);
+ $294 = (_bitshift64Ashr(($292|0),($293|0),25)|0);
+ $295 = (getTempRet0() | 0);
+ $296 = (_i64Add(($294|0),($295|0),($222|0),($223|0))|0);
+ $297 = (getTempRet0() | 0);
+ $298 = $292 & -33554432;
+ $299 = (_i64Subtract(($270|0),($271|0),($298|0),0)|0);
+ $300 = (getTempRet0() | 0);
+ $301 = (_i64Add(($287|0),($288|0),16777216,0)|0);
+ $302 = (getTempRet0() | 0);
+ $303 = (_bitshift64Ashr(($301|0),($302|0),25)|0);
+ $304 = (getTempRet0() | 0);
+ $305 = (_i64Add(($90|0),($91|0),($116|0),($117|0))|0);
+ $306 = (getTempRet0() | 0);
+ $307 = (_i64Add(($305|0),($306|0),($104|0),($105|0))|0);
+ $308 = (getTempRet0() | 0);
+ $309 = (_i64Add(($307|0),($308|0),($72|0),($73|0))|0);
+ $310 = (getTempRet0() | 0);
+ $311 = (_i64Add(($309|0),($310|0),($46|0),($47|0))|0);
+ $312 = (getTempRet0() | 0);
+ $313 = (_i64Add(($311|0),($312|0),($164|0),($165|0))|0);
+ $314 = (getTempRet0() | 0);
+ $315 = (_i64Add(($313|0),($314|0),($303|0),($304|0))|0);
+ $316 = (getTempRet0() | 0);
+ $317 = $301 & -33554432;
+ $318 = (_i64Subtract(($287|0),($288|0),($317|0),0)|0);
+ $319 = (getTempRet0() | 0);
+ $320 = (_i64Add(($296|0),($297|0),33554432,0)|0);
+ $321 = (getTempRet0() | 0);
+ $322 = (_bitshift64Lshr(($320|0),($321|0),26)|0);
+ $323 = (getTempRet0() | 0);
+ $324 = (_i64Add(($258|0),($259|0),($322|0),($323|0))|0);
+ $325 = (getTempRet0() | 0);
+ $326 = $320 & -67108864;
+ $327 = (_i64Subtract(($296|0),($297|0),($326|0),0)|0);
+ $328 = (getTempRet0() | 0);
+ $329 = (_i64Add(($315|0),($316|0),33554432,0)|0);
+ $330 = (getTempRet0() | 0);
+ $331 = (_bitshift64Ashr(($329|0),($330|0),26)|0);
+ $332 = (getTempRet0() | 0);
+ $333 = (_i64Add(($106|0),($107|0),($120|0),($121|0))|0);
+ $334 = (getTempRet0() | 0);
+ $335 = (_i64Add(($333|0),($334|0),($92|0),($93|0))|0);
+ $336 = (getTempRet0() | 0);
+ $337 = (_i64Add(($335|0),($336|0),($74|0),($75|0))|0);
+ $338 = (getTempRet0() | 0);
+ $339 = (_i64Add(($337|0),($338|0),($50|0),($51|0))|0);
+ $340 = (getTempRet0() | 0);
+ $341 = (_i64Add(($339|0),($340|0),($331|0),($332|0))|0);
+ $342 = (getTempRet0() | 0);
+ $343 = $329 & -67108864;
+ $344 = (_i64Subtract(($315|0),($316|0),($343|0),0)|0);
+ $345 = (getTempRet0() | 0);
+ $346 = (_i64Add(($341|0),($342|0),16777216,0)|0);
+ $347 = (getTempRet0() | 0);
+ $348 = (_bitshift64Ashr(($346|0),($347|0),25)|0);
+ $349 = (getTempRet0() | 0);
+ $350 = (___muldi3(($348|0),($349|0),19,0)|0);
+ $351 = (getTempRet0() | 0);
+ $352 = (_i64Add(($350|0),($351|0),($205|0),($206|0))|0);
+ $353 = (getTempRet0() | 0);
+ $354 = $346 & -33554432;
+ $355 = (_i64Subtract(($341|0),($342|0),($354|0),0)|0);
+ $356 = (getTempRet0() | 0);
+ $357 = (_i64Add(($352|0),($353|0),33554432,0)|0);
+ $358 = (getTempRet0() | 0);
+ $359 = (_bitshift64Lshr(($357|0),($358|0),26)|0);
+ $360 = (getTempRet0() | 0);
+ $361 = (_i64Add(($239|0),($240|0),($359|0),($360|0))|0);
+ $362 = (getTempRet0() | 0);
+ $363 = $357 & -67108864;
+ $364 = (_i64Subtract(($352|0),($353|0),($363|0),0)|0);
+ $365 = (getTempRet0() | 0);
+ HEAP32[$h>>2] = $364;
+ $arrayidx291 = ((($h)) + 4|0);
+ HEAP32[$arrayidx291>>2] = $361;
+ $arrayidx293 = ((($h)) + 8|0);
+ HEAP32[$arrayidx293>>2] = $273;
+ $arrayidx295 = ((($h)) + 12|0);
+ HEAP32[$arrayidx295>>2] = $299;
+ $arrayidx297 = ((($h)) + 16|0);
+ HEAP32[$arrayidx297>>2] = $327;
+ $arrayidx299 = ((($h)) + 20|0);
+ HEAP32[$arrayidx299>>2] = $324;
+ $arrayidx301 = ((($h)) + 24|0);
+ HEAP32[$arrayidx301>>2] = $290;
+ $arrayidx303 = ((($h)) + 28|0);
+ HEAP32[$arrayidx303>>2] = $318;
+ $arrayidx305 = ((($h)) + 32|0);
+ HEAP32[$arrayidx305>>2] = $344;
+ $arrayidx307 = ((($h)) + 36|0);
+ HEAP32[$arrayidx307>>2] = $355;
+ return;
+}
+function _fe_mul($h,$f,$g) {
+ $h = $h|0;
+ $f = $f|0;
+ $g = $g|0;
+ var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
+ var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
+ var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
+ var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
+ var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
+ var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
+ var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
+ var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
+ var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
+ var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
+ var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
+ var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
+ var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
+ var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
+ var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
+ var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
+ var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
+ var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0;
+ var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0;
+ var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0;
+ var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0;
+ var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0;
+ var $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0;
+ var $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0;
+ var $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0;
+ var $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
+ var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arrayidx1 = 0, $arrayidx11 = 0;
+ var $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0, $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx482 = 0, $arrayidx484 = 0, $arrayidx486 = 0, $arrayidx488 = 0, $arrayidx490 = 0, $arrayidx492 = 0, $arrayidx494 = 0, $arrayidx496 = 0, $arrayidx498 = 0;
+ var $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $mul = 0, $mul20 = 0, $mul21 = 0, $mul22 = 0, $mul23 = 0, $mul24 = 0, $mul25 = 0, $mul26 = 0, $mul27 = 0, $mul28 = 0, $mul29 = 0, $mul30 = 0, $mul31 = 0, $mul32 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[$f>>2]|0;
+ $arrayidx1 = ((($f)) + 4|0);
+ $1 = HEAP32[$arrayidx1>>2]|0;
+ $arrayidx2 = ((($f)) + 8|0);
+ $2 = HEAP32[$arrayidx2>>2]|0;
+ $arrayidx3 = ((($f)) + 12|0);
+ $3 = HEAP32[$arrayidx3>>2]|0;
+ $arrayidx4 = ((($f)) + 16|0);
+ $4 = HEAP32[$arrayidx4>>2]|0;
+ $arrayidx5 = ((($f)) + 20|0);
+ $5 = HEAP32[$arrayidx5>>2]|0;
+ $arrayidx6 = ((($f)) + 24|0);
+ $6 = HEAP32[$arrayidx6>>2]|0;
+ $arrayidx7 = ((($f)) + 28|0);
+ $7 = HEAP32[$arrayidx7>>2]|0;
+ $arrayidx8 = ((($f)) + 32|0);
+ $8 = HEAP32[$arrayidx8>>2]|0;
+ $arrayidx9 = ((($f)) + 36|0);
+ $9 = HEAP32[$arrayidx9>>2]|0;
+ $10 = HEAP32[$g>>2]|0;
+ $arrayidx11 = ((($g)) + 4|0);
+ $11 = HEAP32[$arrayidx11>>2]|0;
+ $arrayidx12 = ((($g)) + 8|0);
+ $12 = HEAP32[$arrayidx12>>2]|0;
+ $arrayidx13 = ((($g)) + 12|0);
+ $13 = HEAP32[$arrayidx13>>2]|0;
+ $arrayidx14 = ((($g)) + 16|0);
+ $14 = HEAP32[$arrayidx14>>2]|0;
+ $arrayidx15 = ((($g)) + 20|0);
+ $15 = HEAP32[$arrayidx15>>2]|0;
+ $arrayidx16 = ((($g)) + 24|0);
+ $16 = HEAP32[$arrayidx16>>2]|0;
+ $arrayidx17 = ((($g)) + 28|0);
+ $17 = HEAP32[$arrayidx17>>2]|0;
+ $arrayidx18 = ((($g)) + 32|0);
+ $18 = HEAP32[$arrayidx18>>2]|0;
+ $arrayidx19 = ((($g)) + 36|0);
+ $19 = HEAP32[$arrayidx19>>2]|0;
+ $mul = ($11*19)|0;
+ $mul20 = ($12*19)|0;
+ $mul21 = ($13*19)|0;
+ $mul22 = ($14*19)|0;
+ $mul23 = ($15*19)|0;
+ $mul24 = ($16*19)|0;
+ $mul25 = ($17*19)|0;
+ $mul26 = ($18*19)|0;
+ $mul27 = ($19*19)|0;
+ $mul28 = $1 << 1;
+ $mul29 = $3 << 1;
+ $mul30 = $5 << 1;
+ $mul31 = $7 << 1;
+ $mul32 = $9 << 1;
+ $20 = ($0|0)<(0);
+ $21 = $20 << 31 >> 31;
+ $22 = ($10|0)<(0);
+ $23 = $22 << 31 >> 31;
+ $24 = (___muldi3(($10|0),($23|0),($0|0),($21|0))|0);
+ $25 = (getTempRet0() | 0);
+ $26 = ($11|0)<(0);
+ $27 = $26 << 31 >> 31;
+ $28 = (___muldi3(($11|0),($27|0),($0|0),($21|0))|0);
+ $29 = (getTempRet0() | 0);
+ $30 = ($12|0)<(0);
+ $31 = $30 << 31 >> 31;
+ $32 = (___muldi3(($12|0),($31|0),($0|0),($21|0))|0);
+ $33 = (getTempRet0() | 0);
+ $34 = ($13|0)<(0);
+ $35 = $34 << 31 >> 31;
+ $36 = (___muldi3(($13|0),($35|0),($0|0),($21|0))|0);
+ $37 = (getTempRet0() | 0);
+ $38 = ($14|0)<(0);
+ $39 = $38 << 31 >> 31;
+ $40 = (___muldi3(($14|0),($39|0),($0|0),($21|0))|0);
+ $41 = (getTempRet0() | 0);
+ $42 = ($15|0)<(0);
+ $43 = $42 << 31 >> 31;
+ $44 = (___muldi3(($15|0),($43|0),($0|0),($21|0))|0);
+ $45 = (getTempRet0() | 0);
+ $46 = ($16|0)<(0);
+ $47 = $46 << 31 >> 31;
+ $48 = (___muldi3(($16|0),($47|0),($0|0),($21|0))|0);
+ $49 = (getTempRet0() | 0);
+ $50 = ($17|0)<(0);
+ $51 = $50 << 31 >> 31;
+ $52 = (___muldi3(($17|0),($51|0),($0|0),($21|0))|0);
+ $53 = (getTempRet0() | 0);
+ $54 = ($18|0)<(0);
+ $55 = $54 << 31 >> 31;
+ $56 = (___muldi3(($18|0),($55|0),($0|0),($21|0))|0);
+ $57 = (getTempRet0() | 0);
+ $58 = ($19|0)<(0);
+ $59 = $58 << 31 >> 31;
+ $60 = (___muldi3(($19|0),($59|0),($0|0),($21|0))|0);
+ $61 = (getTempRet0() | 0);
+ $62 = ($1|0)<(0);
+ $63 = $62 << 31 >> 31;
+ $64 = (___muldi3(($10|0),($23|0),($1|0),($63|0))|0);
+ $65 = (getTempRet0() | 0);
+ $66 = ($mul28|0)<(0);
+ $67 = $66 << 31 >> 31;
+ $68 = (___muldi3(($11|0),($27|0),($mul28|0),($67|0))|0);
+ $69 = (getTempRet0() | 0);
+ $70 = (___muldi3(($12|0),($31|0),($1|0),($63|0))|0);
+ $71 = (getTempRet0() | 0);
+ $72 = (___muldi3(($13|0),($35|0),($mul28|0),($67|0))|0);
+ $73 = (getTempRet0() | 0);
+ $74 = (___muldi3(($14|0),($39|0),($1|0),($63|0))|0);
+ $75 = (getTempRet0() | 0);
+ $76 = (___muldi3(($15|0),($43|0),($mul28|0),($67|0))|0);
+ $77 = (getTempRet0() | 0);
+ $78 = (___muldi3(($16|0),($47|0),($1|0),($63|0))|0);
+ $79 = (getTempRet0() | 0);
+ $80 = (___muldi3(($17|0),($51|0),($mul28|0),($67|0))|0);
+ $81 = (getTempRet0() | 0);
+ $82 = (___muldi3(($18|0),($55|0),($1|0),($63|0))|0);
+ $83 = (getTempRet0() | 0);
+ $84 = ($mul27|0)<(0);
+ $85 = $84 << 31 >> 31;
+ $86 = (___muldi3(($mul27|0),($85|0),($mul28|0),($67|0))|0);
+ $87 = (getTempRet0() | 0);
+ $88 = ($2|0)<(0);
+ $89 = $88 << 31 >> 31;
+ $90 = (___muldi3(($10|0),($23|0),($2|0),($89|0))|0);
+ $91 = (getTempRet0() | 0);
+ $92 = (___muldi3(($11|0),($27|0),($2|0),($89|0))|0);
+ $93 = (getTempRet0() | 0);
+ $94 = (___muldi3(($12|0),($31|0),($2|0),($89|0))|0);
+ $95 = (getTempRet0() | 0);
+ $96 = (___muldi3(($13|0),($35|0),($2|0),($89|0))|0);
+ $97 = (getTempRet0() | 0);
+ $98 = (___muldi3(($14|0),($39|0),($2|0),($89|0))|0);
+ $99 = (getTempRet0() | 0);
+ $100 = (___muldi3(($15|0),($43|0),($2|0),($89|0))|0);
+ $101 = (getTempRet0() | 0);
+ $102 = (___muldi3(($16|0),($47|0),($2|0),($89|0))|0);
+ $103 = (getTempRet0() | 0);
+ $104 = (___muldi3(($17|0),($51|0),($2|0),($89|0))|0);
+ $105 = (getTempRet0() | 0);
+ $106 = ($mul26|0)<(0);
+ $107 = $106 << 31 >> 31;
+ $108 = (___muldi3(($mul26|0),($107|0),($2|0),($89|0))|0);
+ $109 = (getTempRet0() | 0);
+ $110 = (___muldi3(($mul27|0),($85|0),($2|0),($89|0))|0);
+ $111 = (getTempRet0() | 0);
+ $112 = ($3|0)<(0);
+ $113 = $112 << 31 >> 31;
+ $114 = (___muldi3(($10|0),($23|0),($3|0),($113|0))|0);
+ $115 = (getTempRet0() | 0);
+ $116 = ($mul29|0)<(0);
+ $117 = $116 << 31 >> 31;
+ $118 = (___muldi3(($11|0),($27|0),($mul29|0),($117|0))|0);
+ $119 = (getTempRet0() | 0);
+ $120 = (___muldi3(($12|0),($31|0),($3|0),($113|0))|0);
+ $121 = (getTempRet0() | 0);
+ $122 = (___muldi3(($13|0),($35|0),($mul29|0),($117|0))|0);
+ $123 = (getTempRet0() | 0);
+ $124 = (___muldi3(($14|0),($39|0),($3|0),($113|0))|0);
+ $125 = (getTempRet0() | 0);
+ $126 = (___muldi3(($15|0),($43|0),($mul29|0),($117|0))|0);
+ $127 = (getTempRet0() | 0);
+ $128 = (___muldi3(($16|0),($47|0),($3|0),($113|0))|0);
+ $129 = (getTempRet0() | 0);
+ $130 = ($mul25|0)<(0);
+ $131 = $130 << 31 >> 31;
+ $132 = (___muldi3(($mul25|0),($131|0),($mul29|0),($117|0))|0);
+ $133 = (getTempRet0() | 0);
+ $134 = (___muldi3(($mul26|0),($107|0),($3|0),($113|0))|0);
+ $135 = (getTempRet0() | 0);
+ $136 = (___muldi3(($mul27|0),($85|0),($mul29|0),($117|0))|0);
+ $137 = (getTempRet0() | 0);
+ $138 = ($4|0)<(0);
+ $139 = $138 << 31 >> 31;
+ $140 = (___muldi3(($10|0),($23|0),($4|0),($139|0))|0);
+ $141 = (getTempRet0() | 0);
+ $142 = (___muldi3(($11|0),($27|0),($4|0),($139|0))|0);
+ $143 = (getTempRet0() | 0);
+ $144 = (___muldi3(($12|0),($31|0),($4|0),($139|0))|0);
+ $145 = (getTempRet0() | 0);
+ $146 = (___muldi3(($13|0),($35|0),($4|0),($139|0))|0);
+ $147 = (getTempRet0() | 0);
+ $148 = (___muldi3(($14|0),($39|0),($4|0),($139|0))|0);
+ $149 = (getTempRet0() | 0);
+ $150 = (___muldi3(($15|0),($43|0),($4|0),($139|0))|0);
+ $151 = (getTempRet0() | 0);
+ $152 = ($mul24|0)<(0);
+ $153 = $152 << 31 >> 31;
+ $154 = (___muldi3(($mul24|0),($153|0),($4|0),($139|0))|0);
+ $155 = (getTempRet0() | 0);
+ $156 = (___muldi3(($mul25|0),($131|0),($4|0),($139|0))|0);
+ $157 = (getTempRet0() | 0);
+ $158 = (___muldi3(($mul26|0),($107|0),($4|0),($139|0))|0);
+ $159 = (getTempRet0() | 0);
+ $160 = (___muldi3(($mul27|0),($85|0),($4|0),($139|0))|0);
+ $161 = (getTempRet0() | 0);
+ $162 = ($5|0)<(0);
+ $163 = $162 << 31 >> 31;
+ $164 = (___muldi3(($10|0),($23|0),($5|0),($163|0))|0);
+ $165 = (getTempRet0() | 0);
+ $166 = ($mul30|0)<(0);
+ $167 = $166 << 31 >> 31;
+ $168 = (___muldi3(($11|0),($27|0),($mul30|0),($167|0))|0);
+ $169 = (getTempRet0() | 0);
+ $170 = (___muldi3(($12|0),($31|0),($5|0),($163|0))|0);
+ $171 = (getTempRet0() | 0);
+ $172 = (___muldi3(($13|0),($35|0),($mul30|0),($167|0))|0);
+ $173 = (getTempRet0() | 0);
+ $174 = (___muldi3(($14|0),($39|0),($5|0),($163|0))|0);
+ $175 = (getTempRet0() | 0);
+ $176 = ($mul23|0)<(0);
+ $177 = $176 << 31 >> 31;
+ $178 = (___muldi3(($mul23|0),($177|0),($mul30|0),($167|0))|0);
+ $179 = (getTempRet0() | 0);
+ $180 = (___muldi3(($mul24|0),($153|0),($5|0),($163|0))|0);
+ $181 = (getTempRet0() | 0);
+ $182 = (___muldi3(($mul25|0),($131|0),($mul30|0),($167|0))|0);
+ $183 = (getTempRet0() | 0);
+ $184 = (___muldi3(($mul26|0),($107|0),($5|0),($163|0))|0);
+ $185 = (getTempRet0() | 0);
+ $186 = (___muldi3(($mul27|0),($85|0),($mul30|0),($167|0))|0);
+ $187 = (getTempRet0() | 0);
+ $188 = ($6|0)<(0);
+ $189 = $188 << 31 >> 31;
+ $190 = (___muldi3(($10|0),($23|0),($6|0),($189|0))|0);
+ $191 = (getTempRet0() | 0);
+ $192 = (___muldi3(($11|0),($27|0),($6|0),($189|0))|0);
+ $193 = (getTempRet0() | 0);
+ $194 = (___muldi3(($12|0),($31|0),($6|0),($189|0))|0);
+ $195 = (getTempRet0() | 0);
+ $196 = (___muldi3(($13|0),($35|0),($6|0),($189|0))|0);
+ $197 = (getTempRet0() | 0);
+ $198 = ($mul22|0)<(0);
+ $199 = $198 << 31 >> 31;
+ $200 = (___muldi3(($mul22|0),($199|0),($6|0),($189|0))|0);
+ $201 = (getTempRet0() | 0);
+ $202 = (___muldi3(($mul23|0),($177|0),($6|0),($189|0))|0);
+ $203 = (getTempRet0() | 0);
+ $204 = (___muldi3(($mul24|0),($153|0),($6|0),($189|0))|0);
+ $205 = (getTempRet0() | 0);
+ $206 = (___muldi3(($mul25|0),($131|0),($6|0),($189|0))|0);
+ $207 = (getTempRet0() | 0);
+ $208 = (___muldi3(($mul26|0),($107|0),($6|0),($189|0))|0);
+ $209 = (getTempRet0() | 0);
+ $210 = (___muldi3(($mul27|0),($85|0),($6|0),($189|0))|0);
+ $211 = (getTempRet0() | 0);
+ $212 = ($7|0)<(0);
+ $213 = $212 << 31 >> 31;
+ $214 = (___muldi3(($10|0),($23|0),($7|0),($213|0))|0);
+ $215 = (getTempRet0() | 0);
+ $216 = ($mul31|0)<(0);
+ $217 = $216 << 31 >> 31;
+ $218 = (___muldi3(($11|0),($27|0),($mul31|0),($217|0))|0);
+ $219 = (getTempRet0() | 0);
+ $220 = (___muldi3(($12|0),($31|0),($7|0),($213|0))|0);
+ $221 = (getTempRet0() | 0);
+ $222 = ($mul21|0)<(0);
+ $223 = $222 << 31 >> 31;
+ $224 = (___muldi3(($mul21|0),($223|0),($mul31|0),($217|0))|0);
+ $225 = (getTempRet0() | 0);
+ $226 = (___muldi3(($mul22|0),($199|0),($7|0),($213|0))|0);
+ $227 = (getTempRet0() | 0);
+ $228 = (___muldi3(($mul23|0),($177|0),($mul31|0),($217|0))|0);
+ $229 = (getTempRet0() | 0);
+ $230 = (___muldi3(($mul24|0),($153|0),($7|0),($213|0))|0);
+ $231 = (getTempRet0() | 0);
+ $232 = (___muldi3(($mul25|0),($131|0),($mul31|0),($217|0))|0);
+ $233 = (getTempRet0() | 0);
+ $234 = (___muldi3(($mul26|0),($107|0),($7|0),($213|0))|0);
+ $235 = (getTempRet0() | 0);
+ $236 = (___muldi3(($mul27|0),($85|0),($mul31|0),($217|0))|0);
+ $237 = (getTempRet0() | 0);
+ $238 = ($8|0)<(0);
+ $239 = $238 << 31 >> 31;
+ $240 = (___muldi3(($10|0),($23|0),($8|0),($239|0))|0);
+ $241 = (getTempRet0() | 0);
+ $242 = (___muldi3(($11|0),($27|0),($8|0),($239|0))|0);
+ $243 = (getTempRet0() | 0);
+ $244 = ($mul20|0)<(0);
+ $245 = $244 << 31 >> 31;
+ $246 = (___muldi3(($mul20|0),($245|0),($8|0),($239|0))|0);
+ $247 = (getTempRet0() | 0);
+ $248 = (___muldi3(($mul21|0),($223|0),($8|0),($239|0))|0);
+ $249 = (getTempRet0() | 0);
+ $250 = (___muldi3(($mul22|0),($199|0),($8|0),($239|0))|0);
+ $251 = (getTempRet0() | 0);
+ $252 = (___muldi3(($mul23|0),($177|0),($8|0),($239|0))|0);
+ $253 = (getTempRet0() | 0);
+ $254 = (___muldi3(($mul24|0),($153|0),($8|0),($239|0))|0);
+ $255 = (getTempRet0() | 0);
+ $256 = (___muldi3(($mul25|0),($131|0),($8|0),($239|0))|0);
+ $257 = (getTempRet0() | 0);
+ $258 = (___muldi3(($mul26|0),($107|0),($8|0),($239|0))|0);
+ $259 = (getTempRet0() | 0);
+ $260 = (___muldi3(($mul27|0),($85|0),($8|0),($239|0))|0);
+ $261 = (getTempRet0() | 0);
+ $262 = ($9|0)<(0);
+ $263 = $262 << 31 >> 31;
+ $264 = (___muldi3(($10|0),($23|0),($9|0),($263|0))|0);
+ $265 = (getTempRet0() | 0);
+ $266 = ($mul32|0)<(0);
+ $267 = $266 << 31 >> 31;
+ $268 = ($mul|0)<(0);
+ $269 = $268 << 31 >> 31;
+ $270 = (___muldi3(($mul|0),($269|0),($mul32|0),($267|0))|0);
+ $271 = (getTempRet0() | 0);
+ $272 = (___muldi3(($mul20|0),($245|0),($9|0),($263|0))|0);
+ $273 = (getTempRet0() | 0);
+ $274 = (___muldi3(($mul21|0),($223|0),($mul32|0),($267|0))|0);
+ $275 = (getTempRet0() | 0);
+ $276 = (___muldi3(($mul22|0),($199|0),($9|0),($263|0))|0);
+ $277 = (getTempRet0() | 0);
+ $278 = (___muldi3(($mul23|0),($177|0),($mul32|0),($267|0))|0);
+ $279 = (getTempRet0() | 0);
+ $280 = (___muldi3(($mul24|0),($153|0),($9|0),($263|0))|0);
+ $281 = (getTempRet0() | 0);
+ $282 = (___muldi3(($mul25|0),($131|0),($mul32|0),($267|0))|0);
+ $283 = (getTempRet0() | 0);
+ $284 = (___muldi3(($mul26|0),($107|0),($9|0),($263|0))|0);
+ $285 = (getTempRet0() | 0);
+ $286 = (___muldi3(($mul27|0),($85|0),($mul32|0),($267|0))|0);
+ $287 = (getTempRet0() | 0);
+ $288 = (_i64Add(($270|0),($271|0),($24|0),($25|0))|0);
+ $289 = (getTempRet0() | 0);
+ $290 = (_i64Add(($288|0),($289|0),($246|0),($247|0))|0);
+ $291 = (getTempRet0() | 0);
+ $292 = (_i64Add(($290|0),($291|0),($224|0),($225|0))|0);
+ $293 = (getTempRet0() | 0);
+ $294 = (_i64Add(($292|0),($293|0),($200|0),($201|0))|0);
+ $295 = (getTempRet0() | 0);
+ $296 = (_i64Add(($294|0),($295|0),($178|0),($179|0))|0);
+ $297 = (getTempRet0() | 0);
+ $298 = (_i64Add(($296|0),($297|0),($154|0),($155|0))|0);
+ $299 = (getTempRet0() | 0);
+ $300 = (_i64Add(($298|0),($299|0),($132|0),($133|0))|0);
+ $301 = (getTempRet0() | 0);
+ $302 = (_i64Add(($300|0),($301|0),($108|0),($109|0))|0);
+ $303 = (getTempRet0() | 0);
+ $304 = (_i64Add(($302|0),($303|0),($86|0),($87|0))|0);
+ $305 = (getTempRet0() | 0);
+ $306 = (_i64Add(($28|0),($29|0),($64|0),($65|0))|0);
+ $307 = (getTempRet0() | 0);
+ $308 = (_i64Add(($118|0),($119|0),($140|0),($141|0))|0);
+ $309 = (getTempRet0() | 0);
+ $310 = (_i64Add(($308|0),($309|0),($94|0),($95|0))|0);
+ $311 = (getTempRet0() | 0);
+ $312 = (_i64Add(($310|0),($311|0),($72|0),($73|0))|0);
+ $313 = (getTempRet0() | 0);
+ $314 = (_i64Add(($312|0),($313|0),($40|0),($41|0))|0);
+ $315 = (getTempRet0() | 0);
+ $316 = (_i64Add(($314|0),($315|0),($278|0),($279|0))|0);
+ $317 = (getTempRet0() | 0);
+ $318 = (_i64Add(($316|0),($317|0),($254|0),($255|0))|0);
+ $319 = (getTempRet0() | 0);
+ $320 = (_i64Add(($318|0),($319|0),($232|0),($233|0))|0);
+ $321 = (getTempRet0() | 0);
+ $322 = (_i64Add(($320|0),($321|0),($208|0),($209|0))|0);
+ $323 = (getTempRet0() | 0);
+ $324 = (_i64Add(($322|0),($323|0),($186|0),($187|0))|0);
+ $325 = (getTempRet0() | 0);
+ $326 = (_i64Add(($304|0),($305|0),33554432,0)|0);
+ $327 = (getTempRet0() | 0);
+ $328 = (_bitshift64Ashr(($326|0),($327|0),26)|0);
+ $329 = (getTempRet0() | 0);
+ $330 = (_i64Add(($306|0),($307|0),($272|0),($273|0))|0);
+ $331 = (getTempRet0() | 0);
+ $332 = (_i64Add(($330|0),($331|0),($248|0),($249|0))|0);
+ $333 = (getTempRet0() | 0);
+ $334 = (_i64Add(($332|0),($333|0),($226|0),($227|0))|0);
+ $335 = (getTempRet0() | 0);
+ $336 = (_i64Add(($334|0),($335|0),($202|0),($203|0))|0);
+ $337 = (getTempRet0() | 0);
+ $338 = (_i64Add(($336|0),($337|0),($180|0),($181|0))|0);
+ $339 = (getTempRet0() | 0);
+ $340 = (_i64Add(($338|0),($339|0),($156|0),($157|0))|0);
+ $341 = (getTempRet0() | 0);
+ $342 = (_i64Add(($340|0),($341|0),($134|0),($135|0))|0);
+ $343 = (getTempRet0() | 0);
+ $344 = (_i64Add(($342|0),($343|0),($110|0),($111|0))|0);
+ $345 = (getTempRet0() | 0);
+ $346 = (_i64Add(($344|0),($345|0),($328|0),($329|0))|0);
+ $347 = (getTempRet0() | 0);
+ $348 = $326 & -67108864;
+ $349 = (_i64Subtract(($304|0),($305|0),($348|0),($327|0))|0);
+ $350 = (getTempRet0() | 0);
+ $351 = (_i64Add(($324|0),($325|0),33554432,0)|0);
+ $352 = (getTempRet0() | 0);
+ $353 = (_bitshift64Ashr(($351|0),($352|0),26)|0);
+ $354 = (getTempRet0() | 0);
+ $355 = (_i64Add(($142|0),($143|0),($164|0),($165|0))|0);
+ $356 = (getTempRet0() | 0);
+ $357 = (_i64Add(($355|0),($356|0),($120|0),($121|0))|0);
+ $358 = (getTempRet0() | 0);
+ $359 = (_i64Add(($357|0),($358|0),($96|0),($97|0))|0);
+ $360 = (getTempRet0() | 0);
+ $361 = (_i64Add(($359|0),($360|0),($74|0),($75|0))|0);
+ $362 = (getTempRet0() | 0);
+ $363 = (_i64Add(($361|0),($362|0),($44|0),($45|0))|0);
+ $364 = (getTempRet0() | 0);
+ $365 = (_i64Add(($363|0),($364|0),($280|0),($281|0))|0);
+ $366 = (getTempRet0() | 0);
+ $367 = (_i64Add(($365|0),($366|0),($256|0),($257|0))|0);
+ $368 = (getTempRet0() | 0);
+ $369 = (_i64Add(($367|0),($368|0),($234|0),($235|0))|0);
+ $370 = (getTempRet0() | 0);
+ $371 = (_i64Add(($369|0),($370|0),($210|0),($211|0))|0);
+ $372 = (getTempRet0() | 0);
+ $373 = (_i64Add(($371|0),($372|0),($353|0),($354|0))|0);
+ $374 = (getTempRet0() | 0);
+ $375 = $351 & -67108864;
+ $376 = (_i64Subtract(($324|0),($325|0),($375|0),($352|0))|0);
+ $377 = (getTempRet0() | 0);
+ $378 = (_i64Add(($346|0),($347|0),16777216,0)|0);
+ $379 = (getTempRet0() | 0);
+ $380 = (_bitshift64Ashr(($378|0),($379|0),25)|0);
+ $381 = (getTempRet0() | 0);
+ $382 = (_i64Add(($68|0),($69|0),($90|0),($91|0))|0);
+ $383 = (getTempRet0() | 0);
+ $384 = (_i64Add(($382|0),($383|0),($32|0),($33|0))|0);
+ $385 = (getTempRet0() | 0);
+ $386 = (_i64Add(($384|0),($385|0),($274|0),($275|0))|0);
+ $387 = (getTempRet0() | 0);
+ $388 = (_i64Add(($386|0),($387|0),($250|0),($251|0))|0);
+ $389 = (getTempRet0() | 0);
+ $390 = (_i64Add(($388|0),($389|0),($228|0),($229|0))|0);
+ $391 = (getTempRet0() | 0);
+ $392 = (_i64Add(($390|0),($391|0),($204|0),($205|0))|0);
+ $393 = (getTempRet0() | 0);
+ $394 = (_i64Add(($392|0),($393|0),($182|0),($183|0))|0);
+ $395 = (getTempRet0() | 0);
+ $396 = (_i64Add(($394|0),($395|0),($158|0),($159|0))|0);
+ $397 = (getTempRet0() | 0);
+ $398 = (_i64Add(($396|0),($397|0),($136|0),($137|0))|0);
+ $399 = (getTempRet0() | 0);
+ $400 = (_i64Add(($398|0),($399|0),($380|0),($381|0))|0);
+ $401 = (getTempRet0() | 0);
+ $402 = $378 & -33554432;
+ $403 = (_i64Subtract(($346|0),($347|0),($402|0),0)|0);
+ $404 = (getTempRet0() | 0);
+ $405 = (_i64Add(($373|0),($374|0),16777216,0)|0);
+ $406 = (getTempRet0() | 0);
+ $407 = (_bitshift64Ashr(($405|0),($406|0),25)|0);
+ $408 = (getTempRet0() | 0);
+ $409 = (_i64Add(($168|0),($169|0),($190|0),($191|0))|0);
+ $410 = (getTempRet0() | 0);
+ $411 = (_i64Add(($409|0),($410|0),($144|0),($145|0))|0);
+ $412 = (getTempRet0() | 0);
+ $413 = (_i64Add(($411|0),($412|0),($122|0),($123|0))|0);
+ $414 = (getTempRet0() | 0);
+ $415 = (_i64Add(($413|0),($414|0),($98|0),($99|0))|0);
+ $416 = (getTempRet0() | 0);
+ $417 = (_i64Add(($415|0),($416|0),($76|0),($77|0))|0);
+ $418 = (getTempRet0() | 0);
+ $419 = (_i64Add(($417|0),($418|0),($48|0),($49|0))|0);
+ $420 = (getTempRet0() | 0);
+ $421 = (_i64Add(($419|0),($420|0),($282|0),($283|0))|0);
+ $422 = (getTempRet0() | 0);
+ $423 = (_i64Add(($421|0),($422|0),($258|0),($259|0))|0);
+ $424 = (getTempRet0() | 0);
+ $425 = (_i64Add(($423|0),($424|0),($236|0),($237|0))|0);
+ $426 = (getTempRet0() | 0);
+ $427 = (_i64Add(($425|0),($426|0),($407|0),($408|0))|0);
+ $428 = (getTempRet0() | 0);
+ $429 = $405 & -33554432;
+ $430 = (_i64Subtract(($373|0),($374|0),($429|0),0)|0);
+ $431 = (getTempRet0() | 0);
+ $432 = (_i64Add(($400|0),($401|0),33554432,0)|0);
+ $433 = (getTempRet0() | 0);
+ $434 = (_bitshift64Ashr(($432|0),($433|0),26)|0);
+ $435 = (getTempRet0() | 0);
+ $436 = (_i64Add(($92|0),($93|0),($114|0),($115|0))|0);
+ $437 = (getTempRet0() | 0);
+ $438 = (_i64Add(($436|0),($437|0),($70|0),($71|0))|0);
+ $439 = (getTempRet0() | 0);
+ $440 = (_i64Add(($438|0),($439|0),($36|0),($37|0))|0);
+ $441 = (getTempRet0() | 0);
+ $442 = (_i64Add(($440|0),($441|0),($276|0),($277|0))|0);
+ $443 = (getTempRet0() | 0);
+ $444 = (_i64Add(($442|0),($443|0),($252|0),($253|0))|0);
+ $445 = (getTempRet0() | 0);
+ $446 = (_i64Add(($444|0),($445|0),($230|0),($231|0))|0);
+ $447 = (getTempRet0() | 0);
+ $448 = (_i64Add(($446|0),($447|0),($206|0),($207|0))|0);
+ $449 = (getTempRet0() | 0);
+ $450 = (_i64Add(($448|0),($449|0),($184|0),($185|0))|0);
+ $451 = (getTempRet0() | 0);
+ $452 = (_i64Add(($450|0),($451|0),($160|0),($161|0))|0);
+ $453 = (getTempRet0() | 0);
+ $454 = (_i64Add(($452|0),($453|0),($434|0),($435|0))|0);
+ $455 = (getTempRet0() | 0);
+ $456 = $432 & -67108864;
+ $457 = (_i64Subtract(($400|0),($401|0),($456|0),0)|0);
+ $458 = (getTempRet0() | 0);
+ $459 = (_i64Add(($427|0),($428|0),33554432,0)|0);
+ $460 = (getTempRet0() | 0);
+ $461 = (_bitshift64Ashr(($459|0),($460|0),26)|0);
+ $462 = (getTempRet0() | 0);
+ $463 = (_i64Add(($192|0),($193|0),($214|0),($215|0))|0);
+ $464 = (getTempRet0() | 0);
+ $465 = (_i64Add(($463|0),($464|0),($170|0),($171|0))|0);
+ $466 = (getTempRet0() | 0);
+ $467 = (_i64Add(($465|0),($466|0),($146|0),($147|0))|0);
+ $468 = (getTempRet0() | 0);
+ $469 = (_i64Add(($467|0),($468|0),($124|0),($125|0))|0);
+ $470 = (getTempRet0() | 0);
+ $471 = (_i64Add(($469|0),($470|0),($100|0),($101|0))|0);
+ $472 = (getTempRet0() | 0);
+ $473 = (_i64Add(($471|0),($472|0),($78|0),($79|0))|0);
+ $474 = (getTempRet0() | 0);
+ $475 = (_i64Add(($473|0),($474|0),($52|0),($53|0))|0);
+ $476 = (getTempRet0() | 0);
+ $477 = (_i64Add(($475|0),($476|0),($284|0),($285|0))|0);
+ $478 = (getTempRet0() | 0);
+ $479 = (_i64Add(($477|0),($478|0),($260|0),($261|0))|0);
+ $480 = (getTempRet0() | 0);
+ $481 = (_i64Add(($479|0),($480|0),($461|0),($462|0))|0);
+ $482 = (getTempRet0() | 0);
+ $483 = $459 & -67108864;
+ $484 = (_i64Subtract(($427|0),($428|0),($483|0),0)|0);
+ $485 = (getTempRet0() | 0);
+ $486 = (_i64Add(($454|0),($455|0),16777216,0)|0);
+ $487 = (getTempRet0() | 0);
+ $488 = (_bitshift64Ashr(($486|0),($487|0),25)|0);
+ $489 = (getTempRet0() | 0);
+ $490 = (_i64Add(($488|0),($489|0),($376|0),($377|0))|0);
+ $491 = (getTempRet0() | 0);
+ $492 = $486 & -33554432;
+ $493 = (_i64Subtract(($454|0),($455|0),($492|0),0)|0);
+ $494 = (getTempRet0() | 0);
+ $495 = (_i64Add(($481|0),($482|0),16777216,0)|0);
+ $496 = (getTempRet0() | 0);
+ $497 = (_bitshift64Ashr(($495|0),($496|0),25)|0);
+ $498 = (getTempRet0() | 0);
+ $499 = (_i64Add(($218|0),($219|0),($240|0),($241|0))|0);
+ $500 = (getTempRet0() | 0);
+ $501 = (_i64Add(($499|0),($500|0),($194|0),($195|0))|0);
+ $502 = (getTempRet0() | 0);
+ $503 = (_i64Add(($501|0),($502|0),($172|0),($173|0))|0);
+ $504 = (getTempRet0() | 0);
+ $505 = (_i64Add(($503|0),($504|0),($148|0),($149|0))|0);
+ $506 = (getTempRet0() | 0);
+ $507 = (_i64Add(($505|0),($506|0),($126|0),($127|0))|0);
+ $508 = (getTempRet0() | 0);
+ $509 = (_i64Add(($507|0),($508|0),($102|0),($103|0))|0);
+ $510 = (getTempRet0() | 0);
+ $511 = (_i64Add(($509|0),($510|0),($80|0),($81|0))|0);
+ $512 = (getTempRet0() | 0);
+ $513 = (_i64Add(($511|0),($512|0),($56|0),($57|0))|0);
+ $514 = (getTempRet0() | 0);
+ $515 = (_i64Add(($513|0),($514|0),($286|0),($287|0))|0);
+ $516 = (getTempRet0() | 0);
+ $517 = (_i64Add(($515|0),($516|0),($497|0),($498|0))|0);
+ $518 = (getTempRet0() | 0);
+ $519 = $495 & -33554432;
+ $520 = (_i64Subtract(($481|0),($482|0),($519|0),0)|0);
+ $521 = (getTempRet0() | 0);
+ $522 = (_i64Add(($490|0),($491|0),33554432,0)|0);
+ $523 = (getTempRet0() | 0);
+ $524 = (_bitshift64Lshr(($522|0),($523|0),26)|0);
+ $525 = (getTempRet0() | 0);
+ $526 = (_i64Add(($430|0),($431|0),($524|0),($525|0))|0);
+ $527 = (getTempRet0() | 0);
+ $528 = $522 & -67108864;
+ $529 = (_i64Subtract(($490|0),($491|0),($528|0),0)|0);
+ $530 = (getTempRet0() | 0);
+ $531 = (_i64Add(($517|0),($518|0),33554432,0)|0);
+ $532 = (getTempRet0() | 0);
+ $533 = (_bitshift64Ashr(($531|0),($532|0),26)|0);
+ $534 = (getTempRet0() | 0);
+ $535 = (_i64Add(($242|0),($243|0),($264|0),($265|0))|0);
+ $536 = (getTempRet0() | 0);
+ $537 = (_i64Add(($535|0),($536|0),($220|0),($221|0))|0);
+ $538 = (getTempRet0() | 0);
+ $539 = (_i64Add(($537|0),($538|0),($196|0),($197|0))|0);
+ $540 = (getTempRet0() | 0);
+ $541 = (_i64Add(($539|0),($540|0),($174|0),($175|0))|0);
+ $542 = (getTempRet0() | 0);
+ $543 = (_i64Add(($541|0),($542|0),($150|0),($151|0))|0);
+ $544 = (getTempRet0() | 0);
+ $545 = (_i64Add(($543|0),($544|0),($128|0),($129|0))|0);
+ $546 = (getTempRet0() | 0);
+ $547 = (_i64Add(($545|0),($546|0),($104|0),($105|0))|0);
+ $548 = (getTempRet0() | 0);
+ $549 = (_i64Add(($547|0),($548|0),($82|0),($83|0))|0);
+ $550 = (getTempRet0() | 0);
+ $551 = (_i64Add(($549|0),($550|0),($60|0),($61|0))|0);
+ $552 = (getTempRet0() | 0);
+ $553 = (_i64Add(($551|0),($552|0),($533|0),($534|0))|0);
+ $554 = (getTempRet0() | 0);
+ $555 = $531 & -67108864;
+ $556 = (_i64Subtract(($517|0),($518|0),($555|0),0)|0);
+ $557 = (getTempRet0() | 0);
+ $558 = (_i64Add(($553|0),($554|0),16777216,0)|0);
+ $559 = (getTempRet0() | 0);
+ $560 = (_bitshift64Ashr(($558|0),($559|0),25)|0);
+ $561 = (getTempRet0() | 0);
+ $562 = (___muldi3(($560|0),($561|0),19,0)|0);
+ $563 = (getTempRet0() | 0);
+ $564 = (_i64Add(($562|0),($563|0),($349|0),($350|0))|0);
+ $565 = (getTempRet0() | 0);
+ $566 = $558 & -33554432;
+ $567 = (_i64Subtract(($553|0),($554|0),($566|0),0)|0);
+ $568 = (getTempRet0() | 0);
+ $569 = (_i64Add(($564|0),($565|0),33554432,0)|0);
+ $570 = (getTempRet0() | 0);
+ $571 = (_bitshift64Lshr(($569|0),($570|0),26)|0);
+ $572 = (getTempRet0() | 0);
+ $573 = (_i64Add(($403|0),($404|0),($571|0),($572|0))|0);
+ $574 = (getTempRet0() | 0);
+ $575 = $569 & -67108864;
+ $576 = (_i64Subtract(($564|0),($565|0),($575|0),0)|0);
+ $577 = (getTempRet0() | 0);
+ HEAP32[$h>>2] = $576;
+ $arrayidx482 = ((($h)) + 4|0);
+ HEAP32[$arrayidx482>>2] = $573;
+ $arrayidx484 = ((($h)) + 8|0);
+ HEAP32[$arrayidx484>>2] = $457;
+ $arrayidx486 = ((($h)) + 12|0);
+ HEAP32[$arrayidx486>>2] = $493;
+ $arrayidx488 = ((($h)) + 16|0);
+ HEAP32[$arrayidx488>>2] = $529;
+ $arrayidx490 = ((($h)) + 20|0);
+ HEAP32[$arrayidx490>>2] = $526;
+ $arrayidx492 = ((($h)) + 24|0);
+ HEAP32[$arrayidx492>>2] = $484;
+ $arrayidx494 = ((($h)) + 28|0);
+ HEAP32[$arrayidx494>>2] = $520;
+ $arrayidx496 = ((($h)) + 32|0);
+ HEAP32[$arrayidx496>>2] = $556;
+ $arrayidx498 = ((($h)) + 36|0);
+ HEAP32[$arrayidx498>>2] = $567;
+ return;
+}
+function _fe_isnegative($f) {
+ $f = $f|0;
+ var $0 = 0, $1 = 0, $and = 0, $s = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0;
+ $s = sp;
+ _fe_tobytes($s,$f);
+ $0 = HEAP8[$s>>0]|0;
+ $1 = $0 & 1;
+ $and = $1&255;
+ STACKTOP = sp;return ($and|0);
+}
+function _fe_tobytes($s,$h) {
+ $s = $s|0;
+ $h = $h|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $add = 0;
+ var $add10 = 0, $add12 = 0, $add14 = 0, $add16 = 0, $add18 = 0, $add20 = 0, $add22 = 0, $add24 = 0, $add26 = 0, $add28 = 0, $add31 = 0, $add33 = 0, $add35 = 0, $add39 = 0, $add43 = 0, $add47 = 0, $add51 = 0, $add55 = 0, $add59 = 0, $add63 = 0;
+ var $arrayidx1 = 0, $arrayidx102 = 0, $arrayidx105 = 0, $arrayidx108 = 0, $arrayidx113 = 0, $arrayidx116 = 0, $arrayidx119 = 0, $arrayidx122 = 0, $arrayidx125 = 0, $arrayidx128 = 0, $arrayidx131 = 0, $arrayidx136 = 0, $arrayidx139 = 0, $arrayidx142 = 0, $arrayidx147 = 0, $arrayidx150 = 0, $arrayidx153 = 0, $arrayidx158 = 0, $arrayidx161 = 0, $arrayidx164 = 0;
+ var $arrayidx169 = 0, $arrayidx172 = 0, $arrayidx175 = 0, $arrayidx178 = 0, $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx73 = 0, $arrayidx76 = 0, $arrayidx8 = 0, $arrayidx80 = 0, $arrayidx83 = 0, $arrayidx86 = 0, $arrayidx9 = 0, $arrayidx91 = 0, $arrayidx94 = 0, $arrayidx97 = 0;
+ var $conv = 0, $conv101 = 0, $conv104 = 0, $conv107 = 0, $conv112 = 0, $conv115 = 0, $conv118 = 0, $conv121 = 0, $conv124 = 0, $conv127 = 0, $conv130 = 0, $conv135 = 0, $conv138 = 0, $conv141 = 0, $conv146 = 0, $conv149 = 0, $conv152 = 0, $conv157 = 0, $conv160 = 0, $conv163 = 0;
+ var $conv168 = 0, $conv171 = 0, $conv174 = 0, $conv177 = 0, $conv72 = 0, $conv75 = 0, $conv79 = 0, $conv82 = 0, $conv85 = 0, $conv90 = 0, $conv93 = 0, $conv96 = 0, $mul = 0, $mul30 = 0, $or = 0, $or100 = 0, $or111 = 0, $or134 = 0, $or145 = 0, $or156 = 0;
+ var $or167 = 0, $or89 = 0, $shl110 = 0, $shl133 = 0, $shl144 = 0, $shl155 = 0, $shl166 = 0, $shl78 = 0, $shl88 = 0, $shl99 = 0, $shr = 0, $shr11 = 0, $shr13 = 0, $shr15 = 0, $shr17 = 0, $shr19 = 0, $shr21 = 0, $shr23 = 0, $shr25 = 0, $shr27 = 0;
+ var $shr29 = 0, $shr32 = 0, $shr34 = 0, $shr38 = 0, $shr42 = 0, $shr46 = 0, $shr50 = 0, $shr54 = 0, $shr58 = 0, $shr62 = 0, $sub = 0, $sub37 = 0, $sub41 = 0, $sub45 = 0, $sub49 = 0, $sub53 = 0, $sub57 = 0, $sub61 = 0, $sub65 = 0, $sub68 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[$h>>2]|0;
+ $arrayidx1 = ((($h)) + 4|0);
+ $1 = HEAP32[$arrayidx1>>2]|0;
+ $arrayidx2 = ((($h)) + 8|0);
+ $2 = HEAP32[$arrayidx2>>2]|0;
+ $arrayidx3 = ((($h)) + 12|0);
+ $3 = HEAP32[$arrayidx3>>2]|0;
+ $arrayidx4 = ((($h)) + 16|0);
+ $4 = HEAP32[$arrayidx4>>2]|0;
+ $arrayidx5 = ((($h)) + 20|0);
+ $5 = HEAP32[$arrayidx5>>2]|0;
+ $arrayidx6 = ((($h)) + 24|0);
+ $6 = HEAP32[$arrayidx6>>2]|0;
+ $arrayidx7 = ((($h)) + 28|0);
+ $7 = HEAP32[$arrayidx7>>2]|0;
+ $arrayidx8 = ((($h)) + 32|0);
+ $8 = HEAP32[$arrayidx8>>2]|0;
+ $arrayidx9 = ((($h)) + 36|0);
+ $9 = HEAP32[$arrayidx9>>2]|0;
+ $mul = ($9*19)|0;
+ $add = (($mul) + 16777216)|0;
+ $shr = $add >> 25;
+ $add10 = (($shr) + ($0))|0;
+ $shr11 = $add10 >> 26;
+ $add12 = (($shr11) + ($1))|0;
+ $shr13 = $add12 >> 25;
+ $add14 = (($shr13) + ($2))|0;
+ $shr15 = $add14 >> 26;
+ $add16 = (($shr15) + ($3))|0;
+ $shr17 = $add16 >> 25;
+ $add18 = (($shr17) + ($4))|0;
+ $shr19 = $add18 >> 26;
+ $add20 = (($shr19) + ($5))|0;
+ $shr21 = $add20 >> 25;
+ $add22 = (($shr21) + ($6))|0;
+ $shr23 = $add22 >> 26;
+ $add24 = (($shr23) + ($7))|0;
+ $shr25 = $add24 >> 25;
+ $add26 = (($shr25) + ($8))|0;
+ $shr27 = $add26 >> 26;
+ $add28 = (($shr27) + ($9))|0;
+ $shr29 = $add28 >> 25;
+ $mul30 = ($shr29*19)|0;
+ $add31 = (($mul30) + ($0))|0;
+ $shr32 = $add31 >> 26;
+ $add33 = (($shr32) + ($1))|0;
+ $shr34 = $add33 >> 25;
+ $add35 = (($shr34) + ($2))|0;
+ $sub37 = $add33 & 33554431;
+ $shr38 = $add35 >> 26;
+ $add39 = (($shr38) + ($3))|0;
+ $sub41 = $add35 & 67108863;
+ $shr42 = $add39 >> 25;
+ $add43 = (($shr42) + ($4))|0;
+ $sub45 = $add39 & 33554431;
+ $shr46 = $add43 >> 26;
+ $add47 = (($shr46) + ($5))|0;
+ $shr50 = $add47 >> 25;
+ $add51 = (($shr50) + ($6))|0;
+ $shr54 = $add51 >> 26;
+ $add55 = (($shr54) + ($7))|0;
+ $sub57 = $add51 & 67108863;
+ $shr58 = $add55 >> 25;
+ $add59 = (($shr58) + ($8))|0;
+ $sub61 = $add55 & 33554431;
+ $shr62 = $add59 >> 26;
+ $add63 = (($shr62) + ($9))|0;
+ $sub65 = $add59 & 67108863;
+ $sub68 = $add63 & 33554431;
+ $conv = $add31&255;
+ HEAP8[$s>>0] = $conv;
+ $10 = $add31 >>> 8;
+ $conv72 = $10&255;
+ $arrayidx73 = ((($s)) + 1|0);
+ HEAP8[$arrayidx73>>0] = $conv72;
+ $11 = $add31 >>> 16;
+ $conv75 = $11&255;
+ $arrayidx76 = ((($s)) + 2|0);
+ HEAP8[$arrayidx76>>0] = $conv75;
+ $sub = $add31 >>> 24;
+ $12 = $sub & 3;
+ $shl78 = $sub37 << 2;
+ $or = $shl78 | $12;
+ $conv79 = $or&255;
+ $arrayidx80 = ((($s)) + 3|0);
+ HEAP8[$arrayidx80>>0] = $conv79;
+ $13 = $add33 >>> 6;
+ $conv82 = $13&255;
+ $arrayidx83 = ((($s)) + 4|0);
+ HEAP8[$arrayidx83>>0] = $conv82;
+ $14 = $add33 >>> 14;
+ $conv85 = $14&255;
+ $arrayidx86 = ((($s)) + 5|0);
+ HEAP8[$arrayidx86>>0] = $conv85;
+ $15 = $sub37 >>> 22;
+ $shl88 = $sub41 << 3;
+ $or89 = $shl88 | $15;
+ $conv90 = $or89&255;
+ $arrayidx91 = ((($s)) + 6|0);
+ HEAP8[$arrayidx91>>0] = $conv90;
+ $16 = $add35 >>> 5;
+ $conv93 = $16&255;
+ $arrayidx94 = ((($s)) + 7|0);
+ HEAP8[$arrayidx94>>0] = $conv93;
+ $17 = $add35 >>> 13;
+ $conv96 = $17&255;
+ $arrayidx97 = ((($s)) + 8|0);
+ HEAP8[$arrayidx97>>0] = $conv96;
+ $18 = $sub41 >>> 21;
+ $shl99 = $sub45 << 5;
+ $or100 = $shl99 | $18;
+ $conv101 = $or100&255;
+ $arrayidx102 = ((($s)) + 9|0);
+ HEAP8[$arrayidx102>>0] = $conv101;
+ $19 = $add39 >>> 3;
+ $conv104 = $19&255;
+ $arrayidx105 = ((($s)) + 10|0);
+ HEAP8[$arrayidx105>>0] = $conv104;
+ $20 = $add39 >>> 11;
+ $conv107 = $20&255;
+ $arrayidx108 = ((($s)) + 11|0);
+ HEAP8[$arrayidx108>>0] = $conv107;
+ $21 = $sub45 >>> 19;
+ $shl110 = $add43 << 6;
+ $or111 = $shl110 | $21;
+ $conv112 = $or111&255;
+ $arrayidx113 = ((($s)) + 12|0);
+ HEAP8[$arrayidx113>>0] = $conv112;
+ $22 = $add43 >>> 2;
+ $conv115 = $22&255;
+ $arrayidx116 = ((($s)) + 13|0);
+ HEAP8[$arrayidx116>>0] = $conv115;
+ $23 = $add43 >>> 10;
+ $conv118 = $23&255;
+ $arrayidx119 = ((($s)) + 14|0);
+ HEAP8[$arrayidx119>>0] = $conv118;
+ $sub49 = $add43 >>> 18;
+ $conv121 = $sub49&255;
+ $arrayidx122 = ((($s)) + 15|0);
+ HEAP8[$arrayidx122>>0] = $conv121;
+ $conv124 = $add47&255;
+ $arrayidx125 = ((($s)) + 16|0);
+ HEAP8[$arrayidx125>>0] = $conv124;
+ $24 = $add47 >>> 8;
+ $conv127 = $24&255;
+ $arrayidx128 = ((($s)) + 17|0);
+ HEAP8[$arrayidx128>>0] = $conv127;
+ $25 = $add47 >>> 16;
+ $conv130 = $25&255;
+ $arrayidx131 = ((($s)) + 18|0);
+ HEAP8[$arrayidx131>>0] = $conv130;
+ $sub53 = $add47 >>> 24;
+ $26 = $sub53 & 1;
+ $shl133 = $sub57 << 1;
+ $or134 = $shl133 | $26;
+ $conv135 = $or134&255;
+ $arrayidx136 = ((($s)) + 19|0);
+ HEAP8[$arrayidx136>>0] = $conv135;
+ $27 = $add51 >>> 7;
+ $conv138 = $27&255;
+ $arrayidx139 = ((($s)) + 20|0);
+ HEAP8[$arrayidx139>>0] = $conv138;
+ $28 = $add51 >>> 15;
+ $conv141 = $28&255;
+ $arrayidx142 = ((($s)) + 21|0);
+ HEAP8[$arrayidx142>>0] = $conv141;
+ $29 = $sub57 >>> 23;
+ $shl144 = $sub61 << 3;
+ $or145 = $shl144 | $29;
+ $conv146 = $or145&255;
+ $arrayidx147 = ((($s)) + 22|0);
+ HEAP8[$arrayidx147>>0] = $conv146;
+ $30 = $add55 >>> 5;
+ $conv149 = $30&255;
+ $arrayidx150 = ((($s)) + 23|0);
+ HEAP8[$arrayidx150>>0] = $conv149;
+ $31 = $add55 >>> 13;
+ $conv152 = $31&255;
+ $arrayidx153 = ((($s)) + 24|0);
+ HEAP8[$arrayidx153>>0] = $conv152;
+ $32 = $sub61 >>> 21;
+ $shl155 = $sub65 << 4;
+ $or156 = $shl155 | $32;
+ $conv157 = $or156&255;
+ $arrayidx158 = ((($s)) + 25|0);
+ HEAP8[$arrayidx158>>0] = $conv157;
+ $33 = $add59 >>> 4;
+ $conv160 = $33&255;
+ $arrayidx161 = ((($s)) + 26|0);
+ HEAP8[$arrayidx161>>0] = $conv160;
+ $34 = $add59 >>> 12;
+ $conv163 = $34&255;
+ $arrayidx164 = ((($s)) + 27|0);
+ HEAP8[$arrayidx164>>0] = $conv163;
+ $35 = $sub65 >>> 20;
+ $shl166 = $sub68 << 6;
+ $or167 = $shl166 | $35;
+ $conv168 = $or167&255;
+ $arrayidx169 = ((($s)) + 28|0);
+ HEAP8[$arrayidx169>>0] = $conv168;
+ $36 = $add63 >>> 2;
+ $conv171 = $36&255;
+ $arrayidx172 = ((($s)) + 29|0);
+ HEAP8[$arrayidx172>>0] = $conv171;
+ $37 = $add63 >>> 10;
+ $conv174 = $37&255;
+ $arrayidx175 = ((($s)) + 30|0);
+ HEAP8[$arrayidx175>>0] = $conv174;
+ $38 = $sub68 >>> 18;
+ $conv177 = $38&255;
+ $arrayidx178 = ((($s)) + 31|0);
+ HEAP8[$arrayidx178>>0] = $conv177;
+ return;
+}
+function _fe_isnonzero($f) {
+ $f = $f|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx104 = 0, $arrayidx109 = 0, $arrayidx114 = 0, $arrayidx119 = 0, $arrayidx124 = 0, $arrayidx129 = 0, $arrayidx134 = 0;
+ var $arrayidx139 = 0, $arrayidx14 = 0, $arrayidx144 = 0, $arrayidx149 = 0, $arrayidx19 = 0, $arrayidx24 = 0, $arrayidx29 = 0, $arrayidx34 = 0, $arrayidx39 = 0, $arrayidx4 = 0, $arrayidx44 = 0, $arrayidx49 = 0, $arrayidx54 = 0, $arrayidx59 = 0, $arrayidx64 = 0, $arrayidx69 = 0, $arrayidx74 = 0, $arrayidx79 = 0, $arrayidx84 = 0, $arrayidx89 = 0;
+ var $arrayidx9 = 0, $arrayidx94 = 0, $arrayidx99 = 0, $cmp = 0, $conv155 = 0, $or10253 = 0, $or10754 = 0, $or11255 = 0, $or11756 = 0, $or12257 = 0, $or1235 = 0, $or12758 = 0, $or13259 = 0, $or13760 = 0, $or14261 = 0, $or14762 = 0, $or15263 = 0, $or1736 = 0, $or2237 = 0, $or2738 = 0;
+ var $or3239 = 0, $or33 = 0, $or3740 = 0, $or4241 = 0, $or4742 = 0, $or5243 = 0, $or5744 = 0, $or6245 = 0, $or6746 = 0, $or7247 = 0, $or734 = 0, $or7748 = 0, $or8249 = 0, $or8750 = 0, $or9251 = 0, $or9752 = 0, $s = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0;
+ $s = sp;
+ _fe_tobytes($s,$f);
+ $0 = HEAP8[$s>>0]|0;
+ $arrayidx1 = ((($s)) + 1|0);
+ $1 = HEAP8[$arrayidx1>>0]|0;
+ $or33 = $1 | $0;
+ $arrayidx4 = ((($s)) + 2|0);
+ $2 = HEAP8[$arrayidx4>>0]|0;
+ $or734 = $or33 | $2;
+ $arrayidx9 = ((($s)) + 3|0);
+ $3 = HEAP8[$arrayidx9>>0]|0;
+ $or1235 = $or734 | $3;
+ $arrayidx14 = ((($s)) + 4|0);
+ $4 = HEAP8[$arrayidx14>>0]|0;
+ $or1736 = $or1235 | $4;
+ $arrayidx19 = ((($s)) + 5|0);
+ $5 = HEAP8[$arrayidx19>>0]|0;
+ $or2237 = $or1736 | $5;
+ $arrayidx24 = ((($s)) + 6|0);
+ $6 = HEAP8[$arrayidx24>>0]|0;
+ $or2738 = $or2237 | $6;
+ $arrayidx29 = ((($s)) + 7|0);
+ $7 = HEAP8[$arrayidx29>>0]|0;
+ $or3239 = $or2738 | $7;
+ $arrayidx34 = ((($s)) + 8|0);
+ $8 = HEAP8[$arrayidx34>>0]|0;
+ $or3740 = $or3239 | $8;
+ $arrayidx39 = ((($s)) + 9|0);
+ $9 = HEAP8[$arrayidx39>>0]|0;
+ $or4241 = $or3740 | $9;
+ $arrayidx44 = ((($s)) + 10|0);
+ $10 = HEAP8[$arrayidx44>>0]|0;
+ $or4742 = $or4241 | $10;
+ $arrayidx49 = ((($s)) + 11|0);
+ $11 = HEAP8[$arrayidx49>>0]|0;
+ $or5243 = $or4742 | $11;
+ $arrayidx54 = ((($s)) + 12|0);
+ $12 = HEAP8[$arrayidx54>>0]|0;
+ $or5744 = $or5243 | $12;
+ $arrayidx59 = ((($s)) + 13|0);
+ $13 = HEAP8[$arrayidx59>>0]|0;
+ $or6245 = $or5744 | $13;
+ $arrayidx64 = ((($s)) + 14|0);
+ $14 = HEAP8[$arrayidx64>>0]|0;
+ $or6746 = $or6245 | $14;
+ $arrayidx69 = ((($s)) + 15|0);
+ $15 = HEAP8[$arrayidx69>>0]|0;
+ $or7247 = $or6746 | $15;
+ $arrayidx74 = ((($s)) + 16|0);
+ $16 = HEAP8[$arrayidx74>>0]|0;
+ $or7748 = $or7247 | $16;
+ $arrayidx79 = ((($s)) + 17|0);
+ $17 = HEAP8[$arrayidx79>>0]|0;
+ $or8249 = $or7748 | $17;
+ $arrayidx84 = ((($s)) + 18|0);
+ $18 = HEAP8[$arrayidx84>>0]|0;
+ $or8750 = $or8249 | $18;
+ $arrayidx89 = ((($s)) + 19|0);
+ $19 = HEAP8[$arrayidx89>>0]|0;
+ $or9251 = $or8750 | $19;
+ $arrayidx94 = ((($s)) + 20|0);
+ $20 = HEAP8[$arrayidx94>>0]|0;
+ $or9752 = $or9251 | $20;
+ $arrayidx99 = ((($s)) + 21|0);
+ $21 = HEAP8[$arrayidx99>>0]|0;
+ $or10253 = $or9752 | $21;
+ $arrayidx104 = ((($s)) + 22|0);
+ $22 = HEAP8[$arrayidx104>>0]|0;
+ $or10754 = $or10253 | $22;
+ $arrayidx109 = ((($s)) + 23|0);
+ $23 = HEAP8[$arrayidx109>>0]|0;
+ $or11255 = $or10754 | $23;
+ $arrayidx114 = ((($s)) + 24|0);
+ $24 = HEAP8[$arrayidx114>>0]|0;
+ $or11756 = $or11255 | $24;
+ $arrayidx119 = ((($s)) + 25|0);
+ $25 = HEAP8[$arrayidx119>>0]|0;
+ $or12257 = $or11756 | $25;
+ $arrayidx124 = ((($s)) + 26|0);
+ $26 = HEAP8[$arrayidx124>>0]|0;
+ $or12758 = $or12257 | $26;
+ $arrayidx129 = ((($s)) + 27|0);
+ $27 = HEAP8[$arrayidx129>>0]|0;
+ $or13259 = $or12758 | $27;
+ $arrayidx134 = ((($s)) + 28|0);
+ $28 = HEAP8[$arrayidx134>>0]|0;
+ $or13760 = $or13259 | $28;
+ $arrayidx139 = ((($s)) + 29|0);
+ $29 = HEAP8[$arrayidx139>>0]|0;
+ $or14261 = $or13760 | $29;
+ $arrayidx144 = ((($s)) + 30|0);
+ $30 = HEAP8[$arrayidx144>>0]|0;
+ $or14762 = $or14261 | $30;
+ $arrayidx149 = ((($s)) + 31|0);
+ $31 = HEAP8[$arrayidx149>>0]|0;
+ $or15263 = $or14762 | $31;
+ $cmp = ($or15263<<24>>24)!=(0);
+ $conv155 = $cmp&1;
+ STACKTOP = sp;return ($conv155|0);
+}
+function _fe_neg($h,$f) {
+ $h = $h|0;
+ $f = $f|0;
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx2 = 0, $arrayidx20 = 0, $arrayidx21 = 0, $arrayidx22 = 0, $arrayidx23 = 0, $arrayidx24 = 0, $arrayidx25 = 0, $arrayidx26 = 0, $arrayidx27 = 0;
+ var $arrayidx28 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $sub = 0, $sub10 = 0, $sub11 = 0, $sub12 = 0, $sub13 = 0, $sub14 = 0, $sub15 = 0, $sub16 = 0, $sub17 = 0, $sub18 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[$f>>2]|0;
+ $arrayidx1 = ((($f)) + 4|0);
+ $1 = HEAP32[$arrayidx1>>2]|0;
+ $arrayidx2 = ((($f)) + 8|0);
+ $2 = HEAP32[$arrayidx2>>2]|0;
+ $arrayidx3 = ((($f)) + 12|0);
+ $3 = HEAP32[$arrayidx3>>2]|0;
+ $arrayidx4 = ((($f)) + 16|0);
+ $4 = HEAP32[$arrayidx4>>2]|0;
+ $arrayidx5 = ((($f)) + 20|0);
+ $5 = HEAP32[$arrayidx5>>2]|0;
+ $arrayidx6 = ((($f)) + 24|0);
+ $6 = HEAP32[$arrayidx6>>2]|0;
+ $arrayidx7 = ((($f)) + 28|0);
+ $7 = HEAP32[$arrayidx7>>2]|0;
+ $arrayidx8 = ((($f)) + 32|0);
+ $8 = HEAP32[$arrayidx8>>2]|0;
+ $arrayidx9 = ((($f)) + 36|0);
+ $9 = HEAP32[$arrayidx9>>2]|0;
+ $sub = (0 - ($0))|0;
+ $sub10 = (0 - ($1))|0;
+ $sub11 = (0 - ($2))|0;
+ $sub12 = (0 - ($3))|0;
+ $sub13 = (0 - ($4))|0;
+ $sub14 = (0 - ($5))|0;
+ $sub15 = (0 - ($6))|0;
+ $sub16 = (0 - ($7))|0;
+ $sub17 = (0 - ($8))|0;
+ $sub18 = (0 - ($9))|0;
+ HEAP32[$h>>2] = $sub;
+ $arrayidx20 = ((($h)) + 4|0);
+ HEAP32[$arrayidx20>>2] = $sub10;
+ $arrayidx21 = ((($h)) + 8|0);
+ HEAP32[$arrayidx21>>2] = $sub11;
+ $arrayidx22 = ((($h)) + 12|0);
+ HEAP32[$arrayidx22>>2] = $sub12;
+ $arrayidx23 = ((($h)) + 16|0);
+ HEAP32[$arrayidx23>>2] = $sub13;
+ $arrayidx24 = ((($h)) + 20|0);
+ HEAP32[$arrayidx24>>2] = $sub14;
+ $arrayidx25 = ((($h)) + 24|0);
+ HEAP32[$arrayidx25>>2] = $sub15;
+ $arrayidx26 = ((($h)) + 28|0);
+ HEAP32[$arrayidx26>>2] = $sub16;
+ $arrayidx27 = ((($h)) + 32|0);
+ HEAP32[$arrayidx27>>2] = $sub17;
+ $arrayidx28 = ((($h)) + 36|0);
+ HEAP32[$arrayidx28>>2] = $sub18;
+ return;
+}
+function _fe_pow22523($out,$z) {
+ $out = $out|0;
+ $z = $z|0;
+ var $exitcond = 0, $exitcond34 = 0, $exitcond35 = 0, $i$728 = 0, $i$827 = 0, $i$926 = 0, $inc104 = 0, $inc117 = 0, $inc91 = 0, $t0 = 0, $t1 = 0, $t2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 144|0;
+ $t0 = sp + 96|0;
+ $t1 = sp + 48|0;
+ $t2 = sp;
+ _fe_sq($t0,$z);
+ _fe_sq($t1,$t0);
+ _fe_sq($t1,$t1);
+ _fe_mul($t1,$z,$t1);
+ _fe_mul($t0,$t0,$t1);
+ _fe_sq($t0,$t0);
+ _fe_mul($t0,$t1,$t0);
+ _fe_sq($t1,$t0);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_mul($t0,$t1,$t0);
+ _fe_sq($t1,$t0);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_mul($t1,$t1,$t0);
+ _fe_sq($t2,$t1);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_sq($t2,$t2);
+ _fe_mul($t1,$t2,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_sq($t1,$t1);
+ _fe_mul($t0,$t1,$t0);
+ _fe_sq($t1,$t0);
+ $i$728 = 1;
+ while(1) {
+ _fe_sq($t1,$t1);
+ $inc91 = (($i$728) + 1)|0;
+ $exitcond35 = ($inc91|0)==(50);
+ if ($exitcond35) {
+ break;
+ } else {
+ $i$728 = $inc91;
+ }
+ }
+ _fe_mul($t1,$t1,$t0);
+ _fe_sq($t2,$t1);
+ $i$827 = 1;
+ while(1) {
+ _fe_sq($t2,$t2);
+ $inc104 = (($i$827) + 1)|0;
+ $exitcond34 = ($inc104|0)==(100);
+ if ($exitcond34) {
+ break;
+ } else {
+ $i$827 = $inc104;
+ }
+ }
+ _fe_mul($t1,$t2,$t1);
+ _fe_sq($t1,$t1);
+ $i$926 = 1;
+ while(1) {
+ _fe_sq($t1,$t1);
+ $inc117 = (($i$926) + 1)|0;
+ $exitcond = ($inc117|0)==(50);
+ if ($exitcond) {
+ break;
+ } else {
+ $i$926 = $inc117;
+ }
+ }
+ _fe_mul($t0,$t1,$t0);
+ _fe_sq($t0,$t0);
+ _fe_sq($t0,$t0);
+ _fe_mul($out,$t0,$z);
+ STACKTOP = sp;return;
+}
+function _fe_sq2($h,$f) {
+ $h = $h|0;
+ $f = $f|0;
+ var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
+ var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
+ var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
+ var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
+ var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
+ var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
+ var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
+ var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
+ var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
+ var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
+ var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
+ var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
+ var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
+ var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
+ var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $39 = 0;
+ var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
+ var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arrayidx1 = 0, $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx301 = 0, $arrayidx303 = 0, $arrayidx305 = 0, $arrayidx307 = 0, $arrayidx309 = 0, $arrayidx311 = 0, $arrayidx313 = 0, $arrayidx315 = 0, $arrayidx317 = 0, $arrayidx4 = 0, $arrayidx5 = 0;
+ var $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $mul = 0, $mul10 = 0, $mul11 = 0, $mul12 = 0, $mul13 = 0, $mul14 = 0, $mul15 = 0, $mul16 = 0, $mul17 = 0, $mul18 = 0, $mul19 = 0, $mul20 = 0, $mul21 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[$f>>2]|0;
+ $arrayidx1 = ((($f)) + 4|0);
+ $1 = HEAP32[$arrayidx1>>2]|0;
+ $arrayidx2 = ((($f)) + 8|0);
+ $2 = HEAP32[$arrayidx2>>2]|0;
+ $arrayidx3 = ((($f)) + 12|0);
+ $3 = HEAP32[$arrayidx3>>2]|0;
+ $arrayidx4 = ((($f)) + 16|0);
+ $4 = HEAP32[$arrayidx4>>2]|0;
+ $arrayidx5 = ((($f)) + 20|0);
+ $5 = HEAP32[$arrayidx5>>2]|0;
+ $arrayidx6 = ((($f)) + 24|0);
+ $6 = HEAP32[$arrayidx6>>2]|0;
+ $arrayidx7 = ((($f)) + 28|0);
+ $7 = HEAP32[$arrayidx7>>2]|0;
+ $arrayidx8 = ((($f)) + 32|0);
+ $8 = HEAP32[$arrayidx8>>2]|0;
+ $arrayidx9 = ((($f)) + 36|0);
+ $9 = HEAP32[$arrayidx9>>2]|0;
+ $mul = $0 << 1;
+ $mul10 = $1 << 1;
+ $mul11 = $2 << 1;
+ $mul12 = $3 << 1;
+ $mul13 = $4 << 1;
+ $mul14 = $5 << 1;
+ $mul15 = $6 << 1;
+ $mul16 = $7 << 1;
+ $mul17 = ($5*38)|0;
+ $mul18 = ($6*19)|0;
+ $mul19 = ($7*38)|0;
+ $mul20 = ($8*19)|0;
+ $mul21 = ($9*38)|0;
+ $10 = ($0|0)<(0);
+ $11 = $10 << 31 >> 31;
+ $12 = (___muldi3(($0|0),($11|0),($0|0),($11|0))|0);
+ $13 = (getTempRet0() | 0);
+ $14 = ($mul|0)<(0);
+ $15 = $14 << 31 >> 31;
+ $16 = ($1|0)<(0);
+ $17 = $16 << 31 >> 31;
+ $18 = (___muldi3(($mul|0),($15|0),($1|0),($17|0))|0);
+ $19 = (getTempRet0() | 0);
+ $20 = ($2|0)<(0);
+ $21 = $20 << 31 >> 31;
+ $22 = (___muldi3(($2|0),($21|0),($mul|0),($15|0))|0);
+ $23 = (getTempRet0() | 0);
+ $24 = ($3|0)<(0);
+ $25 = $24 << 31 >> 31;
+ $26 = (___muldi3(($3|0),($25|0),($mul|0),($15|0))|0);
+ $27 = (getTempRet0() | 0);
+ $28 = ($4|0)<(0);
+ $29 = $28 << 31 >> 31;
+ $30 = (___muldi3(($4|0),($29|0),($mul|0),($15|0))|0);
+ $31 = (getTempRet0() | 0);
+ $32 = ($5|0)<(0);
+ $33 = $32 << 31 >> 31;
+ $34 = (___muldi3(($5|0),($33|0),($mul|0),($15|0))|0);
+ $35 = (getTempRet0() | 0);
+ $36 = ($6|0)<(0);
+ $37 = $36 << 31 >> 31;
+ $38 = (___muldi3(($6|0),($37|0),($mul|0),($15|0))|0);
+ $39 = (getTempRet0() | 0);
+ $40 = ($7|0)<(0);
+ $41 = $40 << 31 >> 31;
+ $42 = (___muldi3(($7|0),($41|0),($mul|0),($15|0))|0);
+ $43 = (getTempRet0() | 0);
+ $44 = ($8|0)<(0);
+ $45 = $44 << 31 >> 31;
+ $46 = (___muldi3(($8|0),($45|0),($mul|0),($15|0))|0);
+ $47 = (getTempRet0() | 0);
+ $48 = ($9|0)<(0);
+ $49 = $48 << 31 >> 31;
+ $50 = (___muldi3(($9|0),($49|0),($mul|0),($15|0))|0);
+ $51 = (getTempRet0() | 0);
+ $52 = ($mul10|0)<(0);
+ $53 = $52 << 31 >> 31;
+ $54 = (___muldi3(($mul10|0),($53|0),($1|0),($17|0))|0);
+ $55 = (getTempRet0() | 0);
+ $56 = (___muldi3(($mul10|0),($53|0),($2|0),($21|0))|0);
+ $57 = (getTempRet0() | 0);
+ $58 = ($mul12|0)<(0);
+ $59 = $58 << 31 >> 31;
+ $60 = (___muldi3(($mul12|0),($59|0),($mul10|0),($53|0))|0);
+ $61 = (getTempRet0() | 0);
+ $62 = (___muldi3(($4|0),($29|0),($mul10|0),($53|0))|0);
+ $63 = (getTempRet0() | 0);
+ $64 = ($mul14|0)<(0);
+ $65 = $64 << 31 >> 31;
+ $66 = (___muldi3(($mul14|0),($65|0),($mul10|0),($53|0))|0);
+ $67 = (getTempRet0() | 0);
+ $68 = (___muldi3(($6|0),($37|0),($mul10|0),($53|0))|0);
+ $69 = (getTempRet0() | 0);
+ $70 = ($mul16|0)<(0);
+ $71 = $70 << 31 >> 31;
+ $72 = (___muldi3(($mul16|0),($71|0),($mul10|0),($53|0))|0);
+ $73 = (getTempRet0() | 0);
+ $74 = (___muldi3(($8|0),($45|0),($mul10|0),($53|0))|0);
+ $75 = (getTempRet0() | 0);
+ $76 = ($mul21|0)<(0);
+ $77 = $76 << 31 >> 31;
+ $78 = (___muldi3(($mul21|0),($77|0),($mul10|0),($53|0))|0);
+ $79 = (getTempRet0() | 0);
+ $80 = (___muldi3(($2|0),($21|0),($2|0),($21|0))|0);
+ $81 = (getTempRet0() | 0);
+ $82 = ($mul11|0)<(0);
+ $83 = $82 << 31 >> 31;
+ $84 = (___muldi3(($mul11|0),($83|0),($3|0),($25|0))|0);
+ $85 = (getTempRet0() | 0);
+ $86 = (___muldi3(($4|0),($29|0),($mul11|0),($83|0))|0);
+ $87 = (getTempRet0() | 0);
+ $88 = (___muldi3(($5|0),($33|0),($mul11|0),($83|0))|0);
+ $89 = (getTempRet0() | 0);
+ $90 = (___muldi3(($6|0),($37|0),($mul11|0),($83|0))|0);
+ $91 = (getTempRet0() | 0);
+ $92 = (___muldi3(($7|0),($41|0),($mul11|0),($83|0))|0);
+ $93 = (getTempRet0() | 0);
+ $94 = ($mul20|0)<(0);
+ $95 = $94 << 31 >> 31;
+ $96 = (___muldi3(($mul20|0),($95|0),($mul11|0),($83|0))|0);
+ $97 = (getTempRet0() | 0);
+ $98 = (___muldi3(($mul21|0),($77|0),($2|0),($21|0))|0);
+ $99 = (getTempRet0() | 0);
+ $100 = (___muldi3(($mul12|0),($59|0),($3|0),($25|0))|0);
+ $101 = (getTempRet0() | 0);
+ $102 = (___muldi3(($mul12|0),($59|0),($4|0),($29|0))|0);
+ $103 = (getTempRet0() | 0);
+ $104 = (___muldi3(($mul14|0),($65|0),($mul12|0),($59|0))|0);
+ $105 = (getTempRet0() | 0);
+ $106 = (___muldi3(($6|0),($37|0),($mul12|0),($59|0))|0);
+ $107 = (getTempRet0() | 0);
+ $108 = ($mul19|0)<(0);
+ $109 = $108 << 31 >> 31;
+ $110 = (___muldi3(($mul19|0),($109|0),($mul12|0),($59|0))|0);
+ $111 = (getTempRet0() | 0);
+ $112 = (___muldi3(($mul20|0),($95|0),($mul12|0),($59|0))|0);
+ $113 = (getTempRet0() | 0);
+ $114 = (___muldi3(($mul21|0),($77|0),($mul12|0),($59|0))|0);
+ $115 = (getTempRet0() | 0);
+ $116 = (___muldi3(($4|0),($29|0),($4|0),($29|0))|0);
+ $117 = (getTempRet0() | 0);
+ $118 = ($mul13|0)<(0);
+ $119 = $118 << 31 >> 31;
+ $120 = (___muldi3(($mul13|0),($119|0),($5|0),($33|0))|0);
+ $121 = (getTempRet0() | 0);
+ $122 = ($mul18|0)<(0);
+ $123 = $122 << 31 >> 31;
+ $124 = (___muldi3(($mul18|0),($123|0),($mul13|0),($119|0))|0);
+ $125 = (getTempRet0() | 0);
+ $126 = (___muldi3(($mul19|0),($109|0),($4|0),($29|0))|0);
+ $127 = (getTempRet0() | 0);
+ $128 = (___muldi3(($mul20|0),($95|0),($mul13|0),($119|0))|0);
+ $129 = (getTempRet0() | 0);
+ $130 = (___muldi3(($mul21|0),($77|0),($4|0),($29|0))|0);
+ $131 = (getTempRet0() | 0);
+ $132 = ($mul17|0)<(0);
+ $133 = $132 << 31 >> 31;
+ $134 = (___muldi3(($mul17|0),($133|0),($5|0),($33|0))|0);
+ $135 = (getTempRet0() | 0);
+ $136 = (___muldi3(($mul18|0),($123|0),($mul14|0),($65|0))|0);
+ $137 = (getTempRet0() | 0);
+ $138 = (___muldi3(($mul19|0),($109|0),($mul14|0),($65|0))|0);
+ $139 = (getTempRet0() | 0);
+ $140 = (___muldi3(($mul20|0),($95|0),($mul14|0),($65|0))|0);
+ $141 = (getTempRet0() | 0);
+ $142 = (___muldi3(($mul21|0),($77|0),($mul14|0),($65|0))|0);
+ $143 = (getTempRet0() | 0);
+ $144 = (___muldi3(($mul18|0),($123|0),($6|0),($37|0))|0);
+ $145 = (getTempRet0() | 0);
+ $146 = (___muldi3(($mul19|0),($109|0),($6|0),($37|0))|0);
+ $147 = (getTempRet0() | 0);
+ $148 = ($mul15|0)<(0);
+ $149 = $148 << 31 >> 31;
+ $150 = (___muldi3(($mul20|0),($95|0),($mul15|0),($149|0))|0);
+ $151 = (getTempRet0() | 0);
+ $152 = (___muldi3(($mul21|0),($77|0),($6|0),($37|0))|0);
+ $153 = (getTempRet0() | 0);
+ $154 = (___muldi3(($mul19|0),($109|0),($7|0),($41|0))|0);
+ $155 = (getTempRet0() | 0);
+ $156 = (___muldi3(($mul20|0),($95|0),($mul16|0),($71|0))|0);
+ $157 = (getTempRet0() | 0);
+ $158 = (___muldi3(($mul21|0),($77|0),($mul16|0),($71|0))|0);
+ $159 = (getTempRet0() | 0);
+ $160 = (___muldi3(($mul20|0),($95|0),($8|0),($45|0))|0);
+ $161 = (getTempRet0() | 0);
+ $162 = (___muldi3(($mul21|0),($77|0),($8|0),($45|0))|0);
+ $163 = (getTempRet0() | 0);
+ $164 = (___muldi3(($mul21|0),($77|0),($9|0),($49|0))|0);
+ $165 = (getTempRet0() | 0);
+ $166 = (_i64Add(($134|0),($135|0),($12|0),($13|0))|0);
+ $167 = (getTempRet0() | 0);
+ $168 = (_i64Add(($166|0),($167|0),($124|0),($125|0))|0);
+ $169 = (getTempRet0() | 0);
+ $170 = (_i64Add(($168|0),($169|0),($110|0),($111|0))|0);
+ $171 = (getTempRet0() | 0);
+ $172 = (_i64Add(($170|0),($171|0),($96|0),($97|0))|0);
+ $173 = (getTempRet0() | 0);
+ $174 = (_i64Add(($172|0),($173|0),($78|0),($79|0))|0);
+ $175 = (getTempRet0() | 0);
+ $176 = (_i64Add(($136|0),($137|0),($18|0),($19|0))|0);
+ $177 = (getTempRet0() | 0);
+ $178 = (_i64Add(($176|0),($177|0),($126|0),($127|0))|0);
+ $179 = (getTempRet0() | 0);
+ $180 = (_i64Add(($178|0),($179|0),($112|0),($113|0))|0);
+ $181 = (getTempRet0() | 0);
+ $182 = (_i64Add(($180|0),($181|0),($98|0),($99|0))|0);
+ $183 = (getTempRet0() | 0);
+ $184 = (_i64Add(($22|0),($23|0),($54|0),($55|0))|0);
+ $185 = (getTempRet0() | 0);
+ $186 = (_i64Add(($184|0),($185|0),($144|0),($145|0))|0);
+ $187 = (getTempRet0() | 0);
+ $188 = (_i64Add(($186|0),($187|0),($138|0),($139|0))|0);
+ $189 = (getTempRet0() | 0);
+ $190 = (_i64Add(($188|0),($189|0),($128|0),($129|0))|0);
+ $191 = (getTempRet0() | 0);
+ $192 = (_i64Add(($190|0),($191|0),($114|0),($115|0))|0);
+ $193 = (getTempRet0() | 0);
+ $194 = (_i64Add(($26|0),($27|0),($56|0),($57|0))|0);
+ $195 = (getTempRet0() | 0);
+ $196 = (_i64Add(($194|0),($195|0),($146|0),($147|0))|0);
+ $197 = (getTempRet0() | 0);
+ $198 = (_i64Add(($196|0),($197|0),($140|0),($141|0))|0);
+ $199 = (getTempRet0() | 0);
+ $200 = (_i64Add(($198|0),($199|0),($130|0),($131|0))|0);
+ $201 = (getTempRet0() | 0);
+ $202 = (_i64Add(($60|0),($61|0),($80|0),($81|0))|0);
+ $203 = (getTempRet0() | 0);
+ $204 = (_i64Add(($202|0),($203|0),($30|0),($31|0))|0);
+ $205 = (getTempRet0() | 0);
+ $206 = (_i64Add(($204|0),($205|0),($154|0),($155|0))|0);
+ $207 = (getTempRet0() | 0);
+ $208 = (_i64Add(($206|0),($207|0),($150|0),($151|0))|0);
+ $209 = (getTempRet0() | 0);
+ $210 = (_i64Add(($208|0),($209|0),($142|0),($143|0))|0);
+ $211 = (getTempRet0() | 0);
+ $212 = (_i64Add(($62|0),($63|0),($84|0),($85|0))|0);
+ $213 = (getTempRet0() | 0);
+ $214 = (_i64Add(($212|0),($213|0),($34|0),($35|0))|0);
+ $215 = (getTempRet0() | 0);
+ $216 = (_i64Add(($214|0),($215|0),($156|0),($157|0))|0);
+ $217 = (getTempRet0() | 0);
+ $218 = (_i64Add(($216|0),($217|0),($152|0),($153|0))|0);
+ $219 = (getTempRet0() | 0);
+ $220 = (_i64Add(($100|0),($101|0),($86|0),($87|0))|0);
+ $221 = (getTempRet0() | 0);
+ $222 = (_i64Add(($220|0),($221|0),($66|0),($67|0))|0);
+ $223 = (getTempRet0() | 0);
+ $224 = (_i64Add(($222|0),($223|0),($38|0),($39|0))|0);
+ $225 = (getTempRet0() | 0);
+ $226 = (_i64Add(($224|0),($225|0),($160|0),($161|0))|0);
+ $227 = (getTempRet0() | 0);
+ $228 = (_i64Add(($226|0),($227|0),($158|0),($159|0))|0);
+ $229 = (getTempRet0() | 0);
+ $230 = (_i64Add(($88|0),($89|0),($102|0),($103|0))|0);
+ $231 = (getTempRet0() | 0);
+ $232 = (_i64Add(($230|0),($231|0),($68|0),($69|0))|0);
+ $233 = (getTempRet0() | 0);
+ $234 = (_i64Add(($232|0),($233|0),($42|0),($43|0))|0);
+ $235 = (getTempRet0() | 0);
+ $236 = (_i64Add(($234|0),($235|0),($162|0),($163|0))|0);
+ $237 = (getTempRet0() | 0);
+ $238 = (_i64Add(($90|0),($91|0),($116|0),($117|0))|0);
+ $239 = (getTempRet0() | 0);
+ $240 = (_i64Add(($238|0),($239|0),($104|0),($105|0))|0);
+ $241 = (getTempRet0() | 0);
+ $242 = (_i64Add(($240|0),($241|0),($72|0),($73|0))|0);
+ $243 = (getTempRet0() | 0);
+ $244 = (_i64Add(($242|0),($243|0),($46|0),($47|0))|0);
+ $245 = (getTempRet0() | 0);
+ $246 = (_i64Add(($244|0),($245|0),($164|0),($165|0))|0);
+ $247 = (getTempRet0() | 0);
+ $248 = (_i64Add(($106|0),($107|0),($120|0),($121|0))|0);
+ $249 = (getTempRet0() | 0);
+ $250 = (_i64Add(($248|0),($249|0),($92|0),($93|0))|0);
+ $251 = (getTempRet0() | 0);
+ $252 = (_i64Add(($250|0),($251|0),($74|0),($75|0))|0);
+ $253 = (getTempRet0() | 0);
+ $254 = (_i64Add(($252|0),($253|0),($50|0),($51|0))|0);
+ $255 = (getTempRet0() | 0);
+ $256 = (_bitshift64Shl(($174|0),($175|0),1)|0);
+ $257 = (getTempRet0() | 0);
+ $258 = (_bitshift64Shl(($182|0),($183|0),1)|0);
+ $259 = (getTempRet0() | 0);
+ $260 = (_bitshift64Shl(($192|0),($193|0),1)|0);
+ $261 = (getTempRet0() | 0);
+ $262 = (_bitshift64Shl(($200|0),($201|0),1)|0);
+ $263 = (getTempRet0() | 0);
+ $264 = (_bitshift64Shl(($210|0),($211|0),1)|0);
+ $265 = (getTempRet0() | 0);
+ $266 = (_bitshift64Shl(($218|0),($219|0),1)|0);
+ $267 = (getTempRet0() | 0);
+ $268 = (_bitshift64Shl(($228|0),($229|0),1)|0);
+ $269 = (getTempRet0() | 0);
+ $270 = (_bitshift64Shl(($236|0),($237|0),1)|0);
+ $271 = (getTempRet0() | 0);
+ $272 = (_bitshift64Shl(($246|0),($247|0),1)|0);
+ $273 = (getTempRet0() | 0);
+ $274 = (_bitshift64Shl(($254|0),($255|0),1)|0);
+ $275 = (getTempRet0() | 0);
+ $276 = (_i64Add(($256|0),($257|0),33554432,0)|0);
+ $277 = (getTempRet0() | 0);
+ $278 = (_bitshift64Ashr(($276|0),($277|0),26)|0);
+ $279 = (getTempRet0() | 0);
+ $280 = (_i64Add(($278|0),($279|0),($258|0),($259|0))|0);
+ $281 = (getTempRet0() | 0);
+ $282 = $276 & -67108864;
+ $283 = (_i64Subtract(($256|0),($257|0),($282|0),($277|0))|0);
+ $284 = (getTempRet0() | 0);
+ $285 = (_i64Add(($264|0),($265|0),33554432,0)|0);
+ $286 = (getTempRet0() | 0);
+ $287 = (_bitshift64Ashr(($285|0),($286|0),26)|0);
+ $288 = (getTempRet0() | 0);
+ $289 = (_i64Add(($287|0),($288|0),($266|0),($267|0))|0);
+ $290 = (getTempRet0() | 0);
+ $291 = $285 & -67108864;
+ $292 = (_i64Subtract(($264|0),($265|0),($291|0),($286|0))|0);
+ $293 = (getTempRet0() | 0);
+ $294 = (_i64Add(($280|0),($281|0),16777216,0)|0);
+ $295 = (getTempRet0() | 0);
+ $296 = (_bitshift64Ashr(($294|0),($295|0),25)|0);
+ $297 = (getTempRet0() | 0);
+ $298 = (_i64Add(($296|0),($297|0),($260|0),($261|0))|0);
+ $299 = (getTempRet0() | 0);
+ $300 = $294 & -33554432;
+ $301 = (_i64Subtract(($280|0),($281|0),($300|0),0)|0);
+ $302 = (getTempRet0() | 0);
+ $303 = (_i64Add(($289|0),($290|0),16777216,0)|0);
+ $304 = (getTempRet0() | 0);
+ $305 = (_bitshift64Ashr(($303|0),($304|0),25)|0);
+ $306 = (getTempRet0() | 0);
+ $307 = (_i64Add(($305|0),($306|0),($268|0),($269|0))|0);
+ $308 = (getTempRet0() | 0);
+ $309 = $303 & -33554432;
+ $310 = (_i64Subtract(($289|0),($290|0),($309|0),0)|0);
+ $311 = (getTempRet0() | 0);
+ $312 = (_i64Add(($298|0),($299|0),33554432,0)|0);
+ $313 = (getTempRet0() | 0);
+ $314 = (_bitshift64Ashr(($312|0),($313|0),26)|0);
+ $315 = (getTempRet0() | 0);
+ $316 = (_i64Add(($314|0),($315|0),($262|0),($263|0))|0);
+ $317 = (getTempRet0() | 0);
+ $318 = $312 & -67108864;
+ $319 = (_i64Subtract(($298|0),($299|0),($318|0),0)|0);
+ $320 = (getTempRet0() | 0);
+ $321 = (_i64Add(($307|0),($308|0),33554432,0)|0);
+ $322 = (getTempRet0() | 0);
+ $323 = (_bitshift64Ashr(($321|0),($322|0),26)|0);
+ $324 = (getTempRet0() | 0);
+ $325 = (_i64Add(($323|0),($324|0),($270|0),($271|0))|0);
+ $326 = (getTempRet0() | 0);
+ $327 = $321 & -67108864;
+ $328 = (_i64Subtract(($307|0),($308|0),($327|0),0)|0);
+ $329 = (getTempRet0() | 0);
+ $330 = (_i64Add(($316|0),($317|0),16777216,0)|0);
+ $331 = (getTempRet0() | 0);
+ $332 = (_bitshift64Ashr(($330|0),($331|0),25)|0);
+ $333 = (getTempRet0() | 0);
+ $334 = (_i64Add(($332|0),($333|0),($292|0),($293|0))|0);
+ $335 = (getTempRet0() | 0);
+ $336 = $330 & -33554432;
+ $337 = (_i64Subtract(($316|0),($317|0),($336|0),0)|0);
+ $338 = (getTempRet0() | 0);
+ $339 = (_i64Add(($325|0),($326|0),16777216,0)|0);
+ $340 = (getTempRet0() | 0);
+ $341 = (_bitshift64Ashr(($339|0),($340|0),25)|0);
+ $342 = (getTempRet0() | 0);
+ $343 = (_i64Add(($341|0),($342|0),($272|0),($273|0))|0);
+ $344 = (getTempRet0() | 0);
+ $345 = $339 & -33554432;
+ $346 = (_i64Subtract(($325|0),($326|0),($345|0),0)|0);
+ $347 = (getTempRet0() | 0);
+ $348 = (_i64Add(($334|0),($335|0),33554432,0)|0);
+ $349 = (getTempRet0() | 0);
+ $350 = (_bitshift64Lshr(($348|0),($349|0),26)|0);
+ $351 = (getTempRet0() | 0);
+ $352 = (_i64Add(($310|0),($311|0),($350|0),($351|0))|0);
+ $353 = (getTempRet0() | 0);
+ $354 = $348 & -67108864;
+ $355 = (_i64Subtract(($334|0),($335|0),($354|0),0)|0);
+ $356 = (getTempRet0() | 0);
+ $357 = (_i64Add(($343|0),($344|0),33554432,0)|0);
+ $358 = (getTempRet0() | 0);
+ $359 = (_bitshift64Ashr(($357|0),($358|0),26)|0);
+ $360 = (getTempRet0() | 0);
+ $361 = (_i64Add(($359|0),($360|0),($274|0),($275|0))|0);
+ $362 = (getTempRet0() | 0);
+ $363 = $357 & -67108864;
+ $364 = (_i64Subtract(($343|0),($344|0),($363|0),0)|0);
+ $365 = (getTempRet0() | 0);
+ $366 = (_i64Add(($361|0),($362|0),16777216,0)|0);
+ $367 = (getTempRet0() | 0);
+ $368 = (_bitshift64Ashr(($366|0),($367|0),25)|0);
+ $369 = (getTempRet0() | 0);
+ $370 = (___muldi3(($368|0),($369|0),19,0)|0);
+ $371 = (getTempRet0() | 0);
+ $372 = (_i64Add(($370|0),($371|0),($283|0),($284|0))|0);
+ $373 = (getTempRet0() | 0);
+ $374 = $366 & -33554432;
+ $375 = (_i64Subtract(($361|0),($362|0),($374|0),0)|0);
+ $376 = (getTempRet0() | 0);
+ $377 = (_i64Add(($372|0),($373|0),33554432,0)|0);
+ $378 = (getTempRet0() | 0);
+ $379 = (_bitshift64Lshr(($377|0),($378|0),26)|0);
+ $380 = (getTempRet0() | 0);
+ $381 = (_i64Add(($301|0),($302|0),($379|0),($380|0))|0);
+ $382 = (getTempRet0() | 0);
+ $383 = $377 & -67108864;
+ $384 = (_i64Subtract(($372|0),($373|0),($383|0),0)|0);
+ $385 = (getTempRet0() | 0);
+ HEAP32[$h>>2] = $384;
+ $arrayidx301 = ((($h)) + 4|0);
+ HEAP32[$arrayidx301>>2] = $381;
+ $arrayidx303 = ((($h)) + 8|0);
+ HEAP32[$arrayidx303>>2] = $319;
+ $arrayidx305 = ((($h)) + 12|0);
+ HEAP32[$arrayidx305>>2] = $337;
+ $arrayidx307 = ((($h)) + 16|0);
+ HEAP32[$arrayidx307>>2] = $355;
+ $arrayidx309 = ((($h)) + 20|0);
+ HEAP32[$arrayidx309>>2] = $352;
+ $arrayidx311 = ((($h)) + 24|0);
+ HEAP32[$arrayidx311>>2] = $328;
+ $arrayidx313 = ((($h)) + 28|0);
+ HEAP32[$arrayidx313>>2] = $346;
+ $arrayidx315 = ((($h)) + 32|0);
+ HEAP32[$arrayidx315>>2] = $364;
+ $arrayidx317 = ((($h)) + 36|0);
+ HEAP32[$arrayidx317>>2] = $375;
+ return;
+}
+function _fe_sub($h,$f,$g) {
+ $h = $h|0;
+ $f = $f|0;
+ $g = $g|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
+ var $arrayidx1 = 0, $arrayidx11 = 0, $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0, $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx30 = 0, $arrayidx31 = 0, $arrayidx32 = 0, $arrayidx33 = 0, $arrayidx34 = 0, $arrayidx35 = 0, $arrayidx36 = 0, $arrayidx37 = 0;
+ var $arrayidx38 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $sub = 0, $sub20 = 0, $sub21 = 0, $sub22 = 0, $sub23 = 0, $sub24 = 0, $sub25 = 0, $sub26 = 0, $sub27 = 0, $sub28 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[$f>>2]|0;
+ $arrayidx1 = ((($f)) + 4|0);
+ $1 = HEAP32[$arrayidx1>>2]|0;
+ $arrayidx2 = ((($f)) + 8|0);
+ $2 = HEAP32[$arrayidx2>>2]|0;
+ $arrayidx3 = ((($f)) + 12|0);
+ $3 = HEAP32[$arrayidx3>>2]|0;
+ $arrayidx4 = ((($f)) + 16|0);
+ $4 = HEAP32[$arrayidx4>>2]|0;
+ $arrayidx5 = ((($f)) + 20|0);
+ $5 = HEAP32[$arrayidx5>>2]|0;
+ $arrayidx6 = ((($f)) + 24|0);
+ $6 = HEAP32[$arrayidx6>>2]|0;
+ $arrayidx7 = ((($f)) + 28|0);
+ $7 = HEAP32[$arrayidx7>>2]|0;
+ $arrayidx8 = ((($f)) + 32|0);
+ $8 = HEAP32[$arrayidx8>>2]|0;
+ $arrayidx9 = ((($f)) + 36|0);
+ $9 = HEAP32[$arrayidx9>>2]|0;
+ $10 = HEAP32[$g>>2]|0;
+ $arrayidx11 = ((($g)) + 4|0);
+ $11 = HEAP32[$arrayidx11>>2]|0;
+ $arrayidx12 = ((($g)) + 8|0);
+ $12 = HEAP32[$arrayidx12>>2]|0;
+ $arrayidx13 = ((($g)) + 12|0);
+ $13 = HEAP32[$arrayidx13>>2]|0;
+ $arrayidx14 = ((($g)) + 16|0);
+ $14 = HEAP32[$arrayidx14>>2]|0;
+ $arrayidx15 = ((($g)) + 20|0);
+ $15 = HEAP32[$arrayidx15>>2]|0;
+ $arrayidx16 = ((($g)) + 24|0);
+ $16 = HEAP32[$arrayidx16>>2]|0;
+ $arrayidx17 = ((($g)) + 28|0);
+ $17 = HEAP32[$arrayidx17>>2]|0;
+ $arrayidx18 = ((($g)) + 32|0);
+ $18 = HEAP32[$arrayidx18>>2]|0;
+ $arrayidx19 = ((($g)) + 36|0);
+ $19 = HEAP32[$arrayidx19>>2]|0;
+ $sub = (($0) - ($10))|0;
+ $sub20 = (($1) - ($11))|0;
+ $sub21 = (($2) - ($12))|0;
+ $sub22 = (($3) - ($13))|0;
+ $sub23 = (($4) - ($14))|0;
+ $sub24 = (($5) - ($15))|0;
+ $sub25 = (($6) - ($16))|0;
+ $sub26 = (($7) - ($17))|0;
+ $sub27 = (($8) - ($18))|0;
+ $sub28 = (($9) - ($19))|0;
+ HEAP32[$h>>2] = $sub;
+ $arrayidx30 = ((($h)) + 4|0);
+ HEAP32[$arrayidx30>>2] = $sub20;
+ $arrayidx31 = ((($h)) + 8|0);
+ HEAP32[$arrayidx31>>2] = $sub21;
+ $arrayidx32 = ((($h)) + 12|0);
+ HEAP32[$arrayidx32>>2] = $sub22;
+ $arrayidx33 = ((($h)) + 16|0);
+ HEAP32[$arrayidx33>>2] = $sub23;
+ $arrayidx34 = ((($h)) + 20|0);
+ HEAP32[$arrayidx34>>2] = $sub24;
+ $arrayidx35 = ((($h)) + 24|0);
+ HEAP32[$arrayidx35>>2] = $sub25;
+ $arrayidx36 = ((($h)) + 28|0);
+ HEAP32[$arrayidx36>>2] = $sub26;
+ $arrayidx37 = ((($h)) + 32|0);
+ HEAP32[$arrayidx37>>2] = $sub27;
+ $arrayidx38 = ((($h)) + 36|0);
+ HEAP32[$arrayidx38>>2] = $sub28;
+ return;
+}
+function _ge_add($r,$p,$q) {
+ $r = $r|0;
+ $p = $p|0;
+ $q = $q|0;
+ var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay18 = 0, $arraydecay19 = 0, $arraydecay20 = 0, $arraydecay22 = 0, $arraydecay26 = 0, $arraydecay28 = 0, $arraydecay5 = 0, $t0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0;
+ $t0 = sp;
+ $arraydecay1 = ((($p)) + 40|0);
+ _fe_add($r,$arraydecay1,$p);
+ $arraydecay5 = ((($r)) + 40|0);
+ _fe_sub($arraydecay5,$arraydecay1,$p);
+ $arraydecay10 = ((($r)) + 80|0);
+ _fe_mul($arraydecay10,$r,$q);
+ $arraydecay18 = ((($q)) + 40|0);
+ _fe_mul($arraydecay5,$arraydecay5,$arraydecay18);
+ $arraydecay19 = ((($r)) + 120|0);
+ $arraydecay20 = ((($q)) + 120|0);
+ $arraydecay22 = ((($p)) + 120|0);
+ _fe_mul($arraydecay19,$arraydecay20,$arraydecay22);
+ $arraydecay26 = ((($p)) + 80|0);
+ $arraydecay28 = ((($q)) + 80|0);
+ _fe_mul($r,$arraydecay26,$arraydecay28);
+ _fe_add($t0,$r,$r);
+ _fe_sub($r,$arraydecay10,$arraydecay5);
+ _fe_add($arraydecay5,$arraydecay10,$arraydecay5);
+ _fe_add($arraydecay10,$t0,$arraydecay19);
+ _fe_sub($arraydecay19,$t0,$arraydecay19);
+ STACKTOP = sp;return;
+}
+function _ge_double_scalarmult_vartime($r,$a,$A,$b) {
+ $r = $r|0;
+ $a = $a|0;
+ $A = $A|0;
+ $b = $b|0;
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $A2 = 0, $Ai = 0, $arrayidx11 = 0, $arrayidx13 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx24 = 0, $arrayidx3 = 0, $arrayidx31 = 0;
+ var $arrayidx40 = 0, $arrayidx43 = 0, $arrayidx5 = 0, $arrayidx51 = 0, $arrayidx62 = 0, $arrayidx7 = 0, $arrayidx9 = 0, $aslide = 0, $bslide = 0, $cmp = 0, $cmp21 = 0, $cmp2118 = 0, $cmp26 = 0, $cmp34 = 0, $cmp45 = 0, $cmp55 = 0, $dec = 0, $dec66 = 0, $div39 = 0, $div61 = 0;
+ var $i$020 = 0, $i$119 = 0, $t = 0, $tobool = 0, $tobool19 = 0, $u = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 2272|0;
+ $aslide = sp + 1536|0;
+ $bslide = sp + 1280|0;
+ $Ai = sp;
+ $t = sp + 2112|0;
+ $u = sp + 1952|0;
+ $A2 = sp + 1792|0;
+ _slide($aslide,$a);
+ _slide($bslide,$b);
+ _ge_p3_to_cached($Ai,$A);
+ _ge_p3_dbl($t,$A);
+ _ge_p1p1_to_p3($A2,$t);
+ _ge_add($t,$A2,$Ai);
+ _ge_p1p1_to_p3($u,$t);
+ $arrayidx3 = ((($Ai)) + 160|0);
+ _ge_p3_to_cached($arrayidx3,$u);
+ _ge_add($t,$A2,$arrayidx3);
+ _ge_p1p1_to_p3($u,$t);
+ $arrayidx5 = ((($Ai)) + 320|0);
+ _ge_p3_to_cached($arrayidx5,$u);
+ _ge_add($t,$A2,$arrayidx5);
+ _ge_p1p1_to_p3($u,$t);
+ $arrayidx7 = ((($Ai)) + 480|0);
+ _ge_p3_to_cached($arrayidx7,$u);
+ _ge_add($t,$A2,$arrayidx7);
+ _ge_p1p1_to_p3($u,$t);
+ $arrayidx9 = ((($Ai)) + 640|0);
+ _ge_p3_to_cached($arrayidx9,$u);
+ _ge_add($t,$A2,$arrayidx9);
+ _ge_p1p1_to_p3($u,$t);
+ $arrayidx11 = ((($Ai)) + 800|0);
+ _ge_p3_to_cached($arrayidx11,$u);
+ _ge_add($t,$A2,$arrayidx11);
+ _ge_p1p1_to_p3($u,$t);
+ $arrayidx13 = ((($Ai)) + 960|0);
+ _ge_p3_to_cached($arrayidx13,$u);
+ _ge_add($t,$A2,$arrayidx13);
+ _ge_p1p1_to_p3($u,$t);
+ $arrayidx15 = ((($Ai)) + 1120|0);
+ _ge_p3_to_cached($arrayidx15,$u);
+ _ge_p2_0($r);
+ $i$020 = 255;
+ while(1) {
+ $arrayidx16 = (($aslide) + ($i$020)|0);
+ $0 = HEAP8[$arrayidx16>>0]|0;
+ $tobool = ($0<<24>>24)==(0);
+ if (!($tobool)) {
+ break;
+ }
+ $arrayidx17 = (($bslide) + ($i$020)|0);
+ $1 = HEAP8[$arrayidx17>>0]|0;
+ $tobool19 = ($1<<24>>24)==(0);
+ if (!($tobool19)) {
+ break;
+ }
+ $dec = (($i$020) + -1)|0;
+ $cmp = ($i$020|0)==(0);
+ if ($cmp) {
+ label = 16;
+ break;
+ } else {
+ $i$020 = $dec;
+ }
+ }
+ if ((label|0) == 16) {
+ STACKTOP = sp;return;
+ }
+ $cmp2118 = ($i$020|0)>(-1);
+ if (!($cmp2118)) {
+ STACKTOP = sp;return;
+ }
+ $i$119 = $i$020;
+ while(1) {
+ _ge_p2_dbl($t,$r);
+ $arrayidx24 = (($aslide) + ($i$119)|0);
+ $2 = HEAP8[$arrayidx24>>0]|0;
+ $cmp26 = ($2<<24>>24)>(0);
+ if ($cmp26) {
+ _ge_p1p1_to_p3($u,$t);
+ $3 = ($2&255) >>> 1;
+ $4 = $3&255;
+ $arrayidx31 = (($Ai) + (($4*160)|0)|0);
+ _ge_add($t,$u,$arrayidx31);
+ } else {
+ $cmp34 = ($2<<24>>24)<(0);
+ if ($cmp34) {
+ _ge_p1p1_to_p3($u,$t);
+ $5 = (($2<<24>>24) / -2)&-1;
+ $div39 = $5 << 24 >> 24;
+ $arrayidx40 = (($Ai) + (($div39*160)|0)|0);
+ _ge_sub($t,$u,$arrayidx40);
+ }
+ }
+ $arrayidx43 = (($bslide) + ($i$119)|0);
+ $6 = HEAP8[$arrayidx43>>0]|0;
+ $cmp45 = ($6<<24>>24)>(0);
+ if ($cmp45) {
+ _ge_p1p1_to_p3($u,$t);
+ $7 = ($6&255) >>> 1;
+ $8 = $7&255;
+ $arrayidx51 = (16 + (($8*120)|0)|0);
+ _ge_madd($t,$u,$arrayidx51);
+ } else {
+ $cmp55 = ($6<<24>>24)<(0);
+ if ($cmp55) {
+ _ge_p1p1_to_p3($u,$t);
+ $9 = (($6<<24>>24) / -2)&-1;
+ $div61 = $9 << 24 >> 24;
+ $arrayidx62 = (16 + (($div61*120)|0)|0);
+ _ge_msub($t,$u,$arrayidx62);
+ }
+ }
+ _ge_p1p1_to_p2($r,$t);
+ $dec66 = (($i$119) + -1)|0;
+ $cmp21 = ($i$119|0)>(0);
+ if ($cmp21) {
+ $i$119 = $dec66;
+ } else {
+ break;
+ }
+ }
+ STACKTOP = sp;return;
+}
+function _slide($r,$a) {
+ $r = $r|0;
+ $a = $a|0;
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $add = 0, $add25 = 0, $and = 0, $and2 = 0, $arrayidx = 0, $arrayidx17 = 0, $arrayidx4 = 0, $arrayidx61 = 0, $arrayidx9 = 0, $b$052 = 0, $cmp11 = 0, $cmp13 = 0, $cmp26 = 0, $cmp45 = 0;
+ var $cmp58 = 0, $conv = 0, $conv21 = 0, $conv24 = 0, $conv3 = 0, $conv36 = 0, $conv55 = 0, $exitcond = 0, $exitcond58 = 0, $i$056 = 0, $i$153 = 0, $inc = 0, $inc67 = 0, $inc74 = 0, $inc78 = 0, $k$051 = 0, $shl = 0, $shr1 = 0, $sub = 0, $tobool = 0;
+ var $tobool18 = 0, $tobool62 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $i$056 = 0;
+ while(1) {
+ $0 = $i$056 >>> 3;
+ $arrayidx = (($a) + ($0)|0);
+ $1 = HEAP8[$arrayidx>>0]|0;
+ $conv = $1&255;
+ $and = $i$056 & 7;
+ $shr1 = $conv >>> $and;
+ $and2 = $shr1 & 1;
+ $conv3 = $and2&255;
+ $arrayidx4 = (($r) + ($i$056)|0);
+ HEAP8[$arrayidx4>>0] = $conv3;
+ $inc = (($i$056) + 1)|0;
+ $exitcond58 = ($inc|0)==(256);
+ if ($exitcond58) {
+ break;
+ } else {
+ $i$056 = $inc;
+ }
+ }
+ $i$153 = 0;
+ while(1) {
+ $arrayidx9 = (($r) + ($i$153)|0);
+ $2 = HEAP8[$arrayidx9>>0]|0;
+ $tobool = ($2<<24>>24)==(0);
+ L6: do {
+ if (!($tobool)) {
+ $b$052 = 1;
+ while(1) {
+ $add = (($b$052) + ($i$153))|0;
+ $cmp13 = ($add>>>0)<(256);
+ if (!($cmp13)) {
+ break L6;
+ }
+ $arrayidx17 = (($r) + ($add)|0);
+ $3 = HEAP8[$arrayidx17>>0]|0;
+ $tobool18 = ($3<<24>>24)==(0);
+ L11: do {
+ if (!($tobool18)) {
+ $4 = HEAP8[$arrayidx9>>0]|0;
+ $conv21 = $4 << 24 >> 24;
+ $conv24 = $3 << 24 >> 24;
+ $shl = $conv24 << $b$052;
+ $add25 = (($shl) + ($conv21))|0;
+ $cmp26 = ($add25|0)<(16);
+ if ($cmp26) {
+ $conv36 = $add25&255;
+ HEAP8[$arrayidx9>>0] = $conv36;
+ HEAP8[$arrayidx17>>0] = 0;
+ break;
+ }
+ $sub = (($conv21) - ($shl))|0;
+ $cmp45 = ($sub|0)>(-16);
+ if (!($cmp45)) {
+ break L6;
+ }
+ $conv55 = $sub&255;
+ HEAP8[$arrayidx9>>0] = $conv55;
+ $k$051 = $add;
+ while(1) {
+ $arrayidx61 = (($r) + ($k$051)|0);
+ $5 = HEAP8[$arrayidx61>>0]|0;
+ $tobool62 = ($5<<24>>24)==(0);
+ if ($tobool62) {
+ break;
+ }
+ HEAP8[$arrayidx61>>0] = 0;
+ $inc67 = (($k$051) + 1)|0;
+ $cmp58 = ($k$051>>>0)<(255);
+ if ($cmp58) {
+ $k$051 = $inc67;
+ } else {
+ break L11;
+ }
+ }
+ HEAP8[$arrayidx61>>0] = 1;
+ }
+ } while(0);
+ $inc74 = (($b$052) + 1)|0;
+ $cmp11 = ($inc74>>>0)<(7);
+ if ($cmp11) {
+ $b$052 = $inc74;
+ } else {
+ break;
+ }
+ }
+ }
+ } while(0);
+ $inc78 = (($i$153) + 1)|0;
+ $exitcond = ($inc78|0)==(256);
+ if ($exitcond) {
+ break;
+ } else {
+ $i$153 = $inc78;
+ }
+ }
+ return;
+}
+function _ge_p3_to_cached($r,$p) {
+ $r = $r|0;
+ $p = $p|0;
+ var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay11 = 0, $arraydecay12 = 0, $arraydecay3 = 0, $arraydecay8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $arraydecay1 = ((($p)) + 40|0);
+ _fe_add($r,$arraydecay1,$p);
+ $arraydecay3 = ((($r)) + 40|0);
+ _fe_sub($arraydecay3,$arraydecay1,$p);
+ $arraydecay8 = ((($r)) + 80|0);
+ $arraydecay10 = ((($p)) + 80|0);
+ _fe_copy($arraydecay8,$arraydecay10);
+ $arraydecay11 = ((($r)) + 120|0);
+ $arraydecay12 = ((($p)) + 120|0);
+ _fe_mul($arraydecay11,$arraydecay12,976);
+ return;
+}
+function _ge_p3_dbl($r,$p) {
+ $r = $r|0;
+ $p = $p|0;
+ var $q = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 128|0;
+ $q = sp;
+ _ge_p3_to_p2($q,$p);
+ _ge_p2_dbl($r,$q);
+ STACKTOP = sp;return;
+}
+function _ge_p1p1_to_p3($r,$p) {
+ $r = $r|0;
+ $p = $p|0;
+ var $arraydecay15 = 0, $arraydecay3 = 0, $arraydecay4 = 0, $arraydecay6 = 0, $arraydecay7 = 0, $arraydecay9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $arraydecay3 = ((($p)) + 120|0);
+ _fe_mul($r,$p,$arraydecay3);
+ $arraydecay4 = ((($r)) + 40|0);
+ $arraydecay6 = ((($p)) + 40|0);
+ $arraydecay7 = ((($p)) + 80|0);
+ _fe_mul($arraydecay4,$arraydecay6,$arraydecay7);
+ $arraydecay9 = ((($r)) + 80|0);
+ _fe_mul($arraydecay9,$arraydecay7,$arraydecay3);
+ $arraydecay15 = ((($r)) + 120|0);
+ _fe_mul($arraydecay15,$p,$arraydecay6);
+ return;
+}
+function _ge_p2_0($h) {
+ $h = $h|0;
+ var $arraydecay1 = 0, $arraydecay2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _fe_0($h);
+ $arraydecay1 = ((($h)) + 40|0);
+ _fe_1($arraydecay1);
+ $arraydecay2 = ((($h)) + 80|0);
+ _fe_1($arraydecay2);
+ return;
+}
+function _ge_p2_dbl($r,$p) {
+ $r = $r|0;
+ $p = $p|0;
+ var $arraydecay3 = 0, $arraydecay4 = 0, $arraydecay5 = 0, $arraydecay7 = 0, $arraydecay9 = 0, $t0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0;
+ $t0 = sp;
+ _fe_sq($r,$p);
+ $arraydecay3 = ((($r)) + 80|0);
+ $arraydecay4 = ((($p)) + 40|0);
+ _fe_sq($arraydecay3,$arraydecay4);
+ $arraydecay5 = ((($r)) + 120|0);
+ $arraydecay7 = ((($p)) + 80|0);
+ _fe_sq2($arraydecay5,$arraydecay7);
+ $arraydecay9 = ((($r)) + 40|0);
+ _fe_add($arraydecay9,$p,$arraydecay4);
+ _fe_sq($t0,$arraydecay9);
+ _fe_add($arraydecay9,$arraydecay3,$r);
+ _fe_sub($arraydecay3,$arraydecay3,$r);
+ _fe_sub($r,$t0,$arraydecay9);
+ _fe_sub($arraydecay5,$arraydecay5,$arraydecay3);
+ STACKTOP = sp;return;
+}
+function _ge_sub($r,$p,$q) {
+ $r = $r|0;
+ $p = $p|0;
+ $q = $q|0;
+ var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay13 = 0, $arraydecay19 = 0, $arraydecay20 = 0, $arraydecay22 = 0, $arraydecay26 = 0, $arraydecay28 = 0, $arraydecay5 = 0, $t0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0;
+ $t0 = sp;
+ $arraydecay1 = ((($p)) + 40|0);
+ _fe_add($r,$arraydecay1,$p);
+ $arraydecay5 = ((($r)) + 40|0);
+ _fe_sub($arraydecay5,$arraydecay1,$p);
+ $arraydecay10 = ((($r)) + 80|0);
+ $arraydecay13 = ((($q)) + 40|0);
+ _fe_mul($arraydecay10,$r,$arraydecay13);
+ _fe_mul($arraydecay5,$arraydecay5,$q);
+ $arraydecay19 = ((($r)) + 120|0);
+ $arraydecay20 = ((($q)) + 120|0);
+ $arraydecay22 = ((($p)) + 120|0);
+ _fe_mul($arraydecay19,$arraydecay20,$arraydecay22);
+ $arraydecay26 = ((($p)) + 80|0);
+ $arraydecay28 = ((($q)) + 80|0);
+ _fe_mul($r,$arraydecay26,$arraydecay28);
+ _fe_add($t0,$r,$r);
+ _fe_sub($r,$arraydecay10,$arraydecay5);
+ _fe_add($arraydecay5,$arraydecay10,$arraydecay5);
+ _fe_sub($arraydecay10,$t0,$arraydecay19);
+ _fe_add($arraydecay19,$t0,$arraydecay19);
+ STACKTOP = sp;return;
+}
+function _ge_madd($r,$p,$q) {
+ $r = $r|0;
+ $p = $p|0;
+ $q = $q|0;
+ var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay18 = 0, $arraydecay19 = 0, $arraydecay20 = 0, $arraydecay22 = 0, $arraydecay25 = 0, $arraydecay5 = 0, $t0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0;
+ $t0 = sp;
+ $arraydecay1 = ((($p)) + 40|0);
+ _fe_add($r,$arraydecay1,$p);
+ $arraydecay5 = ((($r)) + 40|0);
+ _fe_sub($arraydecay5,$arraydecay1,$p);
+ $arraydecay10 = ((($r)) + 80|0);
+ _fe_mul($arraydecay10,$r,$q);
+ $arraydecay18 = ((($q)) + 40|0);
+ _fe_mul($arraydecay5,$arraydecay5,$arraydecay18);
+ $arraydecay19 = ((($r)) + 120|0);
+ $arraydecay20 = ((($q)) + 80|0);
+ $arraydecay22 = ((($p)) + 120|0);
+ _fe_mul($arraydecay19,$arraydecay20,$arraydecay22);
+ $arraydecay25 = ((($p)) + 80|0);
+ _fe_add($t0,$arraydecay25,$arraydecay25);
+ _fe_sub($r,$arraydecay10,$arraydecay5);
+ _fe_add($arraydecay5,$arraydecay10,$arraydecay5);
+ _fe_add($arraydecay10,$t0,$arraydecay19);
+ _fe_sub($arraydecay19,$t0,$arraydecay19);
+ STACKTOP = sp;return;
+}
+function _ge_msub($r,$p,$q) {
+ $r = $r|0;
+ $p = $p|0;
+ $q = $q|0;
+ var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay13 = 0, $arraydecay19 = 0, $arraydecay20 = 0, $arraydecay22 = 0, $arraydecay25 = 0, $arraydecay5 = 0, $t0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0;
+ $t0 = sp;
+ $arraydecay1 = ((($p)) + 40|0);
+ _fe_add($r,$arraydecay1,$p);
+ $arraydecay5 = ((($r)) + 40|0);
+ _fe_sub($arraydecay5,$arraydecay1,$p);
+ $arraydecay10 = ((($r)) + 80|0);
+ $arraydecay13 = ((($q)) + 40|0);
+ _fe_mul($arraydecay10,$r,$arraydecay13);
+ _fe_mul($arraydecay5,$arraydecay5,$q);
+ $arraydecay19 = ((($r)) + 120|0);
+ $arraydecay20 = ((($q)) + 80|0);
+ $arraydecay22 = ((($p)) + 120|0);
+ _fe_mul($arraydecay19,$arraydecay20,$arraydecay22);
+ $arraydecay25 = ((($p)) + 80|0);
+ _fe_add($t0,$arraydecay25,$arraydecay25);
+ _fe_sub($r,$arraydecay10,$arraydecay5);
+ _fe_add($arraydecay5,$arraydecay10,$arraydecay5);
+ _fe_sub($arraydecay10,$t0,$arraydecay19);
+ _fe_add($arraydecay19,$t0,$arraydecay19);
+ STACKTOP = sp;return;
+}
+function _ge_p1p1_to_p2($r,$p) {
+ $r = $r|0;
+ $p = $p|0;
+ var $arraydecay3 = 0, $arraydecay4 = 0, $arraydecay6 = 0, $arraydecay7 = 0, $arraydecay9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $arraydecay3 = ((($p)) + 120|0);
+ _fe_mul($r,$p,$arraydecay3);
+ $arraydecay4 = ((($r)) + 40|0);
+ $arraydecay6 = ((($p)) + 40|0);
+ $arraydecay7 = ((($p)) + 80|0);
+ _fe_mul($arraydecay4,$arraydecay6,$arraydecay7);
+ $arraydecay9 = ((($r)) + 80|0);
+ _fe_mul($arraydecay9,$arraydecay7,$arraydecay3);
+ return;
+}
+function _ge_p3_to_p2($r,$p) {
+ $r = $r|0;
+ $p = $p|0;
+ var $arraydecay3 = 0, $arraydecay5 = 0, $arraydecay6 = 0, $arraydecay8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _fe_copy($r,$p);
+ $arraydecay3 = ((($r)) + 40|0);
+ $arraydecay5 = ((($p)) + 40|0);
+ _fe_copy($arraydecay3,$arraydecay5);
+ $arraydecay6 = ((($r)) + 80|0);
+ $arraydecay8 = ((($p)) + 80|0);
+ _fe_copy($arraydecay6,$arraydecay8);
+ return;
+}
+function _ge_frombytes_negate_vartime($h,$s) {
+ $h = $h|0;
+ $s = $s|0;
+ var $0 = 0, $1 = 0, $arraydecay = 0, $arraydecay1 = 0, $arraydecay78 = 0, $arrayidx = 0, $call = 0, $call60 = 0, $call70 = 0, $check = 0, $cmp = 0, $conv = 0, $retval$0 = 0, $tobool = 0, $tobool61 = 0, $u = 0, $v = 0, $v3 = 0, $vxx = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 240|0;
+ $u = sp + 192|0;
+ $v = sp + 144|0;
+ $v3 = sp + 96|0;
+ $vxx = sp + 48|0;
+ $check = sp;
+ $arraydecay = ((($h)) + 40|0);
+ _fe_frombytes($arraydecay,$s);
+ $arraydecay1 = ((($h)) + 80|0);
+ _fe_1($arraydecay1);
+ _fe_sq($u,$arraydecay);
+ _fe_mul($v,$u,1024);
+ _fe_sub($u,$u,$arraydecay1);
+ _fe_add($v,$v,$arraydecay1);
+ _fe_sq($v3,$v);
+ _fe_mul($v3,$v3,$v);
+ _fe_sq($h,$v3);
+ _fe_mul($h,$h,$v);
+ _fe_mul($h,$h,$u);
+ _fe_pow22523($h,$h);
+ _fe_mul($h,$h,$v3);
+ _fe_mul($h,$h,$u);
+ _fe_sq($vxx,$h);
+ _fe_mul($vxx,$vxx,$v);
+ _fe_sub($check,$vxx,$u);
+ $call = (_fe_isnonzero($check)|0);
+ $tobool = ($call|0)==(0);
+ do {
+ if (!($tobool)) {
+ _fe_add($check,$vxx,$u);
+ $call60 = (_fe_isnonzero($check)|0);
+ $tobool61 = ($call60|0)==(0);
+ if ($tobool61) {
+ _fe_mul($h,$h,1072);
+ break;
+ } else {
+ $retval$0 = -1;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ }
+ } while(0);
+ $call70 = (_fe_isnegative($h)|0);
+ $arrayidx = ((($s)) + 31|0);
+ $0 = HEAP8[$arrayidx>>0]|0;
+ $conv = $0&255;
+ $1 = $conv >>> 7;
+ $cmp = ($call70|0)==($1|0);
+ if ($cmp) {
+ _fe_neg($h,$h);
+ }
+ $arraydecay78 = ((($h)) + 120|0);
+ _fe_mul($arraydecay78,$h,$arraydecay);
+ $retval$0 = 0;
+ STACKTOP = sp;return ($retval$0|0);
+}
+function _ge_p3_0($h) {
+ $h = $h|0;
+ var $arraydecay1 = 0, $arraydecay2 = 0, $arraydecay3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _fe_0($h);
+ $arraydecay1 = ((($h)) + 40|0);
+ _fe_1($arraydecay1);
+ $arraydecay2 = ((($h)) + 80|0);
+ _fe_1($arraydecay2);
+ $arraydecay3 = ((($h)) + 120|0);
+ _fe_0($arraydecay3);
+ return;
+}
+function _ge_p3_tobytes($s,$h) {
+ $s = $s|0;
+ $h = $h|0;
+ var $0 = 0, $arraydecay1 = 0, $arraydecay6 = 0, $arrayidx = 0, $call = 0, $conv = 0, $conv10 = 0, $recip = 0, $shl = 0, $x = 0, $xor = 0, $y = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 144|0;
+ $recip = sp + 96|0;
+ $x = sp + 48|0;
+ $y = sp;
+ $arraydecay1 = ((($h)) + 80|0);
+ _fe_invert($recip,$arraydecay1);
+ _fe_mul($x,$h,$recip);
+ $arraydecay6 = ((($h)) + 40|0);
+ _fe_mul($y,$arraydecay6,$recip);
+ _fe_tobytes($s,$y);
+ $call = (_fe_isnegative($x)|0);
+ $shl = $call << 7;
+ $arrayidx = ((($s)) + 31|0);
+ $0 = HEAP8[$arrayidx>>0]|0;
+ $conv = $0&255;
+ $xor = $shl ^ $conv;
+ $conv10 = $xor&255;
+ HEAP8[$arrayidx>>0] = $conv10;
+ STACKTOP = sp;return;
+}
+function _ge_scalarmult_base($h,$a) {
+ $h = $h|0;
+ $a = $a|0;
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $add18 = 0, $add37 = 0, $add45 = 0, $add54 = 0, $add9 = 0, $arrayidx = 0, $arrayidx10 = 0, $arrayidx16 = 0, $arrayidx2 = 0, $arrayidx35 = 0, $arrayidx43 = 0, $arrayidx52 = 0, $carry$034 = 0;
+ var $cmp40 = 0, $cmp48 = 0, $conv1730 = 0, $conv30 = 0, $conv3629 = 0, $conv38 = 0, $div = 0, $div51 = 0, $e = 0, $exitcond = 0, $exitcond37 = 0, $i$036 = 0, $i$135 = 0, $i$233 = 0, $i$332 = 0, $inc = 0, $inc32 = 0, $mul = 0, $r = 0, $s = 0;
+ var $sext = 0, $sext31 = 0, $shl = 0, $shr25 = 0, $sub = 0, $t = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 464|0;
+ $e = sp;
+ $r = sp + 304|0;
+ $s = sp + 184|0;
+ $t = sp + 64|0;
+ $i$036 = 0;
+ while(1) {
+ $arrayidx = (($a) + ($i$036)|0);
+ $0 = HEAP8[$arrayidx>>0]|0;
+ $1 = $0 & 15;
+ $mul = $i$036 << 1;
+ $arrayidx2 = (($e) + ($mul)|0);
+ HEAP8[$arrayidx2>>0] = $1;
+ $2 = ($0&255) >>> 4;
+ $add9 = $mul | 1;
+ $arrayidx10 = (($e) + ($add9)|0);
+ HEAP8[$arrayidx10>>0] = $2;
+ $inc = (($i$036) + 1)|0;
+ $exitcond37 = ($inc|0)==(32);
+ if ($exitcond37) {
+ break;
+ } else {
+ $i$036 = $inc;
+ }
+ }
+ $carry$034 = 0;$i$135 = 0;
+ while(1) {
+ $arrayidx16 = (($e) + ($i$135)|0);
+ $3 = HEAP8[$arrayidx16>>0]|0;
+ $conv1730 = $3&255;
+ $add18 = (($carry$034) + ($conv1730))|0;
+ $sext = $add18 << 24;
+ $sext31 = (($sext) + 134217728)|0;
+ $shr25 = $sext31 >> 28;
+ $shl = $shr25 << 4;
+ $sub = (($add18) - ($shl))|0;
+ $conv30 = $sub&255;
+ HEAP8[$arrayidx16>>0] = $conv30;
+ $inc32 = (($i$135) + 1)|0;
+ $exitcond = ($inc32|0)==(63);
+ if ($exitcond) {
+ break;
+ } else {
+ $carry$034 = $shr25;$i$135 = $inc32;
+ }
+ }
+ $arrayidx35 = ((($e)) + 63|0);
+ $4 = HEAP8[$arrayidx35>>0]|0;
+ $conv3629 = $4&255;
+ $add37 = (($shr25) + ($conv3629))|0;
+ $conv38 = $add37&255;
+ HEAP8[$arrayidx35>>0] = $conv38;
+ _ge_p3_0($h);
+ $i$233 = 1;
+ while(1) {
+ $div = $i$233 >>> 1;
+ $arrayidx43 = (($e) + ($i$233)|0);
+ $5 = HEAP8[$arrayidx43>>0]|0;
+ _select_42($t,$div,$5);
+ _ge_madd($r,$h,$t);
+ _ge_p1p1_to_p3($h,$r);
+ $add45 = (($i$233) + 2)|0;
+ $cmp40 = ($add45>>>0)<(64);
+ if ($cmp40) {
+ $i$233 = $add45;
+ } else {
+ break;
+ }
+ }
+ _ge_p3_dbl($r,$h);
+ _ge_p1p1_to_p2($s,$r);
+ _ge_p2_dbl($r,$s);
+ _ge_p1p1_to_p2($s,$r);
+ _ge_p2_dbl($r,$s);
+ _ge_p1p1_to_p2($s,$r);
+ _ge_p2_dbl($r,$s);
+ _ge_p1p1_to_p3($h,$r);
+ $i$332 = 0;
+ while(1) {
+ $div51 = $i$332 >>> 1;
+ $arrayidx52 = (($e) + ($i$332)|0);
+ $6 = HEAP8[$arrayidx52>>0]|0;
+ _select_42($t,$div51,$6);
+ _ge_madd($r,$h,$t);
+ _ge_p1p1_to_p3($h,$r);
+ $add54 = (($i$332) + 2)|0;
+ $cmp48 = ($add54>>>0)<(64);
+ if ($cmp48) {
+ $i$332 = $add54;
+ } else {
+ break;
+ }
+ }
+ STACKTOP = sp;return;
+}
+function _select_42($t,$pos,$b) {
+ $t = $t|0;
+ $pos = $pos|0;
+ $b = $b|0;
+ var $and = 0, $arraydecay35 = 0, $arraydecay39 = 0, $arraydecay5 = 0, $arraydecay6 = 0, $arrayidx10 = 0, $arrayidx13 = 0, $arrayidx16 = 0, $arrayidx19 = 0, $arrayidx22 = 0, $arrayidx25 = 0, $arrayidx28 = 0, $arrayidx7 = 0, $call = 0, $call11 = 0, $call14 = 0, $call17 = 0, $call20 = 0, $call23 = 0, $call26 = 0;
+ var $call29 = 0, $call8 = 0, $conv = 0, $conv1 = 0, $conv4 = 0, $minust = 0, $shl = 0, $sub = 0, $sub3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 128|0;
+ $minust = sp;
+ $call = (_negative($b)|0);
+ $conv = $b << 24 >> 24;
+ $conv1 = $call&255;
+ $sub = (0 - ($conv1))|0;
+ $and = $sub & $conv;
+ $shl = $and << 1;
+ $sub3 = (($conv) - ($shl))|0;
+ $conv4 = $sub3&255;
+ _fe_1($t);
+ $arraydecay5 = ((($t)) + 40|0);
+ _fe_1($arraydecay5);
+ $arraydecay6 = ((($t)) + 80|0);
+ _fe_0($arraydecay6);
+ $arrayidx7 = (1120 + (($pos*960)|0)|0);
+ $call8 = (_equal($conv4,1)|0);
+ _cmov($t,$arrayidx7,$call8);
+ $arrayidx10 = (((1120 + (($pos*960)|0)|0)) + 120|0);
+ $call11 = (_equal($conv4,2)|0);
+ _cmov($t,$arrayidx10,$call11);
+ $arrayidx13 = (((1120 + (($pos*960)|0)|0)) + 240|0);
+ $call14 = (_equal($conv4,3)|0);
+ _cmov($t,$arrayidx13,$call14);
+ $arrayidx16 = (((1120 + (($pos*960)|0)|0)) + 360|0);
+ $call17 = (_equal($conv4,4)|0);
+ _cmov($t,$arrayidx16,$call17);
+ $arrayidx19 = (((1120 + (($pos*960)|0)|0)) + 480|0);
+ $call20 = (_equal($conv4,5)|0);
+ _cmov($t,$arrayidx19,$call20);
+ $arrayidx22 = (((1120 + (($pos*960)|0)|0)) + 600|0);
+ $call23 = (_equal($conv4,6)|0);
+ _cmov($t,$arrayidx22,$call23);
+ $arrayidx25 = (((1120 + (($pos*960)|0)|0)) + 720|0);
+ $call26 = (_equal($conv4,7)|0);
+ _cmov($t,$arrayidx25,$call26);
+ $arrayidx28 = (((1120 + (($pos*960)|0)|0)) + 840|0);
+ $call29 = (_equal($conv4,8)|0);
+ _cmov($t,$arrayidx28,$call29);
+ _fe_copy($minust,$arraydecay5);
+ $arraydecay35 = ((($minust)) + 40|0);
+ _fe_copy($arraydecay35,$t);
+ $arraydecay39 = ((($minust)) + 80|0);
+ _fe_neg($arraydecay39,$arraydecay6);
+ _cmov($t,$minust,$call);
+ STACKTOP = sp;return;
+}
+function _negative($b) {
+ $b = $b|0;
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = ($b&255) >>> 7;
+ return ($0|0);
+}
+function _equal($b,$c) {
+ $b = $b|0;
+ $c = $c|0;
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $xor4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $xor4 = $c ^ $b;
+ $0 = $xor4&255;
+ $1 = (_i64Add(($0|0),0,-1,-1)|0);
+ $2 = (getTempRet0() | 0);
+ $3 = (_bitshift64Lshr(($1|0),($2|0),63)|0);
+ $4 = (getTempRet0() | 0);
+ $5 = $3&255;
+ return ($5|0);
+}
+function _cmov($t,$u,$b) {
+ $t = $t|0;
+ $u = $u|0;
+ $b = $b|0;
+ var $arraydecay3 = 0, $arraydecay5 = 0, $arraydecay7 = 0, $arraydecay9 = 0, $conv = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $conv = $b&255;
+ _fe_cmov($t,$u,$conv);
+ $arraydecay3 = ((($t)) + 40|0);
+ $arraydecay5 = ((($u)) + 40|0);
+ _fe_cmov($arraydecay3,$arraydecay5,$conv);
+ $arraydecay7 = ((($t)) + 80|0);
+ $arraydecay9 = ((($u)) + 80|0);
+ _fe_cmov($arraydecay7,$arraydecay9,$conv);
+ return;
+}
+function _ge_tobytes($s,$h) {
+ $s = $s|0;
+ $h = $h|0;
+ var $0 = 0, $arraydecay1 = 0, $arraydecay6 = 0, $arrayidx = 0, $call = 0, $conv = 0, $conv10 = 0, $recip = 0, $shl = 0, $x = 0, $xor = 0, $y = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 144|0;
+ $recip = sp + 96|0;
+ $x = sp + 48|0;
+ $y = sp;
+ $arraydecay1 = ((($h)) + 80|0);
+ _fe_invert($recip,$arraydecay1);
+ _fe_mul($x,$h,$recip);
+ $arraydecay6 = ((($h)) + 40|0);
+ _fe_mul($y,$arraydecay6,$recip);
+ _fe_tobytes($s,$y);
+ $call = (_fe_isnegative($x)|0);
+ $shl = $call << 7;
+ $arrayidx = ((($s)) + 31|0);
+ $0 = HEAP8[$arrayidx>>0]|0;
+ $conv = $0&255;
+ $xor = $shl ^ $conv;
+ $conv10 = $xor&255;
+ HEAP8[$arrayidx>>0] = $conv10;
+ STACKTOP = sp;return;
+}
+function _ed25519_create_keypair($public_key,$private_key,$seed) {
+ $public_key = $public_key|0;
+ $private_key = $private_key|0;
+ $seed = $seed|0;
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $A = 0, $arrayidx2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 160|0;
+ $A = sp;
+ (_sha512($seed,32,$private_key)|0);
+ $0 = HEAP8[$private_key>>0]|0;
+ $1 = $0 & -8;
+ HEAP8[$private_key>>0] = $1;
+ $arrayidx2 = ((($private_key)) + 31|0);
+ $2 = HEAP8[$arrayidx2>>0]|0;
+ $3 = $2 & 63;
+ $4 = $3 | 64;
+ HEAP8[$arrayidx2>>0] = $4;
+ _ge_scalarmult_base($A,$private_key);
+ _ge_p3_tobytes($public_key,$A);
+ STACKTOP = sp;return;
+}
+function _sc_reduce($s) {
+ $s = $s|0;
+ var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
+ var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
+ var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
+ var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
+ var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
+ var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
+ var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
+ var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
+ var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
+ var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
+ var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
+ var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
+ var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
+ var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
+ var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
+ var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
+ var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
+ var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0;
+ var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0;
+ var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0;
+ var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0;
+ var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0;
+ var $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0;
+ var $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0;
+ var $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0;
+ var $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0;
+ var $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0;
+ var $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0;
+ var $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0;
+ var $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0;
+ var $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0;
+ var $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0;
+ var $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0;
+ var $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0;
+ var $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0;
+ var $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0;
+ var $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0;
+ var $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0;
+ var $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0;
+ var $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0;
+ var $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0;
+ var $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0;
+ var $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $89 = 0, $9 = 0, $90 = 0;
+ var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $add$ptr = 0, $add$ptr11 = 0, $add$ptr15 = 0, $add$ptr19 = 0, $add$ptr23 = 0, $add$ptr27 = 0, $add$ptr3 = 0, $add$ptr30 = 0, $add$ptr34 = 0, $add$ptr38 = 0, $add$ptr42 = 0;
+ var $add$ptr46 = 0, $add$ptr50 = 0, $add$ptr54 = 0, $add$ptr58 = 0, $add$ptr61 = 0, $add$ptr65 = 0, $add$ptr69 = 0, $add$ptr7 = 0, $add$ptr73 = 0, $add$ptr77 = 0, $add$ptr81 = 0, $add$ptr85 = 0, $arrayidx462 = 0, $arrayidx469 = 0, $arrayidx472 = 0, $arrayidx480 = 0, $arrayidx488 = 0, $arrayidx491 = 0, $arrayidx499 = 0, $arrayidx502 = 0;
+ var $arrayidx510 = 0, $arrayidx518 = 0, $arrayidx521 = 0, $arrayidx529 = 0, $arrayidx532 = 0, $arrayidx538 = 0, $arrayidx546 = 0, $arrayidx549 = 0, $arrayidx557 = 0, $arrayidx565 = 0, $arrayidx568 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (_load_3_17($s)|0);
+ $1 = (getTempRet0() | 0);
+ $2 = $0 & 2097151;
+ $add$ptr = ((($s)) + 2|0);
+ $3 = (_load_4_18($add$ptr)|0);
+ $4 = (getTempRet0() | 0);
+ $5 = (_bitshift64Lshr(($3|0),($4|0),5)|0);
+ $6 = (getTempRet0() | 0);
+ $7 = $5 & 2097151;
+ $add$ptr3 = ((($s)) + 5|0);
+ $8 = (_load_3_17($add$ptr3)|0);
+ $9 = (getTempRet0() | 0);
+ $10 = (_bitshift64Lshr(($8|0),($9|0),2)|0);
+ $11 = (getTempRet0() | 0);
+ $12 = $10 & 2097151;
+ $add$ptr7 = ((($s)) + 7|0);
+ $13 = (_load_4_18($add$ptr7)|0);
+ $14 = (getTempRet0() | 0);
+ $15 = (_bitshift64Lshr(($13|0),($14|0),7)|0);
+ $16 = (getTempRet0() | 0);
+ $17 = $15 & 2097151;
+ $add$ptr11 = ((($s)) + 10|0);
+ $18 = (_load_4_18($add$ptr11)|0);
+ $19 = (getTempRet0() | 0);
+ $20 = (_bitshift64Lshr(($18|0),($19|0),4)|0);
+ $21 = (getTempRet0() | 0);
+ $22 = $20 & 2097151;
+ $add$ptr15 = ((($s)) + 13|0);
+ $23 = (_load_3_17($add$ptr15)|0);
+ $24 = (getTempRet0() | 0);
+ $25 = (_bitshift64Lshr(($23|0),($24|0),1)|0);
+ $26 = (getTempRet0() | 0);
+ $27 = $25 & 2097151;
+ $add$ptr19 = ((($s)) + 15|0);
+ $28 = (_load_4_18($add$ptr19)|0);
+ $29 = (getTempRet0() | 0);
+ $30 = (_bitshift64Lshr(($28|0),($29|0),6)|0);
+ $31 = (getTempRet0() | 0);
+ $32 = $30 & 2097151;
+ $add$ptr23 = ((($s)) + 18|0);
+ $33 = (_load_3_17($add$ptr23)|0);
+ $34 = (getTempRet0() | 0);
+ $35 = (_bitshift64Lshr(($33|0),($34|0),3)|0);
+ $36 = (getTempRet0() | 0);
+ $37 = $35 & 2097151;
+ $add$ptr27 = ((($s)) + 21|0);
+ $38 = (_load_3_17($add$ptr27)|0);
+ $39 = (getTempRet0() | 0);
+ $40 = $38 & 2097151;
+ $add$ptr30 = ((($s)) + 23|0);
+ $41 = (_load_4_18($add$ptr30)|0);
+ $42 = (getTempRet0() | 0);
+ $43 = (_bitshift64Lshr(($41|0),($42|0),5)|0);
+ $44 = (getTempRet0() | 0);
+ $45 = $43 & 2097151;
+ $add$ptr34 = ((($s)) + 26|0);
+ $46 = (_load_3_17($add$ptr34)|0);
+ $47 = (getTempRet0() | 0);
+ $48 = (_bitshift64Lshr(($46|0),($47|0),2)|0);
+ $49 = (getTempRet0() | 0);
+ $50 = $48 & 2097151;
+ $add$ptr38 = ((($s)) + 28|0);
+ $51 = (_load_4_18($add$ptr38)|0);
+ $52 = (getTempRet0() | 0);
+ $53 = (_bitshift64Lshr(($51|0),($52|0),7)|0);
+ $54 = (getTempRet0() | 0);
+ $55 = $53 & 2097151;
+ $add$ptr42 = ((($s)) + 31|0);
+ $56 = (_load_4_18($add$ptr42)|0);
+ $57 = (getTempRet0() | 0);
+ $58 = (_bitshift64Lshr(($56|0),($57|0),4)|0);
+ $59 = (getTempRet0() | 0);
+ $60 = $58 & 2097151;
+ $add$ptr46 = ((($s)) + 34|0);
+ $61 = (_load_3_17($add$ptr46)|0);
+ $62 = (getTempRet0() | 0);
+ $63 = (_bitshift64Lshr(($61|0),($62|0),1)|0);
+ $64 = (getTempRet0() | 0);
+ $65 = $63 & 2097151;
+ $add$ptr50 = ((($s)) + 36|0);
+ $66 = (_load_4_18($add$ptr50)|0);
+ $67 = (getTempRet0() | 0);
+ $68 = (_bitshift64Lshr(($66|0),($67|0),6)|0);
+ $69 = (getTempRet0() | 0);
+ $70 = $68 & 2097151;
+ $add$ptr54 = ((($s)) + 39|0);
+ $71 = (_load_3_17($add$ptr54)|0);
+ $72 = (getTempRet0() | 0);
+ $73 = (_bitshift64Lshr(($71|0),($72|0),3)|0);
+ $74 = (getTempRet0() | 0);
+ $75 = $73 & 2097151;
+ $add$ptr58 = ((($s)) + 42|0);
+ $76 = (_load_3_17($add$ptr58)|0);
+ $77 = (getTempRet0() | 0);
+ $78 = $76 & 2097151;
+ $add$ptr61 = ((($s)) + 44|0);
+ $79 = (_load_4_18($add$ptr61)|0);
+ $80 = (getTempRet0() | 0);
+ $81 = (_bitshift64Lshr(($79|0),($80|0),5)|0);
+ $82 = (getTempRet0() | 0);
+ $83 = $81 & 2097151;
+ $add$ptr65 = ((($s)) + 47|0);
+ $84 = (_load_3_17($add$ptr65)|0);
+ $85 = (getTempRet0() | 0);
+ $86 = (_bitshift64Lshr(($84|0),($85|0),2)|0);
+ $87 = (getTempRet0() | 0);
+ $88 = $86 & 2097151;
+ $add$ptr69 = ((($s)) + 49|0);
+ $89 = (_load_4_18($add$ptr69)|0);
+ $90 = (getTempRet0() | 0);
+ $91 = (_bitshift64Lshr(($89|0),($90|0),7)|0);
+ $92 = (getTempRet0() | 0);
+ $93 = $91 & 2097151;
+ $add$ptr73 = ((($s)) + 52|0);
+ $94 = (_load_4_18($add$ptr73)|0);
+ $95 = (getTempRet0() | 0);
+ $96 = (_bitshift64Lshr(($94|0),($95|0),4)|0);
+ $97 = (getTempRet0() | 0);
+ $98 = $96 & 2097151;
+ $add$ptr77 = ((($s)) + 55|0);
+ $99 = (_load_3_17($add$ptr77)|0);
+ $100 = (getTempRet0() | 0);
+ $101 = (_bitshift64Lshr(($99|0),($100|0),1)|0);
+ $102 = (getTempRet0() | 0);
+ $103 = $101 & 2097151;
+ $add$ptr81 = ((($s)) + 57|0);
+ $104 = (_load_4_18($add$ptr81)|0);
+ $105 = (getTempRet0() | 0);
+ $106 = (_bitshift64Lshr(($104|0),($105|0),6)|0);
+ $107 = (getTempRet0() | 0);
+ $108 = $106 & 2097151;
+ $add$ptr85 = ((($s)) + 60|0);
+ $109 = (_load_4_18($add$ptr85)|0);
+ $110 = (getTempRet0() | 0);
+ $111 = (_bitshift64Lshr(($109|0),($110|0),3)|0);
+ $112 = (getTempRet0() | 0);
+ $113 = (___muldi3(($111|0),($112|0),666643,0)|0);
+ $114 = (getTempRet0() | 0);
+ $115 = (___muldi3(($111|0),($112|0),470296,0)|0);
+ $116 = (getTempRet0() | 0);
+ $117 = (___muldi3(($111|0),($112|0),654183,0)|0);
+ $118 = (getTempRet0() | 0);
+ $119 = (___muldi3(($111|0),($112|0),-997805,-1)|0);
+ $120 = (getTempRet0() | 0);
+ $121 = (___muldi3(($111|0),($112|0),136657,0)|0);
+ $122 = (getTempRet0() | 0);
+ $123 = (_i64Add(($121|0),($122|0),($75|0),0)|0);
+ $124 = (getTempRet0() | 0);
+ $125 = (___muldi3(($111|0),($112|0),-683901,-1)|0);
+ $126 = (getTempRet0() | 0);
+ $127 = (_i64Add(($125|0),($126|0),($78|0),0)|0);
+ $128 = (getTempRet0() | 0);
+ $129 = (___muldi3(($108|0),0,666643,0)|0);
+ $130 = (getTempRet0() | 0);
+ $131 = (___muldi3(($108|0),0,470296,0)|0);
+ $132 = (getTempRet0() | 0);
+ $133 = (___muldi3(($108|0),0,654183,0)|0);
+ $134 = (getTempRet0() | 0);
+ $135 = (___muldi3(($108|0),0,-997805,-1)|0);
+ $136 = (getTempRet0() | 0);
+ $137 = (___muldi3(($108|0),0,136657,0)|0);
+ $138 = (getTempRet0() | 0);
+ $139 = (___muldi3(($108|0),0,-683901,-1)|0);
+ $140 = (getTempRet0() | 0);
+ $141 = (_i64Add(($123|0),($124|0),($139|0),($140|0))|0);
+ $142 = (getTempRet0() | 0);
+ $143 = (___muldi3(($103|0),0,666643,0)|0);
+ $144 = (getTempRet0() | 0);
+ $145 = (___muldi3(($103|0),0,470296,0)|0);
+ $146 = (getTempRet0() | 0);
+ $147 = (___muldi3(($103|0),0,654183,0)|0);
+ $148 = (getTempRet0() | 0);
+ $149 = (___muldi3(($103|0),0,-997805,-1)|0);
+ $150 = (getTempRet0() | 0);
+ $151 = (___muldi3(($103|0),0,136657,0)|0);
+ $152 = (getTempRet0() | 0);
+ $153 = (___muldi3(($103|0),0,-683901,-1)|0);
+ $154 = (getTempRet0() | 0);
+ $155 = (_i64Add(($153|0),($154|0),($70|0),0)|0);
+ $156 = (getTempRet0() | 0);
+ $157 = (_i64Add(($155|0),($156|0),($119|0),($120|0))|0);
+ $158 = (getTempRet0() | 0);
+ $159 = (_i64Add(($157|0),($158|0),($137|0),($138|0))|0);
+ $160 = (getTempRet0() | 0);
+ $161 = (___muldi3(($98|0),0,666643,0)|0);
+ $162 = (getTempRet0() | 0);
+ $163 = (___muldi3(($98|0),0,470296,0)|0);
+ $164 = (getTempRet0() | 0);
+ $165 = (___muldi3(($98|0),0,654183,0)|0);
+ $166 = (getTempRet0() | 0);
+ $167 = (___muldi3(($98|0),0,-997805,-1)|0);
+ $168 = (getTempRet0() | 0);
+ $169 = (___muldi3(($98|0),0,136657,0)|0);
+ $170 = (getTempRet0() | 0);
+ $171 = (___muldi3(($98|0),0,-683901,-1)|0);
+ $172 = (getTempRet0() | 0);
+ $173 = (___muldi3(($93|0),0,666643,0)|0);
+ $174 = (getTempRet0() | 0);
+ $175 = (___muldi3(($93|0),0,470296,0)|0);
+ $176 = (getTempRet0() | 0);
+ $177 = (___muldi3(($93|0),0,654183,0)|0);
+ $178 = (getTempRet0() | 0);
+ $179 = (___muldi3(($93|0),0,-997805,-1)|0);
+ $180 = (getTempRet0() | 0);
+ $181 = (___muldi3(($93|0),0,136657,0)|0);
+ $182 = (getTempRet0() | 0);
+ $183 = (___muldi3(($93|0),0,-683901,-1)|0);
+ $184 = (getTempRet0() | 0);
+ $185 = (_i64Add(($183|0),($184|0),($60|0),0)|0);
+ $186 = (getTempRet0() | 0);
+ $187 = (_i64Add(($185|0),($186|0),($169|0),($170|0))|0);
+ $188 = (getTempRet0() | 0);
+ $189 = (_i64Add(($187|0),($188|0),($149|0),($150|0))|0);
+ $190 = (getTempRet0() | 0);
+ $191 = (_i64Add(($189|0),($190|0),($115|0),($116|0))|0);
+ $192 = (getTempRet0() | 0);
+ $193 = (_i64Add(($191|0),($192|0),($133|0),($134|0))|0);
+ $194 = (getTempRet0() | 0);
+ $195 = (___muldi3(($88|0),0,666643,0)|0);
+ $196 = (getTempRet0() | 0);
+ $197 = (_i64Add(($195|0),($196|0),($32|0),0)|0);
+ $198 = (getTempRet0() | 0);
+ $199 = (___muldi3(($88|0),0,470296,0)|0);
+ $200 = (getTempRet0() | 0);
+ $201 = (___muldi3(($88|0),0,654183,0)|0);
+ $202 = (getTempRet0() | 0);
+ $203 = (_i64Add(($201|0),($202|0),($40|0),0)|0);
+ $204 = (getTempRet0() | 0);
+ $205 = (_i64Add(($203|0),($204|0),($175|0),($176|0))|0);
+ $206 = (getTempRet0() | 0);
+ $207 = (_i64Add(($205|0),($206|0),($161|0),($162|0))|0);
+ $208 = (getTempRet0() | 0);
+ $209 = (___muldi3(($88|0),0,-997805,-1)|0);
+ $210 = (getTempRet0() | 0);
+ $211 = (___muldi3(($88|0),0,136657,0)|0);
+ $212 = (getTempRet0() | 0);
+ $213 = (_i64Add(($211|0),($212|0),($50|0),0)|0);
+ $214 = (getTempRet0() | 0);
+ $215 = (_i64Add(($213|0),($214|0),($179|0),($180|0))|0);
+ $216 = (getTempRet0() | 0);
+ $217 = (_i64Add(($215|0),($216|0),($165|0),($166|0))|0);
+ $218 = (getTempRet0() | 0);
+ $219 = (_i64Add(($217|0),($218|0),($145|0),($146|0))|0);
+ $220 = (getTempRet0() | 0);
+ $221 = (_i64Add(($219|0),($220|0),($129|0),($130|0))|0);
+ $222 = (getTempRet0() | 0);
+ $223 = (___muldi3(($88|0),0,-683901,-1)|0);
+ $224 = (getTempRet0() | 0);
+ $225 = (_i64Add(($197|0),($198|0),1048576,0)|0);
+ $226 = (getTempRet0() | 0);
+ $227 = (_bitshift64Lshr(($225|0),($226|0),21)|0);
+ $228 = (getTempRet0() | 0);
+ $229 = (_i64Add(($199|0),($200|0),($37|0),0)|0);
+ $230 = (getTempRet0() | 0);
+ $231 = (_i64Add(($229|0),($230|0),($173|0),($174|0))|0);
+ $232 = (getTempRet0() | 0);
+ $233 = (_i64Add(($231|0),($232|0),($227|0),($228|0))|0);
+ $234 = (getTempRet0() | 0);
+ $235 = $225 & -2097152;
+ $236 = $226 & 2047;
+ $237 = (_i64Subtract(($197|0),($198|0),($235|0),($236|0))|0);
+ $238 = (getTempRet0() | 0);
+ $239 = (_i64Add(($207|0),($208|0),1048576,0)|0);
+ $240 = (getTempRet0() | 0);
+ $241 = (_bitshift64Lshr(($239|0),($240|0),21)|0);
+ $242 = (getTempRet0() | 0);
+ $243 = (_i64Add(($209|0),($210|0),($45|0),0)|0);
+ $244 = (getTempRet0() | 0);
+ $245 = (_i64Add(($243|0),($244|0),($177|0),($178|0))|0);
+ $246 = (getTempRet0() | 0);
+ $247 = (_i64Add(($245|0),($246|0),($163|0),($164|0))|0);
+ $248 = (getTempRet0() | 0);
+ $249 = (_i64Add(($247|0),($248|0),($143|0),($144|0))|0);
+ $250 = (getTempRet0() | 0);
+ $251 = (_i64Add(($249|0),($250|0),($241|0),($242|0))|0);
+ $252 = (getTempRet0() | 0);
+ $253 = $239 & -2097152;
+ $254 = (_i64Add(($221|0),($222|0),1048576,0)|0);
+ $255 = (getTempRet0() | 0);
+ $256 = (_bitshift64Ashr(($254|0),($255|0),21)|0);
+ $257 = (getTempRet0() | 0);
+ $258 = (_i64Add(($223|0),($224|0),($55|0),0)|0);
+ $259 = (getTempRet0() | 0);
+ $260 = (_i64Add(($258|0),($259|0),($181|0),($182|0))|0);
+ $261 = (getTempRet0() | 0);
+ $262 = (_i64Add(($260|0),($261|0),($167|0),($168|0))|0);
+ $263 = (getTempRet0() | 0);
+ $264 = (_i64Add(($262|0),($263|0),($147|0),($148|0))|0);
+ $265 = (getTempRet0() | 0);
+ $266 = (_i64Add(($264|0),($265|0),($113|0),($114|0))|0);
+ $267 = (getTempRet0() | 0);
+ $268 = (_i64Add(($266|0),($267|0),($131|0),($132|0))|0);
+ $269 = (getTempRet0() | 0);
+ $270 = (_i64Add(($268|0),($269|0),($256|0),($257|0))|0);
+ $271 = (getTempRet0() | 0);
+ $272 = $254 & -2097152;
+ $273 = (_i64Add(($193|0),($194|0),1048576,0)|0);
+ $274 = (getTempRet0() | 0);
+ $275 = (_bitshift64Ashr(($273|0),($274|0),21)|0);
+ $276 = (getTempRet0() | 0);
+ $277 = (_i64Add(($171|0),($172|0),($65|0),0)|0);
+ $278 = (getTempRet0() | 0);
+ $279 = (_i64Add(($277|0),($278|0),($151|0),($152|0))|0);
+ $280 = (getTempRet0() | 0);
+ $281 = (_i64Add(($279|0),($280|0),($117|0),($118|0))|0);
+ $282 = (getTempRet0() | 0);
+ $283 = (_i64Add(($281|0),($282|0),($135|0),($136|0))|0);
+ $284 = (getTempRet0() | 0);
+ $285 = (_i64Add(($283|0),($284|0),($275|0),($276|0))|0);
+ $286 = (getTempRet0() | 0);
+ $287 = $273 & -2097152;
+ $288 = (_i64Subtract(($193|0),($194|0),($287|0),($274|0))|0);
+ $289 = (getTempRet0() | 0);
+ $290 = (_i64Add(($159|0),($160|0),1048576,0)|0);
+ $291 = (getTempRet0() | 0);
+ $292 = (_bitshift64Ashr(($290|0),($291|0),21)|0);
+ $293 = (getTempRet0() | 0);
+ $294 = (_i64Add(($141|0),($142|0),($292|0),($293|0))|0);
+ $295 = (getTempRet0() | 0);
+ $296 = $290 & -2097152;
+ $297 = (_i64Subtract(($159|0),($160|0),($296|0),($291|0))|0);
+ $298 = (getTempRet0() | 0);
+ $299 = (_i64Add(($127|0),($128|0),1048576,0)|0);
+ $300 = (getTempRet0() | 0);
+ $301 = (_bitshift64Ashr(($299|0),($300|0),21)|0);
+ $302 = (getTempRet0() | 0);
+ $303 = (_i64Add(($301|0),($302|0),($83|0),0)|0);
+ $304 = (getTempRet0() | 0);
+ $305 = $299 & -2097152;
+ $306 = (_i64Subtract(($127|0),($128|0),($305|0),($300|0))|0);
+ $307 = (getTempRet0() | 0);
+ $308 = (_i64Add(($233|0),($234|0),1048576,0)|0);
+ $309 = (getTempRet0() | 0);
+ $310 = (_bitshift64Lshr(($308|0),($309|0),21)|0);
+ $311 = (getTempRet0() | 0);
+ $312 = $308 & -2097152;
+ $313 = (_i64Subtract(($233|0),($234|0),($312|0),($309|0))|0);
+ $314 = (getTempRet0() | 0);
+ $315 = (_i64Add(($251|0),($252|0),1048576,0)|0);
+ $316 = (getTempRet0() | 0);
+ $317 = (_bitshift64Ashr(($315|0),($316|0),21)|0);
+ $318 = (getTempRet0() | 0);
+ $319 = $315 & -2097152;
+ $320 = (_i64Add(($270|0),($271|0),1048576,0)|0);
+ $321 = (getTempRet0() | 0);
+ $322 = (_bitshift64Ashr(($320|0),($321|0),21)|0);
+ $323 = (getTempRet0() | 0);
+ $324 = (_i64Add(($322|0),($323|0),($288|0),($289|0))|0);
+ $325 = (getTempRet0() | 0);
+ $326 = $320 & -2097152;
+ $327 = (_i64Subtract(($270|0),($271|0),($326|0),($321|0))|0);
+ $328 = (getTempRet0() | 0);
+ $329 = (_i64Add(($285|0),($286|0),1048576,0)|0);
+ $330 = (getTempRet0() | 0);
+ $331 = (_bitshift64Ashr(($329|0),($330|0),21)|0);
+ $332 = (getTempRet0() | 0);
+ $333 = (_i64Add(($331|0),($332|0),($297|0),($298|0))|0);
+ $334 = (getTempRet0() | 0);
+ $335 = $329 & -2097152;
+ $336 = (_i64Subtract(($285|0),($286|0),($335|0),($330|0))|0);
+ $337 = (getTempRet0() | 0);
+ $338 = (_i64Add(($294|0),($295|0),1048576,0)|0);
+ $339 = (getTempRet0() | 0);
+ $340 = (_bitshift64Ashr(($338|0),($339|0),21)|0);
+ $341 = (getTempRet0() | 0);
+ $342 = (_i64Add(($340|0),($341|0),($306|0),($307|0))|0);
+ $343 = (getTempRet0() | 0);
+ $344 = $338 & -2097152;
+ $345 = (_i64Subtract(($294|0),($295|0),($344|0),($339|0))|0);
+ $346 = (getTempRet0() | 0);
+ $347 = (___muldi3(($303|0),($304|0),666643,0)|0);
+ $348 = (getTempRet0() | 0);
+ $349 = (_i64Add(($347|0),($348|0),($27|0),0)|0);
+ $350 = (getTempRet0() | 0);
+ $351 = (___muldi3(($303|0),($304|0),470296,0)|0);
+ $352 = (getTempRet0() | 0);
+ $353 = (_i64Add(($237|0),($238|0),($351|0),($352|0))|0);
+ $354 = (getTempRet0() | 0);
+ $355 = (___muldi3(($303|0),($304|0),654183,0)|0);
+ $356 = (getTempRet0() | 0);
+ $357 = (_i64Add(($313|0),($314|0),($355|0),($356|0))|0);
+ $358 = (getTempRet0() | 0);
+ $359 = (___muldi3(($303|0),($304|0),-997805,-1)|0);
+ $360 = (getTempRet0() | 0);
+ $361 = (___muldi3(($303|0),($304|0),136657,0)|0);
+ $362 = (getTempRet0() | 0);
+ $363 = (___muldi3(($303|0),($304|0),-683901,-1)|0);
+ $364 = (getTempRet0() | 0);
+ $365 = (_i64Add(($363|0),($364|0),($221|0),($222|0))|0);
+ $366 = (getTempRet0() | 0);
+ $367 = (_i64Add(($365|0),($366|0),($317|0),($318|0))|0);
+ $368 = (getTempRet0() | 0);
+ $369 = (_i64Subtract(($367|0),($368|0),($272|0),($255|0))|0);
+ $370 = (getTempRet0() | 0);
+ $371 = (___muldi3(($342|0),($343|0),666643,0)|0);
+ $372 = (getTempRet0() | 0);
+ $373 = (_i64Add(($371|0),($372|0),($22|0),0)|0);
+ $374 = (getTempRet0() | 0);
+ $375 = (___muldi3(($342|0),($343|0),470296,0)|0);
+ $376 = (getTempRet0() | 0);
+ $377 = (_i64Add(($349|0),($350|0),($375|0),($376|0))|0);
+ $378 = (getTempRet0() | 0);
+ $379 = (___muldi3(($342|0),($343|0),654183,0)|0);
+ $380 = (getTempRet0() | 0);
+ $381 = (_i64Add(($353|0),($354|0),($379|0),($380|0))|0);
+ $382 = (getTempRet0() | 0);
+ $383 = (___muldi3(($342|0),($343|0),-997805,-1)|0);
+ $384 = (getTempRet0() | 0);
+ $385 = (_i64Add(($357|0),($358|0),($383|0),($384|0))|0);
+ $386 = (getTempRet0() | 0);
+ $387 = (___muldi3(($342|0),($343|0),136657,0)|0);
+ $388 = (getTempRet0() | 0);
+ $389 = (___muldi3(($342|0),($343|0),-683901,-1)|0);
+ $390 = (getTempRet0() | 0);
+ $391 = (___muldi3(($345|0),($346|0),666643,0)|0);
+ $392 = (getTempRet0() | 0);
+ $393 = (_i64Add(($391|0),($392|0),($17|0),0)|0);
+ $394 = (getTempRet0() | 0);
+ $395 = (___muldi3(($345|0),($346|0),470296,0)|0);
+ $396 = (getTempRet0() | 0);
+ $397 = (_i64Add(($373|0),($374|0),($395|0),($396|0))|0);
+ $398 = (getTempRet0() | 0);
+ $399 = (___muldi3(($345|0),($346|0),654183,0)|0);
+ $400 = (getTempRet0() | 0);
+ $401 = (_i64Add(($377|0),($378|0),($399|0),($400|0))|0);
+ $402 = (getTempRet0() | 0);
+ $403 = (___muldi3(($345|0),($346|0),-997805,-1)|0);
+ $404 = (getTempRet0() | 0);
+ $405 = (_i64Add(($381|0),($382|0),($403|0),($404|0))|0);
+ $406 = (getTempRet0() | 0);
+ $407 = (___muldi3(($345|0),($346|0),136657,0)|0);
+ $408 = (getTempRet0() | 0);
+ $409 = (_i64Add(($385|0),($386|0),($407|0),($408|0))|0);
+ $410 = (getTempRet0() | 0);
+ $411 = (___muldi3(($345|0),($346|0),-683901,-1)|0);
+ $412 = (getTempRet0() | 0);
+ $413 = (_i64Add(($310|0),($311|0),($207|0),($208|0))|0);
+ $414 = (getTempRet0() | 0);
+ $415 = (_i64Subtract(($413|0),($414|0),($253|0),($240|0))|0);
+ $416 = (getTempRet0() | 0);
+ $417 = (_i64Add(($415|0),($416|0),($359|0),($360|0))|0);
+ $418 = (getTempRet0() | 0);
+ $419 = (_i64Add(($417|0),($418|0),($387|0),($388|0))|0);
+ $420 = (getTempRet0() | 0);
+ $421 = (_i64Add(($419|0),($420|0),($411|0),($412|0))|0);
+ $422 = (getTempRet0() | 0);
+ $423 = (___muldi3(($333|0),($334|0),666643,0)|0);
+ $424 = (getTempRet0() | 0);
+ $425 = (_i64Add(($423|0),($424|0),($12|0),0)|0);
+ $426 = (getTempRet0() | 0);
+ $427 = (___muldi3(($333|0),($334|0),470296,0)|0);
+ $428 = (getTempRet0() | 0);
+ $429 = (_i64Add(($393|0),($394|0),($427|0),($428|0))|0);
+ $430 = (getTempRet0() | 0);
+ $431 = (___muldi3(($333|0),($334|0),654183,0)|0);
+ $432 = (getTempRet0() | 0);
+ $433 = (_i64Add(($397|0),($398|0),($431|0),($432|0))|0);
+ $434 = (getTempRet0() | 0);
+ $435 = (___muldi3(($333|0),($334|0),-997805,-1)|0);
+ $436 = (getTempRet0() | 0);
+ $437 = (_i64Add(($401|0),($402|0),($435|0),($436|0))|0);
+ $438 = (getTempRet0() | 0);
+ $439 = (___muldi3(($333|0),($334|0),136657,0)|0);
+ $440 = (getTempRet0() | 0);
+ $441 = (_i64Add(($405|0),($406|0),($439|0),($440|0))|0);
+ $442 = (getTempRet0() | 0);
+ $443 = (___muldi3(($333|0),($334|0),-683901,-1)|0);
+ $444 = (getTempRet0() | 0);
+ $445 = (_i64Add(($409|0),($410|0),($443|0),($444|0))|0);
+ $446 = (getTempRet0() | 0);
+ $447 = (___muldi3(($336|0),($337|0),666643,0)|0);
+ $448 = (getTempRet0() | 0);
+ $449 = (_i64Add(($447|0),($448|0),($7|0),0)|0);
+ $450 = (getTempRet0() | 0);
+ $451 = (___muldi3(($336|0),($337|0),470296,0)|0);
+ $452 = (getTempRet0() | 0);
+ $453 = (_i64Add(($425|0),($426|0),($451|0),($452|0))|0);
+ $454 = (getTempRet0() | 0);
+ $455 = (___muldi3(($336|0),($337|0),654183,0)|0);
+ $456 = (getTempRet0() | 0);
+ $457 = (_i64Add(($429|0),($430|0),($455|0),($456|0))|0);
+ $458 = (getTempRet0() | 0);
+ $459 = (___muldi3(($336|0),($337|0),-997805,-1)|0);
+ $460 = (getTempRet0() | 0);
+ $461 = (_i64Add(($433|0),($434|0),($459|0),($460|0))|0);
+ $462 = (getTempRet0() | 0);
+ $463 = (___muldi3(($336|0),($337|0),136657,0)|0);
+ $464 = (getTempRet0() | 0);
+ $465 = (_i64Add(($437|0),($438|0),($463|0),($464|0))|0);
+ $466 = (getTempRet0() | 0);
+ $467 = (___muldi3(($336|0),($337|0),-683901,-1)|0);
+ $468 = (getTempRet0() | 0);
+ $469 = (_i64Add(($441|0),($442|0),($467|0),($468|0))|0);
+ $470 = (getTempRet0() | 0);
+ $471 = (___muldi3(($324|0),($325|0),666643,0)|0);
+ $472 = (getTempRet0() | 0);
+ $473 = (_i64Add(($471|0),($472|0),($2|0),0)|0);
+ $474 = (getTempRet0() | 0);
+ $475 = (___muldi3(($324|0),($325|0),470296,0)|0);
+ $476 = (getTempRet0() | 0);
+ $477 = (_i64Add(($449|0),($450|0),($475|0),($476|0))|0);
+ $478 = (getTempRet0() | 0);
+ $479 = (___muldi3(($324|0),($325|0),654183,0)|0);
+ $480 = (getTempRet0() | 0);
+ $481 = (_i64Add(($453|0),($454|0),($479|0),($480|0))|0);
+ $482 = (getTempRet0() | 0);
+ $483 = (___muldi3(($324|0),($325|0),-997805,-1)|0);
+ $484 = (getTempRet0() | 0);
+ $485 = (_i64Add(($457|0),($458|0),($483|0),($484|0))|0);
+ $486 = (getTempRet0() | 0);
+ $487 = (___muldi3(($324|0),($325|0),136657,0)|0);
+ $488 = (getTempRet0() | 0);
+ $489 = (_i64Add(($461|0),($462|0),($487|0),($488|0))|0);
+ $490 = (getTempRet0() | 0);
+ $491 = (___muldi3(($324|0),($325|0),-683901,-1)|0);
+ $492 = (getTempRet0() | 0);
+ $493 = (_i64Add(($465|0),($466|0),($491|0),($492|0))|0);
+ $494 = (getTempRet0() | 0);
+ $495 = (_i64Add(($473|0),($474|0),1048576,0)|0);
+ $496 = (getTempRet0() | 0);
+ $497 = (_bitshift64Ashr(($495|0),($496|0),21)|0);
+ $498 = (getTempRet0() | 0);
+ $499 = (_i64Add(($477|0),($478|0),($497|0),($498|0))|0);
+ $500 = (getTempRet0() | 0);
+ $501 = $495 & -2097152;
+ $502 = (_i64Subtract(($473|0),($474|0),($501|0),($496|0))|0);
+ $503 = (getTempRet0() | 0);
+ $504 = (_i64Add(($481|0),($482|0),1048576,0)|0);
+ $505 = (getTempRet0() | 0);
+ $506 = (_bitshift64Ashr(($504|0),($505|0),21)|0);
+ $507 = (getTempRet0() | 0);
+ $508 = (_i64Add(($485|0),($486|0),($506|0),($507|0))|0);
+ $509 = (getTempRet0() | 0);
+ $510 = $504 & -2097152;
+ $511 = (_i64Add(($489|0),($490|0),1048576,0)|0);
+ $512 = (getTempRet0() | 0);
+ $513 = (_bitshift64Ashr(($511|0),($512|0),21)|0);
+ $514 = (getTempRet0() | 0);
+ $515 = (_i64Add(($493|0),($494|0),($513|0),($514|0))|0);
+ $516 = (getTempRet0() | 0);
+ $517 = $511 & -2097152;
+ $518 = (_i64Add(($469|0),($470|0),1048576,0)|0);
+ $519 = (getTempRet0() | 0);
+ $520 = (_bitshift64Ashr(($518|0),($519|0),21)|0);
+ $521 = (getTempRet0() | 0);
+ $522 = (_i64Add(($445|0),($446|0),($520|0),($521|0))|0);
+ $523 = (getTempRet0() | 0);
+ $524 = $518 & -2097152;
+ $525 = (_i64Subtract(($469|0),($470|0),($524|0),($519|0))|0);
+ $526 = (getTempRet0() | 0);
+ $527 = (_i64Add(($421|0),($422|0),1048576,0)|0);
+ $528 = (getTempRet0() | 0);
+ $529 = (_bitshift64Ashr(($527|0),($528|0),21)|0);
+ $530 = (getTempRet0() | 0);
+ $531 = (_i64Add(($361|0),($362|0),($251|0),($252|0))|0);
+ $532 = (getTempRet0() | 0);
+ $533 = (_i64Subtract(($531|0),($532|0),($319|0),($316|0))|0);
+ $534 = (getTempRet0() | 0);
+ $535 = (_i64Add(($533|0),($534|0),($389|0),($390|0))|0);
+ $536 = (getTempRet0() | 0);
+ $537 = (_i64Add(($535|0),($536|0),($529|0),($530|0))|0);
+ $538 = (getTempRet0() | 0);
+ $539 = $527 & -2097152;
+ $540 = (_i64Subtract(($421|0),($422|0),($539|0),($528|0))|0);
+ $541 = (getTempRet0() | 0);
+ $542 = (_i64Add(($369|0),($370|0),1048576,0)|0);
+ $543 = (getTempRet0() | 0);
+ $544 = (_bitshift64Ashr(($542|0),($543|0),21)|0);
+ $545 = (getTempRet0() | 0);
+ $546 = (_i64Add(($544|0),($545|0),($327|0),($328|0))|0);
+ $547 = (getTempRet0() | 0);
+ $548 = $542 & -2097152;
+ $549 = (_i64Subtract(($369|0),($370|0),($548|0),($543|0))|0);
+ $550 = (getTempRet0() | 0);
+ $551 = (_i64Add(($499|0),($500|0),1048576,0)|0);
+ $552 = (getTempRet0() | 0);
+ $553 = (_bitshift64Ashr(($551|0),($552|0),21)|0);
+ $554 = (getTempRet0() | 0);
+ $555 = $551 & -2097152;
+ $556 = (_i64Add(($508|0),($509|0),1048576,0)|0);
+ $557 = (getTempRet0() | 0);
+ $558 = (_bitshift64Ashr(($556|0),($557|0),21)|0);
+ $559 = (getTempRet0() | 0);
+ $560 = $556 & -2097152;
+ $561 = (_i64Add(($515|0),($516|0),1048576,0)|0);
+ $562 = (getTempRet0() | 0);
+ $563 = (_bitshift64Ashr(($561|0),($562|0),21)|0);
+ $564 = (getTempRet0() | 0);
+ $565 = (_i64Add(($525|0),($526|0),($563|0),($564|0))|0);
+ $566 = (getTempRet0() | 0);
+ $567 = $561 & -2097152;
+ $568 = (_i64Add(($522|0),($523|0),1048576,0)|0);
+ $569 = (getTempRet0() | 0);
+ $570 = (_bitshift64Ashr(($568|0),($569|0),21)|0);
+ $571 = (getTempRet0() | 0);
+ $572 = (_i64Add(($540|0),($541|0),($570|0),($571|0))|0);
+ $573 = (getTempRet0() | 0);
+ $574 = $568 & -2097152;
+ $575 = (_i64Subtract(($522|0),($523|0),($574|0),($569|0))|0);
+ $576 = (getTempRet0() | 0);
+ $577 = (_i64Add(($537|0),($538|0),1048576,0)|0);
+ $578 = (getTempRet0() | 0);
+ $579 = (_bitshift64Ashr(($577|0),($578|0),21)|0);
+ $580 = (getTempRet0() | 0);
+ $581 = (_i64Add(($549|0),($550|0),($579|0),($580|0))|0);
+ $582 = (getTempRet0() | 0);
+ $583 = $577 & -2097152;
+ $584 = (_i64Subtract(($537|0),($538|0),($583|0),($578|0))|0);
+ $585 = (getTempRet0() | 0);
+ $586 = (_i64Add(($546|0),($547|0),1048576,0)|0);
+ $587 = (getTempRet0() | 0);
+ $588 = (_bitshift64Ashr(($586|0),($587|0),21)|0);
+ $589 = (getTempRet0() | 0);
+ $590 = $586 & -2097152;
+ $591 = (_i64Subtract(($546|0),($547|0),($590|0),($587|0))|0);
+ $592 = (getTempRet0() | 0);
+ $593 = (___muldi3(($588|0),($589|0),666643,0)|0);
+ $594 = (getTempRet0() | 0);
+ $595 = (_i64Add(($502|0),($503|0),($593|0),($594|0))|0);
+ $596 = (getTempRet0() | 0);
+ $597 = (___muldi3(($588|0),($589|0),470296,0)|0);
+ $598 = (getTempRet0() | 0);
+ $599 = (___muldi3(($588|0),($589|0),654183,0)|0);
+ $600 = (getTempRet0() | 0);
+ $601 = (___muldi3(($588|0),($589|0),-997805,-1)|0);
+ $602 = (getTempRet0() | 0);
+ $603 = (___muldi3(($588|0),($589|0),136657,0)|0);
+ $604 = (getTempRet0() | 0);
+ $605 = (___muldi3(($588|0),($589|0),-683901,-1)|0);
+ $606 = (getTempRet0() | 0);
+ $607 = (_bitshift64Ashr(($595|0),($596|0),21)|0);
+ $608 = (getTempRet0() | 0);
+ $609 = (_i64Add(($597|0),($598|0),($499|0),($500|0))|0);
+ $610 = (getTempRet0() | 0);
+ $611 = (_i64Subtract(($609|0),($610|0),($555|0),($552|0))|0);
+ $612 = (getTempRet0() | 0);
+ $613 = (_i64Add(($611|0),($612|0),($607|0),($608|0))|0);
+ $614 = (getTempRet0() | 0);
+ $615 = $595 & 2097151;
+ $616 = (_bitshift64Ashr(($613|0),($614|0),21)|0);
+ $617 = (getTempRet0() | 0);
+ $618 = (_i64Add(($599|0),($600|0),($481|0),($482|0))|0);
+ $619 = (getTempRet0() | 0);
+ $620 = (_i64Subtract(($618|0),($619|0),($510|0),($505|0))|0);
+ $621 = (getTempRet0() | 0);
+ $622 = (_i64Add(($620|0),($621|0),($553|0),($554|0))|0);
+ $623 = (getTempRet0() | 0);
+ $624 = (_i64Add(($622|0),($623|0),($616|0),($617|0))|0);
+ $625 = (getTempRet0() | 0);
+ $626 = $613 & 2097151;
+ $627 = (_bitshift64Ashr(($624|0),($625|0),21)|0);
+ $628 = (getTempRet0() | 0);
+ $629 = (_i64Add(($508|0),($509|0),($601|0),($602|0))|0);
+ $630 = (getTempRet0() | 0);
+ $631 = (_i64Subtract(($629|0),($630|0),($560|0),($557|0))|0);
+ $632 = (getTempRet0() | 0);
+ $633 = (_i64Add(($631|0),($632|0),($627|0),($628|0))|0);
+ $634 = (getTempRet0() | 0);
+ $635 = $624 & 2097151;
+ $636 = (_bitshift64Ashr(($633|0),($634|0),21)|0);
+ $637 = (getTempRet0() | 0);
+ $638 = (_i64Add(($603|0),($604|0),($489|0),($490|0))|0);
+ $639 = (getTempRet0() | 0);
+ $640 = (_i64Subtract(($638|0),($639|0),($517|0),($512|0))|0);
+ $641 = (getTempRet0() | 0);
+ $642 = (_i64Add(($640|0),($641|0),($558|0),($559|0))|0);
+ $643 = (getTempRet0() | 0);
+ $644 = (_i64Add(($642|0),($643|0),($636|0),($637|0))|0);
+ $645 = (getTempRet0() | 0);
+ $646 = $633 & 2097151;
+ $647 = (_bitshift64Ashr(($644|0),($645|0),21)|0);
+ $648 = (getTempRet0() | 0);
+ $649 = (_i64Add(($515|0),($516|0),($605|0),($606|0))|0);
+ $650 = (getTempRet0() | 0);
+ $651 = (_i64Subtract(($649|0),($650|0),($567|0),($562|0))|0);
+ $652 = (getTempRet0() | 0);
+ $653 = (_i64Add(($651|0),($652|0),($647|0),($648|0))|0);
+ $654 = (getTempRet0() | 0);
+ $655 = $644 & 2097151;
+ $656 = (_bitshift64Ashr(($653|0),($654|0),21)|0);
+ $657 = (getTempRet0() | 0);
+ $658 = (_i64Add(($565|0),($566|0),($656|0),($657|0))|0);
+ $659 = (getTempRet0() | 0);
+ $660 = $653 & 2097151;
+ $661 = (_bitshift64Ashr(($658|0),($659|0),21)|0);
+ $662 = (getTempRet0() | 0);
+ $663 = (_i64Add(($661|0),($662|0),($575|0),($576|0))|0);
+ $664 = (getTempRet0() | 0);
+ $665 = $658 & 2097151;
+ $666 = (_bitshift64Ashr(($663|0),($664|0),21)|0);
+ $667 = (getTempRet0() | 0);
+ $668 = (_i64Add(($572|0),($573|0),($666|0),($667|0))|0);
+ $669 = (getTempRet0() | 0);
+ $670 = $663 & 2097151;
+ $671 = (_bitshift64Ashr(($668|0),($669|0),21)|0);
+ $672 = (getTempRet0() | 0);
+ $673 = (_i64Add(($671|0),($672|0),($584|0),($585|0))|0);
+ $674 = (getTempRet0() | 0);
+ $675 = $668 & 2097151;
+ $676 = (_bitshift64Ashr(($673|0),($674|0),21)|0);
+ $677 = (getTempRet0() | 0);
+ $678 = (_i64Add(($581|0),($582|0),($676|0),($677|0))|0);
+ $679 = (getTempRet0() | 0);
+ $680 = $673 & 2097151;
+ $681 = (_bitshift64Ashr(($678|0),($679|0),21)|0);
+ $682 = (getTempRet0() | 0);
+ $683 = (_i64Add(($681|0),($682|0),($591|0),($592|0))|0);
+ $684 = (getTempRet0() | 0);
+ $685 = $678 & 2097151;
+ $686 = (_bitshift64Ashr(($683|0),($684|0),21)|0);
+ $687 = (getTempRet0() | 0);
+ $688 = $683 & 2097151;
+ $689 = (___muldi3(($686|0),($687|0),666643,0)|0);
+ $690 = (getTempRet0() | 0);
+ $691 = (_i64Add(($689|0),($690|0),($615|0),0)|0);
+ $692 = (getTempRet0() | 0);
+ $693 = (___muldi3(($686|0),($687|0),470296,0)|0);
+ $694 = (getTempRet0() | 0);
+ $695 = (_i64Add(($693|0),($694|0),($626|0),0)|0);
+ $696 = (getTempRet0() | 0);
+ $697 = (___muldi3(($686|0),($687|0),654183,0)|0);
+ $698 = (getTempRet0() | 0);
+ $699 = (_i64Add(($697|0),($698|0),($635|0),0)|0);
+ $700 = (getTempRet0() | 0);
+ $701 = (___muldi3(($686|0),($687|0),-997805,-1)|0);
+ $702 = (getTempRet0() | 0);
+ $703 = (_i64Add(($701|0),($702|0),($646|0),0)|0);
+ $704 = (getTempRet0() | 0);
+ $705 = (___muldi3(($686|0),($687|0),136657,0)|0);
+ $706 = (getTempRet0() | 0);
+ $707 = (_i64Add(($705|0),($706|0),($655|0),0)|0);
+ $708 = (getTempRet0() | 0);
+ $709 = (___muldi3(($686|0),($687|0),-683901,-1)|0);
+ $710 = (getTempRet0() | 0);
+ $711 = (_i64Add(($709|0),($710|0),($660|0),0)|0);
+ $712 = (getTempRet0() | 0);
+ $713 = (_bitshift64Ashr(($691|0),($692|0),21)|0);
+ $714 = (getTempRet0() | 0);
+ $715 = (_i64Add(($695|0),($696|0),($713|0),($714|0))|0);
+ $716 = (getTempRet0() | 0);
+ $717 = (_bitshift64Ashr(($715|0),($716|0),21)|0);
+ $718 = (getTempRet0() | 0);
+ $719 = (_i64Add(($699|0),($700|0),($717|0),($718|0))|0);
+ $720 = (getTempRet0() | 0);
+ $721 = $715 & 2097151;
+ $722 = (_bitshift64Ashr(($719|0),($720|0),21)|0);
+ $723 = (getTempRet0() | 0);
+ $724 = (_i64Add(($703|0),($704|0),($722|0),($723|0))|0);
+ $725 = (getTempRet0() | 0);
+ $726 = $719 & 2097151;
+ $727 = (_bitshift64Ashr(($724|0),($725|0),21)|0);
+ $728 = (getTempRet0() | 0);
+ $729 = (_i64Add(($707|0),($708|0),($727|0),($728|0))|0);
+ $730 = (getTempRet0() | 0);
+ $731 = $724 & 2097151;
+ $732 = (_bitshift64Ashr(($729|0),($730|0),21)|0);
+ $733 = (getTempRet0() | 0);
+ $734 = (_i64Add(($711|0),($712|0),($732|0),($733|0))|0);
+ $735 = (getTempRet0() | 0);
+ $736 = $729 & 2097151;
+ $737 = (_bitshift64Ashr(($734|0),($735|0),21)|0);
+ $738 = (getTempRet0() | 0);
+ $739 = (_i64Add(($737|0),($738|0),($665|0),0)|0);
+ $740 = (getTempRet0() | 0);
+ $741 = $734 & 2097151;
+ $742 = (_bitshift64Ashr(($739|0),($740|0),21)|0);
+ $743 = (getTempRet0() | 0);
+ $744 = (_i64Add(($742|0),($743|0),($670|0),0)|0);
+ $745 = (getTempRet0() | 0);
+ $746 = $739 & 2097151;
+ $747 = (_bitshift64Ashr(($744|0),($745|0),21)|0);
+ $748 = (getTempRet0() | 0);
+ $749 = (_i64Add(($747|0),($748|0),($675|0),0)|0);
+ $750 = (getTempRet0() | 0);
+ $751 = (_bitshift64Ashr(($749|0),($750|0),21)|0);
+ $752 = (getTempRet0() | 0);
+ $753 = (_i64Add(($751|0),($752|0),($680|0),0)|0);
+ $754 = (getTempRet0() | 0);
+ $755 = (_bitshift64Ashr(($753|0),($754|0),21)|0);
+ $756 = (getTempRet0() | 0);
+ $757 = (_i64Add(($755|0),($756|0),($685|0),0)|0);
+ $758 = (getTempRet0() | 0);
+ $759 = $753 & 2097151;
+ $760 = (_bitshift64Ashr(($757|0),($758|0),21)|0);
+ $761 = (getTempRet0() | 0);
+ $762 = (_i64Add(($760|0),($761|0),($688|0),0)|0);
+ $763 = (getTempRet0() | 0);
+ $764 = $757 & 2097151;
+ $765 = $691&255;
+ HEAP8[$s>>0] = $765;
+ $766 = (_bitshift64Lshr(($691|0),($692|0),8)|0);
+ $767 = (getTempRet0() | 0);
+ $768 = $766&255;
+ $arrayidx462 = ((($s)) + 1|0);
+ HEAP8[$arrayidx462>>0] = $768;
+ $769 = (_bitshift64Lshr(($691|0),($692|0),16)|0);
+ $770 = (getTempRet0() | 0);
+ $771 = $769 & 31;
+ $772 = (_bitshift64Shl(($721|0),0,5)|0);
+ $773 = (getTempRet0() | 0);
+ $774 = $772 | $771;
+ $775 = $774&255;
+ HEAP8[$add$ptr>>0] = $775;
+ $776 = (_bitshift64Lshr(($715|0),($716|0),3)|0);
+ $777 = (getTempRet0() | 0);
+ $778 = $776&255;
+ $arrayidx469 = ((($s)) + 3|0);
+ HEAP8[$arrayidx469>>0] = $778;
+ $779 = (_bitshift64Lshr(($715|0),($716|0),11)|0);
+ $780 = (getTempRet0() | 0);
+ $781 = $779&255;
+ $arrayidx472 = ((($s)) + 4|0);
+ HEAP8[$arrayidx472>>0] = $781;
+ $782 = (_bitshift64Lshr(($721|0),0,19)|0);
+ $783 = (getTempRet0() | 0);
+ $784 = (_bitshift64Shl(($726|0),0,2)|0);
+ $785 = (getTempRet0() | 0);
+ $786 = $784 | $782;
+ $785 | $783;
+ $787 = $786&255;
+ HEAP8[$add$ptr3>>0] = $787;
+ $788 = (_bitshift64Lshr(($719|0),($720|0),6)|0);
+ $789 = (getTempRet0() | 0);
+ $790 = $788&255;
+ $arrayidx480 = ((($s)) + 6|0);
+ HEAP8[$arrayidx480>>0] = $790;
+ $791 = (_bitshift64Lshr(($726|0),0,14)|0);
+ $792 = (getTempRet0() | 0);
+ $793 = (_bitshift64Shl(($731|0),0,7)|0);
+ $794 = (getTempRet0() | 0);
+ $795 = $793 | $791;
+ $794 | $792;
+ $796 = $795&255;
+ HEAP8[$add$ptr7>>0] = $796;
+ $797 = (_bitshift64Lshr(($724|0),($725|0),1)|0);
+ $798 = (getTempRet0() | 0);
+ $799 = $797&255;
+ $arrayidx488 = ((($s)) + 8|0);
+ HEAP8[$arrayidx488>>0] = $799;
+ $800 = (_bitshift64Lshr(($724|0),($725|0),9)|0);
+ $801 = (getTempRet0() | 0);
+ $802 = $800&255;
+ $arrayidx491 = ((($s)) + 9|0);
+ HEAP8[$arrayidx491>>0] = $802;
+ $803 = (_bitshift64Lshr(($731|0),0,17)|0);
+ $804 = (getTempRet0() | 0);
+ $805 = (_bitshift64Shl(($736|0),0,4)|0);
+ $806 = (getTempRet0() | 0);
+ $807 = $805 | $803;
+ $806 | $804;
+ $808 = $807&255;
+ HEAP8[$add$ptr11>>0] = $808;
+ $809 = (_bitshift64Lshr(($729|0),($730|0),4)|0);
+ $810 = (getTempRet0() | 0);
+ $811 = $809&255;
+ $arrayidx499 = ((($s)) + 11|0);
+ HEAP8[$arrayidx499>>0] = $811;
+ $812 = (_bitshift64Lshr(($729|0),($730|0),12)|0);
+ $813 = (getTempRet0() | 0);
+ $814 = $812&255;
+ $arrayidx502 = ((($s)) + 12|0);
+ HEAP8[$arrayidx502>>0] = $814;
+ $815 = (_bitshift64Lshr(($736|0),0,20)|0);
+ $816 = (getTempRet0() | 0);
+ $817 = (_bitshift64Shl(($741|0),0,1)|0);
+ $818 = (getTempRet0() | 0);
+ $819 = $817 | $815;
+ $818 | $816;
+ $820 = $819&255;
+ HEAP8[$add$ptr15>>0] = $820;
+ $821 = (_bitshift64Lshr(($734|0),($735|0),7)|0);
+ $822 = (getTempRet0() | 0);
+ $823 = $821&255;
+ $arrayidx510 = ((($s)) + 14|0);
+ HEAP8[$arrayidx510>>0] = $823;
+ $824 = (_bitshift64Lshr(($741|0),0,15)|0);
+ $825 = (getTempRet0() | 0);
+ $826 = (_bitshift64Shl(($746|0),0,6)|0);
+ $827 = (getTempRet0() | 0);
+ $828 = $826 | $824;
+ $827 | $825;
+ $829 = $828&255;
+ HEAP8[$add$ptr19>>0] = $829;
+ $830 = (_bitshift64Lshr(($739|0),($740|0),2)|0);
+ $831 = (getTempRet0() | 0);
+ $832 = $830&255;
+ $arrayidx518 = ((($s)) + 16|0);
+ HEAP8[$arrayidx518>>0] = $832;
+ $833 = (_bitshift64Lshr(($739|0),($740|0),10)|0);
+ $834 = (getTempRet0() | 0);
+ $835 = $833&255;
+ $arrayidx521 = ((($s)) + 17|0);
+ HEAP8[$arrayidx521>>0] = $835;
+ $836 = (_bitshift64Lshr(($746|0),0,18)|0);
+ $837 = (getTempRet0() | 0);
+ $838 = (_bitshift64Shl(($744|0),($745|0),3)|0);
+ $839 = (getTempRet0() | 0);
+ $840 = $838 | $836;
+ $839 | $837;
+ $841 = $840&255;
+ HEAP8[$add$ptr23>>0] = $841;
+ $842 = (_bitshift64Lshr(($744|0),($745|0),5)|0);
+ $843 = (getTempRet0() | 0);
+ $844 = $842&255;
+ $arrayidx529 = ((($s)) + 19|0);
+ HEAP8[$arrayidx529>>0] = $844;
+ $845 = (_bitshift64Lshr(($744|0),($745|0),13)|0);
+ $846 = (getTempRet0() | 0);
+ $847 = $845&255;
+ $arrayidx532 = ((($s)) + 20|0);
+ HEAP8[$arrayidx532>>0] = $847;
+ $848 = $749&255;
+ HEAP8[$add$ptr27>>0] = $848;
+ $849 = (_bitshift64Lshr(($749|0),($750|0),8)|0);
+ $850 = (getTempRet0() | 0);
+ $851 = $849&255;
+ $arrayidx538 = ((($s)) + 22|0);
+ HEAP8[$arrayidx538>>0] = $851;
+ $852 = (_bitshift64Lshr(($749|0),($750|0),16)|0);
+ $853 = (getTempRet0() | 0);
+ $854 = $852 & 31;
+ $855 = (_bitshift64Shl(($759|0),0,5)|0);
+ $856 = (getTempRet0() | 0);
+ $857 = $855 | $854;
+ $858 = $857&255;
+ HEAP8[$add$ptr30>>0] = $858;
+ $859 = (_bitshift64Lshr(($753|0),($754|0),3)|0);
+ $860 = (getTempRet0() | 0);
+ $861 = $859&255;
+ $arrayidx546 = ((($s)) + 24|0);
+ HEAP8[$arrayidx546>>0] = $861;
+ $862 = (_bitshift64Lshr(($753|0),($754|0),11)|0);
+ $863 = (getTempRet0() | 0);
+ $864 = $862&255;
+ $arrayidx549 = ((($s)) + 25|0);
+ HEAP8[$arrayidx549>>0] = $864;
+ $865 = (_bitshift64Lshr(($759|0),0,19)|0);
+ $866 = (getTempRet0() | 0);
+ $867 = (_bitshift64Shl(($764|0),0,2)|0);
+ $868 = (getTempRet0() | 0);
+ $869 = $867 | $865;
+ $868 | $866;
+ $870 = $869&255;
+ HEAP8[$add$ptr34>>0] = $870;
+ $871 = (_bitshift64Lshr(($757|0),($758|0),6)|0);
+ $872 = (getTempRet0() | 0);
+ $873 = $871&255;
+ $arrayidx557 = ((($s)) + 27|0);
+ HEAP8[$arrayidx557>>0] = $873;
+ $874 = (_bitshift64Lshr(($764|0),0,14)|0);
+ $875 = (getTempRet0() | 0);
+ $876 = (_bitshift64Shl(($762|0),($763|0),7)|0);
+ $877 = (getTempRet0() | 0);
+ $878 = $876 | $874;
+ $877 | $875;
+ $879 = $878&255;
+ HEAP8[$add$ptr38>>0] = $879;
+ $880 = (_bitshift64Lshr(($762|0),($763|0),1)|0);
+ $881 = (getTempRet0() | 0);
+ $882 = $880&255;
+ $arrayidx565 = ((($s)) + 29|0);
+ HEAP8[$arrayidx565>>0] = $882;
+ $883 = (_bitshift64Lshr(($762|0),($763|0),9)|0);
+ $884 = (getTempRet0() | 0);
+ $885 = $883&255;
+ $arrayidx568 = ((($s)) + 30|0);
+ HEAP8[$arrayidx568>>0] = $885;
+ $886 = (_bitshift64Ashr(($762|0),($763|0),17)|0);
+ $887 = (getTempRet0() | 0);
+ $888 = $886&255;
+ HEAP8[$add$ptr42>>0] = $888;
+ return;
+}
+function _load_3_17($in) {
+ $in = $in|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP8[$in>>0]|0;
+ $1 = $0&255;
+ $arrayidx1 = ((($in)) + 1|0);
+ $2 = HEAP8[$arrayidx1>>0]|0;
+ $3 = $2&255;
+ $4 = (_bitshift64Shl(($3|0),0,8)|0);
+ $5 = (getTempRet0() | 0);
+ $6 = $4 | $1;
+ $arrayidx3 = ((($in)) + 2|0);
+ $7 = HEAP8[$arrayidx3>>0]|0;
+ $8 = $7&255;
+ $9 = (_bitshift64Shl(($8|0),0,16)|0);
+ $10 = (getTempRet0() | 0);
+ $11 = $6 | $9;
+ $12 = $5 | $10;
+ setTempRet0(($12) | 0);
+ return ($11|0);
+}
+function _load_4_18($in) {
+ $in = $in|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0;
+ var $arrayidx3 = 0, $arrayidx7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP8[$in>>0]|0;
+ $1 = $0&255;
+ $arrayidx1 = ((($in)) + 1|0);
+ $2 = HEAP8[$arrayidx1>>0]|0;
+ $3 = $2&255;
+ $4 = (_bitshift64Shl(($3|0),0,8)|0);
+ $5 = (getTempRet0() | 0);
+ $6 = $4 | $1;
+ $arrayidx3 = ((($in)) + 2|0);
+ $7 = HEAP8[$arrayidx3>>0]|0;
+ $8 = $7&255;
+ $9 = (_bitshift64Shl(($8|0),0,16)|0);
+ $10 = (getTempRet0() | 0);
+ $11 = $6 | $9;
+ $12 = $5 | $10;
+ $arrayidx7 = ((($in)) + 3|0);
+ $13 = HEAP8[$arrayidx7>>0]|0;
+ $14 = $13&255;
+ $15 = (_bitshift64Shl(($14|0),0,24)|0);
+ $16 = (getTempRet0() | 0);
+ $17 = $11 | $15;
+ $18 = $12 | $16;
+ setTempRet0(($18) | 0);
+ return ($17|0);
+}
+function _sc_muladd($s,$a,$b,$c) {
+ $s = $s|0;
+ $a = $a|0;
+ $b = $b|0;
+ $c = $c|0;
+ var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
+ var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0;
+ var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0;
+ var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0;
+ var $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0;
+ var $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0;
+ var $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0;
+ var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0;
+ var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0;
+ var $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0;
+ var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0;
+ var $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0;
+ var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0;
+ var $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0;
+ var $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0;
+ var $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0;
+ var $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0;
+ var $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0;
+ var $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0;
+ var $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0;
+ var $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0;
+ var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0;
+ var $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0;
+ var $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0;
+ var $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0;
+ var $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0;
+ var $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0;
+ var $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0;
+ var $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0;
+ var $152 = 0, $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0;
+ var $1538 = 0, $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0;
+ var $1556 = 0, $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0, $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0;
+ var $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0;
+ var $1592 = 0, $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0;
+ var $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0;
+ var $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0;
+ var $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0;
+ var $1664 = 0, $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0;
+ var $1682 = 0, $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0;
+ var $170 = 0, $1700 = 0, $1701 = 0, $1702 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0;
+ var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0;
+ var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0;
+ var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0;
+ var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0;
+ var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0;
+ var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0;
+ var $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0;
+ var $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0;
+ var $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0;
+ var $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0;
+ var $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0;
+ var $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0;
+ var $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0;
+ var $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0;
+ var $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0;
+ var $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0;
+ var $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0;
+ var $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0;
+ var $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0;
+ var $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0;
+ var $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0;
+ var $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0;
+ var $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0;
+ var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0;
+ var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0;
+ var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0;
+ var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0;
+ var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0;
+ var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0;
+ var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0;
+ var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0;
+ var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0;
+ var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0;
+ var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0;
+ var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0;
+ var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0;
+ var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0;
+ var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0;
+ var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0;
+ var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0;
+ var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0;
+ var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0;
+ var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0;
+ var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0;
+ var $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0;
+ var $997 = 0, $998 = 0, $999 = 0, $add$ptr = 0, $add$ptr103 = 0, $add$ptr107 = 0, $add$ptr11 = 0, $add$ptr111 = 0, $add$ptr115 = 0, $add$ptr118 = 0, $add$ptr122 = 0, $add$ptr126 = 0, $add$ptr15 = 0, $add$ptr19 = 0, $add$ptr23 = 0, $add$ptr27 = 0, $add$ptr3 = 0, $add$ptr30 = 0, $add$ptr34 = 0, $add$ptr38 = 0;
+ var $add$ptr43 = 0, $add$ptr47 = 0, $add$ptr51 = 0, $add$ptr55 = 0, $add$ptr59 = 0, $add$ptr63 = 0, $add$ptr67 = 0, $add$ptr7 = 0, $add$ptr71 = 0, $add$ptr74 = 0, $add$ptr78 = 0, $add$ptr82 = 0, $add$ptr87 = 0, $add$ptr91 = 0, $add$ptr95 = 0, $add$ptr99 = 0, $arrayidx1001 = 0, $arrayidx1004 = 0, $arrayidx895 = 0, $arrayidx899 = 0;
+ var $arrayidx902 = 0, $arrayidx905 = 0, $arrayidx910 = 0, $arrayidx913 = 0, $arrayidx918 = 0, $arrayidx921 = 0, $arrayidx924 = 0, $arrayidx929 = 0, $arrayidx932 = 0, $arrayidx935 = 0, $arrayidx940 = 0, $arrayidx943 = 0, $arrayidx948 = 0, $arrayidx951 = 0, $arrayidx954 = 0, $arrayidx959 = 0, $arrayidx962 = 0, $arrayidx965 = 0, $arrayidx968 = 0, $arrayidx971 = 0;
+ var $arrayidx976 = 0, $arrayidx979 = 0, $arrayidx982 = 0, $arrayidx987 = 0, $arrayidx990 = 0, $arrayidx995 = 0, $arrayidx998 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (_load_3_17($a)|0);
+ $1 = (getTempRet0() | 0);
+ $2 = $0 & 2097151;
+ $add$ptr = ((($a)) + 2|0);
+ $3 = (_load_4_18($add$ptr)|0);
+ $4 = (getTempRet0() | 0);
+ $5 = (_bitshift64Lshr(($3|0),($4|0),5)|0);
+ $6 = (getTempRet0() | 0);
+ $7 = $5 & 2097151;
+ $add$ptr3 = ((($a)) + 5|0);
+ $8 = (_load_3_17($add$ptr3)|0);
+ $9 = (getTempRet0() | 0);
+ $10 = (_bitshift64Lshr(($8|0),($9|0),2)|0);
+ $11 = (getTempRet0() | 0);
+ $12 = $10 & 2097151;
+ $add$ptr7 = ((($a)) + 7|0);
+ $13 = (_load_4_18($add$ptr7)|0);
+ $14 = (getTempRet0() | 0);
+ $15 = (_bitshift64Lshr(($13|0),($14|0),7)|0);
+ $16 = (getTempRet0() | 0);
+ $17 = $15 & 2097151;
+ $add$ptr11 = ((($a)) + 10|0);
+ $18 = (_load_4_18($add$ptr11)|0);
+ $19 = (getTempRet0() | 0);
+ $20 = (_bitshift64Lshr(($18|0),($19|0),4)|0);
+ $21 = (getTempRet0() | 0);
+ $22 = $20 & 2097151;
+ $add$ptr15 = ((($a)) + 13|0);
+ $23 = (_load_3_17($add$ptr15)|0);
+ $24 = (getTempRet0() | 0);
+ $25 = (_bitshift64Lshr(($23|0),($24|0),1)|0);
+ $26 = (getTempRet0() | 0);
+ $27 = $25 & 2097151;
+ $add$ptr19 = ((($a)) + 15|0);
+ $28 = (_load_4_18($add$ptr19)|0);
+ $29 = (getTempRet0() | 0);
+ $30 = (_bitshift64Lshr(($28|0),($29|0),6)|0);
+ $31 = (getTempRet0() | 0);
+ $32 = $30 & 2097151;
+ $add$ptr23 = ((($a)) + 18|0);
+ $33 = (_load_3_17($add$ptr23)|0);
+ $34 = (getTempRet0() | 0);
+ $35 = (_bitshift64Lshr(($33|0),($34|0),3)|0);
+ $36 = (getTempRet0() | 0);
+ $37 = $35 & 2097151;
+ $add$ptr27 = ((($a)) + 21|0);
+ $38 = (_load_3_17($add$ptr27)|0);
+ $39 = (getTempRet0() | 0);
+ $40 = $38 & 2097151;
+ $add$ptr30 = ((($a)) + 23|0);
+ $41 = (_load_4_18($add$ptr30)|0);
+ $42 = (getTempRet0() | 0);
+ $43 = (_bitshift64Lshr(($41|0),($42|0),5)|0);
+ $44 = (getTempRet0() | 0);
+ $45 = $43 & 2097151;
+ $add$ptr34 = ((($a)) + 26|0);
+ $46 = (_load_3_17($add$ptr34)|0);
+ $47 = (getTempRet0() | 0);
+ $48 = (_bitshift64Lshr(($46|0),($47|0),2)|0);
+ $49 = (getTempRet0() | 0);
+ $50 = $48 & 2097151;
+ $add$ptr38 = ((($a)) + 28|0);
+ $51 = (_load_4_18($add$ptr38)|0);
+ $52 = (getTempRet0() | 0);
+ $53 = (_bitshift64Lshr(($51|0),($52|0),7)|0);
+ $54 = (getTempRet0() | 0);
+ $55 = (_load_3_17($b)|0);
+ $56 = (getTempRet0() | 0);
+ $57 = $55 & 2097151;
+ $add$ptr43 = ((($b)) + 2|0);
+ $58 = (_load_4_18($add$ptr43)|0);
+ $59 = (getTempRet0() | 0);
+ $60 = (_bitshift64Lshr(($58|0),($59|0),5)|0);
+ $61 = (getTempRet0() | 0);
+ $62 = $60 & 2097151;
+ $add$ptr47 = ((($b)) + 5|0);
+ $63 = (_load_3_17($add$ptr47)|0);
+ $64 = (getTempRet0() | 0);
+ $65 = (_bitshift64Lshr(($63|0),($64|0),2)|0);
+ $66 = (getTempRet0() | 0);
+ $67 = $65 & 2097151;
+ $add$ptr51 = ((($b)) + 7|0);
+ $68 = (_load_4_18($add$ptr51)|0);
+ $69 = (getTempRet0() | 0);
+ $70 = (_bitshift64Lshr(($68|0),($69|0),7)|0);
+ $71 = (getTempRet0() | 0);
+ $72 = $70 & 2097151;
+ $add$ptr55 = ((($b)) + 10|0);
+ $73 = (_load_4_18($add$ptr55)|0);
+ $74 = (getTempRet0() | 0);
+ $75 = (_bitshift64Lshr(($73|0),($74|0),4)|0);
+ $76 = (getTempRet0() | 0);
+ $77 = $75 & 2097151;
+ $add$ptr59 = ((($b)) + 13|0);
+ $78 = (_load_3_17($add$ptr59)|0);
+ $79 = (getTempRet0() | 0);
+ $80 = (_bitshift64Lshr(($78|0),($79|0),1)|0);
+ $81 = (getTempRet0() | 0);
+ $82 = $80 & 2097151;
+ $add$ptr63 = ((($b)) + 15|0);
+ $83 = (_load_4_18($add$ptr63)|0);
+ $84 = (getTempRet0() | 0);
+ $85 = (_bitshift64Lshr(($83|0),($84|0),6)|0);
+ $86 = (getTempRet0() | 0);
+ $87 = $85 & 2097151;
+ $add$ptr67 = ((($b)) + 18|0);
+ $88 = (_load_3_17($add$ptr67)|0);
+ $89 = (getTempRet0() | 0);
+ $90 = (_bitshift64Lshr(($88|0),($89|0),3)|0);
+ $91 = (getTempRet0() | 0);
+ $92 = $90 & 2097151;
+ $add$ptr71 = ((($b)) + 21|0);
+ $93 = (_load_3_17($add$ptr71)|0);
+ $94 = (getTempRet0() | 0);
+ $95 = $93 & 2097151;
+ $add$ptr74 = ((($b)) + 23|0);
+ $96 = (_load_4_18($add$ptr74)|0);
+ $97 = (getTempRet0() | 0);
+ $98 = (_bitshift64Lshr(($96|0),($97|0),5)|0);
+ $99 = (getTempRet0() | 0);
+ $100 = $98 & 2097151;
+ $add$ptr78 = ((($b)) + 26|0);
+ $101 = (_load_3_17($add$ptr78)|0);
+ $102 = (getTempRet0() | 0);
+ $103 = (_bitshift64Lshr(($101|0),($102|0),2)|0);
+ $104 = (getTempRet0() | 0);
+ $105 = $103 & 2097151;
+ $add$ptr82 = ((($b)) + 28|0);
+ $106 = (_load_4_18($add$ptr82)|0);
+ $107 = (getTempRet0() | 0);
+ $108 = (_bitshift64Lshr(($106|0),($107|0),7)|0);
+ $109 = (getTempRet0() | 0);
+ $110 = (_load_3_17($c)|0);
+ $111 = (getTempRet0() | 0);
+ $112 = $110 & 2097151;
+ $add$ptr87 = ((($c)) + 2|0);
+ $113 = (_load_4_18($add$ptr87)|0);
+ $114 = (getTempRet0() | 0);
+ $115 = (_bitshift64Lshr(($113|0),($114|0),5)|0);
+ $116 = (getTempRet0() | 0);
+ $117 = $115 & 2097151;
+ $add$ptr91 = ((($c)) + 5|0);
+ $118 = (_load_3_17($add$ptr91)|0);
+ $119 = (getTempRet0() | 0);
+ $120 = (_bitshift64Lshr(($118|0),($119|0),2)|0);
+ $121 = (getTempRet0() | 0);
+ $122 = $120 & 2097151;
+ $add$ptr95 = ((($c)) + 7|0);
+ $123 = (_load_4_18($add$ptr95)|0);
+ $124 = (getTempRet0() | 0);
+ $125 = (_bitshift64Lshr(($123|0),($124|0),7)|0);
+ $126 = (getTempRet0() | 0);
+ $127 = $125 & 2097151;
+ $add$ptr99 = ((($c)) + 10|0);
+ $128 = (_load_4_18($add$ptr99)|0);
+ $129 = (getTempRet0() | 0);
+ $130 = (_bitshift64Lshr(($128|0),($129|0),4)|0);
+ $131 = (getTempRet0() | 0);
+ $132 = $130 & 2097151;
+ $add$ptr103 = ((($c)) + 13|0);
+ $133 = (_load_3_17($add$ptr103)|0);
+ $134 = (getTempRet0() | 0);
+ $135 = (_bitshift64Lshr(($133|0),($134|0),1)|0);
+ $136 = (getTempRet0() | 0);
+ $137 = $135 & 2097151;
+ $add$ptr107 = ((($c)) + 15|0);
+ $138 = (_load_4_18($add$ptr107)|0);
+ $139 = (getTempRet0() | 0);
+ $140 = (_bitshift64Lshr(($138|0),($139|0),6)|0);
+ $141 = (getTempRet0() | 0);
+ $142 = $140 & 2097151;
+ $add$ptr111 = ((($c)) + 18|0);
+ $143 = (_load_3_17($add$ptr111)|0);
+ $144 = (getTempRet0() | 0);
+ $145 = (_bitshift64Lshr(($143|0),($144|0),3)|0);
+ $146 = (getTempRet0() | 0);
+ $147 = $145 & 2097151;
+ $add$ptr115 = ((($c)) + 21|0);
+ $148 = (_load_3_17($add$ptr115)|0);
+ $149 = (getTempRet0() | 0);
+ $150 = $148 & 2097151;
+ $add$ptr118 = ((($c)) + 23|0);
+ $151 = (_load_4_18($add$ptr118)|0);
+ $152 = (getTempRet0() | 0);
+ $153 = (_bitshift64Lshr(($151|0),($152|0),5)|0);
+ $154 = (getTempRet0() | 0);
+ $155 = $153 & 2097151;
+ $add$ptr122 = ((($c)) + 26|0);
+ $156 = (_load_3_17($add$ptr122)|0);
+ $157 = (getTempRet0() | 0);
+ $158 = (_bitshift64Lshr(($156|0),($157|0),2)|0);
+ $159 = (getTempRet0() | 0);
+ $160 = $158 & 2097151;
+ $add$ptr126 = ((($c)) + 28|0);
+ $161 = (_load_4_18($add$ptr126)|0);
+ $162 = (getTempRet0() | 0);
+ $163 = (_bitshift64Lshr(($161|0),($162|0),7)|0);
+ $164 = (getTempRet0() | 0);
+ $165 = (___muldi3(($57|0),0,($2|0),0)|0);
+ $166 = (getTempRet0() | 0);
+ $167 = (_i64Add(($112|0),0,($165|0),($166|0))|0);
+ $168 = (getTempRet0() | 0);
+ $169 = (___muldi3(($62|0),0,($2|0),0)|0);
+ $170 = (getTempRet0() | 0);
+ $171 = (___muldi3(($57|0),0,($7|0),0)|0);
+ $172 = (getTempRet0() | 0);
+ $173 = (___muldi3(($67|0),0,($2|0),0)|0);
+ $174 = (getTempRet0() | 0);
+ $175 = (___muldi3(($62|0),0,($7|0),0)|0);
+ $176 = (getTempRet0() | 0);
+ $177 = (___muldi3(($57|0),0,($12|0),0)|0);
+ $178 = (getTempRet0() | 0);
+ $179 = (_i64Add(($175|0),($176|0),($177|0),($178|0))|0);
+ $180 = (getTempRet0() | 0);
+ $181 = (_i64Add(($179|0),($180|0),($173|0),($174|0))|0);
+ $182 = (getTempRet0() | 0);
+ $183 = (_i64Add(($181|0),($182|0),($122|0),0)|0);
+ $184 = (getTempRet0() | 0);
+ $185 = (___muldi3(($72|0),0,($2|0),0)|0);
+ $186 = (getTempRet0() | 0);
+ $187 = (___muldi3(($67|0),0,($7|0),0)|0);
+ $188 = (getTempRet0() | 0);
+ $189 = (___muldi3(($62|0),0,($12|0),0)|0);
+ $190 = (getTempRet0() | 0);
+ $191 = (___muldi3(($57|0),0,($17|0),0)|0);
+ $192 = (getTempRet0() | 0);
+ $193 = (___muldi3(($77|0),0,($2|0),0)|0);
+ $194 = (getTempRet0() | 0);
+ $195 = (___muldi3(($72|0),0,($7|0),0)|0);
+ $196 = (getTempRet0() | 0);
+ $197 = (___muldi3(($67|0),0,($12|0),0)|0);
+ $198 = (getTempRet0() | 0);
+ $199 = (___muldi3(($62|0),0,($17|0),0)|0);
+ $200 = (getTempRet0() | 0);
+ $201 = (___muldi3(($57|0),0,($22|0),0)|0);
+ $202 = (getTempRet0() | 0);
+ $203 = (_i64Add(($199|0),($200|0),($201|0),($202|0))|0);
+ $204 = (getTempRet0() | 0);
+ $205 = (_i64Add(($203|0),($204|0),($197|0),($198|0))|0);
+ $206 = (getTempRet0() | 0);
+ $207 = (_i64Add(($205|0),($206|0),($195|0),($196|0))|0);
+ $208 = (getTempRet0() | 0);
+ $209 = (_i64Add(($207|0),($208|0),($193|0),($194|0))|0);
+ $210 = (getTempRet0() | 0);
+ $211 = (_i64Add(($209|0),($210|0),($132|0),0)|0);
+ $212 = (getTempRet0() | 0);
+ $213 = (___muldi3(($82|0),0,($2|0),0)|0);
+ $214 = (getTempRet0() | 0);
+ $215 = (___muldi3(($77|0),0,($7|0),0)|0);
+ $216 = (getTempRet0() | 0);
+ $217 = (___muldi3(($72|0),0,($12|0),0)|0);
+ $218 = (getTempRet0() | 0);
+ $219 = (___muldi3(($67|0),0,($17|0),0)|0);
+ $220 = (getTempRet0() | 0);
+ $221 = (___muldi3(($62|0),0,($22|0),0)|0);
+ $222 = (getTempRet0() | 0);
+ $223 = (___muldi3(($57|0),0,($27|0),0)|0);
+ $224 = (getTempRet0() | 0);
+ $225 = (___muldi3(($87|0),0,($2|0),0)|0);
+ $226 = (getTempRet0() | 0);
+ $227 = (___muldi3(($82|0),0,($7|0),0)|0);
+ $228 = (getTempRet0() | 0);
+ $229 = (___muldi3(($77|0),0,($12|0),0)|0);
+ $230 = (getTempRet0() | 0);
+ $231 = (___muldi3(($72|0),0,($17|0),0)|0);
+ $232 = (getTempRet0() | 0);
+ $233 = (___muldi3(($67|0),0,($22|0),0)|0);
+ $234 = (getTempRet0() | 0);
+ $235 = (___muldi3(($62|0),0,($27|0),0)|0);
+ $236 = (getTempRet0() | 0);
+ $237 = (___muldi3(($57|0),0,($32|0),0)|0);
+ $238 = (getTempRet0() | 0);
+ $239 = (_i64Add(($235|0),($236|0),($237|0),($238|0))|0);
+ $240 = (getTempRet0() | 0);
+ $241 = (_i64Add(($239|0),($240|0),($233|0),($234|0))|0);
+ $242 = (getTempRet0() | 0);
+ $243 = (_i64Add(($241|0),($242|0),($231|0),($232|0))|0);
+ $244 = (getTempRet0() | 0);
+ $245 = (_i64Add(($243|0),($244|0),($229|0),($230|0))|0);
+ $246 = (getTempRet0() | 0);
+ $247 = (_i64Add(($245|0),($246|0),($227|0),($228|0))|0);
+ $248 = (getTempRet0() | 0);
+ $249 = (_i64Add(($247|0),($248|0),($225|0),($226|0))|0);
+ $250 = (getTempRet0() | 0);
+ $251 = (_i64Add(($249|0),($250|0),($142|0),0)|0);
+ $252 = (getTempRet0() | 0);
+ $253 = (___muldi3(($92|0),0,($2|0),0)|0);
+ $254 = (getTempRet0() | 0);
+ $255 = (___muldi3(($87|0),0,($7|0),0)|0);
+ $256 = (getTempRet0() | 0);
+ $257 = (___muldi3(($82|0),0,($12|0),0)|0);
+ $258 = (getTempRet0() | 0);
+ $259 = (___muldi3(($77|0),0,($17|0),0)|0);
+ $260 = (getTempRet0() | 0);
+ $261 = (___muldi3(($72|0),0,($22|0),0)|0);
+ $262 = (getTempRet0() | 0);
+ $263 = (___muldi3(($67|0),0,($27|0),0)|0);
+ $264 = (getTempRet0() | 0);
+ $265 = (___muldi3(($62|0),0,($32|0),0)|0);
+ $266 = (getTempRet0() | 0);
+ $267 = (___muldi3(($57|0),0,($37|0),0)|0);
+ $268 = (getTempRet0() | 0);
+ $269 = (___muldi3(($95|0),0,($2|0),0)|0);
+ $270 = (getTempRet0() | 0);
+ $271 = (___muldi3(($92|0),0,($7|0),0)|0);
+ $272 = (getTempRet0() | 0);
+ $273 = (___muldi3(($87|0),0,($12|0),0)|0);
+ $274 = (getTempRet0() | 0);
+ $275 = (___muldi3(($82|0),0,($17|0),0)|0);
+ $276 = (getTempRet0() | 0);
+ $277 = (___muldi3(($77|0),0,($22|0),0)|0);
+ $278 = (getTempRet0() | 0);
+ $279 = (___muldi3(($72|0),0,($27|0),0)|0);
+ $280 = (getTempRet0() | 0);
+ $281 = (___muldi3(($67|0),0,($32|0),0)|0);
+ $282 = (getTempRet0() | 0);
+ $283 = (___muldi3(($62|0),0,($37|0),0)|0);
+ $284 = (getTempRet0() | 0);
+ $285 = (___muldi3(($57|0),0,($40|0),0)|0);
+ $286 = (getTempRet0() | 0);
+ $287 = (_i64Add(($283|0),($284|0),($285|0),($286|0))|0);
+ $288 = (getTempRet0() | 0);
+ $289 = (_i64Add(($287|0),($288|0),($281|0),($282|0))|0);
+ $290 = (getTempRet0() | 0);
+ $291 = (_i64Add(($289|0),($290|0),($279|0),($280|0))|0);
+ $292 = (getTempRet0() | 0);
+ $293 = (_i64Add(($291|0),($292|0),($277|0),($278|0))|0);
+ $294 = (getTempRet0() | 0);
+ $295 = (_i64Add(($293|0),($294|0),($275|0),($276|0))|0);
+ $296 = (getTempRet0() | 0);
+ $297 = (_i64Add(($295|0),($296|0),($273|0),($274|0))|0);
+ $298 = (getTempRet0() | 0);
+ $299 = (_i64Add(($297|0),($298|0),($269|0),($270|0))|0);
+ $300 = (getTempRet0() | 0);
+ $301 = (_i64Add(($299|0),($300|0),($271|0),($272|0))|0);
+ $302 = (getTempRet0() | 0);
+ $303 = (_i64Add(($301|0),($302|0),($150|0),0)|0);
+ $304 = (getTempRet0() | 0);
+ $305 = (___muldi3(($100|0),0,($2|0),0)|0);
+ $306 = (getTempRet0() | 0);
+ $307 = (___muldi3(($95|0),0,($7|0),0)|0);
+ $308 = (getTempRet0() | 0);
+ $309 = (___muldi3(($92|0),0,($12|0),0)|0);
+ $310 = (getTempRet0() | 0);
+ $311 = (___muldi3(($87|0),0,($17|0),0)|0);
+ $312 = (getTempRet0() | 0);
+ $313 = (___muldi3(($82|0),0,($22|0),0)|0);
+ $314 = (getTempRet0() | 0);
+ $315 = (___muldi3(($77|0),0,($27|0),0)|0);
+ $316 = (getTempRet0() | 0);
+ $317 = (___muldi3(($72|0),0,($32|0),0)|0);
+ $318 = (getTempRet0() | 0);
+ $319 = (___muldi3(($67|0),0,($37|0),0)|0);
+ $320 = (getTempRet0() | 0);
+ $321 = (___muldi3(($62|0),0,($40|0),0)|0);
+ $322 = (getTempRet0() | 0);
+ $323 = (___muldi3(($57|0),0,($45|0),0)|0);
+ $324 = (getTempRet0() | 0);
+ $325 = (___muldi3(($105|0),0,($2|0),0)|0);
+ $326 = (getTempRet0() | 0);
+ $327 = (___muldi3(($100|0),0,($7|0),0)|0);
+ $328 = (getTempRet0() | 0);
+ $329 = (___muldi3(($95|0),0,($12|0),0)|0);
+ $330 = (getTempRet0() | 0);
+ $331 = (___muldi3(($92|0),0,($17|0),0)|0);
+ $332 = (getTempRet0() | 0);
+ $333 = (___muldi3(($87|0),0,($22|0),0)|0);
+ $334 = (getTempRet0() | 0);
+ $335 = (___muldi3(($82|0),0,($27|0),0)|0);
+ $336 = (getTempRet0() | 0);
+ $337 = (___muldi3(($77|0),0,($32|0),0)|0);
+ $338 = (getTempRet0() | 0);
+ $339 = (___muldi3(($72|0),0,($37|0),0)|0);
+ $340 = (getTempRet0() | 0);
+ $341 = (___muldi3(($67|0),0,($40|0),0)|0);
+ $342 = (getTempRet0() | 0);
+ $343 = (___muldi3(($62|0),0,($45|0),0)|0);
+ $344 = (getTempRet0() | 0);
+ $345 = (___muldi3(($57|0),0,($50|0),0)|0);
+ $346 = (getTempRet0() | 0);
+ $347 = (_i64Add(($343|0),($344|0),($345|0),($346|0))|0);
+ $348 = (getTempRet0() | 0);
+ $349 = (_i64Add(($347|0),($348|0),($341|0),($342|0))|0);
+ $350 = (getTempRet0() | 0);
+ $351 = (_i64Add(($349|0),($350|0),($339|0),($340|0))|0);
+ $352 = (getTempRet0() | 0);
+ $353 = (_i64Add(($351|0),($352|0),($337|0),($338|0))|0);
+ $354 = (getTempRet0() | 0);
+ $355 = (_i64Add(($353|0),($354|0),($335|0),($336|0))|0);
+ $356 = (getTempRet0() | 0);
+ $357 = (_i64Add(($355|0),($356|0),($333|0),($334|0))|0);
+ $358 = (getTempRet0() | 0);
+ $359 = (_i64Add(($357|0),($358|0),($329|0),($330|0))|0);
+ $360 = (getTempRet0() | 0);
+ $361 = (_i64Add(($359|0),($360|0),($331|0),($332|0))|0);
+ $362 = (getTempRet0() | 0);
+ $363 = (_i64Add(($361|0),($362|0),($327|0),($328|0))|0);
+ $364 = (getTempRet0() | 0);
+ $365 = (_i64Add(($363|0),($364|0),($325|0),($326|0))|0);
+ $366 = (getTempRet0() | 0);
+ $367 = (_i64Add(($365|0),($366|0),($160|0),0)|0);
+ $368 = (getTempRet0() | 0);
+ $369 = (___muldi3(($108|0),($109|0),($2|0),0)|0);
+ $370 = (getTempRet0() | 0);
+ $371 = (___muldi3(($105|0),0,($7|0),0)|0);
+ $372 = (getTempRet0() | 0);
+ $373 = (___muldi3(($100|0),0,($12|0),0)|0);
+ $374 = (getTempRet0() | 0);
+ $375 = (___muldi3(($95|0),0,($17|0),0)|0);
+ $376 = (getTempRet0() | 0);
+ $377 = (___muldi3(($92|0),0,($22|0),0)|0);
+ $378 = (getTempRet0() | 0);
+ $379 = (___muldi3(($87|0),0,($27|0),0)|0);
+ $380 = (getTempRet0() | 0);
+ $381 = (___muldi3(($82|0),0,($32|0),0)|0);
+ $382 = (getTempRet0() | 0);
+ $383 = (___muldi3(($77|0),0,($37|0),0)|0);
+ $384 = (getTempRet0() | 0);
+ $385 = (___muldi3(($72|0),0,($40|0),0)|0);
+ $386 = (getTempRet0() | 0);
+ $387 = (___muldi3(($67|0),0,($45|0),0)|0);
+ $388 = (getTempRet0() | 0);
+ $389 = (___muldi3(($62|0),0,($50|0),0)|0);
+ $390 = (getTempRet0() | 0);
+ $391 = (___muldi3(($57|0),0,($53|0),($54|0))|0);
+ $392 = (getTempRet0() | 0);
+ $393 = (___muldi3(($108|0),($109|0),($7|0),0)|0);
+ $394 = (getTempRet0() | 0);
+ $395 = (___muldi3(($105|0),0,($12|0),0)|0);
+ $396 = (getTempRet0() | 0);
+ $397 = (___muldi3(($100|0),0,($17|0),0)|0);
+ $398 = (getTempRet0() | 0);
+ $399 = (___muldi3(($95|0),0,($22|0),0)|0);
+ $400 = (getTempRet0() | 0);
+ $401 = (___muldi3(($92|0),0,($27|0),0)|0);
+ $402 = (getTempRet0() | 0);
+ $403 = (___muldi3(($87|0),0,($32|0),0)|0);
+ $404 = (getTempRet0() | 0);
+ $405 = (___muldi3(($82|0),0,($37|0),0)|0);
+ $406 = (getTempRet0() | 0);
+ $407 = (___muldi3(($77|0),0,($40|0),0)|0);
+ $408 = (getTempRet0() | 0);
+ $409 = (___muldi3(($72|0),0,($45|0),0)|0);
+ $410 = (getTempRet0() | 0);
+ $411 = (___muldi3(($67|0),0,($50|0),0)|0);
+ $412 = (getTempRet0() | 0);
+ $413 = (___muldi3(($62|0),0,($53|0),($54|0))|0);
+ $414 = (getTempRet0() | 0);
+ $415 = (_i64Add(($411|0),($412|0),($413|0),($414|0))|0);
+ $416 = (getTempRet0() | 0);
+ $417 = (_i64Add(($415|0),($416|0),($409|0),($410|0))|0);
+ $418 = (getTempRet0() | 0);
+ $419 = (_i64Add(($417|0),($418|0),($407|0),($408|0))|0);
+ $420 = (getTempRet0() | 0);
+ $421 = (_i64Add(($419|0),($420|0),($405|0),($406|0))|0);
+ $422 = (getTempRet0() | 0);
+ $423 = (_i64Add(($421|0),($422|0),($403|0),($404|0))|0);
+ $424 = (getTempRet0() | 0);
+ $425 = (_i64Add(($423|0),($424|0),($399|0),($400|0))|0);
+ $426 = (getTempRet0() | 0);
+ $427 = (_i64Add(($425|0),($426|0),($401|0),($402|0))|0);
+ $428 = (getTempRet0() | 0);
+ $429 = (_i64Add(($427|0),($428|0),($397|0),($398|0))|0);
+ $430 = (getTempRet0() | 0);
+ $431 = (_i64Add(($429|0),($430|0),($395|0),($396|0))|0);
+ $432 = (getTempRet0() | 0);
+ $433 = (_i64Add(($431|0),($432|0),($393|0),($394|0))|0);
+ $434 = (getTempRet0() | 0);
+ $435 = (___muldi3(($108|0),($109|0),($12|0),0)|0);
+ $436 = (getTempRet0() | 0);
+ $437 = (___muldi3(($105|0),0,($17|0),0)|0);
+ $438 = (getTempRet0() | 0);
+ $439 = (___muldi3(($100|0),0,($22|0),0)|0);
+ $440 = (getTempRet0() | 0);
+ $441 = (___muldi3(($95|0),0,($27|0),0)|0);
+ $442 = (getTempRet0() | 0);
+ $443 = (___muldi3(($92|0),0,($32|0),0)|0);
+ $444 = (getTempRet0() | 0);
+ $445 = (___muldi3(($87|0),0,($37|0),0)|0);
+ $446 = (getTempRet0() | 0);
+ $447 = (___muldi3(($82|0),0,($40|0),0)|0);
+ $448 = (getTempRet0() | 0);
+ $449 = (___muldi3(($77|0),0,($45|0),0)|0);
+ $450 = (getTempRet0() | 0);
+ $451 = (___muldi3(($72|0),0,($50|0),0)|0);
+ $452 = (getTempRet0() | 0);
+ $453 = (___muldi3(($67|0),0,($53|0),($54|0))|0);
+ $454 = (getTempRet0() | 0);
+ $455 = (___muldi3(($108|0),($109|0),($17|0),0)|0);
+ $456 = (getTempRet0() | 0);
+ $457 = (___muldi3(($105|0),0,($22|0),0)|0);
+ $458 = (getTempRet0() | 0);
+ $459 = (___muldi3(($100|0),0,($27|0),0)|0);
+ $460 = (getTempRet0() | 0);
+ $461 = (___muldi3(($95|0),0,($32|0),0)|0);
+ $462 = (getTempRet0() | 0);
+ $463 = (___muldi3(($92|0),0,($37|0),0)|0);
+ $464 = (getTempRet0() | 0);
+ $465 = (___muldi3(($87|0),0,($40|0),0)|0);
+ $466 = (getTempRet0() | 0);
+ $467 = (___muldi3(($82|0),0,($45|0),0)|0);
+ $468 = (getTempRet0() | 0);
+ $469 = (___muldi3(($77|0),0,($50|0),0)|0);
+ $470 = (getTempRet0() | 0);
+ $471 = (___muldi3(($72|0),0,($53|0),($54|0))|0);
+ $472 = (getTempRet0() | 0);
+ $473 = (_i64Add(($469|0),($470|0),($471|0),($472|0))|0);
+ $474 = (getTempRet0() | 0);
+ $475 = (_i64Add(($473|0),($474|0),($467|0),($468|0))|0);
+ $476 = (getTempRet0() | 0);
+ $477 = (_i64Add(($475|0),($476|0),($465|0),($466|0))|0);
+ $478 = (getTempRet0() | 0);
+ $479 = (_i64Add(($477|0),($478|0),($461|0),($462|0))|0);
+ $480 = (getTempRet0() | 0);
+ $481 = (_i64Add(($479|0),($480|0),($463|0),($464|0))|0);
+ $482 = (getTempRet0() | 0);
+ $483 = (_i64Add(($481|0),($482|0),($459|0),($460|0))|0);
+ $484 = (getTempRet0() | 0);
+ $485 = (_i64Add(($483|0),($484|0),($457|0),($458|0))|0);
+ $486 = (getTempRet0() | 0);
+ $487 = (_i64Add(($485|0),($486|0),($455|0),($456|0))|0);
+ $488 = (getTempRet0() | 0);
+ $489 = (___muldi3(($108|0),($109|0),($22|0),0)|0);
+ $490 = (getTempRet0() | 0);
+ $491 = (___muldi3(($105|0),0,($27|0),0)|0);
+ $492 = (getTempRet0() | 0);
+ $493 = (___muldi3(($100|0),0,($32|0),0)|0);
+ $494 = (getTempRet0() | 0);
+ $495 = (___muldi3(($95|0),0,($37|0),0)|0);
+ $496 = (getTempRet0() | 0);
+ $497 = (___muldi3(($92|0),0,($40|0),0)|0);
+ $498 = (getTempRet0() | 0);
+ $499 = (___muldi3(($87|0),0,($45|0),0)|0);
+ $500 = (getTempRet0() | 0);
+ $501 = (___muldi3(($82|0),0,($50|0),0)|0);
+ $502 = (getTempRet0() | 0);
+ $503 = (___muldi3(($77|0),0,($53|0),($54|0))|0);
+ $504 = (getTempRet0() | 0);
+ $505 = (___muldi3(($108|0),($109|0),($27|0),0)|0);
+ $506 = (getTempRet0() | 0);
+ $507 = (___muldi3(($105|0),0,($32|0),0)|0);
+ $508 = (getTempRet0() | 0);
+ $509 = (___muldi3(($100|0),0,($37|0),0)|0);
+ $510 = (getTempRet0() | 0);
+ $511 = (___muldi3(($95|0),0,($40|0),0)|0);
+ $512 = (getTempRet0() | 0);
+ $513 = (___muldi3(($92|0),0,($45|0),0)|0);
+ $514 = (getTempRet0() | 0);
+ $515 = (___muldi3(($87|0),0,($50|0),0)|0);
+ $516 = (getTempRet0() | 0);
+ $517 = (___muldi3(($82|0),0,($53|0),($54|0))|0);
+ $518 = (getTempRet0() | 0);
+ $519 = (_i64Add(($515|0),($516|0),($517|0),($518|0))|0);
+ $520 = (getTempRet0() | 0);
+ $521 = (_i64Add(($519|0),($520|0),($511|0),($512|0))|0);
+ $522 = (getTempRet0() | 0);
+ $523 = (_i64Add(($521|0),($522|0),($513|0),($514|0))|0);
+ $524 = (getTempRet0() | 0);
+ $525 = (_i64Add(($523|0),($524|0),($509|0),($510|0))|0);
+ $526 = (getTempRet0() | 0);
+ $527 = (_i64Add(($525|0),($526|0),($507|0),($508|0))|0);
+ $528 = (getTempRet0() | 0);
+ $529 = (_i64Add(($527|0),($528|0),($505|0),($506|0))|0);
+ $530 = (getTempRet0() | 0);
+ $531 = (___muldi3(($108|0),($109|0),($32|0),0)|0);
+ $532 = (getTempRet0() | 0);
+ $533 = (___muldi3(($105|0),0,($37|0),0)|0);
+ $534 = (getTempRet0() | 0);
+ $535 = (___muldi3(($100|0),0,($40|0),0)|0);
+ $536 = (getTempRet0() | 0);
+ $537 = (___muldi3(($95|0),0,($45|0),0)|0);
+ $538 = (getTempRet0() | 0);
+ $539 = (___muldi3(($92|0),0,($50|0),0)|0);
+ $540 = (getTempRet0() | 0);
+ $541 = (___muldi3(($87|0),0,($53|0),($54|0))|0);
+ $542 = (getTempRet0() | 0);
+ $543 = (___muldi3(($108|0),($109|0),($37|0),0)|0);
+ $544 = (getTempRet0() | 0);
+ $545 = (___muldi3(($105|0),0,($40|0),0)|0);
+ $546 = (getTempRet0() | 0);
+ $547 = (___muldi3(($100|0),0,($45|0),0)|0);
+ $548 = (getTempRet0() | 0);
+ $549 = (___muldi3(($95|0),0,($50|0),0)|0);
+ $550 = (getTempRet0() | 0);
+ $551 = (___muldi3(($92|0),0,($53|0),($54|0))|0);
+ $552 = (getTempRet0() | 0);
+ $553 = (_i64Add(($551|0),($552|0),($549|0),($550|0))|0);
+ $554 = (getTempRet0() | 0);
+ $555 = (_i64Add(($553|0),($554|0),($547|0),($548|0))|0);
+ $556 = (getTempRet0() | 0);
+ $557 = (_i64Add(($555|0),($556|0),($545|0),($546|0))|0);
+ $558 = (getTempRet0() | 0);
+ $559 = (_i64Add(($557|0),($558|0),($543|0),($544|0))|0);
+ $560 = (getTempRet0() | 0);
+ $561 = (___muldi3(($108|0),($109|0),($40|0),0)|0);
+ $562 = (getTempRet0() | 0);
+ $563 = (___muldi3(($105|0),0,($45|0),0)|0);
+ $564 = (getTempRet0() | 0);
+ $565 = (___muldi3(($100|0),0,($50|0),0)|0);
+ $566 = (getTempRet0() | 0);
+ $567 = (___muldi3(($95|0),0,($53|0),($54|0))|0);
+ $568 = (getTempRet0() | 0);
+ $569 = (___muldi3(($108|0),($109|0),($45|0),0)|0);
+ $570 = (getTempRet0() | 0);
+ $571 = (___muldi3(($105|0),0,($50|0),0)|0);
+ $572 = (getTempRet0() | 0);
+ $573 = (___muldi3(($100|0),0,($53|0),($54|0))|0);
+ $574 = (getTempRet0() | 0);
+ $575 = (_i64Add(($571|0),($572|0),($573|0),($574|0))|0);
+ $576 = (getTempRet0() | 0);
+ $577 = (_i64Add(($575|0),($576|0),($569|0),($570|0))|0);
+ $578 = (getTempRet0() | 0);
+ $579 = (___muldi3(($108|0),($109|0),($50|0),0)|0);
+ $580 = (getTempRet0() | 0);
+ $581 = (___muldi3(($105|0),0,($53|0),($54|0))|0);
+ $582 = (getTempRet0() | 0);
+ $583 = (_i64Add(($579|0),($580|0),($581|0),($582|0))|0);
+ $584 = (getTempRet0() | 0);
+ $585 = (___muldi3(($108|0),($109|0),($53|0),($54|0))|0);
+ $586 = (getTempRet0() | 0);
+ $587 = (_i64Add(($167|0),($168|0),1048576,0)|0);
+ $588 = (getTempRet0() | 0);
+ $589 = (_bitshift64Lshr(($587|0),($588|0),21)|0);
+ $590 = (getTempRet0() | 0);
+ $591 = (_i64Add(($169|0),($170|0),($171|0),($172|0))|0);
+ $592 = (getTempRet0() | 0);
+ $593 = (_i64Add(($591|0),($592|0),($117|0),0)|0);
+ $594 = (getTempRet0() | 0);
+ $595 = (_i64Add(($593|0),($594|0),($589|0),($590|0))|0);
+ $596 = (getTempRet0() | 0);
+ $597 = $587 & -2097152;
+ $598 = $588 & 4095;
+ $599 = (_i64Subtract(($167|0),($168|0),($597|0),($598|0))|0);
+ $600 = (getTempRet0() | 0);
+ $601 = (_i64Add(($183|0),($184|0),1048576,0)|0);
+ $602 = (getTempRet0() | 0);
+ $603 = (_bitshift64Lshr(($601|0),($602|0),21)|0);
+ $604 = (getTempRet0() | 0);
+ $605 = (_i64Add(($189|0),($190|0),($191|0),($192|0))|0);
+ $606 = (getTempRet0() | 0);
+ $607 = (_i64Add(($605|0),($606|0),($187|0),($188|0))|0);
+ $608 = (getTempRet0() | 0);
+ $609 = (_i64Add(($607|0),($608|0),($185|0),($186|0))|0);
+ $610 = (getTempRet0() | 0);
+ $611 = (_i64Add(($609|0),($610|0),($127|0),0)|0);
+ $612 = (getTempRet0() | 0);
+ $613 = (_i64Add(($611|0),($612|0),($603|0),($604|0))|0);
+ $614 = (getTempRet0() | 0);
+ $615 = $601 & -2097152;
+ $616 = (_i64Add(($211|0),($212|0),1048576,0)|0);
+ $617 = (getTempRet0() | 0);
+ $618 = (_bitshift64Ashr(($616|0),($617|0),21)|0);
+ $619 = (getTempRet0() | 0);
+ $620 = (_i64Add(($221|0),($222|0),($223|0),($224|0))|0);
+ $621 = (getTempRet0() | 0);
+ $622 = (_i64Add(($620|0),($621|0),($219|0),($220|0))|0);
+ $623 = (getTempRet0() | 0);
+ $624 = (_i64Add(($622|0),($623|0),($217|0),($218|0))|0);
+ $625 = (getTempRet0() | 0);
+ $626 = (_i64Add(($624|0),($625|0),($215|0),($216|0))|0);
+ $627 = (getTempRet0() | 0);
+ $628 = (_i64Add(($626|0),($627|0),($213|0),($214|0))|0);
+ $629 = (getTempRet0() | 0);
+ $630 = (_i64Add(($628|0),($629|0),($137|0),0)|0);
+ $631 = (getTempRet0() | 0);
+ $632 = (_i64Add(($630|0),($631|0),($618|0),($619|0))|0);
+ $633 = (getTempRet0() | 0);
+ $634 = $616 & -2097152;
+ $635 = (_i64Add(($251|0),($252|0),1048576,0)|0);
+ $636 = (getTempRet0() | 0);
+ $637 = (_bitshift64Ashr(($635|0),($636|0),21)|0);
+ $638 = (getTempRet0() | 0);
+ $639 = (_i64Add(($265|0),($266|0),($267|0),($268|0))|0);
+ $640 = (getTempRet0() | 0);
+ $641 = (_i64Add(($639|0),($640|0),($263|0),($264|0))|0);
+ $642 = (getTempRet0() | 0);
+ $643 = (_i64Add(($641|0),($642|0),($261|0),($262|0))|0);
+ $644 = (getTempRet0() | 0);
+ $645 = (_i64Add(($643|0),($644|0),($259|0),($260|0))|0);
+ $646 = (getTempRet0() | 0);
+ $647 = (_i64Add(($645|0),($646|0),($257|0),($258|0))|0);
+ $648 = (getTempRet0() | 0);
+ $649 = (_i64Add(($647|0),($648|0),($255|0),($256|0))|0);
+ $650 = (getTempRet0() | 0);
+ $651 = (_i64Add(($649|0),($650|0),($253|0),($254|0))|0);
+ $652 = (getTempRet0() | 0);
+ $653 = (_i64Add(($651|0),($652|0),($147|0),0)|0);
+ $654 = (getTempRet0() | 0);
+ $655 = (_i64Add(($653|0),($654|0),($637|0),($638|0))|0);
+ $656 = (getTempRet0() | 0);
+ $657 = $635 & -2097152;
+ $658 = (_i64Add(($303|0),($304|0),1048576,0)|0);
+ $659 = (getTempRet0() | 0);
+ $660 = (_bitshift64Ashr(($658|0),($659|0),21)|0);
+ $661 = (getTempRet0() | 0);
+ $662 = (_i64Add(($321|0),($322|0),($323|0),($324|0))|0);
+ $663 = (getTempRet0() | 0);
+ $664 = (_i64Add(($662|0),($663|0),($319|0),($320|0))|0);
+ $665 = (getTempRet0() | 0);
+ $666 = (_i64Add(($664|0),($665|0),($317|0),($318|0))|0);
+ $667 = (getTempRet0() | 0);
+ $668 = (_i64Add(($666|0),($667|0),($315|0),($316|0))|0);
+ $669 = (getTempRet0() | 0);
+ $670 = (_i64Add(($668|0),($669|0),($313|0),($314|0))|0);
+ $671 = (getTempRet0() | 0);
+ $672 = (_i64Add(($670|0),($671|0),($311|0),($312|0))|0);
+ $673 = (getTempRet0() | 0);
+ $674 = (_i64Add(($672|0),($673|0),($307|0),($308|0))|0);
+ $675 = (getTempRet0() | 0);
+ $676 = (_i64Add(($674|0),($675|0),($309|0),($310|0))|0);
+ $677 = (getTempRet0() | 0);
+ $678 = (_i64Add(($676|0),($677|0),($305|0),($306|0))|0);
+ $679 = (getTempRet0() | 0);
+ $680 = (_i64Add(($678|0),($679|0),($155|0),0)|0);
+ $681 = (getTempRet0() | 0);
+ $682 = (_i64Add(($680|0),($681|0),($660|0),($661|0))|0);
+ $683 = (getTempRet0() | 0);
+ $684 = $658 & -2097152;
+ $685 = (_i64Add(($367|0),($368|0),1048576,0)|0);
+ $686 = (getTempRet0() | 0);
+ $687 = (_bitshift64Ashr(($685|0),($686|0),21)|0);
+ $688 = (getTempRet0() | 0);
+ $689 = (_i64Add(($389|0),($390|0),($391|0),($392|0))|0);
+ $690 = (getTempRet0() | 0);
+ $691 = (_i64Add(($689|0),($690|0),($387|0),($388|0))|0);
+ $692 = (getTempRet0() | 0);
+ $693 = (_i64Add(($691|0),($692|0),($385|0),($386|0))|0);
+ $694 = (getTempRet0() | 0);
+ $695 = (_i64Add(($693|0),($694|0),($383|0),($384|0))|0);
+ $696 = (getTempRet0() | 0);
+ $697 = (_i64Add(($695|0),($696|0),($381|0),($382|0))|0);
+ $698 = (getTempRet0() | 0);
+ $699 = (_i64Add(($697|0),($698|0),($379|0),($380|0))|0);
+ $700 = (getTempRet0() | 0);
+ $701 = (_i64Add(($699|0),($700|0),($375|0),($376|0))|0);
+ $702 = (getTempRet0() | 0);
+ $703 = (_i64Add(($701|0),($702|0),($377|0),($378|0))|0);
+ $704 = (getTempRet0() | 0);
+ $705 = (_i64Add(($703|0),($704|0),($373|0),($374|0))|0);
+ $706 = (getTempRet0() | 0);
+ $707 = (_i64Add(($705|0),($706|0),($369|0),($370|0))|0);
+ $708 = (getTempRet0() | 0);
+ $709 = (_i64Add(($707|0),($708|0),($371|0),($372|0))|0);
+ $710 = (getTempRet0() | 0);
+ $711 = (_i64Add(($709|0),($710|0),($163|0),($164|0))|0);
+ $712 = (getTempRet0() | 0);
+ $713 = (_i64Add(($711|0),($712|0),($687|0),($688|0))|0);
+ $714 = (getTempRet0() | 0);
+ $715 = $685 & -2097152;
+ $716 = (_i64Add(($433|0),($434|0),1048576,0)|0);
+ $717 = (getTempRet0() | 0);
+ $718 = (_bitshift64Ashr(($716|0),($717|0),21)|0);
+ $719 = (getTempRet0() | 0);
+ $720 = (_i64Add(($451|0),($452|0),($453|0),($454|0))|0);
+ $721 = (getTempRet0() | 0);
+ $722 = (_i64Add(($720|0),($721|0),($449|0),($450|0))|0);
+ $723 = (getTempRet0() | 0);
+ $724 = (_i64Add(($722|0),($723|0),($447|0),($448|0))|0);
+ $725 = (getTempRet0() | 0);
+ $726 = (_i64Add(($724|0),($725|0),($445|0),($446|0))|0);
+ $727 = (getTempRet0() | 0);
+ $728 = (_i64Add(($726|0),($727|0),($441|0),($442|0))|0);
+ $729 = (getTempRet0() | 0);
+ $730 = (_i64Add(($728|0),($729|0),($443|0),($444|0))|0);
+ $731 = (getTempRet0() | 0);
+ $732 = (_i64Add(($730|0),($731|0),($439|0),($440|0))|0);
+ $733 = (getTempRet0() | 0);
+ $734 = (_i64Add(($732|0),($733|0),($437|0),($438|0))|0);
+ $735 = (getTempRet0() | 0);
+ $736 = (_i64Add(($734|0),($735|0),($435|0),($436|0))|0);
+ $737 = (getTempRet0() | 0);
+ $738 = (_i64Add(($736|0),($737|0),($718|0),($719|0))|0);
+ $739 = (getTempRet0() | 0);
+ $740 = $716 & -2097152;
+ $741 = (_i64Add(($487|0),($488|0),1048576,0)|0);
+ $742 = (getTempRet0() | 0);
+ $743 = (_bitshift64Ashr(($741|0),($742|0),21)|0);
+ $744 = (getTempRet0() | 0);
+ $745 = (_i64Add(($501|0),($502|0),($503|0),($504|0))|0);
+ $746 = (getTempRet0() | 0);
+ $747 = (_i64Add(($745|0),($746|0),($499|0),($500|0))|0);
+ $748 = (getTempRet0() | 0);
+ $749 = (_i64Add(($747|0),($748|0),($495|0),($496|0))|0);
+ $750 = (getTempRet0() | 0);
+ $751 = (_i64Add(($749|0),($750|0),($497|0),($498|0))|0);
+ $752 = (getTempRet0() | 0);
+ $753 = (_i64Add(($751|0),($752|0),($493|0),($494|0))|0);
+ $754 = (getTempRet0() | 0);
+ $755 = (_i64Add(($753|0),($754|0),($491|0),($492|0))|0);
+ $756 = (getTempRet0() | 0);
+ $757 = (_i64Add(($755|0),($756|0),($489|0),($490|0))|0);
+ $758 = (getTempRet0() | 0);
+ $759 = (_i64Add(($757|0),($758|0),($743|0),($744|0))|0);
+ $760 = (getTempRet0() | 0);
+ $761 = $741 & -2097152;
+ $762 = (_i64Add(($529|0),($530|0),1048576,0)|0);
+ $763 = (getTempRet0() | 0);
+ $764 = (_bitshift64Ashr(($762|0),($763|0),21)|0);
+ $765 = (getTempRet0() | 0);
+ $766 = (_i64Add(($537|0),($538|0),($541|0),($542|0))|0);
+ $767 = (getTempRet0() | 0);
+ $768 = (_i64Add(($766|0),($767|0),($539|0),($540|0))|0);
+ $769 = (getTempRet0() | 0);
+ $770 = (_i64Add(($768|0),($769|0),($535|0),($536|0))|0);
+ $771 = (getTempRet0() | 0);
+ $772 = (_i64Add(($770|0),($771|0),($533|0),($534|0))|0);
+ $773 = (getTempRet0() | 0);
+ $774 = (_i64Add(($772|0),($773|0),($531|0),($532|0))|0);
+ $775 = (getTempRet0() | 0);
+ $776 = (_i64Add(($774|0),($775|0),($764|0),($765|0))|0);
+ $777 = (getTempRet0() | 0);
+ $778 = $762 & -2097152;
+ $779 = (_i64Add(($559|0),($560|0),1048576,0)|0);
+ $780 = (getTempRet0() | 0);
+ $781 = (_bitshift64Ashr(($779|0),($780|0),21)|0);
+ $782 = (getTempRet0() | 0);
+ $783 = (_i64Add(($565|0),($566|0),($567|0),($568|0))|0);
+ $784 = (getTempRet0() | 0);
+ $785 = (_i64Add(($783|0),($784|0),($563|0),($564|0))|0);
+ $786 = (getTempRet0() | 0);
+ $787 = (_i64Add(($785|0),($786|0),($561|0),($562|0))|0);
+ $788 = (getTempRet0() | 0);
+ $789 = (_i64Add(($787|0),($788|0),($781|0),($782|0))|0);
+ $790 = (getTempRet0() | 0);
+ $791 = $779 & -2097152;
+ $792 = (_i64Subtract(($559|0),($560|0),($791|0),($780|0))|0);
+ $793 = (getTempRet0() | 0);
+ $794 = (_i64Add(($577|0),($578|0),1048576,0)|0);
+ $795 = (getTempRet0() | 0);
+ $796 = (_bitshift64Lshr(($794|0),($795|0),21)|0);
+ $797 = (getTempRet0() | 0);
+ $798 = (_i64Add(($583|0),($584|0),($796|0),($797|0))|0);
+ $799 = (getTempRet0() | 0);
+ $800 = $794 & -2097152;
+ $801 = $795 & 2147483647;
+ $802 = (_i64Subtract(($577|0),($578|0),($800|0),($801|0))|0);
+ $803 = (getTempRet0() | 0);
+ $804 = (_i64Add(($585|0),($586|0),1048576,0)|0);
+ $805 = (getTempRet0() | 0);
+ $806 = (_bitshift64Lshr(($804|0),($805|0),21)|0);
+ $807 = (getTempRet0() | 0);
+ $808 = $804 & -2097152;
+ $809 = $805 & 2147483647;
+ $810 = (_i64Subtract(($585|0),($586|0),($808|0),($809|0))|0);
+ $811 = (getTempRet0() | 0);
+ $812 = (_i64Add(($595|0),($596|0),1048576,0)|0);
+ $813 = (getTempRet0() | 0);
+ $814 = (_bitshift64Lshr(($812|0),($813|0),21)|0);
+ $815 = (getTempRet0() | 0);
+ $816 = $812 & -2097152;
+ $817 = (_i64Subtract(($595|0),($596|0),($816|0),($813|0))|0);
+ $818 = (getTempRet0() | 0);
+ $819 = (_i64Add(($613|0),($614|0),1048576,0)|0);
+ $820 = (getTempRet0() | 0);
+ $821 = (_bitshift64Ashr(($819|0),($820|0),21)|0);
+ $822 = (getTempRet0() | 0);
+ $823 = $819 & -2097152;
+ $824 = (_i64Subtract(($613|0),($614|0),($823|0),($820|0))|0);
+ $825 = (getTempRet0() | 0);
+ $826 = (_i64Add(($632|0),($633|0),1048576,0)|0);
+ $827 = (getTempRet0() | 0);
+ $828 = (_bitshift64Ashr(($826|0),($827|0),21)|0);
+ $829 = (getTempRet0() | 0);
+ $830 = $826 & -2097152;
+ $831 = (_i64Subtract(($632|0),($633|0),($830|0),($827|0))|0);
+ $832 = (getTempRet0() | 0);
+ $833 = (_i64Add(($655|0),($656|0),1048576,0)|0);
+ $834 = (getTempRet0() | 0);
+ $835 = (_bitshift64Ashr(($833|0),($834|0),21)|0);
+ $836 = (getTempRet0() | 0);
+ $837 = $833 & -2097152;
+ $838 = (_i64Add(($682|0),($683|0),1048576,0)|0);
+ $839 = (getTempRet0() | 0);
+ $840 = (_bitshift64Ashr(($838|0),($839|0),21)|0);
+ $841 = (getTempRet0() | 0);
+ $842 = $838 & -2097152;
+ $843 = (_i64Add(($713|0),($714|0),1048576,0)|0);
+ $844 = (getTempRet0() | 0);
+ $845 = (_bitshift64Ashr(($843|0),($844|0),21)|0);
+ $846 = (getTempRet0() | 0);
+ $847 = $843 & -2097152;
+ $848 = (_i64Add(($738|0),($739|0),1048576,0)|0);
+ $849 = (getTempRet0() | 0);
+ $850 = (_bitshift64Ashr(($848|0),($849|0),21)|0);
+ $851 = (getTempRet0() | 0);
+ $852 = $848 & -2097152;
+ $853 = (_i64Add(($759|0),($760|0),1048576,0)|0);
+ $854 = (getTempRet0() | 0);
+ $855 = (_bitshift64Ashr(($853|0),($854|0),21)|0);
+ $856 = (getTempRet0() | 0);
+ $857 = $853 & -2097152;
+ $858 = (_i64Add(($776|0),($777|0),1048576,0)|0);
+ $859 = (getTempRet0() | 0);
+ $860 = (_bitshift64Ashr(($858|0),($859|0),21)|0);
+ $861 = (getTempRet0() | 0);
+ $862 = (_i64Add(($860|0),($861|0),($792|0),($793|0))|0);
+ $863 = (getTempRet0() | 0);
+ $864 = $858 & -2097152;
+ $865 = (_i64Subtract(($776|0),($777|0),($864|0),($859|0))|0);
+ $866 = (getTempRet0() | 0);
+ $867 = (_i64Add(($789|0),($790|0),1048576,0)|0);
+ $868 = (getTempRet0() | 0);
+ $869 = (_bitshift64Ashr(($867|0),($868|0),21)|0);
+ $870 = (getTempRet0() | 0);
+ $871 = (_i64Add(($869|0),($870|0),($802|0),($803|0))|0);
+ $872 = (getTempRet0() | 0);
+ $873 = $867 & -2097152;
+ $874 = (_i64Subtract(($789|0),($790|0),($873|0),($868|0))|0);
+ $875 = (getTempRet0() | 0);
+ $876 = (_i64Add(($798|0),($799|0),1048576,0)|0);
+ $877 = (getTempRet0() | 0);
+ $878 = (_bitshift64Lshr(($876|0),($877|0),21)|0);
+ $879 = (getTempRet0() | 0);
+ $880 = (_i64Add(($878|0),($879|0),($810|0),($811|0))|0);
+ $881 = (getTempRet0() | 0);
+ $882 = $876 & -2097152;
+ $883 = $877 & 2147483647;
+ $884 = (_i64Subtract(($798|0),($799|0),($882|0),($883|0))|0);
+ $885 = (getTempRet0() | 0);
+ $886 = (___muldi3(($806|0),($807|0),666643,0)|0);
+ $887 = (getTempRet0() | 0);
+ $888 = (___muldi3(($806|0),($807|0),470296,0)|0);
+ $889 = (getTempRet0() | 0);
+ $890 = (___muldi3(($806|0),($807|0),654183,0)|0);
+ $891 = (getTempRet0() | 0);
+ $892 = (___muldi3(($806|0),($807|0),-997805,-1)|0);
+ $893 = (getTempRet0() | 0);
+ $894 = (___muldi3(($806|0),($807|0),136657,0)|0);
+ $895 = (getTempRet0() | 0);
+ $896 = (___muldi3(($806|0),($807|0),-683901,-1)|0);
+ $897 = (getTempRet0() | 0);
+ $898 = (_i64Add(($529|0),($530|0),($896|0),($897|0))|0);
+ $899 = (getTempRet0() | 0);
+ $900 = (_i64Subtract(($898|0),($899|0),($778|0),($763|0))|0);
+ $901 = (getTempRet0() | 0);
+ $902 = (_i64Add(($900|0),($901|0),($855|0),($856|0))|0);
+ $903 = (getTempRet0() | 0);
+ $904 = (___muldi3(($880|0),($881|0),666643,0)|0);
+ $905 = (getTempRet0() | 0);
+ $906 = (___muldi3(($880|0),($881|0),470296,0)|0);
+ $907 = (getTempRet0() | 0);
+ $908 = (___muldi3(($880|0),($881|0),654183,0)|0);
+ $909 = (getTempRet0() | 0);
+ $910 = (___muldi3(($880|0),($881|0),-997805,-1)|0);
+ $911 = (getTempRet0() | 0);
+ $912 = (___muldi3(($880|0),($881|0),136657,0)|0);
+ $913 = (getTempRet0() | 0);
+ $914 = (___muldi3(($880|0),($881|0),-683901,-1)|0);
+ $915 = (getTempRet0() | 0);
+ $916 = (___muldi3(($884|0),($885|0),666643,0)|0);
+ $917 = (getTempRet0() | 0);
+ $918 = (___muldi3(($884|0),($885|0),470296,0)|0);
+ $919 = (getTempRet0() | 0);
+ $920 = (___muldi3(($884|0),($885|0),654183,0)|0);
+ $921 = (getTempRet0() | 0);
+ $922 = (___muldi3(($884|0),($885|0),-997805,-1)|0);
+ $923 = (getTempRet0() | 0);
+ $924 = (___muldi3(($884|0),($885|0),136657,0)|0);
+ $925 = (getTempRet0() | 0);
+ $926 = (___muldi3(($884|0),($885|0),-683901,-1)|0);
+ $927 = (getTempRet0() | 0);
+ $928 = (_i64Add(($487|0),($488|0),($892|0),($893|0))|0);
+ $929 = (getTempRet0() | 0);
+ $930 = (_i64Add(($928|0),($929|0),($912|0),($913|0))|0);
+ $931 = (getTempRet0() | 0);
+ $932 = (_i64Add(($930|0),($931|0),($926|0),($927|0))|0);
+ $933 = (getTempRet0() | 0);
+ $934 = (_i64Subtract(($932|0),($933|0),($761|0),($742|0))|0);
+ $935 = (getTempRet0() | 0);
+ $936 = (_i64Add(($934|0),($935|0),($850|0),($851|0))|0);
+ $937 = (getTempRet0() | 0);
+ $938 = (___muldi3(($871|0),($872|0),666643,0)|0);
+ $939 = (getTempRet0() | 0);
+ $940 = (___muldi3(($871|0),($872|0),470296,0)|0);
+ $941 = (getTempRet0() | 0);
+ $942 = (___muldi3(($871|0),($872|0),654183,0)|0);
+ $943 = (getTempRet0() | 0);
+ $944 = (___muldi3(($871|0),($872|0),-997805,-1)|0);
+ $945 = (getTempRet0() | 0);
+ $946 = (___muldi3(($871|0),($872|0),136657,0)|0);
+ $947 = (getTempRet0() | 0);
+ $948 = (___muldi3(($871|0),($872|0),-683901,-1)|0);
+ $949 = (getTempRet0() | 0);
+ $950 = (___muldi3(($874|0),($875|0),666643,0)|0);
+ $951 = (getTempRet0() | 0);
+ $952 = (___muldi3(($874|0),($875|0),470296,0)|0);
+ $953 = (getTempRet0() | 0);
+ $954 = (___muldi3(($874|0),($875|0),654183,0)|0);
+ $955 = (getTempRet0() | 0);
+ $956 = (___muldi3(($874|0),($875|0),-997805,-1)|0);
+ $957 = (getTempRet0() | 0);
+ $958 = (___muldi3(($874|0),($875|0),136657,0)|0);
+ $959 = (getTempRet0() | 0);
+ $960 = (___muldi3(($874|0),($875|0),-683901,-1)|0);
+ $961 = (getTempRet0() | 0);
+ $962 = (_i64Add(($908|0),($909|0),($888|0),($889|0))|0);
+ $963 = (getTempRet0() | 0);
+ $964 = (_i64Add(($962|0),($963|0),($922|0),($923|0))|0);
+ $965 = (getTempRet0() | 0);
+ $966 = (_i64Add(($964|0),($965|0),($433|0),($434|0))|0);
+ $967 = (getTempRet0() | 0);
+ $968 = (_i64Add(($966|0),($967|0),($946|0),($947|0))|0);
+ $969 = (getTempRet0() | 0);
+ $970 = (_i64Add(($968|0),($969|0),($960|0),($961|0))|0);
+ $971 = (getTempRet0() | 0);
+ $972 = (_i64Subtract(($970|0),($971|0),($740|0),($717|0))|0);
+ $973 = (getTempRet0() | 0);
+ $974 = (_i64Add(($972|0),($973|0),($845|0),($846|0))|0);
+ $975 = (getTempRet0() | 0);
+ $976 = (___muldi3(($862|0),($863|0),666643,0)|0);
+ $977 = (getTempRet0() | 0);
+ $978 = (_i64Add(($251|0),($252|0),($976|0),($977|0))|0);
+ $979 = (getTempRet0() | 0);
+ $980 = (_i64Add(($978|0),($979|0),($828|0),($829|0))|0);
+ $981 = (getTempRet0() | 0);
+ $982 = (_i64Subtract(($980|0),($981|0),($657|0),($636|0))|0);
+ $983 = (getTempRet0() | 0);
+ $984 = (___muldi3(($862|0),($863|0),470296,0)|0);
+ $985 = (getTempRet0() | 0);
+ $986 = (___muldi3(($862|0),($863|0),654183,0)|0);
+ $987 = (getTempRet0() | 0);
+ $988 = (_i64Add(($952|0),($953|0),($938|0),($939|0))|0);
+ $989 = (getTempRet0() | 0);
+ $990 = (_i64Add(($988|0),($989|0),($986|0),($987|0))|0);
+ $991 = (getTempRet0() | 0);
+ $992 = (_i64Add(($990|0),($991|0),($303|0),($304|0))|0);
+ $993 = (getTempRet0() | 0);
+ $994 = (_i64Subtract(($992|0),($993|0),($684|0),($659|0))|0);
+ $995 = (getTempRet0() | 0);
+ $996 = (_i64Add(($994|0),($995|0),($835|0),($836|0))|0);
+ $997 = (getTempRet0() | 0);
+ $998 = (___muldi3(($862|0),($863|0),-997805,-1)|0);
+ $999 = (getTempRet0() | 0);
+ $1000 = (___muldi3(($862|0),($863|0),136657,0)|0);
+ $1001 = (getTempRet0() | 0);
+ $1002 = (_i64Add(($918|0),($919|0),($904|0),($905|0))|0);
+ $1003 = (getTempRet0() | 0);
+ $1004 = (_i64Add(($1002|0),($1003|0),($942|0),($943|0))|0);
+ $1005 = (getTempRet0() | 0);
+ $1006 = (_i64Add(($1004|0),($1005|0),($956|0),($957|0))|0);
+ $1007 = (getTempRet0() | 0);
+ $1008 = (_i64Add(($1006|0),($1007|0),($1000|0),($1001|0))|0);
+ $1009 = (getTempRet0() | 0);
+ $1010 = (_i64Add(($1008|0),($1009|0),($367|0),($368|0))|0);
+ $1011 = (getTempRet0() | 0);
+ $1012 = (_i64Add(($1010|0),($1011|0),($840|0),($841|0))|0);
+ $1013 = (getTempRet0() | 0);
+ $1014 = (_i64Subtract(($1012|0),($1013|0),($715|0),($686|0))|0);
+ $1015 = (getTempRet0() | 0);
+ $1016 = (___muldi3(($862|0),($863|0),-683901,-1)|0);
+ $1017 = (getTempRet0() | 0);
+ $1018 = (_i64Add(($982|0),($983|0),1048576,0)|0);
+ $1019 = (getTempRet0() | 0);
+ $1020 = (_bitshift64Ashr(($1018|0),($1019|0),21)|0);
+ $1021 = (getTempRet0() | 0);
+ $1022 = (_i64Add(($984|0),($985|0),($950|0),($951|0))|0);
+ $1023 = (getTempRet0() | 0);
+ $1024 = (_i64Add(($1022|0),($1023|0),($655|0),($656|0))|0);
+ $1025 = (getTempRet0() | 0);
+ $1026 = (_i64Subtract(($1024|0),($1025|0),($837|0),($834|0))|0);
+ $1027 = (getTempRet0() | 0);
+ $1028 = (_i64Add(($1026|0),($1027|0),($1020|0),($1021|0))|0);
+ $1029 = (getTempRet0() | 0);
+ $1030 = $1018 & -2097152;
+ $1031 = (_i64Add(($996|0),($997|0),1048576,0)|0);
+ $1032 = (getTempRet0() | 0);
+ $1033 = (_bitshift64Ashr(($1031|0),($1032|0),21)|0);
+ $1034 = (getTempRet0() | 0);
+ $1035 = (_i64Add(($940|0),($941|0),($916|0),($917|0))|0);
+ $1036 = (getTempRet0() | 0);
+ $1037 = (_i64Add(($1035|0),($1036|0),($954|0),($955|0))|0);
+ $1038 = (getTempRet0() | 0);
+ $1039 = (_i64Add(($1037|0),($1038|0),($998|0),($999|0))|0);
+ $1040 = (getTempRet0() | 0);
+ $1041 = (_i64Add(($1039|0),($1040|0),($682|0),($683|0))|0);
+ $1042 = (getTempRet0() | 0);
+ $1043 = (_i64Subtract(($1041|0),($1042|0),($842|0),($839|0))|0);
+ $1044 = (getTempRet0() | 0);
+ $1045 = (_i64Add(($1043|0),($1044|0),($1033|0),($1034|0))|0);
+ $1046 = (getTempRet0() | 0);
+ $1047 = $1031 & -2097152;
+ $1048 = (_i64Add(($1014|0),($1015|0),1048576,0)|0);
+ $1049 = (getTempRet0() | 0);
+ $1050 = (_bitshift64Ashr(($1048|0),($1049|0),21)|0);
+ $1051 = (getTempRet0() | 0);
+ $1052 = (_i64Add(($906|0),($907|0),($886|0),($887|0))|0);
+ $1053 = (getTempRet0() | 0);
+ $1054 = (_i64Add(($1052|0),($1053|0),($920|0),($921|0))|0);
+ $1055 = (getTempRet0() | 0);
+ $1056 = (_i64Add(($1054|0),($1055|0),($944|0),($945|0))|0);
+ $1057 = (getTempRet0() | 0);
+ $1058 = (_i64Add(($1056|0),($1057|0),($958|0),($959|0))|0);
+ $1059 = (getTempRet0() | 0);
+ $1060 = (_i64Add(($1058|0),($1059|0),($1016|0),($1017|0))|0);
+ $1061 = (getTempRet0() | 0);
+ $1062 = (_i64Add(($1060|0),($1061|0),($713|0),($714|0))|0);
+ $1063 = (getTempRet0() | 0);
+ $1064 = (_i64Subtract(($1062|0),($1063|0),($847|0),($844|0))|0);
+ $1065 = (getTempRet0() | 0);
+ $1066 = (_i64Add(($1064|0),($1065|0),($1050|0),($1051|0))|0);
+ $1067 = (getTempRet0() | 0);
+ $1068 = $1048 & -2097152;
+ $1069 = (_i64Add(($974|0),($975|0),1048576,0)|0);
+ $1070 = (getTempRet0() | 0);
+ $1071 = (_bitshift64Ashr(($1069|0),($1070|0),21)|0);
+ $1072 = (getTempRet0() | 0);
+ $1073 = (_i64Add(($910|0),($911|0),($890|0),($891|0))|0);
+ $1074 = (getTempRet0() | 0);
+ $1075 = (_i64Add(($1073|0),($1074|0),($924|0),($925|0))|0);
+ $1076 = (getTempRet0() | 0);
+ $1077 = (_i64Add(($1075|0),($1076|0),($948|0),($949|0))|0);
+ $1078 = (getTempRet0() | 0);
+ $1079 = (_i64Add(($1077|0),($1078|0),($738|0),($739|0))|0);
+ $1080 = (getTempRet0() | 0);
+ $1081 = (_i64Subtract(($1079|0),($1080|0),($852|0),($849|0))|0);
+ $1082 = (getTempRet0() | 0);
+ $1083 = (_i64Add(($1081|0),($1082|0),($1071|0),($1072|0))|0);
+ $1084 = (getTempRet0() | 0);
+ $1085 = $1069 & -2097152;
+ $1086 = (_i64Subtract(($974|0),($975|0),($1085|0),($1070|0))|0);
+ $1087 = (getTempRet0() | 0);
+ $1088 = (_i64Add(($936|0),($937|0),1048576,0)|0);
+ $1089 = (getTempRet0() | 0);
+ $1090 = (_bitshift64Ashr(($1088|0),($1089|0),21)|0);
+ $1091 = (getTempRet0() | 0);
+ $1092 = (_i64Add(($914|0),($915|0),($894|0),($895|0))|0);
+ $1093 = (getTempRet0() | 0);
+ $1094 = (_i64Add(($1092|0),($1093|0),($759|0),($760|0))|0);
+ $1095 = (getTempRet0() | 0);
+ $1096 = (_i64Subtract(($1094|0),($1095|0),($857|0),($854|0))|0);
+ $1097 = (getTempRet0() | 0);
+ $1098 = (_i64Add(($1096|0),($1097|0),($1090|0),($1091|0))|0);
+ $1099 = (getTempRet0() | 0);
+ $1100 = $1088 & -2097152;
+ $1101 = (_i64Subtract(($936|0),($937|0),($1100|0),($1089|0))|0);
+ $1102 = (getTempRet0() | 0);
+ $1103 = (_i64Add(($902|0),($903|0),1048576,0)|0);
+ $1104 = (getTempRet0() | 0);
+ $1105 = (_bitshift64Ashr(($1103|0),($1104|0),21)|0);
+ $1106 = (getTempRet0() | 0);
+ $1107 = (_i64Add(($1105|0),($1106|0),($865|0),($866|0))|0);
+ $1108 = (getTempRet0() | 0);
+ $1109 = $1103 & -2097152;
+ $1110 = (_i64Subtract(($902|0),($903|0),($1109|0),($1104|0))|0);
+ $1111 = (getTempRet0() | 0);
+ $1112 = (_i64Add(($1028|0),($1029|0),1048576,0)|0);
+ $1113 = (getTempRet0() | 0);
+ $1114 = (_bitshift64Ashr(($1112|0),($1113|0),21)|0);
+ $1115 = (getTempRet0() | 0);
+ $1116 = $1112 & -2097152;
+ $1117 = (_i64Add(($1045|0),($1046|0),1048576,0)|0);
+ $1118 = (getTempRet0() | 0);
+ $1119 = (_bitshift64Ashr(($1117|0),($1118|0),21)|0);
+ $1120 = (getTempRet0() | 0);
+ $1121 = $1117 & -2097152;
+ $1122 = (_i64Add(($1066|0),($1067|0),1048576,0)|0);
+ $1123 = (getTempRet0() | 0);
+ $1124 = (_bitshift64Ashr(($1122|0),($1123|0),21)|0);
+ $1125 = (getTempRet0() | 0);
+ $1126 = (_i64Add(($1124|0),($1125|0),($1086|0),($1087|0))|0);
+ $1127 = (getTempRet0() | 0);
+ $1128 = $1122 & -2097152;
+ $1129 = (_i64Subtract(($1066|0),($1067|0),($1128|0),($1123|0))|0);
+ $1130 = (getTempRet0() | 0);
+ $1131 = (_i64Add(($1083|0),($1084|0),1048576,0)|0);
+ $1132 = (getTempRet0() | 0);
+ $1133 = (_bitshift64Ashr(($1131|0),($1132|0),21)|0);
+ $1134 = (getTempRet0() | 0);
+ $1135 = (_i64Add(($1133|0),($1134|0),($1101|0),($1102|0))|0);
+ $1136 = (getTempRet0() | 0);
+ $1137 = $1131 & -2097152;
+ $1138 = (_i64Subtract(($1083|0),($1084|0),($1137|0),($1132|0))|0);
+ $1139 = (getTempRet0() | 0);
+ $1140 = (_i64Add(($1098|0),($1099|0),1048576,0)|0);
+ $1141 = (getTempRet0() | 0);
+ $1142 = (_bitshift64Ashr(($1140|0),($1141|0),21)|0);
+ $1143 = (getTempRet0() | 0);
+ $1144 = (_i64Add(($1142|0),($1143|0),($1110|0),($1111|0))|0);
+ $1145 = (getTempRet0() | 0);
+ $1146 = $1140 & -2097152;
+ $1147 = (_i64Subtract(($1098|0),($1099|0),($1146|0),($1141|0))|0);
+ $1148 = (getTempRet0() | 0);
+ $1149 = (___muldi3(($1107|0),($1108|0),666643,0)|0);
+ $1150 = (getTempRet0() | 0);
+ $1151 = (_i64Add(($831|0),($832|0),($1149|0),($1150|0))|0);
+ $1152 = (getTempRet0() | 0);
+ $1153 = (___muldi3(($1107|0),($1108|0),470296,0)|0);
+ $1154 = (getTempRet0() | 0);
+ $1155 = (___muldi3(($1107|0),($1108|0),654183,0)|0);
+ $1156 = (getTempRet0() | 0);
+ $1157 = (___muldi3(($1107|0),($1108|0),-997805,-1)|0);
+ $1158 = (getTempRet0() | 0);
+ $1159 = (___muldi3(($1107|0),($1108|0),136657,0)|0);
+ $1160 = (getTempRet0() | 0);
+ $1161 = (___muldi3(($1107|0),($1108|0),-683901,-1)|0);
+ $1162 = (getTempRet0() | 0);
+ $1163 = (_i64Add(($1014|0),($1015|0),($1161|0),($1162|0))|0);
+ $1164 = (getTempRet0() | 0);
+ $1165 = (_i64Add(($1163|0),($1164|0),($1119|0),($1120|0))|0);
+ $1166 = (getTempRet0() | 0);
+ $1167 = (_i64Subtract(($1165|0),($1166|0),($1068|0),($1049|0))|0);
+ $1168 = (getTempRet0() | 0);
+ $1169 = (___muldi3(($1144|0),($1145|0),666643,0)|0);
+ $1170 = (getTempRet0() | 0);
+ $1171 = (___muldi3(($1144|0),($1145|0),470296,0)|0);
+ $1172 = (getTempRet0() | 0);
+ $1173 = (_i64Add(($1151|0),($1152|0),($1171|0),($1172|0))|0);
+ $1174 = (getTempRet0() | 0);
+ $1175 = (___muldi3(($1144|0),($1145|0),654183,0)|0);
+ $1176 = (getTempRet0() | 0);
+ $1177 = (___muldi3(($1144|0),($1145|0),-997805,-1)|0);
+ $1178 = (getTempRet0() | 0);
+ $1179 = (___muldi3(($1144|0),($1145|0),136657,0)|0);
+ $1180 = (getTempRet0() | 0);
+ $1181 = (___muldi3(($1144|0),($1145|0),-683901,-1)|0);
+ $1182 = (getTempRet0() | 0);
+ $1183 = (___muldi3(($1147|0),($1148|0),666643,0)|0);
+ $1184 = (getTempRet0() | 0);
+ $1185 = (_i64Add(($824|0),($825|0),($1183|0),($1184|0))|0);
+ $1186 = (getTempRet0() | 0);
+ $1187 = (___muldi3(($1147|0),($1148|0),470296,0)|0);
+ $1188 = (getTempRet0() | 0);
+ $1189 = (___muldi3(($1147|0),($1148|0),654183,0)|0);
+ $1190 = (getTempRet0() | 0);
+ $1191 = (_i64Add(($1173|0),($1174|0),($1189|0),($1190|0))|0);
+ $1192 = (getTempRet0() | 0);
+ $1193 = (___muldi3(($1147|0),($1148|0),-997805,-1)|0);
+ $1194 = (getTempRet0() | 0);
+ $1195 = (___muldi3(($1147|0),($1148|0),136657,0)|0);
+ $1196 = (getTempRet0() | 0);
+ $1197 = (___muldi3(($1147|0),($1148|0),-683901,-1)|0);
+ $1198 = (getTempRet0() | 0);
+ $1199 = (_i64Add(($996|0),($997|0),($1157|0),($1158|0))|0);
+ $1200 = (getTempRet0() | 0);
+ $1201 = (_i64Add(($1199|0),($1200|0),($1114|0),($1115|0))|0);
+ $1202 = (getTempRet0() | 0);
+ $1203 = (_i64Subtract(($1201|0),($1202|0),($1047|0),($1032|0))|0);
+ $1204 = (getTempRet0() | 0);
+ $1205 = (_i64Add(($1203|0),($1204|0),($1179|0),($1180|0))|0);
+ $1206 = (getTempRet0() | 0);
+ $1207 = (_i64Add(($1205|0),($1206|0),($1197|0),($1198|0))|0);
+ $1208 = (getTempRet0() | 0);
+ $1209 = (___muldi3(($1135|0),($1136|0),666643,0)|0);
+ $1210 = (getTempRet0() | 0);
+ $1211 = (___muldi3(($1135|0),($1136|0),470296,0)|0);
+ $1212 = (getTempRet0() | 0);
+ $1213 = (___muldi3(($1135|0),($1136|0),654183,0)|0);
+ $1214 = (getTempRet0() | 0);
+ $1215 = (___muldi3(($1135|0),($1136|0),-997805,-1)|0);
+ $1216 = (getTempRet0() | 0);
+ $1217 = (___muldi3(($1135|0),($1136|0),136657,0)|0);
+ $1218 = (getTempRet0() | 0);
+ $1219 = (___muldi3(($1135|0),($1136|0),-683901,-1)|0);
+ $1220 = (getTempRet0() | 0);
+ $1221 = (___muldi3(($1138|0),($1139|0),666643,0)|0);
+ $1222 = (getTempRet0() | 0);
+ $1223 = (___muldi3(($1138|0),($1139|0),470296,0)|0);
+ $1224 = (getTempRet0() | 0);
+ $1225 = (___muldi3(($1138|0),($1139|0),654183,0)|0);
+ $1226 = (getTempRet0() | 0);
+ $1227 = (___muldi3(($1138|0),($1139|0),-997805,-1)|0);
+ $1228 = (getTempRet0() | 0);
+ $1229 = (___muldi3(($1138|0),($1139|0),136657,0)|0);
+ $1230 = (getTempRet0() | 0);
+ $1231 = (___muldi3(($1138|0),($1139|0),-683901,-1)|0);
+ $1232 = (getTempRet0() | 0);
+ $1233 = (_i64Add(($1153|0),($1154|0),($982|0),($983|0))|0);
+ $1234 = (getTempRet0() | 0);
+ $1235 = (_i64Subtract(($1233|0),($1234|0),($1030|0),($1019|0))|0);
+ $1236 = (getTempRet0() | 0);
+ $1237 = (_i64Add(($1235|0),($1236|0),($1175|0),($1176|0))|0);
+ $1238 = (getTempRet0() | 0);
+ $1239 = (_i64Add(($1237|0),($1238|0),($1193|0),($1194|0))|0);
+ $1240 = (getTempRet0() | 0);
+ $1241 = (_i64Add(($1239|0),($1240|0),($1217|0),($1218|0))|0);
+ $1242 = (getTempRet0() | 0);
+ $1243 = (_i64Add(($1241|0),($1242|0),($1231|0),($1232|0))|0);
+ $1244 = (getTempRet0() | 0);
+ $1245 = (___muldi3(($1126|0),($1127|0),666643,0)|0);
+ $1246 = (getTempRet0() | 0);
+ $1247 = (_i64Add(($1245|0),($1246|0),($599|0),($600|0))|0);
+ $1248 = (getTempRet0() | 0);
+ $1249 = (___muldi3(($1126|0),($1127|0),470296,0)|0);
+ $1250 = (getTempRet0() | 0);
+ $1251 = (___muldi3(($1126|0),($1127|0),654183,0)|0);
+ $1252 = (getTempRet0() | 0);
+ $1253 = (_i64Add(($814|0),($815|0),($183|0),($184|0))|0);
+ $1254 = (getTempRet0() | 0);
+ $1255 = (_i64Subtract(($1253|0),($1254|0),($615|0),($602|0))|0);
+ $1256 = (getTempRet0() | 0);
+ $1257 = (_i64Add(($1255|0),($1256|0),($1251|0),($1252|0))|0);
+ $1258 = (getTempRet0() | 0);
+ $1259 = (_i64Add(($1257|0),($1258|0),($1209|0),($1210|0))|0);
+ $1260 = (getTempRet0() | 0);
+ $1261 = (_i64Add(($1259|0),($1260|0),($1223|0),($1224|0))|0);
+ $1262 = (getTempRet0() | 0);
+ $1263 = (___muldi3(($1126|0),($1127|0),-997805,-1)|0);
+ $1264 = (getTempRet0() | 0);
+ $1265 = (___muldi3(($1126|0),($1127|0),136657,0)|0);
+ $1266 = (getTempRet0() | 0);
+ $1267 = (_i64Add(($821|0),($822|0),($211|0),($212|0))|0);
+ $1268 = (getTempRet0() | 0);
+ $1269 = (_i64Subtract(($1267|0),($1268|0),($634|0),($617|0))|0);
+ $1270 = (getTempRet0() | 0);
+ $1271 = (_i64Add(($1269|0),($1270|0),($1169|0),($1170|0))|0);
+ $1272 = (getTempRet0() | 0);
+ $1273 = (_i64Add(($1271|0),($1272|0),($1187|0),($1188|0))|0);
+ $1274 = (getTempRet0() | 0);
+ $1275 = (_i64Add(($1273|0),($1274|0),($1265|0),($1266|0))|0);
+ $1276 = (getTempRet0() | 0);
+ $1277 = (_i64Add(($1275|0),($1276|0),($1213|0),($1214|0))|0);
+ $1278 = (getTempRet0() | 0);
+ $1279 = (_i64Add(($1277|0),($1278|0),($1227|0),($1228|0))|0);
+ $1280 = (getTempRet0() | 0);
+ $1281 = (___muldi3(($1126|0),($1127|0),-683901,-1)|0);
+ $1282 = (getTempRet0() | 0);
+ $1283 = (_i64Add(($1247|0),($1248|0),1048576,0)|0);
+ $1284 = (getTempRet0() | 0);
+ $1285 = (_bitshift64Ashr(($1283|0),($1284|0),21)|0);
+ $1286 = (getTempRet0() | 0);
+ $1287 = (_i64Add(($817|0),($818|0),($1249|0),($1250|0))|0);
+ $1288 = (getTempRet0() | 0);
+ $1289 = (_i64Add(($1287|0),($1288|0),($1221|0),($1222|0))|0);
+ $1290 = (getTempRet0() | 0);
+ $1291 = (_i64Add(($1289|0),($1290|0),($1285|0),($1286|0))|0);
+ $1292 = (getTempRet0() | 0);
+ $1293 = $1283 & -2097152;
+ $1294 = (_i64Subtract(($1247|0),($1248|0),($1293|0),($1284|0))|0);
+ $1295 = (getTempRet0() | 0);
+ $1296 = (_i64Add(($1261|0),($1262|0),1048576,0)|0);
+ $1297 = (getTempRet0() | 0);
+ $1298 = (_bitshift64Ashr(($1296|0),($1297|0),21)|0);
+ $1299 = (getTempRet0() | 0);
+ $1300 = (_i64Add(($1185|0),($1186|0),($1263|0),($1264|0))|0);
+ $1301 = (getTempRet0() | 0);
+ $1302 = (_i64Add(($1300|0),($1301|0),($1211|0),($1212|0))|0);
+ $1303 = (getTempRet0() | 0);
+ $1304 = (_i64Add(($1302|0),($1303|0),($1225|0),($1226|0))|0);
+ $1305 = (getTempRet0() | 0);
+ $1306 = (_i64Add(($1304|0),($1305|0),($1298|0),($1299|0))|0);
+ $1307 = (getTempRet0() | 0);
+ $1308 = $1296 & -2097152;
+ $1309 = (_i64Add(($1279|0),($1280|0),1048576,0)|0);
+ $1310 = (getTempRet0() | 0);
+ $1311 = (_bitshift64Ashr(($1309|0),($1310|0),21)|0);
+ $1312 = (getTempRet0() | 0);
+ $1313 = (_i64Add(($1191|0),($1192|0),($1281|0),($1282|0))|0);
+ $1314 = (getTempRet0() | 0);
+ $1315 = (_i64Add(($1313|0),($1314|0),($1215|0),($1216|0))|0);
+ $1316 = (getTempRet0() | 0);
+ $1317 = (_i64Add(($1315|0),($1316|0),($1229|0),($1230|0))|0);
+ $1318 = (getTempRet0() | 0);
+ $1319 = (_i64Add(($1317|0),($1318|0),($1311|0),($1312|0))|0);
+ $1320 = (getTempRet0() | 0);
+ $1321 = $1309 & -2097152;
+ $1322 = (_i64Add(($1243|0),($1244|0),1048576,0)|0);
+ $1323 = (getTempRet0() | 0);
+ $1324 = (_bitshift64Ashr(($1322|0),($1323|0),21)|0);
+ $1325 = (getTempRet0() | 0);
+ $1326 = (_i64Add(($1028|0),($1029|0),($1155|0),($1156|0))|0);
+ $1327 = (getTempRet0() | 0);
+ $1328 = (_i64Subtract(($1326|0),($1327|0),($1116|0),($1113|0))|0);
+ $1329 = (getTempRet0() | 0);
+ $1330 = (_i64Add(($1328|0),($1329|0),($1177|0),($1178|0))|0);
+ $1331 = (getTempRet0() | 0);
+ $1332 = (_i64Add(($1330|0),($1331|0),($1195|0),($1196|0))|0);
+ $1333 = (getTempRet0() | 0);
+ $1334 = (_i64Add(($1332|0),($1333|0),($1219|0),($1220|0))|0);
+ $1335 = (getTempRet0() | 0);
+ $1336 = (_i64Add(($1334|0),($1335|0),($1324|0),($1325|0))|0);
+ $1337 = (getTempRet0() | 0);
+ $1338 = $1322 & -2097152;
+ $1339 = (_i64Subtract(($1243|0),($1244|0),($1338|0),($1323|0))|0);
+ $1340 = (getTempRet0() | 0);
+ $1341 = (_i64Add(($1207|0),($1208|0),1048576,0)|0);
+ $1342 = (getTempRet0() | 0);
+ $1343 = (_bitshift64Ashr(($1341|0),($1342|0),21)|0);
+ $1344 = (getTempRet0() | 0);
+ $1345 = (_i64Add(($1181|0),($1182|0),($1159|0),($1160|0))|0);
+ $1346 = (getTempRet0() | 0);
+ $1347 = (_i64Add(($1345|0),($1346|0),($1045|0),($1046|0))|0);
+ $1348 = (getTempRet0() | 0);
+ $1349 = (_i64Subtract(($1347|0),($1348|0),($1121|0),($1118|0))|0);
+ $1350 = (getTempRet0() | 0);
+ $1351 = (_i64Add(($1349|0),($1350|0),($1343|0),($1344|0))|0);
+ $1352 = (getTempRet0() | 0);
+ $1353 = $1341 & -2097152;
+ $1354 = (_i64Subtract(($1207|0),($1208|0),($1353|0),($1342|0))|0);
+ $1355 = (getTempRet0() | 0);
+ $1356 = (_i64Add(($1167|0),($1168|0),1048576,0)|0);
+ $1357 = (getTempRet0() | 0);
+ $1358 = (_bitshift64Ashr(($1356|0),($1357|0),21)|0);
+ $1359 = (getTempRet0() | 0);
+ $1360 = (_i64Add(($1129|0),($1130|0),($1358|0),($1359|0))|0);
+ $1361 = (getTempRet0() | 0);
+ $1362 = $1356 & -2097152;
+ $1363 = (_i64Add(($1291|0),($1292|0),1048576,0)|0);
+ $1364 = (getTempRet0() | 0);
+ $1365 = (_bitshift64Ashr(($1363|0),($1364|0),21)|0);
+ $1366 = (getTempRet0() | 0);
+ $1367 = $1363 & -2097152;
+ $1368 = (_i64Add(($1306|0),($1307|0),1048576,0)|0);
+ $1369 = (getTempRet0() | 0);
+ $1370 = (_bitshift64Ashr(($1368|0),($1369|0),21)|0);
+ $1371 = (getTempRet0() | 0);
+ $1372 = $1368 & -2097152;
+ $1373 = (_i64Add(($1319|0),($1320|0),1048576,0)|0);
+ $1374 = (getTempRet0() | 0);
+ $1375 = (_bitshift64Ashr(($1373|0),($1374|0),21)|0);
+ $1376 = (getTempRet0() | 0);
+ $1377 = (_i64Add(($1339|0),($1340|0),($1375|0),($1376|0))|0);
+ $1378 = (getTempRet0() | 0);
+ $1379 = $1373 & -2097152;
+ $1380 = (_i64Add(($1336|0),($1337|0),1048576,0)|0);
+ $1381 = (getTempRet0() | 0);
+ $1382 = (_bitshift64Ashr(($1380|0),($1381|0),21)|0);
+ $1383 = (getTempRet0() | 0);
+ $1384 = (_i64Add(($1354|0),($1355|0),($1382|0),($1383|0))|0);
+ $1385 = (getTempRet0() | 0);
+ $1386 = $1380 & -2097152;
+ $1387 = (_i64Subtract(($1336|0),($1337|0),($1386|0),($1381|0))|0);
+ $1388 = (getTempRet0() | 0);
+ $1389 = (_i64Add(($1351|0),($1352|0),1048576,0)|0);
+ $1390 = (getTempRet0() | 0);
+ $1391 = (_bitshift64Ashr(($1389|0),($1390|0),21)|0);
+ $1392 = (getTempRet0() | 0);
+ $1393 = $1389 & -2097152;
+ $1394 = (_i64Subtract(($1351|0),($1352|0),($1393|0),($1390|0))|0);
+ $1395 = (getTempRet0() | 0);
+ $1396 = (_i64Add(($1360|0),($1361|0),1048576,0)|0);
+ $1397 = (getTempRet0() | 0);
+ $1398 = (_bitshift64Ashr(($1396|0),($1397|0),21)|0);
+ $1399 = (getTempRet0() | 0);
+ $1400 = $1396 & -2097152;
+ $1401 = (_i64Subtract(($1360|0),($1361|0),($1400|0),($1397|0))|0);
+ $1402 = (getTempRet0() | 0);
+ $1403 = (___muldi3(($1398|0),($1399|0),666643,0)|0);
+ $1404 = (getTempRet0() | 0);
+ $1405 = (_i64Add(($1294|0),($1295|0),($1403|0),($1404|0))|0);
+ $1406 = (getTempRet0() | 0);
+ $1407 = (___muldi3(($1398|0),($1399|0),470296,0)|0);
+ $1408 = (getTempRet0() | 0);
+ $1409 = (___muldi3(($1398|0),($1399|0),654183,0)|0);
+ $1410 = (getTempRet0() | 0);
+ $1411 = (___muldi3(($1398|0),($1399|0),-997805,-1)|0);
+ $1412 = (getTempRet0() | 0);
+ $1413 = (___muldi3(($1398|0),($1399|0),136657,0)|0);
+ $1414 = (getTempRet0() | 0);
+ $1415 = (___muldi3(($1398|0),($1399|0),-683901,-1)|0);
+ $1416 = (getTempRet0() | 0);
+ $1417 = (_bitshift64Ashr(($1405|0),($1406|0),21)|0);
+ $1418 = (getTempRet0() | 0);
+ $1419 = (_i64Add(($1291|0),($1292|0),($1407|0),($1408|0))|0);
+ $1420 = (getTempRet0() | 0);
+ $1421 = (_i64Subtract(($1419|0),($1420|0),($1367|0),($1364|0))|0);
+ $1422 = (getTempRet0() | 0);
+ $1423 = (_i64Add(($1421|0),($1422|0),($1417|0),($1418|0))|0);
+ $1424 = (getTempRet0() | 0);
+ $1425 = $1405 & 2097151;
+ $1426 = (_bitshift64Ashr(($1423|0),($1424|0),21)|0);
+ $1427 = (getTempRet0() | 0);
+ $1428 = (_i64Add(($1261|0),($1262|0),($1409|0),($1410|0))|0);
+ $1429 = (getTempRet0() | 0);
+ $1430 = (_i64Subtract(($1428|0),($1429|0),($1308|0),($1297|0))|0);
+ $1431 = (getTempRet0() | 0);
+ $1432 = (_i64Add(($1430|0),($1431|0),($1365|0),($1366|0))|0);
+ $1433 = (getTempRet0() | 0);
+ $1434 = (_i64Add(($1432|0),($1433|0),($1426|0),($1427|0))|0);
+ $1435 = (getTempRet0() | 0);
+ $1436 = $1423 & 2097151;
+ $1437 = (_bitshift64Ashr(($1434|0),($1435|0),21)|0);
+ $1438 = (getTempRet0() | 0);
+ $1439 = (_i64Add(($1306|0),($1307|0),($1411|0),($1412|0))|0);
+ $1440 = (getTempRet0() | 0);
+ $1441 = (_i64Subtract(($1439|0),($1440|0),($1372|0),($1369|0))|0);
+ $1442 = (getTempRet0() | 0);
+ $1443 = (_i64Add(($1441|0),($1442|0),($1437|0),($1438|0))|0);
+ $1444 = (getTempRet0() | 0);
+ $1445 = $1434 & 2097151;
+ $1446 = (_bitshift64Ashr(($1443|0),($1444|0),21)|0);
+ $1447 = (getTempRet0() | 0);
+ $1448 = (_i64Add(($1279|0),($1280|0),($1413|0),($1414|0))|0);
+ $1449 = (getTempRet0() | 0);
+ $1450 = (_i64Subtract(($1448|0),($1449|0),($1321|0),($1310|0))|0);
+ $1451 = (getTempRet0() | 0);
+ $1452 = (_i64Add(($1450|0),($1451|0),($1370|0),($1371|0))|0);
+ $1453 = (getTempRet0() | 0);
+ $1454 = (_i64Add(($1452|0),($1453|0),($1446|0),($1447|0))|0);
+ $1455 = (getTempRet0() | 0);
+ $1456 = $1443 & 2097151;
+ $1457 = (_bitshift64Ashr(($1454|0),($1455|0),21)|0);
+ $1458 = (getTempRet0() | 0);
+ $1459 = (_i64Add(($1319|0),($1320|0),($1415|0),($1416|0))|0);
+ $1460 = (getTempRet0() | 0);
+ $1461 = (_i64Subtract(($1459|0),($1460|0),($1379|0),($1374|0))|0);
+ $1462 = (getTempRet0() | 0);
+ $1463 = (_i64Add(($1461|0),($1462|0),($1457|0),($1458|0))|0);
+ $1464 = (getTempRet0() | 0);
+ $1465 = $1454 & 2097151;
+ $1466 = (_bitshift64Ashr(($1463|0),($1464|0),21)|0);
+ $1467 = (getTempRet0() | 0);
+ $1468 = (_i64Add(($1377|0),($1378|0),($1466|0),($1467|0))|0);
+ $1469 = (getTempRet0() | 0);
+ $1470 = $1463 & 2097151;
+ $1471 = (_bitshift64Ashr(($1468|0),($1469|0),21)|0);
+ $1472 = (getTempRet0() | 0);
+ $1473 = (_i64Add(($1471|0),($1472|0),($1387|0),($1388|0))|0);
+ $1474 = (getTempRet0() | 0);
+ $1475 = $1468 & 2097151;
+ $1476 = (_bitshift64Ashr(($1473|0),($1474|0),21)|0);
+ $1477 = (getTempRet0() | 0);
+ $1478 = (_i64Add(($1384|0),($1385|0),($1476|0),($1477|0))|0);
+ $1479 = (getTempRet0() | 0);
+ $1480 = $1473 & 2097151;
+ $1481 = (_bitshift64Ashr(($1478|0),($1479|0),21)|0);
+ $1482 = (getTempRet0() | 0);
+ $1483 = (_i64Add(($1481|0),($1482|0),($1394|0),($1395|0))|0);
+ $1484 = (getTempRet0() | 0);
+ $1485 = $1478 & 2097151;
+ $1486 = (_bitshift64Ashr(($1483|0),($1484|0),21)|0);
+ $1487 = (getTempRet0() | 0);
+ $1488 = (_i64Add(($1391|0),($1392|0),($1167|0),($1168|0))|0);
+ $1489 = (getTempRet0() | 0);
+ $1490 = (_i64Subtract(($1488|0),($1489|0),($1362|0),($1357|0))|0);
+ $1491 = (getTempRet0() | 0);
+ $1492 = (_i64Add(($1490|0),($1491|0),($1486|0),($1487|0))|0);
+ $1493 = (getTempRet0() | 0);
+ $1494 = $1483 & 2097151;
+ $1495 = (_bitshift64Ashr(($1492|0),($1493|0),21)|0);
+ $1496 = (getTempRet0() | 0);
+ $1497 = (_i64Add(($1495|0),($1496|0),($1401|0),($1402|0))|0);
+ $1498 = (getTempRet0() | 0);
+ $1499 = $1492 & 2097151;
+ $1500 = (_bitshift64Ashr(($1497|0),($1498|0),21)|0);
+ $1501 = (getTempRet0() | 0);
+ $1502 = $1497 & 2097151;
+ $1503 = (___muldi3(($1500|0),($1501|0),666643,0)|0);
+ $1504 = (getTempRet0() | 0);
+ $1505 = (_i64Add(($1503|0),($1504|0),($1425|0),0)|0);
+ $1506 = (getTempRet0() | 0);
+ $1507 = (___muldi3(($1500|0),($1501|0),470296,0)|0);
+ $1508 = (getTempRet0() | 0);
+ $1509 = (_i64Add(($1507|0),($1508|0),($1436|0),0)|0);
+ $1510 = (getTempRet0() | 0);
+ $1511 = (___muldi3(($1500|0),($1501|0),654183,0)|0);
+ $1512 = (getTempRet0() | 0);
+ $1513 = (_i64Add(($1511|0),($1512|0),($1445|0),0)|0);
+ $1514 = (getTempRet0() | 0);
+ $1515 = (___muldi3(($1500|0),($1501|0),-997805,-1)|0);
+ $1516 = (getTempRet0() | 0);
+ $1517 = (_i64Add(($1515|0),($1516|0),($1456|0),0)|0);
+ $1518 = (getTempRet0() | 0);
+ $1519 = (___muldi3(($1500|0),($1501|0),136657,0)|0);
+ $1520 = (getTempRet0() | 0);
+ $1521 = (_i64Add(($1519|0),($1520|0),($1465|0),0)|0);
+ $1522 = (getTempRet0() | 0);
+ $1523 = (___muldi3(($1500|0),($1501|0),-683901,-1)|0);
+ $1524 = (getTempRet0() | 0);
+ $1525 = (_i64Add(($1523|0),($1524|0),($1470|0),0)|0);
+ $1526 = (getTempRet0() | 0);
+ $1527 = (_bitshift64Ashr(($1505|0),($1506|0),21)|0);
+ $1528 = (getTempRet0() | 0);
+ $1529 = (_i64Add(($1509|0),($1510|0),($1527|0),($1528|0))|0);
+ $1530 = (getTempRet0() | 0);
+ $1531 = (_bitshift64Ashr(($1529|0),($1530|0),21)|0);
+ $1532 = (getTempRet0() | 0);
+ $1533 = (_i64Add(($1513|0),($1514|0),($1531|0),($1532|0))|0);
+ $1534 = (getTempRet0() | 0);
+ $1535 = $1529 & 2097151;
+ $1536 = (_bitshift64Ashr(($1533|0),($1534|0),21)|0);
+ $1537 = (getTempRet0() | 0);
+ $1538 = (_i64Add(($1517|0),($1518|0),($1536|0),($1537|0))|0);
+ $1539 = (getTempRet0() | 0);
+ $1540 = $1533 & 2097151;
+ $1541 = (_bitshift64Ashr(($1538|0),($1539|0),21)|0);
+ $1542 = (getTempRet0() | 0);
+ $1543 = (_i64Add(($1521|0),($1522|0),($1541|0),($1542|0))|0);
+ $1544 = (getTempRet0() | 0);
+ $1545 = $1538 & 2097151;
+ $1546 = (_bitshift64Ashr(($1543|0),($1544|0),21)|0);
+ $1547 = (getTempRet0() | 0);
+ $1548 = (_i64Add(($1525|0),($1526|0),($1546|0),($1547|0))|0);
+ $1549 = (getTempRet0() | 0);
+ $1550 = $1543 & 2097151;
+ $1551 = (_bitshift64Ashr(($1548|0),($1549|0),21)|0);
+ $1552 = (getTempRet0() | 0);
+ $1553 = (_i64Add(($1551|0),($1552|0),($1475|0),0)|0);
+ $1554 = (getTempRet0() | 0);
+ $1555 = $1548 & 2097151;
+ $1556 = (_bitshift64Ashr(($1553|0),($1554|0),21)|0);
+ $1557 = (getTempRet0() | 0);
+ $1558 = (_i64Add(($1556|0),($1557|0),($1480|0),0)|0);
+ $1559 = (getTempRet0() | 0);
+ $1560 = $1553 & 2097151;
+ $1561 = (_bitshift64Ashr(($1558|0),($1559|0),21)|0);
+ $1562 = (getTempRet0() | 0);
+ $1563 = (_i64Add(($1561|0),($1562|0),($1485|0),0)|0);
+ $1564 = (getTempRet0() | 0);
+ $1565 = (_bitshift64Ashr(($1563|0),($1564|0),21)|0);
+ $1566 = (getTempRet0() | 0);
+ $1567 = (_i64Add(($1565|0),($1566|0),($1494|0),0)|0);
+ $1568 = (getTempRet0() | 0);
+ $1569 = (_bitshift64Ashr(($1567|0),($1568|0),21)|0);
+ $1570 = (getTempRet0() | 0);
+ $1571 = (_i64Add(($1569|0),($1570|0),($1499|0),0)|0);
+ $1572 = (getTempRet0() | 0);
+ $1573 = $1567 & 2097151;
+ $1574 = (_bitshift64Ashr(($1571|0),($1572|0),21)|0);
+ $1575 = (getTempRet0() | 0);
+ $1576 = (_i64Add(($1574|0),($1575|0),($1502|0),0)|0);
+ $1577 = (getTempRet0() | 0);
+ $1578 = $1571 & 2097151;
+ $1579 = $1505&255;
+ HEAP8[$s>>0] = $1579;
+ $1580 = (_bitshift64Lshr(($1505|0),($1506|0),8)|0);
+ $1581 = (getTempRet0() | 0);
+ $1582 = $1580&255;
+ $arrayidx895 = ((($s)) + 1|0);
+ HEAP8[$arrayidx895>>0] = $1582;
+ $1583 = (_bitshift64Lshr(($1505|0),($1506|0),16)|0);
+ $1584 = (getTempRet0() | 0);
+ $1585 = $1583 & 31;
+ $1586 = (_bitshift64Shl(($1535|0),0,5)|0);
+ $1587 = (getTempRet0() | 0);
+ $1588 = $1586 | $1585;
+ $1589 = $1588&255;
+ $arrayidx899 = ((($s)) + 2|0);
+ HEAP8[$arrayidx899>>0] = $1589;
+ $1590 = (_bitshift64Lshr(($1529|0),($1530|0),3)|0);
+ $1591 = (getTempRet0() | 0);
+ $1592 = $1590&255;
+ $arrayidx902 = ((($s)) + 3|0);
+ HEAP8[$arrayidx902>>0] = $1592;
+ $1593 = (_bitshift64Lshr(($1529|0),($1530|0),11)|0);
+ $1594 = (getTempRet0() | 0);
+ $1595 = $1593&255;
+ $arrayidx905 = ((($s)) + 4|0);
+ HEAP8[$arrayidx905>>0] = $1595;
+ $1596 = (_bitshift64Lshr(($1535|0),0,19)|0);
+ $1597 = (getTempRet0() | 0);
+ $1598 = (_bitshift64Shl(($1540|0),0,2)|0);
+ $1599 = (getTempRet0() | 0);
+ $1600 = $1598 | $1596;
+ $1599 | $1597;
+ $1601 = $1600&255;
+ $arrayidx910 = ((($s)) + 5|0);
+ HEAP8[$arrayidx910>>0] = $1601;
+ $1602 = (_bitshift64Lshr(($1533|0),($1534|0),6)|0);
+ $1603 = (getTempRet0() | 0);
+ $1604 = $1602&255;
+ $arrayidx913 = ((($s)) + 6|0);
+ HEAP8[$arrayidx913>>0] = $1604;
+ $1605 = (_bitshift64Lshr(($1540|0),0,14)|0);
+ $1606 = (getTempRet0() | 0);
+ $1607 = (_bitshift64Shl(($1545|0),0,7)|0);
+ $1608 = (getTempRet0() | 0);
+ $1609 = $1607 | $1605;
+ $1608 | $1606;
+ $1610 = $1609&255;
+ $arrayidx918 = ((($s)) + 7|0);
+ HEAP8[$arrayidx918>>0] = $1610;
+ $1611 = (_bitshift64Lshr(($1538|0),($1539|0),1)|0);
+ $1612 = (getTempRet0() | 0);
+ $1613 = $1611&255;
+ $arrayidx921 = ((($s)) + 8|0);
+ HEAP8[$arrayidx921>>0] = $1613;
+ $1614 = (_bitshift64Lshr(($1538|0),($1539|0),9)|0);
+ $1615 = (getTempRet0() | 0);
+ $1616 = $1614&255;
+ $arrayidx924 = ((($s)) + 9|0);
+ HEAP8[$arrayidx924>>0] = $1616;
+ $1617 = (_bitshift64Lshr(($1545|0),0,17)|0);
+ $1618 = (getTempRet0() | 0);
+ $1619 = (_bitshift64Shl(($1550|0),0,4)|0);
+ $1620 = (getTempRet0() | 0);
+ $1621 = $1619 | $1617;
+ $1620 | $1618;
+ $1622 = $1621&255;
+ $arrayidx929 = ((($s)) + 10|0);
+ HEAP8[$arrayidx929>>0] = $1622;
+ $1623 = (_bitshift64Lshr(($1543|0),($1544|0),4)|0);
+ $1624 = (getTempRet0() | 0);
+ $1625 = $1623&255;
+ $arrayidx932 = ((($s)) + 11|0);
+ HEAP8[$arrayidx932>>0] = $1625;
+ $1626 = (_bitshift64Lshr(($1543|0),($1544|0),12)|0);
+ $1627 = (getTempRet0() | 0);
+ $1628 = $1626&255;
+ $arrayidx935 = ((($s)) + 12|0);
+ HEAP8[$arrayidx935>>0] = $1628;
+ $1629 = (_bitshift64Lshr(($1550|0),0,20)|0);
+ $1630 = (getTempRet0() | 0);
+ $1631 = (_bitshift64Shl(($1555|0),0,1)|0);
+ $1632 = (getTempRet0() | 0);
+ $1633 = $1631 | $1629;
+ $1632 | $1630;
+ $1634 = $1633&255;
+ $arrayidx940 = ((($s)) + 13|0);
+ HEAP8[$arrayidx940>>0] = $1634;
+ $1635 = (_bitshift64Lshr(($1548|0),($1549|0),7)|0);
+ $1636 = (getTempRet0() | 0);
+ $1637 = $1635&255;
+ $arrayidx943 = ((($s)) + 14|0);
+ HEAP8[$arrayidx943>>0] = $1637;
+ $1638 = (_bitshift64Lshr(($1555|0),0,15)|0);
+ $1639 = (getTempRet0() | 0);
+ $1640 = (_bitshift64Shl(($1560|0),0,6)|0);
+ $1641 = (getTempRet0() | 0);
+ $1642 = $1640 | $1638;
+ $1641 | $1639;
+ $1643 = $1642&255;
+ $arrayidx948 = ((($s)) + 15|0);
+ HEAP8[$arrayidx948>>0] = $1643;
+ $1644 = (_bitshift64Lshr(($1553|0),($1554|0),2)|0);
+ $1645 = (getTempRet0() | 0);
+ $1646 = $1644&255;
+ $arrayidx951 = ((($s)) + 16|0);
+ HEAP8[$arrayidx951>>0] = $1646;
+ $1647 = (_bitshift64Lshr(($1553|0),($1554|0),10)|0);
+ $1648 = (getTempRet0() | 0);
+ $1649 = $1647&255;
+ $arrayidx954 = ((($s)) + 17|0);
+ HEAP8[$arrayidx954>>0] = $1649;
+ $1650 = (_bitshift64Lshr(($1560|0),0,18)|0);
+ $1651 = (getTempRet0() | 0);
+ $1652 = (_bitshift64Shl(($1558|0),($1559|0),3)|0);
+ $1653 = (getTempRet0() | 0);
+ $1654 = $1652 | $1650;
+ $1653 | $1651;
+ $1655 = $1654&255;
+ $arrayidx959 = ((($s)) + 18|0);
+ HEAP8[$arrayidx959>>0] = $1655;
+ $1656 = (_bitshift64Lshr(($1558|0),($1559|0),5)|0);
+ $1657 = (getTempRet0() | 0);
+ $1658 = $1656&255;
+ $arrayidx962 = ((($s)) + 19|0);
+ HEAP8[$arrayidx962>>0] = $1658;
+ $1659 = (_bitshift64Lshr(($1558|0),($1559|0),13)|0);
+ $1660 = (getTempRet0() | 0);
+ $1661 = $1659&255;
+ $arrayidx965 = ((($s)) + 20|0);
+ HEAP8[$arrayidx965>>0] = $1661;
+ $1662 = $1563&255;
+ $arrayidx968 = ((($s)) + 21|0);
+ HEAP8[$arrayidx968>>0] = $1662;
+ $1663 = (_bitshift64Lshr(($1563|0),($1564|0),8)|0);
+ $1664 = (getTempRet0() | 0);
+ $1665 = $1663&255;
+ $arrayidx971 = ((($s)) + 22|0);
+ HEAP8[$arrayidx971>>0] = $1665;
+ $1666 = (_bitshift64Lshr(($1563|0),($1564|0),16)|0);
+ $1667 = (getTempRet0() | 0);
+ $1668 = $1666 & 31;
+ $1669 = (_bitshift64Shl(($1573|0),0,5)|0);
+ $1670 = (getTempRet0() | 0);
+ $1671 = $1669 | $1668;
+ $1672 = $1671&255;
+ $arrayidx976 = ((($s)) + 23|0);
+ HEAP8[$arrayidx976>>0] = $1672;
+ $1673 = (_bitshift64Lshr(($1567|0),($1568|0),3)|0);
+ $1674 = (getTempRet0() | 0);
+ $1675 = $1673&255;
+ $arrayidx979 = ((($s)) + 24|0);
+ HEAP8[$arrayidx979>>0] = $1675;
+ $1676 = (_bitshift64Lshr(($1567|0),($1568|0),11)|0);
+ $1677 = (getTempRet0() | 0);
+ $1678 = $1676&255;
+ $arrayidx982 = ((($s)) + 25|0);
+ HEAP8[$arrayidx982>>0] = $1678;
+ $1679 = (_bitshift64Lshr(($1573|0),0,19)|0);
+ $1680 = (getTempRet0() | 0);
+ $1681 = (_bitshift64Shl(($1578|0),0,2)|0);
+ $1682 = (getTempRet0() | 0);
+ $1683 = $1681 | $1679;
+ $1682 | $1680;
+ $1684 = $1683&255;
+ $arrayidx987 = ((($s)) + 26|0);
+ HEAP8[$arrayidx987>>0] = $1684;
+ $1685 = (_bitshift64Lshr(($1571|0),($1572|0),6)|0);
+ $1686 = (getTempRet0() | 0);
+ $1687 = $1685&255;
+ $arrayidx990 = ((($s)) + 27|0);
+ HEAP8[$arrayidx990>>0] = $1687;
+ $1688 = (_bitshift64Lshr(($1578|0),0,14)|0);
+ $1689 = (getTempRet0() | 0);
+ $1690 = (_bitshift64Shl(($1576|0),($1577|0),7)|0);
+ $1691 = (getTempRet0() | 0);
+ $1692 = $1690 | $1688;
+ $1691 | $1689;
+ $1693 = $1692&255;
+ $arrayidx995 = ((($s)) + 28|0);
+ HEAP8[$arrayidx995>>0] = $1693;
+ $1694 = (_bitshift64Lshr(($1576|0),($1577|0),1)|0);
+ $1695 = (getTempRet0() | 0);
+ $1696 = $1694&255;
+ $arrayidx998 = ((($s)) + 29|0);
+ HEAP8[$arrayidx998>>0] = $1696;
+ $1697 = (_bitshift64Lshr(($1576|0),($1577|0),9)|0);
+ $1698 = (getTempRet0() | 0);
+ $1699 = $1697&255;
+ $arrayidx1001 = ((($s)) + 30|0);
+ HEAP8[$arrayidx1001>>0] = $1699;
+ $1700 = (_bitshift64Ashr(($1576|0),($1577|0),17)|0);
+ $1701 = (getTempRet0() | 0);
+ $1702 = $1700&255;
+ $arrayidx1004 = ((($s)) + 31|0);
+ HEAP8[$arrayidx1004>>0] = $1702;
+ return;
+}
+function _sha512_init($md) {
+ $md = $md|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx = 0, $arrayidx10 = 0, $arrayidx12 = 0, $arrayidx14 = 0;
+ var $arrayidx2 = 0, $arrayidx4 = 0, $arrayidx6 = 0, $arrayidx8 = 0, $cmp = 0, $curlen = 0, $retval$0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $cmp = ($md|0)==(0|0);
+ if ($cmp) {
+ $retval$0 = 1;
+ return ($retval$0|0);
+ }
+ $curlen = ((($md)) + 72|0);
+ HEAP32[$curlen>>2] = 0;
+ $0 = $md;
+ $1 = $0;
+ HEAP32[$1>>2] = 0;
+ $2 = (($0) + 4)|0;
+ $3 = $2;
+ HEAP32[$3>>2] = 0;
+ $arrayidx = ((($md)) + 8|0);
+ $4 = $arrayidx;
+ $5 = $4;
+ HEAP32[$5>>2] = -205731576;
+ $6 = (($4) + 4)|0;
+ $7 = $6;
+ HEAP32[$7>>2] = 1779033703;
+ $arrayidx2 = ((($md)) + 16|0);
+ $8 = $arrayidx2;
+ $9 = $8;
+ HEAP32[$9>>2] = -2067093701;
+ $10 = (($8) + 4)|0;
+ $11 = $10;
+ HEAP32[$11>>2] = -1150833019;
+ $arrayidx4 = ((($md)) + 24|0);
+ $12 = $arrayidx4;
+ $13 = $12;
+ HEAP32[$13>>2] = -23791573;
+ $14 = (($12) + 4)|0;
+ $15 = $14;
+ HEAP32[$15>>2] = 1013904242;
+ $arrayidx6 = ((($md)) + 32|0);
+ $16 = $arrayidx6;
+ $17 = $16;
+ HEAP32[$17>>2] = 1595750129;
+ $18 = (($16) + 4)|0;
+ $19 = $18;
+ HEAP32[$19>>2] = -1521486534;
+ $arrayidx8 = ((($md)) + 40|0);
+ $20 = $arrayidx8;
+ $21 = $20;
+ HEAP32[$21>>2] = -1377402159;
+ $22 = (($20) + 4)|0;
+ $23 = $22;
+ HEAP32[$23>>2] = 1359893119;
+ $arrayidx10 = ((($md)) + 48|0);
+ $24 = $arrayidx10;
+ $25 = $24;
+ HEAP32[$25>>2] = 725511199;
+ $26 = (($24) + 4)|0;
+ $27 = $26;
+ HEAP32[$27>>2] = -1694144372;
+ $arrayidx12 = ((($md)) + 56|0);
+ $28 = $arrayidx12;
+ $29 = $28;
+ HEAP32[$29>>2] = -79577749;
+ $30 = (($28) + 4)|0;
+ $31 = $30;
+ HEAP32[$31>>2] = 528734635;
+ $arrayidx14 = ((($md)) + 64|0);
+ $32 = $arrayidx14;
+ $33 = $32;
+ HEAP32[$33>>2] = 327033209;
+ $34 = (($32) + 4)|0;
+ $35 = $34;
+ HEAP32[$35>>2] = 1541459225;
+ $retval$0 = 0;
+ return ($retval$0|0);
+}
+function _sha512_update($md,$in,$inlen) {
+ $md = $md|0;
+ $in = $in|0;
+ $inlen = $inlen|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $add$ptr = 0, $add$ptr26 = 0, $add22 = 0, $add25 = 0, $arraydecay = 0, $arrayidx = 0, $arrayidx23 = 0, $cmp = 0, $cmp1 = 0, $cmp10 = 0, $cmp17 = 0;
+ var $cmp20 = 0, $cmp2035 = 0, $cmp29 = 0, $cmp4 = 0, $cmp7 = 0, $cmp737 = 0, $cmp9 = 0, $curlen = 0, $i$036 = 0, $in$addr$038 = 0, $in$addr$1 = 0, $inc = 0, $inlen$addr$0$sub16 = 0, $inlen$addr$039 = 0, $inlen$addr$1 = 0, $or$cond = 0, $or$cond34 = 0, $retval$0 = 0, $sub = 0, $sub16 = 0;
+ var $sub27 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $cmp = ($md|0)==(0|0);
+ $cmp1 = ($in|0)==(0|0);
+ $or$cond34 = $cmp | $cmp1;
+ if ($or$cond34) {
+ $retval$0 = 1;
+ return ($retval$0|0);
+ }
+ $curlen = ((($md)) + 72|0);
+ $0 = HEAP32[$curlen>>2]|0;
+ $cmp4 = ($0>>>0)>(128);
+ if ($cmp4) {
+ $retval$0 = 1;
+ return ($retval$0|0);
+ }
+ $cmp737 = ($inlen|0)==(0);
+ if ($cmp737) {
+ $retval$0 = 0;
+ return ($retval$0|0);
+ }
+ $arraydecay = ((($md)) + 76|0);
+ $in$addr$038 = $in;$inlen$addr$039 = $inlen;
+ while(1) {
+ $1 = HEAP32[$curlen>>2]|0;
+ $cmp9 = ($1|0)==(0);
+ $cmp10 = ($inlen$addr$039>>>0)>(127);
+ $or$cond = $cmp10 & $cmp9;
+ if ($or$cond) {
+ _sha512_compress($md,$in$addr$038);
+ $2 = $md;
+ $3 = $2;
+ $4 = HEAP32[$3>>2]|0;
+ $5 = (($2) + 4)|0;
+ $6 = $5;
+ $7 = HEAP32[$6>>2]|0;
+ $8 = (_i64Add(($4|0),($7|0),1024,0)|0);
+ $9 = (getTempRet0() | 0);
+ $10 = $md;
+ $11 = $10;
+ HEAP32[$11>>2] = $8;
+ $12 = (($10) + 4)|0;
+ $13 = $12;
+ HEAP32[$13>>2] = $9;
+ $add$ptr = ((($in$addr$038)) + 128|0);
+ $sub = (($inlen$addr$039) + -128)|0;
+ $in$addr$1 = $add$ptr;$inlen$addr$1 = $sub;
+ } else {
+ $sub16 = (128 - ($1))|0;
+ $cmp17 = ($inlen$addr$039>>>0)<($sub16>>>0);
+ $inlen$addr$0$sub16 = $cmp17 ? $inlen$addr$039 : $sub16;
+ $cmp2035 = ($inlen$addr$0$sub16|0)==(0);
+ if (!($cmp2035)) {
+ $i$036 = 0;
+ while(1) {
+ $arrayidx = (($in$addr$038) + ($i$036)|0);
+ $14 = HEAP8[$arrayidx>>0]|0;
+ $15 = HEAP32[$curlen>>2]|0;
+ $add22 = (($15) + ($i$036))|0;
+ $arrayidx23 = (((($md)) + 76|0) + ($add22)|0);
+ HEAP8[$arrayidx23>>0] = $14;
+ $inc = (($i$036) + 1)|0;
+ $cmp20 = ($inc>>>0)<($inlen$addr$0$sub16>>>0);
+ if ($cmp20) {
+ $i$036 = $inc;
+ } else {
+ break;
+ }
+ }
+ }
+ $16 = HEAP32[$curlen>>2]|0;
+ $add25 = (($16) + ($inlen$addr$0$sub16))|0;
+ HEAP32[$curlen>>2] = $add25;
+ $add$ptr26 = (($in$addr$038) + ($inlen$addr$0$sub16)|0);
+ $sub27 = (($inlen$addr$039) - ($inlen$addr$0$sub16))|0;
+ $cmp29 = ($add25|0)==(128);
+ if ($cmp29) {
+ _sha512_compress($md,$arraydecay);
+ $17 = $md;
+ $18 = $17;
+ $19 = HEAP32[$18>>2]|0;
+ $20 = (($17) + 4)|0;
+ $21 = $20;
+ $22 = HEAP32[$21>>2]|0;
+ $23 = (_i64Add(($19|0),($22|0),1024,0)|0);
+ $24 = (getTempRet0() | 0);
+ $25 = $md;
+ $26 = $25;
+ HEAP32[$26>>2] = $23;
+ $27 = (($25) + 4)|0;
+ $28 = $27;
+ HEAP32[$28>>2] = $24;
+ HEAP32[$curlen>>2] = 0;
+ $in$addr$1 = $add$ptr26;$inlen$addr$1 = $sub27;
+ } else {
+ $in$addr$1 = $add$ptr26;$inlen$addr$1 = $sub27;
+ }
+ }
+ $cmp7 = ($inlen$addr$1|0)==(0);
+ if ($cmp7) {
+ $retval$0 = 0;
+ break;
+ } else {
+ $in$addr$038 = $in$addr$1;$inlen$addr$039 = $inlen$addr$1;
+ }
+ }
+ return ($retval$0|0);
+}
+function _sha512_compress($md,$buf) {
+ $md = $md|0;
+ $buf = $buf|0;
+ var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
+ var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0;
+ var $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0;
+ var $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0;
+ var $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0;
+ var $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0;
+ var $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0;
+ var $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0;
+ var $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0;
+ var $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0;
+ var $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0;
+ var $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0;
+ var $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0;
+ var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0;
+ var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0;
+ var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0;
+ var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0;
+ var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0;
+ var $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0;
+ var $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0;
+ var $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0;
+ var $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0;
+ var $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0;
+ var $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0;
+ var $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0;
+ var $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0;
+ var $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0;
+ var $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0;
+ var $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0;
+ var $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0;
+ var $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0;
+ var $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0;
+ var $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0;
+ var $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0;
+ var $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0;
+ var $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0;
+ var $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0;
+ var $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0;
+ var $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0;
+ var $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0;
+ var $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0;
+ var $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0;
+ var $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0;
+ var $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0;
+ var $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0;
+ var $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0;
+ var $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0;
+ var $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0;
+ var $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0;
+ var $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0;
+ var $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0;
+ var $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $S = 0, $W = 0, $add$ptr = 0, $add209 = 0, $add273 = 0, $add337 = 0, $add401 = 0, $add465 = 0, $add529 = 0, $add593 = 0, $add631 = 0, $arrayidx108 = 0, $arrayidx110 = 0, $arrayidx118 = 0;
+ var $arrayidx119 = 0, $arrayidx137 = 0, $arrayidx139 = 0, $arrayidx146 = 0, $arrayidx149 = 0, $arrayidx16 = 0, $arrayidx169 = 0, $arrayidx171 = 0, $arrayidx178 = 0, $arrayidx210 = 0, $arrayidx213 = 0, $arrayidx24 = 0, $arrayidx274 = 0, $arrayidx277 = 0, $arrayidx32 = 0, $arrayidx338 = 0, $arrayidx341 = 0, $arrayidx40 = 0, $arrayidx402 = 0, $arrayidx405 = 0;
+ var $arrayidx466 = 0, $arrayidx469 = 0, $arrayidx48 = 0, $arrayidx530 = 0, $arrayidx533 = 0, $arrayidx56 = 0, $arrayidx594 = 0, $arrayidx597 = 0, $arrayidx61 = 0, $arrayidx638 = 0, $arrayidx638$1 = 0, $arrayidx638$2 = 0, $arrayidx638$3 = 0, $arrayidx638$4 = 0, $arrayidx638$5 = 0, $arrayidx638$6 = 0, $arrayidx638$7 = 0, $arrayidx639$1 = 0, $arrayidx639$2 = 0, $arrayidx639$3 = 0;
+ var $arrayidx639$4 = 0, $arrayidx639$5 = 0, $arrayidx639$6 = 0, $arrayidx639$7 = 0, $arrayidx69 = 0, $arrayidx86 = 0, $arrayidx88 = 0, $arrayidx9 = 0, $cmp115 = 0, $exitcond = 0, $exitcond14 = 0, $i$112 = 0, $i$211 = 0, $i$32 = 0, $inc112 = 0, $inc63 = 0, $mul = 0, $scevgep = 0, $sub = 0, $sub107 = 0;
+ var $sub85 = 0, $sub87 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 704|0;
+ $S = sp + 640|0;
+ $W = sp;
+ $scevgep = ((($md)) + 8|0);
+ dest=$S; src=$scevgep; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ $i$112 = 0;
+ while(1) {
+ $mul = $i$112 << 3;
+ $add$ptr = (($buf) + ($mul)|0);
+ $0 = HEAP8[$add$ptr>>0]|0;
+ $1 = $0&255;
+ $2 = (_bitshift64Shl(($1|0),0,56)|0);
+ $3 = (getTempRet0() | 0);
+ $arrayidx9 = ((($add$ptr)) + 1|0);
+ $4 = HEAP8[$arrayidx9>>0]|0;
+ $5 = $4&255;
+ $6 = (_bitshift64Shl(($5|0),0,48)|0);
+ $7 = (getTempRet0() | 0);
+ $8 = $6 | $2;
+ $9 = $7 | $3;
+ $arrayidx16 = ((($add$ptr)) + 2|0);
+ $10 = HEAP8[$arrayidx16>>0]|0;
+ $11 = $10&255;
+ $12 = (_bitshift64Shl(($11|0),0,40)|0);
+ $13 = (getTempRet0() | 0);
+ $14 = $8 | $12;
+ $15 = $9 | $13;
+ $arrayidx24 = ((($add$ptr)) + 3|0);
+ $16 = HEAP8[$arrayidx24>>0]|0;
+ $17 = $16&255;
+ $18 = $15 | $17;
+ $arrayidx32 = ((($add$ptr)) + 4|0);
+ $19 = HEAP8[$arrayidx32>>0]|0;
+ $20 = $19&255;
+ $21 = (_bitshift64Shl(($20|0),0,24)|0);
+ $22 = (getTempRet0() | 0);
+ $23 = $14 | $21;
+ $24 = $18 | $22;
+ $arrayidx40 = ((($add$ptr)) + 5|0);
+ $25 = HEAP8[$arrayidx40>>0]|0;
+ $26 = $25&255;
+ $27 = (_bitshift64Shl(($26|0),0,16)|0);
+ $28 = (getTempRet0() | 0);
+ $29 = $23 | $27;
+ $30 = $24 | $28;
+ $arrayidx48 = ((($add$ptr)) + 6|0);
+ $31 = HEAP8[$arrayidx48>>0]|0;
+ $32 = $31&255;
+ $33 = (_bitshift64Shl(($32|0),0,8)|0);
+ $34 = (getTempRet0() | 0);
+ $35 = $29 | $33;
+ $36 = $30 | $34;
+ $arrayidx56 = ((($add$ptr)) + 7|0);
+ $37 = HEAP8[$arrayidx56>>0]|0;
+ $38 = $37&255;
+ $39 = $35 | $38;
+ $arrayidx61 = (($W) + ($i$112<<3)|0);
+ $40 = $arrayidx61;
+ $41 = $40;
+ HEAP32[$41>>2] = $39;
+ $42 = (($40) + 4)|0;
+ $43 = $42;
+ HEAP32[$43>>2] = $36;
+ $inc63 = (($i$112) + 1)|0;
+ $exitcond14 = ($inc63|0)==(16);
+ if ($exitcond14) {
+ break;
+ } else {
+ $i$112 = $inc63;
+ }
+ }
+ $i$211 = 16;
+ while(1) {
+ $sub = (($i$211) + -2)|0;
+ $arrayidx69 = (($W) + ($sub<<3)|0);
+ $44 = $arrayidx69;
+ $45 = $44;
+ $46 = HEAP32[$45>>2]|0;
+ $47 = (($44) + 4)|0;
+ $48 = $47;
+ $49 = HEAP32[$48>>2]|0;
+ $50 = (_bitshift64Lshr(($46|0),($49|0),19)|0);
+ $51 = (getTempRet0() | 0);
+ $52 = (_bitshift64Shl(($46|0),($49|0),45)|0);
+ $53 = (getTempRet0() | 0);
+ $54 = $50 | $52;
+ $55 = $51 | $53;
+ $56 = (_bitshift64Lshr(($46|0),($49|0),61)|0);
+ $57 = (getTempRet0() | 0);
+ $58 = (_bitshift64Shl(($46|0),($49|0),3)|0);
+ $59 = (getTempRet0() | 0);
+ $60 = $56 | $58;
+ $61 = $57 | $59;
+ $62 = (_bitshift64Lshr(($46|0),($49|0),6)|0);
+ $63 = (getTempRet0() | 0);
+ $64 = $60 ^ $62;
+ $65 = $61 ^ $63;
+ $66 = $64 ^ $54;
+ $67 = $65 ^ $55;
+ $sub85 = (($i$211) + -7)|0;
+ $arrayidx86 = (($W) + ($sub85<<3)|0);
+ $68 = $arrayidx86;
+ $69 = $68;
+ $70 = HEAP32[$69>>2]|0;
+ $71 = (($68) + 4)|0;
+ $72 = $71;
+ $73 = HEAP32[$72>>2]|0;
+ $sub87 = (($i$211) + -15)|0;
+ $arrayidx88 = (($W) + ($sub87<<3)|0);
+ $74 = $arrayidx88;
+ $75 = $74;
+ $76 = HEAP32[$75>>2]|0;
+ $77 = (($74) + 4)|0;
+ $78 = $77;
+ $79 = HEAP32[$78>>2]|0;
+ $80 = (_bitshift64Lshr(($76|0),($79|0),1)|0);
+ $81 = (getTempRet0() | 0);
+ $82 = (_bitshift64Shl(($76|0),($79|0),63)|0);
+ $83 = (getTempRet0() | 0);
+ $84 = $80 | $82;
+ $85 = $81 | $83;
+ $86 = (_bitshift64Lshr(($76|0),($79|0),8)|0);
+ $87 = (getTempRet0() | 0);
+ $88 = (_bitshift64Shl(($76|0),($79|0),56)|0);
+ $89 = (getTempRet0() | 0);
+ $90 = $86 | $88;
+ $91 = $87 | $89;
+ $92 = (_bitshift64Lshr(($76|0),($79|0),7)|0);
+ $93 = (getTempRet0() | 0);
+ $94 = $90 ^ $92;
+ $95 = $91 ^ $93;
+ $96 = $94 ^ $84;
+ $97 = $95 ^ $85;
+ $sub107 = (($i$211) + -16)|0;
+ $arrayidx108 = (($W) + ($sub107<<3)|0);
+ $98 = $arrayidx108;
+ $99 = $98;
+ $100 = HEAP32[$99>>2]|0;
+ $101 = (($98) + 4)|0;
+ $102 = $101;
+ $103 = HEAP32[$102>>2]|0;
+ $104 = (_i64Add(($100|0),($103|0),($70|0),($73|0))|0);
+ $105 = (getTempRet0() | 0);
+ $106 = (_i64Add(($104|0),($105|0),($66|0),($67|0))|0);
+ $107 = (getTempRet0() | 0);
+ $108 = (_i64Add(($106|0),($107|0),($96|0),($97|0))|0);
+ $109 = (getTempRet0() | 0);
+ $arrayidx110 = (($W) + ($i$211<<3)|0);
+ $110 = $arrayidx110;
+ $111 = $110;
+ HEAP32[$111>>2] = $108;
+ $112 = (($110) + 4)|0;
+ $113 = $112;
+ HEAP32[$113>>2] = $109;
+ $inc112 = (($i$211) + 1)|0;
+ $exitcond = ($inc112|0)==(80);
+ if ($exitcond) {
+ break;
+ } else {
+ $i$211 = $inc112;
+ }
+ }
+ $arrayidx118 = ((($S)) + 56|0);
+ $arrayidx119 = ((($S)) + 32|0);
+ $arrayidx137 = ((($S)) + 48|0);
+ $arrayidx139 = ((($S)) + 40|0);
+ $arrayidx169 = ((($S)) + 8|0);
+ $arrayidx171 = ((($S)) + 16|0);
+ $arrayidx178 = ((($S)) + 24|0);
+ $114 = $arrayidx118;
+ $115 = $114;
+ $116 = HEAP32[$115>>2]|0;
+ $117 = (($114) + 4)|0;
+ $118 = $117;
+ $119 = HEAP32[$118>>2]|0;
+ $120 = $arrayidx119;
+ $121 = $120;
+ $122 = HEAP32[$121>>2]|0;
+ $123 = (($120) + 4)|0;
+ $124 = $123;
+ $125 = HEAP32[$124>>2]|0;
+ $126 = $arrayidx137;
+ $127 = $126;
+ $128 = HEAP32[$127>>2]|0;
+ $129 = (($126) + 4)|0;
+ $130 = $129;
+ $131 = HEAP32[$130>>2]|0;
+ $132 = $arrayidx139;
+ $133 = $132;
+ $134 = HEAP32[$133>>2]|0;
+ $135 = (($132) + 4)|0;
+ $136 = $135;
+ $137 = HEAP32[$136>>2]|0;
+ $138 = $S;
+ $139 = $138;
+ $140 = HEAP32[$139>>2]|0;
+ $141 = (($138) + 4)|0;
+ $142 = $141;
+ $143 = HEAP32[$142>>2]|0;
+ $144 = $arrayidx169;
+ $145 = $144;
+ $146 = HEAP32[$145>>2]|0;
+ $147 = (($144) + 4)|0;
+ $148 = $147;
+ $149 = HEAP32[$148>>2]|0;
+ $150 = $arrayidx171;
+ $151 = $150;
+ $152 = HEAP32[$151>>2]|0;
+ $153 = (($150) + 4)|0;
+ $154 = $153;
+ $155 = HEAP32[$154>>2]|0;
+ $156 = $arrayidx178;
+ $157 = $156;
+ $158 = HEAP32[$157>>2]|0;
+ $159 = (($156) + 4)|0;
+ $160 = $159;
+ $161 = HEAP32[$160>>2]|0;
+ $162 = $122;$163 = $125;$187 = $134;$188 = $128;$190 = $137;$191 = $131;$208 = $116;$209 = $119;$218 = $140;$219 = $143;$243 = $146;$245 = $149;$247 = $152;$249 = $155;$254 = $158;$255 = $161;$i$32 = 0;
+ while(1) {
+ $164 = (_bitshift64Lshr(($162|0),($163|0),14)|0);
+ $165 = (getTempRet0() | 0);
+ $166 = (_bitshift64Shl(($162|0),($163|0),50)|0);
+ $167 = (getTempRet0() | 0);
+ $168 = $164 | $166;
+ $169 = $165 | $167;
+ $170 = (_bitshift64Lshr(($162|0),($163|0),18)|0);
+ $171 = (getTempRet0() | 0);
+ $172 = (_bitshift64Shl(($162|0),($163|0),46)|0);
+ $173 = (getTempRet0() | 0);
+ $174 = $170 | $172;
+ $175 = $171 | $173;
+ $176 = $168 ^ $174;
+ $177 = $169 ^ $175;
+ $178 = (_bitshift64Lshr(($162|0),($163|0),41)|0);
+ $179 = (getTempRet0() | 0);
+ $180 = (_bitshift64Shl(($162|0),($163|0),23)|0);
+ $181 = (getTempRet0() | 0);
+ $182 = $178 | $180;
+ $183 = $179 | $181;
+ $184 = $176 ^ $182;
+ $185 = $177 ^ $183;
+ $186 = $187 ^ $188;
+ $189 = $190 ^ $191;
+ $192 = $186 & $162;
+ $193 = $189 & $163;
+ $194 = $192 ^ $188;
+ $195 = $193 ^ $191;
+ $arrayidx146 = (31840 + ($i$32<<3)|0);
+ $196 = $arrayidx146;
+ $197 = $196;
+ $198 = HEAP32[$197>>2]|0;
+ $199 = (($196) + 4)|0;
+ $200 = $199;
+ $201 = HEAP32[$200>>2]|0;
+ $arrayidx149 = (($W) + ($i$32<<3)|0);
+ $202 = $arrayidx149;
+ $203 = $202;
+ $204 = HEAP32[$203>>2]|0;
+ $205 = (($202) + 4)|0;
+ $206 = $205;
+ $207 = HEAP32[$206>>2]|0;
+ $210 = (_i64Add(($198|0),($201|0),($208|0),($209|0))|0);
+ $211 = (getTempRet0() | 0);
+ $212 = (_i64Add(($210|0),($211|0),($184|0),($185|0))|0);
+ $213 = (getTempRet0() | 0);
+ $214 = (_i64Add(($212|0),($213|0),($204|0),($207|0))|0);
+ $215 = (getTempRet0() | 0);
+ $216 = (_i64Add(($214|0),($215|0),($194|0),($195|0))|0);
+ $217 = (getTempRet0() | 0);
+ $220 = (_bitshift64Lshr(($218|0),($219|0),28)|0);
+ $221 = (getTempRet0() | 0);
+ $222 = (_bitshift64Shl(($218|0),($219|0),36)|0);
+ $223 = (getTempRet0() | 0);
+ $224 = $220 | $222;
+ $225 = $221 | $223;
+ $226 = (_bitshift64Lshr(($218|0),($219|0),34)|0);
+ $227 = (getTempRet0() | 0);
+ $228 = (_bitshift64Shl(($218|0),($219|0),30)|0);
+ $229 = (getTempRet0() | 0);
+ $230 = $226 | $228;
+ $231 = $227 | $229;
+ $232 = $224 ^ $230;
+ $233 = $225 ^ $231;
+ $234 = (_bitshift64Lshr(($218|0),($219|0),39)|0);
+ $235 = (getTempRet0() | 0);
+ $236 = (_bitshift64Shl(($218|0),($219|0),25)|0);
+ $237 = (getTempRet0() | 0);
+ $238 = $234 | $236;
+ $239 = $235 | $237;
+ $240 = $232 ^ $238;
+ $241 = $233 ^ $239;
+ $242 = $243 | $218;
+ $244 = $245 | $219;
+ $246 = $242 & $247;
+ $248 = $244 & $249;
+ $250 = $243 & $218;
+ $251 = $245 & $219;
+ $252 = $246 | $250;
+ $253 = $248 | $251;
+ $256 = (_i64Add(($254|0),($255|0),($216|0),($217|0))|0);
+ $257 = (getTempRet0() | 0);
+ $258 = (_i64Add(($252|0),($253|0),($216|0),($217|0))|0);
+ $259 = (getTempRet0() | 0);
+ $260 = (_i64Add(($258|0),($259|0),($240|0),($241|0))|0);
+ $261 = (getTempRet0() | 0);
+ $262 = (_bitshift64Lshr(($256|0),($257|0),14)|0);
+ $263 = (getTempRet0() | 0);
+ $264 = (_bitshift64Shl(($256|0),($257|0),50)|0);
+ $265 = (getTempRet0() | 0);
+ $266 = $262 | $264;
+ $267 = $263 | $265;
+ $268 = (_bitshift64Lshr(($256|0),($257|0),18)|0);
+ $269 = (getTempRet0() | 0);
+ $270 = (_bitshift64Shl(($256|0),($257|0),46)|0);
+ $271 = (getTempRet0() | 0);
+ $272 = $268 | $270;
+ $273 = $269 | $271;
+ $274 = $266 ^ $272;
+ $275 = $267 ^ $273;
+ $276 = (_bitshift64Lshr(($256|0),($257|0),41)|0);
+ $277 = (getTempRet0() | 0);
+ $278 = (_bitshift64Shl(($256|0),($257|0),23)|0);
+ $279 = (getTempRet0() | 0);
+ $280 = $276 | $278;
+ $281 = $277 | $279;
+ $282 = $274 ^ $280;
+ $283 = $275 ^ $281;
+ $284 = $187 ^ $162;
+ $285 = $190 ^ $163;
+ $286 = $256 & $284;
+ $287 = $257 & $285;
+ $288 = $286 ^ $187;
+ $289 = $287 ^ $190;
+ $add209 = $i$32 | 1;
+ $arrayidx210 = (31840 + ($add209<<3)|0);
+ $290 = $arrayidx210;
+ $291 = $290;
+ $292 = HEAP32[$291>>2]|0;
+ $293 = (($290) + 4)|0;
+ $294 = $293;
+ $295 = HEAP32[$294>>2]|0;
+ $arrayidx213 = (($W) + ($add209<<3)|0);
+ $296 = $arrayidx213;
+ $297 = $296;
+ $298 = HEAP32[$297>>2]|0;
+ $299 = (($296) + 4)|0;
+ $300 = $299;
+ $301 = HEAP32[$300>>2]|0;
+ $302 = (_i64Add(($288|0),($289|0),($188|0),($191|0))|0);
+ $303 = (getTempRet0() | 0);
+ $304 = (_i64Add(($302|0),($303|0),($292|0),($295|0))|0);
+ $305 = (getTempRet0() | 0);
+ $306 = (_i64Add(($304|0),($305|0),($298|0),($301|0))|0);
+ $307 = (getTempRet0() | 0);
+ $308 = (_i64Add(($306|0),($307|0),($282|0),($283|0))|0);
+ $309 = (getTempRet0() | 0);
+ $310 = (_bitshift64Lshr(($260|0),($261|0),28)|0);
+ $311 = (getTempRet0() | 0);
+ $312 = (_bitshift64Shl(($260|0),($261|0),36)|0);
+ $313 = (getTempRet0() | 0);
+ $314 = $310 | $312;
+ $315 = $311 | $313;
+ $316 = (_bitshift64Lshr(($260|0),($261|0),34)|0);
+ $317 = (getTempRet0() | 0);
+ $318 = (_bitshift64Shl(($260|0),($261|0),30)|0);
+ $319 = (getTempRet0() | 0);
+ $320 = $316 | $318;
+ $321 = $317 | $319;
+ $322 = $314 ^ $320;
+ $323 = $315 ^ $321;
+ $324 = (_bitshift64Lshr(($260|0),($261|0),39)|0);
+ $325 = (getTempRet0() | 0);
+ $326 = (_bitshift64Shl(($260|0),($261|0),25)|0);
+ $327 = (getTempRet0() | 0);
+ $328 = $324 | $326;
+ $329 = $325 | $327;
+ $330 = $322 ^ $328;
+ $331 = $323 ^ $329;
+ $332 = $260 | $218;
+ $333 = $261 | $219;
+ $334 = $332 & $243;
+ $335 = $333 & $245;
+ $336 = $260 & $218;
+ $337 = $261 & $219;
+ $338 = $334 | $336;
+ $339 = $335 | $337;
+ $340 = (_i64Add(($330|0),($331|0),($338|0),($339|0))|0);
+ $341 = (getTempRet0() | 0);
+ $342 = (_i64Add(($308|0),($309|0),($247|0),($249|0))|0);
+ $343 = (getTempRet0() | 0);
+ $344 = (_i64Add(($340|0),($341|0),($308|0),($309|0))|0);
+ $345 = (getTempRet0() | 0);
+ $346 = (_bitshift64Lshr(($342|0),($343|0),14)|0);
+ $347 = (getTempRet0() | 0);
+ $348 = (_bitshift64Shl(($342|0),($343|0),50)|0);
+ $349 = (getTempRet0() | 0);
+ $350 = $346 | $348;
+ $351 = $347 | $349;
+ $352 = (_bitshift64Lshr(($342|0),($343|0),18)|0);
+ $353 = (getTempRet0() | 0);
+ $354 = (_bitshift64Shl(($342|0),($343|0),46)|0);
+ $355 = (getTempRet0() | 0);
+ $356 = $352 | $354;
+ $357 = $353 | $355;
+ $358 = $350 ^ $356;
+ $359 = $351 ^ $357;
+ $360 = (_bitshift64Lshr(($342|0),($343|0),41)|0);
+ $361 = (getTempRet0() | 0);
+ $362 = (_bitshift64Shl(($342|0),($343|0),23)|0);
+ $363 = (getTempRet0() | 0);
+ $364 = $360 | $362;
+ $365 = $361 | $363;
+ $366 = $358 ^ $364;
+ $367 = $359 ^ $365;
+ $368 = $256 ^ $162;
+ $369 = $257 ^ $163;
+ $370 = $342 & $368;
+ $371 = $343 & $369;
+ $372 = $370 ^ $162;
+ $373 = $371 ^ $163;
+ $add273 = $i$32 | 2;
+ $arrayidx274 = (31840 + ($add273<<3)|0);
+ $374 = $arrayidx274;
+ $375 = $374;
+ $376 = HEAP32[$375>>2]|0;
+ $377 = (($374) + 4)|0;
+ $378 = $377;
+ $379 = HEAP32[$378>>2]|0;
+ $arrayidx277 = (($W) + ($add273<<3)|0);
+ $380 = $arrayidx277;
+ $381 = $380;
+ $382 = HEAP32[$381>>2]|0;
+ $383 = (($380) + 4)|0;
+ $384 = $383;
+ $385 = HEAP32[$384>>2]|0;
+ $386 = (_i64Add(($376|0),($379|0),($187|0),($190|0))|0);
+ $387 = (getTempRet0() | 0);
+ $388 = (_i64Add(($386|0),($387|0),($382|0),($385|0))|0);
+ $389 = (getTempRet0() | 0);
+ $390 = (_i64Add(($388|0),($389|0),($372|0),($373|0))|0);
+ $391 = (getTempRet0() | 0);
+ $392 = (_i64Add(($390|0),($391|0),($366|0),($367|0))|0);
+ $393 = (getTempRet0() | 0);
+ $394 = (_bitshift64Lshr(($344|0),($345|0),28)|0);
+ $395 = (getTempRet0() | 0);
+ $396 = (_bitshift64Shl(($344|0),($345|0),36)|0);
+ $397 = (getTempRet0() | 0);
+ $398 = $394 | $396;
+ $399 = $395 | $397;
+ $400 = (_bitshift64Lshr(($344|0),($345|0),34)|0);
+ $401 = (getTempRet0() | 0);
+ $402 = (_bitshift64Shl(($344|0),($345|0),30)|0);
+ $403 = (getTempRet0() | 0);
+ $404 = $400 | $402;
+ $405 = $401 | $403;
+ $406 = $398 ^ $404;
+ $407 = $399 ^ $405;
+ $408 = (_bitshift64Lshr(($344|0),($345|0),39)|0);
+ $409 = (getTempRet0() | 0);
+ $410 = (_bitshift64Shl(($344|0),($345|0),25)|0);
+ $411 = (getTempRet0() | 0);
+ $412 = $408 | $410;
+ $413 = $409 | $411;
+ $414 = $406 ^ $412;
+ $415 = $407 ^ $413;
+ $416 = $344 | $260;
+ $417 = $345 | $261;
+ $418 = $416 & $218;
+ $419 = $417 & $219;
+ $420 = $344 & $260;
+ $421 = $345 & $261;
+ $422 = $418 | $420;
+ $423 = $419 | $421;
+ $424 = (_i64Add(($414|0),($415|0),($422|0),($423|0))|0);
+ $425 = (getTempRet0() | 0);
+ $426 = (_i64Add(($392|0),($393|0),($243|0),($245|0))|0);
+ $427 = (getTempRet0() | 0);
+ $428 = (_i64Add(($424|0),($425|0),($392|0),($393|0))|0);
+ $429 = (getTempRet0() | 0);
+ $430 = (_bitshift64Lshr(($426|0),($427|0),14)|0);
+ $431 = (getTempRet0() | 0);
+ $432 = (_bitshift64Shl(($426|0),($427|0),50)|0);
+ $433 = (getTempRet0() | 0);
+ $434 = $430 | $432;
+ $435 = $431 | $433;
+ $436 = (_bitshift64Lshr(($426|0),($427|0),18)|0);
+ $437 = (getTempRet0() | 0);
+ $438 = (_bitshift64Shl(($426|0),($427|0),46)|0);
+ $439 = (getTempRet0() | 0);
+ $440 = $436 | $438;
+ $441 = $437 | $439;
+ $442 = $434 ^ $440;
+ $443 = $435 ^ $441;
+ $444 = (_bitshift64Lshr(($426|0),($427|0),41)|0);
+ $445 = (getTempRet0() | 0);
+ $446 = (_bitshift64Shl(($426|0),($427|0),23)|0);
+ $447 = (getTempRet0() | 0);
+ $448 = $444 | $446;
+ $449 = $445 | $447;
+ $450 = $442 ^ $448;
+ $451 = $443 ^ $449;
+ $452 = $342 ^ $256;
+ $453 = $343 ^ $257;
+ $454 = $426 & $452;
+ $455 = $427 & $453;
+ $456 = $454 ^ $256;
+ $457 = $455 ^ $257;
+ $add337 = $i$32 | 3;
+ $arrayidx338 = (31840 + ($add337<<3)|0);
+ $458 = $arrayidx338;
+ $459 = $458;
+ $460 = HEAP32[$459>>2]|0;
+ $461 = (($458) + 4)|0;
+ $462 = $461;
+ $463 = HEAP32[$462>>2]|0;
+ $arrayidx341 = (($W) + ($add337<<3)|0);
+ $464 = $arrayidx341;
+ $465 = $464;
+ $466 = HEAP32[$465>>2]|0;
+ $467 = (($464) + 4)|0;
+ $468 = $467;
+ $469 = HEAP32[$468>>2]|0;
+ $470 = (_i64Add(($460|0),($463|0),($162|0),($163|0))|0);
+ $471 = (getTempRet0() | 0);
+ $472 = (_i64Add(($470|0),($471|0),($466|0),($469|0))|0);
+ $473 = (getTempRet0() | 0);
+ $474 = (_i64Add(($472|0),($473|0),($456|0),($457|0))|0);
+ $475 = (getTempRet0() | 0);
+ $476 = (_i64Add(($474|0),($475|0),($450|0),($451|0))|0);
+ $477 = (getTempRet0() | 0);
+ $478 = (_bitshift64Lshr(($428|0),($429|0),28)|0);
+ $479 = (getTempRet0() | 0);
+ $480 = (_bitshift64Shl(($428|0),($429|0),36)|0);
+ $481 = (getTempRet0() | 0);
+ $482 = $478 | $480;
+ $483 = $479 | $481;
+ $484 = (_bitshift64Lshr(($428|0),($429|0),34)|0);
+ $485 = (getTempRet0() | 0);
+ $486 = (_bitshift64Shl(($428|0),($429|0),30)|0);
+ $487 = (getTempRet0() | 0);
+ $488 = $484 | $486;
+ $489 = $485 | $487;
+ $490 = $482 ^ $488;
+ $491 = $483 ^ $489;
+ $492 = (_bitshift64Lshr(($428|0),($429|0),39)|0);
+ $493 = (getTempRet0() | 0);
+ $494 = (_bitshift64Shl(($428|0),($429|0),25)|0);
+ $495 = (getTempRet0() | 0);
+ $496 = $492 | $494;
+ $497 = $493 | $495;
+ $498 = $490 ^ $496;
+ $499 = $491 ^ $497;
+ $500 = $428 | $344;
+ $501 = $429 | $345;
+ $502 = $500 & $260;
+ $503 = $501 & $261;
+ $504 = $428 & $344;
+ $505 = $429 & $345;
+ $506 = $502 | $504;
+ $507 = $503 | $505;
+ $508 = (_i64Add(($498|0),($499|0),($506|0),($507|0))|0);
+ $509 = (getTempRet0() | 0);
+ $510 = (_i64Add(($476|0),($477|0),($218|0),($219|0))|0);
+ $511 = (getTempRet0() | 0);
+ $512 = (_i64Add(($508|0),($509|0),($476|0),($477|0))|0);
+ $513 = (getTempRet0() | 0);
+ $514 = (_bitshift64Lshr(($510|0),($511|0),14)|0);
+ $515 = (getTempRet0() | 0);
+ $516 = (_bitshift64Shl(($510|0),($511|0),50)|0);
+ $517 = (getTempRet0() | 0);
+ $518 = $514 | $516;
+ $519 = $515 | $517;
+ $520 = (_bitshift64Lshr(($510|0),($511|0),18)|0);
+ $521 = (getTempRet0() | 0);
+ $522 = (_bitshift64Shl(($510|0),($511|0),46)|0);
+ $523 = (getTempRet0() | 0);
+ $524 = $520 | $522;
+ $525 = $521 | $523;
+ $526 = $518 ^ $524;
+ $527 = $519 ^ $525;
+ $528 = (_bitshift64Lshr(($510|0),($511|0),41)|0);
+ $529 = (getTempRet0() | 0);
+ $530 = (_bitshift64Shl(($510|0),($511|0),23)|0);
+ $531 = (getTempRet0() | 0);
+ $532 = $528 | $530;
+ $533 = $529 | $531;
+ $534 = $526 ^ $532;
+ $535 = $527 ^ $533;
+ $536 = $426 ^ $342;
+ $537 = $427 ^ $343;
+ $538 = $510 & $536;
+ $539 = $511 & $537;
+ $540 = $538 ^ $342;
+ $541 = $539 ^ $343;
+ $add401 = $i$32 | 4;
+ $arrayidx402 = (31840 + ($add401<<3)|0);
+ $542 = $arrayidx402;
+ $543 = $542;
+ $544 = HEAP32[$543>>2]|0;
+ $545 = (($542) + 4)|0;
+ $546 = $545;
+ $547 = HEAP32[$546>>2]|0;
+ $arrayidx405 = (($W) + ($add401<<3)|0);
+ $548 = $arrayidx405;
+ $549 = $548;
+ $550 = HEAP32[$549>>2]|0;
+ $551 = (($548) + 4)|0;
+ $552 = $551;
+ $553 = HEAP32[$552>>2]|0;
+ $554 = (_i64Add(($544|0),($547|0),($256|0),($257|0))|0);
+ $555 = (getTempRet0() | 0);
+ $556 = (_i64Add(($554|0),($555|0),($550|0),($553|0))|0);
+ $557 = (getTempRet0() | 0);
+ $558 = (_i64Add(($556|0),($557|0),($540|0),($541|0))|0);
+ $559 = (getTempRet0() | 0);
+ $560 = (_i64Add(($558|0),($559|0),($534|0),($535|0))|0);
+ $561 = (getTempRet0() | 0);
+ $562 = (_bitshift64Lshr(($512|0),($513|0),28)|0);
+ $563 = (getTempRet0() | 0);
+ $564 = (_bitshift64Shl(($512|0),($513|0),36)|0);
+ $565 = (getTempRet0() | 0);
+ $566 = $562 | $564;
+ $567 = $563 | $565;
+ $568 = (_bitshift64Lshr(($512|0),($513|0),34)|0);
+ $569 = (getTempRet0() | 0);
+ $570 = (_bitshift64Shl(($512|0),($513|0),30)|0);
+ $571 = (getTempRet0() | 0);
+ $572 = $568 | $570;
+ $573 = $569 | $571;
+ $574 = $566 ^ $572;
+ $575 = $567 ^ $573;
+ $576 = (_bitshift64Lshr(($512|0),($513|0),39)|0);
+ $577 = (getTempRet0() | 0);
+ $578 = (_bitshift64Shl(($512|0),($513|0),25)|0);
+ $579 = (getTempRet0() | 0);
+ $580 = $576 | $578;
+ $581 = $577 | $579;
+ $582 = $574 ^ $580;
+ $583 = $575 ^ $581;
+ $584 = $512 | $428;
+ $585 = $513 | $429;
+ $586 = $584 & $344;
+ $587 = $585 & $345;
+ $588 = $512 & $428;
+ $589 = $513 & $429;
+ $590 = $586 | $588;
+ $591 = $587 | $589;
+ $592 = (_i64Add(($582|0),($583|0),($590|0),($591|0))|0);
+ $593 = (getTempRet0() | 0);
+ $594 = (_i64Add(($560|0),($561|0),($260|0),($261|0))|0);
+ $595 = (getTempRet0() | 0);
+ $596 = (_i64Add(($592|0),($593|0),($560|0),($561|0))|0);
+ $597 = (getTempRet0() | 0);
+ $598 = (_bitshift64Lshr(($594|0),($595|0),14)|0);
+ $599 = (getTempRet0() | 0);
+ $600 = (_bitshift64Shl(($594|0),($595|0),50)|0);
+ $601 = (getTempRet0() | 0);
+ $602 = $598 | $600;
+ $603 = $599 | $601;
+ $604 = (_bitshift64Lshr(($594|0),($595|0),18)|0);
+ $605 = (getTempRet0() | 0);
+ $606 = (_bitshift64Shl(($594|0),($595|0),46)|0);
+ $607 = (getTempRet0() | 0);
+ $608 = $604 | $606;
+ $609 = $605 | $607;
+ $610 = $602 ^ $608;
+ $611 = $603 ^ $609;
+ $612 = (_bitshift64Lshr(($594|0),($595|0),41)|0);
+ $613 = (getTempRet0() | 0);
+ $614 = (_bitshift64Shl(($594|0),($595|0),23)|0);
+ $615 = (getTempRet0() | 0);
+ $616 = $612 | $614;
+ $617 = $613 | $615;
+ $618 = $610 ^ $616;
+ $619 = $611 ^ $617;
+ $620 = $510 ^ $426;
+ $621 = $511 ^ $427;
+ $622 = $594 & $620;
+ $623 = $595 & $621;
+ $624 = $622 ^ $426;
+ $625 = $623 ^ $427;
+ $add465 = $i$32 | 5;
+ $arrayidx466 = (31840 + ($add465<<3)|0);
+ $626 = $arrayidx466;
+ $627 = $626;
+ $628 = HEAP32[$627>>2]|0;
+ $629 = (($626) + 4)|0;
+ $630 = $629;
+ $631 = HEAP32[$630>>2]|0;
+ $arrayidx469 = (($W) + ($add465<<3)|0);
+ $632 = $arrayidx469;
+ $633 = $632;
+ $634 = HEAP32[$633>>2]|0;
+ $635 = (($632) + 4)|0;
+ $636 = $635;
+ $637 = HEAP32[$636>>2]|0;
+ $638 = (_i64Add(($628|0),($631|0),($342|0),($343|0))|0);
+ $639 = (getTempRet0() | 0);
+ $640 = (_i64Add(($638|0),($639|0),($634|0),($637|0))|0);
+ $641 = (getTempRet0() | 0);
+ $642 = (_i64Add(($640|0),($641|0),($624|0),($625|0))|0);
+ $643 = (getTempRet0() | 0);
+ $644 = (_i64Add(($642|0),($643|0),($618|0),($619|0))|0);
+ $645 = (getTempRet0() | 0);
+ $646 = (_bitshift64Lshr(($596|0),($597|0),28)|0);
+ $647 = (getTempRet0() | 0);
+ $648 = (_bitshift64Shl(($596|0),($597|0),36)|0);
+ $649 = (getTempRet0() | 0);
+ $650 = $646 | $648;
+ $651 = $647 | $649;
+ $652 = (_bitshift64Lshr(($596|0),($597|0),34)|0);
+ $653 = (getTempRet0() | 0);
+ $654 = (_bitshift64Shl(($596|0),($597|0),30)|0);
+ $655 = (getTempRet0() | 0);
+ $656 = $652 | $654;
+ $657 = $653 | $655;
+ $658 = $650 ^ $656;
+ $659 = $651 ^ $657;
+ $660 = (_bitshift64Lshr(($596|0),($597|0),39)|0);
+ $661 = (getTempRet0() | 0);
+ $662 = (_bitshift64Shl(($596|0),($597|0),25)|0);
+ $663 = (getTempRet0() | 0);
+ $664 = $660 | $662;
+ $665 = $661 | $663;
+ $666 = $658 ^ $664;
+ $667 = $659 ^ $665;
+ $668 = $596 | $512;
+ $669 = $597 | $513;
+ $670 = $668 & $428;
+ $671 = $669 & $429;
+ $672 = $596 & $512;
+ $673 = $597 & $513;
+ $674 = $670 | $672;
+ $675 = $671 | $673;
+ $676 = (_i64Add(($666|0),($667|0),($674|0),($675|0))|0);
+ $677 = (getTempRet0() | 0);
+ $678 = (_i64Add(($644|0),($645|0),($344|0),($345|0))|0);
+ $679 = (getTempRet0() | 0);
+ $680 = (_i64Add(($676|0),($677|0),($644|0),($645|0))|0);
+ $681 = (getTempRet0() | 0);
+ $682 = (_bitshift64Lshr(($678|0),($679|0),14)|0);
+ $683 = (getTempRet0() | 0);
+ $684 = (_bitshift64Shl(($678|0),($679|0),50)|0);
+ $685 = (getTempRet0() | 0);
+ $686 = $682 | $684;
+ $687 = $683 | $685;
+ $688 = (_bitshift64Lshr(($678|0),($679|0),18)|0);
+ $689 = (getTempRet0() | 0);
+ $690 = (_bitshift64Shl(($678|0),($679|0),46)|0);
+ $691 = (getTempRet0() | 0);
+ $692 = $688 | $690;
+ $693 = $689 | $691;
+ $694 = $686 ^ $692;
+ $695 = $687 ^ $693;
+ $696 = (_bitshift64Lshr(($678|0),($679|0),41)|0);
+ $697 = (getTempRet0() | 0);
+ $698 = (_bitshift64Shl(($678|0),($679|0),23)|0);
+ $699 = (getTempRet0() | 0);
+ $700 = $696 | $698;
+ $701 = $697 | $699;
+ $702 = $694 ^ $700;
+ $703 = $695 ^ $701;
+ $704 = $594 ^ $510;
+ $705 = $595 ^ $511;
+ $706 = $678 & $704;
+ $707 = $679 & $705;
+ $708 = $706 ^ $510;
+ $709 = $707 ^ $511;
+ $add529 = $i$32 | 6;
+ $arrayidx530 = (31840 + ($add529<<3)|0);
+ $710 = $arrayidx530;
+ $711 = $710;
+ $712 = HEAP32[$711>>2]|0;
+ $713 = (($710) + 4)|0;
+ $714 = $713;
+ $715 = HEAP32[$714>>2]|0;
+ $arrayidx533 = (($W) + ($add529<<3)|0);
+ $716 = $arrayidx533;
+ $717 = $716;
+ $718 = HEAP32[$717>>2]|0;
+ $719 = (($716) + 4)|0;
+ $720 = $719;
+ $721 = HEAP32[$720>>2]|0;
+ $722 = (_i64Add(($712|0),($715|0),($426|0),($427|0))|0);
+ $723 = (getTempRet0() | 0);
+ $724 = (_i64Add(($722|0),($723|0),($718|0),($721|0))|0);
+ $725 = (getTempRet0() | 0);
+ $726 = (_i64Add(($724|0),($725|0),($708|0),($709|0))|0);
+ $727 = (getTempRet0() | 0);
+ $728 = (_i64Add(($726|0),($727|0),($702|0),($703|0))|0);
+ $729 = (getTempRet0() | 0);
+ $730 = (_bitshift64Lshr(($680|0),($681|0),28)|0);
+ $731 = (getTempRet0() | 0);
+ $732 = (_bitshift64Shl(($680|0),($681|0),36)|0);
+ $733 = (getTempRet0() | 0);
+ $734 = $730 | $732;
+ $735 = $731 | $733;
+ $736 = (_bitshift64Lshr(($680|0),($681|0),34)|0);
+ $737 = (getTempRet0() | 0);
+ $738 = (_bitshift64Shl(($680|0),($681|0),30)|0);
+ $739 = (getTempRet0() | 0);
+ $740 = $736 | $738;
+ $741 = $737 | $739;
+ $742 = $734 ^ $740;
+ $743 = $735 ^ $741;
+ $744 = (_bitshift64Lshr(($680|0),($681|0),39)|0);
+ $745 = (getTempRet0() | 0);
+ $746 = (_bitshift64Shl(($680|0),($681|0),25)|0);
+ $747 = (getTempRet0() | 0);
+ $748 = $744 | $746;
+ $749 = $745 | $747;
+ $750 = $742 ^ $748;
+ $751 = $743 ^ $749;
+ $752 = $680 | $596;
+ $753 = $681 | $597;
+ $754 = $752 & $512;
+ $755 = $753 & $513;
+ $756 = $680 & $596;
+ $757 = $681 & $597;
+ $758 = $754 | $756;
+ $759 = $755 | $757;
+ $760 = (_i64Add(($750|0),($751|0),($758|0),($759|0))|0);
+ $761 = (getTempRet0() | 0);
+ $762 = (_i64Add(($728|0),($729|0),($428|0),($429|0))|0);
+ $763 = (getTempRet0() | 0);
+ $764 = (_i64Add(($760|0),($761|0),($728|0),($729|0))|0);
+ $765 = (getTempRet0() | 0);
+ $766 = (_bitshift64Lshr(($762|0),($763|0),14)|0);
+ $767 = (getTempRet0() | 0);
+ $768 = (_bitshift64Shl(($762|0),($763|0),50)|0);
+ $769 = (getTempRet0() | 0);
+ $770 = $766 | $768;
+ $771 = $767 | $769;
+ $772 = (_bitshift64Lshr(($762|0),($763|0),18)|0);
+ $773 = (getTempRet0() | 0);
+ $774 = (_bitshift64Shl(($762|0),($763|0),46)|0);
+ $775 = (getTempRet0() | 0);
+ $776 = $772 | $774;
+ $777 = $773 | $775;
+ $778 = $770 ^ $776;
+ $779 = $771 ^ $777;
+ $780 = (_bitshift64Lshr(($762|0),($763|0),41)|0);
+ $781 = (getTempRet0() | 0);
+ $782 = (_bitshift64Shl(($762|0),($763|0),23)|0);
+ $783 = (getTempRet0() | 0);
+ $784 = $780 | $782;
+ $785 = $781 | $783;
+ $786 = $778 ^ $784;
+ $787 = $779 ^ $785;
+ $788 = $678 ^ $594;
+ $789 = $679 ^ $595;
+ $790 = $762 & $788;
+ $791 = $763 & $789;
+ $792 = $790 ^ $594;
+ $793 = $791 ^ $595;
+ $add593 = $i$32 | 7;
+ $arrayidx594 = (31840 + ($add593<<3)|0);
+ $794 = $arrayidx594;
+ $795 = $794;
+ $796 = HEAP32[$795>>2]|0;
+ $797 = (($794) + 4)|0;
+ $798 = $797;
+ $799 = HEAP32[$798>>2]|0;
+ $arrayidx597 = (($W) + ($add593<<3)|0);
+ $800 = $arrayidx597;
+ $801 = $800;
+ $802 = HEAP32[$801>>2]|0;
+ $803 = (($800) + 4)|0;
+ $804 = $803;
+ $805 = HEAP32[$804>>2]|0;
+ $806 = (_i64Add(($510|0),($511|0),($796|0),($799|0))|0);
+ $807 = (getTempRet0() | 0);
+ $808 = (_i64Add(($806|0),($807|0),($802|0),($805|0))|0);
+ $809 = (getTempRet0() | 0);
+ $810 = (_i64Add(($808|0),($809|0),($792|0),($793|0))|0);
+ $811 = (getTempRet0() | 0);
+ $812 = (_i64Add(($810|0),($811|0),($786|0),($787|0))|0);
+ $813 = (getTempRet0() | 0);
+ $814 = (_bitshift64Lshr(($764|0),($765|0),28)|0);
+ $815 = (getTempRet0() | 0);
+ $816 = (_bitshift64Shl(($764|0),($765|0),36)|0);
+ $817 = (getTempRet0() | 0);
+ $818 = $814 | $816;
+ $819 = $815 | $817;
+ $820 = (_bitshift64Lshr(($764|0),($765|0),34)|0);
+ $821 = (getTempRet0() | 0);
+ $822 = (_bitshift64Shl(($764|0),($765|0),30)|0);
+ $823 = (getTempRet0() | 0);
+ $824 = $820 | $822;
+ $825 = $821 | $823;
+ $826 = $818 ^ $824;
+ $827 = $819 ^ $825;
+ $828 = (_bitshift64Lshr(($764|0),($765|0),39)|0);
+ $829 = (getTempRet0() | 0);
+ $830 = (_bitshift64Shl(($764|0),($765|0),25)|0);
+ $831 = (getTempRet0() | 0);
+ $832 = $828 | $830;
+ $833 = $829 | $831;
+ $834 = $826 ^ $832;
+ $835 = $827 ^ $833;
+ $836 = $764 | $680;
+ $837 = $765 | $681;
+ $838 = $836 & $596;
+ $839 = $837 & $597;
+ $840 = $764 & $680;
+ $841 = $765 & $681;
+ $842 = $838 | $840;
+ $843 = $839 | $841;
+ $844 = (_i64Add(($834|0),($835|0),($842|0),($843|0))|0);
+ $845 = (getTempRet0() | 0);
+ $846 = (_i64Add(($812|0),($813|0),($512|0),($513|0))|0);
+ $847 = (getTempRet0() | 0);
+ $848 = (_i64Add(($844|0),($845|0),($812|0),($813|0))|0);
+ $849 = (getTempRet0() | 0);
+ $add631 = (($i$32) + 8)|0;
+ $cmp115 = ($add631>>>0)<(80);
+ if ($cmp115) {
+ $162 = $846;$163 = $847;$187 = $762;$188 = $678;$190 = $763;$191 = $679;$208 = $594;$209 = $595;$218 = $848;$219 = $849;$243 = $764;$245 = $765;$247 = $680;$249 = $681;$254 = $596;$255 = $597;$i$32 = $add631;
+ } else {
+ break;
+ }
+ }
+ $850 = $arrayidx118;
+ $851 = $850;
+ HEAP32[$851>>2] = $594;
+ $852 = (($850) + 4)|0;
+ $853 = $852;
+ HEAP32[$853>>2] = $595;
+ $854 = $arrayidx119;
+ $855 = $854;
+ HEAP32[$855>>2] = $846;
+ $856 = (($854) + 4)|0;
+ $857 = $856;
+ HEAP32[$857>>2] = $847;
+ $858 = $arrayidx137;
+ $859 = $858;
+ HEAP32[$859>>2] = $678;
+ $860 = (($858) + 4)|0;
+ $861 = $860;
+ HEAP32[$861>>2] = $679;
+ $862 = $arrayidx139;
+ $863 = $862;
+ HEAP32[$863>>2] = $762;
+ $864 = (($862) + 4)|0;
+ $865 = $864;
+ HEAP32[$865>>2] = $763;
+ $866 = $S;
+ $867 = $866;
+ HEAP32[$867>>2] = $848;
+ $868 = (($866) + 4)|0;
+ $869 = $868;
+ HEAP32[$869>>2] = $849;
+ $870 = $arrayidx169;
+ $871 = $870;
+ HEAP32[$871>>2] = $764;
+ $872 = (($870) + 4)|0;
+ $873 = $872;
+ HEAP32[$873>>2] = $765;
+ $874 = $arrayidx171;
+ $875 = $874;
+ HEAP32[$875>>2] = $680;
+ $876 = (($874) + 4)|0;
+ $877 = $876;
+ HEAP32[$877>>2] = $681;
+ $878 = $arrayidx178;
+ $879 = $878;
+ HEAP32[$879>>2] = $596;
+ $880 = (($878) + 4)|0;
+ $881 = $880;
+ HEAP32[$881>>2] = $597;
+ $arrayidx638 = ((($md)) + 8|0);
+ $882 = $arrayidx638;
+ $883 = $882;
+ $884 = HEAP32[$883>>2]|0;
+ $885 = (($882) + 4)|0;
+ $886 = $885;
+ $887 = HEAP32[$886>>2]|0;
+ $888 = $S;
+ $889 = $888;
+ $890 = HEAP32[$889>>2]|0;
+ $891 = (($888) + 4)|0;
+ $892 = $891;
+ $893 = HEAP32[$892>>2]|0;
+ $894 = (_i64Add(($890|0),($893|0),($884|0),($887|0))|0);
+ $895 = (getTempRet0() | 0);
+ $896 = $arrayidx638;
+ $897 = $896;
+ HEAP32[$897>>2] = $894;
+ $898 = (($896) + 4)|0;
+ $899 = $898;
+ HEAP32[$899>>2] = $895;
+ $arrayidx638$1 = ((($md)) + 16|0);
+ $900 = $arrayidx638$1;
+ $901 = $900;
+ $902 = HEAP32[$901>>2]|0;
+ $903 = (($900) + 4)|0;
+ $904 = $903;
+ $905 = HEAP32[$904>>2]|0;
+ $arrayidx639$1 = ((($S)) + 8|0);
+ $906 = $arrayidx639$1;
+ $907 = $906;
+ $908 = HEAP32[$907>>2]|0;
+ $909 = (($906) + 4)|0;
+ $910 = $909;
+ $911 = HEAP32[$910>>2]|0;
+ $912 = (_i64Add(($908|0),($911|0),($902|0),($905|0))|0);
+ $913 = (getTempRet0() | 0);
+ $914 = $arrayidx638$1;
+ $915 = $914;
+ HEAP32[$915>>2] = $912;
+ $916 = (($914) + 4)|0;
+ $917 = $916;
+ HEAP32[$917>>2] = $913;
+ $arrayidx638$2 = ((($md)) + 24|0);
+ $918 = $arrayidx638$2;
+ $919 = $918;
+ $920 = HEAP32[$919>>2]|0;
+ $921 = (($918) + 4)|0;
+ $922 = $921;
+ $923 = HEAP32[$922>>2]|0;
+ $arrayidx639$2 = ((($S)) + 16|0);
+ $924 = $arrayidx639$2;
+ $925 = $924;
+ $926 = HEAP32[$925>>2]|0;
+ $927 = (($924) + 4)|0;
+ $928 = $927;
+ $929 = HEAP32[$928>>2]|0;
+ $930 = (_i64Add(($926|0),($929|0),($920|0),($923|0))|0);
+ $931 = (getTempRet0() | 0);
+ $932 = $arrayidx638$2;
+ $933 = $932;
+ HEAP32[$933>>2] = $930;
+ $934 = (($932) + 4)|0;
+ $935 = $934;
+ HEAP32[$935>>2] = $931;
+ $arrayidx638$3 = ((($md)) + 32|0);
+ $936 = $arrayidx638$3;
+ $937 = $936;
+ $938 = HEAP32[$937>>2]|0;
+ $939 = (($936) + 4)|0;
+ $940 = $939;
+ $941 = HEAP32[$940>>2]|0;
+ $arrayidx639$3 = ((($S)) + 24|0);
+ $942 = $arrayidx639$3;
+ $943 = $942;
+ $944 = HEAP32[$943>>2]|0;
+ $945 = (($942) + 4)|0;
+ $946 = $945;
+ $947 = HEAP32[$946>>2]|0;
+ $948 = (_i64Add(($944|0),($947|0),($938|0),($941|0))|0);
+ $949 = (getTempRet0() | 0);
+ $950 = $arrayidx638$3;
+ $951 = $950;
+ HEAP32[$951>>2] = $948;
+ $952 = (($950) + 4)|0;
+ $953 = $952;
+ HEAP32[$953>>2] = $949;
+ $arrayidx638$4 = ((($md)) + 40|0);
+ $954 = $arrayidx638$4;
+ $955 = $954;
+ $956 = HEAP32[$955>>2]|0;
+ $957 = (($954) + 4)|0;
+ $958 = $957;
+ $959 = HEAP32[$958>>2]|0;
+ $arrayidx639$4 = ((($S)) + 32|0);
+ $960 = $arrayidx639$4;
+ $961 = $960;
+ $962 = HEAP32[$961>>2]|0;
+ $963 = (($960) + 4)|0;
+ $964 = $963;
+ $965 = HEAP32[$964>>2]|0;
+ $966 = (_i64Add(($962|0),($965|0),($956|0),($959|0))|0);
+ $967 = (getTempRet0() | 0);
+ $968 = $arrayidx638$4;
+ $969 = $968;
+ HEAP32[$969>>2] = $966;
+ $970 = (($968) + 4)|0;
+ $971 = $970;
+ HEAP32[$971>>2] = $967;
+ $arrayidx638$5 = ((($md)) + 48|0);
+ $972 = $arrayidx638$5;
+ $973 = $972;
+ $974 = HEAP32[$973>>2]|0;
+ $975 = (($972) + 4)|0;
+ $976 = $975;
+ $977 = HEAP32[$976>>2]|0;
+ $arrayidx639$5 = ((($S)) + 40|0);
+ $978 = $arrayidx639$5;
+ $979 = $978;
+ $980 = HEAP32[$979>>2]|0;
+ $981 = (($978) + 4)|0;
+ $982 = $981;
+ $983 = HEAP32[$982>>2]|0;
+ $984 = (_i64Add(($980|0),($983|0),($974|0),($977|0))|0);
+ $985 = (getTempRet0() | 0);
+ $986 = $arrayidx638$5;
+ $987 = $986;
+ HEAP32[$987>>2] = $984;
+ $988 = (($986) + 4)|0;
+ $989 = $988;
+ HEAP32[$989>>2] = $985;
+ $arrayidx638$6 = ((($md)) + 56|0);
+ $990 = $arrayidx638$6;
+ $991 = $990;
+ $992 = HEAP32[$991>>2]|0;
+ $993 = (($990) + 4)|0;
+ $994 = $993;
+ $995 = HEAP32[$994>>2]|0;
+ $arrayidx639$6 = ((($S)) + 48|0);
+ $996 = $arrayidx639$6;
+ $997 = $996;
+ $998 = HEAP32[$997>>2]|0;
+ $999 = (($996) + 4)|0;
+ $1000 = $999;
+ $1001 = HEAP32[$1000>>2]|0;
+ $1002 = (_i64Add(($998|0),($1001|0),($992|0),($995|0))|0);
+ $1003 = (getTempRet0() | 0);
+ $1004 = $arrayidx638$6;
+ $1005 = $1004;
+ HEAP32[$1005>>2] = $1002;
+ $1006 = (($1004) + 4)|0;
+ $1007 = $1006;
+ HEAP32[$1007>>2] = $1003;
+ $arrayidx638$7 = ((($md)) + 64|0);
+ $1008 = $arrayidx638$7;
+ $1009 = $1008;
+ $1010 = HEAP32[$1009>>2]|0;
+ $1011 = (($1008) + 4)|0;
+ $1012 = $1011;
+ $1013 = HEAP32[$1012>>2]|0;
+ $arrayidx639$7 = ((($S)) + 56|0);
+ $1014 = $arrayidx639$7;
+ $1015 = $1014;
+ $1016 = HEAP32[$1015>>2]|0;
+ $1017 = (($1014) + 4)|0;
+ $1018 = $1017;
+ $1019 = HEAP32[$1018>>2]|0;
+ $1020 = (_i64Add(($1016|0),($1019|0),($1010|0),($1013|0))|0);
+ $1021 = (getTempRet0() | 0);
+ $1022 = $arrayidx638$7;
+ $1023 = $1022;
+ HEAP32[$1023>>2] = $1020;
+ $1024 = (($1022) + 4)|0;
+ $1025 = $1024;
+ HEAP32[$1025>>2] = $1021;
+ STACKTOP = sp;return;
+}
+function _sha512_final($md,$out) {
+ $md = $md|0;
+ $out = $out|0;
+ var $$ph = 0, $$pr = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $12 = 0;
+ var $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
+ var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
+ var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
+ var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
+ var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $add$ptr = 0, $add$ptr103 = 0, $arrayidx = 0, $arrayidx112 = 0, $arrayidx120 = 0;
+ var $arrayidx128 = 0, $arrayidx136 = 0, $arrayidx144 = 0, $arrayidx152 = 0, $arrayidx159 = 0, $arrayidx19 = 0, $arrayidx31 = 0, $arrayidx45 = 0, $arrayidx53 = 0, $arrayidx61 = 0, $arrayidx69 = 0, $arrayidx77 = 0, $arrayidx85 = 0, $arrayidx92 = 0, $arrayidx98 = 0, $buf = 0, $cmp = 0, $cmp1 = 0, $cmp10 = 0, $cmp14 = 0;
+ var $cmp1468 = 0, $cmp25 = 0, $cmp4 = 0, $curlen = 0, $exitcond = 0, $i$066 = 0, $inc = 0, $inc160 = 0, $inc18 = 0, $inc30 = 0, $mul102 = 0, $or$cond = 0, $retval$0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $cmp = ($md|0)==(0|0);
+ $cmp1 = ($out|0)==(0|0);
+ $or$cond = $cmp | $cmp1;
+ if ($or$cond) {
+ $retval$0 = 1;
+ return ($retval$0|0);
+ }
+ $curlen = ((($md)) + 72|0);
+ $0 = HEAP32[$curlen>>2]|0;
+ $cmp4 = ($0>>>0)>(127);
+ if ($cmp4) {
+ $retval$0 = 1;
+ return ($retval$0|0);
+ }
+ $1 = (_bitshift64Shl(($0|0),0,3)|0);
+ $2 = (getTempRet0() | 0);
+ $3 = $md;
+ $4 = $3;
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (($3) + 4)|0;
+ $7 = $6;
+ $8 = HEAP32[$7>>2]|0;
+ $9 = (_i64Add(($5|0),($8|0),($1|0),($2|0))|0);
+ $10 = (getTempRet0() | 0);
+ $11 = $md;
+ $12 = $11;
+ HEAP32[$12>>2] = $9;
+ $13 = (($11) + 4)|0;
+ $14 = $13;
+ HEAP32[$14>>2] = $10;
+ $buf = ((($md)) + 76|0);
+ $inc = (($0) + 1)|0;
+ HEAP32[$curlen>>2] = $inc;
+ $arrayidx = (((($md)) + 76|0) + ($0)|0);
+ HEAP8[$arrayidx>>0] = -128;
+ $15 = HEAP32[$curlen>>2]|0;
+ $cmp10 = ($15>>>0)>(112);
+ if ($cmp10) {
+ $cmp1468 = ($15>>>0)<(128);
+ if ($cmp1468) {
+ $16 = $15;
+ while(1) {
+ $inc18 = (($16) + 1)|0;
+ HEAP32[$curlen>>2] = $inc18;
+ $arrayidx19 = (((($md)) + 76|0) + ($16)|0);
+ HEAP8[$arrayidx19>>0] = 0;
+ $$pr = HEAP32[$curlen>>2]|0;
+ $cmp14 = ($$pr>>>0)<(128);
+ if ($cmp14) {
+ $16 = $$pr;
+ } else {
+ break;
+ }
+ }
+ }
+ _sha512_compress($md,$buf);
+ HEAP32[$curlen>>2] = 0;
+ $$ph = 0;
+ } else {
+ $$ph = $15;
+ }
+ $17 = $$ph;
+ while(1) {
+ $inc30 = (($17) + 1)|0;
+ HEAP32[$curlen>>2] = $inc30;
+ $arrayidx31 = (((($md)) + 76|0) + ($17)|0);
+ HEAP8[$arrayidx31>>0] = 0;
+ $18 = HEAP32[$curlen>>2]|0;
+ $cmp25 = ($18>>>0)<(120);
+ if ($cmp25) {
+ $17 = $18;
+ } else {
+ break;
+ }
+ }
+ $19 = $md;
+ $20 = $19;
+ $21 = HEAP32[$20>>2]|0;
+ $22 = (($19) + 4)|0;
+ $23 = $22;
+ $24 = HEAP32[$23>>2]|0;
+ $25 = (_bitshift64Lshr(($21|0),($24|0),56)|0);
+ $26 = (getTempRet0() | 0);
+ $27 = $25&255;
+ $add$ptr = ((($md)) + 196|0);
+ HEAP8[$add$ptr>>0] = $27;
+ $28 = (_bitshift64Lshr(($21|0),($24|0),48)|0);
+ $29 = (getTempRet0() | 0);
+ $30 = $28&255;
+ $arrayidx45 = ((($md)) + 197|0);
+ HEAP8[$arrayidx45>>0] = $30;
+ $31 = (_bitshift64Lshr(($21|0),($24|0),40)|0);
+ $32 = (getTempRet0() | 0);
+ $33 = $31&255;
+ $arrayidx53 = ((($md)) + 198|0);
+ HEAP8[$arrayidx53>>0] = $33;
+ $34 = $24&255;
+ $arrayidx61 = ((($md)) + 199|0);
+ HEAP8[$arrayidx61>>0] = $34;
+ $35 = (_bitshift64Lshr(($21|0),($24|0),24)|0);
+ $36 = (getTempRet0() | 0);
+ $37 = $35&255;
+ $arrayidx69 = ((($md)) + 200|0);
+ HEAP8[$arrayidx69>>0] = $37;
+ $38 = (_bitshift64Lshr(($21|0),($24|0),16)|0);
+ $39 = (getTempRet0() | 0);
+ $40 = $38&255;
+ $arrayidx77 = ((($md)) + 201|0);
+ HEAP8[$arrayidx77>>0] = $40;
+ $41 = (_bitshift64Lshr(($21|0),($24|0),8)|0);
+ $42 = (getTempRet0() | 0);
+ $43 = $41&255;
+ $arrayidx85 = ((($md)) + 202|0);
+ HEAP8[$arrayidx85>>0] = $43;
+ $44 = $21&255;
+ $arrayidx92 = ((($md)) + 203|0);
+ HEAP8[$arrayidx92>>0] = $44;
+ _sha512_compress($md,$buf);
+ $i$066 = 0;
+ while(1) {
+ $arrayidx98 = (((($md)) + 8|0) + ($i$066<<3)|0);
+ $45 = $arrayidx98;
+ $46 = $45;
+ $47 = HEAP32[$46>>2]|0;
+ $48 = (($45) + 4)|0;
+ $49 = $48;
+ $50 = HEAP32[$49>>2]|0;
+ $51 = (_bitshift64Lshr(($47|0),($50|0),56)|0);
+ $52 = (getTempRet0() | 0);
+ $53 = $51&255;
+ $mul102 = $i$066 << 3;
+ $add$ptr103 = (($out) + ($mul102)|0);
+ HEAP8[$add$ptr103>>0] = $53;
+ $54 = $arrayidx98;
+ $55 = $54;
+ $56 = HEAP32[$55>>2]|0;
+ $57 = (($54) + 4)|0;
+ $58 = $57;
+ $59 = HEAP32[$58>>2]|0;
+ $60 = (_bitshift64Lshr(($56|0),($59|0),48)|0);
+ $61 = (getTempRet0() | 0);
+ $62 = $60&255;
+ $arrayidx112 = ((($add$ptr103)) + 1|0);
+ HEAP8[$arrayidx112>>0] = $62;
+ $63 = $arrayidx98;
+ $64 = $63;
+ $65 = HEAP32[$64>>2]|0;
+ $66 = (($63) + 4)|0;
+ $67 = $66;
+ $68 = HEAP32[$67>>2]|0;
+ $69 = (_bitshift64Lshr(($65|0),($68|0),40)|0);
+ $70 = (getTempRet0() | 0);
+ $71 = $69&255;
+ $arrayidx120 = ((($add$ptr103)) + 2|0);
+ HEAP8[$arrayidx120>>0] = $71;
+ $72 = $arrayidx98;
+ $73 = $72;
+ $74 = HEAP32[$73>>2]|0;
+ $75 = (($72) + 4)|0;
+ $76 = $75;
+ $77 = HEAP32[$76>>2]|0;
+ $78 = $77&255;
+ $arrayidx128 = ((($add$ptr103)) + 3|0);
+ HEAP8[$arrayidx128>>0] = $78;
+ $79 = $arrayidx98;
+ $80 = $79;
+ $81 = HEAP32[$80>>2]|0;
+ $82 = (($79) + 4)|0;
+ $83 = $82;
+ $84 = HEAP32[$83>>2]|0;
+ $85 = (_bitshift64Lshr(($81|0),($84|0),24)|0);
+ $86 = (getTempRet0() | 0);
+ $87 = $85&255;
+ $arrayidx136 = ((($add$ptr103)) + 4|0);
+ HEAP8[$arrayidx136>>0] = $87;
+ $88 = $arrayidx98;
+ $89 = $88;
+ $90 = HEAP32[$89>>2]|0;
+ $91 = (($88) + 4)|0;
+ $92 = $91;
+ $93 = HEAP32[$92>>2]|0;
+ $94 = (_bitshift64Lshr(($90|0),($93|0),16)|0);
+ $95 = (getTempRet0() | 0);
+ $96 = $94&255;
+ $arrayidx144 = ((($add$ptr103)) + 5|0);
+ HEAP8[$arrayidx144>>0] = $96;
+ $97 = $arrayidx98;
+ $98 = $97;
+ $99 = HEAP32[$98>>2]|0;
+ $100 = (($97) + 4)|0;
+ $101 = $100;
+ $102 = HEAP32[$101>>2]|0;
+ $103 = (_bitshift64Lshr(($99|0),($102|0),8)|0);
+ $104 = (getTempRet0() | 0);
+ $105 = $103&255;
+ $arrayidx152 = ((($add$ptr103)) + 6|0);
+ HEAP8[$arrayidx152>>0] = $105;
+ $106 = $arrayidx98;
+ $107 = $106;
+ $108 = HEAP32[$107>>2]|0;
+ $109 = (($106) + 4)|0;
+ $110 = $109;
+ $111 = HEAP32[$110>>2]|0;
+ $112 = $108&255;
+ $arrayidx159 = ((($add$ptr103)) + 7|0);
+ HEAP8[$arrayidx159>>0] = $112;
+ $inc160 = (($i$066) + 1)|0;
+ $exitcond = ($inc160|0)==(8);
+ if ($exitcond) {
+ $retval$0 = 0;
+ break;
+ } else {
+ $i$066 = $inc160;
+ }
+ }
+ return ($retval$0|0);
+}
+function _sha512($message,$message_len,$out) {
+ $message = $message|0;
+ $message_len = $message_len|0;
+ $out = $out|0;
+ var $call = 0, $call1 = 0, $call5 = 0, $ctx = 0, $retval$0 = 0, $tobool = 0, $tobool2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 208|0;
+ $ctx = sp;
+ $call = (_sha512_init($ctx)|0);
+ $tobool = ($call|0)==(0);
+ if ($tobool) {
+ $call1 = (_sha512_update($ctx,$message,$message_len)|0);
+ $tobool2 = ($call1|0)==(0);
+ if ($tobool2) {
+ $call5 = (_sha512_final($ctx,$out)|0);
+ $retval$0 = $call5;
+ } else {
+ $retval$0 = $call1;
+ }
+ } else {
+ $retval$0 = $call;
+ }
+ STACKTOP = sp;return ($retval$0|0);
+}
+function _ed25519_sign($signature,$message,$message_len,$public_key,$private_key) {
+ $signature = $signature|0;
+ $message = $message|0;
+ $message_len = $message_len|0;
+ $public_key = $public_key|0;
+ $private_key = $private_key|0;
+ var $R = 0, $add$ptr = 0, $add$ptr13 = 0, $hash = 0, $hram = 0, $r = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 496|0;
+ $hash = sp + 128|0;
+ $hram = sp + 64|0;
+ $r = sp;
+ $R = sp + 336|0;
+ (_sha512_init($hash)|0);
+ $add$ptr = ((($private_key)) + 32|0);
+ (_sha512_update($hash,$add$ptr,32)|0);
+ (_sha512_update($hash,$message,$message_len)|0);
+ (_sha512_final($hash,$r)|0);
+ _sc_reduce($r);
+ _ge_scalarmult_base($R,$r);
+ _ge_p3_tobytes($signature,$R);
+ (_sha512_init($hash)|0);
+ (_sha512_update($hash,$signature,32)|0);
+ (_sha512_update($hash,$public_key,32)|0);
+ (_sha512_update($hash,$message,$message_len)|0);
+ (_sha512_final($hash,$hram)|0);
+ _sc_reduce($hram);
+ $add$ptr13 = ((($signature)) + 32|0);
+ _sc_muladd($add$ptr13,$hram,$private_key,$r);
+ STACKTOP = sp;return;
+}
+function _ed25519_verify($signature,$message,$message_len,$public_key) {
+ $signature = $signature|0;
+ $message = $message|0;
+ $message_len = $message_len|0;
+ $public_key = $public_key|0;
+ var $$ = 0, $0 = 0, $A = 0, $R = 0, $add$ptr = 0, $arrayidx = 0, $call = 0, $call13 = 0, $checker = 0, $cmp = 0, $h = 0, $hash = 0, $retval$0 = 0, $tobool = 0, $tobool14 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 592|0;
+ $h = sp + 32|0;
+ $checker = sp;
+ $hash = sp + 96|0;
+ $A = sp + 424|0;
+ $R = sp + 304|0;
+ $arrayidx = ((($signature)) + 63|0);
+ $0 = HEAP8[$arrayidx>>0]|0;
+ $tobool = ($0&255)>(31);
+ if ($tobool) {
+ $retval$0 = 0;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ $call = (_ge_frombytes_negate_vartime($A,$public_key)|0);
+ $cmp = ($call|0)==(0);
+ if (!($cmp)) {
+ $retval$0 = 0;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ (_sha512_init($hash)|0);
+ (_sha512_update($hash,$signature,32)|0);
+ (_sha512_update($hash,$public_key,32)|0);
+ (_sha512_update($hash,$message,$message_len)|0);
+ (_sha512_final($hash,$h)|0);
+ _sc_reduce($h);
+ $add$ptr = ((($signature)) + 32|0);
+ _ge_double_scalarmult_vartime($R,$h,$A,$add$ptr);
+ _ge_tobytes($checker,$R);
+ $call13 = (_consttime_equal($checker,$signature)|0);
+ $tobool14 = ($call13|0)!=(0);
+ $$ = $tobool14&1;
+ $retval$0 = $$;
+ STACKTOP = sp;return ($retval$0|0);
+}
+function _consttime_equal($x,$y) {
+ $x = $x|0;
+ $y = $y|0;
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx101 = 0, $arrayidx107 = 0, $arrayidx109 = 0, $arrayidx11 = 0, $arrayidx115 = 0, $arrayidx117 = 0, $arrayidx123 = 0, $arrayidx125 = 0, $arrayidx13 = 0, $arrayidx131 = 0, $arrayidx133 = 0, $arrayidx139 = 0, $arrayidx141 = 0, $arrayidx147 = 0, $arrayidx149 = 0, $arrayidx155 = 0;
+ var $arrayidx157 = 0, $arrayidx163 = 0, $arrayidx165 = 0, $arrayidx171 = 0, $arrayidx173 = 0, $arrayidx179 = 0, $arrayidx181 = 0, $arrayidx187 = 0, $arrayidx189 = 0, $arrayidx19 = 0, $arrayidx195 = 0, $arrayidx197 = 0, $arrayidx203 = 0, $arrayidx205 = 0, $arrayidx21 = 0, $arrayidx211 = 0, $arrayidx213 = 0, $arrayidx219 = 0, $arrayidx221 = 0, $arrayidx227 = 0;
+ var $arrayidx229 = 0, $arrayidx235 = 0, $arrayidx237 = 0, $arrayidx243 = 0, $arrayidx245 = 0, $arrayidx27 = 0, $arrayidx29 = 0, $arrayidx35 = 0, $arrayidx37 = 0, $arrayidx4 = 0, $arrayidx43 = 0, $arrayidx45 = 0, $arrayidx51 = 0, $arrayidx53 = 0, $arrayidx59 = 0, $arrayidx6 = 0, $arrayidx61 = 0, $arrayidx67 = 0, $arrayidx69 = 0, $arrayidx75 = 0;
+ var $arrayidx77 = 0, $arrayidx83 = 0, $arrayidx85 = 0, $arrayidx91 = 0, $arrayidx93 = 0, $arrayidx99 = 0, $lnot$ext = 0, $or105120 = 0, $or113122 = 0, $or121124 = 0, $or129126 = 0, $or137128 = 0, $or145130 = 0, $or153132 = 0, $or161134 = 0, $or169136 = 0, $or177138 = 0, $or1798 = 0, $or185140 = 0, $or193142 = 0;
+ var $or201144 = 0, $or209146 = 0, $or217148 = 0, $or225150 = 0, $or233152 = 0, $or241154 = 0, $or249156 = 0, $or25100 = 0, $or33102 = 0, $or41104 = 0, $or49106 = 0, $or57108 = 0, $or65110 = 0, $or73112 = 0, $or81114 = 0, $or89116 = 0, $or96 = 0, $or97118 = 0, $tobool = 0, $xor103119 = 0;
+ var $xor111121 = 0, $xor119123 = 0, $xor127125 = 0, $xor135127 = 0, $xor143129 = 0, $xor151131 = 0, $xor159133 = 0, $xor1597 = 0, $xor167135 = 0, $xor175137 = 0, $xor183139 = 0, $xor191141 = 0, $xor199143 = 0, $xor207145 = 0, $xor215147 = 0, $xor223149 = 0, $xor231151 = 0, $xor239153 = 0, $xor2399 = 0, $xor247155 = 0;
+ var $xor31101 = 0, $xor39103 = 0, $xor47105 = 0, $xor55107 = 0, $xor63109 = 0, $xor71111 = 0, $xor79113 = 0, $xor87115 = 0, $xor895 = 0, $xor94 = 0, $xor95117 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP8[$x>>0]|0;
+ $1 = HEAP8[$y>>0]|0;
+ $xor94 = $1 ^ $0;
+ $arrayidx4 = ((($x)) + 1|0);
+ $2 = HEAP8[$arrayidx4>>0]|0;
+ $arrayidx6 = ((($y)) + 1|0);
+ $3 = HEAP8[$arrayidx6>>0]|0;
+ $xor895 = $3 ^ $2;
+ $or96 = $xor895 | $xor94;
+ $arrayidx11 = ((($x)) + 2|0);
+ $4 = HEAP8[$arrayidx11>>0]|0;
+ $arrayidx13 = ((($y)) + 2|0);
+ $5 = HEAP8[$arrayidx13>>0]|0;
+ $xor1597 = $5 ^ $4;
+ $or1798 = $or96 | $xor1597;
+ $arrayidx19 = ((($x)) + 3|0);
+ $6 = HEAP8[$arrayidx19>>0]|0;
+ $arrayidx21 = ((($y)) + 3|0);
+ $7 = HEAP8[$arrayidx21>>0]|0;
+ $xor2399 = $7 ^ $6;
+ $or25100 = $or1798 | $xor2399;
+ $arrayidx27 = ((($x)) + 4|0);
+ $8 = HEAP8[$arrayidx27>>0]|0;
+ $arrayidx29 = ((($y)) + 4|0);
+ $9 = HEAP8[$arrayidx29>>0]|0;
+ $xor31101 = $9 ^ $8;
+ $or33102 = $or25100 | $xor31101;
+ $arrayidx35 = ((($x)) + 5|0);
+ $10 = HEAP8[$arrayidx35>>0]|0;
+ $arrayidx37 = ((($y)) + 5|0);
+ $11 = HEAP8[$arrayidx37>>0]|0;
+ $xor39103 = $11 ^ $10;
+ $or41104 = $or33102 | $xor39103;
+ $arrayidx43 = ((($x)) + 6|0);
+ $12 = HEAP8[$arrayidx43>>0]|0;
+ $arrayidx45 = ((($y)) + 6|0);
+ $13 = HEAP8[$arrayidx45>>0]|0;
+ $xor47105 = $13 ^ $12;
+ $or49106 = $or41104 | $xor47105;
+ $arrayidx51 = ((($x)) + 7|0);
+ $14 = HEAP8[$arrayidx51>>0]|0;
+ $arrayidx53 = ((($y)) + 7|0);
+ $15 = HEAP8[$arrayidx53>>0]|0;
+ $xor55107 = $15 ^ $14;
+ $or57108 = $or49106 | $xor55107;
+ $arrayidx59 = ((($x)) + 8|0);
+ $16 = HEAP8[$arrayidx59>>0]|0;
+ $arrayidx61 = ((($y)) + 8|0);
+ $17 = HEAP8[$arrayidx61>>0]|0;
+ $xor63109 = $17 ^ $16;
+ $or65110 = $or57108 | $xor63109;
+ $arrayidx67 = ((($x)) + 9|0);
+ $18 = HEAP8[$arrayidx67>>0]|0;
+ $arrayidx69 = ((($y)) + 9|0);
+ $19 = HEAP8[$arrayidx69>>0]|0;
+ $xor71111 = $19 ^ $18;
+ $or73112 = $or65110 | $xor71111;
+ $arrayidx75 = ((($x)) + 10|0);
+ $20 = HEAP8[$arrayidx75>>0]|0;
+ $arrayidx77 = ((($y)) + 10|0);
+ $21 = HEAP8[$arrayidx77>>0]|0;
+ $xor79113 = $21 ^ $20;
+ $or81114 = $or73112 | $xor79113;
+ $arrayidx83 = ((($x)) + 11|0);
+ $22 = HEAP8[$arrayidx83>>0]|0;
+ $arrayidx85 = ((($y)) + 11|0);
+ $23 = HEAP8[$arrayidx85>>0]|0;
+ $xor87115 = $23 ^ $22;
+ $or89116 = $or81114 | $xor87115;
+ $arrayidx91 = ((($x)) + 12|0);
+ $24 = HEAP8[$arrayidx91>>0]|0;
+ $arrayidx93 = ((($y)) + 12|0);
+ $25 = HEAP8[$arrayidx93>>0]|0;
+ $xor95117 = $25 ^ $24;
+ $or97118 = $or89116 | $xor95117;
+ $arrayidx99 = ((($x)) + 13|0);
+ $26 = HEAP8[$arrayidx99>>0]|0;
+ $arrayidx101 = ((($y)) + 13|0);
+ $27 = HEAP8[$arrayidx101>>0]|0;
+ $xor103119 = $27 ^ $26;
+ $or105120 = $or97118 | $xor103119;
+ $arrayidx107 = ((($x)) + 14|0);
+ $28 = HEAP8[$arrayidx107>>0]|0;
+ $arrayidx109 = ((($y)) + 14|0);
+ $29 = HEAP8[$arrayidx109>>0]|0;
+ $xor111121 = $29 ^ $28;
+ $or113122 = $or105120 | $xor111121;
+ $arrayidx115 = ((($x)) + 15|0);
+ $30 = HEAP8[$arrayidx115>>0]|0;
+ $arrayidx117 = ((($y)) + 15|0);
+ $31 = HEAP8[$arrayidx117>>0]|0;
+ $xor119123 = $31 ^ $30;
+ $or121124 = $or113122 | $xor119123;
+ $arrayidx123 = ((($x)) + 16|0);
+ $32 = HEAP8[$arrayidx123>>0]|0;
+ $arrayidx125 = ((($y)) + 16|0);
+ $33 = HEAP8[$arrayidx125>>0]|0;
+ $xor127125 = $33 ^ $32;
+ $or129126 = $or121124 | $xor127125;
+ $arrayidx131 = ((($x)) + 17|0);
+ $34 = HEAP8[$arrayidx131>>0]|0;
+ $arrayidx133 = ((($y)) + 17|0);
+ $35 = HEAP8[$arrayidx133>>0]|0;
+ $xor135127 = $35 ^ $34;
+ $or137128 = $or129126 | $xor135127;
+ $arrayidx139 = ((($x)) + 18|0);
+ $36 = HEAP8[$arrayidx139>>0]|0;
+ $arrayidx141 = ((($y)) + 18|0);
+ $37 = HEAP8[$arrayidx141>>0]|0;
+ $xor143129 = $37 ^ $36;
+ $or145130 = $or137128 | $xor143129;
+ $arrayidx147 = ((($x)) + 19|0);
+ $38 = HEAP8[$arrayidx147>>0]|0;
+ $arrayidx149 = ((($y)) + 19|0);
+ $39 = HEAP8[$arrayidx149>>0]|0;
+ $xor151131 = $39 ^ $38;
+ $or153132 = $or145130 | $xor151131;
+ $arrayidx155 = ((($x)) + 20|0);
+ $40 = HEAP8[$arrayidx155>>0]|0;
+ $arrayidx157 = ((($y)) + 20|0);
+ $41 = HEAP8[$arrayidx157>>0]|0;
+ $xor159133 = $41 ^ $40;
+ $or161134 = $or153132 | $xor159133;
+ $arrayidx163 = ((($x)) + 21|0);
+ $42 = HEAP8[$arrayidx163>>0]|0;
+ $arrayidx165 = ((($y)) + 21|0);
+ $43 = HEAP8[$arrayidx165>>0]|0;
+ $xor167135 = $43 ^ $42;
+ $or169136 = $or161134 | $xor167135;
+ $arrayidx171 = ((($x)) + 22|0);
+ $44 = HEAP8[$arrayidx171>>0]|0;
+ $arrayidx173 = ((($y)) + 22|0);
+ $45 = HEAP8[$arrayidx173>>0]|0;
+ $xor175137 = $45 ^ $44;
+ $or177138 = $or169136 | $xor175137;
+ $arrayidx179 = ((($x)) + 23|0);
+ $46 = HEAP8[$arrayidx179>>0]|0;
+ $arrayidx181 = ((($y)) + 23|0);
+ $47 = HEAP8[$arrayidx181>>0]|0;
+ $xor183139 = $47 ^ $46;
+ $or185140 = $or177138 | $xor183139;
+ $arrayidx187 = ((($x)) + 24|0);
+ $48 = HEAP8[$arrayidx187>>0]|0;
+ $arrayidx189 = ((($y)) + 24|0);
+ $49 = HEAP8[$arrayidx189>>0]|0;
+ $xor191141 = $49 ^ $48;
+ $or193142 = $or185140 | $xor191141;
+ $arrayidx195 = ((($x)) + 25|0);
+ $50 = HEAP8[$arrayidx195>>0]|0;
+ $arrayidx197 = ((($y)) + 25|0);
+ $51 = HEAP8[$arrayidx197>>0]|0;
+ $xor199143 = $51 ^ $50;
+ $or201144 = $or193142 | $xor199143;
+ $arrayidx203 = ((($x)) + 26|0);
+ $52 = HEAP8[$arrayidx203>>0]|0;
+ $arrayidx205 = ((($y)) + 26|0);
+ $53 = HEAP8[$arrayidx205>>0]|0;
+ $xor207145 = $53 ^ $52;
+ $or209146 = $or201144 | $xor207145;
+ $arrayidx211 = ((($x)) + 27|0);
+ $54 = HEAP8[$arrayidx211>>0]|0;
+ $arrayidx213 = ((($y)) + 27|0);
+ $55 = HEAP8[$arrayidx213>>0]|0;
+ $xor215147 = $55 ^ $54;
+ $or217148 = $or209146 | $xor215147;
+ $arrayidx219 = ((($x)) + 28|0);
+ $56 = HEAP8[$arrayidx219>>0]|0;
+ $arrayidx221 = ((($y)) + 28|0);
+ $57 = HEAP8[$arrayidx221>>0]|0;
+ $xor223149 = $57 ^ $56;
+ $or225150 = $or217148 | $xor223149;
+ $arrayidx227 = ((($x)) + 29|0);
+ $58 = HEAP8[$arrayidx227>>0]|0;
+ $arrayidx229 = ((($y)) + 29|0);
+ $59 = HEAP8[$arrayidx229>>0]|0;
+ $xor231151 = $59 ^ $58;
+ $or233152 = $or225150 | $xor231151;
+ $arrayidx235 = ((($x)) + 30|0);
+ $60 = HEAP8[$arrayidx235>>0]|0;
+ $arrayidx237 = ((($y)) + 30|0);
+ $61 = HEAP8[$arrayidx237>>0]|0;
+ $xor239153 = $61 ^ $60;
+ $or241154 = $or233152 | $xor239153;
+ $arrayidx243 = ((($x)) + 31|0);
+ $62 = HEAP8[$arrayidx243>>0]|0;
+ $arrayidx245 = ((($y)) + 31|0);
+ $63 = HEAP8[$arrayidx245>>0]|0;
+ $xor247155 = $63 ^ $62;
+ $or249156 = $or241154 | $xor247155;
+ $tobool = ($or249156<<24>>24)==(0);
+ $lnot$ext = $tobool&1;
+ return ($lnot$ext|0);
+}
+function _malloc($bytes) {
+ $bytes = $bytes|0;
+ var $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i134 = 0, $$pre$i194 = 0, $$pre$i31$i = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i195Z2D = 0, $$pre$phi$i32$iZ2D = 0, $$pre$phi$iZ2D = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0;
+ var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0;
+ var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0;
+ var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0;
+ var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
+ var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
+ var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
+ var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
+ var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $F$0$i$i = 0, $F104$0 = 0, $F197$0$i = 0, $F224$0$i$i = 0, $F290$0$i = 0, $I252$0$i$i = 0, $I316$0$i = 0, $I57$0$i$i = 0, $K105$010$i$i = 0;
+ var $K305$08$i$i = 0, $K373$015$i = 0, $R$1$i = 0, $R$1$i$be = 0, $R$1$i$i = 0, $R$1$i$i$be = 0, $R$1$i$i$ph = 0, $R$1$i$ph = 0, $R$1$i183 = 0, $R$1$i183$be = 0, $R$1$i183$ph = 0, $R$3$i = 0, $R$3$i$i = 0, $R$3$i188 = 0, $RP$1$i = 0, $RP$1$i$be = 0, $RP$1$i$i = 0, $RP$1$i$i$be = 0, $RP$1$i$i$ph = 0, $RP$1$i$ph = 0;
+ var $RP$1$i182 = 0, $RP$1$i182$be = 0, $RP$1$i182$ph = 0, $T$0$lcssa$i = 0, $T$0$lcssa$i$i = 0, $T$0$lcssa$i34$i = 0, $T$014$i = 0, $T$07$i$i = 0, $T$09$i$i = 0, $add$i = 0, $add$i$i = 0, $add$i135 = 0, $add$i155 = 0, $add$ptr = 0, $add$ptr$i = 0, $add$ptr$i$i = 0, $add$ptr$i$i$i = 0, $add$ptr$i141 = 0, $add$ptr$i174 = 0, $add$ptr$i2$i$i = 0;
+ var $add$ptr$i35$i = 0, $add$ptr$i43$i = 0, $add$ptr$i57$i = 0, $add$ptr14$i$i = 0, $add$ptr15$i$i = 0, $add$ptr16$i$i = 0, $add$ptr166 = 0, $add$ptr169 = 0, $add$ptr17$i$i = 0, $add$ptr178 = 0, $add$ptr181$i = 0, $add$ptr182 = 0, $add$ptr189$i = 0, $add$ptr190$i = 0, $add$ptr193 = 0, $add$ptr199 = 0, $add$ptr2$i$i = 0, $add$ptr205$i$i = 0, $add$ptr212$i$i = 0, $add$ptr225$i = 0;
+ var $add$ptr227$i = 0, $add$ptr24$i$i = 0, $add$ptr262$i = 0, $add$ptr269$i = 0, $add$ptr273$i = 0, $add$ptr282$i = 0, $add$ptr3$i$i = 0, $add$ptr30$i$i = 0, $add$ptr369$i$i = 0, $add$ptr4$i$i = 0, $add$ptr4$i$i$i = 0, $add$ptr4$i41$i = 0, $add$ptr4$i49$i = 0, $add$ptr441$i = 0, $add$ptr5$i$i = 0, $add$ptr6$i$i = 0, $add$ptr6$i$i$i = 0, $add$ptr6$i53$i = 0, $add$ptr7$i$i = 0, $add$ptr81$i$i = 0;
+ var $add$ptr95 = 0, $add$ptr98 = 0, $add10$i = 0, $add101$i = 0, $add110$i = 0, $add13$i = 0, $add14$i = 0, $add140$i = 0, $add144 = 0, $add150$i = 0, $add17$i = 0, $add17$i158 = 0, $add177$i = 0, $add18$i = 0, $add19$i = 0, $add2 = 0, $add20$i = 0, $add206$i$i = 0, $add212$i = 0, $add215$i = 0;
+ var $add22$i = 0, $add246$i = 0, $add26$i$i = 0, $add268$i = 0, $add269$i$i = 0, $add274$i$i = 0, $add278$i$i = 0, $add280$i$i = 0, $add283$i$i = 0, $add337$i = 0, $add342$i = 0, $add346$i = 0, $add348$i = 0, $add351$i = 0, $add46$i = 0, $add50 = 0, $add51$i = 0, $add54 = 0, $add54$i = 0, $add58 = 0;
+ var $add62 = 0, $add64 = 0, $add74$i$i = 0, $add77$i = 0, $add78$i = 0, $add79$i$i = 0, $add8 = 0, $add82$i = 0, $add83$i$i = 0, $add85$i$i = 0, $add86$i = 0, $add88$i$i = 0, $add9$i = 0, $add90$i = 0, $add92$i = 0, $and = 0, $and$i = 0, $and$i$i = 0, $and$i$i$i = 0, $and$i14$i = 0;
+ var $and$i152 = 0, $and$i36$i = 0, $and$i44$i = 0, $and100$i = 0, $and103$i = 0, $and104$i = 0, $and106 = 0, $and11$i = 0, $and119$i$i = 0, $and1197$i$i = 0, $and12$i = 0, $and13$i = 0, $and13$i$i = 0, $and133$i$i = 0, $and14 = 0, $and145 = 0, $and17$i = 0, $and194$i = 0, $and194$i191 = 0, $and199$i = 0;
+ var $and209$i$i = 0, $and21$i = 0, $and21$i159 = 0, $and227$i$i = 0, $and236$i = 0, $and264$i$i = 0, $and268$i$i = 0, $and273$i$i = 0, $and282$i$i = 0, $and29$i = 0, $and292$i = 0, $and295$i$i = 0, $and3$i = 0, $and3$i$i = 0, $and3$i$i$i = 0, $and3$i39$i = 0, $and3$i47$i = 0, $and30$i = 0, $and318$i$i = 0, $and3185$i$i = 0;
+ var $and32$i = 0, $and32$i$i = 0, $and33$i$i = 0, $and331$i = 0, $and336$i = 0, $and341$i = 0, $and350$i = 0, $and363$i = 0, $and37$i$i = 0, $and387$i = 0, $and38712$i = 0, $and4 = 0, $and40$i$i = 0, $and41 = 0, $and42$i = 0, $and43 = 0, $and46 = 0, $and49 = 0, $and49$i = 0, $and49$i$i = 0;
+ var $and53 = 0, $and57 = 0, $and6$i = 0, $and6$i$i = 0, $and6$i13$i = 0, $and6$i18$i = 0, $and61 = 0, $and64$i = 0, $and68$i = 0, $and69$i$i = 0, $and7 = 0, $and73$i = 0, $and73$i$i = 0, $and74 = 0, $and77$i = 0, $and78$i$i = 0, $and8$i = 0, $and80$i = 0, $and81$i = 0, $and85$i = 0;
+ var $and87$i$i = 0, $and89$i = 0, $and9$i = 0, $and96$i$i = 0, $arrayidx = 0, $arrayidx$i = 0, $arrayidx$i$i = 0, $arrayidx$i160 = 0, $arrayidx103 = 0, $arrayidx103$i$i = 0, $arrayidx106$i = 0, $arrayidx107$i$i = 0, $arrayidx113$i = 0, $arrayidx113$i173 = 0, $arrayidx121$i = 0, $arrayidx121$i$sink = 0, $arrayidx123$i$i = 0, $arrayidx126$i$i = 0, $arrayidx137$i = 0, $arrayidx143$i$i = 0;
+ var $arrayidx148$i = 0, $arrayidx151$i = 0, $arrayidx151$i$i = 0, $arrayidx151$i$i$sink = 0, $arrayidx154$i = 0, $arrayidx155$i = 0, $arrayidx161$i = 0, $arrayidx165$i = 0, $arrayidx165$i185 = 0, $arrayidx178$i$i = 0, $arrayidx184$i = 0, $arrayidx184$i$i = 0, $arrayidx195$i$i = 0, $arrayidx196$i = 0, $arrayidx204$i = 0, $arrayidx212$i = 0, $arrayidx212$i$sink = 0, $arrayidx223$i$i = 0, $arrayidx228$i = 0, $arrayidx23$i = 0;
+ var $arrayidx239$i = 0, $arrayidx245$i = 0, $arrayidx256$i = 0, $arrayidx27$i = 0, $arrayidx287$i$i = 0, $arrayidx289$i = 0, $arrayidx290$i$i = 0, $arrayidx325$i$i = 0, $arrayidx355$i = 0, $arrayidx358$i = 0, $arrayidx394$i = 0, $arrayidx40$i = 0, $arrayidx44$i = 0, $arrayidx61$i = 0, $arrayidx65$i = 0, $arrayidx66 = 0, $arrayidx71$i = 0, $arrayidx75$i = 0, $arrayidx91$i$i = 0, $arrayidx92$i$i = 0;
+ var $arrayidx94$i = 0, $arrayidx94$i170 = 0, $arrayidx96$i$i = 0, $bk$i = 0, $bk$i$i = 0, $bk$i176 = 0, $bk$i26$i = 0, $bk102$i$i = 0, $bk122 = 0, $bk124 = 0, $bk139$i$i = 0, $bk145$i = 0, $bk158$i$i = 0, $bk161$i$i = 0, $bk18 = 0, $bk218$i = 0, $bk220$i = 0, $bk246$i$i = 0, $bk248$i$i = 0, $bk302$i$i = 0;
+ var $bk311$i = 0, $bk313$i = 0, $bk338$i$i = 0, $bk357$i$i = 0, $bk360$i$i = 0, $bk370$i = 0, $bk407$i = 0, $bk429$i = 0, $bk432$i = 0, $bk55$i$i = 0, $bk56$i = 0, $bk67$i$i = 0, $bk74$i$i = 0, $bk85 = 0, $bk91$i$i = 0, $br$2$ph$i = 0, $call107$i = 0, $call131$i = 0, $call132$i = 0, $call275$i = 0;
+ var $call37$i = 0, $call68$i = 0, $call83$i = 0, $child$i$i = 0, $child166$i$i = 0, $child289$i$i = 0, $child357$i = 0, $cmp = 0, $cmp$i = 0, $cmp$i$i$i = 0, $cmp$i12$i = 0, $cmp$i133 = 0, $cmp$i149 = 0, $cmp$i15$i = 0, $cmp$i3$i$i = 0, $cmp$i37$i = 0, $cmp$i45$i = 0, $cmp$i55$i = 0, $cmp1 = 0, $cmp1$i = 0;
+ var $cmp10 = 0, $cmp100$i$i = 0, $cmp102$i = 0, $cmp104$i$i = 0, $cmp105$i = 0, $cmp106$i$i = 0, $cmp107$i = 0, $cmp108$i = 0, $cmp108$i$i = 0, $cmp114$i = 0, $cmp116$i = 0, $cmp118$i = 0, $cmp119$i = 0, $cmp12$i = 0, $cmp120$i$i = 0, $cmp120$i28$i = 0, $cmp1208$i$i = 0, $cmp123$i = 0, $cmp124$i$i = 0, $cmp126$i = 0;
+ var $cmp127$i = 0, $cmp128 = 0, $cmp128$i = 0, $cmp128$i$i = 0, $cmp133$i = 0, $cmp135$i = 0, $cmp137$i = 0, $cmp138$i = 0, $cmp139 = 0, $cmp141$i = 0, $cmp144$i$i = 0, $cmp146 = 0, $cmp147$i = 0, $cmp14799$i = 0, $cmp15$i = 0, $cmp151$i = 0, $cmp152$i = 0, $cmp155$i = 0, $cmp156 = 0, $cmp156$i = 0;
+ var $cmp156$i$i = 0, $cmp157$i = 0, $cmp159$i = 0, $cmp162 = 0, $cmp162$i = 0, $cmp162$i184 = 0, $cmp166$i = 0, $cmp168$i$i = 0, $cmp174$i = 0, $cmp180$i = 0, $cmp185$i = 0, $cmp185$i$i = 0, $cmp186 = 0, $cmp186$i = 0, $cmp19$i = 0, $cmp190$i = 0, $cmp191$i = 0, $cmp2$i$i = 0, $cmp2$i$i$i = 0, $cmp20$i$i = 0;
+ var $cmp203$i = 0, $cmp205$i = 0, $cmp209$i = 0, $cmp21$i = 0, $cmp215$i$i = 0, $cmp217$i = 0, $cmp218$i = 0, $cmp224$i = 0, $cmp228$i = 0, $cmp229$i = 0, $cmp24$i = 0, $cmp24$i$i = 0, $cmp246$i = 0, $cmp254$i$i = 0, $cmp257$i = 0, $cmp258$i$i = 0, $cmp26$i = 0, $cmp265$i = 0, $cmp27$i$i = 0, $cmp28$i = 0;
+ var $cmp28$i$i = 0, $cmp284$i = 0, $cmp29 = 0, $cmp3$i$i = 0, $cmp306$i$i = 0, $cmp31 = 0, $cmp319$i = 0, $cmp319$i$i = 0, $cmp3196$i$i = 0, $cmp32$i = 0, $cmp32$i138 = 0, $cmp323$i = 0, $cmp327$i$i = 0, $cmp34$i = 0, $cmp34$i$i = 0, $cmp35$i = 0, $cmp36$i = 0, $cmp36$i$i = 0, $cmp374$i = 0, $cmp38$i = 0;
+ var $cmp38$i$i = 0, $cmp388$i = 0, $cmp38813$i = 0, $cmp396$i = 0, $cmp40$i = 0, $cmp43$i = 0, $cmp45$i = 0, $cmp46$i = 0, $cmp46$i$i = 0, $cmp49$i = 0, $cmp5 = 0, $cmp55$i = 0, $cmp55$i166 = 0, $cmp57$i = 0, $cmp57$i167 = 0, $cmp59$i$i = 0, $cmp60$i = 0, $cmp62$i = 0, $cmp63$i = 0, $cmp63$i$i = 0;
+ var $cmp65$i = 0, $cmp66$i = 0, $cmp66$i140 = 0, $cmp69$i = 0, $cmp7$i$i = 0, $cmp70 = 0, $cmp72$i = 0, $cmp75$i$i = 0, $cmp76$i = 0, $cmp81$i = 0, $cmp85$i = 0, $cmp89$i = 0, $cmp9$i$i = 0, $cmp90$i = 0, $cmp91$i = 0, $cmp93$i = 0, $cmp95$i = 0, $cmp96$i = 0, $cmp97$i = 0, $cmp97$i$i = 0;
+ var $cmp9716$i = 0, $cmp99 = 0, $cond = 0, $cond$i = 0, $cond$i$i = 0, $cond$i$i$i = 0, $cond$i17$i = 0, $cond$i40$i = 0, $cond$i48$i = 0, $cond1$i$i = 0, $cond115$i = 0, $cond115$i$i = 0, $cond13$i$i = 0, $cond15$i$i = 0, $cond2$i = 0, $cond3$i = 0, $cond315$i$i = 0, $cond383$i = 0, $cond4$i = 0, $fd$i = 0;
+ var $fd$i$i = 0, $fd$i177 = 0, $fd103$i$i = 0, $fd123 = 0, $fd140$i$i = 0, $fd146$i = 0, $fd148$i$i = 0, $fd160$i$i = 0, $fd219$i = 0, $fd247$i$i = 0, $fd303$i$i = 0, $fd312$i = 0, $fd339$i$i = 0, $fd344$i$i = 0, $fd359$i$i = 0, $fd371$i = 0, $fd408$i = 0, $fd416$i = 0, $fd431$i = 0, $fd54$i$i = 0;
+ var $fd57$i = 0, $fd68$i$i = 0, $fd69 = 0, $fd78$i$i = 0, $fd9 = 0, $fd92$i$i = 0, $head = 0, $head$i = 0, $head$i$i = 0, $head$i$i$i = 0, $head$i164 = 0, $head$i22$i = 0, $head$i42$i = 0, $head$i52$i = 0, $head118$i$i = 0, $head1186$i$i = 0, $head168 = 0, $head173 = 0, $head177 = 0, $head179 = 0;
+ var $head179$i = 0, $head182$i = 0, $head187$i = 0, $head189$i = 0, $head195 = 0, $head198 = 0, $head208$i$i = 0, $head211$i$i = 0, $head23$i$i = 0, $head25 = 0, $head26$i$i = 0, $head265$i = 0, $head268$i = 0, $head271$i = 0, $head274$i = 0, $head279$i = 0, $head281$i = 0, $head29$i = 0, $head29$i$i = 0, $head317$i$i = 0;
+ var $head3174$i$i = 0, $head32$i$i = 0, $head34$i$i = 0, $head386$i = 0, $head38611$i = 0, $head7$i$i = 0, $head7$i$i$i = 0, $head7$i54$i = 0, $head94 = 0, $head97 = 0, $head99$i = 0, $idx$0$i = 0, $index$i = 0, $index$i$i = 0, $index$i189 = 0, $index$i29$i = 0, $index288$i$i = 0, $index356$i = 0, $magic$i$i = 0, $nb$0 = 0;
+ var $neg = 0, $neg$i = 0, $neg$i$i = 0, $neg$i137 = 0, $neg$i190 = 0, $neg103$i = 0, $neg13 = 0, $neg132$i$i = 0, $neg48$i = 0, $neg73 = 0, $next$i = 0, $next$i$i = 0, $next$i$i$i = 0, $next231$i = 0, $not$cmp141$i = 0, $oldfirst$0$i$i = 0, $or$cond$i = 0, $or$cond$i168 = 0, $or$cond1$i = 0, $or$cond1$i165 = 0;
+ var $or$cond11$i = 0, $or$cond2$i = 0, $or$cond4$i = 0, $or$cond5$i = 0, $or$cond7$i = 0, $or$cond8$i = 0, $or$cond8$not$i = 0, $or$cond97$i = 0, $or$cond98$i = 0, $or$i = 0, $or$i$i = 0, $or$i$i$i = 0, $or$i169 = 0, $or$i51$i = 0, $or101$i$i = 0, $or110 = 0, $or167 = 0, $or172 = 0, $or176 = 0, $or178$i = 0;
+ var $or180 = 0, $or183$i = 0, $or186$i = 0, $or188$i = 0, $or19$i$i = 0, $or194 = 0, $or197 = 0, $or204$i = 0, $or210$i$i = 0, $or22$i$i = 0, $or23 = 0, $or232$i$i = 0, $or26 = 0, $or264$i = 0, $or267$i = 0, $or270$i = 0, $or275$i = 0, $or278$i = 0, $or28$i$i = 0, $or280$i = 0;
+ var $or297$i = 0, $or300$i$i = 0, $or33$i$i = 0, $or368$i = 0, $or40 = 0, $or44$i$i = 0, $or93 = 0, $or96 = 0, $parent$i = 0, $parent$i$i = 0, $parent$i175 = 0, $parent$i27$i = 0, $parent135$i = 0, $parent138$i$i = 0, $parent149$i = 0, $parent162$i$i = 0, $parent165$i$i = 0, $parent166$i = 0, $parent179$i$i = 0, $parent196$i$i = 0;
+ var $parent226$i = 0, $parent240$i = 0, $parent257$i = 0, $parent301$i$i = 0, $parent337$i$i = 0, $parent361$i$i = 0, $parent369$i = 0, $parent406$i = 0, $parent433$i = 0, $qsize$0$i$i = 0, $retval$0 = 0, $rsize$0$i = 0, $rsize$0$i162 = 0, $rsize$1$i = 0, $rsize$3$i = 0, $rsize$4$lcssa$i = 0, $rsize$418$i = 0, $rsize$418$i$ph = 0, $rst$0$i = 0, $rst$1$i = 0;
+ var $sflags193$i = 0, $sflags235$i = 0, $shl = 0, $shl$i = 0, $shl$i$i = 0, $shl$i153 = 0, $shl102 = 0, $shl105 = 0, $shl116$i$i = 0, $shl12 = 0, $shl127$i$i = 0, $shl131$i$i = 0, $shl15$i = 0, $shl18$i = 0, $shl192$i = 0, $shl195$i = 0, $shl198$i = 0, $shl22 = 0, $shl222$i$i = 0, $shl226$i$i = 0;
+ var $shl265$i$i = 0, $shl270$i$i = 0, $shl276$i$i = 0, $shl279$i$i = 0, $shl288$i = 0, $shl291$i = 0, $shl294$i$i = 0, $shl31$i = 0, $shl316$i$i = 0, $shl326$i$i = 0, $shl333$i = 0, $shl338$i = 0, $shl344$i = 0, $shl347$i = 0, $shl35 = 0, $shl362$i = 0, $shl37 = 0, $shl384$i = 0, $shl39$i$i = 0, $shl395$i = 0;
+ var $shl48$i$i = 0, $shl60$i = 0, $shl65 = 0, $shl70$i$i = 0, $shl72 = 0, $shl75$i$i = 0, $shl81$i$i = 0, $shl84$i$i = 0, $shl9$i = 0, $shl90 = 0, $shl95$i$i = 0, $shr = 0, $shr$i = 0, $shr$i$i = 0, $shr$i148 = 0, $shr$i25$i = 0, $shr101 = 0, $shr11$i = 0, $shr11$i156 = 0, $shr110$i$i = 0;
+ var $shr12$i = 0, $shr124$i$i = 0, $shr15$i = 0, $shr16$i = 0, $shr16$i157 = 0, $shr19$i = 0, $shr194$i = 0, $shr20$i = 0, $shr214$i$i = 0, $shr253$i$i = 0, $shr263$i$i = 0, $shr267$i$i = 0, $shr27$i = 0, $shr272$i$i = 0, $shr277$i$i = 0, $shr281$i$i = 0, $shr283$i = 0, $shr3 = 0, $shr310$i$i = 0, $shr318$i = 0;
+ var $shr323$i$i = 0, $shr330$i = 0, $shr335$i = 0, $shr340$i = 0, $shr345$i = 0, $shr349$i = 0, $shr378$i = 0, $shr392$i = 0, $shr4$i = 0, $shr42$i = 0, $shr45 = 0, $shr47 = 0, $shr48 = 0, $shr5$i = 0, $shr5$i151 = 0, $shr51 = 0, $shr52 = 0, $shr55 = 0, $shr56 = 0, $shr58$i$i = 0;
+ var $shr59 = 0, $shr60 = 0, $shr63 = 0, $shr68$i$i = 0, $shr7$i = 0, $shr7$i154 = 0, $shr72$i = 0, $shr72$i$i = 0, $shr75$i = 0, $shr76$i = 0, $shr77$i$i = 0, $shr79$i = 0, $shr8$i = 0, $shr80$i = 0, $shr82$i$i = 0, $shr83$i = 0, $shr84$i = 0, $shr86$i$i = 0, $shr87$i = 0, $shr88$i = 0;
+ var $shr91$i = 0, $size$i$i = 0, $size$i$i$i = 0, $size$i$i$le = 0, $size188$i = 0, $size188$i$le = 0, $size245$i = 0, $sizebits$0$i = 0, $sp$0$i$i = 0, $sp$0$i$i$i = 0, $sp$0112$i = 0, $sp$1111$i = 0, $spec$select$i = 0, $spec$select$i171 = 0, $spec$select1$i = 0, $spec$select2$i = 0, $spec$select5$i = 0, $spec$select9$i = 0, $spec$select96$i = 0, $ssize$2$ph$i = 0;
+ var $sub = 0, $sub$i = 0, $sub$i$i = 0, $sub$i$i$i = 0, $sub$i136 = 0, $sub$i147 = 0, $sub$i16$i = 0, $sub$i38$i = 0, $sub$i46$i = 0, $sub$ptr$lhs$cast$i = 0, $sub$ptr$lhs$cast$i$i = 0, $sub$ptr$lhs$cast$i19$i = 0, $sub$ptr$rhs$cast$i = 0, $sub$ptr$rhs$cast$i$i = 0, $sub$ptr$rhs$cast$i20$i = 0, $sub$ptr$sub$i = 0, $sub$ptr$sub$i$i = 0, $sub$ptr$sub$i21$i = 0, $sub10$i = 0, $sub101$i = 0;
+ var $sub112$i = 0, $sub113$i$i = 0, $sub118$i = 0, $sub12$i$i = 0, $sub14$i = 0, $sub16$i$i = 0, $sub160 = 0, $sub172$i = 0, $sub18$i$i = 0, $sub190 = 0, $sub2$i = 0, $sub22$i = 0, $sub260$i = 0, $sub262$i$i = 0, $sub266$i$i = 0, $sub271$i$i = 0, $sub275$i$i = 0, $sub30$i = 0, $sub31$i = 0, $sub313$i$i = 0;
+ var $sub329$i = 0, $sub33$i = 0, $sub334$i = 0, $sub339$i = 0, $sub343$i = 0, $sub381$i = 0, $sub4$i = 0, $sub41$i = 0, $sub42 = 0, $sub44 = 0, $sub5$i$i = 0, $sub5$i$i$i = 0, $sub5$i50$i = 0, $sub50$i = 0, $sub6$i = 0, $sub63$i = 0, $sub67$i = 0, $sub67$i$i = 0, $sub70$i = 0, $sub71$i$i = 0;
+ var $sub76$i$i = 0, $sub80$i$i = 0, $sub91 = 0, $sub99$i = 0, $t$0$i = 0, $t$0$i161 = 0, $t$2$i = 0, $t$4$i = 0, $t$517$i = 0, $t$517$i$ph = 0, $tbase$795$i = 0, $tobool$i$i = 0, $tobool107 = 0, $tobool195$i = 0, $tobool200$i = 0, $tobool228$i$i = 0, $tobool237$i = 0, $tobool293$i = 0, $tobool296$i$i = 0, $tobool30$i = 0;
+ var $tobool364$i = 0, $tobool97$i$i = 0, $tsize$2647482$i = 0, $tsize$4$i = 0, $tsize$794$i = 0, $v$0$i = 0, $v$0$i163 = 0, $v$1$i = 0, $v$3$i = 0, $v$3$i204 = 0, $v$4$lcssa$i = 0, $v$419$i = 0, $v$419$i$ph = 0, $xor$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0;
+ $magic$i$i = sp;
+ $cmp = ($bytes>>>0)<(245);
+ do {
+ if ($cmp) {
+ $cmp1 = ($bytes>>>0)<(11);
+ $add2 = (($bytes) + 11)|0;
+ $and = $add2 & -8;
+ $cond = $cmp1 ? 16 : $and;
+ $shr = $cond >>> 3;
+ $0 = HEAP32[8120]|0;
+ $shr3 = $0 >>> $shr;
+ $and4 = $shr3 & 3;
+ $cmp5 = ($and4|0)==(0);
+ if (!($cmp5)) {
+ $neg = $shr3 & 1;
+ $and7 = $neg ^ 1;
+ $add8 = (($and7) + ($shr))|0;
+ $shl = $add8 << 1;
+ $arrayidx = (32520 + ($shl<<2)|0);
+ $1 = ((($arrayidx)) + 8|0);
+ $2 = HEAP32[$1>>2]|0;
+ $fd9 = ((($2)) + 8|0);
+ $3 = HEAP32[$fd9>>2]|0;
+ $cmp10 = ($3|0)==($arrayidx|0);
+ if ($cmp10) {
+ $shl12 = 1 << $add8;
+ $neg13 = $shl12 ^ -1;
+ $and14 = $0 & $neg13;
+ HEAP32[8120] = $and14;
+ } else {
+ $bk18 = ((($3)) + 12|0);
+ HEAP32[$bk18>>2] = $arrayidx;
+ HEAP32[$1>>2] = $3;
+ }
+ $shl22 = $add8 << 3;
+ $or23 = $shl22 | 3;
+ $head = ((($2)) + 4|0);
+ HEAP32[$head>>2] = $or23;
+ $add$ptr = (($2) + ($shl22)|0);
+ $head25 = ((($add$ptr)) + 4|0);
+ $4 = HEAP32[$head25>>2]|0;
+ $or26 = $4 | 1;
+ HEAP32[$head25>>2] = $or26;
+ $retval$0 = $fd9;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ $5 = HEAP32[(32488)>>2]|0;
+ $cmp29 = ($cond>>>0)>($5>>>0);
+ if ($cmp29) {
+ $cmp31 = ($shr3|0)==(0);
+ if (!($cmp31)) {
+ $shl35 = $shr3 << $shr;
+ $shl37 = 2 << $shr;
+ $sub = (0 - ($shl37))|0;
+ $or40 = $shl37 | $sub;
+ $and41 = $shl35 & $or40;
+ $sub42 = (0 - ($and41))|0;
+ $and43 = $and41 & $sub42;
+ $sub44 = (($and43) + -1)|0;
+ $shr45 = $sub44 >>> 12;
+ $and46 = $shr45 & 16;
+ $shr47 = $sub44 >>> $and46;
+ $shr48 = $shr47 >>> 5;
+ $and49 = $shr48 & 8;
+ $add50 = $and49 | $and46;
+ $shr51 = $shr47 >>> $and49;
+ $shr52 = $shr51 >>> 2;
+ $and53 = $shr52 & 4;
+ $add54 = $add50 | $and53;
+ $shr55 = $shr51 >>> $and53;
+ $shr56 = $shr55 >>> 1;
+ $and57 = $shr56 & 2;
+ $add58 = $add54 | $and57;
+ $shr59 = $shr55 >>> $and57;
+ $shr60 = $shr59 >>> 1;
+ $and61 = $shr60 & 1;
+ $add62 = $add58 | $and61;
+ $shr63 = $shr59 >>> $and61;
+ $add64 = (($add62) + ($shr63))|0;
+ $shl65 = $add64 << 1;
+ $arrayidx66 = (32520 + ($shl65<<2)|0);
+ $6 = ((($arrayidx66)) + 8|0);
+ $7 = HEAP32[$6>>2]|0;
+ $fd69 = ((($7)) + 8|0);
+ $8 = HEAP32[$fd69>>2]|0;
+ $cmp70 = ($8|0)==($arrayidx66|0);
+ if ($cmp70) {
+ $shl72 = 1 << $add64;
+ $neg73 = $shl72 ^ -1;
+ $and74 = $0 & $neg73;
+ HEAP32[8120] = $and74;
+ $10 = $and74;
+ } else {
+ $bk85 = ((($8)) + 12|0);
+ HEAP32[$bk85>>2] = $arrayidx66;
+ HEAP32[$6>>2] = $8;
+ $10 = $0;
+ }
+ $shl90 = $add64 << 3;
+ $sub91 = (($shl90) - ($cond))|0;
+ $or93 = $cond | 3;
+ $head94 = ((($7)) + 4|0);
+ HEAP32[$head94>>2] = $or93;
+ $add$ptr95 = (($7) + ($cond)|0);
+ $or96 = $sub91 | 1;
+ $head97 = ((($add$ptr95)) + 4|0);
+ HEAP32[$head97>>2] = $or96;
+ $add$ptr98 = (($7) + ($shl90)|0);
+ HEAP32[$add$ptr98>>2] = $sub91;
+ $cmp99 = ($5|0)==(0);
+ if (!($cmp99)) {
+ $9 = HEAP32[(32500)>>2]|0;
+ $shr101 = $5 >>> 3;
+ $shl102 = $shr101 << 1;
+ $arrayidx103 = (32520 + ($shl102<<2)|0);
+ $shl105 = 1 << $shr101;
+ $and106 = $10 & $shl105;
+ $tobool107 = ($and106|0)==(0);
+ if ($tobool107) {
+ $or110 = $10 | $shl105;
+ HEAP32[8120] = $or110;
+ $$pre = ((($arrayidx103)) + 8|0);
+ $$pre$phiZ2D = $$pre;$F104$0 = $arrayidx103;
+ } else {
+ $11 = ((($arrayidx103)) + 8|0);
+ $12 = HEAP32[$11>>2]|0;
+ $$pre$phiZ2D = $11;$F104$0 = $12;
+ }
+ HEAP32[$$pre$phiZ2D>>2] = $9;
+ $bk122 = ((($F104$0)) + 12|0);
+ HEAP32[$bk122>>2] = $9;
+ $fd123 = ((($9)) + 8|0);
+ HEAP32[$fd123>>2] = $F104$0;
+ $bk124 = ((($9)) + 12|0);
+ HEAP32[$bk124>>2] = $arrayidx103;
+ }
+ HEAP32[(32488)>>2] = $sub91;
+ HEAP32[(32500)>>2] = $add$ptr95;
+ $retval$0 = $fd69;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ $13 = HEAP32[(32484)>>2]|0;
+ $cmp128 = ($13|0)==(0);
+ if ($cmp128) {
+ $nb$0 = $cond;
+ } else {
+ $sub$i = (0 - ($13))|0;
+ $and$i = $13 & $sub$i;
+ $sub2$i = (($and$i) + -1)|0;
+ $shr$i = $sub2$i >>> 12;
+ $and3$i = $shr$i & 16;
+ $shr4$i = $sub2$i >>> $and3$i;
+ $shr5$i = $shr4$i >>> 5;
+ $and6$i = $shr5$i & 8;
+ $add$i = $and6$i | $and3$i;
+ $shr7$i = $shr4$i >>> $and6$i;
+ $shr8$i = $shr7$i >>> 2;
+ $and9$i = $shr8$i & 4;
+ $add10$i = $add$i | $and9$i;
+ $shr11$i = $shr7$i >>> $and9$i;
+ $shr12$i = $shr11$i >>> 1;
+ $and13$i = $shr12$i & 2;
+ $add14$i = $add10$i | $and13$i;
+ $shr15$i = $shr11$i >>> $and13$i;
+ $shr16$i = $shr15$i >>> 1;
+ $and17$i = $shr16$i & 1;
+ $add18$i = $add14$i | $and17$i;
+ $shr19$i = $shr15$i >>> $and17$i;
+ $add20$i = (($add18$i) + ($shr19$i))|0;
+ $arrayidx$i = (32784 + ($add20$i<<2)|0);
+ $14 = HEAP32[$arrayidx$i>>2]|0;
+ $head$i = ((($14)) + 4|0);
+ $15 = HEAP32[$head$i>>2]|0;
+ $and21$i = $15 & -8;
+ $sub22$i = (($and21$i) - ($cond))|0;
+ $rsize$0$i = $sub22$i;$t$0$i = $14;$v$0$i = $14;
+ while(1) {
+ $arrayidx23$i = ((($t$0$i)) + 16|0);
+ $16 = HEAP32[$arrayidx23$i>>2]|0;
+ $cmp$i = ($16|0)==(0|0);
+ if ($cmp$i) {
+ $arrayidx27$i = ((($t$0$i)) + 20|0);
+ $17 = HEAP32[$arrayidx27$i>>2]|0;
+ $cmp28$i = ($17|0)==(0|0);
+ if ($cmp28$i) {
+ break;
+ } else {
+ $cond4$i = $17;
+ }
+ } else {
+ $cond4$i = $16;
+ }
+ $head29$i = ((($cond4$i)) + 4|0);
+ $18 = HEAP32[$head29$i>>2]|0;
+ $and30$i = $18 & -8;
+ $sub31$i = (($and30$i) - ($cond))|0;
+ $cmp32$i = ($sub31$i>>>0)<($rsize$0$i>>>0);
+ $spec$select$i = $cmp32$i ? $sub31$i : $rsize$0$i;
+ $spec$select1$i = $cmp32$i ? $cond4$i : $v$0$i;
+ $rsize$0$i = $spec$select$i;$t$0$i = $cond4$i;$v$0$i = $spec$select1$i;
+ }
+ $add$ptr$i = (($v$0$i) + ($cond)|0);
+ $cmp35$i = ($add$ptr$i>>>0)>($v$0$i>>>0);
+ if ($cmp35$i) {
+ $parent$i = ((($v$0$i)) + 24|0);
+ $19 = HEAP32[$parent$i>>2]|0;
+ $bk$i = ((($v$0$i)) + 12|0);
+ $20 = HEAP32[$bk$i>>2]|0;
+ $cmp40$i = ($20|0)==($v$0$i|0);
+ do {
+ if ($cmp40$i) {
+ $arrayidx61$i = ((($v$0$i)) + 20|0);
+ $22 = HEAP32[$arrayidx61$i>>2]|0;
+ $cmp62$i = ($22|0)==(0|0);
+ if ($cmp62$i) {
+ $arrayidx65$i = ((($v$0$i)) + 16|0);
+ $23 = HEAP32[$arrayidx65$i>>2]|0;
+ $cmp66$i = ($23|0)==(0|0);
+ if ($cmp66$i) {
+ $R$3$i = 0;
+ break;
+ } else {
+ $R$1$i$ph = $23;$RP$1$i$ph = $arrayidx65$i;
+ }
+ } else {
+ $R$1$i$ph = $22;$RP$1$i$ph = $arrayidx61$i;
+ }
+ $R$1$i = $R$1$i$ph;$RP$1$i = $RP$1$i$ph;
+ while(1) {
+ $arrayidx71$i = ((($R$1$i)) + 20|0);
+ $24 = HEAP32[$arrayidx71$i>>2]|0;
+ $cmp72$i = ($24|0)==(0|0);
+ if ($cmp72$i) {
+ $arrayidx75$i = ((($R$1$i)) + 16|0);
+ $25 = HEAP32[$arrayidx75$i>>2]|0;
+ $cmp76$i = ($25|0)==(0|0);
+ if ($cmp76$i) {
+ break;
+ } else {
+ $R$1$i$be = $25;$RP$1$i$be = $arrayidx75$i;
+ }
+ } else {
+ $R$1$i$be = $24;$RP$1$i$be = $arrayidx71$i;
+ }
+ $R$1$i = $R$1$i$be;$RP$1$i = $RP$1$i$be;
+ }
+ HEAP32[$RP$1$i>>2] = 0;
+ $R$3$i = $R$1$i;
+ } else {
+ $fd$i = ((($v$0$i)) + 8|0);
+ $21 = HEAP32[$fd$i>>2]|0;
+ $bk56$i = ((($21)) + 12|0);
+ HEAP32[$bk56$i>>2] = $20;
+ $fd57$i = ((($20)) + 8|0);
+ HEAP32[$fd57$i>>2] = $21;
+ $R$3$i = $20;
+ }
+ } while(0);
+ $cmp90$i = ($19|0)==(0|0);
+ do {
+ if (!($cmp90$i)) {
+ $index$i = ((($v$0$i)) + 28|0);
+ $26 = HEAP32[$index$i>>2]|0;
+ $arrayidx94$i = (32784 + ($26<<2)|0);
+ $27 = HEAP32[$arrayidx94$i>>2]|0;
+ $cmp95$i = ($v$0$i|0)==($27|0);
+ if ($cmp95$i) {
+ HEAP32[$arrayidx94$i>>2] = $R$3$i;
+ $cond2$i = ($R$3$i|0)==(0|0);
+ if ($cond2$i) {
+ $shl$i = 1 << $26;
+ $neg$i = $shl$i ^ -1;
+ $and103$i = $13 & $neg$i;
+ HEAP32[(32484)>>2] = $and103$i;
+ break;
+ }
+ } else {
+ $arrayidx113$i = ((($19)) + 16|0);
+ $28 = HEAP32[$arrayidx113$i>>2]|0;
+ $cmp114$i = ($28|0)==($v$0$i|0);
+ $arrayidx121$i = ((($19)) + 20|0);
+ $arrayidx121$i$sink = $cmp114$i ? $arrayidx113$i : $arrayidx121$i;
+ HEAP32[$arrayidx121$i$sink>>2] = $R$3$i;
+ $cmp126$i = ($R$3$i|0)==(0|0);
+ if ($cmp126$i) {
+ break;
+ }
+ }
+ $parent135$i = ((($R$3$i)) + 24|0);
+ HEAP32[$parent135$i>>2] = $19;
+ $arrayidx137$i = ((($v$0$i)) + 16|0);
+ $29 = HEAP32[$arrayidx137$i>>2]|0;
+ $cmp138$i = ($29|0)==(0|0);
+ if (!($cmp138$i)) {
+ $arrayidx148$i = ((($R$3$i)) + 16|0);
+ HEAP32[$arrayidx148$i>>2] = $29;
+ $parent149$i = ((($29)) + 24|0);
+ HEAP32[$parent149$i>>2] = $R$3$i;
+ }
+ $arrayidx154$i = ((($v$0$i)) + 20|0);
+ $30 = HEAP32[$arrayidx154$i>>2]|0;
+ $cmp155$i = ($30|0)==(0|0);
+ if (!($cmp155$i)) {
+ $arrayidx165$i = ((($R$3$i)) + 20|0);
+ HEAP32[$arrayidx165$i>>2] = $30;
+ $parent166$i = ((($30)) + 24|0);
+ HEAP32[$parent166$i>>2] = $R$3$i;
+ }
+ }
+ } while(0);
+ $cmp174$i = ($rsize$0$i>>>0)<(16);
+ if ($cmp174$i) {
+ $add177$i = (($rsize$0$i) + ($cond))|0;
+ $or178$i = $add177$i | 3;
+ $head179$i = ((($v$0$i)) + 4|0);
+ HEAP32[$head179$i>>2] = $or178$i;
+ $add$ptr181$i = (($v$0$i) + ($add177$i)|0);
+ $head182$i = ((($add$ptr181$i)) + 4|0);
+ $31 = HEAP32[$head182$i>>2]|0;
+ $or183$i = $31 | 1;
+ HEAP32[$head182$i>>2] = $or183$i;
+ } else {
+ $or186$i = $cond | 3;
+ $head187$i = ((($v$0$i)) + 4|0);
+ HEAP32[$head187$i>>2] = $or186$i;
+ $or188$i = $rsize$0$i | 1;
+ $head189$i = ((($add$ptr$i)) + 4|0);
+ HEAP32[$head189$i>>2] = $or188$i;
+ $add$ptr190$i = (($add$ptr$i) + ($rsize$0$i)|0);
+ HEAP32[$add$ptr190$i>>2] = $rsize$0$i;
+ $cmp191$i = ($5|0)==(0);
+ if (!($cmp191$i)) {
+ $32 = HEAP32[(32500)>>2]|0;
+ $shr194$i = $5 >>> 3;
+ $shl195$i = $shr194$i << 1;
+ $arrayidx196$i = (32520 + ($shl195$i<<2)|0);
+ $shl198$i = 1 << $shr194$i;
+ $and199$i = $shl198$i & $0;
+ $tobool200$i = ($and199$i|0)==(0);
+ if ($tobool200$i) {
+ $or204$i = $shl198$i | $0;
+ HEAP32[8120] = $or204$i;
+ $$pre$i = ((($arrayidx196$i)) + 8|0);
+ $$pre$phi$iZ2D = $$pre$i;$F197$0$i = $arrayidx196$i;
+ } else {
+ $33 = ((($arrayidx196$i)) + 8|0);
+ $34 = HEAP32[$33>>2]|0;
+ $$pre$phi$iZ2D = $33;$F197$0$i = $34;
+ }
+ HEAP32[$$pre$phi$iZ2D>>2] = $32;
+ $bk218$i = ((($F197$0$i)) + 12|0);
+ HEAP32[$bk218$i>>2] = $32;
+ $fd219$i = ((($32)) + 8|0);
+ HEAP32[$fd219$i>>2] = $F197$0$i;
+ $bk220$i = ((($32)) + 12|0);
+ HEAP32[$bk220$i>>2] = $arrayidx196$i;
+ }
+ HEAP32[(32488)>>2] = $rsize$0$i;
+ HEAP32[(32500)>>2] = $add$ptr$i;
+ }
+ $add$ptr225$i = ((($v$0$i)) + 8|0);
+ $retval$0 = $add$ptr225$i;
+ STACKTOP = sp;return ($retval$0|0);
+ } else {
+ $nb$0 = $cond;
+ }
+ }
+ } else {
+ $nb$0 = $cond;
+ }
+ } else {
+ $cmp139 = ($bytes>>>0)>(4294967231);
+ if ($cmp139) {
+ $nb$0 = -1;
+ } else {
+ $add144 = (($bytes) + 11)|0;
+ $and145 = $add144 & -8;
+ $35 = HEAP32[(32484)>>2]|0;
+ $cmp146 = ($35|0)==(0);
+ if ($cmp146) {
+ $nb$0 = $and145;
+ } else {
+ $sub$i147 = (0 - ($and145))|0;
+ $shr$i148 = $add144 >>> 8;
+ $cmp$i149 = ($shr$i148|0)==(0);
+ if ($cmp$i149) {
+ $idx$0$i = 0;
+ } else {
+ $cmp1$i = ($and145>>>0)>(16777215);
+ if ($cmp1$i) {
+ $idx$0$i = 31;
+ } else {
+ $sub4$i = (($shr$i148) + 1048320)|0;
+ $shr5$i151 = $sub4$i >>> 16;
+ $and$i152 = $shr5$i151 & 8;
+ $shl$i153 = $shr$i148 << $and$i152;
+ $sub6$i = (($shl$i153) + 520192)|0;
+ $shr7$i154 = $sub6$i >>> 16;
+ $and8$i = $shr7$i154 & 4;
+ $add$i155 = $and8$i | $and$i152;
+ $shl9$i = $shl$i153 << $and8$i;
+ $sub10$i = (($shl9$i) + 245760)|0;
+ $shr11$i156 = $sub10$i >>> 16;
+ $and12$i = $shr11$i156 & 2;
+ $add13$i = $add$i155 | $and12$i;
+ $sub14$i = (14 - ($add13$i))|0;
+ $shl15$i = $shl9$i << $and12$i;
+ $shr16$i157 = $shl15$i >>> 15;
+ $add17$i158 = (($sub14$i) + ($shr16$i157))|0;
+ $shl18$i = $add17$i158 << 1;
+ $add19$i = (($add17$i158) + 7)|0;
+ $shr20$i = $and145 >>> $add19$i;
+ $and21$i159 = $shr20$i & 1;
+ $add22$i = $and21$i159 | $shl18$i;
+ $idx$0$i = $add22$i;
+ }
+ }
+ $arrayidx$i160 = (32784 + ($idx$0$i<<2)|0);
+ $36 = HEAP32[$arrayidx$i160>>2]|0;
+ $cmp24$i = ($36|0)==(0|0);
+ L79: do {
+ if ($cmp24$i) {
+ $rsize$3$i = $sub$i147;$t$2$i = 0;$v$3$i = 0;
+ label = 61;
+ } else {
+ $cmp26$i = ($idx$0$i|0)==(31);
+ $shr27$i = $idx$0$i >>> 1;
+ $sub30$i = (25 - ($shr27$i))|0;
+ $cond$i = $cmp26$i ? 0 : $sub30$i;
+ $shl31$i = $and145 << $cond$i;
+ $rsize$0$i162 = $sub$i147;$rst$0$i = 0;$sizebits$0$i = $shl31$i;$t$0$i161 = $36;$v$0$i163 = 0;
+ while(1) {
+ $head$i164 = ((($t$0$i161)) + 4|0);
+ $37 = HEAP32[$head$i164>>2]|0;
+ $and32$i = $37 & -8;
+ $sub33$i = (($and32$i) - ($and145))|0;
+ $cmp34$i = ($sub33$i>>>0)<($rsize$0$i162>>>0);
+ if ($cmp34$i) {
+ $cmp36$i = ($sub33$i|0)==(0);
+ if ($cmp36$i) {
+ $rsize$418$i$ph = 0;$t$517$i$ph = $t$0$i161;$v$419$i$ph = $t$0$i161;
+ label = 65;
+ break L79;
+ } else {
+ $rsize$1$i = $sub33$i;$v$1$i = $t$0$i161;
+ }
+ } else {
+ $rsize$1$i = $rsize$0$i162;$v$1$i = $v$0$i163;
+ }
+ $arrayidx40$i = ((($t$0$i161)) + 20|0);
+ $38 = HEAP32[$arrayidx40$i>>2]|0;
+ $shr42$i = $sizebits$0$i >>> 31;
+ $arrayidx44$i = (((($t$0$i161)) + 16|0) + ($shr42$i<<2)|0);
+ $39 = HEAP32[$arrayidx44$i>>2]|0;
+ $cmp45$i = ($38|0)==(0|0);
+ $cmp46$i = ($38|0)==($39|0);
+ $or$cond1$i165 = $cmp45$i | $cmp46$i;
+ $rst$1$i = $or$cond1$i165 ? $rst$0$i : $38;
+ $cmp49$i = ($39|0)==(0|0);
+ $spec$select5$i = $sizebits$0$i << 1;
+ if ($cmp49$i) {
+ $rsize$3$i = $rsize$1$i;$t$2$i = $rst$1$i;$v$3$i = $v$1$i;
+ label = 61;
+ break;
+ } else {
+ $rsize$0$i162 = $rsize$1$i;$rst$0$i = $rst$1$i;$sizebits$0$i = $spec$select5$i;$t$0$i161 = $39;$v$0$i163 = $v$1$i;
+ }
+ }
+ }
+ } while(0);
+ if ((label|0) == 61) {
+ $cmp55$i166 = ($t$2$i|0)==(0|0);
+ $cmp57$i167 = ($v$3$i|0)==(0|0);
+ $or$cond$i168 = $cmp55$i166 & $cmp57$i167;
+ if ($or$cond$i168) {
+ $shl60$i = 2 << $idx$0$i;
+ $sub63$i = (0 - ($shl60$i))|0;
+ $or$i169 = $shl60$i | $sub63$i;
+ $and64$i = $or$i169 & $35;
+ $cmp65$i = ($and64$i|0)==(0);
+ if ($cmp65$i) {
+ $nb$0 = $and145;
+ break;
+ }
+ $sub67$i = (0 - ($and64$i))|0;
+ $and68$i = $and64$i & $sub67$i;
+ $sub70$i = (($and68$i) + -1)|0;
+ $shr72$i = $sub70$i >>> 12;
+ $and73$i = $shr72$i & 16;
+ $shr75$i = $sub70$i >>> $and73$i;
+ $shr76$i = $shr75$i >>> 5;
+ $and77$i = $shr76$i & 8;
+ $add78$i = $and77$i | $and73$i;
+ $shr79$i = $shr75$i >>> $and77$i;
+ $shr80$i = $shr79$i >>> 2;
+ $and81$i = $shr80$i & 4;
+ $add82$i = $add78$i | $and81$i;
+ $shr83$i = $shr79$i >>> $and81$i;
+ $shr84$i = $shr83$i >>> 1;
+ $and85$i = $shr84$i & 2;
+ $add86$i = $add82$i | $and85$i;
+ $shr87$i = $shr83$i >>> $and85$i;
+ $shr88$i = $shr87$i >>> 1;
+ $and89$i = $shr88$i & 1;
+ $add90$i = $add86$i | $and89$i;
+ $shr91$i = $shr87$i >>> $and89$i;
+ $add92$i = (($add90$i) + ($shr91$i))|0;
+ $arrayidx94$i170 = (32784 + ($add92$i<<2)|0);
+ $40 = HEAP32[$arrayidx94$i170>>2]|0;
+ $t$4$i = $40;$v$3$i204 = 0;
+ } else {
+ $t$4$i = $t$2$i;$v$3$i204 = $v$3$i;
+ }
+ $cmp9716$i = ($t$4$i|0)==(0|0);
+ if ($cmp9716$i) {
+ $rsize$4$lcssa$i = $rsize$3$i;$v$4$lcssa$i = $v$3$i204;
+ } else {
+ $rsize$418$i$ph = $rsize$3$i;$t$517$i$ph = $t$4$i;$v$419$i$ph = $v$3$i204;
+ label = 65;
+ }
+ }
+ if ((label|0) == 65) {
+ $rsize$418$i = $rsize$418$i$ph;$t$517$i = $t$517$i$ph;$v$419$i = $v$419$i$ph;
+ while(1) {
+ $head99$i = ((($t$517$i)) + 4|0);
+ $41 = HEAP32[$head99$i>>2]|0;
+ $and100$i = $41 & -8;
+ $sub101$i = (($and100$i) - ($and145))|0;
+ $cmp102$i = ($sub101$i>>>0)<($rsize$418$i>>>0);
+ $spec$select$i171 = $cmp102$i ? $sub101$i : $rsize$418$i;
+ $spec$select2$i = $cmp102$i ? $t$517$i : $v$419$i;
+ $arrayidx106$i = ((($t$517$i)) + 16|0);
+ $42 = HEAP32[$arrayidx106$i>>2]|0;
+ $cmp107$i = ($42|0)==(0|0);
+ if ($cmp107$i) {
+ $arrayidx113$i173 = ((($t$517$i)) + 20|0);
+ $43 = HEAP32[$arrayidx113$i173>>2]|0;
+ $cond115$i = $43;
+ } else {
+ $cond115$i = $42;
+ }
+ $cmp97$i = ($cond115$i|0)==(0|0);
+ if ($cmp97$i) {
+ $rsize$4$lcssa$i = $spec$select$i171;$v$4$lcssa$i = $spec$select2$i;
+ break;
+ } else {
+ $rsize$418$i = $spec$select$i171;$t$517$i = $cond115$i;$v$419$i = $spec$select2$i;
+ }
+ }
+ }
+ $cmp116$i = ($v$4$lcssa$i|0)==(0|0);
+ if ($cmp116$i) {
+ $nb$0 = $and145;
+ } else {
+ $44 = HEAP32[(32488)>>2]|0;
+ $sub118$i = (($44) - ($and145))|0;
+ $cmp119$i = ($rsize$4$lcssa$i>>>0)<($sub118$i>>>0);
+ if ($cmp119$i) {
+ $add$ptr$i174 = (($v$4$lcssa$i) + ($and145)|0);
+ $cmp123$i = ($add$ptr$i174>>>0)>($v$4$lcssa$i>>>0);
+ if ($cmp123$i) {
+ $parent$i175 = ((($v$4$lcssa$i)) + 24|0);
+ $45 = HEAP32[$parent$i175>>2]|0;
+ $bk$i176 = ((($v$4$lcssa$i)) + 12|0);
+ $46 = HEAP32[$bk$i176>>2]|0;
+ $cmp128$i = ($46|0)==($v$4$lcssa$i|0);
+ do {
+ if ($cmp128$i) {
+ $arrayidx151$i = ((($v$4$lcssa$i)) + 20|0);
+ $48 = HEAP32[$arrayidx151$i>>2]|0;
+ $cmp152$i = ($48|0)==(0|0);
+ if ($cmp152$i) {
+ $arrayidx155$i = ((($v$4$lcssa$i)) + 16|0);
+ $49 = HEAP32[$arrayidx155$i>>2]|0;
+ $cmp156$i = ($49|0)==(0|0);
+ if ($cmp156$i) {
+ $R$3$i188 = 0;
+ break;
+ } else {
+ $R$1$i183$ph = $49;$RP$1$i182$ph = $arrayidx155$i;
+ }
+ } else {
+ $R$1$i183$ph = $48;$RP$1$i182$ph = $arrayidx151$i;
+ }
+ $R$1$i183 = $R$1$i183$ph;$RP$1$i182 = $RP$1$i182$ph;
+ while(1) {
+ $arrayidx161$i = ((($R$1$i183)) + 20|0);
+ $50 = HEAP32[$arrayidx161$i>>2]|0;
+ $cmp162$i184 = ($50|0)==(0|0);
+ if ($cmp162$i184) {
+ $arrayidx165$i185 = ((($R$1$i183)) + 16|0);
+ $51 = HEAP32[$arrayidx165$i185>>2]|0;
+ $cmp166$i = ($51|0)==(0|0);
+ if ($cmp166$i) {
+ break;
+ } else {
+ $R$1$i183$be = $51;$RP$1$i182$be = $arrayidx165$i185;
+ }
+ } else {
+ $R$1$i183$be = $50;$RP$1$i182$be = $arrayidx161$i;
+ }
+ $R$1$i183 = $R$1$i183$be;$RP$1$i182 = $RP$1$i182$be;
+ }
+ HEAP32[$RP$1$i182>>2] = 0;
+ $R$3$i188 = $R$1$i183;
+ } else {
+ $fd$i177 = ((($v$4$lcssa$i)) + 8|0);
+ $47 = HEAP32[$fd$i177>>2]|0;
+ $bk145$i = ((($47)) + 12|0);
+ HEAP32[$bk145$i>>2] = $46;
+ $fd146$i = ((($46)) + 8|0);
+ HEAP32[$fd146$i>>2] = $47;
+ $R$3$i188 = $46;
+ }
+ } while(0);
+ $cmp180$i = ($45|0)==(0|0);
+ do {
+ if ($cmp180$i) {
+ $61 = $35;
+ } else {
+ $index$i189 = ((($v$4$lcssa$i)) + 28|0);
+ $52 = HEAP32[$index$i189>>2]|0;
+ $arrayidx184$i = (32784 + ($52<<2)|0);
+ $53 = HEAP32[$arrayidx184$i>>2]|0;
+ $cmp185$i = ($v$4$lcssa$i|0)==($53|0);
+ if ($cmp185$i) {
+ HEAP32[$arrayidx184$i>>2] = $R$3$i188;
+ $cond3$i = ($R$3$i188|0)==(0|0);
+ if ($cond3$i) {
+ $shl192$i = 1 << $52;
+ $neg$i190 = $shl192$i ^ -1;
+ $and194$i191 = $35 & $neg$i190;
+ HEAP32[(32484)>>2] = $and194$i191;
+ $61 = $and194$i191;
+ break;
+ }
+ } else {
+ $arrayidx204$i = ((($45)) + 16|0);
+ $54 = HEAP32[$arrayidx204$i>>2]|0;
+ $cmp205$i = ($54|0)==($v$4$lcssa$i|0);
+ $arrayidx212$i = ((($45)) + 20|0);
+ $arrayidx212$i$sink = $cmp205$i ? $arrayidx204$i : $arrayidx212$i;
+ HEAP32[$arrayidx212$i$sink>>2] = $R$3$i188;
+ $cmp217$i = ($R$3$i188|0)==(0|0);
+ if ($cmp217$i) {
+ $61 = $35;
+ break;
+ }
+ }
+ $parent226$i = ((($R$3$i188)) + 24|0);
+ HEAP32[$parent226$i>>2] = $45;
+ $arrayidx228$i = ((($v$4$lcssa$i)) + 16|0);
+ $55 = HEAP32[$arrayidx228$i>>2]|0;
+ $cmp229$i = ($55|0)==(0|0);
+ if (!($cmp229$i)) {
+ $arrayidx239$i = ((($R$3$i188)) + 16|0);
+ HEAP32[$arrayidx239$i>>2] = $55;
+ $parent240$i = ((($55)) + 24|0);
+ HEAP32[$parent240$i>>2] = $R$3$i188;
+ }
+ $arrayidx245$i = ((($v$4$lcssa$i)) + 20|0);
+ $56 = HEAP32[$arrayidx245$i>>2]|0;
+ $cmp246$i = ($56|0)==(0|0);
+ if ($cmp246$i) {
+ $61 = $35;
+ } else {
+ $arrayidx256$i = ((($R$3$i188)) + 20|0);
+ HEAP32[$arrayidx256$i>>2] = $56;
+ $parent257$i = ((($56)) + 24|0);
+ HEAP32[$parent257$i>>2] = $R$3$i188;
+ $61 = $35;
+ }
+ }
+ } while(0);
+ $cmp265$i = ($rsize$4$lcssa$i>>>0)<(16);
+ L128: do {
+ if ($cmp265$i) {
+ $add268$i = (($rsize$4$lcssa$i) + ($and145))|0;
+ $or270$i = $add268$i | 3;
+ $head271$i = ((($v$4$lcssa$i)) + 4|0);
+ HEAP32[$head271$i>>2] = $or270$i;
+ $add$ptr273$i = (($v$4$lcssa$i) + ($add268$i)|0);
+ $head274$i = ((($add$ptr273$i)) + 4|0);
+ $57 = HEAP32[$head274$i>>2]|0;
+ $or275$i = $57 | 1;
+ HEAP32[$head274$i>>2] = $or275$i;
+ } else {
+ $or278$i = $and145 | 3;
+ $head279$i = ((($v$4$lcssa$i)) + 4|0);
+ HEAP32[$head279$i>>2] = $or278$i;
+ $or280$i = $rsize$4$lcssa$i | 1;
+ $head281$i = ((($add$ptr$i174)) + 4|0);
+ HEAP32[$head281$i>>2] = $or280$i;
+ $add$ptr282$i = (($add$ptr$i174) + ($rsize$4$lcssa$i)|0);
+ HEAP32[$add$ptr282$i>>2] = $rsize$4$lcssa$i;
+ $shr283$i = $rsize$4$lcssa$i >>> 3;
+ $cmp284$i = ($rsize$4$lcssa$i>>>0)<(256);
+ if ($cmp284$i) {
+ $shl288$i = $shr283$i << 1;
+ $arrayidx289$i = (32520 + ($shl288$i<<2)|0);
+ $58 = HEAP32[8120]|0;
+ $shl291$i = 1 << $shr283$i;
+ $and292$i = $58 & $shl291$i;
+ $tobool293$i = ($and292$i|0)==(0);
+ if ($tobool293$i) {
+ $or297$i = $58 | $shl291$i;
+ HEAP32[8120] = $or297$i;
+ $$pre$i194 = ((($arrayidx289$i)) + 8|0);
+ $$pre$phi$i195Z2D = $$pre$i194;$F290$0$i = $arrayidx289$i;
+ } else {
+ $59 = ((($arrayidx289$i)) + 8|0);
+ $60 = HEAP32[$59>>2]|0;
+ $$pre$phi$i195Z2D = $59;$F290$0$i = $60;
+ }
+ HEAP32[$$pre$phi$i195Z2D>>2] = $add$ptr$i174;
+ $bk311$i = ((($F290$0$i)) + 12|0);
+ HEAP32[$bk311$i>>2] = $add$ptr$i174;
+ $fd312$i = ((($add$ptr$i174)) + 8|0);
+ HEAP32[$fd312$i>>2] = $F290$0$i;
+ $bk313$i = ((($add$ptr$i174)) + 12|0);
+ HEAP32[$bk313$i>>2] = $arrayidx289$i;
+ break;
+ }
+ $shr318$i = $rsize$4$lcssa$i >>> 8;
+ $cmp319$i = ($shr318$i|0)==(0);
+ if ($cmp319$i) {
+ $I316$0$i = 0;
+ } else {
+ $cmp323$i = ($rsize$4$lcssa$i>>>0)>(16777215);
+ if ($cmp323$i) {
+ $I316$0$i = 31;
+ } else {
+ $sub329$i = (($shr318$i) + 1048320)|0;
+ $shr330$i = $sub329$i >>> 16;
+ $and331$i = $shr330$i & 8;
+ $shl333$i = $shr318$i << $and331$i;
+ $sub334$i = (($shl333$i) + 520192)|0;
+ $shr335$i = $sub334$i >>> 16;
+ $and336$i = $shr335$i & 4;
+ $add337$i = $and336$i | $and331$i;
+ $shl338$i = $shl333$i << $and336$i;
+ $sub339$i = (($shl338$i) + 245760)|0;
+ $shr340$i = $sub339$i >>> 16;
+ $and341$i = $shr340$i & 2;
+ $add342$i = $add337$i | $and341$i;
+ $sub343$i = (14 - ($add342$i))|0;
+ $shl344$i = $shl338$i << $and341$i;
+ $shr345$i = $shl344$i >>> 15;
+ $add346$i = (($sub343$i) + ($shr345$i))|0;
+ $shl347$i = $add346$i << 1;
+ $add348$i = (($add346$i) + 7)|0;
+ $shr349$i = $rsize$4$lcssa$i >>> $add348$i;
+ $and350$i = $shr349$i & 1;
+ $add351$i = $and350$i | $shl347$i;
+ $I316$0$i = $add351$i;
+ }
+ }
+ $arrayidx355$i = (32784 + ($I316$0$i<<2)|0);
+ $index356$i = ((($add$ptr$i174)) + 28|0);
+ HEAP32[$index356$i>>2] = $I316$0$i;
+ $child357$i = ((($add$ptr$i174)) + 16|0);
+ $arrayidx358$i = ((($child357$i)) + 4|0);
+ HEAP32[$arrayidx358$i>>2] = 0;
+ HEAP32[$child357$i>>2] = 0;
+ $shl362$i = 1 << $I316$0$i;
+ $and363$i = $61 & $shl362$i;
+ $tobool364$i = ($and363$i|0)==(0);
+ if ($tobool364$i) {
+ $or368$i = $61 | $shl362$i;
+ HEAP32[(32484)>>2] = $or368$i;
+ HEAP32[$arrayidx355$i>>2] = $add$ptr$i174;
+ $parent369$i = ((($add$ptr$i174)) + 24|0);
+ HEAP32[$parent369$i>>2] = $arrayidx355$i;
+ $bk370$i = ((($add$ptr$i174)) + 12|0);
+ HEAP32[$bk370$i>>2] = $add$ptr$i174;
+ $fd371$i = ((($add$ptr$i174)) + 8|0);
+ HEAP32[$fd371$i>>2] = $add$ptr$i174;
+ break;
+ }
+ $62 = HEAP32[$arrayidx355$i>>2]|0;
+ $head38611$i = ((($62)) + 4|0);
+ $63 = HEAP32[$head38611$i>>2]|0;
+ $and38712$i = $63 & -8;
+ $cmp38813$i = ($and38712$i|0)==($rsize$4$lcssa$i|0);
+ L145: do {
+ if ($cmp38813$i) {
+ $T$0$lcssa$i = $62;
+ } else {
+ $cmp374$i = ($I316$0$i|0)==(31);
+ $shr378$i = $I316$0$i >>> 1;
+ $sub381$i = (25 - ($shr378$i))|0;
+ $cond383$i = $cmp374$i ? 0 : $sub381$i;
+ $shl384$i = $rsize$4$lcssa$i << $cond383$i;
+ $K373$015$i = $shl384$i;$T$014$i = $62;
+ while(1) {
+ $shr392$i = $K373$015$i >>> 31;
+ $arrayidx394$i = (((($T$014$i)) + 16|0) + ($shr392$i<<2)|0);
+ $64 = HEAP32[$arrayidx394$i>>2]|0;
+ $cmp396$i = ($64|0)==(0|0);
+ if ($cmp396$i) {
+ break;
+ }
+ $shl395$i = $K373$015$i << 1;
+ $head386$i = ((($64)) + 4|0);
+ $65 = HEAP32[$head386$i>>2]|0;
+ $and387$i = $65 & -8;
+ $cmp388$i = ($and387$i|0)==($rsize$4$lcssa$i|0);
+ if ($cmp388$i) {
+ $T$0$lcssa$i = $64;
+ break L145;
+ } else {
+ $K373$015$i = $shl395$i;$T$014$i = $64;
+ }
+ }
+ HEAP32[$arrayidx394$i>>2] = $add$ptr$i174;
+ $parent406$i = ((($add$ptr$i174)) + 24|0);
+ HEAP32[$parent406$i>>2] = $T$014$i;
+ $bk407$i = ((($add$ptr$i174)) + 12|0);
+ HEAP32[$bk407$i>>2] = $add$ptr$i174;
+ $fd408$i = ((($add$ptr$i174)) + 8|0);
+ HEAP32[$fd408$i>>2] = $add$ptr$i174;
+ break L128;
+ }
+ } while(0);
+ $fd416$i = ((($T$0$lcssa$i)) + 8|0);
+ $66 = HEAP32[$fd416$i>>2]|0;
+ $bk429$i = ((($66)) + 12|0);
+ HEAP32[$bk429$i>>2] = $add$ptr$i174;
+ HEAP32[$fd416$i>>2] = $add$ptr$i174;
+ $fd431$i = ((($add$ptr$i174)) + 8|0);
+ HEAP32[$fd431$i>>2] = $66;
+ $bk432$i = ((($add$ptr$i174)) + 12|0);
+ HEAP32[$bk432$i>>2] = $T$0$lcssa$i;
+ $parent433$i = ((($add$ptr$i174)) + 24|0);
+ HEAP32[$parent433$i>>2] = 0;
+ }
+ } while(0);
+ $add$ptr441$i = ((($v$4$lcssa$i)) + 8|0);
+ $retval$0 = $add$ptr441$i;
+ STACKTOP = sp;return ($retval$0|0);
+ } else {
+ $nb$0 = $and145;
+ }
+ } else {
+ $nb$0 = $and145;
+ }
+ }
+ }
+ }
+ }
+ } while(0);
+ $67 = HEAP32[(32488)>>2]|0;
+ $cmp156 = ($67>>>0)<($nb$0>>>0);
+ if (!($cmp156)) {
+ $sub160 = (($67) - ($nb$0))|0;
+ $68 = HEAP32[(32500)>>2]|0;
+ $cmp162 = ($sub160>>>0)>(15);
+ if ($cmp162) {
+ $add$ptr166 = (($68) + ($nb$0)|0);
+ HEAP32[(32500)>>2] = $add$ptr166;
+ HEAP32[(32488)>>2] = $sub160;
+ $or167 = $sub160 | 1;
+ $head168 = ((($add$ptr166)) + 4|0);
+ HEAP32[$head168>>2] = $or167;
+ $add$ptr169 = (($68) + ($67)|0);
+ HEAP32[$add$ptr169>>2] = $sub160;
+ $or172 = $nb$0 | 3;
+ $head173 = ((($68)) + 4|0);
+ HEAP32[$head173>>2] = $or172;
+ } else {
+ HEAP32[(32488)>>2] = 0;
+ HEAP32[(32500)>>2] = 0;
+ $or176 = $67 | 3;
+ $head177 = ((($68)) + 4|0);
+ HEAP32[$head177>>2] = $or176;
+ $add$ptr178 = (($68) + ($67)|0);
+ $head179 = ((($add$ptr178)) + 4|0);
+ $69 = HEAP32[$head179>>2]|0;
+ $or180 = $69 | 1;
+ HEAP32[$head179>>2] = $or180;
+ }
+ $add$ptr182 = ((($68)) + 8|0);
+ $retval$0 = $add$ptr182;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ $70 = HEAP32[(32492)>>2]|0;
+ $cmp186 = ($70>>>0)>($nb$0>>>0);
+ if ($cmp186) {
+ $sub190 = (($70) - ($nb$0))|0;
+ HEAP32[(32492)>>2] = $sub190;
+ $71 = HEAP32[(32504)>>2]|0;
+ $add$ptr193 = (($71) + ($nb$0)|0);
+ HEAP32[(32504)>>2] = $add$ptr193;
+ $or194 = $sub190 | 1;
+ $head195 = ((($add$ptr193)) + 4|0);
+ HEAP32[$head195>>2] = $or194;
+ $or197 = $nb$0 | 3;
+ $head198 = ((($71)) + 4|0);
+ HEAP32[$head198>>2] = $or197;
+ $add$ptr199 = ((($71)) + 8|0);
+ $retval$0 = $add$ptr199;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ $72 = HEAP32[8238]|0;
+ $cmp$i133 = ($72|0)==(0);
+ if ($cmp$i133) {
+ HEAP32[(32960)>>2] = 4096;
+ HEAP32[(32956)>>2] = 4096;
+ HEAP32[(32964)>>2] = -1;
+ HEAP32[(32968)>>2] = -1;
+ HEAP32[(32972)>>2] = 0;
+ HEAP32[(32924)>>2] = 0;
+ $73 = $magic$i$i;
+ $xor$i$i = $73 & -16;
+ $and6$i$i = $xor$i$i ^ 1431655768;
+ HEAP32[8238] = $and6$i$i;
+ $74 = 4096;
+ } else {
+ $$pre$i134 = HEAP32[(32960)>>2]|0;
+ $74 = $$pre$i134;
+ }
+ $add$i135 = (($nb$0) + 48)|0;
+ $sub$i136 = (($nb$0) + 47)|0;
+ $add9$i = (($74) + ($sub$i136))|0;
+ $neg$i137 = (0 - ($74))|0;
+ $and11$i = $add9$i & $neg$i137;
+ $cmp12$i = ($and11$i>>>0)>($nb$0>>>0);
+ if (!($cmp12$i)) {
+ $retval$0 = 0;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ $75 = HEAP32[(32920)>>2]|0;
+ $cmp15$i = ($75|0)==(0);
+ if (!($cmp15$i)) {
+ $76 = HEAP32[(32912)>>2]|0;
+ $add17$i = (($76) + ($and11$i))|0;
+ $cmp19$i = ($add17$i>>>0)<=($76>>>0);
+ $cmp21$i = ($add17$i>>>0)>($75>>>0);
+ $or$cond1$i = $cmp19$i | $cmp21$i;
+ if ($or$cond1$i) {
+ $retval$0 = 0;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ }
+ $77 = HEAP32[(32924)>>2]|0;
+ $and29$i = $77 & 4;
+ $tobool30$i = ($and29$i|0)==(0);
+ L178: do {
+ if ($tobool30$i) {
+ $78 = HEAP32[(32504)>>2]|0;
+ $cmp32$i138 = ($78|0)==(0|0);
+ L180: do {
+ if ($cmp32$i138) {
+ label = 128;
+ } else {
+ $sp$0$i$i = (32928);
+ while(1) {
+ $79 = HEAP32[$sp$0$i$i>>2]|0;
+ $cmp$i55$i = ($79>>>0)>($78>>>0);
+ if (!($cmp$i55$i)) {
+ $size$i$i = ((($sp$0$i$i)) + 4|0);
+ $80 = HEAP32[$size$i$i>>2]|0;
+ $add$ptr$i57$i = (($79) + ($80)|0);
+ $cmp2$i$i = ($add$ptr$i57$i>>>0)>($78>>>0);
+ if ($cmp2$i$i) {
+ break;
+ }
+ }
+ $next$i$i = ((($sp$0$i$i)) + 8|0);
+ $81 = HEAP32[$next$i$i>>2]|0;
+ $cmp3$i$i = ($81|0)==(0|0);
+ if ($cmp3$i$i) {
+ label = 128;
+ break L180;
+ } else {
+ $sp$0$i$i = $81;
+ }
+ }
+ $add77$i = (($add9$i) - ($70))|0;
+ $and80$i = $add77$i & $neg$i137;
+ $cmp81$i = ($and80$i>>>0)<(2147483647);
+ if ($cmp81$i) {
+ $size$i$i$le = ((($sp$0$i$i)) + 4|0);
+ $call83$i = (_sbrk(($and80$i|0))|0);
+ $86 = HEAP32[$sp$0$i$i>>2]|0;
+ $87 = HEAP32[$size$i$i$le>>2]|0;
+ $add$ptr$i141 = (($86) + ($87)|0);
+ $cmp85$i = ($call83$i|0)==($add$ptr$i141|0);
+ if ($cmp85$i) {
+ $cmp89$i = ($call83$i|0)==((-1)|0);
+ if ($cmp89$i) {
+ $tsize$2647482$i = $and80$i;
+ } else {
+ $tbase$795$i = $call83$i;$tsize$794$i = $and80$i;
+ label = 145;
+ break L178;
+ }
+ } else {
+ $br$2$ph$i = $call83$i;$ssize$2$ph$i = $and80$i;
+ label = 136;
+ }
+ } else {
+ $tsize$2647482$i = 0;
+ }
+ }
+ } while(0);
+ do {
+ if ((label|0) == 128) {
+ $call37$i = (_sbrk(0)|0);
+ $cmp38$i = ($call37$i|0)==((-1)|0);
+ if ($cmp38$i) {
+ $tsize$2647482$i = 0;
+ } else {
+ $82 = $call37$i;
+ $83 = HEAP32[(32956)>>2]|0;
+ $sub41$i = (($83) + -1)|0;
+ $and42$i = $sub41$i & $82;
+ $cmp43$i = ($and42$i|0)==(0);
+ $add46$i = (($sub41$i) + ($82))|0;
+ $neg48$i = (0 - ($83))|0;
+ $and49$i = $add46$i & $neg48$i;
+ $sub50$i = (($and49$i) - ($82))|0;
+ $add51$i = $cmp43$i ? 0 : $sub50$i;
+ $spec$select96$i = (($add51$i) + ($and11$i))|0;
+ $84 = HEAP32[(32912)>>2]|0;
+ $add54$i = (($spec$select96$i) + ($84))|0;
+ $cmp55$i = ($spec$select96$i>>>0)>($nb$0>>>0);
+ $cmp57$i = ($spec$select96$i>>>0)<(2147483647);
+ $or$cond$i = $cmp55$i & $cmp57$i;
+ if ($or$cond$i) {
+ $85 = HEAP32[(32920)>>2]|0;
+ $cmp60$i = ($85|0)==(0);
+ if (!($cmp60$i)) {
+ $cmp63$i = ($add54$i>>>0)<=($84>>>0);
+ $cmp66$i140 = ($add54$i>>>0)>($85>>>0);
+ $or$cond2$i = $cmp63$i | $cmp66$i140;
+ if ($or$cond2$i) {
+ $tsize$2647482$i = 0;
+ break;
+ }
+ }
+ $call68$i = (_sbrk(($spec$select96$i|0))|0);
+ $cmp69$i = ($call68$i|0)==($call37$i|0);
+ if ($cmp69$i) {
+ $tbase$795$i = $call37$i;$tsize$794$i = $spec$select96$i;
+ label = 145;
+ break L178;
+ } else {
+ $br$2$ph$i = $call68$i;$ssize$2$ph$i = $spec$select96$i;
+ label = 136;
+ }
+ } else {
+ $tsize$2647482$i = 0;
+ }
+ }
+ }
+ } while(0);
+ do {
+ if ((label|0) == 136) {
+ $sub112$i = (0 - ($ssize$2$ph$i))|0;
+ $cmp91$i = ($br$2$ph$i|0)!=((-1)|0);
+ $cmp93$i = ($ssize$2$ph$i>>>0)<(2147483647);
+ $or$cond5$i = $cmp93$i & $cmp91$i;
+ $cmp96$i = ($add$i135>>>0)>($ssize$2$ph$i>>>0);
+ $or$cond7$i = $cmp96$i & $or$cond5$i;
+ if (!($or$cond7$i)) {
+ $cmp118$i = ($br$2$ph$i|0)==((-1)|0);
+ if ($cmp118$i) {
+ $tsize$2647482$i = 0;
+ break;
+ } else {
+ $tbase$795$i = $br$2$ph$i;$tsize$794$i = $ssize$2$ph$i;
+ label = 145;
+ break L178;
+ }
+ }
+ $88 = HEAP32[(32960)>>2]|0;
+ $sub99$i = (($sub$i136) - ($ssize$2$ph$i))|0;
+ $add101$i = (($sub99$i) + ($88))|0;
+ $neg103$i = (0 - ($88))|0;
+ $and104$i = $add101$i & $neg103$i;
+ $cmp105$i = ($and104$i>>>0)<(2147483647);
+ if (!($cmp105$i)) {
+ $tbase$795$i = $br$2$ph$i;$tsize$794$i = $ssize$2$ph$i;
+ label = 145;
+ break L178;
+ }
+ $call107$i = (_sbrk(($and104$i|0))|0);
+ $cmp108$i = ($call107$i|0)==((-1)|0);
+ if ($cmp108$i) {
+ (_sbrk(($sub112$i|0))|0);
+ $tsize$2647482$i = 0;
+ break;
+ } else {
+ $add110$i = (($and104$i) + ($ssize$2$ph$i))|0;
+ $tbase$795$i = $br$2$ph$i;$tsize$794$i = $add110$i;
+ label = 145;
+ break L178;
+ }
+ }
+ } while(0);
+ $89 = HEAP32[(32924)>>2]|0;
+ $or$i = $89 | 4;
+ HEAP32[(32924)>>2] = $or$i;
+ $tsize$4$i = $tsize$2647482$i;
+ label = 143;
+ } else {
+ $tsize$4$i = 0;
+ label = 143;
+ }
+ } while(0);
+ if ((label|0) == 143) {
+ $cmp127$i = ($and11$i>>>0)<(2147483647);
+ if ($cmp127$i) {
+ $call131$i = (_sbrk(($and11$i|0))|0);
+ $call132$i = (_sbrk(0)|0);
+ $cmp133$i = ($call131$i|0)!=((-1)|0);
+ $cmp135$i = ($call132$i|0)!=((-1)|0);
+ $or$cond4$i = $cmp133$i & $cmp135$i;
+ $cmp137$i = ($call131$i>>>0)<($call132$i>>>0);
+ $or$cond8$i = $cmp137$i & $or$cond4$i;
+ $sub$ptr$lhs$cast$i = $call132$i;
+ $sub$ptr$rhs$cast$i = $call131$i;
+ $sub$ptr$sub$i = (($sub$ptr$lhs$cast$i) - ($sub$ptr$rhs$cast$i))|0;
+ $add140$i = (($nb$0) + 40)|0;
+ $cmp141$i = ($sub$ptr$sub$i>>>0)>($add140$i>>>0);
+ $spec$select9$i = $cmp141$i ? $sub$ptr$sub$i : $tsize$4$i;
+ $or$cond8$not$i = $or$cond8$i ^ 1;
+ $cmp14799$i = ($call131$i|0)==((-1)|0);
+ $not$cmp141$i = $cmp141$i ^ 1;
+ $cmp147$i = $cmp14799$i | $not$cmp141$i;
+ $or$cond97$i = $cmp147$i | $or$cond8$not$i;
+ if (!($or$cond97$i)) {
+ $tbase$795$i = $call131$i;$tsize$794$i = $spec$select9$i;
+ label = 145;
+ }
+ }
+ }
+ if ((label|0) == 145) {
+ $90 = HEAP32[(32912)>>2]|0;
+ $add150$i = (($90) + ($tsize$794$i))|0;
+ HEAP32[(32912)>>2] = $add150$i;
+ $91 = HEAP32[(32916)>>2]|0;
+ $cmp151$i = ($add150$i>>>0)>($91>>>0);
+ if ($cmp151$i) {
+ HEAP32[(32916)>>2] = $add150$i;
+ }
+ $92 = HEAP32[(32504)>>2]|0;
+ $cmp157$i = ($92|0)==(0|0);
+ L215: do {
+ if ($cmp157$i) {
+ $93 = HEAP32[(32496)>>2]|0;
+ $cmp159$i = ($93|0)==(0|0);
+ $cmp162$i = ($tbase$795$i>>>0)<($93>>>0);
+ $or$cond11$i = $cmp159$i | $cmp162$i;
+ if ($or$cond11$i) {
+ HEAP32[(32496)>>2] = $tbase$795$i;
+ }
+ HEAP32[(32928)>>2] = $tbase$795$i;
+ HEAP32[(32932)>>2] = $tsize$794$i;
+ HEAP32[(32940)>>2] = 0;
+ $94 = HEAP32[8238]|0;
+ HEAP32[(32516)>>2] = $94;
+ HEAP32[(32512)>>2] = -1;
+ HEAP32[(32532)>>2] = (32520);
+ HEAP32[(32528)>>2] = (32520);
+ HEAP32[(32540)>>2] = (32528);
+ HEAP32[(32536)>>2] = (32528);
+ HEAP32[(32548)>>2] = (32536);
+ HEAP32[(32544)>>2] = (32536);
+ HEAP32[(32556)>>2] = (32544);
+ HEAP32[(32552)>>2] = (32544);
+ HEAP32[(32564)>>2] = (32552);
+ HEAP32[(32560)>>2] = (32552);
+ HEAP32[(32572)>>2] = (32560);
+ HEAP32[(32568)>>2] = (32560);
+ HEAP32[(32580)>>2] = (32568);
+ HEAP32[(32576)>>2] = (32568);
+ HEAP32[(32588)>>2] = (32576);
+ HEAP32[(32584)>>2] = (32576);
+ HEAP32[(32596)>>2] = (32584);
+ HEAP32[(32592)>>2] = (32584);
+ HEAP32[(32604)>>2] = (32592);
+ HEAP32[(32600)>>2] = (32592);
+ HEAP32[(32612)>>2] = (32600);
+ HEAP32[(32608)>>2] = (32600);
+ HEAP32[(32620)>>2] = (32608);
+ HEAP32[(32616)>>2] = (32608);
+ HEAP32[(32628)>>2] = (32616);
+ HEAP32[(32624)>>2] = (32616);
+ HEAP32[(32636)>>2] = (32624);
+ HEAP32[(32632)>>2] = (32624);
+ HEAP32[(32644)>>2] = (32632);
+ HEAP32[(32640)>>2] = (32632);
+ HEAP32[(32652)>>2] = (32640);
+ HEAP32[(32648)>>2] = (32640);
+ HEAP32[(32660)>>2] = (32648);
+ HEAP32[(32656)>>2] = (32648);
+ HEAP32[(32668)>>2] = (32656);
+ HEAP32[(32664)>>2] = (32656);
+ HEAP32[(32676)>>2] = (32664);
+ HEAP32[(32672)>>2] = (32664);
+ HEAP32[(32684)>>2] = (32672);
+ HEAP32[(32680)>>2] = (32672);
+ HEAP32[(32692)>>2] = (32680);
+ HEAP32[(32688)>>2] = (32680);
+ HEAP32[(32700)>>2] = (32688);
+ HEAP32[(32696)>>2] = (32688);
+ HEAP32[(32708)>>2] = (32696);
+ HEAP32[(32704)>>2] = (32696);
+ HEAP32[(32716)>>2] = (32704);
+ HEAP32[(32712)>>2] = (32704);
+ HEAP32[(32724)>>2] = (32712);
+ HEAP32[(32720)>>2] = (32712);
+ HEAP32[(32732)>>2] = (32720);
+ HEAP32[(32728)>>2] = (32720);
+ HEAP32[(32740)>>2] = (32728);
+ HEAP32[(32736)>>2] = (32728);
+ HEAP32[(32748)>>2] = (32736);
+ HEAP32[(32744)>>2] = (32736);
+ HEAP32[(32756)>>2] = (32744);
+ HEAP32[(32752)>>2] = (32744);
+ HEAP32[(32764)>>2] = (32752);
+ HEAP32[(32760)>>2] = (32752);
+ HEAP32[(32772)>>2] = (32760);
+ HEAP32[(32768)>>2] = (32760);
+ HEAP32[(32780)>>2] = (32768);
+ HEAP32[(32776)>>2] = (32768);
+ $sub172$i = (($tsize$794$i) + -40)|0;
+ $add$ptr$i43$i = ((($tbase$795$i)) + 8|0);
+ $95 = $add$ptr$i43$i;
+ $and$i44$i = $95 & 7;
+ $cmp$i45$i = ($and$i44$i|0)==(0);
+ $sub$i46$i = (0 - ($95))|0;
+ $and3$i47$i = $sub$i46$i & 7;
+ $cond$i48$i = $cmp$i45$i ? 0 : $and3$i47$i;
+ $add$ptr4$i49$i = (($tbase$795$i) + ($cond$i48$i)|0);
+ $sub5$i50$i = (($sub172$i) - ($cond$i48$i))|0;
+ HEAP32[(32504)>>2] = $add$ptr4$i49$i;
+ HEAP32[(32492)>>2] = $sub5$i50$i;
+ $or$i51$i = $sub5$i50$i | 1;
+ $head$i52$i = ((($add$ptr4$i49$i)) + 4|0);
+ HEAP32[$head$i52$i>>2] = $or$i51$i;
+ $add$ptr6$i53$i = (($tbase$795$i) + ($sub172$i)|0);
+ $head7$i54$i = ((($add$ptr6$i53$i)) + 4|0);
+ HEAP32[$head7$i54$i>>2] = 40;
+ $96 = HEAP32[(32968)>>2]|0;
+ HEAP32[(32508)>>2] = $96;
+ } else {
+ $sp$0112$i = (32928);
+ while(1) {
+ $97 = HEAP32[$sp$0112$i>>2]|0;
+ $size188$i = ((($sp$0112$i)) + 4|0);
+ $98 = HEAP32[$size188$i>>2]|0;
+ $add$ptr189$i = (($97) + ($98)|0);
+ $cmp190$i = ($tbase$795$i|0)==($add$ptr189$i|0);
+ if ($cmp190$i) {
+ label = 154;
+ break;
+ }
+ $next$i = ((($sp$0112$i)) + 8|0);
+ $99 = HEAP32[$next$i>>2]|0;
+ $cmp186$i = ($99|0)==(0|0);
+ if ($cmp186$i) {
+ break;
+ } else {
+ $sp$0112$i = $99;
+ }
+ }
+ if ((label|0) == 154) {
+ $size188$i$le = ((($sp$0112$i)) + 4|0);
+ $sflags193$i = ((($sp$0112$i)) + 12|0);
+ $100 = HEAP32[$sflags193$i>>2]|0;
+ $and194$i = $100 & 8;
+ $tobool195$i = ($and194$i|0)==(0);
+ if ($tobool195$i) {
+ $cmp203$i = ($97>>>0)<=($92>>>0);
+ $cmp209$i = ($tbase$795$i>>>0)>($92>>>0);
+ $or$cond98$i = $cmp209$i & $cmp203$i;
+ if ($or$cond98$i) {
+ $add212$i = (($98) + ($tsize$794$i))|0;
+ HEAP32[$size188$i$le>>2] = $add212$i;
+ $101 = HEAP32[(32492)>>2]|0;
+ $add215$i = (($101) + ($tsize$794$i))|0;
+ $add$ptr$i35$i = ((($92)) + 8|0);
+ $102 = $add$ptr$i35$i;
+ $and$i36$i = $102 & 7;
+ $cmp$i37$i = ($and$i36$i|0)==(0);
+ $sub$i38$i = (0 - ($102))|0;
+ $and3$i39$i = $sub$i38$i & 7;
+ $cond$i40$i = $cmp$i37$i ? 0 : $and3$i39$i;
+ $add$ptr4$i41$i = (($92) + ($cond$i40$i)|0);
+ $sub5$i$i = (($add215$i) - ($cond$i40$i))|0;
+ HEAP32[(32504)>>2] = $add$ptr4$i41$i;
+ HEAP32[(32492)>>2] = $sub5$i$i;
+ $or$i$i = $sub5$i$i | 1;
+ $head$i42$i = ((($add$ptr4$i41$i)) + 4|0);
+ HEAP32[$head$i42$i>>2] = $or$i$i;
+ $add$ptr6$i$i = (($92) + ($add215$i)|0);
+ $head7$i$i = ((($add$ptr6$i$i)) + 4|0);
+ HEAP32[$head7$i$i>>2] = 40;
+ $103 = HEAP32[(32968)>>2]|0;
+ HEAP32[(32508)>>2] = $103;
+ break;
+ }
+ }
+ }
+ $104 = HEAP32[(32496)>>2]|0;
+ $cmp218$i = ($tbase$795$i>>>0)<($104>>>0);
+ if ($cmp218$i) {
+ HEAP32[(32496)>>2] = $tbase$795$i;
+ }
+ $add$ptr227$i = (($tbase$795$i) + ($tsize$794$i)|0);
+ $sp$1111$i = (32928);
+ while(1) {
+ $105 = HEAP32[$sp$1111$i>>2]|0;
+ $cmp228$i = ($105|0)==($add$ptr227$i|0);
+ if ($cmp228$i) {
+ label = 162;
+ break;
+ }
+ $next231$i = ((($sp$1111$i)) + 8|0);
+ $106 = HEAP32[$next231$i>>2]|0;
+ $cmp224$i = ($106|0)==(0|0);
+ if ($cmp224$i) {
+ break;
+ } else {
+ $sp$1111$i = $106;
+ }
+ }
+ if ((label|0) == 162) {
+ $sflags235$i = ((($sp$1111$i)) + 12|0);
+ $107 = HEAP32[$sflags235$i>>2]|0;
+ $and236$i = $107 & 8;
+ $tobool237$i = ($and236$i|0)==(0);
+ if ($tobool237$i) {
+ HEAP32[$sp$1111$i>>2] = $tbase$795$i;
+ $size245$i = ((($sp$1111$i)) + 4|0);
+ $108 = HEAP32[$size245$i>>2]|0;
+ $add246$i = (($108) + ($tsize$794$i))|0;
+ HEAP32[$size245$i>>2] = $add246$i;
+ $add$ptr$i$i = ((($tbase$795$i)) + 8|0);
+ $109 = $add$ptr$i$i;
+ $and$i14$i = $109 & 7;
+ $cmp$i15$i = ($and$i14$i|0)==(0);
+ $sub$i16$i = (0 - ($109))|0;
+ $and3$i$i = $sub$i16$i & 7;
+ $cond$i17$i = $cmp$i15$i ? 0 : $and3$i$i;
+ $add$ptr4$i$i = (($tbase$795$i) + ($cond$i17$i)|0);
+ $add$ptr5$i$i = ((($add$ptr227$i)) + 8|0);
+ $110 = $add$ptr5$i$i;
+ $and6$i18$i = $110 & 7;
+ $cmp7$i$i = ($and6$i18$i|0)==(0);
+ $sub12$i$i = (0 - ($110))|0;
+ $and13$i$i = $sub12$i$i & 7;
+ $cond15$i$i = $cmp7$i$i ? 0 : $and13$i$i;
+ $add$ptr16$i$i = (($add$ptr227$i) + ($cond15$i$i)|0);
+ $sub$ptr$lhs$cast$i19$i = $add$ptr16$i$i;
+ $sub$ptr$rhs$cast$i20$i = $add$ptr4$i$i;
+ $sub$ptr$sub$i21$i = (($sub$ptr$lhs$cast$i19$i) - ($sub$ptr$rhs$cast$i20$i))|0;
+ $add$ptr17$i$i = (($add$ptr4$i$i) + ($nb$0)|0);
+ $sub18$i$i = (($sub$ptr$sub$i21$i) - ($nb$0))|0;
+ $or19$i$i = $nb$0 | 3;
+ $head$i22$i = ((($add$ptr4$i$i)) + 4|0);
+ HEAP32[$head$i22$i>>2] = $or19$i$i;
+ $cmp20$i$i = ($92|0)==($add$ptr16$i$i|0);
+ L238: do {
+ if ($cmp20$i$i) {
+ $111 = HEAP32[(32492)>>2]|0;
+ $add$i$i = (($111) + ($sub18$i$i))|0;
+ HEAP32[(32492)>>2] = $add$i$i;
+ HEAP32[(32504)>>2] = $add$ptr17$i$i;
+ $or22$i$i = $add$i$i | 1;
+ $head23$i$i = ((($add$ptr17$i$i)) + 4|0);
+ HEAP32[$head23$i$i>>2] = $or22$i$i;
+ } else {
+ $112 = HEAP32[(32500)>>2]|0;
+ $cmp24$i$i = ($112|0)==($add$ptr16$i$i|0);
+ if ($cmp24$i$i) {
+ $113 = HEAP32[(32488)>>2]|0;
+ $add26$i$i = (($113) + ($sub18$i$i))|0;
+ HEAP32[(32488)>>2] = $add26$i$i;
+ HEAP32[(32500)>>2] = $add$ptr17$i$i;
+ $or28$i$i = $add26$i$i | 1;
+ $head29$i$i = ((($add$ptr17$i$i)) + 4|0);
+ HEAP32[$head29$i$i>>2] = $or28$i$i;
+ $add$ptr30$i$i = (($add$ptr17$i$i) + ($add26$i$i)|0);
+ HEAP32[$add$ptr30$i$i>>2] = $add26$i$i;
+ break;
+ }
+ $head32$i$i = ((($add$ptr16$i$i)) + 4|0);
+ $114 = HEAP32[$head32$i$i>>2]|0;
+ $and33$i$i = $114 & 3;
+ $cmp34$i$i = ($and33$i$i|0)==(1);
+ if ($cmp34$i$i) {
+ $and37$i$i = $114 & -8;
+ $shr$i25$i = $114 >>> 3;
+ $cmp38$i$i = ($114>>>0)<(256);
+ L246: do {
+ if ($cmp38$i$i) {
+ $fd$i$i = ((($add$ptr16$i$i)) + 8|0);
+ $115 = HEAP32[$fd$i$i>>2]|0;
+ $bk$i26$i = ((($add$ptr16$i$i)) + 12|0);
+ $116 = HEAP32[$bk$i26$i>>2]|0;
+ $cmp46$i$i = ($116|0)==($115|0);
+ if ($cmp46$i$i) {
+ $shl48$i$i = 1 << $shr$i25$i;
+ $neg$i$i = $shl48$i$i ^ -1;
+ $117 = HEAP32[8120]|0;
+ $and49$i$i = $117 & $neg$i$i;
+ HEAP32[8120] = $and49$i$i;
+ break;
+ } else {
+ $bk67$i$i = ((($115)) + 12|0);
+ HEAP32[$bk67$i$i>>2] = $116;
+ $fd68$i$i = ((($116)) + 8|0);
+ HEAP32[$fd68$i$i>>2] = $115;
+ break;
+ }
+ } else {
+ $parent$i27$i = ((($add$ptr16$i$i)) + 24|0);
+ $118 = HEAP32[$parent$i27$i>>2]|0;
+ $bk74$i$i = ((($add$ptr16$i$i)) + 12|0);
+ $119 = HEAP32[$bk74$i$i>>2]|0;
+ $cmp75$i$i = ($119|0)==($add$ptr16$i$i|0);
+ do {
+ if ($cmp75$i$i) {
+ $child$i$i = ((($add$ptr16$i$i)) + 16|0);
+ $arrayidx96$i$i = ((($child$i$i)) + 4|0);
+ $121 = HEAP32[$arrayidx96$i$i>>2]|0;
+ $cmp97$i$i = ($121|0)==(0|0);
+ if ($cmp97$i$i) {
+ $122 = HEAP32[$child$i$i>>2]|0;
+ $cmp100$i$i = ($122|0)==(0|0);
+ if ($cmp100$i$i) {
+ $R$3$i$i = 0;
+ break;
+ } else {
+ $R$1$i$i$ph = $122;$RP$1$i$i$ph = $child$i$i;
+ }
+ } else {
+ $R$1$i$i$ph = $121;$RP$1$i$i$ph = $arrayidx96$i$i;
+ }
+ $R$1$i$i = $R$1$i$i$ph;$RP$1$i$i = $RP$1$i$i$ph;
+ while(1) {
+ $arrayidx103$i$i = ((($R$1$i$i)) + 20|0);
+ $123 = HEAP32[$arrayidx103$i$i>>2]|0;
+ $cmp104$i$i = ($123|0)==(0|0);
+ if ($cmp104$i$i) {
+ $arrayidx107$i$i = ((($R$1$i$i)) + 16|0);
+ $124 = HEAP32[$arrayidx107$i$i>>2]|0;
+ $cmp108$i$i = ($124|0)==(0|0);
+ if ($cmp108$i$i) {
+ break;
+ } else {
+ $R$1$i$i$be = $124;$RP$1$i$i$be = $arrayidx107$i$i;
+ }
+ } else {
+ $R$1$i$i$be = $123;$RP$1$i$i$be = $arrayidx103$i$i;
+ }
+ $R$1$i$i = $R$1$i$i$be;$RP$1$i$i = $RP$1$i$i$be;
+ }
+ HEAP32[$RP$1$i$i>>2] = 0;
+ $R$3$i$i = $R$1$i$i;
+ } else {
+ $fd78$i$i = ((($add$ptr16$i$i)) + 8|0);
+ $120 = HEAP32[$fd78$i$i>>2]|0;
+ $bk91$i$i = ((($120)) + 12|0);
+ HEAP32[$bk91$i$i>>2] = $119;
+ $fd92$i$i = ((($119)) + 8|0);
+ HEAP32[$fd92$i$i>>2] = $120;
+ $R$3$i$i = $119;
+ }
+ } while(0);
+ $cmp120$i28$i = ($118|0)==(0|0);
+ if ($cmp120$i28$i) {
+ break;
+ }
+ $index$i29$i = ((($add$ptr16$i$i)) + 28|0);
+ $125 = HEAP32[$index$i29$i>>2]|0;
+ $arrayidx123$i$i = (32784 + ($125<<2)|0);
+ $126 = HEAP32[$arrayidx123$i$i>>2]|0;
+ $cmp124$i$i = ($126|0)==($add$ptr16$i$i|0);
+ do {
+ if ($cmp124$i$i) {
+ HEAP32[$arrayidx123$i$i>>2] = $R$3$i$i;
+ $cond1$i$i = ($R$3$i$i|0)==(0|0);
+ if (!($cond1$i$i)) {
+ break;
+ }
+ $shl131$i$i = 1 << $125;
+ $neg132$i$i = $shl131$i$i ^ -1;
+ $127 = HEAP32[(32484)>>2]|0;
+ $and133$i$i = $127 & $neg132$i$i;
+ HEAP32[(32484)>>2] = $and133$i$i;
+ break L246;
+ } else {
+ $arrayidx143$i$i = ((($118)) + 16|0);
+ $128 = HEAP32[$arrayidx143$i$i>>2]|0;
+ $cmp144$i$i = ($128|0)==($add$ptr16$i$i|0);
+ $arrayidx151$i$i = ((($118)) + 20|0);
+ $arrayidx151$i$i$sink = $cmp144$i$i ? $arrayidx143$i$i : $arrayidx151$i$i;
+ HEAP32[$arrayidx151$i$i$sink>>2] = $R$3$i$i;
+ $cmp156$i$i = ($R$3$i$i|0)==(0|0);
+ if ($cmp156$i$i) {
+ break L246;
+ }
+ }
+ } while(0);
+ $parent165$i$i = ((($R$3$i$i)) + 24|0);
+ HEAP32[$parent165$i$i>>2] = $118;
+ $child166$i$i = ((($add$ptr16$i$i)) + 16|0);
+ $129 = HEAP32[$child166$i$i>>2]|0;
+ $cmp168$i$i = ($129|0)==(0|0);
+ if (!($cmp168$i$i)) {
+ $arrayidx178$i$i = ((($R$3$i$i)) + 16|0);
+ HEAP32[$arrayidx178$i$i>>2] = $129;
+ $parent179$i$i = ((($129)) + 24|0);
+ HEAP32[$parent179$i$i>>2] = $R$3$i$i;
+ }
+ $arrayidx184$i$i = ((($child166$i$i)) + 4|0);
+ $130 = HEAP32[$arrayidx184$i$i>>2]|0;
+ $cmp185$i$i = ($130|0)==(0|0);
+ if ($cmp185$i$i) {
+ break;
+ }
+ $arrayidx195$i$i = ((($R$3$i$i)) + 20|0);
+ HEAP32[$arrayidx195$i$i>>2] = $130;
+ $parent196$i$i = ((($130)) + 24|0);
+ HEAP32[$parent196$i$i>>2] = $R$3$i$i;
+ }
+ } while(0);
+ $add$ptr205$i$i = (($add$ptr16$i$i) + ($and37$i$i)|0);
+ $add206$i$i = (($and37$i$i) + ($sub18$i$i))|0;
+ $oldfirst$0$i$i = $add$ptr205$i$i;$qsize$0$i$i = $add206$i$i;
+ } else {
+ $oldfirst$0$i$i = $add$ptr16$i$i;$qsize$0$i$i = $sub18$i$i;
+ }
+ $head208$i$i = ((($oldfirst$0$i$i)) + 4|0);
+ $131 = HEAP32[$head208$i$i>>2]|0;
+ $and209$i$i = $131 & -2;
+ HEAP32[$head208$i$i>>2] = $and209$i$i;
+ $or210$i$i = $qsize$0$i$i | 1;
+ $head211$i$i = ((($add$ptr17$i$i)) + 4|0);
+ HEAP32[$head211$i$i>>2] = $or210$i$i;
+ $add$ptr212$i$i = (($add$ptr17$i$i) + ($qsize$0$i$i)|0);
+ HEAP32[$add$ptr212$i$i>>2] = $qsize$0$i$i;
+ $shr214$i$i = $qsize$0$i$i >>> 3;
+ $cmp215$i$i = ($qsize$0$i$i>>>0)<(256);
+ if ($cmp215$i$i) {
+ $shl222$i$i = $shr214$i$i << 1;
+ $arrayidx223$i$i = (32520 + ($shl222$i$i<<2)|0);
+ $132 = HEAP32[8120]|0;
+ $shl226$i$i = 1 << $shr214$i$i;
+ $and227$i$i = $132 & $shl226$i$i;
+ $tobool228$i$i = ($and227$i$i|0)==(0);
+ if ($tobool228$i$i) {
+ $or232$i$i = $132 | $shl226$i$i;
+ HEAP32[8120] = $or232$i$i;
+ $$pre$i31$i = ((($arrayidx223$i$i)) + 8|0);
+ $$pre$phi$i32$iZ2D = $$pre$i31$i;$F224$0$i$i = $arrayidx223$i$i;
+ } else {
+ $133 = ((($arrayidx223$i$i)) + 8|0);
+ $134 = HEAP32[$133>>2]|0;
+ $$pre$phi$i32$iZ2D = $133;$F224$0$i$i = $134;
+ }
+ HEAP32[$$pre$phi$i32$iZ2D>>2] = $add$ptr17$i$i;
+ $bk246$i$i = ((($F224$0$i$i)) + 12|0);
+ HEAP32[$bk246$i$i>>2] = $add$ptr17$i$i;
+ $fd247$i$i = ((($add$ptr17$i$i)) + 8|0);
+ HEAP32[$fd247$i$i>>2] = $F224$0$i$i;
+ $bk248$i$i = ((($add$ptr17$i$i)) + 12|0);
+ HEAP32[$bk248$i$i>>2] = $arrayidx223$i$i;
+ break;
+ }
+ $shr253$i$i = $qsize$0$i$i >>> 8;
+ $cmp254$i$i = ($shr253$i$i|0)==(0);
+ do {
+ if ($cmp254$i$i) {
+ $I252$0$i$i = 0;
+ } else {
+ $cmp258$i$i = ($qsize$0$i$i>>>0)>(16777215);
+ if ($cmp258$i$i) {
+ $I252$0$i$i = 31;
+ break;
+ }
+ $sub262$i$i = (($shr253$i$i) + 1048320)|0;
+ $shr263$i$i = $sub262$i$i >>> 16;
+ $and264$i$i = $shr263$i$i & 8;
+ $shl265$i$i = $shr253$i$i << $and264$i$i;
+ $sub266$i$i = (($shl265$i$i) + 520192)|0;
+ $shr267$i$i = $sub266$i$i >>> 16;
+ $and268$i$i = $shr267$i$i & 4;
+ $add269$i$i = $and268$i$i | $and264$i$i;
+ $shl270$i$i = $shl265$i$i << $and268$i$i;
+ $sub271$i$i = (($shl270$i$i) + 245760)|0;
+ $shr272$i$i = $sub271$i$i >>> 16;
+ $and273$i$i = $shr272$i$i & 2;
+ $add274$i$i = $add269$i$i | $and273$i$i;
+ $sub275$i$i = (14 - ($add274$i$i))|0;
+ $shl276$i$i = $shl270$i$i << $and273$i$i;
+ $shr277$i$i = $shl276$i$i >>> 15;
+ $add278$i$i = (($sub275$i$i) + ($shr277$i$i))|0;
+ $shl279$i$i = $add278$i$i << 1;
+ $add280$i$i = (($add278$i$i) + 7)|0;
+ $shr281$i$i = $qsize$0$i$i >>> $add280$i$i;
+ $and282$i$i = $shr281$i$i & 1;
+ $add283$i$i = $and282$i$i | $shl279$i$i;
+ $I252$0$i$i = $add283$i$i;
+ }
+ } while(0);
+ $arrayidx287$i$i = (32784 + ($I252$0$i$i<<2)|0);
+ $index288$i$i = ((($add$ptr17$i$i)) + 28|0);
+ HEAP32[$index288$i$i>>2] = $I252$0$i$i;
+ $child289$i$i = ((($add$ptr17$i$i)) + 16|0);
+ $arrayidx290$i$i = ((($child289$i$i)) + 4|0);
+ HEAP32[$arrayidx290$i$i>>2] = 0;
+ HEAP32[$child289$i$i>>2] = 0;
+ $135 = HEAP32[(32484)>>2]|0;
+ $shl294$i$i = 1 << $I252$0$i$i;
+ $and295$i$i = $135 & $shl294$i$i;
+ $tobool296$i$i = ($and295$i$i|0)==(0);
+ if ($tobool296$i$i) {
+ $or300$i$i = $135 | $shl294$i$i;
+ HEAP32[(32484)>>2] = $or300$i$i;
+ HEAP32[$arrayidx287$i$i>>2] = $add$ptr17$i$i;
+ $parent301$i$i = ((($add$ptr17$i$i)) + 24|0);
+ HEAP32[$parent301$i$i>>2] = $arrayidx287$i$i;
+ $bk302$i$i = ((($add$ptr17$i$i)) + 12|0);
+ HEAP32[$bk302$i$i>>2] = $add$ptr17$i$i;
+ $fd303$i$i = ((($add$ptr17$i$i)) + 8|0);
+ HEAP32[$fd303$i$i>>2] = $add$ptr17$i$i;
+ break;
+ }
+ $136 = HEAP32[$arrayidx287$i$i>>2]|0;
+ $head3174$i$i = ((($136)) + 4|0);
+ $137 = HEAP32[$head3174$i$i>>2]|0;
+ $and3185$i$i = $137 & -8;
+ $cmp3196$i$i = ($and3185$i$i|0)==($qsize$0$i$i|0);
+ L291: do {
+ if ($cmp3196$i$i) {
+ $T$0$lcssa$i34$i = $136;
+ } else {
+ $cmp306$i$i = ($I252$0$i$i|0)==(31);
+ $shr310$i$i = $I252$0$i$i >>> 1;
+ $sub313$i$i = (25 - ($shr310$i$i))|0;
+ $cond315$i$i = $cmp306$i$i ? 0 : $sub313$i$i;
+ $shl316$i$i = $qsize$0$i$i << $cond315$i$i;
+ $K305$08$i$i = $shl316$i$i;$T$07$i$i = $136;
+ while(1) {
+ $shr323$i$i = $K305$08$i$i >>> 31;
+ $arrayidx325$i$i = (((($T$07$i$i)) + 16|0) + ($shr323$i$i<<2)|0);
+ $138 = HEAP32[$arrayidx325$i$i>>2]|0;
+ $cmp327$i$i = ($138|0)==(0|0);
+ if ($cmp327$i$i) {
+ break;
+ }
+ $shl326$i$i = $K305$08$i$i << 1;
+ $head317$i$i = ((($138)) + 4|0);
+ $139 = HEAP32[$head317$i$i>>2]|0;
+ $and318$i$i = $139 & -8;
+ $cmp319$i$i = ($and318$i$i|0)==($qsize$0$i$i|0);
+ if ($cmp319$i$i) {
+ $T$0$lcssa$i34$i = $138;
+ break L291;
+ } else {
+ $K305$08$i$i = $shl326$i$i;$T$07$i$i = $138;
+ }
+ }
+ HEAP32[$arrayidx325$i$i>>2] = $add$ptr17$i$i;
+ $parent337$i$i = ((($add$ptr17$i$i)) + 24|0);
+ HEAP32[$parent337$i$i>>2] = $T$07$i$i;
+ $bk338$i$i = ((($add$ptr17$i$i)) + 12|0);
+ HEAP32[$bk338$i$i>>2] = $add$ptr17$i$i;
+ $fd339$i$i = ((($add$ptr17$i$i)) + 8|0);
+ HEAP32[$fd339$i$i>>2] = $add$ptr17$i$i;
+ break L238;
+ }
+ } while(0);
+ $fd344$i$i = ((($T$0$lcssa$i34$i)) + 8|0);
+ $140 = HEAP32[$fd344$i$i>>2]|0;
+ $bk357$i$i = ((($140)) + 12|0);
+ HEAP32[$bk357$i$i>>2] = $add$ptr17$i$i;
+ HEAP32[$fd344$i$i>>2] = $add$ptr17$i$i;
+ $fd359$i$i = ((($add$ptr17$i$i)) + 8|0);
+ HEAP32[$fd359$i$i>>2] = $140;
+ $bk360$i$i = ((($add$ptr17$i$i)) + 12|0);
+ HEAP32[$bk360$i$i>>2] = $T$0$lcssa$i34$i;
+ $parent361$i$i = ((($add$ptr17$i$i)) + 24|0);
+ HEAP32[$parent361$i$i>>2] = 0;
+ }
+ } while(0);
+ $add$ptr369$i$i = ((($add$ptr4$i$i)) + 8|0);
+ $retval$0 = $add$ptr369$i$i;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ }
+ $sp$0$i$i$i = (32928);
+ while(1) {
+ $141 = HEAP32[$sp$0$i$i$i>>2]|0;
+ $cmp$i$i$i = ($141>>>0)>($92>>>0);
+ if (!($cmp$i$i$i)) {
+ $size$i$i$i = ((($sp$0$i$i$i)) + 4|0);
+ $142 = HEAP32[$size$i$i$i>>2]|0;
+ $add$ptr$i$i$i = (($141) + ($142)|0);
+ $cmp2$i$i$i = ($add$ptr$i$i$i>>>0)>($92>>>0);
+ if ($cmp2$i$i$i) {
+ break;
+ }
+ }
+ $next$i$i$i = ((($sp$0$i$i$i)) + 8|0);
+ $143 = HEAP32[$next$i$i$i>>2]|0;
+ $sp$0$i$i$i = $143;
+ }
+ $add$ptr2$i$i = ((($add$ptr$i$i$i)) + -47|0);
+ $add$ptr3$i$i = ((($add$ptr2$i$i)) + 8|0);
+ $144 = $add$ptr3$i$i;
+ $and$i$i = $144 & 7;
+ $cmp$i12$i = ($and$i$i|0)==(0);
+ $sub$i$i = (0 - ($144))|0;
+ $and6$i13$i = $sub$i$i & 7;
+ $cond$i$i = $cmp$i12$i ? 0 : $and6$i13$i;
+ $add$ptr7$i$i = (($add$ptr2$i$i) + ($cond$i$i)|0);
+ $add$ptr81$i$i = ((($92)) + 16|0);
+ $cmp9$i$i = ($add$ptr7$i$i>>>0)<($add$ptr81$i$i>>>0);
+ $cond13$i$i = $cmp9$i$i ? $92 : $add$ptr7$i$i;
+ $add$ptr14$i$i = ((($cond13$i$i)) + 8|0);
+ $add$ptr15$i$i = ((($cond13$i$i)) + 24|0);
+ $sub16$i$i = (($tsize$794$i) + -40)|0;
+ $add$ptr$i2$i$i = ((($tbase$795$i)) + 8|0);
+ $145 = $add$ptr$i2$i$i;
+ $and$i$i$i = $145 & 7;
+ $cmp$i3$i$i = ($and$i$i$i|0)==(0);
+ $sub$i$i$i = (0 - ($145))|0;
+ $and3$i$i$i = $sub$i$i$i & 7;
+ $cond$i$i$i = $cmp$i3$i$i ? 0 : $and3$i$i$i;
+ $add$ptr4$i$i$i = (($tbase$795$i) + ($cond$i$i$i)|0);
+ $sub5$i$i$i = (($sub16$i$i) - ($cond$i$i$i))|0;
+ HEAP32[(32504)>>2] = $add$ptr4$i$i$i;
+ HEAP32[(32492)>>2] = $sub5$i$i$i;
+ $or$i$i$i = $sub5$i$i$i | 1;
+ $head$i$i$i = ((($add$ptr4$i$i$i)) + 4|0);
+ HEAP32[$head$i$i$i>>2] = $or$i$i$i;
+ $add$ptr6$i$i$i = (($tbase$795$i) + ($sub16$i$i)|0);
+ $head7$i$i$i = ((($add$ptr6$i$i$i)) + 4|0);
+ HEAP32[$head7$i$i$i>>2] = 40;
+ $146 = HEAP32[(32968)>>2]|0;
+ HEAP32[(32508)>>2] = $146;
+ $head$i$i = ((($cond13$i$i)) + 4|0);
+ HEAP32[$head$i$i>>2] = 27;
+ ;HEAP32[$add$ptr14$i$i>>2]=HEAP32[(32928)>>2]|0;HEAP32[$add$ptr14$i$i+4>>2]=HEAP32[(32928)+4>>2]|0;HEAP32[$add$ptr14$i$i+8>>2]=HEAP32[(32928)+8>>2]|0;HEAP32[$add$ptr14$i$i+12>>2]=HEAP32[(32928)+12>>2]|0;
+ HEAP32[(32928)>>2] = $tbase$795$i;
+ HEAP32[(32932)>>2] = $tsize$794$i;
+ HEAP32[(32940)>>2] = 0;
+ HEAP32[(32936)>>2] = $add$ptr14$i$i;
+ $147 = $add$ptr15$i$i;
+ while(1) {
+ $add$ptr24$i$i = ((($147)) + 4|0);
+ HEAP32[$add$ptr24$i$i>>2] = 7;
+ $head26$i$i = ((($147)) + 8|0);
+ $cmp27$i$i = ($head26$i$i>>>0)<($add$ptr$i$i$i>>>0);
+ if ($cmp27$i$i) {
+ $147 = $add$ptr24$i$i;
+ } else {
+ break;
+ }
+ }
+ $cmp28$i$i = ($cond13$i$i|0)==($92|0);
+ if (!($cmp28$i$i)) {
+ $sub$ptr$lhs$cast$i$i = $cond13$i$i;
+ $sub$ptr$rhs$cast$i$i = $92;
+ $sub$ptr$sub$i$i = (($sub$ptr$lhs$cast$i$i) - ($sub$ptr$rhs$cast$i$i))|0;
+ $148 = HEAP32[$head$i$i>>2]|0;
+ $and32$i$i = $148 & -2;
+ HEAP32[$head$i$i>>2] = $and32$i$i;
+ $or33$i$i = $sub$ptr$sub$i$i | 1;
+ $head34$i$i = ((($92)) + 4|0);
+ HEAP32[$head34$i$i>>2] = $or33$i$i;
+ HEAP32[$cond13$i$i>>2] = $sub$ptr$sub$i$i;
+ $shr$i$i = $sub$ptr$sub$i$i >>> 3;
+ $cmp36$i$i = ($sub$ptr$sub$i$i>>>0)<(256);
+ if ($cmp36$i$i) {
+ $shl$i$i = $shr$i$i << 1;
+ $arrayidx$i$i = (32520 + ($shl$i$i<<2)|0);
+ $149 = HEAP32[8120]|0;
+ $shl39$i$i = 1 << $shr$i$i;
+ $and40$i$i = $149 & $shl39$i$i;
+ $tobool$i$i = ($and40$i$i|0)==(0);
+ if ($tobool$i$i) {
+ $or44$i$i = $149 | $shl39$i$i;
+ HEAP32[8120] = $or44$i$i;
+ $$pre$i$i = ((($arrayidx$i$i)) + 8|0);
+ $$pre$phi$i$iZ2D = $$pre$i$i;$F$0$i$i = $arrayidx$i$i;
+ } else {
+ $150 = ((($arrayidx$i$i)) + 8|0);
+ $151 = HEAP32[$150>>2]|0;
+ $$pre$phi$i$iZ2D = $150;$F$0$i$i = $151;
+ }
+ HEAP32[$$pre$phi$i$iZ2D>>2] = $92;
+ $bk$i$i = ((($F$0$i$i)) + 12|0);
+ HEAP32[$bk$i$i>>2] = $92;
+ $fd54$i$i = ((($92)) + 8|0);
+ HEAP32[$fd54$i$i>>2] = $F$0$i$i;
+ $bk55$i$i = ((($92)) + 12|0);
+ HEAP32[$bk55$i$i>>2] = $arrayidx$i$i;
+ break;
+ }
+ $shr58$i$i = $sub$ptr$sub$i$i >>> 8;
+ $cmp59$i$i = ($shr58$i$i|0)==(0);
+ if ($cmp59$i$i) {
+ $I57$0$i$i = 0;
+ } else {
+ $cmp63$i$i = ($sub$ptr$sub$i$i>>>0)>(16777215);
+ if ($cmp63$i$i) {
+ $I57$0$i$i = 31;
+ } else {
+ $sub67$i$i = (($shr58$i$i) + 1048320)|0;
+ $shr68$i$i = $sub67$i$i >>> 16;
+ $and69$i$i = $shr68$i$i & 8;
+ $shl70$i$i = $shr58$i$i << $and69$i$i;
+ $sub71$i$i = (($shl70$i$i) + 520192)|0;
+ $shr72$i$i = $sub71$i$i >>> 16;
+ $and73$i$i = $shr72$i$i & 4;
+ $add74$i$i = $and73$i$i | $and69$i$i;
+ $shl75$i$i = $shl70$i$i << $and73$i$i;
+ $sub76$i$i = (($shl75$i$i) + 245760)|0;
+ $shr77$i$i = $sub76$i$i >>> 16;
+ $and78$i$i = $shr77$i$i & 2;
+ $add79$i$i = $add74$i$i | $and78$i$i;
+ $sub80$i$i = (14 - ($add79$i$i))|0;
+ $shl81$i$i = $shl75$i$i << $and78$i$i;
+ $shr82$i$i = $shl81$i$i >>> 15;
+ $add83$i$i = (($sub80$i$i) + ($shr82$i$i))|0;
+ $shl84$i$i = $add83$i$i << 1;
+ $add85$i$i = (($add83$i$i) + 7)|0;
+ $shr86$i$i = $sub$ptr$sub$i$i >>> $add85$i$i;
+ $and87$i$i = $shr86$i$i & 1;
+ $add88$i$i = $and87$i$i | $shl84$i$i;
+ $I57$0$i$i = $add88$i$i;
+ }
+ }
+ $arrayidx91$i$i = (32784 + ($I57$0$i$i<<2)|0);
+ $index$i$i = ((($92)) + 28|0);
+ HEAP32[$index$i$i>>2] = $I57$0$i$i;
+ $arrayidx92$i$i = ((($92)) + 20|0);
+ HEAP32[$arrayidx92$i$i>>2] = 0;
+ HEAP32[$add$ptr81$i$i>>2] = 0;
+ $152 = HEAP32[(32484)>>2]|0;
+ $shl95$i$i = 1 << $I57$0$i$i;
+ $and96$i$i = $152 & $shl95$i$i;
+ $tobool97$i$i = ($and96$i$i|0)==(0);
+ if ($tobool97$i$i) {
+ $or101$i$i = $152 | $shl95$i$i;
+ HEAP32[(32484)>>2] = $or101$i$i;
+ HEAP32[$arrayidx91$i$i>>2] = $92;
+ $parent$i$i = ((($92)) + 24|0);
+ HEAP32[$parent$i$i>>2] = $arrayidx91$i$i;
+ $bk102$i$i = ((($92)) + 12|0);
+ HEAP32[$bk102$i$i>>2] = $92;
+ $fd103$i$i = ((($92)) + 8|0);
+ HEAP32[$fd103$i$i>>2] = $92;
+ break;
+ }
+ $153 = HEAP32[$arrayidx91$i$i>>2]|0;
+ $head1186$i$i = ((($153)) + 4|0);
+ $154 = HEAP32[$head1186$i$i>>2]|0;
+ $and1197$i$i = $154 & -8;
+ $cmp1208$i$i = ($and1197$i$i|0)==($sub$ptr$sub$i$i|0);
+ L325: do {
+ if ($cmp1208$i$i) {
+ $T$0$lcssa$i$i = $153;
+ } else {
+ $cmp106$i$i = ($I57$0$i$i|0)==(31);
+ $shr110$i$i = $I57$0$i$i >>> 1;
+ $sub113$i$i = (25 - ($shr110$i$i))|0;
+ $cond115$i$i = $cmp106$i$i ? 0 : $sub113$i$i;
+ $shl116$i$i = $sub$ptr$sub$i$i << $cond115$i$i;
+ $K105$010$i$i = $shl116$i$i;$T$09$i$i = $153;
+ while(1) {
+ $shr124$i$i = $K105$010$i$i >>> 31;
+ $arrayidx126$i$i = (((($T$09$i$i)) + 16|0) + ($shr124$i$i<<2)|0);
+ $155 = HEAP32[$arrayidx126$i$i>>2]|0;
+ $cmp128$i$i = ($155|0)==(0|0);
+ if ($cmp128$i$i) {
+ break;
+ }
+ $shl127$i$i = $K105$010$i$i << 1;
+ $head118$i$i = ((($155)) + 4|0);
+ $156 = HEAP32[$head118$i$i>>2]|0;
+ $and119$i$i = $156 & -8;
+ $cmp120$i$i = ($and119$i$i|0)==($sub$ptr$sub$i$i|0);
+ if ($cmp120$i$i) {
+ $T$0$lcssa$i$i = $155;
+ break L325;
+ } else {
+ $K105$010$i$i = $shl127$i$i;$T$09$i$i = $155;
+ }
+ }
+ HEAP32[$arrayidx126$i$i>>2] = $92;
+ $parent138$i$i = ((($92)) + 24|0);
+ HEAP32[$parent138$i$i>>2] = $T$09$i$i;
+ $bk139$i$i = ((($92)) + 12|0);
+ HEAP32[$bk139$i$i>>2] = $92;
+ $fd140$i$i = ((($92)) + 8|0);
+ HEAP32[$fd140$i$i>>2] = $92;
+ break L215;
+ }
+ } while(0);
+ $fd148$i$i = ((($T$0$lcssa$i$i)) + 8|0);
+ $157 = HEAP32[$fd148$i$i>>2]|0;
+ $bk158$i$i = ((($157)) + 12|0);
+ HEAP32[$bk158$i$i>>2] = $92;
+ HEAP32[$fd148$i$i>>2] = $92;
+ $fd160$i$i = ((($92)) + 8|0);
+ HEAP32[$fd160$i$i>>2] = $157;
+ $bk161$i$i = ((($92)) + 12|0);
+ HEAP32[$bk161$i$i>>2] = $T$0$lcssa$i$i;
+ $parent162$i$i = ((($92)) + 24|0);
+ HEAP32[$parent162$i$i>>2] = 0;
+ }
+ }
+ } while(0);
+ $158 = HEAP32[(32492)>>2]|0;
+ $cmp257$i = ($158>>>0)>($nb$0>>>0);
+ if ($cmp257$i) {
+ $sub260$i = (($158) - ($nb$0))|0;
+ HEAP32[(32492)>>2] = $sub260$i;
+ $159 = HEAP32[(32504)>>2]|0;
+ $add$ptr262$i = (($159) + ($nb$0)|0);
+ HEAP32[(32504)>>2] = $add$ptr262$i;
+ $or264$i = $sub260$i | 1;
+ $head265$i = ((($add$ptr262$i)) + 4|0);
+ HEAP32[$head265$i>>2] = $or264$i;
+ $or267$i = $nb$0 | 3;
+ $head268$i = ((($159)) + 4|0);
+ HEAP32[$head268$i>>2] = $or267$i;
+ $add$ptr269$i = ((($159)) + 8|0);
+ $retval$0 = $add$ptr269$i;
+ STACKTOP = sp;return ($retval$0|0);
+ }
+ }
+ $call275$i = (___errno_location()|0);
+ HEAP32[$call275$i>>2] = 12;
+ $retval$0 = 0;
+ STACKTOP = sp;return ($retval$0|0);
+}
+function _free($mem) {
+ $mem = $mem|0;
+ var $$pre = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $F510$0 = 0, $I534$0 = 0, $K583$0266 = 0;
+ var $R$1 = 0, $R$1$be = 0, $R$1$ph = 0, $R$3 = 0, $R332$1 = 0, $R332$1$be = 0, $R332$1$ph = 0, $R332$3 = 0, $RP$1 = 0, $RP$1$be = 0, $RP$1$ph = 0, $RP360$1 = 0, $RP360$1$be = 0, $RP360$1$ph = 0, $T$0$lcssa = 0, $T$0265 = 0, $add$ptr = 0, $add$ptr16 = 0, $add$ptr217 = 0, $add$ptr261 = 0;
+ var $add$ptr482 = 0, $add$ptr498 = 0, $add$ptr6 = 0, $add17 = 0, $add246 = 0, $add258 = 0, $add267 = 0, $add550 = 0, $add555 = 0, $add559 = 0, $add561 = 0, $add564 = 0, $and12 = 0, $and140 = 0, $and210 = 0, $and215 = 0, $and232 = 0, $and240 = 0, $and266 = 0, $and301 = 0;
+ var $and410 = 0, $and46 = 0, $and495 = 0, $and5 = 0, $and512 = 0, $and545 = 0, $and549 = 0, $and554 = 0, $and563 = 0, $and574 = 0, $and592 = 0, $and592263 = 0, $and8 = 0, $arrayidx108 = 0, $arrayidx113 = 0, $arrayidx130 = 0, $arrayidx149 = 0, $arrayidx157 = 0, $arrayidx157$sink = 0, $arrayidx182 = 0;
+ var $arrayidx188 = 0, $arrayidx198 = 0, $arrayidx362 = 0, $arrayidx374 = 0, $arrayidx379 = 0, $arrayidx400 = 0, $arrayidx419 = 0, $arrayidx427 = 0, $arrayidx427$sink = 0, $arrayidx454 = 0, $arrayidx460 = 0, $arrayidx470 = 0, $arrayidx509 = 0, $arrayidx567 = 0, $arrayidx570 = 0, $arrayidx599 = 0, $arrayidx99 = 0, $bk = 0, $bk275 = 0, $bk321 = 0;
+ var $bk333 = 0, $bk355 = 0, $bk529 = 0, $bk531 = 0, $bk580 = 0, $bk611 = 0, $bk631 = 0, $bk634 = 0, $bk66 = 0, $bk73 = 0, $bk94 = 0, $child = 0, $child171 = 0, $child361 = 0, $child443 = 0, $child569 = 0, $cmp = 0, $cmp$i = 0, $cmp100 = 0, $cmp104 = 0;
+ var $cmp109 = 0, $cmp114 = 0, $cmp127 = 0, $cmp13 = 0, $cmp131 = 0, $cmp150 = 0, $cmp162 = 0, $cmp173 = 0, $cmp18 = 0, $cmp189 = 0, $cmp211 = 0, $cmp22 = 0, $cmp228 = 0, $cmp243 = 0, $cmp249 = 0, $cmp25 = 0, $cmp255 = 0, $cmp269 = 0, $cmp296 = 0, $cmp334 = 0;
+ var $cmp363 = 0, $cmp368 = 0, $cmp375 = 0, $cmp380 = 0, $cmp395 = 0, $cmp401 = 0, $cmp42 = 0, $cmp420 = 0, $cmp432 = 0, $cmp445 = 0, $cmp461 = 0, $cmp484 = 0, $cmp502 = 0, $cmp536 = 0, $cmp540 = 0, $cmp584 = 0, $cmp593 = 0, $cmp593264 = 0, $cmp601 = 0, $cmp640 = 0;
+ var $cmp74 = 0, $cond = 0, $cond254 = 0, $cond255 = 0, $dec = 0, $fd = 0, $fd273 = 0, $fd322 = 0, $fd338 = 0, $fd356 = 0, $fd530 = 0, $fd581 = 0, $fd612 = 0, $fd620 = 0, $fd633 = 0, $fd67 = 0, $fd78 = 0, $fd95 = 0, $head209 = 0, $head216 = 0;
+ var $head231 = 0, $head248 = 0, $head260 = 0, $head4 = 0, $head481 = 0, $head497 = 0, $head591 = 0, $head591262 = 0, $idx$neg = 0, $index = 0, $index399 = 0, $index568 = 0, $neg = 0, $neg139 = 0, $neg300 = 0, $neg409 = 0, $next4$i = 0, $or = 0, $or247 = 0, $or259 = 0;
+ var $or480 = 0, $or496 = 0, $or516 = 0, $or578 = 0, $p$1 = 0, $parent = 0, $parent170 = 0, $parent183 = 0, $parent199 = 0, $parent331 = 0, $parent442 = 0, $parent455 = 0, $parent471 = 0, $parent579 = 0, $parent610 = 0, $parent635 = 0, $psize$1 = 0, $psize$2 = 0, $shl138 = 0, $shl299 = 0;
+ var $shl408 = 0, $shl45 = 0, $shl508 = 0, $shl511 = 0, $shl546 = 0, $shl551 = 0, $shl557 = 0, $shl560 = 0, $shl573 = 0, $shl590 = 0, $shl600 = 0, $shr = 0, $shr268 = 0, $shr501 = 0, $shr535 = 0, $shr544 = 0, $shr548 = 0, $shr553 = 0, $shr558 = 0, $shr562 = 0;
+ var $shr586 = 0, $shr597 = 0, $sp$0$i = 0, $sp$0$in$i = 0, $sub = 0, $sub547 = 0, $sub552 = 0, $sub556 = 0, $sub589 = 0, $tobool233 = 0, $tobool241 = 0, $tobool513 = 0, $tobool575 = 0, $tobool9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $cmp = ($mem|0)==(0|0);
+ if ($cmp) {
+ return;
+ }
+ $add$ptr = ((($mem)) + -8|0);
+ $0 = HEAP32[(32496)>>2]|0;
+ $head4 = ((($mem)) + -4|0);
+ $1 = HEAP32[$head4>>2]|0;
+ $and5 = $1 & -8;
+ $add$ptr6 = (($add$ptr) + ($and5)|0);
+ $and8 = $1 & 1;
+ $tobool9 = ($and8|0)==(0);
+ do {
+ if ($tobool9) {
+ $2 = HEAP32[$add$ptr>>2]|0;
+ $and12 = $1 & 3;
+ $cmp13 = ($and12|0)==(0);
+ if ($cmp13) {
+ return;
+ }
+ $idx$neg = (0 - ($2))|0;
+ $add$ptr16 = (($add$ptr) + ($idx$neg)|0);
+ $add17 = (($2) + ($and5))|0;
+ $cmp18 = ($add$ptr16>>>0)<($0>>>0);
+ if ($cmp18) {
+ return;
+ }
+ $3 = HEAP32[(32500)>>2]|0;
+ $cmp22 = ($3|0)==($add$ptr16|0);
+ if ($cmp22) {
+ $head209 = ((($add$ptr6)) + 4|0);
+ $20 = HEAP32[$head209>>2]|0;
+ $and210 = $20 & 3;
+ $cmp211 = ($and210|0)==(3);
+ if (!($cmp211)) {
+ $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
+ break;
+ }
+ $add$ptr217 = (($add$ptr16) + ($add17)|0);
+ $head216 = ((($add$ptr16)) + 4|0);
+ $or = $add17 | 1;
+ $and215 = $20 & -2;
+ HEAP32[(32488)>>2] = $add17;
+ HEAP32[$head209>>2] = $and215;
+ HEAP32[$head216>>2] = $or;
+ HEAP32[$add$ptr217>>2] = $add17;
+ return;
+ }
+ $shr = $2 >>> 3;
+ $cmp25 = ($2>>>0)<(256);
+ if ($cmp25) {
+ $fd = ((($add$ptr16)) + 8|0);
+ $4 = HEAP32[$fd>>2]|0;
+ $bk = ((($add$ptr16)) + 12|0);
+ $5 = HEAP32[$bk>>2]|0;
+ $cmp42 = ($5|0)==($4|0);
+ if ($cmp42) {
+ $shl45 = 1 << $shr;
+ $neg = $shl45 ^ -1;
+ $6 = HEAP32[8120]|0;
+ $and46 = $6 & $neg;
+ HEAP32[8120] = $and46;
+ $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
+ break;
+ } else {
+ $bk66 = ((($4)) + 12|0);
+ HEAP32[$bk66>>2] = $5;
+ $fd67 = ((($5)) + 8|0);
+ HEAP32[$fd67>>2] = $4;
+ $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
+ break;
+ }
+ }
+ $parent = ((($add$ptr16)) + 24|0);
+ $7 = HEAP32[$parent>>2]|0;
+ $bk73 = ((($add$ptr16)) + 12|0);
+ $8 = HEAP32[$bk73>>2]|0;
+ $cmp74 = ($8|0)==($add$ptr16|0);
+ do {
+ if ($cmp74) {
+ $child = ((($add$ptr16)) + 16|0);
+ $arrayidx99 = ((($child)) + 4|0);
+ $10 = HEAP32[$arrayidx99>>2]|0;
+ $cmp100 = ($10|0)==(0|0);
+ if ($cmp100) {
+ $11 = HEAP32[$child>>2]|0;
+ $cmp104 = ($11|0)==(0|0);
+ if ($cmp104) {
+ $R$3 = 0;
+ break;
+ } else {
+ $R$1$ph = $11;$RP$1$ph = $child;
+ }
+ } else {
+ $R$1$ph = $10;$RP$1$ph = $arrayidx99;
+ }
+ $R$1 = $R$1$ph;$RP$1 = $RP$1$ph;
+ while(1) {
+ $arrayidx108 = ((($R$1)) + 20|0);
+ $12 = HEAP32[$arrayidx108>>2]|0;
+ $cmp109 = ($12|0)==(0|0);
+ if ($cmp109) {
+ $arrayidx113 = ((($R$1)) + 16|0);
+ $13 = HEAP32[$arrayidx113>>2]|0;
+ $cmp114 = ($13|0)==(0|0);
+ if ($cmp114) {
+ break;
+ } else {
+ $R$1$be = $13;$RP$1$be = $arrayidx113;
+ }
+ } else {
+ $R$1$be = $12;$RP$1$be = $arrayidx108;
+ }
+ $R$1 = $R$1$be;$RP$1 = $RP$1$be;
+ }
+ HEAP32[$RP$1>>2] = 0;
+ $R$3 = $R$1;
+ } else {
+ $fd78 = ((($add$ptr16)) + 8|0);
+ $9 = HEAP32[$fd78>>2]|0;
+ $bk94 = ((($9)) + 12|0);
+ HEAP32[$bk94>>2] = $8;
+ $fd95 = ((($8)) + 8|0);
+ HEAP32[$fd95>>2] = $9;
+ $R$3 = $8;
+ }
+ } while(0);
+ $cmp127 = ($7|0)==(0|0);
+ if ($cmp127) {
+ $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
+ } else {
+ $index = ((($add$ptr16)) + 28|0);
+ $14 = HEAP32[$index>>2]|0;
+ $arrayidx130 = (32784 + ($14<<2)|0);
+ $15 = HEAP32[$arrayidx130>>2]|0;
+ $cmp131 = ($15|0)==($add$ptr16|0);
+ if ($cmp131) {
+ HEAP32[$arrayidx130>>2] = $R$3;
+ $cond254 = ($R$3|0)==(0|0);
+ if ($cond254) {
+ $shl138 = 1 << $14;
+ $neg139 = $shl138 ^ -1;
+ $16 = HEAP32[(32484)>>2]|0;
+ $and140 = $16 & $neg139;
+ HEAP32[(32484)>>2] = $and140;
+ $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
+ break;
+ }
+ } else {
+ $arrayidx149 = ((($7)) + 16|0);
+ $17 = HEAP32[$arrayidx149>>2]|0;
+ $cmp150 = ($17|0)==($add$ptr16|0);
+ $arrayidx157 = ((($7)) + 20|0);
+ $arrayidx157$sink = $cmp150 ? $arrayidx149 : $arrayidx157;
+ HEAP32[$arrayidx157$sink>>2] = $R$3;
+ $cmp162 = ($R$3|0)==(0|0);
+ if ($cmp162) {
+ $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
+ break;
+ }
+ }
+ $parent170 = ((($R$3)) + 24|0);
+ HEAP32[$parent170>>2] = $7;
+ $child171 = ((($add$ptr16)) + 16|0);
+ $18 = HEAP32[$child171>>2]|0;
+ $cmp173 = ($18|0)==(0|0);
+ if (!($cmp173)) {
+ $arrayidx182 = ((($R$3)) + 16|0);
+ HEAP32[$arrayidx182>>2] = $18;
+ $parent183 = ((($18)) + 24|0);
+ HEAP32[$parent183>>2] = $R$3;
+ }
+ $arrayidx188 = ((($child171)) + 4|0);
+ $19 = HEAP32[$arrayidx188>>2]|0;
+ $cmp189 = ($19|0)==(0|0);
+ if ($cmp189) {
+ $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
+ } else {
+ $arrayidx198 = ((($R$3)) + 20|0);
+ HEAP32[$arrayidx198>>2] = $19;
+ $parent199 = ((($19)) + 24|0);
+ HEAP32[$parent199>>2] = $R$3;
+ $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
+ }
+ }
+ } else {
+ $21 = $add$ptr;$p$1 = $add$ptr;$psize$1 = $and5;
+ }
+ } while(0);
+ $cmp228 = ($21>>>0)<($add$ptr6>>>0);
+ if (!($cmp228)) {
+ return;
+ }
+ $head231 = ((($add$ptr6)) + 4|0);
+ $22 = HEAP32[$head231>>2]|0;
+ $and232 = $22 & 1;
+ $tobool233 = ($and232|0)==(0);
+ if ($tobool233) {
+ return;
+ }
+ $and240 = $22 & 2;
+ $tobool241 = ($and240|0)==(0);
+ if ($tobool241) {
+ $23 = HEAP32[(32504)>>2]|0;
+ $cmp243 = ($23|0)==($add$ptr6|0);
+ if ($cmp243) {
+ $24 = HEAP32[(32492)>>2]|0;
+ $add246 = (($24) + ($psize$1))|0;
+ HEAP32[(32492)>>2] = $add246;
+ HEAP32[(32504)>>2] = $p$1;
+ $or247 = $add246 | 1;
+ $head248 = ((($p$1)) + 4|0);
+ HEAP32[$head248>>2] = $or247;
+ $25 = HEAP32[(32500)>>2]|0;
+ $cmp249 = ($p$1|0)==($25|0);
+ if (!($cmp249)) {
+ return;
+ }
+ HEAP32[(32500)>>2] = 0;
+ HEAP32[(32488)>>2] = 0;
+ return;
+ }
+ $26 = HEAP32[(32500)>>2]|0;
+ $cmp255 = ($26|0)==($add$ptr6|0);
+ if ($cmp255) {
+ $27 = HEAP32[(32488)>>2]|0;
+ $add258 = (($27) + ($psize$1))|0;
+ HEAP32[(32488)>>2] = $add258;
+ HEAP32[(32500)>>2] = $21;
+ $or259 = $add258 | 1;
+ $head260 = ((($p$1)) + 4|0);
+ HEAP32[$head260>>2] = $or259;
+ $add$ptr261 = (($21) + ($add258)|0);
+ HEAP32[$add$ptr261>>2] = $add258;
+ return;
+ }
+ $and266 = $22 & -8;
+ $add267 = (($and266) + ($psize$1))|0;
+ $shr268 = $22 >>> 3;
+ $cmp269 = ($22>>>0)<(256);
+ do {
+ if ($cmp269) {
+ $fd273 = ((($add$ptr6)) + 8|0);
+ $28 = HEAP32[$fd273>>2]|0;
+ $bk275 = ((($add$ptr6)) + 12|0);
+ $29 = HEAP32[$bk275>>2]|0;
+ $cmp296 = ($29|0)==($28|0);
+ if ($cmp296) {
+ $shl299 = 1 << $shr268;
+ $neg300 = $shl299 ^ -1;
+ $30 = HEAP32[8120]|0;
+ $and301 = $30 & $neg300;
+ HEAP32[8120] = $and301;
+ break;
+ } else {
+ $bk321 = ((($28)) + 12|0);
+ HEAP32[$bk321>>2] = $29;
+ $fd322 = ((($29)) + 8|0);
+ HEAP32[$fd322>>2] = $28;
+ break;
+ }
+ } else {
+ $parent331 = ((($add$ptr6)) + 24|0);
+ $31 = HEAP32[$parent331>>2]|0;
+ $bk333 = ((($add$ptr6)) + 12|0);
+ $32 = HEAP32[$bk333>>2]|0;
+ $cmp334 = ($32|0)==($add$ptr6|0);
+ do {
+ if ($cmp334) {
+ $child361 = ((($add$ptr6)) + 16|0);
+ $arrayidx362 = ((($child361)) + 4|0);
+ $34 = HEAP32[$arrayidx362>>2]|0;
+ $cmp363 = ($34|0)==(0|0);
+ if ($cmp363) {
+ $35 = HEAP32[$child361>>2]|0;
+ $cmp368 = ($35|0)==(0|0);
+ if ($cmp368) {
+ $R332$3 = 0;
+ break;
+ } else {
+ $R332$1$ph = $35;$RP360$1$ph = $child361;
+ }
+ } else {
+ $R332$1$ph = $34;$RP360$1$ph = $arrayidx362;
+ }
+ $R332$1 = $R332$1$ph;$RP360$1 = $RP360$1$ph;
+ while(1) {
+ $arrayidx374 = ((($R332$1)) + 20|0);
+ $36 = HEAP32[$arrayidx374>>2]|0;
+ $cmp375 = ($36|0)==(0|0);
+ if ($cmp375) {
+ $arrayidx379 = ((($R332$1)) + 16|0);
+ $37 = HEAP32[$arrayidx379>>2]|0;
+ $cmp380 = ($37|0)==(0|0);
+ if ($cmp380) {
+ break;
+ } else {
+ $R332$1$be = $37;$RP360$1$be = $arrayidx379;
+ }
+ } else {
+ $R332$1$be = $36;$RP360$1$be = $arrayidx374;
+ }
+ $R332$1 = $R332$1$be;$RP360$1 = $RP360$1$be;
+ }
+ HEAP32[$RP360$1>>2] = 0;
+ $R332$3 = $R332$1;
+ } else {
+ $fd338 = ((($add$ptr6)) + 8|0);
+ $33 = HEAP32[$fd338>>2]|0;
+ $bk355 = ((($33)) + 12|0);
+ HEAP32[$bk355>>2] = $32;
+ $fd356 = ((($32)) + 8|0);
+ HEAP32[$fd356>>2] = $33;
+ $R332$3 = $32;
+ }
+ } while(0);
+ $cmp395 = ($31|0)==(0|0);
+ if (!($cmp395)) {
+ $index399 = ((($add$ptr6)) + 28|0);
+ $38 = HEAP32[$index399>>2]|0;
+ $arrayidx400 = (32784 + ($38<<2)|0);
+ $39 = HEAP32[$arrayidx400>>2]|0;
+ $cmp401 = ($39|0)==($add$ptr6|0);
+ if ($cmp401) {
+ HEAP32[$arrayidx400>>2] = $R332$3;
+ $cond255 = ($R332$3|0)==(0|0);
+ if ($cond255) {
+ $shl408 = 1 << $38;
+ $neg409 = $shl408 ^ -1;
+ $40 = HEAP32[(32484)>>2]|0;
+ $and410 = $40 & $neg409;
+ HEAP32[(32484)>>2] = $and410;
+ break;
+ }
+ } else {
+ $arrayidx419 = ((($31)) + 16|0);
+ $41 = HEAP32[$arrayidx419>>2]|0;
+ $cmp420 = ($41|0)==($add$ptr6|0);
+ $arrayidx427 = ((($31)) + 20|0);
+ $arrayidx427$sink = $cmp420 ? $arrayidx419 : $arrayidx427;
+ HEAP32[$arrayidx427$sink>>2] = $R332$3;
+ $cmp432 = ($R332$3|0)==(0|0);
+ if ($cmp432) {
+ break;
+ }
+ }
+ $parent442 = ((($R332$3)) + 24|0);
+ HEAP32[$parent442>>2] = $31;
+ $child443 = ((($add$ptr6)) + 16|0);
+ $42 = HEAP32[$child443>>2]|0;
+ $cmp445 = ($42|0)==(0|0);
+ if (!($cmp445)) {
+ $arrayidx454 = ((($R332$3)) + 16|0);
+ HEAP32[$arrayidx454>>2] = $42;
+ $parent455 = ((($42)) + 24|0);
+ HEAP32[$parent455>>2] = $R332$3;
+ }
+ $arrayidx460 = ((($child443)) + 4|0);
+ $43 = HEAP32[$arrayidx460>>2]|0;
+ $cmp461 = ($43|0)==(0|0);
+ if (!($cmp461)) {
+ $arrayidx470 = ((($R332$3)) + 20|0);
+ HEAP32[$arrayidx470>>2] = $43;
+ $parent471 = ((($43)) + 24|0);
+ HEAP32[$parent471>>2] = $R332$3;
+ }
+ }
+ }
+ } while(0);
+ $or480 = $add267 | 1;
+ $head481 = ((($p$1)) + 4|0);
+ HEAP32[$head481>>2] = $or480;
+ $add$ptr482 = (($21) + ($add267)|0);
+ HEAP32[$add$ptr482>>2] = $add267;
+ $44 = HEAP32[(32500)>>2]|0;
+ $cmp484 = ($p$1|0)==($44|0);
+ if ($cmp484) {
+ HEAP32[(32488)>>2] = $add267;
+ return;
+ } else {
+ $psize$2 = $add267;
+ }
+ } else {
+ $and495 = $22 & -2;
+ HEAP32[$head231>>2] = $and495;
+ $or496 = $psize$1 | 1;
+ $head497 = ((($p$1)) + 4|0);
+ HEAP32[$head497>>2] = $or496;
+ $add$ptr498 = (($21) + ($psize$1)|0);
+ HEAP32[$add$ptr498>>2] = $psize$1;
+ $psize$2 = $psize$1;
+ }
+ $shr501 = $psize$2 >>> 3;
+ $cmp502 = ($psize$2>>>0)<(256);
+ if ($cmp502) {
+ $shl508 = $shr501 << 1;
+ $arrayidx509 = (32520 + ($shl508<<2)|0);
+ $45 = HEAP32[8120]|0;
+ $shl511 = 1 << $shr501;
+ $and512 = $45 & $shl511;
+ $tobool513 = ($and512|0)==(0);
+ if ($tobool513) {
+ $or516 = $45 | $shl511;
+ HEAP32[8120] = $or516;
+ $$pre = ((($arrayidx509)) + 8|0);
+ $$pre$phiZ2D = $$pre;$F510$0 = $arrayidx509;
+ } else {
+ $46 = ((($arrayidx509)) + 8|0);
+ $47 = HEAP32[$46>>2]|0;
+ $$pre$phiZ2D = $46;$F510$0 = $47;
+ }
+ HEAP32[$$pre$phiZ2D>>2] = $p$1;
+ $bk529 = ((($F510$0)) + 12|0);
+ HEAP32[$bk529>>2] = $p$1;
+ $fd530 = ((($p$1)) + 8|0);
+ HEAP32[$fd530>>2] = $F510$0;
+ $bk531 = ((($p$1)) + 12|0);
+ HEAP32[$bk531>>2] = $arrayidx509;
+ return;
+ }
+ $shr535 = $psize$2 >>> 8;
+ $cmp536 = ($shr535|0)==(0);
+ if ($cmp536) {
+ $I534$0 = 0;
+ } else {
+ $cmp540 = ($psize$2>>>0)>(16777215);
+ if ($cmp540) {
+ $I534$0 = 31;
+ } else {
+ $sub = (($shr535) + 1048320)|0;
+ $shr544 = $sub >>> 16;
+ $and545 = $shr544 & 8;
+ $shl546 = $shr535 << $and545;
+ $sub547 = (($shl546) + 520192)|0;
+ $shr548 = $sub547 >>> 16;
+ $and549 = $shr548 & 4;
+ $add550 = $and549 | $and545;
+ $shl551 = $shl546 << $and549;
+ $sub552 = (($shl551) + 245760)|0;
+ $shr553 = $sub552 >>> 16;
+ $and554 = $shr553 & 2;
+ $add555 = $add550 | $and554;
+ $sub556 = (14 - ($add555))|0;
+ $shl557 = $shl551 << $and554;
+ $shr558 = $shl557 >>> 15;
+ $add559 = (($sub556) + ($shr558))|0;
+ $shl560 = $add559 << 1;
+ $add561 = (($add559) + 7)|0;
+ $shr562 = $psize$2 >>> $add561;
+ $and563 = $shr562 & 1;
+ $add564 = $and563 | $shl560;
+ $I534$0 = $add564;
+ }
+ }
+ $arrayidx567 = (32784 + ($I534$0<<2)|0);
+ $index568 = ((($p$1)) + 28|0);
+ HEAP32[$index568>>2] = $I534$0;
+ $child569 = ((($p$1)) + 16|0);
+ $arrayidx570 = ((($p$1)) + 20|0);
+ HEAP32[$arrayidx570>>2] = 0;
+ HEAP32[$child569>>2] = 0;
+ $48 = HEAP32[(32484)>>2]|0;
+ $shl573 = 1 << $I534$0;
+ $and574 = $48 & $shl573;
+ $tobool575 = ($and574|0)==(0);
+ L112: do {
+ if ($tobool575) {
+ $or578 = $48 | $shl573;
+ HEAP32[(32484)>>2] = $or578;
+ HEAP32[$arrayidx567>>2] = $p$1;
+ $parent579 = ((($p$1)) + 24|0);
+ HEAP32[$parent579>>2] = $arrayidx567;
+ $bk580 = ((($p$1)) + 12|0);
+ HEAP32[$bk580>>2] = $p$1;
+ $fd581 = ((($p$1)) + 8|0);
+ HEAP32[$fd581>>2] = $p$1;
+ } else {
+ $49 = HEAP32[$arrayidx567>>2]|0;
+ $head591262 = ((($49)) + 4|0);
+ $50 = HEAP32[$head591262>>2]|0;
+ $and592263 = $50 & -8;
+ $cmp593264 = ($and592263|0)==($psize$2|0);
+ L115: do {
+ if ($cmp593264) {
+ $T$0$lcssa = $49;
+ } else {
+ $cmp584 = ($I534$0|0)==(31);
+ $shr586 = $I534$0 >>> 1;
+ $sub589 = (25 - ($shr586))|0;
+ $cond = $cmp584 ? 0 : $sub589;
+ $shl590 = $psize$2 << $cond;
+ $K583$0266 = $shl590;$T$0265 = $49;
+ while(1) {
+ $shr597 = $K583$0266 >>> 31;
+ $arrayidx599 = (((($T$0265)) + 16|0) + ($shr597<<2)|0);
+ $51 = HEAP32[$arrayidx599>>2]|0;
+ $cmp601 = ($51|0)==(0|0);
+ if ($cmp601) {
+ break;
+ }
+ $shl600 = $K583$0266 << 1;
+ $head591 = ((($51)) + 4|0);
+ $52 = HEAP32[$head591>>2]|0;
+ $and592 = $52 & -8;
+ $cmp593 = ($and592|0)==($psize$2|0);
+ if ($cmp593) {
+ $T$0$lcssa = $51;
+ break L115;
+ } else {
+ $K583$0266 = $shl600;$T$0265 = $51;
+ }
+ }
+ HEAP32[$arrayidx599>>2] = $p$1;
+ $parent610 = ((($p$1)) + 24|0);
+ HEAP32[$parent610>>2] = $T$0265;
+ $bk611 = ((($p$1)) + 12|0);
+ HEAP32[$bk611>>2] = $p$1;
+ $fd612 = ((($p$1)) + 8|0);
+ HEAP32[$fd612>>2] = $p$1;
+ break L112;
+ }
+ } while(0);
+ $fd620 = ((($T$0$lcssa)) + 8|0);
+ $53 = HEAP32[$fd620>>2]|0;
+ $bk631 = ((($53)) + 12|0);
+ HEAP32[$bk631>>2] = $p$1;
+ HEAP32[$fd620>>2] = $p$1;
+ $fd633 = ((($p$1)) + 8|0);
+ HEAP32[$fd633>>2] = $53;
+ $bk634 = ((($p$1)) + 12|0);
+ HEAP32[$bk634>>2] = $T$0$lcssa;
+ $parent635 = ((($p$1)) + 24|0);
+ HEAP32[$parent635>>2] = 0;
+ }
+ } while(0);
+ $54 = HEAP32[(32512)>>2]|0;
+ $dec = (($54) + -1)|0;
+ HEAP32[(32512)>>2] = $dec;
+ $cmp640 = ($dec|0)==(0);
+ if (!($cmp640)) {
+ return;
+ }
+ $sp$0$in$i = (32936);
+ while(1) {
+ $sp$0$i = HEAP32[$sp$0$in$i>>2]|0;
+ $cmp$i = ($sp$0$i|0)==(0|0);
+ $next4$i = ((($sp$0$i)) + 8|0);
+ if ($cmp$i) {
+ break;
+ } else {
+ $sp$0$in$i = $next4$i;
+ }
+ }
+ HEAP32[(32512)>>2] = -1;
+ return;
+}
+function ___errno_location() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return (32976|0);
+}
+function ___muldsi3($a, $b) {
+ $a = $a | 0;
+ $b = $b | 0;
+ var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0;
+ $1 = $a & 65535;
+ $2 = $b & 65535;
+ $3 = Math_imul($2, $1) | 0;
+ $6 = $a >>> 16;
+ $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0;
+ $11 = $b >>> 16;
+ $12 = Math_imul($11, $1) | 0;
+ return (setTempRet0(((($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0) | 0), 0 | ($8 + $12 << 16 | $3 & 65535)) | 0;
+}
+function ___muldi3($a$0, $a$1, $b$0, $b$1) {
+ $a$0 = $a$0 | 0;
+ $a$1 = $a$1 | 0;
+ $b$0 = $b$0 | 0;
+ $b$1 = $b$1 | 0;
+ var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0;
+ $x_sroa_0_0_extract_trunc = $a$0;
+ $y_sroa_0_0_extract_trunc = $b$0;
+ $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0;
+ $1$1 = (getTempRet0() | 0);
+ $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0;
+ return (setTempRet0((((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0) | 0), 0 | $1$0 & -1) | 0;
+}
+function _bitshift64Ashr(low, high, bits) {
+ low = low|0; high = high|0; bits = bits|0;
+ var ander = 0;
+ if ((bits|0) < 32) {
+ ander = ((1 << bits) - 1)|0;
+ setTempRet0((high >> bits) | 0);
+ return (low >>> bits) | ((high&ander) << (32 - bits));
+ }
+ setTempRet0(((high|0) < 0 ? -1 : 0) | 0);
+ return (high >> (bits - 32))|0;
+}
+function _bitshift64Lshr(low, high, bits) {
+ low = low|0; high = high|0; bits = bits|0;
+ var ander = 0;
+ if ((bits|0) < 32) {
+ ander = ((1 << bits) - 1)|0;
+ setTempRet0((high >>> bits) | 0);
+ return (low >>> bits) | ((high&ander) << (32 - bits));
+ }
+ setTempRet0((0) | 0);
+ return (high >>> (bits - 32))|0;
+}
+function _bitshift64Shl(low, high, bits) {
+ low = low|0; high = high|0; bits = bits|0;
+ var ander = 0;
+ if ((bits|0) < 32) {
+ ander = ((1 << bits) - 1)|0;
+ setTempRet0(((high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits))) | 0);
+ return low << bits;
+ }
+ setTempRet0((low << (bits - 32)) | 0);
+ return 0;
+}
+function _i64Add(a, b, c, d) {
+ /*
+ x = a + b*2^32
+ y = c + d*2^32
+ result = l + h*2^32
+ */
+ a = a|0; b = b|0; c = c|0; d = d|0;
+ var l = 0, h = 0;
+ l = (a + c)>>>0;
+ h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow.
+ return ((setTempRet0((h) | 0),l|0)|0);
+}
+function _i64Subtract(a, b, c, d) {
+ a = a|0; b = b|0; c = c|0; d = d|0;
+ var l = 0, h = 0;
+ l = (a - c)>>>0;
+ h = (b - d)>>>0;
+ h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow.
+ return ((setTempRet0((h) | 0),l|0)|0);
+}
+function _memcpy(dest, src, num) {
+ dest = dest|0; src = src|0; num = num|0;
+ var ret = 0;
+ var aligned_dest_end = 0;
+ var block_aligned_dest_end = 0;
+ var dest_end = 0;
+ // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use.
+ if ((num|0) >= 8192) {
+ _emscripten_memcpy_big(dest|0, src|0, num|0)|0;
+ return dest|0;
+ }
-var _create_keypair = Module["_create_keypair"] = function() {
- return Module["asm"]["_create_keypair"].apply(null, arguments)
-};
+ ret = dest|0;
+ dest_end = (dest + num)|0;
+ if ((dest&3) == (src&3)) {
+ // The initial unaligned < 4-byte front.
+ while (dest & 3) {
+ if ((num|0) == 0) return ret|0;
+ HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
+ dest = (dest+1)|0;
+ src = (src+1)|0;
+ num = (num-1)|0;
+ }
+ aligned_dest_end = (dest_end & -4)|0;
+ block_aligned_dest_end = (aligned_dest_end - 64)|0;
+ while ((dest|0) <= (block_aligned_dest_end|0) ) {
+ HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
+ HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0);
+ HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0);
+ HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0);
+ HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0);
+ HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0);
+ HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0);
+ HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0);
+ HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0);
+ HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0);
+ HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0);
+ HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0);
+ HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0);
+ HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0);
+ HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0);
+ HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0);
+ dest = (dest+64)|0;
+ src = (src+64)|0;
+ }
+ while ((dest|0) < (aligned_dest_end|0) ) {
+ HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
+ dest = (dest+4)|0;
+ src = (src+4)|0;
+ }
+ } else {
+ // In the unaligned copy case, unroll a bit as well.
+ aligned_dest_end = (dest_end - 4)|0;
+ while ((dest|0) < (aligned_dest_end|0) ) {
+ HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
+ HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0);
+ HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0);
+ HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0);
+ dest = (dest+4)|0;
+ src = (src+4)|0;
+ }
+ }
+ // The remaining unaligned < 4 byte tail.
+ while ((dest|0) < (dest_end|0)) {
+ HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
+ dest = (dest+1)|0;
+ src = (src+1)|0;
+ }
+ return ret|0;
+}
+function _memset(ptr, value, num) {
+ ptr = ptr|0; value = value|0; num = num|0;
+ var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0;
+ end = (ptr + num)|0;
+
+ value = value & 0xff;
+ if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) {
+ while ((ptr&3) != 0) {
+ HEAP8[((ptr)>>0)]=value;
+ ptr = (ptr+1)|0;
+ }
-var _free = Module["_free"] = function() {
- return Module["asm"]["_free"].apply(null, arguments)
-};
+ aligned_end = (end & -4)|0;
+ value4 = value | (value << 8) | (value << 16) | (value << 24);
+
+ block_aligned_end = (aligned_end - 64)|0;
+
+ while((ptr|0) <= (block_aligned_end|0)) {
+ HEAP32[((ptr)>>2)]=value4;
+ HEAP32[(((ptr)+(4))>>2)]=value4;
+ HEAP32[(((ptr)+(8))>>2)]=value4;
+ HEAP32[(((ptr)+(12))>>2)]=value4;
+ HEAP32[(((ptr)+(16))>>2)]=value4;
+ HEAP32[(((ptr)+(20))>>2)]=value4;
+ HEAP32[(((ptr)+(24))>>2)]=value4;
+ HEAP32[(((ptr)+(28))>>2)]=value4;
+ HEAP32[(((ptr)+(32))>>2)]=value4;
+ HEAP32[(((ptr)+(36))>>2)]=value4;
+ HEAP32[(((ptr)+(40))>>2)]=value4;
+ HEAP32[(((ptr)+(44))>>2)]=value4;
+ HEAP32[(((ptr)+(48))>>2)]=value4;
+ HEAP32[(((ptr)+(52))>>2)]=value4;
+ HEAP32[(((ptr)+(56))>>2)]=value4;
+ HEAP32[(((ptr)+(60))>>2)]=value4;
+ ptr = (ptr + 64)|0;
+ }
-var _malloc = Module["_malloc"] = function() {
- return Module["asm"]["_malloc"].apply(null, arguments)
-};
+ while ((ptr|0) < (aligned_end|0) ) {
+ HEAP32[((ptr)>>2)]=value4;
+ ptr = (ptr+4)|0;
+ }
+ }
+ // The remaining bytes.
+ while ((ptr|0) < (end|0)) {
+ HEAP8[((ptr)>>0)]=value;
+ ptr = (ptr+1)|0;
+ }
+ return (end-num)|0;
+}
+function _sbrk(increment) {
+ increment = increment|0;
+ var oldDynamicTop = 0;
+ var oldDynamicTopOnChange = 0;
+ var newDynamicTop = 0;
+ var totalMemory = 0;
+ totalMemory = _emscripten_get_heap_size()|0;
+
+ oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0;
+ newDynamicTop = oldDynamicTop + increment | 0;
+
+ if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int.
+ | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract.
+ abortOnCannotGrowMemory(newDynamicTop|0)|0;
+ ___setErrNo(12);
+ return -1;
+ }
-var _memcpy = Module["_memcpy"] = function() {
- return Module["asm"]["_memcpy"].apply(null, arguments)
-};
+ if ((newDynamicTop|0) > (totalMemory|0)) {
+ if (_emscripten_resize_heap(newDynamicTop|0)|0) {
+ // We resized the heap. Start another loop iteration if we need to.
+ } else {
+ // We failed to resize the heap.
+ ___setErrNo(12);
+ return -1;
+ }
+ }
-var _memset = Module["_memset"] = function() {
- return Module["asm"]["_memset"].apply(null, arguments)
-};
+ HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop|0;
-var _sbrk = Module["_sbrk"] = function() {
- return Module["asm"]["_sbrk"].apply(null, arguments)
-};
+ return oldDynamicTop|0;
+}
-var _sign = Module["_sign"] = function() {
- return Module["asm"]["_sign"].apply(null, arguments)
-};
+
-var _verify = Module["_verify"] = function() {
- return Module["asm"]["_verify"].apply(null, arguments)
-};
-var establishStackSpace = Module["establishStackSpace"] = function() {
- return Module["asm"]["establishStackSpace"].apply(null, arguments)
-};
+// EMSCRIPTEN_END_FUNCS
-var stackAlloc = Module["stackAlloc"] = function() {
- return Module["asm"]["stackAlloc"].apply(null, arguments)
-};
-var stackRestore = Module["stackRestore"] = function() {
- return Module["asm"]["stackRestore"].apply(null, arguments)
-};
+ return { ___errno_location: ___errno_location, ___muldi3: ___muldi3, _bitshift64Ashr: _bitshift64Ashr, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _create_keypair: _create_keypair, _free: _free, _i64Add: _i64Add, _i64Subtract: _i64Subtract, _malloc: _malloc, _memcpy: _memcpy, _memset: _memset, _sbrk: _sbrk, _sign: _sign, _verify: _verify, establishStackSpace: establishStackSpace, stackAlloc: stackAlloc, stackRestore: stackRestore, stackSave: stackSave };
+})
+// EMSCRIPTEN_END_ASM
+(asmGlobalArg, asmLibraryArg, buffer);
-var stackSave = Module["stackSave"] = function() {
- return Module["asm"]["stackSave"].apply(null, arguments)
-};
+var ___errno_location = Module["___errno_location"] = asm["___errno_location"];
+var ___muldi3 = Module["___muldi3"] = asm["___muldi3"];
+var _bitshift64Ashr = Module["_bitshift64Ashr"] = asm["_bitshift64Ashr"];
+var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"];
+var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
+var _create_keypair = Module["_create_keypair"] = asm["_create_keypair"];
+var _free = Module["_free"] = asm["_free"];
+var _i64Add = Module["_i64Add"] = asm["_i64Add"];
+var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
+var _malloc = Module["_malloc"] = asm["_malloc"];
+var _memcpy = Module["_memcpy"] = asm["_memcpy"];
+var _memset = Module["_memset"] = asm["_memset"];
+var _sbrk = Module["_sbrk"] = asm["_sbrk"];
+var _sign = Module["_sign"] = asm["_sign"];
+var _verify = Module["_verify"] = asm["_verify"];
+var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"];
+var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"];
+var stackRestore = Module["stackRestore"] = asm["stackRestore"];
+var stackSave = Module["stackSave"] = asm["stackSave"];
;
@@ -1844,6 +13010,66 @@ Module['asm'] = asm;
+if (memoryInitializer) {
+ if (!isDataURI(memoryInitializer)) {
+ memoryInitializer = locateFile(memoryInitializer);
+ }
+ if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
+ var data = Module['readBinary'](memoryInitializer);
+ HEAPU8.set(data, GLOBAL_BASE);
+ } else {
+ addRunDependency('memory initializer');
+ var applyMemoryInitializer = function(data) {
+ if (data.byteLength) data = new Uint8Array(data);
+ HEAPU8.set(data, GLOBAL_BASE);
+ // Delete the typed array that contains the large blob of the memory initializer request response so that
+ // we won't keep unnecessary memory lying around. However, keep the XHR object itself alive so that e.g.
+ // its .status field can still be accessed later.
+ if (Module['memoryInitializerRequest']) delete Module['memoryInitializerRequest'].response;
+ removeRunDependency('memory initializer');
+ }
+ var doBrowserLoad = function() {
+ Module['readAsync'](memoryInitializer, applyMemoryInitializer, function() {
+ throw 'could not load memory initializer ' + memoryInitializer;
+ });
+ }
+ var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer);
+ if (memoryInitializerBytes) {
+ applyMemoryInitializer(memoryInitializerBytes.buffer);
+ } else
+ if (Module['memoryInitializerRequest']) {
+ // a network request has already been created, just use that
+ var useRequest = function() {
+ var request = Module['memoryInitializerRequest'];
+ var response = request.response;
+ if (request.status !== 200 && request.status !== 0) {
+ var data = tryParseAsDataURI(Module['memoryInitializerRequestURL']);
+ if (data) {
+ response = data.buffer;
+ } else {
+ // If you see this warning, the issue may be that you are using locateFile and defining it in JS. That
+ // means that the HTML file doesn't know about it, and when it tries to create the mem init request early, does it to the wrong place.
+ // Look in your browser's devtools network console to see what's going on.
+ console.warn('a problem seems to have happened with Module.memoryInitializerRequest, status: ' + request.status + ', retrying ' + memoryInitializer);
+ doBrowserLoad();
+ return;
+ }
+ }
+ applyMemoryInitializer(response);
+ }
+ if (Module['memoryInitializerRequest'].response) {
+ setTimeout(useRequest, 0); // it's already here; but, apply it asynchronously
+ } else {
+ Module['memoryInitializerRequest'].addEventListener('load', useRequest); // wait for it
+ }
+ } else {
+ // fetch it from the network ourselves
+ doBrowserLoad();
+ }
+ }
+}
+
+
/**
* @constructor
diff --git a/supercop.wasm b/supercop.wasm
Binary files differ.