diff --git a/.gitignore b/.gitignore index 57396d2..2a61478 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,7 @@ coverage .lock-wscript # Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release +/build/Release # Dependency directories node_modules @@ -36,12 +36,9 @@ jspm_packages # Optional REPL history .node_repl_history -dist -build +/build zz_build_* -*.node *.lib *.exe -*.out.js a.out a.out.* diff --git a/changes.md b/changes.md index 80192c2..43d3a5c 100644 --- a/changes.md +++ b/changes.md @@ -6,6 +6,10 @@ TODO --> +## 1.0.3~1.0.6 + +- try fix npm install + ## 1.0.2 - switch to TypeScript diff --git a/dist/build/Release/dummy.txt b/dist/build/Release/dummy.txt new file mode 100644 index 0000000..e69de29 diff --git a/dist/lib/browser.d.ts b/dist/lib/browser.d.ts new file mode 100644 index 0000000..c6011f9 --- /dev/null +++ b/dist/lib/browser.d.ts @@ -0,0 +1,16 @@ +export declare const version: string; +export declare const minQuality: number; +export declare const maxQuality: number; +export declare const defaultQuality: number; +export interface Image { + width: number; + height: number; + channels: number; + depth: number; + stride: number; + pix: Uint8Array; +} +export declare function encodeImage(m: Image, quality?: number): Uint8Array; +export declare function encodeGray(pix: Uint8Array, w: number, h: number, stride: number, quality: number): Uint8Array; +export declare function encodeRGB(pix: Uint8Array, w: number, h: number, stride: number, quality: number): Uint8Array; +export declare function encodeRGBA(pix: Uint8Array, w: number, h: number, stride: number, quality: number): Uint8Array; diff --git a/dist/lib/browser.js b/dist/lib/browser.js new file mode 100644 index 0000000..ba654a6 --- /dev/null +++ b/dist/lib/browser.js @@ -0,0 +1,90 @@ +// Copyright 2017 . All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +"use strict"; +exports.__esModule = true; +var Module = require("./cxx-emscripten/guetzli.out"); +function cToUint8Array(p, size) { + var q = new Uint8Array(size | 0); + for (var i = 0; i < q.length; i++) { + q[i] = Module.HEAPU8[p + i]; + } + return q; +} +// CAPI_EXPORT(const char*) guetzliGetVersion(); +function guetzliGetVersion() { + return Module.ccall('guetzliGetVersion', 'string', [], []); +} +// CAPI_EXPORT(guetzli_string_t*) guetzli_string_new(int size); +function guetzli_string_new(size) { + return Module.ccall('guetzli_string_new', 'number', ['number'], [size]); +} +// CAPI_EXPORT(void) guetzli_string_delete(guetzli_string_t* p); +function guetzli_string_delete(p) { + Module.ccall('guetzli_string_delete', 'null', ['number'], [p]); +} +// CAPI_EXPORT(void) guetzli_string_resize(guetzli_string_t* p, int size); +function guetzli_string_resize(p, size) { + return Module.ccall('guetzli_string_resize', 'null', ['number', 'number'], [p, size]); +} +// CAPI_EXPORT(int) guetzli_string_size(guetzli_string_t* p); +function guetzli_string_size(p) { + return Module.ccall('guetzli_string_size', 'number', ['number'], [p]); +} +// CAPI_EXPORT(char*) guetzli_string_data(guetzli_string_t* p); +function guetzli_string_data(p) { + return Module.ccall('guetzli_string_data', 'number', ['number'], [p]); +} +// CAPI_EXPORT(guetzli_string_t*) +// guetzli_encode_Gray(const uint8_t* pix, int w, int h, int stride, float quality); +function guetzli_encode_Gray(pix, w, h, stride, quality) { + return Module.ccall('guetzli_encode_Gray', 'number', ['array', 'number', 'number', 'number', 'number'], [pix, w, h, stride, quality]); +} +// CAPI_EXPORT(guetzli_string_t*) +// guetzli_encode_RGB(const uint8_t* pix, int w, int h, int stride, float quality); +function guetzli_encode_RGB(pix, w, h, stride, quality) { + return Module.ccall('guetzli_encode_RGB', 'number', ['array', 'number', 'number', 'number', 'number'], [pix, w, h, stride, quality]); +} +// CAPI_EXPORT(guetzli_string_t*) +// guetzli_encode_RGBA(const uint8_t* pix, int w, int h, int stride, float quality); +function guetzli_encode_RGBA(pix, w, h, stride, quality) { + return Module.ccall('guetzli_encode_RGBA', 'number', ['array', 'number', 'number', 'number', 'number'], [pix, w, h, stride, quality]); +} +exports.version = guetzliGetVersion(); +exports.minQuality = 84; +exports.maxQuality = 110; +exports.defaultQuality = 95; +function encodeImage(m, quality) { + if (quality === void 0) { quality = exports.defaultQuality; } + switch (m.channels) { + case 1: return encodeGray(m.pix, m.width, m.height, m.stride, quality); + case 3: return encodeRGB(m.pix, m.width, m.height, m.stride, quality); + case 4: return encodeRGBA(m.pix, m.width, m.height, m.stride, quality); + } + throw "guetzli.encodeImage: unknown channels:" + m.channels; +} +exports.encodeImage = encodeImage; +function encodeGray(pix, w, h, stride, quality) { + var s = guetzli_encode_Gray(pix, w, h, stride, quality); + var q = cToUint8Array(guetzli_string_data(s), guetzli_string_size(s)); + guetzli_string_delete(s); + return q; +} +exports.encodeGray = encodeGray; +function encodeRGB(pix, w, h, stride, quality) { + var s = guetzli_encode_RGB(pix, w, h, stride, quality); + var q = cToUint8Array(guetzli_string_data(s), guetzli_string_size(s)); + guetzli_string_delete(s); + return q; +} +exports.encodeRGB = encodeRGB; +function encodeRGBA(pix, w, h, stride, quality) { + var s = guetzli_encode_RGBA(pix, w, h, stride, quality); + var q = cToUint8Array(guetzli_string_data(s), guetzli_string_size(s)); + guetzli_string_delete(s); + return q; +} +exports.encodeRGBA = encodeRGBA; +if (require.main === module) { + console.log('guetzli-', guetzliGetVersion()); +} diff --git a/dist/lib/cxx-emscripten/guetzli.out.d.ts b/dist/lib/cxx-emscripten/guetzli.out.d.ts new file mode 100644 index 0000000..2c8ba2a --- /dev/null +++ b/dist/lib/cxx-emscripten/guetzli.out.d.ts @@ -0,0 +1,79 @@ +// Copyright 2017 . All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Module + +export function print(str: string): void; +export function printErr(str: string): void; + +export let preInit: { (): void }[]; +export let preRun: { (): void }[]; +export let postRun: { (): void }[]; +export let noExitRuntime: boolean; + +export let Runtime: any; + +export function ccall(ident: string, returnType: string, argTypes: string[], args: any[]): any; +export function cwrap(ident: string, returnType: string, argTypes: string[]): any; + +export function setValue(ptr: number, value: any, type: string, noSafe?: boolean): void; +export function getValue(ptr: number, type: string, noSafe?: boolean): number; + +export let ALLOC_NORMAL: number; +export let ALLOC_STACK: number; +export let ALLOC_STATIC: number; +export let ALLOC_DYNAMIC: number; +export let ALLOC_NONE: number; + +export function allocate(slab: any, types: string, allocator: number, ptr: number): number; +export function allocate(slab: any, types: string[], allocator: number, ptr: number): number; + +export function Pointer_stringify(ptr: number, length?: number): string; +export function UTF16ToString(ptr: number): string; +export function stringToUTF16(str: string, outPtr: number): void; +export function UTF32ToString(ptr: number): string; +export function stringToUTF32(str: string, outPtr: number): void; + +// USE_TYPED_ARRAYS == 1 +export let HEAP: Int32Array; +export let IHEAP: Int32Array; +export let FHEAP: Float64Array; + +// USE_TYPED_ARRAYS == 2 +export let HEAP8: Int8Array; +export let HEAP16: Int16Array; +export let HEAP32: Int32Array; +export let HEAPU8: Uint8Array; +export let HEAPU16: Uint16Array; +export let HEAPU32: Uint32Array; +export let HEAPF32: Float32Array; +export let HEAPF64: Float64Array; + +export let TOTAL_STACK: number; +export let TOTAL_MEMORY: number; +export let FAST_MEMORY: number; + +export function addOnPreRun(cb: () => any): void; +export function addOnInit(cb: () => any): void; +export function addOnPreMain(cb: () => any): void; +export function addOnExit(cb: () => any): void; +export function addOnPostRun(cb: () => any): void; + +// Tools +export function intArrayFromString(stringy: string, dontAddNull?: boolean, length?: number): number[]; +export function intArrayToString(array: number[]): string; +export function writeStringToMemory(str: string, buffer: number, dontAddNull: boolean): void; +export function writeArrayToMemory(array: number[], buffer: number): void; +export function writeAsciiToMemory(str: string, buffer: number, dontAddNull: boolean): void; + +export function addRunDependency(id: any): void; +export function removeRunDependency(id: any): void; + + +export let preloadedImages: any; +export let preloadedAudios: any; + +export function _malloc(size: number): number; +export function _free(ptr: number): void; + diff --git a/dist/lib/cxx-emscripten/guetzli.out.js b/dist/lib/cxx-emscripten/guetzli.out.js new file mode 100644 index 0000000..af3a314 --- /dev/null +++ b/dist/lib/cxx-emscripten/guetzli.out.js @@ -0,0 +1,18 @@ +var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};Module.TOTAL_MEMORY=64*1024*1024;var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+43088;__ATINIT__.push();allocate([80,131,0,0,54,135,0,0,24,0,0,0,0,0,0,0,40,131,0,0,111,135,0,0,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,63,7,235,246,207,151,98,223,63,133,6,28,41,102,155,218,63,23,183,171,57,59,199,209,63,49,200,96,60,184,248,184,63,49,200,96,60,184,248,184,191,23,183,171,57,59,199,209,191,133,6,28,41,102,155,218,191,7,235,246,207,151,98,223,191,152,190,62,207,107,144,221,63,250,65,184,166,226,125,200,63,250,65,184,166,226,125,200,191,152,190,62,207,107,144,221,191,152,190,62,207,107,144,221,191,250,65,184,166,226,125,200,191,250,65,184,166,226,125,200,63,152,190,62,207,107,144,221,63,133,6,28,41,102,155,218,63,49,200,96,60,184,248,184,191,7,235,246,207,151,98,223,191,23,183,171,57,59,199,209,191,23,183,171,57,59,199,209,63,7,235,246,207,151,98,223,63,49,200,96,60,184,248,184,63,133,6,28,41,102,155,218,191,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,191,30,21,129,102,158,160,214,191,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,63,30,21,129,102,158,160,214,191,30,21,129,102,158,160,214,191,30,21,129,102,158,160,214,63,23,183,171,57,59,199,209,63,7,235,246,207,151,98,223,191,49,200,96,60,184,248,184,63,133,6,28,41,102,155,218,63,133,6,28,41,102,155,218,191,49,200,96,60,184,248,184,191,7,235,246,207,151,98,223,63,23,183,171,57,59,199,209,191,250,65,184,166,226,125,200,63,152,190,62,207,107,144,221,191,152,190,62,207,107,144,221,63,250,65,184,166,226,125,200,191,250,65,184,166,226,125,200,191,152,190,62,207,107,144,221,63,152,190,62,207,107,144,221,191,250,65,184,166,226,125,200,63,49,200,96,60,184,248,184,63,23,183,171,57,59,199,209,191,133,6,28,41,102,155,218,63,7,235,246,207,151,98,223,191,7,235,246,207,151,98,223,63,133,6,28,41,102,155,218,191,23,183,171,57,59,199,209,63,49,200,96,60,184,248,184,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,41,92,143,194,245,40,204,63,154,153,153,153,153,153,201,63,97,250,94,67,112,124,6,64,75,200,7,61,155,213,5,64,146,207,43,158,122,132,5,64,76,221,149,93,48,24,5,64,241,129,29,255,5,98,4,64,21,140,74,234,4,52,4,64,159,57,235,83,142,201,3,64,21,228,103,35,215,237,2,64,9,250,11,61,98,180,2,64,171,234,229,119,154,140,2,64,199,160,19,66,7,157,1,64,164,24,32,209,4,42,1,64,63,197,113,224,213,178,0,64,40,127,247,142,26,19,0,64,96,233,124,120,150,32,255,63,96,203,43,215,219,102,254,63,4,172,85,187,38,228,252,63,158,124,122,108,203,0,252,63,173,105,222,113,138,78,250,63,31,75,31,186,160,254,248,63,198,251,113,251,229,147,247,63,216,41,86,13,194,28,246,63,138,115,212,209,113,181,244,63,209,206,105,22,104,247,242,63,37,232,47,244,136,17,241,63,47,136,72,77,187,24,239,63,231,56,183,9,247,74,235,63,177,106,16,230,118,47,231,63,46,87,63,54,201,143,227,63,5,250,68,158,36,93,220,63,150,203,70,231,252,20,203,63,183,155,224,155,166,207,202,63,215,107,122,80,80,138,202,63,247,59,20,5,250,68,202,63,23,12,174,185,163,255,201,63,147,172,195,209,85,186,201,63,179,124,93,134,255,116,201,63,211,76,247,58,169,47,201,63,243,28,145,239,82,234,200,63,20,237,42,164,252,164,200,63,143,141,64,188,174,95,200,63,143,141,64,188,174,95,200,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,118,213,221,125,33,21,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,222,209,99,121,238,132,216,63,24,185,151,116,71,164,229,63,174,236,38,88,215,182,12,64,29,163,95,148,69,156,50,64,29,163,95,148,69,156,50,64,50,202,26,51,58,186,8,64,0,0,0,0,0,0,240,63,21,70,94,164,87,227,223,63,94,184,90,79,202,42,215,63,88,116,172,38,93,198,211,63,192,27,226,46,118,205,192,63,63,53,167,78,89,253,2,64,174,236,38,88,215,182,12,64,0,0,0,0,0,0,240,63,63,53,167,78,89,253,2,64,36,232,26,17,245,183,239,63,32,32,59,175,31,212,240,63,106,183,70,78,140,18,228,63,154,153,153,153,153,153,217,63,192,27,226,46,118,205,192,63,24,185,151,116,71,164,229,63,21,70,94,164,87,227,223,63,36,232,26,17,245,183,239,63,0,0,0,0,0,0,224,63,222,209,99,121,238,132,216,63,129,16,53,71,67,97,214,63,106,183,70,78,140,18,228,63,88,116,172,38,93,198,211,63,222,209,99,121,238,132,216,63,94,184,90,79,202,42,215,63,32,32,59,175,31,212,240,63,222,209,99,121,238,132,216,63,184,30,133,235,81,184,190,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([80,131,0,0,178,151,0,0,8,103,0,0,0,0,0,0,40,131,0,0,191,151,0,0,40,131,0,0,204,151,0,0,80,131,0,0,217,151,0,0,16,103,0,0,0,0,0,0,80,131,0,0,250,151,0,0,24,103,0,0,0,0,0,0,80,131,0,0,64,152,0,0,24,103,0,0,0,0,0,0,80,131,0,0,28,152,0,0,56,103,0,0,0,0,0,0,80,131,0,0,98,152,0,0,40,103,0,0,0,0,0,0,0,0,0,0,8,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,77,255,255,255,78,255,255,255,79,255,255,255,81,255,255,255,82,255,255,255,84,255,255,255,85,255,255,255,86,255,255,255,88,255,255,255,89,255,255,255,91,255,255,255,92,255,255,255,93,255,255,255,95,255,255,255,96,255,255,255,98,255,255,255,99,255,255,255,100,255,255,255,102,255,255,255,103,255,255,255,105,255,255,255,106,255,255,255,107,255,255,255,109,255,255,255,110,255,255,255,112,255,255,255,113,255,255,255,114,255,255,255,116,255,255,255,117,255,255,255,119,255,255,255,120,255,255,255,121,255,255,255,123,255,255,255,124,255,255,255,126,255,255,255,127,255,255,255,128,255,255,255,130,255,255,255,131,255,255,255,133,255,255,255,134,255,255,255,135,255,255,255,137,255,255,255,138,255,255,255,140,255,255,255,141,255,255,255,142,255,255,255,144,255,255,255,145,255,255,255,147,255,255,255,148,255,255,255,149,255,255,255,151,255,255,255,152,255,255,255,154,255,255,255,155,255,255,255,156,255,255,255,158,255,255,255,159,255,255,255,161,255,255,255,162,255,255,255,163,255,255,255,165,255,255,255,166,255,255,255,168,255,255,255,169,255,255,255,170,255,255,255,172,255,255,255,173,255,255,255,175,255,255,255,176,255,255,255,177,255,255,255,179,255,255,255,180,255,255,255,182,255,255,255,183,255,255,255,184,255,255,255,186,255,255,255,187,255,255,255,189,255,255,255,190,255,255,255,192,255,255,255,193,255,255,255,194,255,255,255,196,255,255,255,197,255,255,255,199,255,255,255,200,255,255,255,201,255,255,255,203,255,255,255,204,255,255,255,206,255,255,255,207,255,255,255,208,255,255,255,210,255,255,255,211,255,255,255,213,255,255,255,214,255,255,255,215,255,255,255,217,255,255,255,218,255,255,255,220,255,255,255,221,255,255,255,222,255,255,255,224,255,255,255,225,255,255,255,227,255,255,255,228,255,255,255,229,255,255,255,231,255,255,255,232,255,255,255,234,255,255,255,235,255,255,255,236,255,255,255,238,255,255,255,239,255,255,255,241,255,255,255,242,255,255,255,243,255,255,255,245,255,255,255,246,255,255,255,248,255,255,255,249,255,255,255,250,255,255,255,252,255,255,255,253,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,17,0,0,0,18,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,24,0,0,0,25,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,31,0,0,0,32,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,38,0,0,0,39,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,45,0,0,0,46,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,52,0,0,0,53,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,59,0,0,0,60,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,66,0,0,0,67,0,0,0,69,0,0,0,70,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,76,0,0,0,77,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,83,0,0,0,84,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,90,0,0,0,91,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,97,0,0,0,98,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,104,0,0,0,105,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,111,0,0,0,112,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,118,0,0,0,119,0,0,0,121,0,0,0,122,0,0,0,123,0,0,0,125,0,0,0,126,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,132,0,0,0,133,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,139,0,0,0,140,0,0,0,142,0,0,0,143,0,0,0,144,0,0,0,146,0,0,0,147,0,0,0,149,0,0,0,150,0,0,0,151,0,0,0,153,0,0,0,154,0,0,0,156,0,0,0,157,0,0,0,158,0,0,0,160,0,0,0,161,0,0,0,163,0,0,0,164,0,0,0,165,0,0,0,167,0,0,0,168,0,0,0,170,0,0,0,171,0,0,0,172,0,0,0,174,0,0,0,175,0,0,0,177,0,0,0,178,0,0,0,0,105,91,0,46,178,90,0,92,251,89,0,138,68,89,0,184,141,88,0,230,214,87,0,20,32,87,0,66,105,86,0,112,178,85,0,158,251,84,0,204,68,84,0,250,141,83,0,40,215,82,0,86,32,82,0,132,105,81,0,178,178,80,0,224,251,79,0,14,69,79,0,60,142,78,0,106,215,77,0,152,32,77,0,198,105,76,0,244,178,75,0,34,252,74,0,80,69,74,0,126,142,73,0,172,215,72,0,218,32,72,0,8,106,71,0,54,179,70,0,100,252,69,0,146,69,69,0,192,142,68,0,238,215,67,0,28,33,67,0,74,106,66,0,120,179,65,0,166,252,64,0,212,69,64,0,2,143,63,0,48,216,62,0,94,33,62,0,140,106,61,0,186,179,60,0,232,252,59,0,22,70,59,0,68,143,58,0,114,216,57,0,160,33,57,0,206,106,56,0,252,179,55,0,42,253,54,0,88,70,54,0,134,143,53,0,180,216,52,0,226,33,52,0,16,107,51,0,62,180,50,0,108,253,49,0,154,70,49,0,200,143,48,0,246,216,47,0,36,34,47,0,82,107,46,0,128,180,45,0,174,253,44,0,220,70,44,0,10,144,43,0,56,217,42,0,102,34,42,0,148,107,41,0,194,180,40,0,240,253,39,0,30,71,39,0,76,144,38,0,122,217,37,0,168,34,37,0,214,107,36,0,4,181,35,0,50,254,34,0,96,71,34,0,142,144,33,0,188,217,32,0,234,34,32,0,24,108,31,0,70,181,30,0,116,254,29,0,162,71,29,0,208,144,28,0,254,217,27,0,44,35,27,0,90,108,26,0,136,181,25,0,182,254,24,0,228,71,24,0,18,145,23,0,64,218,22,0,110,35,22,0,156,108,21,0,202,181,20,0,248,254,19,0,38,72,19,0,84,145,18,0,130,218,17,0,176,35,17,0,222,108,16,0,12,182,15,0,58,255,14,0,104,72,14,0,150,145,13,0,196,218,12,0,242,35,12,0,32,109,11,0,78,182,10,0,124,255,9,0,170,72,9,0,216,145,8,0,6,219,7,0,52,36,7,0,98,109,6,0,144,182,5,0,190,255,4,0,236,72,4,0,26,146,3,0,72,219,2,0,118,36,2,0,164,109,1,0,210,182,0,0,0,0,0,0,46,73,255,255,92,146,254,255,138,219,253,255,184,36,253,255,230,109,252,255,20,183,251,255,66,0,251,255,112,73,250,255,158,146,249,255,204,219,248,255,250,36,248,255,40,110,247,255,86,183,246,255,132,0,246,255,178,73,245,255,224,146,244,255,14,220,243,255,60,37,243,255,106,110,242,255,152,183,241,255,198,0,241,255,244,73,240,255,34,147,239,255,80,220,238,255,126,37,238,255,172,110,237,255,218,183,236,255,8,1,236,255,54,74,235,255,100,147,234,255,146,220,233,255,192,37,233,255,238,110,232,255,28,184,231,255,74,1,231,255,120,74,230,255,166,147,229,255,212,220,228,255,2,38,228,255,48,111,227,255,94,184,226,255,140,1,226,255,186,74,225,255,232,147,224,255,22,221,223,255,68,38,223,255,114,111,222,255,160,184,221,255,206,1,221,255,252,74,220,255,42,148,219,255,88,221,218,255,134,38,218,255,180,111,217,255,226,184,216,255,16,2,216,255,62,75,215,255,108,148,214,255,154,221,213,255,200,38,213,255,246,111,212,255,36,185,211,255,82,2,211,255,128,75,210,255,174,148,209,255,220,221,208,255,10,39,208,255,56,112,207,255,102,185,206,255,148,2,206,255,194,75,205,255,240,148,204,255,30,222,203,255,76,39,203,255,122,112,202,255,168,185,201,255,214,2,201,255,4,76,200,255,50,149,199,255,96,222,198,255,142,39,198,255,188,112,197,255,234,185,196,255,24,3,196,255,70,76,195,255,116,149,194,255,162,222,193,255,208,39,193,255,254,112,192,255,44,186,191,255,90,3,191,255,136,76,190,255,182,149,189,255,228,222,188,255,18,40,188,255,64,113,187,255,110,186,186,255,156,3,186,255,202,76,185,255,248,149,184,255,38,223,183,255,84,40,183,255,130,113,182,255,176,186,181,255,222,3,181,255,12,77,180,255,58,150,179,255,104,223,178,255,150,40,178,255,196,113,177,255,242,186,176,255,32,4,176,255,78,77,175,255,124,150,174,255,170,223,173,255,216,40,173,255,6,114,172,255,52,187,171,255,98,4,171,255,144,77,170,255,190,150,169,255,236,223,168,255,26,41,168,255,72,114,167,255,118,187,166,255,164,4,166,255,210,77,165,255,0,141,44,0,230,52,44,0,204,220,43,0,178,132,43,0,152,44,43,0,126,212,42,0,100,124,42,0,74,36,42,0,48,204,41,0,22,116,41,0,252,27,41,0,226,195,40,0,200,107,40,0,174,19,40,0,148,187,39,0,122,99,39,0,96,11,39,0,70,179,38,0,44,91,38,0,18,3,38,0,248,170,37,0,222,82,37,0,196,250,36,0,170,162,36,0,144,74,36,0,118,242,35,0,92,154,35,0,66,66,35,0,40,234,34,0,14,146,34,0,244,57,34,0,218,225,33,0,192,137,33,0,166,49,33,0,140,217,32,0,114,129,32,0,88,41,32,0,62,209,31,0,36,121,31,0,10,33,31,0,240,200,30,0,214,112,30,0,188,24,30,0,162,192,29,0,136,104,29,0,110,16,29,0,84,184,28,0,58,96,28,0,32,8,28,0,6,176,27,0,236,87,27,0,210,255,26,0,184,167,26,0,158,79,26,0,132,247,25,0,106,159,25,0,80,71,25,0,54,239,24,0,28,151,24,0,2,63,24,0,232,230,23,0,206,142,23,0,180,54,23,0,154,222,22,0,128,134,22,0,102,46,22,0,76,214,21,0,50,126,21,0,24,38,21,0,254,205,20,0,228,117,20,0,202,29,20,0,176,197,19,0,150,109,19,0,124,21,19,0,98,189,18,0,72,101,18,0,46,13,18,0,20,181,17,0,250,92,17,0,224,4,17,0,198,172,16,0,172,84,16,0,146,252,15,0,120,164,15,0,94,76,15,0,68,244,14,0,42,156,14,0,16,68,14,0,246,235,13,0,220,147,13,0,194,59,13,0,168,227,12,0,142,139,12,0,116,51,12,0,90,219,11,0,64,131,11,0,38,43,11,0,12,211,10,0,242,122,10,0,216,34,10,0,190,202,9,0,164,114,9,0,138,26,9,0,112,194,8,0,86,106,8,0,60,18,8,0,34,186,7,0,8,98,7,0,238,9,7,0,212,177,6,0,186,89,6,0,160,1,6,0,134,169,5,0,108,81,5,0,82,249,4,0,56,161,4,0,30,73,4,0,4,241,3,0,234,152,3,0,208,64,3,0,182,232,2,0,156,144,2,0,130,56,2,0,104,224,1,0,78,136,1,0,52,48,1,0,26,216,0,0,0,128,0,0,230,39,0,0,204,207,255,255,178,119,255,255,152,31,255,255,126,199,254,255,100,111,254,255,74,23,254,255,48,191,253,255,22,103,253,255,252,14,253,255,226,182,252,255,200,94,252,255,174,6,252,255,148,174,251,255,122,86,251,255,96,254,250,255,70,166,250,255,44,78,250,255,18,246,249,255,248,157,249,255,222,69,249,255,196,237,248,255,170,149,248,255,144,61,248,255,118,229,247,255,92,141,247,255,66,53,247,255,40,221,246,255,14,133,246,255,244,44,246,255,218,212,245,255,192,124,245,255,166,36,245,255,140,204,244,255,114,116,244,255,88,28,244,255,62,196,243,255,36,108,243,255,10,20,243,255,240,187,242,255,214,99,242,255,188,11,242,255,162,179,241,255,136,91,241,255,110,3,241,255,84,171,240,255,58,83,240,255,32,251,239,255,6,163,239,255,236,74,239,255,210,242,238,255,184,154,238,255,158,66,238,255,132,234,237,255,106,146,237,255,80,58,237,255,54,226,236,255,28,138,236,255,2,50,236,255,232,217,235,255,206,129,235,255,180,41,235,255,154,209,234,255,128,121,234,255,102,33,234,255,76,201,233,255,50,113,233,255,24,25,233,255,254,192,232,255,228,104,232,255,202,16,232,255,176,184,231,255,150,96,231,255,124,8,231,255,98,176,230,255,72,88,230,255,46,0,230,255,20,168,229,255,250,79,229,255,224,247,228,255,198,159,228,255,172,71,228,255,146,239,227,255,120,151,227,255,94,63,227,255,68,231,226,255,42,143,226,255,16,55,226,255,246,222,225,255,220,134,225,255,194,46,225,255,168,214,224,255,142,126,224,255,116,38,224,255,90,206,223,255,64,118,223,255,38,30,223,255,12,198,222,255,242,109,222,255,216,21,222,255,190,189,221,255,164,101,221,255,138,13,221,255,112,181,220,255,86,93,220,255,60,5,220,255,34,173,219,255,8,85,219,255,238,252,218,255,212,164,218,255,186,76,218,255,160,244,217,255,134,156,217,255,108,68,217,255,82,236,216,255,56,148,216,255,30,60,216,255,4,228,215,255,234,139,215,255,208,51,215,255,182,219,214,255,156,131,214,255,130,43,214,255,104,211,213,255,78,123,213,255,52,35,213,255,26,203,212,255,29,255,255,255,31,255,255,255,33,255,255,255,34,255,255,255,36,255,255,255,38,255,255,255,40,255,255,255,42,255,255,255,43,255,255,255,45,255,255,255,47,255,255,255,49,255,255,255,50,255,255,255,52,255,255,255,54,255,255,255,56,255,255,255,58,255,255,255,59,255,255,255,61,255,255,255,63,255,255,255,65,255,255,255,66,255,255,255,68,255,255,255,70,255,255,255,72,255,255,255,73,255,255,255,75,255,255,255,77,255,255,255,79,255,255,255,81,255,255,255,82,255,255,255,84,255,255,255,86,255,255,255,88,255,255,255,89,255,255,255,91,255,255,255,93,255,255,255,95,255,255,255,97,255,255,255,98,255,255,255,100,255,255,255,102,255,255,255,104,255,255,255,105,255,255,255,107,255,255,255,109,255,255,255,111,255,255,255,112,255,255,255,114,255,255,255,116,255,255,255,118,255,255,255,120,255,255,255,121,255,255,255,123,255,255,255,125,255,255,255,127,255,255,255,128,255,255,255,130,255,255,255,132,255,255,255,134,255,255,255,136,255,255,255,137,255,255,255,139,255,255,255,141,255,255,255,143,255,255,255,144,255,255,255,146,255,255,255,148,255,255,255,150,255,255,255,151,255,255,255,153,255,255,255,155,255,255,255,157,255,255,255,159,255,255,255,160,255,255,255,162,255,255,255,164,255,255,255,166,255,255,255,167,255,255,255,169,255,255,255,171,255,255,255,173,255,255,255,174,255,255,255,176,255,255,255,178,255,255,255,180,255,255,255,182,255,255,255,183,255,255,255,185,255,255,255,187,255,255,255,189,255,255,255,190,255,255,255,192,255,255,255,194,255,255,255,196,255,255,255,198,255,255,255,199,255,255,255,201,255,255,255,203,255,255,255,205,255,255,255,206,255,255,255,208,255,255,255,210,255,255,255,212,255,255,255,213,255,255,255,215,255,255,255,217,255,255,255,219,255,255,255,221,255,255,255,222,255,255,255,224,255,255,255,226,255,255,255,228,255,255,255,229,255,255,255,231,255,255,255,233,255,255,255,235,255,255,255,237,255,255,255,238,255,255,255,240,255,255,255,242,255,255,255,244,255,255,255,245,255,255,255,247,255,255,255,249,255,255,255,251,255,255,255,252,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,11,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,18,0,0,0,19,0,0,0,21,0,0,0,23,0,0,0,25,0,0,0,27,0,0,0,28,0,0,0,30,0,0,0,32,0,0,0,34,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,41,0,0,0,43,0,0,0,44,0,0,0,46,0,0,0,48,0,0,0,50,0,0,0,51,0,0,0,53,0,0,0,55,0,0,0,57,0,0,0,58,0,0,0,60,0,0,0,62,0,0,0,64,0,0,0,66,0,0,0,67,0,0,0,69,0,0,0,71,0,0,0,73,0,0,0,74,0,0,0,76,0,0,0,78,0,0,0,80,0,0,0,82,0,0,0,83,0,0,0,85,0,0,0,87,0,0,0,89,0,0,0,90,0,0,0,92,0,0,0,94,0,0,0,96,0,0,0,97,0,0,0,99,0,0,0,101,0,0,0,103,0,0,0,105,0,0,0,106,0,0,0,108,0,0,0,110,0,0,0,112,0,0,0,113,0,0,0,115,0,0,0,117,0,0,0,119,0,0,0,120,0,0,0,122,0,0,0,124,0,0,0,126,0,0,0,128,0,0,0,129,0,0,0,131,0,0,0,133,0,0,0,135,0,0,0,136,0,0,0,138,0,0,0,140,0,0,0,142,0,0,0,144,0,0,0,145,0,0,0,147,0,0,0,149,0,0,0,151,0,0,0,152,0,0,0,154,0,0,0,156,0,0,0,158,0,0,0,159,0,0,0,161,0,0,0,163,0,0,0,165,0,0,0,167,0,0,0,168,0,0,0,170,0,0,0,172,0,0,0,174,0,0,0,175,0,0,0,177,0,0,0,179,0,0,0,181,0,0,0,183,0,0,0,184,0,0,0,186,0,0,0,188,0,0,0,190,0,0,0,191,0,0,0,193,0,0,0,195,0,0,0,197,0,0,0,198,0,0,0,200,0,0,0,202,0,0,0,204,0,0,0,206,0,0,0,207,0,0,0,209,0,0,0,211,0,0,0,213,0,0,0,214,0,0,0,216,0,0,0,218,0,0,0,220,0,0,0,222,0,0,0,223,0,0,0,225,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,14,0,0,0,15,0,0,0,27,0,0,0,28,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,13,0,0,0,16,0,0,0,26,0,0,0,29,0,0,0,42,0,0,0,3,0,0,0,8,0,0,0,12,0,0,0,17,0,0,0,25,0,0,0,30,0,0,0,41,0,0,0,43,0,0,0,9,0,0,0,11,0,0,0,18,0,0,0,24,0,0,0,31,0,0,0,40,0,0,0,44,0,0,0,53,0,0,0,10,0,0,0,19,0,0,0,23,0,0,0,32,0,0,0,39,0,0,0,45,0,0,0,52,0,0,0,54,0,0,0,20,0,0,0,22,0,0,0,33,0,0,0,38,0,0,0,46,0,0,0,51,0,0,0,55,0,0,0,60,0,0,0,21,0,0,0,34,0,0,0,37,0,0,0,47,0,0,0,50,0,0,0,56,0,0,0,59,0,0,0,61,0,0,0,35,0,0,0,36,0,0,0,48,0,0,0,49,0,0,0,57,0,0,0,58,0,0,0,62,0,0,0,63,0,0,0,0,0,0,0,222,229,218,63,166,240,152,62,105,81,111,62,36,123,100,62,175,10,84,62,207,102,69,62,224,17,37,62,107,183,3,64,250,70,100,62,170,73,80,62,248,252,64,62,156,25,61,62,165,18,46,62,31,246,34,62,90,71,5,62,219,108,220,62,135,219,81,62,94,157,83,62,52,216,68,62,227,84,59,62,157,133,45,62,162,97,33,62,101,52,2,62,36,100,112,62,50,175,67,62,160,82,69,62,152,110,50,62,195,127,42,62,209,144,17,62,219,53,1,62,182,100,213,61,55,139,103,62,107,210,61,62,159,60,60,62,118,164,42,62,108,61,35,62,132,100,1,62,2,156,222,61,180,197,186,61,46,113,84,62,39,162,47,62,252,52,46,62,223,250,16,62,251,61,1,62,100,58,212,61,16,185,180,61,125,250,153,61,133,38,73,62,111,213,37,62,240,23,35,62,9,252,1,62,238,124,223,61,231,209,179,61,81,145,153,61,119,208,129,61,148,50,41,62,64,24,8,62,110,196,3,62,216,155,216,61,14,145,185,61,141,234,153,61,170,80,131,61,63,14,89,61,0,0,0,0,198,196,22,62,205,175,230,61,94,55,155,61,54,80,74,61,76,235,229,60,160,204,245,59,237,223,119,186,65,213,24,62,159,151,197,61,200,4,161,61,222,60,85,61,205,211,239,60,88,103,103,59,230,33,54,187,83,138,132,187,1,166,236,61,124,111,162,61,91,123,127,61,82,229,37,61,145,28,122,60,230,6,191,186,155,185,114,187,88,212,117,187,220,27,162,61,151,41,92,61,171,108,41,61,245,128,158,60,186,169,31,58,84,107,167,187,195,54,152,187,168,111,124,187,135,10,95,61,92,213,8,61,235,37,124,60,149,81,13,58,38,93,105,187,128,134,175,187,75,159,140,187,212,223,96,187,87,255,17,61,200,211,13,60,167,145,216,58,175,145,139,187,108,61,166,187,172,110,150,187,8,174,114,187,59,96,75,187,121,195,71,60,25,184,114,186,19,235,88,187,221,162,163,187,45,82,143,187,190,89,119,187,201,75,76,187,223,50,39,187,68,21,168,185,20,155,139,187,170,126,136,187,205,106,137,187,248,122,111,187,126,19,80,187,68,186,39,187,104,208,14,187,0,0,0,0,16,234,18,62,223,163,254,61,116,10,194,61,129,184,166,61,215,166,140,61,16,229,112,61,66,92,25,61,153,211,21,62,90,185,215,61,176,112,194,61,209,156,160,61,204,30,141,61,37,248,112,61,72,37,75,61,49,194,165,60,75,148,253,61,130,26,195,61,235,61,176,61,188,78,148,61,98,173,128,61,220,18,89,61,103,249,16,61,3,170,5,60,63,196,198,61,74,180,164,61,233,185,149,61,202,72,130,61,30,195,99,61,163,86,29,61,204,23,106,60,150,225,137,58,105,240,173,61,190,164,145,61,43,68,129,61,81,127,98,61,161,59,23,61,183,203,2,60,12,203,59,58,123,177,3,187,56,237,147,61,81,148,117,61,245,160,96,61,92,187,30,61,242,188,47,60,146,73,186,57,33,111,32,187,235,176,91,187,218,29,130,61,92,157,82,61,150,108,38,61,47,42,78,60,137,81,198,58,119,218,183,186,75,153,109,187,26,72,93,187,78,87,65,61,167,203,162,60,237,218,57,60,145,134,46,59,250,206,179,186,218,25,104,187,76,171,95,187,87,26,62,187,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,8,0,0,0,16,0,0,0,9,0,0,0,2,0,0,0,3,0,0,0,10,0,0,0,17,0,0,0,24,0,0,0,32,0,0,0,25,0,0,0,18,0,0,0,11,0,0,0,4,0,0,0,5,0,0,0,12,0,0,0,19,0,0,0,26,0,0,0,33,0,0,0,40,0,0,0,48,0,0,0,41,0,0,0,34,0,0,0,27,0,0,0,20,0,0,0,13,0,0,0,6,0,0,0,7,0,0,0,14,0,0,0,21,0,0,0,28,0,0,0,35,0,0,0,42,0,0,0,49,0,0,0,56,0,0,0,57,0,0,0,50,0,0,0,43,0,0,0,36,0,0,0,29,0,0,0,22,0,0,0,15,0,0,0,23,0,0,0,30,0,0,0,37,0,0,0,44,0,0,0,51,0,0,0,58,0,0,0,59,0,0,0,52,0,0,0,45,0,0,0,38,0,0,0,31,0,0,0,39,0,0,0,46,0,0,0,53,0,0,0,60,0,0,0,61,0,0,0,54,0,0,0,47,0,0,0,55,0,0,0,62,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,248,102,0,0,3,0,0,0,4,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,40,103,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,88,103,0,0,5,0,0,0,9,0,0,0,7,0,0,0,8,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,189,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,132,0,0,152,132,0,0,152,132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,58,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,50,162,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,197,88,159,83,66,75,0,64,73,50,163,34,168,17,33,123,252,115,98,104,197,88,191,69,11,48,126,24,252,115,65,109,84,98,159,83,179,65,65,45,18,23,98,104,84,98,126,88,66,75,33,59,186,40,195,20,49,46,48,46,49,0,78,55,103,117,101,116,122,108,105,50,49,66,117,116,116,101,114,97,117,103,108,105,67,111,109,112,97,114,97,116,111,114,69,0,32,66,65,91,49,48,48,46,48,48,37,37,93,32,68,91,37,54,46,52,102,93,0,78,55,103,117,101,116,122,108,105,49,48,67,111,109,112,97,114,97,116,111,114,69,0,109,97,120,95,100,101,112,116,104,32,60,61,32,49,54,0,46,46,47,46,46,47,116,104,105,114,100,95,112,97,114,116,121,47,103,117,101,116,122,108,105,45,49,46,48,46,49,47,103,117,101,116,122,108,105,47,101,110,116,114,111,112,121,95,101,110,99,111,100,101,46,99,99,0,83,101,116,68,101,112,116,104,0,116,97,98,108,101,46,118,97,108,117,101,115,91,107,93,32,62,61,32,48,0,46,46,47,46,46,47,116,104,105,114,100,95,112,97,114,116,121,47,103,117,101,116,122,108,105,45,49,46,48,46,49,47,103,117,101,116,122,108,105,47,106,112,101,103,95,100,97,116,97,46,99,99,0,83,97,118,101,81,117,97,110,116,84,97,98,108,101,115,0,116,97,98,108,101,46,118,97,108,117,101,115,91,107,93,32,60,32,40,49,32,60,60,32,49,54,41,0,224,0,16,74,70,73,70,0,1,1,0,0,1,0,1,0,0,46,46,47,46,46,47,116,104,105,114,100,95,112,97,114,116,121,47,103,117,101,116,122,108,105,45,49,46,48,46,49,47,103,117,101,116,122,108,105,47,106,112,101,103,95,100,97,116,97,95,119,114,105,116,101,114,46,99,99,0,255,216,255,224,0,16,74,70,73,70,0,1,1,0,0,1,0,1,0,0,255,217,112,111,115,32,61,61,32,100,97,116,97,46,115,105,122,101,40,41,0,66,117,105,108,100,65,110,100,69,110,99,111,100,101,72,117,102,102,109,97,110,67,111,100,101,115,0,98,108,111,99,107,95,120,32,60,32,119,105,100,116,104,95,105,110,95,98,108,111,99,107,115,95,0,46,46,47,46,46,47,116,104,105,114,100,95,112,97,114,116,121,47,103,117,101,116,122,108,105,45,49,46,48,46,49,47,103,117,101,116,122,108,105,47,111,117,116,112,117,116,95,105,109,97,103,101,46,99,99,0,71,101,116,67,111,101,102,102,66,108,111,99,107,0,98,108,111,99,107,95,121,32,60,32,104,101,105,103,104,116,95,105,110,95,98,108,111,99,107,115,95,0,120,109,105,110,32,62,61,32,48,0,84,111,80,105,120,101,108,115,0,121,109,105,110,32,62,61,32,48,0,120,109,105,110,32,60,32,119,105,100,116,104,95,0,121,109,105,110,32,60,32,104,101,105,103,104,116,95,0,102,97,99,116,111,114,95,120,95,32,61,61,32,49,0,84,111,70,108,111,97,116,80,105,120,101,108,115,0,102,97,99,116,111,114,95,121,95,32,61,61,32,49,0,83,101,116,67,111,101,102,102,66,108,111,99,107,0,83,97,109,112,108,105,110,103,32,114,97,116,105,111,32,110,111,116,32,115,117,112,112,111,114,116,101,100,58,32,102,97,99,116,111,114,95,120,32,61,32,37,100,32,102,97,99,116,111,114,95,121,32,61,32,37,100,10,0,119,105,100,116,104,95,105,110,95,98,108,111,99,107,115,95,32,60,61,32,99,111,109,112,46,119,105,100,116,104,95,105,110,95,98,108,111,99,107,115,0,67,111,112,121,70,114,111,109,74,112,101,103,67,111,109,112,111,110,101,110,116,0,104,101,105,103,104,116,95,105,110,95,98,108,111,99,107,115,95,32,60,61,32,99,111,109,112,46,104,101,105,103,104,116,95,105,110,95,98,108,111,99,107,115,0,106,112,103,46,109,97,120,95,104,95,115,97,109,112,95,102,97,99,116,111,114,32,37,32,99,111,109,112,46,104,95,115,97,109,112,95,102,97,99,116,111,114,32,61,61,32,48,0,67,111,112,121,70,114,111,109,74,112,101,103,68,97,116,97,0,106,112,103,46,109,97,120,95,118,95,115,97,109,112,95,102,97,99,116,111,114,32,37,32,99,111,109,112,46,118,95,115,97,109,112,95,102,97,99,116,111,114,32,61,61,32,48,0,99,111,109,112,46,113,117,97,110,116,95,105,100,120,32,60,32,106,112,103,46,113,117,97,110,116,46,115,105,122,101,40,41,0,99,111,109,112,111,110,101,110,116,115,95,91,48,93,46,102,97,99,116,111,114,95,120,40,41,32,61,61,32,49,0,83,97,118,101,84,111,74,112,101,103,68,97,116,97,0,99,111,109,112,111,110,101,110,116,115,95,91,48,93,46,102,97,99,116,111,114,95,121,40,41,32,61,61,32,49,0,106,112,103,45,62,109,97,120,95,104,95,115,97,109,112,95,102,97,99,116,111,114,32,37,32,99,111,109,112,111,110,101,110,116,115,95,91,99,93,46,102,97,99,116,111,114,95,120,40,41,32,61,61,32,48,0,106,112,103,45,62,109,97,120,95,118,95,115,97,109,112,95,102,97,99,116,111,114,32,37,32,99,111,109,112,111,110,101,110,116,115,95,91,99,93,46,102,97,99,116,111,114,95,121,40,41,32,61,61,32,48,0,99,111,101,102,102,32,37,32,113,117,97,110,116,32,61,61,32,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+26352);allocate([255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,102,37,100,37,100,37,100,37,100,37,100,37,100,0,112,105,120,101,108,115,46,115,105,122,101,40,41,32,61,61,32,99,111,109,112,45,62,119,105,100,116,104,40,41,32,42,32,99,111,109,112,45,62,104,101,105,103,104,116,40,41,0,83,101,116,68,111,119,110,115,97,109,112,108,101,100,67,111,101,102,102,105,99,105,101,110,116,115,0,120,48,32,60,32,99,111,109,112,45,62,119,105,100,116,104,40,41,0,121,48,32,60,32,99,111,109,112,45,62,104,101,105,103,104,116,40,41,0,114,101,99,111,110,115,116,114,117,99,116,101,100,46,115,105,122,101,40,41,32,61,61,32,103,117,101,115,115,45,62,115,105,122,101,40,41,0,46,46,47,46,46,47,116,104,105,114,100,95,112,97,114,116,121,47,103,117,101,116,122,108,105,45,49,46,48,46,49,47,103,117,101,116,122,108,105,47,112,114,101,112,114,111,99,101,115,115,95,100,111,119,110,115,97,109,112,108,101,46,99,99,0,85,112,100,97,116,101,71,117,101,115,115,0,116,97,114,103,101,116,46,115,105,122,101,40,41,32,61,61,32,103,117,101,115,115,45,62,115,105,122,101,40,41,0,105,109,103,95,105,110,46,115,105,122,101,40,41,32,61,61,32,119,32,42,32,104,0,85,112,115,97,109,112,108,101,50,120,50,0,114,103,98,95,105,110,46,115,105,122,101,40,41,32,61,61,32,51,32,42,32,119,105,100,116,104,32,42,32,104,101,105,103,104,116,0,76,105,110,101,97,114,108,121,68,111,119,110,115,97,109,112,108,101,50,120,50,0,114,103,98,46,115,105,122,101,40,41,32,37,32,51,32,61,61,32,48,0,76,105,110,101,97,114,108,121,65,118,101,114,97,103,101,100,76,117,109,97,0,71,117,101,116,122,108,105,32,115,104,111,117,108,100,32,98,101,32,99,97,108,108,101,100,32,119,105,116,104,32,113,117,97,108,105,116,121,32,62,61,32,56,52,44,32,111,116,104,101,114,119,105,115,101,32,116,104,101,10,111,117,116,112,117,116,32,119,105,108,108,32,104,97,118,101,32,110,111,116,105,99,101,97,98,108,101,32,97,114,116,105,102,97,99,116,115,46,32,73,102,32,121,111,117,32,119,97,110,116,32,116,111,10,112,114,111,99,101,101,100,32,97,110,121,119,97,121,44,32,112,108,101,97,115,101,32,101,100,105,116,32,116,104,101,32,115,111,117,114,99,101,32,99,111,100,101,46,10,0,79,110,108,121,32,89,85,86,32,99,111,108,111,114,32,115,112,97,99,101,32,105,110,112,117,116,32,106,112,101,103,32,105,115,32,115,117,112,112,111,114,116,101,100,10,0,85,110,115,117,112,112,111,114,116,101,100,32,115,97,109,112,108,105,110,103,32,102,97,99,116,111,114,115,58,0,32,37,100,120,37,100,0,48,0,46,46,47,46,46,47,116,104,105,114,100,95,112,97,114,116,121,47,103,117,101,116,122,108,105,45,49,46,48,46,49,47,103,117,101,116,122,108,105,47,112,114,111,99,101,115,115,111,114,46,99,99,0,79,117,116,112,117,116,74,112,101,103,0,79,114,105,103,105,110,97,108,32,79,117,116,91,37,55,122,100,93,0,32,60,105,109,97,103,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,66,117,116,116,101,114,97,117,103,108,105,62,10,0,89,85,86,52,50,48,0,89,85,86,52,52,52,0,10,37,115,32,115,101,108,101,99,116,101,100,32,113,117,97,110,116,105,122,97,116,105,111,110,32,109,97,116,114,105,120,58,10,0,32,37,50,100,0,32,32,32,0,10,0,67,111,117,108,100,32,110,111,116,32,99,114,101,97,116,101,32,106,112,103,32,100,97,116,97,32,102,114,111,109,32,114,103,98,32,112,105,120,101,108,115,10,0,105,109,103,45,62,99,111,109,112,111,110,101,110,116,40,99,41,46,102,97,99,116,111,114,95,120,40,41,32,61,61,32,102,97,99,116,111,114,95,120,0,83,101,108,101,99,116,70,114,101,113,117,101,110,99,121,77,97,115,107,105,110,103,0,105,109,103,45,62,99,111,109,112,111,110,101,110,116,40,99,41,46,102,97,99,116,111,114,95,121,40,41,32,61,61,32,102,97,99,116,111,114,95,121,0,10,10,20,40,60,70,80,90,10,20,30,60,70,80,90,90,20,30,60,70,80,90,90,90,40,60,70,80,90,90,90,90,60,70,80,90,90,90,90,90,70,80,90,90,90,90,90,90,80,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,110,117,109,98,101,114,32,111,102,32,105,116,101,114,97,116,105,111,110,115,32,117,112,0,110,117,109,98,101,114,32,111,102,32,105,116,101,114,97,116,105,111,110,115,32,100,111,119,110,0,117,112,0,100,111,119,110,0,110,117,109,98,101,114,32,111,102,32,105,116,101,114,97,116,105,111,110,115,0,73,116,101,114,32,37,50,100,58,32,37,115,40,37,100,41,32,37,115,32,67,111,101,102,102,115,91,37,100,47,37,122,100,93,32,66,108,111,99,107,115,91,37,122,100,47,37,100,47,37,100,93,32,86,97,108,84,104,114,101,115,91,37,46,52,102,93,32,79,117,116,91,37,55,122,100,93,32,69,115,116,69,114,114,91,37,46,50,102,37,37,93,0,73,116,101,114,32,37,50,100,58,32,37,115,32,113,117,97,110,116,105,122,97,116,105,111,110,32,109,97,116,114,105,120,58,10,0,73,116,101,114,32,37,50,100,58,32,37,115,32,71,81,91,37,53,46,50,102,93,32,79,117,116,91,37,55,122,100,93,0,32,83,99,111,114,101,91,37,46,52,102,93,0,32,40,42,41,0,109,105,115,97,108,105,103,110,109,101,110,116,32,37,32,107,80,111,105,110,116,101,114,83,105,122,101,32,61,61,32,48,0,46,46,47,46,46,47,116,104,105,114,100,95,112,97,114,116,121,47,103,117,101,116,122,108,105,45,49,46,48,46,49,47,116,104,105,114,100,95,112,97,114,116,121,47,98,117,116,116,101,114,97,117,103,108,105,47,98,117,116,116,101,114,97,117,103,108,105,47,98,117,116,116,101,114,97,117,103,108,105,46,99,99,0,65,108,108,111,99,97,116,101,0,114,101,105,110,116,101,114,112,114,101,116,95,99,97,115,116,60,117,105,110,116,112,116,114,95,116,62,40,97,108,105,103,110,101,100,41,32,37,32,107,67,97,99,104,101,76,105,110,101,83,105,122,101,32,61,61,32,48,0,70,114,101,101,0,97,108,108,111,99,97,116,101,100,32,60,61,32,97,108,105,103,110,101,100,32,45,32,107,80,111,105,110,116,101,114,83,105,122,101,0,97,108,108,111,99,97,116,101,100,32,62,61,32,97,108,105,103,110,101,100,32,45,32,107,67,97,99,104,101,76,105,110,101,83,105,122,101,0,105,120,32,60,32,49,48,48,48,48,0,73,110,116,101,114,112,111,108,97,116,101,0,115,116,101,112,32,60,61,32,52,0,66,117,116,116,101,114,97,117,103,108,105,67,111,109,112,97,114,97,116,111,114,0,56,32,60,61,32,120,115,105,122,101,95,0,68,105,102,102,109,97,112,79,112,115,105,110,68,121,110,97,109,105,99,115,73,109,97,103,101,0,120,121,98,48,91,105,93,46,115,105,122,101,40,41,32,61,61,32,110,117,109,95,112,105,120,101,108,115,95,0,120,121,98,49,91,105,93,46,115,105,122,101,40,41,32,61,61,32,110,117,109,95,112,105,120,101,108,115,95,0,102,114,111,109,46,115,105,122,101,40,41,32,61,61,32,120,115,105,122,101,32,42,32,121,115,105,122,101,0,46,46,47,46,46,47,116,104,105,114,100,95,112,97,114,116,121,47,103,117,101,116,122,108,105,45,49,46,48,46,49,47,116,104,105,114,100,95,112,97,114,116,121,47,98,117,116,116,101,114,97,117,103,108,105,92,98,117,116,116,101,114,97,117,103,108,105,47,98,117,116,116,101,114,97,117,103,108,105,46,104,0,67,111,112,121,70,114,111,109,80,97,99,107,101,100,0,82,111,119,32,37,122,117,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,40,121,115,105,122,101,61,37,122,117,41,10,0,108,117,116,91,105,93,32,62,61,32,48,46,48,0,77,97,107,101,77,97,115,107,0,111,102,102,115,101,116,32,60,32,115,113,117,97,114,101,95,115,105,122,101,0,77,105,110,83,113,117,97,114,101,86,97,108,0,33,112,108,97,110,101,115,46,101,109,112,116,121,40,41,0,80,97,99,107,101,100,70,114,111,109,80,108,97,110,101,115,0,67,111,110,115,116,32,114,111,119,32,37,122,117,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,40,121,115,105,122,101,61,37,122,117,41,10,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,67,58,92,80,114,111,103,114,97,109,32,70,105,108,101,115,92,69,109,115,99,114,105,112,116,101,110,92,101,109,115,99,114,105,112,116,101,110,92,49,46,51,53,46,48,92,115,121,115,116,101,109,92,105,110,99,108,117,100,101,92,108,105,98,99,120,120,92,118,101,99,116,111,114,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,67,58,92,80,114,111,103,114,97,109,32,70,105,108,101,115,92,69,109,115,99,114,105,112,116,101,110,92,101,109,115,99,114,105,112,116,101,110,92,49,46,51,53,46,48,92,115,121,115,116,101,109,92,105,110,99,108,117,100,101,92,108,105,98,99,120,120,92,115,116,114,105,110,103,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+36592);allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+42546);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}Module["_i64Subtract"]=_i64Subtract;var _fabsf=Math_abs;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;var _BDtoILow=true;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}var _sqrtf=Math_sqrt;function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}var _fabs=Math_abs;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}var _sqrt=Math_sqrt;function ___lock(){}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Add"]=_i64Add;Module["_bitshift64Lshr"]=_bitshift64Lshr;var _llvm_ctlz_i32=true;var _BDtoIHigh=true;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function ___cxa_guard_acquire(variable){if(!HEAP8[variable>>0]){HEAP8[variable>>0]=1;return 1}return 0}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function ___cxa_guard_release(){}function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var _llvm_pow_f64=Math_pow;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_memmove"]=_memmove;var _BItoD=true;var _exp=Math_exp;function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>3];q=a+8|0;I=+h[q>>3];x=I-s;h[q>>3]=s+I;d=a+96|0;I=+h[d>>3];m=a+32|0;s=+h[m>>3];A=s-I;s=I+s;z=a+104|0;I=+h[z>>3];t=x-A;A=x+A;w=a+40|0;x=+h[w>>3];K=x-I;x=I+x;I=+h[g>>3];v=+h[a>>3];B=v-I;v=I+v;I=B-K;B=K+B;k=a+80|0;K=+h[k>>3];f=a+16|0;p=+h[f>>3];C=p-K;p=K+p;j=a+112|0;E=a+120|0;K=+h[E>>3];l=a+48|0;u=a+56|0;r=+h[u>>3];D=r-K;r=K+r;K=C-D;D=C+D;J=a+88|0;C=+h[J>>3];n=a+24|0;o=+h[n>>3];H=o-C;o=C+o;C=+h[j>>3];y=+h[l>>3];G=y-C;y=C+y;C=H-G;G=H+G;H=(K-G)*.7071067811865476;h[k>>3]=I-H;G=(K+G)*.7071067811865476;h[J>>3]=A-G;h[g>>3]=I+H;h[F>>3]=G+A;A=(C-D)*.7071067811865476;h[E>>3]=t-A;C=(D+C)*.7071067811865476;h[j>>3]=B-C;h[d>>3]=C+B;h[z>>3]=A+t;t=v-s;v=s+v;s=p-y;p=y+p;h[a>>3]=v+p;h[a+16>>3]=v-p;p=+h[q>>3];v=p-x;p=x+p;h[w>>3]=s+v;h[u>>3]=v-s;s=o-r;h[a+48>>3]=t+s;h[a+32>>3]=t-s;o=r+o;h[q>>3]=p+o;h[n>>3]=p-o;c[e>>2]=c[m>>2];c[e+4>>2]=c[m+4>>2];c[e+8>>2]=c[m+8>>2];c[e+12>>2]=c[m+12>>2];c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];i=b;return}function je(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0,A=0.0,B=0.0,C=0.0,D=0,E=0.0,F=0.0,G=0.0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0;g=i;i=i+1104|0;d=g+1088|0;f=g+64|0;b=g;e=0;do{r=e<<3;z=r|6;B=+h[a+(z<<3)>>3];v=r|2;u=+h[a+(v<<3)>>3];s=u-B;u=B+u;p=f+(v<<4)|0;j=f+(z<<4)|0;m=r|4;l=f+(m<<4)|0;B=+h[a+(m<<3)>>3];x=+h[a+(r<<3)>>3];G=x-B;x=B+x;H=r|5;B=+h[a+(H<<3)>>3];q=r|1;y=+h[a+(q<<3)>>3];A=y-B;y=B+y;k=f+(q<<4)|0;D=r|7;B=+h[a+(D<<3)>>3];t=r|3;w=+h[a+(t<<3)>>3];E=w-B;w=B+w;o=f+(t<<4)|0;B=(A-E)*.7071067811865476;C=G-B;n=f+(H<<4)|0;h[n>>3]=C;F=(A+E)*.7071067811865476;h[f+(H<<4)+8>>3]=s-F;B=G+B;h[l>>3]=B;h[f+(m<<4)+8>>3]=s+F;A=(-E-A)*.7071067811865476;m=f+(D<<4)|0;h[f+(D<<4)+8>>3]=-s-A;h[m>>3]=C;h[j>>3]=B;h[f+(z<<4)+8>>3]=A-s;s=x-u;x=u+x;u=y-w;w=y+w;h[f+(r<<4)>>3]=x+w;h[k>>3]=x-w;h[f+(v<<4)+8>>3]=u;h[f+(t<<4)+8>>3]=-u;h[o>>3]=s;h[p>>3]=s;h[f+(r<<4)+8>>3]=0.0;h[f+(q<<4)+8>>3]=0.0;c[d>>2]=c[p>>2];c[d+4>>2]=c[p+4>>2];c[d+8>>2]=c[p+8>>2];c[d+12>>2]=c[p+12>>2];c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];e=e+1|0}while((e|0)!=8);z=f+128|0;K=f+16|0;c[d>>2]=c[z>>2];c[d+4>>2]=c[z+4>>2];c[d+8>>2]=c[z+8>>2];c[d+12>>2]=c[z+12>>2];c[z>>2]=c[K>>2];c[z+4>>2]=c[K+4>>2];c[z+8>>2]=c[K+8>>2];c[z+12>>2]=c[K+12>>2];c[K>>2]=c[d>>2];c[K+4>>2]=c[d+4>>2];c[K+8>>2]=c[d+8>>2];c[K+12>>2]=c[d+12>>2];D=f+256|0;P=f+32|0;c[d>>2]=c[D>>2];c[d+4>>2]=c[D+4>>2];c[d+8>>2]=c[D+8>>2];c[d+12>>2]=c[D+12>>2];c[D>>2]=c[P>>2];c[D+4>>2]=c[P+4>>2];c[D+8>>2]=c[P+8>>2];c[D+12>>2]=c[P+12>>2];c[P>>2]=c[d>>2];c[P+4>>2]=c[d+4>>2];c[P+8>>2]=c[d+8>>2];c[P+12>>2]=c[d+12>>2];O=f+272|0;H=f+160|0;c[d>>2]=c[O>>2];c[d+4>>2]=c[O+4>>2];c[d+8>>2]=c[O+8>>2];c[d+12>>2]=c[O+12>>2];c[O>>2]=c[H>>2];c[O+4>>2]=c[H+4>>2];c[O+8>>2]=c[H+8>>2];c[O+12>>2]=c[H+12>>2];c[H>>2]=c[d>>2];c[H+4>>2]=c[d+4>>2];c[H+8>>2]=c[d+8>>2];c[H+12>>2]=c[d+12>>2];H=f+384|0;O=f+48|0;c[d>>2]=c[H>>2];c[d+4>>2]=c[H+4>>2];c[d+8>>2]=c[H+8>>2];c[d+12>>2]=c[H+12>>2];c[H>>2]=c[O>>2];c[H+4>>2]=c[O+4>>2];c[H+8>>2]=c[O+8>>2];c[H+12>>2]=c[O+12>>2];c[O>>2]=c[d>>2];c[O+4>>2]=c[d+4>>2];c[O+8>>2]=c[d+8>>2];c[O+12>>2]=c[d+12>>2];t=f+400|0;L=f+176|0;c[d>>2]=c[t>>2];c[d+4>>2]=c[t+4>>2];c[d+8>>2]=c[t+8>>2];c[d+12>>2]=c[t+12>>2];c[t>>2]=c[L>>2];c[t+4>>2]=c[L+4>>2];c[t+8>>2]=c[L+8>>2];c[t+12>>2]=c[L+12>>2];c[L>>2]=c[d>>2];c[L+4>>2]=c[d+4>>2];c[L+8>>2]=c[d+8>>2];c[L+12>>2]=c[d+12>>2];L=f+416|0;t=f+304|0;c[d>>2]=c[L>>2];c[d+4>>2]=c[L+4>>2];c[d+8>>2]=c[L+8>>2];c[d+12>>2]=c[L+12>>2];c[L>>2]=c[t>>2];c[L+4>>2]=c[t+4>>2];c[L+8>>2]=c[t+8>>2];c[L+12>>2]=c[t+12>>2];c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];c[t+8>>2]=c[d+8>>2];c[t+12>>2]=c[d+12>>2];t=f+512|0;L=f+64|0;c[d>>2]=c[t>>2];c[d+4>>2]=c[t+4>>2];c[d+8>>2]=c[t+8>>2];c[d+12>>2]=c[t+12>>2];c[t>>2]=c[L>>2];c[t+4>>2]=c[L+4>>2];c[t+8>>2]=c[L+8>>2];c[t+12>>2]=c[L+12>>2];c[L>>2]=c[d>>2];c[L+4>>2]=c[d+4>>2];c[L+8>>2]=c[d+8>>2];c[L+12>>2]=c[d+12>>2];t=f+528|0;n=f+192|0;c[d>>2]=c[t>>2];c[d+4>>2]=c[t+4>>2];c[d+8>>2]=c[t+8>>2];c[d+12>>2]=c[t+12>>2];c[t>>2]=c[n>>2];c[t+4>>2]=c[n+4>>2];c[t+8>>2]=c[n+8>>2];c[t+12>>2]=c[n+12>>2];c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];c[n+12>>2]=c[d+12>>2];n=f+544|0;o=f+320|0;c[d>>2]=c[n>>2];c[d+4>>2]=c[n+4>>2];c[d+8>>2]=c[n+8>>2];c[d+12>>2]=c[n+12>>2];c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];o=f+560|0;p=f+448|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];p=f+640|0;N=f+80|0;c[d>>2]=c[p>>2];c[d+4>>2]=c[p+4>>2];c[d+8>>2]=c[p+8>>2];c[d+12>>2]=c[p+12>>2];c[p>>2]=c[N>>2];c[p+4>>2]=c[N+4>>2];c[p+8>>2]=c[N+8>>2];c[p+12>>2]=c[N+12>>2];c[N>>2]=c[d>>2];c[N+4>>2]=c[d+4>>2];c[N+8>>2]=c[d+8>>2];c[N+12>>2]=c[d+12>>2];p=f+656|0;v=f+208|0;c[d>>2]=c[p>>2];c[d+4>>2]=c[p+4>>2];c[d+8>>2]=c[p+8>>2];c[d+12>>2]=c[p+12>>2];c[p>>2]=c[v>>2];c[p+4>>2]=c[v+4>>2];c[p+8>>2]=c[v+8>>2];c[p+12>>2]=c[v+12>>2];c[v>>2]=c[d>>2];c[v+4>>2]=c[d+4>>2];c[v+8>>2]=c[d+8>>2];c[v+12>>2]=c[d+12>>2];v=f+672|0;p=f+336|0;c[d>>2]=c[v>>2];c[d+4>>2]=c[v+4>>2];c[d+8>>2]=c[v+8>>2];c[d+12>>2]=c[v+12>>2];c[v>>2]=c[p>>2];c[v+4>>2]=c[p+4>>2];c[v+8>>2]=c[p+8>>2];c[v+12>>2]=c[p+12>>2];c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];p=f+688|0;v=f+464|0;c[d>>2]=c[p>>2];c[d+4>>2]=c[p+4>>2];c[d+8>>2]=c[p+8>>2];c[d+12>>2]=c[p+12>>2];c[p>>2]=c[v>>2];c[p+4>>2]=c[v+4>>2];c[p+8>>2]=c[v+8>>2];c[p+12>>2]=c[v+12>>2];c[v>>2]=c[d>>2];c[v+4>>2]=c[d+4>>2];c[v+8>>2]=c[d+8>>2];c[v+12>>2]=c[d+12>>2];v=f+704|0;p=f+592|0;c[d>>2]=c[v>>2];c[d+4>>2]=c[v+4>>2];c[d+8>>2]=c[v+8>>2];c[d+12>>2]=c[v+12>>2];c[v>>2]=c[p>>2];c[v+4>>2]=c[p+4>>2];c[v+8>>2]=c[p+8>>2];c[v+12>>2]=c[p+12>>2];c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];v=f+768|0;J=f+96|0;c[d>>2]=c[v>>2];c[d+4>>2]=c[v+4>>2];c[d+8>>2]=c[v+8>>2];c[d+12>>2]=c[v+12>>2];c[v>>2]=c[J>>2];c[v+4>>2]=c[J+4>>2];c[v+8>>2]=c[J+8>>2];c[v+12>>2]=c[J+12>>2];c[J>>2]=c[d>>2];c[J+4>>2]=c[d+4>>2];c[J+8>>2]=c[d+8>>2];c[J+12>>2]=c[d+12>>2];v=f+784|0;M=f+224|0;c[d>>2]=c[v>>2];c[d+4>>2]=c[v+4>>2];c[d+8>>2]=c[v+8>>2];c[d+12>>2]=c[v+12>>2];c[v>>2]=c[M>>2];c[v+4>>2]=c[M+4>>2];c[v+8>>2]=c[M+8>>2];c[v+12>>2]=c[M+12>>2];c[M>>2]=c[d>>2];c[M+4>>2]=c[d+4>>2];c[M+8>>2]=c[d+8>>2];c[M+12>>2]=c[d+12>>2];M=f+800|0;v=f+352|0;c[d>>2]=c[M>>2];c[d+4>>2]=c[M+4>>2];c[d+8>>2]=c[M+8>>2];c[d+12>>2]=c[M+12>>2];c[M>>2]=c[v>>2];c[M+4>>2]=c[v+4>>2];c[M+8>>2]=c[v+8>>2];c[M+12>>2]=c[v+12>>2];c[v>>2]=c[d>>2];c[v+4>>2]=c[d+4>>2];c[v+8>>2]=c[d+8>>2];c[v+12>>2]=c[d+12>>2];v=f+816|0;M=f+480|0;c[d>>2]=c[v>>2];c[d+4>>2]=c[v+4>>2];c[d+8>>2]=c[v+8>>2];c[d+12>>2]=c[v+12>>2];c[v>>2]=c[M>>2];c[v+4>>2]=c[M+4>>2];c[v+8>>2]=c[M+8>>2];c[v+12>>2]=c[M+12>>2];c[M>>2]=c[d>>2];c[M+4>>2]=c[d+4>>2];c[M+8>>2]=c[d+8>>2];c[M+12>>2]=c[d+12>>2];M=f+832|0;v=f+608|0;c[d>>2]=c[M>>2];c[d+4>>2]=c[M+4>>2];c[d+8>>2]=c[M+8>>2];c[d+12>>2]=c[M+12>>2];c[M>>2]=c[v>>2];c[M+4>>2]=c[v+4>>2];c[M+8>>2]=c[v+8>>2];c[M+12>>2]=c[v+12>>2];c[v>>2]=c[d>>2];c[v+4>>2]=c[d+4>>2];c[v+8>>2]=c[d+8>>2];c[v+12>>2]=c[d+12>>2];M=f+848|0;q=f+736|0;c[d>>2]=c[M>>2];c[d+4>>2]=c[M+4>>2];c[d+8>>2]=c[M+8>>2];c[d+12>>2]=c[M+12>>2];c[M>>2]=c[q>>2];c[M+4>>2]=c[q+4>>2];c[M+8>>2]=c[q+8>>2];c[M+12>>2]=c[q+12>>2];c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];q=f+896|0;M=f+112|0;c[d>>2]=c[q>>2];c[d+4>>2]=c[q+4>>2];c[d+8>>2]=c[q+8>>2];c[d+12>>2]=c[q+12>>2];c[q>>2]=c[M>>2];c[q+4>>2]=c[M+4>>2];c[q+8>>2]=c[M+8>>2];c[q+12>>2]=c[M+12>>2];c[M>>2]=c[d>>2];c[M+4>>2]=c[d+4>>2];c[M+8>>2]=c[d+8>>2];c[M+12>>2]=c[d+12>>2];q=f+912|0;m=f+240|0;c[d>>2]=c[q>>2];c[d+4>>2]=c[q+4>>2];c[d+8>>2]=c[q+8>>2];c[d+12>>2]=c[q+12>>2];c[q>>2]=c[m>>2];c[q+4>>2]=c[m+4>>2];c[q+8>>2]=c[m+8>>2];c[q+12>>2]=c[m+12>>2];c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];m=f+928|0;q=f+368|0;c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];c[m>>2]=c[q>>2];c[m+4>>2]=c[q+4>>2];c[m+8>>2]=c[q+8>>2];c[m+12>>2]=c[q+12>>2];c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];q=f+944|0;m=f+496|0;c[d>>2]=c[q>>2];c[d+4>>2]=c[q+4>>2];c[d+8>>2]=c[q+8>>2];c[d+12>>2]=c[q+12>>2];c[q>>2]=c[m>>2];c[q+4>>2]=c[m+4>>2];c[q+8>>2]=c[m+8>>2];c[q+12>>2]=c[m+12>>2];c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];m=f+960|0;q=f+624|0;c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];c[m>>2]=c[q>>2];c[m+4>>2]=c[q+4>>2];c[m+8>>2]=c[q+8>>2];c[m+12>>2]=c[q+12>>2];c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];m=f+976|0;j=f+752|0;c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];c[m+12>>2]=c[j+12>>2];c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];j=f+992|0;m=f+880|0;c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[d+8>>2]=c[j+8>>2];c[d+12>>2]=c[j+12>>2];c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];s=+h[f>>3];m=f+512|0;h[b>>3]=+h[m>>3];B=+h[f+16>>3];j=b+8|0;h[j>>3]=+h[f+528>>3];G=+h[f+32>>3];r=b+16|0;h[r>>3]=+h[f+544>>3];C=+h[f+48>>3];l=b+24|0;h[l>>3]=+h[f+560>>3];A=+h[f+64>>3];I=b+32|0;h[I>>3]=+h[f+576>>3];x=+h[f+80>>3];e=b+40|0;h[e>>3]=+h[f+592>>3];Q=+h[f+96>>3];y=+h[f+608>>3];h[b+48>>3]=y;E=+h[f+112>>3];k=b+56|0;h[k>>3]=+h[f+624>>3];F=G-Q;G=Q+G;Q=s-A;s=A+s;A=B-x;B=x+B;x=C-E;C=E+C;E=(A-x)*.7071067811865476;w=Q-E;h[N>>3]=w;u=(A+x)*.7071067811865476;h[f+88>>3]=F-u;E=Q+E;h[L>>3]=E;h[f+72>>3]=F+u;A=(-x-A)*.7071067811865476;h[f+120>>3]=-F-A;h[M>>3]=w;h[J>>3]=E;h[f+104>>3]=A-F;F=s-G;s=G+s;G=B-C;C=B+C;h[f>>3]=s+C;h[K>>3]=s-C;h[f+40>>3]=G;h[f+56>>3]=-G;h[O>>3]=F;h[P>>3]=F;h[f+8>>3]=0.0;h[f+24>>3]=0.0;c[d>>2]=c[P>>2];c[d+4>>2]=c[P+4>>2];c[d+8>>2]=c[P+8>>2];c[d+12>>2]=c[P+12>>2];c[P>>2]=c[O>>2];c[P+4>>2]=c[O+4>>2];c[P+8>>2]=c[O+8>>2];c[P+12>>2]=c[O+12>>2];c[O>>2]=c[N>>2];c[O+4>>2]=c[N+4>>2];c[O+8>>2]=c[N+8>>2];c[O+12>>2]=c[N+12>>2];c[N>>2]=c[M>>2];c[N+4>>2]=c[M+4>>2];c[N+8>>2]=c[M+8>>2];c[N+12>>2]=c[M+12>>2];c[M>>2]=c[L>>2];c[M+4>>2]=c[L+4>>2];c[M+8>>2]=c[L+8>>2];c[M+12>>2]=c[L+12>>2];c[L>>2]=c[K>>2];c[L+4>>2]=c[K+4>>2];c[L+8>>2]=c[K+8>>2];c[L+12>>2]=c[K+12>>2];c[K>>2]=c[J>>2];c[K+4>>2]=c[J+4>>2];c[K+8>>2]=c[J+8>>2];c[K+12>>2]=c[J+12>>2];c[J>>2]=c[d>>2];c[J+4>>2]=c[d+4>>2];c[J+8>>2]=c[d+8>>2];c[J+12>>2]=c[d+12>>2];F=+h[r>>3];G=F-y;F=y+F;r=f+576|0;y=+h[I>>3];C=+h[b>>3];s=C-y;C=y+C;y=+h[e>>3];B=+h[j>>3];A=B-y;B=y+B;y=+h[k>>3];E=+h[l>>3];w=E-y;E=y+E;y=(A-w)*.7071067811865476;x=s-y;h[p>>3]=x;u=(A+w)*.7071067811865476;h[f+600>>3]=G-u;y=s+y;h[r>>3]=y;h[f+584>>3]=G+u;A=(-w-A)*.7071067811865476;h[f+632>>3]=-G-A;h[q>>3]=x;h[v>>3]=y;h[f+616>>3]=A-G;G=C-F;C=F+C;F=B-E;E=B+E;h[m>>3]=C+E;h[t>>3]=C-E;h[f+552>>3]=F;h[f+568>>3]=-F;h[o>>3]=G;h[n>>3]=G;h[f+520>>3]=0.0;h[f+536>>3]=0.0;c[d>>2]=c[n>>2];c[d+4>>2]=c[n+4>>2];c[d+8>>2]=c[n+8>>2];c[d+12>>2]=c[n+12>>2];c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];c[r+8>>2]=c[t+8>>2];c[r+12>>2]=c[t+12>>2];c[t>>2]=c[v>>2];c[t+4>>2]=c[v+4>>2];c[t+8>>2]=c[v+8>>2];c[t+12>>2]=c[v+12>>2];c[v>>2]=c[d>>2];c[v+4>>2]=c[d+4>>2];c[v+8>>2]=c[d+8>>2];c[v+12>>2]=c[d+12>>2];ie(z);ie(D);ie(H);b=4;do{G=+h[f+(b<<4)>>3];Q=+h[f+(b<<4)+8>>3];h[a+(b<<3)>>3]=(G*G+Q*Q)*.000064;b=b+1|0}while((b|0)!=37);i=g;return}function ke(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0.0,u=0;u=i;i=i+128|0;s=u+96|0;r=u;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=0;j=r;l=j+96|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(l|0));o=0;do{k=+h[b+(o<<3)>>3]-+h[d+(o<<3)>>3];n=o>>>6;l=s+(n<<3)|0;h[l>>3]=+h[l>>3]+k*.015625;l=o&7;j=o>>>3&7;j=(j|0)==0?1:(j|0)==7?3:-1;l=(l|0)==0?0:(l|0)==7?2:-1;if((j|0)>-1){j=r+(n<<5)+(j<<3)|0;h[j>>3]=k*.125+ +h[j>>3]}if((l|0)>-1){n=r+(n<<5)+(l<<3)|0;h[n>>3]=k*.125+ +h[n>>3]}o=o+1|0}while((o|0)!=192);he(+h[s>>3],+h[s+8>>3],+h[s+16>>3],0.0,0.0,0.0,5.28270670524,e);he(+h[r>>3],+h[r+32>>3],+h[r+64>>3],0.0,0.0,0.0,5.28270670524,g);he(+h[r+8>>3],+h[r+40>>3],+h[r+72>>3],0.0,0.0,0.0,5.28270670524,g);he(+h[r+16>>3],+h[r+48>>3],+h[r+80>>3],0.0,0.0,0.0,5.28270670524,g);he(+h[r+24>>3],+h[r+56>>3],+h[r+88>>3],0.0,0.0,0.0,5.28270670524,g);j=0;do{e=b+(j<<3)|0;q=+h[e>>3];g=d+(j<<3)|0;t=+h[g>>3];h[e>>3]=(q+t)*.5;h[g>>3]=(q-t)*.5;j=j+1|0}while((j|0)!=192);je(b+512|0);je(d);je(d+512|0);je(d+1024|0);l=f+16|0;n=f+8|0;o=4;while(1){t=+h[1440+(o<<3)>>3];h[f>>3]=+h[f>>3]+t*64.8*+h[d+(o<<3)>>3];h[l>>3]=+h[l>>3]+t*2.4*+h[d+(o+128<<3)>>3];e=o+64|0;g=b+(e<<3)|0;h[g>>3]=+O(+(+h[g>>3]));e=d+(e<<3)|0;q=+O(+(+h[e>>3]));h[e>>3]=q;m=+h[g>>3];k=m-q;m=q+m;do if(!(k>=-.04&k<.04))if(k<0.0){k=k+.04;break}else{k=k+-.04;break}else k=0.0;while(0);do if(!(m>=-.04&m<.04))if(m<0.0){q=m+.04;break}else{q=m+-.04;break}else q=0.0;while(0);if(k!=q){if((a[1088]|0)==0?(xa(1088)|0)!=0:0){h[137]=0.0;h[138]=1.4103373714040413;h[139]=2.1187462581064413;h[140]=2.8271551448088412;h[141]=3.535564031511241;h[142]=4.243972918213641;h[143]=4.952381804916041;h[144]=5.660790691618441;h[145]=6.369199578320841;h[146]=7.077608465023241;h[147]=7.786017351725641;h[148]=8.49442623842804;h[149]=9.202835125130441;h[150]=9.911244011832842;h[151]=10.619652898535243;h[152]=11.328061785237644;h[153]=12.036470671940044;h[154]=12.744879558642445;h[155]=13.453288445344846;h[156]=14.161697332047247;h[157]=14.870106218749648;Ca(1088)}m=k*1.51983458269;k=+N(+m);if(!(k<1.0e4)){j=23;break}j=~~k;if((j|0)<20){p=+h[1096+(j<<3)>>3];k=p+(k-+(j|0))*(+h[1096+(j+1<<3)>>3]-p)}else k=+h[157];p=m<0.0?-k:k;if((a[1088]|0)==0?(xa(1088)|0)!=0:0){h[137]=0.0;h[138]=1.4103373714040413;h[139]=2.1187462581064413;h[140]=2.8271551448088412;h[141]=3.535564031511241;h[142]=4.243972918213641;h[143]=4.952381804916041;h[144]=5.660790691618441;h[145]=6.369199578320841;h[146]=7.077608465023241;h[147]=7.786017351725641;h[148]=8.49442623842804;h[149]=9.202835125130441;h[150]=9.911244011832842;h[151]=10.619652898535243;h[152]=11.328061785237644;h[153]=12.036470671940044;h[154]=12.744879558642445;h[155]=13.453288445344846;h[156]=14.161697332047247;h[157]=14.870106218749648;Ca(1088)}m=q*1.51983458269;k=+N(+m);if(!(k<1.0e4)){j=31;break}j=~~k;if((j|0)<20){q=+h[1096+(j<<3)>>3];k=q+(k-+(j|0))*(+h[1096+(j+1<<3)>>3]-q)}else k=+h[157];q=(p-(m<0.0?-k:k))*1.753123908348329;h[n>>3]=+h[n>>3]+q*(t*q)}o=o+1|0;if(o>>>0>=37){j=37;break}}if((j|0)==23)za(38389,38159,303,38400);else if((j|0)==31)za(38389,38159,303,38400);else if((j|0)==37){i=u;return}}function le(a,b,d,e,f,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;r=i;i=i+32|0;q=r;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;o=d*6|0;p=0;l=0;do{m=(c[33508+(p<<3)>>2]|0)+a|0;n=(c[33508+(p<<3)+4>>2]|0)+b|0;if(m>>>0>2&(m+3|0)>>>0>>0){u=m+-3+(_(n,d)|0)|0;s=u+6|0;x=c[f>>2]|0;z=c[x>>2]|0;y=c[x+12>>2]|0;x=c[x+24>>2]|0;t=c[j>>2]|0;w=c[t>>2]|0;v=c[t+12>>2]|0;t=c[t+24>>2]|0;he((+g[z+(u<<2)>>2]-+g[z+(s<<2)>>2])*.711100840192,(+g[y+(u<<2)>>2]-+g[y+(s<<2)>>2])*.711100840192,(+g[x+(u<<2)>>2]-+g[x+(s<<2)>>2])*.711100840192,(+g[w+(u<<2)>>2]-+g[w+(s<<2)>>2])*.711100840192,(+g[v+(u<<2)>>2]-+g[v+(s<<2)>>2])*.711100840192,(+g[t+(u<<2)>>2]-+g[t+(s<<2)>>2])*.711100840192,1.0,q);l=l+1|0}if(n>>>0>2&(n+3|0)>>>0>>0){x=(_(n+-3|0,d)|0)+m|0;z=x+o|0;u=c[f>>2]|0;s=c[u>>2]|0;t=c[u+12>>2]|0;u=c[u+24>>2]|0;y=c[j>>2]|0;v=c[y>>2]|0;w=c[y+12>>2]|0;y=c[y+24>>2]|0;he((+g[s+(x<<2)>>2]-+g[s+(z<<2)>>2])*.711100840192,(+g[t+(x<<2)>>2]-+g[t+(z<<2)>>2])*.711100840192,(+g[u+(x<<2)>>2]-+g[u+(z<<2)>>2])*.711100840192,(+g[v+(x<<2)>>2]-+g[v+(z<<2)>>2])*.711100840192,(+g[w+(x<<2)>>2]-+g[w+(z<<2)>>2])*.711100840192,(+g[y+(x<<2)>>2]-+g[y+(z<<2)>>2])*.711100840192,1.0,q);l=l+1|0}p=p+1|0}while((p|0)!=4);A=.12936901568/+(l|0);h[k>>3]=+h[k>>3]+A*+h[q>>3];z=k+8|0;h[z>>3]=+h[z>>3]+A*+h[q+8>>3];z=k+16|0;h[z>>3]=+h[z>>3]+A*+h[q+16>>3];i=r;return}function me(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=_(d,b)|0;c[a+12>>2]=e;c[a+16>>2]=((b+-1+e|0)>>>0)/(e>>>0)|0;c[a+20>>2]=((d+-1+e|0)>>>0)/(e>>>0)|0;if((e|0)<5)return;else za(38412,38159,840,38422)}function ne(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0.0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0,Z=0.0,$=0.0,aa=0.0;if(!b)return;T=(a|0)==0;S=c[d>>2]|0;N=c[e>>2]|0;O=S+12|0;P=N+12|0;Q=S+24|0;R=N+24|0;M=c[f>>2]|0;L=c[h>>2]|0;H=M+12|0;I=L+12|0;J=M+24|0;K=L+24|0;d=0;do if(T)d=d+1|0;else{z=_(d,a)|0;A=c[S>>2]|0;B=c[N>>2]|0;C=c[O>>2]|0;D=c[P>>2]|0;E=c[Q>>2]|0;F=c[R>>2]|0;G=(d|0)==0;d=d+1|0;f=(d|0)==(b|0);h=c[S>>2]|0;j=c[M>>2]|0;k=c[L>>2]|0;l=c[H>>2]|0;m=c[I>>2]|0;n=c[J>>2]|0;o=c[K>>2]|0;y=0;do{p=y+z|0;q=B+(p<<2)|0;r=(+g[A+(p<<2)>>2]+ +g[q>>2])*.5;s=C+(p<<2)|0;t=D+(p<<2)|0;u=(+g[s>>2]+ +g[t>>2])*.5;v=E+(p<<2)|0;w=F+(p<<2)|0;x=(+g[v>>2]+ +g[w>>2])*.5;Y=y;y=y+1|0;e=(y|0)==(a|0);if((Y|0)!=0?(Y=p+-1|0,U=(+g[C+(Y<<2)>>2]+ +g[D+(Y<<2)>>2])*.5-u,U=U*U,U>-1.0):0)i=U;else i=-1.0;if(!e?(Y=p+1|0,V=(+g[C+(Y<<2)>>2]+ +g[D+(Y<<2)>>2])*.5-u,V=V*V,i>2]+ +g[D+(Y<<2)>>2])*.5-u,W=W*W,i>2]+ +g[D+(Y<<2)>>2])*.5-u,X=X*X,i>2]=$*+g[h+(p<<2)>>2]+r;g[k+(p<<2)>>2]=$*+g[q>>2]+r;u=(1.0-Z)*u;g[l+(p<<2)>>2]=Z*+g[s>>2]+u;g[m+(p<<2)>>2]=Z*+g[t>>2]+u;x=(1.0-i)*x;g[n+(p<<2)>>2]=i*+g[v>>2]+x;g[o+(p<<2)>>2]=i*+g[w>>2]+x}while((y|0)!=(a|0))}while((d|0)!=(b|0));return}function oe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0,C=0;x=i;i=i+16|0;w=x;cc(w,d);ge(a,b,c[c[w>>2]>>2]|0,1.1,0.0);ge(a,b,c[(c[w>>2]|0)+12>>2]|0,1.1,0.0);ge(a,b,c[(c[w>>2]|0)+24>>2]|0,1.1,0.0);a=c[d>>2]|0;b=c[a+4>>2]|0;u=c[a>>2]|0;d=c[w>>2]|0;if((b|0)!=(u|0)){v=c[a+12>>2]|0;t=c[a+24>>2]|0;f=b-u>>2;a=c[d>>2]|0;b=c[d+12>>2]|0;e=c[d+24>>2]|0;h=0;do{p=+g[a+(h<<2)>>2];j=+g[b+(h<<2)>>2];s=+g[e+(h<<2)>>2];q=p*.348036746003+j*.577814843137+s*.0544556093735+.774145581713;r=p*.26922717275+j*.767247733938+s*.0366922708552+.920130265014;s=p*.0882062883536+j*.158581714673+s*.712857943858+10.6524069248;j=(q+-.77)/273.81*2.0+-1.0;p=j*0.0;p=p+p;k=p+6.683258861509244;l=j*k;l=l+l+85.84086033631436;m=j*l;k=m+m-k+373.5661002232874;m=j*k;l=m+m-l+908.6622127396595;m=j*l;p=p+.035662329617191;n=j*p;n=n+n+.899112889751053;o=j*n;p=o+o-p+4.711532733641639;o=j*p;n=o+o-n+12.161463238367844;o=j*n;n=j*(o+o-p+20.557285797683576)-n+12.262350348616792;if(n==0.0)p=0.0;else p=(j*(m+m-k+1496.0584520158125)-l+881.9794765564783)/n;j=(r+-.77)/273.81*2.0+-1.0;o=j*0.0;o=o+o;k=o+6.683258861509244;l=j*k;l=l+l+85.84086033631436;m=j*l;k=m+m-k+373.5661002232874;m=j*k;l=m+m-l+908.6622127396595;m=j*l;o=o+.035662329617191;n=j*o;n=n+n+.899112889751053;y=j*n;o=y+y-o+4.711532733641639;y=j*o;n=y+y-n+12.161463238367844;y=j*n;n=j*(y+y-o+20.557285797683576)-n+12.262350348616792;if(n==0.0)o=0.0;else o=(j*(m+m-k+1496.0584520158125)-l+881.9794765564783)/n;j=(s+-.77)/273.81*2.0+-1.0;y=j*0.0;y=y+y;k=y+6.683258861509244;l=j*k;l=l+l+85.84086033631436;m=j*l;k=m+m-k+373.5661002232874;m=j*k;l=m+m-l+908.6622127396595;m=j*l;y=y+.035662329617191;n=j*y;n=n+n+.899112889751053;z=j*n;y=z+z-y+4.711532733641639;z=j*y;n=z+z-n+12.161463238367844;z=j*n;n=j*(z+z-y+20.557285797683576)-n+12.262350348616792;if(n==0.0)j=0.0;else j=(j*(m+m-k+1496.0584520158125)-l+881.9794765564783)/n;C=u+(h<<2)|0;n=+g[C>>2];B=v+(h<<2)|0;y=+g[B>>2];A=t+(h<<2)|0;z=+g[A>>2];q=p/q*(n*.348036746003+y*.577814843137+z*.0544556093735+.774145581713);r=o/r*(n*.26922717275+y*.767247733938+z*.0366922708552+.920130265014);g[C>>2]=q*1.01611726948-r*.982482243696;g[B>>2]=q*1.43571362627+r*.896039849412;g[A>>2]=j/s*(n*.0882062883536+y*.158581714673+z*.712857943858+10.6524069248);h=h+1|0}while(h>>>0>>0)}if(!d){i=x;return}h=w+4|0;a=c[h>>2]|0;if((a|0)!=(d|0)){do{b=a+-12|0;c[h>>2]=b;e=c[b>>2]|0;f=e;if(!e)a=b;else{a=a+-8|0;b=c[a>>2]|0;if((b|0)!=(e|0))c[a>>2]=b+(~((b+-4-f|0)>>>2)<<2);Oe(e);a=c[h>>2]|0}}while((a|0)!=(d|0));d=c[w>>2]|0}Oe(d);i=x;return}function pe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+32|0;B=D+12|0;A=D;w=8-d|0;y=(w|0)/2|0;f=_(b,a)|0;c[B>>2]=0;C=B+4|0;c[C>>2]=0;c[B+8>>2]=0;do if(f)if(f>>>0>1073741823)Ke(B);else{t=f<<2;u=Me(t)|0;c[B>>2]=u;v=u+(f<<2)|0;c[B+8>>2]=v;pg(u|0,0,t|0)|0;c[C>>2]=v;break}else{u=0;v=0}while(0);l=((a+-1+d|0)>>>0)/(d>>>0)|0;if(w>>>0>>0){m=w>>>0>>0;o=(d|0)==0;t=0;while(1){if(m){p=_(t,l)|0;q=c[e>>2]|0;r=t+y|0;s=0;while(1){n=+g[q+((((s+p|0)>>>0)/(d>>>0)|0)<<2)>>2];if(n<.0001)n=n*100.0;else n=+O(+n);if(!o){f=s+y|0;k=0;do{h=f+(_(r+k|0,a)|0)|0;j=0;do{g[u+(h+j<<2)>>2]=n;j=j+1|0}while((j|0)!=(d|0));k=k+1|0}while((k|0)!=(d|0))}if((s+8|0)>>>0>>0)s=s+d|0;else break}}if((t+8|0)>>>0>>0)t=t+d|0;else break}}if((B|0)!=(e|0))Kd(e,u,v);o=a-w|0;p=b-w|0;f=_(o,p)|0;c[A>>2]=0;q=A+4|0;c[q>>2]=0;c[A+8>>2]=0;do if(f)if(f>>>0>1073741823)Ke(A);else{v=f<<2;x=Me(v)|0;c[A>>2]=x;d=x+(f<<2)|0;c[A+8>>2]=d;pg(x|0,0,v|0)|0;c[q>>2]=d;break}else x=0;while(0);f=(w|0)==(b|0);if(!(f|(w|0)==(a|0))){h=c[e>>2]|0;m=0;do{j=(_(m+y|0,a)|0)+y|0;k=_(m,o)|0;l=0;do{c[x+(l+k<<2)>>2]=c[h+(j+l<<2)>>2];l=l+1|0}while(l>>>0>>0);m=m+1|0}while(m>>>0

>>0)}ge(o,p,x,8.8510880283,.03027655136);if(!f?(z=c[A>>2]|0,(w|0)!=(a|0)):0){f=c[e>>2]|0;l=0;do{h=_(l,o)|0;j=(_(l+y|0,a)|0)+y|0;k=0;do{x=f+(j+k<<2)|0;g[x>>2]=+g[z+(k+h<<2)>>2]*24.8235314874+ +g[x>>2];k=k+1|0}while(k>>>0>>0);l=l+1|0}while(l>>>0

>>0);f=e}else f=e;h=c[e+4>>2]|0;j=c[f>>2]|0;if((h|0)!=(j|0)){f=h-j>>2;h=0;do{e=j+(h<<2)|0;g[e>>2]=+g[e>>2]*.03872437046373487;h=h+1|0}while(h>>>0>>0)}f=c[A>>2]|0;h=f;if(f){j=c[q>>2]|0;if((j|0)!=(f|0))c[q>>2]=j+(~((j+-4-h|0)>>>2)<<2);Oe(f)}f=c[B>>2]|0;if(!f){i=D;return}h=c[C>>2]|0;if((h|0)!=(f|0))c[C>>2]=h+(~((h+-4-f|0)>>>2)<<2);Oe(f);i=D;return}function qe(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+128|0;x=J;I=J+116|0;H=J+104|0;G=J+92|0;F=J+80|0;E=J+68|0;D=J+56|0;B=J+44|0;z=J+32|0;y=J+20|0;w=J+8|0;g=c[b>>2]|0;r=b+4|0;k=c[r>>2]|0;h=(g<<2)+95|0;l=h&-64;l=(h&1984|0)==0?l+64|0:l;h=bg((_(l,k)|0)+64|0)|0;do if(h){j=h;if(!(j&3)){m=64-(j&63)|0;C=h+(m+-4)|0;a[C>>0]=h;a[C+1>>0]=h>>8;a[C+2>>0]=h>>16;a[C+3>>0]=h>>24;m=h+m|0;break}else za(38126,38159,59,38242)}else m=0;while(0);c[f>>2]=g;u=f+4|0;c[u>>2]=k;t=f+8|0;c[t>>2]=l;h=f+12|0;j=c[h>>2]|0;c[h>>2]=m;h=f+16|0;if(j){gb[c[h>>2]&15](j);g=c[b>>2]|0}c[h>>2]=10;if(g>>>0<8){i=J;return}if((c[r>>2]|0)>>>0<8){i=J;return}He(I,d);He(H,e);cc(G,I);cc(F,H);ne(c[b>>2]|0,c[r>>2]|0,G,F,I,H);if((c[b>>2]|0)>>>0<=7)za(38444,38159,1043,38456);g=c[I>>2]|0;h=c[b+8>>2]|0;j=c[H>>2]|0;if(((c[g+4>>2]|0)-(c[g>>2]|0)>>2|0)!=(h|0))za(38482,38159,1045,38456);if(((c[j+4>>2]|0)-(c[j>>2]|0)>>2|0)!=(h|0))za(38512,38159,1046,38456);if(((c[g+16>>2]|0)-(c[g+12>>2]|0)>>2|0)!=(h|0))za(38482,38159,1045,38456);if(((c[j+16>>2]|0)-(c[j+12>>2]|0)>>2|0)!=(h|0))za(38512,38159,1046,38456);if(((c[g+28>>2]|0)-(c[g+24>>2]|0)>>2|0)!=(h|0))za(38482,38159,1045,38456);if(((c[j+28>>2]|0)-(c[j+24>>2]|0)>>2|0)!=(h|0))za(38512,38159,1046,38456);c[E>>2]=0;C=E+4|0;c[C>>2]=0;c[E+8>>2]=0;g=Me(36)|0;c[E>>2]=g;A=g+36|0;c[E+8>>2]=A;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;c[g+32>>2]=0;c[C>>2]=A;c[D>>2]=0;A=D+4|0;c[A>>2]=0;c[D+8>>2]=0;g=Me(36)|0;c[D>>2]=g;k=g+36|0;c[D+8>>2]=k;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;c[g+32>>2]=0;c[A>>2]=k;k=b+16|0;g=c[k>>2]|0;l=b+20|0;h=c[l>>2]|0;j=_(g*3|0,h)|0;c[B>>2]=0;v=B+4|0;c[v>>2]=0;c[B+8>>2]=0;do if(j)if(j>>>0>1073741823)Ke(B);else{o=j<<2;s=Me(o)|0;c[B>>2]=s;n=s+(j<<2)|0;c[B+8>>2]=n;pg(s|0,0,o|0)|0;c[v>>2]=n;n=c[k>>2]|0;o=c[l>>2]|0;break}else{n=g;o=h}while(0);g=_(n*3|0,o)|0;c[z>>2]=0;s=z+4|0;c[s>>2]=0;c[z+8>>2]=0;do if(g)if(g>>>0>1073741823)Ke(z);else{q=g<<2;o=Me(q)|0;c[z>>2]=o;p=o+(g<<2)|0;c[z+8>>2]=p;pg(o|0,0,q|0)|0;c[s>>2]=p;p=c[k>>2]|0;q=c[l>>2]|0;break}else{p=n;q=o}while(0);g=_(p*3|0,q)|0;c[y>>2]=0;e=y+4|0;c[e>>2]=0;c[y+8>>2]=0;do if(g)if(g>>>0>1073741823)Ke(y);else{p=g<<2;o=Me(p)|0;c[y>>2]=o;q=o+(g<<2)|0;c[y+8>>2]=q;pg(o|0,0,p|0)|0;c[e>>2]=q;break}while(0);c[w>>2]=0;d=w+4|0;c[d>>2]=0;c[w+8>>2]=0;re(b,I,H,B,z);se(b,I,H,y);te(b,I,H,z);ue(I,H,c[b>>2]|0,c[r>>2]|0,E,D);ve(b,E,D,B,z,y,w);pe(c[b>>2]|0,c[r>>2]|0,c[b+12>>2]|0,w);l=c[f>>2]|0;m=c[u>>2]|0;g=c[w>>2]|0;if(((c[d>>2]|0)-g>>2|0)!=(_(m,l)|0))za(38542,38571,361,38653);if(m){j=f+12|0;k=l<<2;tg(c[j>>2]|0,g|0,k|0)|0;a:do if(m>>>0>1){h=1;while(1){g=c[u>>2]|0;if(g>>>0<=h>>>0)break;f=(c[w>>2]|0)+((_(h,l)|0)<<2)|0;tg((c[j>>2]|0)+(_(c[t>>2]|0,h)|0)|0,f|0,k|0)|0;h=h+1|0;if(h>>>0>=m>>>0)break a}c[x>>2]=h;c[x+4>>2]=g;Hf(38668,x)|0;wa()}while(0);g=c[w>>2]|0}h=g;if(g){j=c[d>>2]|0;if((j|0)!=(g|0))c[d>>2]=j+(~((j+-4-h|0)>>>2)<<2);Oe(g)}g=c[y>>2]|0;h=g;if(g){j=c[e>>2]|0;if((j|0)!=(g|0))c[e>>2]=j+(~((j+-4-h|0)>>>2)<<2);Oe(g)}g=c[z>>2]|0;h=g;if(g){j=c[s>>2]|0;if((j|0)!=(g|0))c[s>>2]=j+(~((j+-4-h|0)>>>2)<<2);Oe(g)}g=c[B>>2]|0;h=g;if(g){j=c[v>>2]|0;if((j|0)!=(g|0))c[v>>2]=j+(~((j+-4-h|0)>>>2)<<2);Oe(g)}g=c[D>>2]|0;if(g){h=c[A>>2]|0;if((h|0)!=(g|0)){do{j=h+-12|0;c[A>>2]=j;k=c[j>>2]|0;l=k;if(!k)h=j;else{h=h+-8|0;j=c[h>>2]|0;if((j|0)!=(k|0))c[h>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oe(k);h=c[A>>2]|0}}while((h|0)!=(g|0));g=c[D>>2]|0}Oe(g)}g=c[E>>2]|0;if(g){h=c[C>>2]|0;if((h|0)!=(g|0)){do{j=h+-12|0;c[C>>2]=j;k=c[j>>2]|0;l=k;if(!k)h=j;else{h=h+-8|0;j=c[h>>2]|0;if((j|0)!=(k|0))c[h>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oe(k);h=c[C>>2]|0}}while((h|0)!=(g|0));g=c[E>>2]|0}Oe(g)}g=c[F>>2]|0;if(g){m=F+4|0;h=c[m>>2]|0;if((h|0)!=(g|0)){do{j=h+-12|0;c[m>>2]=j;k=c[j>>2]|0;l=k;if(!k)h=j;else{h=h+-8|0;j=c[h>>2]|0;if((j|0)!=(k|0))c[h>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oe(k);h=c[m>>2]|0}}while((h|0)!=(g|0));g=c[F>>2]|0}Oe(g)}g=c[G>>2]|0;if(g){m=G+4|0;h=c[m>>2]|0;if((h|0)!=(g|0)){do{j=h+-12|0;c[m>>2]=j;k=c[j>>2]|0;l=k;if(!k)h=j;else{h=h+-8|0;j=c[h>>2]|0;if((j|0)!=(k|0))c[h>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oe(k);h=c[m>>2]|0}}while((h|0)!=(g|0));g=c[G>>2]|0}Oe(g)}g=c[H>>2]|0;if(g){m=H+4|0;h=c[m>>2]|0;if((h|0)!=(g|0)){do{j=h+-12|0;c[m>>2]=j;k=c[j>>2]|0;l=k;if(!k)h=j;else{h=h+-8|0;j=c[h>>2]|0;if((j|0)!=(k|0))c[h>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oe(k);h=c[m>>2]|0}}while((h|0)!=(g|0));g=c[H>>2]|0}Oe(g)}g=c[I>>2]|0;if(!g){i=J;return}m=I+4|0;h=c[m>>2]|0;if((h|0)!=(g|0)){do{j=h+-12|0;c[m>>2]=j;k=c[j>>2]|0;l=k;if(!k)h=j;else{h=h+-8|0;j=c[h>>2]|0;if((j|0)!=(k|0))c[h>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oe(k);h=c[m>>2]|0}}while((h|0)!=(g|0));g=c[I>>2]|0}Oe(g);i=J;return}function re(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;P=i;i=i+3152|0;K=P+1608|0;L=P+72|0;N=P+48|0;M=P+24|0;O=P;D=a+12|0;j=c[D>>2]|0;F=a+4|0;k=c[F>>2]|0;if((7-j|0)>>>0>=k>>>0){i=P;return}G=a+16|0;H=N+8|0;I=M+8|0;J=N+16|0;E=M+16|0;l=c[a>>2]|0;C=0;do{if((7-j|0)>>>0>>0){B=0;while(1){A=(_(c[G>>2]|0,C)|0)+B|0;m=k+-8|0;m=_(m>>>0>>0?m:C,l)|0;k=l+-8|0;k=m+(k>>>0>>0?k:B)|0;m=c[b>>2]|0;n=c[d>>2]|0;o=k+1|0;p=k+2|0;q=k+3|0;r=k+4|0;s=k+5|0;t=k+6|0;u=k+7|0;y=0;do{v=y<<6;w=c[m+(y*12|0)>>2]|0;x=c[n+(y*12|0)>>2]|0;z=0;do{R=_(l,z)|0;Q=(z<<3)+v|0;S=k+R|0;h[K+(Q<<3)>>3]=+g[w+(S<<2)>>2];h[L+(Q<<3)>>3]=+g[x+(S<<2)>>2];S=o+R|0;T=Q|1;h[K+(T<<3)>>3]=+g[w+(S<<2)>>2];h[L+(T<<3)>>3]=+g[x+(S<<2)>>2];T=p+R|0;S=Q|2;h[K+(S<<3)>>3]=+g[w+(T<<2)>>2];h[L+(S<<3)>>3]=+g[x+(T<<2)>>2];S=q+R|0;T=Q|3;h[K+(T<<3)>>3]=+g[w+(S<<2)>>2];h[L+(T<<3)>>3]=+g[x+(S<<2)>>2];T=r+R|0;S=Q|4;h[K+(S<<3)>>3]=+g[w+(T<<2)>>2];h[L+(S<<3)>>3]=+g[x+(T<<2)>>2];S=s+R|0;T=Q|5;h[K+(T<<3)>>3]=+g[w+(S<<2)>>2];h[L+(T<<3)>>3]=+g[x+(S<<2)>>2];T=t+R|0;S=Q|6;h[K+(S<<3)>>3]=+g[w+(T<<2)>>2];h[L+(S<<3)>>3]=+g[x+(T<<2)>>2];R=u+R|0;Q=Q|7;h[K+(Q<<3)>>3]=+g[w+(R<<2)>>2];h[L+(Q<<3)>>3]=+g[x+(R<<2)>>2];z=z+1|0}while((z|0)!=8);y=y+1|0}while((y|0)!=3);c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;c[N+12>>2]=0;c[N+16>>2]=0;c[N+20>>2]=0;c[M>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;c[M+12>>2]=0;c[M+16>>2]=0;c[M+20>>2]=0;c[O>>2]=0;c[O+4>>2]=0;c[O+8>>2]=0;c[O+12>>2]=0;c[O+16>>2]=0;c[O+20>>2]=0;ke(K,L,N,M,O);m=((A>>>0)/(j>>>0)|0)*3|0;T=c[e>>2]|0;l=c[f>>2]|0;g[T+(m<<2)>>2]=+h[N>>3];g[l+(m<<2)>>2]=+h[M>>3];S=m+1|0;g[T+(S<<2)>>2]=+h[H>>3];g[l+(S<<2)>>2]=+h[I>>3];m=m+2|0;g[T+(m<<2)>>2]=+h[J>>3];g[l+(m<<2)>>2]=+h[E>>3];m=c[D>>2]|0;l=c[a>>2]|0;if((B+7|0)>>>0>=l>>>0){j=m;break}j=m;k=c[F>>2]|0;B=m+B|0}k=c[F>>2]|0}C=j+C|0}while((C+7-j|0)>>>0>>0);i=P;return}function se(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=i;i=i+48|0;t=u+36|0;s=u+24|0;r=u;cc(t,b);cc(s,d);m=a+4|0;ge(c[a>>2]|0,c[m>>2]|0,c[c[t>>2]>>2]|0,1.5,0.0);ge(c[a>>2]|0,c[m>>2]|0,c[c[s>>2]>>2]|0,1.5,0.0);ge(c[a>>2]|0,c[m>>2]|0,c[(c[t>>2]|0)+12>>2]|0,.586,0.0);ge(c[a>>2]|0,c[m>>2]|0,c[(c[s>>2]|0)+12>>2]|0,.586,0.0);ge(c[a>>2]|0,c[m>>2]|0,c[(c[t>>2]|0)+24>>2]|0,.4,0.0);ge(c[a>>2]|0,c[m>>2]|0,c[(c[s>>2]|0)+24>>2]|0,.4,0.0);n=a+12|0;d=c[n>>2]|0;b=c[m>>2]|0;if((8-d|0)>>>0>>0){o=a+16|0;p=r+8|0;q=r+16|0;f=c[a>>2]|0;l=0;do{if((8-d|0)>>>0>>0){k=0;while(1){j=c[o>>2]|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;w=f+-8|0;v=b+-8|0;le(w>>>0>>0?w:k,v>>>0>>0?v:l,f,b,t,s,r);j=((((_(j,l)|0)+k|0)>>>0)/(d>>>0)|0)*3|0;b=c[e>>2]|0;g[b+(j<<2)>>2]=+h[r>>3];g[b+(j+1<<2)>>2]=+h[p>>3];g[b+(j+2<<2)>>2]=+h[q>>3];j=c[n>>2]|0;b=c[a>>2]|0;if((k+8|0)>>>0>=b>>>0){d=j;break}f=b;b=c[m>>2]|0;d=j;k=j+k|0}f=b;b=c[m>>2]|0}l=d+l|0}while((l+8-d|0)>>>0>>0)}b=c[s>>2]|0;if(b){l=s+4|0;d=c[l>>2]|0;if((d|0)!=(b|0)){do{f=d+-12|0;c[l>>2]=f;j=c[f>>2]|0;k=j;if(!j)d=f;else{d=d+-8|0;f=c[d>>2]|0;if((f|0)!=(j|0))c[d>>2]=f+(~((f+-4-k|0)>>>2)<<2);Oe(j);d=c[l>>2]|0}}while((d|0)!=(b|0));b=c[s>>2]|0}Oe(b)}b=c[t>>2]|0;if(!b){i=u;return}l=t+4|0;d=c[l>>2]|0;if((d|0)!=(b|0)){do{f=d+-12|0;c[l>>2]=f;j=c[f>>2]|0;k=j;if(!j)d=f;else{d=d+-8|0;f=c[d>>2]|0;if((f|0)!=(j|0))c[d>>2]=f+(~((f+-4-k|0)>>>2)<<2);Oe(j);d=c[l>>2]|0}}while((d|0)!=(b|0));b=c[t>>2]|0}Oe(b);i=u;return}function te(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0;aa=i;i=i+144|0;$=aa+132|0;Z=aa+120|0;X=aa+24|0;Y=aa;cc($,b);cc(Z,d);w=a+4|0;ge(c[a>>2]|0,c[w>>2]|0,c[c[$>>2]>>2]|0,14.0,0.0);ge(c[a>>2]|0,c[w>>2]|0,c[c[Z>>2]>>2]|0,14.0,0.0);ge(c[a>>2]|0,c[w>>2]|0,c[(c[$>>2]|0)+12>>2]|0,14.0,0.0);ge(c[a>>2]|0,c[w>>2]|0,c[(c[Z>>2]|0)+12>>2]|0,14.0,0.0);ge(c[a>>2]|0,c[w>>2]|0,c[(c[$>>2]|0)+24>>2]|0,14.0,0.0);ge(c[a>>2]|0,c[w>>2]|0,c[(c[Z>>2]|0)+24>>2]|0,14.0,0.0);b=c[w>>2]|0;if(b>>>0>8){x=a+12|0;y=a+16|0;z=X+8|0;A=X+16|0;B=Y+8|0;C=Y+16|0;D=X+24|0;E=X+32|0;F=X+40|0;G=X+48|0;H=X+56|0;I=X+64|0;J=X+72|0;K=X+80|0;L=X+88|0;M=X+24|0;N=X+48|0;O=X+72|0;P=X+8|0;Q=X+32|0;R=X+56|0;S=X+80|0;T=X+16|0;U=X+40|0;V=X+64|0;W=X+88|0;f=c[x>>2]|0;d=c[a>>2]|0;v=0;do{u=(v|0)/(f|0)|0;if(d>>>0>8){s=8/(f|0)|0;t=0;while(1){k=(_(d,v)|0)+t|0;r=_(c[y>>2]|0,u)|0;p=k+8|0;f=c[Z>>2]|0;j=c[$>>2]|0;q=(d<<3)+k|0;n=d*6|0;l=k+6+n|0;n=k+-6+n|0;o=(t|0)<8;b=c[f>>2]|0;d=c[j>>2]|0;m=+g[b+(k<<2)>>2]-+g[d+(k<<2)>>2];h[X>>3]=m+(+g[d+(p<<2)>>2]-+g[b+(p<<2)>>2]);h[M>>3]=m+(+g[d+(q<<2)>>2]-+g[b+(q<<2)>>2]);h[N>>3]=m+(+g[d+(l<<2)>>2]-+g[b+(l<<2)>>2]);if(o)m=0.0;else m=m+(+g[d+(n<<2)>>2]-+g[b+(n<<2)>>2]);h[O>>3]=m;b=c[f+12>>2]|0;d=c[j+12>>2]|0;m=+g[b+(k<<2)>>2]-+g[d+(k<<2)>>2];h[P>>3]=m+(+g[d+(p<<2)>>2]-+g[b+(p<<2)>>2]);h[Q>>3]=m+(+g[d+(q<<2)>>2]-+g[b+(q<<2)>>2]);h[R>>3]=m+(+g[d+(l<<2)>>2]-+g[b+(l<<2)>>2]);if(o)m=0.0;else m=m+(+g[d+(n<<2)>>2]-+g[b+(n<<2)>>2]);h[S>>3]=m;d=c[f+24>>2]|0;b=c[j+24>>2]|0;m=+g[d+(k<<2)>>2]-+g[b+(k<<2)>>2];h[T>>3]=m+(+g[b+(p<<2)>>2]-+g[d+(p<<2)>>2]);h[U>>3]=m+(+g[b+(q<<2)>>2]-+g[d+(q<<2)>>2]);h[V>>3]=m+(+g[b+(l<<2)>>2]-+g[d+(l<<2)>>2]);if(o)m=0.0;else m=m+(+g[b+(n<<2)>>2]-+g[d+(n<<2)>>2]);h[W>>3]=m;c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[Y+12>>2]=0;c[Y+16>>2]=0;c[Y+20>>2]=0;he(+h[X>>3],+h[z>>3],+h[A>>3],0.0,0.0,0.0,1.0,Y);ea=+h[Y>>3];ea=ea>0.0?ea:0.0;ca=+h[B>>3];ca=ca>0.0?ca:0.0;m=+h[C>>3];m=m>0.0?m:0.0;c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[Y+12>>2]=0;c[Y+16>>2]=0;c[Y+20>>2]=0;he(+h[D>>3],+h[E>>3],+h[F>>3],0.0,0.0,0.0,1.0,Y);fa=+h[Y>>3];ea=ea>3];ca=ca>3];m=m>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[Y+12>>2]=0;c[Y+16>>2]=0;c[Y+20>>2]=0;he(+h[G>>3],+h[H>>3],+h[I>>3],0.0,0.0,0.0,1.0,Y);fa=+h[Y>>3];ea=ea>3];ca=ca>3];m=m>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[Y+12>>2]=0;c[Y+16>>2]=0;c[Y+20>>2]=0;he(+h[J>>3],+h[K>>3],+h[L>>3],0.0,0.0,0.0,1.0,Y);fa=+h[Y>>3];da=+h[B>>3];ba=+h[C>>3];b=(r+s|0)*3|0;d=c[e>>2]|0;r=d+(b<<2)|0;g[r>>2]=(ea>2];r=d+(b+1<<2)|0;g[r>>2]=(ca>2];b=d+(b+2<<2)|0;g[b>>2]=(m>2];b=c[x>>2]|0;t=b+t|0;d=c[a>>2]|0;if((t+8|0)>>>0>=d>>>0)break;else s=s+1|0}f=b;b=c[w>>2]|0}v=f+v|0}while((v+8|0)>>>0>>0)}b=c[Z>>2]|0;if(b){l=Z+4|0;d=c[l>>2]|0;if((d|0)!=(b|0)){do{f=d+-12|0;c[l>>2]=f;j=c[f>>2]|0;k=j;if(!j)d=f;else{d=d+-8|0;f=c[d>>2]|0;if((f|0)!=(j|0))c[d>>2]=f+(~((f+-4-k|0)>>>2)<<2);Oe(j);d=c[l>>2]|0}}while((d|0)!=(b|0));b=c[Z>>2]|0}Oe(b)}b=c[$>>2]|0;if(!b){i=aa;return}l=$+4|0;d=c[l>>2]|0;if((d|0)!=(b|0)){do{f=d+-12|0;c[l>>2]=f;j=c[f>>2]|0;k=j;if(!j)d=f;else{d=d+-8|0;f=c[d>>2]|0;if((f|0)!=(j|0))c[d>>2]=f+(~((f+-4-k|0)>>>2)<<2);Oe(j);d=c[l>>2]|0}}while((d|0)!=(b|0));b=c[$>>2]|0}Oe(b);i=aa;return}function ue(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0;m=f+4|0;i=c[m>>2]|0;j=c[f>>2]|0;k=(i-j|0)/12|0;if(k>>>0>=3){if(k>>>0>3?(n=j+36|0,(i|0)!=(n|0)):0){j=i;while(1){i=j+-12|0;c[m>>2]=i;k=c[i>>2]|0;l=k;if(k){i=j+-8|0;j=c[i>>2]|0;if((j|0)!=(k|0))c[i>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oe(k);i=c[m>>2]|0}if((i|0)==(n|0))break;else j=i}}}else Ie(f,3-k|0);m=h+4|0;i=c[m>>2]|0;j=c[h>>2]|0;k=(i-j|0)/12|0;if(k>>>0>=3){if(k>>>0>3?(o=j+36|0,(i|0)!=(o|0)):0){j=i;while(1){i=j+-12|0;c[m>>2]=i;k=c[i>>2]|0;l=k;if(k){i=j+-8|0;j=c[i>>2]|0;if((j|0)!=(k|0))c[i>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oe(k);i=c[m>>2]|0}if((i|0)==(o|0))break;else j=i}}}else Ie(h,3-k|0);n=_(e,d)|0;o=0;do{j=c[f>>2]|0;i=j+(o*12|0)|0;j=j+(o*12|0)+4|0;k=c[j>>2]|0;l=c[i>>2]|0;m=k-l>>2;if(n>>>0<=m>>>0){if(n>>>0>>0?(p=l+(n<<2)|0,(k|0)!=(p|0)):0)c[j>>2]=k+(~((k+-4-p|0)>>>2)<<2)}else bc(i,n-m|0);j=c[h>>2]|0;i=j+(o*12|0)|0;j=j+(o*12|0)+4|0;k=c[j>>2]|0;l=c[i>>2]|0;m=k-l>>2;if(n>>>0<=m>>>0){if(n>>>0>>0?(q=l+(n<<2)|0,(k|0)!=(q|0)):0)c[j>>2]=k+(~((k+-4-q|0)>>>2)<<2)}else bc(i,n-m|0);o=o+1|0}while((o|0)!=3);Fe(a,b,d,e,f);Ee(d,e,c[f>>2]|0);De(4,0,d,e,c[c[f>>2]>>2]|0);ge(d,e,c[c[f>>2]>>2]|0,9.65781083553,0.0);Ee(d,e,(c[f>>2]|0)+12|0);De(4,0,d,e,c[(c[f>>2]|0)+12>>2]|0);ge(d,e,c[(c[f>>2]|0)+12>>2]|0,14.2644604355,0.0);Ee(d,e,(c[f>>2]|0)+24|0);De(4,0,d,e,c[(c[f>>2]|0)+24>>2]|0);ge(d,e,c[(c[f>>2]|0)+24>>2]|0,4.53358927369,0.0);if(e){i=(d|0)==0;l=0;do{if(!i){j=_(l,d)|0;k=0;do{b=k+j|0;a=c[f>>2]|0;t=+g[(c[a>>2]|0)+(b<<2)>>2]*232.206464018;s=+g[(c[a+12>>2]|0)+(b<<2)>>2]*22.9455222245;r=+g[(c[a+24>>2]|0)+(b<<2)>>2]*503.962310606;u=+xe(t);g[(c[c[f>>2]>>2]|0)+(b<<2)>>2]=u;u=+ye(s);g[(c[(c[f>>2]|0)+12>>2]|0)+(b<<2)>>2]=u;u=+ze(r);g[(c[(c[f>>2]|0)+24>>2]|0)+(b<<2)>>2]=u;t=+Ae(t);g[(c[c[h>>2]>>2]|0)+(b<<2)>>2]=t;s=+Be(s);g[(c[(c[h>>2]|0)+12>>2]|0)+(b<<2)>>2]=s;r=+Ce(r);g[(c[(c[h>>2]|0)+24>>2]|0)+(b<<2)>>2]=r;k=k+1|0}while((k|0)!=(d|0))}l=l+1|0}while((l|0)!=(e|0))}l=c[f>>2]|0;m=c[h>>2]|0;i=c[l+4>>2]|0;k=c[l>>2]|0;if((i|0)!=(k|0)){i=i-k>>2;j=0;do{h=k+(j<<2)|0;g[h>>2]=+g[h>>2]*4.4912938802480805e-003;j=j+1|0}while(j>>>0>>0)}i=c[m+4>>2]|0;k=c[m>>2]|0;if((i|0)!=(k|0)){i=i-k>>2;j=0;do{h=k+(j<<2)|0;g[h>>2]=+g[h>>2]*4.4912938802480805e-003;j=j+1|0}while(j>>>0>>0)}i=c[l+16>>2]|0;k=c[l+12>>2]|0;if((i|0)!=(k|0)){i=i-k>>2;j=0;do{h=k+(j<<2)|0;g[h>>2]=+g[h>>2]*4.4912938802480805e-003;j=j+1|0}while(j>>>0>>0)}i=c[m+16>>2]|0;k=c[m+12>>2]|0;if((i|0)!=(k|0)){i=i-k>>2;j=0;do{h=k+(j<<2)|0;g[h>>2]=+g[h>>2]*4.4912938802480805e-003;j=j+1|0}while(j>>>0>>0)}i=c[l+28>>2]|0;k=c[l+24>>2]|0;if((i|0)!=(k|0)){i=i-k>>2;j=0;do{h=k+(j<<2)|0;g[h>>2]=+g[h>>2]*4.4912938802480805e-003;j=j+1|0}while(j>>>0>>0)}i=c[m+28>>2]|0;k=c[m+24>>2]|0;if((i|0)==(k|0))return;i=i-k>>2;j=0;do{h=k+(j<<2)|0;g[h>>2]=+g[h>>2]*4.4912938802480805e-003;j=j+1|0}while(j>>>0>>0);return}function ve(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0,J=0.0,K=0,L=0.0,M=0;F=a+16|0;l=_(c[a+20>>2]|0,c[F>>2]|0)|0;m=i+4|0;n=c[m>>2]|0;o=c[i>>2]|0;j=n-o>>2;if(l>>>0<=j>>>0){if(l>>>0>>0?(k=o+(l<<2)|0,(n|0)!=(k|0)):0)c[m>>2]=n+(~((n+-4-k|0)>>>2)<<2)}else bc(i,l-j|0);C=a+12|0;D=c[C>>2]|0;j=8-D|0;E=c[a+4>>2]|0;if(j>>>0>=E>>>0)return;B=j>>>0<(c[a>>2]|0)>>>0;A=c[b>>2]|0;z=c[d>>2]|0;y=c[e>>2]|0;x=c[f>>2]|0;v=c[h>>2]|0;r=A+12|0;s=z+12|0;t=A+24|0;u=z+24|0;w=0;do{if(B){b=_(c[F>>2]|0,w)|0;d=c[a>>2]|0;e=_(d,w+3|0)|0;f=c[i>>2]|0;j=c[C>>2]|0;k=c[z>>2]|0;l=c[r>>2]|0;m=c[s>>2]|0;n=c[t>>2]|0;o=c[u>>2]|0;h=c[A>>2]|0;p=D;q=0;while(1){M=e+(q+3)|0;L=+g[h+(M<<2)>>2];J=+g[l+(M<<2)>>2];H=+g[n+(M<<2)>>2];p=((b+q|0)>>>0)/(p>>>0)|0;K=p*3|0;I=K+1|0;G=K+2|0;g[f+(p<<2)>>2]=+g[y+(K<<2)>>2]*+g[k+(M<<2)>>2]+ +g[y+(I<<2)>>2]*+g[m+(M<<2)>>2]+ +g[y+(G<<2)>>2]*+g[o+(M<<2)>>2]+(+g[x+(K<<2)>>2]*L+ +g[x+(I<<2)>>2]*J+ +g[x+(G<<2)>>2]*H)+(L*+g[v+(K<<2)>>2]+J*+g[v+(I<<2)>>2]+H*+g[v+(G<<2)>>2]);if((q+8|0)>>>0>>0){p=j;q=j+q|0}else break}}else j=D;w=j+w|0}while((w+8-D|0)>>>0>>0);return}function we(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+16|0;o=p;c[o>>2]=0;l=c[a+4>>2]|0;if(!l){d=0.0;i=p;return +d}m=c[a+12>>2]|0;n=c[a+8>>2]|0;f=c[a>>2]|0;h=(f|0)==0;b=0.0;d=0.0;j=0;do{e=m+(_(n,j)|0)|0;if(!h){b=d;a=0;while(1){q=e+(a<<2)|0;q=c[(b<+g[q>>2]?q:o)>>2]|0;c[o>>2]=q;a=a+1|0;d=(c[k>>2]=q,+g[k>>2]);if((a|0)==(f|0)){b=d;break}else b=d}}j=j+1|0}while(j>>>0>>0);d=b;i=p;return +d}function xe(b){b=+b;var c=0.0,d=0,e=0;do if((a[1736]|0)==0?(xa(1736)|0)!=0:0){e=0;while(1){c=(20.8029176447/(+(e|0)*.000738288224836+.454909521427)+-4.25328244168)*.975741017749+1.0;d=1744+(e<<3)|0;h[d>>3]=c;if(!(c>=0.0)){d=4;break}h[d>>3]=c*c;e=e+1|0;if(e>>>0>=512){d=6;break}}if((d|0)==4)za(38703,38159,1236,38717);else if((d|0)==6){Ca(1736);break}}while(0);c=+N(+(b<0.0?0.0:b));d=~~c;if((d|0)<511){b=+h[1744+(d<<3)>>3];b=b+(c-+(d|0))*(+h[1744+(d+1<<3)>>3]-b);return +b}else{b=+h[729];return +b}return 0.0}function ye(b){b=+b;var c=0.0,d=0,e=0;do if((a[5840]|0)==0?(xa(5840)|0)!=0:0){e=0;while(1){c=(16.2447033988/(+(e|0)*.011731667845+.911952641929)+1.5307267433)*.373995618954+1.0;d=5848+(e<<3)|0;h[d>>3]=c;if(!(c>=0.0)){d=4;break}h[d>>3]=c*c;e=e+1|0;if(e>>>0>=512){d=6;break}}if((d|0)==4)za(38703,38159,1236,38717);else if((d|0)==6){Ca(5840);break}}while(0);c=+N(+(b<0.0?0.0:b));d=~~c;if((d|0)<511){b=+h[5848+(d<<3)>>3];b=b+(c-+(d|0))*(+h[5848+(d+1<<3)>>3]-b);return +b}else{b=+h[1242];return +b}return 0.0}function ze(b){b=+b;var c=0.0,d=0,e=0;do if((a[9944]|0)==0?(xa(9944)|0)!=0:0){e=0;while(1){c=(31.1444967089/(+(e|0)*.0047434643535+1.05105070921)+-4.25376118646)*.61582234137+1.0;d=9952+(e<<3)|0;h[d>>3]=c;if(!(c>=0.0)){d=4;break}h[d>>3]=c*c;e=e+1|0;if(e>>>0>=512){d=6;break}}if((d|0)==4)za(38703,38159,1236,38717);else if((d|0)==6){Ca(9944);break}}while(0);c=+N(+(b<0.0?0.0:b));d=~~c;if((d|0)<511){b=+h[9952+(d<<3)>>3];b=b+(c-+(d|0))*(+h[9952+(d+1<<3)>>3]-b);return +b}else{b=+h[1755];return +b}return 0.0}function Ae(b){b=+b;var c=0.0,d=0,e=0;do if((a[14048]|0)==0?(xa(14048)|0)!=0:0){e=0;while(1){c=(20.4563479139/(+(e|0)*.00486575865525+.670960225853)+-3.86797479189)*1.79116943438+1.0;d=14056+(e<<3)|0;h[d>>3]=c;if(!(c>=0.0)){d=4;break}h[d>>3]=c*c;e=e+1|0;if(e>>>0>=512){d=6;break}}if((d|0)==4)za(38703,38159,1236,38717);else if((d|0)==6){Ca(14048);break}}while(0);c=+N(+(b<0.0?0.0:b));d=~~c;if((d|0)<511){b=+h[14056+(d<<3)>>3];b=b+(c-+(d|0))*(+h[14056+(d+1<<3)>>3]-b);return +b}else{b=+h[2268];return +b}return 0.0}function Be(b){b=+b;var c=0.0,d=0,e=0;do if((a[18152]|0)==0?(xa(18152)|0)!=0:0){e=0;while(1){c=(21.6566724788/(+(e|0)*.00170392660501+1.73396799447)+-3.65647120524)*.212223514236+1.0;d=18160+(e<<3)|0;h[d>>3]=c;if(!(c>=0.0)){d=4;break}h[d>>3]=c*c;e=e+1|0;if(e>>>0>=512){d=6;break}}if((d|0)==4)za(38703,38159,1236,38717);else if((d|0)==6){Ca(18152);break}}while(0);c=+N(+(b<0.0?0.0:b));d=~~c;if((d|0)<511){b=+h[18160+(d<<3)>>3];b=b+(c-+(d|0))*(+h[18160+(d+1<<3)>>3]-b);return +b}else{b=+h[2781];return +b}return 0.0}function Ce(b){b=+b;var c=0.0,d=0,e=0;do if((a[22256]|0)==0?(xa(22256)|0)!=0:0){e=0;while(1){c=(18.0373825149/(+(e|0)*.00380086095024+.901647926679)+-.894711072781)*.349376011816+1.0;d=22264+(e<<3)|0;h[d>>3]=c;if(!(c>=0.0)){d=4;break}h[d>>3]=c*c;e=e+1|0;if(e>>>0>=512){d=6;break}}if((d|0)==4)za(38703,38159,1236,38717);else if((d|0)==6){Ca(22256);break}}while(0);c=+N(+(b<0.0?0.0:b));d=~~c;if((d|0)<511){b=+h[22264+(d<<3)>>3];b=b+(c-+(d|0))*(+h[22264+(d+1<<3)>>3]-b);return +b}else{b=+h[3294];return +b}return 0.0}function De(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+16|0;j=z;if(a>>>0<=b>>>0)za(38726,38159,1323,38747);h=_(e,d)|0;c[j>>2]=0;w=j+4|0;c[w>>2]=0;c[j+8>>2]=0;do if(h)if(h>>>0>1073741823)Ke(j);else{v=h<<2;x=Me(v)|0;c[j>>2]=x;y=x+(h<<2)|0;c[j+8>>2]=y;pg(x|0,0,v|0)|0;c[w>>2]=y;break}else{x=0;y=0}while(0);v=(e|0)==0;if(!v){o=a-b|0;p=(d|0)==0;q=~e;t=b+-1-a|0;u=0;while(1){r=~(t>>>0>q>>>0?t:q);h=u>>>0>>0?0:u-b|0;j=o+u|0;if(!p){s=_(h,d)|0;n=h+1|0;j=n>>>0<(j>>>0>>0?j:e)>>>0;l=_(u,d)|0;m=0;do{k=+g[f+(m+s<<2)>>2];if(j){h=n;do{k=+vf(k,+g[f+((_(h,d)|0)+m<<2)>>2]);h=h+1|0}while((h|0)!=(r|0))}g[x+(m+l<<2)>>2]=k;m=m+1|0}while((m|0)!=(d|0))}u=u+1|0;if((u|0)==(e|0))break;else t=t+-1|0}}if(d){s=a-b|0;t=~d;p=b+-1-a|0;r=0;while(1){o=~(p>>>0>t>>>0?p:t);n=r>>>0>>0?0:r-b|0;h=s+r|0;if(!v){q=n+1|0;j=q>>>0<(h>>>0>>0?h:d)>>>0;m=0;do{l=_(m,d)|0;k=+g[x+(l+n<<2)>>2];if(j){h=q;do{k=+vf(k,+g[x+(h+l<<2)>>2]);h=h+1|0}while((h|0)!=(o|0))}g[f+(l+r<<2)>>2]=k;m=m+1|0}while((m|0)!=(e|0))}r=r+1|0;if((r|0)==(d|0))break;else p=p+-1|0}}if(!x){i=z;return}if((y|0)!=(x|0))c[w>>2]=y+(~((y+-4-x|0)>>>2)<<2);Oe(x);i=z;return}function Ee(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;z=i;i=i+48|0;y=z+24|0;x=z+12|0;v=z;if((a|0)<4|(b|0)<4){i=z;return}$b(y,d);$b(x,d);$b(v,d);w=v+4|0;e=c[w>>2]|0;u=c[v>>2]|0;if((e|0)!=(u|0)){e=e-u>>2;f=0;do{t=u+(f<<2)|0;g[t>>2]=+g[t>>2]*.6791449189186096;f=f+1|0}while(f>>>0>>0)}if((b|0)>0){m=c[x>>2]|0;n=c[y>>2]|0;o=a+-2|0;p=(o|0)>2;q=a+-1|0;r=(q|0)>1;t=0;do{s=_(t,a)|0;h=m+(s<<2)|0;k=s+1|0;l=n+(k<<2)|0;g[l>>2]=+g[h>>2]+ +g[l>>2];k=m+(k<<2)|0;l=n+(s<<2)|0;g[l>>2]=+g[k>>2]+ +g[l>>2];l=n+(s+2<<2)|0;g[l>>2]=+g[k>>2]+ +g[l>>2];if(p){e=2;do{l=e+s|0;k=m+(l<<2)|0;j=n+(l+-1<<2)|0;g[j>>2]=+g[k>>2]+ +g[j>>2];l=n+(l+1<<2)|0;g[l>>2]=+g[k>>2]+ +g[l>>2];e=e+1|0}while((e|0)!=(o|0))}j=s+a|0;f=j+-2|0;e=m+(f<<2)|0;k=n+(j+-3<<2)|0;g[k>>2]=+g[e>>2]+ +g[k>>2];k=j+-1|0;l=n+(k<<2)|0;g[l>>2]=+g[e>>2]+ +g[l>>2];l=m+(k<<2)|0;f=n+(f<<2)|0;g[f>>2]=+g[l>>2]+ +g[f>>2];if((t|0)>0){e=s-a|0;f=n+(e+1<<2)|0;g[f>>2]=+g[u+(s<<2)>>2]+ +g[f>>2];f=n+(e<<2)|0;g[f>>2]=+g[h>>2]+ +g[f>>2];if(r){f=1;do{D=f+s|0;B=u+(D<<2)|0;A=f+e|0;C=n+(A+1<<2)|0;g[C>>2]=+g[B>>2]+ +g[C>>2];C=n+(A<<2)|0;g[C>>2]=+g[m+(D<<2)>>2]+ +g[C>>2];A=n+(A+-1<<2)|0;g[A>>2]=+g[B>>2]+ +g[A>>2];f=f+1|0}while((f|0)!=(q|0))}D=n+(s+-1<<2)|0;g[D>>2]=+g[l>>2]+ +g[D>>2];D=n+(s+-2<<2)|0;g[D>>2]=+g[u+(k<<2)>>2]+ +g[D>>2]}t=t+1|0;if((t|0)<(b|0)){D=n+(j+1<<2)|0;g[D>>2]=+g[u+(s<<2)>>2]+ +g[D>>2];D=n+(j<<2)|0;g[D>>2]=+g[h>>2]+ +g[D>>2];if(r){e=1;do{A=e+s|0;C=u+(A<<2)|0;D=e+j|0;B=n+(D+1<<2)|0;g[B>>2]=+g[C>>2]+ +g[B>>2];B=n+(D<<2)|0;g[B>>2]=+g[m+(A<<2)>>2]+ +g[B>>2];D=n+(D+-1<<2)|0;g[D>>2]=+g[C>>2]+ +g[D>>2];e=e+1|0}while((e|0)!=(q|0))}D=j+a|0;C=n+(D+-1<<2)|0;g[C>>2]=+g[l>>2]+ +g[C>>2];D=n+(D+-2<<2)|0;g[D>>2]=+g[u+(k<<2)>>2]+ +g[D>>2]}}while((t|0)!=(b|0))}if((y|0)!=(d|0))Kd(d,c[y>>2]|0,c[y+4>>2]|0);e=c[d+4>>2]|0;h=c[d>>2]|0;if((e|0)!=(h|0)){e=e-h>>2;f=0;do{D=h+(f<<2)|0;g[D>>2]=+g[D>>2]*.12959109246730804;f=f+1|0}while(f>>>0>>0)}e=c[v>>2]|0;f=e;if(e){h=c[w>>2]|0;if((h|0)!=(e|0))c[w>>2]=h+(~((h+-4-f|0)>>>2)<<2);Oe(e)}h=c[x>>2]|0;j=h;if(h){e=x+4|0;f=c[e>>2]|0;if((f|0)!=(h|0))c[e>>2]=f+(~((f+-4-j|0)>>>2)<<2);Oe(h)}h=c[y>>2]|0;if(!h){i=z;return}e=y+4|0;f=c[e>>2]|0;if((f|0)!=(h|0))c[e>>2]=f+(~((f+-4-h|0)>>>2)<<2);Oe(h);i=z;return}function Fe(b,d,e,f,j){b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0;K=i;i=i+112|0;p=K+96|0;G=K+72|0;I=K+48|0;H=K+24|0;J=K;k=c[b>>2]|0;k=(c[k+4>>2]|0)-(c[k>>2]|0)|0;l=k>>2;c[p>>2]=0;r=p+4|0;c[r>>2]=0;c[p+8>>2]=0;do if(l)if(l>>>0>1073741823)Ke(p);else{E=Me(k)|0;c[p>>2]=E;F=E+(l<<2)|0;c[p+8>>2]=F;pg(E|0,0,k|0)|0;c[r>>2]=F;break}while(0);o=j+4|0;k=c[o>>2]|0;l=c[j>>2]|0;m=(k-l|0)/12|0;if(m>>>0>=3){if(m>>>0>3?(q=l+36|0,(k|0)!=(q|0)):0){l=k;while(1){k=l+-12|0;c[o>>2]=k;m=c[k>>2]|0;n=m;if(m){k=l+-8|0;l=c[k>>2]|0;if((l|0)!=(m|0))c[k>>2]=l+(~((l+-4-n|0)>>>2)<<2);Oe(m);k=c[o>>2]|0}if((k|0)==(q|0))break;else l=k}}}else Xb(j,3-m|0,p);k=c[p>>2]|0;l=k;if(k){m=c[r>>2]|0;if((m|0)!=(k|0))c[r>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oe(k)};c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+12>>2]=0;c[G+16>>2]=0;c[G+20>>2]=0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[I+16>>2]=0;c[I+20>>2]=0;c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;c[H+12>>2]=0;c[H+16>>2]=0;c[H+20>>2]=0;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;c[J+12>>2]=0;c[J+16>>2]=0;c[J+20>>2]=0;if(!f){i=K;return}w=(e|0)==0;x=G+8|0;y=G+16|0;z=H+8|0;A=H+16|0;B=0-e|0;C=I+8|0;D=I+16|0;E=J+8|0;F=J+16|0;k=0;a:while(1){if(w)k=k+1|0;else{r=_(k,e)|0;k=k+1|0;p=k>>>0>>0?e:B;q=0;do{n=q+r|0;q=q+1|0;o=q>>>0>>0;m=(o?1:-1)+n|0;l=c[b>>2]|0;L=c[l>>2]|0;s=+g[L+(n<<2)>>2]-+g[L+(m<<2)>>2];L=c[l+12>>2]|0;u=+g[L+(n<<2)>>2]-+g[L+(m<<2)>>2];l=c[l+24>>2]|0;v=+g[l+(n<<2)>>2]-+g[l+(m<<2)>>2];if((a[912]|0)==0?(xa(912)|0)!=0:0){h[115]=0.0;h[116]=11.38708334481672;h[117]=25.937272956337438;h[118]=40.48746256785815;h[119]=55.03765217937887;h[120]=69.58784179089959;h[121]=84.13803140242031;h[122]=98.68822101394103;h[123]=113.23841062546175;h[124]=127.78860023698248;h[125]=142.33878984850318;h[126]=156.8889794600239;h[127]=171.43916907154463;h[128]=185.98935868306535;h[129]=200.53954829458607;h[130]=215.0897379061068;h[131]=229.6399275176275;h[132]=244.19011712914823;h[133]=258.7403067406689;h[134]=273.2904963521896;h[135]=287.8406859637103;Ca(912)}t=s*.758304045695;s=+N(+t);if(!(s<1.0e4)){k=27;break a}l=~~s;if((l|0)<20){M=+h[920+(l<<3)>>3];s=M+(s-+(l|0))*(+h[920+(l+1<<3)>>3]-M)}else s=+h[135];h[G>>3]=t<0.0?-s:s;if((a[1088]|0)==0?(xa(1088)|0)!=0:0){h[137]=0.0;h[138]=1.4103373714040413;h[139]=2.1187462581064413;h[140]=2.8271551448088412;h[141]=3.535564031511241;h[142]=4.243972918213641;h[143]=4.952381804916041;h[144]=5.660790691618441;h[145]=6.369199578320841;h[146]=7.077608465023241;h[147]=7.786017351725641;h[148]=8.49442623842804;h[149]=9.202835125130441;h[150]=9.911244011832842;h[151]=10.619652898535243;h[152]=11.328061785237644;h[153]=12.036470671940044;h[154]=12.744879558642445;h[155]=13.453288445344846;h[156]=14.161697332047247;h[157]=14.870106218749648;Ca(1088)}t=u*2.28148649801;s=+N(+t);if(!(s<1.0e4)){k=35;break a}l=~~s;if((l|0)<20){M=+h[1096+(l<<3)>>3];s=M+(s-+(l|0))*(+h[1096+(l+1<<3)>>3]-M)}else s=+h[157];h[x>>3]=t<0.0?-s:s;h[y>>3]=v*1.87816926918;L=c[d>>2]|0;l=c[L>>2]|0;s=+g[l+(n<<2)>>2]-+g[l+(m<<2)>>2];l=c[L+12>>2]|0;u=+g[l+(n<<2)>>2]-+g[l+(m<<2)>>2];L=c[L+24>>2]|0;v=+g[L+(n<<2)>>2]-+g[L+(m<<2)>>2];if((a[912]|0)==0?(xa(912)|0)!=0:0){h[115]=0.0;h[116]=11.38708334481672;h[117]=25.937272956337438;h[118]=40.48746256785815;h[119]=55.03765217937887;h[120]=69.58784179089959;h[121]=84.13803140242031;h[122]=98.68822101394103;h[123]=113.23841062546175;h[124]=127.78860023698248;h[125]=142.33878984850318;h[126]=156.8889794600239;h[127]=171.43916907154463;h[128]=185.98935868306535;h[129]=200.53954829458607;h[130]=215.0897379061068;h[131]=229.6399275176275;h[132]=244.19011712914823;h[133]=258.7403067406689;h[134]=273.2904963521896;h[135]=287.8406859637103;Ca(912)}t=s*.758304045695;s=+N(+t);if(!(s<1.0e4)){k=43;break a}l=~~s;if((l|0)<20){M=+h[920+(l<<3)>>3];s=M+(s-+(l|0))*(+h[920+(l+1<<3)>>3]-M)}else s=+h[135];h[H>>3]=t<0.0?-s:s;if((a[1088]|0)==0?(xa(1088)|0)!=0:0){h[137]=0.0;h[138]=1.4103373714040413;h[139]=2.1187462581064413;h[140]=2.8271551448088412;h[141]=3.535564031511241;h[142]=4.243972918213641;h[143]=4.952381804916041;h[144]=5.660790691618441;h[145]=6.369199578320841;h[146]=7.077608465023241;h[147]=7.786017351725641;h[148]=8.49442623842804;h[149]=9.202835125130441;h[150]=9.911244011832842;h[151]=10.619652898535243;h[152]=11.328061785237644;h[153]=12.036470671940044;h[154]=12.744879558642445;h[155]=13.453288445344846;h[156]=14.161697332047247;h[157]=14.870106218749648;Ca(1088)}t=u*2.28148649801;s=+N(+t);if(!(s<1.0e4)){k=51;break a}l=~~s;if((l|0)<20){M=+h[1096+(l<<3)>>3];s=M+(s-+(l|0))*(+h[1096+(l+1<<3)>>3]-M)}else s=+h[157];h[z>>3]=t<0.0?-s:s;h[A>>3]=v*1.87816926918;m=n+p|0;L=c[b>>2]|0;l=c[L>>2]|0;s=+g[l+(n<<2)>>2]-+g[l+(m<<2)>>2];l=c[L+12>>2]|0;u=+g[l+(n<<2)>>2]-+g[l+(m<<2)>>2];L=c[L+24>>2]|0;v=+g[L+(n<<2)>>2]-+g[L+(m<<2)>>2];do if(!(a[912]|0)){if(!(xa(912)|0))break;h[115]=0.0;h[116]=11.38708334481672;h[117]=25.937272956337438;h[118]=40.48746256785815;h[119]=55.03765217937887;h[120]=69.58784179089959;h[121]=84.13803140242031;h[122]=98.68822101394103;h[123]=113.23841062546175;h[124]=127.78860023698248;h[125]=142.33878984850318;h[126]=156.8889794600239;h[127]=171.43916907154463;h[128]=185.98935868306535;h[129]=200.53954829458607;h[130]=215.0897379061068;h[131]=229.6399275176275;h[132]=244.19011712914823;h[133]=258.7403067406689;h[134]=273.2904963521896;h[135]=287.8406859637103;Ca(912)}while(0);t=s*.758304045695;s=+N(+t);if(!(s<1.0e4)){k=59;break a}l=~~s;if((l|0)<20){M=+h[920+(l<<3)>>3];s=M+(s-+(l|0))*(+h[920+(l+1<<3)>>3]-M)}else s=+h[135];h[I>>3]=t<0.0?-s:s;do if(!(a[1088]|0)){if(!(xa(1088)|0))break;h[137]=0.0;h[138]=1.4103373714040413;h[139]=2.1187462581064413;h[140]=2.8271551448088412;h[141]=3.535564031511241;h[142]=4.243972918213641;h[143]=4.952381804916041;h[144]=5.660790691618441;h[145]=6.369199578320841;h[146]=7.077608465023241;h[147]=7.786017351725641;h[148]=8.49442623842804;h[149]=9.202835125130441;h[150]=9.911244011832842;h[151]=10.619652898535243;h[152]=11.328061785237644;h[153]=12.036470671940044;h[154]=12.744879558642445;h[155]=13.453288445344846;h[156]=14.161697332047247;h[157]=14.870106218749648;Ca(1088)}while(0);t=u*2.28148649801;s=+N(+t);if(!(s<1.0e4)){k=67;break a}l=~~s;if((l|0)<20){M=+h[1096+(l<<3)>>3];s=M+(s-+(l|0))*(+h[1096+(l+1<<3)>>3]-M)}else s=+h[157];h[C>>3]=t<0.0?-s:s;h[D>>3]=v*1.87816926918;L=c[d>>2]|0;l=c[L>>2]|0;s=+g[l+(n<<2)>>2]-+g[l+(m<<2)>>2];l=c[L+12>>2]|0;u=+g[l+(n<<2)>>2]-+g[l+(m<<2)>>2];L=c[L+24>>2]|0;v=+g[L+(n<<2)>>2]-+g[L+(m<<2)>>2];do if(!(a[912]|0)){if(!(xa(912)|0))break;h[115]=0.0;h[116]=11.38708334481672;h[117]=25.937272956337438;h[118]=40.48746256785815;h[119]=55.03765217937887;h[120]=69.58784179089959;h[121]=84.13803140242031;h[122]=98.68822101394103;h[123]=113.23841062546175;h[124]=127.78860023698248;h[125]=142.33878984850318;h[126]=156.8889794600239;h[127]=171.43916907154463;h[128]=185.98935868306535;h[129]=200.53954829458607;h[130]=215.0897379061068;h[131]=229.6399275176275;h[132]=244.19011712914823;h[133]=258.7403067406689;h[134]=273.2904963521896;h[135]=287.8406859637103;Ca(912)}while(0);t=s*.758304045695;s=+N(+t);if(!(s<1.0e4)){k=75;break a}l=~~s;if((l|0)<20){M=+h[920+(l<<3)>>3];s=M+(s-+(l|0))*(+h[920+(l+1<<3)>>3]-M)}else s=+h[135];h[J>>3]=t<0.0?-s:s;do if(!(a[1088]|0)){if(!(xa(1088)|0))break;h[137]=0.0;h[138]=1.4103373714040413;h[139]=2.1187462581064413;h[140]=2.8271551448088412;h[141]=3.535564031511241;h[142]=4.243972918213641;h[143]=4.952381804916041;h[144]=5.660790691618441;h[145]=6.369199578320841;h[146]=7.077608465023241;h[147]=7.786017351725641;h[148]=8.49442623842804;h[149]=9.202835125130441;h[150]=9.911244011832842;h[151]=10.619652898535243;h[152]=11.328061785237644;h[153]=12.036470671940044;h[154]=12.744879558642445;h[155]=13.453288445344846;h[156]=14.161697332047247;h[157]=14.870106218749648;Ca(1088)}while(0);t=u*2.28148649801;s=+N(+t);if(!(s<1.0e4)){k=83;break a}l=~~s;if((l|0)<20){M=+h[1096+(l<<3)>>3];s=M+(s-+(l|0))*(+h[1096+(l+1<<3)>>3]-M)}else s=+h[157];u=t<0.0?-s:s;h[E>>3]=u;v=v*1.87816926918;h[F>>3]=v;L=c[j>>2]|0;M=+N(+(+h[G>>3]));M=M+ +N(+(+h[I>>3]));t=+N(+(+h[H>>3]));t=t+ +N(+(+h[J>>3]));g[(c[L>>2]|0)+(n<<2)>>2]=t>3]));M=M+ +N(+(+h[C>>3]));u=+N(+(+h[z>>3]))+ +N(+u);g[(c[L+12>>2]|0)+(n<<2)>>2]=u>3]));M=M+ +N(+(+h[D>>3]));v=+N(+(+h[A>>3]))+ +N(+v);g[(c[L+24>>2]|0)+(n<<2)>>2]=v>>0>=f>>>0){k=89;break}}if((k|0)==27)za(38389,38159,303,38400);else if((k|0)==35)za(38389,38159,303,38400);else if((k|0)==43)za(38389,38159,303,38400);else if((k|0)==51)za(38389,38159,303,38400);else if((k|0)==59)za(38389,38159,303,38400);else if((k|0)==67)za(38389,38159,303,38400);else if((k|0)==75)za(38389,38159,303,38400);else if((k|0)==83)za(38389,38159,303,38400);else if((k|0)==89){i=K;return}}function Ge(a,b,c,d,e,f,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;j=j|0;var k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0.0;l=e<<1|1;m=0;k=0.0;do{k=k+ +g[f+(m<<2)>>2];m=m+1|0}while((m|0)!=(l|0));if(!a)return;v=d-e|0;w=1.0-i;s=k*i;t=(b|0)==0;u=0;o=0;l=0;while(1){q=l>>>0>>0?0:l-e|0;r=v+l|0;r=(r>>>0>>0?r:a)+-1|0;n=(q|0)>(r|0);if(n)k=0.0;else{m=o+e|0;d=q;k=0.0;while(1){k=k+ +g[f+(m+d<<2)>>2];if((d|0)<(r|0))d=d+1|0;else break}}i=1.0/(s+w*k);a:do if(!t){p=_(u,b)|0;o=o+e|0;if(n){k=i*0.0;m=0;while(1){g[j+(m+p<<2)>>2]=k;m=m+1|0;if((m|0)==(b|0))break a}}else n=0;do{m=_(n,a)|0;d=q;k=0.0;while(1){k=k+ +g[h+(d+m<<2)>>2]*+g[f+(o+d<<2)>>2];if((d|0)<(r|0))d=d+1|0;else break}g[j+(n+p<<2)>>2]=i*k;n=n+1|0}while((n|0)!=(b|0))}while(0);l=l+c|0;if(l>>>0>>0){u=u+1|0;o=0-l|0}else break}return}function He(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=i;i=i+32|0;z=y;x=y+8|0;d=c[b>>2]|0;f=b+4|0;e=c[f>>2]|0;if((d|0)==(e|0))za(38760,38571,385,38776);v=_(c[d+4>>2]|0,c[d>>2]|0)|0;c[a>>2]=0;w=a+4|0;c[w>>2]=0;c[a+8>>2]=0;Yb(a,(e-d|0)/20|0);d=c[b>>2]|0;n=c[f>>2]|0;if((d|0)==(n|0)){i=y;return}o=x+4|0;p=x+8|0;q=(v|0)==0;r=a+8|0;s=x+8|0;t=v>>>0>1073741823;u=v<<2;m=d;a:while(1){c[x>>2]=0;c[o>>2]=0;c[p>>2]=0;if(!q){if(t){b=7;break}k=Me(u)|0;c[x>>2]=k;l=k+(v<<2)|0;c[s>>2]=l;pg(k|0,0,u|0)|0;c[o>>2]=l}d=c[w>>2]|0;if(d>>>0>=(c[r>>2]|0)>>>0){Zb(a,x);d=c[x>>2]|0;e=d;if(d){b=c[o>>2]|0;if((b|0)!=(d|0))c[o>>2]=b+(~((b+-4-e|0)>>>2)<<2);Oe(d)}}else{c[d>>2]=0;l=d+4|0;c[l>>2]=0;c[d+8>>2]=0;c[d>>2]=c[x>>2];c[l>>2]=c[o>>2];c[d+8>>2]=c[s>>2];c[s>>2]=0;c[o>>2]=0;c[x>>2]=0;c[w>>2]=(c[w>>2]|0)+12}b=c[m>>2]|0;f=m+4|0;g=c[f>>2]|0;b:do if(g){h=m+12|0;j=m+8|0;k=(c[w>>2]|0)+-12|0;l=b<<2;e=0;while(1){d=(c[h>>2]|0)+(_(c[j>>2]|0,e)|0)|0;tg((c[k>>2]|0)+((_(e,b)|0)<<2)|0,d|0,l|0)|0;e=e+1|0;if(e>>>0>=g>>>0)break b;d=c[f>>2]|0;if(d>>>0<=e>>>0){b=17;break a}}}while(0);m=m+20|0;if((m|0)==(n|0)){b=21;break}}if((b|0)==7)Ke(x);else if((b|0)==17){c[z>>2]=e;c[z+4>>2]=d;Hf(38793,z)|0;wa()}else if((b|0)==21){i=y;return}}function Ie(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;g=c[m>>2]|0;n=a+4|0;f=c[n>>2]|0;d=f;if(((g-d|0)/12|0)>>>0>=b>>>0){d=b;e=f;while(1){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=d+-1|0;if(!d)break;else e=e+12|0}c[n>>2]=f+(b*12|0);return}l=c[a>>2]|0;e=((d-l|0)/12|0)+b|0;if(e>>>0>357913941)Ke(a);j=l;d=(g-j|0)/12|0;if(d>>>0<178956970){d=d<<1;d=d>>>0>>0?e:d;f=c[n>>2]|0;e=(f-j|0)/12|0;if(!d){g=0;k=0;i=e}else h=9}else{f=c[n>>2]|0;d=357913941;e=(f-j|0)/12|0;h=9}if((h|0)==9){g=d;k=Me(d*12|0)|0;i=e}e=k+(i*12|0)|0;h=k+(g*12|0)|0;d=b;g=e;while(1){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;d=d+-1|0;if(!d)break;else g=g+12|0}d=e;g=k+((i+b|0)*12|0)|0;if((f|0)==(l|0))e=a;else{do{b=e+-12|0;k=f;f=f+-12|0;c[b>>2]=0;j=e+-8|0;c[j>>2]=0;c[e+-4>>2]=0;c[b>>2]=c[f>>2];b=k+-8|0;c[j>>2]=c[b>>2];k=k+-4|0;c[e+-4>>2]=c[k>>2];c[k>>2]=0;c[b>>2]=0;c[f>>2]=0;e=d+-12|0;d=e}while((f|0)!=(l|0));e=a;j=c[a>>2]|0}c[e>>2]=d;d=c[n>>2]|0;c[n>>2]=g;c[m>>2]=h;i=j;if((d|0)!=(i|0))do{e=d;d=d+-12|0;g=c[d>>2]|0;h=g;if(g){e=e+-8|0;f=c[e>>2]|0;if((f|0)!=(g|0))c[e>>2]=f+(~((f+-4-h|0)>>>2)<<2);Oe(g)}}while((d|0)!=(i|0));if(!j)return;Oe(j);return}function Je(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d>>2]=b;b=c[8426]|0;Jf(b,a,d)|0;Df(10,b)|0;wa()}function Ke(a){a=a|0;za(39047,39070,303,39145)}function Le(){var a=0,b=0;a=i;i=i+16|0;if(!(Na(33652,2)|0)){b=La(c[8412]|0)|0;i=a;return b|0}else Je(39166,a);return 0}function Me(a){a=a|0;var b=0;b=(a|0)==0?1:a;a=bg(b)|0;a:do if(!a){while(1){a=Ve()|0;if(!a)break;lb[a&3]();a=bg(b)|0;if(a)break a}b=Aa(4)|0;c[b>>2]=33552;Ta(b|0,26360,3)}while(0);return a|0}function Ne(a){a=a|0;return Me(a)|0}function Oe(a){a=a|0;cg(a);return}function Pe(a){a=a|0;Oe(a);return}function Qe(a){a=a|0;return}function Re(a){a=a|0;Oe(a);return}function Se(a){a=a|0;return 39215}function Te(a){a=a|0;var b=0;b=i;i=i+16|0;lb[a&3]();Je(39230,b)}function Ue(){var a=0,b=0;a=Le()|0;if(((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)Te(c[b+12>>2]|0);b=c[8385]|0;c[8385]=b+0;Te(b)}function Ve(){var a=0;a=c[8391]|0;c[8391]=a+0;return a|0}function We(a){a=a|0;return}function Xe(a){a=a|0;return}function Ye(a){a=a|0;return}function Ze(a){a=a|0;return}function _e(a){a=a|0;return}function $e(a){a=a|0;Oe(a);return}function af(a){a=a|0;Oe(a);return}function bf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+64|0;g=h;if((a|0)!=(b|0))if((b|0)!=0?(f=ff(b,26392,26408,0)|0,(f|0)!=0):0){b=g;e=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(e|0));c[g>>2]=f;c[g+8>>2]=a;c[g+12>>2]=-1;c[g+48>>2]=1;pb[c[(c[f>>2]|0)+28>>2]&3](f,g,c[d>>2]|0,1);if((c[g+24>>2]|0)==1){c[d>>2]=c[g+16>>2];b=1}else b=0}else b=0;else b=1;i=h;return b|0}function cf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|0)!=(e|0)){f=d+36|0;c[f>>2]=(c[f>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}b=d+24|0;if((c[b>>2]|0)==2)c[b>>2]=f}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function df(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))cf(0,b,d,e);return}function ef(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))cf(0,b,d,e);else{a=c[a+8>>2]|0;pb[c[(c[a>>2]|0)+28>>2]&3](a,b,d,e)}return}function ff(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;q=r;p=c[d>>2]|0;o=d+(c[p+-8>>2]|0)|0;p=c[p+-4>>2]|0;c[q>>2]=f;c[q+4>>2]=d;c[q+8>>2]=e;c[q+12>>2]=g;g=q+16|0;d=q+20|0;e=q+24|0;h=q+28|0;j=q+32|0;k=q+40|0;l=(p|0)==(f|0);m=g;n=m+36|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(n|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(l){c[q+48>>2]=1;mb[c[(c[f>>2]|0)+20>>2]&3](f,q,o,o,1,0);g=(c[e>>2]|0)==1?o:0}else{db[c[(c[p>>2]|0)+24>>2]&3](p,q,o,1,0);switch(c[q+36>>2]|0){case 0:{g=(c[k>>2]|0)==1&(c[h>>2]|0)==1&(c[j>>2]|0)==1?c[d>>2]|0:0;break a}case 1:break;default:{g=0;break a}}if((c[e>>2]|0)!=1?!((c[k>>2]|0)==0&(c[h>>2]|0)==1&(c[j>>2]|0)==1):0){g=0;break}g=c[g>>2]|0}while(0);i=r;return g|0}function gf(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;f=d+16|0;b=c[f>>2]|0;if(!b){c[f>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((b|0)!=(e|0)){g=d+36|0;c[g>>2]=(c[g>>2]|0)+1;a[d+54>>0]=1;break}b=d+24|0;f=c[b>>2]|0;if((f|0)==2){c[b>>2]=g;f=g}if((f|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function hf(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){j=c[b+8>>2]|0;db[c[(c[j>>2]|0)+24>>2]&3](j,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[d+32>>2]=f;f=d+44|0;if((c[f>>2]|0)==4)break;h=d+52|0;a[h>>0]=0;k=d+53|0;a[k>>0]=0;b=c[b+8>>2]|0;mb[c[(c[b>>2]|0)+20>>2]&3](b,d,e,e,1,g);if(a[k>>0]|0){if(!(a[h>>0]|0)){h=1;j=13}}else{h=0;j=13}do if((j|0)==13){c[i>>2]=e;k=d+40|0;c[k>>2]=(c[k>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(h)break}else j=16;if((j|0)==16?h:0)break;c[f>>2]=4;break a}while(0);c[f>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function jf(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(i=d+28|0,(c[i>>2]|0)!=1):0)c[i>>2]=f}else if((b|0)==(c[d>>2]|0)){if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[h>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function kf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))gf(0,b,d,e,f);else{a=c[a+8>>2]|0;mb[c[(c[a>>2]|0)+20>>2]&3](a,b,d,e,f,g)}return}function lf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))gf(0,b,d,e,f);return}function mf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=c[d>>2];a=cb[c[(c[a>>2]|0)+16>>2]&7](a,b,e)|0;if(a)c[d>>2]=c[e>>2];i=f;return a&1|0}function nf(a){a=a|0;if(!a)a=0;else a=(ff(a,26392,26440,0)|0)!=0;return a&1|0}function of(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0;f=i;i=i+48|0;h=f+32|0;d=f+24|0;j=f+16|0;g=f;f=f+36|0;a=Le()|0;if((a|0)!=0?(e=c[a>>2]|0,(e|0)!=0):0){a=e+48|0;b=c[a>>2]|0;a=c[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){c[d>>2]=c[8414];Je(39563,d)}if((b|0)==1126902529&(a|0)==1129074247)a=c[e+44>>2]|0;else a=e+80|0;c[f>>2]=a;e=c[e>>2]|0;a=c[e+4>>2]|0;if(cb[c[(c[26376>>2]|0)+16>>2]&7](26376,e,f)|0){j=c[f>>2]|0;f=c[8414]|0;j=jb[c[(c[j>>2]|0)+8>>2]&3](j)|0;c[g>>2]=f;c[g+4>>2]=a;c[g+8>>2]=j;Je(39477,g)}else{c[j>>2]=c[8414];c[j+4>>2]=a;Je(39522,j)}}Je(39601,h)}function pf(){var a=0;a=i;i=i+16|0;if(!(Za(33648,12)|0)){i=a;return}else Je(39270,a)}function qf(a){a=a|0;var b=0;b=i;i=i+16|0;cg(a);if(!(Sa(c[8412]|0,0)|0)){i=b;return}else Je(39320,b)}function rf(a){a=a|0;za(39373,39402,1164,39145)}function sf(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[39622+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=39710;e=5;break}}if((e|0)==2)if(!c)b=39710;else{b=39710;e=5}if((e|0)==5)while(1){e=b;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}c=c+-1|0;if(!c)break;else e=5}return b|0}function tf(){var a=0;if(!(c[8415]|0))a=33716;else a=c[(Ma()|0)+60>>2]|0;return a|0}function uf(a){a=a|0;if(a>>>0>4294963200){c[(tf()|0)>>2]=0-a;a=-1}return a|0}function vf(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;g=e&2147483647;do if(!(g>>>0>2146435072|(g|0)==2146435072&d>>>0>0)){h[k>>3]=b;f=c[k>>2]|0;g=c[k+4>>2]|0;i=g&2147483647;if(!(i>>>0>2146435072|(i|0)==2146435072&f>>>0>0)){d=sg(d|0,e|0,63)|0;i=sg(f|0,g|0,63)|0;if((d|0)==(i|0)){a=a>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=sg(d|0,e|0,52)|0;f=f&2047;switch(f|0){case 0:{if(a!=0.0){a=+wf(a*18446744073709552.0e3,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=f+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;a=+h[k>>3]}}return +a}function xf(a,b){a=+a;b=b|0;return +(+wf(a,b))}function yf(a){a=+a;var b=0,d=0.0,e=0.0,f=0;h[k>>3]=a;b=c[k+4>>2]|0;f=sg(c[k>>2]|0,b|0,52)|0;f=f&2047;do if(f>>>0<=1074){b=(b|0)<0;e=b?-a:a;if(f>>>0<1022){a=a*0.0;break}d=e+4503599627370496.0+-4503599627370496.0-e;if(!(d>.5)){a=e+d;if(d<=-.5)a=a+1.0}else a=e+d+-1.0;a=b?-a:a}while(0);return +a}function zf(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(tf()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function Af(a,b){a=a|0;b=b|0;if(!a)a=0;else a=zf(a,b,0)|0;return a|0}function Bf(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Wf(a)|0;break}d=(Lf(a)|0)==0;b=Wf(a)|0;if(!d)Mf(a)}else{if(!(c[8428]|0))b=0;else b=Bf(c[8428]|0)|0;Va(33688);a=c[8421]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=Lf(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=Wf(a)|0|b;if(d)Mf(a);a=c[a+56>>2]|0}while((a|0)!=0);Qa(33688)}while(0);return b|0}function Cf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=Jf(a,b,f)|0;i=e;return d|0}function Df(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if((c[d+76>>2]|0)>=0?(Lf(d)|0)!=0:0){if((a[d+75>>0]|0)!=(b|0)?(f=d+20|0,g=c[f>>2]|0,g>>>0<(c[d+16>>2]|0)>>>0):0){c[f>>2]=g+1;a[g>>0]=b;e=b&255}else e=Nf(d,b)|0;Mf(d)}else i=3;do if((i|0)==3){if((a[d+75>>0]|0)!=(b|0)?(h=d+20|0,e=c[h>>2]|0,e>>>0<(c[d+16>>2]|0)>>>0):0){c[h>>2]=e+1;a[e>>0]=b;e=b&255;break}e=Nf(d,b)|0}while(0);return e|0}function Ef(a,b){a=a|0;b=b|0;return (Gf(a,Vf(a)|0,1,b)|0)+-1|0}function Ff(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Sf(e)|0)){g=c[f>>2]|0;h=4}else f=0;else h=4;a:do if((h|0)==4){i=e+20|0;h=c[i>>2]|0;if((g-h|0)>>>0>>0){f=cb[c[e+36>>2]&7](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){g=h;f=0;break b}g=f+-1|0;if((a[b+g>>0]|0)==10)break;else f=g}if((cb[c[e+36>>2]&7](e,b,f)|0)>>>0>>0)break a;d=d-f|0;b=b+f|0;g=c[i>>2]|0}else{g=h;f=0}while(0);tg(g|0,b|0,d|0)|0;c[i>>2]=(c[i>>2]|0)+d;f=f+d|0}while(0);return f|0}function Gf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=_(d,b)|0;if((c[e+76>>2]|0)>-1){g=(Lf(e)|0)==0;a=Ff(a,f,e)|0;if(!g)Mf(e)}else a=Ff(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function Hf(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;b=Jf(c[8427]|0,a,e)|0;i=d;return b|0}function If(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=e;e=Kf(a,b,d,g)|0;i=f;return e|0}function Jf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+224|0;o=s+120|0;r=s+80|0;q=s;p=s+136|0;f=r;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[o>>2]=c[e>>2];if((Xf(0,d,o,q,r)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)m=Lf(b)|0;else m=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=p;j=b+28|0;c[j>>2]=p;k=b+20|0;c[k>>2]=p;c[e>>2]=80;l=b+16|0;c[l>>2]=p+80;f=Xf(b,d,o,q,r)|0;if(h){cb[c[b+36>>2]&7](b,0,0)|0;f=(c[k>>2]|0)==0?-1:f;c[g>>2]=h;c[e>>2]=0;c[l>>2]=0;c[j>>2]=0;c[k>>2]=0}}else f=Xf(b,d,o,q,r)|0;e=c[b>>2]|0;c[b>>2]=e|n;if(m)Mf(b);e=(e&32|0)==0?f:-1}i=s;return e|0}function Kf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+128|0;g=n+112|0;m=n;h=m;j=33720;k=h+112|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));if((d+-1|0)>>>0>2147483646)if(!d){d=1;l=4}else{c[(tf()|0)>>2]=75;d=-1}else{g=b;l=4}if((l|0)==4){l=-2-g|0;l=d>>>0>l>>>0?l:d;c[m+48>>2]=l;b=m+20|0;c[b>>2]=g;c[m+44>>2]=g;d=g+l|0;g=m+16|0;c[g>>2]=d;c[m+28>>2]=d;d=Jf(m,e,f)|0;if(l){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}i=n;return d|0}function Lf(a){a=a|0;return 0}function Mf(a){a=a|0;return}function Nf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m;k=e&255;a[l>>0]=k;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(Sf(b)|0)){h=c[g>>2]|0;j=4}else f=-1;else j=4;do if((j|0)==4){g=b+20|0;j=c[g>>2]|0;if(j>>>0>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[g>>2]=j+1;a[j>>0]=k;break}if((cb[c[b+36>>2]&7](b,l,1)|0)==1)f=d[l>>0]|0;else f=-1}while(0);i=m;return f|0}function Of(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=uf(Wa(6,d|0)|0)|0;i=b;return a|0}function Pf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((uf(_a(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function Qf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;n=q+16|0;m=q;e=q+32|0;o=a+28|0;f=c[o>>2]|0;c[e>>2]=f;p=a+20|0;f=(c[p>>2]|0)-f|0;c[e+4>>2]=f;c[e+8>>2]=b;c[e+12>>2]=d;k=a+60|0;l=a+44|0;b=2;f=f+d|0;while(1){if(!(c[8415]|0)){c[n>>2]=c[k>>2];c[n+4>>2]=e;c[n+8>>2]=b;h=uf(ab(146,n|0)|0)|0}else{Xa(13,a|0);c[m>>2]=c[k>>2];c[m+4>>2]=e;c[m+8>>2]=b;h=uf(ab(146,m|0)|0)|0;sa(0)}if((f|0)==(h|0)){f=6;break}if((h|0)<0){f=8;break}f=f-h|0;g=c[e+4>>2]|0;if(h>>>0<=g>>>0)if((b|0)==2){c[o>>2]=(c[o>>2]|0)+h;j=g;b=2}else j=g;else{j=c[l>>2]|0;c[o>>2]=j;c[p>>2]=j;j=c[e+12>>2]|0;h=h-g|0;e=e+8|0;b=b+-1|0}c[e>>2]=(c[e>>2]|0)+h;c[e+4>>2]=j-h}if((f|0)==6){n=c[l>>2]|0;c[a+16>>2]=n+(c[a+48>>2]|0);a=n;c[o>>2]=a;c[p>>2]=a}else if((f|0)==8){c[a+16>>2]=0;c[o>>2]=0;c[p>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}i=q;return d|0}function Rf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g;c[b+36>>2]=3;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,(Pa(54,f|0)|0)!=0):0)a[b+75>>0]=-1;f=Qf(b,d,e)|0;i=g;return f|0}function Sf(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function Tf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=_(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return ((e|0)!=0?b:0)|0}function Uf(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)d=0;else{f=d;e=b;while(1){b=a[e>>0]|0;d=a[c>>0]|0;if(b<<24>>24!=d<<24>>24)break;f=f+-1|0;if(!f){d=0;break a}else{e=e+1|0;c=c+1|0}}d=(b&255)-(d&255)|0}while(0);return d|0}function Vf(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function Wf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;g=a+28|0;if((c[b>>2]|0)>>>0>(c[g>>2]|0)>>>0?(cb[c[a+36>>2]&7](a,0,0)|0,(c[b>>2]|0)==0):0)b=-1;else{h=a+4|0;d=c[h>>2]|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0>>0)cb[c[a+40>>2]&7](a,d-f|0,1)|0;c[a+16>>2]=0;c[g>>2]=0;c[b>>2]=0;c[e>>2]=0;c[h>>2]=0;b=0}return b|0}function Xf(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+624|0;ca=ha+24|0;ea=ha+16|0;da=ha+588|0;Y=ha+576|0;ba=ha;V=ha+536|0;ga=ha+8|0;fa=ha+528|0;M=(e|0)!=0;N=V+40|0;U=N;V=V+39|0;W=ga+4|0;X=Y+12|0;Y=Y+11|0;Z=da;$=X;aa=$-Z|0;O=-2-Z|0;P=$+2|0;Q=ca+288|0;R=da+9|0;S=R;T=da+8|0;m=0;w=f;n=0;f=0;a:while(1){do if((m|0)>-1)if((n|0)>(2147483647-m|0)){c[(tf()|0)>>2]=75;m=-1;break}else{m=n+m|0;break}while(0);n=a[w>>0]|0;if(!(n<<24>>24)){L=245;break}else o=w;b:while(1){switch(n<<24>>24){case 37:{n=o;L=9;break b}case 0:{n=o;break b}default:{}}K=o+1|0;n=a[K>>0]|0;o=K}c:do if((L|0)==9)while(1){L=0;if((a[n+1>>0]|0)!=37)break c;o=o+1|0;n=n+2|0;if((a[n>>0]|0)==37)L=9;else break}while(0);y=o-w|0;if(M?(c[e>>2]&32|0)==0:0)Ff(w,y,e)|0;if((o|0)!=(w|0)){w=n;n=y;continue}r=n+1|0;o=a[r>>0]|0;p=(o<<24>>24)+-48|0;if(p>>>0<10){K=(a[n+2>>0]|0)==36;r=K?n+3|0:r;o=a[r>>0]|0;u=K?p:-1;f=K?1:f}else u=-1;n=o<<24>>24;d:do if((n&-32|0)==32){p=0;while(1){if(!(1<>24)+-32|p;r=r+1|0;o=a[r>>0]|0;n=o<<24>>24;if((n&-32|0)!=32){s=p;n=r;break}}}else{s=0;n=r}while(0);do if(o<<24>>24==42){p=n+1|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+2>>0]|0)==36:0){c[l+(o<<2)>>2]=10;f=1;n=n+3|0;o=c[j+((a[p>>0]|0)+-48<<3)>>2]|0}else{if(f){m=-1;break a}if(!M){x=s;n=p;f=0;K=0;break}f=(c[g>>2]|0)+(4-1)&~(4-1);o=c[f>>2]|0;c[g>>2]=f+4;f=0;n=p}if((o|0)<0){x=s|8192;K=0-o|0}else{x=s;K=o}}else{p=(o<<24>>24)+-48|0;if(p>>>0<10){o=0;do{o=(o*10|0)+p|0;n=n+1|0;p=(a[n>>0]|0)+-48|0}while(p>>>0<10);if((o|0)<0){m=-1;break a}else{x=s;K=o}}else{x=s;K=0}}while(0);e:do if((a[n>>0]|0)==46){p=n+1|0;o=a[p>>0]|0;if(o<<24>>24!=42){r=(o<<24>>24)+-48|0;if(r>>>0<10){n=p;o=0}else{n=p;r=0;break}while(1){o=(o*10|0)+r|0;n=n+1|0;r=(a[n>>0]|0)+-48|0;if(r>>>0>=10){r=o;break e}}}p=n+2|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+3>>0]|0)==36:0){c[l+(o<<2)>>2]=10;n=n+4|0;r=c[j+((a[p>>0]|0)+-48<<3)>>2]|0;break}if(f){m=-1;break a}if(M){n=(c[g>>2]|0)+(4-1)&~(4-1);r=c[n>>2]|0;c[g>>2]=n+4;n=p}else{n=p;r=0}}else r=-1;while(0);t=0;while(1){o=(a[n>>0]|0)+-65|0;if(o>>>0>57){m=-1;break a}p=n+1|0;o=a[42554+(t*58|0)+o>>0]|0;s=o&255;if((s+-1|0)>>>0<8){n=p;t=s}else{J=p;break}}if(!(o<<24>>24)){m=-1;break}p=(u|0)>-1;do if(o<<24>>24==19)if(p){m=-1;break a}else L=52;else{if(p){c[l+(u<<2)>>2]=s;H=j+(u<<3)|0;I=c[H+4>>2]|0;L=ba;c[L>>2]=c[H>>2];c[L+4>>2]=I;L=52;break}if(!M){m=0;break a}_f(ba,s,g)}while(0);if((L|0)==52?(L=0,!M):0){w=J;n=y;continue}u=a[n>>0]|0;u=(t|0)!=0&(u&15|0)==3?u&-33:u;p=x&-65537;I=(x&8192|0)==0?x:p;f:do switch(u|0){case 110:switch(t|0){case 0:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 1:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 2:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}case 3:{b[c[ba>>2]>>1]=m;w=J;n=y;continue a}case 4:{a[c[ba>>2]>>0]=m;w=J;n=y;continue a}case 6:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 7:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}default:{w=J;n=y;continue a}}case 112:{t=I|8;r=r>>>0>8?r:8;u=120;L=64;break}case 88:case 120:{t=I;L=64;break}case 111:{p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;if((o|0)==0&(p|0)==0)n=N;else{n=N;do{n=n+-1|0;a[n>>0]=o&7|48;o=sg(o|0,p|0,3)|0;p=C}while(!((o|0)==0&(p|0)==0))}if(!(I&8)){o=I;t=0;s=43034;L=77}else{t=U-n+1|0;o=I;r=(r|0)<(t|0)?t:r;t=0;s=43034;L=77}break}case 105:case 100:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;if((o|0)<0){n=og(0,0,n|0,o|0)|0;o=C;p=ba;c[p>>2]=n;c[p+4>>2]=o;p=1;s=43034;L=76;break f}if(!(I&2048)){s=I&1;p=s;s=(s|0)==0?43034:43036;L=76}else{p=1;s=43035;L=76}break}case 117:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;p=0;s=43034;L=76;break}case 99:{a[V>>0]=c[ba>>2];w=V;o=1;t=0;u=43034;n=N;break}case 109:{n=sf(c[(tf()|0)>>2]|0)|0;L=82;break}case 115:{n=c[ba>>2]|0;n=(n|0)!=0?n:43044;L=82;break}case 67:{c[ga>>2]=c[ba>>2];c[W>>2]=0;c[ba>>2]=ga;r=-1;L=86;break}case 83:{if(!r){ag(e,32,K,0,I);n=0;L=98}else L=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{q=+h[ba>>3];c[ea>>2]=0;h[k>>3]=q;if((c[k+4>>2]|0)>=0)if(!(I&2048)){H=I&1;G=H;H=(H|0)==0?43052:43057}else{G=1;H=43054}else{q=-q;G=1;H=43051}h[k>>3]=q;F=c[k+4>>2]&2146435072;do if(F>>>0<2146435072|(F|0)==2146435072&0<0){v=+xf(q,ea)*2.0;o=v!=0.0;if(o)c[ea>>2]=(c[ea>>2]|0)+-1;D=u|32;if((D|0)==97){w=u&32;y=(w|0)==0?H:H+9|0;x=G|2;n=12-r|0;do if(!(r>>>0>11|(n|0)==0)){q=8.0;do{n=n+-1|0;q=q*16.0}while((n|0)!=0);if((a[y>>0]|0)==45){q=-(q+(-v-q));break}else{q=v+q-q;break}}else q=v;while(0);o=c[ea>>2]|0;n=(o|0)<0?0-o|0:o;n=$f(n,((n|0)<0)<<31>>31,X)|0;if((n|0)==(X|0)){a[Y>>0]=48;n=Y}a[n+-1>>0]=(o>>31&2)+43;t=n+-2|0;a[t>>0]=u+15;s=(r|0)<1;p=(I&8|0)==0;o=da;while(1){H=~~q;n=o+1|0;a[o>>0]=d[43018+H>>0]|w;q=(q-+(H|0))*16.0;do if((n-Z|0)==1){if(p&(s&q==0.0))break;a[n>>0]=46;n=o+2|0}while(0);if(!(q!=0.0))break;else o=n}r=(r|0)!=0&(O+n|0)<(r|0)?P+r-t|0:aa-t+n|0;p=r+x|0;ag(e,32,K,p,I);if(!(c[e>>2]&32))Ff(y,x,e)|0;ag(e,48,K,p,I^65536);n=n-Z|0;if(!(c[e>>2]&32))Ff(da,n,e)|0;o=$-t|0;ag(e,48,r-(n+o)|0,0,0);if(!(c[e>>2]&32))Ff(t,o,e)|0;ag(e,32,K,p,I^8192);n=(p|0)<(K|0)?K:p;break}n=(r|0)<0?6:r;if(o){o=(c[ea>>2]|0)+-28|0;c[ea>>2]=o;q=v*268435456.0}else{q=v;o=c[ea>>2]|0}F=(o|0)<0?ca:Q;E=F;o=F;do{B=~~q>>>0;c[o>>2]=B;o=o+4|0;q=(q-+(B>>>0))*1.0e9}while(q!=0.0);p=o;o=c[ea>>2]|0;if((o|0)>0){s=F;while(1){t=(o|0)>29?29:o;r=p+-4|0;do if(r>>>0>>0)r=s;else{o=0;do{B=qg(c[r>>2]|0,0,t|0)|0;B=rg(B|0,C|0,o|0,0)|0;o=C;A=Cg(B|0,o|0,1e9,0)|0;c[r>>2]=A;o=Bg(B|0,o|0,1e9,0)|0;r=r+-4|0}while(r>>>0>=s>>>0);if(!o){r=s;break}r=s+-4|0;c[r>>2]=o}while(0);while(1){if(p>>>0<=r>>>0)break;o=p+-4|0;if(!(c[o>>2]|0))p=o;else break}o=(c[ea>>2]|0)-t|0;c[ea>>2]=o;if((o|0)>0)s=r;else break}}else r=F;if((o|0)<0){y=((n+25|0)/9|0)+1|0;z=(D|0)==102;w=r;while(1){x=0-o|0;x=(x|0)>9?9:x;do if(w>>>0

>>0){o=(1<>>x;r=0;t=w;do{B=c[t>>2]|0;c[t>>2]=(B>>>x)+r;r=_(B&o,s)|0;t=t+4|0}while(t>>>0

>>0);o=(c[w>>2]|0)==0?w+4|0:w;if(!r){r=o;break}c[p>>2]=r;r=o;p=p+4|0}else r=(c[w>>2]|0)==0?w+4|0:w;while(0);o=z?F:r;p=(p-o>>2|0)>(y|0)?o+(y<<2)|0:p;o=(c[ea>>2]|0)+x|0;c[ea>>2]=o;if((o|0)>=0){w=r;break}else w=r}}else w=r;do if(w>>>0

>>0){o=(E-w>>2)*9|0;s=c[w>>2]|0;if(s>>>0<10)break;else r=10;do{r=r*10|0;o=o+1|0}while(s>>>0>=r>>>0)}else o=0;while(0);A=(D|0)==103;B=(n|0)!=0;r=n-((D|0)!=102?o:0)+((B&A)<<31>>31)|0;if((r|0)<(((p-E>>2)*9|0)+-9|0)){t=r+9216|0;z=(t|0)/9|0;r=F+(z+-1023<<2)|0;t=((t|0)%9|0)+1|0;if((t|0)<9){s=10;do{s=s*10|0;t=t+1|0}while((t|0)!=9)}else s=10;x=c[r>>2]|0;y=(x>>>0)%(s>>>0)|0;if((y|0)==0?(F+(z+-1022<<2)|0)==(p|0):0)s=w;else L=163;do if((L|0)==163){L=0;v=(((x>>>0)/(s>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;t=(s|0)/2|0;do if(y>>>0>>0)q=.5;else{if((y|0)==(t|0)?(F+(z+-1022<<2)|0)==(p|0):0){q=1.0;break}q=1.5}while(0);do if(G){if((a[H>>0]|0)!=45)break;v=-v;q=-q}while(0);t=x-y|0;c[r>>2]=t;if(!(v+q!=v)){s=w;break}D=t+s|0;c[r>>2]=D;if(D>>>0>999999999){o=w;while(1){s=r+-4|0;c[r>>2]=0;if(s>>>0>>0){o=o+-4|0;c[o>>2]=0}D=(c[s>>2]|0)+1|0;c[s>>2]=D;if(D>>>0>999999999)r=s;else{w=o;r=s;break}}}o=(E-w>>2)*9|0;t=c[w>>2]|0;if(t>>>0<10){s=w;break}else s=10;do{s=s*10|0;o=o+1|0}while(t>>>0>=s>>>0);s=w}while(0);D=r+4|0;w=s;p=p>>>0>D>>>0?D:p}y=0-o|0;while(1){if(p>>>0<=w>>>0){z=0;D=p;break}r=p+-4|0;if(!(c[r>>2]|0))p=r;else{z=1;D=p;break}}do if(A){n=(B&1^1)+n|0;if((n|0)>(o|0)&(o|0)>-5){u=u+-1|0;n=n+-1-o|0}else{u=u+-2|0;n=n+-1|0}p=I&8;if(p)break;do if(z){p=c[D+-4>>2]|0;if(!p){r=9;break}if(!((p>>>0)%10|0)){s=10;r=0}else{r=0;break}do{s=s*10|0;r=r+1|0}while(((p>>>0)%(s>>>0)|0|0)==0)}else r=9;while(0);p=((D-E>>2)*9|0)+-9|0;if((u|32|0)==102){p=p-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}else{p=p+o-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}}else p=I&8;while(0);x=n|p;s=(x|0)!=0&1;t=(u|32|0)==102;if(t){o=(o|0)>0?o:0;u=0}else{r=(o|0)<0?y:o;r=$f(r,((r|0)<0)<<31>>31,X)|0;if(($-r|0)<2)do{r=r+-1|0;a[r>>0]=48}while(($-r|0)<2);a[r+-1>>0]=(o>>31&2)+43;E=r+-2|0;a[E>>0]=u;o=$-E|0;u=E}y=G+1+n+s+o|0;ag(e,32,K,y,I);if(!(c[e>>2]&32))Ff(H,G,e)|0;ag(e,48,K,y,I^65536);do if(t){r=w>>>0>F>>>0?F:w;o=r;do{p=$f(c[o>>2]|0,0,R)|0;do if((o|0)==(r|0)){if((p|0)!=(R|0))break;a[T>>0]=48;p=T}else{if(p>>>0<=da>>>0)break;do{p=p+-1|0;a[p>>0]=48}while(p>>>0>da>>>0)}while(0);if(!(c[e>>2]&32))Ff(p,S-p|0,e)|0;o=o+4|0}while(o>>>0<=F>>>0);do if(x){if(c[e>>2]&32)break;Ff(43086,1,e)|0}while(0);if((n|0)>0&o>>>0>>0){p=o;while(1){o=$f(c[p>>2]|0,0,R)|0;if(o>>>0>da>>>0)do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0);if(!(c[e>>2]&32))Ff(o,(n|0)>9?9:n,e)|0;p=p+4|0;o=n+-9|0;if(!((n|0)>9&p>>>0>>0)){n=o;break}else n=o}}ag(e,48,n+9|0,9,0)}else{t=z?D:w+4|0;if((n|0)>-1){s=(p|0)==0;r=w;do{o=$f(c[r>>2]|0,0,R)|0;if((o|0)==(R|0)){a[T>>0]=48;o=T}do if((r|0)==(w|0)){p=o+1|0;if(!(c[e>>2]&32))Ff(o,1,e)|0;if(s&(n|0)<1){o=p;break}if(c[e>>2]&32){o=p;break}Ff(43086,1,e)|0;o=p}else{if(o>>>0<=da>>>0)break;do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0)}while(0);p=S-o|0;if(!(c[e>>2]&32))Ff(o,(n|0)>(p|0)?p:n,e)|0;n=n-p|0;r=r+4|0}while(r>>>0>>0&(n|0)>-1)}ag(e,48,n+18|0,18,0);if(c[e>>2]&32)break;Ff(u,$-u|0,e)|0}while(0);ag(e,32,K,y,I^8192);n=(y|0)<(K|0)?K:y}else{t=(u&32|0)!=0;s=q!=q|0.0!=0.0;o=s?0:G;r=o+3|0;ag(e,32,K,r,p);n=c[e>>2]|0;if(!(n&32)){Ff(H,o,e)|0;n=c[e>>2]|0}if(!(n&32))Ff(s?(t?43078:43082):t?43070:43074,3,e)|0;ag(e,32,K,r,I^8192);n=(r|0)<(K|0)?K:r}while(0);w=J;continue a}default:{p=I;o=r;t=0;u=43034;n=N}}while(0);g:do if((L|0)==64){p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;s=u&32;if(!((o|0)==0&(p|0)==0)){n=N;do{n=n+-1|0;a[n>>0]=d[43018+(o&15)>>0]|s;o=sg(o|0,p|0,4)|0;p=C}while(!((o|0)==0&(p|0)==0));L=ba;if((t&8|0)==0|(c[L>>2]|0)==0&(c[L+4>>2]|0)==0){o=t;t=0;s=43034;L=77}else{o=t;t=2;s=43034+(u>>4)|0;L=77}}else{n=N;o=t;t=0;s=43034;L=77}}else if((L|0)==76){n=$f(n,o,N)|0;o=I;t=p;L=77}else if((L|0)==82){L=0;I=Tf(n,0,r)|0;H=(I|0)==0;w=n;o=H?r:I-n|0;t=0;u=43034;n=H?n+r|0:I}else if((L|0)==86){L=0;o=0;n=0;s=c[ba>>2]|0;while(1){p=c[s>>2]|0;if(!p)break;n=Af(fa,p)|0;if((n|0)<0|n>>>0>(r-o|0)>>>0)break;o=n+o|0;if(r>>>0>o>>>0)s=s+4|0;else break}if((n|0)<0){m=-1;break a}ag(e,32,K,o,I);if(!o){n=0;L=98}else{p=0;r=c[ba>>2]|0;while(1){n=c[r>>2]|0;if(!n){n=o;L=98;break g}n=Af(fa,n)|0;p=n+p|0;if((p|0)>(o|0)){n=o;L=98;break g}if(!(c[e>>2]&32))Ff(fa,n,e)|0;if(p>>>0>=o>>>0){n=o;L=98;break}else r=r+4|0}}}while(0);if((L|0)==98){L=0;ag(e,32,K,n,I^8192);w=J;n=(K|0)>(n|0)?K:n;continue}if((L|0)==77){L=0;p=(r|0)>-1?o&-65537:o;o=ba;o=(c[o>>2]|0)!=0|(c[o+4>>2]|0)!=0;if((r|0)!=0|o){o=(o&1^1)+(U-n)|0;w=n;o=(r|0)>(o|0)?r:o;u=s;n=N}else{w=N;o=0;u=s;n=N}}s=n-w|0;o=(o|0)<(s|0)?s:o;r=t+o|0;n=(K|0)<(r|0)?r:K;ag(e,32,n,r,p);if(!(c[e>>2]&32))Ff(u,t,e)|0;ag(e,48,n,r,p^65536);ag(e,48,o,s,0);if(!(c[e>>2]&32))Ff(w,s,e)|0;ag(e,32,n,r,p^8192);w=J}h:do if((L|0)==245)if(!e)if(f){m=1;while(1){f=c[l+(m<<2)>>2]|0;if(!f)break;_f(j+(m<<3)|0,f,g);m=m+1|0;if((m|0)>=10){m=1;break h}}if((m|0)<10)while(1){if(c[l+(m<<2)>>2]|0){m=-1;break h}m=m+1|0;if((m|0)>=10){m=1;break}}else m=1}else m=0;while(0);i=ha;return m|0}function Yf(a){a=a|0;if(!(c[a+68>>2]|0))Mf(a);return}function Zf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;tg(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function _f(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function $f(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)while(1){e=Cg(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=Bg(b|0,c|0,10,0)|0;if(c>>>0>9|(c|0)==9&b>>>0>4294967295){b=e;c=C}else{b=e;break}}if(b)while(1){d=d+-1|0;a[d>>0]=(b>>>0)%10|0|48;if(b>>>0<10)break;else b=(b>>>0)/10|0}return d|0}function ag(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+256|0;h=j;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;pg(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){e=d-e|0;do{if(g){Ff(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=e&255;else break}else if(!g)break;Ff(h,f,a)|0}while(0);i=j;return}function bg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;i=c[8514]|0;d=i>>>a;if(d&3){a=(d&1^1)+a|0;e=a<<1;d=34096+(e<<2)|0;e=34096+(e+2<<2)|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[8518]|0)>>>0)wa();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else wa()}else c[8514]=i&~(1<>2]=M|3;M=f+(M|4)|0;c[M>>2]=c[M>>2]|1;M=g;return M|0}h=c[8516]|0;if(o>>>0>h>>>0){if(d){e=2<>>12&16;e=e>>>j;f=e>>>5&8;e=e>>>f;g=e>>>2&4;e=e>>>g;d=e>>>1&2;e=e>>>d;a=e>>>1&1;a=(f|j|g|d|a)+(e>>>a)|0;e=a<<1;d=34096+(e<<2)|0;e=34096+(e+2<<2)|0;g=c[e>>2]|0;j=g+8|0;f=c[j>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[8518]|0)>>>0)wa();b=f+12|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;c[e>>2]=f;k=c[8516]|0;break}else wa()}else{c[8514]=i&~(1<>2]=o|3;i=g+o|0;c[g+(o|4)>>2]=h|1;c[g+M>>2]=h;if(k){f=c[8519]|0;d=k>>>3;b=d<<1;e=34096+(b<<2)|0;a=c[8514]|0;d=1<>2]|0;if(b>>>0<(c[8518]|0)>>>0)wa();else{l=a;m=b}}else{c[8514]=a|d;l=34096+(b+2<<2)|0;m=e}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=e}c[8516]=h;c[8519]=i;M=j;return M|0}a=c[8515]|0;if(a){d=(a&0-a)+-1|0;L=d>>>12&16;d=d>>>L;K=d>>>5&8;d=d>>>K;M=d>>>2&4;d=d>>>M;a=d>>>1&2;d=d>>>a;e=d>>>1&1;e=c[34360+((K|L|M|a|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;a=e;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b){j=d;break}}a=(c[b+4>>2]&-8)-o|0;M=a>>>0>>0;d=M?a:d;a=b;e=M?b:e}g=c[8518]|0;if(e>>>0>>0)wa();i=e+o|0;if(e>>>0>=i>>>0)wa();h=c[e+24>>2]|0;d=c[e+12>>2]|0;do if((d|0)==(e|0)){a=e+20|0;b=c[a>>2]|0;if(!b){a=e+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;f=c[d>>2]|0;if(f){b=f;a=d;continue}d=b+16|0;f=c[d>>2]|0;if(!f)break;else{b=f;a=d}}if(a>>>0>>0)wa();else{c[a>>2]=0;n=b;break}}else{f=c[e+8>>2]|0;if(f>>>0>>0)wa();b=f+12|0;if((c[b>>2]|0)!=(e|0))wa();a=d+8|0;if((c[a>>2]|0)==(e|0)){c[b>>2]=d;c[a>>2]=f;n=d;break}else wa()}while(0);do if(h){b=c[e+28>>2]|0;a=34360+(b<<2)|0;if((e|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[8515]=c[8515]&~(1<>>0<(c[8518]|0)>>>0)wa();b=h+16|0;if((c[b>>2]|0)==(e|0))c[b>>2]=n;else c[h+20>>2]=n;if(!n)break}a=c[8518]|0;if(n>>>0>>0)wa();c[n+24>>2]=h;b=c[e+16>>2]|0;do if(b)if(b>>>0>>0)wa();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[e+20>>2]|0;if(b)if(b>>>0<(c[8518]|0)>>>0)wa();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(j>>>0<16){M=j+o|0;c[e+4>>2]=M|3;M=e+(M+4)|0;c[M>>2]=c[M>>2]|1}else{c[e+4>>2]=o|3;c[e+(o|4)>>2]=j|1;c[e+(j+o)>>2]=j;b=c[8516]|0;if(b){g=c[8519]|0;d=b>>>3;b=d<<1;f=34096+(b<<2)|0;a=c[8514]|0;d=1<>2]|0;if(a>>>0<(c[8518]|0)>>>0)wa();else{p=b;q=a}}else{c[8514]=a|d;p=34096+(b+2<<2)|0;q=f}c[p>>2]=g;c[q+12>>2]=g;c[g+8>>2]=q;c[g+12>>2]=f}c[8516]=j;c[8519]=i}M=e+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=c[8515]|0;if(l){d=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)k=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;k=14-(p|q|k)+(v<>>15)|0;k=m>>>(k+7|0)&1|k<<1}else k=0;a=c[34360+(k<<2)>>2]|0;a:do if(!a){f=0;a=0;v=86}else{h=d;f=0;i=m<<((k|0)==31?0:25-(k>>>1)|0);j=a;a=0;while(1){g=c[j+4>>2]&-8;d=g-m|0;if(d>>>0>>0)if((g|0)==(m|0)){g=j;a=j;v=90;break a}else a=j;else d=h;v=c[j+20>>2]|0;j=c[j+16+(i>>>31<<2)>>2]|0;f=(v|0)==0|(v|0)==(j|0)?f:v;if(!j){v=86;break}else{h=d;i=i<<1}}}while(0);if((v|0)==86){if((f|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;f=a>>>1&1;f=c[34360+((l|n|p|q|f)+(a>>>f)<<2)>>2]|0;a=0}if(!f){i=d;j=a}else{g=f;v=90}}if((v|0)==90)while(1){v=0;q=(c[g+4>>2]&-8)-m|0;f=q>>>0>>0;d=f?q:d;a=f?g:a;f=c[g+16>>2]|0;if(f){g=f;v=90;continue}g=c[g+20>>2]|0;if(!g){i=d;j=a;break}else v=90}if((j|0)!=0?i>>>0<((c[8516]|0)-m|0)>>>0:0){f=c[8518]|0;if(j>>>0>>0)wa();h=j+m|0;if(j>>>0>=h>>>0)wa();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){o=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0>>0)wa();else{c[a>>2]=0;o=b;break}}else{e=c[j+8>>2]|0;if(e>>>0>>0)wa();b=e+12|0;if((c[b>>2]|0)!=(j|0))wa();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;o=d;break}else wa()}while(0);do if(g){b=c[j+28>>2]|0;a=34360+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=o;if(!o){c[8515]=c[8515]&~(1<>>0<(c[8518]|0)>>>0)wa();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=o;else c[g+20>>2]=o;if(!o)break}a=c[8518]|0;if(o>>>0>>0)wa();c[o+24>>2]=g;b=c[j+16>>2]|0;do if(b)if(b>>>0>>0)wa();else{c[o+16>>2]=b;c[b+24>>2]=o;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[8518]|0)>>>0)wa();else{c[o+20>>2]=b;c[b+24>>2]=o;break}}while(0);b:do if(i>>>0>=16){c[j+4>>2]=m|3;c[j+(m|4)>>2]=i|1;c[j+(i+m)>>2]=i;b=i>>>3;if(i>>>0<256){a=b<<1;e=34096+(a<<2)|0;d=c[8514]|0;b=1<>2]|0;if(a>>>0<(c[8518]|0)>>>0)wa();else{s=b;t=a}}else{c[8514]=d|b;s=34096+(a+2<<2)|0;t=e}c[s>>2]=h;c[t+12>>2]=h;c[j+(m+8)>>2]=t;c[j+(m+12)>>2]=e;break}b=i>>>8;if(b)if(i>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;e=14-(K|L|e)+(M<>>15)|0;e=i>>>(e+7|0)&1|e<<1}else e=0;b=34360+(e<<2)|0;c[j+(m+28)>>2]=e;c[j+(m+20)>>2]=0;c[j+(m+16)>>2]=0;a=c[8515]|0;d=1<>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(i|0)){y=d;break c}else{e=e<<1;b=d}}if(a>>>0<(c[8518]|0)>>>0)wa();else{c[a>>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break b}}else y=b;while(0);b=y+8|0;a=c[b>>2]|0;M=c[8518]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[j+(m+8)>>2]=a;c[j+(m+12)>>2]=y;c[j+(m+24)>>2]=0;break}else wa()}else{M=i+m|0;c[j+4>>2]=M|3;M=j+(M+4)|0;c[M>>2]=c[M>>2]|1}while(0);M=j+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);d=c[8516]|0;if(d>>>0>=q>>>0){b=d-q|0;a=c[8519]|0;if(b>>>0>15){c[8519]=a+q;c[8516]=b;c[a+(q+4)>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=q|3}else{c[8516]=0;c[8519]=0;c[a+4>>2]=d|3;M=a+(d+4)|0;c[M>>2]=c[M>>2]|1}M=a+8|0;return M|0}a=c[8517]|0;if(a>>>0>q>>>0){L=a-q|0;c[8517]=L;M=c[8520]|0;c[8520]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(c[8632]|0)){a=Ka(30)|0;if(!(a+-1&a)){c[8634]=a;c[8633]=a;c[8635]=-1;c[8636]=-1;c[8637]=0;c[8625]=0;c[8632]=(Ya(0)|0)&-16^1431655768;break}else wa()}while(0);j=q+48|0;i=c[8634]|0;k=q+47|0;h=i+k|0;i=0-i|0;l=h&i;if(l>>>0<=q>>>0){M=0;return M|0}a=c[8624]|0;if((a|0)!=0?(t=c[8622]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(c[8625]&4)){a=c[8520]|0;e:do if(a){f=34504;while(1){d=c[f>>2]|0;if(d>>>0<=a>>>0?(r=f+4|0,(d+(c[r>>2]|0)|0)>>>0>a>>>0):0){g=f;a=r;break}f=c[f+8>>2]|0;if(!f){v=174;break e}}d=h-(c[8517]|0)&i;if(d>>>0<2147483647){f=Fa(d|0)|0;y=(f|0)==((c[g>>2]|0)+(c[a>>2]|0)|0);a=y?d:0;if(y){if((f|0)!=(-1|0)){w=f;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){g=Fa(0)|0;if((g|0)!=(-1|0)){a=g;d=c[8633]|0;f=d+-1|0;if(!(f&a))d=l;else d=l-a+(f+a&0-d)|0;a=c[8622]|0;f=a+d|0;if(d>>>0>q>>>0&d>>>0<2147483647){y=c[8624]|0;if((y|0)!=0?f>>>0<=a>>>0|f>>>0>y>>>0:0){a=0;break}f=Fa(d|0)|0;y=(f|0)==(g|0);a=y?d:0;if(y){w=g;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){g=0-d|0;do if(j>>>0>d>>>0&(d>>>0<2147483647&(f|0)!=(-1|0))?(u=c[8634]|0,u=k-d+u&0-u,u>>>0<2147483647):0)if((Fa(u|0)|0)==(-1|0)){Fa(g|0)|0;break f}else{d=u+d|0;break}while(0);if((f|0)!=(-1|0)){w=f;p=d;v=194;break d}}while(0);c[8625]=c[8625]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=Fa(l|0)|0,x=Fa(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(c[8622]|0)+p|0;c[8622]=a;if(a>>>0>(c[8623]|0)>>>0)c[8623]=a;h=c[8520]|0;g:do if(h){g=34504;do{a=c[g>>2]|0;d=g+4|0;f=c[d>>2]|0;if((w|0)==(a+f|0)){B=a;C=d;D=f;E=g;v=204;break}g=c[g+8>>2]|0}while((g|0)!=0);if(((v|0)==204?(c[E+12>>2]&8|0)==0:0)?h>>>0>>0&h>>>0>=B>>>0:0){c[C>>2]=D+p;M=(c[8517]|0)+p|0;L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;c[8520]=h+L;c[8517]=K;c[h+(L+4)>>2]=K|1;c[h+(M+4)>>2]=40;c[8521]=c[8636];break}a=c[8518]|0;if(w>>>0>>0){c[8518]=w;a=w}d=w+p|0;g=34504;while(1){if((c[g>>2]|0)==(d|0)){f=g;d=g;v=212;break}g=c[g+8>>2]|0;if(!g){d=34504;break}}if((v|0)==212)if(!(c[d+12>>2]&8)){c[f>>2]=w;n=d+4|0;c[n>>2]=(c[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;k=w+(p+8)|0;k=(k&7|0)==0?0:0-k&7;b=w+(k+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;c[w+(n+4)>>2]=q|3;h:do if((b|0)!=(h|0)){if((b|0)==(c[8519]|0)){M=(c[8516]|0)+l|0;c[8516]=M;c[8519]=o;c[w+(m+4)>>2]=M|1;c[w+(M+m)>>2]=M;break}i=p+4|0;d=c[w+(i+k)>>2]|0;if((d&3|0)==1){j=d&-8;g=d>>>3;i:do if(d>>>0>=256){h=c[w+((k|24)+p)>>2]|0;e=c[w+(p+12+k)>>2]|0;do if((e|0)==(b|0)){f=k|16;e=w+(i+f)|0;d=c[e>>2]|0;if(!d){e=w+(f+p)|0;d=c[e>>2]|0;if(!d){J=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)wa();else{c[e>>2]=0;J=d;break}}else{f=c[w+((k|8)+p)>>2]|0;if(f>>>0>>0)wa();a=f+12|0;if((c[a>>2]|0)!=(b|0))wa();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;J=e;break}else wa()}while(0);if(!h)break;a=c[w+(p+28+k)>>2]|0;d=34360+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(h>>>0<(c[8518]|0)>>>0)wa();a=h+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=J;else c[h+20>>2]=J;if(!J)break i}else{c[d>>2]=J;if(J)break;c[8515]=c[8515]&~(1<>>0>>0)wa();c[J+24>>2]=h;b=k|16;a=c[w+(b+p)>>2]|0;do if(a)if(a>>>0>>0)wa();else{c[J+16>>2]=a;c[a+24>>2]=J;break}while(0);b=c[w+(i+b)>>2]|0;if(!b)break;if(b>>>0<(c[8518]|0)>>>0)wa();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{e=c[w+((k|8)+p)>>2]|0;f=c[w+(p+12+k)>>2]|0;d=34096+(g<<1<<2)|0;do if((e|0)!=(d|0)){if(e>>>0>>0)wa();if((c[e+12>>2]|0)==(b|0))break;wa()}while(0);if((f|0)==(e|0)){c[8514]=c[8514]&~(1<>>0>>0)wa();a=f+8|0;if((c[a>>2]|0)==(b|0)){F=a;break}wa()}while(0);c[e+12>>2]=f;c[F>>2]=e}while(0);b=w+((j|k)+p)|0;f=j+l|0}else f=l;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[w+(m+4)>>2]=f|1;c[w+(f+m)>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;e=34096+(a<<2)|0;d=c[8514]|0;b=1<>2]|0;if(a>>>0>=(c[8518]|0)>>>0){K=b;L=a;break}wa()}while(0);c[K>>2]=o;c[L+12>>2]=o;c[w+(m+8)>>2]=L;c[w+(m+12)>>2]=e;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;e=14-(J|K|e)+(L<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=34360+(e<<2)|0;c[w+(m+28)>>2]=e;c[w+(m+20)>>2]=0;c[w+(m+16)>>2]=0;a=c[8515]|0;d=1<>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break}b=c[b>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(f|0)){M=d;break j}else{e=e<<1;b=d}}if(a>>>0<(c[8518]|0)>>>0)wa();else{c[a>>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=c[b>>2]|0;L=c[8518]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){c[a+12>>2]=o;c[b>>2]=o;c[w+(m+8)>>2]=a;c[w+(m+12)>>2]=M;c[w+(m+24)>>2]=0;break}else wa()}else{M=(c[8517]|0)+l|0;c[8517]=M;c[8520]=o;c[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else d=34504;while(1){a=c[d>>2]|0;if(a>>>0<=h>>>0?(b=c[d+4>>2]|0,e=a+b|0,e>>>0>h>>>0):0)break;d=c[d+8>>2]|0}f=a+(b+-39)|0;a=a+(b+-47+((f&7|0)==0?0:0-f&7))|0;f=h+16|0;a=a>>>0>>0?h:a;b=a+8|0;d=w+8|0;d=(d&7|0)==0?0:0-d&7;M=p+-40-d|0;c[8520]=w+d;c[8517]=M;c[w+(d+4)>>2]=M|1;c[w+(p+-36)>>2]=40;c[8521]=c[8636];d=a+4|0;c[d>>2]=27;c[b>>2]=c[8626];c[b+4>>2]=c[8627];c[b+8>>2]=c[8628];c[b+12>>2]=c[8629];c[8626]=w;c[8627]=p;c[8629]=0;c[8628]=b;b=a+28|0;c[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;c[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(h|0)){g=a-h|0;c[d>>2]=c[d>>2]&-2;c[h+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){a=b<<1;e=34096+(a<<2)|0;d=c[8514]|0;b=1<>2]|0;if(a>>>0<(c[8518]|0)>>>0)wa();else{G=b;H=a}}else{c[8514]=d|b;G=34096+(a+2<<2)|0;H=e}c[G>>2]=h;c[H+12>>2]=h;c[h+8>>2]=H;c[h+12>>2]=e;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;e=14-(K|L|e)+(M<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=34360+(e<<2)|0;c[h+28>>2]=e;c[h+20>>2]=0;c[f>>2]=0;b=c[8515]|0;a=1<>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}b=c[d>>2]|0;k:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(g|0)){I=d;break k}else{e=e<<1;b=d}}if(a>>>0<(c[8518]|0)>>>0)wa();else{c[a>>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;break g}}else I=b;while(0);b=I+8|0;a=c[b>>2]|0;M=c[8518]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=I;c[h+24>>2]=0;break}else wa()}}else{M=c[8518]|0;if((M|0)==0|w>>>0>>0)c[8518]=w;c[8626]=w;c[8627]=p;c[8629]=0;c[8523]=c[8632];c[8522]=-1;b=0;do{M=b<<1;L=34096+(M<<2)|0;c[34096+(M+3<<2)>>2]=L;c[34096+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;c[8520]=w+M;c[8517]=L;c[w+(M+4)>>2]=L|1;c[w+(p+-36)>>2]=40;c[8521]=c[8636]}while(0);b=c[8517]|0;if(b>>>0>q>>>0){L=b-q|0;c[8517]=L;M=c[8520]|0;c[8520]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}}c[(tf()|0)>>2]=12;M=0;return M|0}function cg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;i=c[8518]|0;if(b>>>0>>0)wa();d=c[a+-4>>2]|0;e=d&3;if((e|0)==1)wa();o=d&-8;q=a+(o+-8)|0;do if(!(d&1)){b=c[b>>2]|0;if(!e)return;j=-8-b|0;l=a+j|0;m=b+o|0;if(l>>>0>>0)wa();if((l|0)==(c[8519]|0)){b=a+(o+-4)|0;d=c[b>>2]|0;if((d&3|0)!=3){u=l;g=m;break}c[8516]=m;c[b>>2]=d&-2;c[a+(j+4)>>2]=m|1;c[q>>2]=m;return}f=b>>>3;if(b>>>0<256){e=c[a+(j+8)>>2]|0;d=c[a+(j+12)>>2]|0;b=34096+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0>>0)wa();if((c[e+12>>2]|0)!=(l|0))wa()}if((d|0)==(e|0)){c[8514]=c[8514]&~(1<>>0>>0)wa();b=d+8|0;if((c[b>>2]|0)==(l|0))h=b;else wa()}else h=d+8|0;c[e+12>>2]=d;c[h>>2]=e;u=l;g=m;break}h=c[a+(j+24)>>2]|0;e=c[a+(j+12)>>2]|0;do if((e|0)==(l|0)){d=a+(j+20)|0;b=c[d>>2]|0;if(!b){d=a+(j+16)|0;b=c[d>>2]|0;if(!b){k=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0>>0)wa();else{c[d>>2]=0;k=b;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0>>0)wa();b=f+12|0;if((c[b>>2]|0)!=(l|0))wa();d=e+8|0;if((c[d>>2]|0)==(l|0)){c[b>>2]=e;c[d>>2]=f;k=e;break}else wa()}while(0);if(h){b=c[a+(j+28)>>2]|0;d=34360+(b<<2)|0;if((l|0)==(c[d>>2]|0)){c[d>>2]=k;if(!k){c[8515]=c[8515]&~(1<>>0<(c[8518]|0)>>>0)wa();b=h+16|0;if((c[b>>2]|0)==(l|0))c[b>>2]=k;else c[h+20>>2]=k;if(!k){u=l;g=m;break}}d=c[8518]|0;if(k>>>0>>0)wa();c[k+24>>2]=h;b=c[a+(j+16)>>2]|0;do if(b)if(b>>>0>>0)wa();else{c[k+16>>2]=b;c[b+24>>2]=k;break}while(0);b=c[a+(j+20)>>2]|0;if(b)if(b>>>0<(c[8518]|0)>>>0)wa();else{c[k+20>>2]=b;c[b+24>>2]=k;u=l;g=m;break}else{u=l;g=m}}else{u=l;g=m}}else{u=b;g=o}while(0);if(u>>>0>=q>>>0)wa();b=a+(o+-4)|0;d=c[b>>2]|0;if(!(d&1))wa();if(!(d&2)){if((q|0)==(c[8520]|0)){t=(c[8517]|0)+g|0;c[8517]=t;c[8520]=u;c[u+4>>2]=t|1;if((u|0)!=(c[8519]|0))return;c[8519]=0;c[8516]=0;return}if((q|0)==(c[8519]|0)){t=(c[8516]|0)+g|0;c[8516]=t;c[8519]=u;c[u+4>>2]=t|1;c[u+t>>2]=t;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=c[a+(o+16)>>2]|0;b=c[a+(o|4)>>2]|0;do if((b|0)==(q|0)){d=a+(o+12)|0;b=c[d>>2]|0;if(!b){d=a+(o+8)|0;b=c[d>>2]|0;if(!b){p=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<(c[8518]|0)>>>0)wa();else{c[d>>2]=0;p=b;break}}else{d=c[a+o>>2]|0;if(d>>>0<(c[8518]|0)>>>0)wa();e=d+12|0;if((c[e>>2]|0)!=(q|0))wa();f=b+8|0;if((c[f>>2]|0)==(q|0)){c[e>>2]=b;c[f>>2]=d;p=b;break}else wa()}while(0);if(h){b=c[a+(o+20)>>2]|0;d=34360+(b<<2)|0;if((q|0)==(c[d>>2]|0)){c[d>>2]=p;if(!p){c[8515]=c[8515]&~(1<>>0<(c[8518]|0)>>>0)wa();b=h+16|0;if((c[b>>2]|0)==(q|0))c[b>>2]=p;else c[h+20>>2]=p;if(!p)break}d=c[8518]|0;if(p>>>0>>0)wa();c[p+24>>2]=h;b=c[a+(o+8)>>2]|0;do if(b)if(b>>>0>>0)wa();else{c[p+16>>2]=b;c[b+24>>2]=p;break}while(0);b=c[a+(o+12)>>2]|0;if(b)if(b>>>0<(c[8518]|0)>>>0)wa();else{c[p+20>>2]=b;c[b+24>>2]=p;break}}}else{e=c[a+o>>2]|0;d=c[a+(o|4)>>2]|0;b=34096+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0<(c[8518]|0)>>>0)wa();if((c[e+12>>2]|0)!=(q|0))wa()}if((d|0)==(e|0)){c[8514]=c[8514]&~(1<>>0<(c[8518]|0)>>>0)wa();b=d+8|0;if((c[b>>2]|0)==(q|0))n=b;else wa()}else n=d+8|0;c[e+12>>2]=d;c[n>>2]=e}while(0);c[u+4>>2]=g|1;c[u+g>>2]=g;if((u|0)==(c[8519]|0)){c[8516]=g;return}}else{c[b>>2]=d&-2;c[u+4>>2]=g|1;c[u+g>>2]=g}b=g>>>3;if(g>>>0<256){d=b<<1;f=34096+(d<<2)|0;e=c[8514]|0;b=1<>2]|0;if(d>>>0<(c[8518]|0)>>>0)wa();else{r=b;s=d}}else{c[8514]=e|b;r=34096+(d+2<<2)|0;s=f}c[r>>2]=u;c[s+12>>2]=u;c[u+8>>2]=s;c[u+12>>2]=f;return}b=g>>>8;if(b)if(g>>>0>16777215)f=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;b=34360+(f<<2)|0;c[u+28>>2]=f;c[u+20>>2]=0;c[u+16>>2]=0;d=c[8515]|0;e=1<>2]|0;b:do if((c[b+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=b+16+(f>>>31<<2)|0;e=c[d>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(g|0)){t=e;break b}else{f=f<<1;b=e}}if(d>>>0<(c[8518]|0)>>>0)wa();else{c[d>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;d=c[b>>2]|0;s=c[8518]|0;if(d>>>0>=s>>>0&t>>>0>=s>>>0){c[d+12>>2]=u;c[b>>2]=u;c[u+8>>2]=d;c[u+12>>2]=t;c[u+24>>2]=0;break}else wa()}else{c[8515]=d|e;c[b>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u}while(0);u=(c[8522]|0)+-1|0;c[8522]=u;if(!u)b=34512;else return;while(1){b=c[b>>2]|0;if(!b)break;else b=b+8|0}c[8522]=-1;return}function dg(b,d){b=b|0;d=d|0;if(!(a[d>>0]&1)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2]}else eg(b,c[d+8>>2]|0,c[d+4>>2]|0);return}function eg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>4294967279)rf(b);if(e>>>0<11){a[b>>0]=e<<1;b=b+1|0}else{g=e+16&-16;f=Me(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=e;b=f}tg(b|0,d|0,e|0)|0;a[b+e>>0]=0;return}function fg(b){b=b|0;if(a[b>>0]&1)Oe(c[b+8>>2]|0);return}function gg(b,d){b=b|0;d=d|0;var e=0,f=0;if((b|0)!=(d|0)){e=a[d>>0]|0;f=(e&1)==0;hg(b,f?d+1|0:c[d+8>>2]|0,f?(e&255)>>>1:c[d+4>>2]|0)|0}return b|0}function hg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=a[b>>0]|0;if(!(f&1))h=10;else{f=c[b>>2]|0;h=(f&-2)+-1|0;f=f&255}g=(f&1)==0;do if(h>>>0>=e>>>0){if(g)f=b+1|0;else f=c[b+8>>2]|0;ug(f|0,d|0,e|0)|0;a[f+e>>0]=0;if(!(a[b>>0]&1)){a[b>>0]=e<<1;break}else{c[b+4>>2]=e;break}}else{if(g)f=(f&255)>>>1;else f=c[b+4>>2]|0;lg(b,h,e-h|0,f,0,f,e,d)}while(0);return b|0}function ig(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a[b>>0]|0;g=(f&1)==0;if(g)f=(f&255)>>>1;else f=c[b+4>>2]|0;do if(f>>>0>=d>>>0)if(g){a[b+1+d>>0]=0;a[b>>0]=d<<1;break}else{a[(c[b+8>>2]|0)+d>>0]=0;c[b+4>>2]=d;break}else jg(b,d-f|0,e)|0;while(0);return}function jg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(d){f=a[b>>0]|0;if(!(f&1))g=10;else{f=c[b>>2]|0;g=(f&-2)+-1|0;f=f&255}if(!(f&1))h=(f&255)>>>1;else h=c[b+4>>2]|0;if((g-h|0)>>>0>>0){mg(b,g,d-g+h|0,h,h,0,0);f=a[b>>0]|0}if(!(f&1))g=b+1|0;else g=c[b+8>>2]|0;pg(g+h|0,e|0,d|0)|0;f=h+d|0;if(!(a[b>>0]&1))a[b>>0]=f<<1;else c[b+4>>2]=f;a[g+f>>0]=0}return b|0}function kg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=a[b>>0]|0;if(!(f&1))g=10;else{f=c[b>>2]|0;g=(f&-2)+-1|0;f=f&255}if(!(f&1))h=(f&255)>>>1;else h=c[b+4>>2]|0;if((g-h|0)>>>0>=e>>>0){if(e){if(!(f&1))g=b+1|0;else g=c[b+8>>2]|0;tg(g+h|0,d|0,e|0)|0;f=h+e|0;if(!(a[b>>0]&1))a[b>>0]=f<<1;else c[b+4>>2]=f;a[g+f>>0]=0}}else lg(b,g,e-g+h|0,h,h,0,e,d);return b|0}function lg(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;if((-18-d|0)>>>0>>0)rf(b);if(!(a[b>>0]&1))m=b+1|0;else m=c[b+8>>2]|0;if(d>>>0<2147483623){k=e+d|0;l=d<<1;k=k>>>0>>0?l:k;k=k>>>0<11?11:k+16&-16}else k=-17;l=Me(k)|0;if(g)tg(l|0,m|0,g|0)|0;if(i)tg(l+g|0,j|0,i|0)|0;e=f-h|0;if((e|0)!=(g|0))tg(l+(i+g)|0,m+(h+g)|0,e-g|0)|0;if((d|0)!=10)Oe(m);c[b+8>>2]=l;c[b>>2]=k|1;d=e+i|0;c[b+4>>2]=d;a[l+d>>0]=0;return}function mg(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;if((-17-d|0)>>>0>>0)rf(b);if(!(a[b>>0]&1))l=b+1|0;else l=c[b+8>>2]|0;if(d>>>0<2147483623){j=e+d|0;k=d<<1;j=j>>>0>>0?k:j;j=j>>>0<11?11:j+16&-16}else j=-17;k=Me(j)|0;if(g)tg(k|0,l|0,g|0)|0;e=f-h|0;if((e|0)!=(g|0))tg(k+(i+g)|0,l+(h+g)|0,e-g|0)|0;if((d|0)!=10)Oe(l);c[b+8>>2]=k;c[b>>2]=j|1;return}function ng(){}function og(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function pg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function qg(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>>0;return (C=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function sg(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<>>c-32|0}function tg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Ha(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function ug(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else tg(b,c,d)|0;return b|0}function vg(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<>c-32|0}function wg(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function xg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=_(e,f)|0;d=a>>>16;a=(c>>>16)+(_(e,d)|0)|0;e=b>>>16;b=_(e,f)|0;return (C=(a>>>16)+(_(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=og(j^a,i^b,j,i)|0;g=C;a=f^j;b=e^i;return og((Dg(h,g,og(f^c,e^d,f,e)|0,C,0)|0)^a,C^b,a,b)|0}function zg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=og(h^a,g^b,h,g)|0;b=C;Dg(a,b,og(l^d,k^e,l,k)|0,C,j)|0;e=og(c[j>>2]^h,c[j+4>>2]^g,h,g)|0;d=C;i=f;return (C=d,e)|0}function Ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=xg(e,f)|0;a=C;return (C=(_(b,f)|0)+(_(d,e)|0)+a|a&0,c|0|0)|0}function Bg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Dg(a,b,c,d,0)|0}function Cg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;Dg(a,b,d,e,f)|0;i=g;return (C=c[f+4>>2]|0,c[f>>2]|0)|0}function Dg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (C=n,f)|0}else{if(!g){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (C=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (C=n,f)|0}g=h-1|0;if(g&h){i=(aa(h|0)|0)+33-(aa(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (C=o,p)|0}else{p=wg(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (C=o,p)|0}}else{if(g){if(f){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (C=o,p)|0}if(!l){if(f){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (C=o,p)|0}g=i-1|0;if(!(g&i)){if(f){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((wg(i|0)|0)>>>0);return (C=o,p)|0}g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (C=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=rg(m|0,l|0,-1,-1)|0;d=C;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;og(k,d,e,n)|0;p=C;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=og(e,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=C;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (C=o,p)|0}function Eg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return cb[a&7](b|0,c|0,d|0)|0}function Fg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;db[a&3](b|0,c|0,d|0,e|0,f|0)}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;return +eb[a&1](b|0,c|0)}function Hg(a,b){a=a|0;b=b|0;return +fb[a&3](b|0)}function Ig(a,b){a=a|0;b=b|0;gb[a&15](b|0)}function Jg(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;hb[a&1](b|0,c|0,d|0,+e,f|0,g|0,h|0,i|0)}function Kg(a,b,c){a=a|0;b=b|0;c=c|0;ib[a&3](b|0,c|0)}function Lg(a,b){a=a|0;b=b|0;return jb[a&3](b|0)|0}function Mg(a,b,c){a=a|0;b=b|0;c=+c;return kb[a&1](b|0,+c)|0}function Ng(a){a=a|0;lb[a&3]()}function Og(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;mb[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Pg(a,b,c){a=a|0;b=b|0;c=c|0;return nb[a&1](b|0,c|0)|0}function Qg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return +ob[a&1](b|0,c|0,d|0,e|0)}function Rg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;pb[a&3](b|0,c|0,d|0,e|0)}function Sg(a,b,c){a=a|0;b=b|0;c=c|0;ba(0);return 0}function Tg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(1)}function Ug(a,b){a=a|0;b=b|0;ba(2);return 0.0}function Vg(a){a=a|0;ba(3);return 0.0}function Wg(a){a=a|0;ba(4)}function Xg(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;g=g|0;h=h|0;ba(5)}function Yg(a,b){a=a|0;b=b|0;ba(6)}function Zg(a){a=a|0;ba(7);return 0}function _g(a,b){a=a|0;b=+b;ba(8);return 0}function $g(){ba(9)}function ah(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(10)}function bh(a,b){a=a|0;b=b|0;ba(11);return 0}function ch(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(12);return 0.0}function dh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(13)} +function ad(a,f,g,h){a=a|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;E=i;i=i+208|0;l=E;C=E+8|0;k=c[a+8>>2]|0;switch(k|0){case 1:{j=2;break}case 2:{j=c[a+12>>2]|0;if((j|0)!=2){y=j;c[l>>2]=k;D=l+4|0;c[D>>2]=y;Hf(35281,l)|0;$a(1)}w=g<<4;v=f<<4;x=a+4|0;y=a+40|0;u=0;do{k=(u|0)<9;j=(k?u<<1:-2)+w|0;k=k?(u*10|0)+10|0:0;l=(j|0)<0;m=(u|0)<8;n=u<<3;o=j+-1|0;o=(o|0)<0?0:o;s=0;do{q=(s|0)<9;t=s;s=s+1|0;p=(q?s:0)+k|0;q=(q?t<<1:-2)+v|0;do if((q|0)>=0){if(l){b[C+(p<<1)>>1]=b[C+(p+10<<1)>>1]|0;break}r=c[a>>2]|0;if((q|0)>=(r|0)){b[C+(p<<1)>>1]=b[C+(p+-1<<1)>>1]|0;break}if((j|0)>=(c[x>>2]|0)){b[C+(p<<1)>>1]=b[C+(p+-10<<1)>>1]|0;break}if(m&(t|0)<8){b[C+(p<<1)>>1]=(d[h+(t+n)>>0]|0)<<4;break}else{F=q+-1|0;F=(F|0)<0?0:F;G=_(r,j)|0;t=c[y>>2]|0;D=_(r,o)|0;r=((e[t+(G+q<<1)>>1]|0)*9|0)+(e[t+(D+F<<1)>>1]|0)+(_(e[t+(G+F<<1)>>1]|0,-3)|0)|0;b[C+(p<<1)>>1]=(r+(_(e[t+(D+q<<1)>>1]|0,-3)|0)|0)>>>2;break}}else b[C+(p<<1)>>1]=b[C+(p+1<<1)>>1]|0;while(0)}while((s|0)!=10);u=u+1|0}while((u|0)!=10);r=v+-1|0;r=(r|0)<0?0:r;q=v+16|0;p=c[a>>2]|0;n=p+-1|0;q=(n|0)<(q|0)?n:q;n=w+-1|0;n=(n|0)<0?0:n;o=w+16|0;G=(c[x>>2]|0)+-1|0;o=(G|0)<(o|0)?G:o;if((n|0)<=(o|0)?(z=g<<3,A=c[y>>2]|0,B=11-(f<<3)|0,(r|0)<=(q|0)):0)while(1){j=((n<<1&2)*10|0)+-10|0;k=_(p,n)|0;l=B+((((n&-2|0)/2|0)-z|0)*10|0)|0;m=r;while(1){G=l+((m&-2|0)/2|0)|0;F=(m<<1&2)+-1+G|0;b[A+(m+k<<1)>>1]=((e[C+(F+j<<1)>>1]|0)+((e[C+(G<<1)>>1]|0)*9|0)+(((e[C+(F<<1)>>1]|0)+(e[C+(G+j<<1)>>1]|0)|0)*3|0)|0)>>>4;if((m|0)<(q|0))m=m+1|0;else break}if((n|0)<(o|0))n=n+1|0;else break}i=E;return}default:{}}if((j|0)==2?(c[a+12>>2]|0)==1:0){D=f<<3;A=g<<3;B=a+4|0;C=a+40|0;j=c[a>>2]|0;g=(D|0)<(j|0);k=1+D|0;l=(k|0)<(j|0);m=2+D|0;n=(m|0)<(j|0);o=3+D|0;p=(o|0)<(j|0);q=4+D|0;r=(q|0)<(j|0);s=5+D|0;t=(s|0)<(j|0);u=6+D|0;v=(u|0)<(j|0);w=7+D|0;x=(w|0)<(j|0);z=0;do{y=z+A|0;f=z<<3;a=_(j,y)|0;if(g?(y|0)<(c[B>>2]|0):0)b[(c[C>>2]|0)+(a+D<<1)>>1]=(d[h+f>>0]|0)<<4;if(l?(y|0)<(c[B>>2]|0):0)b[(c[C>>2]|0)+(a+k<<1)>>1]=(d[h+(1+f)>>0]|0)<<4;if(n?(y|0)<(c[B>>2]|0):0)b[(c[C>>2]|0)+(a+m<<1)>>1]=(d[h+(2+f)>>0]|0)<<4;if(p?(y|0)<(c[B>>2]|0):0)b[(c[C>>2]|0)+(a+o<<1)>>1]=(d[h+(3+f)>>0]|0)<<4;if(r?(y|0)<(c[B>>2]|0):0)b[(c[C>>2]|0)+(a+q<<1)>>1]=(d[h+(4+f)>>0]|0)<<4;if(t?(y|0)<(c[B>>2]|0):0)b[(c[C>>2]|0)+(a+s<<1)>>1]=(d[h+(5+f)>>0]|0)<<4;if(v?(y|0)<(c[B>>2]|0):0)b[(c[C>>2]|0)+(a+u<<1)>>1]=(d[h+(6+f)>>0]|0)<<4;if(x?(y|0)<(c[B>>2]|0):0)b[(c[C>>2]|0)+(a+w<<1)>>1]=(d[h+(7+f)>>0]|0)<<4;z=z+1|0}while((z|0)!=8);i=E;return}F=c[a+12>>2]|0;c[l>>2]=k;G=l+4|0;c[G>>2]=F;Hf(35281,l)|0;$a(1)}function bd(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+192|0;s=t+128|0;r=t;Xc(a,e,f);p=a+16|0;h=c[p>>2]|0;e=c[d+16>>2]|0;if((h|0)>(e|0))za(35340,35067,215,35381);q=a+20|0;f=c[q>>2]|0;if((f|0)>(c[d+20>>2]|0))za(35403,35067,216,35381);o=e<<6;if((f|0)<=0){a=a+52|0;tg(a|0,g|0,256)|0;i=t;return}m=d+28|0;n=a+28|0;e=h;l=0;a:while(1){if((e|0)>0){j=0;k=(c[m>>2]|0)+((_(o,l)|0)<<1)|0;while(1){f=0;do{b[r+(f<<1)>>1]=_(b[k+(f<<1)>>1]|0,c[g+(f<<2)>>2]|0)|0;f=f+1|0}while((f|0)!=64);if((e|0)<=(j|0)){e=12;break a}if((c[q>>2]|0)<=(l|0)){e=14;break a}e=(_(e,l)|0)+j<<6;f=(c[n>>2]|0)+(e<<1)|0;h=r;d=f+128|0;do{b[f>>1]=b[h>>1]|0;f=f+2|0;h=h+2|0}while((f|0)<(d|0));wc((c[n>>2]|0)+(e<<1)|0,s);ad(a,j,l,s);j=j+1|0;e=c[p>>2]|0;if((j|0)>=(e|0))break;else k=k+128|0}f=c[q>>2]|0}l=l+1|0;if((l|0)>=(f|0)){e=18;break}}if((e|0)==12)za(35040,35067,125,35267);else if((e|0)==14)za(35137,35067,126,35267);else if((e|0)==18){a=a+52|0;tg(a|0,g|0,256)|0;i=t;return}}function cd(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+192|0;p=q+128|0;o=q;l=a+20|0;e=c[l>>2]|0;if((e|0)<=0){a=a+52|0;tg(a|0,d|0,256)|0;i=q;return}m=a+16|0;n=a+28|0;f=c[m>>2]|0;k=0;a:while(1){if((f|0)>0){j=0;do{if((f|0)<=(j|0)){e=5;break a}if((c[l>>2]|0)<=(k|0)){e=7;break a}g=(_(f,k)|0)+j<<6;f=o;g=(c[n>>2]|0)+(g<<1)|0;h=f+128|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));if(ce(o,d)|0){e=c[m>>2]|0;if((e|0)<=(j|0)){e=10;break a}if((c[l>>2]|0)<=(k|0)){e=12;break a}e=(_(e,k)|0)+j<<6;f=(c[n>>2]|0)+(e<<1)|0;g=o;h=f+128|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));wc((c[n>>2]|0)+(e<<1)|0,p);ad(a,j,k,p)}j=j+1|0;f=c[m>>2]|0}while((j|0)<(f|0));e=c[l>>2]|0}k=k+1|0;if((k|0)>=(e|0)){e=17;break}}if((e|0)==5)za(35040,35067,61,35123);else if((e|0)==7)za(35137,35067,62,35123);else if((e|0)==10)za(35040,35067,125,35267);else if((e|0)==12)za(35137,35067,126,35267);else if((e|0)==17){a=a+52|0;tg(a|0,d|0,256)|0;i=q;return}}function dd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+320|0;j=h;c[a>>2]=b;c[a+4>>2]=d;c[j>>2]=b;c[j+4>>2]=d;e=j+28|0;g=j+32|0;f=j+44|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;Xc(j,1,1);md(a+8|0,3,j);a=c[j+40>>2]|0;d=a;if(a){b=c[f>>2]|0;if((b|0)!=(a|0))c[f>>2]=b+(~((b+-2-d|0)>>>1)<<1);Oe(a)}d=c[e>>2]|0;if(!d){i=h;return}b=c[g>>2]|0;if((b|0)!=(d|0))c[g>>2]=b+(~((b+-2-d|0)>>>1)<<1);Oe(d);i=h;return}function ed(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=b+84|0;m=b+80|0;d=c[m>>2]|0;if((c[l>>2]|0)==(d|0))return;n=b+12|0;o=b+16|0;p=b+60|0;k=b+56|0;j=a+8|0;i=0;while(1){b=c[n>>2]|0;a=c[d+(i*40|0)+4>>2]|0;if((b|0)%(a|0)|0){b=4;break}e=c[o>>2]|0;f=c[d+(i*40|0)+8>>2]|0;if((e|0)%(f|0)|0){b=6;break}g=c[d+(i*40|0)+12>>2]|0;h=c[k>>2]|0;if(g>>>0>=(((c[p>>2]|0)-h|0)/24|0)>>>0){b=8;break}bd((c[j>>2]|0)+(i*308|0)|0,d+(i*40|0)|0,(b|0)/(a|0)|0,(e|0)/(f|0)|0,c[h+(g*24|0)>>2]|0);i=i+1|0;d=c[m>>2]|0;if(i>>>0>=(((c[l>>2]|0)-d|0)/40|0)>>>0){b=10;break}}if((b|0)==4)za(35446,35067,253,35494);else if((b|0)==6)za(35511,35067,254,35494);else if((b|0)==8)za(35559,35067,257,35494);else if((b|0)==10)return}function fd(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+80|0;n=t+60|0;m=t+48|0;s=t+36|0;l=t+24|0;o=t+12|0;p=t;r=d+8|0;k=c[r>>2]|0;q=c[k+332>>2]|0;g=q<<6;a:do if((q|0)>0){f=c[k+336>>2]|0;h=0;while(1){if(b[f+(h<<1)>>1]|0)break a;h=h+1|0;if((h|0)>=(g|0)){j=5;break}}}else j=5;while(0);b:do if((j|0)==5){q=c[k+640>>2]|0;h=q<<6;if((q|0)<=0){i=t;return}f=c[k+644>>2]|0;g=0;do{if(b[f+(g<<1)>>1]|0)break b;g=g+1|0}while((g|0)<(h|0));i=t;return}while(0);if(((((a[e+20>>0]|0)!=0?(c[e>>2]|0)==2:0)?(c[e+4>>2]|0)==2:0)?(c[e+8>>2]|0)==2:0)?(c[e+12>>2]|0)==2:0){f=d+4|0;id(n,d,0,0,c[d>>2]|0,c[f>>2]|0);rd(m,n,c[d>>2]|0,c[f>>2]|0);nd(c[m>>2]|0,1,1,c[r>>2]|0);nd((c[m>>2]|0)+12|0,2,2,(c[r>>2]|0)+308|0);nd((c[m>>2]|0)+24|0,2,2,(c[r>>2]|0)+616|0);f=c[m>>2]|0;if(f){l=m+4|0;g=c[l>>2]|0;if((g|0)!=(f|0)){do{h=g+-12|0;c[l>>2]=h;j=c[h>>2]|0;k=j;if(!j)g=h;else{g=g+-8|0;h=c[g>>2]|0;if((h|0)!=(j|0))c[g>>2]=h+(~((h+-4-k|0)>>>2)<<2);Oe(j);g=c[l>>2]|0}}while((g|0)!=(f|0));f=c[m>>2]|0}Oe(f)}g=c[n>>2]|0;if(!g){i=t;return}f=n+4|0;if((c[f>>2]|0)!=(g|0))c[f>>2]=g;Oe(g);i=t;return}m=d+4|0;f=_(c[m>>2]|0,c[d>>2]|0)|0;c[l>>2]=0;j=l+4|0;c[j>>2]=0;c[l+8>>2]=0;do if(f)if(f>>>0>1073741823)Ke(l);else{n=f<<2;k=Me(n)|0;c[l>>2]=k;q=k+(f<<2)|0;c[l+8>>2]=q;pg(k|0,0,n|0)|0;c[j>>2]=q;break}while(0);c[s>>2]=0;q=s+4|0;c[q>>2]=0;c[s+8>>2]=0;f=Me(36)|0;c[q>>2]=f;c[s>>2]=f;n=s+8|0;c[n>>2]=f+36;$b(f,l);f=(c[q>>2]|0)+12|0;c[q>>2]=f;$b(f,l);f=(c[q>>2]|0)+12|0;c[q>>2]=f;$b(f,l);c[q>>2]=(c[q>>2]|0)+12;f=c[l>>2]|0;g=f;if(f){h=c[j>>2]|0;if((h|0)!=(f|0))c[j>>2]=h+(~((h+-4-g|0)>>>2)<<2);Oe(f)}_c(c[r>>2]|0,c[c[s>>2]>>2]|0,1);_c((c[r>>2]|0)+308|0,c[(c[s>>2]|0)+12>>2]|0,1);_c((c[r>>2]|0)+616|0,c[(c[s>>2]|0)+24>>2]|0,1);qd(o,c[d>>2]|0,c[m>>2]|0,2,1.2999999523162842,.5,(a[e+16>>0]|0)!=0,(a[e+17>>0]|0)!=0,s);f=c[s>>2]|0;if(f){g=c[q>>2]|0;if((g|0)!=(f|0)){do{h=g+-12|0;c[q>>2]=h;j=c[h>>2]|0;k=j;if(!j)g=h;else{g=g+-8|0;h=c[g>>2]|0;if((h|0)!=(j|0))c[g>>2]=h+(~((h+-4-k|0)>>>2)<<2);Oe(j);g=c[q>>2]|0}}while((g|0)!=(f|0));f=c[s>>2]|0}Oe(f);c[n>>2]=0;c[q>>2]=0;c[s>>2]=0}c[s>>2]=c[o>>2];f=o+4|0;c[q>>2]=c[f>>2];l=o+8|0;c[n>>2]=c[l>>2];c[l>>2]=0;c[f>>2]=0;c[o>>2]=0;qd(p,c[d>>2]|0,c[m>>2]|0,1,1.2999999523162842,.5,(a[e+18>>0]|0)!=0,(a[e+19>>0]|0)!=0,s);f=c[s>>2]|0;if(f){g=c[q>>2]|0;if((g|0)!=(f|0)){do{h=g+-12|0;c[q>>2]=h;j=c[h>>2]|0;k=j;if(!j)g=h;else{g=g+-8|0;h=c[g>>2]|0;if((h|0)!=(j|0))c[g>>2]=h+(~((h+-4-k|0)>>>2)<<2);Oe(j);g=c[q>>2]|0}}while((g|0)!=(f|0));f=c[s>>2]|0}Oe(f);c[n>>2]=0;c[q>>2]=0;c[s>>2]=0}h=c[p>>2]|0;c[s>>2]=h;f=p+4|0;c[q>>2]=c[f>>2];g=p+8|0;c[n>>2]=c[g>>2];c[g>>2]=0;c[f>>2]=0;c[p>>2]=0;f=c[e>>2]|0;g=c[e+4>>2]|0;if(!((f|0)==1&(g|0)==1))nd(h+12|0,f,g,(c[r>>2]|0)+308|0);g=c[e+8>>2]|0;f=c[e+12>>2]|0;if(!((g|0)==1&(f|0)==1))nd((c[s>>2]|0)+24|0,g,f,(c[r>>2]|0)+616|0);f=c[s>>2]|0;if(!f){i=t;return}g=c[q>>2]|0;if((g|0)!=(f|0)){do{h=g+-12|0;c[q>>2]=h;j=c[h>>2]|0;k=j;if(!j)g=h;else{g=g+-8|0;h=c[g>>2]|0;if((h|0)!=(j|0))c[g>>2]=h+(~((h+-4-k|0)>>>2)<<2);Oe(j);g=c[q>>2]|0}}while((g|0)!=(f|0));f=c[s>>2]|0}Oe(f);i=t;return}function gd(a,b){a=a|0;b=b|0;a=a+8|0;cd(c[a>>2]|0,b);cd((c[a>>2]|0)+308|0,b+256|0);cd((c[a>>2]|0)+616|0,b+512|0);return}function hd(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+768|0;B=C;y=a+8|0;k=c[y>>2]|0;if((c[k+8>>2]|0)!=1)za(35593,35067,349,35624);if((c[k+12>>2]|0)!=1)za(35639,35067,350,35624);c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];u=d+12|0;c[u>>2]=1;v=d+16|0;c[v>>2]=1;h=c[k+16>>2]|0;w=d+24|0;c[w>>2]=h;j=c[k+20>>2]|0;x=d+20|0;c[x>>2]=j;t=c[k+332>>2]|0;a=t<<6;a:do if((t|0)>0){e=c[k+336>>2]|0;f=0;while(1){if(b[e+(f<<1)>>1]|0){g=13;break a}f=f+1|0;if((f|0)>=(a|0)){g=9;break}}}else g=9;while(0);b:do if((g|0)==9){t=c[k+640>>2]|0;a=t<<6;if((t|0)>0){e=c[k+644>>2]|0;f=0;while(1){if(b[e+(f<<1)>>1]|0){g=13;break b}f=f+1|0;if((f|0)>=(a|0)){t=1;break}}}else t=1}while(0);if((g|0)==13){t=c[k+316>>2]|0;t=1<(t|0)?t:1;q=c[k+324>>2]|0;q=(q|0)<(h|0)?q:h;s=c[k+328>>2]|0;s=(s|0)<(j|0)?s:j;p=c[k+624>>2]|0;t=(t|0)<(p|0)?p:t;p=c[k+632>>2]|0;r=c[k+636>>2]|0;c[u>>2]=t;c[w>>2]=(p|0)<(q|0)?p:q;c[x>>2]=(r|0)<(s|0)?r:s;s=c[k+628>>2]|0;c[v>>2]=(t|0)<(s|0)?s:t;t=3}s=d+80|0;h=d+84|0;a=c[h>>2]|0;e=c[s>>2]|0;f=(a-e|0)/40|0;if(t>>>0<=f>>>0){if(t>>>0>>0?(l=e+(t*40|0)|0,(a|0)!=(l|0)):0){e=a;while(1){a=e+-40|0;c[h>>2]=a;f=c[e+-12>>2]|0;g=f;if(f){a=e+-8|0;e=c[a>>2]|0;if((e|0)!=(f|0))c[a>>2]=e+(~((e+-2-g|0)>>>1)<<1);Oe(f);a=c[h>>2]|0}if((a|0)==(l|0))break;else e=a}}}else Cc(s,t-f|0);f=c[y>>2]|0;tg(B|0,f+52|0,256)|0;tg(B+256|0,f+360|0,256)|0;tg(B+512|0,f+668|0,256)|0;a=c[u>>2]|0;e=c[f+8>>2]|0;if(!((a|0)%(e|0)|0)){m=f;n=a;o=e;A=0}else za(35670,35067,373,35624);c:while(1){f=c[s>>2]|0;e=c[v>>2]|0;a=c[m+(A*308|0)+12>>2]|0;if((e|0)%(a|0)|0){g=26;break}c[f+(A*40|0)>>2]=A;j=(n|0)/(o|0)|0;c[f+(A*40|0)+4>>2]=j;a=(e|0)/(a|0)|0;c[f+(A*40|0)+8>>2]=a;j=_(j,c[w>>2]|0)|0;q=f+(A*40|0)+16|0;c[q>>2]=j;a=_(a,c[x>>2]|0)|0;r=f+(A*40|0)+20|0;c[r>>2]=a;j=_(j,a)|0;c[f+(A*40|0)+24>>2]=j;k=f+(A*40|0)+28|0;j=j<<6;e=f+(A*40|0)+32|0;f=c[e>>2]|0;g=c[k>>2]|0;h=f-g>>1;if(j>>>0<=h>>>0){if(j>>>0>>0?(z=g+(j<<1)|0,(f|0)!=(z|0)):0)c[e>>2]=f+(~((f+-2-z|0)>>>1)<<1)}else{Dc(k,j-h|0);a=c[r>>2]|0}if((a|0)>0){f=c[q>>2]|0;p=(f|0)>0;o=0;n=c[k>>2]|0;h=0;g=c[(c[y>>2]|0)+(A*308|0)+28>>2]|0;while(1){if(p){m=c[y>>2]|0;l=(o|0)<(c[m+(A*308|0)+20>>2]|0);m=m+(A*308|0)+16|0;k=0;e=n;do{a=n+((k<<6|1)<<1)|0;if(l?(k|0)<(c[m>>2]|0):0){j=0;do{a=c[B+(A<<8)+(j<<2)>>2]|0;h=b[g+(j<<1)>>1]|0;if((h|0)%(a|0)|0){g=40;break c}b[e+(j<<1)>>1]=(h|0)/(a|0)|0;j=j+1|0}while((j|0)<64);g=g+128|0}else{b[e>>1]=h;f=a+126|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(f|0));f=c[q>>2]|0}h=b[e>>1]|0;e=e+128|0;k=k+1|0}while((k|0)<(f|0));a=c[r>>2]|0}else e=n;o=o+1|0;if((o|0)>=(a|0))break;else n=e}}A=A+1|0;if((A|0)>=(t|0)){g=48;break}m=c[y>>2]|0;n=c[u>>2]|0;o=c[m+(A*308|0)+8>>2]|0;if((n|0)%(o|0)|0){g=24;break}}if((g|0)==24)za(35670,35067,373,35624);else if((g|0)==26)za(35726,35067,374,35624);else if((g|0)==40)za(35782,35067,398,35624);else if((g|0)==48){Ac(B,d);i=C;return}}function id(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;k=_(i,h)|0;j=k*3|0;c[b>>2]=0;l=b+4|0;c[l>>2]=0;c[b+8>>2]=0;if(!k)j=0;else{if((k|0)<0)Ke(b);k=Me(j)|0;c[l>>2]=k;c[b>>2]=k;c[b+8>>2]=k+j;do{a[k>>0]=0;k=(c[l>>2]|0)+1|0;c[l>>2]=k;j=j+-1|0}while((j|0)!=0);j=c[b>>2]|0}e=e+8|0;Zc(c[e>>2]|0,f,g,h,i,j,3);Zc((c[e>>2]|0)+308|0,f,g,h,i,(c[b>>2]|0)+1|0,3);Zc((c[e>>2]|0)+616|0,f,g,h,i,(c[b>>2]|0)+2|0,3);j=c[b>>2]|0;if((c[l>>2]|0)==(j|0))return;else k=0;do{m=j+k|0;f=j+(k+1)|0;h=d[f>>0]|0;i=j+(k+2)|0;e=d[i>>0]|0;g=(d[m>>0]|0)+384|0;a[m>>0]=a[35801+((c[27292+(e<<2)>>2]|0)+g)>>0]|0;a[f>>0]=a[35801+(((c[29340+(h<<2)>>2]|0)+(c[28316+(e<<2)>>2]|0)>>16)+g)>>0]|0;a[i>>0]=a[35801+((c[30364+(h<<2)>>2]|0)+g)>>0]|0;k=k+3|0;j=c[b>>2]|0}while(k>>>0<((c[l>>2]|0)-j|0)>>>0);return}function jd(a,b,e,f,j,k){a=a|0;b=b|0;e=e|0;f=f|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0;o=i;i=i+16|0;n=o;m=vc()|0;id(n,a,b,e,f,j);l=_(j,f)|0;if((l|0)<=0){a=c[n>>2]|0;if(!a){i=o;return}}else{a=c[n>>2]|0;b=c[k>>2]|0;f=c[b+24>>2]|0;e=c[b>>2]|0;b=c[b+12>>2]|0;j=0;do{k=j*3|0;g[e+(j<<2)>>2]=+h[m+((d[a+k>>0]|0)<<3)>>3];g[b+(j<<2)>>2]=+h[m+((d[a+(k+1)>>0]|0)<<3)>>3];g[f+(j<<2)>>2]=+h[m+((d[a+(k+2)>>0]|0)<<3)>>3];j=j+1|0}while((j|0)!=(l|0))}b=n+4|0;if((c[b>>2]|0)!=(a|0))c[b>>2]=a;Oe(a);i=o;return}function kd(a,b){a=a|0;b=b|0;jd(a,0,0,c[a>>2]|0,c[a+4>>2]|0,b);return}function ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i+160|0;e=d;f=d+24|0;l=c[b+8>>2]|0;k=c[l+12>>2]|0;j=c[l+316>>2]|0;h=c[l+320>>2]|0;g=c[l+624>>2]|0;b=c[l+628>>2]|0;c[e>>2]=c[l+8>>2];c[e+4>>2]=k;c[e+8>>2]=j;c[e+12>>2]=h;c[e+16>>2]=g;c[e+20>>2]=b;eg(a,f,If(f,128,36825,e)|0);i=d;return}function md(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;h=a+4|0;c[h>>2]=0;c[a+8>>2]=0;if(!b)return;if(b>>>0>13944699)Ke(a);i=Me(b*308|0)|0;c[h>>2]=i;c[a>>2]=i;c[a+8>>2]=i+(b*308|0);f=d+28|0;g=d+40|0;e=d+52|0;a=b;b=i;do{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];od(b+28|0,f);pd(b+40|0,g);tg(b+52|0,e|0,256)|0;b=(c[h>>2]|0)+308|0;c[h>>2]=b;a=a+-1|0}while((a|0)!=0);return}function nd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var j=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;K=i;i=i+704|0;J=K+640|0;I=K;H=K+512|0;G=f+4|0;if(((c[a+4>>2]|0)-(c[a>>2]|0)>>2|0)!=(_(c[G>>2]|0,c[f>>2]|0)|0))za(36839,35067,268,36887);Xc(f,d,e);z=f+20|0;j=c[z>>2]|0;if((j|0)<=0){i=K;return}A=f+16|0;B=(e|0)>0;C=(d|0)>0;D=+(_(e,d)|0);E=f+28|0;k=c[A>>2]|0;y=0;a:while(1){if((k|0)>0){w=_(y<<3,e)|0;x=0;do{s=_(x<<3,d)|0;t=c[f>>2]|0;if((s|0)>=(t|0)){j=8;break a}j=c[G>>2]|0;if((w|0)>=(j|0)){j=11;break a}u=c[a>>2]|0;v=t+-1|0;m=j+-1|0;r=0;do{o=(_(r,e)|0)+w|0;p=r<<3;q=0;do{if(B?(F=(_(q,d)|0)+s|0,C):0){n=0.0;l=0;do{k=o+l|0;k=_((m|0)<(k|0)?m:k,t)|0;j=0;do{L=F+j|0;n=n+ +g[u+(k+((v|0)<(L|0)?v:L)<<2)>>2];j=j+1|0}while((j|0)!=(d|0));l=l+1|0}while((l|0)!=(e|0))}else n=0.0;h[I+(q+p<<3)>>3]=n/D;q=q+1|0}while((q|0)!=8);r=r+1|0}while((r|0)!=8);kc(I);n=+h[I>>3]+-1024.0;h[I>>3]=n;b[H>>1]=~~+yf(n);j=1;do{b[H+(j<<1)>>1]=~~+yf(+h[I+(j<<3)>>3]);j=j+1|0}while((j|0)!=64);j=c[A>>2]|0;if((j|0)<=(x|0)){j=23;break a}if((c[z>>2]|0)<=(y|0)){j=25;break a}j=(_(j,y)|0)+x<<6;k=(c[E>>2]|0)+(j<<1)|0;l=H;m=k+128|0;do{b[k>>1]=b[l>>1]|0;k=k+2|0;l=l+2|0}while((k|0)<(m|0));wc((c[E>>2]|0)+(j<<1)|0,J);ad(f,x,y,J);x=x+1|0;k=c[A>>2]|0}while((x|0)<(k|0));j=c[z>>2]|0}y=y+1|0;if((y|0)>=(j|0)){j=29;break}}if((j|0)==8)za(36914,35067,275,36887);else if((j|0)==11)za(36933,35067,276,36887);else if((j|0)==23)za(35040,35067,125,35267);else if((j|0)==25)za(35137,35067,126,35267);else if((j|0)==29){i=K;return}}function od(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;i=a+4|0;c[i>>2]=0;c[a+8>>2]=0;g=d+4|0;e=(c[g>>2]|0)-(c[d>>2]|0)|0;f=e>>1;if(!f)return;if((e|0)<0)Ke(a);h=Me(e)|0;c[i>>2]=h;c[a>>2]=h;c[a+8>>2]=h+(f<<1);e=c[d>>2]|0;d=c[g>>2]|0;if((e|0)==(d|0))return;a=(d+-2-e|0)>>>1;f=h;while(1){b[f>>1]=b[e>>1]|0;e=e+2|0;if((e|0)==(d|0))break;else f=f+2|0}c[i>>2]=h+(a+1<<1);return}function pd(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;i=a+4|0;c[i>>2]=0;c[a+8>>2]=0;g=d+4|0;e=(c[g>>2]|0)-(c[d>>2]|0)|0;f=e>>1;if(!f)return;if((e|0)<0)Ke(a);h=Me(e)|0;c[i>>2]=h;c[a>>2]=h;c[a+8>>2]=h+(f<<1);e=c[d>>2]|0;d=c[g>>2]|0;if((e|0)==(d|0))return;a=(d+-2-e|0)>>>1;f=h;while(1){b[f>>1]=b[e>>1]|0;e=e+2|0;if((e|0)==(d|0))break;else f=f+2|0}c[i>>2]=h+(a+1<<1);return}function qd(a,b,d,e,f,j,k,l,m){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;j=+j;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0;Q=i;i=i+96|0;P=Q+84|0;O=Q+72|0;M=Q+60|0;L=Q+48|0;K=Q+36|0;J=Q+24|0;I=Q+12|0;H=Q;if(!(k|l)){cc(a,m);i=Q;return}cc(P,m);n=c[P>>2]|0;o=c[n+4>>2]|0;q=c[n>>2]|0;if((o|0)!=(q|0)){r=c[n+12>>2]|0;p=c[n+24>>2]|0;n=o-q>>2;o=0;do{G=q+(o<<2)|0;g[G>>2]=+g[G>>2]/255.0;G=r+(o<<2)|0;g[G>>2]=+g[G>>2]/255.0+-.5;G=p+(o<<2)|0;g[G>>2]=+g[G>>2]/255.0+-.5;o=o+1|0}while(o>>>0>>0)}n=c[m>>2]|0;n=(c[n+4>>2]|0)-(c[n>>2]|0)|0;r=n>>2;c[O>>2]=0;o=O+4|0;c[o>>2]=0;p=O+8|0;c[p>>2]=0;if(r){if((n|0)<0)Ke(O);n=((r+-1|0)>>>5)+1|0;q=Me(n<<2)|0;c[O>>2]=q;c[p>>2]=n;c[o>>2]=r;n=r>>>5;pg(q|0,0,n<<2|0)|0;o=n<<5;if((o|0)!=(r|0)){G=q+(n<<2)|0;c[G>>2]=c[G>>2]&~(-1>>>(32-r+o|0))}}else q=0;G=(d|0)>0;if(G){w=(b|0)>0;x=(e|0)==2;y=(e|0)==1;z=c[P>>2]|0;A=z+12|0;D=z+24|0;E=c[O>>2]|0;v=0;do{if(w){r=_(v,b)|0;s=c[z>>2]|0;t=c[A>>2]|0;u=c[D>>2]|0;p=0;do{n=p+r|0;F=+g[s+(n<<2)>>2];C=+g[u+(n<<2)>>2];B=+g[t+(n<<2)>>2];o=F-B*.34414-C*.71414<.85;B=F+B*1.772;C=F+C*1.402;if(C<.9&(B<.85&(x&o))){R=q+(n>>>5<<2)|0;c[R>>2]=c[R>>2]|1<<(n&31)}if(B<.9&(o&(y&C<.85))){q=E+(n>>>5<<2)|0;c[q>>2]=c[q>>2]|1<<(n&31);q=E}p=p+1|0}while((p|0)!=(b|0))}v=v+1|0}while((v|0)!=(d|0))}sd(b,d,O);sd(b,d,O);sd(b,d,O);n=c[m>>2]|0;n=(c[n+4>>2]|0)-(c[n>>2]|0)|0;r=n>>2;c[M>>2]=0;o=M+4|0;c[o>>2]=0;p=M+8|0;c[p>>2]=0;if(r){if((n|0)<0)Ke(M);n=((r+-1|0)>>>5)+1|0;q=Me(n<<2)|0;c[M>>2]=q;c[p>>2]=n;c[o>>2]=r;n=r>>>5;pg(q|0,0,n<<2|0)|0;o=n<<5;if((o|0)==(r|0))n=q;else{n=q+(n<<2)|0;c[n>>2]=c[n>>2]&~(-1>>>(32-r+o|0));n=q}}else n=0;if(G){u=(b|0)>0;w=c[P>>2]|0;v=w+12|0;w=w+24|0;x=c[M>>2]|0;t=0;do{a:do if(u){q=_(t,b)|0;r=c[v>>2]|0;s=c[w>>2]|0;p=0;while(1){o=p+q|0;B=+g[r+(o<<2)>>2];C=+g[s+(o<<2)>>2];switch(e|0){case 2:{F=B;if(C*2.116>.2-F*.34414?C*1.402>F*1.772+.2:0){n=x+(o>>>5<<2)|0;c[n>>2]=c[n>>2]|1<<(o&31);n=x}break}case 1:{F=C;C=B;if(FF*-.33741){R=n+(o>>>5<<2)|0;c[R>>2]=c[R>>2]|1<<(o&31)}break}default:{}}p=p+1|0;if((p|0)==(b|0))break a}}while(0);t=t+1|0}while((t|0)!=(d|0))}td(b,d,M);td(b,d,M);td(b,d,M);n=c[m>>2]|0;n=(c[n+4>>2]|0)-(c[n>>2]|0)|0;r=n>>2;c[L>>2]=0;o=L+4|0;c[o>>2]=0;p=L+8|0;c[p>>2]=0;if(r){if((n|0)<0)Ke(L);n=((r+-1|0)>>>5)+1|0;q=Me(n<<2)|0;c[L>>2]=q;c[p>>2]=n;c[o>>2]=r;n=r>>>5;pg(q|0,0,n<<2|0)|0;o=n<<5;if((o|0)!=(r|0)){R=q+(n<<2)|0;c[R>>2]=c[R>>2]&~(-1>>>(32-r+o|0))}}else q=0;if(G){o=(b|0)>0;p=c[M>>2]|0;r=c[O>>2]|0;v=0;do{if(o){s=_(v,b)|0;u=0;do{n=u+s|0;R=n>>>5;t=q+(R<<2)|0;n=1<<(n&31);if((c[p+(R<<2)>>2]&n|0)!=0?(c[r+(R<<2)>>2]&n|0)!=0:0)n=c[t>>2]|n;else n=c[t>>2]&~n;c[t>>2]=n;u=u+1|0}while((u|0)!=(b|0))}v=v+1|0}while((v|0)!=(d|0))}F=(e|0)==2?2.5500000000000003:127.5;n=c[m>>2]|0;n=(c[n+4>>2]|0)-(c[n>>2]|0)|0;r=n>>2;c[K>>2]=0;o=K+4|0;c[o>>2]=0;p=K+8|0;c[p>>2]=0;if(r){if((n|0)<0)Ke(K);n=((r+-1|0)>>>5)+1|0;q=Me(n<<2)|0;c[K>>2]=q;c[p>>2]=n;c[o>>2]=r;n=r>>>5;pg(q|0,0,n<<2|0)|0;o=n<<5;if((o|0)!=(r|0)){R=q+(n<<2)|0;c[R>>2]=c[R>>2]&~(-1>>>(32-r+o|0))}}n=c[P>>2]|0;u=n+(e*12|0)|0;$b(J,u);n=c[n+(e*12|0)+4>>2]|0;u=c[u>>2]|0;if((n|0)!=(u|0)){n=n-u>>2;o=c[J>>2]|0;t=0;do{p=(t|0)%(b|0)|0;q=(t|0)/(b|0)|0;r=p+1|0;s=q+1|0;if((s|0)<(d|0)&(((q|0)<1|((p|0)<1|(r|0)>=(b|0)))^1)){E=p+-1|0;D=_(q+-1|0,b)|0;m=_(q,b)|0;R=_(s,b)|0;g[o+(t<<2)>>2]=+g[u+(R+r<<2)>>2]*0.0+(+g[u+(R+E<<2)>>2]*0.0+(+g[u+(m+p<<2)>>2]*4.0+(+g[u+(D+r<<2)>>2]*0.0+(+g[u+(D+E<<2)>>2]*0.0+0.0-+g[u+(D+p<<2)>>2])-+g[u+(m+E<<2)>>2])-+g[u+(m+r<<2)>>2])-+g[u+(R+p<<2)>>2])}t=t+1|0}while(t>>>0>>0)}if(G){n=(b|0)>0;o=c[L>>2]|0;p=c[O>>2]|0;q=c[J>>2]|0;r=c[K>>2]|0;t=c[P>>2]|0;s=t+12|0;t=t+24|0;A=0;do{if(n){u=_(A,b)|0;v=c[s>>2]|0;w=c[t>>2]|0;z=0;do{R=z+u|0;B=+g[v+(R<<2)>>2];C=+g[w+(R<<2)>>2];x=R>>>5;y=1<<(R&31);do if(((c[o+(x<<2)>>2]&y|0)==0?(c[p+(x<<2)>>2]&y|0)!=0:0)?+N(+(+g[q+(R<<2)>>2]))>2]=c[R>>2]|y}while(0);z=z+1|0}while((z|0)!=(b|0))}A=A+1|0}while((A|0)!=(d|0))}sd(b,d,K);sd(b,d,K);n=c[P>>2]|0;p=n+(e*12|0)|0;r=Me(40)|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;B=f*(f*2.0);C=+X(+(-4.0/B))*.3989422804014327/f;h[r>>3]=C;F=+X(+(-1.0/B))*.3989422804014327/f;h[r+8>>3]=F;f=+X(+(-0.0/B))*.3989422804014327/f;h[r+16>>3]=f;h[r+24>>3]=F;h[r+32>>3]=C;ud(I,p,b,d,r,5,1.0/(C+(F+(C+0.0+F+f))));n=c[n+(e*12|0)+4>>2]|0;p=c[p>>2]|0;if((n|0)!=(p|0)){q=c[I>>2]|0;n=n-p>>2;o=0;do{f=+g[p+(o<<2)>>2];R=q+(o<<2)|0;g[R>>2]=f+(f-+g[R>>2])*j;o=o+1|0}while(o>>>0>>0)}Oe(r);m=c[P>>2]|0;R=Me(40)|0;c[R>>2]=0;c[R+4>>2]=0;c[R+8>>2]=0;c[R+12>>2]=0;c[R+16>>2]=0;c[R+20>>2]=0;h[R>>3]=.09397422369424545;h[R+8>>3]=.2282849189107672;h[R+16>>3]=.3068786772318713;h[R+24>>3]=.2282849189107672;h[R+32>>3]=.09397422369424545;ud(H,m+(e*12|0)|0,b,d,R,5,1.0510859709214928);Oe(R);if(G){y=(b|0)>0;z=c[L>>2]|0;A=c[K>>2]|0;x=k^1;u=c[H>>2]|0;v=c[I>>2]|0;n=c[P>>2]|0;w=n+(e*12|0)|0;n=n+(e*12|0)|0;t=0;do{if(y){o=_(t,b)|0;s=0;do{p=s+o|0;q=p>>>5;r=1<<(p&31);do if(!(c[z+(q<<2)>>2]&r)){if((c[A+(q<<2)>>2]&r|0)==0|x)break;c[(c[w>>2]|0)+(p<<2)>>2]=c[u+(p<<2)>>2]}else{if(!l)break;c[(c[n>>2]|0)+(p<<2)>>2]=c[v+(p<<2)>>2]}while(0);s=s+1|0}while((s|0)!=(b|0))}t=t+1|0}while((t|0)!=(d|0))}n=c[P>>2]|0;o=c[n+4>>2]|0;q=c[n>>2]|0;r=n;if((o|0)!=(q|0)){s=c[n+12>>2]|0;p=c[n+24>>2]|0;n=o-q>>2;o=0;do{R=q+(o<<2)|0;g[R>>2]=+g[R>>2]*255.0;R=s+(o<<2)|0;g[R>>2]=(+g[R>>2]+.5)*255.0;R=p+(o<<2)|0;g[R>>2]=(+g[R>>2]+.5)*255.0;o=o+1|0}while(o>>>0>>0)}c[a>>2]=r;s=P+4|0;c[a+4>>2]=c[s>>2];p=P+8|0;c[a+8>>2]=c[p>>2];c[p>>2]=0;c[s>>2]=0;c[P>>2]=0;p=c[H>>2]|0;q=p;if(p){n=H+4|0;o=c[n>>2]|0;if((o|0)!=(p|0))c[n>>2]=o+(~((o+-4-q|0)>>>2)<<2);Oe(p)}p=c[I>>2]|0;q=p;if(p){n=I+4|0;o=c[n>>2]|0;if((o|0)!=(p|0))c[n>>2]=o+(~((o+-4-q|0)>>>2)<<2);Oe(p)}p=c[J>>2]|0;q=p;if(p){n=J+4|0;o=c[n>>2]|0;if((o|0)!=(p|0))c[n>>2]=o+(~((o+-4-q|0)>>>2)<<2);Oe(p)}n=c[K>>2]|0;if(n)Oe(n);n=c[L>>2]|0;if(n)Oe(n);n=c[M>>2]|0;if(n)Oe(n);n=c[O>>2]|0;if(n)Oe(n);n=c[P>>2]|0;if(!n){i=Q;return}o=c[s>>2]|0;if((o|0)!=(n|0)){do{p=o+-12|0;c[s>>2]=p;q=c[p>>2]|0;r=q;if(!q)o=p;else{o=o+-8|0;p=c[o>>2]|0;if((p|0)!=(q|0))c[o>>2]=p+(~((p+-4-r|0)>>>2)<<2);Oe(q);o=c[s>>2]|0}}while((o|0)!=(n|0));n=c[P>>2]|0}Oe(n);i=Q;return}function rd(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0;ba=i;i=i+192|0;S=ba+180|0;P=ba+168|0;Q=ba+156|0;L=ba+144|0;M=ba+132|0;$=ba+120|0;_=ba+108|0;Z=ba+96|0;l=ba+84|0;m=ba+72|0;O=ba+60|0;R=ba+48|0;T=ba+36|0;N=ba+24|0;X=ba+12|0;Y=ba;j=b+4|0;V=c[j>>2]|0;W=c[b>>2]|0;h=V-W|0;c[$>>2]=0;aa=$+4|0;c[aa>>2]=0;c[$+8>>2]=0;if((V|0)!=(W|0)){if(h>>>0>1073741823)Ke($);W=h<<2;k=Me(W)|0;c[$>>2]=k;h=k+(h<<2)|0;c[$+8>>2]=h;pg(k|0,0,W|0)|0;c[aa>>2]=h;h=c[j>>2]|0;b=c[b>>2]|0;if((h|0)!=(b|0)){h=h-b|0;j=0;do{g[k+(j<<2)>>2]=+(d[b+j>>0]|0);j=j+1|0}while(j>>>0>>0)}}vd(_,$);wd(l,$,e,f);xd(Z,l);b=c[l>>2]|0;k=b;if(b){h=l+4|0;j=c[h>>2]|0;if((j|0)!=(b|0))c[h>>2]=j+(~((j+-4-k|0)>>>2)<<2);Oe(b)}cc(a,Z);l=c[a>>2]|0;yd(m,l,e,f);h=c[l>>2]|0;j=h;k=l+4|0;if(!h)h=l+8|0;else{b=c[k>>2]|0;if((b|0)!=(h|0))c[k>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h);h=l+8|0;c[h>>2]=0;c[k>>2]=0;c[l>>2]=0}c[l>>2]=c[m>>2];u=m+4|0;c[k>>2]=c[u>>2];v=m+8|0;c[h>>2]=c[v>>2];c[v>>2]=0;c[u>>2]=0;c[m>>2]=0;u=S+4|0;v=S+8|0;w=S+8|0;x=L+4|0;y=L+8|0;z=M+4|0;A=M+8|0;B=O+4|0;C=O+8|0;J=R+4|0;W=_+4|0;V=c[Z>>2]|0;r=V+12|0;s=V+16|0;q=V+24|0;t=V+28|0;D=T+4|0;E=N+4|0;F=P+4|0;G=Q+4|0;H=O+8|0;K=V;I=0;while(1){c[S>>2]=0;c[u>>2]=0;c[v>>2]=0;zd(S,c[a>>2]|0);yd(P,(c[a>>2]|0)+12|0,e,f);yd(Q,(c[a>>2]|0)+24|0,e,f);Ad(L,P,e,f);h=c[u>>2]|0;if(h>>>0>=(c[w>>2]|0)>>>0){Zb(S,L);h=c[L>>2]|0;j=h;if(h){b=c[x>>2]|0;if((b|0)!=(h|0))c[x>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h)}}else{c[h>>2]=0;p=h+4|0;c[p>>2]=0;c[h+8>>2]=0;c[h>>2]=c[L>>2];c[p>>2]=c[x>>2];c[h+8>>2]=c[y>>2];c[y>>2]=0;c[x>>2]=0;c[L>>2]=0;c[u>>2]=(c[u>>2]|0)+12}Ad(M,Q,e,f);h=c[u>>2]|0;if(h>>>0>=(c[w>>2]|0)>>>0){Zb(S,M);h=c[M>>2]|0;j=h;if(h){b=c[z>>2]|0;if((b|0)!=(h|0))c[z>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h)}}else{c[h>>2]=0;p=h+4|0;c[p>>2]=0;c[h+8>>2]=0;c[h>>2]=c[M>>2];c[p>>2]=c[z>>2];c[h+8>>2]=c[A>>2];c[A>>2]=0;c[z>>2]=0;c[M>>2]=0;c[u>>2]=(c[u>>2]|0)+12}h=c[S>>2]|0;h=(c[h+4>>2]|0)-(c[h>>2]|0)>>2;j=h*3|0;c[O>>2]=0;c[B>>2]=0;c[C>>2]=0;if(h){if(j>>>0>1073741823){U=31;break}p=h*12|0;n=Me(p)|0;c[O>>2]=n;h=n+(j<<2)|0;c[H>>2]=h;pg(n|0,0,p|0)|0;c[B>>2]=h;if((h|0)!=(n|0)){m=c[S>>2]|0;k=c[m>>2]|0;l=c[m+12>>2]|0;m=c[m+24>>2]|0;h=h-n>>2;j=0;b=0;while(1){ca=+g[l+(j<<2)>>2];da=+g[k+(j<<2)>>2];ea=+g[m+(j<<2)>>2]+-128.0;fa=da+ea*1.402;fa=fa<255.0?fa:255.0;g[n+(b<<2)>>2]=fa>0.0?fa:0.0;ca=ca+-128.0;ea=da-ca*.344136-ea*.714136;ea=ea<255.0?ea:255.0;g[n+(b+1<<2)>>2]=ea>0.0?ea:0.0;ca=da+ca*1.772;ca=ca<255.0?ca:255.0;g[n+(b+2<<2)>>2]=ca>0.0?ca:0.0;b=b+3|0;if(b>>>0>=h>>>0)break;else j=j+1|0}}}h=c[Q>>2]|0;j=h;if(h){b=c[G>>2]|0;if((b|0)!=(h|0))c[G>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h)}h=c[P>>2]|0;j=h;if(h){b=c[F>>2]|0;if((b|0)!=(h|0))c[F>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h)}h=c[S>>2]|0;if(h){j=c[u>>2]|0;if((j|0)!=(h|0)){do{b=j+-12|0;c[u>>2]=b;k=c[b>>2]|0;l=k;if(!k)j=b;else{j=j+-8|0;b=c[j>>2]|0;if((b|0)!=(k|0))c[j>>2]=b+(~((b+-4-l|0)>>>2)<<2);Oe(k);j=c[u>>2]|0}}while((j|0)!=(h|0));h=c[S>>2]|0}Oe(h)}vd(R,O);wd(N,O,e,f);xd(T,N);h=c[N>>2]|0;j=h;if(h){b=c[E>>2]|0;if((b|0)!=(h|0))c[E>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h)}j=c[a>>2]|0;l=c[_>>2]|0;h=c[R>>2]|0;b=c[j>>2]|0;k=(c[J>>2]|0)-h>>2;if((k|0)!=((c[j+4>>2]|0)-b>>2|0)){U=57;break}if(((c[W>>2]|0)-l>>2|0)!=(k|0)){U=60;break}if(k){j=0;do{p=b+(j<<2)|0;fa=+g[p>>2]-(+g[h+(j<<2)>>2]-+g[l+(j<<2)>>2]);fa=fa<255.0?fa:255.0;g[p>>2]=fa>0.0?fa:0.0;j=j+1|0}while((j|0)!=(k|0));j=c[a>>2]|0}p=c[T>>2]|0;b=c[r>>2]|0;k=c[p+12>>2]|0;l=c[j+12>>2]|0;m=(c[p+16>>2]|0)-k>>2;o=p;if((m|0)!=((c[j+16>>2]|0)-l>>2|0)){U=64;break}if(((c[s>>2]|0)-b>>2|0)!=(m|0)){U=67;break}if(m){n=0;do{ga=l+(n<<2)|0;fa=+g[ga>>2]-(+g[k+(n<<2)>>2]-+g[b+(n<<2)>>2]);fa=fa<255.0?fa:255.0;g[ga>>2]=fa>0.0?fa:0.0;n=n+1|0}while((n|0)!=(m|0))}b=c[q>>2]|0;l=c[p+24>>2]|0;k=c[j+24>>2]|0;m=(c[p+28>>2]|0)-l>>2;if((m|0)!=((c[j+28>>2]|0)-k>>2|0)){U=70;break}if(((c[t>>2]|0)-b>>2|0)!=(m|0)){U=73;break}if(m){j=0;do{ga=k+(j<<2)|0;fa=+g[ga>>2]-(+g[l+(j<<2)>>2]-+g[b+(j<<2)>>2]);fa=fa<255.0?fa:255.0;g[ga>>2]=fa>0.0?fa:0.0;j=j+1|0}while((j|0)!=(m|0));if(p)U=76}else U=76;if((U|0)==76){U=0;n=c[D>>2]|0;if((n|0)!=(p|0)){b=((n+-12-o|0)>>>0)/12|0;k=n;do{h=k;k=k+-12|0;l=c[k>>2]|0;m=l;if(l){h=h+-8|0;j=c[h>>2]|0;if((j|0)!=(l|0))c[h>>2]=j+(~((j+-4-m|0)>>>2)<<2);Oe(l)}}while((k|0)!=(p|0));c[D>>2]=n+(~b*12|0)}Oe(p);h=c[R>>2]|0}j=h;if(h){b=c[J>>2]|0;if((b|0)!=(h|0))c[J>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h)}h=c[O>>2]|0;j=h;if(h){b=c[B>>2]|0;if((b|0)!=(h|0))c[B>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h)}I=I+1|0;if((I|0)>=20){U=94;break}}if((U|0)==31)Ke(O);else if((U|0)==57)za(36953,36991,442,37056);else if((U|0)==60)za(37068,36991,443,37056);else if((U|0)==64)za(36953,36991,442,37056);else if((U|0)==67)za(37068,36991,443,37056);else if((U|0)==70)za(36953,36991,442,37056);else if((U|0)==73)za(37068,36991,443,37056);else if((U|0)==94){h=c[a>>2]|0;m=h+12|0;yd(X,m,e,f);j=c[m>>2]|0;b=j;l=h+16|0;if(!j)h=h+20|0;else{k=c[l>>2]|0;if((k|0)!=(j|0))c[l>>2]=k+(~((k+-4-b|0)>>>2)<<2);Oe(j);h=h+20|0;c[h>>2]=0;c[l>>2]=0;c[m>>2]=0}c[m>>2]=c[X>>2];m=X+4|0;c[l>>2]=c[m>>2];l=X+8|0;c[h>>2]=c[l>>2];c[l>>2]=0;c[m>>2]=0;c[X>>2]=0;l=c[a>>2]|0;m=l+24|0;yd(Y,m,e,f);h=c[m>>2]|0;j=h;k=l+28|0;if(!h)h=l+32|0;else{b=c[k>>2]|0;if((b|0)!=(h|0))c[k>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h);h=l+32|0;c[h>>2]=0;c[k>>2]=0;c[m>>2]=0}c[m>>2]=c[Y>>2];ga=Y+4|0;c[k>>2]=c[ga>>2];e=Y+8|0;c[h>>2]=c[e>>2];c[e>>2]=0;c[ga>>2]=0;c[Y>>2]=0;if(V){n=Z+4|0;o=c[n>>2]|0;if((o|0)!=(V|0)){b=~(((o+-12-K|0)>>>0)/12|0);k=o;do{h=k;k=k+-12|0;l=c[k>>2]|0;m=l;if(l){h=h+-8|0;j=c[h>>2]|0;if((j|0)!=(l|0))c[h>>2]=j+(~((j+-4-m|0)>>>2)<<2);Oe(l)}}while((k|0)!=(V|0));c[n>>2]=o+(b*12|0)}Oe(V)}h=c[_>>2]|0;j=h;if(h){b=c[W>>2]|0;if((b|0)!=(h|0))c[W>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(h)}h=c[$>>2]|0;if(!h){i=ba;return}j=c[aa>>2]|0;if((j|0)!=(h|0))c[aa>>2]=j+(~((j+-4-h|0)>>>2)<<2);Oe(h);i=ba;return}}function sd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;f=o+40|0;e=o+32|0;g=o+24|0;h=o+16|0;n=o;c[n>>2]=0;j=n+4|0;c[j>>2]=0;k=n+8|0;c[k>>2]=0;l=c[d+4>>2]|0;do if(l)if((l|0)<0)Ke(n);else{p=((l+-1|0)>>>5)+1|0;c[n>>2]=Me(p<<2)|0;c[j>>2]=0;c[k>>2]=p;k=c[d>>2]|0;c[g>>2]=k;c[g+4>>2]=0;c[h>>2]=k+(l>>>5<<2);c[h+4>>2]=l&31;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];Bd(n,e,f);break}while(0);if((b|0)>2){e=c[n>>2]|0;if((a|0)>2){l=2;f=1;while(1){j=_(f,a)|0;k=2;f=1;while(1){f=f+j|0;g=f>>>5;h=1<<(f&31);if(!(((((c[e+(g<<2)>>2]&h|0)!=0?(p=f+-1|0,(c[e+(p>>>5<<2)>>2]&1<<(p&31)|0)!=0):0)?(p=f+1|0,(c[e+(p>>>5<<2)>>2]&1<<(p&31)|0)!=0):0)?(p=f-a|0,(c[e+(p>>>5<<2)>>2]&1<<(p&31)|0)!=0):0)?(p=f+a|0,(c[e+(p>>>5<<2)>>2]&1<<(p&31)|0)!=0):0)){p=(c[d>>2]|0)+(g<<2)|0;c[p>>2]=c[p>>2]&~h}f=k+1|0;if((f|0)==(a|0))break;else{p=k;k=f;f=p}}f=l+1|0;if((f|0)==(b|0)){m=16;break}else{p=l;l=f;f=p}}}}else m=16;if((m|0)==16)e=c[n>>2]|0;if(!e){i=o;return}Oe(e);i=o;return}function td(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;f=o+40|0;e=o+32|0;g=o+24|0;h=o+16|0;n=o;c[n>>2]=0;j=n+4|0;c[j>>2]=0;k=n+8|0;c[k>>2]=0;l=c[d+4>>2]|0;do if(l)if((l|0)<0)Ke(n);else{m=((l+-1|0)>>>5)+1|0;c[n>>2]=Me(m<<2)|0;c[j>>2]=0;c[k>>2]=m;m=c[d>>2]|0;c[g>>2]=m;c[g+4>>2]=0;c[h>>2]=m+(l>>>5<<2);c[h+4>>2]=l&31;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];Bd(n,e,f);break}while(0);if((b|0)>2){k=(a|0)>2;l=c[n>>2]|0;m=2;e=1;while(1){if(k){h=_(e,a)|0;j=2;e=1;while(1){e=e+h|0;f=e>>>5;g=1<<(e&31);if(!(((((c[l+(f<<2)>>2]&g|0)==0?(p=e+-1|0,(c[l+(p>>>5<<2)>>2]&1<<(p&31)|0)==0):0)?(p=e+1|0,(c[l+(p>>>5<<2)>>2]&1<<(p&31)|0)==0):0)?(p=e-a|0,(c[l+(p>>>5<<2)>>2]&1<<(p&31)|0)==0):0)?(p=e+a|0,(c[l+(p>>>5<<2)>>2]&1<<(p&31)|0)==0):0)){p=(c[d>>2]|0)+(f<<2)|0;c[p>>2]=c[p>>2]|g}e=j+1|0;if((e|0)==(a|0))break;else{p=j;j=e;e=p}}}e=m+1|0;if((e|0)==(b|0))break;else{p=m;m=e;e=p}}}e=c[n>>2]|0;if(!e){i=o;return}Oe(e);i=o;return}function ud(a,b,d,e,f,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;k=+k;var l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+16|0;t=x;$b(t,b);w=(j|0)/2|0;l=c[b+4>>2]|0;s=c[b>>2]|0;if((l|0)!=(s|0)){p=l-s>>2;q=j-w|0;n=(j|0)>0;o=c[t>>2]|0;r=0;do{v=(r|0)%(d|0)|0;if(!((v|0)<(w|0)|(q+v|0)>(d|0))){if(n){b=r-w|0;l=0;m=0.0;do{m=m+ +h[f+(l<<3)>>3]*+g[s+(b+l<<2)>>2];l=l+1|0}while((l|0)!=(j|0))}else m=0.0;g[o+(r<<2)>>2]=m*k}r=r+1|0}while(r>>>0

>>0)}$b(a,t);u=t+4|0;v=c[u>>2]|0;s=c[t>>2]|0;t=(v|0)==(s|0);a:do if(t)b=s;else{b=s;q=v-b>>2;r=j-w|0;if((j|0)>0)p=0;else{m=k*0.0;l=0;while(1){j=(l|0)/(d|0)|0;if(!((j|0)<(w|0)|(r+j|0)>(e|0)))g[(c[a>>2]|0)+(l<<2)>>2]=m;l=l+1|0;if(l>>>0>=q>>>0)break a}}do{o=(p|0)%(d|0)|0;l=(p|0)/(d|0)|0;if(!((l|0)<(w|0)|(r+l|0)>(e|0))){l=l-w|0;n=0;m=0.0;do{m=m+ +h[f+(n<<3)>>3]*+g[s+((_(l+n|0,d)|0)+o<<2)>>2];n=n+1|0}while((n|0)!=(j|0));g[(c[a>>2]|0)+(p<<2)>>2]=m*k}p=p+1|0}while(p>>>0>>0)}while(0);if(!s){i=x;return}if(!t)c[u>>2]=v+(~((v+-4-b|0)>>>2)<<2);Oe(s);i=x;return}function vd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0;d=b+4|0;e=c[d>>2]|0;i=c[b>>2]|0;j=e-i>>2;if((j>>>0)%3|0)za(37192,36991,322,37212);k=(j>>>0)/3|0;c[a>>2]=0;f=a+4|0;c[f>>2]=0;c[a+8>>2]=0;do if(j>>>0>=3)if(j>>>0>3221225471)Ke(a);else{l=k<<2;m=Me(l)|0;c[a>>2]=m;h=m+(k<<2)|0;c[a+8>>2]=h;pg(m|0,0,l|0)|0;c[f>>2]=h;h=c[d>>2]|0;l=c[b>>2]|0;break}else{h=e;l=i;m=0}while(0);if((h|0)==(l|0))return;d=h-l>>2;e=0;f=0;while(1){o=+P(+(+g[l+(f<<2)>>2]/255.0),2.2);n=+P(+(+g[l+(f+1<<2)>>2]/255.0),2.2);g[m+(e<<2)>>2]=+P(+(o*.29899999499320984+n*.5870000123977661+ +P(+(+g[l+(f+2<<2)>>2]/255.0),2.2)*.11400000005960464),.45454545454545453)*255.0;f=f+3|0;if(f>>>0>=d>>>0)break;else e=e+1|0}return}function wd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0;if(((c[b+4>>2]|0)-(c[b>>2]|0)>>2|0)!=(_(d*3|0,e)|0))za(37134,36991,334,37170);o=(d+1|0)/2|0;p=(e+1|0)/2|0;f=_(o*3|0,p)|0;c[a>>2]=0;h=a+4|0;c[h>>2]=0;c[a+8>>2]=0;do if(f)if(f>>>0>1073741823)Ke(a);else{m=f<<2;q=Me(m)|0;c[a>>2]=q;n=q+(f<<2)|0;c[a+8>>2]=n;pg(q|0,0,m|0)|0;c[h>>2]=n;break}else q=0;while(0);if((e|0)<=0)return;n=(d|0)>0;l=e+-1|0;m=d+-1|0;i=c[b>>2]|0;j=(d|0)>2?o*3|0:3;f=0;k=0;do{if(n){a=k<<1;h=a|1;h=_((h|0)<(l|0)?h:l,d)|0;a=_((a|0)<(l|0)?a:l,d)|0;e=f;b=0;while(1){t=b<<1;w=(t|0)<(m|0)?t:m;u=(w+h|0)*3|0;w=(w+a|0)*3|0;t=t|1;t=(t|0)<(m|0)?t:m;v=(t+a|0)*3|0;t=(t+h|0)*3|0;r=q+(e<<2)|0;g[r>>2]=0.0;s=+P(+(+g[i+(w<<2)>>2]/255.0),2.2)+0.0;g[r>>2]=s;s=+P(+(+g[i+(v<<2)>>2]/255.0),2.2)+s;g[r>>2]=s;s=+P(+(+g[i+(u<<2)>>2]/255.0),2.2)+s;g[r>>2]=s;g[r>>2]=+P(+((+P(+(+g[i+(t<<2)>>2]/255.0),2.2)+s)*.25),.45454545454545453)*255.0;r=e+1|0;x=q+(r<<2)|0;g[x>>2]=0.0;s=+P(+(+g[i+(w+1<<2)>>2]/255.0),2.2)+0.0;g[x>>2]=s;s=+P(+(+g[i+(v+1<<2)>>2]/255.0),2.2)+s;g[x>>2]=s;s=+P(+(+g[i+(u+1<<2)>>2]/255.0),2.2)+s;g[x>>2]=s;g[x>>2]=+P(+((+P(+(+g[i+(t+1<<2)>>2]/255.0),2.2)+s)*.25),.45454545454545453)*255.0;r=q+(r+1<<2)|0;g[r>>2]=0.0;s=+P(+(+g[i+(w+2<<2)>>2]/255.0),2.2)+0.0;g[r>>2]=s;s=+P(+(+g[i+(v+2<<2)>>2]/255.0),2.2)+s;g[r>>2]=s;s=+P(+(+g[i+(u+2<<2)>>2]/255.0),2.2)+s;g[r>>2]=s;g[r>>2]=+P(+((+P(+(+g[i+(t+2<<2)>>2]/255.0),2.2)+s)*.25),.45454545454545453)*255.0;b=b+1|0;if((b|0)>=(o|0))break;else e=e+3|0}f=j+f|0}k=k+1|0}while((k|0)<(p|0));return}function xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0;l=i;i=i+16|0;f=l;h=b+4|0;d=(c[h>>2]|0)-(c[b>>2]|0)>>2;e=(d>>>0)/3|0;c[f>>2]=0;j=f+4|0;c[j>>2]=0;c[f+8>>2]=0;do if(d>>>0>=3)if(d>>>0>3221225471)Ke(f);else{d=e<<2;m=Me(d)|0;c[f>>2]=m;k=m+(e<<2)|0;c[f+8>>2]=k;pg(m|0,0,d|0)|0;c[j>>2]=k;break}while(0);c[a>>2]=0;d=a+4|0;c[d>>2]=0;c[a+8>>2]=0;k=Me(36)|0;c[d>>2]=k;c[a>>2]=k;c[a+8>>2]=k+36;$b(k,f);e=k+12|0;c[d>>2]=e;$b(e,f);e=k+24|0;c[d>>2]=e;$b(e,f);c[d>>2]=k+36;d=c[f>>2]|0;e=d;if(d){f=c[j>>2]|0;if((f|0)!=(d|0))c[j>>2]=f+(~((f+-4-e|0)>>>2)<<2);Oe(d)}d=c[h>>2]|0;h=c[b>>2]|0;if((d|0)==(h|0)){i=l;return}j=c[k>>2]|0;b=c[k+12>>2]|0;a=c[k+24>>2]|0;d=d-h>>2;e=0;f=0;while(1){p=+g[h+(f<<2)>>2];o=+g[h+(f+1<<2)>>2];n=+g[h+(f+2<<2)>>2];g[j+(e<<2)>>2]=p*.29899999499320984+o*.5870000123977661+n*.11400000005960464;g[b+(e<<2)>>2]=p*-.16874000430107117-o*.33125999569892883+n*.5+128.0;g[a+(e<<2)>>2]=p*.5-o*.4186899960041046-n*.08130999654531479+128.0;f=f+3|0;if(f>>>0>=d>>>0)break;else e=e+1|0}i=l;return}function yd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=(d+1|0)/2|0;o=(e+1|0)/2|0;if(((c[b+4>>2]|0)-(c[b>>2]|0)>>2|0)!=(_(o,n)|0))za(37099,36991,388,37122);f=_(e,d)|0;c[a>>2]=0;g=a+4|0;c[g>>2]=0;c[a+8>>2]=0;do if(f)if(f>>>0>1073741823)Ke(a);else{l=f<<2;p=Me(l)|0;c[a>>2]=p;m=p+(f<<2)|0;c[a+8>>2]=m;pg(p|0,0,l|0)|0;c[g>>2]=m;break}else p=0;while(0);if((e|0)<=0)return;m=(d|0)>0;k=e+-1|0;l=d+-1|0;h=c[b>>2]|0;i=(n|0)>1?n:1;f=0;j=0;do{if(m){a=j<<1;g=_((a|0)<(k|0)?a:k,d)|0;a=a|1;a=_((a|0)<(k|0)?a:k,d)|0;e=f;b=0;while(1){q=b<<1;r=h+(e<<2)|0;s=(q|0)<(l|0)?q:l;c[p+(s+g<<2)>>2]=c[r>>2];q=q|1;q=(q|0)<(l|0)?q:l;c[p+(q+g<<2)>>2]=c[r>>2];c[p+(s+a<<2)>>2]=c[r>>2];c[p+(q+a<<2)>>2]=c[r>>2];b=b+1|0;if((b|0)>=(n|0))break;else e=e+1|0}f=i+f|0}j=j+1|0}while((j|0)<(o|0));return}function zd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=a+4|0;d=c[a>>2]|0;f=(((c[k>>2]|0)-d|0)/12|0)+1|0;if(f>>>0>357913941)Ke(a);l=a+8|0;e=((c[l>>2]|0)-d|0)/12|0;if(e>>>0<178956970){e=e<<1;e=e>>>0>>0?f:e;d=((c[k>>2]|0)-d|0)/12|0;if(!e){g=0;h=0}else i=6}else{e=357913941;d=((c[k>>2]|0)-d|0)/12|0;i=6}if((i|0)==6){g=e;h=Me(e*12|0)|0}f=h+(d*12|0)|0;e=f;j=h+(g*12|0)|0;$b(f,b);i=h+((d+1|0)*12|0)|0;h=c[a>>2]|0;d=c[k>>2]|0;if((d|0)==(h|0)){f=a;g=k;b=h}else{do{b=f+-12|0;g=d;d=d+-12|0;c[b>>2]=0;m=f+-8|0;c[m>>2]=0;c[f+-4>>2]=0;c[b>>2]=c[d>>2];b=g+-8|0;c[m>>2]=c[b>>2];g=g+-4|0;c[f+-4>>2]=c[g>>2];c[g>>2]=0;c[b>>2]=0;c[d>>2]=0;f=e+-12|0;e=f}while((d|0)!=(h|0));d=e;f=a;g=k;e=d;b=c[a>>2]|0;d=c[k>>2]|0}c[f>>2]=e;c[g>>2]=i;c[l>>2]=j;i=b;if((d|0)!=(i|0))do{e=d;d=d+-12|0;g=c[d>>2]|0;h=g;if(g){e=e+-8|0;f=c[e>>2]|0;if((f|0)!=(g|0))c[e>>2]=f+(~((f+-4-h|0)>>>2)<<2);Oe(g)}}while((d|0)!=(i|0));if(!b)return;Oe(b);return}function Ad(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;f=_(e,d)|0;c[a>>2]=0;h=a+4|0;c[h>>2]=0;c[a+8>>2]=0;do if(f)if(f>>>0>1073741823)Ke(a);else{w=f<<2;y=Me(w)|0;c[a>>2]=y;x=y+(f<<2)|0;c[a+8>>2]=x;pg(y|0,0,w|0)|0;c[h>>2]=x;break}else y=0;while(0);if((e|0)<=0)return;v=(d|0)>0;w=d+-1|0;x=e+-1|0;s=c[b>>2]|0;t=0-d|0;f=y;u=0;do{if(v){o=u+-2|0;n=_(u,d)|0;o=(o|0)>0?o:0;o=_((o|0)<(x|0)?o:x,d)|0;r=u|1;p=(r|0)<(e|0);q=u+2|0;q=_((q|0)<(x|0)?q:x,d)|0;r=_(r,d)|0;l=t;m=0;while(1){i=(l|0)==-1?1:2;j=m+-2|0;h=m+n|0;k=s+(h<<2)|0;a=s+(o+m<<2)|0;b=0;do{z=j+(b<<2)|0;z=(z|0)>0?z:0;z=(z|0)<(w|0)?z:w;g[f+(h+b<<2)>>2]=(+g[s+(z+o<<2)>>2]+(+g[k>>2]*9.0+ +g[s+(z+n<<2)>>2]*3.0+ +g[a>>2]*3.0))*.0625;b=b+1|0}while((b|0)!=(i|0));if(p){f=s+(q+m<<2)|0;h=r+m|0;a=0;do{z=j+(a<<2)|0;z=(z|0)>0?z:0;z=(z|0)<(w|0)?z:w;g[y+(h+a<<2)>>2]=(+g[s+(z+q<<2)>>2]+(+g[k>>2]*9.0+ +g[s+(z+n<<2)>>2]*3.0+ +g[f>>2]*3.0))*.0625;a=a+1|0}while((a|0)!=(i|0));f=y}m=m+2|0;if((m|0)>=(d|0))break;else l=l+2|0}}u=u+2|0}while((u|0)<(e|0));return}function Bd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;o=s+40|0;n=s+32|0;k=s+8|0;l=s;m=s+24|0;r=s+16|0;q=a+4|0;t=c[q>>2]|0;f=c[b>>2]|0;b=c[b+4>>2]|0;h=d;e=c[h>>2]|0;h=c[h+4>>2]|0;j=e-f<<3;c[q>>2]=t-b+h+j;q=c[a>>2]|0;p=t>>>5;g=q+(p<<2)|0;a=t&31;d=g;if((b|0)!=(a|0)){t=k;c[t>>2]=f;c[t+4>>2]=b;t=l;c[t>>2]=e;c[t+4>>2]=h;c[m>>2]=d;c[m+4>>2]=a;c[n>>2]=c[k>>2];c[n+4>>2]=c[k+4>>2];c[o>>2]=c[l>>2];c[o+4>>2]=c[l+4>>2];Cd(r,n,o,m);i=s;return}e=f;a=h-b+j|0;if((a|0)>0){if(!b){b=e;d=p;h=0}else{h=32-b|0;t=(a|0)<(h|0)?a:h;h=-1>>>(h-t|0)&-1<>2]=c[g>>2]&~h|c[e>>2]&h;h=t+b|0;d=(h>>>5)+p|0;f=e+4|0;g=q+(d<<2)|0;b=f;a=a-t|0;h=h&31}e=a>>>5;ug(g|0,b|0,e<<2|0)|0;b=a-(e<<5)|0;a=q+(e+d<<2)|0;d=a;if((b|0)>0){t=-1>>>(32-b|0);c[a>>2]=c[a>>2]&~t|c[f+(e<<2)>>2]&t}else b=h}c[r>>2]=d;c[r+4>>2]=b;i=s;return}function Cd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=c[b>>2]|0;m=c[b+4>>2]|0;i=(c[d+4>>2]|0)-m+((c[d>>2]|0)-f<<3)|0;if((i|0)<=0){b=e+4|0;e=c[e>>2]|0;c[a>>2]=e;a=a+4|0;e=c[b>>2]|0;c[a>>2]=e;return}if(!m){d=e+4|0;l=d;d=c[d>>2]|0}else{g=32-m|0;n=(i|0)<(g|0)?i:g;g=-1>>>(g-n|0)&-1<>2];l=e+4|0;k=c[l>>2]|0;d=32-k|0;h=d>>>0>>0?d:n;j=c[e>>2]|0;k=c[j>>2]&~(-1>>>(d-h|0)&-1<>2]=k;d=c[l>>2]|0;c[j>>2]=k|(d>>>0>m>>>0?g<>>(m-d|0));d=(c[l>>2]|0)+h|0;j=j+(d>>>5<<2)|0;c[e>>2]=j;d=d&31;c[l>>2]=d;k=n-h|0;if((k|0)>0){c[j>>2]=c[j>>2]&~(-1>>>(32-k|0))|g>>>(m+h|0);c[l>>2]=k;d=k}f=f+4|0;c[b>>2]=f;i=i-n|0}p=32-d|0;g=-1<>>0>31){h=~g;d=c[e>>2]|0;m=i+-32|0;k=m>>>5;j=k+1|0;k=m-(k<<5)|0;m=f;n=c[d>>2]|0;o=d;while(1){q=c[m>>2]|0;r=n&h;c[o>>2]=r;c[o>>2]=r|q<>2];o=o+4|0;n=c[o>>2]&g|q>>>p;c[o>>2]=n;i=i+-32|0;if(i>>>0<=31)break;else m=m+4|0}f=f+(j<<2)|0;c[b>>2]=f;c[e>>2]=d+(j<<2);i=k}if((i|0)<=0){q=l;r=c[e>>2]|0;c[a>>2]=r;r=a+4|0;q=c[q>>2]|0;c[r>>2]=q;return}g=c[f>>2]&-1>>>(32-i|0);h=(p|0)<(i|0)?p:i;d=c[e>>2]|0;f=c[d>>2]&~(-1<>2]&-1>>>(p-h|0));c[d>>2]=f;c[d>>2]=f|g<>2];f=(c[l>>2]|0)+h|0;d=d+(f>>>5<<2)|0;c[e>>2]=d;c[l>>2]=f&31;f=i-h|0;if((f|0)<=0){q=l;r=c[e>>2]|0;c[a>>2]=r;r=a+4|0;q=c[q>>2]|0;c[r>>2]=q;return}c[d>>2]=c[d>>2]&~(-1>>>(32-f|0))|g>>>h;c[l>>2]=f;q=l;r=c[e>>2]|0;c[a>>2]=r;r=a+4|0;q=c[q>>2]|0;c[r>>2]=q;return}function Dd(a,b,c){a=a|0;b=b|0;c=c|0;kg(a,b,c)|0;return c|0}function Ed(d,e,f,j,k){d=d|0;e=e|0;f=f|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0.0;La=i;i=i+6784|0;xa=La+2976|0;Ga=La+2968|0;Fa=La+1944|0;Ea=La+1936|0;Ca=La+1928|0;Ba=La+1920|0;Aa=La+1912|0;ya=La+1904|0;Ha=La+1896|0;r=La+1888|0;Da=La+1072|0;o=La+1064|0;qa=La+40|0;ia=La+6764|0;ja=La+6752|0;la=La+6740|0;ma=La+6728|0;ta=La+5960|0;Ka=La+5808|0;ua=La+5040|0;Ja=La+5024|0;p=La+4984|0;q=La+4972|0;x=La+4960|0;Ia=La+4940|0;ra=La+4920|0;wa=La+4768|0;pa=La+4e3|0;va=La;sa=La+4996|0;l=sa+4|0;na=sa+7|0;c[sa>>2]=c[d>>2];c[sa+4>>2]=c[d+4>>2];c[sa+8>>2]=c[d+8>>2];a[sa+12>>0]=a[d+12>>0]|0;oa=sa+16|0;c[oa>>2]=f;c[sa+20>>2]=j;ka=sa+24|0;c[ka>>2]=k;if(+g[d>>2]>2.0){Gf(37233,158,1,c[8426]|0)|0;Ka=0;i=La;return Ka|0}m=e+84|0;n=e+80|0;if(((c[m>>2]|0)-(c[n>>2]|0)|0)==120?Gc(e)|0:0){if(!(yc(e)|0))if(xc(e)|0)z=1;else{l=c[8426]|0;Gf(37438,29,1,l)|0;d=c[n>>2]|0;if((c[m>>2]|0)!=(d|0)){e=0;do{Ka=c[d+(e*40|0)+8>>2]|0;c[o>>2]=c[d+(e*40|0)+4>>2];c[o+4>>2]=Ka;Cf(l,37468,o)|0;e=e+1|0;d=c[n>>2]|0}while(e>>>0<(((c[m>>2]|0)-d|0)/40|0)>>>0)}Df(10,l)|0;Ka=0;i=La;return Ka|0}else z=0;Gd(Ka,e);c[Ja>>2]=0;c[Ja+4>>2]=0;c[Ja+8>>2]=0;a[Ja+1>>0]=0;a[Ja>>0]=0;y=b[l>>1]|0;ga=c[l>>2]|0;c[qa>>2]=6;c[qa+4>>2]=Ja;B=ga>>>16&255;c[xa>>2]=c[qa>>2];c[xa+4>>2]=c[qa+4>>2];if(!(Rc(Ka,(ga&255)<<24>>24!=0,xa)|0))za(37475,37477,119,37530);s=j+32|0;h[s>>3]=-1.0;ga=a[Ja>>0]|0;t=Ja+4|0;c[Da>>2]=(ga&1)==0?(ga&255)>>>1:c[t>>2]|0;If(xa,1024,37541,Da)|0;a[xa+1023>>0]=0;eg(p,xa,Vf(xa)|0);mc(k,p);fg(p);if(f){p=Ka+80|0;o=c[p>>2]|0;n=c[Ka+56>>2]|0;l=c[n+((c[o+12>>2]|0)*24|0)>>2]|0;tg(ua|0,l|0,256)|0;d=c[o+32>>2]|0;m=c[o+28>>2]|0;if((d|0)!=(m|0)){d=d-m>>1;e=0;do{ga=m+(e<<1)|0;b[ga>>1]=_(b[ga>>1]|0,c[l+(((e|0)%64|0)<<2)>>2]|0)|0;e=e+1|0}while(e>>>0>>0)}l=c[n+((c[o+52>>2]|0)*24|0)>>2]|0;tg(ua+256|0,l|0,256)|0;d=c[o+72>>2]|0;m=c[o+68>>2]|0;if((d|0)!=(m|0)){d=d-m>>1;e=0;do{ga=m+(e<<1)|0;b[ga>>1]=_(b[ga>>1]|0,c[l+(((e|0)%64|0)<<2)>>2]|0)|0;e=e+1|0}while(e>>>0>>0)}m=c[n+((c[o+92>>2]|0)*24|0)>>2]|0;tg(ua+512|0,m|0,256)|0;d=c[o+112>>2]|0;l=c[o+108>>2]|0;if((d|0)!=(l|0)){d=d-l>>1;e=0;do{ga=l+(e<<1)|0;b[ga>>1]=_(b[ga>>1]|0,c[m+(((e|0)%64|0)<<2)>>2]|0)|0;e=e+1|0}while(e>>>0>>0)}d=0;do{c[ta+(d<<2)>>2]=1;d=d+1|0}while((d|0)!=64);d=0;do{c[ta+256+(d<<2)>>2]=1;d=d+1|0}while((d|0)!=64);d=0;do{c[ta+512+(d<<2)>>2]=1;d=d+1|0}while((d|0)!=64);Ac(ta,Ka);ga=Ka+4|0;dd(Ia,c[Ka>>2]|0,c[ga>>2]|0);ed(Ia,Ka);ib[c[(c[f>>2]|0)+8>>2]&3](f,Ia);Hd(sa,Ja);if(z){d=1;e=1}else{a:do if(!(B<<24>>24))if((y&65535)>=256){m=c[p>>2]|0;d=c[m+72>>2]|0;l=c[m+68>>2]|0;if((d|0)!=(l|0)){d=d-l>>1;e=0;do{if(b[l+(e<<1)>>1]|0){e=1;break a}e=e+1|0}while(e>>>0>>0)}d=c[m+112>>2]|0;l=c[m+108>>2]|0;if((d|0)!=(l|0)){d=d-l>>1;e=0;while(1){if(b[l+(e<<1)>>1]|0){e=1;break a}e=e+1|0;if(e>>>0>=d>>>0){e=0;break}}}else e=0}else e=0;else e=1;while(0);d=B<<24>>24!=0}d=d&1;b:do if((d|0)<=(e|0)){v=ra+8|0;w=xa+4|0;x=xa+8|0;j=xa+12|0;y=xa+16|0;z=xa+20|0;f=xa+8|0;B=xa+16|0;C=xa+24|0;D=xa+44|0;E=xa+32|0;F=xa+36|0;G=xa+40|0;H=qa+776|0;I=qa+788|0;J=qa+800|0;K=qa+768|0;u=Da+768|0;L=qa+780|0;M=Da+776|0;N=Da+780|0;O=Da+788|0;P=qa+788|0;Q=qa+792|0;R=Da+800|0;S=va+12|0;T=Da+788|0;U=Da+792|0;V=va+24|0;W=qa+1023|0;X=qa+1023|0;Y=qa+1023|0;Z=Fa+1023|0;$=xa+32|0;aa=wa+84|0;ba=wa+80|0;ca=va+12|0;da=ra+8|0;ea=ra+12|0;fa=va+16|0;l=k;c:while(1){dd(ra,c[Ka>>2]|0,c[ga>>2]|0);ed(ra,Ka);Gd(wa,Ka);t=(d|0)!=0;if(t){k=c[v>>2]|0;if((c[k+316>>2]|0)<=1?(c[k+320>>2]|0)<=1:0){c[xa>>2]=2;c[w>>2]=2;c[x>>2]=2;c[j>>2]=2;c[y>>2]=16843009;a[z>>0]=a[na>>0]|0;fd(ra,xa)}hd(ra,wa)}tg(pa|0,ua|0,768)|0;c[va>>2]=0;c[va+4>>2]=0;c[va+8>>2]=0;c[va+12>>2]=0;c[va+16>>2]=0;c[va+20>>2]=0;a[xa>>0]=t&1;h[f>>3]=-1.0;h[B>>3]=-1.0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;c[C+16>>2]=0;c[D>>2]=l;A=0.0;l=0;do{A=A+1.0/(+(c[31388+(l<<2)>>2]|0)*.5+1.0)*3.0;l=l+1|0}while((l|0)!=64);h[C>>3]=A;Id(Da,sa,wa,pa);do{if(!(Jd(xa,ta)|0)){ha=60;break}Id(qa,sa,wa,ta);m=c[F>>2]|0;do if((m|0)==(c[G>>2]|0)){l=c[E>>2]|0;n=((m-l|0)/816|0)+1|0;if(n>>>0>5263440)break c;o=l;l=(m-o|0)/816|0;if(l>>>0<2631720){l=l<<1;l=l>>>0>>0?n:l;m=((c[F>>2]|0)-o|0)/816|0;if(!l){o=0;p=0}else ha=68}else{l=5263440;m=((c[F>>2]|0)-o|0)/816|0;ha=68}if((ha|0)==68){o=l;p=Me(l*816|0)|0}n=p+(m*816|0)|0;l=n;q=p+(o*816|0)|0;tg(n|0,qa|0,769)|0;dg(p+(m*816|0)+776|0,H);$b(p+(m*816|0)+788|0,I);o=p+(m*816|0)+800|0;c[o>>2]=c[J>>2];c[o+4>>2]=c[J+4>>2];c[o+8>>2]=c[J+8>>2];c[o+12>>2]=c[J+12>>2];p=p+((m+1|0)*816|0)|0;o=c[E>>2]|0;m=c[F>>2]|0;if((m|0)==(o|0)){m=o;r=m}else{do{k=m;m=m+-816|0;tg(n+-816|0,m|0,769)|0;ha=n+-40|0;s=k+-40|0;c[ha>>2]=c[s>>2];c[ha+4>>2]=c[s+4>>2];c[ha+8>>2]=c[s+8>>2];c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;s=n+-28|0;ha=k+-28|0;c[s>>2]=0;r=n+-24|0;c[r>>2]=0;c[n+-20>>2]=0;c[s>>2]=c[ha>>2];s=k+-24|0;c[r>>2]=c[s>>2];r=k+-20|0;c[n+-20>>2]=c[r>>2];c[r>>2]=0;c[s>>2]=0;c[ha>>2]=0;ha=n+-16|0;k=k+-16|0;c[ha>>2]=c[k>>2];c[ha+4>>2]=c[k+4>>2];c[ha+8>>2]=c[k+8>>2];c[ha+12>>2]=c[k+12>>2];n=l+-816|0;l=n}while((m|0)!=(o|0));r=c[E>>2]|0;m=c[F>>2]|0}c[E>>2]=l;c[F>>2]=p;c[G>>2]=q;q=r;l=m;if((l|0)!=(q|0))do{m=c[l+-28>>2]|0;n=m;if(m){o=l+-24|0;p=c[o>>2]|0;if((p|0)!=(m|0))c[o>>2]=p+(~((p+-4-n|0)>>>2)<<2);Oe(m)}fg(l+-40|0);l=l+-816|0}while((l|0)!=(q|0));if(!r){l=0;A=0.0;break}Oe(r);l=0;A=0.0}else{tg(m|0,qa|0,769)|0;dg(m+776|0,H);$b(m+788|0,I);l=m+800|0;c[l>>2]=c[J>>2];c[l+4>>2]=c[J+4>>2];c[l+8>>2]=c[J+8>>2];c[l+12>>2]=c[J+12>>2];c[F>>2]=(c[F>>2]|0)+816;l=0;A=0.0}while(0);do{A=A+1.0/(+(c[31388+(l<<2)>>2]|0)*.5+1.0)*((+(c[qa+(l<<2)>>2]|0)+-1.0)*.5);l=l+1|0}while((l|0)!=64);l=0;do{A=A+1.0/(+(c[31388+(l<<2)>>2]|0)*.5+1.0)*((+(c[qa+256+(l<<2)>>2]|0)+-1.0)*.5);l=l+1|0}while((l|0)!=64);l=0;do{A=A+1.0/(+(c[31388+(l<<2)>>2]|0)*.5+1.0)*((+(c[qa+512+(l<<2)>>2]|0)+-1.0)*.5);l=l+1|0}while((l|0)!=64);if(!(a[K>>0]|0)){Ma=+h[B>>3];h[B>>3]=Ma==-1.0|A>0]|0))ha=87;else ha=90}else{Ma=+h[f>>3];h[f>>3]=Ma>0]|0))ha=88;else ha=87}if((ha|0)==87){k=a[H>>0]|0;ha=a[M>>0]|0;if(((k&1)==0?(k&255)>>>1:c[L>>2]|0)>>>0<((ha&1)==0?(ha&255)>>>1:c[N>>2]|0)>>>0)ha=88;else ha=90}do if((ha|0)==88){ha=0;tg(Da|0,qa|0,769)|0;gg(M,H)|0;Kd(O,c[P>>2]|0,c[Q>>2]|0);c[R>>2]=c[J>>2];c[R+4>>2]=c[J+4>>2];c[R+8>>2]=c[J+8>>2];c[R+12>>2]=c[J+12>>2];if(!(a[K>>0]|0)){ha=90;break}k=c[oa>>2]|0;if(kb[c[(c[k>>2]|0)+20>>2]&1](k,.949999988079071)|0)ha=90;else l=2}while(0);if((ha|0)==90){ha=0;l=0}m=c[P>>2]|0;n=m;if(m){o=c[Q>>2]|0;if((o|0)!=(m|0))c[Q>>2]=o+(~((o+-4-n|0)>>>2)<<2);Oe(m)}fg(H)}while((l|0)==0);if((ha|0)==60)ha=0;tg(pa|0,Da|0,768)|0;gg(va,M)|0;Kd(S,c[T>>2]|0,c[U>>2]|0);c[V>>2]=c[R>>2];c[V+4>>2]=c[R+4>>2];c[V+8>>2]=c[R+8>>2];c[V+12>>2]=c[R+12>>2];c[Ha>>2]=t?37596:37603;If(qa,1024,37610,Ha)|0;a[W>>0]=0;l=c[ka>>2]|0;eg(ia,qa,Vf(qa)|0);mc(l,ia);fg(ia);o=0;do{n=o<<3;m=0;do{c[ya>>2]=c[pa+(m+n<<2)>>2];If(qa,1024,37645,ya)|0;a[X>>0]=0;eg(ja,qa,Vf(qa)|0);mc(l,ja);fg(ja);m=m+1|0}while((m|0)<8);If(qa,1024,37650,Aa)|0;a[Y>>0]=0;eg(la,qa,Vf(qa)|0);mc(l,la);fg(la);m=0;do{c[Ba>>2]=c[pa+256+(m+n<<2)>>2];If(qa,1024,37645,Ba)|0;a[X>>0]=0;eg(ja,qa,Vf(qa)|0);mc(l,ja);fg(ja);m=m+1|0}while((m|0)<8);If(qa,1024,37650,Ca)|0;a[Y>>0]=0;eg(la,qa,Vf(qa)|0);mc(l,la);fg(la);m=0;do{c[Ea>>2]=c[pa+512+(m+n<<2)>>2];If(qa,1024,37645,Ea)|0;a[X>>0]=0;eg(ja,qa,Vf(qa)|0);mc(l,ja);fg(ja);m=m+1|0}while((m|0)<8);If(qa,1024,37650,Fa)|0;a[Y>>0]=0;eg(la,qa,Vf(qa)|0);mc(l,la);fg(la);If(Fa,1024,37654,Ga)|0;a[Z>>0]=0;eg(ma,Fa,Vf(Fa)|0);mc(l,ma);fg(ma);o=o+1|0}while((o|0)<8);s=(a[u>>0]|0)==0;m=c[T>>2]|0;n=m;if(m){o=c[U>>2]|0;if((o|0)!=(m|0))c[U>>2]=o+(~((o+-4-n|0)>>>2)<<2);Oe(m)}fg(M);m=c[$>>2]|0;if(m){n=c[F>>2]|0;if((n|0)!=(m|0)){do{c[F>>2]=n+-816;o=c[n+-28>>2]|0;p=o;if(o){q=n+-24|0;r=c[q>>2]|0;if((r|0)!=(o|0))c[q>>2]=r+(~((r+-4-p|0)>>>2)<<2);Oe(o)}fg(n+-40|0);n=c[F>>2]|0}while((n|0)!=(m|0));m=c[$>>2]|0}Oe(m)}if(s){m=0;do{c[pa+(m<<2)>>2]=1;m=m+1|0}while((m|0)!=64);m=0;do{c[pa+256+(m<<2)>>2]=1;m=m+1|0}while((m|0)!=64);m=0;do{c[pa+512+(m<<2)>>2]=1;m=m+1|0}while((m|0)!=64)}gd(ra,pa);if(t){Ld(sa,wa,ra,1,((c[aa>>2]|0)-(c[ba>>2]|0)|0)==40?1.0:.9700000286102295,0);Ld(sa,wa,ra,6,1.0,1)}else Ld(sa,wa,ra,7,1.0,0);m=c[ca>>2]|0;n=m;if(m){o=c[fa>>2]|0;if((o|0)!=(m|0))c[fa>>2]=o+(~((o+-4-n|0)>>>2)<<2);Oe(m)}fg(va);Md(wa);m=c[da>>2]|0;if(m){n=c[ea>>2]|0;if((n|0)!=(m|0)){do{c[ea>>2]=n+-308;o=c[n+-268>>2]|0;p=o;if(o){q=n+-264|0;r=c[q>>2]|0;if((r|0)!=(o|0))c[q>>2]=r+(~((r+-2-p|0)>>>1)<<1);Oe(o)}p=c[n+-280>>2]|0;q=p;if(p){n=n+-276|0;o=c[n>>2]|0;if((o|0)!=(p|0))c[n>>2]=o+(~((o+-2-q|0)>>>1)<<1);Oe(p)}n=c[ea>>2]|0}while((n|0)!=(m|0));m=c[da>>2]|0}Oe(m)}if((d|0)>=(e|0))break b;else d=d+1|0}Ke(E)}while(0);q=Ia+8|0;d=c[q>>2]|0;if(d){p=Ia+12|0;e=c[p>>2]|0;if((e|0)!=(d|0)){do{c[p>>2]=e+-308;l=c[e+-268>>2]|0;m=l;if(l){n=e+-264|0;o=c[n>>2]|0;if((o|0)!=(l|0))c[n>>2]=o+(~((o+-2-m|0)>>>1)<<1);Oe(l)}m=c[e+-280>>2]|0;n=m;if(m){e=e+-276|0;l=c[e>>2]|0;if((l|0)!=(m|0))c[e>>2]=l+(~((l+-2-n|0)>>>1)<<1);Oe(m)}e=c[p>>2]|0}while((e|0)!=(d|0));d=c[q>>2]|0}Oe(d)}}else{If(xa,1024,37560,r)|0;a[xa+1023>>0]=0;eg(q,xa,Vf(xa)|0);mc(k,q);fg(q);gg(j,Ja)|0;d=_(c[Ka+4>>2]|0,c[Ka>>2]|0)|0;c[x>>2]=0;q=x+4|0;c[q>>2]=0;c[x+8>>2]=0;do if(d)if(d>>>0>1073741823)Ke(x);else{v=d<<2;u=Me(v)|0;c[x>>2]=u;w=u+(d<<2)|0;c[x+8>>2]=w;pg(u|0,0,v|0)|0;v=u+(d<<2)|0;c[q>>2]=v;break}else{w=0;v=0;u=0}while(0);p=j+12|0;e=c[p>>2]|0;l=e;o=j+16|0;if(!e){m=j+20|0;n=x+8|0;l=u;e=v;d=w}else{d=c[o>>2]|0;if((d|0)!=(e|0))c[o>>2]=d+(~((d+-4-l|0)>>>2)<<2);Oe(e);m=j+20|0;c[m>>2]=0;c[o>>2]=0;c[p>>2]=0;d=x+8|0;n=d;l=c[x>>2]|0;e=c[q>>2]|0;d=c[d>>2]|0}c[p>>2]=l;c[o>>2]=e;c[m>>2]=d;c[n>>2]=0;c[q>>2]=0;c[x>>2]=0;h[j+24>>3]=0.0;Ia=a[Ja>>0]|0;h[s>>3]=+(((Ia&1)==0?(Ia&255)>>>1:c[t>>2]|0)>>>0)}fg(Ja);Md(Ka);Ka=1;i=La;return Ka|0}Gf(37392,45,1,c[8426]|0)|0;Ka=0;i=La;return Ka|0}function Fd(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+224|0;m=o+72|0;n=o;l=o+40|0;c[m>>2]=0;j=m+4|0;c[j>>2]=0;c[m+8>>2]=0;c[m+12>>2]=1;c[m+16>>2]=1;pg(m+20|0,0,132)|0;if(!(Ic(d,e,f,m)|0)){Gf(37656,42,1,c[8426]|0)|0;n=0;Md(m);i=o;return n|0};c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;k=l+4|0;c[l>>2]=k;e=l+12|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;b=(b|0)==0?l:b;e=c[m>>2]|0;f=c[j>>2]|0;if((e|0)>31&(f|0)>31){j=Me(96)|0;Nb(j,e,f,d,+g[a>>2],b);f=j}else f=0;e=f;d=Ed(a,m,e,n,b)|0;gg(h,n)|0;if(f)gb[c[(c[f>>2]|0)+4>>2]&15](e);fg(l+20|0);Mb(l,c[k>>2]|0);f=c[n+12>>2]|0;e=f;if(f){b=n+16|0;j=c[b>>2]|0;if((j|0)!=(f|0))c[b>>2]=j+(~((j+-4-e|0)>>>2)<<2);Oe(f)}fg(n);n=d;Md(m);i=o;return n|0}function Gd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];Yd(b+32|0,d+32|0);Yd(b+44|0,d+44|0);Zd(b+56|0,d+56|0);_d(b+68|0,d+68|0);$d(b+80|0,d+80|0);ae(b+92|0,d+92|0);f=b+104|0;c[f>>2]=0;j=b+108|0;c[j>>2]=0;c[b+112>>2]=0;i=d+108|0;k=c[i>>2]|0;g=d+104|0;e=c[g>>2]|0;h=k-e|0;if((k|0)!=(e|0)){if((h|0)<0)Ke(f);e=Me(h)|0;c[j>>2]=e;c[f>>2]=e;c[b+112>>2]=e+h;f=c[g>>2]|0;g=c[i>>2]|0;if((f|0)!=(g|0))do{a[e>>0]=a[f>>0]|0;e=(c[j>>2]|0)+1|0;c[j>>2]=e;f=f+1|0}while((f|0)!=(g|0))}Yd(b+116|0,d+116|0);dg(b+128|0,d+128|0);k=b+140|0;b=d+140|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];return}function Hd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=i;i=i+2112|0;r=s+1032|0;q=s+1024|0;p=s;e=s+1088|0;j=s+1072|0;g=s+1060|0;m=s+1048|0;n=s+1036|0;o=b+16|0;f=c[o>>2]|0;l=a[d>>0]|0;k=+eb[c[(c[f>>2]|0)+16>>2]&1](f,(l&1)==0?(l&255)>>>1:c[d+4>>2]|0);h[p>>3]=k;If(e,1024,38108,p)|0;a[e+1023>>0]=0;l=b+24|0;f=c[l>>2]|0;eg(j,e,Vf(e)|0);mc(f,j);fg(j);j=b+20|0;b=c[j>>2]|0;t=+h[b+32>>3];if(!(k>0]=0;r=c[l>>2]|0;q=Vf(p)|0;eg(n,p,q);mc(r,n);fg(n);i=s;return}gg(b,d)|0;b=(c[j>>2]|0)+12|0;f=c[o>>2]|0;ib[c[(c[f>>2]|0)+24>>2]&3](g,f);if((b|0)!=(g|0))Kd(b,c[g>>2]|0,c[g+4>>2]|0);e=c[g>>2]|0;f=e;if(e){b=g+4|0;d=c[b>>2]|0;if((d|0)!=(e|0))c[b>>2]=d+(~((d+-4-f|0)>>>2)<<2);Oe(e)}o=c[o>>2]|0;t=+fb[c[(c[o>>2]|0)+28>>2]&3](o);o=c[j>>2]|0;h[o+24>>3]=t;h[o+32>>3]=k;If(p,1024,38121,q)|0;a[p+1023>>0]=0;q=c[l>>2]|0;eg(m,p,Vf(p)|0);mc(q,m);fg(m);If(p,1024,37654,r)|0;r=p+1023|0;a[r>>0]=0;r=c[l>>2]|0;q=Vf(p)|0;eg(n,p,q);mc(r,n);fg(n);i=s;return}function Id(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=i;i=i+3472|0;G=M+2448|0;E=M+1104|0;y=M+1096|0;w=M+1088|0;v=M+1080|0;u=M+1072|0;F=M+1048|0;z=M+1040|0;x=M+1032|0;q=M+1024|0;l=M;L=M+2424|0;K=M+2248|0;J=M+2412|0;m=M+2400|0;n=M+2236|0;o=M+2224|0;r=M+2212|0;s=M+2200|0;t=M+2188|0;B=M+2176|0;C=M+2164|0;D=M+2152|0;H=M+2140|0;I=M+2128|0;A=b+776|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[A+16>>2]=0;c[A+20>>2]=0;tg(b|0,f|0,768)|0;dd(L,c[e>>2]|0,c[e+4>>2]|0);ed(L,e);gd(L,b);Gd(K,e);hd(L,K);c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;a[J+1>>0]=0;a[J>>0]=0;A=(a[d+4>>0]|0)!=0;c[l>>2]=6;c[l+4>>2]=J;c[G>>2]=c[l>>2];c[G+4>>2]=c[l+4>>2];if(!(Rc(K,A,G)|0))za(37475,37477,119,37530);A=d+24|0;k=c[A>>2]|0;eg(m,37926,20);j=Sd(k,G,m)|0;e=c[j>>2]|0;if(!e){e=Me(32)|0;g=e+16|0;c[g>>2]=c[m>>2];c[g+4>>2]=c[m+4>>2];c[g+8>>2]=c[m+8>>2];c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[e+28>>2]=0;g=c[G>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=g;c[j>>2]=e;g=c[c[k>>2]>>2]|0;if(!g)g=e;else{c[k>>2]=g;g=c[j>>2]|0}Rd(c[k+4>>2]|0,g);k=k+8|0;c[k>>2]=(c[k>>2]|0)+1}j=c[e+28>>2]|0;ld(n,L);g=(a[n>>0]&1)==0?n+1|0:c[n+8>>2]|0;c[q>>2]=j+1;c[q+4>>2]=g;If(l,1024,38040,q)|0;fg(n);fg(m);a[l+1023>>0]=0;g=c[A>>2]|0;eg(o,l,Vf(l)|0);mc(g,o);fg(o);g=G+1023|0;j=G+1023|0;k=G+1023|0;m=0;do{l=m<<3;e=0;do{c[x>>2]=c[f+(e+l<<2)>>2];If(G,1024,37645,x)|0;a[g>>0]=0;q=c[A>>2]|0;eg(r,G,Vf(G)|0);mc(q,r);fg(r);e=e+1|0}while((e|0)<8);If(G,1024,37650,z)|0;a[j>>0]=0;e=c[A>>2]|0;eg(s,G,Vf(G)|0);mc(e,s);fg(s);e=0;do{c[u>>2]=c[f+256+(e+l<<2)>>2];If(G,1024,37645,u)|0;a[g>>0]=0;q=c[A>>2]|0;eg(r,G,Vf(G)|0);mc(q,r);fg(r);e=e+1|0}while((e|0)<8);If(G,1024,37650,v)|0;a[j>>0]=0;e=c[A>>2]|0;eg(s,G,Vf(G)|0);mc(e,s);fg(s);e=0;do{c[w>>2]=c[f+512+(e+l<<2)>>2];If(G,1024,37645,w)|0;a[g>>0]=0;q=c[A>>2]|0;eg(r,G,Vf(G)|0);mc(q,r);fg(r);e=e+1|0}while((e|0)<8);If(G,1024,37650,y)|0;a[j>>0]=0;q=c[A>>2]|0;eg(s,G,Vf(G)|0);mc(q,s);fg(s);If(G,1024,37654,E)|0;a[k>>0]=0;q=c[A>>2]|0;eg(t,G,Vf(G)|0);mc(q,t);fg(t);m=m+1|0}while((m|0)<8);k=c[A>>2]|0;eg(B,37926,20);j=Sd(k,G,B)|0;e=c[j>>2]|0;if(!e){e=Me(32)|0;g=e+16|0;c[g>>2]=c[B>>2];c[g+4>>2]=c[B+4>>2];c[g+8>>2]=c[B+8>>2];c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[e+28>>2]=0;g=c[G>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=g;c[j>>2]=e;g=c[c[k>>2]>>2]|0;if(!g)g=e;else{c[k>>2]=g;g=c[j>>2]|0}Rd(c[k+4>>2]|0,g);z=k+8|0;c[z>>2]=(c[z>>2]|0)+1}g=c[e+28>>2]|0;ld(C,L);j=a[C>>0]&1;k=c[C+8>>2]|0;l=C+1|0;e=0;p=0.0;do{p=p+1.0/(+(c[31388+(e<<2)>>2]|0)*.5+1.0)*((+(c[f+(e<<2)>>2]|0)+-1.0)*.5);e=e+1|0}while((e|0)!=64);m=g+1|0;g=j<<24>>24==0?l:k;e=0;do{p=p+1.0/(+(c[31388+(e<<2)>>2]|0)*.5+1.0)*((+(c[f+256+(e<<2)>>2]|0)+-1.0)*.5);e=e+1|0}while((e|0)!=64);e=0;do{p=p+1.0/(+(c[31388+(e<<2)>>2]|0)*.5+1.0)*((+(c[f+512+(e<<2)>>2]|0)+-1.0)*.5);e=e+1|0}while((e|0)!=64);k=a[J>>0]|0;n=J+4|0;k=(k&1)==0?(k&255)>>>1:c[n>>2]|0;c[F>>2]=m;c[F+4>>2]=g;h[F+8>>3]=p;c[F+16>>2]=k;If(E,1024,38075,F)|0;fg(C);fg(B);a[E+1023>>0]=0;k=c[A>>2]|0;eg(D,E,Vf(E)|0);mc(k,D);fg(D);k=c[A>>2]|0;eg(H,37926,20);j=Sd(k,G,H)|0;e=c[j>>2]|0;if(!e){e=Me(32)|0;g=e+16|0;c[g>>2]=c[H>>2];c[g+4>>2]=c[H+4>>2];c[g+8>>2]=c[H+8>>2];c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;c[e+28>>2]=0;g=c[G>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=g;c[j>>2]=e;g=c[c[k>>2]>>2]|0;if(!g)g=e;else{c[k>>2]=g;g=c[j>>2]|0}Rd(c[k+4>>2]|0,g);G=k+8|0;c[G>>2]=(c[G>>2]|0)+1}l=e+28|0;c[l>>2]=(c[l>>2]|0)+1;fg(H);l=d+16|0;e=c[l>>2]|0;ib[c[(c[e>>2]|0)+8>>2]&3](e,L);e=c[l>>2]|0;a[b+768>>0]=(kb[c[(c[e>>2]|0)+20>>2]&1](e,.9700000286102295)|0)&1;gg(b+776|0,J)|0;e=c[l>>2]|0;ib[c[(c[e>>2]|0)+24>>2]&3](I,e);e=b+788|0;if((e|0)!=(I|0))Kd(e,c[I>>2]|0,c[I+4>>2]|0);j=c[I>>2]|0;k=j;if(j){e=I+4|0;g=c[e>>2]|0;if((g|0)!=(j|0))c[e>>2]=g+(~((g+-4-k|0)>>>2)<<2);Oe(j)}e=c[l>>2]|0;h[b+800>>3]=+fb[c[(c[e>>2]|0)+28>>2]&3](e);e=c[l>>2]|0;o=a[J>>0]|0;h[b+808>>3]=+eb[c[(c[e>>2]|0)+16>>2]&1](e,(o&1)==0?(o&255)>>>1:c[n>>2]|0);Hd(d,J);fg(J);Md(K);o=L+8|0;e=c[o>>2]|0;if(!e){i=M;return}n=L+12|0;g=c[n>>2]|0;if((g|0)!=(e|0)){do{c[n>>2]=g+-308;j=c[g+-268>>2]|0;k=j;if(j){l=g+-264|0;m=c[l>>2]|0;if((m|0)!=(j|0))c[l>>2]=m+(~((m+-2-k|0)>>>1)<<1);Oe(j)}k=c[g+-280>>2]|0;l=k;if(k){g=g+-276|0;j=c[g>>2]|0;if((j|0)!=(k|0))c[g>>2]=j+(~((j+-2-l|0)>>>1)<<1);Oe(k)}g=c[n>>2]|0}while((g|0)!=(e|0));e=c[o>>2]|0}Oe(e);i=M;return}function Jd(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+1536|0;x=A+768|0;y=A;t=b+16|0;u=b+8|0;v=b+24|0;p=b+32|0;q=b+36|0;f=+h[t>>3];g=f;w=0;a:while(1){do if(f==-1.0){f=+h[u>>3];if(f==-1.0){k=+h[v>>3];j=k;k=(a[b>>0]|0)==0?k:0.0}else{k=+h[v>>3];j=k;k=f+k}if(k>j*100.0){e=0;z=32;break a}else f=-1.0}else{if(f==0.0){e=0;z=32;break a}j=+h[u>>3];if(j==-1.0){j=+h[v>>3];k=0.0;break}o=j+g;k=o*.025;f=j*.95+k;j=+h[v>>3];m=~~(f/j);e=m<<1;f=f-j*+(m|0);m=63;while(1){n=(f>0.0?3:1)+e|0;l=c[33188+(m<<2)>>2]|0;c[x+(l<<2)>>2]=n;c[x+256+(l<<2)>>2]=n;c[x+512+(l<<2)>>2]=n;if((m|0)>0){f=f-1.0/(+(c[31388+(l<<2)>>2]|0)*.5+1.0)*3.0;m=m+-1|0}else break}f=g*.95+k;m=~~(f/j);e=m<<1;f=f-j*+(m|0);m=63;while(1){n=(f>0.0?3:1)+e|0;l=c[33188+(m<<2)>>2]|0;c[y+(l<<2)>>2]=n;c[y+256+(l<<2)>>2]=n;c[y+512+(l<<2)>>2]=n;if((m|0)>0){f=f-1.0/(+(c[31388+(l<<2)>>2]|0)*.5+1.0)*3.0;m=m+-1|0}else{e=0;break}}while(1){if((c[x+(e<<2)>>2]|0)!=(c[y+(e<<2)>>2]|0))break;e=e+1|0;if(e>>>0>=192){r=e;z=16;break}}if((z|0)==16?(z=0,(r|0)==192):0){z=18;break a}f=g;k=o*.5}while(0);l=~~(k/j);m=l<<1;j=k-j*+(l|0);l=63;while(1){n=(j>0.0?3:1)+m|0;e=c[33188+(l<<2)>>2]|0;c[d+(e<<2)>>2]=n;c[d+256+(e<<2)>>2]=n;c[d+512+(e<<2)>>2]=n;if((l|0)>0){j=j-1.0/(+(c[31388+(e<<2)>>2]|0)*.5+1.0)*3.0;l=l+-1|0}else break}n=c[p>>2]|0;e=c[q>>2]|0;if((e|0)==(n|0)){e=1;z=32;break}m=(e-n|0)/816|0;e=0;while(1){l=0;while(1){if((c[d+(l<<2)>>2]|0)!=(c[n+(e*816|0)+(l<<2)>>2]|0))break;l=l+1|0;if(l>>>0>=192){s=l;z=26;break}}if((z|0)==26?(z=0,(s|0)==192):0)break;e=e+1|0;if(e>>>0>=m>>>0){e=1;z=32;break a}}if(!(a[n+(e*816|0)+768>>0]|0)){h[t>>3]=k;g=k;f=k}else h[u>>3]=k;w=w+1|0;if((w|0)>=1e3){e=0;z=32;break}}if((z|0)==18){z=0;i=A;return z|0}else if((z|0)==32){i=A;return e|0}return 0}function Kd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=b;i=d-l>>2;k=a+8|0;e=c[k>>2]|0;j=c[a>>2]|0;g=j;if(i>>>0<=e-g>>2>>>0){h=a+4|0;e=(c[h>>2]|0)-g>>2;a=i>>>0>e>>>0;e=a?b+(e<<2)|0:d;f=e;l=f-l|0;ug(j|0,b|0,l|0)|0;b=j+(l>>2<<2)|0;if(!a){e=c[h>>2]|0;if((e|0)==(b|0))return;c[h>>2]=e+(~((e+-4-b|0)>>>2)<<2);return}if((e|0)==(d|0))return;b=c[h>>2]|0;f=b+(((d+-4-f|0)>>>2)+1<<2)|0;while(1){c[b>>2]=c[e>>2];e=e+4|0;if((e|0)==(d|0))break;else b=b+4|0}c[h>>2]=f;return}if(j){e=a+4|0;f=c[e>>2]|0;if((f|0)!=(j|0))c[e>>2]=f+(~((f+-4-g|0)>>>2)<<2);Oe(j);c[k>>2]=0;c[e>>2]=0;c[a>>2]=0;e=0}if(i>>>0>1073741823)Ke(a);e=e-0|0;if(e>>2>>>0<536870911){e=e>>1;e=e>>>0>>0?i:e;if(e>>>0>1073741823)Ke(a);else h=e}else h=1073741823;e=Me(h<<2)|0;g=a+4|0;c[g>>2]=e;c[a>>2]=e;c[k>>2]=e+(h<<2);if((b|0)==(d|0))return;f=e+(((d+-4-l|0)>>>2)+1<<2)|0;while(1){c[e>>2]=c[b>>2];b=b+4|0;if((b|0)==(d|0))break;else e=e+4|0}c[g>>2]=f;return}function Ld(e,f,j,l,m,n){e=e|0;f=f|0;j=j|0;l=l|0;m=+m;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0.0,ma=0.0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0.0,xa=0,ya=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,gb=0,jb=0,lb=0,mb=0,nb=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0;tb=i;i=i+3024|0;gb=tb+2236|0;jb=tb+1040|0;Qa=tb+16|0;eb=tb+1840|0;ia=tb+1456|0;qb=tb+1256|0;da=tb+1240|0;ea=tb+1224|0;sb=tb+2224|0;ca=tb+2632|0;fa=tb+2248|0;pb=tb+1444|0;nb=tb+1432|0;mb=tb+1420|0;lb=tb+1408|0;bb=tb+1244|0;db=tb+1228|0;$a=tb+1212|0;Ra=tb+1200|0;Sa=tb+8|0;Ta=tb;ab=tb+1188|0;Ua=tb+1176|0;Va=tb+1164|0;cb=tb+1152|0;Wa=tb+1140|0;Ya=tb+1128|0;Za=tb+1116|0;_a=tb+1104|0;ja=c[j>>2]|0;ba=j+4|0;ka=c[ba>>2]|0;Ma=l&255;l=(aa(Ma|0)|0)^31;Na=f+80|0;if(l>>>0>=(((c[f+84>>2]|0)-(c[Na>>2]|0)|0)/40|0)>>>0){i=tb;return}Oa=j+8|0;Ha=c[Oa>>2]|0;Pa=c[Ha+(l*308|0)+8>>2]|0;Ha=c[Ha+(l*308|0)+12>>2]|0;Ia=Pa<<3;Ia=(ja+-1+Ia|0)/(Ia|0)|0;Ja=Ha<<3;Ja=(ka+-1+Ja|0)/(Ja|0)|0;Ka=_(Ja,Ia)|0;c[sb>>2]=0;rb=sb+4|0;c[rb>>2]=0;c[sb+8>>2]=0;La=(Ka|0)==0;if(!La){if(Ka>>>0>357913941)Ke(sb);p=Me(Ka*12|0)|0;c[rb>>2]=p;c[sb>>2]=p;o=p+(Ka*12|0)|0;c[sb+8>>2]=o;l=Ka;while(1){c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=l+-1|0;if(!l)break;else p=p+12|0}c[rb>>2]=o}Ga=(Ja|0)>0;a:do if(Ga){G=(Ia|0)>0;H=gb+4|0;I=gb+8|0;J=e+12|0;K=Qa+4|0;L=gb+8|0;M=(Ma&1|0)==0;N=(Ma&2|0)==0;O=(Ma&4|0)==0;P=ca+256|0;Q=ca+128|0;R=e+16|0;S=e+8|0;T=eb+256|0;U=eb+128|0;V=ia+256|0;W=ia+128|0;X=fa+256|0;Y=fa+128|0;$=(Ha|0)<1|(Pa|0)<1;l=0;Z=0;b:while(1){if(G){F=_(Z,Ha)|0;E=0;do{pg(ca|0,0,384)|0;pg(fa|0,0,384)|0;if(!M){o=c[Oa>>2]|0;if((c[o+8>>2]|0)!=(Pa|0)){Fa=14;break b}if((c[o+12>>2]|0)!=(Ha|0)){Fa=16;break b}Yc(o,E,Z,ca);r=c[Na>>2]|0;o=(_(c[r+16>>2]|0,Z)|0)+E<<6;q=fa;o=(c[r+28>>2]|0)+(o<<1)|0;r=q+128|0;do{b[q>>1]=b[o>>1]|0;q=q+2|0;o=o+2|0}while((q|0)<(r|0))}if(!N){o=c[Oa>>2]|0;if((c[o+316>>2]|0)!=(Pa|0)){Fa=14;break b}if((c[o+320>>2]|0)!=(Ha|0)){Fa=16;break b}Yc(o+308|0,E,Z,Q);r=c[Na>>2]|0;o=(_(c[r+56>>2]|0,Z)|0)+E<<6;q=Y;o=(c[r+68>>2]|0)+(o<<1)|0;r=q+128|0;do{b[q>>1]=b[o>>1]|0;q=q+2|0;o=o+2|0}while((q|0)<(r|0))}if(!O){o=c[Oa>>2]|0;if((c[o+624>>2]|0)!=(Pa|0)){Fa=14;break b}if((c[o+628>>2]|0)!=(Ha|0)){Fa=16;break b}Yc(o+616|0,E,Z,P);r=c[Na>>2]|0;o=(_(c[r+96>>2]|0,Z)|0)+E<<6;q=X;o=(c[r+108>>2]|0)+(o<<1)|0;r=q+128|0;do{b[q>>1]=b[o>>1]|0;q=q+2|0;o=o+2|0}while((q|0)<(r|0))}C=c[sb>>2]|0;D=C+(l*12|0)|0;c[gb>>2]=0;c[H>>2]=0;c[I>>2]=0;s=0;do{if(1<>1]|0){Ea=b[fa+(p<<1)>>1]|0;o=Ea<<16>>16;o=Ea<<16>>16>-1?o:0-o|0;if(!(a[J>>0]|0))w=+h[r>>3]*(+(o|0)-+(c[31388+(t<<2)>>2]|0)*.015625)/+(d[37804+t>>0]|0);else w=+(o|0)*+g[31644+(p<<2)>>2]+ +g[32412+(p<<2)>>2];c[Qa>>2]=p;g[K>>2]=w;o=c[H>>2]|0;if(o>>>0<(c[L>>2]|0)>>>0){Ca=Qa;Da=c[Ca+4>>2]|0;Ea=o;c[Ea>>2]=c[Ca>>2];c[Ea+4>>2]=Da;c[H>>2]=(c[H>>2]|0)+8;break}else{Nd(gb,Qa);break}}while(0);t=t+1|0}while((t|0)<64)}s=s+1|0}while((s|0)<3);Od(c[gb>>2]|0,c[H>>2]|0);tg(eb|0,ca|0,384)|0;p=c[gb>>2]|0;o=c[H>>2]|0;if((p|0)==(o|0)){v=D;z=C+(l*12|0)+4|0}else{z=C+(l*12|0)+4|0;A=C+(l*12|0)+8|0;B=_(E,Pa)|0;while(1){Ea=c[S>>2]|0;Da=o-p>>3;if(!((Da>>>0>>0?Da:Ea)|0)){w=99999998430674944.0;t=0}else{y=99999998430674944.0;t=0;u=0;while(1){tg(ia|0,eb|0,384)|0;b[ia+(c[p+(u<<3)>>2]<<1)>>1]=0;if(!M)$c(c[Oa>>2]|0,E,Z,ia);if(!N)$c((c[Oa>>2]|0)+308|0,E,Z,W);if(!O)$c((c[Oa>>2]|0)+616|0,E,Z,V);c[qb>>2]=0;if($)w=0.0;else{w=0.0;x=0.0;o=0;do{s=o+F|0;r=s<<3;q=0;do{p=q+B|0;do if((p<<3|0)<(c[j>>2]|0)){if((r|0)>=(c[ba>>2]|0))break;Ea=c[R>>2]|0;w=+ob[c[(c[Ea>>2]|0)+12>>2]&1](Ea,j,p,s);g[da>>2]=w;Ea=c[(x>2]|0;c[qb>>2]=Ea;x=(c[k>>2]=Ea,+g[k>>2]);w=x}while(0);q=q+1|0}while((q|0)<(Pa|0));o=o+1|0}while((o|0)<(Ha|0))}Ea=w>2]|0;o=c[H>>2]|0;p=c[gb>>2]|0;Da=o-p>>3;if(u>>>0>=(Da>>>0>>0?Da:Ea)>>>0)break;else y=w}}v=c[p+(t<<3)>>2]|0;b[eb+(v<<1)>>1]=0;q=p+(t<<3)|0;s=p+((t<<3>>3)+1<<3)|0;if((s|0)==(o|0))p=q;else{u=o+-8|0;r=s;while(1){c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];r=r+8|0;if((r|0)==(o|0))break;else q=q+8|0}p=p+(t+1+((u-s|0)>>>3)<<3)|0}if((o|0)!=(p|0))c[H>>2]=o+(~((o+-8-p|0)>>>3)<<3);o=c[z>>2]|0;p=c[A>>2]|0;do if(o>>>0

>>0){c[o>>2]=v;g[o+4>>2]=w;c[z>>2]=(c[z>>2]|0)+8}else{t=c[D>>2]|0;s=t;q=(o-s>>3)+1|0;if(q>>>0>536870911){Fa=53;break b}r=t;o=p-r|0;if(o>>3>>>0<268435455){o=o>>2;o=o>>>0>>0?q:o}else o=536870911;Ca=(c[z>>2]|0)-r|0;Da=Ca>>3;Ea=Me(o<<3)|0;c[Ea+(Da<<3)>>2]=v;g[Ea+(Da<<3)+4>>2]=w;tg(Ea|0,t|0,Ca|0)|0;c[D>>2]=Ea;c[z>>2]=Ea+(Da+1<<3);c[A>>2]=Ea+(o<<3);if(!s)break;Oe(s)}while(0);if(!M)$c(c[Oa>>2]|0,E,Z,eb);if(!N)$c((c[Oa>>2]|0)+308|0,E,Z,U);if(!O)$c((c[Oa>>2]|0)+616|0,E,Z,T);p=c[gb>>2]|0;o=c[H>>2]|0;if((p|0)==(o|0)){v=D;break}}}c[ea>>2]=1343554297;p=c[v>>2]|0;r=c[z>>2]|0;o=r-p|0;if((o|0)>0){w=1.0e10;q=(o>>3)+-1|0;while(1){Ea=p+(q<<3)+4|0;o=c[(+g[Ea>>2]>2]|0;c[ea>>2]=o;c[Ea>>2]=o;q=q+-1|0;if((q|0)<=-1)break;else w=(c[k>>2]=o,+g[k>>2])}}c:do if((r|0)!=(p|0)){o=0;while(1){wa=+g[p+(o<<3)+4>>2];Ea=c[R>>2]|0;if(!(wa<=+fb[c[(c[Ea>>2]|0)+32>>2]&3](Ea))){Fa=67;break}q=o+1|0;p=c[v>>2]|0;o=c[z>>2]|0;if(q>>>0>3>>>0)o=q;else{s=p;break}}if((Fa|0)==67){Fa=0;q=o;s=c[v>>2]|0;o=c[z>>2]|0}t=o;p=t-s>>3;if(q>>>0<=p>>>0){if(q>>>0>=p>>>0)break;p=s+(q<<3)|0;if((o|0)==(p|0))break;c[z>>2]=o+(~((o+-8-p|0)>>>3)<<3);break}p=q-p|0;u=C+(l*12|0)+8|0;r=c[u>>2]|0;if(r-t>>3>>>0>=p>>>0)while(1){Ea=o;c[Ea>>2]=0;c[Ea+4>>2]=0;o=(c[z>>2]|0)+8|0;c[z>>2]=o;p=p+-1|0;if(!p)break c}if(q>>>0>536870911){Fa=72;break b}o=r-s|0;if(o>>3>>>0<268435455){o=o>>2;o=o>>>0>>0?q:o;q=(c[z>>2]|0)-s>>3;if(!o){t=0;s=0}else Fa=76}else{o=536870911;q=(c[z>>2]|0)-s>>3;Fa=76}if((Fa|0)==76){Fa=0;t=o;s=Me(o<<3)|0}o=s+(q<<3)|0;r=o;do{Ea=r;c[Ea>>2]=0;c[Ea+4>>2]=0;r=o+8|0;o=r;p=p+-1|0}while((p|0)!=0);p=o;o=c[v>>2]|0;Da=(c[z>>2]|0)-o|0;Ea=s+(q-(Da>>3)<<3)|0;tg(Ea|0,o|0,Da|0)|0;c[D>>2]=Ea;c[z>>2]=p;c[u>>2]=s+(t<<3);if(o)Oe(o)}while(0);if(!M)$c(c[Oa>>2]|0,E,Z,ca);if(!N)$c((c[Oa>>2]|0)+308|0,E,Z,Q);if(!O)$c((c[Oa>>2]|0)+616|0,E,Z,P);p=c[gb>>2]|0;q=p;if(p){o=c[H>>2]|0;if((o|0)!=(p|0))c[H>>2]=o+(~((o+-8-q|0)>>>3)<<3);Oe(p)}E=E+1|0;l=l+1|0}while((E|0)<(Ia|0))}Z=Z+1|0;if((Z|0)>=(Ja|0))break a}if((Fa|0)==14)za(37699,37477,544,37740);else if((Fa|0)==16)za(37763,37477,545,37740);else if((Fa|0)==53)Ke(D);else if((Fa|0)==72)Ke(D)}while(0);Gd(qb,f);hd(j,qb);Ea=e+4|0;v=Pc(qb,(a[Ea>>0]|0)!=0)|0;s=qb+84|0;Ca=c[s>>2]|0;t=qb+80|0;Da=c[t>>2]|0;o=(Ca-Da|0)/40|0;c[gb>>2]=0;u=gb+4|0;c[u>>2]=0;c[gb+8>>2]=0;if((Ca|0)==(Da|0))l=0;else{if(o>>>0>4177983)Ke(gb);l=Me(o*1028|0)|0;c[u>>2]=l;c[gb>>2]=l;q=l+(o*1028|0)|0;c[gb+8>>2]=q;p=l;while(1){pg(p|0,0,1024)|0;c[p+1024>>2]=1;o=o+-1|0;if(!o)break;else p=p+1028|0}c[u>>2]=q}Nc(qb,l);Ca=c[u>>2]|0;Da=c[gb>>2]|0;l=(Ca-Da|0)/1028|0;c[Qa>>2]=l;c[eb>>2]=0;q=eb+4|0;c[q>>2]=0;c[eb+8>>2]=0;do if((Ca|0)!=(Da|0))if(l>>>0>1073741823)Ke(eb);else{Da=l<<2;ha=Me(Da)|0;c[eb>>2]=ha;ga=ha+(l<<2)|0;c[eb+8>>2]=ga;pg(ha|0,0,Da|0)|0;c[q>>2]=ga;ga=c[Qa>>2]|0;break}else{ha=0;ga=l}while(0);l=ga*257|0;c[ia>>2]=0;p=ia+4|0;c[p>>2]=0;c[ia+8>>2]=0;if(!l){l=ha;o=0}else{if((l|0)<0)Ke(ia);o=Me(l)|0;c[p>>2]=o;c[ia>>2]=o;c[ia+8>>2]=o+l;do{a[o>>0]=0;o=(c[p>>2]|0)+1|0;c[p>>2]=o;l=l+-1|0}while((l|0)!=0);l=c[eb>>2]|0;o=c[ia>>2]|0}r=Qc(c[gb>>2]|0,Qa,l,o)|0;l=c[ia>>2]|0;if(l){if((c[p>>2]|0)!=(l|0))c[p>>2]=l;Oe(l)}l=c[eb>>2]|0;o=l;if(l){p=c[q>>2]|0;if((p|0)!=(l|0))c[q>>2]=p+(~((p+-4-o|0)>>>2)<<2);Oe(l)}l=c[gb>>2]|0;o=l;if(l){p=c[u>>2]|0;if((p|0)!=(l|0))c[u>>2]=p+(~(((p+-1028-o|0)>>>0)/1028|0)*1028|0);Oe(l)}Ba=c[s>>2]|0;Ca=c[t>>2]|0;o=(Ba-Ca|0)/40|0;c[pb>>2]=0;Da=pb+4|0;c[Da>>2]=0;c[pb+8>>2]=0;if((Ba|0)==(Ca|0))l=0;else{if(o>>>0>4177983)Ke(pb);l=Me(o*1028|0)|0;c[Da>>2]=l;c[pb>>2]=l;q=l+(o*1028|0)|0;c[pb+8>>2]=q;p=l;while(1){pg(p|0,0,1024)|0;c[p+1024>>2]=1;o=o+-1|0;if(!o)break;else p=p+1028|0}c[Da>>2]=q}Oc(qb,l);c[nb>>2]=0;Ca=nb+4|0;c[Ca>>2]=0;c[nb+8>>2]=0;q=Pd(pb,nb)|0;Aa=r+v|0;l=c[pb>>2]|0;if((c[Da>>2]|0)==(l|0))l=0;else{o=l;p=0;l=0;do{l=(Mc(o+(p*1028|0)|0,(c[nb>>2]|0)+(p*257|0)|0)|0)+l|0;p=p+1|0;o=c[pb>>2]|0}while(p>>>0<(((c[Da>>2]|0)-o|0)/1028|0)>>>0);l=(l+7|0)>>>3}p=q+Aa+l|0;c[mb>>2]=0;Ba=mb+4|0;c[Ba>>2]=0;c[mb+8>>2]=0;do if(!La)if(Ka>>>0>1073741823)Ke(mb);else{xa=Ka<<2;va=Me(xa)|0;c[mb>>2]=va;Xa=va+(Ka<<2)|0;c[mb+8>>2]=Xa;pg(va|0,0,xa|0)|0;c[Ba>>2]=Xa;c[lb>>2]=0;Xa=lb+4|0;c[Xa>>2]=0;c[lb+8>>2]=0;va=Me(xa)|0;c[lb>>2]=va;ya=va+(Ka<<2)|0;c[lb+8>>2]=ya;pg(va|0,0,xa|0)|0;c[Xa>>2]=ya;Xa=lb;break}else{c[lb>>2]=0;c[lb+4>>2]=0;c[lb+8>>2]=0;Xa=lb}while(0);l=_(ka,ja)|0;c[bb>>2]=0;ya=bb+4|0;c[ya>>2]=0;c[bb+8>>2]=0;do if(l)if(l>>>0>1073741823)Ke(bb);else{va=l<<2;ua=Me(va)|0;c[bb>>2]=ua;xa=ua+(l<<2)|0;c[bb+8>>2]=xa;pg(ua|0,0,va|0)|0;c[ya>>2]=xa;break}while(0);R=e+20|0;S=db+4|0;T=db+8|0;U=$a+4|0;V=$a+8|0;W=Ra+4|0;X=Ra+8|0;Q=$a+8|0;Y=Ra+8|0;Z=e+16|0;$=(Ia|0)>0;ba=Sa+4|0;ca=db+8|0;da=Ta+4|0;ea=Ka>>>0>1073741823;fa=Ka<<2;ma=+(p|0);ga=ab+4|0;ha=ab+8|0;ia=ab+4|0;ja=(Ka|0)>0;ka=e+24|0;na=cb+1|0;oa=cb;pa=Qa+4|0;qa=Ya+8|0;ra=Ya+1|0;sa=cb+4|0;ta=Qa+1023|0;ua=_a+4|0;va=ia;wa=+(_(Ha,Pa)|0)*.2;xa=33180;o=1;l=p;d:while(1){J=c[xa>>2]|0;P=(J|0)==-1&n;K=(J|0)>0;y=K?.01:.0005;L=K?37868:37892;M=K?23:25;N=K?37918:37921;la=+(J|0);O=K?0:J;p=q;do{if(P){q=c[R>>2]|0;r=a[q>>0]|0;if(!(r&1))q=(r&255)>>>1;else q=c[q+4>>2]|0;if(+(l|0)>+(q>>>0)*1.01)break}c[db>>2]=0;c[S>>2]=0;c[T>>2]=0;c[$a>>2]=0;c[U>>2]=0;c[V>>2]=0;D=1;while(1){c[Ra>>2]=0;c[W>>2]=0;c[X>>2]=0;if(La){t=0;q=0}else{if(ea){Fa=161;break d}q=Me(fa)|0;c[Ra>>2]=q;t=q+(Ka<<2)|0;c[Y>>2]=t;pg(q|0,0,fa|0)|0;c[W>>2]=t}r=c[$a>>2]|0;s=r;if(!r){r=q;s=t;q=t}else{q=c[U>>2]|0;if((q|0)!=(r|0))c[U>>2]=q+(~((q+-4-s|0)>>>2)<<2);Oe(r);c[Q>>2]=0;c[U>>2]=0;c[$a>>2]=0;r=c[Ra>>2]|0;s=c[W>>2]|0;q=c[Y>>2]|0}c[$a>>2]=r;c[U>>2]=s;c[Q>>2]=q;c[Y>>2]=0;c[W>>2]=0;c[Ra>>2]=0;s=c[Z>>2]|0;hb[c[(c[s>>2]|0)+36>>2]&1](s,J,D,m,Pa,Ha,bb,$a);s=c[db>>2]|0;q=c[S>>2]|0;if((q|0)==(s|0))r=s;else{r=q+(~((q+-8-s|0)>>>3)<<3)|0;c[S>>2]=r}if(Ga){q=0;C=0;s=0;do{if($){B=0;do{u=c[(c[Xa>>2]|0)+(q<<2)>>2]|0;r=c[sb>>2]|0;A=r+(q*12|0)|0;x=+g[(c[mb>>2]|0)+(q<<2)>>2];w=+g[(c[$a>>2]|0)+(q<<2)>>2];do if(!(w==0.0)){if(K){t=c[A>>2]|0;z=r+(q*12|0)+4|0;r=(c[z>>2]|0)-t>>3;e:do if(u>>>0>>0){v=u;while(1){w=(+g[t+(v<<3)+4>>2]-x)/w;c[Sa>>2]=q;g[ba>>2]=w;r=c[S>>2]|0;if(r>>>0<(c[ca>>2]|0)>>>0){G=Sa;H=c[G+4>>2]|0;I=r;c[I>>2]=c[G>>2];c[I+4>>2]=H;c[S>>2]=(c[S>>2]|0)+8}else Nd(db,Sa);v=v+1|0;t=c[A>>2]|0;r=(c[z>>2]|0)-t>>3;if(v>>>0>=r>>>0)break e;w=+g[(c[$a>>2]|0)+(q<<2)>>2]}}while(0);s=(u>>>0>>0&1)+s|0;break}v=(u|0)>0;f:do if(v)while(1){t=u+-1|0;w=(x-+g[(c[A>>2]|0)+(t<<3)+4>>2])/w;c[Ta>>2]=q;g[da>>2]=w;r=c[S>>2]|0;if(r>>>0<(c[ca>>2]|0)>>>0){G=Ta;H=c[G+4>>2]|0;I=r;c[I>>2]=c[G>>2];c[I+4>>2]=H;c[S>>2]=(c[S>>2]|0)+8}else Nd(db,Ta);if((u|0)<=1)break f;w=+g[(c[$a>>2]|0)+(q<<2)>>2];u=t}while(0);s=(v&1)+s|0}while(0);B=B+1|0;q=q+1|0}while((B|0)<(Ia|0))}C=C+1|0}while((C|0)<(Ja|0));q=c[db>>2]|0;r=c[S>>2]|0}else{q=s;s=0}D=D+1|0;if((q|0)!=(r|0)){Fa=192;break}if((D|0)>=5){t=0;break}}if((Fa|0)==192){Fa=0;Qd(q,r);if(K){I=c[Z>>2]|0;I=kb[c[(c[I>>2]|0)+20>>2]&1](I,1.0)|0;w=I?.05:y;x=2.0}else{w=y;x=wa}I=~~(ma*w)>>>0;A=~~(+(s|0)*x);if(o){o=c[Z>>2]|0;w=+fb[c[(c[o>>2]|0)+32>>2]&3](o)*.75;o=c[db>>2]|0;v=c[S>>2]|0;z=o;q=z;r=v-z>>3;g:while(1){u=q;while(1){if(!r)break g;t=(r|0)/2|0;if(+g[u+(t<<3)+4>>2]>3;q=v;A=(A|0)<(H|0)?H:A}else{q=c[S>>2]|0;o=c[db>>2]|0}c[ga>>2]=0;c[ha>>2]=0;c[ab>>2]=ia;h:do if((q|0)==(o|0)){u=0;w=0.0}else{q=o;H=0;while(1){G=c[q+(H<<3)>>2]|0;D=(G|0)%(Ia|0)|0;E=(G|0)/(Ia|0)|0;z=c[(c[(c[sb>>2]|0)+(G*12|0)>>2]|0)+((c[(c[Xa>>2]|0)+(G<<2)>>2]|0)+O<<3)>>2]|0;F=(z|0)/64|0;z=(z|0)%64|0;C=c[Oa>>2]|0;o=c[Na>>2]|0;if(K)u=0;else{r=((_(c[o+(F*40|0)+16>>2]|0,E)|0)+D<<6)+z|0;q=c[C+(F*308|0)+52+(z<<2)>>2]|0;r=b[(c[o+(F*40|0)+28>>2]|0)+(r<<1)>>1]|0;t=(r|0)%(q|0)|0;if((t<<1|0)>(q|0))o=q;else{o=(_(t,-2)|0)>(q|0);o=o?0-q|0:0}u=r-t+o<<16>>16}q=Qa;r=q+128|0;do{b[q>>1]=0;q=q+2|0}while((q|0)<(r|0));Yc(C+(F*308|0)|0,D,E,Qa);B=c[pb>>2]|0;v=B+(F*1028|0)+960|0;t=1;o=0;do{q=c[33188+(t<<2)>>2]|0;ub=b[Qa+(q<<1)>>1]|0;r=ub<<16>>16;if(!(ub<<16>>16))o=o+1|0;else{if((o|0)>15){ub=o+-16|0;o=ub>>>4;c[v>>2]=-2-(o<<1)+(c[v>>2]|0);o=ub-(o<<4)|0}ub=(r|0)/(c[C+(F*308|0)+52+(q<<2)>>2]|0)|0;o=B+(F*1028|0)+(((aa(((ub|0)>-1?ub:0-ub|0)|0)|0)^31)+(o<<4|1)<<2)|0;c[o>>2]=(c[o>>2]|0)+-2;o=0}t=t+1|0}while((t|0)!=64);if((o|0)>0){ub=B+(F*1028|0)|0;c[ub>>2]=(c[ub>>2]|0)+-2}b[Qa+(z<<1)>>1]=u;t=1;o=0;do{q=c[33188+(t<<2)>>2]|0;ub=b[Qa+(q<<1)>>1]|0;r=ub<<16>>16;if(!(ub<<16>>16))o=o+1|0;else{if((o|0)>15){ub=o+-16|0;o=ub>>>4;c[v>>2]=(o<<1)+2+(c[v>>2]|0);o=ub-(o<<4)|0}ub=(r|0)/(c[C+(F*308|0)+52+(q<<2)>>2]|0)|0;o=B+(F*1028|0)+(((aa(((ub|0)>-1?ub:0-ub|0)|0)|0)^31)+(o<<4|1)<<2)|0;c[o>>2]=(c[o>>2]|0)+2;o=0}t=t+1|0}while((t|0)!=64);if((o|0)>0){ub=B+(F*1028|0)|0;c[ub>>2]=(c[ub>>2]|0)+2}$c((c[Oa>>2]|0)+(F*308|0)|0,D,E,Qa);o=(c[Xa>>2]|0)+(G<<2)|0;c[o>>2]=(c[o>>2]|0)+J;o=c[ia>>2]|0;do if(o){r=o;while(1){o=c[r+16>>2]|0;if((G|0)<(o|0)){o=c[r>>2]|0;if(!o){q=r;Fa=228;break}}else{if((o|0)>=(G|0)){o=r;Fa=233;break}q=r+4|0;o=c[q>>2]|0;if(!o){Fa=232;break}}r=o}if((Fa|0)==228){Fa=0;c[gb>>2]=r;break}else if((Fa|0)==232){Fa=0;c[gb>>2]=r;break}else if((Fa|0)==233){Fa=0;c[gb>>2]=o;q=gb;r=o;break}}else{c[gb>>2]=ia;q=ia;r=va}while(0);if(!(c[q>>2]|0)){o=Me(20)|0;c[o+16>>2]=G;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=r;c[q>>2]=o;r=c[c[ab>>2]>>2]|0;if(r){c[ab>>2]=r;o=c[q>>2]|0}Rd(c[ga>>2]|0,o);c[ha>>2]=(c[ha>>2]|0)+1}w=+g[(c[db>>2]|0)+(H<<3)+4>>2];o=H+1|0;if(!((H|0)%10|0))p=Pd(pb,nb)|0;q=c[pb>>2]|0;if((c[Da>>2]|0)==(q|0))q=0;else{r=q;t=0;q=0;do{q=(Mc(r+(t*1028|0)|0,(c[nb>>2]|0)+(t*257|0)|0)|0)+q|0;t=t+1|0;r=c[pb>>2]|0}while(t>>>0<(((c[Da>>2]|0)-r|0)/1028|0)>>>0);q=(q+7|0)>>>3}r=p+Aa+q|0;if((H|0)>=(A|0)?(ub=r-l|0,((ub|0)>-1?ub:0-ub|0)>>>0>I>>>0):0){l=r;break}q=c[db>>2]|0;if(o>>>0>=(c[S>>2]|0)-q>>3>>>0){u=o;l=r;break h}else H=o}u=o}while(0);if(ja){o=c[$a>>2]|0;q=c[mb>>2]|0;r=0;do{ub=q+(r<<2)|0;g[ub>>2]=+g[ub>>2]+la*(w*+g[o+(r<<2)>>2]);r=r+1|0}while((r|0)!=(Ka|0))}t=c[ka>>2]|0;eg(Ua,37926,20);r=Sd(t,gb,Ua)|0;o=c[r>>2]|0;if(!o){o=Me(32)|0;q=o+16|0;c[q>>2]=c[Ua>>2];c[q+4>>2]=c[Ua+4>>2];c[q+8>>2]=c[Ua+8>>2];c[Ua>>2]=0;c[Ua+4>>2]=0;c[Ua+8>>2]=0;c[o+28>>2]=0;q=c[gb>>2]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=q;c[r>>2]=o;q=c[c[t>>2]>>2]|0;if(!q)q=o;else{c[t>>2]=q;q=c[r>>2]|0}Rd(c[t+4>>2]|0,q);ub=t+8|0;c[ub>>2]=(c[ub>>2]|0)+1}t=o+28|0;c[t>>2]=(c[t>>2]|0)+1;fg(Ua);t=c[ka>>2]|0;eg(Va,L,M);r=Sd(t,gb,Va)|0;o=c[r>>2]|0;if(!o){o=Me(32)|0;q=o+16|0;c[q>>2]=c[Va>>2];c[q+4>>2]=c[Va+4>>2];c[q+8>>2]=c[Va+8>>2];c[Va>>2]=0;c[Va+4>>2]=0;c[Va+8>>2]=0;c[o+28>>2]=0;q=c[gb>>2]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=q;c[r>>2]=o;q=c[c[t>>2]>>2]|0;if(!q)q=o;else{c[t>>2]=q;q=c[r>>2]|0}Rd(c[t+4>>2]|0,q);ub=t+8|0;c[ub>>2]=(c[ub>>2]|0)+1}ub=o+28|0;c[ub>>2]=(c[ub>>2]|0)+1;fg(Va);Gd(eb,f);hd(j,eb);c[cb>>2]=0;c[cb+4>>2]=0;c[cb+8>>2]=0;a[na>>0]=0;a[cb>>0]=0;ub=(a[Ea>>0]|0)!=0;c[Qa>>2]=6;c[pa>>2]=oa;c[gb>>2]=c[Qa>>2];c[gb+4>>2]=c[Qa+4>>2];if(!(Rc(eb,ub,gb)|0)){Fa=260;break d}t=c[ka>>2]|0;eg(Wa,37926,20);r=Sd(t,gb,Wa)|0;o=c[r>>2]|0;if(!o){o=Me(32)|0;q=o+16|0;c[q>>2]=c[Wa>>2];c[q+4>>2]=c[Wa+4>>2];c[q+8>>2]=c[Wa+8>>2];c[Wa>>2]=0;c[Wa+4>>2]=0;c[Wa+8>>2]=0;c[o+28>>2]=0;q=c[gb>>2]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=q;c[r>>2]=o;q=c[c[t>>2]>>2]|0;if(!q)q=o;else{c[t>>2]=q;q=c[r>>2]|0}Rd(c[t+4>>2]|0,q);ub=t+8|0;c[ub>>2]=(c[ub>>2]|0)+1}H=c[o+28>>2]|0;ld(Ya,j);I=(a[Ya>>0]&1)==0?ra:c[qa>>2]|0;ub=(c[S>>2]|0)-(c[db>>2]|0)>>3;q=c[ha>>2]|0;o=a[cb>>0]|0;o=(o&1)==0?(o&255)>>>1:c[sa>>2]|0;c[jb>>2]=H;c[jb+4>>2]=I;c[jb+8>>2]=Ma;c[jb+12>>2]=N;c[jb+16>>2]=u;c[jb+20>>2]=ub;c[jb+24>>2]=q;c[jb+28>>2]=s;c[jb+32>>2]=Ka;h[jb+40>>3]=w;c[jb+48>>2]=o;h[jb+56>>3]=100.0-+(l|0)*100.0/+(o>>>0);If(Qa,1024,37947,jb)|0;fg(Ya);fg(Wa);a[ta>>0]=0;o=c[ka>>2]|0;eg(Za,Qa,Vf(Qa)|0);mc(o,Za);fg(Za);o=c[Z>>2]|0;ib[c[(c[o>>2]|0)+8>>2]&3](o,j);Hd(e,cb);o=c[Z>>2]|0;ib[c[(c[o>>2]|0)+24>>2]&3](_a,o);Kd(bb,c[_a>>2]|0,c[ua>>2]|0);o=c[_a>>2]|0;q=o;if(o){r=c[ua>>2]|0;if((r|0)!=(o|0))c[ua>>2]=r+(~((r+-4-q|0)>>>2)<<2);Oe(o)}fg(cb);Md(eb);Td(ab,c[ia>>2]|0);t=1;o=0}q=c[$a>>2]|0;r=q;if(q){s=c[U>>2]|0;if((s|0)!=(q|0))c[U>>2]=s+(~((s+-4-r|0)>>>2)<<2);Oe(q)}q=c[db>>2]|0;r=q;if(q){s=c[S>>2]|0;if((s|0)!=(q|0))c[S>>2]=s+(~((s+-8-r|0)>>>3)<<3);Oe(q)}}while(t);xa=xa+4|0;if((xa|0)==33188){Fa=280;break}else q=p}if((Fa|0)==161)Ke(Ra);else if((Fa|0)==260)za(37475,37477,119,37530);else if((Fa|0)==280){l=c[bb>>2]|0;o=l;if(l){p=c[ya>>2]|0;if((p|0)!=(l|0))c[ya>>2]=p+(~((p+-4-o|0)>>>2)<<2);Oe(l)}p=c[lb>>2]|0;q=p;if(p){l=lb+4|0;o=c[l>>2]|0;if((o|0)!=(p|0))c[l>>2]=o+(~((o+-4-q|0)>>>2)<<2);Oe(p)}l=c[mb>>2]|0;o=l;if(l){p=c[Ba>>2]|0;if((p|0)!=(l|0))c[Ba>>2]=p+(~((p+-4-o|0)>>>2)<<2);Oe(l)}l=c[nb>>2]|0;if(l){if((c[Ca>>2]|0)!=(l|0))c[Ca>>2]=l;Oe(l)}l=c[pb>>2]|0;o=l;if(l){p=c[Da>>2]|0;if((p|0)!=(l|0))c[Da>>2]=p+(~(((p+-1028-o|0)>>>0)/1028|0)*1028|0);Oe(l)}Md(qb);l=c[sb>>2]|0;if(!l){i=tb;return}o=c[rb>>2]|0;if((o|0)!=(l|0)){do{p=o+-12|0;c[rb>>2]=p;q=c[p>>2]|0;r=q;if(!q)o=p;else{o=o+-8|0;p=c[o>>2]|0;if((p|0)!=(q|0))c[o>>2]=p+(~((p+-8-r|0)>>>3)<<3);Oe(q);o=c[rb>>2]|0}}while((o|0)!=(l|0));l=c[sb>>2]|0}Oe(l);i=tb;return}}function Md(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;fg(a+128|0);e=a+116|0;b=c[e>>2]|0;if(b){f=a+120|0;d=c[f>>2]|0;if((d|0)!=(b|0)){do{k=d+-12|0;c[f>>2]=k;fg(k);d=c[f>>2]|0}while((d|0)!=(b|0));b=c[e>>2]|0}Oe(b)}b=c[a+104>>2]|0;if(b){d=a+108|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Oe(b)}h=a+92|0;b=c[h>>2]|0;if(b){i=a+96|0;d=c[i>>2]|0;if((d|0)!=(b|0)){do{e=d+-28|0;c[i>>2]=e;f=c[d+-12>>2]|0;g=f;if(!f)d=e;else{d=d+-8|0;e=c[d>>2]|0;if((e|0)!=(f|0))c[d>>2]=e+(~(((e+-12-g|0)>>>0)/12|0)*12|0);Oe(f);d=c[i>>2]|0}}while((d|0)!=(b|0));b=c[h>>2]|0}Oe(b)}h=a+80|0;b=c[h>>2]|0;if(b){i=a+84|0;d=c[i>>2]|0;if((d|0)!=(b|0)){do{e=d+-40|0;c[i>>2]=e;f=c[d+-12>>2]|0;g=f;if(!f)d=e;else{d=d+-8|0;e=c[d>>2]|0;if((e|0)!=(f|0))c[d>>2]=e+(~((e+-2-g|0)>>>1)<<1);Oe(f);d=c[i>>2]|0}}while((d|0)!=(b|0));b=c[h>>2]|0}Oe(b)}j=a+68|0;b=c[j>>2]|0;if(b){k=a+72|0;d=c[k>>2]|0;if((d|0)!=(b|0)){do{e=d+-32|0;c[k>>2]=e;f=c[d+-20>>2]|0;g=f;if(f){h=d+-16|0;i=c[h>>2]|0;if((i|0)!=(f|0))c[h>>2]=i+(~((i+-4-g|0)>>>2)<<2);Oe(f)}f=c[e>>2]|0;g=f;if(f){d=d+-28|0;e=c[d>>2]|0;if((e|0)!=(f|0))c[d>>2]=e+(~((e+-4-g|0)>>>2)<<2);Oe(f)}d=c[k>>2]|0}while((d|0)!=(b|0));b=c[j>>2]|0}Oe(b)}h=a+56|0;b=c[h>>2]|0;if(b){i=a+60|0;d=c[i>>2]|0;if((d|0)!=(b|0)){e=d;while(1){d=e+-24|0;c[i>>2]=d;f=c[d>>2]|0;g=f;if(f){d=e+-20|0;e=c[d>>2]|0;if((e|0)!=(f|0))c[d>>2]=e+(~((e+-4-g|0)>>>2)<<2);Oe(f);d=c[i>>2]|0}if((d|0)==(b|0))break;else e=d}b=c[h>>2]|0}Oe(b)}e=a+44|0;b=c[e>>2]|0;if(b){f=a+48|0;d=c[f>>2]|0;if((d|0)!=(b|0)){do{k=d+-12|0;c[f>>2]=k;fg(k);d=c[f>>2]|0}while((d|0)!=(b|0));b=c[e>>2]|0}Oe(b)}f=a+32|0;b=c[f>>2]|0;if(!b)return;e=a+36|0;d=c[e>>2]|0;if((d|0)!=(b|0)){do{a=d+-12|0;c[e>>2]=a;fg(a);d=c[e>>2]|0}while((d|0)!=(b|0));b=c[f>>2]|0}Oe(b);return}function Nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;i=a+4|0;j=c[a>>2]|0;k=j;e=((c[i>>2]|0)-k>>3)+1|0;if(e>>>0>536870911)Ke(a);l=a+8|0;f=j;d=(c[l>>2]|0)-f|0;if(d>>3>>>0<268435455){d=d>>2;d=d>>>0>>0?e:d;f=(c[i>>2]|0)-f|0;e=f>>3;if(!d){h=0;g=0;d=f}else m=6}else{f=(c[i>>2]|0)-f|0;d=536870911;e=f>>3;m=6}if((m|0)==6){h=d;g=Me(d<<3)|0;d=f}f=b;b=c[f+4>>2]|0;m=g+(e<<3)|0;c[m>>2]=c[f>>2];c[m+4>>2]=b;tg(g|0,j|0,d|0)|0;c[a>>2]=g;c[i>>2]=g+(e+1<<3);c[l>>2]=g+(h<<3);if(!k)return;Oe(k);return}function Od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0.0,y=0,z=0;a:while(1){t=b;d=b+-8|0;e=b+-4|0;b:while(1){s=a;i=t-s|0;j=i>>3;switch(j|0){case 2:{z=4;break a}case 3:{z=6;break a}case 4:{z=14;break a}case 5:{z=15;break a}case 1:case 0:{z=84;break a}default:{}}if((i|0)<56){z=21;break a}m=(j|0)/2|0;r=a+(m<<3)|0;do if((i|0)>7992){p=(j|0)/4|0;q=a+(p<<3)|0;o=p+m|0;n=a+(o<<3)|0;i=Wd(a,q,r,n)|0;h=+g[e>>2];o=a+(o<<3)+4|0;f=+g[o>>2];if(!(h>2]|0;c[n>>2]=c[d>>2];c[d>>2]=k;g[o>>2]=h;g[e>>2]=f;k=i+1|0;h=+g[o>>2];j=a+(m<<3)+4|0;f=+g[j>>2];if(h>2]|0;c[r>>2]=c[n>>2];c[n>>2]=k;g[j>>2]=h;g[o>>2]=f;k=i+2|0;h=+g[j>>2];m=a+(p<<3)+4|0;f=+g[m>>2];if(h>2]|0;c[q>>2]=c[r>>2];c[r>>2]=k;g[m>>2]=h;g[j>>2]=f;h=+g[m>>2];k=a+4|0;f=+g[k>>2];if(h>2]|0;c[a>>2]=c[q>>2];c[q>>2]=p;g[k>>2]=h;g[m>>2]=f;i=i+4|0}else i=i+3|0}else i=k}else i=k}else{j=a+(m<<3)+4|0;h=+g[j>>2];k=a+4|0;l=+g[k>>2];f=+g[e>>2];i=f>2]|0;c[r>>2]=c[d>>2];c[d>>2]=q;g[j>>2]=f;g[e>>2]=h;h=+g[j>>2];f=+g[k>>2];if(!(h>2]|0;c[a>>2]=c[r>>2];c[r>>2]=i;g[k>>2]=h;g[j>>2]=f;i=2;break}if(i){i=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=i;g[k>>2]=f;g[e>>2]=l;i=1;break}i=c[a>>2]|0;c[a>>2]=c[r>>2];c[r>>2]=i;g[k>>2]=h;g[j>>2]=l;f=+g[e>>2];if(f>2]=c[d>>2];c[d>>2]=i;g[j>>2]=f;g[e>>2]=l;i=2}else i=1}while(0);o=a+4|0;l=+g[o>>2];h=+g[j>>2];do if(l>2];if(f>2]|0;c[a>>2]=c[k>>2];c[k>>2]=q;g[o>>2]=f;g[j>>2]=l;i=i+1|0;break}i=a+8|0;h=+g[e>>2];if(l>2];j=i+8|0;if(l>2]|0;c[r>>2]=c[d>>2];c[d>>2]=s;g[i>>2]=h;g[e>>2]=f;a=a+16|0}if((a|0)==(d|0)){z=84;break a}else k=d;while(1){l=+g[o>>2];while(1){j=a+4|0;f=+g[j>>2];i=a+8|0;if(l>2];if(l>>0>=k>>>0)continue b;s=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=s;g[j>>2]=f;g[m>>2]=h;a=i}}while(0);j=a+8|0;c:do if(j>>>0>>0){p=r;while(1){l=+g[p+4>>2];n=j;while(1){m=n+4|0;f=+g[m>>2];j=n+8|0;if(f>2];if(f>>0>n>>>0){k=o;j=p;break c}r=c[o>>2]|0;c[o>>2]=c[n>>2];c[n>>2]=r;g[m>>2]=f;g[k>>2]=h;k=n;p=(p|0)==(o|0)?n:p;i=i+1|0}}else{k=j;j=r}while(0);if((k|0)!=(j|0)?(w=j+4|0,x=+g[w>>2],u=k+4|0,v=+g[u>>2],x>2]|0;c[k>>2]=c[j>>2];c[j>>2]=r;g[u>>2]=x;g[w>>2]=v;i=i+1|0}if(!i){i=Xd(a,k)|0;j=k+8|0;if(Xd(j,b)|0){z=79;break}if(i){a=j;continue}}r=k;if((r-s|0)>=(t-r|0)){d=k;z=83;break}Od(a,k);a=k+8|0}if((z|0)==79){z=0;if(i){z=84;break}else{b=k;continue}}else if((z|0)==83){z=0;Od(d+8|0,b);b=d;continue}}if((z|0)==4){h=+g[e>>2];d=a+4|0;f=+g[d>>2];if(!(h>2]|0;c[a>>2]=c[z>>2];c[z>>2]=y;g[d>>2]=h;g[e>>2]=f;return}else if((z|0)==6){j=a+8|0;k=a+12|0;h=+g[k>>2];i=a+4|0;l=+g[i>>2];f=+g[e>>2];b=f>2]|0;c[j>>2]=c[d>>2];c[d>>2]=z;g[k>>2]=f;g[e>>2]=h;h=+g[k>>2];f=+g[i>>2];if(!(h>2]|0;c[a>>2]=c[j>>2];c[j>>2]=z;g[i>>2]=h;g[k>>2]=f;return}if(b){z=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=z;g[i>>2]=f;g[e>>2]=l;return}b=c[a>>2]|0;c[a>>2]=c[j>>2];c[j>>2]=b;g[i>>2]=h;g[k>>2]=l;f=+g[e>>2];if(!(f>2]=c[d>>2];c[d>>2]=b;g[k>>2]=f;g[e>>2]=l;return}else if((z|0)==14){Wd(a,a+8|0,a+16|0,d)|0;return}else if((z|0)==15){m=a+8|0;k=a+16|0;i=a+24|0;Wd(a,m,k,i)|0;h=+g[e>>2];j=a+28|0;f=+g[j>>2];if(!(h>2]|0;c[i>>2]=c[d>>2];c[d>>2]=z;g[j>>2]=h;g[e>>2]=f;h=+g[j>>2];d=a+20|0;f=+g[d>>2];if(!(h>2]|0;b=c[i>>2]|0;c[k>>2]=b;c[i>>2]=e;g[d>>2]=h;g[j>>2]=f;e=a+12|0;f=+g[e>>2];if(!(h>2]|0;c[m>>2]=b;c[k>>2]=z;g[e>>2]=h;g[d>>2]=f;d=a+4|0;f=+g[d>>2];if(!(h>2]|0;c[a>>2]=b;c[m>>2]=z;g[d>>2]=h;g[e>>2]=f;return}else if((z|0)==21){e=a+16|0;i=a+8|0;k=a+12|0;h=+g[k>>2];j=a+4|0;f=+g[j>>2];m=a+20|0;l=+g[m>>2];d=l>2]|0;c[a>>2]=c[e>>2];c[e>>2]=z;g[j>>2]=l;g[m>>2]=f;break}d=c[a>>2]|0;c[a>>2]=c[i>>2];c[i>>2]=d;g[j>>2]=h;g[k>>2]=f;if(l>2]=c[e>>2];c[e>>2]=d;g[k>>2]=l;g[m>>2]=f}}else if(d?(z=c[i>>2]|0,y=c[e>>2]|0,c[i>>2]=y,c[e>>2]=z,g[k>>2]=l,g[m>>2]=h,l>2]|0;c[a>>2]=y;c[i>>2]=z;g[j>>2]=l;g[k>>2]=f}while(0);d=a+24|0;if((d|0)==(b|0))return;while(1){f=+g[d+4>>2];if(f<+g[e+4>>2]){k=c[d>>2]|0;j=d;i=e;while(1){c[j>>2]=c[i>>2];e=i+4|0;c[j+4>>2]=c[e>>2];if((i|0)==(a|0))break;if(f<+g[i+-4>>2]){j=i;i=i+-8|0}else break}c[i>>2]=k;g[e>>2]=f}e=d+8|0;if((e|0)==(b|0))break;else{z=d;d=e;e=z}}return}else if((z|0)==84)return}function Pd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;r=s+28|0;n=s+24|0;p=s+12|0;o=s;Sc(r,b);l=b+4|0;e=c[l>>2]|0;m=c[b>>2]|0;f=(e-m|0)/1028|0;c[n>>2]=f;c[p>>2]=0;q=p+4|0;c[q>>2]=0;c[p+8>>2]=0;do if((e|0)!=(m|0))if(f>>>0>1073741823)Ke(p);else{j=f<<2;g=Me(j)|0;c[p>>2]=g;h=g+(f<<2)|0;c[p+8>>2]=h;pg(g|0,0,j|0)|0;c[q>>2]=h;h=c[l>>2]|0;j=c[b>>2]|0;break}else{g=0;h=e;j=e}while(0);f=h-j|0;e=((f|0)/1028|0)*257|0;c[o>>2]=0;m=o+4|0;c[m>>2]=0;c[o+8>>2]=0;if((h|0)==(j|0)){e=g;f=0}else{if((f|0)<0)Ke(o);f=Me(e)|0;c[m>>2]=f;c[o>>2]=f;c[o+8>>2]=f+e;do{a[f>>0]=0;f=(c[m>>2]|0)+1|0;c[m>>2]=f;e=e+-1|0}while((e|0)!=0);e=c[p>>2]|0;f=c[o>>2]|0}Qc(c[r>>2]|0,n,e,f)|0;e=(c[m>>2]|0)-(c[o>>2]|0)|0;f=d+4|0;g=c[f>>2]|0;h=c[d>>2]|0;j=g-h|0;if(e>>>0<=j>>>0){if(e>>>0>>0?(k=h+e|0,(g|0)!=(k|0)):0)c[f>>2]=k}else Lb(d,e-j|0);if((c[l>>2]|0)!=(c[b>>2]|0)){e=c[p>>2]|0;f=c[o>>2]|0;g=0;do{tg((c[d>>2]|0)+(g*257|0)|0,f+((c[e+(g<<2)>>2]|0)*257|0)|0,257)|0;g=g+1|0}while(g>>>0<(((c[l>>2]|0)-(c[b>>2]|0)|0)/1028|0)>>>0)}if(!(c[n>>2]|0))h=0;else{e=0;f=0;do{e=((Lc((c[r>>2]|0)+(f*1028|0)|0)|0)>>>3)+e|0;f=f+1|0}while(f>>>0<(c[n>>2]|0)>>>0);h=e}e=c[o>>2]|0;if(e){if((c[m>>2]|0)!=(e|0))c[m>>2]=e;Oe(e)}e=c[p>>2]|0;f=e;if(e){g=c[q>>2]|0;if((g|0)!=(e|0))c[q>>2]=g+(~((g+-4-f|0)>>>2)<<2);Oe(e)}g=c[r>>2]|0;if(!g){i=s;return h|0}f=r+4|0;e=c[f>>2]|0;if((e|0)!=(g|0))c[f>>2]=e+(~(((e+-1028-g|0)>>>0)/1028|0)*1028|0);Oe(g);i=s;return h|0}function Qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0.0,y=0,z=0;a:while(1){t=b;d=b+-8|0;e=b+-4|0;b:while(1){s=a;i=t-s|0;j=i>>3;switch(j|0){case 2:{z=4;break a}case 3:{z=6;break a}case 4:{z=14;break a}case 5:{z=15;break a}case 1:case 0:{z=84;break a}default:{}}if((i|0)<56){z=21;break a}m=(j|0)/2|0;r=a+(m<<3)|0;do if((i|0)>7992){p=(j|0)/4|0;q=a+(p<<3)|0;o=p+m|0;n=a+(o<<3)|0;i=Ud(a,q,r,n)|0;h=+g[e>>2];o=a+(o<<3)+4|0;f=+g[o>>2];if(!(h>2]|0;c[n>>2]=c[d>>2];c[d>>2]=k;g[o>>2]=h;g[e>>2]=f;k=i+1|0;h=+g[o>>2];j=a+(m<<3)+4|0;f=+g[j>>2];if(h>2]|0;c[r>>2]=c[n>>2];c[n>>2]=k;g[j>>2]=h;g[o>>2]=f;k=i+2|0;h=+g[j>>2];m=a+(p<<3)+4|0;f=+g[m>>2];if(h>2]|0;c[q>>2]=c[r>>2];c[r>>2]=k;g[m>>2]=h;g[j>>2]=f;h=+g[m>>2];k=a+4|0;f=+g[k>>2];if(h>2]|0;c[a>>2]=c[q>>2];c[q>>2]=p;g[k>>2]=h;g[m>>2]=f;i=i+4|0}else i=i+3|0}else i=k}else i=k}else{j=a+(m<<3)+4|0;h=+g[j>>2];k=a+4|0;l=+g[k>>2];f=+g[e>>2];i=f>2]|0;c[r>>2]=c[d>>2];c[d>>2]=q;g[j>>2]=f;g[e>>2]=h;h=+g[j>>2];f=+g[k>>2];if(!(h>2]|0;c[a>>2]=c[r>>2];c[r>>2]=i;g[k>>2]=h;g[j>>2]=f;i=2;break}if(i){i=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=i;g[k>>2]=f;g[e>>2]=l;i=1;break}i=c[a>>2]|0;c[a>>2]=c[r>>2];c[r>>2]=i;g[k>>2]=h;g[j>>2]=l;f=+g[e>>2];if(f>2]=c[d>>2];c[d>>2]=i;g[j>>2]=f;g[e>>2]=l;i=2}else i=1}while(0);o=a+4|0;l=+g[o>>2];h=+g[j>>2];do if(l>2];if(f>2]|0;c[a>>2]=c[k>>2];c[k>>2]=q;g[o>>2]=f;g[j>>2]=l;i=i+1|0;break}i=a+8|0;h=+g[e>>2];if(l>2];j=i+8|0;if(l>2]|0;c[r>>2]=c[d>>2];c[d>>2]=s;g[i>>2]=h;g[e>>2]=f;a=a+16|0}if((a|0)==(d|0)){z=84;break a}else k=d;while(1){l=+g[o>>2];while(1){j=a+4|0;f=+g[j>>2];i=a+8|0;if(l>2];if(l>>0>=k>>>0)continue b;s=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=s;g[j>>2]=f;g[m>>2]=h;a=i}}while(0);j=a+8|0;c:do if(j>>>0>>0){p=r;while(1){l=+g[p+4>>2];n=j;while(1){m=n+4|0;f=+g[m>>2];j=n+8|0;if(f>2];if(f>>0>n>>>0){k=o;j=p;break c}r=c[o>>2]|0;c[o>>2]=c[n>>2];c[n>>2]=r;g[m>>2]=f;g[k>>2]=h;k=n;p=(p|0)==(o|0)?n:p;i=i+1|0}}else{k=j;j=r}while(0);if((k|0)!=(j|0)?(w=j+4|0,x=+g[w>>2],u=k+4|0,v=+g[u>>2],x>2]|0;c[k>>2]=c[j>>2];c[j>>2]=r;g[u>>2]=x;g[w>>2]=v;i=i+1|0}if(!i){i=Vd(a,k)|0;j=k+8|0;if(Vd(j,b)|0){z=79;break}if(i){a=j;continue}}r=k;if((r-s|0)>=(t-r|0)){d=k;z=83;break}Qd(a,k);a=k+8|0}if((z|0)==79){z=0;if(i){z=84;break}else{b=k;continue}}else if((z|0)==83){z=0;Qd(d+8|0,b);b=d;continue}}if((z|0)==4){h=+g[e>>2];d=a+4|0;f=+g[d>>2];if(!(h>2]|0;c[a>>2]=c[z>>2];c[z>>2]=y;g[d>>2]=h;g[e>>2]=f;return}else if((z|0)==6){j=a+8|0;k=a+12|0;h=+g[k>>2];i=a+4|0;l=+g[i>>2];f=+g[e>>2];b=f>2]|0;c[j>>2]=c[d>>2];c[d>>2]=z;g[k>>2]=f;g[e>>2]=h;h=+g[k>>2];f=+g[i>>2];if(!(h>2]|0;c[a>>2]=c[j>>2];c[j>>2]=z;g[i>>2]=h;g[k>>2]=f;return}if(b){z=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=z;g[i>>2]=f;g[e>>2]=l;return}b=c[a>>2]|0;c[a>>2]=c[j>>2];c[j>>2]=b;g[i>>2]=h;g[k>>2]=l;f=+g[e>>2];if(!(f>2]=c[d>>2];c[d>>2]=b;g[k>>2]=f;g[e>>2]=l;return}else if((z|0)==14){Ud(a,a+8|0,a+16|0,d)|0;return}else if((z|0)==15){m=a+8|0;k=a+16|0;i=a+24|0;Ud(a,m,k,i)|0;h=+g[e>>2];j=a+28|0;f=+g[j>>2];if(!(h>2]|0;c[i>>2]=c[d>>2];c[d>>2]=z;g[j>>2]=h;g[e>>2]=f;h=+g[j>>2];d=a+20|0;f=+g[d>>2];if(!(h>2]|0;b=c[i>>2]|0;c[k>>2]=b;c[i>>2]=e;g[d>>2]=h;g[j>>2]=f;e=a+12|0;f=+g[e>>2];if(!(h>2]|0;c[m>>2]=b;c[k>>2]=z;g[e>>2]=h;g[d>>2]=f;d=a+4|0;f=+g[d>>2];if(!(h>2]|0;c[a>>2]=b;c[m>>2]=z;g[d>>2]=h;g[e>>2]=f;return}else if((z|0)==21){e=a+16|0;i=a+8|0;k=a+12|0;h=+g[k>>2];j=a+4|0;f=+g[j>>2];m=a+20|0;l=+g[m>>2];d=l>2]|0;c[a>>2]=c[e>>2];c[e>>2]=z;g[j>>2]=l;g[m>>2]=f;break}d=c[a>>2]|0;c[a>>2]=c[i>>2];c[i>>2]=d;g[j>>2]=h;g[k>>2]=f;if(l>2]=c[e>>2];c[e>>2]=d;g[k>>2]=l;g[m>>2]=f}}else if(d?(z=c[i>>2]|0,y=c[e>>2]|0,c[i>>2]=y,c[e>>2]=z,g[k>>2]=l,g[m>>2]=h,l>2]|0;c[a>>2]=y;c[i>>2]=z;g[j>>2]=l;g[k>>2]=f}while(0);d=a+24|0;if((d|0)==(b|0))return;while(1){f=+g[d+4>>2];if(f<+g[e+4>>2]){k=c[d>>2]|0;j=d;i=e;while(1){c[j>>2]=c[i>>2];e=i+4|0;c[j+4>>2]=c[e>>2];if((i|0)==(a|0))break;if(f<+g[i+-4>>2]){j=i;i=i+-8|0}else break}c[i>>2]=k;g[e>>2]=f}e=d+8|0;if((e|0)==(b|0))break;else{z=d;d=e;e=z}}return}else if((z|0)==84)return}function Rd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=(d|0)==(b|0);a[d+12>>0]=j&1;if(j)return;while(1){h=c[d+8>>2]|0;g=h+12|0;if(a[g>>0]|0){d=37;break}j=h+8|0;f=d;d=c[j>>2]|0;e=c[d>>2]|0;if((e|0)==(h|0)){e=c[d+4>>2]|0;if(!e){e=f;i=j;g=j;f=d;b=d;d=7;break}e=e+12|0;if(a[e>>0]|0){e=f;i=j;g=j;f=d;b=d;d=7;break}a[g>>0]=1;a[d+12>>0]=(d|0)==(b|0)&1;a[e>>0]=1}else{if(!e){e=f;i=j;b=j;f=d;g=d;d=24;break}e=e+12|0;if(a[e>>0]|0){e=f;i=j;b=j;f=d;g=d;d=24;break}a[g>>0]=1;a[d+12>>0]=(d|0)==(b|0)&1;a[e>>0]=1}if((d|0)==(b|0)){d=37;break}}if((d|0)==7){if((c[h>>2]|0)==(e|0))d=h;else{j=h+4|0;d=c[j>>2]|0;e=c[d>>2]|0;c[j>>2]=e;if(!e)e=f;else{c[e+8>>2]=h;e=c[i>>2]|0}f=d+8|0;c[f>>2]=e;e=c[g>>2]|0;if((c[e>>2]|0)==(h|0))c[e>>2]=d;else c[e+4>>2]=d;c[d>>2]=h;c[i>>2]=d;b=c[f>>2]|0}a[d+12>>0]=1;a[b+12>>0]=0;f=c[b>>2]|0;g=f+4|0;d=c[g>>2]|0;c[b>>2]=d;if(d)c[d+8>>2]=b;d=b+8|0;c[f+8>>2]=c[d>>2];e=c[d>>2]|0;if((c[e>>2]|0)==(b|0))c[e>>2]=f;else c[e+4>>2]=f;c[g>>2]=b;c[d>>2]=f;return}else if((d|0)==24){if((c[h>>2]|0)==(e|0)){d=c[h>>2]|0;g=d+4|0;e=c[g>>2]|0;c[h>>2]=e;if(!e)e=f;else{c[e+8>>2]=h;e=c[i>>2]|0}f=d+8|0;c[f>>2]=e;e=c[b>>2]|0;if((c[e>>2]|0)==(h|0))c[e>>2]=d;else c[e+4>>2]=d;c[g>>2]=h;c[i>>2]=d;g=c[f>>2]|0}else d=h;a[d+12>>0]=1;a[g+12>>0]=0;j=g+4|0;f=c[j>>2]|0;d=c[f>>2]|0;c[j>>2]=d;if(d)c[d+8>>2]=g;d=g+8|0;c[f+8>>2]=c[d>>2];e=c[d>>2]|0;if((c[e>>2]|0)==(g|0))c[e>>2]=f;else c[e+4>>2]=f;c[f>>2]=g;c[d>>2]=f;return}else if((d|0)==37)return}function Sd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=b+4|0;b=c[f>>2]|0;if(!b){c[d>>2]=f;d=f;return d|0}j=a[e>>0]|0;i=(j&1)==0;j=i?(j&255)>>>1:c[e+4>>2]|0;i=i?e+1|0:c[e+8>>2]|0;while(1){e=b+16|0;f=a[e>>0]|0;g=(f&1)==0;f=g?(f&255)>>>1:c[b+20>>2]|0;e=g?e+1|0:c[b+24>>2]|0;g=f>>>0>>0;k=Uf(i,e,g?f:j)|0;h=j>>>0>>0;if((((k|0)==0?(h?-2147483648:0):k)|0)<0){f=c[b>>2]|0;if(!f){f=b;e=5;break}else b=f}else{k=Uf(e,i,h?j:f)|0;if((((k|0)==0?(g?-2147483648:0):k)|0)>=0){e=10;break}f=b+4|0;e=c[f>>2]|0;if(!e){e=9;break}else b=e}}if((e|0)==5){c[d>>2]=b;k=f;return k|0}else if((e|0)==9){c[d>>2]=b;k=f;return k|0}else if((e|0)==10){c[d>>2]=b;k=d;return k|0}return 0}function Td(a,b){a=a|0;b=b|0;if(!b)return;else{Td(a,c[b>>2]|0);Td(a,c[b+4>>2]|0);Oe(b);return}}function Ud(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0;n=b+4|0;j=+g[n>>2];m=a+4|0;f=+g[m>>2];l=d+4|0;h=+g[l>>2];i=h>2]|0;c[a>>2]=c[d>>2];c[d>>2]=k;g[m>>2]=h;g[l>>2]=f;k=1;break}i=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=i;g[m>>2]=j;g[n>>2]=f;h=+g[l>>2];if(h>2]=c[d>>2];c[d>>2]=i;g[n>>2]=h;g[l>>2]=f;k=2}else{k=1;f=h}}else if(i){k=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=k;g[n>>2]=h;g[l>>2]=j;h=+g[n>>2];f=+g[m>>2];if(h>2]|0;c[a>>2]=c[b>>2];c[b>>2]=k;g[m>>2]=h;g[n>>2]=f;k=2;f=+g[l>>2]}else{k=1;f=j}}else{k=0;f=h}while(0);i=e+4|0;h=+g[i>>2];if(!(h>2]|0;c[d>>2]=c[e>>2];c[e>>2]=o;g[l>>2]=h;g[i>>2]=f;h=+g[l>>2];f=+g[n>>2];if(!(h>2]|0;c[b>>2]=c[d>>2];c[d>>2]=o;g[n>>2]=h;g[l>>2]=f;h=+g[n>>2];f=+g[m>>2];if(!(h>2]|0;c[a>>2]=c[b>>2];c[b>>2]=o;g[m>>2]=h;g[n>>2]=f;o=k+3|0;return o|0}function Vd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0;switch(b-a>>3|0){case 2:{d=b+-4|0;f=+g[d>>2];e=a+4|0;h=+g[e>>2];if(!(f>2]|0;c[a>>2]=c[b>>2];c[b>>2]=o;g[e>>2]=f;g[d>>2]=h;a=1;return a|0}case 3:{k=a+8|0;i=b+-8|0;l=a+12|0;h=+g[l>>2];j=a+4|0;m=+g[j>>2];e=b+-4|0;f=+g[e>>2];d=f>2]|0;c[k>>2]=c[i>>2];c[i>>2]=b;g[l>>2]=f;g[e>>2]=h;h=+g[l>>2];f=+g[j>>2];if(!(h>2]|0;c[a>>2]=c[k>>2];c[k>>2]=b;g[j>>2]=h;g[l>>2]=f;a=1;return a|0}if(d){b=c[a>>2]|0;c[a>>2]=c[i>>2];c[i>>2]=b;g[j>>2]=f;g[e>>2]=m;a=1;return a|0}d=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=d;g[j>>2]=h;g[l>>2]=m;f=+g[e>>2];if(!(f>2]=c[i>>2];c[i>>2]=d;g[l>>2]=f;g[e>>2]=m;a=1;return a|0}case 4:{Ud(a,a+8|0,a+16|0,b+-8|0)|0;a=1;return a|0}case 5:{l=a+8|0;k=a+16|0;e=a+24|0;Ud(a,l,k,e)|0;d=b+-4|0;h=+g[d>>2];j=a+28|0;f=+g[j>>2];if(!(h>2]|0;c[e>>2]=c[b>>2];c[b>>2]=o;g[j>>2]=h;g[d>>2]=f;h=+g[j>>2];d=a+20|0;f=+g[d>>2];if(!(h>2]|0;i=c[e>>2]|0;c[k>>2]=i;c[e>>2]=b;g[d>>2]=h;g[j>>2]=f;e=a+12|0;f=+g[e>>2];if(!(h>2]|0;c[l>>2]=i;c[k>>2]=b;g[e>>2]=h;g[d>>2]=f;d=a+4|0;f=+g[d>>2];if(!(h>2]|0;c[a>>2]=i;c[l>>2]=b;g[d>>2]=h;g[e>>2]=f;a=1;return a|0}case 1:case 0:{a=1;return a|0}default:{i=a+16|0;j=a+8|0;l=a+12|0;h=+g[l>>2];k=a+4|0;f=+g[k>>2];n=a+20|0;m=+g[n>>2];d=m>2]|0;c[a>>2]=c[i>>2];c[i>>2]=l;g[k>>2]=m;g[n>>2]=f;break}d=c[a>>2]|0;c[a>>2]=c[j>>2];c[j>>2]=d;g[k>>2]=h;g[l>>2]=f;if(m>2]=c[i>>2];c[i>>2]=d;g[l>>2]=m;g[n>>2]=f}}else if(d?(d=c[j>>2]|0,e=c[i>>2]|0,c[j>>2]=e,c[i>>2]=d,g[l>>2]=m,g[n>>2]=h,m>2]|0;c[a>>2]=e;c[j>>2]=n;g[k>>2]=m;g[l>>2]=f}while(0);d=a+24|0;if((d|0)==(b|0)){a=1;return a|0}else e=0;while(1){f=+g[d+4>>2];if(f<+g[i+4>>2]){l=c[d>>2]|0;k=d;j=i;while(1){c[k>>2]=c[j>>2];i=j+4|0;c[k+4>>2]=c[i>>2];if((j|0)==(a|0))break;if(f<+g[j+-4>>2]){k=j;j=j+-8|0}else break}c[j>>2]=l;g[i>>2]=f;e=e+1|0;if((e|0)==8)break}i=d+8|0;if((i|0)==(b|0)){d=1;o=34;break}else{n=d;d=i;i=n}}if((o|0)==34)return d|0;a=(d+8|0)==(b|0);return a|0}}return 0}function Wd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0;n=b+4|0;j=+g[n>>2];m=a+4|0;f=+g[m>>2];l=d+4|0;h=+g[l>>2];i=h>2]|0;c[a>>2]=c[d>>2];c[d>>2]=k;g[m>>2]=h;g[l>>2]=f;k=1;break}i=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=i;g[m>>2]=j;g[n>>2]=f;h=+g[l>>2];if(h>2]=c[d>>2];c[d>>2]=i;g[n>>2]=h;g[l>>2]=f;k=2}else{k=1;f=h}}else if(i){k=c[b>>2]|0;c[b>>2]=c[d>>2];c[d>>2]=k;g[n>>2]=h;g[l>>2]=j;h=+g[n>>2];f=+g[m>>2];if(h>2]|0;c[a>>2]=c[b>>2];c[b>>2]=k;g[m>>2]=h;g[n>>2]=f;k=2;f=+g[l>>2]}else{k=1;f=j}}else{k=0;f=h}while(0);i=e+4|0;h=+g[i>>2];if(!(h>2]|0;c[d>>2]=c[e>>2];c[e>>2]=o;g[l>>2]=h;g[i>>2]=f;h=+g[l>>2];f=+g[n>>2];if(!(h>2]|0;c[b>>2]=c[d>>2];c[d>>2]=o;g[n>>2]=h;g[l>>2]=f;h=+g[n>>2];f=+g[m>>2];if(!(h>2]|0;c[a>>2]=c[b>>2];c[b>>2]=o;g[m>>2]=h;g[n>>2]=f;o=k+3|0;return o|0}function Xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0;switch(b-a>>3|0){case 2:{d=b+-4|0;f=+g[d>>2];e=a+4|0;h=+g[e>>2];if(!(f>2]|0;c[a>>2]=c[b>>2];c[b>>2]=o;g[e>>2]=f;g[d>>2]=h;a=1;return a|0}case 3:{k=a+8|0;i=b+-8|0;l=a+12|0;h=+g[l>>2];j=a+4|0;m=+g[j>>2];e=b+-4|0;f=+g[e>>2];d=f>2]|0;c[k>>2]=c[i>>2];c[i>>2]=b;g[l>>2]=f;g[e>>2]=h;h=+g[l>>2];f=+g[j>>2];if(!(h>2]|0;c[a>>2]=c[k>>2];c[k>>2]=b;g[j>>2]=h;g[l>>2]=f;a=1;return a|0}if(d){b=c[a>>2]|0;c[a>>2]=c[i>>2];c[i>>2]=b;g[j>>2]=f;g[e>>2]=m;a=1;return a|0}d=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=d;g[j>>2]=h;g[l>>2]=m;f=+g[e>>2];if(!(f>2]=c[i>>2];c[i>>2]=d;g[l>>2]=f;g[e>>2]=m;a=1;return a|0}case 4:{Wd(a,a+8|0,a+16|0,b+-8|0)|0;a=1;return a|0}case 5:{l=a+8|0;k=a+16|0;e=a+24|0;Wd(a,l,k,e)|0;d=b+-4|0;h=+g[d>>2];j=a+28|0;f=+g[j>>2];if(!(h>2]|0;c[e>>2]=c[b>>2];c[b>>2]=o;g[j>>2]=h;g[d>>2]=f;h=+g[j>>2];d=a+20|0;f=+g[d>>2];if(!(h>2]|0;i=c[e>>2]|0;c[k>>2]=i;c[e>>2]=b;g[d>>2]=h;g[j>>2]=f;e=a+12|0;f=+g[e>>2];if(!(h>2]|0;c[l>>2]=i;c[k>>2]=b;g[e>>2]=h;g[d>>2]=f;d=a+4|0;f=+g[d>>2];if(!(h>2]|0;c[a>>2]=i;c[l>>2]=b;g[d>>2]=h;g[e>>2]=f;a=1;return a|0}case 1:case 0:{a=1;return a|0}default:{i=a+16|0;j=a+8|0;l=a+12|0;h=+g[l>>2];k=a+4|0;f=+g[k>>2];n=a+20|0;m=+g[n>>2];d=m>2]|0;c[a>>2]=c[i>>2];c[i>>2]=l;g[k>>2]=m;g[n>>2]=f;break}d=c[a>>2]|0;c[a>>2]=c[j>>2];c[j>>2]=d;g[k>>2]=h;g[l>>2]=f;if(m>2]=c[i>>2];c[i>>2]=d;g[l>>2]=m;g[n>>2]=f}}else if(d?(d=c[j>>2]|0,e=c[i>>2]|0,c[j>>2]=e,c[i>>2]=d,g[l>>2]=m,g[n>>2]=h,m>2]|0;c[a>>2]=e;c[j>>2]=n;g[k>>2]=m;g[l>>2]=f}while(0);d=a+24|0;if((d|0)==(b|0)){a=1;return a|0}else e=0;while(1){f=+g[d+4>>2];if(f<+g[i+4>>2]){l=c[d>>2]|0;k=d;j=i;while(1){c[k>>2]=c[j>>2];i=j+4|0;c[k+4>>2]=c[i>>2];if((j|0)==(a|0))break;if(f<+g[j+-4>>2]){k=j;j=j+-8|0}else break}c[j>>2]=l;g[i>>2]=f;e=e+1|0;if((e|0)==8)break}i=d+8|0;if((i|0)==(b|0)){d=1;o=34;break}else{n=d;d=i;i=n}}if((o|0)==34)return d|0;a=(d+8|0)==(b|0);return a|0}}return 0}function Yd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;g=a+4|0;c[g>>2]=0;c[a+8>>2]=0;f=b+4|0;i=c[f>>2]|0;h=c[b>>2]|0;d=i-h|0;e=(d|0)/12|0;if((i|0)==(h|0))return;if(e>>>0>357913941)Ke(a);d=Me(d)|0;c[g>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(e*12|0);e=c[b>>2]|0;b=c[f>>2]|0;if((e|0)==(b|0))return;do{dg(d,e);d=(c[g>>2]|0)+12|0;c[g>>2]=d;e=e+12|0}while((e|0)!=(b|0));return}function Zd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;c[b>>2]=0;h=b+4|0;c[h>>2]=0;c[b+8>>2]=0;g=d+4|0;j=c[g>>2]|0;i=c[d>>2]|0;e=j-i|0;f=(e|0)/24|0;if((j|0)==(i|0))return;if(f>>>0>178956970)Ke(b);e=Me(e)|0;c[h>>2]=e;c[b>>2]=e;c[b+8>>2]=e+(f*24|0);f=c[d>>2]|0;d=c[g>>2]|0;if((f|0)==(d|0))return;do{Ec(e,f);j=e+12|0;i=f+12|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];a[j+8>>0]=a[i+8>>0]|0;e=(c[h>>2]|0)+24|0;c[h>>2]=e;f=f+24|0}while((f|0)!=(d|0));return}function _d(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;c[b>>2]=0;h=b+4|0;c[h>>2]=0;c[b+8>>2]=0;g=d+4|0;e=(c[g>>2]|0)-(c[d>>2]|0)|0;f=e>>5;if(!f)return;if(f>>>0>134217727)Ke(b);e=Me(e)|0;c[h>>2]=e;c[b>>2]=e;c[b+8>>2]=e+(f<<5);f=c[d>>2]|0;d=c[g>>2]|0;if((f|0)==(d|0))return;do{Ec(e,f);Ec(e+12|0,f+12|0);g=e+24|0;b=f+24|0;c[g>>2]=c[b>>2];a[g+4>>0]=a[b+4>>0]|0;e=(c[h>>2]|0)+32|0;c[h>>2]=e;f=f+32|0}while((f|0)!=(d|0));return}function $d(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;g=a+4|0;c[g>>2]=0;c[a+8>>2]=0;f=b+4|0;i=c[f>>2]|0;h=c[b>>2]|0;d=i-h|0;e=(d|0)/40|0;if((i|0)==(h|0))return;if(e>>>0>107374182)Ke(a);d=Me(d)|0;c[g>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(e*40|0);e=c[b>>2]|0;b=c[f>>2]|0;if((e|0)==(b|0))return;do{c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];c[d+16>>2]=c[e+16>>2];c[d+20>>2]=c[e+20>>2];c[d+24>>2]=c[e+24>>2];od(d+28|0,e+28|0);d=(c[g>>2]|0)+40|0;c[g>>2]=d;e=e+40|0}while((e|0)!=(b|0));return}function ae(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;g=a+4|0;c[g>>2]=0;c[a+8>>2]=0;f=b+4|0;i=c[f>>2]|0;h=c[b>>2]|0;d=i-h|0;e=(d|0)/28|0;if((i|0)==(h|0))return;if(e>>>0>153391689)Ke(a);d=Me(d)|0;c[g>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(e*28|0);e=c[b>>2]|0;b=c[f>>2]|0;if((e|0)==(b|0))return;do{c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];Kc(d+16|0,e+16|0);d=(c[g>>2]|0)+28|0;c[g>>2]=d;e=e+28|0}while((e|0)!=(b|0));return}function be(a){a=+a;var b=0;a=a<70.0?70.0:a;a=a>110.0?110.0:a;b=~~a;a=a-+(b|0);return +((1.0-a)*+h[576+(b+-70<<3)>>3]+a*+h[576+(b+-69<<3)>>3])}function ce(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=0;k=0;do{j=a+(k<<1)|0;g=b[j>>1]|0;f=c[d+(k<<2)>>2]|0;h=g<<16>>16;i=(h|0)%(f|0)|0;if((i<<1|0)<=(f|0)){l=(_(i,-2)|0)>(f|0);f=l?0-f|0:0}l=h-i+f&65535;e=e|l<<16>>16!=g<<16>>16;b[j>>1]=l;k=k+1|0}while((k|0)!=64);return e|0}function de(a,b,c){a=+a;b=b|0;c=+c;a=a-c;if(a<=0.0){c=+(b|0);return +c}c=a*50.0;if(c>10.0){c=+(b|0)+a*22026465794806716.0e18;return +c}else{c=+(b|0)*+X(+c);return +c}return 0.0}function ee(b){b=b|0;var c=0,d=0;b=bg(b+64|0)|0;if(!b){c=0;return c|0}c=b;if(c&3)za(38126,38159,59,38242);c=64-(c&63)|0;d=b+(c+-4)|0;a[d>>0]=b;a[d+1>>0]=b>>8;a[d+2>>0]=b>>16;a[d+3>>0]=b>>24;c=b+c|0;return c|0}function fe(a){a=a|0;var b=0,c=0;if(!a)return;if(a&63)za(38251,38159,70,38310);c=a+-4|0;b=d[c>>0]|d[c+1>>0]<<8|d[c+2>>0]<<16|d[c+3>>0]<<24;if(b>>>0>c>>>0)za(38315,38159,73,38310);if(b>>>0<(a+-64|0)>>>0)za(38351,38159,74,38310);cg(b);return}function ge(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=i;i=i+48|0;v=x+24|0;u=x+12|0;r=x;n=-1.0/(e*2.0*e);m=~~(+N(+e)*2.25);m=(m|0)>1?m:1;q=m<<1|1;c[v>>2]=0;w=v+4|0;c[w>>2]=0;c[v+8>>2]=0;if(q>>>0>1073741823)Ke(v);t=q<<2;j=Me(t)|0;c[v>>2]=j;h=j+(q<<2)|0;c[v+8>>2]=h;pg(j|0,0,t|0)|0;c[w>>2]=h;h=0-m|0;if((m|0)>=(h|0))while(1){y=+(h|0);g[j+(h+m<<2)>>2]=+X(+(y*(n*y)));if((h|0)<(m|0))h=h+1|0;else break}o=~~(e/3.0);o=(o|0)>1?o:1;p=((a+-1+o|0)>>>0)/(o>>>0)|0;h=_(p,b)|0;c[u>>2]=0;t=u+4|0;c[t>>2]=0;c[u+8>>2]=0;do if(h)if(h>>>0>1073741823)Ke(u);else{j=h<<2;k=Me(j)|0;c[u>>2]=k;s=k+(h<<2)|0;c[u+8>>2]=s;pg(k|0,0,j|0)|0;c[t>>2]=s;break}else k=0;while(0);h=_(((b+-1+o|0)>>>0)/(o>>>0)|0,p)|0;c[r>>2]=0;s=r+4|0;c[s>>2]=0;c[r+8>>2]=0;do if(h)if(h>>>0>1073741823)Ke(r);else{k=h<<2;j=Me(k)|0;c[r>>2]=j;l=j+(h<<2)|0;c[r+8>>2]=l;pg(j|0,0,k|0)|0;c[s>>2]=l;l=c[u>>2]|0;break}else l=k;while(0);Ge(a,b,o,q,m,c[v>>2]|0,d,f,l);Ge(b,p,o,q,m,c[v>>2]|0,c[u>>2]|0,f,c[r>>2]|0);if(b){h=c[r>>2]|0;if(!a)j=19;else{m=0;do{j=_((m|0)/(o|0)|0,p)|0;k=_(m,a)|0;l=0;do{c[d+(l+k<<2)>>2]=c[h+(j+((l|0)/(o|0)|0)<<2)>>2];l=l+1|0}while((l|0)!=(a|0));m=m+1|0}while((m|0)!=(b|0));j=20}}else{h=c[r>>2]|0;j=19}if((j|0)==19?(h|0)!=0:0)j=20;if((j|0)==20){j=c[s>>2]|0;if((j|0)!=(h|0))c[s>>2]=j+(~((j+-4-h|0)>>>2)<<2);Oe(h)}h=c[u>>2]|0;j=h;if(h){k=c[t>>2]|0;if((k|0)!=(h|0))c[t>>2]=k+(~((k+-4-j|0)>>>2)<<2);Oe(h)}h=c[v>>2]|0;if(!h){i=x;return}j=c[w>>2]|0;if((j|0)!=(h|0))c[w>>2]=j+(~((j+-4-h|0)>>>2)<<2);Oe(h);i=x;return}function he(b,c,d,e,f,g,i,j){b=+b;c=+c;d=+d;e=+e;f=+f;g=+g;i=+i;j=j|0;var k=0,l=0.0,m=0.0,n=0.0;n=(c*.0812519812628+d)*7.34905756986;m=b*6.64482198135;if((a[1264]|0)==0?(xa(1264)|0)!=0:0){h[159]=0.0;h[160]=5.2511644570349185;h[161]=10.502328914069837;h[162]=15.753493371104756;h[163]=21.004657828139674;h[164]=26.25582228517459;h[165]=31.50698674220951;h[166]=36.75815119924443;h[167]=42.00931565627935;h[168]=47.260480113314266;h[169]=52.51164457034918;h[170]=57.7628090273841;h[171]=63.01397348441902;h[172]=68.26513794145394;h[173]=73.51630239848886;h[174]=78.76746685552378;h[175]=84.0186313125587;h[176]=89.26979576959361;h[177]=94.52096022662853;h[178]=99.77212468366345;h[179]=105.02328914069837;Ca(1264)}b=c*.837846224276;d=+N(+b);if(!(d<1.0e4))za(38389,38159,303,38400);k=~~d;if((k|0)<20){l=+h[1272+(k<<3)>>3];d=l+(d-+(k|0))*(+h[1272+(k+1<<3)>>3]-l)}else d=+h[179];l=b<0.0?-d:d;if(e==0.0&f==0.0&g==0.0){h[j>>3]=m*(m*i)+ +h[j>>3];k=j+8|0;h[k>>3]=l*(l*i)+ +h[k>>3];j=j+16|0;h[j>>3]=n*(n*i)+ +h[j>>3];return}g=(f*.0812519812628+g)*7.34905756986;c=e*6.64482198135;if((a[1264]|0)==0?(xa(1264)|0)!=0:0){h[159]=0.0;h[160]=5.2511644570349185;h[161]=10.502328914069837;h[162]=15.753493371104756;h[163]=21.004657828139674;h[164]=26.25582228517459;h[165]=31.50698674220951;h[166]=36.75815119924443;h[167]=42.00931565627935;h[168]=47.260480113314266;h[169]=52.51164457034918;h[170]=57.7628090273841;h[171]=63.01397348441902;h[172]=68.26513794145394;h[173]=73.51630239848886;h[174]=78.76746685552378;h[175]=84.0186313125587;h[176]=89.26979576959361;h[177]=94.52096022662853;h[178]=99.77212468366345;h[179]=105.02328914069837;Ca(1264)}b=f*.837846224276;d=+N(+b);if(!(d<1.0e4))za(38389,38159,303,38400);k=~~d;if((k|0)<20){f=+h[1272+(k<<3)>>3];d=f+(d-+(k|0))*(+h[1272+(k+1<<3)>>3]-f)}else d=+h[179];f=m-c;m=l-(b<0.0?-d:d);n=n-g;h[j>>3]=f*(f*i)+ +h[j>>3];k=j+8|0;h[k>>3]=+h[k>>3]+m*(m*i);j=j+16|0;h[j>>3]=n*(n*i)+ +h[j>>3];return} +function qb(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function rb(){return i|0}function sb(a){a=a|0;i=a}function tb(a,b){a=a|0;b=b|0;i=a;j=b}function ub(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function vb(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function wb(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function xb(a){a=a|0;C=a}function yb(){return C|0}function zb(){return 34608}function Ab(a){a=a|0;var b=0;b=Me(12)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;ig(b,a,0);return b|0}function Bb(a){a=a|0;if(!a)return;fg(a);Oe(a);return}function Cb(a,b){a=a|0;b=b|0;ig(a,b,0);return}function Db(b){b=b|0;var d=0;d=a[b>>0]|0;if(!(d&1)){b=(d&255)>>>1;return b|0}else{b=c[b+4>>2]|0;return b|0}return 0}function Eb(b){b=b|0;if(!(a[b>>0]&1)){b=b+1|0;return b|0}else{b=c[b+8>>2]|0;return b|0}return 0}function Fb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0;g=Me(12)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;ig(g,0,0);if(Gb(a,b,d,e,f,g)|0){b=g;return b|0}fg(g);Oe(g);b=0;return b|0}function Gb(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+64|0;q=u+48|0;s=u+16|0;r=u;c[r>>2]=0;t=r+4|0;c[t>>2]=0;c[r+8>>2]=0;p=d*3|0;k=_(p,e)|0;if(k)Lb(r,k);o=(f|0)==0?d:f;if((d|0)>0&(e|0)>0){f=0;m=0;while(1){k=_(f,o)|0;l=0;n=m;while(1){v=b+(l+k)|0;a[(c[r>>2]|0)+n>>0]=a[v>>0]|0;a[(c[r>>2]|0)+(n+1)>>0]=a[v>>0]|0;a[(c[r>>2]|0)+(n+2)>>0]=a[v>>0]|0;l=l+1|0;if((l|0)==(d|0))break;else n=n+3|0}f=f+1|0;if((f|0)==(e|0))break;else m=m+p|0}}a[q+4>>0]=1;a[q+5>>0]=0;a[q+6>>0]=0;a[q+7>>0]=0;c[q+8>>2]=3;a[q+12>>0]=1;g[q>>2]=+be(h);c[s+4>>2]=0;c[s+8>>2]=0;k=s+4|0;c[s>>2]=k;f=s+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;f=Fd(q,s,r,d,e,j)|0;fg(s+20|0);Mb(s,c[k>>2]|0);k=c[r>>2]|0;if(!k){i=u;return f|0}if((c[t>>2]|0)!=(k|0))c[t>>2]=k;Oe(k);i=u;return f|0}function Hb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0;g=Me(12)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;ig(g,0,0);if(Ib(a,b,d,e,f,g)|0){b=g;return b|0}fg(g);Oe(g);b=0;return b|0}function Ib(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+64|0;m=q+48|0;o=q+16|0;n=q;c[n>>2]=0;p=n+4|0;c[p>>2]=0;c[n+8>>2]=0;l=d*3|0;k=_(l,e)|0;if(k)Lb(n,k);if(!((f|0)==0|(l|0)==(f|0))){if((e|0)>0){k=0;do{r=_(k,l)|0;tg((c[n>>2]|0)+r|0,b+(_(k,f)|0)|0,l|0)|0;k=k+1|0}while((k|0)!=(e|0))}}else{r=c[n>>2]|0;tg(r|0,b|0,(c[p>>2]|0)-r|0)|0}a[m+4>>0]=1;a[m+5>>0]=0;a[m+6>>0]=0;a[m+7>>0]=0;c[m+8>>2]=3;a[m+12>>0]=1;g[m>>2]=+be(h);c[o+4>>2]=0;c[o+8>>2]=0;k=o+4|0;c[o>>2]=k;l=o+12|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;l=Fd(m,o,n,d,e,j)|0;fg(o+20|0);Mb(o,c[k>>2]|0);k=c[n>>2]|0;if(!k){i=q;return l|0}if((c[p>>2]|0)!=(k|0))c[p>>2]=k;Oe(k);i=q;return l|0}function Jb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0;g=Me(12)|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;ig(g,0,0);if(Kb(a,b,d,e,f,g)|0){b=g;return b|0}fg(g);Oe(g);b=0;return b|0}function Kb(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+64|0;q=u+48|0;s=u+16|0;r=u;c[r>>2]=0;t=r+4|0;c[t>>2]=0;c[r+8>>2]=0;p=d*3|0;k=_(p,e)|0;if(k)Lb(r,k);k=(f|0)==0?d<<2:f;if((d|0)>0&(e|0)>0){l=0;n=0;while(1){f=_(l,k)|0;m=0;o=n;while(1){v=m<<2;a[(c[r>>2]|0)+o>>0]=a[b+(v+f)>>0]|0;a[(c[r>>2]|0)+(o+1)>>0]=a[b+((v|1)+f)>>0]|0;a[(c[r>>2]|0)+(o+2)>>0]=a[b+((v|2)+f)>>0]|0;m=m+1|0;if((m|0)==(d|0))break;else o=o+3|0}l=l+1|0;if((l|0)==(e|0))break;else n=n+p|0}}a[q+4>>0]=1;a[q+5>>0]=0;a[q+6>>0]=0;a[q+7>>0]=0;c[q+8>>2]=3;a[q+12>>0]=1;g[q>>2]=+be(h);c[s+4>>2]=0;c[s+8>>2]=0;k=s+4|0;c[s>>2]=k;f=s+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;f=Fd(q,s,r,d,e,j)|0;fg(s+20|0);Mb(s,c[k>>2]|0);k=c[r>>2]|0;if(!k){i=u;return f|0}if((c[t>>2]|0)!=(k|0))c[t>>2]=k;Oe(k);i=u;return f|0}function Lb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=b+8|0;g=c[k>>2]|0;l=b+4|0;e=c[l>>2]|0;f=e;if((g-f|0)>>>0>=d>>>0){do{a[e>>0]=0;e=(c[l>>2]|0)+1|0;c[l>>2]=e;d=d+-1|0}while((d|0)!=0);return}e=c[b>>2]|0;f=f-e+d|0;if((f|0)<0)Ke(b);h=e;e=g-h|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?f:e;f=(c[l>>2]|0)-h|0;if(!e){g=0;i=0}else j=8}else{e=2147483647;f=(c[l>>2]|0)-h|0;j=8}if((j|0)==8){g=e;i=Me(e)|0}e=i+f|0;h=i+g|0;g=e;do{a[g>>0]=0;g=e+1|0;e=g;d=d+-1|0}while((d|0)!=0);d=c[b>>2]|0;g=(c[l>>2]|0)-d|0;j=i+(f-g)|0;tg(j|0,d|0,g|0)|0;c[b>>2]=j;c[l>>2]=e;c[k>>2]=h;if(!d)return;Oe(d);return}function Mb(a,b){a=a|0;b=b|0;if(!b)return;else{Mb(a,c[b>>2]|0);Mb(a,c[b+4>>2]|0);fg(b+16|0);Oe(b);return}}function Nb(a,b,e,f,j,k){a=a|0;b=b|0;e=e|0;f=f|0;j=+j;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0;$=i;i=i+112|0;R=$+16|0;P=$+8|0;u=$;Q=$+88|0;q=$+84|0;v=$+72|0;O=$+60|0;Z=$+48|0;V=$+36|0;Y=$+24|0;c[a>>2]=26480;W=a+4|0;c[W>>2]=b;X=a+8|0;c[X>>2]=e;g[a+12>>2]=j;S=a+16|0;T=a+20|0;U=a+28|0;M=a+40|0;l=a+52|0;m=S;n=m+36|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(n|0));me(l,b,e,3);g[a+76>>2]=0.0;l=a+80|0;n=c[W>>2]|0;j=+(c[X>>2]|0);c[l>>2]=0;o=a+84|0;c[o>>2]=0;c[a+88>>2]=0;if(n){if(n>>>0>1073741823)Ke(l);p=Me(n<<2)|0;c[o>>2]=p;c[l>>2]=p;c[a+88>>2]=p+(n<<2);l=n;m=p;while(1){g[m>>2]=j;l=l+-1|0;if(!l)break;else m=m+4|0}c[o>>2]=p+(n<<2)}c[a+92>>2]=k;r=vc()|0;c[Q>>2]=b;c[q>>2]=e;c[v>>2]=0;s=v+4|0;c[s>>2]=0;c[v+8>>2]=0;Tb(v,3);t=v+8|0;l=c[s>>2]|0;if(l>>>0<(c[t>>2]|0)>>>0){c[l>>2]=b;c[l+4>>2]=e;K=(b<<2)+95|0;L=K&-64;L=(K&1984|0)==0?L+64|0:L;c[l+8>>2]=L;c[l+12>>2]=ee(_(L,e)|0)|0;c[l+16>>2]=10;l=(c[s>>2]|0)+20|0;c[s>>2]=l}else{Ub(v,Q,q);l=c[s>>2]|0}if(l>>>0<(c[t>>2]|0)>>>0){c[l>>2]=b;c[l+4>>2]=e;K=(b<<2)+95|0;L=K&-64;L=(K&1984|0)==0?L+64|0:L;c[l+8>>2]=L;c[l+12>>2]=ee(_(L,e)|0)|0;c[l+16>>2]=10;l=(c[s>>2]|0)+20|0;c[s>>2]=l}else{Ub(v,Q,q);l=c[s>>2]|0}if(l>>>0<(c[t>>2]|0)>>>0){c[l>>2]=b;c[l+4>>2]=e;K=(b<<2)+95|0;L=K&-64;L=(K&1984|0)==0?L+64|0:L;c[l+8>>2]=L;c[l+12>>2]=ee(_(L,e)|0)|0;c[l+16>>2]=10;c[s>>2]=(c[s>>2]|0)+20}else Ub(v,Q,q);k=(b|0)==0;a:do if(e){b:do if(k){l=c[(c[v>>2]|0)+4>>2]|0;m=0;while(1){if(l>>>0<=m>>>0)break;m=m+1|0;if(m>>>0>=e>>>0)break b}c[u>>2]=m;L=u+4|0;c[L>>2]=l;Hf(38668,u)|0;wa()}else{o=c[f>>2]|0;m=0;while(1){p=_(m,b)|0;n=c[v>>2]|0;l=c[n+4>>2]|0;if(l>>>0<=m>>>0)break;l=(c[n+12>>2]|0)+(_(c[n+8>>2]|0,m)|0)|0;n=0;do{g[l+(n<<2)>>2]=+h[r+((d[o+((n+p|0)*3|0)>>0]|0)<<3)>>3];n=n+1|0}while((n|0)!=(b|0));m=m+1|0;if(m>>>0>=e>>>0)break b}c[u>>2]=m;L=u+4|0;c[L>>2]=l;Hf(38668,u)|0;wa()}while(0);c:do if(k){l=c[(c[v>>2]|0)+24>>2]|0;m=0;while(1){if(l>>>0<=m>>>0)break;m=m+1|0;if(m>>>0>=e>>>0)break c}c[u>>2]=m;L=u+4|0;c[L>>2]=l;Hf(38668,u)|0;wa()}else{o=c[f>>2]|0;m=0;while(1){p=_(m,b)|0;n=c[v>>2]|0;l=c[n+24>>2]|0;if(l>>>0<=m>>>0)break;l=(c[n+32>>2]|0)+(_(c[n+28>>2]|0,m)|0)|0;n=0;do{g[l+(n<<2)>>2]=+h[r+((d[o+(((n+p|0)*3|0)+1)>>0]|0)<<3)>>3];n=n+1|0}while((n|0)!=(b|0));m=m+1|0;if(m>>>0>=e>>>0)break c}c[u>>2]=m;L=u+4|0;c[L>>2]=l;Hf(38668,u)|0;wa()}while(0);if(k){l=c[(c[v>>2]|0)+44>>2]|0;m=0;while(1){if(l>>>0<=m>>>0)break;m=m+1|0;if(m>>>0>=e>>>0)break a}c[u>>2]=m;L=u+4|0;c[L>>2]=l;Hf(38668,u)|0;wa()}o=c[f>>2]|0;m=0;while(1){p=_(m,b)|0;n=c[v>>2]|0;l=c[n+44>>2]|0;if(l>>>0<=m>>>0)break;l=(c[n+52>>2]|0)+(_(c[n+48>>2]|0,m)|0)|0;n=0;do{g[l+(n<<2)>>2]=+h[r+((d[o+(((n+p|0)*3|0)+2)>>0]|0)<<3)>>3];n=n+1|0}while((n|0)!=(b|0));m=m+1|0;if(m>>>0>=e>>>0)break a}c[u>>2]=m;L=u+4|0;c[L>>2]=l;Hf(38668,u)|0;wa()}while(0);l=c[S>>2]|0;if(!l)l=a+24|0;else{m=c[T>>2]|0;if((m|0)!=(l|0)){do{c[T>>2]=m+-20;L=m+-8|0;n=c[L>>2]|0;c[L>>2]=0;if(n)gb[c[m+-4>>2]&15](n);m=c[T>>2]|0}while((m|0)!=(l|0));l=c[S>>2]|0}Oe(l);l=a+24|0;c[l>>2]=0;c[T>>2]=0;c[S>>2]=0}c[S>>2]=c[v>>2];c[T>>2]=c[s>>2];c[l>>2]=c[t>>2];c[t>>2]=0;c[s>>2]=0;c[v>>2]=0;l=c[W>>2]|0;K=(l+7|0)/8|0;J=c[X>>2]|0;L=(J+7|0)/8|0;Wb(M,_(L,K)|0);d:do if((J|0)>0){F=(l|0)>0;G=O+4|0;H=O+8|0;I=O+8|0;J=0;l=0;e:while(1){if(F){D=J<<3;E=0;C=l;while(1){p=c[M>>2]|0;l=p+(C*12|0)|0;c[O>>2]=0;c[G>>2]=0;c[H>>2]=0;k=Me(256)|0;c[O>>2]=k;m=k+256|0;c[I>>2]=m;pg(k|0,0,256)|0;c[G>>2]=m;p=p+(C*12|0)+4|0;m=c[p>>2]|0;n=c[l>>2]|0;o=(m-n|0)/12|0;if(o>>>0>=3){if(o>>>0>3?(N=n+36|0,(m|0)!=(N|0)):0)while(1){l=m+-12|0;c[p>>2]=l;n=c[l>>2]|0;o=n;if(n){l=m+-8|0;m=c[l>>2]|0;if((m|0)!=(n|0))c[l>>2]=m+(~((m+-4-o|0)>>>2)<<2);Oe(n);l=c[p>>2]|0}if((l|0)==(N|0))break;else m=l}}else Xb(l,3-o|0,O);l=c[G>>2]|0;if((l|0)!=(k|0))c[G>>2]=l+(~((l+-4-k|0)>>>2)<<2);Oe(k);t=E<<3;e=(c[W>>2]|0)+-1|0;u=(c[X>>2]|0)+-1|0;B=c[S>>2]|0;m=c[B+4>>2]|0;b=B+12|0;v=B+8|0;w=B+24|0;x=B+32|0;y=B+28|0;z=B+44|0;A=B+52|0;B=B+48|0;n=0;o=0;do{l=o+D|0;l=(u|0)<(l|0)?u:l;s=m>>>0>l>>>0;f=0;while(1){k=f+t|0;k=(e|0)<(k|0)?e:k;if(!s){n=54;break e}p=c[(c[b>>2]|0)+(_(c[v>>2]|0,l)|0)+(k<<2)>>2]|0;r=c[M>>2]|0;q=c[r+(C*12|0)>>2]|0;c[(c[q>>2]|0)+(n<<2)>>2]=p;p=c[w>>2]|0;if(p>>>0<=l>>>0){m=p;n=54;break e}p=c[(c[x>>2]|0)+(_(c[y>>2]|0,l)|0)+(k<<2)>>2]|0;c[(c[q+12>>2]|0)+(n<<2)>>2]=p;p=c[z>>2]|0;if(p>>>0<=l>>>0){m=p;n=54;break e}k=c[(c[A>>2]|0)+(_(c[B>>2]|0,l)|0)+(k<<2)>>2]|0;c[(c[q+24>>2]|0)+(n<<2)>>2]=k;f=f+1|0;n=n+1|0;if((f|0)>=8){l=r;break}}o=o+1|0}while((o|0)<8);oe(8,8,l+(C*12|0)|0);E=E+1|0;l=C+1|0;if((E|0)>=(K|0))break;else C=l}}J=J+1|0;if((J|0)>=(L|0))break d}if((n|0)==54){c[P>>2]=l;c[P+4>>2]=m;Hf(38668,P)|0;wa()}}while(0);l=c[S>>2]|0;m=c[T>>2]|0;if((l|0)==(m|0))za(38760,38571,385,38776);z=_(c[l+4>>2]|0,c[l>>2]|0)|0;c[Z>>2]=0;A=Z+4|0;c[A>>2]=0;c[Z+8>>2]=0;Yb(Z,(m-l|0)/20|0);l=c[S>>2]|0;t=c[T>>2]|0;f:do if((l|0)!=(t|0)){e=Q+4|0;u=Q+8|0;b=(z|0)==0;v=Z+8|0;w=Q+8|0;x=z>>>0>1073741823;y=z<<2;s=l;g:while(1){c[Q>>2]=0;c[e>>2]=0;c[u>>2]=0;if(!b){if(x){n=65;break}O=Me(y)|0;c[Q>>2]=O;P=O+(z<<2)|0;c[w>>2]=P;pg(O|0,0,y|0)|0;c[e>>2]=P}l=c[A>>2]|0;if(l>>>0>=(c[v>>2]|0)>>>0){Zb(Z,Q);l=c[Q>>2]|0;m=l;if(l){n=c[e>>2]|0;if((n|0)!=(l|0))c[e>>2]=n+(~((n+-4-m|0)>>>2)<<2);Oe(l)}}else{c[l>>2]=0;P=l+4|0;c[P>>2]=0;c[l+8>>2]=0;c[l>>2]=c[Q>>2];c[P>>2]=c[e>>2];c[l+8>>2]=c[w>>2];c[w>>2]=0;c[e>>2]=0;c[Q>>2]=0;c[A>>2]=(c[A>>2]|0)+12}n=c[s>>2]|0;o=s+4|0;p=c[o>>2]|0;h:do if(p){k=s+12|0;q=s+8|0;r=(c[A>>2]|0)+-12|0;f=n<<2;m=0;while(1){P=(c[k>>2]|0)+(_(c[q>>2]|0,m)|0)|0;tg((c[r>>2]|0)+((_(m,n)|0)<<2)|0,P|0,f|0)|0;m=m+1|0;if(m>>>0>=p>>>0)break h;l=c[o>>2]|0;if(l>>>0<=m>>>0){n=75;break g}}}while(0);s=s+20|0;if((s|0)==(t|0))break f}if((n|0)==65)Ke(Q);else if((n|0)==75){c[R>>2]=m;c[R+4>>2]=l;Hf(38793,R)|0;wa()}}while(0);oe(c[W>>2]|0,c[X>>2]|0,Z);_b(V,c[W>>2]|0,c[X>>2]|0,Z);l=c[S>>2]|0;if(!l)l=a+24|0;else{m=c[T>>2]|0;if((m|0)!=(l|0)){do{c[T>>2]=m+-20;R=m+-8|0;n=c[R>>2]|0;c[R>>2]=0;if(n)gb[c[m+-4>>2]&15](n);m=c[T>>2]|0}while((m|0)!=(l|0));l=c[S>>2]|0}Oe(l);l=a+24|0;c[l>>2]=0;c[T>>2]=0;c[S>>2]=0}c[S>>2]=c[V>>2];k=V+4|0;c[T>>2]=c[k>>2];a=V+8|0;c[l>>2]=c[a>>2];c[a>>2]=0;c[k>>2]=0;c[V>>2]=0;c[Y>>2]=0;k=Y+4|0;c[k>>2]=0;c[Y+8>>2]=0;V=Me(36)|0;c[Y>>2]=V;l=V+36|0;c[Y+8>>2]=l;c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;c[V+12>>2]=0;c[V+16>>2]=0;c[V+20>>2]=0;c[V+24>>2]=0;c[V+28>>2]=0;c[V+32>>2]=0;c[k>>2]=l;ue(Z,Z,c[W>>2]|0,c[X>>2]|0,U,Y);l=c[Y>>2]|0;if(l){m=c[k>>2]|0;if((m|0)!=(l|0)){do{n=m+-12|0;c[k>>2]=n;o=c[n>>2]|0;p=o;if(!o)m=n;else{m=m+-8|0;n=c[m>>2]|0;if((n|0)!=(o|0))c[m>>2]=n+(~((n+-4-p|0)>>>2)<<2);Oe(o);m=c[k>>2]|0}}while((m|0)!=(l|0));l=c[Y>>2]|0}Oe(l)}l=c[Z>>2]|0;if(!l){i=$;return}m=c[A>>2]|0;if((m|0)!=(l|0)){do{n=m+-12|0;c[A>>2]=n;o=c[n>>2]|0;p=o;if(!o)m=n;else{m=m+-8|0;n=c[m>>2]|0;if((n|0)!=(o|0))c[m>>2]=n+(~((n+-4-p|0)>>>2)<<2);Oe(o);m=c[A>>2]|0}}while((m|0)!=(l|0));l=c[Z>>2]|0}Oe(l);i=$;return}function Ob(b,d){b=b|0;d=d|0;var e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;y=i;i=i+1120|0;t=y+8|0;s=y;x=y+72|0;f=y+60|0;v=y+40|0;u=y+28|0;r=y+88|0;p=y+16|0;l=b+4|0;m=b+8|0;e=_(c[m>>2]|0,c[l>>2]|0)|0;c[f>>2]=0;k=f+4|0;c[k>>2]=0;c[f+8>>2]=0;do if(e)if(e>>>0>1073741823)Ke(f);else{q=e<<2;o=Me(q)|0;c[f>>2]=o;w=o+(e<<2)|0;c[f+8>>2]=w;pg(o|0,0,q|0)|0;c[k>>2]=w;break}while(0);c[x>>2]=0;w=x+4|0;c[w>>2]=0;c[x+8>>2]=0;e=Me(36)|0;c[w>>2]=e;c[x>>2]=e;c[x+8>>2]=e+36;$b(e,f);e=(c[w>>2]|0)+12|0;c[w>>2]=e;$b(e,f);e=(c[w>>2]|0)+12|0;c[w>>2]=e;$b(e,f);c[w>>2]=(c[w>>2]|0)+12;e=c[f>>2]|0;f=e;if(e){j=c[k>>2]|0;if((j|0)!=(e|0))c[k>>2]=j+(~((j+-4-f|0)>>>2)<<2);Oe(e)}kd(d,x);oe(c[l>>2]|0,c[m>>2]|0,x);q=v+16|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[q>>2]=11;_b(u,c[l>>2]|0,c[m>>2]|0,x);qe(b+52|0,b+16|0,u,v);o=b+80|0;e=_(c[m>>2]|0,c[l>>2]|0)|0;f=b+84|0;j=c[f>>2]|0;k=c[o>>2]|0;d=j-k>>2;if(e>>>0<=d>>>0){if(e>>>0>>0?(n=k+(e<<2)|0,(j|0)!=(n|0)):0)c[f>>2]=j+(~((j+-4-n|0)>>>2)<<2)}else bc(o,e-d|0);j=c[v>>2]|0;k=v+4|0;d=c[k>>2]|0;a:do if(d){l=v+12|0;m=v+8|0;n=j<<2;f=0;do{e=(c[l>>2]|0)+(_(c[m>>2]|0,f)|0)|0;tg((c[o>>2]|0)+((_(f,j)|0)<<2)|0,e|0,n|0)|0;f=f+1|0;if(f>>>0>=d>>>0)break a;e=c[k>>2]|0}while(e>>>0>f>>>0);c[s>>2]=f;c[s+4>>2]=e;Hf(38793,s)|0;wa()}while(0);z=+we(v);g[b+76>>2]=z;h[t>>3]=z;If(r,1024,34648,t)|0;a[r+1023>>0]=0;e=c[b+92>>2]|0;eg(p,r,Vf(r)|0);mc(e,p);fg(p);e=c[u>>2]|0;if(e){k=u+4|0;f=c[k>>2]|0;if((f|0)!=(e|0)){do{c[k>>2]=f+-20;t=f+-8|0;j=c[t>>2]|0;c[t>>2]=0;if(j)gb[c[f+-4>>2]&15](j);f=c[k>>2]|0}while((f|0)!=(e|0));e=c[u>>2]|0}Oe(e)}v=v+12|0;e=c[v>>2]|0;c[v>>2]=0;if(e)gb[c[q>>2]&15](e);e=c[x>>2]|0;if(!e){i=y;return}f=c[w>>2]|0;if((f|0)!=(e|0)){do{j=f+-12|0;c[w>>2]=j;k=c[j>>2]|0;d=k;if(!k)f=j;else{f=f+-8|0;j=c[f>>2]|0;if((j|0)!=(k|0))c[f>>2]=j+(~((j+-4-d|0)>>>2)<<2);Oe(k);f=c[w>>2]|0}}while((f|0)!=(e|0));e=c[x>>2]|0}Oe(e);i=y;return}function Pb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0;x=i;i=i+3200|0;w=x+3180|0;y=x+3168|0;u=x+3156|0;t=x+3144|0;n=x+1608|0;o=x+72|0;q=x+48|0;p=x+24|0;r=x;k=d<<3;l=e<<3;m=a+4|0;f=(_(((c[m>>2]|0)+7|0)/8|0,e)|0)+d|0;f=(c[a+40>>2]|0)+(f*12|0)|0;c[y>>2]=0;d=y+4|0;c[d>>2]=0;c[y+8>>2]=0;j=Me(256)|0;c[y>>2]=j;v=j+256|0;c[y+8>>2]=v;pg(j|0,0,256)|0;c[d>>2]=v;c[w>>2]=0;v=w+4|0;c[v>>2]=0;c[w+8>>2]=0;e=Me(36)|0;c[v>>2]=e;c[w>>2]=e;c[w+8>>2]=e+36;$b(e,y);e=(c[v>>2]|0)+12|0;c[v>>2]=e;$b(e,y);e=(c[v>>2]|0)+12|0;c[v>>2]=e;$b(e,y);c[v>>2]=(c[v>>2]|0)+12;c[d>>2]=j;Oe(j);jd(b,k,l,8,8,w);oe(8,8,w);cc(u,f);cc(t,w);ne(8,8,f,w,u,t);f=c[u>>2]|0;j=c[t>>2]|0;d=c[f>>2]|0;e=c[j>>2]|0;b=0;do{h[n+(b<<3)>>3]=+g[d+(b<<2)>>2];h[o+(b<<3)>>3]=+g[e+(b<<2)>>2];b=b+1|0}while((b|0)!=64);d=c[f+12>>2]|0;e=c[j+12>>2]|0;b=0;do{y=b+64|0;h[n+(y<<3)>>3]=+g[d+(b<<2)>>2];h[o+(y<<3)>>3]=+g[e+(b<<2)>>2];b=b+1|0}while((b|0)!=64);b=c[f+24>>2]|0;d=c[j+24>>2]|0;e=0;do{y=e+128|0;h[n+(y<<3)>>3]=+g[b+(e<<2)>>2];h[o+(y<<3)>>3]=+g[d+(e<<2)>>2];e=e+1|0}while((e|0)!=64);c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[p+20>>2]=0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;ke(n,o,q,p,r);y=c[a+28>>2]|0;d=(_(c[m>>2]|0,l)|0)+k|0;A=+g[(c[y>>2]|0)+(d<<2)>>2];z=+g[(c[y+12>>2]|0)+(d<<2)>>2];s=+g[(c[y+24>>2]|0)+(d<<2)>>2];s=+O(+((+h[q>>3]*A+0.0+A*+h[p>>3]+ +h[q+8>>3]*z+z*+h[p+8>>3]+ +h[q+16>>3]*s+s*+h[p+16>>3])*.95+(A*+h[r>>3]+0.0+z*+h[r+8>>3]+s*+h[r+16>>3])*.05));d=c[t>>2]|0;if(d){k=t+4|0;e=c[k>>2]|0;if((e|0)!=(d|0)){do{b=e+-12|0;c[k>>2]=b;f=c[b>>2]|0;j=f;if(!f)e=b;else{e=e+-8|0;b=c[e>>2]|0;if((b|0)!=(f|0))c[e>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(f);e=c[k>>2]|0}}while((e|0)!=(d|0));d=c[t>>2]|0}Oe(d)}d=c[u>>2]|0;if(d){k=u+4|0;e=c[k>>2]|0;if((e|0)!=(d|0)){do{b=e+-12|0;c[k>>2]=b;f=c[b>>2]|0;j=f;if(!f)e=b;else{e=e+-8|0;b=c[e>>2]|0;if((b|0)!=(f|0))c[e>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(f);e=c[k>>2]|0}}while((e|0)!=(d|0));d=c[u>>2]|0}Oe(d)}d=c[w>>2]|0;if(!d){i=x;return +s}e=c[v>>2]|0;if((e|0)!=(d|0)){do{b=e+-12|0;c[v>>2]=b;f=c[b>>2]|0;j=f;if(!f)e=b;else{e=e+-8|0;b=c[e>>2]|0;if((b|0)!=(f|0))c[e>>2]=b+(~((b+-4-j|0)>>>2)<<2);Oe(f);e=c[v>>2]|0}}while((e|0)!=(d|0));d=c[w>>2]|0}Oe(d);i=x;return +s}function Qb(a){a=a|0;return +(+g[a+12>>2])}function Rb(a,b,d,e,f,h,j,l){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=h|0;j=j|0;l=l|0;var m=0,n=0.0,o=0,p=0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0.0,T=0,U=0,V=0,W=0,X=0;X=i;i=i+32|0;m=X+12|0;O=X+8|0;W=X+4|0;T=X;S=+g[a+12>>2]*e;L=f<<3;M=h<<3;N=a+4|0;R=(L+-1+(c[N>>2]|0)|0)/(L|0)|0;K=a+8|0;P=(M+-1+(c[K>>2]|0)|0)/(M|0)|0;a=_(P,R)|0;c[m>>2]=0;Q=m+4|0;c[Q>>2]=0;c[m+8>>2]=0;do if(a)if(a>>>0>1073741823)Ke(m);else{J=a<<2;V=Me(J)|0;c[m>>2]=V;U=V+(a<<2)|0;c[m+8>>2]=U;pg(V|0,0,J|0)|0;c[Q>>2]=U;break}else{U=0;V=0}while(0);H=(P|0)>0;if(H){J=(R|0)>0;F=f<<3;G=~F;E=h<<3;C=c[j>>2]|0;m=0;D=~E;while(1){if(J){B=_(m,R)|0;a=m+1|0;v=_(a,M)|0;w=c[K>>2]|0;u=_(m,M)|0;v=(u|0)<(((v|0)<(w|0)?v:w)|0);w=~w;w=~((D|0)>(w|0)?D:w);t=c[N>>2]|0;x=~t;z=0;A=G;while(1){y=z+B|0;m=z;z=z+1|0;f=_(z,L)|0;c[O>>2]=0;if(v){q=_(m,L)|0;j=(q|0)<(((f|0)<(t|0)?f:t)|0);o=~((A|0)>(x|0)?A:x);m=0;e=0.0;p=u;do{if(j){h=_(t,p)|0;f=q;do{m=C+(h+f<<2)|0;m=c[(e<+g[m>>2]?m:O)>>2]|0;c[O>>2]=m;f=f+1|0;e=(c[k>>2]=m,+g[k>>2])}while((f|0)!=(o|0))}p=p+1|0}while((p|0)!=(w|0))}else m=0;c[V+(y<<2)>>2]=m;if((z|0)==(R|0))break;else A=A-F|0}}else a=m+1|0;if((a|0)==(P|0))break;else{m=a;D=D-E|0}}if(H){H=(R|0)>0;I=S;J=d+1|0;q=(b|0)>0;r=S*1.1;s=S*.5;t=-2-d|0;u=~P;v=~R;E=0;G=t;while(1){w=~((G|0)>(u|0)?G:u);if(H){x=_(E,R)|0;y=E-d|0;y=(y|0)>0?y:0;z=J+E|0;z=(y|0)<(((z|0)<(P|0)?z:P)|0);p=z^1;C=0;F=t;while(1){A=~((F|0)>(v|0)?F:v);h=C+x|0;g[W>>2]=I;B=C-d|0;B=(B|0)>0?B:0;D=C;C=C+1|0;j=C+d|0;j=(j|0)<(R|0)?j:R;if(z&(B|0)<(j|0)){e=I;f=y;do{m=_(f,R)|0;a=B;do{b=V+(a+m<<2)|0;b=c[(e<+g[b>>2]?b:W)>>2]|0;c[W>>2]=b;a=a+1|0;e=(c[k>>2]=b,+g[k>>2])}while((a|0)!=(A|0));f=f+1|0}while((f|0)!=(w|0))}else e=I;n=+g[V+(h<<2)>>2];if(q){if(!(!(n<=S)|!(e<=r)))g[(c[l>>2]|0)+(h<<2)>>2]=1.0}else if(!(n<=s+e*.5|p)){a=(B|0)<(j|0);o=y;do{if(a){m=o-E|0;m=(m|0)>-1?m:0-m|0;f=_(o,R)|0;h=c[l>>2]|0;j=B;do{O=j-D|0;O=(O|0)>-1?O:0-O|0;b=h+(j+f<<2)|0;n=1.0/(+(((m|0)<(O|0)?O:m)|0)+1.0);g[T>>2]=n;c[b>>2]=c[(+g[b>>2]>2];j=j+1|0}while((j|0)!=(A|0))}o=o+1|0}while((o|0)!=(w|0))}if((C|0)==(R|0))break;else F=F+-1|0}}E=E+1|0;if((E|0)==(P|0))break;else G=G+-1|0}}}if(!V){i=X;return}if((U|0)!=(V|0))c[Q>>2]=U+(~((U+-4-V|0)>>>2)<<2);Oe(V);i=X;return}function Sb(a,b){a=a|0;b=b|0;return +(+de(+g[a+76>>2],b,+g[a+12>>2]))}function Tb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+8|0;i=c[a>>2]|0;h=i;if((((c[l>>2]|0)-h|0)/20|0)>>>0>=b>>>0)return;k=a+4|0;f=c[k>>2]|0;d=f;if(!b)g=0;else g=Me(b*20|0)|0;e=g+(((d-h|0)/20|0)*20|0)|0;m=e;j=g+(b*20|0)|0;if((f|0)==(i|0)){f=a;g=k;e=m;b=h}else{d=m;do{h=f;f=f+-20|0;c[e+-20>>2]=c[f>>2];c[e+-16>>2]=c[h+-16>>2];c[e+-12>>2]=c[h+-12>>2];g=h+-8|0;b=c[g>>2]|0;c[g>>2]=0;h=c[h+-4>>2]|0;c[e+-8>>2]=b;c[e+-4>>2]=h;e=d+-20|0;d=e}while((f|0)!=(i|0));f=a;g=k;e=d;b=c[a>>2]|0;d=c[k>>2]|0}c[f>>2]=e;c[g>>2]=m;c[l>>2]=j;f=b;if((d|0)!=(f|0))do{m=d+-8|0;e=c[m>>2]|0;c[m>>2]=0;if(e)gb[c[d+-4>>2]&15](e);d=d+-20|0}while((d|0)!=(f|0));if(!b)return;Oe(b);return}function Ub(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+4|0;e=c[a>>2]|0;g=(((c[l>>2]|0)-e|0)/20|0)+1|0;if(g>>>0>214748364)Ke(a);m=a+8|0;f=((c[m>>2]|0)-e|0)/20|0;if(f>>>0<107374182){f=f<<1;f=f>>>0>>0?g:f;e=((c[l>>2]|0)-e|0)/20|0;if(!f){h=0;i=0}else j=6}else{f=214748364;e=((c[l>>2]|0)-e|0)/20|0;j=6}if((j|0)==6){h=f;i=Me(f*20|0)|0}g=i+(e*20|0)|0;f=g;k=i+(h*20|0)|0;b=c[b>>2]|0;j=c[d>>2]|0;c[g>>2]=b;c[i+(e*20|0)+4>>2]=j;b=(b<<2)+95|0;d=b&-64;d=(b&1984|0)==0?d+64|0:d;c[i+(e*20|0)+8>>2]=d;c[i+(e*20|0)+12>>2]=ee(_(d,j)|0)|0;c[i+(e*20|0)+16>>2]=10;j=i+((e+1|0)*20|0)|0;i=c[a>>2]|0;e=c[l>>2]|0;if((e|0)==(i|0)){g=a;h=l}else{do{d=e;e=e+-20|0;c[g+-20>>2]=c[e>>2];c[g+-16>>2]=c[d+-16>>2];c[g+-12>>2]=c[d+-12>>2];h=d+-8|0;b=c[h>>2]|0;c[h>>2]=0;d=c[d+-4>>2]|0;c[g+-8>>2]=b;c[g+-4>>2]=d;g=f+-20|0;f=g}while((e|0)!=(i|0));e=f;g=a;h=l;f=e;i=c[a>>2]|0;e=c[l>>2]|0}c[g>>2]=f;c[h>>2]=j;c[m>>2]=k;g=i;if((e|0)!=(g|0))do{m=e+-8|0;f=c[m>>2]|0;c[m>>2]=0;if(f)gb[c[e+-4>>2]&15](f);e=e+-20|0}while((e|0)!=(g|0));if(!i)return;Oe(i);return}function Vb(a){a=a|0;Ga(a|0)|0;Ue()}function Wb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=a+4|0;e=c[j>>2]|0;d=c[a>>2]|0;f=(e-d|0)/12|0;if(f>>>0>>0){jc(a,b-f|0);return}if(f>>>0<=b>>>0)return;i=d+(b*12|0)|0;if((e|0)==(i|0))return;while(1){d=e+-12|0;c[j>>2]=d;h=c[d>>2]|0;if(h){g=e+-8|0;e=c[g>>2]|0;if((e|0)==(h|0))d=h;else{do{f=e+-12|0;c[g>>2]=f;b=c[f>>2]|0;a=b;if(!b)e=f;else{e=e+-8|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-4-a|0)>>>2)<<2);Oe(b);e=c[g>>2]|0}}while((e|0)!=(h|0));d=c[d>>2]|0}Oe(d);d=c[j>>2]|0}if((d|0)==(i|0))break;else e=d}return}function Xb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+8|0;g=c[l>>2]|0;m=a+4|0;e=c[m>>2]|0;f=e;if(((g-f|0)/12|0)>>>0>=b>>>0){do{$b(e,d);e=(c[m>>2]|0)+12|0;c[m>>2]=e;b=b+-1|0}while((b|0)!=0);return}e=c[a>>2]|0;f=((f-e|0)/12|0)+b|0;if(f>>>0>357913941)Ke(a);h=e;e=(g-h|0)/12|0;if(e>>>0<178956970){e=e<<1;e=e>>>0>>0?f:e;f=((c[m>>2]|0)-h|0)/12|0;if(!e){h=0;g=0;e=f}else i=8}else{e=357913941;f=((c[m>>2]|0)-h|0)/12|0;i=8}if((i|0)==8){h=e;g=Me(e*12|0)|0;e=f}i=g+(e*12|0)|0;j=i;k=g+(h*12|0)|0;f=i;e=j;do{$b(f,d);f=e+12|0;e=f;b=b+-1|0}while((b|0)!=0);d=e;h=c[a>>2]|0;e=c[m>>2]|0;if((e|0)==(h|0)){f=a;g=m;b=j;j=h}else{f=i;b=j;do{j=f+-12|0;i=e;e=e+-12|0;c[j>>2]=0;g=f+-8|0;c[g>>2]=0;c[f+-4>>2]=0;c[j>>2]=c[e>>2];j=i+-8|0;c[g>>2]=c[j>>2];i=i+-4|0;c[f+-4>>2]=c[i>>2];c[i>>2]=0;c[j>>2]=0;c[e>>2]=0;f=b+-12|0;b=f}while((e|0)!=(h|0));e=b;f=a;g=m;b=e;j=c[a>>2]|0;e=c[m>>2]|0}c[f>>2]=b;c[g>>2]=d;c[l>>2]=k;i=j;if((e|0)!=(i|0))do{b=e;e=e+-12|0;g=c[e>>2]|0;h=g;if(g){b=b+-8|0;f=c[b>>2]|0;if((f|0)!=(g|0))c[b>>2]=f+(~((f+-4-h|0)>>>2)<<2);Oe(g)}}while((e|0)!=(i|0));if(!j)return;Oe(j);return}function Yb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=a+8|0;i=c[a>>2]|0;h=i;if((((c[k>>2]|0)-h|0)/12|0)>>>0>=b>>>0)return;j=a+4|0;f=c[j>>2]|0;d=f;if(!b)g=0;else g=Me(b*12|0)|0;e=g+(((d-h|0)/12|0)*12|0)|0;l=e;b=g+(b*12|0)|0;if((f|0)==(i|0)){f=a;g=j;e=l;i=h}else{d=l;do{h=e+-12|0;g=f;f=f+-12|0;c[h>>2]=0;m=e+-8|0;c[m>>2]=0;c[e+-4>>2]=0;c[h>>2]=c[f>>2];h=g+-8|0;c[m>>2]=c[h>>2];g=g+-4|0;c[e+-4>>2]=c[g>>2];c[g>>2]=0;c[h>>2]=0;c[f>>2]=0;e=d+-12|0;d=e}while((f|0)!=(i|0));f=a;g=j;e=d;i=c[a>>2]|0;d=c[j>>2]|0}c[f>>2]=e;c[g>>2]=l;c[k>>2]=b;h=i;if((d|0)!=(h|0))do{e=d;d=d+-12|0;g=c[d>>2]|0;b=g;if(g){e=e+-8|0;f=c[e>>2]|0;if((f|0)!=(g|0))c[e>>2]=f+(~((f+-4-b|0)>>>2)<<2);Oe(g)}}while((d|0)!=(h|0));if(!i)return;Oe(i);return}function Zb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=a+4|0;d=c[a>>2]|0;f=(((c[k>>2]|0)-d|0)/12|0)+1|0;if(f>>>0>357913941)Ke(a);l=a+8|0;e=((c[l>>2]|0)-d|0)/12|0;if(e>>>0<178956970){e=e<<1;e=e>>>0>>0?f:e;d=((c[k>>2]|0)-d|0)/12|0;if(!e){g=0;h=0}else i=6}else{e=357913941;d=((c[k>>2]|0)-d|0)/12|0;i=6}if((i|0)==6){g=e;h=Me(e*12|0)|0}f=h+(d*12|0)|0;e=f;j=h+(g*12|0)|0;c[h+(d*12|0)+8>>2]=0;c[f>>2]=c[b>>2];i=b+4|0;c[h+(d*12|0)+4>>2]=c[i>>2];g=b+8|0;c[h+(d*12|0)+8>>2]=c[g>>2];c[g>>2]=0;c[i>>2]=0;c[b>>2]=0;i=h+((d+1|0)*12|0)|0;h=c[a>>2]|0;d=c[k>>2]|0;if((d|0)==(h|0)){f=a;g=k;b=h}else{do{b=f+-12|0;g=d;d=d+-12|0;c[b>>2]=0;m=f+-8|0;c[m>>2]=0;c[f+-4>>2]=0;c[b>>2]=c[d>>2];b=g+-8|0;c[m>>2]=c[b>>2];g=g+-4|0;c[f+-4>>2]=c[g>>2];c[g>>2]=0;c[b>>2]=0;c[d>>2]=0;f=e+-12|0;e=f}while((d|0)!=(h|0));d=e;f=a;g=k;e=d;b=c[a>>2]|0;d=c[k>>2]|0}c[f>>2]=e;c[g>>2]=i;c[l>>2]=j;i=b;if((d|0)!=(i|0))do{e=d;d=d+-12|0;g=c[d>>2]|0;h=g;if(g){e=e+-8|0;f=c[e>>2]|0;if((f|0)!=(g|0))c[e>>2]=f+(~((f+-4-h|0)>>>2)<<2);Oe(g)}}while((d|0)!=(i|0));if(!b)return;Oe(b);return}function _b(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+32|0;A=z;u=z+8|0;c[a>>2]=0;v=a+4|0;c[v>>2]=0;c[a+8>>2]=0;m=e+4|0;Tb(a,((c[m>>2]|0)-(c[e>>2]|0)|0)/12|0);e=c[e>>2]|0;m=c[m>>2]|0;if((e|0)==(m|0)){i=z;return}n=u+4|0;o=u+8|0;p=(b<<2)+95|0;l=p&-64;l=(p&1984|0)==0?l+64|0:l;p=_(l,d)|0;q=u+12|0;r=u+16|0;s=a+8|0;t=u+12|0;k=e;a:while(1){c[u>>2]=b;c[n>>2]=d;c[o>>2]=l;e=ee(p)|0;c[q>>2]=e;c[r>>2]=10;f=c[v>>2]|0;if(f>>>0>=(c[s>>2]|0)>>>0){ic(a,u);e=c[t>>2]|0;c[t>>2]=0;if(e)gb[c[r>>2]&15](e)}else{c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=l;c[f+12>>2]=e;c[f+16>>2]=10;c[v>>2]=f+20;c[t>>2]=0}e=c[v>>2]|0;g=c[e+-20>>2]|0;h=e+-16|0;j=c[h>>2]|0;f=c[k>>2]|0;if(((c[k+4>>2]|0)-f>>2|0)!=(_(j,g)|0)){g=10;break}if((j|0)!=0?(w=e+-8|0,x=e+-12|0,y=g<<2,tg(c[w>>2]|0,f|0,y|0)|0,j>>>0>1):0){f=1;do{e=c[h>>2]|0;if(e>>>0<=f>>>0){g=11;break a}e=(c[k>>2]|0)+((_(f,g)|0)<<2)|0;tg((c[w>>2]|0)+(_(c[x>>2]|0,f)|0)|0,e|0,y|0)|0;f=f+1|0}while(f>>>0>>0)}k=k+12|0;if((k|0)==(m|0)){g=15;break}}if((g|0)==10)za(38542,38571,361,38653);else if((g|0)==11){c[A>>2]=f;c[A+4>>2]=e;Hf(38668,A)|0;wa()}else if((g|0)==15){i=z;return}}function $b(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;c[a>>2]=0;g=a+4|0;c[g>>2]=0;c[a+8>>2]=0;f=b+4|0;d=(c[f>>2]|0)-(c[b>>2]|0)|0;e=d>>2;if(!e)return;if(e>>>0>1073741823)Ke(a);d=Me(d)|0;c[g>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(e<<2);e=c[b>>2]|0;b=c[f>>2]|0;if((e|0)==(b|0))return;a=d+(((b+-4-e|0)>>>2)+1<<2)|0;while(1){c[d>>2]=c[e>>2];e=e+4|0;if((e|0)==(b|0))break;else d=d+4|0}c[g>>2]=a;return}function ac(a){a=a|0;return}function bc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=a+8|0;f=c[k>>2]|0;l=a+4|0;d=c[l>>2]|0;e=d;if(f-e>>2>>>0>=b>>>0){pg(d|0,0,b<<2|0)|0;c[l>>2]=d+(b<<2);return}i=c[a>>2]|0;j=i;e=(e-j>>2)+b|0;if(e>>>0>1073741823)Ke(a);g=i;d=f-g|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?e:d;f=(c[l>>2]|0)-g|0;e=f>>2;if(!d){h=0;g=0;d=f}else m=8}else{f=(c[l>>2]|0)-g|0;d=1073741823;e=f>>2;m=8}if((m|0)==8){h=d;g=Me(d<<2)|0;d=f}pg(g+(e<<2)|0,0,b<<2|0)|0;tg(g|0,i|0,d|0)|0;c[a>>2]=g;c[l>>2]=g+(e+b<<2);c[k>>2]=g+(h<<2);if(!j)return;Oe(j);return}function cc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;g=a+4|0;c[g>>2]=0;c[a+8>>2]=0;f=b+4|0;i=c[f>>2]|0;h=c[b>>2]|0;d=i-h|0;e=(d|0)/12|0;if((i|0)==(h|0))return;if(e>>>0>357913941)Ke(a);d=Me(d)|0;c[g>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(e*12|0);e=c[b>>2]|0;b=c[f>>2]|0;if((e|0)==(b|0))return;do{$b(d,e);d=(c[g>>2]|0)+12|0;c[g>>2]=d;e=e+12|0}while((e|0)!=(b|0));return}function dc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c[a>>2]=26480;b=c[a+80>>2]|0;d=b;if(b){e=a+84|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-4-d|0)>>>2)<<2);Oe(b)}k=a+40|0;b=c[k>>2]|0;if(b){l=a+44|0;d=c[l>>2]|0;if((d|0)!=(b|0)){do{i=d+-12|0;c[l>>2]=i;j=c[i>>2]|0;if(!j)d=i;else{h=d+-8|0;d=c[h>>2]|0;if((d|0)==(j|0))d=j;else{do{e=d+-12|0;c[h>>2]=e;f=c[e>>2]|0;g=f;if(!f)d=e;else{d=d+-8|0;e=c[d>>2]|0;if((e|0)!=(f|0))c[d>>2]=e+(~((e+-4-g|0)>>>2)<<2);Oe(f);d=c[h>>2]|0}}while((d|0)!=(j|0));d=c[i>>2]|0}Oe(d);d=c[l>>2]|0}}while((d|0)!=(b|0));b=c[k>>2]|0}Oe(b)}h=a+28|0;b=c[h>>2]|0;if(b){i=a+32|0;d=c[i>>2]|0;if((d|0)!=(b|0)){do{e=d+-12|0;c[i>>2]=e;f=c[e>>2]|0;g=f;if(!f)d=e;else{d=d+-8|0;e=c[d>>2]|0;if((e|0)!=(f|0))c[d>>2]=e+(~((e+-4-g|0)>>>2)<<2);Oe(f);d=c[i>>2]|0}}while((d|0)!=(b|0));b=c[h>>2]|0}Oe(b)}g=a+16|0;b=c[g>>2]|0;if(!b)return;f=a+20|0;d=c[f>>2]|0;if((d|0)!=(b|0)){do{c[f>>2]=d+-20;a=d+-8|0;e=c[a>>2]|0;c[a>>2]=0;if(e)gb[c[d+-4>>2]&15](e);d=c[f>>2]|0}while((d|0)!=(b|0));b=c[g>>2]|0}Oe(b);return}function ec(a){a=a|0;dc(a);Oe(a);return}function fc(a,b){a=a|0;b=+b;return +g[a+76>>2]<=+g[a+12>>2]*b|0}function gc(a,b){a=a|0;b=b|0;$b(a,b+80|0);return}function hc(a){a=a|0;return +(+g[a+76>>2])}function ic(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=a+4|0;d=c[a>>2]|0;f=(((c[k>>2]|0)-d|0)/20|0)+1|0;if(f>>>0>214748364)Ke(a);l=a+8|0;e=((c[l>>2]|0)-d|0)/20|0;if(e>>>0<107374182){e=e<<1;e=e>>>0>>0?f:e;d=((c[k>>2]|0)-d|0)/20|0;if(!e){g=0;h=0}else i=6}else{e=214748364;d=((c[k>>2]|0)-d|0)/20|0;i=6}if((i|0)==6){g=e;h=Me(e*20|0)|0}f=h+(d*20|0)|0;e=f;j=h+(g*20|0)|0;c[f>>2]=c[b>>2];c[h+(d*20|0)+4>>2]=c[b+4>>2];c[h+(d*20|0)+8>>2]=c[b+8>>2];i=b+12|0;g=c[i>>2]|0;c[i>>2]=0;i=c[b+16>>2]|0;c[h+(d*20|0)+12>>2]=g;c[h+(d*20|0)+16>>2]=i;i=h+((d+1|0)*20|0)|0;h=c[a>>2]|0;d=c[k>>2]|0;if((d|0)==(h|0)){f=a;g=k}else{do{b=d;d=d+-20|0;c[f+-20>>2]=c[d>>2];c[f+-16>>2]=c[b+-16>>2];c[f+-12>>2]=c[b+-12>>2];m=b+-8|0;g=c[m>>2]|0;c[m>>2]=0;b=c[b+-4>>2]|0;c[f+-8>>2]=g;c[f+-4>>2]=b;f=e+-20|0;e=f}while((d|0)!=(h|0));d=e;f=a;g=k;e=d;h=c[a>>2]|0;d=c[k>>2]|0}c[f>>2]=e;c[g>>2]=i;c[l>>2]=j;f=h;if((d|0)!=(f|0))do{m=d+-8|0;e=c[m>>2]|0;c[m>>2]=0;if(e)gb[c[d+-4>>2]&15](e);d=d+-20|0}while((d|0)!=(f|0));if(!h)return;Oe(h);return}function jc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;g=c[m>>2]|0;n=a+4|0;f=c[n>>2]|0;d=f;if(((g-d|0)/12|0)>>>0>=b>>>0){d=b;e=f;while(1){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=d+-1|0;if(!d)break;else e=e+12|0}c[n>>2]=f+(b*12|0);return}l=c[a>>2]|0;e=((d-l|0)/12|0)+b|0;if(e>>>0>357913941)Ke(a);k=l;d=(g-k|0)/12|0;if(d>>>0<178956970){d=d<<1;d=d>>>0>>0?e:d;f=c[n>>2]|0;e=(f-k|0)/12|0;if(!d){g=0;j=0;i=e}else h=9}else{f=c[n>>2]|0;d=357913941;e=(f-k|0)/12|0;h=9}if((h|0)==9){g=d;j=Me(d*12|0)|0;i=e}e=j+(i*12|0)|0;h=j+(g*12|0)|0;d=b;g=e;while(1){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;d=d+-1|0;if(!d)break;else g=g+12|0}d=e;g=j+((i+b|0)*12|0)|0;if((f|0)==(l|0))e=a;else{do{k=e+-12|0;b=f;f=f+-12|0;c[k>>2]=0;j=e+-8|0;c[j>>2]=0;c[e+-4>>2]=0;c[k>>2]=c[f>>2];k=b+-8|0;c[j>>2]=c[k>>2];b=b+-4|0;c[e+-4>>2]=c[b>>2];c[b>>2]=0;c[k>>2]=0;c[f>>2]=0;e=d+-12|0;d=e}while((f|0)!=(l|0));e=a;k=c[a>>2]|0}c[e>>2]=d;d=c[n>>2]|0;c[n>>2]=g;c[m>>2]=h;b=k;if((d|0)!=(b|0))do{f=d;d=d+-12|0;e=c[d>>2]|0;if(e){j=f+-8|0;f=c[j>>2]|0;if((f|0)!=(e|0)){do{g=f+-12|0;c[j>>2]=g;h=c[g>>2]|0;i=h;if(!h)f=g;else{f=f+-8|0;g=c[f>>2]|0;if((g|0)!=(h|0))c[f>>2]=g+(~((g+-4-i|0)>>>2)<<2);Oe(h);f=c[j>>2]|0}}while((f|0)!=(e|0));e=c[d>>2]|0}Oe(e)}}while((d|0)!=(b|0));if(!k)return;Oe(k);return}function kc(a){a=a|0;var b=0.0,c=0,d=0.0,e=0.0,f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0;n=i;i=i+512|0;m=n;b=+h[a>>3];d=+h[a+64>>3];e=+h[a+128>>3];f=+h[a+192>>3];g=+h[a+256>>3];j=+h[a+320>>3];k=+h[a+384>>3];l=+h[a+448>>3];c=0;do{o=c<<3;h[m+(o<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+8>>3];d=+h[a+72>>3];e=+h[a+136>>3];f=+h[a+200>>3];g=+h[a+264>>3];j=+h[a+328>>3];k=+h[a+392>>3];l=+h[a+456>>3];c=0;do{o=c<<3;h[m+((o|1)<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+16>>3];d=+h[a+80>>3];e=+h[a+144>>3];f=+h[a+208>>3];g=+h[a+272>>3];j=+h[a+336>>3];k=+h[a+400>>3];l=+h[a+464>>3];c=0;do{o=c<<3;h[m+((o|2)<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+24>>3];d=+h[a+88>>3];e=+h[a+152>>3];f=+h[a+216>>3];g=+h[a+280>>3];j=+h[a+344>>3];k=+h[a+408>>3];l=+h[a+472>>3];c=0;do{o=c<<3;h[m+((o|3)<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+32>>3];d=+h[a+96>>3];e=+h[a+160>>3];f=+h[a+224>>3];g=+h[a+288>>3];j=+h[a+352>>3];k=+h[a+416>>3];l=+h[a+480>>3];c=0;do{o=c<<3;h[m+((o|4)<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+40>>3];d=+h[a+104>>3];e=+h[a+168>>3];f=+h[a+232>>3];g=+h[a+296>>3];j=+h[a+360>>3];k=+h[a+424>>3];l=+h[a+488>>3];c=0;do{o=c<<3;h[m+((o|5)<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+48>>3];d=+h[a+112>>3];e=+h[a+176>>3];f=+h[a+240>>3];g=+h[a+304>>3];j=+h[a+368>>3];k=+h[a+432>>3];l=+h[a+496>>3];c=0;do{o=c<<3;h[m+((o|6)<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+56>>3];d=+h[a+120>>3];e=+h[a+184>>3];f=+h[a+248>>3];g=+h[a+312>>3];j=+h[a+376>>3];k=+h[a+440>>3];l=+h[a+504>>3];c=0;do{o=c<<3;h[m+((o|7)<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m>>3];d=+h[m+8>>3];e=+h[m+16>>3];f=+h[m+24>>3];g=+h[m+32>>3];j=+h[m+40>>3];k=+h[m+48>>3];l=+h[m+56>>3];c=0;do{o=c<<3;h[a+(c<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+64>>3];d=+h[m+72>>3];e=+h[m+80>>3];f=+h[m+88>>3];g=+h[m+96>>3];j=+h[m+104>>3];k=+h[m+112>>3];l=+h[m+120>>3];c=0;do{o=c<<3;h[a+(c+8<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+128>>3];d=+h[m+136>>3];e=+h[m+144>>3];f=+h[m+152>>3];g=+h[m+160>>3];j=+h[m+168>>3];k=+h[m+176>>3];l=+h[m+184>>3];c=0;do{o=c<<3;h[a+(c+16<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+192>>3];d=+h[m+200>>3];e=+h[m+208>>3];f=+h[m+216>>3];g=+h[m+224>>3];j=+h[m+232>>3];k=+h[m+240>>3];l=+h[m+248>>3];c=0;do{o=c<<3;h[a+(c+24<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+256>>3];d=+h[m+264>>3];e=+h[m+272>>3];f=+h[m+280>>3];g=+h[m+288>>3];j=+h[m+296>>3];k=+h[m+304>>3];l=+h[m+312>>3];c=0;do{o=c<<3;h[a+(c+32<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+320>>3];d=+h[m+328>>3];e=+h[m+336>>3];f=+h[m+344>>3];g=+h[m+352>>3];j=+h[m+360>>3];k=+h[m+368>>3];l=+h[m+376>>3];c=0;do{o=c<<3;h[a+(c+40<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+384>>3];d=+h[m+392>>3];e=+h[m+400>>3];f=+h[m+408>>3];g=+h[m+416>>3];j=+h[m+424>>3];k=+h[m+432>>3];l=+h[m+440>>3];c=0;do{o=c<<3;h[a+(c+48<<3)>>3]=+h[32+(o<<3)>>3]*b+0.0+ +h[32+((o|1)<<3)>>3]*d+ +h[32+((o|2)<<3)>>3]*e+ +h[32+((o|3)<<3)>>3]*f+ +h[32+((o|4)<<3)>>3]*g+ +h[32+((o|5)<<3)>>3]*j+ +h[32+((o|6)<<3)>>3]*k+ +h[32+((o|7)<<3)>>3]*l;c=c+1|0}while((c|0)!=8);d=+h[m+448>>3];e=+h[m+456>>3];f=+h[m+464>>3];g=+h[m+472>>3];j=+h[m+480>>3];k=+h[m+488>>3];l=+h[m+496>>3];b=+h[m+504>>3];c=0;do{o=c<<3;h[a+(c+56<<3)>>3]=+h[32+(o<<3)>>3]*d+0.0+ +h[32+((o|1)<<3)>>3]*e+ +h[32+((o|2)<<3)>>3]*f+ +h[32+((o|3)<<3)>>3]*g+ +h[32+((o|4)<<3)>>3]*j+ +h[32+((o|5)<<3)>>3]*k+ +h[32+((o|6)<<3)>>3]*l+ +h[32+((o|7)<<3)>>3]*b;c=c+1|0}while((c|0)!=8);i=n;return}function lc(a){a=a|0;var b=0.0,c=0,d=0.0,e=0.0,f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0;n=i;i=i+512|0;m=n;b=+h[a>>3];d=+h[a+64>>3];e=+h[a+128>>3];f=+h[a+192>>3];g=+h[a+256>>3];j=+h[a+320>>3];k=+h[a+384>>3];l=+h[a+448>>3];c=0;do{h[m+(c<<3<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+8>>3];d=+h[a+72>>3];e=+h[a+136>>3];f=+h[a+200>>3];g=+h[a+264>>3];j=+h[a+328>>3];k=+h[a+392>>3];l=+h[a+456>>3];c=0;do{h[m+((c<<3|1)<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+16>>3];d=+h[a+80>>3];e=+h[a+144>>3];f=+h[a+208>>3];g=+h[a+272>>3];j=+h[a+336>>3];k=+h[a+400>>3];l=+h[a+464>>3];c=0;do{h[m+((c<<3|2)<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+24>>3];d=+h[a+88>>3];e=+h[a+152>>3];f=+h[a+216>>3];g=+h[a+280>>3];j=+h[a+344>>3];k=+h[a+408>>3];l=+h[a+472>>3];c=0;do{h[m+((c<<3|3)<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+32>>3];d=+h[a+96>>3];e=+h[a+160>>3];f=+h[a+224>>3];g=+h[a+288>>3];j=+h[a+352>>3];k=+h[a+416>>3];l=+h[a+480>>3];c=0;do{h[m+((c<<3|4)<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+40>>3];d=+h[a+104>>3];e=+h[a+168>>3];f=+h[a+232>>3];g=+h[a+296>>3];j=+h[a+360>>3];k=+h[a+424>>3];l=+h[a+488>>3];c=0;do{h[m+((c<<3|5)<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+48>>3];d=+h[a+112>>3];e=+h[a+176>>3];f=+h[a+240>>3];g=+h[a+304>>3];j=+h[a+368>>3];k=+h[a+432>>3];l=+h[a+496>>3];c=0;do{h[m+((c<<3|6)<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[a+56>>3];d=+h[a+120>>3];e=+h[a+184>>3];f=+h[a+248>>3];g=+h[a+312>>3];j=+h[a+376>>3];k=+h[a+440>>3];l=+h[a+504>>3];c=0;do{h[m+((c<<3|7)<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m>>3];d=+h[m+8>>3];e=+h[m+16>>3];f=+h[m+24>>3];g=+h[m+32>>3];j=+h[m+40>>3];k=+h[m+48>>3];l=+h[m+56>>3];c=0;do{h[a+(c<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+64>>3];d=+h[m+72>>3];e=+h[m+80>>3];f=+h[m+88>>3];g=+h[m+96>>3];j=+h[m+104>>3];k=+h[m+112>>3];l=+h[m+120>>3];c=0;do{o=c+8|0;h[a+(o<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(o<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+128>>3];d=+h[m+136>>3];e=+h[m+144>>3];f=+h[m+152>>3];g=+h[m+160>>3];j=+h[m+168>>3];k=+h[m+176>>3];l=+h[m+184>>3];c=0;do{o=c+16|0;h[a+(o<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(o<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+192>>3];d=+h[m+200>>3];e=+h[m+208>>3];f=+h[m+216>>3];g=+h[m+224>>3];j=+h[m+232>>3];k=+h[m+240>>3];l=+h[m+248>>3];c=0;do{o=c+24|0;h[a+(o<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(o<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+256>>3];d=+h[m+264>>3];e=+h[m+272>>3];f=+h[m+280>>3];g=+h[m+288>>3];j=+h[m+296>>3];k=+h[m+304>>3];l=+h[m+312>>3];c=0;do{o=c+32|0;h[a+(o<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(o<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+320>>3];d=+h[m+328>>3];e=+h[m+336>>3];f=+h[m+344>>3];g=+h[m+352>>3];j=+h[m+360>>3];k=+h[m+368>>3];l=+h[m+376>>3];c=0;do{o=c+40|0;h[a+(o<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(o<<3)>>3]*j+ +h[32+(c+48<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);b=+h[m+384>>3];d=+h[m+392>>3];e=+h[m+400>>3];f=+h[m+408>>3];g=+h[m+416>>3];j=+h[m+424>>3];k=+h[m+432>>3];l=+h[m+440>>3];c=0;do{o=c+48|0;h[a+(o<<3)>>3]=+h[32+(c<<3)>>3]*b+0.0+ +h[32+(c+8<<3)>>3]*d+ +h[32+(c+16<<3)>>3]*e+ +h[32+(c+24<<3)>>3]*f+ +h[32+(c+32<<3)>>3]*g+ +h[32+(c+40<<3)>>3]*j+ +h[32+(o<<3)>>3]*k+ +h[32+(c+56<<3)>>3]*l;c=c+1|0}while((c|0)!=8);d=+h[m+448>>3];e=+h[m+456>>3];f=+h[m+464>>3];g=+h[m+472>>3];j=+h[m+480>>3];k=+h[m+488>>3];l=+h[m+496>>3];b=+h[m+504>>3];c=0;do{o=c+56|0;h[a+(o<<3)>>3]=+h[32+(c<<3)>>3]*d+0.0+ +h[32+(c+8<<3)>>3]*e+ +h[32+(c+16<<3)>>3]*f+ +h[32+(c+24<<3)>>3]*g+ +h[32+(c+32<<3)>>3]*j+ +h[32+(c+40<<3)>>3]*k+ +h[32+(c+48<<3)>>3]*l+ +h[32+(o<<3)>>3]*b;c=c+1|0}while((c|0)!=8);i=n;return}function mc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=c[b+12>>2]|0;if(e){f=a[d>>0]|0;g=(f&1)==0;kg(e,g?d+1|0:c[d+8>>2]|0,g?(f&255)>>>1:c[d+4>>2]|0)|0}b=c[b+16>>2]|0;if(!b)return;if(!(a[d>>0]&1))e=d+1|0;else e=c[d+8>>2]|0;Ef(e,b)|0;return}function nc(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=i;i=i+80|0;q=t;r=(f|0)<17;s=1;a:while(1){j=e;l=0;b:while(1){do{if(!j)break b;j=j+-1|0;k=c[d+(j<<2)>>2]|0}while((k|0)==0);o=qg(j|0,0,48)|0;p=g+(l<<3)|0;c[p>>2]=o|(k>>>0>>0?s:k);c[p+4>>2]=C|65535;l=l+1|0}if((l|0)==1){j=8;break}j=g+(l<<3)|0;c[q>>2]=1;pc(g,j,q);c[j>>2]=-1;c[j+4>>2]=-1;j=l+1|0;k=g+(j<<3)|0;c[k>>2]=-1;c[k+4>>2]=-1;k=l+-1|0;if(k){o=l<<1;p=0;while(1){v=(c[g+(p<<3)>>2]|0)>>>0>(c[g+(j<<3)>>2]|0)>>>0;n=v&1;m=(n^1)+p|0;n=n+j|0;v=v?j:p;u=(c[g+(m<<3)>>2]|0)>>>0>(c[g+(n<<3)>>2]|0)>>>0;j=u&1;u=u?n:m;p=o-k|0;c[g+(p<<3)>>2]=(c[g+(u<<3)>>2]|0)+(c[g+(v<<3)>>2]|0);b[g+(p<<3)+4>>1]=v;b[g+(p<<3)+6>>1]=u;p=g+(p+1<<3)|0;c[p>>2]=-1;c[p+4>>2]=-1;k=k+-1|0;if(!k)break;else{p=(j^1)+m|0;j=j+n|0}}}if(!r){j=13;break}c[q>>2]=-1;k=0;m=(l<<1)+-1|0;while(1){j=b[g+(m<<3)+4>>1]|0;if(j<<16>>16>-1){l=k+1|0;if((k|0)>=(f|0))break;c[q+(l<<2)>>2]=b[g+(m<<3)+6>>1];k=l;m=j<<16>>16;continue}a[h+(b[g+(m<<3)+6>>1]|0)>>0]=k;if((k|0)<=-1){j=23;break a}while(1){j=q+(k<<2)|0;l=c[j>>2]|0;if((l|0)!=-1)break;if((k|0)>0)k=k+-1|0;else{j=23;break a}}if((k|0)<0){j=23;break a}c[j>>2]=-1;m=l}s=s<<1}if((j|0)==8){a[h+(b[g+6>>1]|0)>>0]=1;i=t;return}else if((j|0)==13)za(34694,34710,30,34768);else if((j|0)==23){i=t;return}}function oc(a,d){a=a|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;f=c[d>>2]|0;if((e|0)==(f|0)){d=(b[a+6>>1]|0)>(b[d+6>>1]|0);return d|0}else{d=e>>>0>>0;return d|0}return 0}function pc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:while(1){l=b;m=b+-8|0;b:while(1){k=a;e=l-k|0;f=e>>3;switch(f|0){case 2:{e=m;b=m;n=4;break a}case 3:{i=m;h=m;n=6;break a}case 4:{b=m;n=14;break a}case 5:{h=m;g=m;n=15;break a}case 1:case 0:{n=69;break a}default:{}}if((e|0)<248){n=21;break a}g=(f|0)/2|0;j=a+(g<<3)|0;do if((e|0)>7992){e=(f|0)/4|0;h=a+(e<<3)|0;e=a+(e+g<<3)|0;f=qc(a,h,j,e,d)|0;if(nb[c[d>>2]&1](m,e)|0){i=e;o=c[i>>2]|0;i=c[i+4>>2]|0;q=m;p=c[q+4>>2]|0;g=e;c[g>>2]=c[q>>2];c[g+4>>2]=p;g=m;c[g>>2]=o;c[g+4>>2]=i;g=f+1|0;if(nb[c[d>>2]&1](e,j)|0){q=j;p=c[q>>2]|0;q=c[q+4>>2]|0;g=e;i=c[g+4>>2]|0;o=j;c[o>>2]=c[g>>2];c[o+4>>2]=i;c[e>>2]=p;c[e+4>>2]=q;e=f+2|0;if(nb[c[d>>2]&1](j,h)|0){p=h;o=c[p>>2]|0;p=c[p+4>>2]|0;g=j;i=c[g+4>>2]|0;q=h;c[q>>2]=c[g>>2];c[q+4>>2]=i;q=j;c[q>>2]=o;c[q+4>>2]=p;if(nb[c[d>>2]&1](h,a)|0){p=a;o=c[p>>2]|0;p=c[p+4>>2]|0;g=h;i=c[g+4>>2]|0;q=a;c[q>>2]=c[g>>2];c[q+4>>2]=i;q=h;c[q>>2]=o;c[q+4>>2]=p;f=f+4|0}else f=f+3|0}else f=e}else f=g}}else{q=nb[c[d>>2]&1](j,a)|0;e=nb[c[d>>2]&1](m,j)|0;if(!q){if(!e){f=0;break}p=j;o=c[p>>2]|0;p=c[p+4>>2]|0;h=m;i=c[h+4>>2]|0;q=j;c[q>>2]=c[h>>2];c[q+4>>2]=i;q=m;c[q>>2]=o;c[q+4>>2]=p;if(!(nb[c[d>>2]&1](j,a)|0)){f=1;break}q=a;p=c[q>>2]|0;q=c[q+4>>2]|0;i=j;o=c[i+4>>2]|0;f=a;c[f>>2]=c[i>>2];c[f+4>>2]=o;f=j;c[f>>2]=p;c[f+4>>2]=q;f=2;break}g=a;f=c[g>>2]|0;g=c[g+4>>2]|0;if(e){o=m;p=c[o+4>>2]|0;q=a;c[q>>2]=c[o>>2];c[q+4>>2]=p;q=m;c[q>>2]=f;c[q+4>>2]=g;f=1;break}o=j;p=c[o+4>>2]|0;q=a;c[q>>2]=c[o>>2];c[q+4>>2]=p;q=j;c[q>>2]=f;c[q+4>>2]=g;if(nb[c[d>>2]&1](m,j)|0){q=j;p=c[q>>2]|0;q=c[q+4>>2]|0;i=m;o=c[i+4>>2]|0;f=j;c[f>>2]=c[i>>2];c[f+4>>2]=o;f=m;c[f>>2]=p;c[f+4>>2]=q;f=2}else f=1}while(0);do if(nb[c[d>>2]&1](a,j)|0)g=m;else{e=m;while(1){e=e+-8|0;if((a|0)==(e|0))break;if(nb[c[d>>2]&1](e,j)|0){n=51;break}}if((n|0)==51){n=0;q=a;p=c[q>>2]|0;q=c[q+4>>2]|0;i=e;o=c[i+4>>2]|0;g=a;c[g>>2]=c[i>>2];c[g+4>>2]=o;g=e;c[g>>2]=p;c[g+4>>2]=q;g=e;f=f+1|0;break}e=a+8|0;if(!(nb[c[d>>2]&1](a,m)|0)){if((e|0)==(m|0)){n=69;break a}else f=a;while(1){if(nb[c[d>>2]&1](a,e)|0)break;f=e+8|0;if((f|0)==(m|0)){n=69;break a}else{q=e;e=f;f=q}}q=e;p=c[q>>2]|0;q=c[q+4>>2]|0;k=m;o=c[k+4>>2]|0;c[e>>2]=c[k>>2];c[e+4>>2]=o;e=m;c[e>>2]=p;c[e+4>>2]=q;e=f+16|0}if((e|0)==(m|0)){n=69;break a}else f=m;while(1){g=e;while(1){e=g+8|0;if(nb[c[d>>2]&1](a,g)|0)break;else g=e}do f=f+-8|0;while(nb[c[d>>2]&1](a,f)|0);if(g>>>0>=f>>>0){a=g;continue b}p=g;o=c[p>>2]|0;p=c[p+4>>2]|0;j=f;k=c[j+4>>2]|0;q=g;c[q>>2]=c[j>>2];c[q+4>>2]=k;q=f;c[q>>2]=o;c[q+4>>2]=p}}while(0);e=a+8|0;c:do if(e>>>0>>0){i=g;while(1){g=e;while(1){e=g+8|0;if(nb[c[d>>2]&1](g,j)|0)g=e;else{h=g;break}}g=i;do g=g+-8|0;while(!(nb[c[d>>2]&1](g,j)|0));if(h>>>0>g>>>0){e=h;g=j;break c}q=h;p=c[q>>2]|0;q=c[q+4>>2]|0;r=g;o=c[r+4>>2]|0;i=h;c[i>>2]=c[r>>2];c[i+4>>2]=o;i=g;c[i>>2]=p;c[i+4>>2]=q;i=g;j=(j|0)==(h|0)?g:j;f=f+1|0}}else g=j;while(0);if((e|0)!=(g|0)?nb[c[d>>2]&1](g,e)|0:0){q=e;p=c[q>>2]|0;q=c[q+4>>2]|0;j=g;o=c[j+4>>2]|0;r=e;c[r>>2]=c[j>>2];c[r+4>>2]=o;r=g;c[r>>2]=p;c[r+4>>2]=q;f=f+1|0}if(!f){f=sc(a,e,d)|0;g=e+8|0;if(sc(g,b,d)|0){n=64;break}if(f){a=g;continue}}r=e;if((r-k|0)>=(l-r|0)){n=68;break}pc(a,e,d);a=e+8|0}if((n|0)==64){n=0;if(f){n=69;break}else{b=e;continue}}else if((n|0)==68){n=0;pc(e+8|0,b,d);b=e;continue}}if((n|0)==4){if(!(nb[c[d>>2]&1](e,a)|0))return;q=a;p=c[q>>2]|0;q=c[q+4>>2]|0;d=b;o=c[d+4>>2]|0;r=a;c[r>>2]=c[d>>2];c[r+4>>2]=o;r=b;c[r>>2]=p;c[r+4>>2]=q;return}else if((n|0)==6){b=a+8|0;r=nb[c[d>>2]&1](b,a)|0;e=nb[c[d>>2]&1](i,b)|0;if(!r){if(!e)return;q=b;p=c[q>>2]|0;q=c[q+4>>2]|0;n=h;o=c[n+4>>2]|0;r=b;c[r>>2]=c[n>>2];c[r+4>>2]=o;r=h;c[r>>2]=p;c[r+4>>2]=q;if(!(nb[c[d>>2]&1](b,a)|0))return;q=a;p=c[q>>2]|0;q=c[q+4>>2]|0;d=b;o=c[d+4>>2]|0;r=a;c[r>>2]=c[d>>2];c[r+4>>2]=o;r=b;c[r>>2]=p;c[r+4>>2]=q;return}g=a;f=c[g>>2]|0;g=c[g+4>>2]|0;if(e){p=h;q=c[p+4>>2]|0;r=a;c[r>>2]=c[p>>2];c[r+4>>2]=q;r=h;c[r>>2]=f;c[r+4>>2]=g;return}p=b;q=c[p+4>>2]|0;r=a;c[r>>2]=c[p>>2];c[r+4>>2]=q;r=b;c[r>>2]=f;c[r+4>>2]=g;if(!(nb[c[d>>2]&1](i,b)|0))return;q=b;p=c[q>>2]|0;q=c[q+4>>2]|0;d=h;o=c[d+4>>2]|0;r=b;c[r>>2]=c[d>>2];c[r+4>>2]=o;r=h;c[r>>2]=p;c[r+4>>2]=q;return}else if((n|0)==14){qc(a,a+8|0,a+16|0,b,d)|0;return}else if((n|0)==15){b=a+8|0;e=a+16|0;f=a+24|0;qc(a,b,e,f,d)|0;if(!(nb[c[d>>2]&1](h,f)|0))return;q=f;p=c[q>>2]|0;q=c[q+4>>2]|0;n=g;o=c[n+4>>2]|0;r=f;c[r>>2]=c[n>>2];c[r+4>>2]=o;r=g;c[r>>2]=p;c[r+4>>2]=q;if(!(nb[c[d>>2]&1](f,e)|0))return;q=e;p=c[q>>2]|0;q=c[q+4>>2]|0;n=f;o=c[n+4>>2]|0;r=e;c[r>>2]=c[n>>2];c[r+4>>2]=o;r=f;c[r>>2]=p;c[r+4>>2]=q;if(!(nb[c[d>>2]&1](e,b)|0))return;q=b;p=c[q>>2]|0;q=c[q+4>>2]|0;n=e;o=c[n+4>>2]|0;r=b;c[r>>2]=c[n>>2];c[r+4>>2]=o;r=e;c[r>>2]=p;c[r+4>>2]=q;if(!(nb[c[d>>2]&1](b,a)|0))return;q=a;p=c[q>>2]|0;q=c[q+4>>2]|0;d=b;o=c[d+4>>2]|0;r=a;c[r>>2]=c[d>>2];c[r+4>>2]=o;r=b;c[r>>2]=p;c[r+4>>2]=q;return}else if((n|0)==21){rc(a,b,d);return}else if((n|0)==69)return}function qc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;i=nb[c[f>>2]&1](b,a)|0;g=nb[c[f>>2]&1](d,b)|0;do if(i){i=a;h=c[i>>2]|0;i=c[i+4>>2]|0;if(g){k=d;j=c[k+4>>2]|0;g=a;c[g>>2]=c[k>>2];c[g+4>>2]=j;g=d;c[g>>2]=h;c[g+4>>2]=i;g=1;break}g=b;j=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=j;k=b;c[k>>2]=h;c[k+4>>2]=i;if(nb[c[f>>2]&1](d,b)|0){k=b;j=c[k>>2]|0;k=c[k+4>>2]|0;h=d;i=c[h+4>>2]|0;g=b;c[g>>2]=c[h>>2];c[g+4>>2]=i;g=d;c[g>>2]=j;c[g+4>>2]=k;g=2}else g=1}else if(g){j=b;i=c[j>>2]|0;j=c[j+4>>2]|0;g=d;h=c[g+4>>2]|0;k=b;c[k>>2]=c[g>>2];c[k+4>>2]=h;k=d;c[k>>2]=i;c[k+4>>2]=j;if(nb[c[f>>2]&1](b,a)|0){k=a;j=c[k>>2]|0;k=c[k+4>>2]|0;h=b;i=c[h+4>>2]|0;g=a;c[g>>2]=c[h>>2];c[g+4>>2]=i;g=b;c[g>>2]=j;c[g+4>>2]=k;g=2}else g=1}else g=0;while(0);if(!(nb[c[f>>2]&1](e,d)|0)){k=g;return k|0}j=d;i=c[j>>2]|0;j=c[j+4>>2]|0;l=e;h=c[l+4>>2]|0;k=d;c[k>>2]=c[l>>2];c[k+4>>2]=h;k=e;c[k>>2]=i;c[k+4>>2]=j;if(!(nb[c[f>>2]&1](d,b)|0)){l=g+1|0;return l|0}k=b;j=c[k>>2]|0;k=c[k+4>>2]|0;i=d;e=c[i+4>>2]|0;l=b;c[l>>2]=c[i>>2];c[l+4>>2]=e;l=d;c[l>>2]=j;c[l+4>>2]=k;if(!(nb[c[f>>2]&1](b,a)|0)){l=g+2|0;return l|0}k=a;j=c[k>>2]|0;k=c[k+4>>2]|0;d=b;e=c[d+4>>2]|0;l=a;c[l>>2]=c[d>>2];c[l+4>>2]=e;l=b;c[l>>2]=j;c[l+4>>2]=k;l=g+3|0;return l|0}function rc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+16|0;k=l;e=a+16|0;f=a+8|0;j=nb[c[d>>2]&1](f,a)|0;g=nb[c[d>>2]&1](e,f)|0;do if(j){j=a;h=c[j>>2]|0;j=c[j+4>>2]|0;if(g){m=e;f=c[m+4>>2]|0;g=a;c[g>>2]=c[m>>2];c[g+4>>2]=f;g=e;c[g>>2]=h;c[g+4>>2]=j;break}n=f;g=c[n+4>>2]|0;m=a;c[m>>2]=c[n>>2];c[m+4>>2]=g;m=f;c[m>>2]=h;c[m+4>>2]=j;if(nb[c[d>>2]&1](e,f)|0){m=f;j=c[m>>2]|0;m=c[m+4>>2]|0;g=e;h=c[g+4>>2]|0;n=f;c[n>>2]=c[g>>2];c[n+4>>2]=h;n=e;c[n>>2]=j;c[n+4>>2]=m}}else if(g?(m=f,j=c[m>>2]|0,m=c[m+4>>2]|0,g=e,h=c[g+4>>2]|0,n=f,c[n>>2]=c[g>>2],c[n+4>>2]=h,n=e,c[n>>2]=j,c[n+4>>2]=m,nb[c[d>>2]&1](f,a)|0):0){m=a;j=c[m>>2]|0;m=c[m+4>>2]|0;g=f;h=c[g+4>>2]|0;n=a;c[n>>2]=c[g>>2];c[n+4>>2]=h;n=f;c[n>>2]=j;c[n+4>>2]=m}while(0);f=a+24|0;if((f|0)==(b|0)){i=l;return}while(1){if(nb[c[d>>2]&1](f,e)|0){m=f;n=c[m+4>>2]|0;g=k;c[g>>2]=c[m>>2];c[g+4>>2]=n;g=f;while(1){j=e;m=c[j+4>>2]|0;n=g;c[n>>2]=c[j>>2];c[n+4>>2]=m;if((e|0)==(a|0))break;g=e+-8|0;if(nb[c[d>>2]&1](k,g)|0){n=e;e=g;g=n}else break}j=k;m=c[j+4>>2]|0;n=e;c[n>>2]=c[j>>2];c[n+4>>2]=m}e=f+8|0;if((e|0)==(b|0))break;else{n=f;f=e;e=n}}i=l;return}function sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+16|0;k=m;switch(b-a>>3|0){case 2:{e=b+-8|0;if(!(nb[c[d>>2]&1](e,a)|0)){a=1;i=m;return a|0}d=a;b=c[d>>2]|0;d=c[d+4>>2]|0;k=e;l=c[k+4>>2]|0;c[a>>2]=c[k>>2];c[a+4>>2]=l;a=e;c[a>>2]=b;c[a+4>>2]=d;a=1;i=m;return a|0}case 3:{j=a+8|0;e=b+-8|0;b=nb[c[d>>2]&1](j,a)|0;f=nb[c[d>>2]&1](e,j)|0;if(!b){if(!f){a=1;i=m;return a|0}l=j;k=c[l>>2]|0;l=c[l+4>>2]|0;g=e;h=c[g+4>>2]|0;b=j;c[b>>2]=c[g>>2];c[b+4>>2]=h;b=e;c[b>>2]=k;c[b+4>>2]=l;if(!(nb[c[d>>2]&1](j,a)|0)){a=1;i=m;return a|0}d=a;b=c[d>>2]|0;d=c[d+4>>2]|0;k=j;l=c[k+4>>2]|0;c[a>>2]=c[k>>2];c[a+4>>2]=l;a=j;c[a>>2]=b;c[a+4>>2]=d;a=1;i=m;return a|0}h=a;g=c[h>>2]|0;h=c[h+4>>2]|0;if(f){b=e;d=c[b+4>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;a=e;c[a>>2]=g;c[a+4>>2]=h;a=1;i=m;return a|0}l=j;b=c[l+4>>2]|0;c[a>>2]=c[l>>2];c[a+4>>2]=b;a=j;c[a>>2]=g;c[a+4>>2]=h;if(!(nb[c[d>>2]&1](e,j)|0)){a=1;i=m;return a|0}d=j;b=c[d>>2]|0;d=c[d+4>>2]|0;k=e;l=c[k+4>>2]|0;a=j;c[a>>2]=c[k>>2];c[a+4>>2]=l;a=e;c[a>>2]=b;c[a+4>>2]=d;a=1;i=m;return a|0}case 4:{qc(a,a+8|0,a+16|0,b+-8|0,d)|0;a=1;i=m;return a|0}case 5:{f=a+8|0;g=a+16|0;h=a+24|0;e=b+-8|0;qc(a,f,g,h,d)|0;if(!(nb[c[d>>2]&1](e,h)|0)){a=1;i=m;return a|0}l=h;k=c[l>>2]|0;l=c[l+4>>2]|0;n=e;j=c[n+4>>2]|0;b=h;c[b>>2]=c[n>>2];c[b+4>>2]=j;b=e;c[b>>2]=k;c[b+4>>2]=l;if(!(nb[c[d>>2]&1](h,g)|0)){n=1;i=m;return n|0}b=g;l=c[b>>2]|0;b=c[b+4>>2]|0;j=h;k=c[j+4>>2]|0;n=g;c[n>>2]=c[j>>2];c[n+4>>2]=k;n=h;c[n>>2]=l;c[n+4>>2]=b;if(!(nb[c[d>>2]&1](g,f)|0)){n=1;i=m;return n|0}b=f;l=c[b>>2]|0;b=c[b+4>>2]|0;j=g;k=c[j+4>>2]|0;n=f;c[n>>2]=c[j>>2];c[n+4>>2]=k;n=g;c[n>>2]=l;c[n+4>>2]=b;if(!(nb[c[d>>2]&1](f,a)|0)){n=1;i=m;return n|0}d=a;b=c[d>>2]|0;d=c[d+4>>2]|0;k=f;l=c[k+4>>2]|0;n=a;c[n>>2]=c[k>>2];c[n+4>>2]=l;n=f;c[n>>2]=b;c[n+4>>2]=d;n=1;i=m;return n|0}case 1:case 0:{n=1;i=m;return n|0}default:{g=a+16|0;e=a+8|0;n=nb[c[d>>2]&1](e,a)|0;f=nb[c[d>>2]&1](g,e)|0;do if(n){j=a;h=c[j>>2]|0;j=c[j+4>>2]|0;if(f){e=g;f=c[e+4>>2]|0;n=a;c[n>>2]=c[e>>2];c[n+4>>2]=f;n=g;c[n>>2]=h;c[n+4>>2]=j;break}o=e;f=c[o+4>>2]|0;n=a;c[n>>2]=c[o>>2];c[n+4>>2]=f;n=e;c[n>>2]=h;c[n+4>>2]=j;if(nb[c[d>>2]&1](g,e)|0){n=e;j=c[n>>2]|0;n=c[n+4>>2]|0;f=g;h=c[f+4>>2]|0;o=e;c[o>>2]=c[f>>2];c[o+4>>2]=h;o=g;c[o>>2]=j;c[o+4>>2]=n}}else if(f?(n=e,j=c[n>>2]|0,n=c[n+4>>2]|0,f=g,h=c[f+4>>2]|0,o=e,c[o>>2]=c[f>>2],c[o+4>>2]=h,o=g,c[o>>2]=j,c[o+4>>2]=n,nb[c[d>>2]&1](e,a)|0):0){n=a;j=c[n>>2]|0;n=c[n+4>>2]|0;f=e;h=c[f+4>>2]|0;o=a;c[o>>2]=c[f>>2];c[o+4>>2]=h;o=e;c[o>>2]=j;c[o+4>>2]=n}while(0);e=a+24|0;if((e|0)==(b|0)){o=1;i=m;return o|0}else f=0;while(1){if(nb[c[d>>2]&1](e,g)|0){n=e;o=c[n+4>>2]|0;h=k;c[h>>2]=c[n>>2];c[h+4>>2]=o;h=e;while(1){j=g;n=c[j+4>>2]|0;o=h;c[o>>2]=c[j>>2];c[o+4>>2]=n;if((g|0)==(a|0))break;h=g+-8|0;if(nb[c[d>>2]&1](k,h)|0){o=g;g=h;h=o}else break}j=k;n=c[j+4>>2]|0;o=g;c[o>>2]=c[j>>2];c[o+4>>2]=n;f=f+1|0;if((f|0)==8)break}g=e+8|0;if((g|0)==(b|0)){e=1;l=34;break}else{o=e;e=g;g=o}}if((l|0)==34){i=m;return e|0}o=(e+8|0)==(b|0);i=m;return o|0}}return 0}function tc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;c=0;do{r=a+(c<<1)|0;o=a+(c+16<<1)|0;d=a+(c+56<<1)|0;n=b[d>>1]|0;g=a+(c+40<<1)|0;s=b[g>>1]|0;h=(b[r>>1]|0)-n|0;f=(b[o>>1]|0)-s|0;s=(s<<1)+f|0;i=a+(c+24<<1)|0;p=a+(c+32<<1)|0;q=b[p>>1]|0;l=(b[i>>1]|0)-q|0;q=(q<<1)+l|0;j=a+(c+48<<1)|0;m=b[j>>1]|0;k=a+(c+8<<1)|0;e=(b[k>>1]|0)-m|0;n=(n<<1)+h-q|0;m=(m<<1)-s+e|0;s=m+(s<<1)|0;q=(q<<1)+n-s<<3;b[r>>1]=q+(s<<4);b[p>>1]=q;b[o>>1]=((m*217168|0)>>>16)+(n<<3);b[j>>1]=((n*217168|0)>>>16)-(m<<3);e=e-f|0;f=((e<<4)+(f<<5)|0)*23170>>16;e=e*370720>>16;l=(l<<3)-e|0;e=(e<<1)+l|0;h=(h<<3)-f|0;f=(f<<1)+h|0;j=(l^65535)-((_(l,-21746)|0)>>>16)+h|0;h=h+l+((_(h,-21746)|0)>>>16)|0;b[k>>1]=f+1+((e*13036|0)>>>16);b[i>>1]=j;b[g>>1]=h;b[d>>1]=((f*13036|0)>>>16)-e;c=c+1|0}while((c|0)!=8);uc(a,34552);uc(a+16|0,34566);uc(a+32|0,34580);uc(a+48|0,34594);uc(a+64|0,34552);uc(a+80|0,34594);uc(a+96|0,34580);uc(a+112|0,34566);return}function uc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;m=b[a>>1]|0;d=a+14|0;e=b[d>>1]|0;t=e+m|0;e=m-e|0;m=a+2|0;q=b[m>>1]|0;h=a+12|0;f=b[h>>1]|0;v=f+q|0;f=q-f|0;q=a+4|0;l=b[q>>1]|0;k=a+10|0;i=b[k>>1]|0;j=i+l|0;i=l-i|0;l=a+6|0;n=b[l>>1]|0;r=a+8|0;g=b[r>>1]|0;o=g+n|0;g=n-g|0;n=b[c+2>>1]|0;s=b[c+6>>1]|0;p=b[c+10>>1]|0;u=o+t|0;o=t-o|0;t=j+v|0;j=v-j|0;b[a>>1]=(_(u+t|0,s)|0)>>>16;b[r>>1]=(_(u-t|0,s)|0)>>>16;b[q>>1]=((_(p,j)|0)+(_(o,n)|0)|0)>>>16;b[h>>1]=((_(p,o)|0)-(_(n,j)|0)|0)>>>16;h=b[c>>1]|0;j=b[c+4>>1]|0;a=b[c+8>>1]|0;c=b[c+12>>1]|0;b[m>>1]=((_(j,f)|0)+(_(h,e)|0)+(_(a,i)|0)+(_(c,g)|0)|0)>>>16;b[l>>1]=((_(j,e)|0)-(_(h,i)|0)-(_(a,g)|0)-(_(c,f)|0)|0)>>>16;b[k>>1]=((_(j,g)|0)-(_(h,f)|0)+(_(a,e)|0)+(_(c,i)|0)|0)>>>16;b[d>>1]=((_(j,i)|0)-(_(h,g)|0)-(_(a,f)|0)+(_(c,e)|0)|0)>>>16;return}function vc(){var b=0,d=0;if(a[544]|0){d=c[6630]|0;return d|0}if(!(xa(544)|0)){d=c[6630]|0;return d|0}b=Ne(2048)|0;h[b>>3]=0.0;h[b+8>>3]=.07739938080495357;h[b+16>>3]=.15479876160990713;h[b+24>>3]=.23219814241486067;h[b+32>>3]=.30959752321981426;h[b+40>>3]=.38699690402476783;h[b+48>>3]=.46439628482972134;h[b+56>>3]=.541795665634675;h[b+64>>3]=.6191950464396285;h[b+72>>3]=.6965944272445821;h[b+80>>3]=.7739938080495357;d=11;do{h[b+(d<<3)>>3]=+P(+((+(d|0)/255.0+.055)/1.055),2.4)*255.0;d=d+1|0}while((d|0)!=256);c[6630]=b;Ca(544);d=c[6630]|0;return d|0}function wc(c,d){c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;g=i;i=i+128|0;f=g;e=0;do{q=b[c+(e<<1)>>1]<<13;K=e+8|0;H=b[c+(K<<1)>>1]|0;p=H*11363|0;x=H*9633|0;C=H*6437|0;H=H*2260|0;J=e+16|0;w=b[c+(J<<1)>>1]|0;o=w*10703|0;w=w*4433|0;I=e+24|0;G=b[c+(I<<1)>>1]|0;n=G*9633|0;v=_(G,-2259)|0;B=_(G,-11362)|0;G=_(G,-6436)|0;D=e+32|0;m=b[c+(D<<1)>>1]<<13;y=e+40|0;F=b[c+(y<<1)>>1]|0;l=F*6437|0;u=_(F,-11362)|0;A=F*2261|0;F=F*9633|0;r=e+48|0;t=b[c+(r<<1)>>1]|0;k=t*4433|0;t=_(t,-10704)|0;h=e+56|0;E=b[c+(h<<1)>>1]|0;j=E*2260|0;s=_(E,-6436)|0;z=E*9633|0;E=_(E,-11363)|0;b[f+(e<<1)>>1]=(p+q+o+n+m+l+k+j+1024|0)>>>11;b[f+(K<<1)>>1]=(x+q+w+v-m+u+t+s+1024|0)>>>11;b[f+(J<<1)>>1]=(C+q-w+B-m+A-t+z+1024|0)>>>11;b[f+(I<<1)>>1]=(H+q-o+G+m+F-k+E+1024|0)>>>11;b[f+(D<<1)>>1]=(q-H-o-G+m-F-k-E+1024|0)>>>11;b[f+(y<<1)>>1]=(q-C-w-B-m-A-t-z+1024|0)>>>11;b[f+(r<<1)>>1]=(q-x+w-v-m-u+t-s+1024|0)>>>11;b[f+(h<<1)>>1]=(q-p+o-n+m-l+k-j+1024|0)>>>11;e=e+1|0}while((e|0)!=8);c=0;do{K=c<<3;C=b[f+(K<<1)>>1]<<13;o=b[f+((K|1)<<1)>>1]|0;D=o*11363|0;w=o*9633|0;s=o*6437|0;o=o*2260|0;x=b[f+((K|2)<<1)>>1]|0;E=x*10703|0;x=x*4433|0;p=b[f+((K|3)<<1)>>1]|0;F=p*9633|0;y=_(p,-2259)|0;t=_(p,-11362)|0;p=_(p,-6436)|0;G=b[f+((K|4)<<1)>>1]<<13;q=b[f+((K|5)<<1)>>1]|0;H=q*6437|0;z=_(q,-11362)|0;u=q*2261|0;q=q*9633|0;A=b[f+((K|6)<<1)>>1]|0;I=A*4433|0;A=_(A,-10704)|0;r=b[f+((K|7)<<1)>>1]|0;J=r*2260|0;B=_(r,-6436)|0;v=r*9633|0;r=_(r,-11363)|0;n=D+C+E+F+G+H+I+J+33685504>>18;n=(n|0)<255?n:255;a[d+K>>0]=(n|0)>0?n&255:0;n=w+C+x+y-G+z+A+B+33685504>>18;n=(n|0)<255?n:255;a[d+(K|1)>>0]=(n|0)>0?n&255:0;n=s+C-x+t-G+u-A+v+33685504>>18;n=(n|0)<255?n:255;a[d+(K|2)>>0]=(n|0)>0?n&255:0;n=o+C-E+p+G+q-I+r+33685504>>18;n=(n|0)<255?n:255;a[d+(K|3)>>0]=(n|0)>0?n&255:0;r=C-o-E-p+G-q-I-r+33685504>>18;r=(r|0)<255?r:255;a[d+(K|4)>>0]=(r|0)>0?r&255:0;v=C-s-x-t-G-u-A-v+33685504>>18;v=(v|0)<255?v:255;a[d+(K|5)>>0]=(v|0)>0?v&255:0;B=C-w+x-y-G-z+A-B+33685504>>18;B=(B|0)<255?B:255;a[d+(K|6)>>0]=(B|0)>0?B&255:0;J=C-D+E-F+G-H+I-J+33685504>>18;J=(J|0)<255?J:255;a[d+(K|7)>>0]=(J|0)>0?J&255:0;c=c+1|0}while((c|0)!=8);i=g;return}function xc(a){a=a|0;var b=0;b=c[a+80>>2]|0;if(((c[a+84>>2]|0)-b|0)!=120){a=0;return a|0}if((c[a+12>>2]|0)!=2){a=0;return a|0}if((c[a+16>>2]|0)!=2){a=0;return a|0}if((c[b+4>>2]|0)!=2){a=0;return a|0}if((c[b+8>>2]|0)!=2){a=0;return a|0}if((c[b+44>>2]|0)!=1){a=0;return a|0}if((c[b+48>>2]|0)!=1){a=0;return a|0}if((c[b+84>>2]|0)!=1){a=0;return a|0}a=(c[b+88>>2]|0)==1;return a|0}function yc(a){a=a|0;var b=0;b=c[a+80>>2]|0;if(((c[a+84>>2]|0)-b|0)!=120){a=0;return a|0}if((c[a+12>>2]|0)!=1){a=0;return a|0}if((c[a+16>>2]|0)!=1){a=0;return a|0}if((c[b+4>>2]|0)!=1){a=0;return a|0}if((c[b+8>>2]|0)!=1){a=0;return a|0}if((c[b+44>>2]|0)!=1){a=0;return a|0}if((c[b+48>>2]|0)!=1){a=0;return a|0}if((c[b+84>>2]|0)!=1){a=0;return a|0}a=(c[b+88>>2]|0)==1;return a|0}function zc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c[d>>2]=a;c[d+4>>2]=b;c[d+12>>2]=1;c[d+16>>2]=1;o=d+20|0;c[o>>2]=b+7>>3;n=d+24|0;c[n>>2]=a+7>>3;f=d+56|0;g=d+60|0;b=c[g>>2]|0;a=c[f>>2]|0;e=(b-a|0)/24|0;if(e>>>0>=3){if(e>>>0>3?(h=a+72|0,(b|0)!=(h|0)):0){a=b;while(1){b=a+-24|0;c[g>>2]=b;e=c[b>>2]|0;f=e;if(e){b=a+-20|0;a=c[b>>2]|0;if((a|0)!=(e|0))c[b>>2]=a+(~((a+-4-f|0)>>>2)<<2);Oe(e);b=c[g>>2]|0}if((b|0)==(h|0))break;else a=b}}}else Bc(f,3-e|0);k=d+80|0;g=d+84|0;b=c[g>>2]|0;a=c[k>>2]|0;e=(b-a|0)/40|0;if(e>>>0>=3){if(e>>>0>3?(i=a+120|0,(b|0)!=(i|0)):0){a=b;while(1){b=a+-40|0;c[g>>2]=b;e=c[a+-12>>2]|0;f=e;if(e){b=a+-8|0;a=c[b>>2]|0;if((a|0)!=(e|0))c[b>>2]=a+(~((a+-2-f|0)>>>1)<<1);Oe(e);b=c[g>>2]|0}if((b|0)==(i|0))break;else a=b}}}else Cc(k,3-e|0);g=c[k>>2]|0;c[g>>2]=0;c[g+4>>2]=1;c[g+8>>2]=1;c[g+12>>2]=0;a=c[n>>2]|0;c[g+16>>2]=a;b=c[o>>2]|0;c[g+20>>2]=b;f=_(a,b)|0;c[g+24>>2]=f;e=g+28|0;f=f<<6;h=g+32|0;d=c[h>>2]|0;i=c[e>>2]|0;j=d-i>>1;if(f>>>0<=j>>>0){if(f>>>0>>0?(l=i+(f<<1)|0,(d|0)!=(l|0)):0)c[h>>2]=d+(~((d+-2-l|0)>>>1)<<1)}else{Dc(e,f-j|0);b=c[o>>2]|0;g=c[k>>2]|0;a=c[n>>2]|0}c[g+40>>2]=1;c[g+44>>2]=1;c[g+48>>2]=1;c[g+52>>2]=1;c[g+56>>2]=a;c[g+60>>2]=b;f=_(a,b)|0;c[g+64>>2]=f;e=g+68|0;f=f<<6;h=g+72|0;d=c[h>>2]|0;i=c[e>>2]|0;j=d-i>>1;if(f>>>0<=j>>>0){if(f>>>0>>0?(m=i+(f<<1)|0,(d|0)!=(m|0)):0)c[h>>2]=d+(~((d+-2-m|0)>>>1)<<1)}else{Dc(e,f-j|0);g=c[k>>2]|0;a=c[n>>2]|0;b=c[o>>2]|0}c[g+80>>2]=2;c[g+84>>2]=1;c[g+88>>2]=1;c[g+92>>2]=2;c[g+96>>2]=a;c[g+100>>2]=b;f=_(a,b)|0;c[g+104>>2]=f;e=g+108|0;f=f<<6;g=g+112|0;h=c[g>>2]|0;b=c[e>>2]|0;a=h-b>>1;if(f>>>0>a>>>0){Dc(e,f-a|0);return}if(f>>>0>=a>>>0)return;b=b+(f<<1)|0;if((h|0)==(b|0))return;c[g>>2]=h+(~((h+-2-b|0)>>>1)<<1);return}function Ac(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+32|0;v=x;t=d+56|0;j=c[t>>2]|0;u=d+60|0;e=c[u>>2]|0;if((e|0)!=(j|0)){f=e;while(1){e=f+-24|0;c[u>>2]=e;g=c[e>>2]|0;h=g;if(g){e=f+-20|0;f=c[e>>2]|0;if((f|0)!=(g|0))c[e>>2]=f+(~((f+-4-h|0)>>>2)<<2);Oe(g);e=c[u>>2]|0}if((e|0)==(j|0))break;else f=e}}m=d+84|0;n=d+80|0;e=c[n>>2]|0;if((c[m>>2]|0)==(e|0)){i=x;return}o=v+4|0;p=v+8|0;q=v+12|0;r=v+16|0;s=v+20|0;l=d+64|0;k=0;f=0;a:while(1){j=b+(k<<8)|0;b:do if((f|0)>0){h=c[t>>2]|0;g=0;while(1){if(!(Uf(j,c[h+(g*24|0)>>2]|0,256)|0))break;g=g+1|0;if((g|0)>=(f|0)){w=14;break b}}c[e+(k*40|0)+12>>2]=g}else w=14;while(0);if((w|0)==14){w=0;d=Me(256)|0;c[v>>2]=d;h=d+256|0;c[p>>2]=h;c[o>>2]=h;c[r>>2]=0;a[s>>0]=1;tg(d|0,j|0,256)|0;c[q>>2]=0;h=0;do{g=c[d+(h<<2)>>2]|0;if((g|0)<=-1){w=16;break a}if((g|0)>=65536){w=18;break a}if((g|0)>255)c[q>>2]=1;h=h+1|0}while((h|0)<64);c[r>>2]=f;c[e+(k*40|0)+12>>2]=f;e=c[u>>2]|0;if((e|0)==(c[l>>2]|0))Fc(t,v);else{Ec(e,v);j=e+12|0;c[j>>2]=c[q>>2];c[j+4>>2]=c[q+4>>2];a[j+8>>0]=a[q+8>>0]|0;c[u>>2]=(c[u>>2]|0)+24}c[o>>2]=d;Oe(d);f=f+1|0}k=k+1|0;e=c[n>>2]|0;if(k>>>0>=(((c[m>>2]|0)-e|0)/40|0)>>>0){w=27;break}}if((w|0)==16)za(34777,34798,90,34851);else if((w|0)==18)za(34867,34798,91,34851);else if((w|0)==27){i=x;return}}function Bc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=b+8|0;g=c[m>>2]|0;n=b+4|0;e=c[n>>2]|0;f=e;if(((g-f|0)/24|0)>>>0>=d>>>0){do{b=Me(256)|0;c[e>>2]=b;m=b+256|0;c[e+8>>2]=m;pg(b|0,0,256)|0;c[e+4>>2]=m;c[e+12>>2]=0;c[e+16>>2]=0;a[e+20>>0]=1;e=(c[n>>2]|0)+24|0;c[n>>2]=e;d=d+-1|0}while((d|0)!=0);return}e=c[b>>2]|0;f=((f-e|0)/24|0)+d|0;if(f>>>0>178956970)Ke(b);h=e;e=(g-h|0)/24|0;if(e>>>0<89478485){e=e<<1;e=e>>>0>>0?f:e;f=((c[n>>2]|0)-h|0)/24|0;if(!e){h=0;g=0;e=f}else i=8}else{e=178956970;f=((c[n>>2]|0)-h|0)/24|0;i=8}if((i|0)==8){h=e;g=Me(e*24|0)|0;e=f}i=g+(e*24|0)|0;j=i;l=g+(h*24|0)|0;f=i;e=j;do{h=Me(256)|0;c[f>>2]=h;k=h+256|0;c[f+8>>2]=k;pg(h|0,0,256)|0;c[f+4>>2]=k;c[f+12>>2]=0;c[f+16>>2]=0;a[f+20>>0]=1;f=e+24|0;e=f;d=d+-1|0}while((d|0)!=0);k=e;h=c[b>>2]|0;e=c[n>>2]|0;if((e|0)==(h|0)){f=b;g=n;d=j;j=h}else{f=i;d=j;do{j=f+-24|0;i=e;e=e+-24|0;c[j>>2]=0;g=f+-20|0;c[g>>2]=0;c[f+-16>>2]=0;c[j>>2]=c[e>>2];j=i+-20|0;c[g>>2]=c[j>>2];g=i+-16|0;c[f+-16>>2]=c[g>>2];c[g>>2]=0;c[j>>2]=0;c[e>>2]=0;j=f+-12|0;i=i+-12|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];a[j+8>>0]=a[i+8>>0]|0;f=d+-24|0;d=f}while((e|0)!=(h|0));e=d;f=b;g=n;d=e;j=c[b>>2]|0;e=c[n>>2]|0}c[f>>2]=d;c[g>>2]=k;c[m>>2]=l;i=j;if((e|0)!=(i|0))do{d=e;e=e+-24|0;g=c[e>>2]|0;h=g;if(g){d=d+-20|0;f=c[d>>2]|0;if((f|0)!=(g|0))c[d>>2]=f+(~((f+-4-h|0)>>>2)<<2);Oe(g)}}while((e|0)!=(i|0));if(!j)return;Oe(j);return}function Cc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;g=c[m>>2]|0;n=a+4|0;f=c[n>>2]|0;d=f;if(((g-d|0)/40|0)>>>0>=b>>>0){d=b;e=f;while(1){c[e>>2]=0;c[e+4>>2]=1;c[e+8>>2]=1;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+28>>2]=0;c[e+32>>2]=0;c[e+36>>2]=0;d=d+-1|0;if(!d)break;else e=e+40|0}c[n>>2]=f+(b*40|0);return}l=c[a>>2]|0;e=((d-l|0)/40|0)+b|0;if(e>>>0>107374182)Ke(a);j=l;d=(g-j|0)/40|0;if(d>>>0<53687091){d=d<<1;d=d>>>0>>0?e:d;f=c[n>>2]|0;e=(f-j|0)/40|0;if(!d){g=0;k=0;i=e}else h=9}else{f=c[n>>2]|0;d=107374182;e=(f-j|0)/40|0;h=9}if((h|0)==9){g=d;k=Me(d*40|0)|0;i=e}e=k+(i*40|0)|0;h=k+(g*40|0)|0;d=b;g=e;while(1){c[g>>2]=0;c[g+4>>2]=1;c[g+8>>2]=1;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+28>>2]=0;c[g+32>>2]=0;c[g+36>>2]=0;d=d+-1|0;if(!d)break;else g=g+40|0}d=e;g=k+((i+b|0)*40|0)|0;if((f|0)==(l|0))e=a;else{do{k=e+-40|0;j=f;f=f+-40|0;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];c[k+12>>2]=c[f+12>>2];c[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];k=e+-12|0;b=j+-12|0;c[k>>2]=0;i=e+-8|0;c[i>>2]=0;c[e+-4>>2]=0;c[k>>2]=c[b>>2];k=j+-8|0;c[i>>2]=c[k>>2];j=j+-4|0;c[e+-4>>2]=c[j>>2];c[j>>2]=0;c[k>>2]=0;c[b>>2]=0;e=d+-40|0;d=e}while((f|0)!=(l|0));e=a;j=c[a>>2]|0}c[e>>2]=d;d=c[n>>2]|0;c[n>>2]=g;c[m>>2]=h;i=j;if((d|0)!=(i|0))do{e=c[d+-12>>2]|0;f=e;if(e){g=d+-8|0;h=c[g>>2]|0;if((h|0)!=(e|0))c[g>>2]=h+(~((h+-2-f|0)>>>1)<<1);Oe(e)}d=d+-40|0}while((d|0)!=(i|0));if(!j)return;Oe(j);return}function Dc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=a+8|0;e=c[h>>2]|0;k=a+4|0;f=c[k>>2]|0;d=f;if(e-d>>1>>>0>=b>>>0){pg(f|0,0,b<<1|0)|0;c[k>>2]=f+(b<<1);return}i=c[a>>2]|0;j=i;d=(d-j>>1)+b|0;if((d|0)<0)Ke(a);l=i;g=e-l|0;g=g>>1>>>0<1073741823?(g>>>0>>0?d:g):2147483647;d=f-l|0;e=d>>1;if(!g)f=0;else f=Me(g<<1)|0;pg(f+(e<<1)|0,0,b<<1|0)|0;tg(f|0,i|0,d|0)|0;c[a>>2]=f;c[k>>2]=f+(e+b<<1);c[h>>2]=f+(g<<1);if(!j)return;Oe(j);return}function Ec(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;c[a>>2]=0;h=a+4|0;c[h>>2]=0;c[a+8>>2]=0;f=b+4|0;d=(c[f>>2]|0)-(c[b>>2]|0)|0;e=d>>2;if(!e)return;if(e>>>0>1073741823)Ke(a);g=Me(d)|0;c[h>>2]=g;c[a>>2]=g;c[a+8>>2]=g+(e<<2);d=c[b>>2]|0;b=c[f>>2]|0;if((d|0)==(b|0))return;a=(b+-4-d|0)>>>2;e=g;while(1){c[e>>2]=c[d>>2];d=d+4|0;if((d|0)==(b|0))break;else e=e+4|0}c[h>>2]=g+(a+1<<2);return}function Fc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=b+4|0;e=c[b>>2]|0;g=(((c[l>>2]|0)-e|0)/24|0)+1|0;if(g>>>0>178956970)Ke(b);m=b+8|0;f=((c[m>>2]|0)-e|0)/24|0;if(f>>>0<89478485){f=f<<1;f=f>>>0>>0?g:f;e=((c[l>>2]|0)-e|0)/24|0;if(!f){h=0;i=0}else j=6}else{f=178956970;e=((c[l>>2]|0)-e|0)/24|0;j=6}if((j|0)==6){h=f;i=Me(f*24|0)|0}g=i+(e*24|0)|0;f=g;k=i+(h*24|0)|0;Ec(g,d);j=i+(e*24|0)+12|0;d=d+12|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];a[j+8>>0]=a[d+8>>0]|0;j=i+((e+1|0)*24|0)|0;i=c[b>>2]|0;e=c[l>>2]|0;if((e|0)==(i|0)){g=b;h=l;d=i}else{do{d=g+-24|0;h=e;e=e+-24|0;c[d>>2]=0;n=g+-20|0;c[n>>2]=0;c[g+-16>>2]=0;c[d>>2]=c[e>>2];d=h+-20|0;c[n>>2]=c[d>>2];n=h+-16|0;c[g+-16>>2]=c[n>>2];c[n>>2]=0;c[d>>2]=0;c[e>>2]=0;d=g+-12|0;h=h+-12|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];a[d+8>>0]=a[h+8>>0]|0;g=f+-24|0;f=g}while((e|0)!=(i|0));e=f;g=b;h=l;f=e;d=c[b>>2]|0;e=c[l>>2]|0}c[g>>2]=f;c[h>>2]=j;c[m>>2]=k;j=d;if((e|0)!=(j|0))do{f=e;e=e+-24|0;h=c[e>>2]|0;i=h;if(h){f=f+-20|0;g=c[f>>2]|0;if((g|0)!=(h|0))c[f>>2]=g+(~((g+-4-i|0)>>>2)<<2);Oe(h)}}while((e|0)!=(j|0));if(!d)return;Oe(d);return}function Gc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=c[b+32>>2]|0;j=c[b+36>>2]|0;if((d|0)!=(j|0)){e=0;f=0;do{h=a[d>>0]|0;i=(h&1)==0;if(i)g=d+1|0;else g=c[d+8>>2]|0;if((a[g>>0]|0)==-32){d=1;k=23;break}if(i)g=d+1|0;else g=c[d+8>>2]|0;if((a[g>>0]|0)==-18){if(i)g=(h&255)>>>1;else g=c[d+4>>2]|0;if(g>>>0>14){if(i)e=d+1|0;else e=c[d+8>>2]|0;e=a[e+14>>0]|0;f=1}}d=d+12|0}while((d|0)!=(j|0));if((k|0)==23)return d|0;if(f){k=e<<24>>24!=0;return k|0}}d=c[b+80>>2]|0;if((c[d>>2]|0)!=82?1:(c[d+40>>2]|0)!=71){k=1;return k|0}k=(c[d+80>>2]|0)!=66;return k|0}function Hc(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;y=i;i=i+1152|0;w=y;x=y+768|0;if((f|e)>>>0>65535){e=0;i=y;return e|0}if(((c[a+4>>2]|0)-(c[a>>2]|0)|0)!=(_(e*3|0,f)|0)){e=0;i=y;return e|0}zc(e,f,h);eg(w,34895,17);j=h+36|0;k=c[j>>2]|0;if(k>>>0<(c[h+40>>2]|0)>>>0){c[k>>2]=c[w>>2];c[k+4>>2]=c[w+4>>2];c[k+8>>2]=c[w+8>>2];c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[j>>2]=(c[j>>2]|0)+12}else Jc(h+32|0,w);fg(w);m=c[h+56>>2]|0;j=c[m>>2]|0;k=0;l=0;while(1){v=c[g+(k<<2)>>2]|0;c[j+(l<<2)>>2]=v;c[w+(k<<2)>>2]=65537/(v|0)|0;l=l+1|0;if((l|0)==64)break;else k=k+1|0}j=c[m+24>>2]|0;k=64;l=0;while(1){v=c[g+(k<<2)>>2]|0;c[j+(l<<2)>>2]=v;c[w+(k<<2)>>2]=65537/(v|0)|0;l=l+1|0;if((l|0)==64)break;else k=k+1|0}j=c[m+48>>2]|0;k=128;l=0;while(1){v=c[g+(k<<2)>>2]|0;c[j+(l<<2)>>2]=v;c[w+(k<<2)>>2]=65537/(v|0)|0;l=l+1|0;if((l|0)==64)break;else k=k+1|0}u=h+20|0;j=c[u>>2]|0;if((j|0)>0){v=h+24|0;s=f+-1|0;t=e+-1|0;p=h+80|0;q=x+128|0;r=x+256|0;k=c[v>>2]|0;l=0;o=0;do{if((k|0)>0){n=o<<3;j=l;h=0;do{k=h<<3;f=0;do{l=f+n|0;l=_((l|0)<(s|0)?l:s,e)|0;m=f<<3;g=0;do{A=g+k|0;A=(((A|0)<(t|0)?A:t)+l|0)*3|0;D=c[a>>2]|0;z=g+m|0;C=d[D+A>>0]|0;B=d[D+(A+1)>>0]|0;A=d[D+(A+2)>>0]|0;b[x+(z<<1)>>1]=((C*19595|0)+-8355840+(B*38469|0)+(A*7471|0)|0)>>>16;b[x+(z+64<<1)>>1]=((_(C,-11059)|0)+32767+(_(B,-21709)|0)+(A<<15)|0)>>>16;b[x+(z+128<<1)>>1]=((C<<15|32767)+(_(B,-27439)|0)+(_(A,-5329)|0)|0)>>>16;g=g+1|0}while((g|0)!=8);f=f+1|0}while((f|0)!=8);tc(x);tc(q);tc(r);k=0;do{D=x+(k<<1)|0;b[D>>1]=(_(b[D>>1]|0,c[w+(k<<2)>>2]|0)|0)+524288>>20;k=k+1|0}while((k|0)!=192);k=j<<6;l=(c[(c[p>>2]|0)+28>>2]|0)+(k<<1)|0;m=x;g=l+128|0;do{b[l>>1]=b[m>>1]|0;l=l+2|0;m=m+2|0}while((l|0)<(g|0));l=(c[(c[p>>2]|0)+68>>2]|0)+(k<<1)|0;m=q;g=l+128|0;do{b[l>>1]=b[m>>1]|0;l=l+2|0;m=m+2|0}while((l|0)<(g|0));l=(c[(c[p>>2]|0)+108>>2]|0)+(k<<1)|0;m=r;g=l+128|0;do{b[l>>1]=b[m>>1]|0;l=l+2|0;m=m+2|0}while((l|0)<(g|0));j=j+1|0;h=h+1|0;k=c[v>>2]|0}while((h|0)<(k|0));l=j;j=c[u>>2]|0}o=o+1|0}while((o|0)<(j|0))}D=1;i=y;return D|0}function Ic(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Hc(a,b,c,26524,d)|0}function Jc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+4|0;d=c[a>>2]|0;f=(((c[k>>2]|0)-d|0)/12|0)+1|0;if(f>>>0>357913941)Ke(a);l=a+8|0;e=((c[l>>2]|0)-d|0)/12|0;if(e>>>0<178956970){e=e<<1;e=e>>>0>>0?f:e;d=((c[k>>2]|0)-d|0)/12|0;if(!e){g=0;h=0}else i=6}else{e=357913941;d=((c[k>>2]|0)-d|0)/12|0;i=6}if((i|0)==6){g=e;h=Me(e*12|0)|0}f=h+(d*12|0)|0;e=f;j=h+(g*12|0)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;b=h+((d+1|0)*12|0)|0;i=c[a>>2]|0;d=c[k>>2]|0;if((d|0)==(i|0)){g=a;h=k;f=i}else{do{h=f+-12|0;d=d+-12|0;c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=e+-12|0;e=f}while((d|0)!=(i|0));d=e;g=a;h=k;e=d;f=c[a>>2]|0;d=c[k>>2]|0}c[g>>2]=e;c[h>>2]=b;c[l>>2]=j;e=f;if((d|0)!=(e|0))do{d=d+-12|0;fg(d)}while((d|0)!=(e|0));if(!f)return;Oe(f);return}function Kc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;g=a+4|0;c[g>>2]=0;c[a+8>>2]=0;f=b+4|0;i=c[f>>2]|0;h=c[b>>2]|0;d=i-h|0;e=(d|0)/12|0;if((i|0)==(h|0))return;if(e>>>0>357913941)Ke(a);d=Me(d)|0;c[g>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(e*12|0);e=c[b>>2]|0;b=c[f>>2]|0;if((e|0)==(b|0))return;do{c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];d=(c[g>>2]|0)+12|0;c[g>>2]=d;e=e+12|0}while((e|0)!=(b|0));return}function Lc(a){a=a|0;var b=0,d=0,e=0,f=0;e=1;b=136;d=0;while(1){b=(c[a+(d<<2)>>2]|0)==0?b:b+8|0;d=e+1|0;if((d|0)==257)break;else{f=e;e=d;d=f}}return b|0}function Mc(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;g=1;e=0;f=0;while(1){e=(_((d[b+f>>0]|0)+(f&15)|0,(c[a+(f<<2)>>2]|0)>>>1)|0)+e|0;f=g+1|0;if((f|0)==257)break;else{h=g;g=f;f=h}}return (((e*3|0)+512|0)>>>10)+e|0}function Nc(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=c[a+84>>2]|0;t=c[a+80>>2]|0;if((e|0)==(t|0))return;u=a+20|0;s=(e-t|0)/40|0;q=a+24|0;e=c[u>>2]|0;r=0;do{if((e|0)>0){m=t+(r*40|0)+8|0;n=t+(r*40|0)+4|0;o=t+(r*40|0)+16|0;p=t+(r*40|0)+28|0;a=c[q>>2]|0;f=0;l=0;do{if((a|0)>0){e=c[m>>2]|0;k=0;do{if((e|0)>0){a=c[n>>2]|0;j=0;do{if((a|0)>0){i=c[p>>2]|0;h=0;g=f;while(1){f=(_(e,l)|0)+j|0;e=(_(a,k)|0)+h|0;f=b[i+(e+(_(f,c[o>>2]|0)|0)<<6<<1)>>1]|0;e=(f<<16>>16)-(g<<16>>16)|0;e=(e|0)>-1?e:0-e|0;if(!e)e=-1;else e=(aa(e|0)|0)^31;a=d+(r*1028|0)+(e+1<<2)|0;c[a>>2]=(c[a>>2]|0)+2;h=h+1|0;a=c[n>>2]|0;e=c[m>>2]|0;if((h|0)>=(a|0))break;else g=f}}j=j+1|0}while((j|0)<(e|0));a=c[q>>2]|0}k=k+1|0}while((k|0)<(a|0));e=c[u>>2]|0}l=l+1|0}while((l|0)<(e|0))}r=r+1|0}while(r>>>0>>0);return}function Oc(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=c[a+84>>2]|0;o=c[a+80>>2]|0;if((e|0)==(o|0))return;m=(e-o|0)/40|0;n=0;do{a=c[o+(n*40|0)+32>>2]|0;j=c[o+(n*40|0)+28>>2]|0;if((a|0)!=(j|0)){k=d+(n*1028|0)+960|0;l=d+(n*1028|0)|0;h=a-j>>1;i=0;do{g=1;a=0;do{e=b[j+((c[33188+(g<<2)>>2]|0)+i<<1)>>1]|0;f=e<<16>>16;if(!(e<<16>>16))a=a+1|0;else{if((a|0)>15){p=a+-16|0;a=p>>>4;c[k>>2]=(a<<1)+2+(c[k>>2]|0);a=p-(a<<4)|0}a=d+(n*1028|0)+((a<<4|1)+((aa((e<<16>>16>-1?f:0-f|0)|0)|0)^31)<<2)|0;c[a>>2]=(c[a>>2]|0)+2;a=0}g=g+1|0}while((g|0)!=64);if((a|0)>0)c[l>>2]=(c[l>>2]|0)+2;i=i+64|0}while(i>>>0>>0)}n=n+1|0}while(n>>>0>>0);return}function Pc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(!d){d=c[b+36>>2]|0;h=c[b+32>>2]|0;if((d|0)==(h|0))d=2;else{f=(d-h|0)/12|0;g=0;d=2;do{e=a[h+(g*12|0)>>0]|0;if(!(e&1))e=(e&255)>>>1;else e=c[h+(g*12|0)+4>>2]|0;d=d+1+e|0;g=g+1|0}while(g>>>0>>0)}e=c[b+48>>2]|0;h=c[b+44>>2]|0;if((e|0)!=(h|0)){f=(e-h|0)/12|0;g=0;do{e=a[h+(g*12|0)>>0]|0;if(!(e&1))e=(e&255)>>>1;else e=c[h+(g*12|0)+4>>2]|0;d=d+2+e|0;g=g+1|0}while(g>>>0>>0)}}else d=20;d=d+4|0;e=c[b+60>>2]|0;g=c[b+56>>2]|0;if((e|0)!=(g|0)){e=(e-g|0)/24|0;f=0;do{d=((c[g+(f*24|0)+12>>2]|0)!=0?129:65)+d|0;f=f+1|0}while(f>>>0>>0)}h=a[b+128>>0]|0;return d+24+((h&1)==0?(h&255)>>>1:c[b+132>>2]|0)+((((c[b+84>>2]|0)-(c[b+80>>2]|0)|0)/40|0)*5|0)|0}function Qc(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+2336|0;v=w+2056|0;t=w+1024|0;u=w+2072|0;s=w;pg(f|0,0,(c[b>>2]|0)*257|0)|0;if(!(c[b>>2]|0)){v=0;i=w;return v|0}else n=0;do{c[e+(n<<2)>>2]=n;m=Me(4120)|0;l=n*257|0;nc(a+(n*1028|0)|0,257,16,m,f+l|0);j=1;h=136;g=0;while(1){h=(c[a+(n*1028|0)+(g<<2)>>2]|0)==0?h:h+8|0;g=j+1|0;if((g|0)==257)break;else{r=j;j=g;g=r}}k=1;g=0;j=0;while(1){g=(_((d[f+(j+l)>>0]|0)+(j&15)|0,(c[a+(n*1028|0)+(j<<2)>>2]|0)>>>1)|0)+g|0;j=k+1|0;if((j|0)==257)break;else{r=k;k=j;j=r}}c[v+(n<<2)>>2]=g+h+(((g*3|0)+512|0)>>>10);Oe(m);n=n+1|0;h=c[b>>2]|0}while(n>>>0>>0);a:do if(h>>>0>1){r=t+1024|0;g=h;while(1){q=g+-1|0;p=g+-2|0;o=a+(q*1028|0)|0;tg(t|0,o|0,1028)|0;j=1;g=0;while(1){n=t+(g<<2)|0;c[n>>2]=(c[n>>2]|0)+(c[a+(p*1028|0)+(g<<2)>>2]|0);g=j+1|0;if((g|0)==257)break;else{n=j;j=g;g=n}}n=a+(p*1028|0)|0;c[r>>2]=1;g=Me(4120)|0;pg(u|0,0,257)|0;nc(t,257,16,g,u);l=1;k=136;j=0;while(1){k=(c[t+(j<<2)>>2]|0)==0?k:k+8|0;j=l+1|0;if((j|0)==257)break;else{m=l;l=j;j=m}}m=1;j=0;l=0;while(1){j=(_((d[u+l>>0]|0)+(l&15)|0,(c[t+(l<<2)>>2]|0)>>>1)|0)+j|0;l=m+1|0;if((l|0)==257)break;else{x=m;m=l;l=x}}j=j+k+(((j*3|0)+512|0)>>>10)|0;k=v+(p<<2)|0;if(j>>>0>=((c[k>>2]|0)+(c[v+(q<<2)>>2]|0)|0)>>>0)break;tg(n|0,t|0,1028)|0;pg(s|0,0,1024)|0;tg(o|0,s|0,1024)|0;c[a+(q*1028|0)+1024>>2]=1;c[k>>2]=j;tg(f+(p*257|0)|0,u|0,257)|0;k=0;do{j=e+(k<<2)|0;if((c[j>>2]|0)==(q|0))c[j>>2]=p;k=k+1|0}while((k|0)!=(h|0));c[b>>2]=(c[b>>2]|0)+-1;Oe(g);g=c[b>>2]|0;if(g>>>0<=1){h=g;break a}}Oe(g);h=c[b>>2]|0}while(0);if(!h){x=0;i=w;return x|0}else{j=0;g=0}do{g=(c[v+(j<<2)>>2]|0)+g|0;j=j+1|0}while(j>>>0>>0);x=(g+7|0)>>>3;i=w;return x|0}function Rc(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0;Z=i;i=i+80|0;Q=Z+32|0;S=Z;X=Z+56|0;V=Z+44|0;c[X>>2]=0;Y=X+4|0;c[Y>>2]=0;c[X+8>>2]=0;c[V>>2]=0;W=V+4|0;c[W>>2]=0;c[V+8>>2]=0;U=c[g>>2]|0;T=c[g+4>>2]|0;a:do if((cb[U&7](T,34972,2)|0)==2){if(f){if((cb[U&7](T,34974,18)|0)!=18){j=0;break}}else{m=e+36|0;n=e+32|0;if((c[m>>2]|0)==(c[n>>2]|0))g=1;else{o=0;g=1;do{a[Q>>0]=-1;b:do if(g?(cb[U&7](T,Q,1)|0)==1:0){l=c[n>>2]|0;h=l+(o*12|0)|0;P=a[h>>0]|0;O=(P&1)==0;h=O?h+1|0:c[l+(o*12|0)+8>>2]|0;l=O?(P&255)>>>1:c[l+(o*12|0)+4>>2]|0;if(l>>>0>1073741824){j=h;g=0;while(1){if((cb[U&7](T,j,1073741824)|0)!=1073741824){g=0;break b}g=g+1073741824|0;k=l-g|0;j=h+g|0;if(k>>>0<=1073741824){h=j;break}}}else{k=l;g=0}if((g|0)==(l|0))g=1;else g=(cb[U&7](T,h,k)|0)==(k|0)}else g=0;while(0);o=o+1|0}while(o>>>0<(((c[m>>2]|0)-(c[n>>2]|0)|0)/12|0)>>>0)}m=e+48|0;n=e+44|0;if((c[m>>2]|0)!=(c[n>>2]|0)){o=0;do{b[S>>1]=-257;c:do if(g?(cb[U&7](T,S,2)|0)==2:0){l=c[n>>2]|0;h=l+(o*12|0)|0;P=a[h>>0]|0;O=(P&1)==0;h=O?h+1|0:c[l+(o*12|0)+8>>2]|0;l=O?(P&255)>>>1:c[l+(o*12|0)+4>>2]|0;if(l>>>0>1073741824){j=h;g=0;while(1){if((cb[U&7](T,j,1073741824)|0)!=1073741824){g=0;break c}g=g+1073741824|0;k=l-g|0;j=h+g|0;if(k>>>0<=1073741824){h=j;break}}}else{k=l;g=0}if((g|0)==(l|0))g=1;else g=(cb[U&7](T,h,k)|0)==(k|0)}else g=0;while(0);o=o+1|0}while(o>>>0<(((c[m>>2]|0)-(c[n>>2]|0)|0)/12|0)>>>0)}if(!g){j=0;break}}p=e+60|0;g=c[p>>2]|0;q=e+56|0;k=c[q>>2]|0;if((g|0)==(k|0))j=2;else{h=(g-k|0)/24|0;j=0;g=2;do{g=((c[k+(j*24|0)+12>>2]|0)!=0?129:65)+g|0;j=j+1|0}while(j>>>0>>0);j=g}g=j+2|0;c[Q>>2]=0;o=Q+4|0;c[o>>2]=0;c[Q+8>>2]=0;if((j|0)<-2)Ke(Q);h=Me(g)|0;c[o>>2]=h;c[Q>>2]=h;c[Q+8>>2]=h+g;do{a[h>>0]=0;h=(c[o>>2]|0)+1|0;c[o>>2]=h;g=g+-1|0}while((g|0)!=0);a[c[Q>>2]>>0]=-1;a[(c[Q>>2]|0)+1>>0]=-37;a[(c[Q>>2]|0)+2>>0]=j>>>8;a[(c[Q>>2]|0)+3>>0]=j;g=c[q>>2]|0;d:do if((c[p>>2]|0)!=(g|0)){n=0;h=4;do{m=g+(n*24|0)+12|0;a[(c[Q>>2]|0)+h>>0]=(c[m>>2]<<4)+(c[g+(n*24|0)+16>>2]|0);k=g+(n*24|0)|0;l=0;g=h;h=h+1|0;do{j=c[(c[k>>2]|0)+(c[33188+(l<<2)>>2]<<2)>>2]|0;if(!(c[m>>2]|0))g=h;else{a[(c[Q>>2]|0)+h>>0]=j>>>8;g=g+2|0}a[(c[Q>>2]|0)+g>>0]=j;l=l+1|0;h=g+1|0}while((l|0)!=64);n=n+1|0;g=c[q>>2]|0}while(n>>>0<(((c[p>>2]|0)-g|0)/24|0)>>>0);j=h;g=c[Q>>2]|0;if(j>>>0>1073741824){k=g;h=0;while(1){if((cb[U&7](T,k,1073741824)|0)!=1073741824){g=0;break d}l=h+1073741824|0;h=j-l|0;k=g+l|0;if(h>>>0>1073741824)h=l;else{g=k;k=l;break}}}else{h=j;k=0}if((k|0)==(j|0))g=1;else R=41}else{h=4;g=c[Q>>2]|0;R=41}while(0);if((R|0)==41)g=(cb[U&7](T,g,h)|0)==(h|0);h=c[Q>>2]|0;if(h){if((c[o>>2]|0)!=(h|0))c[o>>2]=h;Oe(h)}if(g){O=e+84|0;j=c[O>>2]|0;P=e+80|0;k=c[P>>2]|0;m=(j-k|0)/40|0;g=m*3|0;l=g+8|0;g=g+10|0;c[Q>>2]=0;n=Q+4|0;c[n>>2]=0;c[Q+8>>2]=0;if((g|0)<0)Ke(Q);h=Me(g)|0;c[n>>2]=h;c[Q>>2]=h;c[Q+8>>2]=h+g;do{a[h>>0]=0;h=(c[n>>2]|0)+1|0;c[n>>2]=h;g=g+-1|0}while((g|0)!=0);a[c[Q>>2]>>0]=-1;a[(c[Q>>2]|0)+1>>0]=-63;a[(c[Q>>2]|0)+2>>0]=l>>>8;a[(c[Q>>2]|0)+3>>0]=l;a[(c[Q>>2]|0)+4>>0]=8;N=e+4|0;a[(c[Q>>2]|0)+5>>0]=(c[N>>2]|0)>>>8;a[(c[Q>>2]|0)+6>>0]=c[N>>2];a[(c[Q>>2]|0)+7>>0]=(c[e>>2]|0)>>>8;a[(c[Q>>2]|0)+8>>0]=c[e>>2];a[(c[Q>>2]|0)+9>>0]=m;e:do if((j|0)!=(k|0)){k=0;l=10;while(1){a[(c[Q>>2]|0)+l>>0]=c[(c[P>>2]|0)+(k*40|0)>>2];g=c[P>>2]|0;a[(c[Q>>2]|0)+(l+1)>>0]=c[g+(k*40|0)+4>>2]<<4|c[g+(k*40|0)+8>>2];g=c[(c[P>>2]|0)+(k*40|0)+12>>2]|0;h=c[q>>2]|0;if(g>>>0>=(((c[p>>2]|0)-h|0)/24|0)>>>0){g=0;break e}j=l+3|0;a[(c[Q>>2]|0)+(l+2)>>0]=c[h+(g*24|0)+16>>2];k=k+1|0;if(k>>>0>=m>>>0){l=j;break}else l=j}g=c[Q>>2]|0;if(l>>>0>1073741824){h=g;j=0;while(1){if((cb[U&7](T,h,1073741824)|0)!=1073741824){g=0;break e}j=j+1073741824|0;h=l-j|0;k=g+j|0;if(h>>>0>1073741824)h=k;else{g=k;break}}}else{h=l;j=0}if((j|0)==(l|0))g=1;else R=59}else{h=10;g=c[Q>>2]|0;R=59}while(0);if((R|0)==59)g=(cb[U&7](T,g,h)|0)==(h|0);h=c[Q>>2]|0;if(h){if((c[n>>2]|0)!=(h|0))c[n>>2]=h;Oe(h)}if(g?Tc(e,U,T,X,V)|0:0){J=Q;c[J>>2]=0;c[J+4>>2]=0;c[S>>2]=131072;J=S+4|0;c[J>>2]=Ne(131072)|0;N=S+8|0;c[N>>2]=0;K=S+16|0;L=K;c[L>>2]=0;c[L+4>>2]=0;L=S+24|0;c[L>>2]=64;M=S+28|0;a[M>>0]=0;H=e+20|0;g=c[H>>2]|0;f:do if((g|0)>0){I=e+24|0;h=c[I>>2]|0;j=0;G=0;do{if((h|0)>0){F=0;do{h=c[O>>2]|0;g=c[P>>2]|0;if((h|0)!=(g|0)){E=0;do{B=c[g+(E*40|0)+8>>2]|0;D=c[g+(E*40|0)+4>>2]|0;if((B|0)>0){x=(D|0)>0;y=_(B,G)|0;z=_(D,F)|0;A=g+(E*40|0)+16|0;u=g+(E*40|0)+28|0;v=Q+(E<<1)|0;w=0;do{if(x){r=w+y|0;h=b[v>>1]|0;t=0;while(1){p=t+z+(_(c[A>>2]|0,r)|0)<<6;q=c[u>>2]|0;l=c[X>>2]|0;s=c[V>>2]|0;g=b[q+(p<<1)>>1]|0;j=(g&65535)-(h&65535)|0;h=j<<16;if((h|0)<0){h=0-(h>>16)|0;k=j+-1|0}else{h=j;k=j}h=h<<16>>16;if(!h)j=-1;else j=(aa(h|0)|0)^31;h=j+1|0;o=c[l+(E*1280|0)+256+(h<<2)>>2]|0;Uc(S,d[l+(E*1280|0)+h>>0]|0,o,((o|0)<0)<<31>>31);if((j|0)>-1){o=(1<>16;Uc(S,h,o,((o|0)<0)<<31>>31)}m=s+(E*1280|0)+240|0;n=s+(E*1280|0)+1216|0;o=1;h=0;do{k=b[q+((c[33188+(o<<2)>>2]|0)+p<<1)>>1]|0;j=k&65535;if(!(k<<16>>16))h=h+1|0;else{if(k<<16>>16<0){k=0-j|0;l=k&65535;k=(k^65535)&65535}else l=k;if((h|0)>15){j=h;do{$=c[n>>2]|0;Uc(S,d[m>>0]|0,$,(($|0)<0)<<31>>31);j=j+-16|0}while((j|0)>15);h=h&15}$=((aa(l<<16>>16|0)|0)^31)+1|0;l=$+(h<<4)|0;h=c[s+(E*1280|0)+256+(l<<2)>>2]|0;Uc(S,d[s+(E*1280|0)+l>>0]|0,h,((h|0)<0)<<31>>31);h=(1<<$)+-1&k<<16>>16;Uc(S,$,h,((h|0)<0)<<31>>31);h=0}o=o+1|0}while((o|0)!=64);if((h|0)>0){$=c[s+(E*1280|0)+256>>2]|0;Uc(S,d[s+(E*1280|0)>>0]|0,$,(($|0)<0)<<31>>31)}t=t+1|0;if((t|0)==(D|0))break;else h=g}b[v>>1]=g}w=w+1|0}while((w|0)!=(B|0));h=c[O>>2]|0;g=c[P>>2]|0}E=E+1|0}while(E>>>0<((h-g|0)/40|0)>>>0);j=c[N>>2]|0}if((j|0)>65536){h=c[J>>2]|0;if(j>>>0>1073741824){k=h;g=0;while(1){if((cb[U&7](T,k,1073741824)|0)!=1073741824){h=0;break f}g=g+1073741824|0;l=j-g|0;k=h+g|0;if(l>>>0<=1073741824){h=k;break}}}else{l=j;g=0}if((g|0)!=(j|0)?(cb[U&7](T,h,l)|0)!=(l|0):0){h=0;break f}c[N>>2]=0;j=0}F=F+1|0;h=c[I>>2]|0}while((F|0)<(h|0));g=c[H>>2]|0}G=G+1|0}while((G|0)<(g|0));g=c[L>>2]|0;g:do if((g|0)<57){k=S+4|0;g=K;h=c[g>>2]|0;g=c[g+4>>2]|0;while(1){g=sg(h|0,g|0,56)|0;if(j>>>0<(c[S>>2]|0)>>>0){c[N>>2]=j+1;a[(c[k>>2]|0)+j>>0]=g}else a[M>>0]=1;do if((g|0)==255&(C|0)==0){g=c[N>>2]|0;if(g>>>0<(c[S>>2]|0)>>>0){c[N>>2]=g+1;a[(c[k>>2]|0)+g>>0]=0;break}else{a[M>>0]=1;break}}while(0);h=K;h=qg(c[h>>2]|0,c[h+4>>2]|0,8)|0;j=C;g=K;c[g>>2]=h;c[g+4>>2]=j;g=(c[L>>2]|0)+8|0;c[L>>2]=g;if((g|0)>=57)break g;g=j;j=c[N>>2]|0}}while(0);if((g|0)<64){g=255>>>(64-g|0);h=K;h=sg(c[h>>2]|0,c[h+4>>2]|0,56)|0;g=h&~g|g;h=c[N>>2]|0;if(h>>>0<(c[S>>2]|0)>>>0){c[N>>2]=h+1;a[(c[S+4>>2]|0)+h>>0]=g}else a[M>>0]=1;if((g|0)==255&0==0){g=c[N>>2]|0;if(g>>>0<(c[S>>2]|0)>>>0){c[N>>2]=g+1;a[(c[S+4>>2]|0)+g>>0]=0;R=127;break}else{a[M>>0]=1;R=127;break}}else R=127}else R=127}else R=127;while(0);h:do if((R|0)==127){$=K;c[$>>2]=0;c[$+4>>2]=0;c[L>>2]=64;if(!(a[M>>0]|0)){h=c[J>>2]|0;l=c[N>>2]|0;if(l>>>0>1073741824){j=h;g=0;while(1){if((cb[U&7](T,j,1073741824)|0)!=1073741824){h=0;break h}g=g+1073741824|0;k=l-g|0;j=h+g|0;if(k>>>0<=1073741824){h=j;break}}}else{k=l;g=0}if((g|0)==(l|0))h=1;else h=(cb[U&7](T,h,k)|0)==(k|0)}else h=0}while(0);$=S+4|0;g=c[$>>2]|0;c[$>>2]=0;if(g)Pe(g);if(h){g=(cb[U&7](T,34992,2)|0)!=2;if(!(g|f)){h=e+128|0;l=a[h>>0]|0;$=(l&1)==0;h=$?h+1|0:c[e+136>>2]|0;l=$?(l&255)>>>1:c[e+132>>2]|0;if(l>>>0>1073741824){j=h;g=0;while(1){if((cb[U&7](T,j,1073741824)|0)!=1073741824){j=0;break a}g=g+1073741824|0;k=l-g|0;j=h+g|0;if(k>>>0<=1073741824){h=j;break}}}else{k=l;g=0}if((g|0)==(l|0))j=1;else j=(cb[U&7](T,h,k)|0)==(k|0)}else j=g^1}else j=0}else j=0}else j=0}else j=0;while(0);g=c[V>>2]|0;if(g){h=c[W>>2]|0;if((h|0)!=(g|0))c[W>>2]=h+(~(((0-g+(h+-1280)|0)>>>0)/1280|0)*1280|0);Oe(g)}g=c[X>>2]|0;if(!g){i=Z;return j|0}h=c[Y>>2]|0;if((h|0)!=(g|0))c[Y>>2]=h+(~(((0-g+(h+-1280)|0)>>>0)/1280|0)*1280|0);Oe(g);i=Z;return j|0}function Sc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;g=a+4|0;c[g>>2]=0;c[a+8>>2]=0;f=b+4|0;i=c[f>>2]|0;h=c[b>>2]|0;d=i-h|0;e=(d|0)/1028|0;if((i|0)==(h|0))return;if(e>>>0>4177983)Ke(a);d=Me(d)|0;c[g>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(e*1028|0);e=c[b>>2]|0;b=c[f>>2]|0;if((e|0)==(b|0))return;do{tg(d|0,e|0,1028)|0;d=(c[g>>2]|0)+1028|0;c[g>>2]=d;e=e+1028|0}while((e|0)!=(b|0));return}function Tc(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;Ia=i;i=i+4512|0;ta=Ia+3488|0;sa=Ia+2448|0;Ha=Ia+3472|0;q=Ia+2444|0;Ca=Ia+2360|0;Ga=Ia+1320|0;t=Ia+32|0;Ba=Ia+16|0;Ea=Ia;ra=Ia+2376|0;va=Ia+1332|0;ua=Ia+40|0;o=c[b+84>>2]|0;ya=b+80|0;p=c[ya>>2]|0;xa=o-p|0;Aa=(xa|0)/40|0;l=f+4|0;m=c[l>>2]|0;h=c[f>>2]|0;j=(m-h|0)/1280|0;if(Aa>>>0<=j>>>0){if(Aa>>>0>>0?(k=h+(Aa*1280|0)|0,(m|0)!=(k|0)):0)c[l>>2]=m+(~(((0-k+(m+-1280)|0)>>>0)/1280|0)*1280|0)}else Vc(f,Aa-j|0);h=g+4|0;j=c[h>>2]|0;k=c[g>>2]|0;l=(j-k|0)/1280|0;if(Aa>>>0<=l>>>0){if(Aa>>>0>>0?(n=k+(Aa*1280|0)|0,(j|0)!=(n|0)):0)c[h>>2]=j+(~(((0-n+(j+-1280)|0)>>>0)/1280|0)*1280|0)}else Vc(g,Aa-l|0);c[Ha>>2]=0;Da=Ha+4|0;c[Da>>2]=0;c[Ha+8>>2]=0;m=(o|0)==(p|0);if(m)h=0;else{if(Aa>>>0>4177983)Ke(Ha);h=Me(Aa*1028|0)|0;c[Da>>2]=h;c[Ha>>2]=h;k=h+(Aa*1028|0)|0;c[Ha+8>>2]=k;j=Aa;l=h;while(1){pg(l|0,0,1024)|0;c[l+1024>>2]=1;j=j+-1|0;if(!j)break;else l=l+1028|0}c[Da>>2]=k}Nc(b,h);c[q>>2]=Aa;h=Aa*257|0;c[Ga>>2]=0;wa=Ga+4|0;c[wa>>2]=0;c[Ga+8>>2]=0;if(m)h=0;else{if((xa|0)<0)Ke(Ga);j=Me(h)|0;c[wa>>2]=j;c[Ga>>2]=j;c[Ga+8>>2]=j+h;do{a[j>>0]=0;j=(c[wa>>2]|0)+1|0;c[wa>>2]=j;h=h+-1|0}while((h|0)!=0);h=c[Ga>>2]|0}Qc(c[Ha>>2]|0,q,Ca,h)|0;qa=c[q>>2]|0;h=qa+Aa|0;j=c[Da>>2]|0;k=c[Ha>>2]|0;l=(j-k|0)/1028|0;if(h>>>0<=l>>>0){if(h>>>0>>0?(r=k+(h*1028|0)|0,(j|0)!=(r|0)):0)c[Da>>2]=j+(~(((j+-1028-r|0)>>>0)/1028|0)*1028|0)}else Wc(Ha,h-l|0);h=h*257|0;j=c[wa>>2]|0;k=c[Ga>>2]|0;l=j-k|0;if(h>>>0<=l>>>0){if(h>>>0>>0?(s=k+h|0,(j|0)!=(s|0)):0)c[wa>>2]=s}else Lb(Ga,h-l|0);Oc(b,(c[Ha>>2]|0)+(qa*1028|0)|0);c[t>>2]=Aa;Qc((c[Ha>>2]|0)+(qa*1028|0)|0,t,Ba,(c[Ga>>2]|0)+(qa*257|0)|0)|0;oa=(c[t>>2]|0)+qa|0;h=c[Da>>2]|0;k=c[Ha>>2]|0;j=(h-k|0)/1028|0;if(oa>>>0<=j>>>0){if(oa>>>0>>0?(u=k+(oa*1028|0)|0,(h|0)!=(u|0)):0){h=h+(~(((h+-1028-u|0)>>>0)/1028|0)*1028|0)|0;c[Da>>2]=h}}else{Wc(Ha,oa-j|0);h=c[Da>>2]|0;k=c[Ha>>2]|0}if((h|0)==(k|0))h=0;else{n=(h-k|0)/1028|0;o=0;h=0;do{m=1;l=0;j=0;while(1){j=((c[k+(o*1028|0)+(l<<2)>>2]|0)!=0&1)+j|0;l=m+1|0;if((l|0)==257)break;else{pa=m;m=l;l=pa}}h=j+h|0;o=o+1|0}while(o>>>0>>0)}k=(oa*17|0)+2+h|0;h=Aa<<1;na=h+6|0;h=h+10+k|0;c[Ea>>2]=0;pa=Ea+4|0;c[pa>>2]=0;c[Ea+8>>2]=0;if((h|0)<0)Ke(Ea);j=Me(h)|0;c[pa>>2]=j;c[Ea>>2]=j;c[Ea+8>>2]=j+h;do{a[j>>0]=0;j=(c[pa>>2]|0)+1|0;c[pa>>2]=j;h=h+-1|0}while((h|0)!=0);a[c[Ea>>2]>>0]=-1;a[(c[Ea>>2]|0)+1>>0]=-60;a[(c[Ea>>2]|0)+2>>0]=k>>>8;a[(c[Ea>>2]|0)+3>>0]=k;if(!oa)j=4;else{H=ta+4|0;I=ra+4|0;J=ta+8|0;K=ra+8|0;L=ta+12|0;M=ra+12|0;N=ta+16|0;O=ra+16|0;P=ta+20|0;Q=ra+20|0;R=ta+24|0;S=ra+24|0;T=ta+28|0;U=ra+28|0;V=ta+32|0;W=ra+32|0;X=ta+36|0;Y=ra+36|0;Z=ta+40|0;_=ra+40|0;$=ta+44|0;aa=ra+44|0;ba=ta+48|0;ca=ra+48|0;da=ta+52|0;ea=ra+52|0;fa=ta+56|0;ga=ra+56|0;ha=ta+60|0;ia=ra+60|0;ja=ta+64|0;ka=(xa|0)>0;la=ra+64|0;ma=0;G=4;while(1){F=ma>>>0>>0;n=F?0:qa;h=ra;j=h+68|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));pg(va|0,0,1028)|0;k=ma*257|0;l=c[Ga>>2]|0;j=0;do{h=a[l+(j+k)>>0]|0;if(h<<24>>24){E=ra+((h&255)<<2)|0;c[E>>2]=(c[E>>2]|0)+1}j=j+1|0}while((j|0)!=257);h=ta;j=h+60|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));j=c[ra>>2]|0;c[H>>2]=j;r=c[I>>2]|0;j=r+j|0;c[J>>2]=j;s=c[K>>2]|0;j=s+j|0;c[L>>2]=j;b=c[M>>2]|0;j=b+j|0;c[N>>2]=j;t=c[O>>2]|0;j=t+j|0;c[P>>2]=j;u=c[Q>>2]|0;j=u+j|0;c[R>>2]=j;v=c[S>>2]|0;j=v+j|0;c[T>>2]=j;w=c[U>>2]|0;j=w+j|0;c[V>>2]=j;x=c[W>>2]|0;j=x+j|0;c[X>>2]=j;y=c[Y>>2]|0;j=y+j|0;c[Z>>2]=j;z=c[_>>2]|0;j=z+j|0;c[$>>2]=j;A=c[aa>>2]|0;j=A+j|0;c[ba>>2]=j;B=c[ca>>2]|0;j=B+j|0;c[da>>2]=j;C=c[ea>>2]|0;j=C+j|0;c[fa>>2]=j;D=c[ga>>2]|0;j=D+j|0;c[ha>>2]=j;E=c[ia>>2]|0;c[ja>>2]=E+j;j=0;do{h=a[l+(j+k)>>0]|0;if(h<<24>>24){p=ta+((h&255)<<2)|0;q=c[p>>2]|0;c[p>>2]=q+1;c[va+(q<<2)>>2]=j}j=j+1|0}while((j|0)!=257);pg(ua|0,-1,256)|0;m=r;h=1;j=0;while(1){if(m){k=m;l=j;while(1){k=k+-1|0;c[sa+(l<<2)>>2]=h;if(!k)break;else l=l+1|0}j=m+j|0}h=h+1|0;if((h|0)==17)break;m=c[ra+(h<<2)>>2]|0}q=ma-n|0;if(j){p=j+-1|0;c[sa+(p<<2)>>2]=0;o=c[sa>>2]|0;if(o){n=o;h=0;k=0;l=o;while(1){if((n|0)!=(l|0))do{h=h<<1;l=l+1|0}while((n|0)!=(l|0));while(1){m=k+1|0;c[ta+(k<<2)>>2]=h;h=h+1|0;l=c[sa+(m<<2)>>2]|0;if((l|0)==(n|0))k=m;else{k=m;break}}m=n+1|0;if(!l)break;else{n=l;h=h<<1;l=m}}}if((j|0)>1?(n=c[va>>2]|0,a[ua+n>>0]=o,c[ua+256+(n<<2)>>2]=c[ta>>2],(p|0)!=1):0){h=1;do{o=c[va+(h<<2)>>2]|0;a[ua+o>>0]=c[sa+(h<<2)>>2];c[ua+256+(o<<2)>>2]=c[ta+(h<<2)>>2];h=h+1|0}while((h|0)!=(p|0))}}if(ka)if(F){h=0;do{if((c[Ca+(h<<2)>>2]|0)==(q|0))tg((c[f>>2]|0)+(h*1280|0)|0,ua|0,1280)|0;h=h+1|0}while((h|0)<(Aa|0))}else{h=0;do{if((c[Ba+(h<<2)>>2]|0)==(q|0))tg((c[g>>2]|0)+(h*1280|0)|0,ua|0,1280)|0;h=h+1|0}while((h|0)<(Aa|0))}do if(!(c[la>>2]|0))if(!E)if(!D)if(!C)if(!B){if(A){k=11;break}if(z){k=10;break}if(y){k=9;break}if(x){k=8;break}if(w){k=7;break}if(v){k=6;break}if(u){k=5;break}if(t){k=4;break}if(b){k=3;break}if(s){k=2;break}k=(r|0)!=0&1}else k=12;else k=13;else k=14;else k=15;else k=16;while(0);j=ra+(k<<2)|0;c[j>>2]=(c[j>>2]|0)+-1;j=0;h=0;while(1){h=(c[ra+(j<<2)>>2]|0)+h|0;if((j|0)==(k|0))break;else j=j+1|0}a[(c[Ea>>2]|0)+G>>0]=F?ma:ma+16-qa|0;a[(c[Ea>>2]|0)+(G+1)>>0]=c[I>>2];a[(c[Ea>>2]|0)+(G+2)>>0]=c[K>>2];a[(c[Ea>>2]|0)+(G+3)>>0]=c[M>>2];a[(c[Ea>>2]|0)+(G+4)>>0]=c[O>>2];a[(c[Ea>>2]|0)+(G+5)>>0]=c[Q>>2];a[(c[Ea>>2]|0)+(G+6)>>0]=c[S>>2];a[(c[Ea>>2]|0)+(G+7)>>0]=c[U>>2];a[(c[Ea>>2]|0)+(G+8)>>0]=c[W>>2];a[(c[Ea>>2]|0)+(G+9)>>0]=c[Y>>2];a[(c[Ea>>2]|0)+(G+10)>>0]=c[_>>2];a[(c[Ea>>2]|0)+(G+11)>>0]=c[aa>>2];a[(c[Ea>>2]|0)+(G+12)>>0]=c[ca>>2];a[(c[Ea>>2]|0)+(G+13)>>0]=c[ea>>2];a[(c[Ea>>2]|0)+(G+14)>>0]=c[ga>>2];a[(c[Ea>>2]|0)+(G+15)>>0]=c[ia>>2];a[(c[Ea>>2]|0)+(G+16)>>0]=c[la>>2];j=G+17|0;if(h){k=h+17|0;l=0;while(1){a[(c[Ea>>2]|0)+j>>0]=c[va+(l<<2)>>2];l=l+1|0;if((l|0)==(h|0))break;else j=j+1|0}j=k+G|0}ma=ma+1|0;if((ma|0)==(oa|0))break;else G=j}}a[(c[Ea>>2]|0)+j>>0]=-1;a[(c[Ea>>2]|0)+(j+1)>>0]=-38;a[(c[Ea>>2]|0)+(j+2)>>0]=na>>>8;a[(c[Ea>>2]|0)+(j+3)>>0]=na;h=j+5|0;a[(c[Ea>>2]|0)+(j+4)>>0]=Aa;if((xa|0)>0){j=j+((xa|0)>40?Aa<<1:2)|0;k=0;while(1){a[(c[Ea>>2]|0)+h>>0]=c[(c[ya>>2]|0)+(k*40|0)>>2];a[(c[Ea>>2]|0)+(h+1)>>0]=c[Ca+(k<<2)>>2]<<4|c[Ba+(k<<2)>>2];k=k+1|0;if((k|0)>=(Aa|0))break;else h=h+2|0}h=j+5|0}a[(c[Ea>>2]|0)+h>>0]=0;a[(c[Ea>>2]|0)+(h+1)>>0]=63;m=h+3|0;a[(c[Ea>>2]|0)+(h+2)>>0]=0;j=c[Ea>>2]|0;if((m|0)!=((c[pa>>2]|0)-j|0))za(34994,34912,451,35013);a:do if(m>>>0>1073741824){k=j;h=0;while(1){if((cb[d&7](e,k,1073741824)|0)!=1073741824){k=0;break a}h=h+1073741824|0;l=m-h|0;k=j+h|0;if(l>>>0<=1073741824){j=k;Fa=98;break}}}else{l=m;h=0;Fa=98}while(0);if((Fa|0)==98)if((h|0)==(m|0))k=1;else k=(cb[d&7](e,j,l)|0)==(l|0);h=c[Ea>>2]|0;if(h){if((c[pa>>2]|0)!=(h|0))c[pa>>2]=h;Oe(h)}h=c[Ga>>2]|0;if(h){if((c[wa>>2]|0)!=(h|0))c[wa>>2]=h;Oe(h)}h=c[Ha>>2]|0;if(!h){i=Ia;return k|0}j=c[Da>>2]|0;if((j|0)!=(h|0))c[Da>>2]=j+(~(((j+-1028-h|0)>>>0)/1028|0)*1028|0);Oe(h);i=Ia;return k|0}function Uc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=b+24|0;g=(c[i>>2]|0)-d|0;c[i>>2]=g;e=qg(e|0,f|0,g|0)|0;h=b+16|0;f=h;e=e|c[f>>2];f=C|c[f+4>>2];d=h;c[d>>2]=e;c[d+4>>2]=f;if((g|0)>=17)return;j=(e|65535)^-65536;g=~f;d=rg(j|0,g|0,-16843009,-16843010)|0;do if(((j&-2139095040^-2139095040)&d|0)==0&((g&-2139062144^-2139062144)&C|0)==0){d=b+8|0;g=c[d>>2]|0;if((g+6|0)>>>0<(c[b>>2]|0)>>>0){f=sg(e|0,f|0,56)|0;j=b+4|0;a[(c[j>>2]|0)+g>>0]=f;b=h;b=sg(c[b>>2]|0,c[b+4>>2]|0,48)|0;a[(c[j>>2]|0)+((c[d>>2]|0)+1)>>0]=b;b=h;b=sg(c[b>>2]|0,c[b+4>>2]|0,40)|0;a[(c[j>>2]|0)+((c[d>>2]|0)+2)>>0]=b;a[(c[j>>2]|0)+((c[d>>2]|0)+3)>>0]=c[h+4>>2];b=h;b=sg(c[b>>2]|0,c[b+4>>2]|0,24)|0;a[(c[j>>2]|0)+((c[d>>2]|0)+4)>>0]=b;b=h;b=sg(c[b>>2]|0,c[b+4>>2]|0,16)|0;a[(c[j>>2]|0)+((c[d>>2]|0)+5)>>0]=b;c[d>>2]=(c[d>>2]|0)+6;break}else{a[b+28>>0]=1;break}}else{e=sg(e|0,f|0,56)|0;d=b+8|0;f=c[d>>2]|0;if(f>>>0<(c[b>>2]|0)>>>0){c[d>>2]=f+1;a[(c[b+4>>2]|0)+f>>0]=e}else a[b+28>>0]=1;do if((e|0)==255&(C|0)==0){e=c[d>>2]|0;if(e>>>0<(c[b>>2]|0)>>>0){c[d>>2]=e+1;a[(c[b+4>>2]|0)+e>>0]=0;break}else{a[b+28>>0]=1;break}}while(0);e=h;e=sg(c[e>>2]|0,c[e+4>>2]|0,48)|0;f=c[d>>2]|0;if(f>>>0<(c[b>>2]|0)>>>0){c[d>>2]=f+1;a[(c[b+4>>2]|0)+f>>0]=e}else a[b+28>>0]=1;do if((e&255|0)==255&0==0){e=c[d>>2]|0;if(e>>>0<(c[b>>2]|0)>>>0){c[d>>2]=e+1;a[(c[b+4>>2]|0)+e>>0]=0;break}else{a[b+28>>0]=1;break}}while(0);e=h;e=sg(c[e>>2]|0,c[e+4>>2]|0,40)|0;f=c[d>>2]|0;if(f>>>0<(c[b>>2]|0)>>>0){c[d>>2]=f+1;a[(c[b+4>>2]|0)+f>>0]=e}else a[b+28>>0]=1;do if((e&255|0)==255&0==0){e=c[d>>2]|0;if(e>>>0<(c[b>>2]|0)>>>0){c[d>>2]=e+1;a[(c[b+4>>2]|0)+e>>0]=0;break}else{a[b+28>>0]=1;break}}while(0);e=c[h+4>>2]|0;f=c[d>>2]|0;if(f>>>0<(c[b>>2]|0)>>>0){c[d>>2]=f+1;a[(c[b+4>>2]|0)+f>>0]=e}else a[b+28>>0]=1;do if((e&255|0)==255&0==0){e=c[d>>2]|0;if(e>>>0<(c[b>>2]|0)>>>0){c[d>>2]=e+1;a[(c[b+4>>2]|0)+e>>0]=0;break}else{a[b+28>>0]=1;break}}while(0);e=h;e=sg(c[e>>2]|0,c[e+4>>2]|0,24)|0;f=c[d>>2]|0;if(f>>>0<(c[b>>2]|0)>>>0){c[d>>2]=f+1;a[(c[b+4>>2]|0)+f>>0]=e}else a[b+28>>0]=1;do if((e&255|0)==255&0==0){e=c[d>>2]|0;if(e>>>0<(c[b>>2]|0)>>>0){c[d>>2]=e+1;a[(c[b+4>>2]|0)+e>>0]=0;break}else{a[b+28>>0]=1;break}}while(0);e=h;e=sg(c[e>>2]|0,c[e+4>>2]|0,16)|0;f=c[d>>2]|0;if(f>>>0<(c[b>>2]|0)>>>0){c[d>>2]=f+1;a[(c[b+4>>2]|0)+f>>0]=e}else a[b+28>>0]=1;if((e&255|0)==255&0==0){e=c[d>>2]|0;if(e>>>0<(c[b>>2]|0)>>>0){c[d>>2]=e+1;a[(c[b+4>>2]|0)+e>>0]=0;break}else{a[b+28>>0]=1;break}}}while(0);b=h;b=qg(c[b>>2]|0,c[b+4>>2]|0,48)|0;j=h;c[j>>2]=b;c[j+4>>2]=C;c[i>>2]=(c[i>>2]|0)+48;return}function Vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=a+8|0;f=c[j>>2]|0;k=a+4|0;d=c[k>>2]|0;e=d;if(((f-e|0)/1280|0)>>>0>=b>>>0){do{pg(d|0,0,1280)|0;d=(c[k>>2]|0)+1280|0;c[k>>2]=d;b=b+-1|0}while((b|0)!=0);return}d=c[a>>2]|0;e=((e-d|0)/1280|0)+b|0;if(e>>>0>3355443)Ke(a);g=d;d=(f-g|0)/1280|0;if(d>>>0<1677721){d=d<<1;d=d>>>0>>0?e:d;e=((c[k>>2]|0)-g|0)/1280|0;if(!d){f=0;h=0}else i=8}else{d=3355443;e=((c[k>>2]|0)-g|0)/1280|0;i=8}if((i|0)==8){f=d;h=Me(d*1280|0)|0}d=h+(e*1280|0)|0;g=h+(f*1280|0)|0;f=d;do{pg(f|0,0,1280)|0;f=d+1280|0;d=f;b=b+-1|0}while((b|0)!=0);b=c[a>>2]|0;f=(c[k>>2]|0)-b|0;i=h+((((f|0)/-1280|0)+e|0)*1280|0)|0;tg(i|0,b|0,f|0)|0;c[a>>2]=i;c[k>>2]=d;c[j>>2]=g;if(!b)return;Oe(b);return}function Wc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=a+8|0;f=c[j>>2]|0;k=a+4|0;d=c[k>>2]|0;e=d;if(((f-e|0)/1028|0)>>>0>=b>>>0){do{pg(d|0,0,1024)|0;c[d+1024>>2]=1;d=(c[k>>2]|0)+1028|0;c[k>>2]=d;b=b+-1|0}while((b|0)!=0);return}d=c[a>>2]|0;e=((e-d|0)/1028|0)+b|0;if(e>>>0>4177983)Ke(a);g=d;d=(f-g|0)/1028|0;if(d>>>0<2088991){d=d<<1;d=d>>>0>>0?e:d;e=((c[k>>2]|0)-g|0)/1028|0;if(!d){f=0;h=0}else i=8}else{d=4177983;e=((c[k>>2]|0)-g|0)/1028|0;i=8}if((i|0)==8){f=d;h=Me(d*1028|0)|0}d=h+(e*1028|0)|0;g=h+(f*1028|0)|0;f=d;do{pg(f|0,0,1024)|0;c[f+1024>>2]=1;f=d+1028|0;d=f;b=b+-1|0}while((b|0)!=0);b=c[a>>2]|0;f=(c[k>>2]|0)-b|0;i=h+((((f|0)/-1028|0)+e|0)*1028|0)|0;tg(i|0,b|0,f|0)|0;c[a>>2]=i;c[k>>2]=d;c[j>>2]=g;if(!b)return;Oe(b);return}function Xc(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+32|0;o=r+12|0;q=r;c[a+8>>2]=d;c[a+12>>2]=e;l=d<<3;l=((c[a>>2]|0)+-1+l|0)/(l|0)|0;c[a+16>>2]=l;p=a+4|0;d=e<<3;d=((c[p>>2]|0)+-1+d|0)/(d|0)|0;c[a+20>>2]=d;d=_(l,d)|0;c[a+24>>2]=d;l=a+28|0;e=d<<6;c[o>>2]=0;m=o+4|0;c[m>>2]=0;c[o+8>>2]=0;do if(d)if((d|0)<0)Ke(o);else{j=d<<7;k=Me(j)|0;c[o>>2]=k;n=k+(e<<1)|0;c[o+8>>2]=n;pg(k|0,0,j|0)|0;c[m>>2]=n;break}else{n=0;k=0}while(0);e=c[l>>2]|0;f=e;j=a+32|0;if(!e){g=a+36|0;h=o+8|0;e=k;f=n;d=n}else{d=c[j>>2]|0;if((d|0)!=(e|0))c[j>>2]=d+(~((d+-2-f|0)>>>1)<<1);Oe(e);g=a+36|0;c[g>>2]=0;c[j>>2]=0;c[l>>2]=0;d=o+8|0;h=d;e=c[o>>2]|0;f=c[m>>2]|0;d=c[d>>2]|0}c[l>>2]=e;c[j>>2]=f;c[g>>2]=d;c[h>>2]=0;c[m>>2]=0;c[o>>2]=0;m=a+40|0;d=_(c[p>>2]|0,c[a>>2]|0)|0;c[q>>2]=0;l=q+4|0;c[l>>2]=0;c[q+8>>2]=0;if(!d){g=0;h=0}else{if((d|0)<0)Ke(q);e=Me(d<<1)|0;c[l>>2]=e;c[q>>2]=e;f=e+(d<<1)|0;c[q+8>>2]=f;h=e;g=f;while(1){b[e>>1]=2048;d=d+-1|0;if(!d)break;else e=e+2|0}c[l>>2]=f}e=c[m>>2]|0;f=e;k=a+44|0;if(!e){f=a+48|0;j=q+8|0;e=g;d=g}else{d=c[k>>2]|0;if((d|0)!=(e|0))c[k>>2]=d+(~((d+-2-f|0)>>>1)<<1);Oe(e);f=a+48|0;c[f>>2]=0;c[k>>2]=0;c[m>>2]=0;d=q+8|0;j=d;h=c[q>>2]|0;e=c[l>>2]|0;d=c[d>>2]|0}c[m>>2]=h;c[k>>2]=e;c[f>>2]=d;c[j>>2]=0;c[l>>2]=0;c[q>>2]=0;d=0;do{c[a+52+(d<<2)>>2]=1;d=d+1|0}while((d|0)!=64);i=r;return}function Yc(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+16>>2]|0;if((g|0)<=(d|0))za(35040,35067,61,35123);if((c[a+20>>2]|0)>(e|0)){g=(_(g,e)|0)+d<<6;g=(c[a+28>>2]|0)+(g<<1)|0;d=f+128|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(d|0));return}else za(35137,35067,62,35123)}function Zc(b,d,f,g,h,i,j){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;if((d|0)<=-1)za(35165,35067,69,35175);if((f|0)<=-1)za(35184,35067,70,35175);l=c[b>>2]|0;if((l|0)<=(d|0))za(35194,35067,71,35175);k=c[b+4>>2]|0;if((k|0)<=(f|0))za(35208,35067,72,35175);t=h+f|0;a:do if((((k|0)<(t|0)?k:t)|0)>(f|0)){p=g+d|0;q=0-j|0;r=b+40|0;s=~d;h=(t|0)>(k|0)?k:t;k=f;while(1){if((((l|0)<(p|0)?l:p)|0)>(d|0)){n=(_(l,k)|0)+d|0;l=(p|0)>(l|0)?l:p;m=_(s-~l|0,j)|0;f=i;o=d;while(1){a[f>>0]=(8-(o&1)+(e[(c[r>>2]|0)+(n<<1)>>1]|0)|0)>>>4;o=o+1|0;if((o|0)==(l|0))break;else{f=f+j|0;n=n+1|0}}i=i+m|0}else l=d;if((p|0)>(l|0)){m=_(p-l|0,j)|0;f=i;while(1){a[f>>0]=a[f+q>>0]|0;l=l+1|0;if((l|0)==(p|0))break;else f=f+j|0}i=i+m|0}k=k+1|0;if((k|0)==(h|0))break a;l=c[b>>2]|0}}else h=f;while(0);if((h|0)>=(t|0))return;f=_(0-g|0,j)|0;if((g|0)<=0)return;m=_(j,g)|0;while(1){k=i;l=0;while(1){a[k>>0]=a[k+f>>0]|0;l=l+1|0;if((l|0)==(g|0))break;else k=k+j|0}h=h+1|0;if((h|0)==(t|0))break;else i=i+m|0}return}function _c(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+640|0;C=E+512|0;D=E;if((c[a+8>>2]|0)!=1)za(35223,35067,100,35238);if((c[a+12>>2]|0)!=1)za(35252,35067,101,35238);A=a+20|0;j=c[A>>2]|0;if((j|0)<=0){i=E;return}B=a+16|0;y=a+28|0;z=a+4|0;f=c[B>>2]|0;x=0;a:while(1){if((f|0)>0){w=x<<3;v=0;do{if((f|0)<=(v|0)){f=10;break a}if((c[A>>2]|0)<=(x|0)){f=12;break a}j=(_(f,x)|0)+v<<6;f=C;j=(c[y>>2]|0)+(j<<1)|0;k=f+128|0;do{b[f>>1]=b[j>>1]|0;f=f+2|0;j=j+2|0}while((f|0)<(k|0));f=0;do{h[D+(f<<3)>>3]=+(b[C+(f<<1)>>1]|0);f=f+1|0}while((f|0)!=64);lc(D);j=v<<3;k=c[z>>2]|0;l=j|1;m=j|2;n=j|3;o=j|4;p=j|5;q=j|6;r=j|7;u=0;do{s=u+w|0;t=u<<3;if((s|0)<(k|0)){f=c[a>>2]|0;if((j|0)<(f|0))g[d+((_((_(f,s)|0)+j|0,e)|0)<<2)>>2]=+h[D+(t<<3)>>3]+128.0;f=c[a>>2]|0;if((l|0)<(f|0))g[d+((_((_(f,s)|0)+l|0,e)|0)<<2)>>2]=+h[D+((t|1)<<3)>>3]+128.0;f=c[a>>2]|0;if((m|0)<(f|0))g[d+((_((_(f,s)|0)+m|0,e)|0)<<2)>>2]=+h[D+((t|2)<<3)>>3]+128.0;f=c[a>>2]|0;if((n|0)<(f|0))g[d+((_((_(f,s)|0)+n|0,e)|0)<<2)>>2]=+h[D+((t|3)<<3)>>3]+128.0;f=c[a>>2]|0;if((o|0)<(f|0))g[d+((_((_(f,s)|0)+o|0,e)|0)<<2)>>2]=+h[D+((t|4)<<3)>>3]+128.0;f=c[a>>2]|0;if((p|0)<(f|0))g[d+((_((_(f,s)|0)+p|0,e)|0)<<2)>>2]=+h[D+((t|5)<<3)>>3]+128.0;f=c[a>>2]|0;if((q|0)<(f|0))g[d+((_((_(f,s)|0)+q|0,e)|0)<<2)>>2]=+h[D+((t|6)<<3)>>3]+128.0;f=c[a>>2]|0;if((r|0)<(f|0))g[d+((_((_(f,s)|0)+r|0,e)|0)<<2)>>2]=+h[D+((t|7)<<3)>>3]+128.0}u=u+1|0}while((u|0)!=8);v=v+1|0;f=c[B>>2]|0}while((v|0)<(f|0));j=c[A>>2]|0}x=x+1|0;if((x|0)>=(j|0)){f=23;break}}if((f|0)==10)za(35040,35067,61,35123);else if((f|0)==12)za(35137,35067,62,35123);else if((f|0)==23){i=E;return}}function $c(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+64|0;l=m;g=c[a+16>>2]|0;if((g|0)<=(d|0))za(35040,35067,125,35267);if((c[a+20>>2]|0)>(e|0)){h=(_(g,e)|0)+d<<6;j=a+28|0;k=(c[j>>2]|0)+(h<<1)|0;g=k+128|0;do{b[k>>1]=b[f>>1]|0;k=k+2|0;f=f+2|0}while((k|0)<(g|0));wc((c[j>>2]|0)+(h<<1)|0,l);ad(a,d,e,l);i=m;return}else za(35137,35067,126,35267)} + +// EMSCRIPTEN_END_FUNCS +var cb=[Sg,bf,Zf,Qf,Pf,Rf,Dd,Sg];var db=[Tg,jf,hf,Tg];var eb=[Ug,Sb];var fb=[Vg,hc,Qb,Vg];var gb=[Wg,dc,ec,Qe,Re,Ye,$e,Ze,_e,af,fe,ac,qf,Yf,Wg,Wg];var hb=[Xg,Rb];var ib=[Yg,Ob,gc,Yg];var jb=[Zg,Se,Of,Zg];var kb=[_g,fc];var lb=[$g,of,pf,$g];var mb=[ah,lf,kf,ah];var nb=[bh,oc];var ob=[ch,Pb];var pb=[dh,df,ef,dh];return{_guetzliGetVersion:zb,_guetzli_encode_Gray:Fb,_guetzli_string_new:Ab,_bitshift64Lshr:sg,_bitshift64Shl:qg,_fflush:Bf,_guetzli_encode_RGBA:Jb,___cxa_is_pointer_type:nf,_guetzli_string_data:Eb,_memset:pg,_guetzli_string_resize:Cb,_memcpy:tg,_i64Subtract:og,_guetzli_encode_RGB:Hb,_i64Add:rg,_guetzli_string_delete:Bb,___errno_location:tf,___cxa_can_catch:mf,_free:cg,_memmove:ug,_guetzli_string_size:Db,_malloc:bg,runPostSets:ng,stackAlloc:qb,stackSave:rb,stackRestore:sb,establishStackSpace:tb,setThrew:ub,setTempRet0:xb,getTempRet0:yb,dynCall_iiii:Eg,dynCall_viiiii:Fg,dynCall_dii:Gg,dynCall_di:Hg,dynCall_vi:Ig,dynCall_viiidiiii:Jg,dynCall_vii:Kg,dynCall_ii:Lg,dynCall_iid:Mg,dynCall_v:Ng,dynCall_viiiiii:Og,dynCall_iii:Pg,dynCall_diiii:Qg,dynCall_viiii:Rg}}) + + +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _guetzliGetVersion=Module["_guetzliGetVersion"]=asm["_guetzliGetVersion"];var _guetzli_encode_Gray=Module["_guetzli_encode_Gray"]=asm["_guetzli_encode_Gray"];var _guetzli_string_new=Module["_guetzli_string_new"]=asm["_guetzli_string_new"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _fflush=Module["_fflush"]=asm["_fflush"];var _guetzli_encode_RGBA=Module["_guetzli_encode_RGBA"]=asm["_guetzli_encode_RGBA"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _guetzli_string_data=Module["_guetzli_string_data"]=asm["_guetzli_string_data"];var _memset=Module["_memset"]=asm["_memset"];var _guetzli_string_resize=Module["_guetzli_string_resize"]=asm["_guetzli_string_resize"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _guetzli_encode_RGB=Module["_guetzli_encode_RGB"]=asm["_guetzli_encode_RGB"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _guetzli_string_delete=Module["_guetzli_string_delete"]=asm["_guetzli_string_delete"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _memmove=Module["_memmove"]=asm["_memmove"];var _guetzli_string_size=Module["_guetzli_string_size"]=asm["_guetzli_string_size"];var _malloc=Module["_malloc"]=asm["_malloc"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_dii=Module["dynCall_dii"]=asm["dynCall_dii"];var dynCall_di=Module["dynCall_di"]=asm["dynCall_di"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_viiidiiii=Module["dynCall_viiidiiii"]=asm["dynCall_viiidiiii"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iid=Module["dynCall_iid"]=asm["dynCall_iid"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_diiii=Module["dynCall_diiii"]=asm["dynCall_diiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run();if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(module["exports"]!==Module){module["exports"]=Module}} + + + + diff --git a/dist/lib/guetzli-cli.d.ts b/dist/lib/guetzli-cli.d.ts new file mode 100644 index 0000000..331acc3 --- /dev/null +++ b/dist/lib/guetzli-cli.d.ts @@ -0,0 +1,3 @@ +declare const fs: any; +declare const guetzli: any; +declare function main(args: string[]): void; diff --git a/dist/lib/guetzli-cli.js b/dist/lib/guetzli-cli.js new file mode 100644 index 0000000..56d434a --- /dev/null +++ b/dist/lib/guetzli-cli.js @@ -0,0 +1,31 @@ +// Copyright 2017 . All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +var fs = require('fs'); +var guetzli = require('./main'); +if (require.main === module) { + main(process.argv.splice(2)); +} +function main(args) { + if (args.length == 1 && args[0] == '-v') { + console.log('guetzli-' + guetzli.version); + process.exit(0); + } + if (args.length == 1 && args[0] == '-h') { + console.log('Usage: guetzli input_filename output_filename'); + process.exit(0); + } + if (args.length != 2) { + process.exit(0); + } + // load png + var data = fs.readFileSync(args[0]); + // decode png image + var m = guetzli.decodePng32(data); + // encode jpg image + var jpegData = guetzli.encodeRGBA(m.pix, m.width, m.height, 0, guetzli.defaultQuality); + // save jpg + fs.writeFileSync(args[1], jpegData); + // OK + console.log('Done'); +} diff --git a/dist/lib/main.d.ts b/dist/lib/main.d.ts new file mode 100644 index 0000000..8038221 --- /dev/null +++ b/dist/lib/main.d.ts @@ -0,0 +1,18 @@ +export declare const version: string; +export declare const minQuality: number; +export declare const maxQuality: number; +export declare const defaultQuality: number; +export interface Image { + width: number; + height: number; + channels: number; + depth: number; + stride: number; + pix: Uint8Array; +} +export declare function encodeImage(m: Image, quality?: number): Uint8Array; +export declare function encodeGray(pix: Uint8Array, width: number, height: number, stride: number, quality: number): Uint8Array; +export declare function encodeRGB(pix: Uint8Array, width: number, height: number, stride: number, quality: number): Uint8Array; +export declare function encodeRGBA(pix: Uint8Array, width: number, height: number, stride: number, quality: number): Uint8Array; +export declare function decodePng24(data: Uint8Array): Image; +export declare function decodePng32(data: Uint8Array): Image; diff --git a/dist/lib/main.js b/dist/lib/main.js new file mode 100644 index 0000000..0a8477e --- /dev/null +++ b/dist/lib/main.js @@ -0,0 +1,96 @@ +// Copyright 2017 . All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +"use strict"; +exports.__esModule = true; +var ccapi = function () { + try { + return require('../build/Release/guetzli.node'); + } + catch (err) { + return require('../build/Debug/guetzli.node'); + } +}(); +var assert = require('assert'); +var utils = require('./utils'); +exports.version = ccapi.getVersion(); +exports.minQuality = 84; +exports.maxQuality = 110; +exports.defaultQuality = 95; +function encodeImage(m, quality) { + if (quality === void 0) { quality = exports.defaultQuality; } + switch (m.channels) { + case 1: return encodeGray(m.pix, m.width, m.height, m.stride, quality); + case 3: return encodeRGB(m.pix, m.width, m.height, m.stride, quality); + case 4: return encodeRGBA(m.pix, m.width, m.height, m.stride, quality); + } + throw "guetzli.encodeImage: unknown channels:" + m.channels; +} +exports.encodeImage = encodeImage; +function encodeGray(pix, width, height, stride, quality) { + assert(utils.isBuffer(pix)); + assert((width | 0) > 0 && (height | 0) > 0); + assert((stride | 0) == 0 || (stride | 0) >= (width | 0) * 1); + assert((quality | 0) >= this.minQuality && (quality | 0) <= this.maxQuality); + return ccapi.encodeGray(pix, width, height, stride, quality); +} +exports.encodeGray = encodeGray; +function encodeRGB(pix, width, height, stride, quality) { + assert(utils.isBuffer(pix)); + assert((width | 0) > 0 && (height | 0) > 0); + assert((stride | 0) == 0 || (stride | 0) >= (width | 0) * 3); + assert((quality | 0) >= this.minQuality && (quality | 0) <= this.maxQuality); + return ccapi.encodeRGB(pix, width, height, stride, quality); +} +exports.encodeRGB = encodeRGB; +function encodeRGBA(pix, width, height, stride, quality) { + assert(utils.isBuffer(pix)); + assert((width | 0) > 0 && (height | 0) > 0); + assert((stride | 0) == 0 || (stride | 0) >= (width | 0) * 4); + assert((quality | 0) >= this.minQuality && (quality | 0) <= this.maxQuality); + return ccapi.encodeRGBA(pix, width, height, stride, quality); +} +exports.encodeRGBA = encodeRGBA; +function decodePng24(data) { + assert(utils.isBuffer(data)); + assert(data.length > 0); + var m = ccapi.decodePng24(data); + assert(utils.isBuffer(m.pix)); + assert(m.width > 0 && m.height > 0); + assert(m.channels > 0 && m.depth > 0); + return { + width: m.width, + height: m.height, + channels: m.channels, + depth: m.depth, + stride: m.width * 3, + pix: m.pix + }; +} +exports.decodePng24 = decodePng24; +function decodePng32(data) { + assert(utils.isBuffer(data)); + assert(data.length > 0); + var m = ccapi.decodePng32(data); + assert(utils.isBuffer(m.pix)); + assert(m.width > 0 && m.height > 0); + assert(m.channels > 0 && m.depth > 0); + return { + width: m.width, + height: m.height, + channels: m.channels, + depth: m.depth, + stride: m.width * 4, + pix: m.pix + }; +} +exports.decodePng32 = decodePng32; +if (require.main === module) { + main(process.argv.splice(2)); +} +function main(args) { + if (args.length == 1 && args[0] == '-v') { + console.log('guetzli-' + ccapi.getVersion()); + process.exit(0); + } +} diff --git a/dist/lib/test.d.ts b/dist/lib/test.d.ts new file mode 100644 index 0000000..6e67a0b --- /dev/null +++ b/dist/lib/test.d.ts @@ -0,0 +1 @@ +declare let pkg: any; diff --git a/dist/lib/test.js b/dist/lib/test.js new file mode 100644 index 0000000..31216b5 --- /dev/null +++ b/dist/lib/test.js @@ -0,0 +1,9 @@ +// Copyright 2017 . All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +var pkg = require('./main'); +exports.testVersion = function (t) { + t.ok(pkg.version == '1.0.1'); + t.ok(/^\d+\.\d+\.\d+$/.test(pkg.version)); + t.done(); +}; diff --git a/dist/lib/utils.d.ts b/dist/lib/utils.d.ts new file mode 100644 index 0000000..cae384d --- /dev/null +++ b/dist/lib/utils.d.ts @@ -0,0 +1,5 @@ +export declare function isNode(): boolean; +export declare const is_node: boolean; +export declare function isUint8Array(obj: any): boolean; +export declare function isArrayBuffer(obj: any): boolean; +export declare function isBuffer(obj: any): boolean; diff --git a/dist/lib/utils.js b/dist/lib/utils.js new file mode 100644 index 0000000..76e2446 --- /dev/null +++ b/dist/lib/utils.js @@ -0,0 +1,32 @@ +// Copyright 2017 . All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +"use strict"; +exports.__esModule = true; +function isNode() { + if (typeof process === 'object') { + if (typeof process.versions === 'object') { + if (typeof process.versions.node !== 'undefined') { + return true; + } + } + } + return false; +} +exports.isNode = isNode; +exports.is_node = isNode(); +function isUint8Array(obj) { + return obj instanceof Uint8Array && (!exports.is_node || !Buffer.isBuffer(obj)); +} +exports.isUint8Array = isUint8Array; +function isArrayBuffer(obj) { + return obj instanceof ArrayBuffer; +} +exports.isArrayBuffer = isArrayBuffer; +function isBuffer(obj) { + if (!exports.is_node) { + return false; + } + return Buffer.isBuffer(obj); +} +exports.isBuffer = isBuffer; diff --git a/dist/testdata/bees.png b/dist/testdata/bees.png new file mode 100644 index 0000000..11640c7 Binary files /dev/null and b/dist/testdata/bees.png differ diff --git a/dist/testdata/lena.jpg b/dist/testdata/lena.jpg new file mode 100644 index 0000000..f06aa74 Binary files /dev/null and b/dist/testdata/lena.jpg differ diff --git a/package.json b/package.json index af9e988..a1ca24c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": false, "name": "guetzli-js", - "version": "1.0.2", + "version": "1.0.6", "description": "Guetzli perceptual JPEG encoder", "author": "ChaiShushan (https://github.com/chai2010)", "keywords": [ @@ -14,13 +14,13 @@ "type": "git", "url": "git://github.com/chai2010/guetzli-js.git" }, - "main": "dist/lib/main.js", + "main": "./dist/lib/main.js", "bin": { - "guetzli-cli": "dist/lib/guetzli-cli.js" + "guetzli-cli": "./dist/lib/guetzli-cli.js" }, "scripts": { "preinstall": "", - "postinstall": "gulp", + "postinstall": "node tools/copy_file.js build/Release/guetzli.node dist/build/Release/guetzli.node", "test": "nodeunit dist/lib/test.js" }, "dependencies": {}, diff --git a/tools/copy_file.js b/tools/copy_file.js new file mode 100644 index 0000000..21f6ab8 --- /dev/null +++ b/tools/copy_file.js @@ -0,0 +1,17 @@ +// Copyright 2017 . All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +const fs = require('fs'); + +if(require.main === module) { + let args = process.argv.splice(2) + if(args.length != 2) { + console.log('usage: node copy_file.js infile outfile') + process.exit(1) + } + fs.createReadStream(args[0]).pipe( + fs.createWriteStream(args[1]) + ) +} +