k2-im 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -0
- package/dist/browser-BKCNJDKR.js +2 -0
- package/dist/chat-kit-pinia.d.ts +7753 -0
- package/dist/chat-kit-pinia.js +1 -0
- package/dist/chat-kit-vue.d.ts +1557 -0
- package/dist/chat-kit-vue.js +1 -0
- package/dist/chat-kit.d.ts +7674 -0
- package/dist/chat-kit.js +1 -0
- package/dist/chunk-BRHUZPIB.js +1 -0
- package/dist/chunk-I6FUD7EW.js +1 -0
- package/dist/chunk-IDECJJXC.js +0 -0
- package/dist/chunk-RZFMPR6C.js +1 -0
- package/dist/chunk-SXY56EVC.js +0 -0
- package/dist/chunk-UWQHGBMV.js +1 -0
- package/dist/chunk-VKSMKG6Q.js +7 -0
- package/dist/chunk-WOT6VMZA.js +1 -0
- package/dist/chunk-YMH6LM5Q.js +2 -0
- package/dist/i18n.d.ts +1095 -0
- package/dist/i18n.js +1 -0
- package/dist/index.d.ts +8577 -0
- package/dist/index.js +1 -0
- package/dist/sdk.d.ts +4943 -0
- package/dist/sdk.js +1 -0
- package/dist/speex-runtime.txt +1 -0
- package/dist/vendor/crypto/index_bg.wasm +0 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function initAudio(){var Module={};Module||(Module=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require,ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print=function(e){process.stdout.write(e+"\n")},Module.printErr=function(e){process.stderr.write(e+"\n")};var nodeFS=require("fs"),nodePath=require("path");Module.read=function(e,r){e=nodePath.normalize(e);var t=nodeFS.readFileSync(e);return t||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),t=nodeFS.readFileSync(e)),t&&!r&&(t=t.toString()),t},Module.readBinary=function(e){return Module.read(e,!0)},Module.load=function(e){globalEval(read(e))},Module.arguments=process.argv.slice(2),module.exports=Module}else if(ENVIRONMENT_IS_SHELL)Module.print=print,"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){return read(e,"binary")},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),this.Module=Module,eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined");else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print=function(e){console.log(e)},Module.printErr=function(e){console.log(e)};else{var TRY_USE_DUMP=!1;Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){}}ENVIRONMENT_IS_WEB?this.Module=Module:Module.load=importScripts}function globalEval(e){eval.call(null,e)}for(var key in"undefined"==!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},forceAlign:function(e,r){return 1==(r=r||4)?e:isNumber(e)&&isNumber(r)?Math.ceil(e/r)*r:isNumber(r)&&isPowerOfTwo(r)?"((("+e+")+"+(r-1)+")&"+-r+")":"Math.ceil(("+e+")/"+r+")*"+r},isNumberType:function(e){return e in Runtime.INT_TYPES||e in Runtime.FLOAT_TYPES},isPointerType:function(e){return"*"==e[e.length-1]},isStructType:function(e){return!(isPointerType(e)||!isArrayType(e)&&!/<?{ ?[^}]* ?}>?/.test(e)&&"%"!=e[0])},INT_TYPES:{i1:0,i8:0,i16:0,i32:0,i64:0},FLOAT_TYPES:{float:0,double:0},or64:function(e,r){return(0|e|r)+4294967296*(Math.round(e/4294967296)|Math.round(r/4294967296))},and64:function(e,r){return(e&(0|r))+4294967296*(Math.round(e/4294967296)&Math.round(r/4294967296))},xor64:function(e,r){return(e^(0|r))+4294967296*(Math.round(e/4294967296)^Math.round(r/4294967296))},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var r=parseInt(e.substr(1));return assert(r%8==0),r/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},dedup:function(e,r){var t={};return r?e.filter(function(e){return!t[e[r]]&&(t[e[r]]=!0,!0)}):e.filter(function(e){return!t[e]&&(t[e]=!0,!0)})},set:function(){for(var e="object"==typeof arguments[0]?arguments[0]:arguments,r={},t=0;t<e.length;t++)r[e[t]]=0;return r},STACK_ALIGN:8,getAlignSize:function(e,r,t){return"i64"==e||"double"==e||t?8:e?Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(r,8)},calculateStructAlignment:function(e){e.flatSize=0,e.alignSize=0;var r=[],t=-1;return e.flatIndexes=e.fields.map(function(i){var n,o;Runtime.isNumberType(i)||Runtime.isPointerType(i)?(n=Runtime.getNativeTypeSize(i),o=Runtime.getAlignSize(i,n)):Runtime.isStructType(i)?"0"===i[1]?(n=0,o=Types.types[i]?Runtime.getAlignSize(null,Types.types[i].alignSize):e.alignSize||QUANTUM_SIZE):(n=Types.types[i].flatSize,o=Runtime.getAlignSize(null,Types.types[i].alignSize)):"b"==i[0]?(n=0|i.substr(1),o=1):"<"===i[0]?n=o=Types.types[i].flatSize:"i"===i[0]?assert((n=o=parseInt(i.substr(1))/8)%1==0,"cannot handle non-byte-size field "+i):assert(!1,"invalid type for calculateStructAlignment"),e.packed&&(o=1),e.alignSize=Math.max(e.alignSize,o);var a=Runtime.alignMemory(e.flatSize,o);return e.flatSize=a+n,t>=0&&r.push(a-t),t=a,a}),"["===e.name_[0]&&(e.flatSize=parseInt(e.name_.substr(1))*e.flatSize/2),e.flatSize=Runtime.alignMemory(e.flatSize,e.alignSize),0==r.length?e.flatFactor=e.flatSize:1==Runtime.dedup(r).length&&(e.flatFactor=r[0]),e.needsFlattening=1!=e.flatFactor,e.flatIndexes},generateStructInfo:function(e,r,t){var i;if(r){if(t=t||0,!(n=("undefined"==typeof Types?Runtime.typeInfo:Types.types)[r]))return null;if(n.fields.length!=e.length)return printErr("Number of named fields must match the type for "+r+": possibly duplicate struct names. Cannot return structInfo"),null;i=n.flatIndexes}else{var n={fields:e.map(function(e){return e[0]}),name_:""};i=Runtime.calculateStructAlignment(n)}var o={__size__:n.flatSize};return r?e.forEach(function(e,r){if("string"==typeof e)o[e]=i[r]+t;else{var a;for(var s in e)a=s;o[a]=Runtime.generateStructInfo(e[a],n.fields[r],i[r])}}):e.forEach(function(e,r){o[e[1]]=i[r]}),o},dynCall:function(e,r,t){return t&&t.length?(t.splice||(t=Array.prototype.slice.call(t)),t.splice(0,0,r),Module["dynCall_"+e].apply(null,t)):Module["dynCall_"+e].call(null,r)},functionPointers:[],addFunction:function(e){for(var r=0;r<Runtime.functionPointers.length;r++)if(!Runtime.functionPointers[r])return Runtime.functionPointers[r]=e,2*(1+r);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},getAsmConst:function(code,numArgs){Runtime.asmConstCache||(Runtime.asmConstCache={});var func=Runtime.asmConstCache[code];if(func)return func;for(var args=[],i=0;i<numArgs;i++)args.push(String.fromCharCode(36)+i);return Runtime.asmConstCache[code]=eval("(function("+args.join(",")+"){ "+Pointer_stringify(code)+" })")},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,r){return assert(r),Runtime.funcWrappers[e]||(Runtime.funcWrappers[e]=function(){return Runtime.dynCall(r,e,arguments)}),Runtime.funcWrappers[e]},UTF8Processor:function(){var e=[],r=0;this.processCChar=function(t){if(t&=255,0==e.length)return 128&t?(e.push(t),r=192==(224&t)?1:224==(240&t)?2:3,""):String.fromCharCode(t);if(r&&(e.push(t),--r>0))return"";var i,n=e[0],o=e[1],a=e[2],s=e[3];if(2==e.length)i=String.fromCharCode((31&n)<<6|63&o);else if(3==e.length)i=String.fromCharCode((15&n)<<12|(63&o)<<6|63&a);else{var l=(7&n)<<18|(63&o)<<12|(63&a)<<6|63&s;i=String.fromCharCode(Math.floor((l-65536)/1024)+55296,(l-65536)%1024+56320)}return e.length=0,i},this.processJSString=function(e){e=unescape(encodeURIComponent(e));for(var r=[],t=0;t<e.length;t++)r.push(e.charCodeAt(t));return r}},stackAlloc:function(e){var r=STACKTOP;return STACKTOP=7+(STACKTOP=STACKTOP+e|0)&-8,r},staticAlloc:function(e){var r=STATICTOP;return STATICTOP=7+(STATICTOP=STATICTOP+e|0)&-8,r},dynamicAlloc:function(e){var r=DYNAMICTOP;return(DYNAMICTOP=7+(DYNAMICTOP=DYNAMICTOP+e|0)&-8)>=TOTAL_MEMORY&&enlargeMemory(),r},alignMemory:function(e,r){return Math.ceil(e/(r||8))*(r||8)},makeBigInt:function(e,r,t){return t?+(e>>>0)+4294967296*+(r>>>0):+(e>>>0)+4294967296*+(0|r)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0},__THREW__=0,ABORT=!1,EXITSTATUS=0,undef=0,tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat,tempI64,tempI64b,tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(e,r){e||abort("Assertion failed: "+r)}var globalScope=this;function ccall(e,r,t,i){return ccallFunc(getCFunc(e),r,t,i)}function getCFunc(ident){try{var func=Module["_"+ident];func||(func=eval("_"+ident))}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function ccallFunc(e,r,t,i){var n,o,a=0,s=0,l=i?i.map(function(e){return function(e,r){if("string"==r){if(null==e||0===e)return 0;e=intArrayFromString(e),r="array"}if("array"==r){a||(a=Runtime.stackSave());var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t}return e}(e,t[s++])}):[],u=(n=e.apply(null,l),"string"==(o=r)?Pointer_stringify(n):(assert("array"!=o),n));return a&&Runtime.stackRestore(a),u}function cwrap(e,r,t){var i=getCFunc(e);return function(){return ccallFunc(i,r,t,Array.prototype.slice.call(arguments))}}function setValue(e,r,t,i){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":HEAP8[e]=r;break;case"i16":HEAP16[e>>1]=r;break;case"i32":HEAP32[e>>2]=r;break;case"i64":tempI64=[r>>>0,(tempDouble=r,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=r;break;case"double":HEAPF64[e>>3]=r;break;default:abort("invalid type for setValue: "+t)}}function getValue(e,r,t){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":return HEAP8[e];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+r)}return null}Module.ccall=ccall,Module.cwrap=cwrap,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;function allocate(e,r,t,i){var n,o;"number"==typeof e?(n=!0,o=e):(n=!1,o=e.length);var a,s="string"==typeof r?r:null;if(a=t==ALLOC_NONE?i:[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===t?ALLOC_STATIC:t](Math.max(o,s?1:r.length)),n){var l;for(i=a,assert(!(3&a)),l=a+(-4&o);i<l;i+=4)HEAP32[i>>2]=0;for(l=a+o;i<l;)HEAP8[0|i++]=0;return a}if("i8"===s)return e.subarray||e.slice?HEAPU8.set(e,a):HEAPU8.set(new Uint8Array(e),a),a;for(var u,f,c,d=0;d<o;){var _=e[d];"function"==typeof _&&(_=Runtime.getFunctionIndex(_)),0!==(u=s||r[d])?("i64"==u&&(u="i32"),setValue(a+d,_,u),c!==u&&(f=Runtime.getNativeTypeSize(u),c=u),d+=f):d++}return a}function Pointer_stringify(e,r){for(var t,i=!1,n=0;;){if((t=HEAPU8[e+n|0])>=128)i=!0;else if(0==t&&!r)break;if(n++,r&&n==r)break}r||(r=n);var o="";if(!i){for(var a,s=1024;r>0;)a=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(r,s))),o=o?o+a:a,e+=s,r-=s;return o}var l=new Runtime.UTF8Processor;for(n=0;n<r;n++)t=HEAPU8[e+n|0],o+=l.processCChar(t);return o}function UTF16ToString(e){for(var r=0,t="";;){var i=HEAP16[e+2*r>>1];if(0==i)return t;++r,t+=String.fromCharCode(i)}}function stringToUTF16(e,r){for(var t=0;t<e.length;++t){var i=e.charCodeAt(t);HEAP16[r+2*t>>1]=i}HEAP16[r+2*e.length>>1]=0}function UTF32ToString(e){for(var r=0,t="";;){var i=HEAP32[e+4*r>>2];if(0==i)return t;if(++r,i>=65536){var n=i-65536;t+=String.fromCharCode(55296|n>>10,56320|1023&n)}else t+=String.fromCharCode(i)}}function stringToUTF32(e,r){for(var t=0,i=0;i<e.length;++i){var n=e.charCodeAt(i);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++i)),HEAP32[r+4*t>>2]=n,++t}HEAP32[r+4*t>>2]=0}function demangle(e){try{if("number"==typeof e&&(e=Pointer_stringify(e)),"_"!==e[0])return e;if("_"!==e[1])return e;if("Z"!==e[2])return e;switch(e[3]){case"n":return"operator new()";case"d":return"operator delete()"}var r=3,t={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},i=[],n=!0;return function o(a,s,l){s=s||1/0;var u,f="",c=[];if("N"===e[r]){if(u=function(){r++,"K"===e[r]&&r++;for(var t=[];"E"!==e[r];)if("S"!==e[r])if("C"!==e[r]){var n=parseInt(e.substr(r)),o=n.toString().length;if(!n||!o){r--;break}var a=e.substr(r+o,n);t.push(a),i.push(a),r+=o+n}else t.push(t[t.length-1]),r+=2;else{r++;var s=e.indexOf("_",r),l=e.substring(r,s)||0;t.push(i[l]||"?"),r=s+1}return r++,t}().join("::"),0===--s)return a?[u]:u}else if(("K"===e[r]||n&&"L"===e[r])&&r++,p=parseInt(e.substr(r))){var d=p.toString().length;u=e.substr(r+d,p),r+=d+p}if(n=!1,"I"===e[r]){r++;var _=o(!0);f+=o(!0,1,!0)[0]+" "+u+"<"+_.join(", ")+">"}else f=u;e:for(;r<e.length&&s-- >0;){var h=e[r++];if(h in t)c.push(t[h]);else switch(h){case"P":c.push(o(!0,1,!0)[0]+"*");break;case"R":c.push(o(!0,1,!0)[0]+"&");break;case"L":r++;var p=e.indexOf("E",r)-r;c.push(e.substr(r,p)),r+=p+2;break;case"A":if(p=parseInt(e.substr(r)),r+=p.toString().length,"_"!==e[r])throw"?";r++,c.push(o(!0,1,!0)[0]+" ["+p+"]");break;case"E":break e;default:f+="?"+h;break e}}return l||1!==c.length||"void"!==c[0]||(c=[]),a?c:f+"("+c.join(", ")+")"}()}catch(r){return e}}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,function(e){var r=demangle(e);return e===r?e:e+" ["+r+"]"})}function stackTrace(){var e=(new Error).stack;return e?demangleAll(e):"(no stack trace available)"}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.Pointer_stringify=Pointer_stringify,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32;var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function alignMemoryPage(e){return e+4095&-4096}var STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){abort("Cannot enlarge memory arrays in asm.js. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", or (2) set Module.TOTAL_MEMORY before the program runs.")}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||16777216,FAST_MEMORY=Module.FAST_MEMORY||2097152;assert("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"Cannot fallback to non-typed array case: Code is too specialized");var buffer=new ArrayBuffer(TOTAL_MEMORY);function callRuntimeCallbacks(e){for(;e.length>0;){var r=e.shift();if("function"!=typeof r){var t=r.func;"number"==typeof t?void 0===r.arg?Runtime.dynCall("v",t):Runtime.dynCall("vi",t,[r.arg]):t(void 0===r.arg?null:r.arg)}else r()}}HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"Typed arrays 2 must be run on a little-endian system"),Module.HEAP=HEAP,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__)}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,r,t){var i=(new Runtime.UTF8Processor).processJSString(e);return t&&(i.length=t),r||i.push(0),i}function intArrayToString(e){for(var r=[],t=0;t<e.length;t++){var i=e[t];i>255&&(i&=255),r.push(String.fromCharCode(i))}return r.join("")}function writeStringToMemory(e,r,t){for(var i=intArrayFromString(e,t),n=0;n<i.length;){var o=i[n];HEAP8[r+n|0]=o,n+=1}}function writeArrayToMemory(e,r){for(var t=0;t<e.length;t++)HEAP8[r+t|0]=e[t]}function writeAsciiToMemory(e,r,t){for(var i=0;i<e.length;i++)HEAP8[r+i|0]=e.charCodeAt(i);t||(HEAP8[r+e.length|0]=0)}function unSign(e,r,t,i){return e>=0?e:r<=32?2*Math.abs(1<<r-1)+e:Math.pow(2,r)+e}function reSign(e,r,t,i){if(e<=0)return e;var n=r<=32?Math.abs(1<<r-1):Math.pow(2,r-1);return e>=n&&(r<=32||e>n)&&(e=-2*n+e),e}Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul||(Math.imul=function(e,r){var t=65535&e,i=65535&r;return t*i+((e>>>16)*i+t*(r>>>16)<<16)|0}),Math.imul=Math.imul;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var r=dependenciesFulfilled;dependenciesFulfilled=null,r()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null,_stderr;STATIC_BASE=8,STATICTOP=STATIC_BASE+14688,__ATINIT__.push({func:function(){runPostSets()}});var _stderr=_stderr=allocate([0,0,0,0,0,0,0,0],"i8",ALLOC_STATIC);allocate([0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,120,4,0,0,0,0,128,191,96,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,120,4,0,0,0,0,128,191,192,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,96,4,0,0,0,0,128,191,112,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,36,0,0,0,0,0,0,0,36,0,0,0,112,0,0,0,192,0,0,0,96,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,154,153,121,64,0,0,32,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,64,0,0,32,64,0,0,0,64,154,153,153,63,0,0,0,63,0,0,0,0,0,0,0,191,51,51,51,191,205,204,76,191,102,102,102,191,0,0,128,191,0,0,32,65,0,0,208,64,102,102,166,64,0,0,144,64,154,153,121,64,0,0,96,64,0,0,64,64,0,0,32,64,51,51,19,64,102,102,230,63,0,0,128,63,0,0,48,65,205,204,12,65,0,0,240,64,0,0,208,64,0,0,160,64,154,153,121,64,154,153,121,64,154,153,121,64,0,0,96,64,0,0,64,64,0,0,128,63,0,0,48,65,0,0,48,65,102,102,30,65,0,0,8,65,0,0,224,64,0,0,192,64,0,0,144,64,0,0,128,64,0,0,128,64,0,0,128,64,0,0,0,64,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,24,65,0,0,8,65,0,0,0,65,0,0,224,64,0,0,192,64,0,0,160,64,0,0,64,64,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,24,65,0,0,8,65,0,0,224,64,0,0,192,64,0,0,160,64,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,205,204,28,65,0,0,24,65,0,0,240,64,0,0,224,64,0,0,144,64,205,204,108,64,0,0,64,64,0,0,32,64,0,0,0,64,102,102,230,63,0,0,192,63,0,0,128,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,48,65,0,0,48,65,0,0,24,65,0,0,8,65,0,0,240,64,0,0,192,64,0,0,160,64,154,153,121,64,0,0,64,64,0,0,0,64,0,0,128,63,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,24,65,51,51,11,65,154,153,249,64,0,0,224,64,0,0,208,64,0,0,128,64,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,0,0,48,65,205,204,28,65,0,0,240,64,0,0,176,64,0,0,0,0,5,0,0,0,8,0,0,0,96,32,0,0,8,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,4,0,0,0,32,41,0,0,4,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,2,0,0,0,96,37,0,0,5,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,5,0,0,0,32,27,0,0,7,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,4,0,0,0,224,39,0,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,8,0,0,0,32,31,0,0,6,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,4,0,0,0,80,21,0,0,5,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,5,0,0,0,80,17,0,0,7,0,0,0,1,0,0,0,0,0,0,0,160,5,0,0,16,0,0,0,248,54,0,0,1,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,20,0,0,0,18,0,0,0,8,0,0,0,0,0,0,0,72,6,0,0,16,0,0,0,72,53,0,0,2,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,20,0,0,0,18,0,0,0,8,0,0,0,0,0,0,0,176,8,0,0,2,0,0,0,152,49,0,0,0,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,12,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,10,0,0,0,14,0,0,0,0,0,0,0,0,5,0,0,144,4,0,0,200,4,0,0,0,0,0,0,34,55,67,188,212,125,64,61,171,7,28,190,47,54,29,63,47,54,29,63,171,7,28,190,212,125,64,61,132,15,5,189,155,20,176,61,167,51,81,190,167,202,118,63,64,166,85,62,81,113,247,188,34,142,208,187,34,142,208,187,81,113,247,188,64,166,85,62,167,202,118,63,167,51,81,190,155,20,176,61,132,15,5,189,0,0,0,0,0,5,0,0,160,0,0,0,40,0,0,0,8,0,0,0,102,102,102,63,154,153,25,63,23,183,81,57,102,102,102,63,0,0,0,0,176,0,0,0,120,0,0,0,64,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,8,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,240,2,0,0,5,0,0,0,0,0,0,0,144,4,0,0,64,1,0,0,80,0,0,0,8,0,0,0,102,102,102,63,154,153,25,63,23,183,81,57,51,51,51,63,0,0,0,0,176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,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,8,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,4,0,0,0,0,0,63,79,0,0,0,255,255,255,255,0,0,0,0,3,0,0,0,1,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,80,9,0,0,2,0,0,0,2,0,0,0,72,4,0,0,205,204,204,61,236,1,0,0,255,255,255,255,0,0,0,0,3,0,0,0,0,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,80,9,0,0,2,0,0,0,2,0,0,0,208,3,0,0,205,204,76,62,108,1,0,0,255,255,255,255,0,0,0,0,3,0,0,0,0,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,80,9,0,0,2,0,0,0,2,0,0,0,72,4,0,0,154,153,153,62,44,1,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,96,9,0,0,2,0,0,0,2,0,0,0,24,4,0,0,102,102,230,62,220,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,112,9,0,0,2,0,0,0,2,0,0,0,48,4,0,0,205,204,12,63,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,64,9,0,0,2,0,0,0,2,0,0,0,232,3,0,0,154,153,25,63,119,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,128,191,43,0,0,0,160,0,0,0,40,0,0,0,10,0,0,0,17,0,0,0,144,0,0,0,102,102,102,63,154,153,25,63,23,183,81,57,0,0,0,0,120,8,0,0,64,8,0,0,8,8,0,0,208,7,0,0,152,7,0,0,96,7,0,0,40,7,0,0,240,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,1,0,0,0,8,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,208,25,0,0,5,0,0,0,0,0,0,0,0,0,0,0,208,23,0,0,7,0,0,0,7,0,0,0,0,0,0,0,208,25,0,0,5,0,0,0,7,0,0,0,0,0,0,0,208,25,0,0,5,0,0,0,7,0,0,0,0,0,0,0,10,215,163,61,225,41,164,61,87,33,165,61,123,190,166,61,63,0,169,61,29,230,171,61,21,112,175,61,161,157,179,61,47,109,184,61,190,222,189,61,187,240,195,61,161,162,202,61,220,242,209,61,97,224,217,61,156,105,226,61,252,140,235,61,115,73,245,61,233,156,255,61,162,66,5,62,122,0,11,62,238,6,17,62,55,85,23,62,192,233,29,62,126,195,36,62,101,225,43,62,36,66,51,62,176,228,58,62,50,199,66,62,159,232,74,62,166,71,83,62,113,226,91,62,179,183,100,62,214,197,109,62,74,11,119,62,61,67,128,62,202,26,133,62,128,11,138,62,119,20,143,62,227,52,148,62,219,107,153,62,82,184,158,62,126,25,164,62,84,142,169,62,9,22,175,62,113,175,180,62,192,89,186,62,203,19,192,62,165,220,197,62,66,179,203,62,183,150,209,62,215,133,215,62,183,127,221,62,73,131,227,62,96,143,233,62,240,162,239,62,14,189,245,62,140,220,251,62,46,0,1,63,169,19,4,63,82,40,7,63,113,61,10,63,143,82,13,63,56,103,16,63,179,122,19,63,156,140,22,63,90,156,25,63,105,169,28,63,49,179,31,63,61,185,34,63,6,187,37,63,246,183,40,63,134,175,43,63,64,161,46,63,143,140,49,63,252,112,52,63,1,78,55,63,41,35,58,63,221,239,60,63,183,179,63,63,34,110,66,63,184,30,69,63,244,196,71,63,112,96,74,63,166,240,76,63,33,117,79,63,124,237,81,63,67,89,84,63,15,184,86,63,108,9,89,63,245,76,91,63,69,130,93,63,248,168,95,63,186,192,97,63,21,201,99,63,181,193,101,63,88,170,103,63,136,130,105,63,2,74,107,63,113,0,109,63,148,165,110,63,38,57,112,63,195,186,113,63,57,42,115,63,68,135,116,63,179,209,117,63,66,9,119,63,174,45,120,63,213,62,121,63,134,60,122,63,141,38,123,63,202,252,123,63,10,191,124,63,59,109,125,63,45,7,126,63,223,140,126,63,30,254,126,63,217,90,127,63,18,163,127,63,182,214,127,63,165,245,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,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,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,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,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,223,166,127,63,225,155,126,63,156,223,124,63,113,115,122,63,20,89,119,63,192,146,115,63,54,35,111,63,153,13,106,63,151,85,100,63,113,255,93,63,191,15,87,63,139,139,79,63,121,120,71,63,110,220,62,63,249,189,53,63,251,35,44,63,253,21,34,63,237,155,23,63,115,190,12,63,219,134,1,63,71,255,235,62,236,104,212,62,77,102,188,62,5,26,164,62,11,180,139,62,143,251,102,62,123,247,55,62,80,140,12,62,100,4,212,61,0,0,128,63,225,69,127,63,202,26,125,63,144,136,121,63,69,158,116,63,59,112,110,63,80,25,103,63,2,183,94,63,102,107,85,63,222,89,75,63,21,169,64,63,0,0,0,0,206,223,116,63,34,224,244,191,206,223,116,63,218,230,118,63,151,226,246,191,218,230,118,63,99,156,119,63,15,156,247,191,99,156,119,63,253,135,124,63,186,131,252,191,253,135,124,63,174,71,97,63,174,71,225,191,174,71,97,63,0,0,0,0,0,0,128,63,52,162,244,191,33,60,106,63,0,0,128,63,94,162,246,191,3,67,110,63,0,0,128,63,255,120,247,191,229,126,111,63,0,0,128,63,4,115,252,191,128,43,121,63,0,0,128,63,41,92,175,191,186,73,204,62,0,0,0,0,220,194,6,247,246,242,200,23,1,230,23,208,239,12,8,249,23,29,220,228,250,227,239,251,40,23,10,10,210,243,36,6,4,226,227,62,32,224,255,22,242,1,252,234,211,2,54,4,226,199,197,244,27,253,225,8,247,5,10,242,32,66,19,9,2,231,219,23,241,18,218,225,5,247,235,15,0,22,62,30,15,244,242,210,77,21,33,3,34,29,237,50,2,11,9,218,244,219,62,1,241,54,32,6,2,232,20,35,235,2,19,24,243,55,4,9,39,237,30,255,235,73,54,33,8,18,3,15,6,237,209,6,253,208,206,1,26,20,8,233,206,65,242,201,239,225,219,228,53,255,239,203,1,57,11,248,231,226,219,64,5,204,211,15,23,31,15,14,231,24,33,254,212,200,238,6,235,213,4,244,17,219,20,246,34,15,2,15,55,21,245,225,250,46,25,16,247,231,248,194,28,17,20,224,227,26,30,25,237,2,240,239,26,205,2,50,42,19,190,23,29,254,3,19,237,219,32,15,6,30,222,13,11,251,40,31,10,214,4,247,26,247,186,17,254,233,20,234,201,51,232,225,22,234,15,243,3,246,228,240,56,4,193,11,238,241,238,218,221,16,249,34,255,235,207,209,9,219,7,8,69,55,20,6,223,211,246,247,6,247,12,71,15,253,214,249,232,32,221,254,214,239,251,0,254,223,202,13,244,222,47,23,19,55,7,248,74,31,14,16,233,230,19,12,238,207,228,225,236,2,242,236,209,78,40,13,233,245,21,250,18,1,47,5,38,35,32,46,22,8,13,16,242,18,51,19,40,39,11,230,255,239,47,2,203,241,31,234,38,21,241,240,5,223,53,15,218,86,11,253,232,49,13,252,245,238,28,20,244,229,230,35,231,221,253,236,195,30,10,201,244,234,204,202,242,19,224,244,45,15,248,208,247,11,224,8,240,222,243,51,18,38,254,224,239,22,254,238,228,186,59,27,228,237,246,236,247,247,248,235,21,248,35,254,45,253,247,12,0,30,7,217,43,27,218,165,30,26,19,201,252,63,14,239,13,9,13,2,7,4,6,61,72,255,239,29,255,234,239,8,228,219,63,44,41,3,2,14,9,250,75,248,249,244,241,244,13,9,252,30,234,191,15,0,211,4,252,1,5,22,11,23,39,12,242,236,227,195,189,180,224,185,189,68,77,46,34,5,243,208,210,184,175,172,196,198,216,228,82,93,68,45,29,3,237,209,228,213,221,226,248,243,217,165,165,133,160,10,10,250,238,201,196,165,200,220,229,240,208,181,40,28,246,228,35,9,37,19,1,236,225,215,238,231,221,188,176,45,27,255,47,13,0,227,221,199,206,177,183,218,237,5,35,14,246,233,16,248,5,232,216,194,233,229,234,240,238,210,184,179,43,21,33,1,176,186,186,192,200,204,217,223,225,218,237,237,241,32,33,254,7,241,241,232,233,223,215,200,232,199,5,89,64,41,27,5,247,209,196,159,159,132,236,247,212,183,31,29,252,64,48,7,221,199,0,253,230,209,253,250,216,180,177,208,12,81,55,10,9,232,213,183,199,187,16,5,228,203,18,29,20,0,252,245,6,243,23,7,239,221,219,219,226,188,193,6,24,247,242,3,21,243,229,199,207,176,232,215,251,240,251,1,45,25,12,249,3,241,250,240,241,248,6,243,214,175,176,169,14,1,246,253,213,187,210,232,228,227,36,6,213,200,244,12,54,79,43,9,54,22,2,8,244,213,210,204,218,187,167,251,75,38,33,5,243,203,194,169,167,143,157,201,222,219,62,55,33,16,21,254,239,210,227,218,218,208,217,214,220,181,184,168,208,226,21,2,241,199,192,158,172,180,25,1,210,176,244,18,249,3,34,6,38,31,23,4,255,20,14,241,213,178,165,232,14,253,54,16,0,229,228,212,200,173,164,167,253,34,56,41,36,22,20,248,249,221,214,194,207,3,12,246,206,169,160,190,92,70,38,9,186,185,194,214,217,213,245,249,206,177,198,206,225,32,31,250,252,231,7,239,218,186,198,229,213,173,228,59,36,20,31,2,229,185,176,147,158,181,223,224,225,254,33,15,250,43,33,251,0,234,246,229,222,207,245,236,215,165,156,135,217,57,41,10,237,206,218,197,196,186,238,236,248,225,248,241,1,242,230,231,33,21,32,17,1,237,237,230,198,175,221,234,45,30,11,245,3,230,208,169,189,173,198,3,255,230,236,44,10,25,39,5,247,221,229,218,7,10,4,247,214,171,154,129,52,44,28,10,209,195,216,217,239,255,246,223,214,182,208,21,252,70,52,10,232,21,236,5,251,249,14,246,2,229,16,236,0,224,26,19,8,245,215,31,28,229,224,34,42,34,239,22,246,13,227,18,244,230,232,11,22,5,251,251,54,188,213,57,231,24,4,4,26,248,244,239,54,30,211,1,10,241,18,215,11,68,189,37,240,232,240,38,234,6,227,30,66,229,5,7,240,13,2,244,249,253,236,36,4,228,9,3,32,48,26,39,3,0,7,235,243,5,174,249,73,236,34,247,251,1,255,10,251,246,255,9,1,247,10,0,242,11,255,254,255,11,20,96,175,234,244,247,198,9,24,226,26,221,27,244,13,238,56,197,15,249,23,241,255,6,231,14,234,236,47,245,16,2,38,233,237,226,247,40,245,5,4,250,8,26,235,245,127,4,1,6,247,2,249,254,253,7,251,10,237,7,150,91,253,9,252,21,248,26,176,8,1,254,246,239,239,229,32,71,6,227,11,233,54,218,29,234,39,87,225,244,236,3,254,254,2,20,0,255,221,27,9,250,244,3,244,250,13,1,14,234,197,241,239,231,13,249,7,3,0,1,249,6,253,61,219,233,233,227,38,225,27,1,248,2,229,23,230,36,222,5,24,232,250,7,3,197,78,194,44,240,1,6,0,17,8,45,0,146,6,14,254,32,179,200,62,253,3,243,4,240,102,241,220,255,9,143,6,23,0,9,9,5,248,255,242,5,244,121,203,229,248,247,22,243,3,2,253,1,254,185,95,38,237,15,240,251,71,10,2,224,243,251,15,255,254,242,171,30,29,6,3,2,0,0,0,0,0,0,0,0,2,191,200,247,18,18,23,242,254,0,12,227,26,244,1,2,244,192,90,250,4,1,5,251,146,253,225,22,227,9,0,8,216,251,21,251,251,13,10,238,40,1,35,236,30,228,11,250,19,7,14,18,192,9,250,16,51,68,8,16,12,248,0,247,20,234,25,7,252,243,41,221,93,238,202,11,255,1,247,4,190,66,225,20,234,25,233,11,10,9,19,15,11,251,225,246,233,228,250,250,253,252,5,3,228,22,245,214,25,231,240,41,34,47,250,2,42,237,234,5,217,32,6,221,22,17,226,8,230,245,245,3,244,33,33,219,21,255,6,252,3,0,251,5,12,244,57,27,195,253,20,239,2,0,4,0,254,223,198,81,233,39,246,251,2,6,249,5,4,253,254,243,233,184,107,15,251,0,249,253,250,5,252,15,47,12,225,25,240,8,22,231,194,200,238,14,28,12,2,245,74,190,41,236,249,16,236,16,248,0,240,4,237,92,12,197,242,217,49,231,240,23,229,19,253,223,19,85,227,6,249,246,16,249,244,1,250,2,4,254,64,10,231,41,254,225,15,0,110,50,69,35,28,19,246,2,213,207,200,241,240,10,3,12,255,248,1,26,244,255,7,245,229,41,25,1,245,238,22,249,255,209,248,23,253,239,249,18,131,59,251,3,18,1,2,3,27,221,65,203,50,210,37,235,228,7,14,219,251,251,12,5,248,78,237,21,250,240,8,249,5,2,7,2,10,250,12,196,44,11,220,224,31,0,2,254,2,1,253,7,246,17,235,10,6,254,19,254,59,218,170,38,8,215,226,211,223,7,15,28,29,249,24,216,7,7,5,254,9,24,233,238,6,227,30,2,28,49,245,210,10,43,243,247,255,253,249,249,239,250,97,223,235,3,5,1,12,213,248,28,7,213,249,17,236,19,255,2,243,9,54,34,9,228,245,247,239,110,197,44,230,0,3,244,209,73,222,213,38,223,16,251,210,252,250,254,231,19,227,28,243,5,14,27,216,213,4,32,243,254,221,252,112,214,9,244,37,228,17,14,237,35,217,23,3,242,255,199,251,94,247,3,217,5,30,246,224,42,243,242,159,193,30,247,1,249,12,5,20,17,247,220,226,25,47,247,241,12,234,98,248,206,15,229,21,240,245,2,12,246,10,253,33,36,160,0,239,31,247,9,3,236,13,245,8,252,10,246,9,1,112,186,229,5,235,2,199,253,227,10,19,235,21,246,190,253,91,221,30,244,0,249,59,228,26,2,14,238,1,1,11,17,20,202,197,27,4,29,32,5,19,12,252,1,7,246,5,254,10,0,23,251,28,152,46,11,16,3,29,1,248,242,1,7,206,88,194,26,8,239,242,50,0,32,244,253,229,18,248,251,8,3,236,245,37,244,9,33,46,155,255,252,1,6,255,28,214,241,16,5,255,254,201,85,38,247,252,11,254,247,250,3,236,246,179,89,24,253,152,199,230,225,236,250,247,14,20,233,46,241,225,28,1,241,254,6,254,31,45,180,23,231,253,254,255,0,252,5,35,216,247,13,212,5,229,255,249,6,245,7,248,7,19,242,15,252,9,246,10,248,10,247,255,1,0,0,2,5,238,22,203,50,1,233,50,220,15,3,243,14,246,6,1,5,253,4,254,5,224,25,5,254,255,252,1,11,227,26,250,241,30,238,0,15,239,40,215,3,9,254,254,3,253,255,251,2,21,250,240,235,23,2,60,15,16,240,247,14,9,255,7,247,0,1,1,0,255,250,17,228,54,211,255,1,255,250,250,2,11,26,227,254,46,235,34,12,233,32,233,16,246,3,66,19,236,24,7,11,253,0,253,255,206,210,2,238,253,4,255,254,3,253,237,41,220,9,11,232,21,240,9,253,231,253,10,18,247,254,251,255,251,6,252,253,2,230,21,237,35,241,7,243,17,237,39,213,48,225,16,247,7,254,251,3,252,9,237,27,201,63,221,10,26,212,254,9,4,1,250,8,247,5,248,255,253,240,45,214,5,15,240,10,0,0,0,0,0,0,0,0,0,0,240,24,201,47,218,27,237,7,253,1,16,27,20,237,18,5,249,1,251,2,250,8,234,0,253,253,8,255,7,248,1,253,5,0,17,208,58,204,29,249,254,3,246,6,230,58,225,1,250,3,93,227,39,3,17,5,6,255,255,255,27,13,10,19,249,222,12,10,252,9,180,9,8,228,254,245,2,255,3,1,173,38,217,4,240,250,254,251,5,254,201,213,22,56,65,158,235,184,16,166,231,184,119,74,146,57,58,2,113,57,175,17,28,186,232,119,200,185,171,49,149,58,1,41,11,58,133,42,2,187,236,172,35,186,2,17,84,59,176,141,22,58,0,124,163,187,40,132,135,185,79,104,241,59,26,178,254,185,23,37,44,188,13,88,248,58,129,27,111,60,184,89,141,187,222,96,163,188,140,200,7,60,205,127,222,60,17,94,115,188,154,54,26,189,97,167,216,60,35,13,99,61,14,182,80,189,160,70,200,189,209,141,13,62,250,145,235,62,250,145,235,62,209,141,13,62,160,70,200,189,14,182,80,189,35,13,99,61,97,167,216,60,154,54,26,189,17,94,115,188,205,127,222,60,140,200,7,60,222,96,163,188,184,89,141,187,129,27,111,60,13,88,248,58,23,37,44,188,26,178,254,185,79,104,241,59,40,132,135,185,0,124,163,187,176,141,22,58,2,17,84,59,236,172,35,186,133,42,2,187,1,41,11,58,171,49,149,58,232,119,200,185,175,17,28,186,58,2,113,57,119,74,146,57,16,166,231,184,65,158,235,184,201,213,22,56,132,211,122,63,222,84,164,63,80,83,215,63,153,18,13,64,190,217,56,64,143,54,114,64,33,176,158,64,141,238,207,64,126,58,8,65,178,128,50,65,54,229,105,65,29,61,153,65,166,202,200,65,234,140,3,66,125,95,44,66,16,221,97,66,224,224,224,0,228,189,251,33,214,250,224,18,199,246,202,35,240,27,215,42,19,237,216,36,211,24,235,40,248,242,238,28,1,14,198,53,238,168,217,39,218,21,238,37,237,20,213,38,10,17,208,54,204,198,243,33,212,255,245,32,244,245,222,22,14,0,210,46,219,221,222,5,231,44,226,43,6,252,193,49,225,43,215,43,233,30,213,41,213,26,242,44,223,1,243,27,243,18,219,37,210,183,211,34,220,24,231,34,220,245,236,19,231,12,238,33,220,187,197,34,211,6,8,46,234,242,232,18,255,13,212,44,217,208,230,15,224,31,219,34,223,15,210,31,232,30,220,37,215,31,233,41,206,22,252,50,234,2,235,28,239,30,222,40,249,196,228,29,218,42,228,42,212,245,21,43,240,8,212,34,217,201,213,21,245,221,26,41,247,0,222,29,248,121,175,113,7,240,234,33,219,33,225,36,229,249,220,17,222,70,199,65,219,245,208,21,216,17,255,44,223,6,250,33,247,0,236,34,235,69,223,57,227,33,225,35,201,12,255,49,223,27,234,35,206,223,209,17,206,54,51,94,255,251,212,35,252,22,216,45,217,190,231,24,223,1,230,20,232,233,231,12,245,21,211,44,231,211,237,17,213,105,240,82,5,235,1,41,240,11,223,30,243,157,252,57,219,33,241,44,231,37,193,54,220,24,225,31,203,200,218,26,215,252,4,37,223,13,226,24,49,52,162,114,251,226,241,23,1,38,216,56,233,12,220,29,239,40,209,51,219,215,217,11,207,34,0,58,238,249,252,34,240,17,229,35,30,5,194,65,4,48,188,76,213,11,245,38,238,19,241,41,233,194,217,23,214,10,254,41,235,243,243,25,247,13,209,42,233,194,232,24,212,60,235,58,238,253,204,32,234,22,220,34,181,57,16,90,237,3,10,45,227,23,218,32,251,194,205,38,205,40,238,53,214,13,232,32,222,14,236,30,200,181,230,37,230,32,15,59,230,17,227,29,249,28,204,53,244,226,5,30,251,208,251,35,2,2,213,40,21,16,16,75,231,211,224,10,213,18,246,42,9,0,255,52,255,7,226,36,19,208,252,48,228,25,227,32,234,0,225,22,224,17,246,36,192,215,194,36,204,15,16,58,226,234,224,6,249,9,218,36,224,224,224,0,225,198,240,22,215,232,213,14,200,234,201,29,243,33,215,47,252,217,247,29,215,15,244,38,248,241,244,31,1,2,212,40,234,190,214,27,218,28,233,38,235,14,219,31,0,21,206,52,203,185,229,33,219,255,237,25,237,251,228,22,6,65,212,74,223,208,223,9,216,57,242,58,239,4,211,32,225,38,223,36,233,28,216,39,213,29,244,46,222,13,233,28,240,15,229,34,242,174,241,43,225,25,224,29,235,5,251,38,209,193,205,33,210,12,3,47,228,239,227,11,246,14,216,38,87,38,156,62,44,241,176,62,27,129,200,62,51,51,227,62,120,185,0,63,194,221,17,63,82,73,37,63,115,75,59,63,79,59,84,63,212,125,112,63,137,65,136,63,19,102,154,63,241,244,174,63,100,64,198,63,206,165,224,63,92,143,254,63,42,58,16,64,47,110,35,64,232,48,57,64,85,217,81,64,67,202,109,64,203,185,134,64,17,170,152,64,202,253,172,64,79,6,196,64,8,32,222,64,104,179,251,64,113,155,14,65,85,152,33,65,120,28,55,65,254,125,79,65,153,30,107,65,119,17,230,61,227,170,114,62,253,22,189,62,128,238,251,62,77,49,35,63,22,49,84,63,17,255,144,63,0,0,0,0,115,99,122,61,154,120,39,62,116,238,158,62,167,63,219,62,156,78,14,63,253,19,56,63,64,78,112,63,2,215,169,63,76,195,96,63,0,0,0,0,144,102,52,63,4,144,134,63,242,9,13,224,2,246,31,246,248,248,6,252,255,10,192,23,6,20,13,6,8,234,16,34,7,42,207,228,5,26,4,241,41,34,41,32,33,24,23,14,8,40,34,4,232,215,237,241,13,243,33,202,24,27,212,33,27,241,241,24,237,14,220,14,247,24,244,252,37,251,16,222,5,10,33,241,202,240,12,25,12,1,2,0,3,255,252,252,11,2,200,54,27,236,13,250,210,215,223,245,251,7,12,14,242,251,8,20,6,3,4,248,251,214,11,8,242,25,254,2,13,11,234,39,247,9,5,211,247,7,247,12,249,34,239,154,7,2,214,18,35,247,222,11,251,254,3,22,46,204,231,247,162,8,11,251,251,251,4,249,221,249,54,5,224,3,24,247,234,8,65,37,255,244,233,250,247,228,55,223,14,253,2,18,196,41,239,8,240,17,245,0,245,29,228,37,9,203,33,242,247,7,231,249,245,26,224,248,24,235,22,237,19,246,29,242,0,0,0,0,0,0,0,0,251,204,10,41,6,226,252,16,32,22,229,234,32,253,228,253,3,221,6,17,23,21,8,2,4,211,239,14,23,252,225,245,253,14,1,19,245,2,61,248,9,244,7,246,12,253,232,99,208,23,50,219,251,233,0,8,242,35,192,251,46,231,13,255,207,237,241,9,34,50,25,11,250,247,240,236,224,223,224,229,10,248,12,241,56,242,224,33,3,247,1,65,247,247,246,254,250,233,9,17,3,228,13,224,4,254,246,4,240,76,12,204,6,13,33,250,4,242,247,253,1,241,240,28,1,241,11,16,9,4,235,219,216,250,22,12,241,233,242,239,240,247,246,247,13,217,41,5,247,16,218,25,46,209,4,49,242,17,254,6,18,5,250,223,234,44,50,254,1,3,250,7,7,253,235,38,238,34,242,215,60,243,6,16,232,35,19,243,220,24,3,239,242,246,36,44,212,227,253,3,202,248,12,55,26,4,254,251,2,245,22,233,2,22,1,231,217,66,207,21,248,254,10,242,196,25,6,10,27,231,16,5,254,247,26,243,236,58,254,7,52,247,2,5,252,241,23,255,218,23,8,27,250,0,229,249,39,246,242,26,11,211,244,9,251,34,4,221,10,43,234,245,56,249,20,1,10,1,230,9,94,11,229,242,243,1,245,0,14,251,250,246,252,241,248,215,21,251,1,228,248,22,247,33,233,252,252,244,39,4,249,3,196,80,8,239,2,250,12,251,1,9,15,27,31,30,27,23,61,47,26,10,251,248,244,243,5,238,25,241,252,241,245,12,254,254,240,254,250,24,12,11,252,9,1,247,14,211,57,12,20,221,26,11,192,32,246,246,42,252,247,240,32,24,7,10,52,245,199,29,0,8,0,250,17,239,200,216,7,20,18,12,250,16,5,7,255,9,1,10,29,12,16,13,254,23,7,9,253,252,251,18,192,13,55,231,9,247,24,14,231,15,245,216,226,37,1,237,22,251,225,13,254,0,7,252,16,189,12,66,220,24,248,18,241,233,19,0,211,249,4,3,243,13,35,5,13,33,10,27,23,0,249,245,43,182,36,244,2,5,248,6,223,11,240,242,251,249,253,17,222,27,240,11,247,15,33,225,8,240,7,250,249,63,201,239,11,255,20,210,34,226,6,9,19,28,247,5,232,248,233,254,31,237,240,251,241,238,0,26,18,37,251,241,254,17,5,229,21,223,44,12,229,247,17,11,25,235,225,249,13,33,248,231,249,7,246,4,250,247,48,174,233,248,6,11,233,3,253,49,227,25,31,4,14,16,9,252,238,10,230,3,5,212,247,9,209,201,15,9,28,1,4,253,46,6,250,218,227,225,241,250,3,0,14,250,8,202,206,33,251,1,242,33,208,26,252,251,253,251,253,251,228,234,77,55,255,2,10,10,247,242,190,207,11,220,250,236,10,246,16,12,4,255,240,45,212,206,31,254,25,42,23,224,234,0,11,20,216,221,216,220,224,230,235,243,52,234,6,232,236,17,251,248,36,231,245,21,230,6,34,248,7,20,253,5,231,248,18,251,247,252,1,247,20,20,39,48,232,9,5,191,22,29,4,3,213,245,32,250,9,19,229,246,209,242,24,10,249,220,249,255,252,251,251,16,53,25,230,227,252,244,45,198,222,33,251,2,255,27,208,31,241,22,251,4,7,7,231,253,11,234,16,244,8,253,7,245,45,14,183,237,56,210,24,236,28,244,254,255,220,253,223,19,250,7,2,241,5,225,211,8,35,13,20,0,247,48,243,213,253,243,2,251,72,188,229,2,1,254,249,5,36,33,216,244,252,251,23,19,1,5,241,49,190,208,252,50,212,7,37,16,238,25,230,230,241,19,19,229,209,28,57,5,239,224,215,68,21,254,64,56,8,240,243,230,247,240,11,6,217,25,237,22,225,20,211,55,213,10,240,47,216,40,236,205,3,239,242,241,232,53,236,210,46,27,188,32,3,238,251,9,225,16,247,246,255,233,48,95,47,25,215,224,253,15,231,201,36,41,229,20,5,13,14,234,5,2,233,18,46,241,17,238,222,251,248,27,201,73,16,2,255,239,40,178,33,0,2,19,4,53,240,241,240,228,253,243,49,8,249,227,27,243,32,20,32,195,16,14,41,44,40,24,20,7,4,48,196,179,17,250,208,65,241,32,226,185,246,253,250,10,254,249,227,200,67,226,7,251,86,250,246,0,5,225,60,34,218,253,24,10,254,30,23,24,215,12,70,213,15,239,6,13,16,243,8,30,241,248,5,23,222,158,252,243,13,208,225,70,12,31,25,24,232,26,249,33,240,8,5,245,242,248,191,13,10,254,247,0,253,188,5,35,7,0,225,255,239,247,247,16,219,238,255,69,208,228,22,235,245,5,49,55,23,170,220,16,2,13,63,205,30,245,13,24,238,250,14,237,1,41,9,251,27,220,212,222,219,235,230,31,217,15,43,5,248,29,20,248,236,204,228,255,13,26,222,246,247,27,248,8,27,190,4,12,234,49,10,179,32,238,3,218,12,253,255,2,2,0,248,219,5,213,5,73,61,39,12,253,195,224,2,42,30,253,17,229,9,34,20,255,251,2,23,249,210,26,53,209,20,254,223,167,205,192,27,11,15,222,251,200,25,247,255,227,1,40,67,233,240,16,33,19,7,14,85,22,246,246,244,249,255,52,89,29,11,236,219,210,241,17,232,228,24,2,1,0,23,155,23,14,255,233,238,9,5,243,38,1,228,228,4,27,51,230,34,216,35,47,54,38,202,230,250,42,231,13,226,220,18,41,252,223,23,224,249,252,51,253,17,204,56,209,36,254,235,36,10,8,223,31,19,9,251,216,10,247,235,19,18,178,238,251,0,230,220,209,205,212,18,40,27,254,29,49,230,2,32,202,30,183,54,3,251,36,22,53,10,255,172,203,227,251,3,212,53,205,4,22,71,221,255,33,251,229,249,36,17,233,217,16,247,201,241,236,39,221,6,217,242,18,48,192,239,241,9,39,81,37,188,37,47,235,250,152,13,6,9,254,35,8,233,18,42,45,21,33,251,207,9,250,213,200,39,2,240,231,87,1,253,247,17,231,245,247,255,10,2,242,242,4,255,246,28,233,40,224,26,247,26,4,229,233,3,42,196,1,49,253,27,10,204,216,254,18,45,233,17,212,3,253,17,210,52,216,209,25,75,31,207,53,30,226,224,220,38,250,241,240,54,229,208,3,38,227,224,234,242,252,233,243,32,217,9,8,211,243,34,240,49,40,32,31,28,23,23,32,47,59,188,8,62,44,25,242,232,191,240,36,67,231,218,235,4,223,254,42,5,193,40,11,26,214,233,195,79,225,23,236,10,224,53,231,220,10,230,251,3,0,185,5,246,219,1,232,21,202,239,1,227,231,241,229,32,68,45,240,219,238,251,1,0,179,71,250,3,236,71,189,29,221,10,226,19,4,16,17,5,0,242,19,2,28,26,59,3,2,24,39,55,206,211,238,239,33,221,14,255,1,8,87,221,227,0,229,13,249,23,243,37,216,50,221,14,19,249,242,49,54,251,22,254,227,248,229,38,13,27,48,12,215,235,241,28,7,240,232,237,236,11,236,9,2,13,23,236,11,27,229,71,187,8,2,250,22,12,16,16,9,240,248,239,1,25,1,40,219,223,66,94,53,4,234,231,215,214,25,35,240,241,57,31,227,224,21,16,196,45,15,255,7,57,230,209,227,11,8,15,19,151,248,54,27,10,239,6,244,255,246,4,0,23,246,31,13,11,10,12,192,23,253,248,237,16,52,24,216,16,10,40,5,9,0,243,249,235,248,250,249,235,59,16,203,18,196,11,209,14,238,25,243,232,4,217,16,228,54,26,189,30,27,236,204,20,244,55,12,18,240,39,242,250,230,56,168,201,12,25,26,219,6,75,0,222,175,54,226,1,249,49,233,242,21,10,194,198,199,209,222,15,252,34,178,31,25,245,7,50,246,42,193,14,220,252,57,55,57,53,42,214,255,15,40,37,15,25,245,6,1,31,254,250,255,249,192,34,28,30,255,3,21,0,168,244,200,25,228,40,8,228,242,9,12,2,250,239,22,49,250,230,14,28,236,4,244,50,35,40,13,218,198,227,17,30,22,60,26,202,217,244,58,228,193,10,235,248,244,26,194,6,246,245,234,250,249,4,1,18,2,186,11,14,4,13,19,232,222,24,67,17,51,235,13,23,54,226,48,1,243,80,26,240,254,13,252,6,226,29,232,73,198,30,229,20,254,235,41,45,30,229,253,251,238,236,207,253,221,10,42,237,189,203,245,9,13,241,223,205,226,15,7,25,226,4,28,234,222,54,227,39,210,20,16,34,252,47,75,1,212,201,232,7,255,9,214,50,248,220,41,68,0,252,246,233,241,206,64,36,247,229,12,25,218,209,219,32,207,51,220,2,252,69,230,19,7,45,67,46,13,193,46,15,209,4,215,13,250,5,235,37,26,201,249,33,255,228,10,239,192,242,0,220,239,93,253,247,190,44,235,3,244,38,250,243,244,19,13,43,213,246,244,6,251,9,207,32,251,2,4,5,15,240,10,235,8,194,248,64,8,79,255,190,207,238,5,40,251,226,211,1,250,21,224,93,238,226,235,32,21,238,22,8,5,215,202,80,22,246,249,248,233,192,66,56,242,226,215,210,242,227,219,27,242,42,254,247,227,34,14,33,242,22,4,10,26,26,28,32,23,184,224,3,0,242,35,214,178,224,6,29,238,211,251,7,223,211,253,234,222,8,248,4,205,231,247,59,178,21,251,231,208,66,241,239,232,207,243,25,233,192,250,40,232,237,245,57,223,248,1,10,204,202,28,39,49,34,245,195,215,213,10,15,241,51,30,15,205,32,222,254,222,14,18,16,1,1,253,253,1,1,238,6,16,48,12,251,214,7,36,48,7,236,246,7,12,2,54,39,218,37,54,4,245,248,210,246,5,246,222,46,244,29,219,39,36,245,24,56,17,14,20,25,0,231,228,55,249,251,27,3,9,230,248,6,232,246,226,225,222,18,4,22,21,40,255,227,219,248,235,92,227,11,253,11,73,23,22,7,4,212,247,245,21,243,11,9,178,255,47,114,244,219,237,251,245,234,19,12,226,7,38,45,235,248,247,55,211,56,235,7,17,46,199,169,250,27,31,31,7,200,244,46,21,251,244,36,3,3,235,43,19,12,249,9,242,0,247,223,165,7,26,3,245,64,83,225,210,25,2,9,5,2,2,255,20,239,10,251,229,248,20,8,237,16,235,243,225,5,5,42,24,9,34,236,28,195,22,11,217,64,236,255,226,247,236,24,231,232,227,22,196,6,251,41,247,169,14,34,15,199,52,69,15,253,154,58,16,3,6,60,181,224,26,7,199,229,224,232,235,227,240,62,210,31,30,229,241,7,15,12,32,25,46,36,33,9,14,253,6,1,248,0,246,251,249,249,249,251,251,31,229,24,224,252,10,245,21,253,19,23,247,22,24,246,255,246,243,249,245,42,223,31,19,248,0,246,240,1,235,239,10,248,14,8,4,11,254,5,254,223,11,240,33,11,252,9,252,11,2,6,251,8,251,11,252,250,26,220,240,0,4,254,248,12,6,255,34,210,234,9,9,21,9,5,190,251,26,2,10,13,2,19,9,12,175,3,13,13,0,242,22,221,6,249,252,6,250,10,250,225,38,223,0,246,245,5,244,12,239,5,0,250,13,247,10,8,25,33,2,244,8,250,10,254,21,7,17,43,5,11,249,247,236,220,236,233,252,252,253,27,247,247,207,217,218,245,247,6,5,23,25,5,3,3,4,1,2,253,255,87,39,17,235,247,237,247,241,243,242,239,245,246,245,248,250,255,253,253,255,202,222,229,248,245,252,251,0,0,4,8,6,9,7,9,7,6,5,5,5,48,10,19,246,12,255,9,253,2,5,253,2,254,254,0,254,230,6,9,249,240,247,2,7,7,251,213,11,22,245,247,34,37,241,243,250,1,255,1,1,192,56,52,245,229,5,4,3,1,2,1,3,255,252,252,246,249,252,252,2,255,249,249,244,246,241,247,251,251,245,240,243,6,16,4,243,240,246,252,2,209,243,25,47,19,242,236,248,239,0,253,243,1,6,239,242,15,1,10,6,232,0,246,19,187,248,14,49,17,251,33,227,3,252,0,2,248,5,250,2,120,200,244,209,23,247,6,251,1,2,251,1,246,4,255,255,4,255,0,253,30,204,189,30,22,11,255,252,3,0,7,2,0,1,246,252,248,243,5,1,1,255,5,13,247,253,246,194,22,48,252,250,2,3,5,1,1,4,1,13,3,236,10,247,13,254,252,9,236,44,255,20,224,189,19,0,28,11,8,2,245,15,237,203,31,2,34,10,6,252,198,8,10,13,14,1,12,2,0,0,128,37,248,44,247,26,253,18,2,6,11,255,9,1,5,3,0,1,1,2,12,3,254,253,7,25,9,18,250,219,3,248,240,3,246,249,17,222,212,11,17,241,253,240,255,243,11,210,191,254,8,13,2,4,4,5,15,5,9,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,19,244,12,228,38,29,255,12,2,5,23,246,3,4,241,21,252,3,3,6,17,247,252,248,236,26,5,246,6,1,237,18,241,244,47,250,254,249,247,255,239,254,254,242,30,242,2,249,252,255,244,11,231,16,253,244,11,249,7,239,1,19,228,31,249,246,7,246,3,12,5,240,6,24,41,227,202,0,1,7,255,5,250,13,10,252,248,8,247,229,203,218,255,10,19,17,16,12,12,0,3,249,252,13,12,225,242,6,251,3,5,17,43,50,25,10,1,250,254,7,17,17,27,25,22,12,4,253,0,28,220,39,232,241,3,247,15,251,10,31,228,11,31,235,9,245,245,254,249,231,14,234,31,4,242,19,244,14,251].concat([4,249,4,251,9,0,254,42,209,240,1,8,0,9,23,199,0,28,245,6,225,55,211,3,251,4,2,254,4,249,253,6,254,7,253,12,5,8,54,246,8,249,248,232,231,229,242,251,8,5,44,23,5,247,245,245,243,247,244,248,227,248,234,6,241,3,244,255,251,253,34,255,29,240,17,252,12,2,1,4,254,252,2,255,11,253,204,28,30,247,224,25,44,236,232,4,6,255,0,0,0,0,0,0,0,0,0,0,0,0,231,246,22,29,13,243,234,243,252,0,252,240,10,15,220,232,28,25,255,253,66,223,245,241,6,0,3,4,254,5,24,236,209,29,19,254,252,255,0,255,254,3,1,8,245,5,5,199,28,28,0,240,4,252,12,250,255,2,236,61,247,24,234,214,29,6,17,8,4,2,191,15,8,10,5,6,5,3,2,254,253,5,247,4,251,23,13,23,253,193,3,251,252,250,0,253,23,220,210,9,5,5,8,4,9,251,1,253,10,1,250,10,245,24,209,31,22,244,14,246,6,11,249,249,7,225,51,244,250,7,6,239,9,245,236,52,237,3,250,250,248,251,23,215,37,1,235,10,242,8,7,5,241,241,23,39,230,223,7,2,224,226,235,248,4,12,17,15,14,11,22,39,14,44,11,35,254,23,252,6,46,228,13,229,233,12,4,20,251,9,37,238,233,23,0,9,250,236,4,255,239,251,252,17,0,1,9,254,1,2,2,244,8,231,39,15,9,16,201,245,9,11,5,10,254,196,8,13,250,11,240,27,209,244,11,1,16,249,9,253,227,9,242,25,237,34,36,12,40,246,253,232,242,219,235,221,254,220,3,250,67,28,6,239,253,244,240,241,239,249,197,220,243,1,7,1,2,10,2,11,13,10,8,254,7,3,5,4,2,2,253,248,4,251,6,7,214,15,35,254,210,38,28,236,247,1,7,253,0,254,0,0,0,0,0,0,0,0,0,0,241,228,52,32,5,251,239,236,246,255,215,163,144,62,162,69,182,62,203,161,229,62,0,0,0,0,0,0,128,62,174,71,161,62,150,67,203,62,0,0,0,63,250,53,235,232,4,26,17,252,219,25,17,220,243,31,3,250,27,15,246,31,28,26,246,246,216,16,249,15,13,41,247,0,252,50,250,249,14,38,22,0,208,2,1,243,237,32,253,196,11,239,255,232,222,255,35,251,229,28,44,13,25,15,42,245,15,51,35,220,20,8,252,244,227,19,209,49,241,252,16,227,217,14,226,4,25,247,251,205,242,253,216,224,38,5,247,248,252,255,234,71,253,14,26,238,234,24,215,231,232,6,23,19,246,39,230,229,65,45,2,249,230,248,22,244,16,15,16,221,251,33,235,248,0,23,33,34,6,21,36,6,249,234,8,219,242,31,38,11,252,253,217,224,248,32,233,250,244,16,20,228,252,23,13,204,255,22,6,223,216,250,4,194,13,5,230,35,39,11,2,57,245,9,236,228,223,52,251,250,254,22,242,240,208,35,1,198,20,13,33,255,182,56,238,234,225,12,6,242,4,254,247,209,10,253,29,239,251,61,14,47,244,2,72,217,239,92,64,203,205,241,226,218,215,227,228,27,9,36,9,221,214,81,235,20,25,240,251,239,221,21,15,228,48,2,254,9,237,29,216,30,238,238,18,240,199,15,236,244,241,219,241,33,217,21,234,243,35,11,13,218,193,29,23,229,32,18,3,230,42,33,192,190,239,16,56,2,36,3,31,21,215,217,8,199,14,37,254,19,220,237,233,227,240,1,253,248,246,31,64,191,222,204,241,45,2,23,21,52,24,223,247,255,9,212,215,243,239,44,22,239,250,252,255,22,38,26,16,2,50,27,221,222,247,215,6,0,240,222,51,8,242,225,207,15,223,45,49,33,245,219,194,202,45,11,251,184,11,255,244,245,24,27,245,213,46,43,33,244,247,255,1,252,233,199,185,11,8,16,17,248,236,225,215,53,48,240,3,65,232,248,233,224,219,224,207,246,239,6,38,5,247,239,210,8,52,3,6,45,40,39,249,250,222,182,31,8,1,240,43,68,245,237,225,4,6,0,250,239,240,218,240,226,2,9,217,240,255,43,246,48,3,3,240,225,253,62,68,43,13,3,246,8,20,200,12,12,254,238,22,241,216,220,1,7,41,0,1,46,250,194,252,244,254,245,173,243,254,91,33,246,0,4,245,240,79,32,37,14,9,51,235,228,200,222,0,21,9,230,11,28,214,202,233,254,241,31,30,8,217,190,217,220,31,228,216,210,35,40,22,24,33,48,23,222,14,40,32,17,27,253,25,26,243,195,239,11,4,31,60,250,230,215,192,13,16,230,54,31,245,233,247,245,222,185,235,222,221,55,50,29,234,229,206,218,57,33,42,57,48,26,11,0,207,225,26,252,242,5,78,37,17,0,207,244,233,26,14,2,2,213,239,244,10,248,252,8,18,12,250,20,244,250,243,231,34,15,40,49,7,8,13,20,20,237,234,254,248,2,51,205,11,47,16,247,210,224,26,192,34,251,38,249,47,20,2,183,157,253,211,20,70,204,15,250,249,174,31,21,47,51,39,253,9,0,215,249,241,202,2,0,27,225,9,211,234,218,232,232,8,223,23,5,50,220,239,238,205,254,13,19,43,12,241,244,61,38,38,7,13,0,6,255,3,62,9,27,22,223,38,221,247,30,213,247,224,255,4,252,1,251,245,248,38,31,11,246,214,235,219,1,43,15,243,221,237,238,15,23,230,59,1,235,53,8,215,206,242,228,4,21,25,228,216,5,216,215,4,51,223,248,248,1,17,196,12,25,215,17,34,43,19,45,7,219,24,241,56,254,35,246,48,4,209,254,5,251,202,5,253,223,246,30,254,212,232,218,9,247,42,4,6,200,44,240,9,216,230,18,236,10,28,215,235,252,13,238,32,226,253,37,15,22,28,50,216,3,227,192,7,51,237,245,17,229,216,192,24,244,249,229,3,37,48,255,2,247,218,222,46,1,27,250,19,243,26,10,34,20,25,40,50,250,249,30,9,232,0,233,71,195,22,58,222,252,2,207,223,25,30,248,250,240,77,2,38,248,221,250,226,56,78,31,33,236,13,217,20,22,4,21,248,4,250,10,173,215,9,231,213,15,249,244,222,217,219,223,19,30,16,223,42,231,25,188,44,241,245,252,23,50,14,4,217,213,20,226,60,9,236,7,16,19,223,37,29,16,221,7,38,229,230,248,29,21,4,19,217,33,249,220,56,54,48,40,29,252,232,214,190,213,196,19,254,37,41,246,219,196,192,18,234,77,73,40,25,4,19,237,190,254,11,5,21,14,26,231,170,252,18,1,26,219,10,37,255,24,244,197,245,20,250,34,240,240,42,19,228,205,53,32,4,10,62,21,244,222,27,4,208,208,206,207,31,249,235,214,231,252,213,234,59,2,27,12,247,250,240,248,224,198,240,227,251,41,23,226,223,210,243,246,218,52,52,1,239,247,10,26,231,250,33,236,53,55,25,224,251,214,23,21,66,5,228,20,9,75,29,249,214,217,15,3,233,21,6,11,1,227,14,63,10,54,26,232,205,207,7,233,205,15,190,1,60,25,10,0,226,252,241,17,19,59,40,4,251,33,6,234,198,186,251,23,250,60,44,227,240,209,227,52,237,50,28,16,35,31,36,0,235,6,21,27,22,42,7,190,216,248,7,19,46,0,252,60,36,45,249,227,250,224,217,2,6,247,33,20,205,222,18,250,19,6,11,5,237,227,254,42,245,211,235,201,57,37,2,242,189,240,229,218,69,48,19,2,239,20,236,240,222,239,231,195,10,73,45,16,216,192,239,227,234,56,17,217,8,245,8,231,238,243,237,8,54,57,36,239,230,252,6,235,40,42,252,20,31,53,10,222,203,31,239,35,0,15,250,236,193,183,22,25,29,17,8,227,217,187,18,15,241,251,30,19,38,34,40,32,46,43,58,43,5,238,231,216,223,201,204,20,34,28,236,193,159,164,61,53,47,49,53,75,242,203,179,177,0,253,251,19,22,26,247,203,201,66,90,72,85,68,74,52,252,215,198,225,238,225,27,32,30,18,24,3,8,5,244,253,26,28,74,63,254,217,189,179,150,182,59,59,73,65,44,40,71,72,82,83,98,88,89,60,250,225,209,208,243,217,247,7,2,79,255,217,196,239,87,81,65,50,45,19,235,189,165,169,215,206,7,18,39,74,10,225,228,39,24,13,23,5,56,45,29,10,251,243,245,221,238,248,246,248,231,185,179,235,2,16,50,63,87,87,5,224,216,205,188,0,12,6,54,34,5,244,32,52,68,64,69,59,65,45,14,240,225,216,191,189,41,49,47,37,245,204,181,172,252,57,48,42,42,33,245,205,188,250,13,0,8,248,26,32,233,203,0,36,56,76,97,105,111,97,255,228,217,216,213,202,212,216,238,35,16,236,237,228,214,29,47,38,74,45,3,227,208,194,176,152,223,56,59,59,10,17,46,72,84,101,117,123,123,106,249,223,207,205,186,189,229,225,70,67,240,194,171,236,82,71,86,80,85,74,237,198,181,211,227,223,238,231,45,57,244,214,251,12,28,36,52,64,81,82,13,247,229,228,22,3,2,22,26,6,250,212,205,2,15,10,48,43,49,34,237,194,172,167,154,232,8,17,61,68,39,24,23,19,16,251,12,15,27,15,248,212,207,196,238,224,228,52,54,62,248,208,179,186,66,101,83,63,61,37,244,206,181,192,33,17,13,25,15,77,1,214,227,72,64,46,49,31,61,44,248,209,202,210,226,19,20,255,240,0,16,244,238,247,230,229,246,234,53,45,246,209,181,174,151,147,8,25,49,77,50,65,114,117,124,118,115,96,90,61,247,211,193,196,181,199,8,11,20,29,0,221,207,213,40,47,35,40,55,38,232,180,153,144,229,3,23,34,52,75,8,227,213,12,63,38,35,29,24,8,25,11,1,241,238,213,249,37,40,21,236,200,237,237,252,254,11,29,51,63,254,212,194,181,167,30,57,51,74,51,50,46,68,64,65,52,63,55,65,43,18,247,230,221,201,187,3,6,8,17,241,195,170,159,1,86,93,74,78,67,255,218,190,208,48,39,29,25,17,255,13,13,29,39,50,51,69,82,97,98,254,220,210,229,240,226,243,252,249,252,25,251,245,250,231,235,33,12,31,29,248,218,204,193,188,167,223,255,10,74,254,241,59,91,105,105,101,87,84,62,249,223,206,221,202,209,25,17,82,81,243,200,173,21,58,31,42,25,72,65,232,190,165,200,9,254,21,10,69,75,2,232,11,22,25,28,38,34,48,33,7,227,230,17,15,255,14,0,254,0,250,215,189,6,254,247,19,2,85,74,234,189,172,185,206,3,11,247,2,62,0,0,128,63,25,4,118,63,172,28,90,63,33,176,50,63,121,233,6,63,127,106,188,62,33,176,114,62,78,98,16,62,45,178,157,61,119,190,31,61,119,97,114,110,105,110,103,58,32,37,115,32,37,100,10,0,110,97,114,114,111,119,98,97,110,100,0,0,0,0,0,0,85,110,107,110,111,119,110,32,110,98,95,99,116,108,32,114,101,113,117,101,115,116,58,32,0,0,0,0,0,0,0,0,110,111,116,105,102,105,99,97,116,105,111,110,58,32,37,115,10,0,0,0,0,0,0,0,85,110,107,110,111,119,110,32,110,98,95,109,111,100,101,95,113,117,101,114,121,32,114,101,113,117,101,115,116,58,32,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,83,85,66,77,79,68,69,40,105,110,110,111,118,97,116,105,111,110,95,117,110,113,117,97,110,116,41,0,0,0,119,97,114,110,105,110,103,58,32,37,115,10,0,0,0,0,119,97,114,110,105,110,103,58,32,37,115,10,0,0,0,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,83,85,66,77,79,68,69,40,108,116,112,95,117,110,113,117,97,110,116,41,0,0,110,111,116,105,102,105,99,97,116,105,111,110,58,32,37,115,10,0,0,0,0,0,0,0,68,111,32,110,111,116,32,111,119,110,32,105,110,112,117,116,32,98,117,102,102,101,114,58,32,110,111,116,32,112,97,99,107,105,110,103,0,0,0,0,73,110,118,97,108,105,100,32,109,111,100,101,32,101,110,99,111,117,110,116,101,114,101,100,46,32,84,104,101,32,115,116,114,101,97,109,32,105,115,32,99,111,114,114,117,112,116,101,100,46,0,0,0,0,0,0,77,111,114,101,32,116,104,97,110,32,116,119,111,32,119,105,100,101,98,97,110,100,32,108,97,121,101,114,115,32,102,111,117,110,100,46,32,84,104,101,32,115,116,114,101,97,109,32,105,115,32,99,111,114,114,117,112,116,101,100,46,0,0,0,73,110,118,97,108,105,100,32,109,111,100,101,32,115,112,101,99,105,102,105,101,100,32,105,110,32,83,112,101,101,120,32,104,101,97,100,101,114,0,0,67,111,117,108,100,32,110,111,116,32,114,101,115,105,122,101,32,105,110,112,117,116,32,98,117,102,102,101,114,58,32,110,111,116,32,112,97,99,107,105,110,103,0,0,0,0,0,0,119,97,114,110,105,110,103,58,32,37,115,32,37,100,10,0,73,110,118,97,108,105,100,32,109,111,100,101,32,101,110,99,111,117,110,116,101,114,101,100,46,32,84,104,101,32,115,116,114,101,97,109,32,105,115,32,99,111,114,114,117,112,116,101,100,46,0,0,0,0,0,0,83,112,101,101,120,32,104,101,97,100,101,114,32,116,111,111,32,115,109,97,108,108,0,0,66,117,102,102,101,114,32,116,111,111,32,115,109,97,108,108,32,116,111,32,112,97,99,107,32,98,105,116,115,0,0,0,85,110,107,110,111,119,110,32,119,98,95,109,111,100,101,95,113,117,101,114,121,32,114,101,113,117,101,115,116,58,32,0,110,111,116,105,102,105,99,97,116,105,111,110,58,32,37,115,10,0,0,0,0,0,0,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,83,85,66,77,79,68,69,40,105,110,110,111,118,97,116,105,111,110,95,113,117,97,110,116,41,0,0,0,0,0,119,97,114,110,105,110,103,58,32,37,115,32,37,100,10,0,84,104,105,115,32,100,111,101,115,110,39,116,32,108,111,111,107,32,108,105,107,101,32,97,32,83,112,101,101,120,32,102,105,108,101,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,114,101,115,105,122,101,32,105,110,112,117,116,32,98,117,102,102,101,114,58,32,116,114,117,110,99,97,116,105,110,103,32,111,118,101,114,115,105,122,101,32,105,110,112,117,116,0,0,0,0,0,0,0,0,49,46,50,114,99,49,0,0,119,97,114,110,105,110,103,58,32,37,115,32,37,100,10,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,83,85,66,77,79,68,69,40,108,116,112,95,113,117,97,110,116,41,0,0,0,0,105,110,32,117,115,101,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,117,108,116,114,97,45,119,105,100,101,98,97,110,100,32,40,115,117,98,45,98,97,110,100,32,67,69,76,80,41,0,0,84,104,105,115,32,109,111,100,101,32,105,115,32,109,101,97,110,116,32,116,111,32,98,101,32,117,115,101,100,32,97,108,111,110,101,0,0,0,0,0,68,111,32,110,111,116,32,111,119,110,32,105,110,112,117,116,32,98,117,102,102,101,114,58,32,116,114,117,110,99,97,116,105,110,103,32,111,118,101,114,115,105,122,101,32,105,110,112,117,116,0,0,0,0,0,0,85,110,107,110,111,119,110,32,110,98,95,99,116,108,32,114,101,113,117,101,115,116,58,32,0,0,0,0,0,0,0,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,115,116,45,62,119,105,110,100,111,119,83,105,122,101,45,115,116,45,62,102,114,97,109,101,83,105,122,101,32,61,61,32,115,116,45,62,115,117,98,102,114,97,109,101,83,105,122,101,0,0,0,0,0,0,109,97,120,32,115,121,115,116,101,109,32,98,121,116,101,115,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,110,98,95,99,101,108,112,46,99,0,0,0,0,0,0,0,115,121,115,116,101,109,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,85,110,107,110,111,119,110,32,119,98,95,109,111,100,101,95,113,117,101,114,121,32,114,101,113,117,101,115,116,58,32,0,70,97,116,97,108,32,40,105,110,116,101,114,110,97,108,41,32,101,114,114,111,114,32,105,110,32,37,115,44,32,108,105,110,101,32,37,100,58,32,37,115,10,0,0,0,0,0,0,110,111,116,105,102,105,99,97,116,105,111,110,58,32,37,115,10,0,0,0,0,0,0,0,83,112,101,101,120,32,32,32,0,0,0,0,0,0,0,0,119,105,100,101,98,97,110,100,32,40,115,117,98,45,98,97,110,100,32,67,69,76,80,41,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,114,101,115,105,122,101,32,105,110,112,117,116,32,98,117,102,102,101,114,58,32,116,114,117,110,99,97,116,105,110,103,32,105,110,112,117,116,0,80,97,99,107,101,116,32,105,115,32,108,97,114,103,101,114,32,116,104,97,110,32,97,108,108,111,99,97,116,101,100,32,98,117,102,102,101,114,0,0]),"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);function copyTempFloat(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3]}function copyTempDouble(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3],HEAP8[tempDoublePtr+4]=HEAP8[e+4],HEAP8[tempDoublePtr+5]=HEAP8[e+5],HEAP8[tempDoublePtr+6]=HEAP8[e+6],HEAP8[tempDoublePtr+7]=HEAP8[e+7]}assert(tempDoublePtr%8==0),Module._memcpy=_memcpy,Module._memmove=_memmove;var _llvm_memmove_p0i8_p0i8_i32=_memmove,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},ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},___errno_state=0;function ___setErrNo(e){return HEAP32[___errno_state>>2]=e,e}var PATH={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,r){for(var t=0,i=e.length-1;i>=0;i--){var n=e[i];"."===n?e.splice(i,1):".."===n?(e.splice(i,1),t++):t&&(e.splice(i,1),t--)}if(r)for(;t--;t)e.unshift("..");return e},normalize:function(e){var r="/"===e.charAt(0),t="/"===e.substr(-1);return(e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:function(e){var r=PATH.splitPath(e),t=r[0],i=r[1];return t||i?(i&&(i=i.substr(0,i.length-1)),t+i):"."},basename:function(e){if("/"===e)return"/";var r=e.lastIndexOf("/");return-1===r?e:e.substr(r+1)},extname:function(e){return PATH.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return PATH.normalize(e.join("/"))},join2:function(e,r){return PATH.normalize(e+"/"+r)},resolve:function(){for(var e="",r=!1,t=arguments.length-1;t>=-1&&!r;t--){var i=t>=0?arguments[t]:FS.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");i&&(e=i+"/"+e,r="/"===i.charAt(0))}return(r?"/":"")+(e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/"))||"."},relative:function(e,r){function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;t>=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=PATH.resolve(e).substr(1),r=PATH.resolve(r).substr(1);for(var i=t(e.split("/")),n=t(r.split("/")),o=Math.min(i.length,n.length),a=o,s=0;s<o;s++)if(i[s]!==n[s]){a=s;break}var l=[];for(s=a;s<i.length;s++)l.push("..");return(l=l.concat(n.slice(a))).join("/")}},TTY={ttys:[],init:function(){},shutdown:function(){},register:function(e,r){TTY.ttys[e]={input:[],output:[],ops:r},FS.registerDevice(e,TTY.stream_ops)},stream_ops:{open:function(e){var r=TTY.ttys[e.node.rdev];if(!r)throw new FS.ErrnoError(ERRNO_CODES.ENODEV);e.tty=r,e.seekable=!1},close:function(e){e.tty.output.length&&e.tty.ops.put_char(e.tty,10)},read:function(e,r,t,i,n){if(!e.tty||!e.tty.ops.get_char)throw new FS.ErrnoError(ERRNO_CODES.ENXIO);for(var o=0,a=0;a<i;a++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(void 0===s&&0===o)throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);if(null==s)break;o++,r[t+a]=s}return o&&(e.node.timestamp=Date.now()),o},write:function(e,r,t,i,n){if(!e.tty||!e.tty.ops.put_char)throw new FS.ErrnoError(ERRNO_CODES.ENXIO);for(var o=0;o<i;o++)try{e.tty.ops.put_char(e.tty,r[t+o])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return i&&(e.node.timestamp=Date.now()),o}},default_tty_ops:{get_char:function(e){if(!e.input.length){var r=null;if(ENVIRONMENT_IS_NODE){if(!(r=process.stdin.read()))return process.stdin._readableState&&process.stdin._readableState.ended?null:void 0}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n");if(!r)return null;e.input=intArrayFromString(r,!0)}return e.input.shift()},put_char:function(e,r){null===r||10===r?(Module.print(e.output.join("")),e.output=[]):e.output.push(TTY.utf8.processCChar(r))}},default_tty1_ops:{put_char:function(e,r){null===r||10===r?(Module.printErr(e.output.join("")),e.output=[]):e.output.push(TTY.utf8.processCChar(r))}}},MEMFS={ops_table:null,CONTENT_OWNING:1,CONTENT_FLEXIBLE:2,CONTENT_FIXED:3,mount:function(e){return MEMFS.createNode(null,"/",16895,0)},createNode:function(e,r,t,i){if(FS.isBlkdev(t)||FS.isFIFO(t))throw new FS.ErrnoError(ERRNO_CODES.EPERM);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});var n=FS.createNode(e,r,t,i);return FS.isDir(n.mode)?(n.node_ops=MEMFS.ops_table.dir.node,n.stream_ops=MEMFS.ops_table.dir.stream,n.contents={}):FS.isFile(n.mode)?(n.node_ops=MEMFS.ops_table.file.node,n.stream_ops=MEMFS.ops_table.file.stream,n.contents=[],n.contentMode=MEMFS.CONTENT_FLEXIBLE):FS.isLink(n.mode)?(n.node_ops=MEMFS.ops_table.link.node,n.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(n.mode)&&(n.node_ops=MEMFS.ops_table.chrdev.node,n.stream_ops=MEMFS.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[r]=n),n},ensureFlexible:function(e){if(e.contentMode!==MEMFS.CONTENT_FLEXIBLE){var r=e.contents;e.contents=Array.prototype.slice.call(r),e.contentMode=MEMFS.CONTENT_FLEXIBLE}},node_ops:{getattr:function(e){var r={};return r.dev=FS.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,FS.isDir(e.mode)?r.size=4096:FS.isFile(e.mode)?r.size=e.contents.length:FS.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr:function(e,r){if(void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size){MEMFS.ensureFlexible(e);var t=e.contents;if(r.size<t.length)t.length=r.size;else for(;r.size>t.length;)t.push(0)}},lookup:function(e,r){throw FS.genericErrors[ERRNO_CODES.ENOENT]},mknod:function(e,r,t,i){return MEMFS.createNode(e,r,t,i)},rename:function(e,r,t){if(FS.isDir(e.mode)){var i;try{i=FS.lookupNode(r,t)}catch(e){}if(i)for(var n in i.contents)throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete e.parent.contents[e.name],e.name=t,r.contents[t]=e,e.parent=r},unlink:function(e,r){delete e.contents[r]},rmdir:function(e,r){var t=FS.lookupNode(e,r);for(var i in t.contents)throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);delete e.contents[r]},readdir:function(e){var r=[".",".."];for(var t in e.contents)e.contents.hasOwnProperty(t)&&r.push(t);return r},symlink:function(e,r,t){var i=MEMFS.createNode(e,r,41471,0);return i.link=t,i},readlink:function(e){if(!FS.isLink(e.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return e.link}},stream_ops:{read:function(e,r,t,i,n){var o=e.node.contents;if(n>=o.length)return 0;var a=Math.min(o.length-n,i);if(assert(a>=0),a>8&&o.subarray)r.set(o.subarray(n,n+a),t);else for(var s=0;s<a;s++)r[t+s]=o[n+s];return a},write:function(e,r,t,i,n,o){var a=e.node;a.timestamp=Date.now();var s=a.contents;if(i&&0===s.length&&0===n&&r.subarray)return o&&0===t?(a.contents=r,a.contentMode=r.buffer===HEAP8.buffer?MEMFS.CONTENT_OWNING:MEMFS.CONTENT_FIXED):(a.contents=new Uint8Array(r.subarray(t,t+i)),a.contentMode=MEMFS.CONTENT_FIXED),i;for(MEMFS.ensureFlexible(a),s=a.contents;s.length<n;)s.push(0);for(var l=0;l<i;l++)s[n+l]=r[t+l];return i},llseek:function(e,r,t){var i=r;if(1===t?i+=e.position:2===t&&FS.isFile(e.node.mode)&&(i+=e.node.contents.length),i<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return e.ungotten=[],e.position=i,i},allocate:function(e,r,t){MEMFS.ensureFlexible(e.node);for(var i=e.node.contents,n=r+t;n>i.length;)i.push(0)},mmap:function(e,r,t,i,n,o,a){if(!FS.isFile(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);var s,l,u=e.node.contents;if(2&a||u.buffer!==r&&u.buffer!==r.buffer){if((n>0||n+i<u.length)&&(u=u.subarray?u.subarray(n,n+i):Array.prototype.slice.call(u,n,n+i)),l=!0,!(s=_malloc(i)))throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);r.set(u,s)}else l=!1,s=u.byteOffset;return{ptr:s,allocated:l}}}},IDBFS={dbs:{},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",mount:function(e){return MEMFS.mount.apply(null,arguments)},syncfs:function(e,r,t){IDBFS.getLocalSet(e,function(i,n){if(i)return t(i);IDBFS.getRemoteSet(e,function(e,i){if(e)return t(e);var o=r?i:n,a=r?n:i;IDBFS.reconcile(o,a,t)})})},reconcile:function(e,r,t){var i=0,n={};for(var o in e.files)if(e.files.hasOwnProperty(o)){var a=e.files[o];(!(l=r.files[o])||a.timestamp>l.timestamp)&&(n[o]=a,i++)}var s={};for(var o in r.files)if(r.files.hasOwnProperty(o)){var l;a=r.files[o],(l=e.files[o])||(s[o]=a,i++)}if(!i)return t(null);var u=0;function f(e){return e?t(e):++u>=i?t(null):void 0}var c=("remote"===e.type?e.db:r.db).transaction([IDBFS.DB_STORE_NAME],"readwrite");c.onerror=function(){t(this.error)};var d=c.objectStore(IDBFS.DB_STORE_NAME);for(var _ in n)if(n.hasOwnProperty(_)){var h=n[_];if("local"===r.type)try{if(FS.isDir(h.mode))FS.mkdir(_,h.mode);else if(FS.isFile(h.mode)){var p=FS.open(_,"w+",438);FS.write(p,h.contents,0,h.contents.length,0,!0),FS.close(p)}f(null)}catch(a){return f(a)}else(m=d.put(h,_)).onsuccess=function(){f(null)},m.onerror=function(){f(this.error)}}for(var _ in s)if(s.hasOwnProperty(_)){var m;if(h=s[_],"local"===r.type)try{FS.isDir(h.mode)?FS.rmdir(_):FS.isFile(h.mode)&&FS.unlink(_),f(null)}catch(a){return f(a)}else(m=d.delete(_)).onsuccess=function(){f(null)},m.onerror=function(){f(this.error)}}},getLocalSet:function(e,r){var t={};function i(e){return"."!==e&&".."!==e}function n(e){return function(r){return PATH.join2(e,r)}}for(var o=FS.readdir(e.mountpoint).filter(i).map(n(e.mountpoint));o.length;){var a,s,l=o.pop();try{s=FS.lookupPath(l).node,a=FS.stat(l)}catch(e){return r(e)}if(FS.isDir(a.mode))o.push.apply(o,FS.readdir(l).filter(i).map(n(l))),t[l]={mode:a.mode,timestamp:a.mtime};else{if(!FS.isFile(a.mode))return r(new Error("node type not supported"));t[l]={contents:s.contents,mode:a.mode,timestamp:a.mtime}}}return r(null,{type:"local",files:t})},getDB:function(e,r){var t,i=IDBFS.dbs[e];if(i)return r(null,i);try{t=IDBFS.indexedDB().open(e,IDBFS.DB_VERSION)}catch(e){return onerror(e)}t.onupgradeneeded=function(){(i=t.result).createObjectStore(IDBFS.DB_STORE_NAME)},t.onsuccess=function(){i=t.result,IDBFS.dbs[e]=i,r(null,i)},t.onerror=function(){r(this.error)}},getRemoteSet:function(e,r){var t={};IDBFS.getDB(e.mountpoint,function(e,i){if(e)return r(e);var n=i.transaction([IDBFS.DB_STORE_NAME],"readonly");n.onerror=function(){r(this.error)},n.objectStore(IDBFS.DB_STORE_NAME).openCursor().onsuccess=function(e){var n=e.target.result;if(!n)return r(null,{type:"remote",db:i,files:t});t[n.key]=n.value,n.continue()}})}},NODEFS={isWindows:!1,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/)},mount:function(e){return assert(ENVIRONMENT_IS_NODE),NODEFS.createNode(null,"/",NODEFS.getMode(e.opts.root),0)},createNode:function(e,r,t,i){if(!FS.isDir(t)&&!FS.isFile(t)&&!FS.isLink(t))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var n=FS.createNode(e,r,t);return n.node_ops=NODEFS.node_ops,n.stream_ops=NODEFS.stream_ops,n},getMode:function(e){var r;try{r=fs.lstatSync(e),NODEFS.isWindows&&(r.mode=r.mode|(146&r.mode)>>1)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return r.mode},realPath:function(e){for(var r=[];e.parent!==e;)r.push(e.name),e=e.parent;return r.push(e.mount.opts.root),r.reverse(),PATH.join.apply(null,r)},flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function(e){return e in NODEFS.flagsToPermissionStringMap?NODEFS.flagsToPermissionStringMap[e]:e},node_ops:{getattr:function(e){var r,t=NODEFS.realPath(e);try{r=fs.lstatSync(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return NODEFS.isWindows&&!r.blksize&&(r.blksize=4096),NODEFS.isWindows&&!r.blocks&&(r.blocks=(r.size+r.blksize-1)/r.blksize|0),{dev:r.dev,ino:r.ino,mode:r.mode,nlink:r.nlink,uid:r.uid,gid:r.gid,rdev:r.rdev,size:r.size,atime:r.atime,mtime:r.mtime,ctime:r.ctime,blksize:r.blksize,blocks:r.blocks}},setattr:function(e,r){var t=NODEFS.realPath(e);try{if(void 0!==r.mode&&(fs.chmodSync(t,r.mode),e.mode=r.mode),void 0!==r.timestamp){var i=new Date(r.timestamp);fs.utimesSync(t,i,i)}void 0!==r.size&&fs.truncateSync(t,r.size)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup:function(e,r){var t=PATH.join2(NODEFS.realPath(e),r),i=NODEFS.getMode(t);return NODEFS.createNode(e,r,i)},mknod:function(e,r,t,i){var n=NODEFS.createNode(e,r,t,i),o=NODEFS.realPath(n);try{FS.isDir(n.mode)?fs.mkdirSync(o,n.mode):fs.writeFileSync(o,"",{mode:n.mode})}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return n},rename:function(e,r,t){var i=NODEFS.realPath(e),n=PATH.join2(NODEFS.realPath(r),t);try{fs.renameSync(i,n)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(e,r){var t=PATH.join2(NODEFS.realPath(e),r);try{fs.unlinkSync(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(e,r){var t=PATH.join2(NODEFS.realPath(e),r);try{fs.rmdirSync(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(e){var r=NODEFS.realPath(e);try{return fs.readdirSync(r)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(e,r,t){var i=PATH.join2(NODEFS.realPath(e),r);try{fs.symlinkSync(t,i)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(e){var r=NODEFS.realPath(e);try{return fs.readlinkSync(r)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open:function(e){var r=NODEFS.realPath(e.node);try{FS.isFile(e.node.mode)&&(e.nfd=fs.openSync(r,NODEFS.flagsToPermissionString(e.flags)))}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close:function(e){try{FS.isFile(e.node.mode)&&e.nfd&&fs.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read:function(e,r,t,i,n){var o,a=new Buffer(i);try{o=fs.readSync(e.nfd,a,0,i,n)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(o>0)for(var s=0;s<o;s++)r[t+s]=a[s];return o},write:function(e,r,t,i,n){var o,a=new Buffer(r.subarray(t,t+i));try{o=fs.writeSync(e.nfd,a,0,i,n)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return o},llseek:function(e,r,t){var i=r;if(1===t)i+=e.position;else if(2===t&&FS.isFile(e.node.mode))try{i+=fs.fstatSync(e.nfd).size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(i<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return e.position=i,i}}},_stdin=allocate(1,"i32*",ALLOC_STATIC),_stdout=allocate(1,"i32*",ALLOC_STATIC),_stderr=allocate(1,"i32*",ALLOC_STATIC);function _fflush(e){}var FS={root:null,mounts:[],devices:[null],streams:[null],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)},lookupPath:function(e,r){if(e=PATH.resolve(FS.cwd(),e),(r=r||{recurse_count:0}).recurse_count>8)throw new FS.ErrnoError(ERRNO_CODES.ELOOP);for(var t=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!1),i=FS.root,n="/",o=0;o<t.length;o++){var a=o===t.length-1;if(a&&r.parent)break;if(i=FS.lookupNode(i,t[o]),n=PATH.join2(n,t[o]),FS.isMountpoint(i)&&(i=i.mount.root),!a||r.follow)for(var s=0;FS.isLink(i.mode);){var l=FS.readlink(n);if(n=PATH.resolve(PATH.dirname(n),l),i=FS.lookupPath(n,{recurse_count:r.recurse_count}).node,s++>40)throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}return{path:n,node:i}},getPath:function(e){for(var r;;){if(FS.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?t+"/"+r:t+r:t}r=r?e.name+"/"+r:e.name,e=e.parent}},hashName:function(e,r){for(var t=0,i=0;i<r.length;i++)t=(t<<5)-t+r.charCodeAt(i)|0;return(e+t>>>0)%FS.nameTable.length},hashAddNode:function(e){var r=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[r],FS.nameTable[r]=e},hashRemoveNode:function(e){var r=FS.hashName(e.parent.id,e.name);if(FS.nameTable[r]===e)FS.nameTable[r]=e.name_next;else for(var t=FS.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode:function(e,r){var t=FS.mayLookup(e);if(t)throw new FS.ErrnoError(t);for(var i=FS.hashName(e.id,r),n=FS.nameTable[i];n;n=n.name_next){var o=n.name;if(n.parent.id===e.id&&o===r)return n}return FS.lookup(e,r)},createNode:function(e,r,t,i){if(!FS.FSNode){FS.FSNode=function(e,r,t,i){this.id=FS.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=i,this.parent=null,this.mount=null,e||(e=this),this.parent=e,this.mount=e.mount,FS.hashAddNode(this)};FS.FSNode.prototype={},Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}return new FS.FSNode(e,r,t,i)},destroyNode:function(e){FS.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return!(49152&~e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var r=FS.flagModes[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r},flagsToPermissionString:function(e){var r=["r","w","rw"][2097155&e];return 512&e&&(r+="w"),r},nodePermissions:function(e,r){return FS.ignorePermissions||(-1===r.indexOf("r")||292&e.mode)&&(-1===r.indexOf("w")||146&e.mode)&&(-1===r.indexOf("x")||73&e.mode)?0:ERRNO_CODES.EACCES},mayLookup:function(e){return FS.nodePermissions(e,"x")},mayCreate:function(e,r){try{return FS.lookupNode(e,r),ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(e,"wx")},mayDelete:function(e,r,t){var i;try{i=FS.lookupNode(e,r)}catch(e){return e.errno}var n=FS.nodePermissions(e,"wx");if(n)return n;if(t){if(!FS.isDir(i.mode))return ERRNO_CODES.ENOTDIR;if(FS.isRoot(i)||FS.getPath(i)===FS.cwd())return ERRNO_CODES.EBUSY}else if(FS.isDir(i.mode))return ERRNO_CODES.EISDIR;return 0},mayOpen:function(e,r){return e?FS.isLink(e.mode)?ERRNO_CODES.ELOOP:FS.isDir(e.mode)&&(2097155&r||512&r)?ERRNO_CODES.EISDIR:FS.nodePermissions(e,FS.flagsToPermissionString(r)):ERRNO_CODES.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(e,r){e=e||1,r=r||FS.MAX_OPEN_FDS;for(var t=e;t<=r;t++)if(!FS.streams[t])return t;throw new FS.ErrnoError(ERRNO_CODES.EMFILE)},getStream:function(e){return FS.streams[e]},createStream:function(e,r,t){if(FS.FSStream||(FS.FSStream=function(){},FS.FSStream.prototype={},Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return!!(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}})),e.__proto__)e.__proto__=FS.FSStream.prototype;else{var i=new FS.FSStream;for(var n in e)i[n]=e[n];e=i}var o=FS.nextfd(r,t);return e.fd=o,FS.streams[o]=e,e},closeStream:function(e){FS.streams[e]=null},chrdev_stream_ops:{open:function(e){var r=FS.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,r){return e<<8|r},registerDevice:function(e,r){FS.devices[e]={stream_ops:r}},getDevice:function(e){return FS.devices[e]},syncfs:function(e,r){"function"==typeof e&&(r=e,e=!1);var t=0,i=FS.mounts.length;function n(e){if(e)return r(e);++t>=i&&r(null)}for(var o=0;o<FS.mounts.length;o++){var a=FS.mounts[o];a.type.syncfs?a.type.syncfs(a,e,n):n(null)}},mount:function(e,r,t){var i;t&&(t=(i=FS.lookupPath(t,{follow:!1})).path);var n={type:e,opts:r,mountpoint:t,root:null},o=e.mount(n);return o.mount=n,n.root=o,i&&(i.node.mount=n,i.node.mounted=!0,"/"===t&&(FS.root=n.root)),FS.mounts.push(n),o},lookup:function(e,r){return e.node_ops.lookup(e,r)},mknod:function(e,r,t){var i=FS.lookupPath(e,{parent:!0}).node,n=PATH.basename(e),o=FS.mayCreate(i,n);if(o)throw new FS.ErrnoError(o);if(!i.node_ops.mknod)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return i.node_ops.mknod(i,n,r,t)},create:function(e,r){return r=void 0!==r?r:438,r&=4095,r|=32768,FS.mknod(e,r,0)},mkdir:function(e,r){return r=void 0!==r?r:511,r&=1023,r|=16384,FS.mknod(e,r,0)},mkdev:function(e,r,t){return void 0===t&&(t=r,r=438),r|=8192,FS.mknod(e,r,t)},symlink:function(e,r){var t=FS.lookupPath(r,{parent:!0}).node,i=PATH.basename(r),n=FS.mayCreate(t,i);if(n)throw new FS.ErrnoError(n);if(!t.node_ops.symlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return t.node_ops.symlink(t,i,e)},rename:function(e,r){var t,i,n=PATH.dirname(e),o=PATH.dirname(r),a=PATH.basename(e),s=PATH.basename(r);try{t=FS.lookupPath(e,{parent:!0}).node,i=FS.lookupPath(r,{parent:!0}).node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(t.mount!==i.mount)throw new FS.ErrnoError(ERRNO_CODES.EXDEV);var l,u=FS.lookupNode(t,a),f=PATH.relative(e,o);if("."!==f.charAt(0))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if("."!==(f=PATH.relative(r,n)).charAt(0))throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);try{l=FS.lookupNode(i,s)}catch(e){}if(u!==l){var c=FS.isDir(u.mode),d=FS.mayDelete(t,a,c);if(d)throw new FS.ErrnoError(d);if(d=l?FS.mayDelete(i,s,c):FS.mayCreate(i,s))throw new FS.ErrnoError(d);if(!t.node_ops.rename)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(u)||l&&FS.isMountpoint(l))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(i!==t&&(d=FS.nodePermissions(t,"w")))throw new FS.ErrnoError(d);FS.hashRemoveNode(u);try{t.node_ops.rename(u,i,s)}catch(e){throw e}finally{FS.hashAddNode(u)}}},rmdir:function(e){var r=FS.lookupPath(e,{parent:!0}).node,t=PATH.basename(e),i=FS.lookupNode(r,t),n=FS.mayDelete(r,t,!0);if(n)throw new FS.ErrnoError(n);if(!r.node_ops.rmdir)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(i))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);r.node_ops.rmdir(r,t),FS.destroyNode(i)},readdir:function(e){var r=FS.lookupPath(e,{follow:!0}).node;if(!r.node_ops.readdir)throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);return r.node_ops.readdir(r)},unlink:function(e){var r=FS.lookupPath(e,{parent:!0}).node,t=PATH.basename(e),i=FS.lookupNode(r,t),n=FS.mayDelete(r,t,!1);if(n)throw n===ERRNO_CODES.EISDIR&&(n=ERRNO_CODES.EPERM),new FS.ErrnoError(n);if(!r.node_ops.unlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(i))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);r.node_ops.unlink(r,t),FS.destroyNode(i)},readlink:function(e){var r=FS.lookupPath(e,{follow:!1}).node;if(!r.node_ops.readlink)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return r.node_ops.readlink(r)},stat:function(e,r){var t=FS.lookupPath(e,{follow:!r}).node;if(!t.node_ops.getattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return t.node_ops.getattr(t)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,r,t){var i;if(!(i="string"==typeof e?FS.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);i.node_ops.setattr(i,{mode:4095&r|-4096&i.mode,timestamp:Date.now()})},lchmod:function(e,r){FS.chmod(e,r,!0)},fchmod:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chmod(t.node,r)},chown:function(e,r,t,i){var n;if(!(n="string"==typeof e?FS.lookupPath(e,{follow:!i}).node:e).node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,r,t){FS.chown(e,r,t,!0)},fchown:function(e,r,t){var i=FS.getStream(e);if(!i)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chown(i.node,r,t)},truncate:function(e,r){if(r<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var t;if(!(t="string"==typeof e?FS.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isDir(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!FS.isFile(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var i=FS.nodePermissions(t,"w");if(i)throw new FS.ErrnoError(i);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(!(2097155&t.flags))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);FS.truncate(t.node,r)},utime:function(e,r,t){var i=FS.lookupPath(e,{follow:!0}).node;i.node_ops.setattr(i,{timestamp:Math.max(r,t)})},open:function(e,r,t,i,n){var o;if(t=void 0===t?438:t,t=64&(r="string"==typeof r?FS.modeStringToFlags(r):r)?4095&t|32768:0,"object"==typeof e)o=e;else{e=PATH.normalize(e);try{o=FS.lookupPath(e,{follow:!(131072&r)}).node}catch(e){}}if(64&r)if(o){if(128&r)throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}else o=FS.mknod(e,t,0);if(!o)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);FS.isChrdev(o.mode)&&(r&=-513);var a=FS.mayOpen(o,r);if(a)throw new FS.ErrnoError(a);512&r&&FS.truncate(o,0),r&=-641;var s=FS.createStream({node:o,path:FS.getPath(o),flags:r,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1},i,n);return s.stream_ops.open&&s.stream_ops.open(s),!Module.logReadFiles||1&r||(FS.readFiles||(FS.readFiles={}),e in FS.readFiles||(FS.readFiles[e]=1,Module.printErr("read file: "+e))),s},close:function(e){try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{FS.closeStream(e.fd)}},llseek:function(e,r,t){if(!e.seekable||!e.stream_ops.llseek)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);return e.stream_ops.llseek(e,r,t)},read:function(e,r,t,i,n){if(i<0||n<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(1==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!e.stream_ops.read)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var o=!0;if(void 0===n)n=e.position,o=!1;else if(!e.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);var a=e.stream_ops.read(e,r,t,i,n);return o||(e.position+=a),a},write:function(e,r,t,i,n,o){if(i<0||n<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(!(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!e.stream_ops.write)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var a=!0;if(void 0===n)n=e.position,a=!1;else if(!e.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);1024&e.flags&&FS.llseek(e,0,2);var s=e.stream_ops.write(e,r,t,i,n,o);return a||(e.position+=s),s},allocate:function(e,r,t){if(r<0||t<=0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(!(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(!FS.isFile(e.node.mode)&&!FS.isDir(node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);if(!e.stream_ops.allocate)throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);e.stream_ops.allocate(e,r,t)},mmap:function(e,r,t,i,n,o,a){if(1==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EACCES);if(!e.stream_ops.mmap)throw new FS.errnoError(ERRNO_CODES.ENODEV);return e.stream_ops.mmap(e,r,t,i,n,o,a)},ioctl:function(e,r,t){if(!e.stream_ops.ioctl)throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);return e.stream_ops.ioctl(e,r,t)},readFile:function(e,r){var t;(r=r||{}).flags=r.flags||"r",r.encoding=r.encoding||"binary";var i=FS.open(e,r.flags),n=FS.stat(e).size,o=new Uint8Array(n);if(FS.read(i,o,0,n,0),"utf8"===r.encoding){t="";for(var a=new Runtime.UTF8Processor,s=0;s<n;s++)t+=a.processCChar(o[s])}else{if("binary"!==r.encoding)throw new Error('Invalid encoding type "'+r.encoding+'"');t=o}return FS.close(i),t},writeFile:function(e,r,t){(t=t||{}).flags=t.flags||"w",t.encoding=t.encoding||"utf8";var i=FS.open(e,t.flags,t.mode);if("utf8"===t.encoding){var n=new Runtime.UTF8Processor,o=new Uint8Array(n.processJSString(r));FS.write(i,o,0,o.length,0)}else{if("binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');FS.write(i,r,0,r.length,0)}FS.close(i)},cwd:function(){return FS.currentPath},chdir:function(e){var r=FS.lookupPath(e,{follow:!0});if(!FS.isDir(r.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);var t=FS.nodePermissions(r.node,"x");if(t)throw new FS.ErrnoError(t);FS.currentPath=r.path},createDefaultDirectories:function(){FS.mkdir("/tmp")},createDefaultDevices:function(){FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(){return 0}}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0)),FS.mkdir("/dev/shm"),FS.mkdir("/dev/shm/tmp")},createStandardStreams:function(){Module.stdin?FS.createDevice("/dev","stdin",Module.stdin):FS.symlink("/dev/tty","/dev/stdin"),Module.stdout?FS.createDevice("/dev","stdout",null,Module.stdout):FS.symlink("/dev/tty","/dev/stdout"),Module.stderr?FS.createDevice("/dev","stderr",null,Module.stderr):FS.symlink("/dev/tty1","/dev/stderr");var e=FS.open("/dev/stdin","r");HEAP32[_stdin>>2]=e.fd,assert(1===e.fd,"invalid handle for stdin ("+e.fd+")");var r=FS.open("/dev/stdout","w");HEAP32[_stdout>>2]=r.fd,assert(2===r.fd,"invalid handle for stdout ("+r.fd+")");var t=FS.open("/dev/stderr","w");HEAP32[_stderr>>2]=t.fd,assert(3===t.fd,"invalid handle for stderr ("+t.fd+")")},ensureErrnoError:function(){FS.ErrnoError||(FS.ErrnoError=function(e){for(var r in this.errno=e,ERRNO_CODES)if(ERRNO_CODES[r]===e){this.code=r;break}this.message=ERRNO_MESSAGES[e],this.stack=stackTrace()},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[ERRNO_CODES.ENOENT].forEach(function(e){FS.genericErrors[e]=new FS.ErrnoError(e),FS.genericErrors[e].stack="<generic error, no stack>"}))},staticInit:function(){FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.root=FS.createNode(null,"/",16895,0),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices()},init:function(e,r,t){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=e||Module.stdin,Module.stdout=r||Module.stdout,Module.stderr=t||Module.stderr,FS.createStandardStreams()},quit:function(){FS.init.initialized=!1;for(var e=0;e<FS.streams.length;e++){var r=FS.streams[e];r&&FS.close(r)}},getMode:function(e,r){var t=0;return e&&(t|=365),r&&(t|=146),t},joinPath:function(e,r){var t=PATH.join.apply(null,e);return r&&"/"==t[0]&&(t=t.substr(1)),t},absolutePath:function(e,r){return PATH.resolve(r,e)},standardizePath:function(e){return PATH.normalize(e)},findObject:function(e,r){var t=FS.analyzePath(e,r);return t.exists?t.object:(___setErrNo(t.error),null)},analyzePath:function(e,r){try{e=(i=FS.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var i=FS.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=i.path,t.parentObject=i.node,t.name=PATH.basename(e),i=FS.lookupPath(e,{follow:!r}),t.exists=!0,t.path=i.path,t.object=i.node,t.name=i.node.name,t.isRoot="/"===i.path}catch(e){t.error=e.errno}return t},createFolder:function(e,r,t,i){var n=PATH.join2("string"==typeof e?e:FS.getPath(e),r),o=FS.getMode(t,i);return FS.mkdir(n,o)},createPath:function(e,r,t,i){e="string"==typeof e?e:FS.getPath(e);for(var n=r.split("/").reverse();n.length;){var o=n.pop();if(o){var a=PATH.join2(e,o);try{FS.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,r,t,i,n){var o=PATH.join2("string"==typeof e?e:FS.getPath(e),r),a=FS.getMode(i,n);return FS.create(o,a)},createDataFile:function(e,r,t,i,n,o){var a=r?PATH.join2("string"==typeof e?e:FS.getPath(e),r):e,s=FS.getMode(i,n),l=FS.create(a,s);if(t){if("string"==typeof t){for(var u=new Array(t.length),f=0,c=t.length;f<c;++f)u[f]=t.charCodeAt(f);t=u}FS.chmod(l,146|s);var d=FS.open(l,"w");FS.write(d,t,0,t.length,0,o),FS.close(d),FS.chmod(l,s)}return l},createDevice:function(e,r,t,i){var n=PATH.join2("string"==typeof e?e:FS.getPath(e),r),o=FS.getMode(!!t,!!i);FS.createDevice.major||(FS.createDevice.major=64);var a=FS.makedev(FS.createDevice.major++,0);return FS.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){i&&i.buffer&&i.buffer.length&&i(10)},read:function(e,r,i,n,o){for(var a=0,s=0;s<n;s++){var l;try{l=t()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(void 0===l&&0===a)throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);if(null==l)break;a++,r[i+s]=l}return a&&(e.node.timestamp=Date.now()),a},write:function(e,r,t,n,o){for(var a=0;a<n;a++)try{i(r[t+a])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return n&&(e.node.timestamp=Date.now()),a}}),FS.mkdev(n,o,a)},createLink:function(e,r,t,i,n){var o=PATH.join2("string"==typeof e?e:FS.getPath(e),r);return FS.symlink(t,o)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var r=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!Module.read)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=intArrayFromString(Module.read(e.url),!0)}catch(e){r=!1}return r||___setErrNo(ERRNO_CODES.EIO),r},createLazyFile:function(e,r,t,i,n){if("undefined"!=typeof XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";function o(){this.lengthKnown=!1,this.chunks=[]}o.prototype.get=function(e){if(!(e>this.length-1||e<0)){var r=e%this.chunkSize,t=Math.floor(e/this.chunkSize);return this.getter(t)[r]}},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",t,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+t+". Status: "+e.status);var r,i=Number(e.getResponseHeader("Content-length")),n=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,o=1048576;n||(o=i);var a=this;a.setDataGetter(function(e){var r=e*o,n=(e+1)*o-1;if(n=Math.min(n,i-1),void 0===a.chunks[e]&&(a.chunks[e]=function(e,r){if(e>r)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(r>i-1)throw new Error("only "+i+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",t,!1),i!==o&&n.setRequestHeader("Range","bytes="+e+"-"+r),"undefined"!=typeof Uint8Array&&(n.responseType="arraybuffer"),n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+t+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):intArrayFromString(n.responseText||"",!0)}(r,n)),void 0===a.chunks[e])throw new Error("doXHR failed!");return a.chunks[e]}),this._length=i,this._chunkSize=o,this.lengthKnown=!0};var a=new o;Object.defineProperty(a,"length",{get:function(){return this.lengthKnown||this.cacheLength(),this._length}}),Object.defineProperty(a,"chunkSize",{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:t};var l=FS.createFile(e,r,s,i,n);s.contents?l.contents=s.contents:s.url&&(l.contents=null,l.url=s.url);var u={};return Object.keys(l.stream_ops).forEach(function(e){var r=l.stream_ops[e];u[e]=function(){if(!FS.forceLoadFile(l))throw new FS.ErrnoError(ERRNO_CODES.EIO);return r.apply(null,arguments)}}),u.read=function(e,r,t,i,n){if(!FS.forceLoadFile(l))throw new FS.ErrnoError(ERRNO_CODES.EIO);var o=e.node.contents;if(n>=o.length)return 0;var a=Math.min(o.length-n,i);if(assert(a>=0),o.slice)for(var s=0;s<a;s++)r[t+s]=o[n+s];else for(s=0;s<a;s++)r[t+s]=o.get(n+s);return a},l.stream_ops=u,l},createPreloadedFile:function(e,r,t,i,n,o,a,s,l){Browser.init();var u=r?PATH.resolve(PATH.join2(e,r)):e;function f(t){function f(t){s||FS.createDataFile(e,r,t,i,n,l),o&&o(),removeRunDependency("cp "+u)}var c=!1;Module.preloadPlugins.forEach(function(e){c||e.canHandle(u)&&(e.handle(t,u,f,function(){a&&a(),removeRunDependency("cp "+u)}),c=!0)}),c||f(t)}addRunDependency("cp "+u),"string"==typeof t?Browser.asyncLoad(t,function(e){f(e)},a):f(t)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,r,t){r=r||function(){},t=t||function(){};var i=FS.indexedDB();try{var n=i.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return t(e)}n.onupgradeneeded=function(){console.log("creating db"),n.result.createObjectStore(FS.DB_STORE_NAME)},n.onsuccess=function(){var i=n.result.transaction([FS.DB_STORE_NAME],"readwrite"),o=i.objectStore(FS.DB_STORE_NAME),a=0,s=0,l=e.length;function u(){0==s?r():t()}e.forEach(function(e){var r=o.put(FS.analyzePath(e).object.contents,e);r.onsuccess=function(){++a+s==l&&u()},r.onerror=function(){s++,a+s==l&&u()}}),i.onerror=t},n.onerror=t},loadFilesFromDB:function(e,r,t){r=r||function(){},t=t||function(){};var i=FS.indexedDB();try{var n=i.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return t(e)}n.onupgradeneeded=t,n.onsuccess=function(){var i=n.result;try{var o=i.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){return void t(e)}var a=o.objectStore(FS.DB_STORE_NAME),s=0,l=0,u=e.length;function f(){0==l?r():t()}e.forEach(function(e){var r=a.get(e);r.onsuccess=function(){FS.analyzePath(e).exists&&FS.unlink(e),FS.createDataFile(PATH.dirname(e),PATH.basename(e),r.result,!0,!0,!0),++s+l==u&&f()},r.onerror=function(){l++,s+l==u&&f()}}),o.onerror=t},n.onerror=t}},SOCKFS={mount:function(e){return FS.createNode(null,"/",16895,0)},createSocket:function(e,r,t){t&&assert(1==r==(6==t));var i={family:e,type:r,protocol:t,server:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops},n=SOCKFS.nextname(),o=FS.createNode(SOCKFS.root,n,49152,0);o.sock=i;var a=FS.createStream({path:n,node:o,flags:FS.modeStringToFlags("r+"),seekable:!1,stream_ops:SOCKFS.stream_ops});return i.stream=a,i},getSocket:function(e){var r=FS.getStream(e);return r&&FS.isSocket(r.node.mode)?r.node.sock:null},stream_ops:{poll:function(e){var r=e.node.sock;return r.sock_ops.poll(r)},ioctl:function(e,r,t){var i=e.node.sock;return i.sock_ops.ioctl(i,r,t)},read:function(e,r,t,i,n){var o=e.node.sock,a=o.sock_ops.recvmsg(o,i);return a?(r.set(a.buffer,t),a.buffer.length):0},write:function(e,r,t,i,n){var o=e.node.sock;return o.sock_ops.sendmsg(o,r,t,i)},close:function(e){var r=e.node.sock;r.sock_ops.close(r)}},nextname:function(){return SOCKFS.nextname.current||(SOCKFS.nextname.current=0),"socket["+SOCKFS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(e,r,t){var i;if("object"==typeof r&&(i=r,r=null,t=null),i)if(i._socket)r=i._socket.remoteAddress,t=i._socket.remotePort;else{var n=/ws[s]?:\/\/([^:]+):(\d+)/.exec(i.url);if(!n)throw new Error("WebSocket URL must be in the format ws(s)://address:port");r=n[1],t=parseInt(n[2],10)}else try{var o="ws://"+r+":"+t,a=ENVIRONMENT_IS_NODE?{headers:{"websocket-protocol":["binary"]}}:["binary"];(i=new(ENVIRONMENT_IS_NODE?require("ws"):window.WebSocket)(o,a)).binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH)}var s={addr:r,port:t,socket:i,dgram_send_queue:[]};return SOCKFS.websocket_sock_ops.addPeer(e,s),SOCKFS.websocket_sock_ops.handlePeerEvents(e,s),2===e.type&&void 0!==e.sport&&s.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(65280&e.sport)>>8,255&e.sport])),s},getPeer:function(e,r,t){return e.peers[r+":"+t]},addPeer:function(e,r){e.peers[r.addr+":"+r.port]=r},removePeer:function(e,r){delete e.peers[r.addr+":"+r.port]},handlePeerEvents:function(e,r){var t=!0,i=function(){try{for(var e=r.dgram_send_queue.shift();e;)r.socket.send(e),e=r.dgram_send_queue.shift()}catch(e){r.socket.close()}};function n(i){assert("string"!=typeof i&&void 0!==i.byteLength),i=new Uint8Array(i);var n=t;if(t=!1,n&&10===i.length&&255===i[0]&&255===i[1]&&255===i[2]&&255===i[3]&&i[4]==="p".charCodeAt(0)&&i[5]==="o".charCodeAt(0)&&i[6]==="r".charCodeAt(0)&&i[7]==="t".charCodeAt(0)){var o=i[8]<<8|i[9];return SOCKFS.websocket_sock_ops.removePeer(e,r),r.port=o,void SOCKFS.websocket_sock_ops.addPeer(e,r)}e.recv_queue.push({addr:r.addr,port:r.port,data:i})}ENVIRONMENT_IS_NODE?(r.socket.on("open",i),r.socket.on("message",function(e,r){r.binary&&n(new Uint8Array(e).buffer)}),r.socket.on("error",function(){})):(r.socket.onopen=i,r.socket.onmessage=function(e){n(e.data)})},poll:function(e){if(1===e.type&&e.server)return e.pending.length?65:0;var r=0,t=1===e.type?SOCKFS.websocket_sock_ops.getPeer(e,e.daddr,e.dport):null;return(e.recv_queue.length||!t||t&&t.socket.readyState===t.socket.CLOSING||t&&t.socket.readyState===t.socket.CLOSED)&&(r|=65),(!t||t&&t.socket.readyState===t.socket.OPEN)&&(r|=4),(t&&t.socket.readyState===t.socket.CLOSING||t&&t.socket.readyState===t.socket.CLOSED)&&(r|=16),r},ioctl:function(e,r,t){if(21531===r){var i=0;return e.recv_queue.length&&(i=e.recv_queue[0].data.length),HEAP32[t>>2]=i,0}return ERRNO_CODES.EINVAL},close:function(e){if(e.server){try{e.server.close()}catch(e){}e.server=null}for(var r=Object.keys(e.peers),t=0;t<r.length;t++){var i=e.peers[r[t]];try{i.socket.close()}catch(e){}SOCKFS.websocket_sock_ops.removePeer(e,i)}return 0},bind:function(e,r,t){if(void 0!==e.saddr||void 0!==e.sport)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(e.saddr=r,e.sport=t||_mkport(),2===e.type){e.server&&(e.server.close(),e.server=null);try{e.sock_ops.listen(e,0)}catch(e){if(!(e instanceof FS.ErrnoError))throw e;if(e.errno!==ERRNO_CODES.EOPNOTSUPP)throw e}}},connect:function(e,r,t){if(e.server)throw new FS.ErrnoError(ERRNO_CODS.EOPNOTSUPP);if(void 0!==e.daddr&&void 0!==e.dport){var i=SOCKFS.websocket_sock_ops.getPeer(e,e.daddr,e.dport);if(i)throw i.socket.readyState===i.socket.CONNECTING?new FS.ErrnoError(ERRNO_CODES.EALREADY):new FS.ErrnoError(ERRNO_CODES.EISCONN)}var n=SOCKFS.websocket_sock_ops.createPeer(e,r,t);throw e.daddr=n.addr,e.dport=n.port,new FS.ErrnoError(ERRNO_CODES.EINPROGRESS)},listen:function(e,r){if(!ENVIRONMENT_IS_NODE)throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);if(e.server)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var t=require("ws").Server,i=e.saddr;e.server=new t({host:i,port:e.sport}),e.server.on("connection",function(r){if(1===e.type){var t=SOCKFS.createSocket(e.family,e.type,e.protocol),i=SOCKFS.websocket_sock_ops.createPeer(t,r);t.daddr=i.addr,t.dport=i.port,e.pending.push(t)}else SOCKFS.websocket_sock_ops.createPeer(e,r)}),e.server.on("closed",function(){e.server=null}),e.server.on("error",function(){})},accept:function(e){if(!e.server)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var r=e.pending.shift();return r.stream.flags=e.stream.flags,r},getname:function(e,r){var t,i;if(r){if(void 0===e.daddr||void 0===e.dport)throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);t=e.daddr,i=e.dport}else t=e.saddr||0,i=e.sport||0;return{addr:t,port:i}},sendmsg:function(e,r,t,i,n,o){if(2===e.type){if(void 0!==n&&void 0!==o||(n=e.daddr,o=e.dport),void 0===n||void 0===o)throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ)}else n=e.daddr,o=e.dport;var a,s=SOCKFS.websocket_sock_ops.getPeer(e,n,o);if(1===e.type){if(!s||s.socket.readyState===s.socket.CLOSING||s.socket.readyState===s.socket.CLOSED)throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);if(s.socket.readyState===s.socket.CONNECTING)throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(a=r instanceof Array||r instanceof ArrayBuffer?r.slice(t,t+i):r.buffer.slice(r.byteOffset+t,r.byteOffset+t+i),2===e.type&&(!s||s.socket.readyState!==s.socket.OPEN))return s&&s.socket.readyState!==s.socket.CLOSING&&s.socket.readyState!==s.socket.CLOSED||(s=SOCKFS.websocket_sock_ops.createPeer(e,n,o)),s.dgram_send_queue.push(a),i;try{return s.socket.send(a),i}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}},recvmsg:function(e,r){if(1===e.type&&e.server)throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);var t=e.recv_queue.shift();if(!t){if(1===e.type){var i=SOCKFS.websocket_sock_ops.getPeer(e,e.daddr,e.dport);if(i){if(i.socket.readyState===i.socket.CLOSING||i.socket.readyState===i.socket.CLOSED)return null;throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN)}throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}var n=t.data.byteLength||t.data.length,o=t.data.byteOffset||0,a=t.data.buffer||t.data,s=Math.min(r,n),l={buffer:new Uint8Array(a,o,s),addr:t.addr,port:t.port};if(1===e.type&&s<n){var u=n-s;t.data=new Uint8Array(a,o+s,u),e.recv_queue.unshift(t)}return l}}};function _send(e,r,t,i){return SOCKFS.getSocket(e)?_write(e,r,t):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pwrite(e,r,t,i){var n=FS.getStream(e);if(!n)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var o=HEAP8;return FS.write(n,o,r,t,i)}catch(e){return FS.handleFSError(e),-1}}function _write(e,r,t){var i=FS.getStream(e);if(!i)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var n=HEAP8;return FS.write(i,n,r,t)}catch(e){return FS.handleFSError(e),-1}}function _fwrite(e,r,t,i){var n=t*r;if(0==n)return 0;var o=_write(i,e,n);if(-1==o){var a=FS.getStream(i);return a&&(a.error=!0),0}return Math.floor(o/r)}function __reallyNegative(e){return e<0||0===e&&1/e==-1/0}function __formatString(e,r){var t=e,i=0;function n(e){var t;return"double"===e?t=HEAPF64[r+i>>3]:"i64"==e?(t=[HEAP32[r+i>>2],HEAP32[r+(i+8)>>2]],i+=8):(e="i32",t=HEAP32[r+i>>2]),i+=Math.max(Runtime.getNativeFieldSize(e),Runtime.getAlignSize(e,null,!0)),t}for(var o,a,s=[];;){var l=t;if(0===(o=HEAP8[t]))break;if(a=HEAP8[t+1|0],37==o){var u=!1,f=!1,c=!1,d=!1,_=!1;e:for(;;){switch(a){case 43:u=!0;break;case 45:f=!0;break;case 35:c=!0;break;case 48:if(d)break e;d=!0;break;case 32:_=!0;break;default:break e}t++,a=HEAP8[t+1|0]}var h=0;if(42==a)h=n("i32"),t++,a=HEAP8[t+1|0];else for(;a>=48&&a<=57;)h=10*h+(a-48),t++,a=HEAP8[t+1|0];var p,m=!1;if(46==a){var E=0;if(m=!0,t++,42==(a=HEAP8[t+1|0]))E=n("i32"),t++;else for(;;){var w=HEAP8[t+1|0];if(w<48||w>57)break;E=10*E+(w-48),t++}a=HEAP8[t+1|0]}else E=6;switch(String.fromCharCode(a)){case"h":104==HEAP8[t+2|0]?(t++,p=1):p=2;break;case"l":108==HEAP8[t+2|0]?(t++,p=8):p=4;break;case"L":case"q":case"j":p=8;break;case"z":case"t":case"I":p=4;break;default:p=null}switch(p&&t++,a=HEAP8[t+1|0],String.fromCharCode(a)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var b=100==a||105==a,S=A=n("i"+8*(p=p||4));8==p&&(A=Runtime.makeBigInt(A[0],A[1],117==a)),p<=4&&(A=(b?reSign:unSign)(A&Math.pow(256,p)-1,8*p));var v=Math.abs(A),k="";if(100==a||105==a)F=8==p&&i64Math?i64Math.stringify(S[0],S[1],null):reSign(A,8*p,1).toString(10);else if(117==a)F=8==p&&i64Math?i64Math.stringify(S[0],S[1],!0):unSign(A,8*p,1).toString(10),A=Math.abs(A);else if(111==a)F=(c?"0":"")+v.toString(8);else if(120==a||88==a){if(k=c&&0!=A?"0x":"",8==p&&i64Math)if(S[1]){F=(S[1]>>>0).toString(16);for(var g=(S[0]>>>0).toString(16);g.length<8;)g="0"+g;F+=g}else F=(S[0]>>>0).toString(16);else if(A<0){A=-A,F=(v-1).toString(16);for(var y=[],M=0;M<F.length;M++)y.push((15-parseInt(F[M],16)).toString(16));for(F=y.join("");F.length<2*p;)F="f"+F}else F=v.toString(16);88==a&&(k=k.toUpperCase(),F=F.toUpperCase())}else 112==a&&(0===v?F="(nil)":(k="0x",F=v.toString(16)));if(m)for(;F.length<E;)F="0"+F;for(A>=0&&(u?k="+"+k:_&&(k=" "+k)),"-"==F.charAt(0)&&(k="-"+k,F=F.substr(1));k.length+F.length<h;)f?F+=" ":d?F="0"+F:k=" "+k;(F=k+F).split("").forEach(function(e){s.push(e.charCodeAt(0))});break;case"f":case"F":case"e":case"E":case"g":case"G":var F,A=n("double");if(isNaN(A))F="nan",d=!1;else if(isFinite(A)){var O=!1,R=Math.min(E,20);if(103==a||71==a){O=!0,E=E||1;var T=parseInt(A.toExponential(R).split("e")[1],10);E>T&&T>=-4?(a=(103==a?"f":"F").charCodeAt(0),E-=T+1):(a=(103==a?"e":"E").charCodeAt(0),E--),R=Math.min(E,20)}101==a||69==a?(F=A.toExponential(R),/[eE][-+]\d$/.test(F)&&(F=F.slice(0,-1)+"0"+F.slice(-1))):102!=a&&70!=a||(F=A.toFixed(R),0===A&&__reallyNegative(A)&&(F="-"+F));var N=F.split("e");if(O&&!c)for(;N[0].length>1&&-1!=N[0].indexOf(".")&&("0"==N[0].slice(-1)||"."==N[0].slice(-1));)N[0]=N[0].slice(0,-1);else for(c&&-1==F.indexOf(".")&&(N[0]+=".");E>R++;)N[0]+="0";F=N[0]+(N.length>1?"e"+N[1]:""),69==a&&(F=F.toUpperCase()),A>=0&&(u?F="+"+F:_&&(F=" "+F))}else F=(A<0?"-":"")+"inf",d=!1;for(;F.length<h;)f?F+=" ":F=!d||"-"!=F[0]&&"+"!=F[0]?(d?"0":" ")+F:F[0]+"0"+F.slice(1);a<97&&(F=F.toUpperCase()),F.split("").forEach(function(e){s.push(e.charCodeAt(0))});break;case"s":var P=n("i8*"),x=P?_strlen(P):6;if(m&&(x=Math.min(x,E)),!f)for(;x<h--;)s.push(32);if(P)for(M=0;M<x;M++)s.push(HEAPU8[0|P++]);else s=s.concat(intArrayFromString("(null)".substr(0,x),!0));if(f)for(;x<h--;)s.push(32);break;case"c":for(f&&s.push(n("i8"));--h>0;)s.push(32);f||s.push(n("i8"));break;case"n":var C=n("i32*");HEAP32[C>>2]=s.length;break;case"%":s.push(o);break;default:for(M=l;M<t+2;M++)s.push(HEAP8[M])}t+=2}else s.push(o),t+=1}return s}function _fprintf(e,r,t){var i=__formatString(r,t),n=Runtime.stackSave(),o=_fwrite(allocate(i,"i8",ALLOC_STACK),1,i.length,e);return Runtime.stackRestore(n),o}function _llvm_stacksave(){var e=_llvm_stacksave;return e.LLVM_SAVEDSTACKS||(e.LLVM_SAVEDSTACKS=[]),e.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),e.LLVM_SAVEDSTACKS.length-1}Module._strlen=_strlen;var _llvm_memcpy_p0i8_p0i8_i32=_memcpy;function _llvm_stackrestore(e){var r=_llvm_stacksave,t=r.LLVM_SAVEDSTACKS[e];r.LLVM_SAVEDSTACKS.splice(e,1),Runtime.stackRestore(t)}Module._memset=_memset;var _llvm_memset_p0i8_i32=_memset,_sqrt=Math_sqrt,_sqrtf=Math_sqrt,_acos=Math_acos,_fabsf=Math_abs,_floor=Math_floor,_log=Math_log,_exp=Math_exp;function __exit(e){Module.exit(e)}function _exit(e){__exit(e)}var _llvm_memset_p0i8_i64=_memset,_floorf=Math_floor;function _fputc(e,r){var t=unSign(255&e);if(HEAP8[0|_fputc.ret]=t,-1==_write(r,_fputc.ret,1)){var i=FS.getStream(r);return i&&(i.error=!0),-1}return t}var _llvm_pow_f64=Math_pow,_fabs=Math_abs;function _abort(){Module.abort()}function ___errno_location(){return ___errno_state}function _sbrk(e){var r=_sbrk;r.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),r.called=!0,assert(Runtime.dynamicAlloc),r.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var t=DYNAMICTOP;return 0!=e&&r.alloc(e),t}function _sysconf(e){switch(e){case 30:return 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 79: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 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:case 84: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}return ___setErrNo(ERRNO_CODES.EINVAL),-1}function _time(e){var r=Math.floor(Date.now()/1e3);return e&&(HEAP32[e>>2]=r),r}var Browser={mainLoop:{scheduler:null,shouldPause:!1,paused:!1,queue:[],pause:function(){Browser.mainLoop.shouldPause=!0},resume:function(){Browser.mainLoop.paused&&(Browser.mainLoop.paused=!1,Browser.mainLoop.scheduler()),Browser.mainLoop.shouldPause=!1},updateStatus:function(){if(Module.setStatus){var e=Module.statusMessage||"Please wait...",r=Browser.mainLoop.remainingBlockers,t=Browser.mainLoop.expectedBlockers;r?r<t?Module.setStatus(e+" ("+(t-r)+"/"+t+")"):Module.setStatus(e):Module.setStatus("")}}},isFullScreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),!Browser.initted&&!ENVIRONMENT_IS_WORKER){Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch(e){Browser.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Browser.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),Browser.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,Module.noImageDecoding||void 0!==Browser.URLObject||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var e={canHandle:function(e){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,r,t,i){var n=null;if(Browser.hasBlobConstructor)try{(n=new Blob([e],{type:Browser.getMimetype(r)})).size!==e.length&&(n=new Blob([new Uint8Array(e).buffer],{type:Browser.getMimetype(r)}))}catch(e){Runtime.warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!n){var o=new Browser.BlobBuilder;o.append(new Uint8Array(e).buffer),n=o.getBlob()}var a=Browser.URLObject.createObjectURL(n),s=new Image;s.onload=function(){assert(s.complete,"Image "+r+" could not be decoded");var i=document.createElement("canvas");i.width=s.width,i.height=s.height,i.getContext("2d").drawImage(s,0,0),Module.preloadedImages[r]=i,Browser.URLObject.revokeObjectURL(a),t&&t(e)},s.onerror=function(e){console.log("Image "+a+" could not be decoded"),i&&i()},s.src=a}};Module.preloadPlugins.push(e);var r={canHandle:function(e){return!Module.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,r,t,i){var n=!1;function o(i){n||(n=!0,Module.preloadedAudios[r]=i,t&&t(e))}function a(){n||(n=!0,Module.preloadedAudios[r]=new Audio,i&&i())}if(!Browser.hasBlobConstructor)return a();try{var s=new Blob([e],{type:Browser.getMimetype(r)})}catch(e){return a()}var l=Browser.URLObject.createObjectURL(s),u=new Audio;u.addEventListener("canplaythrough",function(){o(u)},!1),u.onerror=function(t){n||(console.log("warning: browser could not fully decode audio "+r+", trying slower base64 approach"),u.src="data:audio/x-"+r.substr(-3)+";base64,"+function(e){for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t="",i=0,n=0,o=0;o<e.length;o++)for(i=i<<8|e[o],n+=8;n>=6;){var a=i>>n-6&63;n-=6,t+=r[a]}return 2==n?(t+=r[(3&i)<<4],t+="=="):4==n&&(t+=r[(15&i)<<2],t+="="),t}(e),o(u))},u.src=l,Browser.safeSetTimeout(function(){o(u)},1e4)}};Module.preloadPlugins.push(r);var t=Module.canvas;t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock,t.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||function(){},t.exitPointerLock=t.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",i,!1),document.addEventListener("mozpointerlockchange",i,!1),document.addEventListener("webkitpointerlockchange",i,!1),Module.elementPointerLock&&t.addEventListener("click",function(e){!Browser.pointerLock&&t.requestPointerLock&&(t.requestPointerLock(),e.preventDefault())},!1)}function i(){Browser.pointerLock=document.pointerLockElement===t||document.mozPointerLockElement===t||document.webkitPointerLockElement===t}},createContext:function(e,r,t,i){var n;try{if(r){var o={antialias:!1,alpha:!1};if(i)for(var a in i)o[a]=i[a];["experimental-webgl","webgl"].some(function(r){return n=e.getContext(r,o)})}else n=e.getContext("2d");if(!n)throw":("}catch(e){return Module.print("Could not create canvas - "+e),null}return r&&(e.style.backgroundColor="black",e.addEventListener("webglcontextlost",function(e){alert("WebGL context lost. You will need to reload the page.")},!1)),t&&(Module.ctx=n,Module.useWebGL=r,Browser.moduleContextCreatedCallbacks.forEach(function(e){e()}),Browser.init()),n},destroyContext:function(e,r,t){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(e,r){Browser.lockPointer=e,Browser.resizeCanvas=r,void 0===Browser.lockPointer&&(Browser.lockPointer=!0),void 0===Browser.resizeCanvas&&(Browser.resizeCanvas=!1);var t=Module.canvas;function i(){Browser.isFullScreen=!1,(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement)===t?(t.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen,t.cancelFullScreen=t.cancelFullScreen.bind(document),Browser.lockPointer&&t.requestPointerLock(),Browser.isFullScreen=!0,Browser.resizeCanvas&&Browser.setFullScreenCanvasSize()):Browser.resizeCanvas&&Browser.setWindowedCanvasSize(),Module.onFullScreen&&Module.onFullScreen(Browser.isFullScreen)}Browser.fullScreenHandlersInstalled||(Browser.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",i,!1),document.addEventListener("mozfullscreenchange",i,!1),document.addEventListener("webkitfullscreenchange",i,!1)),t.requestFullScreen=t.requestFullScreen||t.mozRequestFullScreen||(t.webkitRequestFullScreen?function(){t.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),t.requestFullScreen()},requestAnimationFrame:function(e){"undefined"==typeof window?setTimeout(e,1e3/60):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||window.setTimeout),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){if(!ABORT)return e.apply(null,arguments)}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame(function(){ABORT||e()})},safeSetTimeout:function(e,r){return setTimeout(function(){ABORT||e()},r)},safeSetInterval:function(e,r){return setInterval(function(){ABORT||e()},r)},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,calculateMouseEvent:function(e){if(Browser.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(e),Browser.mouseMovementY=Browser.getMovementY(e)),"undefined"!=typeof SDL?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var r,t,i=Module.canvas.getBoundingClientRect();if("touchstart"==e.type||"touchend"==e.type||"touchmove"==e.type){var n=e.touches.item(0);if(!n)return;r=n.pageX-(window.scrollX+i.left),t=n.pageY-(window.scrollY+i.top)}else r=e.pageX-(window.scrollX+i.left),t=e.pageY-(window.scrollY+i.top);var o=Module.canvas.width,a=Module.canvas.height;r*=o/i.width,t*=a/i.height,Browser.mouseMovementX=r-Browser.mouseX,Browser.mouseMovementY=t-Browser.mouseY,Browser.mouseX=r,Browser.mouseY=t}},xhrLoad:function(e,r,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=function(){200==i.status||0==i.status&&i.response?r(i.response):t()},i.onerror=t,i.send(null)},asyncLoad:function(e,r,t,i){Browser.xhrLoad(e,function(t){assert(t,'Loading data file "'+e+'" failed (no arrayBuffer).'),r(new Uint8Array(t)),i||removeRunDependency("al "+e)},function(r){if(!t)throw'Loading data file "'+e+'" failed.';t()}),i||addRunDependency("al "+e)},resizeListeners:[],updateResizeListeners:function(){var e=Module.canvas;Browser.resizeListeners.forEach(function(r){r(e.width,e.height)})},setCanvasSize:function(e,r,t){var i=Module.canvas;i.width=e,i.height=r,t||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){var e=Module.canvas;if(this.windowedWidth=e.width,this.windowedHeight=e.height,e.width=screen.width,e.height=screen.height,"undefined"!=typeof SDL){var r=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];r|=8388608,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=r}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){var e=Module.canvas;if(e.width=this.windowedWidth,e.height=this.windowedHeight,"undefined"!=typeof SDL){var r=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];r&=-8388609,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=r}Browser.updateResizeListeners()}};if(FS.staticInit(),__ATINIT__.unshift({func:function(){Module.noFSInit||FS.init.initialized||FS.init()}}),__ATMAIN__.push({func:function(){FS.ignorePermissions=!1}}),__ATEXIT__.push({func:function(){FS.quit()}}),Module.FS_createFolder=FS.createFolder,Module.FS_createPath=FS.createPath,Module.FS_createDataFile=FS.createDataFile,Module.FS_createPreloadedFile=FS.createPreloadedFile,Module.FS_createLazyFile=FS.createLazyFile,Module.FS_createLink=FS.createLink,Module.FS_createDevice=FS.createDevice,___errno_state=Runtime.staticAlloc(4),HEAP32[___errno_state>>2]=0,__ATINIT__.unshift({func:function(){TTY.init()}}),__ATEXIT__.push({func:function(){TTY.shutdown()}}),TTY.utf8=new Runtime.UTF8Processor,ENVIRONMENT_IS_NODE){var fs=require("fs");NODEFS.staticInit()}__ATINIT__.push({func:function(){SOCKFS.root=FS.mount(SOCKFS,{},null)}}),_fputc.ret=allocate([0],"i8",ALLOC_STATIC),Module.requestFullScreen=function(e,r){Browser.requestFullScreen(e,r)},Module.requestAnimationFrame=function(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function(e,r,t){Browser.setCanvasSize(e,r,t)},Module.pauseMainLoop=function(){Browser.mainLoop.pause()},Module.resumeMainLoop=function(){Browser.mainLoop.resume()},Module.getUserMedia=function(){Browser.getUserMedia()},STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+5242880,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX),assert(DYNAMIC_BASE<TOTAL_MEMORY);var Math_min=Math.min;function invoke_viiiiiiiiiiiii(e,r,t,i,n,o,a,s,l,u,f,c,d,_){try{Module.dynCall_viiiiiiiiiiiii(e,r,t,i,n,o,a,s,l,u,f,c,d,_)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiiiii(e,r,t,i,n,o,a){try{Module.dynCall_viiiiii(e,r,t,i,n,o,a)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_vi(e,r){try{Module.dynCall_vi(e,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_v(e){try{Module.dynCall_v(e)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_iiii(e,r,t,i){try{return Module.dynCall_iiii(e,r,t,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_ii(e,r){try{return Module.dynCall_ii(e,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viii(e,r,t,i){try{Module.dynCall_viii(e,r,t,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_iiiiiiiiiifiiiiiiiiii(e,r,t,i,n,o,a,s,l,u,f,c,d,_,h,p,m,E,w,b,S){try{return Module.dynCall_iiiiiiiiiifiiiiiiiiii(e,r,t,i,n,o,a,s,l,u,f,c,d,_,h,p,m,E,w,b,S)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiiifiiiiiiiifi(e,r,t,i,n,o,a,s,l,u,f,c,d,_,h,p){try{Module.dynCall_viiiifiiiiiiiifi(e,r,t,i,n,o,a,s,l,u,f,c,d,_,h,p)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_iii(e,r,t){try{return Module.dynCall_iii(e,r,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiii(e,r,t,i,n){try{Module.dynCall_viiii(e,r,t,i,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function asmPrintInt(e,r){Module.print("int "+e+","+r)}function asmPrintFloat(e,r){Module.print("float "+e+","+r)}var asm=function(e,r,t){"use asm";var i=new e.Int8Array(t);var n=new e.Int16Array(t);var o=new e.Int32Array(t);var a=new e.Uint8Array(t);var s=new e.Uint16Array(t);var l=new e.Uint32Array(t);var u=new e.Float32Array(t);var f=new e.Float64Array(t);var c=r.STACKTOP|0;var d=r.STACK_MAX|0;var _=r.tempDoublePtr|0;var h=r.ABORT|0;var p=r._stderr|0;var m=+r.NaN;var E=+r.Infinity;var w=0;var b=0;var S=0;var v=0;var k=0,g=0,y=0,M=0,F=0.0,A=0,O=0,R=0,T=0.0;var N=0;var P=0;var x=0;var C=0;var D=0;var I=0;var L=0;var B=0;var H=0;var U=0;var z=e.Math.floor;var q=e.Math.abs;var V=e.Math.sqrt;var X=e.Math.pow;var j=e.Math.cos;var K=e.Math.sin;var Y=e.Math.tan;var G=e.Math.acos;var W=e.Math.asin;var Q=e.Math.atan;var Z=e.Math.atan2;var J=e.Math.exp;var $=e.Math.log;var ee=e.Math.ceil;var re=e.Math.imul;var te=r.abort;var ie=r.assert;var ne=r.asmPrintInt;var oe=r.asmPrintFloat;var ae=r.min;var se=r.invoke_viiiiiiiiiiiii;var le=r.invoke_viiiiii;var ue=r.invoke_vi;var fe=r.invoke_v;var ce=r.invoke_iiii;var de=r.invoke_ii;var _e=r.invoke_viii;var he=r.invoke_iiiiiiiiiifiiiiiiiiii;var pe=r.invoke_viiiifiiiiiiiifi;var me=r.invoke_iii;var Ee=r.invoke_viiii;var we=r._fabsf;var be=r._floorf;var Se=r._abort;var ve=r._fprintf;var ke=r._sqrt;var ge=r._fflush;var ye=r.__reallyNegative;var Me=r._sqrtf;var Fe=r._fputc;var Ae=r._log;var Oe=r._fabs;var Re=r._floor;var Te=r.___setErrNo;var Ne=r._fwrite;var Pe=r._send;var xe=r._write;var Ce=r._exit;var De=r._sysconf;var Ie=r.__exit;var Le=r.__formatString;var Be=r._llvm_stackrestore;var He=r._pwrite;var Ue=r._llvm_pow_f64;var ze=r._sbrk;var qe=r._llvm_stacksave;var Ve=r.___errno_location;var Xe=r._exp;var je=r._time;var Ke=r._acos;var Ye=0.0;function Ge(e){e=e|0;var r=0;r=c;c=c+e|0;c=c+7&-8;return r|0}function We(){return c|0}function Qe(e){e=e|0;c=e}function Ze(e,r){e=e|0;r=r|0;if((w|0)==0){w=e;b=r}}function Je(e){e=e|0;i[_]=i[e];i[_+1|0]=i[e+1|0];i[_+2|0]=i[e+2|0];i[_+3|0]=i[e+3|0]}function $e(e){e=e|0;i[_]=i[e];i[_+1|0]=i[e+1|0];i[_+2|0]=i[e+2|0];i[_+3|0]=i[e+3|0];i[_+4|0]=i[e+4|0];i[_+5|0]=i[e+5|0];i[_+6|0]=i[e+6|0];i[_+7|0]=i[e+7|0]}function er(e){e=e|0;N=e}function rr(e){e=e|0;P=e}function tr(e){e=e|0;x=e}function ir(e){e=e|0;C=e}function nr(e){e=e|0;D=e}function or(e){e=e|0;I=e}function ar(e){e=e|0;L=e}function sr(e){e=e|0;B=e}function lr(e){e=e|0;H=e}function ur(e){e=e|0;U=e}function fr(){}function cr(e){e=e|0;var r=0;r=Ti(2e3,1)|0;o[e>>2]=r;if((r|0)==0){return}o[e+24>>2]=2e3;o[e+16>>2]=1;i[r]=0;o[e+4>>2]=0;o[e+8>>2]=0;o[e+12>>2]=0;o[e+20>>2]=0;return}function dr(e){e=e|0;i[o[e>>2]|0]=0;o[e+4>>2]=0;o[e+8>>2]=0;o[e+12>>2]=0;o[e+20>>2]=0;return}function _r(e,r,t){e=e|0;r=r|0;t=t|0;o[e>>2]=r;o[e+24>>2]=t;o[e+16>>2]=0;i[r]=0;o[e+4>>2]=0;o[e+8>>2]=0;o[e+12>>2]=0;o[e+20>>2]=0;return}function hr(e,r,t){e=e|0;r=r|0;t=t|0;o[e>>2]=r;o[e+24>>2]=t;o[e+16>>2]=0;o[e+4>>2]=t<<3;o[e+8>>2]=0;o[e+12>>2]=0;o[e+20>>2]=0;return}function pr(e){e=e|0;if((o[e+16>>2]|0)==0){return}Ri(o[e>>2]|0);return}function mr(e){e=e|0;o[e+8>>2]=0;o[e+12>>2]=0;o[e+20>>2]=0;return}function Er(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,a=0,s=0,l=0,u=0,f=0,d=0,_=0,h=0,m=0,E=0,w=0,b=0;n=c;a=e+24|0;do{if((o[a>>2]|0)<(t|0)){s=o[p>>2]|0;ve(s|0,12744,(l=c,c=c+8|0,o[l>>2]=14152,l)|0)|0;c=l;if((o[e+16>>2]|0)==0){ve(s|0,12864,(l=c,c=c+8|0,o[l>>2]=13712,l)|0)|0;c=l;u=o[a>>2]|0;break}f=e|0;d=Ni(o[f>>2]|0,t)|0;if((d|0)==0){_=o[a>>2]|0;ve(s|0,12864,(l=c,c=c+8|0,o[l>>2]=14104,l)|0)|0;c=l;u=_;break}else{o[a>>2]=t;o[f>>2]=d;u=t;break}}else{u=t}}while(0);if((u|0)<=0){h=u<<3;m=e+4|0;o[m>>2]=h;E=e+8|0;o[E>>2]=0;w=e+12|0;o[w>>2]=0;b=e+20|0;o[b>>2]=0;c=n;return}t=e|0;a=0;do{i[(o[t>>2]|0)+a|0]=i[r+a|0]|0;a=a+1|0}while((a|0)<(u|0));h=u<<3;m=e+4|0;o[m>>2]=h;E=e+8|0;o[E>>2]=0;w=e+12|0;o[w>>2]=0;b=e+20|0;o[b>>2]=0;c=n;return}function wr(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,a=0,s=0,l=0,u=0,f=0,d=0,_=0,h=0,m=0,E=0,w=0,b=0,S=0,v=0;n=c;a=e+4|0;s=o[a>>2]|0;l=e+24|0;do{if(((s+7>>3)+t|0)>(o[l>>2]|0)){if((o[e+16>>2]|0)==0){u=o[p>>2]|0;ve(u|0,12864,(f=c,c=c+8|0,o[f>>2]=13712,f)|0)|0;c=f;d=o[l>>2]|0;break}u=e|0;_=t+1|0;h=Ni(o[u>>2]|0,_+(s>>3)|0)|0;if((h|0)==0){m=(o[l>>2]|0)-1-(o[a>>2]>>3)|0;E=o[p>>2]|0;ve(E|0,12864,(f=c,c=c+8|0,o[f>>2]=13480,f)|0)|0;c=f;d=m;break}else{o[l>>2]=_+(o[a>>2]>>3);o[u>>2]=h;d=t;break}}else{d=t}}while(0);t=e+8|0;l=o[t>>2]|0;if((l|0)>0){f=o[e>>2]|0;Wi(f|0,f+l|0,((o[a>>2]|0)+7>>3)-l|0);w=o[t>>2]|0}else{w=l}l=(o[a>>2]|0)-(w<<3)|0;o[a>>2]=l;o[t>>2]=0;t=l>>3;if((d|0)<=0){b=l;S=d<<3;v=b+S|0;o[a>>2]=v;c=n;return}l=e|0;e=0;do{i[(o[l>>2]|0)+(e+t)|0]=i[r+e|0]|0;e=e+1|0}while((e|0)<(d|0));b=o[a>>2]|0;S=d<<3;v=b+S|0;o[a>>2]=v;c=n;return}function br(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,a=0,s=0,l=0,u=0,f=0;n=e+12|0;a=o[n>>2]|0;s=e+8|0;l=o[s>>2]|0;u=e+4|0;f=o[u>>2]|0;do{if((a|0)!=0){kr(e,0,1);if((o[n>>2]|0)==0){break}do{kr(e,1,1)}while((o[n>>2]|0)!=0)}}while(0);o[n>>2]=a;o[s>>2]=l;o[u>>2]=f;u=f+7>>3;f=(u|0)<(t|0)?u:t;if((f|0)<=0){return f|0}t=e|0;e=0;do{i[r+e|0]=i[(o[t>>2]|0)+e|0]|0;e=e+1|0}while((e|0)<(f|0));return f|0}function Sr(e){e=e|0;var r=0;r=e+12|0;if((o[r>>2]|0)==0){return}kr(e,0,1);if((o[r>>2]|0)==0){return}do{kr(e,1,1)}while((o[r>>2]|0)!=0);return}function vr(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,a=0,s=0,l=0;n=e+4|0;a=o[n>>2]>>3;s=(a|0)<(t|0)?a:t;t=e|0;if((s|0)>0){a=0;do{i[r+a|0]=i[(o[t>>2]|0)+a|0]|0;a=a+1|0}while((a|0)<(s|0))}a=o[t>>2]|0;if((o[e+12>>2]|0)>0){l=i[a+s|0]|0}else{l=0}i[a]=l;o[e+8>>2]=0;o[n>>2]=o[n>>2]&7;return s|0}function kr(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,s=0,l=0,u=0,f=0,d=0,_=0,h=0,m=0;n=c;s=e+8|0;l=e+12|0;u=e+24|0;do{if((((o[l>>2]|0)+t>>3)+(o[s>>2]|0)|0)>=(o[u>>2]|0)){f=o[p>>2]|0;ve(f|0,12744,(d=c,c=c+8|0,o[d>>2]=13288,d)|0)|0;c=d;if((o[e+16>>2]|0)==0){ve(f|0,12864,(d=c,c=c+8|0,o[d>>2]=12944,d)|0)|0;c=d;c=n;return}_=((o[u>>2]|0)*3|0)+15>>1;h=e|0;m=Ni(o[h>>2]|0,_)|0;if((m|0)!=0){o[u>>2]=_;o[h>>2]=m;break}ve(f|0,12864,(d=c,c=c+8|0,o[d>>2]=13144,d)|0)|0;c=d;c=n;return}}while(0);if((t|0)==0){c=n;return}u=e|0;d=e+4|0;e=t;do{e=e-1|0;t=(o[u>>2]|0)+(o[s>>2]|0)|0;i[t]=(a[t]|0|(r>>>(e>>>0)&1)<<7-(o[l>>2]|0))&255;t=(o[l>>2]|0)+1|0;o[l>>2]=t;if((t|0)==8){o[l>>2]=0;t=(o[s>>2]|0)+1|0;o[s>>2]=t;i[(o[u>>2]|0)+t|0]=0}o[d>>2]=(o[d>>2]|0)+1}while((e|0)!=0);c=n;return}function gr(e,r){e=e|0;r=r|0;var t=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0;t=e+8|0;n=o[t>>2]|0;a=e+12|0;s=o[a>>2]|0;l=e+20|0;do{if((s+r+(n<<3)|0)>(o[e+4>>2]|0)){o[l>>2]=1;u=0}else{if((o[l>>2]|0)!=0|(r|0)==0){u=0;break}f=o[e>>2]|0;c=r;d=0;_=n;h=s;while(1){p=(i[f+_|0]|0)>>>((7-h|0)>>>0)&1|d<<1;m=h+1|0;o[a>>2]=m;if((m|0)==8){o[a>>2]=0;E=_+1|0;o[t>>2]=E;w=E;b=0}else{w=_;b=m}m=c-1|0;if((m|0)==0){u=p;break}else{c=m;d=p;_=w;h=b}}}}while(0);if((u>>>((r-1|0)>>>0)|0)==0){S=u;return S|0}S=u|-1<<r;return S|0}function yr(e,r){e=e|0;r=r|0;var t=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0,_=0,h=0;t=e+8|0;n=o[t>>2]|0;a=e+12|0;s=o[a>>2]|0;l=e+20|0;if((s+r+(n<<3)|0)>(o[e+4>>2]|0)){o[l>>2]=1;u=0;return u|0}if((o[l>>2]|0)!=0|(r|0)==0){u=0;return u|0}l=o[e>>2]|0;e=r;r=0;f=n;n=s;while(1){s=(i[l+f|0]|0)>>>((7-n|0)>>>0)&1|r<<1;c=n+1|0;o[a>>2]=c;if((c|0)==8){o[a>>2]=0;d=f+1|0;o[t>>2]=d;_=d;h=0}else{_=f;h=c}c=e-1|0;if((c|0)==0){u=s;break}else{e=c;r=s;f=_;n=h}}return u|0}function Mr(e,r){e=e|0;r=r|0;var t=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0;t=o[e+8>>2]|0;n=o[e+12>>2]|0;a=e+20|0;if((n+r+(t<<3)|0)>(o[e+4>>2]|0)){o[a>>2]=1;s=0;return s|0}if((o[a>>2]|0)!=0){s=0;return s|0}a=o[e>>2]|0;if((r|0)==0){s=0;return s|0}else{l=r;u=0;f=n;c=t}while(1){t=(i[a+c|0]|0)>>>((7-f|0)>>>0)&1|u<<1;n=f+1|0;r=(n|0)==8;e=l-1|0;if((e|0)==0){s=t;break}else{l=e;u=t;f=r?0:n;c=(r&1)+c|0}}return s|0}function Fr(e){e=e|0;var r=0,t=0,n=0,a=0;r=o[e+8>>2]|0;t=o[e+12>>2]|0;n=e+20|0;if((t+1+(r<<3)|0)>(o[e+4>>2]|0)){o[n>>2]=1;a=0;return a|0}if((o[n>>2]|0)!=0){a=0;return a|0}a=(i[(o[e>>2]|0)+r|0]|0)>>>((7-t|0)>>>0)&1;return a|0}function Ar(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,a=0;t=e+8|0;i=o[t>>2]|0;n=e+12|0;a=(o[n>>2]|0)+r|0;r=e+20|0;do{if((a+(i<<3)|0)<=(o[e+4>>2]|0)){if((o[r>>2]|0)!=0){break}o[t>>2]=(a>>3)+i;o[n>>2]=a&7;return}}while(0);o[r>>2]=1;return}function Or(e){e=e|0;var r=0;if((o[e+20>>2]|0)!=0){r=-1;return r|0}r=(o[e+4>>2]|0)-(o[e+12>>2]|0)-(o[e+8>>2]<<3)|0;return r|0}function Rr(e){e=e|0;return(o[e+4>>2]|0)+7>>3|0}function Tr(e,r,t,n,a,s,l,f,d,_,h,p,m){e=e|0;r=r|0;t=t|0;n=n|0;a=a|0;s=s|0;l=l|0;f=f|0;d=d|0;_=_|0;h=h|0;p=p|0;m=m|0;var E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0,D=0,I=0,L=0,B=0,H=0,U=0,z=0,q=0,V=0,X=0,j=0,K=0,Y=0,G=0,W=0,Q=0,Z=0,J=0,$=0,ee=0,te=0,ie=0,ne=0,oe=0.0,ae=0,se=0.0,le=0.0,ue=0.0,fe=0,ce=0,de=0,_e=0,he=0,pe=0,me=0,Ee=0,we=0;E=c;w=(p|0)>10?20:p<<1;p=(w|0)<3?1:(w|0)/3|0;if((p|0)==1){Nr(e,r,t,n,a,s,l,f,d,_,h,m);c=E;return}w=qe()|0;b=c;c=c+(p*4|0)|0;c=c+7&-8;S=c;c=c+(p*4|0)|0;c=c+7&-8;v=c;c=c+(p*4|0)|0;c=c+7&-8;k=c;c=c+(p*4|0)|0;c=c+7&-8;g=o[a>>2]|0;y=o[a+4>>2]|0;M=a+12|0;F=o[M>>2]|0;A=1<<F;O=o[a+8>>2]|0;R=o[a+16>>2]|0;a=c;c=c+((g<<F)*4|0)|0;c=c+7&-8;F=c;c=c+(A*4|0)|0;c=c+7&-8;T=c;c=c+(l*4|0)|0;c=c+7&-8;N=c;c=c+(l*4|0)|0;c=c+7&-8;P=N;x=c;c=c+(y*4|0)|0;c=c+7&-8;C=p<<1;D=re(C,l)|0;I=c;c=c+(D*4|0)|0;c=c+7&-8;D=(p|0)>0;if(D){L=0;do{B=L<<1;o[b+(L<<2)>>2]=I+((re(B,l)|0)<<2);o[S+(L<<2)>>2]=I+((re(B|1,l)|0)<<2);L=L+1|0}while((L|0)<(p|0))}L=c;c=c+(p*4|0)|0;c=c+7&-8;I=c;c=c+(p*4|0)|0;c=c+7&-8;B=c;c=c+(p*4|0)|0;c=c+7&-8;H=B;U=c;c=c+(p*4|0)|0;c=c+7&-8;z=U;q=c;c=c+(p*4|0)|0;c=c+7&-8;V=q;X=c;c=c+(p*4|0)|0;c=c+7&-8;j=X;K=re(y,C)|0;C=c;c=c+(K*4|0)|0;c=c+7&-8;do{if(D){K=0;do{Y=K<<1;o[k+(K<<2)>>2]=C+((re(Y,y)|0)<<2);o[v+(K<<2)>>2]=C+((re(Y|1,y)|0)<<2);K=K+1|0}while((K|0)<(p|0));K=T;Y=e;G=l<<2;Gi(K|0,Y|0,G)|0;if(D){W=0}else{Q=142;break}do{Y=o[b+(W<<2)>>2]|0;Gi(Y|0,K|0,G)|0;W=W+1|0}while((W|0)<(p|0));Pr(O,d,a,F,A,g);if(!D){break}Zi(j|0,0,p<<2|0)}else{G=T;K=e;Y=l<<2;Gi(G|0,K|0,Y)|0;Q=142}}while(0);if((Q|0)==142){Pr(O,d,a,F,A,g)}Q=(y|0)>0;do{if(Q){T=(g|0)>0;W=(R|0)==0;C=p-1|0;Y=q+(C<<2)|0;K=p<<2;G=S;Z=b;J=0;while(1){do{if(D){$=0;do{u[q+($<<2)>>2]=999999986991104.0;$=$+1|0}while(($|0)<(p|0));if(!D){break}Zi(z|0,0,K|0);Zi(H|0,0,K|0)}}while(0);$=re(J,g)|0;ee=(J|0)==0;te=0;while(1){if((te|0)>=(p|0)){break}ie=o[Z+(te<<2)>>2]|0;ne=ie+($<<2)|0;if(T){oe=0.0;ae=0;do{se=+u[ie+(ae+$<<2)>>2];oe=oe+se*se;ae=ae+1|0}while((ae|0)<(g|0));le=oe*.5}else{le=0.0}if(W){Fi(ne,a,g,A,F,p,L,I,h)}else{Ai(ne,a,g,A,F,p,L,I,h)}if(D){se=+u[X+(te<<2)>>2];ae=0;do{ue=le+(se+ +u[I+(ae<<2)>>2]);e:do{if(ue<+u[Y>>2]){ie=0;while(1){if((ie|0)>=(p|0)){break e}fe=q+(ie<<2)|0;if(ue<+u[fe>>2]){break}else{ie=ie+1|0}}if((C|0)>(ie|0)){ce=C;while(1){de=ce-1|0;u[q+(ce<<2)>>2]=+u[q+(de<<2)>>2];o[B+(ce<<2)>>2]=o[B+(de<<2)>>2];o[U+(ce<<2)>>2]=o[U+(de<<2)>>2];if((de|0)>(ie|0)){ce=de}else{_e=ie;break}}}else{_e=C}u[fe>>2]=ue;o[B+(_e<<2)>>2]=o[L+(ae<<2)>>2];o[U+(_e<<2)>>2]=te}}while(0);ae=ae+1|0}while((ae|0)<(p|0))}if(ee){break}else{te=te+1|0}}do{if(D){te=re(J+1|0,g)|0;ee=(te|0)<(l|0);$=l-te|0;ae=($|0)>0;ne=0;do{if(ee){ie=G+(ne<<2)|0;ce=o[U+(ne<<2)>>2]|0;de=te;do{u[(o[ie>>2]|0)+(de<<2)>>2]=+u[(o[Z+(ce<<2)>>2]|0)+(de<<2)>>2];de=de+1|0}while((de|0)<(l|0))}if(T){de=G+(ne<<2)|0;ce=o[B+(ne<<2)>>2]|0;ie=0;do{he=(ce|0)<(A|0);pe=g-ie|0;se=(he?.03125:-.03125)*+(i[O+((re(ce-(he?0:A)|0,g)|0)+ie)|0]|0);he=o[de>>2]|0;if(ae){me=0;do{Ee=he+(me+te<<2)|0;u[Ee>>2]=+u[Ee>>2]-se*+u[d+(pe+me<<2)>>2];me=me+1|0}while((me|0)<($|0))}ie=ie+1|0}while((ie|0)<(g|0))}ie=o[v+(o[U+(ne<<2)>>2]<<2)>>2]|0;de=k+(ne<<2)|0;ce=o[de>>2]|0;me=0;do{o[ce+(me<<2)>>2]=o[ie+(me<<2)>>2];me=me+1|0}while((me|0)<(y|0));o[(o[de>>2]|0)+(J<<2)>>2]=o[B+(ne<<2)>>2];ne=ne+1|0}while((ne|0)<(p|0));if(D){we=0}else{break}do{ne=o[k+(we<<2)>>2]|0;$=o[v+(we<<2)>>2]|0;te=0;do{o[$+(te<<2)>>2]=o[ne+(te<<2)>>2];te=te+1|0}while((te|0)<(y|0));we=we+1|0}while((we|0)<(p|0));if(!D){break}Gi(j|0,V|0,K)|0}}while(0);te=J+1|0;if((te|0)<(y|0)){ne=G;G=Z;J=te;Z=ne}else{break}}if(!Q){break}Z=o[k>>2]|0;J=0;do{G=o[Z+(J<<2)>>2]|0;o[x+(J<<2)>>2]=G;kr(_,G,(o[M>>2]|0)+R|0);J=J+1|0}while((J|0)<(y|0));if(!Q){break}J=(g|0)>0;Z=0;do{G=o[x+(Z<<2)>>2]|0;K=(G|0)<(A|0);se=K?.03125:-.03125;if(J){T=re(G-(K?0:A)|0,g)|0;K=re(Z,g)|0;G=0;do{u[N+(G+K<<2)>>2]=se*+(i[O+(G+T)|0]|0);G=G+1|0}while((G|0)<(g|0))}Z=Z+1|0}while((Z|0)<(y|0))}}while(0);y=(l|0)>0;if(y){g=0;do{O=f+(g<<2)|0;u[O>>2]=+u[O>>2]+ +u[N+(g<<2)>>2];g=g+1|0}while((g|0)<(l|0))}if((m|0)!=0){m=qe()|0;g=c;c=c+(l*4|0)|0;c=c+7&-8;if(y){y=g;N=l<<2;Gi(y|0,P|0,N)|0;Kr(g,r,t,n,g,l,s,h);N=0;do{P=e+(N<<2)|0;u[P>>2]=+u[P>>2]-+u[g+(N<<2)>>2];N=N+1|0}while((N|0)<(l|0))}else{Kr(g,r,t,n,g,l,s,h)}Be(m|0)}Be(w|0);c=E;return}function Nr(e,r,t,n,a,s,l,f,d,_,h,p){e=e|0;r=r|0;t=t|0;n=n|0;a=a|0;s=s|0;l=l|0;f=f|0;d=d|0;_=_|0;h=h|0;p=p|0;var m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0,D=0,I=0,L=0,B=0,H=0.0,U=0,z=0,q=0,V=0,X=0,j=0,K=0,Y=0;m=c;c=c+16|0;E=m|0;w=m+8|0;b=o[a>>2]|0;S=o[a+4>>2]|0;v=a+12|0;k=o[v>>2]|0;g=1<<k;y=o[a+8>>2]|0;M=o[a+16>>2]|0;a=c;c=c+((b<<k)*4|0)|0;c=c+7&-8;k=c;c=c+(g*4|0)|0;c=c+7&-8;F=c;c=c+(l*4|0)|0;c=c+7&-8;A=c;c=c+(l*4|0)|0;c=c+7&-8;O=A;R=F;T=e;N=l<<2;Gi(R|0,T|0,N)|0;Pr(y,d,a,k,g,b);if((S|0)>0){N=(M|0)==0;T=(b|0)>0;R=0;while(1){P=re(R,b)|0;x=F+(P<<2)|0;if(N){Fi(x,a,b,g,k,1,E,w,h)}else{Ai(x,a,b,g,k,1,E,w,h)}kr(_,o[E>>2]|0,(o[v>>2]|0)+M|0);x=o[E>>2]|0;C=(x|0)<(g|0);D=re(x-(C?0:g)|0,b)|0;do{if(C){if(T){I=0}else{L=225;break}while(1){x=F+(I+P<<2)|0;u[x>>2]=+u[x>>2]-+u[a+(I+D<<2)>>2];x=I+1|0;if((x|0)<(b|0)){I=x}else{L=221;break}}}else{if(T){B=0}else{L=225;break}while(1){x=F+(B+P<<2)|0;u[x>>2]=+u[x>>2]+ +u[a+(B+D<<2)>>2];x=B+1|0;if((x|0)<(b|0)){B=x}else{L=221;break}}}}while(0);do{if((L|0)==221){L=0;if(!T){L=225;break}H=C?.03125:-.03125;x=0;do{u[A+(x+P<<2)>>2]=H*+(i[y+(x+D)|0]|0);x=x+1|0}while((x|0)<(b|0));if(!T){L=225;break}x=R+1|0;U=re(x,b)|0;z=l-U|0;q=(z|0)>0;V=0;while(1){X=b-V|0;H=(C?.03125:-.03125)*+(i[y+(D+V)|0]|0);if(q){j=0;do{K=F+(j+U<<2)|0;u[K>>2]=+u[K>>2]-H*+u[d+(X+j<<2)>>2];j=j+1|0}while((j|0)<(z|0))}j=V+1|0;if((j|0)<(b|0)){V=j}else{Y=x;break}}}}while(0);if((L|0)==225){L=0;Y=R+1|0}if((Y|0)<(S|0)){R=Y}else{break}}}Y=(l|0)>0;if(Y){R=0;do{S=f+(R<<2)|0;u[S>>2]=+u[S>>2]+ +u[A+(R<<2)>>2];R=R+1|0}while((R|0)<(l|0))}if((p|0)==0){c=m;return}p=qe()|0;R=c;c=c+(l*4|0)|0;c=c+7&-8;if(Y){Y=R;A=l<<2;Gi(Y|0,O|0,A)|0;Kr(R,r,t,n,R,l,s,h);A=0;do{O=e+(A<<2)|0;u[O>>2]=+u[O>>2]-+u[R+(A<<2)>>2];A=A+1|0}while((A|0)<(l|0))}else{Kr(R,r,t,n,R,l,s,h)}Be(p|0);c=m;return}function Pr(e,r,t,n,o,a){e=e|0;r=r|0;t=t|0;n=n|0;o=o|0;a=a|0;var s=0,l=0,f=0,d=0,_=0,h=0,p=0,m=0.0,E=0.0;s=c;l=c;c=c+(a*4|0)|0;c=c+7&-8;if((o|0)<=0){c=s;return}if((a|0)>0){f=0}else{Zi(n|0,0,o<<2|0);c=s;return}do{d=re(f,a)|0;_=0;do{u[l+(_<<2)>>2]=+(i[e+(_+d)|0]|0);_=_+1|0}while((_|0)<(a|0));_=n+(f<<2)|0;u[_>>2]=0.0;h=0;do{p=0;m=0.0;do{m=m+ +u[l+(p<<2)>>2]*+u[r+(h-p<<2)>>2];p=p+1|0}while((p|0)<=(h|0));E=m*.03125;u[_>>2]=E*E+ +u[_>>2];u[t+(h+d<<2)>>2]=E;h=h+1|0}while((h|0)<(a|0));f=f+1|0}while((f|0)<(o|0));c=s;return}function xr(e,r,t,n,a,s){e=e|0;r=r|0;t=t|0;n=n|0;a=a|0;s=s|0;var l=0,f=0,d=0,_=0,h=0,p=0,m=0.0,E=0;s=c;a=o[r>>2]|0;t=o[r+4>>2]|0;l=r+12|0;f=o[r+8>>2]|0;d=c;c=c+(t*4|0)|0;c=c+7&-8;_=c;c=c+(t*4|0)|0;c=c+7&-8;h=(t|0)>0;if(!h){c=s;return}p=(o[r+16>>2]|0)==0;r=0;do{if(p){o[_+(r<<2)>>2]=0}else{o[_+(r<<2)>>2]=yr(n,1)|0}o[d+(r<<2)>>2]=yr(n,o[l>>2]|0)|0;r=r+1|0}while((r|0)<(t|0));if(!h){c=s;return}h=(a|0)>0;r=0;do{m=(o[_+(r<<2)>>2]|0)==0?.03125:-.03125;if(h){l=re(o[d+(r<<2)>>2]|0,a)|0;n=re(r,a)|0;p=0;do{E=e+(p+n<<2)|0;u[E>>2]=+u[E>>2]+m*+(i[f+(l+p)|0]|0);p=p+1|0}while((p|0)<(a|0))}r=r+1|0}while((r|0)<(t|0));c=s;return}function Cr(e,r,t,i,n,o,a,s,l,f,d,_,h){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;l=l|0;f=f|0;d=d|0;_=_|0;h=h|0;h=c;_=c;c=c+(a*4|0)|0;c=c+7&-8;Yr(e,r,t,i,_,a,o,d);if((a|0)>0){d=0;do{o=s+(d<<2)|0;u[o>>2]=+u[_+(d<<2)>>2]+ +u[o>>2];d=d+1|0}while((d|0)<(a|0))}Zi(e|0,0,a<<2|0);c=h;return}function Dr(e,r,t,i,n,a){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;a=a|0;var s=0;if((t|0)>0){s=0}else{return}do{n=(re(o[a>>2]|0,1664525)|0)+1013904223|0;o[a>>2]=n;u[e+(s<<2)>>2]=((o[_>>2]=n&8388607|1065353216,+u[_>>2])+-1.5)*3.4642;s=s+1|0}while((s|0)<(t|0));return}function Ir(e,r,t,i){e=+e;r=r|0;t=t|0;i=i|0;var n=0,o=0.0,a=0;if((i|0)>0){n=0;o=e}else{return}while(1){u[t+(n<<2)>>2]=o*+u[r+(n<<2)>>2];a=n+1|0;if((a|0)<(i|0)){n=a;o=o*e}else{break}}return}function Lr(e,r,t,i){e=e|0;r=+r;t=+t;i=i|0;var n=0,o=0,a=0.0;if((i|0)>0){n=0}else{return}do{o=e+(n<<2)|0;a=+u[o>>2];do{if(a<r|a>t){if(a<r){u[o>>2]=r;break}if(a>t){u[o>>2]=t;break}else{u[o>>2]=0.0;break}}}while(0);n=n+1|0}while((n|0)<(i|0));return}function Br(e,r,t,i,n){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;var o=0,a=0.0,s=0.0,l=0.0,f=0.0,c=0.0,d=0,_=0.0,h=0.0;o=(i|0)>4?4:i;if((t|0)<=0){return}a=+u[3280+(o*12|0)>>2];i=n+4|0;s=+u[3284+(o*12|0)>>2];l=-0.0-+u[3348+(o*12|0)>>2];f=+u[3288+(o*12|0)>>2];c=-0.0-+u[3352+(o*12|0)>>2];o=0;do{d=e+(o<<2)|0;_=+u[d>>2];h=a*_+ +u[n>>2];u[n>>2]=+u[i>>2]+_*s+h*l;u[i>>2]=f*+u[d>>2]+h*c;u[r+(o<<2)>>2]=h;o=o+1|0}while((o|0)<(t|0));return}function Hr(e,r,t,i){e=e|0;r=r|0;t=+t;i=i|0;var n=0;if((i|0)>0){n=0}else{return}do{u[r+(n<<2)>>2]=+u[e+(n<<2)>>2]*t;n=n+1|0}while((n|0)<(i|0));return}function Ur(e,r,t,i){e=e|0;r=r|0;t=+t;i=i|0;var n=0.0,o=0;n=1.0/t;if((i|0)>0){o=0}else{return}do{u[r+(o<<2)>>2]=n*+u[e+(o<<2)>>2];o=o+1|0}while((o|0)<(i|0));return}function zr(e,r){e=e|0;r=r|0;var t=0,i=0.0,n=0.0,o=0.0,a=0,s=0.0;if((r|0)>0){t=0;i=0.0;while(1){n=+u[e+(t<<2)>>2];o=i+n*n;a=t+1|0;if((a|0)<(r|0)){t=a;i=o}else{s=o;break}}}else{s=0.0}return+ +V(s/+(r|0)+.1)}function qr(e,r){e=e|0;r=r|0;var t=0,i=0.0,n=0.0,o=0.0,a=0,s=0.0;if((r|0)>0){t=0;i=0.0;while(1){n=+u[e+(t<<2)>>2];o=i+n*n;a=t+1|0;if((a|0)<(r|0)){t=a;i=o}else{s=o;break}}}else{s=0.0}return+ +V(s/+(r|0)+.1)}function Vr(e,r,t,i,n,o,a,s){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;var l=0,f=0.0,c=0.0,d=0.0,_=0;if((n|0)<=0){return}s=o-1|0;if((s|0)>0){l=0}else{o=0;do{f=+u[e+(o<<2)>>2];c=f+ +u[a>>2];u[a+(s<<2)>>2]=f*+u[r+(s<<2)>>2]+ +u[t+(s<<2)>>2]*(-0.0-c);u[i+(o<<2)>>2]=c;o=o+1|0}while((o|0)<(n|0));return}do{c=+u[e+(l<<2)>>2];f=c+ +u[a>>2];d=-0.0-f;o=0;while(1){_=o+1|0;u[a+(o<<2)>>2]=+u[a+(_<<2)>>2]+c*+u[r+(o<<2)>>2]+ +u[t+(o<<2)>>2]*d;if((_|0)<(s|0)){o=_}else{break}}u[a+(s<<2)>>2]=c*+u[r+(s<<2)>>2]+ +u[t+(s<<2)>>2]*d;u[i+(l<<2)>>2]=f;l=l+1|0}while((l|0)<(n|0));return}function Xr(e,r,t,i,n,o,a){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;var s=0,l=0.0,f=0.0,c=0;if((i|0)<=0){return}a=n-1|0;if((a|0)>0){s=0}else{n=0;do{l=+u[e+(n<<2)>>2]+ +u[o>>2];u[o+(a<<2)>>2]=+u[r+(a<<2)>>2]*(-0.0-l);u[t+(n<<2)>>2]=l;n=n+1|0}while((n|0)<(i|0));return}do{l=+u[e+(s<<2)>>2]+ +u[o>>2];f=-0.0-l;n=0;while(1){c=n+1|0;u[o+(n<<2)>>2]=+u[o+(c<<2)>>2]+ +u[r+(n<<2)>>2]*f;if((c|0)<(a|0)){n=c}else{break}}u[o+(a<<2)>>2]=+u[r+(a<<2)>>2]*f;u[t+(s<<2)>>2]=l;s=s+1|0}while((s|0)<(i|0));return}function jr(e,r,t,i,n,o,a){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;var s=0,l=0.0,f=0.0,c=0;if((i|0)<=0){return}a=n-1|0;if((a|0)>0){s=0}else{n=0;do{l=+u[e+(n<<2)>>2];f=l+ +u[o>>2];u[o+(a<<2)>>2]=l*+u[r+(a<<2)>>2];u[t+(n<<2)>>2]=f;n=n+1|0}while((n|0)<(i|0));return}do{f=+u[e+(s<<2)>>2];l=f+ +u[o>>2];n=0;while(1){c=n+1|0;u[o+(n<<2)>>2]=+u[o+(c<<2)>>2]+f*+u[r+(n<<2)>>2];if((c|0)<(a|0)){n=c}else{break}}u[o+(a<<2)>>2]=f*+u[r+(a<<2)>>2];u[t+(s<<2)>>2]=l;s=s+1|0}while((s|0)<(i|0));return}function Kr(e,r,t,i,n,o,a,s){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;var l=0,f=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0.0,S=0.0,v=0,k=0,g=0.0,y=0.0,M=0.0;s=c;l=c;c=c+(a*4|0)|0;c=c+7&-8;f=l;d=(a|0)>0;if(d){Zi(f|0,0,a<<2|0)}_=(o|0)>0;e:do{if(_){h=a-1|0;p=r+(h<<2)|0;m=l+(h<<2)|0;if((h|0)>0){E=0}else{w=0;while(1){b=+u[e+(w<<2)>>2]+ +u[l>>2];u[m>>2]=+u[p>>2]*(-0.0-b);u[n+(w<<2)>>2]=b;w=w+1|0;if((w|0)>=(o|0)){break e}}}do{b=+u[e+(E<<2)>>2]+ +u[l>>2];S=-0.0-b;w=0;while(1){v=w+1|0;u[l+(w<<2)>>2]=+u[l+(v<<2)>>2]+ +u[r+(w<<2)>>2]*S;if((v|0)<(h|0)){w=v}else{break}}u[m>>2]=+u[p>>2]*S;u[n+(E<<2)>>2]=b;E=E+1|0}while((E|0)<(o|0))}}while(0);if(d){Zi(f|0,0,a<<2|0)}if(!_){c=s;return}_=a-1|0;a=t+(_<<2)|0;f=i+(_<<2)|0;d=l+(_<<2)|0;if((_|0)>0){k=0}else{E=0;do{r=n+(E<<2)|0;g=+u[r>>2];y=g+ +u[l>>2];u[d>>2]=g*+u[a>>2]+ +u[f>>2]*(-0.0-y);u[r>>2]=y;E=E+1|0}while((E|0)<(o|0));c=s;return}do{E=n+(k<<2)|0;y=+u[E>>2];g=y+ +u[l>>2];M=-0.0-g;r=0;while(1){e=r+1|0;u[l+(r<<2)>>2]=+u[l+(e<<2)>>2]+y*+u[t+(r<<2)>>2]+ +u[i+(r<<2)>>2]*M;if((e|0)<(_|0)){r=e}else{break}}u[d>>2]=y*+u[a>>2]+ +u[f>>2]*M;u[E>>2]=g;k=k+1|0}while((k|0)<(o|0));c=s;return}function Yr(e,r,t,i,n,o,a,s){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;var l=0,f=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0.0,v=0.0,k=0.0,g=0,y=0,M=0.0,F=0.0;s=c;l=c;c=c+(a*4|0)|0;c=c+7&-8;f=l;d=(a|0)>0;if(d){Zi(f|0,0,a<<2|0)}_=(o|0)>0;e:do{if(_){h=a-1|0;p=r+(h<<2)|0;m=t+(h<<2)|0;E=l+(h<<2)|0;if((h|0)>0){w=0}else{b=0;while(1){S=+u[e+(b<<2)>>2];v=S+ +u[l>>2];u[E>>2]=S*+u[p>>2]+ +u[m>>2]*(-0.0-v);u[n+(b<<2)>>2]=v;b=b+1|0;if((b|0)>=(o|0)){break e}}}do{v=+u[e+(w<<2)>>2];S=v+ +u[l>>2];k=-0.0-S;b=0;while(1){g=b+1|0;u[l+(b<<2)>>2]=+u[l+(g<<2)>>2]+v*+u[r+(b<<2)>>2]+ +u[t+(b<<2)>>2]*k;if((g|0)<(h|0)){b=g}else{break}}u[E>>2]=v*+u[p>>2]+ +u[m>>2]*k;u[n+(w<<2)>>2]=S;w=w+1|0}while((w|0)<(o|0))}}while(0);if(d){Zi(f|0,0,a<<2|0)}if(!_){c=s;return}_=a-1|0;a=i+(_<<2)|0;f=l+(_<<2)|0;if((_|0)>0){y=0}else{d=0;do{w=n+(d<<2)|0;M=+u[w>>2];F=M+ +u[l>>2];u[f>>2]=M*+u[a>>2];u[w>>2]=F;d=d+1|0}while((d|0)<(o|0));c=s;return}do{d=n+(y<<2)|0;F=+u[d>>2];M=+u[l>>2];w=0;while(1){t=w+1|0;u[l+(w<<2)>>2]=+u[l+(t<<2)>>2]+F*+u[i+(w<<2)>>2];if((t|0)<(_|0)){w=t}else{break}}u[f>>2]=F*+u[a>>2];u[d>>2]=F+M;y=y+1|0}while((y|0)<(o|0));c=s;return}function Gr(e,r,t,i,n,o,a){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;var s=0,l=0,f=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0.0,b=0.0,S=0.0;a=c;s=c;c=c+(o*4|0)|0;c=c+7&-8;l=s;f=c;c=c+(o*4|0)|0;c=c+7&-8;d=f;u[i>>2]=1.0;_=(o|0)>0;if(_){h=0;while(1){p=h+1|0;u[i+(p<<2)>>2]=+u[r+(h<<2)>>2];if((p|0)<(o|0)){h=p}else{break}}m=o+1|0}else{m=1}if((m|0)<(n|0)){h=m;do{u[i+(h<<2)>>2]=1.0000000036274937e-15;h=h+1|0}while((h|0)<(n|0))}if(_){_=o<<2;Zi(d|0,0,_|0);Zi(l|0,0,_|0)}if((n|0)<=0){c=a;return}_=o-1|0;if((_|0)>0){E=0}else{o=0;do{l=i+(o<<2)|0;w=+u[l>>2]+ +u[s>>2];b=w+ +u[f>>2];u[l>>2]=b;u[s+(_<<2)>>2]=+u[t+(_<<2)>>2]*(-0.0-w);u[f+(_<<2)>>2]=+u[e+(_<<2)>>2]*(-0.0-b);o=o+1|0}while((o|0)<(n|0));c=a;return}do{o=i+(E<<2)|0;b=+u[o>>2]+ +u[s>>2];w=-0.0-b;S=b+ +u[f>>2];u[o>>2]=S;b=-0.0-S;o=0;while(1){l=o+1|0;u[s+(o<<2)>>2]=+u[s+(l<<2)>>2]+ +u[t+(o<<2)>>2]*w;u[f+(o<<2)>>2]=+u[f+(l<<2)>>2]+ +u[e+(o<<2)>>2]*b;if((l|0)<(_|0)){o=l}else{break}}u[s+(_<<2)>>2]=+u[t+(_<<2)>>2]*w;u[f+(_<<2)>>2]=+u[e+(_<<2)>>2]*b;E=E+1|0}while((E|0)<(n|0));c=a;return}function Wr(e,r,t,i,n,o,a,s){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;var l=0,f=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0.0,b=0.0,S=0.0,v=0.0,k=0.0,g=0.0,y=0.0,M=0.0,F=0.0,A=0.0,O=0.0,R=0.0;s=c;l=e;f=c;c=c+(o*4|0)|0;c=c+7&-8;d=n-1|0;_=c;c=c+((d+o|0)*4|0)|0;c=c+7&-8;h=o-1|0;p=o>>1;if((o|0)>0){m=0;do{u[f+(h-m<<2)>>2]=+u[r+(m<<2)>>2];m=m+1|0}while((m|0)<(o|0))}m=(h|0)>0;if(m){r=o-2|0;o=0;do{u[_+(o<<2)>>2]=+u[a+(r-o<<2)>>2];o=o+1|0}while((o|0)<(h|0))}o=(n|0)>0;if(o){r=_+(h<<2)|0;E=n<<2;Gi(r|0,l|0,E)|0}if(m){m=0;do{u[a+(m<<2)>>2]=+u[e+(d-m<<2)>>2];m=m+1|0}while((m|0)<(h|0))}if(!o){c=s;return}o=(p|0)>0;m=0;d=0;while(1){if(o){e=d+h|0;a=0;w=0.0;b=0.0;while(1){S=+u[f+(a<<2)>>2];v=+u[_+(a+d<<2)>>2];k=+u[_+(e-a<<2)>>2];E=a|1;g=+u[f+(E<<2)>>2];y=+u[_+(E+d<<2)>>2];M=+u[_+(e-E<<2)>>2];F=w+S*(v+k)+g*(y+M);A=b-S*(v-k)+g*(y-M);E=a+2|0;if((E|0)<(p|0)){a=E;w=F;b=A}else{O=F;R=A;break}}}else{O=0.0;R=0.0}u[t+(m<<2)>>2]=O;u[i+(m<<2)>>2]=R;a=d+2|0;if((a|0)<(n|0)){m=m+1|0;d=a}else{break}}c=s;return}function Qr(e,r,t,i,n,o,a,s,l){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;l=l|0;var f=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0.0,S=0.0,v=0.0,k=0.0,g=0.0,y=0.0,M=0,F=0.0,A=0.0,O=0,R=0.0,T=0.0,N=0.0,P=0.0,x=0.0,C=0.0,D=0.0,I=0.0,L=0.0,B=0.0,H=0.0,U=0.0,z=0.0,q=0.0,V=0,X=0;l=c;f=o>>1;o=n>>1;n=f+o|0;d=c;c=c+(n*4|0)|0;c=c+7&-8;_=c;c=c+(n*4|0)|0;c=c+7&-8;n=(o|0)>0;if(n){h=o-1|0;p=0;do{u[d+(p<<2)>>2]=+u[e+(h-p<<2)>>2];p=p+1|0}while((p|0)<(o|0))}p=(f|0)>0;if(p){h=0;do{u[d+(h+o<<2)>>2]=+u[a+((h<<1|1)<<2)>>2];h=h+1|0}while((h|0)<(f|0))}if(n){h=o-1|0;e=0;do{u[_+(e<<2)>>2]=+u[r+(h-e<<2)>>2];e=e+1|0}while((e|0)<(o|0))}if(p){e=0;do{u[_+(e+o<<2)>>2]=+u[s+((e<<1|1)<<2)>>2];e=e+1|0}while((e|0)<(f|0))}if(n){n=o-2|0;e=o-1|0;h=0;r=0;while(1){m=n+r|0;if(p){E=e+r|0;w=r+o|0;b=0.0;S=0.0;v=+u[d+(m<<2)>>2];k=+u[_+(m<<2)>>2];g=0.0;y=0.0;m=0;while(1){M=m<<1;F=+u[t+(M<<2)>>2];A=+u[t+((M|1)<<2)>>2];O=E+m|0;R=+u[d+(O<<2)>>2];T=+u[_+(O<<2)>>2];N=R-T;P=R+T;T=+u[t+((M|2)<<2)>>2];R=+u[t+((M|3)<<2)>>2];M=w+m|0;x=+u[d+(M<<2)>>2];C=+u[_+(M<<2)>>2];D=y+F*N+T*(x-C);I=g+A*P+R*(x+C);L=b+(v-k)*F+T*N;B=S+(v+k)*A+P*R;M=m+2|0;if((M|0)<(f|0)){b=L;S=B;v=x;k=C;g=I;y=D;m=M}else{break}}H=L*2.0;U=B*2.0;z=I*2.0;q=D*2.0}else{H=0.0;U=0.0;z=0.0;q=0.0}m=h<<1;u[i+(m<<2)>>2]=q;u[i+((m|1)<<2)>>2]=z;u[i+((m|2)<<2)>>2]=H;u[i+((m|3)<<2)>>2]=U;m=h+2|0;w=-2-h|0;if((m|0)<(o|0)){h=m;r=w}else{break}}}if(p){V=0}else{c=l;return}do{u[a+((V<<1|1)<<2)>>2]=+u[d+(V<<2)>>2];V=V+1|0}while((V|0)<(f|0));if(p){X=0}else{c=l;return}do{u[s+((X<<1|1)<<2)>>2]=+u[_+(X<<2)>>2];X=X+1|0}while((X|0)<(f|0));c=l;return}function Zr(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0,o=0,a=0,s=0,l=0,f=0,d=0,_=0,h=0,p=0.0,m=0.0,E=0.0,w=0,b=0.0,S=0,v=0.0,k=0,g=0,y=0,M=0,F=0,A=0,O=0.0;n=c;c=c+112|0;o=n|0;a=-3-t|0;s=o|0;u[s>>2]=+ot(e,e+(a<<2)|0,i);u[o+4>>2]=+ot(e,e+(a+1<<2)|0,i);u[o+8>>2]=+ot(e,e+(a+2<<2)|0,i);u[o+12>>2]=+ot(e,e+(a+3<<2)|0,i);u[o+16>>2]=+ot(e,e+(a+4<<2)|0,i);u[o+20>>2]=+ot(e,e+(a+5<<2)|0,i);u[o+24>>2]=+ot(e,e+(a+6<<2)|0,i);l=0;while(1){f=3-l|0;d=(f|0)<0?0:f;f=10-l|0;_=(f|0)>7?7:f;if((d|0)<(_|0)){f=l-3|0;h=d;p=0.0;while(1){m=p+ +u[1352+(h<<2)>>2]*+u[o+(f+h<<2)>>2];d=h+1|0;if((d|0)<(_|0)){h=d;p=m}else{E=m;break}}}else{E=0.0}u[o+28+(l<<2)>>2]=E;h=l+1|0;if((h|0)<7){l=h}else{w=0;break}}while(1){l=3-w|0;h=(l|0)<0?0:l;l=10-w|0;_=(l|0)>7?7:l;if((h|0)<(_|0)){l=w-3|0;f=h;E=0.0;while(1){p=E+ +u[1380+(f<<2)>>2]*+u[o+(l+f<<2)>>2];h=f+1|0;if((h|0)<(_|0)){f=h;E=p}else{b=p;break}}}else{b=0.0}u[o+56+(w<<2)>>2]=b;f=w+1|0;if((f|0)<7){w=f}else{S=0;break}}do{w=3-S|0;f=(w|0)<0?0:w;w=10-S|0;_=(w|0)>7?7:w;if((f|0)<(_|0)){w=S-3|0;l=f;b=0.0;while(1){E=b+ +u[1408+(l<<2)>>2]*+u[o+(w+l<<2)>>2];f=l+1|0;if((f|0)<(_|0)){l=f;b=E}else{v=E;break}}}else{v=0.0}u[o+84+(S<<2)>>2]=v;S=S+1|0}while((S|0)<7);v=+u[s>>2];s=0;b=v;S=0;l=0;E=v;while(1){_=E>b;v=_?E:b;p=+u[o+(s*28|0)+4>>2];w=p>v;m=w?p:v;v=+u[o+(s*28|0)+8>>2];f=v>m;p=f?v:m;m=+u[o+(s*28|0)+12>>2];h=m>p;v=h?m:p;p=+u[o+(s*28|0)+16>>2];d=p>v;m=d?p:v;v=+u[o+(s*28|0)+20>>2];k=v>m;p=k?v:m;m=+u[o+(s*28|0)+24>>2];g=m>p;y=g?s:k?s:d?s:h?s:f?s:w?s:_?s:S;M=g?6:k?5:d?4:h?3:f?2:w?1:_?0:l;_=s+1|0;if((_|0)>=4){break}s=_;b=g?m:p;S=y;l=M;E=+u[o+(_*28|0)>>2]}if((i|0)<=0){F=t+3|0;A=F-M|0;c=n;return A|0}o=(y|0)>0;l=a+M|0;a=-6-t+M|0;S=y-1|0;y=0;do{if(o){s=a+y|0;O=+u[e+(s<<2)>>2]*+u[1352+(S*28|0)>>2]+0.0+ +u[e+(s+1<<2)>>2]*+u[1356+(S*28|0)>>2]+ +u[e+(s+2<<2)>>2]*+u[1360+(S*28|0)>>2]+ +u[e+(s+3<<2)>>2]*+u[1364+(S*28|0)>>2]+ +u[e+(s+4<<2)>>2]*+u[1368+(S*28|0)>>2]+ +u[e+(s+5<<2)>>2]*+u[1372+(S*28|0)>>2]+ +u[e+(s+6<<2)>>2]*+u[1376+(S*28|0)>>2]}else{O=+u[e+(l+y<<2)>>2]}u[r+(y<<2)>>2]=O;y=y+1|0}while((y|0)<(i|0));F=t+3|0;A=F-M|0;c=n;return A|0}function Jr(e,r,t,i,n,o,a,s,l){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=+s;l=l|0;var f=0,d=0.0,_=0.0,h=0.0,p=0.0,m=0.0,E=0.0,w=0.0,b=0.0,S=0.0,v=0.0,k=0.0,g=0.0,y=0,M=0.0,F=0.0,A=0.0,O=0;l=c;i=c;c=c+((n<<1)*4|0)|0;c=c+7&-8;Zr(e,i,o,80)|0;t=(o|0)>(a|0);a=i+(n<<2)|0;if(t){f=o<<1;Zr(e,a,f,80)|0}else{f=-o|0;Zr(e,a,f,80)|0}d=+V(+ot(i,i,n)+1.0e3);_=+V(+ot(a,a,n)+1.0e3);h=+V(+ot(e,e,n)+1.0);p=+ot(i,e,n);m=p<0.0?0.0:p;p=+ot(a,e,n);E=p<0.0?0.0:p;if(m>d*h){w=1.0}else{w=m/h/d}if(E>_*h){b=1.0}else{b=E/h/_}E=h/_;if(s>0.0){_=s*.4+.07;S=(_+-.07)*1.72+.5;v=_}else{S=0.0;v=0.0}_=1.0-w*w*S;w=1.0-b*b*S;S=v/(w<v?v:w);w=h/d*(v/(_<v?v:_));if(t){k=E*S*.3;g=w*.7}else{k=E*S*.6;g=w*.6}w=k;k=g;t=(n|0)>0;do{if(t){a=0;do{u[r+(a<<2)>>2]=+u[e+(a<<2)>>2]+(k*+u[i+(a<<2)>>2]+w*+u[i+(a+n<<2)>>2]);a=a+1|0}while((a|0)<(n|0));if(t){y=0;M=0.0}else{F=0.0;break}while(1){g=+u[r+(y<<2)>>2];S=M+g*g;a=y+1|0;if((a|0)<(n|0)){y=a;M=S}else{F=S;break}}}else{F=0.0}}while(0);M=+(n|0);w=+V(F/M+.1);if(t){y=0;F=0.0;while(1){k=+u[e+(y<<2)>>2];S=F+k*k;i=y+1|0;if((i|0)<(n|0)){y=i;F=S}else{A=S;break}}}else{A=0.0}F=+V(A/M+.1);M=F<1.0?1.0:F;F=w<1.0?1.0:w;w=(M>F?F:M)/F;if(t){O=0}else{c=l;return}do{t=r+(O<<2)|0;u[t>>2]=w*+u[t>>2];O=O+1|0}while((O|0)<(n|0));c=l;return}function $r(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0.0,o=0,a=0.0,s=0,l=0.0,f=0.0,c=0.0,d=0,_=0.0,h=0,p=0,m=0,E=0;i=e;n=+u[r>>2];o=(t|0)>0;if(n==0.0){if(!o){a=0.0;return+a}Zi(i|0,0,t<<2|0);a=0.0;return+a}if(o){s=0;l=n}else{a=n;return+a}while(1){o=s+1|0;n=-0.0-+u[r+(o<<2)>>2];if((s|0)>0){i=0;f=n;while(1){c=f-+u[e+(i<<2)>>2]*+u[r+(s-i<<2)>>2];d=i+1|0;if((d|0)<(s|0)){i=d;f=c}else{_=c;break}}}else{_=n}f=_/(l+ +u[r>>2]*.003);u[e+(s<<2)>>2]=f;i=s>>1;if((i|0)>0){d=s-1|0;h=0;while(1){p=e+(h<<2)|0;c=+u[p>>2];m=e+(d-h<<2)|0;u[p>>2]=c+f*+u[m>>2];u[m>>2]=f*c+ +u[m>>2];m=h+1|0;if((m|0)<(i|0)){h=m}else{E=i;break}}}else{E=0}if((s&1|0)!=0){i=e+(E<<2)|0;n=+u[i>>2];u[i>>2]=n+f*n}n=l-f*l*f;if((o|0)<(t|0)){s=o;l=n}else{a=n;break}}return+a}function et(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0.0,o=0.0,a=0,s=0.0,l=0.0,f=0,c=0.0;if((t|0)==0){n=+u[r>>2];o=n+10.0;u[r>>2]=o;return}else{a=t}do{a=a-1|0;if((a|0)<(i|0)){s=0.0;t=a;while(1){l=s+ +u[e+(t<<2)>>2]*+u[e+(t-a<<2)>>2];f=t+1|0;if((f|0)<(i|0)){s=l;t=f}else{c=l;break}}}else{c=0.0}u[r+(a<<2)>>2]=c}while((a|0)!=0);n=+u[r>>2];o=n+10.0;u[r>>2]=o;return}function rt(e,r,t,i,n,o){e=e|0;r=r|0;t=t|0;i=i|0;n=+n;o=o|0;var a=0,s=0,l=0,f=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0.0,S=0.0,v=0,k=0,g=0,y=0,M=0,F=0,A=0.0,O=0.0,R=0.0,T=0.0,N=0.0,P=0.0,x=0.0,C=0.0,D=0.0,I=0.0,L=0.0,B=0.0,H=0.0,U=0.0,z=0.0,V=0.0,X=0.0,j=0.0,K=0.0,Y=0.0,W=0.0,Q=0.0,Z=0.0,J=0.0,$=0.0,ee=0.0,re=0.0,te=0.0,ie=0.0,ne=0,oe=0.0,ae=0.0,se=0.0,le=0.0,ue=0.0,fe=0.0,ce=0.0,de=0.0,_e=0.0;o=c;a=(r|0)/2|0;s=a+1|0;l=c;c=c+(s*4|0)|0;c=c+7&-8;f=l;d=c;c=c+(s*4|0)|0;c=c+7&-8;_=d;u[d>>2]=1.0;u[l>>2]=1.0;h=(r|0)>1;e:do{if(h){p=r-1|0;m=0;E=l;w=d;b=1.0;S=1.0;do{E=E+4|0;w=w+4|0;v=e+(m<<2)|0;k=e+(p-m<<2)|0;b=+u[v>>2]+ +u[k>>2]-b;u[w>>2]=b;S=+u[v>>2]-+u[k>>2]+S;u[E>>2]=S;m=m+1|0}while((m|0)<(a|0));if(h){g=1;y=d;M=l}else{break}while(1){u[y>>2]=+u[y>>2]*2.0;u[M>>2]=+u[M>>2]*2.0;if((g|0)>=(a|0)){break e}g=g+1|0;y=y+4|0;M=M+4|0}}}while(0);M=c;c=c+(s*4|0)|0;c=c+7&-8;y=c;c=c+(s*4|0)|0;c=c+7&-8;if((s|0)>0){s=y;g=M;l=(a<<2)+4|0;Gi(g|0,_|0,l)|0;Gi(s|0,f|0,l)|0}if((r|0)<=0){F=0;c=o;return F|0}S=n;l=(i|0)<0;f=0;n=0.0;s=0;b=0.0;A=1.0;while(1){_=(f&1|0)==0?M:y;O=A*2.0;if(h){g=a;R=0.0;T=0.0;while(1){N=O*R-T+ +u[_+(a-g<<2)>>2];d=g-1|0;if((d|0)>0){g=d;T=R;R=N}else{break}}P=N;x=R}else{P=0.0;x=0.0}T=+u[_+(a<<2)>>2];C=T;g=t+(f<<2)|0;D=A;I=b;d=s;e=0;L=n;B=O*.5*P+(-0.0-x)+C;e:while(1){if(e){H=I;U=D;break}else{z=D;V=I;X=B}while(1){if(V<-1.0){H=V;U=z;break e}j=z;K=S*(1.0-j*j*.9);if(+q(+X)<.2){Y=K*.5}else{Y=K}W=z-Y;K=W*2.0;if(h){m=a;j=0.0;Q=0.0;while(1){Z=K*j-Q+ +u[_+(a-m<<2)>>2];E=m-1|0;if((E|0)>0){m=E;Q=j;j=Z}else{break}}J=Z;$=j}else{J=0.0;$=0.0}Q=K*.5*J+(-0.0-$)+C;if(X*Q<0.0){break}else{z=W;V=W;X=Q}}m=d+1|0;r:do{if(l){ee=X;re=L;te=W}else{Q=T;if(h){ie=X;ne=0;oe=W;ae=z}else{se=X;E=0;le=W;ue=z;while(1){fe=(le+ue)*.5;ce=fe*2.0*.5*0.0+Q;w=se*ce<0.0;de=w?se:ce;ce=w?fe:le;p=E+1|0;if((p|0)>(i|0)){ee=de;re=fe;te=ce;break r}else{se=de;E=p;le=ce;ue=w?ue:fe}}}while(1){ue=(oe+ae)*.5;le=ue*2.0;E=a;se=0.0;K=0.0;while(1){_e=le*se-K+ +u[_+(a-E<<2)>>2];w=E-1|0;if((w|0)>0){E=w;K=se;se=_e}else{break}}K=le*.5*_e+(-0.0-se)+Q;E=ie*K<0.0;j=E?ie:K;K=E?ue:oe;w=ne+1|0;if((w|0)>(i|0)){ee=j;re=ue;te=K;break}else{ie=j;ne=w;oe=K;ae=E?ae:ue}}}}while(0);u[g>>2]=+G(re);D=re;I=te;d=m;e=1;L=re;B=ee}e=f+1|0;if((e|0)<(r|0)){f=e;n=L;s=d;b=H;A=U}else{F=d;break}}c=o;return F|0}function tt(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0,o=0,a=0,s=0,l=0.0,f=0.0,d=0.0,_=0.0,h=0,p=0,m=0,E=0,w=0,b=0,S=0,v=0.0,k=0.0,g=0.0;i=c;n=t>>1;o=n<<2;a=c;c=c+((o|2)*4|0)|0;c=c+7&-8;if((o|0)>=0){o=n<<2|2;Zi(a|0,0,((o|0)>1?o<<2:4)|0)}o=c;c=c+(t*4|0)|0;c=c+7&-8;if((t|0)>0){s=0;do{l=+u[e+(s<<2)>>2];f=l;if(f<1.5707963268){d=l*l;_=d*(d*(d*-.0012712094467133284+.04148774594068527)+-.49991244077682495)+.9999933242797852}else{d=3.141592653589793-f;f=d*d;_=-0.0-(f*(f*(f*-.0012712094467133284+.04148774594068527)+-.49991244077682495)+.9999933242797852)}u[o+(s<<2)>>2]=_;s=s+1|0}while((s|0)<(t|0))}if((t|0)<0){c=i;return}if((n|0)<=0){_=1.0;s=0;while(1){if((s|0)>0){f=+te(8);u[r+(s-1<<2)>>2]=(_-f+(_+ +te(4)))*.5}u[1]=_;u[2]=_;e=s+1|0;if((e|0)>(t|0)){break}else{_=0.0;s=e}}c=i;return}s=n<<2;_=1.0;e=0;while(1){f=_;d=_;h=0;p=0;while(1){m=h<<2;E=a+(m<<2)|0;w=m|1;b=a+(w<<2)|0;S=a+(w+1<<2)|0;w=a+((m|3)<<2)|0;l=+u[E>>2];v=+u[b>>2]+(d-+u[o+(p<<2)>>2]*2.0*l);k=+u[S>>2];g=+u[w>>2]+(f-+u[o+((p|1)<<2)>>2]*2.0*k);u[b>>2]=l;u[w>>2]=k;u[E>>2]=d;u[S>>2]=f;S=h+1|0;if((S|0)>=(n|0)){break}f=g;d=v;h=S;p=p+2|0}p=a+(s<<2)|0;h=a+((s|1)<<2)|0;if((e|0)>0){u[r+(e-1<<2)>>2]=(g-+u[h>>2]+(v+ +u[p>>2]))*.5}u[p>>2]=v;u[h>>2]=g;h=e+1|0;if((h|0)>(t|0)){break}else{_=0.0;e=h}}c=i;return}function it(e,r,t){e=e|0;r=r|0;t=+t;var i=0,n=0.0,o=0.0,a=0,s=0.0,l=0.0,f=0,c=0.0,d=0.0;if(+u[e>>2]<t){u[e>>2]=t}i=r-1|0;r=e+(i<<2)|0;n=3.141592653589793-t;if(+u[r>>2]>n){u[r>>2]=n}if((i|0)<=1){return}r=1;n=+u[e+4>>2];o=+u[e>>2];while(1){a=e+(r<<2)|0;s=o+t;if(n<s){u[a>>2]=s;l=s}else{l=n}f=r+1|0;s=+u[e+(f<<2)>>2];if(l>s-t){c=(l+s-t)*.5;u[a>>2]=c;d=c}else{d=l}if((f|0)<(i|0)){r=f;n=s;o=d}else{break}}return}function nt(e,r,t,i,n,o){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;var a=0.0,s=0.0;a=(+(n|0)+1.0)/+(o|0);if((i|0)<=0){return}s=1.0-a;o=0;do{u[t+(o<<2)>>2]=s*+u[e+(o<<2)>>2]+a*+u[r+(o<<2)>>2];o=o+1|0}while((o|0)<(i|0));return}function ot(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0.0,o=0,a=0,s=0.0,l=0,f=0.0;i=t>>2;if((i|0)==0){n=0.0;return+n}else{o=r;a=i;s=0.0;l=e}while(1){e=a-1|0;f=s+(+u[l>>2]*+u[o>>2]+0.0+ +u[l+4>>2]*+u[o+4>>2]+ +u[l+8>>2]*+u[o+8>>2]+ +u[l+12>>2]*+u[o+12>>2]);if((e|0)==0){n=f;break}else{o=o+16|0;a=e;s=f;l=l+16|0}}return+n}function at(e,r,t,i,n,o){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;var a=0,s=0,l=0,f=0.0,c=0,d=0,_=0.0;if((n|0)<=0){return}o=i>>2;i=n-1|0;if((o|0)==0){a=0;do{u[t+(i-a<<2)>>2]=0.0;a=a+1|0}while((a|0)<(n|0));return}else{s=0}do{a=r+(s<<2)|0;l=o;f=0.0;c=e;while(1){d=l-1|0;_=f+(+u[c>>2]*+u[a>>2]+0.0+ +u[c+4>>2]*+u[a+4>>2]+ +u[c+8>>2]*+u[a+8>>2]+ +u[c+12>>2]*+u[a+12>>2]);if((d|0)==0){break}else{a=a+16|0;l=d;f=_;c=c+16|0}}u[t+(i-s<<2)>>2]=_;s=s+1|0}while((s|0)<(n|0));return}function st(e,r,t,i,n,a,s,l){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;a=a|0;s=s|0;l=l|0;var f=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0.0,v=0,k=0.0,g=0,y=0,M=0.0,F=0.0,A=0.0,O=0.0,R=0.0,T=0,N=0.0,P=0,x=0,C=0;l=c;f=t-r|0;d=c;c=c+((f+2|0)*4|0)|0;c=c+7&-8;_=f+1|0;h=c;c=c+(_*4|0)|0;c=c+7&-8;p=c;c=c+(s*4|0)|0;c=c+7&-8;m=c;c=c+(s*4|0)|0;c=c+7&-8;E=(s|0)>0;if(E){Zi(m|0,0,s<<2|0);w=0;do{u[p+(w<<2)>>2]=-1.0;o[n+(w<<2)>>2]=r;w=w+1|0}while((w|0)<(s|0))}w=i>>2;b=(w|0)==0;if(b){u[d>>2]=0.0;S=0.0}else{v=w;k=0.0;g=e+(-r<<2)|0;while(1){y=v-1|0;M=+u[g>>2];F=+u[g+4>>2];A=+u[g+8>>2];O=+u[g+12>>2];R=k+(M*M+0.0+F*F+A*A+O*O);if((y|0)==0){break}else{v=y;k=R;g=g+16|0}}u[d>>2]=R;g=w;R=0.0;v=e;while(1){y=g-1|0;k=+u[v>>2];O=+u[v+4>>2];A=+u[v+8>>2];F=+u[v+12>>2];M=R+(k*k+0.0+O*O+A*A+F*F);if((y|0)==0){S=M;break}else{g=y;R=M;v=v+16|0}}}if((r|0)<(t|0)){v=i-1|0;i=r;do{g=i-r|0;R=+u[e+(~i<<2)>>2];M=+u[e+(v-i<<2)>>2];F=+u[d+(g<<2)>>2]+R*R-M*M;u[d+(g+1<<2)>>2]=F<0.0?0.0:F;i=i+1|0}while((i|0)<(t|0))}e:do{if((_|0)>0){if(b){i=0;while(1){u[h+(f-i<<2)>>2]=0.0;i=i+1|0;if((i|0)>=(_|0)){break e}}}else{T=0}do{i=e+(T-t<<2)|0;v=w;F=0.0;g=e;while(1){y=v-1|0;N=F+(+u[g>>2]*+u[i>>2]+0.0+ +u[g+4>>2]*+u[i+4>>2]+ +u[g+8>>2]*+u[i+8>>2]+ +u[g+12>>2]*+u[i+12>>2]);if((y|0)==0){break}else{i=i+16|0;v=y;F=N;g=g+16|0}}u[h+(f-T<<2)>>2]=N;T=T+1|0}while((T|0)<(_|0))}}while(0);if((r|0)<=(t|0)){_=s-1|0;T=m+(_<<2)|0;f=p+(_<<2)|0;e=n+(_<<2)|0;w=r;do{b=w-r|0;N=+u[h+(b<<2)>>2];F=N*N;N=+u[d+(b<<2)>>2]+1.0;e:do{if(F*+u[T>>2]>+u[f>>2]*N){u[f>>2]=F;u[T>>2]=N;o[e>>2]=w;b=0;while(1){if((b|0)>=(_|0)){break e}P=m+(b<<2)|0;x=p+(b<<2)|0;if(F*+u[P>>2]>+u[x>>2]*N){C=_;break}else{b=b+1|0}}while(1){g=C-1|0;u[p+(C<<2)>>2]=+u[p+(g<<2)>>2];u[m+(C<<2)>>2]=+u[m+(g<<2)>>2];o[n+(C<<2)>>2]=o[n+(g<<2)>>2];if((g|0)>(b|0)){C=g}else{break}}u[x>>2]=F;u[P>>2]=N;o[n+(b<<2)>>2]=w}}while(0);w=w+1|0}while((w|0)<=(t|0))}if((a|0)==0|E^1){c=l;return}N=+V(S);E=0;do{t=(o[n+(E<<2)>>2]|0)-r|0;S=+u[h+(t<<2)>>2]/(N*+V(+u[d+(t<<2)>>2])+10.0);u[a+(E<<2)>>2]=S<0.0?0.0:S;E=E+1|0}while((E|0)<(s|0));c=l;return}function lt(e,r,t,n,a,s,l,f,d,_,h,p,m,E,w,b,S,v,k,g){e=e|0;r=r|0;t=t|0;n=n|0;a=a|0;s=s|0;l=l|0;f=f|0;d=d|0;_=+_;h=h|0;p=p|0;m=m|0;E=E|0;w=w|0;b=b|0;S=S|0;v=v|0;k=k|0;g=g|0;var y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0,D=0,I=0,L=0,B=0,H=0,U=0,z=0.0,q=0,V=0.0,X=0,j=0,K=0,Y=0,G=0,W=0.0;y=c;c=c+8|0;M=y|0;F=l+4|0;A=o[F>>2]|0;O=1<<A;R=l;T=(o[R>>2]|0)+(v<<2<<A)|0;A=(S|0)>10?10:S;S=(A|0)<1?1:A;A=c;c=c+(S*4|0)|0;c=c+7&-8;if((d|0)<(f|0)){kr(m,0,o[l+8>>2]|0);kr(m,0,o[F>>2]|0);Zi(s|0,0,p<<2|0);N=f;c=y;return N|0}v=d-f+1|0;P=(S|0)>(v|0)?v:S;if((d|0)==(f|0)){o[A>>2]=d}else{st(r,f,d,p,A,0,P,0)}d=c;c=c+(p*4|0)|0;c=c+7&-8;r=c;c=c+(p*4|0)|0;c=c+7&-8;S=c;c=c+(p*4|0)|0;c=c+7&-8;if((P|0)>0){v=s;x=p<<2;C=d;D=S;I=r;L=0;_=-1.0;B=0;H=0;while(1){U=o[A+(H<<2)>>2]|0;Zi(v|0,0,x|0);z=+ut(e,t,n,a,s,T,O,U,h,p,E,w,b,r,M,k,+u[g>>2]);if(z<_|_<0.0){Gi(C|0,v|0,x)|0;Gi(D|0,I|0,x)|0;q=o[M>>2]|0;V=z;X=U}else{q=B;V=_;X=L}j=H+1|0;if((j|0)<(P|0)){L=X;_=V;B=q;H=j}else{K=X;Y=q;G=U;break}}}else{K=0;Y=0;G=0}kr(m,K-f|0,o[l+8>>2]|0);kr(m,Y,o[F>>2]|0);V=+u[g>>2];if(V<1024.0){W=32.0}else{W=V*.03125}u[g>>2]=W*+(i[(o[R>>2]|0)+(Y<<2|3)|0]|0);Y=s;s=d;d=p<<2;Gi(Y|0,s|0,d)|0;s=e;e=S;Gi(s|0,e|0,d)|0;N=G;c=y;return N|0}function ut(e,r,t,n,a,s,l,f,d,_,h,p,m,E,w,b,S){e=e|0;r=r|0;t=t|0;n=n|0;a=a|0;s=s|0;l=l|0;f=f|0;d=d|0;_=_|0;h=h|0;p=p|0;m=m|0;E=E|0;w=w|0;b=b|0;S=+S;var v=0,k=0,g=0,y=0,M=0,F=0.0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0,D=0,I=0,L=0,B=0,H=0,U=0,z=0.0,q=0.0,V=0.0,X=0.0,j=0.0,K=0,Y=0,G=0.0,W=0,Q=0.0,Z=0,J=0,$=0.0,ee=0,re=0.0,te=0.0,ie=0.0,ne=0.0,oe=0.0,ae=0,se=0.0,le=0,ue=0.0,fe=0,ce=0.0,de=0;v=c;c=c+56|0;k=v|0;g=v+16|0;y=c;c=c+((_*3|0)*4|0)|0;c=c+7&-8;M=c;c=c+(_*4|0)|0;c=c+7&-8;F=S>262144.0?31.0:128.0;o[k>>2]=y;A=y+(_<<2)|0;o[k+4>>2]=A;O=_<<1;R=y+(O<<2)|0;o[k+8>>2]=R;T=(_|0)>0;do{if(T){N=0;do{u[E+(N<<2)>>2]=+u[e+(N<<2)>>2];N=N+1|0}while((N|0)<(_|0));N=qe()|0;P=c;c=c+(d*4|0)|0;c=c+7&-8;x=P;if(!T){C=N;D=P;I=x;break}L=1-f|0;B=0;while(1){H=L+B|0;do{if((H|0)<0){u[M+(B<<2)>>2]=+u[p+(H<<2)>>2]}else{U=H-f|0;if((U|0)<0){u[M+(B<<2)>>2]=+u[p+(U<<2)>>2];break}else{u[M+(B<<2)>>2]=0.0;break}}}while(0);H=B+1|0;if((H|0)<(_|0)){B=H}else{C=N;D=P;I=x;break}}}else{x=qe()|0;P=c;c=c+(d*4|0)|0;c=c+7&-8;C=x;D=P;I=P}}while(0);if((d|0)>0){Zi(I|0,0,d<<2|0);Xr(M,r,M,_,d,D,h);Zi(I|0,0,d<<2|0)}else{Xr(M,r,M,_,d,D,h)}Vr(M,t,n,M,_,d,D,h);if(T){h=0;do{u[y+(O+h<<2)>>2]=+u[M+(h<<2)>>2];h=h+1|0}while((h|0)<(_|0))}Be(C|0);C=~f;h=_-1|0;S=+u[p+(-f<<2)>>2];z=+u[m>>2];u[A>>2]=S*z;if((h|0)>0){M=0;while(1){D=M+1|0;u[y+(D+_<<2)>>2]=+u[y+(O+M<<2)>>2]+S*+u[m+(D<<2)>>2];if((D|0)<(h|0)){M=D}else{break}}S=+u[p+(C<<2)>>2];u[y>>2]=S*z;M=0;while(1){D=M+1|0;u[y+(D<<2)>>2]=+u[y+(M+_<<2)>>2]+S*+u[m+(D<<2)>>2];if((D|0)<(h|0)){M=D}else{break}}}else{u[y>>2]=+u[p+(C<<2)>>2]*z}C=_>>2;M=(C|0)==0;if(M){q=0.0;V=0.0;X=0.0}else{h=E;m=C;z=0.0;D=y;while(1){d=m-1|0;j=z+(+u[D>>2]*+u[h>>2]+0.0+ +u[D+4>>2]*+u[h+4>>2]+ +u[D+8>>2]*+u[h+8>>2]+ +u[D+12>>2]*+u[h+12>>2]);if((d|0)==0){K=E;Y=C;G=0.0;W=A;break}h=h+16|0;m=d;z=j;D=D+16|0}while(1){D=Y-1|0;Q=G+(+u[W>>2]*+u[K>>2]+0.0+ +u[W+4>>2]*+u[K+4>>2]+ +u[W+8>>2]*+u[K+8>>2]+ +u[W+12>>2]*+u[K+12>>2]);if((D|0)==0){Z=E;J=C;$=0.0;ee=R;break}else{K=K+16|0;Y=D;G=Q;W=W+16|0}}while(1){W=J-1|0;G=$+(+u[ee>>2]*+u[Z>>2]+0.0+ +u[ee+4>>2]*+u[Z+4>>2]+ +u[ee+8>>2]*+u[Z+8>>2]+ +u[ee+12>>2]*+u[Z+12>>2]);if((W|0)==0){q=G;V=Q;X=j;break}else{Z=Z+16|0;J=W;$=G;ee=ee+16|0}}}ee=0;do{J=k+(ee<<2)|0;if(M){Z=0;do{u[g+(Z*12|0)+(ee<<2)>>2]=0.0;u[g+(ee*12|0)+(Z<<2)>>2]=0.0;Z=Z+1|0}while((Z|0)<=(ee|0))}else{Z=0;do{W=o[k+(Z<<2)>>2]|0;Y=C;$=0.0;K=o[J>>2]|0;while(1){R=Y-1|0;re=$+(+u[K>>2]*+u[W>>2]+0.0+ +u[K+4>>2]*+u[W+4>>2]+ +u[K+8>>2]*+u[W+8>>2]+ +u[K+12>>2]*+u[W+12>>2]);if((R|0)==0){break}else{W=W+16|0;Y=R;$=re;K=K+16|0}}u[g+(Z*12|0)+(ee<<2)>>2]=re;u[g+(ee*12|0)+(Z<<2)>>2]=re;Z=Z+1|0}while((Z|0)<=(ee|0))}ee=ee+1|0}while((ee|0)<3);re=+u[g+20>>2];$=+u[g+4>>2];j=+u[g+8>>2];ee=(b|0)<2?2:b;Q=(((ee|0)>30?.6:+(ee|0)*.02)+1.0)*.5;G=Q*+u[g+32>>2];z=Q*+u[g+16>>2];S=Q*+u[g>>2];if((l|0)>0){Q=-999999986991104.0;g=0;ee=0;while(1){b=ee<<2;te=+(i[s+b|0]|0)+32.0;ie=+(i[s+(b|1)|0]|0)+32.0;ne=+(i[s+(b|2)|0]|0)+32.0;oe=q*te*64.0+0.0+V*ie*64.0+X*ne*64.0-re*te*ie-$*ie*ne-j*te*ne-G*te*te-z*ie*ie-S*ne*ne;do{if(oe>Q){if(+(i[s+(b|3)|0]|0)>F){ae=g;se=Q;break}ae=ee;se=oe}else{ae=g;se=Q}}while(0);b=ee+1|0;if((b|0)<(l|0)){Q=se;g=ae;ee=b}else{le=ae;break}}}else{le=0}ae=le<<2;se=+(i[s+ae|0]|0)*.015625+.5;Q=+(i[s+(ae|1)|0]|0)*.015625+.5;F=+(i[s+(ae|2)|0]|0)*.015625+.5;o[w>>2]=le;Zi(a|0,0,_<<2|0);le=f+1|0;w=(le|0)<(_|0)?le:_;if((w|0)>0){ae=0;do{s=a+(ae<<2)|0;u[s>>2]=+u[s>>2]+F*+u[p+(ae-le<<2)>>2];ae=ae+1|0}while((ae|0)<(w|0))}ae=le+f|0;le=(ae|0)<(_|0)?ae:_;if((w|0)<(le|0)){s=w;do{w=a+(s<<2)|0;u[w>>2]=+u[w>>2]+F*+u[p+(s-ae<<2)>>2];s=s+1|0}while((s|0)<(le|0))}le=(f|0)<(_|0)?f:_;if((le|0)>0){s=0;do{ae=a+(s<<2)|0;u[ae>>2]=+u[ae>>2]+Q*+u[p+(s-f<<2)>>2];s=s+1|0}while((s|0)<(le|0))}s=f<<1;ae=(s|0)<(_|0)?s:_;if((le|0)<(ae|0)){w=le;do{le=a+(w<<2)|0;u[le>>2]=+u[le>>2]+Q*+u[p+(w-s<<2)>>2];w=w+1|0}while((w|0)<(ae|0))}ae=f-1|0;w=(ae|0)<(_|0)?ae:_;if((w|0)>0){s=0;do{le=a+(s<<2)|0;u[le>>2]=+u[le>>2]+se*+u[p+(s-ae<<2)>>2];s=s+1|0}while((s|0)<(w|0))}s=ae+f|0;f=(s|0)<(_|0)?s:_;if((w|0)<(f|0)){ae=w;do{w=a+(ae<<2)|0;u[w>>2]=+u[w>>2]+se*+u[p+(ae-s<<2)>>2];ae=ae+1|0}while((ae|0)<(f|0))}if(T){T=0;do{f=E+(T<<2)|0;u[f>>2]=+u[f>>2]-(se*+u[y+(O+T<<2)>>2]+Q*+u[y+(T+_<<2)>>2]+F*+u[y+(T<<2)>>2]);T=T+1|0}while((T|0)<(_|0))}if(M){ue=0.0;c=v;return+ue}else{fe=C;ce=0.0;de=E}while(1){E=fe-1|0;F=+u[de>>2];Q=+u[de+4>>2];se=+u[de+8>>2];S=+u[de+12>>2];z=ce+(F*F+0.0+Q*Q+se*se+S*S);if((E|0)==0){ue=z;break}else{fe=E;ce=z;de=de+16|0}}c=v;return+ue}function ft(e,r,t,n,a,s,l,f,c,d,_,h,p,m,E){e=e|0;r=r|0;t=t|0;n=n|0;a=+a;s=s|0;l=l|0;f=f|0;c=c|0;d=d|0;_=_|0;h=h|0;p=p|0;m=+m;E=E|0;var w=0,b=0.0,S=0.0,v=0.0,k=0.0,g=0.0,y=0.0,M=0.0,F=0.0,A=0.0,O=0.0,R=0.0,T=0.0,N=0;_=s+4|0;n=o[s>>2]|0;w=re(4<<o[_>>2],E)|0;E=(yr(d,o[s+8>>2]|0)|0)+t|0;t=(yr(d,o[_>>2]|0)|0)<<2;a=+(i[n+(t+w)|0]|0)*.015625+.5;b=+(i[n+((t|1)+w)|0]|0)*.015625+.5;S=+(i[n+((t|2)+w)|0]|0)*.015625+.5;do{if((h|0)!=0&(E|0)>(p|0)){v=m;if((h|0)<4){k=v}else{k=v*.5}v=k;g=v>.95?.949999988079071:v;if(b<0.0){y=-0.0-b}else{y=b}v=a;if(a>0.0){M=v}else{M=v*-.5}v=S;if(S>0.0){F=v}else{F=v*-.5}v=y+M+F;if(v<=g){A=a;O=b;R=S;break}T=g/v;A=T*a;O=T*b;R=T*S}else{A=a;O=b;R=S}}while(0);o[f>>2]=E;u[c>>2]=A;u[c+4>>2]=O;u[c+8>>2]=R;Zi(r|0,0,l<<2|0);c=E+1|0;f=(c|0)<(l|0)?c:l;if((f|0)>0){h=0;do{p=r+(h<<2)|0;u[p>>2]=+u[p>>2]+R*+u[e+(h-c<<2)>>2];h=h+1|0}while((h|0)<(f|0))}h=c+E|0;c=(h|0)<(l|0)?h:l;if((f|0)<(c|0)){p=f;do{f=r+(p<<2)|0;u[f>>2]=+u[f>>2]+R*+u[e+(p-h<<2)>>2];p=p+1|0}while((p|0)<(c|0))}c=(E|0)<(l|0)?E:l;if((c|0)>0){p=0;do{h=r+(p<<2)|0;u[h>>2]=+u[h>>2]+O*+u[e+(p-E<<2)>>2];p=p+1|0}while((p|0)<(c|0))}p=E<<1;h=(p|0)<(l|0)?p:l;if((c|0)<(h|0)){f=c;do{c=r+(f<<2)|0;u[c>>2]=+u[c>>2]+O*+u[e+(f-p<<2)>>2];f=f+1|0}while((f|0)<(h|0))}h=E-1|0;f=(h|0)<(l|0)?h:l;if((f|0)>0){p=0;do{c=r+(p<<2)|0;u[c>>2]=+u[c>>2]+A*+u[e+(p-h<<2)>>2];p=p+1|0}while((p|0)<(f|0))}p=h+E|0;E=(p|0)<(l|0)?p:l;if((f|0)<(E|0)){N=f}else{return}do{f=r+(N<<2)|0;u[f>>2]=+u[f>>2]+A*+u[e+(N-p<<2)>>2];N=N+1|0}while((N|0)<(E|0));return}function ct(e,r,t,i,n,o,a,s,l,f,d,_,h,p,m,E,w,b,S,v){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;l=l|0;f=+f;d=d|0;_=_|0;h=h|0;p=p|0;m=m|0;E=E|0;w=w|0;b=b|0;S=S|0;v=v|0;var k=0.0,g=0;v=c;S=o;b=c;c=c+(_*4|0)|0;c=c+7&-8;w=b;k=f>.99?.9900000095367432:f;E=(_|0)>0;if(E&(s|0)>0){h=-_|0;l=-s|0;a=h>>>0>l>>>0?h:l;l=0;do{u[o+(l<<2)>>2]=k*+u[m+(l-s<<2)>>2];l=l+1|0}while((l|0)<(_|0)&(l|0)<(s|0));g=-a|0}else{g=0}if((g|0)<(_|0)){a=g;do{u[o+(a<<2)>>2]=k*+u[o+(a-s<<2)>>2];a=a+1|0}while((a|0)<(_|0))}if(!E){Kr(b,t,i,n,b,_,d,p);c=v;return s|0}E=_<<2;Gi(w|0,S|0,E)|0;Kr(b,t,i,n,b,_,d,p);p=0;do{d=e+(p<<2)|0;u[d>>2]=+u[d>>2]-+u[b+(p<<2)>>2];p=p+1|0}while((p|0)<(_|0));c=v;return s|0}function dt(e,r,t,i,n,a,s,l,f,c,d,_,h,p,m){e=e|0;r=r|0;t=t|0;i=i|0;n=+n;a=a|0;s=s|0;l=l|0;f=f|0;c=c|0;d=d|0;_=_|0;h=h|0;p=+p;m=m|0;p=n>.99?.9900000095367432:n;if((s|0)>0){m=0;do{n=p*+u[e+(m-t<<2)>>2];u[r+(m<<2)>>2]=n;u[e+(m<<2)>>2]=n;m=m+1|0}while((m|0)<(s|0))}o[l>>2]=t;u[f+8>>2]=0.0;u[f>>2]=0.0;u[f+4>>2]=p;return}function _t(e,r,t){e=e|0;r=r|0;t=t|0;return Mn[o[e+4>>2]&31](o[e>>2]|0,r,t)|0}function ht(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0;i=c;if((r|0)==0){o[t>>2]=o[e+4>>2]<<1;n=0;c=i;return n|0}else if((r|0)==1){a=t;t=o[a>>2]|0;if((t|0)==0){o[a>>2]=4;n=0;c=i;return n|0}s=o[e+32+(t<<2)>>2]|0;if((s|0)==0){o[a>>2]=-1;n=0;c=i;return n|0}else{o[a>>2]=o[s+52>>2];n=0;c=i;return n|0}}else{ve(o[p>>2]|0,13424,(s=c,c=c+16|0,o[s>>2]=13952,o[s+8>>2]=r,s)|0)|0;c=s;n=-1;c=i;return n|0}return 0}function pt(e){e=e|0;var r=0;if(e>>>0>2>>>0){r=0;return r|0}r=o[1336+(e<<2)>>2]|0;return r|0}function mt(e){e=e|0;var r=0,t=0,i=0,n=0,a=0,s=0,l=0,f=0,c=0,d=0,_=0,h=0,p=0;r=o[e>>2]|0;t=Ti(228,1)|0;if((t|0)==0){i=0;return i|0}o[t+68>>2]=0;o[t>>2]=e;e=r;n=o[e>>2]|0;o[t+8>>2]=n;a=r+4|0;s=(o[e>>2]|0)/(o[a>>2]|0)|0;l=t+16|0;o[l>>2]=s;f=o[a>>2]|0;o[t+12>>2]=f;o[t+20>>2]=n+f;n=o[r+8>>2]|0;a=t+24|0;o[a>>2]=n;u[t+56>>2]=+u[r+20>>2];u[t+60>>2]=+u[r+24>>2];o[t+28>>2]=o[r+12>>2];c=r+16|0;o[t+32>>2]=o[c>>2];u[t+64>>2]=+u[r+28>>2];o[t+208>>2]=r+32;d=o[r+96>>2]|0;o[t+216>>2]=d;o[t+212>>2]=d;o[t+40>>2]=1;o[t+204>>2]=1;u[t+36>>2]=1024.0;o[t+72>>2]=Ti(f<<2,1)|0;f=Ti(((o[c>>2]|0)+(o[e>>2]|0)<<2)+8|0,1)|0;o[t+76>>2]=f;o[t+80>>2]=f+((o[c>>2]|0)+2<<2);f=Ti(((o[c>>2]|0)+(o[e>>2]|0)<<2)+8|0,1)|0;o[t+84>>2]=f;o[t+88>>2]=f+((o[c>>2]|0)+2<<2);o[t+92>>2]=2432;o[t+96>>2]=3232;c=n<<2;f=Ti(c,1)|0;e=t+100|0;o[e>>2]=f;o[t+104>>2]=Ti(c,1)|0;o[t+4>>2]=1;if((n|0)>0){c=0;d=n;r=f;while(1){f=c+1|0;u[r+(c<<2)>>2]=+(f|0)*3.1415927410125732/+(d+1|0);_=o[a>>2]|0;if((f|0)>=(_|0)){break}c=f;d=_;r=o[e>>2]|0}h=_;p=o[l>>2]|0}else{h=n;p=s}o[t+108>>2]=Ti(h<<2,1)|0;s=h<<2;o[t+112>>2]=Ti(s,1)|0;o[t+116>>2]=Ti(s,1)|0;o[t+120>>2]=Ti(s,1)|0;o[t+124>>2]=Ti(s,1)|0;s=p<<2;o[t+136>>2]=Ti(s,1)|0;o[t+140>>2]=0;o[t+52>>2]=Ti(s,1)|0;s=Ti(64,1)|0;o[t+144>>2]=s;vi(s);u[t+148>>2]=8.0;Zi(t+156|0,0,32);o[t+200>>2]=2;o[t+192>>2]=2;o[t+196>>2]=8e3;o[t+220>>2]=0;o[t+224>>2]=1;i=t;return i|0}function Et(e){e=e|0;var r=0;Ri(o[e+72>>2]|0);Ri(o[e+76>>2]|0);Ri(o[e+104>>2]|0);Ri(o[e+84>>2]|0);Ri(o[e+100>>2]|0);Ri(o[e+108>>2]|0);Ri(o[e+112>>2]|0);Ri(o[e+116>>2]|0);Ri(o[e+120>>2]|0);Ri(o[e+124>>2]|0);Ri(o[e+136>>2]|0);Ri(o[e+52>>2]|0);r=e+144|0;gi(o[r>>2]|0);Ri(o[r>>2]|0);Ri(e);return}function wt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0,l=0,f=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0,D=0,I=0,L=0,B=0,H=0,U=0,q=0,X=0.0,j=0.0,K=0,Y=0,G=0,W=0.0,Q=0,Z=0,ee=0,te=0.0,ie=0.0,ne=0.0,oe=0.0,ae=0.0,se=0,le=0.0,ue=0.0,fe=0.0,ce=0,de=0,_e=0.0,he=0,pe=0,me=0,Ee=0,we=0,be=0,Se=0,ve=0,ke=0.0,ge=0,ye=0,Me=0,Fe=0,Ae=0,Oe=0,Re=0,Te=0,Ne=0,Pe=0,xe=0,Ce=0,De=0,Ie=0.0,Le=0,He=0,Ue=0,ze=0,Ve=0,Xe=0,je=0,Ke=0,Ye=0,Ge=0,We=0.0,Qe=0,Ze=0,Je=0,$e=0,er=0;i=c;c=c+72|0;n=i|0;a=i+24|0;s=i+48|0;l=i+56|0;f=i+64|0;d=r;_=o[e+68>>2]|0;h=e+24|0;p=o[h>>2]|0;m=c;c=c+(p*4|0)|0;c=c+7&-8;E=c;c=c+(p*4|0)|0;c=c+7&-8;w=c;c=c+(p*4|0)|0;c=c+7&-8;b=w;S=c;c=c+(p*4|0)|0;c=c+7&-8;v=S;k=c;c=c+(p*4|0)|0;c=c+7&-8;g=c;c=c+(p*4|0)|0;c=c+7&-8;y=g;M=c;c=c+(p*4|0)|0;c=c+7&-8;F=c;c=c+(p*4|0)|0;c=c+7&-8;A=c;c=c+(p*4|0)|0;c=c+7&-8;p=o[e+76>>2]|0;O=e+8|0;R=e+32|0;Wi(p|0,p+(o[O>>2]<<2)|0,(o[R>>2]<<2)+8|0);p=o[e+84>>2]|0;Wi(p|0,p+(o[O>>2]<<2)|0,(o[R>>2]<<2)+8|0);if((o[e+224>>2]|0)!=0){Br(d,d,o[O>>2]|0,(o[e+220>>2]|0)!=0?2:0,e+128|0)}p=e+20|0;T=o[p>>2]|0;N=qe()|0;P=c;c=c+(T*4|0)|0;c=c+7&-8;T=(o[h>>2]|0)+1|0;x=c;c=c+(T*4|0)|0;c=c+7&-8;C=o[p>>2]|0;D=o[O>>2]|0;I=C-D|0;if((I|0)>0){L=o[e+72>>2]|0;B=o[e+92>>2]|0;H=0;while(1){u[P+(H<<2)>>2]=+u[L+(H<<2)>>2]*+u[B+(H<<2)>>2];U=H+1|0;if((U|0)<(I|0)){H=U}else{q=U;break}}}else{q=0}if((q|0)<(C|0)){H=o[e+92>>2]|0;I=q;do{u[P+(I<<2)>>2]=+u[d+(I-C+D<<2)>>2]*+u[H+(I<<2)>>2];I=I+1|0}while((I|0)<(C|0))}et(P,x,T,C);X=+u[x>>2];j=X+X*+u[e+64>>2];u[x>>2]=j;C=o[h>>2]|0;T=C+1|0;e:do{if((T|0)>0){P=o[e+96>>2]|0;I=0;X=j;while(1){u[x+(I<<2)>>2]=X*+u[P+(I<<2)>>2];H=I+1|0;if((H|0)>=(T|0)){break e}I=H;X=+u[x+(H<<2)>>2]}}}while(0);+$r(m,x,C);C=rt(m,o[h>>2]|0,S,10,.20000000298023224,_)|0;m=o[h>>2]|0;if((C|0)!=(m|0)&(m|0)>0){C=o[e+100>>2]|0;x=0;do{u[S+(x<<2)>>2]=+u[C+(x<<2)>>2];x=x+1|0}while((x|0)<(m|0))}Be(N|0);N=(o[p>>2]|0)-(o[O>>2]|0)|0;m=e+4|0;do{if((o[m>>2]|0)==0){x=o[e+16>>2]|0;nt(o[e+100>>2]|0,S,g,o[h>>2]|0,x,x<<1);K=o[h>>2]|0}else{x=o[h>>2]|0;if((x|0)<=0){K=x;break}C=(x|0)>1?x<<2:4;Gi(y|0,v|0,C)|0;K=x}}while(0);it(g,K,.0020000000949949026);tt(g,F,o[h>>2]|0,_);K=e+212|0;v=e+208|0;y=o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0;do{if((y|0)==0){Y=815}else{if((o[e+192>>2]|0)>2){if((o[y+8>>2]|0)<3){Y=815;break}}if((o[y+4>>2]|0)!=0){Y=815;break}if((o[y>>2]|0)!=-1){Y=815;break}if((o[e+156>>2]|0)!=0){Y=815;break}if((o[e+164>>2]|0)!=0){Y=815;break}G=0;W=0.0;Q=e+72|0;Z=N<<2}}while(0);if((Y|0)==815){Ir(+u[e+56>>2],F,E,o[h>>2]|0);Ir(+u[e+60>>2],F,w,o[h>>2]|0);y=e+88|0;x=o[y>>2]|0;C=e+72|0;T=o[C>>2]|0;I=N<<2;Gi(x|0,T|0,I)|0;T=(o[y>>2]|0)+(N<<2)|0;x=(o[O>>2]|0)-N<<2;Gi(T|0,r|0,x)|0;x=o[y>>2]|0;Vr(x,E,w,x,o[O>>2]|0,o[h>>2]|0,o[e+116>>2]|0,_);x=n|0;T=a|0;st(o[y>>2]|0,o[e+28>>2]|0,o[R>>2]|0,o[O>>2]|0,x,T,6,_);j=+u[T>>2];X=j*.85;T=o[x>>2]|0;x=1;while(1){e:do{if(+u[a+(x<<2)>>2]>X){y=o[n+(x<<2)>>2]|0;P=(y<<1)-T|0;do{if((((P|0)<0?-P|0:P)|0)>=3){H=(y*3|0)-T|0;if((((H|0)<0?-H|0:H)|0)<4){break}H=(y<<2)-T|0;if((((H|0)<0?-H|0:H)|0)<5){break}H=(y*5|0)-T|0;if((((H|0)<0?-H|0:H)|0)>=6){ee=T;break e}}}while(0);ee=y}else{ee=T}}while(0);P=x+1|0;if((P|0)<6){T=ee;x=P}else{G=ee;W=j;Q=C;Z=I;break}}}I=e+80|0;C=o[I>>2]|0;ee=o[Q>>2]|0;Gi(C|0,ee|0,Z)|0;Z=(o[I>>2]|0)+(N<<2)|0;ee=(o[O>>2]|0)-N<<2;Gi(Z|0,r|0,ee)|0;ee=o[I>>2]|0;jr(ee,F,ee,o[O>>2]|0,o[h>>2]|0,o[e+120>>2]|0,_);j=+qr(o[I>>2]|0,o[O>>2]|0);if((o[K>>2]|0)!=1&(G|0)>0){te=j*+V(1.0-W*W*.8)*1.1}else{te=j}ee=o[e+144>>2]|0;do{if((ee|0)==0){Y=866}else{r=e+156|0;if((o[r>>2]|0)==0){if((o[e+164>>2]|0)==0){Y=866;break}}Z=o[h>>2]|0;if((Z|0)>0){N=o[e+100>>2]|0;j=0.0;C=0;do{X=+u[N+(C<<2)>>2]-+u[S+(C<<2)>>2];j=j+X*X;C=C+1|0}while((C|0)<(Z|0));ie=j}else{ie=0.0}Z=e+176|0;do{if((o[Z>>2]|0)!=0){X=+u[e+180>>2];do{if(+u[e+184>>2]*X>0.0){ne=X*-1.0e-5/(+u[e+188>>2]+1.0);oe=ne>.05?.05000000074505806:ne;if(oe>=-.05){ae=oe;break}ae=-.05000000074505806}else{ae=0.0}}while(0);y=e+148|0;X=ae+ +u[y>>2];oe=X>10.0?10.0:X;u[y>>2]=oe;if(oe>=0.0){break}u[y>>2]=0.0}}while(0);j=+ki(ee,d,o[O>>2]|0,G,W);u[e+152>>2]=j;if((o[r>>2]|0)==0){y=e+172|0;e:do{if(j<2.0){C=o[y>>2]|0;do{if(!((C|0)==0|ie>.05)){if((o[e+168>>2]|0)==0|(C|0)>20){break}o[y>>2]=C+1;se=0;break e}}while(0);o[y>>2]=1;se=1}else{o[y>>2]=0;se=o[e+216>>2]|0}}while(0);o[K>>2]=se;break}o[s>>2]=8;oe=+u[e+148>>2];y=~~+z(oe);X=oe-+(y|0);r=y+1|0;ne=+(r|0)-oe;if((y|0)==10){C=0;oe=100.0;N=8;while(1){le=+u[392+(N*44|0)>>2];do{if(j>le){ue=j-le;if(ue>=oe){fe=oe;ce=C;break}fe=ue;ce=N}else{fe=oe;ce=C}}while(0);x=N-1|0;if((x|0)==0){de=ce;break}else{C=ce;oe=fe;N=x}}}else{N=0;oe=100.0;C=8;while(1){le=X*+u[352+(C*44|0)+(r<<2)>>2]+ne*+u[352+(C*44|0)+(y<<2)>>2];do{if(j>le){ue=j-le;if(ue>=oe){_e=oe;he=N;break}_e=ue;he=C}else{_e=oe;he=N}}while(0);x=C-1|0;if((x|0)==0){de=he;break}else{N=he;oe=_e;C=x}}}o[s>>2]=de;C=e+172|0;e:do{if((de|0)==0){N=o[C>>2]|0;do{if(!((N|0)==0|ie>.05)){if((o[e+168>>2]|0)==0|(N|0)>20){break}o[s>>2]=0;o[C>>2]=N+1;break e}}while(0);o[s>>2]=1;o[C>>2]=1}else{o[C>>2]=0}}while(0);C=s;Gt(e,6,C)|0;C=e+160|0;do{if((o[C>>2]|0)>0){N=l;Gt(e,19,N)|0;y=o[C>>2]|0;if((o[l>>2]|0)<=(y|0)){break}o[l>>2]=y;Gt(e,18,N)|0}}while(0);if((o[Z>>2]|0)==0){break}C=f;Gt(e,19,C)|0;C=(o[f>>2]|0)-(o[Z>>2]|0)|0;N=e+180|0;u[N>>2]=+u[N>>2]+ +(C|0);N=e+184|0;u[N>>2]=+u[N>>2]*.95+ +(C|0)*.05;C=e+188|0;u[C>>2]=+u[C>>2]+1.0}}while(0);if((Y|0)==866){u[e+152>>2]=-1.0}if((o[e+204>>2]|0)!=0){kr(t,0,1);kr(t,o[K>>2]|0,4)}f=o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0;if((f|0)==0){l=o[O>>2]|0;if((l|0)>0){s=e+88|0;de=0;while(1){u[(o[s>>2]|0)+(de<<2)>>2]=1.0000000036274937e-15;u[(o[I>>2]|0)+(de<<2)>>2]=1.0000000036274937e-15;he=de+1|0;ce=o[O>>2]|0;if((he|0)<(ce|0)){de=he}else{pe=ce;break}}}else{pe=l}if((o[h>>2]|0)>0){l=e+112|0;de=0;do{u[(o[l>>2]|0)+(de<<2)>>2]=0.0;de=de+1|0}while((de|0)<(o[h>>2]|0));me=o[O>>2]|0}else{me=pe}o[m>>2]=1;o[e+40>>2]=1;pe=o[Q>>2]|0;de=o[p>>2]|0;l=d+((me<<1)-de<<2)|0;s=de-me<<2;Gi(pe|0,l|0,s)|0;if((o[h>>2]|0)<=0){Ee=0;c=i;return Ee|0}s=e+108|0;l=0;while(1){u[(o[s>>2]|0)+(l<<2)>>2]=0.0;pe=l+1|0;if((pe|0)<(o[h>>2]|0)){l=pe}else{Ee=0;break}}c=i;return Ee|0}l=o[h>>2]|0;if((o[m>>2]|0)!=0&(l|0)>0){s=e+100|0;pe=0;do{u[(o[s>>2]|0)+(pe<<2)>>2]=+u[S+(pe<<2)>>2];pe=pe+1|0;we=o[h>>2]|0}while((pe|0)<(we|0));be=o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0;Se=we}else{be=f;Se=l}Nn[o[be+16>>2]&7](S,k,Se,t);Se=o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0;if((o[Se>>2]|0)==-1){ve=Se}else{kr(t,G-(o[e+28>>2]|0)|0,7);ve=o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0}if((o[ve+4>>2]|0)==0){ke=W}else{ve=~~+z(W*.9*15.0+.5);Se=(ve|0)>15?15:ve;ve=(Se|0)<0?0:Se;kr(t,ve,4);ke=+(ve|0)*.066667}ve=~~+z(+$(te)*3.5+.5);Se=(ve|0)<0?0:ve;ve=(Se|0)>31?31:Se;te=+J(+(ve|0)/3.5);kr(t,ve,5);ve=o[h>>2]|0;if((o[m>>2]|0)!=0&(ve|0)>0){Se=e+104|0;be=0;while(1){u[(o[Se>>2]|0)+(be<<2)>>2]=+u[k+(be<<2)>>2];l=be+1|0;f=o[h>>2]|0;if((l|0)<(f|0)){be=l}else{ge=f;break}}}else{ge=ve}ve=e+12|0;be=o[ve>>2]|0;Se=c;c=c+(be*4|0)|0;c=c+7&-8;f=c;c=c+(be*4|0)|0;c=c+7&-8;l=c;c=c+(be*4|0)|0;c=c+7&-8;we=c;c=c+(be*4|0)|0;c=c+7&-8;pe=c;c=c+(be*4|0)|0;c=c+7&-8;s=c;c=c+(be*4|0)|0;c=c+7&-8;me=c;c=c+(ge*4|0)|0;c=c+7&-8;de=e+16|0;ce=o[de>>2]|0;e:do{if((ce|0)>0){he=e+88|0;se=e+100|0;ee=e+104|0;C=e+136|0;N=e+56|0;y=e+60|0;r=e+124|0;x=e+192|0;T=e+112|0;n=e+28|0;a=e+40|0;P=e+200|0;H=e+36|0;D=e+52|0;q=f;B=e+140|0;L=e+108|0;U=G;ye=0;Me=ce;Fe=be;Ae=ge;while(1){Oe=re(Fe,ye)|0;Re=o[I>>2]|0;Te=Re+(Oe<<2)|0;Ne=o[he>>2]|0;Pe=Ne+(Oe<<2)|0;nt(o[se>>2]|0,S,g,Ae,ye,Me);nt(o[ee>>2]|0,k,M,o[h>>2]|0,ye,o[de>>2]|0);it(g,o[h>>2]|0,.0020000000949949026);it(M,o[h>>2]|0,.0020000000949949026);tt(g,F,o[h>>2]|0,_);tt(M,A,o[h>>2]|0,_);xe=o[h>>2]|0;if((xe|0)>0){W=1.0;Ce=0;while(1){ie=W+(+u[A+((Ce|1)<<2)>>2]-+u[A+(Ce<<2)>>2]);De=Ce+2|0;if((De|0)<(xe|0)){W=ie;Ce=De}else{Ie=ie;break}}}else{Ie=1.0}u[(o[C>>2]|0)+(ye<<2)>>2]=Ie;Ir(+u[N>>2],F,E,o[h>>2]|0);W=+u[y>>2];Ce=o[h>>2]|0;do{if(W<0.0){if((Ce|0)<=0){break}Zi(b|0,0,((Ce|0)>1?Ce<<2:4)|0)}else{Ir(W,F,w,Ce)}}while(0);Ce=(o[p>>2]|0)-(o[O>>2]|0)|0;if((Ce|0)!=(o[ve>>2]|0)){Y=900;break}xe=(Ce|0)>0;do{if((ye|0)==0){if(xe){Le=0}else{He=Ce;break}while(1){W=+u[(o[Q>>2]|0)+(Le<<2)>>2];u[Ne+(Le+Oe<<2)>>2]=W;u[s+(Le<<2)>>2]=W;De=Le+1|0;Ue=o[ve>>2]|0;if((De|0)<(Ue|0)){Le=De}else{He=Ue;break}}}else{if(!xe){He=Ce;break}Ue=ye-1|0;De=0;ze=Ce;while(1){W=+u[d+((re(ze,Ue)|0)+De<<2)>>2];u[Ne+(De+Oe<<2)>>2]=W;u[s+(De<<2)>>2]=W;Ve=De+1|0;Xe=o[ve>>2]|0;if((Ve|0)<(Xe|0)){De=Ve;ze=Xe}else{He=Xe;break}}}}while(0);jr(s,A,s,He,o[h>>2]|0,o[r>>2]|0,_);Ce=Fe>>((o[x>>2]|0)==0);Gr(A,E,w,pe,Ce,o[h>>2]|0,_);xe=o[ve>>2]|0;if((Ce|0)<(xe|0)){ze=Ce;do{u[pe+(ze<<2)>>2]=1.0000000036274937e-15;ze=ze+1|0}while((ze|0)<(xe|0))}ze=o[h>>2]|0;if((ze|0)>0){Ce=o[L>>2]|0;De=0;do{u[me+(De<<2)>>2]=+u[Ce+(De<<2)>>2];De=De+1|0}while((De|0)<(ze|0))}if((xe|0)>0){De=0;do{u[we+(De<<2)>>2]=1.0000000036274937e-15;De=De+1|0}while((De|0)<(xe|0))}Xr(we,A,we,xe,ze,me,_);De=o[h>>2]|0;if((De|0)>0){Ce=o[T>>2]|0;Ue=0;do{u[me+(Ue<<2)>>2]=+u[Ce+(Ue<<2)>>2];Ue=Ue+1|0}while((Ue|0)<(De|0))}Vr(we,E,w,we,o[ve>>2]|0,De,me,_);Ue=o[h>>2]|0;if((Ue|0)>0){Ce=o[T>>2]|0;ze=0;do{u[me+(ze<<2)>>2]=+u[Ce+(ze<<2)>>2];ze=ze+1|0}while((ze|0)<(Ue|0))}Vr(Pe,E,w,Pe,o[ve>>2]|0,Ue,me,_);do{if((o[x>>2]|0)==0){if((o[h>>2]|0)>0){je=0}else{break}do{u[(o[T>>2]|0)+(je<<2)>>2]=+u[me+(je<<2)>>2];je=je+1|0}while((je|0)<(o[h>>2]|0))}}while(0);Ue=o[ve>>2]|0;if((Ue|0)>0){ze=0;do{u[Se+(ze<<2)>>2]=+u[Ne+(ze+Oe<<2)>>2]-+u[we+(ze<<2)>>2];ze=ze+1|0}while((ze|0)<(Ue|0))}Zi(Te|0,0,Ue<<2|0);ze=o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0;Ne=o[ze+24>>2]|0;if((Ne|0)==0){Y=926;break}Ce=o[ze>>2]|0;if((Ce|0)==(-1|0)){Ke=o[R>>2]|0;Ye=o[n>>2]|0;Ge=U}else if((Ce|0)==0){Ke=U;Ye=U;Ge=U}else{De=Ce-1+(o[n>>2]|0)|0;xe=(U|0)<(De|0)?De:U;De=(o[R>>2]|0)-Ce|0;Xe=(xe|0)>(De|0)?De:xe;Ke=Xe+Ce|0;Ye=1-Ce+Xe|0;Ge=Xe}Xe=On[Ne&7](Se,Pe,A,E,w,l,o[ze+32>>2]|0,Ye,(o[a>>2]|0)!=0&(Ke|0)>(Oe|0)?Oe:Ke,ke,o[h>>2]|0,o[ve>>2]|0,t,_,Te,pe,o[x>>2]|0,0,o[P>>2]|0,H)|0;o[(o[D>>2]|0)+(ye<<2)>>2]=Xe;Xe=o[ve>>2]|0;Zi(q|0,0,Xe<<2|0);if((Xe|0)>0){ze=0;do{Ne=s+(ze<<2)|0;u[Ne>>2]=+u[Ne>>2]-+u[l+(ze<<2)>>2];ze=ze+1|0}while((ze|0)<(Xe|0))}W=+qr(s,Xe)/te;ze=o[(o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0)+8>>2]|0;if((ze|0)==3){Ue=yi(W,6864,8)|0;kr(t,Ue,3);We=te*+u[6896+(Ue<<2)>>2]}else if((ze|0)==0){We=te}else{ze=yi(W,6928,2)|0;kr(t,ze,1);We=te*+u[6936+(ze<<2)>>2]}Ur(Se,Se,We,o[ve>>2]|0);ze=o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0;Ue=o[ze+36>>2]|0;if((Ue|0)==0){Y=936;break}vn[Ue&7](Se,A,E,w,o[ze+44>>2]|0,o[h>>2]|0,o[ve>>2]|0,f,pe,t,_,o[x>>2]|0,o[ze+12>>2]|0);Hr(f,f,We,o[ve>>2]|0);ze=o[ve>>2]|0;if((ze|0)>0){Ue=0;while(1){u[Re+(Ue+Oe<<2)>>2]=+u[l+(Ue<<2)>>2]+ +u[f+(Ue<<2)>>2];Ne=Ue+1|0;Ce=o[ve>>2]|0;if((Ne|0)<(Ce|0)){Ue=Ne}else{Qe=Ce;break}}}else{Qe=ze}if((o[(o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0)+12>>2]|0)==0){Ze=Qe}else{Ue=qe()|0;Xe=c;c=c+(Qe*4|0)|0;c=c+7&-8;Ce=o[ve>>2]|0;Zi(Xe|0,0,Ce<<2|0);if((Ce|0)>0){Ne=0;do{xe=Se+(Ne<<2)|0;u[xe>>2]=+u[xe>>2]*2.200000047683716;Ne=Ne+1|0}while((Ne|0)<(Ce|0))}Ne=o[(o[v>>2]|0)+(o[K>>2]<<2)>>2]|0;vn[o[Ne+36>>2]&7](Se,A,E,w,o[Ne+44>>2]|0,o[h>>2]|0,Ce,Xe,pe,t,_,o[x>>2]|0,0);Hr(Xe,Xe,We*.4545449912548065,o[ve>>2]|0);Ne=o[ve>>2]|0;if((Ne|0)>0){ze=0;do{xe=f+(ze<<2)|0;u[xe>>2]=+u[xe>>2]+ +u[Xe+(ze<<2)>>2];ze=ze+1|0}while((ze|0)<(Ne|0))}Be(Ue|0);Ze=o[ve>>2]|0}if((Ze|0)>0){Ne=0;while(1){u[Re+(Ne+Oe<<2)>>2]=+u[l+(Ne<<2)>>2]+ +u[f+(Ne<<2)>>2];ze=Ne+1|0;Xe=o[ve>>2]|0;if((ze|0)<(Xe|0)){Ne=ze}else{Je=Xe;break}}}else{Je=Ze}if((o[B>>2]|0)==0){$e=Je}else{W=+zr(f,Je);u[(o[B>>2]|0)+(ye<<2)>>2]=W;$e=o[ve>>2]|0}Xr(Te,A,Pe,$e,o[h>>2]|0,o[L>>2]|0,_);if((o[x>>2]|0)!=0){Vr(Pe,E,w,Pe,o[ve>>2]|0,o[h>>2]|0,o[T>>2]|0,_)}Ne=ye+1|0;Oe=o[de>>2]|0;if((Ne|0)>=(Oe|0)){break e}U=Ge;ye=Ne;Me=Oe;Fe=o[ve>>2]|0;Ae=o[h>>2]|0}if((Y|0)==900){bt(13800,708);return 0}else if((Y|0)==926){bt(13568,760);return 0}else if((Y|0)==936){bt(13376,842);return 0}}}while(0);do{if((o[K>>2]|0)>0){do{if((o[h>>2]|0)>0){Y=e+100|0;ve=0;do{u[(o[Y>>2]|0)+(ve<<2)>>2]=+u[S+(ve<<2)>>2];ve=ve+1|0;er=o[h>>2]|0}while((ve|0)<(er|0));if((er|0)<=0){break}ve=e+104|0;Y=0;do{u[(o[ve>>2]|0)+(Y<<2)>>2]=+u[k+(Y<<2)>>2];Y=Y+1|0}while((Y|0)<(o[h>>2]|0))}}while(0);if((o[K>>2]|0)!=1){break}if((o[e+172>>2]|0)==0){kr(t,0,4);break}else{kr(t,15,4);break}}}while(0);o[m>>2]=0;m=o[Q>>2]|0;Q=o[O>>2]|0;O=o[p>>2]|0;p=d+((Q<<1)-O<<2)|0;d=O-Q<<2;Gi(m|0,p|0,d)|0;d=o[K>>2]|0;K=e+40|0;if((o[(o[(o[v>>2]|0)+(d<<2)>>2]|0)+36>>2]|0)==4|(d|0)==0){o[K>>2]=1;Ee=1;c=i;return Ee|0}else{o[K>>2]=0;Ee=1;c=i;return Ee|0}return 0}function bt(e,r){e=e|0;r=r|0;var t=0;ve(o[p>>2]|0,13984,(t=c,c=c+24|0,o[t>>2]=13904,o[t+8>>2]=r,o[t+16>>2]=e,t)|0)|0;c=t;Ce(1)}function St(e){e=e|0;var r=0,t=0,i=0,n=0,a=0,s=0,l=0,f=0,c=0;r=o[e>>2]|0;t=Ti(508,1)|0;if((t|0)==0){i=0;return i|0}o[t+44>>2]=0;o[t>>2]=e;o[t+124>>2]=1;o[t+4>>2]=1;e=r;n=o[e>>2]|0;o[t+12>>2]=n;a=r+4|0;s=(o[e>>2]|0)/(o[a>>2]|0)|0;o[t+20>>2]=s;e=o[a>>2]|0;o[t+16>>2]=e;a=o[r+8>>2]|0;o[t+24>>2]=a;o[t+28>>2]=o[r+12>>2];l=o[r+16>>2]|0;o[t+32>>2]=l;o[t+128>>2]=r+32;o[t+132>>2]=o[r+96>>2];o[t+136>>2]=1;r=l<<1;f=Ti((r+n+e<<2)+48|0,1)|0;c=f;o[t+48>>2]=c;o[t+52>>2]=c+(e+6+r<<2);Zi(f|0,0,l+n<<2|0);n=a<<2;o[t+60>>2]=Ti(n,1)|0;o[t+56>>2]=Ti(n,1)|0;o[t+64>>2]=Ti(n,1)|0;o[t+76>>2]=Ti(s<<2,1)|0;o[t+96>>2]=40;o[t+8>>2]=0;Zi(t+104|0,0,16);o[t+120>>2]=1e3;o[t+36>>2]=8e3;u[t+40>>2]=0.0;o[t+464>>2]=22;o[t+468>>2]=0;o[t+144>>2]=0;o[t+164>>2]=0;o[t+184>>2]=0;o[t+204>>2]=0;o[t+224>>2]=0;o[t+244>>2]=0;o[t+264>>2]=0;o[t+284>>2]=0;o[t+304>>2]=0;o[t+324>>2]=0;o[t+344>>2]=0;o[t+364>>2]=0;o[t+384>>2]=0;o[t+404>>2]=0;o[t+424>>2]=0;o[t+444>>2]=0;Zi(t+480|0,0,24);o[t+504>>2]=1;i=t;return i|0}function vt(e){e=e|0;Ri(o[e+48>>2]|0);Ri(o[e+60>>2]|0);Ri(o[e+56>>2]|0);Ri(o[e+64>>2]|0);Ri(o[e+76>>2]|0);Ri(e);return}function kt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0,l=0,f=0,d=0,h=0,m=0,E=0.0,w=0.0,b=0.0,S=0.0,v=0.0,k=0.0,g=0,y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0.0,P=0,x=0,C=0,D=0,I=0,L=0,B=0.0,H=0,U=0,z=0.0,q=0,X=0,j=0,K=0,Y=0,G=0,W=0,Q=0,Z=0,$=0,ee=0,te=0,ie=0,ne=0,oe=0,ae=0,se=0,le=0,ue=0,fe=0,ce=0,de=0,_e=0,he=0,pe=0,me=0,Ee=0.0,we=0.0,be=0.0,Se=0.0,ke=0.0,ge=0,ye=0.0,Me=0,Fe=0,Ae=0.0,Oe=0.0,Re=0,Te=0,Ne=0,Pe=0,xe=0,Ce=0,De=0,Ie=0,Le=0.0,He=0,Ue=0,ze=0.0,Ve=0;i=c;c=c+24|0;n=i|0;a=i+8|0;s=t;l=e;f=o[e+44>>2]|0;do{if((r|0)==0){if((o[e+496>>2]|0)!=0){d=e+132|0;o[d>>2]=0;h=d;break}d=e+8|0;m=o[d>>2]|0;if((m|0)<10){E=+u[12640+(m<<2)>>2]}else{E=0.0}w=+u[e+104>>2];b=+u[e+108>>2];S=+u[e+112>>2];do{if(w<b){if(b<S){v=b;break}v=w<S?S:w}else{if(S<b){v=b;break}v=S<w?S:w}}while(0);m=e+100|0;w=+u[m>>2];if(v<w){u[m>>2]=v;k=v}else{k=w}w=E*(k>.85?.8500000238418579:k)+1.0000000036274937e-15;m=e+52|0;g=e+12|0;S=+qr(o[m>>2]|0,o[g>>2]|0);y=o[e+48>>2]|0;M=e+32|0;F=e+16|0;Wi(y|0,y+(o[g>>2]<<2)|0,((o[M>>2]<<1)+(o[F>>2]|0)<<2)+48|0);y=o[e+96>>2]|0;b=+((o[d>>2]|0)+1|0);A=e+120|0;O=(re(o[A>>2]|0,1664525)|0)+1013904223|0;o[A>>2]=O;R=~~(b*3.4642*((o[_>>2]=O&8388607|1065353216,+u[_>>2])+-1.5))+y|0;y=o[M>>2]|0;M=(R|0)>(y|0)?y:R;R=o[e+28>>2]|0;y=(M|0)<(R|0)?R:M;e:do{if((o[g>>2]|0)>0){b=S*E*(1.0-w*w)*3.4642;M=0;R=O;while(1){T=o[m>>2]|0;N=w*(+u[T+(M-y<<2)>>2]+1.0000000036274937e-15);P=(re(R,1664525)|0)+1013904223|0;o[A>>2]=P;u[T+(M<<2)>>2]=N+b*((o[_>>2]=P&8388607|1065353216,+u[_>>2])+-1.5);P=M+1|0;if((P|0)>=(o[g>>2]|0)){break e}M=P;R=o[A>>2]|0}}}while(0);A=e+60|0;y=o[A>>2]|0;O=e+24|0;Ir(.9800000190734863,y,y,o[O>>2]|0);Xr((o[m>>2]|0)+(-(o[F>>2]|0)<<2)|0,o[A>>2]|0,s,o[g>>2]|0,o[O>>2]|0,o[e+64>>2]|0,f);Br(s,s,o[g>>2]|0,1,e+68|0);o[e+4>>2]=0;o[d>>2]=(o[d>>2]|0)+1;O=e+116|0;A=o[O>>2]|0;o[O>>2]=A+1;u[l+104+(A<<2)>>2]=w;if((o[O>>2]|0)<=2){x=0;c=i;return x|0}o[O>>2]=0;x=0;c=i;return x|0}else{if((o[e+124>>2]|0)==0){h=e+132|0;break}if((Or(r)|0)<5){x=-1;c=i;return x|0}O=e+140|0;A=e+464|0;y=e+468|0;e:while(1){do{if((yr(r,1)|0)!=0){Ar(r,(o[232+((yr(r,3)|0)<<2)>>2]|0)-4|0);if((Or(r)|0)<5){x=-1;C=1124;break e}if((yr(r,1)|0)==0){break}Ar(r,(o[232+((yr(r,3)|0)<<2)>>2]|0)-4|0);if((yr(r,1)|0)!=0){C=1005;break e}}}while(0);if((Or(r)|0)<4){x=-1;C=1129;break}D=yr(r,4)|0;if((D|0)==14){R=ei(r,O,e)|0;if((R|0)!=0){x=R;C=1121;break}}else if((D|0)==13){R=Mn[o[A>>2]&31](r,e,o[y>>2]|0)|0;if((R|0)!=0){x=R;C=1125;break}}else if((D|0)==15){x=-1;C=1130;break}else{C=1011;break}if((Or(r)|0)<5){x=-1;C=1122;break}}if((C|0)==1005){y=o[p>>2]|0;ve(y|0,14032,(I=c,c=c+8|0,o[I>>2]=13040,I)|0)|0;c=I;x=-2;c=i;return x|0}else if((C|0)==1011){if((D|0)<=8){y=e+132|0;o[y>>2]=D;h=y;break}ve(o[p>>2]|0,14032,(I=c,c=c+8|0,o[I>>2]=13208,I)|0)|0;c=I;x=-2;c=i;return x|0}else if((C|0)==1121){c=i;return x|0}else if((C|0)==1122){c=i;return x|0}else if((C|0)==1124){c=i;return x|0}else if((C|0)==1125){c=i;return x|0}else if((C|0)==1129){c=i;return x|0}else if((C|0)==1130){c=i;return x|0}}}while(0);I=o[e+48>>2]|0;D=e+12|0;l=e+32|0;y=e+16|0;Wi(I|0,I+(o[D>>2]<<2)|0,((o[l>>2]<<1)+(o[y>>2]|0)<<2)+48|0);I=e+128|0;A=(o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0)==0;O=e+24|0;d=o[O>>2]|0;g=qe()|0;F=c;c=c+(d*4|0)|0;c=c+7&-8;if(A){Ir(.9300000071525574,o[e+60>>2]|0,F,o[O>>2]|0);A=e+52|0;E=+qr(o[A>>2]|0,o[D>>2]|0);d=o[D>>2]|0;if((d|0)>0){m=e+120|0;k=E*3.4642;R=0;while(1){M=(re(o[m>>2]|0,1664525)|0)+1013904223|0;o[m>>2]=M;u[(o[A>>2]|0)+(R<<2)>>2]=k*((o[_>>2]=M&8388607|1065353216,+u[_>>2])+-1.5);M=R+1|0;P=o[D>>2]|0;if((M|0)<(P|0)){R=M}else{L=P;break}}}else{L=d}o[e+4>>2]=1;Xr(o[A>>2]|0,F,s,L,o[O>>2]|0,o[e+64>>2]|0,f);o[e+8>>2]=0;Be(g|0);x=0;c=i;return x|0}An[o[(o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0)+20>>2]&7](F,o[O>>2]|0,r);L=e+8|0;do{if((o[L>>2]|0)!=0){A=o[O>>2]|0;d=(A|0)>0;if(!d){break}R=o[e+56>>2]|0;k=0.0;m=0;do{E=+u[R+(m<<2)>>2]-+u[F+(m<<2)>>2];if(E<0.0){B=-0.0-E}else{B=E}k=k+B;m=m+1|0}while((m|0)<(A|0));E=+J(k*-.2)*.6;if(!d){break}A=e+64|0;m=0;do{R=(o[A>>2]|0)+(m<<2)|0;u[R>>2]=E*+u[R>>2];m=m+1|0}while((m|0)<(o[O>>2]|0))}}while(0);m=e+4|0;if((o[m>>2]|0)==0){if((o[L>>2]|0)!=0){C=1030}}else{C=1030}do{if((C|0)==1030){if((o[O>>2]|0)<=0){break}A=e+56|0;d=0;do{u[(o[A>>2]|0)+(d<<2)>>2]=+u[F+(d<<2)>>2];d=d+1|0}while((d|0)<(o[O>>2]|0))}}while(0);d=o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0;if((o[d>>2]|0)==-1){H=0;U=d}else{d=o[e+28>>2]|0;A=(yr(r,7)|0)+d|0;H=A;U=o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0}if((o[U+4>>2]|0)==0){z=0.0}else{z=+(yr(r,4)|0)*.066667}B=+J(+(yr(r,5)|0)/3.5);U=c;c=c+((o[O>>2]|0)*4|0)|0;c=c+7&-8;A=o[y>>2]|0;d=c;c=c+(A*4|0)|0;c=c+7&-8;R=c;c=c+(A*4|0)|0;c=c+7&-8;A=o[h>>2]|0;if((A|0)==1){o[e+496>>2]=(yr(r,4)|0)==15;q=o[h>>2]|0}else{q=A}if((q|0)>1){o[e+496>>2]=0}q=e+20|0;do{if((o[q>>2]|0)>0){A=e+52|0;P=e+80|0;M=e+28|0;T=a|0;X=e+100|0;j=a+4|0;K=a+8|0;Y=d;G=e+120|0;E=(z+-.20000000298023224)*1.5;k=E<0.0?0.0:E;E=k>1.0?1.0:k;W=e+492|0;Q=e+480|0;k=1.0-E*.8500000238418579;v=E*.15000000596046448;Z=e+484|0;$=e+488|0;w=+(H<<1|0);S=B*E;E=0.0;b=0.0;ee=40;te=0;ie=o[y>>2]|0;while(1){ne=re(ie,te)|0;oe=o[A>>2]|0;ae=oe+(ne<<2)|0;se=o[P>>2]|0;if((se|0)==0){le=0}else{le=se+(ne<<2)|0}se=ae;Zi(se|0,0,ie<<2|0);ue=o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0;fe=o[ue+28>>2]|0;if((fe|0)==0){C=1046;break}ce=o[ue>>2]|0;if((ce|0)==(-1|0)){de=o[l>>2]|0;_e=o[M>>2]|0}else if((ce|0)==0){de=H;_e=H}else{he=H-ce+1|0;pe=o[M>>2]|0;me=ce+H|0;ce=o[l>>2]|0;de=(me|0)>(ce|0)?ce:me;_e=(he|0)<(pe|0)?pe:he}Rn[fe&7](ae,R,_e,de,z,o[ue+32>>2]|0,o[y>>2]|0,n,T,r,f,o[L>>2]|0,ne,+u[X>>2],0);Lr(R,-32.0e3,32.0e3,o[y>>2]|0);N=+u[j>>2];if(N<0.0){Ee=-0.0-N}else{Ee=N}N=+u[T>>2];we=N;if(N>0.0){be=we}else{be=we*-.5}we=+u[K>>2];N=we;if(we>0.0){Se=N}else{Se=N*-.5}N=Ee+be+Se;ke=E+N;ue=N>b;do{if(ue){ae=o[n>>2]|0;fe=(ee<<1)-ae|0;if((((fe|0)<0?-fe|0:fe)|0)<=2){C=1060;break}fe=(ee*3|0)-ae|0;if((((fe|0)<0?-fe|0:fe)|0)<=3){C=1060;break}fe=(ee<<2)-ae|0;if((((fe|0)<0?-fe|0:fe)|0)>4){ge=ae;C=1069}else{C=1060}}else{C=1060}}while(0);e:do{if((C|0)==1060){C=0;we=N;ye=b;do{if(we>ye*.6){ae=o[n>>2]|0;fe=ee-(ae<<1)|0;if((((fe|0)<0?-fe|0:fe)|0)<3){Me=ae;break}fe=(ae*-3|0)+ee|0;if((((fe|0)<0?-fe|0:fe)|0)<4){Me=ae;break}fe=ee-(ae<<2)|0;if((((fe|0)<0?-fe|0:fe)|0)<5){Me=ae}else{C=1064}}else{C=1064}}while(0);do{if((C|0)==1064){C=0;if(we*.67<=ye){Fe=ee;Ae=b;break e}ae=o[n>>2]|0;fe=(ee<<1)-ae|0;if((((fe|0)<0?-fe|0:fe)|0)<3){Me=ae;break}fe=(ee*3|0)-ae|0;if((((fe|0)<0?-fe|0:fe)|0)<4){Me=ae;break}fe=(ee<<2)-ae|0;if((((fe|0)<0?-fe|0:fe)|0)<5){Me=ae}else{Fe=ee;Ae=b;break e}}}while(0);if(ue){ge=Me;C=1069}else{Fe=Me;Ae=b}}}while(0);if((C|0)==1069){C=0;Fe=ge;Ae=N}Zi(Y|0,0,o[y>>2]<<2|0);ue=o[(o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0)+8>>2]|0;if((ue|0)==3){Oe=B*+u[6896+((yr(r,3)|0)<<2)>>2]}else if((ue|0)==1){Oe=B*+u[6936+((yr(r,1)|0)<<2)>>2]}else{Oe=B}ue=o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0;ae=o[ue+40>>2]|0;if((ae|0)==0){C=1074;break}kn[ae&7](d,o[ue+44>>2]|0,o[y>>2]|0,r,f,G);Hr(d,d,Oe,o[y>>2]|0);if((o[(o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0)+12>>2]|0)!=0){ue=o[y>>2]|0;ae=qe()|0;fe=c;c=c+(ue*4|0)|0;c=c+7&-8;ue=o[y>>2]|0;Zi(fe|0,0,ue<<2|0);he=o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0;kn[o[he+40>>2]&7](fe,o[he+44>>2]|0,ue,r,f,G);Hr(fe,fe,Oe*.4545449912548065,o[y>>2]|0);ue=o[y>>2]|0;if((ue|0)>0){he=0;do{pe=d+(he<<2)|0;u[pe>>2]=+u[pe>>2]+ +u[fe+(he<<2)>>2];he=he+1|0}while((he|0)<(ue|0))}Be(ae|0)}ue=o[y>>2]|0;if((ue|0)>0){he=0;while(1){u[oe+(he+ne<<2)>>2]=+u[R+(he<<2)>>2]+ +u[d+(he<<2)>>2];fe=he+1|0;pe=o[y>>2]|0;if((fe|0)<(pe|0)){he=fe}else{Re=pe;break}}}else{Re=ue}if((le|0)!=0&(Re|0)>0){he=0;while(1){u[le+(he<<2)>>2]=+u[d+(he<<2)>>2];ae=he+1|0;pe=o[y>>2]|0;if((ae|0)<(pe|0)){he=ae}else{Te=pe;break}}}else{Te=Re}do{if((o[h>>2]|0)==1){Zi(se|0,0,Te<<2|0);he=o[W>>2]|0;ue=o[y>>2]|0;if((he|0)<(ue|0)){pe=he;ae=ue;while(1){if((pe|0)>-1){u[oe+(pe+ne<<2)>>2]=S*+V(w);Ne=o[W>>2]|0;Pe=o[y>>2]|0}else{Ne=pe;Pe=ae}fe=Ne+H|0;o[W>>2]=fe;if((fe|0)<(Pe|0)){pe=fe;ae=Pe}else{xe=fe;Ce=Pe;break}}}else{xe=he;Ce=ue}o[W>>2]=xe-Ce;if((Ce|0)>0){De=0}else{Ie=Ce;break}while(1){ae=oe+(De+ne<<2)|0;N=+u[ae>>2];pe=d+(De<<2)|0;u[ae>>2]=N*.699999988079071+ +u[Q>>2]*.30000001192092896+(k*+u[pe>>2]-v*+u[Z>>2]);u[Q>>2]=N;u[Z>>2]=+u[pe>>2];N=+u[$>>2]*.800000011920929+ +u[ae>>2]*.20000000298023224;u[$>>2]=N;u[ae>>2]=+u[ae>>2]-N;ae=De+1|0;pe=o[y>>2]|0;if((ae|0)<(pe|0)){De=ae}else{Ie=pe;break}}}else{Ie=Te}}while(0);ne=te+1|0;if((ne|0)<(o[q>>2]|0)){E=ke;b=Ae;ee=Fe;te=ne;ie=Ie}else{C=1091;break}}if((C|0)==1046){bt(12880,1321);return 0}else if((C|0)==1074){bt(12800,1397);return 0}else if((C|0)==1091){Le=ke*.25;He=Fe;break}}else{Le=0.0;He=40}}while(0);Fe=o[O>>2]|0;Ie=c;c=c+(Fe*4|0)|0;c=c+7&-8;do{if((o[e+136>>2]|0)==0){C=1096}else{ke=+u[(o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0)+48>>2];if(ke<=0.0){C=1096;break}if((o[L>>2]|0)!=0){C=1096;break}Te=e+52|0;De=o[y>>2]|0;d=e+60|0;Jr((o[Te>>2]|0)+(-De<<2)|0,s,o[d>>2]|0,Fe,De<<1,He,40,ke,f);De=o[y>>2]|0;Ce=De<<1;Jr((o[Te>>2]|0)+(De<<2)|0,s+(Ce<<2)|0,o[d>>2]|0,o[O>>2]|0,Ce,He,40,+u[(o[(o[I>>2]|0)+(o[h>>2]<<2)>>2]|0)+48>>2],f)}}while(0);if((C|0)==1096){C=(o[e+52>>2]|0)+(-(o[y>>2]|0)<<2)|0;h=o[D>>2]<<2;Gi(t|0,C|0,h)|0}do{if((o[L>>2]|0)!=0){h=e+52|0;ke=B/(+qr(o[h>>2]|0,o[D>>2]|0)+1.0);Ae=ke>2.0?2.0:ke;if((o[D>>2]|0)>0){Ue=0}else{break}do{C=(o[h>>2]|0)+(Ue<<2)|0;u[C>>2]=Ae*+u[C>>2];u[s+(Ue<<2)>>2]=+u[(o[h>>2]|0)+(Ue-(o[y>>2]|0)<<2)>>2];Ue=Ue+1|0}while((Ue|0)<(o[D>>2]|0))}}while(0);Ue=o[q>>2]|0;if((Ue|0)>0){h=e+56|0;C=e+76|0;t=e+60|0;I=e+64|0;Fe=0;Ce=Ue;Ue=o[O>>2]|0;while(1){d=s+((re(o[y>>2]|0,Fe)|0)<<2)|0;nt(o[h>>2]|0,F,Ie,Ue,Fe,Ce);it(Ie,o[O>>2]|0,.0020000000949949026);tt(Ie,U,o[O>>2]|0,f);De=o[O>>2]|0;if((De|0)>0){Te=0;Ae=1.0;while(1){ke=Ae+(+u[U+((Te|1)<<2)>>2]-+u[U+(Te<<2)>>2]);xe=Te+2|0;if((xe|0)<(De|0)){Te=xe;Ae=ke}else{ze=ke;break}}}else{ze=1.0}u[(o[C>>2]|0)+(Fe<<2)>>2]=ze;Xr(d,o[t>>2]|0,d,o[y>>2]|0,o[O>>2]|0,o[I>>2]|0,f);Te=o[O>>2]|0;if((Te|0)>0){De=0;while(1){u[(o[t>>2]|0)+(De<<2)>>2]=+u[U+(De<<2)>>2];xe=De+1|0;Pe=o[O>>2]|0;if((xe|0)<(Pe|0)){De=xe}else{Ve=Pe;break}}}else{Ve=Te}De=Fe+1|0;d=o[q>>2]|0;if((De|0)<(d|0)){Fe=De;Ce=d;Ue=Ve}else{break}}}if((o[e+504>>2]|0)!=0){Br(s,s,o[D>>2]|0,(o[e+500>>2]|0)!=0?3:1,e+68|0)}ze=B+1.0;u[e+84>>2]=ze;D=e+88|0;Ae=+u[D>>2]*.9900000095367432;ke=Ae>ze?Ae:ze;u[D>>2]=ke;s=e+92|0;Ae=+u[s>>2]*1.0099999904632568+1.0;Oe=Ae<ze?Ae:ze;u[s>>2]=Oe;ze=Oe+1.0;if(ke<ze){u[D>>2]=ze}if((o[O>>2]|0)>0){D=e+56|0;s=0;do{u[(o[D>>2]|0)+(s<<2)>>2]=+u[F+(s<<2)>>2];s=s+1|0}while((s|0)<(o[O>>2]|0))}o[m>>2]=0;o[L>>2]=0;o[e+96>>2]=He;u[e+100>>2]=Le;He=e+116|0;L=o[He>>2]|0;o[He>>2]=L+1;u[e+104+(L<<2)>>2]=Le;if((o[He>>2]|0)>2){o[He>>2]=0}u[e+40>>2]=B;Be(g|0);x=0;c=i;return x|0}function gt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0,l=0,f=0,d=0,_=0,h=0,m=0,E=0,w=0,b=0,S=0.0,v=0,k=0;i=c;c=c+40|0;n=i|0;a=i+8|0;s=i+16|0;l=i+24|0;f=i+32|0;switch(r|0){case 8:case 6:{d=o[t>>2]|0;o[e+212>>2]=d;o[e+216>>2]=d;_=0;c=i;return _|0};case 17:{o[t>>2]=o[e+192>>2];_=0;c=i;return _|0};case 18:{o[l>>2]=10;d=o[t>>2]|0;h=l;m=f;while(1){Gt(e,4,h)|0;Gt(e,19,m)|0;if((o[f>>2]|0)<=(d|0)){_=0;E=1227;break}w=o[l>>2]|0;o[l>>2]=w-1;if((w|0)<=0){_=0;E=1232;break}}if((E|0)==1227){c=i;return _|0}else if((E|0)==1232){c=i;return _|0}break};case 12:{o[e+156>>2]=o[t>>2];_=0;c=i;return _|0};case 101:{E=e+16|0;if((o[E>>2]|0)<=0){_=0;c=i;return _|0}l=e+80|0;d=e+12|0;f=t;m=0;while(1){h=o[d>>2]|0;u[f+(m<<2)>>2]=+qr((o[l>>2]|0)+((re(h,m)|0)<<2)|0,h);h=m+1|0;if((h|0)<(o[E>>2]|0)){m=h}else{_=0;break}}c=i;return _|0};case 34:{o[e+168>>2]=o[t>>2];_=0;c=i;return _|0};case 35:{o[t>>2]=o[e+168>>2];_=0;c=i;return _|0};case 42:{o[e+160>>2]=o[t>>2];_=0;c=i;return _|0};case 43:{o[t>>2]=o[e+160>>2];_=0;c=i;return _|0};case 44:{o[e+224>>2]=o[t>>2];_=0;c=i;return _|0};case 45:{o[t>>2]=o[e+224>>2];_=0;c=i;return _|0};case 100:{m=t;E=e+16|0;if((o[E>>2]|0)<=0){_=0;c=i;return _|0}l=e+136|0;f=0;while(1){u[m+(f<<2)>>2]=+u[(o[l>>2]|0)+(f<<2)>>2];d=f+1|0;if((d|0)<(o[E>>2]|0)){f=d}else{_=0;break}}c=i;return _|0};case 29:{u[t>>2]=+u[e+152>>2];_=0;c=i;return _|0};case 4:{f=o[t>>2]|0;E=(f|0)<0?0:f;f=o[(o[o[e>>2]>>2]|0)+100+(((E|0)>10?10:E)<<2)>>2]|0;o[e+212>>2]=f;o[e+216>>2]=f;_=0;c=i;return _|0};case 15:{u[t>>2]=+u[e+148>>2];_=0;c=i;return _|0};case 104:{o[e+140>>2]=t;_=0;c=i;return _|0};case 105:{o[e+220>>2]=o[t>>2];_=0;c=i;return _|0};case 106:{o[t>>2]=o[e+68>>2];_=0;c=i;return _|0};case 9:case 7:{o[t>>2]=o[e+212>>2];_=0;c=i;return _|0};case 39:{o[t>>2]=(o[e+20>>2]|0)-(o[e+8>>2]|0);_=0;c=i;return _|0};case 40:{f=o[t>>2]|0;E=e+200|0;o[E>>2]=f;if((f|0)<=100){_=0;c=i;return _|0}o[E>>2]=100;_=0;c=i;return _|0};case 41:{o[t>>2]=o[e+200>>2];_=0;c=i;return _|0};case 32:{E=t;f=o[E>>2]|0;o[e+176>>2]=f;l=(f|0)!=0;o[e+156>>2]=l&1;if(!l){_=0;c=i;return _|0}o[n>>2]=10;l=o[E>>2]|0;E=n;f=a;while(1){Gt(e,4,E)|0;Gt(e,19,f)|0;m=o[n>>2]|0;if((o[a>>2]|0)<=(l|0)){b=m;break}d=m-1|0;o[n>>2]=d;if((m|0)<=0){b=d;break}}S=+(b|0);u[s>>2]=S<0.0?0.0:S;Gt(e,14,s)|0;u[e+188>>2]=0.0;u[e+180>>2]=0.0;u[e+184>>2]=0.0;_=0;c=i;return _|0};case 3:{o[t>>2]=o[e+8>>2];_=0;c=i;return _|0};case 30:{o[e+164>>2]=o[t>>2];_=0;c=i;return _|0};case 25:{o[t>>2]=o[e+196>>2];_=0;c=i;return _|0};case 26:{o[e+40>>2]=1;o[e+4>>2]=1;s=e+24|0;b=o[s>>2]|0;do{if((b|0)>0){n=e+100|0;l=0;a=b;while(1){f=l+1|0;u[(o[n>>2]|0)+(l<<2)>>2]=+(f|0)*3.1415927410125732/+(a+1|0);v=o[s>>2]|0;if((f|0)<(v|0)){l=f;a=v}else{break}}if((v|0)<=0){break}a=e+120|0;l=e+108|0;n=e+116|0;f=e+112|0;E=0;do{u[(o[a>>2]|0)+(E<<2)>>2]=0.0;u[(o[l>>2]|0)+(E<<2)>>2]=0.0;u[(o[n>>2]|0)+(E<<2)>>2]=0.0;u[(o[f>>2]|0)+(E<<2)>>2]=0.0;E=E+1|0}while((E|0)<(o[s>>2]|0))}}while(0);s=e+8|0;v=o[s>>2]|0;b=e+32|0;if((v+1+(o[b>>2]|0)|0)>0){E=e+84|0;f=e+76|0;n=0;while(1){u[(o[E>>2]|0)+(n<<2)>>2]=0.0;u[(o[f>>2]|0)+(n<<2)>>2]=0.0;l=n+1|0;a=o[s>>2]|0;if((l|0)<(a+1+(o[b>>2]|0)|0)){n=l}else{k=a;break}}}else{k=v}v=e+20|0;if(((o[v>>2]|0)-k|0)<=0){_=0;c=i;return _|0}k=e+72|0;n=0;while(1){u[(o[k>>2]|0)+(n<<2)>>2]=0.0;b=n+1|0;if((b|0)<((o[v>>2]|0)-(o[s>>2]|0)|0)){n=b}else{_=0;break}}c=i;return _|0};case 14:{u[e+148>>2]=+u[t>>2];_=0;c=i;return _|0};case 31:{o[t>>2]=o[e+164>>2];_=0;c=i;return _|0};case 19:{n=o[(o[e+208>>2]|0)+(o[e+212>>2]<<2)>>2]|0;s=o[e+196>>2]|0;if((n|0)==0){o[t>>2]=(s*5|0|0)/(o[e+8>>2]|0)|0;_=0;c=i;return _|0}else{v=re(o[n+52>>2]|0,s)|0;o[t>>2]=(v|0)/(o[e+8>>2]|0)|0;_=0;c=i;return _|0}break};case 24:{o[e+196>>2]=o[t>>2];_=0;c=i;return _|0};case 13:{o[t>>2]=o[e+156>>2];_=0;c=i;return _|0};case 33:{o[t>>2]=o[e+176>>2];_=0;c=i;return _|0};case 36:{o[e+204>>2]=o[t>>2];_=0;c=i;return _|0};case 37:{o[t>>2]=o[e+204>>2];_=0;c=i;return _|0};case 16:{v=o[t>>2]|0;t=e+192|0;o[t>>2]=v;if((v|0)>=0){_=0;c=i;return _|0}o[t>>2]=0;_=0;c=i;return _|0};default:{ve(o[p>>2]|0,12680,(t=c,c=c+16|0,o[t>>2]=12712,o[t+8>>2]=r,t)|0)|0;c=t;_=-1;c=i;return _|0}}return 0}function yt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0,l=0,f=0.0,d=0.0,_=0,h=0,m=0;i=c;switch(r|0){case 19:{n=o[(o[e+128>>2]|0)+(o[e+132>>2]<<2)>>2]|0;a=o[e+36>>2]|0;if((n|0)==0){o[t>>2]=(a*5|0|0)/(o[e+12>>2]|0)|0;s=0;c=i;return s|0}else{l=re(o[n+52>>2]|0,a)|0;o[t>>2]=(l|0)/(o[e+12>>2]|0)|0;s=0;c=i;return s|0}break};case 24:{o[e+36>>2]=o[t>>2];s=0;c=i;return s|0};case 47:{f=+u[e+92>>2];d=+$(+u[e+84>>2]/f)/+$(+u[e+88>>2]/f);f=d>1.0?1.0:d;o[t>>2]=f>0.0?~~(f*100.0):0;s=0;c=i;return s|0};case 100:{l=t;a=e+20|0;if((o[a>>2]|0)<=0){s=0;c=i;return s|0}n=e+76|0;_=0;while(1){u[l+(_<<2)>>2]=+u[(o[n>>2]|0)+(_<<2)>>2];h=_+1|0;if((h|0)<(o[a>>2]|0)){_=h}else{s=0;break}}c=i;return s|0};case 20:{_=t;a=e+140|0;o[a+((o[_>>2]|0)*20|0)+4>>2]=o[t+4>>2];o[a+((o[_>>2]|0)*20|0)+8>>2]=o[t+8>>2];n=o[_>>2]|0;o[a+(n*20|0)>>2]=n;s=0;c=i;return s|0};case 8:case 6:{o[e+132>>2]=o[t>>2];s=0;c=i;return s|0};case 36:{o[e+124>>2]=o[t>>2];s=0;c=i;return s|0};case 106:{o[t>>2]=o[e+44>>2];s=0;c=i;return s|0};case 26:{n=e+24|0;if((o[n>>2]|0)>0){a=e+64|0;_=0;do{u[(o[a>>2]|0)+(_<<2)>>2]=0.0;_=_+1|0}while((_|0)<(o[n>>2]|0))}n=e+12|0;_=e+32|0;if(((o[n>>2]|0)+1+(o[_>>2]|0)|0)<=0){s=0;c=i;return s|0}a=e+48|0;l=0;while(1){u[(o[a>>2]|0)+(l<<2)>>2]=0.0;h=l+1|0;if((h|0)<((o[n>>2]|0)+1+(o[_>>2]|0)|0)){l=h}else{s=0;break}}c=i;return s|0};case 101:{l=e+20|0;if((o[l>>2]|0)<=0){s=0;c=i;return s|0}_=e+52|0;n=e+16|0;a=t;h=0;while(1){m=o[n>>2]|0;u[a+(h<<2)>>2]=+qr((o[_>>2]|0)+((re(m,h)|0)<<2)|0,m);m=h+1|0;if((m|0)<(o[l>>2]|0)){h=m}else{s=0;break}}c=i;return s|0};case 9:case 7:{o[t>>2]=o[e+132>>2];s=0;c=i;return s|0};case 0:{o[e+136>>2]=o[t>>2];s=0;c=i;return s|0};case 22:{o[e+464>>2]=o[t+4>>2];o[e+468>>2]=o[t+8>>2];o[e+460>>2]=o[t>>2];s=0;c=i;return s|0};case 3:{o[t>>2]=o[e+12>>2];s=0;c=i;return s|0};case 105:{o[e+500>>2]=o[t>>2];s=0;c=i;return s|0};case 37:{o[t>>2]=o[e+124>>2];s=0;c=i;return s|0};case 39:{o[t>>2]=o[e+16>>2];s=0;c=i;return s|0};case 1:{o[t>>2]=o[e+136>>2];s=0;c=i;return s|0};case 103:{o[t>>2]=o[e+496>>2];s=0;c=i;return s|0};case 25:{o[t>>2]=o[e+36>>2];s=0;c=i;return s|0};case 44:{o[e+504>>2]=o[t>>2];s=0;c=i;return s|0};case 45:{o[t>>2]=o[e+504>>2];s=0;c=i;return s|0};case 104:{o[e+80>>2]=t;s=0;c=i;return s|0};default:{ve(o[p>>2]|0,12680,(t=c,c=c+16|0,o[t>>2]=12712,o[t+8>>2]=r,t)|0)|0;c=t;s=-1;c=i;return s|0}}return 0}function Mt(e,r,t,n){e=e|0;r=r|0;t=t|0;n=n|0;var o=0,a=0,s=0,l=0,f=0,d=0.0,_=0,h=0,p=0,m=0.0,E=0.0,w=0.0,b=0,S=0,v=0,k=0,g=0,y=0.0,M=0,F=0,A=0.0,O=0.0,R=0,T=0,N=0.0,P=0.0,x=0.0,C=0.0,D=0.0,I=0.0,L=0.0,B=0.0,H=0.0,U=0.0,z=0,q=0,V=0,X=0,j=0,K=0;o=c;c=c+40|0;a=o|0;s=(t|0)>0;do{if(s){l=0;do{u[r+(l<<2)>>2]=+u[e+(l<<2)>>2];l=l+1|0}while((l|0)<(t|0));if(!s){f=0;d=999999986991104.0;_=0;h=1326;break}l=t-1|0;p=0;while(1){m=+u[r+(p<<2)>>2];if((p|0)==0){E=m}else{E=m-+u[r+(p-1<<2)>>2]}if((p|0)==(l|0)){w=3.141592653589793-m;b=t}else{S=p+1|0;w=+u[r+(S<<2)>>2]-m;b=S}u[a+(p<<2)>>2]=10.0/((w<E?w:E)+.04);if((b|0)<(t|0)){p=b}else{break}}if(s){v=0}else{f=0;d=999999986991104.0;_=0;h=1326;break}do{p=r+(v<<2)|0;u[p>>2]=+u[p>>2]-(+(v|0)*.25+.25);v=v+1|0}while((v|0)<(t|0));if(s){k=0}else{f=0;d=999999986991104.0;_=0;h=1326;break}do{p=r+(k<<2)|0;u[p>>2]=+u[p>>2]*256.0;k=k+1|0}while((k|0)<(t|0));if(s){g=0;y=999999986991104.0;M=0;F=12e3}else{f=0;d=999999986991104.0;_=0;h=1326;break}while(1){p=0;m=0.0;l=F;while(1){A=+u[r+(p<<2)>>2]-+(i[l]|0);O=m+A*A;S=p+1|0;if((S|0)<(t|0)){p=S;m=O;l=l+1|0}else{break}}l=O<y;p=l?g:M;S=g+1|0;if((S|0)<64){g=S;y=l?O:y;M=p;F=F+t|0}else{R=p;break}}}else{f=0;d=999999986991104.0;_=0;h=1326}}while(0);if((h|0)==1326){while(1){h=0;F=d>0.0;M=F?f:_;g=f+1|0;if((g|0)<64){f=g;d=F?0.0:d;_=M;h=1326}else{R=M;break}}}do{if(s){h=re(R,t)|0;_=0;do{f=r+(_<<2)|0;u[f>>2]=+u[f>>2]-+(i[12e3+(_+h)|0]|0);_=_+1|0}while((_|0)<(t|0));kr(n,R,6);if(s){T=0}else{break}do{_=r+(T<<2)|0;u[_>>2]=+u[_>>2]*2.0;T=T+1|0}while((T|0)<(t|0))}else{kr(n,R,6)}}while(0);d=+u[r>>2];y=+u[a>>2];R=r+4|0;O=+u[R>>2];E=+u[a+4>>2];T=r+8|0;w=+u[T>>2];m=+u[a+8>>2];_=r+12|0;A=+u[_>>2];N=+u[a+12>>2];h=r+16|0;P=+u[h>>2];x=+u[a+16>>2];f=0;C=999999986991104.0;M=0;F=11040;while(1){D=d-+(i[F]|0);I=O-+(i[F+1|0]|0);L=w-+(i[F+2|0]|0);B=A-+(i[F+3|0]|0);H=P-+(i[F+4|0]|0);U=y*D*D+0.0+E*I*I+m*L*L+N*B*B+x*H*H;g=U<C;z=g?f:M;k=f+1|0;if((k|0)<64){f=k;C=g?U:C;M=z;F=F+5|0}else{break}}F=z*5|0;u[r>>2]=d-+(i[11040+F|0]|0);u[R>>2]=O-+(i[F+11041|0]|0);u[T>>2]=w-+(i[F+11042|0]|0);u[_>>2]=A-+(i[F+11043|0]|0);u[h>>2]=P-+(i[F+11044|0]|0);kr(n,z,6);P=+u[r>>2]*2.0;u[r>>2]=P;A=+u[R>>2]*2.0;u[R>>2]=A;w=+u[T>>2]*2.0;u[T>>2]=w;O=+u[_>>2]*2.0;u[_>>2]=O;d=+u[h>>2]*2.0;u[h>>2]=d;z=0;C=999999986991104.0;F=0;M=10720;while(1){U=P-+(i[M]|0);H=A-+(i[M+1|0]|0);B=w-+(i[M+2|0]|0);L=O-+(i[M+3|0]|0);I=d-+(i[M+4|0]|0);D=y*U*U+0.0+E*H*H+m*B*B+N*L*L+x*I*I;f=D<C;q=f?z:F;g=z+1|0;if((g|0)<64){z=g;C=f?D:C;F=q;M=M+5|0}else{break}}M=q*5|0;u[r>>2]=P-+(i[10720+M|0]|0);u[R>>2]=A-+(i[M+10721|0]|0);u[T>>2]=w-+(i[M+10722|0]|0);u[_>>2]=O-+(i[M+10723|0]|0);u[h>>2]=d-+(i[M+10724|0]|0);kr(n,q,6);q=r+20|0;d=+u[q>>2];O=+u[a+20>>2];M=r+24|0;w=+u[M>>2];A=+u[a+24>>2];h=r+28|0;P=+u[h>>2];C=+u[a+28>>2];_=r+32|0;x=+u[_>>2];N=+u[a+32>>2];T=r+36|0;m=+u[T>>2];E=+u[a+36>>2];a=0;y=999999986991104.0;R=0;F=11680;while(1){D=d-+(i[F]|0);I=w-+(i[F+1|0]|0);L=P-+(i[F+2|0]|0);B=x-+(i[F+3|0]|0);H=m-+(i[F+4|0]|0);U=O*D*D+0.0+A*I*I+C*L*L+N*B*B+E*H*H;z=U<y;V=z?a:R;f=a+1|0;if((f|0)<64){a=f;y=z?U:y;R=V;F=F+5|0}else{break}}F=V*5|0;u[q>>2]=d-+(i[11680+F|0]|0);u[M>>2]=w-+(i[F+11681|0]|0);u[h>>2]=P-+(i[F+11682|0]|0);u[_>>2]=x-+(i[F+11683|0]|0);u[T>>2]=m-+(i[F+11684|0]|0);kr(n,V,6);m=+u[q>>2]*2.0;u[q>>2]=m;x=+u[M>>2]*2.0;u[M>>2]=x;P=+u[h>>2]*2.0;u[h>>2]=P;w=+u[_>>2]*2.0;u[_>>2]=w;d=+u[T>>2]*2.0;u[T>>2]=d;V=0;y=999999986991104.0;F=0;R=11360;while(1){U=m-+(i[R]|0);H=x-+(i[R+1|0]|0);B=P-+(i[R+2|0]|0);L=w-+(i[R+3|0]|0);I=d-+(i[R+4|0]|0);D=O*U*U+0.0+A*H*H+C*B*B+N*L*L+E*I*I;a=D<y;X=a?V:F;z=V+1|0;if((z|0)<64){V=z;y=a?D:y;F=X;R=R+5|0}else{break}}R=X*5|0;u[q>>2]=m-+(i[11360+R|0]|0);u[M>>2]=x-+(i[R+11361|0]|0);u[h>>2]=P-+(i[R+11362|0]|0);u[_>>2]=w-+(i[R+11363|0]|0);u[T>>2]=d-+(i[R+11364|0]|0);kr(n,X,6);if(s){j=0}else{c=o;return}do{X=r+(j<<2)|0;u[X>>2]=+u[X>>2]*97656.0e-8;j=j+1|0}while((j|0)<(t|0));if(s){K=0}else{c=o;return}do{s=r+(K<<2)|0;u[s>>2]=+u[e+(K<<2)>>2]-+u[s>>2];K=K+1|0}while((K|0)<(t|0));c=o;return}function Ft(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,a=0,s=0,l=0,f=0,c=0,d=0,_=0;if((r|0)>0){n=0;do{u[e+(n<<2)>>2]=+(n|0)*.25+.25;n=n+1|0}while((n|0)<(r|0))}r=(yr(t,6)|0)*10|0;u[e>>2]=+u[e>>2]+ +(i[12e3+r|0]|0)*.0039062;n=e+4|0;u[n>>2]=+u[n>>2]+ +(i[12e3+(r|1)|0]|0)*.0039062;o=e+8|0;u[o>>2]=+u[o>>2]+ +(i[r+12002|0]|0)*.0039062;a=e+12|0;u[a>>2]=+u[a>>2]+ +(i[r+12003|0]|0)*.0039062;s=e+16|0;u[s>>2]=+u[s>>2]+ +(i[r+12004|0]|0)*.0039062;l=e+20|0;u[l>>2]=+u[l>>2]+ +(i[r+12005|0]|0)*.0039062;f=e+24|0;u[f>>2]=+u[f>>2]+ +(i[r+12006|0]|0)*.0039062;c=e+28|0;u[c>>2]=+u[c>>2]+ +(i[r+12007|0]|0)*.0039062;d=e+32|0;u[d>>2]=+u[d>>2]+ +(i[r+12008|0]|0)*.0039062;_=e+36|0;u[_>>2]=+u[_>>2]+ +(i[r+12009|0]|0)*.0039062;r=(yr(t,6)|0)*5|0;u[e>>2]=+u[e>>2]+ +(i[11040+r|0]|0)*.0019531;u[n>>2]=+u[n>>2]+ +(i[r+11041|0]|0)*.0019531;u[o>>2]=+u[o>>2]+ +(i[r+11042|0]|0)*.0019531;u[a>>2]=+u[a>>2]+ +(i[r+11043|0]|0)*.0019531;u[s>>2]=+u[s>>2]+ +(i[r+11044|0]|0)*.0019531;r=(yr(t,6)|0)*5|0;u[e>>2]=+u[e>>2]+ +(i[10720+r|0]|0)*97656.0e-8;u[n>>2]=+u[n>>2]+ +(i[r+10721|0]|0)*97656.0e-8;u[o>>2]=+u[o>>2]+ +(i[r+10722|0]|0)*97656.0e-8;u[a>>2]=+u[a>>2]+ +(i[r+10723|0]|0)*97656.0e-8;u[s>>2]=+u[s>>2]+ +(i[r+10724|0]|0)*97656.0e-8;r=(yr(t,6)|0)*5|0;u[l>>2]=+u[l>>2]+ +(i[11680+r|0]|0)*.0019531;u[f>>2]=+u[f>>2]+ +(i[r+11681|0]|0)*.0019531;u[c>>2]=+u[c>>2]+ +(i[r+11682|0]|0)*.0019531;u[d>>2]=+u[d>>2]+ +(i[r+11683|0]|0)*.0019531;u[_>>2]=+u[_>>2]+ +(i[r+11684|0]|0)*.0019531;r=(yr(t,6)|0)*5|0;u[l>>2]=+u[l>>2]+ +(i[11360+r|0]|0)*97656.0e-8;u[f>>2]=+u[f>>2]+ +(i[r+11361|0]|0)*97656.0e-8;u[c>>2]=+u[c>>2]+ +(i[r+11362|0]|0)*97656.0e-8;u[d>>2]=+u[d>>2]+ +(i[r+11363|0]|0)*97656.0e-8;u[_>>2]=+u[_>>2]+ +(i[r+11364|0]|0)*97656.0e-8;return}function At(e,r,t,n){e=e|0;r=r|0;t=t|0;n=n|0;var o=0,a=0,s=0,l=0,f=0,d=0.0,_=0,h=0,p=0,m=0.0,E=0.0,w=0.0,b=0,S=0,v=0,k=0,g=0,y=0.0,M=0,F=0,A=0.0,O=0.0,R=0,T=0,N=0.0,P=0.0,x=0.0,C=0.0,D=0.0,I=0.0,L=0.0,B=0.0,H=0.0,U=0.0,z=0,q=0,V=0,X=0;o=c;c=c+40|0;a=o|0;s=(t|0)>0;do{if(s){l=0;do{u[r+(l<<2)>>2]=+u[e+(l<<2)>>2];l=l+1|0}while((l|0)<(t|0));if(!s){f=0;d=999999986991104.0;_=0;h=1370;break}l=t-1|0;p=0;while(1){m=+u[r+(p<<2)>>2];if((p|0)==0){E=m}else{E=m-+u[r+(p-1<<2)>>2]}if((p|0)==(l|0)){w=3.141592653589793-m;b=t}else{S=p+1|0;w=+u[r+(S<<2)>>2]-m;b=S}u[a+(p<<2)>>2]=10.0/((w<E?w:E)+.04);if((b|0)<(t|0)){p=b}else{break}}if(s){v=0}else{f=0;d=999999986991104.0;_=0;h=1370;break}do{p=r+(v<<2)|0;u[p>>2]=+u[p>>2]-(+(v|0)*.25+.25);v=v+1|0}while((v|0)<(t|0));if(s){k=0}else{f=0;d=999999986991104.0;_=0;h=1370;break}do{p=r+(k<<2)|0;u[p>>2]=+u[p>>2]*256.0;k=k+1|0}while((k|0)<(t|0));if(s){g=0;y=999999986991104.0;M=0;F=12e3}else{f=0;d=999999986991104.0;_=0;h=1370;break}while(1){p=0;m=0.0;l=F;while(1){A=+u[r+(p<<2)>>2]-+(i[l]|0);O=m+A*A;S=p+1|0;if((S|0)<(t|0)){p=S;m=O;l=l+1|0}else{break}}l=O<y;p=l?g:M;S=g+1|0;if((S|0)<64){g=S;y=l?O:y;M=p;F=F+t|0}else{R=p;break}}}else{f=0;d=999999986991104.0;_=0;h=1370}}while(0);if((h|0)==1370){while(1){h=0;F=d>0.0;M=F?f:_;g=f+1|0;if((g|0)<64){f=g;d=F?0.0:d;_=M;h=1370}else{R=M;break}}}do{if(s){h=re(R,t)|0;_=0;do{f=r+(_<<2)|0;u[f>>2]=+u[f>>2]-+(i[12e3+(_+h)|0]|0);_=_+1|0}while((_|0)<(t|0));kr(n,R,6);if(s){T=0}else{break}do{_=r+(T<<2)|0;u[_>>2]=+u[_>>2]*2.0;T=T+1|0}while((T|0)<(t|0))}else{kr(n,R,6)}}while(0);d=+u[r>>2];R=r+4|0;y=+u[R>>2];T=r+8|0;O=+u[T>>2];_=r+12|0;E=+u[_>>2];h=r+16|0;w=+u[h>>2];m=+u[a>>2];A=+u[a+4>>2];N=+u[a+8>>2];P=+u[a+12>>2];x=+u[a+16>>2];f=0;C=999999986991104.0;M=0;F=11040;while(1){D=d-+(i[F]|0);I=y-+(i[F+1|0]|0);L=O-+(i[F+2|0]|0);B=E-+(i[F+3|0]|0);H=w-+(i[F+4|0]|0);U=m*D*D+0.0+A*I*I+N*L*L+P*B*B+x*H*H;g=U<C;z=g?f:M;k=f+1|0;if((k|0)>=64){break}f=k;C=g?U:C;M=z;F=F+5|0}F=z*5|0;u[r>>2]=d-+(i[11040+F|0]|0);u[R>>2]=y-+(i[F+11041|0]|0);u[T>>2]=O-+(i[F+11042|0]|0);u[_>>2]=E-+(i[F+11043|0]|0);u[h>>2]=w-+(i[F+11044|0]|0);kr(n,z,6);z=r+20|0;w=+u[z>>2];E=+u[a+20>>2];F=r+24|0;O=+u[F>>2];y=+u[a+24>>2];h=r+28|0;d=+u[h>>2];C=+u[a+28>>2];_=r+32|0;x=+u[_>>2];P=+u[a+32>>2];T=r+36|0;N=+u[T>>2];A=+u[a+36>>2];a=0;m=999999986991104.0;R=0;M=11680;while(1){U=w-+(i[M]|0);H=O-+(i[M+1|0]|0);B=d-+(i[M+2|0]|0);L=x-+(i[M+3|0]|0);I=N-+(i[M+4|0]|0);D=E*U*U+0.0+y*H*H+C*B*B+P*L*L+A*I*I;f=D<m;q=f?a:R;g=a+1|0;if((g|0)<64){a=g;m=f?D:m;R=q;M=M+5|0}else{break}}M=q*5|0;u[z>>2]=w-+(i[11680+M|0]|0);u[F>>2]=O-+(i[M+11681|0]|0);u[h>>2]=d-+(i[M+11682|0]|0);u[_>>2]=x-+(i[M+11683|0]|0);u[T>>2]=N-+(i[M+11684|0]|0);kr(n,q,6);if(s){V=0}else{c=o;return}do{q=r+(V<<2)|0;u[q>>2]=+u[q>>2]*.0019531;V=V+1|0}while((V|0)<(t|0));if(s){X=0}else{c=o;return}do{s=r+(X<<2)|0;u[s>>2]=+u[e+(X<<2)>>2]-+u[s>>2];X=X+1|0}while((X|0)<(t|0));c=o;return}function Ot(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,a=0,s=0,l=0,f=0,c=0,d=0,_=0;if((r|0)>0){n=0;do{u[e+(n<<2)>>2]=+(n|0)*.25+.25;n=n+1|0}while((n|0)<(r|0))}r=(yr(t,6)|0)*10|0;u[e>>2]=+u[e>>2]+ +(i[12e3+r|0]|0)*.0039062;n=e+4|0;u[n>>2]=+u[n>>2]+ +(i[12e3+(r|1)|0]|0)*.0039062;o=e+8|0;u[o>>2]=+u[o>>2]+ +(i[r+12002|0]|0)*.0039062;a=e+12|0;u[a>>2]=+u[a>>2]+ +(i[r+12003|0]|0)*.0039062;s=e+16|0;u[s>>2]=+u[s>>2]+ +(i[r+12004|0]|0)*.0039062;l=e+20|0;u[l>>2]=+u[l>>2]+ +(i[r+12005|0]|0)*.0039062;f=e+24|0;u[f>>2]=+u[f>>2]+ +(i[r+12006|0]|0)*.0039062;c=e+28|0;u[c>>2]=+u[c>>2]+ +(i[r+12007|0]|0)*.0039062;d=e+32|0;u[d>>2]=+u[d>>2]+ +(i[r+12008|0]|0)*.0039062;_=e+36|0;u[_>>2]=+u[_>>2]+ +(i[r+12009|0]|0)*.0039062;r=(yr(t,6)|0)*5|0;u[e>>2]=+u[e>>2]+ +(i[11040+r|0]|0)*.0019531;u[n>>2]=+u[n>>2]+ +(i[r+11041|0]|0)*.0019531;u[o>>2]=+u[o>>2]+ +(i[r+11042|0]|0)*.0019531;u[a>>2]=+u[a>>2]+ +(i[r+11043|0]|0)*.0019531;u[s>>2]=+u[s>>2]+ +(i[r+11044|0]|0)*.0019531;r=(yr(t,6)|0)*5|0;u[l>>2]=+u[l>>2]+ +(i[11680+r|0]|0)*.0019531;u[f>>2]=+u[f>>2]+ +(i[r+11681|0]|0)*.0019531;u[c>>2]=+u[c>>2]+ +(i[r+11682|0]|0)*.0019531;u[d>>2]=+u[d>>2]+ +(i[r+11683|0]|0)*.0019531;u[_>>2]=+u[_>>2]+ +(i[r+11684|0]|0)*.0019531;return}function Rt(e,r,t,n){e=e|0;r=r|0;t=t|0;n=n|0;var o=0,a=0,s=0,l=0,f=0,d=0.0,_=0,h=0,p=0,m=0.0,E=0.0,w=0.0,b=0,S=0,v=0,k=0,g=0,y=0.0,M=0,F=0,A=0.0,O=0.0,R=0,T=0,N=0,P=0.0,x=0,C=0,D=0.0,I=0,L=0,B=0.0,H=0,U=0,z=0;o=c;c=c+40|0;a=o|0;s=(t|0)>0;do{if(s){l=0;do{u[r+(l<<2)>>2]=+u[e+(l<<2)>>2];l=l+1|0}while((l|0)<(t|0));if(!s){f=0;d=999999986991104.0;_=0;h=1411;break}l=t-1|0;p=0;while(1){m=+u[r+(p<<2)>>2];if((p|0)==0){E=m}else{E=m-+u[r+(p-1<<2)>>2]}if((p|0)==(l|0)){w=3.141592653589793-m;b=t}else{S=p+1|0;w=+u[r+(S<<2)>>2]-m;b=S}u[a+(p<<2)>>2]=10.0/((w<E?w:E)+.04);if((b|0)<(t|0)){p=b}else{break}}if(s){v=0}else{f=0;d=999999986991104.0;_=0;h=1411;break}do{p=r+(v<<2)|0;u[p>>2]=+u[p>>2]-(+(v|0)*.3125+.75);v=v+1|0}while((v|0)<(t|0));if(s){k=0}else{f=0;d=999999986991104.0;_=0;h=1411;break}do{p=r+(k<<2)|0;u[p>>2]=+u[p>>2]*256.0;k=k+1|0}while((k|0)<(t|0));if(s){g=0;y=999999986991104.0;M=0;F=3920}else{f=0;d=999999986991104.0;_=0;h=1411;break}while(1){p=0;m=0.0;l=F;while(1){A=+u[r+(p<<2)>>2]-+(i[l]|0);O=m+A*A;S=p+1|0;if((S|0)<(t|0)){p=S;m=O;l=l+1|0}else{break}}l=O<y;p=l?g:M;S=g+1|0;if((S|0)<64){g=S;y=l?O:y;M=p;F=F+t|0}else{R=p;break}}}else{f=0;d=999999986991104.0;_=0;h=1411}}while(0);if((h|0)==1411){while(1){h=0;F=d>0.0;M=F?f:_;g=f+1|0;if((g|0)<64){f=g;d=F?0.0:d;_=M;h=1411}else{R=M;break}}}do{if(s){_=re(R,t)|0;f=0;do{M=r+(f<<2)|0;u[M>>2]=+u[M>>2]-+(i[3920+(f+_)|0]|0);f=f+1|0}while((f|0)<(t|0));kr(n,R,6);if(s){T=0}else{N=0;P=999999986991104.0;x=0;h=1422;break}do{f=r+(T<<2)|0;u[f>>2]=+u[f>>2]*2.0;T=T+1|0}while((T|0)<(t|0));if(s){C=0;D=999999986991104.0;I=0;L=3408}else{N=0;P=999999986991104.0;x=0;h=1422;break}while(1){f=0;d=0.0;_=L;while(1){y=+u[r+(f<<2)>>2]-+(i[_]|0);B=d+ +u[a+(f<<2)>>2]*y*y;M=f+1|0;if((M|0)<(t|0)){f=M;d=B;_=_+1|0}else{break}}_=B<D;f=_?C:I;M=C+1|0;if((M|0)<64){C=M;D=_?B:D;I=f;L=L+t|0}else{H=f;break}}}else{kr(n,R,6);N=0;P=999999986991104.0;x=0;h=1422}}while(0);if((h|0)==1422){while(1){h=0;R=P>0.0;L=R?N:x;I=N+1|0;if((I|0)<64){N=I;P=R?0.0:P;x=L;h=1422}else{H=L;break}}}if(!s){kr(n,H,6);c=o;return}h=re(H,t)|0;x=0;do{N=r+(x<<2)|0;u[N>>2]=+u[N>>2]-+(i[3408+(x+h)|0]|0);x=x+1|0}while((x|0)<(t|0));kr(n,H,6);if(s){U=0}else{c=o;return}do{H=r+(U<<2)|0;u[H>>2]=+u[H>>2]*.0019531;U=U+1|0}while((U|0)<(t|0));if(s){z=0}else{c=o;return}do{s=r+(z<<2)|0;u[s>>2]=+u[e+(z<<2)>>2]-+u[s>>2];z=z+1|0}while((z|0)<(t|0));c=o;return}function Tt(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,a=0,s=0;n=(r|0)>0;do{if(n){o=0;do{u[e+(o<<2)>>2]=+(o|0)*.3125+.75;o=o+1|0}while((o|0)<(r|0));o=yr(t,6)|0;if(!n){break}a=re(o,r)|0;o=0;do{s=e+(o<<2)|0;u[s>>2]=+u[s>>2]+ +(i[3920+(o+a)|0]|0)*.0039062;o=o+1|0}while((o|0)<(r|0));o=yr(t,6)|0;if(!n){return}a=re(o,r)|0;o=0;do{s=e+(o<<2)|0;u[s>>2]=+u[s>>2]+ +(i[3408+(o+a)|0]|0)*.0019531;o=o+1|0}while((o|0)<(r|0));return}else{yr(t,6)|0}}while(0);yr(t,6)|0;return}function Nt(e){e=e|0;var r=0,t=0,i=0,n=0,a=0,s=0,l=0,f=0,d=0,_=0,h=0,p=0;r=c;c=c+8|0;t=r|0;i=Ti(172,1)|0;if((i|0)==0){n=0;c=r;return n|0}o[i>>2]=e;a=o[e>>2]|0;e=Ut(o[a>>2]|0)|0;s=i+4|0;o[s>>2]=e;o[i+48>>2]=0;l=a+4|0;o[i+8>>2]=o[l>>2]<<1;f=o[l>>2]|0;d=i+12|0;o[d>>2]=f;_=a+8|0;h=o[_>>2]|0;o[i+16>>2]=h;p=i+20|0;o[p>>2]=(o[l>>2]|0)/(o[_>>2]|0)|0;_=i+24|0;o[_>>2]=h+f;f=i+28|0;o[f>>2]=o[a+12>>2];o[i+148>>2]=1;o[i+152>>2]=a+32;h=o[a+64>>2]|0;o[i+156>>2]=h;o[i+160>>2]=h;o[t>>2]=9;h=t;Gt(e,4,h)|0;o[t>>2]=1;Gt(o[s>>2]|0,105,h)|0;u[i+36>>2]=+u[a+24>>2];u[i+40>>2]=+u[a+16>>2];u[i+44>>2]=+u[a+20>>2];o[i+32>>2]=1;o[i+52>>2]=Ti((o[_>>2]|0)-(o[d>>2]|0)<<2,1)|0;o[i+56>>2]=Ti(256,1)|0;o[i+60>>2]=Ti(256,1)|0;o[i+64>>2]=2432;o[i+68>>2]=3232;d=o[f>>2]|0;_=d<<2;a=Ti(_,1)|0;h=i+72|0;o[h>>2]=a;o[i+76>>2]=Ti(_,1)|0;o[i+80>>2]=Ti(_,1)|0;t=o[p>>2]<<2;o[i+96>>2]=Ti(t,1)|0;o[i+100>>2]=Ti(t,1)|0;o[i+104>>2]=0;o[i+84>>2]=Ti(_,1)|0;o[i+88>>2]=Ti(_,1)|0;o[i+92>>2]=Ti(_,1)|0;e:do{if((d|0)>0){_=0;t=d;p=a;while(1){e=_+1|0;u[p+(_<<2)>>2]=+(e|0)*3.1415927410125732/+(t+1|0);l=o[f>>2]|0;if((e|0)>=(l|0)){break e}_=e;t=l;p=o[h>>2]|0}}}while(0);u[i+108>>2]=8.0;o[i+112>>2]=0;o[i+116>>2]=0;o[i+120>>2]=2e4;o[i+140>>2]=0;o[i+124>>2]=0;u[i+144>>2]=0.0;o[i+164>>2]=2;h=i+168|0;f=h;Gt(o[s>>2]|0,25,h)|0;o[f>>2]=o[f>>2]<<1;n=i;c=r;return n|0}function Pt(e){e=e|0;qt(o[e+4>>2]|0);Ri(o[e+52>>2]|0);Ri(o[e+56>>2]|0);Ri(o[e+60>>2]|0);Ri(o[e+72>>2]|0);Ri(o[e+76>>2]|0);Ri(o[e+80>>2]|0);Ri(o[e+96>>2]|0);Ri(o[e+100>>2]|0);Ri(o[e+84>>2]|0);Ri(o[e+88>>2]|0);Ri(o[e+92>>2]|0);Ri(e);return}function xt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0,l=0,f=0,d=0,_=0,h=0,p=0,m=0,E=0.0,w=0.0,b=0,S=0.0,v=0,k=0,g=0,y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0,D=0,I=0,L=0,B=0,H=0,U=0,q=0,V=0,X=0.0,j=0.0,K=0.0,Y=0,G=0.0,W=0,Q=0,Z=0,J=0,ee=0,te=0,ie=0,ne=0,oe=0,ae=0,se=0,le=0,ue=0,fe=0,ce=0,de=0,_e=0,he=0,pe=0.0,me=0,Ee=0.0,we=0.0,be=0,Se=0,ve=0,ke=0,ge=0,ye=0,Me=0,Fe=0,Ae=0,Oe=0;i=c;c=c+24|0;n=i|0;a=i+8|0;s=i+16|0;l=r;r=o[e+48>>2]|0;f=o[o[e>>2]>>2]|0;d=e+12|0;_=o[d>>2]|0;h=l+(_<<2)|0;p=e+8|0;Wr(l,5776,l,h,o[p>>2]|0,64,o[e+56>>2]|0,r);m=e+112|0;if((o[m>>2]|0)==0){if((o[e+140>>2]|0)==0){E=1.0;w=1.0}else{b=1458}}else{b=1458}if((b|0)==1458){S=+qr(l,o[d>>2]|0);E=S+1.0;w=+qr(h,o[d>>2]|0)+1.0}h=e+20|0;v=c;c=c+((o[h>>2]|0)*4|0)|0;c=c+7&-8;k=e+4|0;Gt(o[k>>2]|0,104,v)|0;Xt(o[k>>2]|0,l,t)|0;g=e+24|0;y=(o[g>>2]|0)-(o[d>>2]|0)|0;M=_-y|0;_=l+(M<<2)|0;F=_;A=e+52|0;O=o[A>>2]|0;R=y<<2;Gi(F|0,O|0,R)|0;R=o[A>>2]|0;A=o[d>>2]|0;O=l+(A+M<<2)|0;F=(o[g>>2]|0)-A<<2;Gi(R|0,O|0,F)|0;F=o[h>>2]|0;O=c;c=c+(F*4|0)|0;c=c+7&-8;R=c;c=c+(F*4|0)|0;c=c+7&-8;Gt(o[k>>2]|0,100,O)|0;Gt(o[k>>2]|0,101,R)|0;Gt(o[k>>2]|0,9,n)|0;o[n>>2]=(o[n>>2]|0)==0;F=e+28|0;A=o[F>>2]|0;y=c;c=c+(A*4|0)|0;c=c+7&-8;T=c;c=c+(A*4|0)|0;c=c+7&-8;N=c;c=c+(A*4|0)|0;c=c+7&-8;P=c;c=c+(A*4|0)|0;c=c+7&-8;x=c;c=c+(A*4|0)|0;c=c+7&-8;C=c;c=c+(A*4|0)|0;c=c+7&-8;D=c;c=c+(A*4|0)|0;c=c+7&-8;I=c;c=c+(A*4|0)|0;c=c+7&-8;L=qe()|0;B=c;c=c+((A+1|0)*4|0)|0;c=c+7&-8;A=o[g>>2]|0;g=c;c=c+(A*4|0)|0;c=c+7&-8;H=e+16|0;U=(A|0)>0;do{if((o[H>>2]|0)==80){if(!U){break}q=o[e+64>>2]|0;V=0;do{u[g+(V<<2)>>2]=+u[l+(V+M<<2)>>2]*+u[q+(V>>1<<2)>>2];V=V+1|0}while((V|0)<(A|0))}else{if(!U){break}V=o[e+64>>2]|0;q=0;do{u[g+(q<<2)>>2]=+u[l+(q+M<<2)>>2]*+u[V+(q<<2)>>2];q=q+1|0}while((q|0)<(A|0))}}while(0);et(g,B,(o[F>>2]|0)+1|0,A);S=+u[B>>2];X=S+S*+u[e+36>>2];u[B>>2]=X;A=o[F>>2]|0;g=A+1|0;e:do{if((g|0)>0){U=o[e+68>>2]|0;q=0;S=X;while(1){u[B+(q<<2)>>2]=S*+u[U+(q<<2)>>2];V=q+1|0;if((V|0)>=(g|0)){break e}q=V;S=+u[B+(V<<2)>>2]}}}while(0);+$r(y,B,A);Be(L|0);L=rt(y,o[F>>2]|0,x,10,.20000000298023224,r)|0;A=o[F>>2]|0;do{if((L|0)!=(A|0)){B=rt(y,A,x,10,.05000000074505806,r)|0;g=o[F>>2]|0;if(!((B|0)!=(g|0)&(g|0)>0)){break}B=o[e+72>>2]|0;q=0;do{u[x+(q<<2)>>2]=+u[B+(q<<2)>>2];q=q+1|0}while((q|0)<(g|0))}}while(0);if((o[m>>2]|0)==0){if((o[e+140>>2]|0)!=0){b=1476}}else{b=1476}do{if((b|0)==1476){if((o[n>>2]|0)!=0){break}A=e+124|0;do{if((o[A>>2]|0)!=0){X=+u[e+128>>2];do{if(+u[e+132>>2]*X>0.0){S=X*-1.0e-5/(+u[e+136>>2]+1.0);j=S>.1?.10000000149011612:S;if(j>=-.1){K=j;break}K=-.10000000149011612}else{K=0.0}}while(0);y=e+108|0;X=K+ +u[y>>2];j=X>10.0?10.0:X;u[y>>2]=j;if(j>=0.0){break}u[y>>2]=0.0}}while(0);j=+$(w/E)*2.0;y=o[k>>2]|0;L=e+144|0;g=L;Gt(y,29,L)|0;X=j<-4.0?-4.0:j;if((o[m>>2]|0)==0){if(+u[g>>2]<2.0){Y=1}else{Y=o[e+160>>2]|0}o[e+156>>2]=Y;break}L=(o[f+160>>2]|0)-1|0;o[a>>2]=L;j=(X>2.0?2.0:X)+2.0+ +u[g>>2];X=j<-1.0?-1.0:j;u[g>>2]=X;g=e+168|0;e:do{if((L|0)!=0){y=f+156|0;q=e+152|0;B=e+120|0;j=+u[e+108>>2];U=L;do{V=~~+z(j);if((V|0)==10){G=+u[(o[y>>2]|0)+(U*44|0)+40>>2]}else{W=V+1|0;Q=o[y>>2]|0;G=(j-+(V|0))*+u[Q+(U*44|0)+(W<<2)>>2]+(+(W|0)-j)*+u[Q+(U*44|0)+(V<<2)>>2]}if(X>=G){V=re(o[(o[(o[q>>2]|0)+(U<<2)>>2]|0)+52>>2]|0,o[g>>2]|0)|0;if(((V|0)/(o[p>>2]|0)|0|0)<=(o[B>>2]|0)){break e}}U=U-1|0;o[a>>2]=U}while((U|0)!=0)}}while(0);g=a;Gt(e,10,g)|0;if((o[A>>2]|0)==0){break}g=s;Gt(e,19,g)|0;g=(o[s>>2]|0)-(o[A>>2]|0)|0;L=e+128|0;u[L>>2]=+u[L>>2]+ +(g|0);L=e+132|0;u[L>>2]=+u[L>>2]*.95+ +(g|0)*.05;g=e+136|0;u[g>>2]=+u[g>>2]+1.0}}while(0);do{if((o[e+148>>2]|0)!=0){kr(t,1,1);if((o[n>>2]|0)==0){kr(t,o[e+156>>2]|0,3);break}else{kr(t,0,3);break}}}while(0);do{if((o[n>>2]|0)==0){s=e+156|0;a=e+152|0;p=o[(o[a>>2]|0)+(o[s>>2]<<2)>>2]|0;if((p|0)==0){break}Nn[o[p+16>>2]&7](x,C,o[F>>2]|0,t);p=e+32|0;f=o[F>>2]|0;do{if((o[p>>2]|0)!=0&(f|0)>0){Y=e+72|0;m=0;do{u[(o[Y>>2]|0)+(m<<2)>>2]=+u[x+(m<<2)>>2];m=m+1|0;Z=o[F>>2]|0}while((m|0)<(Z|0));if((Z|0)<=0){J=Z;break}m=e+76|0;Y=0;while(1){u[(o[m>>2]|0)+(Y<<2)>>2]=+u[C+(Y<<2)>>2];k=Y+1|0;b=o[F>>2]|0;if((k|0)<(b|0)){Y=k}else{J=b;break}}}else{J=f}}while(0);f=c;c=c+(J*4|0)|0;c=c+7&-8;A=o[H>>2]|0;Y=c;c=c+(A*4|0)|0;c=c+7&-8;m=c;c=c+(A*4|0)|0;c=c+7&-8;b=m;k=c;c=c+(A*4|0)|0;c=c+7&-8;if((o[h>>2]|0)>0){g=e+72|0;L=e+76|0;U=e+80|0;B=e+40|0;q=e+44|0;y=e+96|0;V=e+88|0;Q=e+104|0;W=e+100|0;ee=e+164|0;te=e+92|0;ie=e+84|0;ne=0;oe=A;while(1){A=l+((re(oe,ne)|0)+M<<2)|0;ae=qe()|0;se=c;c=c+(oe*4|0)|0;c=c+7&-8;le=se;ue=o[H>>2]|0;fe=c;c=c+(ue*4|0)|0;c=c+7&-8;ce=c;c=c+(ue*4|0)|0;c=c+7&-8;nt(o[g>>2]|0,x,D,o[F>>2]|0,ne,o[h>>2]|0);nt(o[L>>2]|0,C,I,o[F>>2]|0,ne,o[h>>2]|0);it(D,o[F>>2]|0,.05000000074505806);it(I,o[F>>2]|0,.05000000074505806);tt(D,T,o[F>>2]|0,r);tt(I,o[U>>2]|0,o[F>>2]|0,r);Ir(+u[B>>2],T,N,o[F>>2]|0);Ir(+u[q>>2],T,P,o[F>>2]|0);u[(o[y>>2]|0)+(ne<<2)>>2]=1.0;ue=o[F>>2]|0;if((ue|0)>0){G=1.0;de=0;do{_e=o[U>>2]|0;E=+u[_e+((de|1)<<2)>>2];w=+u[_e+(de<<2)>>2];G=G+(E-w);_e=(o[y>>2]|0)+(ne<<2)|0;u[_e>>2]=E+w+ +u[_e>>2];de=de+2|0;he=o[F>>2]|0}while((de|0)<(he|0));pe=G+.01;me=he}else{pe=1.01;me=ue}w=(+u[O+(ne<<2)>>2]+.01)/pe;jr(A,o[U>>2]|0,se,o[H>>2]|0,me,o[V>>2]|0,r);E=+qr(se,o[H>>2]|0);if((o[(o[(o[a>>2]|0)+(o[s>>2]<<2)>>2]|0)+36>>2]|0)==0){de=yi(w*E/(+u[v+(ne<<2)>>2]+1.0),6736,32)|0;_e=(de|0)<0?0:de;kr(t,(_e|0)>31?31:_e,5);_e=o[Q>>2]|0;if((_e|0)!=0){u[_e+(ne<<2)>>2]=E}u[(o[W>>2]|0)+(ne<<2)>>2]=E}else{K=+u[R+(ne<<2)>>2]+1.0;X=w*(E+1.0)/K;if((o[H>>2]|0)==80){Ee=X*.7071099877357483}else{Ee=X}_e=yi(Ee,6032,16)|0;kr(t,_e,4);X=+u[6032+(_e<<2)>>2]*.8736;_e=o[H>>2]|0;if((_e|0)==80){we=X*1.414199948310852}else{we=X}X=K*(we/w);Gr(o[U>>2]|0,N,P,Y,_e,o[F>>2]|0,r);_e=o[H>>2]|0;if((_e|0)>0){de=0;do{u[fe+(de<<2)>>2]=1.0000000036274937e-15;de=de+1|0}while((de|0)<(_e|0))}de=o[F>>2]|0;if((de|0)>0){ue=o[ie>>2]|0;be=0;do{u[f+(be<<2)>>2]=+u[ue+(be<<2)>>2];be=be+1|0}while((be|0)<(de|0))}Xr(fe,o[U>>2]|0,fe,_e,de,f,r);be=o[F>>2]|0;if((be|0)>0){ue=o[te>>2]|0;Se=0;do{u[f+(Se<<2)>>2]=+u[ue+(Se<<2)>>2];Se=Se+1|0}while((Se|0)<(be|0))}Vr(fe,N,P,fe,o[H>>2]|0,be,f,r);Se=o[F>>2]|0;if((Se|0)>0){ue=o[te>>2]|0;de=0;do{u[f+(de<<2)>>2]=+u[ue+(de<<2)>>2];de=de+1|0}while((de|0)<(Se|0))}Vr(A,N,P,ce,o[H>>2]|0,Se,f,r);de=o[H>>2]|0;if((de|0)>0){ue=0;do{u[k+(ue<<2)>>2]=+u[ce+(ue<<2)>>2]-+u[fe+(ue<<2)>>2];ue=ue+1|0}while((ue|0)<(de|0))}Ur(k,k,X,de);ue=o[H>>2]|0;Zi(b|0,0,ue<<2|0);fe=o[(o[a>>2]|0)+(o[s>>2]<<2)>>2]|0;vn[o[fe+36>>2]&7](k,o[U>>2]|0,N,P,o[fe+44>>2]|0,o[F>>2]|0,ue,m,Y,t,r,o[ee>>2]|0,o[fe+12>>2]|0);Hr(m,m,X,o[H>>2]|0);if((o[(o[(o[a>>2]|0)+(o[s>>2]<<2)>>2]|0)+12>>2]|0)!=0){fe=o[H>>2]|0;ue=qe()|0;Se=c;c=c+(fe*4|0)|0;c=c+7&-8;fe=o[H>>2]|0;Zi(Se|0,0,fe<<2|0);if((fe|0)>0){be=0;do{_e=k+(be<<2)|0;u[_e>>2]=+u[_e>>2]*2.5;be=be+1|0}while((be|0)<(fe|0))}be=o[(o[a>>2]|0)+(o[s>>2]<<2)>>2]|0;vn[o[be+36>>2]&7](k,o[U>>2]|0,N,P,o[be+44>>2]|0,o[F>>2]|0,fe,Se,Y,t,r,o[ee>>2]|0,0);Hr(Se,Se,X*.4000000059604645,o[H>>2]|0);be=o[H>>2]|0;if((be|0)>0){de=0;do{_e=m+(de<<2)|0;u[_e>>2]=+u[_e>>2]+ +u[Se+(de<<2)>>2];de=de+1|0}while((de|0)<(be|0))}Be(ue|0)}be=o[H>>2]|0;if((be|0)>0){de=(be|0)>1?be<<2:4;Gi(le|0,b|0,de)|0}if((o[Q>>2]|0)==0){ve=be}else{X=+zr(m,be)*.7071099877357483;u[(o[Q>>2]|0)+(ne<<2)>>2]=X;ve=o[H>>2]|0}X=+qr(se,ve);u[(o[W>>2]|0)+(ne<<2)>>2]=X}be=o[F>>2]|0;de=o[ie>>2]|0;if((be|0)>0){Se=0;do{u[f+(Se<<2)>>2]=+u[de+(Se<<2)>>2];Se=Se+1|0}while((Se|0)<(be|0))}Xr(se,o[U>>2]|0,A,o[H>>2]|0,be,de,r);Vr(A,N,P,ce,o[H>>2]|0,o[F>>2]|0,o[te>>2]|0,r);Be(ae|0);Se=ne+1|0;if((Se|0)>=(o[h>>2]|0)){break}ne=Se;oe=o[H>>2]|0}ke=o[F>>2]|0}else{ke=J}do{if((ke|0)>0){oe=e+72|0;ne=0;do{u[(o[oe>>2]|0)+(ne<<2)>>2]=+u[x+(ne<<2)>>2];ne=ne+1|0;ge=o[F>>2]|0}while((ne|0)<(ge|0));if((ge|0)<=0){break}ne=e+76|0;oe=0;do{u[(o[ne>>2]|0)+(oe<<2)>>2]=+u[C+(oe<<2)>>2];oe=oe+1|0}while((oe|0)<(o[F>>2]|0))}}while(0);o[p>>2]=0;ye=1;c=i;return ye|0}}while(0);C=o[d>>2]|0;if((C|0)>0){ge=0;while(1){u[l+(ge+M<<2)>>2]=1.0000000036274937e-15;x=ge+1|0;ke=o[d>>2]|0;if((x|0)<(ke|0)){ge=x}else{Me=ke;break}}}else{Me=C}C=o[F>>2]|0;if((C|0)>0){ge=e+92|0;M=0;do{u[(o[ge>>2]|0)+(M<<2)>>2]=0.0;M=M+1|0;Fe=o[F>>2]|0}while((M|0)<(Fe|0));Ae=o[d>>2]|0;Oe=Fe}else{Ae=Me;Oe=C}o[e+32>>2]=1;Xr(_,o[e+80>>2]|0,_,Ae,Oe,o[e+84>>2]|0,r);ye=(o[n>>2]|0)==0|0;c=i;return ye|0}function Ct(e){e=e|0;var r=0,t=0,i=0,n=0,a=0,s=0,l=0,u=0,f=0,d=0,_=0;r=c;c=c+8|0;t=r|0;i=Ti(100,1)|0;if((i|0)==0){n=0;c=r;return n|0}o[i>>2]=e;a=o[e>>2]|0;o[i+88>>2]=1;e=zt(o[a>>2]|0)|0;s=i+4|0;o[s>>2]=e;o[i+40>>2]=0;l=a+4|0;o[i+8>>2]=o[l>>2]<<1;o[i+12>>2]=o[l>>2];u=a+8|0;f=i+16|0;o[f>>2]=o[u>>2];d=i+20|0;o[d>>2]=(o[l>>2]|0)/(o[u>>2]|0)|0;u=i+24|0;o[u>>2]=o[a+12>>2];l=i+32|0;_=l;Zt(e,25,l)|0;o[_>>2]=o[_>>2]<<1;o[t>>2]=1;Zt(o[s>>2]|0,105,t)|0;o[i+92>>2]=a+32;o[i+96>>2]=o[a+64>>2];o[i+28>>2]=1;o[i+44>>2]=Ti(256,1)|0;o[i+48>>2]=Ti(256,1)|0;o[i+52>>2]=Ti(o[f>>2]<<2,1)|0;f=o[u>>2]|0;u=f<<2;o[i+56>>2]=Ti(u,1)|0;o[i+60>>2]=Ti(u,1)|0;u=o[d>>2]<<2;o[i+68>>2]=Ti(u,1)|0;o[i+72>>2]=Ti(u,1)|0;o[i+64>>2]=Ti(f<<3,1)|0;o[i+76>>2]=0;o[i+36>>2]=0;o[i+84>>2]=1e3;n=i;c=r;return n|0}function Dt(e){e=e|0;Vt(o[e+4>>2]|0);Ri(o[e+44>>2]|0);Ri(o[e+48>>2]|0);Ri(o[e+52>>2]|0);Ri(o[e+56>>2]|0);Ri(o[e+60>>2]|0);Ri(o[e+68>>2]|0);Ri(o[e+72>>2]|0);Ri(o[e+64>>2]|0);Ri(e);return}function It(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0,l=0,f=0,d=0,_=0,h=0,m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0.0,D=0,I=0,L=0,B=0,H=0,U=0,z=0,q=0,X=0.0,j=0.0,K=0.0,Y=0.0,G=0,W=0.0,Q=0,Z=0,$=0,ee=0,te=0,ie=0,ne=0.0;i=c;c=c+8|0;n=i|0;a=t;t=e;s=o[e+40>>2]|0;l=o[o[e>>2]>>2]|0;f=e+12|0;d=o[f>>2]|0;_=e+4|0;Zt(o[_>>2]|0,104,a+(d<<2)|0)|0;h=jt(o[_>>2]|0,r,a)|0;Zt(o[_>>2]|0,103,n)|0;if((h|0)!=0){m=h;c=i;return m|0}if((r|0)==0){Lt(t,a,o[n>>2]|0,s);m=0;c=i;return m|0}e:do{if((o[e+88>>2]|0)==0){E=o[e+96>>2]|0}else{do{if((Or(r)|0)>0){if((Fr(r)|0)==0){break}yr(r,1)|0;h=yr(r,3)|0;o[e+96>>2]=h;if((h|0)==0){E=0;break e}if((o[(o[e+92>>2]|0)+(h<<2)>>2]|0)!=0){E=h;break e}h=o[p>>2]|0;ve(h|0,13352,(h=c,c=c+8|0,o[h>>2]=12984,h)|0)|0;c=h;m=-2;c=i;return m|0}}while(0);o[e+96>>2]=0;E=0}}while(0);h=e+96|0;w=e+92|0;if((o[(o[w>>2]|0)+(E<<2)>>2]|0)==0){if((o[n>>2]|0)!=0){Lt(t,a,1,s);m=0;c=i;return m|0}t=o[f>>2]|0;if((t|0)>0){n=0;E=t;while(1){u[a+(E+n<<2)>>2]=1.0000000036274937e-15;b=n+1|0;S=o[f>>2]|0;if((b|0)<(S|0)){n=b;E=S}else{v=S;break}}}else{v=t}o[e+28>>2]=1;t=a+(v<<2)|0;Xr(t,o[e+60>>2]|0,t,v,o[e+24>>2]|0,o[e+64>>2]|0,s);Qr(a,a+(o[f>>2]<<2)|0,5776,a,o[e+8>>2]|0,64,o[e+44>>2]|0,o[e+48>>2]|0,s);m=0;c=i;return m|0}v=e+20|0;t=o[v>>2]|0;E=qe()|0;n=c;c=c+(t*4|0)|0;c=c+7&-8;t=c;c=c+((o[v>>2]|0)*4|0)|0;c=c+7&-8;Zt(o[_>>2]|0,100,n)|0;Zt(o[_>>2]|0,101,t)|0;_=e+24|0;S=o[_>>2]|0;b=c;c=c+(S*4|0)|0;c=c+7&-8;k=c;c=c+(S*4|0)|0;c=c+7&-8;An[o[(o[(o[w>>2]|0)+(o[h>>2]<<2)>>2]|0)+20>>2]&7](b,S,r);S=e+28|0;g=o[_>>2]|0;if((o[S>>2]|0)!=0&(g|0)>0){y=e+56|0;M=0;while(1){u[(o[y>>2]|0)+(M<<2)>>2]=+u[b+(M<<2)>>2];F=M+1|0;A=o[_>>2]|0;if((F|0)<(A|0)){M=F}else{O=A;break}}}else{O=g}g=c;c=c+(O*4|0)|0;c=c+7&-8;if((o[v>>2]|0)>0){O=e+16|0;M=e+76|0;y=e+56|0;A=e+68|0;F=l+28|0;l=d+1|0;R=e+52|0;T=e+60|0;N=e+64|0;P=e+72|0;x=e+84|0;C=0.0;D=0;while(1){I=o[O>>2]|0;L=re(I,D)|0;B=a+((o[f>>2]|0)+L<<2)|0;H=qe()|0;U=c;c=c+(I*4|0)|0;c=c+7&-8;I=o[M>>2]|0;if((I|0)==0){z=0}else{q=I+(L<<1<<2)|0;Zi(q|0,0,o[O>>2]<<3|0);z=q}nt(o[y>>2]|0,b,k,o[_>>2]|0,D,o[v>>2]|0);it(k,o[_>>2]|0,.05000000074505806);tt(k,g,o[_>>2]|0,s);u[(o[A>>2]|0)+(D<<2)>>2]=1.0;if((o[_>>2]|0)>0){X=1.0;q=0;do{j=+u[g+((q|1)<<2)>>2];K=+u[g+(q<<2)>>2];X=X+(j-K);I=(o[A>>2]|0)+(D<<2)|0;u[I>>2]=j+K+ +u[I>>2];q=q+2|0}while((q|0)<(o[_>>2]|0));Y=X+.01}else{Y=1.01}K=(+u[n+(D<<2)>>2]+.01)/Y;Zi(U|0,0,o[O>>2]<<2|0);do{if((o[(o[(o[w>>2]|0)+(o[h>>2]<<2)>>2]|0)+40>>2]|0)==0){j=+J(+((yr(r,5)|0)-10|0)*.125)/K;q=o[O>>2]|0;if((q|0)>0){G=0}else{break}do{I=G+L|0;u[U+(G<<2)>>2]=j*+u[F>>2]*+u[a+(I+d<<2)>>2];u[U+((G|1)<<2)>>2]=-0.0-j*+u[F>>2]*+u[a+(l+I<<2)>>2];G=G+2|0}while((G|0)<(q|0))}else{q=yr(r,4)|0;j=+u[6032+(q<<2)>>2]*.8736;q=o[O>>2]|0;if((q|0)==80){W=j*1.414199948310852}else{W=j}j=+u[t+(D<<2)>>2]*W/K;I=o[(o[w>>2]|0)+(o[h>>2]<<2)>>2]|0;kn[o[I+40>>2]&7](U,o[I+44>>2]|0,q,r,s,x);Hr(U,U,j,o[O>>2]|0);if((o[(o[(o[w>>2]|0)+(o[h>>2]<<2)>>2]|0)+12>>2]|0)==0){break}q=o[O>>2]|0;I=qe()|0;Q=c;c=c+(q*4|0)|0;c=c+7&-8;q=o[O>>2]|0;Zi(Q|0,0,q<<2|0);Z=o[(o[w>>2]|0)+(o[h>>2]<<2)>>2]|0;kn[o[Z+40>>2]&7](Q,o[Z+44>>2]|0,q,r,s,x);Hr(Q,Q,j*.4000000059604645,o[O>>2]|0);q=o[O>>2]|0;if((q|0)>0){Z=0;do{$=U+(Z<<2)|0;u[$>>2]=+u[$>>2]+ +u[Q+(Z<<2)>>2];Z=Z+1|0}while((Z|0)<(q|0))}Be(I|0)}}while(0);L=o[O>>2]|0;if((o[M>>2]|0)!=0&(L|0)>0){q=0;while(1){u[z+(q<<1<<2)>>2]=+u[U+(q<<2)>>2];Z=q+1|0;Q=o[O>>2]|0;if((Z|0)<(Q|0)){q=Z}else{ee=Q;break}}}else{ee=L}Xr(o[R>>2]|0,o[T>>2]|0,B,ee,o[_>>2]|0,o[N>>2]|0,s);q=o[O>>2]|0;if((q|0)>0){Q=0;while(1){u[(o[R>>2]|0)+(Q<<2)>>2]=+u[U+(Q<<2)>>2];Z=Q+1|0;$=o[O>>2]|0;if((Z|0)<($|0)){Q=Z}else{te=$;break}}}else{te=q}if((o[_>>2]|0)>0){Q=0;do{u[(o[T>>2]|0)+(Q<<2)>>2]=+u[g+(Q<<2)>>2];Q=Q+1|0}while((Q|0)<(o[_>>2]|0));ie=o[O>>2]|0}else{ie=te}K=+qr(o[R>>2]|0,ie);u[(o[P>>2]|0)+(D<<2)>>2]=K;K=+u[(o[P>>2]|0)+(D<<2)>>2];X=C+K*K/+(o[v>>2]|0);Be(H|0);Q=D+1|0;if((Q|0)<(o[v>>2]|0)){C=X;D=Q}else{ne=X;break}}}else{ne=0.0}u[e+80>>2]=+V(ne);Qr(a,a+(o[f>>2]<<2)|0,5776,a,o[e+8>>2]|0,64,o[e+44>>2]|0,o[e+48>>2]|0,s);if((o[_>>2]|0)>0){s=e+56|0;e=0;do{u[(o[s>>2]|0)+(e<<2)>>2]=+u[b+(e<<2)>>2];e=e+1|0}while((e|0)<(o[_>>2]|0))}o[S>>2]=0;Be(E|0);m=0;c=i;return m|0}function Lt(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0,a=0,s=0,l=0,f=0,c=0,d=0,h=0.0,p=0,m=0,E=0;n=(t|0)!=0;if(n){t=e+96|0;a=o[t>>2]|0;o[t>>2]=1;o[e+28>>2]=1;s=a}else{a=o[e+60>>2]|0;Ir(.9900000095367432,a,a,o[e+24>>2]|0);o[e+28>>2]=1;a=e+80|0;u[a>>2]=+u[a>>2]*.8999999761581421;s=0}a=e+12|0;t=o[a>>2]|0;if((t|0)>0){l=e+80|0;f=e+84|0;c=0;d=t;while(1){h=+u[l>>2];p=(re(o[f>>2]|0,1664525)|0)+1013904223|0;o[f>>2]=p;u[r+(d+c<<2)>>2]=h*3.4642*((o[_>>2]=p&8388607|1065353216,+u[_>>2])+-1.5);p=c+1|0;m=o[a>>2]|0;if((p|0)<(m|0)){c=p;d=m}else{E=m;break}}}else{E=t}t=r+(E<<2)|0;Xr(t,o[e+60>>2]|0,t,E,o[e+24>>2]|0,o[e+64>>2]|0,i);Qr(r,r+(o[a>>2]<<2)|0,5776,r,o[e+8>>2]|0,64,o[e+44>>2]|0,o[e+48>>2]|0,i);if(!n){return}o[e+96>>2]=s;return}function Bt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0,l=0,f=0,d=0,_=0,h=0,m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0.0,M=0.0,F=0,A=0,O=0,R=0,T=0;i=c;c=c+80|0;n=i|0;a=i+8|0;s=i+16|0;l=i+24|0;f=i+32|0;d=i+40|0;_=i+48|0;h=i+56|0;m=i+64|0;E=i+72|0;switch(r|0){case 8:{Gt(o[e+4>>2]|0,8,t)|0;w=0;c=i;return w|0};case 35:{Gt(o[e+4>>2]|0,35,t)|0;w=0;c=i;return w|0};case 106:{o[t>>2]=o[e+48>>2];w=0;c=i;return w|0};case 3:{o[t>>2]=o[e+8>>2];w=0;c=i;return w|0};case 34:{Gt(o[e+4>>2]|0,34,t)|0;w=0;c=i;return w|0};case 9:{Gt(o[e+4>>2]|0,9,t)|0;w=0;c=i;return w|0};case 101:{b=e+20|0;if((o[b>>2]|0)<=0){w=0;c=i;return w|0}S=e+100|0;v=t;k=0;while(1){u[v+(k<<2)>>2]=+u[(o[S>>2]|0)+(k<<2)>>2];g=k+1|0;if((g|0)<(o[b>>2]|0)){k=g}else{w=0;break}}c=i;return w|0};case 10:{k=o[t>>2]|0;o[e+156>>2]=k;o[e+160>>2]=k;w=0;c=i;return w|0};case 6:{Gt(e,4,t)|0;w=0;c=i;return w|0};case 104:{o[e+104>>2]=t;w=0;c=i;return w|0};case 12:{o[e+112>>2]=o[t>>2];Gt(o[e+4>>2]|0,12,t)|0;w=0;c=i;return w|0};case 13:{o[t>>2]=o[e+112>>2];w=0;c=i;return w|0};case 30:{o[e+140>>2]=o[t>>2];Gt(o[e+4>>2]|0,30,t)|0;w=0;c=i;return w|0};case 31:{o[t>>2]=o[e+140>>2];w=0;c=i;return w|0};case 14:{k=t;y=+u[k>>2];M=y+.6;u[a>>2]=M;u[e+108>>2]=y;if(M>10.0){u[a>>2]=10.0}b=~~+z(+u[k>>2]+.5);o[n>>2]=(b|0)>10?10:b;Gt(o[e+4>>2]|0,14,a)|0;Gt(e,4,n)|0;w=0;c=i;return w|0};case 15:{u[t>>2]=+u[e+108>>2];w=0;c=i;return w|0};case 32:{n=t;a=o[n>>2]|0;o[e+124>>2]=a;b=e+112|0;k=b;o[k>>2]=(a|0)!=0;Gt(o[e+4>>2]|0,12,b)|0;if((o[k>>2]|0)==0){w=0;c=i;return w|0}o[s>>2]=10;k=o[n>>2]|0;n=s;b=l;while(1){Gt(e,4,n)|0;Gt(e,19,b)|0;a=o[s>>2]|0;if((o[l>>2]|0)<=(k|0)){F=a;break}S=a-1|0;o[s>>2]=S;if((a|0)<=0){F=S;break}}M=+(F|0);u[f>>2]=M<0.0?0.0:M;Gt(e,14,f)|0;u[e+136>>2]=0.0;u[e+128>>2]=0.0;u[e+132>>2]=0.0;w=0;c=i;return w|0};case 33:{o[t>>2]=o[e+124>>2];w=0;c=i;return w|0};case 4:{f=o[t>>2]|0;F=(f|0)<0?0:f;f=(F|0)>10?10:F;F=o[e>>2]|0;s=o[(o[F>>2]|0)+112+(f<<2)>>2]|0;o[e+156>>2]=s;o[e+160>>2]=s;o[d>>2]=o[(o[F>>2]|0)+68+(f<<2)>>2];Gt(o[e+4>>2]|0,6,d)|0;w=0;c=i;return w|0};case 16:{Gt(o[e+4>>2]|0,16,t)|0;d=o[t>>2]|0;f=e+164|0;o[f>>2]=d;if((d|0)>=1){w=0;c=i;return w|0}o[f>>2]=1;w=0;c=i;return w|0};case 17:{o[t>>2]=o[e+164>>2];w=0;c=i;return w|0};case 18:{o[_>>2]=10;f=o[t>>2]|0;d=_;F=h;while(1){Gt(e,4,d)|0;Gt(e,19,F)|0;if((o[h>>2]|0)<=(f|0)){w=0;A=1735;break}s=o[_>>2]|0;o[_>>2]=s-1;if((s|0)<=0){w=0;A=1736;break}}if((A|0)==1735){c=i;return w|0}else if((A|0)==1736){c=i;return w|0}break};case 19:{Gt(o[e+4>>2]|0,19,t)|0;A=o[(o[e+152>>2]|0)+(o[e+156>>2]<<2)>>2]|0;_=o[e+168>>2]|0;if((A|0)==0){f=t;o[f>>2]=(o[f>>2]|0)+((_<<2|0)/(o[e+8>>2]|0)|0);w=0;c=i;return w|0}else{f=re(o[A+52>>2]|0,_)|0;_=t;o[_>>2]=(o[_>>2]|0)+((f|0)/(o[e+8>>2]|0)|0);w=0;c=i;return w|0}break};case 24:{f=o[t>>2]|0;o[e+168>>2]=f;o[m>>2]=f>>1;Gt(o[e+4>>2]|0,24,m)|0;w=0;c=i;return w|0};case 25:{o[t>>2]=o[e+168>>2];w=0;c=i;return w|0};case 26:{o[e+32>>2]=1;m=e+28|0;f=o[m>>2]|0;do{if((f|0)>0){_=e+72|0;A=0;h=f;while(1){F=A+1|0;u[(o[_>>2]|0)+(A<<2)>>2]=+(F|0)*3.1415927410125732/+(h+1|0);O=o[m>>2]|0;if((F|0)<(O|0)){A=F;h=O}else{break}}if((O|0)<=0){break}h=e+88|0;A=e+84|0;_=e+92|0;F=0;do{u[(o[h>>2]|0)+(F<<2)>>2]=0.0;u[(o[A>>2]|0)+(F<<2)>>2]=0.0;u[(o[_>>2]|0)+(F<<2)>>2]=0.0;F=F+1|0}while((F|0)<(o[m>>2]|0))}}while(0);m=e+60|0;O=e+56|0;f=0;while(1){u[(o[m>>2]|0)+(f<<2)>>2]=0.0;u[(o[O>>2]|0)+(f<<2)>>2]=0.0;F=f+1|0;if((F|0)<64){f=F}else{w=0;break}}c=i;return w|0};case 36:{o[e+148>>2]=o[t>>2];Gt(o[e+4>>2]|0,36,t)|0;w=0;c=i;return w|0};case 37:{o[t>>2]=o[e+148>>2];w=0;c=i;return w|0};case 39:{Gt(o[e+4>>2]|0,39,t)|0;f=t;o[f>>2]=(o[f>>2]<<1)+63;w=0;c=i;return w|0};case 40:{Gt(o[e+4>>2]|0,40,t)|0;w=0;c=i;return w|0};case 41:{Gt(o[e+4>>2]|0,41,t)|0;w=0;c=i;return w|0};case 42:{f=o[t>>2]|0;o[e+116>>2]=f;do{if((f|0)>42199){o[e+120>>2]=17600;R=17600}else{if((f|0)>27799){o[e+120>>2]=9600;R=9600;break}O=e+120|0;if((f|0)>20600){o[O>>2]=5600;R=5600;break}else{o[O>>2]=1800;R=1800;break}}}while(0);if((o[e+16>>2]|0)==80){o[e+120>>2]=1800;T=1800}else{T=R}o[E>>2]=f-T;Gt(o[e+4>>2]|0,42,E)|0;w=0;c=i;return w|0};case 43:{o[t>>2]=o[e+116>>2];w=0;c=i;return w|0};case 44:{Gt(o[e+4>>2]|0,44,t)|0;w=0;c=i;return w|0};case 45:{Gt(o[e+4>>2]|0,45,t)|0;w=0;c=i;return w|0};case 100:{E=t;T=e+20|0;if((o[T>>2]|0)<=0){w=0;c=i;return w|0}f=e+96|0;R=0;while(1){u[E+(R<<2)>>2]=+u[(o[f>>2]|0)+(R<<2)>>2];O=R+1|0;if((O|0)<(o[T>>2]|0)){R=O}else{w=0;break}}c=i;return w|0};case 29:{u[t>>2]=+u[e+144>>2];w=0;c=i;return w|0};case 105:{Gt(o[e+4>>2]|0,105,t)|0;w=0;c=i;return w|0};default:{ve(o[p>>2]|0,13552,(t=c,c=c+16|0,o[t>>2]=13768,o[t+8>>2]=r,t)|0)|0;c=t;w=-1;c=i;return w|0}}return 0}function Ht(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0,l=0,f=0,d=0,_=0,h=0;i=c;c=c+16|0;n=i|0;a=i+8|0;switch(r|0){case 0:{Zt(o[e+4>>2]|0,0,t)|0;o[e+36>>2]=o[t>>2];s=0;c=i;return s|0};case 8:{Zt(o[e+4>>2]|0,8,t)|0;s=0;c=i;return s|0};case 26:{l=e+24|0;if((o[l>>2]<<1|0)>0){f=e+64|0;d=0;do{u[(o[f>>2]|0)+(d<<2)>>2]=0.0;d=d+1|0}while((d|0)<(o[l>>2]<<1|0))}l=e+48|0;d=e+44|0;f=0;do{u[(o[l>>2]|0)+(f<<2)>>2]=0.0;u[(o[d>>2]|0)+(f<<2)>>2]=0.0;f=f+1|0}while((f|0)<64);u[e+80>>2]=0.0;s=0;c=i;return s|0};case 101:{f=e+20|0;if((o[f>>2]|0)<=0){s=0;c=i;return s|0}d=e+72|0;l=t;_=0;while(1){u[l+(_<<2)>>2]=+u[(o[d>>2]|0)+(_<<2)>>2];h=_+1|0;if((h|0)<(o[f>>2]|0)){_=h}else{s=0;break}}c=i;return s|0};case 3:{o[t>>2]=o[e+8>>2];s=0;c=i;return s|0};case 10:{o[e+96>>2]=o[t>>2];s=0;c=i;return s|0};case 9:{Zt(o[e+4>>2]|0,9,t)|0;s=0;c=i;return s|0};case 1:{o[t>>2]=o[e+36>>2];s=0;c=i;return s|0};case 6:case 4:{_=o[t>>2]|0;f=(_|0)<0?0:_;_=(f|0)>10?10:f;f=o[e>>2]|0;o[e+96>>2]=o[(o[f>>2]|0)+112+(_<<2)>>2];o[n>>2]=o[(o[f>>2]|0)+68+(_<<2)>>2];Zt(o[e+4>>2]|0,6,n)|0;s=0;c=i;return s|0};case 19:{Zt(o[e+4>>2]|0,19,t)|0;n=o[(o[e+92>>2]|0)+(o[e+96>>2]<<2)>>2]|0;_=o[e+32>>2]|0;if((n|0)==0){f=t;o[f>>2]=(o[f>>2]|0)+((_<<2|0)/(o[e+8>>2]|0)|0);s=0;c=i;return s|0}else{f=re(o[n+52>>2]|0,_)|0;_=t;o[_>>2]=(o[_>>2]|0)+((f|0)/(o[e+8>>2]|0)|0);s=0;c=i;return s|0}break};case 24:{f=o[t>>2]|0;o[e+32>>2]=f;o[a>>2]=f>>1;Zt(o[e+4>>2]|0,24,a)|0;s=0;c=i;return s|0};case 25:{o[t>>2]=o[e+32>>2];s=0;c=i;return s|0};case 20:{Zt(o[e+4>>2]|0,20,t)|0;s=0;c=i;return s|0};case 22:{Zt(o[e+4>>2]|0,22,t)|0;s=0;c=i;return s|0};case 36:{o[e+88>>2]=o[t>>2];Zt(o[e+4>>2]|0,36,t)|0;s=0;c=i;return s|0};case 37:{o[t>>2]=o[e+88>>2];s=0;c=i;return s|0};case 39:{Zt(o[e+4>>2]|0,39,t)|0;a=t;o[a>>2]=o[a>>2]<<1;s=0;c=i;return s|0};case 44:{Zt(o[e+4>>2]|0,44,t)|0;s=0;c=i;return s|0};case 45:{Zt(o[e+4>>2]|0,45,t)|0;s=0;c=i;return s|0};case 47:{Zt(o[e+4>>2]|0,47,t)|0;s=0;c=i;return s|0};case 100:{a=t;f=e+20|0;if((o[f>>2]|0)<=0){s=0;c=i;return s|0}_=e+68|0;n=0;while(1){u[a+(n<<2)>>2]=+u[(o[_>>2]|0)+(n<<2)>>2];d=n+1|0;if((d|0)<(o[f>>2]|0)){n=d}else{s=0;break}}c=i;return s|0};case 103:{Zt(o[e+4>>2]|0,103,t)|0;s=0;c=i;return s|0};case 104:{o[e+76>>2]=t;s=0;c=i;return s|0};case 105:{Zt(o[e+4>>2]|0,105,t)|0;s=0;c=i;return s|0};case 106:{o[t>>2]=o[e+40>>2];s=0;c=i;return s|0};default:{ve(o[p>>2]|0,13552,(e=c,c=c+16|0,o[e>>2]=13768,o[e+8>>2]=r,e)|0)|0;c=e;s=-1;c=i;return s|0}}return 0}function Ut(e){e=e|0;return Fn[o[e+20>>2]&15](e)|0}function zt(e){e=e|0;return Fn[o[e+32>>2]&15](e)|0}function qt(e){e=e|0;gn[o[(o[e>>2]|0)+24>>2]&15](e);return}function Vt(e){e=e|0;gn[o[(o[e>>2]|0)+36>>2]&15](e);return}function Xt(e,r,t){e=e|0;r=r|0;t=t|0;return Mn[o[(o[e>>2]|0)+28>>2]&31](e,r,t)|0}function jt(e,r,t){e=e|0;r=r|0;t=t|0;return Mn[o[(o[e>>2]|0)+40>>2]&31](e,r,t)|0}function Kt(e,r,t){e=e|0;r=r|0;t=t|0;return Mn[o[(o[e>>2]|0)+28>>2]&31](e,r,t)|0}function Yt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,a=0,s=0,l=0,f=0;i=c;c=c+2568|0;a=i|0;s=i+8|0;l=e;Mn[o[(o[l>>2]|0)+44>>2]&31](e,3,a)|0;f=o[a>>2]|0;if((f|0)>0){a=0;do{u[s+(a<<2)>>2]=+(n[r+(a<<1)>>1]|0);a=a+1|0}while((a|0)<(f|0))}f=Mn[o[(o[l>>2]|0)+28>>2]&31](e,s,t)|0;c=i;return f|0}function Gt(e,r,t){e=e|0;r=r|0;t=t|0;return Mn[o[(o[e>>2]|0)+44>>2]&31](e,r,t)|0}function Wt(e,r,t){e=e|0;r=r|0;t=t|0;return Mn[o[(o[e>>2]|0)+40>>2]&31](e,r,t)|0}function Qt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,a=0,s=0,l=0,f=0,d=0,_=0.0;i=c;c=c+2568|0;a=i|0;s=i+8|0;l=e;Mn[o[(o[l>>2]|0)+48>>2]&31](e,3,a)|0;f=Mn[o[(o[l>>2]|0)+40>>2]&31](e,r,s)|0;r=o[a>>2]|0;if((r|0)>0){d=0}else{c=i;return f|0}do{_=+u[s+(d<<2)>>2];do{if(_>32767.0){n[t+(d<<1)>>1]=32767}else{if(_<-32768.0){n[t+(d<<1)>>1]=-32768;break}else{n[t+(d<<1)>>1]=~~+z(_+.5);break}}}while(0);d=d+1|0}while((d|0)<(r|0));c=i;return f|0}function Zt(e,r,t){e=e|0;r=r|0;t=t|0;return Mn[o[(o[e>>2]|0)+48>>2]&31](e,r,t)|0}function Jt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0,l=0;i=c;do{if((r|0)==1){n=t;a=o[n>>2]|0;if((a|0)==0){o[n>>2]=5;s=0;break}l=o[e+32+(a<<2)>>2]|0;if((l|0)==0){o[n>>2]=-1;s=0;break}else{o[n>>2]=o[l+52>>2];s=0;break}}else if((r|0)==0){o[t>>2]=o[e>>2];s=0}else{ve(o[p>>2]|0,13192,(l=c,c=c+16|0,o[l>>2]=12768,o[l+8>>2]=r,l)|0)|0;c=l;s=-1}}while(0);c=i;return s|0}function $t(e,r){e=e|0;r=r|0;var t=0,i=0;t=c;switch(e|0){case 7:{o[r>>2]=14216;i=0;break};case 1:{o[r>>2]=1;i=0;break};case 3:{o[r>>2]=1;i=0;break};case 9:{o[r>>2]=13544;i=0;break};case 5:{o[r>>2]=16;i=0;break};default:{ve(o[p>>2]|0,13192,(r=c,c=c+16|0,o[r>>2]=13320,o[r+8>>2]=e,r)|0)|0;c=r;i=-1}}c=t;return i|0}function ei(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,a=0,s=0;i=yr(e,4)|0;n=o[r+(i*20|0)+4>>2]|0;if((n|0)!=0){a=Mn[n&31](e,t,o[r+(i*20|0)+8>>2]|0)|0;return a|0}do{if((i|0)<2){s=1}else{if((i|0)<8){s=4;break}if((i|0)<10){s=8;break}if((i|0)<12){s=16;break}s=(i|0)<14?32:64}}while(0);Ar(e,s);a=0;return a|0}function ri(e,r,t){e=e|0;r=r|0;t=t|0;var i=0;r=c;c=c+8|0;i=r|0;o[i>>2]=yr(e,4)|0;Gt(t,6,i)|0;c=r;return 0}function ti(e,r,t){e=e|0;r=r|0;t=t|0;var i=0;r=c;c=c+8|0;i=r|0;o[i>>2]=yr(e,4)|0;Gt(t,8,i)|0;c=r;return 0}function ii(e,r,t){e=e|0;r=r|0;t=t|0;var i=0;r=c;c=c+8|0;i=r|0;o[i>>2]=yr(e,4)|0;Gt(t,10,i)|0;c=r;return 0}function ni(e,r,t){e=e|0;r=r|0;t=t|0;var i=0;r=c;c=c+8|0;i=r|0;o[i>>2]=yr(e,1)|0;Gt(t,12,i)|0;c=r;return 0}function oi(e,r,t){e=e|0;r=r|0;t=t|0;var i=0;r=c;c=c+8|0;i=r|0;o[i>>2]=yr(e,1)|0;Zt(t,0,i)|0;c=r;return 0}function ai(e,r,t){e=e|0;r=r|0;t=t|0;var i=0;r=c;c=c+8|0;i=r|0;u[i>>2]=+((yr(e,4)|0)>>>0>>>0);Gt(t,14,i)|0;c=r;return 0}function si(e,r,t){e=e|0;r=r|0;t=t|0;Fe((yr(e,8)|0)&255|0,t|0)|0;return 0}function li(e,r,t){e=e|0;r=r|0;t=t|0;Ar(e,(yr(e,4)|0)<<3|5);return 0}function ui(e,r,t,n){e=e|0;r=r|0;t=t|0;n=n|0;var a=0,s=0,l=0,u=0,f=0,d=0,_=0,h=0;a=c;i[e|0]=83;i[e+1|0]=112;i[e+2|0]=101;i[e+3|0]=101;i[e+4|0]=120;i[e+5|0]=32;i[e+6|0]=32;i[e+7|0]=32;i[e+8|0]=49;i[e+9|0]=46;i[e+10|0]=50;i[e+11|0]=114;i[e+12|0]=99;i[e+13|0]=49;Zi(e+14|0,0,14);o[e+28>>2]=1;o[e+32>>2]=80;o[e+36>>2]=r;r=n+12|0;o[e+40>>2]=o[r>>2];o[e+44>>2]=o[n+16>>2];if((o[r>>2]|0)>=0){s=e+48|0;o[s>>2]=t;l=e+52|0;o[l>>2]=-1;u=e+56|0;f=u;d=_t(n,0,f)|0;_=e+60|0;h=_;Zi(h|0,0,20);c=a;return}ve(o[p>>2]|0,12848,(r=c,c=c+8|0,o[r>>2]=13672,r)|0)|0;c=r;s=e+48|0;o[s>>2]=t;l=e+52|0;o[l>>2]=-1;u=e+56|0;f=u;d=_t(n,0,f)|0;_=e+60|0;h=_;Zi(h|0,0,20);c=a;return}function fi(e,r){e=e|0;r=r|0;var t=0,i=0;t=Ti(80,1)|0;i=e|0;Gi(t|0,i|0,80)|0;o[r>>2]=80;return t|0}function ci(e,r){e=e|0;r=r|0;var t=0,n=0,a=0,s=0,l=0;t=c;n=0;while(1){if((n|0)>=8){break}if((i[e+n|0]|0)==(i[14056+n|0]|0)){n=n+1|0}else{a=1893;break}}if((a|0)==1893){a=o[p>>2]|0;ve(a|0,12920,(s=c,c=c+8|0,o[s>>2]=13440,s)|0)|0;c=s;l=0;c=t;return l|0}if((r|0)<80){r=o[p>>2]|0;ve(r|0,12920,(s=c,c=c+8|0,o[s>>2]=13264,s)|0)|0;c=s;l=0;c=t;return l|0}r=Ti(80,1)|0;a=r;Gi(r|0,e|0,80)|0;e=r+48|0;if((o[r+40>>2]|0)>>>0>2>>>0){n=o[p>>2]|0;ve(n|0,12920,(s=c,c=c+8|0,o[s>>2]=13104,s)|0)|0;c=s;Ri(r);l=0;c=t;return l|0}r=o[e>>2]|0;if((r|0)>2){o[e>>2]=2;l=a;c=t;return l|0}if((r|0)>=1){l=a;c=t;return l|0}o[e>>2]=1;l=a;c=t;return l|0}function di(e){e=e|0;Ri(e);return}function _i(){var e=0;e=Ti(24,1)|0;u[e>>2]=1.0;u[e+4>>2]=.5;u[e+8>>2]=1.0;u[e+12>>2]=1.0;o[e+16>>2]=0;o[e+20>>2]=0;return e|0}function hi(e){e=e|0;u[e>>2]=1.0;u[e+4>>2]=.5;u[e+8>>2]=1.0;u[e+12>>2]=1.0;o[e+16>>2]=0;o[e+20>>2]=0;return}function pi(e){e=e|0;Ri(e);return}function mi(e,r,t){e=e|0;r=r|0;t=t|0;var i=0.0,n=0.0,o=0.0,a=0,s=0,l=0.0,f=0.0,c=0.0,d=0.0,_=0.0,h=0.0;if((r|0)>0){i=0.0;n=0.0;o=0.0;a=0;do{s=a<<1;l=+u[e+(s<<2)>>2];i=i+l*l;f=+u[e+((s|1)<<2)>>2];n=n+f*f;c=(l+f)*.5;u[e+(a<<2)>>2]=c;o=o+c*c;a=a+1|0}while((a|0)<(r|0));d=i+1.0;_=n;h=o}else{d=1.0;_=0.0;h=0.0}kr(t,14,5);kr(t,9,4);o=+$(d/(_+1.0))*4.0;if(o>0.0){kr(t,0,1)}else{kr(t,1,1)}n=+z(+q(+o)+.5);kr(t,n>30.0?31:~~n,5);kr(t,yi(h/(d+_),10688,4)|0,2);return}function Ei(e,r,t){e=e|0;r=r|0;t=t|0;var i=0.0,o=0.0,a=0.0,s=0,l=0,u=0.0,f=0.0,c=0.0,d=0.0,_=0.0,h=0,p=0.0,m=0.0,E=0.0,w=0.0,b=0.0;kr(t,14,5);kr(t,9,4);do{if((r|0)>0){i=0.0;o=0.0;a=0.0;s=0;do{l=s<<1;u=+(n[e+(l<<1)>>1]|0);a=a+u*u;f=+(n[e+((l|1)<<1)>>1]|0);i=i+f*f;l=~~((u+f)*.5);n[e+(s<<1)>>1]=l;f=+(l<<16>>16|0);o=o+f*f;s=s+1|0}while((s|0)<(r|0));f=o;if(a<=i){c=a;d=f;_=i;h=1924;break}kr(t,0,1);p=i;m=a;E=a;w=f;b=i}else{c=0.0;d=0.0;_=0.0;h=1924}}while(0);if((h|0)==1924){kr(t,1,1);p=c;m=_;E=c;w=d;b=_}h=~~+z(+q(+(+$((m+1.0)/(p+1.0))*4.0))+.5);kr(t,(h|0)<31?h:31,5);kr(t,yi(w/(b+(E+1.0)),10688,4)|0,2);return}function wi(e,r,t){e=e|0;r=r|0;t=t|0;var i=0.0,n=0.0,o=0,a=0.0,s=0,l=0.0;i=+u[t>>2];n=1.0/+V(+u[t+4>>2]*(i+1.0));if((r|0)<=0){return}o=t+8|0;a=n*+V(i)*.019999999552965164;s=t+12|0;i=n*.019999999552965164;t=r;do{t=t-1|0;n=+u[e+(t<<2)>>2];l=a+ +u[o>>2]*.9800000190734863;u[o>>2]=l;u[s>>2]=i+ +u[s>>2]*.9800000190734863;r=t<<1;u[e+(r<<2)>>2]=n*l;u[e+((r|1)<<2)>>2]=n*+u[s>>2]}while((t|0)>0);return}function bi(e,r,t){e=e|0;r=r|0;t=t|0;var i=0.0,o=0.0,a=0,s=0.0,l=0,f=0.0;i=+u[t>>2];o=1.0/+V(+u[t+4>>2]*(i+1.0));if((r|0)<=0){return}a=t+8|0;s=o*+V(i)*.019999999552965164;l=t+12|0;i=o*.019999999552965164;t=r;do{t=t-1|0;r=n[e+(t<<1)>>1]|0;o=s+ +u[a>>2]*.9800000190734863;u[a>>2]=o;u[l>>2]=i+ +u[l>>2]*.9800000190734863;f=+(r<<16>>16|0);r=t<<1;n[e+(r<<1)>>1]=~~(f*o);n[e+((r|1)<<1)>>1]=~~(f*+u[l>>2])}while((t|0)>0);return}function Si(e,r,t){e=e|0;r=r|0;t=t|0;r=(yr(e,1)|0)==0;u[t>>2]=+J((r?.25:-.25)*+((yr(e,5)|0)>>>0>>>0));u[t+4>>2]=+u[10704+((yr(e,2)|0)<<2)>>2];return 0}function vi(e){e=e|0;u[e+4>>2]=0.0;u[e+8>>2]=1.0;u[e+32>>2]=0.0;u[e>>2]=.10000000149011612;u[e+40>>2]=0.0;u[e+36>>2]=0.0;u[e+44>>2]=0.0;u[e+52>>2]=.6798535585403442;u[e+56>>2]=.05000000074505806;u[e+48>>2]=13.597070693969727;o[e+60>>2]=0;u[e+12>>2]=8.699514389038086;u[e+16>>2]=8.699514389038086;u[e+20>>2]=8.699514389038086;u[e+24>>2]=8.699514389038086;u[e+28>>2]=8.699514389038086;return}function ki(e,r,t,i,n){e=e|0;r=r|0;t=t|0;i=i|0;n=+n;var a=0.0,s=0,l=0.0,f=0.0,c=0,d=0.0,_=0.0,h=0.0,p=0.0,m=0.0,E=0.0,w=0.0,b=0.0,S=0.0,v=0.0,k=0.0,g=0,y=0,M=0.0,F=0.0,A=0.0,O=0.0,R=0.0,T=0,N=0.0,P=0.0,x=0.0,C=0.0,D=0,I=0.0,L=0.0,B=0.0,H=0.0,U=0,z=0,V=0,j=0.0,K=0.0,Y=0.0,G=0.0,W=0.0,Q=0.0,Z=0.0,J=0,ee=0.0,re=0,te=0.0,ie=0.0;i=t>>1;if((i|0)>0){a=0.0;s=0;while(1){l=+u[r+(s<<2)>>2];f=a+l*l;c=s+1|0;if((c|0)<(i|0)){a=f;s=c}else{d=f;break}}}else{d=0.0}if((i|0)<(t|0)){a=0.0;s=i;while(1){f=+u[r+(s<<2)>>2];l=a+f*f;i=s+1|0;if((i|0)<(t|0)){a=l;s=i}else{_=l;break}}}else{_=0.0}a=d+_;l=+$(a+6.0e3);s=e+12|0;f=+u[s>>2];h=l-f;t=e+16|0;p=+u[t>>2];m=l-p;r=e+20|0;E=+u[r>>2];w=l-E;i=e+24|0;b=+u[i>>2];S=l-b;c=e+28|0;v=l-+u[c>>2];k=(h*h+0.0+m*m+w*w+S*S+v*v)/150.0;v=k>1.0?1.0:k;k=n;S=k+-.4;w=S*3.0*+q(+S);m=+u[e>>2];g=e+4|0;h=a*m+(1.0-m)*+u[g>>2];u[g>>2]=h;g=e+52|0;m=+u[g>>2];y=e+56|0;M=+u[y>>2];F=m/M;u[e+48>>2]=F;A=a;O=+X(+A,+.3);R=M;T=a>6.0e3;if(R<.06&T){N=O*.05;u[g>>2]=N;P=N}else{P=m}m=w;do{if(m<.3){N=v;if(N<.2){x=O;C=F;if(x<C*1.2){D=1958;break}if(N<.05){I=x;L=C}else{D=1953;break}}else{if(N>=.05){D=1953;break}I=O;L=F}if(I<L*1.5){D=1958}else{D=1953}}else{D=1953}}while(0);e:do{if((D|0)==1953){do{if(m<.4){if(v>=.05){break}if(O<F*1.2){D=1958;break e}}}while(0);if(w<0.0){if(v<.05){D=1958;break}}o[e+60>>2]=0;B=P;H=M;U=0}}while(0);do{if((D|0)==1958){z=e+60|0;V=(o[z>>2]|0)+1|0;o[z>>2]=V;v=F*3.0;if((V|0)<=3){B=P;H=M;U=V;break}w=(O>v?v:O)*.05+P*.95;u[g>>2]=w;v=R*.95+.05;u[y>>2]=v;B=w;H=v;U=V}}while(0);if(O<F&T){u[g>>2]=O*.05+B*.95;u[y>>2]=H*.95+.05}do{if(a<3.0e4){H=a<1.0e4?5.600000381469727:6.300000190734863;if(a>=3.0e3){j=H;break}j=H+-.7}else{H=a+1.0;B=+$(H/(+u[e+8>>2]+1.0));O=+$(H/(h+1.0));H=O<-5.0?-5.0:O;O=H>2.0?2.0:H;if(O>0.0){K=O*.6+7.0}else{K=7.0}if(O<0.0){Y=O*.5+K}else{Y=K}if(B>0.0){G=(B>5.0?2.5:B*.5)+Y}else{G=Y}if(_<=d*1.6){j=G;break}j=G+.5}}while(0);u[e+8>>2]=a;y=e+40|0;G=k*.4+ +u[y>>2]*.6;u[y>>2]=G;k=j+(S+(G+-.4))*2.2;y=e+44|0;G=+u[y>>2];if(k<G){W=G*.5+k*.5}else{W=k}k=W<4.0?4.0:W;g=(U|0)>2;W=g?4.0:k>10.0?10.0:k;if((U|0)==0){Q=W}else{Q=W-(+$(+(U|0)+3.0)+-1.0986122886681098)}W=Q<0.0?0.0:Q;if(a>=6.0e4){Z=W;J=Z<-1.0;ee=J?-1.0:Z;re=e+36|0;u[re>>2]=n;u[y>>2]=ee;u[c>>2]=b;u[i>>2]=E;u[r>>2]=p;u[t>>2]=f;u[s>>2]=l;return+ee}if(g){te=W-(+$(+(U|0)+3.0)+-1.0986122886681098)*.5}else{te=W}if(a>=1.0e4|g^1){ie=te}else{ie=te-(+$(+(U|0)+3.0)+-1.0986122886681098)*.5}te=+$(A/6.0e4+1.0e-4)*.3;Z=(ie<0.0?0.0:ie)+te;J=Z<-1.0;ee=J?-1.0:Z;re=e+36|0;u[re>>2]=n;u[y>>2]=ee;u[c>>2]=b;u[i>>2]=E;u[r>>2]=p;u[t>>2]=f;u[s>>2]=l;return+ee}function gi(e){e=e|0;return}function yi(e,r,t){e=+e;r=r|0;t=t|0;var i=0,n=0,o=0,a=0;i=t-1|0;e:do{if((i|0)>0){t=r;n=0;while(1){if(+u[t>>2]>=e){o=n;break e}a=n+1|0;if((a|0)<(i|0)){t=t+4|0;n=a}else{o=a;break}}}else{o=0}}while(0);return o|0}function Mi(e,r,t){e=+e;r=r|0;t=t|0;var i=0,n=0,o=0,a=0;i=t-1|0;e:do{if((i|0)>0){t=r;n=0;while(1){if(+u[t>>2]>=e){o=n;break e}a=n+1|0;if((a|0)<(i|0)){t=t+4|0;n=a}else{o=a;break}}}else{o=0}}while(0);return o|0}function Fi(e,r,t,i,n,a,s,l,f){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;a=a|0;s=s|0;l=l|0;f=f|0;var c=0,d=0,_=0,h=0,p=0,m=0,E=0.0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0.0,F=0.0,A=0,O=0;if((i|0)<=0){return}f=a-1|0;c=l+(f<<2)|0;d=(f|0)>0;if((t|0)>0){_=r;h=0;p=0}else{r=0;m=0;while(1){E=+u[n+(r<<2)>>2]*.5;if((r|0)<(a|0)){w=2010}else{if(E<+u[c>>2]){w=2010}else{b=m}}if((w|0)==2010){w=0;e:do{if(d){S=a;v=f;while(1){k=S-2|0;g=l+(k<<2)|0;if((v|0)<=(m|0)){if(E>=+u[g>>2]){y=v;break e}}u[l+(v<<2)>>2]=+u[g>>2];o[s+(v<<2)>>2]=o[s+(k<<2)>>2];k=v-1|0;if((k|0)>0){S=v;v=k}else{y=k;break}}}else{y=f}}while(0);u[l+(y<<2)>>2]=E;o[s+(y<<2)>>2]=r;b=m+1|0}v=r+1|0;if((v|0)<(i|0)){r=v;m=b}else{break}}return}while(1){b=_;m=0;M=0.0;while(1){F=M+ +u[e+(m<<2)>>2]*+u[b>>2];r=m+1|0;if((r|0)<(t|0)){b=b+4|0;m=r;M=F}else{break}}m=_+(t<<2)|0;M=+u[n+(h<<2)>>2]*.5-F;if((h|0)<(a|0)){w=2007}else{if(M<+u[c>>2]){w=2007}else{A=p}}if((w|0)==2007){w=0;e:do{if(d){b=a;r=f;while(1){y=b-2|0;v=l+(y<<2)|0;if((r|0)<=(p|0)){if(M>=+u[v>>2]){O=r;break e}}u[l+(r<<2)>>2]=+u[v>>2];o[s+(r<<2)>>2]=o[s+(y<<2)>>2];y=r-1|0;if((y|0)>0){b=r;r=y}else{O=y;break}}}else{O=f}}while(0);u[l+(O<<2)>>2]=M;o[s+(O<<2)>>2]=h;A=p+1|0}r=h+1|0;if((r|0)<(i|0)){_=m;h=r;p=A}else{break}}return}function Ai(e,r,t,i,n,a,s,l,f){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;a=a|0;s=s|0;l=l|0;f=f|0;var c=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0.0,b=0.0,S=0,v=0.0,k=0,g=0,y=0,M=0,F=0,A=0;if((i|0)<=0){return}f=(t|0)>0;c=a-1|0;d=l+(c<<2)|0;_=(c|0)>0;h=r;r=0;p=0;while(1){do{if(f){m=h;E=0;w=0.0;while(1){b=w+ +u[e+(E<<2)>>2]*+u[m>>2];S=E+1|0;if((S|0)<(t|0)){m=m+4|0;E=S;w=b}else{break}}E=h+(t<<2)|0;if(b<=0.0){v=b;k=1;g=E;break}v=-0.0-b;k=0;g=E}else{v=0.0;k=1;g=h}}while(0);w=v+ +u[n+(r<<2)>>2]*.5;if((r|0)<(a|0)){y=2028}else{if(w<+u[d>>2]){y=2028}else{M=p}}do{if((y|0)==2028){y=0;e:do{if(_){E=a;m=c;while(1){S=E-2|0;F=l+(S<<2)|0;if((m|0)<=(p|0)){if(w>=+u[F>>2]){A=m;break e}}u[l+(m<<2)>>2]=+u[F>>2];o[s+(m<<2)>>2]=o[s+(S<<2)>>2];S=m-1|0;if((S|0)>0){E=m;m=S}else{A=S;break}}}else{A=c}}while(0);u[l+(A<<2)>>2]=w;m=s+(A<<2)|0;o[m>>2]=r;E=p+1|0;if((k|0)==0){M=E;break}o[m>>2]=r+i;M=E}}while(0);E=r+1|0;if((E|0)<(i|0)){h=g;r=E;p=M}else{break}}return}function Oi(e){e=e|0;var r=0,t=0,i=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0,D=0,I=0,L=0,B=0,H=0,U=0,z=0,q=0,V=0,X=0,j=0,K=0,Y=0,G=0,W=0,Q=0,Z=0,J=0,$=0,ee=0,re=0,te=0,ie=0,ne=0,oe=0,ae=0,se=0,le=0,ue=0,fe=0,ce=0,de=0,_e=0,he=0,pe=0,me=0,Ee=0,we=0,be=0,ve=0,ke=0,ge=0,ye=0,Me=0,Fe=0,Ae=0,Oe=0,Re=0,Te=0,Ne=0,Pe=0,xe=0;do{if(e>>>0<245>>>0){if(e>>>0<11>>>0){r=16}else{r=e+11&-8}t=r>>>3;i=o[3556]|0;n=i>>>(t>>>0);if((n&3|0)!=0){a=(n&1^1)+t|0;s=a<<1;l=14264+(s<<2)|0;u=14264+(s+2<<2)|0;s=o[u>>2]|0;f=s+8|0;c=o[f>>2]|0;do{if((l|0)==(c|0)){o[3556]=i&~(1<<a)}else{if(c>>>0<(o[3560]|0)>>>0){Se();return 0}d=c+12|0;if((o[d>>2]|0)==(s|0)){o[d>>2]=l;o[u>>2]=c;break}else{Se();return 0}}}while(0);c=a<<3;o[s+4>>2]=c|3;u=s+(c|4)|0;o[u>>2]=o[u>>2]|1;_=f;return _|0}if(r>>>0<=(o[3558]|0)>>>0){h=r;break}if((n|0)!=0){u=2<<t;c=n<<t&(u|-u);u=(c&-c)-1|0;c=u>>>12&16;l=u>>>(c>>>0);u=l>>>5&8;d=l>>>(u>>>0);l=d>>>2&4;p=d>>>(l>>>0);d=p>>>1&2;m=p>>>(d>>>0);p=m>>>1&1;E=(u|c|l|d|p)+(m>>>(p>>>0))|0;p=E<<1;m=14264+(p<<2)|0;d=14264+(p+2<<2)|0;p=o[d>>2]|0;l=p+8|0;c=o[l>>2]|0;do{if((m|0)==(c|0)){o[3556]=i&~(1<<E)}else{if(c>>>0<(o[3560]|0)>>>0){Se();return 0}u=c+12|0;if((o[u>>2]|0)==(p|0)){o[u>>2]=m;o[d>>2]=c;break}else{Se();return 0}}}while(0);c=E<<3;d=c-r|0;o[p+4>>2]=r|3;m=p;i=m+r|0;o[m+(r|4)>>2]=d|1;o[m+c>>2]=d;c=o[3558]|0;if((c|0)!=0){m=o[3561]|0;t=c>>>3;c=t<<1;n=14264+(c<<2)|0;f=o[3556]|0;s=1<<t;do{if((f&s|0)==0){o[3556]=f|s;w=n;b=14264+(c+2<<2)|0}else{t=14264+(c+2<<2)|0;a=o[t>>2]|0;if(a>>>0>=(o[3560]|0)>>>0){w=a;b=t;break}Se();return 0}}while(0);o[b>>2]=m;o[w+12>>2]=m;o[m+8>>2]=w;o[m+12>>2]=n}o[3558]=d;o[3561]=i;_=l;return _|0}c=o[3557]|0;if((c|0)==0){h=r;break}s=(c&-c)-1|0;c=s>>>12&16;f=s>>>(c>>>0);s=f>>>5&8;p=f>>>(s>>>0);f=p>>>2&4;E=p>>>(f>>>0);p=E>>>1&2;t=E>>>(p>>>0);E=t>>>1&1;a=o[14528+((s|c|f|p|E)+(t>>>(E>>>0))<<2)>>2]|0;E=a;t=a;p=(o[a+4>>2]&-8)-r|0;while(1){a=o[E+16>>2]|0;if((a|0)==0){f=o[E+20>>2]|0;if((f|0)==0){break}else{S=f}}else{S=a}a=(o[S+4>>2]&-8)-r|0;f=a>>>0<p>>>0;E=S;t=f?S:t;p=f?a:p}E=t;l=o[3560]|0;if(E>>>0<l>>>0){Se();return 0}i=E+r|0;d=i;if(E>>>0>=i>>>0){Se();return 0}i=o[t+24>>2]|0;n=o[t+12>>2]|0;do{if((n|0)==(t|0)){m=t+20|0;a=o[m>>2]|0;if((a|0)==0){f=t+16|0;c=o[f>>2]|0;if((c|0)==0){v=0;break}else{k=c;g=f}}else{k=a;g=m}while(1){m=k+20|0;a=o[m>>2]|0;if((a|0)!=0){k=a;g=m;continue}m=k+16|0;a=o[m>>2]|0;if((a|0)==0){break}else{k=a;g=m}}if(g>>>0<l>>>0){Se();return 0}else{o[g>>2]=0;v=k;break}}else{m=o[t+8>>2]|0;if(m>>>0<l>>>0){Se();return 0}a=m+12|0;if((o[a>>2]|0)!=(t|0)){Se();return 0}f=n+8|0;if((o[f>>2]|0)==(t|0)){o[a>>2]=n;o[f>>2]=m;v=n;break}else{Se();return 0}}}while(0);e:do{if((i|0)!=0){n=t+28|0;l=14528+(o[n>>2]<<2)|0;do{if((t|0)==(o[l>>2]|0)){o[l>>2]=v;if((v|0)!=0){break}o[3557]=o[3557]&~(1<<o[n>>2]);break e}else{if(i>>>0<(o[3560]|0)>>>0){Se();return 0}m=i+16|0;if((o[m>>2]|0)==(t|0)){o[m>>2]=v}else{o[i+20>>2]=v}if((v|0)==0){break e}}}while(0);if(v>>>0<(o[3560]|0)>>>0){Se();return 0}o[v+24>>2]=i;n=o[t+16>>2]|0;do{if((n|0)!=0){if(n>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[v+16>>2]=n;o[n+24>>2]=v;break}}}while(0);n=o[t+20>>2]|0;if((n|0)==0){break}if(n>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[v+20>>2]=n;o[n+24>>2]=v;break}}}while(0);if(p>>>0<16>>>0){i=p+r|0;o[t+4>>2]=i|3;n=E+(i+4)|0;o[n>>2]=o[n>>2]|1}else{o[t+4>>2]=r|3;o[E+(r|4)>>2]=p|1;o[E+(p+r)>>2]=p;n=o[3558]|0;if((n|0)!=0){i=o[3561]|0;l=n>>>3;n=l<<1;m=14264+(n<<2)|0;f=o[3556]|0;a=1<<l;do{if((f&a|0)==0){o[3556]=f|a;y=m;M=14264+(n+2<<2)|0}else{l=14264+(n+2<<2)|0;c=o[l>>2]|0;if(c>>>0>=(o[3560]|0)>>>0){y=c;M=l;break}Se();return 0}}while(0);o[M>>2]=i;o[y+12>>2]=i;o[i+8>>2]=y;o[i+12>>2]=m}o[3558]=p;o[3561]=d}n=t+8|0;if((n|0)==0){h=r;break}else{_=n}return _|0}else{if(e>>>0>4294967231>>>0){h=-1;break}n=e+11|0;a=n&-8;f=o[3557]|0;if((f|0)==0){h=a;break}E=-a|0;l=n>>>8;do{if((l|0)==0){F=0}else{if(a>>>0>16777215>>>0){F=31;break}n=(l+1048320|0)>>>16&8;c=l<<n;s=(c+520192|0)>>>16&4;u=c<<s;c=(u+245760|0)>>>16&2;A=14-(s|n|c)+(u<<c>>>15)|0;F=a>>>((A+7|0)>>>0)&1|A<<1}}while(0);l=o[14528+(F<<2)>>2]|0;e:do{if((l|0)==0){O=0;R=E;T=0}else{if((F|0)==31){N=0}else{N=25-(F>>>1)|0}t=0;d=E;p=l;m=a<<N;i=0;while(1){A=o[p+4>>2]&-8;c=A-a|0;if(c>>>0<d>>>0){if((A|0)==(a|0)){O=p;R=c;T=p;break e}else{P=p;x=c}}else{P=t;x=d}c=o[p+20>>2]|0;A=o[p+16+(m>>>31<<2)>>2]|0;u=(c|0)==0|(c|0)==(A|0)?i:c;if((A|0)==0){O=P;R=x;T=u;break}else{t=P;d=x;p=A;m=m<<1;i=u}}}}while(0);if((T|0)==0&(O|0)==0){l=2<<F;E=f&(l|-l);if((E|0)==0){h=a;break}l=(E&-E)-1|0;E=l>>>12&16;i=l>>>(E>>>0);l=i>>>5&8;m=i>>>(l>>>0);i=m>>>2&4;p=m>>>(i>>>0);m=p>>>1&2;d=p>>>(m>>>0);p=d>>>1&1;C=o[14528+((l|E|i|m|p)+(d>>>(p>>>0))<<2)>>2]|0}else{C=T}if((C|0)==0){D=R;I=O}else{p=C;d=R;m=O;while(1){i=(o[p+4>>2]&-8)-a|0;E=i>>>0<d>>>0;l=E?i:d;i=E?p:m;E=o[p+16>>2]|0;if((E|0)!=0){p=E;d=l;m=i;continue}E=o[p+20>>2]|0;if((E|0)==0){D=l;I=i;break}else{p=E;d=l;m=i}}}if((I|0)==0){h=a;break}if(D>>>0>=((o[3558]|0)-a|0)>>>0){h=a;break}m=I;d=o[3560]|0;if(m>>>0<d>>>0){Se();return 0}p=m+a|0;f=p;if(m>>>0>=p>>>0){Se();return 0}i=o[I+24>>2]|0;l=o[I+12>>2]|0;do{if((l|0)==(I|0)){E=I+20|0;t=o[E>>2]|0;if((t|0)==0){u=I+16|0;A=o[u>>2]|0;if((A|0)==0){L=0;break}else{B=A;H=u}}else{B=t;H=E}while(1){E=B+20|0;t=o[E>>2]|0;if((t|0)!=0){B=t;H=E;continue}E=B+16|0;t=o[E>>2]|0;if((t|0)==0){break}else{B=t;H=E}}if(H>>>0<d>>>0){Se();return 0}else{o[H>>2]=0;L=B;break}}else{E=o[I+8>>2]|0;if(E>>>0<d>>>0){Se();return 0}t=E+12|0;if((o[t>>2]|0)!=(I|0)){Se();return 0}u=l+8|0;if((o[u>>2]|0)==(I|0)){o[t>>2]=l;o[u>>2]=E;L=l;break}else{Se();return 0}}}while(0);e:do{if((i|0)!=0){l=I+28|0;d=14528+(o[l>>2]<<2)|0;do{if((I|0)==(o[d>>2]|0)){o[d>>2]=L;if((L|0)!=0){break}o[3557]=o[3557]&~(1<<o[l>>2]);break e}else{if(i>>>0<(o[3560]|0)>>>0){Se();return 0}E=i+16|0;if((o[E>>2]|0)==(I|0)){o[E>>2]=L}else{o[i+20>>2]=L}if((L|0)==0){break e}}}while(0);if(L>>>0<(o[3560]|0)>>>0){Se();return 0}o[L+24>>2]=i;l=o[I+16>>2]|0;do{if((l|0)!=0){if(l>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[L+16>>2]=l;o[l+24>>2]=L;break}}}while(0);l=o[I+20>>2]|0;if((l|0)==0){break}if(l>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[L+20>>2]=l;o[l+24>>2]=L;break}}}while(0);do{if(D>>>0<16>>>0){i=D+a|0;o[I+4>>2]=i|3;l=m+(i+4)|0;o[l>>2]=o[l>>2]|1}else{o[I+4>>2]=a|3;o[m+(a|4)>>2]=D|1;o[m+(D+a)>>2]=D;l=D>>>3;if(D>>>0<256>>>0){i=l<<1;d=14264+(i<<2)|0;E=o[3556]|0;u=1<<l;do{if((E&u|0)==0){o[3556]=E|u;U=d;z=14264+(i+2<<2)|0}else{l=14264+(i+2<<2)|0;t=o[l>>2]|0;if(t>>>0>=(o[3560]|0)>>>0){U=t;z=l;break}Se();return 0}}while(0);o[z>>2]=f;o[U+12>>2]=f;o[m+(a+8)>>2]=U;o[m+(a+12)>>2]=d;break}i=p;u=D>>>8;do{if((u|0)==0){q=0}else{if(D>>>0>16777215>>>0){q=31;break}E=(u+1048320|0)>>>16&8;l=u<<E;t=(l+520192|0)>>>16&4;A=l<<t;l=(A+245760|0)>>>16&2;c=14-(t|E|l)+(A<<l>>>15)|0;q=D>>>((c+7|0)>>>0)&1|c<<1}}while(0);u=14528+(q<<2)|0;o[m+(a+28)>>2]=q;o[m+(a+20)>>2]=0;o[m+(a+16)>>2]=0;d=o[3557]|0;c=1<<q;if((d&c|0)==0){o[3557]=d|c;o[u>>2]=i;o[m+(a+24)>>2]=u;o[m+(a+12)>>2]=i;o[m+(a+8)>>2]=i;break}if((q|0)==31){V=0}else{V=25-(q>>>1)|0}c=D<<V;d=o[u>>2]|0;while(1){if((o[d+4>>2]&-8|0)==(D|0)){break}X=d+16+(c>>>31<<2)|0;u=o[X>>2]|0;if((u|0)==0){j=2188;break}else{c=c<<1;d=u}}if((j|0)==2188){if(X>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[X>>2]=i;o[m+(a+24)>>2]=d;o[m+(a+12)>>2]=i;o[m+(a+8)>>2]=i;break}}c=d+8|0;u=o[c>>2]|0;l=o[3560]|0;if(d>>>0<l>>>0){Se();return 0}if(u>>>0<l>>>0){Se();return 0}else{o[u+12>>2]=i;o[c>>2]=i;o[m+(a+8)>>2]=u;o[m+(a+12)>>2]=d;o[m+(a+24)>>2]=0;break}}}while(0);m=I+8|0;if((m|0)==0){h=a;break}else{_=m}return _|0}}while(0);I=o[3558]|0;if(h>>>0<=I>>>0){X=I-h|0;D=o[3561]|0;if(X>>>0>15>>>0){V=D;o[3561]=V+h;o[3558]=X;o[V+(h+4)>>2]=X|1;o[V+I>>2]=X;o[D+4>>2]=h|3}else{o[3558]=0;o[3561]=0;o[D+4>>2]=I|3;X=D+(I+4)|0;o[X>>2]=o[X>>2]|1}_=D+8|0;return _|0}D=o[3559]|0;if(h>>>0<D>>>0){X=D-h|0;o[3559]=X;D=o[3562]|0;I=D;o[3562]=I+h;o[I+(h+4)>>2]=X|1;o[D+4>>2]=h|3;_=D+8|0;return _|0}do{if((o[3548]|0)==0){D=De(30)|0;if((D-1&D|0)==0){o[3550]=D;o[3549]=D;o[3551]=-1;o[3552]=-1;o[3553]=0;o[3667]=0;o[3548]=(je(0)|0)&-16^1431655768;break}else{Se();return 0}}}while(0);D=h+48|0;X=o[3550]|0;I=h+47|0;V=X+I|0;q=-X|0;X=V&q;if(X>>>0<=h>>>0){_=0;return _|0}U=o[3666]|0;do{if((U|0)!=0){z=o[3664]|0;L=z+X|0;if(L>>>0<=z>>>0|L>>>0>U>>>0){_=0}else{break}return _|0}}while(0);e:do{if((o[3667]&4|0)==0){U=o[3562]|0;r:do{if((U|0)==0){j=2218}else{L=U;z=14672;while(1){K=z|0;B=o[K>>2]|0;if(B>>>0<=L>>>0){Y=z+4|0;if((B+(o[Y>>2]|0)|0)>>>0>L>>>0){break}}B=o[z+8>>2]|0;if((B|0)==0){j=2218;break r}else{z=B}}if((z|0)==0){j=2218;break}L=V-(o[3559]|0)&q;if(L>>>0>=2147483647>>>0){G=0;break}d=ze(L|0)|0;i=(d|0)==((o[K>>2]|0)+(o[Y>>2]|0)|0);W=i?d:-1;Q=i?L:0;Z=d;J=L;j=2227}}while(0);do{if((j|0)==2218){U=ze(0)|0;if((U|0)==-1){G=0;break}a=U;L=o[3549]|0;d=L-1|0;if((d&a|0)==0){$=X}else{$=X-a+(d+a&-L)|0}L=o[3664]|0;a=L+$|0;if(!($>>>0>h>>>0&$>>>0<2147483647>>>0)){G=0;break}d=o[3666]|0;if((d|0)!=0){if(a>>>0<=L>>>0|a>>>0>d>>>0){G=0;break}}d=ze($|0)|0;a=(d|0)==(U|0);W=a?U:-1;Q=a?$:0;Z=d;J=$;j=2227}}while(0);r:do{if((j|0)==2227){d=-J|0;if((W|0)!=-1){ee=Q;re=W;j=2238;break e}do{if((Z|0)!=-1&J>>>0<2147483647>>>0&J>>>0<D>>>0){a=o[3550]|0;U=I-J+a&-a;if(U>>>0>=2147483647>>>0){te=J;break}if((ze(U|0)|0)==-1){ze(d|0)|0;G=Q;break r}else{te=U+J|0;break}}else{te=J}}while(0);if((Z|0)==-1){G=Q}else{ee=te;re=Z;j=2238;break e}}}while(0);o[3667]=o[3667]|4;ie=G;j=2235}else{ie=0;j=2235}}while(0);do{if((j|0)==2235){if(X>>>0>=2147483647>>>0){break}G=ze(X|0)|0;Z=ze(0)|0;if(!((Z|0)!=-1&(G|0)!=-1&G>>>0<Z>>>0)){break}te=Z-G|0;Z=te>>>0>(h+40|0)>>>0;Q=Z?G:-1;if((Q|0)!=-1){ee=Z?te:ie;re=Q;j=2238}}}while(0);do{if((j|0)==2238){ie=(o[3664]|0)+ee|0;o[3664]=ie;if(ie>>>0>(o[3665]|0)>>>0){o[3665]=ie}ie=o[3562]|0;e:do{if((ie|0)==0){X=o[3560]|0;if((X|0)==0|re>>>0<X>>>0){o[3560]=re}o[3668]=re;o[3669]=ee;o[3671]=0;o[3565]=o[3548];o[3564]=-1;X=0;do{Q=X<<1;te=14264+(Q<<2)|0;o[14264+(Q+3<<2)>>2]=te;o[14264+(Q+2<<2)>>2]=te;X=X+1|0}while(X>>>0<32>>>0);X=re+8|0;if((X&7|0)==0){ne=0}else{ne=-X&7}X=ee-40-ne|0;o[3562]=re+ne;o[3559]=X;o[re+(ne+4)>>2]=X|1;o[re+(ee-36)>>2]=40;o[3563]=o[3552]}else{X=14672;while(1){oe=o[X>>2]|0;ae=X+4|0;se=o[ae>>2]|0;if((re|0)==(oe+se|0)){j=2250;break}te=o[X+8>>2]|0;if((te|0)==0){break}else{X=te}}do{if((j|0)==2250){if((o[X+12>>2]&8|0)!=0){break}te=ie;if(!(te>>>0>=oe>>>0&te>>>0<re>>>0)){break}o[ae>>2]=se+ee;te=o[3562]|0;Q=(o[3559]|0)+ee|0;Z=te;G=te+8|0;if((G&7|0)==0){le=0}else{le=-G&7}G=Q-le|0;o[3562]=Z+le;o[3559]=G;o[Z+(le+4)>>2]=G|1;o[Z+(Q+4)>>2]=40;o[3563]=o[3552];break e}}while(0);if(re>>>0<(o[3560]|0)>>>0){o[3560]=re}X=re+ee|0;Q=14672;while(1){ue=Q|0;if((o[ue>>2]|0)==(X|0)){j=2260;break}Z=o[Q+8>>2]|0;if((Z|0)==0){break}else{Q=Z}}do{if((j|0)==2260){if((o[Q+12>>2]&8|0)!=0){break}o[ue>>2]=re;X=Q+4|0;o[X>>2]=(o[X>>2]|0)+ee;X=re+8|0;if((X&7|0)==0){fe=0}else{fe=-X&7}X=re+(ee+8)|0;if((X&7|0)==0){ce=0}else{ce=-X&7}X=re+(ce+ee)|0;Z=X;G=fe+h|0;te=re+G|0;J=te;I=X-(re+fe)-h|0;o[re+(fe+4)>>2]=h|3;do{if((Z|0)==(o[3562]|0)){D=(o[3559]|0)+I|0;o[3559]=D;o[3562]=J;o[re+(G+4)>>2]=D|1}else{if((Z|0)==(o[3561]|0)){D=(o[3558]|0)+I|0;o[3558]=D;o[3561]=J;o[re+(G+4)>>2]=D|1;o[re+(D+G)>>2]=D;break}D=ee+4|0;W=o[re+(D+ce)>>2]|0;if((W&3|0)==1){$=W&-8;Y=W>>>3;r:do{if(W>>>0<256>>>0){K=o[re+((ce|8)+ee)>>2]|0;q=o[re+(ee+12+ce)>>2]|0;V=14264+(Y<<1<<2)|0;do{if((K|0)!=(V|0)){if(K>>>0<(o[3560]|0)>>>0){Se();return 0}if((o[K+12>>2]|0)==(Z|0)){break}Se();return 0}}while(0);if((q|0)==(K|0)){o[3556]=o[3556]&~(1<<Y);break}do{if((q|0)==(V|0)){de=q+8|0}else{if(q>>>0<(o[3560]|0)>>>0){Se();return 0}d=q+8|0;if((o[d>>2]|0)==(Z|0)){de=d;break}Se();return 0}}while(0);o[K+12>>2]=q;o[de>>2]=K}else{V=X;d=o[re+((ce|24)+ee)>>2]|0;z=o[re+(ee+12+ce)>>2]|0;do{if((z|0)==(V|0)){U=ce|16;a=re+(D+U)|0;L=o[a>>2]|0;if((L|0)==0){i=re+(U+ee)|0;U=o[i>>2]|0;if((U|0)==0){_e=0;break}else{he=U;pe=i}}else{he=L;pe=a}while(1){a=he+20|0;L=o[a>>2]|0;if((L|0)!=0){he=L;pe=a;continue}a=he+16|0;L=o[a>>2]|0;if((L|0)==0){break}else{he=L;pe=a}}if(pe>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[pe>>2]=0;_e=he;break}}else{a=o[re+((ce|8)+ee)>>2]|0;if(a>>>0<(o[3560]|0)>>>0){Se();return 0}L=a+12|0;if((o[L>>2]|0)!=(V|0)){Se();return 0}i=z+8|0;if((o[i>>2]|0)==(V|0)){o[L>>2]=z;o[i>>2]=a;_e=z;break}else{Se();return 0}}}while(0);if((d|0)==0){break}z=re+(ee+28+ce)|0;K=14528+(o[z>>2]<<2)|0;do{if((V|0)==(o[K>>2]|0)){o[K>>2]=_e;if((_e|0)!=0){break}o[3557]=o[3557]&~(1<<o[z>>2]);break r}else{if(d>>>0<(o[3560]|0)>>>0){Se();return 0}q=d+16|0;if((o[q>>2]|0)==(V|0)){o[q>>2]=_e}else{o[d+20>>2]=_e}if((_e|0)==0){break r}}}while(0);if(_e>>>0<(o[3560]|0)>>>0){Se();return 0}o[_e+24>>2]=d;V=ce|16;z=o[re+(V+ee)>>2]|0;do{if((z|0)!=0){if(z>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[_e+16>>2]=z;o[z+24>>2]=_e;break}}}while(0);z=o[re+(D+V)>>2]|0;if((z|0)==0){break}if(z>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[_e+20>>2]=z;o[z+24>>2]=_e;break}}}while(0);me=re+(($|ce)+ee)|0;Ee=$+I|0}else{me=Z;Ee=I}D=me+4|0;o[D>>2]=o[D>>2]&-2;o[re+(G+4)>>2]=Ee|1;o[re+(Ee+G)>>2]=Ee;D=Ee>>>3;if(Ee>>>0<256>>>0){Y=D<<1;W=14264+(Y<<2)|0;z=o[3556]|0;d=1<<D;do{if((z&d|0)==0){o[3556]=z|d;we=W;be=14264+(Y+2<<2)|0}else{D=14264+(Y+2<<2)|0;K=o[D>>2]|0;if(K>>>0>=(o[3560]|0)>>>0){we=K;be=D;break}Se();return 0}}while(0);o[be>>2]=J;o[we+12>>2]=J;o[re+(G+8)>>2]=we;o[re+(G+12)>>2]=W;break}Y=te;d=Ee>>>8;do{if((d|0)==0){ve=0}else{if(Ee>>>0>16777215>>>0){ve=31;break}z=(d+1048320|0)>>>16&8;$=d<<z;D=($+520192|0)>>>16&4;K=$<<D;$=(K+245760|0)>>>16&2;q=14-(D|z|$)+(K<<$>>>15)|0;ve=Ee>>>((q+7|0)>>>0)&1|q<<1}}while(0);d=14528+(ve<<2)|0;o[re+(G+28)>>2]=ve;o[re+(G+20)>>2]=0;o[re+(G+16)>>2]=0;W=o[3557]|0;q=1<<ve;if((W&q|0)==0){o[3557]=W|q;o[d>>2]=Y;o[re+(G+24)>>2]=d;o[re+(G+12)>>2]=Y;o[re+(G+8)>>2]=Y;break}if((ve|0)==31){ke=0}else{ke=25-(ve>>>1)|0}q=Ee<<ke;W=o[d>>2]|0;while(1){if((o[W+4>>2]&-8|0)==(Ee|0)){break}ge=W+16+(q>>>31<<2)|0;d=o[ge>>2]|0;if((d|0)==0){j=2333;break}else{q=q<<1;W=d}}if((j|0)==2333){if(ge>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[ge>>2]=Y;o[re+(G+24)>>2]=W;o[re+(G+12)>>2]=Y;o[re+(G+8)>>2]=Y;break}}q=W+8|0;d=o[q>>2]|0;$=o[3560]|0;if(W>>>0<$>>>0){Se();return 0}if(d>>>0<$>>>0){Se();return 0}else{o[d+12>>2]=Y;o[q>>2]=Y;o[re+(G+8)>>2]=d;o[re+(G+12)>>2]=W;o[re+(G+24)>>2]=0;break}}}while(0);_=re+(fe|8)|0;return _|0}}while(0);Q=ie;G=14672;while(1){ye=o[G>>2]|0;if(ye>>>0<=Q>>>0){Me=o[G+4>>2]|0;Fe=ye+Me|0;if(Fe>>>0>Q>>>0){break}}G=o[G+8>>2]|0}G=ye+(Me-39)|0;if((G&7|0)==0){Ae=0}else{Ae=-G&7}G=ye+(Me-47+Ae)|0;te=G>>>0<(ie+16|0)>>>0?Q:G;G=te+8|0;J=re+8|0;if((J&7|0)==0){Oe=0}else{Oe=-J&7}J=ee-40-Oe|0;o[3562]=re+Oe;o[3559]=J;o[re+(Oe+4)>>2]=J|1;o[re+(ee-36)>>2]=40;o[3563]=o[3552];o[te+4>>2]=27;o[G>>2]=o[3668];o[G+4>>2]=o[3669];o[G+8>>2]=o[3670];o[G+12>>2]=o[3671];o[3668]=re;o[3669]=ee;o[3671]=0;o[3670]=G;G=te+28|0;o[G>>2]=7;if((te+32|0)>>>0<Fe>>>0){J=G;while(1){G=J+4|0;o[G>>2]=7;if((J+8|0)>>>0<Fe>>>0){J=G}else{break}}}if((te|0)==(Q|0)){break}J=te-ie|0;G=Q+(J+4)|0;o[G>>2]=o[G>>2]&-2;o[ie+4>>2]=J|1;o[Q+J>>2]=J;G=J>>>3;if(J>>>0<256>>>0){I=G<<1;Z=14264+(I<<2)|0;X=o[3556]|0;d=1<<G;do{if((X&d|0)==0){o[3556]=X|d;Re=Z;Te=14264+(I+2<<2)|0}else{G=14264+(I+2<<2)|0;q=o[G>>2]|0;if(q>>>0>=(o[3560]|0)>>>0){Re=q;Te=G;break}Se();return 0}}while(0);o[Te>>2]=ie;o[Re+12>>2]=ie;o[ie+8>>2]=Re;o[ie+12>>2]=Z;break}I=ie;d=J>>>8;do{if((d|0)==0){Ne=0}else{if(J>>>0>16777215>>>0){Ne=31;break}X=(d+1048320|0)>>>16&8;Q=d<<X;te=(Q+520192|0)>>>16&4;G=Q<<te;Q=(G+245760|0)>>>16&2;q=14-(te|X|Q)+(G<<Q>>>15)|0;Ne=J>>>((q+7|0)>>>0)&1|q<<1}}while(0);d=14528+(Ne<<2)|0;o[ie+28>>2]=Ne;o[ie+20>>2]=0;o[ie+16>>2]=0;Z=o[3557]|0;q=1<<Ne;if((Z&q|0)==0){o[3557]=Z|q;o[d>>2]=I;o[ie+24>>2]=d;o[ie+12>>2]=ie;o[ie+8>>2]=ie;break}if((Ne|0)==31){Pe=0}else{Pe=25-(Ne>>>1)|0}q=J<<Pe;Z=o[d>>2]|0;while(1){if((o[Z+4>>2]&-8|0)==(J|0)){break}xe=Z+16+(q>>>31<<2)|0;d=o[xe>>2]|0;if((d|0)==0){j=2368;break}else{q=q<<1;Z=d}}if((j|0)==2368){if(xe>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[xe>>2]=I;o[ie+24>>2]=Z;o[ie+12>>2]=ie;o[ie+8>>2]=ie;break}}q=Z+8|0;J=o[q>>2]|0;d=o[3560]|0;if(Z>>>0<d>>>0){Se();return 0}if(J>>>0<d>>>0){Se();return 0}else{o[J+12>>2]=I;o[q>>2]=I;o[ie+8>>2]=J;o[ie+12>>2]=Z;o[ie+24>>2]=0;break}}}while(0);ie=o[3559]|0;if(ie>>>0<=h>>>0){break}J=ie-h|0;o[3559]=J;ie=o[3562]|0;q=ie;o[3562]=q+h;o[q+(h+4)>>2]=J|1;o[ie+4>>2]=h|3;_=ie+8|0;return _|0}}while(0);o[(Ve()|0)>>2]=12;_=0;return _|0}function Ri(e){e=e|0;var r=0,t=0,i=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0,D=0,I=0,L=0,B=0,H=0,U=0;if((e|0)==0){return}r=e-8|0;t=r;i=o[3560]|0;if(r>>>0<i>>>0){Se()}n=o[e-4>>2]|0;a=n&3;if((a|0)==1){Se()}s=n&-8;l=e+(s-8)|0;u=l;e:do{if((n&1|0)==0){f=o[r>>2]|0;if((a|0)==0){return}c=-8-f|0;d=e+c|0;_=d;h=f+s|0;if(d>>>0<i>>>0){Se()}if((_|0)==(o[3561]|0)){p=e+(s-4)|0;if((o[p>>2]&3|0)!=3){m=_;E=h;break}o[3558]=h;o[p>>2]=o[p>>2]&-2;o[e+(c+4)>>2]=h|1;o[l>>2]=h;return}p=f>>>3;if(f>>>0<256>>>0){f=o[e+(c+8)>>2]|0;w=o[e+(c+12)>>2]|0;b=14264+(p<<1<<2)|0;do{if((f|0)!=(b|0)){if(f>>>0<i>>>0){Se()}if((o[f+12>>2]|0)==(_|0)){break}Se()}}while(0);if((w|0)==(f|0)){o[3556]=o[3556]&~(1<<p);m=_;E=h;break}do{if((w|0)==(b|0)){S=w+8|0}else{if(w>>>0<i>>>0){Se()}v=w+8|0;if((o[v>>2]|0)==(_|0)){S=v;break}Se()}}while(0);o[f+12>>2]=w;o[S>>2]=f;m=_;E=h;break}b=d;p=o[e+(c+24)>>2]|0;v=o[e+(c+12)>>2]|0;do{if((v|0)==(b|0)){k=e+(c+20)|0;g=o[k>>2]|0;if((g|0)==0){y=e+(c+16)|0;M=o[y>>2]|0;if((M|0)==0){F=0;break}else{A=M;O=y}}else{A=g;O=k}while(1){k=A+20|0;g=o[k>>2]|0;if((g|0)!=0){A=g;O=k;continue}k=A+16|0;g=o[k>>2]|0;if((g|0)==0){break}else{A=g;O=k}}if(O>>>0<i>>>0){Se()}else{o[O>>2]=0;F=A;break}}else{k=o[e+(c+8)>>2]|0;if(k>>>0<i>>>0){Se()}g=k+12|0;if((o[g>>2]|0)!=(b|0)){Se()}y=v+8|0;if((o[y>>2]|0)==(b|0)){o[g>>2]=v;o[y>>2]=k;F=v;break}else{Se()}}}while(0);if((p|0)==0){m=_;E=h;break}v=e+(c+28)|0;d=14528+(o[v>>2]<<2)|0;do{if((b|0)==(o[d>>2]|0)){o[d>>2]=F;if((F|0)!=0){break}o[3557]=o[3557]&~(1<<o[v>>2]);m=_;E=h;break e}else{if(p>>>0<(o[3560]|0)>>>0){Se()}f=p+16|0;if((o[f>>2]|0)==(b|0)){o[f>>2]=F}else{o[p+20>>2]=F}if((F|0)==0){m=_;E=h;break e}}}while(0);if(F>>>0<(o[3560]|0)>>>0){Se()}o[F+24>>2]=p;b=o[e+(c+16)>>2]|0;do{if((b|0)!=0){if(b>>>0<(o[3560]|0)>>>0){Se()}else{o[F+16>>2]=b;o[b+24>>2]=F;break}}}while(0);b=o[e+(c+20)>>2]|0;if((b|0)==0){m=_;E=h;break}if(b>>>0<(o[3560]|0)>>>0){Se()}else{o[F+20>>2]=b;o[b+24>>2]=F;m=_;E=h;break}}else{m=t;E=s}}while(0);t=m;if(t>>>0>=l>>>0){Se()}F=e+(s-4)|0;i=o[F>>2]|0;if((i&1|0)==0){Se()}do{if((i&2|0)==0){if((u|0)==(o[3562]|0)){A=(o[3559]|0)+E|0;o[3559]=A;o[3562]=m;o[m+4>>2]=A|1;if((m|0)!=(o[3561]|0)){return}o[3561]=0;o[3558]=0;return}if((u|0)==(o[3561]|0)){A=(o[3558]|0)+E|0;o[3558]=A;o[3561]=m;o[m+4>>2]=A|1;o[t+A>>2]=A;return}A=(i&-8)+E|0;O=i>>>3;e:do{if(i>>>0<256>>>0){S=o[e+s>>2]|0;a=o[e+(s|4)>>2]|0;r=14264+(O<<1<<2)|0;do{if((S|0)!=(r|0)){if(S>>>0<(o[3560]|0)>>>0){Se()}if((o[S+12>>2]|0)==(u|0)){break}Se()}}while(0);if((a|0)==(S|0)){o[3556]=o[3556]&~(1<<O);break}do{if((a|0)==(r|0)){R=a+8|0}else{if(a>>>0<(o[3560]|0)>>>0){Se()}n=a+8|0;if((o[n>>2]|0)==(u|0)){R=n;break}Se()}}while(0);o[S+12>>2]=a;o[R>>2]=S}else{r=l;n=o[e+(s+16)>>2]|0;b=o[e+(s|4)>>2]|0;do{if((b|0)==(r|0)){p=e+(s+12)|0;v=o[p>>2]|0;if((v|0)==0){d=e+(s+8)|0;f=o[d>>2]|0;if((f|0)==0){T=0;break}else{N=f;P=d}}else{N=v;P=p}while(1){p=N+20|0;v=o[p>>2]|0;if((v|0)!=0){N=v;P=p;continue}p=N+16|0;v=o[p>>2]|0;if((v|0)==0){break}else{N=v;P=p}}if(P>>>0<(o[3560]|0)>>>0){Se()}else{o[P>>2]=0;T=N;break}}else{p=o[e+s>>2]|0;if(p>>>0<(o[3560]|0)>>>0){Se()}v=p+12|0;if((o[v>>2]|0)!=(r|0)){Se()}d=b+8|0;if((o[d>>2]|0)==(r|0)){o[v>>2]=b;o[d>>2]=p;T=b;break}else{Se()}}}while(0);if((n|0)==0){break}b=e+(s+20)|0;S=14528+(o[b>>2]<<2)|0;do{if((r|0)==(o[S>>2]|0)){o[S>>2]=T;if((T|0)!=0){break}o[3557]=o[3557]&~(1<<o[b>>2]);break e}else{if(n>>>0<(o[3560]|0)>>>0){Se()}a=n+16|0;if((o[a>>2]|0)==(r|0)){o[a>>2]=T}else{o[n+20>>2]=T}if((T|0)==0){break e}}}while(0);if(T>>>0<(o[3560]|0)>>>0){Se()}o[T+24>>2]=n;r=o[e+(s+8)>>2]|0;do{if((r|0)!=0){if(r>>>0<(o[3560]|0)>>>0){Se()}else{o[T+16>>2]=r;o[r+24>>2]=T;break}}}while(0);r=o[e+(s+12)>>2]|0;if((r|0)==0){break}if(r>>>0<(o[3560]|0)>>>0){Se()}else{o[T+20>>2]=r;o[r+24>>2]=T;break}}}while(0);o[m+4>>2]=A|1;o[t+A>>2]=A;if((m|0)!=(o[3561]|0)){x=A;break}o[3558]=A;return}else{o[F>>2]=i&-2;o[m+4>>2]=E|1;o[t+E>>2]=E;x=E}}while(0);E=x>>>3;if(x>>>0<256>>>0){t=E<<1;i=14264+(t<<2)|0;F=o[3556]|0;T=1<<E;do{if((F&T|0)==0){o[3556]=F|T;C=i;D=14264+(t+2<<2)|0}else{E=14264+(t+2<<2)|0;s=o[E>>2]|0;if(s>>>0>=(o[3560]|0)>>>0){C=s;D=E;break}Se()}}while(0);o[D>>2]=m;o[C+12>>2]=m;o[m+8>>2]=C;o[m+12>>2]=i;return}i=m;C=x>>>8;do{if((C|0)==0){I=0}else{if(x>>>0>16777215>>>0){I=31;break}D=(C+1048320|0)>>>16&8;t=C<<D;T=(t+520192|0)>>>16&4;F=t<<T;t=(F+245760|0)>>>16&2;E=14-(T|D|t)+(F<<t>>>15)|0;I=x>>>((E+7|0)>>>0)&1|E<<1}}while(0);C=14528+(I<<2)|0;o[m+28>>2]=I;o[m+20>>2]=0;o[m+16>>2]=0;E=o[3557]|0;t=1<<I;do{if((E&t|0)==0){o[3557]=E|t;o[C>>2]=i;o[m+24>>2]=C;o[m+12>>2]=m;o[m+8>>2]=m}else{if((I|0)==31){L=0}else{L=25-(I>>>1)|0}F=x<<L;D=o[C>>2]|0;while(1){if((o[D+4>>2]&-8|0)==(x|0)){break}B=D+16+(F>>>31<<2)|0;T=o[B>>2]|0;if((T|0)==0){H=2545;break}else{F=F<<1;D=T}}if((H|0)==2545){if(B>>>0<(o[3560]|0)>>>0){Se()}else{o[B>>2]=i;o[m+24>>2]=D;o[m+12>>2]=m;o[m+8>>2]=m;break}}F=D+8|0;A=o[F>>2]|0;T=o[3560]|0;if(D>>>0<T>>>0){Se()}if(A>>>0<T>>>0){Se()}else{o[A+12>>2]=i;o[F>>2]=i;o[m+8>>2]=A;o[m+12>>2]=D;o[m+24>>2]=0;break}}}while(0);m=(o[3564]|0)-1|0;o[3564]=m;if((m|0)==0){U=14680}else{return}while(1){m=o[U>>2]|0;if((m|0)==0){break}else{U=m+8|0}}o[3564]=-1;return}function Ti(e,r){e=e|0;r=r|0;var t=0,i=0;do{if((e|0)==0){t=0}else{i=re(r,e)|0;if((r|e)>>>0<=65535>>>0){t=i;break}t=((i>>>0)/(e>>>0)|0|0)==(r|0)?i:-1}}while(0);r=Oi(t)|0;if((r|0)==0){return r|0}if((o[r-4>>2]&3|0)==0){return r|0}Zi(r|0,0,t|0);return r|0}function Ni(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,a=0;if((e|0)==0){t=Oi(r)|0;return t|0}if(r>>>0>4294967231>>>0){o[(Ve()|0)>>2]=12;t=0;return t|0}if(r>>>0<11>>>0){i=16}else{i=r+11&-8}n=Pi(e-8|0,i)|0;if((n|0)!=0){t=n+8|0;return t|0}n=Oi(r)|0;if((n|0)==0){t=0;return t|0}i=o[e-4>>2]|0;a=(i&-8)-((i&3|0)==0?8:4)|0;i=a>>>0<r>>>0?a:r;Gi(n|0,e|0,i)|0;Ri(e);t=n;return t|0}function Pi(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0,F=0;t=e+4|0;i=o[t>>2]|0;n=i&-8;a=e;s=a+n|0;l=s;u=o[3560]|0;if(a>>>0<u>>>0){Se();return 0}f=i&3;if(!((f|0)!=1&a>>>0<s>>>0)){Se();return 0}c=a+(n|4)|0;d=o[c>>2]|0;if((d&1|0)==0){Se();return 0}if((f|0)==0){if(r>>>0<256>>>0){_=0;return _|0}do{if(n>>>0>=(r+4|0)>>>0){if((n-r|0)>>>0>o[3550]<<1>>>0){break}else{_=e}return _|0}}while(0);_=0;return _|0}if(n>>>0>=r>>>0){f=n-r|0;if(f>>>0<=15>>>0){_=e;return _|0}o[t>>2]=i&1|r|2;o[a+(r+4)>>2]=f|3;o[c>>2]=o[c>>2]|1;Yi(a+r|0,f);_=e;return _|0}if((l|0)==(o[3562]|0)){f=(o[3559]|0)+n|0;if(f>>>0<=r>>>0){_=0;return _|0}c=f-r|0;o[t>>2]=i&1|r|2;o[a+(r+4)>>2]=c|1;o[3562]=a+r;o[3559]=c;_=e;return _|0}if((l|0)==(o[3561]|0)){c=(o[3558]|0)+n|0;if(c>>>0<r>>>0){_=0;return _|0}f=c-r|0;if(f>>>0>15>>>0){o[t>>2]=i&1|r|2;o[a+(r+4)>>2]=f|1;o[a+c>>2]=f;h=a+(c+4)|0;o[h>>2]=o[h>>2]&-2;p=a+r|0;m=f}else{o[t>>2]=i&1|c|2;i=a+(c+4)|0;o[i>>2]=o[i>>2]|1;p=0;m=0}o[3558]=m;o[3561]=p;_=e;return _|0}if((d&2|0)!=0){_=0;return _|0}p=(d&-8)+n|0;if(p>>>0<r>>>0){_=0;return _|0}m=p-r|0;i=d>>>3;e:do{if(d>>>0<256>>>0){c=o[a+(n+8)>>2]|0;f=o[a+(n+12)>>2]|0;h=14264+(i<<1<<2)|0;do{if((c|0)!=(h|0)){if(c>>>0<u>>>0){Se();return 0}if((o[c+12>>2]|0)==(l|0)){break}Se();return 0}}while(0);if((f|0)==(c|0)){o[3556]=o[3556]&~(1<<i);break}do{if((f|0)==(h|0)){E=f+8|0}else{if(f>>>0<u>>>0){Se();return 0}w=f+8|0;if((o[w>>2]|0)==(l|0)){E=w;break}Se();return 0}}while(0);o[c+12>>2]=f;o[E>>2]=c}else{h=s;w=o[a+(n+24)>>2]|0;b=o[a+(n+12)>>2]|0;do{if((b|0)==(h|0)){S=a+(n+20)|0;v=o[S>>2]|0;if((v|0)==0){k=a+(n+16)|0;g=o[k>>2]|0;if((g|0)==0){y=0;break}else{M=g;F=k}}else{M=v;F=S}while(1){S=M+20|0;v=o[S>>2]|0;if((v|0)!=0){M=v;F=S;continue}S=M+16|0;v=o[S>>2]|0;if((v|0)==0){break}else{M=v;F=S}}if(F>>>0<u>>>0){Se();return 0}else{o[F>>2]=0;y=M;break}}else{S=o[a+(n+8)>>2]|0;if(S>>>0<u>>>0){Se();return 0}v=S+12|0;if((o[v>>2]|0)!=(h|0)){Se();return 0}k=b+8|0;if((o[k>>2]|0)==(h|0)){o[v>>2]=b;o[k>>2]=S;y=b;break}else{Se();return 0}}}while(0);if((w|0)==0){break}b=a+(n+28)|0;c=14528+(o[b>>2]<<2)|0;do{if((h|0)==(o[c>>2]|0)){o[c>>2]=y;if((y|0)!=0){break}o[3557]=o[3557]&~(1<<o[b>>2]);break e}else{if(w>>>0<(o[3560]|0)>>>0){Se();return 0}f=w+16|0;if((o[f>>2]|0)==(h|0)){o[f>>2]=y}else{o[w+20>>2]=y}if((y|0)==0){break e}}}while(0);if(y>>>0<(o[3560]|0)>>>0){Se();return 0}o[y+24>>2]=w;h=o[a+(n+16)>>2]|0;do{if((h|0)!=0){if(h>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[y+16>>2]=h;o[h+24>>2]=y;break}}}while(0);h=o[a+(n+20)>>2]|0;if((h|0)==0){break}if(h>>>0<(o[3560]|0)>>>0){Se();return 0}else{o[y+20>>2]=h;o[h+24>>2]=y;break}}}while(0);if(m>>>0<16>>>0){o[t>>2]=p|o[t>>2]&1|2;y=a+(p|4)|0;o[y>>2]=o[y>>2]|1;_=e;return _|0}else{o[t>>2]=o[t>>2]&1|r|2;o[a+(r+4)>>2]=m|3;t=a+(p|4)|0;o[t>>2]=o[t>>2]|1;Yi(a+r|0,m);_=e;return _|0}return 0}function xi(e,r){e=e|0;r=r|0;var t=0;if(e>>>0<9>>>0){t=Oi(r)|0;return t|0}else{t=Ci(e,r)|0;return t|0}return 0}function Ci(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0,_=0,h=0;t=e>>>0<16>>>0?16:e;if((t-1&t|0)==0){i=t}else{e=16;while(1){if(e>>>0<t>>>0){e=e<<1}else{i=e;break}}}if((-64-i|0)>>>0<=r>>>0){o[(Ve()|0)>>2]=12;n=0;return n|0}if(r>>>0<11>>>0){a=16}else{a=r+11&-8}r=Oi(i+12+a|0)|0;if((r|0)==0){n=0;return n|0}e=r-8|0;t=e;s=i-1|0;do{if((r&s|0)==0){l=t}else{u=r+s&-i;f=u-8|0;c=e;if((f-c|0)>>>0>15>>>0){d=f}else{d=u+(i-8)|0}u=d;f=d-c|0;c=r-4|0;_=o[c>>2]|0;h=(_&-8)-f|0;if((_&3|0)==0){o[d>>2]=(o[e>>2]|0)+f;o[d+4>>2]=h;l=u;break}else{_=d+4|0;o[_>>2]=h|o[_>>2]&1|2;_=d+(h+4)|0;o[_>>2]=o[_>>2]|1;o[c>>2]=f|o[c>>2]&1|2;c=r+(f-4)|0;o[c>>2]=o[c>>2]|1;Yi(t,f);l=u;break}}}while(0);t=l+4|0;r=o[t>>2]|0;do{if((r&3|0)!=0){d=r&-8;if(d>>>0<=(a+16|0)>>>0){break}e=d-a|0;i=l;o[t>>2]=a|r&1|2;o[i+(a|4)>>2]=e|3;s=i+(d|4)|0;o[s>>2]=o[s>>2]|1;Yi(i+a|0,e)}}while(0);n=l+8|0;return n|0}function Di(e){e=e|0;var r=0,t=0,i=0;if((o[3548]|0)!=0){r=o[3549]|0;t=xi(r,e)|0;return t|0}i=De(30)|0;if((i-1&i|0)!=0){Se();return 0}o[3550]=i;o[3549]=i;o[3551]=-1;o[3552]=-1;o[3553]=0;o[3667]=0;o[3548]=(je(0)|0)&-16^1431655768;r=o[3549]|0;t=xi(r,e)|0;return t|0}function Ii(e){e=e|0;var r=0;do{if((o[3548]|0)==0){r=De(30)|0;if((r-1&r|0)==0){o[3550]=r;o[3549]=r;o[3551]=-1;o[3552]=-1;o[3553]=0;o[3667]=0;o[3548]=(je(0)|0)&-16^1431655768;break}else{Se();return 0}}}while(0);r=o[3549]|0;return xi(r,e-1+r&-r)|0}function Li(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0;i=c;c=c+8|0;n=i|0;o[n>>2]=r;r=Bi(e,n,3,t)|0;c=i;return r|0}function Bi(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0;do{if((o[3548]|0)==0){n=De(30)|0;if((n-1&n|0)==0){o[3550]=n;o[3549]=n;o[3551]=-1;o[3552]=-1;o[3553]=0;o[3667]=0;o[3548]=(je(0)|0)&-16^1431655768;break}else{Se();return 0}}}while(0);n=(e|0)==0;do{if((i|0)==0){if(n){a=Oi(0)|0;return a|0}else{s=e<<2;if(s>>>0<11>>>0){l=0;u=16;break}l=0;u=s+11&-8;break}}else{if(n){a=i}else{l=i;u=0;break}return a|0}}while(0);do{if((t&1|0)==0){if(n){f=0;c=0;break}else{d=0;_=0}while(1){i=o[r+(_<<2)>>2]|0;if(i>>>0<11>>>0){h=16}else{h=i+11&-8}i=h+d|0;s=_+1|0;if((s|0)==(e|0)){f=0;c=i;break}else{d=i;_=s}}}else{s=o[r>>2]|0;if(s>>>0<11>>>0){p=16}else{p=s+11&-8}f=p;c=re(p,e)|0}}while(0);p=Oi(u-4+c|0)|0;if((p|0)==0){a=0;return a|0}_=p-8|0;d=o[p-4>>2]&-8;if((t&2|0)!=0){Zi(p|0,0,-4-u+d|0)}if((l|0)==0){o[p+(c-4)>>2]=d-c|3;m=p+c|0;E=c}else{m=l;E=d}o[m>>2]=p;p=e-1|0;e:do{if((p|0)==0){w=_;b=E}else{if((f|0)==0){S=_;v=E;k=0}else{e=_;d=E;l=0;while(1){c=d-f|0;o[e+4>>2]=f|3;u=e+f|0;t=l+1|0;o[m+(t<<2)>>2]=e+(f+8);if((t|0)==(p|0)){w=u;b=c;break e}else{e=u;d=c;l=t}}}while(1){l=o[r+(k<<2)>>2]|0;if(l>>>0<11>>>0){g=16}else{g=l+11&-8}l=v-g|0;o[S+4>>2]=g|3;d=S+g|0;e=k+1|0;o[m+(e<<2)>>2]=S+(g+8);if((e|0)==(p|0)){w=d;b=l;break}else{S=d;v=l;k=e}}}}while(0);o[w+4>>2]=b|3;a=m;return a|0}function Hi(e,r,t){e=e|0;r=r|0;t=t|0;return Bi(e,r,0,t)|0}function Ui(e){e=e|0;var r=0,t=0,i=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0;do{if((o[3548]|0)==0){r=De(30)|0;if((r-1&r|0)==0){o[3550]=r;o[3549]=r;o[3551]=-1;o[3552]=-1;o[3553]=0;o[3667]=0;o[3548]=(je(0)|0)&-16^1431655768;break}else{Se();return 0}}}while(0);if(e>>>0>=4294967232>>>0){t=0;return t|0}r=o[3562]|0;if((r|0)==0){t=0;return t|0}i=o[3559]|0;do{if(i>>>0>(e+40|0)>>>0){n=o[3550]|0;a=re((((-41-e+i+n|0)>>>0)/(n>>>0)|0)-1|0,n)|0;s=r;l=14672;while(1){u=o[l>>2]|0;if(u>>>0<=s>>>0){if((u+(o[l+4>>2]|0)|0)>>>0>s>>>0){f=l;break}}u=o[l+8>>2]|0;if((u|0)==0){f=0;break}else{l=u}}if((o[f+12>>2]&8|0)!=0){break}l=ze(0)|0;s=f+4|0;if((l|0)!=((o[f>>2]|0)+(o[s>>2]|0)|0)){break}u=ze(-(a>>>0>2147483646>>>0?-2147483648-n|0:a)|0)|0;c=ze(0)|0;if(!((u|0)!=-1&c>>>0<l>>>0)){break}u=l-c|0;if((l|0)==(c|0)){break}o[s>>2]=(o[s>>2]|0)-u;o[3664]=(o[3664]|0)-u;s=o[3562]|0;c=(o[3559]|0)-u|0;u=s;l=s+8|0;if((l&7|0)==0){d=0}else{d=-l&7}l=c-d|0;o[3562]=u+d;o[3559]=l;o[u+(d+4)>>2]=l|1;o[u+(c+4)>>2]=40;o[3563]=o[3552];t=1;return t|0}}while(0);if((o[3559]|0)>>>0<=(o[3563]|0)>>>0){t=0;return t|0}o[3563]=-1;t=0;return t|0}function zi(){return o[3664]|0}function qi(){return o[3665]|0}function Vi(e){e=e|0;var r=0,t=0,i=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0,F=0,A=0,O=0,R=0;do{if((o[3548]|0)==0){r=De(30)|0;if((r-1&r|0)==0){o[3550]=r;o[3549]=r;o[3551]=-1;o[3552]=-1;o[3553]=0;o[3667]=0;o[3548]=(je(0)|0)&-16^1431655768;break}else{Se()}}}while(0);r=o[3562]|0;if((r|0)==0){t=0;i=0;n=0;a=0;s=0;l=0;u=0}else{f=o[3559]|0;c=f+40|0;d=1;_=c;h=c;c=14672;while(1){p=o[c>>2]|0;m=p+8|0;if((m&7|0)==0){E=0}else{E=-m&7}m=p+(o[c+4>>2]|0)|0;w=d;b=_;S=h;v=p+E|0;while(1){if(v>>>0>=m>>>0|(v|0)==(r|0)){k=w;g=b;y=S;break}M=o[v+4>>2]|0;if((M|0)==7){k=w;g=b;y=S;break}F=M&-8;A=F+S|0;if((M&3|0)==1){O=F+b|0;R=w+1|0}else{O=b;R=w}M=v+F|0;if(M>>>0<p>>>0){k=R;g=O;y=A;break}else{w=R;b=O;S=A;v=M}}v=o[c+8>>2]|0;if((v|0)==0){break}else{d=k;_=g;h=y;c=v}}c=o[3664]|0;t=f;i=y;n=k;a=c-y|0;s=o[3665]|0;l=c-g|0;u=g}o[e>>2]=i;o[e+4>>2]=n;n=e+8|0;o[n>>2]=0;o[n+4>>2]=0;o[e+16>>2]=a;o[e+20>>2]=s;o[e+24>>2]=0;o[e+28>>2]=l;o[e+32>>2]=u;o[e+36>>2]=t;return}function Xi(){var e=0,r=0,t=0,i=0,n=0,a=0,s=0,l=0,u=0,f=0,d=0,_=0,h=0,m=0,E=0,w=0,b=0,S=0;e=c;do{if((o[3548]|0)==0){r=De(30)|0;if((r-1&r|0)==0){o[3550]=r;o[3549]=r;o[3551]=-1;o[3552]=-1;o[3553]=0;o[3667]=0;o[3548]=(je(0)|0)&-16^1431655768;break}else{Se()}}}while(0);r=o[3562]|0;if((r|0)==0){t=0;i=0;n=0}else{a=o[3665]|0;s=o[3664]|0;l=s-40-(o[3559]|0)|0;u=14672;while(1){f=o[u>>2]|0;d=f+8|0;if((d&7|0)==0){_=0}else{_=-d&7}d=f+(o[u+4>>2]|0)|0;h=l;m=f+_|0;while(1){if(m>>>0>=d>>>0|(m|0)==(r|0)){E=h;break}w=o[m+4>>2]|0;if((w|0)==7){E=h;break}b=w&-8;S=h-((w&3|0)==1?b:0)|0;w=m+b|0;if(w>>>0<f>>>0){E=S;break}else{h=S;m=w}}m=o[u+8>>2]|0;if((m|0)==0){t=E;i=s;n=a;break}else{l=E;u=m}}}u=o[p>>2]|0;ve(u|0,13872,(E=c,c=c+8|0,o[E>>2]=n,E)|0)|0;c=E;ve(u|0,13920,(E=c,c=c+8|0,o[E>>2]=i,E)|0)|0;c=E;ve(u|0,13608,(E=c,c=c+8|0,o[E>>2]=t,E)|0)|0;c=E;c=e;return}function ji(e,r){e=e|0;r=r|0;var t=0,i=0;do{if((o[3548]|0)==0){t=De(30)|0;if((t-1&t|0)==0){o[3550]=t;o[3549]=t;o[3551]=-1;o[3552]=-1;o[3553]=0;o[3667]=0;o[3548]=(je(0)|0)&-16^1431655768;break}else{Se();return 0}}}while(0);if((e|0)==(-3|0)){o[3551]=r;i=1;return i|0}else if((e|0)==(-1|0)){o[3552]=r;i=1;return i|0}else if((e|0)==(-2|0)){if((o[3549]|0)>>>0>r>>>0){i=0;return i|0}if((r-1&r|0)!=0){i=0;return i|0}o[3550]=r;i=1;return i|0}else{i=0;return i|0}return 0}function Ki(e){e=e|0;var r=0,t=0,i=0;do{if((e|0)==0){r=0}else{t=o[e-4>>2]|0;i=t&3;if((i|0)==1){r=0;break}r=(t&-8)-((i|0)==0?8:4)|0}}while(0);return r|0}function Yi(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,a=0,s=0,l=0,u=0,f=0,c=0,d=0,_=0,h=0,p=0,m=0,E=0,w=0,b=0,S=0,v=0,k=0,g=0,y=0,M=0,F=0,A=0,O=0,R=0,T=0,N=0,P=0,x=0,C=0,D=0,I=0,L=0;t=e;i=t+r|0;n=i;a=o[e+4>>2]|0;e:do{if((a&1|0)==0){s=o[e>>2]|0;if((a&3|0)==0){return}l=t+(-s|0)|0;u=l;f=s+r|0;c=o[3560]|0;if(l>>>0<c>>>0){Se()}if((u|0)==(o[3561]|0)){d=t+(r+4)|0;if((o[d>>2]&3|0)!=3){_=u;h=f;break}o[3558]=f;o[d>>2]=o[d>>2]&-2;o[t+(4-s)>>2]=f|1;o[i>>2]=f;return}d=s>>>3;if(s>>>0<256>>>0){p=o[t+(8-s)>>2]|0;m=o[t+(12-s)>>2]|0;E=14264+(d<<1<<2)|0;do{if((p|0)!=(E|0)){if(p>>>0<c>>>0){Se()}if((o[p+12>>2]|0)==(u|0)){break}Se()}}while(0);if((m|0)==(p|0)){o[3556]=o[3556]&~(1<<d);_=u;h=f;break}do{if((m|0)==(E|0)){w=m+8|0}else{if(m>>>0<c>>>0){Se()}b=m+8|0;if((o[b>>2]|0)==(u|0)){w=b;break}Se()}}while(0);o[p+12>>2]=m;o[w>>2]=p;_=u;h=f;break}E=l;d=o[t+(24-s)>>2]|0;b=o[t+(12-s)>>2]|0;do{if((b|0)==(E|0)){S=16-s|0;v=t+(S+4)|0;k=o[v>>2]|0;if((k|0)==0){g=t+S|0;S=o[g>>2]|0;if((S|0)==0){y=0;break}else{M=S;F=g}}else{M=k;F=v}while(1){v=M+20|0;k=o[v>>2]|0;if((k|0)!=0){M=k;F=v;continue}v=M+16|0;k=o[v>>2]|0;if((k|0)==0){break}else{M=k;F=v}}if(F>>>0<c>>>0){Se()}else{o[F>>2]=0;y=M;break}}else{v=o[t+(8-s)>>2]|0;if(v>>>0<c>>>0){Se()}k=v+12|0;if((o[k>>2]|0)!=(E|0)){Se()}g=b+8|0;if((o[g>>2]|0)==(E|0)){o[k>>2]=b;o[g>>2]=v;y=b;break}else{Se()}}}while(0);if((d|0)==0){_=u;h=f;break}b=t+(28-s)|0;c=14528+(o[b>>2]<<2)|0;do{if((E|0)==(o[c>>2]|0)){o[c>>2]=y;if((y|0)!=0){break}o[3557]=o[3557]&~(1<<o[b>>2]);_=u;h=f;break e}else{if(d>>>0<(o[3560]|0)>>>0){Se()}l=d+16|0;if((o[l>>2]|0)==(E|0)){o[l>>2]=y}else{o[d+20>>2]=y}if((y|0)==0){_=u;h=f;break e}}}while(0);if(y>>>0<(o[3560]|0)>>>0){Se()}o[y+24>>2]=d;E=16-s|0;b=o[t+E>>2]|0;do{if((b|0)!=0){if(b>>>0<(o[3560]|0)>>>0){Se()}else{o[y+16>>2]=b;o[b+24>>2]=y;break}}}while(0);b=o[t+(E+4)>>2]|0;if((b|0)==0){_=u;h=f;break}if(b>>>0<(o[3560]|0)>>>0){Se()}else{o[y+20>>2]=b;o[b+24>>2]=y;_=u;h=f;break}}else{_=e;h=r}}while(0);e=o[3560]|0;if(i>>>0<e>>>0){Se()}y=t+(r+4)|0;M=o[y>>2]|0;do{if((M&2|0)==0){if((n|0)==(o[3562]|0)){F=(o[3559]|0)+h|0;o[3559]=F;o[3562]=_;o[_+4>>2]=F|1;if((_|0)!=(o[3561]|0)){return}o[3561]=0;o[3558]=0;return}if((n|0)==(o[3561]|0)){F=(o[3558]|0)+h|0;o[3558]=F;o[3561]=_;o[_+4>>2]=F|1;o[_+F>>2]=F;return}F=(M&-8)+h|0;w=M>>>3;e:do{if(M>>>0<256>>>0){a=o[t+(r+8)>>2]|0;b=o[t+(r+12)>>2]|0;s=14264+(w<<1<<2)|0;do{if((a|0)!=(s|0)){if(a>>>0<e>>>0){Se()}if((o[a+12>>2]|0)==(n|0)){break}Se()}}while(0);if((b|0)==(a|0)){o[3556]=o[3556]&~(1<<w);break}do{if((b|0)==(s|0)){A=b+8|0}else{if(b>>>0<e>>>0){Se()}d=b+8|0;if((o[d>>2]|0)==(n|0)){A=d;break}Se()}}while(0);o[a+12>>2]=b;o[A>>2]=a}else{s=i;d=o[t+(r+24)>>2]|0;c=o[t+(r+12)>>2]|0;do{if((c|0)==(s|0)){l=t+(r+20)|0;p=o[l>>2]|0;if((p|0)==0){m=t+(r+16)|0;v=o[m>>2]|0;if((v|0)==0){O=0;break}else{R=v;T=m}}else{R=p;T=l}while(1){l=R+20|0;p=o[l>>2]|0;if((p|0)!=0){R=p;T=l;continue}l=R+16|0;p=o[l>>2]|0;if((p|0)==0){break}else{R=p;T=l}}if(T>>>0<e>>>0){Se()}else{o[T>>2]=0;O=R;break}}else{l=o[t+(r+8)>>2]|0;if(l>>>0<e>>>0){Se()}p=l+12|0;if((o[p>>2]|0)!=(s|0)){Se()}m=c+8|0;if((o[m>>2]|0)==(s|0)){o[p>>2]=c;o[m>>2]=l;O=c;break}else{Se()}}}while(0);if((d|0)==0){break}c=t+(r+28)|0;a=14528+(o[c>>2]<<2)|0;do{if((s|0)==(o[a>>2]|0)){o[a>>2]=O;if((O|0)!=0){break}o[3557]=o[3557]&~(1<<o[c>>2]);break e}else{if(d>>>0<(o[3560]|0)>>>0){Se()}b=d+16|0;if((o[b>>2]|0)==(s|0)){o[b>>2]=O}else{o[d+20>>2]=O}if((O|0)==0){break e}}}while(0);if(O>>>0<(o[3560]|0)>>>0){Se()}o[O+24>>2]=d;s=o[t+(r+16)>>2]|0;do{if((s|0)!=0){if(s>>>0<(o[3560]|0)>>>0){Se()}else{o[O+16>>2]=s;o[s+24>>2]=O;break}}}while(0);s=o[t+(r+20)>>2]|0;if((s|0)==0){break}if(s>>>0<(o[3560]|0)>>>0){Se()}else{o[O+20>>2]=s;o[s+24>>2]=O;break}}}while(0);o[_+4>>2]=F|1;o[_+F>>2]=F;if((_|0)!=(o[3561]|0)){N=F;break}o[3558]=F;return}else{o[y>>2]=M&-2;o[_+4>>2]=h|1;o[_+h>>2]=h;N=h}}while(0);h=N>>>3;if(N>>>0<256>>>0){M=h<<1;y=14264+(M<<2)|0;O=o[3556]|0;r=1<<h;do{if((O&r|0)==0){o[3556]=O|r;P=y;x=14264+(M+2<<2)|0}else{h=14264+(M+2<<2)|0;t=o[h>>2]|0;if(t>>>0>=(o[3560]|0)>>>0){P=t;x=h;break}Se()}}while(0);o[x>>2]=_;o[P+12>>2]=_;o[_+8>>2]=P;o[_+12>>2]=y;return}y=_;P=N>>>8;do{if((P|0)==0){C=0}else{if(N>>>0>16777215>>>0){C=31;break}x=(P+1048320|0)>>>16&8;M=P<<x;r=(M+520192|0)>>>16&4;O=M<<r;M=(O+245760|0)>>>16&2;h=14-(r|x|M)+(O<<M>>>15)|0;C=N>>>((h+7|0)>>>0)&1|h<<1}}while(0);P=14528+(C<<2)|0;o[_+28>>2]=C;o[_+20>>2]=0;o[_+16>>2]=0;h=o[3557]|0;M=1<<C;if((h&M|0)==0){o[3557]=h|M;o[P>>2]=y;o[_+24>>2]=P;o[_+12>>2]=_;o[_+8>>2]=_;return}if((C|0)==31){D=0}else{D=25-(C>>>1)|0}C=N<<D;D=o[P>>2]|0;while(1){if((o[D+4>>2]&-8|0)==(N|0)){break}I=D+16+(C>>>31<<2)|0;P=o[I>>2]|0;if((P|0)==0){L=2991;break}else{C=C<<1;D=P}}if((L|0)==2991){if(I>>>0<(o[3560]|0)>>>0){Se()}o[I>>2]=y;o[_+24>>2]=D;o[_+12>>2]=_;o[_+8>>2]=_;return}I=D+8|0;L=o[I>>2]|0;C=o[3560]|0;if(D>>>0<C>>>0){Se()}if(L>>>0<C>>>0){Se()}o[L+12>>2]=y;o[I>>2]=y;o[_+8>>2]=L;o[_+12>>2]=D;o[_+24>>2]=0;return}function Gi(e,r,t){e=e|0;r=r|0;t=t|0;var n=0;n=e|0;if((e&3)==(r&3)){while(e&3){if((t|0)==0)return n|0;i[e]=i[r]|0;e=e+1|0;r=r+1|0;t=t-1|0}while((t|0)>=4){o[e>>2]=o[r>>2];e=e+4|0;r=r+4|0;t=t-4|0}}while((t|0)>0){i[e]=i[r]|0;e=e+1|0;r=r+1|0;t=t-1|0}return n|0}function Wi(e,r,t){e=e|0;r=r|0;t=t|0;if((r|0)<(e|0)&(e|0)<(r+t|0)){r=r+t|0;e=e+t|0;while((t|0)>0){e=e-1|0;r=r-1|0;t=t-1|0;i[e]=i[r]|0}}else{Gi(e,r,t)|0}}function Qi(e){e=e|0;var r=0;r=e;while(i[r]|0){r=r+1|0}return r-e|0}function Zi(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,a=0,s=0;n=e+t|0;if((t|0)>=20){r=r&255;t=e&3;a=r|r<<8|r<<16|r<<24;s=n&~3;if(t){t=e+4-t|0;while((e|0)<(t|0)){i[e]=r;e=e+1|0}}while((e|0)<(s|0)){o[e>>2]=a;e=e+4|0}}while((e|0)<(n|0)){i[e]=r;e=e+1|0}}function Ji(e,r,t,i,n,o,a,s,l,u,f,c,d,_){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;l=l|0;u=u|0;f=f|0;c=c|0;d=d|0;_=_|0;vn[e&7](r|0,t|0,i|0,n|0,o|0,a|0,s|0,l|0,u|0,f|0,c|0,d|0,_|0)}function $i(e,r,t,i,n,o,a){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;kn[e&7](r|0,t|0,i|0,n|0,o|0,a|0)}function en(e,r){e=e|0;r=r|0;gn[e&15](r|0)}function rn(e){e=e|0;yn[e&1]()}function tn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;return Mn[e&31](r|0,t|0,i|0)|0}function nn(e,r){e=e|0;r=r|0;return Fn[e&15](r|0)|0}function on(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;An[e&7](r|0,t|0,i|0)}function an(e,r,t,i,n,o,a,s,l,u,f,c,d,_,h,p,m,E,w,b,S){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;l=l|0;u=u|0;f=+f;c=c|0;d=d|0;_=_|0;h=h|0;p=p|0;m=m|0;E=E|0;w=w|0;b=b|0;S=S|0;return On[e&7](r|0,t|0,i|0,n|0,o|0,a|0,s|0,l|0,u|0,+f,c|0,d|0,_|0,h|0,p|0,m|0,E|0,w|0,b|0,S|0)|0}function sn(e,r,t,i,n,o,a,s,l,u,f,c,d,_,h,p){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=+o;a=a|0;s=s|0;l=l|0;u=u|0;f=f|0;c=c|0;d=d|0;_=_|0;h=+h;p=p|0;Rn[e&7](r|0,t|0,i|0,n|0,+o,a|0,s|0,l|0,u|0,f|0,c|0,d|0,_|0,+h,p|0)}function ln(e,r,t){e=e|0;r=r|0;t=t|0;return Tn[e&1](r|0,t|0)|0}function un(e,r,t,i,n){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;Nn[e&7](r|0,t|0,i|0,n|0)}function fn(e,r,t,i,n,o,a,s,l,u,f,c,d){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;l=l|0;u=u|0;f=f|0;c=c|0;d=d|0;te(0)}function cn(e,r,t,i,n,o){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;te(1)}function dn(e){e=e|0;te(2)}function _n(){te(3)}function hn(e,r,t){e=e|0;r=r|0;t=t|0;te(4);return 0}function pn(e){e=e|0;te(5);return 0}function mn(e,r,t){e=e|0;r=r|0;t=t|0;te(6)}function En(e,r,t,i,n,o,a,s,l,u,f,c,d,_,h,p,m,E,w,b){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;a=a|0;s=s|0;l=l|0;u=+u;f=f|0;c=c|0;d=d|0;_=_|0;h=h|0;p=p|0;m=m|0;E=E|0;w=w|0;b=b|0;te(7);return 0}function wn(e,r,t,i,n,o,a,s,l,u,f,c,d,_,h){e=e|0;r=r|0;t=t|0;i=i|0;n=+n;o=o|0;a=a|0;s=s|0;l=l|0;u=u|0;f=f|0;c=c|0;d=d|0;_=+_;h=h|0;te(8)}function bn(e,r){e=e|0;r=r|0;te(9);return 0}function Sn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;te(10)}var vn=[fn,fn,Tr,fn,Cr,fn,fn,fn];var kn=[cn,cn,xr,cn,Dr,cn,cn,cn];var gn=[dn,dn,vt,dn,Pt,dn,Dt,dn,Et,dn,dn,dn,dn,dn,dn,dn];var yn=[_n,_n];var Mn=[hn,hn,Jt,hn,kt,hn,xt,hn,Ht,hn,gt,hn,wt,hn,yt,hn,ht,hn,Bt,hn,It,hn,li,hn,hn,hn,hn,hn,hn,hn,hn,hn];var Fn=[pn,pn,St,pn,Ct,pn,Nt,pn,mt,pn,pn,pn,pn,pn,pn,pn];var An=[mn,mn,Ft,mn,Tt,mn,Ot,mn];var On=[En,En,ct,En,lt,En,En,En];var Rn=[wn,wn,dt,wn,ft,wn,wn,wn];var Tn=[bn,bn];var Nn=[Sn,Sn,At,Sn,Rt,Sn,Mt,Sn];return{_strlen:Qi,_speex_bits_destroy:pr,_speex_bits_set_bit_buffer:hr,_speex_bits_write:br,_nb_decoder_ctl:yt,_pvalloc:Ii,_nb_decoder_destroy:vt,_sb_encode:xt,_lsp_enforce_margin:it,_pitch_xcorr:at,_compute_rms16:qr,_speex_bits_write_whole_bytes:vr,_vbr_init:vi,_memcpy:Gi,_speex_bits_unpack_unsigned:yr,_lsp_quant_high:Rt,_malloc_trim:Ui,_speex_decode_int:Qt,_speex_bits_reset:dr,_lsp_unquant_high:Tt,_speex_bits_unpack_signed:gr,_malloc_usable_size:Ki,_lsp_quant_nb:Mt,_bw_lpc:Ir,_wb_mode_query:ht,_sb_encoder_init:Nt,_lsp_interpolate:nt,_sb_decode_lost:Lt,_free:Ri,_speex_bits_pack:kr,_sb_decode:It,_speex_bits_insert_terminator:Sr,_memalign:xi,_speex_bits_rewind:mr,_speex_std_mode_request_handler:ri,__speex_fatal:bt,_speex_stereo_state_init:_i,_independent_calloc:Li,_lpc_to_lsp:rt,_lsp_to_lpc:tt,_speex_encode:Kt,_speex_bits_remaining:Or,_speex_std_enh_request_handler:oi,_speex_bits_peek_unsigned:Mr,_inner_prod:ot,_speex_std_vbr_quality_request_handler:ai,_speex_bits_nbytes:Rr,_speex_encoder_ctl:Gt,_vbr_destroy:gi,_forced_pitch_quant:ct,_speex_encoder_init:Ut,_speex_decode_stereo_int:bi,_vbr_analysis:ki,_speex_lib_ctl:$t,_speex_std_low_mode_request_handler:ti,_vq_nbest:Fi,_lsp_quant_lbr:At,_sb_decoder_destroy:Dt,__spx_lpc:$r,_speex_packet_to_header:ci,_split_cb_shape_sign_unquant:xr,_speex_bits_peek:Fr,_signal_mul:Hr,_residue_percep_zero16:Yr,_pitch_search_3tap:lt,_sb_encoder_ctl:Bt,_scal_quant:yi,_highpass:Br,_speex_encode_int:Yt,_compute_weighted_codebook:Pr,_noise_codebook_quant:Cr,_independent_comalloc:Hi,_speex_mode_query:_t,_ialloc:Bi,_split_cb_search_shape_sign:Tr,_nb_decode:kt,_speex_lib_get_mode:pt,_speex_decoder_init:zt,_sb_decoder_ctl:Ht,_memset:Zi,_speex_bits_advance:Ar,_speex_stereo_state_destroy:pi,_nb_encoder_ctl:gt,_speex_default_user_handler:li,_filter_mem16:Vr,_nb_mode_query:Jt,_internal_memalign:Ci,_speex_header_free:di,_mallopt:ji,_speex_encode_stereo:mi,_speex_std_stereo_request_handler:Si,_speex_decode:Wt,_lsp_unquant_lbr:Ot,_fir_mem16:jr,_syn_percep_zero16:Kr,_noise_codebook_unquant:Dr,_nb_encoder_init:mt,_speex_decode_native:jt,__spx_autocorr:et,_malloc:Oi,_malloc_max_footprint:qi,_speex_std_char_handler:si,_speex_bits_read_from:Er,_valloc:Di,_malloc_footprint:zi,_speex_decoder_destroy:Vt,_multicomb:Jr,_qmf_synth:Qr,_scal_quant32:Mi,_signal_div:Ur,_speex_bits_init_buffer:_r,_lsp_unquant_nb:Ft,_calloc:Ti,_forced_pitch_unquant:dt,_split_cb_search_shape_sign_N1:Nr,_qmf_decomp:Wr,_speex_stereo_state_reset:hi,_sb_encoder_destroy:Pt,_nb_decoder_init:St,_mallinfo:Vi,_speex_std_high_mode_request_handler:ii,_malloc_stats:Xi,_speex_header_to_packet:fi,_speex_init_header:ui,_sb_decoder_init:Ct,_speex_encode_native:Xt,_speex_inband_handler:ei,_realloc:Ni,_nb_encode:wt,_speex_bits_init:cr,_vq_nbest_sign:Ai,_sanitize_values32:Lr,_interp_pitch:Zr,_speex_std_vbr_request_handler:ni,_compute_impulse_response:Gr,_iir_mem16:Xr,_pitch_gain_search_3tap:ut,_nb_encoder_destroy:Et,_speex_encoder_destroy:qt,_open_loop_nbest_pitch:st,_memmove:Wi,_pitch_unquant_3tap:ft,_speex_decode_stereo:wi,_speex_bits_read_whole_bytes:wr,_speex_encode_stereo_int:Ei,_compute_rms:zr,_speex_decoder_ctl:Zt,runPostSets:fr,stackAlloc:Ge,stackSave:We,stackRestore:Qe,setThrew:Ze,setTempRet0:er,setTempRet1:rr,setTempRet2:tr,setTempRet3:ir,setTempRet4:nr,setTempRet5:or,setTempRet6:ar,setTempRet7:sr,setTempRet8:lr,setTempRet9:ur,dynCall_viiiiiiiiiiiii:Ji,dynCall_viiiiii:$i,dynCall_vi:en,dynCall_v:rn,dynCall_iiii:tn,dynCall_ii:nn,dynCall_viii:on,dynCall_iiiiiiiiiifiiiiiiiiii:an,dynCall_viiiifiiiiiiiifi:sn,dynCall_iii:ln,dynCall_viiii:un}}({Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array},{abort:abort,assert:assert,asmPrintInt:asmPrintInt,asmPrintFloat:asmPrintFloat,min:Math_min,invoke_viiiiiiiiiiiii:invoke_viiiiiiiiiiiii,invoke_viiiiii:invoke_viiiiii,invoke_vi:invoke_vi,invoke_v:invoke_v,invoke_iiii:invoke_iiii,invoke_ii:invoke_ii,invoke_viii:invoke_viii,invoke_iiiiiiiiiifiiiiiiiiii:invoke_iiiiiiiiiifiiiiiiiiii,invoke_viiiifiiiiiiiifi:invoke_viiiifiiiiiiiifi,invoke_iii:invoke_iii,invoke_viiii:invoke_viiii,_fabsf:_fabsf,_floorf:_floorf,_abort:_abort,_fprintf:_fprintf,_sqrt:_sqrt,_fflush:_fflush,__reallyNegative:__reallyNegative,_sqrtf:_sqrtf,_fputc:_fputc,_log:_log,_fabs:_fabs,_floor:_floor,___setErrNo:___setErrNo,_fwrite:_fwrite,_send:_send,_write:_write,_exit:_exit,_sysconf:_sysconf,__exit:__exit,__formatString:__formatString,_llvm_stackrestore:_llvm_stackrestore,_pwrite:_pwrite,_llvm_pow_f64:_llvm_pow_f64,_sbrk:_sbrk,_llvm_stacksave:_llvm_stacksave,___errno_location:___errno_location,_exp:_exp,_time:_time,_acos:_acos,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX,tempDoublePtr:tempDoublePtr,ABORT:ABORT,NaN:NaN,Infinity:1/0,_stderr:_stderr},buffer),_strlen=Module._strlen=asm._strlen,_speex_bits_destroy=Module._speex_bits_destroy=asm._speex_bits_destroy,_speex_bits_set_bit_buffer=Module._speex_bits_set_bit_buffer=asm._speex_bits_set_bit_buffer,_speex_bits_write=Module._speex_bits_write=asm._speex_bits_write,_nb_decoder_ctl=Module._nb_decoder_ctl=asm._nb_decoder_ctl,_pvalloc=Module._pvalloc=asm._pvalloc,_nb_decoder_destroy=Module._nb_decoder_destroy=asm._nb_decoder_destroy,_sb_encode=Module._sb_encode=asm._sb_encode,_lsp_enforce_margin=Module._lsp_enforce_margin=asm._lsp_enforce_margin,_pitch_xcorr=Module._pitch_xcorr=asm._pitch_xcorr,_compute_rms16=Module._compute_rms16=asm._compute_rms16,_speex_bits_write_whole_bytes=Module._speex_bits_write_whole_bytes=asm._speex_bits_write_whole_bytes,_vbr_init=Module._vbr_init=asm._vbr_init,_memcpy=Module._memcpy=asm._memcpy,_speex_bits_unpack_unsigned=Module._speex_bits_unpack_unsigned=asm._speex_bits_unpack_unsigned,_lsp_quant_high=Module._lsp_quant_high=asm._lsp_quant_high,_malloc_trim=Module._malloc_trim=asm._malloc_trim,_speex_decode_int=Module._speex_decode_int=asm._speex_decode_int,_speex_bits_reset=Module._speex_bits_reset=asm._speex_bits_reset,_lsp_unquant_high=Module._lsp_unquant_high=asm._lsp_unquant_high,_speex_bits_unpack_signed=Module._speex_bits_unpack_signed=asm._speex_bits_unpack_signed,_malloc_usable_size=Module._malloc_usable_size=asm._malloc_usable_size,_lsp_quant_nb=Module._lsp_quant_nb=asm._lsp_quant_nb,_bw_lpc=Module._bw_lpc=asm._bw_lpc,_wb_mode_query=Module._wb_mode_query=asm._wb_mode_query,_sb_encoder_init=Module._sb_encoder_init=asm._sb_encoder_init,_lsp_interpolate=Module._lsp_interpolate=asm._lsp_interpolate,_sb_decode_lost=Module._sb_decode_lost=asm._sb_decode_lost,_free=Module._free=asm._free,_speex_bits_pack=Module._speex_bits_pack=asm._speex_bits_pack,_sb_decode=Module._sb_decode=asm._sb_decode,_speex_bits_insert_terminator=Module._speex_bits_insert_terminator=asm._speex_bits_insert_terminator,_memalign=Module._memalign=asm._memalign,_speex_bits_rewind=Module._speex_bits_rewind=asm._speex_bits_rewind,_speex_std_mode_request_handler=Module._speex_std_mode_request_handler=asm._speex_std_mode_request_handler,__speex_fatal=Module.__speex_fatal=asm.__speex_fatal,_speex_stereo_state_init=Module._speex_stereo_state_init=asm._speex_stereo_state_init,_independent_calloc=Module._independent_calloc=asm._independent_calloc,_lpc_to_lsp=Module._lpc_to_lsp=asm._lpc_to_lsp,_lsp_to_lpc=Module._lsp_to_lpc=asm._lsp_to_lpc,_speex_encode=Module._speex_encode=asm._speex_encode,_speex_bits_remaining=Module._speex_bits_remaining=asm._speex_bits_remaining,_speex_std_enh_request_handler=Module._speex_std_enh_request_handler=asm._speex_std_enh_request_handler,_speex_bits_peek_unsigned=Module._speex_bits_peek_unsigned=asm._speex_bits_peek_unsigned,_inner_prod=Module._inner_prod=asm._inner_prod,_speex_std_vbr_quality_request_handler=Module._speex_std_vbr_quality_request_handler=asm._speex_std_vbr_quality_request_handler,_speex_bits_nbytes=Module._speex_bits_nbytes=asm._speex_bits_nbytes,_speex_encoder_ctl=Module._speex_encoder_ctl=asm._speex_encoder_ctl,_vbr_destroy=Module._vbr_destroy=asm._vbr_destroy,_forced_pitch_quant=Module._forced_pitch_quant=asm._forced_pitch_quant,_speex_encoder_init=Module._speex_encoder_init=asm._speex_encoder_init,_speex_decode_stereo_int=Module._speex_decode_stereo_int=asm._speex_decode_stereo_int,_vbr_analysis=Module._vbr_analysis=asm._vbr_analysis,_speex_lib_ctl=Module._speex_lib_ctl=asm._speex_lib_ctl,_speex_std_low_mode_request_handler=Module._speex_std_low_mode_request_handler=asm._speex_std_low_mode_request_handler,_vq_nbest=Module._vq_nbest=asm._vq_nbest,_lsp_quant_lbr=Module._lsp_quant_lbr=asm._lsp_quant_lbr,_sb_decoder_destroy=Module._sb_decoder_destroy=asm._sb_decoder_destroy,__spx_lpc=Module.__spx_lpc=asm.__spx_lpc,_speex_packet_to_header=Module._speex_packet_to_header=asm._speex_packet_to_header,_split_cb_shape_sign_unquant=Module._split_cb_shape_sign_unquant=asm._split_cb_shape_sign_unquant,_speex_bits_peek=Module._speex_bits_peek=asm._speex_bits_peek,_signal_mul=Module._signal_mul=asm._signal_mul,_residue_percep_zero16=Module._residue_percep_zero16=asm._residue_percep_zero16,_pitch_search_3tap=Module._pitch_search_3tap=asm._pitch_search_3tap,_sb_encoder_ctl=Module._sb_encoder_ctl=asm._sb_encoder_ctl,_scal_quant=Module._scal_quant=asm._scal_quant,_highpass=Module._highpass=asm._highpass,_speex_encode_int=Module._speex_encode_int=asm._speex_encode_int,_compute_weighted_codebook=Module._compute_weighted_codebook=asm._compute_weighted_codebook,_noise_codebook_quant=Module._noise_codebook_quant=asm._noise_codebook_quant,_independent_comalloc=Module._independent_comalloc=asm._independent_comalloc,_speex_mode_query=Module._speex_mode_query=asm._speex_mode_query,_ialloc=Module._ialloc=asm._ialloc,_split_cb_search_shape_sign=Module._split_cb_search_shape_sign=asm._split_cb_search_shape_sign,_nb_decode=Module._nb_decode=asm._nb_decode,_speex_lib_get_mode=Module._speex_lib_get_mode=asm._speex_lib_get_mode,_speex_decoder_init=Module._speex_decoder_init=asm._speex_decoder_init,_sb_decoder_ctl=Module._sb_decoder_ctl=asm._sb_decoder_ctl,_memset=Module._memset=asm._memset,_speex_bits_advance=Module._speex_bits_advance=asm._speex_bits_advance,_speex_stereo_state_destroy=Module._speex_stereo_state_destroy=asm._speex_stereo_state_destroy,_nb_encoder_ctl=Module._nb_encoder_ctl=asm._nb_encoder_ctl,_speex_default_user_handler=Module._speex_default_user_handler=asm._speex_default_user_handler,_filter_mem16=Module._filter_mem16=asm._filter_mem16,_nb_mode_query=Module._nb_mode_query=asm._nb_mode_query,_internal_memalign=Module._internal_memalign=asm._internal_memalign,_speex_header_free=Module._speex_header_free=asm._speex_header_free,_mallopt=Module._mallopt=asm._mallopt,_speex_encode_stereo=Module._speex_encode_stereo=asm._speex_encode_stereo,_speex_std_stereo_request_handler=Module._speex_std_stereo_request_handler=asm._speex_std_stereo_request_handler,_speex_decode=Module._speex_decode=asm._speex_decode,_lsp_unquant_lbr=Module._lsp_unquant_lbr=asm._lsp_unquant_lbr,_fir_mem16=Module._fir_mem16=asm._fir_mem16,_syn_percep_zero16=Module._syn_percep_zero16=asm._syn_percep_zero16,_noise_codebook_unquant=Module._noise_codebook_unquant=asm._noise_codebook_unquant,_nb_encoder_init=Module._nb_encoder_init=asm._nb_encoder_init,_speex_decode_native=Module._speex_decode_native=asm._speex_decode_native,__spx_autocorr=Module.__spx_autocorr=asm.__spx_autocorr,_malloc=Module._malloc=asm._malloc,_malloc_max_footprint=Module._malloc_max_footprint=asm._malloc_max_footprint,_speex_std_char_handler=Module._speex_std_char_handler=asm._speex_std_char_handler,_speex_bits_read_from=Module._speex_bits_read_from=asm._speex_bits_read_from,_valloc=Module._valloc=asm._valloc,_malloc_footprint=Module._malloc_footprint=asm._malloc_footprint,_speex_decoder_destroy=Module._speex_decoder_destroy=asm._speex_decoder_destroy,_multicomb=Module._multicomb=asm._multicomb,_qmf_synth=Module._qmf_synth=asm._qmf_synth,_scal_quant32=Module._scal_quant32=asm._scal_quant32,_signal_div=Module._signal_div=asm._signal_div,_speex_bits_init_buffer=Module._speex_bits_init_buffer=asm._speex_bits_init_buffer,_lsp_unquant_nb=Module._lsp_unquant_nb=asm._lsp_unquant_nb,_calloc=Module._calloc=asm._calloc,_forced_pitch_unquant=Module._forced_pitch_unquant=asm._forced_pitch_unquant,_split_cb_search_shape_sign_N1=Module._split_cb_search_shape_sign_N1=asm._split_cb_search_shape_sign_N1,_qmf_decomp=Module._qmf_decomp=asm._qmf_decomp,_speex_stereo_state_reset=Module._speex_stereo_state_reset=asm._speex_stereo_state_reset,_sb_encoder_destroy=Module._sb_encoder_destroy=asm._sb_encoder_destroy,_nb_decoder_init=Module._nb_decoder_init=asm._nb_decoder_init,_mallinfo=Module._mallinfo=asm._mallinfo,_speex_std_high_mode_request_handler=Module._speex_std_high_mode_request_handler=asm._speex_std_high_mode_request_handler,_malloc_stats=Module._malloc_stats=asm._malloc_stats,_speex_header_to_packet=Module._speex_header_to_packet=asm._speex_header_to_packet,_speex_init_header=Module._speex_init_header=asm._speex_init_header,_sb_decoder_init=Module._sb_decoder_init=asm._sb_decoder_init,_speex_encode_native=Module._speex_encode_native=asm._speex_encode_native,_speex_inband_handler=Module._speex_inband_handler=asm._speex_inband_handler,_realloc=Module._realloc=asm._realloc,_nb_encode=Module._nb_encode=asm._nb_encode,_speex_bits_init=Module._speex_bits_init=asm._speex_bits_init,_vq_nbest_sign=Module._vq_nbest_sign=asm._vq_nbest_sign,_sanitize_values32=Module._sanitize_values32=asm._sanitize_values32,_interp_pitch=Module._interp_pitch=asm._interp_pitch,_speex_std_vbr_request_handler=Module._speex_std_vbr_request_handler=asm._speex_std_vbr_request_handler,_compute_impulse_response=Module._compute_impulse_response=asm._compute_impulse_response,_iir_mem16=Module._iir_mem16=asm._iir_mem16,_pitch_gain_search_3tap=Module._pitch_gain_search_3tap=asm._pitch_gain_search_3tap,_nb_encoder_destroy=Module._nb_encoder_destroy=asm._nb_encoder_destroy,_speex_encoder_destroy=Module._speex_encoder_destroy=asm._speex_encoder_destroy,_open_loop_nbest_pitch=Module._open_loop_nbest_pitch=asm._open_loop_nbest_pitch,_memmove=Module._memmove=asm._memmove,_pitch_unquant_3tap=Module._pitch_unquant_3tap=asm._pitch_unquant_3tap,_speex_decode_stereo=Module._speex_decode_stereo=asm._speex_decode_stereo,_speex_bits_read_whole_bytes=Module._speex_bits_read_whole_bytes=asm._speex_bits_read_whole_bytes,_speex_encode_stereo_int=Module._speex_encode_stereo_int=asm._speex_encode_stereo_int,_compute_rms=Module._compute_rms=asm._compute_rms,_speex_decoder_ctl=Module._speex_decoder_ctl=asm._speex_decoder_ctl,runPostSets=Module.runPostSets=asm.runPostSets,dynCall_viiiiiiiiiiiii=Module.dynCall_viiiiiiiiiiiii=asm.dynCall_viiiiiiiiiiiii,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_iiiiiiiiiifiiiiiiiiii=Module.dynCall_iiiiiiiiiifiiiiiiiiii=asm.dynCall_iiiiiiiiiifiiiiiiiiii,dynCall_viiiifiiiiiiiifi=Module.dynCall_viiiifiiiiiiiifi=asm.dynCall_viiiifiiiiiiiifi,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=function(e){return asm.stackAlloc(e)},Runtime.stackSave=function(){return asm.stackSave()},Runtime.stackRestore=function(e){asm.stackRestore(e)};var i64Math=null,initialStackTop;if(memoryInitializer){function applyData(e){HEAPU8.set(e,STATIC_BASE)}ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL?applyData(Module.readBinary(memoryInitializer)):(addRunDependency("memory initializer"),Browser.asyncLoad(memoryInitializer,function(e){applyData(e),removeRunDependency("memory initializer")},function(e){throw"could not load memory initializer "+memoryInitializer}))}function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var preloadStartTime=null,calledMain=!1;function run(e){function r(){ensureInitRuntime(),preMain(),Module.calledRun=!0,Module._main&&shouldRunNow&&Module.callMain(e),postRun()}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0?Module.printErr("run() called, but dependencies remain, so not running"):(preRun(),runDependencies>0||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),ABORT||r()},1)):r()))}function exit(e){throw ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),new ExitStatus(e)}function abort(e){throw e&&(Module.print(e),Module.printErr(e)),ABORT=!0,EXITSTATUS=1,"abort() at "+stackTrace()}if(dependenciesFulfilled=function e(){!Module.calledRun&&shouldRunNow&&run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){assert(0==runDependencies,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),assert(0==__ATPRERUN__.length,"cannot call main when preRun functions remain to be called"),e=e||[],ENVIRONMENT_IS_WEB&&null!==preloadStartTime&&Module.printErr("preload time: "+(Date.now()-preloadStartTime)+" ms"),ensureInitRuntime();var r=e.length+1;function t(){for(var e=0;e<3;e++)i.push(0)}var i=[allocate(intArrayFromString("/bin/this.program"),"i8",ALLOC_NORMAL)];t();for(var n=0;n<r-1;n+=1)i.push(allocate(intArrayFromString(e[n]),"i8",ALLOC_NORMAL)),t();i.push(0),i=allocate(i,"i32",ALLOC_NORMAL),initialStackTop=STACKTOP;try{var o=Module._main(r,i,0);Module.noExitRuntime||exit(o)}catch(e){if(e instanceof ExitStatus)return;if("SimulateInfiniteLoop"==e)return void(Module.noExitRuntime=!0);throw e&&"object"==typeof e&&e.stack&&Module.printErr("exception thrown: "+[e,e.stack]),e}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit,Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;function BitString(e,r){this.expr=e,this.options=r||{},this.types=[],this.cache={},this.byteLength=0,this.options.compile,this.compile()}function crc32(e){for(var r,t=crc32.table,i=0;i<e.length;i++)r=r<<8^t[r>>24&255^e.charCodeAt(i)];return r}function Ogg(e,r){var t=r||{};this.stream=e,this.pageExpr=new BitString("capturePattern:4/char,version:1,headerType:1,granulePos:8,serial:4,sequence:4,checksum:4,pageSegments:1,segments:pageSegments/char,frames:_,",{bytes:!0,bigEndian:!1}),this.rawPages=[],this.pages=[],this.pageIdx=0,this.frames=[],this.data=null,this.segments=[],this.unpacked=!1,this.file=!!t.file,this.error=(r||{}).error||function(e){}}Module.noInitialRun&&(shouldRunNow=!1),run(),function(e,r){var t=String.fromCharCode,i=!0,n=!1;function o(e,r){return r?t(255&e)+o(e>>8,r-1):""}function a(e,r){return r?a(e>>8,r-1)+t(255-e&255):""}function s(e,t,i,n){var o=r.pow,a=r.floor,l=s.convertFromBinary,u=s.convertToBinary,f=e/8,c=o(2,e),d=c/2,_=d-1,h=1/d,p=1/_;return n?i?t?function(e,r){return e=a(e<0?e*d+c:e*_),u(e,f,r)}:function(e,r){return u(a(e*_),f,r)}:t?function(e,r){return u(e<0?e+c:e,f,r)}:function(e,r){return u(e,f,r)}:i?t?function(e,r){var t=l(e,r);return t>_?(t-c)*h:t*p}:function(e,r){return l(e,r)*p}:t?function(e,r){var t=l(e,r);return t>_?t-c:t}:function(e,r){return l(e,r)}}s.convertToBinary=function(e,r,t){return t?a(e,r):o(e,r)},s.convertFromBinary=function(e,t){var i,n=e.length,o=n-1,a=0,s=r.pow;if(t)for(i=0;i<n;i++)a+=(255-e.charCodeAt(i))*s(256,o-i);else for(i=0;i<n;i++)a+=e.charCodeAt(i)*s(256,i);return a},s.fromQ32=s(32,i,i,i),s.toQ32=s(32,i,i,n),s.fromQ24=s(24,i,i,i),s.toQ24=s(24,i,i,n),s.fromQ16=s(16,i,i,i),s.toQ16=s(16,i,i,n),s.fromQ8=s(8,i,i,i),s.toQ8=s(8,i,i,n),s.fromInt32=s(32,i,n,i),s.toInt32=s(32,i,n,n),s.fromInt16=s(16,i,n,i),s.toInt16=s(16,i,n,n),s.fromInt8=s(8,i,n,i),s.toInt8=s(8,i,n,n),s.fromUint32=s(32,n,n,i),s.toUint32=s(32,n,n,n),s.fromUint16=s(16,n,n,i),s.toUint16=s(16,n,n,n),s.fromUint8=s(8,n,n,i),s.toUint8=s(8,n,n,n),e.Binary=s}(this,Math),function(e,r){function t(e){this.data=e}var i,n,o=t.prototype={read:function(e){var r=this.data.substr(0,e);return this.skip(e),r},skip:function(e){var r=this,t=r.data=r.data.substr(e);return r.pointer+=e,t.length},readBuffer:function(e,r,t){for(var i="read"+t+r,n=e.length,o=0;this.data&&o<n;)e[o++]=this[i]();return o}};function a(e,r,t){var i=r/8;o["read"+e+r]=function(e){return t(this.read(i),e)}}for(i in r)(n=/to([a-z]+)([0-9]+)/i.exec(i))&&a(n[1],n[2],r[i]);e.Stream=t,t.newType=a}(this,this.Binary),this.PCMData=function(e,r){function t(e){return("string"==typeof e?t.decode:t.encode)(e)}return t.decodeFrame=function(e,t,i){if(8===t){var n=new(window.Uint8Array||Array)(i.length);for(new r(e).readBuffer(n,8,"Uint"),t=0;t<i.length;t++)i[t]=127.5*(n[t]-127.5)}else new r(e).readBuffer(i,t,"Q");return i},t.encodeFrame=function(r,t){var i,n=e[(8===t?"fromUint":"fromQ")+t],o=r.length,a="";if(8===t)for(i=0;i<o;i++)a+=n(127.5*r[i]+127.5);else for(i=0;i<o;i++)a+=n(r[i]);return a},t.decode=function(e,i){var n,o,a,s,l,u,f=new r(e),c=(f.read(4),f.readUint32()),d=((f=new r(f.read(c))).read(4),f.read(4),f.readUint32()),_=new r(f.read(d)),h=(_.readUint16(),_.readUint16()),p=(_.readUint32(),_.readUint32()),m=_.readUint16(),E=m/h,w=(_.readUint16(),{}),b={channelCount:h,bytesPerSample:m/h,sampleRate:p/m,chunks:w,data:l};function S(){n=f.read(4),o=f.readUint32(),s=f.read(o),u=w[n]=w[n]||[],"data"===n?(a=~~(o/E),l=b.data=new("undefined"!=typeof Float32Array?Float32Array:Array)(a),t.decodeFrame(s,8*E,l)):u.push(s),i&&(f.data?setTimeout(S,1):i(b))}if(i)f.data?S():i(b);else for(;f.data;)S();return b},t.encode=function(r,i){var n,o,a,s,l=e.fromUint32,u=e.fromUint16,f=r.data,c=r.sampleRate,d=r.channelCount||1,_=r.bytesPerSample||1,h=8*_,p=d*_,m=c*p,E=f.length*_,w=(Math.pow(2,h-1),[]),b="";if(w.push("fmt "+l(16)+u(1)+u(d)+l(c)+l(m)+u(p)+u(h)),w.push("data"+l(E)+t.encodeFrame(f,h)),s=r.chunks)for(o in s)if(s.hasOwnProperty(o))for(n=s[o],a=0;a<n.length;a++)b=n[a],w.push(o+l(b.length)+b);return w="RIFF"+l((w=w.join("")).length)+"WAVE"+w,i&&setTimeout(function(){i(w)},1),w},t}(this.Binary,this.Stream),DataView.prototype.getInt64=function(e,r){return this.getInt32(e,r)<<32|this.getInt32(e+4,r)},DataView.prototype.setInt64=function(e,r,t){return this.setInt32(e,r>>32,t)},DataView.prototype.getUint64=function(e,r){return this.getUint32(e,r)<<32|this.getUint32(e+4,r)},DataView.prototype.setUint64=function(e,r,t){return this.setUint32(e,r>>32,t)},Array.prototype.chunk=function(e){var r=this;return[].concat.apply([],r.map(function(t,i){return i%e?[]:[r.slice(i,i+e)]}))},BitString.UNPACK_OP=0,BitString.PACK_OP=1,BitString.SPECIFIER_SEPARATOR="-",BitString.ATTR_SEPARATOR=":",BitString.SPECIFIER_DELIMITER="/",BitString.SEGMENT_DELIMITER=",",BitString.util={dvdup:function(e,r){for(var t=new Uint8Array(e),i=new Uint8Array(new ArrayBuffer(r)),n=0,o=t.length;n<o;++n)i[n]=t[n];return new DataView(i.buffer)},str2dv:function(e){for(var r=new ArrayBuffer(e.length),t=new Uint8Array(r),i=0,n=e.length;i<n;i++)t[i]=e.charCodeAt(i);return new DataView(r)}},BitString.prototype.compile=function(){for(var e=this.expr.split(BitString.SEGMENT_DELIMITER),r=0,t=e.length;r<t;++r){var i,n,o,a,s;o=(i=e[r].split(BitString.SPECIFIER_DELIMITER))[1]||"",n=i[0].split(BitString.ATTR_SEPARATOR),a=o.split(BitString.SPECIFIER_SEPARATOR)||[],s={spec:n[1],size:parseInt("_"!=n[1]?n[1]:0),value:n[0],unit:this.unit(o),ref:!1,sign:"Uint"},(a.indexOf("signed")>=0||a.indexOf("int")>=0)&&(s.sign="Int"),a.indexOf("int")>=0&&(s.size=4,s.unit=0),isNaN(s.size)&&0==this.cache[s.spec]&&(s.ref=!0),this.byteLength+=s.size||0,this.types.push(s),this.cache[s.value]=0}},BitString.prototype.unit=function(e){var r=e.split(BitString.ATTR_SEPARATOR),t=2==r.length,i=t?parseInt(r[1]):r[0];return t?i:"char"==i?1:"int"==i?4:"double"==i?8:0},BitString.prototype.__op=function(e,r){var t,i,n=BitString.util;r==BitString.UNPACK_OP?(t=n.str2dv(e),i={}):(t=new DataView(new ArrayBuffer(this.byteLength)),i=e);for(var o=0,a=this.types,s=!this.options.bigEndian,l=0,u=a.length;l<u;++l){var f=a[l].size,c=a[l].value,d=a[l].unit,_=a[l].ref,h=a[l].sign,p=0,m=d*f||1,E=d||f,w=i[c],b=null;_&&(a[l].size=i[a[l].spec],m=d*(f=a[l].size),r&&(t=n.dvdup(t.buffer,t.buffer.byteLength+m))),f&&(b=(r?"set":"get")+h+8*E);do{r?f&&t[b](o,d?i[c][p]:i[c],s):(w=b?t[b](o,s):e.substr(o),d?(i[c]=i[c]||[]).push(w):i[c]=w),o+=E,--m,++p}while(m);this.cache[c]=w}return r?String.fromCharCode.apply(null,new Uint8Array(t.buffer)):i},BitString.prototype.unpack=function(e){return this.__op(e,BitString.UNPACK_OP)},BitString.prototype.pack=function(e){return this.__op(e,BitString.PACK_OP)},crc32.table=[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188],Ogg.CAPTURE_PATTERN=1332176723,Ogg.INVALID_CAPTURE_PATTERN=1,Ogg.prototype.magic=function(e){var r;return r|=e[0]<<24,r|=e[1]<<16,(r|=e[2]<<8)|e[3]},Ogg.prototype.createPage=function(e){return this.pageExpr.pack(e)},Ogg.prototype.parsePage=function(e){var r=this.pageExpr.unpack(e);r.segments,this.magic(r.capturePattern)==Ogg.CAPTURE_PATTERN?(this.rawPages.push(e),r.bos=function(){return 2==this.header},r.cont=function(){return 0==this.header},r.eos=function(){return 4==this.header},this.pages.push(r),this.frames.push(r.frames)):this.error({code:Ogg.INVALID_CAPTURE_PATTERN})},Ogg.prototype.pageOut=function(){return this.pages[this.pageIdx],this.pageIdx+=1},Ogg.prototype.pages=function(){return this.pages},Ogg.prototype.demux=function(){if(!this.unpacked){for(var e,r=0,t=0;r>=0;){var i=this.stream.indexOf("OggS",r);r=this.stream.indexOf("OggS",i+4),e=this.stream.substring(i,-1!=r?r:void 0),this.parsePage(e)}this.file&&(t=2,this.headers=this.frames.slice(0,t)),this.data=this.frames.slice(t);for(var n=t;n<this.pages.length;++n)this.segments.push(this.pages[n].segments);return this.unpacked=!0,this.pages}},Ogg.prototype.mux=function(e,r){function t(e,r,t){return page={capturePattern:[79,103,103,83],version:0,headerType:e,granulePos:0,serial:406,sequence:0,checksum:t||0,pageSegments:1,segments:[r||0],frames:""}}function i(e){var r=t(0);return r.pageSegments=e.length,r.segments=e,r}function n(e,r){var t;return t=function(e,r){for(var t=new ArrayBuffer(e.length),i=new Uint8Array(t),n=0,o=e.length;n<o;n++)i[n]=e.charCodeAt(n);return dv=new DataView(t),dv.setUint32(22,r,!0),String.fromCharCode.apply(null,new Uint8Array(t))}(e,crc32(e+r))+r,t}function o(e){for(var r=0,t=0;t<e.length;++t)r+=e[t];return r}r=r||{};var a="",s=e[0];if(a=n(this.createPage(t(2,r.length||s.length,r.checksum)),s),1==e.length)return a;var l=e[1];if(a+=n(this.createPage(t(0,r.length||l.length,r.checksum)),l),2==e.length)return a;for(var u=e[2],f=u[1].chunk(100),c=String.fromCharCode.apply(null,new Uint8Array(u[0].buffer)),d=0,_=0,h=f.length,p=0;p<h;++p){var m=f[p];_+=o(m),a+=n(this.createPage(i(m)),c.substring(d,_)),d=_}return a},Ogg.prototype.bitstream=function(){return this.unpacked?this.data.join(""):null},util={toString:function(e,r){var t=WebKitBlobBuilder||MozBlobBuilder||t,i=new t;i.append(e.buffer),buffer=null;var n=new FileReader;n.onload=function(e){r(e.target.result)},n.readAsBinaryString(i.getBlob())},parseInt:function(e){return Binary.toUint8(e)},mozPlay:function(e){var r,t,i=0;if((r=new Audio).mozSetup)for(r.mozSetup(1,8e3);i<e.length;)t=e.length-i>800?800:e.length-i,r.mozWriteAudio(e.subarray(i,i+t)),i+=t},play:function(e,r){var t=PCMData.encode({sampleRate:r||8e3,channelCount:1,bytesPerSample:2,data:e}),i=new Audio;i.src="data:audio/wav;base64,"+btoa(t),i.play()},merge:function(e,r,t,i){var n,o=i||[],a=void 0===t?2:t;for(n in r)r.hasOwnProperty(n)&&o.indexOf(n)<0&&("object"==typeof e[n]&&a?merge(e[n],r[n],a-1,o):(e[n]=r[n],o.push(r[n])));return e},inherit:function(e,r){function t(){}t.prototype=r.prototype,e.prototype=new t},str2ab:function(e){for(var r=new ArrayBuffer(e.length),t=new Uint8Array(r),i=0,n=e.length;i<n;i++)t[i]=e.charCodeAt(i);return r}};var libspeex=Module||s;libspeex.generateStructInfo=libspeex.generateStructInfo||Runtime.generateStructInfo;var types={SPEEX_NB_MODES:3,SPEEX_SET_ENH:0,SPEEX_GET_ENH:1,SPEEX_GET_FRAME_SIZE:3,SPEEX_SET_QUALITY:4,SPEEX_GET_QUALITY:5,SPEEX_SET_VBR:12,SPEEX_GET_VBR:13,SPEEX_SET_VBR_QUALITY:14,SPEEX_GET_VBR_QUALITY:15,SPEEX_SET_COMPLEXITY:16,SPEEX_GET_COMPLEXITY:17,SPEEX_SET_SAMPLING_RATE:24,SPEEX_GET_SAMPLING_RATE:25,SPEEX_SET_VAD:30,SPEEX_GET_VAD:31,SPEEX_SET_ABR:32,SPEEX_GET_ABR:33,SPEEX_SET_DTX:34,SPEEX_GET_DTX:35,types:{SpeexBits:libspeex.generateStructInfo([["i1*","chars"],["i32","nbBits"],["i32","charPtr"],["i32","bitPtr"],["i32","owner"],["i32","overflow"],["i32","buf_size"],["i32","reserved1"],["i8*","reserved2"]]),SpeexHeader:libspeex.generateStructInfo([["i32","speex_version_id"],["i32","header_size"],["i32","rate"],["i32","mode"],["i32","mode_bitstream_version"],["i32","nb_channels"],["i32","bitrate"],["i32","frame_size"],["i32","vbr"],["i32","frames_per_packet"],["i32","extra_headers"],["i32","reserved1"],["i32","reserved2"]]),SpeexPreprocessState:libspeex.generateStructInfo([]),SpeexEchoState:libspeex.generateStructInfo([])}};function SpeexComment(e){if(this.bitstr=new BitString("vendor_length:4,vendor_string:vendor_length/char,user_comment_list_length:4,user_comments:_"),"string"==typeof e)return this.raw=e,this.data=this.bitstr.unpack(e),void(this.data.vendor_string=String.fromCharCode.apply(null,this.data.vendor_string));this.data=e,this.data.vendor_string=new Uint8Array(Speex.util.str2ab(e.vendor_string)),this.raw=this.bitstr.pack(this.data)}function SpeexHeader(e){if(this.bitstr=new BitString("speex_string:8/char,speex_version_string:20/char,speex_version_id/int,header_size/int,rate/int,mode/int,mode_bitstream_version/int,nb_channels/int,bitrate/int,frame_size/int,vbr/int,frames_per_packet/int,extra_headers/int,reserved1/int,reserved2/int",{bytes:!0,bigEndian:!1}),"string"==typeof e)return this.raw=e,this.data=this.bitstr.unpack(e),this.data.speex_string=String.fromCharCode.apply(null,this.data.speex_string),void(this.data.speex_version_string=String.fromCharCode.apply(null,this.data.speex_version_string));this.data=e,this.data.speex_string=new Uint8Array(Speex.util.str2ab(e.speex_string)),this.data.speex_version_string=new Uint8Array(Speex.util.str2ab(e.speex_version_string)),this.raw=this.bitstr.pack(this.data)}function Speex(e){!e.mode&&(e.mode=0),this.params=e,this.frame_size=320,this.ring_size=2304,this.linoffset=0,this.ringoffset=0,this.modoffset=0,this.linbuf=new Int16Array(this.frame_size),this.ring=new Int16Array(2*this.ring_size),this.modframes=new Int16Array(this.frame_size),this.spxbuf=[],this.header=null,this.encoder=new SpeexEncoder(e),this.decoder=new SpeexDecoder(e),this.init()}"function"==typeof importScripts&&(self.console={log:function(){},debug:function(){},warn:function(){},error:function(){}}),SpeexHeader.prototype.toString=function(){return this.raw=this.bitstr.pack(this.unpacked)},Speex.util=util,Speex.onerror=function(e){console.error("decoding error: ",e.message)},Speex.parseHeader=function(e){return this.header=new SpeexHeader(e),this.header.data},Speex.pkt2hdr=function(e,r){var t,i=libspeex.allocate(libspeex.intArrayFromString(e),"i8",libspeex.ALLOC_STACK),n=r||Speex.onerror;if(t=libspeex._speex_packet_to_header(i,e.length)){var o,a=Speex.types.SpeexHeader,s={};for(var l in s.speex_string=libspeex.Pointer_stringify(t),s.speex_version_string=libspeex.Pointer_stringify(t+8),a)"__size__"!==l&&(o=28+a[l],s[l]=libspeex.getValue(t+o,"i32"));return(s.mode>=Speex.SPEEX_NB_MODES||s.mode<0)&&n(new Error("Mode number "+s.mode+" does not (yet/any longer) exist in this version")),s.speex_version_id>1&&n(new Error("Version "+s.speex_version_string+" is not supported")),s}n(new Error("cannot read header from bitstream"))},Speex.prototype.set=function(e,r){this.options[e]=r},Speex.prototype.enable=function(e){this.set(e,!0)},Speex.prototype.disable=function(e){this.set(e,!1)},Speex.prototype.init=function(){this.encoder.init(),this.decoder.init()},Speex.prototype.close=function(){this.decoder.close()},Speex.prototype.encode=function(e,r){if(r=!!r)return this.encoder.process(e);for(var t=-1,i=this.ringoffset;++t<e.length;++i)this.ring[i]=e[t];if(this.ringoffset+=e.length,!(this.ringoffset>this.linoffset&&this.ringoffset-this.linoffset<this.frame_size)){for(t=-1;++t<this.linbuf.length;)this.linbuf[t]=this.ring[this.linoffset+t];return this.linoffset+=this.linbuf.length,this.spxbuf=this.encoder.process(this.linbuf),this.ringoffset>this.ring_size&&(this.modoffset=this.ringoffset%this.ring_size,this.ringoffset=0),this.linoffset>this.ring_size&&(this.linoffset=0),this.spxbuf}},Speex.prototype.decode=function(e,r){var t=void 0;return r&&(t=[].concat.apply([],r)),this.decoder.process(e,t)};var util=util;util.merge(Speex,types);var util=Speex.util;function SpeexEncoder(e){CodecProcessor.apply(this,arguments),this.quality=e.quality||8,this.enh=e.enh||1,this.buffer_size=e.buffer_size||200,this.floating_point=!!e.floating_point,this.frame_size=e.frame_size||160,this.bits_size=e.bits_size||SpeexEncoder.quality_bits[this.quality]}function CodecProcessor(e){this.mode=libspeex._speex_lib_get_mode(e.mode||0),this.params=e,this.opt_basename="SPEEX_SET_",this.ctl_func=libspeex._speex_encoder_ctl,this.options={}}function SpeexDecoder(e){CodecProcessor.apply(this,arguments),this.floating_point=!e.lpcm&&!0,this.ctl_func=libspeex._speex_decoder_ctl,this.params=e,this.enh=e.enh||1,this.frame_size=e.frame_size||160,this.bits_size=void 0!==e.bits_size?e.bits_size:SpeexEncoder.quality_bits[e.quality||8]}function readArrayBuffer(e,r){if(!r)return null;var t=new XMLHttpRequest;t.responseType="arraybuffer",t.onload=function(e){if(200==e.target.status)return r(e.target.response)},t.open("GET",e,!0),t.send()}function readBlobURL(e,r){var t=new XMLHttpRequest;t.open("GET",e,!0),t.responseType="blob",t.onload=function(e){if(200==e.target.status)return r(e.target.response)},t.send()}function readFile(e,r,t,i){var n=e.target.files[0],o=new FileReader;o.onload=r,t?o.readAsArrayBuffer(n):o.readAsBinaryString(n)}function decodeFile(e){var r,t,i,n;(i=new Ogg(e,{file:!0})).demux(),r=i.bitstream(),n=Speex.parseHeader(i.frames[0]),console.log(n);var o=new SpeexComment(i.frames[1]);return console.log(o.data),performance.mark("decodeStart"),t=new Speex({quality:8,mode:n.mode,rate:n.rate}).decode(r,i.segments),performance.mark("decodeEnd"),performance.measure("decode","decodeStart","decodeEnd"),[t,n]}function wavDemux(e){var r=new Uint8Array(e),t=r.subarray(0,44),i=r.subarray(44),n=PCMData.decode(String.fromCharCode.apply(null,t));return n.samples=new Int16Array(i.buffer),n}function encodeFile(e){var r,t,i,n,o=wavDemux(e),a=o.sampleRate<16e3,s=new Speex({quality:8,mode:a?0:1,bits_size:a?38:70}),l=new Ogg(null,{file:!0});return s.bits_size=a?15:70,performance.mark("encodeStart"),i=s.encode(o.samples,!0),r=new SpeexHeader({bitrate:-1,extra_headers:0,frame_size:a?160:320,frames_per_packet:1,header_size:80,mode:a?0:1,mode_bitstream_version:4,nb_channels:1,rate:o.sampleRate,reserved1:0,reserved2:0,speex_string:"Speex ",speex_version_id:1,speex_version_string:"1.2rc1\0\0\0\0\0\0\0\0\0\0\0\0\0\0",vbr:0}),t=new SpeexComment({vendor_string:t="Encoded with speex.js",vendor_length:t.length}),n=l.mux([r.raw,t.raw,i]),performance.mark("encodeEnd"),performance.measure("encode","encodeStart","encodeEnd"),n}function audioElementDecode(e,r){var t=e;readBlobURL(r,function(e){e.name=r,readFile({target:{files:[e]}},function(e){var r,i=decodeFile(e.target.result),n=i[0],o=i[1].rate,a=PCMData.encode({sampleRate:o,channelCount:1,bytesPerSample:2,data:n});r=Speex.util.str2ab(a);var s=new Blob([r],{type:"audio/wav"});t.src=URL.createObjectURL(s),t.play()},!1)})}function checkAudioElements(){for(var e=document.querySelectorAll("audio"),r=0;r<e.length;++r){var t=e[r];t.error&&(t.error.code!=MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED&&t.error.code!=MediaError.MEDIA_ERR_DECODE||(console.warn("Couldn't decode media, trying with speex"),audioElementDecode(t,t.src)))}}util.inherit(SpeexEncoder,CodecProcessor),SpeexEncoder.quality_bits={1:10,2:15,3:20,4:20,5:28,6:28,7:38,8:38,9:46,10:46},SpeexEncoder.prototype.init=function(){var e,r=libspeex.allocate(1,"i32",libspeex.ALLOC_STACK),t=libspeex.allocate(Speex.types.SpeexBits.__size__,"i8",libspeex.ALLOC_STACK);libspeex._speex_bits_init(t),e=libspeex._speex_encoder_init(this.mode),libspeex._speex_encoder_ctl(e,Speex.SPEEX_GET_FRAME_SIZE,r),this.frame_size=libspeex.getValue(r,"i32"),this.buffer_size=this.buffer_size,libspeex.setValue(r,this.quality,"i32"),libspeex._speex_encoder_ctl(e,Speex.SPEEX_SET_QUALITY,r),this.state=e,this.bits=t,this.input=libspeex.allocate(this.frame_size,"i16",libspeex.ALLOC_NORMAL),this.buffer=libspeex.allocate(this.buffer_size,"i8",libspeex.ALLOC_NORMAL)},SpeexEncoder.prototype.read=function(e,r,t){for(var i=this.input,n=e+r>t.length?t.length-e:r,o=e-1,a=0;++o<e+n;a+=2)libspeex.setValue(i+a,t[o],"i16");return n},SpeexEncoder.prototype.write=function(e,r,t){for(var i=0,n=e-1;++n<e+r;i+=1)this.output[n]=libspeex.getValue(t+i,"i8")},SpeexEncoder.prototype.process=function(e){var r,t,i=0,n=0,o=[],a=this.floating_point?libspeex._speex_encode:libspeex._speex_encode_int,s=!!this.params.benchmark,l=Math.ceil(e.length/this.frame_size),u=this.bits_size*l;(!this.output||this.output.length<u)&&(this.output=new Uint8Array(u));var f=this.bits,c=this.input,d=this.buffer,_=this.state;for(this.output;n<e.length;)s&&console.time("encode_packet_offset_"+n),libspeex._speex_bits_reset(f),r=this.read(n,this.frame_size,e),a(_,c,f),t=libspeex._speex_bits_write(f,d,this.buffer_size),this.write(i,t,d),s&&console.timeEnd("encode_packet_offset_"+n),i+=t,n+=r,o.push(t);return[this.output.subarray(0,i),o]},SpeexEncoder.prototype.close=function(){this.state&&(libspeex._speex_bits_destroy(this.bits),libspeex._speex_encoder_destroy(this.state))},util.merge(SpeexEncoder,types),CodecProcessor.prototype.set=function(e,r){if(null!=r){this.options[e]=r;var t,i=libspeex.allocate(1,"i32",ALLOC_STACK);r.constructor==Number.prototype.constructor&&(t=parseInt(r)),r.constructor==Boolean.prototype.constructor&&(t=r?1:0),setValue(i,t||0,"i32"),flag=this.opt_basename+e.toUpperCase().replace(" ","_"),console.log("%s: %d",flag,t),this[flag]&&this.ctl_func(this.state,this[flag],i),"quality"==e&&(this.bits_size=SpeexEncoder.quality_bits[t])}},CodecProcessor.prototype.enable=function(e){this.set(e,1)},CodecProcessor.prototype.disable=function(e){this.set(e,0)},CodecProcessor.prototype.buffer=null,CodecProcessor.prototype.input=null,CodecProcessor.prototype.output=null,CodecProcessor.prototype.state=null,CodecProcessor.prototype.bits=null,util.inherit(SpeexDecoder,CodecProcessor),SpeexDecoder.prototype.init=function(){var e=libspeex.allocate(SpeexDecoder.types.SpeexBits.__size__,"i8",libspeex.ALLOC_STACK);libspeex._speex_bits_init(e);var r=libspeex.allocate(1,"i32",libspeex.ALLOC_STACK),t=libspeex._speex_decoder_init(this.mode);libspeex.setValue(r,this.enh,"i32"),libspeex._speex_decoder_ctl(t,SpeexDecoder.SPEEX_SET_ENH,r),libspeex.setValue(r,this.params.sample_rate,"i32"),libspeex._speex_decoder_ctl(t,SpeexDecoder.SPEEX_SET_SAMPLING_RATE,r),libspeex._speex_decoder_ctl(t,SpeexDecoder.SPEEX_GET_FRAME_SIZE,r),this.frame_size=libspeex.getValue(r,"i32"),this.state=t,this.bits=e,this.buffer=libspeex.allocate(this.frame_size,"i16",libspeex.ALLOC_NORMAL),this.output=new Float32Array(1)},SpeexDecoder.prototype.read=function(e,r,t){var i=this.input,n=e+r>t.length?t.length-e:r,o=t.constructor==String.prototype.constructor;!i&&(i=libspeex.allocate(this.bits_size,"i8",libspeex.ALLOC_NORMAL));for(var a=e-1,s=0;++a<e+n;s+=1)libspeex.setValue(i+s,o?util.parseInt(t[a]):t[a],"i8");return libspeex._speex_bits_read_from(this.bits,i,n),this.input=i,n},SpeexDecoder.prototype.process=function(e,r){var t,i=0,n=0,o=0,a=this.bits_size,s=Math.ceil(e.length/a),l=this.frame_size*s,u=libspeex._speex_decode_int,f=!!this.params.benchmark;this.buffer||(this.buffer=libspeex.allocate(this.frame_size,"i16",libspeex.ALLOC_STACK));var c=this.bits,d=(this.input,this.buffer),_=this.state;for(this.output.length<l&&(this.output=this.floating_point?new Float32Array(l):new Int16Array(l));n<e.length;){f&&console.time("decode_packet_offset_"+n),a=r&&r.length>0?r[o]:this.bits_size,t=this.read(n,a,e);var h=u(_,c,d);if(h<0)return h;this.write(i,this.frame_size,d),f&&console.timeEnd("decode_packet_offset_"+n),n+=t,i+=this.frame_size,o++}return this.output.subarray(0,i)},SpeexDecoder.prototype.close=function(){this.state&&(libspeex._speex_bits_destroy(this.bits),libspeex._speex_decoder_destroy(this.state))},SpeexDecoder.prototype.write=function(e,r,t){for(var i,n=0,o=e-1;++o<e+r;n+=2)i=libspeex.getValue(t+n,"i16"),this.output[o]=this.floating_point?i/32768:i},util.merge(SpeexDecoder,types);var etimes=document.querySelector("#etimes"),dtimes=document.querySelector("#dtimes"),nrsamples=document.querySelector("#nrsamples");function printStreamTimes(e,r,t){e&&(etimes.innerHTML=""+e),r&&(dtimes.innerHTML=""+r),t&&(nrsamples.innerHTML=""+t)}setTimeout(function(){checkAudioElements()},200);var speexGlobal="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:this;speexGlobal.__speexInH5={checkAudioElements:checkAudioElements,decodeFile:decodeFile,encodeFile:encodeFile,audioElementDecode:audioElementDecode};var readBlob=readBlobURL}
|