1
0
mirror of https://github.com/musix-org/musix-oss synced 2024-09-20 07:41:56 +00:00
musix-oss/node_modules/opusscript/build/opusscript_native.js
MatteZ02 5eb0264906 fix
2019-05-30 12:06:47 +03:00

22 lines
669 KiB
JavaScript

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=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");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}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};Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};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.warn(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]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}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 ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}}}var cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){ensureJSsource();funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"=("+convertCode.returnValue+");"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){ensureJSsource();funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;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=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}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)}}}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}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){return func}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}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())}var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var LIMIT=Math.pow(2,31);if(DYNAMICTOP>=LIMIT)return false;while(TOTAL_MEMORY<=DYNAMICTOP){if(TOTAL_MEMORY<LIMIT/2){TOTAL_MEMORY=alignMemoryPage(2*TOTAL_MEMORY)}else{var last=TOTAL_MEMORY;TOTAL_MEMORY=alignMemoryPage((3*TOTAL_MEMORY+LIMIT)/4);if(TOTAL_MEMORY<=last)return false}}TOTAL_MEMORY=Math.max(TOTAL_MEMORY,16*1024*1024);if(TOTAL_MEMORY>=LIMIT)return false;var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement)return false;updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}totalMemory=Math.max(totalMemory,16*1024*1024);if(totalMemory!==TOTAL_MEMORY){TOTAL_MEMORY=totalMemory}if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(TOTAL_MEMORY)}updateGlobalBufferViews();HEAP32[0]=255;if(HEAPU8[0]!==255||HEAPU8[3]!==0)throw"Typed arrays 2 must be run on a little-endian system";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i<array.length){var chr=array[i];HEAP8[buffer+i>>0]=chr;i=i+1}}function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){HEAP8[buffer++>>0]=array[i]}}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}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;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+39504;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_opusscript_encoder_cpp()})},{func:(function(){__GLOBAL__sub_I_bind_cpp()})});allocate([156,105,0,0,62,124,0,0,28,106,0,0,82,124,0,0,0,0,0,0,8,0,0,0,28,106,0,0,103,124,0,0,1,0,0,0,8,0,0,0,56,106,0,0,89,145,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,156,105,0,0,152,145,0,0,56,106,0,0,190,145,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,56,106,0,0,30,146,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,156,105,0,0,106,146,0,0,156,105,0,0,141,146,0,0,156,105,0,0,202,146,0,0,156,105,0,0,14,147,0,0,156,105,0,0,84,147,0,0,156,105,0,0,146,147,0,0,156,105,0,0,217,147,0,0,156,105,0,0,21,148,0,0,156,105,0,0,90,148,0,0,156,105,0,0,151,148,0,0,156,105,0,0,164,149,0,0,156,105,0,0,226,149,0,0,156,105,0,0,33,150,0,0,93,61,127,102,158,160,230,63,0,0,0,0,0,136,57,61,68,23,117,250,82,176,230,63,0,0,0,0,0,0,216,60,254,217,11,117,18,192,230,63,0,0,0,0,0,120,40,189,191,118,212,221,220,207,230,63,0,0,0,0,0,192,30,61,41,26,101,60,178,223,230,63,0,0,0,0,0,0,216,188,227,58,89,152,146,239,230,63,0,0,0,0,0,0,188,188,134,147,81,249,125,255,230,63,0,0,0,0,0,216,47,189,163,45,244,102,116,15,231,63,0,0,0,0,0,136,44,189,195,95,236,232,117,31,231,63,0,0,0,0,0,192,19,61,5,207,234,134,130,47,231,63,0,0,0,0,0,48,56,189,82,129,165,72,154,63,231,63,0,0,0,0,0,192,0,189,252,204,215,53,189,79,231,63,0,0,0,0,0,136,47,61,241,103,66,86,235,95,231,63,0,0,0,0,0,224,3,61,72,109,171,177,36,112,231,63,0,0,0,0,0,208,39,189,56,93,222,79,105,128,231,63,0,0,0,0,0,0,221,188,0,29,172,56,185,144,231,63,0,0,0,0,0,0,227,60,120,1,235,115,20,161,231,63,0,0,0,0,0,0,237,188,96,208,118,9,123,177,231,63,0,0,0,0,0,64,32,61,51,193,48,1,237,193,231,63,0,0,0,0,0,0,160,60,54,134,255,98,106,210,231,63,0,0,0,0,0,144,38,189,59,78,207,54,243,226,231,63,0,0,0,0,0,224,2,189,232,195,145,132,135,243,231,63,0,0,0,0,0,88,36,189,78,27,62,84,39,4,232,63,0,0,0,0,0,0,51,61,26,7,209,173,210,20,232,63,0,0,0,0,0,0,15,61,126,205,76,153,137,37,232,63,0,0,0,0,0,192,33,189,208,66,185,30,76,54,232,63,0,0,0,0,0,208,41,61,181,202,35,70,26,71,232,63,0,0,0,0,0,16,71,61,188,91,159,23,244,87,232,63,0,0,0,0,0,96,34,61,175,145,68,155,217,104,232,63,0,0,0,0,0,196,50,189,149,163,49,217,202,121,232,63,0,0,0,0,0,0,35,189,184,101,138,217,199,138,232,63,0,0,0,0,0,128,42,189,0,88,120,164,208,155,232,63,0,0,0,0,0,0,237,188,35,162,42,66,229,172,232,63,0,0,0,0,0,40,51,61,250,25,214,186,5,190,232,63,0,0,0,0,0,180,66,61,131,67,181,22,50,207,232,63,0,0,0,0,0,208,46,189,76,102,8,94,106,224,232,63,0,0,0,0,0,80,32,189,7,120,21,153,174,241,232,63,0,0,0,0,0,40,40,61,14,44,40,208,254,2,233,63,0,0,0,0,0,176,28,189,150,255,145,11,91,20,233,63,0,0,0,0,0,224,5,189,249,47,170,83,195,37,233,63,0,0,0,0,0,64,245,60,74,198,205,176,55,55,233,63,0,0,0,0,0,32,23,61,174,152,95,43,184,72,233,63,0,0,0,0,0,0,9,189,203,82,200,203,68,90,233,63,0,0,0,0,0,104,37,61,33,111,118,154,221,107,233,63,0,0,0,0,0,208,54,189,42,78,222,159,130,125,233,63,0,0,0,0,0,0,1,189,163,35,122,228,51,143,233,63,0,0,0,0,0,0,45,61,4,6,202,112,241,160,233,63,0,0,0,0,0,164,56,189,137,255,83,77,187,178,233,63,0,0,0,0,0,92,53,61,91,241,163,130,145,196,233,63,0,0,0,0,0,184,38,61,197,184,75,25,116,214,233,63,0,0,0,0,0,0,236,188,142,35,227,25,99,232,233,63,0,0,0,0,0,208,23,61,2,243,7,141,94,250,233,63,0,0,0,0,0,64,22,61,77,229,93,123,102,12,234,63,0,0,0,0,0,0,245,188,246,184,142,237,122,30,234,63,0,0,0,0,0,224,9,61,39,46,74,236,155,48,234,63,0,0,0,0,0,216,42,61,93,10,70,128,201,66,234,63,0,0,0,0,0,240,26,189,155,37,62,178,3,85,234,63,0,0,0,0,0,96,11,61,19,98,244,138,74,103,234,63,0,0,0,0,0,136,56,61,167,179,48,19,158,121,234,63,0,0,0,0,0,32,17,61,141,46,193,83,254,139,234,63,0,0,0,0,0,192,6,61,210,252,121,85,107,158,234,63,0,0,0,0,0,184,41,189,184,111,53,33,229,176,234,63,0,0,0,0,0,112,43,61,129,243,211,191,107,195,234,63,0,0,0,0,0,0,217,60,128,39,60,58,255,213,234,63,0,0,0,0,0,0,228,60,163,210,90,153,159,232,234,63,0,0,0,0,0,144,44,189,103,243,34,230,76,251,234,63,0,0,0,0,0,80,22,61,144,183,141,41,7,14,235,63,0,0,0,0,0,212,47,61,169,137,154,108,206,32,235,63,0,0,0,0,0,112,18,61,75,26,79,184,162,51,235,63,0,0,0,0,0,71,77,61,231,71,183,21,132,70,235,63,0,0,0,0,0,56,56,189,58,89,229,141,114,89,235,63,0,0,0,0,0,0,152,60,106,197,241,41,110,108,235,63,0,0,0,0,0,208,10,61,80,94,251,242,118,127,235,63,0,0,0,0,0,128,222,60,178,73,39,242,140,146,235,63,0,0,0,0,0,192,4,189,3,6,161,48,176,165,235,63,0,0,0,0,0,112,13,189,102,111,154,183,224,184,235,63,0,0,0,0,0,144,13,61,255,193,75,144,30,204,235,63,0,0,0,0,0,160,2,61,111,161,243,195,105,223,235,63,0,0,0,0,0,120,31,189,184,29,215,91,194,242,235,63,0,0,0,0,0,160,16,189,233,178,65,97,40,6,236,63,0,0,0,0,0,64,17,189,224,82,133,221,155,25,236,63,0,0,0,0,0,224,11,61,238,100,250,217,28,45,236,63,0,0,0,0,0,64,9,189,47,208,255,95,171,64,236,63,0,0,0,0,0,208,14,189,21,253,250,120,71,84,236,63,0,0,0,0,0,102,57,61,203,208,87,46,241,103,236,63,0,0,0,0,0,16,26,189,182,193,136,137,168,123,236,63,0,0,0,0,128,69,88,189,51,231,6,148,109,143,236,63,0,0,0,0,0,72,26,189,223,196,81,87,64,163,236,63,0,0,0,0,0,0,203,60,148,144,239,220,32,183,236,63,0,0,0,0,0,64,1,61,137,22,109,46,15,203,236,63,0,0,0,0,0,32,240,60,18,196,93,85,11,223,236,63,0,0,0,0,0,96,243,60,59,171,91,91,21,243,236,63,0,0,0,0,0,144,6,189,188,137,7,74,45,7,237,63,0,0,0,0,0,160,9,61,250,200,8,43,83,27,237,63,0,0,0,0,0,224,21,189,133,138,13,8,135,47,237,63,0,0,0,0,0,40,29,61,3,162,202,234,200,67,237,63,0,0,0,0,0,160,1,61,145,164,251,220,24,88,237,63,0,0,0,0,0,0,223,60,161,230,98,232,118,108,237,63,0,0,0,0,0,160,3,189,78,131,201,22,227,128,237,63,0,0,0,0,0,216,12,189,144,96,255,113,93,149,237,63,0,0,0,0,0,192,244,60,174,50,219,3,230,169,237,63,0,0,0,0,0,144,255,60,37,131,58,214,124,190,237,63,0,0,0,0,0,128,233,60,69,180,1,243,33,211,237,63,0,0,0,0,0,32,245,188,191,5,28,100,213,231,237,63,0,0,0,0,0,112,29,189,236,154,123,51,151,252,237,63,0,0,0,0,0,20,22,189,94,125,25,107,103,17,238,63,0,0,0,0,0,72,11,61,231,163,245,20,70,38,238,63,0,0,0,0,0,206,64,61,92,238,22,59,51,59,238,63,0,0,0,0,0,104,12,61,180,63,139,231,46,80,238,63,0,0,0,0,0,48,9,189,104,109,103,36,57,101,238,63,0,0,0,0,0,0,229,188,68,76,199,251,81,122,238,63,0,0,0,0,0,248,7,189,38,183,205,119,121,143,238,63,0,0,0,0,0,112,243,188,232,144,164,162,175,164,238,63,0,0,0,0,0,208,229,60,228,202,124,134,244,185,238,63,0,0,0,0,0,26,22,61,13,104,142,45,72,207,238,63,0,0,0,0,0,80,245,60,20,133,24,162,170,228,238,63,0,0,0,0,0,64,198,60,19,90,97,238,27,250,238,63,0,0,0,0,0,128,238,188,6,65,182,28,156,15,239,63,0,0,0,0,0,136,250,188,99,185,107,55,43,37,239,63,0,0,0,0,0,144,44,189,117,114,221,72,201,58,239,63,0,0,0,0,0,0,170,60,36,69,110,91,118,80,239,63,0,0,0,0,0,240,244,188,253,68,136,121,50,102,239,63,0,0,0,0,0,128,202,60,56,190,156,173,253,123,239,63,0,0,0,0,0,188,250,60,130,60,36,2,216,145,239,63,0,0,0,0,0,96,212,188,142,144,158,129,193,167,239,63,0,0,0,0,0,12,11,189,17,213,146,54,186,189,239,63,0,0,0,0,0,224,192,188,148,113,143,43,194,211,239,63,0,0,0,0,128,222,16,189,238,35,42,107,217,233,239,63,0,0,0,0,0,67,238,60,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,0,190,188,90,250,26,11,240,63,0,0,0,0,0,64,179,188,3,51,251,169,61,22,240,63,0,0,0,0,0,23,18,189,130,2,59,20,104,33,240,63,0,0,0,0,0,64,186,60,108,128,119,62,154,44,240,63,0,0,0,0,0,152,239,60,202,187,17,46,212,55,240,63,0,0,0,0,0,64,199,188,137,127,110,232,21,67,240,63,0,0,0,0,0,48,216,60,103,84,246,114,95,78,240,63,0,0,0,0,0,63,26,189,90,133,21,211,176,89,240,63,0,0,0,0,0,132,2,189,149,31,60,14,10,101,240,63,0,0,0,0,0,96,241,60,26,247,221,41,107,112,240,63,0,0,0,0,0,36,21,61,45,168,114,43,212,123,240,63,0,0,0,0,0,160,233,188,208,155,117,24,69,135,240,63,0,0,0,0,0,64,230,60,200,7,102,246,189,146,240,63,0,0,0,0,0,120,0,189,131,243,198,202,62,158,240,63,0,0,0,0,0,0,152,188,48,57,31,155,199,169,240,63,0,0,0,0,0,160,255,60,252,136,249,108,88,181,240,63,0,0,0,0,0,200,250,188,138,108,228,69,241,192,240,63,0,0,0,0,0,192,217,60,22,72,114,43,146,204,240,63,0,0,0,0,0,32,5,61,216,93,57,35,59,216,240,63,0,0,0,0,0,208,250,188,243,209,211,50,236,227,240,63,0,0,0,0,0,172,27,61,166,169,223,95,165,239,240,63,0,0,0,0,0,232,4,189,240,210,254,175,102,251,240,63,0,0,0,0,0,48,13,189,75,35,215,40,48,7,241,63,0,0,0,0,0,80,241,60,91,91,18,208,1,19,241,63,0,0,0,0,0,0,236,60,249,42,94,171,219,30,241,63,0,0,0,0,0,188,22,61,213,49,108,192,189,42,241,63,0,0,0,0,0,64,232,60,125,4,242,20,168,54,241,63,0,0,0,0,0,208,14,189,233,45,169,174,154,66,241,63,0,0,0,0,0,224,232,60,56,49,79,147,149,78,241,63,0,0,0,0,0,64,235,60,113,142,165,200,152,90,241,63,0,0,0,0,0,48,5,61,223,195,113,84,164,102,241,63,0,0,0,0,0,56,3,61,17,82,125,60,184,114,241,63,0,0,0,0,0,212,40,61,159,187,149,134,212,126,241,63,0,0,0,0,0,208,5,189,147,141,140,56,249,138,241,63,0,0,0,0,0,136,28,189,102,93,55,88,38,151,241,63,0,0,0,0,0,240,17,61,167,203,111,235,91,163,241,63,0,0,0,0,0,72,16,61,227,135,19,248,153,175,241,63,0,0,0,0,0,57,71,189,84,93,4,132,224,187,241,63,0,0,0,0,0,228,36,61,67,28,40,149,47,200,241,63,0,0,0,0,0,32,10,189,178,185,104,49,135,212,241,63,0,0,0,0,0,128,227,60,49,64,180,94,231,224,241,63,0,0,0,0,0,192,234,60,56,217,252,34,80,237,241,63,0,0,0,0,0,144,1,61,247,205,56,132,193,249,241,63,0,0,0,0,0,120,27,189,143,141,98,136,59,6,242,63,0,0,0,0,0,148,45,61,30,168,120,53,190,18,242,63,0,0,0,0,0,0,216,60,65,221,125,145,73,31,242,63,0,0,0,0,0,52,43,61,35,19,121,162,221,43,242,63,0,0,0,0,0,248,25,61,231,97,117,110,122,56,242,63,0,0,0,0,0,200,25,189,39,20,130,251,31,69,242,63,0,0,0,0,0,48,2,61,2,166,178,79,206,81,242,63,0,0,0,0,0,72,19,189,176,206,30,113,133,94,242,63,0,0,0,0,0,112,18,61,22,125,226,101,69,107,242,63,0,0,0,0,0,208,17,61,15,224,29,52,14,120,242,63,0,0,0,0,0,238,49,61,62,99,245,225,223,132,242,63,0,0,0,0,0,192,20,189,48,187,145,117,186,145,242,63,0,0,0,0,0,216,19,189,9,223,31,245,157,158,242,63,0,0,0,0,0,176,8,61,155,14,209,102,138,171,242,63,0,0,0,0,0,124,34,189,58,218,218,208,127,184,242,63,0,0,0,0,0,52,42,61,249,26,119,57,126,197,242,63,0,0,0,0,0,128,16,189,217,2,228,166,133,210,242,63,0,0,0,0,0,208,14,189,121,21,100,31,150,223,242,63,0,0,0,0,0,32,244,188,207,46,62,169,175,236,242,63,0,0,0,0,0,152,36,189,34,136,189,74,210,249,242,63,0,0,0,0,0,48,22,189,37,182,49,10,254,6,243,63,0,0,0,0,0,54,50,189,11,165,238,237,50,20,243,63,0,0,0,0,128,223,112,189,184,215,76,252,112,33,243,63,0,0,0,0,0,72,34,189,162,233,168,59,184,46,243,63,0,0,0,0,0,152,37,189,102,23,100,178,8,60,243,63,0,0,0,0,0,208,30,61,39,250,227,102,98,73,243,63,0,0,0,0,0,0,220,188,15,159,146,95,197,86,243,63,0,0,0,0,0,216,48,189,185,136,222,162,49,100,243,63,0,0,0,0,0,200,34,61,57,170,58,55,167,113,243,63,0,0,0,0,0,96,32,61,254,116,30,35,38,127,243,63,0,0,0,0,0,96,22,189,56,216,5,109,174,140,243,63,0,0,0,0,0,224,10,189,195,62,113,27,64,154,243,63,0,0,0,0,0,114,68,189,32,160,229,52,219,167,243,63,0,0,0,0,0,32,8,61,149,110,236,191,127,181,243,63,0,0,0,0,0,128,62,61,242,168,19,195,45,195,243,63,0,0,0,0,0,128,239,60,34,225,237,68,229,208,243,63,0,0,0,0,0,160,23,189,187,52,18,76,166,222,243,63,0,0,0,0,0,48,38,61,204,78,28,223,112,236,243,63,0,0,0,0,0,166,72,189,140,126,172,4,69,250,243,63,0,0,0,0,0,220,60,189,187,160,103,195,34,8,244,63,0,0,0,0,0,184,37,61,149,46,247,33,10,22,244,63,0,0,0,0,0,192,30,61,70,70,9,39,251,35,244,63,0,0,0,0,0,96,19,189,32,169,80,217,245,49,244,63,0,0,0,0,0,152,35,61,235,185,132,63,250,63,244,63,0,0,0,0,0,0,250,60,25,137,97,96,8,78,244,63,0,0,0,0,0,192,246,188,1,210,167,66,32,92,244,63,0,0,0,0,0,192,11,189,22,0,29,237,65,106,244,63,0,0,0,0,0,128,18,189,38,51,139,102,109,120,244,63,0,0,0,0,0,224,48,61,0,60,193,181,162,134,244,63,0,0,0,0,0,64,45,189,4,175,146,225,225,148,244,63,0,0,0,0,0,32,12,61,114,211,215,240,42,163,244,63,0,0,0,0,0,80,30,189,1,184,109,234,125,177,244,63,0,0,0,0,0,128,7,61,225,41,54,213,218,191,244,63,0,0,0,0,0,128,19,189,50,193,23,184,65,206,244,63,0,0,0,0,0,128,0,61,219,221,253,153,178,220,244,63,0,0,0,0,0,112,44,61,150,171,216,129,45,235,244,63,0,0,0,0,0,224,28,189,2,45,157,118,178,249,244,63,0,0,0,0,0,32,25,61,193,49,69,127,65,8,245,63,0,0,0,0,0,192,8,189,42,102,207,162,218,22,245,63,0,0,0,0,0,0,250,188,234,81,63,232,125,37,245,63,0,0,0,0,0,8,74,61,218,78,157,86,43,52,245,63,0,0,0,0,0,216,38,189,26,172,246,244,226,66,245,63,0,0,0,0,0,68,50,189,219,148,93,202,164,81,245,63,0,0,0,0,0,60,72,61,107,17,233,221,112,96,245,63,0,0,0,0,0,176,36,61,222,41,181,54,71,111,245,63,0,0,0,0,0,90,65,61,14,196,226,219,39,126,245,63,0,0,0,0,0,224,41,189,111,199,151,212,18,141,245,63,0,0,0,0,0,8,35,189,76,11,255,39,8,156,245,63,0,0,0,0,0,236,77,61,39,84,72,221,7,171,245,63,0,0,0,0,0,0,196,188,244,122,168,251,17,186,245,63,0,0,0,0,0,8,48,61,11,70,89,138,38,201,245,63,0,0,0,0,0,200,38,189,63,142,153,144,69,216,245,63,0,0,0,0,0,154,70,61,225,32,173,21,111,231,245,63,0,0,0,0,0,64,27,189,202,235,220,32,163,246,245,63,0,0,0,0,0,112,23,61,184,220,118,185,225,5,246,63,0,0,0,0,0,248,38,61,21,247,205,230,42,21,246,63,0,0,0,0,0,0,1,61,49,85,58,176,126,36,246,63,0,0,0,0,0,208,21,189,181,41,25,29,221,51,246,63,0,0,0,0,0,208,18,189,19,195,204,52,70,67,246,63,0,0,0,0,0,128,234,188,250,142,188,254,185,82,246,63,0,0,0,0,0,96,40,189,151,51,85,130,56,98,246,63,0,0,0,0,0,254,113,61,142,50,8,199,193,113,246,63,0,0,0,0,0,32,55,189,126,169,76,212,85,129,246,63,0,0,0,0,0,128,230,60,113,148,158,177,244,144,246,63,0,0,0,0,0,120,41,189,156,105,0,0,218,150,0,0,196,105,0,0,184,150,0,0,16,17,0,0,0,0,0,0,196,105,0,0,101,150,0,0,240,16,0,0,0,0,0,0,196,105,0,0,138,150,0,0,32,17,0,0,0,0,0,0,156,105,0,0,171,150,0,0,196,105,0,0,231,150,0,0,232,16,0,0,0,0,0,0,196,105,0,0,39,151,0,0,16,17,0,0,0,0,0,0,196,105,0,0,3,151,0,0,56,17,0,0,0,0,0,0,196,105,0,0,73,151,0,0,16,17,0,0,0,0,0,0,0,106,0,0,113,151,0,0,0,106,0,0,115,151,0,0,0,106,0,0,118,151,0,0,0,106,0,0,120,151,0,0,0,106,0,0,122,151,0,0,0,106,0,0,124,151,0,0,0,106,0,0,126,151,0,0,0,106,0,0,128,151,0,0,0,106,0,0,130,151,0,0,0,106,0,0,132,151,0,0,0,106,0,0,134,151,0,0,0,106,0,0,136,151,0,0,0,106,0,0,138,151,0,0,0,106,0,0,140,151,0,0,196,105,0,0,142,151,0,0,240,16,0,0,0,0,0,0,16,0,0,0,168,17,0,0,168,17,0,0,168,17,0,0,168,17,0,0,16,0,0,0,168,17,0,0,168,17,0,0,168,17,0,0,168,17,0,0,168,17,0,0,16,0,0,0,168,17,0,0,168,17,0,0,168,17,0,0,168,17,0,0,16,0,0,0,168,17,0,0,168,17,0,0,104,17,0,0,16,0,0,0,0,0,157,62,0,64,94,62,0,192,4,62,0,128,237,62,0,64,137,62,0,0,0,0,0,192,76,63,0,0,205,61,0,0,0,0,204,124,0,0,212,124,0,0,229,124,0,0,246,124,0,0,5,125,0,0,22,125,0,0,46,125,0,0,60,125,0,0,224,46,0,0,232,3,0,0,176,54,0,0,232,3,0,0,128,62,0,0,232,3,0,0,32,78,0,0,232,3,0,0,240,85,0,0,232,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,46,0,0,16,39,0,0,16,39,0,0,248,42,0,0,248,42,0,0,128,62,0,0,188,52,0,0,188,52,0,0,152,58,0,0,152,58,0,0,32,78,0,0,128,62,0,0,128,62,0,0,80,70,0,0,80,70,0,0,192,93,0,0,80,70,0,0,80,70,0,0,8,82,0,0,8,82,0,0,0,125,0,0,240,85,0,0,240,85,0,0,96,109,0,0,96,109,0,0,0,250,0,0,112,148,0,0,112,148,0,0,80,195,0,0,80,195,0,0,230,90,52,56,119,78,51,57,211,217,201,57,146,145,51,58,204,96,140,58,97,251,201,58,153,126,9,59,203,128,51,59,213,37,99,59,119,46,140,59,168,138,169,59,69,184,201,59,135,166,236,59,232,46,9,60,174,102,29,60,247,2,51,60,147,255,73,60,79,88,98,60,94,17,124,60,46,145,139,60,189,199,153,60,92,172,168,60,243,60,184,60,129,121,200,60,238,95,217,60,57,240,234,60,99,42,253,60,53,7,8,61,16,204,17,61,205,228,27,61,97,80,38,61,203,14,49,61,0,31,60,61,254,128,71,61,198,52,83,61,63,56,95,61,105,139,107,61,69,46,120,61,105,144,130,61,123,48,137,61,224,247,143,61,138,229,150,61,123,249,157,61,177,51,165,61,33,147,172,61,80,24,180,61,51,194,187,61,79,145,195,61,18,132,203,61,2,155,211,61,31,214,219,61,215,51,228,61,175,180,236,61,33,88,245,61,168,29,254,61,161,130,3,62,242,6,8,62,199,155,12,62,221,64,17,62,52,246,21,62,69,187,26,62,17,144,31,62,84,116,36,62,203,103,41,62,51,106,46,62,141,123,51,62,82,155,56,62,197,201,61,62,28,6,67,62,89,80,72,62,122,168,77,62,183,13,83,62,82,128,88,62,8,0,94,62,84,140,99,62,242,36,105,62,37,202,110,62,36,123,116,62,172,55,122,62,0,0,128,62,171,233,130,62,249,216,133,62,133,205,136,62,80,199,139,62,55,198,142,62,247,201,145,62,179,210,148,62,38,224,151,62,15,242,154,62,108,8,158,62,28,35,161,62,255,65,164,62,208,100,167,62,177,139,170,62,28,182,173,62,84,228,176,62,211,21,180,62,186,74,183,62,232,130,186,62,249,189,189,62,13,252,192,62,226,60,196,62,86,128,199,62,71,198,202,62,149,14,206,62,251,88,209,62,122,165,212,62,241,243,215,62,28,68,219,62,217,149,222,62,8,233,225,62,167,61,229,62,83,147,232,62,12,234,235,62,175,65,239,62,28,154,242,62,14,243,245,62,136,76,249,62,34,166,252,62,0,0,0,63,239,172,1,63,188,89,3,63,121,6,5,63,242,178,6,63,41,95,8,63,250,10,10,63,86,182,11,63,44,97,13,63,124,11,15,63,19,181,16,63,242,93,18,63,8,6,20,63,67,173,21,63,130,83,23,63,182,248,24,63,220,156,26,63,213,63,28,63,143,225,29,63,249,129,31,63,4,33,33,63,140,190,34,63,163,90,36,63,23,245,37,63,214,141,39,63,242,36,41,63,40,186,42,63,152,77,44,63,1,223,45,63,114,110,47,63,202,251,48,63,249,134,50,63,237,15,52,63,167,150,53,63,4,27,55,63,229,156,56,63,88,28,58,63,61,153,59,63,131,19,61,63,42,139,62,63,0,0,64,63,21,114,65,63,55,225,66,63,119,77,68,63,195,182,69,63,235,28,71,63,254,127,72,63,236,223,73,63,146,60,75,63,225,149,76,63,234,235,77,63,121,62,79,63,143,141,80,63,43,217,81,63,29,33,83,63,115,101,84,63,13,166,85,63,235,226,86,63,252,27,88,63,47,81,89,63,115,130,90,63,201,175,91,63,14,217,92,63,67,254,93,63,88,31,95,63,75,60,96,63,252,84,97,63,106,105,98,63,133,121,99,63,60,133,100,63,160,140,101,63,126,143,102,63,214,141,103,63,186,135,104,63,246,124,105,63,156,109,106,63,138,89,107,63,209,64,108,63,79,35,109,63,4,1,110,63,241,217,110,63,243,173,111,63,28,125,112,63,73,71,113,63,124,12,114,63,180,204,114,63,240,135,115,63,16,62,116,63,19,239,116,63,250,154,117,63,179,65,118,63,63,227,118,63,141,127,119,63,173,22,120,63,126,168,120,63,1,53,121,63,52,188,121,63,24,62,122,63,157,186,122,63,194,49,123,63,119,163,123,63,187,15,124,63,159,118,124,63,2,216,124,63,244,51,125,63,101,138,125,63,68,219,125,63,179,38,126,63,143,108,126,63,235,172,126,63,163,231,126,63,218,28,127,63,127,76,127,63,129,118,127,63,2,155,127,63,208,185,127,63,28,211,127,63,197,230,127,63,203,244,127,63,47,253,127,63,0,0,128,63,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,136,0,0,0,160,0,0,0,192,0,0,0,240,0,0,0,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,208,37,180,62,151,57,173,62,9,165,159,62,250,237,139,62,205,172,101,62,248,169,42,62,52,48,210,61,90,241,13,61,90,241,13,189,52,48,210,189,248,169,42,190,205,172,101,190,250,237,139,190,9,165,159,190,151,57,173,190,208,37,180,190,135,138,177,62,27,131,150,62,96,35,73,62,196,66,141,61,196,66,141,189,96,35,73,190,27,131,150,190,135,138,177,190,135,138,177,190,27,131,150,190,96,35,73,190,196,66,141,189,196,66,141,61,96,35,73,62,27,131,150,62,135,138,177,62,151,57,173,62,205,172,101,62,90,241,13,61,248,169,42,190,9,165,159,190,208,37,180,190,250,237,139,190,52,48,210,189,52,48,210,61,250,237,139,62,208,37,180,62,9,165,159,62,248,169,42,62,90,241,13,189,205,172,101,190,151,57,173,190,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,9,165,159,62,90,241,13,61,250,237,139,190,151,57,173,190,52,48,210,189,205,172,101,62,208,37,180,62,248,169,42,62,248,169,42,190,208,37,180,190,205,172,101,190,52,48,210,61,151,57,173,62,250,237,139,62,90,241,13,189,9,165,159,190,27,131,150,62,196,66,141,189,135,138,177,190,96,35,73,190,96,35,73,62,135,138,177,62,196,66,141,61,27,131,150,190,27,131,150,190,196,66,141,61,135,138,177,62,96,35,73,62,96,35,73,190,135,138,177,190,196,66,141,189,27,131,150,62,250,237,139,62,248,169,42,190,151,57,173,190,90,241,13,61,208,37,180,62,52,48,210,61,9,165,159,190,205,172,101,190,205,172,101,62,9,165,159,62,52,48,210,189,208,37,180,190,90,241,13,189,151,57,173,62,248,169,42,62,250,237,139,190,0,0,0,0,5,193,35,61,233,125,163,61,37,150,244,61,226,116,34,62,172,28,74,62,221,37,113,62,52,186,139,62,180,119,158,62,228,191,176,62,173,136,194,62,37,201,211,62,24,122,228,62,24,149,244,62,200,10,2,63,28,124,9,63,73,157,16,63,202,109,23,63,192,237,29,63,159,29,36,63,84,254,41,63,46,145,47,63,224,215,52,63,99,212,57,63,240,136,62,63,211,247,66,63,171,35,71,63,23,15,75,63,216,188,78,63,173,47,82,63,106,106,85,63,206,111,88,63,154,66,91,63,142,229,93,63,75,91,96,63,110,166,98,63,100,201,100,63,155,198,102,63,111,160,104,63,247,88,106,63,128,242,107,63,223,110,109,63,11,208,110,63,202,23,112,63,224,71,113,63,225,97,114,63,77,103,115,63,150,89,116,63,12,58,117,63,255,9,118,63,138,202,118,63,187,124,119,63,192,33,120,63,98,186,120,63,157,71,121,63,75,202,121,63,36,67,122,63,242,178,122,63,59,26,123,63,200,121,123,63,32,210,123,63,200,35,124,63,55,111,124,63,242,180,124,63,94,245,124,63,224,48,125,63,236,103,125,63,183,154,125,63,180,201,125,63,6,245,125,63,17,29,126,63,24,66,126,63,78,100,126,63,211,131,126,63,253,160,126,63,237,187,126,63,195,212,126,63,179,235,126,63,239,0,127,63,135,20,127,63,141,38,127,63,67,55,127,63,170,70,127,63,227,84,127,63,15,98,127,63,47,110,127,63,100,121,127,63,190,131,127,63,63,141,127,63,24,150,127,63,56,158,127,63,194,165,127,63,163,172,127,63,16,179,127,63,245,184,127,63,119,190,127,63,114,195,127,63,25,200,127,63,108,204,127,63,91,208,127,63,6,212,127,63,111,215,127,63,131,218,127,63,102,221,127,63,21,224,127,63,130,226,127,63,205,228,127,63,230,230,127,63,205,232,127,63,146,234,127,63,70,236,127,63,200,237,127,63,40,239,127,63,120,240,127,63,166,241,127,63,195,242,127,63,191,243,127,63,186,244,127,63,148,245,127,63,94,246,127,63,39,247,127,63,207,247,127,63,119,248,127,63,253,248,127,63,148,249,127,63,9,250,127,63,127,250,127,63,244,250,127,63,89,251,127,63,173,251,127,63,1,252,127,63,84,252,127,63,152,252,127,63,219,252,127,63,30,253,127,63,80,253,127,63,130,253,127,63,181,253,127,63,231,253,127,63,9,254,127,63,59,254,127,63,93,254,127,63,126,254,127,63,143,254,127,63,176,254,127,63,210,254,127,63,227,254,127,63,244,254,127,63,21,255,127,63,38,255,127,63,55,255,127,63,71,255,127,63,88,255,127,63,88,255,127,63,105,255,127,63,122,255,127,63,122,255,127,63,139,255,127,63,155,255,127,63,155,255,127,63,155,255,127,63,172,255,127,63,172,255,127,63,189,255,127,63,189,255,127,63,189,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,102,190,3,191,246,224,191,60,157,186,18,190,208,219,179,189,72,48,246,186,182,229,210,188,213,65,222,61,240,207,90,59,200,178,191,59,159,161,201,188,250,37,18,62,197,7,143,187,243,14,38,60,204,209,227,189,36,194,165,189,19,194,153,189,224,23,242,60,183,254,6,60,92,0,26,62,74,110,3,61,5,134,145,189,72,22,184,191,116,238,38,63,186,69,133,61,191,43,198,191,247,0,45,62,205,175,246,191,184,41,84,61,240,93,137,189,55,86,141,189,79,56,34,59,47,210,85,189,222,77,129,61,157,57,90,61,141,150,67,61,69,240,63,188,125,202,17,62,2,75,238,188,143,251,142,190,149,243,221,190,5,218,162,189,100,203,194,190,39,249,81,189,42,200,95,62,214,27,165,190,164,136,136,63,50,60,214,189,63,111,150,192,80,195,159,62,251,6,142,62,97,253,45,192,185,165,217,63,209,63,17,190,180,109,61,60,3,0,129,61,242,108,37,61,88,112,100,60,129,36,141,187,229,187,47,189,84,203,113,189,208,108,77,189,79,79,233,188,214,67,42,189,98,208,51,189,100,123,168,61,57,237,73,62,37,204,20,61,8,85,111,189,139,21,154,61,88,204,163,189,29,201,21,190,118,138,37,62,218,3,61,190,199,15,21,62,178,185,226,62,230,92,206,63,144,73,142,63,20,203,39,64,23,217,30,192,78,154,230,189,146,7,226,189,77,44,16,190,254,13,58,190,51,217,132,61,13,126,172,61,34,72,191,61,149,185,25,62,103,69,4,62,164,23,53,62,2,41,17,62,65,44,139,190,118,193,112,62,203,236,136,61,157,47,222,190,107,184,232,61,144,105,45,190,5,81,179,191,150,236,32,63,41,117,9,190,159,233,205,62,180,142,238,63,17,30,197,63,82,68,138,192,112,63,60,63,211,218,76,63,69,170,30,188,69,115,46,61,66,58,161,60,31,242,150,188,151,84,180,185,62,113,136,187,167,56,146,58,51,199,141,60,39,156,35,188,11,40,212,188,79,56,162,58,13,132,170,187,1,112,103,189,205,137,130,61,148,208,167,59,196,86,181,60,179,87,6,60,229,78,63,189,5,145,96,189,7,211,77,187,8,119,151,191,169,193,240,63,130,173,210,190,233,67,61,192,175,125,5,191,135,20,139,190,176,227,255,61,100,74,90,189,25,231,207,61,249,177,90,57,241,48,72,189,162,143,131,61,97,57,29,189,102,66,93,60,68,104,41,189,187,177,5,189,140,38,97,188,217,127,184,188,160,220,187,189,109,54,142,190,55,222,61,190,90,249,64,61,109,230,0,190,19,98,134,62,172,230,89,190,94,72,231,189,81,218,255,191,62,64,207,190,163,201,101,62,122,81,35,63,128,96,142,190,253,67,148,189,55,57,92,189,204,197,9,189,1,172,185,189,16,87,131,189,39,34,146,189,159,194,86,61,112,127,199,59,156,112,154,61,143,12,72,189,31,40,220,187,138,79,43,61,116,169,91,61,133,210,7,190,219,65,219,60,245,100,126,190,239,164,42,188,150,150,17,61,236,219,89,190,14,21,155,190,182,147,18,189,233,240,192,62,161,214,24,63,78,38,42,191,156,110,137,62,66,232,192,190,17,1,135,191,163,56,108,60,194,107,55,62,253,132,19,61,93,140,97,62,208,191,184,187,132,236,1,61,125,99,126,61,65,92,255,187,234,84,1,60,194,197,101,59,21,184,43,60,200,161,20,61,53,126,33,190,108,31,135,189,165,179,189,189,163,146,252,59,34,91,129,61,80,100,167,61,50,61,217,190,1,75,51,189,139,84,120,190,81,18,54,63,81,136,60,191,127,106,12,192,174,99,220,189,24,92,51,190,247,37,22,189,95,199,73,188,87,184,128,189,206,98,179,188,177,79,227,187,88,204,227,59,156,64,166,59,62,126,107,59,64,143,172,59,105,168,17,61,28,193,28,61,18,40,12,61,94,122,1,188,146,5,140,188,123,161,64,61,208,173,161,60,78,99,123,188,30,236,131,61,195,187,188,190,240,54,138,189,251,232,52,192,25,173,171,63,106,99,161,189,62,150,94,192,224,218,1,63,38,254,80,191,194,71,105,188,199,103,2,190,5,252,218,189,211,66,19,189,213,33,215,61,145,70,149,62,88,26,72,62,144,102,177,61,134,89,136,189,241,71,209,189,58,152,200,61,137,239,4,190,134,228,204,62,125,148,209,190,190,6,115,189,240,99,134,189,162,97,81,190,4,30,56,62,13,116,5,58,172,248,203,61,197,32,24,192,57,181,47,191,13,83,111,63,83,34,141,63,204,238,177,63,211,193,138,192,180,6,45,187,141,166,233,59,241,160,217,61,233,44,19,62,184,89,140,189,248,222,95,189,235,197,144,188,28,62,158,189,31,179,216,188,241,26,42,188,67,20,221,188,189,29,225,187,42,57,103,62,189,196,208,62,235,236,122,189,120,72,108,189,67,116,56,190,88,30,100,190,115,105,236,190,14,164,171,62,201,89,132,63,65,183,135,64,44,12,177,190,93,52,24,191,10,72,152,194,66,210,135,190,50,246,79,61,6,178,131,61,143,160,29,61,193,219,45,61,143,217,30,189,243,83,193,188,118,170,151,189,48,53,221,188,47,137,16,60,76,64,98,189,35,52,159,187,70,235,160,62,105,138,184,62,236,49,161,189,205,1,226,61,114,248,212,190,65,42,197,190,242,96,139,190,202,137,198,191,154,64,17,190,53,211,229,62,16,62,16,191,17,25,20,192,238,234,245,189,33,229,191,191,126,86,81,191,15,26,75,189,126,14,189,188,36,131,183,188,139,197,239,61,176,15,33,61,206,250,84,61,4,123,7,61,3,233,226,189,114,242,172,60,0,152,161,188,108,145,153,60,142,25,77,60,139,84,24,62,30,136,188,61,226,88,175,190,190,132,10,62,211,48,44,190,142,230,8,189,15,166,119,189,82,237,3,190,247,57,42,63,24,122,20,190,3,178,17,64,75,176,164,63,255,89,87,63,128,101,27,192,70,205,188,60,103,38,104,62,241,132,25,189,157,42,31,62,231,250,35,61,84,30,61,190,92,146,3,62,205,105,192,189,79,250,108,189,83,225,217,60,65,169,204,189,174,52,4,189,120,95,165,190,121,234,65,190,23,242,60,191,60,155,154,189,198,222,91,62,119,244,191,189,21,28,50,191,29,45,184,61,216,245,3,192,230,36,140,190,73,160,101,191,176,175,5,62,139,222,9,62,12,147,165,63,152,163,170,59,90,205,4,189,116,209,173,59,15,154,157,60,13,108,87,59,139,124,205,60,206,221,174,59,233,66,145,188,201,195,202,59,186,38,172,59,152,24,137,58,222,164,19,189,3,211,36,61,254,112,38,189,228,68,96,60,51,95,180,61,14,192,161,188,106,49,184,61,77,150,36,60,66,210,66,189,67,144,59,191,88,83,25,61,119,17,22,190,14,191,107,190,40,39,68,192,197,114,179,191,231,152,162,60,102,0,35,61,3,216,155,188,12,206,64,61,6,132,6,190,131,82,68,190,218,92,144,188,143,192,68,189,71,31,99,190,111,47,137,190,208,181,239,188,43,186,122,61,122,254,4,190,79,228,205,59,199,245,175,189,164,171,143,60,29,153,93,61,39,17,166,189,102,249,194,190,166,98,99,190,149,68,2,191,108,93,242,190,106,76,248,62,220,46,18,192,64,149,100,60,99,156,121,64,210,227,219,63,35,132,183,191,67,86,45,192,108,178,226,63,167,92,175,64,132,42,185,63,203,185,0,64,87,33,241,191,184,146,105,192,178,186,161,191,34,136,71,63,187,68,7,64,105,169,70,64,117,31,216,63,117,200,142,192,147,169,206,191,224,74,102,64,30,220,27,64,194,221,161,191,93,252,213,62,40,184,188,63,122,165,10,64,29,90,244,191,194,48,84,191,159,171,177,63,6,129,43,192,192,94,225,189,230,92,250,63,155,171,50,63,41,95,160,190,38,170,99,191,79,4,145,62,190,51,114,63,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,224,64,0,0,0,65,0,0,128,65,0,0,192,65,0,0,16,66,0,0,48,66,0,0,72,66,0,0,96,66,0,0,120,66,0,0,134,66,0,0,144,66,0,0,158,66,0,0,176,66,0,0,212,66,0,0,6,67,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,0,65,0,0,0,65,149,139,0,0,55,152,0,0,255,165,0,0,4,181,0,0,103,197,0,0,69,215,0,0,193,234,0,0,255,255,0,0,128,187,0,0,120,0,0,0,21,0,0,0,21,0,0,0,0,154,89,63,0,0,0,0,0,0,128,63,0,0,128,63,88,106,0,0,3,0,0,0,8,0,0,0,120,0,0,0,11,0,0,0,231,125,0,0,132,106,0,0,160,36,0,0,128,7,0,0,3,0,0,0,128,38,0,0,184,53,0,0,240,53,0,0,40,54,0,0,96,54,0,0,136,1,0,0,182,113,0,0,206,126,0,0,86,128,0,0,106,28,141,56,82,187,30,58,8,105,220,58,130,237,87,59,137,99,178,59,3,42,5,60,48,220,57,60,180,62,119,60,28,163,158,60,209,242,197,60,254,134,241,60,155,171,16,61,5,173,42,61,132,194,70,61,83,230,100,61,17,137,130,61,135,159,147,61,203,178,165,61,209,190,184,61,58,191,204,61,84,175,225,61,20,138,247,61,14,37,7,62,217,244,18,62,95,49,31,62,104,215,43,62,138,227,56,62,48,82,70,62,148,31,84,62,191,71,98,62,142,198,112,62,176,151,127,62,82,91,135,62,96,15,143,62,152,229,150,62,121,219,158,62,112,238,166,62,216,27,175,62,251,96,183,62,17,187,191,62,70,39,200,62,183,162,208,62,120,42,217,62,148,187,225,62,12,83,234,62,222,237,242,62,6,137,251,62,190,16,2,63,31,90,6,63,36,159,10,63,80,222,14,63,43,22,19,63,65,69,23,63,37,106,27,63,115,131,31,63,206,143,35,63,230,141,39,63,116,124,43,63,63,90,47,63,25,38,51,63,231,222,54,63,153,131,58,63,51,19,62,63,197,140,65,63,119,239,68,63,127,58,72,63,39,109,75,63,206,134,78,63,229,134,81,63,241,108,84,63,142,56,87,63,105,233,89,63,69,127,92,63,250,249,94,63,115,89,97,63,175,157,99,63,193,198,101,63,207,212,103,63,17,200,105,63,210,160,107,63,110,95,109,63,80,4,111,63,244,143,112,63,230,2,114,63,189,93,115,63,31,161,116,63,191,205,117,63,87,228,118,63,176,229,119,63,151,210,120,63,227,171,121,63,115,114,122,63,39,39,123,63,231,202,123,63,157,94,124,63,53,227,124,63,156,89,125,63,189,194,125,63,134,31,126,63,222,112,126,63,171,183,126,63,207,244,126,63,38,41,127,63,134,85,127,63,190,122,127,63,150,153,127,63,204,178,127,63,20,199,127,63,28,215,127,63,130,227,127,63,221,236,127,63,182,243,127,63,138,248,127,63,200,251,127,63,214,253,127,63,7,255,127,63,165,255,127,63,232,255,127,63,253,255,127,63,0,0,128,63,224,1,0,0,135,136,8,59,255,255,255,255,5,0,96,0,3,0,32,0,4,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,174,106,0,0,184,38,0,0,0,0,0,0,0,0,128,63,0,0,0,128,99,250,127,63,191,117,86,188,139,233,127,63,10,113,214,188,121,205,127,63,231,206,32,189,47,166,127,63,58,94,86,189,175,115,127,63,19,242,133,189,249,53,127,63,42,175,160,189,18,237,126,63,51,101,187,189,253,152,126,63,4,19,214,189,188,57,126,63,115,183,240,189,85,207,125,63,168,168,5,190,203,89,125,63,187,239,18,190,37,217,124,63,92,48,32,190,103,77,124,63,245,105,45,190,152,182,123,63,243,155,58,190,190,20,123,63,194,197,71,190,226,103,122,63,205,230,84,190,9,176,121,63,130,254,97,190,60,237,120,63,77,12,111,190,132,31,120,63,156,15,124,190,234,70,119,63,238,131,132,190,119,99,118,63,62,250,138,190,54,117,117,63,117,106,145,190,48,124,116,63,76,212,151,190,113,120,115,63,122,55,158,190,3,106,114,63,183,147,164,190,244,80,113,63,188,232,170,190,79,45,112,63,65,54,177,190,33,255,110,63,1,124,183,190,118,198,109,63,180,185,189,190,94,131,108,63,21,239,195,190,231,53,107,63,222,27,202,190,30,222,105,63,201,63,208,190,18,124,104,63,146,90,214,190,212,15,103,63,243,107,220,190,116,153,101,63,170,115,226,190,1,25,100,63,113,113,232,190,141,142,98,63,7,101,238,190,40,250,96,63,39,78,244,190,230,91,95,63,144,44,250,190,215,179,93,63,0,0,0,191,15,2,92,63,27,228,2,191],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([160,70,90,63,119,194,5,191,158,129,88,63,246,154,8,191,29,179,86,63,119,109,11,191,49,219,84,63,218,57,14,191,239,249,82,63,0,0,17,191,108,15,81,63,202,191,19,191,189,27,79,63,24,121,22,191,248,30,77,63,205,43,25,191,52,25,75,63,202,215,27,191,136,10,73,63,241,124,30,191,10,243,70,63,36,27,33,191,209,210,68,63,70,178,35,191,247,169,66,63,58,66,38,191,147,120,64,63,227,202,40,191,189,62,62,63,37,76,43,191,143,252,59,63,227,197,45,191,34,178,57,63,1,56,48,191,144,95,55,63,101,162,50,191,243,4,53,63,243,4,53,191,101,162,50,63,144,95,55,191,1,56,48,63,34,178,57,191,227,197,45,63,143,252,59,191,37,76,43,63,189,62,62,191,227,202,40,63,147,120,64,191,58,66,38,63,247,169,66,191,70,178,35,63,209,210,68,191,36,27,33,63,10,243,70,191,241,124,30,63,136,10,73,191,202,215,27,63,52,25,75,191,205,43,25,63,248,30,77,191,24,121,22,63,189,27,79,191,202,191,19,63,108,15,81,191,0,0,17,63,239,249,82,191,218,57,14,63,49,219,84,191,119,109,11,63,29,179,86,191,246,154,8,63,158,129,88,191,119,194,5,63,160,70,90,191,27,228,2,63,15,2,92,191,0,0,0,63,215,179,93,191,144,44,250,62,230,91,95,191,39,78,244,62,40,250,96,191,7,101,238,62,141,142,98,191,113,113,232,62,1,25,100,191,170,115,226,62,116,153,101,191,243,107,220,62,212,15,103,191,146,90,214,62,18,124,104,191,201,63,208,62,30,222,105,191,222,27,202,62,231,53,107,191,21,239,195,62,94,131,108,191,180,185,189,62,118,198,109,191,1,124,183,62,33,255,110,191,65,54,177,62,79,45,112,191,188,232,170,62,244,80,113,191,183,147,164,62,3,106,114,191,122,55,158,62,113,120,115,191,76,212,151,62,48,124,116,191,117,106,145,62,54,117,117,191,62,250,138,62,119,99,118,191,238,131,132,62,234,70,119,191,156,15,124,62,132,31,120,191,77,12,111,62,60,237,120,191,130,254,97,62,9,176,121,191,205,230,84,62,226,103,122,191,194,197,71,62,190,20,123,191,243,155,58,62,152,182,123,191,245,105,45,62,103,77,124,191,92,48,32,62,37,217,124,191,187,239,18,62,203,89,125,191,168,168,5,62,85,207,125,191,115,183,240,61,188,57,126,191,4,19,214,61,253,152,126,191,51,101,187,61,18,237,126,191,42,175,160,61,249,53,127,191,19,242,133,61,175,115,127,191,58,94,86,61,47,166,127,191,231,206,32,61,121,205,127,191,10,113,214,60,139,233,127,191,191,117,86,60,99,250,127,191,0,48,141,36,0,0,128,191,191,117,86,188,99,250,127,191,10,113,214,188,139,233,127,191,231,206,32,189,121,205,127,191,58,94,86,189,47,166,127,191,19,242,133,189,175,115,127,191,42,175,160,189,249,53,127,191,51,101,187,189,18,237,126,191,4,19,214,189,253,152,126,191,115,183,240,189,188,57,126,191,168,168,5,190,85,207,125,191,187,239,18,190,203,89,125,191,92,48,32,190,37,217,124,191,245,105,45,190,103,77,124,191,243,155,58,190,152,182,123,191,194,197,71,190,190,20,123,191,205,230,84,190,226,103,122,191,130,254,97,190,9,176,121,191,77,12,111,190,60,237,120,191,156,15,124,190,132,31,120,191,238,131,132,190,234,70,119,191,62,250,138,190,119,99,118,191,117,106,145,190,54,117,117,191,76,212,151,190,48,124,116,191,122,55,158,190,113,120,115,191,183,147,164,190,3,106,114,191,188,232,170,190,244,80,113,191,65,54,177,190,79,45,112,191,1,124,183,190,33,255,110,191,180,185,189,190,118,198,109,191,21,239,195,190,94,131,108,191,222,27,202,190,231,53,107,191,201,63,208,190,30,222,105,191,146,90,214,190,18,124,104,191,243,107,220,190,212,15,103,191,170,115,226,190,116,153,101,191,113,113,232,190,1,25,100,191,7,101,238,190,141,142,98,191,39,78,244,190,40,250,96,191,144,44,250,190,230,91,95,191,0,0,0,191,215,179,93,191,27,228,2,191,15,2,92,191,119,194,5,191,160,70,90,191,246,154,8,191,158,129,88,191,119,109,11,191,29,179,86,191,218,57,14,191,49,219,84,191,0,0,17,191,239,249,82,191,202,191,19,191,108,15,81,191,24,121,22,191,189,27,79,191,205,43,25,191,248,30,77,191,202,215,27,191,52,25,75,191,241,124,30,191,136,10,73,191,36,27,33,191,10,243,70,191,70,178,35,191,209,210,68,191,58,66,38,191,247,169,66,191,227,202,40,191,147,120,64,191,37,76,43,191,189,62,62,191,227,197,45,191,143,252,59,191,1,56,48,191,34,178,57,191,101,162,50,191,144,95,55,191,243,4,53,191,243,4,53,191,144,95,55,191,101,162,50,191,34,178,57,191,1,56,48,191,143,252,59,191,227,197,45,191,189,62,62,191,37,76,43,191,147,120,64,191,227,202,40,191,247,169,66,191,58,66,38,191,209,210,68,191,70,178,35,191,10,243,70,191,36,27,33,191,136,10,73,191,241,124,30,191,52,25,75,191,202,215,27,191,248,30,77,191,205,43,25,191,189,27,79,191,24,121,22,191,108,15,81,191,202,191,19,191,239,249,82,191,0,0,17,191,49,219,84,191,218,57,14,191,29,179,86,191,119,109,11,191,158,129,88,191,246,154,8,191,160,70,90,191,119,194,5,191,15,2,92,191,27,228,2,191,215,179,93,191,0,0,0,191,230,91,95,191,144,44,250,190,40,250,96,191,39,78,244,190,141,142,98,191,7,101,238,190,1,25,100,191,113,113,232,190,116,153,101,191,170,115,226,190,212,15,103,191,243,107,220,190,18,124,104,191,146,90,214,190,30,222,105,191,201,63,208,190,231,53,107,191,222,27,202,190,94,131,108,191,21,239,195,190,118,198,109,191,180,185,189,190,33,255,110,191,1,124,183,190,79,45,112,191,65,54,177,190,244,80,113,191,188,232,170,190,3,106,114,191,183,147,164,190,113,120,115,191,122,55,158,190,48,124,116,191,76,212,151,190,54,117,117,191,117,106,145,190,119,99,118,191,62,250,138,190,234,70,119,191,238,131,132,190,132,31,120,191,156,15,124,190,60,237,120,191,77,12,111,190,9,176,121,191,130,254,97,190,226,103,122,191,205,230,84,190,190,20,123,191,194,197,71,190,152,182,123,191,243,155,58,190,103,77,124,191,245,105,45,190,37,217,124,191,92,48,32,190,203,89,125,191,187,239,18,190,85,207,125,191,168,168,5,190,188,57,126,191,115,183,240,189,253,152,126,191,4,19,214,189,18,237,126,191,51,101,187,189,249,53,127,191,42,175,160,189,175,115,127,191,19,242,133,189,47,166,127,191,58,94,86,189,121,205,127,191,231,206,32,189,139,233,127,191,10,113,214,188,99,250,127,191,191,117,86,188,0,0,128,191,0,48,13,165,99,250,127,191,191,117,86,60,139,233,127,191,10,113,214,60,121,205,127,191,231,206,32,61,47,166,127,191,58,94,86,61,175,115,127,191,19,242,133,61,249,53,127,191,42,175,160,61,18,237,126,191,51,101,187,61,253,152,126,191,4,19,214,61,188,57,126,191,115,183,240,61,85,207,125,191,168,168,5,62,203,89,125,191,187,239,18,62,37,217,124,191,92,48,32,62,103,77,124,191,245,105,45,62,152,182,123,191,243,155,58,62,190,20,123,191,194,197,71,62,226,103,122,191,205,230,84,62,9,176,121,191,130,254,97,62,60,237,120,191,77,12,111,62,132,31,120,191,156,15,124,62,234,70,119,191,238,131,132,62,119,99,118,191,62,250,138,62,54,117,117,191,117,106,145,62,48,124,116,191,76,212,151,62,113,120,115,191,122,55,158,62,3,106,114,191,183,147,164,62,244,80,113,191,188,232,170,62,79,45,112,191,65,54,177,62,33,255,110,191,1,124,183,62,118,198,109,191,180,185,189,62,94,131,108,191,21,239,195,62,231,53,107,191,222,27,202,62,30,222,105,191,201,63,208,62,18,124,104,191,146,90,214,62,212,15,103,191,243,107,220,62,116,153,101,191,170,115,226,62,1,25,100,191,113,113,232,62,141,142,98,191,7,101,238,62,40,250,96,191,39,78,244,62,230,91,95,191,144,44,250,62,215,179,93,191,0,0,0,63,15,2,92,191,27,228,2,63,160,70,90,191,119,194,5,63,158,129,88,191,246,154,8,63,29,179,86,191,119,109,11,63,49,219,84,191,218,57,14,63,239,249,82,191,0,0,17,63,108,15,81,191,202,191,19,63,189,27,79,191,24,121,22,63,248,30,77,191,205,43,25,63,52,25,75,191,202,215,27,63,136,10,73,191,241,124,30,63,10,243,70,191,36,27,33,63,209,210,68,191,70,178,35,63,247,169,66,191,58,66,38,63,147,120,64,191,227,202,40,63,189,62,62,191,37,76,43,63,143,252,59,191,227,197,45,63,34,178,57,191,1,56,48,63,144,95,55,191,101,162,50,63,243,4,53,191,243,4,53,63,101,162,50,191,144,95,55,63,1,56,48,191,34,178,57,63,227,197,45,191,143,252,59,63,37,76,43,191,189,62,62,63,227,202,40,191,147,120,64,63,58,66,38,191,247,169,66,63,70,178,35,191,209,210,68,63,36,27,33,191,10,243,70,63,241,124,30,191,136,10,73,63,202,215,27,191,52,25,75,63,205,43,25,191,248,30,77,63,24,121,22,191,189,27,79,63,202,191,19,191,108,15,81,63,0,0,17,191,239,249,82,63,218,57,14,191,49,219,84,63,119,109,11,191,29,179,86,63,246,154,8,191,158,129,88,63,119,194,5,191,160,70,90,63,27,228,2,191,15,2,92,63,0,0,0,191,215,179,93,63,144,44,250,190,230,91,95,63,39,78,244,190,40,250,96,63,7,101,238,190,141,142,98,63,113,113,232,190,1,25,100,63,170,115,226,190,116,153,101,63,243,107,220,190,212,15,103,63,146,90,214,190,18,124,104,63,201,63,208,190,30,222,105,63,222,27,202,190,231,53,107,63,21,239,195,190,94,131,108,63,180,185,189,190,118,198,109,63,1,124,183,190,33,255,110,63,65,54,177,190,79,45,112,63,188,232,170,190,244,80,113,63,183,147,164,190,3,106,114,63,122,55,158,190,113,120,115,63,76,212,151,190,48,124,116,63,117,106,145,190,54,117,117,63,62,250,138,190,119,99,118,63,238,131,132,190,234,70,119,63,156,15,124,190,132,31,120,63,77,12,111,190,60,237,120,63,130,254,97,190,9,176,121,63,205,230,84,190,226,103,122,63,194,197,71,190,190,20,123,63,243,155,58,190,152,182,123,63,245,105,45,190,103,77,124,63,92,48,32,190,37,217,124,63,187,239,18,190,203,89,125,63,168,168,5,190,85,207,125,63,115,183,240,189,188,57,126,63,4,19,214,189,253,152,126,63,51,101,187,189,18,237,126,63,42,175,160,189,249,53,127,63,19,242,133,189,175,115,127,63,58,94,86,189,47,166,127,63,231,206,32,189,121,205,127,63,10,113,214,188,139,233,127,63,191,117,86,188,99,250,127,63,0,200,83,165,0,0,128,63,191,117,86,60,99,250,127,63,10,113,214,60,139,233,127,63,231,206,32,61,121,205,127,63,58,94,86,61,47,166,127,63,19,242,133,61,175,115,127,63,42,175,160,61,249,53,127,63,51,101,187,61,18,237,126,63,4,19,214,61,253,152,126,63,115,183,240,61,188,57,126,63,168,168,5,62,85,207,125,63,187,239,18,62,203,89,125,63,92,48,32,62,37,217,124,63,245,105,45,62,103,77,124,63,243,155,58,62,152,182,123,63,194,197,71,62,190,20,123,63,205,230,84,62,226,103,122,63,130,254,97,62,9,176,121,63,77,12,111,62,60,237,120,63,156,15,124,62,132,31,120,63,238,131,132,62,234,70,119,63,62,250,138,62,119,99,118,63,117,106,145,62,54,117,117,63,76,212,151,62,48,124,116,63,122,55,158,62,113,120,115,63,183,147,164,62,3,106,114,63,188,232,170,62,244,80,113,63,65,54,177,62,79,45,112,63,1,124,183,62,33,255,110,63,180,185,189,62,118,198,109,63,21,239,195,62,94,131,108,63,222,27,202,62,231,53,107,63,201,63,208,62,30,222,105,63,146,90,214,62,18,124,104,63,243,107,220,62,212,15,103,63,170,115,226,62,116,153,101,63,113,113,232,62,1,25,100,63,7,101,238,62,141,142,98,63,39,78,244,62,40,250,96,63,144,44,250,62,230,91,95,63,0,0,0,63,215,179,93,63,27,228,2,63,15,2,92,63,119,194,5,63,160,70,90,63,246,154,8,63,158,129,88,63,119,109,11,63,29,179,86,63,218,57,14,63,49,219,84,63,0,0,17,63,239,249,82,63,202,191,19,63,108,15,81,63,24,121,22,63,189,27,79,63,205,43,25,63,248,30,77,63,202,215,27,63,52,25,75,63,241,124,30,63,136,10,73,63,36,27,33,63,10,243,70,63,70,178,35,63,209,210,68,63,58,66,38,63,247,169,66,63,227,202,40,63,147,120,64,63,37,76,43,63,189,62,62,63,227,197,45,63,143,252,59,63,1,56,48,63,34,178,57,63,101,162,50,63,144,95,55,63,243,4,53,63,243,4,53,63,144,95,55,63,101,162,50,63,34,178,57,63,1,56,48,63,143,252,59,63,227,197,45,63,189,62,62,63,37,76,43,63,147,120,64,63,227,202,40,63,247,169,66,63,58,66,38,63,209,210,68,63,70,178,35,63,10,243,70,63,36,27,33,63,136,10,73,63,241,124,30,63,52,25,75,63,202,215,27,63,248,30,77,63,205,43,25,63,189,27,79,63,24,121,22,63,108,15,81,63,202,191,19,63,239,249,82,63,0,0,17,63,49,219,84,63,218,57,14,63,29,179,86,63,119,109,11,63,158,129,88,63,246,154,8,63,160,70,90,63,119,194,5,63,15,2,92,63,27,228,2,63,215,179,93,63,0,0,0,63,230,91,95,63,144,44,250,62,40,250,96,63,39,78,244,62,141,142,98,63,7,101,238,62,1,25,100,63,113,113,232,62,116,153,101,63,170,115,226,62,212,15,103,63,243,107,220,62,18,124,104,63,146,90,214,62,30,222,105,63,201,63,208,62,231,53,107,63,222,27,202,62,94,131,108,63,21,239,195,62,118,198,109,63,180,185,189,62,33,255,110,63,1,124,183,62,79,45,112,63,65,54,177,62,244,80,113,63,188,232,170,62,3,106,114,63,183,147,164,62,113,120,115,63,122,55,158,62,48,124,116,63,76,212,151,62,54,117,117,63,117,106,145,62,119,99,118,63,62,250,138,62,234,70,119,63,238,131,132,62,132,31,120,63,156,15,124,62,60,237,120,63,77,12,111,62,9,176,121,63,130,254,97,62,226,103,122,63,205,230,84,62,190,20,123,63,194,197,71,62,152,182,123,63,243,155,58,62,103,77,124,63,245,105,45,62,37,217,124,63,92,48,32,62,203,89,125,63,187,239,18,62,85,207,125,63,168,168,5,62,188,57,126,63,115,183,240,61,253,152,126,63,4,19,214,61,18,237,126,63,51,101,187,61,249,53,127,63,42,175,160,61,175,115,127,63,19,242,133,61,47,166,127,63,58,94,86,61,121,205,127,63,231,206,32,61,139,233,127,63,10,113,214,60,99,250,127,63,191,117,86,60,240,0,0,0,137,136,136,59,1,0,0,0,5,0,48,0,3,0,16,0,4,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,110,0,0,184,38,0,0,0,0,0,0,120,0,0,0,136,136,8,60,2,0,0,0,5,0,24,0,3,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,112,0,0,184,38,0,0,0,0,0,0,60,0,0,0,137,136,136,60,3,0,0,0,5,0,12,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,113,0,0,184,38,0,0,0,0,0,0,255,255,127,63,142,255,127,63,106,254,127,63,147,252,127,63,7,250,127,63,200,246,127,63,214,242,127,63,48,238,127,63,214,232,127,63,200,226,127,63,7,220,127,63,147,212,127,63,107,204,127,63,143,195,127,63,0,186,127,63,189,175,127,63,199,164,127,63,29,153,127,63,192,140,127,63,176,127,127,63,236,113,127,63,118,99,127,63,75,84,127,63,110,68,127,63,222,51,127,63,154,34,127,63,163,16,127,63,250,253,126,63,157,234,126,63,141,214,126,63,203,193,126,63,86,172,126,63,46,150,126,63,83,127,126,63,198,103,126,63,134,79,126,63,148,54,126,63,239,28,126,63,152,2,126,63,143,231,125,63,211,203,125,63,102,175,125,63,70,146,125,63,116,116,125,63,241,85,125,63,188,54,125,63,213,22,125,63,60,246,124,63,242,212,124,63,246,178,124,63,73,144,124,63,235,108,124,63,219,72,124,63,27,36,124,63,169,254,123,63,135,216,123,63,180,177,123,63,48,138,123,63,252,97,123,63,23,57,123,63,130,15,123,63,61,229,122,63,72,186,122,63,162,142,122,63,77,98,122,63,72,53,122,63,148,7,122,63,48,217,121,63,29,170,121,63,90,122,121,63,233,73,121,63,200,24,121,63,249,230,120,63,123,180,120,63,78,129,120,63,115,77,120,63,234,24,120,63,178,227,119,63,205,173,119,63,58,119,119,63,249,63,119,63,10,8,119,63,110,207,118,63,37,150,118,63,47,92,118,63,140,33,118,63,60,230,117,63,64,170,117,63,151,109,117,63,66,48,117,63,65,242,116,63,148,179,116,63,59,116,116,63,55,52,116,63,135,243,115,63,44,178,115,63,38,112,115,63,118,45,115,63,26,234,114,63,20,166,114,63,100,97,114,63,10,28,114,63,5,214,113,63,87,143,113,63,0,72,113,63,255,255,112,63,85,183,112,63,2,110,112,63,6,36,112,63,98,217,111,63,21,142,111,63,32,66,111,63,132,245,110,63,63,168,110,63,83,90,110,63,192,11,110,63,134,188,109,63,165,108,109,63,29,28,109,63,239,202,108,63,27,121,108,63,161,38,108,63,128,211,107,63,187,127,107,63,80,43,107,63,64,214,106,63,140,128,106,63,50,42,106,63,53,211,105,63,147,123,105,63,77,35,105,63,100,202,104,63,216,112,104,63,168,22,104,63,213,187,103,63,96,96,103,63,72,4,103,63,143,167,102,63,51,74,102,63,54,236,101,63,151,141,101,63,87,46,101,63,119,206,100,63,245,109,100,63,212,12,100,63,18,171,99,63,177,72,99,63,176,229,98,63,16,130,98,63,209,29,98,63,243,184,97,63,119,83,97,63,92,237,96,63,164,134,96,63,78,31,96,63,91,183,95,63,203,78,95,63,158,229,94,63,213,123,94,63,112,17,94,63,110,166,93,63,210,58,93,63,154,206,92,63,198,97,92,63,89,244,91,63,81,134,91,63,174,23,91,63,114,168,90,63,157,56,90,63,46,200,89,63,39,87,89,63,135,229,88,63,79,115,88,63,127,0,88,63,23,141,87,63,24,25,87,63,130,164,86,63,86,47,86,63,147,185,85,63,58,67,85,63,75,204,84,63,199,84,84,63,174,220,83,63,1,100,83,63,191,234,82,63,233,112,82,63,127,246,81,63,130,123,81,63,242,255,80,63,207,131,80,63,26,7,80,63,210,137,79,63,250,11,79,63,144,141,78,63,148,14,78,63,9,143,77,63,237,14,77,63,65,142,76,63,5,13,76,63,59,139,75,63,225,8,75,63,249,133,74,63,131,2,74,63,127,126,73,63,238,249,72,63,207,116,72,63,36,239,71,63,237,104,71,63,41,226,70,63,218,90,70,63,0,211,69,63,155,74,69,63,172,193,68,63,50,56,68,63,47,174,67,63,162,35,67,63,141,152,66,63,239,12,66,63,200,128,65,63,26,244,64,63,229,102,64,63,40,217,63,63,229,74,63,63,27,188,62,63,204,44,62,63,247,156,61,63,157,12,61,63,190,123,60,63,92,234,59,63,117,88,59,63,10,198,58,63,29,51,58,63,173,159,57,63,187,11,57,63,71,119,56,63,81,226,55,63,218,76,55,63,227,182,54,63,107,32,54,63,116,137,53,63,253,241,52,63,7,90,52,63,147,193,51,63,160,40,51,63,48,143,50,63,66,245,49,63,216,90,49,63,241,191,48,63,142,36,48,63,175,136,47,63,85,236,46,63,129,79,46,63,50,178,45,63,105,20,45,63,39,118,44,63,107,215,43,63,55,56,43,63,139,152,42,63,103,248,41,63,204,87,41,63,186,182,40,63,50,21,40,63,51,115,39,63,191,208,38,63,214,45,38,63,121,138,37,63,167,230,36,63,97,66,36,63,169,157,35,63,125,248,34,63,223,82,34,63,207,172,33,63,77,6,33,63,91,95,32,63,248,183,31,63,37,16,31,63,226,103,30,63,48,191,29,63,16,22,29,63,129,108,28,63,132,194,27,63,26,24,27,63,67,109,26,63,0,194,25,63,81,22,25,63,54,106,24,63,177,189,23,63,193,16,23,63,103,99,22,63,163,181,21,63,118,7,21,63,225,88,20,63,228,169,19,63,127,250,18,63,179,74,18,63,128,154,17,63,231,233,16,63,232,56,16,63,132,135,15,63,187,213,14,63,142,35,14,63,254,112,13,63,10,190,12,63,179,10,12,63,250,86,11,63,223,162,10,63,99,238,9,63,134,57,9,63,73,132,8,63,172,206,7,63,175,24,7,63,84,98,6,63,155,171,5,63,131,244,4,63,15,61,4,63,61,133,3,63,15,205,2,63,134,20,2,63,161,91,1,63,97,162,0,63,143,209,255,62,167,93,254,62,14,233,252,62,194,115,251,62,198,253,249,62,27,135,248,62,193,15,247,62,186,151,245,62,6,31,244,62,168,165,242,62,158,43,241,62,236,176,239,62,145,53,238,62,144,185,236,62,232,60,235,62,154,191,233,62,169,65,232,62,21,195,230,62,223,67,229,62,8,196,227,62,145,67,226,62,124,194,224,62,200,64,223,62,120,190,221,62,140,59,220,62,6,184,218,62,230,51,217,62,46,175,215,62,223,41,214,62,249,163,212,62,125,29,211,62,110,150,209,62,204,14,208,62,151,134,206,62,210,253,204,62,125,116,203,62,153,234,201,62,39,96,200,62,40,213,198,62,159,73,197,62,138,189,195,62,236,48,194,62,198,163,192,62,25,22,191,62,230,135,189,62,45,249,187,62,241,105,186,62,50,218,184,62,241,73,183,62,47,185,181,62,238,39,180,62,47,150,178,62,242,3,177,62,57,113,175,62,4,222,173,62,86,74,172,62,47,182,170,62,144,33,169,62,122,140,167,62,239,246,165,62,239,96,164,62,124,202,162,62,151,51,161,62,64,156,159,62,122,4,158,62,68,108,156,62,161,211,154,62,145,58,153,62,22,161,151,62,48,7,150,62,225,108,148,62,41,210,146,62,11,55,145,62,135,155,143,62,158,255,141,62,81,99,140,62,162,198,138,62,145,41,137,62,32,140,135,62,80,238,133,62,34,80,132,62,151,177,130,62,176,18,129,62,222,230,126,62,169,167,123,62,195,103,120,62,47,39,117,62,238,229,113,62,4,164,110,62,115,97,107,62,60,30,104,62,98,218,100,62,232,149,97,62,207,80,94,62,26,11,91,62,204,196,87,62,230,125,84,62,107,54,81,62,93,238,77,62,191,165,74,62,146,92,71,62,218,18,68,62,151,200,64,62,206,125,61,62,128,50,58,62,174,230,54,62,93,154,51,62,141,77,48,62,66,0,45,62,125,178,41,62,66,100,38,62,145,21,35,62,110,198,31,62,219,118,28,62,218,38,25,62,109,214,21,62,152,133,18,62,91,52,15,62,186,226,11,62,183,144,8,62,84,62,5,62,148,235,1,62,240,48,253,61,6,138,246,61,113,226,239,61,51,58,233,61,79,145,226,61,207,231,219,61,181,61,213,61,3,147,206,61,192,231,199,61,242,59,193,61,156,143,186,61,195,226,179,61,108,53,173,61,155,135,166,61,85,217,159,61,159,42,153,61,126,123,146,61,246,203,139,61,11,28,133,61,135,215,124,61,70,118,111,61,93,20,98,61,214,177,84,61,185,78,71,61,16,235,57,61,229,134,44,61,64,34,31,61,44,189,17,61,178,87,4,61,181,227,237,60,96,23,211,60,118,74,184,60,11,125,157,60,50,175,130,60,250,193,79,60,254,36,26,60,42,15,201,59,153,167,59,59,46,125,214,185,210,70,113,187,171,222,227,187,166,140,39,188,129,41,93,188,225,98,137,188,160,48,164,188,236,253,190,188,179,202,217,188,224,150,244,188,49,177,7,189,147,22,21,189,140,123,34,189,19,224,47,189,30,68,61,189,165,167,74,189,157,10,88,189,254,108,101,189,190,206,114,189,234,23,128,189,27,200,134,189,237,119,141,189,92,39,148,189,99,214,154,189,253,132,161,189,38,51,168,189,217,224,174,189,17,142,181,189,202,58,188,189,254,230,194,189,170,146,201,189,200,61,208,189,84,232,214,189,74,146,221,189,164,59,228,189,93,228,234,189,114,140,241,189,221,51,248,189,154,218,254,189,82,192,2,190,252,18,6,190,71,101,9,190,50,183,12,190,186,8,16,190,221,89,19,190,152,170,22,190,234,250,25,190,208,74,29,190,71,154,32,190,78,233,35,190,225,55,39,190,0,134,42,190,166,211,45,190,211,32,49,190,131,109,52,190,181,185,55,190,101,5,59,190,147,80,62,190,58,155,65,190,90,229,68,190,240,46,72,190,249,119,75,190,116,192,78,190,93,8,82,190,179,79,85,190,115,150,88,190,156,220,91,190,42,34,95,190,27,103,98,190,109,171,101,190,31,239,104,190,44,50,108,190,148,116,111,190,84,182,114,190,106,247,117,190,211,55,121,190,141,119,124,190,150,182,127,190,117,122,129,190,69,25,131,190,185,183,132,190,208,85,134,190,136,243,135,190,225,144,137,190,218,45,139,190,112,202,140,190,164,102,142,190,116,2,144,190,223,157,145,190,228,56,147,190,129,211,148,190,182,109,150,190,129,7,152,190,226,160,153,190,215,57,155,190,95,210,156,190,121,106,158,190,35,2,160,190,94,153,161,190,38,48,163,190,125,198,164,190,96,92,166,190,206,241,167,190,198,134,169,190,71,27,171,190,80,175,172,190,224,66,174,190,245,213,175,190,143,104,177,190,173,250,178,190,77,140,180,190,110,29,182,190,16,174,183,190,48,62,185,190,207,205,186,190,234,92,188,190,130,235,189,190,148,121,191,190,31,7,193,190,35,148,194,190,159,32,196,190,145,172,197,190,248,55,199,190,211,194,200,190,34,77,202,190,226,214,203,190,19,96,205,190,181,232,206,190,197,112,208,190,66,248,209,190,45,127,211,190,131,5,213,190,67,139,214,190,109,16,216,190,255,148,217,190,249,24,219,190,89,156,220,190,29,31,222,190,70,161,223,190,211,34,225,190,193,163,226,190,16,36,228,190,190,163,229,190,204,34,231,190,56,161,232,190,0,31,234,190,36,156,235,190,162,24,237,190,122,148,238,190,171,15,240,190,51,138,241,190,18,4,243,190,70,125,244,190,207,245,245,190,170,109,247,190,217,228,248,190,88,91,250,190,40,209,251,190,71,70,253,190,181,186,254,190,56,23,0,191,187,208,0,191,228,137,1,191,178,66,2,191,37,251,2,191,59,179,3,191,246,106,4,191,83,34,5,191,83,217,5,191,245,143,6,191,56,70,7,191,29,252,7,191,162,177,8,191,199,102,9,191,140,27,10,191,240,207,10,191,243,131,11,191,147,55,12,191,209,234,12,191,172,157,13,191,36,80,14,191,56,2,15,191,232,179,15,191,50,101,16,191,24,22,17,191,151,198,17,191,176,118,18,191,99,38,19,191,174,213,19,191,145,132,20,191,13,51,21,191,31,225,21,191,200,142,22,191,8,60,23,191,221,232,23,191,72,149,24,191,72,65,25,191,220,236,25,191,4,152,26,191,192,66,27,191,15,237,27,191,240,150,28,191,99,64,29,191,104,233,29,191,254,145,30,191,37,58,31,191,220,225,31,191,35,137,32,191,250,47,33,191,95,214,33,191,82,124,34,191,212,33,35,191,227,198,35,191,127,107,36,191,167,15,37,191,92,179,37,191,157,86,38,191,104,249,38,191,191,155,39,191,160,61,40,191,11,223,40,191,255,127,41,191,125,32,42,191,131,192,42,191,17,96,43,191,39,255,43,191,196,157,44,191,232,59,45,191,146,217,45,191,195,118,46,191,121,19,47,191,180,175,47,191,115,75,48,191,183,230,48,191,127,129,49,191,203,27,50,191,153,181,50,191,234,78,51,191,189,231,51,191,18,128,52,191,232,23,53,191,63,175,53,191,22,70,54,191,110,220,54,191,69,114,55,191,156,7,56,191,113,156,56,191,197,48,57,191,150,196,57,191,230,87,58,191,178,234,58,191,252,124,59,191,194,14,60,191,3,160,60,191,193,48,61,191,250,192,61,191,173,80,62,191,219,223,62,191,131,110,63,191,165,252,63,191,64,138,64,191,83,23,65,191,224,163,65,191,228,47,66,191,96,187,66,191,83,70,67,191,190,208,67,191,158,90,68,191,246,227,68,191,194,108,69,191,5,245,69,191,188,124,70,191,232,3,71,191,137,138,71,191,157,16,72,191,37,150,72,191,32,27,73,191,142,159,73,191,111,35,74,191,193,166,74,191,134,41,75,191,188,171,75,191,99,45,76,191,122,174,76,191,2,47,77,191,250,174,77,191,98,46,78,191,57,173,78,191,126,43,79,191,51,169,79,191,85,38,80,191,230,162,80,191,228,30,81,191,80,154,81,191,40,21,82,191,109,143,82,191,30,9,83,191,59,130,83,191,195,250,83,191,183,114,84,191,22,234,84,191,223,96,85,191,18,215,85,191,176,76,86,191,183,193,86,191,39,54,87,191,0,170,87,191,66,29,88,191,236,143,88,191,254,1,89,191,120,115,89,191,89,228,89,191,162,84,90,191,81,196,90,191,102,51,91,191,226,161,91,191,195,15,92,191,10,125,92,191,183,233,92,191,200,85,93,191,62,193,93,191,24,44,94,191,87,150,94,191,249,255,94,191,255,104,95,191,104,209,95,191,51,57,96,191,98,160,96,191,243,6,97,191,229,108,97,191,58,210,97,191,240,54,98,191,8,155,98,191,128,254,98,191,89,97,99,191,146,195,99,191,44,37,100,191,37,134,100,191,126,230,100,191,55,70,101,191,78,165,101,191,197,3,102,191,154,97,102,191,205,190,102,191,94,27,103,191,77,119,103,191,154,210,103,191,68,45,104,191,75,135,104,191,174,224,104,191,111,57,105,191,139,145,105,191,4,233,105,191,217,63,106,191,9,150,106,191,148,235,106,191,123,64,107,191,188,148,107,191,89,232,107,191,79,59,108,191,160,141,108,191,75,223,108,191,79,48,109,191,173,128,109,191,101,208,109,191,117,31,110,191,223,109,110,191,161,187,110,191,187,8,111,191,46,85,111,191,248,160,111,191,27,236,111,191,149,54,112,191,103,128,112,191,144,201,112,191,15,18,113,191,230,89,113,191,19,161,113,191,151,231,113,191,113,45,114,191,160,114,114,191,38,183,114,191,1,251,114,191,50,62,115,191,184,128,115,191,148,194,115,191,196,3,116,191,73,68,116,191,34,132,116,191,80,195,116,191,210,1,117,191,168,63,117,191,210,124,117,191,80,185,117,191,33,245,117,191,69,48,118,191,189,106,118,191,136,164,118,191,166,221,118,191,22,22,119,191,217,77,119,191,239,132,119,191,87,187,119,191,17,241,119,191,29,38,120,191,122,90,120,191,42,142,120,191,43,193,120,191,125,243,120,191,33,37,121,191,22,86,121,191,92,134,121,191,242,181,121,191,218,228,121,191,18,19,122,191,154,64,122,191,115,109,122,191,157,153,122,191,22,197,122,191,223,239,122,191,248,25,123,191,97,67,123,191,26,108,123,191,34,148,123,191,122,187,123,191,32,226,123,191,23,8,124,191,92,45,124,191,240,81,124,191,211,117,124,191,5,153,124,191,134,187,124,191,85,221,124,191,115,254,124,191,223,30,125,191,154,62,125,191,163,93,125,191,250,123,125,191,159,153,125,191,146,182,125,191,211,210,125,191,98,238,125,191,63,9,126,191,105,35,126,191,225,60,126,191,167,85,126,191,186,109,126,191,27,133,126,191,201,155,126,191,196,177,126,191,13,199,126,191,162,219,126,191,133,239,126,191,181,2,127,191,50,21,127,191,252,38,127,191,19,56,127,191,118,72,127,191,39,88,127,191,36,103,127,191,110,117,127,191,5,131,127,191,232,143,127,191,25,156,127,191,149,167,127,191,95,178,127,191,116,188,127,191,215,197,127,191,133,206,127,191,129,214,127,191,200,221,127,191,93,228,127,191,61,234,127,191,106,239,127,191,227,243,127,191,169,247,127,191,187,250,127,191,25,253,127,191,196,254,127,191,187,255,127,191,250,255,127,63,57,254,127,63,169,249,127,63,75,242,127,63,30,232,127,63,35,219,127,63,89,203,127,63,193,184,127,63,91,163,127,63,40,139,127,63,39,112,127,63,90,82,127,63,191,49,127,63,88,14,127,63,37,232,126,63,38,191,126,63,92,147,126,63,200,100,126,63,105,51,126,63,65,255,125,63,79,200,125,63,150,142,125,63,20,82,125,63,203,18,125,63,188,208,124,63,231,139,124,63,77,68,124,63,239,249,123,63,205,172,123,63,233,92,123,63,67,10,123,63,221,180,122,63,182,92,122,63,209,1,122,63,46,164,121,63,206,67,121,63,178,224,120,63,220,122,120,63,76,18,120,63,4,167,119,63,4,57,119,63,79,200,118,63,228,84,118,63,198,222,117,63,246,101,117,63,117,234,116,63,68,108,116,63,101,235,115,63,218,103,115,63,163,225,114,63,194,88,114,63,57,205,113,63,9,63,113,63,52,174,112,63,187,26,112,63,160,132,111,63,228,235,110,63,138,80,110,63,147,178,109,63,1,18,109,63,213,110,108,63,17,201,107,63,183,32,107,63,201,117,106,63,73,200,105,63,57,24,105,63,155,101,104,63,111,176,103,63,186,248,102,63,124,62,102,63,184,129,101,63,111,194,100,63,164,0,100,63,90,60,99,63,145,117,98,63,76,172,97,63,142,224,96,63,89,18,96,63,174,65,95,63,145,110,94,63,3,153,93,63,8,193,92,63,160,230,91,63,207,9,91,63,152,42,90,63,251,72,89,63,253,100,88,63,159,126,87,63,229,149,86,63,208,170,85,63,99,189,84,63,161,205,83,63,140,219,82,63,39,231,81,63,117,240,80,63,121,247,79,63,52,252,78,63,171,254,77,63,223,254,76,63,212,252,75,63,140,248,74,63,10,242,73,63,82,233,72,63,101,222,71,63,71,209,70,63,251,193,69,63,132,176,68,63,229,156,67,63,32,135,66,63,58,111,65,63,52,85,64,63,19,57,63,63,216,26,62,63,136,250,60,63,38,216,59,63,180,179,58,63,54,141,57,63,175,100,56,63,34,58,55,63,147,13,54,63,5,223,52,63,124,174,51,63,249,123,50,63,130,71,49,63,25,17,48,63,194,216,46,63,127,158,45,63,86,98,44,63,72,36,43,63,90,228,41,63,144,162,40,63,235,94,39,63,113,25,38,63,37,210,36,63,9,137,35,63,35,62,34,63,117,241,32,63,4,163,31,63,210,82,30,63,228,0,29,63,61,173,27,63,225,87,26,63,211,0,25,63,25,168,23,63,180,77,22,63,170,241,20,63,253,147,19,63,178,52,18,63,204,211,16,63,80,113,15,63,66,13,14,63,164,167,12,63,124,64,11,63,205,215,9,63,154,109,8,63,233,1,7,63,189,148,5,63,25,38,4,63,3,182,2,63,126,68,1,63,28,163,255,62,110,186,252,62,250,206,249,62,202,224,246,62,228,239,243,62,81,252,240,62,26,6,238,62,71,13,235,62,224,17,232,62,237,19,229,62,119,19,226,62,135,16,223,62,36,11,220,62,88,3,217,62,42,249,213,62,164,236,210,62,205,221,207,62,175,204,204,62,82,185,201,62,191,163,198,62,254,139,195,62,24,114,192,62,22,86,189,62,0,56,186,62,224,23,183,62,189,245,179,62,161,209,176,62,149,171,173,62,162,131,170,62,207,89,167,62,39,46,164,62,178,0,161,62,121,209,157,62,133,160,154,62,223,109,151,62,143,57,148,62,160,3,145,62,26,204,141,62,5,147,138,62,107,88,135,62,86,28,132,62,205,222,128,62,182,63,123,62,16,191,116,62,187,59,110,62,201,181,103,62,77,45,97,62,89,162,90,62,255,20,84,62,81,133,77,62,99,243,70,62,70,95,64,62,13,201,57,62,202,48,51,62,144,150,44,62,114,250,37,62,130,92,31,62,210,188,24,62,118,27,18,62,127,120,11,62,1,212,4,62,29,92,252,61,114,13,239,61,41,188,225,61,102,104,212,61,78,18,199,61,8,186,185,61,184,95,172,61,132,3,159,61,146,165,145,61,7,70,132,61,18,202,109,61,122,5,83,61,145,62,56,61,164,117,29,61,252,170,2,61,202,189,207,60,86,35,154,60,97,14,73,60,197,167,187,59,61,122,86,186,9,70,241,187,18,221,99,188,80,138,167,188,65,36,221,188,227,93,9,189,35,40,36,189,150,240,62,189,242,182,89,189,234,122,116,189,26,158,135,189,66,253,148,189,200,90,162,189,134,182,175,189,87,16,189,189,22,104,202,189,155,189,215,189,195,16,229,189,105,97,242,189,101,175,255,189,74,125,6,190,104,33,13,190,250,195,19,190,237,100,26,190,46,4,33,190,172,161,39,190,83,61,46,190,16,215,52,190,210,110,59,190,134,4,66,190,25,152,72,190,121,41,79,190,148,184,85,190,86,69,92,190,174,207,98,190,137,87,105,190,214,220,111,190,128,95,118,190,120,223,124,190,84,174,129,190,129,235,132,190,56,39,136,190,114,97,139,190,36,154,142,190,69,209,145,190,205,6,149,190,179,58,152,190,238,108,155,190,116,157,158,190,61,204,161,190,64,249,164,190,115,36,168,190,207,77,171,190,73,117,174,190,218,154,177,190,120,190,180,190,27,224,183,190,186,255,186,190,75,29,190,190,199,56,193,190,37,82,196,190,91,105,199,190,97,126,202,190,48,145,205,190,188,161,208,190,0,176,211,190,241,187,214,190,135,197,217,190,186,204,220,190,129,209,223,190,211,211,226,190,169,211,229,190,250,208,232,190,189,203,235,190,234,195,238,190,120,185,241,190,96,172,244,190,154,156,247,190,28,138,250,190,223,116,253,190,109,46,0,191,3,161,1,191,45,18,3,191,230,129,4,191,44,240,5,191,250,92,7,191,76,200,8,191,30,50,10,191,108,154,11,191,50,1,13,191,108,102,14,191,23,202,15,191,45,44,17,191,172,140,18,191,144,235,19,191,213,72,21,191,118,164,22,191,113,254,23,191,192,86,25,191,98,173,26,191,81,2,28,191,138,85,29,191,9,167,30,191,203,246,31,191,204,68,33,191,9,145,34,191,124,219,35,191,36,36,37,191,253,106,38,191,2,176,39,191,48,243,40,191,132,52,42,191,250,115,43,191,143,177,44,191,63,237,45,191,7,39,47,191,227,94,48,191,208,148,49,191,202,200,50,191,206,250,51,191,218,42,53,191,232,88,54,191,247,132,55,191,2,175,56,191,7,215,57,191,3,253,58,191,241,32,60,191,207,66,61,191,154,98,62,191,79,128,63,191,233,155,64,191,104,181,65,191,198,204,66,191,1,226,67,191,23,245,68,191,3,6,70,191,196,20,71,191,86,33,72,191,182,43,73,191,225,51,74,191,212,57,75,191,141,61,76,191,9,63,77,191,68,62,78,191,61,59,79,191,240,53,80,191,90,46,81,191,121,36,82,191,74,24,83,191,202,9,84,191,247,248,84,191,206,229,85,191,77,208,86,191,112,184,87,191,55,158,88,191,156,129,89,191,160,98,90,191,62,65,91,191,117,29,92,191,65,247,92,191,162,206,93,191,148,163,94,191,20,118,95,191,34,70,96,191,186,19,97,191,217,222,97,191,127,167,98,191,169,109,99,191,84,49,100,191,126,242,100,191,38,177,101,191,73,109,102,191,229,38,103,191,248,221,103,191,128,146,104,191,123,68,105,191,232,243,105,191,195,160,106,191,12,75,107,191,192,242,107,191,222,151,108,191,100,58,109,191,80,218,109,191,160,119,110,191,83,18,111,191,102,170,111,191,217,63,112,191,169,210,112,191,213,98,113,191,91,240,113,191,58,123,114,191,113,3,115,191,253,136,115,191,222,11,116,191,17,140,116,191,150,9,117,191,107,132,117,191,143,252,117,191,0,114,118,191,189,228,118,191,198,84,119,191,24,194,119,191,178,44,120,191,147,148,120,191,187,249,120,191,40,92,121,191,217,187,121,191,205,24,122,191,2,115,122,191,121,202,122,191,47,31,123,191,36,113,123,191,88,192,123,191,201,12,124,191,118,86,124,191,95,157,124,191,130,225,124,191,224,34,125,191,119,97,125,191,71,157,125,191,79,214,125,191,142,12,126,191,4,64,126,191,176,112,126,191,146,158,126,191,169,201,126,191,245,241,126,191,117,23,127,191,41,58,127,191,16,90,127,191,43,119,127,191,120,145,127,191,248,168,127,191,170,189,127,191,143,207,127,191,165,222,127,191,237,234,127,191,102,244,127,191,17,251,127,191,237,254,127,191,234,255,127,63,229,248,127,63,166,230,127,63,45,201,127,63,124,160,127,63,149,108,127,63,121,45,127,63,44,227,126,63,177,141,126,63,11,45,126,63,63,193,125,63,82,74,125,63,72,200,124,63,40,59,124,63,247,162,123,63,189,255,122,63,128,81,122,63,72,152,121,63,30,212,120,63,9,5,120,63,19,43,119,63,70,70,118,63,172,86,117,63,78,92,116,63,56,87,115,63,118,71,114,63,19,45,113,63,28,8,112,63,158,216,110,63,165,158,109,63,64,90,108,63,126,11,107,63,107,178,105,63,25,79,104,63,150,225,102,63,242,105,101,63,62,232,99,63,139,92,98,63,234,198,96,63,109,39,95,63,38,126,93,63,40,203,91,63,133,14,90,63,83,72,88,63,163,120,86,63,139,159,84,63,32,189,82,63,118,209,80,63,163,220,78,63,189,222,76,63,219,215,74,63,19,200,72,63,124,175,70,63,46,142,68,63,65,100,66,63,206,49,64,63,236,246,61,63,180,179,59,63,66,104,57,63,173,20,55,63,16,185,52,63,134,85,50,63,41,234,47,63,21,119,45,63,101,252,42,63,53,122,40,63,161,240,37,63,198,95,35,63,192,199,32,63,172,40,30,63,169,130,27,63,212,213,24,63,74,34,22,63,42,104,19,63,147,167,16,63,164,224,13,63,123,19,11,63,57,64,8,63,253,102,5,63,231,135,2,63,45,70,255,62,91,113,249,62,151,145,243,62,36,167,237,62,69,178,231,62,60,179,225,62,76,170,219,62,186,151,213,62,201,123,207,62,190,86,201,62,223,40,195,62,112,242,188,62,183,179,182,62,251,108,176,62,129,30,170,62,146,200,163,62,115,107,157,62,108,7,151,62,197,156,144,62,199,43,138,62,185,180,131,62,199,111,122,62,33,107,109,62,17,92,96,62,41,67,83,62,253,32,70,62,32,246,56,62,38,195,43,62,164,136,30,62,45,71,17,62,87,255,3,62,110,99,237,61,194,189,210,61,218,14,184,61,222,87,157,61,251,153,130,61,188,172,79,61,101,28,26,61,153,10,201,60,42,167,59,60,193,120,214,186,45,68,113,188,87,215,227,188,76,129,39,189,148,15,93,189,21,74,137,189,90,6,164,189,109,187,190,189,34,104,217,189,78,11,244,189,227,81,7,190,47,152,20,190,247,215,33,190,165,16,47,190,166,65,60,190,100,106,73,190,77,138,86,190,205,160,99,190,80,173,112,190,69,175,125,190,13,83,133,190,158,200,139,190,13,56,146,190,18,161,152,190,102,3,159,190,191,94,165,190,216,178,171,190,105,255,177,190,43,68,184,190,216,128,190,190,42,181,196,190,219,224,202,190,165,3,209,190,69,29,215,190,117,45,221,190,241,51,227,190,118,48,233,190,192,34,239,190,141,10,245,190,155,231,250,190,211,92,0,191,56,64,3,191,219,29,6,191,155,245,8,191,90,199,11,191,247,146,14,191,84,88,17,191,80,23,20,191,205,207,22,191,172,129,25,191,208,44,28,191,26,209,30,191,109,110,33,191,171,4,36,191,183,147,38,191,116,27,41,191,199,155,43,191,147,20,46,191,187,133,48,191,38,239,50,191,183,80,53,191,85,170,55,191,227,251,57,191,74,69,60,191,110,134,62,191,55,191,64,191,139,239,66,191,83,23,69,191,117,54,71,191,218,76,73,191,107,90,75,191,16,95,77,191,179,90,79,191,62,77,81,191,154,54,83,191,179,22,85,191,114,237,86,191,197,186,88,191,149,126,90,191,208,56,92,191,98,233,93,191,56,144,95,191],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([64,45,97,191,103,192,98,191,156,73,100,191,206,200,101,191,235,61,103,191,227,168,104,191,167,9,106,191,39,96,107,191,84,172,108,191,31,238,109,191,122,37,111,191,88,82,112,191,171,116,113,191,103,140,114,191,127,153,115,191,231,155,116,191,149,147,117,191,126,128,118,191,150,98,119,191,212,57,120,191,47,6,121,191,158,199,121,191,23,126,122,191,148,41,123,191,13,202,123,191,122,95,124,191,213,233,124,191,24,105,125,191,62,221,125,191,64,70,126,191,28,164,126,191,204,246,126,191,77,62,127,191,156,122,127,191,182,171,127,191,153,209,127,191,67,236,127,191,180,251,127,191,166,255,127,63,148,227,127,63,156,154,127,63,204,36,127,63,56,130,126,63,253,178,125,63,63,183,124,63,42,143,123,63,243,58,122,63,212,186,120,63,17,15,119,63,246,55,117,63,213,53,115,63,8,9,113,63,241,177,110,63,249,48,108,63,144,134,105,63,47,179,102,63,83,183,99,63,132,147,96,63,78,72,93,63,69,214,89,63,3,62,86,63,43,128,82,63,101,157,78,63,94,150,74,63,204,107,70,63,106,30,66,63,249,174,61,63,64,30,57,63,13,109,52,63,50,156,47,63,135,172,42,63,235,158,37,63,63,116,32,63,109,45,27,63,97,203,21,63,13,79,16,63,104,185,10,63,107,11,5,63,46,140,254,62,221,212,242,62,241,242,230,62,127,232,218,62,166,183,206,62,136,98,194,62,78,235,181,62,42,84,169,62,81,159,156,62,253,206,143,62,109,229,130,62,206,201,107,62,98,159,81,62,48,80,55,62,211,224,28,62,241,85,2,62,98,104,207,61,124,0,154,61,36,251,72,61,27,164,187,60,243,119,86,187,100,61,241,188,187,192,99,189,103,93,167,189,20,189,220,189,3,251,8,190,115,127,35,190,52,231,61,190,164,45,88,190,38,78,114,190,18,34,134,190,137,5,147,190,52,207,159,190,213,124,172,190,51,12,185,190,26,123,197,190,91,199,209,190,205,238,221,190,80,239,233,190,199,198,245,190,144,185,0,191,38,121,6,191,36,33,12,191,141,176,17,191,102,38,23,191,186,129,28,191,152,193,33,191,21,229,38,191,74,235,43,191,86,211,48,191,91,156,53,191,131,69,58,191,253,205,62,191,252,52,67,191,188,121,71,191,125,155,75,191,132,153,79,191,31,115,83,191,161,39,87,191,99,182,90,191,198,30,94,191,48,96,97,191,15,122,100,191,216,107,103,191,7,53,106,191,31,213,108,191,169,75,111,191,55,152,113,191,98,186,115,191,201,177,117,191,22,126,119,191,246,30,121,191,33,148,122,191,85,221,123,191,89,250,124,191,250,234,125,191,14,175,126,191,116,70,127,191,15,177,127,191,206,238,127,191,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,0,0,206,64,0,0,200,64,0,0,184,64,0,0,170,64,0,0,162,64,0,0,154,64,0,0,144,64,0,0,140,64,0,0,156,64,0,0,150,64,0,0,146,64,0,0,142,64,0,0,156,64,0,0,148,64,0,0,138,64,0,0,144,64,0,0,140,64,0,0,148,64,0,0,152,64,0,0,142,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,134,107,63,0,20,46,63,0,112,189,62,0,208,76,62,0,0,102,63,0,0,76,63,0,0,38,63,0,0,0,63,15,0,0,0,10,0,0,0,5,0,0,0,6,0,0,0,4,0,0,0,3,0,0,0,173,130,0,0,181,130,0,0,197,130,0,0,229,130,0,0,237,130,0,0,253,130,0,0,29,131,0,0,69,131,0,0,149,131,0,0,53,132,0,0,61,132,0,0,77,132,0,0,0,0,0,0,64,31,0,0,184,36,0,0,236,44,0,0,188,52,0,0,92,68,0,0,168,97,0,0,128,56,1,0,0,0,0,0,40,35,0,0,224,46,0,0,164,56,0,0,68,72,0,0,180,95,0,0,172,138,0,0,128,56,1,0,0,0,0,0,4,41,0,0,176,54,0,0,104,66,0,0,252,83,0,0,84,111,0,0,16,164,0,0,128,56,1,0,139,132,0,0,142,132,0,0,10,103,242,14,86,205,228,29,10,103,242,14,117,82,130,12,89,154,4,25,117,82,130,12,70,17,49,10,237,3,98,20,70,17,49,10,218,2,215,7,249,198,173,15,218,2,215,7,34,182,82,5,218,250,164,10,34,182,82,5,70,243,46,30,43,227,75,14,31,102,128,24,28,44,29,10,218,97,72,18,237,156,244,6,236,48,19,11,227,144,165,4,237,164,29,2,10,223,107,3,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,12,0,0,0,3,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,1,0,0,0,9,0,0,0,6,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,5,0,0,0,12,85,0,0,204,87,0,0,136,90,0,0,64,93,0,0,244,95,0,0,164,98,0,0,80,101,0,0,184,102,0,0,116,103,0,0,232,103,0,0,52,104,0,0,108,104,0,0,140,104,0,0,164,104,0,0,176,104,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,3,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,21,0,0,0,23,0,0,0,25,0,0,0,27,0,0,0,29,0,0,0,31,0,0,0,33,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,41,0,0,0,43,0,0,0,45,0,0,0,47,0,0,0,49,0,0,0,51,0,0,0,53,0,0,0,55,0,0,0,57,0,0,0,59,0,0,0,61,0,0,0,63,0,0,0,65,0,0,0,67,0,0,0,69,0,0,0,71,0,0,0,73,0,0,0,75,0,0,0,77,0,0,0,79,0,0,0,81,0,0,0,83,0,0,0,85,0,0,0,87,0,0,0,89,0,0,0,91,0,0,0,93,0,0,0,95,0,0,0,97,0,0,0,99,0,0,0,101,0,0,0,103,0,0,0,105,0,0,0,107,0,0,0,109,0,0,0,111,0,0,0,113,0,0,0,115,0,0,0,117,0,0,0,119,0,0,0,121,0,0,0,123,0,0,0,125,0,0,0,127,0,0,0,129,0,0,0,131,0,0,0,133,0,0,0,135,0,0,0,137,0,0,0,139,0,0,0,141,0,0,0,143,0,0,0,145,0,0,0,147,0,0,0,149,0,0,0,151,0,0,0,153,0,0,0,155,0,0,0,157,0,0,0,159,0,0,0,161,0,0,0,163,0,0,0,165,0,0,0,167,0,0,0,169,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,177,0,0,0,179,0,0,0,181,0,0,0,183,0,0,0,185,0,0,0,187,0,0,0,189,0,0,0,191,0,0,0,193,0,0,0,195,0,0,0,197,0,0,0,199,0,0,0,201,0,0,0,203,0,0,0,205,0,0,0,207,0,0,0,209,0,0,0,211,0,0,0,213,0,0,0,215,0,0,0,217,0,0,0,219,0,0,0,221,0,0,0,223,0,0,0,225,0,0,0,227,0,0,0,229,0,0,0,231,0,0,0,233,0,0,0,235,0,0,0,237,0,0,0,239,0,0,0,241,0,0,0,243,0,0,0,245,0,0,0,247,0,0,0,249,0,0,0,251,0,0,0,253,0,0,0,255,0,0,0,1,1,0,0,3,1,0,0,5,1,0,0,7,1,0,0,9,1,0,0,11,1,0,0,13,1,0,0,15,1,0,0,17,1,0,0,19,1,0,0,21,1,0,0,23,1,0,0,25,1,0,0,27,1,0,0,29,1,0,0,31,1,0,0,33,1,0,0,35,1,0,0,37,1,0,0,39,1,0,0,41,1,0,0,43,1,0,0,45,1,0,0,47,1,0,0,49,1,0,0,51,1,0,0,53,1,0,0,55,1,0,0,57,1,0,0,59,1,0,0,61,1,0,0,63,1,0,0,65,1,0,0,67,1,0,0,69,1,0,0,71,1,0,0,73,1,0,0,75,1,0,0,77,1,0,0,79,1,0,0,81,1,0,0,83,1,0,0,85,1,0,0,87,1,0,0,89,1,0,0,91,1,0,0,93,1,0,0,95,1,0,0,13,0,0,0,25,0,0,0,41,0,0,0,61,0,0,0,85,0,0,0,113,0,0,0,145,0,0,0,181,0,0,0,221,0,0,0,9,1,0,0,57,1,0,0,109,1,0,0,165,1,0,0,225,1,0,0,33,2,0,0,101,2,0,0,173,2,0,0,249,2,0,0,73,3,0,0,157,3,0,0,245,3,0,0,81,4,0,0,177,4,0,0,21,5,0,0,125,5,0,0,233,5,0,0,89,6,0,0,205,6,0,0,69,7,0,0,193,7,0,0,65,8,0,0,197,8,0,0,77,9,0,0,217,9,0,0,105,10,0,0,253,10,0,0,149,11,0,0,49,12,0,0,209,12,0,0,117,13,0,0,29,14,0,0,201,14,0,0,121,15,0,0,45,16,0,0,229,16,0,0,161,17,0,0,97,18,0,0,37,19,0,0,237,19,0,0,185,20,0,0,137,21,0,0,93,22,0,0,53,23,0,0,17,24,0,0,241,24,0,0,213,25,0,0,189,26,0,0,169,27,0,0,153,28,0,0,141,29,0,0,133,30,0,0,129,31,0,0,129,32,0,0,133,33,0,0,141,34,0,0,153,35,0,0,169,36,0,0,189,37,0,0,213,38,0,0,241,39,0,0,17,41,0,0,53,42,0,0,93,43,0,0,137,44,0,0,185,45,0,0,237,46,0,0,37,48,0,0,97,49,0,0,161,50,0,0,229,51,0,0,45,53,0,0,121,54,0,0,201,55,0,0,29,57,0,0,117,58,0,0,209,59,0,0,49,61,0,0,149,62,0,0,253,63,0,0,105,65,0,0,217,66,0,0,77,68,0,0,197,69,0,0,65,71,0,0,193,72,0,0,69,74,0,0,205,75,0,0,89,77,0,0,233,78,0,0,125,80,0,0,21,82,0,0,177,83,0,0,81,85,0,0,245,86,0,0,157,88,0,0,73,90,0,0,249,91,0,0,173,93,0,0,101,95,0,0,33,97,0,0,225,98,0,0,165,100,0,0,109,102,0,0,57,104,0,0,9,106,0,0,221,107,0,0,181,109,0,0,145,111,0,0,113,113,0,0,85,115,0,0,61,117,0,0,41,119,0,0,25,121,0,0,13,123,0,0,5,125,0,0,1,127,0,0,1,129,0,0,5,131,0,0,13,133,0,0,25,135,0,0,41,137,0,0,61,139,0,0,85,141,0,0,113,143,0,0,145,145,0,0,181,147,0,0,221,149,0,0,9,152,0,0,57,154,0,0,109,156,0,0,165,158,0,0,225,160,0,0,33,163,0,0,101,165,0,0,173,167,0,0,249,169,0,0,73,172,0,0,157,174,0,0,245,176,0,0,81,179,0,0,177,181,0,0,21,184,0,0,125,186,0,0,233,188,0,0,89,191,0,0,205,193,0,0,69,196,0,0,193,198,0,0,65,201,0,0,197,203,0,0,77,206,0,0,217,208,0,0,105,211,0,0,253,213,0,0,149,216,0,0,49,219,0,0,209,221,0,0,117,224,0,0,29,227,0,0,201,229,0,0,121,232,0,0,45,235,0,0,229,237,0,0,161,240,0,0,63,0,0,0,129,0,0,0,231,0,0,0,121,1,0,0,63,2,0,0,65,3,0,0,135,4,0,0,25,6,0,0,255,7,0,0,65,10,0,0,231,12,0,0,249,15,0,0,127,19,0,0,129,23,0,0,7,28,0,0,25,33,0,0,191,38,0,0,1,45,0,0,231,51,0,0,121,59,0,0,191,67,0,0,193,76,0,0,135,86,0,0,25,97,0,0,127,108,0,0,193,120,0,0,231,133,0,0,249,147,0,0,255,162,0,0,1,179,0,0,7,196,0,0,25,214,0,0,63,233,0,0,129,253,0,0,231,18,1,0,121,41,1,0,63,65,1,0,65,90,1,0,135,116,1,0,25,144,1,0,255,172,1,0,65,203,1,0,231,234,1,0,249,11,2,0,127,46,2,0,129,82,2,0,7,120,2,0,25,159,2,0,191,199,2,0,1,242,2,0,231,29,3,0,121,75,3,0,191,122,3,0,193,171,3,0,135,222,3,0,25,19,4,0,127,73,4,0,193,129,4,0,231,187,4,0,249,247,4,0,255,53,5,0,1,118,5,0,7,184,5,0,25,252,5,0,63,66,6,0,129,138,6,0,231,212,6,0,121,33,7,0,63,112,7,0,65,193,7,0,135,20,8,0,25,106,8,0,255,193,8,0,65,28,9,0,231,120,9,0,249,215,9,0,127,57,10,0,129,157,10,0,7,4,11,0,25,109,11,0,191,216,11,0,1,71,12,0,231,183,12,0,121,43,13,0,191,161,13,0,193,26,14,0,135,150,14,0,25,21,15,0,127,150,15,0,193,26,16,0,231,161,16,0,249,43,17,0,255,184,17,0,1,73,18,0,7,220,18,0,25,114,19,0,63,11,20,0,129,167,20,0,231,70,21,0,121,233,21,0,63,143,22,0,65,56,23,0,135,228,23,0,25,148,24,0,255,70,25,0,65,253,25,0,231,182,26,0,249,115,27,0,127,52,28,0,129,248,28,0,7,192,29,0,25,139,30,0,191,89,31,0,1,44,32,0,231,1,33,0,121,219,33,0,191,184,34,0,193,153,35,0,135,126,36,0,25,103,37,0,127,83,38,0,193,67,39,0,231,55,40,0,249,47,41,0,255,43,42,0,1,44,43,0,7,48,44,0,25,56,45,0,63,68,46,0,129,84,47,0,231,104,48,0,121,129,49,0,63,158,50,0,65,191,51,0,135,228,52,0,25,14,54,0,255,59,55,0,65,110,56,0,231,164,57,0,249,223,58,0,127,31,60,0,129,99,61,0,7,172,62,0,25,249,63,0,191,74,65,0,1,161,66,0,231,251,67,0,121,91,69,0,191,191,70,0,193,40,72,0,135,150,73,0,25,9,75,0,127,128,76,0,193,252,77,0,231,125,79,0,249,3,81,0,255,142,82,0,1,31,84,0,7,180,85,0,25,78,87,0,63,237,88,0,129,145,90,0,231,58,92,0,121,233,93,0,63,157,95,0,65,86,97,0,135,20,99,0,25,216,100,0,255,160,102,0,65,111,104,0,231,66,106,0,249,27,108,0,127,250,109,0,65,1,0,0,169,2,0,0,9,5,0,0,193,8,0,0,65,14,0,0,9,22,0,0,169,32,0,0,193,46,0,0,1,65,0,0,41,88,0,0,9,117,0,0,129,152,0,0,129,195,0,0,9,247,0,0,41,52,1,0,1,124,1,0,193,207,1,0,169,48,2,0,9,160,2,0,65,31,3,0,193,175,3,0,9,83,4,0,169,10,5,0,65,216,5,0,129,189,6,0,41,188,7,0,9,214,8,0,1,13,10,0,1,99,11,0,9,218,12,0,41,116,14,0,129,51,16,0,65,26,18,0,169,42,20,0,9,103,22,0,193,209,24,0,65,109,27,0,9,60,30,0,169,64,33,0,193,125,36,0,1,246,39,0,41,172,43,0,9,163,47,0,129,221,51,0,129,94,56,0,9,41,61,0,41,64,66,0,1,167,71,0,193,96,77,0,169,112,83,0,9,218,89,0,65,160,96,0,193,198,103,0,9,81,111,0,169,66,119,0,65,159,127,0,129,106,136,0,41,168,145,0,9,92,155,0,1,138,165,0,1,54,176,0,9,100,187,0,41,24,199,0,129,86,211,0,65,35,224,0,169,130,237,0,9,121,251,0,193,10,10,1,65,60,25,1,9,18,41,1,169,144,57,1,193,188,74,1,1,155,92,1,41,48,111,1,9,129,130,1,129,146,150,1,129,105,171,1,9,11,193,1,41,124,215,1,1,194,238,1,193,225,6,2,169,224,31,2,9,196,57,2,65,145,84,2,193,77,112,2,9,255,140,2,169,170,170,2,65,86,201,2,129,7,233,2,41,196,9,3,9,146,43,3,1,119,78,3,1,121,114,3,9,158,151,3,41,236,189,3,129,105,229,3,65,28,14,4,169,10,56,4,9,59,99,4,193,179,143,4,65,123,189,4,9,152,236,4,169,16,29,5,193,235,78,5,1,48,130,5,41,228,182,5,9,15,237,5,129,183,36,6,129,228,93,6,9,157,152,6,41,232,212,6,1,205,18,7,193,82,82,7,169,128,147,7,9,94,214,7,65,242,26,8,193,68,97,8,9,93,169,8,169,66,243,8,65,253,62,9,129,148,140,9,41,16,220,9,9,120,45,10,1,212,128,10,1,44,214,10,9,136,45,11,41,240,134,11,129,108,226,11,65,5,64,12,169,194,159,12,9,173,1,13,193,204,101,13,65,42,204,13,9,206,52,14,169,192,159,14,193,10,13,15,1,181,124,15,41,200,238,15,9,77,99,16,129,76,218,16,129,207,83,17,9,223,207,17,41,132,78,18,1,200,207,18,193,179,83,19,169,80,218,19,9,168,99,20,65,195,239,20,193,171,126,21,9,107,16,22,169,10,165,22,65,148,60,23,129,17,215,23,41,140,116,24,9,14,21,25,1,161,184,25,1,79,95,26,9,34,9,27,41,36,182,27,129,95,102,28,65,222,25,29,169,170,208,29,9,207,138,30,193,85,72,31,65,73,9,32,9,180,205,32,169,160,149,33,193,25,97,34,1,42,48,35,41,220,2,36,9,59,217,36,129,81,179,37,147,6,0,0,69,14,0,0,15,28,0,0,17,51,0,0,91,87,0,0,13,142,0,0,119,221,0,0,57,77,1,0,99,230,1,0,149,179,2,0,31,193,3,0,33,29,5,0,171,215,6,0,221,2,9,0,7,179,11,0,201,254,14,0,51,255,18,0,229,207,23,0,47,143,29,0,49,94,36,0,251,96,44,0,173,190,53,0,151,161,64,0,89,55,77,0,3,177,91,0,53,67,108,0,63,38,127,0,65,150,148,0,75,211,172,0,125,33,200,0,39,201,230,0,233,22,9,1,211,91,47,1,133,237,89,1,79,38,137,1,81,101,189,1,155,14,247,1,77,139,54,2,183,73,124,2,121,189,200,2,163,95,28,3,213,174,119,3,95,47,219,3,97,107,71,4,235,242,188,4,29,92,60,5,71,67,198,5,9,75,91,6,115,28,252,6,37,103,169,7,111,225,99,8,113,72,44,9,59,96,3,10,237,243,233,10,215,213,224,11,153,223,232,12,67,242,2,14,117,246,47,15,127,220,112,16,129,156,198,17,139,54,50,19,189,178,180,20,103,33,79,22,41,155,2,24,19,65,208,25,197,60,185,27,143,192,190,29,145,7,226,31,219,85,36,34,141,248,134,36,247,69,11,39,185,157,178,41,227,104,126,44,21,26,112,47,159,45,137,50,161,41,203,53,43,158,55,57,93,37,208,60,135,99,150,64,73,7,140,68,179,201,178,72,101,110,12,77,175,195,154,81,177,162,95,86,123,239,92,91,45,153,148,96,23,154,8,102,217,247,186,107,131,195,173,113,181,25,227,119,191,34,93,126,29,35,0,0,113,77,0,0,145,156,0,0,253,38,1,0,101,12,2,0,233,119,3,0,153,162,5,0,53,214,8,0,45,112,13,0,225,228,19,0,33,195,28,0,237,183,40,0,117,146,56,0,89,72,77,0,41,250,103,0,37,248,137,0,61,199,180,0,81,38,234,0,177,19,44,1,221,210,124,1,133,242,222,1,201,82,85,2,185,43,227,2,21,20,140,3,77,8,84,4,193,113,63,5,65,46,83,6,205,151,148,7,149,140,9,9,57,119,184,10,73,87,168,12,5,202,224,14,93,19,106,17,49,39,77,20,209,178,147,23,189,38,72,27,165,192,117,31,169,149,40,36,217,156,109,41,245,185,82,47,109,200,230,53,161,166,57,61,97,65,92,69,173,159,96,78,181,238,89,88,25,142,92,99,105,28,126,111,229,131,213,124,255,189,0,0,1,168,1,0,143,107,3,0,241,158,6,0,63,35,12,0,193,61,21,0,143,182,35,0,241,252,57,0,255,81,91,0,1,250,139,0,15,117,209,0,113,191,50,1,63,154,184,1,193,220,109,2,15,207,95,3,113,142,158,4,255,123,61,6,1,182,83,8,143,156,252,10,241,97,88,14,63,167,140,18,193,37,197,23,143,101,52,30,241,129,20,38,255,251,167,47,1,156,58,59,15,98,34,73,113,134,192,89,63,138,130,109,193,88,227,132,1,14,4,0,145,33,9,0,17,44,19,0,65,238,37,0,65,79,71,0,145,67,128,0,17,247,221,0,1,70,115,1,1,146,90,2,17,1,184,3,145,53,188,5,65,143,167,8,65,6,206,12,17,178,155,18,145,15,154,26,1,26,118,37,1,76,7,52,145,158,87,71,17,157,172,96,65,166,145,129,35,81,22,0,197,158,50,0,23,185,107,0,153,246,216,0,107,137,160,1,13,196,254,2,31,1,80,5,33,217,29,9,51,108,48,15,213,162,164,24,167,103,8,39,41,253,125,60,123,181,231,91,29,119,29,137,175,160,45,201,173,142,123,0,137,230,25,1,57,150,94,2,61,22,216,4,181,99,119,9,225,40,198,17,33,3,52,32,117,72,130,56,125,87,87,96,191,91,175,2,129,216,39,6,247,132,94,13,233,254,173,27,127,139,235,54,129,183,229,104,23,3,156,193,193,12,255,14,57,106,133,34,25,238,145,75,129,120,43,158,51,225,9,84,32,0,10,0,20,46,100,1,138,137,0,0,56,116,0,0,202,138,0,0,10,139,0,0,28,139,0,0,188,139,0,0,4,140,0,0,184,118,0,0,32,0,16,0,102,38,171,1,76,140,0,0,206,118,0,0,76,142,0,0,140,142,0,0,170,142,0,0,170,143,0,0,242,143,0,0,206,122,0,0,48,117,0,0,112,23,0,0,32,209,255,255,32,209,255,255,0,64,0,0,108,34,0,0,66,15,0,0,18,6,0,0,77,2,0,0,219,0,0,0,237,0,0,0,153,0,0,0,73,0,0,0,30,0,0,0,12,0,0,0,7,0,0,0,0,64,0,0,147,93,0,0,189,112,0,0,237,121,0,0,178,125,0,0,36,127,0,0,0,0,0,0,240,16,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,17,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,40,17,0,0,6,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,88,17,0,0,1,0,0,0,8,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,72,17,0,0,1,0,0,0,9,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,216,17,0,0,1,0,0,0,10,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,12,0,14,0,16,0,20,0,24,0,28,0,34,0,40,0,48,0,60,0,78,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,16,0,16,0,16,0,21,0,21,0,24,0,29,0,34,0,36,0,0,0,96,0,192,0,32,1,128,1,32,0,128,0,224,0,64,1,160,1,64,0,160,0,0,1,96,1,192,1,8,0,104,0,200,0,40,1,136,1,40,0,136,0,232,0,72,1,168,1,72,0,168,0,8,1,104,1,200,1,16,0,112,0,208,0,48,1,144,1,48,0,144,0,240,0,80,1,176,1,80,0,176,0,16,1,112,1,208,1,24,0,120,0,216,0,56,1,152,1,56,0,152,0,248,0,88,1,184,1,88,0,184,0,24,1,120,1,216,1,4,0,100,0,196,0,36,1,132,1,36,0,132,0,228,0,68,1,164,1,68,0,164,0,4,1,100,1,196,1,12,0,108,0,204,0,44,1,140,1,44,0,140,0,236,0,76,1,172,1,76,0,172,0,12,1,108,1,204,1,20,0,116,0,212,0,52,1,148,1,52,0,148,0,244,0,84,1,180,1,84,0,180,0,20,1,116,1,212,1,28,0,124,0,220,0,60,1,156,1,60,0,156,0,252,0,92,1,188,1,92,0,188,0,28,1,124,1,220,1,1,0,97,0,193,0,33,1,129,1,33,0,129,0,225,0,65,1,161,1,65,0,161,0,1,1,97,1,193,1,9,0,105,0,201,0,41,1,137,1,41,0,137,0,233,0,73,1,169,1,73,0,169,0,9,1,105,1,201,1,17,0,113,0,209,0,49,1,145,1,49,0,145,0,241,0,81,1,177,1,81,0,177,0,17,1,113,1,209,1,25,0,121,0,217,0,57,1,153,1,57,0,153,0,249,0,89,1,185,1,89,0,185,0,25,1,121,1,217,1,5,0,101,0,197,0,37,1,133,1,37,0,133,0,229,0,69,1,165,1,69,0,165,0,5,1,101,1,197,1,13,0,109,0,205,0,45,1,141,1,45,0,141,0,237,0,77,1,173,1,77,0,173,0,13,1,109,1,205,1,21,0,117,0,213,0,53,1,149,1,53,0,149,0,245,0,85,1,181,1,85,0,181,0,21,1,117,1,213,1,29,0,125,0,221,0,61,1,157,1,61,0,157,0,253,0,93,1,189,1,93,0,189,0,29,1,125,1,221,1,2,0,98,0,194,0,34,1,130,1,34,0,130,0,226,0,66,1,162,1,66,0,162,0,2,1,98,1,194,1,10,0,106,0,202,0,42,1,138,1,42,0,138,0,234,0,74,1,170,1,74,0,170,0,10,1,106,1,202,1,18,0,114,0,210,0,50,1,146,1,50,0,146,0,242,0,82,1,178,1,82,0,178,0,18,1,114,1,210,1,26,0,122,0,218,0,58,1,154,1,58,0,154,0,250,0,90,1,186,1,90,0,186,0,26,1,122,1,218,1,6,0,102,0,198,0,38,1,134,1,38,0,134,0,230,0,70,1,166,1,70,0,166,0,6,1,102,1,198,1,14,0,110,0,206,0,46,1,142,1,46,0,142,0,238,0,78,1,174,1,78,0,174,0,14,1,110,1,206,1,22,0,118,0,214,0,54,1,150,1,54,0,150,0,246,0,86,1,182,1,86,0,182,0,22,1,118,1,214,1,30,0,126,0,222,0,62,1,158,1,62,0,158,0,254,0,94,1,190,1,94,0,190,0,30,1,126,1,222,1,3,0,99,0,195,0,35,1,131,1,35,0,131,0,227,0,67,1,163,1,67,0,163,0,3,1,99,1,195,1,11,0,107,0,203,0,43,1,139,1,43,0,139,0,235,0,75,1,171,1,75,0,171,0,11,1,107,1,203,1,19,0,115,0,211,0,51,1,147,1,51,0,147,0,243,0,83,1,179,1,83,0,179,0,19,1,115,1,211,1,27,0,123,0,219,0,59,1,155,1,59,0,155,0,251,0,91,1,187,1,91,0,187,0,27,1,123,1,219,1,7,0,103,0,199,0,39,1,135,1,39,0,135,0,231,0,71,1,167,1,71,0,167,0,7,1,103,1,199,1,15,0,111,0,207,0,47,1,143,1,47,0,143,0,239,0,79,1,175,1,79,0,175,0,15,1,111,1,207,1,23,0,119,0,215,0,55,1,151,1,55,0,151,0,247,0,87,1,183,1,87,0,183,0,23,1,119,1,215,1,31,0,127,0,223,0,63,1,159,1,63,0,159,0,255,0,95,1,191,1,95,0,191,0,31,1,127,1,223,1,0,0,48,0,96,0,144,0,192,0,16,0,64,0,112,0,160,0,208,0,32,0,80,0,128,0,176,0,224,0,4,0,52,0,100,0,148,0,196,0,20,0,68,0,116,0,164,0,212,0,36,0,84,0,132,0,180,0,228,0,8,0,56,0,104,0,152,0,200,0,24,0,72,0,120,0,168,0,216,0,40,0,88,0,136,0,184,0,232,0,12,0,60,0,108,0,156,0,204,0,28,0,76,0,124,0,172,0,220,0,44,0,92,0,140,0,188,0,236,0,1,0,49,0,97,0,145,0,193,0,17,0,65,0,113,0,161,0,209,0,33,0,81,0,129,0,177,0,225,0,5,0,53,0,101,0,149,0,197,0,21,0,69,0,117,0,165,0,213,0,37,0,85,0,133,0,181,0,229,0,9,0,57,0,105,0,153,0,201,0,25,0,73,0,121,0,169,0,217,0,41,0,89,0,137,0,185,0,233,0,13,0,61,0,109,0,157,0,205,0,29,0,77,0,125,0,173,0,221,0,45,0,93,0,141,0,189,0,237,0,2,0,50,0,98,0,146,0,194,0,18,0,66,0,114,0,162,0,210,0,34,0,82,0,130,0,178,0,226,0,6,0,54,0,102,0,150,0,198,0,22,0,70,0,118,0,166,0,214,0,38,0,86,0,134,0,182,0,230,0,10,0,58,0,106,0,154,0,202,0,26,0,74,0,122,0,170,0,218,0,42,0,90,0,138,0,186,0,234,0,14,0,62,0,110,0,158,0,206,0,30,0,78,0,126,0,174,0,222,0,46,0,94,0,142,0,190,0,238,0,3,0,51,0,99,0,147,0,195,0,19,0,67,0,115,0,163,0,211,0,35,0,83,0,131,0,179,0,227,0,7,0,55,0,103,0,151,0,199,0,23,0,71,0,119,0,167,0,215,0,39,0,87,0,135,0,183,0,231,0,11,0,59,0,107,0,155,0,203,0,27,0,75,0,123,0,171,0,219,0,43,0,91,0,139,0,187,0,235,0,15,0,63,0,111,0,159,0,207,0,31,0,79,0,127,0,175,0,223,0,47,0,95,0,143,0,191,0,239,0,0,0,24,0,48,0,72,0,96,0,8,0,32,0,56,0,80,0,104,0,16,0,40,0,64,0,88,0,112,0,4,0,28,0,52,0,76,0,100,0,12,0,36,0,60,0,84,0,108,0,20,0,44,0,68,0,92,0,116,0,1,0,25,0,49,0,73,0,97,0,9,0,33,0,57,0,81,0,105,0,17,0,41,0,65,0,89,0,113,0,5,0,29,0,53,0,77,0,101,0,13,0,37,0,61,0,85,0,109,0,21,0,45,0,69,0,93,0,117,0,2,0,26,0,50,0,74,0,98,0,10,0,34,0,58,0,82,0,106,0,18,0,42,0,66,0,90,0,114,0,6,0,30,0,54,0,78,0,102,0,14,0,38,0,62,0,86,0,110,0,22,0,46,0,70,0,94,0,118,0,3,0,27,0,51,0,75,0,99,0,11,0,35,0,59,0,83,0,107,0,19,0,43,0,67,0,91,0,115,0,7,0,31,0,55,0,79,0,103,0,15,0,39,0,63,0,87,0,111,0,23,0,47,0,71,0,95,0,119,0,0,0,12,0,24,0,36,0,48,0,4,0,16,0,28,0,40,0,52,0,8,0,20,0,32,0,44,0,56,0,1,0,13,0,25,0,37,0,49,0,5,0,17,0,29,0,41,0,53,0,9,0,21,0,33,0,45,0,57,0,2,0,14,0,26,0,38,0,50,0,6,0,18,0,30,0,42,0,54,0,10,0,22,0,34,0,46,0,58,0,3,0,15,0,27,0,39,0,51,0,7,0,19,0,31,0,43,0,55,0,11,0,23,0,35,0,47,0,59,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,41,0,41,0,41,0,82,0,82,0,123,0,164,0,200,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,164,0,164,0,240,0,10,1,27,1,39,1,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,10,1,10,1,49,1,62,1,72,1,80,1,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,62,1,62,1,87,1,95,1,102,1,108,1,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,49,1,87,1,87,1,87,1,95,1,95,1,114,1,120,1,126,1,131,1,18,0,29,0,38,0,40,0,46,0,52,0,62,0,84,0,92,202,190,216,182,223,154,226,156,230,120,236,122,244,204,252,52,3,134,11,136,19,100,25,102,29,74,32,66,39,164,53,100,0,240,0,32,0,100,0,205,60,0,48,0,32,42,175,213,201,207,255,64,0,17,0,99,255,97,1,16,254,163,0,39,43,189,86,217,255,6,0,91,0,86,255,186,0,23,0,128,252,192,24,216,77,237,255,220,255,102,0,167,255,232,255,72,1,73,252,8,10,37,62,135,199,61,201,64,0,128,0,134,255,36,0,54,1,0,253,72,2,51,36,69,69,12,0,128,0,18,0,114,255,32,1,139,255,159,252,27,16,123,56,104,2,13,200,246,255,39,0,58,0,210,255,172,255,120,0,184,0,197,254,227,253,4,5,4,21,64,35,230,62,198,196,243,255,0,0,20,0,26,0,5,0,225,255,213,255,252,255,65,0,90,0,7,0,99,255,8,255,212,255,81,2,47,6,52,10,199,12,228,87,5,197,3,0,242,255,236,255,241,255,2,0,25,0,37,0,25,0,240,255,185,255,149,255,177,255,50,0,36,1,111,2,214,3,8,5,184,5,148,107,103,196,17,0,12,0,8,0,1,0,246,255,234,255,226,255,224,255,234,255,3,0,44,0,100,0,168,0,243,0,61,1,125,1,173,1,199,1,189,0,168,253,105,2,103,119,117,0,97,255,210,251,8,116,52,0,221,0,168,246,116,110,252,255,17,2,234,242,229,102,208,255,246,2,140,240,165,93,176,255,137,3,117,239,6,83,157,255,204,3,130,239,102,71,149,255,199,3,139,240,39,59,153,255,128,3,97,242,174,46,165,255,5,3,207,244,94,34,185,255,99,2,161,247,152,22,210,255,169,1,161,250,180,11,0,64,202,69,27,76,255,82,130,90,179,98,162,107,96,117,184,126,154,121,154,121,102,102,184,126,51,115,81,11,10,9,10,9,10,9,239,8,239,8,10,9,252,8,23,9,239,8,72,11,20,10,90,9,63,9,10,9,226,8,226,8,226,8,226,8,146,8,183,9,36,9,36,9,10,9,10,9,10,9,36,9,36,9,63,9,50,9,144,12,206,10,36,9,36,9,10,9,226,8,173,8,159,8,213,8,146,8,156,9,170,9,63,9,90,9,90,9,90,9,90,9,63,9,103,9,10,9,151,13,240,11,79,8,159,8,226,8,226,8,226,8,239,8,10,9,213,8,210,12,69,12,20,10,90,9,199,8,173,8,159,8,146,8,146,8,66,8,0,16,5,15,173,8,60,10,60,10,103,9,10,9,90,9,63,9,26,8,106,12,172,12,63,9,173,8,249,9,130,9,36,9,10,9,119,8,173,8,10,13,160,13,166,10,146,8,213,8,156,9,50,9,63,9,159,8,53,8,50,9,116,9,23,9,63,9,90,9,116,9,116,9,116,9,156,9,63,9,195,14,45,14,130,9,223,9,63,9,226,8,226,8,252,8,159,8,0,8,182,12,153,12,153,10,30,11,143,9,23,9,252,8,252,8,226,8,79,8,191,12,228,12,193,10,246,10,143,9,213,8,213,8,199,8,79,8,53,8,57,11,165,11,73,10,63,9,103,9,50,9,146,8,199,8,199,8,66,8,153,12,125,12,73,10,20,10,226,8,133,8,199,8,173,8,173,8,93,8,106,12,238,12,180,10,103,9,226,8,226,8,226,8,239,8,146,8,66,8,69,12,200,12,156,9,13,8,239,8,196,9,63,9,183,9,130,9,133,8,179,13,210,12,10,9,140,10,87,10,170,9,63,9,90,9,36,9,79,8,95,13,207,13,222,11,240,11,252,8,158,7,173,8,226,8,226,8,226,8,76,13,38,13,39,8,127,10,57,11,50,9,116,9,226,8,170,9,236,9,176,14,160,13,158,7,100,10,81,11,223,9,90,9,63,9,156,9,213,8,212,11,200,12,180,10,72,11,180,10,106,8,79,8,239,8,186,8,199,8,111,14,73,14,233,7,177,7,100,10,140,10,20,10,196,9,23,9,63,9,135,12,85,13,50,9,26,8,72,11,72,11,36,9,183,9,199,8,119,8,10,13,38,13,30,11,220,10,23,9,106,8,226,8,239,8,66,8,13,8,23,9,252,8,133,8,119,8,133,8,63,9,73,10,140,10,140,10,249,9,103,9,130,9,173,8,213,8,173,8,173,8,36,9,116,9,47,10,140,10,222,11,172,12,246,10,72,11,170,9,26,8,252,8,10,9,50,9,76,9,173,8,106,8,79,8,239,8,196,9,233,10,233,10,60,10,20,10,63,9,92,14,129,14,186,8,46,7,133,8,193,10,166,10,113,10,209,9,159,8,233,10,88,12,166,10,249,9,30,11,209,9,133,8,90,9,173,8,133,8,250,0,3,0,6,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,205,1,73,14,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,147,11,147,11,109,11,30,11,144,12,13,12,156,11,240,11,240,11,194,11,194,11,194,11,147,11,147,11,194,11,156,11,72,11,30,11,30,11,166,10,80,15,174,15,165,11,135,12,135,12,118,11,240,11,30,11,50,12,172,12,109,11,30,11,60,10,249,9,220,10,109,11,188,13,125,12,194,11,31,12,203,11,72,11,109,11,109,11,109,11,109,11,72,11,72,11,72,11,72,11,72,11,193,10,190,19,190,19,118,11,245,13,57,13,240,11,13,12,233,10,88,12,88,12,156,11,30,11,209,9,236,9,193,10,72,11,76,17,53,16,140,10,193,10,156,11,194,11,109,11,30,11,165,11,203,11,109,11,109,11,109,11,109,11,72,11,166,10,36,14,203,11,156,11,240,11,240,11,57,11,246,10,240,11,144,12,231,11,165,11,219,12,219,12,165,11,238,12,175,11,107,20,150,19,236,9,10,13,198,13,57,13,125,12,22,12,48,13,165,11,140,10,87,10,127,10,233,10,30,11,113,10,217,19,54,20,7,18,76,17,156,9,81,11,231,11,135,12,97,12,127,10,180,10,72,11,30,11,233,10,30,11,140,10,50,12,72,11,147,11,109,11,109,11,109,11,109,11,147,11,147,11,147,11,147,11,109,11,109,11],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);allocate([147,11,147,11,147,11,106,16,135,12,165,11,31,12,194,11,72,11,72,11,109,11,156,11,57,11,100,11,203,11,156,11,194,11,125,12,57,11,176,14,176,14,172,12,31,12,165,11,72,11,109,11,72,11,156,11,118,11,233,10,233,10,30,11,72,11,72,11,100,10,14,15,174,15,135,12,50,12,172,12,118,11,231,11,147,11,147,11,13,12,30,11,233,10,233,10,233,10,233,10,20,10,5,15,240,15,29,13,188,13,22,12,180,10,194,11,118,11,50,12,13,12,30,11,30,11,87,10,87,10,30,11,246,10,27,20,30,19,153,12,5,15,113,13,97,12,81,11,85,13,123,13,140,10,20,10,113,10,180,10,30,11,246,10,193,10,13,16,205,14,219,12,88,12,109,11,72,11,72,11,109,11,233,10,180,10,233,10,180,10,233,10,30,11,72,11,246,10,217,19,190,19,231,11,217,13,172,12,240,11,13,12,128,11,31,12,81,11,180,10,180,10,180,10,30,11,233,10,60,10,213,16,213,16,44,11,223,9,135,12,48,13,48,13,3,12,3,12,48,13,240,11,30,11,87,10,20,10,166,10,193,10,240,11,100,11,246,10,72,11,180,10,127,10,81,11,31,12,78,12,78,12,144,12,97,12,240,11,194,11,147,11,30,11,23,17,42,15,109,11,72,11,30,11,72,11,30,11,30,11,72,11,72,11,72,11,30,11,72,11,109,11,72,11,30,11,165,11,100,11,100,11,165,11,165,11,240,11,50,12,144,12,78,12,240,11,194,11,156,11,156,11,156,11,109,11,180,10,133,16,53,16,238,12,19,13,109,11,147,11,72,11,165,11,165,11,30,11,233,10,180,10,30,11,30,11,30,11,233,10,240,15,174,15,31,12,194,11,109,11,109,11,109,11,72,11,109,11,109,11,30,11,30,11,30,11,233,10,72,11,220,10,7,18,223,17,97,12,113,13,135,12,165,11,81,11,222,11,50,12,180,10,127,10,127,10,127,10,180,10,233,10,140,10,53,16,173,16,205,14,73,14,166,10,220,10,72,11,72,11,194,11,156,11,109,11,30,11,127,10,127,10,233,10,72,11,119,16,226,13,193,10,30,11,30,11,72,11,72,11,72,11,109,11,109,11,72,11,109,11,109,11,109,11,147,11,72,11,54,20,57,19,213,8,104,13,205,14,151,13,19,13,30,11,238,12,151,13,78,12,81,11,156,9,183,9,193,10,109,11,123,13,101,14,50,12,125,12,29,13,231,11,135,12,135,12,165,11,144,12,13,12,109,11,109,11,127,10,236,9,130,9,165,11,194,11,233,10,233,10,180,10,233,10,30,11,156,11,240,11,31,12,78,12,78,12,78,12,31,12,194,11,194,11,128,11,57,11,127,10,166,10,220,10,194,11,104,13,217,13,29,13,172,12,240,11,194,11,147,11,109,11,72,11,30,11,203,11,128,11,81,11,194,11,194,11,156,11,203,11,31,12,240,11,240,11,194,11,72,11,30,11,109,11,109,11,72,11,80,15,127,15,194,11,125,12,29,13,144,12,219,12,219,12,151,13,120,14,113,13,166,10,133,8,156,9,20,10,47,10,100,0,3,0,40,0,3,0,3,0,3,0,5,0,14,0,14,0,10,0,11,0,3,0,8,0,9,0,7,0,3,0,91,1,0,32,254,31,246,31,234,31,216,31,194,31,168,31,136,31,98,31,58,31,10,31,216,30,160,30,98,30,34,30,220,29,144,29,66,29,238,28,150,28,58,28,216,27,114,27,10,27,156,26,42,26,180,25,58,25,188,24,60,24,182,23,46,23,160,22,16,22,126,21,232,20,78,20,176,19,16,19,110,18,200,17,30,17,116,16,198,15,22,15,100,14,174,13,248,12,64,12,132,11,200,10,10,10,74,9,138,8,198,7,2,7,62,6,120,5,178,4,234,3,34,3,90,2,146,1,202,0,0,0,54,255,110,254,166,253,222,252,22,252,78,251,136,250,194,249,254,248,58,248,118,247,182,246,246,245,56,245,124,244,192,243,8,243,82,242,156,241,234,240,58,240,140,239,226,238,56,238,146,237,240,236,80,236,178,235,24,235,130,234,240,233,96,233,210,232,74,232,196,231,68,231,198,230,76,230,214,229,100,229,246,228,142,228,40,228,198,227,106,227,18,227,190,226,112,226,36,226,222,225,158,225,96,225,40,225,246,224,198,224,158,224,120,224,88,224,62,224,40,224,22,224,10,224,2,224,0,224,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,95,101,110,99,111,100,101,0,95,100,101,99,111,100,101,0,95,101,110,99,111,100,101,114,95,99,116,108,0,95,100,101,99,111,100,101,114,95,99,116,108,0,100,101,115,116,114,111,121,95,104,97,110,100,108,101,114,0,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,80,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,80,75,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,105,105,0,118,0,118,105,0,105,105,105,105,105,0,105,105,105,105,105,105,105,0,105,105,105,105,105,105,0,118,105,105,0,0,255,0,255,0,255,0,255,0,255,0,254,1,0,1,255,0,254,0,253,2,0,1,255,0,254,0,253,3,0,1,255,117,110,107,110,111,119,110,32,101,114,114,111,114,0,115,117,99,99,101,115,115,0,105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,98,117,102,102,101,114,32,116,111,111,32,115,109,97,108,108,0,105,110,116,101,114,110,97,108,32,101,114,114,111,114,0,99,111,114,114,117,112,116,101,100,32,115,116,114,101,97,109,0,114,101,113,117,101,115,116,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,105,110,118,97,108,105,100,32,115,116,97,116,101,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,0,255,255,156,110,86,70,59,51,45,40,37,33,31,28,26,25,23,22,21,20,19,18,17,16,16,15,15,14,13,13,12,12,12,12,11,11,11,10,10,10,9,9,9,9,9,9,8,8,8,8,8,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,0,25,23,2,0,126,124,119,109,87,41,19,9,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,80,75,69,63,56,49,40,34,29,20,18,10,0,0,0,0,0,0,0,0,110,100,90,84,78,71,65,58,51,45,39,32,26,20,12,0,0,0,0,0,0,118,110,103,93,86,80,75,70,65,59,53,47,40,31,23,15,4,0,0,0,0,126,119,112,104,95,89,83,78,72,66,60,54,47,39,32,25,17,12,1,0,0,134,127,120,114,103,97,91,85,78,72,66,60,54,47,41,35,29,23,16,10,1,144,137,130,124,113,107,101,95,88,82,76,70,64,57,51,45,39,33,26,15,1,152,145,138,132,123,117,111,105,98,92,86,80,74,67,61,55,49,43,36,20,1,162,155,148,142,133,127,121,115,108,102,96,90,84,77,71,65,59,53,46,30,1,172,165,158,152,143,137,131,125,118,112,106,100,94,87,81,75,69,63,56,45,20,200,200,200,200,200,200,200,200,198,193,188,183,178,173,168,163,158,153,148,129,104,40,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,40,15,23,28,31,34,36,38,39,41,42,43,44,45,46,47,47,49,50,51,52,53,54,55,55,57,58,59,60,61,62,63,63,65,66,67,68,69,70,71,71,40,20,33,41,48,53,57,61,64,66,69,71,73,75,76,78,80,82,85,87,89,91,92,94,96,98,101,103,105,107,108,110,112,114,117,119,121,123,124,126,128,40,23,39,51,60,67,73,79,83,87,91,94,97,100,102,105,107,111,115,118,121,124,126,129,131,135,139,142,145,148,150,153,155,159,163,166,169,172,174,177,179,35,28,49,65,78,89,99,107,114,120,126,132,136,141,145,149,153,159,165,171,176,180,185,189,192,199,205,211,216,220,225,229,232,239,245,251,21,33,58,79,97,112,125,137,148,157,166,174,182,189,195,201,207,217,227,235,243,251,17,35,63,86,106,123,139,152,165,177,187,197,206,214,222,230,237,250,25,31,55,75,91,105,117,128,138,146,154,161,168,174,180,185,190,200,208,215,222,229,235,240,245,255,16,36,65,89,110,128,144,159,173,185,196,207,217,226,234,242,250,11,41,74,103,128,151,172,191,209,225,241,255,9,43,79,110,138,163,186,207,227,246,12,39,71,99,123,144,164,182,198,214,228,241,253,9,44,81,113,142,168,192,214,235,255,7,49,90,127,160,191,220,247,6,51,95,134,170,203,234,7,47,87,123,155,184,212,237,6,52,97,137,174,208,240,5,57,106,151,192,231,5,59,111,158,202,243,5,55,103,147,187,224,5,60,113,161,206,248,4,65,122,175,224,4,67,127,182,234,224,224,224,224,224,224,224,224,160,160,160,160,185,185,185,178,178,168,134,61,37,224,224,224,224,224,224,224,224,240,240,240,240,207,207,207,198,198,183,144,66,40,160,160,160,160,160,160,160,160,185,185,185,185,193,193,193,183,183,172,138,64,38,240,240,240,240,240,240,240,240,207,207,207,207,204,204,204,193,193,180,143,66,40,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,183,183,172,138,65,39,207,207,207,207,207,207,207,207,204,204,204,204,201,201,201,188,188,176,141,66,40,193,193,193,193,193,193,193,193,193,193,193,193,194,194,194,184,184,173,139,65,39,204,204,204,204,204,204,204,204,201,201,201,201,198,198,198,187,187,175,140,66,40,72,127,65,129,66,128,65,128,64,128,62,128,64,128,64,128,92,78,92,79,92,78,90,79,116,41,115,40,114,40,132,26,132,26,145,17,161,12,176,10,177,11,24,179,48,138,54,135,54,132,53,134,56,133,55,132,55,132,61,114,70,96,74,88,75,88,87,74,89,66,91,67,100,59,108,50,120,40,122,37,97,43,78,50,83,78,84,81,88,75,86,74,87,71,90,73,93,74,93,74,109,40,114,36,117,34,117,34,143,17,145,18,146,19,162,12,165,10,178,7,189,6,190,8,177,9,23,178,54,115,63,102,66,98,69,99,74,89,71,91,73,91,78,89,86,80,92,66,93,64,102,59,103,60,104,60,117,52,123,44,138,35,133,31,97,38,77,45,61,90,93,60,105,42,107,41,110,45,116,38,113,38,112,38,124,26,132,27,136,19,140,20,155,14,159,16,158,18,170,13,177,10,187,8,192,6,175,9,159,10,21,178,59,110,71,86,75,85,84,83,91,66,88,73,87,72,92,75,98,72,105,58,107,54,115,52,114,55,112,56,129,51,132,40,150,33,140,29,98,35,77,42,42,121,96,66,108,43,111,40,117,44,123,32,120,36,119,33,127,33,134,34,139,21,147,23,152,20,158,25,154,26,166,21,173,16,184,13,184,10,150,13,139,15,22,178,63,114,74,82,84,83,92,82,103,62,96,72,96,67,101,73,107,72,113,55,118,52,125,52,118,52,117,55,135,49,137,39,157,32,145,29,97,33,77,40,2,1,0,0,8,13,16,19,21,23,24,26,27,28,29,30,31,32,32,33,34,34,35,36,36,37,37,224,112,44,15,3,2,1,0,254,237,192,132,70,23,4,0,255,252,226,155,61,11,2,0,250,245,234,203,71,50,42,38,35,33,31,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,179,99,0,71,56,43,30,21,12,6,0,199,165,144,124,109,96,84,71,61,51,42,32,23,15,8,0,241,225,211,199,187,175,164,153,142,132,123,114,105,96,88,80,72,64,57,50,44,38,33,29,24,20,16,12,9,5,2,0,15,131,138,138,155,155,173,173,69,93,115,118,131,138,141,138,150,150,155,150,155,160,166,160,131,128,134,141,141,141,145,145,145,150,155,155,155,155,160,160,160,160,166,166,173,173,182,192,182,192,192,192,205,192,205,224,4,6,24,7,5,0,0,2,0,0,12,28,41,13,252,247,15,42,25,14,1,254,62,41,247,246,37,65,252,3,250,4,66,7,248,16,14,38,253,33,13,22,39,23,12,255,36,64,27,250,249,10,55,43,17,1,1,8,1,1,6,245,74,53,247,244,55,76,244,8,253,3,93,27,252,26,39,59,3,248,2,0,77,11,9,248,22,44,250,7,40,9,26,3,9,249,20,101,249,4,3,248,42,26,0,241,33,68,2,23,254,55,46,254,15,3,255,21,16,41,250,27,61,39,5,245,42,88,4,1,254,60,65,6,252,255,251,73,56,1,247,19,94,29,247,0,12,99,6,4,8,237,102,46,243,3,2,13,3,2,9,235,84,72,238,245,46,104,234,8,18,38,48,23,0,240,70,83,235,11,5,245,117,22,248,250,23,117,244,3,3,248,95,28,4,246,15,77,60,241,255,4,124,2,252,3,38,84,24,231,2,13,42,13,31,21,252,56,46,255,255,35,79,243,19,249,65,88,247,242,20,4,81,49,227,20,0,75,3,239,5,247,44,92,248,1,253,22,69,31,250,95,41,244,5,39,67,16,252,1,0,250,120,55,220,243,44,122,4,232,81,5,11,3,7,2,0,9,10,88,46,2,90,87,93,91,82,98,109,120,118,12,113,115,117,119,99,59,87,111,63,111,112,80,126,124,125,124,129,121,126,23,132,127,127,127,126,127,122,133,130,134,101,118,119,145,126,86,124,120,123,119,170,173,107,109,8,16,32,249,247,246,245,244,234,210,202,201,200,197,174,82,59,56,55,54,46,22,12,11,10,9,7,0,64,0,203,150,0,215,195,166,125,110,82,0,120,0,128,64,0,232,158,10,0,230,0,243,221,192,181,0,171,85,0,192,128,64,0,205,154,102,51,0,213,171,128,85,43,0,224,192,160,128,96,64,32,0,100,40,16,7,3,1,0,253,250,244,233,212,182,150,131,120,110,98,85,72,60,49,40,32,25,19,15,13,11,9,8,7,6,5,4,3,2,1,0,210,208,206,203,199,193,183,168,142,104,74,52,37,27,20,14,10,6,4,2,0,223,201,183,167,152,138,124,111,98,88,79,70,62,56,50,44,39,35,31,27,24,21,18,16,14,12,10,8,6,4,3,2,1,0,188,176,155,138,119,97,67,43,26,10,0,165,119,80,61,47,35,27,20,14,9,4,0,113,63,0,125,51,26,18,15,12,11,10,9,8,7,6,5,4,3,2,1,0,198,105,45,22,15,12,11,10,9,8,7,6,5,4,3,2,1,0,213,162,116,83,59,43,32,24,18,15,12,9,7,6,5,3,2,0,239,187,116,59,28,16,11,10,9,8,7,6,5,4,3,2,1,0,250,229,188,135,86,51,30,19,13,10,8,6,5,4,3,2,1,0,249,235,213,185,156,128,103,83,66,53,42,33,26,21,17,13,10,0,254,249,235,206,164,118,77,46,27,16,10,7,5,4,3,2,1,0,255,253,249,239,220,191,156,119,85,57,37,23,15,10,6,4,2,0,255,253,251,246,237,223,203,179,152,124,98,75,55,40,29,21,15,0,255,254,253,247,220,162,106,67,42,28,18,12,9,6,4,3,2,0,31,57,107,160,205,205,255,255,255,255,255,255,255,255,255,255,255,255,69,47,67,111,166,205,255,255,255,255,255,255,255,255,255,255,255,255,82,74,79,95,109,128,145,160,173,205,205,205,224,255,255,224,255,224,125,74,59,69,97,141,182,255,255,255,255,255,255,255,255,255,255,255,173,115,85,73,76,92,115,145,173,205,224,224,255,255,255,255,255,255,166,134,113,102,101,102,107,118,125,138,145,155,166,182,192,192,205,150,224,182,134,101,83,79,85,97,120,145,173,205,224,255,255,255,255,255,255,224,192,150,120,101,92,89,93,102,118,134,160,182,192,224,224,224,255,224,224,182,155,134,118,109,104,102,106,111,118,131,145,160,173,131,241,190,178,132,87,74,41,14,0,223,193,157,140,106,57,39,18,0,131,74,141,79,80,138,95,104,134,95,99,91,125,93,76,123,115,123,128,0,214,42,0,235,128,21,0,244,184,72,11,0,248,214,128,42,7,0,248,225,170,80,25,5,0,251,236,198,126,54,18,3,0,250,238,211,159,82,35,15,5,0,250,231,203,168,128,88,53,25,6,0,252,238,216,185,148,108,71,40,18,4,0,253,243,225,199,166,128,90,57,31,13,3,0,254,246,233,212,183,147,109,73,44,23,10,2,0,255,250,240,223,198,166,128,90,58,33,16,6,1,0,255,251,244,231,210,181,146,110,75,46,25,12,5,1,0,255,253,248,238,221,196,164,128,92,60,35,18,8,3,1,0,255,253,249,242,229,208,180,146,110,76,48,27,14,7,3,1,0,129,0,207,50,0,236,129,20,0,245,185,72,10,0,249,213,129,42,6,0,250,226,169,87,27,4,0,251,233,194,130,62,20,4,0,250,236,207,160,99,47,17,3,0,255,240,217,182,131,81,41,11,1,0,255,254,233,201,159,107,61,20,2,1,0,255,249,233,206,170,128,86,50,23,7,1,0,255,250,238,217,186,148,108,70,39,18,6,1,0,255,252,243,226,200,166,128,90,56,30,13,4,1,0,255,252,245,231,209,180,146,110,76,47,25,11,4,1,0,255,253,248,237,219,194,163,128,93,62,37,19,8,3,1,0,255,254,250,241,226,205,177,145,111,79,51,30,15,6,2,1,0,129,0,203,54,0,234,129,23,0,245,184,73,10,0,250,215,129,41,5,0,252,232,173,86,24,3,0,253,240,200,129,56,15,2,0,253,244,217,164,94,38,10,1,0,253,245,226,189,132,71,27,7,1,0,253,246,231,203,159,105,56,23,6,1,0,255,248,235,213,179,133,85,47,19,5,1,0,255,254,243,221,194,159,117,70,37,12,2,1,0,255,254,248,234,208,171,128,85,48,22,8,2,1,0,255,254,250,240,220,189,149,107,67,36,16,6,2,1,0,255,254,251,243,227,201,166,128,90,55,29,13,5,2,1,0,255,254,252,246,234,213,183,147,109,73,43,22,10,4,2,1,0,130,0,200,58,0,231,130,26,0,244,184,76,12,0,249,214,130,43,6,0,252,232,173,87,24,3,0,253,241,203,131,56,14,2,0,254,246,221,167,94,35,8,1,0,254,249,232,193,130,65,23,5,1,0,255,251,239,211,162,99,45,15,4,1,0,255,251,243,223,186,131,74,33,11,3,1,0,255,252,245,230,202,158,105,57,24,8,2,1,0,255,253,247,235,214,179,132,84,44,19,7,2,1,0,255,254,250,240,223,196,159,112,69,36,15,6,2,1,0,255,254,253,245,231,209,176,136,93,55,27,11,3,2,1,0,255,254,253,252,239,221,194,158,117,76,42,18,4,3,2,1,0,0,0,2,5,9,14,20,27,35,44,54,65,77,90,104,119,135,254,49,67,77,82,93,99,198,11,18,24,31,36,45,255,46,66,78,87,94,104,208,14,21,32,42,51,66,255,94,104,109,112,115,118,248,53,69,80,88,95,102,6,0,3,0,7,3,0,1,10,0,2,6,18,10,12,4,0,2,0,0,0,9,4,7,4,0,3,12,7,7,0,1,1,1,2,3,3,3,2,3,3,3,2,3,3,3,0,3,12,15,48,51,60,63,192,195,204,207,240,243,252,255,12,35,60,83,108,132,157,180,206,228,15,32,55,77,101,125,151,175,201,225,19,42,66,89,114,137,162,184,209,230,12,25,50,72,97,120,147,172,200,223,26,44,69,90,114,135,159,180,205,225,13,22,53,80,106,130,156,180,205,228,15,25,44,64,90,115,142,168,196,222,19,24,62,82,100,120,145,168,190,214,22,31,50,79,103,120,151,170,203,227,21,29,45,65,106,124,150,171,196,224,30,49,75,97,121,142,165,186,209,229,19,25,52,70,93,116,143,166,192,219,26,34,62,75,97,118,145,167,194,217,25,33,56,70,91,113,143,165,196,223,21,34,51,72,97,117,145,171,196,222,20,29,50,67,90,117,144,168,197,221,22,31,48,66,95,117,146,168,196,222,24,33,51,77,116,134,158,180,200,224,21,28,70,87,106,124,149,170,194,217,26,33,53,64,83,117,152,173,204,225,27,34,65,95,108,129,155,174,210,225,20,26,72,99,113,131,154,176,200,219,34,43,61,78,93,114,155,177,205,229,23,29,54,97,124,138,163,179,209,229,30,38,56,89,118,129,158,178,200,231,21,29,49,63,85,111,142,163,193,222,27,48,77,103,133,158,179,196,215,232,29,47,74,99,124,151,176,198,220,237,33,42,61,76,93,121,155,174,207,225,29,53,87,112,136,154,170,188,208,227,24,30,52,84,131,150,166,186,203,229,37,48,64,84,104,118,156,177,201,230,212,178,148,129,108,96,85,82,79,77,61,59,57,56,51,49,48,45,42,41,40,38,36,34,31,30,21,12,10,3,1,0,255,245,244,236,233,225,217,203,190,176,175,161,149,136,125,114,102,91,81,71,60,52,43,35,28,20,19,18,12,11,5,0,179,138,140,148,151,149,153,151,163,116,67,82,59,92,72,100,89,92,16,0,0,0,0,99,66,36,36,34,36,34,34,34,34,83,69,36,52,34,116,102,70,68,68,176,102,68,68,34,65,85,68,84,36,116,141,152,139,170,132,187,184,216,137,132,249,168,185,139,104,102,100,68,68,178,218,185,185,170,244,216,187,187,170,244,187,187,219,138,103,155,184,185,137,116,183,155,152,136,132,217,184,184,170,164,217,171,155,139,244,169,184,185,170,164,216,223,218,138,214,143,188,218,168,244,141,136,155,170,168,138,220,219,139,164,219,202,216,137,168,186,246,185,139,116,185,219,185,138,100,100,134,100,102,34,68,68,100,68,168,203,221,218,168,167,154,136,104,70,164,246,171,137,139,137,155,218,219,139,255,254,253,238,14,3,2,1,0,255,254,252,218,35,3,2,1,0,255,254,250,208,59,4,2,1,0,255,254,246,194,71,10,2,1,0,255,252,236,183,82,8,2,1,0,255,252,235,180,90,17,2,1,0,255,248,224,171,97,30,4,1,0,255,254,236,173,95,37,7,1,0,255,255,255,131,6,145,255,255,255,255,255,236,93,15,96,255,255,255,255,255,194,83,25,71,221,255,255,255,255,162,73,34,66,162,255,255,255,210,126,73,43,57,173,255,255,255,201,125,71,48,58,130,255,255,255,166,110,73,57,62,104,210,255,255,251,123,65,55,68,100,171,255,7,23,38,54,69,85,100,116,131,147,162,178,193,208,223,239,13,25,41,55,69,83,98,112,127,142,157,171,187,203,220,236,15,21,34,51,61,78,92,106,126,136,152,167,185,205,225,240,10,21,36,50,63,79,95,110,126,141,157,173,189,205,221,237,17,20,37,51,59,78,89,107,123,134,150,164,184,205,224,240,10,15,32,51,67,81,96,112,129,142,158,173,189,204,220,236,8,21,37,51,65,79,98,113,126,138,155,168,179,192,209,218,12,15,34,55,63,78,87,108,118,131,148,167,185,203,219,236,16,19,32,36,56,79,91,108,118,136,154,171,186,204,220,237,11,28,43,58,74,89,105,120,135,150,165,180,196,211,226,241,6,16,33,46,60,75,92,107,123,137,156,169,185,199,214,225,11,19,30,44,57,74,89,105,121,135,152,169,186,202,218,234,12,19,29,46,57,71,88,100,120,132,148,165,182,199,216,233,17,23,35,46,56,77,92,106,123,134,152,167,185,204,222,237,14,17,45,53,63,75,89,107,115,132,151,171,188,206,221,240,9,16,29,40,56,71,88,103,119,137,154,171,189,205,222,237,16,19,36,48,57,76,87,105,118,132,150,167,185,202,218,236,12,17,29,54,71,81,94,104,126,136,149,164,182,201,221,237,15,28,47,62,79,97,115,129,142,155,168,180,194,208,223,238,8,14,30,45,62,78,94,111,127,143,159,175,192,207,223,239,17,30,49,62,79,92,107,119,132,145,160,174,190,204,220,235,14,19,36,45,61,76,91,108,121,138,154,172,189,205,222,238,12,18,31,45,60,76,91,107,123,138,154,171,187,204,221,236,13,17,31,43,53,70,83,103,114,131,149,167,185,203,220,237,17,22,35,42,58,78,93,110,125,139,155,170,188,206,224,240,8,15,34,50,67,83,99,115,131,146,162,178,193,209,224,239,13,16,41,66,73,86,95,111,128,137,150,163,183,206,225,241,17,25,37,52,63,75,92,102,119,132,144,160,175,191,212,231,19,31,49,65,83,100,117,133,147,161,174,187,200,213,227,242,18,31,52,68,88,103,117,126,138,149,163,177,192,207,223,239,16,29,47,61,76,90,106,119,133,147,161,176,193,209,224,240,15,21,35,50,61,73,86,97,110,119,129,141,175,198,218,237,225,204,201,184,183,175,158,154,153,135,119,115,113,110,109,99,98,95,79,68,52,50,48,45,43,32,31,27,18,10,3,0,255,251,235,230,212,201,196,182,167,166,163,151,138,124,110,104,90,78,76,70,69,57,45,34,24,21,11,6,5,4,3,0,175,148,160,176,178,173,174,164,177,174,196,182,198,192,182,68,62,66,60,72,117,85,90,118,136,151,142,160,142,155,0,0,0,0,0,0,0,1,100,102,102,68,68,36,34,96,164,107,158,185,180,185,139,102,64,66,36,34,34,0,1,32,208,139,141,191,152,185,155,104,96,171,104,166,102,102,102,132,1,0,0,0,0,16,16,0,80,109,78,107,185,139,103,101,208,212,141,139,173,153,123,103,36,0,0,0,0,0,0,1,48,0,0,0,0,0,0,32,68,135,123,119,119,103,69,98,68,103,120,118,118,102,71,98,134,136,157,184,182,153,139,134,208,168,248,75,189,143,121,107,32,49,34,34,34,0,17,2,210,235,139,123,185,137,105,134,98,135,104,182,100,183,171,134,100,70,68,70,66,66,34,131,64,166,102,68,36,2,1,0,134,166,102,68,34,34,66,132,212,246,158,139,107,107,87,102,100,219,125,122,137,118,103,132,114,135,137,105,171,106,50,34,164,214,141,143,185,151,121,103,192,34,0,0,0,0,0,1,208,109,74,187,134,249,159,137,102,110,154,118,87,101,119,101,0,2,0,36,36,66,68,35,96,164,102,100,36,0,2,33,167,138,174,102,100,84,2,2,100,107,120,119,36,197,24,0,255,254,253,244,12,3,2,1,0,255,254,252,224,38,3,2,1,0,255,254,251,209,57,4,2,1,0,255,254,244,195,69,4,2,1,0,255,251,232,184,84,7,2,1,0,255,254,240,186,86,14,2,1,0,255,254,239,178,91,30,5,1,0,255,248,227,177,100,19,2,1,0,255,255,255,156,4,154,255,255,255,255,255,227,102,15,92,255,255,255,255,255,213,83,24,72,236,255,255,255,255,150,76,33,63,214,255,255,255,190,121,77,43,55,185,255,255,255,245,137,71,43,59,139,255,255,255,255,131,66,50,66,107,194,255,255,166,116,76,55,53,125,255,255,0,15,8,7,4,11,12,3,2,13,10,5,6,9,14,1,0,9,6,3,4,5,8,1,2,7,0,1,0,0,0,1,0,0,1,255,1,255,2,254,2,254,3,253,0,1,0,1,255,2,255,2,254,3,254,3,253,7,254,7,0,2,255,255,255,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,255,2,1,0,1,1,0,0,255,255,0,0,1,255,0,1,255,0,255,1,254,2,254,254,2,253,2,3,253,252,3,252,4,4,251,5,250,251,6,249,6,5,8,247,0,0,1,0,0,0,0,0,0,0,255,1,0,0,1,255,0,1,255,255,1,255,2,1,255,2,254,254,2,254,2,2,3,253,0,1,0,0,0,0,0,0,1,0,1,0,0,1,255,1,0,0,2,1,255,2,255,255,2,255,2,2,255,3,254,254,254,3,0,1,0,0,1,0,1,255,2,255,2,255,2,3,254,3,254,254,4,4,253,5,253,252,6,252,6,5,251,8,250,251,249,9,251,8,255,6,255,6,252,10,250,10,254,6,255,6,251,10,247,12,253,7,254,7,249,13,16,24,34,118,111,105,100,0,98,111,111,108,0,99,104,97,114,0,108,111,110,103,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,115,116,100,58,58,119,115,116,114,105,110,103,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,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,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,98,97,100,95,97,108,108,111,99,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,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,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,68,110,0,98,0,99,0,104,0,97,0,115,0,116,0,105,0,106,0,108,0,109,0,102,0,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,115,116,100,58,58,115,116,114,105,110,103,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720);var tempDoublePtr=STATICTOP;STATICTOP+=16;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}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return(new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n"))(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,(function(message){this.name=errorName;this.message=message;var stack=(new Error(message)).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}}));errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=(function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}});return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach((function(type){typeDependencies[type]=dependentTypes}));function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push((function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}}))}}));if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options){options=options||{};if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach((function(cb){cb()}))}}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":(function(){return undefined}),"toWireType":(function(destructors,o){return undefined})})}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(wt){return!!wt}),"toWireType":(function(destructors,o){return o?trueValue:falseValue}),"argPackAdvance":8,"readValueFromPointer":(function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])}),destructorFunction:null})}Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function _free(){}Module["_free"]=_free;function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){var length=HEAPU32[value>>2];var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}_free(value);return a.join("")}),"toWireType":(function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}function getTAElement(ta,index){return ta[index]}function getStringElement(string,index){return string.charCodeAt(index)}var getElement;if(value instanceof Uint8Array){getElement=getTAElement}else if(value instanceof Int8Array){getElement=getTAElement}else if(typeof value==="string"){getElement=getStringElement}else{throwBindingError("Cannot pass non-string to std::string")}var length=value.length;var ptr=_malloc(4+length);HEAPU32[ptr>>2]=length;for(var i=0;i<length;++i){var charCode=getElement(value,i);if(charCode>255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=(function(value){return value});if(minRange===0){var bitshift=32-8*size;fromWireType=(function(value){return value<<bitshift>>>bitshift})}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}});clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function runDestructor(handle){var $$=handle.$$;if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}this.$$.count.value-=1;var toDelete=0===this.$$.count.value;if(toDelete){runDestructor(this)}if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=(function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)});proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){var ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register((function(){clonedHandle["delete"]()})));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return Object.create(prototype,{$$:{value:record}})}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value}}function requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i<signature.length;++i){args.push("a"+i)}var name="dynCall_"+signature+"_"+rawFunction;var body="return function "+name+"("+args.join(", ")+") {\n";body+=" return dynCall(rawFunction"+(args.length?", ":"")+args.join(", ")+");\n";body+="};\n";return(new Function("dynCall","rawFunction",body))(dynCall,rawFunction)}var fp;if(Module["FUNCTION_TABLE_"+signature]!==undefined){fp=Module["FUNCTION_TABLE_"+signature][rawFunction]}else if(typeof FUNCTION_TABLE!=="undefined"){fp=FUNCTION_TABLE[rawFunction]}else{var dc=asm["dynCall_"+signature];if(dc===undefined){dc=asm["dynCall_"+signature.replace(/f/g,"d")];if(dc===undefined){throwBindingError("No dynCall invoker for signature: "+signature)}}fp=makeDynCaller(dc)}if(typeof fp!=="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=requireFunction(upcastSignature,upcast)}if(downcast){downcast=requireFunction(downcastSignature,downcast)}rawDestructor=requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,(function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])}));whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],(function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,(function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)}));var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]}))}var _llvm_fabs_f64=Math_abs;Module["_i64Add"]=_i64Add;var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module["count_emval_handles"]=count_emval_handles;Module["get_first_emval"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1};case null:{return 2};case true:{return 3};case false:{return 4};default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv}),"toWireType":(function(destructors,value){return __emval_register(value)}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function ___cxa_allocate_exception(size){return _malloc(size)}Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_bitshift64Lshr"]=_bitshift64Lshr;function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],(function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,(function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}var destructors=[];var args=new Array(argCount);args[0]=rawConstructor;for(var i=1;i<argCount;++i){args[i]=argTypes[i]["toWireType"](destructors,arguments[i-1])}var ptr=invoker.apply(null,args);runDestructors(destructors);return argTypes[0]["fromWireType"](ptr)};return[]}));return[]}))}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return(function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])});case 3:return(function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])});default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){return value}),"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value}),"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",(function(){}));dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var argsList="";var argsListWired="";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?", ":"")+"arg"+i;argsListWired+=(i!==0?", ":"")+"arg"+i+"Wired"}var invokerFnBody="return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n"+"if (arguments.length !== "+(argCount-2)+") {\n"+"throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount-2)+" args!');\n"+"}\n";var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}if(needsDestructorStack){invokerFnBody+="var destructors = [];\n"}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["throwBindingError","invoker","fn","runDestructors","retType","classParam"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+="var thisWired = classParam.toWireType("+dtorStack+", this);\n"}for(var i=0;i<argCount-2;++i){invokerFnBody+="var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";args1.push("argType"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired="thisWired"+(argsListWired.length>0?", ":"")+argsListWired}var returns=argTypes[0].name!=="void";invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";args1.push(paramName+"_dtor");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+="var ret = retType.fromWireType(rv);\n"+"return ret;\n"}else{}invokerFnBody+="}\n";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],(function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,(function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn);if(undefined===proto[methodName].overloadTable){proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}return[]}));return[]}))}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}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}function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());return self.LLVM_SAVEDSTACKS.length-1}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=(function(){return HEAPU16});shift=1}else if(charSize===4){getHeap=(function(){return HEAPU32});shift=2}registerType(rawType,{name:name,"fromWireType":(function(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAP[start+i])}_free(value);return a.join("")}),"toWireType":(function(destructors,value){var HEAP=getHeap();var length=value.length;var ptr=_malloc(4+length*charSize);HEAPU32[ptr>>2]=length;var start=ptr+4>>shift;for(var i=0;i<length;++i){HEAP[start+i]=value.charCodeAt(i)}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}Module["_memmove"]=_memmove;function ___gxx_personality_v0(){}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],(function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,(function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]}));return[]}))}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity,"byteLength":byteLength};Module.asmLibraryArg={"abort":abort,"assert":assert,"invoke_iiii":invoke_iiii,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_ii":invoke_ii,"invoke_viiiiiii":invoke_viiiiiii,"invoke_v":invoke_v,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiii":invoke_viiii,"floatReadValueFromPointer":floatReadValueFromPointer,"simpleReadValueFromPointer":simpleReadValueFromPointer,"throwInternalError":throwInternalError,"get_first_emval":get_first_emval,"_llvm_fabs_f64":_llvm_fabs_f64,"getLiveInheritedInstances":getLiveInheritedInstances,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"ClassHandle":ClassHandle,"getShiftFromSize":getShiftFromSize,"_sbrk":_sbrk,"_emscripten_memcpy_big":_emscripten_memcpy_big,"runDestructor":runDestructor,"_sysconf":_sysconf,"throwInstanceAlreadyDeleted":throwInstanceAlreadyDeleted,"__embind_register_std_string":__embind_register_std_string,"init_RegisteredPointer":init_RegisteredPointer,"ClassHandle_isAliasOf":ClassHandle_isAliasOf,"_llvm_stacksave":_llvm_stacksave,"flushPendingDeletes":flushPendingDeletes,"makeClassHandle":makeClassHandle,"whenDependentTypesAreResolved":whenDependentTypesAreResolved,"__embind_register_class_constructor":__embind_register_class_constructor,"init_ClassHandle":init_ClassHandle,"ClassHandle_clone":ClassHandle_clone,"RegisteredClass":RegisteredClass,"_llvm_stackrestore":_llvm_stackrestore,"___cxa_find_matching_catch":___cxa_find_matching_catch,"embind_init_charCodes":embind_init_charCodes,"___setErrNo":___setErrNo,"readLatin1String":readLatin1String,"__embind_register_bool":__embind_register_bool,"___resumeException":___resumeException,"createNamedFunction":createNamedFunction,"__embind_register_emval":__embind_register_emval,"__emval_decref":__emval_decref,"init_embind":init_embind,"constNoSmartPtrRawPointerToWireType":constNoSmartPtrRawPointerToWireType,"heap32VectorToArray":heap32VectorToArray,"ClassHandle_delete":ClassHandle_delete,"RegisteredPointer_destructor":RegisteredPointer_destructor,"ensureOverloadTable":ensureOverloadTable,"_time":_time,"new_":new_,"downcastPointer":downcastPointer,"replacePublicSymbol":replacePublicSymbol,"__embind_register_class":__embind_register_class,"_llvm_pow_f64":_llvm_pow_f64,"ClassHandle_deleteLater":ClassHandle_deleteLater,"RegisteredPointer_deleteObject":RegisteredPointer_deleteObject,"ClassHandle_isDeleted":ClassHandle_isDeleted,"__embind_register_integer":__embind_register_integer,"___cxa_allocate_exception":___cxa_allocate_exception,"_embind_repr":_embind_repr,"throwUnboundTypeError":throwUnboundTypeError,"craftInvokerFunction":craftInvokerFunction,"runDestructors":runDestructors,"makeLegalFunctionName":makeLegalFunctionName,"upcastPointer":upcastPointer,"init_emval":init_emval,"shallowCopyInternalPointer":shallowCopyInternalPointer,"nonConstNoSmartPtrRawPointerToWireType":nonConstNoSmartPtrRawPointerToWireType,"_abort":_abort,"throwBindingError":throwBindingError,"getTypeName":getTypeName,"exposePublicSymbol":exposePublicSymbol,"RegisteredPointer_fromWireType":RegisteredPointer_fromWireType,"__embind_register_memory_view":__embind_register_memory_view,"getInheritedInstance":getInheritedInstance,"setDelayFunction":setDelayFunction,"___gxx_personality_v0":___gxx_personality_v0,"extendError":extendError,"__embind_register_void":__embind_register_void,"RegisteredPointer_getPointee":RegisteredPointer_getPointee,"__emval_register":__emval_register,"__embind_register_std_wstring":__embind_register_std_wstring,"__embind_register_class_function":__embind_register_class_function,"RegisteredPointer":RegisteredPointer,"__embind_register_class_class_function":__embind_register_class_class_function,"_pthread_self":_pthread_self,"getBasestPointer":getBasestPointer,"getInheritedInstanceCount":getInheritedInstanceCount,"__embind_register_float":__embind_register_float,"integerReadValueFromPointer":integerReadValueFromPointer,"genericPointerToWireType":genericPointerToWireType,"registerType":registerType,"___cxa_throw":___cxa_throw,"count_emval_handles":count_emval_handles,"requireFunction":requireFunction,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM
var asm=(function(global,env,buffer) {
"almost asm";var a=global.Int8Array;var b=global.Int16Array;var c=global.Int32Array;var d=global.Uint8Array;var e=global.Uint16Array;var f=global.Uint32Array;var g=global.Float32Array;var h=global.Float64Array;var i=new a(buffer);var j=new b(buffer);var k=new c(buffer);var l=new d(buffer);var m=new e(buffer);var n=new f(buffer);var o=new g(buffer);var p=new h(buffer);var q=global.byteLength;var r=env.STACKTOP|0;var s=env.STACK_MAX|0;var t=env.tempDoublePtr|0;var u=env.ABORT|0;var v=env.cttz_i8|0;var w=0;var x=0;var y=0;var z=0;var A=global.NaN,B=global.Infinity;var C=0,D=0,E=0,F=0,G=0.0,H=0,I=0,J=0,K=0.0;var L=0;var M=0;var N=0;var O=0;var P=0;var Q=0;var R=0;var S=0;var T=0;var U=0;var V=global.Math.floor;var W=global.Math.abs;var X=global.Math.sqrt;var Y=global.Math.pow;var Z=global.Math.cos;var _=global.Math.sin;var $=global.Math.tan;var aa=global.Math.acos;var ba=global.Math.asin;var ca=global.Math.atan;var da=global.Math.atan2;var ea=global.Math.exp;var fa=global.Math.log;var ga=global.Math.ceil;var ha=global.Math.imul;var ia=global.Math.min;var ja=global.Math.clz32;var ka=env.abort;var la=env.assert;var ma=env.invoke_iiii;var na=env.invoke_viiiii;var oa=env.invoke_vi;var pa=env.invoke_vii;var qa=env.invoke_iiiiiii;var ra=env.invoke_ii;var sa=env.invoke_viiiiiii;var ta=env.invoke_v;var ua=env.invoke_iiiii;var va=env.invoke_viiiiii;var wa=env.invoke_iiiiii;var xa=env.invoke_viiii;var ya=env.floatReadValueFromPointer;var za=env.simpleReadValueFromPointer;var Aa=env.throwInternalError;var Ba=env.get_first_emval;var Ca=env._llvm_fabs_f64;var Da=env.getLiveInheritedInstances;var Ea=env.__ZSt18uncaught_exceptionv;var Fa=env.ClassHandle;var Ga=env.getShiftFromSize;var Ha=env._sbrk;var Ia=env._emscripten_memcpy_big;var Ja=env.runDestructor;var Ka=env._sysconf;var La=env.throwInstanceAlreadyDeleted;var Ma=env.__embind_register_std_string;var Na=env.init_RegisteredPointer;var Oa=env.ClassHandle_isAliasOf;var Pa=env._llvm_stacksave;var Qa=env.flushPendingDeletes;var Ra=env.makeClassHandle;var Sa=env.whenDependentTypesAreResolved;var Ta=env.__embind_register_class_constructor;var Ua=env.init_ClassHandle;var Va=env.ClassHandle_clone;var Wa=env.RegisteredClass;var Xa=env._llvm_stackrestore;var Ya=env.___cxa_find_matching_catch;var Za=env.embind_init_charCodes;var _a=env.___setErrNo;var $a=env.readLatin1String;var ab=env.__embind_register_bool;var bb=env.___resumeException;var cb=env.createNamedFunction;var db=env.__embind_register_emval;var eb=env.__emval_decref;var fb=env.init_embind;var gb=env.constNoSmartPtrRawPointerToWireType;var hb=env.heap32VectorToArray;var ib=env.ClassHandle_delete;var jb=env.RegisteredPointer_destructor;var kb=env.ensureOverloadTable;var lb=env._time;var mb=env.new_;var nb=env.downcastPointer;var ob=env.replacePublicSymbol;var pb=env.__embind_register_class;var qb=env._llvm_pow_f64;var rb=env.ClassHandle_deleteLater;var sb=env.RegisteredPointer_deleteObject;var tb=env.ClassHandle_isDeleted;var ub=env.__embind_register_integer;var vb=env.___cxa_allocate_exception;var wb=env._embind_repr;var xb=env.throwUnboundTypeError;var yb=env.craftInvokerFunction;var zb=env.runDestructors;var Ab=env.makeLegalFunctionName;var Bb=env.upcastPointer;var Cb=env.init_emval;var Db=env.shallowCopyInternalPointer;var Eb=env.nonConstNoSmartPtrRawPointerToWireType;var Fb=env._abort;var Gb=env.throwBindingError;var Hb=env.getTypeName;var Ib=env.exposePublicSymbol;var Jb=env.RegisteredPointer_fromWireType;var Kb=env.__embind_register_memory_view;var Lb=env.getInheritedInstance;var Mb=env.setDelayFunction;var Nb=env.___gxx_personality_v0;var Ob=env.extendError;var Pb=env.__embind_register_void;var Qb=env.RegisteredPointer_getPointee;var Rb=env.__emval_register;var Sb=env.__embind_register_std_wstring;var Tb=env.__embind_register_class_function;var Ub=env.RegisteredPointer;var Vb=env.__embind_register_class_class_function;var Wb=env._pthread_self;var Xb=env.getBasestPointer;var Yb=env.getInheritedInstanceCount;var Zb=env.__embind_register_float;var _b=env.integerReadValueFromPointer;var $b=env.genericPointerToWireType;var ac=env.registerType;var bc=env.___cxa_throw;var cc=env.count_emval_handles;var dc=env.requireFunction;var ec=0.0;function fc(newBuffer){if(q(newBuffer)&16777215||q(newBuffer)<=16777215||q(newBuffer)>2147483648)return false;i=new a(newBuffer);j=new b(newBuffer);k=new c(newBuffer);l=new d(newBuffer);m=new e(newBuffer);n=new f(newBuffer);o=new g(newBuffer);p=new h(newBuffer);buffer=newBuffer;return true}
// EMSCRIPTEN_START_FUNCS
function je(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;F=r;r=r+32|0;A=F;if((d|0)==0?(k[a+2404+(c<<2)>>2]|0)==0:0){v=b+28|0;h=k[v>>2]|0;w=b+32|0;d=k[w>>2]|0;f=h>>>8;c=-1;while(1){c=c+1|0;g=ha(l[33950+c>>0]|0,f)|0;if(d>>>0>=g>>>0)break;else h=g}n=d-g|0;k[w>>2]=n;d=h-g|0;k[v>>2]=d;if(d>>>0<8388609){q=b+20|0;s=b+40|0;t=b+24|0;p=k[b+4>>2]|0;u=k[q>>2]|0;f=k[t>>2]|0;o=k[s>>2]|0;h=n;while(1){u=u+8|0;k[q>>2]=u;d=d<<8;k[v>>2]=d;if(f>>>0<p>>>0){E=f+1|0;k[t>>2]=E;g=l[(k[b>>2]|0)+f>>0]|0;f=E}else g=0;k[s>>2]=g;h=((g|o<<8)>>>1&255|h<<8&2147483392)^255;k[w>>2]=h;if(d>>>0>=8388609)break;else o=g}}}else{t=b+28|0;h=k[t>>2]|0;u=b+32|0;c=k[u>>2]|0;d=h>>>8;v=-1;while(1){f=v+1|0;g=ha(l[33946+f>>0]|0,d)|0;if(c>>>0<g>>>0){v=f;h=g}else break}f=c-g|0;k[u>>2]=f;c=h-g|0;k[t>>2]=c;if(c>>>0<8388609){o=b+20|0;p=b+40|0;q=b+24|0;n=k[b+4>>2]|0;s=k[o>>2]|0;d=k[q>>2]|0;h=k[p>>2]|0;g=f;while(1){s=s+8|0;k[o>>2]=s;c=c<<8;k[t>>2]=c;if(d>>>0<n>>>0){E=d+1|0;k[q>>2]=E;f=l[(k[b>>2]|0)+d>>0]|0;d=E}else f=0;k[p>>2]=f;g=((f|h<<8)>>>1&255|g<<8&2147483392)^255;k[u>>2]=g;if(c>>>0>=8388609)break;else h=f}}c=v+3|0}d=c>>>1;x=a+2736|0;E=a+2765|0;i[E>>0]=d;i[a+2766>>0]=c&1;z=(e|0)==2;if(z){w=b+28|0;g=k[w>>2]|0;u=b+32|0;c=k[u>>2]|0;d=g>>>8;v=-1;while(1){v=v+1|0;f=ha(l[33409+v>>0]|0,d)|0;if(c>>>0>=f>>>0)break;else g=f}h=c-f|0;k[u>>2]=h;c=g-f|0;k[w>>2]=c;if(c>>>0<8388609){p=b+20|0;q=b+40|0;s=b+24|0;o=k[b+4>>2]|0;t=k[p>>2]|0;d=k[s>>2]|0;n=k[q>>2]|0;g=h;while(1){t=t+8|0;k[p>>2]=t;c=c<<8;k[w>>2]=c;if(d>>>0<o>>>0){D=d+1|0;k[s>>2]=D;f=l[(k[b>>2]|0)+d>>0]|0;d=D}else f=0;k[q>>2]=f;g=((f|n<<8)>>>1&255|g<<8&2147483392)^255;k[u>>2]=g;if(c>>>0>=8388609)break;else n=f}}i[x>>0]=v;D=u}else{c=d<<24>>24;w=b+28|0;h=k[w>>2]|0;v=b+32|0;d=k[v>>2]|0;f=h>>>8;t=-1;while(1){t=t+1|0;g=ha(l[33385+(c<<3)+t>>0]|0,f)|0;if(d>>>0>=g>>>0)break;else h=g}f=d-g|0;k[v>>2]=f;c=h-g|0;k[w>>2]=c;if(c>>>0<8388609){o=b+20|0;p=b+40|0;q=b+24|0;n=k[b+4>>2]|0;s=k[o>>2]|0;d=k[q>>2]|0;h=k[p>>2]|0;g=f;while(1){s=s+8|0;k[o>>2]=s;c=c<<8;k[w>>2]=c;if(d>>>0<n>>>0){D=d+1|0;k[q>>2]=D;f=l[(k[b>>2]|0)+d>>0]|0;d=D}else f=0;k[p>>2]=f;g=((f|h<<8)>>>1&255|g<<8&2147483392)^255;k[v>>2]=g;if(c>>>0>=8388609)break;else h=f}}i[x>>0]=t<<3;g=k[w>>2]|0;c=k[v>>2]|0;d=g>>>8;u=-1;while(1){u=u+1|0;f=ha(l[33975+u>>0]|0,d)|0;if(c>>>0>=f>>>0)break;else g=f}h=c-f|0;k[v>>2]=h;c=g-f|0;k[w>>2]=c;if(c>>>0<8388609){p=b+20|0;q=b+40|0;s=b+24|0;o=k[b+4>>2]|0;t=k[p>>2]|0;d=k[s>>2]|0;n=k[q>>2]|0;g=h;while(1){t=t+8|0;k[p>>2]=t;c=c<<8;k[w>>2]=c;if(d>>>0<o>>>0){D=d+1|0;k[s>>2]=D;f=l[(k[b>>2]|0)+d>>0]|0;d=D}else f=0;k[q>>2]=f;g=((f|n<<8)>>>1&255|g<<8&2147483392)^255;k[v>>2]=g;if(c>>>0>=8388609)break;else n=f}}i[x>>0]=(l[x>>0]|0)+u;D=v}B=a+2324|0;if((k[B>>2]|0)>1){q=b+20|0;s=b+40|0;t=b+24|0;u=b+4|0;v=1;do{g=k[w>>2]|0;c=k[D>>2]|0;d=g>>>8;x=-1;while(1){x=x+1|0;f=ha(l[33409+x>>0]|0,d)|0;if(c>>>0>=f>>>0)break;else g=f}h=c-f|0;k[D>>2]=h;c=g-f|0;k[w>>2]=c;if(c>>>0<8388609){o=k[u>>2]|0;p=k[q>>2]|0;d=k[t>>2]|0;n=k[s>>2]|0;g=h;while(1){p=p+8|0;k[q>>2]=p;c=c<<8;k[w>>2]=c;if(d>>>0<o>>>0){y=d+1|0;k[t>>2]=y;f=l[(k[b>>2]|0)+d>>0]|0;d=y}else f=0;k[s>>2]=f;g=((f|n<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else n=f}}i[a+2736+v>>0]=x;v=v+1|0}while((v|0)<(k[B>>2]|0))}y=a+2732|0;h=k[y>>2]|0;c=ha(j[h>>1]|0,i[E>>0]>>1)|0;c=(k[h+16>>2]|0)+c|0;h=k[w>>2]|0;d=k[D>>2]|0;f=h>>>8;t=-1;while(1){t=t+1|0;g=ha(l[c+t>>0]|0,f)|0;if(d>>>0>=g>>>0)break;else h=g}f=d-g|0;k[D>>2]=f;c=h-g|0;k[w>>2]=c;if(c>>>0<8388609){o=b+20|0;p=b+40|0;q=b+24|0;n=k[b+4>>2]|0;s=k[o>>2]|0;d=k[q>>2]|0;h=k[p>>2]|0;g=f;while(1){s=s+8|0;k[o>>2]=s;c=c<<8;k[w>>2]=c;if(d>>>0<n>>>0){x=d+1|0;k[q>>2]=x;f=l[(k[b>>2]|0)+d>>0]|0;d=x}else f=0;k[p>>2]=f;g=((f|h<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else h=f}}i[a+2744>>0]=t;g=k[y>>2]|0;c=j[g+2>>1]|0;a:do if(c<<16>>16>0){f=c<<16>>16;c=(k[g+24>>2]|0)+((ha(f,t<<24>>24)|0)/2|0)|0;d=0;while(1){x=i[c>>0]|0;j[A+(d<<1)>>1]=((x&255)>>>1&7)*9;j[A+((d|1)<<1)>>1]=((x&255)>>>5&255)*9;d=d+2|0;if((d|0)>=(f|0))break;else c=c+1|0}t=b+20|0;u=b+40|0;v=b+24|0;x=b+4|0;c=g;s=0;while(1){d=(k[c+28>>2]|0)+(j[A+(s<<1)>>1]|0)|0;n=k[w>>2]|0;f=k[D>>2]|0;g=n>>>8;q=-1;while(1){c=q+1|0;h=ha(l[d+c>>0]|0,g)|0;if(f>>>0<h>>>0){q=c;n=h}else break}f=f-h|0;k[D>>2]=f;d=n-h|0;k[w>>2]=d;if(d>>>0<8388609){o=k[x>>2]|0;p=k[t>>2]|0;g=k[v>>2]|0;n=k[u>>2]|0;while(1){p=p+8|0;k[t>>2]=p;d=d<<8;k[w>>2]=d;if(g>>>0<o>>>0){G=g+1|0;k[v>>2]=G;h=l[(k[b>>2]|0)+g>>0]|0;g=G}else h=0;k[u>>2]=h;f=((h|n<<8)>>>1&255|f<<8&2147483392)^255;k[D>>2]=f;if(d>>>0>=8388609){h=f;break}else n=h}}else h=f;switch(q|0){case -1:{f=d>>>8;q=-1;while(1){q=q+1|0;g=ha(l[33983+q>>0]|0,f)|0;if(h>>>0>=g>>>0)break;else d=g}h=h-g|0;k[D>>2]=h;d=d-g|0;k[w>>2]=d;if(d>>>0<8388609){o=k[x>>2]|0;p=k[t>>2]|0;f=k[v>>2]|0;n=k[u>>2]|0;while(1){p=p+8|0;k[t>>2]=p;d=d<<8;k[w>>2]=d;if(f>>>0<o>>>0){G=f+1|0;k[v>>2]=G;g=l[(k[b>>2]|0)+f>>0]|0;f=G}else g=0;k[u>>2]=g;h=((g|n<<8)>>>1&255|h<<8&2147483392)^255;k[D>>2]=h;if(d>>>0>=8388609)break;else n=g}}c=c-q|0;break}case 7:{f=d>>>8;q=-1;while(1){q=q+1|0;g=ha(l[33983+q>>0]|0,f)|0;if(h>>>0>=g>>>0)break;else d=g}h=h-g|0;k[D>>2]=h;d=d-g|0;k[w>>2]=d;if(d>>>0<8388609){o=k[x>>2]|0;p=k[t>>2]|0;f=k[v>>2]|0;n=k[u>>2]|0;while(1){p=p+8|0;k[t>>2]=p;d=d<<8;k[w>>2]=d;if(f>>>0<o>>>0){G=f+1|0;k[v>>2]=G;g=l[(k[b>>2]|0)+f>>0]|0;f=G}else g=0;k[u>>2]=g;h=((g|n<<8)>>>1&255|h<<8&2147483392)^255;k[D>>2]=h;if(d>>>0>=8388609)break;else n=g}}c=q+c|0;break}default:{}}s=s+1|0;i[a+2744+s>>0]=c+252;c=k[y>>2]|0;if((s|0)>=(j[c+2>>1]|0))break a}}while(0);if((k[B>>2]|0)==4){g=k[w>>2]|0;c=k[D>>2]|0;d=g>>>8;u=-1;while(1){u=u+1|0;f=ha(l[33952+u>>0]|0,d)|0;if(c>>>0>=f>>>0)break;else g=f}h=c-f|0;k[D>>2]=h;c=g-f|0;k[w>>2]=c;if(c>>>0<8388609){p=b+20|0;q=b+40|0;s=b+24|0;o=k[b+4>>2]|0;t=k[p>>2]|0;d=k[s>>2]|0;n=k[q>>2]|0;g=h;while(1){t=t+8|0;k[p>>2]=t;c=c<<8;k[w>>2]=c;if(d>>>0<o>>>0){G=d+1|0;k[s>>2]=G;f=l[(k[b>>2]|0)+d>>0]|0;d=G}else f=0;k[q>>2]=f;g=((f|n<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else n=f}}i[a+2767>>0]=u}else i[a+2767>>0]=4;do if((i[E>>0]|0)==2){if(z?(k[a+2396>>2]|0)==2:0){g=k[w>>2]|0;c=k[D>>2]|0;d=g>>>8;v=-1;while(1){u=v+1|0;f=ha(l[34022+u>>0]|0,d)|0;if(c>>>0<f>>>0){v=u;g=f}else break}h=c-f|0;k[D>>2]=h;c=g-f|0;k[w>>2]=c;if(c>>>0<8388609){p=b+20|0;q=b+40|0;s=b+24|0;o=k[b+4>>2]|0;t=k[p>>2]|0;d=k[s>>2]|0;n=k[q>>2]|0;g=h;while(1){t=t+8|0;k[p>>2]=t;c=c<<8;k[w>>2]=c;if(d>>>0<o>>>0){G=d+1|0;k[s>>2]=G;f=l[(k[b>>2]|0)+d>>0]|0;d=G}else f=0;k[q>>2]=f;g=((f|n<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else n=f}}if((u&65535)<<16>>16>0){c=a+2400|0;d=v+65528+(m[c>>1]|0)&65535;j[a+2762>>1]=d}else C=110}else C=110;if((C|0)==110){g=k[w>>2]|0;c=k[D>>2]|0;d=g>>>8;u=-1;while(1){u=u+1|0;f=ha(l[33990+u>>0]|0,d)|0;if(c>>>0>=f>>>0)break;else g=f}h=c-f|0;k[D>>2]=h;c=g-f|0;k[w>>2]=c;if(c>>>0<8388609){p=b+20|0;q=b+40|0;s=b+24|0;o=k[b+4>>2]|0;t=k[p>>2]|0;d=k[s>>2]|0;n=k[q>>2]|0;g=h;while(1){t=t+8|0;k[p>>2]=t;c=c<<8;k[w>>2]=c;if(d>>>0<o>>>0){G=d+1|0;k[s>>2]=G;f=l[(k[b>>2]|0)+d>>0]|0;d=G}else f=0;k[q>>2]=f;g=((f|n<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else n=f}}c=(ha(k[a+2316>>2]>>1,u<<16>>16)|0)&65535;t=a+2762|0;j[t>>1]=c;c=k[a+2380>>2]|0;h=k[w>>2]|0;d=k[D>>2]|0;f=h>>>8;u=-1;while(1){u=u+1|0;g=ha(l[c+u>>0]|0,f)|0;if(d>>>0>=g>>>0)break;else h=g}f=d-g|0;k[D>>2]=f;c=h-g|0;k[w>>2]=c;if(c>>>0<8388609){o=b+20|0;p=b+40|0;q=b+24|0;n=k[b+4>>2]|0;s=k[o>>2]|0;d=k[q>>2]|0;h=k[p>>2]|0;g=f;while(1){s=s+8|0;k[o>>2]=s;c=c<<8;k[w>>2]=c;if(d>>>0<n>>>0){G=d+1|0;k[q>>2]=G;f=l[(k[b>>2]|0)+d>>0]|0;d=G}else f=0;k[p>>2]=f;g=((f|h<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else h=f}}d=(m[t>>1]|0)+u&65535;j[t>>1]=d;c=a+2400|0}j[c>>1]=d;c=k[a+2384>>2]|0;h=k[w>>2]|0;d=k[D>>2]|0;f=h>>>8;t=-1;while(1){t=t+1|0;g=ha(l[c+t>>0]|0,f)|0;if(d>>>0>=g>>>0)break;else h=g}f=d-g|0;k[D>>2]=f;c=h-g|0;k[w>>2]=c;if(c>>>0<8388609){o=b+20|0;p=b+40|0;q=b+24|0;n=k[b+4>>2]|0;s=k[o>>2]|0;d=k[q>>2]|0;h=k[p>>2]|0;g=f;while(1){s=s+8|0;k[o>>2]=s;c=c<<8;k[w>>2]=c;if(d>>>0<n>>>0){G=d+1|0;k[q>>2]=G;f=l[(k[b>>2]|0)+d>>0]|0;d=G}else f=0;k[p>>2]=f;g=((f|h<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else h=f}}i[a+2764>>0]=t;g=k[w>>2]|0;c=k[D>>2]|0;d=g>>>8;u=-1;while(1){u=u+1|0;f=ha(l[33450+u>>0]|0,d)|0;if(c>>>0>=f>>>0)break;else g=f}h=c-f|0;k[D>>2]=h;c=g-f|0;k[w>>2]=c;if(c>>>0<8388609){p=b+20|0;q=b+40|0;s=b+24|0;o=k[b+4>>2]|0;t=k[p>>2]|0;d=k[s>>2]|0;n=k[q>>2]|0;g=h;while(1){t=t+8|0;k[p>>2]=t;c=c<<8;k[w>>2]=c;if(d>>>0<o>>>0){G=d+1|0;k[s>>2]=G;f=l[(k[b>>2]|0)+d>>0]|0;d=G}else f=0;k[q>>2]=f;g=((f|n<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else n=f}}c=u&255;s=a+2768|0;i[s>>0]=c;b:do if((k[B>>2]|0)>0){t=b+20|0;u=b+40|0;v=b+24|0;x=b+4|0;d=0;while(1){c=k[21340+(c<<24>>24<<2)>>2]|0;n=k[w>>2]|0;f=k[D>>2]|0;g=n>>>8;q=-1;while(1){q=q+1|0;h=ha(l[c+q>>0]|0,g)|0;if(f>>>0>=h>>>0)break;else n=h}g=f-h|0;k[D>>2]=g;c=n-h|0;k[w>>2]=c;if(c>>>0<8388609){o=k[x>>2]|0;p=k[t>>2]|0;f=k[v>>2]|0;n=k[u>>2]|0;h=g;while(1){p=p+8|0;k[t>>2]=p;c=c<<8;k[w>>2]=c;if(f>>>0<o>>>0){G=f+1|0;k[v>>2]=G;g=l[(k[b>>2]|0)+f>>0]|0;f=G}else g=0;k[u>>2]=g;h=((g|n<<8)>>>1&255|h<<8&2147483392)^255;k[D>>2]=h;if(c>>>0>=8388609)break;else n=g}}i[a+2740+d>>0]=q;d=d+1|0;if((d|0)>=(k[B>>2]|0))break b;c=i[s>>0]|0}}while(0);if(e|0){i[a+2769>>0]=0;break}g=k[w>>2]|0;c=k[D>>2]|0;d=g>>>8;u=-1;while(1){u=u+1|0;f=ha(l[33943+u>>0]|0,d)|0;if(c>>>0>=f>>>0)break;else g=f}h=c-f|0;k[D>>2]=h;c=g-f|0;k[w>>2]=c;if(c>>>0<8388609){p=b+20|0;q=b+40|0;s=b+24|0;o=k[b+4>>2]|0;t=k[p>>2]|0;d=k[s>>2]|0;n=k[q>>2]|0;g=h;while(1){t=t+8|0;k[p>>2]=t;c=c<<8;k[w>>2]=c;if(d>>>0<o>>>0){G=d+1|0;k[s>>2]=G;f=l[(k[b>>2]|0)+d>>0]|0;d=G}else f=0;k[q>>2]=f;g=((f|n<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else n=f}}i[a+2769>>0]=u}while(0);k[a+2396>>2]=i[E>>0];g=k[w>>2]|0;c=k[D>>2]|0;d=g>>>8;u=-1;while(1){u=u+1|0;f=ha(l[33960+u>>0]|0,d)|0;if(c>>>0>=f>>>0)break;else g=f}h=c-f|0;k[D>>2]=h;c=g-f|0;k[w>>2]=c;if(c>>>0>=8388609){b=u&255;G=a+2770|0;i[G>>0]=b;r=F;return}p=b+20|0;q=b+40|0;s=b+24|0;o=k[b+4>>2]|0;t=k[p>>2]|0;d=k[s>>2]|0;n=k[q>>2]|0;g=h;while(1){t=t+8|0;k[p>>2]=t;c=c<<8;k[w>>2]=c;if(d>>>0<o>>>0){G=d+1|0;k[s>>2]=G;f=l[(k[b>>2]|0)+d>>0]|0;d=G}else f=0;k[q>>2]=f;g=((f|n<<8)>>>1&255|g<<8&2147483392)^255;k[D>>2]=g;if(c>>>0>=8388609)break;else n=f}b=u&255;G=a+2770|0;i[G>>0]=b;r=F;return}function ke(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,m=0,n=0,o=0,p=0,q=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;L=r;r=r+176|0;J=L+160|0;K=L+80|0;G=L;f=c>>1;H=a+28|0;n=k[H>>2]|0;I=a+32|0;g=k[I>>2]|0;h=n>>>8;w=-1;while(1){w=w+1|0;m=ha(l[34445+(f*9|0)+w>>0]|0,h)|0;if(g>>>0>=m>>>0)break;else n=m}g=g-m|0;k[I>>2]=g;f=n-m|0;k[H>>2]=f;if(f>>>0<8388609){p=a+20|0;q=a+40|0;s=a+24|0;o=k[a+4>>2]|0;t=k[p>>2]|0;h=k[s>>2]|0;n=k[q>>2]|0;while(1){t=t+8|0;k[p>>2]=t;f=f<<8;k[H>>2]=f;if(h>>>0<o>>>0){F=h+1|0;k[s>>2]=F;m=l[(k[a>>2]|0)+h>>0]|0;h=F}else m=0;k[q>>2]=m;g=((m|n<<8)>>>1&255|g<<8&2147483392)^255;k[I>>2]=g;if(f>>>0>=8388609)break;else n=m}}B=e>>4;B=((B<<4|0)<(e|0)&1)+B|0;if((B|0)>0){C=a+20|0;D=a+40|0;E=a+24|0;F=a+4|0;v=0;do{u=G+(v<<2)|0;k[u>>2]=0;h=f>>>8;q=-1;while(1){q=q+1|0;m=ha(l[34103+(w*18|0)+q>>0]|0,h)|0;if(g>>>0>=m>>>0)break;else f=m}g=g-m|0;k[I>>2]=g;f=f-m|0;k[H>>2]=f;if(f>>>0<8388609){o=k[F>>2]|0;p=k[C>>2]|0;h=k[E>>2]|0;n=k[D>>2]|0;while(1){p=p+8|0;k[C>>2]=p;f=f<<8;k[H>>2]=f;if(h>>>0<o>>>0){z=h+1|0;k[E>>2]=z;m=l[(k[a>>2]|0)+h>>0]|0;h=z}else m=0;k[D>>2]=m;g=((m|n<<8)>>>1&255|g<<8&2147483392)^255;k[I>>2]=g;if(f>>>0>=8388609)break;else n=m}}t=K+(v<<2)|0;k[t>>2]=q;if((q|0)==17){s=0;do{s=s+1|0;h=34265+((s|0)==10&1)|0;m=f>>>8;q=-1;while(1){q=q+1|0;n=ha(l[h+q>>0]|0,m)|0;if(g>>>0>=n>>>0)break;else f=n}g=g-n|0;k[I>>2]=g;f=f-n|0;k[H>>2]=f;if(f>>>0<8388609){o=k[F>>2]|0;p=k[C>>2]|0;h=k[E>>2]|0;n=k[D>>2]|0;while(1){p=p+8|0;k[C>>2]=p;f=f<<8;k[H>>2]=f;if(h>>>0<o>>>0){z=h+1|0;k[E>>2]=z;m=l[(k[a>>2]|0)+h>>0]|0;h=z}else m=0;k[D>>2]=m;g=((m|n<<8)>>>1&255|g<<8&2147483392)^255;k[I>>2]=g;if(f>>>0>=8388609)break;else n=m}}}while((q|0)==17);k[u>>2]=s;k[t>>2]=q}v=v+1|0}while((v|0)!=(B|0));z=0;do{s=k[K+(z<<2)>>2]|0;f=b+(z<<16>>12<<1)|0;if((s|0)>0){g=34937+(l[35089+s>>0]|0)|0;o=k[H>>2]|0;h=k[I>>2]|0;m=o>>>8;t=-1;while(1){t=t+1|0;n=ha(l[g+t>>0]|0,m)|0;if(h>>>0>=n>>>0)break;else o=n}h=h-n|0;k[I>>2]=h;g=o-n|0;k[H>>2]=g;if(g>>>0<8388609){p=k[F>>2]|0;q=k[C>>2]|0;m=k[E>>2]|0;o=k[D>>2]|0;while(1){q=q+8|0;k[C>>2]=q;g=g<<8;k[H>>2]=g;if(m>>>0<p>>>0){y=m+1|0;k[E>>2]=y;n=l[(k[a>>2]|0)+m>>0]|0;m=y}else n=0;k[D>>2]=n;h=((n|o<<8)>>>1&255|h<<8&2147483392)^255;k[I>>2]=h;if(g>>>0>=8388609){o=h;break}else o=n}}else o=h;y=s-t|0;x=t<<16;s=x>>16;if((x|0)>0){h=34785+(l[35089+s>>0]|0)|0;m=g>>>8;t=-1;while(1){t=t+1|0;n=ha(l[h+t>>0]|0,m)|0;if(o>>>0>=n>>>0)break;else g=n}h=o-n|0;k[I>>2]=h;g=g-n|0;k[H>>2]=g;if(g>>>0<8388609){p=k[F>>2]|0;q=k[C>>2]|0;m=k[E>>2]|0;o=k[D>>2]|0;while(1){q=q+8|0;k[C>>2]=q;g=g<<8;k[H>>2]=g;if(m>>>0<p>>>0){x=m+1|0;k[E>>2]=x;n=l[(k[a>>2]|0)+m>>0]|0;m=x}else n=0;k[D>>2]=n;h=((n|o<<8)>>>1&255|h<<8&2147483392)^255;k[I>>2]=h;if(g>>>0>=8388609){o=g;p=h;break}else o=n}}else{o=g;p=h}g=s-t|0;x=t<<16;t=x>>16;if((x|0)>0){h=34633+(l[35089+t>>0]|0)|0;m=o>>>8;u=-1;while(1){u=u+1|0;n=ha(l[h+u>>0]|0,m)|0;if(p>>>0>=n>>>0)break;else o=n}m=p-n|0;k[I>>2]=m;h=o-n|0;k[H>>2]=h;if(h>>>0<8388609){q=k[F>>2]|0;s=k[C>>2]|0;n=k[E>>2]|0;p=k[D>>2]|0;while(1){s=s+8|0;k[C>>2]=s;h=h<<8;k[H>>2]=h;if(n>>>0<q>>>0){x=n+1|0;k[E>>2]=x;o=l[(k[a>>2]|0)+n>>0]|0;n=x}else o=0;k[D>>2]=o;m=((o|p<<8)>>>1&255|m<<8&2147483392)^255;k[I>>2]=m;if(h>>>0>=8388609){q=h;s=m;break}else p=o}}else{q=h;s=m}m=t-u|0;h=f+2|0;x=u<<16;w=x>>16;if((x|0)>0){n=34481+(l[35089+w>>0]|0)|0;o=q>>>8;x=-1;while(1){x=x+1|0;p=ha(l[n+x>>0]|0,o)|0;if(s>>>0>=p>>>0)break;else q=p}s=s-p|0;k[I>>2]=s;n=q-p|0;k[H>>2]=n;if(n>>>0<8388609){u=k[F>>2]|0;v=k[C>>2]|0;o=k[E>>2]|0;t=k[D>>2]|0;q=s;while(1){v=v+8|0;k[C>>2]=v;n=n<<8;k[H>>2]=n;if(o>>>0<u>>>0){s=o+1|0;k[E>>2]=s;p=l[(k[a>>2]|0)+o>>0]|0;o=s}else p=0;k[D>>2]=p;q=((p|t<<8)>>>1&255|q<<8&2147483392)^255;k[I>>2]=q;if(n>>>0>=8388609)break;else t=p}}j[f>>1]=x;n=w-x&65535;w=g}else A=62}else A=52}else{g=0;A=52}if((A|0)==52){h=f+2|0;m=0;A=62}if((A|0)==62){A=0;j[f>>1]=0;n=0;w=g}j[h>>1]=n;u=f+4|0;v=f+6|0;x=m<<16;s=x>>16;if((x|0)>0){g=34481+(l[35089+s>>0]|0)|0;o=k[H>>2]|0;h=k[I>>2]|0;m=o>>>8;t=-1;while(1){t=t+1|0;n=ha(l[g+t>>0]|0,m)|0;if(h>>>0>=n>>>0)break;else o=n}m=h-n|0;k[I>>2]=m;g=o-n|0;k[H>>2]=g;if(g>>>0<8388609){p=k[F>>2]|0;q=k[C>>2]|0;h=k[E>>2]|0;o=k[D>>2]|0;n=m;while(1){q=q+8|0;k[C>>2]=q;g=g<<8;k[H>>2]=g;if(h>>>0<p>>>0){x=h+1|0;k[E>>2]=x;m=l[(k[a>>2]|0)+h>>0]|0;h=x}else m=0;k[D>>2]=m;n=((m|o<<8)>>>1&255|n<<8&2147483392)^255;k[I>>2]=n;if(g>>>0>=8388609)break;else o=m}}j[u>>1]=t;g=s-t&65535}else{j[u>>1]=0;g=0}j[v>>1]=g;x=w<<16;t=x>>16;if((x|0)>0){g=34633+(l[35089+t>>0]|0)|0;o=k[H>>2]|0;h=k[I>>2]|0;m=o>>>8;u=-1;while(1){u=u+1|0;n=ha(l[g+u>>0]|0,m)|0;if(h>>>0>=n>>>0)break;else o=n}h=h-n|0;k[I>>2]=h;g=o-n|0;k[H>>2]=g;if(g>>>0<8388609){p=k[F>>2]|0;q=k[C>>2]|0;m=k[E>>2]|0;o=k[D>>2]|0;while(1){q=q+8|0;k[C>>2]=q;g=g<<8;k[H>>2]=g;if(m>>>0<p>>>0){x=m+1|0;k[E>>2]=x;n=l[(k[a>>2]|0)+m>>0]|0;m=x}else n=0;k[D>>2]=n;h=((n|o<<8)>>>1&255|h<<8&2147483392)^255;k[I>>2]=h;if(g>>>0>=8388609){q=g;s=h;break}else o=n}}else{q=g;s=h}m=t-u|0;h=f+8|0;g=f+10|0;x=u<<16;w=x>>16;if((x|0)>0){n=34481+(l[35089+w>>0]|0)|0;o=q>>>8;x=-1;while(1){x=x+1|0;p=ha(l[n+x>>0]|0,o)|0;if(s>>>0>=p>>>0)break;else q=p}s=s-p|0;k[I>>2]=s;n=q-p|0;k[H>>2]=n;if(n>>>0<8388609){u=k[F>>2]|0;v=k[C>>2]|0;o=k[E>>2]|0;t=k[D>>2]|0;q=s;while(1){v=v+8|0;k[C>>2]=v;n=n<<8;k[H>>2]=n;if(o>>>0<u>>>0){s=o+1|0;k[E>>2]=s;p=l[(k[a>>2]|0)+o>>0]|0;o=s}else p=0;k[D>>2]=p;q=((p|t<<8)>>>1&255|q<<8&2147483392)^255;k[I>>2]=q;if(n>>>0>=8388609)break;else t=p}}j[h>>1]=x;h=w-x&65535}else A=91}else{h=f+8|0;g=f+10|0;m=0;A=91}if((A|0)==91){A=0;j[h>>1]=0;h=0}j[g>>1]=h;u=f+12|0;v=f+14|0;x=m<<16;s=x>>16;if((x|0)>0){g=34481+(l[35089+s>>0]|0)|0;o=k[H>>2]|0;h=k[I>>2]|0;m=o>>>8;t=-1;while(1){t=t+1|0;n=ha(l[g+t>>0]|0,m)|0;if(h>>>0>=n>>>0)break;else o=n}m=h-n|0;k[I>>2]=m;g=o-n|0;k[H>>2]=g;if(g>>>0<8388609){p=k[F>>2]|0;q=k[C>>2]|0;h=k[E>>2]|0;o=k[D>>2]|0;n=m;while(1){q=q+8|0;k[C>>2]=q;g=g<<8;k[H>>2]=g;if(h>>>0<p>>>0){x=h+1|0;k[E>>2]=x;m=l[(k[a>>2]|0)+h>>0]|0;h=x}else m=0;k[D>>2]=m;n=((m|o<<8)>>>1&255|n<<8&2147483392)^255;k[I>>2]=n;if(g>>>0>=8388609)break;else o=m}}j[u>>1]=t;g=s-t&65535}else{j[u>>1]=0;g=0}j[v>>1]=g;y=y<<16;s=y>>16;if((y|0)>0){g=34785+(l[35089+s>>0]|0)|0;o=k[H>>2]|0;h=k[I>>2]|0;m=o>>>8;t=-1;while(1){t=t+1|0;n=ha(l[g+t>>0]|0,m)|0;if(h>>>0>=n>>>0)break;else o=n}h=h-n|0;k[I>>2]=h;g=o-n|0;k[H>>2]=g;if(g>>>0<8388609){p=k[F>>2]|0;q=k[C>>2]|0;m=k[E>>2]|0;o=k[D>>2]|0;while(1){q=q+8|0;k[C>>2]=q;g=g<<8;k[H>>2]=g;if(m>>>0<p>>>0){y=m+1|0;k[E>>2]=y;n=l[(k[a>>2]|0)+m>>0]|0;m=y}else n=0;k[D>>2]=n;h=((n|o<<8)>>>1&255|h<<8&2147483392)^255;k[I>>2]=h;if(g>>>0>=8388609){o=g;p=h;break}else o=n}}else{o=g;p=h}g=s-t<<16>>16;y=t<<16;t=y>>16;if((y|0)>0){h=34633+(l[35089+t>>0]|0)|0;m=o>>>8;u=-1;while(1){u=u+1|0;n=ha(l[h+u>>0]|0,m)|0;if(p>>>0>=n>>>0)break;else o=n}m=p-n|0;k[I>>2]=m;h=o-n|0;k[H>>2]=h;if(h>>>0<8388609){q=k[F>>2]|0;s=k[C>>2]|0;n=k[E>>2]|0;p=k[D>>2]|0;while(1){s=s+8|0;k[C>>2]=s;h=h<<8;k[H>>2]=h;if(n>>>0<q>>>0){y=n+1|0;k[E>>2]=y;o=l[(k[a>>2]|0)+n>>0]|0;n=y}else o=0;k[D>>2]=o;m=((o|p<<8)>>>1&255|m<<8&2147483392)^255;k[I>>2]=m;if(h>>>0>=8388609){s=m;break}else p=o}}else s=m;n=t-u|0;m=f+16|0;x=f+18|0;y=u<<16;v=y>>16;if((y|0)>0){o=34481+(l[35089+v>>0]|0)|0;p=h>>>8;w=-1;while(1){w=w+1|0;q=ha(l[o+w>>0]|0,p)|0;if(s>>>0>=q>>>0)break;else h=q}p=s-q|0;k[I>>2]=p;h=h-q|0;k[H>>2]=h;if(h>>>0<8388609){t=k[F>>2]|0;u=k[C>>2]|0;o=k[E>>2]|0;s=k[D>>2]|0;q=p;while(1){u=u+8|0;k[C>>2]=u;h=h<<8;k[H>>2]=h;if(o>>>0<t>>>0){y=o+1|0;k[E>>2]=y;p=l[(k[a>>2]|0)+o>>0]|0;o=y}else p=0;k[D>>2]=p;q=((p|s<<8)>>>1&255|q<<8&2147483392)^255;k[I>>2]=q;if(h>>>0>=8388609)break;else s=p}}j[m>>1]=w;h=x;m=v-w&65535;w=g}else{h=x;A=128}}else A=118}else{g=0;A=118}if((A|0)==118){m=f+16|0;h=f+18|0;n=0;A=128}if((A|0)==128){A=0;j[m>>1]=0;m=0;w=g}j[h>>1]=m;u=f+20|0;v=f+22|0;y=n<<16;s=y>>16;if((y|0)>0){g=34481+(l[35089+s>>0]|0)|0;o=k[H>>2]|0;h=k[I>>2]|0;m=o>>>8;t=-1;while(1){t=t+1|0;n=ha(l[g+t>>0]|0,m)|0;if(h>>>0>=n>>>0)break;else o=n}m=h-n|0;k[I>>2]=m;g=o-n|0;k[H>>2]=g;if(g>>>0<8388609){p=k[F>>2]|0;q=k[C>>2]|0;h=k[E>>2]|0;o=k[D>>2]|0;n=m;while(1){q=q+8|0;k[C>>2]=q;g=g<<8;k[H>>2]=g;if(h>>>0<p>>>0){y=h+1|0;k[E>>2]=y;m=l[(k[a>>2]|0)+h>>0]|0;h=y}else m=0;k[D>>2]=m;n=((m|o<<8)>>>1&255|n<<8&2147483392)^255;k[I>>2]=n;if(g>>>0>=8388609)break;else o=m}}j[u>>1]=t;g=s-t&65535}else{j[u>>1]=0;g=0}j[v>>1]=g;if((w|0)>0){g=34633+(l[35089+w>>0]|0)|0;o=k[H>>2]|0;h=k[I>>2]|0;m=o>>>8;t=-1;while(1){t=t+1|0;n=ha(l[g+t>>0]|0,m)|0;if(h>>>0>=n>>>0)break;else o=n}h=h-n|0;k[I>>2]=h;g=o-n|0;k[H>>2]=g;if(g>>>0<8388609){p=k[F>>2]|0;q=k[C>>2]|0;m=k[E>>2]|0;o=k[D>>2]|0;while(1){q=q+8|0;k[C>>2]=q;g=g<<8;k[H>>2]=g;if(m>>>0<p>>>0){y=m+1|0;k[E>>2]=y;n=l[(k[a>>2]|0)+m>>0]|0;m=y}else n=0;k[D>>2]=n;h=((n|o<<8)>>>1&255|h<<8&2147483392)^255;k[I>>2]=h;if(g>>>0>=8388609){q=g;s=h;break}else o=n}}else{q=g;s=h}y=t<<16;x=y>>16;m=w-t<<16>>16;h=f+24|0;g=f+26|0;if((y|0)>0){n=34481+(l[35089+x>>0]|0)|0;o=q>>>8;w=-1;while(1){w=w+1|0;p=ha(l[n+w>>0]|0,o)|0;if(s>>>0>=p>>>0)break;else q=p}s=s-p|0;k[I>>2]=s;n=q-p|0;k[H>>2]=n;if(n>>>0<8388609){u=k[F>>2]|0;v=k[C>>2]|0;o=k[E>>2]|0;t=k[D>>2]|0;q=s;while(1){v=v+8|0;k[C>>2]=v;n=n<<8;k[H>>2]=n;if(o>>>0<u>>>0){y=o+1|0;k[E>>2]=y;p=l[(k[a>>2]|0)+o>>0]|0;o=y}else p=0;k[D>>2]=p;q=((p|t<<8)>>>1&255|q<<8&2147483392)^255;k[I>>2]=q;if(n>>>0>=8388609)break;else t=p}}j[h>>1]=w;h=x-w&65535}else A=157}else{h=f+24|0;g=f+26|0;m=0;A=157}if((A|0)==157){A=0;j[h>>1]=0;h=0}j[g>>1]=h;t=f+28|0;u=f+30|0;if((m|0)>0){f=34481+(l[35089+m>>0]|0)|0;o=k[H>>2]|0;g=k[I>>2]|0;h=o>>>8;s=-1;while(1){s=s+1|0;n=ha(l[f+s>>0]|0,h)|0;if(g>>>0>=n>>>0)break;else o=n}h=g-n|0;k[I>>2]=h;f=o-n|0;k[H>>2]=f;if(f>>>0<8388609){p=k[F>>2]|0;q=k[C>>2]|0;g=k[E>>2]|0;o=k[D>>2]|0;n=h;while(1){q=q+8|0;k[C>>2]=q;f=f<<8;k[H>>2]=f;if(g>>>0<p>>>0){y=g+1|0;k[E>>2]=y;h=l[(k[a>>2]|0)+g>>0]|0;g=y}else h=0;k[D>>2]=h;n=((h|o<<8)>>>1&255|n<<8&2147483392)^255;k[I>>2]=n;if(f>>>0>=8388609)break;else o=h}}j[t>>1]=s;f=m-s&65535}else{j[t>>1]=0;f=0}j[u>>1]=f}else{g=f+32|0;do{j[f>>1]=0;f=f+2|0}while((f|0)<(g|0))}z=z+1|0}while((z|0)!=(B|0));v=0;do{s=k[G+(v<<2)>>2]|0;if((s|0)>0){t=b+(v<<16>>12<<1)|0;x=0;do{u=t+(x<<1)|0;f=k[H>>2]|0;m=k[I>>2]|0;n=j[u>>1]|0;w=0;do{g=f>>>8;y=-1;while(1){y=y+1|0;h=ha(l[33941+y>>0]|0,g)|0;if(m>>>0>=h>>>0)break;else f=h}q=n<<1;m=m-h|0;k[I>>2]=m;f=f-h|0;k[H>>2]=f;if(f>>>0<8388609){o=k[F>>2]|0;p=k[C>>2]|0;g=k[E>>2]|0;n=k[D>>2]|0;while(1){p=p+8|0;k[C>>2]=p;f=f<<8;k[H>>2]=f;if(g>>>0<o>>>0){A=g+1|0;k[E>>2]=A;h=l[(k[a>>2]|0)+g>>0]|0;g=A}else h=0;k[D>>2]=h;m=((h|n<<8)>>>1&255|m<<8&2147483392)^255;k[I>>2]=m;if(f>>>0>=8388609)break;else n=h}}n=y+q|0;w=w+1|0}while((w|0)!=(s|0));j[u>>1]=n;x=x+1|0}while((x|0)!=16);A=K+(v<<2)|0;k[A>>2]=k[A>>2]|s<<5}v=v+1|0}while((v|0)!=(B|0))}i[J+1>>0]=0;B=35106+(((c<<1)+d<<16>>16)*7|0)|0;v=e+8>>4;if((v|0)<=0){r=L;return}w=a+20|0;x=a+40|0;y=a+24|0;z=a+4|0;A=0;while(1){f=k[K+(A<<2)>>2]|0;if((f|0)>0){t=f&31;i[J>>0]=i[B+(t>>>0<6?t:6)>>0]|0;t=0;do{s=b+(t<<1)|0;if((j[s>>1]|0)>0){m=k[H>>2]|0;f=k[I>>2]|0;g=m>>>8;u=-1;while(1){u=u+1|0;h=ha(l[J+u>>0]|0,g)|0;if(f>>>0>=h>>>0)break;else m=h}n=f-h|0;k[I>>2]=n;f=m-h|0;k[H>>2]=f;if(f>>>0<8388609){p=k[z>>2]|0;q=k[w>>2]|0;g=k[y>>2]|0;o=k[x>>2]|0;m=n;while(1){q=q+8|0;k[w>>2]=q;f=f<<8;k[H>>2]=f;if(g>>>0<p>>>0){e=g+1|0;k[y>>2]=e;h=l[(k[a>>2]|0)+g>>0]|0;g=e}else h=0;k[x>>2]=h;m=((h|o<<8)>>>1&255|m<<8&2147483392)^255;k[I>>2]=m;if(f>>>0>=8388609)break;else o=h}}e=(ha(j[s>>1]|0,(u<<1)+-1|0)|0)&65535;j[s>>1]=e}t=t+1|0}while((t|0)!=16)}A=A+1|0;if((A|0)==(v|0))break;else b=b+32|0}r=L;return}function le(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0;if((e|0)>0)o=0;else return;do{n=b+(o<<2)|0;f=k[n>>2]|0;j=ja(f|0)|0;g=24-j|0;h=0-g|0;do if(g)if((g|0)<0){f=f>>>(g+32|0)|f<<h;break}else{f=f<<32-g|f>>>g;break}while(0);f=f&127;j=(((ha(f*179|0,128-f|0)|0)+-136970240+((f|31-j<<7)<<16)>>16)*2251|0)>>>16;f=j&255;m=a+o|0;i[m>>0]=f;if((j<<24>>24|0)<(i[c>>0]|0)){f=f+1<<24>>24;i[m>>0]=f}g=f<<24>>24>63?63:(f<<24>>24>0?f:0)<<24>>24;i[m>>0]=g;f=i[c>>0]|0;if(!(o|d)){f=(f<<24>>24)+-4|0;if((f|0)>63){if((g|0)<=(f|0))f=(g|0)<63?63:g}else if((g|0)>63)f=63;else f=(g|0)<(f|0)?f:g;f=f&255;i[m>>0]=f;i[c>>0]=f}else{h=g-(f&255)|0;f=h&255;i[m>>0]=f;g=i[c>>0]|0;j=g+8|0;h=h<<24>>24;if((h|0)>(j|0)){f=((h+1+(-8-g)|0)>>>1)+j&255;i[m>>0]=f}f=f<<24>>24>36?36:(f<<24>>24>-4?f:-4)<<24>>24;i[m>>0]=f;if((f|0)>(j|0)){f=(l[c>>0]|0)+((f<<1)-j)|0;i[c>>0]=f;f=f<<24>>24;f=(f|0)<63?f:63}else f=(l[c>>0]|0)+f|0;i[c>>0]=f;i[m>>0]=(l[m>>0]|0)+4;f=i[c>>0]|0}h=f<<24>>24;h=(h*29|0)+2090+(h*7281>>16)|0;h=(h|0)<3967?h:3967;if((h|0)>=0)if((h|0)>3966)f=2147483647;else{f=h>>7;j=1<<f;g=h&127;if((h|0)<2048)f=((ha(ha(g,-174)|0,128-g|0)|0)>>16)+g<<f>>7;else f=ha(((ha(ha(g,-174)|0,128-g|0)|0)>>16)+g|0,j>>7)|0;f=f+j|0}else f=0;k[n>>2]=f;o=o+1|0}while((o|0)!=(e|0));return}function me(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0;if((e|0)>0)l=0;else return;do{f=i[b+l>>0]|0;do if(l|d){f=f+-4|0;g=i[c>>0]|0;if((f|0)>(g+8|0)){f=(f<<1)+248&255;i[c>>0]=f;break}else{f=g+f&255;i[c>>0]=f;break}}else{j=(i[c>>0]|0)+-16|0;f=((f|0)>(j|0)?f:j)&255;i[c>>0]=f}while(0);f=f<<24>>24>63?63:(f<<24>>24>0?f:0)<<24>>24;i[c>>0]=f;f=(f*29|0)+2090+(f*7281>>16)|0;f=(f|0)<3967?f:3967;if((f|0)>=0)if((f|0)>3966)f=2147483647;else{g=f>>7;j=1<<g;h=f&127;if((f|0)<2048)f=((ha(ha(h,-174)|0,128-h|0)|0)>>16)+h<<g>>7;else f=ha(((ha(ha(h,-174)|0,128-h|0)|0)>>16)+h|0,j>>7)|0;f=f+j|0}else f=0;k[a+(l<<2)>>2]=f;l=l+1|0}while((l|0)!=(e|0));return}function ne(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0;u=r;r=r+48|0;p=u+32|0;t=u;s=c+2|0;e=j[s>>1]|0;q=e<<16>>16>0;d=i[b>>0]|0;if(q){d=d<<24>>24;e=e<<16>>16;h=(k[c+24>>2]|0)+((ha(d,e)|0)/2|0)|0;f=k[c+20>>2]|0;g=e+-1|0;m=0;while(1){n=l[h>>0]|0;i[p+m>>0]=i[f+((g&0-(n&1))+m)>>0]|0;o=m|1;i[p+o>>0]=i[f+((g&0-(n>>>4&1))+o)>>0]|0;m=m+2|0;if((m|0)>=(e|0))break;else h=h+1|0}m=b+1|0;b=j[c+4>>1]|0;n=e;f=0;do{o=n;n=n+-1|0;h=(ha(l[p+n>>0]|0,f<<16>>16)|0)>>8;f=i[m+n>>0]|0;g=f<<24>>24<<10;if(f<<24>>24>0)f=g+-102|0;else f=f<<24>>24<0?g|102:g;f=(ha(f>>16,b)|0)+h+((ha(f&65535,b)|0)>>16)|0;j[t+(n<<1)>>1]=f}while((o|0)>1)}else{d=d<<24>>24;e=e<<16>>16}g=ha(e,d)|0;f=(k[c+8>>2]|0)+g|0;g=(k[c+12>>2]|0)+(g<<1)|0;if(q)e=0;else{t=e;c=c+36|0;c=k[c>>2]|0;Be(a,c,t);r=u;return}do{d=(l[f+e>>0]<<7)+((j[t+(e<<1)>>1]<<14|0)/(j[g+(e<<1)>>1]|0)|0)|0;j[a+(e<<1)>>1]=(d|0)>32767?32767:((d|0)<0?0:d)&65535;e=e+1|0;d=j[s>>1]|0}while((e|0)<(d|0));c=c+36|0;c=k[c>>2]|0;Be(a,c,d);r=u;return}function oe(a,b,c,d,e,f,g,h,l,m,n,o,p,q,s){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;s=s|0;var 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,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,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0;eb=r;cb=b+4340|0;k[cb>>2]=i[c+34>>0];db=b+4328|0;u=k[db>>2]|0;t=j[c+30>>1]|0;Ra=c+29|0;Sa=j[29368+(i[Ra>>0]>>1<<2)+((t&65535)<<24>>24<<1)>>1]|0;t=(t&-256)<<16>>16!=1024&1;_a=a+4588|0;Ya=k[_a>>2]|0;$a=a+4580|0;Va=(k[$a>>2]|0)+Ya|0;Ta=r;r=r+((1*(Va<<2)|0)+15&-16)|0;Ua=r;r=r+((1*(Va<<1)|0)+15&-16)|0;Va=a+4584|0;Wa=r;r=r+((1*(k[Va>>2]<<2)|0)+15&-16)|0;Xa=b+4336|0;k[Xa>>2]=Ya;Ya=b+4332|0;k[Ya>>2]=k[_a>>2];Za=a+4576|0;c=k[Za>>2]|0;if((c|0)<=0){m=c;m=m+-1|0;p=p+(m<<2)|0;p=k[p>>2]|0;k[db>>2]=p;p=k[$a>>2]|0;p=b+(p<<1)|0;db=k[_a>>2]|0;db=db<<1;xf(b|0,p|0,db|0)|0;db=b+1280|0;p=k[$a>>2]|0;b=b+1280+(p<<2)|0;p=k[_a>>2]|0;p=p<<2;xf(db|0,b|0,p|0)|0;r=eb;return}Pa=t^1;Qa=b+4348|0;Ma=t<<1^3;Na=a+4636|0;Oa=b+4344|0;Ca=a+4632|0;Da=b+3840|0;Ea=b+3900|0;Fa=b+4324|0;Ga=b+4224|0;Ha=b+4320|0;Ia=(q|0)>2048;Ka=(q|0)/2|0;Ja=Ka+-512|0;Ka=512-Ka|0;La=Sa+-80|0;wa=q<<16>>16;xa=Sa+944|0;ya=ha(Sa,wa)|0;za=ha(xa<<16>>16,wa)|0;Aa=Sa+-944|0;Ba=ha(944-Sa<<16>>16,wa)|0;va=s<<16>>16;ua=0;ta=b+(k[_a>>2]<<1)|0;while(1){qa=f+((ua>>1|Pa)<<4<<1)|0;ra=g+(ua*5<<1)|0;sa=h+(ua*24<<1)|0;B=k[l+(ua<<2)>>2]|0;A=B>>2;B=A|B<<15;k[Qa>>2]=0;c=i[Ra>>0]|0;t=p+(ua<<2)|0;if(c<<24>>24==2){u=k[t>>2]|0;if(!(ua&Ma)){pa=k[_a>>2]|0;w=k[Na>>2]|0;c=-2-u+pa-w|0;ye(Ua+(c<<1)|0,b+(c+(ha(k[Va>>2]|0,ua)|0)<<1)|0,qa,pa-c|0,w);k[Qa>>2]=1;k[Ya>>2]=k[_a>>2];w=1;c=i[Ra>>0]|0}else{w=0;c=2}}else w=0;y=k[t>>2]|0;z=o+(ua<<2)|0;x=k[z>>2]|0;a=(x|0)>1?x:1;t=ja(((a|0)>0?a:0-a|0)|0)|0;a=a<<t+-1;na=a>>16;oa=536870911/(na|0)|0;pa=oa<<16;s=pa>>16;a=536870912-(ha(na,s)|0)-((ha(a&65535,s)|0)>>16)<<3;s=(ha(a,(oa>>15)+1>>1)|0)+pa+(ha(a>>16,s)|0)+((ha(a&65528,s)|0)>>16)|0;t=62-t|0;a=t+-47|0;if((a|0)<1){q=47-t|0;t=-2147483648>>q;a=2147483647>>>q;if((t|0)>(a|0)){if((s|0)<=(t|0))t=(s|0)<(a|0)?a:s}else if((s|0)>(a|0))t=a;else t=(s|0)<(t|0)?t:s;a=t<<q}else a=(a|0)<32?s>>a:0;t=(a>>4)+1|0;v=k[Va>>2]|0;if((v|0)>0){s=t>>>1<<16>>16;t=(t>>16)+1>>1;q=0;do{pa=j[d+(q<<1)>>1]|0;pa=(ha(pa>>16,s)|0)+(ha(pa,t)|0)+((ha(pa&65535,s)|0)>>16)|0;k[Wa+(q<<2)>>2]=pa;q=q+1|0}while((q|0)!=(v|0))}if(w|0){if(!ua)a=((ha(a&65535,va)|0)>>16)+(ha(a>>16,va)|0)<<2;q=k[Ya>>2]|0;t=q+(-2-y)|0;if((t|0)<(q|0)){s=a>>16;a=a&65535;do{pa=j[Ua+(t<<1)>>1]|0;pa=((ha(pa,a)|0)>>16)+(ha(pa,s)|0)|0;k[Ta+(t<<2)>>2]=pa;t=t+1|0}while((t|0)!=(q|0))}}t=k[Oa>>2]|0;if((x|0)!=(t|0)){a=ja(((t|0)>0?t:0-t|0)|0)|0;na=t<<a+-1;t=ja(((x|0)>0?x:0-x|0)|0)|0;pa=x<<t+-1;s=(536870911/(pa>>16|0)|0)<<16>>16;oa=((ha(s,na&65535)|0)>>16)+(ha(s,na>>16)|0)|0;pa=Df(oa|0,((oa|0)<0)<<31>>31|0,pa|0,((pa|0)<0)<<31>>31|0)|0;pa=vf(pa|0,L|0,29)|0;pa=na-(pa&-8)|0;s=(ha(pa>>16,s)|0)+oa+((ha(pa&65535,s)|0)>>16)|0;t=a+28+(1-t)|0;a=t+-16|0;if((t|0)<16){q=16-t|0;t=-2147483648>>q;a=2147483647>>>q;if((t|0)>(a|0)){if((s|0)<=(t|0))t=(s|0)<(a|0)?a:s}else if((s|0)>(a|0))t=a;else t=(s|0)<(t|0)?t:s;s=t<<q}else s=(a|0)<32?s>>a:0;t=k[_a>>2]|0;if((t|0)>0){a=s>>16;q=s&65535;t=(k[Xa>>2]|0)-t|0;do{pa=b+1280+(t<<2)|0;oa=k[pa>>2]|0;na=oa<<16>>16;oa=((ha(na,q)|0)>>16)+(ha(na,a)|0)+(ha((oa>>15)+1>>1,s)|0)|0;k[pa>>2]=oa;t=t+1|0}while((t|0)<(k[Xa>>2]|0))}if((c<<24>>24==2?(k[Qa>>2]|0)==0:0)?(ab=k[Ya>>2]|0,bb=ab+(-2-y)|0,(bb|0)<(ab|0)):0){c=s>>16;t=s&65535;a=bb;do{pa=Ta+(a<<2)|0;oa=k[pa>>2]|0;na=oa<<16>>16;oa=((ha(na,t)|0)>>16)+(ha(na,c)|0)+(ha((oa>>15)+1>>1,s)|0)|0;k[pa>>2]=oa;a=a+1|0}while((a|0)!=(ab|0))}t=s>>16;c=k[Ha>>2]|0;pa=c<<16>>16;a=s&65535;c=((ha(pa,a)|0)>>16)+(ha(pa,t)|0)+(ha((c>>15)+1>>1,s)|0)|0;k[Ha>>2]=c;c=k[Fa>>2]|0;pa=c<<16>>16;c=((ha(pa,a)|0)>>16)+(ha(pa,t)|0)+(ha((c>>15)+1>>1,s)|0)|0;k[Fa>>2]=c;c=0;do{pa=b+3840+(c<<2)|0;oa=k[pa>>2]|0;na=oa<<16>>16;oa=((ha(na,a)|0)>>16)+(ha(na,t)|0)+(ha((oa>>15)+1>>1,s)|0)|0;k[pa>>2]=oa;c=c+1|0}while((c|0)!=16);c=0;do{pa=b+4224+(c<<2)|0;oa=k[pa>>2]|0;na=oa<<16>>16;oa=((ha(na,a)|0)>>16)+(ha(na,t)|0)+(ha((oa>>15)+1>>1,s)|0)|0;k[pa>>2]=oa;c=c+1|0}while((c|0)!=24);k[Oa>>2]=k[z>>2];v=k[Va>>2]|0;x=k[z>>2]|0}t=k[n+(ua<<2)>>2]|0;da=k[Ca>>2]|0;c=k[Na>>2]|0;if((v|0)>0){ea=c>>1;fa=qa+2|0;ga=qa+4|0;ia=qa+6|0;ka=qa+8|0;la=qa+10|0;ma=qa+12|0;na=qa+14|0;oa=qa+16|0;pa=qa+18|0;N=(c|0)==16;O=qa+20|0;P=qa+22|0;Q=qa+24|0;R=qa+26|0;S=qa+28|0;T=qa+30|0;U=(i[Ra>>0]|0)==2;V=ra+2|0;W=ra+4|0;X=ra+6|0;Y=ra+8|0;Z=da>>1;_=(da|0)>2;aa=da+-1|0;$=b+4224+(aa<<2)|0;aa=sa+(aa<<1)|0;ba=k[m+(ua<<2)>>2]<<16>>16;ca=t<<16>>16;K=t>>16;M=(u|0)>0;J=A<<16>>16;H=B>>16;I=x>>>6<<16>>16;E=(x>>21)+1>>1;c=k[cb>>2]|0;F=0;t=Ta+(2-u+(k[Ya>>2]|0)<<2)|0;G=Ea;s=b+1280+(1-u+(k[Xa>>2]|0)<<2)|0;while(1){mb=(ha(c,196314165)|0)+907633515|0;k[cb>>2]=mb;mb=k[G>>2]|0;kb=j[qa>>1]|0;nb=ha(kb,mb>>16)|0;mb=(ha(kb,mb&65535)|0)>>16;kb=k[G+-4>>2]|0;ib=j[fa>>1]|0;lb=ha(ib,kb>>16)|0;kb=(ha(ib,kb&65535)|0)>>16;ib=k[G+-8>>2]|0;gb=j[ga>>1]|0;jb=ha(gb,ib>>16)|0;ib=(ha(gb,ib&65535)|0)>>16;gb=k[G+-12>>2]|0;a=j[ia>>1]|0;hb=ha(a,gb>>16)|0;gb=(ha(a,gb&65535)|0)>>16;a=k[G+-16>>2]|0;w=j[ka>>1]|0;fb=ha(w,a>>16)|0;a=(ha(w,a&65535)|0)>>16;w=k[G+-20>>2]|0;y=j[la>>1]|0;q=ha(y,w>>16)|0;w=(ha(y,w&65535)|0)>>16;y=k[G+-24>>2]|0;A=j[ma>>1]|0;x=ha(A,y>>16)|0;y=(ha(A,y&65535)|0)>>16;A=k[G+-28>>2]|0;C=j[na>>1]|0;z=ha(C,A>>16)|0;A=(ha(C,A&65535)|0)>>16;C=k[G+-32>>2]|0;c=j[oa>>1]|0;B=ha(c,C>>16)|0;C=(ha(c,C&65535)|0)>>16;c=k[G+-36>>2]|0;D=j[pa>>1]|0;c=nb+ea+mb+lb+kb+jb+ib+hb+gb+fb+a+q+w+x+y+z+A+B+C+(ha(D,c>>16)|0)+((ha(D,c&65535)|0)>>16)|0;if(N){C=k[G+-40>>2]|0;fb=j[O>>1]|0;B=ha(fb,C>>16)|0;C=(ha(fb,C&65535)|0)>>16;fb=k[G+-44>>2]|0;hb=j[P>>1]|0;D=ha(hb,fb>>16)|0;fb=(ha(hb,fb&65535)|0)>>16;hb=k[G+-48>>2]|0;jb=j[Q>>1]|0;gb=ha(jb,hb>>16)|0;hb=(ha(jb,hb&65535)|0)>>16;jb=k[G+-52>>2]|0;lb=j[R>>1]|0;ib=ha(lb,jb>>16)|0;jb=(ha(lb,jb&65535)|0)>>16;lb=k[G+-56>>2]|0;nb=j[S>>1]|0;kb=ha(nb,lb>>16)|0;lb=(ha(nb,lb&65535)|0)>>16;nb=k[G+-60>>2]|0;mb=j[T>>1]|0;c=B+c+C+D+fb+gb+hb+ib+jb+kb+lb+(ha(mb,nb>>16)|0)+((ha(mb,nb&65535)|0)>>16)|0}if(U){hb=k[t>>2]|0;jb=j[ra>>1]|0;gb=ha(jb,hb>>16)|0;hb=(ha(jb,hb&65535)|0)>>16;jb=k[t+-4>>2]|0;lb=j[V>>1]|0;ib=ha(lb,jb>>16)|0;jb=(ha(lb,jb&65535)|0)>>16;lb=k[t+-8>>2]|0;nb=j[W>>1]|0;kb=ha(nb,lb>>16)|0;lb=(ha(nb,lb&65535)|0)>>16;nb=k[t+-12>>2]|0;C=j[X>>1]|0;mb=ha(C,nb>>16)|0;nb=(ha(C,nb&65535)|0)>>16;C=k[t+-16>>2]|0;D=j[Y>>1]|0;C=gb+2+hb+ib+jb+kb+lb+mb+nb+(ha(D,C>>16)|0)+((ha(D,C&65535)|0)>>16)|0;D=t+4|0}else{C=0;D=t}a=k[Fa>>2]|0;t=k[Ga>>2]|0;k[Ga>>2]=a;nb=j[sa>>1]|0;a=(ha(nb,a>>16)|0)+Z+((ha(nb,a&65535)|0)>>16)|0;if(_){q=2;do{lb=q+-1|0;kb=b+4224+(lb<<2)|0;nb=k[kb>>2]|0;k[kb>>2]=t;lb=j[sa+(lb<<1)>>1]|0;kb=ha(lb,t>>16)|0;lb=(ha(lb,t&65535)|0)>>16;mb=b+4224+(q<<2)|0;t=k[mb>>2]|0;k[mb>>2]=nb;mb=j[sa+(q<<1)>>1]|0;a=kb+a+lb+(ha(mb,nb>>16)|0)+((ha(mb,nb&65535)|0)>>16)|0;q=q+2|0}while((q|0)<(da|0))}k[$>>2]=t;z=j[aa>>1]|0;z=(ha(z,t>>16)|0)+a+((ha(z,t&65535)|0)>>16)<<1;nb=k[Ha>>2]|0;t=nb>>16;nb=nb&65535;z=((ha(nb,ba)|0)>>16)+(ha(t,ba)|0)+z|0;A=k[b+1280+((k[Xa>>2]|0)+-1<<2)>>2]|0;A=((ha(nb,K)|0)>>16)+(ha(t,K)|0)+(ha(A>>16,ca)|0)+((ha(A&65535,ca)|0)>>16)|0;t=(c<<2)-z-A|0;if(M){mb=(k[s+-8>>2]|0)+(k[s>>2]|0)|0;lb=ha(mb>>16,J)|0;mb=(ha(mb&65535,J)|0)>>16;nb=k[s+-4>>2]|0;B=s+4|0;t=(t<<1)+C-((ha(nb>>16,H)|0)+lb+mb+((ha(nb&65535,H)|0)>>16)<<1)>>2}else{B=s;t=t>>1}y=Wa+(F<<2)|0;x=(k[y>>2]|0)-(t+1>>1)|0;x=(k[cb>>2]|0)<0?0-x|0:x;x=(x|0)>30720?30720:(x|0)<-31744?-31744:x;t=x-Sa|0;do if(Ia){if((t|0)>(Ja|0)){t=t-Ja|0;w=61;break}if((t|0)<(Ka|0)){t=t+Ja|0;w=61;break}else{t=t>>31;w=63;break}}else w=61;while(0);if((w|0)==61){w=0;t=t>>10;if((t|0)>0){q=La+(t<<10)|0;s=q+1024|0;t=q;a=s;q=ha(q<<16>>16,wa)|0;s=ha(s<<16>>16,wa)|0}else w=63}a:do if((w|0)==63)switch(t|0){case 0:{t=Sa;a=xa;q=ya;s=za;break a}case -1:{t=Aa;a=Sa;q=Ba;s=ya;break a}default:{s=(t<<10|80)+Sa|0;t=s;a=s+1024|0;q=ha(0-s<<16>>16,wa)|0;s=ha(-1024-s<<16>>16,wa)|0;break a}}while(0);mb=x-t<<16>>16;nb=x-a<<16>>16;mb=((ha(nb,nb)|0)+s|0)<((ha(mb,mb)|0)+q|0);mb=mb?a:t;nb=e+F|0;i[nb>>0]=((mb>>>9)+1|0)>>>1;mb=mb<<4;mb=((k[cb>>2]|0)<0?0-mb|0:mb)+(C<<1)|0;c=mb+(c<<4)|0;lb=((ha(c>>16,I)|0)+(ha(c,E)|0)+((ha(c&65534,I)|0)>>16)>>7)+1>>1;j[ta+(F<<1)>>1]=(lb|0)>32767?32767:((lb|0)<-32768?-32768:lb)&65535;G=G+4|0;k[G>>2]=c;c=c-(k[y>>2]<<4)|0;k[Fa>>2]=c;c=c-(z<<2)|0;k[Ha>>2]=c;k[b+1280+(k[Xa>>2]<<2)>>2]=c-(A<<2);c=k[Ya>>2]|0;k[Ta+(c<<2)>>2]=mb<<1;k[Xa>>2]=(k[Xa>>2]|0)+1;k[Ya>>2]=c+1;c=(i[nb>>0]|0)+(k[cb>>2]|0)|0;k[cb>>2]=c;F=F+1|0;if((F|0)==(v|0))break;else{t=D;s=B}}}a=Da;c=b+3840+(v<<2)|0;t=a+64|0;do{k[a>>2]=k[c>>2];a=a+4|0;c=c+4|0}while((a|0)<(t|0));t=k[Va>>2]|0;ua=ua+1|0;c=k[Za>>2]|0;if((ua|0)>=(c|0))break;else{e=e+t|0;d=d+(t<<1)|0;ta=ta+(t<<1)|0}}mb=c+-1|0;mb=p+(mb<<2)|0;mb=k[mb>>2]|0;k[db>>2]=mb;mb=k[$a>>2]|0;mb=b+(mb<<1)|0;lb=k[_a>>2]|0;lb=lb<<1;xf(b|0,mb|0,lb|0)|0;lb=b+1280|0;mb=k[$a>>2]|0;mb=b+1280+(mb<<2)|0;nb=k[_a>>2]|0;nb=nb<<2;xf(lb|0,mb|0,nb|0)|0;r=eb;return}function pe(a,b,c,d,e,f,g,h,m,n,o,p,q,s,t){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;s=s|0;t=t|0;var u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,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,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0;qa=r;r=r+176|0;na=qa+160|0;ga=qa;oa=b+4328|0;F=k[oa>>2]|0;la=a+4624|0;A=k[la>>2]|0;pa=r;r=r+((1*(A*1300|0)|0)+15&-16)|0;rf(pa|0,0,A*1300|0)|0;if((A|0)>0){x=b+3840|0;y=b+4224|0;v=k[b+4320>>2]|0;w=k[b+4324>>2]|0;z=l[c+34>>0]|0;u=k[b+1280+((k[a+4588>>2]|0)+-1<<2)>>2]|0;B=0;do{C=z+B&3;k[pa+(B*1300|0)+1288>>2]=C;k[pa+(B*1300|0)+1292>>2]=C;k[pa+(B*1300|0)+1296>>2]=0;k[pa+(B*1300|0)+1280>>2]=v;k[pa+(B*1300|0)+1284>>2]=w;k[pa+(B*1300|0)+1024>>2]=u;C=pa+(B*1300|0)|0;D=x;E=C+64|0;do{k[C>>2]=k[D>>2];C=C+4|0;D=D+4|0}while((C|0)<(E|0));C=pa+(B*1300|0)+1184|0;D=y;E=C+96|0;do{k[C>>2]=k[D>>2];C=C+4|0;D=D+4|0}while((C|0)<(E|0));B=B+1|0}while((B|0)!=(A|0))}x=j[c+30>>1]|0;$=c+29|0;ka=i[$>>0]|0;aa=j[29368+(ka<<24>>24>>1<<2)+((x&65535)<<24>>24<<1)>>1]|0;k[na>>2]=0;ma=a+4584|0;y=k[ma>>2]|0;u=(y|0)>40?40:y;if(ka<<24>>24==2){w=k[a+4576>>2]|0;if((w|0)>0){v=0;do{ka=(k[q+(v<<2)>>2]|0)+-3|0;u=(u|0)<(ka|0)?u:ka;v=v+1|0}while((v|0)!=(w|0));ca=u}else ca=u}else if((F|0)>0){ca=F+-3|0;ca=(u|0)<(ca|0)?u:ca}else ca=u;u=(x&-256)<<16>>16!=1024&1;ia=a+4588|0;V=k[ia>>2]|0;ka=a+4580|0;_=(k[ka>>2]|0)+V|0;Y=r;r=r+((1*(_<<2)|0)+15&-16)|0;Z=r;r=r+((1*(_<<1)|0)+15&-16)|0;_=r;r=r+((1*(y<<2)|0)+15&-16)|0;A=b+(V<<1)|0;ba=b+4336|0;k[ba>>2]=V;V=b+4332|0;k[V>>2]=k[ia>>2];fa=a+4576|0;if((k[fa>>2]|0)>0){W=u^1;X=b+4348|0;O=u<<1^3;P=pa+1296|0;Q=(ca|0)>0;R=p+4|0;S=a+4636|0;T=b+4344|0;U=a+4632|0;N=a+4668|0;M=t<<16>>16;K=0;w=F;v=0;while(1){G=f+((K>>1|W)<<4<<1)|0;H=g+(K*5<<1)|0;I=h+(K*24<<1)|0;J=k[m+(K<<2)>>2]|0;J=J>>>1<<16|J>>2;k[X>>2]=0;u=i[$>>0]|0;C=q+(K<<2)|0;if(u<<24>>24==2){B=k[C>>2]|0;if(!(K&O)){if((K|0)==2){z=k[la>>2]|0;if((z|0)>1){x=k[P>>2]|0;w=0;y=1;while(1){u=k[pa+(y*1300|0)+1296>>2]|0;v=(u|0)<(x|0);w=v?y:w;y=y+1|0;if((y|0)==(z|0))break;else x=v?u:x}}else w=0;if((z|0)>0){u=0;do{if((u|0)!=(w|0)){F=pa+(u*1300|0)+1296|0;k[F>>2]=(k[F>>2]|0)+134217727}u=u+1|0}while((u|0)!=(z|0))}if(Q){u=0;v=(k[na>>2]|0)+ca|0;do{F=(v+-1|0)%40|0;v=(F|0)<0?F+40|0:F;F=u-ca|0;i[e+F>>0]=(((k[pa+(w*1300|0)+544+(v<<2)>>2]|0)>>>9)+1|0)>>>1;t=k[pa+(w*1300|0)+704+(v<<2)>>2]|0;a=k[R>>2]|0;E=a<<16>>16;t=(((ha(E,t&65535)|0)>>16)+(ha(E,t>>16)|0)+(ha((a>>15)+1>>1,t)|0)>>13)+1>>1;j[A+(F<<1)>>1]=(t|0)>32767?32767:((t|0)<-32768?-32768:t)&65535;k[b+1280+(F+(k[ba>>2]|0)<<2)>>2]=k[pa+(w*1300|0)+1024+(v<<2)>>2];u=u+1|0}while((u|0)!=(ca|0));v=0}else v=0}F=k[ia>>2]|0;D=k[S>>2]|0;u=-2-B+F-D|0;ye(Z+(u<<1)|0,b+(u+(ha(k[ma>>2]|0,K)|0)<<1)|0,G,F-u|0,D);k[V>>2]=k[ia>>2];k[X>>2]=1;D=1;u=i[$>>0]|0;F=B;t=v}else{D=0;u=2;F=B;t=v}}else{D=0;F=w;t=v}v=k[la>>2]|0;E=k[C>>2]|0;a=p+(K<<2)|0;x=k[a>>2]|0;y=(x|0)>1?x:1;w=ja(((y|0)>0?y:0-y|0)|0)|0;y=y<<w+-1;ra=y>>16;z=536870911/(ra|0)|0;C=z<<16;B=C>>16;y=536870912-(ha(ra,B)|0)-((ha(y&65535,B)|0)>>16)<<3;B=(ha(y,(z>>15)+1>>1)|0)+C+(ha(y>>16,B)|0)+((ha(y&65528,B)|0)>>16)|0;w=62-w|0;y=w+-47|0;if((y|0)<1){z=47-w|0;w=-2147483648>>z;y=2147483647>>>z;if((w|0)>(y|0)){if((B|0)<=(w|0))w=(B|0)<(y|0)?y:B}else if((B|0)>(y|0))w=y;else w=(B|0)<(w|0)?w:B;z=w<<z}else z=(y|0)<32?B>>y:0;y=(z>>4)+1|0;w=k[ma>>2]|0;if((w|0)>0){C=y>>>1<<16>>16;y=(y>>16)+1>>1;B=0;do{ra=j[d+(B<<1)>>1]|0;ra=(ha(ra>>16,C)|0)+(ha(ra,y)|0)+((ha(ra&65535,C)|0)>>16)|0;k[_+(B<<2)>>2]=ra;B=B+1|0}while((B|0)!=(w|0))}if(D|0){if(!K)z=((ha(z&65535,M)|0)>>16)+(ha(z>>16,M)|0)<<2;B=k[V>>2]|0;y=B+(-2-E)|0;if((y|0)<(B|0)){C=z>>16;z=z&65535;do{ra=j[Z+(y<<1)>>1]|0;ra=((ha(ra,z)|0)>>16)+(ha(ra,C)|0)|0;k[Y+(y<<2)>>2]=ra;y=y+1|0}while((y|0)!=(B|0))}}y=k[T>>2]|0;if((x|0)!=(y|0)){ra=ja(((y|0)>0?y:0-y|0)|0)|0;C=y<<ra+-1;w=ja(((x|0)>0?x:0-x|0)|0)|0;x=x<<w+-1;z=(536870911/(x>>16|0)|0)<<16>>16;D=((ha(z,C&65535)|0)>>16)+(ha(z,C>>16)|0)|0;x=Df(D|0,((D|0)<0)<<31>>31|0,x|0,((x|0)<0)<<31>>31|0)|0;x=vf(x|0,L|0,29)|0;x=C-(x&-8)|0;z=(ha(x>>16,z)|0)+D+((ha(x&65535,z)|0)>>16)|0;w=ra+28+(1-w)|0;x=w+-16|0;if((w|0)<16){y=16-w|0;w=-2147483648>>y;x=2147483647>>>y;if((w|0)>(x|0)){if((z|0)<=(w|0))w=(z|0)<(x|0)?x:z}else if((z|0)>(x|0))w=x;else w=(z|0)<(w|0)?w:z;z=w<<y}else z=(x|0)<32?z>>x:0;w=k[ia>>2]|0;if((w|0)>0){x=z>>16;y=z&65535;w=(k[ba>>2]|0)-w|0;do{ra=b+1280+(w<<2)|0;D=k[ra>>2]|0;C=D<<16>>16;D=((ha(C,y)|0)>>16)+(ha(C,x)|0)+(ha((D>>15)+1>>1,z)|0)|0;k[ra>>2]=D;w=w+1|0}while((w|0)<(k[ba>>2]|0))}if((u<<24>>24==2?(k[X>>2]|0)==0:0)?(da=k[V>>2]|0,ea=da+(-2-E)|0,(ea|0)<(da-ca|0)):0){u=z>>16;w=z&65535;x=da-ca|0;y=ea;do{ra=Y+(y<<2)|0;E=k[ra>>2]|0;D=E<<16>>16;E=((ha(D,w)|0)>>16)+(ha(D,u)|0)+(ha((E>>15)+1>>1,z)|0)|0;k[ra>>2]=E;y=y+1|0}while((y|0)!=(x|0))}if((v|0)>0){w=z>>16;x=z&65535;y=0;do{u=pa+(y*1300|0)+1280|0;ra=k[u>>2]|0;E=ra<<16>>16;ra=((ha(E,x)|0)>>16)+(ha(E,w)|0)+(ha((ra>>15)+1>>1,z)|0)|0;k[u>>2]=ra;u=pa+(y*1300|0)+1284|0;ra=k[u>>2]|0;E=ra<<16>>16;ra=((ha(E,x)|0)>>16)+(ha(E,w)|0)+(ha((ra>>15)+1>>1,z)|0)|0;k[u>>2]=ra;u=0;do{ra=pa+(y*1300|0)+(u<<2)|0;E=k[ra>>2]|0;D=E<<16>>16;E=((ha(D,x)|0)>>16)+(ha(D,w)|0)+(ha((E>>15)+1>>1,z)|0)|0;k[ra>>2]=E;u=u+1|0}while((u|0)!=16);u=0;do{ra=pa+(y*1300|0)+1184+(u<<2)|0;E=k[ra>>2]|0;D=E<<16>>16;E=((ha(D,x)|0)>>16)+(ha(D,w)|0)+(ha((E>>15)+1>>1,z)|0)|0;k[ra>>2]=E;u=u+1|0}while((u|0)!=24);u=0;do{ra=pa+(y*1300|0)+864+(u<<2)|0;E=k[ra>>2]|0;D=E<<16>>16;E=((ha(D,x)|0)>>16)+(ha(D,w)|0)+(ha((E>>15)+1>>1,z)|0)|0;k[ra>>2]=E;ra=pa+(y*1300|0)+1024+(u<<2)|0;E=k[ra>>2]|0;D=E<<16>>16;E=((ha(D,x)|0)>>16)+(ha(D,w)|0)+(ha((E>>15)+1>>1,z)|0)|0;k[ra>>2]=E;u=u+1|0}while((u|0)!=40);y=y+1|0}while((y|0)!=(v|0))}k[T>>2]=k[a>>2];u=i[$>>0]|0;x=k[a>>2]|0;w=k[ma>>2]|0;v=k[la>>2]|0}qe(b,pa,u<<24>>24,_,e,A,Y,ga,G,H,I,F,J,k[n+(K<<2)>>2]|0,k[o+(K<<2)>>2]|0,x,s,aa,w,t,k[U>>2]|0,k[S>>2]|0,k[N>>2]|0,v,na,ca);u=k[ma>>2]|0;e=e+u|0;A=A+(u<<1)|0;K=K+1|0;if((K|0)>=(k[fa>>2]|0))break;else{d=d+(u<<1)|0;w=F;v=t+1|0}}}v=k[la>>2]|0;if((v|0)>1){y=k[pa+1296>>2]|0;u=0;z=1;while(1){w=k[pa+(z*1300|0)+1296>>2]|0;x=(w|0)<(y|0);u=x?z:u;z=z+1|0;if((z|0)==(v|0)){y=u;break}else y=x?w:y}}else y=0;i[c+34>>0]=k[pa+(y*1300|0)+1292>>2];u=k[p+((k[fa>>2]|0)+-1<<2)>>2]|0;if((ca|0)<=0){C=b+3840|0;D=k[ma>>2]|0;D=pa+(y*1300|0)+(D<<2)|0;E=C+64|0;do{k[C>>2]=k[D>>2];C=C+4|0;D=D+4|0}while((C|0)<(E|0));C=b+4224|0;D=pa+(y*1300|0)+1184|0;E=C+96|0;do{k[C>>2]=k[D>>2];C=C+4|0;D=D+4|0}while((C|0)<(E|0));na=pa+(y*1300|0)+1280|0;na=k[na>>2]|0;ra=b+4320|0;k[ra>>2]=na;ra=pa+(y*1300|0)+1284|0;ra=k[ra>>2]|0;pa=b+4324|0;k[pa>>2]=ra;pa=k[fa>>2]|0;pa=pa+-1|0;q=q+(pa<<2)|0;q=k[q>>2]|0;k[oa>>2]=q;q=k[ka>>2]|0;q=b+(q<<1)|0;pa=k[ia>>2]|0;pa=pa<<1;xf(b|0,q|0,pa|0)|0;pa=b+1280|0;q=k[ka>>2]|0;q=b+1280+(q<<2)|0;ra=k[ia>>2]|0;ra=ra<<2;xf(pa|0,q|0,ra|0)|0;r=qa;return}x=u>>>6<<16>>16;v=(u>>21)+1>>1;w=0;u=(k[na>>2]|0)+ca|0;do{ra=(u+-1|0)%40|0;u=(ra|0)<0?ra+40|0:ra;ra=w-ca|0;i[e+ra>>0]=(((k[pa+(y*1300|0)+544+(u<<2)>>2]|0)>>>9)+1|0)>>>1;na=k[pa+(y*1300|0)+704+(u<<2)>>2]|0;na=((ha(na>>16,x)|0)+(ha(na,v)|0)+((ha(na&65535,x)|0)>>16)>>7)+1>>1;j[A+(ra<<1)>>1]=(na|0)>32767?32767:((na|0)<-32768?-32768:na)&65535;k[b+1280+(ra+(k[ba>>2]|0)<<2)>>2]=k[pa+(y*1300|0)+1024+(u<<2)>>2];w=w+1|0}while((w|0)!=(ca|0));C=b+3840|0;D=k[ma>>2]|0;D=pa+(y*1300|0)+(D<<2)|0;E=C+64|0;do{k[C>>2]=k[D>>2];C=C+4|0;D=D+4|0}while((C|0)<(E|0));C=b+4224|0;D=pa+(y*1300|0)+1184|0;E=C+96|0;do{k[C>>2]=k[D>>2];C=C+4|0;D=D+4|0}while((C|0)<(E|0));na=pa+(y*1300|0)+1280|0;na=k[na>>2]|0;ra=b+4320|0;k[ra>>2]=na;ra=pa+(y*1300|0)+1284|0;ra=k[ra>>2]|0;pa=b+4324|0;k[pa>>2]=ra;pa=k[fa>>2]|0;pa=pa+-1|0;q=q+(pa<<2)|0;q=k[q>>2]|0;k[oa>>2]=q;q=k[ka>>2]|0;q=b+(q<<1)|0;pa=k[ia>>2]|0;pa=pa<<1;xf(b|0,q|0,pa|0)|0;pa=b+1280|0;q=k[ka>>2]|0;q=b+1280+(q<<2)|0;ra=k[ia>>2]|0;ra=ra<<2;xf(pa|0,q|0,ra|0)|0;r=qa;return}function qe(a,b,c,d,e,f,g,h,l,m,n,o,p,q,s,t,u,v,w,x,y,z,A,B,C,D){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;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,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,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0;Na=r;Ka=r;r=r+((1*(B*56|0)|0)+15&-16)|0;La=a+4336|0;Ma=a+4332|0;Ja=t>>6;if((w|0)>0){Ca=(c|0)==2;Da=m+2|0;Ea=m+4|0;Fa=m+6|0;Ga=m+8|0;Ha=(o|0)>0;Ia=p<<16>>16;xa=p>>16;ya=(B|0)>0;za=Ka+4|0;Aa=(B|0)>1;Ba=Ka+32|0;ma=(x|0)<1;na=z>>1;oa=l+2|0;pa=l+4|0;qa=l+6|0;ra=l+8|0;sa=l+10|0;ta=l+12|0;ua=l+14|0;va=l+16|0;wa=l+18|0;ea=(z|0)==16;fa=l+20|0;ga=l+22|0;ia=l+24|0;ja=l+26|0;ka=l+28|0;la=l+30|0;$=A<<16>>16;aa=y>>1;ba=(y|0)>2;ca=y+-1|0;da=n+(ca<<1)|0;Z=q<<16>>16;_=s<<16>>16;U=s>>16;V=(u|0)>2048;X=(u|0)/2|0;W=X+-512|0;X=512-X|0;Y=v+-80|0;N=u<<16>>16;O=v+944|0;P=ha(v<<16>>16,N)|0;Q=ha(O<<16>>16,N)|0;R=v+-944|0;S=ha(944-v<<16>>16,N)|0;T=0;t=g+(2-o+(k[Ma>>2]|0)<<2)|0;c=a+1280+(1-o+(k[La>>2]|0)<<2)|0;while(1){if(Ca){E=k[t>>2]|0;G=j[m>>1]|0;o=ha(G,E>>16)|0;E=(ha(G,E&65535)|0)>>16;G=k[t+-4>>2]|0;I=j[Da>>1]|0;F=ha(I,G>>16)|0;G=(ha(I,G&65535)|0)>>16;I=k[t+-8>>2]|0;M=j[Ea>>1]|0;H=ha(M,I>>16)|0;I=(ha(M,I&65535)|0)>>16;M=k[t+-12>>2]|0;K=j[Fa>>1]|0;J=ha(K,M>>16)|0;M=(ha(K,M&65535)|0)>>16;K=k[t+-16>>2]|0;L=j[Ga>>1]|0;K=o+2+E+F+G+H+I+J+M+(ha(L,K>>16)|0)+((ha(L,K&65535)|0)>>16)<<1;L=t+4|0}else{K=0;L=t}if(Ha){M=(k[c+-8>>2]|0)+(k[c>>2]|0)|0;I=ha(M>>16,Ia)|0;M=(ha(M&65535,Ia)|0)>>16;J=k[c+-4>>2]|0;J=K-((ha(J>>16,xa)|0)+I+M+((ha(J&65535,xa)|0)>>16)<<2)|0;M=c+4|0}else{J=0;M=c}if(ya){G=T+15|0;H=d+(T<<2)|0;I=0;do{x=b+(I*1300|0)+1288|0;c=(ha(k[x>>2]|0,196314165)|0)+907633515|0;k[x>>2]=c;c=b+(I*1300|0)+(G<<2)|0;Wa=k[c>>2]|0;Ua=j[l>>1]|0;Xa=ha(Ua,Wa>>16)|0;Wa=(ha(Ua,Wa&65535)|0)>>16;Ua=k[c+-4>>2]|0;Sa=j[oa>>1]|0;Va=ha(Sa,Ua>>16)|0;Ua=(ha(Sa,Ua&65535)|0)>>16;Sa=k[c+-8>>2]|0;Qa=j[pa>>1]|0;Ta=ha(Qa,Sa>>16)|0;Sa=(ha(Qa,Sa&65535)|0)>>16;Qa=k[c+-12>>2]|0;Oa=j[qa>>1]|0;Ra=ha(Oa,Qa>>16)|0;Qa=(ha(Oa,Qa&65535)|0)>>16;Oa=k[c+-16>>2]|0;z=j[ra>>1]|0;Pa=ha(z,Oa>>16)|0;Oa=(ha(z,Oa&65535)|0)>>16;z=k[c+-20>>2]|0;q=j[sa>>1]|0;p=ha(q,z>>16)|0;z=(ha(q,z&65535)|0)>>16;q=k[c+-24>>2]|0;u=j[ta>>1]|0;A=ha(u,q>>16)|0;q=(ha(u,q&65535)|0)>>16;u=k[c+-28>>2]|0;E=j[ua>>1]|0;s=ha(E,u>>16)|0;u=(ha(E,u&65535)|0)>>16;E=k[c+-32>>2]|0;t=j[va>>1]|0;o=ha(t,E>>16)|0;E=(ha(t,E&65535)|0)>>16;t=k[c+-36>>2]|0;F=j[wa>>1]|0;t=Xa+na+Wa+Va+Ua+Ta+Sa+Ra+Qa+Pa+Oa+p+z+A+q+s+u+o+E+(ha(F,t>>16)|0)+((ha(F,t&65535)|0)>>16)|0;if(ea){F=k[c+-40>>2]|0;Pa=j[fa>>1]|0;E=ha(Pa,F>>16)|0;F=(ha(Pa,F&65535)|0)>>16;Pa=k[c+-44>>2]|0;Ra=j[ga>>1]|0;Oa=ha(Ra,Pa>>16)|0;Pa=(ha(Ra,Pa&65535)|0)>>16;Ra=k[c+-48>>2]|0;Ta=j[ia>>1]|0;Qa=ha(Ta,Ra>>16)|0;Ra=(ha(Ta,Ra&65535)|0)>>16;Ta=k[c+-52>>2]|0;Va=j[ja>>1]|0;Sa=ha(Va,Ta>>16)|0;Ta=(ha(Va,Ta&65535)|0)>>16;Va=k[c+-56>>2]|0;Xa=j[ka>>1]|0;Ua=ha(Xa,Va>>16)|0;Va=(ha(Xa,Va&65535)|0)>>16;Xa=k[c+-60>>2]|0;Wa=j[la>>1]|0;t=E+t+F+Oa+Pa+Qa+Ra+Sa+Ta+Ua+Va+(ha(Wa,Xa>>16)|0)+((ha(Wa,Xa&65535)|0)>>16)|0}F=t<<4;c=b+(I*1300|0)+1184|0;Wa=k[c>>2]|0;Xa=(ha(Wa>>16,$)|0)+(k[b+(I*1300|0)+1284>>2]|0)+((ha(Wa&65535,$)|0)>>16)|0;t=(k[b+(I*1300|0)+1188>>2]|0)-Xa|0;t=(ha(t>>16,$)|0)+Wa+((ha(t&65535,$)|0)>>16)|0;k[c>>2]=Xa;c=j[n>>1]|0;c=(ha(Xa>>16,c)|0)+aa+((ha(Xa&65535,c)|0)>>16)|0;if(ba){p=2;do{Va=p+-1|0;Ua=b+(I*1300|0)+1184+(Va<<2)|0;Xa=b+(I*1300|0)+1184+(p<<2)|0;Ta=k[Xa>>2]|0;Wa=Ta-t|0;Wa=(ha(Wa>>16,$)|0)+(k[Ua>>2]|0)+((ha(Wa&65535,$)|0)>>16)|0;k[Ua>>2]=t;Va=j[n+(Va<<1)>>1]|0;Ua=ha(Va,t>>16)|0;Va=(ha(Va,t&65535)|0)>>16;t=(k[b+(I*1300|0)+1184+((p|1)<<2)>>2]|0)-Wa|0;t=(ha(t>>16,$)|0)+Ta+((ha(t&65535,$)|0)>>16)|0;k[Xa>>2]=Wa;Xa=j[n+(p<<1)>>1]|0;c=Ua+c+Va+(ha(Wa>>16,Xa)|0)+((ha(Wa&65535,Xa)|0)>>16)|0;p=p+2|0}while((p|0)<(y|0))}k[b+(I*1300|0)+1184+(ca<<2)>>2]=t;u=j[da>>1]|0;u=(ha(u,t>>16)|0)+c+((ha(u,t&65535)|0)>>16)<<1;s=k[b+(I*1300|0)+1280>>2]|0;E=s>>16;s=s&65535;u=((ha(s,Z)|0)>>16)+(ha(E,Z)|0)+u<<2;t=k[C>>2]|0;o=k[b+(I*1300|0)+1024+(t<<2)>>2]|0;o=((ha(s,U)|0)>>16)+(ha(E,U)|0)+(ha(o>>16,_)|0)+((ha(o&65535,_)|0)>>16)<<2;E=k[H>>2]|0;s=E-((F+J-u-o>>3)+1>>1)|0;q=(k[x>>2]|0)<0;s=q?0-s|0:s;s=(s|0)>30720?30720:(s|0)<-31744?-31744:s;c=s-v|0;do if(V){if((c|0)>(W|0)){c=c-W|0;A=21;break}if((c|0)<(X|0)){c=c+W|0;A=21;break}else{c=c>>31;A=23;break}}else A=21;while(0);if((A|0)==21){A=0;c=c>>10;if((c|0)>0){x=Y+(c<<10)|0;z=x+1024|0;c=x;p=z;x=ha(x<<16>>16,N)|0;z=ha(z<<16>>16,N)|0}else A=23}a:do if((A|0)==23)switch(c|0){case 0:{c=v;p=O;x=P;z=Q;break a}case -1:{c=R;p=v;x=S;z=P;break a}default:{z=(c<<10|80)+v|0;c=z;p=z+1024|0;x=ha(0-z<<16>>16,N)|0;z=ha(-1024-z<<16>>16,N)|0;break a}}while(0);Xa=s-c<<16>>16;Xa=(ha(Xa,Xa)|0)+x>>10;Va=s-p<<16>>16;Va=(ha(Va,Va)|0)+z>>10;Ta=(Xa|0)<(Va|0);Sa=k[b+(I*1300|0)+1296>>2]|0;Ua=Ta?c:p;Wa=Ta?p:c;k[Ka+(I*56|0)+4>>2]=(Ta?Xa:Va)+Sa;k[Ka+(I*56|0)+32>>2]=Sa+(Ta?Va:Xa);k[Ka+(I*56|0)>>2]=Ua;k[Ka+(I*56|0)+28>>2]=Wa;Ua=Ua<<4;Ua=(q?0-Ua|0:Ua)+K|0;Xa=Ua+F|0;Va=E<<4;Ta=Xa-Va|0;k[Ka+(I*56|0)+16>>2]=Ta;Ta=Ta-u|0;k[Ka+(I*56|0)+20>>2]=Ta-o;k[Ka+(I*56|0)+12>>2]=Ta;k[Ka+(I*56|0)+24>>2]=Ua;k[Ka+(I*56|0)+8>>2]=Xa;Wa=Wa<<4;Wa=(q?0-Wa|0:Wa)+K|0;Xa=Wa+F|0;Va=Xa-Va|0;k[Ka+(I*56|0)+44>>2]=Va;Va=Va-u|0;k[Ka+(I*56|0)+48>>2]=Va-o;k[Ka+(I*56|0)+40>>2]=Va;k[Ka+(I*56|0)+52>>2]=Wa;k[Ka+(I*56|0)+36>>2]=Xa;I=I+1|0}while((I|0)!=(B|0))}else t=k[C>>2]|0;q=(t+-1|0)%40|0;q=(q|0)<0?q+40|0:q;k[C>>2]=q;q=(q+D|0)%40|0;t=k[za>>2]|0;if(Aa){z=t;c=0;A=1;while(1){p=k[Ka+(A*56|0)+4>>2]|0;x=(p|0)<(z|0);c=x?A:c;A=A+1|0;if((A|0)==(B|0)){A=c;break}else z=x?p:z}}else A=0;c=k[b+(A*1300|0)+384+(q<<2)>>2]|0;if(ya){t=0;do{if((k[b+(t*1300|0)+384+(q<<2)>>2]|0)!=(c|0)){Xa=Ka+(t*56|0)+4|0;k[Xa>>2]=(k[Xa>>2]|0)+134217727;Xa=Ka+(t*56|0)+32|0;k[Xa>>2]=(k[Xa>>2]|0)+134217727}t=t+1|0}while((t|0)!=(B|0));t=k[za>>2]|0}p=k[Ba>>2]|0;if(Aa){x=0;c=0;z=1;do{Xa=k[Ka+(z*56|0)+4>>2]|0;Wa=(Xa|0)>(t|0);x=Wa?z:x;t=Wa?Xa:t;Xa=k[Ka+(z*56|0)+32>>2]|0;Wa=(Xa|0)<(p|0);c=Wa?z:c;p=Wa?Xa:p;z=z+1|0}while((z|0)!=(B|0))}else{x=0;c=0}if((p|0)<(t|0)){wf(b+(x*1300|0)+(T<<2)|0,b+(c*1300|0)+(T<<2)|0,1300-(T<<2)|0)|0;Xa=Ka+(x*56|0)|0;Wa=Ka+(c*56|0)+28|0;k[Xa>>2]=k[Wa>>2];k[Xa+4>>2]=k[Wa+4>>2];k[Xa+8>>2]=k[Wa+8>>2];k[Xa+12>>2]=k[Wa+12>>2];k[Xa+16>>2]=k[Wa+16>>2];k[Xa+20>>2]=k[Wa+20>>2];k[Xa+24>>2]=k[Wa+24>>2]}if(!(ma&(T|0)<(D|0))){Xa=T-D|0;i[e+Xa>>0]=(((k[b+(A*1300|0)+544+(q<<2)>>2]|0)>>>9)+1|0)>>>1;Wa=k[b+(A*1300|0)+704+(q<<2)>>2]|0;Va=k[h+(q<<2)>>2]|0;Ua=Va<<16>>16;Wa=(((ha(Ua,Wa&65535)|0)>>16)+(ha(Ua,Wa>>16)|0)+(ha((Va>>15)+1>>1,Wa)|0)>>7)+1>>1;j[f+(Xa<<1)>>1]=(Wa|0)>32767?32767:((Wa|0)<-32768?-32768:Wa)&65535;k[a+1280+((k[La>>2]|0)-D<<2)>>2]=k[b+(A*1300|0)+1024+(q<<2)>>2];k[g+((k[Ma>>2]|0)-D<<2)>>2]=k[b+(A*1300|0)+864+(q<<2)>>2]}k[La>>2]=(k[La>>2]|0)+1;k[Ma>>2]=(k[Ma>>2]|0)+1;if(ya){t=T+16|0;c=0;do{k[b+(c*1300|0)+1280>>2]=k[Ka+(c*56|0)+12>>2];k[b+(c*1300|0)+1284>>2]=k[Ka+(c*56|0)+16>>2];Xa=k[Ka+(c*56|0)+8>>2]|0;k[b+(c*1300|0)+(t<<2)>>2]=Xa;k[b+(c*1300|0)+704+(k[C>>2]<<2)>>2]=Xa;Xa=k[Ka+(c*56|0)>>2]|0;k[b+(c*1300|0)+544+(k[C>>2]<<2)>>2]=Xa;k[b+(c*1300|0)+864+(k[C>>2]<<2)>>2]=k[Ka+(c*56|0)+24>>2]<<1;k[b+(c*1300|0)+1024+(k[C>>2]<<2)>>2]=k[Ka+(c*56|0)+20>>2];Wa=b+(c*1300|0)+1288|0;Xa=((Xa>>9)+1>>1)+(k[Wa>>2]|0)|0;k[Wa>>2]=Xa;k[b+(c*1300|0)+384+(k[C>>2]<<2)>>2]=Xa;k[b+(c*1300|0)+1296>>2]=k[Ka+(c*56|0)+4>>2];c=c+1|0}while((c|0)!=(B|0))}k[h+(k[C>>2]<<2)>>2]=Ja;T=T+1|0;if((T|0)==(w|0))break;else{t=L;c=M}}}if((B|0)>0)t=0;else{r=Na;return}do{c=b+(t*1300|0)|0;p=b+(t*1300|0)+(w<<2)|0;x=c+64|0;do{k[c>>2]=k[p>>2];c=c+4|0;p=p+4|0}while((c|0)<(x|0));t=t+1|0}while((t|0)!=(B|0));r=Na;return}function re(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=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,ia=0;Y=r;r=r+64|0;h=Y+20|0;l=Y+16|0;f=Y+12|0;g=Y+8|0;X=Y+24|0;d=Y;t=a+2336|0;p=k[t>>2]|0;W=a+2328|0;Q=r;r=r+((1*((k[W>>2]|0)+p<<2)|0)+15&-16)|0;w=r;r=r+((1*(p<<1)|0)+15&-16)|0;k[d>>2]=k[a+4244>>2]>>6;p=a+4248|0;S=k[p>>2]|0;R=S>>6;k[d+4>>2]=R;if(k[a+2376>>2]|0){e=a+4186|0;n=e+32|0;do{j[e>>1]=0;e=e+2|0}while((e|0)<(n|0))}x=a+2332|0;v=a+2324|0;se(f,h,g,l,a+4|0,d,k[x>>2]|0,k[v>>2]|0);d=k[a+4256>>2]|0;e=k[a+4260>>2]|0;if((k[f>>2]>>k[l>>2]|0)<(k[g>>2]>>k[h>>2]|0)){d=(ha(e,d+-1|0)|0)+-128|0;d=(d|0)<0?0:d}else{d=(ha(e,d)|0)+-128|0;d=(d|0)<0?0:d}P=a+4+(d<<2)|0;O=a+4176|0;V=a+4228|0;o=j[V>>1]|0;g=a+4160|0;l=k[g>>2]|0;l=(l|0)>1?1:l;q=j[29740+(l<<1)>>1]|0;h=a+4164|0;l=j[((k[h>>2]|0)==2?29744:29748)+(l<<1)>>1]|0;n=a+4186|0;U=a+2340|0;T=k[U>>2]|0;f=T+-1|0;if((T|0)>1){d=64881;e=0;do{T=a+4186+(e<<1)|0;N=(((ha(j[T>>1]|0,d)|0)>>>15)+1|0)>>>1&65535;j[T>>1]=N;d=(((ha(d,-655)|0)>>15)+1>>1)+d|0;e=e+1|0}while((e|0)!=(f|0))}else d=64881;T=a+4186+(f<<1)|0;d=(((ha(j[T>>1]|0,d)|0)>>>15)+1|0)>>>1&65535;j[T>>1]=d;d=k[U>>2]|0;wf(X|0,n|0,d<<1|0)|0;do if(!(k[g>>2]|0))if((k[h>>2]|0)==2){o=(16384-(m[O>>1]|0)-(m[a+4178>>1]|0)-(m[a+4180>>1]|0)-(m[a+4182>>1]|0)&65535)-(m[a+4184>>1]|0)|0;o=(ha(j[a+4240>>1]|0,(o&65535)<<16>>16<3277?3277:o<<16>>16)|0)>>>14&65535;break}else{o=ze(n,d)|0;o=(o|0)>134217728?134217728:o;o=((o|0)<4194304?4194304:o)<<3;l=((ha(o&65528,l)|0)>>16)+(ha(o>>16,l)|0)>>14;o=16384;break}while(0);T=a+4224|0;u=k[T>>2]|0;N=a+4172|0;n=(k[N>>2]>>7)+1>>1;s=k[t>>2]|0;h=s+-2-d-n|0;ye(w+(h<<1)|0,a+1348+(h<<1)|0,X,s-h|0,d);e=k[p>>2]|0;d=ja(((e|0)>0?e:0-e|0)|0)|0;e=e<<d+-1;K=e>>16;L=536870911/(K|0)|0;M=L<<16;g=M>>16;e=536870912-(ha(K,g)|0)-((ha(e&65535,g)|0)>>16)<<3;g=(ha(e,(L>>15)+1>>1)|0)+M+(ha(e>>16,g)|0)+((ha(e&65528,g)|0)>>16)|0;d=62-d|0;e=d+-46|0;if((e|0)<1){f=46-d|0;d=-2147483648>>f;e=2147483647>>>f;if((d|0)>(e|0)){if((g|0)<=(d|0))d=(g|0)<(e|0)?e:g}else if((g|0)>(e|0))d=e;else d=(g|0)<(d|0)?d:g;d=d<<f}else d=(e|0)<32?g>>e:0;e=(d|0)<1073741823?d:1073741823;p=k[U>>2]|0;d=p+h|0;M=k[t>>2]|0;if((d|0)<(M|0)){f=e>>16;e=e&65535;do{L=j[w+(d<<1)>>1]|0;L=((ha(L,e)|0)>>16)+(ha(L,f)|0)|0;k[Q+(d<<2)>>2]=L;d=d+1|0}while((d|0)!=(M|0))}L=k[v>>2]|0;if((L|0)>0){I=q<<16>>16;J=a+2765|0;K=a+2316|0;D=l<<16>>16;E=a+4178|0;F=a+4180|0;G=a+4182|0;H=a+4184|0;A=k[x>>2]|0;B=(A|0)>0;C=0;d=n;l=u;f=s;do{if(B){s=o<<16>>16;n=j[O>>1]|0;h=j[E>>1]|0;g=j[F>>1]|0;e=j[G>>1]|0;z=j[H>>1]|0;t=n<<16>>16;u=h<<16>>16;v=g<<16>>16;w=e<<16>>16;x=z<<16>>16;y=0;q=Q+(f+2-d<<2)|0;d=f;while(1){ga=k[q>>2]|0;ia=ha(t,ga>>16)|0;ga=(ha(t,ga&65535)|0)>>16;ea=k[q+-4>>2]|0;fa=ha(u,ea>>16)|0;ea=(ha(u,ea&65535)|0)>>16;ca=k[q+-8>>2]|0;da=ha(v,ca>>16)|0;ca=(ha(v,ca&65535)|0)>>16;aa=k[q+-12>>2]|0;ba=ha(w,aa>>16)|0;aa=(ha(w,aa&65535)|0)>>16;_=k[q+-16>>2]|0;$=ha(x,_>>16)|0;_=(ha(x,_&65535)|0)>>16;l=(ha(l,196314165)|0)+907633515|0;Z=k[P+(l>>>25<<2)>>2]|0;Z=ia+2+ga+fa+ea+da+ca+ba+aa+$+_+(ha(Z>>16,s)|0)+((ha(Z&65535,s)|0)>>16)<<2;k[Q+(d<<2)>>2]=Z;y=y+1|0;if((y|0)==(A|0))break;else{q=q+4|0;d=d+1|0}}d=z;f=A+f|0}else{n=j[O>>1]|0;h=j[E>>1]|0;g=j[F>>1]|0;e=j[G>>1]|0;d=j[H>>1]|0}ia=(ha(n<<16>>16,I)|0)>>>15&65535;j[O>>1]=ia;ia=(ha(h<<16>>16,I)|0)>>>15&65535;j[E>>1]=ia;ia=(ha(g<<16>>16,I)|0)>>>15&65535;j[F>>1]=ia;ia=(ha(e<<16>>16,I)|0)>>>15&65535;j[G>>1]=ia;ia=(ha(d<<16>>16,I)|0)>>>15&65535;j[H>>1]=ia;if(i[J>>0]|0)o=(ha(o<<16>>16,D)|0)>>>15&65535;ia=k[N>>2]|0;ia=((ia>>16)*655|0)+ia+(((ia&65535)*655|0)>>>16)|0;d=(k[K>>2]<<16>>16)*4608|0;d=(ia|0)<(d|0)?ia:d;k[N>>2]=d;d=(d>>7)+1>>1;C=C+1|0}while((C|0)!=(L|0));L=d;K=l}else{L=n;K=u}J=Q+(M+-16<<2)|0;I=a+1284|0;e=J;d=I;n=e+64|0;do{k[e>>2]=k[d>>2];e=e+4|0;d=d+4|0}while((e|0)<(n|0));d=k[W>>2]|0;if((d|0)<=0){d=J+(d<<2)|0;e=I;n=e+64|0;do{k[e>>2]=k[d>>2];e=e+4|0;d=d+4|0}while((e|0)<(n|0));k[T>>2]=K;j[V>>1]=o;k[b>>2]=L;ia=b+4|0;k[ia>>2]=L;ia=b+8|0;k[ia>>2]=L;ia=b+12|0;k[ia>>2]=L;r=Y;return}y=j[X>>1]|0;z=j[X+2>>1]|0;A=j[X+4>>1]|0;B=j[X+6>>1]|0;C=j[X+8>>1]|0;D=j[X+10>>1]|0;E=j[X+12>>1]|0;F=j[X+14>>1]|0;G=j[X+16>>1]|0;H=j[X+18>>1]|0;x=R<<16>>16;w=(S>>21)+1>>1;e=k[J+60>>2]|0;d=k[J+52>>2]|0;g=k[J+44>>2]|0;h=k[J+36>>2]|0;l=k[J+28>>2]|0;q=0;while(1){n=q+16|0;f=q+15|0;N=ha(y,e>>16)|0;O=(ha(y,e&65535)|0)>>16;s=k[J+(q+14<<2)>>2]|0;P=ha(z,s>>16)|0;Q=(ha(z,s&65535)|0)>>16;a=ha(A,d>>16)|0;R=(ha(A,d&65535)|0)>>16;t=k[J+(q+12<<2)>>2]|0;S=ha(B,t>>16)|0;Z=(ha(B,t&65535)|0)>>16;_=ha(C,g>>16)|0;$=(ha(C,g&65535)|0)>>16;u=k[J+(q+10<<2)>>2]|0;aa=ha(D,u>>16)|0;ba=(ha(D,u&65535)|0)>>16;ca=ha(E,h>>16)|0;da=(ha(E,h&65535)|0)>>16;v=k[J+(q+8<<2)>>2]|0;ea=ha(F,v>>16)|0;fa=(ha(F,v&65535)|0)>>16;ga=ha(G,l>>16)|0;ia=(ha(G,l&65535)|0)>>16;d=k[J+(q+6<<2)>>2]|0;d=N+(p>>1)+O+P+Q+a+R+S+Z+_+$+aa+ba+ca+da+ea+fa+ga+ia+(ha(H,d>>16)|0)+((ha(H,d&65535)|0)>>16)|0;if((p|0)>10){e=10;do{ia=k[J+(f-e<<2)>>2]|0;ga=j[X+(e<<1)>>1]|0;d=(ha(ga,ia>>16)|0)+d+((ha(ga,ia&65535)|0)>>16)|0;e=e+1|0}while((e|0)!=(p|0))}g=J+(n<<2)|0;f=k[g>>2]|0;d=(d|0)>134217727?2147483632:((d|0)<-134217728?-134217728:d)<<4;e=f+d|0;if((e|0)>-1)e=(f&d|0)<0?-2147483648:e;else e=(f|d|0)>-1?2147483647:e;k[g>>2]=e;f=(((ha(x,e&65535)|0)>>16)+(ha(x,e>>16)|0)+(ha(w,e)|0)>>7)+1>>1;d=(f|0)>32767;f=(f|0)<-32768?-32768:f;j[c+(q<<1)>>1]=d|(f|0)>32767&(d^1)?32767:f&65535;f=q+1|0;d=k[W>>2]|0;if((f|0)>=(d|0))break;p=k[U>>2]|0;d=s;g=t;h=u;l=v;q=f}d=J+(d<<2)|0;e=I;n=e+64|0;do{k[e>>2]=k[d>>2];e=e+4|0;d=d+4|0}while((e|0)<(n|0));k[T>>2]=K;j[V>>1]=o;k[b>>2]=L;ia=b+4|0;k[ia>>2]=L;ia=b+8|0;k[ia>>2]=L;ia=b+12|0;k[ia>>2]=L;r=Y;return}function se(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,l=0,m=0,n=0,o=0,p=0,q=0;p=r;o=r;r=r+((1*(g<<1<<1)|0)+15&-16)|0;if((g|0)<=0){e=o+(g<<1)|0;De(a,b,o,g);De(c,d,e,g);r=p;return}i=ha(h+-2|0,g)|0;m=k[f>>2]|0;l=m<<16>>16;m=(m>>15)+1>>1;n=0;do{q=k[e+(n+i<<2)>>2]|0;q=((ha(l,q&65535)|0)>>16)+(ha(l,q>>16)|0)+(ha(m,q)|0)>>8;j[o+(n<<1)>>1]=(q|0)>32767?32767:((q|0)<-32768?-32768:q)&65535;n=n+1|0}while((n|0)!=(g|0));i=o+(g<<1)|0;h=ha(h+-1|0,g)|0;m=k[f+4>>2]|0;l=m<<16>>16;m=(m>>15)+1>>1;n=0;do{q=k[e+(n+h<<2)>>2]|0;q=((ha(l,q&65535)|0)>>16)+(ha(l,q>>16)|0)+(ha(m,q)|0)>>8;j[i+(n<<1)>>1]=(q|0)>32767?32767:((q|0)<-32768?-32768:q)&65535;n=n+1|0}while((n|0)!=(g|0));De(a,b,o,g);De(c,d,i,g);r=p;return}function te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;w=r;r=r+48|0;t=w+32|0;v=w+16|0;p=w;u=a+4580|0;h=k[u>>2]|0;l=h>>1;n=h>>2;q=h>>3;k[p>>2]=0;c=q+n|0;k[p+4>>2]=c;i=c+q|0;k[p+8>>2]=i;g=i+n|0;k[p+12>>2]=g;o=r;r=r+((1*(g+l<<1)|0)+15&-16)|0;xe(b,a+32|0,o,o+(g<<1)|0,h);xe(o,a+40|0,o,o+(i<<1)|0,l);xe(o,a+48|0,o,o+(c<<1)|0,n);b=q+-1|0;n=o+(b<<1)|0;c=j[n>>1]>>1;j[n>>1]=c;if((q|0)>1){d=c;do{q=b;b=b+-1|0;i=o+(b<<1)|0;n=(j[i>>1]|0)>>>1;l=d;d=n&65535;j[i>>1]=d;j[o+(q<<1)>>1]=(l&65535)-n}while((q|0)>1)}n=a+88|0;j[o>>1]=(m[o>>1]|0)-(m[n>>1]|0);j[n>>1]=c;n=0;do{g=4-n|0;g=k[u>>2]>>((g|0)<3?g:3)>>2;i=a+56+(n<<2)|0;b=k[i>>2]|0;l=t+(n<<2)|0;k[l>>2]=b;if((g|0)>0){h=k[p+(n<<2)>>2]|0;c=0;d=0;do{q=j[o+(c+h<<1)>>1]>>3;d=(ha(q,q)|0)+d|0;c=c+1|0}while((c|0)!=(g|0));b=b+d|0;c=(b|0)<0;d=0;e=0;do{q=j[o+(d+g+h<<1)>>1]>>3;e=(ha(q,q)|0)+e|0;d=d+1|0}while((d|0)!=(g|0));b=(c?2147483647:b)+e|0;c=(b|0)<0;d=g<<1;e=0;f=0;do{q=j[o+(e+d+h<<1)>>1]>>3;f=(ha(q,q)|0)+f|0;e=e+1|0}while((e|0)!=(g|0));c=(c?2147483647:b)+f|0;d=(c|0)<0;e=g*3|0;f=0;b=0;do{q=j[o+(f+e+h<<1)>>1]>>3;b=(ha(q,q)|0)+b|0;f=f+1|0}while((f|0)!=(g|0));c=(d?2147483647:c)+(b>>1)|0;c=(c|0)<0?2147483647:c}else{c=(b|0)<0?2147483647:b;b=0}k[l>>2]=c;k[i>>2]=b;n=n+1|0}while((n|0)!=4);h=a+140|0;b=k[h>>2]|0;if((b|0)<1e3)g=32767/((b>>4)+1|0)|0;else g=0;f=0;do{d=a+92+(f<<2)|0;c=k[d>>2]|0;b=(k[a+124+(f<<2)>>2]|0)+(k[t+(f<<2)>>2]|0)|0;b=(b|0)<0?2147483647:b;e=2147483647/(b|0)|0;if((b|0)<=(c<<3|0))if((b|0)<(c|0))b=1024;else{b=c<<16>>16;b=(ha(e>>16,b)|0)+(ha(e,(c>>15)+1>>1)|0)+((ha(e&65535,b)|0)>>16)|0;b=b>>16<<11|b>>>5&2047}else b=128;p=a+108+(f<<2)|0;n=k[p>>2]|0;q=e-n|0;o=((b|0)>(g|0)?b:g)<<16>>16;q=(ha(o,q>>16)|0)+n+((ha(o,q&65535)|0)>>16)|0;k[p>>2]=q;q=2147483647/(q|0)|0;k[d>>2]=(q|0)<16777215?q:16777215;f=f+1|0}while((f|0)!=4);k[h>>2]=(k[h>>2]|0)+1;q=0;p=0;c=0;while(1){b=k[t+(q<<2)>>2]|0;d=k[a+92+(q<<2)>>2]|0;o=b-d|0;if((o|0)>0){if(b>>>0<8388608)b=(b<<8|0)/(d+1|0)|0;else b=(b|0)/((d>>8)+1|0)|0;k[v+(q<<2)>>2]=b;f=ja(b|0)|0;d=24-f|0;e=0-d|0;do if(d)if((d|0)<0){b=b>>>(d+32|0)|b<<e;break}else{b=b<<32-d|b>>>d;break}while(0);b=b&127;b=(b|31-f<<7)+-1024+((ha(b*179|0,128-b|0)|0)>>>16)|0;n=b<<16>>16;c=(ha(n,n)|0)+c|0;if((o|0)<1048576){b=ja(o|0)|0;f=24-b|0;g=0-f|0;h=(f|0)==0;do if(!h)if((f|0)<0){d=o>>>(f+32|0)|o<<g;break}else{d=o<<32-f|o>>>f;break}else d=o;while(0);i=((b&1|0)==0?46214:32768)>>>(b>>>1);l=i>>16;e=(ha(d&127,13959168)|0)>>>16;d=i&65535;e=ha((ha(e,l)|0)+i+((ha(e,d)|0)>>>16)<<6>>16,n)|0;do if(!h)if((f|0)<0){b=o>>>(f+32|0)|o<<g;break}else{b=o<<32-f|o>>>f;break}else b=o;while(0);b=(ha(b&127,13959168)|0)>>>16;b=((ha((ha(b,l)|0)+i+((ha(b,d)|0)>>>16)<<6&65472,n)|0)>>16)+e|0}o=k[26940+(q<<2)>>2]|0;f=b<<16>>16;f=(ha(o>>16,f)|0)+p+((ha(o&65535,f)|0)>>16)|0}else{k[v+(q<<2)>>2]=256;f=p}q=q+1|0;if((q|0)==4)break;else p=f}b=(c|0)/4|0;do if((c|0)>=4){e=ja(b|0)|0;c=24-e|0;d=0-c|0;do if(c)if((c|0)<0){b=b>>>(c+32|0)|b<<d;break}else{b=b<<32-c|b>>>c;break}while(0);c=((e&1|0)==0?46214:32768)>>>(e>>>1);b=(ha(b&127,13959168)|0)>>>16;b=(((ha(b,c>>16)|0)+c+((ha(b,c&65535)|0)>>>16)|0)*196608>>16)*45e3>>16;c=b+-128|0;if((b|0)<128)if((c|0)<-191){b=0;break}else{b=128-b|0;s=45;break}if((c|0)>191)b=32767;else{b=c>>5;b=(ha(k[26980+(b<<2)>>2]<<16>>16,c&31)|0)+(k[27004+(b<<2)>>2]|0)|0}}else{b=128;s=45}while(0);if((s|0)==45){s=b>>5;b=(k[26956+(s<<2)>>2]|0)-(ha(k[26980+(s<<2)>>2]<<16>>16,b&31)|0)|0}if((f|0)<0){c=0-f|0;if((f|0)<-191)c=0;else{s=c>>5;c=(k[26956+(s<<2)>>2]|0)-(ha(k[26980+(s<<2)>>2]<<16>>16,c&31)|0)|0}}else if((f|0)>191)c=32767;else{c=f>>5;c=(ha(k[26980+(c<<2)>>2]<<16>>16,f&31)|0)+(k[27004+(c<<2)>>2]|0)|0}k[a+4708>>2]=(c<<1)+-32768;c=((k[t+12>>2]|0)-(k[a+104>>2]|0)>>4<<2)+((((k[t+8>>2]|0)-(k[a+100>>2]|0)>>4)*3|0)+(((k[t+4>>2]|0)-(k[a+96>>2]|0)>>4<<1)+((k[t>>2]|0)-(k[a+92>>2]|0)>>4)))|0;if((c|0)>=1){if((c|0)<32768){c=c<<((k[u>>2]|0)==((k[a+4572>>2]|0)*10|0)?16:15);if((c|0)<1)c=32768;else{f=ja(c|0)|0;d=24-f|0;e=0-d|0;do if(d)if((d|0)<0){c=c>>>(d+32|0)|c<<e;break}else{c=c<<32-d|c>>>d;break}while(0);t=((f&1|0)==0?46214:32768)>>>(f>>>1);c=(ha(c&127,13959168)|0)>>>16;c=t+32768+(ha(c,t>>16)|0)+((ha(c,t&65535)|0)>>>16)|0}b=b<<16>>16;b=((ha(c&65535,b)|0)>>16)+(ha(c>>16,b)|0)|0}}else b=b>>1;f=b>>7;k[a+4528>>2]=(f|0)<255?f:255;f=ha(b,b<<16>>16)|0;f=f>>((k[u>>2]|0)==((k[a+4572>>2]|0)*10|0)?21:20);g=0;do{e=a+72+(g<<2)|0;c=k[e>>2]|0;b=(k[v+(g<<2)>>2]|0)-c|0;b=(ha(b>>16,f)|0)+c+((ha(b&65535,f)|0)>>16)|0;k[e>>2]=b;e=ja(b|0)|0;c=24-e|0;d=0-c|0;do if(c)if((c|0)<0){b=b>>>(c+32|0)|b<<d;break}else{b=b<<32-c|b>>>c;break}while(0);b=b&127;b=((((ha(b*179|0,128-b|0)|0)>>>16)+(b|31-e<<7)|0)*3|0)+-5120|0;c=b>>4;if((c|0)<0){b=0-c|0;if((c|0)<-191)b=0;else{u=b>>5;b=(k[26956+(u<<2)>>2]|0)-(ha(k[26980+(u<<2)>>2]<<16>>16,b&31)|0)|0}}else if((c|0)>191)b=32767;else{b=b>>9;b=(ha(k[26980+(b<<2)>>2]<<16>>16,c&31)|0)+(k[27004+(b<<2)>>2]|0)|0}k[a+4692+(g<<2)>>2]=b;g=g+1|0}while((g|0)!=4);r=w;return}function ue(a,b,c,d,e,f,g,h,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;m=m|0;var n=0,o=0,p=0,q=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,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;ga=r;r=r+16|0;ea=ga;fa=(m|0)>0;ca=h<<16>>16;p=0;o=0;da=0;h=2147483647;do{_=k[21352+(da<<2)>>2]|0;$=k[21364+(da<<2)>>2]|0;aa=k[21376+(da<<2)>>2]|0;Z=i[33901+da>>0]|0;n=k[d>>2]|0;if(fa){ba=f;Y=0;q=0;s=0;X=g;while(1){W=5333-n|0;t=W+896|0;if((W|0)>=-896)if((t|0)>3966)t=2147483647;else{u=t>>7;w=1<<u;v=t&127;if((t|0)<2048)t=((ha(ha(v,-174)|0,128-v|0)|0)>>16)+v<<u>>7;else t=ha(((ha(ha(v,-174)|0,128-v|0)|0)>>16)+v|0,w>>7)|0;t=t+w|0}else t=0;B=t+-51|0;C=ea+Y|0;G=k[X>>2]|0;F=k[X+4>>2]|0;E=k[X+8>>2]|0;D=k[X+12>>2]<<7;U=k[X+16>>2]|0;i[C>>0]=0;E=E<<7;F=F<<7;G=G<<7;H=ba+4|0;I=ba+8|0;J=ba+12|0;K=ba+16|0;L=ba+28|0;M=ba+32|0;N=ba+36|0;O=ba+24|0;P=ba+52|0;Q=ba+56|0;R=ba+48|0;S=ba+76|0;T=ba+72|0;U=0-(U<<7)<<1;V=ba+96|0;W=$;A=0;y=2147483647;z=2147483647;while(1){x=l[aa+A>>0]|0;u=x-B|0;ma=i[W+1>>0]|0;v=(ha(ma,k[H>>2]|0)|0)-G|0;ka=i[W+2>>0]|0;v=v+(ha(ka,k[I>>2]|0)|0)|0;t=i[W+3>>0]|0;v=v+(ha(t,k[J>>2]|0)|0)|0;w=i[W+4>>0]|0;v=v+(ha(w,k[K>>2]|0)|0)<<1;oa=i[W>>0]|0;v=v+(ha(oa,k[ba>>2]|0)|0)|0;pa=ha(v>>16,oa)|0;oa=(ha(v&65535,oa)|0)>>16;v=(ha(k[L>>2]|0,ka)|0)-F|0;v=v+(ha(k[M>>2]|0,t)|0)|0;v=v+(ha(k[N>>2]|0,w)|0)<<1;v=v+(ha(k[O>>2]|0,ma)|0)|0;na=ha(v>>16,ma)|0;ma=(ha(v&65535,ma)|0)>>16;v=(ha(k[P>>2]|0,t)|0)-E|0;v=v+(ha(k[Q>>2]|0,w)|0)<<1;v=v+(ha(k[R>>2]|0,ka)|0)|0;la=ha(v>>16,ka)|0;ka=(ha(v&65535,ka)|0)>>16;v=(ha(k[S>>2]|0,w)|0)-D<<1;v=v+(ha(k[T>>2]|0,t)|0)|0;ia=ha(v>>16,t)|0;t=(ha(v&65535,t)|0)>>16;v=(ha(k[V>>2]|0,w)|0)+U|0;t=pa+32801+oa+na+ma+la+ka+(ha(v>>16,w)|0)+ia+((ha(v&65535,w)|0)>>16)+t|0;if((t|0)>-1){t=t+(((u|0)>0?u:0)<<11)|0;w=ja(t|0)|0;u=24-w|0;v=0-u|0;do if(u)if((u|0)<0){u=t>>>(u+32|0)|t<<v;break}else{u=t<<32-u|t>>>u;break}else u=t;while(0);u=u&127;u=ha((ha(u*179|0,128-u|0)|0|-125829120)+((u|31-w<<7)<<16)>>16,ca)|0;u=u+(l[_+A>>0]<<2)|0;if((u|0)<=(y|0)){i[C>>0]=A;o=x}else{u=y;t=z}}else{u=y;t=z}A=A+1|0;if((A|0)==(Z|0))break;else{W=W+5|0;y=u;z=t}}s=t+s|0;s=(s|0)<0?2147483647:s;q=u+q|0;q=(q|0)<0?2147483647:q;t=o+51|0;v=ja(t|0)|0;w=24-v|0;x=0-w|0;y=(w|0)==0;do if(!y)if((w|0)<0){u=t>>>(w+32|0)|t<<x;break}else{u=t<<32-w|t>>>w;break}else u=t;while(0);pa=u&127;u=31-v<<7;if(((pa|u)+n+((ha(pa*179|0,128-pa|0)|0)>>>16)|0)<896)n=0;else{do if(!y)if((w|0)<0){t=t>>>(w+32|0)|t<<x;break}else{t=t<<32-w|t>>>w;break}while(0);pa=t&127;n=n+-896+(pa|u)+((ha(pa*179|0,128-pa|0)|0)>>>16)|0}Y=Y+1|0;if((Y|0)==(m|0))break;else{ba=ba+100|0;X=X+20|0}}}else{q=0;s=0}if((q|0)<=(h|0)){i[c>>0]=da;wf(b|0,ea|0,m|0)|0;p=n;h=q}da=da+1|0}while((da|0)!=3);n=k[21364+(i[c>>0]<<2)>>2]|0;if(fa){h=0;do{oa=b+h|0;pa=h*5|0;j[a+(pa<<1)>>1]=i[n+((i[oa>>0]|0)*5|0)>>0]<<7;j[a+(pa+1<<1)>>1]=i[n+(((i[oa>>0]|0)*5|0)+1)>>0]<<7;j[a+(pa+2<<1)>>1]=i[n+(((i[oa>>0]|0)*5|0)+2)>>0]<<7;j[a+(pa+3<<1)>>1]=i[n+(((i[oa>>0]|0)*5|0)+3)>>0]<<7;j[a+(pa+4<<1)>>1]=i[n+(((i[oa>>0]|0)*5|0)+4)>>0]<<7;h=h+1|0}while((h|0)!=(m|0))}o=s>>((m|0)==2?1:2);k[d>>2]=p;h=ja(o|0)|0;n=24-h|0;if(!n){na=o;na=na&127;oa=128-na|0;pa=na*179|0;oa=ha(pa,oa)|0;pa=31-h|0;pa=pa<<7;pa=na|pa;pa=pa<<16;oa=oa|-125829120;pa=oa+pa|0;pa=pa>>16;pa=ha(pa,-3)|0;k[e>>2]=pa;r=ga;return}if((n|0)<0){na=o>>>(n+32|0)|o<<0-n;na=na&127;oa=128-na|0;pa=na*179|0;oa=ha(pa,oa)|0;pa=31-h|0;pa=pa<<7;pa=na|pa;pa=pa<<16;oa=oa|-125829120;pa=oa+pa|0;pa=pa>>16;pa=ha(pa,-3)|0;k[e>>2]=pa;r=ga;return}else{na=o<<32-n|o>>>n;na=na&127;oa=128-na|0;pa=na*179|0;oa=ha(pa,oa)|0;pa=31-h|0;pa=pa<<7;pa=na|pa;pa=pa<<16;oa=oa|-125829120;pa=oa+pa|0;pa=pa>>16;pa=ha(pa,-3)|0;k[e>>2]=pa;r=ga;return}}function ve(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=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;H=r;r=r+112|0;D=H+60|0;F=H+8|0;E=H;k[E>>2]=D;k[E+4>>2]=F;z=c>>1;A=D+(z<<2)|0;k[A>>2]=65536;B=F+(z<<2)|0;k[B>>2]=65536;C=(z|0)>0;if(C){d=z+-1|0;e=0;do{y=k[b+(d-e<<2)>>2]|0;x=k[b+(e+z<<2)>>2]|0;k[D+(e<<2)>>2]=0-(y+x);k[F+(e<<2)>>2]=x-y;e=e+1|0}while((e|0)!=(z|0));d=k[A>>2]|0;e=k[B>>2]|0;f=z;do{y=f;f=f+-1|0;x=D+(f<<2)|0;d=(k[x>>2]|0)-d|0;k[x>>2]=d;x=F+(f<<2)|0;e=(k[x>>2]|0)+e|0;k[x>>2]=e}while((y|0)>1);if((z|0)>=2){d=2;while(1){if((d|0)<(z|0)){e=z;do{y=D+(e+-2<<2)|0;k[y>>2]=(k[y>>2]|0)-(k[D+(e<<2)>>2]|0);e=e+-1|0}while((e|0)>(d|0))}y=D+(d+-2<<2)|0;k[y>>2]=(k[y>>2]|0)-(k[D+(d<<2)>>2]<<1);if((d|0)==(z|0)){d=2;break}else d=d+1|0}while(1){if((d|0)<(z|0)){e=z;do{y=F+(e+-2<<2)|0;k[y>>2]=(k[y>>2]|0)-(k[F+(e<<2)>>2]|0);e=e+-1|0}while((e|0)>(d|0))}y=F+(d+-2<<2)|0;k[y>>2]=(k[y>>2]|0)-(k[F+(d<<2)>>2]<<1);if((d|0)==(z|0)){x=0;break}else d=d+1|0}}else x=1}else x=1;d=we(D,8192,z)|0;if((d|0)<0){j[a>>1]=0;e=F;f=1;d=we(F,8192,z)|0}else{e=D;f=0}u=c+-1|0;y=(c|0)>1;v=b+(u<<2)|0;w=z+-1|0;t=0;a:while(1){i=1;g=0;h=8192;b:while(1){s=i;while(1){i=j[31472+(s<<1)>>1]|0;q=we(e,i,z)|0;if(!((d|0)>0|(q|0)<(g|0)))break;if(!((d|0)<0|(q|0)>(0-g|0)))break;if((s|0)>127)break b;else{s=s+1|0;g=0;h=i;d=q}}g=i+h|0;g=(g>>1)+(g&1)|0;l=we(e,g,z)|0;if((d|0)<1&(l|0)>-1){n=-256;o=g;p=l}else{m=(d|0)>-1&(l|0)<1;n=m?-256:-128;o=m?g:i;h=m?h:g;p=m?l:q;d=m?d:l}g=o+h|0;g=(g>>1)+(g&1)|0;m=we(e,g,z)|0;if((d|0)<1&(m|0)>-1){i=n;l=g;g=m}else{I=(d|0)>-1&(m|0)<1;i=I?n:n|64;l=I?g:o;h=I?h:g;g=I?m:p;d=I?d:m}I=l+h|0;e=we(e,(I>>1)+(I&1)|0,z)|0;if((d|0)<1&(e|0)>-1)h=e;else{I=(d|0)>-1&(e|0)<1;i=I?i:i+32|0;h=I?e:g;d=I?d:e}g=(q|0)==0&1;e=d-h|0;if((((d|0)>0?d:0-d|0)|0)<65536)if((d|0)==(h|0))d=i;else d=(((e>>1)+(d<<5)|0)/(e|0)|0)+i|0;else d=((d|0)/(e>>5|0)|0)+i|0;d=d+(s<<8)|0;j[a+(f<<1)>>1]=(d|0)<32767?d:32767;d=f+1|0;if((d|0)>=(c|0)){G=50;break a}i=s;e=k[E+((d&1)<<2)>>2]|0;f=d;h=j[31472+(s+-1<<1)>>1]|0;d=1-(d&2)<<12}h=t+1|0;if((t|0)>15)break;e=65536-(1<<h)|0;g=e+-65536|0;d=e>>16;if(y){f=0;do{I=b+(f<<2)|0;t=k[I>>2]|0;s=t<<16>>16;d=((ha(s,e&65535)|0)>>16)+(ha(s,d)|0)+(ha((t>>15)+1>>1,e)|0)|0;k[I>>2]=d;e=(((ha(e,g)|0)>>15)+1>>1)+e|0;f=f+1|0;d=e>>16}while((f|0)!=(u|0))}I=k[v>>2]|0;t=I<<16>>16;I=((ha(t,e&65535)|0)>>16)+(ha(t,d)|0)+(ha((I>>15)+1>>1,e)|0)|0;k[v>>2]=I;k[A>>2]=65536;k[B>>2]=65536;if(C){d=0;do{I=k[b+(w-d<<2)>>2]|0;t=k[b+(d+z<<2)>>2]|0;k[D+(d<<2)>>2]=0-(I+t);k[F+(d<<2)>>2]=t-I;d=d+1|0}while((d|0)!=(z|0));d=k[A>>2]|0;e=k[B>>2]|0;f=z;do{I=f;f=f+-1|0;t=D+(f<<2)|0;d=(k[t>>2]|0)-d|0;k[t>>2]=d;t=F+(f<<2)|0;e=(k[t>>2]|0)+e|0;k[t>>2]=e}while((I|0)>1)}if(!x){d=2;while(1){if((d|0)<(z|0)){e=z;do{I=D+(e+-2<<2)|0;k[I>>2]=(k[I>>2]|0)-(k[D+(e<<2)>>2]|0);e=e+-1|0}while((e|0)>(d|0))}I=D+(d+-2<<2)|0;k[I>>2]=(k[I>>2]|0)-(k[D+(d<<2)>>2]<<1);if((d|0)==(z|0)){d=2;break}else d=d+1|0}while(1){if((d|0)<(z|0)){e=z;do{I=F+(e+-2<<2)|0;k[I>>2]=(k[I>>2]|0)-(k[F+(e<<2)>>2]|0);e=e+-1|0}while((e|0)>(d|0))}I=F+(d+-2<<2)|0;k[I>>2]=(k[I>>2]|0)-(k[F+(d<<2)>>2]<<1);if((d|0)==(z|0))break;else d=d+1|0}}d=we(D,8192,z)|0;if((d|0)>=0){t=h;e=D;f=0;continue}j[a>>1]=0;t=h;e=F;f=1;d=we(F,8192,z)|0}if((G|0)==50){r=H;return}d=32768/(c+1|0)|0;e=d&65535;j[a>>1]=e;if(!y){r=H;return}d=d<<1;j[a+2>>1]=d;if((c|0)==2){r=H;return}d=d&131070;f=2;while(1){d=(e&65535)+(d&65535)|0;j[a+(f<<1)>>1]=d;f=f+1|0;if((f|0)==(c|0))break;e=j[a>>1]|0}r=H;return}function we(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=k[a+(c<<2)>>2]|0;e=b<<4;if((c|0)==8){f=b<<20>>16;e=(e>>15)+1>>1;c=(ha(d>>16,f)|0)+(ha(d,e)|0)+((ha(d&65535,f)|0)>>16)+(k[a+28>>2]|0)|0;c=(ha(c,e)|0)+(k[a+24>>2]|0)+(ha(c>>16,f)|0)+((ha(c&65535,f)|0)>>16)|0;c=(ha(c,e)|0)+(k[a+20>>2]|0)+(ha(c>>16,f)|0)+((ha(c&65535,f)|0)>>16)|0;c=(ha(c,e)|0)+(k[a+16>>2]|0)+(ha(c>>16,f)|0)+((ha(c&65535,f)|0)>>16)|0;c=(ha(c,e)|0)+(k[a+12>>2]|0)+(ha(c>>16,f)|0)+((ha(c&65535,f)|0)>>16)|0;c=(ha(c,e)|0)+(k[a+8>>2]|0)+(ha(c>>16,f)|0)+((ha(c&65535,f)|0)>>16)|0;c=(ha(c,e)|0)+(k[a+4>>2]|0)+(ha(c>>16,f)|0)+((ha(c&65535,f)|0)>>16)|0;a=(ha(c,e)|0)+(k[a>>2]|0)+(ha(c>>16,f)|0)+((ha(c&65535,f)|0)>>16)|0;return a|0}if((c|0)<=0){a=d;return a|0}f=b<<20>>16;b=(e>>15)+1>>1;do{e=c;c=c+-1|0;d=(ha(d>>16,f)|0)+(ha(d,b)|0)+((ha(d&65535,f)|0)>>16)+(k[a+(c<<2)>>2]|0)|0}while((e|0)>1);return d|0}function xe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0;e=e>>1;if((e|0)<=0)return;f=b+4|0;g=0;do{l=g<<1;m=j[a+(l<<1)>>1]<<10;n=m-(k[b>>2]|0)|0;i=((ha(n&65535,-24290)|0)>>16)+(ha(n>>16,-24290)|0)|0;h=i+m|0;k[b>>2]=n+m+i;l=j[a+((l|1)<<1)>>1]<<10;i=k[f>>2]|0;m=l-i|0;m=(((m&65535)*10788|0)>>>16)+((m>>16)*10788|0)|0;i=m+i|0;k[f>>2]=m+l;l=(i+h>>10)+1>>1;j[c+(g<<1)>>1]=(l|0)>32767?32767:((l|0)<-32768?-32768:l)&65535;h=(i-h>>10)+1>>1;j[d+(g<<1)>>1]=(h|0)>32767?32767:((h|0)<-32768?-32768:h)&65535;g=g+1|0}while((g|0)!=(e|0));return}function ye(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0;if((e|0)>=(d|0)){d=e<<1;rf(a|0,0,d|0)|0;return}k=c+2|0;l=c+4|0;m=c+6|0;n=c+8|0;o=c+10|0;if((e|0)>6)g=e;else{f=e;do{h=b+(f+-1<<1)|0;i=ha(j[c>>1]|0,j[h>>1]|0)|0;i=(ha(j[k>>1]|0,j[h+-2>>1]|0)|0)+i|0;i=i+(ha(j[l>>1]|0,j[h+-4>>1]|0)|0)|0;i=i+(ha(j[m>>1]|0,j[h+-6>>1]|0)|0)|0;i=i+(ha(j[n>>1]|0,j[h+-8>>1]|0)|0)|0;i=i+(ha(j[o>>1]|0,j[h+-10>>1]|0)|0)|0;i=((j[h+2>>1]<<12)-i>>11)+1>>1;j[a+(f<<1)>>1]=(i|0)>32767?32767:((i|0)<-32768?-32768:i)&65535;f=f+1|0}while((f|0)!=(d|0));d=e<<1;rf(a|0,0,d|0)|0;return}do{f=b+(g+-1<<1)|0;i=ha(j[c>>1]|0,j[f>>1]|0)|0;i=(ha(j[k>>1]|0,j[f+-2>>1]|0)|0)+i|0;i=i+(ha(j[l>>1]|0,j[f+-4>>1]|0)|0)|0;i=i+(ha(j[m>>1]|0,j[f+-6>>1]|0)|0)|0;i=i+(ha(j[n>>1]|0,j[f+-8>>1]|0)|0)|0;h=6;i=i+(ha(j[o>>1]|0,j[f+-10>>1]|0)|0)|0;do{p=(ha(j[c+(h<<1)>>1]|0,j[f+(0-h<<1)>>1]|0)|0)+i|0;i=p+(ha(j[c+((h|1)<<1)>>1]|0,j[f+(~h<<1)>>1]|0)|0)|0;h=h+2|0}while((h|0)<(e|0));p=((j[f+2>>1]<<12)-i>>11)+1>>1;j[a+(g<<1)>>1]=(p|0)>32767?32767:((p|0)<-32768?-32768:p)&65535;g=g+1|0}while((g|0)!=(d|0));p=e<<1;rf(a|0,0,p|0)|0;return}function ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0;x=r;r=r+96|0;w=x;if((b|0)>0){c=0;d=0;do{v=j[a+(d<<1)>>1]|0;c=v+c|0;k[w+(d<<2)>>2]=v<<12;d=d+1|0}while((d|0)!=(b|0));if((c|0)>4095){w=0;r=x;return w|0}}f=b+-1|0;a=k[w+(f<<2)>>2]|0;e=(a+16773022|0)>>>0>33546044;a:do if((b|0)>1){c=1073741824;d=0;h=b;b:while(1){if(e){a=0;d=41;break}u=0-(a<<7)|0;v=((u|0)<0)<<31>>31;Df(u|0,v|0,u|0,v|0)|0;a=1073741824-L|0;c=Df(a|0,((a|0)<0)<<31>>31|0,c|0,d|0)|0;c=vf(c|0,L|0,30)|0;c=c&-4;if((c|0)<107374){a=0;d=41;break}t=ja(((a|0)>0?a:0-a|0)|0)|0;g=32-t|0;a=a<<t+-1;p=a>>16;q=536870911/(p|0)|0;s=q<<16;e=s>>16;a=536870912-(ha(e,p)|0)-((ha(e,a&65535)|0)>>16)<<3;e=(ha(a,(q>>15)+1>>1)|0)+s+(ha(a>>16,e)|0)+((ha(a&65528,e)|0)>>16)|0;a=-30-g+(62-t)|0;if((a|0)<1){b=0-a|0;a=-2147483648>>b;d=2147483647>>>b;if((a|0)>(d|0)){if((e|0)<=(a|0))a=(e|0)<(d|0)?d:e}else if((e|0)>(d|0))a=d;else a=(e|0)<(a|0)?a:e;s=a<<b}else s=(a|0)<32?e>>a:0;o=h>>1;t=f+-1|0;if((o|0)>0){p=(g|0)==1;q=((s|0)<0)<<31>>31;l=g+-1|0;n=0;do{g=w+(n<<2)|0;h=k[g>>2]|0;m=w+(t-n<<2)|0;i=k[m>>2]|0;a=Df(i|0,((i|0)<0)<<31>>31|0,u|0,v|0)|0;a=vf(a|0,L|0,30)|0;a=tf(a|0,L|0,1,0)|0;a=vf(a|0,L|0,1)|0;b=h-a|0;d=(b|0)>-1;if(p){if(d){a=((a^-2147483648)&h|0)<0;d=a?-2147483648:b;e=a?-1:((b|0)<0)<<31>>31;a=a?-2147483648:b}else{a=(a&(h^-2147483648)|0)<0;d=a?2147483647:b;e=a?0:((b|0)<0)<<31>>31;a=a?2147483647:b}b=Df(d|0,e|0,s|0,q|0)|0;b=uf(b|0,L|0,1)|0;d=L;a=Df(a|0,((a|0)<0)<<31>>31|0,s|0,q|0)|0;a=tf(a&1|0,0,b|0,d|0)|0;d=L}else{if(d)a=((a^-2147483648)&h|0)<0?-2147483648:b;else a=(a&(h^-2147483648)|0)<0?2147483647:b;a=Df(a|0,((a|0)<0)<<31>>31|0,s|0,q|0)|0;a=uf(a|0,L|0,l|0)|0;a=tf(a|0,L|0,1,0)|0;a=uf(a|0,L|0,1)|0;d=L}b=tf(a|0,d|0,-2147483648,0)|0;e=L;if(e>>>0>0|(e|0)==0&b>>>0>4294967295){a=0;d=41;break b}k[g>>2]=a;a=Df(h|0,((h|0)<0)<<31>>31|0,u|0,v|0)|0;a=vf(a|0,L|0,30)|0;a=tf(a|0,L|0,1,0)|0;a=vf(a|0,L|0,1)|0;b=i-a|0;d=(b|0)>-1;if(p){if(d){a=((a^-2147483648)&i|0)<0;d=a?-2147483648:b;e=a?-1:((b|0)<0)<<31>>31;a=a?-2147483648:b}else{a=(a&(i^-2147483648)|0)<0;d=a?2147483647:b;e=a?0:((b|0)<0)<<31>>31;a=a?2147483647:b}i=Df(d|0,e|0,s|0,q|0)|0;i=uf(i|0,L|0,1)|0;d=L;a=Df(a|0,((a|0)<0)<<31>>31|0,s|0,q|0)|0;a=tf(a&1|0,0,i|0,d|0)|0;d=L}else{if(d)a=((a^-2147483648)&i|0)<0?-2147483648:b;else a=(a&(i^-2147483648)|0)<0?2147483647:b;a=Df(a|0,((a|0)<0)<<31>>31|0,s|0,q|0)|0;a=uf(a|0,L|0,l|0)|0;a=tf(a|0,L|0,1,0)|0;a=uf(a|0,L|0,1)|0;d=L}i=tf(a|0,d|0,-2147483648,0)|0;h=L;if(h>>>0>0|(h|0)==0&i>>>0>4294967295){a=0;d=41;break b}k[m>>2]=a;n=n+1|0}while((n|0)<(o|0))}d=((c|0)<0)<<31>>31;a=k[w+(t<<2)>>2]|0;e=(a+16773022|0)>>>0>33546044;if((f|0)<=1){a=d;break a}else{h=f;f=t}}if((d|0)==41){r=x;return a|0}}else{c=1073741824;a=0}while(0);if(e){w=0;r=x;return w|0}v=0-(k[w>>2]<<7)|0;w=((v|0)<0)<<31>>31;Df(v|0,w|0,v|0,w|0)|0;w=1073741824-L|0;w=Df(w|0,((w|0)<0)<<31>>31|0,c|0,a|0)|0;w=vf(w|0,L|0,30)|0;w=w&-4;w=(w|0)<107374?0:w;r=x;return w|0}function Ae(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=r;r=r+304|0;s=z+200|0;u=z+148|0;v=z+96|0;y=z;d=(c|0)==16?36922:36938;x=(c|0)>0;if(x){e=0;do{p=j[b+(e<<1)>>1]|0;q=p>>8;t=j[31472+(q<<1)>>1]|0;t=((ha((j[31472+(q+1<<1)>>1]|0)-t|0,p-(q<<8)|0)|0)+(t<<8)>>3)+1>>1;k[s+(l[d+e>>0]<<2)>>2]=t;e=e+1|0}while((e|0)!=(c|0));d=k[s>>2]|0}else d=0;t=c>>1;k[u>>2]=65536;d=0-d|0;p=u+4|0;k[p>>2]=d;q=(t|0)>1;a:do if(q){b=d;g=65536;f=d;e=1;while(1){i=k[s+(e<<1<<2)>>2]|0;h=((i|0)<0)<<31>>31;m=u+(e<<2)|0;d=Df(i|0,h|0,f|0,((f|0)<0)<<31>>31|0)|0;d=vf(d|0,L|0,15)|0;d=tf(d|0,L|0,1,0)|0;d=vf(d|0,L|0,1)|0;n=e+1|0;o=u+(n<<2)|0;k[o>>2]=(g<<1)-d;if((e|0)>1){d=k[u+(e+-2<<2)>>2]|0;b=e+-1|0;g=Df(g|0,((g|0)<0)<<31>>31|0,i|0,h|0)|0;g=vf(g|0,L|0,15)|0;g=tf(g|0,L|0,1,0)|0;g=vf(g|0,L|0,1)|0;k[m>>2]=d+f-g;if((b|0)>1)do{g=u+(b<<2)|0;e=k[g>>2]|0;f=d;d=k[u+(b+-2<<2)>>2]|0;b=b+-1|0;f=Df(f|0,((f|0)<0)<<31>>31|0,i|0,h|0)|0;f=vf(f|0,L|0,15)|0;f=tf(f|0,L|0,1,0)|0;f=vf(f|0,L|0,1)|0;k[g>>2]=d+e-f}while((b|0)>1);d=k[p>>2]|0}else d=b;d=d-i|0;k[p>>2]=d;if((n|0)==(t|0))break a;b=d;g=k[m>>2]|0;f=k[o>>2]|0;e=n}}while(0);o=s+4|0;k[v>>2]=65536;d=0-(k[o>>2]|0)|0;p=v+4|0;k[p>>2]=d;b:do if(q){e=65536;g=d;b=1;while(1){h=k[o+(b<<1<<2)>>2]|0;f=((h|0)<0)<<31>>31;i=v+(b<<2)|0;s=Df(h|0,f|0,g|0,((g|0)<0)<<31>>31|0)|0;s=vf(s|0,L|0,15)|0;s=tf(s|0,L|0,1,0)|0;s=vf(s|0,L|0,1)|0;m=b+1|0;n=v+(m<<2)|0;k[n>>2]=(e<<1)-s;if((b|0)>1){d=k[v+(b+-2<<2)>>2]|0;b=b+-1|0;s=Df(e|0,((e|0)<0)<<31>>31|0,h|0,f|0)|0;s=vf(s|0,L|0,15)|0;s=tf(s|0,L|0,1,0)|0;s=vf(s|0,L|0,1)|0;k[i>>2]=d+g-s;if((b|0)>1)do{s=v+(b<<2)|0;g=k[s>>2]|0;q=d;d=k[v+(b+-2<<2)>>2]|0;b=b+-1|0;q=Df(q|0,((q|0)<0)<<31>>31|0,h|0,f|0)|0;q=vf(q|0,L|0,15)|0;q=tf(q|0,L|0,1,0)|0;q=vf(q|0,L|0,1)|0;k[s>>2]=d+g-q}while((b|0)>1);d=k[p>>2]|0}d=d-h|0;k[p>>2]=d;if((m|0)==(t|0))break b;e=k[i>>2]|0;g=k[n>>2]|0;b=m}}while(0);n=c+-1|0;if((t|0)>0){d=k[u>>2]|0;b=k[v>>2]|0;e=0;do{s=e;e=e+1|0;q=d;d=k[u+(e<<2)>>2]|0;q=q+d|0;p=b;b=k[v+(e<<2)>>2]|0;p=b-p|0;k[y+(s<<2)>>2]=0-(p+q);k[y+(n-s<<2)>>2]=p-q}while((e|0)!=(t|0))}i=(c|0)>1;m=y+(n<<2)|0;d=0;b=0;while(1){if(x){e=0;f=0}else break;do{v=k[y+(e<<2)>>2]|0;v=(v|0)>0?v:0-v|0;u=(v|0)>(f|0);b=u?e:b;f=u?v:f;e=e+1|0}while((e|0)!=(c|0));e=(f>>4)+1>>1;if((e|0)<=32767){w=28;break}f=(e|0)<163838?e:163838;f=65470-(((f<<14)+-536854528|0)/((ha(f,b+1|0)|0)>>2|0)|0)|0;h=f+-65536|0;e=f>>16;if(i){g=0;do{v=y+(g<<2)|0;u=k[v>>2]|0;t=u<<16>>16;e=((ha(t,f&65535)|0)>>16)+(ha(t,e)|0)+(ha((u>>15)+1>>1,f)|0)|0;k[v>>2]=e;f=(((ha(f,h)|0)>>15)+1>>1)+f|0;g=g+1|0;e=f>>16}while((g|0)!=(n|0))}v=k[m>>2]|0;u=v<<16>>16;v=((ha(u,f&65535)|0)>>16)+(ha(u,e)|0)+(ha((v>>15)+1>>1,f)|0)|0;k[m>>2]=v;d=d+1|0;if((d|0)>=10){w=28;break}}if((w|0)==28)if((d|0)==10){d=0;do{w=y+(d<<2)|0;v=(k[w>>2]>>4)+1>>1;v=(v|0)>32767?32767:(v|0)<-32768?-32768:v;j[a+(d<<1)>>1]=v;k[w>>2]=v<<16>>11;d=d+1|0}while((d|0)!=(c|0))}else{d=0;do{j[a+(d<<1)>>1]=(((k[y+(d<<2)>>2]|0)>>>4)+1|0)>>>1;d=d+1|0}while((d|0)!=(c|0))}if(ze(a,c)|0){r=z;return}if(i)g=0;else{d=k[m>>2]|0;b=0;do{w=65536-(2<<b)|0;v=d<<16>>16;d=((ha(v,w&65535)|0)>>16)+(ha(v,w>>16)|0)+(ha((d>>15)+1>>1,w)|0)|0;k[m>>2]=d;if(x){e=0;do{j[a+(e<<1)>>1]=(((k[y+(e<<2)>>2]|0)>>>4)+1|0)>>>1;e=e+1|0}while((e|0)!=(c|0))}b=b+1|0}while((b|0)<16&(ze(a,c)|0)==0);r=z;return}do{e=65536-(2<<g)|0;b=e+-65536|0;d=e;e=e>>16;f=0;do{w=y+(f<<2)|0;v=k[w>>2]|0;u=v<<16>>16;v=((ha(u,d&65535)|0)>>16)+(ha(u,e)|0)+(ha((v>>15)+1>>1,d)|0)|0;k[w>>2]=v;d=(((ha(d,b)|0)>>15)+1>>1)+d|0;f=f+1|0;e=d>>16}while((f|0)!=(n|0));w=k[m>>2]|0;v=w<<16>>16;w=((ha(v,d&65535)|0)>>16)+(ha(v,e)|0)+(ha((w>>15)+1>>1,d)|0)|0;k[m>>2]=w;if(x){d=0;do{j[a+(d<<1)>>1]=(((k[y+(d<<2)>>2]|0)>>>4)+1|0)>>>1;d=d+1|0}while((d|0)!=(c|0))}g=g+1|0}while((g|0)<16&(ze(a,c)|0)==0);r=z;return}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,k=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=(c|0)>1;n=c+-1|0;s=a+(n<<1)|0;r=b+(c<<1)|0;o=0;do{e=j[a>>1]|0;i=j[b>>1]|0;d=i<<16>>16;g=(e<<16>>16)-d|0;if(q){f=0;h=1;do{l=e;e=j[a+(h<<1)>>1]|0;l=(e<<16>>16)-(l<<16>>16)-(j[b+(h<<1)>>1]|0)|0;k=(l|0)<(g|0);f=k?h:f;g=k?l:g;h=h+1|0}while((h|0)!=(c|0))}else f=0;e=j[r>>1]|0;h=e<<16>>16;k=32768-(j[s>>1]|0)-h|0;t=(k|0)<(g|0);l=t?c:f;if(((t?k:g)|0)>-1){p=32;break}do if(!l)j[a>>1]=i;else{if((l|0)==(c|0)){j[s>>1]=32768-(e&65535);break}if((l|0)>0){if((l|0)!=1){e=1;do{d=(j[b+(e<<1)>>1]|0)+d|0;e=e+1|0}while((e|0)!=(l|0))}}else d=0;i=b+(l<<1)|0;k=j[i>>1]|0;g=k>>1;d=g+d|0;if((l|0)<(c|0)){e=32768-h|0;if((n|0)>(l|0)){f=n;do{e=e-(j[b+(f<<1)>>1]|0)|0;f=f+-1|0}while((f|0)>(l|0))}}else e=32768;f=e-g|0;h=a+(l+-1<<1)|0;g=a+(l<<1)|0;e=(j[g>>1]|0)+(j[h>>1]|0)|0;e=(e>>1)+(e&1)|0;if((d|0)>(f|0)){if((e|0)<=(d|0))d=(e|0)<(f|0)?f:e}else if((e|0)>(f|0))d=f;else d=(e|0)<(d|0)?d:e;t=d-(k>>>1)|0;j[h>>1]=t;j[g>>1]=t+(m[i>>1]|0)}while(0);o=o+1|0}while((o|0)<20);if((p|0)==32)return;if((o|0)!=20)return;if(q){h=1;do{g=j[a+(h<<1)>>1]|0;f=h;while(1){d=f+-1|0;e=j[a+(d<<1)>>1]|0;if(g<<16>>16>=e<<16>>16){d=f;break}j[a+(f<<1)>>1]=e;if((f|0)>1)f=d;else break}j[a+(d<<1)>>1]=g;h=h+1|0}while((h|0)!=(c|0))}t=j[a>>1]|0;d=j[b>>1]|0;d=(t|0)>(d|0)?t:d;j[a>>1]=d;if(q){e=1;do{t=a+(e<<1)|0;p=j[t>>1]|0;q=(j[b+(e<<1)>>1]|0)+d|0;q=(q|0)>32767?32767:((q|0)<-32768?-32768:q)<<16>>16;d=(p|0)>(q|0)?p:q;j[t>>1]=d;e=e+1|0}while((e|0)!=(c|0))}d=j[s>>1]|0;e=32768-(j[r>>1]|0)|0;e=(d|0)<(e|0)?d:e;j[s>>1]=e;d=c+-2|0;if((d|0)<=-1)return;while(1){t=a+(d<<1)|0;s=j[t>>1]|0;c=(e<<16>>16)-(j[b+(d+1<<1)>>1]|0)|0;e=(s|0)<(c|0)?s:c;j[t>>1]=e;if((d|0)<=0)break;else d=d+-1|0}return}function Ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=j[b>>1]|0;d=(j[b+2>>1]|0)-f|0;d=131072/(((d|0)>1?d:1)|0)|0;f=d+(131072/(((f|0)>1?f:1)|0)|0)|0;j[a>>1]=(f|0)<32767?f:32767;f=c+-1|0;if((f|0)>1){e=1;c=d;do{d=e+1|0;h=b+(d<<1)|0;g=(j[h>>1]|0)-(j[b+(e<<1)>>1]|0)|0;g=131072/(((g|0)>1?g:1)|0)|0;c=g+c|0;j[a+(e<<1)>>1]=(c|0)<32767?c:32767;e=e+2|0;c=(j[b+(e<<1)>>1]|0)-(j[h>>1]|0)|0;c=131072/(((c|0)>1?c:1)|0)|0;g=c+g|0;j[a+(d<<1)>>1]=(g|0)<32767?g:32767}while((e|0)<(f|0))}else c=d;h=32768-(j[b+(f<<1)>>1]|0)|0;h=(131072/(((h|0)>1?h:1)|0)|0)+c|0;j[a+(f<<1)>>1]=(h|0)<32767?h:32767;return}function De(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,l=0,m=0;g=31-(ja(d|0)|0)|0;i=d+-1|0;h=(d|0)>1;if(h){f=0;e=d;do{l=j[c+(f<<1)>>1]|0;l=ha(l,l)|0;m=j[c+((f|1)<<1)>>1]|0;e=(((ha(m,m)|0)+l|0)>>>g)+e|0;f=f+2|0}while((f|0)<(i|0));f=d&-2}else{f=0;e=d}if((f|0)<(d|0)){m=j[c+(f<<1)>>1]|0;e=((ha(m,m)|0)>>>g)+e|0}g=g+3-(ja(e|0)|0)|0;g=(g|0)<0?0:g;if(h){f=0;e=0;do{m=j[c+(f<<1)>>1]|0;m=ha(m,m)|0;l=j[c+((f|1)<<1)>>1]|0;e=(((ha(l,l)|0)+m|0)>>>g)+e|0;f=f+2|0}while((f|0)<(i|0));f=d&-2}else{f=0;e=0}if((f|0)>=(d|0)){m=e;k[b>>2]=g;k[a>>2]=m;return}m=j[c+(f<<1)>>1]|0;m=((ha(m,m)|0)>>>g)+e|0;k[b>>2]=g;k[a>>2]=m;return}function Ee(a,b,c,d,e,f){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,q=0.0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0;H=r;r=r+976|0;C=H+784|0;D=H+592|0;F=H+392|0;B=H+192|0;G=H;k=ha(e,d)|0;i=k+-3|0;if((k|0)>3){j=0;g=0.0;do{u=+o[b+(j<<2)>>2];v=+o[b+((j|1)<<2)>>2];w=+o[b+((j|2)<<2)>>2];z=+o[b+((j|3)<<2)>>2];g=g+(u*u+v*v+w*w+z*z);j=j+4|0}while((j|0)<(i|0));i=k&-4}else{i=0;g=0.0}if((i|0)<(k|0))do{z=+o[b+(i<<2)>>2];g=g+z*z;i=i+1|0}while((i|0)!=(k|0));rf(C|0,0,192)|0;A=(e|0)>0;if(!((f|0)<1|A^1)){t=0;do{m=b+((ha(t,d)|0)<<2)|0;n=1;while(1){k=m+(n<<2)|0;l=d-n|0;i=l+-3|0;if((l|0)>3){j=0;h=0.0;do{I=j|1;x=j|2;y=j|3;h=h+(+o[m+(j<<2)>>2]*+o[k+(j<<2)>>2]+ +o[m+(I<<2)>>2]*+o[k+(I<<2)>>2]+ +o[m+(x<<2)>>2]*+o[k+(x<<2)>>2]+ +o[m+(y<<2)>>2]*+o[k+(y<<2)>>2]);j=j+4|0}while((j|0)<(i|0));i=l&-4}else{i=0;h=0.0}if((i|0)<(l|0))do{h=h+ +o[m+(i<<2)>>2]*+o[k+(i<<2)>>2];i=i+1|0}while((i|0)!=(l|0));I=C+(n+-1<<3)|0;p[I>>3]=h+ +p[I>>3];if((n|0)==(f|0))break;else n=n+1|0}t=t+1|0}while((t|0)!=(e|0))}wf(D|0,C|0,192)|0;z=g*9.999999747378752e-06;h=g+z+9.999999717180685e-10;p[F>>3]=h;p[B>>3]=h;a:do if((f|0)>0){w=c;t=1;x=0;y=2;v=1.0;while(1){b:do if(A){j=d-x|0;n=j+-1|0;k=x+-1|0;if((x|0)>0)m=0;else{k=0;while(1){i=b+((ha(k,d)|0)<<2)|0;h=+o[i+(x<<2)>>2];c=+o[i+(n<<2)>>2];j=0;do{I=F+(j<<3)|0;p[I>>3]=+p[I>>3]-h*+o[i+(x-j<<2)>>2];I=B+(j<<3)|0;p[I>>3]=+p[I>>3]-c*+o[i+(n+j<<2)>>2];j=j+1|0}while((j|0)!=(t|0));k=k+1|0;if((k|0)==(e|0))break b}}do{l=b+((ha(m,d)|0)<<2)|0;h=+o[l+(x<<2)>>2];c=+o[l+(n<<2)>>2];i=0;q=h;s=c;do{K=+o[l+(k-i<<2)>>2];I=C+(i<<3)|0;p[I>>3]=+p[I>>3]-h*K;u=+o[l+(i+j<<2)>>2];I=D+(i<<3)|0;p[I>>3]=+p[I>>3]-c*u;J=+p[G+(i<<3)>>3];q=q+J*K;s=s+J*u;i=i+1|0}while((i|0)!=(x|0));i=0;do{I=F+(i<<3)|0;p[I>>3]=+p[I>>3]-q*+o[l+(x-i<<2)>>2];I=B+(i<<3)|0;p[I>>3]=+p[I>>3]-s*+o[l+(n+i<<2)>>2];i=i+1|0}while((i|0)!=(t|0));m=m+1|0}while((m|0)!=(e|0))}while(0);h=+p[C+(x<<3)>>3];c=+p[D+(x<<3)>>3];j=(x|0)>0;if(j){i=0;do{K=+p[G+(i<<3)>>3];I=x-i+-1|0;h=h+K*+p[D+(I<<3)>>3];c=c+K*+p[C+(I<<3)>>3];i=i+1|0}while((i|0)!=(x|0))}n=x;x=x+1|0;p[F+(x<<3)>>3]=h;m=B+(x<<3)|0;p[m>>3]=c;h=+p[B>>3];u=+p[F>>3];if(j){i=0;q=u;s=c;do{K=+p[G+(i<<3)>>3];s=s+K*+p[B+(n-i<<3)>>3];i=i+1|0;h=h+K*+p[B+(i<<3)>>3];q=q+K*+p[F+(i<<3)>>3]}while((i|0)!=(n|0))}else{q=u;s=c}q=s*-2.0/(q+h);h=v*(1.0-q*q);if(!(h<=w)){v=h;l=0}else{q=+X(+(1.0-w/v));v=w;q=s>0.0?-q:q;l=1}i=x>>1;if((i|0)>0){j=n+-1|0;k=0;do{L=G+(k<<3)|0;K=+p[L>>3];I=G+(j-k<<3)|0;J=+p[I>>3];p[L>>3]=K+q*J;p[I>>3]=J+q*K;k=k+1|0}while((k|0)!=(i|0))}p[G+(n<<3)>>3]=q;if(l|0)break;p[F>>3]=u+q*c;p[m>>3]=c+q*u;i=1;do{I=F+(i<<3)|0;K=+p[I>>3];L=B+(x-i<<3)|0;J=+p[L>>3];p[I>>3]=K+q*J;p[L>>3]=J+q*K;i=i+1|0}while((i|0)!=(y|0));if((x|0)>=(f|0)){E=54;break}else{t=t+1|0;y=y+1|0}}if((E|0)==54){i=0;h=+p[F>>3];g=1.0;while(1){K=+p[G+(i<<3)>>3];L=i;i=i+1|0;h=h+K*+p[F+(i<<3)>>3];g=g+K*K;o[a+(L<<2)>>2]=-K;if((i|0)==(f|0))break a}}if((x|0)<(f|0)){rf(G+(x<<3)|0,0,f-x<<3|0)|0;i=0}else i=0;do{o[a+(i<<2)>>2]=-+p[G+(i<<3)>>3];i=i+1|0}while((i|0)!=(f|0));c:do if(A){l=f+-3|0;m=f&-4;if((f|0)<=3){k=0;while(1){i=b+((ha(k,d)|0)<<2)|0;j=0;h=0.0;do{K=+o[i+(j<<2)>>2];h=h+K*K;j=j+1|0}while((j|0)!=(f|0));g=g-h;k=k+1|0;if((k|0)==(e|0))break c}}n=(m|0)<(f|0);k=0;do{j=b+((ha(k,d)|0)<<2)|0;i=0;h=0.0;do{w=+o[j+(i<<2)>>2];z=+o[j+((i|1)<<2)>>2];J=+o[j+((i|2)<<2)>>2];K=+o[j+((i|3)<<2)>>2];h=h+(w*w+z*z+J*J+K*K);i=i+4|0}while((i|0)<(l|0));if(n){i=m;do{K=+o[j+(i<<2)>>2];h=h+K*K;i=i+1|0}while((i|0)!=(f|0))}g=g-h;k=k+1|0}while((k|0)!=(e|0))}while(0);K=v*g;r=H;return +K}else g=1.0;while(0);K=h-z*g;r=H;return +K}function Fe(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,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;K=r;r=r+32|0;p=K;o=a+2772|0;g=a+2316|0;e=k[g>>2]|0;l=a+4156|0;if((e|0)!=(k[l>>2]|0)){h=a+2340|0;J=k[h>>2]|0;i=32767/(J+1|0)|0;if((J|0)>0){e=0;f=0;do{e=e+i|0;j[a+4052+(f<<1)>>1]=e;f=f+1|0}while((f|0)<(k[h>>2]|0));e=k[g>>2]|0}k[a+4148>>2]=0;k[a+4152>>2]=3176576;k[l>>2]=e}n=a+4160|0;if(!(k[n>>2]|0)){if(!(k[a+4164>>2]|0)){e=a+2340|0;if((k[e>>2]|0)>0){f=0;do{J=a+4052+(f<<1)|0;H=j[J>>1]|0;I=(j[a+2344+(f<<1)>>1]|0)-H|0;j[J>>1]=((I>>16)*16348|0)+H+(((I&65535)*16348|0)>>>16);f=f+1|0}while((f|0)<(k[e>>2]|0))}l=a+2324|0;m=k[l>>2]|0;if((m|0)>0){h=0;i=0;e=0;while(1){f=k[b+16+(h<<2)>>2]|0;g=(f|0)>(i|0);e=g?h:e;h=h+1|0;if((h|0)==(m|0))break;else i=g?f:i}}else e=0;J=a+2332|0;I=k[J>>2]|0;xf(a+2772+(I<<2)|0,o|0,ha((m<<2)+-4|0,I)|0)|0;J=k[J>>2]|0;wf(o|0,a+4+((ha(J,e)|0)<<2)|0,J<<2|0)|0;e=k[l>>2]|0;if((e|0)>0){f=a+4148|0;g=k[f>>2]|0;h=0;do{J=(k[b+16+(h<<2)>>2]|0)-g|0;g=((J>>16)*4634|0)+g+(((J&65535)*4634|0)>>>16)|0;k[f>>2]=g;h=h+1|0}while((h|0)!=(e|0))}}if(!(k[n>>2]|0)){rf(a+4084|0,0,k[a+2340>>2]<<2|0)|0;r=K;return}}I=Pa()|0;J=r;r=r+((1*(d+16<<2)|0)+15&-16)|0;g=j[a+4228>>1]|0;e=k[a+4248>>2]|0;f=e<<16>>16;g=((ha(f,g&65535)|0)>>16)+(ha(f,g>>16)|0)+(ha((e>>15)+1>>1,g)|0)|0;e=k[a+4148>>2]|0;f=g>>16;if((g|0)>2097151|(e|0)>8388608){e=e>>16;e=(ha(e,e)|0)-(ha(f<<5,f)|0)|0;if((e|0)<1)m=0;else{h=ja(e|0)|0;f=24-h|0;g=0-f|0;do if(f)if((f|0)<0){e=e>>>(f+32|0)|e<<g;break}else{e=e<<32-f|e>>>f;break}while(0);m=((h&1|0)==0?46214:32768)>>>(h>>>1);H=(ha(e&127,13959168)|0)>>>16;m=((ha(H,m>>16)|0)+m<<16)+(ha(H,m&65535)|0)&-65536}}else{G=g<<16>>16;H=e<<16>>16;e=(ha(H,e>>16)|0)-(((ha(G,g&65535)|0)>>16)+(ha(G,f)|0)+(ha((g>>15)+1>>1,g)|0)<<5)+((ha(H,e&65535)|0)>>16)+(ha((e>>15)+1>>1,e)|0)|0;if((e|0)<1)m=0;else{h=ja(e|0)|0;f=24-h|0;g=0-f|0;do if(f)if((f|0)<0){e=e>>>(f+32|0)|e<<g;break}else{e=e<<32-f|e>>>f;break}while(0);m=((h&1|0)==0?46214:32768)>>>(h>>>1);H=(ha(e&127,13959168)|0)>>>16;m=(ha(H,m>>16)|0)+m+((ha(H,m&65535)|0)>>>16)<<8}}g=255;while(1)if((g|0)>(d|0))g=g>>1;else break;f=J+64|0;i=a+4152|0;e=k[i>>2]|0;l=(d|0)>0;if(l){h=0;do{e=(ha(e,196314165)|0)+907633515|0;k[f+(h<<2)>>2]=k[a+2772+((e>>24&g)<<2)>>2];h=h+1|0}while((h|0)!=(d|0))}k[i>>2]=e;H=a+2340|0;Ae(p,a+4052|0,k[H>>2]|0);G=a+4084|0;e=J;f=G;g=e+64|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));if(l){q=j[p>>1]|0;s=j[p+2>>1]|0;t=j[p+4>>1]|0;u=j[p+6>>1]|0;v=j[p+8>>1]|0;w=j[p+10>>1]|0;x=j[p+12>>1]|0;y=j[p+14>>1]|0;z=j[p+16>>1]|0;A=j[p+18>>1]|0;B=j[p+20>>1]|0;C=j[p+22>>1]|0;D=j[p+24>>1]|0;E=j[p+26>>1]|0;F=j[p+28>>1]|0;a=j[p+30>>1]|0;p=m<<10>>16;i=(m>>21)+1>>1;e=k[J+60>>2]|0;l=k[J+52>>2]|0;m=k[J+44>>2]|0;n=k[J+36>>2]|0;o=k[J+28>>2]|0;b=0;do{h=k[H>>2]|0;_=ha(q,e>>16)|0;Z=(ha(q,e&65535)|0)>>16;V=l;l=k[J+(b+14<<2)>>2]|0;Y=ha(s,l>>16)|0;X=(ha(s,l&65535)|0)>>16;W=ha(t,V>>16)|0;V=(ha(t,V&65535)|0)>>16;R=m;m=k[J+(b+12<<2)>>2]|0;U=ha(u,m>>16)|0;T=(ha(u,m&65535)|0)>>16;S=ha(v,R>>16)|0;R=(ha(v,R&65535)|0)>>16;N=n;n=k[J+(b+10<<2)>>2]|0;Q=ha(w,n>>16)|0;P=(ha(w,n&65535)|0)>>16;O=ha(x,N>>16)|0;N=(ha(x,N&65535)|0)>>16;g=o;o=k[J+(b+8<<2)>>2]|0;M=ha(y,o>>16)|0;L=(ha(y,o&65535)|0)>>16;f=ha(z,g>>16)|0;g=(ha(z,g&65535)|0)>>16;e=k[J+(b+6<<2)>>2]|0;e=_+(h>>1)+Z+Y+X+W+V+U+T+S+R+Q+P+O+N+M+L+f+g+(ha(A,e>>16)|0)+((ha(A,e&65535)|0)>>16)|0;if((h|0)==16){R=k[J+(b+5<<2)>>2]|0;Q=ha(B,R>>16)|0;R=(ha(B,R&65535)|0)>>16;T=k[J+(b+4<<2)>>2]|0;S=ha(C,T>>16)|0;T=(ha(C,T&65535)|0)>>16;V=k[J+(b+3<<2)>>2]|0;U=ha(D,V>>16)|0;V=(ha(D,V&65535)|0)>>16;X=k[J+(b+2<<2)>>2]|0;W=ha(E,X>>16)|0;X=(ha(E,X&65535)|0)>>16;Z=k[J+(b+1<<2)>>2]|0;Y=ha(F,Z>>16)|0;Z=(ha(F,Z&65535)|0)>>16;_=k[J+(b<<2)>>2]|0;e=Q+e+R+S+T+U+V+W+X+Y+Z+(ha(a,_>>16)|0)+((ha(a,_&65535)|0)>>16)|0}h=J+(b+16<<2)|0;g=k[h>>2]|0;e=(e|0)>134217727?2147483632:((e|0)<-134217728?-134217728:e)<<4;f=e+g|0;if((f|0)>-1)e=(e&g|0)<0?-2147483648:f;else e=(e|g|0)>-1?2147483647:f;k[h>>2]=e;_=c+(b<<1)|0;Z=((ha(e>>16,p)|0)+(ha(e,i)|0)+((ha(e&65535,p)|0)>>16)>>7)+1>>1;Z=((Z|0)>32767?32767:(Z|0)<-32768?-32768:Z)+(j[_>>1]|0)|0;j[_>>1]=(Z|0)>32767?32767:((Z|0)<-32768?-32768:Z)&65535;b=b+1|0}while((b|0)!=(d|0))}e=G;f=J+(d<<2)|0;g=e+64|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));Xa(I|0);r=K;return}function Ge(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,l=0,m=0,n=0,o=0,p=0,q=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,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,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0;da=r;r=r+32|0;ca=da;W=a+2336|0;aa=k[W>>2]|0;_=r;r=r+((1*(aa<<1)|0)+15&-16)|0;n=a+2328|0;V=k[n>>2]|0;$=r;r=r+((1*(V+aa<<2)|0)+15&-16)|0;aa=a+2332|0;Y=k[aa>>2]|0;ba=r;r=r+((1*(Y<<2)|0)+15&-16)|0;X=r;r=r+((1*(Y+16<<2)|0)+15&-16)|0;Y=a+2765|0;Z=(i[a+2767>>0]|0)<4;if((V|0)>0){m=j[29368+(i[Y>>0]>>1<<2)+(i[a+2766>>0]<<1)>>1]<<4;o=0;e=i[a+2770>>0]|0;while(1){g=(ha(e,196314165)|0)+907633515|0;h=d+(o<<1)|0;f=j[h>>1]|0;e=f<<16>>16<<14;l=a+4+(o<<2)|0;k[l>>2]=e;if(f<<16>>16<=0){if(f<<16>>16<0){e=e|1280;k[l>>2]=e}}else{e=e+-1280|0;k[l>>2]=e}V=e+m|0;k[l>>2]=(g|0)<0?0-V|0:V;o=o+1|0;if((o|0)>=(k[n>>2]|0))break;else e=(j[h>>1]|0)+g|0}}w=a+1284|0;e=X;f=w;g=e+64|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));x=a+2324|0;if((k[x>>2]|0)<=0){e=w;f=X;g=e+64|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));r=da;return}y=a+2340|0;z=a+4160|0;A=b+136|0;B=a+4164|0;C=a+2308|0;D=ca+2|0;E=ca+4|0;F=ca+6|0;G=ca+8|0;H=ca+10|0;I=ca+12|0;J=ca+14|0;K=ca+16|0;M=ca+18|0;N=ca+20|0;O=ca+22|0;P=ca+24|0;Q=ca+26|0;R=ca+28|0;S=ca+30|0;T=0;U=a+4|0;V=c;h=k[W>>2]|0;while(1){s=b+32+(T>>1<<5)|0;wf(ca|0,s|0,k[y>>2]<<1|0)|0;t=b+96+(T*5<<1)|0;p=i[Y>>0]|0;v=k[b+16+(T<<2)>>2]|0;u=v>>>6;o=ja(((v|0)>0?v:0-v|0)|0)|0;m=v<<o+-1;l=m>>16;f=536870911/(l|0)|0;e=f<<16;n=e>>16;l=536870912-(ha(l,n)|0)-((ha(m&65535,n)|0)>>16)<<3;l=(ha(l,(f>>15)+1>>1)|0)+e+(ha(l>>16,n)|0)+((ha(l&65528,n)|0)>>16)|0;e=62-o|0;f=e+-47|0;if((f|0)<1){g=47-e|0;e=-2147483648>>g;f=2147483647>>>g;if((e|0)>(f|0)){if((l|0)<=(e|0))e=(l|0)<(f|0)?f:l}else if((l|0)>(f|0))e=f;else e=(l|0)<(e|0)?e:l;d=e<<g}else d=(f|0)<32?l>>f:0;e=k[a>>2]|0;if((v|0)==(e|0))f=65536;else{f=ja(((e|0)>0?e:0-e|0)|0)|0;q=e<<f+-1;e=((ha(n,q&65535)|0)>>16)+(ha(n,q>>16)|0)|0;l=Df(e|0,((e|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;l=vf(l|0,L|0,29)|0;l=q-(l&-8)|0;l=(ha(l>>16,n)|0)+e+((ha(l&65535,n)|0)>>16)|0;e=f+28+(1-o)|0;f=e+-16|0;if((e|0)<16){g=16-e|0;e=-2147483648>>g;f=2147483647>>>g;if((e|0)>(f|0)){if((l|0)<=(e|0))e=(l|0)<(f|0)?f:l}else if((l|0)>(f|0))e=f;else e=(l|0)<(e|0)?e:l;f=e<<g}else f=(f|0)<32?l>>f:0;e=f>>16;g=f&65535;l=0;do{q=X+(l<<2)|0;o=k[q>>2]|0;n=o<<16>>16;o=((ha(n,g)|0)>>16)+(ha(n,e)|0)+(ha((o>>15)+1>>1,f)|0)|0;k[q>>2]=o;l=l+1|0}while((l|0)!=16)}k[a>>2]=v;if(((k[z>>2]|0)!=0?(k[B>>2]|0)==2:0)?(T|0)<2&p<<24>>24!=2:0){j[t>>1]=0;j[t+2>>1]=0;j[t+4>>1]=0;j[t+6>>1]=0;j[t+8>>1]=0;j[t+4>>1]=4096;p=k[C>>2]|0;k[b+(T<<2)>>2]=p;q=36}else q=33;do if((q|0)==33)if(p<<24>>24==2){p=k[b+(T<<2)>>2]|0;q=36;break}else{e=k[aa>>2]|0;o=U;q=52;break}while(0);if((q|0)==36){q=0;l=(T|0)==0;do if(!l){if(Z&(T|0)==2){f=k[W>>2]|0;e=-2-p+f-(k[y>>2]|0)|0;wf(a+1348+(f<<1)|0,c|0,k[aa>>2]<<2|0)|0;f=k[W>>2]|0;g=k[y>>2]|0;q=40;break}if((f|0)!=65536&(p|0)>-2){e=f>>16;g=h+-1|0;l=f&65535;m=p+1|0;n=0;while(1){s=$+(g-n<<2)|0;d=k[s>>2]|0;o=d<<16>>16;d=((ha(o,l)|0)>>16)+(ha(o,e)|0)+(ha((d>>15)+1>>1,f)|0)|0;k[s>>2]=d;if((n|0)==(m|0))break;else n=n+1|0}}}else{f=k[W>>2]|0;g=k[y>>2]|0;e=-2-p+f-g|0;q=40}while(0);if((q|0)==40){q=0;ye(_+(e<<1)|0,a+1348+((ha(k[aa>>2]|0,T)|0)+e<<1)|0,s,f-e|0,g);if(l){e=k[A>>2]<<16>>16;e=((ha(e,d&65535)|0)>>16)+(ha(e,d>>16)|0)<<2}else e=d;if((p|0)>-2){n=e>>16;o=k[W>>2]|0;e=e&65535;f=h+-1|0;g=p+1|0;l=0;m=0;while(1){s=j[_+(l+-1+o<<1)>>1]|0;s=((ha(s,e)|0)>>16)+(ha(s,n)|0)|0;k[$+(f+l<<2)>>2]=s;if((m|0)==(g|0))break;else{l=~m;m=m+1|0}}}}l=k[aa>>2]|0;if((l|0)>0){g=t+2|0;m=t+4|0;n=t+6|0;o=t+8|0;d=0;e=$+(h+2-p<<2)|0;f=h;while(1){la=k[e>>2]|0;ia=j[t>>1]|0;ma=ha(ia,la>>16)|0;la=(ha(ia,la&65535)|0)>>16;ia=k[e+-4>>2]|0;fa=j[g>>1]|0;ka=ha(fa,ia>>16)|0;ia=(ha(fa,ia&65535)|0)>>16;fa=k[e+-8>>2]|0;p=j[m>>1]|0;ga=ha(p,fa>>16)|0;fa=(ha(p,fa&65535)|0)>>16;p=k[e+-12>>2]|0;s=j[n>>1]|0;ea=ha(s,p>>16)|0;p=(ha(s,p&65535)|0)>>16;s=k[e+-16>>2]|0;q=j[o>>1]|0;s=ma+2+la+ka+ia+ga+fa+ea+p+(ha(q,s>>16)|0)+((ha(q,s&65535)|0)>>16)|0;s=(s<<1)+(k[U+(d<<2)>>2]|0)|0;k[ba+(d<<2)>>2]=s;k[$+(f<<2)>>2]=s<<1;d=d+1|0;if((d|0)==(l|0))break;else{e=e+4|0;f=f+1|0}}e=l;o=ba;h=h+l|0;q=52}}if((q|0)==52)if((e|0)>0){n=u<<16>>16;l=(v>>21)+1>>1;m=0;do{ma=k[y>>2]|0;pa=k[X+(m+15<<2)>>2]|0;na=j[ca>>1]|0;qa=ha(na,pa>>16)|0;pa=(ha(na,pa&65535)|0)>>16;na=k[X+(m+14<<2)>>2]|0;g=j[D>>1]|0;oa=ha(g,na>>16)|0;na=(ha(g,na&65535)|0)>>16;g=k[X+(m+13<<2)>>2]|0;p=j[E>>1]|0;f=ha(p,g>>16)|0;g=(ha(p,g&65535)|0)>>16;p=k[X+(m+12<<2)>>2]|0;s=j[F>>1]|0;d=ha(s,p>>16)|0;p=(ha(s,p&65535)|0)>>16;s=k[X+(m+11<<2)>>2]|0;u=j[G>>1]|0;q=ha(u,s>>16)|0;s=(ha(u,s&65535)|0)>>16;u=k[X+(m+10<<2)>>2]|0;ea=j[H>>1]|0;t=ha(ea,u>>16)|0;u=(ha(ea,u&65535)|0)>>16;ea=k[X+(m+9<<2)>>2]|0;ga=j[I>>1]|0;v=ha(ga,ea>>16)|0;ea=(ha(ga,ea&65535)|0)>>16;ga=k[X+(m+8<<2)>>2]|0;ka=j[J>>1]|0;fa=ha(ka,ga>>16)|0;ga=(ha(ka,ga&65535)|0)>>16;ka=k[X+(m+7<<2)>>2]|0;e=j[K>>1]|0;ia=ha(e,ka>>16)|0;ka=(ha(e,ka&65535)|0)>>16;e=k[X+(m+6<<2)>>2]|0;la=j[M>>1]|0;e=qa+(ma>>1)+pa+oa+na+f+g+d+p+q+s+t+u+v+ea+fa+ga+ia+ka+(ha(la,e>>16)|0)+((ha(la,e&65535)|0)>>16)|0;if((ma|0)==16){ea=k[X+(m+5<<2)>>2]|0;ga=j[N>>1]|0;v=ha(ga,ea>>16)|0;ea=(ha(ga,ea&65535)|0)>>16;ga=k[X+(m+4<<2)>>2]|0;ka=j[O>>1]|0;fa=ha(ka,ga>>16)|0;ga=(ha(ka,ga&65535)|0)>>16;ka=k[X+(m+3<<2)>>2]|0;ma=j[P>>1]|0;ia=ha(ma,ka>>16)|0;ka=(ha(ma,ka&65535)|0)>>16;ma=k[X+(m+2<<2)>>2]|0;oa=j[Q>>1]|0;la=ha(oa,ma>>16)|0;ma=(ha(oa,ma&65535)|0)>>16;oa=k[X+(m+1<<2)>>2]|0;qa=j[R>>1]|0;na=ha(qa,oa>>16)|0;oa=(ha(qa,oa&65535)|0)>>16;qa=k[X+(m<<2)>>2]|0;pa=j[S>>1]|0;e=v+e+ea+fa+ga+ia+ka+la+ma+na+oa+(ha(pa,qa>>16)|0)+((ha(pa,qa&65535)|0)>>16)|0}g=k[o+(m<<2)>>2]|0;e=(e|0)>134217727?2147483632:((e|0)<-134217728?-134217728:e)<<4;f=e+g|0;if((f|0)>-1)e=(e&g|0)<0?-2147483648:f;else e=(e|g|0)>-1?2147483647:f;k[X+(m+16<<2)>>2]=e;e=((ha(e>>16,n)|0)+(ha(e,l)|0)+((ha(e&65535,n)|0)>>16)>>7)+1>>1;j[V+(m<<1)>>1]=(e|0)>32767?32767:((e|0)<-32768?-32768:e)&65535;m=m+1|0;e=k[aa>>2]|0}while((m|0)<(e|0));l=e}else l=e;e=X;f=X+(l<<2)|0;g=e+64|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));T=T+1|0;if((T|0)>=(k[x>>2]|0))break;else{U=U+(l<<2)|0;V=V+(l<<1)|0}}e=w;f=X;g=e+64|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));r=da;return}function He(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;var h=0,n=0,o=0,p=0,q=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,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,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;Ja=r;r=r+432|0;Ca=Ja+224|0;Ba=Ja+368|0;Ga=Ja+336|0;wa=Ja+192|0;ya=Ja+176|0;xa=Ja+160|0;Da=Ja+80|0;Ea=Ja;Ha=Ja+304|0;za=Ja+272|0;Fa=Ja+352|0;Aa=Ja+240|0;Ia=c+2|0;Be(b,k[c+36>>2]|0,j[Ia>>1]|0);va=k[c>>2]|0;w=r;r=r+((1*((va&65535)<<2)|0)+15&-16)|0;x=c+8|0;y=c+12|0;h=va<<16;ua=h>>16;u=va>>16;do if((va&65535)<<16>>16>0){v=u+-2|0;if((v|0)<=-1){rf(w|0,0,h>>14|0)|0;break}n=k[x>>2]|0;o=0;t=k[y>>2]|0;while(1){h=u;p=v;q=0;s=0;while(1){h=h+-1|0;h=ha((m[b+(h<<1)>>1]|0)-(l[n+h>>0]<<7)<<16>>16,j[t+(h<<1)>>1]|0)|0;ta=h-(q>>1)|0;q=ha((m[b+(p<<1)>>1]|0)-(l[n+p>>0]<<7)<<16>>16,j[t+(p<<1)>>1]|0)|0;h=q-(h>>1)|0;s=((ta|0)>0?ta:0-ta|0)+s+((h|0)>0?h:0-h|0)|0;h=p+-2|0;if((h|0)<=-1)break;else{ta=p;p=h;h=ta}}k[w+(o<<2)>>2]=s;o=o+1|0;if((o|0)==(ua|0))break;else{n=n+u|0;t=t+(u<<1)|0}}}while(0);ta=r;r=r+((1*(f<<2)|0)+15&-16)|0;t=(f|0)>0;if(t){h=0;do{k[ta+(h<<2)>>2]=h;h=h+1|0}while((h|0)!=(f|0));if((f|0)>1){q=1;do{p=k[w+(q<<2)>>2]|0;o=q;while(1){h=o+-1|0;n=k[w+(h<<2)>>2]|0;if((p|0)>=(n|0)){h=o;break}k[w+(o<<2)>>2]=n;k[ta+(o<<2)>>2]=k[ta+(h<<2)>>2];if((o|0)>1)o=h;else break}k[w+(h<<2)>>2]=p;k[ta+(h<<2)>>2]=q;q=q+1|0}while((q|0)!=(f|0))}}a:do if((ua|0)>(f|0)){h=f+-1|0;s=w+(h<<2)|0;q=f+-2|0;if((q|0)>-1)p=f;else{o=ta+(h<<2)|0;n=k[s>>2]|0;p=f;while(1){h=k[w+(p<<2)>>2]|0;if((h|0)<(n|0)){k[s>>2]=h;k[o>>2]=p}else h=n;p=p+1|0;if((p|0)==(ua|0))break a;else n=h}}do{o=k[w+(p<<2)>>2]|0;if((o|0)<(k[s>>2]|0)){n=q;while(1){h=k[w+(n<<2)>>2]|0;if((o|0)>=(h|0)){h=n;break}sa=n+1|0;k[w+(sa<<2)>>2]=h;k[ta+(sa<<2)>>2]=k[ta+(n<<2)>>2];h=n+-1|0;if((n|0)>0)n=h;else break}sa=h+1|0;k[w+(sa<<2)>>2]=o;k[ta+(sa<<2)>>2]=p}p=p+1|0}while((p|0)!=(ua|0))}while(0);ra=r;r=r+((1*(f<<2)|0)+15&-16)|0;sa=r;r=r+((1*(f<<4)|0)+15&-16)|0;if(!t){f=0;Ha=ta+(f<<2)|0;Ha=k[Ha>>2]|0;Ha=Ha&255;i[a>>0]=Ha;Ha=a+1|0;f=f<<4;f=sa+f|0;Ia=j[Ia>>1]|0;Ia=Ia<<16>>16;wf(Ha|0,f|0,Ia|0)|0;ne(b,a,c);r=Ja;return}na=c+24|0;oa=c+20|0;pa=c+32|0;qa=c+4|0;ka=g>>1;la=c+16|0;ma=e<<14>>16;M=e<<16>>16;N=wa+16|0;O=Ga+8|0;P=wa+4|0;Q=wa+20|0;R=Ga+2|0;S=Ga+10|0;T=xa+4|0;U=ya+4|0;V=Ca+4|0;W=wa+8|0;X=wa+24|0;Y=Ga+4|0;Z=Ga+12|0;_=xa+8|0;$=ya+8|0;aa=Ca+8|0;ba=wa+12|0;ca=wa+28|0;da=Ga+6|0;ea=Ga+14|0;fa=xa+12|0;ga=ya+12|0;ia=Ca+12|0;K=k[x>>2]|0;I=k[y>>2]|0;t=j[Ia>>1]|0;J=0;do{H=k[ta+(J<<2)>>2]|0;F=t<<16>>16;w=ha(F,H)|0;u=K+w|0;v=I+(w<<1)|0;G=t<<16>>16>0;if(G){q=t<<16>>16;s=0;do{E=j[v+(s<<1)>>1]|0;n=(ha((m[b+(s<<1)>>1]|0)-(l[u+s>>0]<<7)<<16>>16,E)|0)>>>14&65535;j[Ha+(s<<1)>>1]=n;n=j[d+(s<<1)>>1]|0;C=n<<16>>16;E=ha(E,E)|0;n=ja((n<<16>>16>0?C:0-C|0)|0)|0;C=C<<n+-1;h=ja((E|0?E:0-E|0)|0)|0;E=E<<h+-1;p=(536870911/(E>>16|0)|0)<<16>>16;D=((ha(C&65535,p)|0)>>16)+(ha(C>>16,p)|0)|0;E=Df(D|0,((D|0)<0)<<31>>31|0,E|0,((E|0)<0)<<31>>31|0)|0;E=vf(E|0,L|0,29)|0;E=C-(E&-8)|0;p=(ha(E>>16,p)|0)+D+((ha(E&65535,p)|0)>>16)|0;h=n+28+(1-h)|0;n=h+-21|0;if((h|0)<21){o=21-h|0;h=-2147483648>>o;n=2147483647>>>o;if((h|0)>(n|0)){if((p|0)<=(h|0))h=(p|0)<(n|0)?n:p}else if((p|0)>(n|0))h=n;else h=(p|0)<(h|0)?h:p;h=h<<o}else h=(n|0)<32?p>>n:0;j[za+(s<<1)>>1]=h;s=s+1|0}while((s|0)!=(q|0));o=k[oa>>2]|0;p=F+-1|0;h=(k[na>>2]|0)+((w|0)/2|0)|0;n=0;while(1){C=i[h>>0]|0;D=C&255;j[Aa+(n<<1)>>1]=(D>>>1&7)*9;i[Fa+n>>0]=i[o+((p&0-(D&1))+n)>>0]|0;E=n|1;j[Aa+(E<<1)>>1]=((C&255)>>>5&255)*9;i[Fa+E>>0]=i[o+((p&0-(D>>>4&1))+E)>>0]|0;n=n+2|0;if((n|0)>=(F|0))break;else h=h+1|0}}p=J<<4;E=k[pa>>2]|0;t=k[qa>>2]|0;q=t<<16>>16;s=-10;do{h=s<<10;n=s<<26>>16;o=n+1024|0;do if((s|0)<=0)if(!s){n=h;h=(o<<16>>16)+-102|0;break}else{n=n|102;h=(s|0)==-1?o:o|102;break}else{n=n+-102|0;h=(o<<16>>16)+-102|0}while(0);C=(ha(n<<16>>16,q)|0)>>16;D=s+10|0;k[Da+(D<<2)>>2]=C;C=(ha(h<<16>>16,q)|0)>>16;k[Ea+(D<<2)>>2]=C;s=s+1|0}while((s|0)!=10);D=sa+p|0;k[wa>>2]=0;j[Ga>>1]=0;b:do if(G){C=t>>16;h=F;n=1;while(1){y=(n|0)>0;z=(n|0)<3;B=h;while(1){A=B+-1|0;o=E+(j[Aa+(A<<1)>>1]|0)|0;p=j[Ha+(A<<1)>>1]|0;if(y){q=l[Fa+A>>0]|0;s=j[za+(A<<1)>>1]|0;t=o+7|0;u=o+1|0;e=0;do{g=Ga+(e<<1)|0;w=(ha(j[g>>1]|0,q)|0)>>8;h=(ha(p-w<<16>>16,C)|0)>>16;h=(h|0)>9?9:(h|0)<-10?-10:h;i[Ba+(e<<4)+A>>0]=h;x=h+10|0;v=w+(k[Da+(x<<2)>>2]|0)|0;w=(k[Ea+(x<<2)>>2]|0)+w|0;j[g>>1]=v;g=e+n|0;j[Ga+(g<<1)>>1]=w;do if((h|0)>2)if((h|0)==3){x=l[t>>0]|0;h=280;break}else{h=h*43|0;x=h+108|0;h=h+151|0;break}else{if((h|0)>=-3){x=l[o+(h+4)>>0]|0;h=l[o+(h+5)>>0]|0;break}if((h|0)==-4){x=280;h=l[u>>0]|0;break}else{h=ha(h,-43)|0;x=h+108|0;h=h+65|0;break}}while(0);La=wa+(e<<2)|0;Ka=k[La>>2]|0;v=p-v<<16>>16;x=(ha(x<<16>>16,M)|0)+Ka+(ha(ha(v,v)|0,s)|0)|0;k[La>>2]=x;x=p-w<<16>>16;x=(ha(h<<16>>16,M)|0)+Ka+(ha(ha(x,x)|0,s)|0)|0;k[wa+(g<<2)>>2]=x;e=e+1|0}while((e|0)!=(n|0))}if(z)break;h=k[wa>>2]|0;o=k[N>>2]|0;if((h|0)>(o|0)){k[wa>>2]=o;k[N>>2]=h;p=j[Ga>>1]|0;j[Ga>>1]=j[O>>1]|0;j[O>>1]=p;p=4;q=o}else{p=0;q=h;h=o}k[xa>>2]=h;k[ya>>2]=q;k[Ca>>2]=p;h=k[P>>2]|0;o=k[Q>>2]|0;if((h|0)>(o|0)){k[P>>2]=o;k[Q>>2]=h;p=j[R>>1]|0;j[R>>1]=j[S>>1]|0;j[S>>1]=p;p=5;q=o}else{p=1;q=h;h=o}k[T>>2]=h;k[U>>2]=q;k[V>>2]=p;h=k[W>>2]|0;o=k[X>>2]|0;if((h|0)>(o|0)){k[W>>2]=o;k[X>>2]=h;p=j[Y>>1]|0;j[Y>>1]=j[Z>>1]|0;j[Z>>1]=p;p=6;q=o}else{p=2;q=h;h=o}k[_>>2]=h;k[$>>2]=q;k[aa>>2]=p;h=k[ba>>2]|0;o=k[ca>>2]|0;if((h|0)>(o|0)){k[ba>>2]=o;k[ca>>2]=h;p=j[da>>1]|0;j[da>>1]=j[ea>>1]|0;j[ea>>1]=p;p=7;q=o}else{p=3;q=h;h=o}k[fa>>2]=h;k[ga>>2]=q;k[ia>>2]=p;h=0;s=0;o=0;p=0;q=2147483647;while(1){if((o|0)<4){La=k[xa+(o<<2)>>2]|0;Ka=(q|0)>(La|0);x=k[ya+(o<<2)>>2]|0;e=(p|0)<(x|0);h=e?o:h;s=Ka?o:s;o=o+1|0;p=e?x:p;q=Ka?La:q;continue}if((q|0)>=(p|0))break;k[Ca+(h<<2)>>2]=k[Ca+(s<<2)>>2]^4;p=s+4|0;k[wa+(h<<2)>>2]=k[wa+(p<<2)>>2];j[Ga+(h<<1)>>1]=j[Ga+(p<<1)>>1]|0;k[ya+(h<<2)>>2]=0;k[xa+(s<<2)>>2]=2147483647;p=Ba+(h<<4)|0;h=Ba+(s<<4)|0;o=p+16|0;do{i[p>>0]=i[h>>0]|0;p=p+1|0;h=h+1|0}while((p|0)<(o|0));h=0;s=0;o=0;p=0;q=2147483647}La=Ba+A|0;i[La>>0]=(l[La>>0]|0)+((k[Ca>>2]|0)>>>2);La=Ba+16+A|0;i[La>>0]=(l[La>>0]|0)+((k[V>>2]|0)>>>2);La=Ba+32+A|0;i[La>>0]=(l[La>>0]|0)+((k[aa>>2]|0)>>>2);La=Ba+48+A|0;i[La>>0]=(l[La>>0]|0)+((k[ia>>2]|0)>>>2);if((B|0)>1)B=A;else break b}if(y){h=0;do{i[Ba+(h+n<<4)+A>>0]=(l[Ba+(h<<4)+A>>0]|0)+1;h=h+1|0}while((h|0)!=(n|0))}n=n<<1;if((n|0)<4){h=n;do{i[Ba+(h<<4)+A>>0]=i[Ba+(h-n<<4)+A>>0]|0;h=h+1|0}while((h|0)!=4)}if((B|0)>1)h=A;else break}}while(0);s=k[wa>>2]|0;La=k[P>>2]|0;h=(s|0)>(La|0);s=h?La:s;La=k[W>>2]|0;E=(s|0)>(La|0);s=E?La:s;La=k[ba>>2]|0;C=(s|0)>(La|0);s=C?La:s;La=k[N>>2]|0;B=(s|0)>(La|0);s=B?La:s;La=k[Q>>2]|0;A=(s|0)>(La|0);s=A?La:s;La=k[X>>2]|0;z=(s|0)>(La|0);s=z?La:s;La=k[ca>>2]|0;Ka=(s|0)>(La|0);h=Ka?7:z?6:A?5:B?4:C?3:E?2:h&1;s=Ka?La:s;if(G)wf(D|0,Ba+((h&3)<<4)|0,F|0)|0;i[D>>0]=(l[D>>0]|0)+(h>>>2);q=ra+(J<<2)|0;k[q>>2]=s;h=ha(ua,ka)|0;h=(k[la>>2]|0)+h|0;n=i[h+H>>0]|0;t=va>>>16&65535;if(!H)h=256-(n&255)|0;else h=(l[h+(H+-1)>>0]|0)-(n&255)|0;p=ja(h|0)|0;n=24-p|0;o=0-n|0;do if(n)if((n|0)<0){h=h>>>(n+32|0)|h<<o;break}else{h=h<<32-n|h>>>n;break}while(0);La=h&127;La=(ha(1024-(La|31-p<<7)-((ha(La*179|0,128-La|0)|0)>>>16)<<16>>16,ma)|0)+s|0;k[q>>2]=La;J=J+1|0}while((J|0)!=(f|0));if((f|0)<=1){Ka=0;f=ta+(Ka<<2)|0;f=k[f>>2]|0;f=f&255;i[a>>0]=f;f=a+1|0;Ka=Ka<<4;Ka=sa+Ka|0;La=j[Ia>>1]|0;La=La<<16>>16;wf(f|0,Ka|0,La|0)|0;ne(b,a,c);r=Ja;return}o=k[ra>>2]|0;h=0;p=1;while(1){n=k[ra+(p<<2)>>2]|0;if((n|0)<(o|0)){k[ra>>2]=n;h=p}else n=o;p=p+1|0;if((p|0)==(f|0))break;else o=n}f=ta+(h<<2)|0;f=k[f>>2]|0;f=f&255;i[a>>0]=f;f=a+1|0;Ka=h<<4;Ka=sa+Ka|0;La=j[Ia>>1]|0;La=La<<16>>16;wf(f|0,Ka|0,La|0)|0;ne(b,a,c);r=Ja;return}function Ie(){Pb(4456,37189);ab(4472,37194,1,1,0);ub(4480,37199,1,-128,127);ub(4496,38836,1,-128,127);ub(4488,38848,1,0,255);ub(4504,38862,2,-32768,32767);ub(4512,38868,2,0,65535);ub(4520,38883,4,-2147483648,2147483647);ub(4528,38887,4,0,-1);ub(4536,37204,4,-2147483648,2147483647);ub(4544,38900,4,0,-1);Zb(4552,38914,4);Zb(4560,38920,8);Ma(48,38927);Ma(80,37373);Sb(104,4,37469);db(128,37501);Kb(136,0,37548);Kb(144,0,37609);Kb(152,1,37677);Kb(160,2,37747);Kb(168,3,37809);Kb(176,4,37880);Kb(184,5,37940);Kb(192,4,38009);Kb(200,5,38070);Kb(144,0,38109);Kb(152,1,38141);Kb(160,2,38174);Kb(168,3,38207);Kb(176,4,38241);Kb(184,5,38274);Kb(208,6,38339);Kb(216,7,38401);Kb(224,7,38464);return}function Je(a){a=a|0;var b=0,c=0,d=0,e=0;e=k[a+4>>2]|0;d=e;a:do if(!(d&3)){a=e;c=4}else{b=e;a=d;while(1){if(!(i[b>>0]|0))break a;b=b+1|0;a=b;if(!(a&3)){a=b;c=4;break}}}while(0);if((c|0)==4){while(1){b=k[a>>2]|0;if(!((b&-2139062144^-2139062144)&b+-16843009))a=a+4|0;else break}if((b&255)<<24>>24)do a=a+1|0;while((i[a>>0]|0)!=0)}a=a-d+1|0;b=Le(a)|0;if(!b){e=0;return e|0}wf(b|0,e|0,a|0)|0;e=b;return e|0}
function bd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0.0,v=0.0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0,H=0,I=0.0,J=0,K=0.0,L=0.0,M=0,N=0,O=0,P=0,Q=0.0,R=0,S=0,T=0,U=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0.0,da=0,ea=0,ga=0,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0.0,La=0,Ma=0,Na=0,Oa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0.0;fb=r;r=r+192|0;R=fb+88|0;s=fb+40|0;Za=fb+32|0;M=fb+28|0;Qa=fb+24|0;Oa=fb+20|0;da=fb+16|0;Ha=fb+12|0;Ga=fb+8|0;ea=fb+4|0;O=fb;db=k[a+4>>2]|0;Ya=k[a+8>>2]|0;k[Za>>2]=15;o[M>>2]=0.0;k[Qa>>2]=0;k[da>>2]=0;k[ea>>2]=0;Na=k[a>>2]|0;Ua=Na+8|0;eb=k[Ua>>2]|0;J=k[Na+4>>2]|0;Ia=Na+32|0;sa=k[Ia>>2]|0;bb=k[a+32>>2]|0;cb=k[a+36>>2]|0;Fa=(bb|0)!=0;o[Ha>>2]=0.0;if((b|0)==0|(e|0)<2){a=-1;r=fb;return a|0}S=a+28|0;n=ha(k[S>>2]|0,c)|0;Da=Na+36|0;m=k[Da>>2]|0;a:do if((m|0)<0)g=0;else{c=k[Na+44>>2]|0;h=0;while(1){if((c<<h|0)==(n|0)){g=h;break a}g=h+1|0;if((h|0)<(m|0))h=g;else break}}while(0);if((g|0)>(m|0)){a=-1;r=fb;return a|0}U=1<<g;ma=Na+44|0;Ma=k[ma>>2]<<g;H=a+236+((ha(J,db)|0)<<2)|0;_a=a+236+((ha(J+1024|0,db)|0)<<2)|0;Wa=ha(eb,db)|0;$a=_a+(Wa<<2)|0;ab=$a+(Wa<<2)|0;Ta=ab+(Wa<<2)|0;p=(f|0)==0;if(p){y=0;G=1;Ea=1}else{Ra=k[f+20>>2]|0;Va=k[f+28>>2]|0;G=ja(Va|0)|0;Sa=32-G|0;Va=Va>>>(Sa+-16|0);Ea=Va>>>12;G=Ra+-32+G|0;y=G+4>>3;Ea=(Ra-Sa<<3)+8-Ea+((Va>>>0>(k[9236+(Ea+-8<<2)>>2]|0)>>>0)<<31>>31)|0}h=(e|0)<1275?e:1275;q=h-y|0;pa=a+44|0;c=k[a+40>>2]|0;m=(c|0)==-1;if(!(k[pa>>2]|0))if(m){c=-1;va=14}else{Va=ha(c,n)|0;va=k[Na>>2]|0;va=((Va+((G|0)>1?G:0)+(va<<2)|0)/(va<<3|0)|0)-((k[a+48>>2]|0)!=0&1)|0;h=(h|0)<(va|0)?h:va;h=(h|0)<2?2:h;va=14}else if(m){c=-1;va=14}else{Ja=k[Na>>2]|0;Ja=((Ja>>4)+(ha(c,n)|0)|0)/(Ja>>3|0)|0;e=h;w=Ja>>6}if((va|0)==14){e=h;w=h-y|0;Ja=0}Ca=3-g|0;Aa=(Ya*40|0)+20|0;h=ha((400>>>g)+-50|0,Aa)|0;m=(e*400>>Ca)-h|0;if((c|0)!=-1){Va=c-h|0;m=(m|0)<(Va|0)?m:Va}if(p){k[s>>2]=d;k[s+8>>2]=0;k[s+12>>2]=0;k[s+16>>2]=0;k[s+20>>2]=33;k[s+24>>2]=0;k[s+28>>2]=-2147483648;k[s+40>>2]=-1;k[s+32>>2]=0;k[s+36>>2]=0;k[s+4>>2]=e;k[s+44>>2]=0;Va=s}else Va=f;za=(Ja|0)>0;if((za?(k[a+52>>2]|0)!=0:0)?(Sa=(G|0)==1?2:0,t=(Ja<<1)-(k[a+200>>2]|0)>>6,t=(Sa|0)>(t|0)?Sa:t,(t|0)<(q|0)):0){e=t+y|0;La=k[Va>>2]|0;Sa=k[Va+8>>2]|0;Ra=0-Sa|0;h=Va+4|0;xf(La+e+Ra|0,La+(k[h>>2]|0)+Ra|0,Sa|0)|0;k[h>>2]=e;h=t}else h=q;n=e<<3;ba=k[Na+12>>2]|0;aa=(cb|0)>(ba|0);na=aa?ba:cb;N=Ma+J|0;d=ha(N,db)|0;Sa=Pa()|0;P=r;r=r+((1*(d<<2)|0)+15&-16)|0;d=a+216|0;x=+o[d>>2];q=ha(Ma-J|0,Ya)|0;s=k[S>>2]|0;q=(q|0)/(s|0)|0;p=(q|0)>0;if(p){c=0;v=0.0;u=0.0;do{Ka=+o[b+(c<<2)>>2];v=v>Ka?v:Ka;u=u<Ka?u:Ka;c=c+1|0}while((c|0)!=(q|0))}else{v=0.0;u=0.0}Ka=-u;if(!(x>(v>Ka?v:Ka))){if(p){c=0;v=0.0;u=0.0;do{Ka=+o[b+(c<<2)>>2];v=v>Ka?v:Ka;u=u<Ka?u:Ka;c=c+1|0}while((c|0)!=(q|0))}else{v=0.0;u=0.0}x=-u;x=v>x?v:x}q=b+(q<<2)|0;c=(ha(J,Ya)|0)/(s|0)|0;if((c|0)>0){p=0;v=0.0;u=0.0;do{Ka=+o[q+(p<<2)>>2];v=v>Ka?v:Ka;u=u<Ka?u:Ka;p=p+1|0}while((p|0)!=(c|0))}else{v=0.0;u=0.0}u=-u;u=v>u?v:u;o[d>>2]=u;u=x>u?x:u;la=a+60|0;c=u<=1.0/+(1<<k[la>>2]|0);p=c&1;if((G|0)==1){od(Va,p,15);if(c){if(za){n=y+2|0;n=(e|0)<(n|0)?e:n;Ra=k[Va>>2]|0;c=k[Va+8>>2]|0;h=0-c|0;e=Va+4|0;xf(Ra+n+h|0,Ra+(k[e>>2]|0)+h|0,c|0)|0;k[e>>2]=n;e=n;c=n;h=2;n=n<<3}else c=w;G=e<<3;Ra=Va+20|0;ka=k[Ra>>2]|0;ka=32-ka+G-(ja(k[Va+28>>2]|0)|0)+ka|0;k[Ra>>2]=ka;Ra=1;ka=c}else{Ra=0;ka=w;p=0;G=1}}else{Ra=0;ka=w;p=0}E=a+16|0;w=u>65536.0;y=Na+16|0;z=Na+20|0;A=(Ma|0)>0;B=Ma<<2;D=0;do{c=w&(k[E>>2]|0)!=0;f=b+(D<<2)|0;t=P+((ha(D,N)|0)<<2)+(J<<2)|0;s=k[S>>2]|0;C=a+184+(D<<2)|0;v=+o[y>>2];u=+o[C>>2];if(c|((s|0)!=1|+o[z>>2]!=0.0)){d=(Ma|0)/(s|0)|0;if((s|0)!=1)rf(t|0,0,B|0)|0;if((d|0)>0){q=0;do{Ba=f+((ha(q,db)|0)<<2)|0;La=t+((ha(q,s)|0)<<2)|0;o[La>>2]=+o[Ba>>2]*32768.0;q=q+1|0}while((q|0)!=(d|0));if(c){c=0;do{La=t+((ha(c,s)|0)<<2)|0;Ka=+o[La>>2];ya=Ka>65536.0;Ba=(ya?65536.0:Ka)<-65536.0;o[La>>2]=ya|Ba?(Ba?-65536.0:65536.0):Ka;c=c+1|0}while((c|0)!=(d|0))}}if(A){c=0;do{La=t+(c<<2)|0;Ka=+o[La>>2];o[La>>2]=Ka-u;u=v*Ka;c=c+1|0}while((c|0)!=(Ma|0))}}else if(A){c=0;do{La=f+((ha(c,db)|0)<<2)|0;Ka=+o[La>>2]*32768.0;o[t+(c<<2)>>2]=Ka-u;u=v*Ka;c=c+1|0}while((c|0)!=(Ma|0))}o[C>>2]=u;D=D+1|0}while((D|0)<(db|0));wa=a+64|0;if((h|0)>3&(k[wa>>2]|0)!=0)if(!(p|bb))va=52;else c=0;else if((p|bb|0)!=0|(h|0)<=(Ya*12|0))c=0;else va=52;if((va|0)==52)if(!(k[a+20>>2]|0))c=(k[a+24>>2]|0)>4;else c=0;$=a+100|0;La=k[$>>2]|0;c=cd(a,P,H,db,Ma,La,Za,M,O,c&1,h)|0;Ka=+o[M>>2];if(!(Ka>.4000000059604645)?!(+o[a+108>>2]>.4000000059604645):0)ta=0;else va=56;do if((va|0)==56){if(k[a+120>>2]|0?!(+o[a+124>>2]>.3):0){ta=0;break}Q=+(k[Za>>2]|0);ca=+(k[a+104>>2]|0);ta=(Q>ca*1.26|Q<ca*.79)&1}while(0);T=(c|0)==0;if(T){if(!(Fa|(G+16|0)>(n|0)))od(Va,0,1)}else{od(Va,1,1);D=k[Za>>2]|0;E=D+1|0;k[Za>>2]=E;B=32-(ja(E|0)|0)|0;A=B+-5|0;nd(Va,A,B+-4|0,6);A=E-(16<<A)|0;B=B+-1|0;E=Va+12|0;c=k[E>>2]|0;G=Va+16|0;p=k[G>>2]|0;if((p+B|0)>>>0>32){d=Va+24|0;f=Va+8|0;t=Va+4|0;w=Va+44|0;y=7-p|0;y=(y|0)>-8?y:-8;z=p;do{q=k[f>>2]|0;s=k[t>>2]|0;if((q+(k[d>>2]|0)|0)>>>0<s>>>0){q=q+1|0;k[f>>2]=q;i[(k[Va>>2]|0)+(s-q)>>0]=c;q=0}else q=-1;k[w>>2]=k[w>>2]|q;c=c>>>8;z=z+-8|0}while((z|0)>7);p=p+-8-(y+p&-8)|0}c=A<<p|c;q=p+B|0;k[E>>2]=c;k[G>>2]=q;C=Va+20|0;p=(k[C>>2]|0)+B|0;k[C>>2]=p;k[Za>>2]=D;A=k[O>>2]|0;if((q+3|0)>>>0>32){d=Va+24|0;f=Va+8|0;t=Va+4|0;w=Va+44|0;z=7-q|0;z=(z|0)>-8?z:-8;y=q;do{p=k[f>>2]|0;s=k[t>>2]|0;if((p+(k[d>>2]|0)|0)>>>0<s>>>0){p=p+1|0;k[f>>2]=p;i[(k[Va>>2]|0)+(s-p)>>0]=c;p=0}else p=-1;k[w>>2]=k[w>>2]|p;c=c>>>8;y=y+-8|0}while((y|0)>7);p=k[C>>2]|0;q=q+-8-(z+q&-8)|0}k[E>>2]=A<<q|c;k[G>>2]=q+3;k[C>>2]=p+3;pd(Va,La,32213,2)}ua=a+24|0;if((k[ua>>2]|0)>0?(k[wa>>2]|0)==0:0){if(Fa&(ka|0)<15)c=(k[a+180>>2]|0)>99;else c=0;E=dd(P,N,db,Ha,da,c&1,ea)|0}else E=0;N=(g|0)>0;do if(N?((k[Va+20>>2]|0)+-29+(ja(k[Va+28>>2]|0)|0)|0)<=(n|0):0)if(!E){c=0;va=83}else{A=(ha(Ma,db)|0)<<2;z=r;r=r+((1*A|0)+15&-16)|0;A=r;r=r+((1*(Wa<<2)|0)+15&-16)|0;B=r;r=r+((1*(Wa<<2)|0)+15&-16)|0;C=ha(eb,Ya)|0;D=r;r=r+((1*(C<<2)|0)+15&-16)|0;if((k[ua>>2]|0)<=7){G=0;b=z;ra=A;ya=C;A=1;O=D;p=E;E=U;Ba=0;break}ed(Na,0,P,z,Ya,db,g,k[S>>2]|0);s=k[Ia>>2]|0;d=k[ma>>2]<<g;b:do if((na|0)>0){t=0;do{f=ha(t,d)|0;w=0;do{p=j[s+(w<<1)>>1]|0;c=z+((p<<g)+f<<2)|0;y=w;w=w+1|0;p=(j[s+(w<<1)>>1]|0)-p<<g;if((p|0)>0){q=0;u=0.0;do{ca=+o[c+(q<<2)>>2];u=u+ca*ca;q=q+1|0}while((q|0)!=(p|0))}else u=0.0;ca=+X(+(u+1.0000000272452012e-27));Ba=A+((ha(k[Ua>>2]|0,t)|0)+y<<2)|0;o[Ba>>2]=ca}while((w|0)!=(na|0));t=t+1|0}while((t|0)<(Ya|0));s=k[Ua>>2]|0;if(aa)q=0;else{p=0;while(1){c=ha(s,p)|0;q=0;do{Ba=c+q|0;ca=+fa(+(+o[A+(Ba<<2)>>2]))*1.4426950408889634;o[D+(Ba<<2)>>2]=ca-+o[21184+(q<<2)>>2];q=q+1|0}while((q|0)!=(na|0));p=p+1|0;if((p|0)>=(Ya|0))break b}}do{p=ha(s,q)|0;c=0;do{Ba=p+c|0;ca=+fa(+(+o[A+(Ba<<2)>>2]))*1.4426950408889634;o[D+(Ba<<2)>>2]=ca-+o[21184+(c<<2)>>2];c=c+1|0}while((c|0)!=(na|0));c=ba;do{o[D+(p+c<<2)>>2]=-14.0;c=c+1|0}while((c|0)!=(cb|0));q=q+1|0}while((q|0)<(Ya|0))}else{if(!aa)break;c=k[Ua>>2]|0;q=0;do{p=ha(c,q)|0;s=na;do{o[D+(p+s<<2)>>2]=-14.0;s=s+1|0}while((s|0)!=(cb|0));q=q+1|0}while((q|0)<(Ya|0))}while(0);if((C|0)<=0){G=1;b=z;ra=A;ya=C;A=1;O=D;p=E;E=U;Ba=0;break}u=+(g|0)*.5;c=0;do{Ba=D+(c<<2)|0;o[Ba>>2]=u+ +o[Ba>>2];c=c+1|0}while((c|0)!=(C|0));G=1;b=z;ra=A;ya=C;A=1;O=D;p=E;E=U;Ba=0}else{c=1;va=83}while(0);if((va|0)==83){ra=(ha(Ma,db)|0)<<2;b=r;r=r+((1*ra|0)+15&-16)|0;ra=r;r=r+((1*(Wa<<2)|0)+15&-16)|0;B=r;r=r+((1*(Wa<<2)|0)+15&-16)|0;ya=ha(eb,Ya)|0;O=r;r=r+((1*(ya<<2)|0)+15&-16)|0;G=0;A=0;p=0;E=0;Ba=c}qa=a+72|0;ed(Na,E,P,b,Ya,db,g,k[S>>2]|0);D=(Ya|0)==1;xa=(db|0)==2&D;if(xa)k[da>>2]=0;d=k[Ia>>2]|0;f=k[ma>>2]<<g;J=(na|0)>0;if(J){w=0;do{t=ha(w,f)|0;y=0;do{q=j[d+(y<<1)>>1]|0;c=b+((q<<g)+t<<2)|0;z=y;y=y+1|0;q=(j[d+(y<<1)>>1]|0)-q<<g;if((q|0)>0){s=0;u=0.0;do{ca=+o[c+(s<<2)>>2];u=u+ca*ca;s=s+1|0}while((s|0)!=(q|0))}else u=0.0;ca=+X(+(u+1.0000000272452012e-27));oa=ra+((ha(k[Ua>>2]|0,w)|0)+z<<2)|0;o[oa>>2]=ca}while((y|0)!=(na|0));w=w+1|0}while((w|0)<(Ya|0))}C=k[wa>>2]|0;if((C|0)!=0&(cb|0)>2){c=2;do{oa=ra+(c<<2)|0;Q=+o[oa>>2];ca=+o[ra>>2]*9.999999747378752e-05;ca=Q<ca?Q:ca;o[oa>>2]=ca>1.0000000036274937e-15?ca:1.0000000036274937e-15;c=c+1|0}while((c|0)!=(cb|0))}c:do if(J){d=k[Ua>>2]|0;if(aa)s=0;else{q=0;while(1){c=ha(d,q)|0;s=0;do{oa=c+s|0;ca=+fa(+(+o[ra+(oa<<2)>>2]))*1.4426950408889634;o[B+(oa<<2)>>2]=ca-+o[21184+(s<<2)>>2];s=s+1|0}while((s|0)!=(na|0));q=q+1|0;if((q|0)>=(Ya|0))break c}}do{q=ha(d,s)|0;c=0;do{oa=q+c|0;ca=+fa(+(+o[ra+(oa<<2)>>2]))*1.4426950408889634;o[B+(oa<<2)>>2]=ca-+o[21184+(c<<2)>>2];c=c+1|0}while((c|0)!=(na|0));c=ba;do{o[B+(q+c<<2)>>2]=-14.0;c=c+1|0}while((c|0)!=(cb|0));s=s+1|0}while((s|0)<(Ya|0))}else{if(!aa)break;c=k[Ua>>2]|0;s=0;do{q=ha(c,s)|0;d=na;do{o[B+(q+d<<2)>>2]=-14.0;d=d+1|0}while((d|0)!=(cb|0));s=s+1|0}while((s|0)<(Ya|0))}while(0);M=r;r=r+((1*(ya<<2)|0)+15&-16)|0;H=cb<<2;rf(M|0,0,H|0)|0;do if(Fa){F=0.0;I=0.0;va=154}else{y=k[a+228>>2]|0;if(!y){F=0.0;I=0.0;va=154;break}if(C|0){F=0.0;I=0.0;ca=0.0;break}z=k[a+92>>2]|0;z=(z|0)<2?2:z;w=(z|0)>0;if((Ya|0)>0&w){s=j[sa>>1]|0;t=0;c=0;u=0.0;F=0.0;do{d=ha(t,eb)|0;f=s;q=0;do{ca=+o[y+(q+d<<2)>>2];oa=ca<.25;va=!((oa?ca:.25)>-2.0);ca=va|oa^1?(va?-2.0:.25):ca;ca=ca>0.0?ca*.5:ca;va=q;q=q+1|0;oa=f;f=j[sa+(q<<1)>>1]|0;oa=(f<<16>>16)-(oa<<16>>16)|0;F=F+ +(oa|0)*ca;c=oa+c|0;u=u+ +((va<<1|1)-z|0)*ca}while((q|0)<(z|0));t=t+1|0}while((t|0)!=(Ya|0))}else{c=0;u=0.0;F=0.0}v=+(c|0);x=u*6.0/+(ha(ha(ha(z,Ya)|0,z+-1|0)|0,z+1|0)|0)*.5;x=x<.03099999949336052?x:.03099999949336052;c=(j[sa+(z<<1)>>1]|0)/2|0;s=0;while(1){q=s+1|0;if((j[sa+(q<<1)>>1]|0)<(c|0))s=q;else break}u=F/v+.20000000298023224;v=x>-.03099999949336052?x:-.03099999949336052;do if(w){if((Ya|0)==2){c=0;q=0;do{ca=+o[y+(q<<2)>>2];x=+o[y+(q+eb<<2)>>2];x=ca>x?ca:x;x=(x<0.0?x:0.0)-(u+v*+(q-s|0));if(x>.25){o[M+(q<<2)>>2]=x+-.25;c=c+1|0}q=q+1|0}while((q|0)<(z|0))}else{c=0;q=0;do{x=+o[y+(q<<2)>>2];x=(x<0.0?x:0.0)-(u+v*+(q-s|0));if(x>.25){o[M+(q<<2)>>2]=x+-.25;c=c+1|0}q=q+1|0}while((q|0)<(z|0))}if((c|0)<=2)break;u=u+.25;if(u>0.0){rf(M|0,0,z<<2|0)|0;v=0.0;u=0.0;break}else{c=0;do{va=M+(c<<2)|0;ca=+o[va>>2]+-.25;o[va>>2]=ca<0.0?0.0:ca;c=c+1|0}while((c|0)<(z|0))}}while(0);F=u+.20000000298023224;I=v*64.0;va=154}while(0);do if((va|0)==154){if(C|0){ca=0.0;break}x=A?+(g|0)*.5:0.0;if((cb|0)>(bb|0))if((Ya|0)==2){v=-10.0;u=0.0;c=bb;do{ca=v+-1.0;Q=+o[B+(c<<2)>>2]-x;Q=ca>Q?ca:Q;ca=+o[B+(c+eb<<2)>>2]-x;v=Q>ca?Q:ca;u=u+v;c=c+1|0}while((c|0)!=(cb|0))}else{v=-10.0;u=0.0;c=bb;do{Q=v+-1.0;ca=+o[B+(c<<2)>>2]-x;v=Q>ca?Q:ca;u=u+v;c=c+1|0}while((c|0)!=(cb|0))}else u=0.0;oa=a+232|0;Q=+o[oa>>2];ca=u/+(cb-bb|0)-Q;ca=ca<-1.5?-1.5:ca;ca=ca>3.0?3.0:ca;o[oa>>2]=Q+ca*.019999999552965164}while(0);if(!G)wf(O|0,B|0,ya<<2|0)|0;do if(N){z=Va+20|0;s=k[z>>2]|0;A=Va+28|0;q=k[A>>2]|0;do if(p|0?1:(s+-29+(ja(q|0)|0)|0)>(n|0))c=E;else{if(!((k[ua>>2]|0)>4&(C|bb|0)==0)){p=0;c=E;break}u=+o[_a+(bb<<2)>>2];do if(D){o[R+(bb<<2)>>2]=u;c=bb+1|0;if((c|0)>=(cb|0))break;do{L=u+-1.0;Q=+o[_a+(c<<2)>>2];u=L>Q?L:Q;o[R+(c<<2)>>2]=u;c=c+1|0}while((c|0)!=(cb|0))}else{Q=+o[_a+(bb+eb<<2)>>2];u=u>Q?u:Q;o[R+(bb<<2)>>2]=u;c=bb+1|0;if((c|0)>=(cb|0))break;do{L=u+-1.0;K=+o[_a+(c<<2)>>2];Q=+o[_a+(c+eb<<2)>>2];Q=K>Q?K:Q;u=L>Q?L:Q;o[R+(c<<2)>>2]=u;c=c+1|0}while((c|0)!=(cb|0))}while(0);c=cb+-2|0;if((c|0)>=(bb|0))while(1){oa=R+(c<<2)|0;L=+o[oa>>2];Q=+o[R+(c+1<<2)>>2]+-1.0;o[oa>>2]=L>Q?L:Q;if((c|0)>(bb|0))c=c+-1|0;else break}f=(bb|0)<2?2:bb;t=cb+-1|0;if((t|0)>(f|0)){p=0;u=0.0;do{c=ha(p,eb)|0;d=f;do{L=+o[B+(d+c<<2)>>2];Q=+o[R+(d<<2)>>2];Q=(L<0.0?0.0:L)-(Q<0.0?0.0:Q);u=u+(Q<0.0?0.0:Q);d=d+1|0}while((d|0)<(t|0));p=p+1|0}while((p|0)<(Ya|0))}else u=0.0;if(!(u/+(ha(t-f|0,Ya)|0)>1.0)){p=0;c=E;break}ed(Na,U,P,b,Ya,db,g,k[S>>2]|0);s=k[Ia>>2]|0;d=k[ma>>2]<<g;d:do if(J){t=0;do{f=ha(t,d)|0;w=0;do{p=j[s+(w<<1)>>1]|0;c=b+((p<<g)+f<<2)|0;y=w;w=w+1|0;p=(j[s+(w<<1)>>1]|0)-p<<g;if((p|0)>0){q=0;u=0.0;do{Q=+o[c+(q<<2)>>2];u=u+Q*Q;q=q+1|0}while((q|0)!=(p|0))}else u=0.0;Q=+X(+(u+1.0000000272452012e-27));oa=ra+((ha(k[Ua>>2]|0,t)|0)+y<<2)|0;o[oa>>2]=Q}while((w|0)!=(na|0));t=t+1|0}while((t|0)<(Ya|0));s=k[Ua>>2]|0;if(aa)q=0;else{p=0;while(1){c=ha(s,p)|0;q=0;do{oa=c+q|0;Q=+fa(+(+o[ra+(oa<<2)>>2]))*1.4426950408889634;o[B+(oa<<2)>>2]=Q-+o[21184+(q<<2)>>2];q=q+1|0}while((q|0)!=(na|0));p=p+1|0;if((p|0)>=(Ya|0))break d}}do{p=ha(s,q)|0;c=0;do{oa=p+c|0;Q=+fa(+(+o[ra+(oa<<2)>>2]))*1.4426950408889634;o[B+(oa<<2)>>2]=Q-+o[21184+(c<<2)>>2];c=c+1|0}while((c|0)!=(na|0));c=ba;do{o[B+(p+c<<2)>>2]=-14.0;c=c+1|0}while((c|0)!=(cb|0));q=q+1|0}while((q|0)<(Ya|0))}else{if(!aa)break;c=k[Ua>>2]|0;q=0;do{p=ha(c,q)|0;s=na;do{o[B+(p+s<<2)>>2]=-14.0;s=s+1|0}while((s|0)!=(cb|0));q=q+1|0}while((q|0)<(Ya|0))}while(0);if((ya|0)>0){u=+(g|0)*.5;c=0;do{oa=O+(c<<2)|0;o[oa>>2]=u+ +o[oa>>2];c=c+1|0}while((c|0)!=(ya|0))}o[Ha>>2]=.20000000298023224;s=k[z>>2]|0;q=k[A>>2]|0;p=1;c=U}while(0);if((s+-29+(ja(q|0)|0)|0)>(n|0)){oa=p;_=c;break}od(Va,p,3);oa=p;_=c}else{oa=p;_=E}while(0);z=(ha(Ma,Ya)|0)<<2;Z=r;r=r+((1*z|0)+15&-16)|0;z=k[Ia>>2]|0;A=k[ma>>2]<<g;if(J){p=k[Ua>>2]|0;q=j[z>>1]|0;w=0;do{s=ha(w,p)|0;t=ha(w,A)|0;d=q;y=0;do{u=1.0/(+o[ra+(y+s<<2)>>2]+1.0000000272452012e-27);c=d<<16>>16<<g;y=y+1|0;d=j[z+(y<<1)>>1]|0;f=d<<16>>16<<g;if((c|0)<(f|0))do{ia=c+t|0;o[Z+(ia<<2)>>2]=u*+o[b+(ia<<2)>>2];c=c+1|0}while((c|0)!=(f|0))}while((y|0)!=(na|0));w=w+1|0}while((w|0)<(Ya|0))}Y=r;r=r+((1*(eb<<2)|0)+15&-16)|0;do if(Fa|(ka|0)<(Ya*15|0))va=215;else{if((k[ua>>2]|0)<=1){va=215;break}if(k[wa>>2]|0){va=215;break}q=(1280/(ka|0)|0)+2|0;q=fd(k[Ia>>2]|0,na,oa,Y,(q|0)<5?5:q,Z,Ma,g,+o[Ha>>2],k[da>>2]|0)|0;if(!aa)break;p=Y+(na+-1<<2)|0;c=ba;do{k[Y+(c<<2)>>2]=k[p>>2];c=c+1|0}while((c|0)!=(cb|0))}while(0);e:do if((va|0)==215){if(Fa&(k[ea>>2]|0)!=0){if((cb|0)>0)c=0;else{q=0;break}while(1){k[Y+(c<<2)>>2]=1;c=c+1|0;if((c|0)==(cb|0)){q=0;break e}}}c=(cb|0)>0;if(Fa&(ka|0)<15){if(!c){q=oa;break}rf(Y|0,0,H|0)|0;q=oa;break}else{if(c)c=0;else{q=0;break}do{k[Y+(c<<2)>>2]=oa;c=c+1|0}while((c|0)!=(cb|0));q=0}}while(0);ga=r;r=r+((1*(ya<<2)|0)+15&-16)|0;ea=(cb|0)>(bb|0);if(ea){d=0;do{p=ha(d,eb)|0;f=bb;do{c=f+p|0;s=B+(c<<2)|0;u=+o[s>>2];if(+W(+(u-+o[_a+(c<<2)>>2]))<2.0)o[s>>2]=u-+o[Ta+(c<<2)>>2]*.25;f=f+1|0}while((f|0)!=(cb|0));d=d+1|0}while((d|0)<(Ya|0))}zd(Na,bb,cb,na,B,_a,n,ga,Va,Ya,g,h,k[a+12>>2]|0,a+84|0,(k[ua>>2]|0)>3&1,k[a+56>>2]|0,k[wa>>2]|0);aa=Va+4|0;c=k[aa>>2]<<3;ba=Va+20|0;ia=Va+28|0;d=(k[ba>>2]|0)+-32+(ja(k[ia>>2]|0)|0)|0;da=(oa|0)!=0;s=da?2:4;if(N)z=(d+(s|1)|0)>>>0<=c>>>0;else z=0;w=c-(z&1)|0;if(ea){y=da?4:5;t=0;p=bb;f=s;c=0;while(1){s=Y+(p<<2)|0;if((f+d|0)>>>0>w>>>0){k[s>>2]=t;s=t}else{U=k[s>>2]|0;od(Va,U^t,f);s=U;d=(k[ba>>2]|0)+-32+(ja(k[ia>>2]|0)|0)|0;c=U|c}p=p+1|0;if((p|0)==(cb|0))break;else{t=s;f=y}}}else c=0;do if(z){U=oa<<2;if((i[c+U+(31902+(g<<3))>>0]|0)==(i[c+(U|2)+(31902+(g<<3))>>0]|0)){c=0;break}od(Va,q,1);c=q<<1}else c=0;while(0);if(ea){c=c+(oa<<2)|0;p=bb;do{U=Y+(p<<2)|0;k[U>>2]=i[c+(k[U>>2]|0)+(31902+(g<<3))>>0];p=p+1|0}while((p|0)!=(cb|0))}if(((k[ba>>2]|0)+-28+(ja(k[ia>>2]|0)|0)|0)<=(n|0)){f:do if(!(k[wa>>2]|0)){if(Fa){if(!(k[ua>>2]|0)){k[a+80>>2]=0;c=0;break}c=a+80|0;if(!oa){k[c>>2]=3;c=3;break}else{k[c>>2]=2;c=2;break}}p=k[ua>>2]|0;do if(!_){if((h|0)<(Ya*10|0)|(p|0)<3)break;H=a+88|0;b=a+80|0;J=k[b>>2]|0;G=a+96|0;E=k[Ia>>2]|0;A=k[ma>>2]<<g;do if(((j[E+(na<<1)>>1]|0)-(j[E+(na+-1<<1)>>1]|0)<<g|0)<9)c=0;else{D=0;c=0;h=0;p=0;do{C=ha(A,D)|0;q=0;g:while(1){d=q;while(1){if((d|0)>=(na|0))break g;q=j[E+(d<<1)>>1]|0;f=d+1|0;z=(j[E+(f<<1)>>1]|0)-q<<g;if((z|0)<9)d=f;else break}q=Z+(q<<g<<2)+(C<<2)|0;u=+(z|0);s=0;t=0;w=0;y=0;do{Q=+o[q+(s<<2)>>2];Q=u*(Q*Q);t=(Q<.25&1)+t|0;w=(Q<.0625&1)+w|0;y=(Q<.015625&1)+y|0;s=s+1|0}while((s|0)!=(z|0));if((d|0)>((k[Ua>>2]|0)+-4|0))c=((t+w<<5>>>0)/(z>>>0)|0)+c|0;q=f;h=h+1|0;p=(((w<<1|0)>=(z|0)&1)+((y<<1|0)>=(z|0)&1)+((t<<1|0)>=(z|0)&1)<<8)+p|0}D=D+1|0}while((D|0)<(Ya|0));do if(!T){if(!c)c=0;else c=(c>>>0)/((ha(na+4-(k[Ua>>2]|0)|0,Ya)|0)>>>0)|0;c=(k[G>>2]|0)+c>>1;k[G>>2]=c;switch(k[$>>2]|0){case 2:{c=c+4|0;break}case 0:{c=c+-4|0;break}default:{}}if((c|0)>22){k[$>>2]=2;break}if((c|0)>18){k[$>>2]=1;break}else{k[$>>2]=0;break}}while(0);c=(k[H>>2]|0)+((p>>>0)/(h>>>0)|0)>>1;k[H>>2]=c;c=(3-J<<7|66)+(c*3|0)>>2;if((c|0)<80){c=3;break}if((c|0)<256){c=2;break}c=(c|0)<384&1}while(0);k[b>>2]=c;break f}while(0);c=a+80|0;if(!p){k[c>>2]=0;c=0;break}else{k[c>>2]=2;c=2;break}}else{k[$>>2]=0;k[a+80>>2]=2;c=2}while(0);pd(Va,c,32216,5)}U=r;r=r+((1*(eb<<2)|0)+15&-16)|0;G=a+52|0;T=a+120|0;Q=+gd(B,O,eb,bb,cb,Ya,U,k[la>>2]|0,k[Na+56>>2]|0,oa,k[pa>>2]|0,k[G>>2]|0,sa,g,ka,Ga,k[wa>>2]|0,M,T);if(k[wa>>2]|0)k[U>>2]=(ka|0)>26?8:(ka|0)/3|0;S=r;r=r+((1*(eb<<2)|0)+15&-16)|0;c=k[Ua>>2]|0;if((c|0)>0){h=k[Ia>>2]|0;p=k[Na+104>>2]|0;q=ha(c,Ya+-1+(g<<1)|0)|0;s=j[h>>1]|0;d=0;do{pa=d;d=d+1|0;na=s;s=j[h+(d<<1)>>1]|0;na=(ha(ha((s<<16>>16)-(na<<16>>16)<<g,Ya)|0,(l[p+(q+pa)>>0]|0)+64|0)|0)>>2;k[S+(pa<<2)>>2]=na}while((d|0)!=(c|0))}C=n<<3;c=k[ba>>2]|0;h=k[ia>>2]|0;na=32-(ja(h|0)|0)|0;pa=h>>>(na+-16|0);n=pa>>>12;n=(c-na<<3)+8-n+((pa>>>0>(k[9236+(n+-8<<2)>>2]|0)>>>0)<<31>>31)|0;if(ea){s=6;A=bb;t=0;while(1){p=A;A=A+1|0;w=(ha((j[sa+(A<<1)>>1]|0)-(j[sa+(p<<1)>>1]|0)|0,Ya)|0)<<g;z=w<<3;w=(w|0)<48?48:w;w=(z|0)<(w|0)?z:w;z=U+(p<<2)|0;do if(((s<<3)+n|0)<(C-t|0)){f=k[S+(p<<2)>>2]|0;q=0;d=s;y=0;p=t;while(1){if((q|0)>=(f|0)){va=295;break}pa=(y|0)<(k[z>>2]|0);od(Va,pa&1,d);c=k[ba>>2]|0;h=k[ia>>2]|0;na=32-(ja(h|0)|0)|0;ma=h>>>(na+-16|0);n=ma>>>12;n=((ma>>>0>(k[9236+(n+-8<<2)>>2]|0)>>>0)<<31>>31)+(c-na<<3)+(8-n)|0;if(!pa){va=295;break}q=q+w|0;p=p+w|0;if((n+8|0)<(C-p|0)){d=1;y=y+1|0}else break}if((va|0)==295){va=0;if(!y)break}s=s+-1|0;s=(s|0)<2?2:s}else{q=0;p=t}while(0);k[z>>2]=q;if((A|0)==(cb|0)){f=n;E=p;break}else t=p}}else{f=n;E=0}R=(Ya|0)==2;if(R){if(g|0){q=k[Ia>>2]|0;s=j[q>>1]|0;d=0;v=1.0000000036274937e-15;u=1.0000000036274937e-15;do{n=s<<16>>16<<g;d=d+1|0;s=j[q+(d<<1)>>1]|0;p=s<<16>>16<<g;if((n|0)<(p|0))do{K=+o[Z+(n<<2)>>2];L=+o[Z+(n+Ma<<2)>>2];v=v+(+W(+K)+ +W(+L));u=u+(+W(+(K+L))+ +W(+(K-L)));n=n+1|0}while((n|0)!=(p|0))}while((d|0)!=13);sa=j[q+26>>1]<<g+1;k[Qa>>2]=u*.7071070075035095*+(sa+((g|0)<2?5:13)|0)>v*+(sa|0)&1}u=+((m|0)/1e3|0|0);q=a+224|0;n=k[q>>2]|0;do if((m|0)<1e3)p=0;else{if((m|0)<2e3){p=1;break}if((m|0)<3e3){p=2;break}if((m|0)<4e3){p=3;break}if((m|0)<5e3){p=4;break}if((m|0)<6e3){p=5;break}if((m|0)<7e3){p=6;break}if((m|0)<8e3){p=7;break}if((m|0)<16e3){p=8;break}if((m|0)<24e3){p=9;break}if((m|0)<36e3){p=10;break}if((m|0)<44e3){p=11;break}if((m|0)<5e4){p=12;break}if((m|0)<56e3){p=13;break}if((m|0)<62e3){p=14;break}if((m|0)<67e3){p=15;break}if((m|0)<72e3){p=16;break}if((m|0)<79e3){p=17;break}if((m|0)<88e3){p=18;break}if((m|0)<106e3){p=19;break}p=(m|0)<134e3?20:21}while(0);if(!((p|0)>(n|0)?+o[9068+(n<<2)>>2]+ +o[9152+(n<<2)>>2]>u:0))va=309;do if((va|0)==309){if((p|0)>=(n|0)){n=p;break}sa=n+-1|0;if(!(+o[9068+(sa<<2)>>2]-+o[9152+(sa<<2)>>2]<u)){n=p;break}}while(0);sa=(bb|0)>(n|0)?bb:n;k[q>>2]=(cb|0)<(sa|0)?cb:sa}if((f+48|0)>(C-E|0)){D=5;A=f}else{do if((bb|0)>0)va=316;else{if(k[wa>>2]|0){va=316;break}t=a+220|0;L=+o[Ha>>2];d=k[a+224>>2]|0;do if((m|0)<64e3)K=4.0;else{if((m|0)>=8e4){K=5.0;break}K=+(m+-64e3>>10|0)*.0625+4.0}while(0);if(R){f=k[Ia>>2]|0;q=j[f>>1]|0;s=0;v=0.0;do{n=q<<16>>16;h=n<<g;c=Z+(h<<2)|0;h=Z+(h+Ma<<2)|0;s=s+1|0;q=j[f+(s<<1)>>1]|0;n=(q<<16>>16)-n<<g;if((n|0)>0){p=0;u=0.0;do{u=u+ +o[c+(p<<2)>>2]*+o[h+(p<<2)>>2];p=p+1|0}while((p|0)!=(n|0))}else u=0.0;v=v+u}while((s|0)!=8);x=+W(+(v*.125));x=x>1.0?1.0:x;if((d|0)>8){q=j[f+16>>1]|0;s=8;u=x;do{n=q<<16>>16;h=n<<g;c=Z+(h<<2)|0;h=Z+(h+Ma<<2)|0;s=s+1|0;q=j[f+(s<<1)>>1]|0;n=(q<<16>>16)-n<<g;if((n|0)>0){p=0;v=0.0;do{v=v+ +o[c+(p<<2)>>2]*+o[h+(p<<2)>>2];p=p+1|0}while((p|0)!=(n|0))}else v=0.0;v=+W(+v);u=u<v?u:v}while((s|0)!=(d|0))}else u=x;u=+W(+u);u=u>1.0?1.0:u;v=+fa(+(1.0010000467300415-x*x))*1.4426950408889634;gb=v*.5;x=+fa(+(1.0010000467300415-u*u))*1.4426950408889634;v=v*.75;u=+o[t>>2]+.25;x=-((gb>x?gb:x)*.5);o[t>>2]=u<x?u:x;v=K+(v<-4.0?-4.0:v)}else v=K;s=cb+-1|0;n=2-cb|0;if((cb|0)>1){h=k[Ua>>2]|0;q=0;u=0.0;do{p=ha(q,h)|0;c=0;do{u=u+ +o[B+(c+p<<2)>>2]*+(n+(c<<1)|0);c=c+1|0}while((c|0)!=(s|0));q=q+1|0}while((q|0)<(Ya|0))}else u=0.0;u=(u/+(ha(s,Ya)|0)+1.0)/6.0;pa=u>2.0;sa=u<-2.0&(pa^1);u=v-(pa|sa?(sa?-2.0:2.0):u)-I-L*2.0;if(k[T>>2]|0){gb=(+o[a+128>>2]+.05000000074505806)*2.0;pa=gb>2.0;sa=gb<-2.0&(pa^1);u=u-(pa|sa?(sa?-2.0:2.0):gb)}n=~~+V(+(u+.5));n=(n|0)>10?10:n;n=(n|0)<0?0:n}while(0);if((va|0)==316){o[a+220>>2]=0.0;n=5}pd(Va,n,32220,7);pa=k[ba>>2]|0;h=k[ia>>2]|0;sa=32-(ja(h|0)|0)|0;va=h>>>(sa+-16|0);A=va>>>12;c=pa;D=n;A=(pa-sa<<3)+8-A+((va>>>0>(k[9236+(A+-8<<2)>>2]|0)>>>0)<<31>>31)|0}if(za){C=(k[Da>>2]|0)-g|0;B=1275>>>Ca;B=(e|0)<(B|0)?e:B;if(Fa){c=(ha(Ya,-72)|0)+-32+Ja|0;c=(c|0)<0?0:c}else c=Ja-(Aa<<3)|0;w=k[G>>2]|0;z=(w|0)==0;if(z)y=c;else y=(k[a+208>>2]>>C)+c|0;if(Fa){c=k[a+180>>2]|0;gb=+o[Ha>>2];c=((c|0)<100?96>>>Ca:0)+y+((c|0)>100?0-(144>>>Ca)|0:0)+~~((gb+-.25)*400.0)|0;Ia=(E+63+A>>6)+2|0;h=Ea+359+E>>6;h=(Ia|0)>(h|0)?Ia:h;c=gb>.699999988079071?((c|0)>400?c:400):c}else{h=k[a+92>>2]|0;n=k[a+224>>2]|0;v=+o[a+220>>2];p=k[Ga>>2]|0;x=+o[Ha>>2];q=k[wa>>2]|0;s=k[a+228>>2]|0;t=k[Ua>>2]|0;f=k[Ia>>2]|0;h=h|0?h:t;c=j[f+(h<<1)>>1]<<g;if(R)d=(j[f+(((h|0)>(n|0)?n:h)<<1)>>1]<<g)+c|0;else d=c;e=(k[T>>2]|0)==0;do if(e)c=y;else{u=+o[a+136>>2];if(!(u<.4)){c=y;break}c=y-~~(+(d<<3|0)*(.4000000059604645-u))|0}while(0);if(R){Ia=(h|0)>(n|0)?n:h;Ia=(j[f+(Ia<<1)>>1]<<g)-Ia|0;L=+(c|0)*(+(Ia|0)*.800000011920929/+(d|0));gb=((v<1.0?v:1.0)+-.10000000149011612)*+(Ia<<3|0);c=c-~~(L<gb?L:gb)|0}c=c+(p-(19<<g))|0;c=~~((x+-.04399999976158142)*+(c|0))+c|0;h=(q|0)!=0;do if(!(h|e)){gb=+o[a+124>>2]+-.15000000596046448;u=+(d<<3|0);c=~~(u*1.2000000476837158*(gb<0.0?-.11999999731779099:gb+-.11999999731779099))+c|0;if(!ta)break;c=c+~~(u*.800000011920929)|0}while(0);e=(s|0)==0;h=h|e;if(!h){Ia=c+~~(F*+(d<<3|0))|0;c=(c|0)/4|0;c=(c|0)>(Ia|0)?c:Ia}Ha=~~(Q*+(ha(Ya<<3,j[f+(t+-2<<1)>>1]<<g)|0));Ia=c>>2;Ia=(Ha|0)>(Ia|0)?Ha:Ia;c=(c|0)<(Ia|0)?c:Ia;if((w|0)!=0&h)c=~~(+(c-y|0)*.6700000166893005)+y|0;if(x<.20000000298023224&e){Ia=96e3-m|0;Ia=(Ia|0)>32e3?32e3:Ia;c=~~(((Ia|0)<0?0.0:+(Ia|0)*3.099999958067201e-06)*ca*+(c|0))+c|0}Ia=y<<1;h=(E+63+A>>6)+2|0;c=(Ia|0)<(c|0)?Ia:c}p=c+A|0;n=p+32>>6;n=(h|0)>(n|0)?h:n;n=(B|0)<(n|0)?B:n;c=Ra?2:n;h=a+212|0;e=k[h>>2]|0;if((e|0)<970){k[h>>2]=e+1;u=1.0/+(e+21|0)}else u=1.0000000474974513e-03;do if(!z){h=a+200|0;e=(Ra?128:n<<6)-Ja+(k[h>>2]|0)|0;k[h>>2]=e;Ia=a+208|0;Ha=a+204|0;Ga=k[Ha>>2]|0;Ja=~~(u*+(((Ra?0:p-Ja|0)<<C)-(k[Ia>>2]|0)-Ga|0))+Ga|0;k[Ha>>2]=Ja;k[Ia>>2]=0-Ja;if((e|0)>=0)break;k[h>>2]=0;c=Ra?2:((e|0)/-64|0)+n|0}while(0);P=(B|0)<(c|0)?B:c;Ja=k[Va>>2]|0;h=k[Va+8>>2]|0;c=0-h|0;xf(Ja+P+c|0,Ja+(k[aa>>2]|0)+c|0,h|0)|0;k[aa>>2]=P;h=k[ia>>2]|0;c=k[ba>>2]|0}else P=e;N=r;r=r+((1*(eb<<2)|0)+15&-16)|0;J=r;r=r+((1*(eb<<2)|0)+15&-16)|0;O=r;r=r+((1*(eb<<2)|0)+15&-16)|0;M=P<<3;b=P<<6;Ja=32-(ja(h|0)|0)|0;Ha=h>>>(Ja+-16|0);Ia=Ha>>>12;c=b+-9+Ia+(Ha>>>0>(k[9236+(Ia+-8<<2)>>2]|0)>>>0&1)+(Ja-c<<3)|0;if((g|0)>1&da)G=(c|0)>=((g<<3)+16|0);else G=0;H=G?8:0;h=c-H|0;if(!(k[T>>2]|0))c=cb+-1|0;else{do if((m|0)<(Ya*32e3|0))c=13;else{if((m|0)<(Ya*48e3|0)){c=16;break}if((m|0)<(Ya*6e4|0)){c=18;break}c=(m|0)<(Ya*8e4|0)?19:20}while(0);Ja=k[a+148>>2]|0;c=(Ja|0)>(c|0)?Ja:c}E=a+224|0;m=a+92|0;D=Cd(Na,bb,cb,U,S,D,E,Qa,h,Oa,J,N,O,Ya,g,Va,1,k[m>>2]|0,(k[wa>>2]|0)==0?c:1)|0;c=k[m>>2]|0;if(!c)c=D;else{Ja=c+1|0;c=c+-1|0;c=(c|0)>(D|0)?c:D;c=(Ja|0)<(c|0)?Ja:c}k[m>>2]=c;if(ea){s=Va+12|0;d=Va+16|0;f=Va+24|0;t=Va+8|0;w=Va+44|0;C=bb;do{y=k[N+(C<<2)>>2]|0;if((y|0)>=1){z=65536<<y>>16;u=+(z|0);A=z+-1|0;v=+(1<<14-y|0);c=k[Ua>>2]|0;h=k[d>>2]|0;m=k[s>>2]|0;B=0;do{q=ga+((ha(c,B)|0)+C<<2)|0;q=~~+V(+(u*(+o[q>>2]+.5)));q=(q|0)<(z|0)?q:A;q=(q|0)<0?0:q;if((h+y|0)>>>0>32){n=7-h|0;n=(n|0)>-8?n:-8;p=h;c=m;do{m=k[t>>2]|0;e=k[aa>>2]|0;if((m+(k[f>>2]|0)|0)>>>0<e>>>0){m=m+1|0;k[t>>2]=m;i[(k[Va>>2]|0)+(e-m)>>0]=c;m=0}else m=-1;k[w>>2]=k[w>>2]|m;c=c>>>8;p=p+-8|0}while((p|0)>7);h=h+-8-(n+h&-8)|0}else c=m;m=q<<h|c;h=h+y|0;k[s>>2]=m;k[d>>2]=h;k[ba>>2]=(k[ba>>2]|0)+y;gb=(+(q|0)+.5)*v*.00006103515625+-.5;c=_a+((ha(k[Ua>>2]|0,B)|0)+C<<2)|0;o[c>>2]=+o[c>>2]+gb;c=k[Ua>>2]|0;Ja=ga+((ha(c,B)|0)+C<<2)|0;o[Ja>>2]=+o[Ja>>2]-gb;B=B+1|0}while((B|0)<(Ya|0))}C=C+1|0}while((C|0)!=(cb|0))}Ja=r;r=r+((1*ya|0)+15&-16)|0;C=a+76|0;be(1,Na,bb,cb,Z,R?Z+(Ma<<2)|0:0,Ja,ra,J,_,k[a+80>>2]|0,k[Qa>>2]|0,k[E>>2]|0,Y,b-H|0,k[Oa>>2]|0,Va,g,D,C,k[ua>>2]|0,k[qa>>2]|0,k[a+68>>2]|0);if(G){d=(k[a+116>>2]|0)<2&1;t=Va+12|0;c=k[t>>2]|0;f=Va+16|0;g=k[f>>2]|0;if((g+1|0)>>>0>32){e=Va+24|0;n=Va+8|0;p=Va+44|0;q=7-g|0;q=(q|0)>-8?q:-8;s=g;do{h=k[n>>2]|0;m=k[aa>>2]|0;if((h+(k[e>>2]|0)|0)>>>0<m>>>0){h=h+1|0;k[n>>2]=h;i[(k[Va>>2]|0)+(m-h)>>0]=c;h=0}else h=-1;k[p>>2]=k[p>>2]|h;c=c>>>8;s=s+-8|0}while((s|0)>7);g=g+-8-(q+g&-8)|0}k[t>>2]=d<<g|c;k[f>>2]=g+1;c=(k[ba>>2]|0)+1|0;k[ba>>2]=c}else{c=k[ba>>2]|0;f=Va+16|0;t=Va+12|0}z=Va+24|0;A=Va+8|0;B=Va+44|0;do if(ea){g=M+32-c-(ja(k[ia>>2]|0)|0)|0;y=0;do{if((g|0)>=(Ya|0)){w=bb;do{h=k[N+(w<<2)>>2]|0;do if((h|0)<=7){if((k[O+(w<<2)>>2]|0)!=(y|0))break;u=+(1<<13-h|0);m=k[Ua>>2]|0;s=k[f>>2]|0;h=k[t>>2]|0;d=0;do{q=ga+((ha(m,d)|0)+w<<2)|0;q=!(+o[q>>2]<0.0);p=q&1;if((s+1|0)>>>0>32){n=7-s|0;n=(n|0)>-8?n:-8;e=s;do{c=k[A>>2]|0;m=k[aa>>2]|0;if((c+(k[z>>2]|0)|0)>>>0<m>>>0){c=c+1|0;k[A>>2]=c;i[(k[Va>>2]|0)+(m-c)>>0]=h;c=0}else c=-1;k[B>>2]=k[B>>2]|c;h=h>>>8;e=e+-8|0}while((e|0)>7);c=k[ba>>2]|0;m=s+-8-(n+s&-8)|0}else m=s;h=p<<m|h;s=m+1|0;k[t>>2]=h;k[f>>2]=s;c=c+1|0;k[ba>>2]=c;gb=(+(q&1)+-.5)*u*.00006103515625;m=_a+((ha(k[Ua>>2]|0,d)|0)+w<<2)|0;o[m>>2]=+o[m>>2]+gb;m=k[Ua>>2]|0;Qa=ga+((ha(m,d)|0)+w<<2)|0;o[Qa>>2]=+o[Qa>>2]-gb;g=g+-1|0;d=d+1|0}while((d|0)<(Ya|0))}while(0);w=w+1|0}while(!((w|0)>=(cb|0)|(g|0)<(Ya|0)))}y=y+1|0}while((y|0)!=2);g=Wa<<2;rf(Ta|0,0,g|0)|0;if(ea)h=0;else break;do{c=ha(h,eb)|0;m=bb;do{Ua=m+c|0;gb=+o[ga+(Ua<<2)>>2];Oa=gb>.5;Qa=(Oa?.5:gb)<-.5;o[Ta+(Ua<<2)>>2]=Oa|Qa?(Qa?-.5:.5):gb;m=m+1|0}while((m|0)!=(cb|0));h=h+1|0}while((h|0)<(Ya|0))}else{g=Wa<<2;rf(Ta|0,0,g|0)|0}while(0);if(Ra&(ya|0)>0){c=0;do{o[_a+(c<<2)>>2]=-28.0;c=c+1|0}while((c|0)!=(ya|0))}k[a+104>>2]=k[Za>>2];o[a+108>>2]=Ka;k[a+112>>2]=La;if(xa)wf(_a+(eb<<2)|0,_a|0,eb<<2|0)|0;do if(da){if((Wa|0)>0)c=0;else break;do{Za=$a+(c<<2)|0;Ka=+o[Za>>2];gb=+o[_a+(c<<2)>>2];o[Za>>2]=Ka<gb?Ka:gb;c=c+1|0}while((c|0)!=(Wa|0))}else{wf(ab|0,$a|0,g|0)|0;wf($a|0,_a|0,g|0)|0}while(0);c=(cb|0)<(eb|0);h:do if((bb|0)>0){if(c)h=0;else{g=0;while(1){c=ha(g,eb)|0;h=0;do{cb=h+c|0;o[_a+(cb<<2)>>2]=0.0;o[ab+(cb<<2)>>2]=-28.0;o[$a+(cb<<2)>>2]=-28.0;h=h+1|0}while((h|0)!=(bb|0));g=g+1|0;if((g|0)>=(db|0))break h}}do{g=ha(h,eb)|0;c=0;do{Za=c+g|0;o[_a+(Za<<2)>>2]=0.0;o[ab+(Za<<2)>>2]=-28.0;o[$a+(Za<<2)>>2]=-28.0;c=c+1|0}while((c|0)!=(bb|0));c=cb;do{Za=c+g|0;o[_a+(Za<<2)>>2]=0.0;o[ab+(Za<<2)>>2]=-28.0;o[$a+(Za<<2)>>2]=-28.0;c=c+1|0}while((c|0)!=(eb|0));h=h+1|0}while((h|0)<(db|0))}else{if(c)g=0;else break;do{c=ha(g,eb)|0;h=cb;do{bb=h+c|0;o[_a+(bb<<2)>>2]=0.0;o[ab+(bb<<2)>>2]=-28.0;o[$a+(bb<<2)>>2]=-28.0;h=h+1|0}while((h|0)!=(eb|0));g=g+1|0}while((g|0)<(db|0))}while(0);g=a+116|0;if(!(oa|Ba))c=0;else c=(k[g>>2]|0)+1|0;k[g>>2]=c;k[C>>2]=k[ia>>2];rd(Va);a=(k[B>>2]|0)==0?P:-3;Xa(Sa|0);r=fb;return a|0}function cd(a,b,c,d,e,f,g,h,i,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;l=l|0;var m=0.0,n=0,p=0,q=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0,K=0.0,L=0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0,S=0,T=0,U=0,Y=0,Z=0,_=0,$=0;$=r;r=r+2080|0;C=$+16|0;_=$+8|0;S=$;T=k[a>>2]|0;Y=k[T+4>>2]|0;p=e+1024|0;Z=(ha(p,d)|0)<<2;v=r;r=r+((1*Z|0)+15&-16)|0;k[_>>2]=v;k[_+4>>2]=v+(p<<2);Z=Y+e|0;U=e<<2;n=0;do{R=k[_+(n<<2)>>2]|0;wf(R|0,c+(n<<10<<2)|0,4096)|0;wf(R+4096|0,b+((ha(n,Z)|0)<<2)+(Y<<2)|0,U|0)|0;n=n+1|0}while((n|0)<(d|0));if(!j){k[S>>2]=15;L=a+108|0;J=a+104|0;n=15;q=0.0}else{R=Pa()|0;A=r;r=r+((1*(p>>1<<2)|0)+15&-16)|0;vd(_,A,p,d);E=A+2048|0;xd(E,A,e,979,S);A=k[S>>2]|0;J=a+104|0;L=a+108|0;Q=+o[L>>2];B=(k[J>>2]|0)/2|0;F=(e|0)/2|0;A=(A|0)>0?(1024-A|0)/2|0:511;k[S>>2]=A;n=E+(0-A<<2)|0;D=(e|0)>1;if(D){j=0;q=0.0;m=0.0;do{P=+o[E+(j<<2)>>2];q=q+P*P;m=m+P*+o[n+(j<<2)>>2];j=j+1|0}while((j|0)!=(F|0));P=q}else{P=0.0;m=0.0}o[C>>2]=P;n=1;q=P;do{N=+o[E+(0-n<<2)>>2];O=+o[E+(F-n<<2)>>2];q=q+N*N-O*O;o[C+(n<<2)>>2]=q<0.0?0.0:q;n=n+1|0}while((n|0)!=513);q=+o[C+(A<<2)>>2];G=m/+X(+(P*q+1.0));y=A<<1;M=G*.699999988079071;N=G*.8500000238418579;O=Q*.5;w=A;x=2;while(1){n=x<<1;u=((x+y|0)>>>0)/(n>>>0)|0;if((u|0)<7){t=w;break}if((x|0)==2){t=u+A|0;t=(t|0)>512?A:t}else t=(((ha(y,k[21120+(x<<2)>>2]|0)|0)+x|0)>>>0)/(n>>>0)|0;n=E+(0-u<<2)|0;j=E+(0-t<<2)|0;if(D){p=0;z=0.0;s=0.0;do{K=+o[E+(p<<2)>>2];z=z+K*+o[n+(p<<2)>>2];s=s+K*+o[j+(p<<2)>>2];p=p+1|0}while((p|0)!=(F|0))}else{z=0.0;s=0.0}I=(s+z)*.5;H=(+o[C+(u<<2)>>2]+ +o[C+(t<<2)>>2])*.5;K=I/+X(+(P*H+1.0));n=u-B|0;n=(n|0)>-1?n:0-n|0;if((n|0)>=2)if((n|0)<3){t=(ha(x*5|0,x)|0)<(A|0);z=t?O:0.0}else z=0.0;else z=Q;s=M-z;if((u|0)<21){s=N-z;s=s<.4000000059604645?.4000000059604645:s}else s=s<.30000001192092896?.30000001192092896:s;if(K>s){n=u;m=I;q=H;s=K}else{n=w;s=G}x=x+1|0;if((x|0)>=16){t=n;G=s;break}else{w=n;G=s}}m=m<0.0?0.0:m;if(!(q<=m))z=m/(q+1.0);else z=1.0;p=1-t|0;if(D){n=E+(p<<2)|0;j=0;s=0.0;do{s=s+ +o[E+(j<<2)>>2]*+o[n+(j<<2)>>2];j=j+1|0}while((j|0)!=(F|0));n=E+(p+-1<<2)|0;j=0;m=0.0;do{m=m+ +o[E+(j<<2)>>2]*+o[n+(j<<2)>>2];j=j+1|0}while((j|0)!=(F|0));n=E+(p+-2<<2)|0;j=0;q=0.0;do{q=q+ +o[E+(j<<2)>>2]*+o[n+(j<<2)>>2];j=j+1|0}while((j|0)!=(F|0))}else{s=0.0;q=0.0;m=0.0}if(q-s>(m-s)*.699999988079071)n=1;else n=(s-q>(m-q)*.699999988079071)<<31>>31;n=n+(t<<1)|0;n=(n|0)<15?15:n;k[S>>2]=n;if((n|0)>1022){k[S>>2]=1022;n=1022}q=(z>G?G:z)*.699999988079071;S=k[a+56>>2]|0;q=(S|0)>2?q*.5:q;Xa(R|0);q=(S|0)>8?0.0:(S|0)>4?q*.5:q}p=k[J>>2]|0;S=n-p|0;Q=(((S|0)>-1?S:0-S|0)*10|0)>(n|0)?.4000000059604645:.20000000298023224;Q=(l|0)<25?Q+.10000000149011612:Q;Q=(l|0)<35?Q+.10000000149011612:Q;m=+o[L>>2];Q=m>.4000000059604645?Q+-.10000000149011612:Q;Q=m>.550000011920929?Q+-.10000000149011612:Q;if(q<(Q>.20000000298023224?Q:.20000000298023224)){q=0.0;E=0;F=0}else{F=+W(+(q-m))<.10000000149011612;F=~~+V(+((F?m:q)*32.0/3.0+.5))+-1|0;F=(F|0)>7?7:F;F=(F|0)<0?0:F;q=+(F+1|0)*.09375;E=1}B=T+44|0;C=Y<<2;m=-q;D=a+112|0;A=T+60|0;x=1024-e<<2;y=0-e|0;if((e|0)>1024){j=0;while(1){U=k[B>>2]|0;u=U-Y|0;k[J>>2]=(p|0)>15?p:15;p=b+((ha(j,Z)|0)<<2)|0;t=a+236+((ha(j,Y)|0)<<2)|0;wf(p|0,t|0,C|0)|0;if((U|0)!=(Y|0)){T=k[J>>2]|0;Q=-+o[L>>2];U=k[D>>2]|0;Pc(p+(Y<<2)|0,v+4096|0,T,T,u,Q,Q,U,U,0,0)}Pc(p+(Y<<2)+(u<<2)|0,v+4096+(u<<2)|0,k[J>>2]|0,n,e-u|0,-+o[L>>2],m,k[D>>2]|0,f,k[A>>2]|0,Y);wf(t|0,p+(e<<2)|0,C|0)|0;wf(c+(j<<10<<2)|0,v+(e<<2)|0,4096)|0;j=j+1|0;if((j|0)>=(d|0))break;p=k[J>>2]|0;v=k[_+(j<<2)>>2]|0}o[h>>2]=q;k[g>>2]=n;k[i>>2]=F;r=$;return E|0}else j=0;while(1){T=k[B>>2]|0;w=T-Y|0;k[J>>2]=(p|0)>15?p:15;t=b+((ha(j,Z)|0)<<2)|0;u=a+236+((ha(j,Y)|0)<<2)|0;wf(t|0,u|0,C|0)|0;if((T|0)==(Y|0))p=v+4096|0;else{p=v+4096|0;l=k[J>>2]|0;Q=-+o[L>>2];T=k[D>>2]|0;Pc(t+(Y<<2)|0,p,l,l,w,Q,Q,T,T,0,0)}Pc(t+(Y<<2)+(w<<2)|0,v+4096+(w<<2)|0,k[J>>2]|0,n,e-w|0,-+o[L>>2],m,k[D>>2]|0,f,k[A>>2]|0,Y);wf(u|0,t+(e<<2)|0,C|0)|0;T=c+(j<<10<<2)|0;xf(T|0,T+(e<<2)|0,x|0)|0;wf(T+4096+(y<<2)|0,p|0,U|0)|0;j=j+1|0;if((j|0)>=(d|0))break;p=k[J>>2]|0;v=k[_+(j<<2)>>2]|0}o[h>>2]=q;k[g>>2]=n;k[i>>2]=F;r=$;return E|0}function dd(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;var h=0,i=0.0,j=0.0,m=0.0,n=0.0,p=0,q=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0;D=r;C=r;r=r+((1*(b<<2)|0)+15&-16)|0;k[g>>2]=0;s=(f|0)!=0;q=s?.03125:.0625;u=(b|0)/2|0;if((c|0)>0){v=(b|0)>0;w=(b|0)>1;x=+(u|0);y=+(u|0);z=u+-5|0;A=(z|0)>12;t=(u*6|0)+-102|0;B=0;p=0;while(1){if(v){f=ha(B,b)|0;h=0;m=0.0;n=0.0;while(1){i=+o[a+(h+f<<2)>>2];j=m+i;o[C+(h<<2)>>2]=j;h=h+1|0;if((h|0)==(b|0))break;else{m=n+j-i*2.0;n=i-j*.5}}}f=C;h=f+48|0;do{k[f>>2]=0;f=f+4|0}while((f|0)<(h|0));if(w){f=0;i=0.0;j=0.0;do{h=f<<1;m=+o[C+(h<<2)>>2];n=+o[C+((h|1)<<2)>>2];n=m*m+n*n;i=i+n;j=j+q*(n-j);o[C+(f<<2)>>2]=j;f=f+1|0}while((f|0)<(u|0));f=u;j=0.0;m=0.0;do{h=f;f=f+-1|0;E=C+(f<<2)|0;m=m+(+o[E>>2]-m)*.125;o[E>>2]=m;j=j>m?j:m}while((h|0)>1)}else{j=0.0;i=0.0}if(A){i=y/(+X(+(x*(i*j*.5)))+1.0000000036274937e-15)*64.0;h=12;f=0;do{n=+V(+(i*(+o[C+(h<<2)>>2]+1.0000000036274937e-15)));E=(n>=127.0?127.0:n)<0.0;f=(l[32085+~~(n>127.0|E?(E?0.0:127.0):n)>>0]|0)+f|0;h=h+4|0}while((h|0)<(z|0))}else f=0;f=(f<<8|0)/(t|0)|0;if((f|0)>(p|0))k[e>>2]=B;else f=p;B=B+1|0;if((B|0)==(c|0))break;else p=f}if(s&(f+-201|0)>>>0<399){k[g>>2]=1;h=0}else h=(f|0)>200&1}else{h=0;f=0}y=+X(+(+(f*27|0)))+-42.0;y=y<0.0?0.0:y;y=(y>163.0?163.0:y)*.006899999920278788+-.139;y=+X(+(y<0.0?0.0:y));o[d>>2]=y;r=D;return h|0}function ed(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0.0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0;t=k[a+4>>2]|0;l=k[a+44>>2]|0;m=k[a+36>>2]|0;if(b){i=ha(l,b)|0;if((b|0)>0)n=4;else a=i}else{l=l<<g;i=l;b=1;m=m-g|0;n=4}if((n|0)==4){r=a+64|0;s=i+t|0;g=a+60|0;q=0;do{a=c+((ha(q,s)|0)<<2)|0;n=ha(i,q)|0;p=0;do{u=a+((ha(p,l)|0)<<2)|0;td(r,u,d+(p+n<<2)|0,k[g>>2]|0,t,m,b);p=p+1|0}while((p|0)<(b|0));q=q+1|0}while((q|0)<(f|0));a=i}if((e|0)==1&(f|0)==2&(a|0)>0){i=0;do{u=d+(i<<2)|0;o[u>>2]=+o[u>>2]*.5+ +o[d+(i+a<<2)>>2]*.5;i=i+1|0}while((i|0)!=(a|0))}if((h|0)==1)return;g=(a|0)/(h|0)|0;m=a-g<<2;j=+(h|0);if((g|0)>0)b=0;else{i=0;do{rf(d+((ha(a,i)|0)+g<<2)|0,0,m|0)|0;i=i+1|0}while((i|0)<(e|0));return}do{i=ha(a,b)|0;l=0;do{u=d+(l+i<<2)|0;o[u>>2]=j*+o[u>>2];l=l+1|0}while((l|0)!=(g|0));rf(d+(i+g<<2)|0,0,m|0)|0;b=b+1|0}while((b|0)<(e|0));return}function fd(a,b,c,d,e,f,g,h,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;l=+l;m=m|0;var n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0.0,F=0,G=0,H=0,I=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,X=0.0,Y=0,Z=0;V=r;N=.5-l;N=(N<-.25?-.25:N)*.03999999910593033;R=r;r=r+((1*(b<<2)|0)+15&-16)|0;S=b+-1|0;T=(j[a+(b<<1)>>1]|0)-(j[a+(S<<1)>>1]|0)<<h;L=r;r=r+((1*(T<<2)|0)+15&-16)|0;M=r;r=r+((1*(T<<2)|0)+15&-16)|0;T=r;r=r+((1*(b<<2)|0)+15&-16)|0;U=r;r=r+((1*(b<<2)|0)+15&-16)|0;if((b|0)>0){z=ha(m,g)|0;Q=(c|0)!=0;A=(Q?+(h|0):0.0)*N;B=(c|0)==0;C=1<<h;D=(h|0)!=31;E=+(h+1|0)*N;F=C<<1;G=ha(h,-2)|0;H=h+-1|0;I=j[a>>1]|0;K=0;do{y=K;K=K+1|0;w=I;I=j[a+(K<<1)>>1]|0;w=w<<16>>16;J=(I<<16>>16)-w|0;v=J<<h;J=(J|0)==1;m=v<<2;wf(L|0,f+((w<<h)+z<<2)|0,m|0)|0;w=(v|0)>0;if(w){l=0.0;g=0;do{l=l+ +W(+(+o[L+(g<<2)>>2]));g=g+1|0}while((g|0)!=(v|0))}else l=0.0;x=l+A*l;if(!(B|J)){wf(M|0,L|0,m|0)|0;g=v>>h>>1;if(D&(g|0)>0){m=0;do{n=0;do{t=M+((ha(F,n)|0)+m<<2)|0;X=+o[t>>2]*.7071067690849304;u=M+(((n<<1|1)<<h)+m<<2)|0;l=+o[u>>2]*.7071067690849304;o[t>>2]=X+l;o[u>>2]=X-l;n=n+1|0}while((n|0)!=(g|0));m=m+1|0}while((m|0)!=(C|0))}if(w){l=0.0;g=0;do{l=l+ +W(+(+o[M+(g<<2)>>2]));g=g+1|0}while((g|0)!=(v|0))}else l=0.0;l=l+E*l;if(l<x)g=-1;else{l=x;g=0}}else{l=x;g=0}u=((Q|J)&1^1)+h|0;if((u|0)>0)if(Q){t=0;while(1){s=H-t|0;m=1<<t;n=v>>t>>1;if((t|0)!=31?(O=m<<1,(n|0)>0):0){p=0;do{q=0;do{Z=L+((ha(O,q)|0)+p<<2)|0;x=+o[Z>>2]*.7071067690849304;Y=L+(((q<<1|1)<<t)+p<<2)|0;X=+o[Y>>2]*.7071067690849304;o[Z>>2]=x+X;o[Y>>2]=x-X;q=q+1|0}while((q|0)!=(n|0));p=p+1|0}while((p|0)!=(m|0))}t=t+1|0;if(w){x=0.0;m=0;do{x=x+ +W(+(+o[L+(m<<2)>>2]));m=m+1|0}while((m|0)!=(v|0))}else x=0.0;x=x+N*+(s|0)*x;m=x<l;g=m?t:g;if((t|0)==(u|0))break;else l=m?x:l}}else{s=0;while(1){m=1<<s;n=v>>s>>1;if((s|0)!=31?(P=m<<1,(n|0)>0):0){p=0;do{q=0;do{Y=L+((ha(P,q)|0)+p<<2)|0;x=+o[Y>>2]*.7071067690849304;Z=L+(((q<<1|1)<<s)+p<<2)|0;X=+o[Z>>2]*.7071067690849304;o[Y>>2]=x+X;o[Z>>2]=x-X;q=q+1|0}while((q|0)!=(n|0));p=p+1|0}while((p|0)!=(m|0))}s=s+1|0;if(w){x=0.0;m=0;do{x=x+ +W(+(+o[L+(m<<2)>>2]));m=m+1|0}while((m|0)!=(v|0))}else x=0.0;x=x+N*+(s|0)*x;m=x<l;g=m?s:g;if((s|0)==(u|0))break;else l=m?x:l}}m=ha(g,-2)|0;m=Q?g<<1:m;g=R+(y<<2)|0;k[g>>2]=m;if(J?(m|0)==0|(m|0)==(G|0):0)k[g>>2]=m+-1}while((K|0)!=(b|0));g=Q?0:e;w=c<<2;if((b|0)>1){m=i[31902+(h<<3)+w>>0]<<1;n=i[(w|1)+(31902+(h<<3))>>0]<<1;u=0;v=g;p=1;do{c=v+e|0;Z=u+e|0;Y=k[R+(p<<2)>>2]|0;a=Y-m|0;u=((a|0)>-1?a:0-a|0)+((u|0)<(c|0)?u:c)|0;Y=Y-n|0;v=((Y|0)>-1?Y:0-Y|0)+((Z|0)<(v|0)?Z:v)|0;p=p+1|0}while((p|0)!=(b|0));m=(u|0)<(v|0);n=i[(w|2)+(31902+(h<<3))>>0]<<1;p=i[(w|3)+(31902+(h<<3))>>0]<<1;q=0;s=g;t=1;do{c=s+e|0;Z=q+e|0;Y=k[R+(t<<2)>>2]|0;a=Y-n|0;q=((a|0)>-1?a:0-a|0)+((q|0)<(c|0)?q:c)|0;Y=Y-p|0;s=((Y|0)>-1?Y:0-Y|0)+((Z|0)<(s|0)?Z:s)|0;t=t+1|0}while((t|0)!=(b|0));s=Q&(((q|0)<(s|0)?q:s)|0)<((m?u:v)|0)&1;p=s<<1|w;q=i[31902+(h<<3)+p>>0]<<1;p=i[(p|1)+(31902+(h<<3))>>0]<<1;m=0;n=1;do{Q=g+e|0;c=(m|0)<(Q|0);k[T+(n<<2)>>2]=c&1^1;Z=m+e|0;Y=(Z|0)<(g|0);k[U+(n<<2)>>2]=Y&1^1;h=k[R+(n<<2)>>2]|0;a=h-q|0;m=((a|0)>-1?a:0-a|0)+(c?m:Q)|0;h=h-p|0;g=((h|0)>-1?h:0-h|0)+(Y?Z:g)|0;n=n+1|0}while((n|0)!=(b|0));n=s}else{n=0;m=0}}else{n=0;m=0;g=c|0?0:e}m=(m|0)>=(g|0)&1;k[d+(S<<2)>>2]=m;g=b+-2|0;if((g|0)<=-1){r=V;return n|0}while(1){m=k[((m|0)==1?U:T)+(g+1<<2)>>2]|0;k[d+(g<<2)>>2]=m;if((g|0)<=0)break;else g=g+-1|0}r=V;return n|0}function gd(a,b,c,d,e,f,g,h,i,m,n,p,q,s,u,v,w,x,y){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;m=m|0;n=n|0;p=p|0;q=q|0;s=s|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;var z=0.0,A=0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0,I=0,J=0.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.0,W=0,X=0,Y=0.0,Z=0;X=r;S=ha(f,c)|0;W=r;r=r+((1*(S<<2)|0)+15&-16)|0;R=r;r=r+((1*(S<<2)|0)+15&-16)|0;rf(g|0,0,c<<2|0)|0;S=(e|0)>0;if(S){z=+(9-h|0);h=0;do{Q=h+5|0;V=+(ha(Q,Q)|0)*.006200000178068876+(z+(+(j[i+(h<<1)>>1]|0)*.0625+.5)-+o[21184+(h<<2)>>2]);o[R+(h<<2)>>2]=V;h=h+1|0}while((h|0)!=(e|0));i=0;z=-31.899999618530273;do{h=ha(i,c)|0;A=0;do{V=+o[a+(A+h<<2)>>2]-+o[R+(A<<2)>>2];z=z>V?z:V;A=A+1|0}while((A|0)!=(e|0));i=i+1|0}while((i|0)<(f|0));V=z}else V=-31.899999618530273;if((s|0)<1|(u|0)<51|(w|0)!=0){g=0;k[v>>2]=g;r=X;return +V}K=(e|0)>1;L=e+-2|0;M=(L|0)>2;N=e+-3|0;O=e+-1|0;Q=0;h=0;while(1){H=ha(Q,c)|0;P=W+(H<<2)|0;I=b+(H<<2)|0;B=k[I>>2]|0;k[P>>2]=B;J=(k[t>>2]=B,+o[t>>2]);if(K){z=J;i=1;do{B=i+H|0;G=+o[b+(B<<2)>>2];h=G>+o[b+(B+-1<<2)>>2]+.5?i:h;F=z+1.5;z=F<G?F:G;o[P+(i<<2)>>2]=z;i=i+1|0}while((i|0)!=(e|0));B=h}else B=h;if((B|0)>0){z=+o[P+(B<<2)>>2];h=B;do{w=h;h=h+-1|0;A=P+(h<<2)|0;F=+o[A>>2];E=z+2.0;G=+o[b+(h+H<<2)>>2];G=E<G?E:G;z=F<G?F:G;o[A>>2]=z}while((w|0)>1)}if(M){i=H+-2|0;w=2;do{A=P+(w<<2)|0;z=+o[A>>2];h=b+(i+w<<2)|0;D=+o[h+8>>2];Y=+o[h>>2];E=+o[h+4>>2];Z=Y>E;C=Z?Y:E;Y=Z?E:Y;E=+o[h+12>>2];G=+o[h+16>>2];h=E>G;F=h?G:E;G=h?E:G;h=Y>F;E=h?G:C;F=h?Y:F;G=h?C:G;h=D>E;do if(h)if(E<F){C=D<F?D:F;break}else{C=G<E?G:E;break}else if(D<F){C=E<F?E:F;break}else{C=D<G?D:G;break}while(0);if(!(z>C+-1.0)){do if(h)if(E<F){z=D<F?D:F;break}else{z=G<E?G:E;break}else if(D<F){z=E<F?E:F;break}else{z=D<G?D:G;break}while(0);z=z+-1.0}o[A>>2]=z;w=w+1|0}while((w|0)!=(L|0))}Y=+o[I+4>>2];G=+o[I+8>>2];Z=J>Y;F=Z?Y:J;J=Z?J:Y;F=(J<G?J:F<G?G:F)+-1.0;G=+o[P>>2];o[P>>2]=G>F?G:F;Z=P+4|0;G=+o[Z>>2];o[Z>>2]=G>F?G:F;Z=b+(N+H<<2)|0;F=+o[Z>>2];G=+o[Z+4>>2];J=+o[Z+8>>2];Z=F>G;Y=Z?G:F;G=Z?F:G;Y=(G<J?G:Y<J?J:Y)+-1.0;Z=P+(L<<2)|0;J=+o[Z>>2];o[Z>>2]=J>Y?J:Y;Z=P+(O<<2)|0;J=+o[Z>>2];o[Z>>2]=J>Y?J:Y;if(S){h=0;do{Z=P+(h<<2)|0;J=+o[Z>>2];Y=+o[R+(h<<2)>>2];o[Z>>2]=J>Y?J:Y;h=h+1|0}while((h|0)!=(e|0))}Q=Q+1|0;if((Q|0)>=(f|0))break;else h=B}B=(d|0)<(e|0);if((f|0)==2){if(B){h=d;do{b=h+c|0;U=W+(b<<2)|0;Y=+o[U>>2];Z=W+(h<<2)|0;J=+o[Z>>2]+-4.0;J=Y>J?Y:J;o[U>>2]=J;Y=+o[Z>>2];J=J+-4.0;J=Y>J?Y:J;o[Z>>2]=J;J=+o[a+(h<<2)>>2]-J;Y=+o[a+(b<<2)>>2]-+o[U>>2];o[Z>>2]=((J<0.0?0.0:J)+(Y<0.0?0.0:Y))*.5;h=h+1|0}while((h|0)!=(e|0));U=39}}else if(B){h=d;do{Z=W+(h<<2)|0;Y=+o[a+(h<<2)>>2]-+o[Z>>2];o[Z>>2]=Y<0.0?0.0:Y;h=h+1|0}while((h|0)!=(e|0));U=39}if((U|0)==39?B:0){h=d;do{Z=W+(h<<2)|0;J=+o[Z>>2];Y=+o[x+(h<<2)>>2];o[Z>>2]=J>Y?J:Y;h=h+1|0}while((h|0)!=(e|0))}w=(n|0)!=0;A=(p|0)==0;i=(m|0)!=0;if(B&((i|w&A)^1)){h=d;do{Z=W+(h<<2)|0;o[Z>>2]=+o[Z>>2]*.5;h=h+1|0}while((h|0)!=(e|0))}if(B){h=d;do{if((h|0)>=8){if((h|0)>11){Z=W+(h<<2)|0;o[Z>>2]=+o[Z>>2]*.5}}else{Z=W+(h<<2)|0;o[Z>>2]=+o[Z>>2]*2.0}h=h+1|0}while((h|0)!=(e|0))}if(k[y>>2]|0?(T=(e|0)>19?19:e,(T|0)>(d|0)):0){h=d;do{Z=W+(h<<2)|0;o[Z>>2]=+o[Z>>2]+ +(l[y+36+h>>0]|0)*.015625;h=h+1|0}while((h|0)<(T|0))}if(!B){Z=0;k[v>>2]=Z;r=X;return +V}B=(u<<1|0)/3|0;if(w&(i|A)){h=0;do{w=W+(d<<2)|0;z=+o[w>>2];z=z<4.0?z:4.0;o[w>>2]=z;w=d;d=d+1|0;i=(ha((j[q+(d<<1)>>1]|0)-(j[q+(w<<1)>>1]|0)|0,f)|0)<<s;do if((i|0)>=6)if((i|0)>48){Z=~~(z*8.0);A=Z;i=(ha(Z<<3,i)|0)/8|0;break}else{i=~~(z*+(i|0)/6.0);A=i;i=i*48|0;break}else{Z=~~z;A=Z;i=ha(Z<<3,i)|0}while(0);k[g+(w<<2)>>2]=A;h=i+h|0}while((d|0)!=(e|0));k[v>>2]=h;r=X;return +V}else w=0;while(1){A=W+(d<<2)|0;z=+o[A>>2];z=z<4.0?z:4.0;o[A>>2]=z;A=d+1|0;h=(ha((j[q+(A<<1)>>1]|0)-(j[q+(d<<1)>>1]|0)|0,f)|0)<<s;do if((h|0)>=6)if((h|0)>48){Z=~~(z*8.0);i=Z;h=(ha(Z<<3,h)|0)/8|0;break}else{h=~~(z*+(h|0)/6.0);i=h;h=h*48|0;break}else{Z=~~z;i=Z;h=ha(Z<<3,h)|0}while(0);h=h+w|0;if((h>>6|0)>(B|0))break;k[g+(d<<2)>>2]=i;if((A|0)<(e|0)){d=A;w=h}else{U=70;break}}if((U|0)==70){k[v>>2]=h;r=X;return +V}Z=B<<6;k[g+(d<<2)>>2]=Z-w;k[v>>2]=Z;r=X;return +V}function hd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=r;r=r+16|0;d=e;k[d>>2]=c;do switch(b|0){case 10010:{c=(k[d>>2]|0)+(4-1)&~(4-1);b=k[c>>2]|0;k[d>>2]=c+4;if((b|0)>=0?(b|0)<(k[(k[a>>2]|0)+8>>2]|0):0){k[a+20>>2]=b;b=28}else b=29;break}case 10012:{c=(k[d>>2]|0)+(4-1)&~(4-1);b=k[c>>2]|0;k[d>>2]=c+4;if((b|0)>=1?(b|0)<=(k[(k[a>>2]|0)+8>>2]|0):0){k[a+24>>2]=b;b=28}else b=29;break}case 10008:{c=(k[d>>2]|0)+(4-1)&~(4-1);b=k[c>>2]|0;k[d>>2]=c+4;if((b+-1|0)>>>0>1)b=29;else{k[a+12>>2]=b;b=28}break}case 10007:{c=(k[d>>2]|0)+(4-1)&~(4-1);b=k[c>>2]|0;k[d>>2]=c+4;if(!b)b=29;else{a=a+44|0;k[b>>2]=k[a>>2];k[a>>2]=0;b=28}break}case 4027:{c=(k[d>>2]|0)+(4-1)&~(4-1);b=k[c>>2]|0;k[d>>2]=c+4;if(!b)b=29;else{k[b>>2]=(k[a+4>>2]|0)/(k[a+16>>2]|0)|0;b=28}break}case 4028:{f=k[a+8>>2]|0;b=a+92+((ha((k[a+4>>2]|0)+2048|0,f)|0)<<2)+(f*24<<2)|0;g=k[a>>2]|0;d=k[g+8>>2]|0;c=d<<1;b=b+(c<<2)|0;c=b+(c<<2)|0;rf(a+40|0,0,(d<<5)+52+(ha((k[g+4>>2]<<2)+8288|0,f)|0)|0)|0;if((d|0)>0){d=0;do{o[c+(d<<2)>>2]=-28.0;o[b+(d<<2)>>2]=-28.0;d=d+1|0}while((d|0)<(k[(k[a>>2]|0)+8>>2]<<1|0))}k[a+56>>2]=1;b=28;break}case 4033:{g=(k[d>>2]|0)+(4-1)&~(4-1);b=k[g>>2]|0;k[d>>2]=g+4;if(!b)b=29;else{k[b>>2]=k[a+60>>2];b=28}break}case 10015:{g=(k[d>>2]|0)+(4-1)&~(4-1);b=k[g>>2]|0;k[d>>2]=g+4;if(!b)b=29;else{k[b>>2]=k[a>>2];b=28}break}case 10016:{g=(k[d>>2]|0)+(4-1)&~(4-1);b=k[g>>2]|0;k[d>>2]=g+4;k[a+28>>2]=b;b=28;break}case 4031:{g=(k[d>>2]|0)+(4-1)&~(4-1);b=k[g>>2]|0;k[d>>2]=g+4;if(!b)b=29;else{k[b>>2]=k[a+40>>2];b=28}break}case 4046:{g=(k[d>>2]|0)+(4-1)&~(4-1);b=k[g>>2]|0;k[d>>2]=g+4;if(b>>>0>1)b=29;else{k[a+32>>2]=b;b=28}break}case 4047:{g=(k[d>>2]|0)+(4-1)&~(4-1);b=k[g>>2]|0;k[d>>2]=g+4;if(!b)b=29;else{k[b>>2]=k[a+32>>2];b=28}break}default:{r=e;return}}while(0);if((b|0)==28){r=e;return}else if((b|0)==29){r=e;return}}function id(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0.0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.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,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,fa=0,ga=0,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0.0,Ka=0.0;Ia=r;r=r+96|0;H=Ia;x=Ia+40|0;aa=Ia+32|0;Ha=Ia+24|0;da=Ia+16|0;ca=Ia+12|0;ba=Ia+8|0;Da=k[a+8>>2]|0;k[da>>2]=0;k[ca>>2]=0;qa=k[a+12>>2]|0;Fa=k[a>>2]|0;oa=Fa+8|0;Ga=k[oa>>2]|0;ta=k[Fa+4>>2]|0;pa=Fa+32|0;$=k[pa>>2]|0;ya=k[a+20>>2]|0;g=k[a+24>>2]|0;Ea=a+16|0;za=ha(k[Ea>>2]|0,e)|0;q=ta+2048|0;Aa=a+92+((ha(q,Da)|0)<<2)+(Da*24<<2)|0;va=Ga<<1;Ba=Aa+(va<<2)|0;Ca=Ba+(va<<2)|0;ua=Ca+(va<<2)|0;p=k[Fa+36>>2]|0;a:do if((p|0)<0)m=0;else{e=k[Fa+44>>2]|0;n=0;while(1){if((e<<n|0)==(za|0)){m=n;break a}m=n+1|0;if((n|0)<(p|0))n=m;else break}}while(0);if((m|0)>(p|0)){a=-1;r=Ia;return a|0}ra=1<<m;if(c>>>0>1275|(d|0)==0){a=-1;r=Ia;return a|0}sa=Fa+44|0;xa=k[sa>>2]<<m;e=0-xa|0;n=0;do{wa=a+92+((ha(n,q)|0)<<2)|0;k[aa+(n<<2)>>2]=wa;k[Ha+(n<<2)>>2]=wa+8192+(e<<2);n=n+1|0}while((n|0)<(Da|0));ka=k[Fa+12>>2]|0;ka=(g|0)>(ka|0)?ka:g;if((b|0)==0|(c|0)<2){jd(a,xa,m);ld(Ha,d,xa,Da,k[Ea>>2]|0,Fa+16|0,a+84|0);a=(za|0)/(k[Ea>>2]|0)|0;r=Ia;return a|0}wa=a+52|0;k[a+56>>2]=(k[wa>>2]|0)!=0&1;if(!f){k[x>>2]=b;k[x+4>>2]=c;k[x+8>>2]=0;k[x+12>>2]=0;k[x+16>>2]=0;f=x+20|0;k[f>>2]=9;p=x+24|0;k[p>>2]=0;s=x+28|0;k[s>>2]=128;if(!c){q=0;e=0}else{k[p>>2]=1;q=l[b>>0]|0;e=1}t=x+40|0;k[t>>2]=q;u=q>>>1^127;v=x+32|0;k[v>>2]=u;k[x+44>>2]=0;if(e>>>0<c>>>0){na=e+1|0;k[p>>2]=na;w=l[b+e>>0]|0;e=na}else w=0;if(e>>>0<c>>>0){na=e+1|0;k[p>>2]=na;n=l[b+e>>0]|0;e=na}else n=0;if(e>>>0<c>>>0){k[p>>2]=e+1;e=l[b+e>>0]|0}else e=0;k[f>>2]=33;k[s>>2]=-2147483648;k[t>>2]=e;k[v>>2]=((((w|q<<8)>>>1&255|u<<8)<<8|(n|w<<8)>>>1&255)<<8&2147483392|(e|n<<8)>>>1&255)^16777215}else x=f;ga=(qa|0)==1;ia=(Ga|0)>0;if(ga&ia){e=0;do{na=Aa+(e<<2)|0;I=+o[na>>2];J=+o[Aa+(e+Ga<<2)>>2];o[na>>2]=I>J?I:J;e=e+1|0}while((e|0)!=(Ga|0))}na=c<<3;la=x+20|0;e=k[la>>2]|0;ma=x+28|0;n=k[ma>>2]|0;q=e+-32+(ja(n|0)|0)|0;do if((q|0)<(na|0))if((q|0)==1){y=x+32|0;q=k[y>>2]|0;f=n>>>15;z=q>>>0<f>>>0;p=z&1;if(!z){q=q-f|0;k[y>>2]=q;n=n-f|0;k[ma>>2]=n;if(n>>>0>=8388609){fa=0;p=0;q=1;break}}else{k[ma>>2]=f;n=f}w=x+40|0;b=x+24|0;v=k[x+4>>2]|0;t=k[b>>2]|0;u=k[w>>2]|0;while(1){e=e+8|0;k[la>>2]=e;n=n<<8;k[ma>>2]=n;if(t>>>0<v>>>0){f=t+1|0;k[b>>2]=f;s=l[(k[x>>2]|0)+t>>0]|0}else{f=t;s=0}k[w>>2]=s;q=((s|u<<8)>>>1&255|q<<8&2147483392)^255;k[y>>2]=q;if(n>>>0>=8388609)break;else{t=f;u=s}}if(z)O=29;else{fa=0;p=0;q=1}}else{fa=0;p=0}else{p=1;O=29}while(0);if((O|0)==29){e=na+32-e-(ja(n|0)|0)+e|0;k[la>>2]=e;fa=1;q=na}if((ya|0)!=0|(q+16|0)>(na|0)){u=e;_=0;Z=0;h=0.0}else{G=x+32|0;q=k[G>>2]|0;f=n>>>1;y=q>>>0<f>>>0;if(!y){q=q-f|0;k[G>>2]=q;f=n-f|0}k[ma>>2]=f;if(f>>>0<8388609){w=x+40|0;b=x+24|0;v=k[x+4>>2]|0;t=k[b>>2]|0;u=k[w>>2]|0;while(1){e=e+8|0;k[la>>2]=e;f=f<<8;k[ma>>2]=f;if(t>>>0<v>>>0){n=t+1|0;k[b>>2]=n;s=l[(k[x>>2]|0)+t>>0]|0}else{n=t;s=0}k[w>>2]=s;q=((s|u<<8)>>>1&255|q<<8&2147483392)^255;k[G>>2]=q;if(f>>>0<8388609){t=n;u=s}else break}}if(y){n=(f>>>0)/6|0;k[x+36>>2]=n;Z=((q>>>0)/(n>>>0)|0)+1|0;Z=Z>>>0>6?6:Z;y=6-Z|0;_=ha(5-y|0,n)|0;q=q-_|0;k[G>>2]=q;n=(Z|0)==6?f-_|0:n;k[ma>>2]=n;if(n>>>0<8388609){w=x+40|0;b=x+24|0;v=k[x+4>>2]|0;t=k[b>>2]|0;u=k[w>>2]|0;while(1){e=e+8|0;k[la>>2]=e;n=n<<8;k[ma>>2]=n;if(t>>>0<v>>>0){f=t+1|0;k[b>>2]=f;s=l[(k[x>>2]|0)+t>>0]|0}else{f=t;s=0}k[w>>2]=s;q=((s|u<<8)>>>1&255|q<<8&2147483392)^255;k[G>>2]=q;if(n>>>0<8388609){t=f;u=s}else{F=q;break}}}else F=q;C=16<<y;z=y+4|0;D=x+12|0;f=k[D>>2]|0;E=x+16|0;q=k[E>>2]|0;if(q>>>0<z>>>0){v=x+8|0;w=q+8|0;b=(w|0)>25;y=~q;u=k[x+4>>2]|0;s=k[v>>2]|0;do{if(s>>>0<u>>>0){t=s+1|0;k[v>>2]=t;s=t;t=l[(k[x>>2]|0)+(u-t)>>0]|0}else t=0;f=t<<q|f;q=q+8|0}while((q|0)<25);q=w+((b?w:25)+y&-8)|0}s=f>>>z;q=q-z|0;k[D>>2]=s;k[E>>2]=q;y=e+z|0;k[la>>2]=y;C=C+-1+(f&(1<<z)+-1)|0;if(q>>>0<3){u=x+8|0;v=q+8|0;w=(v|0)>25;b=~q;t=k[x+4>>2]|0;f=k[u>>2]|0;e=s;do{if(f>>>0<t>>>0){s=f+1|0;k[u>>2]=s;f=s;s=l[(k[x>>2]|0)+(t-s)>>0]|0}else s=0;e=s<<q|e;q=q+8|0}while((q|0)<25);q=v+((w?v:25)+b&-8)|0}else e=s;z=e&7;k[D>>2]=e>>>3;k[E>>2]=q+-3;e=y+3|0;k[la>>2]=e;if((y+-27+(ja(n|0)|0)|0)<=(na|0)){f=n>>>2;q=-1;while(1){q=q+1|0;s=ha(l[32213+q>>0]|0,f)|0;if(F>>>0>=s>>>0)break;else n=s}f=F-s|0;k[G>>2]=f;n=n-s|0;k[ma>>2]=n;if(n>>>0<8388609){b=x+40|0;y=x+24|0;w=k[x+4>>2]|0;u=k[y>>2]|0;v=k[b>>2]|0;t=f;while(1){e=e+8|0;k[la>>2]=e;n=n<<8;k[ma>>2]=n;if(u>>>0<w>>>0){f=u+1|0;k[y>>2]=f;s=l[(k[x>>2]|0)+u>>0]|0}else{f=u;s=0}k[b>>2]=s;t=((s|v<<8)>>>1&255|t<<8&2147483392)^255;k[G>>2]=t;if(n>>>0>=8388609)break;else{u=f;v=s}}}}else q=0;f=n;h=+(z+1|0)*.09375;n=C}else{h=0.0;n=0;q=0}u=e;_=n;Z=q;n=f;q=e+-32+(ja(f|0)|0)|0}if((m|0)<1|(q+3|0)>(na|0))W=0;else{y=x+32|0;q=k[y>>2]|0;e=n>>>3;Y=q>>>0<e>>>0;z=Y&1;if(!Y){q=q-e|0;k[y>>2]=q;e=n-e|0}k[ma>>2]=e;if(e>>>0<8388609){w=x+40|0;b=x+24|0;v=k[x+4>>2]|0;n=u;t=k[b>>2]|0;u=k[w>>2]|0;while(1){n=n+8|0;k[la>>2]=n;e=e<<8;k[ma>>2]=e;if(t>>>0<v>>>0){f=t+1|0;k[b>>2]=f;s=l[(k[x>>2]|0)+t>>0]|0}else{f=t;s=0}k[w>>2]=s;q=((s|u<<8)>>>1&255|q<<8&2147483392)^255;k[y>>2]=q;if(e>>>0>=8388609){q=n;break}else{t=f;u=s}}}else q=u;u=q;n=e;W=z;q=q+-32+(ja(e|0)|0)|0}Y=(W|0)!=0;V=Y?ra:0;if((q+3|0)<=(na|0)){y=x+32|0;e=k[y>>2]|0;q=n>>>3;z=e>>>0<q>>>0;C=z&1;if(!z){e=e-q|0;k[y>>2]=e;q=n-q|0}k[ma>>2]=q;if(q>>>0<8388609){w=x+40|0;b=x+24|0;v=k[x+4>>2]|0;s=k[b>>2]|0;t=k[w>>2]|0;while(1){u=u+8|0;k[la>>2]=u;q=q<<8;k[ma>>2]=q;if(s>>>0<v>>>0){n=s+1|0;k[b>>2]=n;f=l[(k[x>>2]|0)+s>>0]|0}else{n=s;f=0}k[w>>2]=f;e=((f|t<<8)>>>1&255|e<<8&2147483392)^255;k[y>>2]=e;if(q>>>0>=8388609)break;else{s=n;t=f}}}U=H;k[U>>2]=0;k[U+4>>2]=0;if(z){A=.149993896484375;B=0.0;e=H}else{e=H;O=85}}else{e=H;k[e>>2]=0;k[e+4>>2]=0;e=H;O=85}if((O|0)==85){C=0;A=+o[21284+(m<<2)>>2];B=+o[21300+(m<<2)>>2]}S=x+4|0;U=(ya|0)<(g|0);if(U){D=(k[S>>2]<<3)+32|0;E=x+32|0;F=x+40|0;G=x+24|0;H=x+36|0;N=ya;do{L=((N|0)<20?N:20)<<1;K=33022+(m*84|0)+(C*42|0)+L|0;L=(L|1)+(33022+(m*84|0)+(C*42|0))|0;M=0;do{w=k[la>>2]|0;s=k[ma>>2]|0;n=D-w-(ja(s|0)|0)|0;do if((n|0)>14){q=l[K>>0]<<7;v=l[L>>0]<<6;z=s>>>15;k[H>>2]=z;y=k[E>>2]|0;b=((y>>>0)/(z>>>0)|0)+1|0;b=32768-(b>>>0>32768?32768:b)|0;if(b>>>0<q>>>0){f=0;n=0}else{T=(ha(16384-v|0,32736-q|0)|0)>>>15;n=T+1|0;b:do if(!T){f=1;O=94}else{u=q;f=1;while(1){t=n<<1;q=t+u|0;if(b>>>0<q>>>0){t=f;break b}f=f+1|0;T=(ha(t+-2|0,v)|0)>>>15;n=T+1|0;if(!T){O=94;break}else u=q}}while(0);if((O|0)==94){O=0;t=(b-q|0)>>>1;u=(t<<1)+q|0;t=t+f|0}f=u+n|0;T=b>>>0<f>>>0;q=n;f=T?u:f;n=T?0-t|0:t}q=q+f|0;q=q>>>0<32768?q:32768;T=ha(32768-q|0,z)|0;t=y-T|0;k[E>>2]=t;q=ha(q-f|0,z)|0;q=(f|0)==0?s-T|0:q;k[ma>>2]=q;if(q>>>0<8388609){b=k[S>>2]|0;u=k[G>>2]|0;v=k[F>>2]|0;while(1){w=w+8|0;k[la>>2]=w;q=q<<8;k[ma>>2]=q;if(u>>>0<b>>>0){f=u+1|0;k[G>>2]=f;s=l[(k[x>>2]|0)+u>>0]|0}else{f=u;s=0}k[F>>2]=s;t=((s|v<<8)>>>1&255|t<<8&2147483392)^255;k[E>>2]=t;if(q>>>0>=8388609)break;else{u=f;v=s}}}}else{if((n|0)>1){n=k[E>>2]|0;q=s>>>2;b=-1;while(1){b=b+1|0;f=ha(l[33358+b>>0]|0,q)|0;if(n>>>0>=f>>>0)break;else s=f}q=n-f|0;k[E>>2]=q;n=s-f|0;k[ma>>2]=n;if(n>>>0<8388609){v=k[S>>2]|0;t=k[G>>2]|0;u=k[F>>2]|0;s=q;while(1){w=w+8|0;k[la>>2]=w;n=n<<8;k[ma>>2]=n;if(t>>>0<v>>>0){q=t+1|0;k[G>>2]=q;f=l[(k[x>>2]|0)+t>>0]|0}else{q=t;f=0}k[F>>2]=f;s=((f|u<<8)>>>1&255|s<<8&2147483392)^255;k[E>>2]=s;if(n>>>0>=8388609)break;else{t=q;u=f}}}n=b>>1^0-(b&1);break}if((n|0)>0){n=k[E>>2]|0;q=s>>>1;b=n>>>0<q>>>0;if(!b){n=n-q|0;k[E>>2]=n;q=s-q|0}k[ma>>2]=q;if(q>>>0<8388609){v=k[S>>2]|0;t=k[G>>2]|0;u=k[F>>2]|0;while(1){w=w+8|0;k[la>>2]=w;q=q<<8;k[ma>>2]=q;if(t>>>0<v>>>0){f=t+1|0;k[G>>2]=f;s=l[(k[x>>2]|0)+t>>0]|0}else{f=t;s=0}k[F>>2]=s;n=((s|u<<8)>>>1&255|n<<8&2147483392)^255;k[E>>2]=n;if(q>>>0>=8388609)break;else{t=f;u=s}}}n=b<<31>>31}else n=-1}while(0);J=+(n|0);R=Aa+((ha(k[oa>>2]|0,M)|0)+N<<2)|0;I=+o[R>>2];o[R>>2]=I<-9.0?-9.0:I;R=Aa+((ha(k[oa>>2]|0,M)|0)+N<<2)|0;T=e+(M<<2)|0;I=+o[T>>2];o[R>>2]=J+(B*+o[R>>2]+I);o[T>>2]=J+I-A*J;M=M+1|0}while((M|0)<(qa|0));N=N+1|0}while((N|0)!=(g|0))}T=Pa()|0;R=r;r=r+((1*(Ga<<2)|0)+15&-16)|0;P=k[S>>2]|0;e=P<<3;n=k[la>>2]|0;f=k[ma>>2]|0;s=n+-32+(ja(f|0)|0)|0;q=Y?2:4;if((m|0)>0)G=(s+(q|1)|0)>>>0<=e>>>0;else G=0;z=e-(G&1)|0;if(U){C=Y?4:5;D=x+32|0;E=x+40|0;F=x+24|0;b=0;y=ya;e=0;while(1){if((q+s|0)>>>0>z>>>0)t=b;else{s=k[D>>2]|0;q=f>>>q;Q=s>>>0<q>>>0;w=Q&1;if(!Q){s=s-q|0;k[D>>2]=s;q=f-q|0}k[ma>>2]=q;if(q>>>0<8388609){u=k[F>>2]|0;v=k[E>>2]|0;while(1){n=n+8|0;k[la>>2]=n;q=q<<8;k[ma>>2]=q;if(u>>>0<P>>>0){f=u+1|0;k[F>>2]=f;t=l[(k[x>>2]|0)+u>>0]|0}else{f=u;t=0}k[E>>2]=t;s=((t|v<<8)>>>1&255|s<<8&2147483392)^255;k[D>>2]=s;if(q>>>0>=8388609){s=n;break}else{u=f;v=t}}}else s=n;Q=w^b;n=s;f=q;t=Q;s=s+-32+(ja(q|0)|0)|0;e=Q|e}k[R+(y<<2)>>2]=t;q=y+1|0;if((q|0)==(g|0))break;else{b=t;y=q;q=C}}}else e=0;if(G?(Q=W<<2,(i[e+Q+(31902+(m<<3))>>0]|0)!=(i[e+(Q|2)+(31902+(m<<3))>>0]|0)):0){b=x+32|0;q=k[b>>2]|0;e=f>>>1;Q=q>>>0<e>>>0;y=Q&1;if(!Q){q=q-e|0;k[b>>2]=q;e=f-e|0}k[ma>>2]=e;if(e>>>0<8388609){v=x+40|0;w=x+24|0;t=k[w>>2]|0;u=k[v>>2]|0;while(1){n=n+8|0;k[la>>2]=n;e=e<<8;k[ma>>2]=e;if(t>>>0<P>>>0){f=t+1|0;k[w>>2]=f;s=l[(k[x>>2]|0)+t>>0]|0}else{f=t;s=0}k[v>>2]=s;q=((s|u<<8)>>>1&255|q<<8&2147483392)^255;k[b>>2]=q;if(e>>>0>=8388609)break;else{t=f;u=s}}}s=n;f=e;e=y<<1}else{s=n;e=0}if(U){e=e+(W<<2)|0;n=ya;do{Q=R+(n<<2)|0;k[Q>>2]=i[e+(k[Q>>2]|0)+(31902+(m<<3))>>0];n=n+1|0}while((n|0)!=(g|0))}if((s+-28+(ja(f|0)|0)|0)<=(na|0)){b=x+32|0;e=k[b>>2]|0;n=f>>>5;y=-1;while(1){y=y+1|0;q=ha(l[32216+y>>0]|0,n)|0;if(e>>>0>=q>>>0)break;else f=q}n=e-q|0;k[b>>2]=n;e=f-q|0;k[ma>>2]=e;if(e>>>0<8388609){v=x+40|0;w=x+24|0;q=s;t=k[w>>2]|0;u=k[v>>2]|0;s=n;while(1){q=q+8|0;k[la>>2]=q;e=e<<8;k[ma>>2]=e;if(t>>>0<P>>>0){n=t+1|0;k[w>>2]=n;f=l[(k[x>>2]|0)+t>>0]|0}else{n=t;f=0}k[v>>2]=f;s=((f|u<<8)>>>1&255|s<<8&2147483392)^255;k[b>>2]=s;if(e>>>0>=8388609){n=e;v=q;break}else{t=n;u=f}}}else{n=e;v=s}}else{n=f;v=s;y=2}N=r;r=r+((1*(Ga<<2)|0)+15&-16)|0;e=k[oa>>2]|0;if((e|0)>0){q=k[pa>>2]|0;f=k[Fa+104>>2]|0;s=ha(e,qa+-1+(m<<1)|0)|0;t=j[q>>1]|0;u=0;do{Q=u;u=u+1|0;O=t;t=j[q+(u<<1)>>1]|0;O=(ha(ha((t<<16>>16)-(O<<16>>16)<<m,qa)|0,(l[f+(s+Q)>>0]|0)+64|0)|0)>>2;k[N+(Q<<2)>>2]=O}while((u|0)!=(e|0))}M=r;r=r+((1*(Ga<<2)|0)+15&-16)|0;Q=c<<6;c=32-(ja(n|0)|0)|0;f=n>>>(c+-16|0);q=f>>>12;H=x+32|0;K=x+40|0;L=x+24|0;e=v;G=6;s=ya;q=(v-c<<3)+8-q+((f>>>0>(k[9236+(q+-8<<2)>>2]|0)>>>0)<<31>>31)|0;f=Q;c:while(1){F=G<<3;v=q;while(1){q=(F+v|0)<(f|0);if((s|0)<(g|0))E=s;else break c;while(1){s=E+1|0;if(q)break;k[M+(E<<2)>>2]=0;if((s|0)<(g|0))E=s;else break c}C=(ha((j[$+(s<<1)>>1]|0)-(j[$+(E<<1)>>1]|0)|0,qa)|0)<<m;D=C<<3;C=(C|0)<48?48:C;C=(D|0)<(C|0)?D:C;D=k[N+(E<<2)>>2]|0;t=0;u=G;q=v;while(1){if((t|0)>=(D|0))break;q=k[H>>2]|0;u=n>>>u;z=q>>>0<u>>>0;if(z)n=u;else{q=q-u|0;k[H>>2]=q;n=n-u|0}k[ma>>2]=n;if(n>>>0<8388609){w=k[L>>2]|0;b=k[K>>2]|0;while(1){e=e+8|0;k[la>>2]=e;n=n<<8;k[ma>>2]=n;if(w>>>0<P>>>0){u=w+1|0;k[L>>2]=u;v=l[(k[x>>2]|0)+w>>0]|0}else{u=w;v=0}k[K>>2]=v;q=((v|b<<8)>>>1&255|q<<8&2147483392)^255;k[H>>2]=q;if(n>>>0>=8388609)break;else{w=u;b=v}}}c=32-(ja(n|0)|0)|0;O=n>>>(c+-16|0);q=O>>>12;q=((O>>>0>(k[9236+(q+-8<<2)>>2]|0)>>>0)<<31>>31)+(e-c<<3)+(8-q)|0;if(!z)break;t=t+C|0;f=f-C|0;if((q+8|0)<(f|0))u=1;else break}k[M+(E<<2)>>2]=t;if((t|0)>0)break;else v=q}c=G+-1|0;G=(c|0)<2?2:c}O=r;r=r+((1*(Ga<<2)|0)+15&-16)|0;if((v+48|0)<=(f|0)){f=k[H>>2]|0;s=n>>>7;q=-1;while(1){q=q+1|0;t=ha(l[32220+q>>0]|0,s)|0;if(f>>>0>=t>>>0)break;else n=t}f=f-t|0;k[H>>2]=f;n=n-t|0;k[ma>>2]=n;if(n>>>0<8388609){u=k[L>>2]|0;v=k[K>>2]|0;t=f;while(1){e=e+8|0;k[la>>2]=e;n=n<<8;k[ma>>2]=n;if(u>>>0<P>>>0){f=u+1|0;k[L>>2]=f;s=l[(k[x>>2]|0)+u>>0]|0}else{f=u;s=0}k[K>>2]=s;t=((s|v<<8)>>>1&255|t<<8&2147483392)^255;k[H>>2]=t;if(n>>>0>=8388609)break;else{u=f;v=s}}}}else q=5;$=32-(ja(n|0)|0)|0;P=n>>>($+-16|0);c=P>>>12;e=Q+-9+c+(P>>>0>(k[9236+(c+-8<<2)>>2]|0)>>>0&1)+($-e<<3)|0;if((m|0)>1&Y)G=(e|0)>=((m<<3)+16|0);else G=0;H=G?8:0;c=r;r=r+((1*(Ga<<2)|0)+15&-16)|0;K=r;r=r+((1*(Ga<<2)|0)+15&-16)|0;F=Cd(Fa,ya,g,M,N,q,da,ca,e-H|0,ba,c,O,K,qa,m,x,0,0,0)|0;if(U){w=x+12|0;b=x+16|0;z=x+8|0;E=ya;do{C=k[O+(E<<2)>>2]|0;if((C|0)>=1){A=+(1<<14-C|0);f=k[w>>2]|0;e=k[b>>2]|0;D=0;do{if(e>>>0<C>>>0){t=e+8|0;u=(t|0)>25;v=~e;s=k[S>>2]|0;q=k[z>>2]|0;n=f;do{if(q>>>0<s>>>0){f=q+1|0;k[z>>2]=f;q=f;f=l[(k[x>>2]|0)+(s-f)>>0]|0}else f=0;n=f<<e|n;e=e+8|0}while((e|0)<25);e=t+((u?t:25)+v&-8)|0}else n=f;f=n>>>C;e=e-C|0;k[w>>2]=f;k[b>>2]=e;k[la>>2]=(k[la>>2]|0)+C;$=Aa+((ha(k[oa>>2]|0,D)|0)+E<<2)|0;o[$>>2]=+o[$>>2]+((+(n&(1<<C)+-1|0)+.5)*A*.00006103515625+-.5);D=D+1|0}while((D|0)<(qa|0))}E=E+1|0}while((E|0)!=(g|0))}e=((ta|0)/2|0)+2048-xa<<2;n=0;do{$=k[aa+(n<<2)>>2]|0;xf($|0,$+(xa<<2)|0,e|0)|0;n=n+1|0}while((n|0)<(Da|0));M=ha(Ga,qa)|0;L=r;r=r+((1*M|0)+15&-16)|0;P=(ha(xa,qa)|0)<<2;N=r;r=r+((1*P|0)+15&-16)|0;P=a+40|0;be(0,Fa,ya,g,N,(qa|0)==2?N+(xa<<2)|0:0,L,0,c,V,y,k[ca>>2]|0,k[da>>2]|0,R,Q-H|0,k[ba>>2]|0,x,m,F,P,0,k[a+36>>2]|0,k[a+32>>2]|0);do if(G){v=x+12|0;e=k[v>>2]|0;w=x+16|0;n=k[w>>2]|0;if(!n){s=x+8|0;n=k[s>>2]|0;q=k[S>>2]|0;if(n>>>0<q>>>0){n=n+1|0;k[s>>2]=n;u=l[(k[x>>2]|0)+(q-n)>>0]|0}else u=0;if(n>>>0<q>>>0){n=n+1|0;k[s>>2]=n;t=l[(k[x>>2]|0)+(q-n)>>0]|0}else t=0;if(n>>>0<q>>>0){n=n+1|0;k[s>>2]=n;f=l[(k[x>>2]|0)+(q-n)>>0]|0}else f=0;if(n>>>0<q>>>0){da=n+1|0;k[s>>2]=da;q=l[(k[x>>2]|0)+(q-da)>>0]|0}else q=0;n=32;e=q<<24|(f<<16|(t<<8|(u|e)))}k[v>>2]=e>>>1;k[w>>2]=n+-1;da=k[la>>2]|0;k[la>>2]=da+1;Bd(Fa,ya,g,Aa,O,K,na+32+~da-(ja(k[ma>>2]|0)|0)|0,x,qa);if((e&1|0)==0|U^1)break;v=(m|0)==3;w=(m|0)==31;e=k[P>>2]|0;E=ya;do{F=E;E=E+1|0;b=k[pa>>2]|0;b=(j[b+(E<<1)>>1]|0)-(j[b+(F<<1)>>1]|0)|0;I=+ea(+(+(((((k[c+(F<<2)>>2]|0)+1|0)>>>0)/(b>>>0)|0)>>>m|0)*-.125*.6931471805599453))*.5;y=b<<m;J=1.0/+X(+(+(y|0)));z=(y|0)>0;C=ha(F,qa)|0;D=(b|0)>0;u=z^1;t=0;do{n=k[oa>>2]|0;q=(ha(n,t)|0)+F|0;B=+o[Ba+(q<<2)>>2];A=+o[Ca+(q<<2)>>2];if(ga){da=n+F|0;Ka=+o[Ba+(da<<2)>>2];Ja=+o[Ca+(da<<2)>>2];B=B>Ka?B:Ka;A=A>Ja?A:Ja}A=+o[Aa+(q<<2)>>2]-(B<A?B:A);A=+ea(+(-(A<0.0?0.0:A)*.6931471805599453))*2.0;A=v?A*1.4142135381698608:A;A=J*(I<A?I:A);s=N+((ha(t,xa)|0)<<2)|0;s=s+(j[(k[pa>>2]|0)+(F<<1)>>1]<<m<<2)|0;do if(!w){B=-A;f=l[L+(t+C)>>0]|0;if(D){q=0;n=0;do{if(!(f&1<<q)){n=0;do{e=(ha(e,1664525)|0)+1013904223|0;o[s+((n<<m)+q<<2)>>2]=e&32768|0?A:B;n=n+1|0}while((n|0)!=(b|0));n=1}q=q+1|0}while((q|0)<(ra|0))}else{q=0;n=0;do{n=(f&1<<q|0)==0?1:n;q=q+1|0}while((q|0)<(ra|0))}if((n|0)==0|u)break;else{n=0;A=0.0}do{Ka=+o[s+(n<<2)>>2];A=A+Ka*Ka;n=n+1|0}while((n|0)!=(y|0));A=1.0/+X(+(A+1.0000000036274937e-15));if(z){q=0;n=s}else break;while(1){o[n>>2]=A*+o[n>>2];q=q+1|0;if((q|0)==(y|0))break;else n=n+4|0}}while(0);t=t+1|0}while((t|0)<(qa|0))}while((E|0)!=(g|0))}else Bd(Fa,ya,g,Aa,O,K,na+32-(k[la>>2]|0)-(ja(k[ma>>2]|0)|0)|0,x,qa);while(0);if(fa&(M|0)>0){e=0;do{o[Aa+(e<<2)>>2]=-28.0;e=e+1|0}while((e|0)!=(M|0))}kd(Fa,N,Ha,Aa,ya,ka,qa,Da,W,m,k[Ea>>2]|0,p);n=a+60|0;p=a+64|0;q=a+72|0;f=a+68|0;s=a+80|0;t=a+76|0;u=Fa+60|0;m=(m|0)!=0;if(m){e=0;do{qa=k[n>>2]|0;qa=(qa|0)>15?qa:15;k[n>>2]=qa;oa=k[p>>2]|0;oa=(oa|0)>15?oa:15;k[p>>2]=oa;pa=k[Ha+(e<<2)>>2]|0;Pc(pa,pa,oa,qa,k[sa>>2]|0,+o[q>>2],+o[f>>2],k[s>>2]|0,k[t>>2]|0,k[u>>2]|0,ta);qa=k[sa>>2]|0;pa=pa+(qa<<2)|0;Pc(pa,pa,k[n>>2]|0,_,xa-qa|0,+o[f>>2],h,k[t>>2]|0,Z,k[u>>2]|0,ta);e=e+1|0}while((e|0)<(Da|0))}else{e=0;do{qa=k[n>>2]|0;qa=(qa|0)>15?qa:15;k[n>>2]=qa;pa=k[p>>2]|0;pa=(pa|0)>15?pa:15;k[p>>2]=pa;oa=k[Ha+(e<<2)>>2]|0;Pc(oa,oa,pa,qa,k[sa>>2]|0,+o[q>>2],+o[f>>2],k[s>>2]|0,k[t>>2]|0,k[u>>2]|0,ta);e=e+1|0}while((e|0)<(Da|0))}k[p>>2]=k[n>>2];k[q>>2]=k[f>>2];k[s>>2]=k[t>>2];k[n>>2]=_;o[f>>2]=h;k[t>>2]=Z;if(m){k[p>>2]=_;o[q>>2]=h;k[s>>2]=Z}if(ga)wf(Aa+(Ga<<2)|0,Aa|0,Ga<<2|0)|0;do if(Y){if(ia)e=0;else break;do{ua=Ba+(e<<2)|0;Ja=+o[ua>>2];Ka=+o[Aa+(e<<2)>>2];o[ua>>2]=Ja<Ka?Ja:Ka;e=e+1|0}while((e|0)<(va|0))}else{ta=Ga<<3;wf(Ca|0,Ba|0,ta|0)|0;wf(Ba|0,Aa|0,ta|0)|0;h=(k[wa>>2]|0)<10?+(ra|0)*1.0000000474974513e-03:1.0;if(ia)e=0;else break;do{ta=ua+(e<<2)|0;Ja=h+ +o[ta>>2];Ka=+o[Aa+(e<<2)>>2];o[ta>>2]=Ja<Ka?Ja:Ka;e=e+1|0}while((e|0)<(va|0))}while(0);e=(g|0)<(Ga|0);d:do if((ya|0)>0){if(e)e=0;else{g=0;do{o[Aa+(g<<2)>>2]=0.0;o[Ca+(g<<2)>>2]=-28.0;o[Ba+(g<<2)>>2]=-28.0;g=g+1|0}while((g|0)!=(ya|0));g=0;while(1){va=g+Ga|0;o[Aa+(va<<2)>>2]=0.0;o[Ca+(va<<2)>>2]=-28.0;o[Ba+(va<<2)>>2]=-28.0;g=g+1|0;if((g|0)==(ya|0))break d}}do{o[Aa+(e<<2)>>2]=0.0;o[Ca+(e<<2)>>2]=-28.0;o[Ba+(e<<2)>>2]=-28.0;e=e+1|0}while((e|0)!=(ya|0));e=g;do{o[Aa+(e<<2)>>2]=0.0;o[Ca+(e<<2)>>2]=-28.0;o[Ba+(e<<2)>>2]=-28.0;e=e+1|0}while((e|0)!=(Ga|0));e=0;do{va=e+Ga|0;o[Aa+(va<<2)>>2]=0.0;o[Ca+(va<<2)>>2]=-28.0;o[Ba+(va<<2)>>2]=-28.0;e=e+1|0}while((e|0)!=(ya|0));do{ya=g+Ga|0;o[Aa+(ya<<2)>>2]=0.0;o[Ca+(ya<<2)>>2]=-28.0;o[Ba+(ya<<2)>>2]=-28.0;g=g+1|0}while((g|0)!=(Ga|0))}else{if(e)e=g;else break;do{o[Aa+(e<<2)>>2]=0.0;o[Ca+(e<<2)>>2]=-28.0;o[Ba+(e<<2)>>2]=-28.0;e=e+1|0}while((e|0)!=(Ga|0));do{ya=g+Ga|0;o[Aa+(ya<<2)>>2]=0.0;o[Ca+(ya<<2)>>2]=-28.0;o[Ba+(ya<<2)>>2]=-28.0;g=g+1|0}while((g|0)!=(Ga|0))}while(0);k[P>>2]=k[ma>>2];ld(Ha,d,xa,Da,k[Ea>>2]|0,Fa+16|0,a+84|0);k[wa>>2]=0;if(((k[la>>2]|0)+-32+(ja(k[ma>>2]|0)|0)|0)>(na|0))g=-3;else{if(k[x+44>>2]|0)k[a+44>>2]=1;g=(za|0)/(k[Ea>>2]|0)|0}Xa(T|0);a=g;r=Ia;return a|0}function jd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0,g=0,h=0,i=0,l=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.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,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Ya=0,Za=0.0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0.0,nb=0.0,ob=0.0,pb=0.0,qb=0.0,rb=0.0,sb=0.0,tb=0.0;kb=r;r=r+12608|0;bb=kb+8504|0;cb=0-b|0;g=kb+4392|0;jb=kb+8496|0;x=kb+8488|0;h=kb+200|0;db=kb+96|0;eb=kb;ib=k[a+8>>2]|0;y=k[a>>2]|0;l=k[y+8>>2]|0;hb=k[y+4>>2]|0;u=k[y+32>>2]|0;d=hb+2048|0;e=0;do{gb=a+92+((ha(e,d)|0)<<2)|0;k[jb+(e<<2)>>2]=gb;k[x+(e<<2)>>2]=gb+8192+(cb<<2);e=e+1|0}while((e|0)<(ib|0));ab=a+92+((ha(d,ib)|0)<<2)|0;v=ab+(ib*24<<2)|0;i=l<<1;i=v+(i<<2)+(i<<2)+(i<<2)|0;fb=a+52|0;gb=k[fb>>2]|0;w=k[a+20>>2]|0;if(!((gb|0)>4|(w|0)!=0)?(k[a+56>>2]|0)==0:0){$a=(gb|0)==0;if($a){vd(jb,g,2048,ib);xd(g+1440|0,g,1328,620,bb);_a=720-(k[bb>>2]|0)|0;k[a+48>>2]=_a;Za=1.0}else{Za=.800000011920929;_a=k[a+48>>2]|0}Va=Pa()|0;Wa=r;r=r+((1*(hb<<2)|0)+15&-16)|0;Ya=h+96|0;Ea=k[y+60>>2]|0;Fa=(hb|0)==0;Ga=(hb|0)>0;Ha=_a<<1;Ha=(Ha|0)<1024?Ha:1024;Ia=h+4192+(0-Ha<<2)|0;Ja=Ha>>1;Ka=(Ha|0)>0;La=2048-b|0;Ma=La<<2;Na=1024-_a|0;Oa=hb+b|0;Qa=(Oa|0)>0;Ra=La+-1|0;Sa=(b|0)>0;Ta=a+60|0;Ua=a+68|0;xa=a+76|0;ya=(hb|0)/2|0;za=(hb|0)>1;Aa=hb+-1|0;Ba=1024-b+Na|0;Ca=1024-Ja|0;Da=1024-Ha|0;wa=h+(Da<<2)|0;q=2024-Ha|0;s=Oa<<2;t=La+-2|0;u=eb+4|0;v=La+-3|0;w=eb+8|0;c=La+-4|0;x=eb+12|0;y=La+-5|0;a=eb+16|0;F=La+-6|0;G=eb+20|0;H=La+-7|0;I=eb+24|0;J=La+-8|0;K=eb+28|0;L=La+-9|0;M=eb+32|0;N=La+-10|0;O=eb+36|0;P=La+-11|0;Q=eb+40|0;R=La+-12|0;S=eb+44|0;T=La+-13|0;U=eb+48|0;V=La+-14|0;W=eb+52|0;Y=La+-15|0;Z=eb+56|0;_=La+-16|0;$=eb+60|0;aa=La+-17|0;ba=eb+64|0;ca=La+-18|0;da=eb+68|0;ea=La+-19|0;fa=eb+72|0;ga=La+-20|0;ia=eb+76|0;ja=La+-21|0;ka=eb+80|0;la=La+-22|0;ma=eb+84|0;na=La+-23|0;oa=eb+88|0;pa=La+-24|0;qa=eb+92|0;ra=Ha+-3|0;sa=(Ha|0)>3;ta=Ha&-4;va=0;do{ua=k[jb+(va<<2)>>2]|0;wf(Ya|0,ua+4096|0,4096)|0;a:do if($a){h=Pa()|0;if(!Fa){wf(bb|0,Ya|0,4096)|0;if(Ga){d=0;do{E=+o[Ea+(d<<2)>>2];o[bb+(d<<2)>>2]=+o[Ya+(d<<2)>>2]*E;p=1024-d+-1|0;o[bb+(p<<2)>>2]=E*+o[Ya+(p<<2)>>2];d=d+1|0}while((d|0)!=(hb|0));g=bb}else g=bb}else g=Ya;wd(g,g,db,1e3,25);e=0;do{d=e+1e3|0;if((d|0)<1024){f=0.0;do{f=f+ +o[g+(d<<2)>>2]*+o[g+(d-e<<2)>>2];d=d+1|0}while((d|0)!=1024)}else f=0.0;p=db+(e<<2)|0;o[p>>2]=f+ +o[p>>2];e=e+1|0}while((e|0)!=25);Xa(h|0);o[db>>2]=+o[db>>2]*1.000100016593933;d=1;do{p=db+(d<<2)|0;E=+o[p>>2];D=+(d|0);o[p>>2]=E-D*(D*(E*6.400000711437315e-05));d=d+1|0}while((d|0)!=25);i=ab+(va*24<<2)|0;f=+o[db>>2];e=i;g=e+96|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));if(f!=0.0){B=f*1.0000000474974513e-03;h=0;while(1){if((h|0)>=24){p=i;break a}if((h|0)>0){d=0;z=0.0;do{z=z+ +o[i+(d<<2)>>2]*+o[db+(h-d<<2)>>2];d=d+1|0}while((d|0)!=(h|0))}else z=0.0;d=h;h=h+1|0;z=(z+ +o[db+(h<<2)>>2])/f;A=-z;o[i+(d<<2)>>2]=A;g=h>>1;if((g|0)>0){d=d+-1|0;e=0;do{n=i+(e<<2)|0;E=+o[n>>2];p=i+(d-e<<2)|0;D=+o[p>>2];o[n>>2]=E+D*A;o[p>>2]=D+E*A;e=e+1|0}while((e|0)!=(g|0))}f=f-f*(z*z);if(f<B){p=i;break}}}else p=i}else p=ab+(va*24<<2)|0;while(0);e=wa;d=ua+(q<<2)|0;g=e+96|0;do{k[e>>2]=k[d>>2];e=e+4|0;d=d+4|0}while((e|0)<(g|0));d=0;do{k[bb+(d<<2)>>2]=k[p+(23-d<<2)>>2];d=d+1|0}while((d|0)!=24);if(sa){m=0;do{g=Ia+(m<<2)|0;h=Ia+((m|1)<<2)|0;i=Ia+((m|2)<<2)|0;l=Ia+((m|3)<<2)|0;lb=g+-96|0;d=lb+12|0;e=bb;f=+o[g>>2];z=+o[h>>2];A=+o[i>>2];B=+o[l>>2];n=0;C=+o[lb>>2];D=+o[lb+4>>2];E=+o[lb+8>>2];while(1){nb=+o[e>>2];mb=+o[d>>2];ob=+o[e+4>>2];tb=C;C=+o[d+4>>2];pb=+o[e+8>>2];sb=D;D=+o[d+8>>2];qb=+o[e+12>>2];rb=E;E=+o[d+12>>2];f=mb*qb+(rb*pb+(sb*ob+(tb*nb+f)));z=C*qb+(mb*pb+(rb*ob+(sb*nb+z)));A=D*qb+(C*pb+(mb*ob+(rb*nb+A)));B=qb*E+(pb*D+(ob*C+(nb*mb+B)));n=n+4|0;if((n|0)>=21)break;else{d=d+16|0;e=e+16|0}}o[g>>2]=f;o[h>>2]=z;o[i>>2]=A;o[l>>2]=B;m=m+4|0}while((m|0)<(ra|0));d=ta}else d=0;if((d|0)<(Ha|0))do{e=Ia+(d<<2)|0;g=d+-24|0;h=0;f=+o[e>>2];do{f=f+ +o[bb+(h<<2)>>2]*+o[Ia+(g+h<<2)>>2];h=h+1|0}while((h|0)!=24);o[e>>2]=f;d=d+1|0}while((d|0)!=(Ha|0));if(Ka){z=1.0;f=1.0;d=0;do{tb=+o[Ya+(Ca+d<<2)>>2];z=z+tb*tb;tb=+o[Ya+(Da+d<<2)>>2];f=f+tb*tb;d=d+1|0}while((d|0)<(Ja|0))}else{z=1.0;f=1.0}A=+X(+((z<f?z:f)/f));xf(ua|0,ua+(b<<2)|0,Ma|0)|0;if(Qa){f=0.0;z=Za*A;e=0;d=0;while(1){lb=(d|0)<(_a|0);z=lb?z:A*z;d=d-(lb?0:_a)|0;o[ua+(e+La<<2)>>2]=z*+o[Ya+(d+Na<<2)>>2];tb=+o[ua+(Ba+d<<2)>>2];f=f+tb*tb;e=e+1|0;if((e|0)==(Oa|0)){z=f;break}else d=d+1|0}}else z=0.0;k[eb>>2]=k[ua+(Ra<<2)>>2];k[u>>2]=k[ua+(t<<2)>>2];k[w>>2]=k[ua+(v<<2)>>2];k[x>>2]=k[ua+(c<<2)>>2];k[a>>2]=k[ua+(y<<2)>>2];k[G>>2]=k[ua+(F<<2)>>2];k[I>>2]=k[ua+(H<<2)>>2];k[K>>2]=k[ua+(J<<2)>>2];k[M>>2]=k[ua+(L<<2)>>2];k[O>>2]=k[ua+(N<<2)>>2];k[Q>>2]=k[ua+(P<<2)>>2];k[S>>2]=k[ua+(R<<2)>>2];k[U>>2]=k[ua+(T<<2)>>2];k[W>>2]=k[ua+(V<<2)>>2];k[Z>>2]=k[ua+(Y<<2)>>2];k[$>>2]=k[ua+(_<<2)>>2];k[ba>>2]=k[ua+(aa<<2)>>2];k[da>>2]=k[ua+(ca<<2)>>2];k[fa>>2]=k[ua+(ea<<2)>>2];k[ia>>2]=k[ua+(ga<<2)>>2];k[ka>>2]=k[ua+(ja<<2)>>2];k[ma>>2]=k[ua+(la<<2)>>2];k[oa>>2]=k[ua+(na<<2)>>2];k[qa>>2]=k[ua+(pa<<2)>>2];e=ua+8192|0;lb=e+(cb<<2)|0;yd(lb,p,lb,Oa,eb);if(Qa){f=0.0;d=0;do{tb=+o[ua+(d+La<<2)>>2];f=f+tb*tb;d=d+1|0}while((d|0)!=(Oa|0))}else f=0.0;if(z>f*.20000000298023224){if(z<f){z=+X(+((z+1.0)/(f+1.0)));if(Ga){f=1.0-z;d=0;do{lb=ua+(d+La<<2)|0;o[lb>>2]=+o[lb>>2]*(1.0-f*+o[Ea+(d<<2)>>2]);d=d+1|0}while((d|0)!=(hb|0))}if(Sa){d=hb;do{lb=ua+(d+La<<2)|0;o[lb>>2]=z*+o[lb>>2];d=d+1|0}while((d|0)<(Oa|0))}}}else if(Qa)rf(ua+(La<<2)|0,0,s|0)|0;p=k[Ta>>2]|0;tb=-+o[Ua>>2];lb=k[xa>>2]|0;Pc(Wa,e,p,p,hb,tb,tb,lb,lb,0,0);if(za){e=0;g=0;while(1){d=Aa+e|0;o[ua+(g+2048<<2)>>2]=+o[Ea+(g<<2)>>2]*+o[Wa+(d<<2)>>2]+ +o[Ea+(d<<2)>>2]*+o[Wa+(g<<2)>>2];d=g+1|0;if((d|0)<(ya|0)){e=~g;g=d}else break}}va=va+1|0}while((va|0)<(ib|0));Xa(Va|0);lb=gb+1|0;k[fb>>2]=lb;r=kb;return}d=k[a+24>>2]|0;q=k[y+12>>2]|0;q=(d|0)<(q|0)?d:q;q=(w|0)>(q|0)?w:q;lb=ha(ib,b)|0;s=Pa()|0;t=r;r=r+((1*(lb<<2)|0)+15&-16)|0;f=(gb|0)==0?1.5:.5;if((w|0)<(d|0)){g=0;do{e=ha(g,l)|0;h=w;do{lb=h+e|0;sb=+o[i+(lb<<2)>>2];lb=v+(lb<<2)|0;tb=+o[lb>>2]-f;o[lb>>2]=sb>tb?sb:tb;h=h+1|0}while((h|0)!=(d|0));g=g+1|0}while((g|0)<(ib|0))}p=a+40|0;d=k[p>>2]|0;if((ib|0)>0&(w|0)<(q|0)){n=0;do{l=ha(n,b)|0;m=w;do{i=j[u+(m<<1)>>1]|0;e=(i<<c)+l|0;m=m+1|0;i=(j[u+(m<<1)>>1]|0)-i<<c;if((i|0)>0){g=0;do{d=(ha(d,1664525)|0)+1013904223|0;o[t+(g+e<<2)>>2]=+(d>>20|0);g=g+1|0}while((g|0)!=(i|0));h=t+(e<<2)|0;e=0;f=0.0;do{tb=+o[h+(e<<2)>>2];f=f+tb*tb;e=e+1|0}while((e|0)!=(i|0));f=1.0/+X(+(f+1.0000000036274937e-15));g=0;e=h;while(1){o[e>>2]=f*+o[e>>2];g=g+1|0;if((g|0)==(i|0))break;else e=e+4|0}}}while((m|0)<(q|0));n=n+1|0}while((n|0)!=(ib|0))}k[p>>2]=d;d=2048-b+(hb>>>1)<<2;e=0;do{lb=k[jb+(e<<2)>>2]|0;xf(lb|0,lb+(b<<2)|0,d|0)|0;e=e+1|0}while((e|0)<(ib|0));kd(y,t,x,v,w,q,ib,ib,0,c,k[a+16>>2]|0,0);Xa(s|0);lb=gb+1|0;k[fb>>2]=lb;r=kb;return}function kd(a,b,c,d,e,f,g,h,i,j,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;l=l|0;m=m|0;var n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=r;y=k[a+4>>2]|0;q=k[a+8>>2]|0;s=a+44|0;n=k[s>>2]|0;u=n<<j;z=r;r=r+((1*(u<<2)|0)+15&-16)|0;t=1<<j;v=(i|0)==0;x=(k[a+36>>2]|0)-(v?j:0)|0;w=v?u:n;v=v?1:t;if((g|0)==1&(h|0)==2){ae(k[a+32>>2]|0,n,b,z,d,e,f,t,l,m);p=c+4|0;i=(k[p>>2]|0)+(((y|0)/2|0)<<2)|0;wf(i|0,z|0,u<<2|0)|0;if((v|0)<=0){r=A;return}g=a+64|0;n=a+60|0;j=0;do{u=(k[c>>2]|0)+((ha(j,w)|0)<<2)|0;ud(g,i+(j<<2)|0,u,k[n>>2]|0,y,x,v);j=j+1|0}while((j|0)!=(v|0));j=0;do{c=(k[p>>2]|0)+((ha(j,w)|0)<<2)|0;ud(g,z+(j<<2)|0,c,k[n>>2]|0,y,x,v);j=j+1|0}while((j|0)!=(v|0));r=A;return}if((g|0)==2&(h|0)==1){i=(k[c>>2]|0)+(((y|0)/2|0)<<2)|0;h=a+32|0;ae(k[h>>2]|0,n,b,z,d,e,f,t,l,m);ae(k[h>>2]|0,k[s>>2]|0,b+(u<<2)|0,i,d+(q<<2)|0,e,f,t,l,m);if((u|0)>0){j=0;do{e=z+(j<<2)|0;o[e>>2]=+o[e>>2]*.5+ +o[i+(j<<2)>>2]*.5;j=j+1|0}while((j|0)!=(u|0))}if((v|0)<=0){r=A;return}i=a+64|0;j=a+60|0;n=0;do{u=(k[c>>2]|0)+((ha(n,w)|0)<<2)|0;ud(i,z+(n<<2)|0,u,k[j>>2]|0,y,x,v);n=n+1|0}while((n|0)!=(v|0));r=A;return}g=a+64|0;p=a+60|0;a=a+32|0;if((v|0)>0)j=0;else{j=0;while(1){c=b+((ha(j,u)|0)<<2)|0;y=d+((ha(j,q)|0)<<2)|0;ae(k[a>>2]|0,n,c,z,y,e,f,t,l,m);j=j+1|0;if((j|0)>=(h|0))break;n=k[s>>2]|0}r=A;return}while(1){B=b+((ha(j,u)|0)<<2)|0;i=d+((ha(j,q)|0)<<2)|0;ae(k[a>>2]|0,n,B,z,i,e,f,t,l,m);n=c+(j<<2)|0;i=0;do{B=(k[n>>2]|0)+((ha(i,w)|0)<<2)|0;ud(g,z+(i<<2)|0,B,k[p>>2]|0,y,x,v);i=i+1|0}while((i|0)!=(v|0));j=j+1|0;if((j|0)>=(h|0))break;n=k[s>>2]|0}r=A;return}function ld(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;var h=0.0,i=0.0,j=0,l=0.0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0;w=r;if(!((d|0)!=2|(e|0)!=1)){l=+o[f>>2];m=k[a>>2]|0;f=k[a+4>>2]|0;i=+o[g>>2];n=g+4|0;h=+o[n>>2];if((c|0)>0){j=0;do{y=i+(+o[m+(j<<2)>>2]+1.0000000031710769e-30);x=h+(+o[f+(j<<2)>>2]+1.0000000031710769e-30);i=l*y;h=l*x;a=j<<1;o[b+(a<<2)>>2]=y*.000030517578125;o[b+((a|1)<<2)>>2]=x*.000030517578125;j=j+1|0}while((j|0)!=(c|0))}o[g>>2]=i;o[n>>2]=h;r=w;return}v=Pa()|0;t=r;r=r+((1*(c<<2)|0)+15&-16)|0;i=+o[f>>2];n=(c|0)/(e|0)|0;p=(n|0)>0;u=(c|0)>0;if((e|0)>1){s=0;do{m=g+(s<<2)|0;h=+o[m>>2];f=k[a+(s<<2)>>2]|0;q=b+(s<<2)|0;if(u){j=0;do{y=h+(+o[f+(j<<2)>>2]+1.0000000031710769e-30);h=i*y;o[t+(j<<2)>>2]=y;j=j+1|0}while((j|0)!=(c|0))}o[m>>2]=h;if(p){f=0;do{j=t+((ha(f,e)|0)<<2)|0;m=q+((ha(f,d)|0)<<2)|0;o[m>>2]=+o[j>>2]*.000030517578125;f=f+1|0}while((f|0)!=(n|0))}s=s+1|0}while((s|0)<(d|0))}else{p=0;do{n=g+(p<<2)|0;h=+o[n>>2];f=k[a+(p<<2)>>2]|0;j=b+(p<<2)|0;if(u){m=0;do{y=h+(+o[f+(m<<2)>>2]+1.0000000031710769e-30);h=i*y;e=j+((ha(m,d)|0)<<2)|0;o[e>>2]=y*.000030517578125;m=m+1|0}while((m|0)!=(c|0))}o[n>>2]=h;p=p+1|0}while((p|0)<(d|0))}Xa(v|0);r=w;return}function md(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=b+-1|0;c=32-(ja(s|0)|0)|0;if((c|0)<=8){o=a+28|0;q=k[o>>2]|0;r=(q>>>0)/(b>>>0)|0;k[a+36>>2]=r;p=a+32|0;e=k[p>>2]|0;n=((e>>>0)/(r>>>0)|0)+1|0;n=n>>>0>b>>>0?b:n;c=b-n|0;s=ha(s-c|0,r)|0;e=e-s|0;k[p>>2]=e;b=(n|0)==(b|0)?q-s|0:r;k[o>>2]=b;if(b>>>0>=8388609){a=c;return a|0}i=a+20|0;j=a+40|0;m=a+24|0;h=k[a+4>>2]|0;n=k[i>>2]|0;d=k[m>>2]|0;g=k[j>>2]|0;while(1){n=n+8|0;k[i>>2]=n;b=b<<8;k[o>>2]=b;if(d>>>0<h>>>0){s=d+1|0;k[m>>2]=s;f=l[(k[a>>2]|0)+d>>0]|0;d=s}else f=0;k[j>>2]=f;e=((f|g<<8)>>>1&255|e<<8&2147483392)^255;k[p>>2]=e;if(b>>>0>=8388609)break;else g=f}return c|0}r=c+-8|0;p=s>>>r;m=p+1|0;q=a+28|0;o=k[q>>2]|0;c=(o>>>0)/(m>>>0)|0;k[a+36>>2]=c;i=a+32|0;b=k[i>>2]|0;n=((b>>>0)/(c>>>0)|0)+1|0;n=n>>>0>m>>>0?m:n;j=m-n|0;p=ha(p-j|0,c)|0;b=b-p|0;k[i>>2]=b;c=(m|0)==(n|0)?o-p|0:c;k[q>>2]=c;if(c>>>0<8388609){m=a+20|0;n=a+40|0;o=a+24|0;h=k[a+4>>2]|0;p=k[m>>2]|0;f=k[o>>2]|0;g=k[n>>2]|0;while(1){p=p+8|0;k[m>>2]=p;c=c<<8;k[q>>2]=c;if(f>>>0<h>>>0){d=f+1|0;k[o>>2]=d;e=l[(k[a>>2]|0)+f>>0]|0}else{d=f;e=0}k[n>>2]=e;b=((e|g<<8)>>>1&255|b<<8&2147483392)^255;k[i>>2]=b;if(c>>>0>=8388609)break;else{f=d;g=e}}}m=j<<r;n=a+12|0;c=k[n>>2]|0;o=a+16|0;b=k[o>>2]|0;if(b>>>0<r>>>0){g=a+8|0;h=b+8|0;i=(h|0)>25;j=~b;f=k[a+4>>2]|0;d=k[g>>2]|0;do{if(d>>>0<f>>>0){e=d+1|0;k[g>>2]=e;d=e;e=l[(k[a>>2]|0)+(f-e)>>0]|0}else e=0;c=e<<b|c;b=b+8|0}while((b|0)<25);b=h+((i?h:25)+j&-8)|0}k[n>>2]=c>>>r;k[o>>2]=b-r;q=a+20|0;k[q>>2]=(k[q>>2]|0)+r;c=c&(1<<r)+-1|m;if(c>>>0<=s>>>0){a=c;return a|0}k[a+44>>2]=1;a=s;return a|0}function nd(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,j=0,l=0,m=0,n=0,o=0,p=0;p=a+28|0;e=k[p>>2]|0;f=(e>>>0)/(d>>>0)|0;if(!b)e=e-(ha(f,d-c|0)|0)|0;else{o=e-(ha(f,d-b|0)|0)|0;e=a+32|0;k[e>>2]=o+(k[e>>2]|0);e=ha(f,c-b|0)|0}k[p>>2]=e;if(e>>>0>=8388609)return;d=a+32|0;g=a+20|0;h=a+36|0;j=a+40|0;l=a+24|0;m=a+8|0;n=a+4|0;o=a+44|0;f=k[d>>2]|0;do{b=f>>>23;if((b|0)==255)k[h>>2]=(k[h>>2]|0)+1;else{c=f>>>31;e=k[j>>2]|0;if((e|0)>-1){f=k[l>>2]|0;if(((k[m>>2]|0)+f|0)>>>0<(k[n>>2]|0)>>>0){k[l>>2]=f+1;i[(k[a>>2]|0)+f>>0]=e+c;e=0}else e=-1;k[o>>2]=k[o>>2]|e}e=k[h>>2]|0;if(e|0){c=c+255&255;do{f=k[l>>2]|0;if(((k[m>>2]|0)+f|0)>>>0<(k[n>>2]|0)>>>0){k[l>>2]=f+1;i[(k[a>>2]|0)+f>>0]=c;f=0;e=k[h>>2]|0}else f=-1;k[o>>2]=k[o>>2]|f;e=e+-1|0;k[h>>2]=e}while((e|0)!=0)}k[j>>2]=b&255;f=k[d>>2]|0;e=k[p>>2]|0}f=f<<8&2147483392;k[d>>2]=f;e=e<<8;k[p>>2]=e;k[g>>2]=(k[g>>2]|0)+8}while(e>>>0<8388609);return}function od(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=a+28|0;e=k[o>>2]|0;p=a+32|0;d=e>>>c;e=e-d|0;c=(b|0)!=0;if(c)k[p>>2]=(k[p>>2]|0)+e;c=c?d:e;k[o>>2]=c;if(c>>>0>=8388609)return;f=a+20|0;g=a+36|0;h=a+40|0;j=a+24|0;l=a+8|0;m=a+4|0;n=a+44|0;d=k[p>>2]|0;do{b=d>>>23;if((b|0)==255)k[g>>2]=(k[g>>2]|0)+1;else{e=d>>>31;c=k[h>>2]|0;if((c|0)>-1){d=k[j>>2]|0;if(((k[l>>2]|0)+d|0)>>>0<(k[m>>2]|0)>>>0){k[j>>2]=d+1;i[(k[a>>2]|0)+d>>0]=c+e;c=0}else c=-1;k[n>>2]=k[n>>2]|c}c=k[g>>2]|0;if(c|0){e=e+255&255;do{d=k[j>>2]|0;if(((k[l>>2]|0)+d|0)>>>0<(k[m>>2]|0)>>>0){k[j>>2]=d+1;i[(k[a>>2]|0)+d>>0]=e;d=0;c=k[g>>2]|0}else d=-1;k[n>>2]=k[n>>2]|d;c=c+-1|0;k[g>>2]=c}while((c|0)!=0)}k[h>>2]=b&255;d=k[p>>2]|0;c=k[o>>2]|0}d=d<<8&2147483392;k[p>>2]=d;c=c<<8;k[o>>2]=c;k[f>>2]=(k[f>>2]|0)+8}while(c>>>0<8388609);return}function pd(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,j=0,m=0,n=0,o=0,p=0,q=0;q=a+28|0;e=k[q>>2]|0;d=e>>>d;if((b|0)>0){p=c+(b+-1)|0;n=ha(l[p>>0]|0,d)|0;o=a+32|0;k[o>>2]=(k[o>>2]|0)+e-n;d=ha((l[p>>0]|0)-(l[c+b>>0]|0)|0,d)|0}else d=e-(ha(l[c+b>>0]|0,d)|0)|0;k[q>>2]=d;if(d>>>0>=8388609)return;f=a+32|0;g=a+20|0;h=a+36|0;j=a+40|0;m=a+24|0;n=a+8|0;o=a+4|0;p=a+44|0;e=k[f>>2]|0;do{b=e>>>23;if((b|0)==255)k[h>>2]=(k[h>>2]|0)+1;else{c=e>>>31;d=k[j>>2]|0;if((d|0)>-1){e=k[m>>2]|0;if(((k[n>>2]|0)+e|0)>>>0<(k[o>>2]|0)>>>0){k[m>>2]=e+1;i[(k[a>>2]|0)+e>>0]=d+c;d=0}else d=-1;k[p>>2]=k[p>>2]|d}d=k[h>>2]|0;if(d|0){c=c+255&255;do{e=k[m>>2]|0;if(((k[n>>2]|0)+e|0)>>>0<(k[o>>2]|0)>>>0){k[m>>2]=e+1;i[(k[a>>2]|0)+e>>0]=c;e=0;d=k[h>>2]|0}else e=-1;k[p>>2]=k[p>>2]|e;d=d+-1|0;k[h>>2]=d}while((d|0)!=0)}k[j>>2]=b&255;e=k[f>>2]|0;d=k[q>>2]|0}e=e<<8&2147483392;k[f>>2]=e;d=d<<8;k[q>>2]=d;k[g>>2]=(k[g>>2]|0)+8}while(d>>>0<8388609);return}function qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;e=c+-1|0;d=32-(ja(e|0)|0)|0;if((d|0)<=8){nd(a,b,b+1|0,c);return}q=d+-8|0;n=b>>>q;nd(a,n,n+1|0,(e>>>q)+1|0);n=(1<<q)+-1&b;o=a+12|0;d=k[o>>2]|0;p=a+16|0;c=k[p>>2]|0;if((c+q|0)>>>0>32){f=a+24|0;g=a+8|0;h=a+4|0;j=a+44|0;l=7-c|0;l=(l|0)>-8?l:-8;m=c;do{e=k[g>>2]|0;b=k[h>>2]|0;if((e+(k[f>>2]|0)|0)>>>0<b>>>0){e=e+1|0;k[g>>2]=e;i[(k[a>>2]|0)+(b-e)>>0]=d;e=0}else e=-1;k[j>>2]=k[j>>2]|e;d=d>>>8;m=m+-8|0}while((m|0)>7);c=c+-8-(l+c&-8)|0}k[o>>2]=n<<c|d;k[p>>2]=c+q;a=a+20|0;k[a>>2]=(k[a>>2]|0)+q;return}function rd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=k[a+28>>2]|0;e=ja(r|0)|0;b=2147483647>>>e;c=k[a+32>>2]|0;d=b+c&~b;if((d|b)>>>0<(c+r|0)>>>0)if(!e){m=a+40|0;n=0}else s=5;else{d=b>>>1;d=d+c&~d;e=e+1|0;s=5}if((s|0)==5){j=a+36|0;m=a+40|0;n=a+24|0;o=a+8|0;p=a+4|0;q=a+44|0;r=e+~((e|0)<8?e:8)+8|0;h=e;while(1){g=d>>>23;if((g|0)==255)k[j>>2]=(k[j>>2]|0)+1;else{f=d>>>31;b=k[m>>2]|0;if((b|0)>-1){c=k[n>>2]|0;if(((k[o>>2]|0)+c|0)>>>0<(k[p>>2]|0)>>>0){k[n>>2]=c+1;i[(k[a>>2]|0)+c>>0]=b+f;b=0}else b=-1;k[q>>2]=k[q>>2]|b}b=k[j>>2]|0;if(b|0){f=f+255&255;do{c=k[n>>2]|0;if(((k[o>>2]|0)+c|0)>>>0<(k[p>>2]|0)>>>0){k[n>>2]=c+1;i[(k[a>>2]|0)+c>>0]=f;c=0;b=k[j>>2]|0}else c=-1;k[q>>2]=k[q>>2]|c;b=b+-1|0;k[j>>2]=b}while((b|0)!=0)}k[m>>2]=g&255}if((h|0)>8){d=d<<8&2147483392;h=h+-8|0}else break}n=e+-8-(r&-8)|0}c=k[m>>2]|0;if((c|0)>-1){g=a+24|0;b=k[g>>2]|0;d=a+8|0;f=a+4|0;if(((k[d>>2]|0)+b|0)>>>0<(k[f>>2]|0)>>>0){k[g>>2]=b+1;i[(k[a>>2]|0)+b>>0]=c;b=0}else b=-1;e=a+44|0;k[e>>2]=k[e>>2]|b;b=a+36|0;c=k[b>>2]|0;if(!c)s=30;else{h=d;s=26}}else{b=a+36|0;c=k[b>>2]|0;if(c|0){h=a+8|0;f=a+4|0;e=a+44|0;g=a+24|0;s=26}}if((s|0)==26){do{d=k[g>>2]|0;if(((k[h>>2]|0)+d|0)>>>0<(k[f>>2]|0)>>>0){k[g>>2]=d+1;i[(k[a>>2]|0)+d>>0]=-1;d=0;c=k[b>>2]|0}else d=-1;k[e>>2]=k[e>>2]|d;c=c+-1|0;k[b>>2]=c}while((c|0)!=0);s=30}if((s|0)==30)k[m>>2]=0;b=k[a+12>>2]|0;m=k[a+16>>2]|0;if((m|0)>7){e=a+24|0;f=a+8|0;g=a+4|0;h=a+44|0;j=m;do{c=k[f>>2]|0;d=k[g>>2]|0;if((c+(k[e>>2]|0)|0)>>>0<d>>>0){c=c+1|0;k[f>>2]=c;i[(k[a>>2]|0)+(d-c)>>0]=b;c=0}else c=-1;c=k[h>>2]|c;k[h>>2]=c;b=b>>>8;j=j+-8|0}while((j|0)>7);g=m&7}else{c=a+44|0;h=c;c=k[c>>2]|0;g=m}if(c|0)return;e=a+24|0;s=k[e>>2]|0;d=a+4|0;c=a+8|0;rf((k[a>>2]|0)+s|0,0,(k[d>>2]|0)-s-(k[c>>2]|0)|0)|0;if((g|0)<=0)return;f=k[c>>2]|0;d=k[d>>2]|0;if(f>>>0>=d>>>0){k[h>>2]=-1;return}c=0-n|0;if((g|0)>(c|0)?((k[e>>2]|0)+f|0)>>>0>=d>>>0:0){k[h>>2]=-1;b=b&(1<<c)+-1}a=(k[a>>2]|0)+(d+-1-f)|0;i[a>>0]=l[a>>0]|0|b;return}function sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,p=0,q=0.0,s=0.0,t=0.0,u=0.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.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0,_=0,$=0;H=r;r=r+32|0;G=H;c=k[a+8>>2]|0;k[G>>2]=1;d=1;e=0;while(1){f=e<<1;D=j[a+12+((f|1)<<1)>>1]|0;d=ha(d,j[a+12+(f<<1)>>1]|0)|0;f=e+1|0;k[G+(f<<2)>>2]=d;if(D<<16>>16==1)break;else e=f}C=(c|0)>0?c:0;if((e|0)<=-1){r=H;return}D=a+48|0;A=j[a+12+((f<<1)+-1<<1)>>1]|0;while(1){if(!e){c=0;B=1}else{B=e<<1;c=B;B=j[a+12+(B+-1<<1)>>1]|0}a:do switch(j[a+12+(c<<1)>>1]|0){case 2:{d=k[G+(e<<2)>>2]|0;if((d|0)>0){c=b;f=0;while(1){z=c+32|0;u=+o[z>>2];A=c+36|0;t=+o[A>>2];s=+o[c>>2];o[z>>2]=s-u;z=c+4|0;q=+o[z>>2];o[A>>2]=q-t;o[c>>2]=u+s;o[z>>2]=t+q;z=c+40|0;q=+o[z>>2];A=c+44|0;t=+o[A>>2];s=(q+t)*.7071067690849304;q=(t-q)*.7071067690849304;y=c+8|0;t=+o[y>>2];o[z>>2]=t-s;z=c+12|0;u=+o[z>>2];o[A>>2]=u-q;o[y>>2]=t+s;o[z>>2]=q+u;z=c+52|0;u=+o[z>>2];y=c+48|0;q=+o[y>>2];A=c+16|0;s=+o[A>>2];o[y>>2]=s-u;y=c+20|0;t=+o[y>>2];o[z>>2]=q+t;o[A>>2]=u+s;o[y>>2]=t-q;y=c+60|0;q=+o[y>>2];A=c+56|0;t=+o[A>>2];s=(q-t)*.7071067690849304;t=(q+t)*-.7071067690849304;z=c+24|0;q=+o[z>>2];o[A>>2]=q-s;A=c+28|0;u=+o[A>>2];o[y>>2]=u-t;o[z>>2]=q+s;o[A>>2]=t+u;f=f+1|0;if((f|0)==(d|0))break;else c=c+64|0}}break}case 4:{p=k[G+(e<<2)>>2]|0;g=p<<C;if((A|0)==1){if((p|0)>0){c=b;d=0}else break a;while(1){u=+o[c>>2];n=c+16|0;N=+o[n>>2];q=u-N;w=c+4|0;J=+o[w>>2];v=c+20|0;L=+o[v>>2];t=J-L;N=u+N;L=J+L;x=c+8|0;J=+o[x>>2];z=c+24|0;u=+o[z>>2];M=J+u;y=c+12|0;I=+o[y>>2];A=c+28|0;s=+o[A>>2];K=I+s;o[n>>2]=N-M;o[v>>2]=L-K;o[c>>2]=N+M;o[w>>2]=L+K;u=J-u;s=I-s;o[x>>2]=q+s;o[y>>2]=t-u;o[z>>2]=q-s;o[A>>2]=t+u;d=d+1|0;if((d|0)==(p|0))break a;else c=c+32|0}}d=A<<1;f=A*3|0;if((p|0)>0?(E=g<<1,F=g*3|0,(A|0)>0):0){h=0;do{c=b+((ha(h,B)|0)<<3)|0;n=k[D>>2]|0;i=0;l=n;m=n;while(1){w=c+(A<<3)|0;t=+o[w>>2];u=+o[l>>2];x=c+(A<<3)+4|0;K=+o[x>>2];s=+o[l+4>>2];q=t*u-K*s;s=u*K+t*s;P=c+(d<<3)|0;t=+o[P>>2];K=+o[m>>2];O=c+(d<<3)+4|0;u=+o[O>>2];I=+o[m+4>>2];J=t*K-u*I;I=K*u+t*I;y=c+(f<<3)|0;t=+o[y>>2];u=+o[n>>2];z=c+(f<<3)+4|0;K=+o[z>>2];L=+o[n+4>>2];N=t*u-K*L;L=u*K+t*L;t=+o[c>>2];K=t-J;v=c+4|0;u=+o[v>>2];M=u-I;t=J+t;o[c>>2]=t;u=I+u;o[v>>2]=u;I=q+N;J=s+L;N=q-N;L=s-L;o[P>>2]=t-I;o[O>>2]=u-J;o[c>>2]=I+ +o[c>>2];o[v>>2]=J+ +o[v>>2];o[w>>2]=K+L;o[x>>2]=M-N;o[y>>2]=K-L;o[z>>2]=M+N;i=i+1|0;if((i|0)==(A|0))break;else{c=c+8|0;l=l+(g<<3)|0;m=m+(E<<3)|0;n=n+(F<<3)|0}}h=h+1|0}while((h|0)!=(p|0))}break}case 3:{i=k[G+(e<<2)>>2]|0;l=i<<C;m=A<<1;P=ha(l,A)|0;c=k[D>>2]|0;q=+o[c+(P<<3)+4>>2];if((i|0)>0){n=l<<1;d=0;while(1){f=b+((ha(d,B)|0)<<3)|0;g=A;h=c;while(1){O=f+(A<<3)|0;K=+o[O>>2];L=+o[h>>2];P=f+(A<<3)+4|0;u=+o[P>>2];J=+o[h+4>>2];I=K*L-u*J;J=L*u+K*J;y=f+(m<<3)|0;K=+o[y>>2];u=+o[c>>2];z=f+(m<<3)+4|0;L=+o[z>>2];M=+o[c+4>>2];N=K*u-L*M;M=u*L+K*M;K=I+N;L=J+M;o[O>>2]=+o[f>>2]-K*.5;x=f+4|0;o[P>>2]=+o[x>>2]-L*.5;N=q*(I-N);M=q*(J-M);o[f>>2]=K+ +o[f>>2];o[x>>2]=L+ +o[x>>2];o[y>>2]=M+ +o[O>>2];o[z>>2]=+o[P>>2]-N;o[O>>2]=+o[O>>2]-M;o[P>>2]=N+ +o[P>>2];g=g+-1|0;if(!g)break;else{f=f+8|0;h=h+(l<<3)|0;c=c+(n<<3)|0}}d=d+1|0;if((d|0)==(i|0))break a;c=k[D>>2]|0}}break}case 5:{f=k[G+(e<<2)>>2]|0;g=f<<C;z=k[D>>2]|0;P=ha(g,A)|0;q=+o[z+(P<<3)>>2];s=+o[z+(P<<3)+4>>2];P=ha(g<<1,A)|0;t=+o[z+(P<<3)>>2];u=+o[z+(P<<3)+4>>2];if((f|0)>0){h=A<<1;i=A*3|0;l=A<<2;m=(A|0)>0;n=g*3|0;y=0;do{c=b+((ha(y,B)|0)<<3)|0;if(m){p=c;v=c+(A<<3)|0;w=c+(h<<3)|0;x=c+(i<<3)|0;c=c+(l<<3)|0;d=0;while(1){T=+o[p>>2];_=p+4|0;R=+o[_>>2];K=+o[v>>2];$=ha(d,g)|0;M=+o[z+($<<3)>>2];Z=v+4|0;Y=+o[Z>>2];S=+o[z+($<<3)+4>>2];Q=K*M-Y*S;S=M*Y+K*S;K=+o[w>>2];$=ha(d<<1,g)|0;Y=+o[z+($<<3)>>2];O=w+4|0;M=+o[O>>2];X=+o[z+($<<3)+4>>2];W=K*Y-M*X;X=Y*M+K*X;K=+o[x>>2];$=ha(n,d)|0;M=+o[z+($<<3)>>2];P=x+4|0;Y=+o[P>>2];I=+o[z+($<<3)+4>>2];N=K*M-Y*I;I=M*Y+K*I;K=+o[c>>2];$=ha(d<<2,g)|0;Y=+o[z+($<<3)>>2];U=c+4|0;M=+o[U>>2];L=+o[z+($<<3)+4>>2];J=K*Y-M*L;L=Y*M+K*L;K=Q+J;M=S+L;J=Q-J;L=S-L;S=W+N;Q=X+I;N=W-N;I=X-I;o[p>>2]=T+(S+K);o[_>>2]=R+(Q+M);X=T+(t*S+q*K);W=R+(t*Q+q*M);Y=u*I+s*L;V=u*N+s*J;o[v>>2]=X-Y;o[Z>>2]=V+W;o[c>>2]=Y+X;o[U>>2]=W-V;K=T+(q*S+t*K);M=R+(q*Q+t*M);L=s*I-u*L;N=u*J-s*N;o[w>>2]=L+K;o[O>>2]=N+M;o[x>>2]=K-L;o[P>>2]=M-N;d=d+1|0;if((d|0)==(A|0))break;else{p=p+8|0;v=v+8|0;w=w+8|0;x=x+8|0;c=c+8|0}}}y=y+1|0}while((y|0)!=(f|0))}break}default:{}}while(0);if((e|0)>0){e=e+-1|0;A=B}else break}r=H;return}function td(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;var h=0,i=0,l=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0.0,D=0.0,E=0.0,F=0.0;B=r;z=k[a+8+(f<<2)>>2]|0;A=+o[z+4>>2];h=k[a>>2]|0;i=k[a+24>>2]|0;a=h>>1;if((f|0)>0){h=a;l=0;a=i;while(1){i=a+(h<<2)|0;l=l+1|0;a=h>>1;if((l|0)==(f|0)){y=i;break}else{h=a;a=i}}}else y=i;x=h>>2;i=r;r=r+((1*(a<<2)|0)+15&-16)|0;h=r;r=r+((1*(x<<3)|0)+15&-16)|0;l=e>>1;m=b+(l<<2)|0;f=b+(a<<2)+-4+(l<<2)|0;n=d+(l<<2)|0;w=e+3>>2;if((w|0)>0){s=0-a|0;u=a+l|0;v=w<<1;t=l+v|0;p=0;q=n;n=n+-4|0;l=i;while(1){C=+o[n>>2];D=+o[q>>2];o[l>>2]=C*+o[m+(a<<2)>>2]+D*+o[f>>2];o[l+4>>2]=D*+o[m>>2]-C*+o[f+(s<<2)>>2];p=p+1|0;if((p|0)==(w|0))break;else{q=q+8|0;n=n+-8|0;m=m+8|0;f=f+-8|0;l=l+8|0}}q=w;m=b+(t<<2)|0;f=b+(u+-1-v<<2)|0;l=i+(v<<2)|0}else{q=0;l=i}n=d+(e<<2)+-4|0;p=x-w|0;if((q|0)<(p|0)){v=q+w<<1;w=x<<1;b=w-v|0;s=m;t=f;u=l;while(1){k[u>>2]=k[t>>2];k[u+4>>2]=k[s>>2];q=q+1|0;if((q|0)==(p|0))break;else{s=s+8|0;t=t+-8|0;u=u+8|0}}m=m+(b<<2)|0;f=f+(v-w<<2)|0;l=l+(b<<2)|0}else p=q;if((p|0)<(x|0)){q=0-a|0;while(1){o[l>>2]=+o[n>>2]*+o[f>>2]-+o[d>>2]*+o[m+(q<<2)>>2];o[l+4>>2]=+o[n>>2]*+o[m>>2]+ +o[d>>2]*+o[f+(a<<2)>>2];p=p+1|0;if((p|0)==(x|0))break;else{d=d+8|0;n=n+-8|0;m=m+8|0;f=f+-8|0;l=l+8|0}}}if((x|0)<=0){sd(z,h);r=B;return}l=k[z+44>>2]|0;f=0;while(1){C=+o[y+(f<<2)>>2];F=+o[y+(f+x<<2)>>2];E=+o[i>>2];D=+o[i+4>>2];e=j[l+(f<<1)>>1]|0;o[h+(e<<3)>>2]=A*(C*E-F*D);o[h+(e<<3)+4>>2]=A*(F*E+C*D);f=f+1|0;if((f|0)==(x|0))break;else i=i+8|0}sd(z,h);f=g<<1;m=0-f|0;i=0;l=c;a=c+((ha(a+-1|0,g)|0)<<2)|0;while(1){E=+o[h+4>>2];C=+o[y+(i+x<<2)>>2];D=+o[h>>2];F=+o[y+(i<<2)>>2];o[l>>2]=E*C-D*F;o[a>>2]=C*D+E*F;i=i+1|0;if((i|0)==(x|0))break;else{h=h+8|0;l=l+(f<<2)|0;a=a+(m<<2)|0}}r=B;return}function ud(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;var h=0,i=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;i=k[a>>2]|0;l=k[a+24>>2]|0;h=i>>1;if((f|0)>0){i=h;m=0;h=l;while(1){l=h+(i<<2)|0;m=m+1|0;h=i>>1;if((m|0)==(f|0))break;else{i=h;h=l}}}s=i>>2;i=c+(e>>1<<2)|0;a=k[a+8+(f<<2)>>2]|0;if((s|0)>0){f=g<<1;n=0-f|0;p=k[a+44>>2]|0;q=0;r=b;m=b+((ha(h+-1|0,g)|0)<<2)|0;while(1){u=+o[m>>2];w=+o[l+(q<<2)>>2];v=+o[r>>2];t=+o[l+(q+s<<2)>>2];g=j[p>>1]<<1;o[i+((g|1)<<2)>>2]=u*w+v*t;o[i+(g<<2)>>2]=w*v-u*t;q=q+1|0;if((q|0)==(s|0))break;else{p=p+2|0;r=r+(f<<2)|0;m=m+(n<<2)|0}}}sd(a,i);n=s+1>>1;if((n|0)>0){p=s+-1|0;q=h+-1|0;m=i+(h<<2)|0;a=0;f=0;while(1){h=i+4|0;y=+o[h>>2];u=+o[i>>2];w=+o[l+(f<<2)>>2];x=+o[l+(f+s<<2)>>2];g=m+-4|0;m=m+-8|0;t=+o[g>>2];v=+o[m>>2];o[i>>2]=y*w+u*x;o[g>>2]=y*x-u*w;w=+o[l+(p+a<<2)>>2];u=+o[l+(q+a<<2)>>2];o[m>>2]=t*w+v*u;o[h>>2]=t*u-v*w;h=f+1|0;if((h|0)==(n|0))break;else{a=~f;f=h;i=i+8|0}}}l=(e|0)/2|0;if((e|0)<=1)return;m=0;a=d;i=d+(e<<2)|0;h=c+(e<<2)|0;while(1){i=i+-4|0;h=h+-4|0;x=+o[h>>2];v=+o[c>>2];y=+o[i>>2];w=+o[a>>2];o[c>>2]=v*y-x*w;o[h>>2]=v*w+x*y;m=m+1|0;if((m|0)>=(l|0))break;else{a=a+4|0;c=c+4|0}}return}function vd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,g=0,h=0.0,i=0,j=0.0,l=0.0,m=0.0,n=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0.0;x=r;r=r+48|0;u=x+16|0;v=x;w=c>>1;i=(w|0)>1;c=k[a>>2]|0;if(i){g=1;do{y=g<<1;o[b+(g<<2)>>2]=(+o[c+(y<<2)>>2]+(+o[c+(y+-1<<2)>>2]+ +o[c+((y|1)<<2)>>2])*.5)*.5;g=g+1|0}while((g|0)!=(w|0))}e=(+o[c+4>>2]*.5+ +o[c>>2])*.5;o[b>>2]=e;if((d|0)==2){g=k[a+4>>2]|0;if(i){c=1;do{a=c<<1;y=b+(c<<2)|0;o[y>>2]=+o[y>>2]+(+o[g+(a<<2)>>2]+(+o[g+(a+-1<<2)>>2]+ +o[g+((a|1)<<2)>>2])*.5)*.5;c=c+1|0}while((c|0)!=(w|0));e=+o[b>>2]}e=e+(+o[g+4>>2]*.5+ +o[g>>2])*.5;o[b>>2]=e}g=w+-4|0;wd(b,b,u,g,5);i=0;do{c=i+g|0;if((c|0)<(w|0)){f=0.0;do{f=f+ +o[b+(c<<2)>>2]*+o[b+(c-i<<2)>>2];c=c+1|0}while((c|0)!=(w|0))}else f=0.0;y=u+(i<<2)|0;o[y>>2]=f+ +o[y>>2];i=i+1|0}while((i|0)!=5);f=+o[u>>2]*1.000100016593933;o[u>>2]=f;y=u+4|0;t=+o[y>>2];o[y>>2]=t-t*.00800000037997961*.00800000037997961;y=u+8|0;t=+o[y>>2];o[y>>2]=t-t*.01600000075995922*.01600000075995922;y=u+12|0;t=+o[y>>2];o[y>>2]=t-t*.024000000208616257*.024000000208616257;y=u+16|0;t=+o[y>>2];o[y>>2]=t-t*.03200000151991844*.03200000151991844;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;k[v+12>>2]=0;if(f!=0.0){l=f*1.0000000474974513e-03;d=0;do{if((d|0)>=4)break;if((d|0)>0){c=0;h=0.0;do{h=h+ +o[v+(c<<2)>>2]*+o[u+(d-c<<2)>>2];c=c+1|0}while((c|0)!=(d|0))}else h=0.0;c=d;d=d+1|0;h=(h+ +o[u+(d<<2)>>2])/f;j=-h;o[v+(c<<2)>>2]=j;i=d>>1;if((i|0)>0){c=c+-1|0;g=0;do{a=v+(g<<2)|0;t=+o[a>>2];y=v+(c-g<<2)|0;s=+o[y>>2];o[a>>2]=t+s*j;o[y>>2]=s+t*j;g=g+1|0}while((g|0)!=(i|0))}f=f-f*(h*h)}while(!(f<l));a=v+4|0;u=v+8|0;y=v+12|0;c=a;g=u;i=y;f=+o[v>>2]*.8999999761581421;h=+o[a>>2]*.809999942779541;j=+o[u>>2]*.7289999127388;l=+o[y>>2]*.6560999155044556}else{c=v+4|0;g=v+8|0;i=v+12|0;f=0.0;h=0.0;j=0.0;l=0.0}o[v>>2]=f;o[c>>2]=h;o[g>>2]=j;o[i>>2]=l;t=f+.800000011920929;s=h+f*.800000011920929;q=j+h*.800000011920929;p=l+j*.800000011920929;n=l*.800000011920929;if((w|0)<=0){r=x;return}o[b>>2]=n*0.0+(p*0.0+(q*0.0+(s*0.0+(t*0.0+e))));if((w|0)==1){r=x;return}else{c=1;h=0.0;j=0.0;l=0.0;m=0.0}while(1){y=b+(c<<2)|0;f=+o[y>>2];o[y>>2]=n*m+(p*l+(q*j+(s*h+(t*e+f))));c=c+1|0;if((c|0)==(w|0))break;else{z=e;e=f;m=l;l=j;j=h;h=z}}r=x;return}function wd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0.0,j=0,l=0.0,m=0.0,n=0.0,p=0,q=0,r=0.0,s=0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0;y=e+-3|0;if((e|0)>3){z=d+-3|0;A=(d|0)>3;C=d+-4&-4;B=C+7|0;C=C+4|0;E=a+(C<<2)|0;D=0;do{j=b+(D<<2)|0;i=+o[j>>2];u=+o[j+4>>2];f=j+12|0;v=+o[j+8>>2];if(A){g=a;r=0.0;l=0.0;m=0.0;n=0.0;h=0;while(1){I=+o[g>>2];w=+o[f>>2];H=+o[g+4>>2];L=i;i=+o[f+4>>2];G=+o[g+8>>2];K=u;u=+o[f+8>>2];F=+o[g+12>>2];J=v;v=+o[f+12>>2];r=r+L*I+K*H+J*G+w*F;l=l+K*I+J*H+w*G+i*F;m=m+J*I+w*H+i*G+u*F;n=n+I*w+H*i+G*u+F*v;h=h+4|0;if((h|0)>=(z|0))break;else{f=f+16|0;g=g+16|0}}f=(o[t>>2]=n,k[t>>2]|0);g=(o[t>>2]=m,k[t>>2]|0);h=(o[t>>2]=l,k[t>>2]|0);p=E;q=j+(B<<2)|0;s=C;j=(o[t>>2]=r,k[t>>2]|0);l=w}else{p=a;q=f;s=0;j=0;h=0;g=0;f=0;l=0.0}x=s|1;if((s|0)<(d|0)){L=+o[p>>2];l=+o[q>>2];j=(o[t>>2]=(k[t>>2]=j,+o[t>>2])+i*L,k[t>>2]|0);h=(o[t>>2]=(k[t>>2]=h,+o[t>>2])+u*L,k[t>>2]|0);g=(o[t>>2]=(k[t>>2]=g,+o[t>>2])+v*L,k[t>>2]|0);p=p+4|0;q=q+4|0;f=(o[t>>2]=(k[t>>2]=f,+o[t>>2])+L*l,k[t>>2]|0)}if((x|0)<(d|0)){L=+o[p>>2];i=+o[q>>2];j=(o[t>>2]=(k[t>>2]=j,+o[t>>2])+u*L,k[t>>2]|0);h=(o[t>>2]=(k[t>>2]=h,+o[t>>2])+v*L,k[t>>2]|0);g=(o[t>>2]=(k[t>>2]=g,+o[t>>2])+l*L,k[t>>2]|0);p=p+4|0;q=q+4|0;f=(o[t>>2]=(k[t>>2]=f,+o[t>>2])+L*i,k[t>>2]|0)}if((x+1|0)<(d|0)){L=+o[p>>2];j=(o[t>>2]=(k[t>>2]=j,+o[t>>2])+v*L,k[t>>2]|0);h=(o[t>>2]=(k[t>>2]=h,+o[t>>2])+l*L,k[t>>2]|0);g=(o[t>>2]=(k[t>>2]=g,+o[t>>2])+i*L,k[t>>2]|0);f=(o[t>>2]=(k[t>>2]=f,+o[t>>2])+L*+o[q>>2],k[t>>2]|0)}k[c+(D<<2)>>2]=j;k[c+((D|1)<<2)>>2]=h;k[c+((D|2)<<2)>>2]=g;k[c+((D|3)<<2)>>2]=f;D=D+4|0}while((D|0)<(y|0));f=e&-4}else f=0;if((f|0)>=(e|0))return;if((d|0)<=0){rf(c+(f<<2)|0,0,e-f<<2|0)|0;return}do{g=b+(f<<2)|0;h=0;i=0.0;do{i=i+ +o[a+(h<<2)>>2]*+o[g+(h<<2)>>2];h=h+1|0}while((h|0)!=(d|0));o[c+(f<<2)>>2]=i;f=f+1|0}while((f|0)!=(e|0));return}function xd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,l=0,m=0,n=0,p=0.0,q=0,s=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0.0,z=0,A=0;A=r;q=c>>2;l=r;r=r+((1*(q<<2)|0)+15&-16)|0;j=d+c>>2;v=r;r=r+((1*(j<<2)|0)+15&-16)|0;x=d>>1;z=r;r=r+((1*(x<<2)|0)+15&-16)|0;m=(q|0)>0;if(m){i=0;do{k[l+(i<<2)>>2]=k[a+(i<<1<<2)>>2];i=i+1|0}while((i|0)!=(q|0))}if((j|0)>0){i=0;do{k[v+(i<<2)>>2]=k[b+(i<<1<<2)>>2];i=i+1|0}while((i|0)!=(j|0))}n=d>>2;wd(l,v,z,q,n);if(m){f=1.0;i=0;do{u=+o[v+(i<<2)>>2];f=f+u*u;i=i+1|0}while((i|0)!=(q|0))}else f=1.0;if((n|0)>0){m=0;s=0.0;h=0.0;t=-1.0;p=-1.0;i=0;j=1;l=0;while(1){g=+o[z+(l<<2)>>2];if(g>0.0?(w=g*9.999999960041972e-13,w=w*w,h*w>p*f):0)if(s*w>t*f){d=l;g=f;h=s;u=w;p=t;i=l;j=m}else{d=m;g=s;h=f;u=t;p=w;j=l}else{d=m;g=s;u=t}s=+o[v+(l+q<<2)>>2];t=+o[v+(l<<2)>>2];f=f+(s*s-t*t);l=l+1|0;if((l|0)==(n|0))break;else{m=d;f=f<1.0?1.0:f;s=g;t=u}}}else{i=0;j=1}v=(x|0)>0;a:do if(v){q=i<<1;n=j<<1;m=c>>1;if((m|0)>0)l=0;else{j=0;while(1){i=z+(j<<2)|0;o[i>>2]=0.0;a=j-q|0;if(!((((a|0)>-1?a:0-a|0)|0)>2?(a=j-n|0,(((a|0)>-1?a:0-a|0)|0)>2):0))o[i>>2]=0.0;j=j+1|0;if((j|0)==(x|0))break a}}do{i=z+(l<<2)|0;o[i>>2]=0.0;c=l-q|0;if(!((((c|0)>-1?c:0-c|0)|0)>2?(c=l-n|0,(((c|0)>-1?c:0-c|0)|0)>2):0)){j=b+(l<<2)|0;d=0;f=0.0;do{f=f+ +o[a+(d<<2)>>2]*+o[j+(d<<2)>>2];d=d+1|0}while((d|0)!=(m|0));o[i>>2]=f<-1.0?-1.0:f}l=l+1|0}while((l|0)!=(x|0))}else m=c>>1;while(0);if((m|0)>0){f=1.0;i=0;do{w=+o[b+(i<<2)>>2];f=f+w*w;i=i+1|0}while((i|0)!=(m|0))}else f=1.0;if(v){s=0.0;h=0.0;t=-1.0;p=-1.0;i=0;j=0}else{b=0;z=0;b=b<<1;z=b-z|0;k[e>>2]=z;r=A;return}while(1){g=+o[z+(j<<2)>>2];if(g>0.0?(y=g*9.999999960041972e-13,y=y*y,h*y>p*f):0)if(s*y>t*f){g=f;h=s;u=y;p=t;i=j}else{g=s;h=f;u=t;p=y}else{g=s;u=t}t=+o[b+(j+m<<2)>>2];w=+o[b+(j<<2)>>2];f=f+(t*t-w*w);j=j+1|0;if((j|0)==(x|0))break;else{f=f<1.0?1.0:f;s=g;t=u}}if(!((i|0)>0&(i|0)<(x+-1|0))){b=i;z=0;b=b<<1;z=b-z|0;k[e>>2]=z;r=A;return}g=+o[z+(i+-1<<2)>>2];h=+o[z+(i<<2)>>2];f=+o[z+(i+1<<2)>>2];if(f-g>(h-g)*.699999988079071){b=i;z=1;b=b<<1;z=b-z|0;k[e>>2]=z;r=A;return}b=i;z=(g-f>(h-f)*.699999988079071)<<31>>31;b=b<<1;z=b-z|0;k[e>>2]=z;r=A;return}function yd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0.0,i=0,j=0,l=0,m=0,n=0,p=0,q=0.0,s=0.0,t=0.0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0;B=r;r=r+96|0;z=B;g=d+24|0;A=r;r=r+((1*(g<<2)|0)+15&-16)|0;f=0;do{k[z+(f<<2)>>2]=k[b+(23-f<<2)>>2];f=f+1|0}while((f|0)!=24);f=0;do{o[A+(f<<2)>>2]=-+o[e+(23-f<<2)>>2];f=f+1|0}while((f|0)!=24);if((g|0)>24)rf(A+96|0,0,d<<2|0)|0;i=d+-3|0;if((d|0)>3){j=b+4|0;l=b+8|0;u=0;do{m=u|1;n=u|2;p=u|3;C=A+(u<<2)|0;f=C+12|0;g=z;h=+o[a+(u<<2)>>2];q=+o[a+(m<<2)>>2];s=+o[a+(n<<2)>>2];t=+o[a+(p<<2)>>2];v=0;w=+o[C>>2];x=+o[C+4>>2];y=+o[C+8>>2];while(1){E=+o[g>>2];D=+o[f>>2];F=+o[g+4>>2];K=w;w=+o[f+4>>2];G=+o[g+8>>2];J=x;x=+o[f+8>>2];H=+o[g+12>>2];I=y;y=+o[f+12>>2];h=D*H+(I*G+(J*F+(K*E+h)));q=w*H+(D*G+(I*F+(J*E+q)));s=x*H+(w*G+(D*F+(I*E+s)));t=H*y+(G*x+(F*w+(E*D+t)));v=v+4|0;if((v|0)>=21)break;else{f=f+16|0;g=g+16|0}}K=-h;o[A+(u+24<<2)>>2]=K;o[c+(u<<2)>>2]=h;H=q+ +o[b>>2]*K;J=-H;o[A+(u+25<<2)>>2]=J;o[c+(m<<2)>>2]=H;H=s+ +o[b>>2]*J+ +o[j>>2]*K;I=-H;o[A+(u+26<<2)>>2]=I;o[c+(n<<2)>>2]=H;K=t+ +o[b>>2]*I+ +o[j>>2]*J+ +o[l>>2]*K;o[A+(u+27<<2)>>2]=-K;o[c+(p<<2)>>2]=K;u=u+4|0}while((u|0)<(i|0));f=d&-4}else f=0;if((f|0)<(d|0))do{g=0;h=+o[a+(f<<2)>>2];do{h=h-+o[z+(g<<2)>>2]*+o[A+(g+f<<2)>>2];g=g+1|0}while((g|0)!=24);o[A+(f+24<<2)>>2]=h;o[c+(f<<2)>>2]=h;f=f+1|0}while((f|0)!=(d|0));f=d+-1|0;g=0;do{k[e+(g<<2)>>2]=k[c+(f-g<<2)>>2];g=g+1|0}while((g|0)!=24);r=B;return}function zd(a,b,c,d,e,f,g,h,i,j,l,m,n,p,q,s,t){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;l=l|0;m=m|0;n=n|0;p=p|0;q=q|0;s=s|0;t=t|0;var u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;P=r;r=r+96|0;L=P+72|0;M=P+48|0;N=P+24|0;O=P;if(!n)if((q|0)==0?(u=c-b|0,+o[p>>2]>+(ha(u<<1,j)|0)):0)y=(ha(u,j)|0)<(m|0);else y=0;else y=1;x=y&1;J=~~(+(s|0)*(+(g>>>0)*+o[p>>2])/+(j<<9|0));K=a+8|0;w=k[K>>2]|0;if((b|0)<(d|0)){s=0;v=0.0;do{n=ha(s,w)|0;u=b;do{I=u+n|0;F=+o[e+(I<<2)>>2]-+o[f+(I<<2)>>2];v=v+F*F;u=u+1|0}while((u|0)!=(d|0));s=s+1|0}while((s|0)<(j|0))}else v=0.0;F=v>200.0?200.0:v;H=i+20|0;I=i+28|0;E=(k[H>>2]|0)+-32+(ja(k[I>>2]|0)|0)|0;G=(E+3|0)>>>0>g>>>0;if((c-b|0)>10){v=+(m|0)*.125;v=v>16.0?16.0:v}else v=16.0;v=(t|0)==0?v:3.0;k[L>>2]=k[i>>2];k[L+4>>2]=k[i+4>>2];k[L+8>>2]=k[i+8>>2];k[L+12>>2]=k[i+12>>2];k[L+16>>2]=k[i+16>>2];k[L+20>>2]=k[i+20>>2];D=i+24|0;u=k[D>>2]|0;k[M>>2]=k[I>>2];k[M+4>>2]=k[I+4>>2];k[M+8>>2]=k[I+8>>2];k[M+12>>2]=k[I+12>>2];k[M+16>>2]=k[I+16>>2];A=ha(w,j)|0;B=r;r=r+((1*(A<<2)|0)+15&-16)|0;C=r;r=r+((1*(A<<2)|0)+15&-16)|0;wf(B|0,f|0,A<<2|0)|0;if((x|q|0)==0|G)A=0;else A=Ad(a,b,c,e,B,g,E,33022+(l*84|0)+42|0,C,i,j,l,1,v,t)|0;if(!(G|y^1)){q=j<<2;wf(f|0,B|0,ha(q,k[K>>2]|0)|0)|0;wf(h|0,C|0,ha(q,k[K>>2]|0)|0)|0;o[p>>2]=F;r=P;return}s=k[I>>2]|0;d=32-(ja(s|0)|0)|0;s=s>>>(d+-16|0);n=s>>>12;n=((k[H>>2]|0)-d<<3)+8-n+((s>>>0>(k[9236+(n+-8<<2)>>2]|0)>>>0)<<31>>31)|0;s=k[i>>2]|0;d=i+4|0;k[N>>2]=k[d>>2];k[N+4>>2]=k[d+4>>2];k[N+8>>2]=k[d+8>>2];k[N+12>>2]=k[d+12>>2];k[N+16>>2]=k[d+16>>2];m=k[D>>2]|0;k[O>>2]=k[I>>2];k[O+4>>2]=k[I+4>>2];k[O+8>>2]=k[I+8>>2];k[O+12>>2]=k[I+12>>2];k[O+16>>2]=k[I+16>>2];w=s+u|0;x=m-u|0;y=Pa()|0;z=r;r=r+((1*((m|0)==(u|0)?1:x)|0)+15&-16)|0;wf(z|0,w|0,x|0)|0;k[i>>2]=k[L>>2];k[i+4>>2]=k[L+4>>2];k[i+8>>2]=k[L+8>>2];k[i+12>>2]=k[L+12>>2];k[i+16>>2]=k[L+16>>2];k[i+20>>2]=k[L+20>>2];k[D>>2]=u;k[I>>2]=k[M>>2];k[I+4>>2]=k[M+4>>2];k[I+8>>2]=k[M+8>>2];k[I+12>>2]=k[M+12>>2];k[I+16>>2]=k[M+16>>2];u=Ad(a,b,c,e,f,g,E,33022+(l*84|0)|0,h,i,j,l,0,v,t)|0;do if(!((q|0)==0|G)){if((A|0)>=(u|0)){if((A|0)!=(u|0))break;b=k[I>>2]|0;a=32-(ja(b|0)|0)|0;b=b>>>(a+-16|0);q=b>>>12;if((J+8+((k[H>>2]|0)-a<<3)-q+((b>>>0>(k[9236+(q+-8<<2)>>2]|0)>>>0)<<31>>31)|0)<=(n|0))break}k[i>>2]=s;k[d>>2]=k[N>>2];k[d+4>>2]=k[N+4>>2];k[d+8>>2]=k[N+8>>2];k[d+12>>2]=k[N+12>>2];k[d+16>>2]=k[N+16>>2];k[D>>2]=m;k[I>>2]=k[O>>2];k[I+4>>2]=k[O+4>>2];k[I+8>>2]=k[O+8>>2];k[I+12>>2]=k[O+12>>2];k[I+16>>2]=k[O+16>>2];wf(w|0,z|0,x|0)|0;q=j<<2;wf(f|0,B|0,ha(q,k[K>>2]|0)|0)|0;wf(h|0,C|0,ha(q,k[K>>2]|0)|0)|0;Xa(y|0);o[p>>2]=F;r=P;return}while(0);Xa(y|0);v=+o[21300+(l<<2)>>2];F=F+v*v*+o[p>>2];o[p>>2]=F;r=P;return}function Ad(a,b,c,d,e,f,g,h,j,m,n,p,q,s,t){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;p=p|0;q=q|0;s=+s;t=t|0;var u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=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,R=0,S=0,T=0,U=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0.0,ba=0.0,ca=0,da=0,ea=0;ea=r;r=r+16|0;ca=ea;$=ca;k[$>>2]=0;k[$+4>>2]=0;if((g+3|0)<=(f|0))od(m,q,3);if(!q){ba=+o[21284+(p<<2)>>2];aa=+o[21300+(p<<2)>>2]}else{ba=.149993896484375;aa=0.0}if((b|0)>=(c|0)){da=0;t=(t|0)!=0;t=t?0:da;r=ea;return t|0}Z=a+8|0;_=m+20|0;$=m+28|0;I=f+32|0;J=n*3|0;K=(t|0)!=0;L=m+32|0;M=m+36|0;N=m+40|0;O=m+24|0;P=m+8|0;Q=m+4|0;R=m+44|0;q=0;X=b;do{S=ha(J,c-X|0)|0;T=(X|0)!=(b|0);Y=K&(X|0)>1;W=((X|0)<20?X:20)<<1;U=h+W|0;W=h+(W|1)|0;H=0;do{E=(ha(k[Z>>2]|0,H)|0)+X|0;u=+o[d+(E<<2)>>2];v=+o[e+(E<<2)>>2];D=aa*(v<-9.0?-9.0:v);E=ca+(H<<2)|0;F=+o[E>>2];G=u-D-F;g=~~+V(+(G+.5));v=(v<-28.0?-28.0:v)-s;if((g|0)<0&u<v){C=~~(v-u)+g|0;C=(C|0)>0?0:C}else C=g;f=k[_>>2]|0;B=k[$>>2]|0;a=I-f-(ja(B|0)|0)|0;p=a-S|0;if(T&(p|0)<24){g=(C|0)>1?1:C;if((p|0)<16)g=(g|0)<-1?-1:g}else g=C;g=Y?((g|0)<0?g:0):g;do if((a|0)>14){a=(l[U>>0]|0)<<7;x=(l[W>>0]|0)<<6;if(g){A=g>>31;z=A+g^A;p=(ha(16384-x|0,32736-a|0)|0)>>>15;w=(p|0)==0;if((z|0)>1&(w^1)){w=1;while(1){p=p<<1;a=p+2+a|0;y=w+1|0;p=(ha(p,x)|0)>>>15;w=(p|0)==0;if((z|0)>(y|0)&(w^1))w=y;else{x=a;break}}}else{x=a;y=1}if(w){w=z-y|0;g=((g>>>31|32768)-x>>1)+-1|0;g=(w|0)<(g|0)?w:g;w=x+A+(g<<1|1)|0;a=32768-w|0;a=a>>>0>1?1:a;g=y+A+g^A}else{w=p+1|0;a=w;w=(w&~A)+x|0}p=B>>>15;if(!w)da=23;else{B=B-(ha(p,32768-w|0)|0)|0;k[L>>2]=B+(k[L>>2]|0);p=ha(p,a)|0}}else{p=B>>>15;g=0;da=23}if((da|0)==23){da=0;p=B-(ha(p,32768-a|0)|0)|0}k[$>>2]=p;if(p>>>0<8388609){a=k[L>>2]|0;do{w=a>>>23;if((w|0)==255)k[M>>2]=(k[M>>2]|0)+1;else{f=a>>>31;p=k[N>>2]|0;if((p|0)>-1){a=k[O>>2]|0;if(((k[P>>2]|0)+a|0)>>>0<(k[Q>>2]|0)>>>0){k[O>>2]=a+1;i[(k[m>>2]|0)+a>>0]=p+f;p=0}else p=-1;k[R>>2]=k[R>>2]|p}p=k[M>>2]|0;if(p|0){f=f+255&255;do{a=k[O>>2]|0;if(((k[P>>2]|0)+a|0)>>>0<(k[Q>>2]|0)>>>0){k[O>>2]=a+1;i[(k[m>>2]|0)+a>>0]=f;a=0;p=k[M>>2]|0}else a=-1;k[R>>2]=k[R>>2]|a;p=p+-1|0;k[M>>2]=p}while((p|0)!=0)}k[N>>2]=w&255;a=k[L>>2]|0;p=k[$>>2]|0;f=k[_>>2]|0}a=a<<8&2147483392;k[L>>2]=a;p=p<<8;k[$>>2]=p;f=f+8|0;k[_>>2]=f}while(p>>>0<8388609)}}else{if((a|0)>1){g=(g|0)<1?g:1;g=(g|0)<-1?-1:g;pd(m,g<<1^g>>31,33358,2);break}if((a|0)>0){g=(g|0)>0?0:g;od(m,0-g|0,1)}else g=-1}while(0);v=+(g|0);B=j+((ha(k[Z>>2]|0,H)|0)+X<<2)|0;o[B>>2]=G-v;C=C-g|0;q=((C|0)>-1?C:0-C|0)+q|0;C=e+((ha(k[Z>>2]|0,H)|0)+X<<2)|0;o[C>>2]=v+(D+F);o[E>>2]=v+F-ba*v;H=H+1|0}while((H|0)<(n|0));X=X+1|0}while((X|0)!=(c|0));t=(t|0)!=0;t=t?0:q;r=ea;return t|0}function Bd(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,m=0,n=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;w=h+12|0;x=h+16|0;y=h+8|0;z=h+4|0;A=h+20|0;v=a+8|0;if((b|0)<(c|0)){a=g;u=0}else return;do{if((a|0)>=(i|0)){t=b;do{s=e+(t<<2)|0;if((k[s>>2]|0)<=7?(k[f+(t<<2)>>2]|0)==(u|0):0){r=0;do{j=k[w>>2]|0;g=k[x>>2]|0;if(!g){g=k[y>>2]|0;m=k[z>>2]|0;if(g>>>0<m>>>0){g=g+1|0;k[y>>2]=g;q=l[(k[h>>2]|0)+(m-g)>>0]|0}else q=0;if(g>>>0<m>>>0){g=g+1|0;k[y>>2]=g;p=l[(k[h>>2]|0)+(m-g)>>0]|0}else p=0;if(g>>>0<m>>>0){g=g+1|0;k[y>>2]=g;n=l[(k[h>>2]|0)+(m-g)>>0]|0}else n=0;if(g>>>0<m>>>0){g=g+1|0;k[y>>2]=g;m=l[(k[h>>2]|0)+(m-g)>>0]|0}else m=0;g=32;j=m<<24|(n<<16|(p<<8|(q|j)))}k[w>>2]=j>>>1;k[x>>2]=g+-1;k[A>>2]=(k[A>>2]|0)+1;q=d+((ha(k[v>>2]|0,r)|0)+t<<2)|0;o[q>>2]=+o[q>>2]+(+(j&1|0)+-.5)*+(1<<13-(k[s>>2]|0)|0)*.00006103515625;a=a+-1|0;r=r+1|0}while((r|0)<(i|0))}t=t+1|0}while(!((t|0)>=(c|0)|(a|0)<(i|0)))}u=u+1|0}while((u|0)!=2);return}
function sc(a){a=a|0;var b=0;b=r;r=r+a|0;r=r+15&-16;return b|0}function tc(){return r|0}function uc(a){a=a|0;r=a}function vc(a,b){a=a|0;b=b|0;r=a;s=b}function wc(a,b){a=a|0;b=b|0;if(!w){w=a;x=b}}function xc(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0]}function yc(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0];i[t+4>>0]=i[a+4>>0];i[t+5>>0]=i[a+5>>0];i[t+6>>0]=i[a+6>>0];i[t+7>>0]=i[a+7>>0]}function zc(a){a=a|0;L=a}function Ac(){return L|0}function Bc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if((c|0)>0){f=0;do{g=f<<1;j[b+(f<<1)>>1]=j[b+((g|1)<<1)>>1]<<8|m[b+(g<<1)>>1];f=f+1|0}while((f|0)!=(c|0))}return Xc(k[a+12>>2]|0,b,e,d)|0}function Cc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+20|0;f=Sc(k[a+16>>2]|0,b,c,k[e>>2]|0)|0;a=ha(k[a+4>>2]|0,f)|0;if((a|0)<=0)return f|0;c=k[e>>2]|0;b=0;do{g=c+(b<<1)|0;e=b<<1;j[d+(e<<1)>>1]=(m[g>>1]|0)&255;j[d+((e|1)<<1)>>1]=(m[g>>1]|0)>>>8;b=b+1|0}while((b|0)!=(a|0));return f|0}function Dc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=r;r=r+16|0;e=d;a=k[a+12>>2]|0;k[e>>2]=c;a=Yc(a,b,e)|0;r=d;return a|0}function Ec(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=r;r=r+16|0;e=d;a=k[a+16>>2]|0;k[e>>2]=c;a=Tc(a,b,e)|0;r=d;return a|0}function Fc(a){a=a|0;var b=0;if(!a)return;Me(k[a+12>>2]|0);Me(k[a+16>>2]|0);b=k[a+20>>2]|0;if(b|0)Me(b);Me(a);return}function Gc(a){a=a|0;return 8}function Hc(a){a=a|0;var b=0;if(!a)return;Me(k[a+12>>2]|0);Me(k[a+16>>2]|0);b=k[a+20>>2]|0;if(b|0)Me(b);Me(a);return}function Ic(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0;s=r;r=r+48|0;q=s+32|0;p=s+24|0;m=s+16|0;l=s+8|0;i=s;d=Le(24)|0;a:do if(!d){while(1){d=k[9872]|0;k[9872]=d+0;if(!d)break;nc[d&0]();d=Le(24)|0;if(d|0){t=d;break a}}u=vb(4)|0;k[u>>2]=27116;bc(u|0,4392,6)}else t=d;while(0);n=k[a>>2]|0;h=k[b>>2]|0;g=k[c>>2]|0;k[t>>2]=g;k[t+4>>2]=h;k[t+8>>2]=n;a=h*11520|0;a=a>>>0>2147483647?-1:a<<1;a=(a|0)==0?1:a;d=Le(a)|0;b:do if(!d){while(1){d=k[9872]|0;k[9872]=d+0;if(!d)break;nc[d&0]();d=Le(a)|0;if(d|0)break b}u=vb(4)|0;k[u>>2]=27116;bc(u|0,4392,6)}while(0);k[t+20>>2]=d;c:do if((n|0)<16e3)if((n|0)<12e3)switch(n|0){case 8e3:{u=10;break c}default:{d=-1;break c}}else switch(n|0){case 12e3:{u=10;break c}default:{d=-1;break c}}else{if((n|0)<24e3)switch(n|0){case 16e3:{u=10;break c}default:{d=-1;break c}}if((n|0)<48e3)switch(n|0){case 24e3:{u=10;break c}default:{d=-1;break c}}else switch(n|0){case 48e3:{u=10;break c}default:{d=-1;break c}}}while(0);d:do if((u|0)==10)if((h+-1|0)>>>0<=1){switch(g|0){case 2048:case 2049:case 2051:break;default:{d=-1;break d}}a=h*4912|0;d=a+38480|0;f=Le(d)|0;if(!f)d=-7;else{e:do if((n|0)<16e3)if((n|0)<12e3)switch(n|0){case 8e3:{u=14;break e}default:{d=-1;break e}}else switch(n|0){case 12e3:{u=14;break e}default:{d=-1;break e}}else{if((n|0)<24e3)switch(n|0){case 16e3:{u=14;break e}default:{d=-1;break e}}if((n|0)<48e3)switch(n|0){case 24e3:{u=14;break e}default:{d=-1;break e}}else switch(n|0){case 48e3:{u=14;break e}default:{d=-1;break e}}}while(0);f:do if((u|0)==14){switch(g|0){case 2048:case 2049:case 2051:break;default:{d=-1;break f}}rf(f|0,0,d|0)|0;k[f+4>>2]=18036;k[f>>2]=38244;b=f+38244|0;k[f+112>>2]=h;k[f+14088>>2]=h;c=f+144|0;k[c>>2]=n;d=f+180|0;k[d>>2]=0;e=f+8|0;Id(f+18036|0,0,e);k[e>>2]=h;k[f+12>>2]=h;k[f+16>>2]=k[c>>2];k[f+20>>2]=16e3;k[f+24>>2]=8e3;k[f+28>>2]=16e3;k[f+32>>2]=20;k[f+36>>2]=25e3;k[f+40>>2]=0;e=f+44|0;k[e>>2]=9;k[f+48>>2]=0;k[f+56>>2]=0;k[f+60>>2]=0;k[f+76>>2]=0;if(h>>>0>2)d=-3;else{d=k[d>>2]|0;rf(b|0,0,a+236|0)|0;k[b>>2]=9268;k[f+38248>>2]=h;k[f+38252>>2]=h;a=f+38272|0;k[a>>2]=1;k[f+38276>>2]=0;k[f+38280>>2]=21;k[f+38292>>2]=1;k[f+38316>>2]=d;k[f+38296>>2]=1;k[f+38260>>2]=1;k[f+38284>>2]=-1;k[f+38288>>2]=0;k[f+38256>>2]=0;k[f+38268>>2]=5;k[f+38304>>2]=24;ad(b,4028,i)|0;g:do if((n|0)<16e3)if((n|0)<12e3){switch(n|0){case 8e3:break;default:{u=21;break g}}d=6;break}else{switch(n|0){case 12e3:break;default:{u=21;break g}}d=4;break}else{if((n|0)<24e3){switch(n|0){case 16e3:break;default:{u=21;break g}}d=3;break}if((n|0)>=48e3)switch(n|0){case 48e3:{d=1;break g}default:{u=21;break g}}switch(n|0){case 24e3:break;default:{u=21;break g}}d=2}while(0);if((u|0)==21)d=0;k[a>>2]=d;k[l>>2]=0;ad(b,10016,l)|0;k[m>>2]=k[e>>2];ad(b,4010,m)|0;k[f+148>>2]=1;k[f+152>>2]=1;k[f+164>>2]=-1e3;m=(ha(h,n)|0)+3e3|0;k[f+160>>2]=m;k[f+108>>2]=g;k[f+124>>2]=-1e3;k[f+128>>2]=-1e3;k[f+132>>2]=1105;k[f+120>>2]=-1e3;k[f+136>>2]=-1e3;k[f+140>>2]=-1;m=k[c>>2]|0;k[f+172>>2]=(m|0)/100|0;k[f+168>>2]=24;k[f+156>>2]=5e3;k[f+116>>2]=(m|0)/250|0;j[f+14092>>1]=16384;o[f+14100>>2]=1.0;k[f+14096>>2]=193536;k[f+14148>>2]=1;k[f+14120>>2]=1001;k[f+14136>>2]=1105;k[f+188>>2]=0;k[f+196>>2]=m;rf(f+200|0,0,13888)|0;o[f+8448>>2]=.8999999761581421;o[f+8444>>2]=.10000000149011612;k[f+192>>2]=g;k[t+12>>2]=f;h:do if((n|0)<16e3)if((n|0)<12e3)switch(n|0){case 8e3:{u=26;break h}default:{d=-1;break h}}else switch(n|0){case 12e3:{u=26;break h}default:{d=-1;break h}}else{if((n|0)<24e3)switch(n|0){case 16e3:{u=26;break h}default:{d=-1;break h}}if((n|0)<48e3)switch(n|0){case 24e3:{u=26;break h}default:{d=-1;break h}}else switch(n|0){case 48e3:{u=26;break h}default:{d=-1;break h}}}while(0);if((u|0)==26){a=h*8768|0;d=a+9404|0;c=Le(d)|0;if(!c)d=-7;else{i:do if((n|0)<16e3)if((n|0)<12e3)switch(n|0){case 8e3:{u=28;break i}default:{d=-1;break i}}else switch(n|0){case 12e3:{u=28;break i}default:{d=-1;break i}}else{if((n|0)<24e3)switch(n|0){case 16e3:{u=28;break i}default:{d=-1;break i}}if((n|0)<48e3)switch(n|0){case 24e3:{u=28;break i}default:{d=-1;break i}}else switch(n|0){case 48e3:{u=28;break i}default:{d=-1;break i}}}while(0);j:do if((u|0)==28){rf(c|0,0,d|0)|0;k[c+4>>2]=88;k[c>>2]=8640;u=c+88|0;b=c+8640|0;k[c+8>>2]=h;k[c+48>>2]=h;k[c+12>>2]=n;k[c+24>>2]=n;k[c+16>>2]=h;rf(u|0,0,4256)|0;k[c+2464>>2]=1;k[u>>2]=65536;k[c+4256>>2]=0;k[c+4236>>2]=0;k[c+4240>>2]=3176576;k[c+4260>>2]=0;k[c+4332>>2]=65536;k[c+4336>>2]=65536;k[c+4348>>2]=20;k[c+4344>>2]=2;u=c+4352|0;rf(u|0,0,4256)|0;k[c+6728>>2]=1;k[u>>2]=65536;k[c+8520>>2]=0;k[c+8500>>2]=0;k[c+8504>>2]=3176576;k[c+8524>>2]=0;k[c+8596>>2]=65536;k[c+8600>>2]=65536;k[c+8612>>2]=20;k[c+8608>>2]=2;u=c+8616|0;k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;k[c+8636>>2]=0;rf(b|0,0,a+764|0)|0;k[b>>2]=9268;k[c+8644>>2]=120;k[c+8648>>2]=h;k[c+8652>>2]=h;a=c+8656|0;k[a>>2]=1;k[c+8660>>2]=0;k[c+8664>>2]=21;k[c+8668>>2]=1;k[c+8672>>2]=0;k[c+8676>>2]=0;hd(b,4028,p);if((n|0)<16e3)if((n|0)<12e3){switch(n|0){case 8e3:break;default:{d=-3;break j}}u=6;k[a>>2]=u;k[q>>2]=0;hd(b,10016,q);q=c+60|0;k[q>>2]=0;q=(n|0)/400|0;u=c+64|0;k[u>>2]=q;u=c+44|0;k[u>>2]=0;u=t+16|0;k[u>>2]=c;r=s;return t|0}else{switch(n|0){case 12e3:break;default:{d=-3;break j}}u=4;k[a>>2]=u;k[q>>2]=0;hd(b,10016,q);q=c+60|0;k[q>>2]=0;q=(n|0)/400|0;u=c+64|0;k[u>>2]=q;u=c+44|0;k[u>>2]=0;u=t+16|0;k[u>>2]=c;r=s;return t|0}if((n|0)<24e3){switch(n|0){case 16e3:break;default:{d=-3;break j}}u=3;k[a>>2]=u;k[q>>2]=0;hd(b,10016,q);q=c+60|0;k[q>>2]=0;q=(n|0)/400|0;u=c+64|0;k[u>>2]=q;u=c+44|0;k[u>>2]=0;u=t+16|0;k[u>>2]=c;r=s;return t|0}if((n|0)>=48e3){switch(n|0){case 48e3:{d=1;break}default:{d=-3;break j}}k[a>>2]=d;k[q>>2]=0;hd(b,10016,q);q=c+60|0;k[q>>2]=0;q=(n|0)/400|0;u=c+64|0;k[u>>2]=q;u=c+44|0;k[u>>2]=0;u=t+16|0;k[u>>2]=c;r=s;return t|0}switch(n|0){case 24e3:break;default:{d=-3;break j}}u=2;k[a>>2]=u;k[q>>2]=0;hd(b,10016,q);q=c+60|0;k[q>>2]=0;q=(n|0)/400|0;u=c+64|0;k[u>>2]=q;u=c+44|0;k[u>>2]=0;u=t+16|0;k[u>>2]=c;r=s;return t|0}while(0);Me(c);k[t+16>>2]=0;t=d;u=vb(4)|0;k[u>>2]=t;bc(u|0,4520,0)}}k[t+16>>2]=0;t=d;u=vb(4)|0;k[u>>2]=t;bc(u|0,4520,0)}}while(0);Me(f);k[t+12>>2]=0;t=d;u=vb(4)|0;k[u>>2]=t;bc(u|0,4520,0)}}else d=-1;while(0);k[t+12>>2]=0;t=d;u=vb(4)|0;k[u>>2]=t;bc(u|0,4520,0);return 0}function Jc(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;e=r;r=r+16|0;h=e+8|0;g=e+4|0;f=e;k[h>>2]=b;k[g>>2]=c;k[f>>2]=d;a=gc[a&7](h,g,f)|0;r=e;return a|0}function Kc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=k[a>>2]|0;h=k[a+4>>2]|0;a=b+(h>>1)|0;if(h&1)g=k[(k[a>>2]|0)+g>>2]|0;return qc[g&3](a,c,d,e,f)|0}function Lc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=k[a>>2]|0;g=k[a+4>>2]|0;a=b+(g>>1)|0;if(g&1)f=k[(k[a>>2]|0)+f>>2]|0;return oc[f&3](a,c,d,e)|0}function Mc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=k[a>>2]|0;f=k[a+4>>2]|0;a=b+(f>>1)|0;if(f&1)e=k[(k[a>>2]|0)+e>>2]|0;return gc[e&7](a,c,d)|0}function Nc(a,b){a=a|0;b=b|0;ic[a&15](b);return}function Oc(){var a=0,b=0;pb(8,16,32,0,31869,2,31872,0,31872,0,31730,31874,11);Ta(8,4,4584,31877,1,4);a=Le(8)|0;a:do if(!a){while(1){a=k[9872]|0;k[9872]=a+0;if(!a)break;nc[a&0]();a=Le(8)|0;if(a|0)break a}b=vb(4)|0;k[b>>2]=27116;bc(b|0,4392,6)}while(0);k[a>>2]=1;k[a+4>>2]=0;Tb(8,31748,6,4600,31883,1,a|0,0);a=Le(8)|0;b:do if(!a){while(1){a=k[9872]|0;k[9872]=a+0;if(!a)break;nc[a&0]();a=Le(8)|0;if(a|0)break b}b=vb(4)|0;k[b>>2]=27116;bc(b|0,4392,6)}while(0);k[a>>2]=2;k[a+4>>2]=0;Tb(8,31756,5,4624,31891,2,a|0,0);a=Le(8)|0;c:do if(!a){while(1){a=k[9872]|0;k[9872]=a+0;if(!a)break;nc[a&0]();a=Le(8)|0;if(a|0)break c}b=vb(4)|0;k[b>>2]=27116;bc(b|0,4392,6)}while(0);k[a>>2]=5;k[a+4>>2]=0;Tb(8,31764,4,4644,31877,3,a|0,0);a=Le(8)|0;if(a|0){b=a;k[b>>2]=6;a=b+4|0;k[a>>2]=0;Tb(8,31777,4,4644,31877,3,b|0,0);Vb(8,31790,2,4660,31898,1,12);return}while(1){a=k[9872]|0;k[9872]=a+0;if(!a){b=16;break}nc[a&0]();a=Le(8)|0;if(a|0){b=17;break}}if((b|0)==16){b=vb(4)|0;k[b>>2]=27116;bc(b|0,4392,6)}else if((b|0)==17){k[a>>2]=6;b=a+4|0;k[b>>2]=0;Tb(8,31777,4,4644,31877,3,a|0,0);Vb(8,31790,2,4660,31898,1,12);return}}function Pc(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;g=+g;h=h|0;i=i|0;j=j|0;k=k|0;var l=0.0,m=0.0,n=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0;t=g==0.0;if(f==0.0&t){if((b|0)==(a|0))return;xf(a|0,b|0,e<<2|0)|0;return}s=(c|0)>15?c:15;u=(d|0)>15?d:15;w=0-u|0;p=+o[4668+(h*12|0)>>2]*f;q=+o[4668+(h*12|0)+4>>2]*f;r=+o[4668+(h*12|0)+8>>2]*f;z=+o[4668+(i*12|0)>>2]*g;A=+o[4668+(i*12|0)+4>>2]*g;B=+o[4668+(i*12|0)+8>>2]*g;v=1-u|0;x=~u;y=-2-u|0;k=(s|0)==(u|0)&f==g&(h|0)==(i|0)?0:k;if((k|0)>0){c=2-u|0;d=0;g=+o[b+(v<<2)>>2];l=+o[b+(w<<2)>>2];m=+o[b+(x<<2)>>2];n=+o[b+(y<<2)>>2];while(1){f=+o[b+(c+d<<2)>>2];D=+o[j+(d<<2)>>2];D=D*D;C=1.0-D;i=d-s|0;o[a+(d<<2)>>2]=(n+f)*(B*D)+((g+m)*(A*D)+(l*(z*D)+(+o[b+(d<<2)>>2]+ +o[b+(i<<2)>>2]*(p*C)+q*C*(+o[b+(i+1<<2)>>2]+ +o[b+(i+-1<<2)>>2])+r*C*(+o[b+(i+2<<2)>>2]+ +o[b+(i+-2<<2)>>2]))));d=d+1|0;if((d|0)==(k|0)){c=k;break}else{D=g;g=f;n=m;m=l;l=D}}}else c=0;if(t){if((b|0)==(a|0))return;xf(a+(k<<2)|0,b+(k<<2)|0,e-k<<2|0)|0;return}i=a+(c<<2)|0;h=b+(c<<2)|0;k=e-c|0;if((k|0)<=0)return;c=2-u|0;d=0;n=+o[h+(v<<2)>>2];m=+o[h+(w<<2)>>2];l=+o[h+(x<<2)>>2];g=+o[h+(y<<2)>>2];while(1){f=+o[h+(c+d<<2)>>2];o[i+(d<<2)>>2]=B*(g+f)+(A*(l+n)+(z*m+ +o[h+(d<<2)>>2]));d=d+1|0;if((d|0)==(k|0))break;else{D=n;n=f;g=l;l=m;m=D}}return}function Qc(a){a=a|0;if((a+7|0)>>>0>7){a=31934;return a|0}a=k[4704+(0-a<<2)>>2]|0;return a|0}function Rc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,m=0,n=0,p=0,q=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,fa=0,ga=0.0,ia=0,ka=0,la=0,ma=0,na=0.0;ma=r;r=r+160|0;X=ma+80|0;W=ma+72|0;V=ma+64|0;T=ma+56|0;P=ma+48|0;N=ma+40|0;M=ma+32|0;L=ma+24|0;K=ma+16|0;J=ma+8|0;I=ma;ka=ma+96|0;z=ma+92|0;la=ma+88|0;O=ma+144|0;S=ma+84|0;k[la>>2]=0;y=a+(k[a+4>>2]|0)|0;U=a+(k[a>>2]|0)|0;da=a+12|0;f=k[da>>2]|0;Q=(f|0)/50|0;w=Q>>1;ca=Q>>2;fa=Q>>3;if((fa|0)>(e|0)){a=-2;r=ma;return a|0}f=((f|0)/25|0)*3|0;f=(f|0)>(e|0)?e:f;do if((c|0)>=2)if(b){i=k[a+64>>2]|0;e=k[a+56>>2]|0;k[ka>>2]=b;k[ka+4>>2]=c;k[ka+8>>2]=0;k[ka+12>>2]=0;k[ka+16>>2]=0;m=ka+20|0;k[m>>2]=9;g=ka+24|0;n=ka+28|0;k[n>>2]=128;p=l[b>>0]|0;q=ka+40|0;k[q>>2]=p;s=p>>>1^127;t=ka+32|0;k[t>>2]=s;k[ka+44>>2]=0;k[g>>2]=2;u=l[b+1>>0]|0;if(c>>>0>2){k[g>>2]=3;h=3;v=l[b+2>>0]|0}else{h=2;v=0}if(h>>>0<c>>>0){k[g>>2]=h+1;g=l[b+h>>0]|0}else g=0;k[m>>2]=33;k[n>>2]=-2147483648;k[q>>2]=g;k[t>>2]=((((u|p<<8)>>>1&255|s<<8)<<8|(v|u<<8)>>>1&255)<<8&2147483392|(g|v<<8)>>>1&255)^16777215;g=k[a+60>>2]|0;if((g|0)>0){h=(e|0)==1002;g=(g|0)==1002;if(!(!(g|h^1)?!(k[a+68>>2]|0):0)){if(h){g=b;h=f;m=1;e=1002;x=21;break}if(!g){g=b;h=f;m=1;x=21;break}}p=ha(k[a+8>>2]|0,ca)|0;g=Pa()|0;n=r;r=r+((1*((h?p:1)<<2)|0)+15&-16)|0;if(h){Rc(a,0,0,n,(ca|0)<(i|0)?ca:i)|0;ba=g;H=1;m=1;aa=i;e=1002;p=1;D=1}else{ba=g;H=0;m=1;aa=i;n=0;D=1}}else{g=b;h=f;m=1;x=21}}else x=6;else{x=k[a+64>>2]|0;f=(f|0)<(x|0)?f:x;x=6}while(0);do if((x|0)==6){e=k[a+60>>2]|0;if(!e){e=a+8|0;if((ha(k[e>>2]|0,f)|0)>0)g=0;else{a=f;r=ma;return a|0}do{o[d+(g<<2)>>2]=0.0;g=g+1|0}while((g|0)<(ha(k[e>>2]|0,f)|0));r=ma;return f|0}if((f|0)<=(Q|0)){if((f|0)>=(Q|0)){g=0;h=f;m=0;i=f;x=21;break}if((f|0)>(w|0)){g=0;h=f;m=0;i=w;x=21;break}g=0;h=f;m=0;i=(f|0)<(w|0)&((f|0)>(ca|0)&(e|0)!=1e3)?ca:f;x=21;break}i=a+8|0;e=d;h=f;while(1){g=Rc(a,0,0,e,(h|0)<(Q|0)?h:Q)|0;if((g|0)<0){f=g;x=130;break}e=e+((ha(k[i>>2]|0,g)|0)<<2)|0;h=h-g|0;if((h|0)<=0){x=130;break}}if((x|0)==130){r=ma;return f|0}}while(0);if((x|0)==21){b=g;f=h;ba=Pa()|0;H=(e|0)==1002;aa=i;n=0;p=1;D=0}a:do if((aa|0)>(f|0))f=-1;else{if(H)f=1;else f=ha(k[a+8>>2]|0,(w|0)>(aa|0)?w:aa)|0;E=r;r=r+((1*(f<<1)|0)+15&-16)|0;C=(e|0)!=1002;do if(C){if((k[a+60>>2]|0)==1002){rf(y|0,0,4256)|0;k[y+2376>>2]=1;k[y>>2]=65536;k[y+4168>>2]=0;k[y+4148>>2]=0;k[y+4152>>2]=3176576;k[y+4172>>2]=0;k[y+4244>>2]=65536;k[y+4248>>2]=65536;k[y+4260>>2]=20;k[y+4256>>2]=2;x=y+4264|0;rf(x|0,0,4256)|0;k[y+6640>>2]=1;k[x>>2]=65536;k[y+8432>>2]=0;k[y+8412>>2]=0;k[y+8416>>2]=3176576;k[y+8436>>2]=0;k[y+8508>>2]=65536;k[y+8512>>2]=65536;k[y+8524>>2]=20;k[y+8520>>2]=2;x=y+8528|0;k[x>>2]=0;k[x+4>>2]=0;k[x+8>>2]=0;k[y+8548>>2]=0}x=(aa*1e3|0)/(k[da>>2]|0)|0;s=a+16|0;k[a+32>>2]=(x|0)<10?10:x;b:do if(m){k[a+20>>2]=k[a+48>>2];if((e|0)!=1e3){k[a+28>>2]=16e3;break}switch(k[a+52>>2]|0){case 1101:{k[a+28>>2]=8e3;break b}case 1102:{k[a+28>>2]=12e3;break b}default:{k[a+28>>2]=16e3;break b}}}while(0);x=(b|0)==0;h=x&1;t=a+8|0;if(x){i=0;q=E;do{if(Hd(y,s,h,(i|0)==0&1,ka,q,z)|0){k[z>>2]=aa;f=k[t>>2]|0;if((ha(f,aa)|0)>0){g=0;do{j[q+(g<<1)>>1]=0;g=g+1|0;f=k[t>>2]|0}while((g|0)<(ha(f,aa)|0))}}else f=k[t>>2]|0;x=k[z>>2]|0;q=q+((ha(f,x)|0)<<1)|0;i=x+i|0}while((i|0)<(aa|0))}else{f=0;g=E;do{if(Hd(y,s,0,(f|0)==0&1,ka,g,z)|0){f=-3;break a}x=k[z>>2]|0;g=g+((ha(k[t>>2]|0,x)|0)<<1)|0;f=x+f|0}while((f|0)<(aa|0))}if(m?(F=ka+20|0,B=k[F>>2]|0,G=ka+28|0,A=k[G>>2]|0,z=ja(A|0)|0,(B+-15+z+((k[a+56>>2]|0)==1001?20:0)|0)<=(c<<3|0)):0){x=(e|0)==1001;z=ka+32|0;h=k[z>>2]|0;if(x){f=A>>>12;v=h>>>0<f>>>0;w=v&1;if(!v){h=h-f|0;k[z>>2]=h;f=A-f|0;k[G>>2]=f;if(f>>>0>=8388609){x=c;g=0;v=1001;h=0;m=0;break}}else k[G>>2]=f;t=ka+40|0;u=ka+24|0;s=k[ka+4>>2]|0;g=B;i=k[u>>2]|0;q=k[t>>2]|0;while(1){g=g+8|0;k[F>>2]=g;f=f<<8;k[G>>2]=f;if(i>>>0<s>>>0){B=i+1|0;k[u>>2]=B;m=l[(k[ka>>2]|0)+i>>0]|0;i=B}else m=0;k[t>>2]=m;h=((m|q<<8)>>>1&255|h<<8&2147483392)^255;k[z>>2]=h;if(f>>>0>=8388609)break;else q=m}if(v)i=f;else{x=c;g=0;v=1001;h=0;m=0;break}}else{g=B;i=A;w=1}f=i>>>1;B=h>>>0<f>>>0;y=B&1;if(!B){h=h-f|0;k[z>>2]=h;f=i-f|0}k[G>>2]=f;if(f>>>0<8388609){t=ka+40|0;u=ka+24|0;s=k[ka+4>>2]|0;i=k[u>>2]|0;q=k[t>>2]|0;while(1){g=g+8|0;k[F>>2]=g;f=f<<8;k[G>>2]=f;if(i>>>0<s>>>0){B=i+1|0;k[u>>2]=B;m=l[(k[ka>>2]|0)+i>>0]|0;i=B}else m=0;k[t>>2]=m;h=((m|q<<8)>>>1&255|h<<8&2147483392)^255;k[z>>2]=h;if(f>>>0<8388609)q=m;else break}}if(x){B=f>>>8;k[ka+36>>2]=B;x=((h>>>0)/(B>>>0)|0)+1|0;x=x>>>0>256?256:x;v=256-x|0;A=ha(255-v|0,B)|0;h=h-A|0;k[z>>2]=h;f=(x|0)==256?f-A|0:B;k[G>>2]=f;if(f>>>0<8388609){t=ka+40|0;u=ka+24|0;s=k[ka+4>>2]|0;i=k[u>>2]|0;q=k[t>>2]|0;while(1){g=g+8|0;k[F>>2]=g;f=f<<8;k[G>>2]=f;if(i>>>0<s>>>0){B=i+1|0;k[u>>2]=B;m=l[(k[ka>>2]|0)+i>>0]|0;i=B}else m=0;k[t>>2]=m;h=((m|q<<8)>>>1&255|h<<8&2147483392)^255;k[z>>2]=h;if(f>>>0>=8388609)break;else q=m}}h=v+2|0}else h=c-(g+-25+(ja(f|0)|0)>>3)|0;x=c-h|0;c=(x<<3|0)<(g+-32+(ja(f|0)|0)|0);m=c?0:h;g=ka+4|0;k[g>>2]=(k[g>>2]|0)-m;x=c?0:x;g=y;v=e;h=c?0:w}else{x=c;g=0;v=e;h=0;m=0}}else{x=c;g=0;v=1002;h=0;m=0}while(0);e=C?17:0;switch(k[a+52>>2]|0){case 1101:{f=13;break}case 1103:case 1102:{f=17;break}case 1104:{f=19;break}default:f=21}k[I>>2]=f;hd(U,10012,I);k[J>>2]=k[a+48>>2];hd(U,10008,J);u=(h|0)!=0;f=r;r=r+((1*((u?1:p)<<2)|0)+15&-16)|0;q=(D|0)!=0&(u^1);if(C&q){Rc(a,0,0,f,(ca|0)<(aa|0)?ca:aa)|0;n=f}if(u){J=(ha(k[a+8>>2]|0,ca)|0)<<2;f=r;r=r+((1*J|0)+15&-16)|0;if(!g){t=0;i=f;g=0}else{k[K>>2]=0;hd(U,10010,K);id(U,b+x|0,m,f,ca,0)|0;k[L>>2]=la;hd(U,4031,L);t=1;i=f;g=1}}else{i=r;r=r+16|0;t=(g|0)!=0;g=0}k[M>>2]=e;hd(U,10010,M);do if((v|0)==1e3){j[O>>1]=-1;f=a+8|0;if((ha(k[f>>2]|0,aa)|0)>0){e=0;do{o[d+(e<<2)>>2]=0.0;e=e+1|0}while((e|0)<(ha(k[f>>2]|0,aa)|0))}if((k[a+60>>2]|0)==1001){if(g?k[a+68>>2]|0:0){s=0;break}k[P>>2]=0;hd(U,10010,P);id(U,O,2,d,fa,0)|0;s=0}else s=0}else{f=(Q|0)<(aa|0)?Q:aa;Q=k[a+60>>2]|0;if((v|0)!=(Q|0)&(Q|0)>0?(k[a+68>>2]|0)==0:0)hd(U,4028,N);s=id(U,b,x,d,f,ka)|0}while(0);if(!H?(R=a+8|0,(ha(k[R>>2]|0,aa)|0)>0):0){f=0;do{Q=d+(f<<2)|0;o[Q>>2]=+o[Q>>2]+ +(j[E+(f<<1)>>1]|0)*.000030517578125;f=f+1|0}while((f|0)<(ha(k[R>>2]|0,aa)|0))}k[T>>2]=S;hd(U,10015,T);p=k[(k[S>>2]|0)+60>>2]|0;if(!((h|0)==0|t)?(hd(U,4028,V),k[W>>2]=0,hd(U,10010,W),id(U,b+x|0,m,i,ca,0)|0,k[X>>2]=la,hd(U,4031,X),Y=k[a+8>>2]|0,Z=d+((ha(Y,aa-fa|0)|0)<<2)|0,_=i+((ha(Y,fa)|0)<<2)|0,$=48e3/(k[da>>2]|0)|0,(fa|0)>0&(Y|0)>0):0){f=0;do{e=0;do{W=p+((ha(e,$)|0)<<2)|0;na=+o[W>>2];na=na*na;W=(ha(e,Y)|0)+f|0;X=Z+(W<<2)|0;o[X>>2]=na*+o[_+(W<<2)>>2]+(1.0-na)*+o[X>>2];e=e+1|0}while((e|0)!=(fa|0));f=f+1|0}while((f|0)!=(Y|0))}if(g){h=a+8|0;f=k[h>>2]|0;if((f|0)>0&(fa|0)>0){g=(fa|0)==1;e=0;do{k[d+(e<<2)>>2]=k[i+(e<<2)>>2];if(!g){f=1;do{$=(ha(k[h>>2]|0,f)|0)+e|0;k[d+($<<2)>>2]=k[i+($<<2)>>2];f=f+1|0}while((f|0)!=(fa|0))}e=e+1|0;f=k[h>>2]|0}while((e|0)<(f|0))}g=ha(f,fa)|0;e=i+(g<<2)|0;g=d+(g<<2)|0;h=48e3/(k[da>>2]|0)|0;if((fa|0)>0&(f|0)>0){i=0;do{m=0;do{_=p+((ha(m,h)|0)<<2)|0;na=+o[_>>2];na=na*na;_=(ha(m,f)|0)+i|0;$=g+(_<<2)|0;o[$>>2]=na*+o[$>>2]+(1.0-na)*+o[e+(_<<2)>>2];m=m+1|0}while((m|0)!=(fa|0));i=i+1|0}while((i|0)!=(f|0))}}c:do if(q){h=a+8|0;i=k[h>>2]|0;if((aa|0)<(ca|0)){f=48e3/(k[da>>2]|0)|0;if((fa|0)>0&(i|0)>0)e=0;else break;while(1){g=0;do{ca=p+((ha(g,f)|0)<<2)|0;na=+o[ca>>2];na=na*na;ca=(ha(g,i)|0)+e|0;da=d+(ca<<2)|0;o[da>>2]=na*+o[da>>2]+(1.0-na)*+o[n+(ca<<2)>>2];g=g+1|0}while((g|0)!=(fa|0));e=e+1|0;if((e|0)==(i|0))break c}}f=ha(i,fa)|0;if((f|0)>0){g=0;do{k[d+(g<<2)>>2]=k[n+(g<<2)>>2];g=g+1|0;e=k[h>>2]|0;f=ha(e,fa)|0}while((g|0)<(f|0))}else e=i;m=n+(f<<2)|0;i=d+(f<<2)|0;f=48e3/(k[da>>2]|0)|0;if((fa|0)>0&(e|0)>0){g=0;do{h=0;do{ca=p+((ha(h,f)|0)<<2)|0;na=+o[ca>>2];na=na*na;ca=(ha(h,e)|0)+g|0;da=i+(ca<<2)|0;o[da>>2]=na*+o[da>>2]+(1.0-na)*+o[m+(ca<<2)>>2];h=h+1|0}while((h|0)!=(fa|0));g=g+1|0}while((g|0)!=(e|0))}}while(0);f=k[a+40>>2]|0;if(f|0?(ga=+ea(+(+(f|0)*6.488140788860619e-04*.6931471805599453)),ia=a+8|0,(ha(k[ia>>2]|0,aa)|0)>0):0){f=0;do{fa=d+(f<<2)|0;o[fa>>2]=ga*+o[fa>>2];f=f+1|0}while((f|0)<(ha(k[ia>>2]|0,aa)|0))}if((x|0)<2)f=0;else f=k[la>>2]^k[ka+28>>2];k[a+84>>2]=f;k[a+60>>2]=v;k[a+68>>2]=u&(t^1)&1;f=(s|0)<0?s:aa}while(0);Xa(ba|0);a=f;r=ma;return a|0}function Sc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,g=0,h=0,m=0,n=0,p=0.0,q=0.0,s=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0.0,B=0.0,C=0,D=0,E=0,F=0;F=r;r=r+112|0;w=F;v=F+104|0;z=F+8|0;m=(b|0)==0;do if(!(m|(c|0)<1)){h=k[a+12>>2]|0;f=l[b>>0]|0;a:do switch(f&3|0){case 0:{g=1;break}case 3:if((c|0)<2){d=-4;r=F;return d|0}else{g=l[b+1>>0]&63;break a}default:g=2}while(0);do if(!(f&128))if((f&96|0)==96)if(!(f&8)){f=(h|0)/100|0;break}else{f=(h|0)/50|0;break}else{f=f>>>3&3;if((f|0)==3){f=(h*60|0)/1e3|0;break}else{f=(h<<f|0)/100|0;break}}else f=(h<<(f>>>3&3)|0)/400|0;while(0);f=ha(f,g)|0;if((f|0)>0&(f*25|0)<=(h*3|0)){x=(f|0)>5760?5760:f;break}else{d=-4;r=F;return d|0}}else x=5760;while(0);C=a+8|0;u=ha(k[C>>2]|0,x)|0;D=Pa()|0;E=r;r=r+((1*(u<<2)|0)+15&-16)|0;b:do if(m|(c|0)==0)if(!((x|0)%((k[a+12>>2]|0)/400|0|0)|0)){g=0;do{f=Rc(a,0,0,E+((ha(k[C>>2]|0,g)|0)<<2)|0,x-g|0)|0;if((f|0)<0){g=f;break b}g=f+g|0}while((g|0)<(x|0));k[a+72>>2]=g}else g=-1;else if((c|0)>=0){s=i[b>>0]|0;m=s&255;do if(!(m&128)){u=(m&96|0)==96;n=u?1001:1e3;if(u){g=m>>>4&1|1104;f=k[a+12>>2]|0;if(!(m&8)){u=(f|0)/100|0;m=n;break}else{u=(f|0)/50|0;m=n;break}}else{g=(m>>>5&3)+1101|0;h=k[a+12>>2]|0;f=m>>>3&3;if((f|0)==3){u=(h*60|0)/1e3|0;m=n;break}else{u=(h<<f|0)/100|0;m=n;break}}}else{g=m>>>5&3;u=(k[a+12>>2]<<(m>>>3&3)|0)/400|0;g=(g|0)==0?1101:g+1102|0;m=1002}while(0);h=((s&4)>>>2)+1|0;s=$d(b,c,v,0,z,w)|0;if((s|0)>=0)if((ha(s,u)|0)<=(x|0)){f=b+(k[w>>2]|0)|0;k[a+56>>2]=m;k[a+52>>2]=g;k[a+64>>2]=u;k[a+48>>2]=h;if((s|0)>0){n=0;h=0}else{k[a+72>>2]=0;g=0;break}while(1){m=z+(n<<1)|0;g=Rc(a,f,j[m>>1]|0,E+((ha(k[C>>2]|0,h)|0)<<2)|0,x-h|0)|0;if((g|0)<0)break b;g=g+h|0;n=n+1|0;if((n|0)>=(s|0))break;else{f=f+(j[m>>1]|0)|0;h=g}}k[a+72>>2]=g;w=k[C>>2]|0;if((g|0)>0&(w|0)>0){f=ha(w,g)|0;if((f|0)>0){h=0;do{z=E+(h<<2)|0;y=+o[z>>2];b=y>2.0;x=(b?2.0:y)<-2.0;o[z>>2]=b|x?(x?-2.0:2.0):y;h=h+1|0}while((h|0)!=(f|0));b=0}else b=0;do{c=E+(b<<2)|0;v=a+76+(b<<2)|0;e=+o[v>>2];h=0;do{f=c+((ha(h,w)|0)<<2)|0;p=+o[f>>2];q=e*p;if(q>=0.0)break;o[f>>2]=p+p*q;h=h+1|0}while((h|0)<(g|0));y=+o[c>>2];u=0;while(1){c:do if((u|0)<(g|0)){f=u;do{z=c+((ha(f,w)|0)<<2)|0;q=+o[z>>2];if(q>1.0|q<-1.0)break c;f=f+1|0}while((f|0)<(g|0))}else f=u;while(0);if((f|0)==(g|0)){e=0.0;break}s=c+((ha(f,w)|0)<<2)|0;q=+o[s>>2];e=+W(+q);s=f;while(1){if((s|0)<=0)break;h=s+-1|0;z=c+((ha(h,w)|0)<<2)|0;if(!(q*+o[z>>2]>=0.0))break;else s=h}d:do if((f|0)<(g|0)){m=f;p=e;while(1){z=c+((ha(m,w)|0)<<2)|0;e=+o[z>>2];if(!(q*e>=0.0)){e=p;n=f;break d}e=+W(+e);h=e>p;e=h?e:p;h=h?m:f;f=m+1|0;if((f|0)<(g|0)){m=f;p=e;f=h}else{m=f;n=h;break}}}else{m=f;n=f}while(0);if(!s)h=q*+o[c>>2]>=0.0;else h=0;e=(e+-1.0)/(e*e);e=e+e*2.399999914359796e-07;e=q>0.0?-e:e;if((s|0)<(m|0)){f=s;do{z=c+((ha(f,w)|0)<<2)|0;q=+o[z>>2];o[z>>2]=q+q*(e*q);f=f+1|0}while((f|0)!=(m|0))}if((n|0)>1&h?(A=y-+o[c>>2],B=A/+(n|0),(u|0)<(n|0)):0){f=u;p=A;do{p=p-B;z=c+((ha(f,w)|0)<<2)|0;q=p+ +o[z>>2];u=q>1.0;x=(u?1.0:q)<-1.0;o[z>>2]=u|x?(x?-1.0:1.0):q;f=f+1|0}while((f|0)!=(n|0))}if((m|0)==(g|0))break;else u=m}o[v>>2]=e;b=b+1|0}while((b|0)!=(w|0))}}else g=-2;else g=s}else g=-1;while(0);if((g|0)>0?(ha(k[C>>2]|0,g)|0)>0:0){h=0;do{e=+o[E+(h<<2)>>2]*32768.0;e=e>-32768.0?e:-32768.0;e=e<32767.0?e:32767.0;f=(o[t>>2]=e,k[t>>2]|0);if((f&2130706432)>>>0<=1249902592){f=(f|0)<0;e=f?e+-8388608.0+8388608.0:e+8388608.0+-8388608.0;if(e==0.0)e=f?-0.0:0.0}j[d+(h<<1)>>1]=~~e;h=h+1|0}while((h|0)<(ha(k[C>>2]|0,g)|0))}Xa(D|0);d=g;r=F;return d|0}function Tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;l=r;r=r+48|0;g=l+24|0;f=l+16|0;e=l+8|0;h=l;j=l+32|0;d=k[a+4>>2]|0;i=a+(k[a>>2]|0)|0;k[j>>2]=c;a:do switch(b|0){case 4009:{i=(k[j>>2]|0)+(4-1)&~(4-1);d=k[i>>2]|0;k[j>>2]=i+4;if(!d)b=24;else{k[d>>2]=k[a+52>>2];d=0;b=23}break}case 4031:{i=(k[j>>2]|0)+(4-1)&~(4-1);d=k[i>>2]|0;k[j>>2]=i+4;if(!d)b=24;else{k[d>>2]=k[a+84>>2];d=0;b=23}break}case 4028:{d=a+d|0;b=a+48|0;c=b;e=c+40|0;do{k[c>>2]=0;c=c+4|0}while((c|0)<(e|0));hd(i,4028,h);rf(d|0,0,4256)|0;k[d+2376>>2]=1;k[d>>2]=65536;k[d+4168>>2]=0;k[d+4148>>2]=0;k[d+4152>>2]=3176576;k[d+4172>>2]=0;k[d+4244>>2]=65536;k[d+4248>>2]=65536;k[d+4260>>2]=20;k[d+4256>>2]=2;j=d+4264|0;rf(j|0,0,4256)|0;k[d+6640>>2]=1;k[j>>2]=65536;k[d+8432>>2]=0;k[d+8412>>2]=0;k[d+8416>>2]=3176576;k[d+8436>>2]=0;k[d+8508>>2]=65536;k[d+8512>>2]=65536;k[d+8524>>2]=20;k[d+8520>>2]=2;j=d+8528|0;k[j>>2]=0;k[j+4>>2]=0;k[j+8>>2]=0;k[d+8548>>2]=0;k[b>>2]=k[a+8>>2];k[a+64>>2]=(k[a+12>>2]|0)/400|0;d=0;b=23;break}case 4029:{i=(k[j>>2]|0)+(4-1)&~(4-1);d=k[i>>2]|0;k[j>>2]=i+4;if(!d)b=24;else{k[d>>2]=k[a+12>>2];d=0;b=23}break}case 4033:{h=(k[j>>2]|0)+(4-1)&~(4-1);d=k[h>>2]|0;k[j>>2]=h+4;if(d)if((k[a+60>>2]|0)==1002){k[e>>2]=d;hd(i,4033,e);d=0;b=23;break a}else{k[d>>2]=k[a+36>>2];d=0;b=23;break a}else b=24;break}case 4045:{i=(k[j>>2]|0)+(4-1)&~(4-1);d=k[i>>2]|0;k[j>>2]=i+4;if(!d)b=24;else{k[d>>2]=k[a+40>>2];d=0;b=23}break}case 4034:{i=(k[j>>2]|0)+(4-1)&~(4-1);d=k[i>>2]|0;k[j>>2]=i+4;if((d+32768|0)>>>0>65535)b=24;else{k[a+40>>2]=d;d=0;b=23}break}case 4039:{i=(k[j>>2]|0)+(4-1)&~(4-1);d=k[i>>2]|0;k[j>>2]=i+4;if(!d)b=24;else{k[d>>2]=k[a+72>>2];d=0;b=23}break}case 4046:{a=(k[j>>2]|0)+(4-1)&~(4-1);d=k[a>>2]|0;k[j>>2]=a+4;if(d>>>0>1)b=24;else{k[f>>2]=d;hd(i,4046,f);d=0;b=23}break}case 4047:{a=(k[j>>2]|0)+(4-1)&~(4-1);d=k[a>>2]|0;k[j>>2]=a+4;if(!d)b=24;else{k[g>>2]=d;hd(i,4047,g);d=0;b=23}break}default:{d=-5;b=23}}while(0);if((b|0)==23){a=d;r=l;return a|0}else if((b|0)==24){a=-1;r=l;return a|0}return 0}function Uc(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;var h=0,i=0,k=0;h=(c|0)>0;if(h){i=0;do{k=a+((ha(i+d|0,g)|0)+e<<1)|0;o[b+(i<<2)>>2]=+(j[k>>1]|0);i=i+1|0}while((i|0)!=(c|0))}if((f|0)>-1){if(h)h=0;else return;do{i=a+((ha(h+d|0,g)|0)+f<<1)|0;k=b+(h<<2)|0;o[k>>2]=+o[k>>2]+ +(j[i>>1]|0);h=h+1|0}while((h|0)!=(c|0));return}if((g|0)<2|(f|0)!=-2|h^1)return;else h=1;do{e=0;do{f=a+((ha(e+d|0,g)|0)+h<<1)|0;k=b+(e<<2)|0;o[k>>2]=+o[k>>2]+ +(j[f>>1]|0);e=e+1|0}while((e|0)!=(c|0));h=h+1|0}while((h|0)!=(g|0));return}function Vc(a,b,c,d,e,f,g,h,l,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;l=l|0;m=m|0;n=n|0;var p=0,q=0,s=0,u=0,v=0.0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0.0,I=0.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,Z=0,_=0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ga=0.0,ia=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0,qa=0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0.0,xa=0.0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0.0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0.0,Oa=0.0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0,Va=0,Wa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0.0,db=0,eb=0.0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Xc=0,Yc=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0.0,mf=0.0,nf=0.0,of=0.0,pf=0.0,qf=0.0,sf=0.0,tf=0.0,uf=0.0,vf=0.0,yf=0.0,zf=0.0,Af=0.0,Bf=0.0,Cf=0.0,Df=0.0,Ef=0.0;hf=r;r=r+12288|0;cf=hf+928|0;$e=hf+920|0;_e=hf+912|0;Ze=hf+904|0;Ye=hf+896|0;Xe=hf+888|0;Ve=hf+880|0;Ue=hf+872|0;Te=hf+864|0;Se=hf+856|0;gf=hf+552|0;Qe=hf+544|0;Pe=hf+536|0;Oe=hf+528|0;Ne=hf+520|0;Me=hf+512|0;Le=hf+504|0;Je=hf+496|0;Ie=hf+488|0;De=hf+480|0;Ce=hf+472|0;Be=hf+464|0;Ae=hf+456|0;ze=hf+448|0;we=hf+440|0;ve=hf+432|0;ue=hf+424|0;ye=hf+416|0;xe=hf+408|0;ne=hf+400|0;je=hf;Vd=hf+12208|0;$d=hf+12136|0;Td=hf+12104|0;Wd=hf+12e3|0;Xd=hf+11992|0;ee=hf+11032|0;ae=hf+11e3|0;Ud=hf+10920|0;Zd=hf+10844|0;_d=hf+10768|0;Yd=hf+6928|0;ce=hf+3088|0;de=hf+2128|0;be=hf+1160|0;te=hf+2120|0;We=hf+1112|0;df=hf+1108|0;Fe=hf+1104|0;ef=hf+1048|0;me=hf+948|0;qe=hf+944|0;He=hf+936|0;Re=hf+12282|0;bf=hf+12280|0;k[df>>2]=0;x=(e|0)>1276?1276:e;ff=a+18032|0;k[ff>>2]=0;if((c|0)<1|(x|0)<1){d=-1;r=hf;return d|0}if((x|0)==1?(k[a+144>>2]|0)==(c*10|0):0){d=-2;r=hf;return d|0}se=a+(k[a+4>>2]|0)|0;af=a+(k[a>>2]|0)|0;pe=a+108|0;if((k[pe>>2]|0)==2051)Ee=0;else Ee=k[a+116>>2]|0;oe=k[a+168>>2]|0;oe=(oe|0)>(f|0)?f:oe;k[je>>2]=Fe;ad(af,10015,je)|0;k[ef>>2]=0;re=a+8|0;ie=a+44|0;do if((k[ie>>2]|0)>6?(u=k[a+144>>2]|0,(u|0)>15999):0){he=a+112|0;f=ha(k[he>>2]|0,c)|0;if((f|0)>0){p=0;y=0.0;v=0.0;do{eb=+o[b+(p<<2)>>2];y=y>eb?y:eb;v=v<eb?v:eb;p=p+1|0}while((p|0)!=(f|0))}else{y=0.0;v=0.0}eb=-v;if((y>eb?y:eb)<=1.0/+(1<<oe|0)){h=a+18016|0;k[h>>2]=0;p=0;_a=0;q=-1;s=-1;Ya=1;break}ge=a+8464|0;q=k[ge>>2]|0;fe=a+8468|0;s=k[fe>>2]|0;p=k[Fe>>2]|0;f=h&-2;if(!g)f=q;else{Rd=(u*95|0)/50|0;Rd=(Rd|0)<(f|0)?Rd:f;Sd=a+7640|0;f=k[Sd>>2]|0;h=Rd-f|0;if((h|0)>0){Md=(u|0)/50|0;Nd=a+7636|0;Od=a+196|0;Pd=a+192|0;Qd=a+7612|0;Yc=p+72|0;cd=a+5960|0;dd=a+3080|0;ed=a+8476|0;fd=a+8472|0;gd=a+8460|0;hd=a+5e3|0;id=a+4040|0;L=ee+8|0;jd=a+7196|0;kd=a+7268|0;ld=a+7200|0;md=a+7272|0;nd=a+7204|0;od=a+7276|0;pd=a+7208|0;qd=a+7280|0;td=a+7212|0;ud=a+7284|0;vd=a+7216|0;wd=a+7288|0;xd=a+7220|0;yd=a+7292|0;zd=a+7224|0;Ad=a+7296|0;Bd=a+7228|0;Cd=a+7300|0;Dd=a+7232|0;Ed=a+7304|0;Fd=a+7236|0;Gd=a+7308|0;Hd=a+7240|0;Kd=a+7312|0;Ld=a+7244|0;za=a+7316|0;Aa=a+7248|0;Ba=a+7320|0;Ca=a+7252|0;Da=a+7324|0;Ea=a+7256|0;Fa=a+7328|0;Ga=a+7260|0;Ia=a+7332|0;Ja=a+7264|0;Ka=a+7336|0;La=ce+4|0;Ma=ce+8|0;Qa=ce+3832|0;Ra=ce+12|0;Sa=ce+3836|0;Ua=ce+16|0;Va=ce+3824|0;Wa=ce+20|0;Ya=ce+3828|0;Za=ce+24|0;_a=ce+3816|0;$a=ce+28|0;ab=ce+3820|0;bb=a+7628|0;M=Zd+68|0;N=_d+68|0;db=oe+-8|0;cb=5.699999746866524e-04/+(1<<((db|0)<0?0:db)|0);cb=cb*cb;db=a+6040|0;eb=cb*160.0;fb=a+7620|0;gb=a+7624|0;O=$d+8|0;P=$d+12|0;Q=$d+16|0;R=$d+20|0;S=$d+24|0;T=$d+28|0;U=$d+32|0;Z=$d+36|0;_=$d+40|0;pa=$d+44|0;qa=$d+48|0;ya=$d+52|0;hb=$d+4|0;ib=$d+56|0;jb=$d+60|0;kb=a+6036|0;lb=a+7512|0;mb=a+7416|0;nb=a+7480|0;ob=a+7448|0;pb=a+7544|0;qb=Td+4|0;rb=a+7516|0;sb=a+7420|0;tb=a+7484|0;ub=a+7452|0;vb=a+7548|0;wb=Wd+4|0;xb=Td+8|0;yb=a+7520|0;zb=a+7424|0;Ab=a+7488|0;Bb=a+7456|0;Cb=a+7552|0;Db=Wd+8|0;Eb=Td+12|0;Fb=a+7524|0;Gb=a+7428|0;Hb=a+7492|0;Ib=a+7460|0;Jb=a+7556|0;Kb=Wd+12|0;Lb=Wd+16|0;Mb=Wd+20|0;Nb=Wd+24|0;Ob=Wd+28|0;Pb=Wd+32|0;Qb=Wd+36|0;Rb=Wd+40|0;Sb=a+7576|0;Tb=a+7580|0;Ub=a+7584|0;Vb=a+7588|0;Wb=a+7592|0;Xb=a+7596|0;Yb=a+7600|0;Zb=a+7604|0;_b=a+7608|0;$b=ae+4|0;ac=ae+8|0;bc=ae+12|0;cc=a+7496|0;dc=a+7528|0;ec=a+7464|0;fc=a+7432|0;gc=Td+16|0;hc=a+7500|0;ic=a+7532|0;jc=a+7468|0;kc=a+7436|0;lc=Td+20|0;mc=a+7504|0;nc=a+7536|0;oc=a+7472|0;pc=a+7440|0;qc=Td+24|0;rc=a+7508|0;sc=a+7540|0;tc=a+7476|0;uc=a+7444|0;vc=Td+28|0;wc=Wd+44|0;xc=Wd+48|0;yc=Wd+52|0;zc=Wd+56|0;Ac=Wd+60|0;Bc=Wd+64|0;Cc=Wd+68|0;Dc=Wd+72|0;Ec=Wd+76|0;Fc=Wd+80|0;Gc=Wd+84|0;Hc=Wd+88|0;Ic=Wd+92|0;Jc=Wd+96|0;Kc=Xd+4|0;Lc=a+7616|0;Mc=a+8044|0;Nc=a+7644|0;Oc=a+7648|0;Pc=a+8048|0;Qc=a+8040|0;Rc=a+8440|0;Sc=a+8456|0;Tc=a+8448|0;Uc=a+8452|0;Vc=a+8444|0;Xc=a+7632|0;while(1){p=(h|0)>(Md|0)?Md:h;w=k[Nd>>2]|0;wa=1.0/+(w+1|0);Ta=(w|0)>9?.10000000149011612:wa;Na=(w|0)>24?.03999999910593033:wa;D=(w|0)>499;B=k[Od>>2]|0;a:do if((B|0)<48e3){switch(B|0){case 16e3:break;default:{C=f;break a}}p=(p*3|0)/2|0;C=(f*3|0)/2|0}else{switch(B|0){case 48e3:break;default:{C=f;break a}}p=(p|0)/2|0;C=(f|0)/2|0}while(0);if((w|0)<4){o[Qd>>2]=(k[Pd>>2]|0)==2048?.10000000149011612:.625;u=k[Yc>>2]|0;if(!w)k[cd>>2]=240}else u=k[Yc>>2]|0;K=k[cd>>2]|0;w=720-K|0;xa=+$c(n,g,a+3080+(K<<2)|0,ed,(p|0)<(w|0)?p:w,C,l,m,B);xa=xa+ +o[fd>>2];o[fd>>2]=xa;B=k[cd>>2]|0;w=B+p|0;do if((w|0)<720)k[cd>>2]=w;else{K=k[gd>>2]|0;k[gd>>2]=((K|0)>98?-99:1)+K;w=0;do{Oa=+o[4916+(w<<2)>>2];o[Yd+(w<<3)>>2]=Oa*+o[a+3080+(w<<2)>>2];o[Yd+(w<<3)+4>>2]=Oa*+o[a+3080+(w+240<<2)>>2];J=480-w+-1|0;o[Yd+(J<<3)>>2]=Oa*+o[a+3080+(J<<2)>>2];o[Yd+(J<<3)+4>>2]=Oa*+o[a+3080+(719-w<<2)>>2];w=w+1|0}while((w|0)!=240);J=a+8488+(K*56|0)|0;wf(dd|0,hd|0,960)|0;E=p+-720+B|0;v=+$c(n,g,id,ed,E,C+720-B|0,l,m,k[Od>>2]|0);o[fd>>2]=v;k[cd>>2]=E+240;v=+o[u+4>>2];if((k[u>>2]|0)>0){p=u+44|0;w=0;do{Oa=+o[Yd+(w<<3)+4>>2];o[ce+(j[(k[p>>2]|0)+(w<<1)>>1]<<3)>>2]=v*+o[Yd+(w<<3)>>2];o[ce+(j[(k[p>>2]|0)+(w<<1)>>1]<<3)+4>>2]=v*Oa;w=w+1|0}while((w|0)<(k[u>>2]|0))}sd(u,ce);I=+o[ce>>2];if(I!=I|0.0!=0.0){k[J>>2]=0;break}else C=1;do{G=+o[ce+(C<<3)>>2];E=480-C|0;z=+o[ce+(E<<3)>>2];v=G+z;A=+o[ce+(C<<3)+4>>2];F=+o[ce+(E<<3)+4>>2];y=A-F;F=A+F;G=z-G;z=v*v;A=y*y;do if(!(z+A<1.000000045813705e-18))if(z<A){v=(y<0.0?-1.5707963705062866:1.5707963705062866)+-(v*y*(z*.43157973885536194+A))/((z*.6784840226173401+A)*(z*.0859554186463356+A));break}else{v=v*y;v=(y<0.0?-1.5707963705062866:1.5707963705062866)+v*(z+A*.43157973885536194)/((z+A*.6784840226173401)*(z+A*.0859554186463356))-(v<0.0?-1.5707963705062866:1.5707963705062866);break}else v=0.0;while(0);z=v*.15915493667125702;w=a+200+(C<<2)|0;A=z-+o[w>>2];B=a+1160+(C<<2)|0;H=A-+o[B>>2];v=F*F;y=G*G;do if(!(y+v<1.000000045813705e-18))if(v<y){v=(G<0.0?-1.5707963705062866:1.5707963705062866)+-(G*F*(y+v*.43157973885536194))/((y+v*.6784840226173401)*(y+v*.0859554186463356));break}else{Oa=G*F;v=(G<0.0?-1.5707963705062866:1.5707963705062866)+Oa*(y*.43157973885536194+v)/((y*.6784840226173401+v)*(y*.0859554186463356+v))-(Oa<0.0?-1.5707963705062866:1.5707963705062866);break}else v=0.0;while(0);G=v*.15915493667125702;F=G-z;A=F-A;p=(o[t>>2]=H,k[t>>2]|0);do if((p&2130706432)>>>0>1249902592)v=H;else{p=(p|0)<0;v=p?H+-8388608.0+8388608.0:H+8388608.0+-8388608.0;if(!(v==0.0))break;v=p?-0.0:0.0}while(0);y=H-+(~~v|0);z=+W(+y);u=be+(C<<2)|0;y=y*y;y=y*y;p=(o[t>>2]=A,k[t>>2]|0);do if((p&2130706432)>>>0>1249902592)v=A;else{p=(p|0)<0;v=p?A+-8388608.0+8388608.0:A+8388608.0+-8388608.0;if(!(v==0.0))break;v=p?-0.0:0.0}while(0);Oa=A-+(~~v|0);Ha=z+ +W(+Oa);o[u>>2]=Ha;Oa=Oa*Oa;Oa=Oa*Oa;E=a+2120+(C<<2)|0;o[de+(C<<2)>>2]=1.0/((y+ +o[E>>2]+Oa*2.0)*.25*62341.81640625+1.0)+-.014999999664723873;o[ee+(C<<2)>>2]=1.0/(Oa*62341.81640625+1.0)+-.014999999664723873;o[w>>2]=G;o[B>>2]=F;o[E>>2]=Oa;C=C+1|0}while((C|0)!=240);v=+o[L>>2];p=2;do{Oa=+o[ee+(p+-1<<2)>>2];E=p;p=p+1|0;va=v;v=+o[ee+(p<<2)>>2];Oa=Oa>v?Oa:v;E=de+(E<<2)|0;Ha=+o[E>>2];Oa=(va<Oa?va:Oa)+-.10000000149011612;o[E>>2]=(Ha>Oa?Ha:Oa)*.8999999761581421}while((p|0)!=239);E=a+8488+(K*56|0)+16|0;o[E>>2]=0.0;if(!(k[Nd>>2]|0)){o[jd>>2]=1.0e10;o[kd>>2]=-1.0e10;o[ld>>2]=1.0e10;o[md>>2]=-1.0e10;o[nd>>2]=1.0e10;o[od>>2]=-1.0e10;o[pd>>2]=1.0e10;o[qd>>2]=-1.0e10;o[td>>2]=1.0e10;o[ud>>2]=-1.0e10;o[vd>>2]=1.0e10;o[wd>>2]=-1.0e10;o[xd>>2]=1.0e10;o[yd>>2]=-1.0e10;o[zd>>2]=1.0e10;o[Ad>>2]=-1.0e10;o[Bd>>2]=1.0e10;o[Cd>>2]=-1.0e10;o[Dd>>2]=1.0e10;o[Ed>>2]=-1.0e10;o[Fd>>2]=1.0e10;o[Gd>>2]=-1.0e10;o[Hd>>2]=1.0e10;o[Kd>>2]=-1.0e10;o[Ld>>2]=1.0e10;o[za>>2]=-1.0e10;o[Aa>>2]=1.0e10;o[Ba>>2]=-1.0e10;o[Ca>>2]=1.0e10;o[Da>>2]=-1.0e10;o[Ea>>2]=1.0e10;o[Fa>>2]=-1.0e10;o[Ga>>2]=1.0e10;o[Ia>>2]=-1.0e10;o[Ja>>2]=1.0e10;o[Ka>>2]=-1.0e10}ia=I*2.0;ka=+o[La>>2]*2.0;la=+o[Ma>>2];ma=+o[Qa>>2];na=+o[Ra>>2];oa=+o[Sa>>2];Ha=+o[Ua>>2];va=+o[Va>>2];ua=+o[Wa>>2];ta=+o[Ya>>2];v=+o[Za>>2];Oa=+o[_a>>2];sa=+o[$a>>2];ra=+o[ab>>2];ra=+fa(+(ia*ia+ka*ka+(la*la+ma*ma+na*na+oa*oa)+(Ha*Ha+va*va+ua*ua+ta*ta)+(v*v+Oa*Oa+sa*sa+ra*ra)+1.000000013351432e-10))*.7213475108146667;o[Ud>>2]=ra;w=4;B=0;ra=0.0;sa=0.0;Oa=0.0;v=0.0;ta=0.0;ua=0.0;va=0.0;do{C=B;B=B+1|0;p=w;w=k[5876+(B<<2)>>2]|0;if((p|0)<(w|0)){A=0.0;y=0.0;z=0.0;do{ma=+o[ce+(p<<3)>>2];u=480-p|0;na=+o[ce+(u<<3)>>2];oa=+o[ce+(p<<3)+4>>2];Ha=+o[ce+(u<<3)+4>>2];Ha=ma*ma+na*na+oa*oa+Ha*Ha;A=A+Ha;oa=+o[de+(p<<2)>>2];z=z+Ha*(oa<0.0?0.0:oa);y=y+Ha*2.0*(.5-+o[be+(p<<2)>>2]);p=p+1|0}while((p|0)!=(w|0))}else{A=0.0;y=0.0;z=0.0}if(!(A<1.0e9)|(A!=A|0.0!=0.0)){Ge=54;break}o[a+6044+((k[bb>>2]|0)*72|0)+(C<<2)>>2]=A;G=A+1.0000000036274937e-15;sa=sa+y/G;F=A+1.000000013351432e-10;ra=ra+ +X(+F);F=+fa(+F);o[$d+(C<<2)>>2]=F;o[Ud+(B<<2)>>2]=F*.7213475108146667;o[a+6620+((k[bb>>2]|0)*72|0)+(C<<2)>>2]=F;if(!(k[Nd>>2]|0)){u=a+7196+(C<<2)|0;o[u>>2]=F;p=a+7268+(C<<2)|0;o[p>>2]=F;y=F;A=F}else{kf=a+7268+(C<<2)|0;jf=a+7196+(C<<2)|0;p=kf;u=jf;y=+o[kf>>2];A=+o[jf>>2]}do if(y>A+7.5)if(y-F>F-A){y=y+-.009999999776482582;o[p>>2]=y;break}else{o[u>>2]=A+.009999999776482582;break}while(0);do if(F>y){o[p>>2]=F;y=F+-15.0;A=+o[u>>2];A=y>A?y:A;o[u>>2]=A;y=F}else{A=+o[u>>2];if(!(F<A))break;o[u>>2]=F;A=F+15.0;y=A<y?A:y;o[p>>2]=y;A=F}while(0);ga=+o[a+6044+(C<<2)>>2];da=+X(+ga)+0.0;ia=+o[a+6116+(C<<2)>>2];da=da+ +X(+ia);ka=+o[a+6188+(C<<2)>>2];da=da+ +X(+ka);la=+o[a+6260+(C<<2)>>2];da=da+ +X(+la);ma=+o[a+6332+(C<<2)>>2];da=da+ +X(+ma);na=+o[a+6404+(C<<2)>>2];da=da+ +X(+na);oa=+o[a+6476+(C<<2)>>2];da=da+ +X(+oa);Ha=+o[a+6548+(C<<2)>>2];ua=ua+(F-A)/(y-A+1.0000000036274937e-15);y=(da+ +X(+Ha))/+X(+((ga+0.0+ia+ka+la+ma+na+oa+Ha)*8.0+1.0e-15));y=y>.9900000095367432?.9900000095367432:y;y=y*y;y=y*y;Oa=Oa+y;Ha=z/G;p=a+5964+(C<<2)|0;y=+o[p>>2]*y;y=Ha>y?Ha:y;o[Vd+(C<<2)>>2]=y;v=v+y;if((C|0)>8)v=v-+o[Vd+(C+-9<<2)>>2];Ha=(+(C+-18|0)*.029999999329447746+1.0)*v;ta=ta>Ha?ta:Ha;va=va+ +(C+-8|0)*y;o[p>>2]=y}while((B|0)<18);if((Ge|0)==54){Ge=0;k[J>>2]=0;break}p=k[Ud>>2]|0;k[Zd>>2]=p;v=(k[t>>2]=p,+o[t>>2]);z=v+-2.5;o[_d>>2]=z;p=4;y=v;u=1;do{kf=p;p=k[5876+(u<<2)>>2]|0;oa=+(p-kf|0)*2.0*.25;na=y+oa;Ha=+o[Ud+(u<<2)>>2];y=na<Ha?na:Ha;o[Zd+(u<<2)>>2]=y;oa=z-oa;Ha=Ha+-2.5;z=oa>Ha?oa:Ha;o[_d+(u<<2)>>2]=z;u=u+1|0}while((u|0)!=19);p=192;y=+o[M>>2];z=+o[N>>2];u=16;while(1){kf=p;p=k[5876+(u<<2)>>2]|0;oa=+(kf-p|0)*2.0*.25;na=y+oa;kf=Zd+(u<<2)|0;Ha=+o[kf>>2];y=na<Ha?na:Ha;o[kf>>2]=y;oa=z-oa;kf=_d+(u<<2)|0;Ha=+o[kf>>2];z=oa>Ha?oa:Ha;o[kf>>2]=z;if((u|0)<=0){p=0;break}else u=u+-1|0}while(1){oa=+o[_d+(p<<2)>>2]-v;Ha=v-(+o[Zd+(p<<2)>>2]+2.5);kf=~~+V(+(((oa<0.0?0.0:oa)+(Ha<0.0?0.0:Ha))*64.0+.5));i[a+8488+(K*56|0)+36+p>>0]=(kf|0)>255?255:kf;p=p+1|0;if((p|0)==19){p=0;oa=0.0;break}v=+o[Ud+(p<<2)>>2]}do{v=+o[a+6620+(p*72|0)+20>>2];y=+o[a+6620+(p*72|0)+24>>2];z=+o[a+6620+(p*72|0)+28>>2];A=+o[a+6620+(p*72|0)+32>>2];F=+o[a+6620+(p*72|0)+36>>2];G=+o[a+6620+(p*72|0)+40>>2];H=+o[a+6620+(p*72|0)+44>>2];I=+o[a+6620+(p*72|0)+48>>2];$=+o[a+6620+(p*72|0)+52>>2];aa=+o[a+6620+(p*72|0)>>2];ba=+o[a+6620+(p*72|0)+4>>2];ca=+o[a+6620+(p*72|0)+8>>2];da=+o[a+6620+(p*72|0)+12>>2];ga=+o[a+6620+(p*72|0)+16>>2];ia=+o[a+6620+(p*72|0)+56>>2];ka=+o[a+6620+(p*72|0)+60>>2];la=+o[a+6620+(p*72|0)+64>>2];ma=+o[a+6620+(p*72|0)+68>>2];u=0;na=999999986991104.0;do{Ef=aa-+o[a+6620+(u*72|0)>>2];Df=ba-+o[a+6620+(u*72|0)+4>>2];Cf=ca-+o[a+6620+(u*72|0)+8>>2];Bf=da-+o[a+6620+(u*72|0)+12>>2];Af=ga-+o[a+6620+(u*72|0)+16>>2];zf=v-+o[a+6620+(u*72|0)+20>>2];yf=y-+o[a+6620+(u*72|0)+24>>2];vf=z-+o[a+6620+(u*72|0)+28>>2];uf=A-+o[a+6620+(u*72|0)+32>>2];tf=F-+o[a+6620+(u*72|0)+36>>2];sf=G-+o[a+6620+(u*72|0)+40>>2];qf=H-+o[a+6620+(u*72|0)+44>>2];pf=I-+o[a+6620+(u*72|0)+48>>2];of=$-+o[a+6620+(u*72|0)+52>>2];nf=ia-+o[a+6620+(u*72|0)+56>>2];mf=ka-+o[a+6620+(u*72|0)+60>>2];lf=la-+o[a+6620+(u*72|0)+64>>2];Ha=ma-+o[a+6620+(u*72|0)+68>>2];Ha=Ef*Ef+0.0+Df*Df+Cf*Cf+Bf*Bf+Af*Af+zf*zf+yf*yf+vf*vf+uf*uf+tf*tf+sf*sf+qf*qf+pf*pf+of*of+nf*nf+mf*mf+lf*lf+Ha*Ha;na=(u|0)==(p|0)|na<Ha?na:Ha;u=u+1|0}while((u|0)!=8);oa=oa+na;p=p+1|0}while((p|0)!=8);Ha=+X(+(oa*.125/18.0));A=D?.9980000257492065:1.0-wa;u=4;p=0;v=0.0;y=0.0;b:while(1){D=p;while(1){C=D;D=D+1|0;B=u;u=k[5876+(D<<2)>>2]|0;if((u|0)>(B|0)){z=0.0;w=B;do{Bf=+o[ce+(w<<3)>>2];kf=480-w|0;Cf=+o[ce+(kf<<3)>>2];Df=+o[ce+(w<<3)+4>>2];Ef=+o[ce+(kf<<3)+4>>2];z=z+(Bf*Bf+Cf*Cf+Df*Df+Ef*Ef);w=w+1|0}while((w|0)!=(u|0))}else z=0.0;y=y>z?y:z;kf=a+7340+(C<<2)|0;Ef=A*+o[kf>>2];Ef=Ef>z?Ef:z;o[kf>>2]=Ef;Ef=z>Ef?z:Ef;Df=v*.05000000074505806;v=Df>Ef?Df:Ef;if(Ef*1.0e9>y&Ef>v*.1?Ef>cb*+(u-B|0):0)break;if((D|0)>=18)break b}if((D|0)<18)p=D;else{p=D;break}}if((k[Od>>2]|0)==48e3){Bf=xa*1.7361111531499773e-05;Cf=(k[db>>2]|0)==20?.029999999329447746:.07000000029802322;B=a+7340+(D<<2)|0;Ef=A*+o[B>>2];Ef=Ef>Bf?Ef:Bf;o[B>>2]=Ef;Ef=Bf>Ef?Bf:Ef;Df=v*.05000000074505806;B=Ef>eb&(Ef*1.0e9>(y>Bf?y:Bf)?Ef>Cf*(Df>Ef?Df:Ef):0)?20:p;B=(B|0)>16?20:B}else B=p;C=k[Nd>>2]|0;z=+Ke(ra)*20.0;y=+o[fb>>2]+-.003000000026077032;y=y>z?y:z;o[fb>>2]=y;v=(1.0-Na)*+o[gb>>2];o[gb>>2]=z<y+-30.0?Na+v:v;v=+o[O>>2];y=+o[P>>2];z=+o[Q>>2];A=+o[R>>2];F=+o[S>>2];G=+o[T>>2];H=+o[U>>2];I=+o[Z>>2];$=+o[_>>2];aa=+o[pa>>2];ba=+o[qa>>2];ca=+o[ya>>2];da=+o[$d>>2];ga=+o[hb>>2];ia=+o[ib>>2];ka=+o[jb>>2];p=0;do{kf=p<<4;o[Td+(p<<2)>>2]=da*+o[5952+(kf<<2)>>2]+0.0+ga*+o[5952+((kf|1)<<2)>>2]+v*+o[5952+((kf|2)<<2)>>2]+y*+o[5952+((kf|3)<<2)>>2]+z*+o[5952+((kf|4)<<2)>>2]+A*+o[5952+((kf|5)<<2)>>2]+F*+o[5952+((kf|6)<<2)>>2]+G*+o[5952+((kf|7)<<2)>>2]+H*+o[5952+((kf|8)<<2)>>2]+I*+o[5952+((kf|9)<<2)>>2]+$*+o[5952+((kf|10)<<2)>>2]+aa*+o[5952+((kf|11)<<2)>>2]+ba*+o[5952+((kf|12)<<2)>>2]+ca*+o[5952+((kf|13)<<2)>>2]+ia*+o[5952+((kf|14)<<2)>>2]+ka*+o[5952+((kf|15)<<2)>>2];p=p+1|0}while((p|0)!=8);w=0;do{p=w<<4;u=0;v=0.0;do{v=v+ +o[5952+(u+p<<2)>>2]*.5*(+o[a+7268+(u<<2)>>2]+ +o[a+7196+(u<<2)>>2]);u=u+1|0}while((u|0)!=16);o[ae+(w<<2)>>2]=v;w=w+1|0}while((w|0)!=8);D=(C|0)<3?20:B;xa=sa/18.0;o[E>>2]=xa+(1.0-xa)*((C|0)<10?.5:ua/18.0);G=ta/9.0;ba=+o[kb>>2]*.800000011920929;ba=G>ba?G:ba;o[kb>>2]=ba;u=a+8488+(K*56|0)+8|0;o[u>>2]=va*.015625;k[bb>>2]=((k[bb>>2]|0)+1|0)%8|0;p=C+1|0;k[Nd>>2]=(p|0)<1e4?p:1e4;p=a+8488+(K*56|0)+4|0;o[p>>2]=ba;ba=+o[Td>>2];G=+o[lb>>2];Bf=ba+G;ca=+o[mb>>2];da=+o[nb>>2];aa=ca+da;yf=+o[pb>>2];o[Wd>>2]=+o[ob>>2]*.6969299912452698+(aa*.49195000529289246-Bf*.12298999726772308)-yf*1.4349000453948975;ga=+o[qb>>2];H=+o[rb>>2];Cf=ga+H;ia=+o[sb>>2];ka=+o[tb>>2];Df=ia+ka;la=+o[ub>>2];zf=+o[vb>>2];y=la*.6969299912452698+(Df*.49195000529289246-Cf*.12298999726772308)-zf*1.4349000453948975;o[wb>>2]=y;ma=+o[xb>>2];I=+o[yb>>2];Ef=ma+I;na=+o[zb>>2];oa=+o[Ab>>2];v=na+oa;ra=+o[Bb>>2];Af=+o[Cb>>2];z=ra*.6969299912452698+(v*.49195000529289246-Ef*.12298999726772308)-Af*1.4349000453948975;o[Db>>2]=z;sa=+o[Eb>>2];$=+o[Fb>>2];ta=+o[Gb>>2];ua=+o[Hb>>2];va=+o[Ib>>2];wa=+o[Jb>>2];A=va*.6969299912452698+((ta+ua)*.49195000529289246-(sa+$)*.12298999726772308)-wa*1.4349000453948975;o[Kb>>2]=A;F=1.0-Ta;o[pb>>2]=Ta*ba+F*yf;o[vb>>2]=Ta*ga+F*zf;o[Cb>>2]=Ta*ma+F*Af;o[Jb>>2]=Ta*sa+F*wa;G=(ba-G)*.6324599981307983+(ca-da)*.31622999906539917;o[Lb>>2]=G;H=(ga-H)*.6324599981307983+(ia-ka)*.31622999906539917;o[Mb>>2]=H;I=(ma-I)*.6324599981307983+(na-oa)*.31622999906539917;o[Nb>>2]=I;$=(sa-$)*.6324599981307983+(ta-ua)*.31622999906539917;o[Ob>>2]=$;wa=+o[ob>>2];aa=Bf*.5345199704170227-aa*.26725998520851135-wa*.5345199704170227;o[Pb>>2]=aa;o[Qb>>2]=Cf*.5345199704170227-Df*.26725998520851135-la*.5345199704170227;o[Rb>>2]=Ef*.5345199704170227-v*.26725998520851135-ra*.5345199704170227;v=+o[Sb>>2];if((k[Nd>>2]|0)>5){Ef=+o[Wd>>2];v=F*v+Ef*(Ta*Ef);o[Sb>>2]=v;y=F*+o[Tb>>2]+y*(Ta*y);o[Tb>>2]=y;z=F*+o[Ub>>2]+z*(Ta*z);o[Ub>>2]=z;A=A*(Ta*A)+F*+o[Vb>>2];o[Vb>>2]=A;Ef=G*(Ta*G)+F*+o[Wb>>2];o[Wb>>2]=Ef;G=H*(Ta*H)+F*+o[Xb>>2];o[Xb>>2]=G;H=I*(Ta*I)+F*+o[Yb>>2];o[Yb>>2]=H;o[Zb>>2]=$*(Ta*$)+F*+o[Zb>>2];I=aa*(Ta*aa)+F*+o[_b>>2];o[_b>>2]=I;F=Ef}else{y=+o[Tb>>2];z=+o[Ub>>2];A=+o[Vb>>2];F=+o[Wb>>2];G=+o[Xb>>2];H=+o[Yb>>2];I=+o[_b>>2]}o[Wd>>2]=ba-+o[ae>>2];o[wb>>2]=ga-+o[$b>>2];o[Db>>2]=ma-+o[ac>>2];o[Kb>>2]=sa-+o[bc>>2];o[lb>>2]=da;o[nb>>2]=wa;o[ob>>2]=ca;o[mb>>2]=ba;o[rb>>2]=ka;o[tb>>2]=la;o[ub>>2]=ia;o[sb>>2]=ga;o[yb>>2]=oa;o[Ab>>2]=ra;o[Bb>>2]=na;o[zb>>2]=ma;o[Fb>>2]=ua;o[Hb>>2]=va;o[Ib>>2]=ta;o[Gb>>2]=sa;k[dc>>2]=k[cc>>2];k[cc>>2]=k[ec>>2];k[ec>>2]=k[fc>>2];k[fc>>2]=k[gc>>2];k[ic>>2]=k[hc>>2];k[hc>>2]=k[jc>>2];k[jc>>2]=k[kc>>2];k[kc>>2]=k[lc>>2];k[nc>>2]=k[mc>>2];k[mc>>2]=k[oc>>2];k[oc>>2]=k[pc>>2];k[pc>>2]=k[qc>>2];k[sc>>2]=k[rc>>2];k[rc>>2]=k[tc>>2];k[tc>>2]=k[uc>>2];k[uc>>2]=k[vc>>2];Ef=+X(+v)+-5.6849470138549805;o[wc>>2]=Ef;Ef=+X(+y)+-3.475287914276123;o[xc>>2]=Ef;Ef=+X(+z)+-1.7706340551376343;o[yc>>2]=Ef;Ef=+X(+A)+-1.599784016609192;o[zc>>2]=Ef;Ef=+X(+F)+-3.7732150554656982;o[Ac>>2]=Ef;Ef=+X(+G)+-2.1633129119873047;o[Bc>>2]=Ef;Ef=+X(+H)+-1.260756015777588;o[Cc>>2]=Ef;Ef=+X(+I)+-1.9187949895858765;o[Ec>>2]=Ef;o[Dc>>2]=Ha+-.7799999713897705;o[Fc>>2]=+o[p>>2]+-.15472300350666046;o[Gc>>2]=+o[E>>2]+-.7246429920196533;o[Hc>>2]=Oa/18.0+-.7437170147895813;o[Ic>>2]=+o[u>>2]+.06921599805355072;o[Jc>>2]=+o[gb>>2]+-.06792999804019928;w=7268;B=0;do{p=w;u=0;v=+o[w>>2];do{p=p+4|0;v=v+ +o[Wd+(u<<2)>>2]*+o[p>>2];u=u+1|0}while((u|0)!=25);w=w+104|0;do if(v<8.0){if(!(v>-8.0)){v=-1.0;break}if(v!=v|0.0!=0.0){v=0.0;break}kf=v<0.0;v=kf?-v:v;jf=~~+V(+(v*25.0+.5));v=v-+(jf|0)*.03999999910593033;Ef=+o[6464+(jf<<2)>>2];v=(kf?-1.0:1.0)*(Ef+(1.0-Ef*Ef)*v*(1.0-Ef*v))}else v=1.0;while(0);o[je+(B<<2)>>2]=v;B=B+1|0}while((B|0)!=16);w=8932;B=0;do{p=w;u=0;v=+o[w>>2];do{p=p+4|0;v=v+ +o[je+(u<<2)>>2]*+o[p>>2];u=u+1|0}while((u|0)!=16);w=w+68|0;do if(v<8.0){if(!(v>-8.0)){v=-1.0;break}if(v!=v|0.0!=0.0){v=0.0;break}kf=v<0.0;v=kf?-v:v;jf=~~+V(+(v*25.0+.5));v=v-+(jf|0)*.03999999910593033;Ef=+o[6464+(jf<<2)>>2];v=(kf?-1.0:1.0)*(Ef+(1.0-Ef*Ef)*v*(1.0-Ef*v))}else v=1.0;while(0);o[Xd+(B<<2)>>2]=v;B=B+1|0}while((B|0)!=2);F=(+o[Xd>>2]+1.0)*.5;yf=+o[Kc>>2]*.5+.5;yf=yf*yf;o[Kc>>2]=yf;o[a+8488+(K*56|0)+32>>2]=yf;Cf=+o[Qd>>2];Df=1.0-Cf;Bf=Cf*1.0000000474974513e-03+Df*.009999999776482582;G=yf>.949999988079071?.949999988079071:yf;G=G<.05000000074505806?.05000000074505806:G;Af=+o[Lc>>2];kf=Af>.949999988079071;jf=(kf?.949999988079071:Af)<.05000000074505806;zf=kf|jf?(jf?.05000000074505806:.949999988079071):Af;Ef=1.0-Af;A=1.0-Bf;zf=+W(+(G-zf))*.05000000074505806/((1.0-G)*zf+G*(1.0-zf))+.019999999552965164;G=+Y(+yf,+zf)*(Ef*Bf+Af*A);G=G/(+Y(+(1.0-yf),+zf)*(Af*Bf+Ef*A)+G);o[Lc>>2]=G;o[a+8488+(K*56|0)+24>>2]=G;G=+o[Lc>>2];G=F*G+(1.0-G)*.5;o[Xd>>2]=G;F=G>.949999988079071?.949999988079071:G;F=F<.05000000074505806?.05000000074505806:F;jf=Cf>.949999988079071;kf=(jf?.949999988079071:Cf)<.05000000074505806;A=jf|kf?(kf?.05000000074505806:.949999988079071):Cf;F=+W(+(F-A))*.05000000074505806/((1.0-A)*F+A*(1.0-F))+.019999999552965164;A=+Y(+(1.0-G),+F);F=+Y(+G,+F);Ef=(Cf*.9998999834060669+Df*9.999999747378752e-05)*F;Ef=Ef/((Cf*9.999999747378752e-05+Df*.9998999834060669)*A+Ef);o[Qd>>2]=Ef;o[a+8488+(K*56|0)+20>>2]=Ef;if((k[Nd>>2]|0)==1){y=(k[Pd>>2]|0)==2048?.10000000149011612:.625;o[Mc>>2]=y;v=1.0-y;o[Nc>>2]=v}else{v=+o[Nc>>2];y=+o[Mc>>2]}z=v+ +o[Oc>>2];v=y+ +o[Pc>>2];o[Nc>>2]=A*(z*.9998999834060669);o[Mc>>2]=F*(v*.9998999834060669);p=1;do{kf=p;p=p+1|0;o[a+7644+(kf<<2)>>2]=A*+o[a+7644+(p<<2)>>2];o[a+8044+(kf<<2)>>2]=F*+o[a+8044+(p<<2)>>2]}while((p|0)!=99);o[Qc>>2]=A*(v*9.999999747378752e-05);o[Rc>>2]=F*(z*9.999999747378752e-05);p=0;v=9.999999682655225e-21;do{v=v+(+o[a+7644+(p<<2)>>2]+ +o[a+8044+(p<<2)>>2]);p=p+1|0}while((p|0)!=100);v=1.0/v;p=0;do{kf=a+7644+(p<<2)|0;o[kf>>2]=v*+o[kf>>2];kf=a+8044+(p<<2)|0;o[kf>>2]=v*+o[kf>>2];p=p+1|0}while((p|0)!=100);v=+o[Qd>>2];do if(+o[Kc>>2]>.75){y=v;if(y>.9){kf=(k[Sc>>2]|0)+1|0;k[Sc>>2]=(kf|0)<500?kf:500;Df=+o[Tc>>2];Ef=G-Df;o[Tc>>2]=Df+1.0/+(kf|0)*(Ef<-.20000000298023224?-.20000000298023224:Ef)}if(!(y<.1))break;kf=(k[Uc>>2]|0)+1|0;k[Uc>>2]=(kf|0)<500?kf:500;Df=+o[Vc>>2];Ef=G-Df;o[Vc>>2]=Df+1.0/+(kf|0)*(Ef>.20000000298023224?.20000000298023224:Ef)}while(0);k[Xc>>2]=v>.5&1;k[a+8488+(K*56|0)+28>>2]=D;k[db>>2]=D;o[a+8488+(K*56|0)+12>>2]=xa;k[J>>2]=1}while(0);h=h-Md|0;if((h|0)<=0)break;else f=f+Md|0}f=k[ge>>2]|0}else f=q;k[Sd>>2]=Rd-c}k[ef>>2]=0;B=k[a+8460>>2]|0;D=B-f|0;D=(D|0)<0?D+100|0:D;C=k[a+196>>2]|0;if((B|0)==(f|0)?1:((C|0)/50|0|0)>=(c|0))p=f;else{p=f+1|0;p=(p|0)==100?0:p}w=(((p|0)==(B|0))<<31>>31)+p|0;w=(w|0)<0?99:w;p=ef;h=a+8488+(w*56|0)|0;u=p+56|0;do{k[p>>2]=k[h>>2];p=p+4|0;h=h+4|0}while((p|0)<(u|0));h=ef+4|0;A=+o[h>>2];p=w+1|0;p=(p|0)==100?0:p;if((p|0)!=(B|0)){y=+o[a+8488+(p*56|0)+4>>2];v=A>y?A:y;y=A+y;p=p+1|0;p=(p|0)==100?0:p;if((p|0)!=(B|0)){Ef=+o[a+8488+(p*56|0)+4>>2];v=v>Ef?v:Ef;y=y+Ef;p=p+1|0;p=(p|0)==100?0:p;if((p|0)==(B|0))z=3.0;else{Ef=+o[a+8488+(p*56|0)+4>>2];y=y+Ef;z=4.0;v=v>Ef?v:Ef}}else z=2.0}else{y=A;z=1.0;v=A}Df=y/z;Ef=v+-.20000000298023224;o[h>>2]=Df>Ef?Df:Ef;p=(k[fe>>2]|0)+((c|0)/((C|0)/400|0|0)|0)|0;k[fe>>2]=p;if((p|0)>7){jf=p+-8|0;kf=jf>>>3;f=f+kf+1|0;k[fe>>2]=jf-(kf<<3);k[ge>>2]=f}if((f|0)>99)k[ge>>2]=f+-100;h=(D|0)>1;f=h?101-D|0:100;if((f|0)>0){p=0;v=0.0;do{v=v+ +o[a+8044+(p<<2)>>2];p=p+1|0}while((p|0)<(f|0));if(h)Ge=140}else{f=0;v=0.0;Ge=140}if((Ge|0)==140)while(1){v=v+ +o[a+7644+(f<<2)>>2];f=f+1|0;if((f|0)==100)break;else Ge=140}o[ef+20>>2]=v*+o[a+8448>>2]+(1.0-v)*+o[a+8444>>2];if(+o[ef+32>>2]>.10000000149011612){u=a+18024|0;v=+o[u>>2]*.9990000128746033;h=ha(k[he>>2]|0,c)|0;p=(h|0)>0;if(p){f=0;y=0.0;do{Ef=+o[b+(f<<2)>>2];y=y+Ef*Ef;f=f+1|0}while((f|0)!=(h|0))}else y=0.0;z=+(h|0);if(!(v>y/z)){if(p){f=0;v=0.0;do{Ef=+o[b+(f<<2)>>2];v=v+Ef*Ef;f=f+1|0}while((f|0)!=(h|0))}else v=0.0;v=v/z}o[u>>2]=v;Ge=151}else Ge=151}else{q=-1;s=-1;Ge=151}while(0);do if((Ge|0)==151){f=a+140|0;k[f>>2]=-1;p=k[ef>>2]|0;h=a+18016|0;k[h>>2]=0;if(p){if((k[a+124>>2]|0)==-1e3){kf=~~+V(+((1.0-+o[ef+20>>2])*100.0+.5));k[f>>2]=kf}f=k[ef+28>>2]|0;if((f|0)<13){k[h>>2]=1101;_a=1;Ya=0;break}if((f|0)<15){k[h>>2]=1102;_a=1;Ya=0;break}if((f|0)<17){k[h>>2]=1103;_a=1;Ya=0;break}if((f|0)<19){k[h>>2]=1104;_a=1;Ya=0;break}else{k[h>>2]=1105;_a=1;Ya=0;break}}else{p=0;_a=1;Ya=0}}while(0);Za=a+112|0;D=k[Za>>2]|0;B=(D|0)==2;if(B?(k[a+120>>2]|0)!=1:0){w=(k[a+144>>2]|0)/(c|0)|0;A=1.0-25.0/+(((w|0)<50?50:w)|0);f=c+-3|0;if((c|0)>3){u=0;y=0.0;z=0.0;v=0.0;do{kf=u<<1;vf=+o[b+(kf<<2)>>2];Bf=+o[b+((kf|1)<<2)>>2];yf=+o[b+((kf|2)<<2)>>2];Cf=+o[b+((kf|3)<<2)>>2];zf=+o[b+((kf|4)<<2)>>2];Df=+o[b+((kf|5)<<2)>>2];Af=+o[b+((kf|6)<<2)>>2];Ef=+o[b+((kf|7)<<2)>>2];y=y+(vf*vf+yf*yf+zf*zf+Af*Af);z=z+(vf*Bf+yf*Cf+zf*Df+Af*Ef);v=v+(Bf*Bf+Cf*Cf+Df*Df+Ef*Ef);u=u+4|0}while((u|0)<(f|0))}else{y=0.0;z=0.0;v=0.0}jf=a+14156|0;Ef=+o[jf>>2];Ef=Ef+A*(y-Ef);f=a+14160|0;y=+o[f>>2];y=y+A*(z-y);kf=a+14164|0;z=+o[kf>>2];z=z+A*(v-z);v=Ef<0.0?0.0:Ef;o[jf>>2]=v;y=y<0.0?0.0:y;o[f>>2]=y;z=z<0.0?0.0:z;o[kf>>2]=z;if((v>z?v:z)>7.999999797903001e-04){Cf=+X(+v);Ef=+X(+z);v=+X(+Cf);Df=+X(+Ef);Ef=Cf*Ef;Cf=y<Ef?y:Ef;o[f>>2]=Cf;Ef=Cf/(Ef+1.0000000036274937e-15);Df=+X(+(1.0-Ef*Ef))*(+W(+(v-Df))/(v+1.0000000036274937e-15+Df));kf=a+14168|0;v=+o[kf>>2];Ef=+(w|0);v=v+(Df-v)/Ef;o[kf>>2]=v;kf=a+14172|0;Ef=+o[kf>>2]-.019999999552965164/Ef;v=Ef>v?Ef:v;o[kf>>2]=v}else v=+o[a+14172>>2];v=v*20.0;v=v>1.0?1.0:v}else v=0.0;if(!c)f=(k[a+144>>2]|0)/400|0;else f=c;u=k[a+164>>2]|0;switch(u|0){case -1e3:{Wa=a+144|0;J=k[Wa>>2]|0;u=(ha(D,J)|0)+((J*60|0)/(f|0)|0)|0;break}case -1:{Wa=a+144|0;J=k[Wa>>2]|0;u=(ha(x<<3,J)|0)/(f|0)|0;break}default:{J=a+144|0;Wa=J;J=k[J>>2]|0}}Ua=a+160|0;k[Ua>>2]=u;Da=(J|0)/(c|0)|0;$a=a+148|0;O=(k[$a>>2]|0)==0;if(O){kf=(J*12|0)/(c|0)|0;u=(((kf|0)/2|0)+((u*12|0)/8|0)|0)/(kf|0)|0;x=(u|0)<(x|0)?u:x;u=(ha(kf<<3,x)|0)/12|0;k[Ua>>2]=u;if((x|0)<1)x=1;else Ge=179}else Ge=179;do if((Ge|0)==179)if(!((x|0)<3|(u|0)<(Da*24|0))){_=ha(x,Da)|0;if((Da|0)<50?(_|0)<300|(u|0)<2400:0)break;Z=_<<3;M=k[ie>>2]|0;Q=a+40|0;N=k[Q>>2]|0;E=Da+-50|0;f=u-(ha(E,(D*40|0)+20|0)|0)|0;if(O)f=f-((f|0)/12|0)|0;K=M+90|0;w=(ha(f,K)|0)/100|0;L=(N*12|0)+20|0;w=w-((ha(w,N)|0)/(L|0)|0)|0;c:do switch(k[a+124>>2]|0){case 3001:{C=127;break}case 3002:{C=0;break}default:{f=k[a+140>>2]|0;if((f|0)<=-1){C=(k[pe>>2]|0)==2048?115:48;break c}f=f*327>>8;if((k[pe>>2]|0)==2049)C=(f|0)<115?f:115;else C=f}}while(0);f=k[a+120>>2]|0;Va=a+14088|0;if((f|0)==-1e3)if(B){D=(w|0)>(((k[Va>>2]|0)==2?23e3:25e3)|0)?2:1;k[Va>>2]=D}else Ge=217;else if(B){k[Va>>2]=f;D=f}else Ge=217;if((Ge|0)==217)k[Va>>2]=D;f=u-(ha(E,(D*40|0)+20|0)|0)|0;if(O)f=f-((f|0)/12|0)|0;B=(ha(f,K)|0)/100|0;B=B-((ha(B,N)|0)/(L|0)|0)|0;w=k[pe>>2]|0;d:do if((w|0)!=2051){f=k[a+136>>2]|0;do if((f|0)==-1e3){Ef=1.0-v;f=~~(v*16.0e3+Ef*16.0e3);f=((ha(ha(C,~~(v*36.0e3+Ef*64.0e3)-f|0)|0,C)|0)>>14)+f|0;f=(w|0)==2048?f+8e3|0:f;w=k[a+14124>>2]|0;if((w|0)==1002)f=f+-4e3|0;else f=(w|0)>0?f+4e3|0:f;f=(B|0)>=(f|0)?1002:1e3;w=a+14120|0;k[w>>2]=f;do if(k[a+48>>2]|0){if((N|0)<=(128-C>>4|0))break;k[w>>2]=1e3;f=1e3}while(0);do if(!(k[a+184>>2]|0))k[a+56>>2]=0;else{kf=(p|Ya|0)==0;k[a+56>>2]=kf&1;if(!((C|0)>100&kf))break;k[w>>2]=1e3;f=1e3}while(0);if((x|0)>=((ha((Da|0)>50?9e3:6e3,c)|0)/(J<<3|0)|0|0)){p=w;break}k[w>>2]=1002;Sa=w;f=1002;break d}else{p=a+14120|0;k[p>>2]=f}while(0);if((f|0)!=1002)if(((J|0)/100|0|0)>(c|0)){k[p>>2]=1002;Sa=p;f=1002}else Sa=p;else{Sa=p;f=1002}}else{Sa=a+14120|0;k[Sa>>2]=1002;f=1002}while(0);U=a+176|0;if(k[U>>2]|0){k[Sa>>2]=1002;f=1002}Ra=a+14124|0;w=k[Ra>>2]|0;if((w|0)>0?(ke=(f|0)!=1002,!((w|0)==1002^ke)):0){p=ke&1;if(!ke)if(((J|0)/100|0|0)>(c|0)){f=1002;J=p;P=0;Qa=0}else{k[Sa>>2]=w;f=w;J=p;P=1;Qa=1}else{J=p;P=1;Qa=0}}else{J=0;P=0;Qa=0}if(((D|0)==1?(k[a+14128>>2]|0)==2:0)?(le=a+68|0,!((k[le>>2]|0)!=0|(f|0)==1002|(w|0)==1002)):0){k[le>>2]=1;k[Va>>2]=2;p=2}else{k[a+68>>2]=0;p=D}p=u-(ha(E,(p*40|0)+20|0)|0)|0;if(O)p=p-((p|0)/12|0)|0;p=(ha(p,K)|0)/100|0;do if((f|1|0)==1001){if((M|0)<2)p=(p<<2|0)/5|0;p=p-((ha(p,N)|0)/((N*6|0)+10|0)|0)|0;if((f|0)==1002){f=1002;C=0;Ge=266}else Ge=261}else{if((f|0)!=1002){p=p-((ha(p,N)|0)/(L|0)|0)|0;Ge=261;break}if((M|0)>=5){f=1002;C=0;Ge=266;break}f=1002;p=(p*9|0)/10|0;C=0;Ge=266}while(0);do if((Ge|0)==261){if((w|0)==1002){Id(se,k[a+180>>2]|0,me);f=k[Sa>>2]|0;if((f|0)==1002){f=1002;C=1;Ge=266;break}else w=1}else w=0;if(k[a+14148>>2]|0){C=w;Ge=266;break}if(k[a+84>>2]|0){C=w;Ge=266;break}u=a+14136|0;N=u;u=k[u>>2]|0;qa=p;C=w}while(0);do if((Ge|0)==266){w=a+14140|0;if(k[a+14148>>2]|0){do if((p|0)<14e3){if((p|0)>=13500){u=1104;break}if((p|0)>=11e3){u=1103;break}u=(p|0)<1e4?1101:1102}else u=1105;while(0);k[w>>2]=u;N=a+14136|0;k[N>>2]=u;qa=p;break}u=k[w>>2]|0;do if((p|0)<(((u|0)<1105?16e3:12e3)|0)){if((p|0)>=(((u|0)<1104?14500:12500)|0)){B=1104;break}if((p|0)>=(((u|0)<1103?12e3:1e4)|0)){B=1103;break}B=(p|0)<(((u|0)<1102?11e3:9e3)|0)?1101:1102}else B=1105;while(0);k[w>>2]=B;u=a+14136|0;k[u>>2]=B;if((f|0)==1002){N=u;u=B;f=1002;qa=p;break}if(!(B>>>0>1103&(k[a+88>>2]|0)==0)){N=u;u=B;qa=p;break}k[u>>2]=1103;N=u;u=1103;qa=p}while(0);p=k[a+132>>2]|0;if((u|0)>(p|0))k[N>>2]=p;else p=u;u=k[a+128>>2]|0;w=(u|0)==-1e3;if(!w){k[N>>2]=u;p=u}if((Z|0)<15e3&(f|0)!=1002){p=(p|0)<1103?p:1103;k[N>>2]=p}u=k[Wa>>2]|0;do if((u|0)<24001){if((p|0)>1104){k[N>>2]=1104;p=1104}if((u|0)>=16001)break;if((p|0)>1103){k[N>>2]=1103;p=1103}if((u|0)>=12001)break;if((p|0)>1102){k[N>>2]=1102;p=1102}if(!((u|0)<8001&(p|0)>1101))break;k[N>>2]=1101;p=1101}while(0);B=k[h>>2]|0;if(!((B|0)==0|w^1)){u=k[Va>>2]|0;w=(f|0)==1002;do if((qa|0)<=(u*18e3|0)&w)u=1101;else{if((qa|0)<=(u*24e3|0)&w){u=1102;break}if((qa|0)<=(u*3e4|0)){u=1103;break}u=(qa|0)>(u*44e3|0)?1105:1104}while(0);kf=(B|0)>(u|0)?B:u;k[h>>2]=kf;p=(p|0)<(kf|0)?p:kf;k[N>>2]=p}h=k[Q>>2]|0;O=a+52|0;e:do if((k[a+48>>2]|0)==0|(h|0)==0|(f|0)==1002)f=0;else{u=125-((h|0)<25?h:25)|0;h=(h|0)<6;f:do switch(k[O>>2]|0){case 1:{if(h){f=p<<1;f=ha((k[4736+(f+-2202<<2)>>2]|0)-(k[4736+(f+-2201<<2)>>2]|0)|0,u)|0;f=((((f&65535)*655|0)>>>16)+((f>>16)*655|0)|0)<(qa|0);break e}else f=p;while(1){kf=f<<1;kf=ha((k[4736+(kf+-2202<<2)>>2]|0)-(k[4736+(kf+-2201<<2)>>2]|0)|0,u)|0;if(((((kf&65535)*655|0)>>>16)+((kf>>16)*655|0)|0)<(qa|0)){f=1;break e}if((f|0)<=1101)break f;kf=f+-1|0;k[N>>2]=kf;f=kf}}case 0:{if(h){f=p<<1;f=ha((k[4736+(f+-2201<<2)>>2]|0)+(k[4736+(f+-2202<<2)>>2]|0)|0,u)|0;f=((((f&65535)*655|0)>>>16)+((f>>16)*655|0)|0)<(qa|0);break e}else f=p;while(1){kf=f<<1;kf=ha((k[4736+(kf+-2201<<2)>>2]|0)+(k[4736+(kf+-2202<<2)>>2]|0)|0,u)|0;if(((((kf&65535)*655|0)>>>16)+((kf>>16)*655|0)|0)<(qa|0)){f=1;break e}if((f|0)<=1101)break f;kf=f+-1|0;k[N>>2]=kf;f=kf}}default:{f=ha(k[4736+((p<<1)+-2202<<2)>>2]|0,u)|0;f=((((f&65535)*655|0)>>>16)+((f>>16)*655|0)|0)<(qa|0);if(h|f)break e;else f=p;while(1){if((f|0)<=1101)break f;f=f+-1|0;k[N>>2]=f;kf=ha(k[4736+((f<<1)+-2202<<2)>>2]|0,u)|0;if(((((kf&65535)*655|0)>>>16)+((kf>>16)*655|0)|0)<(qa|0)){f=1;break e}}}}while(0);k[N>>2]=p;f=0}while(0);k[O>>2]=f&1;k[ne>>2]=oe;ad(af,4036,ne)|0;f=k[Sa>>2]|0;do if((f|0)==1002){if((k[N>>2]|0)!=1102)break;k[N>>2]=1103}while(0);do if(!(k[U>>2]|0)){p=k[N>>2]|0;if(!((p|0)>1103&(f|0)==1e3)){h=f;break}k[Sa>>2]=1001;h=1001}else{k[N>>2]=1101;h=f;p=1101}while(0);if(!((p|0)<1104&(h|0)==1001)){u=k[Wa>>2]|0;f=(u|0)/50|0;if((f|0)>=(c|0)|(h|0)==1e3){w=h;B=u;Ge=324}}else{k[Sa>>2]=1e3;f=k[Wa>>2]|0;w=1e3;B=f;f=(f|0)/50|0;Ge=324}do if((Ge|0)==324){h=B*3|0;u=(h|0)/50|0;if((u|0)<(c|0)){if((w|0)!=1e3)break;if(((B<<1|0)/25|0|0)==(c|0)){f=(B|0)/25|0;break}else{f=((h|0)/25|0|0)==(c|0)?u:f;break}}pa=a+14144|0;if(!(k[pa>>2]|0)){Q=J;f=P}else{k[pa>>2]=0;Q=1;C=1;f=1}h=k[Ua>>2]|0;if((f|0)==0|(w|0)==1002){u=0;P=0}else{u=k[Va>>2]|0;P=(u*40|0)+20|0;kf=(((ha(P,200-Da|0)|0)+h|0)*3|0)/3200|0;P=(((((x<<3)-(P<<1)|0)*240|0)/((48e3/(Da|0)|0)+240|0)|0)+P|0)/8|0;P=(kf|0)<(P|0)?kf:P;P=(P|0)>(u<<3|4|0)?((P|0)>257?257:P):0;u=(P|0)==0?0:f}Ja=x-P|0;K=(ha(h,c)|0)/(B<<3|0)|0;K=(Ja|0)<(K|0)?Ja:K;Ja=d+1|0;Ka=x+-1|0;k[We>>2]=Ja;Ea=We+8|0;k[Ea>>2]=0;k[We+12>>2]=0;k[We+16>>2]=0;La=We+20|0;k[La>>2]=33;ya=We+24|0;k[ya>>2]=0;Ia=We+28|0;k[Ia>>2]=-2147483648;za=We+40|0;k[za>>2]=-1;Aa=We+32|0;k[Aa>>2]=0;Ba=We+36|0;k[Ba>>2]=0;Fa=We+4|0;k[Fa>>2]=Ka;Ca=We+44|0;k[Ca>>2]=0;S=Ee+c|0;R=ha(k[Za>>2]|0,S)|0;Ma=Pa()|0;Ga=r;r=r+((1*(R<<2)|0)+15&-16)|0;R=a+172|0;E=k[Za>>2]|0;T=a+14176|0;wf(Ga|0,a+14176+((ha((k[R>>2]|0)-Ee|0,E)|0)<<2)|0,ha(Ee<<2,E)|0)|0;J=(k[Sa>>2]|0)==1002;if(J)f=193536;else f=k[se+8>>2]|0;q=a+14096|0;kf=k[q>>2]|0;f=f-kf|0;f=((f>>16)*983|0)+kf+(((f&65535)*983|0)>>>16)|0;k[q>>2]=f;q=f>>8;do if((q|0)<0)f=0;else{if((q|0)>3966){f=2147483647;break}f=f>>15;s=1<<f;h=q&127;if((q|0)<2048)f=((ha(ha(h,-174)|0,128-h|0)|0)>>16)+h<<f>>7;else f=ha(((ha(ha(h,-174)|0,128-h|0)|0)>>16)+h|0,s>>7)|0;f=f+s|0}while(0);D=Ga+((ha(E,Ee)|0)<<2)|0;w=a+14104|0;h=k[Wa>>2]|0;do if((k[pe>>2]|0)!=2048){H=12.0/+(h|0);I=1.0-H;y=+o[w>>2];s=a+14108|0;v=+o[s>>2];if((E|0)==2){h=a+14112|0;A=+o[h>>2];q=a+14116|0;z=+o[q>>2];if((c|0)>0){f=0;F=v;while(1){jf=f<<1;G=+o[b+(jf<<2)>>2];kf=jf|1;v=+o[b+(kf<<2)>>2];Df=G-y;Ef=v-A;y=I*y+(H*G+1.0000000031710769e-30);A=I*A+(H*v+1.0000000031710769e-30);v=I*F+(H*Df+1.0000000031710769e-30);G=I*z+(H*Ef+1.0000000031710769e-30);o[D+(jf<<2)>>2]=Df-F;o[D+(kf<<2)>>2]=Ef-z;f=f+1|0;if((f|0)==(c|0)){z=G;break}else{F=v;z=G}}}o[w>>2]=y;o[s>>2]=v;o[h>>2]=A;o[q>>2]=z;break}else{if((c|0)>0){f=0;while(1){z=+o[b+(f<<2)>>2];Ef=z-y;y=I*y+(H*z+1.0000000031710769e-30);z=I*v+(H*Ef+1.0000000031710769e-30);o[D+(f<<2)>>2]=Ef-v;f=f+1|0;if((f|0)==(c|0)){v=z;break}else v=z}}o[w>>2]=y;o[s>>2]=v;break}}else{ne=((f<<16>>16)*2471|0)/((h|0)/1e3|0|0)|0;B=ha(ne,-471)|0;kf=B+268435456|0;oe=kf>>6;e=kf>>22;me=ne<<16>>16;ne=(ha(me,ne>>16)|0)+-8388608+((ha(me,ne&65535)|0)>>16)+(ha((ne>>15)+1>>1,ne)|0)|0;me=ne<<16>>16;jf=oe&65535;pe=oe<<16>>16;z=+(((ha(me,jf)|0)>>16)+(ha(me,e)|0)+(ha((ne>>15)+1>>1,oe)|0)|0)*3.725290298461914e-09;A=+((ha((kf>>21)+1>>1,oe)|0)+(ha(pe,e)|0)+((ha(pe,jf)|0)>>16)|0)*3.725290298461914e-09;F=+(kf|0)*3.725290298461914e-09;G=+(-268435456-B<<1|0)*3.725290298461914e-09;B=(c|0)>0;if(B){f=a+14108|0;v=+o[w>>2];y=+o[f>>2];h=0;do{kf=ha(h,E)|0;Cf=+o[b+(kf<<2)>>2];Df=F*Cf;Ef=v+Df;v=G*Cf+(y-z*Ef);o[w>>2]=v;y=Df-A*Ef+1.0000000031710769e-30;o[f>>2]=y;o[D+(kf<<2)>>2]=Ef;h=h+1|0}while((h|0)!=(c|0))}if((E|0)!=2)break;s=b+4|0;w=a+14112|0;q=D+4|0;if(!B)break;f=a+14116|0;v=+o[w>>2];y=+o[f>>2];h=0;do{kf=h<<1;Cf=+o[s+(kf<<2)>>2];Df=F*Cf;Ef=v+Df;v=G*Cf+(y-z*Ef);o[w>>2]=v;y=Df-A*Ef+1.0000000031710769e-30;o[f>>2]=y;o[q+(kf<<2)>>2]=Ef;h=h+1|0}while((h|0)!=(c|0))}while(0);do if(J){y=1.0;J=Q;K=p;D=P;Ge=450}else{s=ha(E,c)|0;M=Pa()|0;L=r;r=r+((1*(s<<1)|0)+15&-16)|0;s=ha((K<<3)+-8|0,Da)|0;J=k[Sa>>2]|0;K=(J|0)==1001;do if(K){q=k[$a>>2]|0;f=(k[O>>2]<<1)+((k[Wa>>2]|0)==(c*50|0)?2:1)|0;do if((s|0)<12e3){h=1;Ge=364}else{if((s|0)<16e3){h=2;Ge=364;break}if((s|0)<2e4){h=3;Ge=364;break}if((s|0)<24e3){h=4;Ge=364;break}if((s|0)<32e3){h=5;Ge=364;break}if((s|0)<64e3){h=6;Ge=364;break}f=(k[4896+(f<<2)>>2]|0)+((s+-64e3|0)/2|0)|0}while(0);if((Ge|0)==364){pe=h+-1|0;kf=k[4776+(pe*20|0)>>2]|0;jf=k[4776+(h*20|0)>>2]|0;f=((ha(jf-s|0,k[4776+(pe*20|0)+(f<<2)>>2]|0)|0)+(ha(s-kf|0,k[4776+(h*20|0)+(f<<2)>>2]|0)|0)|0)/(jf-kf|0)|0}h=(q|0)==0?f+100|0:f;h=(p|0)==1104?h+300|0:h;k[a+36>>2]=h;f=k[a+14152>>2]|0;if(f|0){E=h;Ge=373;break}E=h;y=1.0-+ea(+(+(h-s|0)*.0009765625*.6931471805599453))}else{k[a+36>>2]=s;f=k[a+14152>>2]|0;if(!f){E=s;y=1.0;break}q=k[$a>>2]|0;E=s;Ge=373}while(0);do if((Ge|0)==373){if(!q){y=1.0;break}if(k[U>>2]|0){y=1.0;break}D=k[N>>2]|0;if((D|0)==1101){B=13;y=8.0e3}else{kf=(D|0)==1102;B=kf?15:17;y=kf?12.0e3:16.0e3}w=k[Za>>2]|0;if((w|0)>0){q=0;v=0.0;do{h=q*21|0;s=0;do{Ef=+o[f+(s+h<<2)>>2];jf=Ef<.5;kf=!((jf?Ef:.5)>-2.0);Ef=kf|jf^1?(kf?-2.0:.5):Ef;v=v+(Ef>0.0?Ef*.5:Ef);s=s+1|0}while((s|0)<(B|0));q=q+1|0}while((q|0)!=(w|0))}else v=0.0;kf=~~(y*(v/+(B|0)*+(w|0)+.20000000298023224));h=a+36|0;f=(ha(E,-2)|0)/3|0;f=(kf|0)>(f|0)?kf:f;if((D&-2|0)==1104){E=((f*3|0)/5|0)+E|0;k[h>>2]=E;y=1.0;break}else{E=f+E|0;k[h>>2]=E;y=1.0;break}}while(0);D=k[Wa>>2]|0;k[a+32>>2]=(c*1e3|0)/(D|0)|0;f=k[Za>>2]|0;k[re>>2]=f;k[a+12>>2]=k[Va>>2];do if((p|0)!=1101){h=a+28|0;if((p|0)==1102){k[h>>2]=12e3;h=12e3;break}else{k[h>>2]=16e3;h=16e3;break}}else{k[a+28>>2]=8e3;h=8e3}while(0);k[a+24>>2]=K?16e3:8e3;w=a+20|0;k[w>>2]=16e3;do if((J|0)==1e3){if((Da|0)>50)s=(_<<4|0)/3|0;else s=Z;if((s|0)>=8e3)break;k[w>>2]=12e3;q=a+28|0;h=h>>>0>12e3?12e3:h;k[q>>2]=h;if((s|0)>=7e3)break;k[w>>2]=8e3;k[q>>2]=(h|0)>8e3?8e3:h}while(0);q=(k[$a>>2]|0)==0;k[a+60>>2]=q&1;h=Ka<<3;w=a+64|0;k[w>>2]=h;do if((P|0)>1&(u|0)!=0){h=h-(P<<3|1)|0;k[w>>2]=h;if(!K)break;h=h+-20|0;k[w>>2]=h}while(0);do if(q){if(!K)break;kf=(ha(E,c)|0)/(D|0)|0;k[w>>2]=(h|0)<(kf|0)?h:kf}else{if(!K)break;s=(ha(D,h)|0)/(c|0)|0;h=(k[O>>2]<<1)+((D|0)==(c*50|0)?2:1)|0;do if((s|0)<12e3){q=1;Ge=405}else{if((s|0)<16e3){q=2;Ge=405;break}if((s|0)<2e4){q=3;Ge=405;break}if((s|0)<24e3){q=4;Ge=405;break}if((s|0)<32e3){q=5;Ge=405;break}if((s|0)<64e3){q=6;Ge=405;break}h=(k[4896+(h<<2)>>2]|0)+((s+-64e3|0)/2|0)|0}while(0);if((Ge|0)==405){pe=q+-1|0;kf=k[4776+(pe*20|0)>>2]|0;jf=k[4776+(q*20|0)>>2]|0;h=((ha(jf-s|0,k[4776+(pe*20|0)+(h<<2)>>2]|0)|0)+(ha(s-kf|0,k[4776+(q*20|0)+(h<<2)>>2]|0)|0)|0)/(jf-kf|0)|0}kf=(ha((p|0)==1104?h+300|0:h,c)|0)/(D|0)|0;k[w>>2]=kf}while(0);if(C){k[qe>>2]=0;w=ha((k[R>>2]|0)-(k[a+116>>2]|0)-((D|0)/400|0)|0,f)|0;B=a+14176+(w<<2)|0;s=k[Fe>>2]|0;C=k[s+60>>2]|0;q=48e3/(D|0)|0;s=(k[s+4>>2]|0)/(q|0)|0;h=(s|0)>0;do if((f|0)==1){if(h)f=0;else break;do{kf=C+((ha(f,q)|0)<<2)|0;Ef=+o[kf>>2];Ef=Ef*Ef;kf=B+(f<<2)|0;o[kf>>2]=+o[kf>>2]*(Ef+(1.0-Ef)*0.0);f=f+1|0}while((f|0)!=(s|0))}else{if(h)f=0;else break;do{kf=C+((ha(f,q)|0)<<2)|0;Ef=+o[kf>>2];Ef=Ef*Ef;Ef=Ef+(1.0-Ef)*0.0;kf=f<<1;jf=B+(kf<<2)|0;o[jf>>2]=+o[jf>>2]*Ef;kf=B+((kf|1)<<2)|0;o[kf>>2]=+o[kf>>2]*Ef;f=f+1|0}while((f|0)!=(s|0))}while(0);rf(T|0,0,w<<2|0)|0;s=k[R>>2]|0;f=k[Za>>2]|0;if((ha(f,s)|0)>0){h=ha(f,s)|0;q=0;do{v=+o[a+14176+(q<<2)>>2]*32768.0;v=v>-32768.0?v:-32768.0;v=v<32767.0?v:32767.0;f=(o[t>>2]=v,k[t>>2]|0);do if((f&2130706432)>>>0<=1249902592){f=(f|0)<0;v=f?v+-8388608.0+8388608.0:v+8388608.0+-8388608.0;if(!(v==0.0))break;v=f?-0.0:0.0}while(0);j[L+(q<<1)>>1]=~~v;q=q+1|0}while((q|0)!=(h|0))}Jd(se,re,L,s,0,qe,1)|0;f=k[Za>>2]|0}if((ha(f,c)|0)>0){s=ha(f,Ee)|0;h=ha(f,c)|0;q=0;do{v=+o[Ga+(s+q<<2)>>2]*32768.0;v=v>-32768.0?v:-32768.0;v=v<32767.0?v:32767.0;f=(o[t>>2]=v,k[t>>2]|0);do if((f&2130706432)>>>0<=1249902592){f=(f|0)<0;v=f?v+-8388608.0+8388608.0:v+8388608.0+-8388608.0;if(!(v==0.0))break;v=f?-0.0:0.0}while(0);j[L+(q<<1)>>1]=~~v;q=q+1|0}while((q|0)!=(h|0))}if(!(Jd(se,re,L,c,We,te,0)|0)){q=k[Sa>>2]|0;g:do if((q|0)==1e3){f=k[a+80>>2]|0;h:do if((f|0)<12e3)switch(f|0){case 8e3:{s=1101;break g}default:{}}else{switch(f|0){case 12e3:break;default:break h}s=1102;break g}while(0);s=(f|0)==16e3?1103:p}else s=p;while(0);if(!(k[a+96>>2]|0))f=0;else f=(k[a+18028>>2]|0)==0;k[a+72>>2]=f&1;if(k[te>>2]|0){if(f){f=k[Va>>2]|0;p=(f*40|0)+20|0;u=(((ha(p,200-Da|0)|0)+(k[Ua>>2]|0)|0)*3|0)/3200|0;p=(((((x<<3)-(p<<1)|0)*240|0)/((48e3/(Da|0)|0)+240|0)|0)+p|0)/8|0;p=(u|0)<(p|0)?u:p;p=(p|0)>(f<<3|4|0)?((p|0)>257?257:p):0;k[pa>>2]=1;f=0;u=(p|0)!=0&1}else{f=Q;p=P}Xa(M|0);J=f;K=s;D=p;Ge=450;break}k[ff>>2]=0;f=(k[Wa>>2]|0)/(c|0)|0;h=k[Va>>2]|0;if((f|0)<400){p=0;do{f=f<<1;p=p+1|0}while((f|0)<400);f=p<<3}else f=0;switch(q|0){case 1e3:{f=f+-16|(s<<5)+96&224;break}case 1002:{kf=s+-1102|0;f=((kf|0)<0?0:kf)<<5&96|f|128;break}default:f=s<<4|f+240|96}i[d>>0]=f|((h|0)==2&1)<<2;f=1}else f=-3;Xa(M|0)}while(0);i:do if((Ge|0)==450){switch(K|0){case 1101:{f=13;break}case 1103:case 1102:{f=17;break}case 1104:{f=19;break}default:f=21}k[xe>>2]=f;ad(af,10012,xe)|0;k[ye>>2]=k[Va>>2];ad(af,10008,ye)|0;k[ue>>2]=-1;ad(af,4002,ue)|0;do if((k[Sa>>2]|0)==1e3){q=k[Za>>2]|0;kf=((ha(k[Wa>>2]|0,q)|0)/400|0)<<2;E=r;r=r+((1*kf|0)+15&-16)|0}else{k[ve>>2]=0;ad(af,4006,ve)|0;k[we>>2]=(k[a+76>>2]|0)==0?2:0;ad(af,10002,we)|0;f=(k[$a>>2]|0)!=0;do if((k[Sa>>2]|0)==1001){if(!f)break;k[ze>>2]=(k[Ua>>2]|0)-(k[a+36>>2]|0);ad(af,4002,ze)|0;k[Ae>>2]=0;ad(af,4020,Ae)|0}else{if(!f)break;k[Be>>2]=1;ad(af,4006,Be)|0;k[Ce>>2]=k[a+152>>2];ad(af,4020,Ce)|0;k[De>>2]=k[Ua>>2];ad(af,4002,De)|0}while(0);f=k[Sa>>2]|0;p=k[Za>>2]|0;h=k[Wa>>2]|0;q=(ha(h,p)|0)/400|0;s=r;r=r+((1*(q<<2)|0)+15&-16)|0;if((f|0)==1e3){q=p;E=s;break}kf=k[Ra>>2]|0;if(!((f|0)!=(kf|0)&(kf|0)>0)){q=p;E=s;break}wf(s|0,a+14176+((ha(((h|0)/-400|0)-Ee+(k[R>>2]|0)|0,p)|0)<<2)|0,q<<2|0)|0;q=p;E=s}while(0);f=k[R>>2]|0;p=f-S|0;h=ha(p,q)|0;if((h|0)>0){xf(T|0,a+14176+((ha(q,c)|0)<<2)|0,ha(q<<2,p)|0)|0;wf(a+14176+(h<<2)|0,Ga|0,ha(S<<2,q)|0)|0}else wf(T|0,Ga+((ha(S-f|0,q)|0)<<2)|0,ha(q<<2,f)|0)|0;q=a+14100|0;v=+o[q>>2];do if(y<1.0|v<1.0){w=k[Fe>>2]|0;s=k[Za>>2]|0;p=k[w+60>>2]|0;h=48e3/(k[Wa>>2]|0)|0;w=(k[w+4>>2]|0)/(h|0)|0;f=(w|0)>0;do if((s|0)==1){if(f)f=0;else break;do{kf=p+((ha(f,h)|0)<<2)|0;Ef=+o[kf>>2];Ef=Ef*Ef;kf=Ga+(f<<2)|0;o[kf>>2]=+o[kf>>2]*(y*Ef+v*(1.0-Ef));f=f+1|0}while((f|0)!=(w|0))}else{if(f)f=0;else break;do{kf=p+((ha(f,h)|0)<<2)|0;Ef=+o[kf>>2];Ef=Ef*Ef;Ef=y*Ef+v*(1.0-Ef);kf=f<<1;jf=Ga+(kf<<2)|0;o[jf>>2]=+o[jf>>2]*Ef;kf=Ga+((kf|1)<<2)|0;o[kf>>2]=+o[kf>>2]*Ef;f=f+1|0}while((f|0)!=(w|0))}while(0);if((w|0)<(c|0))f=0;else break;do{p=w;do{kf=Ga+((ha(p,s)|0)+f<<2)|0;o[kf>>2]=y*+o[kf>>2];p=p+1|0}while((p|0)!=(c|0));f=f+1|0}while((f|0)<(s|0))}while(0);o[q>>2]=y;B=k[Sa>>2]|0;C=(B|0)==1001;if(!(C?(k[Va>>2]|0)!=1:0)){kf=qa+-24e3|0;kf=((kf|0)<0?0:kf)<<1;k[a+92>>2]=(kf|0)>16384?16384:kf}do if(!(k[a+14152>>2]|0)){if((k[Za>>2]|0)!=2)break;w=a+14092|0;p=j[w>>1]|0;s=k[a+92>>2]|0;if(!(p<<16>>16<16384|(s|0)<16384))break;f=k[Fe>>2]|0;h=k[f+60>>2]|0;q=48e3/(k[Wa>>2]|0)|0;f=(k[f+4>>2]|0)/(q|0)|0;v=1.0-+(p<<16>>16)*.00006103515625;y=1.0-+(s|0)*.00006103515625;if((f|0)>0){p=0;do{kf=h+((ha(p,q)|0)<<2)|0;Ef=+o[kf>>2];Ef=Ef*Ef;kf=p<<1;jf=Ga+(kf<<2)|0;Cf=+o[jf>>2];kf=Ga+((kf|1)<<2)|0;Df=+o[kf>>2];Ef=(y*Ef+v*(1.0-Ef))*((Cf-Df)*.5);o[jf>>2]=Cf-Ef;o[kf>>2]=Df+Ef;p=p+1|0}while((p|0)!=(f|0))}else f=0;if((f|0)<(c|0))do{kf=f<<1;jf=Ga+(kf<<2)|0;Cf=+o[jf>>2];kf=Ga+((kf|1)<<2)|0;Df=+o[kf>>2];Ef=y*((Cf-Df)*.5);o[jf>>2]=Cf-Ef;o[kf>>2]=Df+Ef;f=f+1|0}while((f|0)!=(c|0));j[w>>1]=s}while(0);do if((B|0)==1002)Ge=545;else{q=k[La>>2]|0;f=k[Ia>>2]|0;kf=ja(f|0)|0;if(((C?5:-15)+q+kf|0)>(Ka<<3|0)){Ge=545;break}do if(C){h=f>>>12;f=f-h|0;p=(u|0)!=0;if(p)k[Aa>>2]=(k[Aa>>2]|0)+f;f=p?h:f;k[Ia>>2]=f;if(f>>>0>=8388609)break;h=k[Aa>>2]|0;p=q;do{q=h>>>23;if((q|0)==255)k[Ba>>2]=(k[Ba>>2]|0)+1;else{h=h>>>31;f=k[za>>2]|0;if((f|0)>-1){p=k[ya>>2]|0;if(((k[Ea>>2]|0)+p|0)>>>0<(k[Fa>>2]|0)>>>0){k[ya>>2]=p+1;i[(k[We>>2]|0)+p>>0]=f+h;f=0}else f=-1;k[Ca>>2]=k[Ca>>2]|f}f=k[Ba>>2]|0;if(f|0){h=h+255&255;do{p=k[ya>>2]|0;if(((k[Ea>>2]|0)+p|0)>>>0<(k[Fa>>2]|0)>>>0){k[ya>>2]=p+1;i[(k[We>>2]|0)+p>>0]=h;p=0;f=k[Ba>>2]|0}else p=-1;k[Ca>>2]=k[Ca>>2]|p;f=f+-1|0;k[Ba>>2]=f}while((f|0)!=0)}k[za>>2]=q&255;h=k[Aa>>2]|0;f=k[Ia>>2]|0;p=k[La>>2]|0}h=h<<8&2147483392;k[Aa>>2]=h;f=f<<8;k[Ia>>2]=f;p=p+8|0;k[La>>2]=p}while(f>>>0<8388609);q=p}while(0);if(!u){Ge=545;break}h=f>>>1;f=f-h|0;p=(J|0)!=0;if(p)k[Aa>>2]=(k[Aa>>2]|0)+f;f=p?h:f;k[Ia>>2]=f;if(f>>>0<8388609){h=k[Aa>>2]|0;p=q;do{q=h>>>23;if((q|0)==255)k[Ba>>2]=(k[Ba>>2]|0)+1;else{h=h>>>31;f=k[za>>2]|0;if((f|0)>-1){p=k[ya>>2]|0;if(((k[Ea>>2]|0)+p|0)>>>0<(k[Fa>>2]|0)>>>0){k[ya>>2]=p+1;i[(k[We>>2]|0)+p>>0]=f+h;f=0}else f=-1;k[Ca>>2]=k[Ca>>2]|f}f=k[Ba>>2]|0;if(f|0){h=h+255&255;do{p=k[ya>>2]|0;if(((k[Ea>>2]|0)+p|0)>>>0<(k[Fa>>2]|0)>>>0){k[ya>>2]=p+1;i[(k[We>>2]|0)+p>>0]=h;p=0;f=k[Ba>>2]|0}else p=-1;k[Ca>>2]=k[Ca>>2]|p;f=f+-1|0;k[Ba>>2]=f}while((f|0)!=0)}k[za>>2]=q&255;h=k[Aa>>2]|0;f=k[Ia>>2]|0;p=k[La>>2]|0}h=h<<8&2147483392;k[Aa>>2]=h;f=f<<8;k[Ia>>2]=f;p=p+8|0;k[La>>2]=p}while(f>>>0<8388609);h=f}else{h=f;p=q}kf=(k[Sa>>2]|0)==1001;s=ja(h|0)|0;s=Ka-(p+-32+(kf?18:7)+s>>3)|0;s=(s|0)<(D|0)?s:D;s=(s|0)<2?2:s;s=(s|0)>257?257:s;if(!kf){w=1;B=s;break}f=h>>>8;if((s|0)==2)f=h+(ha(f,-255)|0)|0;else{kf=h-(ha(f,258-s|0)|0)|0;k[Aa>>2]=kf+(k[Aa>>2]|0)}k[Ia>>2]=f;if(f>>>0>=8388609){w=1;B=s;break}h=k[Aa>>2]|0;do{q=h>>>23;if((q|0)==255)k[Ba>>2]=(k[Ba>>2]|0)+1;else{h=h>>>31;f=k[za>>2]|0;if((f|0)>-1){p=k[ya>>2]|0;if(((k[Ea>>2]|0)+p|0)>>>0<(k[Fa>>2]|0)>>>0){k[ya>>2]=p+1;i[(k[We>>2]|0)+p>>0]=f+h;f=0}else f=-1;k[Ca>>2]=k[Ca>>2]|f}f=k[Ba>>2]|0;if(f|0){h=h+255&255;do{p=k[ya>>2]|0;if(((k[Ea>>2]|0)+p|0)>>>0<(k[Fa>>2]|0)>>>0){k[ya>>2]=p+1;i[(k[We>>2]|0)+p>>0]=h;p=0;f=k[Ba>>2]|0}else p=-1;k[Ca>>2]=k[Ca>>2]|p;f=f+-1|0;k[Ba>>2]=f}while((f|0)!=0)}k[za>>2]=q&255;h=k[Aa>>2]|0;f=k[Ia>>2]|0;p=k[La>>2]|0}h=h<<8&2147483392;k[Aa>>2]=h;f=f<<8;k[Ia>>2]=f;p=p+8|0;k[La>>2]=p}while(f>>>0<8388609);w=1;B=s}while(0);if((Ge|0)==545){k[pa>>2]=0;w=0;u=0;B=0}kf=k[Sa>>2]|0;h=(kf|0)==1002?0:17;if((kf|0)==1e3){f=(k[La>>2]|0)+-25+(ja(k[Ia>>2]|0)|0)>>3;rd(We);p=f}else{p=Ka-B|0;jf=k[We>>2]|0;f=k[Ea>>2]|0;kf=0-f|0;xf(jf+p+kf|0,jf+(k[Fa>>2]|0)+kf|0,f|0)|0;k[Fa>>2]=p;f=0}if(!w?(k[Sa>>2]|0)==1e3:0)Ge=553;else Ge=551;do if((Ge|0)==551){k[Ie>>2]=ef;ad(af,10022,Ie)|0;if((k[Sa>>2]|0)!=1001){Ge=553;break}k[He>>2]=k[a+100>>2];k[He+4>>2]=k[a+104>>2];k[Je>>2]=He;ad(af,10028,Je)|0}while(0);if((Ge|0)==553){k[Le>>2]=0;ad(af,10028,Le)|0}s=(J|0)!=0;q=s&w;if(q){k[Me>>2]=0;ad(af,10010,Me)|0;k[Ne>>2]=0;ad(af,4006,Ne)|0;k[Oe>>2]=-1;ad(af,4002,Oe)|0;if((bd(af,Ga,(k[Wa>>2]|0)/200|0,Ja+p|0,B,0)|0)<0){f=-3;break}k[Pe>>2]=df;ad(af,4031,Pe)|0;ad(af,4028,Qe)|0}k[gf>>2]=h;ad(af,10010,gf)|0;h=k[Sa>>2]|0;do if((h|0)!=1e3){kf=k[Ra>>2]|0;if((h|0)!=(kf|0)&(kf|0)>0){ad(af,4028,Se)|0;bd(af,E,(k[Wa>>2]|0)/400|0,Re,2,0)|0;k[Te>>2]=0;ad(af,10002,Te)|0}if(((k[La>>2]|0)+-32+(ja(k[Ia>>2]|0)|0)|0)>(p<<3|0))break;do if(q){if((k[Sa>>2]|0)!=1001)break;if(!(k[$a>>2]|0))break;k[Ue>>2]=(k[Ua>>2]|0)-(k[a+36>>2]|0);ad(af,4002,Ue)|0}while(0);k[Ve>>2]=k[$a>>2];ad(af,4006,Ve)|0;f=bd(af,Ga,c,0,p,We)|0;if((f|0)<0){f=-3;break i}if(!q)break;if((k[Sa>>2]|0)!=1001)break;if(!(k[$a>>2]|0))break;xf(Ja+f|0,Ja+p|0,B|0)|0;p=p+B|0}while(0);if(!(s|(u|0)==0)){q=k[Wa>>2]|0;h=(q|0)/200|0;q=(q|0)/400|0;ad(af,4028,Xe)|0;k[Ye>>2]=0;ad(af,10010,Ye)|0;k[Ze>>2]=0;ad(af,10002,Ze)|0;k[_e>>2]=0;ad(af,4006,_e)|0;k[$e>>2]=-1;ad(af,4002,$e)|0;if((k[Sa>>2]|0)==1001){jf=k[We>>2]|0;p=k[Ea>>2]|0;kf=0-p|0;xf(jf+f+kf|0,jf+(k[Fa>>2]|0)+kf|0,p|0)|0;k[Fa>>2]=f;p=f}kf=c-h|0;bd(af,Ga+((ha(k[Za>>2]|0,kf-q|0)|0)<<2)|0,q,bf,2,0)|0;if((bd(af,Ga+((ha(k[Za>>2]|0,kf)|0)<<2)|0,h,Ja+p|0,B,0)|0)<0){f=-3;break}k[cf>>2]=df;ad(af,4031,cf)|0}q=k[Sa>>2]|0;p=(k[Wa>>2]|0)/(c|0)|0;s=k[Va>>2]|0;if((p|0)<400){h=0;do{p=p<<1;h=h+1|0}while((p|0)<400);p=h<<3}else p=0;switch(q|0){case 1e3:{p=p+-16|(K<<5)+96&224;break}case 1002:{kf=K+-1102|0;p=((kf|0)<0?0:kf)<<5&96|p|128;break}default:p=K<<4|p+240|96}i[d>>0]=p|((s|0)==2&1)<<2;s=k[Ia>>2]|0;k[ff>>2]=k[df>>2]^s;if(!Qa)p=k[Sa>>2]|0;else p=1002;k[Ra>>2]=p;u=k[Va>>2]|0;k[a+14128>>2]=u;k[a+14132>>2]=c;k[a+14148>>2]=0;j:do if(k[a+184>>2]|0){if(!(k[ef>>2]|Ya))break;q=a+18020|0;y=+o[a+18024>>2];p=k[Za>>2]|0;do if(_a){if(+o[ef+32>>2]<.10000000149011612){p=ha(p,c)|0;if((p|0)>0){h=0;v=0.0;do{Ef=+o[b+(h<<2)>>2];v=v+Ef*Ef;h=h+1|0}while((h|0)!=(p|0));v=v/+(p|0)}else v=0.0/+(p|0);if(v*316.2300109863281<=y)break}k[q>>2]=0;break j}while(0);kf=k[q>>2]|0;p=kf+1|0;k[q>>2]=p;if((kf|0)<=9)break;if((p|0)>=31){k[q>>2]=10;break}k[ff>>2]=0;h=k[Sa>>2]|0;f=(k[Wa>>2]|0)/(c|0)|0;if((f|0)<400){p=0;do{f=f<<1;p=p+1|0}while((f|0)<400);f=p<<3}else f=0;switch(h|0){case 1e3:{f=f+-16|(K<<5)+96&224;break}case 1002:{kf=K+-1102|0;f=((kf|0)<0?0:kf)<<5&96|f|128;break}default:f=K<<4|f+240|96}i[d>>0]=f|((u|0)==2&1)<<2;f=1;break i}while(0);k:do if(((k[La>>2]|0)+-32+(ja(s|0)|0)|0)>(Ka<<3|0)){if((x|0)<2){f=-2;break i}i[Ja>>0]=0;k[ff>>2]=0;f=1}else{if(!((f|0)>2&((w|(k[Sa>>2]|0)!=1e3)^1)))break;do{if(i[d+f>>0]|0)break k;f=f+-1|0}while((f|0)>2)}while(0);f=B+1+f|0;l:do if(!(k[$a>>2]|0)){m:do if((f|0)>=1){do if((f|0)!=(x|0)){if((f|0)>(x|0))break m;p=gf+4|0;k[p>>2]=0;kf=d+x+(0-f)|0;xf(kf|0,d|0,f|0)|0;if(Zc(gf,kf,f)|0)break m;f=_c(gf,k[p>>2]|0,d,x,1)|0;if((f|0)>0)break;if(!f){f=x;break l}else{f=-3;break i}}while(0);f=x;break l}while(0);f=-3;break i}while(0)}while(0);Xa(Ma|0);kf=f;r=hf;return kf|0}while(0);if((q|0)!=-1){k[a+8464>>2]=q;k[a+8468>>2]=s}kf=Wc(a,b,(c|0)/(f|0)|0,f,d,e,Qa,oe)|0;r=hf;return kf|0}while(0);q=k[a+14120>>2]|0;s=k[a+14136>>2]|0;s=(s|0)==0?1101:s;q=(Da|0)>100?1002:(q|0)==0?1e3:q;p=(Da|0)==25&(q|0)!=1e3;h=p&1;p=p?50:Da;do if((p|0)<17){if((e|0)!=1?!((q|0)==1e3&(p|0)!=10):0){f=50;w=(50/(p|0)|0)&255;u=3;break}f=(p|0)==12?25:16;w=0;u=(p|0)<13&1;q=1e3}else{f=p;w=0;u=h}while(0);if(!((s|0)>1103&(q|0)==1e3))if((s|0)==1102&(q|0)==1002)s=1101;else s=(s|0)<1105&(q|0)==1001?1104:s;else s=1103;h=k[a+14088>>2]|0;if((f|0)<400){p=0;do{f=f<<1;p=p+1|0}while((f|0)<400);f=p<<3}else f=0;switch(q|0){case 1e3:{f=f+-16|(s<<5)+96&224;break}case 1002:{kf=s+-1102|0;f=((kf|0)<0?0:kf)<<5&96|f|128;break}default:f=s<<4|f+240|96}i[d>>0]=((h|0)==2&1)<<2|u|f;f=u>>>0<2?1:2;h=(x|0)>(f|0)?x:f;if((u|0)==3)i[d+1>>0]=w;if(k[$a>>2]|0){kf=f;r=hf;return kf|0}if((f|0)!=(h|0)){p=je+4|0;k[p>>2]=0;kf=d+h+(0-f)|0;xf(kf|0,d|0,f|0)|0;f=Zc(je,kf,f)|0;if(!f){f=_c(je,k[p>>2]|0,d,h,1)|0;f=(f|0)>0?0:f}}else f=0;kf=(f|0)==0?h:-3;r=hf;return kf|0}function Wc(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=r;r=r+304|0;B=C;i=(c|0)==2?3:c<<1;z=a+148|0;if((k[z>>2]|0)==0?(k[a+164>>2]|0)!=-1:0){y=((k[a+160>>2]|0)*3|0)/(((k[a+144>>2]|0)*24|0)/(ha(d,c)|0)|0|0)|0;f=(y|0)<(f|0)?y:f}o=(f-i|0)/(c|0)|0;o=(o|0)>1275?1276:o+1|0;q=ha(o,c)|0;p=r;r=r+((1*q|0)+15&-16)|0;k[B+4>>2]=0;q=a+136|0;s=k[q>>2]|0;t=a+128|0;u=k[t>>2]|0;v=a+120|0;w=k[v>>2]|0;k[q>>2]=k[a+14120>>2];k[t>>2]=k[a+14136>>2];i=k[a+14088>>2]|0;k[v>>2]=i;x=a+68|0;y=k[x>>2]|0;if(!y)k[a+14128>>2]=i;else k[v>>2]=1;a:do if((c|0)>0){l=c+-1|0;m=a+18028|0;n=a+112|0;if(!g){j=0;while(1){k[x>>2]=0;k[m>>2]=(j|0)<(l|0)&1;i=p+(ha(j,o)|0)|0;g=Vc(a,b+((ha(ha(j,d)|0,k[n>>2]|0)|0)<<2)|0,d,i,o,h,0,0,0,0,0)|0;if((g|0)<0){i=-3;g=19;break}j=j+1|0;if((Zc(B,i,g)|0)<0){i=-3;g=19;break}if((j|0)>=(c|0))break a}if((g|0)==19){r=C;return i|0}}else A=0;while(1){k[x>>2]=0;k[m>>2]=(A|0)<(l|0)&1;if((A|0)==(l|0))k[q>>2]=1002;i=p+(ha(A,o)|0)|0;g=Vc(a,b+((ha(ha(A,d)|0,k[n>>2]|0)|0)<<2)|0,d,i,o,h,0,0,0,0,0)|0;if((g|0)<0){i=-3;g=19;break}A=A+1|0;if((Zc(B,i,g)|0)<0){i=-3;g=19;break}if((A|0)>=(c|0))break a}if((g|0)==19){r=C;return i|0}}while(0);f=_c(B,c,e,f,(k[z>>2]|0)==0&1)|0;if((f|0)<0){a=-3;r=C;return a|0}k[q>>2]=s;k[t>>2]=u;k[v>>2]=w;k[x>>2]=y;a=f;r=C;return a|0}function Xc(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,l=0,m=0;m=r;e=k[a+156>>2]|0;h=k[a+144>>2]|0;f=(h|0)/400|0;if((f|0)>(c|0)){a=-1;r=m;return a|0}if((e|0)!=5e3){g=e+-5001|0;if(g>>>0>=9){a=-1;r=m;return a|0}if((e|0)<5006)e=f<<g;else e=(ha(e+-5003|0,h)|0)/50|0;if((e|0)>(c|0)){a=-1;r=m;return a|0}}else e=c;if((e*100|0)==(h|0)|((e*400|0)==(h|0)|(e*200|0)==(h|0))){if((e|0)<1){a=-1;r=m;return a|0}}else{l=e*50|0;if((e|0)<1|((l|0)==(h*6|0)|((l|0)==(h*5|0)|((l|0)==(h<<2|0)|((l|0)==(h*3|0)|((l|0)==(h|0)|(e*25|0)==(h|0))))))^1){a=-1;r=m;return a|0}}h=a+112|0;l=ha(k[h>>2]|0,e)|0;f=Pa()|0;g=r;r=r+((1*(l<<2)|0)+15&-16)|0;h=k[h>>2]|0;if((ha(h,e)|0)>0){i=ha(e,h)|0;l=0;do{o[g+(l<<2)>>2]=+(j[b+(l<<1)>>1]|0)*.000030517578125;l=l+1|0}while((l|0)!=(i|0))}a=Vc(a,g,e,d,3828,16,b,c,-2,h,1)|0;Xa(f|0);r=m;return a|0}function Yc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,p=0,q=0,s=0,t=0;t=r;r=r+192|0;m=t+64|0;g=t+56|0;f=t+48|0;e=t+40|0;l=t+32|0;i=t+24|0;p=t+16|0;n=t+8|0;h=t;s=t+168|0;d=t+68|0;k[s>>2]=c;q=a+(k[a>>2]|0)|0;a:do switch(b|0){case 4e3:{q=(k[s>>2]|0)+(4-1)&~(4-1);d=k[q>>2]|0;k[s>>2]=q+4;switch(d|0){case 2048:case 2049:case 2051:break;default:{c=-1;d=104;break a}}c=a+108|0;if((k[a+14148>>2]|0)==0?(k[c>>2]|0)!=(d|0):0){c=-1;d=104;break a}k[c>>2]=d;k[a+192>>2]=d;c=0;d=104;break}case 4001:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+108>>2];c=0;d=104}break}case 4002:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;switch(c|0){case -1e3:case -1:break;default:{if((c|0)<1){d=105;break a}if((c|0)<501)c=500;else{s=(k[a+112>>2]|0)*3e5|0;c=(c|0)>(s|0)?s:c}}}k[a+164>>2]=c;c=0;d=104;break}case 4003:{q=(k[s>>2]|0)+(4-1)&~(4-1);b=k[q>>2]|0;k[s>>2]=q+4;if(!b)d=105;else{c=k[a+14132>>2]|0;if(!c)d=(k[a+144>>2]|0)/400|0;else d=c;c=k[a+164>>2]|0;switch(c|0){case -1e3:{c=k[a+144>>2]|0;c=(ha(k[a+112>>2]|0,c)|0)+((c*60|0)/(d|0)|0)|0;break}case -1:{c=((k[a+144>>2]|0)*10208|0)/(d|0)|0;break}default:{}}k[b>>2]=c;c=0;d=104}break}case 4022:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if((c|0)<1){if((c|0)!=-1e3){d=105;break a}}else if((c|0)>(k[a+112>>2]|0)){d=105;break a}k[a+120>>2]=c;c=0;d=104;break}case 4023:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+120>>2];c=0;d=104}break}case 4004:{q=(k[s>>2]|0)+(4-1)&~(4-1);d=k[q>>2]|0;k[s>>2]=q+4;if((d+-1101|0)>>>0<=4){k[a+132>>2]=d;if((d|0)==1101){k[a+20>>2]=8e3;c=0;d=104;break a}c=a+20|0;if((d|0)==1102){k[c>>2]=12e3;c=0;d=104;break a}else{k[c>>2]=16e3;c=0;d=104;break a}}else d=105;break}case 4005:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+132>>2];c=0;d=104}break}case 4008:{q=(k[s>>2]|0)+(4-1)&~(4-1);d=k[q>>2]|0;k[s>>2]=q+4;switch(d|0){case 1101:case 1102:case 1103:case 1104:case 1105:case -1e3:break;default:{d=105;break a}}k[a+128>>2]=d;if((d|0)==1101){k[a+20>>2]=8e3;c=0;d=104;break a}c=a+20|0;if((d|0)==1102){k[c>>2]=12e3;c=0;d=104;break a}else{k[c>>2]=16e3;c=0;d=104;break a}}case 4009:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+14136>>2];c=0;d=104}break}case 4016:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(c>>>0>1)d=105;else{k[a+184>>2]=c;c=0;d=104}break}case 4017:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+184>>2];c=0;d=104}break}case 4010:{p=(k[s>>2]|0)+(4-1)&~(4-1);c=k[p>>2]|0;k[s>>2]=p+4;if(c>>>0>10)d=105;else{k[a+44>>2]=c;k[h>>2]=c;ad(q,4010,h)|0;c=0;d=104}break}case 4011:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+44>>2];c=0;d=104}break}case 4012:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(c>>>0>1)d=105;else{k[a+48>>2]=c;c=0;d=104}break}case 4013:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+48>>2];c=0;d=104}break}case 4014:{p=(k[s>>2]|0)+(4-1)&~(4-1);c=k[p>>2]|0;k[s>>2]=p+4;if(c>>>0>100)d=105;else{k[a+40>>2]=c;k[n>>2]=c;ad(q,4014,n)|0;c=0;d=104}break}case 4015:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+40>>2];c=0;d=104}break}case 4006:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(c>>>0>1)d=105;else{k[a+148>>2]=c;k[a+60>>2]=1-c;c=0;d=104}break}case 4007:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+148>>2];c=0;d=104}break}case 11018:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if((c+1|0)>>>0>101)d=105;else{k[a+140>>2]=c;c=0;d=104}break}case 11019:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+140>>2];c=0;d=104}break}case 4020:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(c>>>0>1)d=105;else{k[a+152>>2]=c;c=0;d=104}break}case 4021:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+152>>2];c=0;d=104}break}case 4024:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if((c|0)<3001)switch(c|0){case -1e3:break;default:{d=105;break a}}else switch(c|0){case 3001:case 3002:break;default:{d=105;break a}}k[a+124>>2]=c;c=0;d=104;break}case 4025:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+124>>2];c=0;d=104}break}case 4027:{q=(k[s>>2]|0)+(4-1)&~(4-1);d=k[q>>2]|0;k[s>>2]=q+4;if(d){c=(k[a+144>>2]|0)/400|0;k[d>>2]=c;if((k[a+108>>2]|0)==2051){c=0;d=104}else{k[d>>2]=(k[a+116>>2]|0)+c;c=0;d=104}}else d=105;break}case 4029:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+144>>2];c=0;d=104}break}case 4031:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+18032>>2];c=0;d=104}break}case 4036:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if((c+-8|0)>>>0>16)d=105;else{k[a+168>>2]=c;c=0;d=104}break}case 4037:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+168>>2];c=0;d=104}break}case 4040:{n=(k[s>>2]|0)+(4-1)&~(4-1);c=k[n>>2]|0;k[s>>2]=n+4;if((c+-5e3|0)>>>0<10){k[a+156>>2]=c;k[p>>2]=c;ad(q,4040,p)|0;c=0;d=104}else d=105;break}case 4041:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+156>>2];c=0;d=104}break}case 4042:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(c>>>0>1)d=105;else{k[a+76>>2]=c;c=0;d=104}break}case 4043:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;if(!c)d=105;else{k[c>>2]=k[a+76>>2];c=0;d=104}break}case 4046:{a=(k[s>>2]|0)+(4-1)&~(4-1);c=k[a>>2]|0;k[s>>2]=a+4;if(c>>>0>1)d=105;else{k[i>>2]=c;ad(q,4046,i)|0;c=0;d=104}break}case 4047:{a=(k[s>>2]|0)+(4-1)&~(4-1);c=k[a>>2]|0;k[s>>2]=a+4;if(!c)d=105;else{k[l>>2]=c;ad(q,4047,l)|0;c=0;d=104}break}case 4028:{s=a+(k[a+4>>2]|0)|0;rf(a+200|0,0,13888)|0;o[a+8448>>2]=.8999999761581421;o[a+8444>>2]=.10000000149011612;c=a+14088|0;rf(c|0,0,3948)|0;ad(q,4028,e)|0;Id(s,k[a+180>>2]|0,d);k[c>>2]=k[a+112>>2];j[a+14092>>1]=16384;o[a+14100>>2]=1.0;k[a+14148>>2]=1;k[a+14120>>2]=1001;k[a+14136>>2]=1105;k[a+14096>>2]=193536;c=0;d=104;break}case 11002:{q=(k[s>>2]|0)+(4-1)&~(4-1);c=k[q>>2]|0;k[s>>2]=q+4;switch(c|0){case 1e3:case 1001:case 1002:case -1e3:break;default:{d=105;break a}}k[a+136>>2]=c;c=0;d=104;break}case 10024:{d=(k[s>>2]|0)+(4-1)&~(4-1);c=k[d>>2]|0;k[s>>2]=d+4;k[a+176>>2]=c;k[f>>2]=c;c=ad(q,10024,f)|0;d=104;break}case 10026:{d=(k[s>>2]|0)+(4-1)&~(4-1);c=k[d>>2]|0;k[s>>2]=d+4;k[a+14152>>2]=c;k[g>>2]=c;c=ad(q,10026,g)|0;d=104;break}case 10015:{a=(k[s>>2]|0)+(4-1)&~(4-1);c=k[a>>2]|0;k[s>>2]=a+4;if(!c)d=105;else{k[m>>2]=c;c=ad(q,10015,m)|0;d=104}break}default:{c=-5;d=104}}while(0);if((d|0)==104){a=c;r=t;return a|0}else if((d|0)==105){a=-1;r=t;return a|0}return 0}function Zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;g=j;if((c|0)<1){h=-4;r=j;return h|0}h=a+4|0;f=k[h>>2]|0;if(f){d=i[b>>0]|0;if(((d^i[a>>0])&255)>=4){h=-4;r=j;return h|0}}else{i[a>>0]=i[b>>0]|0;d=l[b>>0]|0;do if(!(d&128)){if((d&96|0)==96){d=(d&8|0)==0?80:160;break}d=d>>>3&3;if((d|0)==3)d=480;else d=(8e3<<d>>>0)/100|0}else d=(8e3<<(d>>>3&3)>>>0)/400|0;while(0);k[a+296>>2]=d;d=i[b>>0]|0}switch(d&3|0){case 0:{e=1;break}case 3:{if((c|0)<2){h=-4;r=j;return h|0}d=(l[b+1>>0]|0)&63;if(!d){h=-4;r=j;return h|0}else e=d;break}default:e=2}if((ha(f+e|0,k[a+296>>2]|0)|0)>960){h=-4;r=j;return h|0}d=$d(b,c,g,a+8+(f<<2)|0,a+200+(f<<1)|0,0)|0;if((d|0)<1){h=d;r=j;return h|0}k[h>>2]=(k[h>>2]|0)+e;h=0;r=j;return h|0}function _c(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,m=0,n=0,o=0,p=0;if((b|0)<=0){a=-1;return a|0}if((k[a+4>>2]|0)<(b|0)){a=-1;return a|0}n=a+200|0;a:do switch(b|0){case 1:{g=j[n>>1]|0;if((g|0)<(d|0)){i[c>>0]=l[a>>0]&252;f=c+1|0;g=g+1|0;m=15;break a}else{a=-2;return a|0}}case 2:{f=j[a+202>>1]|0;g=j[n>>1]|0;h=g<<16>>16;if(f<<16>>16==g<<16>>16){g=h<<1|1;if((g|0)>(d|0)){a=-2;return a|0}else{i[c>>0]=l[a>>0]&252|1;f=c+1|0;m=15;break a}}g=(f<<16>>16)+2+h+(g<<16>>16>251&1)|0;if((g|0)>(d|0)){a=-2;return a|0}m=c+1|0;i[c>>0]=l[a>>0]&252|2;f=j[n>>1]|0;h=f<<16>>16;if(f<<16>>16<252){i[m>>0]=f;f=1}else{f=h|252;i[m>>0]=f;i[c+2>>0]=(h-(f&255)|0)>>>2;f=2}f=m+f|0;m=15;break}default:{h=(b|0)>1;f=j[n>>1]|0;m=17}}while(0);if((m|0)==15)if((e|0)!=0&(g|0)<(d|0)){f=j[n>>1]|0;if((b|0)>1){h=1;m=17}else{h=0;m=25}}b:do if((m|0)==17){g=1;while(1){if((j[a+200+(g<<1)>>1]|0)!=f<<16>>16)break;g=g+1|0;if((g|0)>=(b|0)){m=25;break b}}n=b+-1|0;f=(f<<16>>16)+2+(f<<16>>16>251?2:1)|0;if((n|0)>1){g=b+-1|0;m=1;do{o=j[a+200+(m<<1)>>1]|0;f=(o<<16>>16)+f+(o<<16>>16>251?2:1)|0;m=m+1|0}while((m|0)!=(g|0))}g=(j[a+200+(n<<1)>>1]|0)+f|0;if((g|0)>(d|0)){a=-2;return a|0}else{i[c>>0]=l[a>>0]|3;n=b|128;i[c+1>>0]=n;o=1;m=27;break}}while(0);do if((m|0)==25){g=(ha(f<<16>>16,b)|0)+2|0;if((g|0)>(d|0)){a=-2;return a|0}else{i[c>>0]=l[a>>0]|3;i[c+1>>0]=b;n=b;o=0;m=27;break}}while(0);if((m|0)==27){f=c+2|0;m=d-g|0;if(!((e|0)==0|(g|0)==(d|0))){i[c+1>>0]=n|64;n=m+-1|0;g=(n|0)/255|0;if((n|0)>254){rf(f|0,-1,((g|0)>1?g:1)|0)|0;f=c+(((g|0)>1?g:1)+2)|0}g=m+255+(ha(g,-255)|0)&255;i[f>>0]=g;f=f+1|0;g=d}if(o?(p=b+-1|0,h):0){n=0;do{h=j[a+200+(n<<1)>>1]|0;m=h<<16>>16;if(h<<16>>16<252){i[f>>0]=h;h=1}else{h=m|252;i[f>>0]=h;i[f+1>>0]=(m-(h&255)|0)>>>2;h=2}f=f+h|0;n=n+1|0}while((n|0)<(p|0))}}h=0;do{p=a+200+(h<<1)|0;xf(f|0,k[a+8+(h<<2)>>2]|0,j[p>>1]|0)|0;f=f+(j[p>>1]|0)|0;h=h+1|0}while((h|0)!=(b|0));if(!((e|0)!=0&f>>>0<(c+d|0)>>>0)){a=g;return a|0}rf(f|0,0,c+(d-f)|0)|0;a=g;return a|0}function $c(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0.0,l=0,m=0,n=0,p=0,q=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;q=r;if(!e){j=0.0;r=q;return +j}l=(i|0)==48e3;if(!l)if((i|0)==16e3){m=(e<<1|0)/3|0;f=(f<<1|0)/3|0}else m=e;else{m=e<<1;f=f<<1}p=Pa()|0;n=r;r=r+((1*(m<<2)|0)+15&-16)|0;mc[a&1](b,n,m,f,0,g,h);if((g|0)==-2)j=.000030517578125/+(h|0);else j=(g|0)>-1?.0000152587890625:.000030517578125;h=(m|0)>0;if(h){e=0;do{a=n+(e<<2)|0;o[a>>2]=j*+o[a>>2];e=e+1|0}while((e|0)!=(m|0))}a:do if(l){b=(m|0)/2|0;if((m|0)>1){e=d+4|0;f=d+8|0;j=0.0;h=0;do{m=h<<1;t=+o[n+(m<<2)>>2];u=+o[d>>2];w=(t-u)*.6074370741844177;u=u+w;o[d>>2]=t+w;w=+o[n+((m|1)<<2)>>2];t=+o[e>>2];s=(w-t)*.15062999725341797;o[e>>2]=w+s;v=+o[f>>2];x=(-w-v)*.15062999725341797;v=u+v+x;o[f>>2]=x-w;j=j+v*v;o[c+(h<<2)>>2]=(u+t+s)*.5;h=h+1|0}while((h|0)<(b|0))}else j=0.0}else{if((i|0)>=24e3){switch(i|0){case 24e3:break;default:{j=0.0;break a}}wf(c|0,n|0,m<<2|0)|0;j=0.0;break}switch(i|0){case 16e3:break;default:{j=0.0;break a}}f=m*3|0;g=Pa()|0;a=r;r=r+((1*(f<<2)|0)+15&-16)|0;if(h){e=0;do{l=k[n+(e<<2)>>2]|0;i=e*3|0;k[a+(i<<2)>>2]=l;k[a+(i+1<<2)>>2]=l;k[a+(i+2<<2)>>2]=l;e=e+1|0}while((e|0)!=(m|0))}b=(f|0)/2|0;if((f|0)>1){e=d+4|0;f=d+8|0;h=0;do{n=h<<1;t=+o[a+(n<<2)>>2];u=+o[d>>2];v=(t-u)*.6074370741844177;o[d>>2]=t+v;t=+o[a+((n|1)<<2)>>2];w=+o[e>>2];x=(t-w)*.15062999725341797;o[e>>2]=t+x;o[f>>2]=(-t-+o[f>>2])*.15062999725341797-t;o[c+(h<<2)>>2]=(u+v+w+x)*.5;h=h+1|0}while((h|0)<(b|0))}Xa(g|0);j=0.0}while(0);Xa(p|0);x=j;r=q;return +x}function ad(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=r;r=r+16|0;d=f;k[d>>2]=c;do switch(b|0){case 4010:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if(b>>>0>10)b=42;else{k[a+24>>2]=b;b=41}break}case 10010:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if((b|0)>=0?(b|0)<(k[(k[a>>2]|0)+8>>2]|0):0){k[a+32>>2]=b;b=41}else b=42;break}case 10012:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if((b|0)>=1?(b|0)<=(k[(k[a>>2]|0)+8>>2]|0):0){k[a+36>>2]=b;b=41}else b=42;break}case 10002:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if(b>>>0>2)b=42;else{k[a+20>>2]=(b|0)<2&1;k[a+12>>2]=(b|0)==0&1;b=41}break}case 4014:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if(b>>>0>100)b=42;else{k[a+56>>2]=b;b=41}break}case 4020:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;k[a+52>>2]=b;b=41;break}case 4006:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;k[a+44>>2]=b;b=41;break}case 4002:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if((b|0)<501&(b|0)!=-1)b=42;else{e=(k[a+4>>2]|0)*26e4|0;k[a+40>>2]=(b|0)<(e|0)?b:e;b=41}break}case 10008:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if((b+-1|0)>>>0>1)b=42;else{k[a+8>>2]=b;b=41}break}case 4036:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if((b+-8|0)>>>0>16)b=42;else{k[a+60>>2]=b;b=41}break}case 4037:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;k[b>>2]=k[a+60>>2];b=41;break}case 4046:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if(b>>>0>1)b=42;else{k[a+68>>2]=b;b=41}break}case 4047:{e=(k[d>>2]|0)+(4-1)&~(4-1);b=k[e>>2]|0;k[d>>2]=e+4;if(!b)b=42;else{k[b>>2]=k[a+68>>2];b=41}break}case 4028:{b=a+4|0;e=k[b>>2]|0;g=k[a>>2]|0;i=k[g+4>>2]|0;c=a+236+((ha(i+1024|0,e)|0)<<2)|0;g=g+8|0;h=k[g>>2]|0;d=ha(h,e)|0;c=c+(d<<2)|0;d=c+(d<<2)|0;rf(a+76|0,0,(ha((i<<2)+4096+(h<<4)|0,e)|0)+160|0)|0;if((ha(k[g>>2]|0,e)|0)>0){e=0;do{o[d+(e<<2)>>2]=-28.0;o[c+(e<<2)>>2]=-28.0;e=e+1|0}while((e|0)<(ha(k[(k[a>>2]|0)+8>>2]|0,k[b>>2]|0)|0))}k[a+208>>2]=0;o[a+84>>2]=1.0;k[a+80>>2]=2;k[a+88>>2]=256;k[a+96>>2]=0;k[a+100>>2]=0;b=41;break}case 10016:{i=(k[d>>2]|0)+(4-1)&~(4-1);b=k[i>>2]|0;k[d>>2]=i+4;k[a+48>>2]=b;b=41;break}case 10022:{i=(k[d>>2]|0)+(4-1)&~(4-1);b=k[i>>2]|0;k[d>>2]=i+4;if(!b)b=41;else{d=a+120|0;c=d+56|0;do{k[d>>2]=k[b>>2];d=d+4|0;b=b+4|0}while((d|0)<(c|0));b=41}break}case 10028:{i=(k[d>>2]|0)+(4-1)&~(4-1);b=k[i>>2]|0;k[d>>2]=i+4;if(!b)b=41;else{h=b;i=k[h+4>>2]|0;b=a+176|0;k[b>>2]=k[h>>2];k[b+4>>2]=i;b=41}break}case 10015:{i=(k[d>>2]|0)+(4-1)&~(4-1);b=k[i>>2]|0;k[d>>2]=i+4;if(!b)b=42;else{k[b>>2]=k[a>>2];b=41}break}case 4031:{i=(k[d>>2]|0)+(4-1)&~(4-1);b=k[i>>2]|0;k[d>>2]=i+4;if(!b)b=42;else{k[b>>2]=k[a+76>>2];b=41}break}case 10024:{i=(k[d>>2]|0)+(4-1)&~(4-1);b=k[i>>2]|0;k[d>>2]=i+4;k[a+64>>2]=b;b=41;break}case 10026:{i=(k[d>>2]|0)+(4-1)&~(4-1);b=k[i>>2]|0;k[d>>2]=i+4;k[a+228>>2]=b;b=41;break}default:{i=-5;r=f;return i|0}}while(0);if((b|0)==41){i=0;r=f;return i|0}else if((b|0)==42){i=-1;r=f;return i|0}return 0}
function Xd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,n=0,q=0,s=0.0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0,T=0.0,U=0,V=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,fa=0,ga=0,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0.0;Xa=r;r=r+35664|0;Ba=Xa+248|0;Aa=Xa+48|0;za=Xa+27480|0;xa=Xa+26840|0;ra=Xa+26200|0;sa=Xa+25880|0;ta=Xa+23496|0;u=Xa+23232|0;ya=Xa+21696|0;ba=Xa+9360|0;aa=Xa+34072|0;na=Xa+6640|0;ma=Xa+3920|0;Y=Xa+32792|0;V=Xa+31832|0;U=Xa+3848|0;wa=Xa+3784|0;va=Xa+3720|0;ua=Xa+2184|0;Ra=Xa+20944|0;ca=Xa+18256|0;Ua=Xa+18208|0;Va=Xa+24|0;Wa=Xa;Sa=Xa+13856|0;Ta=Xa+9504|0;Qa=Xa+9488|0;Oa=Xa+34384|0;Pa=Xa+9472|0;Ma=Xa+34376|0;Na=Xa+9456|0;k[Pa>>2]=0;k[Pa+4>>2]=0;k[Pa+8>>2]=0;k[Pa+12>>2]=0;Ia=a+4616|0;Ka=k[Ia>>2]|0;k[Ia>>2]=Ka+1;Ia=a+4732|0;Ja=a+4766|0;i[Ja>>0]=Ka&3;Ka=a+7176|0;La=a+4588|0;pa=k[La>>2]|0;Ga=a+7176+(pa<<2)|0;pa=ca+(pa<<2)|0;S=a+5094|0;Ha=a+4580|0;n=k[Ha>>2]|0;M=k[a+28>>2]|0;do if(!M)Da=13;else{N=a+24|0;O=k[N>>2]|0;h=256-O<<10;K=h>>16;h=h-(K<<16)|0;do if((K|0)<4){if((h|0)<=0){q=21552+(K<<3)|0;h=k[q>>2]|0;q=k[q+4>>2]|0;v=k[21492+(K*12|0)>>2]|0;P=k[21492+(K*12|0)+8>>2]|0;A=k[21492+(K*12|0)+4>>2]|0;break}q=K+1|0;F=h<<16>>16;G=k[21492+(K*12|0)>>2]|0;H=k[21492+(q*12|0)>>2]|0;v=k[21492+(K*12|0)+4>>2]|0;J=H-G|0;I=ha(J>>16,F)|0;J=(ha(J&65535,F)|0)>>16;A=k[21492+(q*12|0)+4>>2]|0;B=k[21492+(K*12|0)+8>>2]|0;C=k[21492+(q*12|0)+8>>2]|0;D=k[21552+(K<<3)>>2]|0;E=k[21552+(q<<3)>>2]|0;if((h|0)<32768){A=A-v|0;A=(ha(A>>16,F)|0)+v+((ha(A&65535,F)|0)>>16)|0;P=C-B|0;P=(ha(P>>16,F)|0)+B+((ha(P&65535,F)|0)>>16)|0;h=E-D|0;h=(ha(h>>16,F)|0)+D+((ha(h&65535,F)|0)>>16)|0;v=k[21552+(K<<3)+4>>2]|0;q=(k[21552+(q<<3)+4>>2]|0)-v|0;q=(ha(q>>16,F)|0)+v+((ha(q&65535,F)|0)>>16)|0;v=I+G+J|0;break}else{P=A-v|0;A=(ha(P>>16,F)|0)+A+((ha(P&65535,F)|0)>>16)|0;P=C-B|0;P=(ha(P>>16,F)|0)+C+((ha(P&65535,F)|0)>>16)|0;h=E-D|0;h=(ha(h>>16,F)|0)+E+((ha(h&65535,F)|0)>>16)|0;v=k[21552+(q<<3)+4>>2]|0;q=v-(k[21552+(K<<3)+4>>2]|0)|0;q=(ha(q>>16,F)|0)+v+((ha(q&65535,F)|0)>>16)|0;v=I+H+J|0;break}}else{h=35497197;q=57401098;v=89306658;P=89306658;A=178584282}while(0);J=M+O|0;k[N>>2]=(J|0)>256?256:(J|0)<0?0:J;J=a+16|0;h=0-h|0;I=h&16383;q=0-q|0;H=q&16383;if((n|0)<=0){Fa=a+4572|0;h=k[Fa>>2]|0;break}G=a+20|0;F=h<<2>>16;D=q<<2>>16;E=v>>16;B=v&65535;C=A>>16;v=A&65535;A=P>>16;h=P&65535;q=0;do{Fa=S+(q<<1)|0;qa=j[Fa>>1]|0;Ea=(ha(E,qa)|0)+(k[J>>2]|0)+((ha(B,qa)|0)>>16)<<2;Da=Ea>>16;Ca=Ea&65532;oa=((ha(v,qa)|0)>>16)+(ha(C,qa)|0)+((ha(Da,F)|0)+(k[G>>2]|0)+((ha(Ca,F)|0)>>16)+((((ha(Ca,I)|0)>>>16)+(ha(Da,I)|0)>>13)+1>>1))|0;k[J>>2]=oa;Da=((ha(h,qa)|0)>>16)+(ha(A,qa)|0)+(((ha(Ca,D)|0)>>16)+(ha(Da,D)|0)+((((ha(Ca,H)|0)>>>16)+(ha(Da,H)|0)>>13)+1>>1))|0;k[G>>2]=Da;Ea=Ea+16383>>14;j[Fa>>1]=(Ea|0)>32767?32767:((Ea|0)<-32768?-32768:Ea)&65535;q=q+1|0}while((q|0)!=(n|0));n=k[Ha>>2]|0;Da=13}while(0);if((Da|0)==13){v=a+4572|0;h=k[v>>2]|0;q=Ga+(h*5<<2)|0;if((n|0)>0){h=n;do{Fa=h;h=h+-1|0;o[q+(h<<2)>>2]=+(j[S+(h<<1)>>1]|0)}while((Fa|0)>1);h=k[v>>2]|0;Fa=v}else Fa=v}Ea=Ga+(h*5<<2)|0;o[Ea>>2]=+o[Ea>>2]+9.999999974752427e-07;Ea=Ga+((k[Ha>>2]>>3)+((k[Fa>>2]|0)*5|0)<<2)|0;o[Ea>>2]=+o[Ea>>2]+9.999999974752427e-07;Ea=Ga+((k[Ha>>2]>>3<<1)+((k[Fa>>2]|0)*5|0)<<2)|0;o[Ea>>2]=+o[Ea>>2]+-9.999999974752427e-07;Ea=Ga+(((k[Ha>>2]>>3)*3|0)+((k[Fa>>2]|0)*5|0)<<2)|0;o[Ea>>2]=+o[Ea>>2]+-9.999999974752427e-07;Ea=Ga+((k[Ha>>2]>>3<<2)+((k[Fa>>2]|0)*5|0)<<2)|0;o[Ea>>2]=+o[Ea>>2]+9.999999974752427e-07;Ea=Ga+(((k[Ha>>2]>>3)+(k[Fa>>2]|0)|0)*5<<2)|0;o[Ea>>2]=+o[Ea>>2]+9.999999974752427e-07;Ea=Ga+(((k[Ha>>2]>>3)*6|0)+((k[Fa>>2]|0)*5|0)<<2)|0;o[Ea>>2]=+o[Ea>>2]+-9.999999974752427e-07;Ea=Ga+(((k[Ha>>2]>>3)*7|0)+((k[Fa>>2]|0)*5|0)<<2)|0;o[Ea>>2]=+o[Ea>>2]+-9.999999974752427e-07;Ea=a+4676|0;a:do if(!(k[Ea>>2]|0)){A=k[a+4592>>2]|0;E=k[La>>2]|0;D=(k[Ha>>2]|0)+A+E|0;E=Ga+(0-E<<2)|0;B=k[a+4544>>2]|0;n=E+(D<<2)+(0-B<<2)|0;g=3.1415927410125732/+(A+1|0);x=2.0-g*g;v=(A|0)>0;if(v){w=0.0;h=0;while(1){o[ua+(h<<2)>>2]=(g+w)*(+o[n+(h<<2)>>2]*.5);Ca=h|1;o[ua+(Ca<<2)>>2]=g*+o[n+(Ca<<2)>>2];s=x*g-w;Ca=h|2;o[ua+(Ca<<2)>>2]=(g+s)*(+o[n+(Ca<<2)>>2]*.5);Ca=h|3;o[ua+(Ca<<2)>>2]=s*+o[n+(Ca<<2)>>2];h=h+4|0;if((h|0)>=(A|0))break;else{w=s;g=x*s-g}}}qa=ua+(A<<2)|0;Ca=n+(A<<2)|0;q=B-(A<<1)|0;wf(qa|0,Ca|0,q<<2|0)|0;n=qa+(q<<2)|0;q=Ca+(q<<2)|0;if(v){s=1.0;w=x*.5;h=0;while(1){o[n+(h<<2)>>2]=(w+s)*(+o[q+(h<<2)>>2]*.5);Ca=h|1;o[n+(Ca<<2)>>2]=w*+o[q+(Ca<<2)>>2];g=x*w-s;Ca=h|2;o[n+(Ca<<2)>>2]=(w+g)*(+o[q+(Ca<<2)>>2]*.5);Ca=h|3;o[n+(Ca<<2)>>2]=g*+o[q+(Ca<<2)>>2];h=h+4|0;if((h|0)>=(A|0))break;else{s=g;w=x*g-w}}}C=a+4644|0;_d(U,ua,B,(k[C>>2]|0)+1|0);x=+o[U>>2];x=x+(x*1.0000000474974513e-03+1.0);o[U>>2]=x;B=k[C>>2]|0;T=x;oa=Ba+8|0;p[oa>>3]=T;p[Ba>>3]=T;v=(B|0)>0;if(v){h=1;while(1){T=+o[U+(h<<2)>>2];p[Ba+(h<<4)+8>>3]=T;p[Ba+(h<<4)>>3]=T;if((h|0)==(B|0)){n=B;q=0;break}else h=h+1|0}while(1){Ca=q;q=q+1|0;h=Ba+(q<<4)|0;g=+p[h>>3];s=+p[oa>>3];w=-g/(s>9.999999717180685e-10?s:9.999999717180685e-10);o[va+(Ca<<2)>>2]=w;if((Ca|0)<(B|0)?(p[h>>3]=w*s+g,p[oa>>3]=s+w*g,(n|0)!=1):0){h=1;do{Ca=Ba+(h<<4)+8|0;R=+p[Ca>>3];qa=Ba+(h+q<<4)|0;T=+p[qa>>3];p[qa>>3]=w*R+T;p[Ca>>3]=R+w*T;h=h+1|0}while((h|0)!=(n|0))}if((q|0)==(B|0))break;else n=n+-1|0}}T=+p[oa>>3];la=Ra+704|0;o[la>>2]=x/(T>1.0?T:1.0);if(v){q=0;do{g=+o[va+(q<<2)>>2];v=q;q=q+1|0;h=q>>1;if((h|0)>0){n=v+-1|0;A=0;do{qa=wa+(A<<2)|0;T=+o[qa>>2];Ca=wa+(n-A<<2)|0;R=+o[Ca>>2];o[qa>>2]=T+g*R;o[Ca>>2]=R+g*T;A=A+1|0}while((A|0)!=(h|0))}o[wa+(v<<2)>>2]=-g}while((q|0)!=(B|0));h=B+-1|0;if((B|0)>1){g=.9900000095367432;n=0;do{Ca=wa+(n<<2)|0;o[Ca>>2]=g*+o[Ca>>2];g=g*.9900000095367432;n=n+1|0}while((n|0)!=(h|0))}else g=.9900000095367432}else{h=B+-1|0;g=.9900000095367432}Ca=wa+(h<<2)|0;o[Ca>>2]=g*+o[Ca>>2];Yd(ca,wa,E,D,B);Ca=a+4761|0;h=i[Ca>>0]|0;do if(h<<24>>24!=0?(k[a+4660>>2]|0)==0:0){y=.6000000238418579-+(k[C>>2]|0)*.004000000189989805-+(k[a+4528>>2]|0)*.10000000149011612*.00390625-+(i[a+4537>>0]>>1|0)*.15000000596046448-+(k[a+4708>>2]|0)*.10000000149011612*.000030517578125;M=Ra+228|0;ia=a+4758|0;ka=a+4760|0;N=a+10056|0;J=k[a+4540>>2]|0;x=+(k[a+4648>>2]|0)*.0000152587890625;Z=k[Fa>>2]|0;_=k[a+4640>>2]|0;fa=k[a+4576>>2]|0;I=fa*5|0;h=I+20|0;A=ha(h,Z)|0;n=h<<2;h=h<<3;$=Z*5|0;ga=Z<<1;da=Z*18|0;O=da+-1|0;K=(Z|0)==16;b:do if(K){if((A|0)>0){v=A;do{B=v;v=v+-1|0;g=+o[ca+(v<<2)>>2];q=(o[t>>2]=g,k[t>>2]|0);if((q&2130706432)>>>0<=1249902592){q=(q|0)<0;g=q?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=q?-0.0:0.0}qa=~~g;j[Y+(v<<1)>>1]=(qa|0)>32767?32767:((qa|0)<-32768?-32768:qa)&65535}while((B|0)>1)}A=A>>1;if((A|0)>0){q=0;D=0;F=0;while(1){C=F<<1;B=j[Y+(C<<1)>>1]<<10;q=B-q|0;v=((ha(q&65535,-25727)|0)>>16)+(ha(q>>16,-25727)|0)|0;C=j[Y+((C|1)<<1)>>1]<<10;E=C-D|0;E=(((E&65535)*9872|0)>>>16)+((E>>16)*9872|0)|0;qa=(D+B+v+E>>10)+1>>1;j[ra+(F<<1)>>1]=(qa|0)>32767?32767:((qa|0)<-32768?-32768:qa)&65535;F=F+1|0;if((F|0)==(A|0))break;else{q=q+B+v|0;D=E+C|0}}}if((I|0)>-20){do{Da=h;h=h+-1|0;o[za+(h<<2)>>2]=+(j[ra+(h<<1)>>1]|0)}while((Da|0)>1);Da=68}}else{if((Z|0)!=12){if((I|0)<=-20)break;while(1){v=h;h=h+-1|0;g=+o[ca+(h<<2)>>2];q=(o[t>>2]=g,k[t>>2]|0);if((q&2130706432)>>>0<=1249902592){q=(q|0)<0;g=q?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=q?-0.0:0.0}Da=~~g;j[ra+(h<<1)>>1]=(Da|0)>32767?32767:((Da|0)<-32768?-32768:Da)&65535;if((v|0)<=1){Da=68;break b}}}if((A|0)>0){v=A;do{B=v;v=v+-1|0;g=+o[ca+(v<<2)>>2];q=(o[t>>2]=g,k[t>>2]|0);if((q&2130706432)>>>0<=1249902592){q=(q|0)<0;g=q?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=q?-0.0:0.0}qa=~~g;j[V+(v<<1)>>1]=(qa|0)>32767?32767:((qa|0)<-32768?-32768:qa)&65535}while((B|0)>1)}H=Ba+16|0;k[Ba>>2]=0;k[Ba+4>>2]=0;k[Ba+8>>2]=0;k[Ba+12>>2]=0;q=ra;F=V;B=0;v=0;while(1){G=(A|0)<480?A:480;if((G|0)>0){C=0;do{Y=(j[F+(C<<1)>>1]<<8)+B|0;k[H+(C<<2)>>2]=Y;Y=Y<<2;qa=Y>>16;Y=Y&65532;B=(ha(qa,-2797)|0)+v+((ha(Y,-2797)|0)>>16)|0;v=((ha(Y,-6507)|0)>>16)+(ha(qa,-6507)|0)|0;C=C+1|0}while((C|0)!=(G|0));D=G}else D=A;if((D|0)>2){E=Ba;while(1){P=k[E>>2]|0;V=E+4|0;S=k[V>>2]|0;Y=E+8|0;U=k[Y>>2]|0;qa=E;E=E+12|0;C=k[E>>2]|0;C=((((P&65535)*4697|0)>>>16)+((P>>16)*4697|0)+((S>>16)*10739|0)+(((S&65535)*10739|0)>>>16)+((U>>16)*8276|0)+(((U&65535)*8276|0)>>>16)+((C>>16)*1567|0)+(((C&65535)*1567|0)>>>16)>>5)+1>>1;j[q>>1]=(C|0)>32767?32767:((C|0)<-32768?-32768:C)&65535;V=k[V>>2]|0;Y=k[Y>>2]|0;C=k[E>>2]|0;qa=k[qa+16>>2]|0;qa=((((V&65535)*1567|0)>>>16)+((V>>16)*1567|0)+((Y>>16)*8276|0)+(((Y&65535)*8276|0)>>>16)+((C>>16)*10739|0)+(((C&65535)*10739|0)>>>16)+((qa>>16)*4697|0)+(((qa&65535)*4697|0)>>>16)>>5)+1>>1;C=q+4|0;j[q+2>>1]=(qa|0)>32767?32767:((qa|0)<-32768?-32768:qa)&65535;D=D+-3|0;if((D|0)<=2){q=C;break}else q=C}}A=A-G|0;if((A|0)<=0)break;qa=Ba+(G<<2)|0;k[Ba>>2]=k[qa>>2];k[Ba+4>>2]=k[qa+4>>2];k[Ba+8>>2]=k[qa+8>>2];k[Ba+12>>2]=k[qa+12>>2];F=F+(G<<1)|0}if((I|0)>-20){do{Da=h;h=h+-1|0;o[za+(h<<2)>>2]=+(j[ra+(h<<1)>>1]|0)}while((Da|0)>1);Da=68}}while(0);if((Da|0)==68?(I|0)>-20:0){h=0;B=0;D=0;while(1){A=D<<1;v=j[ra+(A<<1)>>1]<<10;h=v-h|0;q=((ha(h&65535,-25727)|0)>>16)+(ha(h>>16,-25727)|0)|0;A=j[ra+((A|1)<<1)>>1]<<10;C=A-B|0;C=(((C&65535)*9872|0)>>>16)+((C>>16)*9872|0)|0;Da=(B+v+q+C>>10)+1>>1;j[sa+(D<<1)>>1]=(Da|0)>32767?32767:((Da|0)<-32768?-32768:Da)&65535;D=D+1|0;if((D|0)==(n|0)){h=n;break}else{h=h+v+q|0;B=C+A|0}}do{Da=h;h=h+-1|0;o[xa+(h<<2)>>2]=+(j[sa+(h<<1)>>1]|0)}while((Da|0)>1)}if((n|0)>1)do{Da=n;n=n+-1|0;h=xa+(n<<2)|0;g=+o[xa+(Da+-2<<2)>>2]+ +(~~+o[h>>2]|0);if(!(g>32767.0)){if(g<-32768.0)g=-32768.0}else g=32767.0;o[h>>2]=+(~~g<<16>>16)}while((n|0)>1);E=fa<<2;rf(ta|0,0,fa*596|0)|0;q=fa>>1;if((q|0)>0){v=u+256|0;A=ta+32|0;B=0;C=xa+320|0;while(1){wd(C,C+-288|0,u,40,65);s=+o[v>>2];h=0;w=0.0;do{z=+o[C+(h<<2)>>2];Q=+o[C+((h|1)<<2)>>2];R=+o[C+((h|2)<<2)>>2];T=+o[C+((h|3)<<2)>>2];w=w+(z*z+Q*Q+R*R+T*T);h=h+4|0}while((h|0)<37);h=C+-32|0;n=0;g=0.0;do{z=+o[h+(n<<2)>>2];Q=+o[h+((n|1)<<2)>>2];R=+o[h+((n|2)<<2)>>2];T=+o[h+((n|3)<<2)>>2];g=g+(z*z+Q*Q+R*R+T*T);n=n+4|0}while((n|0)<37);g=w+g+16.0e4;o[A>>2]=s*2.0/g+ +o[A>>2];n=9;do{Da=h;h=h+-4|0;R=+o[h>>2];T=+o[Da+156>>2];g=g+(R*R-T*T);Da=ta+(n<<2)|0;o[Da>>2]=+o[Da>>2]+ +o[u+(72-n<<2)>>2]*2.0/g;n=n+1|0}while((n|0)!=73);B=B+1|0;if((B|0)==(q|0)){h=72;break}else C=C+160|0}}else h=72;do{Da=ta+(h<<2)|0;T=+o[Da>>2];o[Da>>2]=T-+(h|0)*T*.000244140625;h=h+-1|0}while((h|0)>7);A=_<<1;n=A+4|0;C=ta+32|0;D=(A|0)>-4;if(D){h=0;do{k[ba+(h<<2)>>2]=h;h=h+1|0}while((h|0)!=(n|0));if((n|0)>1){v=1;do{s=+o[C+(v<<2)>>2];q=v;while(1){h=q+-1|0;g=+o[C+(h<<2)>>2];if(!(s>g)){h=q;break}o[C+(q<<2)>>2]=g;k[ba+(q<<2)>>2]=k[ba+(h<<2)>>2];if((q|0)>1)q=h;else break}o[C+(h<<2)>>2]=s;k[ba+(h<<2)>>2]=v;v=v+1|0}while((v|0)!=(n|0));Da=89}else Da=90}else Da=89;if((Da|0)==89?(n|0)<65:0)Da=90;c:do if((Da|0)==90){h=A+3|0;B=C+(h<<2)|0;A=A+2|0;if((A|0)>-1)v=n;else{h=ba+(h<<2)|0;s=+o[B>>2];q=n;while(1){g=+o[C+(q<<2)>>2];if(g>s){o[B>>2]=g;k[h>>2]=q}else g=s;q=q+1|0;if((q|0)==65)break c;else s=g}}do{s=+o[C+(v<<2)>>2];if(s>+o[B>>2]){q=A;while(1){g=+o[C+(q<<2)>>2];if(!(s>g)){h=q;break}h=q+1|0;o[C+(h<<2)>>2]=g;k[ba+(h<<2)>>2]=k[ba+(q<<2)>>2];h=q+-1|0;if((q|0)>0)q=h;else break}qa=h+1|0;o[C+(qa<<2)>>2]=s;k[ba+(qa<<2)>>2]=v}v=v+1|0}while((v|0)!=65)}while(0);g=+o[C>>2];d:do if(g<.20000000298023224){rf(M|0,0,E|0)|0;o[N>>2]=0.0;j[ia>>1]=0;i[ka>>0]=0;h=0}else{g=g*x;e:do if(D){h=0;do{if(!(+o[ta+(h+8<<2)>>2]>g)){n=h;break e}qa=ba+(h<<2)|0;k[qa>>2]=(k[qa>>2]<<1)+16;h=h+1|0}while((h|0)<(n|0))}while(0);rf(aa+22|0,0,274)|0;if((n|0)>0){h=0;do{j[aa+(k[ba+(h<<2)>>2]<<1)>>1]=1;h=h+1|0}while((h|0)!=(n|0));h=aa+290|0;q=h;h=j[h>>1]|0}else{q=aa+290|0;h=0}n=146;do{qa=n;n=n+-1|0;Y=h;h=j[aa+(qa+-2<<1)>>1]|0;qa=aa+(qa<<1)|0;j[qa>>1]=(h&65535)+(Y&65535)+(m[qa>>1]|0)}while((n|0)>15);h=16;I=0;f:while(1){n=h;while(1){if((n|0)>=144)break f;h=n+1|0;if((j[aa+(h<<1)>>1]|0)>0)break;else n=h}k[ba+(I<<2)>>2]=n;I=I+1|0}n=j[q>>1]|0;q=j[aa+288>>1]|0;v=146;while(1){h=j[aa+(v+-3<<1)>>1]|0;qa=aa+(v<<1)|0;v=v+-1|0;j[qa>>1]=(q&65535)+(n&65535)+(h&65535)+(m[qa>>1]|0);if((v|0)<=15){n=16;h=0;break}else{n=q;q=h}}do{if((j[aa+(n<<1)>>1]|0)>0){j[aa+(h<<1)>>1]=n+65534;h=h+1|0}n=n+1|0}while((n|0)!=147);rf(ta|0,0,2384)|0;E=(Z|0)==8;V=(fa|0)>0;if(V){B=(h|0)>0;C=0;D=E?ca+640|0:za+640|0;while(1){n=0;g=0.0;do{z=+o[D+(n<<2)>>2];Q=+o[D+((n|1)<<2)>>2];R=+o[D+((n|2)<<2)>>2];T=+o[D+((n|3)<<2)>>2];g=g+(z*z+Q*Q+R*R+T*T);n=n+4|0}while((n|0)<37);s=g+1.0;if(B){A=0;do{q=j[aa+(A<<1)>>1]|0;v=D+(0-q<<2)|0;n=0;w=0.0;do{U=n|1;Y=n|2;qa=n|3;w=w+(+o[v+(n<<2)>>2]*+o[D+(n<<2)>>2]+ +o[v+(U<<2)>>2]*+o[D+(U<<2)>>2]+ +o[v+(Y<<2)>>2]*+o[D+(Y<<2)>>2]+ +o[v+(qa<<2)>>2]*+o[D+(qa<<2)>>2]);n=n+4|0}while((n|0)<37);if(w>0.0){n=0;g=0.0;do{z=+o[v+(n<<2)>>2];Q=+o[v+((n|1)<<2)>>2];R=+o[v+((n|2)<<2)>>2];T=+o[v+((n|3)<<2)>>2];g=g+(z*z+Q*Q+R*R+T*T);n=n+4|0}while((n|0)<37);o[ta+(C*596|0)+(q<<2)>>2]=w*2.0/(s+g)}else o[ta+(C*596|0)+(q<<2)>>2]=0.0;A=A+1|0}while((A|0)!=(h|0))}C=C+1|0;if((C|0)==(fa|0))break;else D=D+160|0}}if((J|0)>0){if((Z|0)==12)h=(J<<1|0)/3|0;else h=J>>(K&1);n=h;T=+Ke(+(h|0))*3.32192809488736}else{n=J;T=0.0}S=(fa|0)==4;if(S){G=36982;H=11;F=E&(_|0)>0?11:3}else{G=36948;H=3;F=3}do if((I|0)>0){Q=+(fa|0);R=Q*.20000000298023224;D=(n|0)>0;x=Q*y;A=F<<2;n=0;y=0.0;z=-1.0e3;C=0;E=-1;while(1){B=k[ba+(C<<2)>>2]|0;if(V){v=0;do{h=ya+(v<<2)|0;o[h>>2]=0.0;g=0.0;q=0;do{qa=G+((ha(q,H)|0)+v)|0;g=+o[ta+(q*596|0)+((i[qa>>0]|0)+B<<2)>>2]+g;q=q+1|0}while((q|0)!=(fa|0));o[h>>2]=g;v=v+1|0}while((v|0)<(F|0));q=0;w=-1.0e3;h=0}else{rf(ya|0,0,A|0)|0;q=0;w=-1.0e3;h=0}do{s=+o[ya+(h<<2)>>2];qa=s>w;w=qa?s:w;q=qa?h:q;h=h+1|0}while((h|0)<(F|0));g=+Ke(+(B|0))*3.32192809488736;s=w-R*g;if(D){g=g-T;g=g*g;s=s-g*(R*+o[N>>2])/(g+.5)}h=w>x&s>z;n=h?q:n;E=h?B:E;y=h?w:y;C=C+1|0;if((C|0)==(I|0))break;else z=h?s:z}if((E|0)==-1)break;o[N>>2]=y/Q;if((Z|0)>8){if((Z|0)==12){h=(E<<16>>16)*3|0;h=(h>>1)+(h&1)|0}else h=E<<1;do if((ga|0)<(da|0)){if((h|0)>=(da|0)){q=O;break}q=(h|0)<(ga|0)?ga:h}else{if((h|0)>(ga|0)){q=ga;break}q=(h|0)<(O|0)?O:h}while(0);P=q+-2|0;P=(P|0)>(ga|0)?P:ga;U=q+2|0;U=(U|0)<(O|0)?U:O;do if(S){G=37026;H=37162+(_<<3)|0;I=34;J=i[37186+_>>0]|0;Da=171}else{if(V){G=36954;H=36978;I=12;J=12;Da=171;break}h=ca+(Z*20<<2)|0;Da=180}while(0);do if((Da|0)==171){h=ca+(Z*20<<2)|0;D=0-P|0;E=0;F=h;while(1){ca=E<<1;qa=i[H+ca>>0]|0;n=qa<<24>>24;C=0-n|0;ca=i[H+(ca|1)>>0]|0;A=ca<<24>>24;B=1-n+A|0;wd(F,F+(D<<2)+(0-A<<2)|0,Ba,$,B);if(ca<<24>>24>=qa<<24>>24){v=0;while(1){k[Aa+(v<<2)>>2]=k[Ba+(A-n<<2)>>2];v=v+1|0;if((v|0)==(B|0))break;else n=n+1|0}}A=ha(E,I)|0;v=Aa+(C<<2)|0;n=0;do{qa=ma+(E*680|0)+(n*20|0)|0;ca=v+(i[G+(n+A)>>0]<<2)|0;k[qa>>2]=k[ca>>2];k[qa+4>>2]=k[ca+4>>2];k[qa+8>>2]=k[ca+8>>2];k[qa+12>>2]=k[ca+12>>2];k[qa+16>>2]=k[ca+16>>2];n=n+1|0}while((n|0)!=(J|0));E=E+1|0;if((E|0)==(fa|0))break;else F=F+($<<2)|0}if(!S)if(V){I=36954;J=36978;K=12;N=12}else{Da=180;break}else{I=37026;J=37162+(_<<3)|0;K=34;N=i[37186+_>>0]|0}E=$+-3|0;F=($|0)>3;G=(N|0)>0;H=$&-4;M=0;O=h;while(1){v=M<<1;A=i[J+v>>0]|0;B=A<<24>>24;D=0-B|0;C=O+(0-(P+B)<<2)|0;if(F){n=0;g=0.0;do{z=+o[C+(n<<2)>>2];Q=+o[C+((n|1)<<2)>>2];R=+o[C+((n|2)<<2)>>2];T=+o[C+((n|3)<<2)>>2];g=g+(z*z+Q*Q+R*R+T*T);n=n+4|0}while((n|0)<(E|0));n=H}else{n=0;g=0.0}if((n|0)<($|0))do{T=+o[C+(n<<2)>>2];g=g+T*T;n=n+1|0}while((n|0)!=($|0));g=g+.001;o[Aa>>2]=g;n=i[J+(v|1)>>0]|0;if(n<<24>>24>A<<24>>24){v=1-B+(n<<24>>24)|0;n=1;do{R=+o[C+($-n<<2)>>2];T=+o[C+(0-n<<2)>>2];g=g-R*R+T*T;o[Aa+(n<<2)>>2]=g;n=n+1|0}while((n|0)!=(v|0))}if(G){A=ha(M,K)|0;v=Aa+(D<<2)|0;n=0;do{qa=na+(M*680|0)+(n*20|0)|0;ca=v+(i[I+(n+A)>>0]<<2)|0;k[qa>>2]=k[ca>>2];k[qa+4>>2]=k[ca+4>>2];k[qa+8>>2]=k[ca+8>>2];k[qa+12>>2]=k[ca+12>>2];k[qa+16>>2]=k[ca+16>>2];n=n+1|0}while((n|0)!=(N|0))}M=M+1|0;if((M|0)==(fa|0))break;else O=O+($<<2)|0}g=.05000000074505806/+(q|0);if(!S){y=g;E=36954;F=12;D=12;break}y=g;E=37026;F=34;D=i[37186+_>>0]|0}while(0);if((Da|0)==180){y=.05000000074505806/+(q|0);E=36954;F=12;D=12}A=ha($,fa)|0;n=A+-3|0;if((A|0)>3){v=0;g=0.0;do{z=+o[h+(v<<2)>>2];Q=+o[h+((v|1)<<2)>>2];R=+o[h+((v|2)<<2)>>2];T=+o[h+((v|3)<<2)>>2];g=g+(z*z+Q*Q+R*R+T*T);v=v+4|0}while((v|0)<(n|0));n=A&-4}else{n=0;g=0.0}if((n|0)<(A|0))do{T=+o[h+(n<<2)>>2];g=g+T*T;n=n+1|0}while((n|0)!=(A|0));x=g+1.0;if((P|0)>(U|0))n=0;else{C=(D|0)>0;n=0;g=-1.0e3;A=P;B=0;while(1){g:do if(C){if(V){w=g;v=0}else{h=0;while(1){if(g<0.0){qa=((i[37026+h>>0]|0)+A|0)<(da|0);n=qa?h:n;g=qa?0.0:g;q=qa?A:q}h=h+1|0;if((h|0)==(D|0))break g}}while(1){g=0.0;s=x;h=0;do{g=g+ +o[ma+(h*680|0)+(v*20|0)+(B<<2)>>2];s=s+ +o[na+(h*680|0)+(v*20|0)+(B<<2)>>2];h=h+1|0}while((h|0)!=(fa|0));if(g>0.0)g=(1.0-y*+(v|0))*(g*2.0/s);else g=0.0;if(g>w){qa=((i[37026+v>>0]|0)+A|0)<(da|0);n=qa?v:n;g=qa?g:w;q=qa?A:q}else g=w;v=v+1|0;if((v|0)==(D|0))break;else w=g}}while(0);if((A|0)<(U|0)){A=A+1|0;B=B+1|0}else break}}if(V)if((ga|0)>(da|0)){h=0;do{qa=E+((ha(h,F)|0)+n)|0;qa=(i[qa>>0]|0)+q|0;k[Ra+228+(h<<2)>>2]=(qa|0)>(ga|0)?ga:(qa|0)<(da|0)?da:qa;h=h+1|0}while((h|0)!=(fa|0))}else{h=0;do{qa=E+((ha(h,F)|0)+n)|0;qa=(i[qa>>0]|0)+q|0;k[Ra+228+(h<<2)>>2]=(qa|0)>(da|0)?da:(qa|0)<(ga|0)?ga:qa;h=h+1|0}while((h|0)!=(fa|0))}h=q-ga|0}else{if(V){h=0;do{qa=G+((ha(h,H)|0)+n)|0;qa=(i[qa>>0]|0)+E|0;k[Ra+228+(h<<2)>>2]=(qa|0)>144?144:(qa|0)<16?16:qa;h=h+1|0}while((h|0)!=(fa|0))}h=E+65520|0}j[ia>>1]=h;i[ka>>0]=n;h=1;break d}while(0);k[M>>2]=0;k[M+4>>2]=0;k[M+8>>2]=0;k[M+12>>2]=0;o[N>>2]=0.0;j[ia>>1]=0;i[ka>>0]=0;h=0}while(0);if(h){i[Ca>>0]=2;h=2;break}else{i[Ca>>0]=1;h=1;break}}else Da=226;while(0);if((Da|0)==226){qa=Ra+228|0;k[qa>>2]=0;k[qa+4>>2]=0;k[qa+8>>2]=0;k[qa+12>>2]=0;j[a+4758>>1]=0;i[a+4760>>0]=0;o[a+10056>>2]=0.0}G=Ga+(0-(k[a+4596>>2]|0)<<2)|0;V=a+4712|0;s=+(k[V>>2]|0);g=s*.0078125;P=a+4692|0;w=+((k[a+4696>>2]|0)+(k[P>>2]|0)|0)*.5*.000030517578125;Y=Ra+696|0;o[Y>>2]=w;Q=1.0/(+ea(+-((g+-20.0)*.25))+1.0);Z=Ra+700|0;o[Z>>2]=Q;if(!(k[a+4672>>2]|0)){T=1.0-+(k[a+4528>>2]|0)*.00390625;g=g-T*(T*(Q*2.0*(w*.5+.5)))}do if(h<<24>>24!=2){z=g+(1.0-w)*(s*-.4000000059604645*.0078125+6.0);h=k[Fa>>2]|0;C=h<<1;D=a+4576|0;F=k[D>>2]|0;qa=(F<<16>>16)*5|0;E=(qa|0)/2|0;h:do if((qa|0)>1){y=+(C|0);A=C+-3|0;B=C&-4;if((C|0)<=3){n=(h|0)>0;g=0.0;q=0;x=0.0;v=pa;while(1){if(n){h=0;s=0.0;do{T=+o[v+(h<<2)>>2];s=s+T*T;h=h+1|0}while((h|0)!=(C|0))}else s=0.0;w=x;x=+Ke(y+s)*3.32192809488736;if((q|0)>0)g=g+ +W(+(x-w));q=q+1|0;if((q|0)>=(E|0))break h;else v=v+(C<<2)|0}}n=(B|0)<(C|0);g=0.0;q=0;x=0.0;v=pa;while(1){h=0;s=0.0;do{Ya=+o[v+(h<<2)>>2];w=+o[v+((h|1)<<2)>>2];R=+o[v+((h|2)<<2)>>2];T=+o[v+((h|3)<<2)>>2];s=s+(Ya*Ya+w*w+R*R+T*T);h=h+4|0}while((h|0)<(A|0));if(n){h=B;do{Ya=+o[v+(h<<2)>>2];s=s+Ya*Ya;h=h+1|0}while((h|0)!=(C|0))}w=x;x=+Ke(y+s)*3.32192809488736;if((q|0)>0)g=g+ +W(+(x-w));q=q+1|0;if((q|0)>=(E|0))break;else v=v+(C<<2)|0}}else g=0.0;while(0);h=a+4762|0;if(g>+(E+-1|0)*.6000000238418579){i[h>>0]=0;h=F;break}else{i[h>>0]=1;h=F;break}}else{z=g+ +o[a+10056>>2]*2.0;i[a+4762>>0]=0;h=a+4576|0;D=h;h=k[h>>2]|0}while(0);T=+o[la>>2]*1.0000000474974513e-03;T=.9399999976158142/(T*T+1.0);O=a+4668|0;n=k[O>>2]|0;R=+(n|0)*.0000152587890625+Q*.009999999776482582;if((h|0)>0){K=a+4600|0;M=a+4584|0;N=a+4632|0;y=1.0-R*R;Q=R;J=0;while(1){q=k[Fa>>2]|0;v=q*3|0;C=k[K>>2]|0;A=C-v|0;B=(A|0)/2|0;g=3.1415927410125732/+(B+1|0);x=2.0-g*g;A=(A|0)>1;if(A){w=0.0;h=0;while(1){o[za+(h<<2)>>2]=(g+w)*(+o[G+(h<<2)>>2]*.5);qa=h|1;o[za+(qa<<2)>>2]=g*+o[G+(qa<<2)>>2];s=x*g-w;qa=h|2;o[za+(qa<<2)>>2]=(g+s)*(+o[G+(qa<<2)>>2]*.5);qa=h|3;o[za+(qa<<2)>>2]=s*+o[G+(qa<<2)>>2];h=h+4|0;if((h|0)>=(B|0))break;else{w=s;g=x*s-g}}}wf(za+(B<<2)|0,G+(B<<2)|0,q*12|0)|0;v=B+v|0;q=za+(v<<2)|0;v=G+(v<<2)|0;if(A){s=1.0;w=x*.5;h=0;while(1){o[q+(h<<2)>>2]=(w+s)*(+o[v+(h<<2)>>2]*.5);qa=h|1;o[q+(qa<<2)>>2]=w*+o[v+(qa<<2)>>2];g=x*w-s;qa=h|2;o[q+(qa<<2)>>2]=(w+g)*(+o[v+(qa<<2)>>2]*.5);qa=h|3;o[q+(qa<<2)>>2]=g*+o[v+(qa<<2)>>2];h=h+4|0;if((h|0)>=(B|0))break;else{s=g;w=x*g-w}}}G=G+(k[M>>2]<<2)|0;A=k[N>>2]|0;if((n|0)>0){rf(Ba|0,0,200)|0;rf(Aa|0,0,200)|0;do if((C|0)>0){q=Ba+(A<<3)|0;v=Aa+(A<<3)|0;if((A|0)>0){g=0.0;n=0;do{h=0;s=+o[za+(n<<2)>>2];do{qa=h|1;na=Ba+(qa<<3)|0;x=+p[na>>3];Ya=g+Q*(x-s);p[Ba+(h<<3)>>3]=s;ma=Aa+(h<<3)|0;p[ma>>3]=+p[ma>>3]+s*+p[Ba>>3];h=h+2|0;g=+p[Ba+(h<<3)>>3];s=x+Q*(g-Ya);p[na>>3]=Ya;qa=Aa+(qa<<3)|0;p[qa>>3]=+p[qa>>3]+Ya*+p[Ba>>3]}while((h|0)<(A|0));p[q>>3]=s;g=+p[Ba>>3];p[v>>3]=+p[v>>3]+s*g;n=n+1|0}while((n|0)!=(C|0))}else{g=+p[v>>3];h=0;do{Ya=+o[za+(h<<2)>>2];p[q>>3]=Ya;g=g+Ya*+p[Ba>>3];h=h+1|0}while((h|0)!=(C|0));p[v>>3]=g;break}}while(0);if((A|0)>=0){h=0;while(1){o[xa+(h<<2)>>2]=+p[Aa+(h<<3)>>3];if((h|0)==(A|0))break;else h=h+1|0}}I=A}else{_d(xa,za,C,A+1|0);I=k[N>>2]|0}g=+o[xa>>2];g=g+(g*2.9999999242136255e-05+1.0);o[xa>>2]=g;Ya=g;p[oa>>3]=Ya;p[Ba>>3]=Ya;C=(I|0)>0;if(C){h=1;while(1){Ya=+o[xa+(h<<2)>>2];p[Ba+(h<<4)+8>>3]=Ya;p[Ba+(h<<4)>>3]=Ya;if((h|0)==(I|0)){n=I;q=0;break}else h=h+1|0}while(1){qa=q;q=q+1|0;h=Ba+(q<<4)|0;g=+p[h>>3];s=+p[oa>>3];w=-g/(s>9.999999717180685e-10?s:9.999999717180685e-10);o[ra+(qa<<2)>>2]=w;do if((qa|0)<(I|0)){p[h>>3]=w*s+g;p[oa>>3]=s+w*g;if((n|0)==1)break;else h=1;do{qa=Ba+(h<<4)+8|0;x=+p[qa>>3];na=Ba+(h+q<<4)|0;Ya=+p[na>>3];p[na>>3]=w*x+Ya;p[qa>>3]=x+w*Ya;h=h+1|0}while((h|0)!=(n|0))}while(0);if((q|0)==(I|0))break;else n=n+-1|0}g=+p[oa>>3];B=Ra+244+(J*24<<2)|0;q=0;do{s=+o[ra+(q<<2)>>2];v=q;q=q+1|0;h=q>>1;if((h|0)>0){n=v+-1|0;A=0;do{na=B+(A<<2)|0;Ya=+o[na>>2];qa=B+(n-A<<2)|0;x=+o[qa>>2];o[na>>2]=Ya+s*x;o[qa>>2]=x+s*Ya;A=A+1|0}while((A|0)!=(h|0))}o[B+(v<<2)>>2]=-s}while((q|0)!=(I|0))}else B=Ra+244+(J*24<<2)|0;s=+X(+g);q=Ra+(J<<2)|0;o[q>>2]=s;n=k[O>>2]|0;v=(n|0)>0;H=I+-1|0;if(v){h=I+-2|0;g=R*+o[B+(H<<2)>>2];if((h|0)>-1)while(1){g=R*(+o[B+(h<<2)>>2]-g);if((h|0)>0)h=h+-1|0;else break}o[q>>2]=s*(1.0/(g+1.0))}E=(I|0)>1;if(E){g=T;h=0;do{qa=B+(h<<2)|0;o[qa>>2]=g*+o[qa>>2];g=T*g;h=h+1|0}while((h|0)!=(H|0))}else g=T;F=B+(H<<2)|0;g=g*+o[F>>2];o[F>>2]=g;i:do if(v){if(E){h=H;do{qa=h;h=h+-1|0;na=B+(h<<2)|0;g=+o[na>>2]-R*g;o[na>>2]=g}while((qa|0)>1)}g=+o[B>>2];s=y/(R*g+1.0);if(!C)break;o[B>>2]=s*g;if((I|0)==1)C=1;else{h=1;do{qa=B+(h<<2)|0;o[qa>>2]=s*+o[qa>>2];h=h+1|0}while((h|0)!=(I|0));C=0}h=0;A=0;while(1){q=0;v=h;w=-1.0;do{Ya=+W(+(+o[B+(q<<2)>>2]));qa=Ya>w;v=qa?q:v;w=qa?Ya:w;q=q+1|0}while((q|0)!=(I|0));if(w<=3.999000072479248)break i;if(E){g=+o[B>>2];h=1;do{Ya=g;g=+o[B+(h<<2)>>2];o[B+(h+-1<<2)>>2]=Ya+R*g;h=h+1|0}while((h|0)!=(I|0))}g=1.0/s;h=0;do{qa=B+(h<<2)|0;o[qa>>2]=g*+o[qa>>2];h=h+1|0}while((h|0)!=(I|0));g=.9900000095367432-(+(A|0)*.10000000149011612+.800000011920929)*(w+-3.999000072479248)/(w*+(v+1|0));if(E){s=g;h=0;do{qa=B+(h<<2)|0;o[qa>>2]=s*+o[qa>>2];s=g*s;h=h+1|0}while((h|0)!=(H|0));g=s*+o[F>>2];o[F>>2]=g;h=H;do{qa=h;h=h+-1|0;na=B+(h<<2)|0;g=+o[na>>2]-R*g;o[na>>2]=g}while((qa|0)>1)}else o[F>>2]=g*+o[F>>2];Ya=+o[B>>2];s=y/(R*Ya+1.0);o[B>>2]=s*Ya;if(!C){h=1;do{qa=B+(h<<2)|0;o[qa>>2]=s*+o[qa>>2];h=h+1|0}while((h|0)!=(I|0))}A=A+1|0;if((A|0)>=10)break;else h=v}}else{if(!C)break;if(E){h=0;v=0}else{h=0;v=0;while(1){q=0;s=-1.0;do{Ya=+W(+(+o[B+(q<<2)>>2]));qa=Ya>s;h=qa?q:h;s=qa?Ya:s;q=q+1|0}while((q|0)!=(I|0));if(s<=3.999000072479248)break i;g=(.9900000095367432-(+(v|0)*.10000000149011612+.800000011920929)*(s+-3.999000072479248)/(s*+(h+1|0)))*g;o[F>>2]=g;v=v+1|0;if((v|0)>=10)break i}}do{q=0;g=-1.0;do{Ya=+W(+(+o[B+(q<<2)>>2]));qa=Ya>g;h=qa?q:h;g=qa?Ya:g;q=q+1|0}while((q|0)!=(I|0));if(g<=3.999000072479248)break i;g=.9900000095367432-(+(v|0)*.10000000149011612+.800000011920929)*(g+-3.999000072479248)/(g*+(h+1|0));s=g;q=0;do{qa=B+(q<<2)|0;o[qa>>2]=s*+o[qa>>2];s=g*s;q=q+1|0}while((q|0)!=(H|0));o[F>>2]=s*+o[F>>2];v=v+1|0}while((v|0)<10)}while(0);J=J+1|0;h=k[D>>2]|0;if((J|0)>=(h|0)){q=h;break}}}else q=h;g=z*-.1599999964237213;s=g;p[t>>3]=s;h=k[t+4>>2]|0;n=h&2147483647;do if(n>>>0>1083174911){h=(h|0)>-1|(h|0)==-1&(k[t>>2]|0)>>>0>4294967295;if(h&n>>>0>1083179007){g=s*8988465674311579538646525.0e283;break}if(n>>>0<=2146435071)if(!(g<=-1075.0)|h){Da=332;break}else{g=0.0;break}else{g=-1.0/s;break}}else if(n>>>0<1016070144)g=s+1.0;else Da=332;while(0);if((Da|0)==332){g=s+26388279066624.0;p[t>>3]=g;qa=(k[t>>2]|0)+128|0;h=qa&-256;n=(h|0)/256|0;qa=qa<<1&510;Ya=+p[232+(qa<<3)>>3];g=s-(g+-26388279066624.0)-+p[232+((qa|1)<<3)>>3];g=Ya+Ya*g*(g*(g*(g*(g*1.3333559164630223e-03+.009618129842126066)+.0555041086648214)+.2402265069591)+.6931471805599453);if((h|0)>262143){g=g*8988465674311579538646525.0e283;h=n+-1023|0;if((h|0)>1023){h=n+-2046|0;h=(h|0)>1023?1023:h;g=g*8988465674311579538646525.0e283}}else if((h|0)<-261887){g=g*2.2250738585072014e-308;h=n+1022|0;if((h|0)<-1022){h=n+2044|0;h=(h|0)<-1022?-1022:h;g=g*2.2250738585072014e-308}}else h=n;oa=sf(h+1023|0,0,52)|0;qa=L;k[t>>2]=oa;k[t+4>>2]=qa;g=g*+p[t>>3]}B=(q|0)>0;if(B){h=0;do{qa=Ra+(h<<2)|0;o[qa>>2]=g*+o[qa>>2]+1.2483305931091309;h=h+1|0}while((h|0)!=(q|0))}U=a+4528|0;s=+(k[U>>2]|0);w=s*.00390625*(((+(k[P>>2]|0)*.000030517578125+-1.0)*.5+1.0)*4.0);C=(i[Ca>>0]|0)==2;j:do if(!C){g=1.2999999523162842/+(k[Fa>>2]|0);s=g+-1.0;A=Ra+628|0;o[A>>2]=s;g=1.0-g-w*g*.6000000238418579;v=Ra+644|0;o[v>>2]=g;h=(o[t>>2]=s,k[t>>2]|0);if((q|0)>1?(o[Ra+632>>2]=s,o[Ra+648>>2]=g,(q|0)>2):0){q=q+-1|0;n=2;while(1){k[Ra+628+(n<<2)>>2]=h;k[Ra+644+(n<<2)>>2]=k[v>>2];if((n|0)==(q|0)){g=-.25;Da=351;break j}h=k[A>>2]|0;n=n+1|0}}else{x=0.0;g=-.25}}else{if(B){g=.20000000298023224/+(k[Fa>>2]|0);h=0;do{Ya=g+3.0/+(k[Ra+228+(h<<2)>>2]|0);o[Ra+628+(h<<2)>>2]=Ya+-1.0;o[Ra+644+(h<<2)>>2]=1.0-Ya-w*Ya;h=h+1|0}while((h|0)!=(q|0))}g=-.25-s*.26249998807907104*.00390625;Da=351}while(0);if((Da|0)==351)if(C)x=+X(+(+o[a+10056>>2]))*((1.0-(1.0-+o[Z>>2])*+o[Y>>2])*.20000000298023224+.30000001192092896);else x=0.0;if(B){h=a+7168|0;n=a+7172|0;s=+o[h>>2];w=+o[n>>2];q=0;do{s=s+(x-s)*.4000000059604645;o[h>>2]=s;o[Ra+676+(q<<2)>>2]=s;w=w+(g-w)*.4000000059604645;o[n>>2]=w;o[Ra+660+(q<<2)>>2]=w;q=q+1|0}while((q|0)<(k[D>>2]|0))}qa=a+4576|0;h=k[qa>>2]|0;q=(h|0)>0;if(q){n=0;do{o[ta+(n<<2)>>2]=1.0/+o[Ra+(n<<2)>>2];n=n+1|0}while((n|0)!=(h|0))}do if(C){S=a+4584|0;D=k[S>>2]|0;if(q){H=D+5|0;I=(H|0)>3;J=H&-4;K=D+-3|0;M=(D|0)>3;N=D&-4;O=(N|0)<(D|0);P=(D|0)>0;C=pa;E=ra;F=0;G=sa;while(1){q=C+(-2-(k[Ra+228+(F<<2)>>2]|0)<<2)|0;B=q+16|0;if(M){n=0;g=0.0;do{Q=+o[B+(n<<2)>>2];R=+o[B+((n|1)<<2)>>2];T=+o[B+((n|2)<<2)>>2];Ya=+o[B+((n|3)<<2)>>2];g=g+(Q*Q+R*R+T*T+Ya*Ya);n=n+4|0}while((n|0)<(K|0));n=N}else{n=0;g=0.0}if((n|0)<(D|0))do{Ya=+o[B+(n<<2)>>2];g=g+Ya*Ya;n=n+1|0}while((n|0)!=(D|0));o[E>>2]=g;n=1;do{T=+o[B+(0-n<<2)>>2];Ya=+o[B+(D-n<<2)>>2];g=g+(T*T-Ya*Ya);o[E+(n*6<<2)>>2]=g;n=n+1|0}while((n|0)!=5);n=q+12|0;if(M){v=4;A=1;while(1){q=0;g=0.0;do{na=q|1;oa=q|2;pa=q|3;g=g+(+o[B+(q<<2)>>2]*+o[n+(q<<2)>>2]+ +o[B+(na<<2)>>2]*+o[n+(na<<2)>>2]+ +o[B+(oa<<2)>>2]*+o[n+(oa<<2)>>2]+ +o[B+(pa<<2)>>2]*+o[n+(pa<<2)>>2]);q=q+4|0}while((q|0)<(K|0));if(O){q=N;do{g=g+ +o[B+(q<<2)>>2]*+o[n+(q<<2)>>2];q=q+1|0}while((q|0)!=(D|0))}Ya=g;o[E+(A*5<<2)>>2]=Ya;o[E+(A<<2)>>2]=Ya;if((5-A|0)>1){q=1;do{oa=0-q|0;pa=D-q|0;g=g+(+o[B+(oa<<2)>>2]*+o[n+(oa<<2)>>2]-+o[B+(pa<<2)>>2]*+o[n+(pa<<2)>>2]);Ya=g;pa=q+A|0;o[E+((pa*5|0)+q<<2)>>2]=Ya;o[E+((q*5|0)+pa<<2)>>2]=Ya;q=q+1|0}while((q|0)!=(v|0))}A=A+1|0;if((A|0)==5)break;else{v=v+-1|0;n=n+-4|0}}}else{v=4;A=1;while(1){if(P){q=0;g=0.0;do{g=g+ +o[B+(q<<2)>>2]*+o[n+(q<<2)>>2];q=q+1|0}while((q|0)!=(D|0))}else g=0.0;Ya=g;o[E+(A*5<<2)>>2]=Ya;o[E+(A<<2)>>2]=Ya;if((5-A|0)>1){q=1;do{oa=0-q|0;pa=D-q|0;g=g+(+o[B+(oa<<2)>>2]*+o[n+(oa<<2)>>2]-+o[B+(pa<<2)>>2]*+o[n+(pa<<2)>>2]);Ya=g;pa=q+A|0;o[E+((pa*5|0)+q<<2)>>2]=Ya;o[E+((q*5|0)+pa<<2)>>2]=Ya;q=q+1|0}while((q|0)!=(v|0))}A=A+1|0;if((A|0)==5)break;else{v=v+-1|0;n=n+-4|0}}}if(M){v=0;q=B;while(1){n=0;g=0.0;do{na=n|1;oa=n|2;pa=n|3;g=g+(+o[q+(n<<2)>>2]*+o[C+(n<<2)>>2]+ +o[q+(na<<2)>>2]*+o[C+(na<<2)>>2]+ +o[q+(oa<<2)>>2]*+o[C+(oa<<2)>>2]+ +o[q+(pa<<2)>>2]*+o[C+(pa<<2)>>2]);n=n+4|0}while((n|0)<(K|0));if(O){n=N;do{g=g+ +o[q+(n<<2)>>2]*+o[C+(n<<2)>>2];n=n+1|0}while((n|0)!=(D|0))}o[G+(v<<2)>>2]=g;v=v+1|0;if((v|0)==5)break;else q=q+-4|0}}else{v=0;q=B;while(1){if(P){n=0;g=0.0;do{g=g+ +o[q+(n<<2)>>2]*+o[C+(n<<2)>>2];n=n+1|0}while((n|0)!=(D|0))}else g=0.0;o[G+(v<<2)>>2]=g;v=v+1|0;if((v|0)==5)break;else q=q+-4|0}}if(I){n=0;g=0.0;while(1){Q=+o[C+(n<<2)>>2];R=+o[C+((n|1)<<2)>>2];pa=n|2;T=+o[C+(pa<<2)>>2];Ya=+o[C+((n|3)<<2)>>2];g=g+(Q*Q+R*R+T*T+Ya*Ya);if((pa|0)<(D|0))n=n+4|0;else{n=J;break}}}else{n=0;g=0.0}if((n|0)<(H|0))do{Ya=+o[C+(n<<2)>>2];g=g+Ya*Ya;n=n+1|0}while((n|0)!=(H|0));R=g;T=+o[E>>2];pa=E+96|0;Ya=(T+ +o[pa>>2])*.014999999664723873+1.0;Ya=1.0/(R>Ya?R:Ya);o[E>>2]=Ya*T;oa=E+4|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+8|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+12|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+16|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+20|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+24|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+28|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+32|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+36|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+40|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+44|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+48|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+52|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+56|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+60|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+64|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+68|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+72|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+76|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+80|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+84|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+88|0;o[oa>>2]=Ya*+o[oa>>2];oa=E+92|0;o[oa>>2]=Ya*+o[oa>>2];o[pa>>2]=Ya*+o[pa>>2];o[G>>2]=Ya*+o[G>>2];pa=G+4|0;o[pa>>2]=Ya*+o[pa>>2];pa=G+8|0;o[pa>>2]=Ya*+o[pa>>2];pa=G+12|0;o[pa>>2]=Ya*+o[pa>>2];pa=G+16|0;o[pa>>2]=Ya*+o[pa>>2];F=F+1|0;if((F|0)==(h|0))break;else{C=C+(D<<2)|0;E=E+100|0;G=G+20|0}}h=k[qa>>2]|0;D=k[S>>2]|0}A=a+4736|0;B=a+4764|0;C=a+4652|0;F=Ra+708|0;E=h*5|0;q=h*25|0;if((q|0)>0){v=0;do{g=+o[ra+(v<<2)>>2]*131072.0;n=(o[t>>2]=g,k[t>>2]|0);do if((n&2130706432)>>>0<=1249902592){n=(n|0)<0;g=n?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(!(g==0.0))break;g=n?-0.0:0.0}while(0);k[za+(v<<2)>>2]=~~g;v=v+1|0}while((v|0)!=(q|0))}if((h|0)>0){q=0;do{g=+o[sa+(q<<2)>>2]*131072.0;n=(o[t>>2]=g,k[t>>2]|0);do if((n&2130706432)>>>0<=1249902592){n=(n|0)<0;g=n?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(!(g==0.0))break;g=n?-0.0:0.0}while(0);k[xa+(q<<2)>>2]=~~g;q=q+1|0}while((q|0)<(E|0));ue(Aa,A,B,C,Ba,za,xa,D,h);h=0;do{o[Ra+144+(h<<2)>>2]=+(j[Aa+(h<<1)>>1]|0)*.00006103515625;h=h+1|0}while((h|0)<(E|0))}else ue(Aa,A,B,C,Ba,za,xa,D,h);g=+(k[Ba>>2]|0)*.0078125;o[F>>2]=g;if(!d){g=g*+((k[a+5740>>2]|0)+(k[a+4612>>2]|0)|0)*.10000000149011612;do if(g>2.0)h=2;else{if(g<0.0){h=0;break}h=~~g}while(0);i[a+4765>>0]=h}else{i[a+4765>>0]=0;h=0}o[Ra+224>>2]=+(j[29376+(h<<24>>24<<1)>>1]|0)*.00006103515625;h=k[a+4636>>2]|0;v=k[S>>2]|0;A=k[qa>>2]|0;if((A|0)<=0)break;B=v+h|0;if((B|0)<=0)break;C=ya;D=0;q=Ga+(0-h<<2)|0;while(1){h=Ra+144+(D*5<<2)|0;g=+o[ta+(D<<2)>>2];s=+o[h>>2];w=+o[h+4>>2];x=+o[h+8>>2];y=+o[h+12>>2];z=+o[h+16>>2];h=0;n=q+(0-(k[Ra+228+(D<<2)>>2]|0)<<2)|0;do{ra=k[q+(h<<2)>>2]|0;sa=C+(h<<2)|0;k[sa>>2]=ra;Ya=(k[t>>2]=ra,+o[t>>2])-s*+o[n+8>>2];o[sa>>2]=Ya;ra=n;n=n+4|0;Ya=Ya-w*+o[n>>2];o[sa>>2]=Ya;Ya=Ya-x*+o[ra>>2];o[sa>>2]=Ya;Ya=Ya-y*+o[ra+-4>>2];o[sa>>2]=Ya;o[sa>>2]=g*(Ya-z*+o[ra+-8>>2]);h=h+1|0}while((h|0)!=(B|0));D=D+1|0;if((D|0)==(A|0))break;else{C=C+(B<<2)|0;q=q+(v<<2)|0}}}else{E=a+4636|0;if(q){D=k[E>>2]|0;A=a+4584|0;h=k[A>>2]|0;n=D;B=0;C=ya;D=Ga+(0-D<<2)|0;while(1){g=+o[ta+(B<<2)>>2];q=n+h|0;h=q&65532;if(!h)h=0;else{n=0;do{o[C+(n<<2)>>2]=g*+o[D+(n<<2)>>2];sa=n|1;o[C+(sa<<2)>>2]=g*+o[D+(sa<<2)>>2];sa=n|2;o[C+(sa<<2)>>2]=g*+o[D+(sa<<2)>>2];sa=n|3;o[C+(sa<<2)>>2]=g*+o[D+(sa<<2)>>2];n=n+4|0}while((n|0)<(h|0))}if((h|0)<(q|0))do{o[C+(h<<2)>>2]=g*+o[D+(h<<2)>>2];h=h+1|0}while((h|0)!=(q|0));q=k[A>>2]|0;v=k[E>>2]|0;B=B+1|0;h=k[qa>>2]|0;if((B|0)>=(h|0))break;else{h=q;n=v;C=C+(v+q<<2)|0;D=D+(q<<2)|0}}}rf(Ra+144|0,0,h*20|0)|0;o[Ra+708>>2]=0.0;k[a+4652>>2]=0}while(0);q=a+4660|0;if(!(k[q>>2]|0)){g=+o[Ra+708>>2]/3.0;s=g;p[t>>3]=s;h=k[t+4>>2]|0;n=h&2147483647;do if(n>>>0>1083174911){h=(h|0)>-1|(h|0)==-1&(k[t>>2]|0)>>>0>4294967295;if(h&n>>>0>1083179007){g=s*8988465674311579538646525.0e283;break}if(n>>>0<=2146435071)if(!(g<=-1075.0)|h){Da=437;break}else{g=0.0;break}else{g=-1.0/s;break}}else{if(n>>>0>=1016070144){Da=437;break}g=s+1.0}while(0);if((Da|0)==437){g=s+26388279066624.0;p[t>>3]=g;ta=(k[t>>2]|0)+128|0;h=ta&-256;n=(h|0)/256|0;ta=ta<<1&510;Ya=+p[232+(ta<<3)>>3];g=s-(g+-26388279066624.0)-+p[232+((ta|1)<<3)>>3];g=Ya+Ya*g*(g*(g*(g*(g*1.3333559164630223e-03+.009618129842126066)+.0555041086648214)+.2402265069591)+.6931471805599453);do if((h|0)>262143){g=g*8988465674311579538646525.0e283;h=n+-1023|0;if((h|0)<=1023)break;h=n+-2046|0;h=(h|0)>1023?1023:h;g=g*8988465674311579538646525.0e283}else{if((h|0)>=-261887){h=n;break}g=g*2.2250738585072014e-308;h=n+1022|0;if((h|0)>=-1022)break;h=n+2044|0;h=(h|0)<-1022?-1022:h;g=g*2.2250738585072014e-308}while(0);sa=sf(h+1023|0,0,52)|0;ta=L;k[t>>2]=sa;k[t+4>>2]=ta;g=g*+p[t>>3]}s=g/1.0e4/(+o[Z>>2]*.75+.25)}else s=.009999999776482582;pa=a+4584|0;I=a+4636|0;F=k[I>>2]|0;E=F+(k[pa>>2]|0)|0;H=a+4763|0;i[H>>0]=4;g=+Ee(wa,ya,s,E,k[qa>>2]|0,F);F=a+4628|0;k:do if(k[F>>2]|0){if(k[q>>2]|0)break;if((k[qa>>2]|0)!=4)break;D=E<<1;s=g-+Ee(va,ya+(D<<2)|0,s,E,2,k[I>>2]|0);n=k[I>>2]|0;if((n|0)>0){q=0;do{g=+o[va+(q<<2)>>2]*65536.0;h=(o[t>>2]=g,k[t>>2]|0);do if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(!(g==0.0))break;g=h?-0.0:0.0}while(0);k[Ba+(q<<2)>>2]=~~g;q=q+1|0}while((q|0)!=(n|0))}ve(u,Ba,n);B=k[I>>2]|0;C=3;g=s;y=3402823466385288598117041.0e14;while(1){if((B|0)>0){h=C<<16>>16;n=0;do{ta=j[a+4496+(n<<1)>>1]|0;ta=((ha((m[u+(n<<1)>>1]|0)-ta<<16>>16,h)|0)>>>2)+ta&65535;j[za+(n<<1)>>1]=ta;n=n+1|0}while((n|0)!=(B|0));Ae(Aa,za,B);h=0;do{o[va+(h<<2)>>2]=+(j[Aa+(h<<1)>>1]|0)*.000244140625;h=h+1|0}while((h|0)!=(B|0))}else Ae(Aa,za,B);Yd(ua,va,ya,D,k[I>>2]|0);B=k[I>>2]|0;n=ua+(B<<2)|0;A=E-B|0;v=A+-3|0;q=(A|0)>3;if(q){h=0;s=0.0;do{Q=+o[n+(h<<2)>>2];R=+o[n+((h|1)<<2)>>2];T=+o[n+((h|2)<<2)>>2];Ya=+o[n+((h|3)<<2)>>2];s=s+(Q*Q+R*R+T*T+Ya*Ya);h=h+4|0}while((h|0)<(v|0));h=A&-4}else{h=0;s=0.0}if((h|0)<(A|0)){do{Ya=+o[n+(h<<2)>>2];s=s+Ya*Ya;h=h+1|0}while((h|0)!=(A|0));x=s}else x=s;n=n+(E<<2)|0;if(q){h=0;w=0.0;do{Q=+o[n+(h<<2)>>2];R=+o[n+((h|1)<<2)>>2];T=+o[n+((h|2)<<2)>>2];Ya=+o[n+((h|3)<<2)>>2];w=w+(Q*Q+R*R+T*T+Ya*Ya);h=h+4|0}while((h|0)<(v|0));h=A&-4}else{h=0;w=0.0}if((h|0)<(A|0))do{Ya=+o[n+(h<<2)>>2];w=w+Ya*Ya;h=h+1|0}while((h|0)!=(A|0));s=y;y=x+w;if(!(y<g)){if(y>s)break k}else{i[H>>0]=C;g=y}if((C|0)<=0)break;else C=C+-1|0}}while(0);if((i[H>>0]|0)==4){n=k[I>>2]|0;if((n|0)>0){q=0;do{g=+o[wa+(q<<2)>>2]*65536.0;h=(o[t>>2]=g,k[t>>2]|0);do if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(!(g==0.0))break;g=h?-0.0:0.0}while(0);k[Ba+(q<<2)>>2]=~~g;q=q+1|0}while((q|0)!=(n|0))}ve(u,Ba,n)}G=a+4496|0;v=k[U>>2]<<16>>16;v=(ha(v,-5)|0)+3146+(v*59246>>16)|0;v=((k[qa>>2]|0)==2?v>>1:0)+v|0;Ce(za,u,k[I>>2]|0);do if((k[F>>2]|0)==1){h=i[H>>0]|0;if(h<<24>>24>=4){n=0;break}q=k[I>>2]|0;if((q|0)>0){h=h<<24>>24;n=0;do{wa=j[a+4496+(n<<1)>>1]|0;wa=((ha((m[u+(n<<1)>>1]|0)-wa<<16>>16,h)|0)>>>2)+wa&65535;j[Aa+(n<<1)>>1]=wa;n=n+1|0}while((n|0)!=(q|0))}Ce(Ba,Aa,q);h=i[H>>0]|0;q=k[I>>2]|0;if((q|0)<=0){n=1;break}h=(ha(h<<27,h)|0)>>16;n=0;do{wa=za+(n<<1)|0;va=((ha(j[Ba+(n<<1)>>1]|0,h)|0)>>>16)+((j[wa>>1]|0)>>>1)&65535;j[wa>>1]=va;n=n+1|0}while((n|0)!=(q|0));n=1}else n=0;while(0);He(a+4740|0,u,k[a+4688>>2]|0,za,v,k[a+4656>>2]|0,i[Ca>>0]|0);h=xa+32|0;Ae(h,u,k[I>>2]|0);if(n){q=k[I>>2]|0;if((q|0)>0){h=i[H>>0]|0;n=0;do{wa=j[a+4496+(n<<1)>>1]|0;wa=((ha((m[u+(n<<1)>>1]|0)-wa<<16>>16,h)|0)>>>2)+wa&65535;j[Aa+(n<<1)>>1]=wa;n=n+1|0}while((n|0)!=(q|0))}Ae(xa,Aa,q);B=k[I>>2]|0}else{B=k[I>>2]|0;wf(xa|0,h|0,B<<1|0)|0}if((B|0)>0){h=0;do{o[Ra+16+(h<<2)>>2]=+(j[xa+(h<<1)>>1]|0)*.000244140625;h=h+1|0}while((h|0)!=(B|0));h=0;do{o[Ra+80+(h<<2)>>2]=+(j[xa+32+(h<<1)>>1]|0)*.000244140625;h=h+1|0}while((h|0)!=(B|0))}n=Ra+712|0;F=k[pa>>2]|0;v=k[qa>>2]|0;C=Ba+(B<<2)|0;q=B+F|0;A=q<<1;Yd(Ba,Ra+16|0,ya,A,B);s=+o[Ra>>2];s=s*s;E=F+-3|0;D=(F|0)>3;if(D){h=0;g=0.0;do{Q=+o[C+(h<<2)>>2];R=+o[C+((h|1)<<2)>>2];T=+o[C+((h|2)<<2)>>2];Ya=+o[C+((h|3)<<2)>>2];g=g+(Q*Q+R*R+T*T+Ya*Ya);h=h+4|0}while((h|0)<(E|0));h=F&-4}else{h=0;g=0.0}if((h|0)<(F|0))do{Ya=+o[C+(h<<2)>>2];g=g+Ya*Ya;h=h+1|0}while((h|0)!=(F|0));o[n>>2]=s*g;s=+o[Ra+4>>2];s=s*s;n=C+(q<<2)|0;if(D){h=0;g=0.0;do{Q=+o[n+(h<<2)>>2];R=+o[n+((h|1)<<2)>>2];T=+o[n+((h|2)<<2)>>2];Ya=+o[n+((h|3)<<2)>>2];g=g+(Q*Q+R*R+T*T+Ya*Ya);h=h+4|0}while((h|0)<(E|0));h=F&-4}else{h=0;g=0.0}if((h|0)<(F|0))do{Ya=+o[n+(h<<2)>>2];g=g+Ya*Ya;h=h+1|0}while((h|0)!=(F|0));o[Ra+716>>2]=s*g;if((v|0)==4){Yd(Ba,Ra+80|0,ya+(A<<2)|0,A,B);s=+o[Ra+8>>2];s=s*s;if(D){h=0;g=0.0;do{Q=+o[C+(h<<2)>>2];R=+o[C+((h|1)<<2)>>2];T=+o[C+((h|2)<<2)>>2];Ya=+o[C+((h|3)<<2)>>2];g=g+(Q*Q+R*R+T*T+Ya*Ya);h=h+4|0}while((h|0)<(E|0));h=F&-4}else{h=0;g=0.0}if((h|0)<(F|0))do{Ya=+o[C+(h<<2)>>2];g=g+Ya*Ya;h=h+1|0}while((h|0)!=(F|0));o[Ra+720>>2]=s*g;s=+o[Ra+12>>2];s=s*s;if(D){h=0;g=0.0;do{Q=+o[n+(h<<2)>>2];R=+o[n+((h|1)<<2)>>2];T=+o[n+((h|2)<<2)>>2];Ya=+o[n+((h|3)<<2)>>2];g=g+(Q*Q+R*R+T*T+Ya*Ya);h=h+4|0}while((h|0)<(E|0));h=F&-4}else{h=0;g=0.0}if((h|0)<(F|0))do{Ya=+o[n+(h<<2)>>2];g=g+Ya*Ya;h=h+1|0}while((h|0)!=(F|0));o[Ra+724>>2]=s*g}q=G;n=q+32|0;do{j[q>>1]=j[u>>1]|0;q=q+2|0;u=u+2|0}while((q|0)<(n|0));do if((i[Ca>>0]|0)==2){g=1.0-1.0/(+ea(+-((+o[Ra+708>>2]+-12.0)*.25))+1.0)*.5;h=k[qa>>2]|0;if((h|0)>0)n=0;else break;do{ya=Ra+(n<<2)|0;o[ya>>2]=g*+o[ya>>2];n=n+1|0}while((n|0)!=(h|0))}while(0);g=(21.0-+(k[V>>2]|0)*.0078125)*.33000001311302185;s=g;p[t>>3]=s;h=k[t+4>>2]|0;n=h&2147483647;do if(n>>>0>1083174911){h=(h|0)>-1|(h|0)==-1&(k[t>>2]|0)>>>0>4294967295;if(h&n>>>0>1083179007){g=s*8988465674311579538646525.0e283;break}if(n>>>0<=2146435071)if(!(g<=-1075.0)|h){Da=531;break}else{g=0.0;break}else{g=-1.0/s;break}}else{if(n>>>0>=1016070144){Da=531;break}g=s+1.0}while(0);if((Da|0)==531){g=s+26388279066624.0;p[t>>3]=g;ya=(k[t>>2]|0)+128|0;h=ya&-256;n=(h|0)/256|0;ya=ya<<1&510;Ya=+p[232+(ya<<3)>>3];g=s-(g+-26388279066624.0)-+p[232+((ya|1)<<3)>>3];g=Ya+Ya*g*(g*(g*(g*(g*1.3333559164630223e-03+.009618129842126066)+.0555041086648214)+.2402265069591)+.6931471805599453);do if((h|0)>262143){g=g*8988465674311579538646525.0e283;h=n+-1023|0;if((h|0)<=1023)break;h=n+-2046|0;h=(h|0)>1023?1023:h;g=g*8988465674311579538646525.0e283}else{if((h|0)>=-261887){h=n;break}g=g*2.2250738585072014e-308;h=n+1022|0;if((h|0)>=-1022)break;h=n+2044|0;h=(h|0)<-1022?-1022:h;g=g*2.2250738585072014e-308}while(0);xa=sf(h+1023|0,0,52)|0;ya=L;k[t>>2]=xa;k[t+4>>2]=ya;g=g*+p[t>>3]}g=g/+(k[pa>>2]|0);n=k[qa>>2]|0;if((n|0)>0){h=0;do{ya=Ra+(h<<2)|0;Ya=+o[ya>>2];Ya=+X(+(Ya*Ya+g*+o[Ra+712+(h<<2)>>2]));o[ya>>2]=Ya<32767.0?Ya:32767.0;h=h+1|0}while((h|0)!=(n|0));h=0;do{k[Ba+(h<<2)>>2]=~~(+o[Ra+(h<<2)>>2]*65536.0);h=h+1|0}while((h|0)!=(n|0))}wf(Ra+728|0,Ba|0,n<<2|0)|0;la=a+7164|0;ma=Ra+744|0;i[ma>>0]=i[la>>0]|0;u=a+4732|0;na=(d|0)==2;oa=na&1;le(u,Ba,la,oa,n);n=k[qa>>2]|0;if((n|0)>0){h=0;do{o[Ra+(h<<2)>>2]=+(k[Ba+(h<<2)>>2]|0)*.0000152587890625;h=h+1|0}while((h|0)!=(n|0))}q=i[Ca>>0]|0;do if(q<<24>>24==2){h=a+4762|0;if(+o[Ra+708>>2]+ +(k[a+4708>>2]|0)*.000030517578125>1.0){i[h>>0]=0;h=0;break}else{i[h>>0]=1;h=1;break}}else h=i[a+4762>>0]|0;while(0);ya=k[U>>2]|0;ka=Ra+692|0;o[ka>>2]=+(j[29368+(q<<24>>24>>1<<2)+(h<<24>>24<<1)>>1]|0)*.0009765625*.800000011920929+(1.2000000476837158-+(k[a+4624>>2]|0)*.05000000074505806+ +(ya|0)*-.20000000298023224*.00390625-+o[Y>>2]*.10000000149011612-+o[Z>>2]*.20000000298023224);ia=a+5744|0;h=k[ia>>2]|0;v=a+6096+(h*36|0)|0;if((k[a+6088>>2]|0)!=0&(ya|0)>77){k[a+4720+(h<<2)>>2]=1;wf(za|0,a+144|0,4352)|0;q=v;n=q+36|0;do{j[q>>1]=j[u>>1]|0;q=q+2|0;u=u+2|0}while((q|0)<(n|0));q=k[qa>>2]|0;wf(Aa|0,Ra|0,q<<2|0)|0;h=k[ia>>2]|0;do if(!h)Da=552;else{if(!(k[a+4720+(h+-1<<2)>>2]|0)){Da=552;break}n=a+4536|0;h=q}while(0);if((Da|0)==552){n=a+4536|0;i[n>>0]=i[la>>0]|0;h=(l[v>>0]|0)+(k[a+6092>>2]|0)<<24>>24;i[v>>0]=(h|0)<63?h:63;h=k[qa>>2]|0}me(Ba,v,n,oa,h);h=k[qa>>2]|0;if((h|0)>0){n=0;do{o[Ra+(n<<2)>>2]=+(k[Ba+(n<<2)>>2]|0)*.0000152587890625;n=n+1|0}while((n|0)!=(h|0))}Zd(a,Ra,v,za,a+6204+((k[ia>>2]|0)*320|0)|0,Ga);n=k[qa>>2]|0;wf(Ra|0,Aa|0,n<<2|0)|0}if((n|0)>0){h=0;q=0;do{h=(i[a+4732+q>>0]|0)+(h<<8)|0;q=q+1|0}while((q|0)!=(n|0))}else h=0;q=Ua;u=c;n=q+48|0;do{k[q>>2]=k[u>>2];q=q+4|0;u=u+4|0}while((q|0)<(n|0));U=a+144|0;wf(Sa|0,U|0,4352)|0;V=i[Ja>>0]|0;Y=a+5768|0;Z=j[Y>>1]|0;_=a+5764|0;$=k[_>>2]|0;aa=a+4762|0;ba=e+-5|0;ca=c+24|0;da=c+28|0;fa=a+4768|0;ga=c+20|0;J=0;D=0;G=0;P=256;O=0;H=0;M=-1;B=-1;S=0;N=0;C=0;v=0;while(1){A=(h|0)==(M|0);do if(!A){if((h|0)==(B|0)){n=C;break}if((S|0)>0){q=c;u=Ua;n=q+48|0;do{k[q>>2]=k[u>>2];q=q+4|0;u=u+4|0}while((q|0)<(n|0));wf(U|0,Sa|0,4352)|0;i[Ja>>0]=V;j[Y>>1]=Z;k[_>>2]=$}Zd(a,Ra,Ia,U,fa,Ga);q=(S|0)!=6;u=(D|0)!=0;if(!(u|q)){k[Va>>2]=k[c>>2];k[Va+4>>2]=k[c+4>>2];k[Va+8>>2]=k[c+8>>2];k[Va+12>>2]=k[c+12>>2];k[Va+16>>2]=k[c+16>>2];k[Va+20>>2]=k[c+20>>2];v=k[ca>>2]|0;k[Wa>>2]=k[da>>2];k[Wa+4>>2]=k[da+4>>2];k[Wa+8>>2]=k[da+8>>2];k[Wa+12>>2]=k[da+12>>2];k[Wa+16>>2]=k[da+16>>2]}Kd(a,c,k[ia>>2]|0,0,d);Ld(c,i[Ca>>0]|0,i[aa>>0]|0,fa,k[Ha>>2]|0);n=(k[ga>>2]|0)+-32+(ja(k[da>>2]|0)|0)|0;if((n|0)>(e|0)&((u|q)^1)){k[c>>2]=k[Va>>2];k[c+4>>2]=k[Va+4>>2];k[c+8>>2]=k[Va+8>>2];k[c+12>>2]=k[Va+12>>2];k[c+16>>2]=k[Va+16>>2];k[c+20>>2]=k[Va+20>>2];k[ca>>2]=v;k[da>>2]=k[Wa>>2];k[da+4>>2]=k[Wa+4>>2];k[da+8>>2]=k[Wa+8>>2];k[da+12>>2]=k[Wa+12>>2];k[da+16>>2]=k[Wa+16>>2];n=i[ma>>0]|0;i[la>>0]=n;if((k[qa>>2]|0)>0){q=0;do{i[a+4732+q>>0]=4;q=q+1|0}while((q|0)<(k[qa>>2]|0))}if(!na)i[Ia>>0]=n;j[Y>>1]=Z;k[_>>2]=$;if((k[Ha>>2]|0)>0){n=0;do{i[a+4768+n>>0]=0;n=n+1|0}while((n|0)<(k[Ha>>2]|0))}Kd(a,c,k[ia>>2]|0,0,d);Ld(c,i[Ca>>0]|0,i[aa>>0]|0,fa,k[Ha>>2]|0);n=(k[ga>>2]|0)+-32+(ja(k[da>>2]|0)|0)|0}if(!((S|f|0)!=0|(n|0)>(e|0)))break a}else n=N;while(0);if((S|0)==6)break;K=(n|0)>(e|0);l:do if(K){q=(D|0)==0;if(q&(S|0)>1){Ya=+o[ka>>2]*1.5;o[ka>>2]=Ya>1.5?Ya:1.5;i[aa>>0]=0;G=0;h=-1;I=C}else{G=1;H=P<<16>>16;I=n}if(!q){F=O;E=M;B=h;A=N;C=I;break}E=k[qa>>2]|0;if((E|0)<=0){D=0;F=O;E=M;B=h;A=N;C=I;break}F=k[pa>>2]|0;if(!S){A=0;C=F;while(1){q=ha(F,A)|0;B=A;A=A+1|0;if((q|0)<(ha(F,A)|0)){u=0;do{Aa=i[a+4768+q>>0]|0;Ba=Aa<<24>>24;u=(Aa<<24>>24>-1?Ba:0-Ba|0)+u|0;q=q+1|0}while((q|0)!=(C|0));q=u}else q=0;k[Na+(B<<2)>>2]=q;j[Ma+(B<<1)>>1]=P;if((A|0)==(E|0)){D=0;F=O;E=M;B=h;A=N;C=I;break l}else C=C+F|0}}else{B=0;D=F}while(1){q=ha(F,B)|0;C=B;B=B+1|0;if((q|0)<(ha(F,B)|0)){u=0;do{Aa=i[a+4768+q>>0]|0;Ba=Aa<<24>>24;u=(Aa<<24>>24>-1?Ba:0-Ba|0)+u|0;q=q+1|0}while((q|0)!=(D|0))}else u=0;q=Na+(C<<2)|0;A=Pa+(C<<2)|0;do if((u|0)<(k[q>>2]|0)){if(k[A>>2]|0){Da=596;break}k[q>>2]=u;j[Ma+(C<<1)>>1]=P}else Da=596;while(0);if((Da|0)==596){Da=0;k[A>>2]=1}if((B|0)==(E|0)){D=0;F=O;E=M;B=h;A=N;C=I;break}else D=D+F|0}}else{if((n|0)>=(ba|0))break a;q=P<<16>>16;if(A){D=1;F=q;E=h;A=n;break};k[Va>>2]=k[c>>2];k[Va+4>>2]=k[c+4>>2];k[Va+8>>2]=k[c+8>>2];k[Va+12>>2]=k[c+12>>2];k[Va+16>>2]=k[c+16>>2];k[Va+20>>2]=k[c+20>>2];v=k[ca>>2]|0;k[Wa>>2]=k[da>>2];k[Wa+4>>2]=k[da+4>>2];k[Wa+8>>2]=k[da+8>>2];k[Wa+12>>2]=k[da+12>>2];k[Wa+16>>2]=k[da+16>>2];wf(Oa|0,k[c>>2]|0,v|0)|0;wf(Ta|0,U|0,4352)|0;J=i[la>>0]|0;D=1;F=q;E=h;A=n}while(0);do if(D&G){q=H-F|0;h=((ha(e-A|0,q)|0)/(C-A|0)|0)+F|0;n=h<<16>>16;q=q>>2;u=q+F|0;if((n|0)>(u|0)){u=u&65535;break}else{u=H-q|0;u=((n|0)<(u|0)?u:h)&65535;break}}else{if(K){if(P<<16>>16>=16384){u=32767;break}u=P<<16>>16<<1&65535;break}n=(n-e<<7|0)/(k[Ha>>2]|0)|0;h=n+2048|0;do if((n|0)<-2048)h=0;else{if((h|0)>3966){h=2147483647;break}q=h>>7;u=1<<q;h=h&127;if((n|0)<0)h=((ha(ha(h,-174)|0,128-h|0)|0)>>16)+h<<q>>7;else h=ha(((ha(ha(h,-174)|0,128-h|0)|0)>>16)+h|0,u>>7)|0;h=h+u|0}while(0);u=P<<16>>16;u=((ha(h&65535,u)|0)>>>16)+(ha(h>>16,u)|0)&65535}while(0);h=k[qa>>2]|0;if((h|0)>0){n=0;do{if(!(k[Pa+(n<<2)>>2]|0))q=u;else q=j[Ma+(n<<1)>>1]|0;Aa=k[Ra+728+(n<<2)>>2]|0;Ba=q<<16>>16;Ba=((ha(Aa&65535,Ba)|0)>>16)+(ha(Aa>>16,Ba)|0)|0;k[Qa+(n<<2)>>2]=(Ba|0)>8388607?2147483392:((Ba|0)<-8388608?-8388608:Ba)<<8;n=n+1|0}while((n|0)!=(h|0))}i[la>>0]=i[ma>>0]|0;le(Ia,Qa,la,oa,h);q=k[qa>>2]|0;if((q|0)>0){h=0;n=0;do{h=(i[a+4732+n>>0]|0)+(h<<8)|0;n=n+1|0}while((n|0)!=(q|0));n=0;do{o[Ra+(n<<2)>>2]=+(k[Qa+(n<<2)>>2]|0)*.0000152587890625;n=n+1|0}while((n|0)!=(q|0))}else h=0;P=u;O=F;M=E;S=S+1|0;N=A}if(!((D|0)!=0&(A|(n|0)>(e|0))))break;k[c>>2]=k[Va>>2];k[c+4>>2]=k[Va+4>>2];k[c+8>>2]=k[Va+8>>2];k[c+12>>2]=k[Va+12>>2];k[c+16>>2]=k[Va+16>>2];k[c+20>>2]=k[Va+20>>2];k[ca>>2]=v;k[da>>2]=k[Wa>>2];k[da+4>>2]=k[Wa+4>>2];k[da+8>>2]=k[Wa+8>>2];k[da+12>>2]=k[Wa+12>>2];k[da+16>>2]=k[Wa+16>>2];wf(k[c>>2]|0,Oa|0,v|0)|0;wf(U|0,Ta|0,4352)|0;i[la>>0]=J}while(0);xf(Ka|0,a+7176+(k[Ha>>2]<<2)|0,((k[Fa>>2]|0)*5|0)+(k[La>>2]|0)<<2|0)|0;if(k[Ea>>2]|0){f=0;k[b>>2]=f;r=Xa;return}k[a+4540>>2]=k[Ra+228+((k[a+4576>>2]|0)+-1<<2)>>2];i[a+4537>>0]=i[a+4761>>0]|0;k[a+4660>>2]=0;f=(k[c+20>>2]|0)+-25+(ja(k[c+28>>2]|0)|0)>>3;k[b>>2]=f;r=Xa;return}function Yd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;switch(e|0){case 6:{if((d|0)<=6){c=e<<2;rf(a|0,0,c|0)|0;return}f=b+4|0;g=b+8|0;h=b+12|0;i=b+16|0;j=b+20|0;k=6;do{v=c+(k+-1<<2)|0;o[a+(k<<2)>>2]=+o[v+4>>2]-(+o[v>>2]*+o[b>>2]+ +o[v+-4>>2]*+o[f>>2]+ +o[v+-8>>2]*+o[g>>2]+ +o[v+-12>>2]*+o[h>>2]+ +o[v+-16>>2]*+o[i>>2]+ +o[v+-20>>2]*+o[j>>2]);k=k+1|0}while((k|0)!=(d|0));c=e<<2;rf(a|0,0,c|0)|0;return}case 8:{if((d|0)<=8){c=e<<2;rf(a|0,0,c|0)|0;return}f=b+4|0;g=b+8|0;h=b+12|0;i=b+16|0;j=b+20|0;k=b+24|0;l=b+28|0;m=8;do{v=c+(m+-1<<2)|0;o[a+(m<<2)>>2]=+o[v+4>>2]-(+o[v>>2]*+o[b>>2]+ +o[v+-4>>2]*+o[f>>2]+ +o[v+-8>>2]*+o[g>>2]+ +o[v+-12>>2]*+o[h>>2]+ +o[v+-16>>2]*+o[i>>2]+ +o[v+-20>>2]*+o[j>>2]+ +o[v+-24>>2]*+o[k>>2]+ +o[v+-28>>2]*+o[l>>2]);m=m+1|0}while((m|0)!=(d|0));c=e<<2;rf(a|0,0,c|0)|0;return}case 10:{if((d|0)<=10){c=e<<2;rf(a|0,0,c|0)|0;return}j=b+4|0;k=b+8|0;l=b+12|0;m=b+16|0;n=b+20|0;f=b+24|0;g=b+28|0;h=b+32|0;i=b+36|0;p=10;do{v=c+(p+-1<<2)|0;o[a+(p<<2)>>2]=+o[v+4>>2]-(+o[v>>2]*+o[b>>2]+ +o[v+-4>>2]*+o[j>>2]+ +o[v+-8>>2]*+o[k>>2]+ +o[v+-12>>2]*+o[l>>2]+ +o[v+-16>>2]*+o[m>>2]+ +o[v+-20>>2]*+o[n>>2]+ +o[v+-24>>2]*+o[f>>2]+ +o[v+-28>>2]*+o[g>>2]+ +o[v+-32>>2]*+o[h>>2]+ +o[v+-36>>2]*+o[i>>2]);p=p+1|0}while((p|0)!=(d|0));c=e<<2;rf(a|0,0,c|0)|0;return}case 12:{if((d|0)<=12){c=e<<2;rf(a|0,0,c|0)|0;return}f=b+4|0;g=b+8|0;h=b+12|0;i=b+16|0;j=b+20|0;k=b+24|0;l=b+28|0;m=b+32|0;n=b+36|0;p=b+40|0;q=b+44|0;r=12;do{v=c+(r+-1<<2)|0;o[a+(r<<2)>>2]=+o[v+4>>2]-(+o[v>>2]*+o[b>>2]+ +o[v+-4>>2]*+o[f>>2]+ +o[v+-8>>2]*+o[g>>2]+ +o[v+-12>>2]*+o[h>>2]+ +o[v+-16>>2]*+o[i>>2]+ +o[v+-20>>2]*+o[j>>2]+ +o[v+-24>>2]*+o[k>>2]+ +o[v+-28>>2]*+o[l>>2]+ +o[v+-32>>2]*+o[m>>2]+ +o[v+-36>>2]*+o[n>>2]+ +o[v+-40>>2]*+o[p>>2]+ +o[v+-44>>2]*+o[q>>2]);r=r+1|0}while((r|0)!=(d|0));c=e<<2;rf(a|0,0,c|0)|0;return}case 16:{if((d|0)<=16){c=e<<2;rf(a|0,0,c|0)|0;return}f=b+4|0;g=b+8|0;h=b+12|0;i=b+16|0;j=b+20|0;k=b+24|0;l=b+28|0;m=b+32|0;n=b+36|0;p=b+40|0;q=b+44|0;r=b+48|0;s=b+52|0;t=b+56|0;u=b+60|0;v=16;do{w=c+(v+-1<<2)|0;o[a+(v<<2)>>2]=+o[w+4>>2]-(+o[w>>2]*+o[b>>2]+ +o[w+-4>>2]*+o[f>>2]+ +o[w+-8>>2]*+o[g>>2]+ +o[w+-12>>2]*+o[h>>2]+ +o[w+-16>>2]*+o[i>>2]+ +o[w+-20>>2]*+o[j>>2]+ +o[w+-24>>2]*+o[k>>2]+ +o[w+-28>>2]*+o[l>>2]+ +o[w+-32>>2]*+o[m>>2]+ +o[w+-36>>2]*+o[n>>2]+ +o[w+-40>>2]*+o[p>>2]+ +o[w+-44>>2]*+o[q>>2]+ +o[w+-48>>2]*+o[r>>2]+ +o[w+-52>>2]*+o[s>>2]+ +o[w+-56>>2]*+o[t>>2]+ +o[w+-60>>2]*+o[u>>2]);v=v+1|0}while((v|0)!=(d|0));w=e<<2;rf(a|0,0,w|0)|0;return}default:{w=e<<2;rf(a|0,0,w|0)|0;return}}}function Zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,l=0,m=0,n=0,p=0,q=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=r;r=r+1008|0;C=D+360|0;w=D+48|0;A=D+296|0;z=D+256|0;v=D+64|0;y=D+32|0;B=D+16|0;x=D;u=k[a+4576>>2]|0;s=(u|0)>0;if(s){l=k[a+4632>>2]|0;if((l|0)>0){p=0;do{n=p*24|0;q=0;do{m=q+n|0;g=+o[b+244+(m<<2)>>2]*8192.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}j[v+(m<<1)>>1]=~~g;q=q+1|0}while((q|0)!=(l|0));p=p+1|0}while((p|0)!=(u|0));m=0}else m=0;do{g=+o[b+644+(m<<2)>>2]*16384.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}l=~~g<<16;g=+o[b+628+(m<<2)>>2]*16384.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}k[y+(m<<2)>>2]=~~g&65535|l;g=+o[b+660+(m<<2)>>2]*16384.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}k[B+(m<<2)>>2]=~~g;g=+o[b+676+(m<<2)>>2]*16384.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}k[x+(m<<2)>>2]=~~g;m=m+1|0}while((m|0)<(u|0))}g=+o[b+692>>2]*1024.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}p=~~g;if(s){l=u*5|0;m=0;do{g=+o[b+144+(m<<2)>>2]*16384.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}j[z+(m<<1)>>1]=~~g;m=m+1|0}while((m|0)<(l|0))}m=k[a+4636>>2]|0;if((m|0)>0){l=0;do{g=+o[b+16+(l<<2)>>2]*4096.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}j[A+(l<<1)>>1]=~~g;l=l+1|0}while((l|0)!=(m|0));l=0;do{g=+o[b+80+(l<<2)>>2]*4096.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}j[A+32+(l<<1)>>1]=~~g;l=l+1|0}while((l|0)!=(m|0))}if(s){l=0;do{g=+o[b+(l<<2)>>2]*65536.0;h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}k[w+(l<<2)>>2]=~~g;l=l+1|0}while((l|0)!=(u|0))}if((i[c+29>>0]|0)==2)m=j[29376+(i[c+33>>0]<<1)>>1]|0;else m=0;l=k[a+4580>>2]|0;if((l|0)>0){n=0;do{g=+o[f+(n<<2)>>2];h=(o[t>>2]=g,k[t>>2]|0);if((h&2130706432)>>>0<=1249902592){h=(h|0)<0;g=h?g+-8388608.0+8388608.0:g+8388608.0+-8388608.0;if(g==0.0)g=h?-0.0:0.0}j[C+(n<<1)>>1]=~~g;n=n+1|0}while((n|0)!=(l|0))}if((k[a+4624>>2]|0)<=1?(k[a+4668>>2]|0)<=0:0){oe(a,d,c,C,e,A,z,v,x,B,y,w,b+228|0,p,m);r=D;return}pe(a,d,c,C,e,A,z,v,x,B,y,w,b+228|0,p,m);r=D;return}function _d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=(d|0)>(c|0)?c:d;if((j|0)>0)i=0;else return;do{g=b+(i<<2)|0;h=c-i|0;d=h+-3|0;if((h|0)>3){f=0;e=0.0;do{m=f|1;l=f|2;k=f|3;e=e+(+o[b+(f<<2)>>2]*+o[g+(f<<2)>>2]+ +o[b+(m<<2)>>2]*+o[g+(m<<2)>>2]+ +o[b+(l<<2)>>2]*+o[g+(l<<2)>>2]+ +o[b+(k<<2)>>2]*+o[g+(k<<2)>>2]);f=f+4|0}while((f|0)<(d|0));d=h&-4}else{d=0;e=0.0}if((d|0)<(h|0))do{e=e+ +o[b+(d<<2)>>2]*+o[g+(d<<2)>>2];d=d+1|0}while((d|0)!=(h|0));o[a+(i<<2)>>2]=e;i=i+1|0}while((i|0)<(j|0));return}function $d(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if((b|0)<0|(e|0)==0){e=-1;return e|0}if(!b){e=-4;return e|0}x=i[a>>0]|0;m=x&255;do if(!(m&128)){if((m&96|0)==96){o=(m&8|0)==0?480:960;break}h=m>>>3&3;if((h|0)==3)o=2880;else o=(48e3<<h>>>0)/100|0}else o=(48e3<<(m>>>3&3)>>>0)/400|0;while(0);q=a+1|0;p=b+-1|0;a:do switch(m&3|0){case 0:{g=q;w=1;n=p;break}case 1:if(!(p&1)){n=(p|0)/2|0;j[e>>1]=n;g=q;w=2;break a}else{e=-4;return e|0}case 2:{if((b|0)<2){j[e>>1]=-1;e=-4;return e|0}g=i[q>>0]|0;h=g&255;do if((g&255)<252){n=1;g=g&255}else{if((b|0)>=3){n=2;g=(l[a+2>>0]<<2)+h&65535;break}j[e>>1]=-1;e=-4;return e|0}while(0);j[e>>1]=g;m=p-n|0;h=g<<16>>16;if((m|0)<(h|0)){e=-4;return e|0}else{g=q+n|0;w=2;n=m-h|0;break a}}default:{if((b|0)<2){e=-4;return e|0}h=a+2|0;p=l[q>>0]|0;v=p&63;if((v|0)==0|(ha(v,o)|0)>>>0>5760){e=-4;return e|0}m=b+-2|0;if(p&64){do{if((m|0)<1){u=-4;r=50;break}s=h;h=h+1|0;s=i[s>>0]|0;t=s<<24>>24==-1;m=m+-1-(t?254:s&255)|0}while(t);if((r|0)==50)return u|0;if((m|0)<0){e=-4;return e|0}else o=h}else o=h;if(!(p&128)){n=(m|0)/(v|0)|0;if((ha(n,v)|0)!=(m|0)){e=-4;return e|0}if(v>>>0<=1){g=o;w=v;break a}g=n&65535;h=v+-1|0;m=0;while(1){j[e+(m<<1)>>1]=g;m=m+1|0;if((m|0)==(h|0)){g=o;w=v;break a}}}t=v+-1|0;if(v>>>0>1){r=m;s=o;b=0;q=m;while(1){p=e+(b<<1)|0;if((r|0)<1){r=30;break}h=i[s>>0]|0;m=h&255;if((h&255)<252){o=1;h=h&255}else{if((r|0)<2){r=34;break}o=2;h=(l[s+1>>0]<<2)+m&65535}j[p>>1]=h;r=r-o|0;h=h<<16>>16;if((h|0)>(r|0)){u=-4;r=50;break}s=s+o|0;q=q-o-h|0;b=b+1|0;if((b|0)>=(t|0)){r=38;break}}if((r|0)==30){j[p>>1]=-1;e=-4;return e|0}else if((r|0)==34){j[p>>1]=-1;e=-4;return e|0}else if((r|0)==38){if((q|0)<0)u=-4;else{g=s;w=v;n=q;break a}return u|0}else if((r|0)==50)return u|0}else{g=o;w=v;n=m}}}while(0);if((n|0)>1275){e=-4;return e|0}j[e+(w+-1<<1)>>1]=n;if(f|0)k[f>>2]=g-a;if(!((w|0)==0|(d|0)==0)){m=0;while(1){k[d+(m<<2)>>2]=g;h=m+1|0;if((h|0)==(w|0))break;else{g=g+(j[e+(m<<1)>>1]|0)|0;m=h}}}if(!c){e=w;return e|0}i[c>>0]=x;e=w;return e|0}function ae(a,b,c,d,e,f,g,h,i,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;k=k|0;var l=0.0,m=0,n=0,p=0,q=0,r=0;q=ha(b,h)|0;b=ha(j[a+(g<<1)>>1]|0,h)|0;if((i|0)!=1){p=(q|0)/(i|0)|0;b=(b|0)<(p|0)?b:p}m=(k|0)==0;p=m?b:0;n=m?g:0;f=m?f:0;g=a+(f<<1)|0;b=j[g>>1]|0;m=ha(b<<16>>16,h)|0;c=c+(m<<2)|0;if((m|0)>0){b=d;k=0;while(1){i=b+4|0;o[b>>2]=0.0;k=k+1|0;b=j[g>>1]|0;if((k|0)>=(ha(b<<16>>16,h)|0))break;else b=i}}else i=d;if((f|0)<(n|0))k=f;else{d=d+(p<<2)|0;a=q-p|0;a=a<<2;rf(d|0,0,a|0)|0;return}while(1){b=ha(b<<16>>16,h)|0;m=k+1|0;g=a+(m<<1)|0;f=ha(j[g>>1]|0,h)|0;l=+o[e+(k<<2)>>2]+ +o[21184+(k<<2)>>2];l=+ea(+((l>32.0?32.0:l)*.6931471805599453));do{r=c;c=c+4|0;k=i;i=i+4|0;o[k>>2]=l*+o[r>>2];b=b+1|0}while((b|0)<(f|0));if((m|0)==(n|0))break;b=j[g>>1]|0;k=m}a=d+(p<<2)|0;r=q-p|0;r=r<<2;rf(a|0,0,r|0)|0;return}function be(a,b,c,d,e,f,g,h,m,n,p,q,s,t,u,v,w,x,y,z,A,B,C){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;m=m|0;n=n|0;p=p|0;q=q|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;A=A|0;B=B|0;C=C|0;var D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0,K=0.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,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0;Ta=r;r=r+1552|0;Na=Ta+208|0;Qa=Ta+24|0;Ra=Ta;Sa=Ta+160|0;Oa=Ta+100|0;Pa=Ta+40|0;Ma=Ta+268|0;Ha=b+32|0;Ia=k[Ha>>2]|0;Ka=(f|0)!=0;La=Ka?2:1;E=(a|0)!=0;Ea=E&Ka&(q|0)==0&(A|0)>7;Fa=Ea|E^1;xa=n|0?1<<x:1;ya=Ia+(c<<1)|0;za=j[ya>>1]<<x;Aa=b+8|0;A=k[Aa>>2]|0;n=j[Ia+(A+-1<<1)>>1]|0;D=n<<x;Ca=(ha(D-za|0,La)|0)<<2;Ba=r;r=r+((1*Ca|0)+15&-16)|0;Ca=0-za|0;Da=Ba+(D<<2)+(Ca<<2)|0;if(Ea){n=(j[Ia+(A<<1)>>1]|0)-n<<x;F=r;r=r+((1*(n<<2)|0)+15&-16)|0}else{F=e+(D<<2)|0;n=1}va=r;r=r+((1*(n<<2)|0)+15&-16)|0;wa=r;r=r+((1*(n<<2)|0)+15&-16)|0;k[Na+36>>2]=h;k[Na+28>>2]=w;k[Na>>2]=a;k[Na+16>>2]=s;k[Na+8>>2]=b;A=k[z>>2]|0;ua=Na+40|0;k[ua>>2]=A;k[Na+20>>2]=p;k[Na+44>>2]=B;k[Na+52>>2]=C;k[Na+4>>2]=Fa&1;sa=Na+48|0;k[sa>>2]=0;D=(xa|0)>1;ta=Na+56|0;k[ta>>2]=D&1;if((c|0)>=(d|0)){u=A;k[z>>2]=u;r=Ta;return}pa=r;r=r+((1*(n<<2)|0)+15&-16)|0;qa=r;r=r+((1*(n<<2)|0)+15&-16)|0;ra=r;r=r+((1*(n<<2)|0)+15&-16)|0;ia=Na+12|0;ka=d+-1|0;la=w+20|0;ma=w+28|0;na=Na+32|0;oa=Na+24|0;fa=b+12|0;ea=Ka?Ba:0;ga=(1<<xa)+-1|0;Z=E^Ea;_=w+4|0;$=w+8|0;aa=w+24|0;ba=c+1|0;ca=c+2|0;da=La+-1|0;Y=(p|0)!=3|D;X=c;a=0;n=1;while(1){k[ia>>2]=X;P=(X|0)==(ka|0);Q=Ia+(X<<1)|0;U=j[Q>>1]<<x;B=e+(U<<2)|0;D=Ka?f+(U<<2)|0:0;W=X;X=X+1|0;U=(j[Ia+(X<<1)>>1]<<x)-U|0;A=k[ma>>2]|0;S=32-(ja(A|0)|0)|0;A=A>>>(S+-16|0);V=A>>>12;V=((A>>>0>(k[9236+(V+-8<<2)>>2]|0)>>>0)<<31>>31)+((k[la>>2]|0)-S<<3)+(8-V)|0;S=v-((W|0)==(c|0)?0:V)|0;A=u-V|0;k[na>>2]=A+-1;if((W|0)<(y|0)?(Ja=y-W|0,Ja=(k[m+(W<<2)>>2]|0)+((S|0)/(((Ja|0)>3?3:Ja)|0)|0)|0,Ja=(A|0)<(Ja|0)?A:Ja,(Ja|0)>=0):0)T=(Ja|0)>16383?16383:Ja;else T=0;if(Fa?((j[Q>>1]<<x)-U|0)>=(j[ya>>1]<<x|0):0)a=(n|0)!=0|(a|0)==0?W:a;M=k[t+(W<<2)>>2]|0;k[oa>>2]=M;L=(W|0)<(k[fa>>2]|0);R=L?D:ea;O=L?B:Ba;F=(Ea|P^1)&L?F:0;if((a|0)!=0&(Y|(M|0)<0)){C=(j[Ia+(a<<1)>>1]<<x)-za-U|0;C=(C|0)<0?0:C;A=C+za|0;D=a;do D=D+-1|0;while((j[Ia+(D<<1)>>1]<<x|0)>(A|0));A=A+U|0;B=a+-1|0;while(1){n=B+1|0;if((j[Ia+(n<<1)>>1]<<x|0)<(A|0))B=n;else{A=0;n=0;break}}while(1){M=ha(D,La)|0;A=l[g+M>>0]|A;n=l[g+(da+M)>>0]|n;if((D|0)<(B|0))D=D+1|0;else{D=A;E=n;break}}}else{C=-1;D=ga;E=ga}A=(q|0)==0;n=(W|0)!=(s|0);if(Z|(n|A))if(A|n^1)Ga=26;else{b=(T|0)/2|0;n=(C|0)!=-1;A=n?Ba+(C<<2)|0:0;if(P){A=ce(Na,O,U,b,xa,A,x,0,1.0,F,D)|0;D=n?Da+(C<<2)|0:0;n=0}else{A=ce(Na,O,U,b,xa,A,x,Ba+(j[Q>>1]<<x<<2)+(Ca<<2)|0,1.0,F,D)|0;D=n?Da+(C<<2)|0:0;n=Da+(j[Q>>1]<<x<<2)+(Ca<<2)|0}B=A;A=ce(Na,R,U,b,xa,D,x,n,1.0,F,E)|0}else if((j[Q>>1]<<x|0)>(za|0)){A=0;do{Ga=Ba+(A<<2)|0;o[Ga>>2]=(+o[Ga>>2]+ +o[Da+(A<<2)>>2])*.5;A=A+1|0}while((A|0)<((j[Q>>1]<<x)-za|0));Ga=26}else Ga=26;do if((Ga|0)==26){Ga=0;if(!R){if(P)A=0;else A=Ba+(j[Q>>1]<<x<<2)+(Ca<<2)|0;A=ce(Na,O,U,T,xa,(C|0)==-1?0:Ba+(C<<2)|0,x,A,1.0,F,E|D)|0;q=0;B=A;break}if(!(Ea&(W|0)<(s|0))){k[sa>>2]=0;if(P)A=0;else A=Ba+(j[Q>>1]<<x<<2)+(Ca<<2)|0;A=he(Na,O,R,U,T,xa,(C|0)==-1?0:Ba+(C<<2)|0,x,A,F,E|D)|0;q=0;B=A;break}K=+o[h+(W<<2)>>2];I=+o[h+((k[Aa>>2]|0)+W<<2)>>2];N=(K<I?K:I)/3.0;K=K+N;N=I+N;J=E|D;b=k[w>>2]|0;E=k[_>>2]|0;k[Qa>>2]=k[$>>2];k[Qa+4>>2]=k[$+4>>2];k[Qa+8>>2]=k[$+8>>2];k[Qa+12>>2]=k[$+12>>2];p=k[aa>>2]|0;k[Ra>>2]=k[ma>>2];k[Ra+4>>2]=k[ma+4>>2];k[Ra+8>>2]=k[ma+8>>2];k[Ra+12>>2]=k[ma+12>>2];k[Ra+16>>2]=k[ma+16>>2];A=Oa;n=Na;D=A+60|0;do{k[A>>2]=k[n>>2];A=A+4|0;n=n+4|0}while((A|0)<(D|0));L=U<<2;wf(va|0,O|0,L|0)|0;wf(wa|0,R|0,L|0)|0;k[sa>>2]=-1;B=(C|0)!=-1?Ba+(C<<2)|0:0;if(P)A=0;else A=Ba+(j[Q>>1]<<x<<2)+(Ca<<2)|0;M=he(Na,O,R,U,T,xa,B,x,A,F,J)|0;C=(U|0)>0;if(C){A=0;H=0.0;do{H=H+ +o[va+(A<<2)>>2]*+o[O+(A<<2)>>2];A=A+1|0}while((A|0)!=(U|0));A=0;G=0.0;do{G=G+ +o[wa+(A<<2)>>2]*+o[R+(A<<2)>>2];A=A+1|0}while((A|0)!=(U|0));H=K*H}else{H=K*0.0;G=0.0}I=H+N*G;A=Sa;n=w;D=A+48|0;do{k[A>>2]=k[n>>2];A=A+4|0;n=n+4|0}while((A|0)<(D|0));A=Pa;n=Na;D=A+60|0;do{k[A>>2]=k[n>>2];A=A+4|0;n=n+4|0}while((A|0)<(D|0));wf(ra|0,O|0,L|0)|0;wf(qa|0,R|0,L|0)|0;if(!P)wf(pa|0,Ba+(j[Q>>1]<<x<<2)+(Ca<<2)|0,L|0)|0;v=b+p|0;q=E-p|0;wf(Ma|0,v|0,q|0)|0;k[w>>2]=b;k[_>>2]=E;k[$>>2]=k[Qa>>2];k[$+4>>2]=k[Qa+4>>2];k[$+8>>2]=k[Qa+8>>2];k[$+12>>2]=k[Qa+12>>2];k[aa>>2]=p;k[ma>>2]=k[Ra>>2];k[ma+4>>2]=k[Ra+4>>2];k[ma+8>>2]=k[Ra+8>>2];k[ma+12>>2]=k[Ra+12>>2];k[ma+16>>2]=k[Ra+16>>2];A=Na;n=Oa;D=A+60|0;do{k[A>>2]=k[n>>2];A=A+4|0;n=n+4|0}while((A|0)<(D|0));wf(O|0,va|0,L|0)|0;wf(R|0,wa|0,L|0)|0;if((W|0)==(ba|0)){b=k[Ha>>2]|0;E=j[b+(ba<<1)>>1]|0;p=E-(j[b+(c<<1)>>1]|0)<<x;E=(j[b+(ca<<1)>>1]|0)-E<<x;wf(Ba+(p<<2)|0,Ba+((p<<1)-E<<2)|0,E-p<<2|0)|0}k[sa>>2]=1;if(P)A=0;else A=Ba+(j[Q>>1]<<x<<2)+(Ca<<2)|0;n=he(Na,O,R,U,T,xa,B,x,A,F,J)|0;if(C){A=0;H=0.0;do{H=H+ +o[va+(A<<2)>>2]*+o[O+(A<<2)>>2];A=A+1|0}while((A|0)!=(U|0));A=0;G=0.0;do{G=G+ +o[wa+(A<<2)>>2]*+o[R+(A<<2)>>2];A=A+1|0}while((A|0)!=(U|0));H=K*H}else{H=K*0.0;G=0.0}if(!(I>=H+N*G)){q=0;B=n;A=n}else{A=w;n=Sa;D=A+48|0;do{k[A>>2]=k[n>>2];A=A+4|0;n=n+4|0}while((A|0)<(D|0));A=Na;n=Pa;D=A+60|0;do{k[A>>2]=k[n>>2];A=A+4|0;n=n+4|0}while((A|0)<(D|0));wf(O|0,ra|0,L|0)|0;wf(R|0,qa|0,L|0)|0;if(!P)wf(Ba+(j[Q>>1]<<x<<2)+(Ca<<2)|0,pa|0,L|0)|0;wf(v|0,Ma|0,q|0)|0;q=0;B=M;A=M}}while(0);v=ha(W,La)|0;i[g+v>>0]=B;i[g+(da+v)>>0]=A;v=S+V+(k[m+(W<<2)>>2]|0)|0;k[ta>>2]=0;if((X|0)==(d|0))break;else n=(T|0)>(U<<3|0)&1}u=k[ua>>2]|0;k[z>>2]=u;r=Ta;return}function ce(a,b,c,d,e,f,g,h,j,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=+j;m=m|0;n=n|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0.0,I=0;A=k[a>>2]|0;r=k[a+24>>2]|0;z=(e|0)==1&1;x=(c>>>0)/(e>>>0)|0;if((c|0)==1){x=k[a+28>>2]|0;d=a+32|0;z=a+4|0;y=x+12|0;g=x+16|0;if(!A){r=x+8|0;m=x+4|0;t=x+20|0;if((k[d>>2]|0)>7){n=k[y>>2]|0;f=k[g>>2]|0;if(!f){f=k[r>>2]|0;m=k[m>>2]|0;if(f>>>0<m>>>0){f=f+1|0;k[r>>2]=f;s=l[(k[x>>2]|0)+(m-f)>>0]|0}else s=0;if(f>>>0<m>>>0){f=f+1|0;k[r>>2]=f;q=(l[(k[x>>2]|0)+(m-f)>>0]|0)<<8}else q=0;if(f>>>0<m>>>0){f=f+1|0;k[r>>2]=f;p=(l[(k[x>>2]|0)+(m-f)>>0]|0)<<16}else p=0;if(f>>>0<m>>>0){c=f+1|0;k[r>>2]=c;m=(l[(k[x>>2]|0)+(m-c)>>0]|0)<<24}else m=0;f=32;n=m|(p|(q|(s|n)))}k[y>>2]=n>>>1;k[g>>2]=f+-1;k[t>>2]=(k[t>>2]|0)+1;k[d>>2]=(k[d>>2]|0)+-8;n=n&1}else n=0;if(k[z>>2]|0)o[b>>2]=n|0?-1.0:1.0}else{r=x+24|0;s=x+8|0;t=x+4|0;u=x+44|0;e=x+20|0;if((k[d>>2]|0)>7){n=+o[b>>2]<0.0&1;f=k[y>>2]|0;m=k[g>>2]|0;if((m+1|0)>>>0>32){v=7-m|0;v=(v|0)>-8?v:-8;w=m;do{p=k[s>>2]|0;q=k[t>>2]|0;if((p+(k[r>>2]|0)|0)>>>0<q>>>0){p=p+1|0;k[s>>2]=p;i[(k[x>>2]|0)+(q-p)>>0]=f;p=0}else p=-1;k[u>>2]=k[u>>2]|p;f=f>>>8;w=w+-8|0}while((w|0)>7);m=m+-8-(v+m&-8)|0}k[y>>2]=n<<m|f;k[g>>2]=m+1;k[e>>2]=(k[e>>2]|0)+1;k[d>>2]=(k[d>>2]|0)+-8}else n=0;if(k[z>>2]|0)o[b>>2]=n|0?-1.0:1.0}if(!h){h=1;return h|0}k[h>>2]=k[b>>2];h=1;return h|0}C=(r|0)>0;E=C?r:0;do if((f|0)!=0&(m|0)!=0){if((E|0)==0?!((e|0)>1|(r|0)<0&(x&1|0)==0):0){y=f;break}wf(m|0,f|0,c<<2|0)|0;y=m}else y=f;while(0);a:do if(C){w=(y|0)==0;if(!A){p=0;while(1){if((!w?(q=1<<p,s=c>>p>>1,(p|0)!=31):0)?(t=q<<1,(s|0)>0):0){f=0;do{m=0;do{u=y+((ha(t,m)|0)+f<<2)|0;H=+o[u>>2]*.7071067690849304;v=y+(((m<<1|1)<<p)+f<<2)|0;G=+o[v>>2]*.7071067690849304;o[u>>2]=H+G;o[v>>2]=H-G;m=m+1|0}while((m|0)!=(s|0));f=f+1|0}while((f|0)!=(q|0))}n=(l[35178+(n>>4)>>0]|0)<<2|(l[35178+(n&15)>>0]|0);p=p+1|0;if((p|0)>=(E|0))break a}}else s=0;do{p=1<<s;q=c>>s>>1;if((s|0)!=31?(u=(q|0)>0,v=p<<1,u):0){f=0;do{m=0;do{I=b+((ha(v,m)|0)+f<<2)|0;G=+o[I>>2]*.7071067690849304;t=b+(((m<<1|1)<<s)+f<<2)|0;H=+o[t>>2]*.7071067690849304;o[I>>2]=G+H;o[t>>2]=G-H;m=m+1|0}while((m|0)!=(q|0));f=f+1|0}while((f|0)!=(p|0));if(!(w|u^1)){f=0;do{m=0;do{t=y+((ha(v,m)|0)+f<<2)|0;G=+o[t>>2]*.7071067690849304;I=y+(((m<<1|1)<<s)+f<<2)|0;H=+o[I>>2]*.7071067690849304;o[t>>2]=G+H;o[I>>2]=G-H;m=m+1|0}while((m|0)!=(q|0));f=f+1|0}while((f|0)!=(p|0))}}n=(l[35178+(n>>4)>>0]|0)<<2|(l[35178+(n&15)>>0]|0);s=s+1|0}while((s|0)<(E|0))}while(0);f=e>>E;s=x<<E;b:do if((s&1|0)==0&(r|0)<0){v=(y|0)==0;if(!A){u=v^1;t=f;q=0;while(1){s=s>>1;if((t|0)>0&u){f=t<<1;if((s|0)>0){m=0;do{p=0;do{x=y+((ha(f,p)|0)+m<<2)|0;G=+o[x>>2]*.7071067690849304;I=y+((ha(p<<1|1,t)|0)+m<<2)|0;H=+o[I>>2]*.7071067690849304;o[x>>2]=G+H;o[I>>2]=G-H;p=p+1|0}while((p|0)!=(s|0));m=m+1|0}while((m|0)!=(t|0))}}else f=t<<1;n=n<<t|n;m=q+1|0;if((s&1|0)==0&(r|0)<-1){t=f;r=r+1|0;q=m}else{t=m;break b}}}else{u=f;t=0}while(1){s=s>>1;if((u|0)>0){m=(s|0)>0;f=u<<1;if(m){p=0;do{q=0;do{x=b+((ha(f,q)|0)+p<<2)|0;G=+o[x>>2]*.7071067690849304;I=b+((ha(q<<1|1,u)|0)+p<<2)|0;H=+o[I>>2]*.7071067690849304;o[x>>2]=G+H;o[I>>2]=G-H;q=q+1|0}while((q|0)!=(s|0));p=p+1|0}while((p|0)!=(u|0));if(!(v|m^1)){m=0;do{p=0;do{x=y+((ha(f,p)|0)+m<<2)|0;G=+o[x>>2]*.7071067690849304;I=y+((ha(p<<1|1,u)|0)+m<<2)|0;H=+o[I>>2]*.7071067690849304;o[x>>2]=G+H;o[I>>2]=G-H;p=p+1|0}while((p|0)!=(s|0));m=m+1|0}while((m|0)!=(u|0))}}}else f=u<<1;n=n<<u|n;m=t+1|0;if((s&1|0)==0&(r|0)<-1){u=f;r=r+1|0;t=m}else{t=m;break}}}else t=0;while(0);m=(f|0)>1;if(m){if(A|0)de(b,s>>E,f<<E,z);if(y|0)de(y,s>>E,f<<E,z)}n=ee(a,b,c,d,f,y,g,j,n)|0;if(!(k[a+4>>2]|0)){I=n;return I|0}if(m)ge(b,s>>E,f<<E,z);if((t|0)>0){r=0;do{f=f>>1;s=s<<1;n=n>>>f|n;m=s>>1;if((f|0)>0?(B=f<<1,(s|0)>0):0){p=0;do{q=0;do{A=b+((ha(B,q)|0)+p<<2)|0;G=+o[A>>2]*.7071067690849304;I=b+((ha(q<<1|1,f)|0)+p<<2)|0;H=+o[I>>2]*.7071067690849304;o[A>>2]=G+H;o[I>>2]=G-H;q=q+1|0}while((q|0)!=(m|0));p=p+1|0}while((p|0)!=(f|0))}r=r+1|0}while((r|0)!=(t|0));s=f}else s=f;if(C){r=0;do{n=l[35194+n>>0]|0;f=1<<r;m=c>>r>>1;if((r|0)!=31?(D=f<<1,(m|0)>0):0){p=0;do{q=0;do{C=b+((ha(D,q)|0)+p<<2)|0;G=+o[C>>2]*.7071067690849304;I=b+(((q<<1|1)<<r)+p<<2)|0;H=+o[I>>2]*.7071067690849304;o[C>>2]=G+H;o[I>>2]=G-H;q=q+1|0}while((q|0)!=(m|0));p=p+1|0}while((p|0)!=(f|0))}r=r+1|0}while((r|0)<(E|0));m=n}else m=n;n=s<<E;if(h|0?(F=+X(+(+(c|0))),(c|0)>0):0){f=0;do{o[h+(f<<2)>>2]=F*+o[b+(f<<2)>>2];f=f+1|0}while((f|0)!=(c|0))}I=m&(1<<n)+-1;return I|0}function de(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,l=0;j=r;h=ha(c,b)|0;i=r;r=r+((1*(h<<2)|0)+15&-16)|0;if(!d){if((c|0)>0&(b|0)>0)e=0;else{c=h<<2;wf(a|0,i|0,c|0)|0;r=j;return}do{d=ha(e,b)|0;f=0;do{g=a+((ha(f,c)|0)+e<<2)|0;k[i+(f+d<<2)>>2]=k[g>>2];f=f+1|0}while((f|0)!=(b|0));e=e+1|0}while((e|0)!=(c|0));c=h<<2;wf(a|0,i|0,c|0)|0;r=j;return}else{d=21592+(c<<2)+-8|0;if((c|0)>0&(b|0)>0)f=0;else{c=h<<2;wf(a|0,i|0,c|0)|0;r=j;return}do{e=ha(k[d+(f<<2)>>2]|0,b)|0;g=0;do{l=a+((ha(g,c)|0)+f<<2)|0;k[i+(e+g<<2)>>2]=k[l>>2];g=g+1|0}while((g|0)!=(b|0));f=f+1|0}while((f|0)!=(c|0));l=h<<2;wf(a|0,i|0,l|0)|0;r=j;return}}function ee(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=+h;i=i|0;var m=0.0,n=0,p=0,q=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=r;r=r+32|0;y=D+28|0;C=D+24|0;p=D;k[y>>2]=d;k[C>>2]=i;A=k[a>>2]|0;w=k[a+8>>2]|0;x=k[a+12>>2]|0;B=k[a+20>>2]|0;z=k[a+28>>2]|0;s=w+100|0;t=g+1|0;v=w+8|0;q=(ha(k[v>>2]|0,t)|0)+x|0;w=w+96|0;q=(k[s>>2]|0)+(j[(k[w>>2]|0)+(q<<1)>>1]|0)|0;n=l[q>>0]|0;if((g|0)!=-1?((c|0)>2?((l[q+n>>0]|0)+12|0)<(d|0):0):0){v=c>>1;w=b+(v<<2)|0;x=g+-1|0;if((e|0)==1)k[C>>2]=i&1|i<<1;s=e+1>>1;fe(a,p,b,w,v,y,s,e,x,0,C);d=k[p+12>>2]|0;t=k[p+16>>2]|0;n=k[p+20>>2]|0;u=+(k[p+4>>2]|0)*.000030517578125;m=+(k[p+8>>2]|0)*.000030517578125;do if(!((e|0)<2|(t&16383|0)==0))if((t|0)>8192){d=d-(d>>5-g)|0;break}else{d=d+(v<<3>>6-g)|0;d=(d|0)>0?0:d;break}while(0);g=k[y>>2]|0;p=(g-d|0)/2|0;p=(g|0)<(p|0)?g:p;p=(p|0)<0?0:p;g=g-p|0;q=a+32|0;n=(k[q>>2]|0)-n|0;k[q>>2]=n;d=(f|0)==0?0:f+(v<<2)|0;if((p|0)<(g|0)){c=k[C>>2]|0;C=(ee(a,w,v,g,s,d,x,m*h,c>>s)|0)<<(e>>1);e=(k[q>>2]|0)-n+g|0;f=ee(a,b,v,((t|0)!=16384&(e|0)>24?e+-24|0:0)+p|0,s,f,x,u*h,c)|0|C;r=D;return f|0}else{C=k[C>>2]|0;f=ee(a,b,v,p,s,f,x,u*h,C)|0;c=(k[q>>2]|0)-n+p|0;f=(ee(a,w,v,((t|0)!=0&(c|0)>24?c+-24|0:0)+g|0,s,d,x,m*h,C>>s)|0)<<(e>>1)|f;r=D;return f|0}}g=d+-1|0;y=(n+1|0)>>>1;p=(l[q+y>>0]|0)<(g|0);d=p?y:0;y=p?n:y;p=(d+1+y|0)>>>1;n=(l[q+p>>0]|0)<(g|0);d=n?p:d;p=n?y:p;y=d+1+p>>1;n=(l[q+y>>0]|0)<(g|0);d=n?y:d;y=n?p:y;p=d+1+y>>1;n=(l[q+p>>0]|0)<(g|0);d=n?p:d;p=n?y:p;y=d+1+p>>1;n=(l[q+y>>0]|0)<(g|0);d=n?y:d;y=n?p:y;p=d+1+y>>1;n=(l[q+p>>0]|0)<(g|0);d=n?p:d;p=n?y:p;if(!d)n=-1;else n=l[q+d>>0]|0;d=(g-n|0)>((l[q+p>>0]|0)-g|0)?p:d;if(!d)n=0;else n=(l[q+d>>0]|0)+1|0;q=a+32|0;p=(k[q>>2]|0)-n|0;k[q>>2]=p;if((p|0)<0&(d|0)>0){g=d;while(1){p=n+p|0;k[q>>2]=p;d=g+-1|0;if(!d)n=0;else{n=(k[w>>2]|0)+((ha(k[v>>2]|0,t)|0)+x<<1)|0;n=(l[(k[s>>2]|0)+(j[n>>1]|0)+d>>0]|0)+1|0}p=p-n|0;k[q>>2]=p;if(!((p|0)<0&(g|0)>1))break;else g=d}}if(d|0){if((d|0)>=8)d=(d&7|8)<<(d>>3)+-1;if(!A){f=Gd(b,c,d,B,e,z,h)|0;r=D;return f|0}else{f=Fd(b,c,d,B,e,z,h,k[a+4>>2]|0)|0;r=D;return f|0}}if(!(k[a+4>>2]|0)){f=0;r=D;return f|0}d=(1<<e)+-1|0;p=d&i;k[C>>2]=p;if(!p){rf(b|0,0,c<<2|0)|0;f=0;r=D;return f|0}g=(c|0)>0;if(!f){if(!g){f=d;r=D;return f|0}n=a+40|0;p=0;do{f=(ha(k[n>>2]|0,1664525)|0)+1013904223|0;k[n>>2]=f;o[b+(p<<2)>>2]=+(f>>20|0);p=p+1|0}while((p|0)!=(c|0))}else{if(!g){f=p;r=D;return f|0}d=a+40|0;n=0;do{a=(ha(k[d>>2]|0,1664525)|0)+1013904223|0;k[d>>2]=a;o[b+(n<<2)>>2]=+o[f+(n<<2)>>2]+(a&32768|0?.00390625:-.00390625);n=n+1|0}while((n|0)!=(c|0));d=p}if(g){n=0;m=0.0}else{f=d;r=D;return f|0}do{u=+o[b+(n<<2)>>2];m=m+u*u;n=n+1|0}while((n|0)!=(c|0));m=1.0/+X(+(m+1.0000000036274937e-15))*h;n=0;while(1){o[b>>2]=m*+o[b>>2];n=n+1|0;if((n|0)==(c|0))break;else b=b+4|0}r=D;return d|0}function fe(a,b,c,d,e,f,g,h,i,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;m=m|0;n=n|0;var p=0.0,q=0.0,r=0,s=0,t=0.0,u=0.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.0,P=0;E=k[a+8>>2]|0;F=k[a+12>>2]|0;N=k[a+28>>2]|0;D=k[a+36>>2]|0;M=(j[(k[E+56>>2]|0)+(F<<1)>>1]|0)+(i<<3)|0;B=(m|0)!=0;L=(e|0)==2&B;s=k[f>>2]|0;i=(L?-2:-1)+(e<<1)|0;i=((ha((M>>1)-(L?16:4)|0,i)|0)+s|0)/(i|0)|0;M=s-M+-32|0;i=(M|0)<(i|0)?M:i;i=(i|0)>64?64:i;if((i|0)<4)r=1;else r=(j[29724+((i&7)<<1)>>1]>>14-(i>>3))+1&-2;C=(F|0)<(k[a+16>>2]|0)|B^1?r:1;G=(k[a>>2]|0)!=0;if(G){i=(e|0)>0;if(!m)if(i){i=0;p=0.0;do{u=+o[c+(i<<2)>>2];p=p+u*u;i=i+1|0}while((i|0)!=(e|0));i=0;t=0.0;do{u=+o[d+(i<<2)>>2];t=t+u*u;i=i+1|0}while((i|0)!=(e|0));q=p+1.0000000036274937e-15;p=t+1.0000000036274937e-15}else{q=1.0000000036274937e-15;p=1.0000000036274937e-15}else if(i){q=1.0000000036274937e-15;p=1.0000000036274937e-15;i=0;do{O=+o[c+(i<<2)>>2];u=+o[d+(i<<2)>>2];t=O+u;u=O-u;q=q+t*t;p=p+u*u;i=i+1|0}while((i|0)!=(e|0))}else{q=1.0000000036274937e-15;p=1.0000000036274937e-15}u=+X(+q);t=+X(+p);p=u*u;q=t*t;do if(!(p+q<1.000000045813705e-18))if(p<q){p=(t<0.0?-1.5707963705062866:1.5707963705062866)+-(u*t*(q+p*.43157973885536194))/((q+p*.6784840226173401)*(q+p*.0859554186463356));break}else{O=u*t;p=(t<0.0?-1.5707963705062866:1.5707963705062866)+O*(p+q*.43157973885536194)/((p+q*.6784840226173401)*(p+q*.0859554186463356))-(O<0.0?-1.5707963705062866:1.5707963705062866);break}else p=0.0;while(0);m=~~+V(+(p*10430.3818359375+.5))}else m=0;H=N+20|0;I=k[H>>2]|0;J=N+28|0;z=k[J>>2]|0;K=32-(ja(z|0)|0)|0;M=z>>>(K+-16|0);L=M>>>12;M=M>>>0>(k[9236+(L+-8<<2)>>2]|0)>>>0;do if((C|0)==1)if(B){if(G){if((m|0)>8192){C=(k[a+52>>2]|0)==0;i=C&1;if(C&(e|0)>0){m=0;do{C=d+(m<<2)|0;o[C>>2]=-+o[C>>2];m=m+1|0}while((m|0)!=(e|0))}}else i=0;p=+o[D+(F<<2)>>2];O=+o[D+((k[E+8>>2]|0)+F<<2)>>2];q=+X(+(p*p+1.0000000036274937e-15+O*O))+1.0000000036274937e-15;p=p/q;q=O/q;if((e|0)>0){m=0;do{F=c+(m<<2)|0;o[F>>2]=p*+o[F>>2]+q*+o[d+(m<<2)>>2];m=m+1|0}while((m|0)!=(e|0))}}else i=0;do if((k[f>>2]|0)>16?(k[a+32>>2]|0)>16:0){if(G){od(N,i,2);break}m=k[J>>2]|0;A=N+32|0;s=k[A>>2]|0;r=m>>>2;d=s>>>0<r>>>0;i=d&1;if(!d){s=s-r|0;k[A>>2]=s;r=m-r|0}k[J>>2]=r;if(r>>>0<8388609){x=N+40|0;y=N+24|0;w=k[N+4>>2]|0;z=k[H>>2]|0;m=k[y>>2]|0;v=k[x>>2]|0;while(1){z=z+8|0;k[H>>2]=z;r=r<<8;k[J>>2]=r;if(m>>>0<w>>>0){d=m+1|0;k[y>>2]=d;h=l[(k[N>>2]|0)+m>>0]|0;m=d}else h=0;k[x>>2]=h;s=((h|v<<8)>>>1&255|s<<8&2147483392)^255;k[A>>2]=s;if(r>>>0>=8388609)break;else v=h}}}else i=0;while(0);r=(k[a+52>>2]|0)==0?i:0;m=0}else r=0;else{do if(G)if(B){i=k[a+48>>2]|0;if(!i){m=(ha(m,C)|0)+8192>>14;a=25;break}else{m=((((m|0)>8192?32767:-32767)|0)/(C|0)|0)+(ha(m,C)|0)>>14;m=(m|0)<0?0:m;m=((C|0)>(m|0)?m:C+-1|0)+(i>>>31^1)|0;a=25;break}}else{m=(ha(m,C)|0)+8192>>14;if(!((m|0)<(C|0)&((m|0)>0&(k[a+56>>2]|0)!=0))){a=39;break}i=(m<<14>>>0)/(C>>>0)|0;a=i<<16;a=(ha(a>>13,a>>16)|0)+32768>>16;a=32768-a+(((ha((((ha((((ha(a,-626)|0)+16384|0)>>>15<<16)+542441472>>16,a)|0)+16384|0)>>>15<<16)+-501415936>>16,a)|0)+16384|0)>>>15)<<16>>16;i=16384-i<<16;i=(ha(i>>13,i>>16)|0)+32768>>16;i=32768-i+(((ha((((ha((((ha(i,-626)|0)+16384|0)>>>15<<16)+542441472>>16,i)|0)+16384|0)>>>15<<16)+-501415936>>16,i)|0)+16384|0)>>>15)<<16>>16;A=32-(ja(a|0)|0)|0;y=32-(ja(i|0)|0)|0;i=i<<15-y<<16>>16;a=a<<15-A<<16>>16;i=(ha((y-A<<11)-(((ha((((ha(a,-2597)|0)+16384|0)>>>15<<16)+519831552>>16,a)|0)+16384|0)>>>15)+(((ha((((ha(i,-2597)|0)+16384|0)>>>15<<16)+519831552>>16,i)|0)+16384|0)>>>15)<<16>>16,(e<<23)+-8388608>>16)|0)+16384>>15;if((i|0)>(s|0)){m=r;a=39;break}m=(i|0)<(0-s|0)?0:m;a=39;break}else a=25;while(0);do if((a|0)==25)if((e|0)>2&B){w=(C|0)/2|0;i=w+1|0;x=i*3|0;y=x+w|0;if(G){r=(m|0)<=(w|0);if(r){s=m*3|0;i=s}else{i=m*3|0;s=x+~w+m|0}nd(N,s,r?i+3|0:x-w+m|0,y);break}v=(z>>>0)/(y>>>0)|0;k[N+36>>2]=v;A=N+32|0;s=k[A>>2]|0;r=((s>>>0)/(v>>>0)|0)+1|0;r=y-(r>>>0>y>>>0?y:r)|0;m=(ha(i,-2)|0)+r|0;m=(r|0)<(x|0)?(r|0)/3|0:m;r=(m|0)<=(w|0);if(r){h=m*3|0;i=h}else{i=m*3|0;h=x+~w+m|0}i=r?i+3|0:x-w+m|0;y=ha(v,y-i|0)|0;s=s-y|0;k[A>>2]=s;i=ha(v,i-h|0)|0;i=(h|0)==0?z-y|0:i;k[J>>2]=i;if(i>>>0<8388609){x=N+40|0;y=N+24|0;w=k[N+4>>2]|0;z=I;r=k[y>>2]|0;v=k[x>>2]|0;h=s;while(1){z=z+8|0;k[H>>2]=z;i=i<<8;k[J>>2]=i;if(r>>>0<w>>>0){P=r+1|0;k[y>>2]=P;s=l[(k[N>>2]|0)+r>>0]|0;r=P}else s=0;k[x>>2]=s;h=((s|v<<8)>>>1&255|h<<8&2147483392)^255;k[A>>2]=h;if(i>>>0>=8388609)break;else v=s}}else a=60}else a=39;while(0);do if((a|0)==39){if((h|0)>1|B){i=C+1|0;if(G){qd(N,m,i);break}else{m=md(N,i)|0;a=60;break}}r=C>>1;s=r+1|0;y=ha(s,s)|0;if(G){i=(m|0)<=(r|0);r=m+1|0;s=C+1-m|0;if(i)h=(ha(r,m)|0)>>1;else h=y-((ha(s,C+2-m|0)|0)>>1)|0;nd(N,h,h+(i?r:s)|0,y);break}x=(z>>>0)/(y>>>0)|0;k[N+36>>2]=x;A=N+32|0;w=k[A>>2]|0;i=((w>>>0)/(x>>>0)|0)+1|0;i=i>>>0>y>>>0?y:i;m=y-i|0;if((m|0)<((ha(s,r)|0)>>1|0)){i=m<<3|1;h=31-(ja(i|0)|0)>>1;s=1<<h;v=0;while(1){m=(v<<1)+s<<h;r=i>>>0<m>>>0;v=(r?0:s)+v|0;if((h|0)<=0)break;else{i=i-(r?0:m)|0;s=s>>>1;h=h+-1|0}}m=(v+-1|0)>>>1;r=m+1|0;i=(ha(r,m)|0)>>>1}else{i=(i<<3)+-7|0;h=31-(ja(i|0)|0)>>1;s=1<<h;v=0;while(1){m=(v<<1)+s<<h;r=i>>>0<m>>>0;v=(r?0:s)+v|0;if((h|0)<=0)break;else{i=i-(r?0:m)|0;s=s>>>1;h=h+-1|0}}r=C+1|0;m=((r<<1)-v|0)>>>1;r=r-m|0;i=y-((ha(r,C+2-m|0)|0)>>1)|0}y=ha(x,y-r-i|0)|0;h=w-y|0;k[A>>2]=h;P=ha(x,r)|0;i=(i|0)==0?z-y|0:P;k[J>>2]=i;if(i>>>0<8388609){x=N+40|0;y=N+24|0;w=k[N+4>>2]|0;z=I;r=k[y>>2]|0;v=k[x>>2]|0;while(1){z=z+8|0;k[H>>2]=z;i=i<<8;k[J>>2]=i;if(r>>>0<w>>>0){P=r+1|0;k[y>>2]=P;s=l[(k[N>>2]|0)+r>>0]|0;r=P}else s=0;k[x>>2]=s;h=((s|v<<8)>>>1&255|h<<8&2147483392)^255;k[A>>2]=h;if(i>>>0>=8388609)break;else v=s}}}while(0);if((a|0)==60){r=0;m=(m<<14>>>0)/(C>>>0)|0;break}m=(m<<14>>>0)/(C>>>0)|0;if(B&G)if(!m){p=+o[D+(F<<2)>>2];O=+o[D+((k[E+8>>2]|0)+F<<2)>>2];q=+X(+(p*p+1.0000000036274937e-15+O*O))+1.0000000036274937e-15;p=p/q;q=O/q;if((e|0)>0)i=0;else{r=0;m=0;break}do{P=c+(i<<2)|0;o[P>>2]=p*+o[P>>2]+q*+o[d+(i<<2)>>2];i=i+1|0}while((i|0)!=(e|0));r=0;m=0}else{if((e|0)>0)i=0;else{r=0;break}do{N=c+(i<<2)|0;O=+o[N>>2]*.7071067690849304;P=d+(i<<2)|0;u=+o[P>>2]*.7071067690849304;o[N>>2]=O+u;o[P>>2]=u-O;i=i+1|0}while((i|0)!=(e|0));r=0}else r=0}while(0);N=k[J>>2]|0;i=32-(ja(N|0)|0)|0;N=N>>>(i+-16|0);P=N>>>12;i=(M&1)+L-P+((N>>>0>(k[9236+(P+-8<<2)>>2]|0)>>>0)<<31>>31)+(K-I+(k[H>>2]|0)-i<<3)|0;k[f>>2]=(k[f>>2]|0)-i;a:do if((m|0)<16384){switch(m|0){case 0:break;default:break a}k[n>>2]=k[n>>2]&(1<<g)+-1;n=-16384;e=32767;f=0;k[b>>2]=r;P=b+4|0;k[P>>2]=e;P=b+8|0;k[P>>2]=f;P=b+12|0;k[P>>2]=n;P=b+16|0;k[P>>2]=m;P=b+20|0;k[P>>2]=i;return}else{switch(m|0){case 16384:break;default:break a}k[n>>2]=k[n>>2]&(1<<g)+-1<<g;n=16384;e=0;f=32767;k[b>>2]=r;P=b+4|0;k[P>>2]=e;P=b+8|0;k[P>>2]=f;P=b+12|0;k[P>>2]=n;P=b+16|0;k[P>>2]=m;P=b+20|0;k[P>>2]=i;return}while(0);P=m<<16;P=(ha(P>>13,P>>16)|0)+32768>>16;P=32768-P+(((ha((((ha((((ha(P,-626)|0)+16384|0)>>>15<<16)+542441472>>16,P)|0)+16384|0)>>>15<<16)+-501415936>>16,P)|0)+16384|0)>>>15)<<16>>16;f=16384-m<<16;f=(ha(f>>13,f>>16)|0)+32768>>16;f=32768-f+(((ha((((ha((((ha(f,-626)|0)+16384|0)>>>15<<16)+542441472>>16,f)|0)+16384|0)>>>15<<16)+-501415936>>16,f)|0)+16384|0)>>>15)<<16>>16;N=32-(ja(P|0)|0)|0;M=32-(ja(f|0)|0)|0;n=f<<15-M<<16>>16;g=P<<15-N<<16>>16;n=(ha((M-N<<11)-(((ha((((ha(g,-2597)|0)+16384|0)>>>15<<16)+519831552>>16,g)|0)+16384|0)>>>15)+(((ha((((ha(n,-2597)|0)+16384|0)>>>15<<16)+519831552>>16,n)|0)+16384|0)>>>15)<<16>>16,(e<<23)+-8388608>>16)|0)+16384>>15;e=P;k[b>>2]=r;P=b+4|0;k[P>>2]=e;P=b+8|0;k[P>>2]=f;P=b+12|0;k[P>>2]=n;P=b+16|0;k[P>>2]=m;P=b+20|0;k[P>>2]=i;return}function ge(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,l=0;j=r;h=ha(c,b)|0;i=r;r=r+((1*(h<<2)|0)+15&-16)|0;if(!d){if((c|0)>0&(b|0)>0)e=0;else{c=h<<2;wf(a|0,i|0,c|0)|0;r=j;return}do{d=ha(e,b)|0;f=0;do{g=i+((ha(f,c)|0)+e<<2)|0;k[g>>2]=k[a+(f+d<<2)>>2];f=f+1|0}while((f|0)!=(b|0));e=e+1|0}while((e|0)!=(c|0));c=h<<2;wf(a|0,i|0,c|0)|0;r=j;return}else{d=21592+(c<<2)+-8|0;if((c|0)>0&(b|0)>0)f=0;else{c=h<<2;wf(a|0,i|0,c|0)|0;r=j;return}do{e=ha(k[d+(f<<2)>>2]|0,b)|0;g=0;do{l=i+((ha(g,c)|0)+f<<2)|0;k[l>>2]=k[a+(e+g<<2)>>2];g=g+1|0}while((g|0)!=(b|0));f=f+1|0}while((f|0)!=(c|0));l=h<<2;wf(a|0,i|0,l|0)|0;r=j;return}}function he(a,b,c,d,e,f,g,h,j,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;var p=0,q=0.0,s=0.0,t=0.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.0,K=0,L=0,M=0,N=0.0;M=r;r=r+32|0;p=M+28|0;y=M+24|0;u=M;k[p>>2]=e;k[y>>2]=n;w=k[a>>2]|0;L=k[a+28>>2]|0;if((d|0)==1){h=a+32|0;f=a+4|0;G=c|0?2:1;H=L+12|0;n=L+16|0;if(!w){y=L+8|0;z=L+4|0;A=L+20|0;B=0;C=b;while(1){if((k[h>>2]|0)>7){p=k[H>>2]|0;e=k[n>>2]|0;if(!e){e=k[y>>2]|0;u=k[z>>2]|0;if(e>>>0<u>>>0){e=e+1|0;k[y>>2]=e;x=l[(k[L>>2]|0)+(u-e)>>0]|0}else x=0;if(e>>>0<u>>>0){e=e+1|0;k[y>>2]=e;w=l[(k[L>>2]|0)+(u-e)>>0]|0}else w=0;if(e>>>0<u>>>0){e=e+1|0;k[y>>2]=e;v=l[(k[L>>2]|0)+(u-e)>>0]|0}else v=0;if(e>>>0<u>>>0){d=e+1|0;k[y>>2]=d;u=l[(k[L>>2]|0)+(u-d)>>0]|0}else u=0;e=32;p=u<<24|(v<<16|(w<<8|(x|p)))}k[H>>2]=p>>>1;k[n>>2]=e+-1;k[A>>2]=(k[A>>2]|0)+1;k[h>>2]=(k[h>>2]|0)+-8;e=p&1}else e=0;if(k[f>>2]|0)o[C>>2]=e|0?-1.0:1.0;B=B+1|0;if((B|0)>=(G|0))break;else C=c}}else{z=L+24|0;A=L+8|0;B=L+4|0;C=L+44|0;D=L+20|0;E=0;F=b;while(1){if((k[h>>2]|0)>7){e=+o[F>>2]<0.0&1;p=k[H>>2]|0;u=k[n>>2]|0;if((u+1|0)>>>0>32){x=7-u|0;x=(x|0)>-8?x:-8;y=u;do{v=k[A>>2]|0;w=k[B>>2]|0;if((v+(k[z>>2]|0)|0)>>>0<w>>>0){v=v+1|0;k[A>>2]=v;i[(k[L>>2]|0)+(w-v)>>0]=p;v=0}else v=-1;k[C>>2]=k[C>>2]|v;p=p>>>8;y=y+-8|0}while((y|0)>7);u=u+-8-(x+u&-8)|0}k[H>>2]=e<<u|p;k[n>>2]=u+1;k[D>>2]=(k[D>>2]|0)+1;k[h>>2]=(k[h>>2]|0)+-8}else e=0;if(k[f>>2]|0)o[F>>2]=e|0?-1.0:1.0;E=E+1|0;if((E|0)>=(G|0))break;else F=c}}if(!j){c=1;r=M;return c|0}k[j>>2]=k[b>>2];c=1;r=M;return c|0}fe(a,u,b,c,d,p,f,f,h,1,y);K=k[u>>2]|0;z=k[u+16>>2]|0;x=k[u+20>>2]|0;J=+(k[u+4>>2]|0)*.000030517578125;q=+(k[u+8>>2]|0)*.000030517578125;I=(d|0)==2;e=k[p>>2]|0;do if(I){E=(z|0)!=0&(z|0)!=16384?8:0;F=e-E|0;H=(z|0)>8192;G=a+32|0;k[G>>2]=(k[G>>2]|0)-(E+x);G=H?c:b;H=H?b:c;if((z|0)<16384)switch(z|0){case 0:{e=0;break}default:v=29}else switch(z|0){case 16384:{e=0;break}default:v=29}do if((v|0)==29){if(w|0){e=+o[G>>2]*+o[H+4>>2]-+o[G+4>>2]*+o[H>>2]<0.0&1;D=L+12|0;p=k[D>>2]|0;E=L+16|0;u=k[E>>2]|0;if((u+1|0)>>>0>32){x=L+24|0;y=L+8|0;z=L+4|0;A=L+44|0;B=7-u|0;B=(B|0)>-8?B:-8;C=u;do{v=k[y>>2]|0;w=k[z>>2]|0;if((v+(k[x>>2]|0)|0)>>>0<w>>>0){v=v+1|0;k[y>>2]=v;i[(k[L>>2]|0)+(w-v)>>0]=p;v=0}else v=-1;k[A>>2]=k[A>>2]|v;p=p>>>8;C=C+-8|0}while((C|0)>7);u=u+-8-(B+u&-8)|0}k[D>>2]=e<<u|p;k[E>>2]=u+1;L=L+20|0;k[L>>2]=(k[L>>2]|0)+1;break}z=L+12|0;p=k[z>>2]|0;A=L+16|0;e=k[A>>2]|0;if(!e){v=L+8|0;e=k[v>>2]|0;u=k[L+4>>2]|0;if(e>>>0<u>>>0){e=e+1|0;k[v>>2]=e;y=l[(k[L>>2]|0)+(u-e)>>0]|0}else y=0;if(e>>>0<u>>>0){e=e+1|0;k[v>>2]=e;x=(l[(k[L>>2]|0)+(u-e)>>0]|0)<<8}else x=0;if(e>>>0<u>>>0){e=e+1|0;k[v>>2]=e;w=(l[(k[L>>2]|0)+(u-e)>>0]|0)<<16}else w=0;if(e>>>0<u>>>0){E=e+1|0;k[v>>2]=E;u=(l[(k[L>>2]|0)+(u-E)>>0]|0)<<24}else u=0;e=32;p=u|(w|(x|(y|p)))}k[z>>2]=p>>>1;k[A>>2]=e+-1;e=L+20|0;k[e>>2]=(k[e>>2]|0)+1;e=p&1}while(0);L=1-(e<<1)|0;e=ce(a,G,2,F,f,g,h,j,1.0,m,n)|0;o[H>>2]=+o[G+4>>2]*+(0-L|0);o[H+4>>2]=+(L|0)*+o[G>>2];if(k[a+4>>2]|0){o[b>>2]=J*+o[b>>2];L=b+4|0;o[L>>2]=J*+o[L>>2];s=q*+o[c>>2];o[c>>2]=s;j=c+4|0;o[j>>2]=q*+o[j>>2];t=+o[b>>2];o[b>>2]=t-s;o[c>>2]=t+ +o[c>>2];t=+o[L>>2];o[L>>2]=t-+o[j>>2];o[j>>2]=t+ +o[j>>2]}}else{w=(e-(k[u+12>>2]|0)|0)/2|0;w=(e|0)<(w|0)?e:w;w=(w|0)<0?0:w;u=e-w|0;v=a+32|0;p=(k[v>>2]|0)-x|0;k[v>>2]=p;e=k[y>>2]|0;if((w|0)<(u|0)){L=ce(a,c,d,u,f,0,h,0,q,0,e>>f)|0;n=(k[v>>2]|0)-p+u|0;e=ce(a,b,d,((z|0)!=16384&(n|0)>24?n+-24|0:0)+w|0,f,g,h,j,1.0,m,e)|0|L;break}else{j=ce(a,b,d,w,f,g,h,j,1.0,m,e)|0;L=(k[v>>2]|0)-p+w|0;e=ce(a,c,d,((z|0)!=0&(L|0)>24?L+-24|0:0)+u|0,f,0,h,0,q,0,e>>f)|0|j;break}}while(0);if(!(k[a+4>>2]|0)){c=e;r=M;return c|0}do if(!I){u=(d|0)>0;if(u){p=0;s=0.0;q=0.0;do{t=+o[c+(p<<2)>>2];s=s+t*+o[b+(p<<2)>>2];q=q+t*t;p=p+1|0}while((p|0)!=(d|0))}else{s=0.0;q=0.0}t=J*J+q;s=J*s*2.0;q=t-s;s=t+s;if(s<6.000000284984708e-04|q<6.000000284984708e-04){wf(c|0,b|0,d<<2|0)|0;break}t=1.0/+X(+q);q=1.0/+X(+s);if(u){p=0;do{L=b+(p<<2)|0;N=J*+o[L>>2];j=c+(p<<2)|0;s=+o[j>>2];o[L>>2]=t*(N-s);o[j>>2]=q*(N+s);p=p+1|0}while((p|0)!=(d|0))}else{c=e;r=M;return c|0}}while(0);if((K|0)!=0&(d|0)>0)p=0;else{c=e;r=M;return c|0}do{b=c+(p<<2)|0;o[b>>2]=-+o[b>>2];p=p+1|0}while((p|0)!=(d|0));r=M;return e|0}function ie(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=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;G=r;r=r+208|0;l=G+176|0;h=G+144|0;F=G;D=a+2328|0;E=k[D>>2]|0;C=F+136|0;k[C>>2]=0;switch(e|0){case 0:{g=a+2388|0;m=4;break}case 2:{g=a+2388|0;if((k[a+2420+(k[g>>2]<<2)>>2]|0)==1)m=4;else m=44;break}default:m=44}if((m|0)==4){B=Pa()|0;s=r;r=r+((1*((E+15&-16)<<1)|0)+15&-16)|0;je(a,b,k[g>>2]|0,e,f);t=a+2765|0;ke(b,s,i[t>>0]|0,i[a+2766>>0]|0,k[D>>2]|0);x=a+2324|0;me(F+16|0,a+2736|0,a+2312|0,(f|0)==2&1,k[x>>2]|0);ne(l,a+2744|0,k[a+2732>>2]|0);f=F+32|0;y=F+64|0;z=a+2340|0;Ae(y,l,k[z>>2]|0);A=a+2376|0;g=a+2767|0;if((k[A>>2]|0)!=1){g=i[g>>0]|0;if(g<<24>>24<4){b=k[z>>2]|0;if((b|0)>0){g=g<<24>>24;e=0;do{w=j[a+2344+(e<<1)>>1]|0;w=((ha((j[l+(e<<1)>>1]|0)-w|0,g)|0)>>>2)+w&65535;j[h+(e<<1)>>1]=w;e=e+1|0}while((e|0)!=(b|0))}Ae(f,h,b);e=k[z>>2]|0}else m=11}else{i[g>>0]=4;m=11}if((m|0)==11){e=k[z>>2]|0;wf(f|0,y|0,e<<1|0)|0}wf(a+2344|0,l|0,e<<1|0)|0;g=a+4160|0;if(k[g>>2]|0){h=e+-1|0;b=(e|0)>1;if(b){e=63570;f=0;do{w=F+32+(f<<1)|0;v=(((ha(j[w>>1]|0,e)|0)>>>15)+1|0)>>>1&65535;j[w>>1]=v;e=(((ha(e,-1966)|0)>>15)+1>>1)+e|0;f=f+1|0}while((f|0)!=(h|0));w=F+32+(h<<1)|0;v=(((ha(j[w>>1]|0,e)|0)>>>15)+1|0)>>>1&65535;j[w>>1]=v;if(b){e=63570;b=0;do{w=F+64+(b<<1)|0;v=(((ha(j[w>>1]|0,e)|0)>>>15)+1|0)>>>1&65535;j[w>>1]=v;e=(((ha(e,-1966)|0)>>15)+1>>1)+e|0;b=b+1|0}while((b|0)!=(h|0))}else e=63570}else{e=F+32+(h<<1)|0;j[e>>1]=((((j[e>>1]|0)*63570|0)>>>15)+1|0)>>>1;e=63570}w=F+64+(h<<1)|0;v=(((ha(j[w>>1]|0,e)|0)>>>15)+1|0)>>>1&65535;j[w>>1]=v}if((i[t>>0]|0)==2){e=a+2316|0;h=k[e>>2]|0;q=k[x>>2]|0;f=(h|0)==8;n=(q|0)==4;o=f?(n?11:3):n?34:12;n=f?(n?36982:36948):n?37026:36954;h=h<<16;f=h>>15;h=(h>>16)*18|0;l=f+(j[a+2762>>1]|0)|0;p=(q|0)>0;if(p){m=i[a+2764>>0]|0;if((f|0)>(h|0)){b=0;do{w=n+((ha(b,o)|0)+m)|0;w=(i[w>>0]|0)+l|0;k[F+(b<<2)>>2]=(w|0)>(f|0)?f:(w|0)<(h|0)?h:w;b=b+1|0}while((b|0)!=(q|0))}else{b=0;do{w=n+((ha(b,o)|0)+m)|0;w=(i[w>>0]|0)+l|0;k[F+(b<<2)>>2]=(w|0)>(h|0)?h:(w|0)<(f|0)?f:w;b=b+1|0}while((b|0)!=(q|0))}}b=j[a+2768>>1]|0;f=k[21364+((b&65535)<<24>>24<<2)>>2]|0;if(p){b=0;do{v=(i[a+2740+b>>0]|0)*5|0;w=b*5|0;j[F+96+(w<<1)>>1]=i[f+v>>0]<<7;j[F+96+(w+1<<1)>>1]=i[f+(v+1)>>0]<<7;j[F+96+(w+2<<1)>>1]=i[f+(v+2)>>0]<<7;j[F+96+(w+3<<1)>>1]=i[f+(v+3)>>0]<<7;j[F+96+(w+4<<1)>>1]=i[f+(v+4)>>0]<<7;b=b+1|0}while((b|0)!=(q|0));b=i[a+2769>>0]|0}else b=(b&65535)>>>8&255;k[C>>2]=j[29376+(b<<24>>24<<1)>>1]}else{e=k[x>>2]|0;rf(F|0,0,e<<2|0)|0;rf(F+96|0,0,e*10|0)|0;i[a+2768>>0]=0;k[C>>2]=0;e=a+2316|0}Ge(a,F,c,s);b=k[e>>2]|0;e=a+4252|0;if((b|0)!=(k[e>>2]|0)){k[a+4172>>2]=k[D>>2]<<7;k[a+4244>>2]=65536;k[a+4248>>2]=65536;k[a+4260>>2]=20;k[a+4256>>2]=2;k[e>>2]=b}u=a+4172|0;t=i[t>>0]|0;v=t<<24>>24;w=a+4164|0;k[w>>2]=v;do if(t<<24>>24==2){b=a+2332|0;e=k[x>>2]|0;n=e+-1|0;o=k[F+(n<<2)>>2]|0;if((e|0)==0|(o|0)<1)h=0;else{p=a+4176|0;q=e+65535|0;s=k[b>>2]|0;l=0;m=0;t=0;while(1){f=n+m|0;h=f*5|0;h=(j[F+96+(h+1<<1)>>1]|0)+(j[F+96+(h<<1)>>1]|0)+(j[F+96+(h+2<<1)>>1]|0)+(j[F+96+(h+3<<1)>>1]|0)+(j[F+96+(h+4<<1)>>1]|0)|0;if((h|0)>(l|0)){x=F+96+((q+m<<16>>16)*5<<1)|0;j[p>>1]=j[x>>1]|0;j[p+2>>1]=j[x+2>>1]|0;j[p+4>>1]=j[x+4>>1]|0;j[p+6>>1]=j[x+6>>1]|0;j[p+8>>1]=j[x+8>>1]|0;k[u>>2]=k[F+(f<<2)>>2]<<8}else h=l;f=t+1|0;if((f|0)==(e|0)|(ha(s,f)|0)>=(o|0))break;else{l=h;m=~t;t=f}}}f=a+4176|0;k[f>>2]=0;k[f+4>>2]=0;j[f+8>>1]=0;f=a+4180|0;j[f>>1]=h;if((h|0)<11469){j[a+4176>>1]=0;j[a+4178>>1]=0;x=(ha((11744256/(((h|0)>1?h:1)|0)|0)<<16>>16,h<<16>>16)|0)>>>10&65535;j[f>>1]=x;j[a+4182>>1]=0;j[a+4184>>1]=0;break}if((h|0)>15565){j[a+4176>>1]=0;j[a+4178>>1]=0;x=(ha((255016960/(h|0)|0)<<16>>16,h<<16>>16)|0)>>>14&65535;j[f>>1]=x;j[a+4182>>1]=0;j[a+4184>>1]=0}}else{k[u>>2]=(b<<16>>16)*4608;b=a+4176|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;b=a+2332|0;e=k[x>>2]|0}while(0);wf(a+4186|0,y|0,k[z>>2]<<1|0)|0;j[a+4240>>1]=k[C>>2];y=F+16+(e+-2<<2)|0;z=k[y+4>>2]|0;C=a+4244|0;k[C>>2]=k[y>>2];k[C+4>>2]=z;k[a+4260>>2]=k[b>>2];k[a+4256>>2]=e;k[g>>2]=0;k[w>>2]=v;k[A>>2]=0;Xa(B|0)}else if((m|0)==44){i[a+2765>>0]=k[a+4164>>2];g=k[a+2316>>2]|0;e=a+4252|0;if((g|0)!=(k[e>>2]|0)){k[a+4172>>2]=E<<7;k[a+4244>>2]=65536;k[a+4248>>2]=65536;k[a+4260>>2]=20;k[a+4256>>2]=2;k[e>>2]=g}re(a,F,c);g=a+4160|0;k[g>>2]=(k[g>>2]|0)+1}B=k[D>>2]|0;C=(k[a+2336>>2]|0)-B|0;xf(a+1348|0,a+1348+(B<<1)|0,C<<1|0)|0;wf(a+1348+(C<<1)|0,c|0,k[D>>2]<<1|0)|0;Fe(a,F,c,E);if(k[g>>2]|0){De(a+4232|0,a+4236|0,c,E);k[a+4220>>2]=1;c=a+2324|0;c=k[c>>2]|0;c=c+-1|0;c=F+(c<<2)|0;c=k[c>>2]|0;F=a+2308|0;k[F>>2]=c;k[d>>2]=E;r=G;return}l=a+4220|0;if(k[l>>2]|0){b=31-(ja(E|0)|0)|0;h=E+-1|0;f=(E|0)>1;if(f){e=0;g=E;do{D=j[c+(e<<1)>>1]|0;D=ha(D,D)|0;C=j[c+((e|1)<<1)>>1]|0;g=(((ha(C,C)|0)+D|0)>>>b)+g|0;e=e+2|0}while((e|0)<(h|0));e=E&-2}else{e=0;g=E}if((e|0)<(E|0)){D=j[c+(e<<1)>>1]|0;g=((ha(D,D)|0)>>>b)+g|0}e=b+3-(ja(g|0)|0)|0;e=(e|0)<0?0:e;if(f){g=0;b=0;do{D=j[c+(g<<1)>>1]|0;D=ha(D,D)|0;C=j[c+((g|1)<<1)>>1]|0;b=(((ha(C,C)|0)+D|0)>>>e)+b|0;g=g+2|0}while((g|0)<(h|0));g=E&-2}else{g=0;b=0}if((g|0)<(E|0)){D=j[c+(g<<1)>>1]|0;b=((ha(D,D)|0)>>>e)+b|0}g=k[a+4236>>2]|0;if((e|0)<=(g|0)){if((e|0)<(g|0))b=b>>g-e}else{D=a+4232|0;k[D>>2]=k[D>>2]>>e-g}g=a+4232|0;e=k[g>>2]|0;if((b|0)>(e|0)){C=ja(e|0)|0;D=e<<C+-1;k[g>>2]=D;g=25-C|0;g=b>>((g|0)>0?g:0);g=(D|0)/(((g|0)>1?g:1)|0)|0;if((g|0)<1)g=0;else{f=ja(g|0)|0;e=24-f|0;b=0-e|0;do if(e)if((e|0)<0){g=g>>>(e+32|0)|g<<b;break}else{g=g<<32-e|g>>>e;break}while(0);D=((f&1|0)==0?46214:32768)>>>(f>>>1);g=(ha(g&127,13959168)|0)>>>16;g=(ha(g,D>>16)|0)+D+((ha(g,D&65535)|0)>>>16)<<4}b=((65536-g|0)/(E|0)|0)<<2;if((E|0)>0){e=0;do{D=c+(e<<1)|0;C=j[D>>1]|0;C=((ha(C,g&65532)|0)>>>16)+(ha(C,g>>16)|0)&65535;j[D>>1]=C;g=g+b|0;e=e+1|0}while((g|0)<65537&(e|0)<(E|0))}}}k[l>>2]=0;c=a+2324|0;c=k[c>>2]|0;c=c+-1|0;c=F+(c<<2)|0;c=k[c>>2]|0;F=a+2308|0;k[F>>2]=c;k[d>>2]=E;r=G;return}
function Cd(a,b,c,d,e,f,g,h,i,m,n,o,p,q,s,t,u,v,w){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;var 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;ba=r;i=(i|0)>0?i:0;M=k[a+8>>2]|0;Y=(i|0)>7?8:0;i=i-Y|0;aa=(q|0)==2;if(aa?(x=l[33361+(c-b)>>0]|0,(i|0)>=(x|0)):0){i=i-x|0;Z=(i|0)>7?8:0;i=i-Z|0}else{Z=0;x=0}O=r;r=r+((1*(M<<2)|0)+15&-16)|0;P=r;r=r+((1*(M<<2)|0)+15&-16)|0;X=r;r=r+((1*(M<<2)|0)+15&-16)|0;N=r;r=r+((1*(M<<2)|0)+15&-16)|0;I=(c|0)>(b|0);if(I){E=q<<3;B=a+32|0;C=k[B>>2]|0;D=c+-1|0;f=ha(f+-5-s|0,q)|0;y=s+3|0;z=j[C+(b<<1)>>1]|0;A=b;do{$=A;A=A+1|0;W=z;z=j[C+(A<<1)>>1]|0;W=(z<<16>>16)-(W<<16>>16)|0;V=W*3<<s<<3>>4;k[X+($<<2)>>2]=(E|0)>(V|0)?E:V;V=(ha(ha(f,D-$|0)|0,W)|0)<<y>>6;k[N+($<<2)>>2]=V-((W<<s|0)==1?E:0)}while((A|0)!=(c|0));$=B}else{$=a+32|0;E=q<<3}K=k[a+48>>2]|0;J=a+52|0;H=K+-1|0;L=1;do{G=L+H>>1;a:do if(I){C=k[$>>2]|0;D=ha(G,M)|0;F=k[J>>2]|0;y=c;z=0;f=0;while(1){B=y+-1|0;y=j[C+(y<<1)>>1]|0;b:do if(z){y=ha((y<<16>>16)-(j[C+(B<<1)>>1]|0)|0,q)|0;y=(ha(y,l[F+(B+D)>>0]|0)|0)<<s>>2;if((y|0)>0){y=(k[N+(B<<2)>>2]|0)+y|0;y=(y|0)<0?0:y}A=B;y=(k[d+(B<<2)>>2]|0)+y|0}else{A=B;while(1){z=y;y=j[C+(A<<1)>>1]|0;z=ha((z<<16>>16)-(y<<16>>16)|0,q)|0;z=(ha(z,l[F+(A+D)>>0]|0)|0)<<s>>2;if((z|0)>0){z=(k[N+(A<<2)>>2]|0)+z|0;z=(z|0)<0?0:z}z=(k[d+(A<<2)>>2]|0)+z|0;if((z|0)>=(k[X+(A<<2)>>2]|0)){y=z;break b}f=((z|0)<(E|0)?0:E)+f|0;if((A|0)<=(b|0))break a;else A=A+-1|0}}while(0);W=k[e+(A<<2)>>2]|0;f=((y|0)<(W|0)?y:W)+f|0;if((A|0)>(b|0)){y=A;z=1}else break}}else f=0;while(0);W=(f|0)>(i|0);H=W?G+-1|0:H;L=W?L:G+1|0}while((L|0)<=(H|0));if(I){H=k[$>>2]|0;I=ha(L+-1|0,M)|0;G=k[J>>2]|0;D=ha(L,M)|0;F=(L|0)>1;f=j[H+(b<<1)>>1]|0;if((L|0)<(K|0)){B=b;y=b;do{C=B;B=B+1|0;A=f;f=j[H+(B<<1)>>1]|0;A=ha((f<<16>>16)-(A<<16>>16)|0,q)|0;z=(ha(A,l[G+(C+I)>>0]|0)|0)<<s>>2;A=(ha(l[G+(C+D)>>0]|0,A)|0)<<s>>2;if((z|0)>0){z=(k[N+(C<<2)>>2]|0)+z|0;z=(z|0)<0?0:z}if((A|0)>0){A=(k[N+(C<<2)>>2]|0)+A|0;A=(A|0)<0?0:A}W=k[d+(C<<2)>>2]|0;V=z+(F?W:0)|0;y=(W|0)>0?C:y;W=A-V+W|0;k[O+(C<<2)>>2]=V;k[P+(C<<2)>>2]=(W|0)<0?0:W}while((B|0)!=(c|0));I=y}else{B=b;y=b;do{C=B;B=B+1|0;z=f;f=j[H+(B<<1)>>1]|0;z=ha((f<<16>>16)-(z<<16>>16)|0,q)|0;z=(ha(z,l[G+(C+I)>>0]|0)|0)<<s>>2;A=k[e+(C<<2)>>2]|0;if((z|0)>0){z=(k[N+(C<<2)>>2]|0)+z|0;z=(z|0)<0?0:z}if((A|0)>0){A=(k[N+(C<<2)>>2]|0)+A|0;A=(A|0)<0?0:A}W=k[d+(C<<2)>>2]|0;V=z+(F?W:0)|0;y=(W|0)>0?C:y;W=A-V+W|0;k[O+(C<<2)>>2]=V;k[P+(C<<2)>>2]=(W|0)<0?0:W}while((B|0)!=(c|0));I=y}F=(q|0)>1;H=F&1;C=64;D=0;G=0;while(1){B=C+G>>1;y=c;A=0;f=0;c:while(1){z=y+-1|0;d:do if(A)y=((ha(k[P+(z<<2)>>2]|0,B)|0)>>6)+(k[O+(z<<2)>>2]|0)|0;else while(1){y=((ha(k[P+(z<<2)>>2]|0,B)|0)>>6)+(k[O+(z<<2)>>2]|0)|0;if((y|0)>=(k[X+(z<<2)>>2]|0))break d;f=((y|0)<(E|0)?0:E)+f|0;if((z|0)>(b|0))z=z+-1|0;else break c}while(0);W=k[e+(z<<2)>>2]|0;f=((y|0)<(W|0)?y:W)+f|0;if((z|0)>(b|0)){y=z;A=1}else break}f=(f|0)>(i|0);G=f?G:B;D=D+1|0;if((D|0)==6){y=c;z=0;f=0;break}else C=f?B:C}while(1){y=y+-1|0;V=((ha(k[P+(y<<2)>>2]|0,G)|0)>>6)+(k[O+(y<<2)>>2]|0)|0;A=z|0?1:(V|0)>=(k[X+(y<<2)>>2]|0);V=A?V:(V|0)<(E|0)?0:E;W=k[e+(y<<2)>>2]|0;W=(V|0)<(W|0)?V:W;k[n+(y<<2)>>2]=W;f=W+f|0;if((y|0)<=(b|0)){U=F;W=H;break}else z=A?1:z}}else{W=(q|0)>1;U=W;W=W&1;f=0;I=b}V=s<<3;y=c+-1|0;e:do if((y|0)>(I|0)){M=E+8|0;N=(u|0)==0;d=t+28|0;O=t+32|0;P=t+20|0;Q=t+40|0;R=t+24|0;S=t+4|0;T=b+2|0;K=c;while(1){G=i-f|0;z=k[$>>2]|0;L=j[z+(K<<1)>>1]|0;J=j[z+(b<<1)>>1]|0;A=L-J|0;H=(G>>>0)/(A>>>0)|0;A=G-(ha(A,H)|0)|0;z=j[z+(y<<1)>>1]|0;J=A+(J-z)|0;z=L-z|0;L=n+(y<<2)|0;A=k[L>>2]|0;J=(ha(z,H)|0)+A+((J|0)>0?J:0)|0;H=k[X+(y<<2)>>2]|0;if((J|0)<(((H|0)>(M|0)?H:M)|0))z=J;else{if(N){z=k[d>>2]|0;B=k[O>>2]|0;A=z>>>1;H=B>>>0<A>>>0;if(!H){B=B-A|0;k[O>>2]=B;A=z-A|0}k[d>>2]=A;if(A>>>0<8388609){F=k[S>>2]|0;G=k[P>>2]|0;z=k[R>>2]|0;D=k[Q>>2]|0;while(1){G=G+8|0;k[P>>2]=G;A=A<<8;k[d>>2]=A;if(z>>>0<F>>>0){ca=z+1|0;k[R>>2]=ca;C=l[(k[t>>2]|0)+z>>0]|0;z=ca}else C=0;k[Q>>2]=C;B=((C|D<<8)>>>1&255|B<<8&2147483392)^255;k[O>>2]=B;if(A>>>0>=8388609)break;else D=C}}if(H){M=K;L=f;break e}}else{if((K|0)<=(T|0))break;if(!((y|0)>(w|0)?1:(J|0)<=((ha(z,(K|0)>17?((K|0)<=(v|0)?7:9):0)|0)<<s<<3>>4|0)))break;od(t,0,1)}A=k[L>>2]|0;z=J+-8|0;f=f+8|0}if((x|0)>0)B=l[33361+(y-b)>>0]|0;else B=x;z=(z|0)<(E|0)?0:E;f=f-(A+x)+z+B|0;k[L>>2]=z;z=y+-1|0;if((z|0)>(I|0)){K=y;x=B;y=z}else{x=B;_=45;break e}}od(t,1,1);M=K;L=f}else{y=c;_=45}while(0);if((_|0)==45){i=i+Y|0;M=y;L=f}do if((x|0)>0)if(!u){x=(md(t,1-b+M|0)|0)+b|0;k[g>>2]=x;break}else{x=k[g>>2]|0;x=(x|0)<(M|0)?x:M;k[g>>2]=x;qd(t,x-b|0,1-b+M|0);x=k[g>>2]|0;break}else{k[g>>2]=0;x=0}while(0);ca=(x|0)>(b|0);K=ca?0:Z;do if((Z|0)!=0&ca){if(u|0){od(t,k[h>>2]|0,1);break}H=t+28|0;x=k[H>>2]|0;I=t+32|0;y=k[I>>2]|0;f=x>>>1;ca=y>>>0<f>>>0;J=ca&1;if(!ca){y=y-f|0;k[I>>2]=y;f=x-f|0}k[H>>2]=f;if(f>>>0<8388609){C=t+20|0;D=t+40|0;F=t+24|0;B=k[t+4>>2]|0;G=k[C>>2]|0;x=k[F>>2]|0;A=k[D>>2]|0;while(1){G=G+8|0;k[C>>2]=G;f=f<<8;k[H>>2]=f;if(x>>>0<B>>>0){ca=x+1|0;k[F>>2]=ca;z=l[(k[t>>2]|0)+x>>0]|0;x=ca}else z=0;k[D>>2]=z;y=((z|A<<8)>>>1&255|y<<8&2147483392)^255;k[I>>2]=y;if(f>>>0>=8388609)break;else A=z}}k[h>>2]=J}else k[h>>2]=0;while(0);ca=K+(i-L)|0;f=k[$>>2]|0;y=j[f+(b<<1)>>1]|0;x=(j[f+(M<<1)>>1]|0)-y|0;z=(ca>>>0)/(x>>>0)|0;x=ca-(ha(x,z)|0)|0;if((M|0)>(b|0)){i=b+1|0;t=ha((j[f+(i<<1)>>1]|0)-y|0,z)|0;ca=n+(b<<2)|0;k[ca>>2]=t+(k[ca>>2]|0);if((i|0)==(M|0))f=b;else{do{t=k[$>>2]|0;ca=i;i=i+1|0;t=ha((j[t+(i<<1)>>1]|0)-(j[t+(ca<<1)>>1]|0)|0,z)|0;ca=n+(ca<<2)|0;k[ca>>2]=t+(k[ca>>2]|0)}while((i|0)!=(M|0));f=b}while(1){ca=f;f=f+1|0;i=k[$>>2]|0;i=(j[i+(f<<1)>>1]|0)-(j[i+(ca<<1)>>1]|0)|0;i=(x|0)<(i|0)?x:i;ca=n+(ca<<2)|0;k[ca>>2]=i+(k[ca>>2]|0);if((f|0)==(M|0))break;else x=x-i|0}H=a+56|0;G=U?4:3;i=0;do{F=b;b=b+1|0;A=k[$>>2]|0;A=(j[A+(b<<1)>>1]|0)-(j[A+(F<<1)>>1]|0)<<s;D=n+(F<<2)|0;f=(k[D>>2]|0)+i|0;if((A|0)>1){x=f-(k[e+(F<<2)>>2]|0)|0;x=(x|0)>0?x:0;B=f-x|0;k[D>>2]=B;f=ha(A,q)|0;if(aa&(A|0)>2?(k[h>>2]|0)==0:0)y=(F|0)<(k[g>>2]|0);else y=0;C=(y&1)+f|0;z=ha((j[(k[H>>2]|0)+(F<<1)>>1]|0)+V|0,C)|0;f=(z>>1)+(ha(C,-21)|0)|0;if((A|0)==2)f=f+(C<<3>>2)|0;y=f+B|0;if((y|0)>=(C<<4|0))if((y|0)<(C*24|0))A=f+(z>>3)|0;else A=f;else A=f+(z>>2)|0;f=(C<<2)+B+A|0;z=o+(F<<2)|0;f=((((f|0)<0?0:f)>>>0)/(C>>>0)|0)>>>3;k[z>>2]=f;ca=ha(f,q)|0;y=k[D>>2]|0;if((ca|0)>(y>>3|0)){f=y>>W>>3;k[z>>2]=f}ca=(f|0)<8?f:8;k[z>>2]=ca;ca=ha(C<<3,ca)|0;k[p+(F<<2)>>2]=(ca|0)>=((k[D>>2]|0)+A|0)&1;ca=ha(k[z>>2]|0,E)|0;k[D>>2]=(k[D>>2]|0)-ca}else{x=f-E|0;x=(x|0)<0?0:x;k[D>>2]=f-x;k[o+(F<<2)>>2]=0;k[p+(F<<2)>>2]=1}if((x|0)>0){u=x>>G;a=o+(F<<2)|0;t=k[a>>2]|0;ca=8-t|0;ca=(u|0)<(ca|0)?u:ca;k[a>>2]=ca+t;ca=ha(ca,E)|0;k[p+(F<<2)>>2]=(ca|0)>=(x-i|0)&1;i=x-ca|0}else i=x}while((b|0)!=(M|0));b=M}else i=0;k[m>>2]=i;if((b|0)>=(c|0)){r=ba;return M|0}do{m=n+(b<<2)|0;ca=o+(b<<2)|0;k[ca>>2]=k[m>>2]>>W>>3;k[m>>2]=0;k[p+(b<<2)>>2]=(k[ca>>2]|0)<1&1;b=b+1|0}while((b|0)!=(c|0));r=ba;return M|0}function Dd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j=0.0,l=0,m=0,n=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0,B=0.0;if((e<<1|0)>=(b|0)|(f|0)==0)return;y=+(b|0)/+((ha(k[21316+(f+-1<<2)>>2]|0,e)|0)+b|0);y=y*y*.5;x=+Z(+(y*1.5707963705062866));y=+Z(+((1.0-y)*1.5707963705062866));if((d<<3|0)>(b|0))f=0;else{e=d>>2;f=1;while(1)if(((ha((ha(f,f)|0)+f|0,d)|0)+e|0)<(b|0))f=f+1|0;else break}w=(b>>>0)/(d>>>0)|0;if((d|0)<=0)return;h=(c|0)<0;i=(f|0)==0;j=-y;l=w+-1|0;m=(l|0)>0;n=w+-3|0;p=(w|0)>2;q=-x;r=w-f|0;s=(r|0)>0;u=w-(f<<1)|0;t=u+-1|0;u=(u|0)>0;v=0;do{c=a+((ha(v,w)|0)<<2)|0;if(h){if(!i){if(s){e=c;b=0;while(1){z=+o[e>>2];A=e+(f<<2)|0;g=+o[A>>2];o[A>>2]=x*z+y*g;o[e>>2]=y*z+g*q;b=b+1|0;if((b|0)==(r|0))break;else e=e+4|0}}if(u){e=c+(t<<2)|0;b=t;while(1){g=+o[e>>2];A=e+(f<<2)|0;z=+o[A>>2];o[A>>2]=x*g+y*z;o[e>>2]=y*g+z*q;if((b|0)>0){e=e+-4|0;b=b+-1|0}else break}}}if(m){g=+o[c>>2];e=c;b=0;do{A=e;e=e+4|0;z=+o[e>>2];B=g;g=y*g+x*z;o[e>>2]=g;o[A>>2]=x*B+z*j;b=b+1|0}while((b|0)!=(l|0))}if(p){e=c+(n<<2)|0;b=n;while(1){z=+o[e>>2];A=e+4|0;B=+o[A>>2];o[A>>2]=y*z+x*B;o[e>>2]=x*z+B*j;if((b|0)>0){e=e+-4|0;b=b+-1|0}else break}}}else{if(m){g=+o[c>>2];e=c;b=0;do{A=e;e=e+4|0;B=+o[e>>2];z=g;g=g*j+x*B;o[e>>2]=g;o[A>>2]=x*z+y*B;b=b+1|0}while((b|0)!=(l|0))}if(p){e=c+(n<<2)|0;b=n;while(1){z=+o[e>>2];A=e+4|0;B=+o[A>>2];o[A>>2]=z*j+x*B;o[e>>2]=x*z+y*B;if((b|0)>0){e=e+-4|0;b=b+-1|0}else break}}if(!i){if(s){e=c;b=0;while(1){z=+o[e>>2];A=e+(f<<2)|0;B=+o[A>>2];o[A>>2]=z*q+y*B;o[e>>2]=y*z+x*B;b=b+1|0;if((b|0)==(r|0))break;else e=e+4|0}}if(u){e=c+(t<<2)|0;b=t;while(1){z=+o[e>>2];A=e+(f<<2)|0;B=+o[A>>2];o[A>>2]=z*q+y*B;o[e>>2]=y*z+x*B;if((b|0)>0){e=e+-4|0;b=b+-1|0}else break}}}}v=v+1|0}while((v|0)!=(d|0));return}function Ed(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,g=0.0,h=0.0,i=0,j=0.0,l=0.0,m=0.0,n=0,p=0,q=0,s=0,t=0;t=r;q=r;r=r+((1*(d<<2)|0)+15&-16)|0;s=r;r=r+((1*(d<<2)|0)+15&-16)|0;rf(q|0,0,((d|0)>1?d:1)<<2|0)|0;e=0;do{p=a+(e<<2)|0;m=+o[p>>2];k[s+(e<<2)>>2]=m<0.0&1;m=+W(+m);o[p>>2]=m;k[b+(e<<2)>>2]=0;e=e+1|0}while((e|0)<(d|0));if((d>>1|0)<(c|0)){e=0;f=0.0;do{f=f+ +o[a+(e<<2)>>2];e=e+1|0}while((e|0)<(d|0));if(!(f>1.0000000036274937e-15&f<64.0)){o[a>>2]=1.0;rf(a+4|0,0,(((d|0)>2?d:2)<<2)+-4|0)|0;f=1.0}h=(+(c|0)+.800000011920929)*(1.0/f);i=0;e=c;g=0.0;f=0.0;do{n=a+(i<<2)|0;p=~~+V(+(h*+o[n>>2]));k[b+(i<<2)>>2]=p;m=+(p|0);f=f+m*m;g=g+m*+o[n>>2];o[q+(i<<2)>>2]=m*2.0;e=e-p|0;i=i+1|0}while((i|0)<(d|0))}else{e=c;g=0.0;f=0.0}if((e|0)<=(d+3|0)){if((e|0)>0){p=0;do{f=f+1.0;m=g+ +o[a>>2];l=f+ +o[q>>2];n=0;m=m*m;i=1;while(1){j=g+ +o[a+(i<<2)>>2];h=f+ +o[q+(i<<2)>>2];j=j*j;c=l*j>m*h;n=c?i:n;i=i+1|0;if((i|0)>=(d|0))break;else{l=c?h:l;m=c?j:m}}g=g+ +o[a+(n<<2)>>2];i=q+(n<<2)|0;m=+o[i>>2];f=f+m;o[i>>2]=m+2.0;n=b+(n<<2)|0;k[n>>2]=(k[n>>2]|0)+1;p=p+1|0}while((p|0)!=(e|0))}}else{m=+(e|0);f=f+m*m+m*+o[q>>2];k[b>>2]=(k[b>>2]|0)+e}e=0;do{a=b+(e<<2)|0;q=k[s+(e<<2)>>2]|0;k[a>>2]=(k[a>>2]^0-q)+q;e=e+1|0}while((e|0)<(d|0));r=t;return +f}function Fd(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;h=h|0;var i=0,j=0.0,l=0,m=0,n=0,p=0,q=0,s=0,t=0;s=r;q=r;r=r+((1*(b+3<<2)|0)+15&-16)|0;Dd(a,b,1,e,c,d);j=+Ed(a,q,c,b);m=b+-1|0;p=k[q+(m<<2)>>2]|0;i=p>>>31;p=(p|0)>-1?p:0-p|0;do{n=m;m=m+-1|0;l=b-m|0;i=(k[(k[21712+(((l|0)<(p|0)?l:p)<<2)>>2]|0)+(((l|0)>(p|0)?l:p)<<2)>>2]|0)+i|0;t=k[q+(m<<2)>>2]|0;p=((t|0)>-1?t:0-t|0)+p|0;if((t|0)<0){t=p+1|0;i=(k[(k[21712+(((l|0)>(p|0)?t:l)<<2)>>2]|0)+(((l|0)>(t|0)?l:t)<<2)>>2]|0)+i|0}}while((n|0)>1);t=c+1|0;qd(f,i,(k[(k[21712+(((t|0)>(b|0)?b:t)<<2)>>2]|0)+(((t|0)<(b|0)?b:t)<<2)>>2]|0)+(k[(k[21712+(((b|0)<(c|0)?b:c)<<2)>>2]|0)+(((b|0)>(c|0)?b:c)<<2)>>2]|0)|0);if(h|0){j=1.0/+X(+j)*g;i=0;do{o[a+(i<<2)>>2]=j*+(k[q+(i<<2)>>2]|0);i=i+1|0}while((i|0)<(b|0));Dd(a,b,-1,e,c,d)}if((e|0)<2){t=1;r=s;return t|0}n=(b>>>0)/(e>>>0)|0;i=0;p=0;do{l=ha(p,n)|0;f=0;m=0;do{m=k[q+(f+l<<2)>>2]|m;f=f+1|0}while((f|0)<(n|0));i=((m|0)!=0&1)<<p|i;p=p+1|0}while((p|0)!=(e|0));r=s;return i|0}function Gd(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;var h=0.0,i=0,j=0,l=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0.0,v=0.0;t=r;s=r;r=r+((1*(b<<2)|0)+15&-16)|0;q=c+1|0;f=md(f,(k[(k[21712+(((q|0)>(b|0)?b:q)<<2)>>2]|0)+(((q|0)<(b|0)?b:q)<<2)>>2]|0)+(k[(k[21712+(((b|0)<(c|0)?b:c)<<2)>>2]|0)+(((b|0)>(c|0)?b:c)<<2)>>2]|0)|0)|0;if((b|0)>2){q=s;p=b;i=c;h=0.0;while(1){do if((i|0)<(p|0)){j=k[(k[21712+(i<<2)>>2]|0)+(p<<2)>>2]|0;n=i+1|0;l=k[(k[21712+(n<<2)>>2]|0)+(p<<2)>>2]|0;if(f>>>0>=j>>>0&f>>>0<l>>>0){k[q>>2]=0;f=f-j|0;break}m=f>>>0>=l>>>0;j=f-(m?l:0)|0;while(1){l=i+-1|0;f=k[(k[21712+(l<<2)>>2]|0)+(p<<2)>>2]|0;if(j>>>0<f>>>0)i=l;else break}m=m<<31>>31;i=n+m-i^m;k[q>>2]=i<<16>>16;u=+((i&65535)<<16>>16);f=j-f|0;i=l;h=h+u*u}else{l=k[21712+(p<<2)>>2]|0;m=k[l+(i+1<<2)>>2]|0;j=f>>>0>=m>>>0;n=j<<31>>31;m=f-(j?m:0)|0;if((k[l+(p<<2)>>2]|0)>>>0>m>>>0){f=p;do{f=f+-1|0;l=k[(k[21712+(f<<2)>>2]|0)+(p<<2)>>2]|0}while(l>>>0>m>>>0);j=f;f=l}else{j=i;while(1){f=k[l+(j<<2)>>2]|0;if(f>>>0>m>>>0)j=j+-1|0;else break}}i=n+i-j^n;k[q>>2]=i<<16>>16;u=+((i&65535)<<16>>16);f=m-f|0;i=j;h=h+u*u}while(0);p=p+-1|0;if((p|0)<=2)break;else q=q+4|0}j=s+(b+-2<<2)|0}else{j=s;i=c;h=0.0}n=i<<1|1;q=f>>>0>=n>>>0;p=q<<31>>31;n=f-(q?n:0)|0;f=n+1|0;q=f>>>1;f=(ha(q,-2)|0)+f|0;f=(q|0)==0?n:f;p=p+i-q^p;k[j>>2]=p<<16>>16;v=+((p&65535)<<16>>16);f=q-f^0-f;k[j+4>>2]=f<<16>>16;u=+((f&65535)<<16>>16);h=1.0/+X(+(h+v*v+u*u))*g;f=0;do{o[a+(f<<2)>>2]=h*+(k[s+(f<<2)>>2]|0);f=f+1|0}while((f|0)<(b|0));Dd(a,b,-1,e,c,d);if((e|0)<2){e=1;r=t;return e|0}m=(b>>>0)/(e>>>0)|0;f=0;n=0;do{i=ha(n,m)|0;j=0;l=0;do{l=k[s+(j+i<<2)>>2]|l;j=j+1|0}while((j|0)<(m|0));f=((l|0)!=0&1)<<n|f;n=n+1|0}while((n|0)!=(e|0));r=t;return f|0}function Hd(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;var h=0,n=0,o=0,p=0,q=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;U=r;r=r+672|0;L=U+16|0;S=U+8|0;N=U;I=U+24|0;R=N;k[R>>2]=0;k[R+4>>2]=0;R=b+4|0;h=k[R>>2]|0;if((d|0)!=0&(h|0)>0){d=0;do{k[a+(d*4264|0)+2388>>2]=0;d=d+1|0;h=k[R>>2]|0}while((d|0)<(h|0))}T=a+8544|0;d=k[T>>2]|0;if((h|0)>(d|0)){h=a+4264|0;rf(h|0,0,4256)|0;k[a+6640>>2]=1;k[h>>2]=65536;k[a+8432>>2]=0;k[a+8412>>2]=0;k[a+8416>>2]=3176576;k[a+8436>>2]=0;k[a+8508>>2]=65536;k[a+8512>>2]=65536;k[a+8524>>2]=20;k[a+8520>>2]=2;h=k[R>>2]|0}if((h|0)==1&(d|0)==2)Q=(k[b+12>>2]|0)==((k[a+2316>>2]|0)*1e3|0);else Q=0;K=a+2388|0;a:do if((k[K>>2]|0)==0&(h|0)>0){y=b+16|0;z=b+12|0;A=b+8|0;B=0;d=0;b:while(1){switch(k[y>>2]|0){case 0:{k[a+(B*4264|0)+2392>>2]=1;k[a+(B*4264|0)+2324>>2]=2;h=2;break}case 10:{k[a+(B*4264|0)+2392>>2]=1;k[a+(B*4264|0)+2324>>2]=2;h=2;break}case 20:{k[a+(B*4264|0)+2392>>2]=1;k[a+(B*4264|0)+2324>>2]=4;h=4;break}case 40:{k[a+(B*4264|0)+2392>>2]=2;k[a+(B*4264|0)+2324>>2]=4;h=4;break}case 60:{k[a+(B*4264|0)+2392>>2]=3;k[a+(B*4264|0)+2324>>2]=4;h=4;break}default:{h=-203;P=179;break b}}v=k[z>>2]>>10;w=v+1|0;switch(v|0){case 7:case 11:case 15:break;default:{h=-200;P=179;break b}}o=k[A>>2]|0;x=w<<16>>16;k[a+(B*4264|0)+2332>>2]=x*5;s=a+(B*4264|0)+2324|0;t=ha(h,x*327680>>16)|0;u=a+(B*4264|0)+2316|0;n=a+(B*4264|0)+2320|0;if((k[u>>2]|0)==(w|0)?(k[n>>2]|0)==(o|0):0){h=0;P=19}else{h=Pd(a+(B*4264|0)+2432|0,x*1e3|0,o,0)|0;k[n>>2]=o;if((k[u>>2]|0)==(w|0))P=19;else{q=0;P=20}}if((P|0)==19){P=0;if((t|0)!=(k[a+(B*4264|0)+2328>>2]|0)){q=1;P=20}}if((P|0)==20){P=0;p=(w|0)==8;n=(k[s>>2]|0)==4;o=a+(B*4264|0)+2384|0;do if(p)if(n){k[o>>2]=34077;break}else{k[o>>2]=34100;break}else if(n){k[o>>2]=34043;break}else{k[o>>2]=34088;break}while(0);if(!q){k[a+(B*4264|0)+2336>>2]=x*20;O=(w|4|0)==12;k[a+(B*4264|0)+2340>>2]=O?10:16;k[a+(B*4264|0)+2732>>2]=O?26860:26900;switch(v|0){case 15:{k[a+(B*4264|0)+2380>>2]=33975;break}case 11:{k[a+(B*4264|0)+2380>>2]=33969;break}default:if(p)k[a+(B*4264|0)+2380>>2]=33960}k[a+(B*4264|0)+2376>>2]=1;k[a+(B*4264|0)+2308>>2]=100;i[a+(B*4264|0)+2312>>0]=10;k[a+(B*4264|0)+4164>>2]=0;rf(a+(B*4264|0)+1284|0,0,1024)|0}k[u>>2]=w;k[a+(B*4264|0)+2328>>2]=t}d=h+d|0;B=B+1|0;h=k[R>>2]|0;if((B|0)>=(h|0)){O=d;break a}}if((P|0)==179){r=U;return h|0}}else O=0;while(0);d=k[b>>2]|0;do if((d|0)==2)if((h|0)==2){if((k[a+8540>>2]|0)!=1?(k[T>>2]|0)!=1:0){h=2;break}k[a+8528>>2]=0;k[a+8536>>2]=0;wf(a+6696|0,a+2432|0,300)|0;h=k[b>>2]|0}else h=2;else h=d;while(0);k[a+8540>>2]=h;k[T>>2]=k[R>>2];J=b+8|0;if(((k[J>>2]|0)+-8e3|0)>>>0>4e4){a=-200;r=U;return a|0}M=(c|0)==1;if(!M?(k[K>>2]|0)==0:0){h=k[R>>2]|0;if((h|0)>0){y=e+28|0;z=e+32|0;A=e+20|0;B=e+40|0;C=e+24|0;D=e+4|0;x=0;do{t=a+(x*4264|0)+2392|0;w=0;while(1){u=(w|0)<(k[t>>2]|0);h=k[y>>2]|0;n=k[z>>2]|0;d=h>>>1;G=n>>>0<d>>>0;v=G&1;if(!G){n=n-d|0;k[z>>2]=n;d=h-d|0}k[y>>2]=d;if(d>>>0<8388609){q=k[D>>2]|0;s=k[A>>2]|0;h=k[C>>2]|0;p=k[B>>2]|0;while(1){s=s+8|0;k[A>>2]=s;d=d<<8;k[y>>2]=d;if(h>>>0<q>>>0){G=h+1|0;k[C>>2]=G;o=l[(k[e>>2]|0)+h>>0]|0;h=G}else o=0;k[B>>2]=o;n=((o|p<<8)>>>1&255|n<<8&2147483392)^255;k[z>>2]=n;if(d>>>0>=8388609)break;else p=o}}if(!u)break;k[a+(x*4264|0)+2404+(w<<2)>>2]=v;w=w+1|0}k[a+(x*4264|0)+2416>>2]=v;x=x+1|0;h=k[R>>2]|0}while((x|0)<(h|0));if((h|0)>0){v=0;do{h=a+(v*4264|0)+2420|0;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;do if(k[a+(v*4264|0)+2416>>2]|0){u=a+(v*4264|0)+2392|0;d=k[u>>2]|0;if((d|0)==1){k[h>>2]=1;break}h=k[21484+(d+-2<<2)>>2]|0;q=k[y>>2]|0;d=k[z>>2]|0;n=q>>>8;t=-1;while(1){o=t+1|0;p=ha(l[h+o>>0]|0,n)|0;if(d>>>0<p>>>0){t=o;q=p}else break}o=d-p|0;k[z>>2]=o;h=q-p|0;k[y>>2]=h;if(h>>>0<8388609){q=k[D>>2]|0;s=k[A>>2]|0;d=k[C>>2]|0;p=k[B>>2]|0;while(1){s=s+8|0;k[A>>2]=s;h=h<<8;k[y>>2]=h;if(d>>>0<q>>>0){G=d+1|0;k[C>>2]=G;n=l[(k[e>>2]|0)+d>>0]|0;d=G}else n=0;k[B>>2]=n;o=((n|p<<8)>>>1&255|o<<8&2147483392)^255;k[z>>2]=o;if(h>>>0>=8388609)break;else p=n}}h=t+2|0;if((k[u>>2]|0)>0){d=0;do{k[a+(v*4264|0)+2420+(d<<2)>>2]=h>>>d&1;d=d+1|0}while((d|0)<(k[u>>2]|0))}}while(0);v=v+1|0;h=k[R>>2]|0}while((v|0)<(h|0))}}if((c|0)==0?(H=a+2392|0,(k[H>>2]|0)>0):0){A=a+6684|0;B=e+28|0;C=e+32|0;D=e+20|0;E=e+40|0;F=e+24|0;G=e+4|0;d=h;h=0;z=0;do{if((d|0)>0){y=A+(z<<2)|0;x=z+-1|0;if((z|0)>0){w=0;do{v=a+(w*4264|0)|0;if(k[a+(w*4264|0)+2420+(z<<2)>>2]|0){do if((w|0)==0&(d|0)==2){Ud(e,N);if(k[y>>2]|0)break;p=k[B>>2]|0;d=k[C>>2]|0;n=p>>>8;h=-1;while(1){h=h+1|0;o=ha(l[33929+h>>0]|0,n)|0;if(d>>>0>=o>>>0)break;else p=o}q=d-o|0;k[C>>2]=q;d=p-o|0;k[B>>2]=d;if(d>>>0>=8388609)break;t=k[G>>2]|0;u=k[D>>2]|0;n=k[F>>2]|0;s=k[E>>2]|0;p=q;while(1){u=u+8|0;k[D>>2]=u;d=d<<8;k[B>>2]=d;if(n>>>0<t>>>0){q=n+1|0;k[F>>2]=q;o=l[(k[e>>2]|0)+n>>0]|0;n=q}else o=0;k[E>>2]=o;p=((o|s<<8)>>>1&255|p<<8&2147483392)^255;k[C>>2]=p;if(d>>>0>=8388609)break;else s=o}}while(0);je(v,e,z,1,(k[a+(w*4264|0)+2420+(x<<2)>>2]|0)==0?0:2);ke(e,I,i[a+(w*4264|0)+2765>>0]|0,i[a+(w*4264|0)+2766>>0]|0,k[a+(w*4264|0)+2328>>2]|0);d=k[R>>2]|0}w=w+1|0}while((w|0)<(d|0))}else{w=0;do{v=a+(w*4264|0)|0;if(k[a+(w*4264|0)+2420+(z<<2)>>2]|0){do if((w|0)==0&(d|0)==2){Ud(e,N);if(k[y>>2]|0)break;p=k[B>>2]|0;d=k[C>>2]|0;n=p>>>8;h=-1;while(1){h=h+1|0;o=ha(l[33929+h>>0]|0,n)|0;if(d>>>0>=o>>>0)break;else p=o}q=d-o|0;k[C>>2]=q;d=p-o|0;k[B>>2]=d;if(d>>>0>=8388609)break;t=k[G>>2]|0;u=k[D>>2]|0;n=k[F>>2]|0;s=k[E>>2]|0;p=q;while(1){u=u+8|0;k[D>>2]=u;d=d<<8;k[B>>2]=d;if(n>>>0<t>>>0){x=n+1|0;k[F>>2]=x;o=l[(k[e>>2]|0)+n>>0]|0;n=x}else o=0;k[E>>2]=o;p=((o|s<<8)>>>1&255|p<<8&2147483392)^255;k[C>>2]=p;if(d>>>0>=8388609)break;else s=o}}while(0);je(v,e,z,1,0);ke(e,I,i[a+(w*4264|0)+2765>>0]|0,i[a+(w*4264|0)+2766>>0]|0,k[a+(w*4264|0)+2328>>2]|0);d=k[R>>2]|0}w=w+1|0}while((w|0)<(d|0))}}z=z+1|0}while((z|0)<(k[H>>2]|0))}else h=0}else h=0;c:do if((k[R>>2]|0)==2){switch(c|0){case 0:{Ud(e,N);if(k[a+6668+(k[K>>2]<<2)>>2]|0){z=0;break c}break}case 2:{if((k[a+2420+(k[K>>2]<<2)>>2]|0)==1){Ud(e,N);if(k[a+6684+(k[K>>2]<<2)>>2]|0){z=0;break c}}else P=103;break}default:P=103}if((P|0)==103){k[N>>2]=j[a+8528>>1];k[N+4>>2]=j[a+8530>>1];z=h;break}x=e+28|0;o=k[x>>2]|0;y=e+32|0;h=k[y>>2]|0;d=o>>>8;z=-1;while(1){z=z+1|0;n=ha(l[33929+z>>0]|0,d)|0;if(h>>>0>=n>>>0)break;else o=n}p=h-n|0;k[y>>2]=p;h=o-n|0;k[x>>2]=h;if(h>>>0<8388609){t=e+20|0;u=e+40|0;v=e+24|0;s=k[e+4>>2]|0;w=k[t>>2]|0;d=k[v>>2]|0;q=k[u>>2]|0;o=p;while(1){w=w+8|0;k[t>>2]=w;h=h<<8;k[x>>2]=h;if(d>>>0<s>>>0){I=d+1|0;k[v>>2]=I;n=l[(k[e>>2]|0)+d>>0]|0;d=I}else n=0;k[u>>2]=n;o=((n|q<<8)>>>1&255|o<<8&2147483392)^255;k[y>>2]=o;if(h>>>0>=8388609)break;else q=n}}}else z=h;while(0);h=k[R>>2]|0;d=(z|0)==0;if(d&(h|0)==2)if((k[a+8548>>2]|0)==1){rf(a+5548|0,0,1024)|0;k[a+6572>>2]=100;i[a+6576>>0]=10;k[a+8428>>2]=0;k[a+6640>>2]=1;h=k[R>>2]|0}else h=2;C=ha(h,k[b+12>>2]|0)|0;C=(C|0)<(ha(k[b>>2]|0,k[J>>2]|0)|0);if(C){E=Pa()|0;k[S>>2]=f;n=f;h=f+(k[a+2328>>2]<<1)|0;D=S}else{D=a+2328|0;n=ha((k[D>>2]|0)+2|0,h)|0;E=Pa()|0;h=r;r=r+((1*(n<<1)|0)+15&-16)|0;k[S>>2]=h;n=h;h=h+(k[D>>2]<<1)|0;D=S}B=S+4|0;k[B>>2]=h+4;if(c)if(k[a+8548>>2]|0){d=k[R>>2]|0;if((c|0)==2&(d|0)==2){h=(k[a+6684+(k[a+6652>>2]<<2)>>2]|0)==1;P=124}else h=0}else{h=1;P=124}else{h=d;P=124}if((P|0)==124)d=k[R>>2]|0;do if((d|0)>0){p=(c|0)==2;o=a+8548|0;d:do if(h){d=0;do{h=(k[K>>2]|0)-d|0;do if((h|0)<1)h=0;else{if(p){h=k[a+(d*4264|0)+2420+(h+-1<<2)>>2]|0?2:0;break}if((d|0)>0?k[o>>2]|0:0){h=1;break}h=2}while(0);ie(a+(d*4264|0)|0,e,(k[S+(d<<2)>>2]|0)+4|0,L,c,h);h=a+(d*4264|0)+2388|0;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0;h=k[R>>2]|0}while((d|0)<(h|0))}else{n=n+4|0;if(p)d=0;else{d=0;while(1){if(!d)ie(a,e,n,L,c,(k[K>>2]|0)>0?2:0);else rf((k[S+(d<<2)>>2]|0)+4|0,0,k[L>>2]<<1|0)|0;h=a+(d*4264|0)+2388|0;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0;h=k[R>>2]|0;if((d|0)>=(h|0))break d}}do{if(!d){h=k[K>>2]|0;if((h|0)<1)h=0;else h=k[a+2420+(h+-1<<2)>>2]|0?2:0;ie(a,e,n,L,2,h)}else rf((k[S+(d<<2)>>2]|0)+4|0,0,k[L>>2]<<1|0)|0;h=a+(d*4264|0)+2388|0;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0;h=k[R>>2]|0}while((d|0)<(h|0))}while(0);if(!((h|0)==2&(k[b>>2]|0)==2)){n=k[S>>2]|0;P=154;break}w=a+8528|0;n=k[D>>2]|0;x=k[B>>2]|0;y=a+2316|0;e=k[y>>2]|0;A=k[L>>2]|0;u=a+8532|0;o=m[u>>1]|m[u+2>>1]<<16;j[n>>1]=o;j[n+2>>1]=o>>>16;o=a+8536|0;d=m[o>>1]|m[o+2>>1]<<16;j[x>>1]=d;j[x+2>>1]=d>>>16;d=n+(A<<1)|0;d=m[d>>1]|m[d+2>>1]<<16;j[u>>1]=d;j[u+2>>1]=d>>>16;u=x+(A<<1)|0;u=m[u>>1]|m[u+2>>1]<<16;j[o>>1]=u;j[o+2>>1]=u>>>16;o=j[w>>1]|0;u=a+8530|0;d=j[u>>1]|0;h=e<<3;v=k[N>>2]|0;p=(65536/(h|0)|0)<<16>>16;s=((ha(v-o<<16>>16,p)|0)>>15)+1>>1;t=k[N+4>>2]|0;p=((ha(t-d<<16>>16,p)|0)>>15)+1>>1;if((e|0)>0){q=0;do{o=o+s|0;d=d+p|0;e=q;q=q+1|0;K=j[n+(q<<1)>>1]|0;e=(j[n+(e+2<<1)>>1]|0)+(j[n+(e<<1)>>1]|0)+(K<<1)|0;N=x+(q<<1)|0;L=o<<16>>16;c=d<<16>>16;L=((j[N>>1]<<8)+(ha(K>>5,c)|0)+((ha(K<<11&63488,c)|0)>>16)+(ha(e>>7,L)|0)+((ha(e<<9&65024,L)|0)>>16)>>7)+1>>1;j[N>>1]=(L|0)>32767?32767:((L|0)<-32768?-32768:L)&65535}while((q|0)<(h|0))}if((h|0)<(A|0)){d=v<<16>>16;o=t<<16>>16;do{L=h;h=h+1|0;e=j[n+(h<<1)>>1]|0;L=(j[n+(L+2<<1)>>1]|0)+(j[n+(L<<1)>>1]|0)+(e<<1)|0;N=x+(h<<1)|0;L=((j[N>>1]<<8)+(ha(e>>5,o)|0)+((ha(e<<11&63488,o)|0)>>16)+(ha(L>>7,d)|0)+((ha(L<<9&65024,d)|0)>>16)>>7)+1>>1;j[N>>1]=(L|0)>32767?32767:((L|0)<-32768?-32768:L)&65535}while((h|0)!=(A|0))}j[w>>1]=v;j[u>>1]=t;if((A|0)>0){h=0;do{h=h+1|0;e=n+(h<<1)|0;K=j[e>>1]|0;N=x+(h<<1)|0;L=j[N>>1]|0;c=L+K|0;L=K-L|0;j[e>>1]=(c|0)>32767?32767:((c|0)<-32768?-32768:c)&65535;j[N>>1]=(L|0)>32767?32767:((L|0)<-32768?-32768:L)&65535}while((h|0)!=(A|0));q=y;p=A}else{q=y;p=A}}else P=154;while(0);if((P|0)==154){q=a+8532|0;p=m[q>>1]|m[q+2>>1]<<16;j[n>>1]=p;j[n+2>>1]=p>>>16;p=k[L>>2]|0;P=n+(p<<1)|0;P=m[P>>1]|m[P+2>>1]<<16;j[q>>1]=P;j[q+2>>1]=P>>>16;q=a+2316|0}h=ha(k[J>>2]|0,p)|0;h=(h|0)/((k[q>>2]<<16>>16)*1e3|0)|0;k[g>>2]=h;d=k[b>>2]|0;if((d|0)==2){o=r;r=r+((1*(h<<1)|0)+15&-16)|0}else o=f;h=k[R>>2]|0;if(C){P=k[a+2328>>2]|0;N=P+2|0;L=(ha(N,h)|0)<<1;n=r;r=r+((1*L|0)+15&-16)|0;wf(n|0,f|0,ha(h<<1,N)|0)|0;k[D>>2]=n;k[B>>2]=n+(P<<1)+4}e:do if((((d|0)<(h|0)?d:h)|0)>0){h=n;n=0;while(1){Qd(a+(n*4264|0)+2432|0,o,h+2|0,p);d=k[b>>2]|0;if((d|0)==2)if((k[g>>2]|0)>0){h=0;do{j[f+((h<<1)+n<<1)>>1]=j[o+(h<<1)>>1]|0;h=h+1|0}while((h|0)<(k[g>>2]|0));d=k[b>>2]|0}else d=2;n=n+1|0;h=k[R>>2]|0;if((n|0)>=(((d|0)<(h|0)?d:h)|0))break e;h=k[S+(n<<2)>>2]|0}}while(0);do if((d|0)==2&(h|0)==1)if(Q){Qd(a+6696|0,o,(k[D>>2]|0)+2|0,p);if((k[g>>2]|0)>0)h=0;else break;do{j[f+((h<<1|1)<<1)>>1]=j[o+(h<<1)>>1]|0;h=h+1|0}while((h|0)<(k[g>>2]|0))}else{if((k[g>>2]|0)>0)h=0;else break;do{S=h<<1;j[f+((S|1)<<1)>>1]=j[f+(S<<1)>>1]|0;h=h+1|0}while((h|0)<(k[g>>2]|0))}while(0);if((k[a+4164>>2]|0)==2)h=ha(k[21328+((k[q>>2]|0)+-8>>2<<2)>>2]|0,k[a+2308>>2]|0)|0;else h=0;k[b+20>>2]=h;if(M){if((k[T>>2]|0)>0){h=0;do{i[a+(h*4264|0)+2312>>0]=10;h=h+1|0}while((h|0)<(k[T>>2]|0))}}else k[a+8548>>2]=z;Xa(E|0);a=O;r=U;return a|0}function Id(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;rf(a|0,0,20208)|0;k[a+5088>>2]=b;k[a+8>>2]=193536;k[a+12>>2]=193536;k[a+4660>>2]=1;d=a+32|0;e=d+96|0;do{k[d>>2]=0;d=d+4|0}while((d|0)<(e|0));k[a+124>>2]=50;k[a+128>>2]=25;k[a+132>>2]=16;k[a+136>>2]=12;k[a+92>>2]=5e3;k[a+108>>2]=429496;k[a+96>>2]=2500;k[a+112>>2]=858993;k[a+100>>2]=1600;k[a+116>>2]=1342177;k[a+104>>2]=1200;k[a+120>>2]=1789569;k[a+140>>2]=15;k[a+72>>2]=25600;k[a+76>>2]=25600;k[a+80>>2]=25600;k[a+84>>2]=25600;rf(a+10060|0,0,10060)|0;k[a+15148>>2]=b;k[a+10068>>2]=193536;k[a+10072>>2]=193536;k[a+14720>>2]=1;d=a+10092|0;e=d+96|0;do{k[d>>2]=0;d=d+4|0}while((d|0)<(e|0));k[a+10184>>2]=50;k[a+10188>>2]=25;k[a+10192>>2]=16;k[a+10196>>2]=12;k[a+10152>>2]=5e3;k[a+10168>>2]=429496;k[a+10156>>2]=2500;k[a+10172>>2]=858993;k[a+10160>>2]=1600;k[a+10176>>2]=1342177;k[a+10164>>2]=1200;k[a+10180>>2]=1789569;k[a+10200>>2]=15;k[a+10132>>2]=25600;k[a+10136>>2]=25600;k[a+10140>>2]=25600;k[a+10144>>2]=25600;k[a+20184>>2]=1;e=a+20188|0;k[e>>2]=1;k[c>>2]=1;k[c+4>>2]=k[e>>2];k[c+8>>2]=k[a+4552>>2];k[c+12>>2]=k[a+4560>>2];k[c+16>>2]=k[a+4564>>2];k[c+20>>2]=k[a+4568>>2];k[c+24>>2]=k[a+4608>>2];k[c+28>>2]=k[a+4604>>2];k[c+32>>2]=k[a+4612>>2];k[c+36>>2]=k[a+4620>>2];k[c+40>>2]=k[a+6084>>2];k[c+48>>2]=k[a+6072>>2];k[c+52>>2]=k[a+4672>>2];e=a+4572|0;k[c+72>>2]=(k[e>>2]<<16>>16)*1e3;k[c+76>>2]=k[a+4532>>2];if((k[e>>2]|0)!=16){d=0;d=d&1;e=c+80|0;k[e>>2]=d;return}d=(k[a+28>>2]|0)==0;d=d&1;e=c+80|0;k[e>>2]=d;return}function Jd(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;var h=0,n=0,o=0,p=0,q=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,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0;fb=r;r=r+16|0;db=fb;eb=fb+8|0;if(k[b+68>>2]|0){k[a+4660>>2]=1;k[a+14720>>2]=1}ab=a+10060|0;bb=a+15804|0;k[bb>>2]=0;cb=a+5744|0;k[cb>>2]=0;s=b+8|0;h=k[s>>2]|0;a:do if((h|0)<24e3){if((h|0)<12e3){switch(h|0){case 8e3:break a;default:h=-102}r=fb;return h|0}if((h|0)<16e3){switch(h|0){case 12e3:break a;default:h=-102}r=fb;return h|0}else{switch(h|0){case 16e3:break a;default:h=-102}r=fb;return h|0}}else if((h|0)<44100)if((h|0)<32e3){switch(h|0){case 24e3:break a;default:h=-102}r=fb;return h|0}else{switch(h|0){case 32e3:break a;default:h=-102}r=fb;return h|0}else if((h|0)<48e3){switch(h|0){case 44100:break a;default:h=-102}r=fb;return h|0}else{switch(h|0){case 48e3:break a;default:h=-102}r=fb;return h|0}while(0);h=k[b+20>>2]|0;b:do if((h|0)>=12e3)if((h|0)<16e3){switch(h|0){case 12e3:break b;default:h=-102}r=fb;return h|0}else{switch(h|0){case 16e3:break b;default:h=-102}r=fb;return h|0}else{switch(h|0){case 8e3:break b;default:h=-102}r=fb;return h|0}while(0);n=k[b+12>>2]|0;c:do if((n|0)>=12e3)if((n|0)<16e3){switch(n|0){case 12e3:break c;default:h=-102}r=fb;return h|0}else{switch(n|0){case 16e3:break c;default:h=-102}r=fb;return h|0}else{switch(n|0){case 8e3:break c;default:h=-102}r=fb;return h|0}while(0);o=k[b+16>>2]|0;d:do if((o|0)>=12e3)if((o|0)<16e3){switch(o|0){case 12e3:break d;default:h=-102}r=fb;return h|0}else{switch(o|0){case 16e3:break d;default:h=-102}r=fb;return h|0}else{switch(o|0){case 8e3:break d;default:h=-102}r=fb;return h|0}while(0);if((o|0)>(h|0)){a=-102;r=fb;return a|0}if((n|0)<(h|0)|(o|0)>(n|0)){a=-102;r=fb;return a|0}_a=b+24|0;switch(k[_a>>2]|0){case 60:case 40:case 20:case 10:break;default:{a=-103;r=fb;return a|0}}if((k[b+32>>2]|0)>>>0>100){a=-105;r=fb;return a|0}if((k[b+48>>2]|0)>>>0>1){a=-108;r=fb;return a|0}Ya=b+52|0;if((k[Ya>>2]|0)>>>0>1){a=-109;r=fb;return a|0}if((k[b+40>>2]|0)>>>0>1){a=-107;r=fb;return a|0}h=k[b>>2]|0;if((h+-1|0)>>>0>1){a=-111;r=fb;return a|0}$a=b+4|0;n=k[$a>>2]|0;if((n|0)>(h|0)|(n+-1|0)>>>0>1){a=-111;r=fb;return a|0}Za=b+36|0;if((k[Za>>2]|0)>>>0>10){a=-106;r=fb;return a|0}k[b+88>>2]=0;o=a+20188|0;h=k[o>>2]|0;if((n|0)>(h|0)){p=k[a+5088>>2]|0;rf(ab|0,0,10060)|0;k[a+15148>>2]=p;k[a+10068>>2]=193536;k[a+10072>>2]=193536;k[a+14720>>2]=1;p=a+10092|0;q=p+96|0;do{k[p>>2]=0;p=p+4|0}while((p|0)<(q|0));k[a+10184>>2]=50;k[a+10188>>2]=25;k[a+10192>>2]=16;k[a+10196>>2]=12;k[a+10152>>2]=5e3;k[a+10168>>2]=429496;k[a+10156>>2]=2500;k[a+10172>>2]=858993;k[a+10160>>2]=1600;k[a+10176>>2]=1342177;k[a+10164>>2]=1200;k[a+10180>>2]=1789569;k[a+10200>>2]=15;k[a+10132>>2]=25600;k[a+10136>>2]=25600;k[a+10140>>2]=25600;k[a+10144>>2]=25600;k[a+20120>>2]=0;k[a+20128>>2]=0;k[a+20132>>2]=0;k[a+20136>>2]=1;k[a+20140>>2]=0;k[a+20144>>2]=1;j[a+20150>>1]=0;j[a+20148>>1]=16384;if((k[a+20184>>2]|0)==2){wf(a+15832|0,a+5772|0,300)|0;Ua=a;Va=k[Ua+4>>2]|0;Wa=ab;k[Wa>>2]=k[Ua>>2];k[Wa+4>>2]=Va}}if((k[_a>>2]|0)==(k[a+4608>>2]|0))u=(h|0)!=(k[$a>>2]|0);else u=1;k[a+20184>>2]=k[b>>2];k[o>>2]=k[$a>>2];n=d*100|0;h=k[s>>2]|0;v=(n|0)/(h|0)|0;w=(v|0)>1?v>>1:1;Wa=(g|0)!=0;do if(!Wa){if((d|0)<0|(ha(v,h)|0)!=(n|0)){a=-101;r=fb;return a|0}if((d*1e3|0)>(ha(k[_a>>2]|0,h)|0)){a=-101;r=fb;return a|0}else{h=k[$a>>2]|0;o=0;p=0;Va=32;break}}else{if((v|0)!=1){a=-101;r=fb;return a|0}if((k[$a>>2]|0)>0)n=0;else{h=k[_a>>2]|0;k[_a>>2]=10;o=k[Za>>2]|0;k[Za>>2]=0;Va=33;break}do{p=a+(n*10060|0)+5088|0;q=k[p>>2]|0;rf(a+(n*10060|0)|0,0,10060)|0;k[p>>2]=q;k[a+(n*10060|0)+8>>2]=193536;k[a+(n*10060|0)+12>>2]=193536;k[a+(n*10060|0)+4660>>2]=1;p=a+(n*10060|0)+32|0;q=p+104|0;do{k[p>>2]=0;p=p+4|0}while((p|0)<(q|0));k[a+(n*10060|0)+124>>2]=50;k[a+(n*10060|0)+128>>2]=25;k[a+(n*10060|0)+132>>2]=16;k[a+(n*10060|0)+136>>2]=12;k[a+(n*10060|0)+92>>2]=5e3;k[a+(n*10060|0)+108>>2]=429496;k[a+(n*10060|0)+96>>2]=2500;k[a+(n*10060|0)+112>>2]=858993;k[a+(n*10060|0)+100>>2]=1600;k[a+(n*10060|0)+116>>2]=1342177;k[a+(n*10060|0)+104>>2]=1200;k[a+(n*10060|0)+120>>2]=1789569;k[a+(n*10060|0)+140>>2]=15;k[a+(n*10060|0)+72>>2]=25600;k[a+(n*10060|0)+76>>2]=25600;k[a+(n*10060|0)+80>>2]=25600;k[a+(n*10060|0)+84>>2]=25600;n=n+1|0;h=k[$a>>2]|0}while((n|0)<(h|0));p=k[_a>>2]|0;k[_a>>2]=10;o=k[Za>>2]|0;k[Za>>2]=0;if((h|0)>0)n=0;else{h=p;Va=33;break}do{k[a+(n*10060|0)+4664>>2]=0;k[a+(n*10060|0)+4676>>2]=1;n=n+1|0;h=k[$a>>2]|0}while((n|0)<(h|0));Va=32}while(0);e:do if((Va|0)==32)if((h|0)>0){t=a+4572|0;q=a+20200|0;s=a+5740|0;if(u){n=0;while(1){if((n|0)==1)h=k[t>>2]|0;else h=0;h=Nd(a+(n*10060|0)|0,b,k[q>>2]|0,n,h)|0;if(h|0)break;if((k[s>>2]|0)>0){h=0;do{k[a+(n*10060|0)+4720+(h<<2)>>2]=0;h=h+1|0}while((h|0)<(k[s>>2]|0))}k[a+(n*10060|0)+6076>>2]=k[a+(n*10060|0)+6072>>2];n=n+1|0;if((n|0)>=(k[$a>>2]|0))break e}r=fb;return h|0}else n=0;while(1){if((n|0)==1)h=k[t>>2]|0;else h=0;h=Nd(a+(n*10060|0)|0,b,k[q>>2]|0,n,h)|0;if(h|0)break;do if(k[a+(n*10060|0)+4660>>2]|0){if((k[s>>2]|0)>0)h=0;else break;do{k[a+(n*10060|0)+4720+(h<<2)>>2]=0;h=h+1|0}while((h|0)<(k[s>>2]|0))}while(0);k[a+(n*10060|0)+6076>>2]=k[a+(n*10060|0)+6072>>2];n=n+1|0;if((n|0)>=(k[$a>>2]|0))break e}r=fb;return h|0}else{h=p;Va=33}while(0);if((Va|0)==33){q=a+20200|0;s=a+5740|0;t=a+4572|0;p=h}P=v*10|0;T=k[t>>2]|0;Q=ha(T,P)|0;R=a+4552|0;T=(ha(Q,k[R>>2]|0)|0)/(T*1e3|0)|0;Ta=Pa()|0;S=r;r=r+((1*(T<<1)|0)+15&-16)|0;T=a+4580|0;U=a+5736|0;Ra=a+20192|0;V=a+15832|0;W=a+5772|0;X=a+5092|0;Y=a+14640|0;Z=a+15796|0;_=a+14632|0;$=a+15152|0;Oa=e+20|0;Qa=e+28|0;aa=a+20176|0;ba=a+20154|0;ca=a+14780|0;da=a+20172|0;ea=b+28|0;fa=a+20180|0;ga=a+20120|0;ia=a+5096|0;ka=a+15156|0;la=a+4528|0;Sa=b+60|0;ma=a+20204|0;na=a+17224|0;oa=a+10204|0;pa=a+10076|0;qa=a+14600|0;ra=a+14532|0;sa=a+14597|0;ta=a+14548|0;ua=a+14720|0;va=a+15154|0;wa=a+14588|0;xa=a+14821|0;ya=a+16140|0;za=a+16136|0;Aa=a+14776|0;Ba=a+5094|0;Ua=a+4761|0;Ca=a+6080|0;Da=a+6076|0;Ea=a+20196|0;Fa=e+24|0;Ga=e+40|0;Ha=e+44|0;Ia=e+32|0;Ja=b+56|0;Ka=(w|0)==2;La=w+-1|0;Ma=db+4|0;Na=w<<1;J=(w|0)==3;K=a+20124|0;L=a+4537|0;M=a+4540|0;N=a+4692|0;O=a+8|0;I=c;F=d;H=0;while(1){u=k[U>>2]|0;v=(k[T>>2]|0)-u|0;v=(v|0)<(Q|0)?v:Q;G=ha(v,k[R>>2]|0)|0;G=(G|0)/((k[t>>2]|0)*1e3|0)|0;f:do if((k[b>>2]|0)==2)switch(k[$a>>2]|0){case 2:{h=k[cb>>2]|0;w=(G|0)>0;if(w){n=0;do{j[S+(n<<1)>>1]=j[I+(n<<1<<1)>>1]|0;n=n+1|0}while((n|0)!=(G|0))}if((h|0)==0&(k[Ra>>2]|0)==1)wf(V|0,W|0,300)|0;Qd(W,X+(u+2<<1)|0,S,G);k[U>>2]=(k[U>>2]|0)+v;u=k[Z>>2]|0;E=(k[Y>>2]|0)-u|0;n=ha(k[_>>2]|0,P)|0;n=(E|0)<(n|0)?E:n;if(w){h=0;do{j[S+(h<<1)>>1]=j[I+((h<<1|1)<<1)>>1]|0;h=h+1|0}while((h|0)!=(G|0))}Qd(V,$+(u+2<<1)|0,S,G);k[Z>>2]=(k[Z>>2]|0)+n;h=k[U>>2]|0;break f}case 1:{if((G|0)>0){h=0;do{E=h<<1;E=(j[I+((E|1)<<1)>>1]|0)+(j[I+(E<<1)>>1]|0)|0;j[S+(h<<1)>>1]=(E>>>1)+(E&1);h=h+1|0}while((h|0)!=(G|0))}Qd(W,X+(u+2<<1)|0,S,G);do if((k[Ra>>2]|0)==2){if(k[cb>>2]|0)break;Qd(V,$+((k[Z>>2]|0)+2<<1)|0,S,G);if((k[T>>2]|0)>0)h=0;else break;do{D=h+2|0;E=X+(D+(k[U>>2]|0)<<1)|0;j[E>>1]=((j[$+(D+(k[Z>>2]|0)<<1)>>1]|0)+(j[E>>1]|0)|0)>>>1;h=h+1|0}while((h|0)<(k[T>>2]|0))}while(0);h=(k[U>>2]|0)+v|0;k[U>>2]=h;break f}default:{Va=65;break f}}else Va=65;while(0);if((Va|0)==65){Va=0;wf(S|0,I|0,G<<1|0)|0;Qd(W,X+(u+2<<1)|0,S,G);h=(k[U>>2]|0)+v|0;k[U>>2]=h}I=I+((ha(k[b>>2]|0,G)|0)<<1)|0;E=F;F=F-G|0;k[q>>2]=0;if((h|0)<(k[T>>2]|0)){h=0;break}if(!(k[cb>>2]|g)){j[eb>>1]=0;h=256-(256>>>(ha((k[s>>2]|0)+1|0,k[$a>>2]|0)|0))&255;i[eb>>0]=h;pd(e,0,eb,8);h=k[$a>>2]|0;if((h|0)>0){v=0;do{h=k[a+(v*10060|0)+5740>>2]|0;do if((h|0)>0){n=0;u=0;do{n=k[a+(v*10060|0)+4720+(u<<2)>>2]<<u|n;u=u+1|0}while((u|0)!=(h|0));i[a+(v*10060|0)+4719>>0]=(n|0)>0&1;if(!((n|0)!=0&(h|0)>1))break;pd(e,n+-1|0,k[21484+(h+-2<<2)>>2]|0,8)}else i[a+(v*10060|0)+4719>>0]=0;while(0);v=v+1|0;h=k[$a>>2]|0}while((v|0)<(h|0))}if((k[s>>2]|0)>0){C=0;do{if((h|0)>0){w=ba+(C*6|0)+2|0;c=ba+(C*6|0)+5|0;d=ba+(C*6|0)|0;x=ba+(C*6|0)+1|0;y=ba+(C*6|0)+3|0;z=ba+(C*6|0)+4|0;A=ca+(C<<2)|0;B=da+C|0;v=C+-1|0;if((C|0)>0){u=0;do{n=a+(u*10060|0)|0;if(k[a+(u*10060|0)+4720+(C<<2)>>2]|0){do if((u|0)==0&(h|0)==2){pd(e,((i[w>>0]|0)*5|0)+(i[c>>0]|0)|0,33904,8);pd(e,i[d>>0]|0,33957,8);pd(e,i[x>>0]|0,33964,8);pd(e,i[y>>0]|0,33957,8);pd(e,i[z>>0]|0,33964,8);if(k[A>>2]|0)break;pd(e,i[B>>0]|0,33929,8)}while(0);Kd(n,e,C,1,(k[a+(u*10060|0)+4720+(v<<2)>>2]|0)==0?0:2);Ld(e,i[a+(u*10060|0)+6096+(C*36|0)+29>>0]|0,i[a+(u*10060|0)+6096+(C*36|0)+30>>0]|0,a+(u*10060|0)+6204+(C*320|0)|0,k[a+(u*10060|0)+4580>>2]|0);h=k[$a>>2]|0}u=u+1|0}while((u|0)<(h|0))}else{u=0;do{n=a+(u*10060|0)|0;if(k[a+(u*10060|0)+4720+(C<<2)>>2]|0){do if((u|0)==0&(h|0)==2){pd(e,((i[w>>0]|0)*5|0)+(i[c>>0]|0)|0,33904,8);pd(e,i[d>>0]|0,33957,8);pd(e,i[x>>0]|0,33964,8);pd(e,i[y>>0]|0,33957,8);pd(e,i[z>>0]|0,33964,8);if(k[A>>2]|0)break;pd(e,i[B>>0]|0,33929,8)}while(0);Kd(n,e,C,1,0);Ld(e,i[a+(u*10060|0)+6096+(C*36|0)+29>>0]|0,i[a+(u*10060|0)+6096+(C*36|0)+30>>0]|0,a+(u*10060|0)+6204+(C*320|0)|0,k[a+(u*10060|0)+4580>>2]|0);h=k[$a>>2]|0}u=u+1|0}while((u|0)<(h|0))}}C=C+1|0}while((C|0)<(k[s>>2]|0))}if((h|0)>0){h=0;do{D=a+(h*10060|0)+4720|0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;h=h+1|0}while((h|0)<(k[$a>>2]|0))}D=(k[Oa>>2]|0)+-32+(ja(k[Qa>>2]|0)|0)|0;k[aa>>2]=D}if((i[L>>0]|0)==2){h=ha(k[t>>2]|0,65536e3)|0;h=(h|0)/(k[M>>2]|0)|0;v=ja(h|0)|0;n=24-v|0;u=0-n|0;do if(n)if((n|0)<0){h=h>>>(n+32|0)|h<<u;break}else{h=h<<32-n|h>>>n;break}while(0);C=h&127;C=((ha(C*179|0,128-C|0)|0)>>>16)+(C|31-v<<7)|0;h=k[N>>2]|0;n=0-h<<2;h=h<<16>>16;h=((ha(n&65532,h)|0)>>16)+(ha(n>>16,h)|0)|0;n=(C<<16)+-183762944>>16;D=ha(n,h>>16)|0;h=(ha(n,h&65535)|0)>>16;n=k[O>>2]|0;h=-2048-(n>>8)+C+D+h|0;h=(h|0)<0?h*3|0:h;if((h|0)>51)h=51;else h=((h|0)<-51?-51:h)<<16>>16;D=ha(k[la>>2]<<16>>16,h)|0;D=((D>>16)*6554|0)+n+(((D&65535)*6554|0)>>>16)|0;k[O>>2]=(D|0)>217856?217856:(D|0)<193536?193536:D}v=k[ea>>2]|0;n=k[_a>>2]|0;h=(ha(n,v)|0)/1e3|0;if(!Wa)h=h-(k[aa>>2]|0)|0;u=(h|0)/(k[s>>2]|0)|0;h=ha((n|0)==10?100:50,u<<16>>16)|0;h=h-(k[fa>>2]<<1)|0;do if(!Wa){n=k[cb>>2]|0;if((n|0)<=0)break;D=ja(k[Qa>>2]|0)|0;h=h-(-32-(ha(n,u)|0)+(k[Oa>>2]|0)+D-(k[aa>>2]|0)<<1)|0}while(0);do if((v|0)>5e3){if((h|0)>(v|0))break;v=(h|0)<5e3?5e3:h}else{if((h|0)>5e3){v=5e3;break}v=(h|0)<(v|0)?v:h}while(0);do if((k[$a>>2]|0)==2){h=k[cb>>2]|0;Md(ga,ia,ka,ba+(h*6|0)|0,da+h|0,db,v,k[la>>2]|0,k[Sa>>2]|0,k[t>>2]|0,k[T>>2]|0);h=k[cb>>2]|0;do if(!(i[da+h>>0]|0)){if((k[ma>>2]|0)==1){k[na>>2]=0;k[na+4>>2]=0;k[na+8>>2]=0;D=pa;k[D>>2]=0;k[D+4>>2]=0;rf(oa|0,0,4384)|0;k[qa>>2]=100;k[ra>>2]=100;i[na>>0]=10;i[sa>>0]=0;k[ta>>2]=65536;k[ua>>2]=1}te(ab,va);if((k[wa>>2]|0)>=13){k[ya>>2]=0;k[za>>2]=0;i[xa>>0]=1;i[(k[bb>>2]|0)+(ab+4716)>>0]=1;break}i[xa>>0]=0;h=k[ya>>2]|0;D=h+1|0;k[ya>>2]=D;do if((D|0)<10)k[za>>2]=0;else{if((h|0)<=29)break;k[ya>>2]=10;k[za>>2]=0}while(0);i[(k[bb>>2]|0)+(ab+4716)>>0]=0}else i[Aa+h>>0]=0;while(0);if(Wa)break;h=k[cb>>2]|0;pd(e,((i[ba+(h*6|0)+2>>0]|0)*5|0)+(i[ba+(h*6|0)+5>>0]|0)|0,33904,8);pd(e,i[ba+(h*6|0)>>0]|0,33957,8);pd(e,i[ba+(h*6|0)+1>>0]|0,33964,8);pd(e,i[ba+(h*6|0)+3>>0]|0,33957,8);pd(e,i[ba+(h*6|0)+4>>0]|0,33964,8);h=k[cb>>2]|0;if(i[Aa+h>>0]|0)break;pd(e,i[da+h>>0]|0,33929,8)}else{k[X>>2]=k[K>>2];D=X+(k[T>>2]<<1)|0;D=m[D>>1]|m[D+2>>1]<<16;j[K>>1]=D;j[K+2>>1]=D>>>16}while(0);te(a,Ba);if((k[la>>2]|0)<13){i[Ua>>0]=0;h=k[Ca>>2]|0;D=h+1|0;k[Ca>>2]=D;do if((D|0)<10)k[Da>>2]=0;else{if((h|0)<=29)break;k[Ca>>2]=10;k[Da>>2]=0}while(0);i[(k[cb>>2]|0)+(a+4716)>>0]=0}else{k[Ca>>2]=0;k[Da>>2]=0;i[Ua>>0]=1;i[(k[cb>>2]|0)+(a+4716)>>0]=1}h=k[$a>>2]|0;if((h|0)>0){A=(H|0)==0;D=Ka&A;B=(H|0)==(La|0);C=(H|0)==1;z=(k[Ma>>2]|0)<1;y=0;do{n=k[Ja>>2]|0;do if(D)u=(n*3|0)/5|0;else{if(!J){u=n;break}if(A){u=(n<<1|0)/5|0;break}if(!C){u=n;break}u=(n*3|0)/4|0}while(0);w=B&(k[Ya>>2]|0)!=0&1;do if((h|0)==1)h=v;else{h=k[db+(y<<2)>>2]|0;if((y|0)!=0|z)break;u=u-((n|0)/(Na|0)|0)|0;w=0}while(0);if((h|0)>0){x=a+(y*10060|0)|0;n=(h|0)>8e4?8e4:(h|0)<5e3?5e3:h;h=a+(y*10060|0)+4604|0;g:do if((n|0)!=(k[h>>2]|0)){k[h>>2]=n;d=k[a+(y*10060|0)+4572>>2]|0;d=(d|0)==8?21388:(d|0)==12?21420:21452;c=(k[a+(y*10060|0)+4576>>2]|0)==2?n+-2200|0:n;h=k[d+4>>2]|0;do if((c|0)>(h|0)){h=k[d+8>>2]|0;if((c|0)<=(h|0)){n=2;break}h=k[d+12>>2]|0;if((c|0)<=(h|0)){n=3;break}h=k[d+16>>2]|0;if((c|0)<=(h|0)){n=4;break}h=k[d+20>>2]|0;if((c|0)<=(h|0)){n=5;break}h=k[d+24>>2]|0;if((c|0)<=(h|0)){n=6;break}h=k[d+28>>2]|0;if((c|0)>(h|0))break g;else n=7}else n=1;while(0);hb=n+-1|0;gb=k[d+(hb<<2)>>2]|0;d=j[29320+(hb<<1)>>1]|0;d=(ha((j[29320+(n<<1)>>1]|0)-d|0,(c-gb<<6|0)/(h-gb|0)|0)|0)+(d<<6)|0;k[a+(y*10060|0)+4712>>2]=d}while(0);do if((k[cb>>2]|0)>(y|0)){if((y|0)>0?k[ma>>2]|0:0){h=1;break}h=2}else h=0;while(0);Xd(x,f,e,h,u,w)}k[a+(y*10060|0)+4664>>2]=0;k[a+(y*10060|0)+5736>>2]=0;h=a+(y*10060|0)+5744|0;k[h>>2]=(k[h>>2]|0)+1;y=y+1|0;h=k[$a>>2]|0}while((y|0)<(h|0))}w=k[cb>>2]|0;k[ma>>2]=i[da+(w+-1)>>0];do if((k[f>>2]|0)>0){if((w|0)!=(k[s>>2]|0))break;c=k[$a>>2]|0;if((c|0)>0){h=0;v=0;do{u=k[a+(v*10060|0)+5740>>2]|0;h=h<<1;if((u|0)>0){n=0;do{h=(i[a+(v*10060|0)+4716+n>>0]|h)<<1;n=n+1|0}while((n|0)!=(u|0))}h=i[a+(v*10060|0)+4719>>0]|h;v=v+1|0}while((v|0)!=(c|0))}else h=0;do if(!Wa){n=ha(w+1|0,c)|0;u=8-n|0;v=(1<<n)+-1<<u;if(k[Fa>>2]|0){hb=k[e>>2]|0;i[hb>>0]=l[hb>>0]&(v^255)|h<<u;break}w=k[Ga>>2]|0;if((w|0)>-1){k[Ga>>2]=w&~v|h<<u;break}if((k[Qa>>2]|0)>>>0>-2147483648>>>n>>>0){k[Ha>>2]=-1;break}else{k[Ia>>2]=k[Ia>>2]&~(v<<23)|h<<u+23;break}}while(0);do if(k[Da>>2]|0){if((k[$a>>2]|0)!=1?(k[za>>2]|0)==0:0)break;k[f>>2]=0}while(0);h=(k[fa>>2]|0)+(k[f>>2]<<3)|0;k[fa>>2]=h;h=h-((ha(k[_a>>2]|0,k[ea>>2]|0)|0)/1e3|0)|0;k[fa>>2]=(h|0)>1e4?1e4:(h|0)<0?0:h;h=k[Ea>>2]|0;if((k[la>>2]|0)<(((h<<16>>16)*3188>>16)+13|0)){k[q>>2]=1;k[Ea>>2]=0;break}else{k[q>>2]=0;k[Ea>>2]=h+(k[_a>>2]|0);break}}while(0);if((E|0)==(G|0)){Va=185;break}else H=H+1|0}if((Va|0)==185)h=k[q>>2]|0;k[Ra>>2]=k[$a>>2];k[b+76>>2]=h;if((k[t>>2]|0)==16)h=(k[a+28>>2]|0)==0;else h=0;k[b+80>>2]=h&1;k[b+72>>2]=(k[t>>2]<<16>>16)*1e3;if(!(k[Sa>>2]|0))h=j[a+20148>>1]|0;else h=0;k[b+84>>2]=h;do if(Wa){k[_a>>2]=p;k[Za>>2]=o;if((k[$a>>2]|0)>0)h=0;else break;do{k[a+(h*10060|0)+4664>>2]=0;k[a+(h*10060|0)+4676>>2]=0;h=h+1|0}while((h|0)<(k[$a>>2]|0))}while(0);k[b+92>>2]=i[Ua>>0];k[b+96>>2]=j[29368+(i[Ua>>0]>>1<<2)+(i[a+4762>>0]<<1)>>1];Xa(Ta|0);hb=0;r=fb;return hb|0}function Kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0;x=r;r=r+32|0;u=x;t=(d|0)!=0;w=t?a+6096+(c*36|0)|0:a+4732|0;v=w+29|0;c=(i[v>>0]<<1)+(i[w+30>>0]|0)|0;if(t|(c|0)>1)pd(b,c+-2|0,33946,8);else pd(b,c,33950,8);q=(e|0)==2;c=i[w>>0]|0;if(q)pd(b,c,33409,8);else{pd(b,c>>3,33385+(i[v>>0]<<3)|0,8);pd(b,l[w>>0]&7,33975,8)}t=a+4576|0;if((k[t>>2]|0)>1){c=1;do{pd(b,i[w+c>>0]|0,33409,8);c=c+1|0}while((c|0)<(k[t>>2]|0))}d=w+8|0;p=a+4688|0;c=k[p>>2]|0;h=ha(j[c>>1]|0,i[v>>0]>>1)|0;pd(b,i[d>>0]|0,(k[c+16>>2]|0)+h|0,8);h=k[p>>2]|0;c=j[h+2>>1]|0;if(c<<16>>16>0){g=c<<16>>16;c=(k[h+24>>2]|0)+((ha(i[d>>0]|0,g)|0)/2|0)|0;d=0;while(1){o=i[c>>0]|0;j[u+(d<<1)>>1]=((o&255)>>>1&7)*9;j[u+((d|1)<<1)>>1]=((o&255)>>>5&255)*9;d=d+2|0;if((d|0)>=(g|0)){o=0;break}else c=c+1|0}do{c=o;o=o+1|0;g=w+8+o|0;m=i[g>>0]|0;n=m<<24>>24;do if(m<<24>>24<=3){d=j[u+(c<<1)>>1]|0;c=k[h+28>>2]|0;if(m<<24>>24<-3){pd(b,0,c+(d<<16>>16)|0,8);pd(b,-4-(i[g>>0]|0)|0,33983,8);break}else{pd(b,n+4|0,c+(d<<16>>16)|0,8);break}}else{pd(b,8,(k[h+28>>2]|0)+(j[u+(c<<1)>>1]|0)|0,8);pd(b,(i[g>>0]|0)+-4|0,33983,8)}while(0);h=k[p>>2]|0}while((o|0)<(j[h+2>>1]|0))}if((k[t>>2]|0)==4)pd(b,i[w+31>>0]|0,33952,8);if((i[v>>0]|0)!=2){e=i[v>>0]|0;e=e<<24>>24;a=a+5764|0;k[a>>2]=e;a=w+34|0;a=i[a>>0]|0;a=a<<24>>24;pd(b,a,33960,8);r=x;return}if((q?(k[a+5764>>2]|0)==2:0)?(f=w+26|0,s=a+5768|0,q=(j[f>>1]|0)-(j[s>>1]|0)|0,u=(q+8|0)>>>0>19,pd(b,u?0:q+9|0,34022,8),!u):0)c=s;else{f=w+26|0;s=j[f>>1]|0;c=k[a+4572>>2]>>1;u=(s|0)/(c|0)|0;c=s-(ha(u<<16>>16,c<<16>>16)|0)|0;pd(b,u,33990,8);pd(b,c,k[a+4680>>2]|0,8);c=a+5768|0}j[c>>1]=j[f>>1]|0;pd(b,i[w+28>>0]|0,k[a+4684>>2]|0,8);f=w+32|0;pd(b,i[f>>0]|0,33450,8);if((k[t>>2]|0)>0){c=0;do{pd(b,i[w+4+c>>0]|0,k[21340+(i[f>>0]<<2)>>2]|0,8);c=c+1|0}while((c|0)<(k[t>>2]|0))}if(e|0){e=i[v>>0]|0;e=e<<24>>24;a=a+5764|0;k[a>>2]=e;a=w+34|0;a=i[a>>0]|0;a=a<<24>>24;pd(b,a,33960,8);r=x;return}pd(b,i[w+33>>0]|0,33943,8);e=i[v>>0]|0;e=e<<24>>24;a=a+5764|0;k[a>>2]=e;a=w+34|0;a=i[a>>0]|0;a=a<<24>>24;pd(b,a,33960,8);r=x;return}function Ld(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=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;W=r;r=r+48|0;V=W+32|0;S=W;k[S>>2]=0;k[S+4>>2]=0;k[S+8>>2]=0;k[S+12>>2]=0;k[S+16>>2]=0;k[S+20>>2]=0;k[S+24>>2]=0;k[S+28>>2]=0;f=e>>4;if((f<<4|0)<(e|0)){f=f+1|0;g=d+e|0;h=g+16|0;do{i[g>>0]=0;g=g+1|0}while((g|0)<(h|0))}g=f<<4;T=r;r=r+((1*(g<<2)|0)+15&-16)|0;if((f|0)>0){h=0;do{P=i[d+h>>0]|0;U=P<<24>>24;k[T+(h<<2)>>2]=P<<24>>24>0?U:0-U|0;U=h|1;P=i[d+U>>0]|0;Q=P<<24>>24;k[T+(U<<2)>>2]=P<<24>>24>0?Q:0-Q|0;U=h|2;Q=i[d+U>>0]|0;P=Q<<24>>24;k[T+(U<<2)>>2]=Q<<24>>24>0?P:0-P|0;U=h|3;P=i[d+U>>0]|0;Q=P<<24>>24;k[T+(U<<2)>>2]=P<<24>>24>0?Q:0-Q|0;h=h+4|0}while((h|0)<(g|0));n=r;r=r+((1*(f<<2)|0)+15&-16)|0;U=r;r=r+((1*(f<<2)|0)+15&-16)|0;C=S+4|0;D=S+8|0;E=S+12|0;F=S+16|0;G=S+20|0;H=S+24|0;I=S+28|0;P=T;Q=0;while(1){J=U+(Q<<2)|0;k[J>>2]=0;K=n+(Q<<2)|0;L=P+4|0;M=P+8|0;N=P+12|0;O=P+16|0;q=P+20|0;s=P+24|0;t=P+28|0;u=P+32|0;v=P+36|0;w=P+40|0;x=P+44|0;y=P+48|0;z=P+52|0;A=P+56|0;B=P+60|0;g=0;while(1){h=g<<1;h=(k[P+((h|1)<<2)>>2]|0)+(k[P+(h<<2)>>2]|0)|0;if((h|0)<=8){k[S+(g<<2)>>2]=h;g=g+1|0;if((g|0)<8)continue;else p=0}else p=1;h=k[S>>2]|0;g=k[C>>2]|0;j=g+h|0;if((j|0)<=10){k[S>>2]=j;m=(k[E>>2]|0)+(k[D>>2]|0)|0;if((m|0)<=10){k[C>>2]=m;g=(k[G>>2]|0)+(k[F>>2]|0)|0;if((g|0)<=10?(k[D>>2]=g,R=(k[I>>2]|0)+(k[H>>2]|0)|0,(R|0)<=10):0){k[E>>2]=R;o=0;h=j;g=m}else{o=1;h=j;g=m}}else{o=1;h=j}}else o=1;p=o+p|0;j=g+h|0;if((j|0)<=12){k[S>>2]=j;m=(k[E>>2]|0)+(k[D>>2]|0)|0;if((m|0)>12){o=1;h=j}else{k[C>>2]=m;o=0;h=j;g=m}}else o=1;g=g+h|0;if((g|0)>16)g=1;else{k[K>>2]=g;g=0}if((p+o|0)==(0-g|0))break;k[J>>2]=(k[J>>2]|0)+1;k[P>>2]=k[P>>2]>>1;k[L>>2]=k[L>>2]>>1;k[M>>2]=k[M>>2]>>1;k[N>>2]=k[N>>2]>>1;k[O>>2]=k[O>>2]>>1;k[q>>2]=k[q>>2]>>1;k[s>>2]=k[s>>2]>>1;k[t>>2]=k[t>>2]>>1;k[u>>2]=k[u>>2]>>1;k[v>>2]=k[v>>2]>>1;k[w>>2]=k[w>>2]>>1;k[x>>2]=k[x>>2]>>1;k[y>>2]=k[y>>2]>>1;k[z>>2]=k[z>>2]>>1;k[A>>2]=k[A>>2]>>1;k[B>>2]=k[B>>2]>>1;g=0}Q=Q+1|0;if((Q|0)==(f|0))break;else P=P+64|0}m=b>>1;o=0;p=0;q=2147483647;while(1){h=34283+(p*18|0)+17|0;j=0;s=l[34463+(m*9|0)+p>>0]|0;do{if((k[U+(j<<2)>>2]|0)>0)g=h;else g=(k[n+(j<<2)>>2]|0)+(34283+(p*18|0))|0;s=(l[g>>0]|0)+s|0;j=j+1|0}while((j|0)!=(f|0));g=(s|0)<(q|0);o=g?p:o;p=p+1|0;if((p|0)==9)break;else q=g?s:q}pd(a,o,34445+(m*9|0)|0,8);j=34103+(o*18|0)|0;m=0;do{g=k[U+(m<<2)>>2]|0;if(!g)pd(a,k[n+(m<<2)>>2]|0,j,8);else{pd(a,17,j,8);if((g|0)>1){g=g+-1|0;h=0;do{pd(a,17,34265,8);h=h+1|0}while((h|0)!=(g|0))}pd(a,k[n+(m<<2)>>2]|0,34265,8)}m=m+1|0}while((m|0)!=(f|0));I=0;do{do if((k[n+(I<<2)>>2]|0)>0){A=T+(I<<4<<2)|0;g=k[A>>2]|0;h=(k[A+4>>2]|0)+g|0;j=k[A+8>>2]|0;m=(k[A+12>>2]|0)+j|0;o=k[A+16>>2]|0;p=(k[A+20>>2]|0)+o|0;q=k[A+24>>2]|0;s=(k[A+28>>2]|0)+q|0;t=k[A+32>>2]|0;u=(k[A+36>>2]|0)+t|0;v=k[A+40>>2]|0;w=(k[A+44>>2]|0)+v|0;x=k[A+48>>2]|0;y=(k[A+52>>2]|0)+x|0;z=k[A+56>>2]|0;A=(k[A+60>>2]|0)+z|0;B=m+h|0;C=s+p|0;D=w+u|0;E=A+y|0;F=C+B|0;G=E+D|0;H=G+F|0;if((H|0)>0)pd(a,F,34937+(l[35089+H>>0]|0)|0,8);if((F|0)>0)pd(a,B,34785+(l[35089+F>>0]|0)|0,8);if((B|0)>0)pd(a,h,34633+(l[35089+B>>0]|0)|0,8);if((h|0)>0)pd(a,g,34481+(l[35089+h>>0]|0)|0,8);if((m|0)>0)pd(a,j,34481+(l[35089+m>>0]|0)|0,8);if((C|0)>0)pd(a,p,34633+(l[35089+C>>0]|0)|0,8);if((p|0)>0)pd(a,o,34481+(l[35089+p>>0]|0)|0,8);if((s|0)>0)pd(a,q,34481+(l[35089+s>>0]|0)|0,8);if((G|0)>0)pd(a,D,34785+(l[35089+G>>0]|0)|0,8);if((D|0)>0)pd(a,u,34633+(l[35089+D>>0]|0)|0,8);if((u|0)>0)pd(a,t,34481+(l[35089+u>>0]|0)|0,8);if((w|0)>0)pd(a,v,34481+(l[35089+w>>0]|0)|0,8);if((E|0)>0)pd(a,y,34633+(l[35089+E>>0]|0)|0,8);if((y|0)>0)pd(a,x,34481+(l[35089+y>>0]|0)|0,8);if((A|0)<=0)break;pd(a,z,34481+(l[35089+A>>0]|0)|0,8)}while(0);I=I+1|0}while((I|0)!=(f|0));p=0;do{g=k[U+(p<<2)>>2]|0;a:do if((g|0)>0){o=d+(p<<4)|0;if((g|0)>1)m=0;else{g=0;while(1){S=i[o+g>>0]|0;T=S<<24>>24;pd(a,(S<<24>>24>0?T:0-T|0)&1,33941,8);g=g+1|0;if((g|0)==16)break a}}do{j=i[o+m>>0]|0;h=j<<24>>24;h=(j<<24>>24>0?h:0-h|0)<<24>>24;j=g;do{j=j+-1|0;pd(a,h>>>j&1,33941,8)}while((j|0)>1);pd(a,h&1,33941,8);m=m+1|0}while((m|0)!=16)}while(0);p=p+1|0}while((p|0)!=(f|0))}else{n=r;r=r+((1*(f<<2)|0)+15&-16)|0;U=b>>1;M=i[34463+(U*9|0)>>0]|0;L=i[34463+(U*9|0)+1>>0]|0;T=(L&255)<(M&255);M=T?L:M;L=i[34463+(U*9|0)+2>>0]|0;S=(L&255)<(M&255);M=S?L:M;L=i[34463+(U*9|0)+3>>0]|0;R=(L&255)<(M&255);M=R?L:M;L=i[34463+(U*9|0)+4>>0]|0;Q=(L&255)<(M&255);M=Q?L:M;L=i[34463+(U*9|0)+5>>0]|0;P=(L&255)<(M&255);M=P?L:M;L=i[34463+(U*9|0)+6>>0]|0;O=(L&255)<(M&255);M=O?L:M;L=i[34463+(U*9|0)+7>>0]|0;N=(L&255)<(M&255);pd(a,(l[34463+(U*9|0)+8>>0]|0)<((N?L:M)&255)?8:N?7:O?6:P?5:Q?4:R?3:S?2:T&1,34445+(U*9|0)|0,8)}i[V+1>>0]=0;m=35106+(((b<<1)+c<<16>>16)*7|0)|0;h=e+8>>4;if((h|0)>0)j=0;else{r=W;return}while(1){f=k[n+(j<<2)>>2]|0;if((f|0)>0){g=f&31;i[V>>0]=i[m+(g>>>0<6?g:6)>>0]|0;g=0;do{f=i[d+g>>0]|0;if(f<<24>>24)pd(a,(f<<24>>24>>15)+1|0,V,8);g=g+1|0}while((g|0)!=16)}j=j+1|0;if((j|0)==(h|0))break;else d=d+16|0}r=W;return}function Md(a,b,c,d,e,f,g,h,l,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;l=l|0;n=n|0;o=o|0;var p=0,q=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;G=r;r=r+16|0;D=G+8|0;z=G+4|0;y=G;E=b+-4|0;p=o+2|0;F=r;r=r+((1*(p<<1)|0)+15&-16)|0;if((o|0)>-2){q=0;do{B=q+-2|0;x=j[b+(B<<1)>>1]|0;B=j[c+(B<<1)>>1]|0;A=B+x|0;B=x-B|0;j[E+(q<<1)>>1]=(A>>>1)+(A&1);B=(B>>1)+(B&1)|0;j[F+(q<<1)>>1]=(B|0)>32767?32767:((B|0)<-32768?-32768:B)&65535;q=q+1|0}while((q|0)<(p|0))}x=a+4|0;v=m[x>>1]|m[x+2>>1]<<16;j[E>>1]=v;j[E+2>>1]=v>>>16;v=a+8|0;w=m[v>>1]|m[v+2>>1]<<16;k[F>>2]=w;t=E+(o<<1)|0;t=m[t>>1]|m[t+2>>1]<<16;j[x>>1]=t;j[x+2>>1]=t>>>16;x=F+(o<<1)|0;x=m[x>>1]|m[x+2>>1]<<16;j[v>>1]=x;j[v+2>>1]=x>>>16;v=r;r=r+((1*(o<<1)|0)+15&-16)|0;x=r;r=r+((1*(o<<1)|0)+15&-16)|0;t=w&65535;w=w>>>16&65535;if((o|0)>0){s=j[E>>1]|0;q=j[b+-2>>1]|0;b=0;while(1){p=j[E+(b+2<<1)>>1]|0;B=((p<<16>>16)+(s<<16>>16)+(q<<16>>16<<1)>>1)+1>>1;j[v+(b<<1)>>1]=B;j[x+(b<<1)>>1]=(q&65535)-B;b=b+1|0;if((b|0)==(o|0))break;else{s=q;q=p}}p=r;r=r+((1*(o<<1)|0)+15&-16)|0;q=r;r=r+((1*(o<<1)|0)+15&-16)|0;b=t;t=w;u=0;while(1){s=j[F+(u+2<<1)>>1]|0;B=((s<<16>>16)+(b<<16>>16)+(t<<16>>16<<1)>>1)+1>>1;j[p+(u<<1)>>1]=B;j[q+(u<<1)>>1]=(t&65535)-B;u=u+1|0;if((u|0)==(o|0))break;else{b=t;t=s}}}else{p=r;r=r+((1*(o<<1)|0)+15&-16)|0;q=r;r=r+((1*(o<<1)|0)+15&-16)|0}u=(n*10|0)==(o|0);h=h<<16>>16;h=ha(h,h)|0;A=u?328:655;h=((ha(A,h&65535)|0)>>>16)+(ha(A,h>>>16)|0)|0;A=Vd(z,v,p,a+12|0,o,h)|0;k[D>>2]=A;x=Vd(y,x,q,a+20|0,o,h)|0;B=D+4|0;k[B>>2]=x;v=((k[z>>2]<<16>>16)*3|0)+(k[y>>2]|0)|0;v=(v|0)<65536?v:65536;y=g-(u?1200:600)|0;y=(y|0)<1?1:y;u=((n<<16>>16)*900|0)+2e3|0;t=v*3|0;z=t+851968|0;g=ja(((y|0)>0?y:0-y|0)|0)|0;q=y<<g+-1;p=ja(((t|0)>-851968?z:-851968-t|0)|0)|0;z=z<<p+-1;b=(536870911/(z>>16|0)|0)<<16>>16;s=((ha(b,q&65535)|0)>>16)+(ha(b,q>>16)|0)|0;z=Df(z|0,((z|0)<0)<<31>>31|0,s|0,((s|0)<0)<<31>>31|0)|0;z=vf(z|0,L|0,29)|0;z=q-(z&-8)|0;b=(ha(z>>16,b)|0)+s+((ha(z&65535,b)|0)>>16)|0;p=g+9+(1-p)|0;if((p|0)<0){s=0-p|0;p=-2147483648>>s;q=2147483647>>>s;if((p|0)>(q|0)){if((b|0)<=(p|0))p=(b|0)<(q|0)?q:b}else if((b|0)>(q|0))p=q;else p=(b|0)<(p|0)?p:b;p=p<<s}else p=(p|0)<32?b>>p:0;k[f>>2]=p;if((p|0)<(u|0)){k[f>>2]=u;s=y-u|0;k[f+4>>2]=s;s=(s<<1)-u|0;g=t+65536|0;z=u<<16>>16;z=((ha(g&65535,z)|0)>>16)+(ha(g>>16,z)|0)|0;g=ja(((s|0)>0?s:0-s|0)|0)|0;s=s<<g+-1;p=ja(((z|0)>0?z:0-z|0)|0)|0;z=z<<p+-1;b=(536870911/(z>>16|0)|0)<<16>>16;t=((ha(b,s&65535)|0)>>16)+(ha(b,s>>16)|0)|0;z=Df(t|0,((t|0)<0)<<31>>31|0,z|0,((z|0)<0)<<31>>31|0)|0;z=vf(z|0,L|0,29)|0;z=s-(z&-8)|0;b=(ha(z>>16,b)|0)+t+((ha(z&65535,b)|0)>>16)|0;p=g+12+(1-p)|0;if((p|0)<0){s=0-p|0;p=-2147483648>>s;q=2147483647>>>s;if((p|0)>(q|0)){if((b|0)<=(p|0))p=(b|0)<(q|0)?q:b}else if((b|0)>(q|0))p=q;else p=(b|0)<(p|0)?p:b;p=p<<s}else p=(p|0)<32?b>>p:0;p=(p|0)>16384?16384:(p|0)<0?0:p}else{k[f+4>>2]=y-p;p=16384}s=a+28|0;t=j[s>>1]|0;z=p-t|0;g=h<<16>>16;g=(ha(z>>16,g)|0)+t+((ha(z&65535,g)|0)>>>16)&65535;j[s>>1]=g;i[e>>0]=0;a:do if(!l){q=y<<3;do if(!(j[a+30>>1]|0)){if((q|0)>=(u*13|0)){b=k[s>>2]|0;p=b&65535;l=b<<16>>16;if((((ha(l,v&65535)|0)>>16)+(ha(l,v>>16)|0)|0)>=819)if(b>>>0<65536)break;else{C=36;break}}else p=j[s>>1]|0;q=p<<16>>16;C=(ha(A<<16>>16,q)|0)>>14;k[D>>2]=C;q=(ha(x<<16>>16,q)|0)>>14;k[B>>2]=q;Wd(D,d);k[D>>2]=0;k[B>>2]=0;k[f>>2]=y;k[f+4>>2]=0;i[e>>0]=1;q=0;C=44;break a}else C=36;while(0);do if((C|0)==36){if((q|0)>=(u*11|0)){p=j[s>>1]|0;C=p<<16>>16;if((((ha(C,v&65535)|0)>>16)+(ha(C,v>>16)|0)|0)>=328)break}else p=j[s>>1]|0;p=p<<16>>16;C=(ha(A<<16>>16,p)|0)>>14;k[D>>2]=C;p=(ha(x<<16>>16,p)|0)>>14;k[B>>2]=p;Wd(D,d);k[D>>2]=0;k[B>>2]=0;p=0;C=43;break a}while(0);if(p<<16>>16>15565){Wd(D,d);p=16384;C=43;break}else{p=p<<16>>16;C=(ha(A<<16>>16,p)|0)>>14;k[D>>2]=C;p=(ha(x<<16>>16,p)|0)>>14;k[B>>2]=p;Wd(D,d);p=j[s>>1]|0;C=43;break}}else{k[D>>2]=0;k[B>>2]=0;Wd(D,d);p=0;C=43}while(0);if((C|0)==43)if((i[e>>0]|0)==1){q=p;C=44}else{j[a+32>>1]=0;C=48}do if((C|0)==44){p=a+32|0;C=(m[p>>1]|0)+(o-(n<<3))|0;j[p>>1]=C;if((C<<16>>16|0)<(n*5|0)){i[e>>0]=0;C=49;break}else{j[p>>1]=1e4;p=q;C=48;break}}while(0);if((C|0)==48)if(!(i[e>>0]|0)){q=p;C=49}if((C|0)==49){p=f+4|0;if((k[p>>2]|0)<1){k[p>>2]=1;p=y+-1|0;k[f>>2]=(p|0)<1?1:p;p=q}else p=q}s=k[a>>2]|0;b=s<<16>>16;l=a+2|0;s=s>>16;d=a+30|0;u=j[d>>1]|0;q=n<<3;A=k[D>>2]|0;y=(65536/(q|0)|0)<<16>>16;z=((ha(A-b<<16>>16,y)|0)>>15)+1>>1;g=k[B>>2]|0;h=((ha(g-s<<16>>16,y)|0)>>15)+1>>1;D=p-u|0;y=((ha(D&65535,y)|0)>>16)+(ha(D>>16,y)|0)<<10;b:do if((n|0)>0){x=0;t=0-b|0;s=0-s|0;b=u<<10;while(1){t=t-z|0;u=s-h|0;v=b+y|0;b=x+2|0;s=x+1|0;e=j[E+(s<<1)>>1]|0;D=(j[E+(b<<1)>>1]|0)+(j[E+(x<<1)>>1]|0)+(e<<1)|0;C=w<<16>>16;n=t<<16>>16;f=u<<16>>16;n=((ha(C,v>>16)|0)+(ha(e>>5,f)|0)+((ha(C,v&64512)|0)>>16)+((ha(e<<11&63488,f)|0)>>16)+(ha(D>>7,n)|0)+((ha(D<<9&65024,n)|0)>>16)>>7)+1>>1;j[c+(x+-1<<1)>>1]=(n|0)>32767?32767:((n|0)<-32768?-32768:n)&65535;if((s|0)>=(q|0))break b;w=j[F+(b<<1)>>1]|0;x=s;s=u;b=v}}while(0);if((q|0)>=(o|0)){c=A&65535;j[a>>1]=c;c=g&65535;j[l>>1]=c;c=p&65535;j[d>>1]=c;r=G;return}b=p>>6;s=p<<10&64512;t=0-A<<16>>16;u=0-g<<16>>16;do{n=q;q=q+1|0;f=j[E+(q<<1)>>1]|0;D=(j[E+(n+2<<1)>>1]|0)+(j[E+(n<<1)>>1]|0)+(f<<1)|0;e=j[F+(q<<1)>>1]|0;D=((ha(e,b)|0)+(ha(f>>5,u)|0)+((ha(e,s)|0)>>16)+((ha(f<<11&63488,u)|0)>>16)+(ha(D>>7,t)|0)+((ha(D<<9&65024,t)|0)>>16)>>7)+1>>1;j[c+(n+-1<<1)>>1]=(D|0)>32767?32767:((D|0)<-32768?-32768:D)&65535}while((q|0)!=(o|0));c=A&65535;j[a>>1]=c;c=g&65535;j[l>>1]=c;c=p&65535;j[d>>1]=c;r=G;return}function Nd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;k[a+6072>>2]=k[b+48>>2];k[a+4672>>2]=k[b+52>>2];h=k[b+8>>2]|0;k[a+4552>>2]=h;f=k[b+12>>2]|0;k[a+4560>>2]=f;g=k[b+16>>2]|0;k[a+4564>>2]=g;m=k[b+20>>2]|0;k[a+4568>>2]=m;k[a+6084>>2]=k[b+40>>2];k[a+5748>>2]=k[b>>2];k[a+5752>>2]=k[b+4>>2];k[a+4532>>2]=c;k[a+5756>>2]=d;p=a+4664|0;if(k[p>>2]|0?(k[a+4676>>2]|0)==0:0){if((h|0)==(k[a+4556>>2]|0)){a=0;return a|0}d=k[a+4572>>2]|0;if((d|0)<=0){a=0;return a|0}a=Od(a,d)|0;return a|0}n=a+4572|0;d=k[n>>2]|0;j=d<<16>>16;l=j*1e3|0;do if(j){if((l|0)>(h|0)|(l|0)>(f|0)|(l|0)<(g|0)){d=(h|0)<(f|0)?h:f;d=(((d|0)>(g|0)?d:g)|0)/1e3|0;break}h=a+16|0;j=a+24|0;f=k[j>>2]|0;if((f|0)>255)k[a+28>>2]=0;if((c|0)==0?(k[b+64>>2]|0)==0:0)break;if((l|0)>(m|0)){g=a+28|0;if(!(k[g>>2]|0)){k[j>>2]=256;f=h;k[f>>2]=0;k[f+4>>2]=0;f=256}if(k[b+64>>2]|0){k[g>>2]=0;d=(d|0)==16?12:8;break}if((f|0)<1){k[b+88>>2]=1;c=b+56|0;m=k[c>>2]|0;k[c>>2]=m-((m*5|0)/((k[b+24>>2]|0)+5|0)|0);break}else{k[g>>2]=-2;break}}if((l|0)>=(m|0)){f=a+28|0;if((k[f>>2]|0)>=0)break;k[f>>2]=1;break}if(k[b+64>>2]|0){k[j>>2]=0;c=h;k[c>>2]=0;k[c+4>>2]=0;k[a+28>>2]=1;d=(d|0)==8?12:16;break}f=a+28|0;if(!(k[f>>2]|0)){k[b+88>>2]=1;c=b+56|0;m=k[c>>2]|0;k[c>>2]=m-((m*5|0)/((k[b+24>>2]|0)+5|0)|0);break}else{k[f>>2]=1;break}}else d=(((m|0)<(h|0)?m:h)|0)/1e3|0;while(0);j=(e|0)==0?d:e;m=Od(a,j)|0;g=k[b+24>>2]|0;h=a+4608|0;if((k[h>>2]|0)==(g|0)){d=k[n>>2]|0;l=0}else{switch(g|0){case 10:case 20:case 40:case 60:{l=0;break}default:l=-103}do if((g|0)<11){k[a+5740>>2]=1;k[a+4576>>2]=(g|0)==10?2:1;d=j<<16>>16;f=ha(g<<16>>16,d)|0;k[a+4580>>2]=f;k[a+4544>>2]=d*14;d=k[n>>2]|0;f=a+4684|0;if((d|0)==8){k[f>>2]=34100;d=8;break}else{k[f>>2]=34088;break}}else{k[a+5740>>2]=(g|0)/20|0;k[a+4576>>2]=4;d=j<<16>>16;k[a+4580>>2]=d*20;k[a+4544>>2]=d*24;d=k[n>>2]|0;f=a+4684|0;if((d|0)==8){k[f>>2]=34077;d=8;break}else{k[f>>2]=34043;break}}while(0);k[h>>2]=g;k[a+4604>>2]=0}do if((d|0)!=(j|0)){d=a+7164|0;k[d>>2]=0;k[d+4>>2]=0;k[d+8>>2]=0;f=a+16|0;k[f>>2]=0;k[f+4>>2]=0;k[a+5736>>2]=0;k[a+5744>>2]=0;k[a+4604>>2]=0;rf(a+144|0,0,4384)|0;k[a+4540>>2]=100;k[a+4660>>2]=1;i[d>>0]=10;k[a+4472>>2]=100;k[a+4488>>2]=65536;i[a+4537>>0]=0;k[n>>2]=j;d=k[a+4576>>2]|0;f=(d|0)==4;g=a+4684|0;do if((j|0)==8)if(f){k[g>>2]=34077;o=48;break}else{k[g>>2]=34100;o=48;break}else{k[g>>2]=f?34043:34088;if((j|0)==12)o=48;else{k[a+4636>>2]=16;k[a+4688>>2]=26900}}while(0);if((o|0)==48){k[a+4636>>2]=10;k[a+4688>>2]=26860}k[a+4584>>2]=j*5;n=ha(d<<16>>16,j*327680>>16)|0;k[a+4580>>2]=n;n=j<<16;o=n>>16;k[a+4588>>2]=o*20;k[a+4592>>2]=n>>15;k[a+4548>>2]=o*18;o=ha(f?24:14,o)|0;k[a+4544>>2]=o;if((j|0)==16){k[a+4680>>2]=33975;j=16;break}d=a+4680|0;if((j|0)==12){k[d>>2]=33969;j=12;break}else{k[d>>2]=33960;break}}else j=d;while(0);h=k[b+36>>2]|0;do if((h|0)>=1){if((h|0)<2){k[a+4640>>2]=1;k[a+4648>>2]=49807;d=a+4644|0;k[d>>2]=8;k[a+4632>>2]=14;g=j*5|0;k[a+4596>>2]=g;k[a+4624>>2]=1;k[a+4628>>2]=0;k[a+4656>>2]=3;k[a+4668>>2]=0;f=8;break}if((h|0)<3){k[a+4640>>2]=0;k[a+4648>>2]=52429;d=a+4644|0;k[d>>2]=6;k[a+4632>>2]=12;g=j*3|0;k[a+4596>>2]=g;k[a+4624>>2]=2;k[a+4628>>2]=0;k[a+4656>>2]=2;k[a+4668>>2]=0;f=6;break}if((h|0)<4){k[a+4640>>2]=1;k[a+4648>>2]=49807;d=a+4644|0;k[d>>2]=8;k[a+4632>>2]=14;g=j*5|0;k[a+4596>>2]=g;k[a+4624>>2]=2;k[a+4628>>2]=0;k[a+4656>>2]=4;k[a+4668>>2]=0;f=8;break}if((h|0)<6){k[a+4640>>2]=1;k[a+4648>>2]=48497;d=a+4644|0;k[d>>2]=10;k[a+4632>>2]=16;g=j*5|0;k[a+4596>>2]=g;k[a+4624>>2]=2;k[a+4628>>2]=1;k[a+4656>>2]=6;k[a+4668>>2]=j*983;f=10;break}d=a+4640|0;if((h|0)<8){k[d>>2]=1;k[a+4648>>2]=47186;d=a+4644|0;k[d>>2]=12;k[a+4632>>2]=20;g=j*5|0;k[a+4596>>2]=g;k[a+4624>>2]=3;k[a+4628>>2]=1;k[a+4656>>2]=8;k[a+4668>>2]=j*983;f=12;break}else{k[d>>2]=2;k[a+4648>>2]=45875;d=a+4644|0;k[d>>2]=16;k[a+4632>>2]=24;g=j*5|0;k[a+4596>>2]=g;k[a+4624>>2]=4;k[a+4628>>2]=1;k[a+4656>>2]=16;k[a+4668>>2]=j*983;f=16;break}}else{k[a+4640>>2]=0;k[a+4648>>2]=52429;d=a+4644|0;k[d>>2]=6;k[a+4632>>2]=12;g=j*3|0;k[a+4596>>2]=g;k[a+4624>>2]=1;k[a+4628>>2]=0;k[a+4656>>2]=2;k[a+4668>>2]=0;f=6}while(0);o=k[a+4636>>2]|0;k[d>>2]=(f|0)<(o|0)?f:o;k[a+4600>>2]=(j*5|0)+(g<<1);k[a+4620>>2]=h;f=k[b+32>>2]|0;k[a+4612>>2]=f;b=k[b+44>>2]|0;o=a+6088|0;d=k[o>>2]|0;k[o>>2]=b;do if(b|0)if(!d){k[a+6092>>2]=7;break}else{b=(ha(f>>16,-26214)|0)+7-(((f&65535)*26214|0)>>>16)|0;k[a+6092>>2]=(b|0)>2?b:2;break}while(0);k[p>>2]=1;a=l+m|0;return a|0}function Od(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,p=0,q=0;q=r;r=r+304|0;p=q;l=a+4572|0;d=k[l>>2]|0;if((d|0)==(b|0)?(c=a+4552|0,(k[a+4556>>2]|0)==(k[c>>2]|0)):0){b=c;p=0;b=k[b>>2]|0;a=a+4556|0;k[a>>2]=b;r=q;return p|0}if(!d){p=a+4552|0;n=p;p=Pd(a+5772|0,k[p>>2]|0,b*1e3|0,1)|0;b=k[n>>2]|0;a=a+4556|0;k[a>>2]=b;r=q;return p|0}i=((k[a+4576>>2]|0)*10|0)+5|0;h=ha(i,d)|0;c=ha(i,b)|0;m=Pa()|0;n=r;r=r+((1*(((h|0)>(c|0)?h:c)<<1)|0)+15&-16)|0;if((h|0)>0){f=h;do{g=f;f=f+-1|0;e=+o[a+7176+(f<<2)>>2];d=(o[t>>2]=e,k[t>>2]|0);if((d&2130706432)>>>0<=1249902592){d=(d|0)<0;e=d?e+-8388608.0+8388608.0:e+8388608.0+-8388608.0;if(e==0.0)e=d?-0.0:0.0}d=~~e;j[n+(f<<1)>>1]=(d|0)>32767?32767:((d|0)<-32768?-32768:d)&65535}while((g|0)>1)}f=a+4552|0;d=Pd(p,(k[l>>2]<<16>>16)*1e3|0,k[f>>2]|0,0)|0;l=ha((k[f>>2]|0)/1e3|0,i)|0;i=r;r=r+((1*(l<<1)|0)+15&-16)|0;Qd(p,i,n,h);h=a+5772|0;p=Pd(h,k[f>>2]|0,(b<<16>>16)*1e3|0,1)|0;Qd(h,n,i,l);d=p+d|0;if((c|0)>0)do{p=c;c=c+-1|0;o[a+7176+(c<<2)>>2]=+(j[n+(c<<1)>>1]|0)}while((p|0)>1);Xa(m|0);b=f;p=d;b=k[b>>2]|0;a=a+4556|0;k[a>>2]=b;r=q;return p|0}function Pd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;rf(a|0,0,300)|0;if(!d){a:do if((b|0)>=12e3)if((b|0)<16e3){switch(b|0){case 12e3:break a;default:d=-1}return d|0}else{switch(b|0){case 16e3:break a;default:d=-1}return d|0}else{switch(b|0){case 8e3:break a;default:d=-1}return d|0}while(0);b:do if((c|0)<16e3)if((c|0)<12e3){switch(c|0){case 8e3:break b;default:d=-1}return d|0}else{switch(c|0){case 12e3:break b;default:d=-1}return d|0}else{if((c|0)<24e3){switch(c|0){case 16e3:break b;default:d=-1}return d|0}if((c|0)<48e3){switch(c|0){case 24e3:break b;default:d=-1}return d|0}else{switch(c|0){case 48e3:break b;default:d=-1}return d|0}}while(0);k[a+292>>2]=i[((c>>12)-((c|0)>16e3&1)>>((c|0)>24e3&1))+-1+(35163+(((b>>12)+-1|0)*5|0))>>0]}else{c:do if((b|0)<16e3)if((b|0)<12e3){switch(b|0){case 8e3:break c;default:d=-1}return d|0}else{switch(b|0){case 12e3:break c;default:d=-1}return d|0}else{if((b|0)<24e3){switch(b|0){case 16e3:break c;default:d=-1}return d|0}if((b|0)<48e3){switch(b|0){case 24e3:break c;default:d=-1}return d|0}else{switch(b|0){case 48e3:break c;default:d=-1}return d|0}}while(0);d:do if((c|0)>=12e3)if((c|0)<16e3){switch(c|0){case 12e3:break d;default:d=-1}return d|0}else{switch(c|0){case 16e3:break d;default:d=-1}return d|0}else{switch(c|0){case 8e3:break d;default:d=-1}return d|0}while(0);k[a+292>>2]=i[(c>>12)+-1+(35148+((((b>>12)-((b|0)>16e3&1)>>((b|0)>24e3&1))+-1|0)*3|0))>>0]}g=(b|0)/1e3|0;k[a+284>>2]=g;k[a+288>>2]=(c|0)/1e3|0;k[a+268>>2]=g*10;do if((c|0)>(b|0)){d=a+264|0;if((b<<1|0)==(c|0)){k[d>>2]=1;d=0;break}else{k[d>>2]=2;d=1;break}}else{d=a+264|0;if((c|0)>=(b|0)){k[d>>2]=0;d=0;break}k[d>>2]=3;d=c<<2;if((d|0)==(b*3|0)){k[a+280>>2]=3;k[a+276>>2]=18;k[a+296>>2]=29382;d=0;break}e=c*3|0;if((e|0)==(b<<1|0)){k[a+280>>2]=2;k[a+276>>2]=18;k[a+296>>2]=29440;d=0;break}if((c<<1|0)==(b|0)){k[a+280>>2]=1;k[a+276>>2]=24;k[a+296>>2]=29480;d=0;break}if((e|0)==(b|0)){k[a+280>>2]=1;k[a+276>>2]=36;k[a+296>>2]=29508;d=0;break}if((d|0)==(b|0)){k[a+280>>2]=1;k[a+276>>2]=36;k[a+296>>2]=29548;d=0;break}if((c*6|0)==(b|0)){k[a+280>>2]=1;k[a+276>>2]=36;k[a+296>>2]=29588;d=0;break}else{a=-1;return a|0}}while(0);e=c<<16>>16;f=(c>>15)+1>>1;g=b<<d;d=((b<<(d|14)|0)/(c|0)|0)<<2;while(1)if(((ha(d>>16,e)|0)+(ha(d,f)|0)+((ha(d&65535,e)|0)>>16)|0)<(g|0))d=d+1|0;else break;k[a+272>>2]=d;a=0;return a|0}function Qd(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;e=a+284|0;f=a+292|0;i=k[f>>2]|0;g=(k[e>>2]|0)-i|0;h=a+168|0;wf(a+168+(i<<1)|0,c|0,g<<1|0)|0;switch(k[a+264>>2]|0){case 1:{Td(a,b,h,k[e>>2]|0);Td(a,b+(k[a+288>>2]<<1)|0,c+(g<<1)|0,d-(k[e>>2]|0)|0);break}case 2:{Sd(a,b,h,k[e>>2]|0);Sd(a,b+(k[a+288>>2]<<1)|0,c+(g<<1)|0,d-(k[e>>2]|0)|0);break}case 3:{Rd(a,b,h,k[e>>2]|0);Rd(a,b+(k[a+288>>2]<<1)|0,c+(g<<1)|0,d-(k[e>>2]|0)|0);break}default:{wf(b|0,h|0,k[e>>2]<<1|0)|0;wf(b+(k[a+288>>2]<<1)|0,c+(g<<1)|0,d-(k[e>>2]|0)<<1|0)|0}}i=k[f>>2]|0;wf(h|0,c+(d-i<<1)|0,i<<1|0)|0;return}function Rd(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,l=0,m=0,n=0,o=0,p=0,q=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,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;P=r;o=a+268|0;e=k[o>>2]|0;z=a+276|0;m=k[z>>2]|0;M=r;r=r+((1*(m+e<<2)|0)+15&-16)|0;N=a+24|0;wf(M|0,N|0,m<<2|0)|0;O=a+296|0;l=k[O>>2]|0;p=l+4|0;q=k[a+272>>2]|0;s=a+4|0;t=a+280|0;u=l+6|0;v=l+8|0;w=l+10|0;x=l+12|0;y=l+14|0;A=l+16|0;B=l+18|0;C=l+20|0;D=l+22|0;E=l+24|0;F=l+26|0;G=l+28|0;H=l+30|0;I=l+32|0;J=l+34|0;K=l+36|0;L=l+38|0;while(1){n=(d|0)<(e|0)?d:e;e=M+(m<<2)|0;if((n|0)>0){f=l+2|0;g=k[a>>2]|0;h=k[s>>2]|0;i=0;do{S=(j[c+(i<<1)>>1]<<8)+g|0;k[e+(i<<2)>>2]=S;S=S<<2;Q=S>>16;R=j[l>>1]|0;S=S&65532;g=(ha(Q,R)|0)+h+((ha(S,R)|0)>>16)|0;k[a>>2]=g;R=j[f>>1]|0;h=((ha(R,S)|0)>>16)+(ha(R,Q)|0)|0;k[s>>2]=h;i=i+1|0}while((i|0)!=(n|0))}i=n<<16;e=k[t>>2]|0;switch(m|0){case 18:{if((i|0)>0){h=e<<16>>16;g=e+-1|0;f=0;while(1){S=M+(f>>16<<2)|0;e=(ha(f&65535,h)|0)>>16;ba=p+(e*9<<1)|0;va=k[S>>2]|0;sa=j[ba>>1]|0;ua=ha(sa,va>>16)|0;va=(ha(sa,va&65535)|0)>>16;sa=k[S+4>>2]|0;qa=j[ba+2>>1]|0;ta=ha(qa,sa>>16)|0;sa=(ha(qa,sa&65535)|0)>>16;qa=k[S+8>>2]|0;oa=j[ba+4>>1]|0;ra=ha(oa,qa>>16)|0;qa=(ha(oa,qa&65535)|0)>>16;oa=k[S+12>>2]|0;ma=j[ba+6>>1]|0;pa=ha(ma,oa>>16)|0;oa=(ha(ma,oa&65535)|0)>>16;ma=k[S+16>>2]|0;ka=j[ba+8>>1]|0;na=ha(ka,ma>>16)|0;ma=(ha(ka,ma&65535)|0)>>16;ka=k[S+20>>2]|0;ia=j[ba+10>>1]|0;la=ha(ia,ka>>16)|0;ka=(ha(ia,ka&65535)|0)>>16;ia=k[S+24>>2]|0;fa=j[ba+12>>1]|0;ja=ha(fa,ia>>16)|0;ia=(ha(fa,ia&65535)|0)>>16;fa=k[S+28>>2]|0;da=j[ba+14>>1]|0;ga=ha(da,fa>>16)|0;fa=(ha(da,fa&65535)|0)>>16;da=k[S+32>>2]|0;ba=j[ba+16>>1]|0;ea=ha(ba,da>>16)|0;da=(ha(ba,da&65535)|0)>>16;e=p+((g-e|0)*9<<1)|0;ba=k[S+68>>2]|0;$=j[e>>1]|0;ca=ha($,ba>>16)|0;ba=(ha($,ba&65535)|0)>>16;$=k[S+64>>2]|0;Z=j[e+2>>1]|0;aa=ha(Z,$>>16)|0;$=(ha(Z,$&65535)|0)>>16;Z=k[S+60>>2]|0;X=j[e+4>>1]|0;_=ha(X,Z>>16)|0;Z=(ha(X,Z&65535)|0)>>16;X=k[S+56>>2]|0;V=j[e+6>>1]|0;Y=ha(V,X>>16)|0;X=(ha(V,X&65535)|0)>>16;V=k[S+52>>2]|0;T=j[e+8>>1]|0;W=ha(T,V>>16)|0;V=(ha(T,V&65535)|0)>>16;T=k[S+48>>2]|0;m=j[e+10>>1]|0;U=ha(m,T>>16)|0;T=(ha(m,T&65535)|0)>>16;m=k[S+44>>2]|0;R=j[e+12>>1]|0;l=ha(R,m>>16)|0;m=(ha(R,m&65535)|0)>>16;R=k[S+40>>2]|0;wa=j[e+14>>1]|0;Q=ha(wa,R>>16)|0;R=(ha(wa,R&65535)|0)>>16;S=k[S+36>>2]|0;e=j[e+16>>1]|0;S=(va+ua+ta+sa+ra+qa+pa+oa+na+ma+la+ka+ja+ia+ga+fa+ea+da+ca+ba+aa+$+_+Z+Y+X+W+V+U+T+l+m+Q+R+(ha(e,S>>16)|0)+((ha(e,S&65535)|0)>>16)>>5)+1>>1;e=b+2|0;j[b>>1]=(S|0)>32767?32767:((S|0)<-32768?-32768:S)&65535;f=f+q|0;if((f|0)>=(i|0)){b=e;break}else b=e}}break}case 24:{if((i|0)>0){f=0;while(1){e=M+(f>>16<<2)|0;wa=(k[e+92>>2]|0)+(k[e>>2]|0)|0;$=j[p>>1]|0;aa=ha(wa>>16,$)|0;$=(ha(wa&65535,$)|0)>>16;wa=(k[e+88>>2]|0)+(k[e+4>>2]|0)|0;ca=j[u>>1]|0;ba=ha(wa>>16,ca)|0;ca=(ha(wa&65535,ca)|0)>>16;wa=(k[e+84>>2]|0)+(k[e+8>>2]|0)|0;ea=j[v>>1]|0;da=ha(wa>>16,ea)|0;ea=(ha(wa&65535,ea)|0)>>16;wa=(k[e+80>>2]|0)+(k[e+12>>2]|0)|0;ga=j[w>>1]|0;fa=ha(wa>>16,ga)|0;ga=(ha(wa&65535,ga)|0)>>16;wa=(k[e+76>>2]|0)+(k[e+16>>2]|0)|0;ja=j[x>>1]|0;ia=ha(wa>>16,ja)|0;ja=(ha(wa&65535,ja)|0)>>16;wa=(k[e+72>>2]|0)+(k[e+20>>2]|0)|0;la=j[y>>1]|0;ka=ha(wa>>16,la)|0;la=(ha(wa&65535,la)|0)>>16;wa=(k[e+68>>2]|0)+(k[e+24>>2]|0)|0;na=j[A>>1]|0;ma=ha(wa>>16,na)|0;na=(ha(wa&65535,na)|0)>>16;wa=(k[e+64>>2]|0)+(k[e+28>>2]|0)|0;pa=j[B>>1]|0;oa=ha(wa>>16,pa)|0;pa=(ha(wa&65535,pa)|0)>>16;wa=(k[e+60>>2]|0)+(k[e+32>>2]|0)|0;ra=j[C>>1]|0;qa=ha(wa>>16,ra)|0;ra=(ha(wa&65535,ra)|0)>>16;wa=(k[e+56>>2]|0)+(k[e+36>>2]|0)|0;ta=j[D>>1]|0;sa=ha(wa>>16,ta)|0;ta=(ha(wa&65535,ta)|0)>>16;wa=(k[e+52>>2]|0)+(k[e+40>>2]|0)|0;va=j[E>>1]|0;ua=ha(wa>>16,va)|0;va=(ha(wa&65535,va)|0)>>16;e=(k[e+48>>2]|0)+(k[e+44>>2]|0)|0;wa=j[F>>1]|0;wa=($+aa+ba+ca+da+ea+fa+ga+ia+ja+ka+la+ma+na+oa+pa+qa+ra+sa+ta+ua+va+(ha(e>>16,wa)|0)+((ha(e&65535,wa)|0)>>16)>>5)+1>>1;e=b+2|0;j[b>>1]=(wa|0)>32767?32767:((wa|0)<-32768?-32768:wa)&65535;f=f+q|0;if((f|0)>=(i|0)){b=e;break}else b=e}}break}case 36:{if((i|0)>0){f=0;while(1){e=M+(f>>16<<2)|0;wa=(k[e+140>>2]|0)+(k[e>>2]|0)|0;m=j[p>>1]|0;Q=ha(wa>>16,m)|0;m=(ha(wa&65535,m)|0)>>16;wa=(k[e+136>>2]|0)+(k[e+4>>2]|0)|0;S=j[u>>1]|0;R=ha(wa>>16,S)|0;S=(ha(wa&65535,S)|0)>>16;wa=(k[e+132>>2]|0)+(k[e+8>>2]|0)|0;U=j[v>>1]|0;T=ha(wa>>16,U)|0;U=(ha(wa&65535,U)|0)>>16;wa=(k[e+128>>2]|0)+(k[e+12>>2]|0)|0;W=j[w>>1]|0;V=ha(wa>>16,W)|0;W=(ha(wa&65535,W)|0)>>16;wa=(k[e+124>>2]|0)+(k[e+16>>2]|0)|0;Y=j[x>>1]|0;X=ha(wa>>16,Y)|0;Y=(ha(wa&65535,Y)|0)>>16;wa=(k[e+120>>2]|0)+(k[e+20>>2]|0)|0;_=j[y>>1]|0;Z=ha(wa>>16,_)|0;_=(ha(wa&65535,_)|0)>>16;wa=(k[e+116>>2]|0)+(k[e+24>>2]|0)|0;aa=j[A>>1]|0;$=ha(wa>>16,aa)|0;aa=(ha(wa&65535,aa)|0)>>16;wa=(k[e+112>>2]|0)+(k[e+28>>2]|0)|0;ca=j[B>>1]|0;ba=ha(wa>>16,ca)|0;ca=(ha(wa&65535,ca)|0)>>16;wa=(k[e+108>>2]|0)+(k[e+32>>2]|0)|0;ea=j[C>>1]|0;da=ha(wa>>16,ea)|0;ea=(ha(wa&65535,ea)|0)>>16;wa=(k[e+104>>2]|0)+(k[e+36>>2]|0)|0;ga=j[D>>1]|0;fa=ha(wa>>16,ga)|0;ga=(ha(wa&65535,ga)|0)>>16;wa=(k[e+100>>2]|0)+(k[e+40>>2]|0)|0;ja=j[E>>1]|0;ia=ha(wa>>16,ja)|0;ja=(ha(wa&65535,ja)|0)>>16;wa=(k[e+96>>2]|0)+(k[e+44>>2]|0)|0;la=j[F>>1]|0;ka=ha(wa>>16,la)|0;la=(ha(wa&65535,la)|0)>>16;wa=(k[e+92>>2]|0)+(k[e+48>>2]|0)|0;na=j[G>>1]|0;ma=ha(wa>>16,na)|0;na=(ha(wa&65535,na)|0)>>16;wa=(k[e+88>>2]|0)+(k[e+52>>2]|0)|0;pa=j[H>>1]|0;oa=ha(wa>>16,pa)|0;pa=(ha(wa&65535,pa)|0)>>16;wa=(k[e+84>>2]|0)+(k[e+56>>2]|0)|0;ra=j[I>>1]|0;qa=ha(wa>>16,ra)|0;ra=(ha(wa&65535,ra)|0)>>16;wa=(k[e+80>>2]|0)+(k[e+60>>2]|0)|0;ta=j[J>>1]|0;sa=ha(wa>>16,ta)|0;ta=(ha(wa&65535,ta)|0)>>16;wa=(k[e+76>>2]|0)+(k[e+64>>2]|0)|0;va=j[K>>1]|0;ua=ha(wa>>16,va)|0;va=(ha(wa&65535,va)|0)>>16;e=(k[e+72>>2]|0)+(k[e+68>>2]|0)|0;wa=j[L>>1]|0;wa=(m+Q+R+S+T+U+V+W+X+Y+Z+_+$+aa+ba+ca+da+ea+fa+ga+ia+ja+ka+la+ma+na+oa+pa+qa+ra+sa+ta+ua+va+(ha(e>>16,wa)|0)+((ha(e&65535,wa)|0)>>16)>>5)+1>>1;e=b+2|0;j[b>>1]=(wa|0)>32767?32767:((wa|0)<-32768?-32768:wa)&65535;f=f+q|0;if((f|0)>=(i|0)){b=e;break}else b=e}}break}default:{}}d=d-n|0;if((d|0)<=1)break;m=k[z>>2]|0;wf(M|0,M+(n<<2)|0,m<<2|0)|0;c=c+(n<<1)|0;e=k[o>>2]|0;l=k[O>>2]|0}wf(N|0,M+(n<<2)|0,k[z>>2]<<2|0)|0;r=P;return}function Sd(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,l=0,m=0,n=0,o=0,p=0,q=0,s=0;p=r;i=a+268|0;g=k[i>>2]|0;l=r;r=r+((1*((g<<1)+8<<1)|0)+15&-16)|0;m=a+24|0;j[l>>1]=j[m>>1]|0;j[l+2>>1]=j[m+2>>1]|0;j[l+4>>1]=j[m+4>>1]|0;j[l+6>>1]=j[m+6>>1]|0;j[l+8>>1]=j[m+8>>1]|0;j[l+10>>1]=j[m+10>>1]|0;j[l+12>>1]=j[m+12>>1]|0;j[l+14>>1]=j[m+14>>1]|0;n=k[a+272>>2]|0;o=l+16|0;h=c;c=g;while(1){g=(d|0)<(c|0)?d:c;Td(a,o,h,g);f=g<<17;if((f|0)>0){c=b;e=0;while(1){b=((e&65535)*12|0)>>>16;q=l+(e>>16<<1)|0;s=ha(j[29628+(b<<3)>>1]|0,j[q>>1]|0)|0;s=(ha(j[29628+(b<<3)+2>>1]|0,j[q+2>>1]|0)|0)+s|0;s=s+(ha(j[29628+(b<<3)+4>>1]|0,j[q+4>>1]|0)|0)|0;s=s+(ha(j[29628+(b<<3)+6>>1]|0,j[q+6>>1]|0)|0)|0;b=11-b|0;s=s+(ha(j[29628+(b<<3)+6>>1]|0,j[q+8>>1]|0)|0)|0;s=s+(ha(j[29628+(b<<3)+4>>1]|0,j[q+10>>1]|0)|0)|0;s=s+(ha(j[29628+(b<<3)+2>>1]|0,j[q+12>>1]|0)|0)|0;q=(s+(ha(j[29628+(b<<3)>>1]|0,j[q+14>>1]|0)|0)>>14)+1>>1;b=c+2|0;j[c>>1]=(q|0)>32767?32767:((q|0)<-32768?-32768:q)&65535;e=e+n|0;if((e|0)>=(f|0))break;else c=b}}c=d-g|0;if((c|0)<=0)break;d=l+(g<<1<<1)|0;j[l>>1]=j[d>>1]|0;j[l+2>>1]=j[d+2>>1]|0;j[l+4>>1]=j[d+4>>1]|0;j[l+6>>1]=j[d+6>>1]|0;j[l+8>>1]=j[d+8>>1]|0;j[l+10>>1]=j[d+10>>1]|0;j[l+12>>1]=j[d+12>>1]|0;j[l+14>>1]=j[d+14>>1]|0;h=h+(g<<1)|0;d=c;c=k[i>>2]|0}s=l+(g<<1<<1)|0;j[m>>1]=j[s>>1]|0;j[m+2>>1]=j[s+2>>1]|0;j[m+4>>1]=j[s+4>>1]|0;j[m+6>>1]=j[s+6>>1]|0;j[m+8>>1]=j[s+8>>1]|0;j[m+10>>1]=j[s+10>>1]|0;j[m+12>>1]=j[s+12>>1]|0;j[m+14>>1]=j[s+14>>1]|0;r=p;return}function Td(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,l=0,m=0,n=0,o=0,p=0;if((d|0)<=0)return;e=a+4|0;f=a+8|0;g=a+12|0;h=a+16|0;i=a+20|0;l=0;do{n=j[c+(l<<1)>>1]<<10;o=k[a>>2]|0;p=n-o|0;p=(((p&65535)*1746|0)>>>16)+((p>>16)*1746|0)|0;o=p+o|0;k[a>>2]=p+n;p=k[e>>2]|0;m=o-p|0;m=(((m&65535)*14986|0)>>>16)+((m>>16)*14986|0)|0;p=m+p|0;k[e>>2]=m+o;o=p-(k[f>>2]|0)|0;m=((ha(o&65535,-26453)|0)>>16)+(ha(o>>16,-26453)|0)|0;k[f>>2]=o+p+m;p=(m+p>>9)+1>>1;m=l<<1;j[b+(m<<1)>>1]=(p|0)>32767?32767:((p|0)<-32768?-32768:p)&65535;p=k[g>>2]|0;o=n-p|0;o=(((o&65535)*6854|0)>>>16)+((o>>16)*6854|0)|0;p=o+p|0;k[g>>2]=o+n;n=k[h>>2]|0;o=p-n|0;o=(((o&65535)*25769|0)>>>16)+((o>>16)*25769|0)|0;n=o+n|0;k[h>>2]=o+p;p=n-(k[i>>2]|0)|0;o=((ha(p&65535,-9994)|0)>>16)+(ha(p>>16,-9994)|0)|0;k[i>>2]=p+n+o;n=(o+n>>9)+1>>1;j[b+((m|1)<<1)>>1]=(n|0)>32767?32767:((n|0)<-32768?-32768:n)&65535;l=l+1|0}while((l|0)!=(d|0));return}function Ud(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=r;r=r+32|0;y=z;w=a+28|0;f=k[w>>2]|0;x=a+32|0;c=k[x>>2]|0;d=f>>>8;n=-1;while(1){n=n+1|0;e=ha(l[33904+n>>0]|0,d)|0;if(c>>>0>=e>>>0)break;else f=e}d=c-e|0;k[x>>2]=d;c=f-e|0;k[w>>2]=c;s=a+20|0;t=a+40|0;u=a+24|0;v=a+4|0;if(c>>>0<8388609){i=k[v>>2]|0;m=k[s>>2]|0;g=k[u>>2]|0;h=k[t>>2]|0;while(1){m=m+8|0;k[s>>2]=m;c=c<<8;k[w>>2]=c;if(g>>>0<i>>>0){e=g+1|0;k[u>>2]=e;f=l[(k[a>>2]|0)+g>>0]|0}else{e=g;f=0}k[t>>2]=f;d=((f|h<<8)>>>1&255|d<<8&2147483392)^255;k[x>>2]=d;if(c>>>0>=8388609)break;else{g=e;h=f}}}o=(n|0)/5|0;q=y+8|0;k[q>>2]=o;o=(ha(o,-5)|0)+n|0;p=y+20|0;k[p>>2]=o;o=0;do{e=c>>>8;n=-1;while(1){n=n+1|0;f=ha(l[33957+n>>0]|0,e)|0;if(d>>>0>=f>>>0)break;else c=f}d=d-f|0;k[x>>2]=d;c=c-f|0;k[w>>2]=c;if(c>>>0<8388609){i=k[v>>2]|0;m=k[s>>2]|0;g=k[u>>2]|0;h=k[t>>2]|0;f=d;while(1){m=m+8|0;k[s>>2]=m;c=c<<8;k[w>>2]=c;if(g>>>0<i>>>0){d=g+1|0;k[u>>2]=d;e=l[(k[a>>2]|0)+g>>0]|0}else{d=g;e=0}k[t>>2]=e;f=((e|h<<8)>>>1&255|f<<8&2147483392)^255;k[x>>2]=f;if(c>>>0>=8388609)break;else{g=d;h=e}}}else f=d;k[y+(o*12|0)>>2]=n;d=c>>>8;m=-1;while(1){m=m+1|0;e=ha(l[33964+m>>0]|0,d)|0;if(f>>>0>=e>>>0)break;else c=e}d=f-e|0;k[x>>2]=d;c=c-e|0;k[w>>2]=c;if(c>>>0<8388609){h=k[v>>2]|0;i=k[t>>2]|0;g=k[s>>2]|0;e=k[u>>2]|0;while(1){g=g+8|0;k[s>>2]=g;c=c<<8;k[w>>2]=c;if(e>>>0<h>>>0){n=e+1|0;k[u>>2]=n;f=l[(k[a>>2]|0)+e>>0]|0;e=n}else f=0;k[t>>2]=f;d=((f|i<<8)>>>1&255|d<<8&2147483392)^255;k[x>>2]=d;if(c>>>0>=8388609)break;else i=f}}k[y+(o*12|0)+4>>2]=m;o=o+1|0}while((o|0)!=2);a=(k[y>>2]|0)+((k[q>>2]|0)*3|0)|0;k[y>>2]=a;x=j[29336+(a<<1)>>1]|0;a=(j[29336+(a+1<<1)>>1]|0)-x|0;a=(ha(a>>16,429522944)|0)+((a&65535)*6554|0)>>16;x=(ha(a,k[y+4>>2]<<17>>16|1)|0)+x|0;a=y+12|0;w=(k[a>>2]|0)+((k[p>>2]|0)*3|0)|0;k[a>>2]=w;a=j[29336+(w<<1)>>1]|0;w=(j[29336+(w+1<<1)>>1]|0)-a|0;w=(ha(w>>16,429522944)|0)+((w&65535)*6554|0)>>16;a=(ha(w,k[y+16>>2]<<17>>16|1)|0)+a|0;k[b+4>>2]=a;k[b>>2]=x-a;r=z;return}function Vd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=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;m=31-(ja(e|0)|0)|0;p=e+-1|0;o=(e|0)>1;if(o){g=0;i=e;do{w=j[b+(g<<1)>>1]|0;w=ha(w,w)|0;v=j[b+((g|1)<<1)>>1]|0;i=(((ha(v,v)|0)+w|0)>>>m)+i|0;g=g+2|0}while((g|0)<(p|0));h=e&-2;g=i}else{h=0;g=e}if((h|0)<(e|0)){w=j[b+(h<<1)>>1]|0;g=((ha(w,w)|0)>>>m)+g|0}l=m+3|0;q=l-(ja(g|0)|0)|0;q=(q|0)<0?0:q;if(o){g=0;i=0;do{w=j[b+(g<<1)>>1]|0;w=ha(w,w)|0;v=j[b+((g|1)<<1)>>1]|0;i=(((ha(v,v)|0)+w|0)>>>q)+i|0;g=g+2|0}while((g|0)<(p|0));h=e&-2;g=i}else{h=0;g=0}if((h|0)<(e|0)){n=j[b+(h<<1)>>1]|0;n=((ha(n,n)|0)>>>q)+g|0}else n=g;if(o){h=0;g=e;do{w=j[c+(h<<1)>>1]|0;w=ha(w,w)|0;v=j[c+((h|1)<<1)>>1]|0;g=(((ha(v,v)|0)+w|0)>>>m)+g|0;h=h+2|0}while((h|0)<(p|0));h=e&-2}else{h=0;g=e}if((h|0)<(e|0)){w=j[c+(h<<1)>>1]|0;g=((ha(w,w)|0)>>>m)+g|0}i=l-(ja(g|0)|0)|0;i=(i|0)<0?0:i;if(o){h=0;g=0;do{w=j[c+(h<<1)>>1]|0;w=ha(w,w)|0;v=j[c+((h|1)<<1)>>1]|0;g=(((ha(v,v)|0)+w|0)>>>i)+g|0;h=h+2|0}while((h|0)<(p|0));h=e&-2}else{h=0;g=0}if((h|0)<(e|0)){w=j[c+(h<<1)>>1]|0;g=((ha(w,w)|0)>>>i)+g|0}m=(q|0)>(i|0)?q:i;m=(m&1)+m|0;v=g>>m-i;t=n>>m-q;t=(t|0)>1?t:1;if((e|0)>0){h=0;g=0;do{g=((ha(j[c+(h<<1)>>1]|0,j[b+(h<<1)>>1]|0)|0)>>m)+g|0;h=h+1|0}while((h|0)!=(e|0));r=g}else r=0;g=ja(((r|0)>0?r:0-r|0)|0)|0;c=r<<g+-1;w=ja(((t|0)>0?t:0-t|0)|0)|0;u=t<<w+-1;i=(536870911/(u>>16|0)|0)<<16>>16;s=((ha(c&65535,i)|0)>>16)+(ha(c>>16,i)|0)|0;u=Df(s|0,((s|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;u=vf(u|0,L|0,29)|0;u=c-(u&-8)|0;i=(ha(u>>16,i)|0)+s+((ha(u&65535,i)|0)>>16)|0;g=1-w+15+g|0;if((g|0)<0){l=0-g|0;g=-2147483648>>l;h=2147483647>>>l;if((g|0)>(h|0)){if((i|0)<=(g|0))g=(i|0)<(h|0)?h:i}else if((i|0)>(h|0))g=h;else g=(i|0)<(g|0)?g:i;g=g<<l}else g=(g|0)<32?i>>g:0;w=(g|0)>16384?16384:(g|0)<-16384?-16384:g;b=w<<16>>16;c=((ha(b,w&65535)|0)>>16)+(ha(b,w>>16)|0)|0;i=(c|0)>0?c:0-c|0;i=(i|0)<(f|0)?f:i;u=m>>1;e=k[d>>2]|0;g=ja(t|0)|0;m=24-g|0;n=0-m|0;o=(m|0)==0;do if(!o)if((m|0)<0){h=t>>>(m+32|0)|t<<n;break}else{h=t<<32-m|t>>>m;break}else h=t;while(0);p=((g&1|0)==0?46214:32768)>>>(g>>>1);q=p>>16;h=(ha(h&127,13959168)|0)>>>16;l=p&65535;s=i<<16>>16;h=ha(((ha(h,q)|0)+p+((ha(h,l)|0)>>>16)<<u)-e>>16,s)|0;do if(!o)if((m|0)<0){g=t>>>(m+32|0)|t<<n;break}else{g=t<<32-m|t>>>m;break}else g=t;while(0);f=(ha(g&127,13959168)|0)>>>16;f=h+e+((ha(((ha(f,q)|0)+p+((ha(f,l)|0)>>>16)<<u)-e&65535,s)|0)>>16)|0;k[d>>2]=f;h=c<<16>>16;h=(((ha(h,t&65535)|0)>>16)+(ha(h,t>>16)|0)<<6)+(v-(((ha(b,r&65535)|0)>>16)+(ha(b,r>>16)|0)<<4))|0;q=d+4|0;e=k[q>>2]|0;if((h|0)<1){h=0;g=0}else{g=ja(h|0)|0;l=24-g|0;m=0-l|0;n=(l|0)==0;do if(!n)if((l|0)<0){i=h>>>(l+32|0)|h<<m;break}else{i=h<<32-l|h>>>l;break}else i=h;while(0);o=((g&1|0)==0?46214:32768)>>>(g>>>1);p=o>>16;g=(ha(i&127,13959168)|0)>>>16;i=o&65535;g=(ha(g,p)|0)+o+((ha(g,i)|0)>>>16)<<u;do if(!n)if((l|0)<0){h=h>>>(l+32|0)|h<<m;break}else{h=h<<32-l|h>>>l;break}while(0);h=(ha(h&127,13959168)|0)>>>16;h=(ha(h,p)|0)+o+((ha(h,i)|0)>>>16)|0}t=(ha(g-e>>16,s)|0)+e+((ha((h<<u)-e&65535,s)|0)>>16)|0;k[q>>2]=t;v=(f|0)>1?f:1;g=ja(((t|0)>0?t:0-t|0)|0)|0;t=t<<g+-1;d=ja(((v|0)>0?v:0-v|0)|0)|0;v=v<<d+-1;i=(536870911/(v>>16|0)|0)<<16>>16;u=((ha(t&65535,i)|0)>>16)+(ha(t>>16,i)|0)|0;v=Df(u|0,((u|0)<0)<<31>>31|0,v|0,((v|0)<0)<<31>>31|0)|0;v=vf(v|0,L|0,29)|0;v=t-(v&-8)|0;i=(ha(v>>16,i)|0)+u+((ha(v&65535,i)|0)>>16)|0;g=1-d+14+g|0;if((g|0)>=0){d=(g|0)<32?i>>g:0;v=(d|0)>32767;u=(d|0)<0;d=u?0:d;d=v?32767:d;k[a>>2]=d;return w|0}l=0-g|0;g=-2147483648>>l;h=2147483647>>>l;if((g|0)>(h|0)){if((i|0)<=(g|0))g=(i|0)<(h|0)?h:i}else if((i|0)>(h|0))g=h;else g=(i|0)<(g|0)?g:i;d=g<<l;v=(d|0)>32767;u=(d|0)<0;d=u?0:d;d=v?32767:d;k[a>>2]=d;return w|0}function Wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=0;c=0;do{p=a+(r<<2)|0;q=b+(r*3|0)|0;n=b+(r*3|0)+1|0;h=2147483647;o=0;e=c;while(1){l=j[29336+(o<<1)>>1]|0;d=o;o=o+1|0;m=(j[29336+(o<<1)>>1]|0)-l|0;m=(ha(m>>16,429522944)|0)+((m&65535)*6554|0)>>16;d=d&255;c=m+l|0;f=(k[p>>2]|0)-c|0;f=(f|0)>0?f:0-f|0;if((f|0)>=(h|0)){s=4;break}i[q>>0]=d;i[n>>0]=0;g=(m*3|0)+l|0;e=(k[p>>2]|0)-g|0;e=(e|0)>0?e:0-e|0;if((e|0)>=(f|0))break;i[q>>0]=d;i[n>>0]=1;c=(m*5|0)+l|0;f=(k[p>>2]|0)-c|0;f=(f|0)>0?f:0-f|0;if((f|0)>=(e|0)){c=g;break}i[q>>0]=d;i[n>>0]=2;g=(m*7|0)+l|0;e=(k[p>>2]|0)-g|0;e=(e|0)>0?e:0-e|0;if((e|0)>=(f|0))break;i[q>>0]=d;i[n>>0]=3;c=(m*9|0)+l|0;h=(k[p>>2]|0)-c|0;h=(h|0)>0?h:0-h|0;if((h|0)>=(e|0)){c=g;break}i[q>>0]=d;i[n>>0]=4;if((o|0)>=15)break;else e=c}if((s|0)==4){s=0;d=i[q>>0]|0;c=e}o=(d<<24>>24|0)/3|0;i[b+(r*3|0)+2>>0]=o;o=(ha(o,-3)|0)+(d&255)&255;i[q>>0]=o;k[p>>2]=c;r=r+1|0}while((r|0)!=2);k[a>>2]=(k[a>>2]|0)-(k[a+4>>2]|0);return}
function Ke(a){a=+a;var b=0,c=0,d=0,e=0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0;p[t>>3]=a;c=k[t>>2]|0;b=k[t+4>>2]|0;d=(b|0)<0;do if(d|b>>>0<1048576){f=+W(+a);p[t>>3]=f;if((k[t>>2]|0)==0&(k[t+4>>2]|0)==0){a=-1.0/(a*a);break}if(d){a=(a-a)/0.0;break}else{p[t>>3]=a*18014398509481984.0;b=k[t+4>>2]|0;d=k[t>>2]|0;c=-1077;e=9;break}}else if(b>>>0<=2146435071)if((c|0)==0&0==0&(b|0)==1072693248)a=0.0;else{d=c;c=-1023;e=9}while(0);if((e|0)==9){e=b+614242|0;k[t>>2]=d;k[t+4>>2]=(e&1048575)+1072079006;h=+p[t>>3]+-1.0;g=h*(h*.5);i=h/(h+2.0);j=i*i;a=j*j;p[t>>3]=h-g;d=k[t+4>>2]|0;k[t>>2]=0;k[t+4>>2]=d;f=+p[t>>3];a=h-f-g+i*(g+(a*(a*(a*.15313837699209373+.22222198432149784)+.3999999999940942)+j*(a*(a*(a*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));j=f*.4342944818781689;g=+((e>>>20)+c|0);i=g*.30102999566361177;h=i+j;a=h+(j+(i-h)+(a*.4342944818781689+(g*3.694239077158931e-13+(f+a)*2.5082946711645275e-11)))}return +a}function Le(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=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;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;i=k[9748]|0;b=i>>>a;if(b&3|0){b=(b&1^1)+a|0;c=39032+(b<<1<<2)|0;d=c+8|0;e=k[d>>2]|0;f=e+8|0;g=k[f>>2]|0;do if((c|0)!=(g|0)){if(g>>>0<(k[9752]|0)>>>0)Fb();a=g+12|0;if((k[a>>2]|0)==(e|0)){k[a>>2]=c;k[d>>2]=g;break}else Fb()}else k[9748]=i&~(1<<b);while(0);G=b<<3;k[e+4>>2]=G|3;G=e+G+4|0;k[G>>2]=k[G>>2]|1;G=f;return G|0}g=k[9750]|0;if(o>>>0>g>>>0){if(b|0){c=2<<a;c=b<<a&(c|0-c);c=(c&0-c)+-1|0;h=c>>>12&16;c=c>>>h;e=c>>>5&8;c=c>>>e;f=c>>>2&4;c=c>>>f;d=c>>>1&2;c=c>>>d;b=c>>>1&1;b=(e|h|f|d|b)+(c>>>b)|0;c=39032+(b<<1<<2)|0;d=c+8|0;f=k[d>>2]|0;h=f+8|0;e=k[h>>2]|0;do if((c|0)!=(e|0)){if(e>>>0<(k[9752]|0)>>>0)Fb();a=e+12|0;if((k[a>>2]|0)==(f|0)){k[a>>2]=c;k[d>>2]=e;j=k[9750]|0;break}else Fb()}else{k[9748]=i&~(1<<b);j=g}while(0);g=(b<<3)-o|0;k[f+4>>2]=o|3;d=f+o|0;k[d+4>>2]=g|1;k[d+g>>2]=g;if(j|0){e=k[9753]|0;b=j>>>3;c=39032+(b<<1<<2)|0;a=k[9748]|0;b=1<<b;if(a&b){a=c+8|0;b=k[a>>2]|0;if(b>>>0<(k[9752]|0)>>>0)Fb();else{l=a;m=b}}else{k[9748]=a|b;l=c+8|0;m=c}k[l>>2]=e;k[m+12>>2]=e;k[e+8>>2]=m;k[e+12>>2]=c}k[9750]=g;k[9753]=d;G=h;return G|0}a=k[9749]|0;if(a){h=(a&0-a)+-1|0;F=h>>>12&16;h=h>>>F;E=h>>>5&8;h=h>>>E;G=h>>>2&4;h=h>>>G;b=h>>>1&2;h=h>>>b;i=h>>>1&1;i=k[39296+((E|F|G|b|i)+(h>>>i)<<2)>>2]|0;h=(k[i+4>>2]&-8)-o|0;b=i;while(1){a=k[b+16>>2]|0;if(!a){a=k[b+20>>2]|0;if(!a)break}b=(k[a+4>>2]&-8)-o|0;G=b>>>0<h>>>0;h=G?b:h;b=a;i=G?a:i}e=k[9752]|0;if(i>>>0<e>>>0)Fb();g=i+o|0;if(i>>>0>=g>>>0)Fb();f=k[i+24>>2]|0;c=k[i+12>>2]|0;do if((c|0)==(i|0)){b=i+20|0;a=k[b>>2]|0;if(!a){b=i+16|0;a=k[b>>2]|0;if(!a){n=0;break}}while(1){c=a+20|0;d=k[c>>2]|0;if(d|0){a=d;b=c;continue}c=a+16|0;d=k[c>>2]|0;if(!d)break;else{a=d;b=c}}if(b>>>0<e>>>0)Fb();else{k[b>>2]=0;n=a;break}}else{d=k[i+8>>2]|0;if(d>>>0<e>>>0)Fb();a=d+12|0;if((k[a>>2]|0)!=(i|0))Fb();b=c+8|0;if((k[b>>2]|0)==(i|0)){k[a>>2]=c;k[b>>2]=d;n=c;break}else Fb()}while(0);do if(f|0){a=k[i+28>>2]|0;b=39296+(a<<2)|0;if((i|0)==(k[b>>2]|0)){k[b>>2]=n;if(!n){k[9749]=k[9749]&~(1<<a);break}}else{if(f>>>0<(k[9752]|0)>>>0)Fb();a=f+16|0;if((k[a>>2]|0)==(i|0))k[a>>2]=n;else k[f+20>>2]=n;if(!n)break}b=k[9752]|0;if(n>>>0<b>>>0)Fb();k[n+24>>2]=f;a=k[i+16>>2]|0;do if(a|0)if(a>>>0<b>>>0)Fb();else{k[n+16>>2]=a;k[a+24>>2]=n;break}while(0);a=k[i+20>>2]|0;if(a|0)if(a>>>0<(k[9752]|0)>>>0)Fb();else{k[n+20>>2]=a;k[a+24>>2]=n;break}}while(0);if(h>>>0<16){G=h+o|0;k[i+4>>2]=G|3;G=i+G+4|0;k[G>>2]=k[G>>2]|1}else{k[i+4>>2]=o|3;k[g+4>>2]=h|1;k[g+h>>2]=h;a=k[9750]|0;if(a|0){d=k[9753]|0;b=a>>>3;c=39032+(b<<1<<2)|0;a=k[9748]|0;b=1<<b;if(a&b){a=c+8|0;b=k[a>>2]|0;if(b>>>0<(k[9752]|0)>>>0)Fb();else{p=a;q=b}}else{k[9748]=a|b;p=c+8|0;q=c}k[p>>2]=d;k[q+12>>2]=d;k[d+8>>2]=q;k[d+12>>2]=c}k[9750]=h;k[9753]=g}G=i+8|0;return G|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;j=k[9749]|0;if(j){c=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)i=31;else{q=(a+1048320|0)>>>16&8;z=a<<q;p=(z+520192|0)>>>16&4;z=z<<p;i=(z+245760|0)>>>16&2;i=14-(p|q|i)+(z<<i>>>15)|0;i=o>>>(i+7|0)&1|i<<1}else i=0;b=k[39296+(i<<2)>>2]|0;a:do if(!b){a=0;b=0;z=86}else{e=c;a=0;g=o<<((i|0)==31?0:25-(i>>>1)|0);h=b;b=0;while(1){d=k[h+4>>2]&-8;c=d-o|0;if(c>>>0<e>>>0)if((d|0)==(o|0)){a=h;b=h;z=90;break a}else b=h;else c=e;d=k[h+20>>2]|0;h=k[h+16+(g>>>31<<2)>>2]|0;a=(d|0)==0|(d|0)==(h|0)?a:d;d=(h|0)==0;if(d){z=86;break}else{e=c;g=g<<(d&1^1)}}}while(0);if((z|0)==86){if((a|0)==0&(b|0)==0){a=2<<i;a=(a|0-a)&j;if(!a)break;q=(a&0-a)+-1|0;m=q>>>12&16;q=q>>>m;l=q>>>5&8;q=q>>>l;n=q>>>2&4;q=q>>>n;p=q>>>1&2;q=q>>>p;a=q>>>1&1;a=k[39296+((l|m|n|p|a)+(q>>>a)<<2)>>2]|0}if(!a){h=c;i=b}else z=90}if((z|0)==90)while(1){z=0;q=(k[a+4>>2]&-8)-o|0;d=q>>>0<c>>>0;c=d?q:c;b=d?a:b;d=k[a+16>>2]|0;if(d|0){a=d;z=90;continue}a=k[a+20>>2]|0;if(!a){h=c;i=b;break}else z=90}if((i|0)!=0?h>>>0<((k[9750]|0)-o|0)>>>0:0){e=k[9752]|0;if(i>>>0<e>>>0)Fb();g=i+o|0;if(i>>>0>=g>>>0)Fb();f=k[i+24>>2]|0;c=k[i+12>>2]|0;do if((c|0)==(i|0)){b=i+20|0;a=k[b>>2]|0;if(!a){b=i+16|0;a=k[b>>2]|0;if(!a){s=0;break}}while(1){c=a+20|0;d=k[c>>2]|0;if(d|0){a=d;b=c;continue}c=a+16|0;d=k[c>>2]|0;if(!d)break;else{a=d;b=c}}if(b>>>0<e>>>0)Fb();else{k[b>>2]=0;s=a;break}}else{d=k[i+8>>2]|0;if(d>>>0<e>>>0)Fb();a=d+12|0;if((k[a>>2]|0)!=(i|0))Fb();b=c+8|0;if((k[b>>2]|0)==(i|0)){k[a>>2]=c;k[b>>2]=d;s=c;break}else Fb()}while(0);do if(f|0){a=k[i+28>>2]|0;b=39296+(a<<2)|0;if((i|0)==(k[b>>2]|0)){k[b>>2]=s;if(!s){k[9749]=k[9749]&~(1<<a);break}}else{if(f>>>0<(k[9752]|0)>>>0)Fb();a=f+16|0;if((k[a>>2]|0)==(i|0))k[a>>2]=s;else k[f+20>>2]=s;if(!s)break}b=k[9752]|0;if(s>>>0<b>>>0)Fb();k[s+24>>2]=f;a=k[i+16>>2]|0;do if(a|0)if(a>>>0<b>>>0)Fb();else{k[s+16>>2]=a;k[a+24>>2]=s;break}while(0);a=k[i+20>>2]|0;if(a|0)if(a>>>0<(k[9752]|0)>>>0)Fb();else{k[s+20>>2]=a;k[a+24>>2]=s;break}}while(0);do if(h>>>0>=16){k[i+4>>2]=o|3;k[g+4>>2]=h|1;k[g+h>>2]=h;a=h>>>3;if(h>>>0<256){c=39032+(a<<1<<2)|0;b=k[9748]|0;a=1<<a;if(b&a){a=c+8|0;b=k[a>>2]|0;if(b>>>0<(k[9752]|0)>>>0)Fb();else{t=a;v=b}}else{k[9748]=b|a;t=c+8|0;v=c}k[t>>2]=g;k[v+12>>2]=g;k[g+8>>2]=v;k[g+12>>2]=c;break}a=h>>>8;if(a)if(h>>>0>16777215)c=31;else{F=(a+1048320|0)>>>16&8;G=a<<F;E=(G+520192|0)>>>16&4;G=G<<E;c=(G+245760|0)>>>16&2;c=14-(E|F|c)+(G<<c>>>15)|0;c=h>>>(c+7|0)&1|c<<1}else c=0;d=39296+(c<<2)|0;k[g+28>>2]=c;a=g+16|0;k[a+4>>2]=0;k[a>>2]=0;a=k[9749]|0;b=1<<c;if(!(a&b)){k[9749]=a|b;k[d>>2]=g;k[g+24>>2]=d;k[g+12>>2]=g;k[g+8>>2]=g;break}c=h<<((c|0)==31?0:25-(c>>>1)|0);d=k[d>>2]|0;while(1){if((k[d+4>>2]&-8|0)==(h|0)){z=148;break}b=d+16+(c>>>31<<2)|0;a=k[b>>2]|0;if(!a){z=145;break}else{c=c<<1;d=a}}if((z|0)==145)if(b>>>0<(k[9752]|0)>>>0)Fb();else{k[b>>2]=g;k[g+24>>2]=d;k[g+12>>2]=g;k[g+8>>2]=g;break}else if((z|0)==148){a=d+8|0;b=k[a>>2]|0;G=k[9752]|0;if(b>>>0>=G>>>0&d>>>0>=G>>>0){k[b+12>>2]=g;k[a>>2]=g;k[g+8>>2]=b;k[g+12>>2]=d;k[g+24>>2]=0;break}else Fb()}}else{G=h+o|0;k[i+4>>2]=G|3;G=i+G+4|0;k[G>>2]=k[G>>2]|1}while(0);G=i+8|0;return G|0}}}else o=-1;while(0);c=k[9750]|0;if(c>>>0>=o>>>0){a=c-o|0;b=k[9753]|0;if(a>>>0>15){G=b+o|0;k[9753]=G;k[9750]=a;k[G+4>>2]=a|1;k[G+a>>2]=a;k[b+4>>2]=o|3}else{k[9750]=0;k[9753]=0;k[b+4>>2]=c|3;G=b+c+4|0;k[G>>2]=k[G>>2]|1}G=b+8|0;return G|0}a=k[9751]|0;if(a>>>0>o>>>0){E=a-o|0;k[9751]=E;G=k[9754]|0;F=G+o|0;k[9754]=F;k[F+4>>2]=E|1;k[G+4>>2]=o|3;G=G+8|0;return G|0}do if(!(k[9866]|0)){a=Ka(30)|0;if(!(a+-1&a)){k[9868]=a;k[9867]=a;k[9869]=-1;k[9870]=-1;k[9871]=0;k[9859]=0;v=(lb(0)|0)&-16^1431655768;k[9866]=v;break}else Fb()}while(0);g=o+48|0;d=k[9868]|0;h=o+47|0;c=d+h|0;d=0-d|0;i=c&d;if(i>>>0<=o>>>0){G=0;return G|0}a=k[9858]|0;if(a|0?(t=k[9856]|0,v=t+i|0,v>>>0<=t>>>0|v>>>0>a>>>0):0){G=0;return G|0}b:do if(!(k[9859]&4)){b=k[9754]|0;c:do if(b){e=39440;while(1){a=k[e>>2]|0;if(a>>>0<=b>>>0?(r=e+4|0,(a+(k[r>>2]|0)|0)>>>0>b>>>0):0)break;a=k[e+8>>2]|0;if(!a){z=173;break c}else e=a}a=c-(k[9751]|0)&d;if(a>>>0<2147483647){b=Ha(a|0)|0;if((b|0)==((k[e>>2]|0)+(k[r>>2]|0)|0)){if((b|0)!=(-1|0)){g=b;f=a;z=193;break b}}else z=183}}else z=173;while(0);do if((z|0)==173?(u=Ha(0)|0,(u|0)!=(-1|0)):0){a=u;b=k[9867]|0;c=b+-1|0;if(!(c&a))a=i;else a=i-a+(c+a&0-b)|0;b=k[9856]|0;c=b+a|0;if(a>>>0>o>>>0&a>>>0<2147483647){v=k[9858]|0;if(v|0?c>>>0<=b>>>0|c>>>0>v>>>0:0)break;b=Ha(a|0)|0;if((b|0)==(u|0)){g=u;f=a;z=193;break b}else z=183}}while(0);d:do if((z|0)==183){c=0-a|0;do if(g>>>0>a>>>0&(a>>>0<2147483647&(b|0)!=(-1|0))?(w=k[9868]|0,w=h-a+w&0-w,w>>>0<2147483647):0)if((Ha(w|0)|0)==(-1|0)){Ha(c|0)|0;break d}else{a=w+a|0;break}while(0);if((b|0)!=(-1|0)){g=b;f=a;z=193;break b}}while(0);k[9859]=k[9859]|4;z=190}else z=190;while(0);if((((z|0)==190?i>>>0<2147483647:0)?(x=Ha(i|0)|0,y=Ha(0)|0,x>>>0<y>>>0&((x|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(f=y-x|0,f>>>0>(o+40|0)>>>0):0){g=x;z=193}if((z|0)==193){a=(k[9856]|0)+f|0;k[9856]=a;if(a>>>0>(k[9857]|0)>>>0)k[9857]=a;j=k[9754]|0;do if(j){e=39440;while(1){a=k[e>>2]|0;b=e+4|0;c=k[b>>2]|0;if((g|0)==(a+c|0)){z=203;break}d=k[e+8>>2]|0;if(!d)break;else e=d}if(((z|0)==203?(k[e+12>>2]&8|0)==0:0)?j>>>0<g>>>0&j>>>0>=a>>>0:0){k[b>>2]=c+f;G=j+8|0;G=(G&7|0)==0?0:0-G&7;F=j+G|0;G=(k[9751]|0)+(f-G)|0;k[9754]=F;k[9751]=G;k[F+4>>2]=G|1;k[F+G+4>>2]=40;k[9755]=k[9870];break}a=k[9752]|0;if(g>>>0<a>>>0){k[9752]=g;h=g}else h=a;b=g+f|0;a=39440;while(1){if((k[a>>2]|0)==(b|0)){z=211;break}a=k[a+8>>2]|0;if(!a){b=39440;break}}if((z|0)==211)if(!(k[a+12>>2]&8)){k[a>>2]=g;m=a+4|0;k[m>>2]=(k[m>>2]|0)+f;m=g+8|0;m=g+((m&7|0)==0?0:0-m&7)|0;a=b+8|0;a=b+((a&7|0)==0?0:0-a&7)|0;l=m+o|0;i=a-m-o|0;k[m+4>>2]=o|3;do if((a|0)!=(j|0)){if((a|0)==(k[9753]|0)){G=(k[9750]|0)+i|0;k[9750]=G;k[9753]=l;k[l+4>>2]=G|1;k[l+G>>2]=G;break}b=k[a+4>>2]|0;if((b&3|0)==1){g=b&-8;e=b>>>3;e:do if(b>>>0>=256){f=k[a+24>>2]|0;d=k[a+12>>2]|0;do if((d|0)==(a|0)){d=a+16|0;c=d+4|0;b=k[c>>2]|0;if(!b){b=k[d>>2]|0;if(!b){E=0;break}else c=d}while(1){d=b+20|0;e=k[d>>2]|0;if(e|0){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0<h>>>0)Fb();else{k[c>>2]=0;E=b;break}}else{e=k[a+8>>2]|0;if(e>>>0<h>>>0)Fb();b=e+12|0;if((k[b>>2]|0)!=(a|0))Fb();c=d+8|0;if((k[c>>2]|0)==(a|0)){k[b>>2]=d;k[c>>2]=e;E=d;break}else Fb()}while(0);if(!f)break;b=k[a+28>>2]|0;c=39296+(b<<2)|0;do if((a|0)!=(k[c>>2]|0)){if(f>>>0<(k[9752]|0)>>>0)Fb();b=f+16|0;if((k[b>>2]|0)==(a|0))k[b>>2]=E;else k[f+20>>2]=E;if(!E)break e}else{k[c>>2]=E;if(E|0)break;k[9749]=k[9749]&~(1<<b);break e}while(0);d=k[9752]|0;if(E>>>0<d>>>0)Fb();k[E+24>>2]=f;b=a+16|0;c=k[b>>2]|0;do if(c|0)if(c>>>0<d>>>0)Fb();else{k[E+16>>2]=c;k[c+24>>2]=E;break}while(0);b=k[b+4>>2]|0;if(!b)break;if(b>>>0<(k[9752]|0)>>>0)Fb();else{k[E+20>>2]=b;k[b+24>>2]=E;break}}else{c=k[a+8>>2]|0;d=k[a+12>>2]|0;b=39032+(e<<1<<2)|0;do if((c|0)!=(b|0)){if(c>>>0<h>>>0)Fb();if((k[c+12>>2]|0)==(a|0))break;Fb()}while(0);if((d|0)==(c|0)){k[9748]=k[9748]&~(1<<e);break}do if((d|0)==(b|0))B=d+8|0;else{if(d>>>0<h>>>0)Fb();b=d+8|0;if((k[b>>2]|0)==(a|0)){B=b;break}Fb()}while(0);k[c+12>>2]=d;k[B>>2]=c}while(0);a=a+g|0;e=g+i|0}else e=i;a=a+4|0;k[a>>2]=k[a>>2]&-2;k[l+4>>2]=e|1;k[l+e>>2]=e;a=e>>>3;if(e>>>0<256){c=39032+(a<<1<<2)|0;b=k[9748]|0;a=1<<a;do if(!(b&a)){k[9748]=b|a;F=c+8|0;G=c}else{a=c+8|0;b=k[a>>2]|0;if(b>>>0>=(k[9752]|0)>>>0){F=a;G=b;break}Fb()}while(0);k[F>>2]=l;k[G+12>>2]=l;k[l+8>>2]=G;k[l+12>>2]=c;break}a=e>>>8;do if(!a)c=0;else{if(e>>>0>16777215){c=31;break}F=(a+1048320|0)>>>16&8;G=a<<F;E=(G+520192|0)>>>16&4;G=G<<E;c=(G+245760|0)>>>16&2;c=14-(E|F|c)+(G<<c>>>15)|0;c=e>>>(c+7|0)&1|c<<1}while(0);d=39296+(c<<2)|0;k[l+28>>2]=c;a=l+16|0;k[a+4>>2]=0;k[a>>2]=0;a=k[9749]|0;b=1<<c;if(!(a&b)){k[9749]=a|b;k[d>>2]=l;k[l+24>>2]=d;k[l+12>>2]=l;k[l+8>>2]=l;break}c=e<<((c|0)==31?0:25-(c>>>1)|0);d=k[d>>2]|0;while(1){if((k[d+4>>2]&-8|0)==(e|0)){z=281;break}b=d+16+(c>>>31<<2)|0;a=k[b>>2]|0;if(!a){z=278;break}else{c=c<<1;d=a}}if((z|0)==278)if(b>>>0<(k[9752]|0)>>>0)Fb();else{k[b>>2]=l;k[l+24>>2]=d;k[l+12>>2]=l;k[l+8>>2]=l;break}else if((z|0)==281){a=d+8|0;b=k[a>>2]|0;G=k[9752]|0;if(b>>>0>=G>>>0&d>>>0>=G>>>0){k[b+12>>2]=l;k[a>>2]=l;k[l+8>>2]=b;k[l+12>>2]=d;k[l+24>>2]=0;break}else Fb()}}else{G=(k[9751]|0)+i|0;k[9751]=G;k[9754]=l;k[l+4>>2]=G|1}while(0);G=m+8|0;return G|0}else b=39440;while(1){a=k[b>>2]|0;if(a>>>0<=j>>>0?(A=a+(k[b+4>>2]|0)|0,A>>>0>j>>>0):0)break;b=k[b+8>>2]|0}e=A+-47|0;b=e+8|0;b=e+((b&7|0)==0?0:0-b&7)|0;e=j+16|0;b=b>>>0<e>>>0?j:b;a=b+8|0;c=g+8|0;c=(c&7|0)==0?0:0-c&7;G=g+c|0;c=f+-40-c|0;k[9754]=G;k[9751]=c;k[G+4>>2]=c|1;k[G+c+4>>2]=40;k[9755]=k[9870];c=b+4|0;k[c>>2]=27;k[a>>2]=k[9860];k[a+4>>2]=k[9861];k[a+8>>2]=k[9862];k[a+12>>2]=k[9863];k[9860]=g;k[9861]=f;k[9863]=0;k[9862]=a;a=b+24|0;do{a=a+4|0;k[a>>2]=7}while((a+4|0)>>>0<A>>>0);if((b|0)!=(j|0)){f=b-j|0;k[c>>2]=k[c>>2]&-2;k[j+4>>2]=f|1;k[b>>2]=f;a=f>>>3;if(f>>>0<256){c=39032+(a<<1<<2)|0;b=k[9748]|0;a=1<<a;if(b&a){a=c+8|0;b=k[a>>2]|0;if(b>>>0<(k[9752]|0)>>>0)Fb();else{C=a;D=b}}else{k[9748]=b|a;C=c+8|0;D=c}k[C>>2]=j;k[D+12>>2]=j;k[j+8>>2]=D;k[j+12>>2]=c;break}a=f>>>8;if(a)if(f>>>0>16777215)c=31;else{F=(a+1048320|0)>>>16&8;G=a<<F;E=(G+520192|0)>>>16&4;G=G<<E;c=(G+245760|0)>>>16&2;c=14-(E|F|c)+(G<<c>>>15)|0;c=f>>>(c+7|0)&1|c<<1}else c=0;d=39296+(c<<2)|0;k[j+28>>2]=c;k[j+20>>2]=0;k[e>>2]=0;a=k[9749]|0;b=1<<c;if(!(a&b)){k[9749]=a|b;k[d>>2]=j;k[j+24>>2]=d;k[j+12>>2]=j;k[j+8>>2]=j;break}c=f<<((c|0)==31?0:25-(c>>>1)|0);d=k[d>>2]|0;while(1){if((k[d+4>>2]&-8|0)==(f|0)){z=307;break}b=d+16+(c>>>31<<2)|0;a=k[b>>2]|0;if(!a){z=304;break}else{c=c<<1;d=a}}if((z|0)==304)if(b>>>0<(k[9752]|0)>>>0)Fb();else{k[b>>2]=j;k[j+24>>2]=d;k[j+12>>2]=j;k[j+8>>2]=j;break}else if((z|0)==307){a=d+8|0;b=k[a>>2]|0;G=k[9752]|0;if(b>>>0>=G>>>0&d>>>0>=G>>>0){k[b+12>>2]=j;k[a>>2]=j;k[j+8>>2]=b;k[j+12>>2]=d;k[j+24>>2]=0;break}else Fb()}}}else{G=k[9752]|0;if((G|0)==0|g>>>0<G>>>0)k[9752]=g;k[9860]=g;k[9861]=f;k[9863]=0;k[9757]=k[9866];k[9756]=-1;a=0;do{G=39032+(a<<1<<2)|0;k[G+12>>2]=G;k[G+8>>2]=G;a=a+1|0}while((a|0)!=32);G=g+8|0;G=(G&7|0)==0?0:0-G&7;F=g+G|0;G=f+-40-G|0;k[9754]=F;k[9751]=G;k[F+4>>2]=G|1;k[F+G+4>>2]=40;k[9755]=k[9870]}while(0);a=k[9751]|0;if(a>>>0>o>>>0){E=a-o|0;k[9751]=E;G=k[9754]|0;F=G+o|0;k[9754]=F;k[F+4>>2]=E|1;k[G+4>>2]=o|3;G=G+8|0;return G|0}}if(!(k[9736]|0))a=38988;else{a=(Wb()|0)+64|0;a=k[a>>2]|0}k[a>>2]=12;G=0;return G|0}function Me(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!a)return;c=a+-8|0;g=k[9752]|0;if(c>>>0<g>>>0)Fb();a=k[a+-4>>2]|0;b=a&3;if((b|0)==1)Fb();d=a&-8;m=c+d|0;do if(!(a&1)){a=k[c>>2]|0;if(!b)return;j=c+(0-a)|0;i=a+d|0;if(j>>>0<g>>>0)Fb();if((j|0)==(k[9753]|0)){a=m+4|0;b=k[a>>2]|0;if((b&3|0)!=3){q=j;e=i;break}k[9750]=i;k[a>>2]=b&-2;k[j+4>>2]=i|1;k[j+i>>2]=i;return}d=a>>>3;if(a>>>0<256){b=k[j+8>>2]|0;c=k[j+12>>2]|0;a=39032+(d<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<g>>>0)Fb();if((k[b+12>>2]|0)!=(j|0))Fb()}if((c|0)==(b|0)){k[9748]=k[9748]&~(1<<d);q=j;e=i;break}if((c|0)!=(a|0)){if(c>>>0<g>>>0)Fb();a=c+8|0;if((k[a>>2]|0)==(j|0))f=a;else Fb()}else f=c+8|0;k[b+12>>2]=c;k[f>>2]=b;q=j;e=i;break}f=k[j+24>>2]|0;c=k[j+12>>2]|0;do if((c|0)==(j|0)){c=j+16|0;b=c+4|0;a=k[b>>2]|0;if(!a){a=k[c>>2]|0;if(!a){h=0;break}else b=c}while(1){c=a+20|0;d=k[c>>2]|0;if(d|0){a=d;b=c;continue}c=a+16|0;d=k[c>>2]|0;if(!d)break;else{a=d;b=c}}if(b>>>0<g>>>0)Fb();else{k[b>>2]=0;h=a;break}}else{d=k[j+8>>2]|0;if(d>>>0<g>>>0)Fb();a=d+12|0;if((k[a>>2]|0)!=(j|0))Fb();b=c+8|0;if((k[b>>2]|0)==(j|0)){k[a>>2]=c;k[b>>2]=d;h=c;break}else Fb()}while(0);if(f){a=k[j+28>>2]|0;b=39296+(a<<2)|0;if((j|0)==(k[b>>2]|0)){k[b>>2]=h;if(!h){k[9749]=k[9749]&~(1<<a);q=j;e=i;break}}else{if(f>>>0<(k[9752]|0)>>>0)Fb();a=f+16|0;if((k[a>>2]|0)==(j|0))k[a>>2]=h;else k[f+20>>2]=h;if(!h){q=j;e=i;break}}c=k[9752]|0;if(h>>>0<c>>>0)Fb();k[h+24>>2]=f;a=j+16|0;b=k[a>>2]|0;do if(b|0)if(b>>>0<c>>>0)Fb();else{k[h+16>>2]=b;k[b+24>>2]=h;break}while(0);a=k[a+4>>2]|0;if(a)if(a>>>0<(k[9752]|0)>>>0)Fb();else{k[h+20>>2]=a;k[a+24>>2]=h;q=j;e=i;break}else{q=j;e=i}}else{q=j;e=i}}else{q=c;e=d}while(0);if(q>>>0>=m>>>0)Fb();a=m+4|0;b=k[a>>2]|0;if(!(b&1))Fb();if(!(b&2)){if((m|0)==(k[9754]|0)){p=(k[9751]|0)+e|0;k[9751]=p;k[9754]=q;k[q+4>>2]=p|1;if((q|0)!=(k[9753]|0))return;k[9753]=0;k[9750]=0;return}if((m|0)==(k[9753]|0)){p=(k[9750]|0)+e|0;k[9750]=p;k[9753]=q;k[q+4>>2]=p|1;k[q+p>>2]=p;return}e=(b&-8)+e|0;d=b>>>3;do if(b>>>0>=256){f=k[m+24>>2]|0;a=k[m+12>>2]|0;do if((a|0)==(m|0)){c=m+16|0;b=c+4|0;a=k[b>>2]|0;if(!a){a=k[c>>2]|0;if(!a){n=0;break}else b=c}while(1){c=a+20|0;d=k[c>>2]|0;if(d|0){a=d;b=c;continue}c=a+16|0;d=k[c>>2]|0;if(!d)break;else{a=d;b=c}}if(b>>>0<(k[9752]|0)>>>0)Fb();else{k[b>>2]=0;n=a;break}}else{b=k[m+8>>2]|0;if(b>>>0<(k[9752]|0)>>>0)Fb();c=b+12|0;if((k[c>>2]|0)!=(m|0))Fb();d=a+8|0;if((k[d>>2]|0)==(m|0)){k[c>>2]=a;k[d>>2]=b;n=a;break}else Fb()}while(0);if(f|0){a=k[m+28>>2]|0;b=39296+(a<<2)|0;if((m|0)==(k[b>>2]|0)){k[b>>2]=n;if(!n){k[9749]=k[9749]&~(1<<a);break}}else{if(f>>>0<(k[9752]|0)>>>0)Fb();a=f+16|0;if((k[a>>2]|0)==(m|0))k[a>>2]=n;else k[f+20>>2]=n;if(!n)break}c=k[9752]|0;if(n>>>0<c>>>0)Fb();k[n+24>>2]=f;a=m+16|0;b=k[a>>2]|0;do if(b|0)if(b>>>0<c>>>0)Fb();else{k[n+16>>2]=b;k[b+24>>2]=n;break}while(0);a=k[a+4>>2]|0;if(a|0)if(a>>>0<(k[9752]|0)>>>0)Fb();else{k[n+20>>2]=a;k[a+24>>2]=n;break}}}else{b=k[m+8>>2]|0;c=k[m+12>>2]|0;a=39032+(d<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(k[9752]|0)>>>0)Fb();if((k[b+12>>2]|0)!=(m|0))Fb()}if((c|0)==(b|0)){k[9748]=k[9748]&~(1<<d);break}if((c|0)!=(a|0)){if(c>>>0<(k[9752]|0)>>>0)Fb();a=c+8|0;if((k[a>>2]|0)==(m|0))l=a;else Fb()}else l=c+8|0;k[b+12>>2]=c;k[l>>2]=b}while(0);k[q+4>>2]=e|1;k[q+e>>2]=e;if((q|0)==(k[9753]|0)){k[9750]=e;return}}else{k[a>>2]=b&-2;k[q+4>>2]=e|1;k[q+e>>2]=e}a=e>>>3;if(e>>>0<256){c=39032+(a<<1<<2)|0;b=k[9748]|0;a=1<<a;if(b&a){a=c+8|0;b=k[a>>2]|0;if(b>>>0<(k[9752]|0)>>>0)Fb();else{o=a;p=b}}else{k[9748]=b|a;o=c+8|0;p=c}k[o>>2]=q;k[p+12>>2]=q;k[q+8>>2]=p;k[q+12>>2]=c;return}a=e>>>8;if(a)if(e>>>0>16777215)c=31;else{o=(a+1048320|0)>>>16&8;p=a<<o;n=(p+520192|0)>>>16&4;p=p<<n;c=(p+245760|0)>>>16&2;c=14-(n|o|c)+(p<<c>>>15)|0;c=e>>>(c+7|0)&1|c<<1}else c=0;d=39296+(c<<2)|0;k[q+28>>2]=c;k[q+20>>2]=0;k[q+16>>2]=0;a=k[9749]|0;b=1<<c;do if(a&b){c=e<<((c|0)==31?0:25-(c>>>1)|0);d=k[d>>2]|0;while(1){if((k[d+4>>2]&-8|0)==(e|0)){a=130;break}b=d+16+(c>>>31<<2)|0;a=k[b>>2]|0;if(!a){a=127;break}else{c=c<<1;d=a}}if((a|0)==127)if(b>>>0<(k[9752]|0)>>>0)Fb();else{k[b>>2]=q;k[q+24>>2]=d;k[q+12>>2]=q;k[q+8>>2]=q;break}else if((a|0)==130){a=d+8|0;b=k[a>>2]|0;p=k[9752]|0;if(b>>>0>=p>>>0&d>>>0>=p>>>0){k[b+12>>2]=q;k[a>>2]=q;k[q+8>>2]=b;k[q+12>>2]=d;k[q+24>>2]=0;break}else Fb()}}else{k[9749]=a|b;k[d>>2]=q;k[q+24>>2]=d;k[q+12>>2]=q;k[q+8>>2]=q}while(0);q=(k[9756]|0)+-1|0;k[9756]=q;if(!q)a=39448;else return;while(1){a=k[a>>2]|0;if(!a)break;else a=a+8|0}k[9756]=-1;return}function Ne(a){a=a|0;return}function Oe(a){a=a|0;Me(a);return}function Pe(a){a=a|0;return}function Qe(a){a=a|0;return}function Re(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+64|0;f=g;if((a|0)!=(b|0))if((b|0)!=0?(e=Se(b,4336)|0,(e|0)!=0):0){b=f;d=b+56|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(d|0));k[f>>2]=e;k[f+8>>2]=a;k[f+12>>2]=-1;k[f+48>>2]=1;rc[k[(k[e>>2]|0)+28>>2]&3](e,f,k[c>>2]|0,1);if((k[f+24>>2]|0)==1){k[c>>2]=k[f+16>>2];b=1}else b=0}else b=0;else b=1;r=g;return b|0}function Se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+64|0;q=s;p=k[a>>2]|0;o=a+(k[p+-8>>2]|0)|0;p=k[p+-4>>2]|0;k[q>>2]=b;k[q+4>>2]=a;k[q+8>>2]=4368;h=q+12|0;l=q+16|0;a=q+20|0;c=q+24|0;d=q+28|0;e=q+32|0;f=q+40|0;g=(p|0)==(b|0);m=h;n=m+40|0;do{k[m>>2]=0;m=m+4|0}while((m|0)<(n|0));j[h+40>>1]=0;i[h+42>>0]=0;a:do if(g){k[q+48>>2]=1;pc[k[(k[b>>2]|0)+20>>2]&3](b,q,o,o,1,0);a=(k[c>>2]|0)==1?o:0}else{hc[k[(k[p>>2]|0)+24>>2]&3](p,q,o,1,0);switch(k[q+36>>2]|0){case 0:{a=(k[f>>2]|0)==1&(k[d>>2]|0)==1&(k[e>>2]|0)==1?k[a>>2]|0:0;break a}case 1:break;default:{a=0;break a}}if((k[c>>2]|0)!=1?!((k[f>>2]|0)==0&(k[d>>2]|0)==1&(k[e>>2]|0)==1):0){a=0;break}a=k[l>>2]|0}while(0);r=s;return a|0}function Te(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Ue(b,c,d,e);else{a=k[a+8>>2]|0;pc[k[(k[a>>2]|0)+20>>2]&3](a,b,c,d,e,f)}return}function Ue(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;i[a+53>>0]=1;do if((k[a+4>>2]|0)==(c|0)){i[a+52>>0]=1;c=a+16|0;e=k[c>>2]|0;if(!e){k[c>>2]=b;k[a+24>>2]=d;k[a+36>>2]=1;if(!((d|0)==1?(k[a+48>>2]|0)==1:0))break;i[a+54>>0]=1;break}if((e|0)!=(b|0)){d=a+36|0;k[d>>2]=(k[d>>2]|0)+1;i[a+54>>0]=1;break}e=a+24|0;c=k[e>>2]|0;if((c|0)==2){k[e>>2]=d;c=d}if((c|0)==1?(k[a+48>>2]|0)==1:0)i[a+54>>0]=1}while(0);return}function Ve(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){h=k[a+8>>2]|0;hc[k[(k[h>>2]|0)+24>>2]&3](h,b,c,d,e);break}if((k[b+16>>2]|0)!=(c|0)?(h=b+20|0,(k[h>>2]|0)!=(c|0)):0){k[b+32>>2]=d;g=b+44|0;if((k[g>>2]|0)==4)break;f=b+52|0;i[f>>0]=0;d=b+53|0;i[d>>0]=0;a=k[a+8>>2]|0;pc[k[(k[a>>2]|0)+20>>2]&3](a,b,c,c,1,e);if(i[d>>0]|0)if(!(i[f>>0]|0)){f=1;d=13}else d=17;else{f=0;d=13}do if((d|0)==13){k[h>>2]=c;c=b+40|0;k[c>>2]=(k[c>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0){i[b+54>>0]=1;if(f){d=17;break}else{f=4;break}}if(f)d=17;else f=4}while(0);if((d|0)==17)f=3;k[g>>2]=f;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function We(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;do if((a|0)==(k[b+8>>2]|0)){a=b+16|0;e=k[a>>2]|0;if(!e){k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1;break}if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}else{e=k[a+8>>2]|0;rc[k[(k[e>>2]|0)+28>>2]&3](e,b,c,d)}while(0);return}function Xe(a){a=a|0;Me(a);return}function Ye(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Ue(b,c,d,e);return}function Ze(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(g=b+28|0,(k[g>>2]|0)!=1):0)k[g>>2]=d}else if((a|0)==(k[b>>2]|0)){if((k[b+16>>2]|0)!=(c|0)?(f=b+20|0,(k[f>>2]|0)!=(c|0)):0){k[b+32>>2]=d;k[f>>2]=c;e=b+40|0;k[e>>2]=(k[e>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0)i[b+54>>0]=1;k[b+44>>2]=4;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function _e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;do if((a|0)==(k[b+8>>2]|0)){a=b+16|0;e=k[a>>2]|0;if(!e){k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1;break}if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}while(0);return}function $e(a){a=a|0;return}function af(a){a=a|0;Me(a);return}function bf(a){a=a|0;return 38644}function cf(a){a=a|0;Me(a);return}function df(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}function ef(a){a=a|0;Me(a);return}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+64|0;h=i;k[c>>2]=k[k[c>>2]>>2];if(!((a|0)==(b|0)|(b|0)==4464))if(((b|0)!=0?(d=Se(b,4424)|0,(d|0)!=0):0)?(k[d+8>>2]&~k[a+8>>2]|0)==0:0){b=k[a+12>>2]|0;a=d+12|0;if(!((b|0)==4456?1:(b|0)==(k[a>>2]|0)))if((((b|0)!=0?(f=Se(b,4336)|0,(f|0)!=0):0)?(e=k[a>>2]|0,(e|0)!=0):0)?(g=Se(e,4336)|0,(g|0)!=0):0){a=h;b=a+56|0;do{k[a>>2]=0;a=a+4|0}while((a|0)<(b|0));k[h>>2]=g;k[h+8>>2]=f;k[h+12>>2]=-1;k[h+48>>2]=1;rc[k[(k[g>>2]|0)+28>>2]&3](g,h,k[c>>2]|0,1);if((k[h+24>>2]|0)==1){k[c>>2]=k[h+16>>2];a=1}else a=0}else a=0;else a=1}else a=0;else a=1;r=i;return a|0}function gf(a){a=a|0;Me(a);return}function hf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((a|0)==(k[b+8>>2]|0))Ue(b,c,d,e);else{o=b+52|0;r=j[o>>1]|0;p=r&255;q=b+53|0;r=(r&65535)>>>8&255;n=k[a+12>>2]|0;h=a+16+(n<<3)|0;i[o>>0]=0;i[q>>0]=0;jf(a+16|0,b,c,d,e,f);a:do if((n|0)>1){l=b+24|0;m=a+8|0;n=b+54|0;g=a+24|0;do{if(i[n>>0]|0)break a;a=j[o>>1]|0;if(!((a&255)<<24>>24)){if((a&65535)>=256?(k[m>>2]&1|0)==0:0)break a}else{if((k[l>>2]|0)==1)break a;if(!(k[m>>2]&2))break a}i[o>>0]=0;i[q>>0]=0;jf(g,b,c,d,e,f);g=g+8|0}while(g>>>0<h>>>0)}while(0);i[o>>0]=p;i[q>>0]=r}return}function jf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=k[a+4>>2]|0;g=h>>8;if(h&1)g=k[(k[d>>2]|0)+g>>2]|0;a=k[a>>2]|0;pc[k[(k[a>>2]|0)+20>>2]&3](a,b,c,d+g|0,h&2|0?e:2,f);return}function kf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;a:do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){p=k[a+12>>2]|0;h=a+16+(p<<3)|0;lf(a+16|0,b,c,d,e);f=a+24|0;if((p|0)<=1)break;g=k[a+8>>2]|0;if((g&2|0)==0?(j=b+36|0,(k[j>>2]|0)!=1):0){if(!(g&1)){g=b+54|0;while(1){if(i[g>>0]|0)break a;if((k[j>>2]|0)==1)break a;lf(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+24|0;a=b+54|0;while(1){if(i[a>>0]|0)break a;if((k[j>>2]|0)==1?(k[g>>2]|0)==1:0)break a;lf(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+54|0;while(1){if(i[g>>0]|0)break a;lf(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}if((k[b+16>>2]|0)!=(c|0)?(p=b+20|0,(k[p>>2]|0)!=(c|0)):0){k[b+32>>2]=d;o=b+44|0;if((k[o>>2]|0)==4)break;g=k[a+12>>2]|0;h=a+16+(g<<3)|0;j=b+52|0;d=b+53|0;m=b+54|0;l=a+8|0;n=b+24|0;b:do if((g|0)>0){g=0;f=0;a=a+16|0;c:do{i[j>>0]=0;i[d>>0]=0;jf(a,b,c,c,1,e);if(i[m>>0]|0)break;do if(i[d>>0]|0){if(!(i[j>>0]|0))if(!(k[l>>2]&1)){f=1;break c}else{f=1;break}if((k[n>>2]|0)==1){g=25;break b}if(!(k[l>>2]&2)){g=25;break b}else{g=1;f=1}}while(0);a=a+8|0}while(a>>>0<h>>>0);if(g)g=24;else g=21}else{f=0;g=21}while(0);if((g|0)==21){k[p>>2]=c;c=b+40|0;k[c>>2]=(k[c>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[n>>2]|0)==2:0){i[m>>0]=1;if(f)g=25;else f=4}else g=24}if((g|0)==24)if(f)g=25;else f=4;if((g|0)==25)f=3;k[o>>2]=f;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function lf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=k[a+4>>2]|0;f=g>>8;if(g&1)f=k[(k[c>>2]|0)+f>>2]|0;a=k[a>>2]|0;hc[k[(k[a>>2]|0)+24>>2]&3](a,b,c+f|0,g&2|0?d:2,e);return}function mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if((a|0)==(k[b+8>>2]|0)){a=b+16|0;e=k[a>>2]|0;if(!e){k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1;break}if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}else{f=k[a+12>>2]|0;e=a+16+(f<<3)|0;nf(a+16|0,b,c,d);if((f|0)>1){f=b+54|0;a=a+24|0;do{nf(a,b,c,d);if(i[f>>0]|0)break a;a=a+8|0}while(a>>>0<e>>>0)}}while(0);return}function nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=k[a+4>>2]|0;e=f>>8;if(f&1)e=k[(k[c>>2]|0)+e>>2]|0;a=k[a>>2]|0;rc[k[(k[a>>2]|0)+28>>2]&3](a,b,c+e|0,f&2|0?d:2);return}function of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;k[d>>2]=k[c>>2];a=gc[k[(k[a>>2]|0)+16>>2]&7](a,b,d)|0;if(a)k[c>>2]=k[d>>2];r=e;return a&1|0}function pf(a){a=a|0;if(!a)a=0;else a=(Se(a,4424)|0)!=0;return a&1|0}function qf(){}function rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+c|0;if((c|0)>=20){b=b&255;f=a&3;g=b|b<<8|b<<16|b<<24;e=d&~3;if(f){f=a+4-f|0;while((a|0)<(f|0)){i[a>>0]=b;a=a+1|0}}while((a|0)<(e|0)){k[a>>2]=g;a=a+4|0}}while((a|0)<(d|0)){i[a>>0]=b;a=a+1|0}return a-c|0}function sf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}L=a<<c-32;return 0}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (L=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function uf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}L=(b|0)<0?-1:0;return b>>c-32|0}function vf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}L=0;return b>>>c-32|0}function wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((c|0)>=4096)return Ia(a|0,b|0,c|0)|0;d=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return d|0;i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){k[a>>2]=k[b>>2];a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}return d|0}function xf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)<(a|0)&(a|0)<(b+c|0)){d=a;b=b+c|0;a=a+c|0;while((c|0)>0){a=a-1|0;b=b-1|0;c=c-1|0;i[a>>0]=i[b>>0]|0}a=d}else wf(a,b,c)|0;return a|0}function yf(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 (L=d,a-c>>>0|0)|0}function zf(a){a=a|0;var b=0;b=i[v+(a&255)>>0]|0;if((b|0)<8)return b|0;b=i[v+(a>>8&255)>>0]|0;if((b|0)<8)return b+8|0;b=i[v+(a>>16&255)>>0]|0;if((b|0)<8)return b+16|0;return (i[v+(a>>>24)>>0]|0)+24|0}function Af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=ha(e,f)|0;d=a>>>16;a=(c>>>16)+(ha(e,d)|0)|0;e=b>>>16;b=ha(e,f)|0;return (L=(a>>>16)+(ha(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Bf(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=yf(j^a|0,i^b|0,j|0,i|0)|0;g=L;a=f^j;b=e^i;return yf((Gf(h,g,yf(f^c|0,e^d|0,f|0,e|0)|0,L,0)|0)^a|0,L^b|0,a|0,b|0)|0}function Cf(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;e=r;r=r+16|0;h=e|0;g=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=d>>31|((d|0)<0?-1:0)<<1;i=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=yf(g^a|0,f^b|0,g|0,f|0)|0;b=L;Gf(a,b,yf(j^c|0,i^d|0,j|0,i|0)|0,L,h)|0;d=yf(k[h>>2]^g|0,k[h+4>>2]^f|0,g|0,f|0)|0;c=L;r=e;return (L=c,d)|0}function Df(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=Af(e,f)|0;a=L;return (L=(ha(b,f)|0)+(ha(d,e)|0)+a|a&0,c|0|0)|0}function Ef(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Gf(a,b,c,d,0)|0}function Ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=r;r=r+16|0;e=f|0;Gf(a,b,c,d,e)|0;r=f;return (L=k[e+4>>2]|0,k[e>>2]|0)|0}function Gf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;l=a;i=b;j=i;g=c;n=d;h=n;if(!j){f=(e|0)!=0;if(!h){if(f){k[e>>2]=(l>>>0)%(g>>>0);k[e+4>>2]=0}n=0;e=(l>>>0)/(g>>>0)>>>0;return (L=n,e)|0}else{if(!f){n=0;e=0;return (L=n,e)|0}k[e>>2]=a|0;k[e+4>>2]=b&0;n=0;e=0;return (L=n,e)|0}}f=(h|0)==0;do if(g){if(!f){f=(ja(h|0)|0)-(ja(j|0)|0)|0;if(f>>>0<=31){m=f+1|0;h=31-f|0;b=f-31>>31;g=m;a=l>>>(m>>>0)&b|j<<h;b=j>>>(m>>>0)&b;f=0;h=l<<h;break}if(!e){n=0;e=0;return (L=n,e)|0}k[e>>2]=a|0;k[e+4>>2]=i|b&0;n=0;e=0;return (L=n,e)|0}f=g-1|0;if(f&g|0){h=(ja(g|0)|0)+33-(ja(j|0)|0)|0;p=64-h|0;m=32-h|0;i=m>>31;o=h-32|0;b=o>>31;g=h;a=m-1>>31&j>>>(o>>>0)|(j<<m|l>>>(h>>>0))&b;b=b&j>>>(h>>>0);f=l<<p&i;h=(j<<p|l>>>(o>>>0))&i|l<<m&h-33>>31;break}if(e|0){k[e>>2]=f&l;k[e+4>>2]=0}if((g|0)==1){o=i|b&0;p=a|0|0;return (L=o,p)|0}else{p=zf(g|0)|0;o=j>>>(p>>>0)|0;p=j<<32-p|l>>>(p>>>0)|0;return (L=o,p)|0}}else{if(f){if(e|0){k[e>>2]=(j>>>0)%(g>>>0);k[e+4>>2]=0}o=0;p=(j>>>0)/(g>>>0)>>>0;return (L=o,p)|0}if(!l){if(e|0){k[e>>2]=0;k[e+4>>2]=(j>>>0)%(h>>>0)}o=0;p=(j>>>0)/(h>>>0)>>>0;return (L=o,p)|0}f=h-1|0;if(!(f&h)){if(e|0){k[e>>2]=a|0;k[e+4>>2]=f&j|b&0}o=0;p=j>>>((zf(h|0)|0)>>>0);return (L=o,p)|0}f=(ja(h|0)|0)-(ja(j|0)|0)|0;if(f>>>0<=30){b=f+1|0;h=31-f|0;g=b;a=j<<h|l>>>(b>>>0);b=j>>>(b>>>0);f=0;h=l<<h;break}if(!e){o=0;p=0;return (L=o,p)|0}k[e>>2]=a|0;k[e+4>>2]=i|b&0;o=0;p=0;return (L=o,p)|0}while(0);if(!g){j=h;i=0;h=0}else{m=c|0|0;l=n|d&0;j=tf(m|0,l|0,-1,-1)|0;c=L;i=h;h=0;do{d=i;i=f>>>31|i<<1;f=h|f<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;yf(j|0,c|0,d|0,n|0)|0;p=L;o=p>>31|((p|0)<0?-1:0)<<1;h=o&1;a=yf(d|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=L;g=g-1|0}while((g|0)!=0);j=i;i=0}g=0;if(e|0){k[e>>2]=a;k[e+4>>2]=b}o=(f|0)>>>31|(j|g)<<1|(g<<1|f>>>31)&0|i;p=(f<<1|0>>>31)&-2|h;return (L=o,p)|0}function Hf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return gc[a&7](b|0,c|0,d|0)|0}function If(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;hc[a&3](b|0,c|0,d|0,e|0,f|0)}function Jf(a,b){a=a|0;b=b|0;ic[a&15](b|0)}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;jc[a&1](b|0,c|0)}function Lf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return kc[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Mf(a,b){a=a|0;b=b|0;return lc[a&3](b|0)|0}function Nf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;mc[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Of(a){a=a|0;nc[a&0]()}function Pf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return oc[a&3](b|0,c|0,d|0,e|0)|0}function Qf(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;pc[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Rf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return qc[a&3](b|0,c|0,d|0,e|0,f|0)|0}function Sf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;rc[a&3](b|0,c|0,d|0,e|0)}function Tf(a,b,c){a=a|0;b=b|0;c=c|0;ka(0);return 0}function Uf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ka(1)}function Vf(a){a=a|0;ka(2)}function Wf(a,b){a=a|0;b=b|0;ka(3)}function Xf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ka(4);return 0}function Yf(a){a=a|0;ka(5);return 0}function Zf(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;ka(6)}function _f(){ka(7)}function $f(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(8);return 0}function ag(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ka(9)}function bg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ka(10);return 0}function cg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(11)}
// EMSCRIPTEN_END_FUNCS
var gc=[Tf,Re,df,ff,Ic,Dc,Ec,Tf];var hc=[Uf,Ze,Ve,kf];var ic=[Vf,Ne,Xe,Pe,Qe,Oe,$e,af,cf,ef,gf,Hc,Fc,Vf,Vf,Vf];var jc=[Wf,Nc];var kc=[Xf,Kc];var lc=[Yf,bf,Gc,Yf];var mc=[Zf,Uc];var nc=[_f];var oc=[$f,Jc,Cc,Mc];var pc=[ag,Ye,Te,hf];var qc=[bg,Bc,Lc,bg];var rc=[cg,_e,We,mf];return{___cxa_can_catch:of,_free:Me,_opus_strerror:Qc,___cxa_is_pointer_type:pf,_i64Add:tf,_memmove:xf,_bitshift64Ashr:uf,_memset:rf,_malloc:Le,_memcpy:wf,___getTypeName:Je,_bitshift64Lshr:vf,_bitshift64Shl:sf,__GLOBAL__sub_I_opusscript_encoder_cpp:Oc,__GLOBAL__sub_I_bind_cpp:Ie,runPostSets:qf,_emscripten_replace_memory:fc,stackAlloc:sc,stackSave:tc,stackRestore:uc,establishStackSpace:vc,setThrew:wc,setTempRet0:zc,getTempRet0:Ac,dynCall_iiii:Hf,dynCall_viiiii:If,dynCall_vi:Jf,dynCall_vii:Kf,dynCall_iiiiiii:Lf,dynCall_ii:Mf,dynCall_viiiiiii:Nf,dynCall_v:Of,dynCall_iiiii:Pf,dynCall_viiiiii:Qf,dynCall_iiiiii:Rf,dynCall_viiii:Sf}})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=asm["__GLOBAL__sub_I_bind_cpp"];var _free=Module["_free"]=asm["_free"];var __GLOBAL__sub_I_opusscript_encoder_cpp=Module["__GLOBAL__sub_I_opusscript_encoder_cpp"]=asm["__GLOBAL__sub_I_opusscript_encoder_cpp"];var _opus_strerror=Module["_opus_strerror"]=asm["_opus_strerror"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memmove=Module["_memmove"]=asm["_memmove"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memset=Module["_memset"]=asm["_memset"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var ___getTypeName=Module["___getTypeName"]=asm["___getTypeName"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];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){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;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();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["exit"](status)}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()