forked from yurevich1/xz-pure-js-web-worker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathxz.js
18 lines (18 loc) · 544 KB
/
xz.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function toXZ(data__,compress__,force__,extremeflag__,totalMemory,cbPr){function globalEval(a){eval.call(null,a)}function assert(a,b){a||abort("Assertion failed: "+b)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(a,b,c,d){switch(c=c||"i8","*"===c.charAt(c.length-1)&&(c="i32"),c){case"i1":HEAP8[a>>0]=b;break;case"i8":HEAP8[a>>0]=b;break;case"i16":HEAP16[a>>1]=b;break;case"i32":HEAP32[a>>2]=b;break;case"i64":tempI64=[b>>>0,(tempDouble=b,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[a>>2]=tempI64[0],HEAP32[a+4>>2]=tempI64[1];break;case"float":HEAPF32[a>>2]=b;break;case"double":HEAPF64[a>>3]=b;break;default:abort("invalid type for setValue: "+c)}}function getValue(a,b,c){switch(b=b||"i8","*"===b.charAt(b.length-1)&&(b="i32"),b){case"i1":return HEAP8[a>>0];case"i8":return HEAP8[a>>0];case"i16":return HEAP16[a>>1];case"i32":return HEAP32[a>>2];case"i64":return HEAP32[a>>2];case"float":return HEAPF32[a>>2];case"double":return HEAPF64[a>>3];default:abort("invalid type for setValue: "+b)}return null}function allocate(a,b,c,d){var e,f;"number"==typeof a?(e=!0,f=a):(e=!1,f=a.length);var g,h="string"==typeof b?b:null;if(g=c==ALLOC_NONE?d:[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===c?ALLOC_STATIC:c](Math.max(f,h?1:b.length)),e){var i,d=g;for(assert(0==(3&g)),i=g+(-4&f);i>d;d+=4)HEAP32[d>>2]=0;for(i=g+f;i>d;)HEAP8[d++>>0]=0;return g}if("i8"===h)return a.subarray||a.slice?HEAPU8.set(a,g):HEAPU8.set(new Uint8Array(a),g),g;for(var j,k,l,m=0;f>m;){var n=a[m];"function"==typeof n&&(n=Runtime.getFunctionIndex(n)),j=h||b[m],0!==j?("i64"==j&&(j="i32"),setValue(g+m,n,j),l!==j&&(k=Runtime.getNativeTypeSize(j),l=j),m+=k):m++}return g}function getMemory(a){return staticSealed?"undefined"!=typeof _sbrk&&!_sbrk.called||!runtimeInitialized?Runtime.dynamicAlloc(a):_malloc(a):Runtime.staticAlloc(a)}function Pointer_stringify(a,b){if(0===b||!a)return"";for(var c,d=0,e=0;;){if(c=HEAPU8[a+e>>0],d|=c,0==c&&!b)break;if(e++,b&&e==b)break}b||(b=e);var f="";if(128>d){for(var g,h=1024;b>0;)g=String.fromCharCode.apply(String,HEAPU8.subarray(a,a+Math.min(b,h))),f=f?f+g:g,a+=h,b-=h;return f}return Module.UTF8ToString(a)}function AsciiToString(a){for(var b="";;){var c=HEAP8[a++>>0];if(!c)return b;b+=String.fromCharCode(c)}}function stringToAscii(a,b){return writeAsciiToMemory(a,b,!1)}function UTF8ArrayToString(a,b){for(var c,d,e,f,g,h,i="";;){if(c=a[b++],!c)return i;if(128&c)if(d=63&a[b++],192!=(224&c))if(e=63&a[b++],224==(240&c)?c=(15&c)<<12|d<<6|e:(f=63&a[b++],240==(248&c)?c=(7&c)<<18|d<<12|e<<6|f:(g=63&a[b++],248==(252&c)?c=(3&c)<<24|d<<18|e<<12|f<<6|g:(h=63&a[b++],c=(1&c)<<30|d<<24|e<<18|f<<12|g<<6|h))),65536>c)i+=String.fromCharCode(c);else{var j=c-65536;i+=String.fromCharCode(55296|j>>10,56320|1023&j)}else i+=String.fromCharCode((31&c)<<6|d);else i+=String.fromCharCode(c)}}function UTF8ToString(a){return UTF8ArrayToString(HEAPU8,a)}function stringToUTF8Array(a,b,c,d){if(!(d>0))return 0;for(var e=c,f=c+d-1,g=0;g<a.length;++g){var h=a.charCodeAt(g);if(h>=55296&&57343>=h&&(h=65536+((1023&h)<<10)|1023&a.charCodeAt(++g)),127>=h){if(c>=f)break;b[c++]=h}else if(2047>=h){if(c+1>=f)break;b[c++]=192|h>>6,b[c++]=128|63&h}else if(65535>=h){if(c+2>=f)break;b[c++]=224|h>>12,b[c++]=128|h>>6&63,b[c++]=128|63&h}else if(2097151>=h){if(c+3>=f)break;b[c++]=240|h>>18,b[c++]=128|h>>12&63,b[c++]=128|h>>6&63,b[c++]=128|63&h}else if(67108863>=h){if(c+4>=f)break;b[c++]=248|h>>24,b[c++]=128|h>>18&63,b[c++]=128|h>>12&63,b[c++]=128|h>>6&63,b[c++]=128|63&h}else{if(c+5>=f)break;b[c++]=252|h>>30,b[c++]=128|h>>24&63,b[c++]=128|h>>18&63,b[c++]=128|h>>12&63,b[c++]=128|h>>6&63,b[c++]=128|63&h}}return b[c]=0,c-e}function stringToUTF8(a,b,c){return stringToUTF8Array(a,HEAPU8,b,c)}function lengthBytesUTF8(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);d>=55296&&57343>=d&&(d=65536+((1023&d)<<10)|1023&a.charCodeAt(++c)),127>=d?++b:b+=2047>=d?2:65535>=d?3:2097151>=d?4:67108863>=d?5:6}return b}function UTF16ToString(a){for(var b=0,c="";;){var d=HEAP16[a+2*b>>1];if(0==d)return c;++b,c+=String.fromCharCode(d)}}function stringToUTF16(a,b,c){if(void 0===c&&(c=2147483647),2>c)return 0;c-=2;for(var d=b,e=c<2*a.length?c/2:a.length,f=0;e>f;++f){var g=a.charCodeAt(f);HEAP16[b>>1]=g,b+=2}return HEAP16[b>>1]=0,b-d}function lengthBytesUTF16(a){return 2*a.length}function UTF32ToString(a){for(var b=0,c="";;){var d=HEAP32[a+4*b>>2];if(0==d)return c;if(++b,d>=65536){var e=d-65536;c+=String.fromCharCode(55296|e>>10,56320|1023&e)}else c+=String.fromCharCode(d)}}function stringToUTF32(a,b,c){if(void 0===c&&(c=2147483647),4>c)return 0;for(var d=b,e=d+c-4,f=0;f<a.length;++f){var g=a.charCodeAt(f);if(g>=55296&&57343>=g){var h=a.charCodeAt(++f);g=65536+((1023&g)<<10)|1023&h}if(HEAP32[b>>2]=g,b+=4,b+4>e)break}return HEAP32[b>>2]=0,b-d}function lengthBytesUTF32(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);d>=55296&&57343>=d&&++c,b+=4}return b}function demangle(a){function b(){i++,"K"===a[i]&&i++;for(var b=[];"E"!==a[i];)if("S"!==a[i])if("C"!==a[i]){var c=parseInt(a.substr(i)),d=c.toString().length;if(!c||!d){i--;break}var e=a.substr(i+d,c);b.push(e),k.push(e),i+=d+c}else b.push(b[b.length-1]),i+=2;else{i++;var f=a.indexOf("_",i),g=a.substring(i,f)||0;b.push(k[g]||"?"),i=f+1}return i++,b}function c(d,e,f){function g(){return"("+m.join(", ")+")"}e=e||1/0;var h,k="",m=[];if("N"===a[i]){if(h=b().join("::"),e--,0===e)return d?[h]:h}else{("K"===a[i]||l&&"L"===a[i])&&i++;var n=parseInt(a.substr(i));if(n){var o=n.toString().length;h=a.substr(i+o,n),i+=o+n}}if(l=!1,"I"===a[i]){i++;var p=c(!0),q=c(!0,1,!0);k+=q[0]+" "+h+"<"+p.join(", ")+">"}else k=h;a:for(;i<a.length&&e-- >0;){var r=a[i++];if(r in j)m.push(j[r]);else switch(r){case"P":m.push(c(!0,1,!0)[0]+"*");break;case"R":m.push(c(!0,1,!0)[0]+"&");break;case"L":i++;var s=a.indexOf("E",i),n=s-i;m.push(a.substr(i,n)),i+=n+2;break;case"A":var n=parseInt(a.substr(i));if(i+=n.toString().length,"_"!==a[i])throw"?";i++,m.push(c(!0,1,!0)[0]+" ["+n+"]");break;case"E":break a;default:k+="?"+r;break a}}return f||1!==m.length||"void"!==m[0]||(m=[]),d?(k&&m.push(k+"?"),m):k+g()}var d=!!Module.___cxa_demangle;if(d)try{var e=_malloc(a.length);writeStringToMemory(a.substr(1),e);var f=_malloc(4),g=Module.___cxa_demangle(e,0,0,f);if(0===getValue(f,"i32")&&g)return Pointer_stringify(g)}catch(h){}finally{e&&_free(e),f&&_free(f),g&&_free(g)}var i=3,j={"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":"..."},k=[],l=!0,m=a;try{if("Object._main"==a||"_main"==a)return"main()";if("number"==typeof a&&(a=Pointer_stringify(a)),"_"!==a[0])return a;if("_"!==a[1])return a;if("Z"!==a[2])return a;switch(a[3]){case"n":return"operator new()";case"d":return"operator delete()"}m=c()}catch(h){m+="?"}return m.indexOf("?")>=0&&!d&&Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),m}function demangleAll(a){return a.replace(/__Z[\w\d_]+/g,function(a){var b=demangle(a);return a===b?a:a+" ["+b+"]"})}function jsStackTrace(){var a=new Error;if(!a.stack){try{throw new Error(0)}catch(b){a=b}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}function alignMemoryPage(a){return a%4096>0&&(a+=4096-a%4096),a}function enlargeMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}function callRuntimeCallbacks(a){for(;a.length>0;){var b=a.shift();if("function"!=typeof b){var c=b.func;"number"==typeof c?void 0===b.arg?Runtime.dynCall("v",c):Runtime.dynCall("vi",c,[b.arg]):c(void 0===b.arg?null:b.arg)}else b()}}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__),runtimeExited=!0}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(a){__ATPRERUN__.unshift(a)}function addOnInit(a){__ATINIT__.unshift(a)}function addOnPreMain(a){__ATMAIN__.unshift(a)}function addOnExit(a){__ATEXIT__.unshift(a)}function addOnPostRun(a){__ATPOSTRUN__.unshift(a)}function intArrayFromString(a,b,c){var d=c>0?c:lengthBytesUTF8(a)+1,e=new Array(d),f=stringToUTF8Array(a,e,0,e.length);return b&&(e.length=f),e}function intArrayToString(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];d>255&&(d&=255),b.push(String.fromCharCode(d))}return b.join("")}function writeStringToMemory(a,b,c){for(var d=intArrayFromString(a,c),e=0;e<d.length;){var f=d[e];HEAP8[b+e>>0]=f,e+=1}}function writeArrayToMemory(a,b){for(var c=0;c<a.length;c++)HEAP8[b++>>0]=a[c]}function writeAsciiToMemory(a,b,c){for(var d=0;d<a.length;++d)HEAP8[b++>>0]=a.charCodeAt(d);c||(HEAP8[b>>0]=0)}function unSign(a,b,c){return a>=0?a:32>=b?2*Math.abs(1<<b-1)+a:Math.pow(2,b)+a}function reSign(a,b,c){if(0>=a)return a;var d=32>=b?Math.abs(1<<b-1):Math.pow(2,b-1);return a>=d&&(32>=b||a>d)&&(a=-2*d+a),a}function getUniqueRunDependency(a){return a}function addRunDependency(a){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(a){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var b=dependenciesFulfilled;dependenciesFulfilled=null,b()}}function _emscripten_asm_const_2(a,b,c){return 0|ASM_CONSTS[a](b,c)}function copyTempFloat(a){HEAP8[tempDoublePtr]=HEAP8[a],HEAP8[tempDoublePtr+1]=HEAP8[a+1],HEAP8[tempDoublePtr+2]=HEAP8[a+2],HEAP8[tempDoublePtr+3]=HEAP8[a+3]}function copyTempDouble(a){HEAP8[tempDoublePtr]=HEAP8[a],HEAP8[tempDoublePtr+1]=HEAP8[a+1],HEAP8[tempDoublePtr+2]=HEAP8[a+2],HEAP8[tempDoublePtr+3]=HEAP8[a+3],HEAP8[tempDoublePtr+4]=HEAP8[a+4],HEAP8[tempDoublePtr+5]=HEAP8[a+5],HEAP8[tempDoublePtr+6]=HEAP8[a+6],HEAP8[tempDoublePtr+7]=HEAP8[a+7]}function ___setErrNo(a){return HEAP32[___errno_state>>2]=a,a}function _fflush(a){}function _mkport(){throw"TODO"}function _recv(a,b,c,d){var e=SOCKFS.getSocket(a);return e?_read(a,b,c):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pread(a,b,c,d){var e=FS.getStream(a);if(!e)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var f=HEAP8;return FS.read(e,f,b,c,d)}catch(g){return FS.handleFSError(g),-1}}function _read(a,b,c){var d=FS.getStream(a);if(!d)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var e=HEAP8;return FS.read(d,e,b,c)}catch(f){return FS.handleFSError(f),-1}}function _fread(a,b,c,d){var e=c*b;if(0==e)return 0;var f=0,g=FS.getStreamFromPtr(d);if(!g)return ___setErrNo(ERRNO_CODES.EBADF),0;for(;g.ungotten.length&&e>0;)HEAP8[a++>>0]=g.ungotten.pop(),e--,f++;var h=_read(g.fd,a,e);return-1==h?(g&&(g.error=!0),0):(f+=h,e>f&&(g.eof=!0),f/b|0)}function _sysconf(a){switch(a){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator?navigator.hardwareConcurrency||1:1}return ___setErrNo(ERRNO_CODES.EINVAL),-1}function _ferror(a){return a=FS.getStreamFromPtr(a),Number(a&&a.error)}function _close(a){var b=FS.getStream(a);if(!b)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{return FS.close(b),0}catch(c){return FS.handleFSError(c),-1}}function _fileno(a){return a=FS.getStreamFromPtr(a),a?a.fd:-1}function _fclose(a){var b=_fileno(a);return _close(b)}function _abort(){Module.abort()}function _send(a,b,c,d){var e=SOCKFS.getSocket(a);return e?_write(a,b,c):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pwrite(a,b,c,d){var e=FS.getStream(a);if(!e)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var f=HEAP8;return FS.write(e,f,b,c,d)}catch(g){return FS.handleFSError(g),-1}}function _write(a,b,c){var d=FS.getStream(a);if(!d)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var e=HEAP8;return FS.write(d,e,b,c)}catch(f){return FS.handleFSError(f),-1}}function _fwrite(a,b,c,d){var e=c*b;if(0==e)return 0;var f=_fileno(d),g=_write(f,a,e);if(-1==g){var h=FS.getStreamFromPtr(d);return h&&(h.error=!0),0}return g/b|0}function __reallyNegative(a){return 0>a||0===a&&1/a===-(1/0)}function __formatString(a,b){function c(a){var c;return h=Runtime.prepVararg(h,a),"double"===a?(HEAP32[tempDoublePtr>>2]=HEAP32[b+h>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[b+(h+4)>>2],c=+HEAPF64[tempDoublePtr>>3],h+=8):"i64"==a?(c=[HEAP32[b+h>>2],HEAP32[b+(h+4)>>2]],h+=8):(assert(0===(3&h)),a="i32",c=HEAP32[b+h>>2],h+=4),c}assert(0===(3&b));for(var d,e,f,g=a,h=0,i=[];;){var j=g;if(d=HEAP8[g>>0],0===d)break;if(e=HEAP8[g+1>>0],37==d){var k=!1,l=!1,m=!1,n=!1,o=!1;a:for(;;){switch(e){case 43:k=!0;break;case 45:l=!0;break;case 35:m=!0;break;case 48:if(n)break a;n=!0;break;case 32:o=!0;break;default:break a}g++,e=HEAP8[g+1>>0]}var p=0;if(42==e)p=c("i32"),g++,e=HEAP8[g+1>>0];else for(;e>=48&&57>=e;)p=10*p+(e-48),g++,e=HEAP8[g+1>>0];var q=!1,r=-1;if(46==e){if(r=0,q=!0,g++,e=HEAP8[g+1>>0],42==e)r=c("i32"),g++;else for(;;){var s=HEAP8[g+1>>0];if(48>s||s>57)break;r=10*r+(s-48),g++}e=HEAP8[g+1>>0]}0>r&&(r=6,q=!1);var t;switch(String.fromCharCode(e)){case"h":var u=HEAP8[g+2>>0];104==u?(g++,t=1):t=2;break;case"l":var u=HEAP8[g+2>>0];108==u?(g++,t=8):t=4;break;case"L":case"q":case"j":t=8;break;case"z":case"t":case"I":t=4;break;default:t=null}switch(t&&g++,e=HEAP8[g+1>>0],String.fromCharCode(e)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var v=100==e||105==e;t=t||4;var w,f=c("i"+8*t),x=f;if(8==t&&(f=Runtime.makeBigInt(f[0],f[1],117==e)),4>=t){var y=Math.pow(256,t)-1;f=(v?reSign:unSign)(f&y,8*t)}var z=Math.abs(f),A="";if(100==e||105==e)w=8==t&&i64Math?i64Math.stringify(x[0],x[1],null):reSign(f,8*t,1).toString(10);else if(117==e)w=8==t&&i64Math?i64Math.stringify(x[0],x[1],!0):unSign(f,8*t,1).toString(10),f=Math.abs(f);else if(111==e)w=(m?"0":"")+z.toString(8);else if(120==e||88==e){if(A=m&&0!=f?"0x":"",8==t&&i64Math)if(x[1]){w=(x[1]>>>0).toString(16);for(var B=(x[0]>>>0).toString(16);B.length<8;)B="0"+B;w+=B}else w=(x[0]>>>0).toString(16);else if(0>f){f=-f,w=(z-1).toString(16);for(var C=[],D=0;D<w.length;D++)C.push((15-parseInt(w[D],16)).toString(16));for(w=C.join("");w.length<2*t;)w="f"+w}else w=z.toString(16);88==e&&(A=A.toUpperCase(),w=w.toUpperCase())}else 112==e&&(0===z?w="(nil)":(A="0x",w=z.toString(16)));if(q)for(;w.length<r;)w="0"+w;for(f>=0&&(k?A="+"+A:o&&(A=" "+A)),"-"==w.charAt(0)&&(A="-"+A,w=w.substr(1));A.length+w.length<p;)l?w+=" ":n?w="0"+w:A=" "+A;w=A+w,w.split("").forEach(function(a){i.push(a.charCodeAt(0))});break;case"f":case"F":case"e":case"E":case"g":case"G":var w,f=c("double");if(isNaN(f))w="nan",n=!1;else if(isFinite(f)){var E=!1,F=Math.min(r,20);if(103==e||71==e){E=!0,r=r||1;var G=parseInt(f.toExponential(F).split("e")[1],10);r>G&&G>=-4?(e=(103==e?"f":"F").charCodeAt(0),r-=G+1):(e=(103==e?"e":"E").charCodeAt(0),r--),F=Math.min(r,20)}101==e||69==e?(w=f.toExponential(F),/[eE][-+]\d$/.test(w)&&(w=w.slice(0,-1)+"0"+w.slice(-1))):(102==e||70==e)&&(w=f.toFixed(F),0===f&&__reallyNegative(f)&&(w="-"+w));var H=w.split("e");if(E&&!m)for(;H[0].length>1&&-1!=H[0].indexOf(".")&&("0"==H[0].slice(-1)||"."==H[0].slice(-1));)H[0]=H[0].slice(0,-1);else for(m&&-1==w.indexOf(".")&&(H[0]+=".");r>F++;)H[0]+="0";w=H[0]+(H.length>1?"e"+H[1]:""),69==e&&(w=w.toUpperCase()),f>=0&&(k?w="+"+w:o&&(w=" "+w))}else w=(0>f?"-":"")+"inf",n=!1;for(;w.length<p;)l?w+=" ":w=!n||"-"!=w[0]&&"+"!=w[0]?(n?"0":" ")+w:w[0]+"0"+w.slice(1);97>e&&(w=w.toUpperCase()),w.split("").forEach(function(a){i.push(a.charCodeAt(0))});break;case"s":var I=c("i8*"),J=I?_strlen(I):"(null)".length;if(q&&(J=Math.min(J,r)),!l)for(;J<p--;)i.push(32);if(I)for(var D=0;J>D;D++)i.push(HEAPU8[I++>>0]);else i=i.concat(intArrayFromString("(null)".substr(0,J),!0));if(l)for(;J<p--;)i.push(32);break;case"c":for(l&&i.push(c("i8"));--p>0;)i.push(32);l||i.push(c("i8"));break;case"n":var K=c("i32*");HEAP32[K>>2]=i.length;break;case"%":i.push(d);break;default:for(var D=j;g+2>D;D++)i.push(HEAP8[D>>0])}g+=2}else i.push(d),g+=1}return i}function _fprintf(a,b,c){var d=__formatString(b,c),e=Runtime.stackSave(),f=_fwrite(allocate(d,"i8",ALLOC_STACK),1,d.length,a);return Runtime.stackRestore(e),f}function _open(a,b,c){var d=HEAP32[c>>2];a=Pointer_stringify(a);try{var e=FS.open(a,b,d);return e.fd}catch(f){return FS.handleFSError(f),-1}}function _fopen(a,b){var c;if(b=Pointer_stringify(b),"r"==b[0])c=-1!=b.indexOf("+")?2:0;else if("w"==b[0])c=-1!=b.indexOf("+")?2:1,c|=64,c|=512;else{if("a"!=b[0])return ___setErrNo(ERRNO_CODES.EINVAL),0;c=-1!=b.indexOf("+")?2:1,c|=64,c|=1024}var d=_open(a,c,allocate([511,0,0,0],"i32",ALLOC_STACK));return-1===d?0:FS.getPtrForStream(FS.getStream(d))}function _feof(a){return a=FS.getStreamFromPtr(a),Number(a&&a.eof)}function _emscripten_memcpy_big(a,b,c){return HEAPU8.set(HEAPU8.subarray(b,b+c),a),a}function _sbrk(a){var b=_sbrk;b.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),b.called=!0,assert(Runtime.dynamicAlloc),b.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var c=DYNAMICTOP;if(0!=a){var d=b.alloc(a);if(!d)return-1>>>0}return c}function _lseek(a,b,c){var d=FS.getStream(a);if(!d)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{return FS.llseek(d,b,c)}catch(e){return FS.handleFSError(e),-1}}function _fseek(a,b,c){var d=_fileno(a),e=_lseek(d,b,c);return-1==e?-1:(a=FS.getStreamFromPtr(a),a.eof=!1,0)}function ___errno_location(){return ___errno_state}function _strerror_r(a,b,c){if(a in ERRNO_MESSAGES){if(ERRNO_MESSAGES[a].length>c-1)return ___setErrNo(ERRNO_CODES.ERANGE);var d=ERRNO_MESSAGES[a];return writeAsciiToMemory(d,b),0}return ___setErrNo(ERRNO_CODES.EINVAL)}function _strerror(a){return _strerror.buffer||(_strerror.buffer=_malloc(256)),_strerror_r(a,_strerror.buffer,256),_strerror.buffer}function _ftell(a){return a=FS.getStreamFromPtr(a),a?FS.isChrdev(a.node.mode)?(___setErrNo(ERRNO_CODES.ESPIPE),-1):a.position:(___setErrNo(ERRNO_CODES.EBADF),-1)}function _emscripten_set_main_loop_timing(a,b){return Browser.mainLoop.timingMode=a,Browser.mainLoop.timingValue=b,Browser.mainLoop.func?(0==a?(Browser.mainLoop.scheduler=function(){setTimeout(Browser.mainLoop.runner,b)},Browser.mainLoop.method="timeout"):1==a&&(Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF"),0):1}function _emscripten_set_main_loop(a,b,c,d,e){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=a,Browser.mainLoop.arg=d;var f=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var b=Date.now(),c=Browser.mainLoop.queue.shift();if(c.func(c.arg),Browser.mainLoop.remainingBlockers){var e=Browser.mainLoop.remainingBlockers,g=e%1==0?e-1:Math.floor(e);c.counted?Browser.mainLoop.remainingBlockers=g:(g+=.5,Browser.mainLoop.remainingBlockers=(8*e+g)/9)}return console.log('main loop blocker "'+c.name+'" took '+(Date.now()-b)+" ms"),Browser.mainLoop.updateStatus(),void setTimeout(Browser.mainLoop.runner,0)}if(!(f<Browser.mainLoop.currentlyRunningMainloop)){if(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,1==Browser.mainLoop.timingMode&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0)return void Browser.mainLoop.scheduler();"timeout"===Browser.mainLoop.method&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(function(){"undefined"!=typeof d?Runtime.dynCall("vi",a,[d]):Runtime.dynCall("v",a)}),f<Browser.mainLoop.currentlyRunningMainloop||("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())}}},e||(b&&b>0?_emscripten_set_main_loop_timing(0,1e3/b):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),c)throw"SimulateInfiniteLoop"}function _time(a){var b=Date.now()/1e3|0;return a&&(HEAP32[a>>2]=b),b}function invoke_iiii(a,b,c,d){try{return Module.dynCall_iiii(a,b,c,d)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_iiiiiiiiii(a,b,c,d,e,f,g,h,i,j){try{return Module.dynCall_iiiiiiiiii(a,b,c,d,e,f,g,h,i,j)}catch(k){if("number"!=typeof k&&"longjmp"!==k)throw k;asm.setThrew(1,0)}}function invoke_vii(a,b,c){try{Module.dynCall_vii(a,b,c)}catch(d){if("number"!=typeof d&&"longjmp"!==d)throw d;asm.setThrew(1,0)}}function invoke_ii(a,b){try{return Module.dynCall_ii(a,b)}catch(c){if("number"!=typeof c&&"longjmp"!==c)throw c;asm.setThrew(1,0)}}function invoke_viii(a,b,c,d){try{Module.dynCall_viii(a,b,c,d)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_iiiii(a,b,c,d,e){try{return Module.dynCall_iiiii(a,b,c,d,e)}catch(f){if("number"!=typeof f&&"longjmp"!==f)throw f;asm.setThrew(1,0)}}function invoke_iii(a,b,c){try{return Module.dynCall_iii(a,b,c)}catch(d){if("number"!=typeof d&&"longjmp"!==d)throw d;asm.setThrew(1,0)}}function invoke_iiiiii(a,b,c,d,e,f){try{return Module.dynCall_iiiiii(a,b,c,d,e,f)}catch(g){if("number"!=typeof g&&"longjmp"!==g)throw g;asm.setThrew(1,0)}}function ExitStatus(a){this.name="ExitStatus",this.message="Program terminated with exit("+a+")",this.status=a}function run(a){function b(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),ENVIRONMENT_IS_WEB&&null!==preloadStartTime&&Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms"),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(a),postRun()))}a=a||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),b()},1)):b()))}function exit(a,b){if(!b||!Module.noExitRuntime)throw Module.noExitRuntime||(ABORT=!0,EXITSTATUS=a,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(a)),ENVIRONMENT_IS_NODE?(process.stdout.once("drain",function(){process.exit(a)}),console.log(" "),setTimeout(function(){process.exit(a)},500)):ENVIRONMENT_IS_SHELL&&"function"==typeof quit&&quit(a),new ExitStatus(a)}function abort(a){void 0!==a?(Module.print(a),Module.printErr(a),a=JSON.stringify(a)):a="",ABORT=!0,EXITSTATUS=1;var b="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.",c="abort("+a+") at "+stackTrace()+b;throw abortDecorators&&abortDecorators.forEach(function(b){c=b(c,a)}),c}var Module={"data":data__,"compress":compress__,"force":force__,"extremeflag":extremeflag__};Module.arguments=[1==Module.compress?"1":"0",Module.force.toString(),Module.extremeflag?"1":"0"],Module.TOTAL_MEMORY=totalMemory||536870912,Module.cbProgress=null!=cbPr?cbPr:function(a,b){console.log("cbProgress:: "+[a,b]+":: "+a/b)},Module.preRun=function(){FS.mkdir("/data"),Module.arguments=[1==Module.compress?"1":"0",Module.force.toString(),Module.extremeflag?"1":"0"],1==Module.compress?FS.writeFile("/data/file.data",Module.data,{"encoding":"binary"}):FS.writeFile("/data/file_dec.data.xz",Module.data,{"encoding":"binary"})},Module["return"]=function(){return 1==Module.compress?FS.readFile("/data/file.data.xz"):FS.readFile("/data/file_dec.data")};var Module;Module||(Module=("undefined"!=typeof Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require&&!ENVIRONMENT_IS_WEB,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=function(a){process.stdout.write(a+"\n")}),Module.printErr||(Module.printErr=function(a){process.stderr.write(a+"\n")});var nodeFS=require("fs"),nodePath=require("path");Module.read=function(a,b){a=nodePath.normalize(a);var c=nodeFS.readFileSync(a);return c||a==nodePath.resolve(a)||(a=path.join(__dirname,"..","src",a),c=nodeFS.readFileSync(a)),c&&!b&&(c=c.toString()),c},Module.readBinary=function(a){return Module.read(a,!0)},Module.load=function(a){globalEval(read(a))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",function(a){if(!(a instanceof ExitStatus))throw a}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(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(a){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(a));var b=read(a,"binary");return assert("object"==typeof b),b},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:"undefined"!=typeof arguments&&(Module.arguments=arguments);else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(a){var b=new XMLHttpRequest;return b.open("GET",a,!1),b.send(null),b.responseText},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(a){console.log(a)}),Module.printErr||(Module.printErr=function(a){console.log(a)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(a){dump(a)}:function(a){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(a){document.title=a})}!Module.load&&Module.read&&(Module.load=function(a){globalEval(Module.read(a))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={"setTempRet0":function(a){tempRet0=a},"getTempRet0":function(){return tempRet0},"stackSave":function(){return STACKTOP},"stackRestore":function(a){STACKTOP=a},"getNativeTypeSize":function(a){switch(a){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===a[a.length-1])return Runtime.QUANTUM_SIZE;if("i"===a[0]){var b=parseInt(a.substr(1));return assert(b%8===0),b/8}return 0}},"getNativeFieldSize":function(a){return Math.max(Runtime.getNativeTypeSize(a),Runtime.QUANTUM_SIZE)},"STACK_ALIGN":16,"prepVararg":function(a,b){return"double"===b||"i64"===b?7&a&&(assert(4===(7&a)),a+=4):assert(0===(3&a)),a},"getAlignSize":function(a,b,c){return c||"i64"!=a&&"double"!=a?a?Math.min(b||(a?Runtime.getNativeFieldSize(a):0),Runtime.QUANTUM_SIZE):Math.min(b,8):8},"dynCall":function(a,b,c){return c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),Module["dynCall_"+a].apply(null,c)):Module["dynCall_"+a].call(null,b)},"functionPointers":[],"addFunction":function(a){for(var b=0;b<Runtime.functionPointers.length;b++)if(!Runtime.functionPointers[b])return Runtime.functionPointers[b]=a,2*(1+b);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},"removeFunction":function(a){Runtime.functionPointers[(a-2)/2]=null},"warnOnce":function(a){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[a]||(Runtime.warnOnce.shown[a]=1,Module.printErr(a))},"funcWrappers":{},"getFuncWrapper":function(a,b){assert(b),Runtime.funcWrappers[b]||(Runtime.funcWrappers[b]={});var c=Runtime.funcWrappers[b];return c[a]||(c[a]=function(){return Runtime.dynCall(b,a,arguments)}),c[a]},"getCompilerSetting":function(a){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},"stackAlloc":function(a){var b=STACKTOP;return STACKTOP=STACKTOP+a|0,STACKTOP=STACKTOP+15&-16,b},"staticAlloc":function(a){var b=STATICTOP;return STATICTOP=STATICTOP+a|0,STATICTOP=STATICTOP+15&-16,b},"dynamicAlloc":function(a){var b=DYNAMICTOP;if(DYNAMICTOP=DYNAMICTOP+a|0,DYNAMICTOP=DYNAMICTOP+15&-16,DYNAMICTOP>=TOTAL_MEMORY){var c=enlargeMemory();if(!c)return DYNAMICTOP=b,0}return b},"alignMemory":function(a,b){var c=a=Math.ceil(a/(b?b:16))*(b?b:16);return c},"makeBigInt":function(a,b,c){var d=c?+(a>>>0)+4294967296*+(b>>>0):+(a>>>0)+4294967296*+(0|b);return d},"GLOBAL_BASE":8,"QUANTUM_SIZE":4,"__dummy__":0};Module.Runtime=Runtime;var __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,globalScope=this,cwrap,ccall;!function(){function parseJSFunc(a){var b=a.toString().match(sourceRegex).slice(1);return{"arguments":b[0],"body":b[1],"returnValue":b[2]
}}var JSfuncs={"stackSave":function(){Runtime.stackSave()},"stackRestore":function(){Runtime.stackRestore()},"arrayToC":function(a){var b=Runtime.stackAlloc(a.length);return writeArrayToMemory(a,b),b},"stringToC":function(a){var b=0;return null!==a&&void 0!==a&&0!==a&&(b=Runtime.stackAlloc((a.length<<2)+1),writeStringToMemory(a,b)),b}},toC={"string":JSfuncs.stringToC,"array":JSfuncs.arrayToC};ccall=function(a,b,c,d,e){var f=getCFunc(a),g=[],h=0;if(d)for(var i=0;i<d.length;i++){var j=toC[c[i]];j?(0===h&&(h=Runtime.stackSave()),g[i]=j(d[i])):g[i]=d[i]}var k=f.apply(null,g);if("string"===b&&(k=Pointer_stringify(k)),0!==h){if(e&&e.async)return void EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(h)});Runtime.stackRestore(h)}return k};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,JSsource={};for(var fun in JSfuncs)JSfuncs.hasOwnProperty(fun)&&(JSsource[fun]=parseJSFunc(JSfuncs[fun]));cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(a){return"number"===a}),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(a,b){return"$"+b}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;nargs>i;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"="+convertCode.returnValue+";"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}}(),Module.cwrap=cwrap,Module.ccall=ccall,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii,Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.lengthBytesUTF16=lengthBytesUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.lengthBytesUTF32=lengthBytesUTF32,Module.stackTrace=stackTrace;for(var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0,TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||536870912,totalMemory=65536;TOTAL_MEMORY>totalMemory||2*TOTAL_STACK>totalMemory;)16777216>totalMemory?totalMemory*=2:totalMemory+=16777216;totalMemory!==TOTAL_MEMORY&&(Module.printErr("increasing TOTAL_MEMORY to "+totalMemory+" to be compliant with the asm.js spec (and given that TOTAL_STACK="+TOTAL_STACK+")"),TOTAL_MEMORY=totalMemory),assert("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer;buffer=new ArrayBuffer(TOTAL_MEMORY),HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"Typed arrays 2 must be run on a little-endian system"),Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;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&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,b){var c=a>>>16,d=65535&a,e=b>>>16,f=65535&b;return d*f+(c*f+d*e<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(a){a>>>=0;for(var b=0;32>b;b++)if(a&1<<31-b)return b;return 32}),Math.clz32=Math.clz32;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,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null,ASM_CONSTS=[function(a,b){Module.cbProgress(a,b)}];STATIC_BASE=8,STATICTOP=STATIC_BASE+27296,__ATINIT__.push(),allocate([85,110,115,117,112,112,111,114,116,101,100,32,112,114,101,115,101,116,44,32,112,111,115,115,105,98,108,121,32,97,32,98,117,103,10,0,0,0,0,0,85,110,107,110,111,119,110,32,101,114,114,111,114,44,32,112,111,115,115,105,98,108,121,32,97,32,98,117,103,0,0,0,83,112,101,99,105,102,105,101,100,32,105,110,116,101,103,114,105,116,121,32,99,104,101,99,107,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,0,0,0,0,0,83,112,101,99,105,102,105,101,100,32,102,105,108,116,101,114,32,99,104,97,105,110,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,77,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,0,0,0,0,0,0,0,0,69,114,114,111,114,32,105,110,105,116,105,97,108,105,122,105,110,103,32,116,104,101,32,101,110,99,111,100,101,114,58,32,37,115,32,40,101,114,114,111,114,32,99,111,100,101,32,37,117,41,10,0,0,0,0,0,47,100,97,116,97,47,102,105,108,101,46,100,97,116,97,0,114,98,0,0,0,0,0,0,47,100,97,116,97,47,102,105,108,101,46,100,97,116,97,46,120,122,0,0,0,0,0,0,119,98,0,0,0,0,0,0,123,32,77,111,100,117,108,101,91,39,99,98,80,114,111,103,114,101,115,115,39,93,40,36,48,44,32,36,49,41,59,32,125,0,0,0,0,0,0,0,82,101,97,100,32,101,114,114,111,114,58,32,37,115,10,0,87,114,105,116,101,32,101,114,114,111,114,58,32,37,115,10,0,0,0,0,0,0,0,0,70,105,108,101,32,115,105,122,101,32,108,105,109,105,116,115,32,101,120,99,101,101,100,101,100,0,0,0,0,0,0,0,69,110,99,111,100,101,114,32,101,114,114,111,114,58,32,37,115,32,40,101,114,114,111,114,32,99,111,100,101,32,37,117,41,10,0,0,0,0,0,0,85,110,115,117,112,112,111,114,116,101,100,32,100,101,99,111,109,112,114,101,115,115,111,114,32,102,108,97,103,115,0,0,69,114,114,111,114,32,105,110,105,116,105,97,108,105,122,105,110,103,32,116,104,101,32,100,101,99,111,100,101,114,58,32,37,115,32,40,101,114,114,111,114,32,99,111,100,101,32,37,117,41,10,0,0,0,0,0,47,100,97,116,97,47,102,105,108,101,95,100,101,99,46,100,97,116,97,46,120,122,0,0,47,100,97,116,97,47,102,105,108,101,95,100,101,99,46,100,97,116,97,0,0,0,0,0,37,115,58,32,82,101,97,100,32,101,114,114,111,114,58,32,37,115,10,0,0,0,0,0,67,111,109,112,114,101,115,115,101,100,32,102,105,108,101,32,105,115,32,116,114,117,110,99,97,116,101,100,32,111,114,32,111,116,104,101,114,119,105,115,101,32,99,111,114,114,117,112,116,0,0,0,0,0,0,0,67,111,109,112,114,101,115,115,101,100,32,102,105,108,101,32,105,115,32,99,111,114,114,117,112,116,0,0,0,0,0,0,85,110,115,117,112,112,111,114,116,101,100,32,99,111,109,112,114,101,115,115,105,111,110,32,111,112,116,105,111,110,115,0,84,104,101,32,105,110,112,117,116,32,105,115,32,110,111,116,32,105,110,32,116,104,101,32,46,120,122,32,102,111,114,109,97,116,0,0,0,0,0,0,37,115,58,32,68,101,99,111,100,101,114,32,101,114,114,111,114,58,32,37,115,32,40,101,114,114,111,114,32,99,111,100,101,32,37,117,41,10,0,0,0,0,0,0,1,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,4,4,4,8,8,8,16,16,16,32,32,32,64,64,64,103,230,9,106,133,174,103,187,114,243,110,60,58,245,79,165,127,82,14,81,140,104,5,155,171,217,131,31,25,205,224,91,152,47,138,66,145,68,55,113,207,251,192,181,165,219,181,233,91,194,86,57,241,17,241,89,164,130,63,146,213,94,28,171,152,170,7,216,1,91,131,18,190,133,49,36,195,125,12,85,116,93,190,114,254,177,222,128,167,6,220,155,116,241,155,193,193,105,155,228,134,71,190,239,198,157,193,15,204,161,12,36,111,44,233,45,170,132,116,74,220,169,176,92,218,136,249,118,82,81,62,152,109,198,49,168,200,39,3,176,199,127,89,191,243,11,224,198,71,145,167,213,81,99,202,6,103,41,41,20,133,10,183,39,56,33,27,46,252,109,44,77,19,13,56,83,84,115,10,101,187,10,106,118,46,201,194,129,133,44,114,146,161,232,191,162,75,102,26,168,112,139,75,194,163,81,108,199,25,232,146,209,36,6,153,214,133,53,14,244,112,160,106,16,22,193,164,25,8,108,55,30,76,119,72,39,181,188,176,52,179,12,28,57,74,170,216,78,79,202,156,91,243,111,46,104,238,130,143,116,111,99,165,120,20,120,200,132,8,2,199,140,250,255,190,144,235,108,80,164,247,163,249,190,242,120,113,198,18,20,21,22,22,23,23,24,25,26,0,0,0,0,0,0,4,8,24,48,0,0,0,0,1,0,0,0,0,0,0,64,96,0,0,0,0,1,1,0,33,0,0,0,0,0,0,0,96,0,0,0,0,1,1,0,4,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,8,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,32,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,253,55,122,88,90,0,0,0,89,90,0,0,0,0,0,0,1,0,0,0,0,0,0,64,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,1,0,0,0,33,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,9,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,9,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,0,0,0,64,10,0,0,0,5,0,0,0,1,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,11,0,0,0,6,0,0,0,2,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,150,48,7,119,44,97,14,238,186,81,9,153,25,196,109,7,143,244,106,112,53,165,99,233,163,149,100,158,50,136,219,14,164,184,220,121,30,233,213,224,136,217,210,151,43,76,182,9,189,124,177,126,7,45,184,231,145,29,191,144,100,16,183,29,242,32,176,106,72,113,185,243,222,65,190,132,125,212,218,26,235,228,221,109,81,181,212,244,199,133,211,131,86,152,108,19,192,168,107,100,122,249,98,253,236,201,101,138,79,92,1,20,217,108,6,99,99,61,15,250,245,13,8,141,200,32,110,59,94,16,105,76,228,65,96,213,114,113,103,162,209,228,3,60,71,212,4,75,253,133,13,210,107,181,10,165,250,168,181,53,108,152,178,66,214,201,187,219,64,249,188,172,227,108,216,50,117,92,223,69,207,13,214,220,89,61,209,171,172,48,217,38,58,0,222,81,128,81,215,200,22,97,208,191,181,244,180,33,35,196,179,86,153,149,186,207,15,165,189,184,158,184,2,40,8,136,5,95,178,217,12,198,36,233,11,177,135,124,111,47,17,76,104,88,171,29,97,193,61,45,102,182,144,65,220,118,6,113,219,1,188,32,210,152,42,16,213,239,137,133,177,113,31,181,182,6,165,228,191,159,51,212,184,232,162,201,7,120,52,249,0,15,142,168,9,150,24,152,14,225,187,13,106,127,45,61,109,8,151,108,100,145,1,92,99,230,244,81,107,107,98,97,108,28,216,48,101,133,78,0,98,242,237,149,6,108,123,165,1,27,193,244,8,130,87,196,15,245,198,217,176,101,80,233,183,18,234,184,190,139,124,136,185,252,223,29,221,98,73,45,218,21,243,124,211,140,101,76,212,251,88,97,178,77,206,81,181,58,116,0,188,163,226,48,187,212,65,165,223,74,215,149,216,61,109,196,209,164,251,244,214,211,106,233,105,67,252,217,110,52,70,136,103,173,208,184,96,218,115,45,4,68,229,29,3,51,95,76,10,170,201,124,13,221,60,113,5,80,170,65,2,39,16,16,11,190,134,32,12,201,37,181,104,87,179,133,111,32,9,212,102,185,159,228,97,206,14,249,222,94,152,201,217,41,34,152,208,176,180,168,215,199,23,61,179,89,129,13,180,46,59,92,189,183,173,108,186,192,32,131,184,237,182,179,191,154,12,226,182,3,154,210,177,116,57,71,213,234,175,119,210,157,21,38,219,4,131,22,220,115,18,11,99,227,132,59,100,148,62,106,109,13,168,90,106,122,11,207,14,228,157,255,9,147,39,174,0,10,177,158,7,125,68,147,15,240,210,163,8,135,104,242,1,30,254,194,6,105,93,87,98,247,203,103,101,128,113,54,108,25,231,6,107,110,118,27,212,254,224,43,211,137,90,122,218,16,204,74,221,103,111,223,185,249,249,239,190,142,67,190,183,23,213,142,176,96,232,163,214,214,126,147,209,161,196,194,216,56,82,242,223,79,241,103,187,209,103,87,188,166,221,6,181,63,75,54,178,72,218,43,13,216,76,27,10,175,246,74,3,54,96,122,4,65,195,239,96,223,85,223,103,168,239,142,110,49,121,190,105,70,140,179,97,203,26,131,102,188,160,210,111,37,54,226,104,82,149,119,12,204,3,71,11,187,185,22,2,34,47,38,5,85,190,59,186,197,40,11,189,178,146,90,180,43,4,106,179,92,167,255,215,194,49,207,208,181,139,158,217,44,29,174,222,91,176,194,100,155,38,242,99,236,156,163,106,117,10,147,109,2,169,6,9,156,63,54,14,235,133,103,7,114,19,87,0,5,130,74,191,149,20,122,184,226,174,43,177,123,56,27,182,12,155,142,210,146,13,190,213,229,183,239,220,124,33,223,219,11,212,210,211,134,66,226,212,241,248,179,221,104,110,131,218,31,205,22,190,129,91,38,185,246,225,119,176,111,119,71,183,24,230,90,8,136,112,106,15,255,202,59,6,102,92,11,1,17,255,158,101,143,105,174,98,248,211,255,107,97,69,207,108,22,120,226,10,160,238,210,13,215,84,131,4,78,194,179,3,57,97,38,103,167,247,22,96,208,77,71,105,73,219,119,110,62,74,106,209,174,220,90,214,217,102,11,223,64,240,59,216,55,83,174,188,169,197,158,187,222,127,207,178,71,233,255,181,48,28,242,189,189,138,194,186,202,48,147,179,83,166,163,180,36,5,54,208,186,147,6,215,205,41,87,222,84,191,103,217,35,46,122,102,179,184,74,97,196,2,27,104,93,148,43,111,42,55,190,11,180,161,142,12,195,27,223,5,90,141,239,2,45,0,0,0,0,65,49,27,25,130,98,54,50,195,83,45,43,4,197,108,100,69,244,119,125,134,167,90,86,199,150,65,79,8,138,217,200,73,187,194,209,138,232,239,250,203,217,244,227,12,79,181,172,77,126,174,181,142,45,131,158,207,28,152,135,81,18,194,74,16,35,217,83,211,112,244,120,146,65,239,97,85,215,174,46,20,230,181,55,215,181,152,28,150,132,131,5,89,152,27,130,24,169,0,155,219,250,45,176,154,203,54,169,93,93,119,230,28,108,108,255,223,63,65,212,158,14,90,205,162,36,132,149,227,21,159,140,32,70,178,167,97,119,169,190,166,225,232,241,231,208,243,232,36,131,222,195,101,178,197,218,170,174,93,93,235,159,70,68,40,204,107,111,105,253,112,118,174,107,49,57,239,90,42,32,44,9,7,11,109,56,28,18,243,54,70,223,178,7,93,198,113,84,112,237,48,101,107,244,247,243,42,187,182,194,49,162,117,145,28,137,52,160,7,144,251,188,159,23,186,141,132,14,121,222,169,37,56,239,178,60,255,121,243,115,190,72,232,106,125,27,197,65,60,42,222,88,5,79,121,240,68,126,98,233,135,45,79,194,198,28,84,219,1,138,21,148,64,187,14,141,131,232,35,166,194,217,56,191,13,197,160,56,76,244,187,33,143,167,150,10,206,150,141,19,9,0,204,92,72,49,215,69,139,98,250,110,202,83,225,119,84,93,187,186,21,108,160,163,214,63,141,136,151,14,150,145,80,152,215,222,17,169,204,199,210,250,225,236,147,203,250,245,92,215,98,114,29,230,121,107,222,181,84,64,159,132,79,89,88,18,14,22,25,35,21,15,218,112,56,36,155,65,35,61,167,107,253,101,230,90,230,124,37,9,203,87,100,56,208,78,163,174,145,1,226,159,138,24,33,204,167,51,96,253,188,42,175,225,36,173,238,208,63,180,45,131,18,159,108,178,9,134,171,36,72,201,234,21,83,208,41,70,126,251,104,119,101,226,246,121,63,47,183,72,36,54,116,27,9,29,53,42,18,4,242,188,83,75,179,141,72,82,112,222,101,121,49,239,126,96,254,243,230,231,191,194,253,254,124,145,208,213,61,160,203,204,250,54,138,131,187,7,145,154,120,84,188,177,57,101,167,168,75,152,131,59,10,169,152,34,201,250,181,9,136,203,174,16,79,93,239,95,14,108,244,70,205,63,217,109,140,14,194,116,67,18,90,243,2,35,65,234,193,112,108,193,128,65,119,216,71,215,54,151,6,230,45,142,197,181,0,165,132,132,27,188,26,138,65,113,91,187,90,104,152,232,119,67,217,217,108,90,30,79,45,21,95,126,54,12,156,45,27,39,221,28,0,62,18,0,152,185,83,49,131,160,144,98,174,139,209,83,181,146,22,197,244,221,87,244,239,196,148,167,194,239,213,150,217,246,233,188,7,174,168,141,28,183,107,222,49,156,42,239,42,133,237,121,107,202,172,72,112,211,111,27,93,248,46,42,70,225,225,54,222,102,160,7,197,127,99,84,232,84,34,101,243,77,229,243,178,2,164,194,169,27,103,145,132,48,38,160,159,41,184,174,197,228,249,159,222,253,58,204,243,214,123,253,232,207,188,107,169,128,253,90,178,153,62,9,159,178,127,56,132,171,176,36,28,44,241,21,7,53,50,70,42,30,115,119,49,7,180,225,112,72,245,208,107,81,54,131,70,122,119,178,93,99,78,215,250,203,15,230,225,210,204,181,204,249,141,132,215,224,74,18,150,175,11,35,141,182,200,112,160,157,137,65,187,132,70,93,35,3,7,108,56,26,196,63,21,49,133,14,14,40,66,152,79,103,3,169,84,126,192,250,121,85,129,203,98,76,31,197,56,129,94,244,35,152,157,167,14,179,220,150,21,170,27,0,84,229,90,49,79,252,153,98,98,215,216,83,121,206,23,79,225,73,86,126,250,80,149,45,215,123,212,28,204,98,19,138,141,45,82,187,150,52,145,232,187,31,208,217,160,6,236,243,126,94,173,194,101,71,110,145,72,108,47,160,83,117,232,54,18,58,169,7,9,35,106,84,36,8,43,101,63,17,228,121,167,150,165,72,188,143,102,27,145,164,39,42,138,189,224,188,203,242,161,141,208,235,98,222,253,192,35,239,230,217,189,225,188,20,252,208,167,13,63,131,138,38,126,178,145,63,185,36,208,112,248,21,203,105,59,70,230,66,122,119,253,91,181,107,101,220,244,90,126,197,55,9,83,238,118,56,72,247,177,174,9,184,240,159,18,161,51,204,63,138,114,253,36,147,0,0,0,0,55,106,194,1,110,212,132,3,89,190,70,2,220,168,9,7,235,194,203,6,178,124,141,4,133,22,79,5,184,81,19,14,143,59,209,15,214,133,151,13,225,239,85,12,100,249,26,9,83,147,216,8,10,45,158,10,61,71,92,11,112,163,38,28,71,201,228,29,30,119,162,31,41,29,96,30,172,11,47,27,155,97,237,26,194,223,171,24,245,181,105,25,200,242,53,18,255,152,247,19,166,38,177,17,145,76,115,16,20,90,60,21,35,48,254,20,122,142,184,22,77,228,122,23,224,70,77,56,215,44,143,57,142,146,201,59,185,248,11,58,60,238,68,63,11,132,134,62,82,58,192,60,101,80,2,61,88,23,94,54,111,125,156,55,54,195,218,53,1,169,24,52,132,191,87,49,179,213,149,48,234,107,211,50,221,1,17,51,144,229,107,36,167,143,169,37,254,49,239,39,201,91,45,38,76,77,98,35,123,39,160,34,34,153,230,32,21,243,36,33,40,180,120,42,31,222,186,43,70,96,252,41,113,10,62,40,244,28,113,45,195,118,179,44,154,200,245,46,173,162,55,47,192,141,154,112,247,231,88,113,174,89,30,115,153,51,220,114,28,37,147,119,43,79,81,118,114,241,23,116,69,155,213,117,120,220,137,126,79,182,75,127,22,8,13,125,33,98,207,124,164,116,128,121,147,30,66,120,202,160,4,122,253,202,198,123,176,46,188,108,135,68,126,109,222,250,56,111,233,144,250,110,108,134,181,107,91,236,119,106,2,82,49,104,53,56,243,105,8,127,175,98,63,21,109,99,102,171,43,97,81,193,233,96,212,215,166,101,227,189,100,100,186,3,34,102,141,105,224,103,32,203,215,72,23,161,21,73,78,31,83,75,121,117,145,74,252,99,222,79,203,9,28,78,146,183,90,76,165,221,152,77,152,154,196,70,175,240,6,71,246,78,64,69,193,36,130,68,68,50,205,65,115,88,15,64,42,230,73,66,29,140,139,67,80,104,241,84,103,2,51,85,62,188,117,87,9,214,183,86,140,192,248,83,187,170,58,82,226,20,124,80,213,126,190,81,232,57,226,90,223,83,32,91,134,237,102,89,177,135,164,88,52,145,235,93,3,251,41,92,90,69,111,94,109,47,173,95,128,27,53,225,183,113,247,224,238,207,177,226,217,165,115,227,92,179,60,230,107,217,254,231,50,103,184,229,5,13,122,228,56,74,38,239,15,32,228,238,86,158,162,236,97,244,96,237,228,226,47,232,211,136,237,233,138,54,171,235,189,92,105,234,240,184,19,253,199,210,209,252,158,108,151,254,169,6,85,255,44,16,26,250,27,122,216,251,66,196,158,249,117,174,92,248,72,233,0,243,127,131,194,242,38,61,132,240,17,87,70,241,148,65,9,244,163,43,203,245,250,149,141,247,205,255,79,246,96,93,120,217,87,55,186,216,14,137,252,218,57,227,62,219,188,245,113,222,139,159,179,223,210,33,245,221,229,75,55,220,216,12,107,215,239,102,169,214,182,216,239,212,129,178,45,213,4,164,98,208,51,206,160,209,106,112,230,211,93,26,36,210,16,254,94,197,39,148,156,196,126,42,218,198,73,64,24,199,204,86,87,194,251,60,149,195,162,130,211,193,149,232,17,192,168,175,77,203,159,197,143,202,198,123,201,200,241,17,11,201,116,7,68,204,67,109,134,205,26,211,192,207,45,185,2,206,64,150,175,145,119,252,109,144,46,66,43,146,25,40,233,147,156,62,166,150,171,84,100,151,242,234,34,149,197,128,224,148,248,199,188,159,207,173,126,158,150,19,56,156,161,121,250,157,36,111,181,152,19,5,119,153,74,187,49,155,125,209,243,154,48,53,137,141,7,95,75,140,94,225,13,142,105,139,207,143,236,157,128,138,219,247,66,139,130,73,4,137,181,35,198,136,136,100,154,131,191,14,88,130,230,176,30,128,209,218,220,129,84,204,147,132,99,166,81,133,58,24,23,135,13,114,213,134,160,208,226,169,151,186,32,168,206,4,102,170,249,110,164,171,124,120,235,174,75,18,41,175,18,172,111,173,37,198,173,172,24,129,241,167,47,235,51,166,118,85,117,164,65,63,183,165,196,41,248,160,243,67,58,161,170,253,124,163,157,151,190,162,208,115,196,181,231,25,6,180,190,167,64,182,137,205,130,183,12,219,205,178,59,177,15,179,98,15,73,177,85,101,139,176,104,34,215,187,95,72,21,186,6,246,83,184,49,156,145,185,180,138,222,188,131,224,28,189,218,94,90,191,237,52,152,190,0,0,0,0,101,103,188,184,139,200,9,170,238,175,181,18,87,151,98,143,50,240,222,55,220,95,107,37,185,56,215,157,239,40,180,197,138,79,8,125,100,224,189,111,1,135,1,215,184,191,214,74,221,216,106,242,51,119,223,224,86,16,99,88,159,87,25,80,250,48,165,232,20,159,16,250,113,248,172,66,200,192,123,223,173,167,199,103,67,8,114,117,38,111,206,205,112,127,173,149,21,24,17,45,251,183,164,63,158,208,24,135,39,232,207,26,66,143,115,162,172,32,198,176,201,71,122,8,62,175,50,160,91,200,142,24,181,103,59,10,208,0,135,178,105,56,80,47,12,95,236,151,226,240,89,133,135,151,229,61,209,135,134,101,180,224,58,221,90,79,143,207,63,40,51,119,134,16,228,234,227,119,88,82,13,216,237,64,104,191,81,248,161,248,43,240,196,159,151,72,42,48,34,90,79,87,158,226,246,111,73,127,147,8,245,199,125,167,64,213,24,192,252,109,78,208,159,53,43,183,35,141,197,24,150,159,160,127,42,39,25,71,253,186,124,32,65,2,146,143,244,16,247,232,72,168,61,88,20,155,88,63,168,35,182,144,29,49,211,247,161,137,106,207,118,20,15,168,202,172,225,7,127,190,132,96,195,6,210,112,160,94,183,23,28,230,89,184,169,244,60,223,21,76,133,231,194,209,224,128,126,105,14,47,203,123,107,72,119,195,162,15,13,203,199,104,177,115,41,199,4,97,76,160,184,217,245,152,111,68,144,255,211,252,126,80,102,238,27,55,218,86,77,39,185,14,40,64,5,182,198,239,176,164,163,136,12,28,26,176,219,129,127,215,103,57,145,120,210,43,244,31,110,147,3,247,38,59,102,144,154,131,136,63,47,145,237,88,147,41,84,96,68,180,49,7,248,12,223,168,77,30,186,207,241,166,236,223,146,254,137,184,46,70,103,23,155,84,2,112,39,236,187,72,240,113,222,47,76,201,48,128,249,219,85,231,69,99,156,160,63,107,249,199,131,211,23,104,54,193,114,15,138,121,203,55,93,228,174,80,225,92,64,255,84,78,37,152,232,246,115,136,139,174,22,239,55,22,248,64,130,4,157,39,62,188,36,31,233,33,65,120,85,153,175,215,224,139,202,176,92,51,59,182,89,237,94,209,229,85,176,126,80,71,213,25,236,255,108,33,59,98,9,70,135,218,231,233,50,200,130,142,142,112,212,158,237,40,177,249,81,144,95,86,228,130,58,49,88,58,131,9,143,167,230,110,51,31,8,193,134,13,109,166,58,181,164,225,64,189,193,134,252,5,47,41,73,23,74,78,245,175,243,118,34,50,150,17,158,138,120,190,43,152,29,217,151,32,75,201,244,120,46,174,72,192,192,1,253,210,165,102,65,106,28,94,150,247,121,57,42,79,151,150,159,93,242,241,35,229,5,25,107,77,96,126,215,245,142,209,98,231,235,182,222,95,82,142,9,194,55,233,181,122,217,70,0,104,188,33,188,208,234,49,223,136,143,86,99,48,97,249,214,34,4,158,106,154,189,166,189,7,216,193,1,191,54,110,180,173,83,9,8,21,154,78,114,29,255,41,206,165,17,134,123,183,116,225,199,15,205,217,16,146,168,190,172,42,70,17,25,56,35,118,165,128,117,102,198,216,16,1,122,96,254,174,207,114,155,201,115,202,34,241,164,87,71,150,24,239,169,57,173,253,204,94,17,69,6,238,77,118,99,137,241,206,141,38,68,220,232,65,248,100,81,121,47,249,52,30,147,65,218,177,38,83,191,214,154,235,233,198,249,179,140,161,69,11,98,14,240,25,7,105,76,161,190,81,155,60,219,54,39,132,53,153,146,150,80,254,46,46,153,185,84,38,252,222,232,158,18,113,93,140,119,22,225,52,206,46,54,169,171,73,138,17,69,230,63,3,32,129,131,187,118,145,224,227,19,246,92,91,253,89,233,73,152,62,85,241,33,6,130,108,68,97,62,212,170,206,139,198,207,169,55,126,56,65,127,214,93,38,195,110,179,137,118,124,214,238,202,196,111,214,29,89,10,177,161,225,228,30,20,243,129,121,168,75,215,105,203,19,178,14,119,171,92,161,194,185,57,198,126,1,128,254,169,156,229,153,21,36,11,54,160,54,110,81,28,142,167,22,102,134,194,113,218,62,44,222,111,44,73,185,211,148,240,129,4,9,149,230,184,177,123,73,13,163,30,46,177,27,72,62,210,67,45,89,110,251,195,246,219,233,166,145,103,81,31,169,176,204,122,206,12,116,148,97,185,102,241,6,5,222,0,0,0,0,176,41,96,61,96,83,192,122,208,122,160,71,192,166,128,245,112,143,224,200,160,245,64,143,16,220,32,178,193,75,112,48,113,98,16,13,161,24,176,74,17,49,208,119,1,237,240,197,177,196,144,248,97,190,48,191,209,151,80,130,130,151,224,96,50,190,128,93,226,196,32,26,82,237,64,39,66,49,96,149,242,24,0,168,34,98,160,239,146,75,192,210,67,220,144,80,243,245,240,109,35,143,80,42,147,166,48,23,131,122,16,165,51,83,112,152,227,41,208,223,83,0,176,226,4,47,193,193,180,6,161,252,100,124,1,187,212,85,97,134,196,137,65,52,116,160,33,9,164,218,129,78,20,243,225,115,197,100,177,241,117,77,209,204,165,55,113,139,21,30,17,182,5,194,49,4,181,235,81,57,101,145,241,126,213,184,145,67,134,184,33,161,54,145,65,156,230,235,225,219,86,194,129,230,70,30,161,84,246,55,193,105,38,77,97,46,150,100,1,19,71,243,81,145,247,218,49,172,39,160,145,235,151,137,241,214,135,85,209,100,55,124,177,89,231,6,17,30,87,47,113,35,73,88,243,88,249,113,147,101,41,11,51,34,153,34,83,31,137,254,115,173,57,215,19,144,233,173,179,215,89,132,211,234,136,19,131,104,56,58,227,85,232,64,67,18,88,105,35,47,72,181,3,157,248,156,99,160,40,230,195,231,152,207,163,218,203,207,19,56,123,230,115,5,171,156,211,66,27,181,179,127,11,105,147,205,187,64,243,240,107,58,83,183,219,19,51,138,10,132,99,8,186,173,3,53,106,215,163,114,218,254,195,79,202,34,227,253,122,11,131,192,170,113,35,135,26,88,67,186,77,119,50,153,253,94,82,164,45,36,242,227,157,13,146,222,141,209,178,108,61,248,210,81,237,130,114,22,93,171,18,43,140,60,66,169,60,21,34,148,236,111,130,211,92,70,226,238,76,154,194,92,252,179,162,97,44,201,2,38,156,224,98,27,207,224,210,249,127,201,178,196,175,179,18,131,31,154,114,190,15,70,82,12,191,111,50,49,111,21,146,118,223,60,242,75,14,171,162,201,190,130,194,244,110,248,98,179,222,209,2,142,206,13,34,60,126,36,66,1,174,94,226,70,30,119,130,123,146,176,230,177,34,153,134,140,242,227,38,203,66,202,70,246,82,22,102,68,226,63,6,121,50,69,166,62,130,108,198,3,83,251,150,129,227,210,246,188,51,168,86,251,131,129,54,198,147,93,22,116,35,116,118,73,243,14,214,14,67,39,182,51,16,39,6,209,160,14,102,236,112,116,198,171,192,93,166,150,208,129,134,36,96,168,230,25,176,210,70,94,0,251,38,99,209,108,118,225,97,69,22,220,177,63,182,155,1,22,214,166,17,202,246,20,161,227,150,41,113,153,54,110,193,176,86,83,150,159,39,112,38,182,71,77,246,204,231,10,70,229,135,55,86,57,167,133,230,16,199,184,54,106,103,255,134,67,7,194,87,212,87,64,231,253,55,125,55,135,151,58,135,174,247,7,151,114,215,181,39,91,183,136,247,33,23,207,71,8,119,242,20,8,199,16,164,33,167,45,116,91,7,106,196,114,103,87,212,174,71,229,100,135,39,216,180,253,135,159,4,212,231,162,213,67,183,32,101,106,215,29,181,16,119,90,5,57,23,103,21,229,55,213,165,204,87,232,117,182,247,175,197,159,151,146,219,232,21,233,107,193,117,212,187,187,213,147,11,146,181,174,27,78,149,28,171,103,245,33,123,29,85,102,203,52,53,91,26,163,101,217,170,138,5,228,122,240,165,163,202,217,197,158,218,5,229,44,106,44,133,17,186,86,37,86,10,127,69,107,89,127,245,137,233,86,149,180,57,44,53,243,137,5,85,206,153,217,117,124,41,240,21,65,249,138,181,6,73,163,213,59,152,52,133,185,40,29,229,132,248,103,69,195,72,78,37,254,88,146,5,76,232,187,101,113,56,193,197,54,136,232,165,11,223,199,212,40,111,238,180,21,191,148,20,82,15,189,116,111,31,97,84,221,175,72,52,224,127,50,148,167,207,27,244,154,30,140,164,24,174,165,196,37,126,223,100,98,206,246,4,95,222,42,36,237,110,3,68,208,190,121,228,151,14,80,132,170,93,80,52,72,237,121,84,117,61,3,244,50,141,42,148,15,157,246,180,189,45,223,212,128,253,165,116,199,77,140,20,250,156,27,68,120,44,50,36,69,252,72,132,2,76,97,228,63,92,189,196,141,236,148,164,176,60,238,4,247,140,199,100,202,0,0,0,0,165,211,92,203,11,161,200,77,174,114,148,134,22,66,145,155,179,145,205,80,29,227,89,214,184,48,5,29,109,130,83,236,200,81,15,39,102,35,155,161,195,240,199,106,123,192,194,119,222,19,158,188,112,97,10,58,213,178,86,241,155,2,214,3,62,209,138,200,144,163,30,78,53,112,66,133,141,64,71,152,40,147,27,83,134,225,143,213,35,50,211,30,246,128,133,239,83,83,217,36,253,33,77,162,88,242,17,105,224,194,20,116,69,17,72,191,235,99,220,57,78,176,128,242,54,5,172,7,147,214,240,204,61,164,100,74,152,119,56,129,32,71,61,156,133,148,97,87,43,230,245,209,142,53,169,26,91,135,255,235,254,84,163,32,80,38,55,166,245,245,107,109,77,197,110,112,232,22,50,187,70,100,166,61,227,183,250,246,173,7,122,4,8,212,38,207,166,166,178,73,3,117,238,130,187,69,235,159,30,150,183,84,176,228,35,210,21,55,127,25,192,133,41,232,101,86,117,35,203,36,225,165,110,247,189,110,214,199,184,115,115,20,228,184,221,102,112,62,120,181,44,245,108,10,88,15,201,217,4,196,103,171,144,66,194,120,204,137,122,72,201,148,223,155,149,95,113,233,1,217,212,58,93,18,1,136,11,227,164,91,87,40,10,41,195,174,175,250,159,101,23,202,154,120,178,25,198,179,28,107,82,53,185,184,14,254,247,8,142,12,82,219,210,199,252,169,70,65,89,122,26,138,225,74,31,151,68,153,67,92,234,235,215,218,79,56,139,17,154,138,221,224,63,89,129,43,145,43,21,173,52,248,73,102,140,200,76,123,41,27,16,176,135,105,132,54,34,186,216,253,90,15,244,8,255,220,168,195,81,174,60,69,244,125,96,142,76,77,101,147,233,158,57,88,71,236,173,222,226,63,241,21,55,141,167,228,146,94,251,47,60,44,111,169,153,255,51,98,33,207,54,127,132,28,106,180,42,110,254,50,143,189,162,249,193,13,34,11,100,222,126,192,202,172,234,70,111,127,182,141,215,79,179,144,114,156,239,91,220,238,123,221,121,61,39,22,172,143,113,231,9,92,45,44,167,46,185,170,2,253,229,97,186,205,224,124,31,30,188,183,177,108,40,49,20,191,116,250,216,20,176,30,125,199,236,213,211,181,120,83,118,102,36,152,206,86,33,133,107,133,125,78,197,247,233,200,96,36,181,3,181,150,227,242,16,69,191,57,190,55,43,191,27,228,119,116,163,212,114,105,6,7,46,162,168,117,186,36,13,166,230,239,67,22,102,29,230,197,58,214,72,183,174,80,237,100,242,155,85,84,247,134,240,135,171,77,94,245,63,203,251,38,99,0,46,148,53,241,139,71,105,58,37,53,253,188,128,230,161,119,56,214,164,106,157,5,248,161,51,119,108,39,150,164,48,236,238,17,28,25,75,194,64,210,229,176,212,84,64,99,136,159,248,83,141,130,93,128,209,73,243,242,69,207,86,33,25,4,131,147,79,245,38,64,19,62,136,50,135,184,45,225,219,115,149,209,222,110,48,2,130,165,158,112,22,35,59,163,74,232,117,19,202,26,208,192,150,209,126,178,2,87,219,97,94,156,99,81,91,129,198,130,7,74,104,240,147,204,205,35,207,7,24,145,153,246,189,66,197,61,19,48,81,187,182,227,13,112,14,211,8,109,171,0,84,166,5,114,192,32,160,161,156,235,180,30,232,17,17,205,180,218,191,191,32,92,26,108,124,151,162,92,121,138,7,143,37,65,169,253,177,199,12,46,237,12,217,156,187,253,124,79,231,54,210,61,115,176,119,238,47,123,207,222,42,102,106,13,118,173,196,127,226,43,97,172,190,224,47,28,62,18,138,207,98,217,36,189,246,95,129,110,170,148,57,94,175,137,156,141,243,66,50,255,103,196,151,44,59,15,66,158,109,254,231,77,49,53,73,63,165,179,236,236,249,120,84,220,252,101,241,15,160,174,95,125,52,40,250,174,104,227,130,27,68,22,39,200,24,221,137,186,140,91,44,105,208,144,148,89,213,141,49,138,137,70,159,248,29,192,58,43,65,11,239,153,23,250,74,74,75,49,228,56,223,183,65,235,131,124,249,219,134,97,92,8,218,170,242,122,78,44,87,169,18,231,25,25,146,21,188,202,206,222,18,184,90,88,183,107,6,147,15,91,3,142,170,136,95,69,4,250,203,195,161,41,151,8,116,155,193,249,209,72,157,50,127,58,9,180,218,233,85,127,98,217,80,98,199,10,12,169,105,120,152,47,204,171,196,228,0,0,0,0,180,11,119,166,41,17,159,151,157,26,232,49,19,36,79,244,167,47,56,82,58,53,208,99,142,62,167,197,103,78,239,51,211,69,152,149,78,95,112,164,250,84,7,2,116,106,160,199,192,97,215,97,93,123,63,80,233,112,72,246,206,156,222,103,122,151,169,193,231,141,65,240,83,134,54,86,221,184,145,147,105,179,230,53,244,169,14,4,64,162,121,162,169,210,49,84,29,217,70,242,128,195,174,195,52,200,217,101,186,246,126,160,14,253,9,6,147,231,225,55,39,236,150,145,156,57,189,207,40,50,202,105,181,40,34,88,1,35,85,254,143,29,242,59,59,22,133,157,166,12,109,172,18,7,26,10,251,119,82,252,79,124,37,90,210,102,205,107,102,109,186,205,232,83,29,8,92,88,106,174,193,66,130,159,117,73,245,57,82,165,99,168,230,174,20,14,123,180,252,63,207,191,139,153,65,129,44,92,245,138,91,250,104,144,179,203,220,155,196,109,53,235,140,155,129,224,251,61,28,250,19,12,168,241,100,170,38,207,195,111,146,196,180,201,15,222,92,248,187,213,43,94,121,117,11,68,205,126,124,226,80,100,148,211,228,111,227,117,106,81,68,176,222,90,51,22,67,64,219,39,247,75,172,129,30,59,228,119,170,48,147,209,55,42,123,224,131,33,12,70,13,31,171,131,185,20,220,37,36,14,52,20,144,5,67,178,183,233,213,35,3,226,162,133,158,248,74,180,42,243,61,18,164,205,154,215,16,198,237,113,141,220,5,64,57,215,114,230,208,167,58,16,100,172,77,182,249,182,165,135,77,189,210,33,195,131,117,228,119,136,2,66,234,146,234,115,94,153,157,213,229,76,182,139,81,71,193,45,204,93,41,28,120,86,94,186,246,104,249,127,66,99,142,217,223,121,102,232,107,114,17,78,130,2,89,184,54,9,46,30,171,19,198,47,31,24,177,137,145,38,22,76,37,45,97,234,184,55,137,219,12,60,254,125,43,208,104,236,159,219,31,74,2,193,247,123,182,202,128,221,56,244,39,24,140,255,80,190,17,229,184,143,165,238,207,41,76,158,135,223,248,149,240,121,101,143,24,72,209,132,111,238,95,186,200,43,235,177,191,141,118,171,87,188,194,160,32,26,242,234,22,136,70,225,97,46,219,251,137,31,111,240,254,185,225,206,89,124,85,197,46,218,200,223,198,235,124,212,177,77,149,164,249,187,33,175,142,29,188,181,102,44,8,190,17,138,134,128,182,79,50,139,193,233,175,145,41,216,27,154,94,126,60,118,200,239,136,125,191,73,21,103,87,120,161,108,32,222,47,82,135,27,155,89,240,189,6,67,24,140,178,72,111,42,91,56,39,220,239,51,80,122,114,41,184,75,198,34,207,237,72,28,104,40,252,23,31,142,97,13,247,191,213,6,128,25,110,211,171,71,218,216,220,225,71,194,52,208,243,201,67,118,125,247,228,179,201,252,147,21,84,230,123,36,224,237,12,130,9,157,68,116,189,150,51,210,32,140,219,227,148,135,172,69,26,185,11,128,174,178,124,38,51,168,148,23,135,163,227,177,160,79,117,32,20,68,2,134,137,94,234,183,61,85,157,17,179,107,58,212,7,96,77,114,154,122,165,67,46,113,210,229,199,1,154,19,115,10,237,181,238,16,5,132,90,27,114,34,212,37,213,231,96,46,162,65,253,52,74,112,73,63,61,214,139,159,29,204,63,148,106,106,162,142,130,91,22,133,245,253,152,187,82,56,44,176,37,158,177,170,205,175,5,161,186,9,236,209,242,255,88,218,133,89,197,192,109,104,113,203,26,206,255,245,189,11,75,254,202,173,214,228,34,156,98,239,85,58,69,3,195,171,241,8,180,13,108,18,92,60,216,25,43,154,86,39,140,95,226,44,251,249,127,54,19,200,203,61,100,110,34,77,44,152,150,70,91,62,11,92,179,15,191,87,196,169,49,105,99,108,133,98,20,202,24,120,252,251,172,115,139,93,23,166,160,3,163,173,215,165,62,183,63,148,138,188,72,50,4,130,239,247,176,137,152,81,45,147,112,96,153,152,7,198,112,232,79,48,196,227,56,150,89,249,208,167,237,242,167,1,99,204,0,196,215,199,119,98,74,221,159,83,254,214,232,245,217,58,126,100,109,49,9,194,240,43,225,243,68,32,150,85,202,30,49,144,126,21,70,54,227,15,174,7,87,4,217,161,190,116,145,87,10,127,230,241,151,101,14,192,35,110,121,102,173,80,222,163,25,91,169,5,132,65,65,52,48,74,54,146,0,0,0,0,158,0,170,204,125,7,37,66,227,7,143,142,250,14,74,132,100,14,224,72,135,9,111,198,25,9,197,10,181,27,229,211,43,27,79,31,200,28,192,145,86,28,106,93,79,21,175,87,209,21,5,155,50,18,138,21,172,18,32,217,43,49,187,124,181,49,17,176,86,54,158,62,200,54,52,242,209,63,241,248,79,63,91,52,172,56,212,186,50,56,126,118,158,42,94,175,0,42,244,99,227,45,123,237,125,45,209,33,100,36,20,43,250,36,190,231,25,35,49,105,135,35,155,165,86,98,118,249,200,98,220,53,43,101,83,187,181,101,249,119,172,108,60,125,50,108,150,177,209,107,25,63,79,107,179,243,227,121,147,42,125,121,57,230,158,126,182,104,0,126,28,164,25,119,217,174,135,119,115,98,100,112,252,236,250,112,86,32,125,83,205,133,227,83,103,73,0,84,232,199,158,84,66,11,135,93,135,1,25,93,45,205,250,90,162,67,100,90,8,143,200,72,40,86,86,72,130,154,181,79,13,20,43,79,167,216,50,70,98,210,172,70,200,30,79,65,71,144,209,65,237,92,237,194,157,41,115,194,55,229,144,197,184,107,14,197,18,167,23,204,215,173,137,204,125,97,106,203,242,239,244,203,88,35,88,217,120,250,198,217,210,54,37,222,93,184,187,222,247,116,162,215,50,126,60,215,152,178,223,208,23,60,65,208,189,240,198,243,38,85,88,243,140,153,187,244,3,23,37,244,169,219,60,253,108,209,162,253,198,29,65,250,73,147,223,250,227,95,115,232,195,134,237,232,105,74,14,239,230,196,144,239,76,8,137,230,137,2,23,230,35,206,244,225,172,64,106,225,6,140,187,160,235,208,37,160,65,28,198,167,206,146,88,167,100,94,65,174,161,84,223,174,11,152,60,169,132,22,162,169,46,218,14,187,14,3,144,187,164,207,115,188,43,65,237,188,129,141,244,181,68,135,106,181,238,75,137,178,97,197,23,178,203,9,144,145,80,172,14,145,250,96,237,150,117,238,115,150,223,34,106,159,26,40,244,159,176,228,23,152,63,106,137,152,149,166,37,138,181,127,187,138,31,179,88,141,144,61,198,141,58,241,223,132,255,251,65,132,85,55,162,131,218,185,60,131,112,117,218,133,59,83,68,133,145,159,167,130,30,17,57,130,180,221,32,139,113,215,190,139,219,27,93,140,84,149,195,140,254,89,111,158,222,128,241,158,116,76,18,153,251,194,140,153,81,14,149,144,148,4,11,144,62,200,232,151,177,70,118,151,27,138,241,180,128,47,111,180,42,227,140,179,165,109,18,179,15,161,11,186,202,171,149,186,96,103,118,189,239,233,232,189,69,37,68,175,101,252,218,175,207,48,57,168,64,190,167,168,234,114,190,161,47,120,32,161,133,180,195,166,10,58,93,166,160,246,140,231,77,170,18,231,231,102,241,224,104,232,111,224,194,36,118,233,7,46,232,233,173,226,11,238,34,108,149,238,136,160,57,252,168,121,167,252,2,181,68,251,141,59,218,251,39,247,195,242,226,253,93,242,72,49,190,245,199,191,32,245,109,115,167,214,246,214,57,214,92,26,218,209,211,148,68,209,121,88,93,216,188,82,195,216,22,158,32,223,153,16,190,223,51,220,18,205,19,5,140,205,185,201,111,202,54,71,241,202,156,139,232,195,89,129,118,195,243,77,149,196,124,195,11,196,214,15,55,71,166,122,169,71,12,182,74,64,131,56,212,64,41,244,205,73,236,254,83,73,70,50,176,78,201,188,46,78,99,112,130,92,67,169,28,92,233,101,255,91,102,235,97,91,204,39,120,82,9,45,230,82,163,225,5,85,44,111,155,85,134,163,28,118,29,6,130,118,183,202,97,113,56,68,255,113,146,136,230,120,87,130,120,120,253,78,155,127,114,192,5,127,216,12,169,109,248,213,55,109,82,25,212,106,221,151,74,106,119,91,83,99,178,81,205,99,24,157,46,100,151,19,176,100,61,223,97,37,208,131,255,37,122,79,28,34,245,193,130,34,95,13,155,43,154,7,5,43,48,203,230,44,191,69,120,44,21,137,212,62,53,80,74,62,159,156,169,57,16,18,55,57,186,222,46,48,127,212,176,48,213,24,83,55,90,150,205,55,240,90,74,20,107,255,212,20,193,51,55,19,78,189,169,19,228,113,176,26,33,123,46,26,139,183,205,29,4,57,83,29,174,245,255,15,142,44,97,15,36,224,130,8,171,110,28,8,1,162,5,1,196,168,155,1,110,100,120,6,225,234,230,6,75,38,0,0,0,0,0,0,0,0,111,95,167,3,190,76,46,179,91,160,64,168,87,54,132,244,52,255,231,171,233,122,170,71,51,94,143,255,132,195,208,123,92,1,40,252,58,143,254,200,104,254,207,87,211,245,84,143,7,161,104,84,109,185,122,60,102,188,30,255,9,135,161,247,9,227,185,252,183,203,143,68,61,28,94,87,94,177,37,3,82,67,249,84,224,253,11,176,85,226,145,0,141,68,113,140,58,189,54,3,51,8,95,63,14,66,209,168,218,114,245,120,97,29,118,171,100,62,219,203,73,102,51,81,56,161,155,125,38,57,148,82,134,237,181,206,18,198,115,249,111,151,31,137,125,153,212,250,209,219,49,58,122,56,188,174,188,98,75,6,21,103,27,173,2,46,101,181,33,152,252,6,235,84,207,242],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE),
allocate([78,199,91,5,85,24,225,65,47,218,45,174,49,38,58,138,64,133,138,173,143,106,20,57,116,122,109,6,102,16,190,126,27,37,202,5,216,92,144,205,28,132,162,81,181,229,234,241,115,219,5,82,11,169,196,66,71,36,226,249,226,211,110,5,40,123,69,250,92,159,64,182,146,204,102,162,112,66,55,251,253,147,193,161,206,14,25,72,201,108,38,10,39,116,179,15,166,51,129,9,153,56,157,188,161,146,233,93,244,129,231,128,206,205,78,94,74,205,201,51,250,50,169,245,163,183,99,116,149,109,14,246,29,251,77,199,244,112,120,93,121,197,150,12,155,47,223,94,199,137,184,191,175,208,56,245,46,243,18,248,192,143,159,246,144,191,60,75,199,46,247,162,253,6,70,119,168,113,80,161,67,74,104,196,156,142,183,10,170,48,194,131,243,209,16,9,20,124,236,48,219,170,85,243,72,227,172,134,180,245,242,240,246,175,130,53,128,10,21,91,31,213,40,114,239,85,178,88,161,153,6,193,232,244,218,12,204,32,124,253,135,171,125,15,114,108,82,78,179,84,154,164,155,22,248,9,220,11,61,167,37,90,214,186,189,22,75,12,65,100,13,113,210,73,236,15,255,40,35,194,230,182,11,164,22,82,137,133,137,233,172,167,168,30,167,54,142,72,196,243,197,167,221,10,225,23,99,240,123,235,243,185,213,232,132,91,146,145,89,254,186,183,35,88,44,221,119,77,161,135,195,235,202,43,182,100,206,216,100,232,116,103,152,215,250,39,131,67,157,29,50,144,149,120,36,64,35,81,28,35,146,217,76,20,78,232,102,31,253,134,235,23,240,164,72,172,201,121,12,188,25,222,226,235,166,38,171,191,167,146,204,88,199,59,221,20,195,172,23,147,168,100,122,23,125,224,57,32,156,155,157,188,148,154,147,103,243,196,58,191,42,214,189,212,244,101,82,235,71,111,199,232,155,58,245,232,249,35,233,91,175,197,18,67,16,89,67,28,192,154,181,64,174,21,109,175,232,225,240,186,242,138,45,25,135,190,87,185,76,198,3,170,179,65,176,18,165,188,169,237,220,30,23,17,27,240,135,94,219,191,127,69,118,73,253,98,180,224,216,70,200,5,211,209,128,31,63,237,33,127,121,150,239,64,152,238,159,51,87,37,142,93,238,69,251,13,140,238,225,2,73,70,69,65,162,93,213,253,174,237,172,59,8,26,186,162,9,238,18,119,38,169,189,3,97,186,127,206,92,149,210,92,198,185,193,130,114,38,230,163,33,18,40,248,216,97,137,252,134,17,150,180,246,210,51,75,165,73,186,105,129,159,92,20,2,74,4,37,175,44,104,235,229,225,237,95,5,107,7,180,66,226,83,19,43,216,0,21,42,182,62,170,81,228,111,74,141,181,128,230,127,87,91,181,106,30,105,156,213,16,52,234,205,29,215,208,251,163,85,247,187,182,179,238,32,104,58,168,28,181,13,162,14,219,14,87,251,30,228,216,164,156,97,8,92,29,90,148,138,47,102,169,52,73,55,45,240,19,9,246,147,74,137,97,222,160,61,9,116,225,96,27,116,231,82,86,211,226,222,87,90,84,122,45,150,24,130,200,26,226,21,114,49,27,60,132,52,81,33,141,214,176,213,254,158,22,78,210,113,179,107,178,176,165,73,115,25,231,6,11,202,153,38,44,190,228,184,71,228,42,18,211,89,79,81,61,78,109,125,140,254,76,239,113,96,222,28,145,136,231,139,79,187,21,115,206,47,228,53,3,149,166,71,49,200,79,220,121,63,225,40,110,111,76,98,53,17,82,47,207,7,24,15,140,107,110,64,144,160,27,177,192,69,221,116,111,71,176,88,186,239,154,27,48,224,179,230,246,193,41,66,15,135,215,149,87,108,201,45,80,32,212,43,27,66,122,25,175,199,127,194,97,232,61,118,240,96,124,124,45,198,142,113,81,8,40,17,148,188,178,30,14,175,43,175,216,146,1,42,241,72,128,70,162,56,70,69,174,239,131,248,238,22,245,36,179,153,40,156,208,205,62,75,236,62,43,34,156,227,141,127,19,217,128,203,230,73,202,16,76,126,131,117,170,103,121,23,237,22,215,24,19,29,69,120,178,177,212,166,95,51,246,76,77,86,127,79,37,153,177,35,18,241,124,241,105,183,2,11,105,180,134,173,246,247,180,100,54,19,133,19,186,217,7,80,201,244,46,250,192,115,64,63,150,83,45,68,140,93,243,56,55,59,121,41,53,39,207,87,104,156,122,151,121,9,124,99,151,123,209,126,3,163,59,12,200,220,210,192,79,141,136,109,213,170,121,164,113,86,67,2,138,13,122,26,61,120,240,54,117,234,209,243,71,210,183,89,42,77,210,77,11,252,4,94,139,37,134,32,178,134,56,49,212,130,133,158,254,168,139,5,43,101,46,119,132,2,204,106,116,194,45,201,200,44,127,208,195,225,117,229,21,91,50,191,156,70,118,91,89,117,129,139,99,161,221,178,35,223,198,228,60,6,222,12,111,241,117,227,157,110,138,97,214,139,73,140,194,201,137,223,154,165,250,184,61,46,34,54,224,15,189,215,98,137,33,136,172,33,14,182,127,255,138,236,146,250,197,217,32,88,137,82,222,212,118,237,223,191,34,187,164,126,49,130,128,24,33,5,232,80,130,133,33,112,117,104,81,42,190,234,126,215,118,214,29,4,13,222,129,48,221,63,103,174,74,177,222,151,222,129,43,128,249,153,165,210,36,221,180,192,79,246,250,117,39,99,248,238,252,194,5,146,140,138,130,68,187,173,90,53,143,52,206,106,8,170,251,93,219,89,119,16,52,197,164,250,216,231,59,62,135,241,91,29,115,14,65,148,192,158,4,186,112,176,13,186,115,255,25,204,219,212,51,97,184,144,70,107,216,106,127,79,11,164,185,140,115,131,5,229,76,203,230,43,112,61,73,203,255,204,71,67,36,80,240,177,195,163,24,228,39,238,188,159,112,151,231,3,140,7,198,53,55,248,184,164,143,185,138,27,132,227,136,68,60,95,124,218,173,140,215,227,63,225,48,244,30,184,40,4,148,8,74,94,89,215,119,163,151,182,6,112,234,208,214,203,195,219,191,10,214,191,137,108,192,101,243,36,101,139,118,139,107,140,137,142,34,228,41,44,104,50,197,160,145,133,52,90,195,86,251,123,90,234,107,253,192,232,183,85,233,222,148,26,107,1,205,255,174,177,203,189,104,191,129,209,29,182,106,213,60,210,56,171,33,217,53,114,63,108,116,133,146,237,202,149,148,133,14,47,213,130,149,50,151,59,66,1,102,170,238,119,109,103,221,65,208,197,177,208,110,217,145,111,99,241,78,55,197,48,235,197,36,158,17,144,198,142,167,235,151,153,176,248,146,227,30,145,171,246,239,95,145,93,82,191,24,194,16,184,58,180,40,21,95,173,79,31,57,10,100,59,236,204,82,105,146,110,90,224,39,163,13,206,145,208,22,206,148,151,242,41,58,57,108,100,211,248,173,142,57,135,32,74,96,255,12,230,109,234,153,48,92,144,83,65,110,84,213,30,239,164,172,166,197,189,175,180,168,203,243,1,198,3,227,154,27,113,68,34,158,47,62,237,86,30,27,133,157,145,114,195,229,42,228,98,54,120,8,105,162,69,187,197,53,198,68,71,17,66,26,173,97,171,253,61,45,45,69,10,98,21,177,19,158,25,186,237,201,252,203,185,217,118,229,74,202,66,135,151,106,23,248,60,97,38,185,76,161,120,167,155,98,152,245,98,18,76,88,124,201,113,143,200,85,35,7,219,202,207,195,230,230,36,166,179,158,162,122,156,218,75,249,20,157,28,54,178,105,127,6,243,54,245,76,24,46,16,89,84,53,75,0,54,157,56,34,17,207,23,159,118,43,87,125,182,204,169,211,88,152,99,130,81,103,64,169,242,223,12,221,246,100,254,229,220,108,11,124,158,48,147,92,166,80,100,35,57,51,45,16,136,227,80,220,222,152,196,106,34,164,63,131,121,155,122,38,12,23,94,158,15,48,30,24,215,220,49,193,168,51,160,84,249,111,5,62,79,152,73,46,83,40,106,97,232,155,247,98,125,155,109,192,128,207,154,219,7,167,2,159,39,204,36,151,41,20,54,96,192,103,205,237,131,83,89,63,103,100,115,161,173,224,0,0,0,0,0,0,0,0,13,241,208,92,146,121,233,84,26,226,161,185,36,243,210,169,23,19,113,229,182,138,59,253,177,218,77,220,98,73,125,193,188,43,157,128,240,48,148,149,171,56,236,101,70,186,175,104,166,201,60,57,212,195,70,60,231,171,149,23,238,61,34,16,234,90,69,75,124,68,203,68,253,73,52,174,202,206,240,185,240,184,228,242,88,183,25,237,86,113,216,203,140,116,95,209,91,128,8,151,30,13,182,133,76,147,121,114,168,135,141,120,65,98,169,46,58,254,100,44,206,87,43,47,220,123,68,32,195,166,251,115,78,2,173,116,212,181,138,150,248,136,150,137,217,68,90,202,106,241,127,221,127,141,102,243,190,50,57,225,114,124,182,175,44,75,208,181,101,111,199,74,154,193,235,72,104,158,23,22,8,184,2,28,41,252,190,56,50,70,102,48,36,13,110,100,160,63,143,100,51,30,31,129,22,181,180,153,62,239,207,221,132,204,93,205,152,38,243,228,80,15,27,241,149,215,35,184,194,118,242,165,130,196,82,93,116,252,201,88,143,53,130,1,230,133,32,12,156,175,86,94,184,247,136,64,145,94,134,2,42,142,97,20,134,77,247,231,156,4,90,233,139,188,39,187,14,125,179,189,45,117,27,130,218,190,245,129,32,132,203,222,72,199,28,213,55,151,186,59,254,77,39,40,58,102,106,103,108,52,206,124,123,4,195,73,86,202,170,80,118,245,19,21,196,179,67,4,97,230,98,240,114,57,120,249,108,23,178,172,224,64,145,173,202,222,142,149,52,131,215,145,199,47,94,201,166,250,62,197,208,60,47,44,16,112,5,56,221,205,255,112,130,9,236,108,82,248,125,113,100,140,204,96,95,9,173,45,246,245,37,52,72,26,220,200,64,127,30,201,69,235,12,148,210,6,247,157,227,34,48,173,6,197,177,161,238,211,224,241,148,188,88,245,249,192,145,20,34,54,99,8,244,49,65,72,176,79,138,92,181,83,232,102,138,177,238,112,184,162,56,58,24,200,7,36,175,177,73,223,174,66,60,217,162,64,153,131,60,59,213,141,4,137,165,186,232,248,147,177,9,120,117,230,122,129,122,229,30,107,4,3,204,11,65,24,19,154,212,95,94,114,168,76,56,95,173,188,112,239,17,129,53,174,125,224,226,150,248,213,34,189,12,5,84,28,195,40,47,76,220,89,198,101,42,124,137,133,224,96,18,166,108,64,132,116,48,60,128,223,133,20,147,103,65,217,54,85,190,233,158,150,145,133,164,44,87,189,223,244,56,171,158,210,51,145,210,5,232,247,12,171,218,197,197,22,153,18,186,33,225,56,200,231,73,78,40,88,8,108,110,46,117,119,252,155,78,80,99,223,165,43,110,226,167,4,116,204,212,206,216,104,156,249,121,61,4,146,74,17,117,173,246,8,134,147,172,148,85,161,251,249,86,207,62,237,188,245,236,234,39,42,136,103,135,8,225,27,247,118,26,30,110,92,71,210,203,79,206,221,40,96,74,35,27,19,92,164,193,52,93,48,106,246,234,46,250,201,80,193,186,170,120,87,19,157,17,163,19,132,66,169,119,177,28,82,195,216,208,208,158,229,11,65,178,61,102,90,165,24,6,176,98,97,244,35,76,76,160,121,94,88,32,224,10,112,173,136,142,4,178,153,227,36,186,155,255,225,4,19,216,217,183,106,47,189,150,106,49,141,164,240,251,226,200,24,153,193,169,1,43,190,90,97,112,149,190,18,90,91,236,235,75,104,179,227,138,7,126,146,162,60,21,42,182,62,170,81,228,0,24,219,102,98,56,40,13,84,15,200,23,135,142,162,54,169,2,57,199,219,28,219,223,253,67,91,110,245,38,37,187,209,78,170,190,169,180,92,82,133,89,185,207,76,2,214,105,120,84,72,31,16,144,175,128,44,242,129,35,41,68,108,198,16,255,112,243,117,214,21,47,68,232,99,130,144,96,159,20,185,229,146,82,204,242,230,253,237,106,167,208,205,20,99,221,225,103,86,0,145,134,26,52,181,112,69,113,116,48,144,15,72,125,180,161,40,162,233,230,28,219,125,157,17,118,42,160,32,214,140,77,77,228,83,73,116,193,159,60,168,82,217,114,137,204,110,236,244,192,160,155,221,141,12,69,218,250,94,255,241,128,253,149,134,104,39,22,165,151,238,228,99,222,173,45,88,154,31,52,63,76,212,196,12,60,214,8,6,152,23,130,48,49,39,216,90,10,110,107,100,38,52,169,191,188,228,80,153,43,197,121,227,46,157,185,205,245,160,84,214,202,113,251,144,248,81,132,138,88,8,18,196,239,66,245,111,238,130,41,57,226,179,37,51,124,251,192,109,68,122,25,10,168,56,134,81,73,139,201,86,58,65,111,5,94,152,184,179,140,203,84,248,83,105,104,239,30,178,189,172,18,11,193,193,36,76,217,128,31,250,17,157,182,53,48,212,8,233,96,120,0,191,11,41,5,24,176,36,146,198,226,125,163,209,140,29,70,5,164,65,174,32,92,65,212,124,77,21,185,51,45,164,98,246,118,232,180,194,253,248,240,143,159,188,59,247,127,249,22,10,191,176,54,6,175,165,132,115,86,228,33,21,222,64,50,249,109,25,44,228,14,28,160,128,132,77,138,45,50,37,116,67,194,113,135,220,226,121,230,58,43,37,144,207,147,156,80,176,16,216,157,62,67,192,194,201,249,140,220,92,234,238,248,55,157,160,209,173,58,178,106,78,116,244,198,190,75,87,220,196,79,9,203,79,155,11,78,189,166,93,109,134,167,50,154,126,224,97,96,119,119,110,8,7,9,53,119,100,6,139,190,141,50,200,122,149,214,215,44,244,219,156,105,15,2,136,114,134,115,208,100,254,210,212,224,255,154,132,115,237,163,49,86,117,161,121,126,28,115,109,196,12,72,45,216,213,79,84,16,207,14,17,213,36,159,8,130,182,231,69,194,55,238,237,52,60,220,184,207,198,62,177,166,69,53,236,142,164,151,159,156,187,81,192,131,85,71,195,14,194,184,148,148,70,54,38,184,72,131,105,153,183,230,122,42,49,106,61,63,126,218,67,254,242,44,1,50,143,10,31,108,139,197,85,37,156,123,250,218,1,254,168,40,109,171,166,72,120,23,252,167,88,41,167,174,253,55,240,170,169,249,251,60,132,222,164,189,186,136,30,138,14,229,89,176,75,88,66,24,119,12,13,22,130,100,123,204,180,74,49,27,115,180,39,94,205,163,101,12,96,197,194,232,71,152,152,1,145,21,158,122,62,113,204,64,243,188,176,64,192,21,224,77,2,108,236,210,185,252,180,90,17,29,9,100,51,199,73,87,224,205,85,246,74,46,29,241,41,241,108,34,137,104,33,252,216,33,48,176,240,129,117,235,203,80,213,6,122,186,136,230,58,128,137,148,3,83,220,205,255,249,106,186,158,234,17,192,14,41,54,40,231,3,69,215,29,88,211,158,109,56,184,218,236,136,143,12,20,209,236,124,37,180,182,216,215,151,208,113,212,100,234,74,174,126,132,102,199,21,15,252,36,69,121,107,54,197,83,110,93,172,45,42,84,108,125,84,163,200,1,39,165,188,33,198,218,33,85,48,182,205,196,112,80,26,168,61,71,29,152,226,41,243,252,155,142,33,161,54,234,181,192,150,127,241,253,164,147,92,148,129,108,128,24,18,25,103,105,140,157,80,68,128,96,142,61,3,168,210,69,102,229,174,49,14,89,2,25,244,156,71,101,25,74,115,252,66,22,124,152,20,187,163,160,208,111,149,204,178,114,159,153,4,172,211,240,191,131,79,197,150,213,58,164,168,144,62,32,32,95,1,89,165,97,238,124,178,38,232,13,228,3,71,82,136,216,140,33,233,242,151,14,26,161,101,117,254,225,230,235,172,43,94,136,243,16,54,183,62,82,183,220,85,217,10,142,234,145,241,224,88,40,218,210,120,232,24,180,79,59,171,55,206,98,35,73,66,202,123,107,92,27,202,29,81,80,175,52,2,105,98,81,92,161,127,104,144,16,139,5,75,178,14,141,38,154,176,248,70,67,222,209,180,227,89,172,224,138,226,232,96,32,31,144,237,123,50,180,242,89,246,196,250,104,67,81,68,211,205,57,247,153,147,13,214,170,36,109,182,251,58,35,236,84,64,65,187,10,234,127,126,45,169,21,172,25,155,154,200,167,146,232,161,232,75,198,90,222,123,188,7,33,119,255,142,29,61,128,10,208,167,163,28,100,212,212,29,195,214,70,170,238,239,41,16,50,6,26,56,151,6,125,159,7,132,27,222,18,38,113,146,246,84,71,76,107,207,37,133,229,37,162,250,225,244,216,136,20,245,254,104,152,29,140,46,221,201,199,188,91,91,176,35,44,25,155,46,34,178,228,52,63,104,126,152,168,137,25,57,206,184,34,10,209,96,77,120,172,17,12,48,47,4,97,117,93,193,80,162,86,237,53,98,78,176,181,20,220,214,200,111,191,96,233,134,165,63,156,201,118,92,208,82,102,121,160,196,135,140,140,192,31,144,244,211,148,253,105,118,149,171,9,222,101,45,53,228,236,66,93,0,0,0,0,0,0,0,0,203,109,106,145,74,225,11,63,150,219,212,34,149,194,23,126,93,182,190,179,223,35,28,65,44,183,169,69,42,133,47,252,231,218,195,212,96,100,36,195,186,108,125,103,191,71,56,130,113,1,23,246,245,166,51,189,221,112,93,36,127,165,135,106,22,29,55,181,53,68,140,85,75,171,137,6,234,103,144,20,128,198,227,151,160,134,155,43,241,199,244,97,85,32,168,150,58,170,158,240,31,193,163,169,103,28,32,67,192,226,191,232,172,113,74,210,138,3,180,215,186,225,186,72,254,74,15,213,113,140,208,217,180,171,4,234,44,58,110,106,107,136,24,171,231,87,4,251,33,105,19,148,150,86,19,13,212,207,32,41,93,59,121,156,158,46,43,22,0,141,199,47,65,13,55,87,203,224,173,190,11,236,60,104,103,145,231,108,129,239,136,191,172,252,141,253,203,14,131,128,241,74,51,78,20,45,159,193,58,39,89,223,94,204,148,254,75,38,78,41,171,106,167,67,128,75,36,184,225,139,172,124,221,253,154,11,62,168,176,61,22,144,240,154,116,73,187,2,241,221,123,62,215,58,198,56,58,176,17,175,157,219,205,7,103,6,175,28,66,248,209,70,172,107,197,141,8,25,218,121,221,106,210,123,253,191,233,196,22,7,184,234,183,94,226,251,75,177,6,89,104,125,254,186,128,220,108,200,34,156,245,133,44,173,38,26,168,159,65,82,231,192,76,139,226,126,74,109,186,118,242,56,61,93,86,44,113,27,152,169,119,188,93,19,0,26,143,95,130,26,110,174,203,119,229,206,200,251,101,145,150,193,91,125,23,216,121,208,93,172,49,236,93,57,114,239,75,60,193,118,41,112,201,237,128,81,171,231,99,145,194,210,221,231,21,84,188,178,222,147,22,138,127,197,246,83,213,172,103,139,104,51,3,245,230,17,172,230,2,162,73,20,237,46,241,80,188,17,150,55,241,111,58,61,214,128,220,214,250,80,150,76,156,82,86,213,78,135,93,33,246,195,28,52,69,184,0,151,72,112,195,23,89,249,203,250,34,225,137,246,82,198,186,251,53,23,124,80,97,123,113,150,95,134,54,177,106,68,44,32,225,53,233,146,118,5,231,77,139,164,163,115,125,58,226,187,247,124,174,117,140,113,41,214,157,237,228,148,135,78,116,96,35,94,59,183,155,15,191,13,73,207,113,86,144,48,206,12,94,57,132,240,163,141,5,97,52,168,206,17,168,178,88,215,138,27,17,50,180,243,147,186,224,138,91,211,191,204,63,203,170,88,209,208,11,27,244,166,192,201,155,49,0,36,169,16,126,122,68,18,28,101,98,125,20,235,14,243,23,90,19,124,3,29,251,85,36,231,216,17,105,140,177,180,47,216,133,167,215,63,110,151,51,153,78,202,189,174,36,118,56,166,88,90,77,52,80,63,131,164,147,55,39,165,26,222,136,155,206,129,153,22,197,253,148,218,5,236,243,135,143,28,159,229,116,237,228,113,122,186,172,88,191,128,142,224,48,91,167,103,226,54,48,83,239,120,187,38,41,91,90,194,165,153,176,25,133,42,16,16,47,154,4,206,78,71,122,129,101,123,15,241,19,241,196,50,186,88,19,176,216,156,174,163,240,185,24,143,169,157,185,85,5,31,43,50,98,240,211,196,79,254,32,13,63,70,109,119,144,221,60,76,244,43,7,230,218,60,55,115,19,102,140,66,121,79,74,73,216,11,230,211,51,174,65,118,133,189,88,96,236,141,93,55,78,208,50,241,166,108,86,8,63,209,37,7,83,202,101,181,244,188,79,150,25,43,110,138,169,10,241,37,198,8,114,203,98,103,155,180,140,233,121,244,206,22,209,102,6,234,205,35,5,123,187,247,76,11,198,28,88,205,5,68,147,40,218,93,147,160,111,213,217,201,209,98,226,161,120,35,44,111,226,223,41,204,18,178,102,142,233,224,116,122,172,1,185,173,245,161,191,23,198,144,243,76,254,158,169,135,54,10,135,5,69,156,98,234,92,155,205,228,78,163,63,92,226,40,18,199,82,226,244,49,136,185,88,38,89,221,133,48,159,79,173,128,106,96,78,93,245,222,231,97,97,95,19,235,75,109,56,66,125,30,216,134,33,252,114,163,118,33,116,247,107,46,248,160,194,246,191,154,1,191,178,65,201,201,226,44,191,12,109,98,213,136,41,65,213,157,39,131,222,183,88,64,194,107,210,37,237,10,147,45,168,250,152,196,230,53,206,155,22,73,71,231,250,116,5,246,124,216,13,6,241,75,196,119,239,249,92,235,24,227,15,26,133,104,22,10,19,220,82,172,59,219,201,41,15,157,153,193,81,74,131,200,4,162,232,192,70,188,118,110,55,31,35,173,44,45,60,143,60,32,126,27,146,158,227,172,32,97,181,118,248,15,169,77,43,94,25,7,178,221,35,78,159,137,210,106,216,76,105,175,148,182,143,220,102,255,182,140,136,247,68,177,12,110,252,109,131,200,53,176,27,152,9,203,176,117,254,221,113,9,67,42,187,74,163,107,207,186,156,9,167,11,104,6,165,43,214,232,172,52,126,150,85,177,162,161,23,54,181,251,63,32,232,64,28,9,232,77,129,147,55,99,0,72,35,32,235,2,125,130,11,119,82,33,252,244,136,36,56,202,153,76,150,101,194,197,51,245,196,250,40,214,29,230,47,180,15,151,66,71,87,7,36,139,163,230,8,149,221,4,144,92,104,139,98,4,151,229,155,99,53,61,220,183,72,198,135,34,254,80,182,38,2,39,140,29,143,81,161,208,247,129,191,160,68,60,203,65,189,96,180,159,25,138,117,242,98,67,168,222,210,231,31,99,40,162,163,225,53,170,148,199,139,209,222,219,254,199,254,86,193,48,213,228,163,113,64,229,30,19,201,165,104,28,42,116,84,242,194,154,25,29,61,130,161,84,241,39,210,112,87,19,235,181,250,24,143,198,233,160,52,150,230,89,68,171,131,49,126,119,237,102,232,218,201,227,244,116,89,177,35,183,163,114,190,149,82,142,126,1,29,193,97,182,78,207,181,108,119,80,43,87,69,240,196,109,96,166,222,241,118,77,15,0,10,55,148,16,125,114,82,182,180,132,75,51,97,51,153,219,222,21,1,210,106,12,143,75,46,143,117,155,209,14,68,38,68,30,63,122,218,49,25,144,250,173,224,89,198,112,210,253,144,60,170,184,205,79,163,252,135,202,95,30,254,242,104,145,237,91,21,255,245,205,53,39,83,232,202,220,233,140,254,74,57,121,128,61,226,179,82,59,115,171,10,62,86,100,153,86,25,58,64,223,93,91,196,224,167,137,159,252,65,26,15,141,205,24,213,29,74,37,126,140,218,238,32,187,121,152,181,225,176,127,106,90,114,167,232,87,14,204,181,121,110,230,35,58,100,93,255,152,101,217,38,204,24,133,242,158,148,146,237,161,114,20,184,127,159,173,176,23,204,167,103,92,131,236,123,122,166,54,45,189,136,211,10,123,177,192,216,27,187,110,193,22,219,81,146,250,176,81,156,160,101,226,77,217,172,16,87,205,15,115,7,56,167,47,251,188,69,161,141,59,19,248,48,209,47,48,199,218,24,199,109,103,145,131,24,249,4,134,166,10,251,18,82,24,15,185,215,11,236,228,167,190,60,4,28,102,134,117,237,95,55,59,65,208,56,198,50,124,43,122,138,189,82,87,120,157,32,69,156,45,162,205,12,212,155,71,87,64,200,92,70,53,144,120,10,246,118,239,153,22,140,57,193,155,28,126,211,247,135,6,176,154,11,136,38,81,180,187,123,247,97,25,108,176,191,132,38,65,223,170,179,147,163,197,237,44,181,59,249,114,168,250,65,93,255,233,115,113,28,45,138,48,149,120,57,144,23,18,215,134,43,203,230,179,11,83,28,235,65,90,172,82,0,108,109,234,86,172,89,244,51,209,166,135,60,61,19,21,56,238,251,49,130,142,204,54,36,175,48,92,232,31,134,215,47,144,215,17,99,187,37,164,82,170,28,124,9,42,111,69,89,149,65,202,183,153,176,102,69,212,138,167,221,8,250,135,78,235,251,166,202,254,15,33,125,86,48,203,160,111,69,192,118,105,109,125,30,220,154,227,106,40,166,16,116,77,208,2,97,23,10,97,62,159,90,1,213,192,193,12,84,14,16,224,222,255,156,186,234,189,207,195,194,190,87,215,128,44,133,34,201,129,38,214,151,218,112,132,250,60,237,187,253,75,58,101,241,3,176,13,67,248,229,70,237,66,123,96,41,105,175,167,230,125,109,240,217,243,219,238,93,127,166,157,179,98,145,15,86,64,251,43,13,209,78,44,74,1,48,70,103,64,4,205,65,62,65,71,112,182,241,107,114,131,138,42,26,39,187,138,121,188,215,156,164,148,100,169,101,253,28,241,206,5,46,72,110,194,176,128,132,215,164,75,218,21,123,237,238,70,238,170,209,42,38,91,80,245,49,137,205,107,237,54,58,100,123,104,198,84,156,55,45,146,142,206,245,233,87,90,71,3,196,47,254,214,10,236,249,176,27,12,226,151,193,129,147,33,81,237,233,168,0,0,0,0,0,0,0,0,220,161,44,34,94,138,238,29,184,67,89,68,188,20,221,59,100,226,117,102,226,158,51,38,112,135,178,136,120,41,186,119,172,38,158,170,38,163,84,106,200,196,235,204,196,61,103,76,20,101,199,238,154,183,137,81,224,14,101,17,241,82,116,239,60,175,73,51,175,216,154,242,88,77,60,85,77,70,169,212,132,236,16,119,19,204,71,201,144,137,215,153,137,123,206,152,76,40,251,187,215,241,32,133,40,202,142,221,53,111,19,163,244,107,162,255,107,229,253,190,69,3,196,141,201,10,48,76,153,162,232,175,151,128,222,81,253,64,157,201,117,30,237,119,33,225,177,235,43,148,3,106,53,132,118,5,177,35,138,59,233,37,90,39,239,169,100,38,141,199,47,65,13,55,87,0,81,102,3,99,83,189,185,29,165,13,161,156,56,88,68,163,121,172,141,190,102,210,170,190,29,78,248,216,132,76,153,152,193,239,212,250,218,198,119,133,213,138,19,20,64,113,254,212,9,43,63,54,30,251,16,201,109,201,74,80,252,101,35,239,177,104,102,114,162,239,205,242,138,6,136,27,147,21,96,152,86,167,164,57,205,159,142,133,50,69,209,95,47,1,189,163,238,228,253,125,113,139,83,190,250,129,58,147,235,60,218,239,38,32,22,177,181,182,52,242,66,194,99,215,87,40,7,212,158,99,79,245,9,162,233,201,106,8,237,10,98,71,20,119,182,169,193,40,60,205,250,106,210,75,180,78,222,83,201,76,14,234,152,108,128,217,39,81,26,143,95,130,26,110,174,0,198,46,115,160,68,228,64,29,162,204,6,198,166,122,115,59,126,109,42,228,248,240,157,38,207,5,76,150,90,31,80,212,19,164,96,180,4,149,190,201,119,70,21,210,230,11,141,239,171,231,57,240,184,129,99,242,191,130,254,30,34,54,234,163,99,35,210,60,124,188,4,190,7,193,167,90,158,34,55,152,219,96,139,120,192,168,217,133,47,11,41,135,171,77,36,59,243,170,5,165,245,199,202,38,151,72,112,195,23,89,249,0,75,233,92,225,73,211,23,29,95,140,155,15,211,100,158,76,131,45,183,45,141,238,112,81,231,207,194,75,111,112,67,119,59,110,238,105,49,250,173,106,145,19,30,152,13,132,24,162,77,178,50,186,83,14,246,191,41,80,71,220,177,144,197,153,245,241,107,254,239,26,43,132,225,148,172,16,117,173,162,213,61,53,128,50,43,39,76,200,89,215,245,84,201,185,127,238,133,118,217,118,151,51,145,243,113,29,123,137,252,214,108,77,173,188,87,171,162,92,130,80,201,94,34,205,64,194,177,118,21,255,14,239,30,72,95,107,1,154,201,1,132,255,214,58,221,59,229,35,218,117,56,39,185,217,144,69,56,235,11,1,101,120,188,103,102,97,229,28,212,16,218,21,196,142,40,238,8,177,246,55,154,4,198,243,108,83,131,81,120,154,245,213,176,242,175,115,38,16,27,200,164,151,104,157,188,167,146,153,120,54,68,191,226,45,124,132,28,212,49,217,0,179,79,162,192,117,29,251,94,57,161,191,52,30,191,4,53,220,92,1,232,191,147,38,107,86,178,28,140,93,230,64,137,200,129,58,80,252,202,98,215,66,111,39,68,153,13,140,77,245,230,118,152,56,33,174,19,127,8,107,252,218,84,200,241,225,59,77,32,123,120,234,175,107,213,80,27,21,150,131,158,145,120,58,199,180,186,161,192,27,150,39,163,86,207,199,34,133,165,1,127,247,227,229,124,15,75,28,107,146,36,11,230,184,194,77,183,51,8,41,184,50,44,80,211,209,125,79,90,172,31,118,15,112,81,109,4,38,241,107,251,27,243,146,111,195,12,213,39,186,223,176,49,73,226,200,67,88,170,214,211,215,209,238,159,249,134,244,141,93,63,243,139,156,65,26,23,234,182,162,87,61,109,56,73,96,88,191,51,223,24,94,171,254,107,153,239,126,52,124,245,116,133,132,94,22,82,14,87,155,72,118,130,183,126,44,9,17,166,107,230,85,11,74,235,143,149,77,58,244,39,104,181,5,123,80,46,145,224,134,47,178,242,1,242,48,204,164,113,56,28,28,150,210,185,194,147,166,47,58,74,115,149,224,205,44,193,39,190,24,55,31,166,201,60,153,98,185,27,61,248,67,210,132,6,91,110,91,26,221,225,162,218,250,66,121,68,87,15,191,206,159,133,151,222,224,134,238,18,62,169,181,128,106,104,243,118,220,220,211,98,244,91,213,170,125,240,241,60,126,181,200,167,57,50,159,48,167,233,214,123,152,30,189,110,45,7,203,31,122,107,219,140,179,52,237,195,219,71,249,210,57,218,240,215,190,128,23,72,142,83,161,11,31,172,53,22,4,189,188,111,253,217,83,244,154,142,154,179,92,245,113,170,16,96,135,71,55,87,142,193,245,157,57,155,150,123,172,159,127,115,36,255,116,14,202,125,225,64,2,35,213,34,232,35,107,174,31,55,176,229,6,185,220,39,78,235,17,201,36,231,86,201,83,143,243,188,66,5,200,250,117,83,82,144,96,91,66,20,104,226,58,246,18,249,173,217,154,62,155,218,48,167,39,55,135,90,121,175,86,69,185,4,161,134,216,131,116,27,51,234,188,146,189,68,154,129,132,99,237,78,28,104,184,223,14,141,240,42,254,29,222,61,144,190,214,246,95,49,252,99,26,80,203,2,52,147,3,8,255,173,117,222,149,191,33,86,117,67,104,186,119,202,71,180,235,112,78,102,214,230,101,234,97,158,83,114,179,33,139,112,214,23,2,174,18,13,169,46,92,249,31,202,240,120,207,204,194,202,57,22,81,84,237,146,72,36,36,45,63,186,132,163,178,137,78,241,158,150,166,253,56,103,83,149,124,227,192,31,166,84,117,73,221,207,226,65,44,186,104,93,184,8,12,219,155,51,57,129,25,36,46,133,17,221,36,229,251,81,72,103,143,238,2,57,90,125,106,57,5,0,31,205,49,223,149,82,224,253,161,17,144,243,183,12,106,19,188,117,114,134,209,238,244,32,154,169,211,170,243,176,126,206,135,189,182,109,29,42,201,71,214,97,23,65,63,116,67,169,203,5,245,52,89,150,221,154,237,217,84,24,123,200,87,116,240,104,60,126,9,106,184,185,2,180,157,82,43,52,50,87,31,208,127,39,77,214,172,100,57,12,222,11,111,136,38,138,36,24,187,204,129,18,145,3,117,196,26,224,163,76,27,237,104,160,248,149,197,174,133,222,78,124,89,185,231,240,15,48,83,136,50,27,24,155,234,205,237,84,147,55,58,197,96,35,240,48,113,66,92,39,254,16,214,236,208,110,126,121,116,254,203,248,181,169,144,227,195,119,154,36,20,133,178,189,73,153,135,64,246,240,212,95,215,170,161,156,87,220,246,1,93,68,188,54,42,44,7,61,35,241,116,234,139,0,37,99,169,31,105,142,105,117,67,129,55,44,79,82,200,89,97,223,189,194,82,70,173,158,143,69,10,75,3,154,12,178,173,27,128,165,30,254,238,199,203,249,30,150,56,34,79,235,233,167,148,120,37,214,36,73,22,204,113,133,155,10,133,101,52,146,251,107,134,110,103,16,82,112,101,88,160,178,198,60,112,46,239,182,189,166,163,251,158,180,88,63,236,122,2,215,188,234,210,209,241,30,224,162,218,8,76,226,215,194,65,142,248,86,198,12,202,115,41,232,138,244,41,193,56,175,136,196,168,170,163,47,37,203,106,177,206,72,61,28,3,23,203,157,236,22,183,242,30,3,174,90,2,140,0,123,79,223,15,118,32,210,138,149,82,187,237,3,70,48,20,166,116,103,76,47,100,110,158,72,105,147,39,141,155,5,123,181,215,79,134,161,185,91,241,91,202,43,100,212,223,185,111,104,236,247,197,248,253,231,229,134,241,227,160,63,19,125,82,15,160,63,1,19,49,35,216,225,189,91,227,102,87,193,70,210,155,135,66,74,117,159,204,60,134,188,44,164,28,174,54,145,236,96,141,136,62,240,188,127,241,4,111,253,88,18,34,76,215,216,206,209,122,76,168,162,202,204,171,22,148,214,31,43,155,16,10,58,182,136,149,197,134,116,232,79,208,106,11,246,160,168,73,99,242,52,129,24,189,92,34,193,13,95,100,229,3,128,131,237,47,1,238,11,30,228,97,152,73,227,112,56,56,56,192,180,107,189,250,214,37,44,165,115,133,39,77,95,116,240,4,95,167,121,199,177,105,148,230,42,193,155,89,130,79,72,71,6,227,197,211,108,82,249,47,96,145,103,60,161,160,37,142,76,179,57,182,79,189,65,108,57,213,219,40,124,155,157,205,21,247,133,162,146,134,137,168,210,25,31,21,27,215,85,9,254,59,65,159,245,202,49,235,139,93,163,1,198,236,237,74,167,127,253,139,40,241,25,33,5,128,150,110,213,79,197,128,41,162,200,228,59,82,161,98,92,196,42,122,8,116,125,195,112,230,116,240,230,105,105,166,183,8,238,71,111,56,181,7,155,42,176,205,129,37,209,229,238,76,82,83,178,3,13,68,194,110,12,217,92,30,0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240),
allocate([22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,4,0,0,0,5,0,0,0,128,103,91,84,78,73,69,66,63,61,58,56,54,52,51,49,48,46,45,44,43,42,41,40,39,38,37,36,35,34,34,33,32,31,31,30,29,29,28,28,27,26,26,25,25,24,24,23,23,22,22,22,21,21,20,20,19,19,19,18,18,17,17,17,16,16,16,15,15,15,14,14,14,13,13,13,12,12,12,11,11,11,11,10,10,10,10,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,5,4,4,4,4,3,3,3,3,3,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);var ERRNO_CODES={"EPERM":1,"ENOENT":2,"ESRCH":3,"EINTR":4,"EIO":5,"ENXIO":6,"E2BIG":7,"ENOEXEC":8,"EBADF":9,"ECHILD":10,"EAGAIN":11,"EWOULDBLOCK":11,"ENOMEM":12,"EACCES":13,"EFAULT":14,"ENOTBLK":15,"EBUSY":16,"EEXIST":17,"EXDEV":18,"ENODEV":19,"ENOTDIR":20,"EISDIR":21,"EINVAL":22,"ENFILE":23,"EMFILE":24,"ENOTTY":25,"ETXTBSY":26,"EFBIG":27,"ENOSPC":28,"ESPIPE":29,"EROFS":30,"EMLINK":31,"EPIPE":32,"EDOM":33,"ERANGE":34,"ENOMSG":42,"EIDRM":43,"ECHRNG":44,"EL2NSYNC":45,"EL3HLT":46,"EL3RST":47,"ELNRNG":48,"EUNATCH":49,"ENOCSI":50,"EL2HLT":51,"EDEADLK":35,"ENOLCK":37,"EBADE":52,"EBADR":53,"EXFULL":54,"ENOANO":55,"EBADRQC":56,"EBADSLT":57,"EDEADLOCK":35,"EBFONT":59,"ENOSTR":60,"ENODATA":61,"ETIME":62,"ENOSR":63,"ENONET":64,"ENOPKG":65,"EREMOTE":66,"ENOLINK":67,"EADV":68,"ESRMNT":69,"ECOMM":70,"EPROTO":71,"EMULTIHOP":72,"EDOTDOT":73,"EBADMSG":74,"ENOTUNIQ":76,"EBADFD":77,"EREMCHG":78,"ELIBACC":79,"ELIBBAD":80,"ELIBSCN":81,"ELIBMAX":82,"ELIBEXEC":83,"ENOSYS":38,"ENOTEMPTY":39,"ENAMETOOLONG":36,"ELOOP":40,"EOPNOTSUPP":95,"EPFNOSUPPORT":96,"ECONNRESET":104,"ENOBUFS":105,"EAFNOSUPPORT":97,"EPROTOTYPE":91,"ENOTSOCK":88,"ENOPROTOOPT":92,"ESHUTDOWN":108,"ECONNREFUSED":111,"EADDRINUSE":98,"ECONNABORTED":103,"ENETUNREACH":101,"ENETDOWN":100,"ETIMEDOUT":110,"EHOSTDOWN":112,"EHOSTUNREACH":113,"EINPROGRESS":115,"EALREADY":114,"EDESTADDRREQ":89,"EMSGSIZE":90,"EPROTONOSUPPORT":93,"ESOCKTNOSUPPORT":94,"EADDRNOTAVAIL":99,"ENETRESET":102,"EISCONN":106,"ENOTCONN":107,"ETOOMANYREFS":109,"EUSERS":87,"EDQUOT":122,"ESTALE":116,"ENOTSUP":95,"ENOMEDIUM":123,"EILSEQ":84,"EOVERFLOW":75,"ECANCELED":125,"ENOTRECOVERABLE":131,"EOWNERDEAD":130,"ESTRPIPE":86},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,PATH={"splitPath":function(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return b.exec(a).slice(1)},"normalizeArray":function(a,b){for(var c=0,d=a.length-1;d>=0;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c--;c)a.unshift("..");return a},"normalize":function(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);return a=PATH.normalizeArray(a.split("/").filter(function(a){return!!a}),!b).join("/"),a||b||(a="."),a&&c&&(a+="/"),(b?"/":"")+a},"dirname":function(a){var b=PATH.splitPath(a),c=b[0],d=b[1];return c||d?(d&&(d=d.substr(0,d.length-1)),c+d):"."},"basename":function(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)},"extname":function(a){return PATH.splitPath(a)[3]},"join":function(){var a=Array.prototype.slice.call(arguments,0);return PATH.normalize(a.join("/"))},"join2":function(a,b){return PATH.normalize(a+"/"+b)},"resolve":function(){for(var a="",b=!1,c=arguments.length-1;c>=-1&&!b;c--){var d=c>=0?arguments[c]:FS.cwd();if("string"!=typeof d)throw new TypeError("Arguments to path.resolve must be strings");if(!d)return"";a=d+"/"+a,b="/"===d.charAt(0)}return a=PATH.normalizeArray(a.split("/").filter(function(a){return!!a}),!b).join("/"),(b?"/":"")+a||"."},"relative":function(a,b){function c(a){for(var b=0;b<a.length&&""===a[b];b++);for(var c=a.length-1;c>=0&&""===a[c];c--);return b>c?[]:a.slice(b,c-b+1)}a=PATH.resolve(a).substr(1),b=PATH.resolve(b).substr(1);for(var d=c(a.split("/")),e=c(b.split("/")),f=Math.min(d.length,e.length),g=f,h=0;f>h;h++)if(d[h]!==e[h]){g=h;break}for(var i=[],h=g;h<d.length;h++)i.push("..");return i=i.concat(e.slice(g)),i.join("/")}},TTY={"ttys":[],"init":function(){},"shutdown":function(){},"register":function(a,b){TTY.ttys[a]={"input":[],"output":[],"ops":b},FS.registerDevice(a,TTY.stream_ops)},"stream_ops":{"open":function(a){var b=TTY.ttys[a.node.rdev];if(!b)throw new FS.ErrnoError(ERRNO_CODES.ENODEV);a.tty=b,a.seekable=!1},"close":function(a){a.tty.ops.flush(a.tty)},"flush":function(a){a.tty.ops.flush(a.tty)},"read":function(a,b,c,d,e){if(!a.tty||!a.tty.ops.get_char)throw new FS.ErrnoError(ERRNO_CODES.ENXIO);for(var f=0,g=0;d>g;g++){var h;try{h=a.tty.ops.get_char(a.tty)}catch(i){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(void 0===h&&0===f)throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);if(null===h||void 0===h)break;f++,b[c+g]=h}return f&&(a.node.timestamp=Date.now()),f},"write":function(a,b,c,d,e){if(!a.tty||!a.tty.ops.put_char)throw new FS.ErrnoError(ERRNO_CODES.ENXIO);for(var f=0;d>f;f++)try{a.tty.ops.put_char(a.tty,b[c+f])}catch(g){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return d&&(a.node.timestamp=Date.now()),f}},"default_tty_ops":{"get_char":function(a){if(!a.input.length){var b=null;if(ENVIRONMENT_IS_NODE){var c=256,d=new Buffer(c),e=0,f=process.stdin.fd,g=!1;try{f=fs.openSync("/dev/stdin","r"),g=!0}catch(h){}e=fs.readSync(f,d,0,c,null),g&&fs.closeSync(f),b=e>0?d.slice(0,e).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&(b=readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=intArrayFromString(b,!0)}return a.input.shift()},"put_char":function(a,b){null===b||10===b?(Module.print(UTF8ArrayToString(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},"flush":function(a){a.output&&a.output.length>0&&(Module.print(UTF8ArrayToString(a.output,0)),a.output=[])}},"default_tty1_ops":{"put_char":function(a,b){null===b||10===b?(Module.printErr(UTF8ArrayToString(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},"flush":function(a){a.output&&a.output.length>0&&(Module.printErr(UTF8ArrayToString(a.output,0)),a.output=[])}}},MEMFS={"ops_table":null,"mount":function(a){return MEMFS.createNode(null,"/",16895,0)},"createNode":function(a,b,c,d){if(FS.isBlkdev(c)||FS.isFIFO(c))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,"rename":MEMFS.node_ops.rename,"unlink":MEMFS.node_ops.unlink,"rmdir":MEMFS.node_ops.rmdir,"readdir":MEMFS.node_ops.readdir,"symlink":MEMFS.node_ops.symlink},"stream":{"llseek":MEMFS.stream_ops.llseek}},"file":{"node":{"getattr":MEMFS.node_ops.getattr,"setattr":MEMFS.node_ops.setattr},"stream":{"llseek":MEMFS.stream_ops.llseek,"read":MEMFS.stream_ops.read,"write":MEMFS.stream_ops.write,"allocate":MEMFS.stream_ops.allocate,"mmap":MEMFS.stream_ops.mmap,"msync":MEMFS.stream_ops.msync}},"link":{"node":{"getattr":MEMFS.node_ops.getattr,"setattr":MEMFS.node_ops.setattr,"readlink":MEMFS.node_ops.readlink},"stream":{}},"chrdev":{"node":{"getattr":MEMFS.node_ops.getattr,"setattr":MEMFS.node_ops.setattr},"stream":FS.chrdev_stream_ops}});var e=FS.createNode(a,b,c,d);return FS.isDir(e.mode)?(e.node_ops=MEMFS.ops_table.dir.node,e.stream_ops=MEMFS.ops_table.dir.stream,e.contents={}):FS.isFile(e.mode)?(e.node_ops=MEMFS.ops_table.file.node,e.stream_ops=MEMFS.ops_table.file.stream,e.usedBytes=0,e.contents=null):FS.isLink(e.mode)?(e.node_ops=MEMFS.ops_table.link.node,e.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(e.mode)&&(e.node_ops=MEMFS.ops_table.chrdev.node,e.stream_ops=MEMFS.ops_table.chrdev.stream),e.timestamp=Date.now(),a&&(a.contents[b]=e),e},"getFileDataAsRegularArray":function(a){if(a.contents&&a.contents.subarray){for(var b=[],c=0;c<a.usedBytes;++c)b.push(a.contents[c]);return b}return a.contents},"getFileDataAsTypedArray":function(a){return a.contents?a.contents.subarray?a.contents.subarray(0,a.usedBytes):new Uint8Array(a.contents):new Uint8Array},"expandFileStorage":function(a,b){if(a.contents&&a.contents.subarray&&b>a.contents.length&&(a.contents=MEMFS.getFileDataAsRegularArray(a),a.usedBytes=a.contents.length),!a.contents||a.contents.subarray){var c=a.contents?a.contents.buffer.byteLength:0;if(c>=b)return;var d=1048576;b=Math.max(b,c*(d>c?2:1.125)|0),0!=c&&(b=Math.max(b,256));var e=a.contents;return a.contents=new Uint8Array(b),void(a.usedBytes>0&&a.contents.set(e.subarray(0,a.usedBytes),0))}for(!a.contents&&b>0&&(a.contents=[]);a.contents.length<b;)a.contents.push(0)},"resizeFileStorage":function(a,b){if(a.usedBytes!=b){if(0==b)return a.contents=null,void(a.usedBytes=0);if(!a.contents||a.contents.subarray){var c=a.contents;return a.contents=new Uint8Array(new ArrayBuffer(b)),c&&a.contents.set(c.subarray(0,Math.min(b,a.usedBytes))),void(a.usedBytes=b)}if(a.contents||(a.contents=[]),a.contents.length>b)a.contents.length=b;else for(;a.contents.length<b;)a.contents.push(0);a.usedBytes=b}},"node_ops":{"getattr":function(a){var b={};return b.dev=FS.isChrdev(a.mode)?a.id:1,b.ino=a.id,b.mode=a.mode,b.nlink=1,b.uid=0,b.gid=0,b.rdev=a.rdev,FS.isDir(a.mode)?b.size=4096:FS.isFile(a.mode)?b.size=a.usedBytes:FS.isLink(a.mode)?b.size=a.link.length:b.size=0,b.atime=new Date(a.timestamp),b.mtime=new Date(a.timestamp),b.ctime=new Date(a.timestamp),b.blksize=4096,b.blocks=Math.ceil(b.size/b.blksize),
b},"setattr":function(a,b){void 0!==b.mode&&(a.mode=b.mode),void 0!==b.timestamp&&(a.timestamp=b.timestamp),void 0!==b.size&&MEMFS.resizeFileStorage(a,b.size)},"lookup":function(a,b){throw FS.genericErrors[ERRNO_CODES.ENOENT]},"mknod":function(a,b,c,d){return MEMFS.createNode(a,b,c,d)},"rename":function(a,b,c){if(FS.isDir(a.mode)){var d;try{d=FS.lookupNode(b,c)}catch(e){}if(d)for(var f in d.contents)throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete a.parent.contents[a.name],a.name=c,b.contents[c]=a,a.parent=b},"unlink":function(a,b){delete a.contents[b]},"rmdir":function(a,b){var c=FS.lookupNode(a,b);for(var d in c.contents)throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);delete a.contents[b]},"readdir":function(a){var b=[".",".."];for(var c in a.contents)a.contents.hasOwnProperty(c)&&b.push(c);return b},"symlink":function(a,b,c){var d=MEMFS.createNode(a,b,41471,0);return d.link=c,d},"readlink":function(a){if(!FS.isLink(a.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return a.link}},"stream_ops":{"read":function(a,b,c,d,e){var f=a.node.contents;if(e>=a.node.usedBytes)return 0;var g=Math.min(a.node.usedBytes-e,d);if(assert(g>=0),g>8&&f.subarray)b.set(f.subarray(e,e+g),c);else for(var h=0;g>h;h++)b[c+h]=f[e+h];return g},"write":function(a,b,c,d,e,f){if(!d)return 0;var g=a.node;if(g.timestamp=Date.now(),b.subarray&&(!g.contents||g.contents.subarray)){if(f)return g.contents=b.subarray(c,c+d),g.usedBytes=d,d;if(0===g.usedBytes&&0===e)return g.contents=new Uint8Array(b.subarray(c,c+d)),g.usedBytes=d,d;if(e+d<=g.usedBytes)return g.contents.set(b.subarray(c,c+d),e),d}if(MEMFS.expandFileStorage(g,e+d),g.contents.subarray&&b.subarray)g.contents.set(b.subarray(c,c+d),e);else for(var h=0;d>h;h++)g.contents[e+h]=b[c+h];return g.usedBytes=Math.max(g.usedBytes,e+d),d},"llseek":function(a,b,c){var d=b;if(1===c?d+=a.position:2===c&&FS.isFile(a.node.mode)&&(d+=a.node.usedBytes),0>d)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return d},"allocate":function(a,b,c){MEMFS.expandFileStorage(a.node,b+c),a.node.usedBytes=Math.max(a.node.usedBytes,b+c)},"mmap":function(a,b,c,d,e,f,g){if(!FS.isFile(a.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);var h,i,j=a.node.contents;if(2&g||j.buffer!==b&&j.buffer!==b.buffer){if((e>0||e+d<a.node.usedBytes)&&(j=j.subarray?j.subarray(e,e+d):Array.prototype.slice.call(j,e,e+d)),i=!0,h=_malloc(d),!h)throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);b.set(j,h)}else i=!1,h=j.byteOffset;return{"ptr":h,"allocated":i}},"msync":function(a,b,c,d,e){if(!FS.isFile(a.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);if(2&e)return 0;MEMFS.stream_ops.write(a,b,0,d,c,!1);return 0}}},IDBFS={"dbs":{},"indexedDB":function(){if("undefined"!=typeof indexedDB)return indexedDB;var a=null;return"object"==typeof window&&(a=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),assert(a,"IDBFS used, but indexedDB not supported"),a},"DB_VERSION":21,"DB_STORE_NAME":"FILE_DATA","mount":function(a){return MEMFS.mount.apply(null,arguments)},"syncfs":function(a,b,c){IDBFS.getLocalSet(a,function(d,e){return d?c(d):void IDBFS.getRemoteSet(a,function(a,d){if(a)return c(a);var f=b?d:e,g=b?e:d;IDBFS.reconcile(f,g,c)})})},"getDB":function(a,b){var c=IDBFS.dbs[a];if(c)return b(null,c);var d;try{d=IDBFS.indexedDB().open(a,IDBFS.DB_VERSION)}catch(e){return b(e)}d.onupgradeneeded=function(a){var b,c=a.target.result,d=a.target.transaction;b=c.objectStoreNames.contains(IDBFS.DB_STORE_NAME)?d.objectStore(IDBFS.DB_STORE_NAME):c.createObjectStore(IDBFS.DB_STORE_NAME),b.indexNames.contains("timestamp")||b.createIndex("timestamp","timestamp",{"unique":!1})},d.onsuccess=function(){c=d.result,IDBFS.dbs[a]=c,b(null,c)},d.onerror=function(a){b(this.error),a.preventDefault()}},"getLocalSet":function(a,b){function c(a){return"."!==a&&".."!==a}function d(a){return function(b){return PATH.join2(a,b)}}for(var e={},f=FS.readdir(a.mountpoint).filter(c).map(d(a.mountpoint));f.length;){var g,h=f.pop();try{g=FS.stat(h)}catch(i){return b(i)}FS.isDir(g.mode)&&f.push.apply(f,FS.readdir(h).filter(c).map(d(h))),e[h]={"timestamp":g.mtime}}return b(null,{"type":"local","entries":e})},"getRemoteSet":function(a,b){var c={};IDBFS.getDB(a.mountpoint,function(a,d){if(a)return b(a);var e=d.transaction([IDBFS.DB_STORE_NAME],"readonly");e.onerror=function(a){b(this.error),a.preventDefault()};var f=e.objectStore(IDBFS.DB_STORE_NAME),g=f.index("timestamp");g.openKeyCursor().onsuccess=function(a){var e=a.target.result;return e?(c[e.primaryKey]={"timestamp":e.key},void e["continue"]()):b(null,{"type":"remote","db":d,"entries":c})}})},"loadLocalEntry":function(a,b){var c,d;try{var e=FS.lookupPath(a);d=e.node,c=FS.stat(a)}catch(f){return b(f)}return FS.isDir(c.mode)?b(null,{"timestamp":c.mtime,"mode":c.mode}):FS.isFile(c.mode)?(d.contents=MEMFS.getFileDataAsTypedArray(d),b(null,{"timestamp":c.mtime,"mode":c.mode,"contents":d.contents})):b(new Error("node type not supported"))},"storeLocalEntry":function(a,b,c){try{if(FS.isDir(b.mode))FS.mkdir(a,b.mode);else{if(!FS.isFile(b.mode))return c(new Error("node type not supported"));FS.writeFile(a,b.contents,{"encoding":"binary","canOwn":!0})}FS.chmod(a,b.mode),FS.utime(a,b.timestamp,b.timestamp)}catch(d){return c(d)}c(null)},"removeLocalEntry":function(a,b){try{var c=(FS.lookupPath(a),FS.stat(a));FS.isDir(c.mode)?FS.rmdir(a):FS.isFile(c.mode)&&FS.unlink(a)}catch(d){return b(d)}b(null)},"loadRemoteEntry":function(a,b,c){var d=a.get(b);d.onsuccess=function(a){c(null,a.target.result)},d.onerror=function(a){c(this.error),a.preventDefault()}},"storeRemoteEntry":function(a,b,c,d){var e=a.put(c,b);e.onsuccess=function(){d(null)},e.onerror=function(a){d(this.error),a.preventDefault()}},"removeRemoteEntry":function(a,b,c){var d=a["delete"](b);d.onsuccess=function(){c(null)},d.onerror=function(a){c(this.error),a.preventDefault()}},"reconcile":function(a,b,c){function d(a){return a?d.errored?void 0:(d.errored=!0,c(a)):++h>=e?c(null):void 0}var e=0,f=[];Object.keys(a.entries).forEach(function(c){var d=a.entries[c],g=b.entries[c];(!g||d.timestamp>g.timestamp)&&(f.push(c),e++)});var g=[];if(Object.keys(b.entries).forEach(function(c){var d=(b.entries[c],a.entries[c]);d||(g.push(c),e++)}),!e)return c(null);var h=0,i="remote"===a.type?a.db:b.db,j=i.transaction([IDBFS.DB_STORE_NAME],"readwrite"),k=j.objectStore(IDBFS.DB_STORE_NAME);j.onerror=function(a){d(this.error),a.preventDefault()},f.sort().forEach(function(a){"local"===b.type?IDBFS.loadRemoteEntry(k,a,function(b,c){return b?d(b):void IDBFS.storeLocalEntry(a,c,d)}):IDBFS.loadLocalEntry(a,function(b,c){return b?d(b):void IDBFS.storeRemoteEntry(k,a,c,d)})}),g.sort().reverse().forEach(function(a){"local"===b.type?IDBFS.removeLocalEntry(a,d):IDBFS.removeRemoteEntry(k,a,d)})}},NODEFS={"isWindows":!1,"staticInit":function(){NODEFS.isWindows=!!process.platform.match(/^win/)},"mount":function(a){return assert(ENVIRONMENT_IS_NODE),NODEFS.createNode(null,"/",NODEFS.getMode(a.opts.root),0)},"createNode":function(a,b,c,d){if(!FS.isDir(c)&&!FS.isFile(c)&&!FS.isLink(c))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var e=FS.createNode(a,b,c);return e.node_ops=NODEFS.node_ops,e.stream_ops=NODEFS.stream_ops,e},"getMode":function(a){var b;try{b=fs.lstatSync(a),NODEFS.isWindows&&(b.mode=b.mode|(146&b.mode)>>1)}catch(c){if(!c.code)throw c;throw new FS.ErrnoError(ERRNO_CODES[c.code])}return b.mode},"realPath":function(a){for(var b=[];a.parent!==a;)b.push(a.name),a=a.parent;return b.push(a.mount.opts.root),b.reverse(),PATH.join.apply(null,b)},"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(a){return a in NODEFS.flagsToPermissionStringMap?NODEFS.flagsToPermissionStringMap[a]:a},"node_ops":{"getattr":function(a){var b,c=NODEFS.realPath(a);try{b=fs.lstatSync(c)}catch(d){if(!d.code)throw d;throw new FS.ErrnoError(ERRNO_CODES[d.code])}return NODEFS.isWindows&&!b.blksize&&(b.blksize=4096),NODEFS.isWindows&&!b.blocks&&(b.blocks=(b.size+b.blksize-1)/b.blksize|0),{"dev":b.dev,"ino":b.ino,"mode":b.mode,"nlink":b.nlink,"uid":b.uid,"gid":b.gid,"rdev":b.rdev,"size":b.size,"atime":b.atime,"mtime":b.mtime,"ctime":b.ctime,"blksize":b.blksize,"blocks":b.blocks}},"setattr":function(a,b){var c=NODEFS.realPath(a);try{if(void 0!==b.mode&&(fs.chmodSync(c,b.mode),a.mode=b.mode),void 0!==b.timestamp){var d=new Date(b.timestamp);fs.utimesSync(c,d,d)}void 0!==b.size&&fs.truncateSync(c,b.size)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},"lookup":function(a,b){var c=PATH.join2(NODEFS.realPath(a),b),d=NODEFS.getMode(c);return NODEFS.createNode(a,b,d)},"mknod":function(a,b,c,d){var e=NODEFS.createNode(a,b,c,d),f=NODEFS.realPath(e);try{FS.isDir(e.mode)?fs.mkdirSync(f,e.mode):fs.writeFileSync(f,"",{"mode":e.mode})}catch(g){if(!g.code)throw g;throw new FS.ErrnoError(ERRNO_CODES[g.code])}return e},"rename":function(a,b,c){var d=NODEFS.realPath(a),e=PATH.join2(NODEFS.realPath(b),c);try{fs.renameSync(d,e)}catch(f){if(!f.code)throw f;throw new FS.ErrnoError(ERRNO_CODES[f.code])}},"unlink":function(a,b){var c=PATH.join2(NODEFS.realPath(a),b);try{fs.unlinkSync(c)}catch(d){if(!d.code)throw d;throw new FS.ErrnoError(ERRNO_CODES[d.code])}},"rmdir":function(a,b){var c=PATH.join2(NODEFS.realPath(a),b);try{fs.rmdirSync(c)}catch(d){if(!d.code)throw d;throw new FS.ErrnoError(ERRNO_CODES[d.code])}},"readdir":function(a){var b=NODEFS.realPath(a);try{return fs.readdirSync(b)}catch(c){if(!c.code)throw c;throw new FS.ErrnoError(ERRNO_CODES[c.code])}},"symlink":function(a,b,c){var d=PATH.join2(NODEFS.realPath(a),b);try{fs.symlinkSync(c,d)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},"readlink":function(a){var b=NODEFS.realPath(a);try{return b=fs.readlinkSync(b),b=NODEJS_PATH.relative(NODEJS_PATH.resolve(a.mount.opts.root),b)}catch(c){if(!c.code)throw c;throw new FS.ErrnoError(ERRNO_CODES[c.code])}}},"stream_ops":{"open":function(a){var b=NODEFS.realPath(a.node);try{FS.isFile(a.node.mode)&&(a.nfd=fs.openSync(b,NODEFS.flagsToPermissionString(a.flags)))}catch(c){if(!c.code)throw c;throw new FS.ErrnoError(ERRNO_CODES[c.code])}},"close":function(a){try{FS.isFile(a.node.mode)&&a.nfd&&fs.closeSync(a.nfd)}catch(b){if(!b.code)throw b;throw new FS.ErrnoError(ERRNO_CODES[b.code])}},"read":function(a,b,c,d,e){if(0===d)return 0;var f,g=new Buffer(d);try{f=fs.readSync(a.nfd,g,0,d,e)}catch(h){throw new FS.ErrnoError(ERRNO_CODES[h.code])}if(f>0)for(var i=0;f>i;i++)b[c+i]=g[i];return f},"write":function(a,b,c,d,e){var f,g=new Buffer(b.subarray(c,c+d));try{f=fs.writeSync(a.nfd,g,0,d,e)}catch(h){throw new FS.ErrnoError(ERRNO_CODES[h.code])}return f},"llseek":function(a,b,c){var d=b;if(1===c)d+=a.position;else if(2===c&&FS.isFile(a.node.mode))try{var e=fs.fstatSync(a.nfd);d+=e.size}catch(f){throw new FS.ErrnoError(ERRNO_CODES[f.code])}if(0>d)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return d}}},_stdin=allocate(1,"i32*",ALLOC_STATIC),_stdout=allocate(1,"i32*",ALLOC_STATIC),_stderr=allocate(1,"i32*",ALLOC_STATIC),FS={"root":null,"mounts":[],"devices":[null],"streams":[],"nextInode":1,"nameTable":null,"currentPath":"/","initialized":!1,"ignorePermissions":!0,"trackingDelegate":{},"tracking":{"openFlags":{"READ":1,"WRITE":2}},"ErrnoError":null,"genericErrors":{},"handleFSError":function(a){if(!(a instanceof FS.ErrnoError))throw a+" : "+stackTrace();return ___setErrNo(a.errno)},"lookupPath":function(a,b){if(a=PATH.resolve(FS.cwd(),a),b=b||{},!a)return{"path":"","node":null};var c={"follow_mount":!0,"recurse_count":0};for(var d in c)void 0===b[d]&&(b[d]=c[d]);if(b.recurse_count>8)throw new FS.ErrnoError(ERRNO_CODES.ELOOP);for(var e=PATH.normalizeArray(a.split("/").filter(function(a){return!!a}),!1),f=FS.root,g="/",h=0;h<e.length;h++){var i=h===e.length-1;if(i&&b.parent)break;if(f=FS.lookupNode(f,e[h]),g=PATH.join2(g,e[h]),FS.isMountpoint(f)&&(!i||i&&b.follow_mount)&&(f=f.mounted.root),!i||b.follow)for(var j=0;FS.isLink(f.mode);){var k=FS.readlink(g);g=PATH.resolve(PATH.dirname(g),k);var l=FS.lookupPath(g,{"recurse_count":b.recurse_count});if(f=l.node,j++>40)throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}return{"path":g,"node":f}},"getPath":function(a){for(var b;;){if(FS.isRoot(a)){var c=a.mount.mountpoint;return b?"/"!==c[c.length-1]?c+"/"+b:c+b:c}b=b?a.name+"/"+b:a.name,a=a.parent}},"hashName":function(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%FS.nameTable.length},"hashAddNode":function(a){var b=FS.hashName(a.parent.id,a.name);a.name_next=FS.nameTable[b],FS.nameTable[b]=a},"hashRemoveNode":function(a){var b=FS.hashName(a.parent.id,a.name);if(FS.nameTable[b]===a)FS.nameTable[b]=a.name_next;else for(var c=FS.nameTable[b];c;){if(c.name_next===a){c.name_next=a.name_next;break}c=c.name_next}},"lookupNode":function(a,b){var c=FS.mayLookup(a);if(c)throw new FS.ErrnoError(c,a);for(var d=FS.hashName(a.id,b),e=FS.nameTable[d];e;e=e.name_next){var f=e.name;if(e.parent.id===a.id&&f===b)return e}return FS.lookup(a,b)},"createNode":function(a,b,c,d){if(!FS.FSNode){FS.FSNode=function(a,b,c,d){a||(a=this),this.parent=a,this.mount=a.mount,this.mounted=null,this.id=FS.nextInode++,this.name=b,this.mode=c,this.node_ops={},this.stream_ops={},this.rdev=d},FS.FSNode.prototype={};var e=365,f=146;Object.defineProperties(FS.FSNode.prototype,{"read":{"get":function(){return(this.mode&e)===e},"set":function(a){a?this.mode|=e:this.mode&=~e}},"write":{"get":function(){return(this.mode&f)===f},"set":function(a){a?this.mode|=f:this.mode&=~f}},"isFolder":{"get":function(){return FS.isDir(this.mode)}},"isDevice":{"get":function(){return FS.isChrdev(this.mode)}}})}var g=new FS.FSNode(a,b,c,d);return FS.hashAddNode(g),g},"destroyNode":function(a){FS.hashRemoveNode(a)},"isRoot":function(a){return a===a.parent},"isMountpoint":function(a){return!!a.mounted},"isFile":function(a){return 32768===(61440&a)},"isDir":function(a){return 16384===(61440&a)},"isLink":function(a){return 40960===(61440&a)},"isChrdev":function(a){return 8192===(61440&a)},"isBlkdev":function(a){return 24576===(61440&a)},"isFIFO":function(a){return 4096===(61440&a)},"isSocket":function(a){return 49152===(49152&a)},"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(a){var b=FS.flagModes[a];if("undefined"==typeof b)throw new Error("Unknown file open mode: "+a);return b},"flagsToPermissionString":function(a){var b=2097155&a,c=["r","w","rw"][b];return 512&a&&(c+="w"),c},"nodePermissions":function(a,b){return FS.ignorePermissions?0:(-1===b.indexOf("r")||292&a.mode)&&(-1===b.indexOf("w")||146&a.mode)&&(-1===b.indexOf("x")||73&a.mode)?0:ERRNO_CODES.EACCES},"mayLookup":function(a){var b=FS.nodePermissions(a,"x");return b?b:a.node_ops.lookup?0:ERRNO_CODES.EACCES},"mayCreate":function(a,b){try{FS.lookupNode(a,b);return ERRNO_CODES.EEXIST}catch(c){}return FS.nodePermissions(a,"wx")},"mayDelete":function(a,b,c){var d;try{d=FS.lookupNode(a,b)}catch(e){return e.errno}var f=FS.nodePermissions(a,"wx");if(f)return f;if(c){if(!FS.isDir(d.mode))return ERRNO_CODES.ENOTDIR;if(FS.isRoot(d)||FS.getPath(d)===FS.cwd())return ERRNO_CODES.EBUSY}else if(FS.isDir(d.mode))return ERRNO_CODES.EISDIR;return 0},"mayOpen":function(a,b){return a?FS.isLink(a.mode)?ERRNO_CODES.ELOOP:FS.isDir(a.mode)&&(0!==(2097155&b)||512&b)?ERRNO_CODES.EISDIR:FS.nodePermissions(a,FS.flagsToPermissionString(b)):ERRNO_CODES.ENOENT},"MAX_OPEN_FDS":4096,"nextfd":function(a,b){a=a||0,b=b||FS.MAX_OPEN_FDS;for(var c=a;b>=c;c++)if(!FS.streams[c])return c;throw new FS.ErrnoError(ERRNO_CODES.EMFILE)},"getStream":function(a){return FS.streams[a]},"createStream":function(a,b,c){FS.FSStream||(FS.FSStream=function(){},FS.FSStream.prototype={},Object.defineProperties(FS.FSStream.prototype,{"object":{"get":function(){return this.node},"set":function(a){this.node=a}},"isRead":{"get":function(){return 1!==(2097155&this.flags)}},"isWrite":{"get":function(){return 0!==(2097155&this.flags)}},"isAppend":{"get":function(){return 1024&this.flags}}}));var d=new FS.FSStream;for(var e in a)d[e]=a[e];a=d;var f=FS.nextfd(b,c);return a.fd=f,FS.streams[f]=a,a},"closeStream":function(a){FS.streams[a]=null},"getStreamFromPtr":function(a){return FS.streams[a-1]},"getPtrForStream":function(a){return a?a.fd+1:0},"chrdev_stream_ops":{"open":function(a){var b=FS.getDevice(a.node.rdev);a.stream_ops=b.stream_ops,a.stream_ops.open&&a.stream_ops.open(a)},"llseek":function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}},"major":function(a){return a>>8},"minor":function(a){return 255&a},"makedev":function(a,b){return a<<8|b},"registerDevice":function(a,b){FS.devices[a]={"stream_ops":b}},"getDevice":function(a){return FS.devices[a]},"getMounts":function(a){for(var b=[],c=[a];c.length;){var d=c.pop();b.push(d),c.push.apply(c,d.mounts)}return b},"syncfs":function(a,b){function c(a){if(a){if(!c.errored)return c.errored=!0,b(a)}else++e>=d.length&&b(null)}"function"==typeof a&&(b=a,a=!1);var d=FS.getMounts(FS.root.mount),e=0;d.forEach(function(b){return b.type.syncfs?void b.type.syncfs(b,a,c):c(null)})},"mount":function(a,b,c){var d,e="/"===c,f=!c;if(e&&FS.root)throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(!e&&!f){var g=FS.lookupPath(c,{"follow_mount":!1});if(c=g.path,d=g.node,FS.isMountpoint(d))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(!FS.isDir(d.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var h={"type":a,"opts":b,"mountpoint":c,"mounts":[]},i=a.mount(h);return i.mount=h,h.root=i,e?FS.root=i:d&&(d.mounted=h,d.mount&&d.mount.mounts.push(h)),i},"unmount":function(a){var b=FS.lookupPath(a,{"follow_mount":!1});if(!FS.isMountpoint(b.node))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var c=b.node,d=c.mounted,e=FS.getMounts(d);Object.keys(FS.nameTable).forEach(function(a){for(var b=FS.nameTable[a];b;){var c=b.name_next;-1!==e.indexOf(b.mount)&&FS.destroyNode(b),b=c}}),c.mounted=null;var f=c.mount.mounts.indexOf(d);assert(-1!==f),c.mount.mounts.splice(f,1)},"lookup":function(a,b){return a.node_ops.lookup(a,b)},"mknod":function(a,b,c){var d=FS.lookupPath(a,{"parent":!0}),e=d.node,f=PATH.basename(a);if(!f||"."===f||".."===f)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var g=FS.mayCreate(e,f);if(g)throw new FS.ErrnoError(g);if(!e.node_ops.mknod)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return e.node_ops.mknod(e,f,b,c)},"create":function(a,b){return b=void 0!==b?b:438,b&=4095,b|=32768,FS.mknod(a,b,0)},"mkdir":function(a,b){return b=void 0!==b?b:511,b&=1023,b|=16384,FS.mknod(a,b,0)},"mkdev":function(a,b,c){return"undefined"==typeof c&&(c=b,b=438),b|=8192,FS.mknod(a,b,c)},"symlink":function(a,b){if(!PATH.resolve(a))throw new FS.ErrnoError(ERRNO_CODES.ENOENT);var c=FS.lookupPath(b,{"parent":!0}),d=c.node;if(!d)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);var e=PATH.basename(b),f=FS.mayCreate(d,e);if(f)throw new FS.ErrnoError(f);if(!d.node_ops.symlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return d.node_ops.symlink(d,e,a)},"rename":function(a,b){var c,d,e,f=PATH.dirname(a),g=PATH.dirname(b),h=PATH.basename(a),i=PATH.basename(b);try{c=FS.lookupPath(a,{"parent":!0}),d=c.node,c=FS.lookupPath(b,{"parent":!0}),e=c.node}catch(j){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!d||!e)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(d.mount!==e.mount)throw new FS.ErrnoError(ERRNO_CODES.EXDEV);var k=FS.lookupNode(d,h),l=PATH.relative(a,g);if("."!==l.charAt(0))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(l=PATH.relative(b,f),"."!==l.charAt(0))throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);var m;try{m=FS.lookupNode(e,i)}catch(j){}if(k!==m){var n=FS.isDir(k.mode),o=FS.mayDelete(d,h,n);if(o)throw new FS.ErrnoError(o);if(o=m?FS.mayDelete(e,i,n):FS.mayCreate(e,i))throw new FS.ErrnoError(o);if(!d.node_ops.rename)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(k)||m&&FS.isMountpoint(m))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(e!==d&&(o=FS.nodePermissions(d,"w")))throw new FS.ErrnoError(o);try{FS.trackingDelegate.willMovePath&&FS.trackingDelegate.willMovePath(a,b)}catch(j){console.log("FS.trackingDelegate['willMovePath']('"+a+"', '"+b+"') threw an exception: "+j.message)}FS.hashRemoveNode(k);try{d.node_ops.rename(k,e,i)}catch(j){throw j}finally{FS.hashAddNode(k)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(a,b)}catch(j){console.log("FS.trackingDelegate['onMovePath']('"+a+"', '"+b+"') threw an exception: "+j.message)}}},"rmdir":function(a){var b=FS.lookupPath(a,{"parent":!0}),c=b.node,d=PATH.basename(a),e=FS.lookupNode(c,d),f=FS.mayDelete(c,d,!0);if(f)throw new FS.ErrnoError(f);if(!c.node_ops.rmdir)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(e))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(a)}catch(g){console.log("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+g.message)}c.node_ops.rmdir(c,d),FS.destroyNode(e);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(a)}catch(g){console.log("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+g.message)}},"readdir":function(a){var b=FS.lookupPath(a,{"follow":!0}),c=b.node;if(!c.node_ops.readdir)throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);return c.node_ops.readdir(c)},"unlink":function(a){var b=FS.lookupPath(a,{"parent":!0}),c=b.node,d=PATH.basename(a),e=FS.lookupNode(c,d),f=FS.mayDelete(c,d,!1);if(f)throw f===ERRNO_CODES.EISDIR&&(f=ERRNO_CODES.EPERM),new FS.ErrnoError(f);if(!c.node_ops.unlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(e))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(a)}catch(g){console.log("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+g.message)}c.node_ops.unlink(c,d),FS.destroyNode(e);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(a)}catch(g){console.log("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+g.message)}},"readlink":function(a){var b=FS.lookupPath(a),c=b.node;if(!c)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!c.node_ops.readlink)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return PATH.resolve(FS.getPath(b.node.parent),c.node_ops.readlink(c))},"stat":function(a,b){var c=FS.lookupPath(a,{"follow":!b}),d=c.node;if(!d)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!d.node_ops.getattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return d.node_ops.getattr(d)},"lstat":function(a){return FS.stat(a,!0)},"chmod":function(a,b,c){var d;if("string"==typeof a){var e=FS.lookupPath(a,{"follow":!c});d=e.node}else d=a;if(!d.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);d.node_ops.setattr(d,{"mode":4095&b|-4096&d.mode,"timestamp":Date.now()})},"lchmod":function(a,b){FS.chmod(a,b,!0)},"fchmod":function(a,b){var c=FS.getStream(a);if(!c)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chmod(c.node,b)},"chown":function(a,b,c,d){var e;if("string"==typeof a){var f=FS.lookupPath(a,{"follow":!d});e=f.node}else e=a;if(!e.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);e.node_ops.setattr(e,{"timestamp":Date.now()})},"lchown":function(a,b,c){FS.chown(a,b,c,!0)},"fchown":function(a,b,c){var d=FS.getStream(a);if(!d)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chown(d.node,b,c)},"truncate":function(a,b){if(0>b)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var c;if("string"==typeof a){var d=FS.lookupPath(a,{"follow":!0});c=d.node}else c=a;if(!c.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isDir(c.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!FS.isFile(c.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var e=FS.nodePermissions(c,"w");if(e)throw new FS.ErrnoError(e);c.node_ops.setattr(c,{"size":b,"timestamp":Date.now()})},"ftruncate":function(a,b){var c=FS.getStream(a);if(!c)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(0===(2097155&c.flags))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);FS.truncate(c.node,b)},"utime":function(a,b,c){var d=FS.lookupPath(a,{"follow":!0}),e=d.node;e.node_ops.setattr(e,{"timestamp":Math.max(b,c)})},"open":function(a,b,c,d,e){if(""===a)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);b="string"==typeof b?FS.modeStringToFlags(b):b,c="undefined"==typeof c?438:c,c=64&b?4095&c|32768:0;var f;if("object"==typeof a)f=a;else{a=PATH.normalize(a);try{var g=FS.lookupPath(a,{"follow":!(131072&b)});f=g.node}catch(h){}}var i=!1;if(64&b)if(f){if(128&b)throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}else f=FS.mknod(a,c,0),i=!0;if(!f)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(FS.isChrdev(f.mode)&&(b&=-513),!i){var j=FS.mayOpen(f,b);if(j)throw new FS.ErrnoError(j)}512&b&&FS.truncate(f,0),b&=-641;var k=FS.createStream({"node":f,"path":FS.getPath(f),"flags":b,"seekable":!0,"position":0,"stream_ops":f.stream_ops,"ungotten":[],"error":!1},d,e);k.stream_ops.open&&k.stream_ops.open(k),!Module.logReadFiles||1&b||(FS.readFiles||(FS.readFiles={}),a in FS.readFiles||(FS.readFiles[a]=1,Module.printErr("read file: "+a)));try{if(FS.trackingDelegate.onOpenFile){var l=0;1!==(2097155&b)&&(l|=FS.tracking.openFlags.READ),0!==(2097155&b)&&(l|=FS.tracking.openFlags.WRITE),FS.trackingDelegate.onOpenFile(a,l)}}catch(h){console.log("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+h.message)}return k},"close":function(a){try{a.stream_ops.close&&a.stream_ops.close(a)}catch(b){throw b}finally{FS.closeStream(a.fd)}},"llseek":function(a,b,c){if(!a.seekable||!a.stream_ops.llseek)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);return a.position=a.stream_ops.llseek(a,b,c),a.ungotten=[],a.position},"read":function(a,b,c,d,e){if(0>d||0>e)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(1===(2097155&a.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(a.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!a.stream_ops.read)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var f=!0;if("undefined"==typeof e)e=a.position,f=!1;else if(!a.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);var g=a.stream_ops.read(a,b,c,d,e);return f||(a.position+=g),g},"write":function(a,b,c,d,e,f){if(0>d||0>e)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(0===(2097155&a.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(a.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!a.stream_ops.write)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);1024&a.flags&&FS.llseek(a,0,2);var g=!0;if("undefined"==typeof e)e=a.position,g=!1;else if(!a.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);var h=a.stream_ops.write(a,b,c,d,e,f);g||(a.position+=h);try{a.path&&FS.trackingDelegate.onWriteToFile&&FS.trackingDelegate.onWriteToFile(a.path)}catch(i){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+i.message)}return h},"allocate":function(a,b,c){if(0>b||0>=c)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(0===(2097155&a.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(!FS.isFile(a.node.mode)&&!FS.isDir(node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);if(!a.stream_ops.allocate)throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);a.stream_ops.allocate(a,b,c)},"mmap":function(a,b,c,d,e,f,g){if(1===(2097155&a.flags))throw new FS.ErrnoError(ERRNO_CODES.EACCES);if(!a.stream_ops.mmap)throw new FS.ErrnoError(ERRNO_CODES.ENODEV);return a.stream_ops.mmap(a,b,c,d,e,f,g)},"msync":function(a,b,c,d,e){return a&&a.stream_ops.msync?a.stream_ops.msync(a,b,c,d,e):0},"munmap":function(a){return 0},"ioctl":function(a,b,c){if(!a.stream_ops.ioctl)throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);return a.stream_ops.ioctl(a,b,c)},"readFile":function(a,b){if(b=b||{},b.flags=b.flags||"r",b.encoding=b.encoding||"binary","utf8"!==b.encoding&&"binary"!==b.encoding)throw new Error('Invalid encoding type "'+b.encoding+'"');var c,d=FS.open(a,b.flags),e=FS.stat(a),f=e.size,g=new Uint8Array(f);return FS.read(d,g,0,f,0),"utf8"===b.encoding?c=UTF8ArrayToString(g,0):"binary"===b.encoding&&(c=g),FS.close(d),c},"writeFile":function(a,b,c){if(c=c||{},c.flags=c.flags||"w",c.encoding=c.encoding||"utf8","utf8"!==c.encoding&&"binary"!==c.encoding)throw new Error('Invalid encoding type "'+c.encoding+'"');var d=FS.open(a,c.flags,c.mode);if("utf8"===c.encoding){var e=new Uint8Array(lengthBytesUTF8(b)+1),f=stringToUTF8Array(b,e,0,e.length);FS.write(d,e,0,f,0,c.canOwn)}else"binary"===c.encoding&&FS.write(d,b,0,b.length,0,c.canOwn);FS.close(d)},"cwd":function(){return FS.currentPath},"chdir":function(a){var b=FS.lookupPath(a,{"follow":!0});if(!FS.isDir(b.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);var c=FS.nodePermissions(b.node,"x");if(c)throw new FS.ErrnoError(c);FS.currentPath=b.path},"createDefaultDirectories":function(){FS.mkdir("/tmp"),FS.mkdir("/home"),FS.mkdir("/home/web_user")},"createDefaultDevices":function(){FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{"read":function(){return 0},"write":function(a,b,c,d,e){return d}}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0));var a;if("undefined"!=typeof crypto){var b=new Uint8Array(1);a=function(){return crypto.getRandomValues(b),b[0]}}else a=ENVIRONMENT_IS_NODE?function(){return require("crypto").randomBytes(1)[0]}:function(){return 256*Math.random()|0};FS.createDevice("/dev","random",a),FS.createDevice("/dev","urandom",a),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 a=FS.open("/dev/stdin","r");HEAP32[_stdin>>2]=FS.getPtrForStream(a),assert(0===a.fd,"invalid handle for stdin ("+a.fd+")");var b=FS.open("/dev/stdout","w");HEAP32[_stdout>>2]=FS.getPtrForStream(b),assert(1===b.fd,"invalid handle for stdout ("+b.fd+")");var c=FS.open("/dev/stderr","w");HEAP32[_stderr>>2]=FS.getPtrForStream(c),assert(2===c.fd,"invalid handle for stderr ("+c.fd+")")},"ensureErrnoError":function(){FS.ErrnoError||(FS.ErrnoError=function(a,b){this.node=b,this.setErrno=function(a){this.errno=a;for(var b in ERRNO_CODES)if(ERRNO_CODES[b]===a){this.code=b;break}},this.setErrno(a),this.message=ERRNO_MESSAGES[a]},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[ERRNO_CODES.ENOENT].forEach(function(a){FS.genericErrors[a]=new FS.ErrnoError(a),FS.genericErrors[a].stack="<generic error, no stack>"}))},"staticInit":function(){FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices()},"init":function(a,b,c){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=a||Module.stdin,Module.stdout=b||Module.stdout,Module.stderr=c||Module.stderr,FS.createStandardStreams()},"quit":function(){FS.init.initialized=!1;for(var a=0;a<FS.streams.length;a++){var b=FS.streams[a];b&&FS.close(b)}},"getMode":function(a,b){var c=0;return a&&(c|=365),b&&(c|=146),c},"joinPath":function(a,b){var c=PATH.join.apply(null,a);return b&&"/"==c[0]&&(c=c.substr(1)),c},"absolutePath":function(a,b){return PATH.resolve(b,a)},"standardizePath":function(a){return PATH.normalize(a)},"findObject":function(a,b){var c=FS.analyzePath(a,b);return c.exists?c.object:(___setErrNo(c.error),null)},"analyzePath":function(a,b){try{var c=FS.lookupPath(a,{"follow":!b});a=c.path}catch(d){}var e={"isRoot":!1,"exists":!1,"error":0,"name":null,
"path":null,"object":null,"parentExists":!1,"parentPath":null,"parentObject":null};try{var c=FS.lookupPath(a,{"parent":!0});e.parentExists=!0,e.parentPath=c.path,e.parentObject=c.node,e.name=PATH.basename(a),c=FS.lookupPath(a,{"follow":!b}),e.exists=!0,e.path=c.path,e.object=c.node,e.name=c.node.name,e.isRoot="/"===c.path}catch(d){e.error=d.errno}return e},"createFolder":function(a,b,c,d){var e=PATH.join2("string"==typeof a?a:FS.getPath(a),b),f=FS.getMode(c,d);return FS.mkdir(e,f)},"createPath":function(a,b,c,d){a="string"==typeof a?a:FS.getPath(a);for(var e=b.split("/").reverse();e.length;){var f=e.pop();if(f){var g=PATH.join2(a,f);try{FS.mkdir(g)}catch(h){}a=g}}return g},"createFile":function(a,b,c,d,e){var f=PATH.join2("string"==typeof a?a:FS.getPath(a),b),g=FS.getMode(d,e);return FS.create(f,g)},"createDataFile":function(a,b,c,d,e,f){var g=b?PATH.join2("string"==typeof a?a:FS.getPath(a),b):a,h=FS.getMode(d,e),i=FS.create(g,h);if(c){if("string"==typeof c){for(var j=new Array(c.length),k=0,l=c.length;l>k;++k)j[k]=c.charCodeAt(k);c=j}FS.chmod(i,146|h);var m=FS.open(i,"w");FS.write(m,c,0,c.length,0,f),FS.close(m),FS.chmod(i,h)}return i},"createDevice":function(a,b,c,d){var e=PATH.join2("string"==typeof a?a:FS.getPath(a),b),f=FS.getMode(!!c,!!d);FS.createDevice.major||(FS.createDevice.major=64);var g=FS.makedev(FS.createDevice.major++,0);return FS.registerDevice(g,{"open":function(a){a.seekable=!1},"close":function(a){d&&d.buffer&&d.buffer.length&&d(10)},"read":function(a,b,d,e,f){for(var g=0,h=0;e>h;h++){var i;try{i=c()}catch(j){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(void 0===i&&0===g)throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);if(null===i||void 0===i)break;g++,b[d+h]=i}return g&&(a.node.timestamp=Date.now()),g},"write":function(a,b,c,e,f){for(var g=0;e>g;g++)try{d(b[c+g])}catch(h){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return e&&(a.node.timestamp=Date.now()),g}}),FS.mkdev(e,f,g)},"createLink":function(a,b,c,d,e){var f=PATH.join2("string"==typeof a?a:FS.getPath(a),b);return FS.symlink(c,f)},"forceLoadFile":function(a){if(a.isDevice||a.isFolder||a.link||a.contents)return!0;var b=!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{a.contents=intArrayFromString(Module.read(a.url),!0),a.usedBytes=a.contents.length}catch(c){b=!1}return b||___setErrNo(ERRNO_CODES.EIO),b},"createLazyFile":function(a,b,c,d,e){function f(){this.lengthKnown=!1,this.chunks=[]}if(f.prototype.get=function(a){if(!(a>this.length-1||0>a)){var b=a%this.chunkSize,c=a/this.chunkSize|0;return this.getter(c)[b]}},f.prototype.setDataGetter=function(a){this.getter=a},f.prototype.cacheLength=function(){var a=new XMLHttpRequest;if(a.open("HEAD",c,!1),a.send(null),!(a.status>=200&&a.status<300||304===a.status))throw new Error("Couldn't load "+c+". Status: "+a.status);var b,d=Number(a.getResponseHeader("Content-length")),e=(b=a.getResponseHeader("Accept-Ranges"))&&"bytes"===b,f=1048576;e||(f=d);var g=function(a,b){if(a>b)throw new Error("invalid range ("+a+", "+b+") or no bytes requested!");if(b>d-1)throw new Error("only "+d+" bytes available! programmer error!");var e=new XMLHttpRequest;if(e.open("GET",c,!1),d!==f&&e.setRequestHeader("Range","bytes="+a+"-"+b),"undefined"!=typeof Uint8Array&&(e.responseType="arraybuffer"),e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined"),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+c+". Status: "+e.status);return void 0!==e.response?new Uint8Array(e.response||[]):intArrayFromString(e.responseText||"",!0)},h=this;h.setDataGetter(function(a){var b=a*f,c=(a+1)*f-1;if(c=Math.min(c,d-1),"undefined"==typeof h.chunks[a]&&(h.chunks[a]=g(b,c)),"undefined"==typeof h.chunks[a])throw new Error("doXHR failed!");return h.chunks[a]}),this._length=d,this._chunkSize=f,this.lengthKnown=!0},"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";var g=new f;Object.defineProperty(g,"length",{"get":function(){return this.lengthKnown||this.cacheLength(),this._length}}),Object.defineProperty(g,"chunkSize",{"get":function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}});var h={"isDevice":!1,"contents":g}}else var h={"isDevice":!1,"url":c};var i=FS.createFile(a,b,h,d,e);h.contents?i.contents=h.contents:h.url&&(i.contents=null,i.url=h.url),Object.defineProperty(i,"usedBytes",{"get":function(){return this.contents.length}});var j={},k=Object.keys(i.stream_ops);return k.forEach(function(a){var b=i.stream_ops[a];j[a]=function(){if(!FS.forceLoadFile(i))throw new FS.ErrnoError(ERRNO_CODES.EIO);return b.apply(null,arguments)}}),j.read=function(a,b,c,d,e){if(!FS.forceLoadFile(i))throw new FS.ErrnoError(ERRNO_CODES.EIO);var f=a.node.contents;if(e>=f.length)return 0;var g=Math.min(f.length-e,d);if(assert(g>=0),f.slice)for(var h=0;g>h;h++)b[c+h]=f[e+h];else for(var h=0;g>h;h++)b[c+h]=f.get(e+h);return g},i.stream_ops=j,i},"createPreloadedFile":function(a,b,c,d,e,f,g,h,i,j){function k(c){function k(c){j&&j(),h||FS.createDataFile(a,b,c,d,e,i),f&&f(),removeRunDependency(m)}var n=!1;Module.preloadPlugins.forEach(function(a){n||a.canHandle(l)&&(a.handle(c,l,k,function(){g&&g(),removeRunDependency(m)}),n=!0)}),n||k(c)}Browser.init();var l=b?PATH.resolve(PATH.join2(a,b)):a,m=getUniqueRunDependency("cp "+l);addRunDependency(m),"string"==typeof c?Browser.asyncLoad(c,function(a){k(a)},g):k(c)},"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(a,b,c){b=b||function(){},c=c||function(){};var d=FS.indexedDB();try{var e=d.open(FS.DB_NAME(),FS.DB_VERSION)}catch(f){return c(f)}e.onupgradeneeded=function(){console.log("creating db");var a=e.result;a.createObjectStore(FS.DB_STORE_NAME)},e.onsuccess=function(){function d(){0==j?b():c()}var f=e.result,g=f.transaction([FS.DB_STORE_NAME],"readwrite"),h=g.objectStore(FS.DB_STORE_NAME),i=0,j=0,k=a.length;a.forEach(function(a){var b=h.put(FS.analyzePath(a).object.contents,a);b.onsuccess=function(){i++,i+j==k&&d()},b.onerror=function(){j++,i+j==k&&d()}}),g.onerror=c},e.onerror=c},"loadFilesFromDB":function(a,b,c){b=b||function(){},c=c||function(){};var d=FS.indexedDB();try{var e=d.open(FS.DB_NAME(),FS.DB_VERSION)}catch(f){return c(f)}e.onupgradeneeded=c,e.onsuccess=function(){function d(){0==k?b():c()}var f=e.result;try{var g=f.transaction([FS.DB_STORE_NAME],"readonly")}catch(h){return void c(h)}var i=g.objectStore(FS.DB_STORE_NAME),j=0,k=0,l=a.length;a.forEach(function(a){var b=i.get(a);b.onsuccess=function(){FS.analyzePath(a).exists&&FS.unlink(a),FS.createDataFile(PATH.dirname(a),PATH.basename(a),b.result,!0,!0,!0),j++,j+k==l&&d()},b.onerror=function(){k++,j+k==l&&d()}}),g.onerror=c},e.onerror=c}},SOCKFS={"mount":function(a){return Module.websocket=Module.websocket&&"object"==typeof Module.websocket?Module.websocket:{},Module.websocket._callbacks={},Module.websocket.on=function(a,b){return"function"==typeof b&&(this._callbacks[a]=b),this},Module.websocket.emit=function(a,b){"function"==typeof this._callbacks[a]&&this._callbacks[a].call(this,b)},FS.createNode(null,"/",16895,0)},"createSocket":function(a,b,c){var d=1==b;c&&assert(d==(6==c));var e={"family":a,"type":b,"protocol":c,"server":null,"error":null,"peers":{},"pending":[],"recv_queue":[],"sock_ops":SOCKFS.websocket_sock_ops},f=SOCKFS.nextname(),g=FS.createNode(SOCKFS.root,f,49152,0);g.sock=e;var h=FS.createStream({"path":f,"node":g,"flags":FS.modeStringToFlags("r+"),"seekable":!1,"stream_ops":SOCKFS.stream_ops});return e.stream=h,e},"getSocket":function(a){var b=FS.getStream(a);return b&&FS.isSocket(b.node.mode)?b.node.sock:null},"stream_ops":{"poll":function(a){var b=a.node.sock;return b.sock_ops.poll(b)},"ioctl":function(a,b,c){var d=a.node.sock;return d.sock_ops.ioctl(d,b,c)},"read":function(a,b,c,d,e){var f=a.node.sock,g=f.sock_ops.recvmsg(f,d);return g?(b.set(g.buffer,c),g.buffer.length):0},"write":function(a,b,c,d,e){var f=a.node.sock;return f.sock_ops.sendmsg(f,b,c,d)},"close":function(a){var b=a.node.sock;b.sock_ops.close(b)}},"nextname":function(){return SOCKFS.nextname.current||(SOCKFS.nextname.current=0),"socket["+SOCKFS.nextname.current++ +"]"},"websocket_sock_ops":{"createPeer":function(a,b,c){var d;if("object"==typeof b&&(d=b,b=null,c=null),d)if(d._socket)b=d._socket.remoteAddress,c=d._socket.remotePort;else{var e=/ws[s]?:\/\/([^:]+):(\d+)/.exec(d.url);if(!e)throw new Error("WebSocket URL must be in the format ws(s)://address:port");b=e[1],c=parseInt(e[2],10)}else try{var f=Module.websocket&&"object"==typeof Module.websocket,g="ws:#".replace("#","//");if(f&&"string"==typeof Module.websocket.url&&(g=Module.websocket.url),"ws://"===g||"wss://"===g){var h=b.split("/");g=g+h[0]+":"+c+"/"+h.slice(1).join("/")}var i="binary";f&&"string"==typeof Module.websocket.subprotocol&&(i=Module.websocket.subprotocol),i=i.replace(/^ +| +$/g,"").split(/ *, */);var j=ENVIRONMENT_IS_NODE?{"protocol":i.toString()}:i,k=ENVIRONMENT_IS_NODE?require("ws"):window.WebSocket;d=new k(g,j),d.binaryType="arraybuffer"}catch(l){throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH)}var m={"addr":b,"port":c,"socket":d,"dgram_send_queue":[]};return SOCKFS.websocket_sock_ops.addPeer(a,m),SOCKFS.websocket_sock_ops.handlePeerEvents(a,m),2===a.type&&"undefined"!=typeof a.sport&&m.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(65280&a.sport)>>8,255&a.sport])),m},"getPeer":function(a,b,c){return a.peers[b+":"+c]},"addPeer":function(a,b){a.peers[b.addr+":"+b.port]=b},"removePeer":function(a,b){delete a.peers[b.addr+":"+b.port]},"handlePeerEvents":function(a,b){function c(c){assert("string"!=typeof c&&void 0!==c.byteLength),c=new Uint8Array(c);var e=d;if(d=!1,e&&10===c.length&&255===c[0]&&255===c[1]&&255===c[2]&&255===c[3]&&c[4]==="p".charCodeAt(0)&&c[5]==="o".charCodeAt(0)&&c[6]==="r".charCodeAt(0)&&c[7]==="t".charCodeAt(0)){var f=c[8]<<8|c[9];return SOCKFS.websocket_sock_ops.removePeer(a,b),b.port=f,void SOCKFS.websocket_sock_ops.addPeer(a,b)}a.recv_queue.push({"addr":b.addr,"port":b.port,"data":c}),Module.websocket.emit("message",a.stream.fd)}var d=!0,e=function(){Module.websocket.emit("open",a.stream.fd);try{for(var c=b.dgram_send_queue.shift();c;)b.socket.send(c),c=b.dgram_send_queue.shift()}catch(d){b.socket.close()}};ENVIRONMENT_IS_NODE?(b.socket.on("open",e),b.socket.on("message",function(a,b){b.binary&&c(new Uint8Array(a).buffer)}),b.socket.on("close",function(){Module.websocket.emit("close",a.stream.fd)}),b.socket.on("error",function(b){a.error=ERRNO_CODES.ECONNREFUSED,Module.websocket.emit("error",[a.stream.fd,a.error,"ECONNREFUSED: Connection refused"])})):(b.socket.onopen=e,b.socket.onclose=function(){Module.websocket.emit("close",a.stream.fd)},b.socket.onmessage=function(a){c(a.data)},b.socket.onerror=function(b){a.error=ERRNO_CODES.ECONNREFUSED,Module.websocket.emit("error",[a.stream.fd,a.error,"ECONNREFUSED: Connection refused"])})},"poll":function(a){if(1===a.type&&a.server)return a.pending.length?65:0;var b=0,c=1===a.type?SOCKFS.websocket_sock_ops.getPeer(a,a.daddr,a.dport):null;return(a.recv_queue.length||!c||c&&c.socket.readyState===c.socket.CLOSING||c&&c.socket.readyState===c.socket.CLOSED)&&(b|=65),(!c||c&&c.socket.readyState===c.socket.OPEN)&&(b|=4),(c&&c.socket.readyState===c.socket.CLOSING||c&&c.socket.readyState===c.socket.CLOSED)&&(b|=16),b},"ioctl":function(a,b,c){switch(b){case 21531:var d=0;return a.recv_queue.length&&(d=a.recv_queue[0].data.length),HEAP32[c>>2]=d,0;default:return ERRNO_CODES.EINVAL}},"close":function(a){if(a.server){try{a.server.close()}catch(b){}a.server=null}for(var c=Object.keys(a.peers),d=0;d<c.length;d++){var e=a.peers[c[d]];try{e.socket.close()}catch(b){}SOCKFS.websocket_sock_ops.removePeer(a,e)}return 0},"bind":function(a,b,c){if("undefined"!=typeof a.saddr||"undefined"!=typeof a.sport)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(a.saddr=b,a.sport=c||_mkport(),2===a.type){a.server&&(a.server.close(),a.server=null);try{a.sock_ops.listen(a,0)}catch(d){if(!(d instanceof FS.ErrnoError))throw d;if(d.errno!==ERRNO_CODES.EOPNOTSUPP)throw d}}},"connect":function(a,b,c){if(a.server)throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);if("undefined"!=typeof a.daddr&&"undefined"!=typeof a.dport){var d=SOCKFS.websocket_sock_ops.getPeer(a,a.daddr,a.dport);if(d)throw d.socket.readyState===d.socket.CONNECTING?new FS.ErrnoError(ERRNO_CODES.EALREADY):new FS.ErrnoError(ERRNO_CODES.EISCONN)}var e=SOCKFS.websocket_sock_ops.createPeer(a,b,c);throw a.daddr=e.addr,a.dport=e.port,new FS.ErrnoError(ERRNO_CODES.EINPROGRESS)},"listen":function(a,b){if(!ENVIRONMENT_IS_NODE)throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);if(a.server)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var c=require("ws").Server,d=a.saddr;a.server=new c({"host":d,"port":a.sport}),Module.websocket.emit("listen",a.stream.fd),a.server.on("connection",function(b){if(1===a.type){var c=SOCKFS.createSocket(a.family,a.type,a.protocol),d=SOCKFS.websocket_sock_ops.createPeer(c,b);c.daddr=d.addr,c.dport=d.port,a.pending.push(c),Module.websocket.emit("connection",c.stream.fd)}else SOCKFS.websocket_sock_ops.createPeer(a,b),Module.websocket.emit("connection",a.stream.fd)}),a.server.on("closed",function(){Module.websocket.emit("close",a.stream.fd),a.server=null}),a.server.on("error",function(b){a.error=ERRNO_CODES.EHOSTUNREACH,Module.websocket.emit("error",[a.stream.fd,a.error,"EHOSTUNREACH: Host is unreachable"])})},"accept":function(a){if(!a.server)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var b=a.pending.shift();return b.stream.flags=a.stream.flags,b},"getname":function(a,b){var c,d;if(b){if(void 0===a.daddr||void 0===a.dport)throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);c=a.daddr,d=a.dport}else c=a.saddr||0,d=a.sport||0;return{"addr":c,"port":d}},"sendmsg":function(a,b,c,d,e,f){if(2===a.type){if((void 0===e||void 0===f)&&(e=a.daddr,f=a.dport),void 0===e||void 0===f)throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ)}else e=a.daddr,f=a.dport;var g=SOCKFS.websocket_sock_ops.getPeer(a,e,f);if(1===a.type){if(!g||g.socket.readyState===g.socket.CLOSING||g.socket.readyState===g.socket.CLOSED)throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);if(g.socket.readyState===g.socket.CONNECTING)throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}var h;if(h=b instanceof Array||b instanceof ArrayBuffer?b.slice(c,c+d):b.buffer.slice(b.byteOffset+c,b.byteOffset+c+d),2===a.type&&(!g||g.socket.readyState!==g.socket.OPEN))return g&&g.socket.readyState!==g.socket.CLOSING&&g.socket.readyState!==g.socket.CLOSED||(g=SOCKFS.websocket_sock_ops.createPeer(a,e,f)),g.dgram_send_queue.push(h),d;try{return g.socket.send(h),d}catch(i){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}},"recvmsg":function(a,b){if(1===a.type&&a.server)throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);var c=a.recv_queue.shift();if(!c){if(1===a.type){var d=SOCKFS.websocket_sock_ops.getPeer(a,a.daddr,a.dport);if(d){if(d.socket.readyState===d.socket.CLOSING||d.socket.readyState===d.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 e=c.data.byteLength||c.data.length,f=c.data.byteOffset||0,g=c.data.buffer||c.data,h=Math.min(b,e),i={"buffer":new Uint8Array(g,f,h),"addr":c.addr,"port":c.port};if(1===a.type&&e>h){var j=e-h;c.data=new Uint8Array(g,f+h,j),a.recv_queue.unshift(c)}return i}}};Module._i64Subtract=_i64Subtract;var _llvm_ctlz_i32=!0;Module._memset=_memset,Module._bitshift64Lshr=_bitshift64Lshr,Module._bitshift64Shl=_bitshift64Shl,Module._strlen=_strlen,Module._memcpy=_memcpy,Module._i64Add=_i64Add,Module._memmove=_memmove;var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);Module._llvm_cttz_i32=_llvm_cttz_i32;var _emscripten_asm_const_int=!0,Browser={"mainLoop":{"scheduler":null,"method":"","currentlyRunningMainloop":0,"func":null,"arg":0,"timingMode":0,"timingValue":0,"currentFrameNumber":0,"queue":[],"pause":function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},"resume":function(){Browser.mainLoop.currentlyRunningMainloop++;var a=Browser.mainLoop.timingMode,b=Browser.mainLoop.timingValue,c=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(c,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(a,b),Browser.mainLoop.scheduler()},"updateStatus":function(){if(Module.setStatus){var a=Module.statusMessage||"Please wait...",b=Browser.mainLoop.remainingBlockers,c=Browser.mainLoop.expectedBlockers;b?c>b?Module.setStatus(a+" ("+(c-b)+"/"+c+")"):Module.setStatus(a):Module.setStatus("")}},"runIter":function(a){if(!ABORT){if(Module.preMainLoop){var b=Module.preMainLoop();if(b===!1)return}try{a()}catch(c){if(c instanceof ExitStatus)return;throw c&&"object"==typeof c&&c.stack&&Module.printErr("exception thrown: "+[c,c.stack]),c}Module.postMainLoop&&Module.postMainLoop()}}},"isFullScreen":!1,"pointerLock":!1,"moduleContextCreatedCallbacks":[],"workers":[],"init":function(){function a(){Browser.pointerLock=document.pointerLockElement===e||document.mozPointerLockElement===e||document.webkitPointerLockElement===e||document.msPointerLockElement===e}if(Module.preloadPlugins||(Module.preloadPlugins=[]),!Browser.initted){Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch(b){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||"undefined"!=typeof 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 c={};c.canHandle=function(a){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},c.handle=function(a,b,c,d){var e=null;if(Browser.hasBlobConstructor)try{e=new Blob([a],{"type":Browser.getMimetype(b)}),e.size!==a.length&&(e=new Blob([new Uint8Array(a).buffer],{"type":Browser.getMimetype(b)}))}catch(f){Runtime.warnOnce("Blob constructor present but fails: "+f+"; falling back to blob builder")}if(!e){var g=new Browser.BlobBuilder;g.append(new Uint8Array(a).buffer),e=g.getBlob()}var h=Browser.URLObject.createObjectURL(e),i=new Image;i.onload=function(){assert(i.complete,"Image "+b+" could not be decoded");var d=document.createElement("canvas");d.width=i.width,d.height=i.height;var e=d.getContext("2d");e.drawImage(i,0,0),Module.preloadedImages[b]=d,Browser.URLObject.revokeObjectURL(h),c&&c(a)},i.onerror=function(a){console.log("Image "+h+" could not be decoded"),d&&d()},i.src=h},Module.preloadPlugins.push(c);var d={};d.canHandle=function(a){return!Module.noAudioDecoding&&a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},d.handle=function(a,b,c,d){function e(d){g||(g=!0,Module.preloadedAudios[b]=d,c&&c(a))}function f(){g||(g=!0,Module.preloadedAudios[b]=new Audio,d&&d())}var g=!1;if(!Browser.hasBlobConstructor)return f();try{var h=new Blob([a],{"type":Browser.getMimetype(b)})}catch(i){return f()}var j=Browser.URLObject.createObjectURL(h),k=new Audio;k.addEventListener("canplaythrough",function(){e(k)},!1),k.onerror=function(c){function d(a){for(var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c="=",d="",e=0,f=0,g=0;g<a.length;g++)for(e=e<<8|a[g],f+=8;f>=6;){var h=e>>f-6&63;f-=6,d+=b[h]}return 2==f?(d+=b[(3&e)<<4],d+=c+c):4==f&&(d+=b[(15&e)<<2],d+=c),d}g||(console.log("warning: browser could not fully decode audio "+b+", trying slower base64 approach"),k.src="data:audio/x-"+b.substr(-3)+";base64,"+d(a),e(k))},k.src=j,Browser.safeSetTimeout(function(){e(k)},1e4)},Module.preloadPlugins.push(d);var e=Module.canvas;e&&(e.requestPointerLock=e.requestPointerLock||e.mozRequestPointerLock||e.webkitRequestPointerLock||e.msRequestPointerLock||function(){},e.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},e.exitPointerLock=e.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",a,!1),document.addEventListener("mozpointerlockchange",a,!1),document.addEventListener("webkitpointerlockchange",a,!1),document.addEventListener("mspointerlockchange",a,!1),Module.elementPointerLock&&e.addEventListener("click",function(a){!Browser.pointerLock&&e.requestPointerLock&&(e.requestPointerLock(),a.preventDefault())},!1))}},"createContext":function(a,b,c,d){if(b&&Module.ctx&&a==Module.canvas)return Module.ctx;var e,f;if(b){var g={"antialias":!1,"alpha":!1};if(d)for(var h in d)g[h]=d[h];f=GL.createContext(a,g),f&&(e=GL.getContext(f).GLctx),a.style.backgroundColor="black"}else e=a.getContext("2d");return e?(c&&(b||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=e,b&&GL.makeContextCurrent(f),Module.useWebGL=b,Browser.moduleContextCreatedCallbacks.forEach(function(a){a()}),Browser.init()),e):null},"destroyContext":function(a,b,c){},"fullScreenHandlersInstalled":!1,"lockPointer":void 0,"resizeCanvas":void 0,"requestFullScreen":function(a,b,c){function d(){Browser.isFullScreen=!1;var a=e.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===a?(e.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},e.cancelFullScreen=e.cancelFullScreen.bind(document),Browser.lockPointer&&e.requestPointerLock(),Browser.isFullScreen=!0,Browser.resizeCanvas&&Browser.setFullScreenCanvasSize()):(a.parentNode.insertBefore(e,a),a.parentNode.removeChild(a),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullScreen),Browser.updateCanvasDimensions(e)}Browser.lockPointer=a,Browser.resizeCanvas=b,Browser.vrDevice=c,"undefined"==typeof Browser.lockPointer&&(Browser.lockPointer=!0),"undefined"==typeof Browser.resizeCanvas&&(Browser.resizeCanvas=!1),"undefined"==typeof Browser.vrDevice&&(Browser.vrDevice=null);var e=Module.canvas;Browser.fullScreenHandlersInstalled||(Browser.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",d,!1),document.addEventListener("mozfullscreenchange",d,!1),document.addEventListener("webkitfullscreenchange",d,!1),document.addEventListener("MSFullscreenChange",d,!1));var f=document.createElement("div");e.parentNode.insertBefore(f,e),f.appendChild(e),f.requestFullScreen=f.requestFullScreen||f.mozRequestFullScreen||f.msRequestFullscreen||(f.webkitRequestFullScreen?function(){f.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),c?f.requestFullScreen({"vrDisplay":c}):f.requestFullScreen()},"nextRAF":0,"fakeRequestAnimationFrame":function(a){var b=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=b+1e3/60;else for(;b+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var c=Math.max(Browser.nextRAF-b,0);setTimeout(a,c)},"requestAnimationFrame":function(a){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(a):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(a))},"safeCallback":function(a){return function(){return ABORT?void 0:a.apply(null,arguments)}},"allowAsyncCallbacks":!0,"queuedAsyncCallbacks":[],"pauseAsyncCallbacks":function(){Browser.allowAsyncCallbacks=!1},"resumeAsyncCallbacks":function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var a=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],a.forEach(function(a){a()})}},"safeRequestAnimationFrame":function(a){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?a():Browser.queuedAsyncCallbacks.push(a))})},"safeSetTimeout":function(a,b){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?a():Browser.queuedAsyncCallbacks.push(a))},b)},"safeSetInterval":function(a,b){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&a()},b)},"getMimetype":function(a){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]},"getUserMedia":function(a){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(a)},"getMovementX":function(a){return a.movementX||a.mozMovementX||a.webkitMovementX||0},"getMovementY":function(a){return a.movementY||a.mozMovementY||a.webkitMovementY||0},"getMouseWheelDelta":function(a){var b=0;switch(a.type){case"DOMMouseScroll":b=a.detail;break;case"mousewheel":b=a.wheelDelta;break;case"wheel":b=a.deltaY;break;default:throw"unrecognized mouse wheel event: "+a.type}return b},"mouseX":0,"mouseY":0,"mouseMovementX":0,"mouseMovementY":0,"touches":{},"lastTouches":{},"calculateMouseEvent":function(a){if(Browser.pointerLock)"mousemove"!=a.type&&"mozMovementX"in a?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(a),Browser.mouseMovementY=Browser.getMovementY(a)),"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 b=Module.canvas.getBoundingClientRect(),c=Module.canvas.width,d=Module.canvas.height,e="undefined"!=typeof window.scrollX?window.scrollX:window.pageXOffset,f="undefined"!=typeof window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===a.type||"touchend"===a.type||"touchmove"===a.type){var g=a.touch;if(void 0===g)return;var h=g.pageX-(e+b.left),i=g.pageY-(f+b.top);h*=c/b.width,i*=d/b.height;var j={"x":h,"y":i};if("touchstart"===a.type)Browser.lastTouches[g.identifier]=j,Browser.touches[g.identifier]=j;else if("touchend"===a.type||"touchmove"===a.type){var k=Browser.touches[g.identifier];k||(k=j),Browser.lastTouches[g.identifier]=k,Browser.touches[g.identifier]=j}return}var l=a.pageX-(e+b.left),m=a.pageY-(f+b.top);l*=c/b.width,m*=d/b.height,Browser.mouseMovementX=l-Browser.mouseX,Browser.mouseMovementY=m-Browser.mouseY,Browser.mouseX=l,Browser.mouseY=m}},"xhrLoad":function(a,b,c){var d=new XMLHttpRequest;d.open("GET",a,!0),d.responseType="arraybuffer",d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()},d.onerror=c,d.send(null)},"asyncLoad":function(a,b,c,d){Browser.xhrLoad(a,function(c){assert(c,'Loading data file "'+a+'" failed (no arrayBuffer).'),b(new Uint8Array(c)),d||removeRunDependency("al "+a)},function(b){if(!c)throw'Loading data file "'+a+'" failed.';c()}),d||addRunDependency("al "+a)},"resizeListeners":[],"updateResizeListeners":function(){var a=Module.canvas;Browser.resizeListeners.forEach(function(b){b(a.width,a.height)})},"setCanvasSize":function(a,b,c){var d=Module.canvas;Browser.updateCanvasDimensions(d,a,b),c||Browser.updateResizeListeners()},"windowedWidth":0,"windowedHeight":0,"setFullScreenCanvasSize":function(){if("undefined"!=typeof SDL){var a=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];a=8388608|a,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=a}Browser.updateResizeListeners()},"setWindowedCanvasSize":function(){if("undefined"!=typeof SDL){var a=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];a=-8388609&a,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=a}Browser.updateResizeListeners()},"updateCanvasDimensions":function(a,b,c){b&&c?(a.widthNative=b,a.heightNative=c):(b=a.widthNative,c=a.heightNative);var d=b,e=c;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(d/e<Module.forcedAspectRatio?d=Math.round(e*Module.forcedAspectRatio):e=Math.round(d/Module.forcedAspectRatio)),(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===a.parentNode&&"undefined"!=typeof screen){var f=Math.min(screen.width/d,screen.height/e);d=Math.round(d*f),e=Math.round(e*f)}Browser.resizeCanvas?(a.width!=d&&(a.width=d),a.height!=e&&(a.height=e),"undefined"!=typeof a.style&&(a.style.removeProperty("width"),a.style.removeProperty("height"))):(a.width!=b&&(a.width=b),a.height!=c&&(a.height=c),"undefined"!=typeof a.style&&(d!=b||e!=c?(a.style.setProperty("width",d+"px","important"),a.style.setProperty("height",e+"px","important")):(a.style.removeProperty("width"),a.style.removeProperty("height"))))},"wgetRequests":{},"nextWgetRequestHandle":0,"getNextWgetRequestHandle":function(){var a=Browser.nextWgetRequestHandle;return Browser.nextWgetRequestHandle++,a}};if(FS.staticInit(),__ATINIT__.unshift(function(){Module.noFSInit||FS.init.initialized||FS.init()}),__ATMAIN__.push(function(){FS.ignorePermissions=!1}),__ATEXIT__.push(function(){FS.quit()}),Module.FS_createFolder=FS.createFolder,Module.FS_createPath=FS.createPath,Module.FS_createDataFile=FS.createDataFile,Module.FS_createPreloadedFile=FS.createPreloadedFile,Module.FS_createLazyFile=FS.createLazyFile,Module.FS_createLink=FS.createLink,Module.FS_createDevice=FS.createDevice,___errno_state=Runtime.staticAlloc(4),HEAP32[___errno_state>>2]=0,__ATINIT__.unshift(function(){TTY.init()}),__ATEXIT__.push(function(){TTY.shutdown()}),ENVIRONMENT_IS_NODE){var fs=require("fs"),NODEJS_PATH=require("path");NODEFS.staticInit()}__ATINIT__.push(function(){SOCKFS.root=FS.mount(SOCKFS,{},null)}),Module.requestFullScreen=function(a,b,c){Browser.requestFullScreen(a,b,c)},Module.requestAnimationFrame=function(a){Browser.requestAnimationFrame(a)},Module.setCanvasSize=function(a,b,c){Browser.setCanvasSize(a,b,c)},Module.pauseMainLoop=function(){Browser.mainLoop.pause()},Module.resumeMainLoop=function(){Browser.mainLoop.resume()},Module.getUserMedia=function(){Browser.getUserMedia()},Module.createContext=function(a,b,c,d){return Browser.createContext(a,b,c,d)},STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX),assert(TOTAL_MEMORY>DYNAMIC_BASE,"TOTAL_MEMORY not big enough for stack"),Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,
"Infinity":1/0},Module.asmLibraryArg={"abort":abort,"assert":assert,"invoke_iiii":invoke_iiii,"invoke_iiiiiiiiii":invoke_iiiiiiiiii,"invoke_vii":invoke_vii,"invoke_ii":invoke_ii,"invoke_viii":invoke_viii,"invoke_iiiii":invoke_iiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"_send":_send,"_fread":_fread,"_lseek":_lseek,"__reallyNegative":__reallyNegative,"_emscripten_set_main_loop_timing":_emscripten_set_main_loop_timing,"_write":_write,"_fflush":_fflush,"_pwrite":_pwrite,"_strerror_r":_strerror_r,"_open":_open,"_sbrk":_sbrk,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_fileno":_fileno,"_sysconf":_sysconf,"_close":_close,"_ferror":_ferror,"_fseek":_fseek,"_pread":_pread,"_mkport":_mkport,"_fclose":_fclose,"_feof":_feof,"_ftell":_ftell,"___errno_location":___errno_location,"_recv":_recv,"_read":_read,"_emscripten_set_main_loop":_emscripten_set_main_loop,"_abort":_abort,"_fwrite":_fwrite,"_time":_time,"_fprintf":_fprintf,"_strerror":_strerror,"__formatString":__formatString,"_fopen":_fopen,"_emscripten_asm_const_2":_emscripten_asm_const_2,"___setErrNo":___setErrNo,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8,"_stderr":_stderr};var asm=function(a,b,c){"use asm";var d=new a.Int8Array(c);var e=new a.Int16Array(c);var f=new a.Int32Array(c);var g=new a.Uint8Array(c);var h=new a.Uint16Array(c);var i=new a.Uint32Array(c);var j=new a.Float32Array(c);var k=new a.Float64Array(c);var l=b.STACKTOP|0;var m=b.STACK_MAX|0;var n=b.tempDoublePtr|0;var o=b.ABORT|0;var p=b.cttz_i8|0;var q=b._stderr|0;var r=0;var s=0;var t=0;var u=0;var v=a.NaN,w=a.Infinity;var x=0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0.0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=0;var N=0;var O=0;var P=0;var Q=a.Math.floor;var R=a.Math.abs;var S=a.Math.sqrt;var T=a.Math.pow;var U=a.Math.cos;var V=a.Math.sin;var W=a.Math.tan;var X=a.Math.acos;var Y=a.Math.asin;var Z=a.Math.atan;var $=a.Math.atan2;var _=a.Math.exp;var aa=a.Math.log;var ba=a.Math.ceil;var ca=a.Math.imul;var da=a.Math.min;var ea=a.Math.clz32;var fa=b.abort;var ga=b.assert;var ha=b.invoke_iiii;var ia=b.invoke_iiiiiiiiii;var ja=b.invoke_vii;var ka=b.invoke_ii;var la=b.invoke_viii;var ma=b.invoke_iiiii;var na=b.invoke_iii;var oa=b.invoke_iiiiii;var pa=b._send;var qa=b._fread;var ra=b._lseek;var sa=b.__reallyNegative;var ta=b._emscripten_set_main_loop_timing;var ua=b._write;var va=b._fflush;var wa=b._pwrite;var xa=b._strerror_r;var ya=b._open;var za=b._sbrk;var Aa=b._emscripten_memcpy_big;var Ba=b._fileno;var Ca=b._sysconf;var Da=b._close;var Ea=b._ferror;var Fa=b._fseek;var Ga=b._pread;var Ha=b._mkport;var Ia=b._fclose;var Ja=b._feof;var Ka=b._ftell;var La=b.___errno_location;var Ma=b._recv;var Na=b._read;var Oa=b._emscripten_set_main_loop;var Pa=b._abort;var Qa=b._fwrite;var Ra=b._time;var Sa=b._fprintf;var Ta=b._strerror;var Ua=b.__formatString;var Va=b._fopen;var Wa=b._emscripten_asm_const_2;var Xa=b.___setErrNo;var Ya=0.0;function Za(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function $a(){return l|0}function _a(a){a=a|0;l=a}function ab(a,b){a=a|0;b=b|0;l=a;m=b}function bb(a,b){a=a|0;b=b|0;if(!r){r=a;s=b}}function cb(a){a=a|0;d[n>>0]=d[a>>0];d[n+1>>0]=d[a+1>>0];d[n+2>>0]=d[a+2>>0];d[n+3>>0]=d[a+3>>0]}function db(a){a=a|0;d[n>>0]=d[a>>0];d[n+1>>0]=d[a+1>>0];d[n+2>>0]=d[a+2>>0];d[n+3>>0]=d[a+3>>0];d[n+4>>0]=d[a+4>>0];d[n+5>>0]=d[a+5>>0];d[n+6>>0]=d[a+6>>0];d[n+7>>0]=d[a+7>>0]}function eb(a){a=a|0;G=a}function fb(){return G|0}function gb(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+2208|0;s=y+1168|0;p=y+1160|0;o=y+1152|0;m=y+1144|0;u=y+1136|0;t=y+1128|0;r=y+1120|0;k=y+1112|0;w=y+1184|0;v=y+88|0;x=y;if((d[f[b+4>>2]>>0]|0)!=49){i=x;h=i+88|0;do{f[i>>2]=0;i=i+4|0}while((i|0)<(h|0));e=Db(x,-1,-1,8)|0;do if((e|0)==8){c=464;n=30}else if((e|0)==5){c=168;n=30}else if(!e){m=Va(552,272)|0;k=Va(576,304)|0;if(m){f[x>>2]=0;j=x+4|0;f[j>>2]=0;a=x+16|0;f[a>>2]=v;b=x+20|0;f[b>>2]=1024;Fa(m|0,0,2)|0;i=Ka(m|0)|0;Fa(m|0,0,0)|0;e=0;while(1){if((f[j>>2]|0)==0?(Ja(m|0)|0)==0:0){f[x>>2]=w;f[j>>2]=qa(w|0,1,1024,m|0)|0;Wa(0,Ka(m|0)|0,i|0)|0;if(Ea(m|0)|0){n=36;break}h=(Ja(m|0)|0)==0;e=h?e:3}g=pb(x,e)|0;c=f[b>>2]|0;h=(g|0)==1;if(h|(c|0)==0){c=1024-c|0;if((Qa(v|0,1,c|0,k|0)|0)!=(c|0)){n=40;break}f[a>>2]=v;f[b>>2]=1024}if(g){n=43;break}}if((n|0)==36){m=f[q>>2]|0;k=Ta(f[(La()|0)>>2]|0)|0;f[o>>2]=552;f[o+4>>2]=k;Sa(m|0,600,o|0)|0}else if((n|0)==40){m=f[q>>2]|0;f[p>>2]=Ta(f[(La()|0)>>2]|0)|0;Sa(m|0,368,p|0)|0}else if((n|0)==43){if(h){qb(x);Ia(m|0)|0;Ia(k|0)|0;break}switch(g|0){case 7:{c=744;break}case 8:{c=712;break}case 9:{c=680;break}case 10:{c=624;break}case 5:{c=168;break}default:c=48}m=f[q>>2]|0;f[s>>2]=552;f[s+4>>2]=c;f[s+8>>2]=g;Sa(m|0,784,s|0)|0}}}else{c=48;n=30}while(0);if((n|0)==30){k=f[q>>2]|0;f[m>>2]=c;f[m+4>>2]=e;Sa(k|0,496,m|0)|0}}else{i=x;h=i+88|0;do{f[i>>2]=0;i=i+4|0}while((i|0)<(h|0));if((a|0)==4?(j=d[f[b+8>>2]>>0]|0,(j+-48&255)<=9):0){c=(j<<24>>24)+-48|0;c=(d[f[b+12>>2]>>0]|0)==49?c|-2147483648:c}else c=6;do if(!((ac(w,c)|0)<<24>>24)){e=v;f[e>>2]=4;f[e+4>>2]=0;f[v+8>>2]=0;e=v+16|0;f[e>>2]=33;f[e+4>>2]=0;f[v+24>>2]=w;e=v+32|0;f[e>>2]=-1;f[e+4>>2]=-1;f[v+40>>2]=0;e=rb(x,v,1)|0;if((e|0)==8)c=128;else if((e|0)==3)c=80;else if(!e){k=Va(256,272)|0;m=Va(280,304)|0;f[x>>2]=0;g=x+4|0;f[g>>2]=0;h=x+16|0;f[h>>2]=v;i=x+20|0;f[i>>2]=1024;Fa(k|0,0,2)|0;b=Ka(k|0)|0;Fa(k|0,0,0)|0;e=0;while(1){if((f[g>>2]|0)==0?(Ja(k|0)|0)==0:0){f[x>>2]=w;f[g>>2]=qa(w|0,1,1024,k|0)|0;Wa(0,Ka(k|0)|0,b|0)|0;if(Ea(k|0)|0){n=16;break}j=(Ja(k|0)|0)==0;e=j?e:3}a=pb(x,e)|0;c=f[i>>2]|0;j=(a|0)==1;if(j|(c|0)==0){c=1024-c|0;if((Qa(v|0,1,c|0,m|0)|0)!=(c|0)){n=20;break}f[h>>2]=v;f[i>>2]=1024}if(a){n=23;break}}if((n|0)==16){j=f[q>>2]|0;f[r>>2]=Ta(f[(La()|0)>>2]|0)|0;Sa(j|0,352,r|0)|0}else if((n|0)==20){j=f[q>>2]|0;f[t>>2]=Ta(f[(La()|0)>>2]|0)|0;Sa(j|0,368,t|0)|0}else if((n|0)==23?!j:0){j=f[q>>2]|0;f[u>>2]=(a|0)==5?168:(a|0)==9?392:48;f[u+4>>2]=a;Sa(j|0,424,u|0)|0}qb(x);Ia(k|0)|0;Ia(m|0)|0;break}else if((e|0)==5)c=168;else c=48;m=f[q>>2]|0;f[k>>2]=c;f[k+4>>2]=e;Sa(m|0,200,k|0)|0}else Qa(8,35,1,f[q>>2]|0)|0;while(0)}l=y;return 0}function hb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=l;l=l+16|0;c=g+8|0;d=g+4|0;e=g;f[c>>2]=a;f[d>>2]=b;if(!(f[c>>2]|0))f[c>>2]=1;if((f[d>>2]|0)!=0?(f[f[d>>2]>>2]|0)!=0:0){f[e>>2]=Ih[f[f[d>>2]>>2]&31](f[(f[d>>2]|0)+8>>2]|0,1,f[c>>2]|0)|0;c=f[e>>2]|0;l=g;return c|0}f[e>>2]=Zg(f[c>>2]|0)|0;c=f[e>>2]|0;l=g;return c|0}function ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=l;l=l+16|0;c=g+8|0;d=g+4|0;e=g;f[c>>2]=a;f[d>>2]=b;if(!(f[c>>2]|0))f[c>>2]=1;if((f[d>>2]|0)!=0?(f[f[d>>2]>>2]|0)!=0:0){f[e>>2]=Ih[f[f[d>>2]>>2]&31](f[(f[d>>2]|0)+8>>2]|0,1,f[c>>2]|0)|0;if(!(f[e>>2]|0)){c=f[e>>2]|0;l=g;return c|0}ch(f[e>>2]|0,0,f[c>>2]|0)|0;c=f[e>>2]|0;l=g;return c|0}f[e>>2]=_g(1,f[c>>2]|0)|0;c=f[e>>2]|0;l=g;return c|0}function jb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=l;l=l+16|0;c=e+4|0;d=e;f[c>>2]=a;f[d>>2]=b;if((f[d>>2]|0)!=0?(f[(f[d>>2]|0)+4>>2]|0)!=0:0){Kh[f[(f[d>>2]|0)+4>>2]&31](f[(f[d>>2]|0)+8>>2]|0,f[c>>2]|0);l=e;return}$g(f[c>>2]|0);l=e;return}function kb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+48|0;m=i+32|0;k=i+28|0;r=i+24|0;n=i+20|0;j=i+16|0;q=i+12|0;p=i+8|0;o=i+4|0;h=i;f[m>>2]=a;f[k>>2]=b;f[r>>2]=c;f[n>>2]=d;f[j>>2]=e;f[q>>2]=g;f[p>>2]=(f[r>>2]|0)-(f[f[k>>2]>>2]|0);f[o>>2]=(f[q>>2]|0)-(f[f[j>>2]>>2]|0);f[h>>2]=(f[p>>2]|0)>>>0<(f[o>>2]|0)>>>0?f[p>>2]|0:f[o>>2]|0;gh((f[n>>2]|0)+(f[f[j>>2]>>2]|0)|0,(f[m>>2]|0)+(f[f[k>>2]>>2]|0)|0,f[h>>2]|0)|0;a=f[k>>2]|0;f[a>>2]=(f[a>>2]|0)+(f[h>>2]|0);a=f[j>>2]|0;f[a>>2]=(f[a>>2]|0)+(f[h>>2]|0);l=i;return f[h>>2]|0}function lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;h=l;l=l+16|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;f[g>>2]=c;if((f[(f[g>>2]|0)+8>>2]|0)!=(f[(f[d>>2]|0)+16>>2]|0))mb(f[d>>2]|0,f[e>>2]|0);f[(f[d>>2]|0)+16>>2]=f[(f[g>>2]|0)+8>>2];a=f[g>>2]|0;c=f[a+4>>2]|0;b=(f[d>>2]|0)+8|0;f[b>>2]=f[a>>2];f[b+4>>2]=c;if(!(f[(f[g>>2]|0)+8>>2]|0)){d=0;l=h;return d|0}d=Ih[f[(f[g>>2]|0)+8>>2]&31](f[d>>2]|0,f[e>>2]|0,f[g>>2]|0)|0;l=h;return d|0}function mb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=l;l=l+64|0;d=g+52|0;e=g+48|0;c=g;f[d>>2]=a;f[e>>2]=b;if(!(f[(f[d>>2]|0)+16>>2]|0)){l=g;return}b=f[d>>2]|0;if(f[(f[d>>2]|0)+24>>2]|0)Kh[f[b+24>>2]&31](f[f[d>>2]>>2]|0,f[e>>2]|0);else jb(f[b>>2]|0,f[e>>2]|0);b=f[d>>2]|0;a=c;d=a+48|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(d|0));a=c+8|0;f[a>>2]=-1;f[a+4>>2]=-1;f[c+16>>2]=0;a=b;d=a+48|0;do{f[a>>2]=f[c>>2];a=a+4|0;c=c+4|0}while((a|0)<(d|0));l=g;return}function nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=l;l=l+16|0;d=i+12|0;e=i+8|0;g=i+4|0;h=i;f[e>>2]=a;f[g>>2]=b;f[h>>2]=c;a=f[h>>2]|0;b=(f[e>>2]|0)+8|0;if((f[a>>2]|0)!=(f[b>>2]|0)?1:(f[a+4>>2]|0)!=(f[b+4>>2]|0)){f[d>>2]=11;d=f[d>>2]|0;l=i;return d|0}b=f[h>>2]|0;if((f[b>>2]|0)==-1?(f[b+4>>2]|0)==-1:0){f[d>>2]=0;d=f[d>>2]|0;l=i;return d|0}else{f[d>>2]=Nh[f[(f[e>>2]|0)+40>>2]&15](f[f[e>>2]>>2]|0,f[g>>2]|0,0,f[h>>2]|0)|0;d=f[d>>2]|0;l=i;return d|0}return 0}function ob(a){a=a|0;var b=0,c=0,e=0,g=0,h=0,i=0;i=l;l=l+64|0;g=i+52|0;h=i+48|0;b=i;f[h>>2]=a;if(!(f[h>>2]|0)){f[g>>2]=11;a=f[g>>2]|0;l=i;return a|0}do if(!(f[(f[h>>2]|0)+36>>2]|0)){a=hb(64,f[(f[h>>2]|0)+32>>2]|0)|0;f[(f[h>>2]|0)+36>>2]=a;if(f[(f[h>>2]|0)+36>>2]|0){a=f[(f[h>>2]|0)+36>>2]|0;c=b;e=c+48|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(e|0));c=b+8|0;f[c>>2]=-1;f[c+4>>2]=-1;f[b+16>>2]=0;c=a;a=b;e=c+48|0;do{f[c>>2]=f[a>>2];c=c+4|0;a=a+4|0}while((c|0)<(e|0));break}f[g>>2]=5;a=f[g>>2]|0;l=i;return a|0}while(0);a=(f[(f[h>>2]|0)+36>>2]|0)+56|0;d[a>>0]=0;d[a+1>>0]=0;d[a+2>>0]=0;d[a+3>>0]=0;d[a+4>>0]=0;f[(f[(f[h>>2]|0)+36>>2]|0)+48>>2]=0;d[(f[(f[h>>2]|0)+36>>2]|0)+61>>0]=0;a=(f[h>>2]|0)+8|0;f[a>>2]=0;f[a+4>>2]=0;a=(f[h>>2]|0)+24|0;f[a>>2]=0;f[a+4>>2]=0;f[g>>2]=0;a=f[g>>2]|0;l=i;return a|0}function pb(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+20|0;g=m+16|0;c=m+12|0;h=m+8|0;i=m+4|0;j=m;f[g>>2]=a;f[c>>2]=b;if(!((f[f[g>>2]>>2]|0)==0?(f[(f[g>>2]|0)+4>>2]|0)!=0:0))k=3;do if((k|0)==3){if((f[(f[g>>2]|0)+16>>2]|0)==0?(f[(f[g>>2]|0)+20>>2]|0)!=0:0)break;if(((f[(f[g>>2]|0)+36>>2]|0)!=0?!((f[c>>2]|0)>>>0>4?1:(f[(f[(f[g>>2]|0)+36>>2]|0)+20>>2]|0)==0):0)?d[(f[(f[g>>2]|0)+36>>2]|0)+56+(f[c>>2]|0)>>0]&1:0){if((((((((((f[(f[g>>2]|0)+40>>2]|0)==0?(f[(f[g>>2]|0)+44>>2]|0)==0:0)?(f[(f[g>>2]|0)+48>>2]|0)==0:0)?(f[(f[g>>2]|0)+52>>2]|0)==0:0)?(b=(f[g>>2]|0)+56|0,!((f[b>>2]|0)!=0|(f[b+4>>2]|0)!=0)):0)?(b=(f[g>>2]|0)+64|0,!((f[b>>2]|0)!=0|(f[b+4>>2]|0)!=0)):0)?(f[(f[g>>2]|0)+72>>2]|0)==0:0)?(f[(f[g>>2]|0)+76>>2]|0)==0:0)?(f[(f[g>>2]|0)+80>>2]|0)==0:0)?(f[(f[g>>2]|0)+84>>2]|0)==0:0){a:do switch(f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]|0){case 0:{b=f[c>>2]|0;if((b|0)==1){f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]=1;break a}else if((b|0)==2){f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]=2;break a}else if((b|0)==3){f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]=3;break a}else if((b|0)==4){f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]=4;break a}else break a}case 3:{if((f[c>>2]|0)==3?(f[(f[(f[g>>2]|0)+36>>2]|0)+52>>2]|0)==(f[(f[g>>2]|0)+4>>2]|0):0)break a;f[e>>2]=11;b=f[e>>2]|0;l=m;return b|0}case 4:{if((f[c>>2]|0)==4?(f[(f[(f[g>>2]|0)+36>>2]|0)+52>>2]|0)==(f[(f[g>>2]|0)+4>>2]|0):0)break a;f[e>>2]=11;b=f[e>>2]|0;l=m;return b|0}case 5:{f[e>>2]=1;b=f[e>>2]|0;l=m;return b|0}case 1:{if((f[c>>2]|0)==1?(f[(f[(f[g>>2]|0)+36>>2]|0)+52>>2]|0)==(f[(f[g>>2]|0)+4>>2]|0):0)break a;f[e>>2]=11;b=f[e>>2]|0;l=m;return b|0}case 2:{if((f[c>>2]|0)==2?(f[(f[(f[g>>2]|0)+36>>2]|0)+52>>2]|0)==(f[(f[g>>2]|0)+4>>2]|0):0)break a;f[e>>2]=11;b=f[e>>2]|0;l=m;return b|0}default:{f[e>>2]=11;b=f[e>>2]|0;l=m;return b|0}}while(0);f[h>>2]=0;f[i>>2]=0;f[j>>2]=Jh[f[(f[(f[g>>2]|0)+36>>2]|0)+20>>2]&15](f[f[(f[g>>2]|0)+36>>2]>>2]|0,f[(f[g>>2]|0)+32>>2]|0,f[f[g>>2]>>2]|0,h,f[(f[g>>2]|0)+4>>2]|0,f[(f[g>>2]|0)+16>>2]|0,i,f[(f[g>>2]|0)+20>>2]|0,f[c>>2]|0)|0;b=f[g>>2]|0;f[b>>2]=(f[b>>2]|0)+(f[h>>2]|0);b=(f[g>>2]|0)+4|0;f[b>>2]=(f[b>>2]|0)-(f[h>>2]|0);b=(f[g>>2]|0)+8|0;a=b;a=hh(f[a>>2]|0,f[a+4>>2]|0,f[h>>2]|0,0)|0;f[b>>2]=a;f[b+4>>2]=G;b=(f[g>>2]|0)+16|0;f[b>>2]=(f[b>>2]|0)+(f[i>>2]|0);b=(f[g>>2]|0)+20|0;f[b>>2]=(f[b>>2]|0)-(f[i>>2]|0);b=(f[g>>2]|0)+24|0;a=b;a=hh(f[a>>2]|0,f[a+4>>2]|0,f[i>>2]|0,0)|0;f[b>>2]=a;f[b+4>>2]=G;f[(f[(f[g>>2]|0)+36>>2]|0)+52>>2]=f[(f[g>>2]|0)+4>>2];a:do switch(f[j>>2]|0){case 32:{d[(f[(f[g>>2]|0)+36>>2]|0)+61>>0]=0;f[j>>2]=0;break}case 1:{do if((f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]|0)!=1){if((f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]|0)==2)break;if((f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]|0)==4)break;f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]=5;k=52;break a}while(0);f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]=0;k=52;break}case 0:{b=(f[(f[g>>2]|0)+36>>2]|0)+61|0;if(!((f[i>>2]|0)==0&(f[h>>2]|0)==0)){d[b>>0]=0;break a}if(d[b>>0]&1){f[j>>2]=10;break a}else{d[(f[(f[g>>2]|0)+36>>2]|0)+61>>0]=1;break a}}case 6:case 4:case 3:case 2:{k=52;break}default:f[(f[(f[g>>2]|0)+36>>2]|0)+48>>2]=6}while(0);if((k|0)==52)d[(f[(f[g>>2]|0)+36>>2]|0)+61>>0]=0;f[e>>2]=f[j>>2];b=f[e>>2]|0;l=m;return b|0}f[e>>2]=8;b=f[e>>2]|0;l=m;return b|0}}while(0);f[e>>2]=11;b=f[e>>2]|0;l=m;return b|0}function qb(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;if(!(f[b>>2]|0)){l=c;return}if(!(f[(f[b>>2]|0)+36>>2]|0)){l=c;return}mb(f[(f[b>>2]|0)+36>>2]|0,f[(f[b>>2]|0)+32>>2]|0);jb(f[(f[b>>2]|0)+36>>2]|0,f[(f[b>>2]|0)+32>>2]|0);f[(f[b>>2]|0)+36>>2]=0;l=c;return}function rb(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;i=m+20|0;j=m+16|0;e=m+12|0;g=m+8|0;h=m+4|0;k=m;f[j>>2]=a;f[e>>2]=b;f[g>>2]=c;f[h>>2]=ob(f[j>>2]|0)|0;if(f[h>>2]|0){f[i>>2]=f[h>>2];e=f[i>>2]|0;l=m;return e|0}f[k>>2]=sb(f[(f[j>>2]|0)+36>>2]|0,f[(f[j>>2]|0)+32>>2]|0,f[e>>2]|0,f[g>>2]|0)|0;e=f[j>>2]|0;if(f[k>>2]|0){qb(e);f[i>>2]=f[k>>2];e=f[i>>2]|0;l=m;return e|0}else{d[(f[e+36>>2]|0)+56>>0]=1;d[(f[(f[j>>2]|0)+36>>2]|0)+56+1>>0]=1;d[(f[(f[j>>2]|0)+36>>2]|0)+56+2>>0]=1;d[(f[(f[j>>2]|0)+36>>2]|0)+56+4>>0]=1;d[(f[(f[j>>2]|0)+36>>2]|0)+56+3>>0]=1;f[i>>2]=0;e=f[i>>2]|0;l=m;return e|0}return 0}function sb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+176|0;g=p+172|0;h=p+168|0;i=p+164|0;j=p+160|0;k=p+156|0;e=p+104|0;m=p+56|0;o=p;n=p+152|0;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[k>>2]=d;if(5!=(f[(f[h>>2]|0)+16>>2]|0))mb(f[h>>2]|0,f[i>>2]|0);f[(f[h>>2]|0)+16>>2]=5;if(!(f[j>>2]|0)){f[g>>2]=11;k=f[g>>2]|0;l=p;return k|0}do if(!(f[f[h>>2]>>2]|0)){a=hb(1416,f[i>>2]|0)|0;f[f[h>>2]>>2]=a;if(f[f[h>>2]>>2]|0){f[(f[h>>2]|0)+20>>2]=1;f[(f[h>>2]|0)+24>>2]=1;f[(f[h>>2]|0)+40>>2]=6;b=(f[f[h>>2]>>2]|0)+248|0;f[b>>2]=-1;f[b+4>>2]=-1;b=(f[f[h>>2]>>2]|0)+8|0;a=e;c=a+48|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(c|0));a=e+8|0;f[a>>2]=-1;f[a+4>>2]=-1;f[e+16>>2]=0;a=b;c=a+48|0;do{f[a>>2]=f[e>>2];a=a+4|0;e=e+4|0}while((a|0)<(c|0));e=(f[f[h>>2]>>2]|0)+328|0;a=m;c=a+48|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(c|0));a=m+8|0;f[a>>2]=-1;f[a+4>>2]=-1;f[m+16>>2]=0;a=e;e=m;c=a+48|0;do{f[a>>2]=f[e>>2];a=a+4|0;e=e+4|0}while((a|0)<(c|0));f[(f[f[h>>2]>>2]|0)+376>>2]=0;break}f[g>>2]=5;k=f[g>>2]|0;l=p;return k|0}while(0);f[f[f[h>>2]>>2]>>2]=0;f[(f[f[h>>2]>>2]|0)+56>>2]=0;f[(f[f[h>>2]>>2]|0)+56+8>>2]=f[k>>2];hc(f[(f[f[h>>2]>>2]|0)+376>>2]|0,f[i>>2]|0);a=gc(f[i>>2]|0)|0;f[(f[f[h>>2]>>2]|0)+376>>2]=a;if(!(f[(f[f[h>>2]>>2]|0)+376>>2]|0)){f[g>>2]=5;k=f[g>>2]|0;l=p;return k|0}a=o;c=a+56|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(c|0));f[o>>2]=0;f[o+16>>2]=f[k>>2];f[n>>2]=xb(o,(f[f[h>>2]>>2]|0)+388|0)|0;if(f[n>>2]|0){f[g>>2]=f[n>>2];k=f[g>>2]|0;l=p;return k|0}else{f[(f[f[h>>2]>>2]|0)+380>>2]=0;f[(f[f[h>>2]>>2]|0)+384>>2]=12;f[g>>2]=vb(f[f[h>>2]>>2]|0,f[i>>2]|0,f[j>>2]|0,0)|0;k=f[g>>2]|0;l=p;return k|0}return 0}function tb(a,b,c,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=l;l=l+128|0;w=D+120|0;m=D+116|0;n=D+112|0;o=D+108|0;p=D+104|0;q=D+100|0;r=D+96|0;s=D+92|0;t=D+88|0;x=D+84|0;A=D+80|0;B=D+76|0;y=D+72|0;v=D+56|0;C=D+68|0;z=D+64|0;u=D;f[m>>2]=a;f[n>>2]=b;f[o>>2]=c;f[p>>2]=e;f[q>>2]=g;f[r>>2]=h;f[s>>2]=i;f[t>>2]=j;f[x>>2]=k;a:while(1){if((f[f[s>>2]>>2]|0)>>>0>=(f[t>>2]|0)>>>0){m=32;break}switch(f[f[m>>2]>>2]|0){case 5:case 2:case 0:{kb((f[m>>2]|0)+388|0,(f[m>>2]|0)+380|0,f[(f[m>>2]|0)+384>>2]|0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0)|0;if((f[(f[m>>2]|0)+380>>2]|0)>>>0<(f[(f[m>>2]|0)+384>>2]|0)>>>0){m=5;break a}if((f[f[m>>2]>>2]|0)==5){m=7;break a}f[(f[m>>2]|0)+380>>2]=0;j=f[m>>2]|0;f[j>>2]=(f[j>>2]|0)+1;continue a}case 1:{if((f[f[p>>2]>>2]|0)==(f[q>>2]|0)){if((f[x>>2]|0)!=3){m=11;break a}f[A>>2]=Uc((f[m>>2]|0)+328|0,f[n>>2]|0,f[(f[m>>2]|0)+376>>2]|0)|0;if(f[A>>2]|0){m=13;break a}f[f[m>>2]>>2]=4;continue a}if(!(d[(f[m>>2]|0)+4>>0]&1)?(f[B>>2]=wb(f[m>>2]|0,f[n>>2]|0)|0,(f[B>>2]|0)!=0):0){m=17;break a}d[(f[m>>2]|0)+4>>0]=0;if(Mc((f[m>>2]|0)+56|0,(f[m>>2]|0)+388|0)|0){m=19;break a}f[(f[m>>2]|0)+384>>2]=f[(f[m>>2]|0)+56+4>>2];f[f[m>>2]>>2]=2;continue a}case 4:{f[z>>2]=Jh[f[(f[m>>2]|0)+328+20>>2]&15](f[(f[m>>2]|0)+328>>2]|0,f[n>>2]|0,0,0,0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0,0)|0;if((f[z>>2]|0)!=1){m=27;break a}f[u>>2]=0;j=u+8|0;f[j>>2]=jc(f[(f[m>>2]|0)+376>>2]|0)|0;f[j+4>>2]=G;f[u+16>>2]=f[(f[m>>2]|0)+56+8>>2];f[u+20>>2]=0;f[u+24>>2]=0;f[u+28>>2]=0;f[u+32>>2]=0;d[u+36>>0]=0;d[u+37>>0]=0;d[u+38>>0]=0;d[u+39>>0]=0;d[u+40>>0]=0;d[u+41>>0]=0;d[u+42>>0]=0;d[u+43>>0]=0;f[u+44>>2]=0;f[u+48>>2]=0;if(yb(u,(f[m>>2]|0)+388|0)|0){m=29;break a}f[(f[m>>2]|0)+384>>2]=12;f[f[m>>2]>>2]=5;continue a}case 3:{f[y>>2]=Jh[f[(f[m>>2]|0)+8+20>>2]&15](f[(f[m>>2]|0)+8>>2]|0,f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0,f[824+(f[x>>2]<<2)>>2]|0)|0;if((f[y>>2]|0)!=1|(f[x>>2]|0)==1){m=22;break a}i=v;f[i>>2]=bc((f[m>>2]|0)+56|0)|0;f[i+4>>2]=G;i=v;j=(f[m>>2]|0)+56+24|0;f[C>>2]=lc(f[(f[m>>2]|0)+376>>2]|0,f[n>>2]|0,f[i>>2]|0,f[i+4>>2]|0,f[j>>2]|0,f[j+4>>2]|0)|0;if(f[C>>2]|0){m=24;break a}f[f[m>>2]>>2]=1;continue a}default:{m=31;break a}}}switch(m|0){case 5:{f[w>>2]=0;y=f[w>>2]|0;l=D;return y|0}case 7:{f[w>>2]=1;y=f[w>>2]|0;l=D;return y|0}case 11:{f[w>>2]=(f[x>>2]|0)==0?0:1;y=f[w>>2]|0;l=D;return y|0}case 13:{f[w>>2]=f[A>>2];y=f[w>>2]|0;l=D;return y|0}case 17:{f[w>>2]=f[B>>2];y=f[w>>2]|0;l=D;return y|0}case 19:{f[w>>2]=11;y=f[w>>2]|0;l=D;return y|0}case 22:{f[w>>2]=f[y>>2];y=f[w>>2]|0;l=D;return y|0}case 24:{f[w>>2]=f[C>>2];y=f[w>>2]|0;l=D;return y|0}case 27:{f[w>>2]=f[z>>2];y=f[w>>2]|0;l=D;return y|0}case 29:{f[w>>2]=11;y=f[w>>2]|0;l=D;return y|0}case 31:{f[w>>2]=11;y=f[w>>2]|0;l=D;return y|0}case 32:{f[w>>2]=0;y=f[w>>2]|0;l=D;return y|0}}return 0}function ub(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=l;l=l+16|0;c=g+8|0;d=g+4|0;e=g;f[c>>2]=a;f[d>>2]=b;mb((f[c>>2]|0)+8|0,f[d>>2]|0);mb((f[c>>2]|0)+328|0,f[d>>2]|0);hc(f[(f[c>>2]|0)+376>>2]|0,f[d>>2]|0);f[e>>2]=0;while(1){b=(f[c>>2]|0)+248+(f[e>>2]<<4)|0;if(!((f[b>>2]|0)!=-1?1:(f[b+4>>2]|0)!=-1))break;jb(f[(f[c>>2]|0)+248+(f[e>>2]<<4)+8>>2]|0,f[d>>2]|0);f[e>>2]=(f[e>>2]|0)+1}jb(f[c>>2]|0,f[d>>2]|0);l=g;return}function vb(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+32|0;g=p+28|0;h=p+24|0;i=p+20|0;j=p+16|0;k=p+12|0;n=p+8|0;o=p+4|0;m=p;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[k>>2]=e;b=f[h>>2]|0;do if((f[f[h>>2]>>2]|0)>>>0>1){if((f[b>>2]|0)>>>0>3){f[g>>2]=11;m=f[g>>2]|0;l=p;return m|0}f[o>>2]=Nh[f[(f[h>>2]|0)+8+40>>2]&15](f[(f[h>>2]|0)+8>>2]|0,f[i>>2]|0,f[j>>2]|0,f[k>>2]|0)|0;if(f[o>>2]|0){f[g>>2]=f[o>>2];m=f[g>>2]|0;l=p;return m|0}}else{d[b+4>>0]=0;f[(f[h>>2]|0)+56+32>>2]=f[j>>2];f[n>>2]=wb(f[h>>2]|0,f[i>>2]|0)|0;f[(f[h>>2]|0)+56+32>>2]=(f[h>>2]|0)+248;if(!(f[n>>2]|0)){d[(f[h>>2]|0)+4>>0]=1;break}f[g>>2]=f[n>>2];m=f[g>>2]|0;l=p;return m|0}while(0);f[m>>2]=0;while(1){k=(f[h>>2]|0)+248+(f[m>>2]<<4)|0;if(!((f[k>>2]|0)!=-1?1:(f[k+4>>2]|0)!=-1))break;jb(f[(f[h>>2]|0)+248+(f[m>>2]<<4)+8>>2]|0,f[i>>2]|0);f[m>>2]=(f[m>>2]|0)+1}f[g>>2]=cc(f[j>>2]|0,(f[h>>2]|0)+248|0,f[i>>2]|0)|0;m=f[g>>2]|0;l=p;return m|0}function wb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=l;l=l+16|0;c=h+12|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;b=(f[d>>2]|0)+56+16|0;f[b>>2]=-1;f[b+4>>2]=-1;b=(f[d>>2]|0)+56+24|0;f[b>>2]=-1;f[b+4>>2]=-1;f[g>>2]=Lc((f[d>>2]|0)+56|0)|0;if(f[g>>2]|0){f[c>>2]=f[g>>2];c=f[c>>2]|0;l=h;return c|0}else{f[c>>2]=Hc((f[d>>2]|0)+8|0,f[e>>2]|0,(f[d>>2]|0)+56|0)|0;c=f[c>>2]|0;l=h;return c|0}return 0}function xb(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0;i=l;l=l+16|0;c=i+12|0;e=i+8|0;g=i+4|0;h=i;f[e>>2]=a;f[g>>2]=b;if(f[f[e>>2]>>2]|0){f[c>>2]=8;c=f[c>>2]|0;l=i;return c|0}a=f[g>>2]|0;d[a>>0]=d[1352]|0;d[a+1>>0]=d[1353]|0;d[a+2>>0]=d[1354]|0;d[a+3>>0]=d[1355]|0;d[a+4>>0]=d[1356]|0;d[a+5>>0]=d[1357]|0;if(zb(f[e>>2]|0,(f[g>>2]|0)+6|0)|0){f[c>>2]=11;c=f[c>>2]|0;l=i;return c|0}else{f[h>>2]=Sb((f[g>>2]|0)+6|0,2,0)|0;Ab((f[g>>2]|0)+6+2|0,f[h>>2]|0);f[c>>2]=0;c=f[c>>2]|0;l=i;return c|0}return 0}function yb(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0;i=l;l=l+16|0;c=i+12|0;e=i+8|0;g=i+4|0;h=i;f[e>>2]=a;f[g>>2]=b;if(f[f[e>>2]>>2]|0){f[c>>2]=8;c=f[c>>2]|0;l=i;return c|0}if(!(Bb(f[e>>2]|0)|0)){f[c>>2]=11;c=f[c>>2]|0;l=i;return c|0}b=(f[g>>2]|0)+4|0;a=(f[e>>2]|0)+8|0;a=ph(f[a>>2]|0,f[a+4>>2]|0,4,0)|0;a=bh(a|0,G|0,1,0)|0;Ab(b,a);if(zb(f[e>>2]|0,(f[g>>2]|0)+8|0)|0){f[c>>2]=11;c=f[c>>2]|0;l=i;return c|0}else{f[h>>2]=Sb((f[g>>2]|0)+4|0,6,0)|0;Ab(f[g>>2]|0,f[h>>2]|0);e=(f[g>>2]|0)+8+2|0;d[e>>0]=d[1360]|0;d[e+1>>0]=d[1361]|0;f[c>>2]=0;c=f[c>>2]|0;l=i;return c|0}return 0}function zb(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0;h=l;l=l+16|0;c=h+8|0;e=h+4|0;g=h;f[e>>2]=a;f[g>>2]=b;if((f[(f[e>>2]|0)+16>>2]|0)>>>0>15){d[c>>0]=1;c=d[c>>0]|0;c=c&1;l=h;return c|0}else{d[f[g>>2]>>0]=0;d[(f[g>>2]|0)+1>>0]=f[(f[e>>2]|0)+16>>2];d[c>>0]=0;c=d[c>>0]|0;c=c&1;l=h;return c|0}return 0}function Ab(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c+4|0;e=c;f[d>>2]=a;f[e>>2]=b;f[f[d>>2]>>2]=f[e>>2];l=c;return}function Bb(a){a=a|0;var b=0,c=0,d=0;c=l;l=l+16|0;b=c;f[b>>2]=a;a=(f[b>>2]|0)+8|0;d=f[a+4>>2]|0;if(!(d>>>0>0|(d|0)==0&(f[a>>2]|0)>>>0>=4)){b=0;l=c;return b|0}a=(f[b>>2]|0)+8|0;d=f[a+4>>2]|0;if(!(d>>>0<4|(d|0)==4&(f[a>>2]|0)>>>0<=0)){b=0;l=c;return b|0}b=0==0?(f[(f[b>>2]|0)+8>>2]&3|0)==0:0;l=c;return b|0}function Cb(a,b,c,e,g){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+80|0;i=o+68|0;j=o+64|0;k=o+60|0;m=o+48|0;n=o+56|0;h=o;f[j>>2]=a;f[k>>2]=b;a=m;f[a>>2]=c;f[a+4>>2]=e;f[n>>2]=g;if(1!=(f[(f[j>>2]|0)+16>>2]|0))mb(f[j>>2]|0,f[k>>2]|0);f[(f[j>>2]|0)+16>>2]=1;a=m;if((f[a>>2]|0)==0&(f[a+4>>2]|0)==0){f[i>>2]=11;m=f[i>>2]|0;l=o;return m|0}if(f[n>>2]&-32){f[i>>2]=8;m=f[i>>2]|0;l=o;return m|0}do if(!(f[f[j>>2]>>2]|0)){a=hb(1368,f[k>>2]|0)|0;f[f[j>>2]>>2]=a;if(f[f[j>>2]>>2]|0){f[(f[j>>2]|0)+20>>2]=2;f[(f[j>>2]|0)+24>>2]=2;f[(f[j>>2]|0)+32>>2]=7;f[(f[j>>2]|0)+36>>2]=2;b=(f[f[j>>2]>>2]|0)+8|0;e=h;c=e+48|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(c|0));e=h+8|0;f[e>>2]=-1;f[e+4>>2]=-1;f[h+16>>2]=0;e=b;c=e+48|0;do{f[e>>2]=f[h>>2];e=e+4|0;h=h+4|0}while((e|0)<(c|0));f[(f[f[j>>2]>>2]|0)+304>>2]=0;break}f[i>>2]=5;m=f[i>>2]|0;l=o;return m|0}while(0);g=m;a=f[g+4>>2]|0;m=(f[f[j>>2]>>2]|0)+312|0;f[m>>2]=f[g>>2];f[m+4>>2]=a;m=(f[f[j>>2]>>2]|0)+320|0;f[m>>2]=32768;f[m+4>>2]=0;d[(f[f[j>>2]>>2]|0)+328>>0]=(f[n>>2]&1|0)!=0&1;d[(f[f[j>>2]>>2]|0)+329>>0]=(f[n>>2]&2|0)!=0&1;d[(f[f[j>>2]>>2]|0)+330>>0]=(f[n>>2]&4|0)!=0&1;d[(f[f[j>>2]>>2]|0)+331>>0]=(f[n>>2]&16|0)!=0&1;d[(f[f[j>>2]>>2]|0)+332>>0]=(f[n>>2]&8|0)!=0&1;d[(f[f[j>>2]>>2]|0)+333>>0]=1;f[i>>2]=Ib(f[f[j>>2]>>2]|0,f[k>>2]|0)|0;m=f[i>>2]|0;l=o;return m|0}function Db(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;j=n+24|0;k=n+20|0;g=n;h=n+16|0;i=n+12|0;m=n+8|0;f[k>>2]=a;a=g;f[a>>2]=b;f[a+4>>2]=c;f[h>>2]=e;f[i>>2]=ob(f[k>>2]|0)|0;if(f[i>>2]|0){f[j>>2]=f[i>>2];m=f[j>>2]|0;l=n;return m|0}b=g;f[m>>2]=Cb(f[(f[k>>2]|0)+36>>2]|0,f[(f[k>>2]|0)+32>>2]|0,f[b>>2]|0,f[b+4>>2]|0,f[h>>2]|0)|0;b=f[k>>2]|0;if(f[m>>2]|0){qb(b);f[j>>2]=f[m>>2];m=f[j>>2]|0;l=n;return m|0}else{d[(f[b+36>>2]|0)+56>>0]=1;d[(f[(f[k>>2]|0)+36>>2]|0)+56+3>>0]=1;f[j>>2]=0;m=f[j>>2]|0;l=n;return m|0}return 0}function Eb(a,b,c,e,h,i,j,k,m){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0;M=l;l=l+224|0;L=M+220|0;n=M+216|0;o=M+212|0;p=M+208|0;q=M+204|0;r=M+200|0;s=M+196|0;t=M+192|0;u=M+188|0;v=M+184|0;A=M+180|0;w=M+64|0;F=M+176|0;z=M+56|0;B=M+172|0;y=M+168|0;C=M+164|0;H=M+160|0;D=M+156|0;x=M;E=M+152|0;I=M+148|0;J=M+144|0;f[n>>2]=a;f[o>>2]=b;f[p>>2]=c;f[q>>2]=e;f[r>>2]=h;f[s>>2]=i;f[t>>2]=j;f[u>>2]=k;f[v>>2]=m;a:while(1){switch(f[f[n>>2]>>2]|0){case 0:{kb(f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,(f[n>>2]|0)+340|0,(f[n>>2]|0)+336|0,12)|0;if((f[(f[n>>2]|0)+336>>2]|0)>>>0<12){K=4;break a}f[(f[n>>2]|0)+336>>2]=0;f[A>>2]=Jb((f[n>>2]|0)+248|0,(f[n>>2]|0)+340|0)|0;if(f[A>>2]|0){K=6;break a}d[(f[n>>2]|0)+333>>0]=0;f[(f[n>>2]|0)+56+8>>2]=f[(f[n>>2]|0)+248+16>>2];f[f[n>>2]>>2]=1;if(d[(f[n>>2]|0)+328>>0]&1?(f[(f[n>>2]|0)+248+16>>2]|0)==0:0){K=12;break a}if(d[(f[n>>2]|0)+329>>0]&1?(Nb(f[(f[n>>2]|0)+248+16>>2]|0)|0)<<24>>24==0:0){K=15;break a}if(d[(f[n>>2]|0)+330>>0]&1){K=17;break a}else K=18;break}case 3:{if((f[f[q>>2]>>2]|0)>>>0>=(f[r>>2]|0)>>>0){K=45;break a}f[D>>2]=od(f[(f[n>>2]|0)+304>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0)|0;if((f[D>>2]|0)!=1){K=47;break a}f[f[n>>2]>>2]=4;K=49;break}case 2:{K=39;break}case 1:{K=18;break}case 4:{K=49;break}case 5:break;default:{K=70;break a}}if((K|0)==18){K=0;if((f[f[q>>2]>>2]|0)>>>0>=(f[r>>2]|0)>>>0){K=19;break}do if(!(f[(f[n>>2]|0)+336>>2]|0))if(!(g[(f[p>>2]|0)+(f[f[q>>2]>>2]|0)>>0]|0)){f[f[n>>2]>>2]=3;continue a}else{f[(f[n>>2]|0)+56+4>>2]=(g[(f[p>>2]|0)+(f[f[q>>2]>>2]|0)>>0]|0)+1<<2;break}while(0);kb(f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,(f[n>>2]|0)+340|0,(f[n>>2]|0)+336|0,f[(f[n>>2]|0)+56+4>>2]|0)|0;if((f[(f[n>>2]|0)+336>>2]|0)>>>0<(f[(f[n>>2]|0)+56+4>>2]|0)>>>0){K=25;break}f[(f[n>>2]|0)+336>>2]=0;f[(f[n>>2]|0)+56>>2]=1;f[(f[n>>2]|0)+56+32>>2]=w;f[F>>2]=cd((f[n>>2]|0)+56|0,f[o>>2]|0,(f[n>>2]|0)+340|0)|0;if(f[F>>2]|0){K=27;break}d[(f[n>>2]|0)+56+184>>0]=d[(f[n>>2]|0)+331>>0]&1;j=gd(w)|0;k=z;f[k>>2]=j;f[k+4>>2]=G;k=z;do if(!((f[k>>2]|0)==-1?(f[k+4>>2]|0)==-1:0)){k=z;h=f[k+4>>2]|0;j=(f[n>>2]|0)+320|0;f[j>>2]=f[k>>2];f[j+4>>2]=h;j=z;h=f[j+4>>2]|0;k=(f[n>>2]|0)+312|0;i=f[k+4>>2]|0;if(h>>>0>i>>>0|((h|0)==(i|0)?(f[j>>2]|0)>>>0>(f[k>>2]|0)>>>0:0)){f[B>>2]=6;break}else{f[B>>2]=Zc((f[n>>2]|0)+8|0,f[o>>2]|0,(f[n>>2]|0)+56|0)|0;break}}else f[B>>2]=8;while(0);f[y>>2]=0;while(1){if((f[y>>2]|0)>>>0>=4)break;jb(f[w+(f[y>>2]<<4)+8>>2]|0,f[o>>2]|0);f[y>>2]=(f[y>>2]|0)+1}f[(f[n>>2]|0)+56+32>>2]=0;if(f[B>>2]|0){K=37;break}f[f[n>>2]>>2]=2;K=39}else if((K|0)==49){K=0;kb(f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,(f[n>>2]|0)+340|0,(f[n>>2]|0)+336|0,12)|0;if((f[(f[n>>2]|0)+336>>2]|0)>>>0<12){K=50;break}f[(f[n>>2]|0)+336>>2]=0;f[E>>2]=Kb(x,(f[n>>2]|0)+340|0)|0;if(f[E>>2]|0){K=52;break}j=md(f[(f[n>>2]|0)+304>>2]|0)|0;k=x+8|0;if((j|0)!=(f[k>>2]|0)?1:(G|0)!=(f[k+4>>2]|0)){K=54;break}f[I>>2]=Ec((f[n>>2]|0)+248|0,x)|0;if(f[I>>2]|0){K=56;break}if(!(d[(f[n>>2]|0)+332>>0]&1)){K=58;break}f[f[n>>2]>>2]=5}if((K|0)==39){K=0;f[C>>2]=Jh[f[(f[n>>2]|0)+8+20>>2]&15](f[(f[n>>2]|0)+8>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0,f[u>>2]|0,f[v>>2]|0)|0;if((f[C>>2]|0)!=1){K=40;break}i=f[(f[n>>2]|0)+304>>2]|0;j=bc((f[n>>2]|0)+56|0)|0;k=(f[n>>2]|0)+56+24|0;f[H>>2]=nd(i,j,G,f[k>>2]|0,f[k+4>>2]|0)|0;if(f[H>>2]|0){K=42;break}f[f[n>>2]>>2]=1;continue}while(1){if((f[f[q>>2]>>2]|0)>>>0>=(f[r>>2]|0)>>>0){K=61;break a}if(g[(f[p>>2]|0)+(f[f[q>>2]>>2]|0)>>0]|0)break;k=f[q>>2]|0;f[k>>2]=(f[k>>2]|0)+1;f[(f[n>>2]|0)+336>>2]=(f[(f[n>>2]|0)+336>>2]|0)+1&3}if(f[(f[n>>2]|0)+336>>2]|0){K=67;break}f[J>>2]=Ib(f[n>>2]|0,f[o>>2]|0)|0;if(f[J>>2]|0){K=69;break}}switch(K|0){case 4:{f[L>>2]=0;k=f[L>>2]|0;l=M;return k|0}case 6:{if((f[A>>2]|0)==7?!(d[(f[n>>2]|0)+333>>0]&1):0)n=9;else n=f[A>>2]|0;f[L>>2]=n;k=f[L>>2]|0;l=M;return k|0}case 12:{f[L>>2]=2;k=f[L>>2]|0;l=M;return k|0}case 15:{f[L>>2]=3;k=f[L>>2]|0;l=M;return k|0}case 17:{f[L>>2]=4;k=f[L>>2]|0;l=M;return k|0}case 19:{f[L>>2]=0;k=f[L>>2]|0;l=M;return k|0}case 25:{f[L>>2]=0;k=f[L>>2]|0;l=M;return k|0}case 27:{f[L>>2]=f[F>>2];k=f[L>>2]|0;l=M;return k|0}case 37:{f[L>>2]=f[B>>2];k=f[L>>2]|0;l=M;return k|0}case 40:{f[L>>2]=f[C>>2];k=f[L>>2]|0;l=M;return k|0}case 42:{f[L>>2]=f[H>>2];k=f[L>>2]|0;l=M;return k|0}case 45:{f[L>>2]=0;k=f[L>>2]|0;l=M;return k|0}case 47:{f[L>>2]=f[D>>2];k=f[L>>2]|0;l=M;return k|0}case 50:{f[L>>2]=0;k=f[L>>2]|0;l=M;return k|0}case 52:{f[L>>2]=(f[E>>2]|0)==7?9:f[E>>2]|0;k=f[L>>2]|0;l=M;return k|0}case 54:{f[L>>2]=9;k=f[L>>2]|0;l=M;return k|0}case 56:{f[L>>2]=f[I>>2];k=f[L>>2]|0;l=M;return k|0}case 58:{f[L>>2]=1;k=f[L>>2]|0;l=M;return k|0}case 61:if((f[v>>2]|0)!=3){f[L>>2]=0;k=f[L>>2]|0;l=M;return k|0}else{f[L>>2]=(f[(f[n>>2]|0)+336>>2]|0)==0?1:9;k=f[L>>2]|0;l=M;return k|0}case 67:{k=f[q>>2]|0;f[k>>2]=(f[k>>2]|0)+1;f[L>>2]=9;k=f[L>>2]|0;l=M;return k|0}case 69:{f[L>>2]=f[J>>2];k=f[L>>2]|0;l=M;return k|0}case 70:{f[L>>2]=11;k=f[L>>2]|0;l=M;return k|0}}return 0}function Fb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;e=c+4|0;d=c;f[e>>2]=a;f[d>>2]=b;mb((f[e>>2]|0)+8|0,f[d>>2]|0);ld(f[(f[e>>2]|0)+304>>2]|0,f[d>>2]|0);jb(f[e>>2]|0,f[d>>2]|0);l=c;return}function Gb(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return f[(f[b>>2]|0)+248+16>>2]|0}function Hb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0;j=l;l=l+32|0;g=j+20|0;h=j+16|0;m=j+12|0;k=j+8|0;i=j;f[h>>2]=a;f[m>>2]=b;f[k>>2]=c;a=i;f[a>>2]=d;f[a+4>>2]=e;d=(f[h>>2]|0)+320|0;e=f[d+4>>2]|0;a=f[m>>2]|0;f[a>>2]=f[d>>2];f[a+4>>2]=e;a=(f[h>>2]|0)+312|0;e=f[a+4>>2]|0;d=f[k>>2]|0;f[d>>2]=f[a>>2];f[d+4>>2]=e;d=i;do if((f[d>>2]|0)!=0|(f[d+4>>2]|0)!=0){c=i;a=f[c+4>>2]|0;k=(f[h>>2]|0)+320|0;b=f[k+4>>2]|0;if(!(a>>>0<b>>>0|((a|0)==(b|0)?(f[c>>2]|0)>>>0<(f[k>>2]|0)>>>0:0))){b=i;c=f[b+4>>2]|0;k=(f[h>>2]|0)+312|0;f[k>>2]=f[b>>2];f[k+4>>2]=c;break}f[g>>2]=6;k=f[g>>2]|0;l=j;return k|0}while(0);f[g>>2]=0;k=f[g>>2]|0;l=j;return k|0}function Ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;e=l;l=l+16|0;c=e+8|0;d=e+4|0;g=e;f[d>>2]=a;f[g>>2]=b;b=kd(f[(f[d>>2]|0)+304>>2]|0,f[g>>2]|0)|0;f[(f[d>>2]|0)+304>>2]=b;if(!(f[(f[d>>2]|0)+304>>2]|0)){f[c>>2]=5;c=f[c>>2]|0;l=e;return c|0}else{f[f[d>>2]>>2]=0;f[(f[d>>2]|0)+336>>2]=0;f[c>>2]=0;c=f[c>>2]|0;l=e;return c|0}return 0}function Jb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=l;l=l+16|0;c=h+12|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;do if(!(Yg(f[e>>2]|0,1352,6)|0)){f[g>>2]=Sb((f[e>>2]|0)+6|0,2,0)|0;g=f[g>>2]|0;if((g|0)!=(Lb((f[e>>2]|0)+6+2|0)|0)){f[c>>2]=9;break}if(Mb(f[d>>2]|0,(f[e>>2]|0)+6|0)|0){f[c>>2]=8;break}else{d=(f[d>>2]|0)+8|0;f[d>>2]=-1;f[d+4>>2]=-1;f[c>>2]=0;break}}else f[c>>2]=7;while(0);l=h;return f[c>>2]|0}function Kb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=l;l=l+16|0;c=h+12|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;if(Yg((f[e>>2]|0)+8+2|0,1360,2)|0){f[c>>2]=7;c=f[c>>2]|0;l=h;return c|0}f[g>>2]=Sb((f[e>>2]|0)+4|0,6,0)|0;g=f[g>>2]|0;if((g|0)!=(Lb(f[e>>2]|0)|0)){f[c>>2]=9;c=f[c>>2]|0;l=h;return c|0}if(Mb(f[d>>2]|0,(f[e>>2]|0)+8|0)|0){f[c>>2]=8;c=f[c>>2]|0;l=h;return c|0}else{g=Lb((f[e>>2]|0)+4|0)|0;e=(f[d>>2]|0)+8|0;f[e>>2]=g;f[e+4>>2]=0;e=(f[d>>2]|0)+8|0;e=hh(f[e>>2]|0,f[e+4>>2]|0,1,0)|0;e=oh(e|0,G|0,4,0)|0;d=(f[d>>2]|0)+8|0;f[d>>2]=e;f[d+4>>2]=G;f[c>>2]=0;c=f[c>>2]|0;l=h;return c|0}return 0}function Lb(a){a=a|0;var b=0,c=0,d=0;c=l;l=l+16|0;d=c+4|0;b=c;f[d>>2]=a;f[b>>2]=f[f[d>>2]>>2];l=c;return f[b>>2]|0}function Mb(a,b){a=a|0;b=b|0;var c=0,e=0,h=0,i=0;i=l;l=l+16|0;c=i+8|0;e=i+4|0;h=i;f[e>>2]=a;f[h>>2]=b;if((g[f[h>>2]>>0]|0|0)==0?((g[(f[h>>2]|0)+1>>0]|0)&240|0)==0:0){f[f[e>>2]>>2]=0;f[(f[e>>2]|0)+16>>2]=(g[(f[h>>2]|0)+1>>0]|0)&15;d[c>>0]=0;c=d[c>>0]|0;c=c&1;l=i;return c|0}d[c>>0]=1;c=d[c>>0]|0;c=c&1;l=i;return c|0}function Nb(a){a=a|0;var b=0,c=0,e=0;e=l;l=l+16|0;b=e+4|0;c=e;f[c>>2]=a;if((f[c>>2]|0)>>>0>15)d[b>>0]=0;else d[b>>0]=d[848+(f[c>>2]|0)>>0]|0;l=e;return d[b>>0]|0}function Ob(a){a=a|0;var b=0,c=0,d=0;d=l;l=l+16|0;b=d+4|0;c=d;f[c>>2]=a;if((f[c>>2]|0)>>>0>15){f[b>>2]=-1;b=f[b>>2]|0;l=d;return b|0}else{f[b>>2]=g[864+(f[c>>2]|0)>>0];b=f[b>>2]|0;l=d;return b|0}return 0}function Pb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=l;l=l+16|0;c=d+4|0;e=d;f[c>>2]=a;f[e>>2]=b;a=f[e>>2]|0;if((a|0)==10){Ub(f[c>>2]|0);l=d;return}else if((a|0)==4){a=(f[c>>2]|0)+64|0;f[a>>2]=0;f[a+4>>2]=0;
l=d;return}else if((a|0)==1){f[(f[c>>2]|0)+64>>2]=0;l=d;return}else{l=d;return}}function Qb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;i=l;l=l+16|0;e=i+12|0;j=i+8|0;g=i+4|0;h=i;f[e>>2]=a;f[j>>2]=b;f[g>>2]=c;f[h>>2]=d;c=f[j>>2]|0;if((c|0)==4){a=(f[e>>2]|0)+64|0;a=Tb(f[g>>2]|0,f[h>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;c=(f[e>>2]|0)+64|0;f[c>>2]=a;f[c+4>>2]=G;l=i;return}else if((c|0)==10){Vb(f[g>>2]|0,f[h>>2]|0,f[e>>2]|0);l=i;return}else if((c|0)==1){c=Sb(f[g>>2]|0,f[h>>2]|0,f[(f[e>>2]|0)+64>>2]|0)|0;f[(f[e>>2]|0)+64>>2]=c;l=i;return}else{l=i;return}}function Rb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=l;l=l+16|0;c=d+4|0;e=d;f[c>>2]=a;f[e>>2]=b;a=f[e>>2]|0;if((a|0)==4){e=(f[c>>2]|0)+64|0;b=f[e+4>>2]|0;a=f[c>>2]|0;f[a>>2]=f[e>>2];f[a+4>>2]=b;l=d;return}else if((a|0)==10){Wb(f[c>>2]|0);l=d;return}else if((a|0)==1){f[f[c>>2]>>2]=f[(f[c>>2]|0)+64>>2];l=d;return}else{l=d;return}}function Sb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;d=k+16|0;e=k+12|0;h=k+8|0;i=k+4|0;j=k;f[d>>2]=a;f[e>>2]=b;f[h>>2]=c;f[h>>2]=~f[h>>2];a:do if((f[e>>2]|0)>>>0>8){while(1){a=f[d>>2]|0;if(!(f[d>>2]&7))break;f[d>>2]=a+1;f[h>>2]=f[1872+(((g[a>>0]|0)^f[h>>2]&255)<<2)>>2]^(f[h>>2]|0)>>>8;f[e>>2]=(f[e>>2]|0)+-1}f[i>>2]=a+(f[e>>2]&-8);f[e>>2]=f[e>>2]&7;while(1){if((f[d>>2]|0)>>>0>=(f[i>>2]|0)>>>0)break a;f[h>>2]=f[h>>2]^f[f[d>>2]>>2];f[d>>2]=(f[d>>2]|0)+4;f[h>>2]=f[9040+((f[h>>2]&255)<<2)>>2]^f[8016+(((f[h>>2]|0)>>>8&255)<<2)>>2]^f[6992+(((f[h>>2]|0)>>>16&255)<<2)>>2]^f[5968+((f[h>>2]|0)>>>24<<2)>>2];f[j>>2]=f[f[d>>2]>>2];f[d>>2]=(f[d>>2]|0)+4;f[h>>2]=f[4944+((f[j>>2]&255)<<2)>>2]^f[3920+(((f[j>>2]|0)>>>8&255)<<2)>>2]^f[h>>2]^f[2896+(((f[j>>2]|0)>>>16&255)<<2)>>2]^f[1872+((f[j>>2]|0)>>>24<<2)>>2]}}while(0);while(1){a=f[e>>2]|0;f[e>>2]=a+-1;if(!a)break;a=f[d>>2]|0;f[d>>2]=a+1;f[h>>2]=f[1872+(((g[a>>0]|0)^f[h>>2]&255)<<2)>>2]^(f[h>>2]|0)>>>8}l=k;return~f[h>>2]|0}function Tb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;m=l;l=l+32|0;e=m+20|0;h=m+16|0;i=m;j=m+12|0;k=m+8|0;f[e>>2]=a;f[h>>2]=b;a=i;f[a>>2]=c;f[a+4>>2]=d;a=i;d=~f[a+4>>2];c=i;f[c>>2]=~f[a>>2];f[c+4>>2]=d;a:do if((f[h>>2]|0)>>>0>4){while(1){c=f[e>>2]|0;if(!(f[e>>2]&3))break;f[e>>2]=c+1;d=10064+(((g[c>>0]|0)^f[i>>2]&255)<<3)|0;b=f[d>>2]|0;d=f[d+4>>2]|0;a=i;a=dh(f[a>>2]|0,f[a+4>>2]|0,8)|0;c=i;f[c>>2]=b^a;f[c+4>>2]=d^G;f[h>>2]=(f[h>>2]|0)+-1}f[j>>2]=c+(f[h>>2]&-4);f[h>>2]=f[h>>2]&3;while(1){if((f[e>>2]|0)>>>0>=(f[j>>2]|0)>>>0)break a;f[k>>2]=f[i>>2]^f[f[e>>2]>>2];f[e>>2]=(f[e>>2]|0)+4;o=16208+((f[k>>2]&255)<<3)|0;n=14160+(((f[k>>2]|0)>>>8&255)<<3)|0;b=12112+(((f[k>>2]|0)>>>16&255)<<3)|0;a=10064+((f[k>>2]|0)>>>24<<3)|0;d=f[o+4>>2]^f[n+4>>2]^f[b+4>>2]^f[a+4>>2];c=i;f[c>>2]=f[o>>2]^f[n>>2]^f[i+4>>2]^f[b>>2]^f[a>>2];f[c+4>>2]=d}}while(0);while(1){k=f[h>>2]|0;f[h>>2]=k+-1;if(!k)break;j=f[e>>2]|0;f[e>>2]=j+1;j=10064+(((g[j>>0]|0)^f[i>>2]&255)<<3)|0;a=f[j>>2]|0;j=f[j+4>>2]|0;b=i;b=dh(f[b>>2]|0,f[b+4>>2]|0,8)|0;k=i;f[k>>2]=a^b;f[k+4>>2]=j^G}k=i;G=~f[k+4>>2];l=m;return~f[k>>2]|0}function Ub(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=(f[c>>2]|0)+64|0;f[a>>2]=f[220];f[a+4>>2]=f[221];f[a+8>>2]=f[222];f[a+12>>2]=f[223];f[a+16>>2]=f[224];f[a+20>>2]=f[225];f[a+24>>2]=f[226];f[a+28>>2]=f[227];a=(f[c>>2]|0)+64+32|0;f[a>>2]=0;f[a+4>>2]=0;l=b;return}function Vb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;d=j+16|0;e=j+12|0;g=j+8|0;i=j+4|0;h=j;f[d>>2]=a;f[e>>2]=b;f[g>>2]=c;while(1){if((f[e>>2]|0)>>>0<=0)break;f[i>>2]=f[(f[g>>2]|0)+64+32>>2]&63;f[h>>2]=64-(f[i>>2]|0);if((f[h>>2]|0)>>>0>(f[e>>2]|0)>>>0)f[h>>2]=f[e>>2];gh((f[g>>2]|0)+(f[i>>2]|0)|0,f[d>>2]|0,f[h>>2]|0)|0;f[d>>2]=(f[d>>2]|0)+(f[h>>2]|0);f[e>>2]=(f[e>>2]|0)-(f[h>>2]|0);a=(f[g>>2]|0)+64+32|0;c=a;c=hh(f[c>>2]|0,f[c+4>>2]|0,f[h>>2]|0,0)|0;f[a>>2]=c;f[a+4>>2]=G;if(!(0==0?(f[(f[g>>2]|0)+64+32>>2]&63|0)==0:0))continue;Xb(f[g>>2]|0)}l=j;return}function Wb(a){a=a|0;var b=0,c=0,e=0,g=0;g=l;l=l+16|0;b=g+8|0;e=g+4|0;c=g;f[b>>2]=a;f[e>>2]=f[(f[b>>2]|0)+64+32>>2]&63;a=f[e>>2]|0;f[e>>2]=a+1;d[(f[b>>2]|0)+a>>0]=-128;while(1){if((f[e>>2]|0)==56)break;if((f[e>>2]|0)==64){Xb(f[b>>2]|0);f[e>>2]=0}a=f[e>>2]|0;f[e>>2]=a+1;d[(f[b>>2]|0)+a>>0]=0}e=(f[b>>2]|0)+64+32|0;a=e;a=oh(f[a>>2]|0,f[a+4>>2]|0,8,0)|0;f[e>>2]=a;f[e+4>>2]=G;e=(f[b>>2]|0)+64+32|0;e=Yb(f[e>>2]|0,f[e+4>>2]|0)|0;a=(f[b>>2]|0)+56|0;f[a>>2]=e;f[a+4>>2]=G;Xb(f[b>>2]|0);f[c>>2]=0;while(1){if((f[c>>2]|0)>>>0>=8)break;a=Zb(f[(f[b>>2]|0)+64+(f[c>>2]<<2)>>2]|0)|0;f[(f[b>>2]|0)+(f[c>>2]<<2)>>2]=a;f[c>>2]=(f[c>>2]|0)+1}l=g;return}function Xb(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;$b((f[c>>2]|0)+64|0,f[c>>2]|0);l=b;return}function Yb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c;e=d;f[e>>2]=a;f[e+4>>2]=b;b=hh(Zb(f[d>>2]|0)|0,0,0,0)|0;a=Zb(f[d+4>>2]|0)|0;G=b;l=c;return a|0}function Zb(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return(f[b>>2]|0)>>>24|(f[b>>2]|0)>>>8&65280|f[b>>2]<<8&16711680|f[b>>2]<<24|0}function $b(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;h=l;l=l+112|0;c=h+108|0;i=h+104|0;e=h+40|0;d=h+8|0;g=h;f[c>>2]=a;f[i>>2]=b;b=f[c>>2]|0;f[d>>2]=f[b>>2];f[d+4>>2]=f[b+4>>2];f[d+8>>2]=f[b+8>>2];f[d+12>>2]=f[b+12>>2];f[d+16>>2]=f[b+16>>2];f[d+20>>2]=f[b+20>>2];f[d+24>>2]=f[b+24>>2];f[d+28>>2]=f[b+28>>2];b=f[d+16>>2]|0;a=f[d+16>>2]|0;a=_b(b^(_b(a^(_b(f[d+16>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+24>>2]^f[d+16>>2]&(f[d+20>>2]^f[d+24>>2]))+(f[228]|0)|0;b=Zb(f[f[i>>2]>>2]|0)|0;f[e>>2]=b;j=d+28|0;f[j>>2]=(f[j>>2]|0)+(a+b);j=d+12|0;f[j>>2]=(f[j>>2]|0)+(f[d+28>>2]|0);j=f[d>>2]|0;b=f[d>>2]|0;b=_b(j^(_b(b^(_b(f[d>>2]|0,9)|0),11)|0),2)|0;j=d+28|0;f[j>>2]=(f[j>>2]|0)+(b+((f[d>>2]&(f[d+4>>2]^f[d+8>>2]))+(f[d+4>>2]&f[d+8>>2])));j=f[d+12>>2]|0;b=f[d+12>>2]|0;b=_b(j^(_b(b^(_b(f[d+12>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+20>>2]^f[d+12>>2]&(f[d+16>>2]^f[d+20>>2]))+(f[229]|0)|0;j=Zb(f[(f[i>>2]|0)+4>>2]|0)|0;f[e+4>>2]=j;a=d+24|0;f[a>>2]=(f[a>>2]|0)+(b+j);a=d+8|0;f[a>>2]=(f[a>>2]|0)+(f[d+24>>2]|0);a=f[d+28>>2]|0;j=f[d+28>>2]|0;j=_b(a^(_b(j^(_b(f[d+28>>2]|0,9)|0),11)|0),2)|0;a=d+24|0;f[a>>2]=(f[a>>2]|0)+(j+((f[d+28>>2]&(f[d>>2]^f[d+4>>2]))+(f[d>>2]&f[d+4>>2])));a=f[d+8>>2]|0;j=f[d+8>>2]|0;j=_b(a^(_b(j^(_b(f[d+8>>2]|0,14)|0),5)|0),6)|0;j=j+(f[d+16>>2]^f[d+8>>2]&(f[d+12>>2]^f[d+16>>2]))+(f[230]|0)|0;a=Zb(f[(f[i>>2]|0)+8>>2]|0)|0;f[e+8>>2]=a;b=d+20|0;f[b>>2]=(f[b>>2]|0)+(j+a);b=d+4|0;f[b>>2]=(f[b>>2]|0)+(f[d+20>>2]|0);b=f[d+24>>2]|0;a=f[d+24>>2]|0;a=_b(b^(_b(a^(_b(f[d+24>>2]|0,9)|0),11)|0),2)|0;b=d+20|0;f[b>>2]=(f[b>>2]|0)+(a+((f[d+24>>2]&(f[d+28>>2]^f[d>>2]))+(f[d+28>>2]&f[d>>2])));b=f[d+4>>2]|0;a=f[d+4>>2]|0;a=_b(b^(_b(a^(_b(f[d+4>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+12>>2]^f[d+4>>2]&(f[d+8>>2]^f[d+12>>2]))+(f[231]|0)|0;b=Zb(f[(f[i>>2]|0)+12>>2]|0)|0;f[e+12>>2]=b;j=d+16|0;f[j>>2]=(f[j>>2]|0)+(a+b);f[d>>2]=(f[d>>2]|0)+(f[d+16>>2]|0);j=f[d+20>>2]|0;b=f[d+20>>2]|0;b=_b(j^(_b(b^(_b(f[d+20>>2]|0,9)|0),11)|0),2)|0;j=d+16|0;f[j>>2]=(f[j>>2]|0)+(b+((f[d+20>>2]&(f[d+24>>2]^f[d+28>>2]))+(f[d+24>>2]&f[d+28>>2])));j=f[d>>2]|0;b=f[d>>2]|0;b=_b(j^(_b(b^(_b(f[d>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+8>>2]^f[d>>2]&(f[d+4>>2]^f[d+8>>2]))+(f[232]|0)|0;j=Zb(f[(f[i>>2]|0)+16>>2]|0)|0;f[e+16>>2]=j;a=d+12|0;f[a>>2]=(f[a>>2]|0)+(b+j);a=d+28|0;f[a>>2]=(f[a>>2]|0)+(f[d+12>>2]|0);a=f[d+16>>2]|0;j=f[d+16>>2]|0;j=_b(a^(_b(j^(_b(f[d+16>>2]|0,9)|0),11)|0),2)|0;a=d+12|0;f[a>>2]=(f[a>>2]|0)+(j+((f[d+16>>2]&(f[d+20>>2]^f[d+24>>2]))+(f[d+20>>2]&f[d+24>>2])));a=f[d+28>>2]|0;j=f[d+28>>2]|0;j=_b(a^(_b(j^(_b(f[d+28>>2]|0,14)|0),5)|0),6)|0;j=j+(f[d+4>>2]^f[d+28>>2]&(f[d>>2]^f[d+4>>2]))+(f[233]|0)|0;a=Zb(f[(f[i>>2]|0)+20>>2]|0)|0;f[e+20>>2]=a;b=d+8|0;f[b>>2]=(f[b>>2]|0)+(j+a);b=d+24|0;f[b>>2]=(f[b>>2]|0)+(f[d+8>>2]|0);b=f[d+12>>2]|0;a=f[d+12>>2]|0;a=_b(b^(_b(a^(_b(f[d+12>>2]|0,9)|0),11)|0),2)|0;b=d+8|0;f[b>>2]=(f[b>>2]|0)+(a+((f[d+12>>2]&(f[d+16>>2]^f[d+20>>2]))+(f[d+16>>2]&f[d+20>>2])));b=f[d+24>>2]|0;a=f[d+24>>2]|0;a=_b(b^(_b(a^(_b(f[d+24>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d>>2]^f[d+24>>2]&(f[d+28>>2]^f[d>>2]))+(f[234]|0)|0;b=Zb(f[(f[i>>2]|0)+24>>2]|0)|0;f[e+24>>2]=b;j=d+4|0;f[j>>2]=(f[j>>2]|0)+(a+b);j=d+20|0;f[j>>2]=(f[j>>2]|0)+(f[d+4>>2]|0);j=f[d+8>>2]|0;b=f[d+8>>2]|0;b=_b(j^(_b(b^(_b(f[d+8>>2]|0,9)|0),11)|0),2)|0;j=d+4|0;f[j>>2]=(f[j>>2]|0)+(b+((f[d+8>>2]&(f[d+12>>2]^f[d+16>>2]))+(f[d+12>>2]&f[d+16>>2])));j=f[d+20>>2]|0;b=f[d+20>>2]|0;b=_b(j^(_b(b^(_b(f[d+20>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+28>>2]^f[d+20>>2]&(f[d+24>>2]^f[d+28>>2]))+(f[235]|0)|0;j=Zb(f[(f[i>>2]|0)+28>>2]|0)|0;f[e+28>>2]=j;f[d>>2]=(f[d>>2]|0)+(b+j);j=d+16|0;f[j>>2]=(f[j>>2]|0)+(f[d>>2]|0);j=f[d+4>>2]|0;b=f[d+4>>2]|0;b=_b(j^(_b(b^(_b(f[d+4>>2]|0,9)|0),11)|0),2)|0;f[d>>2]=(f[d>>2]|0)+(b+((f[d+4>>2]&(f[d+8>>2]^f[d+12>>2]))+(f[d+8>>2]&f[d+12>>2])));b=f[d+16>>2]|0;j=f[d+16>>2]|0;j=_b(b^(_b(j^(_b(f[d+16>>2]|0,14)|0),5)|0),6)|0;j=j+(f[d+24>>2]^f[d+16>>2]&(f[d+20>>2]^f[d+24>>2]))+(f[236]|0)|0;b=Zb(f[(f[i>>2]|0)+32>>2]|0)|0;f[e+32>>2]=b;a=d+28|0;f[a>>2]=(f[a>>2]|0)+(j+b);a=d+12|0;f[a>>2]=(f[a>>2]|0)+(f[d+28>>2]|0);a=f[d>>2]|0;b=f[d>>2]|0;b=_b(a^(_b(b^(_b(f[d>>2]|0,9)|0),11)|0),2)|0;a=d+28|0;f[a>>2]=(f[a>>2]|0)+(b+((f[d>>2]&(f[d+4>>2]^f[d+8>>2]))+(f[d+4>>2]&f[d+8>>2])));a=f[d+12>>2]|0;b=f[d+12>>2]|0;b=_b(a^(_b(b^(_b(f[d+12>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+20>>2]^f[d+12>>2]&(f[d+16>>2]^f[d+20>>2]))+(f[237]|0)|0;a=Zb(f[(f[i>>2]|0)+36>>2]|0)|0;f[e+36>>2]=a;j=d+24|0;f[j>>2]=(f[j>>2]|0)+(b+a);j=d+8|0;f[j>>2]=(f[j>>2]|0)+(f[d+24>>2]|0);j=f[d+28>>2]|0;a=f[d+28>>2]|0;a=_b(j^(_b(a^(_b(f[d+28>>2]|0,9)|0),11)|0),2)|0;j=d+24|0;f[j>>2]=(f[j>>2]|0)+(a+((f[d+28>>2]&(f[d>>2]^f[d+4>>2]))+(f[d>>2]&f[d+4>>2])));j=f[d+8>>2]|0;a=f[d+8>>2]|0;a=_b(j^(_b(a^(_b(f[d+8>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+16>>2]^f[d+8>>2]&(f[d+12>>2]^f[d+16>>2]))+(f[238]|0)|0;j=Zb(f[(f[i>>2]|0)+40>>2]|0)|0;f[e+40>>2]=j;b=d+20|0;f[b>>2]=(f[b>>2]|0)+(a+j);b=d+4|0;f[b>>2]=(f[b>>2]|0)+(f[d+20>>2]|0);b=f[d+24>>2]|0;j=f[d+24>>2]|0;j=_b(b^(_b(j^(_b(f[d+24>>2]|0,9)|0),11)|0),2)|0;b=d+20|0;f[b>>2]=(f[b>>2]|0)+(j+((f[d+24>>2]&(f[d+28>>2]^f[d>>2]))+(f[d+28>>2]&f[d>>2])));b=f[d+4>>2]|0;j=f[d+4>>2]|0;j=_b(b^(_b(j^(_b(f[d+4>>2]|0,14)|0),5)|0),6)|0;j=j+(f[d+12>>2]^f[d+4>>2]&(f[d+8>>2]^f[d+12>>2]))+(f[239]|0)|0;b=Zb(f[(f[i>>2]|0)+44>>2]|0)|0;f[e+44>>2]=b;a=d+16|0;f[a>>2]=(f[a>>2]|0)+(j+b);f[d>>2]=(f[d>>2]|0)+(f[d+16>>2]|0);a=f[d+20>>2]|0;b=f[d+20>>2]|0;b=_b(a^(_b(b^(_b(f[d+20>>2]|0,9)|0),11)|0),2)|0;a=d+16|0;f[a>>2]=(f[a>>2]|0)+(b+((f[d+20>>2]&(f[d+24>>2]^f[d+28>>2]))+(f[d+24>>2]&f[d+28>>2])));a=f[d>>2]|0;b=f[d>>2]|0;b=_b(a^(_b(b^(_b(f[d>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+8>>2]^f[d>>2]&(f[d+4>>2]^f[d+8>>2]))+(f[240]|0)|0;a=Zb(f[(f[i>>2]|0)+48>>2]|0)|0;f[e+48>>2]=a;j=d+12|0;f[j>>2]=(f[j>>2]|0)+(b+a);j=d+28|0;f[j>>2]=(f[j>>2]|0)+(f[d+12>>2]|0);j=f[d+16>>2]|0;a=f[d+16>>2]|0;a=_b(j^(_b(a^(_b(f[d+16>>2]|0,9)|0),11)|0),2)|0;j=d+12|0;f[j>>2]=(f[j>>2]|0)+(a+((f[d+16>>2]&(f[d+20>>2]^f[d+24>>2]))+(f[d+20>>2]&f[d+24>>2])));j=f[d+28>>2]|0;a=f[d+28>>2]|0;a=_b(j^(_b(a^(_b(f[d+28>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+4>>2]^f[d+28>>2]&(f[d>>2]^f[d+4>>2]))+(f[241]|0)|0;j=Zb(f[(f[i>>2]|0)+52>>2]|0)|0;f[e+52>>2]=j;b=d+8|0;f[b>>2]=(f[b>>2]|0)+(a+j);b=d+24|0;f[b>>2]=(f[b>>2]|0)+(f[d+8>>2]|0);b=f[d+12>>2]|0;j=f[d+12>>2]|0;j=_b(b^(_b(j^(_b(f[d+12>>2]|0,9)|0),11)|0),2)|0;b=d+8|0;f[b>>2]=(f[b>>2]|0)+(j+((f[d+12>>2]&(f[d+16>>2]^f[d+20>>2]))+(f[d+16>>2]&f[d+20>>2])));b=f[d+24>>2]|0;j=f[d+24>>2]|0;j=_b(b^(_b(j^(_b(f[d+24>>2]|0,14)|0),5)|0),6)|0;j=j+(f[d>>2]^f[d+24>>2]&(f[d+28>>2]^f[d>>2]))+(f[242]|0)|0;b=Zb(f[(f[i>>2]|0)+56>>2]|0)|0;f[e+56>>2]=b;a=d+4|0;f[a>>2]=(f[a>>2]|0)+(j+b);a=d+20|0;f[a>>2]=(f[a>>2]|0)+(f[d+4>>2]|0);a=f[d+8>>2]|0;b=f[d+8>>2]|0;b=_b(a^(_b(b^(_b(f[d+8>>2]|0,9)|0),11)|0),2)|0;a=d+4|0;f[a>>2]=(f[a>>2]|0)+(b+((f[d+8>>2]&(f[d+12>>2]^f[d+16>>2]))+(f[d+12>>2]&f[d+16>>2])));a=f[d+20>>2]|0;b=f[d+20>>2]|0;b=_b(a^(_b(b^(_b(f[d+20>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+28>>2]^f[d+20>>2]&(f[d+24>>2]^f[d+28>>2]))+(f[243]|0)|0;a=Zb(f[(f[i>>2]|0)+60>>2]|0)|0;f[e+60>>2]=a;f[d>>2]=(f[d>>2]|0)+(b+a);a=d+16|0;f[a>>2]=(f[a>>2]|0)+(f[d>>2]|0);a=f[d+4>>2]|0;b=f[d+4>>2]|0;b=_b(a^(_b(b^(_b(f[d+4>>2]|0,9)|0),11)|0),2)|0;f[d>>2]=(f[d>>2]|0)+(b+((f[d+4>>2]&(f[d+8>>2]^f[d+12>>2]))+(f[d+8>>2]&f[d+12>>2])));f[g>>2]=16;while(1){if((f[g>>2]|0)>>>0>=64)break;j=f[d+16>>2]|0;a=f[d+16>>2]|0;a=_b(j^(_b(a^(_b(f[d+16>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+24>>2]^f[d+16>>2]&(f[d+20>>2]^f[d+24>>2]))+(f[912+(0+(f[g>>2]|0)<<2)>>2]|0)|0;j=f[e+56>>2]|0;j=_b(j^(_b(f[e+56>>2]|0,2)|0),17)|0;j=(j^(f[e+56>>2]|0)>>>10)+(f[e+36>>2]|0)|0;i=f[e+4>>2]|0;i=_b(i^(_b(f[e+4>>2]|0,11)|0),7)|0;i=(f[e>>2]|0)+(j+(i^(f[e+4>>2]|0)>>>3))|0;f[e>>2]=i;j=d+28|0;f[j>>2]=(f[j>>2]|0)+(a+i);j=d+12|0;f[j>>2]=(f[j>>2]|0)+(f[d+28>>2]|0);j=f[d>>2]|0;i=f[d>>2]|0;i=_b(j^(_b(i^(_b(f[d>>2]|0,9)|0),11)|0),2)|0;j=d+28|0;f[j>>2]=(f[j>>2]|0)+(i+((f[d>>2]&(f[d+4>>2]^f[d+8>>2]))+(f[d+4>>2]&f[d+8>>2])));j=f[d+12>>2]|0;i=f[d+12>>2]|0;i=_b(j^(_b(i^(_b(f[d+12>>2]|0,14)|0),5)|0),6)|0;i=i+(f[d+20>>2]^f[d+12>>2]&(f[d+16>>2]^f[d+20>>2]))+(f[912+(1+(f[g>>2]|0)<<2)>>2]|0)|0;j=f[e+60>>2]|0;j=_b(j^(_b(f[e+60>>2]|0,2)|0),17)|0;j=(j^(f[e+60>>2]|0)>>>10)+(f[e+40>>2]|0)|0;a=f[e+8>>2]|0;a=_b(a^(_b(f[e+8>>2]|0,11)|0),7)|0;b=e+4|0;a=(f[b>>2]|0)+(j+(a^(f[e+8>>2]|0)>>>3))|0;f[b>>2]=a;b=d+24|0;f[b>>2]=(f[b>>2]|0)+(i+a);b=d+8|0;f[b>>2]=(f[b>>2]|0)+(f[d+24>>2]|0);b=f[d+28>>2]|0;a=f[d+28>>2]|0;a=_b(b^(_b(a^(_b(f[d+28>>2]|0,9)|0),11)|0),2)|0;b=d+24|0;f[b>>2]=(f[b>>2]|0)+(a+((f[d+28>>2]&(f[d>>2]^f[d+4>>2]))+(f[d>>2]&f[d+4>>2])));b=f[d+8>>2]|0;a=f[d+8>>2]|0;a=_b(b^(_b(a^(_b(f[d+8>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+16>>2]^f[d+8>>2]&(f[d+12>>2]^f[d+16>>2]))+(f[912+(2+(f[g>>2]|0)<<2)>>2]|0)|0;b=f[e>>2]|0;b=_b(b^(_b(f[e>>2]|0,2)|0),17)|0;b=(b^(f[e>>2]|0)>>>10)+(f[e+44>>2]|0)|0;i=f[e+12>>2]|0;i=_b(i^(_b(f[e+12>>2]|0,11)|0),7)|0;j=e+8|0;i=(f[j>>2]|0)+(b+(i^(f[e+12>>2]|0)>>>3))|0;f[j>>2]=i;j=d+20|0;f[j>>2]=(f[j>>2]|0)+(a+i);j=d+4|0;f[j>>2]=(f[j>>2]|0)+(f[d+20>>2]|0);j=f[d+24>>2]|0;i=f[d+24>>2]|0;i=_b(j^(_b(i^(_b(f[d+24>>2]|0,9)|0),11)|0),2)|0;j=d+20|0;f[j>>2]=(f[j>>2]|0)+(i+((f[d+24>>2]&(f[d+28>>2]^f[d>>2]))+(f[d+28>>2]&f[d>>2])));j=f[d+4>>2]|0;i=f[d+4>>2]|0;i=_b(j^(_b(i^(_b(f[d+4>>2]|0,14)|0),5)|0),6)|0;i=i+(f[d+12>>2]^f[d+4>>2]&(f[d+8>>2]^f[d+12>>2]))+(f[912+(3+(f[g>>2]|0)<<2)>>2]|0)|0;j=f[e+4>>2]|0;j=_b(j^(_b(f[e+4>>2]|0,2)|0),17)|0;j=(j^(f[e+4>>2]|0)>>>10)+(f[e+48>>2]|0)|0;a=f[e+16>>2]|0;a=_b(a^(_b(f[e+16>>2]|0,11)|0),7)|0;b=e+12|0;a=(f[b>>2]|0)+(j+(a^(f[e+16>>2]|0)>>>3))|0;f[b>>2]=a;b=d+16|0;f[b>>2]=(f[b>>2]|0)+(i+a);f[d>>2]=(f[d>>2]|0)+(f[d+16>>2]|0);b=f[d+20>>2]|0;a=f[d+20>>2]|0;a=_b(b^(_b(a^(_b(f[d+20>>2]|0,9)|0),11)|0),2)|0;b=d+16|0;f[b>>2]=(f[b>>2]|0)+(a+((f[d+20>>2]&(f[d+24>>2]^f[d+28>>2]))+(f[d+24>>2]&f[d+28>>2])));b=f[d>>2]|0;a=f[d>>2]|0;a=_b(b^(_b(a^(_b(f[d>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+8>>2]^f[d>>2]&(f[d+4>>2]^f[d+8>>2]))+(f[912+(4+(f[g>>2]|0)<<2)>>2]|0)|0;b=f[e+8>>2]|0;b=_b(b^(_b(f[e+8>>2]|0,2)|0),17)|0;b=(b^(f[e+8>>2]|0)>>>10)+(f[e+52>>2]|0)|0;i=f[e+20>>2]|0;i=_b(i^(_b(f[e+20>>2]|0,11)|0),7)|0;j=e+16|0;i=(f[j>>2]|0)+(b+(i^(f[e+20>>2]|0)>>>3))|0;f[j>>2]=i;j=d+12|0;f[j>>2]=(f[j>>2]|0)+(a+i);j=d+28|0;f[j>>2]=(f[j>>2]|0)+(f[d+12>>2]|0);j=f[d+16>>2]|0;i=f[d+16>>2]|0;i=_b(j^(_b(i^(_b(f[d+16>>2]|0,9)|0),11)|0),2)|0;j=d+12|0;f[j>>2]=(f[j>>2]|0)+(i+((f[d+16>>2]&(f[d+20>>2]^f[d+24>>2]))+(f[d+20>>2]&f[d+24>>2])));j=f[d+28>>2]|0;i=f[d+28>>2]|0;i=_b(j^(_b(i^(_b(f[d+28>>2]|0,14)|0),5)|0),6)|0;i=i+(f[d+4>>2]^f[d+28>>2]&(f[d>>2]^f[d+4>>2]))+(f[912+(5+(f[g>>2]|0)<<2)>>2]|0)|0;j=f[e+12>>2]|0;j=_b(j^(_b(f[e+12>>2]|0,2)|0),17)|0;j=(j^(f[e+12>>2]|0)>>>10)+(f[e+56>>2]|0)|0;a=f[e+24>>2]|0;a=_b(a^(_b(f[e+24>>2]|0,11)|0),7)|0;b=e+20|0;a=(f[b>>2]|0)+(j+(a^(f[e+24>>2]|0)>>>3))|0;f[b>>2]=a;b=d+8|0;f[b>>2]=(f[b>>2]|0)+(i+a);b=d+24|0;f[b>>2]=(f[b>>2]|0)+(f[d+8>>2]|0);b=f[d+12>>2]|0;a=f[d+12>>2]|0;a=_b(b^(_b(a^(_b(f[d+12>>2]|0,9)|0),11)|0),2)|0;b=d+8|0;f[b>>2]=(f[b>>2]|0)+(a+((f[d+12>>2]&(f[d+16>>2]^f[d+20>>2]))+(f[d+16>>2]&f[d+20>>2])));b=f[d+24>>2]|0;a=f[d+24>>2]|0;a=_b(b^(_b(a^(_b(f[d+24>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d>>2]^f[d+24>>2]&(f[d+28>>2]^f[d>>2]))+(f[912+(6+(f[g>>2]|0)<<2)>>2]|0)|0;b=f[e+16>>2]|0;b=_b(b^(_b(f[e+16>>2]|0,2)|0),17)|0;b=(b^(f[e+16>>2]|0)>>>10)+(f[e+60>>2]|0)|0;i=f[e+28>>2]|0;i=_b(i^(_b(f[e+28>>2]|0,11)|0),7)|0;j=e+24|0;i=(f[j>>2]|0)+(b+(i^(f[e+28>>2]|0)>>>3))|0;f[j>>2]=i;j=d+4|0;f[j>>2]=(f[j>>2]|0)+(a+i);j=d+20|0;f[j>>2]=(f[j>>2]|0)+(f[d+4>>2]|0);j=f[d+8>>2]|0;i=f[d+8>>2]|0;i=_b(j^(_b(i^(_b(f[d+8>>2]|0,9)|0),11)|0),2)|0;j=d+4|0;f[j>>2]=(f[j>>2]|0)+(i+((f[d+8>>2]&(f[d+12>>2]^f[d+16>>2]))+(f[d+12>>2]&f[d+16>>2])));j=f[d+20>>2]|0;i=f[d+20>>2]|0;i=_b(j^(_b(i^(_b(f[d+20>>2]|0,14)|0),5)|0),6)|0;i=i+(f[d+28>>2]^f[d+20>>2]&(f[d+24>>2]^f[d+28>>2]))+(f[912+(7+(f[g>>2]|0)<<2)>>2]|0)|0;j=f[e+20>>2]|0;j=_b(j^(_b(f[e+20>>2]|0,2)|0),17)|0;j=(j^(f[e+20>>2]|0)>>>10)+(f[e>>2]|0)|0;a=f[e+32>>2]|0;a=_b(a^(_b(f[e+32>>2]|0,11)|0),7)|0;b=e+28|0;a=(f[b>>2]|0)+(j+(a^(f[e+32>>2]|0)>>>3))|0;f[b>>2]=a;f[d>>2]=(f[d>>2]|0)+(i+a);a=d+16|0;f[a>>2]=(f[a>>2]|0)+(f[d>>2]|0);a=f[d+4>>2]|0;i=f[d+4>>2]|0;i=_b(a^(_b(i^(_b(f[d+4>>2]|0,9)|0),11)|0),2)|0;f[d>>2]=(f[d>>2]|0)+(i+((f[d+4>>2]&(f[d+8>>2]^f[d+12>>2]))+(f[d+8>>2]&f[d+12>>2])));i=f[d+16>>2]|0;a=f[d+16>>2]|0;a=_b(i^(_b(a^(_b(f[d+16>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+24>>2]^f[d+16>>2]&(f[d+20>>2]^f[d+24>>2]))+(f[912+(8+(f[g>>2]|0)<<2)>>2]|0)|0;i=f[e+24>>2]|0;i=_b(i^(_b(f[e+24>>2]|0,2)|0),17)|0;i=(i^(f[e+24>>2]|0)>>>10)+(f[e+4>>2]|0)|0;b=f[e+36>>2]|0;b=_b(b^(_b(f[e+36>>2]|0,11)|0),7)|0;j=e+32|0;b=(f[j>>2]|0)+(i+(b^(f[e+36>>2]|0)>>>3))|0;f[j>>2]=b;j=d+28|0;f[j>>2]=(f[j>>2]|0)+(a+b);j=d+12|0;f[j>>2]=(f[j>>2]|0)+(f[d+28>>2]|0);j=f[d>>2]|0;b=f[d>>2]|0;b=_b(j^(_b(b^(_b(f[d>>2]|0,9)|0),11)|0),2)|0;j=d+28|0;f[j>>2]=(f[j>>2]|0)+(b+((f[d>>2]&(f[d+4>>2]^f[d+8>>2]))+(f[d+4>>2]&f[d+8>>2])));j=f[d+12>>2]|0;b=f[d+12>>2]|0;b=_b(j^(_b(b^(_b(f[d+12>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+20>>2]^f[d+12>>2]&(f[d+16>>2]^f[d+20>>2]))+(f[912+(9+(f[g>>2]|0)<<2)>>2]|0)|0;j=f[e+28>>2]|0;j=_b(j^(_b(f[e+28>>2]|0,2)|0),17)|0;j=(j^(f[e+28>>2]|0)>>>10)+(f[e+8>>2]|0)|0;a=f[e+40>>2]|0;a=_b(a^(_b(f[e+40>>2]|0,11)|0),7)|0;i=e+36|0;a=(f[i>>2]|0)+(j+(a^(f[e+40>>2]|0)>>>3))|0;f[i>>2]=a;i=d+24|0;f[i>>2]=(f[i>>2]|0)+(b+a);i=d+8|0;f[i>>2]=(f[i>>2]|0)+(f[d+24>>2]|0);i=f[d+28>>2]|0;a=f[d+28>>2]|0;a=_b(i^(_b(a^(_b(f[d+28>>2]|0,9)|0),11)|0),2)|0;i=d+24|0;f[i>>2]=(f[i>>2]|0)+(a+((f[d+28>>2]&(f[d>>2]^f[d+4>>2]))+(f[d>>2]&f[d+4>>2])));i=f[d+8>>2]|0;a=f[d+8>>2]|0;a=_b(i^(_b(a^(_b(f[d+8>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+16>>2]^f[d+8>>2]&(f[d+12>>2]^f[d+16>>2]))+(f[912+(10+(f[g>>2]|0)<<2)>>2]|0)|0;i=f[e+32>>2]|0;i=_b(i^(_b(f[e+32>>2]|0,2)|0),17)|0;i=(i^(f[e+32>>2]|0)>>>10)+(f[e+12>>2]|0)|0;b=f[e+44>>2]|0;b=_b(b^(_b(f[e+44>>2]|0,11)|0),7)|0;j=e+40|0;b=(f[j>>2]|0)+(i+(b^(f[e+44>>2]|0)>>>3))|0;f[j>>2]=b;j=d+20|0;f[j>>2]=(f[j>>2]|0)+(a+b);j=d+4|0;f[j>>2]=(f[j>>2]|0)+(f[d+20>>2]|0);j=f[d+24>>2]|0;b=f[d+24>>2]|0;b=_b(j^(_b(b^(_b(f[d+24>>2]|0,9)|0),11)|0),2)|0;j=d+20|0;f[j>>2]=(f[j>>2]|0)+(b+((f[d+24>>2]&(f[d+28>>2]^f[d>>2]))+(f[d+28>>2]&f[d>>2])));j=f[d+4>>2]|0;b=f[d+4>>2]|0;b=_b(j^(_b(b^(_b(f[d+4>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+12>>2]^f[d+4>>2]&(f[d+8>>2]^f[d+12>>2]))+(f[912+(11+(f[g>>2]|0)<<2)>>2]|0)|0;j=f[e+36>>2]|0;j=_b(j^(_b(f[e+36>>2]|0,2)|0),17)|0;j=(j^(f[e+36>>2]|0)>>>10)+(f[e+16>>2]|0)|0;a=f[e+48>>2]|0;a=_b(a^(_b(f[e+48>>2]|0,11)|0),7)|0;i=e+44|0;a=(f[i>>2]|0)+(j+(a^(f[e+48>>2]|0)>>>3))|0;f[i>>2]=a;i=d+16|0;f[i>>2]=(f[i>>2]|0)+(b+a);f[d>>2]=(f[d>>2]|0)+(f[d+16>>2]|0);i=f[d+20>>2]|0;a=f[d+20>>2]|0;a=_b(i^(_b(a^(_b(f[d+20>>2]|0,9)|0),11)|0),2)|0;i=d+16|0;f[i>>2]=(f[i>>2]|0)+(a+((f[d+20>>2]&(f[d+24>>2]^f[d+28>>2]))+(f[d+24>>2]&f[d+28>>2])));i=f[d>>2]|0;a=f[d>>2]|0;a=_b(i^(_b(a^(_b(f[d>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d+8>>2]^f[d>>2]&(f[d+4>>2]^f[d+8>>2]))+(f[912+(12+(f[g>>2]|0)<<2)>>2]|0)|0;i=f[e+40>>2]|0;i=_b(i^(_b(f[e+40>>2]|0,2)|0),17)|0;i=(i^(f[e+40>>2]|0)>>>10)+(f[e+20>>2]|0)|0;b=f[e+52>>2]|0;b=_b(b^(_b(f[e+52>>2]|0,11)|0),7)|0;j=e+48|0;b=(f[j>>2]|0)+(i+(b^(f[e+52>>2]|0)>>>3))|0;f[j>>2]=b;j=d+12|0;f[j>>2]=(f[j>>2]|0)+(a+b);j=d+28|0;f[j>>2]=(f[j>>2]|0)+(f[d+12>>2]|0);j=f[d+16>>2]|0;b=f[d+16>>2]|0;b=_b(j^(_b(b^(_b(f[d+16>>2]|0,9)|0),11)|0),2)|0;j=d+12|0;f[j>>2]=(f[j>>2]|0)+(b+((f[d+16>>2]&(f[d+20>>2]^f[d+24>>2]))+(f[d+20>>2]&f[d+24>>2])));j=f[d+28>>2]|0;b=f[d+28>>2]|0;b=_b(j^(_b(b^(_b(f[d+28>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+4>>2]^f[d+28>>2]&(f[d>>2]^f[d+4>>2]))+(f[912+(13+(f[g>>2]|0)<<2)>>2]|0)|0;j=f[e+44>>2]|0;j=_b(j^(_b(f[e+44>>2]|0,2)|0),17)|0;j=(j^(f[e+44>>2]|0)>>>10)+(f[e+24>>2]|0)|0;a=f[e+56>>2]|0;a=_b(a^(_b(f[e+56>>2]|0,11)|0),7)|0;i=e+52|0;a=(f[i>>2]|0)+(j+(a^(f[e+56>>2]|0)>>>3))|0;f[i>>2]=a;i=d+8|0;f[i>>2]=(f[i>>2]|0)+(b+a);i=d+24|0;f[i>>2]=(f[i>>2]|0)+(f[d+8>>2]|0);i=f[d+12>>2]|0;a=f[d+12>>2]|0;a=_b(i^(_b(a^(_b(f[d+12>>2]|0,9)|0),11)|0),2)|0;i=d+8|0;f[i>>2]=(f[i>>2]|0)+(a+((f[d+12>>2]&(f[d+16>>2]^f[d+20>>2]))+(f[d+16>>2]&f[d+20>>2])));i=f[d+24>>2]|0;a=f[d+24>>2]|0;a=_b(i^(_b(a^(_b(f[d+24>>2]|0,14)|0),5)|0),6)|0;a=a+(f[d>>2]^f[d+24>>2]&(f[d+28>>2]^f[d>>2]))+(f[912+(14+(f[g>>2]|0)<<2)>>2]|0)|0;i=f[e+48>>2]|0;i=_b(i^(_b(f[e+48>>2]|0,2)|0),17)|0;i=(i^(f[e+48>>2]|0)>>>10)+(f[e+28>>2]|0)|0;b=f[e+60>>2]|0;b=_b(b^(_b(f[e+60>>2]|0,11)|0),7)|0;j=e+56|0;b=(f[j>>2]|0)+(i+(b^(f[e+60>>2]|0)>>>3))|0;f[j>>2]=b;j=d+4|0;f[j>>2]=(f[j>>2]|0)+(a+b);j=d+20|0;f[j>>2]=(f[j>>2]|0)+(f[d+4>>2]|0);j=f[d+8>>2]|0;b=f[d+8>>2]|0;b=_b(j^(_b(b^(_b(f[d+8>>2]|0,9)|0),11)|0),2)|0;j=d+4|0;f[j>>2]=(f[j>>2]|0)+(b+((f[d+8>>2]&(f[d+12>>2]^f[d+16>>2]))+(f[d+12>>2]&f[d+16>>2])));j=f[d+20>>2]|0;b=f[d+20>>2]|0;b=_b(j^(_b(b^(_b(f[d+20>>2]|0,14)|0),5)|0),6)|0;b=b+(f[d+28>>2]^f[d+20>>2]&(f[d+24>>2]^f[d+28>>2]))+(f[912+(15+(f[g>>2]|0)<<2)>>2]|0)|0;j=f[e+52>>2]|0;j=_b(j^(_b(f[e+52>>2]|0,2)|0),17)|0;j=(j^(f[e+52>>2]|0)>>>10)+(f[e+32>>2]|0)|0;a=f[e>>2]|0;a=_b(a^(_b(f[e>>2]|0,11)|0),7)|0;i=e+60|0;a=(f[i>>2]|0)+(j+(a^(f[e>>2]|0)>>>3))|0;f[i>>2]=a;f[d>>2]=(f[d>>2]|0)+(b+a);a=d+16|0;f[a>>2]=(f[a>>2]|0)+(f[d>>2]|0);a=f[d+4>>2]|0;b=f[d+4>>2]|0;b=_b(a^(_b(b^(_b(f[d+4>>2]|0,9)|0),11)|0),2)|0;f[d>>2]=(f[d>>2]|0)+(b+((f[d+4>>2]&(f[d+8>>2]^f[d+12>>2]))+(f[d+8>>2]&f[d+12>>2])));f[g>>2]=(f[g>>2]|0)+16}e=f[c>>2]|0;f[e>>2]=(f[e>>2]|0)+(f[d>>2]|0);e=(f[c>>2]|0)+4|0;f[e>>2]=(f[e>>2]|0)+(f[d+4>>2]|0);e=(f[c>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+(f[d+8>>2]|0);e=(f[c>>2]|0)+12|0;f[e>>2]=(f[e>>2]|0)+(f[d+12>>2]|0);e=(f[c>>2]|0)+16|0;f[e>>2]=(f[e>>2]|0)+(f[d+16>>2]|0);e=(f[c>>2]|0)+20|0;f[e>>2]=(f[e>>2]|0)+(f[d+20>>2]|0);e=(f[c>>2]|0)+24|0;f[e>>2]=(f[e>>2]|0)+(f[d+24>>2]|0);c=(f[c>>2]|0)+28|0;f[c>>2]=(f[c>>2]|0)+(f[d+28>>2]|0);l=h;return}function _b(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=l;l=l+16|0;d=e+4|0;c=e;f[d>>2]=a;f[c>>2]=b;l=e;return(f[d>>2]|0)>>>(f[c>>2]|0)|f[d>>2]<<32-(f[c>>2]|0)|0}function ac(a,b){a=a|0;b=b|0;var c=0,e=0,h=0,i=0,j=0,k=0;j=l;l=l+32|0;e=j+20|0;h=j+16|0;k=j+12|0;i=j+8|0;c=j+4|0;f[h>>2]=a;f[k>>2]=b;f[i>>2]=f[k>>2]&31;f[c>>2]=f[k>>2]&-32;f[j>>2]=-2147483648;if((f[i>>2]|0)>>>0<=9?(f[c>>2]&2147483647|0)==0:0){f[(f[h>>2]|0)+4>>2]=0;f[(f[h>>2]|0)+8>>2]=0;f[(f[h>>2]|0)+12>>2]=3;f[(f[h>>2]|0)+16>>2]=0;f[(f[h>>2]|0)+20>>2]=2;f[f[h>>2]>>2]=1<<(g[1168+(f[i>>2]|0)>>0]|0);a=(f[h>>2]|0)+24|0;if((f[i>>2]|0)>>>0<=3){f[a>>2]=1;f[(f[h>>2]|0)+32>>2]=(f[i>>2]|0)==0?3:4;f[(f[h>>2]|0)+28>>2]=(f[i>>2]|0)>>>0<=1?128:273;f[(f[h>>2]|0)+36>>2]=g[1184+(f[i>>2]|0)>>0]}else{f[a>>2]=2;f[(f[h>>2]|0)+32>>2]=20;if((f[i>>2]|0)==4)a=16;else a=(f[i>>2]|0)==5?32:64;f[(f[h>>2]|0)+28>>2]=a;f[(f[h>>2]|0)+36>>2]=0}do if(f[c>>2]&-2147483648){f[(f[h>>2]|0)+24>>2]=2;f[(f[h>>2]|0)+32>>2]=20;a=(f[h>>2]|0)+28|0;if((f[i>>2]|0)==3|(f[i>>2]|0)==5){f[a>>2]=192;f[(f[h>>2]|0)+36>>2]=0;break}else{f[a>>2]=273;f[(f[h>>2]|0)+36>>2]=512;break}}while(0);d[e>>0]=0;a=d[e>>0]|0;l=j;return a|0}d[e>>0]=1;a=d[e>>0]|0;l=j;return a|0}function bc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;e=l;l=l+32|0;b=e+8|0;c=e+16|0;d=e;f[c>>2]=a;do if(((((f[c>>2]|0)!=0?(f[f[c>>2]>>2]|0)>>>0<=1:0)?(f[(f[c>>2]|0)+4>>2]|0)>>>0>=8:0)?(f[(f[c>>2]|0)+4>>2]|0)>>>0<=1024:0)?(f[(f[c>>2]|0)+4>>2]&3|0)==0:0){a=(f[c>>2]|0)+16|0;g=f[a+4>>2]|0;if(!(g>>>0<2147483647|(g|0)==2147483647&(f[a>>2]|0)>>>0<=4294967295)?(a=(f[c>>2]|0)+16|0,!((f[a>>2]|0)==-1?(f[a+4>>2]|0)==-1:0)):0)break;a=(f[c>>2]|0)+16|0;if(!((f[a>>2]|0)==0&(f[a+4>>2]|0)==0)?(f[(f[c>>2]|0)+8>>2]|0)>>>0<=15:0){a=(f[c>>2]|0)+16|0;if((f[a>>2]|0)==-1?(f[a+4>>2]|0)==-1:0){c=b;f[c>>2]=-1;f[c+4>>2]=-1;c=b;b=c;b=f[b>>2]|0;c=c+4|0;c=f[c>>2]|0;G=c;l=e;return b|0}g=(f[c>>2]|0)+16|0;g=hh(f[g>>2]|0,f[g+4>>2]|0,f[(f[c>>2]|0)+4>>2]|0,0)|0;a=G;a=hh(g|0,a|0,Ob(f[(f[c>>2]|0)+8>>2]|0)|0,0)|0;c=d;f[c>>2]=a;f[c+4>>2]=G;c=d;a=f[c+4>>2]|0;if(a>>>0>2147483647|(a|0)==2147483647&(f[c>>2]|0)>>>0>4294967292){c=b;f[c>>2]=0;f[c+4>>2]=0;c=b;b=c;b=f[b>>2]|0;c=c+4|0;c=f[c>>2]|0;G=c;l=e;return b|0}else{a=f[d+4>>2]|0;c=b;f[c>>2]=f[d>>2];f[c+4>>2]=a;c=b;b=c;b=f[b>>2]|0;c=c+4|0;c=f[c>>2]|0;G=c;l=e;return b|0}}}while(0);c=b;f[c>>2]=0;f[c+4>>2]=0;c=b;b=c;b=f[b>>2]|0;c=c+4|0;c=f[c>>2]|0;G=c;l=e;return b|0}function cc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;g=m+24|0;d=m+20|0;h=m+16|0;i=m+12|0;k=m+8|0;j=m+4|0;e=m;f[d>>2]=a;f[h>>2]=b;f[i>>2]=c;if((f[d>>2]|0)==0|(f[h>>2]|0)==0){f[g>>2]=11;k=f[g>>2]|0;l=m;return k|0}f[j>>2]=0;a:while(1){a=(f[d>>2]|0)+(f[j>>2]<<4)|0;c=f[j>>2]|0;if(!((f[a>>2]|0)!=-1?1:(f[a+4>>2]|0)!=-1)){b=18;break}if((c|0)==4){b=6;break}b=(f[d>>2]|0)+(f[j>>2]<<4)|0;c=f[b+4>>2]|0;a=(f[h>>2]|0)+(f[j>>2]<<4)|0;f[a>>2]=f[b>>2];f[a+4>>2]=c;if(!(f[(f[d>>2]|0)+(f[j>>2]<<4)+8>>2]|0))f[(f[h>>2]|0)+(f[j>>2]<<4)+8>>2]=0;else{f[e>>2]=0;while(1){c=(f[d>>2]|0)+(f[j>>2]<<4)|0;a=1192+(f[e>>2]<<4)|0;b=1192+(f[e>>2]<<4)|0;if(!((f[c>>2]|0)!=(f[a>>2]|0)?1:(f[c+4>>2]|0)!=(f[a+4>>2]|0)))break;a=b;if((f[a>>2]|0)==-1?(f[a+4>>2]|0)==-1:0){b=12;break a}f[e>>2]=(f[e>>2]|0)+1}a=hb(f[b+8>>2]|0,f[i>>2]|0)|0;f[(f[h>>2]|0)+(f[j>>2]<<4)+8>>2]=a;if(!(f[(f[h>>2]|0)+(f[j>>2]<<4)+8>>2]|0)){b=15;break}gh(f[(f[h>>2]|0)+(f[j>>2]<<4)+8>>2]|0,f[(f[d>>2]|0)+(f[j>>2]<<4)+8>>2]|0,f[1192+(f[e>>2]<<4)+8>>2]|0)|0}f[j>>2]=(f[j>>2]|0)+1}if((b|0)==6)f[k>>2]=8;else if((b|0)==12)f[k>>2]=8;else if((b|0)==15)f[k>>2]=5;else if((b|0)==18){k=(f[h>>2]|0)+(c<<4)|0;f[k>>2]=-1;f[k+4>>2]=-1;f[(f[h>>2]|0)+(f[j>>2]<<4)+8>>2]=0;f[g>>2]=0;k=f[g>>2]|0;l=m;return k|0}while(1){e=f[j>>2]|0;f[j>>2]=e+-1;if(e>>>0<=0)break;jb(f[(f[h>>2]|0)+(f[j>>2]<<4)+8>>2]|0,f[i>>2]|0);f[(f[h>>2]|0)+(f[j>>2]<<4)+8>>2]=0}f[g>>2]=f[k>>2];k=f[g>>2]|0;l=m;return k|0}function dc(a,b,c,e,g){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+144|0;h=x+128|0;i=x+124|0;j=x+120|0;k=x+116|0;m=x+112|0;n=x+132|0;o=x+108|0;w=x+104|0;r=x;s=x+100|0;u=x+96|0;p=x+92|0;t=x+88|0;q=x+84|0;v=x+80|0;f[i>>2]=a;f[j>>2]=b;f[k>>2]=c;f[m>>2]=e;d[n>>0]=g&1;f[w>>2]=fc(f[k>>2]|0,o)|0;if(f[w>>2]|0){f[h>>2]=f[w>>2];p=f[h>>2]|0;l=x;return p|0}a:do if(d[n>>0]&1){f[s>>2]=0;while(1){if((f[s>>2]|0)>>>0>=(f[o>>2]|0)>>>0)break a;f[u>>2]=(f[o>>2]|0)-(f[s>>2]|0)-1;e=(f[k>>2]|0)+(f[s>>2]<<4)|0;f[p>>2]=Oh[f[m>>2]&15](f[e>>2]|0,f[e+4>>2]|0)|0;if(!(f[p>>2]|0))break;if(!(f[(f[p>>2]|0)+8>>2]|0))break;n=(f[k>>2]|0)+(f[s>>2]<<4)|0;b=f[n+4>>2]|0;e=r+(f[u>>2]<<4)|0;f[e>>2]=f[n>>2];f[e+4>>2]=b;f[r+(f[u>>2]<<4)+8>>2]=f[(f[p>>2]|0)+8>>2];f[r+(f[u>>2]<<4)+12>>2]=f[(f[k>>2]|0)+(f[s>>2]<<4)+8>>2];f[s>>2]=(f[s>>2]|0)+1}f[h>>2]=8;p=f[h>>2]|0;l=x;return p|0}else{f[t>>2]=0;while(1){if((f[t>>2]|0)>>>0>=(f[o>>2]|0)>>>0)break a;p=(f[k>>2]|0)+(f[t>>2]<<4)|0;f[q>>2]=Oh[f[m>>2]&15](f[p>>2]|0,f[p+4>>2]|0)|0;if(!(f[q>>2]|0))break;if(!(f[(f[q>>2]|0)+8>>2]|0))break;b=(f[k>>2]|0)+(f[t>>2]<<4)|0;e=f[b+4>>2]|0;p=r+(f[t>>2]<<4)|0;f[p>>2]=f[b>>2];f[p+4>>2]=e;f[r+(f[t>>2]<<4)+8>>2]=f[(f[q>>2]|0)+8>>2];f[r+(f[t>>2]<<4)+12>>2]=f[(f[k>>2]|0)+(f[t>>2]<<4)+8>>2];f[t>>2]=(f[t>>2]|0)+1}f[h>>2]=8;p=f[h>>2]|0;l=x;return p|0}while(0);p=r+(f[o>>2]<<4)|0;f[p>>2]=-1;f[p+4>>2]=-1;f[r+(f[o>>2]<<4)+8>>2]=0;f[v>>2]=lb(f[i>>2]|0,f[j>>2]|0,r)|0;if(f[v>>2]|0)mb(f[i>>2]|0,f[j>>2]|0);f[h>>2]=f[v>>2];p=f[h>>2]|0;l=x;return p|0}function ec(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+48|0;i=k+16|0;c=k+40|0;d=k+36|0;j=k+8|0;g=k+28|0;e=k+24|0;h=k;f[c>>2]=a;f[d>>2]=b;if(fc(f[d>>2]|0,k+32|0)|0){d=i;f[d>>2]=-1;f[d+4>>2]=-1;d=i;c=d;c=f[c>>2]|0;d=d+4|0;d=f[d>>2]|0;G=d;l=k;return c|0}a=j;f[a>>2]=0;f[a+4>>2]=0;f[g>>2]=0;while(1){a=(f[d>>2]|0)+(f[g>>2]<<4)|0;f[e>>2]=Oh[f[c>>2]&15](f[a>>2]|0,f[a+4>>2]|0)|0;if(!(f[e>>2]|0)){c=5;break}if(!(f[(f[e>>2]|0)+12>>2]|0)){b=j;b=hh(f[b>>2]|0,f[b+4>>2]|0,1024,0)|0;a=j;f[a>>2]=b;f[a+4>>2]=G}else{b=Lh[f[(f[e>>2]|0)+12>>2]&7](f[(f[d>>2]|0)+(f[g>>2]<<4)+8>>2]|0)|0;a=h;f[a>>2]=b;f[a+4>>2]=G;a=h;if((f[a>>2]|0)==-1?(f[a+4>>2]|0)==-1:0){c=9;break}b=h;a=j;b=hh(f[a>>2]|0,f[a+4>>2]|0,f[b>>2]|0,f[b+4>>2]|0)|0;a=j;f[a>>2]=b;f[a+4>>2]=G}a=(f[g>>2]|0)+1|0;f[g>>2]=a;a=(f[d>>2]|0)+(a<<4)|0;if(!((f[a>>2]|0)!=-1?1:(f[a+4>>2]|0)!=-1)){c=12;break}}if((c|0)==5){d=i;f[d>>2]=-1;f[d+4>>2]=-1;d=i;c=d;c=f[c>>2]|0;d=d+4|0;d=f[d>>2]|0;G=d;l=k;return c|0}else if((c|0)==9){d=i;f[d>>2]=-1;f[d+4>>2]=-1;d=i;c=d;c=f[c>>2]|0;d=d+4|0;d=f[d>>2]|0;G=d;l=k;return c|0}else if((c|0)==12){c=j;c=hh(f[c>>2]|0,f[c+4>>2]|0,32768,0)|0;d=i;f[d>>2]=c;f[d+4>>2]=G;d=i;c=d;c=f[c>>2]|0;d=d+4|0;d=f[d>>2]|0;G=d;l=k;return c|0}return 0}function fc(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;h=n+20|0;c=n+16|0;i=n+12|0;j=n+8|0;g=n+25|0;m=n+24|0;k=n+4|0;e=n;f[c>>2]=a;f[i>>2]=b;if((f[c>>2]|0)!=0?(a=f[c>>2]|0,!((f[a>>2]|0)==-1?(f[a+4>>2]|0)==-1:0)):0){f[j>>2]=0;d[g>>0]=1;d[m>>0]=0;f[k>>2]=0;a:while(1){f[e>>2]=0;while(1){b=(f[c>>2]|0)+(f[k>>2]<<4)|0;a=1192+(f[e>>2]<<4)|0;if(!((f[b>>2]|0)!=(f[a>>2]|0)?1:(f[b+4>>2]|0)!=(f[a+4>>2]|0)))break;a=1192+(f[e>>2]<<4)|0;if((f[a>>2]|0)==-1?(f[a+4>>2]|0)==-1:0){c=8;break a}f[e>>2]=(f[e>>2]|0)+1}if(!(d[g>>0]&1)){c=11;break}d[g>>0]=d[1192+(f[e>>2]<<4)+12>>0]&1;d[m>>0]=d[1192+(f[e>>2]<<4)+13>>0]&1;f[j>>2]=(f[j>>2]|0)+(d[1192+(f[e>>2]<<4)+14>>0]&1);a=(f[k>>2]|0)+1|0;f[k>>2]=a;a=(f[c>>2]|0)+(a<<4)|0;if(!((f[a>>2]|0)!=-1?1:(f[a+4>>2]|0)!=-1)){c=13;break}}if((c|0)==8){f[h>>2]=8;m=f[h>>2]|0;l=n;return m|0}else if((c|0)==11){f[h>>2]=8;m=f[h>>2]|0;l=n;return m|0}else if((c|0)==13){if((f[k>>2]|0)>>>0<=4?!(d[m>>0]&1^1|(f[j>>2]|0)>>>0>3):0){f[f[i>>2]>>2]=f[k>>2];f[h>>2]=0;m=f[h>>2]|0;l=n;return m|0}f[h>>2]=8;m=f[h>>2]|0;l=n;return m|0}}f[h>>2]=11;m=f[h>>2]|0;l=n;return m|0}function gc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;g=l;l=l+16|0;b=g+12|0;c=g+8|0;d=g+4|0;e=g;f[c>>2]=a;f[d>>2]=pc(f[c>>2]|0)|0;if(!(f[d>>2]|0)){f[b>>2]=0;a=f[b>>2]|0;l=g;return a|0}f[e>>2]=qc(0,0,0,0,1,0,0,f[c>>2]|0)|0;a=f[d>>2]|0;if(!(f[e>>2]|0)){jb(a,f[c>>2]|0);f[b>>2]=0;a=f[b>>2]|0;l=g;return a|0}else{rc(a,f[e>>2]|0);f[b>>2]=f[d>>2];a=f[b>>2]|0;l=g;return a|0}return 0}function hc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=l;l=l+16|0;c=e+4|0;d=e;f[c>>2]=a;f[d>>2]=b;if(!(f[c>>2]|0)){l=e;return}tc(f[c>>2]|0,f[d>>2]|0,3);jb(f[c>>2]|0,f[d>>2]|0);l=e;return}function ic(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=(f[c>>2]|0)+32|0;G=f[a+4>>2]|0;l=b;return f[a>>2]|0}function jc(a){a=a|0;var b=0,c=0,d=0;b=l;l=l+16|0;d=b;f[d>>2]=a;c=(f[d>>2]|0)+32|0;a=(f[d>>2]|0)+40|0;a=uc(f[c>>2]|0,f[c+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;l=b;return a|0}function kc(a){a=a|0;var b=0,c=0,d=0;b=l;l=l+16|0;d=b;f[d>>2]=a;c=(f[d>>2]|0)+32|0;a=(f[d>>2]|0)+40|0;a=wc(f[c>>2]|0,f[c+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;a=bh(4,0,a|0,G|0)|0;l=b;return a&3|0}function lc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=l;l=l+64|0;h=t+52|0;i=t+48|0;j=t+44|0;k=t+24|0;m=t+16|0;q=t+40|0;o=t+36|0;n=t+8|0;r=t;p=t+32|0;f[i>>2]=a;f[j>>2]=b;a=k;f[a>>2]=c;f[a+4>>2]=d;c=m;f[c>>2]=e;f[c+4>>2]=g;c=k;d=f[c+4>>2]|0;g=k;e=f[g+4>>2]|0;a=m;b=f[a+4>>2]|0;if((f[i>>2]|0)==0|(d>>>0<0|(d|0)==0&(f[c>>2]|0)>>>0<5)|(e>>>0>2147483647|(e|0)==2147483647&(f[g>>2]|0)>>>0>4294967292)|(b>>>0>2147483647|(b|0)==2147483647&(f[a>>2]|0)>>>0>4294967295)){f[h>>2]=11;k=f[h>>2]|0;l=t;return k|0}f[q>>2]=f[(f[i>>2]|0)+8>>2];f[o>>2]=f[(f[q>>2]|0)+48+8>>2];if(!(f[o>>2]|0)){d=0;c=0}else{d=(f[o>>2]|0)+48+(f[(f[o>>2]|0)+44>>2]<<4)+8|0;d=xc(f[d>>2]|0,f[d+4>>2]|0)|0;c=G}a=n;f[a>>2]=d;f[a+4>>2]=c;if(!(f[o>>2]|0)){d=0;c=0}else{c=(f[o>>2]|0)+48+(f[(f[o>>2]|0)+44>>2]<<4)|0;d=f[c+4>>2]|0;c=f[c>>2]|0}v=r;f[v>>2]=c;f[v+4>>2]=d;v=k;v=Gc(f[v>>2]|0,f[v+4>>2]|0)|0;u=m;f[p>>2]=v+(Gc(f[u>>2]|0,f[u+4>>2]|0)|0);u=(f[q>>2]|0)+8|0;v=f[u>>2]|0;u=f[u+4>>2]|0;c=n;d=k;d=hh(f[c>>2]|0,f[c+4>>2]|0,f[d>>2]|0,f[d+4>>2]|0)|0;c=G;e=(f[q>>2]|0)+64|0;
e=hh(f[e>>2]|0,f[e+4>>2]|0,1,0)|0;g=G;b=(f[q>>2]|0)+72|0;b=hh(f[b>>2]|0,f[b+4>>2]|0,f[p>>2]|0,0)|0;a=(f[q>>2]|0)+136|0;a=vc(v,u,d,c,e,g,b,G,f[a>>2]|0,f[a+4>>2]|0)|0;if((a|0)==-1&(G|0)==-1){f[h>>2]=9;k=f[h>>2]|0;l=t;return k|0}g=(f[i>>2]|0)+32|0;g=hh(f[g>>2]|0,f[g+4>>2]|0,1,0)|0;b=G;a=(f[i>>2]|0)+40|0;a=hh(f[a>>2]|0,f[a+4>>2]|0,f[p>>2]|0,0)|0;a=uc(g,b,a,G)|0;b=G;if(b>>>0>4|(b|0)==4&a>>>0>0){f[h>>2]=9;k=f[h>>2]|0;l=t;return k|0}if((f[o>>2]|0)!=0?((f[(f[o>>2]|0)+44>>2]|0)+1|0)>>>0<(f[(f[o>>2]|0)+40>>2]|0)>>>0:0){j=(f[o>>2]|0)+44|0;f[j>>2]=(f[j>>2]|0)+1}else s=14;do if((s|0)==14){f[o>>2]=hb(48+(f[(f[i>>2]|0)+48>>2]<<4)|0,f[j>>2]|0)|0;if(f[o>>2]|0){f[(f[o>>2]|0)+44>>2]=0;f[(f[o>>2]|0)+40>>2]=f[(f[i>>2]|0)+48>>2];f[(f[i>>2]|0)+48>>2]=512;a=r;j=f[a+4>>2]|0;b=f[o>>2]|0;f[b>>2]=f[a>>2];f[b+4>>2]=j;b=n;j=f[b+4>>2]|0;a=(f[o>>2]|0)+8|0;f[a>>2]=f[b>>2];f[a+4>>2]=j;a=(f[q>>2]|0)+64|0;a=hh(f[a>>2]|0,f[a+4>>2]|0,1,0)|0;j=(f[o>>2]|0)+32|0;f[j>>2]=a;f[j+4>>2]=G;rc((f[q>>2]|0)+48|0,f[o>>2]|0);break}f[h>>2]=5;k=f[h>>2]|0;l=t;return k|0}while(0);j=r;a=m;a=hh(f[j>>2]|0,f[j+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;j=(f[o>>2]|0)+48+(f[(f[o>>2]|0)+44>>2]<<4)|0;f[j>>2]=a;f[j+4>>2]=G;j=n;a=k;a=hh(f[j>>2]|0,f[j+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;j=(f[o>>2]|0)+48+(f[(f[o>>2]|0)+44>>2]<<4)+8|0;f[j>>2]=a;f[j+4>>2]=G;j=(f[q>>2]|0)+64|0;a=j;a=hh(f[a>>2]|0,f[a+4>>2]|0,1,0)|0;f[j>>2]=a;f[j+4>>2]=G;j=(f[q>>2]|0)+72|0;a=j;a=hh(f[a>>2]|0,f[a+4>>2]|0,f[p>>2]|0,0)|0;f[j>>2]=a;f[j+4>>2]=G;k=xc(f[k>>2]|0,f[k+4>>2]|0)|0;j=(f[i>>2]|0)+24|0;a=j;k=hh(f[a>>2]|0,f[a+4>>2]|0,k|0,G|0)|0;f[j>>2]=k;f[j+4>>2]=G;j=m;k=(f[i>>2]|0)+16|0;a=k;j=hh(f[a>>2]|0,f[a+4>>2]|0,f[j>>2]|0,f[j+4>>2]|0)|0;f[k>>2]=j;f[k+4>>2]=G;k=(f[i>>2]|0)+32|0;j=k;j=hh(f[j>>2]|0,f[j+4>>2]|0,1,0)|0;f[k>>2]=j;f[k+4>>2]=G;k=(f[i>>2]|0)+40|0;j=k;j=hh(f[j>>2]|0,f[j+4>>2]|0,f[p>>2]|0,0)|0;f[k>>2]=j;f[k+4>>2]=G;f[h>>2]=0;k=f[h>>2]|0;l=t;return k|0}function mc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c+4|0;e=c;f[d>>2]=a;f[e>>2]=b;f[(f[d>>2]|0)+224>>2]=f[e>>2];nc(f[d>>2]|0);l=c;return}function nc(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;f[(f[c>>2]|0)+224+8>>2]=0;f[(f[c>>2]|0)+224+16>>2]=0;f[(f[c>>2]|0)+224+24>>2]=0;f[(f[c>>2]|0)+224+32>>2]=0;l=b;return}function oc(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;g=m+24|0;h=m+20|0;c=m+16|0;e=m+12|0;k=m+8|0;i=m+4|0;j=m;f[h>>2]=a;f[c>>2]=b;if((f[c>>2]|0)>>>0>3){d[g>>0]=1;a=d[g>>0]|0;l=m;return a|0}f[e>>2]=f[(f[h>>2]|0)+224>>2];f[k>>2]=f[(f[h>>2]|0)+224+8>>2];f[i>>2]=0;f[j>>2]=f[(f[h>>2]|0)+224+24>>2];do if((f[c>>2]|0)!=1){a=f[(f[h>>2]|0)+224+32>>2]|0;if(!a){f[i>>2]=f[(f[h>>2]|0)+224+16>>2];break}else if((a|0)==1){f[i>>2]=yc(f[(f[h>>2]|0)+224+16>>2]|0)|0;break}else if((a|0)==2){f[i>>2]=f[(f[k>>2]|0)+48+4>>2];break}else break}while(0);a:while(1){do if(f[k>>2]|0){if((f[i>>2]|0)!=0?(f[j>>2]|0)>>>0<(f[(f[i>>2]|0)+44>>2]|0)>>>0:0){f[j>>2]=(f[j>>2]|0)+1;break}f[j>>2]=0;if(f[i>>2]|0)f[i>>2]=yc(f[i>>2]|0)|0;if(!(f[i>>2]|0)){do{f[k>>2]=yc(f[k>>2]|0)|0;if(!(f[k>>2]|0)){a=21;break a}if((f[c>>2]|0)>>>0<2)break}while((f[(f[k>>2]|0)+48+4>>2]|0)==0);f[i>>2]=f[(f[k>>2]|0)+48+4>>2]}}else{f[k>>2]=f[(f[e>>2]|0)+4>>2];b:do if((f[c>>2]|0)>>>0>=2)while(1){if(f[(f[k>>2]|0)+48+4>>2]|0)break b;f[k>>2]=yc(f[k>>2]|0)|0;if(!(f[k>>2]|0)){a=12;break a}}while(0);f[i>>2]=f[(f[k>>2]|0)+48+4>>2];f[j>>2]=0}while(0);if((f[c>>2]|0)!=3){a=29;break}if(!(f[j>>2]|0)){b=f[i>>2]|0;a=(f[i>>2]|0)+48|0;if((f[b>>2]|0)==(f[a>>2]|0)?(f[b+4>>2]|0)==(f[a+4>>2]|0):0)continue;else{a=29;break}}else{b=(f[i>>2]|0)+48+((f[j>>2]|0)-1<<4)|0;a=(f[i>>2]|0)+48+(f[j>>2]<<4)|0;if((f[b>>2]|0)==(f[a>>2]|0)?(f[b+4>>2]|0)==(f[a+4>>2]|0):0)continue;else{a=29;break}}}if((a|0)==12){d[g>>0]=1;a=d[g>>0]|0;l=m;return a|0}else if((a|0)==21){d[g>>0]=1;a=d[g>>0]|0;l=m;return a|0}else if((a|0)==29){f[(f[h>>2]|0)+224+8>>2]=f[k>>2];f[(f[h>>2]|0)+224+16>>2]=f[i>>2];f[(f[h>>2]|0)+224+24>>2]=f[j>>2];zc(f[h>>2]|0);d[g>>0]=0;a=d[g>>0]|0;l=m;return a|0}return 0}function pc(a){a=a|0;var b=0,c=0,d=0;c=l;l=l+16|0;d=c+4|0;b=c;f[d>>2]=a;f[b>>2]=hb(56,f[d>>2]|0)|0;if(!(f[b>>2]|0)){a=f[b>>2]|0;l=c;return a|0}Dc(f[b>>2]|0);a=(f[b>>2]|0)+16|0;f[a>>2]=0;f[a+4>>2]=0;a=(f[b>>2]|0)+24|0;f[a>>2]=0;f[a+4>>2]=0;a=(f[b>>2]|0)+32|0;f[a>>2]=0;f[a+4>>2]=0;a=(f[b>>2]|0)+40|0;f[a>>2]=0;f[a+4>>2]=0;f[(f[b>>2]|0)+48>>2]=512;f[(f[b>>2]|0)+52>>2]=0;a=f[b>>2]|0;l=c;return a|0}function qc(a,b,c,d,e,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+48|0;k=q+36|0;m=q+16|0;n=q+8|0;o=q+32|0;j=q;r=q+28|0;p=q+24|0;s=m;f[s>>2]=a;f[s+4>>2]=b;b=n;f[b>>2]=c;f[b+4>>2]=d;f[o>>2]=e;d=j;f[d>>2]=g;f[d+4>>2]=h;f[r>>2]=i;f[p>>2]=hb(144,f[r>>2]|0)|0;if(!(f[p>>2]|0)){f[k>>2]=0;n=f[k>>2]|0;l=q;return n|0}else{g=n;h=f[g+4>>2]|0;n=f[p>>2]|0;f[n>>2]=f[g>>2];f[n+4>>2]=h;n=m;m=f[n+4>>2]|0;h=(f[p>>2]|0)+8|0;f[h>>2]=f[n>>2];f[h+4>>2]=m;f[(f[p>>2]|0)+16>>2]=0;f[(f[p>>2]|0)+20>>2]=0;f[(f[p>>2]|0)+24>>2]=0;f[(f[p>>2]|0)+32>>2]=f[o>>2];h=j;m=f[h+4>>2]|0;n=(f[p>>2]|0)+40|0;f[n>>2]=f[h>>2];f[n+4>>2]=m;Dc((f[p>>2]|0)+48|0);n=(f[p>>2]|0)+64|0;f[n>>2]=0;f[n+4>>2]=0;n=(f[p>>2]|0)+72|0;f[n>>2]=0;f[n+4>>2]=0;f[(f[p>>2]|0)+80>>2]=-1;n=(f[p>>2]|0)+136|0;f[n>>2]=0;f[n+4>>2]=0;f[k>>2]=f[p>>2];n=f[k>>2]|0;l=q;return n|0}return 0}function rc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=l;l=l+16|0;d=h+12|0;e=h+8|0;c=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;f[(f[e>>2]|0)+16>>2]=f[(f[d>>2]|0)+8>>2];f[(f[e>>2]|0)+20>>2]=0;f[(f[e>>2]|0)+24>>2]=0;a=(f[d>>2]|0)+12|0;f[a>>2]=(f[a>>2]|0)+1;a=f[e>>2]|0;b=f[d>>2]|0;if(!(f[f[d>>2]>>2]|0)){f[b>>2]=a;f[(f[d>>2]|0)+4>>2]=f[e>>2];f[(f[d>>2]|0)+8>>2]=f[e>>2];l=h;return}f[(f[b+8>>2]|0)+24>>2]=a;f[(f[d>>2]|0)+8>>2]=f[e>>2];a=f[(f[d>>2]|0)+12>>2]|0;f[c>>2]=a^1<<(Bc(f[(f[d>>2]|0)+12>>2]|0)|0);if(!(f[c>>2]|0)){l=h;return}f[c>>2]=(Cc(f[(f[d>>2]|0)+12>>2]|0)|0)+2;do{f[e>>2]=f[(f[e>>2]|0)+16>>2];a=(f[c>>2]|0)+-1|0;f[c>>2]=a}while(a>>>0>0);f[g>>2]=f[(f[e>>2]|0)+24>>2];a=f[g>>2]|0;if(!(f[(f[e>>2]|0)+16>>2]|0))f[f[d>>2]>>2]=a;else f[(f[(f[e>>2]|0)+16>>2]|0)+24>>2]=a;f[(f[g>>2]|0)+16>>2]=f[(f[e>>2]|0)+16>>2];f[(f[e>>2]|0)+24>>2]=f[(f[g>>2]|0)+20>>2];if(f[(f[e>>2]|0)+24>>2]|0)f[(f[(f[e>>2]|0)+24>>2]|0)+16>>2]=f[e>>2];f[(f[g>>2]|0)+20>>2]=f[e>>2];f[(f[e>>2]|0)+16>>2]=f[g>>2];l=h;return}function sc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=l;l=l+16|0;g=c+8|0;d=c+4|0;e=c;f[g>>2]=a;f[d>>2]=b;f[e>>2]=f[g>>2];tc((f[e>>2]|0)+48|0,f[d>>2]|0,0);l=c;return}function tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;h=l;l=l+16|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;f[g>>2]=c;if(!(f[f[d>>2]>>2]|0)){l=h;return}Ac(f[f[d>>2]>>2]|0,f[e>>2]|0,f[g>>2]|0);l=h;return}function uc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=l;l=l+16|0;h=e+8|0;g=e;i=h;f[i>>2]=a;f[i+4>>2]=b;b=g;f[b>>2]=c;f[b+4>>2]=d;b=h;a=g;a=wc(f[b>>2]|0,f[b+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;a=xc(a,G)|0;l=e;return a|0}function vc(a,b,c,d,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;q=l;l=l+64|0;m=q+48|0;t=q+40|0;r=q+32|0;n=q+24|0;o=q+16|0;s=q+8|0;p=q;u=t;f[u>>2]=a;f[u+4>>2]=b;b=r;f[b>>2]=c;f[b+4>>2]=d;d=n;f[d>>2]=e;f[d+4>>2]=g;e=o;f[e>>2]=h;f[e+4>>2]=i;h=s;f[h>>2]=j;f[h+4>>2]=k;h=t;h=hh(f[h>>2]|0,f[h+4>>2]|0,24,0)|0;e=s;e=hh(h|0,G|0,f[e>>2]|0,f[e+4>>2]|0)|0;h=G;g=r;g=xc(f[g>>2]|0,f[g+4>>2]|0)|0;g=hh(e|0,h|0,g|0,G|0)|0;h=p;f[h>>2]=g;f[h+4>>2]=G;h=p;g=f[h+4>>2]|0;if(g>>>0>2147483647|(g|0)==2147483647&(f[h>>2]|0)>>>0>4294967295){g=m;f[g>>2]=-1;f[g+4>>2]=-1;g=m;h=g;h=f[h>>2]|0;g=g+4|0;g=f[g>>2]|0;G=g;l=q;return h|0}h=n;g=o;g=uc(f[h>>2]|0,f[h+4>>2]|0,f[g>>2]|0,f[g+4>>2]|0)|0;h=p;g=hh(f[h>>2]|0,f[h+4>>2]|0,g|0,G|0)|0;h=p;f[h>>2]=g;f[h+4>>2]=G;h=p;g=f[h+4>>2]|0;if(g>>>0>2147483647|(g|0)==2147483647&(f[h>>2]|0)>>>0>4294967295){g=m;f[g>>2]=-1;f[g+4>>2]=-1;g=m;h=g;h=f[h>>2]|0;g=g+4|0;g=f[g>>2]|0;G=g;l=q;return h|0}else{e=p;h=f[e+4>>2]|0;g=m;f[g>>2]=f[e>>2];f[g+4>>2]=h;g=m;h=g;h=f[h>>2]|0;g=g+4|0;g=f[g>>2]|0;G=g;l=q;return h|0}return 0}function wc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=l;l=l+16|0;h=e+8|0;g=e;i=h;f[i>>2]=a;f[i+4>>2]=b;b=g;f[b>>2]=c;f[b+4>>2]=d;b=h;b=1+(Gc(f[b>>2]|0,f[b+4>>2]|0)|0)|0;a=g;a=hh(b|0,0,f[a>>2]|0,f[a+4>>2]|0)|0;a=hh(a|0,G|0,4,0)|0;l=e;return a|0}function xc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c;e=d;f[e>>2]=a;f[e+4>>2]=b;a=d;a=hh(f[a>>2]|0,f[a+4>>2]|0,3,0)|0;l=c;return a&-4|0}function yc(a){a=a|0;var b=0,c=0,d=0,e=0;e=l;l=l+16|0;c=e+4|0;d=e;f[d>>2]=a;if(f[(f[d>>2]|0)+24>>2]|0){f[d>>2]=f[(f[d>>2]|0)+24>>2];while(1){a=f[d>>2]|0;if(!(f[(f[d>>2]|0)+20>>2]|0))break;f[d>>2]=f[a+20>>2]}f[c>>2]=a;a=f[c>>2]|0;l=e;return a|0}while(1){if(f[(f[d>>2]|0)+16>>2]|0)b=(f[(f[(f[d>>2]|0)+16>>2]|0)+24>>2]|0)==(f[d>>2]|0);else b=0;a=f[(f[d>>2]|0)+16>>2]|0;if(!b)break;f[d>>2]=a}f[c>>2]=a;a=f[c>>2]|0;l=e;return a|0}function zc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;e=i+20|0;b=i+16|0;d=i+12|0;g=i+8|0;h=i+4|0;c=i;f[e>>2]=a;f[b>>2]=f[(f[e>>2]|0)+224>>2];f[d>>2]=f[(f[e>>2]|0)+224+8>>2];f[g>>2]=f[(f[e>>2]|0)+224+16>>2];f[h>>2]=f[(f[e>>2]|0)+224+24>>2];do if(!(f[g>>2]|0))f[(f[e>>2]|0)+224+32>>2]=2;else{if((f[(f[b>>2]|0)+8>>2]|0)==(f[d>>2]|0)?(f[(f[d>>2]|0)+48+8>>2]|0)==(f[g>>2]|0):0){b=(f[e>>2]|0)+224+32|0;if((f[(f[d>>2]|0)+48+4>>2]|0)!=(f[g>>2]|0)){f[b>>2]=1;f[(f[e>>2]|0)+224+16>>2]=f[(f[g>>2]|0)+16>>2];break}else{f[b>>2]=2;f[(f[e>>2]|0)+224+16>>2]=0;break}}f[(f[e>>2]|0)+224+32>>2]=0}while(0);a=(f[e>>2]|0)+16|0;f[a>>2]=f[(f[d>>2]|0)+32>>2];f[a+4>>2]=0;a=(f[d>>2]|0)+64|0;b=f[a+4>>2]|0;j=(f[e>>2]|0)+24|0;f[j>>2]=f[a>>2];f[j+4>>2]=b;j=(f[d>>2]|0)+8|0;b=f[j+4>>2]|0;a=(f[e>>2]|0)+32|0;f[a>>2]=f[j>>2];f[a+4>>2]=b;a=f[d>>2]|0;b=f[a+4>>2]|0;j=(f[e>>2]|0)+40|0;f[j>>2]=f[a>>2];f[j+4>>2]=b;f[f[e>>2]>>2]=(f[(f[d>>2]|0)+80>>2]|0)==-1?0:(f[d>>2]|0)+80|0;j=(f[d>>2]|0)+136|0;b=f[j+4>>2]|0;a=(f[e>>2]|0)+64|0;f[a>>2]=f[j>>2];f[a+4>>2]=b;if(!(f[(f[d>>2]|0)+48+8>>2]|0)){b=uc(0,0,0,0)|0;b=hh(b|0,G|0,24,0)|0;a=(f[e>>2]|0)+48|0;f[a>>2]=b;f[a+4>>2]=G;a=(f[e>>2]|0)+56|0;f[a>>2]=0;f[a+4>>2]=0}else{f[c>>2]=f[(f[d>>2]|0)+48+8>>2];b=(f[d>>2]|0)+64|0;j=(f[d>>2]|0)+72|0;j=uc(f[b>>2]|0,f[b+4>>2]|0,f[j>>2]|0,f[j+4>>2]|0)|0;j=hh(24,0,j|0,G|0)|0;b=G;a=(f[c>>2]|0)+48+(f[(f[c>>2]|0)+44>>2]<<4)+8|0;a=xc(f[a>>2]|0,f[a+4>>2]|0)|0;a=hh(j|0,b|0,a|0,G|0)|0;b=(f[e>>2]|0)+48|0;f[b>>2]=a;f[b+4>>2]=G;c=(f[c>>2]|0)+48+(f[(f[c>>2]|0)+44>>2]<<4)|0;b=f[c+4>>2]|0;a=(f[e>>2]|0)+56|0;f[a>>2]=f[c>>2];f[a+4>>2]=b}if(!(f[g>>2]|0)){l=i;return}b=(f[g>>2]|0)+32|0;b=hh(f[b>>2]|0,f[b+4>>2]|0,f[h>>2]|0,0)|0;a=(f[e>>2]|0)+104+24|0;f[a>>2]=b;f[a+4>>2]=G;a=(f[e>>2]|0)+104+24|0;b=(f[d>>2]|0)+40|0;b=hh(f[a>>2]|0,f[a+4>>2]|0,f[b>>2]|0,f[b+4>>2]|0)|0;a=(f[e>>2]|0)+104|0;f[a>>2]=b;f[a+4>>2]=G;if(!(f[h>>2]|0)){b=(f[g>>2]|0)+8|0;a=f[b>>2]|0;b=f[b+4>>2]|0}else{a=(f[g>>2]|0)+48+((f[h>>2]|0)-1<<4)+8|0;a=xc(f[a>>2]|0,f[a+4>>2]|0)|0;b=G}c=(f[e>>2]|0)+104+32|0;f[c>>2]=a;f[c+4>>2]=b;if(!(f[h>>2]|0)){a=f[g>>2]|0;b=f[a>>2]|0;a=f[a+4>>2]|0}else{a=(f[g>>2]|0)+48+((f[h>>2]|0)-1<<4)|0;b=f[a>>2]|0;a=f[a+4>>2]|0}c=(f[e>>2]|0)+104+40|0;f[c>>2]=b;f[c+4>>2]=a;b=(f[g>>2]|0)+48+(f[h>>2]<<4)|0;a=(f[e>>2]|0)+104+40|0;a=bh(f[b>>2]|0,f[b+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;b=(f[e>>2]|0)+104+48|0;f[b>>2]=a;f[b+4>>2]=G;b=(f[g>>2]|0)+48+(f[h>>2]<<4)+8|0;a=(f[e>>2]|0)+104+32|0;a=bh(f[b>>2]|0,f[b+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;b=(f[e>>2]|0)+104+56|0;f[b>>2]=a;f[b+4>>2]=G;b=(f[e>>2]|0)+104+56|0;b=xc(f[b>>2]|0,f[b+4>>2]|0)|0;a=(f[e>>2]|0)+104+64|0;f[a>>2]=b;f[a+4>>2]=G;a=(f[e>>2]|0)+104+32|0;b=a;b=hh(f[b>>2]|0,f[b+4>>2]|0,12,0)|0;f[a>>2]=b;f[a+4>>2]=G;a=(f[e>>2]|0)+104+32|0;b=(f[e>>2]|0)+32|0;b=hh(f[a>>2]|0,f[a+4>>2]|0,f[b>>2]|0,f[b+4>>2]|0)|0;a=(f[e>>2]|0)+104+8|0;f[a>>2]=b;f[a+4>>2]=G;a=(f[e>>2]|0)+104+40|0;b=(f[e>>2]|0)+40|0;b=hh(f[a>>2]|0,f[a+4>>2]|0,f[b>>2]|0,f[b+4>>2]|0)|0;a=(f[e>>2]|0)+104+16|0;f[a>>2]=b;f[a+4>>2]=G;l=i;return}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;h=l;l=l+16|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;f[g>>2]=c;if(f[(f[d>>2]|0)+20>>2]|0)Ac(f[(f[d>>2]|0)+20>>2]|0,f[e>>2]|0,f[g>>2]|0);if(f[(f[d>>2]|0)+24>>2]|0)Ac(f[(f[d>>2]|0)+24>>2]|0,f[e>>2]|0,f[g>>2]|0);if(!(f[g>>2]|0)){g=f[d>>2]|0;d=f[e>>2]|0;jb(g,d);l=h;return}Kh[f[g>>2]&31](f[d>>2]|0,f[e>>2]|0);g=f[d>>2]|0;d=f[e>>2]|0;jb(g,d);l=h;return}function Bc(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=(ea(f[c>>2]|0)|0)^31;l=b;return a|0}function Cc(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=jh(f[c>>2]|0)|0;l=b;return a|0}function Dc(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;f[f[c>>2]>>2]=0;f[(f[c>>2]|0)+4>>2]=0;f[(f[c>>2]|0)+8>>2]=0;f[(f[c>>2]|0)+12>>2]=0;l=b;return}function Ec(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=l;l=l+16|0;c=g+8|0;d=g+4|0;e=g;f[d>>2]=a;f[e>>2]=b;if((f[f[d>>2]>>2]|0)==0?(f[f[e>>2]>>2]|0)==0:0){if((f[(f[d>>2]|0)+16>>2]|0)>>>0<=15?(f[(f[e>>2]|0)+16>>2]|0)>>>0<=15:0){if((f[(f[d>>2]|0)+16>>2]|0)!=(f[(f[e>>2]|0)+16>>2]|0)){f[c>>2]=9;c=f[c>>2]|0;l=g;return c|0}a=(f[d>>2]|0)+8|0;do if(((f[a>>2]|0)!=-1?1:(f[a+4>>2]|0)!=-1)?(a=(f[e>>2]|0)+8|0,(f[a>>2]|0)!=-1?1:(f[a+4>>2]|0)!=-1):0){if(Fc(f[d>>2]|0)|0?Fc(f[e>>2]|0)|0:0){a=(f[d>>2]|0)+8|0;d=(f[e>>2]|0)+8|0;if(!((f[a>>2]|0)!=(f[d>>2]|0)?1:(f[a+4>>2]|0)!=(f[d+4>>2]|0)))break;f[c>>2]=9;c=f[c>>2]|0;l=g;return c|0}f[c>>2]=11;c=f[c>>2]|0;l=g;return c|0}while(0);f[c>>2]=0;c=f[c>>2]|0;l=g;return c|0}f[c>>2]=11;c=f[c>>2]|0;l=g;return c|0}f[c>>2]=8;c=f[c>>2]|0;l=g;return c|0}function Fc(a){a=a|0;var b=0,c=0,d=0;c=l;l=l+16|0;b=c;f[b>>2]=a;a=(f[b>>2]|0)+8|0;d=f[a+4>>2]|0;if(!(d>>>0>0|(d|0)==0&(f[a>>2]|0)>>>0>=4)){b=0;l=c;return b|0}a=(f[b>>2]|0)+8|0;d=f[a+4>>2]|0;if(!(d>>>0<4|(d|0)==4&(f[a>>2]|0)>>>0<=0)){b=0;l=c;return b|0}b=0==0?(f[(f[b>>2]|0)+8>>2]&3|0)==0:0;l=c;return b|0}function Gc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=l;l=l+16|0;c=g+12|0;d=g;e=g+8|0;h=d;f[h>>2]=a;f[h+4>>2]=b;a=d;b=f[a+4>>2]|0;if(b>>>0>2147483647|(b|0)==2147483647&(f[a>>2]|0)>>>0>4294967295){f[c>>2]=0;a=f[c>>2]|0;l=g;return a|0}f[e>>2]=0;do{b=d;b=dh(f[b>>2]|0,f[b+4>>2]|0,7)|0;a=d;f[a>>2]=b;f[a+4>>2]=G;f[e>>2]=(f[e>>2]|0)+1;a=d}while((f[a>>2]|0)!=0|(f[a+4>>2]|0)!=0);f[c>>2]=f[e>>2];a=f[c>>2]|0;l=g;return a|0}function Hc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;j=l;l=l+64|0;e=j+60|0;g=j+56|0;h=j+52|0;i=j+48|0;d=j;f[g>>2]=a;f[h>>2]=b;f[i>>2]=c;if(19!=(f[(f[g>>2]|0)+16>>2]|0))mb(f[g>>2]|0,f[h>>2]|0);f[(f[g>>2]|0)+16>>2]=19;if(!(f[i>>2]|0)){f[e>>2]=11;d=f[e>>2]|0;l=j;return d|0}if((f[f[i>>2]>>2]|0)>>>0>1){f[e>>2]=8;d=f[e>>2]|0;l=j;return d|0}if((f[(f[i>>2]|0)+8>>2]|0)>>>0>15){f[e>>2]=11;d=f[e>>2]|0;l=j;return d|0}if(!((Nb(f[(f[i>>2]|0)+8>>2]|0)|0)<<24>>24)){f[e>>2]=3;d=f[e>>2]|0;l=j;return d|0}do if(!(f[f[g>>2]>>2]|0)){b=hb(184,f[h>>2]|0)|0;f[f[g>>2]>>2]=b;if(f[f[g>>2]>>2]|0){f[(f[g>>2]|0)+20>>2]=3;f[(f[g>>2]|0)+24>>2]=4;f[(f[g>>2]|0)+40>>2]=7;b=f[f[g>>2]>>2]|0;a=d;c=a+48|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(c|0));a=d+8|0;f[a>>2]=-1;f[a+4>>2]=-1;f[d+16>>2]=0;a=b;c=a+48|0;do{f[a>>2]=f[d>>2];a=a+4|0;d=d+4|0}while((a|0)<(c|0));break}f[e>>2]=5;d=f[e>>2]|0;l=j;return d|0}while(0);f[(f[f[g>>2]>>2]|0)+52>>2]=0;f[(f[f[g>>2]>>2]|0)+48>>2]=f[i>>2];d=(f[f[g>>2]>>2]|0)+56|0;f[d>>2]=0;f[d+4>>2]=0;d=(f[f[g>>2]>>2]|0)+64|0;f[d>>2]=0;f[d+4>>2]=0;f[(f[f[g>>2]>>2]|0)+72>>2]=0;Pb((f[f[g>>2]>>2]|0)+80|0,f[(f[i>>2]|0)+8>>2]|0);f[e>>2]=Oc(f[f[g>>2]>>2]|0,f[h>>2]|0,f[(f[i>>2]|0)+32>>2]|0)|0;d=f[e>>2]|0;l=j;return d|0}function Ic(a,b,c,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=l;l=l+64|0;m=D+60|0;n=D+56|0;o=D+52|0;p=D+48|0;q=D+44|0;r=D+40|0;s=D+36|0;t=D+32|0;u=D+28|0;v=D+24|0;x=D+20|0;z=D+16|0;B=D+12|0;y=D+8|0;A=D+4|0;w=D;f[n>>2]=a;f[o>>2]=b;f[p>>2]=c;f[q>>2]=e;f[r>>2]=g;f[s>>2]=h;f[t>>2]=i;f[u>>2]=j;f[v>>2]=k;k=(f[n>>2]|0)+64|0;k=bh(-1,2147483647,f[k>>2]|0,f[k+4>>2]|0)|0;b=G;if(b>>>0<0|((b|0)==0?k>>>0<((f[r>>2]|0)-(f[f[q>>2]>>2]|0)|0)>>>0:0)){f[m>>2]=9;y=f[m>>2]|0;l=D;return y|0}k=f[(f[n>>2]|0)+52>>2]|0;if(!k)C=4;else if((k|0)==1)C=9;else if((k|0)!=2){f[m>>2]=11;y=f[m>>2]|0;l=D;return y|0}do if((C|0)==4){f[x>>2]=f[f[q>>2]>>2];f[z>>2]=f[f[t>>2]>>2];f[B>>2]=Jh[f[(f[n>>2]|0)+20>>2]&15](f[f[n>>2]>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0,f[u>>2]|0,f[v>>2]|0)|0;f[y>>2]=(f[f[q>>2]>>2]|0)-(f[x>>2]|0);f[A>>2]=(f[f[t>>2]>>2]|0)-(f[z>>2]|0);r=(f[n>>2]|0)+56|0;r=bh(-1092,2147483647,f[r>>2]|0,f[r+4>>2]|0)|0;q=G;if(q>>>0<0|((q|0)==0?r>>>0<(f[A>>2]|0)>>>0:0)){f[m>>2]=9;y=f[m>>2]|0;l=D;return y|0}r=(f[n>>2]|0)+56|0;q=r;q=hh(f[q>>2]|0,f[q+4>>2]|0,f[A>>2]|0,0)|0;f[r>>2]=q;f[r+4>>2]=G;r=(f[n>>2]|0)+64|0;q=r;q=hh(f[q>>2]|0,f[q+4>>2]|0,f[y>>2]|0,0)|0;f[r>>2]=q;f[r+4>>2]=G;Qb((f[n>>2]|0)+80|0,f[(f[(f[n>>2]|0)+48>>2]|0)+8>>2]|0,(f[p>>2]|0)+(f[x>>2]|0)|0,f[y>>2]|0);if(!((f[B>>2]|0)!=1|(f[v>>2]|0)==1)){C=(f[n>>2]|0)+56|0;y=f[C+4>>2]|0;x=(f[(f[n>>2]|0)+48>>2]|0)+16|0;f[x>>2]=f[C>>2];f[x+4>>2]=y;x=(f[n>>2]|0)+64|0;y=f[x+4>>2]|0;C=(f[(f[n>>2]|0)+48>>2]|0)+24|0;f[C>>2]=f[x>>2];f[C+4>>2]=y;f[(f[n>>2]|0)+52>>2]=1;C=9;break}f[m>>2]=f[B>>2];y=f[m>>2]|0;l=D;return y|0}while(0);do if((C|0)==9){while(1){C=0;if(!(0!=0?1:(f[(f[n>>2]|0)+56>>2]&3|0)!=0))break;if((f[f[t>>2]>>2]|0)>>>0>=(f[u>>2]|0)>>>0){C=11;break}d[(f[s>>2]|0)+(f[f[t>>2]>>2]|0)>>0]=0;C=f[t>>2]|0;f[C>>2]=(f[C>>2]|0)+1;C=(f[n>>2]|0)+56|0;y=C;y=hh(f[y>>2]|0,f[y+4>>2]|0,1,0)|0;f[C>>2]=y;f[C+4>>2]=G;C=9}if((C|0)==11){f[m>>2]=0;y=f[m>>2]|0;l=D;return y|0}if(f[(f[(f[n>>2]|0)+48>>2]|0)+8>>2]|0){Rb((f[n>>2]|0)+80|0,f[(f[(f[n>>2]|0)+48>>2]|0)+8>>2]|0);f[(f[n>>2]|0)+52>>2]=2;break}f[m>>2]=1;y=f[m>>2]|0;l=D;return y|0}while(0);f[w>>2]=Ob(f[(f[(f[n>>2]|0)+48>>2]|0)+8>>2]|0)|0;kb((f[n>>2]|0)+80|0,(f[n>>2]|0)+72|0,f[w>>2]|0,f[s>>2]|0,f[t>>2]|0,f[u>>2]|0)|0;if((f[(f[n>>2]|0)+72>>2]|0)>>>0<(f[w>>2]|0)>>>0){f[m>>2]=0;y=f[m>>2]|0;l=D;return y|0}else{gh((f[(f[n>>2]|0)+48>>2]|0)+36|0,(f[n>>2]|0)+80|0,f[w>>2]|0)|0;f[m>>2]=1;y=f[m>>2]|0;l=D;return y|0}return 0}function Jc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;e=c+4|0;d=c;f[e>>2]=a;f[d>>2]=b;mb(f[e>>2]|0,f[d>>2]|0);jb(f[e>>2]|0,f[d>>2]|0);l=c;return}function Kc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;e=j+16|0;g=j+12|0;h=j+8|0;i=j;f[g>>2]=a;f[h>>2]=b;f[j+4>>2]=c;f[i>>2]=d;if(f[(f[g>>2]|0)+52>>2]|0){f[e>>2]=11;e=f[e>>2]|0;l=j;return e|0}else{f[e>>2]=nb(f[g>>2]|0,f[h>>2]|0,f[i>>2]|0)|0;e=f[e>>2]|0;l=j;return e|0}return 0}function Lc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;g=k+28|0;h=k+24|0;j=k+20|0;b=k+16|0;c=k+12|0;e=k+8|0;d=k+4|0;i=k;f[h>>2]=a;if((f[f[h>>2]>>2]|0)>>>0>1){f[g>>2]=8;b=f[g>>2]|0;l=k;return b|0}f[j>>2]=6;a=(f[h>>2]|0)+16|0;do if((f[a>>2]|0)!=-1?1:(f[a+4>>2]|0)!=-1){a=(f[h>>2]|0)+16|0;f[b>>2]=Gc(f[a>>2]|0,f[a+4>>2]|0)|0;if((f[b>>2]|0)!=0?(a=(f[h>>2]|0)+16|0,!((f[a>>2]|0)==0&(f[a+4>>2]|0)==0)):0){f[j>>2]=(f[j>>2]|0)+(f[b>>2]|0);break}f[g>>2]=11;b=f[g>>2]|0;l=k;return b|0}while(0);b=(f[h>>2]|0)+24|0;do if((f[b>>2]|0)!=-1?1:(f[b+4>>2]|0)!=-1){b=(f[h>>2]|0)+24|0;f[c>>2]=Gc(f[b>>2]|0,f[b+4>>2]|0)|0;if(f[c>>2]|0){f[j>>2]=(f[j>>2]|0)+(f[c>>2]|0);break}f[g>>2]=11;b=f[g>>2]|0;l=k;return b|0}while(0);if((f[(f[h>>2]|0)+32>>2]|0)!=0?(b=f[(f[h>>2]|0)+32>>2]|0,!((f[b>>2]|0)==-1?(f[b+4>>2]|0)==-1:0)):0){f[e>>2]=0;while(1){b=(f[(f[h>>2]|0)+32>>2]|0)+(f[e>>2]<<4)|0;if(!((f[b>>2]|0)!=-1?1:(f[b+4>>2]|0)!=-1)){b=22;break}if((f[e>>2]|0)==4){b=18;break}f[i>>2]=Sc(d,(f[(f[h>>2]|0)+32>>2]|0)+(f[e>>2]<<4)|0)|0;if(f[i>>2]|0){b=20;break}f[j>>2]=(f[j>>2]|0)+(f[d>>2]|0);f[e>>2]=(f[e>>2]|0)+1}if((b|0)==18){f[g>>2]=11;b=f[g>>2]|0;l=k;return b|0}else if((b|0)==20){f[g>>2]=f[i>>2];b=f[g>>2]|0;l=k;return b|0}else if((b|0)==22){f[(f[h>>2]|0)+4>>2]=(f[j>>2]|0)+3&-4;f[g>>2]=0;b=f[g>>2]|0;l=k;return b|0}}f[g>>2]=11;b=f[g>>2]|0;l=k;return b|0}function Mc(a,b){a=a|0;b=b|0;var c=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+48|0;i=p+32|0;c=p+28|0;j=p+24|0;n=p+20|0;m=p+16|0;e=p+12|0;h=p+8|0;k=p+4|0;o=p;f[c>>2]=a;f[j>>2]=b;b=bc(f[c>>2]|0)|0;do if(!((b|0)==0&(G|0)==0)){b=(f[c>>2]|0)+24|0;a=f[b+4>>2]|0;if(!(a>>>0<2147483647|(a|0)==2147483647&(f[b>>2]|0)>>>0<=4294967295)?(b=(f[c>>2]|0)+24|0,!((f[b>>2]|0)==-1?(f[b+4>>2]|0)==-1:0)):0)break;f[n>>2]=(f[(f[c>>2]|0)+4>>2]|0)-4;d[f[j>>2]>>0]=((f[n>>2]|0)>>>0)/4|0;d[(f[j>>2]|0)+1>>0]=0;f[m>>2]=2;b=(f[c>>2]|0)+16|0;do if((f[b>>2]|0)!=-1?1:(f[b+4>>2]|0)!=-1){b=(f[c>>2]|0)+16|0;f[e>>2]=Yc(f[b>>2]|0,f[b+4>>2]|0,0,f[j>>2]|0,m,f[n>>2]|0)|0;if(!(f[e>>2]|0)){e=(f[j>>2]|0)+1|0;d[e>>0]=g[e>>0]|0|64;break}f[i>>2]=f[e>>2];n=f[i>>2]|0;l=p;return n|0}while(0);e=(f[c>>2]|0)+24|0;do if((f[e>>2]|0)!=-1?1:(f[e+4>>2]|0)!=-1){e=(f[c>>2]|0)+24|0;f[h>>2]=Yc(f[e>>2]|0,f[e+4>>2]|0,0,f[j>>2]|0,m,f[n>>2]|0)|0;if(!(f[h>>2]|0)){h=(f[j>>2]|0)+1|0;d[h>>0]=g[h>>0]|0|128;break}f[i>>2]=f[h>>2];n=f[i>>2]|0;l=p;return n|0}while(0);if((f[(f[c>>2]|0)+32>>2]|0)!=0?(h=f[(f[c>>2]|0)+32>>2]|0,!((f[h>>2]|0)==-1?(f[h+4>>2]|0)==-1:0)):0){f[k>>2]=0;while(1){if((f[k>>2]|0)==4){c=18;break}f[o>>2]=Tc((f[(f[c>>2]|0)+32>>2]|0)+(f[k>>2]<<4)|0,f[j>>2]|0,m,f[n>>2]|0)|0;if(f[o>>2]|0){c=20;break}h=(f[k>>2]|0)+1|0;f[k>>2]=h;h=(f[(f[c>>2]|0)+32>>2]|0)+(h<<4)|0;if(!((f[h>>2]|0)!=-1?1:(f[h+4>>2]|0)!=-1)){c=22;break}}if((c|0)==18){f[i>>2]=11;n=f[i>>2]|0;l=p;return n|0}else if((c|0)==20){f[i>>2]=f[o>>2];n=f[i>>2]|0;l=p;return n|0}else if((c|0)==22){h=(f[j>>2]|0)+1|0;d[h>>0]=g[h>>0]|0|(f[k>>2]|0)-1;ch((f[j>>2]|0)+(f[m>>2]|0)|0,0,(f[n>>2]|0)-(f[m>>2]|0)|0)|0;m=(f[j>>2]|0)+(f[n>>2]|0)|0;Nc(m,Sb(f[j>>2]|0,f[n>>2]|0,0)|0);f[i>>2]=0;n=f[i>>2]|0;l=p;return n|0}}f[i>>2]=11;n=f[i>>2]|0;l=p;return n|0}while(0);f[i>>2]=11;n=f[i>>2]|0;l=p;return n|0}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c+4|0;e=c;f[d>>2]=a;f[e>>2]=b;f[f[d>>2]>>2]=f[e>>2];l=c;return}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=dc(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,6,1)|0;l=d;return b|0}function Pc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=l;l=l+16|0;c=h+12|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;b=f[e>>2]|0;f[g>>2]=Rc(f[b>>2]|0,f[b+4>>2]|0)|0;if(!(f[g>>2]|0)){b=f[e>>2]|0;a=f[b+4>>2]|0;f[c>>2]=a>>>0<2147483647|(a|0)==2147483647&(f[b>>2]|0)>>>0<=4294967295?8:11;b=f[c>>2]|0;l=h;return b|0}b=f[g>>2]|0;if(!(f[(f[g>>2]|0)+20>>2]|0)){f[f[d>>2]>>2]=f[b+24>>2];f[c>>2]=0;b=f[c>>2]|0;l=h;return b|0}else{f[c>>2]=Oh[f[b+20>>2]&15](f[d>>2]|0,f[(f[e>>2]|0)+8>>2]|0)|0;b=f[c>>2]|0;l=h;return b|0}return 0}function Qc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=l;l=l+16|0;c=h+12|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;a=f[d>>2]|0;f[g>>2]=Rc(f[a>>2]|0,f[a+4>>2]|0)|0;if(!(f[g>>2]|0)){f[c>>2]=11;c=f[c>>2]|0;l=h;return c|0}if(!(f[(f[g>>2]|0)+28>>2]|0)){f[c>>2]=0;c=f[c>>2]|0;l=h;return c|0}else{f[c>>2]=Oh[f[(f[g>>2]|0)+28>>2]&15](f[(f[d>>2]|0)+8>>2]|0,f[e>>2]|0)|0;c=f[c>>2]|0;l=h;return c|0}return 0}function Rc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=l;l=l+16|0;e=g+12|0;c=g;d=g+8|0;h=c;f[h>>2]=a;f[h+4>>2]=b;f[d>>2]=0;while(1){if((f[d>>2]|0)>>>0>=9){a=6;break}h=1368+(f[d>>2]<<5)|0;a=c;b=f[d>>2]|0;if((f[h>>2]|0)==(f[a>>2]|0)?(f[h+4>>2]|0)==(f[a+4>>2]|0):0){a=4;break}f[d>>2]=b+1}if((a|0)==4){f[e>>2]=1368+(b<<5);a=f[e>>2]|0;l=g;return a|0}else if((a|0)==6){f[e>>2]=0;a=f[e>>2]|0;l=g;return a|0}return 0}function Sc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=l;l=l+16|0;c=h+12|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;b=f[e>>2]|0;a=f[b+4>>2]|0;if(a>>>0>1073741824|(a|0)==1073741824&(f[b>>2]|0)>>>0>=0){f[c>>2]=11;c=f[c>>2]|0;l=h;return c|0}f[g>>2]=Pc(f[d>>2]|0,f[e>>2]|0)|0;if(f[g>>2]|0){f[c>>2]=f[g>>2];c=f[c>>2]|0;l=h;return c|0}else{e=f[e>>2]|0;e=Gc(f[e>>2]|0,f[e+4>>2]|0)|0;e=e+(Gc(f[f[d>>2]>>2]|0,0)|0)|0;d=f[d>>2]|0;f[d>>2]=(f[d>>2]|0)+e;f[c>>2]=0;c=f[c>>2]|0;l=h;return c|0}return 0}function Tc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;e=q+36|0;g=q+32|0;h=q+28|0;i=q+24|0;j=q+20|0;m=q+16|0;k=q+12|0;n=q+8|0;o=q+4|0;p=q;f[g>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=d;d=f[g>>2]|0;c=f[d+4>>2]|0;if(c>>>0>1073741824|(c|0)==1073741824&(f[d>>2]|0)>>>0>=0){f[e>>2]=11;k=f[e>>2]|0;l=q;return k|0}d=f[g>>2]|0;f[m>>2]=Yc(f[d>>2]|0,f[d+4>>2]|0,0,f[h>>2]|0,f[i>>2]|0,f[j>>2]|0)|0;if(f[m>>2]|0){f[e>>2]=f[m>>2];k=f[e>>2]|0;l=q;return k|0}f[n>>2]=Pc(k,f[g>>2]|0)|0;if(f[n>>2]|0){f[e>>2]=f[n>>2];k=f[e>>2]|0;l=q;return k|0}f[o>>2]=Yc(f[k>>2]|0,0,0,f[h>>2]|0,f[i>>2]|0,f[j>>2]|0)|0;if(f[o>>2]|0){f[e>>2]=f[o>>2];k=f[e>>2]|0;l=q;return k|0}if(((f[j>>2]|0)-(f[f[i>>2]>>2]|0)|0)>>>0<(f[k>>2]|0)>>>0){f[e>>2]=11;k=f[e>>2]|0;l=q;return k|0}f[p>>2]=Qc(f[g>>2]|0,(f[h>>2]|0)+(f[f[i>>2]>>2]|0)|0)|0;if(f[p>>2]|0){f[e>>2]=f[p>>2];k=f[e>>2]|0;l=q;return k|0}else{d=f[i>>2]|0;f[d>>2]=(f[d>>2]|0)+(f[k>>2]|0);f[e>>2]=0;k=f[e>>2]|0;l=q;return k|0}return 0}function Uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=l;l=l+16|0;d=i+12|0;e=i+8|0;g=i+4|0;h=i;f[e>>2]=a;f[g>>2]=b;f[h>>2]=c;if(20!=(f[(f[e>>2]|0)+16>>2]|0))mb(f[e>>2]|0,f[g>>2]|0);f[(f[e>>2]|0)+16>>2]=20;if(!(f[h>>2]|0)){f[d>>2]=11;d=f[d>>2]|0;l=i;return d|0}do if(!(f[f[e>>2]>>2]|0)){g=hb(288,f[g>>2]|0)|0;f[f[e>>2]>>2]=g;if(f[f[e>>2]>>2]|0){f[(f[e>>2]|0)+20>>2]=4;f[(f[e>>2]|0)+24>>2]=5;break}f[d>>2]=5;d=f[d>>2]|0;l=i;return d|0}while(0);Xc(f[f[e>>2]>>2]|0,f[h>>2]|0);f[d>>2]=0;d=f[d>>2]|0;l=i;return d|0}function Vc(a,b,c,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+64|0;m=w+60|0;n=w+56|0;o=w+36|0;p=w+32|0;q=w+28|0;s=w+20|0;t=w+16|0;r=w+8|0;u=w;f[n>>2]=a;f[w+52>>2]=b;f[w+48>>2]=c;f[w+44>>2]=e;f[w+40>>2]=g;f[o>>2]=h;f[p>>2]=i;f[q>>2]=j;f[w+24>>2]=k;f[s>>2]=f[f[p>>2]>>2];f[t>>2]=0;a:while(1){if((f[f[p>>2]>>2]|0)>>>0>=(f[q>>2]|0)>>>0){v=23;break}b:do switch(f[f[n>>2]>>2]|0){case 1:{j=r;f[j>>2]=ic(f[(f[n>>2]|0)+4>>2]|0)|0;f[j+4>>2]=G;j=r;f[t>>2]=Yc(f[j>>2]|0,f[j+4>>2]|0,(f[n>>2]|0)+280|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0)|0;if((f[t>>2]|0)!=1){v=23;break a}f[t>>2]=0;f[(f[n>>2]|0)+280>>2]=0;f[f[n>>2]>>2]=4;continue a}case 3:case 2:break;case 4:{j=(oc((f[n>>2]|0)+8|0,2)|0)<<24>>24!=0;b=f[n>>2]|0;if(j){j=kc(f[b+4>>2]|0)|0;f[(f[n>>2]|0)+280>>2]=j;f[f[n>>2]>>2]=5;continue a}else{f[b>>2]=2;break b}}case 0:{d[(f[o>>2]|0)+(f[f[p>>2]>>2]|0)>>0]=0;j=f[p>>2]|0;f[j>>2]=(f[j>>2]|0)+1;f[f[n>>2]>>2]=1;continue a}case 5:{if((f[(f[n>>2]|0)+280>>2]|0)>>>0<=0){v=17;break a}i=(f[n>>2]|0)+280|0;f[i>>2]=(f[i>>2]|0)+-1;i=f[p>>2]|0;j=f[i>>2]|0;f[i>>2]=j+1;d[(f[o>>2]|0)+j>>0]=0;continue a}case 6:break a;default:{v=22;break a}}while(0);b=(f[n>>2]|0)+8+104|0;if((f[f[n>>2]>>2]|0)==2){k=b+56|0;b=f[k>>2]|0;k=f[k+4>>2]|0}else{k=b+48|0;b=f[k>>2]|0;k=f[k+4>>2]|0}j=u;f[j>>2]=b;f[j+4>>2]=k;j=u;f[t>>2]=Yc(f[j>>2]|0,f[j+4>>2]|0,(f[n>>2]|0)+280|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0)|0;if((f[t>>2]|0)!=1){v=23;break}f[t>>2]=0;f[(f[n>>2]|0)+280>>2]=0;j=f[n>>2]|0;f[j>>2]=(f[j>>2]|0)+1}if((v|0)==17){j=Sb((f[o>>2]|0)+(f[s>>2]|0)|0,(f[f[p>>2]>>2]|0)-(f[s>>2]|0)|0,f[(f[n>>2]|0)+284>>2]|0)|0;f[(f[n>>2]|0)+284>>2]=j;f[f[n>>2]>>2]=6}else if((v|0)==22){f[m>>2]=11;m=f[m>>2]|0;l=w;return m|0}else if((v|0)==23){j=Sb((f[o>>2]|0)+(f[s>>2]|0)|0,(f[f[p>>2]>>2]|0)-(f[s>>2]|0)|0,f[(f[n>>2]|0)+284>>2]|0)|0;f[(f[n>>2]|0)+284>>2]=j;f[m>>2]=f[t>>2];m=f[m>>2]|0;l=w;return m|0}while(1){if((f[f[p>>2]>>2]|0)==(f[q>>2]|0)){v=19;break}d[(f[o>>2]|0)+(f[f[p>>2]>>2]|0)>>0]=(f[(f[n>>2]|0)+284>>2]|0)>>>(f[(f[n>>2]|0)+280>>2]<<3);i=f[p>>2]|0;f[i>>2]=(f[i>>2]|0)+1;i=(f[n>>2]|0)+280|0;j=(f[i>>2]|0)+1|0;f[i>>2]=j;if(j>>>0>=4){v=21;break}}if((v|0)==19){f[m>>2]=0;m=f[m>>2]|0;l=w;return m|0}else if((v|0)==21){f[m>>2]=1;m=f[m>>2]|0;l=w;return m|0}return 0}function Wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;e=c+4|0;d=c;f[e>>2]=a;f[d>>2]=b;jb(f[e>>2]|0,f[d>>2]|0);l=c;return}function Xc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c+4|0;e=c;f[d>>2]=a;f[e>>2]=b;mc((f[d>>2]|0)+8|0,f[e>>2]|0);f[f[d>>2]>>2]=0;f[(f[d>>2]|0)+4>>2]=f[e>>2];f[(f[d>>2]|0)+280>>2]=0;f[(f[d>>2]|0)+284>>2]=0;l=c;return}function Yc(a,b,c,e,g,h){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+32|0;j=q+28|0;k=q;m=q+24|0;n=q+20|0;o=q+16|0;i=q+12|0;p=q+8|0;r=k;f[r>>2]=a;f[r+4>>2]=b;f[m>>2]=c;f[n>>2]=e;f[o>>2]=g;f[i>>2]=h;f[p>>2]=0;if(!(f[m>>2]|0)){f[m>>2]=p;if((f[f[o>>2]>>2]|0)>>>0>=(f[i>>2]|0)>>>0){f[j>>2]=11;m=f[j>>2]|0;l=q;return m|0}}else if((f[f[o>>2]>>2]|0)>>>0>=(f[i>>2]|0)>>>0){f[j>>2]=10;m=f[j>>2]|0;l=q;return m|0}c=k;h=f[c+4>>2]|0;if((f[f[m>>2]>>2]|0)>>>0>=9|(h>>>0>2147483647|(h|0)==2147483647&(f[c>>2]|0)>>>0>4294967295)){f[j>>2]=11;m=f[j>>2]|0;l=q;return m|0}h=k;h=dh(f[h>>2]|0,f[h+4>>2]|0,(f[f[m>>2]>>2]|0)*7|0)|0;c=k;f[c>>2]=h;f[c+4>>2]=G;while(1){c=k;h=f[c+4>>2]|0;if(!(h>>>0>0|(h|0)==0&(f[c>>2]|0)>>>0>=128)){a=12;break}c=f[m>>2]|0;f[c>>2]=(f[c>>2]|0)+1;d[(f[n>>2]|0)+(f[f[o>>2]>>2]|0)>>0]=f[k>>2]&255|128;c=k;c=dh(f[c>>2]|0,f[c+4>>2]|0,7)|0;h=k;f[h>>2]=c;f[h+4>>2]=G;h=f[o>>2]|0;c=(f[h>>2]|0)+1|0;f[h>>2]=c;if((c|0)==(f[i>>2]|0)){a=11;break}}if((a|0)==11){f[j>>2]=(f[m>>2]|0)==(p|0)?11:0;m=f[j>>2]|0;l=q;return m|0}else if((a|0)==12){d[(f[n>>2]|0)+(f[f[o>>2]>>2]|0)>>0]=f[k>>2];k=f[o>>2]|0;f[k>>2]=(f[k>>2]|0)+1;k=f[m>>2]|0;f[k>>2]=(f[k>>2]|0)+1;f[j>>2]=(f[m>>2]|0)==(p|0)?0:1;m=f[j>>2]|0;l=q;return m|0}return 0}function Zc(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+64|0;h=m+60|0;i=m+56|0;j=m+52|0;k=m+48|0;e=m;f[i>>2]=a;f[j>>2]=b;f[k>>2]=c;if(21!=(f[(f[i>>2]|0)+16>>2]|0))mb(f[i>>2]|0,f[j>>2]|0);f[(f[i>>2]|0)+16>>2]=21;b=bc(f[k>>2]|0)|0;do if(!((b|0)==0&(G|0)==0)){b=(f[k>>2]|0)+24|0;c=f[b+4>>2]|0;if(!(c>>>0<2147483647|(c|0)==2147483647&(f[b>>2]|0)>>>0<=4294967295)?(b=(f[k>>2]|0)+24|0,!((f[b>>2]|0)==-1?(f[b+4>>2]|0)==-1:0)):0)break;do if(!(f[f[i>>2]>>2]|0)){b=hb(208,f[j>>2]|0)|0;f[f[i>>2]>>2]=b;if(f[f[i>>2]>>2]|0){f[(f[i>>2]|0)+20>>2]=5;f[(f[i>>2]|0)+24>>2]=6;b=(f[f[i>>2]>>2]|0)+8|0;a=e;c=a+48|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(c|0));a=e+8|0;f[a>>2]=-1;f[a+4>>2]=-1;f[e+16>>2]=0;a=b;c=a+48|0;do{f[a>>2]=f[e>>2];a=a+4|0;e=e+4|0}while((a|0)<(c|0));break}f[h>>2]=5;b=f[h>>2]|0;l=m;return b|0}while(0);f[f[f[i>>2]>>2]>>2]=0;f[(f[f[i>>2]>>2]|0)+56>>2]=f[k>>2];e=(f[f[i>>2]>>2]|0)+64|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[f[i>>2]>>2]|0)+72|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[k>>2]|0)+16|0;b=f[k>>2]|0;if((f[e>>2]|0)==-1?(f[e+4>>2]|0)==-1:0){e=bh(-4,2147483647,f[b+4>>2]|0,0)|0;b=G;b=bh(e|0,b|0,Ob(f[(f[k>>2]|0)+8>>2]|0)|0,0)|0;e=G}else{e=b+16|0;b=f[e>>2]|0;e=f[e+4>>2]|0}c=(f[f[i>>2]>>2]|0)+80|0;f[c>>2]=b;f[c+4>>2]=e;f[(f[f[i>>2]>>2]|0)+88>>2]=0;Pb((f[f[i>>2]>>2]|0)+96|0,f[(f[k>>2]|0)+8>>2]|0);if((f[f[k>>2]>>2]|0)>>>0>=1)b=g[(f[k>>2]|0)+184>>0]|0;else b=0;d[(f[f[i>>2]>>2]|0)+200>>0]=(b|0)!=0&1;f[h>>2]=fd((f[f[i>>2]>>2]|0)+8|0,f[j>>2]|0,f[(f[k>>2]|0)+32>>2]|0)|0;b=f[h>>2]|0;l=m;return b|0}while(0);f[h>>2]=11;b=f[h>>2]|0;l=m;return b|0}function $c(a,b,c,e,h,i,j,k,m){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+64|0;n=E+60|0;o=E+56|0;p=E+52|0;q=E+48|0;r=E+44|0;s=E+40|0;t=E+36|0;u=E+32|0;v=E+28|0;w=E+24|0;y=E+20|0;A=E+16|0;C=E+12|0;z=E+8|0;B=E+4|0;x=E;f[o>>2]=a;f[p>>2]=b;f[q>>2]=c;f[r>>2]=e;f[s>>2]=h;f[t>>2]=i;f[u>>2]=j;f[v>>2]=k;f[w>>2]=m;m=f[f[o>>2]>>2]|0;if(!m)D=2;else if((m|0)==1)D=13;else if((m|0)!=2){f[n>>2]=11;z=f[n>>2]|0;l=E;return z|0}do if((D|0)==2){f[y>>2]=f[f[r>>2]>>2];f[A>>2]=f[f[u>>2]>>2];f[C>>2]=Jh[f[(f[o>>2]|0)+8+20>>2]&15](f[(f[o>>2]|0)+8>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0,f[u>>2]|0,f[v>>2]|0,f[w>>2]|0)|0;f[z>>2]=(f[f[r>>2]>>2]|0)-(f[y>>2]|0);f[B>>2]=(f[f[u>>2]>>2]|0)-(f[A>>2]|0);y=(f[o>>2]|0)+80|0;if(!(ad((f[o>>2]|0)+64|0,f[z>>2]|0,0,f[y>>2]|0,f[y+4>>2]|0)|0)?(z=(f[(f[o>>2]|0)+56>>2]|0)+24|0,!(ad((f[o>>2]|0)+72|0,f[B>>2]|0,0,f[z>>2]|0,f[z+4>>2]|0)|0)):0){if(!(d[(f[o>>2]|0)+200>>0]&1))Qb((f[o>>2]|0)+96|0,f[(f[(f[o>>2]|0)+56>>2]|0)+8>>2]|0,(f[t>>2]|0)+(f[A>>2]|0)|0,f[B>>2]|0);if((f[C>>2]|0)!=1){f[n>>2]=f[C>>2];z=f[n>>2]|0;l=E;return z|0}y=(f[o>>2]|0)+64|0;z=(f[(f[o>>2]|0)+56>>2]|0)+16|0;if(bd(f[y>>2]|0,f[y+4>>2]|0,f[z>>2]|0,f[z+4>>2]|0)|0?(y=(f[o>>2]|0)+72|0,z=(f[(f[o>>2]|0)+56>>2]|0)+24|0,bd(f[y>>2]|0,f[y+4>>2]|0,f[z>>2]|0,f[z+4>>2]|0)|0):0){D=(f[o>>2]|0)+64|0;z=f[D+4>>2]|0;y=(f[(f[o>>2]|0)+56>>2]|0)+16|0;f[y>>2]=f[D>>2];f[y+4>>2]=z;y=(f[o>>2]|0)+72|0;z=f[y+4>>2]|0;D=(f[(f[o>>2]|0)+56>>2]|0)+24|0;f[D>>2]=f[y>>2];f[D+4>>2]=z;f[f[o>>2]>>2]=1;D=13;break}f[n>>2]=9;z=f[n>>2]|0;l=E;return z|0}f[n>>2]=9;z=f[n>>2]|0;l=E;return z|0}while(0);do if((D|0)==13){while(1){if(!(0!=0?1:(f[(f[o>>2]|0)+64>>2]&3|0)!=0)){
D=18;break}if((f[f[r>>2]>>2]|0)>>>0>=(f[s>>2]|0)>>>0){D=15;break}y=(f[o>>2]|0)+64|0;z=y;z=hh(f[z>>2]|0,f[z+4>>2]|0,1,0)|0;f[y>>2]=z;f[y+4>>2]=G;y=f[r>>2]|0;z=f[y>>2]|0;f[y>>2]=z+1;if(g[(f[q>>2]|0)+z>>0]|0){D=17;break}else D=13}if((D|0)==15){f[n>>2]=0;z=f[n>>2]|0;l=E;return z|0}else if((D|0)==17){f[n>>2]=9;z=f[n>>2]|0;l=E;return z|0}else if((D|0)==18){if(!(f[(f[(f[o>>2]|0)+56>>2]|0)+8>>2]|0)){f[n>>2]=1;z=f[n>>2]|0;l=E;return z|0}if(!(d[(f[o>>2]|0)+200>>0]&1))Rb((f[o>>2]|0)+96|0,f[(f[(f[o>>2]|0)+56>>2]|0)+8>>2]|0);f[f[o>>2]>>2]=2;break}}while(0);f[x>>2]=Ob(f[(f[(f[o>>2]|0)+56>>2]|0)+8>>2]|0)|0;kb(f[q>>2]|0,f[r>>2]|0,f[s>>2]|0,(f[(f[o>>2]|0)+56>>2]|0)+36|0,(f[o>>2]|0)+88|0,f[x>>2]|0)|0;if((f[(f[o>>2]|0)+88>>2]|0)>>>0<(f[x>>2]|0)>>>0){f[n>>2]=0;z=f[n>>2]|0;l=E;return z|0}if((!(d[(f[o>>2]|0)+200>>0]&1)?((Nb(f[(f[(f[o>>2]|0)+56>>2]|0)+8>>2]|0)|0)&255|0)!=0:0)?(Yg((f[(f[o>>2]|0)+56>>2]|0)+36|0,(f[o>>2]|0)+96|0,f[x>>2]|0)|0)!=0:0){f[n>>2]=9;z=f[n>>2]|0;l=E;return z|0}f[n>>2]=1;z=f[n>>2]|0;l=E;return z|0}function _c(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;e=c+4|0;d=c;f[e>>2]=a;f[d>>2]=b;mb((f[e>>2]|0)+8|0,f[d>>2]|0);jb(f[e>>2]|0,f[d>>2]|0);l=c;return}function ad(a,b,c,e,g){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;h=m+20|0;i=m+16|0;j=m+8|0;k=m;f[i>>2]=a;a=j;f[a>>2]=b;f[a+4>>2]=c;b=k;f[b>>2]=e;f[b+4>>2]=g;b=k;c=f[b+4>>2]|0;b=c>>>0>2147483647|(c|0)==2147483647&(f[b>>2]|0)>>>0>4294967295;c=k;f[c>>2]=b?-1:e;f[c+4>>2]=b?2147483647:g;c=k;g=f[c+4>>2]|0;b=f[i>>2]|0;e=f[b+4>>2]|0;if(!(g>>>0<e>>>0|((g|0)==(e|0)?(f[c>>2]|0)>>>0<(f[b>>2]|0)>>>0:0))?(g=k,c=f[i>>2]|0,c=bh(f[g>>2]|0,f[g+4>>2]|0,f[c>>2]|0,f[c+4>>2]|0)|0,g=G,b=j,e=f[b+4>>2]|0,!(g>>>0<e>>>0|((g|0)==(e|0)?c>>>0<(f[b>>2]|0)>>>0:0))):0){c=j;b=f[i>>2]|0;e=b;c=hh(f[e>>2]|0,f[e+4>>2]|0,f[c>>2]|0,f[c+4>>2]|0)|0;f[b>>2]=c;f[b+4>>2]=G;d[h>>0]=0;b=d[h>>0]|0;b=b&1;l=m;return b|0}d[h>>0]=1;b=d[h>>0]|0;b=b&1;l=m;return b|0}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=l;l=l+16|0;e=h+8|0;g=h;i=e;f[i>>2]=a;f[i+4>>2]=b;a=g;f[a>>2]=c;f[a+4>>2]=d;a=g;if((f[a>>2]|0)==-1?(f[a+4>>2]|0)==-1:0){a=1;l=h;return a|0}b=g;a=e;a=(f[b>>2]|0)==(f[a>>2]|0)?(f[b+4>>2]|0)==(f[a+4>>2]|0):0;l=h;return a|0}function cd(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+48|0;i=u+44|0;j=u+40|0;k=u+36|0;m=u+32|0;e=u+28|0;q=u+24|0;p=u+20|0;h=u+16|0;s=u+12|0;n=u+8|0;o=u+4|0;r=u;f[j>>2]=a;f[k>>2]=b;f[m>>2]=c;f[e>>2]=0;while(1){if((f[e>>2]|0)>>>0>4)break;c=(f[(f[j>>2]|0)+32>>2]|0)+(f[e>>2]<<4)|0;f[c>>2]=-1;f[c+4>>2]=-1;f[(f[(f[j>>2]|0)+32>>2]|0)+(f[e>>2]<<4)+8>>2]=0;f[e>>2]=(f[e>>2]|0)+1}if((f[f[j>>2]>>2]|0)>>>0>1)f[f[j>>2]>>2]=1;d[(f[j>>2]|0)+184>>0]=0;if(((g[f[m>>2]>>0]|0)+1<<2|0)==(f[(f[j>>2]|0)+4>>2]|0)?(f[(f[j>>2]|0)+8>>2]|0)>>>0<=15:0){f[q>>2]=(f[(f[j>>2]|0)+4>>2]|0)-4;c=Sb(f[m>>2]|0,f[q>>2]|0,0)|0;if((c|0)!=(dd((f[m>>2]|0)+(f[q>>2]|0)|0)|0)){f[i>>2]=9;n=f[i>>2]|0;l=u;return n|0}if((g[(f[m>>2]|0)+1>>0]|0)&60){f[i>>2]=8;n=f[i>>2]|0;l=u;return n|0}f[p>>2]=2;b=(f[j>>2]|0)+16|0;if((g[(f[m>>2]|0)+1>>0]|0)&64){f[h>>2]=ud(b,0,f[m>>2]|0,p,f[q>>2]|0)|0;if(f[h>>2]|0){f[i>>2]=f[h>>2];n=f[i>>2]|0;l=u;return n|0}h=bc(f[j>>2]|0)|0;if((h|0)==0&(G|0)==0){f[i>>2]=9;n=f[i>>2]|0;l=u;return n|0}}else{h=b;f[h>>2]=-1;f[h+4>>2]=-1}b=(f[j>>2]|0)+24|0;if((g[(f[m>>2]|0)+1>>0]|0)&128){f[s>>2]=ud(b,0,f[m>>2]|0,p,f[q>>2]|0)|0;if(f[s>>2]|0){f[i>>2]=f[s>>2];n=f[i>>2]|0;l=u;return n|0}}else{h=b;f[h>>2]=-1;f[h+4>>2]=-1}f[n>>2]=((g[(f[m>>2]|0)+1>>0]|0)&3)+1;f[o>>2]=0;while(1){if((f[o>>2]|0)>>>0>=(f[n>>2]|0)>>>0)break;f[r>>2]=jd((f[(f[j>>2]|0)+32>>2]|0)+(f[o>>2]<<4)|0,f[k>>2]|0,f[m>>2]|0,p,f[q>>2]|0)|0;if(f[r>>2]|0){t=26;break}f[o>>2]=(f[o>>2]|0)+1}if((t|0)==26){ed(f[j>>2]|0,f[k>>2]|0);f[i>>2]=f[r>>2];n=f[i>>2]|0;l=u;return n|0}while(1){if((f[p>>2]|0)>>>0>=(f[q>>2]|0)>>>0){t=31;break}n=f[p>>2]|0;f[p>>2]=n+1;if(g[(f[m>>2]|0)+n>>0]|0){t=30;break}}if((t|0)==30){ed(f[j>>2]|0,f[k>>2]|0);f[i>>2]=8;n=f[i>>2]|0;l=u;return n|0}else if((t|0)==31){f[i>>2]=0;n=f[i>>2]|0;l=u;return n|0}}f[i>>2]=11;n=f[i>>2]|0;l=u;return n|0}function dd(a){a=a|0;var b=0,c=0,d=0;c=l;l=l+16|0;d=c+4|0;b=c;f[d>>2]=a;f[b>>2]=f[f[d>>2]>>2];l=c;return f[b>>2]|0}function ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=l;l=l+16|0;c=g+8|0;d=g+4|0;e=g;f[c>>2]=a;f[d>>2]=b;f[e>>2]=0;while(1){if((f[e>>2]|0)>>>0>=4)break;jb(f[(f[(f[c>>2]|0)+32>>2]|0)+(f[e>>2]<<4)+8>>2]|0,f[d>>2]|0);b=(f[(f[c>>2]|0)+32>>2]|0)+(f[e>>2]<<4)|0;f[b>>2]=-1;f[b+4>>2]=-1;f[(f[(f[c>>2]|0)+32>>2]|0)+(f[e>>2]<<4)+8>>2]=0;f[e>>2]=(f[e>>2]|0)+1}l=g;return}function fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=dc(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,7,0)|0;l=d;return b|0}function gd(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=ec(7,f[c>>2]|0)|0;l=b;return a|0}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+20|0;g=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;f[g>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=d;f[(f[g>>2]|0)+8>>2]=0;d=f[g>>2]|0;f[k>>2]=id(f[d>>2]|0,f[d+4>>2]|0)|0;if(!(f[k>>2]|0)){f[e>>2]=8;d=f[e>>2]|0;l=m;return d|0}if(!(f[(f[k>>2]|0)+16>>2]|0)){f[e>>2]=(f[j>>2]|0)==0?0:8;d=f[e>>2]|0;l=m;return d|0}else{f[e>>2]=Nh[f[(f[k>>2]|0)+16>>2]&15]((f[g>>2]|0)+8|0,f[h>>2]|0,f[i>>2]|0,f[j>>2]|0)|0;d=f[e>>2]|0;l=m;return d|0}return 0}function id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=l;l=l+16|0;e=g+12|0;c=g;d=g+8|0;h=c;f[h>>2]=a;f[h+4>>2]=b;f[d>>2]=0;while(1){if((f[d>>2]|0)>>>0>=9){a=6;break}h=1656+((f[d>>2]|0)*24|0)|0;a=c;b=f[d>>2]|0;if((f[h>>2]|0)==(f[a>>2]|0)?(f[h+4>>2]|0)==(f[a+4>>2]|0):0){a=4;break}f[d>>2]=b+1}if((a|0)==4){f[e>>2]=1656+(b*24|0);a=f[e>>2]|0;l=g;return a|0}else if((a|0)==6){f[e>>2]=0;a=f[e>>2]|0;l=g;return a|0}return 0}function jd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;g=r+40|0;h=r+36|0;i=r+32|0;j=r+28|0;k=r+24|0;m=r+20|0;p=r+16|0;n=r;q=r+12|0;o=r+8|0;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[k>>2]=d;f[m>>2]=e;f[(f[h>>2]|0)+8>>2]=0;f[p>>2]=ud(f[h>>2]|0,0,f[j>>2]|0,f[k>>2]|0,f[m>>2]|0)|0;if(f[p>>2]|0){f[g>>2]=f[p>>2];d=f[g>>2]|0;l=r;return d|0}d=f[h>>2]|0;c=f[d+4>>2]|0;if(c>>>0>1073741824|(c|0)==1073741824&(f[d>>2]|0)>>>0>=0){f[g>>2]=9;d=f[g>>2]|0;l=r;return d|0}f[q>>2]=ud(n,0,f[j>>2]|0,f[k>>2]|0,f[m>>2]|0)|0;if(f[q>>2]|0){f[g>>2]=f[q>>2];d=f[g>>2]|0;l=r;return d|0}d=n;c=f[d+4>>2]|0;if(0<c>>>0|(0==(c|0)?((f[m>>2]|0)-(f[f[k>>2]>>2]|0)|0)>>>0<(f[d>>2]|0)>>>0:0)){f[g>>2]=9;d=f[g>>2]|0;l=r;return d|0}else{f[o>>2]=hd(f[h>>2]|0,f[i>>2]|0,(f[j>>2]|0)+(f[f[k>>2]>>2]|0)|0,f[n>>2]|0)|0;c=n;d=f[k>>2]|0;c=hh(f[d>>2]|0,0,f[c>>2]|0,f[c+4>>2]|0)|0;f[d>>2]=c;f[g>>2]=f[o>>2];d=f[g>>2]|0;l=r;return d|0}return 0}function kd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=l;l=l+16|0;c=g+8|0;d=g+4|0;e=g;f[d>>2]=a;f[e>>2]=b;if((f[d>>2]|0)==0?(f[d>>2]=hb(312,f[e>>2]|0)|0,(f[d>>2]|0)==0):0){f[c>>2]=0;c=f[c>>2]|0;l=g;return c|0}f[f[d>>2]>>2]=0;e=(f[d>>2]|0)+8|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[d>>2]|0)+8+8|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[d>>2]|0)+8+16|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[d>>2]|0)+8+24|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[d>>2]|0)+144|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[d>>2]|0)+144+8|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[d>>2]|0)+144+16|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[d>>2]|0)+144+24|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[d>>2]|0)+288|0;f[e>>2]=0;f[e+4>>2]=0;e=(f[d>>2]|0)+296|0;f[e>>2]=0;f[e+4>>2]=0;f[(f[d>>2]|0)+304>>2]=0;f[(f[d>>2]|0)+308>>2]=0;Pb((f[d>>2]|0)+8+32|0,10);Pb((f[d>>2]|0)+144+32|0,10);f[c>>2]=f[d>>2];c=f[c>>2]|0;l=g;return c|0}function ld(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;e=c+4|0;d=c;f[e>>2]=a;f[d>>2]=b;jb(f[e>>2]|0,f[d>>2]|0);l=c;return}function md(a){a=a|0;var b=0,c=0,d=0;b=l;l=l+16|0;d=b;f[d>>2]=a;c=(f[d>>2]|0)+8+16|0;a=(f[d>>2]|0)+8+24|0;a=pd(f[c>>2]|0,f[c+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;l=b;return a|0}function nd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;g=m+24|0;h=m+20|0;i=m+8|0;j=m;k=m+16|0;f[h>>2]=a;n=i;f[n>>2]=b;f[n+4>>2]=c;b=j;f[b>>2]=d;f[b+4>>2]=e;b=i;n=f[b+4>>2]|0;d=i;c=f[d+4>>2]|0;a=j;e=f[a+4>>2]|0;if((f[f[h>>2]>>2]|0)!=0|(n>>>0<0|(n|0)==0&(f[b>>2]|0)>>>0<5)|(c>>>0>2147483647|(c|0)==2147483647&(f[d>>2]|0)>>>0>4294967292)|(e>>>0>2147483647|(e|0)==2147483647&(f[a>>2]|0)>>>0>4294967295)){f[g>>2]=11;k=f[g>>2]|0;l=m;return k|0}a=j;f[k>>2]=qd((f[h>>2]|0)+8|0,f[i>>2]|0,f[i+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;if(f[k>>2]|0){f[g>>2]=f[k>>2];k=f[g>>2]|0;l=m;return k|0}k=(f[h>>2]|0)+8|0;a=f[k+4>>2]|0;if(((!(a>>>0>2147483647|(a|0)==2147483647&(f[k>>2]|0)>>>0>4294967295)?(k=(f[h>>2]|0)+8+8|0,a=f[k+4>>2]|0,!(a>>>0>2147483647|(a|0)==2147483647&(f[k>>2]|0)>>>0>4294967295)):0)?(a=(f[h>>2]|0)+8+16|0,k=(f[h>>2]|0)+8+24|0,k=pd(f[a>>2]|0,f[a+4>>2]|0,f[k>>2]|0,f[k+4>>2]|0)|0,a=G,!(a>>>0>4|(a|0)==4&k>>>0>0)):0)?(j=(f[h>>2]|0)+8|0,a=(f[h>>2]|0)+8+16|0,k=(f[h>>2]|0)+8+24|0,k=rd(f[j>>2]|0,f[j+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0,f[k>>2]|0,f[k+4>>2]|0)|0,a=G,!(a>>>0>2147483647|(a|0)==2147483647&k>>>0>4294967295)):0){f[g>>2]=0;k=f[g>>2]|0;l=m;return k|0}f[g>>2]=9;k=f[g>>2]|0;l=m;return k|0}function od(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;e=r+32|0;h=r+28|0;i=r+24|0;j=r+20|0;k=r+16|0;m=r+12|0;n=r+8|0;p=r+4|0;o=r;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[k>>2]=d;if((f[f[j>>2]>>2]|0)>>>0>=(f[k>>2]|0)>>>0){f[e>>2]=10;m=f[e>>2]|0;l=r;return m|0}f[m>>2]=f[f[j>>2]>>2];f[n>>2]=0;a:while(1){if((f[f[j>>2]>>2]|0)>>>0>=(f[k>>2]|0)>>>0){q=44;break}switch(f[f[h>>2]>>2]|0){case 1:{f[n>>2]=ud((f[h>>2]|0)+280|0,(f[h>>2]|0)+304|0,f[i>>2]|0,f[j>>2]|0,f[k>>2]|0)|0;if((f[n>>2]|0)!=1){q=44;break a}d=(f[h>>2]|0)+280|0;a=(f[h>>2]|0)+8+16|0;if((f[d>>2]|0)!=(f[a>>2]|0)?1:(f[d+4>>2]|0)!=(f[a+4>>2]|0)){q=11;break a}f[n>>2]=0;f[(f[h>>2]|0)+304>>2]=0;a=(f[h>>2]|0)+280|0;f[f[h>>2]>>2]=(f[a>>2]|0)==0&(f[a+4>>2]|0)==0?4:2;continue a}case 3:case 2:{a=f[h>>2]|0;f[p>>2]=(f[f[h>>2]>>2]|0)==2?a+288|0:a+296|0;f[n>>2]=ud(f[p>>2]|0,(f[h>>2]|0)+304|0,f[i>>2]|0,f[j>>2]|0,f[k>>2]|0)|0;if((f[n>>2]|0)!=1){q=44;break a}f[n>>2]=0;f[(f[h>>2]|0)+304>>2]=0;b=f[h>>2]|0;if((f[f[h>>2]>>2]|0)==2){a=b+288|0;d=f[a+4>>2]|0;if(d>>>0<0|(d|0)==0&(f[a>>2]|0)>>>0<5){q=17;break a}a=(f[h>>2]|0)+288|0;d=f[a+4>>2]|0;if(d>>>0>2147483647|(d|0)==2147483647&(f[a>>2]|0)>>>0>4294967292){q=17;break a}f[f[h>>2]>>2]=3;continue a}d=(f[h>>2]|0)+288|0;a=(f[h>>2]|0)+296|0;f[o>>2]=qd(b+144|0,f[d>>2]|0,f[d+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;if(f[o>>2]|0){q=20;break a}d=(f[h>>2]|0)+8|0;b=f[d+4>>2]|0;a=(f[h>>2]|0)+144|0;c=f[a+4>>2]|0;if(b>>>0<c>>>0|((b|0)==(c|0)?(f[d>>2]|0)>>>0<(f[a>>2]|0)>>>0:0)){q=24;break a}d=(f[h>>2]|0)+8+8|0;b=f[d+4>>2]|0;a=(f[h>>2]|0)+144+8|0;c=f[a+4>>2]|0;if(b>>>0<c>>>0|((b|0)==(c|0)?(f[d>>2]|0)>>>0<(f[a>>2]|0)>>>0:0)){q=24;break a}d=(f[h>>2]|0)+8+24|0;b=f[d+4>>2]|0;a=(f[h>>2]|0)+144+24|0;c=f[a+4>>2]|0;if(b>>>0<c>>>0|((b|0)==(c|0)?(f[d>>2]|0)>>>0<(f[a>>2]|0)>>>0:0)){q=24;break a}c=(f[h>>2]|0)+280|0;d=c;d=hh(f[d>>2]|0,f[d+4>>2]|0,-1,-1)|0;a=G;f[c>>2]=d;f[c+4>>2]=a;f[f[h>>2]>>2]=(d|0)==0&(a|0)==0?4:2;continue a}case 4:{d=(f[h>>2]|0)+144+16|0;a=(f[h>>2]|0)+144+24|0;a=bh(4,0,sd(f[d>>2]|0,f[d+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0,G|0)|0;f[(f[h>>2]|0)+304>>2]=a&3;f[f[h>>2]>>2]=5;break}case 5:break;case 6:break a;case 0:{d=f[j>>2]|0;a=f[d>>2]|0;f[d>>2]=a+1;if(g[(f[i>>2]|0)+a>>0]|0){q=7;break a}f[f[h>>2]>>2]=1;continue a}default:{q=43;break a}}b=f[h>>2]|0;if((f[(f[h>>2]|0)+304>>2]|0)>>>0<=0){q=30;break}d=b+304|0;f[d>>2]=(f[d>>2]|0)+-1;d=f[j>>2]|0;a=f[d>>2]|0;f[d>>2]=a+1;if(g[(f[i>>2]|0)+a>>0]|0){q=29;break}}do if((q|0)==7){f[e>>2]=9;m=f[e>>2]|0;l=r;return m|0}else if((q|0)==11){f[e>>2]=9;m=f[e>>2]|0;l=r;return m|0}else if((q|0)==17){f[e>>2]=9;m=f[e>>2]|0;l=r;return m|0}else if((q|0)==20){f[e>>2]=f[o>>2];m=f[e>>2]|0;l=r;return m|0}else if((q|0)==24){f[e>>2]=9;m=f[e>>2]|0;l=r;return m|0}else if((q|0)==29){f[e>>2]=9;m=f[e>>2]|0;l=r;return m|0}else if((q|0)==30){d=b+8|0;a=(f[h>>2]|0)+144|0;if((!((f[d>>2]|0)!=(f[a>>2]|0)?1:(f[d+4>>2]|0)!=(f[a+4>>2]|0))?(d=(f[h>>2]|0)+8+8|0,a=(f[h>>2]|0)+144+8|0,!((f[d>>2]|0)!=(f[a>>2]|0)?1:(f[d+4>>2]|0)!=(f[a+4>>2]|0))):0)?(d=(f[h>>2]|0)+8+24|0,a=(f[h>>2]|0)+144+24|0,!((f[d>>2]|0)!=(f[a>>2]|0)?1:(f[d+4>>2]|0)!=(f[a+4>>2]|0))):0){Rb((f[h>>2]|0)+8+32|0,10);Rb((f[h>>2]|0)+144+32|0,10);d=(f[h>>2]|0)+8+32|0;a=(f[h>>2]|0)+144+32|0;if(!(Yg(d,a,Ob(10)|0)|0)){m=Sb((f[i>>2]|0)+(f[m>>2]|0)|0,(f[f[j>>2]>>2]|0)-(f[m>>2]|0)|0,f[(f[h>>2]|0)+308>>2]|0)|0;f[(f[h>>2]|0)+308>>2]=m;f[f[h>>2]>>2]=6;break}f[e>>2]=9;m=f[e>>2]|0;l=r;return m|0}f[e>>2]=9;m=f[e>>2]|0;l=r;return m|0}else if((q|0)==43){f[e>>2]=11;m=f[e>>2]|0;l=r;return m|0}else if((q|0)==44){m=Sb((f[i>>2]|0)+(f[m>>2]|0)|0,(f[f[j>>2]>>2]|0)-(f[m>>2]|0)|0,f[(f[h>>2]|0)+308>>2]|0)|0;f[(f[h>>2]|0)+308>>2]=m;f[e>>2]=f[n>>2];m=f[e>>2]|0;l=r;return m|0}while(0);while(1){if((f[f[j>>2]>>2]|0)==(f[k>>2]|0)){q=38;break}a=(f[(f[h>>2]|0)+308>>2]|0)>>>(f[(f[h>>2]|0)+304>>2]<<3)&255;d=f[j>>2]|0;m=f[d>>2]|0;f[d>>2]=m+1;if((a|0)!=(g[(f[i>>2]|0)+m>>0]|0|0)){q=40;break}a=(f[h>>2]|0)+304|0;m=(f[a>>2]|0)+1|0;f[a>>2]=m;if(m>>>0>=4){q=42;break}}if((q|0)==38){f[e>>2]=0;m=f[e>>2]|0;l=r;return m|0}else if((q|0)==40){f[e>>2]=9;m=f[e>>2]|0;l=r;return m|0}else if((q|0)==42){f[e>>2]=1;m=f[e>>2]|0;l=r;return m|0}return 0}function pd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=l;l=l+16|0;h=e+8|0;g=e;i=h;f[i>>2]=a;f[i+4>>2]=b;b=g;f[b>>2]=c;f[b+4>>2]=d;b=h;a=g;a=sd(f[b>>2]|0,f[b+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;a=td(a,G)|0;l=e;return a|0}function qd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+48|0;i=g+32|0;k=g+24|0;j=g+16|0;h=g;f[i>>2]=a;a=k;f[a>>2]=b;f[a+4>>2]=c;b=j;f[b>>2]=d;f[b+4>>2]=e;b=k;b=td(f[b>>2]|0,f[b+4>>2]|0)|0;c=f[i>>2]|0;d=c;b=hh(f[d>>2]|0,f[d+4>>2]|0,b|0,G|0)|0;f[c>>2]=b;f[c+4>>2]=G;c=j;b=(f[i>>2]|0)+8|0;d=b;c=hh(f[d>>2]|0,f[d+4>>2]|0,f[c>>2]|0,f[c+4>>2]|0)|0;f[b>>2]=c;f[b+4>>2]=G;b=k;b=Gc(f[b>>2]|0,f[b+4>>2]|0)|0;c=j;c=b+(Gc(f[c>>2]|0,f[c+4>>2]|0)|0)|0;b=(f[i>>2]|0)+24|0;d=b;c=hh(f[d>>2]|0,f[d+4>>2]|0,c|0,0)|0;f[b>>2]=c;f[b+4>>2]=G;b=(f[i>>2]|0)+16|0;c=b;c=hh(f[c>>2]|0,f[c+4>>2]|0,1,0)|0;f[b>>2]=c;f[b+4>>2]=G;b=k;c=f[b+4>>2]|0;d=h;f[d>>2]=f[b>>2];f[d+4>>2]=c;d=j;c=f[d+4>>2]|0;b=h+8|0;f[b>>2]=f[d>>2];f[b+4>>2]=c;Qb((f[i>>2]|0)+32|0,10,h,16);l=g;return 0}function rd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,m=0;h=l;l=l+32|0;k=h+16|0;j=h+8|0;i=h;m=k;f[m>>2]=a;f[m+4>>2]=b;b=j;f[b>>2]=c;f[b+4>>2]=d;c=i;f[c>>2]=e;f[c+4>>2]=g;c=k;c=hh(12,0,f[c>>2]|0,f[c+4>>2]|0)|0;b=G;d=j;a=i;a=pd(f[d>>2]|0,f[d+4>>2]|0,f[a>>2]|0,f[a+4>>2]|0)|0;a=hh(c|0,b|0,a|0,G|0)|0;a=hh(a|0,G|0,12,0)|0;l=h;return a|0}function sd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=l;l=l+16|0;h=e+8|0;g=e;i=h;f[i>>2]=a;f[i+4>>2]=b;b=g;f[b>>2]=c;f[b+4>>2]=d;b=h;b=1+(Gc(f[b>>2]|0,f[b+4>>2]|0)|0)|0;a=g;a=hh(b|0,0,f[a>>2]|0,f[a+4>>2]|0)|0;a=hh(a|0,G|0,4,0)|0;l=e;return a|0}function td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c;e=d;f[e>>2]=a;f[e+4>>2]=b;a=d;a=hh(f[a>>2]|0,f[a+4>>2]|0,3,0)|0;l=c;return a&-4|0}function ud(a,b,c,e,h){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;n=r+24|0;i=r+20|0;o=r+16|0;j=r+12|0;k=r+8|0;m=r+4|0;q=r;p=r+28|0;f[i>>2]=a;f[o>>2]=b;f[j>>2]=c;f[k>>2]=e;f[m>>2]=h;f[q>>2]=0;do if(!(f[o>>2]|0)){f[o>>2]=q;b=f[i>>2]|0;f[b>>2]=0;f[b+4>>2]=0;if((f[f[k>>2]>>2]|0)>>>0>=(f[m>>2]|0)>>>0){f[n>>2]=9;n=f[n>>2]|0;l=r;return n|0}}else{if(!(f[f[o>>2]>>2]|0)){b=f[i>>2]|0;f[b>>2]=0;f[b+4>>2]=0}if((f[f[o>>2]>>2]|0)>>>0<9?(b=f[i>>2]|0,b=dh(f[b>>2]|0,f[b+4>>2]|0,(f[f[o>>2]>>2]|0)*7|0)|0,!((b|0)!=0|(G|0)!=0)):0){if((f[f[k>>2]>>2]|0)>>>0<(f[m>>2]|0)>>>0)break;f[n>>2]=10;n=f[n>>2]|0;l=r;return n|0}f[n>>2]=11;n=f[n>>2]|0;l=r;return n|0}while(0);while(1){d[p>>0]=d[(f[j>>2]|0)+(f[f[k>>2]>>2]|0)>>0]|0;a=f[k>>2]|0;f[a>>2]=(f[a>>2]|0)+1;a=(g[p>>0]|0)&127;a=eh(a|0,((a|0)<0)<<31>>31|0,(f[f[o>>2]>>2]|0)*7|0)|0;b=f[i>>2]|0;h=b;a=hh(f[h>>2]|0,f[h+4>>2]|0,a|0,G|0)|0;f[b>>2]=a;f[b+4>>2]=G;b=f[o>>2]|0;f[b>>2]=(f[b>>2]|0)+1;if(!((g[p>>0]|0)&128)){i=12;break}if((f[f[o>>2]>>2]|0)==9){i=17;break}if((f[f[k>>2]>>2]|0)>>>0>=(f[m>>2]|0)>>>0){i=19;break}}if((i|0)==12){if((g[p>>0]|0|0)==0?(f[f[o>>2]>>2]|0)>>>0>1:0){f[n>>2]=9;n=f[n>>2]|0;l=r;return n|0}f[n>>2]=(f[o>>2]|0)==(q|0)?0:1;n=f[n>>2]|0;l=r;return n|0}else if((i|0)==17){f[n>>2]=9;n=f[n>>2]|0;l=r;return n|0}else if((i|0)==19){f[n>>2]=(f[o>>2]|0)==(q|0)?9:0;n=f[n>>2]|0;l=r;return n|0}return 0}function vd(a,b,c,e,g,h){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+48|0;m=t+36|0;n=t+32|0;i=t+28|0;o=t+24|0;p=t+20|0;q=t+16|0;r=t+12|0;s=t+8|0;k=t+4|0;j=t;f[n>>2]=a;f[i>>2]=b;f[o>>2]=c;f[p>>2]=e;f[q>>2]=g;f[r>>2]=h;if(!(d[(f[n>>2]|0)+2717>>0]&1)?!(Cd(f[n>>2]|0,f[i>>2]|0)|0):0){f[m>>2]=0;m=f[m>>2]|0;l=t;return m|0}f[s>>2]=Dd(f[i>>2]|0)|0;while(1){if(Ed(f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0)|0){h=6;break}if((f[r>>2]|0)!=-1){if(((f[(f[i>>2]|0)+20>>2]|0)-(f[(f[i>>2]|0)+24>>2]|0)|0)>>>0>=(f[r>>2]|0)>>>0){h=18;break}e=f[f[p>>2]>>2]|0;g=Fd(f[n>>2]|0)|0;g=hh(e|0,0,g|0,G|0)|0;e=G;if(e>>>0>0|(e|0)==0&g>>>0>=61439){h=18;break}}if((f[(f[i>>2]|0)+20>>2]|0)>>>0>=(f[(f[i>>2]|0)+28>>2]|0)>>>0){if(!(f[(f[i>>2]|0)+80>>2]|0)){h=12;break}if(!(f[(f[i>>2]|0)+24>>2]|0)){h=18;break}}h=f[n>>2]|0;a=f[i>>2]|0;if(d[(f[n>>2]|0)+2716>>0]&1)he(h,a,j,k);else le(h,a,j,k,f[s>>2]|0);Gd(f[n>>2]|0,f[i>>2]|0,f[j>>2]|0,f[k>>2]|0,f[s>>2]|0);f[s>>2]=(f[s>>2]|0)+(f[k>>2]|0)}if((h|0)==6){f[m>>2]=0;m=f[m>>2]|0;l=t;return m|0}else if((h|0)==12){f[m>>2]=0;m=f[m>>2]|0;l=t;return m|0}else if((h|0)==18){if(!(d[(f[n>>2]|0)+2718>>0]&1)){d[(f[n>>2]|0)+2718>>0]=1;if((f[r>>2]|0)==-1)Hd(f[n>>2]|0,f[s>>2]|0);Id(f[n>>2]|0);if(Ed(f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0)|0){f[m>>2]=0;m=f[m>>2]|0;l=t;return m|0}}d[(f[n>>2]|0)+2718>>0]=0;f[m>>2]=1;m=f[m>>2]|0;l=t;return m|0}return 0}function wd(a,b){a=a|0;b=b|0;var c=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;c=q+36|0;g=q+32|0;h=q+28|0;k=q+24|0;m=q+20|0;p=q+16|0;n=q+12|0;o=q+8|0;i=q+4|0;j=q;f[g>>2]=a;f[h>>2]=b;if(!(Jd(f[h>>2]|0)|0)){f[c>>2]=8;o=f[c>>2]|0;l=q;return o|0}f[(f[g>>2]|0)+2720>>2]=(1<<f[(f[h>>2]|0)+20>>2])-1;f[(f[g>>2]|0)+2724>>2]=f[(f[h>>2]|0)+12>>2];f[(f[g>>2]|0)+2728>>2]=(1<<f[(f[h>>2]|0)+16>>2])-1;Kd(f[g>>2]|0);f[(f[g>>2]|0)+496>>2]=0;f[k>>2]=0;while(1){if((f[k>>2]|0)>>>0>=4)break;f[(f[g>>2]|0)+500+(f[k>>2]<<2)>>2]=0;f[k>>2]=(f[k>>2]|0)+1}Ld((f[g>>2]|0)+2732|0,f[(f[h>>2]|0)+12>>2]|0,f[(f[h>>2]|0)+16>>2]|0);f[m>>2]=0;while(1){if((f[m>>2]|0)>>>0>=12)break;f[p>>2]=0;while(1){if((f[p>>2]|0)>>>0>(f[(f[g>>2]|0)+2720>>2]|0)>>>0)break;e[(f[g>>2]|0)+27308+(f[m>>2]<<5)+(f[p>>2]<<1)>>1]=1024;e[(f[g>>2]|0)+27788+(f[m>>2]<<5)+(f[p>>2]<<1)>>1]=1024;f[p>>2]=(f[p>>2]|0)+1}e[(f[g>>2]|0)+27692+(f[m>>2]<<1)>>1]=1024;e[(f[g>>2]|0)+27716+(f[m>>2]<<1)>>1]=1024;e[(f[g>>2]|0)+27740+(f[m>>2]<<1)>>1]=1024;e[(f[g>>2]|0)+27764+(f[m>>2]<<1)>>1]=1024;f[m>>2]=(f[m>>2]|0)+1}f[n>>2]=0;while(1){if((f[n>>2]|0)>>>0>=114)break;e[(f[g>>2]|0)+28684+(f[n>>2]<<1)>>1]=1024;f[n>>2]=(f[n>>2]|0)+1}f[o>>2]=0;while(1){if((f[o>>2]|0)>>>0>=4)break;f[i>>2]=0;while(1){if((f[i>>2]|0)>>>0>=64)break;e[(f[g>>2]|0)+28172+(f[o>>2]<<7)+(f[i>>2]<<1)>>1]=1024;f[i>>2]=(f[i>>2]|0)+1}f[o>>2]=(f[o>>2]|0)+1}f[j>>2]=0;while(1){if((f[j>>2]|0)>>>0>=16)break;e[(f[g>>2]|0)+28912+(f[j>>2]<<1)>>1]=1024;f[j>>2]=(f[j>>2]|0)+1}Md((f[g>>2]|0)+28944|0,1<<f[(f[h>>2]|0)+20>>2],d[(f[g>>2]|0)+2716>>0]&1);Md((f[g>>2]|0)+47448|0,1<<f[(f[h>>2]|0)+20>>2],d[(f[g>>2]|0)+2716>>0]&1);f[(f[g>>2]|0)+69028>>2]=2147483647;f[(f[g>>2]|0)+69096>>2]=2147483647;f[(f[g>>2]|0)+69100>>2]=0;f[(f[g>>2]|0)+69104>>2]=0;f[c>>2]=0;o=f[c>>2]|0;l=q;return o|0}function xd(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;j=o+24|0;g=o+20|0;h=o+16|0;k=o+12|0;m=o+8|0;n=o+4|0;i=o;f[g>>2]=a;f[h>>2]=b;f[k>>2]=c;f[m>>2]=e;if((f[f[g>>2]>>2]|0)==0?(c=hb(249336,f[h>>2]|0)|0,f[f[g>>2]>>2]=c,(f[f[g>>2]>>2]|0)==0):0){f[j>>2]=5;m=f[j>>2]|0;l=o;return m|0}f[n>>2]=f[f[g>>2]>>2];g=f[(f[k>>2]|0)+24>>2]|0;if((g|0)==1)d[(f[n>>2]|0)+2716>>0]=1;else if((g|0)==2){d[(f[n>>2]|0)+2716>>0]=0;f[i>>2]=0;while(1){g=f[i>>2]|0;if(1<<f[i>>2]>>>0>=(f[f[k>>2]>>2]|0)>>>0)break;f[i>>2]=g+1}f[(f[n>>2]|0)+69024>>2]=g<<1;f[(f[n>>2]|0)+28944+18436>>2]=(f[(f[k>>2]|0)+28>>2]|0)+1-2;f[(f[n>>2]|0)+47448+18436>>2]=(f[(f[k>>2]|0)+28>>2]|0)+1-2}else{f[j>>2]=8;m=f[j>>2]|0;l=o;return m|0}if(f[(f[k>>2]|0)+4>>2]|0)g=(f[(f[k>>2]|0)+8>>2]|0)>>>0>0;else g=0;d[(f[n>>2]|0)+2717>>0]=g&1;d[(f[n>>2]|0)+2718>>0]=0;Nd(f[m>>2]|0,f[k>>2]|0);f[j>>2]=wd(f[n>>2]|0,f[k>>2]|0)|0;m=f[j>>2]|0;l=o;return m|0}function yd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=lg(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,8)|0;l=d;return b|0}function zd(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;g=l;l=l+64|0;b=g+8|0;c=g+52|0;e=g+16|0;d=g;f[c>>2]=a;do if(Jd(f[c>>2]|0)|0){Nd(e,f[c>>2]|0);e=kg(e)|0;c=d;f[c>>2]=e;f[c+4>>2]=G;c=d;if((f[c>>2]|0)==-1?(f[c+4>>2]|0)==-1:0){c=b;f[c>>2]=-1;f[c+4>>2]=-1;break}else{d=hh(249336,0,f[d>>2]|0,f[d+4>>2]|0)|0;c=b;f[c>>2]=d;f[c+4>>2]=G;break}}else{c=b;f[c>>2]=-1;f[c+4>>2]=-1}while(0);G=f[b+4>>2]|0;l=g;return f[b>>2]|0}function Ad(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0;h=l;l=l+16|0;c=h+8|0;e=h+4|0;g=h;f[e>>2]=a;f[g>>2]=b;if(Pd(f[e>>2]|0)|0){d[f[g>>2]>>0]=((((f[(f[e>>2]|0)+20>>2]|0)*5|0)+(f[(f[e>>2]|0)+16>>2]|0)|0)*9|0)+(f[(f[e>>2]|0)+12>>2]|0);d[c>>0]=0;c=d[c>>0]|0;c=c&1;l=h;return c|0}else{d[c>>0]=1;c=d[c>>0]|0;c=c&1;l=h;return c|0}return 0}function Bd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=l;l=l+16|0;c=g+12|0;h=g+8|0;d=g+4|0;e=g;f[h>>2]=a;f[d>>2]=b;f[e>>2]=f[h>>2];if(Ad(f[e>>2]|0,f[d>>2]|0)|0){f[c>>2]=11;c=f[c>>2]|0;l=g;return c|0}else{Qd((f[d>>2]|0)+1|0,f[f[e>>2]>>2]|0);f[c>>2]=0;c=f[c>>2]|0;l=g;return c|0}return 0}function Cd(a,b){a=a|0;b=b|0;var c=0,e=0,h=0,i=0;i=l;l=l+16|0;c=i+8|0;e=i+4|0;h=i;f[e>>2]=a;f[h>>2]=b;a=f[h>>2]|0;if((f[(f[h>>2]|0)+20>>2]|0)==(f[(f[h>>2]|0)+28>>2]|0)){if(!(f[a+80>>2]|0)){d[c>>0]=0;a=d[c>>0]|0;a=a&1;l=i;return a|0}}else{ge(a,1);f[(f[h>>2]|0)+24>>2]=0;Xd(f[e>>2]|0,(f[e>>2]|0)+27308|0,0);_d(f[e>>2]|0,(f[e>>2]|0)+2732|0,8,g[f[f[h>>2]>>2]>>0]|0)}d[(f[e>>2]|0)+2717>>0]=1;d[c>>0]=1;a=d[c>>0]|0;a=a&1;l=i;return a|0}function Dd(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return(f[(f[b>>2]|0)+20>>2]|0)-(f[(f[b>>2]|0)+24>>2]|0)|0}function Ed(a,b,c,g){a=a|0;b=b|0;c=c|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;m=r+24|0;n=r+16|0;o=r+12|0;p=r+8|0;q=r+4|0;j=r+22|0;k=r+20|0;i=r;f[n>>2]=a;f[o>>2]=b;f[p>>2]=c;f[q>>2]=g;a:while(1){b=f[n>>2]|0;if((f[(f[n>>2]|0)+28>>2]|0)>>>0>=(f[(f[n>>2]|0)+24>>2]|0)>>>0){c=18;break}if((f[b+16>>2]|0)>>>0<16777216){if(fe(f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0)|0){c=5;break}a=(f[n>>2]|0)+16|0;f[a>>2]=f[a>>2]<<8}switch(f[(f[n>>2]|0)+32+(f[(f[n>>2]|0)+28>>2]<<2)>>2]|0){case 1:{e[k>>1]=e[f[(f[n>>2]|0)+264+(f[(f[n>>2]|0)+28>>2]<<2)>>2]>>1]|0;f[i>>2]=ca(h[k>>1]|0,(f[(f[n>>2]|0)+16>>2]|0)>>>11)|0;a=f[n>>2]|0;g=a;f[a>>2]=hh(f[g>>2]|0,f[g+4>>2]|0,f[i>>2]|0,0)|0;f[a+4>>2]=G;a=(f[n>>2]|0)+16|0;f[a>>2]=(f[a>>2]|0)-(f[i>>2]|0);e[k>>1]=(h[k>>1]|0)-((h[k>>1]|0)>>5);e[f[(f[n>>2]|0)+264+(f[(f[n>>2]|0)+28>>2]<<2)>>2]>>1]=e[k>>1]|0;break}case 2:{a=(f[n>>2]|0)+16|0;f[a>>2]=(f[a>>2]|0)>>>1;break}case 4:{c=12;break a}case 3:{a=(f[n>>2]|0)+16|0;f[a>>2]=(f[a>>2]|0)>>>1;a=f[n>>2]|0;g=a;f[a>>2]=hh(f[g>>2]|0,f[g+4>>2]|0,f[(f[n>>2]|0)+16>>2]|0,0)|0;f[a+4>>2]=G;break}case 0:{e[j>>1]=e[f[(f[n>>2]|0)+264+(f[(f[n>>2]|0)+28>>2]<<2)>>2]>>1]|0;a=ca((f[(f[n>>2]|0)+16>>2]|0)>>>11,h[j>>1]|0)|0;f[(f[n>>2]|0)+16>>2]=a;e[j>>1]=(h[j>>1]|0)+((2048-(h[j>>1]|0)|0)>>>5);e[f[(f[n>>2]|0)+264+(f[(f[n>>2]|0)+28>>2]<<2)>>2]>>1]=e[j>>1]|0;break}default:{}}a=(f[n>>2]|0)+28|0;f[a>>2]=(f[a>>2]|0)+1}if((c|0)==5){d[m>>0]=1;o=d[m>>0]|0;o=o&1;l=r;return o|0}else if((c|0)==12){f[(f[n>>2]|0)+16>>2]=-1;while(1){if(fe(f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0)|0){c=14;break}j=(f[n>>2]|0)+28|0;k=(f[j>>2]|0)+1|0;f[j>>2]=k;if(k>>>0>=(f[(f[n>>2]|0)+24>>2]|0)>>>0){c=16;break}}if((c|0)==14){d[m>>0]=1;o=d[m>>0]|0;o=o&1;l=r;return o|0}else if((c|0)==16){Kd(f[n>>2]|0);d[m>>0]=0;o=d[m>>0]|0;o=o&1;l=r;return o|0}}else if((c|0)==18){f[b+24>>2]=0;f[(f[n>>2]|0)+28>>2]=0;d[m>>0]=0;o=d[m>>0]|0;o=o&1;l=r;return o|0}return 0}function Fd(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=(f[c>>2]|0)+8|0;a=hh(f[a>>2]|0,f[a+4>>2]|0,5,0)|0;a=bh(a|0,G|0,1,0)|0;l=b;return a|0}function Gd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;h=n+20|0;i=n+16|0;j=n+12|0;k=n+8|0;g=n+4|0;m=n;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[k>>2]=d;f[g>>2]=e;f[m>>2]=f[g>>2]&f[(f[h>>2]|0)+2720>>2];c=f[h>>2]|0;a=(f[h>>2]|0)+27308+(f[(f[h>>2]|0)+496>>2]<<5)+(f[m>>2]<<1)|0;do if((f[j>>2]|0)!=-1){Xd(c,a,1);a=f[h>>2]|0;c=(f[h>>2]|0)+27692+(f[(f[h>>2]|0)+496>>2]<<1)|0;if((f[j>>2]|0)>>>0<4){Xd(a,c,1);de(f[h>>2]|0,f[m>>2]|0,f[j>>2]|0,f[k>>2]|0);break}else{Xd(a,c,0);Yd(f[h>>2]|0,f[m>>2]|0,(f[j>>2]|0)-4|0,f[k>>2]|0);break}}else{Xd(c,a,0);ce(f[h>>2]|0,f[i>>2]|0,f[g>>2]|0)}while(0);j=(f[i>>2]|0)+24|0;f[j>>2]=(f[j>>2]|0)-(f[k>>2]|0);l=n;return}function Hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=l;l=l+16|0;e=c+8|0;g=c+4|0;d=c;f[e>>2]=a;f[g>>2]=b;f[d>>2]=f[g>>2]&f[(f[e>>2]|0)+2720>>2];Xd(f[e>>2]|0,(f[e>>2]|0)+27308+(f[(f[e>>2]|0)+496>>2]<<5)+(f[d>>2]<<1)|0,1);Xd(f[e>>2]|0,(f[e>>2]|0)+27692+(f[(f[e>>2]|0)+496>>2]<<1)|0,0);Yd(f[e>>2]|0,f[d>>2]|0,-1,2);l=c;return}function Id(a){a=a|0;var b=0,c=0,d=0,e=0;d=l;l=l+16|0;b=d+4|0;c=d;f[b>>2]=a;f[c>>2]=0;while(1){if((f[c>>2]|0)>>>0>=5)break;e=(f[b>>2]|0)+24|0;a=f[e>>2]|0;f[e>>2]=a+1;f[(f[b>>2]|0)+32+(a<<2)>>2]=4;f[c>>2]=(f[c>>2]|0)+1}l=d;return}function Jd(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;if((Pd(f[b>>2]|0)|0?(f[(f[b>>2]|0)+28>>2]|0)>>>0>=2:0)?(f[(f[b>>2]|0)+28>>2]|0)>>>0<=273:0)if((f[(f[b>>2]|0)+24>>2]|0)==1)b=1;else b=(f[(f[b>>2]|0)+24>>2]|0)==2;else b=0;l=c;return b|0}function Kd(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=f[c>>2]|0;f[a>>2]=0;f[a+4>>2]=0;a=(f[c>>2]|0)+8|0;f[a>>2]=1;f[a+4>>2]=0;f[(f[c>>2]|0)+16>>2]=-1;d[(f[c>>2]|0)+20>>0]=0;f[(f[c>>2]|0)+24>>2]=0;f[(f[c>>2]|0)+28>>2]=0;l=b;return}function Ld(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,g=0,h=0,i=0,j=0,k=0,m=0;j=l;l=l+32|0;d=j+20|0;m=j+16|0;k=j+12|0;g=j+8|0;h=j+4|0;i=j;f[d>>2]=a;f[m>>2]=b;f[k>>2]=c;f[g>>2]=1<<(f[m>>2]|0)+(f[k>>2]|0);f[h>>2]=0;while(1){if((f[h>>2]|0)>>>0>=(f[g>>2]|0)>>>0)break;f[i>>2]=0;while(1){if((f[i>>2]|0)>>>0>=768)break;e[(f[d>>2]|0)+((f[h>>2]|0)*1536|0)+(f[i>>2]<<1)>>1]=1024;f[i>>2]=(f[i>>2]|0)+1}f[h>>2]=(f[h>>2]|0)+1}l=j;return}function Md(a,b,c){a=a|0;b=b|0;c=c|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+32|0;g=p+24|0;h=p+20|0;i=p+28|0;n=p+16|0;j=p+12|0;k=p+8|0;m=p+4|0;o=p;f[g>>2]=a;f[h>>2]=b;d[i>>0]=c&1;e[f[g>>2]>>1]=1024;e[(f[g>>2]|0)+2>>1]=1024;f[n>>2]=0;while(1){if((f[n>>2]|0)>>>0>=(f[h>>2]|0)>>>0)break;f[j>>2]=0;while(1){if((f[j>>2]|0)>>>0>=8)break;e[(f[g>>2]|0)+4+(f[n>>2]<<4)+(f[j>>2]<<1)>>1]=1024;f[j>>2]=(f[j>>2]|0)+1}f[k>>2]=0;while(1){if((f[k>>2]|0)>>>0>=8)break;e[(f[g>>2]|0)+260+(f[n>>2]<<4)+(f[k>>2]<<1)>>1]=1024;f[k>>2]=(f[k>>2]|0)+1}f[n>>2]=(f[n>>2]|0)+1}f[m>>2]=0;while(1){if((f[m>>2]|0)>>>0>=256)break;e[(f[g>>2]|0)+516+(f[m>>2]<<1)>>1]=1024;f[m>>2]=(f[m>>2]|0)+1}if(d[i>>0]&1){l=p;return}f[o>>2]=0;while(1){if((f[o>>2]|0)>>>0>=(f[h>>2]|0)>>>0)break;Sd(f[g>>2]|0,f[o>>2]|0);f[o>>2]=(f[o>>2]|0)+1}l=p;return}function Nd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c+4|0;e=c;f[d>>2]=a;f[e>>2]=b;f[f[d>>2]>>2]=4096;f[(f[d>>2]|0)+4>>2]=f[f[e>>2]>>2];f[(f[d>>2]|0)+8>>2]=4097;f[(f[d>>2]|0)+12>>2]=273;f[(f[d>>2]|0)+16>>2]=f[(f[e>>2]|0)+28>>2];f[(f[d>>2]|0)+20>>2]=f[(f[e>>2]|0)+32>>2];f[(f[d>>2]|0)+24>>2]=f[(f[e>>2]|0)+36>>2];f[(f[d>>2]|0)+28>>2]=f[(f[e>>2]|0)+4>>2];f[(f[d>>2]|0)+32>>2]=f[(f[e>>2]|0)+8>>2];l=c;return}function Od(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;j=e+12|0;i=e+8|0;h=e+4|0;g=e;f[j>>2]=a;f[i>>2]=b;f[h>>2]=c;f[g>>2]=d;f[(f[j>>2]|0)+4>>2]=3;b=xd(f[j>>2]|0,f[i>>2]|0,f[h>>2]|0,f[g>>2]|0)|0;l=e;return b|0}function Pd(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;if((f[(f[b>>2]|0)+12>>2]|0)>>>0>4){b=0;l=c;return b|0}if((f[(f[b>>2]|0)+16>>2]|0)>>>0>4){b=0;l=c;return b|0}if(((f[(f[b>>2]|0)+12>>2]|0)+(f[(f[b>>2]|0)+16>>2]|0)|0)>>>0>4){b=0;l=c;return b|0}b=(f[(f[b>>2]|0)+20>>2]|0)>>>0<=4;l=c;return b|0}function Qd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c+4|0;e=c;f[d>>2]=a;f[e>>2]=b;f[f[d>>2]>>2]=f[e>>2];l=c;return}function Rd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;g=n+20|0;h=n+16|0;i=n+12|0;j=n+8|0;k=n+4|0;m=n;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[k>>2]=d;f[m>>2]=e;if((f[(f[i>>2]|0)+80>>2]|0)==1){f[g>>2]=8;d=f[g>>2]|0;l=n;return d|0}else{f[g>>2]=vd(f[h>>2]|0,f[i>>2]|0,f[j>>2]|0,f[k>>2]|0,f[m>>2]|0,-1)|0;d=f[g>>2]|0;l=n;return d|0}return 0}function Sd(a,b){a=a|0;b=b|0;var c=0,d=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+48|0;c=n+32|0;d=n+28|0;m=n+24|0;g=n+20|0;o=n+16|0;h=n+12|0;i=n+8|0;k=n+4|0;j=n;f[c>>2]=a;f[d>>2]=b;f[m>>2]=f[(f[c>>2]|0)+18436>>2];f[(f[c>>2]|0)+18440+(f[d>>2]<<2)>>2]=f[m>>2];f[g>>2]=Td(e[f[c>>2]>>1]|0)|0;f[o>>2]=Ud(e[f[c>>2]>>1]|0)|0;b=f[o>>2]|0;f[h>>2]=b+(Td(e[(f[c>>2]|0)+2>>1]|0)|0);b=f[o>>2]|0;f[i>>2]=b+(Ud(e[(f[c>>2]|0)+2>>1]|0)|0);f[k>>2]=(f[c>>2]|0)+1028+((f[d>>2]|0)*1088|0);f[j>>2]=0;while(1){if(!((f[j>>2]|0)>>>0<(f[m>>2]|0)>>>0?(f[j>>2]|0)>>>0<8:0))break;b=f[g>>2]|0;b=b+(Vd((f[c>>2]|0)+4+(f[d>>2]<<4)|0,3,f[j>>2]|0)|0)|0;f[(f[k>>2]|0)+(f[j>>2]<<2)>>2]=b;f[j>>2]=(f[j>>2]|0)+1}while(1){if(!((f[j>>2]|0)>>>0<(f[m>>2]|0)>>>0?(f[j>>2]|0)>>>0<16:0))break;b=f[h>>2]|0;b=b+(Vd((f[c>>2]|0)+260+(f[d>>2]<<4)|0,3,(f[j>>2]|0)-8|0)|0)|0;f[(f[k>>2]|0)+(f[j>>2]<<2)>>2]=b;f[j>>2]=(f[j>>2]|0)+1}while(1){if((f[j>>2]|0)>>>0>=(f[m>>2]|0)>>>0)break;b=f[i>>2]|0;b=b+(Vd((f[c>>2]|0)+516|0,8,(f[j>>2]|0)-8-8|0)|0)|0;f[(f[k>>2]|0)+(f[j>>2]<<2)>>2]=b;f[j>>2]=(f[j>>2]|0)+1}l=n;return}function Td(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;e[b>>1]=a;l=c;return g[26496+((h[b>>1]|0)>>4)>>0]|0|0}function Ud(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;e[b>>1]=a;l=c;return g[26496+(((h[b>>1]|0)^2047)>>>4)>>0]|0|0}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+32|0;d=j+16|0;k=j+12|0;g=j+8|0;i=j+4|0;h=j;f[d>>2]=a;f[k>>2]=b;f[g>>2]=c;f[i>>2]=0;f[g>>2]=(f[g>>2]|0)+(1<<f[k>>2]);do{f[h>>2]=f[g>>2]&1;f[g>>2]=(f[g>>2]|0)>>>1;b=Wd(e[(f[d>>2]|0)+(f[g>>2]<<1)>>1]|0,f[h>>2]|0)|0;f[i>>2]=(f[i>>2]|0)+b}while((f[g>>2]|0)!=1);l=j;return f[i>>2]|0}function Wd(a,b){a=a|0;b=b|0;var c=0,d=0,i=0;i=l;l=l+16|0;d=i+4|0;c=i;e[d>>1]=a;f[c>>2]=b;l=i;return g[26496+(((h[d>>1]|0)^0-(f[c>>2]|0)&2047)>>>4)>>0]|0|0}function Xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;e=d+8|0;g=d+4|0;h=d;f[e>>2]=a;f[g>>2]=b;f[h>>2]=c;f[(f[e>>2]|0)+32+(f[(f[e>>2]|0)+24>>2]<<2)>>2]=f[h>>2];f[(f[e>>2]|0)+264+(f[(f[e>>2]|0)+24>>2]<<2)>>2]=f[g>>2];c=(f[e>>2]|0)+24|0;f[c>>2]=(f[c>>2]|0)+1;l=d;return}function Yd(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;n=l;l=l+48|0;g=n+32|0;q=n+28|0;h=n+24|0;p=n+20|0;k=n+16|0;o=n+12|0;m=n+8|0;i=n+4|0;j=n;f[g>>2]=a;f[q>>2]=b;f[h>>2]=c;f[p>>2]=e;f[(f[g>>2]|0)+496>>2]=(f[(f[g>>2]|0)+496>>2]|0)>>>0<7?7:10;Zd(f[g>>2]|0,(f[g>>2]|0)+28944|0,f[q>>2]|0,f[p>>2]|0,d[(f[g>>2]|0)+2716>>0]&1);f[k>>2]=$d(f[h>>2]|0)|0;f[o>>2]=(f[p>>2]|0)>>>0<6?(f[p>>2]|0)-2|0:3;_d(f[g>>2]|0,(f[g>>2]|0)+28172+(f[o>>2]<<7)|0,6,f[k>>2]|0);do if((f[k>>2]|0)>>>0>=4){f[m>>2]=((f[k>>2]|0)>>>1)-1;f[i>>2]=(2|f[k>>2]&1)<<f[m>>2];f[j>>2]=(f[h>>2]|0)-(f[i>>2]|0);a=f[g>>2]|0;if((f[k>>2]|0)>>>0<14){ae(a,(f[g>>2]|0)+28684+(f[i>>2]<<1)+(0-(f[k>>2]|0)<<1)+-2|0,f[m>>2]|0,f[j>>2]|0);break}else{be(a,(f[j>>2]|0)>>>4,(f[m>>2]|0)-4|0);ae(f[g>>2]|0,(f[g>>2]|0)+28912|0,4,f[j>>2]&15);m=(f[g>>2]|0)+69096|0;f[m>>2]=(f[m>>2]|0)+1;break}}while(0);f[(f[g>>2]|0)+500+12>>2]=f[(f[g>>2]|0)+500+8>>2];f[(f[g>>2]|0)+500+8>>2]=f[(f[g>>2]|0)+500+4>>2];f[(f[g>>2]|0)+500+4>>2]=f[(f[g>>2]|0)+500>>2];f[(f[g>>2]|0)+500>>2]=f[h>>2];m=(f[g>>2]|0)+69028|0;f[m>>2]=(f[m>>2]|0)+1;l=n;return}function Zd(a,b,c,e,g){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;h=n+12|0;i=n+8|0;j=n+4|0;k=n;m=n+16|0;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[k>>2]=e;d[m>>0]=g&1;f[k>>2]=(f[k>>2]|0)-2;b=f[h>>2]|0;g=f[i>>2]|0;do if((f[k>>2]|0)>>>0>=8){Xd(b,g,1);f[k>>2]=(f[k>>2]|0)-8;g=f[h>>2]|0;b=(f[i>>2]|0)+2|0;if((f[k>>2]|0)>>>0<8){
Xd(g,b,0);_d(f[h>>2]|0,(f[i>>2]|0)+260+(f[j>>2]<<4)|0,3,f[k>>2]|0);break}else{Xd(g,b,1);f[k>>2]=(f[k>>2]|0)-8;_d(f[h>>2]|0,(f[i>>2]|0)+516|0,8,f[k>>2]|0);break}}else{Xd(b,g,0);_d(f[h>>2]|0,(f[i>>2]|0)+4+(f[j>>2]<<4)|0,3,f[k>>2]|0)}while(0);if(d[m>>0]&1){l=n;return}k=(f[i>>2]|0)+18440+(f[j>>2]<<2)|0;m=(f[k>>2]|0)+-1|0;f[k>>2]=m;if(m){l=n;return}Sd(f[i>>2]|0,f[j>>2]|0);l=n;return}function $d(a){a=a|0;var b=0,c=0,d=0,e=0;e=l;l=l+16|0;d=e+4|0;b=e;f[b>>2]=a;c=f[b>>2]|0;if((f[b>>2]|0)>>>0<8192){f[d>>2]=g[18256+c>>0];a=f[d>>2]|0;l=e;return a|0}a=f[b>>2]|0;if(c>>>0<33554432){f[d>>2]=(g[18256+(a>>>12)>>0]|0)+24;a=f[d>>2]|0;l=e;return a|0}else{f[d>>2]=(g[18256+(a>>>24)>>0]|0)+48;a=f[d>>2]|0;l=e;return a|0}return 0}function _d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+20|0;g=m+16|0;h=m+12|0;i=m+8|0;k=m+4|0;j=m;f[e>>2]=a;f[g>>2]=b;f[h>>2]=c;f[i>>2]=d;f[k>>2]=1;do{a=f[i>>2]|0;d=(f[h>>2]|0)+-1|0;f[h>>2]=d;f[j>>2]=a>>>d&1;Xd(f[e>>2]|0,(f[g>>2]|0)+(f[k>>2]<<1)|0,f[j>>2]|0);f[k>>2]=(f[k>>2]<<1)+(f[j>>2]|0)}while((f[h>>2]|0)!=0);l=m;return}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+20|0;g=m+16|0;h=m+12|0;i=m+8|0;k=m+4|0;j=m;f[e>>2]=a;f[g>>2]=b;f[h>>2]=c;f[i>>2]=d;f[k>>2]=1;do{f[j>>2]=f[i>>2]&1;f[i>>2]=(f[i>>2]|0)>>>1;Xd(f[e>>2]|0,(f[g>>2]|0)+(f[k>>2]<<1)|0,f[j>>2]|0);f[k>>2]=(f[k>>2]<<1)+(f[j>>2]|0);d=(f[h>>2]|0)+-1|0;f[h>>2]=d}while((d|0)!=0);l=m;return}function be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;h=l;l=l+16|0;d=h+8|0;e=h+4|0;g=h;f[d>>2]=a;f[e>>2]=b;f[g>>2]=c;do{b=f[e>>2]|0;a=(f[g>>2]|0)+-1|0;f[g>>2]=a;i=(f[d>>2]|0)+24|0;c=f[i>>2]|0;f[i>>2]=c+1;f[(f[d>>2]|0)+32+(c<<2)>>2]=2+(b>>>a&1)}while((f[g>>2]|0)!=0);l=h;return}function ce(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;e=m+12|0;h=m+8|0;n=m+4|0;i=m+17|0;k=m;j=m+16|0;f[e>>2]=a;f[h>>2]=b;f[n>>2]=c;d[i>>0]=d[(f[f[h>>2]>>2]|0)+((f[(f[h>>2]|0)+20>>2]|0)-(f[(f[h>>2]|0)+24>>2]|0))>>0]|0;f[k>>2]=(f[e>>2]|0)+2732+((((f[n>>2]&f[(f[e>>2]|0)+2728>>2])<<f[(f[e>>2]|0)+2724>>2])+((g[(f[f[h>>2]>>2]|0)+((f[(f[h>>2]|0)+20>>2]|0)-(f[(f[h>>2]|0)+24>>2]|0)-1)>>0]|0)>>8-(f[(f[e>>2]|0)+2724>>2]|0))|0)*1536|0);if((f[(f[e>>2]|0)+496>>2]|0)>>>0<7)_d(f[e>>2]|0,f[k>>2]|0,8,g[i>>0]|0);else{d[j>>0]=d[(f[f[h>>2]>>2]|0)+((f[(f[h>>2]|0)+20>>2]|0)-(f[(f[e>>2]|0)+500>>2]|0)-1-(f[(f[h>>2]|0)+24>>2]|0))>>0]|0;ee(f[e>>2]|0,f[k>>2]|0,g[j>>0]|0,g[i>>0]|0)}if((f[(f[e>>2]|0)+496>>2]|0)>>>0<=3){h=0;e=f[e>>2]|0;e=e+496|0;f[e>>2]=h;l=m;return}h=f[(f[e>>2]|0)+496>>2]|0;h=(f[(f[e>>2]|0)+496>>2]|0)>>>0<=9?h-3|0:h-6|0;e=f[e>>2]|0;e=e+496|0;f[e>>2]=h;l=m;return}function de(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;i=m+16|0;j=m+12|0;g=m+8|0;k=m+4|0;h=m;f[i>>2]=a;f[j>>2]=b;f[g>>2]=c;f[k>>2]=e;if(!(f[g>>2]|0)){Xd(f[i>>2]|0,(f[i>>2]|0)+27716+(f[(f[i>>2]|0)+496>>2]<<1)|0,0);Xd(f[i>>2]|0,(f[i>>2]|0)+27788+(f[(f[i>>2]|0)+496>>2]<<5)+(f[j>>2]<<1)|0,(f[k>>2]|0)!=1&1)}else{f[h>>2]=f[(f[i>>2]|0)+500+(f[g>>2]<<2)>>2];Xd(f[i>>2]|0,(f[i>>2]|0)+27716+(f[(f[i>>2]|0)+496>>2]<<1)|0,1);e=f[i>>2]|0;a=(f[i>>2]|0)+27740+(f[(f[i>>2]|0)+496>>2]<<1)|0;if((f[g>>2]|0)==1)Xd(e,a,0);else{Xd(e,a,1);Xd(f[i>>2]|0,(f[i>>2]|0)+27764+(f[(f[i>>2]|0)+496>>2]<<1)|0,(f[g>>2]|0)-2|0);if((f[g>>2]|0)==3)f[(f[i>>2]|0)+500+12>>2]=f[(f[i>>2]|0)+500+8>>2];f[(f[i>>2]|0)+500+8>>2]=f[(f[i>>2]|0)+500+4>>2]}f[(f[i>>2]|0)+500+4>>2]=f[(f[i>>2]|0)+500>>2];f[(f[i>>2]|0)+500>>2]=f[h>>2]}e=f[i>>2]|0;if((f[k>>2]|0)==1){f[(f[i>>2]|0)+496>>2]=(f[e+496>>2]|0)>>>0<7?9:11;l=m;return}else{Zd(e,(f[i>>2]|0)+47448|0,f[j>>2]|0,f[k>>2]|0,d[(f[i>>2]|0)+2716>>0]&1);f[(f[i>>2]|0)+496>>2]=(f[(f[i>>2]|0)+496>>2]|0)>>>0<7?8:11;l=m;return}}function ee(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;e=o+28|0;g=o+24|0;h=o+20|0;i=o+16|0;m=o+12|0;k=o+8|0;n=o+4|0;j=o;f[e>>2]=a;f[g>>2]=b;f[h>>2]=c;f[i>>2]=d;f[m>>2]=256;f[i>>2]=(f[i>>2]|0)+256;do{f[h>>2]=f[h>>2]<<1;f[k>>2]=f[h>>2]&f[m>>2];f[n>>2]=(f[m>>2]|0)+(f[k>>2]|0)+((f[i>>2]|0)>>>8);f[j>>2]=(f[i>>2]|0)>>>7&1;Xd(f[e>>2]|0,(f[g>>2]|0)+(f[n>>2]<<1)|0,f[j>>2]|0);f[i>>2]=f[i>>2]<<1;f[m>>2]=f[m>>2]&~(f[h>>2]^f[i>>2])}while((f[i>>2]|0)>>>0<65536);l=o;return}function fe(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;h=o+16|0;i=o+12|0;j=o+8|0;k=o+4|0;m=o;f[i>>2]=a;f[j>>2]=b;f[k>>2]=c;f[m>>2]=e;if(!((f[f[i>>2]>>2]|0)>>>0>=4278190080?(f[(f[i>>2]|0)+4>>2]|0)==0:0))n=3;do if((n|0)==3){while(1){n=0;if((f[f[k>>2]>>2]|0)==(f[m>>2]|0))break;d[(f[j>>2]|0)+(f[f[k>>2]>>2]|0)>>0]=(g[(f[i>>2]|0)+20>>0]|0)+(f[(f[i>>2]|0)+4>>2]&255);e=f[k>>2]|0;f[e>>2]=(f[e>>2]|0)+1;d[(f[i>>2]|0)+20>>0]=-1;e=(f[i>>2]|0)+8|0;a=e;a=hh(f[a>>2]|0,f[a+4>>2]|0,-1,-1)|0;n=G;f[e>>2]=a;f[e+4>>2]=n;if((a|0)!=0|(n|0)!=0)n=3;else{n=6;break}}if((n|0)==6){n=f[i>>2]|0;n=dh(f[n>>2]|0,f[n+4>>2]|0,24)|0;d[(f[i>>2]|0)+20>>0]=n;break}d[h>>0]=1;n=d[h>>0]|0;n=n&1;l=o;return n|0}while(0);a=(f[i>>2]|0)+8|0;n=a;n=hh(f[n>>2]|0,f[n+4>>2]|0,1,0)|0;f[a>>2]=n;f[a+4>>2]=G;a=eh(f[f[i>>2]>>2]&16777215|0,0,8)|0;n=f[i>>2]|0;f[n>>2]=a;f[n+4>>2]=G;d[h>>0]=0;n=d[h>>0]|0;n=n&1;l=o;return n|0}function ge(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=l;l=l+16|0;c=e+4|0;d=e;f[c>>2]=a;f[d>>2]=b;if(!(f[d>>2]|0)){l=e;return}Kh[f[(f[c>>2]|0)+44>>2]&31](f[c>>2]|0,f[d>>2]|0);c=(f[c>>2]|0)+24|0;f[c>>2]=(f[c>>2]|0)+(f[d>>2]|0);l=e;return}function he(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+96|0;e=E+84|0;h=E+80|0;i=E+76|0;j=E+72|0;k=E+68|0;m=E+64|0;n=E+60|0;o=E+56|0;A=E+52|0;w=E+48|0;y=E+44|0;q=E+40|0;r=E+36|0;C=E+32|0;B=E+28|0;t=E+24|0;s=E+20|0;v=E+16|0;p=E+12|0;z=E+8|0;x=E+4|0;u=E;f[k>>2]=a;f[m>>2]=b;f[n>>2]=c;f[o>>2]=d;f[A>>2]=f[(f[m>>2]|0)+72>>2];if(!(f[(f[m>>2]|0)+24>>2]|0))f[w>>2]=tg(f[m>>2]|0,y,(f[k>>2]|0)+516|0)|0;else{f[w>>2]=f[(f[k>>2]|0)+2712>>2];f[y>>2]=f[(f[k>>2]|0)+2708>>2]}f[q>>2]=(ie(f[m>>2]|0)|0)+-1;if(((je(f[m>>2]|0)|0)+1|0)>>>0<273)a=(je(f[m>>2]|0)|0)+1|0;else a=273;f[r>>2]=a;if((f[r>>2]|0)>>>0<2){f[f[n>>2]>>2]=-1;f[f[o>>2]>>2]=1;l=E;return}f[C>>2]=0;f[B>>2]=0;f[t>>2]=0;while(1){if((f[t>>2]|0)>>>0>=4)break;f[s>>2]=(f[q>>2]|0)+(0-(f[(f[k>>2]|0)+500+(f[t>>2]<<2)>>2]|0))+-1;if((g[f[q>>2]>>0]|0|0)==(g[f[s>>2]>>0]|0|0)?(g[(f[q>>2]|0)+1>>0]|0|0)==(g[(f[s>>2]|0)+1>>0]|0|0):0){c=f[s>>2]|0;a=f[r>>2]|0;f[e>>2]=f[q>>2];f[h>>2]=c;f[i>>2]=2;f[j>>2]=a;while(1){if((f[i>>2]|0)>>>0<(f[j>>2]|0)>>>0)a=(g[(f[e>>2]|0)+(f[i>>2]|0)>>0]|0|0)==(g[(f[h>>2]|0)+(f[i>>2]|0)>>0]|0|0);else a=0;c=f[i>>2]|0;if(!a)break;f[i>>2]=c+1}f[v>>2]=c;if((f[v>>2]|0)>>>0>=(f[A>>2]|0)>>>0){D=18;break}if((f[v>>2]|0)>>>0>(f[C>>2]|0)>>>0){f[B>>2]=f[t>>2];f[C>>2]=f[v>>2]}}f[t>>2]=(f[t>>2]|0)+1}if((D|0)==18){f[f[n>>2]>>2]=f[t>>2];f[f[o>>2]>>2]=f[v>>2];ke(f[m>>2]|0,(f[v>>2]|0)-1|0);l=E;return}if((f[w>>2]|0)>>>0>=(f[A>>2]|0)>>>0){f[f[n>>2]>>2]=(f[(f[k>>2]|0)+516+((f[y>>2]|0)-1<<3)+4>>2]|0)+4;f[f[o>>2]>>2]=f[w>>2];ke(f[m>>2]|0,(f[w>>2]|0)-1|0);l=E;return}f[p>>2]=0;if((f[w>>2]|0)>>>0>=2){f[p>>2]=f[(f[k>>2]|0)+516+((f[y>>2]|0)-1<<3)+4>>2];while(1){if((f[y>>2]|0)>>>0<=1)break;if((f[w>>2]|0)!=((f[(f[k>>2]|0)+516+((f[y>>2]|0)-2<<3)>>2]|0)+1|0))break;if((f[p>>2]|0)>>>7>>>0<=(f[(f[k>>2]|0)+516+((f[y>>2]|0)-2<<3)+4>>2]|0)>>>0)break;f[y>>2]=(f[y>>2]|0)+-1;f[w>>2]=f[(f[k>>2]|0)+516+((f[y>>2]|0)-1<<3)>>2];f[p>>2]=f[(f[k>>2]|0)+516+((f[y>>2]|0)-1<<3)+4>>2]}if((f[w>>2]|0)==2&(f[p>>2]|0)>>>0>=128)f[w>>2]=1}do if((f[C>>2]|0)>>>0>=2){if((((f[C>>2]|0)+1|0)>>>0<(f[w>>2]|0)>>>0?!((f[p>>2]|0)>>>0>512?((f[C>>2]|0)+2|0)>>>0>=(f[w>>2]|0)>>>0:0):0)?!((f[p>>2]|0)>>>0>32768?((f[C>>2]|0)+3|0)>>>0>=(f[w>>2]|0)>>>0:0):0)break;f[f[n>>2]>>2]=f[B>>2];f[f[o>>2]>>2]=f[C>>2];ke(f[m>>2]|0,(f[C>>2]|0)-1|0);l=E;return}while(0);if((f[w>>2]|0)>>>0<2|(f[r>>2]|0)>>>0<=2){f[f[n>>2]>>2]=-1;f[f[o>>2]>>2]=1;l=E;return}y=tg(f[m>>2]|0,(f[k>>2]|0)+2708|0,(f[k>>2]|0)+516|0)|0;f[(f[k>>2]|0)+2712>>2]=y;a:do if((f[(f[k>>2]|0)+2712>>2]|0)>>>0>=2){f[z>>2]=f[(f[k>>2]|0)+516+((f[(f[k>>2]|0)+2708>>2]|0)-1<<3)+4>>2];if(!((f[(f[k>>2]|0)+2712>>2]|0)>>>0>=(f[w>>2]|0)>>>0?(f[z>>2]|0)>>>0<(f[p>>2]|0)>>>0:0))D=42;do if((D|0)==42){if((f[(f[k>>2]|0)+2712>>2]|0)==((f[w>>2]|0)+1|0)?(f[z>>2]|0)>>>7>>>0<=(f[p>>2]|0)>>>0:0)break;if((f[(f[k>>2]|0)+2712>>2]|0)>>>0<=((f[w>>2]|0)+1|0)>>>0){if(!((f[w>>2]|0)>>>0>=3?((f[(f[k>>2]|0)+2712>>2]|0)+1|0)>>>0>=(f[w>>2]|0)>>>0:0))break a;if((f[p>>2]|0)>>>7>>>0<=(f[z>>2]|0)>>>0)break a}}while(0);f[f[n>>2]>>2]=-1;f[f[o>>2]>>2]=1;l=E;return}while(0);f[q>>2]=(f[q>>2]|0)+1;f[x>>2]=2>((f[w>>2]|0)-1|0)>>>0?2:(f[w>>2]|0)-1|0;f[u>>2]=0;while(1){if((f[u>>2]|0)>>>0>=4){D=53;break}if(!(Yg(f[q>>2]|0,(f[q>>2]|0)+(0-(f[(f[k>>2]|0)+500+(f[u>>2]<<2)>>2]|0))+-1|0,f[x>>2]|0)|0)){D=51;break}f[u>>2]=(f[u>>2]|0)+1}if((D|0)==51){f[f[n>>2]>>2]=-1;f[f[o>>2]>>2]=1;l=E;return}else if((D|0)==53){f[f[n>>2]>>2]=(f[p>>2]|0)+4;f[f[o>>2]>>2]=f[w>>2];ke(f[m>>2]|0,(f[w>>2]|0)-2|0);l=E;return}}function ie(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return(f[f[b>>2]>>2]|0)+(f[(f[b>>2]|0)+20>>2]|0)|0}function je(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return(f[(f[b>>2]|0)+32>>2]|0)-(f[(f[b>>2]|0)+20>>2]|0)|0}function ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=l;l=l+16|0;c=e+4|0;d=e;f[c>>2]=a;f[d>>2]=b;if(!(f[d>>2]|0)){l=e;return}Kh[f[(f[c>>2]|0)+44>>2]&31](f[c>>2]|0,f[d>>2]|0);c=(f[c>>2]|0)+24|0;f[c>>2]=(f[c>>2]|0)+(f[d>>2]|0);l=e;return}function le(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;i=r+44|0;j=r+40|0;k=r+36|0;m=r+32|0;n=r+28|0;p=r+24|0;q=r+8|0;o=r;f[i>>2]=a;f[j>>2]=b;f[k>>2]=c;f[m>>2]=d;f[n>>2]=e;if((f[(f[i>>2]|0)+69100>>2]|0)!=(f[(f[i>>2]|0)+69104>>2]|0)){f[f[m>>2]>>2]=(f[(f[i>>2]|0)+69108+((f[(f[i>>2]|0)+69104>>2]|0)*44|0)+20>>2]|0)-(f[(f[i>>2]|0)+69104>>2]|0);f[f[k>>2]>>2]=f[(f[i>>2]|0)+69108+((f[(f[i>>2]|0)+69104>>2]|0)*44|0)+24>>2];f[(f[i>>2]|0)+69104>>2]=f[(f[i>>2]|0)+69108+((f[(f[i>>2]|0)+69104>>2]|0)*44|0)+20>>2];l=r;return}if(!(f[(f[j>>2]|0)+24>>2]|0)){if((f[(f[i>>2]|0)+69028>>2]|0)>>>0>=128)me(f[i>>2]|0);if((f[(f[i>>2]|0)+69096>>2]|0)>>>0>=16)ne(f[i>>2]|0)}f[p>>2]=oe(f[i>>2]|0,f[j>>2]|0,f[k>>2]|0,f[m>>2]|0,f[n>>2]|0)|0;if((f[p>>2]|0)==-1){l=r;return}h=(f[i>>2]|0)+500|0;f[q>>2]=f[h>>2];f[q+4>>2]=f[h+4>>2];f[q+8>>2]=f[h+8>>2];f[q+12>>2]=f[h+12>>2];f[o>>2]=1;while(1){if((f[o>>2]|0)>>>0>=(f[p>>2]|0)>>>0)break;h=tg(f[j>>2]|0,(f[i>>2]|0)+2708|0,(f[i>>2]|0)+516|0)|0;f[(f[i>>2]|0)+2712>>2]=h;if((f[(f[i>>2]|0)+2712>>2]|0)>>>0>=(f[(f[j>>2]|0)+72>>2]|0)>>>0)break;b=f[i>>2]|0;d=(pe(f[j>>2]|0)|0)+-1|0;a=f[p>>2]|0;c=(f[n>>2]|0)+(f[o>>2]|0)|0;g=f[o>>2]|0;h=f[(f[j>>2]|0)+72>>2]|0;e=(qe(f[j>>2]|0)|0)+1|0;if(e>>>0<(4095-(f[o>>2]|0)|0)>>>0)e=(qe(f[j>>2]|0)|0)+1|0;else e=4095-(f[o>>2]|0)|0;f[p>>2]=re(b,q,d,a,c,g,h,e)|0;f[o>>2]=(f[o>>2]|0)+1}se(f[i>>2]|0,f[m>>2]|0,f[k>>2]|0,f[o>>2]|0);l=r;return}function me(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+48|0;b=p+44|0;i=p+40|0;h=p+36|0;d=p+32|0;e=p+28|0;m=p+24|0;n=p+20|0;g=p+16|0;k=p+12|0;c=p+8|0;o=p+4|0;j=p;f[b>>2]=a;f[i>>2]=0;while(1){if((f[i>>2]|0)>>>0>=4)break;f[h>>2]=(f[b>>2]|0)+65952+(f[i>>2]<<8);f[d>>2]=0;while(1){if((f[d>>2]|0)>>>0>=(f[(f[b>>2]|0)+69024>>2]|0)>>>0)break;a=Fe((f[b>>2]|0)+28172+(f[i>>2]<<7)|0,6,f[d>>2]|0)|0;f[(f[h>>2]|0)+(f[d>>2]<<2)>>2]=a;f[d>>2]=(f[d>>2]|0)+1}f[e>>2]=14;while(1){if((f[e>>2]|0)>>>0>=(f[(f[b>>2]|0)+69024>>2]|0)>>>0)break;q=Ie(((f[e>>2]|0)>>>1)-1-4|0)|0;a=(f[h>>2]|0)+(f[e>>2]<<2)|0;f[a>>2]=(f[a>>2]|0)+q;f[e>>2]=(f[e>>2]|0)+1}f[m>>2]=0;while(1){if((f[m>>2]|0)>>>0>=4)break;f[(f[b>>2]|0)+66976+(f[i>>2]<<9)+(f[m>>2]<<2)>>2]=f[(f[h>>2]|0)+(f[m>>2]<<2)>>2];f[m>>2]=(f[m>>2]|0)+1}f[i>>2]=(f[i>>2]|0)+1}f[n>>2]=4;while(1){if((f[n>>2]|0)>>>0>=128)break;f[g>>2]=Je(f[n>>2]|0)|0;f[k>>2]=((f[g>>2]|0)>>>1)-1;f[c>>2]=(2|f[g>>2]&1)<<f[k>>2];f[o>>2]=He((f[b>>2]|0)+28684+(f[c>>2]<<1)+(0-(f[g>>2]|0)<<1)+-2|0,f[k>>2]|0,(f[n>>2]|0)-(f[c>>2]|0)|0)|0;f[j>>2]=0;while(1){if((f[j>>2]|0)>>>0>=4)break;f[(f[b>>2]|0)+66976+(f[j>>2]<<9)+(f[n>>2]<<2)>>2]=(f[o>>2]|0)+(f[(f[b>>2]|0)+65952+(f[j>>2]<<8)+(f[g>>2]<<2)>>2]|0);f[j>>2]=(f[j>>2]|0)+1}f[n>>2]=(f[n>>2]|0)+1}f[(f[b>>2]|0)+69028>>2]=0;l=p;return}function ne(a){a=a|0;var b=0,c=0,d=0;d=l;l=l+16|0;b=d+4|0;c=d;f[b>>2]=a;f[c>>2]=0;while(1){a=f[b>>2]|0;if((f[c>>2]|0)>>>0>=16)break;a=He(a+28912|0,4,f[c>>2]|0)|0;f[(f[b>>2]|0)+69032+(f[c>>2]<<2)>>2]=a;f[c>>2]=(f[c>>2]|0)+1}f[a+69096>>2]=0;l=d;return}function oe(a,b,c,h,i){a=a|0;b=b|0;c=c|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;U=l;l=l+160|0;j=U+144|0;k=U+140|0;m=U+136|0;n=U+132|0;z=U+128|0;A=U+124|0;o=U+120|0;B=U+116|0;C=U+112|0;p=U+108|0;w=U+104|0;L=U+100|0;N=U+96|0;r=U+92|0;q=U+88|0;S=U+72|0;x=U+68|0;u=U+64|0;s=U+60|0;t=U+149|0;v=U+148|0;P=U+56|0;M=U+52|0;T=U+48|0;y=U+44|0;K=U+40|0;G=U+36|0;J=U+32|0;H=U+28|0;R=U+24|0;Q=U+20|0;D=U+16|0;O=U+12|0;I=U+8|0;F=U+4|0;E=U;f[A>>2]=a;f[o>>2]=b;f[B>>2]=c;f[C>>2]=h;f[p>>2]=i;f[w>>2]=f[(f[o>>2]|0)+72>>2];if(!(f[(f[o>>2]|0)+24>>2]|0))f[L>>2]=tg(f[o>>2]|0,N,(f[A>>2]|0)+516|0)|0;else{f[L>>2]=f[(f[A>>2]|0)+2712>>2];f[N>>2]=f[(f[A>>2]|0)+2708>>2]}if(((qe(f[o>>2]|0)|0)+1|0)>>>0<273)a=(qe(f[o>>2]|0)|0)+1|0;else a=273;f[r>>2]=a;if((f[r>>2]|0)>>>0<2){f[f[B>>2]>>2]=-1;f[f[C>>2]>>2]=1;f[z>>2]=-1;A=f[z>>2]|0;l=U;return A|0}f[q>>2]=(pe(f[o>>2]|0)|0)+-1;f[x>>2]=0;f[u>>2]=0;while(1){if((f[u>>2]|0)>>>0>=4)break;f[s>>2]=(f[q>>2]|0)+(0-(f[(f[A>>2]|0)+500+(f[u>>2]<<2)>>2]|0))+-1;if((g[f[q>>2]>>0]|0|0)==(g[f[s>>2]>>0]|0|0)?(g[(f[q>>2]|0)+1>>0]|0|0)==(g[(f[s>>2]|0)+1>>0]|0|0):0){c=f[s>>2]|0;a=f[r>>2]|0;f[j>>2]=f[q>>2];f[k>>2]=c;f[m>>2]=2;f[n>>2]=a;while(1){if((f[m>>2]|0)>>>0<(f[n>>2]|0)>>>0)a=(g[(f[j>>2]|0)+(f[m>>2]|0)>>0]|0|0)==(g[(f[k>>2]|0)+(f[m>>2]|0)>>0]|0|0);else a=0;c=f[m>>2]|0;if(!a)break;f[m>>2]=c+1}f[S+(f[u>>2]<<2)>>2]=c;if((f[S+(f[u>>2]<<2)>>2]|0)>>>0>(f[S+(f[x>>2]<<2)>>2]|0)>>>0)f[x>>2]=f[u>>2]}else f[S+(f[u>>2]<<2)>>2]=0;f[u>>2]=(f[u>>2]|0)+1}if((f[S+(f[x>>2]<<2)>>2]|0)>>>0>=(f[w>>2]|0)>>>0){f[f[B>>2]>>2]=f[x>>2];f[f[C>>2]>>2]=f[S+(f[x>>2]<<2)>>2];Ge(f[o>>2]|0,(f[f[C>>2]>>2]|0)-1|0);f[z>>2]=-1;A=f[z>>2]|0;l=U;return A|0}if((f[L>>2]|0)>>>0>=(f[w>>2]|0)>>>0){f[f[B>>2]>>2]=(f[(f[A>>2]|0)+516+((f[N>>2]|0)-1<<3)+4>>2]|0)+4;f[f[C>>2]>>2]=f[L>>2];Ge(f[o>>2]|0,(f[L>>2]|0)-1|0);f[z>>2]=-1;A=f[z>>2]|0;l=U;return A|0}d[t>>0]=d[f[q>>2]>>0]|0;d[v>>0]=d[(f[q>>2]|0)+(0-(f[(f[A>>2]|0)+500>>2]|0))+-1>>0]|0;if(((f[L>>2]|0)>>>0<2?(g[t>>0]|0|0)!=(g[v>>0]|0|0):0)?(f[S+(f[x>>2]<<2)>>2]|0)>>>0<2:0){f[f[B>>2]>>2]=-1;f[f[C>>2]>>2]=1;f[z>>2]=-1;A=f[z>>2]|0;l=U;return A|0}f[(f[A>>2]|0)+69108>>2]=f[(f[A>>2]|0)+496>>2];f[P>>2]=f[p>>2]&f[(f[A>>2]|0)+2720>>2];w=ue(e[(f[A>>2]|0)+27308+(f[(f[A>>2]|0)+496>>2]<<5)+(f[P>>2]<<1)>>1]|0)|0;w=w+(ve(f[A>>2]|0,f[p>>2]|0,g[(f[q>>2]|0)+-1>>0]|0,(f[(f[A>>2]|0)+496>>2]|0)>>>0<7^1,g[v>>0]|0,g[t>>0]|0)|0)|0;f[(f[A>>2]|0)+69108+44+16>>2]=w;te((f[A>>2]|0)+69108+44|0);f[M>>2]=we(e[(f[A>>2]|0)+27308+(f[(f[A>>2]|0)+496>>2]<<5)+(f[P>>2]<<1)>>1]|0)|0;w=f[M>>2]|0;f[T>>2]=w+(we(e[(f[A>>2]|0)+27692+(f[(f[A>>2]|0)+496>>2]<<1)>>1]|0)|0);if((g[v>>0]|0|0)==(g[t>>0]|0|0)?(w=f[T>>2]|0,f[y>>2]=w+(xe(f[A>>2]|0,f[(f[A>>2]|0)+496>>2]|0,f[P>>2]|0)|0),(f[y>>2]|0)>>>0<(f[(f[A>>2]|0)+69108+44+16>>2]|0)>>>0):0){f[(f[A>>2]|0)+69108+44+16>>2]=f[y>>2];ye((f[A>>2]|0)+69108+44|0)}if((f[L>>2]|0)>>>0>(f[S+(f[x>>2]<<2)>>2]|0)>>>0)a=f[L>>2]|0;else a=f[S+(f[x>>2]<<2)>>2]|0;f[K>>2]=a;a=(f[A>>2]|0)+69108+44|0;if((f[K>>2]|0)>>>0<2){f[f[B>>2]>>2]=f[a+24>>2];f[f[C>>2]>>2]=1;f[z>>2]=-1;A=f[z>>2]|0;l=U;return A|0}f[a+20>>2]=0;f[G>>2]=0;while(1){if((f[G>>2]|0)>>>0>=4)break;f[(f[A>>2]|0)+69108+28+(f[G>>2]<<2)>>2]=f[(f[A>>2]|0)+500+(f[G>>2]<<2)>>2];f[G>>2]=(f[G>>2]|0)+1}f[J>>2]=f[K>>2];do{f[(f[A>>2]|0)+69108+((f[J>>2]|0)*44|0)+16>>2]=1073741824;y=(f[J>>2]|0)+-1|0;f[J>>2]=y}while(y>>>0>=2);f[H>>2]=0;while(1){if((f[H>>2]|0)>>>0>=4)break;f[R>>2]=f[S+(f[H>>2]<<2)>>2];if((f[R>>2]|0)>>>0>=2){y=f[T>>2]|0;f[Q>>2]=y+(Ae(f[A>>2]|0,f[H>>2]|0,f[(f[A>>2]|0)+496>>2]|0,f[P>>2]|0)|0);do{y=f[Q>>2]|0;f[D>>2]=y+(Be((f[A>>2]|0)+47448|0,f[R>>2]|0,f[P>>2]|0)|0);if((f[D>>2]|0)>>>0<(f[(f[A>>2]|0)+69108+((f[R>>2]|0)*44|0)+16>>2]|0)>>>0){f[(f[A>>2]|0)+69108+((f[R>>2]|0)*44|0)+16>>2]=f[D>>2];f[(f[A>>2]|0)+69108+((f[R>>2]|0)*44|0)+20>>2]=0;f[(f[A>>2]|0)+69108+((f[R>>2]|0)*44|0)+24>>2]=f[H>>2];d[(f[A>>2]|0)+69108+((f[R>>2]|0)*44|0)+4>>0]=0}y=(f[R>>2]|0)+-1|0;f[R>>2]=y}while(y>>>0>=2)}f[H>>2]=(f[H>>2]|0)+1}y=f[M>>2]|0;f[O>>2]=y+(ue(e[(f[A>>2]|0)+27692+(f[(f[A>>2]|0)+496>>2]<<1)>>1]|0)|0);f[J>>2]=(f[S>>2]|0)>>>0>=2?(f[S>>2]|0)+1|0:2;a:do if((f[J>>2]|0)>>>0<=(f[L>>2]|0)>>>0){f[I>>2]=0;while(1){if((f[J>>2]|0)>>>0<=(f[(f[A>>2]|0)+516+(f[I>>2]<<3)>>2]|0)>>>0)break;f[I>>2]=(f[I>>2]|0)+1}while(1){f[F>>2]=f[(f[A>>2]|0)+516+(f[I>>2]<<3)+4>>2];y=f[O>>2]|0;f[E>>2]=y+(Ce(f[A>>2]|0,f[F>>2]|0,f[J>>2]|0,f[P>>2]|0)|0);if((f[E>>2]|0)>>>0<(f[(f[A>>2]|0)+69108+((f[J>>2]|0)*44|0)+16>>2]|0)>>>0){f[(f[A>>2]|0)+69108+((f[J>>2]|0)*44|0)+16>>2]=f[E>>2];f[(f[A>>2]|0)+69108+((f[J>>2]|0)*44|0)+20>>2]=0;f[(f[A>>2]|0)+69108+((f[J>>2]|0)*44|0)+24>>2]=(f[F>>2]|0)+4;d[(f[A>>2]|0)+69108+((f[J>>2]|0)*44|0)+4>>0]=0}if((f[J>>2]|0)==(f[(f[A>>2]|0)+516+(f[I>>2]<<3)>>2]|0)?(y=(f[I>>2]|0)+1|0,f[I>>2]=y,(y|0)==(f[N>>2]|0)):0)break a;f[J>>2]=(f[J>>2]|0)+1}}while(0);f[z>>2]=f[K>>2];A=f[z>>2]|0;l=U;return A|0}function pe(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return(f[f[b>>2]>>2]|0)+(f[(f[b>>2]|0)+20>>2]|0)|0}function qe(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return(f[(f[b>>2]|0)+32>>2]|0)-(f[(f[b>>2]|0)+20>>2]|0)|0}function re(a,b,c,h,i,j,k,m){a=a|0;b=b|0;c=c|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;Fa=l;l=l+288|0;L=Fa+268|0;M=Fa+264|0;O=Fa+260|0;P=Fa+256|0;A=Fa+252|0;B=Fa+248|0;C=Fa+244|0;D=Fa+240|0;na=Fa+236|0;oa=Fa+232|0;N=Fa+228|0;ha=Fa+224|0;ia=Fa+220|0;ja=Fa+216|0;ka=Fa+212|0;la=Fa+208|0;ma=Fa+204|0;xa=Fa+200|0;$=Fa+196|0;r=Fa+192|0;Da=Fa+188|0;q=Fa+184|0;o=Fa+180|0;p=Fa+176|0;v=Fa+172|0;t=Fa+168|0;u=Fa+274|0;x=Fa+273|0;Ba=Fa+164|0;E=Fa+160|0;y=Fa+272|0;Z=Fa+156|0;ea=Fa+152|0;z=Fa+148|0;Q=Fa+144|0;s=Fa+140|0;w=Fa+136|0;G=Fa+132|0;K=Fa+128|0;J=Fa+124|0;H=Fa+120|0;I=Fa+116|0;F=Fa+112|0;fa=Fa+108|0;da=Fa+104|0;R=Fa+100|0;V=Fa+96|0;X=Fa+92|0;ca=Fa+88|0;U=Fa+84|0;W=Fa+80|0;Y=Fa+76|0;ga=Fa+72|0;ba=Fa+68|0;S=Fa+64|0;_=Fa+60|0;aa=Fa+56|0;T=Fa+52|0;za=Fa+48|0;ta=Fa+44|0;ua=Fa+40|0;sa=Fa+36|0;ra=Fa+32|0;pa=Fa+28|0;va=Fa+24|0;wa=Fa+20|0;Ea=Fa+16|0;Ca=Fa+12|0;qa=Fa+8|0;ya=Fa+4|0;Aa=Fa;f[oa>>2]=a;f[N>>2]=b;f[ha>>2]=c;f[ia>>2]=h;f[ja>>2]=i;f[ka>>2]=j;f[la>>2]=k;f[ma>>2]=m;f[xa>>2]=f[(f[oa>>2]|0)+2708>>2];f[$>>2]=f[(f[oa>>2]|0)+2712>>2];f[r>>2]=f[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+20>>2];c=f[r>>2]|0;if(d[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+4>>0]&1){f[r>>2]=c+-1;do if(d[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+5>>0]&1){f[Da>>2]=f[(f[oa>>2]|0)+69108+((f[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+8>>2]|0)*44|0)>>2];c=(f[Da>>2]|0)>>>0<7;if((f[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+12>>2]|0)>>>0<4){f[Da>>2]=c?8:11;break}else{f[Da>>2]=c?7:10;break}}else f[Da>>2]=f[(f[oa>>2]|0)+69108+((f[r>>2]|0)*44|0)>>2];while(0);if((f[Da>>2]|0)>>>0<=3)c=0;else{c=f[Da>>2]|0;c=(f[Da>>2]|0)>>>0<=9?c-3|0:c-6|0}f[Da>>2]=c}else f[Da>>2]=f[(f[oa>>2]|0)+69108+(c*44|0)>>2];m=(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)|0;a:do if((f[r>>2]|0)==((f[ka>>2]|0)-1|0)){c=f[Da>>2]|0;if(!(f[m+24>>2]|0)){f[Da>>2]=c>>>0<7?9:11;break}if(c>>>0<=3)c=0;else{c=f[Da>>2]|0;c=(f[Da>>2]|0)>>>0<=9?c-3|0:c-6|0}f[Da>>2]=c}else{if(d[m+4>>0]&1?d[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+5>>0]&1:0){f[r>>2]=f[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+8>>2];f[q>>2]=f[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+12>>2];f[Da>>2]=(f[Da>>2]|0)>>>0<7?8:11}else n=20;do if((n|0)==20){f[q>>2]=f[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+24>>2];c=(f[Da>>2]|0)>>>0<7;if((f[q>>2]|0)>>>0<4){f[Da>>2]=c?8:11;break}else{f[Da>>2]=c?7:10;break}}while(0);c=f[q>>2]|0;if((f[q>>2]|0)>>>0>=4){f[f[N>>2]>>2]=c-4;f[p>>2]=1;while(1){if((f[p>>2]|0)>>>0>=4)break a;f[(f[N>>2]|0)+(f[p>>2]<<2)>>2]=f[(f[oa>>2]|0)+69108+((f[r>>2]|0)*44|0)+28+((f[p>>2]|0)-1<<2)>>2];f[p>>2]=(f[p>>2]|0)+1}}f[f[N>>2]>>2]=f[(f[oa>>2]|0)+69108+((f[r>>2]|0)*44|0)+28+(c<<2)>>2];f[o>>2]=1;while(1){if((f[o>>2]|0)>>>0>(f[q>>2]|0)>>>0)break;f[(f[N>>2]|0)+(f[o>>2]<<2)>>2]=f[(f[oa>>2]|0)+69108+((f[r>>2]|0)*44|0)+28+((f[o>>2]|0)-1<<2)>>2];f[o>>2]=(f[o>>2]|0)+1}while(1){if((f[o>>2]|0)>>>0>=4)break a;f[(f[N>>2]|0)+(f[o>>2]<<2)>>2]=f[(f[oa>>2]|0)+69108+((f[r>>2]|0)*44|0)+28+(f[o>>2]<<2)>>2];f[o>>2]=(f[o>>2]|0)+1}}while(0);f[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)>>2]=f[Da>>2];f[v>>2]=0;while(1){if((f[v>>2]|0)>>>0>=4)break;f[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+28+(f[v>>2]<<2)>>2]=f[(f[N>>2]|0)+(f[v>>2]<<2)>>2];f[v>>2]=(f[v>>2]|0)+1}f[t>>2]=f[(f[oa>>2]|0)+69108+((f[ka>>2]|0)*44|0)+16>>2];d[u>>0]=d[f[ha>>2]>>0]|0;d[x>>0]=d[(f[ha>>2]|0)+(0-(f[f[N>>2]>>2]|0))+-1>>0]|0;f[Ba>>2]=f[ja>>2]&f[(f[oa>>2]|0)+2720>>2];o=f[t>>2]|0;o=o+(ue(e[(f[oa>>2]|0)+27308+(f[Da>>2]<<5)+(f[Ba>>2]<<1)>>1]|0)|0)|0;f[E>>2]=o+(ve(f[oa>>2]|0,f[ja>>2]|0,g[(f[ha>>2]|0)+-1>>0]|0,(f[Da>>2]|0)>>>0<7^1,g[x>>0]|0,g[u>>0]|0)|0);d[y>>0]=0;if((f[E>>2]|0)>>>0<(f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)+16>>2]|0)>>>0){f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)+16>>2]=f[E>>2];f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)+20>>2]=f[ka>>2];te((f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)|0);d[y>>0]=1}o=f[t>>2]|0;f[Z>>2]=o+(we(e[(f[oa>>2]|0)+27308+(f[Da>>2]<<5)+(f[Ba>>2]<<1)>>1]|0)|0);o=f[Z>>2]|0;f[ea>>2]=o+(we(e[(f[oa>>2]|0)+27692+(f[Da>>2]<<1)>>1]|0)|0);do if((g[x>>0]|0|0)==(g[u>>0]|0|0)){if((f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)+20>>2]|0)>>>0<(f[ka>>2]|0)>>>0?(f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)+24>>2]|0)==0:0)break;o=f[ea>>2]|0;f[z>>2]=o+(xe(f[oa>>2]|0,f[Da>>2]|0,f[Ba>>2]|0)|0);if((f[z>>2]|0)>>>0<=(f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)+16>>2]|0)>>>0){f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)+16>>2]=f[z>>2];f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)+20>>2]=f[ka>>2];ye((f[oa>>2]|0)+69108+(((f[ka>>2]|0)+1|0)*44|0)|0);d[y>>0]=1}}while(0);if((f[ma>>2]|0)>>>0<2){f[na>>2]=f[ia>>2];Y=f[na>>2]|0;l=Fa;return Y|0}f[Q>>2]=(f[ma>>2]|0)>>>0<(f[la>>2]|0)>>>0?f[ma>>2]|0:f[la>>2]|0;if(!(d[y>>0]&1)?(g[x>>0]|0|0)!=(g[u>>0]|0|0):0){f[s>>2]=(f[ha>>2]|0)+(0-(f[f[N>>2]>>2]|0))+-1;f[w>>2]=(f[ma>>2]|0)>>>0<((f[la>>2]|0)+1|0)>>>0?f[ma>>2]|0:(f[la>>2]|0)+1|0;n=f[s>>2]|0;o=f[w>>2]|0;f[A>>2]=f[ha>>2];f[B>>2]=n;f[C>>2]=1;f[D>>2]=o;while(1){if((f[C>>2]|0)>>>0<(f[D>>2]|0)>>>0)c=(g[(f[A>>2]|0)+(f[C>>2]|0)>>0]|0|0)==(g[(f[B>>2]|0)+(f[C>>2]|0)>>0]|0|0);else c=0;m=f[C>>2]|0;if(!c)break;f[C>>2]=m+1}f[G>>2]=m-1;if((f[G>>2]|0)>>>0>=2){f[K>>2]=f[Da>>2];if((f[K>>2]|0)>>>0<=3)c=0;else{c=f[K>>2]|0;c=(f[K>>2]|0)>>>0<=9?c-3|0:c-6|0}f[K>>2]=c;f[J>>2]=(f[ja>>2]|0)+1&f[(f[oa>>2]|0)+2720>>2];E=f[E>>2]|0;E=E+(we(e[(f[oa>>2]|0)+27308+(f[K>>2]<<5)+(f[J>>2]<<1)>>1]|0)|0)|0;f[H>>2]=E+(we(e[(f[oa>>2]|0)+27692+(f[K>>2]<<1)>>1]|0)|0);f[I>>2]=(f[ka>>2]|0)+1+(f[G>>2]|0);while(1){if((f[ia>>2]|0)>>>0>=(f[I>>2]|0)>>>0)break;E=(f[ia>>2]|0)+1|0;f[ia>>2]=E;f[(f[oa>>2]|0)+69108+(E*44|0)+16>>2]=1073741824}H=f[H>>2]|0;f[F>>2]=H+(ze(f[oa>>2]|0,0,f[G>>2]|0,f[K>>2]|0,f[J>>2]|0)|0);if((f[F>>2]|0)>>>0<(f[(f[oa>>2]|0)+69108+((f[I>>2]|0)*44|0)+16>>2]|0)>>>0){f[(f[oa>>2]|0)+69108+((f[I>>2]|0)*44|0)+16>>2]=f[F>>2];f[(f[oa>>2]|0)+69108+((f[I>>2]|0)*44|0)+20>>2]=(f[ka>>2]|0)+1;f[(f[oa>>2]|0)+69108+((f[I>>2]|0)*44|0)+24>>2]=0;d[(f[oa>>2]|0)+69108+((f[I>>2]|0)*44|0)+4>>0]=1;d[(f[oa>>2]|0)+69108+((f[I>>2]|0)*44|0)+5>>0]=0}}}f[fa>>2]=2;f[da>>2]=0;while(1){if((f[da>>2]|0)>>>0>=4)break;f[R>>2]=(f[ha>>2]|0)+(0-(f[(f[N>>2]|0)+(f[da>>2]<<2)>>2]|0))+-1;if((g[f[ha>>2]>>0]|0|0)==(g[f[R>>2]>>0]|0|0)?(g[(f[ha>>2]|0)+1>>0]|0|0)==(g[(f[R>>2]|0)+1>>0]|0|0):0){J=f[R>>2]|0;K=f[Q>>2]|0;f[L>>2]=f[ha>>2];f[M>>2]=J;f[O>>2]=2;f[P>>2]=K;while(1){if((f[O>>2]|0)>>>0<(f[P>>2]|0)>>>0)m=(g[(f[L>>2]|0)+(f[O>>2]|0)>>0]|0|0)==(g[(f[M>>2]|0)+(f[O>>2]|0)>>0]|0|0);else m=0;c=f[O>>2]|0;if(!m)break;f[O>>2]=c+1}f[V>>2]=c;while(1){if((f[ia>>2]|0)>>>0>=((f[ka>>2]|0)+(f[V>>2]|0)|0)>>>0)break;K=(f[ia>>2]|0)+1|0;f[ia>>2]=K;f[(f[oa>>2]|0)+69108+(K*44|0)+16>>2]=1073741824}f[X>>2]=f[V>>2];K=f[ea>>2]|0;f[ca>>2]=K+(Ae(f[oa>>2]|0,f[da>>2]|0,f[Da>>2]|0,f[Ba>>2]|0)|0);do{K=f[ca>>2]|0;f[U>>2]=K+(Be((f[oa>>2]|0)+47448|0,f[V>>2]|0,f[Ba>>2]|0)|0);if((f[U>>2]|0)>>>0<(f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[V>>2]|0)|0)*44|0)+16>>2]|0)>>>0){f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[V>>2]|0)|0)*44|0)+16>>2]=f[U>>2];f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[V>>2]|0)|0)*44|0)+20>>2]=f[ka>>2];f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[V>>2]|0)|0)*44|0)+24>>2]=f[da>>2];d[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[V>>2]|0)|0)*44|0)+4>>0]=0}K=(f[V>>2]|0)+-1|0;f[V>>2]=K}while(K>>>0>=2);f[V>>2]=f[X>>2];if(!(f[da>>2]|0))f[fa>>2]=(f[V>>2]|0)+1;f[W>>2]=(f[V>>2]|0)+1;if((f[ma>>2]|0)>>>0<((f[W>>2]|0)+(f[la>>2]|0)|0)>>>0)m=f[ma>>2]|0;else m=(f[W>>2]|0)+(f[la>>2]|0)|0;f[Y>>2]=m;while(1){if((f[W>>2]|0)>>>0>=(f[Y>>2]|0)>>>0)break;if((g[(f[ha>>2]|0)+(f[W>>2]|0)>>0]|0|0)!=(g[(f[R>>2]|0)+(f[W>>2]|0)>>0]|0|0))break;f[W>>2]=(f[W>>2]|0)+1}f[W>>2]=(f[W>>2]|0)-((f[V>>2]|0)+1);if((f[W>>2]|0)>>>0>=2){f[ga>>2]=f[Da>>2];f[ga>>2]=(f[ga>>2]|0)>>>0<7?8:11;f[ba>>2]=(f[ja>>2]|0)+(f[V>>2]|0)&f[(f[oa>>2]|0)+2720>>2];K=f[ca>>2]|0;K=K+(Be((f[oa>>2]|0)+47448|0,f[V>>2]|0,f[Ba>>2]|0)|0)|0;K=K+(ue(e[(f[oa>>2]|0)+27308+(f[ga>>2]<<5)+(f[ba>>2]<<1)>>1]|0)|0)|0;f[S>>2]=K+(ve(f[oa>>2]|0,(f[ja>>2]|0)+(f[V>>2]|0)|0,g[(f[ha>>2]|0)+((f[V>>2]|0)-1)>>0]|0,1,g[(f[R>>2]|0)+(f[V>>2]|0)>>0]|0,g[(f[ha>>2]|0)+(f[V>>2]|0)>>0]|0)|0);if((f[ga>>2]|0)>>>0<=3)m=0;else{m=f[ga>>2]|0;m=(f[ga>>2]|0)>>>0<=9?m-3|0:m-6|0}f[ga>>2]=m;f[ba>>2]=(f[ja>>2]|0)+(f[V>>2]|0)+1&f[(f[oa>>2]|0)+2720>>2];K=f[S>>2]|0;K=K+(we(e[(f[oa>>2]|0)+27308+(f[ga>>2]<<5)+(f[ba>>2]<<1)>>1]|0)|0)|0;f[_>>2]=K+(we(e[(f[oa>>2]|0)+27692+(f[ga>>2]<<1)>>1]|0)|0);f[aa>>2]=(f[ka>>2]|0)+(f[V>>2]|0)+1+(f[W>>2]|0);while(1){if((f[ia>>2]|0)>>>0>=(f[aa>>2]|0)>>>0)break;K=(f[ia>>2]|0)+1|0;f[ia>>2]=K;f[(f[oa>>2]|0)+69108+(K*44|0)+16>>2]=1073741824}K=f[_>>2]|0;f[T>>2]=K+(ze(f[oa>>2]|0,0,f[W>>2]|0,f[ga>>2]|0,f[ba>>2]|0)|0);if((f[T>>2]|0)>>>0<(f[(f[oa>>2]|0)+69108+((f[aa>>2]|0)*44|0)+16>>2]|0)>>>0){f[(f[oa>>2]|0)+69108+((f[aa>>2]|0)*44|0)+16>>2]=f[T>>2];f[(f[oa>>2]|0)+69108+((f[aa>>2]|0)*44|0)+20>>2]=(f[ka>>2]|0)+(f[V>>2]|0)+1;f[(f[oa>>2]|0)+69108+((f[aa>>2]|0)*44|0)+24>>2]=0;d[(f[oa>>2]|0)+69108+((f[aa>>2]|0)*44|0)+4>>0]=1;d[(f[oa>>2]|0)+69108+((f[aa>>2]|0)*44|0)+5>>0]=1;f[(f[oa>>2]|0)+69108+((f[aa>>2]|0)*44|0)+8>>2]=f[ka>>2];f[(f[oa>>2]|0)+69108+((f[aa>>2]|0)*44|0)+12>>2]=f[da>>2]}}}f[da>>2]=(f[da>>2]|0)+1}if((f[$>>2]|0)>>>0>(f[Q>>2]|0)>>>0){f[$>>2]=f[Q>>2];f[xa>>2]=0;while(1){if((f[$>>2]|0)>>>0<=(f[(f[oa>>2]|0)+516+(f[xa>>2]<<3)>>2]|0)>>>0)break;f[xa>>2]=(f[xa>>2]|0)+1}X=f[$>>2]|0;Y=f[xa>>2]|0;f[xa>>2]=Y+1;f[(f[oa>>2]|0)+516+(Y<<3)>>2]=X}a:do if((f[$>>2]|0)>>>0>=(f[fa>>2]|0)>>>0){Y=f[Z>>2]|0;f[za>>2]=Y+(ue(e[(f[oa>>2]|0)+27692+(f[Da>>2]<<1)>>1]|0)|0);while(1){if((f[ia>>2]|0)>>>0>=((f[ka>>2]|0)+(f[$>>2]|0)|0)>>>0)break;Y=(f[ia>>2]|0)+1|0;f[ia>>2]=Y;f[(f[oa>>2]|0)+69108+(Y*44|0)+16>>2]=1073741824}f[ta>>2]=0;while(1){if((f[fa>>2]|0)>>>0<=(f[(f[oa>>2]|0)+516+(f[ta>>2]<<3)>>2]|0)>>>0)break;f[ta>>2]=(f[ta>>2]|0)+1}f[ua>>2]=f[fa>>2];while(1){f[sa>>2]=f[(f[oa>>2]|0)+516+(f[ta>>2]<<3)+4>>2];Y=f[za>>2]|0;f[ra>>2]=Y+(Ce(f[oa>>2]|0,f[sa>>2]|0,f[ua>>2]|0,f[Ba>>2]|0)|0);if((f[ra>>2]|0)>>>0<(f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[ua>>2]|0)|0)*44|0)+16>>2]|0)>>>0){f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[ua>>2]|0)|0)*44|0)+16>>2]=f[ra>>2];f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[ua>>2]|0)|0)*44|0)+20>>2]=f[ka>>2];f[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[ua>>2]|0)|0)*44|0)+24>>2]=(f[sa>>2]|0)+4;d[(f[oa>>2]|0)+69108+(((f[ka>>2]|0)+(f[ua>>2]|0)|0)*44|0)+4>>0]=0}if((f[ua>>2]|0)==(f[(f[oa>>2]|0)+516+(f[ta>>2]<<3)>>2]|0)){f[pa>>2]=(f[ha>>2]|0)+(0-(f[sa>>2]|0))+-1;f[va>>2]=(f[ua>>2]|0)+1;if((f[ma>>2]|0)>>>0<((f[va>>2]|0)+(f[la>>2]|0)|0)>>>0)m=f[ma>>2]|0;else m=(f[va>>2]|0)+(f[la>>2]|0)|0;f[wa>>2]=m;while(1){if((f[va>>2]|0)>>>0>=(f[wa>>2]|0)>>>0)break;if((g[(f[ha>>2]|0)+(f[va>>2]|0)>>0]|0|0)!=(g[(f[pa>>2]|0)+(f[va>>2]|0)>>0]|0|0))break;f[va>>2]=(f[va>>2]|0)+1}f[va>>2]=(f[va>>2]|0)-((f[ua>>2]|0)+1);if((f[va>>2]|0)>>>0>=2){f[Ea>>2]=f[Da>>2];f[Ea>>2]=(f[Ea>>2]|0)>>>0<7?7:10;f[Ca>>2]=(f[ja>>2]|0)+(f[ua>>2]|0)&f[(f[oa>>2]|0)+2720>>2];Y=f[ra>>2]|0;Y=Y+(ue(e[(f[oa>>2]|0)+27308+(f[Ea>>2]<<5)+(f[Ca>>2]<<1)>>1]|0)|0)|0;f[qa>>2]=Y+(ve(f[oa>>2]|0,(f[ja>>2]|0)+(f[ua>>2]|0)|0,g[(f[ha>>2]|0)+((f[ua>>2]|0)-1)>>0]|0,1,g[(f[pa>>2]|0)+(f[ua>>2]|0)>>0]|0,g[(f[ha>>2]|0)+(f[ua>>2]|0)>>0]|0)|0);if((f[Ea>>2]|0)>>>0<=3)m=0;else{m=f[Ea>>2]|0;m=(f[Ea>>2]|0)>>>0<=9?m-3|0:m-6|0}f[Ea>>2]=m;f[Ca>>2]=(f[Ca>>2]|0)+1&f[(f[oa>>2]|0)+2720>>2];Y=f[qa>>2]|0;Y=Y+(we(e[(f[oa>>2]|0)+27308+(f[Ea>>2]<<5)+(f[Ca>>2]<<1)>>1]|0)|0)|0;f[ya>>2]=Y+(we(e[(f[oa>>2]|0)+27692+(f[Ea>>2]<<1)>>1]|0)|0);f[Aa>>2]=(f[ka>>2]|0)+(f[ua>>2]|0)+1+(f[va>>2]|0);while(1){if((f[ia>>2]|0)>>>0>=(f[Aa>>2]|0)>>>0)break;Y=(f[ia>>2]|0)+1|0;f[ia>>2]=Y;f[(f[oa>>2]|0)+69108+(Y*44|0)+16>>2]=1073741824}Y=f[ya>>2]|0;f[ra>>2]=Y+(ze(f[oa>>2]|0,0,f[va>>2]|0,f[Ea>>2]|0,f[Ca>>2]|0)|0);if((f[ra>>2]|0)>>>0<(f[(f[oa>>2]|0)+69108+((f[Aa>>2]|0)*44|0)+16>>2]|0)>>>0){f[(f[oa>>2]|0)+69108+((f[Aa>>2]|0)*44|0)+16>>2]=f[ra>>2];f[(f[oa>>2]|0)+69108+((f[Aa>>2]|0)*44|0)+20>>2]=(f[ka>>2]|0)+(f[ua>>2]|0)+1;f[(f[oa>>2]|0)+69108+((f[Aa>>2]|0)*44|0)+24>>2]=0;d[(f[oa>>2]|0)+69108+((f[Aa>>2]|0)*44|0)+4>>0]=1;d[(f[oa>>2]|0)+69108+((f[Aa>>2]|0)*44|0)+5>>0]=1;f[(f[oa>>2]|0)+69108+((f[Aa>>2]|0)*44|0)+8>>2]=f[ka>>2];f[(f[oa>>2]|0)+69108+((f[Aa>>2]|0)*44|0)+12>>2]=(f[sa>>2]|0)+4}}Y=(f[ta>>2]|0)+1|0;f[ta>>2]=Y;if((Y|0)==(f[xa>>2]|0))break a}f[ua>>2]=(f[ua>>2]|0)+1}}while(0);f[na>>2]=f[ia>>2];Y=f[na>>2]|0;l=Fa;return Y|0}function se(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+32|0;g=p+28|0;h=p+24|0;i=p+20|0;j=p+16|0;n=p+12|0;m=p+8|0;o=p+4|0;k=p;f[g>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=e;f[(f[g>>2]|0)+69100>>2]=f[j>>2];f[n>>2]=f[(f[g>>2]|0)+69108+((f[j>>2]|0)*44|0)+20>>2];f[m>>2]=f[(f[g>>2]|0)+69108+((f[j>>2]|0)*44|0)+24>>2];do{if(d[(f[g>>2]|0)+69108+((f[j>>2]|0)*44|0)+4>>0]&1?(te((f[g>>2]|0)+69108+((f[n>>2]|0)*44|0)|0),f[(f[g>>2]|0)+69108+((f[n>>2]|0)*44|0)+20>>2]=(f[n>>2]|0)-1,d[(f[g>>2]|0)+69108+((f[j>>2]|0)*44|0)+5>>0]&1):0){d[(f[g>>2]|0)+69108+(((f[n>>2]|0)-1|0)*44|0)+4>>0]=0;f[(f[g>>2]|0)+69108+(((f[n>>2]|0)-1|0)*44|0)+20>>2]=f[(f[g>>2]|0)+69108+((f[j>>2]|0)*44|0)+8>>2];f[(f[g>>2]|0)+69108+(((f[n>>2]|0)-1|0)*44|0)+24>>2]=f[(f[g>>2]|0)+69108+((f[j>>2]|0)*44|0)+12>>2]}f[o>>2]=f[n>>2];f[k>>2]=f[m>>2];f[m>>2]=f[(f[g>>2]|0)+69108+((f[o>>2]|0)*44|0)+24>>2];f[n>>2]=f[(f[g>>2]|0)+69108+((f[o>>2]|0)*44|0)+20>>2];f[(f[g>>2]|0)+69108+((f[o>>2]|0)*44|0)+24>>2]=f[k>>2];f[(f[g>>2]|0)+69108+((f[o>>2]|0)*44|0)+20>>2]=f[j>>2];f[j>>2]=f[o>>2]}while((f[j>>2]|0)!=0);f[(f[g>>2]|0)+69104>>2]=f[(f[g>>2]|0)+69108+20>>2];f[f[h>>2]>>2]=f[(f[g>>2]|0)+69108+20>>2];f[f[i>>2]>>2]=f[(f[g>>2]|0)+69108+24>>2];l=p;return}function te(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;f[(f[c>>2]|0)+24>>2]=-1;d[(f[c>>2]|0)+4>>0]=0;l=b;return}function ue(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;e[b>>1]=a;l=c;return g[26496+((h[b>>1]|0)>>4)>>0]|0|0}function ve(a,b,c,g,h,i){a=a|0;b=b|0;c=c|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;s=l;l=l+48|0;u=s+40|0;w=s+36|0;v=s+32|0;t=s+44|0;j=s+28|0;k=s+24|0;q=s+20|0;p=s+16|0;o=s+12|0;n=s+8|0;r=s+4|0;m=s;f[u>>2]=a;f[w>>2]=b;f[v>>2]=c;d[t>>0]=g&1;f[j>>2]=h;f[k>>2]=i;f[q>>2]=(f[u>>2]|0)+2732+((((f[w>>2]&f[(f[u>>2]|0)+2728>>2])<<f[(f[u>>2]|0)+2724>>2])+((f[v>>2]|0)>>>(8-(f[(f[u>>2]|0)+2724>>2]|0)|0))|0)*1536|0);f[p>>2]=0;if(!(d[t>>0]&1)){f[p>>2]=Fe(f[q>>2]|0,8,f[k>>2]|0)|0;c=f[p>>2]|0;l=s;return c|0}f[o>>2]=256;f[k>>2]=(f[k>>2]|0)+256;do{f[j>>2]=f[j>>2]<<1;f[n>>2]=f[j>>2]&f[o>>2];f[r>>2]=(f[o>>2]|0)+(f[n>>2]|0)+((f[k>>2]|0)>>>8);f[m>>2]=(f[k>>2]|0)>>>7&1;c=Ee(e[(f[q>>2]|0)+(f[r>>2]<<1)>>1]|0,f[m>>2]|0)|0;
f[p>>2]=(f[p>>2]|0)+c;f[k>>2]=f[k>>2]<<1;f[o>>2]=f[o>>2]&~(f[j>>2]^f[k>>2])}while((f[k>>2]|0)>>>0<65536);c=f[p>>2]|0;l=s;return c|0}function we(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;e[b>>1]=a;l=c;return g[26496+(((h[b>>1]|0)^2047)>>>4)>>0]|0|0}function xe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,g=0,h=0,i=0;d=l;l=l+16|0;i=d+8|0;h=d+4|0;g=d;f[i>>2]=a;f[h>>2]=b;f[g>>2]=c;a=ue(e[(f[i>>2]|0)+27716+(f[h>>2]<<1)>>1]|0)|0;a=a+(ue(e[(f[i>>2]|0)+27788+(f[h>>2]<<5)+(f[g>>2]<<1)>>1]|0)|0)|0;l=d;return a|0}function ye(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;f[(f[c>>2]|0)+24>>2]=0;d[(f[c>>2]|0)+4>>0]=0;l=b;return}function ze(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;k=g+16|0;j=g+12|0;m=g+8|0;i=g+4|0;h=g;f[k>>2]=a;f[j>>2]=b;f[m>>2]=c;f[i>>2]=d;f[h>>2]=e;a=Be((f[k>>2]|0)+47448|0,f[m>>2]|0,f[h>>2]|0)|0;a=a+(Ae(f[k>>2]|0,f[j>>2]|0,f[i>>2]|0,f[h>>2]|0)|0)|0;l=g;return a|0}function Ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;h=m+16|0;i=m+12|0;j=m+8|0;g=m+4|0;k=m;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[g>>2]=d;a=e[(f[h>>2]|0)+27716+(f[j>>2]<<1)>>1]|0;if(!(f[i>>2]|0)){f[k>>2]=ue(a)|0;a=we(e[(f[h>>2]|0)+27788+(f[j>>2]<<5)+(f[g>>2]<<1)>>1]|0)|0;f[k>>2]=(f[k>>2]|0)+a;a=f[k>>2]|0;l=m;return a|0}f[k>>2]=we(a)|0;a=e[(f[h>>2]|0)+27740+(f[j>>2]<<1)>>1]|0;if((f[i>>2]|0)==1){a=ue(a)|0;f[k>>2]=(f[k>>2]|0)+a;a=f[k>>2]|0;l=m;return a|0}else{a=we(a)|0;f[k>>2]=(f[k>>2]|0)+a;a=Ee(e[(f[h>>2]|0)+27764+(f[j>>2]<<1)>>1]|0,(f[i>>2]|0)-2|0)|0;f[k>>2]=(f[k>>2]|0)+a;a=f[k>>2]|0;l=m;return a|0}return 0}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;h=l;l=l+16|0;g=h+8|0;d=h+4|0;e=h;f[g>>2]=a;f[d>>2]=b;f[e>>2]=c;l=h;return f[(f[g>>2]|0)+1028+((f[e>>2]|0)*1088|0)+((f[d>>2]|0)-2<<2)>>2]|0}function Ce(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;e=n+24|0;g=n+20|0;h=n+16|0;i=n+12|0;k=n+8|0;m=n+4|0;j=n;f[e>>2]=a;f[g>>2]=b;f[h>>2]=c;f[i>>2]=d;f[k>>2]=(f[h>>2]|0)>>>0<6?(f[h>>2]|0)-2|0:3;a=f[g>>2]|0;if((f[g>>2]|0)>>>0<128)f[m>>2]=f[(f[e>>2]|0)+66976+(f[k>>2]<<9)+(a<<2)>>2];else{f[j>>2]=De(a)|0;f[m>>2]=(f[(f[e>>2]|0)+65952+(f[k>>2]<<8)+(f[j>>2]<<2)>>2]|0)+(f[(f[e>>2]|0)+69032+((f[g>>2]&15)<<2)>>2]|0)}k=Be((f[e>>2]|0)+28944|0,f[h>>2]|0,f[i>>2]|0)|0;f[m>>2]=(f[m>>2]|0)+k;l=n;return f[m>>2]|0}function De(a){a=a|0;var b=0,c=0,d=0,e=0;e=l;l=l+16|0;d=e+4|0;b=e;f[b>>2]=a;c=f[b>>2]|0;if((f[b>>2]|0)>>>0<524288){f[d>>2]=(g[18256+(c>>>6)>>0]|0)+12;a=f[d>>2]|0;l=e;return a|0}a=f[b>>2]|0;if(c>>>0<2147483648){f[d>>2]=(g[18256+(a>>>18)>>0]|0)+36;a=f[d>>2]|0;l=e;return a|0}else{f[d>>2]=(g[18256+(a>>>30)>>0]|0)+60;a=f[d>>2]|0;l=e;return a|0}return 0}function Ee(a,b){a=a|0;b=b|0;var c=0,d=0,i=0;i=l;l=l+16|0;d=i+4|0;c=i;e[d>>1]=a;f[c>>2]=b;l=i;return g[26496+(((h[d>>1]|0)^0-(f[c>>2]|0)&2047)>>>4)>>0]|0|0}function Fe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+32|0;d=j+16|0;k=j+12|0;g=j+8|0;i=j+4|0;h=j;f[d>>2]=a;f[k>>2]=b;f[g>>2]=c;f[i>>2]=0;f[g>>2]=(f[g>>2]|0)+(1<<f[k>>2]);do{f[h>>2]=f[g>>2]&1;f[g>>2]=(f[g>>2]|0)>>>1;b=Ee(e[(f[d>>2]|0)+(f[g>>2]<<1)>>1]|0,f[h>>2]|0)|0;f[i>>2]=(f[i>>2]|0)+b}while((f[g>>2]|0)!=1);l=j;return f[i>>2]|0}function Ge(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=l;l=l+16|0;c=e+4|0;d=e;f[c>>2]=a;f[d>>2]=b;if(!(f[d>>2]|0)){l=e;return}Kh[f[(f[c>>2]|0)+44>>2]&31](f[c>>2]|0,f[d>>2]|0);c=(f[c>>2]|0)+24|0;f[c>>2]=(f[c>>2]|0)+(f[d>>2]|0);l=e;return}function He(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;d=m+20|0;g=m+16|0;h=m+12|0;k=m+8|0;j=m+4|0;i=m;f[d>>2]=a;f[g>>2]=b;f[h>>2]=c;f[k>>2]=0;f[j>>2]=1;do{f[i>>2]=f[h>>2]&1;f[h>>2]=(f[h>>2]|0)>>>1;b=Ee(e[(f[d>>2]|0)+(f[j>>2]<<1)>>1]|0,f[i>>2]|0)|0;f[k>>2]=(f[k>>2]|0)+b;f[j>>2]=(f[j>>2]<<1)+(f[i>>2]|0);b=(f[g>>2]|0)+-1|0;f[g>>2]=b}while((b|0)!=0);l=m;return f[k>>2]|0}function Ie(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return f[b>>2]<<4|0}function Je(a){a=a|0;var b=0,c=0,d=0,e=0;e=l;l=l+16|0;d=e+4|0;b=e;f[b>>2]=a;c=f[b>>2]|0;if((f[b>>2]|0)>>>0<8192){f[d>>2]=g[18256+c>>0];a=f[d>>2]|0;l=e;return a|0}a=f[b>>2]|0;if(c>>>0<33554432){f[d>>2]=(g[18256+(a>>>12)>>0]|0)+24;a=f[d>>2]|0;l=e;return a|0}else{f[d>>2]=(g[18256+(a>>>24)>>0]|0)+48;a=f[d>>2]|0;l=e;return a|0}return 0}function Ke(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+20|0;g=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;f[g>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=d;do if(!(f[f[g>>2]>>2]|0)){c=hb(28344,f[h>>2]|0)|0;f[f[g>>2]>>2]=c;if(f[f[g>>2]>>2]|0){f[(f[g>>2]|0)+4>>2]=4;f[(f[g>>2]|0)+8>>2]=7;f[(f[g>>2]|0)+12>>2]=1;break}f[e>>2]=5;k=f[e>>2]|0;l=m;return k|0}while(0);f[k>>2]=f[i>>2];f[f[j>>2]>>2]=f[f[k>>2]>>2];f[(f[j>>2]|0)+4>>2]=f[(f[k>>2]|0)+4>>2];f[(f[j>>2]|0)+8>>2]=f[(f[k>>2]|0)+8>>2];f[e>>2]=0;k=f[e>>2]|0;l=m;return k|0}function Le(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=Mg(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,9)|0;l=d;return b|0}function Me(a,b){a=a|0;b=b|0;var c=0,e=0,h=0,i=0;i=l;l=l+16|0;c=i+5|0;e=i;h=i+4|0;f[e>>2]=a;d[h>>0]=b;if((g[h>>0]|0|0)>224){d[c>>0]=1;c=d[c>>0]|0;c=c&1;l=i;return c|0}else{f[(f[e>>2]|0)+20>>2]=(g[h>>0]|0|0)/45|0;d[h>>0]=(g[h>>0]|0)-(((f[(f[e>>2]|0)+20>>2]|0)*9|0)*5|0);f[(f[e>>2]|0)+16>>2]=(g[h>>0]|0|0)/9|0;f[(f[e>>2]|0)+12>>2]=(g[h>>0]|0)-((f[(f[e>>2]|0)+16>>2]|0)*9|0);d[c>>0]=((f[(f[e>>2]|0)+12>>2]|0)+(f[(f[e>>2]|0)+16>>2]|0)|0)>>>0>4&1;c=d[c>>0]|0;c=c&1;l=i;return c|0}return 0}function Ne(a){a=a|0;var b=0,c=0,d=0;b=l;l=l+16|0;d=b+4|0;c=b;f[d>>2]=a;f[c>>2]=f[d>>2];a=Ng(f[f[c>>2]>>2]|0)|0;a=hh(28344,0,a|0,G|0)|0;l=b;return a|0}function Oe(a){a=a|0;var b=0,c=0,d=0;d=l;l=l+16|0;b=d;c=d+8|0;f[c>>2]=a;if(Ue(f[c>>2]|0)|0){a=Ne(f[c>>2]|0)|0;c=b;f[c>>2]=a;f[c+4>>2]=G}else{c=b;f[c>>2]=-1;f[c+4>>2]=-1}G=f[b+4>>2]|0;l=d;return f[b>>2]|0}function Pe(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;g=m+20|0;h=m+16|0;i=m+12|0;j=m+8|0;n=m+4|0;k=m;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[n>>2]=e;if((f[n>>2]|0)!=5){f[g>>2]=8;e=f[g>>2]|0;l=m;return e|0}f[k>>2]=hb(96,f[i>>2]|0)|0;if(!(f[k>>2]|0)){f[g>>2]=5;e=f[g>>2]|0;l=m;return e|0}if(Me(f[k>>2]|0,d[f[j>>2]>>0]|0)|0){jb(f[k>>2]|0,f[i>>2]|0);f[g>>2]=8;e=f[g>>2]|0;l=m;return e|0}else{e=Ve((f[j>>2]|0)+1|0)|0;f[f[k>>2]>>2]=e;f[(f[k>>2]|0)+4>>2]=0;f[(f[k>>2]|0)+8>>2]=0;f[f[h>>2]>>2]=f[k>>2];f[g>>2]=0;e=f[g>>2]|0;l=m;return e|0}return 0}function Qe(a,b,c,i,j){a=a|0;b=b|0;c=c|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;T=l;l=l+160|0;m=T+152|0;n=T+148|0;o=T+144|0;p=T+140|0;q=T+136|0;r=T+132|0;k=T+128|0;s=T+104|0;t=T+100|0;I=T+88|0;K=T+84|0;J=T+80|0;Q=T+76|0;L=T+72|0;M=T+68|0;N=T+64|0;O=T+60|0;E=T+56|0;H=T+52|0;S=T+48|0;y=T+44|0;D=T+40|0;x=T+36|0;A=T+32|0;z=T+28|0;F=T+24|0;P=T+20|0;C=T+156|0;B=T+16|0;R=T+12|0;u=T+8|0;v=T+4|0;w=T;f[n>>2]=a;f[o>>2]=b;f[p>>2]=c;f[q>>2]=i;f[r>>2]=j;f[k>>2]=Xe((f[n>>2]|0)+28268|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0)|0;if((f[k>>2]|0)!=1){f[m>>2]=f[k>>2];B=f[m>>2]|0;l=T;return B|0}a=f[o>>2]|0;f[s>>2]=f[a>>2];f[s+4>>2]=f[a+4>>2];f[s+8>>2]=f[a+8>>2];f[s+12>>2]=f[a+12>>2];f[s+16>>2]=f[a+16>>2];f[s+20>>2]=f[a+20>>2];f[t>>2]=f[s+4>>2];a=(f[n>>2]|0)+28268|0;f[I>>2]=f[a>>2];f[I+4>>2]=f[a+4>>2];f[I+8>>2]=f[a+8>>2];f[K>>2]=f[f[q>>2]>>2];f[Q>>2]=f[(f[n>>2]|0)+28280>>2];f[L>>2]=f[(f[n>>2]|0)+28284>>2];f[M>>2]=f[(f[n>>2]|0)+28288>>2];f[N>>2]=f[(f[n>>2]|0)+28292>>2];f[O>>2]=f[(f[n>>2]|0)+28296>>2];f[E>>2]=f[(f[n>>2]|0)+28300>>2];f[H>>2]=f[(f[n>>2]|0)+28324>>2];f[S>>2]=f[(f[n>>2]|0)+28328>>2];f[y>>2]=f[(f[n>>2]|0)+28332>>2];f[D>>2]=f[(f[n>>2]|0)+28336>>2];f[x>>2]=f[(f[n>>2]|0)+28340>>2];f[A>>2]=f[(f[n>>2]|0)+28308>>2];f[z>>2]=f[(f[n>>2]|0)+28304>>2];f[F>>2]=f[s+4>>2]&f[E>>2];f[P>>2]=0;a=(f[n>>2]|0)+28312|0;d[C>>0]=((f[a>>2]|0)!=-1?1:(f[a+4>>2]|0)!=-1)&1;if(d[C>>0]&1?(a=(f[n>>2]|0)+28312|0,b=f[a+4>>2]|0,b>>>0<0|((b|0)==0?(f[a>>2]|0)>>>0<((f[s+12>>2]|0)-(f[s+4>>2]|0)|0)>>>0:0)):0)f[s+12>>2]=(f[s+4>>2]|0)+(f[(f[n>>2]|0)+28312>>2]|0);switch(f[(f[n>>2]|0)+28320>>2]|0){case 1:case 0:{a=8;break}case 4:{a=30;break}case 2:{a=16;break}case 6:{a=44;break}case 3:{a=23;break}case 7:{a=51;break}case 8:{a=58;break}case 9:{a=65;break}case 10:{a=73;break}case 11:{a=81;break}case 12:{a=89;break}case 13:{a=97;break}case 14:{a=105;break}case 16:{a=121;break}case 15:{a=113;break}case 5:{a=37;break}case 17:{a=129;break}case 19:{a=140;break}case 18:{a=137;break}case 20:{a=146;break}case 21:{a=152;break}case 22:{a=159;break}case 23:{a=166;break}case 24:{a=175;break}case 25:{a=181;break}case 26:{a=188;break}case 27:{a=195;break}case 28:{a=204;break}case 29:{a=211;break}case 30:{a=218;break}case 31:{a=225;break}case 32:{a=232;break}case 33:{a=239;break}case 34:{a=246;break}case 35:{a=253;break}case 36:{a=262;break}case 37:{a=269;break}case 38:{a=276;break}case 39:{a=283;break}case 40:{a=290;break}case 41:{a=297;break}case 42:{a=308;break}case 43:{a=349;break}case 44:{a=355;break}case 45:{a=362;break}case 46:{a=369;break}case 47:{a=376;break}case 48:{a=386;break}case 49:{a=395;break}case 51:{a=401;break}case 50:{a=407;break}case 52:{a=411;break}case 53:{a=418;break}case 54:{a=426;break}case 55:{a=432;break}case 56:{a=439;break}case 57:{a=446;break}case 58:{a=455;break}case 59:{a=461;break}case 60:{a=468;break}case 61:{a=475;break}case 62:{a=484;break}case 63:{a=491;break}case 64:{a=498;break}case 65:{a=505;break}case 66:{a=512;break}case 67:{a=519;break}case 68:{a=526;break}case 69:{a=533;break}case 70:{a=541;break}default:a=543}a:while(1){b:switch(a|0){case 8:{if(d[C>>0]&1?(f[s+4>>2]|0)==(f[s+12>>2]|0):0){a=543;continue a}if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=12;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+24576+(f[Q>>2]<<5)+(f[F>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0>=(f[J>>2]|0)>>>0){f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+24576+(f[Q>>2]<<5)+(f[F>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+24576+(f[Q>>2]<<5)+(f[F>>2]<<1)>>1]|0)>>5);a=140;continue a}f[I>>2]=a;b=(f[n>>2]|0)+24576+(f[Q>>2]<<5)+(f[F>>2]<<1)|0;e[b>>1]=(h[b>>1]|0)+((2048-(h[(f[n>>2]|0)+24576+(f[Q>>2]<<5)+(f[F>>2]<<1)>>1]|0)|0)>>>5);b=(f[s+4>>2]&f[A>>2])<<f[z>>2];a=(Ye(s,0)|0)&255;f[H>>2]=(f[n>>2]|0)+((b+(a>>8-(f[z>>2]|0))|0)*1536|0);f[S>>2]=1;if((f[Q>>2]|0)>>>0<7){a=16;continue a}f[x>>2]=((Ye(s,f[L>>2]|0)|0)&255)<<1;f[D>>2]=256;a=73;continue a}case 16:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=18;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=23;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=23;continue a}}case 23:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=25;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=30;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=30;continue a}}case 30:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=32;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=37;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=37;continue a}}case 37:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=39;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=44;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=44;continue a}}case 44:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=46;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=51;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=51;continue a}}case 51:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=53;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=58;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=58;continue a}}case 58:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=60;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=65;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=65;continue a}}case 65:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=67;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=136;break}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=136;break}}case 73:{f[B>>2]=f[x>>2]&f[D>>2];f[R>>2]=(f[D>>2]|0)+(f[B>>2]|0)+(f[S>>2]|0);if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=75;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;f[D>>2]=f[D>>2]&~f[B>>2]}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[D>>2]=f[D>>2]&f[B>>2]}f[x>>2]=f[x>>2]<<1;a=81;continue a}case 81:{f[B>>2]=f[x>>2]&f[D>>2];f[R>>2]=(f[D>>2]|0)+(f[B>>2]|0)+(f[S>>2]|0);if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=83;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;f[D>>2]=f[D>>2]&~f[B>>2]}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[D>>2]=f[D>>2]&f[B>>2]}f[x>>2]=f[x>>2]<<1;a=89;continue a}case 89:{f[B>>2]=f[x>>2]&f[D>>2];f[R>>2]=(f[D>>2]|0)+(f[B>>2]|0)+(f[S>>2]|0);if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=91;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;f[D>>2]=f[D>>2]&~f[B>>2]}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[D>>2]=f[D>>2]&f[B>>2]}f[x>>2]=f[x>>2]<<1;a=97;continue a}case 97:{f[B>>2]=f[x>>2]&f[D>>2];f[R>>2]=(f[D>>2]|0)+(f[B>>2]|0)+(f[S>>2]|0);if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=99;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;f[D>>2]=f[D>>2]&~f[B>>2]}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[D>>2]=f[D>>2]&f[B>>2]}f[x>>2]=f[x>>2]<<1;a=105;continue a}case 105:{f[B>>2]=f[x>>2]&f[D>>2];f[R>>2]=(f[D>>2]|0)+(f[B>>2]|0)+(f[S>>2]|0);if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=107;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;f[D>>2]=f[D>>2]&~f[B>>2]}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[D>>2]=f[D>>2]&f[B>>2]}f[x>>2]=f[x>>2]<<1;a=113;continue a}case 113:{f[B>>2]=f[x>>2]&f[D>>2];f[R>>2]=(f[D>>2]|0)+(f[B>>2]|0)+(f[S>>2]|0);if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=115;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;f[D>>2]=f[D>>2]&~f[B>>2]}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[D>>2]=f[D>>2]&f[B>>2]}f[x>>2]=f[x>>2]<<1;a=121;continue a}case 121:{f[B>>2]=f[x>>2]&f[D>>2];f[R>>2]=(f[D>>2]|0)+(f[B>>2]|0)+(f[S>>2]|0);if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=123;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;f[D>>2]=f[D>>2]&~f[B>>2]}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[D>>2]=f[D>>2]&f[B>>2]}f[x>>2]=f[x>>2]<<1;a=129;continue a}case 129:{f[B>>2]=f[x>>2]&f[D>>2];f[R>>2]=(f[D>>2]|0)+(f[B>>2]|0)+(f[S>>2]|0);if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=131;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;f[D>>2]=f[D>>2]&~f[B>>2];a=136;break}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[R>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[R>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[D>>2]=f[D>>2]&f[B>>2];a=136;break}}case 137:{if(Ze(s,f[S>>2]&255)|0){a=138;break a}else a=7;break}case 140:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=142;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+24960+(f[Q>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0>=(f[J>>2]|0)>>>0){f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+24960+(f[Q>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+24960+(f[Q>>2]<<1)>>1]|0)>>5);if(($e(s,0)|0)^1){a=394;break a}else{a=395;continue a}}else{f[I>>2]=a;a=(f[n>>2]|0)+24960+(f[Q>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+24960+(f[Q>>2]<<1)>>1]|0)|0)>>>5);f[Q>>2]=(f[Q>>2]|0)>>>0<7?7:10;f[O>>2]=f[N>>2];f[N>>2]=f[M>>2];f[M>>2]=f[L>>2];f[S>>2]=1;a=146;continue a}}case 146:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=148;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212>>1]|0)|0)>>>5);a=152;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212>>1]|0)>>5);a=175;continue a}}case 152:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=154;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=159;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=159;continue a}}case 159:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=161;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=166;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=166;continue a}}case 166:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=168;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1}f[x>>2]=(f[S>>2]|0)-8+2;a=261;break}case 175:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=177;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+2>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+2|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+2>>1]|0)|0)>>>5);a=181;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+2|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+2>>1]|0)>>5);a=204;continue a}}case 181:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=183;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=188;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=188;continue a}}case 188:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=190;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=195;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=195;continue a}}case 195:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=197;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1}f[x>>2]=(f[S>>2]|0)-8+2+8;a=261;break}case 204:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=206;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=211;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=211;continue a}}case 211:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=213;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=218;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=218;continue a}}case 218:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=220;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=225;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=225;continue a}}case 225:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=227;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=232;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=232;continue a}}case 232:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=234;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=239;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=239;continue a}}case 239:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=241;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=246;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=246;continue a}}case 246:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=248;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;
f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=253;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=253;continue a}}case 253:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=255;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26212+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26212+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1}f[x>>2]=(f[S>>2]|0)-256+2+8+8;a=261;break}case 262:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=264;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=269;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=269;continue a}}case 269:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=271;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=276;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=276;continue a}}case 276:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=278;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=283;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=283;continue a}}case 283:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=285;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=290;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=290;continue a}}case 290:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=292;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=297;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=297;continue a}}case 297:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=299;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1}f[S>>2]=(f[S>>2]|0)-64;a=f[S>>2]|0;if((f[S>>2]|0)>>>0<4){f[L>>2]=a;a=391;break}f[y>>2]=(a>>>1)-1;f[L>>2]=2+(f[S>>2]&1);a=f[y>>2]|0;if((f[S>>2]|0)>>>0<14){f[L>>2]=f[L>>2]<<a;f[H>>2]=(f[n>>2]|0)+25952+(f[L>>2]<<1)+(0-(f[S>>2]|0)<<1)+-2;f[S>>2]=1;f[D>>2]=0;a=308;continue a}else{f[y>>2]=a-4;a=349;continue a}}case 308:{a=0;switch(f[y>>2]|0){case 5:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=311;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[L>>2]=(f[L>>2]|0)+1}f[D>>2]=(f[D>>2]|0)+1;f[y>>2]=(f[y>>2]|0)+-1;a=317;break}case 4:{a=317;break}case 3:{a=325;break}case 2:{a=333;break}case 1:break;default:{a=391;break b}}if((a|0)==317){if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=319;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[L>>2]=(f[L>>2]|0)+(1<<f[D>>2])}f[D>>2]=(f[D>>2]|0)+1;f[y>>2]=(f[y>>2]|0)+-1;a=325}if((a|0)==325){if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=327;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[L>>2]=(f[L>>2]|0)+(1<<f[D>>2])}f[D>>2]=(f[D>>2]|0)+1;f[y>>2]=(f[y>>2]|0)+-1;a=333}if((a|0)==333){if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=335;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[L>>2]=(f[L>>2]|0)+(1<<f[D>>2])}f[D>>2]=(f[D>>2]|0)+1;f[y>>2]=(f[y>>2]|0)+-1}if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=343;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)|0)>>>5);a=391;break}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[H>>2]|0)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[H>>2]|0)+(f[S>>2]<<1)>>1]|0)>>5);f[L>>2]=(f[L>>2]|0)+(1<<f[D>>2]);a=391;break}}case 349:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=351;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[I>>2]=(f[I>>2]|0)>>>1;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[I>>2]|0);f[J>>2]=0-((f[I+4>>2]|0)>>>31);a=I+4|0;f[a>>2]=(f[a>>2]|0)+(f[I>>2]&f[J>>2]);f[L>>2]=(f[L>>2]<<1)+((f[J>>2]|0)+1);a=(f[y>>2]|0)+-1|0;f[y>>2]=a;if(a>>>0>0){a=349;continue a}f[L>>2]=f[L>>2]<<4;f[S>>2]=1;a=355;continue a}case 355:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=357;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26180+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=362;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26180+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[L>>2]=(f[L>>2]|0)+1;a=362;continue a}}case 362:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=364;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26180+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=369;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26180+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[L>>2]=(f[L>>2]|0)+2;a=369;continue a}}case 369:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=371;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26180+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=376;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26180+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;f[L>>2]=(f[L>>2]|0)+4;a=376;continue a}}case 376:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=378;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+26180+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)|0)>>>5)}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+26180+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+26180+(f[S>>2]<<1)>>1]|0)>>5);f[L>>2]=(f[L>>2]|0)+8}if((f[L>>2]|0)==-1){B=(f[n>>2]|0)+28312|0;if((f[B>>2]|0)!=-1?1:(f[B+4>>2]|0)!=-1){a=385;break a}else{a=386;continue a}}else a=391;break}case 386:if((f[I>>2]|0)>>>0<16777216){a=387;break a}else{a=390;break a}case 395:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=397;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+24984+(f[Q>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+24984+(f[Q>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+24984+(f[Q>>2]<<1)>>1]|0)|0)>>>5);a=401;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+24984+(f[Q>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+24984+(f[Q>>2]<<1)>>1]|0)>>5);a=411;continue a}}case 401:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=403;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+25056+(f[Q>>2]<<5)+(f[F>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+25056+(f[Q>>2]<<5)+(f[F>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+25056+(f[Q>>2]<<5)+(f[F>>2]<<1)>>1]|0)|0)>>>5);f[Q>>2]=(f[Q>>2]|0)>>>0<7?9:11;a=407;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+25056+(f[Q>>2]<<5)+(f[F>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+25056+(f[Q>>2]<<5)+(f[F>>2]<<1)>>1]|0)>>5);a=425;break}}case 407:{if(Ze(s,Ye(s,f[L>>2]|0)|0)|0){a=408;break a}else a=7;break}case 411:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=413;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+25008+(f[Q>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+25008+(f[Q>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+25008+(f[Q>>2]<<1)>>1]|0)|0)>>>5);f[u>>2]=f[M>>2];f[M>>2]=f[L>>2];f[L>>2]=f[u>>2];a=425;break}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+25008+(f[Q>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+25008+(f[Q>>2]<<1)>>1]|0)>>5);a=418;continue a}}case 418:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=420;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+25032+(f[Q>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+25032+(f[Q>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+25032+(f[Q>>2]<<1)>>1]|0)|0)>>>5);f[v>>2]=f[N>>2];f[N>>2]=f[M>>2];f[M>>2]=f[L>>2];f[L>>2]=f[v>>2];a=425;break}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+25032+(f[Q>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+25032+(f[Q>>2]<<1)>>1]|0)>>5);f[w>>2]=f[O>>2];f[O>>2]=f[N>>2];f[N>>2]=f[M>>2];f[M>>2]=f[L>>2];f[L>>2]=f[w>>2];a=425;break}}case 426:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=428;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240>>1]|0)|0)>>>5);a=432;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240>>1]|0)>>5);a=455;continue a}}case 432:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=434;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=439;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=439;continue a}}case 439:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=441;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=446;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=446;continue a}}case 446:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=448;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+4+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1}f[x>>2]=(f[S>>2]|0)-8+2;a=541;continue a}case 455:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=457;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+2>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+2|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+2>>1]|0)|0)>>>5);a=461;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+2|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+2>>1]|0)>>5);a=484;continue a}}case 461:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=463;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=468;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=468;continue a}}case 468:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=470;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=475;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=475;continue a}}case 475:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=477;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+260+(f[F>>2]<<4)+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1}f[x>>2]=(f[S>>2]|0)-8+2+8;a=541;continue a}case 484:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=486;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=491;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=491;continue a}}case 491:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=493;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=498;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=498;continue a}}case 498:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=500;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=505;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=505;continue a}}case 505:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=507;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=512;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=512;continue a}}case 512:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=514;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=519;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=519;continue a}}case 519:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=521;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=526;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=526;continue a}}case 526:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=528;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1;a=533;continue a}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1;a=533;continue a}}case 533:{if((f[I>>2]|0)>>>0<16777216){if((f[K>>2]|0)==(f[r>>2]|0)){a=535;break a}f[I>>2]=f[I>>2]<<8;b=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=b|(g[(f[p>>2]|0)+a>>0]|0)}f[J>>2]=ca((f[I>>2]|0)>>>11,h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0;a=f[J>>2]|0;if((f[I+4>>2]|0)>>>0<(f[J>>2]|0)>>>0){f[I>>2]=a;a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)+((2048-(h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)|0)>>>5);f[S>>2]=f[S>>2]<<1}else{f[I>>2]=(f[I>>2]|0)-a;a=I+4|0;f[a>>2]=(f[a>>2]|0)-(f[J>>2]|0);a=(f[n>>2]|0)+27240+516+(f[S>>2]<<1)|0;e[a>>1]=(h[a>>1]|0)-((h[(f[n>>2]|0)+27240+516+(f[S>>2]<<1)>>1]|0)>>5);f[S>>2]=(f[S>>2]<<1)+1}f[x>>2]=(f[S>>2]|0)-256+2+8+8;a=541;continue a}case 541:{if(_e(s,f[L>>2]|0,x)|0){a=542;break a}else a=7;break}case 543:if((f[I>>2]|0)>>>0<16777216){a=544;break a}else{a=547;break a}}if((a|0)==7){f[F>>2]=f[s+4>>2]&f[E>>2];a=8;continue}else if((a|0)==136){f[Q>>2]=f[26448+(f[Q>>2]<<2)>>2];a=137;continue}else if((a|0)==261){f[H>>2]=(f[n>>2]|0)+25440+(((f[x>>2]|0)>>>0<6?(f[x>>2]|0)-2|0:3)<<7);f[S>>2]=1;a=262;continue}else if((a|0)==391)if(($e(s,f[L>>2]|0)|0)^1){a=392;break}else{a=541;continue}else if((a|0)==425){f[Q>>2]=(f[Q>>2]|0)>>>0<7?8:11;f[S>>2]=1;a=426;continue}}switch(a|0){case 12:{f[(f[n>>2]|0)+28320>>2]=1;break}case 18:{f[(f[n>>2]|0)+28320>>2]=2;break}case 25:{f[(f[n>>2]|0)+28320>>2]=3;break}case 32:{f[(f[n>>2]|0)+28320>>2]=4;break}case 39:{f[(f[n>>2]|0)+28320>>2]=5;break}case 46:{f[(f[n>>2]|0)+28320>>2]=6;break}case 53:{f[(f[n>>2]|0)+28320>>2]=7;break}case 60:{f[(f[n>>2]|0)+28320>>2]=8;break}case 67:{f[(f[n>>2]|0)+28320>>2]=9;break}case 75:{f[(f[n>>2]|0)+28320>>2]=10;break}case 83:{f[(f[n>>2]|0)+28320>>2]=11;break}case 91:{f[(f[n>>2]|0)+28320>>2]=12;break}case 99:{f[(f[n>>2]|0)+28320>>2]=13;break}case 107:{f[(f[n>>2]|0)+28320>>2]=14;break}case 115:{f[(f[n>>2]|0)+28320>>2]=15;break}case 123:{f[(f[n>>2]|0)+28320>>2]=16;break}case 131:{f[(f[n>>2]|0)+28320>>2]=17;break}case 138:{f[(f[n>>2]|0)+28320>>2]=18;break}case 142:{f[(f[n>>2]|0)+28320>>2]=19;break}case 148:{f[(f[n>>2]|0)+28320>>2]=20;break}case 154:{f[(f[n>>2]|0)+28320>>2]=21;break}case 161:{f[(f[n>>2]|0)+28320>>2]=22;break}case 168:{f[(f[n>>2]|0)+28320>>2]=23;break}case 177:{f[(f[n>>2]|0)+28320>>2]=24;break}case 183:{f[(f[n>>2]|0)+28320>>2]=25;break}case 190:{f[(f[n>>2]|0)+28320>>2]=26;break}case 197:{f[(f[n>>2]|0)+28320>>2]=27;break}case 206:{f[(f[n>>2]|0)+28320>>2]=28;break}case 213:{f[(f[n>>2]|0)+28320>>2]=29;break}case 220:{f[(f[n>>2]|0)+28320>>2]=30;break}case 227:{f[(f[n>>2]|0)+28320>>2]=31;break}case 234:{f[(f[n>>2]|0)+28320>>2]=32;break}case 241:{f[(f[n>>2]|0)+28320>>2]=33;break}case 248:{f[(f[n>>2]|0)+28320>>2]=34;break}case 255:{f[(f[n>>2]|0)+28320>>2]=35;break}case 264:{f[(f[n>>2]|0)+28320>>2]=36;break}case 271:{f[(f[n>>2]|0)+28320>>2]=37;break}case 278:{f[(f[n>>2]|0)+28320>>2]=38;break}case 285:{f[(f[n>>2]|0)+28320>>2]=39;break}case 292:{f[(f[n>>2]|0)+28320>>2]=40;break}case 299:{f[(f[n>>2]|0)+28320>>2]=41;break}case 311:{f[(f[n>>2]|0)+28320>>2]=42;break}case 319:{f[(f[n>>2]|0)+28320>>2]=42;break}case 327:{f[(f[n>>2]|0)+28320>>2]=42;break}case 335:{f[(f[n>>2]|0)+28320>>2]=42;break}case 343:{f[(f[n>>2]|0)+28320>>2]=42;break}case 351:{f[(f[n>>2]|0)+28320>>2]=43;break}case 357:{f[(f[n>>2]|0)+28320>>2]=44;break}case 364:{f[(f[n>>2]|0)+28320>>2]=45;break}case 371:{f[(f[n>>2]|0)+28320>>2]=46;break}case 378:{f[(f[n>>2]|0)+28320>>2]=47;break}case 385:{f[P>>2]=9;break}case 387:if((f[K>>2]|0)==(f[r>>2]|0)){f[(f[n>>2]|0)+28320>>2]=48;break}else{f[I>>2]=f[I>>2]<<8;B=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=B|(g[(f[p>>2]|0)+a>>0]|0);a=390;break}case 392:{f[P>>2]=9;break}case 394:{f[P>>2]=9;break}case 397:{f[(f[n>>2]|0)+28320>>2]=49;break}case 403:{f[(f[n>>2]|0)+28320>>2]=51;break}case 408:{f[(f[n>>2]|0)+28320>>2]=50;break}case 413:{f[(f[n>>2]|0)+28320>>2]=52;break}case 420:{f[(f[n>>2]|0)+28320>>2]=53;break}case 428:{f[(f[n>>2]|0)+28320>>2]=54;break}case 434:{f[(f[n>>2]|0)+28320>>2]=55;break}case 441:{f[(f[n>>2]|0)+28320>>2]=56;break}case 448:{f[(f[n>>2]|0)+28320>>2]=57;break}case 457:{f[(f[n>>2]|0)+28320>>2]=58;break}case 463:{f[(f[n>>2]|0)+28320>>2]=59;break}case 470:{f[(f[n>>2]|0)+28320>>2]=60;break}case 477:{f[(f[n>>2]|0)+28320>>2]=61;break}case 486:{f[(f[n>>2]|0)+28320>>2]=62;break}case 493:{f[(f[n>>2]|0)+28320>>2]=63;break}case 500:{f[(f[n>>2]|0)+28320>>2]=64;break}case 507:{f[(f[n>>2]|0)+28320>>2]=65;break}case 514:{f[(f[n>>2]|0)+28320>>2]=66;break}case 521:{f[(f[n>>2]|0)+28320>>2]=67;break}case 528:{f[(f[n>>2]|0)+28320>>2]=68;break}case 535:{f[(f[n>>2]|0)+28320>>2]=69;break}case 542:{f[(f[n>>2]|0)+28320>>2]=70;break}case 544:if((f[K>>2]|0)==(f[r>>2]|0)){f[(f[n>>2]|0)+28320>>2]=0;break}else{f[I>>2]=f[I>>2]<<8;B=f[I+4>>2]<<8;a=f[K>>2]|0;f[K>>2]=a+1;f[I+4>>2]=B|(g[(f[p>>2]|0)+a>>0]|0);a=547;break}}if((a|0)==390)f[P>>2]=1;else if((a|0)==547)f[(f[n>>2]|0)+28320>>2]=1;f[(f[o>>2]|0)+4>>2]=f[s+4>>2];f[(f[o>>2]|0)+8>>2]=f[s+8>>2];B=(f[n>>2]|0)+28268|0;f[B>>2]=f[I>>2];f[B+4>>2]=f[I+4>>2];f[B+8>>2]=f[I+8>>2];f[f[q>>2]>>2]=f[K>>2];f[(f[n>>2]|0)+28280>>2]=f[Q>>2];f[(f[n>>2]|0)+28284>>2]=f[L>>2];f[(f[n>>2]|0)+28288>>2]=f[M>>2];f[(f[n>>2]|0)+28292>>2]=f[N>>2];f[(f[n>>2]|0)+28296>>2]=f[O>>2];f[(f[n>>2]|0)+28324>>2]=f[H>>2];f[(f[n>>2]|0)+28328>>2]=f[S>>2];f[(f[n>>2]|0)+28332>>2]=f[y>>2];f[(f[n>>2]|0)+28336>>2]=f[D>>2];f[(f[n>>2]|0)+28340>>2]=f[x>>2];B=(f[n>>2]|0)+28312|0;if((((f[B>>2]|0)!=-1?1:(f[B+4>>2]|0)!=-1)?(B=(f[n>>2]|0)+28312|0,A=B,A=bh(f[A>>2]|0,f[A+4>>2]|0,(f[s+4>>2]|0)-(f[t>>2]|0)|0,0)|0,B,f[B>>2]=A,f[B+4>>2]=G,B=(f[n>>2]|0)+28312|0,(f[B>>2]|0)==0&(f[B+4>>2]|0)==0&(f[P>>2]|0)==0):0)?(f[(f[n>>2]|0)+28320>>2]|0)!=0:0)f[P>>2]=(f[(f[n>>2]|0)+28320>>2]|0)==1?1:9;if((f[P>>2]|0)==1){if(f[(f[n>>2]|0)+28268+4>>2]|0)f[P>>2]=9;f[(f[n>>2]|0)+28268>>2]=-1;f[(f[n>>2]|0)+28268+4>>2]=0;f[(f[n>>2]|0)+28268+8>>2]=5}f[m>>2]=f[P>>2];B=f[m>>2]|0;l=T;return B|0}function Re(a,b){a=a|0;b=b|0;var c=0,d=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=l;l=l+80|0;c=v+64|0;w=v+60|0;t=v+56|0;o=v+52|0;r=v+48|0;p=v+44|0;d=v+40|0;q=v+36|0;g=v+32|0;s=v+28|0;u=v+24|0;h=v+20|0;i=v+16|0;j=v+12|0;k=v+8|0;m=v+4|0;n=v;f[c>>2]=a;f[w>>2]=b;f[t>>2]=f[w>>2];f[(f[c>>2]|0)+28300>>2]=(1<<f[(f[t>>2]|0)+20>>2])-1;We(f[c>>2]|0,f[(f[t>>2]|0)+12>>2]|0,f[(f[t>>2]|0)+16>>2]|0);f[(f[c>>2]|0)+28304>>2]=f[(f[t>>2]|0)+12>>2];f[(f[c>>2]|0)+28308>>2]=(1<<f[(f[t>>2]|0)+16>>2])-1;f[(f[c>>2]|0)+28280>>2]=0;f[(f[c>>2]|0)+28284>>2]=0;f[(f[c>>2]|0)+28288>>2]=0;f[(f[c>>2]|0)+28292>>2]=0;f[(f[c>>2]|0)+28296>>2]=0;f[(f[c>>2]|0)+28300>>2]=(1<<f[(f[t>>2]|0)+20>>2])-1;f[(f[c>>2]|0)+28268>>2]=-1;f[(f[c>>2]|0)+28268+4>>2]=0;f[(f[c>>2]|0)+28268+8>>2]=5;f[o>>2]=0;while(1){if((f[o>>2]|0)>>>0>=12)break;f[r>>2]=0;while(1){if((f[r>>2]|0)>>>0>(f[(f[c>>2]|0)+28300>>2]|0)>>>0)break;
e[(f[c>>2]|0)+24576+(f[o>>2]<<5)+(f[r>>2]<<1)>>1]=1024;e[(f[c>>2]|0)+25056+(f[o>>2]<<5)+(f[r>>2]<<1)>>1]=1024;f[r>>2]=(f[r>>2]|0)+1}e[(f[c>>2]|0)+24960+(f[o>>2]<<1)>>1]=1024;e[(f[c>>2]|0)+24984+(f[o>>2]<<1)>>1]=1024;e[(f[c>>2]|0)+25008+(f[o>>2]<<1)>>1]=1024;e[(f[c>>2]|0)+25032+(f[o>>2]<<1)>>1]=1024;f[o>>2]=(f[o>>2]|0)+1}f[p>>2]=0;while(1){if((f[p>>2]|0)>>>0>=4)break;f[d>>2]=0;while(1){if((f[d>>2]|0)>>>0>=64)break;e[(f[c>>2]|0)+25440+(f[p>>2]<<7)+(f[d>>2]<<1)>>1]=1024;f[d>>2]=(f[d>>2]|0)+1}f[p>>2]=(f[p>>2]|0)+1}f[q>>2]=0;while(1){if((f[q>>2]|0)>>>0>=114)break;e[(f[c>>2]|0)+25952+(f[q>>2]<<1)>>1]=1024;f[q>>2]=(f[q>>2]|0)+1}f[g>>2]=0;while(1){if((f[g>>2]|0)>>>0>=16)break;e[(f[c>>2]|0)+26180+(f[g>>2]<<1)>>1]=1024;f[g>>2]=(f[g>>2]|0)+1}f[s>>2]=1<<f[(f[t>>2]|0)+20>>2];e[(f[c>>2]|0)+26212>>1]=1024;e[(f[c>>2]|0)+26212+2>>1]=1024;e[(f[c>>2]|0)+27240>>1]=1024;e[(f[c>>2]|0)+27240+2>>1]=1024;f[u>>2]=0;while(1){if((f[u>>2]|0)>>>0>=(f[s>>2]|0)>>>0)break;f[h>>2]=0;while(1){if((f[h>>2]|0)>>>0>=8)break;e[(f[c>>2]|0)+26212+4+(f[u>>2]<<4)+(f[h>>2]<<1)>>1]=1024;f[h>>2]=(f[h>>2]|0)+1}f[i>>2]=0;while(1){if((f[i>>2]|0)>>>0>=8)break;e[(f[c>>2]|0)+26212+260+(f[u>>2]<<4)+(f[i>>2]<<1)>>1]=1024;f[i>>2]=(f[i>>2]|0)+1}f[j>>2]=0;while(1){if((f[j>>2]|0)>>>0>=8)break;e[(f[c>>2]|0)+27240+4+(f[u>>2]<<4)+(f[j>>2]<<1)>>1]=1024;f[j>>2]=(f[j>>2]|0)+1}f[k>>2]=0;while(1){if((f[k>>2]|0)>>>0>=8)break;e[(f[c>>2]|0)+27240+260+(f[u>>2]<<4)+(f[k>>2]<<1)>>1]=1024;f[k>>2]=(f[k>>2]|0)+1}f[u>>2]=(f[u>>2]|0)+1}f[m>>2]=0;while(1){if((f[m>>2]|0)>>>0>=256)break;e[(f[c>>2]|0)+26212+516+(f[m>>2]<<1)>>1]=1024;f[m>>2]=(f[m>>2]|0)+1}f[n>>2]=0;while(1){if((f[n>>2]|0)>>>0>=256)break;e[(f[c>>2]|0)+27240+516+(f[n>>2]<<1)>>1]=1024;f[n>>2]=(f[n>>2]|0)+1}f[(f[c>>2]|0)+28320>>2]=1;f[(f[c>>2]|0)+28324>>2]=0;f[(f[c>>2]|0)+28328>>2]=0;f[(f[c>>2]|0)+28332>>2]=0;f[(f[c>>2]|0)+28336>>2]=0;f[(f[c>>2]|0)+28340>>2]=0;l=v;return}function Se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=l;l=l+16|0;e=d+8|0;g=d;f[e>>2]=a;a=g;f[a>>2]=b;f[a+4>>2]=c;a=g;c=f[a+4>>2]|0;b=(f[e>>2]|0)+28312|0;f[b>>2]=f[a>>2];f[b+4>>2]=c;l=d;return}function Te(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+20|0;g=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;f[g>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=d;if(!(Ue(f[i>>2]|0)|0)){f[e>>2]=11;k=f[e>>2]|0;l=m;return k|0}f[k>>2]=Ke(f[g>>2]|0,f[h>>2]|0,f[i>>2]|0,f[j>>2]|0)|0;if(f[k>>2]|0){f[e>>2]=f[k>>2];k=f[e>>2]|0;l=m;return k|0}else{Re(f[f[g>>2]>>2]|0,f[i>>2]|0);Se(f[f[g>>2]>>2]|0,-1,-1);f[e>>2]=0;k=f[e>>2]|0;l=m;return k|0}return 0}function Ue(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;if((f[(f[b>>2]|0)+12>>2]|0)>>>0>4){b=0;l=c;return b|0}if((f[(f[b>>2]|0)+16>>2]|0)>>>0>4){b=0;l=c;return b|0}if(((f[(f[b>>2]|0)+12>>2]|0)+(f[(f[b>>2]|0)+16>>2]|0)|0)>>>0>4){b=0;l=c;return b|0}b=(f[(f[b>>2]|0)+20>>2]|0)>>>0<=4;l=c;return b|0}function Ve(a){a=a|0;var b=0,c=0,d=0;c=l;l=l+16|0;d=c+4|0;b=c;f[d>>2]=a;f[b>>2]=f[f[d>>2]>>2];l=c;return f[b>>2]|0}function We(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,g=0,h=0,i=0,j=0,k=0,m=0;j=l;l=l+32|0;d=j+20|0;m=j+16|0;k=j+12|0;g=j+8|0;h=j+4|0;i=j;f[d>>2]=a;f[m>>2]=b;f[k>>2]=c;f[g>>2]=1<<(f[m>>2]|0)+(f[k>>2]|0);f[h>>2]=0;while(1){if((f[h>>2]|0)>>>0>=(f[g>>2]|0)>>>0)break;f[i>>2]=0;while(1){if((f[i>>2]|0)>>>0>=768)break;e[(f[d>>2]|0)+((f[h>>2]|0)*1536|0)+(f[i>>2]<<1)>>1]=1024;f[i>>2]=(f[i>>2]|0)+1}f[h>>2]=(f[h>>2]|0)+1}l=j;return}function Xe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;k=m+16|0;e=m+12|0;h=m+8|0;i=m+4|0;j=m;f[e>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=d;while(1){if((f[(f[e>>2]|0)+8>>2]|0)>>>0<=0){e=9;break}if((f[f[i>>2]>>2]|0)==(f[j>>2]|0)){e=4;break}if((f[(f[e>>2]|0)+8>>2]|0)==5?(g[(f[h>>2]|0)+(f[f[i>>2]>>2]|0)>>0]|0|0)!=0:0){e=7;break}f[(f[e>>2]|0)+4>>2]=f[(f[e>>2]|0)+4>>2]<<8|(g[(f[h>>2]|0)+(f[f[i>>2]>>2]|0)>>0]|0);b=f[i>>2]|0;f[b>>2]=(f[b>>2]|0)+1;b=(f[e>>2]|0)+8|0;f[b>>2]=(f[b>>2]|0)+-1}if((e|0)==4){f[k>>2]=0;e=f[k>>2]|0;l=m;return e|0}else if((e|0)==7){f[k>>2]=9;e=f[k>>2]|0;l=m;return e|0}else if((e|0)==9){f[k>>2]=1;e=f[k>>2]|0;l=m;return e|0}return 0}function Ye(a,b){a=a|0;b=b|0;var c=0,e=0,g=0;g=l;l=l+16|0;c=g+4|0;e=g;f[c>>2]=a;f[e>>2]=b;if((f[e>>2]|0)>>>0<(f[(f[c>>2]|0)+4>>2]|0)>>>0)a=0;else a=f[(f[c>>2]|0)+16>>2]|0;l=g;return d[(f[f[c>>2]>>2]|0)+((f[(f[c>>2]|0)+4>>2]|0)-(f[e>>2]|0)-1+a)>>0]|0}function Ze(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0;h=l;l=l+16|0;c=h+5|0;e=h;g=h+4|0;f[e>>2]=a;d[g>>0]=b;if((f[(f[e>>2]|0)+4>>2]|0)==(f[(f[e>>2]|0)+12>>2]|0)){d[c>>0]=1;c=d[c>>0]|0;c=c&1;l=h;return c|0}b=d[g>>0]|0;a=(f[e>>2]|0)+4|0;g=f[a>>2]|0;f[a>>2]=g+1;d[(f[f[e>>2]>>2]|0)+g>>0]=b;if((f[(f[e>>2]|0)+4>>2]|0)>>>0>(f[(f[e>>2]|0)+8>>2]|0)>>>0)f[(f[e>>2]|0)+8>>2]=f[(f[e>>2]|0)+4>>2];d[c>>0]=0;c=d[c>>0]|0;c=c&1;l=h;return c|0}function $e(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=l;l=l+16|0;d=e+4|0;c=e;f[d>>2]=a;f[c>>2]=b;l=e;return(f[(f[d>>2]|0)+8>>2]|0)>>>0>(f[c>>2]|0)>>>0|0}function _e(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;i=n+24|0;g=n+20|0;j=n+16|0;e=n+12|0;m=n+8|0;h=n+4|0;k=n;f[i>>2]=a;f[g>>2]=b;f[j>>2]=c;f[e>>2]=(f[(f[i>>2]|0)+12>>2]|0)-(f[(f[i>>2]|0)+4>>2]|0);if((f[e>>2]|0)>>>0<(f[f[j>>2]>>2]|0)>>>0)e=f[e>>2]|0;else e=f[f[j>>2]>>2]|0;f[m>>2]=e;c=f[j>>2]|0;f[c>>2]=(f[c>>2]|0)-(f[m>>2]|0);do if((f[g>>2]|0)>>>0>=(f[m>>2]|0)>>>0){e=f[i>>2]|0;if((f[g>>2]|0)>>>0<(f[(f[i>>2]|0)+4>>2]|0)>>>0){gh((f[e>>2]|0)+(f[(f[i>>2]|0)+4>>2]|0)|0,(f[f[i>>2]>>2]|0)+(f[(f[i>>2]|0)+4>>2]|0)+(0-(f[g>>2]|0))+-1|0,f[m>>2]|0)|0;k=(f[i>>2]|0)+4|0;f[k>>2]=(f[k>>2]|0)+(f[m>>2]|0);break}f[h>>2]=(f[e+4>>2]|0)-(f[g>>2]|0)-1+(f[(f[i>>2]|0)+16>>2]|0);f[k>>2]=(f[(f[i>>2]|0)+16>>2]|0)-(f[h>>2]|0);a=(f[f[i>>2]>>2]|0)+(f[(f[i>>2]|0)+4>>2]|0)|0;e=(f[f[i>>2]>>2]|0)+(f[h>>2]|0)|0;if((f[k>>2]|0)>>>0<(f[m>>2]|0)>>>0){ih(a|0,e|0,f[k>>2]|0)|0;h=(f[i>>2]|0)+4|0;f[h>>2]=(f[h>>2]|0)+(f[k>>2]|0);f[k>>2]=(f[m>>2]|0)-(f[k>>2]|0);gh((f[f[i>>2]>>2]|0)+(f[(f[i>>2]|0)+4>>2]|0)|0,f[f[i>>2]>>2]|0,f[k>>2]|0)|0;m=(f[i>>2]|0)+4|0;f[m>>2]=(f[m>>2]|0)+(f[k>>2]|0);break}else{ih(a|0,e|0,f[m>>2]|0)|0;k=(f[i>>2]|0)+4|0;f[k>>2]=(f[k>>2]|0)+(f[m>>2]|0);break}}else do{k=Ye(f[i>>2]|0,f[g>>2]|0)|0;d[(f[f[i>>2]>>2]|0)+(f[(f[i>>2]|0)+4>>2]|0)>>0]=k;k=(f[i>>2]|0)+4|0;f[k>>2]=(f[k>>2]|0)+1;k=(f[m>>2]|0)+-1|0;f[m>>2]=k}while(k>>>0>0);while(0);if((f[(f[i>>2]|0)+8>>2]|0)>>>0>=(f[(f[i>>2]|0)+4>>2]|0)>>>0){m=f[j>>2]|0;m=f[m>>2]|0;m=(m|0)!=0;l=n;return m|0}f[(f[i>>2]|0)+8>>2]=f[(f[i>>2]|0)+4>>2];m=f[j>>2]|0;m=f[m>>2]|0;m=(m|0)!=0;l=n;return m|0}function af(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=lg(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,10)|0;l=d;return b|0}function bf(a){a=a|0;var b=0,c=0,d=0,e=0;d=l;l=l+32|0;b=d+8|0;e=d+16|0;c=d;f[e>>2]=a;e=zd(f[e>>2]|0)|0;a=c;f[a>>2]=e;f[a+4>>2]=G;a=c;if((f[a>>2]|0)==-1?(f[a+4>>2]|0)==-1:0){c=b;f[c>>2]=-1;f[c+4>>2]=-1;c=b;b=c;b=f[b>>2]|0;c=c+4|0;c=f[c>>2]|0;G=c;l=d;return b|0}else{a=c;a=hh(65664,0,f[a>>2]|0,f[a+4>>2]|0)|0;c=b;f[c>>2]=a;f[c+4>>2]=G;c=b;b=c;b=f[b>>2]|0;c=c+4|0;c=f[c>>2]|0;G=c;l=d;return b|0}return 0}function cf(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0;h=l;l=l+16|0;i=h+12|0;e=h+8|0;c=h+4|0;g=h;f[i>>2]=a;f[e>>2]=b;f[c>>2]=f[i>>2];if((f[f[c>>2]>>2]|0)>>>0>4096)c=f[f[c>>2]>>2]|0;else c=4096;f[g>>2]=c;f[g>>2]=(f[g>>2]|0)+-1;f[g>>2]=f[g>>2]|(f[g>>2]|0)>>>2;f[g>>2]=f[g>>2]|(f[g>>2]|0)>>>3;f[g>>2]=f[g>>2]|(f[g>>2]|0)>>>4;f[g>>2]=f[g>>2]|(f[g>>2]|0)>>>8;f[g>>2]=f[g>>2]|(f[g>>2]|0)>>>16;if((f[g>>2]|0)==-1){d[f[e>>2]>>0]=40;l=h;return 0}else{c=(ff((f[g>>2]|0)+1|0)|0)-24&255;d[f[e>>2]>>0]=c;l=h;return 0}return 0}function df(a){a=a|0;var b=0,c=0,d=0;c=l;l=l+16|0;d=c+4|0;b=c;f[d>>2]=a;f[b>>2]=f[d>>2];a=oh(f[f[b>>2]>>2]|0,0,3,0)|0;d=G;if(!(d>>>0>0|(d|0)==0&a>>>0>1048576)){a=0;b=1048576;G=a;l=c;return b|0}b=oh(f[f[b>>2]>>2]|0,0,3,0)|0;a=G;G=a;l=c;return b|0}function ef(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;h=n+20|0;i=n+16|0;j=n+12|0;g=n+8|0;k=n+4|0;m=n;f[i>>2]=a;f[j>>2]=b;f[g>>2]=c;f[k>>2]=e;if(!(f[g>>2]|0)){f[h>>2]=11;m=f[h>>2]|0;l=n;return m|0}do if(!(f[f[i>>2]>>2]|0)){c=hb(65664,f[j>>2]|0)|0;f[f[i>>2]>>2]=c;if(f[f[i>>2]>>2]|0){f[(f[i>>2]|0)+4>>2]=5;f[(f[i>>2]|0)+8>>2]=8;f[(f[i>>2]|0)+12>>2]=8;f[(f[f[i>>2]>>2]|0)+4>>2]=0;break}f[h>>2]=5;m=f[h>>2]|0;l=n;return m|0}while(0);b=(f[f[i>>2]>>2]|0)+8|0;e=f[g>>2]|0;a=b+96|0;do{f[b>>2]=f[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(a|0));f[f[f[i>>2]>>2]>>2]=0;d[(f[f[i>>2]>>2]|0)+104>>0]=1;d[(f[f[i>>2]>>2]|0)+105>>0]=0;if(!(f[(f[f[i>>2]>>2]|0)+8+4>>2]|0))e=1;else e=(f[(f[f[i>>2]>>2]|0)+8+8>>2]|0)==0;d[(f[f[i>>2]>>2]|0)+106>>0]=e&1;f[m>>2]=xd((f[f[i>>2]>>2]|0)+4|0,f[j>>2]|0,(f[f[i>>2]>>2]|0)+8|0,f[k>>2]|0)|0;if(f[m>>2]|0){f[h>>2]=f[m>>2];m=f[h>>2]|0;l=n;return m|0}if(((f[f[k>>2]>>2]|0)+(f[(f[k>>2]|0)+4>>2]|0)|0)>>>0<65536)f[f[k>>2]>>2]=65536-(f[(f[k>>2]|0)+4>>2]|0);f[h>>2]=0;m=f[h>>2]|0;l=n;return m|0}function ff(a){a=a|0;var b=0,c=0,d=0,e=0;e=l;l=l+16|0;d=e+4|0;b=e;f[b>>2]=a;c=f[b>>2]|0;if((f[b>>2]|0)>>>0<8192){f[d>>2]=g[18256+c>>0];a=f[d>>2]|0;l=e;return a|0}a=f[b>>2]|0;if(c>>>0<33554432){f[d>>2]=(g[18256+(a>>>12)>>0]|0)+24;a=f[d>>2]|0;l=e;return a|0}else{f[d>>2]=(g[18256+(a>>>24)>>0]|0)+48;a=f[d>>2]|0;l=e;return a|0}return 0}function gf(a,b,c,e,g){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+48|0;h=u+40|0;i=u+36|0;j=u+32|0;k=u+28|0;m=u+24|0;n=u+20|0;s=u+16|0;o=u+12|0;p=u+8|0;q=u+4|0;r=u;f[i>>2]=a;f[j>>2]=b;f[k>>2]=c;f[m>>2]=e;f[n>>2]=g;a:while(1){if((f[f[m>>2]>>2]|0)>>>0>=(f[n>>2]|0)>>>0){t=29;break}switch(f[f[i>>2]>>2]|0){case 0:{if(!(kf(f[j>>2]|0)|0)){t=5;break a}if(d[(f[i>>2]|0)+105>>0]&1?(f[s>>2]=wd(f[(f[i>>2]|0)+4>>2]|0,(f[i>>2]|0)+8|0)|0,(f[s>>2]|0)!=0):0){t=10;break a}f[(f[i>>2]|0)+108>>2]=0;f[(f[i>>2]|0)+112>>2]=0;f[f[i>>2]>>2]=1;t=12;break}case 4:{t=26;break}case 2:break;case 3:{kb((f[i>>2]|0)+120|0,(f[i>>2]|0)+116|0,3,f[k>>2]|0,f[m>>2]|0,f[n>>2]|0)|0;if((f[(f[i>>2]|0)+116>>2]|0)!=3){t=24;break a}f[f[i>>2]>>2]=4;t=26;break}case 1:{t=12;break}default:continue a}if((t|0)==26){t=0;nf(f[j>>2]|0,f[k>>2]|0,f[m>>2]|0,f[n>>2]|0,(f[i>>2]|0)+108|0);if(f[(f[i>>2]|0)+108>>2]|0){t=27;break}f[f[i>>2]>>2]=0;continue}do if((t|0)==12){t=0;f[o>>2]=2097152-(f[(f[i>>2]|0)+108>>2]|0);if((f[o>>2]|0)>>>0<(f[(f[j>>2]|0)+76>>2]|0)>>>0)f[p>>2]=0;else f[p>>2]=(f[(f[j>>2]|0)+20>>2]|0)-(f[(f[j>>2]|0)+24>>2]|0)+(f[o>>2]|0)-(f[(f[j>>2]|0)+76>>2]|0);f[q>>2]=(f[(f[j>>2]|0)+20>>2]|0)-(f[(f[j>>2]|0)+24>>2]|0);f[r>>2]=vd(f[(f[i>>2]|0)+4>>2]|0,f[j>>2]|0,(f[i>>2]|0)+120+6|0,(f[i>>2]|0)+112|0,65536,f[p>>2]|0)|0;b=(f[i>>2]|0)+108|0;f[b>>2]=(f[b>>2]|0)+((f[(f[j>>2]|0)+20>>2]|0)-(f[(f[j>>2]|0)+24>>2]|0)-(f[q>>2]|0));if((f[r>>2]|0)!=1){t=16;break a}if((f[(f[i>>2]|0)+112>>2]|0)>>>0>=(f[(f[i>>2]|0)+108>>2]|0)>>>0){b=(f[i>>2]|0)+108|0;f[b>>2]=(f[b>>2]|0)+(f[(f[j>>2]|0)+24>>2]|0);f[(f[j>>2]|0)+24>>2]=0;lf(f[i>>2]|0);d[(f[i>>2]|0)+105>>0]=1;f[f[i>>2]>>2]=3;continue a}else{mf(f[i>>2]|0);f[f[i>>2]>>2]=2;break}}while(0);kb((f[i>>2]|0)+120|0,(f[i>>2]|0)+116|0,f[(f[i>>2]|0)+112>>2]|0,f[k>>2]|0,f[m>>2]|0,f[n>>2]|0)|0;if((f[(f[i>>2]|0)+116>>2]|0)!=(f[(f[i>>2]|0)+112>>2]|0)){t=21;break}f[f[i>>2]>>2]=0}if((t|0)==5){if((f[(f[j>>2]|0)+80>>2]|0)==3){p=f[m>>2]|0;b=f[p>>2]|0;f[p>>2]=b+1;d[(f[k>>2]|0)+b>>0]=0}f[h>>2]=(f[(f[j>>2]|0)+80>>2]|0)==0?0:1;b=f[h>>2]|0;l=u;return b|0}else if((t|0)==10){f[h>>2]=f[s>>2];b=f[h>>2]|0;l=u;return b|0}else if((t|0)==16){f[h>>2]=0;b=f[h>>2]|0;l=u;return b|0}else if((t|0)==21){f[h>>2]=0;b=f[h>>2]|0;l=u;return b|0}else if((t|0)==24){f[h>>2]=0;b=f[h>>2]|0;l=u;return b|0}else if((t|0)==27){f[h>>2]=0;b=f[h>>2]|0;l=u;return b|0}else if((t|0)==29){f[h>>2]=0;b=f[h>>2]|0;l=u;return b|0}return 0}function hf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;e=c+4|0;d=c;f[e>>2]=a;f[d>>2]=b;jb(f[(f[e>>2]|0)+4>>2]|0,f[d>>2]|0);jb(f[e>>2]|0,f[d>>2]|0);l=c;return}function jf(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;c=j+12|0;e=j+8|0;g=j+4|0;h=j;f[e>>2]=a;f[g>>2]=b;if((f[(f[g>>2]|0)+8>>2]|0)!=0?(f[f[e>>2]>>2]|0)==0:0){f[h>>2]=f[(f[g>>2]|0)+8>>2];if(!(((f[(f[e>>2]|0)+8+12>>2]|0)==(f[(f[h>>2]|0)+12>>2]|0)?(f[(f[e>>2]|0)+8+16>>2]|0)==(f[(f[h>>2]|0)+16>>2]|0):0)?(f[(f[e>>2]|0)+8+20>>2]|0)==(f[(f[h>>2]|0)+20>>2]|0):0))i=7;do if((i|0)==7){if((((f[(f[h>>2]|0)+12>>2]|0)>>>0<=4?(f[(f[h>>2]|0)+16>>2]|0)>>>0<=4:0)?((f[(f[h>>2]|0)+12>>2]|0)+(f[(f[h>>2]|0)+16>>2]|0)|0)>>>0<=4:0)?(f[(f[h>>2]|0)+20>>2]|0)>>>0<=4:0){f[(f[e>>2]|0)+8+12>>2]=f[(f[h>>2]|0)+12>>2];f[(f[e>>2]|0)+8+16>>2]=f[(f[h>>2]|0)+16>>2];f[(f[e>>2]|0)+8+20>>2]=f[(f[h>>2]|0)+20>>2];d[(f[e>>2]|0)+104>>0]=1;d[(f[e>>2]|0)+105>>0]=1;break}f[c>>2]=8;c=f[c>>2]|0;l=j;return c|0}while(0);f[c>>2]=0;c=f[c>>2]|0;l=j;return c|0}f[c>>2]=11;c=f[c>>2]|0;l=j;return c|0}function kf(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return(f[(f[b>>2]|0)+32>>2]|0)-(f[(f[b>>2]|0)+20>>2]|0)+(f[(f[b>>2]|0)+24>>2]|0)|0}function lf(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;a=(f[b>>2]|0)+120|0;if(d[(f[b>>2]|0)+106>>0]&1)d[a>>0]=1;else d[a>>0]=2;d[(f[b>>2]|0)+106>>0]=0;d[(f[b>>2]|0)+120+1>>0]=((f[(f[b>>2]|0)+108>>2]|0)-1|0)>>>8;d[(f[b>>2]|0)+120+2>>0]=(f[(f[b>>2]|0)+108>>2]|0)-1;f[(f[b>>2]|0)+116>>2]=0;l=c;return}function mf(a){a=a|0;var b=0,c=0,e=0,h=0,i=0;h=l;l=l+16|0;b=h+8|0;c=h+4|0;e=h;f[b>>2]=a;do if(d[(f[b>>2]|0)+104>>0]&1){f[c>>2]=0;a=(f[b>>2]|0)+120+(f[c>>2]|0)|0;if(d[(f[b>>2]|0)+106>>0]&1){d[a>>0]=-32;break}else{d[a>>0]=-64;break}}else{f[c>>2]=1;a=(f[b>>2]|0)+120+(f[c>>2]|0)|0;if(d[(f[b>>2]|0)+105>>0]&1){d[a>>0]=-96;break}else{d[a>>0]=-128;break}}while(0);f[(f[b>>2]|0)+116>>2]=f[c>>2];f[e>>2]=(f[(f[b>>2]|0)+108>>2]|0)-1;a=(f[e>>2]|0)>>>16;i=f[c>>2]|0;f[c>>2]=i+1;i=(f[b>>2]|0)+120+i|0;d[i>>0]=(g[i>>0]|0)+a;i=(f[e>>2]|0)>>>8&255;a=f[c>>2]|0;f[c>>2]=a+1;d[(f[b>>2]|0)+120+a>>0]=i;a=f[e>>2]&255;i=f[c>>2]|0;f[c>>2]=i+1;d[(f[b>>2]|0)+120+i>>0]=a;f[e>>2]=(f[(f[b>>2]|0)+112>>2]|0)-1;i=(f[e>>2]|0)>>>8&255;a=f[c>>2]|0;f[c>>2]=a+1;d[(f[b>>2]|0)+120+a>>0]=i;e=f[e>>2]&255;a=f[c>>2]|0;f[c>>2]=a+1;d[(f[b>>2]|0)+120+a>>0]=e;if(!(d[(f[b>>2]|0)+104>>0]&1)){a=f[b>>2]|0;a=a+104|0;d[a>>0]=0;a=f[b>>2]|0;a=a+105|0;d[a>>0]=0;a=f[b>>2]|0;a=a+106|0;d[a>>0]=0;a=f[b>>2]|0;a=a+112|0;b=f[a>>2]|0;b=b+6|0;f[a>>2]=b;l=h;return}Ad((f[b>>2]|0)+8|0,(f[b>>2]|0)+120+(f[c>>2]|0)|0)|0;a=f[b>>2]|0;a=a+104|0;d[a>>0]=0;a=f[b>>2]|0;a=a+105|0;d[a>>0]=0;a=f[b>>2]|0;a=a+106|0;d[a>>0]=0;a=f[b>>2]|0;a=a+112|0;b=f[a>>2]|0;b=b+6|0;f[a>>2]=b;l=h;return}function nf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+32|0;h=n+24|0;i=n+20|0;j=n+16|0;o=n+12|0;k=n+8|0;g=n+4|0;m=n;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[o>>2]=d;f[k>>2]=e;f[g>>2]=(f[o>>2]|0)-(f[f[j>>2]>>2]|0);if((f[g>>2]|0)>>>0<(f[f[k>>2]>>2]|0)>>>0)e=f[g>>2]|0;else e=f[f[k>>2]>>2]|0;f[m>>2]=e;gh((f[i>>2]|0)+(f[f[j>>2]>>2]|0)|0,(f[f[h>>2]>>2]|0)+(f[(f[h>>2]|0)+20>>2]|0)+(0-(f[f[k>>2]>>2]|0))|0,f[m>>2]|0)|0;j=f[j>>2]|0;f[j>>2]=(f[j>>2]|0)+(f[m>>2]|0);k=f[k>>2]|0;f[k>>2]=(f[k>>2]|0)-(f[m>>2]|0);l=n;return}function of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=Mg(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,11)|0;l=d;return b|0}function pf(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=Ne(f[c>>2]|0)|0;a=hh(136,0,a|0,G|0)|0;l=b;return a|0}function qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;e=m+20|0;h=m+16|0;i=m+12|0;j=m+8|0;n=m+4|0;k=m;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[n>>2]=d;if((f[n>>2]|0)!=1){f[e>>2]=8;d=f[e>>2]|0;l=m;return d|0}if((g[f[j>>2]>>0]|0)&192){f[e>>2]=8;d=f[e>>2]|0;l=m;return d|0}if((g[f[j>>2]>>0]|0|0)>40){f[e>>2]=8;d=f[e>>2]|0;l=m;return d|0}f[k>>2]=hb(96,f[i>>2]|0)|0;if(!(f[k>>2]|0)){f[e>>2]=5;d=f[e>>2]|0;l=m;return d|0}if((g[f[j>>2]>>0]|0|0)==40)f[f[k>>2]>>2]=-1;else{f[f[k>>2]>>2]=2|(g[f[j>>2]>>0]|0)&1;d=f[k>>2]|0;f[d>>2]=f[d>>2]<<((g[f[j>>2]>>0]|0|0)/2|0)+11}f[(f[k>>2]|0)+4>>2]=0;f[(f[k>>2]|0)+8>>2]=0;f[f[h>>2]>>2]=f[k>>2];f[e>>2]=0;d=f[e>>2]|0;l=m;return d|0}function rf(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;i=o+40|0;j=o+36|0;k=o+32|0;g=o+28|0;m=o+24|0;h=o+4|0;n=o;f[j>>2]=a;f[k>>2]=b;f[g>>2]=c;f[m>>2]=e;do if(!(f[f[j>>2]>>2]|0)){c=hb(136,f[k>>2]|0)|0;f[f[j>>2]>>2]=c;if(f[f[j>>2]>>2]|0){f[(f[j>>2]|0)+4>>2]=6;f[(f[j>>2]|0)+16>>2]=9;c=(f[f[j>>2]>>2]|0)+8|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[c>>2]=f[h>>2];f[c+4>>2]=f[h+4>>2];f[c+8>>2]=f[h+8>>2];f[c+12>>2]=f[h+12>>2];f[c+16>>2]=f[h+16>>2];break}f[i>>2]=5;m=f[i>>2]|0;l=o;return m|0}while(0);f[n>>2]=f[g>>2];f[f[f[j>>2]>>2]>>2]=0;d[(f[f[j>>2]>>2]|0)+36>>0]=1;if(!(f[(f[n>>2]|0)+4>>2]|0))g=1;else g=(f[(f[n>>2]|0)+8>>2]|0)==0;d[(f[f[j>>2]>>2]|0)+37>>0]=g&1;f[i>>2]=Ke((f[f[j>>2]>>2]|0)+8|0,f[k>>2]|0,f[n>>2]|0,f[m>>2]|0)|0;m=f[i>>2]|0;l=o;return m|0}function sf(a,b,c,e,h){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+48|0;p=t+36|0;q=t+32|0;r=t+28|0;i=t+24|0;j=t+20|0;k=t+16|0;m=t+12|0;n=t+8|0;s=t+4|0;o=t;f[q>>2]=a;f[r>>2]=b;f[i>>2]=c;f[j>>2]=e;f[k>>2]=h;a:while(1){if((f[f[j>>2]>>2]|0)>>>0>=(f[k>>2]|0)>>>0?(f[f[q>>2]>>2]|0)!=6:0){a=41;break}switch(f[f[q>>2]>>2]|0){case 3:{e=f[j>>2]|0;h=f[e>>2]|0;f[e>>2]=h+1;f[(f[q>>2]|0)+32>>2]=(g[(f[i>>2]|0)+h>>0]|0)<<8;f[f[q>>2]>>2]=4;continue a}case 0:{f[m>>2]=g[(f[i>>2]|0)+(f[f[j>>2]>>2]|0)>>0];h=f[j>>2]|0;f[h>>2]=(f[h>>2]|0)+1;if(!(f[m>>2]|0)){a=6;break a}a=f[q>>2]|0;if(!((f[m>>2]|0)>>>0>=224|(f[m>>2]|0)==1)){if(d[a+37>>0]&1){a=10;break a}}else{d[a+36>>0]=1;d[(f[q>>2]|0)+37>>0]=1}a=f[m>>2]|0;do if((f[m>>2]|0)>>>0>=128){f[(f[q>>2]|0)+28>>2]=(a&31)<<16;f[f[q>>2]>>2]=1;a=(f[q>>2]|0)+36|0;if((f[m>>2]|0)>>>0>=192){d[a>>0]=0;f[(f[q>>2]|0)+4>>2]=5;break}if(d[a>>0]&1){a=15;break a}f[(f[q>>2]|0)+4>>2]=6;if((f[m>>2]|0)>>>0>=160)Kh[f[(f[q>>2]|0)+8+8>>2]&31](f[(f[q>>2]|0)+8>>2]|0,(f[q>>2]|0)+40|0)}else{if(a>>>0>2){a=19;break a}f[f[q>>2]>>2]=3;f[(f[q>>2]|0)+4>>2]=7}while(0);if(d[(f[q>>2]|0)+37>>0]&1){a=22;break a}else continue a}case 4:{h=f[j>>2]|0;e=f[h>>2]|0;f[h>>2]=e+1;h=(f[q>>2]|0)+32|0;f[h>>2]=(f[h>>2]|0)+((g[(f[i>>2]|0)+e>>0]|0)+1);f[f[q>>2]>>2]=f[(f[q>>2]|0)+4>>2];continue a}case 1:{h=f[j>>2]|0;e=f[h>>2]|0;f[h>>2]=e+1;h=(f[q>>2]|0)+28|0;f[h>>2]=(f[h>>2]|0)+((g[(f[i>>2]|0)+e>>0]|0)<<8);f[f[q>>2]>>2]=2;continue a}case 5:{e=(f[q>>2]|0)+40|0;c=f[j>>2]|0;h=f[c>>2]|0;f[c>>2]=h+1;if(Me(e,d[(f[i>>2]|0)+h>>0]|0)|0){a=28;break a}Kh[f[(f[q>>2]|0)+8+8>>2]&31](f[(f[q>>2]|0)+8>>2]|0,(f[q>>2]|0)+40|0);f[f[q>>2]>>2]=6;continue a}case 2:{h=f[j>>2]|0;e=f[h>>2]|0;f[h>>2]=e+1;h=(f[q>>2]|0)+28|0;f[h>>2]=(f[h>>2]|0)+((g[(f[i>>2]|0)+e>>0]|0)+1);f[f[q>>2]>>2]=3;Mh[f[(f[q>>2]|0)+8+12>>2]&1](f[(f[q>>2]|0)+8>>2]|0,f[(f[q>>2]|0)+28>>2]|0,0);continue a}case 6:{f[n>>2]=f[f[j>>2]>>2];f[s>>2]=Ph[f[(f[q>>2]|0)+8+4>>2]&15](f[(f[q>>2]|0)+8>>2]|0,f[r>>2]|0,f[i>>2]|0,f[j>>2]|0,f[k>>2]|0)|0;f[o>>2]=(f[f[j>>2]>>2]|0)-(f[n>>2]|0);if((f[o>>2]|0)>>>0>(f[(f[q>>2]|0)+32>>2]|0)>>>0){a=31;break a}h=(f[q>>2]|0)+32|0;f[h>>2]=(f[h>>2]|0)-(f[o>>2]|0);if((f[s>>2]|0)!=1){a=33;break a}if(f[(f[q>>2]|0)+32>>2]|0){a=35;break a}f[f[q>>2]>>2]=0;continue a}case 7:{vf(f[r>>2]|0,f[i>>2]|0,f[j>>2]|0,f[k>>2]|0,(f[q>>2]|0)+32|0);if(f[(f[q>>2]|0)+32>>2]|0){a=38;break a}f[f[q>>2]>>2]=0;continue a}default:{a=40;break a}}}switch(a|0){case 6:{f[p>>2]=1;n=f[p>>2]|0;l=t;return n|0}case 10:{f[p>>2]=9;n=f[p>>2]|0;l=t;return n|0}case 15:{f[p>>2]=9;n=f[p>>2]|0;l=t;return n|0}case 19:{f[p>>2]=9;n=f[p>>2]|0;l=t;return n|0}case 22:{d[(f[q>>2]|0)+37>>0]=0;uf(f[r>>2]|0);f[p>>2]=0;n=f[p>>2]|0;l=t;return n|0}case 28:{f[p>>2]=9;n=f[p>>2]|0;l=t;return n|0}case 31:{f[p>>2]=9;n=f[p>>2]|0;l=t;return n|0}case 33:{f[p>>2]=f[s>>2];n=f[p>>2]|0;l=t;return n|0}case 35:{f[p>>2]=9;n=f[p>>2]|0;l=t;return n|0}case 38:{f[p>>2]=0;n=f[p>>2]|0;l=t;return n|0}case 40:{f[p>>2]=11;n=f[p>>2]|0;l=t;return n|0}case 41:{f[p>>2]=0;n=f[p>>2]|0;l=t;return n|0}}return 0}function tf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;e=c+4|0;d=c;f[e>>2]=a;f[d>>2]=b;jb(f[(f[e>>2]|0)+8>>2]|0,f[d>>2]|0);jb(f[e>>2]|0,f[d>>2]|0);l=c;return}function uf(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;d[(f[c>>2]|0)+20>>0]=1;l=b;return}function vf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;g=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;f[g>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=d;f[k>>2]=e;if(((f[j>>2]|0)-(f[f[i>>2]>>2]|0)|0)>>>0>(f[f[k>>2]>>2]|0)>>>0)f[j>>2]=(f[f[i>>2]>>2]|0)+(f[f[k>>2]>>2]|0);d=kb(f[h>>2]|0,f[i>>2]|0,f[j>>2]|0,f[f[g>>2]>>2]|0,(f[g>>2]|0)+4|0,f[(f[g>>2]|0)+12>>2]|0)|0;e=f[k>>2]|0;f[e>>2]=(f[e>>2]|0)-d;if((f[(f[g>>2]|0)+4>>2]|0)>>>0<=(f[(f[g>>2]|0)+8>>2]|0)>>>0){l=m;return}f[(f[g>>2]|0)+8>>2]=f[(f[g>>2]|0)+4>>2];l=m;return}function wf(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+80|0;g=m+64|0;h=m+60|0;i=m+56|0;j=m+52|0;e=m;k=m+48|0;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;do if(!(f[f[h>>2]>>2]|0)){b=hb(312,f[i>>2]|0)|0;f[f[h>>2]>>2]=b;if(f[f[h>>2]>>2]|0){f[(f[h>>2]|0)+24>>2]=10;b=f[f[h>>2]>>2]|0;a=e;c=a+48|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(c|0));a=e+8|0;f[a>>2]=-1;f[a+4>>2]=-1;f[e+16>>2]=0;a=b;c=a+48|0;do{f[a>>2]=f[e>>2];a=a+4|0;e=e+4|0}while((a|0)<(c|0));break}f[g>>2]=5;e=f[g>>2]|0;l=m;return e|0}while(0);e=xf(f[(f[j>>2]|0)+12>>2]|0)|0;if((e|0)==-1&(G|0)==-1){f[g>>2]=8;e=f[g>>2]|0;l=m;return e|0}else{f[k>>2]=f[(f[j>>2]|0)+12>>2];f[(f[f[h>>2]>>2]|0)+48>>2]=f[(f[k>>2]|0)+4>>2];d[(f[f[h>>2]>>2]|0)+52>>0]=0;ch((f[f[h>>2]>>2]|0)+53|0,0,256)|0;f[g>>2]=lb(f[f[h>>2]>>2]|0,f[i>>2]|0,(f[j>>2]|0)+16|0)|0;e=f[g>>2]|0;l=m;return e|0}return 0}function xf(a){a=a|0;var b=0,c=0,d=0,e=0;c=l;l=l+16|0;b=c;e=c+12|0;d=c+8|0;f[e>>2]=a;f[d>>2]=f[e>>2];if((((f[d>>2]|0)!=0?(f[f[d>>2]>>2]|0)==0:0)?(f[(f[d>>2]|0)+4>>2]|0)>>>0>=1:0)?(f[(f[d>>2]|0)+4>>2]|0)>>>0<=256:0){a=b;f[a>>2]=312;f[a+4>>2]=0}else{a=b;f[a>>2]=-1;f[a+4>>2]=-1}G=f[b+4>>2]|0;l=c;return f[b>>2]|0}function yf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;e=c+4|0;d=c;f[e>>2]=a;f[d>>2]=b;mb(f[e>>2]|0,f[d>>2]|0);jb(f[e>>2]|0,f[d>>2]|0);l=c;return}function zf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;f[(f[h>>2]|0)+20>>2]=6;f[(f[h>>2]|0)+40>>2]=12;b=wf(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0)|0;l=d;return b|0}function Af(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0;i=l;l=l+16|0;c=i+12|0;e=i+8|0;g=i+4|0;h=i;f[e>>2]=a;f[g>>2]=b;a=xf(f[e>>2]|0)|0;if((a|0)==-1&(G|0)==-1){f[c>>2]=11;c=f[c>>2]|0;l=i;return c|0}else{f[h>>2]=f[e>>2];d[f[g>>2]>>0]=(f[(f[h>>2]|0)+4>>2]|0)-1;f[c>>2]=0;c=f[c>>2]|0;l=i;return c|0}return 0}function Bf(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+64|0;k=z+52|0;m=z+48|0;n=z+44|0;o=z+40|0;p=z+36|0;q=z+32|0;r=z+28|0;s=z+24|0;t=z+20|0;y=z+16|0;u=z+12|0;v=z+8|0;x=z+4|0;w=z;f[k>>2]=a;f[m>>2]=b;f[n>>2]=c;f[o>>2]=d;f[p>>2]=e;f[q>>2]=g;f[r>>2]=h;f[s>>2]=i;f[t>>2]=j;if(f[(f[k>>2]|0)+20>>2]|0){f[w>>2]=f[f[r>>2]>>2];f[y>>2]=Jh[f[(f[k>>2]|0)+20>>2]&15](f[f[k>>2]>>2]|0,f[m>>2]|0,f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0)|0;Ef(f[k>>2]|0,(f[q>>2]|0)+(f[w>>2]|0)|0,(f[f[r>>2]>>2]|0)-(f[w>>2]|0)|0);x=f[y>>2]|0;l=z;return x|0}f[u>>2]=(f[p>>2]|0)-(f[f[o>>2]>>2]|0);f[v>>2]=(f[s>>2]|0)-(f[f[r>>2]>>2]|0);f[x>>2]=(f[u>>2]|0)>>>0<(f[v>>2]|0)>>>0?f[u>>2]|0:f[v>>2]|0;Df(f[k>>2]|0,(f[n>>2]|0)+(f[f[o>>2]>>2]|0)|0,(f[q>>2]|0)+(f[f[r>>2]>>2]|0)|0,f[x>>2]|0);w=f[o>>2]|0;f[w>>2]=(f[w>>2]|0)+(f[x>>2]|0);w=f[r>>2]|0;f[w>>2]=(f[w>>2]|0)+(f[x>>2]|0);if(f[t>>2]|0)k=(f[f[o>>2]>>2]|0)==(f[p>>2]|0);else k=0;f[y>>2]=k?1:0;x=f[y>>2]|0;l=z;return x|0}function Cf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=l;l=l+16|0;i=e+12|0;h=e+8|0;g=e;f[i>>2]=a;f[h>>2]=b;f[e+4>>2]=c;f[g>>2]=d;b=nb(f[i>>2]|0,f[h>>2]|0,(f[g>>2]|0)+16|0)|0;l=e;return b|0}function Df(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+32|0;h=p+20|0;i=p+16|0;j=p+12|0;k=p+8|0;m=p+4|0;n=p;o=p+24|0;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[k>>2]=e;f[m>>2]=f[(f[h>>2]|0)+48>>2];f[n>>2]=0;while(1){if((f[n>>2]|0)>>>0>=(f[k>>2]|0)>>>0)break;d[o>>0]=d[(f[h>>2]|0)+53+((f[m>>2]|0)+(g[(f[h>>2]|0)+52>>0]|0)&255)>>0]|0;c=d[(f[i>>2]|0)+(f[n>>2]|0)>>0]|0;b=(f[h>>2]|0)+52|0;e=d[b>>0]|0;d[b>>0]=e+-1<<24>>24;d[(f[h>>2]|0)+53+(e&255)>>0]=c;d[(f[j>>2]|0)+(f[n>>2]|0)>>0]=(g[(f[i>>2]|0)+(f[n>>2]|0)>>0]|0)-(g[o>>0]|0);f[n>>2]=(f[n>>2]|0)+1}l=p;return}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;e=n+16|0;h=n+12|0;i=n+8|0;j=n+4|0;k=n;m=n+20|0;f[e>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=f[(f[e>>2]|0)+48>>2];f[k>>2]=0;while(1){if((f[k>>2]|0)>>>0>=(f[i>>2]|0)>>>0)break;d[m>>0]=d[(f[e>>2]|0)+53+((f[j>>2]|0)+(g[(f[e>>2]|0)+52>>0]|0)&255)>>0]|0;a=d[(f[h>>2]|0)+(f[k>>2]|0)>>0]|0;c=(f[e>>2]|0)+52|0;b=d[c>>0]|0;d[c>>0]=b+-1<<24>>24;d[(f[e>>2]|0)+53+(b&255)>>0]=a;b=(f[h>>2]|0)+(f[k>>2]|0)|0;d[b>>0]=(g[b>>0]|0)-(g[m>>0]|0);f[k>>2]=(f[k>>2]|0)+1}l=n;return}function Ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;f[(f[h>>2]|0)+20>>2]=7;b=wf(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0)|0;l=d;return b|0}function Gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;e=m+20|0;h=m+16|0;i=m+12|0;j=m+8|0;n=m+4|0;k=m;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[n>>2]=d;if((f[n>>2]|0)!=1){f[e>>2]=8;d=f[e>>2]|0;l=m;return d|0}f[k>>2]=hb(32,f[i>>2]|0)|0;if(!(f[k>>2]|0)){f[e>>2]=5;d=f[e>>2]|0;l=m;return d|0}else{f[f[k>>2]>>2]=0;f[(f[k>>2]|0)+4>>2]=(g[f[j>>2]>>0]|0)+1;f[f[h>>2]>>2]=f[k>>2];f[e>>2]=0;d=f[e>>2]|0;l=m;return d|0}return 0}function Hf(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;m=l;l=l+48|0;q=m+40|0;w=m+36|0;v=m+32|0;u=m+28|0;t=m+24|0;p=m+20|0;o=m+16|0;s=m+12|0;r=m+8|0;n=m+4|0;k=m;f[q>>2]=a;f[w>>2]=b;f[v>>2]=c;f[u>>2]=d;f[t>>2]=e;f[p>>2]=g;f[o>>2]=h;f[s>>2]=i;f[r>>2]=j;f[n>>2]=f[f[o>>2]>>2];f[k>>2]=Jh[f[(f[q>>2]|0)+20>>2]&15](f[f[q>>2]>>2]|0,f[w>>2]|0,f[v>>2]|0,f[u>>2]|0,f[t>>2]|0,f[p>>2]|0,f[o>>2]|0,f[s>>2]|0,f[r>>2]|0)|0;If(f[q>>2]|0,(f[p>>2]|0)+(f[n>>2]|0)|0,(f[f[o>>2]>>2]|0)-(f[n>>2]|0)|0);l=m;return f[k>>2]|0}function If(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;f[e>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=f[(f[e>>2]|0)+48>>2];f[k>>2]=0;while(1){if((f[k>>2]|0)>>>0>=(f[i>>2]|0)>>>0)break;a=(f[h>>2]|0)+(f[k>>2]|0)|0;d[a>>0]=(g[a>>0]|0)+(g[(f[e>>2]|0)+53+((f[j>>2]|0)+(g[(f[e>>2]|0)+52>>0]|0)&255)>>0]|0);a=d[(f[h>>2]|0)+(f[k>>2]|0)>>0]|0;c=(f[e>>2]|0)+52|0;b=d[c>>0]|0;d[c>>0]=b+-1<<24>>24;d[(f[e>>2]|0)+53+(b&255)>>0]=a;f[k>>2]=(f[k>>2]|0)+1}l=m;return}function Jf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;e=l;l=l+16|0;d=e+8|0;g=e+4|0;c=e;f[d>>2]=a;f[g>>2]=b;f[c>>2]=f[g>>2];if(!(f[c>>2]|0))c=1;else c=(f[f[c>>2]>>2]|0)==0;f[f[d>>2]>>2]=c?0:4;l=e;return 0}function Kf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=l;l=l+16|0;c=g+12|0;h=g+8|0;d=g+4|0;e=g;f[h>>2]=a;f[d>>2]=b;f[e>>2]=f[h>>2];if((f[e>>2]|0)!=0?(f[f[e>>2]>>2]|0)!=0:0){Lf(f[d>>2]|0,f[f[e>>2]>>2]|0);f[c>>2]=0;c=f[c>>2]|0;l=g;return c|0}f[c>>2]=0;c=f[c>>2]|0;l=g;return c|0}function Lf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;d=c+4|0;e=c;f[d>>2]=a;f[e>>2]=b;f[f[d>>2]>>2]=f[e>>2];l=c;return}function Mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;h=m+20|0;i=m+16|0;j=m+12|0;e=m+8|0;g=m+4|0;k=m;f[i>>2]=a;f[j>>2]=b;f[e>>2]=c;f[g>>2]=d;if(!(f[g>>2]|0)){f[h>>2]=0;k=f[h>>2]|0;l=m;return k|0}if((f[g>>2]|0)!=4){f[h>>2]=8;k=f[h>>2]|0;l=m;return k|0}f[k>>2]=hb(4,f[j>>2]|0)|0;if(!(f[k>>2]|0)){f[h>>2]=5;k=f[h>>2]|0;l=m;return k|0}e=Nf(f[e>>2]|0)|0;f[f[k>>2]>>2]=e;e=f[k>>2]|0;if(!(f[f[k>>2]>>2]|0))jb(e,f[j>>2]|0);else f[f[i>>2]>>2]=e;f[h>>2]=0;k=f[h>>2]|0;l=m;return k|0}function Nf(a){a=a|0;var b=0,c=0,d=0;c=l;l=l+16|0;d=c+4|0;b=c;f[d>>2]=a;f[b>>2]=f[f[d>>2]>>2];l=c;return f[b>>2]|0}function Of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=Qf(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,1)|0;l=d;return b|0}function Pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=Qf(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,0)|0;l=d;return b|0}function Qf(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0;i=l;l=l+32|0;g=i+12|0;m=i+8|0;k=i+4|0;j=i+16|0;h=i;f[g>>2]=a;f[m>>2]=b;f[k>>2]=c;d[j>>0]=e&1;f[h>>2]=Sg(f[g>>2]|0,f[m>>2]|0,f[k>>2]|0,7,8,5,1,d[j>>0]&1)|0;if(f[h>>2]|0){g=f[h>>2]|0;l=i;return g|0}f[f[(f[f[g>>2]>>2]|0)+56>>2]>>2]=0;f[(f[(f[f[g>>2]>>2]|0)+56>>2]|0)+4>>2]=-5;g=f[h>>2]|0;l=i;return g|0}function Rf(a,b,c,e,h){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+64|0;j=A+52|0;k=A+48|0;m=A+44|0;n=A+57|0;o=A+40|0;i=A+36|0;w=A+32|0;x=A+28|0;u=A+24|0;q=A+20|0;p=A+56|0;v=A+16|0;s=A+12|0;y=A+8|0;r=A+4|0;t=A;f[k>>2]=a;f[m>>2]=b;d[n>>0]=c&1;f[o>>2]=e;f[i>>2]=h;f[w>>2]=f[f[k>>2]>>2];f[x>>2]=f[(f[k>>2]|0)+4>>2];if((f[i>>2]|0)>>>0<5){f[j>>2]=0;z=f[j>>2]|0;l=A;return z|0}if(((f[m>>2]|0)-(f[x>>2]|0)|0)>>>0>5)f[x>>2]=(f[m>>2]|0)-5;f[u>>2]=(f[i>>2]|0)-5;f[q>>2]=0;while(1){if((f[q>>2]|0)>>>0>(f[u>>2]|0)>>>0)break;d[p>>0]=d[(f[o>>2]|0)+(f[q>>2]|0)>>0]|0;if((g[p>>0]|0|0)!=232?(g[p>>0]|0|0)!=233:0){f[q>>2]=(f[q>>2]|0)+1;continue}f[v>>2]=(f[m>>2]|0)+(f[q>>2]|0)-(f[x>>2]|0);f[x>>2]=(f[m>>2]|0)+(f[q>>2]|0);a:do if((f[v>>2]|0)>>>0>5)f[w>>2]=0;else{f[s>>2]=0;while(1){if((f[s>>2]|0)>>>0>=(f[v>>2]|0)>>>0)break a;f[w>>2]=f[w>>2]&119;f[w>>2]=f[w>>2]<<1;f[s>>2]=(f[s>>2]|0)+1}}while(0);d[p>>0]=d[(f[o>>2]|0)+((f[q>>2]|0)+4)>>0]|0;if(!((g[p>>0]|0|0)!=0?(g[p>>0]|0|0)!=255:0))z=17;if(((z|0)==17?(z=0,d[26624+((f[w>>2]|0)>>>1&7)>>0]&1):0)?(f[w>>2]|0)>>>1>>>0<16:0){f[y>>2]=(g[p>>0]|0)<<24|(g[(f[o>>2]|0)+((f[q>>2]|0)+3)>>0]|0)<<16|(g[(f[o>>2]|0)+((f[q>>2]|0)+2)>>0]|0)<<8|(g[(f[o>>2]|0)+((f[q>>2]|0)+1)>>0]|0);while(1){e=f[y>>2]|0;i=(f[m>>2]|0)+(f[q>>2]|0)+5|0;if(d[n>>0]&1)f[r>>2]=e+i;else f[r>>2]=e-i;if(!(f[w>>2]|0))break;f[t>>2]=f[26632+((f[w>>2]|0)>>>1<<2)>>2];d[p>>0]=(f[r>>2]|0)>>>(24-(f[t>>2]<<3)|0);if((g[p>>0]|0|0)!=0?(g[p>>0]|0|0)!=255:0)break;f[y>>2]=f[r>>2]^(1<<32-(f[t>>2]<<3))-1}d[(f[o>>2]|0)+((f[q>>2]|0)+4)>>0]=~(((f[r>>2]|0)>>>24&1)-1);d[(f[o>>2]|0)+((f[q>>2]|0)+3)>>0]=(f[r>>2]|0)>>>16;d[(f[o>>2]|0)+((f[q>>2]|0)+2)>>0]=(f[r>>2]|0)>>>8;d[(f[o>>2]|0)+((f[q>>2]|0)+1)>>0]=f[r>>2];f[q>>2]=(f[q>>2]|0)+5;f[w>>2]=0;continue}f[q>>2]=(f[q>>2]|0)+1;f[w>>2]=f[w>>2]|1;if((g[p>>0]|0|0)!=0?(g[p>>0]|0|0)!=255:0)continue;f[w>>2]=f[w>>2]|16}f[f[k>>2]>>2]=f[w>>2];f[(f[k>>2]|0)+4>>2]=f[x>>2];f[j>>2]=f[q>>2];z=f[j>>2]|0;l=A;return z|0}function Sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=Uf(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,1)|0;l=d;return b|0}function Tf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=Uf(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,0)|0;l=d;return b|0}function Uf(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;k=g+8|0;j=g+4|0;i=g;h=g+12|0;f[k>>2]=a;f[j>>2]=b;f[i>>2]=c;d[h>>0]=e&1;b=Sg(f[k>>2]|0,f[j>>2]|0,f[i>>2]|0,8,0,4,4,d[h>>0]&1)|0;l=g;return b|0}function Vf(a,b,c,e,h){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;i=q+20|0;j=q+28|0;k=q+16|0;m=q+12|0;o=q+8|0;p=q+4|0;n=q;f[q+24>>2]=a;f[i>>2]=b;d[j>>0]=c&1;f[k>>2]=e;f[m>>2]=h;f[o>>2]=0;while(1){e=f[o>>2]|0;if(((f[o>>2]|0)+4|0)>>>0>(f[m>>2]|0)>>>0)break;if(((g[(f[k>>2]|0)+e>>0]|0)>>2|0)==18?((g[(f[k>>2]|0)+((f[o>>2]|0)+3)>>0]|0)&3|0)==1:0){f[p>>2]=((g[(f[k>>2]|0)+((f[o>>2]|0)+0)>>0]|0)&3)<<24|(g[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]|0)<<16|(g[(f[k>>2]|0)+((f[o>>2]|0)+2)>>0]|0)<<8|(g[(f[k>>2]|0)+((f[o>>2]|0)+3)>>0]|0)&-4;if(d[j>>0]&1)f[n>>2]=(f[i>>2]|0)+(f[o>>2]|0)+(f[p>>2]|0);else f[n>>2]=(f[p>>2]|0)-((f[i>>2]|0)+(f[o>>2]|0));d[(f[k>>2]|0)+((f[o>>2]|0)+0)>>0]=72|(f[n>>2]|0)>>>24&3;d[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]=(f[n>>2]|0)>>>16;d[(f[k>>2]|0)+((f[o>>2]|0)+2)>>0]=(f[n>>2]|0)>>>8;h=(f[k>>2]|0)+((f[o>>2]|0)+3)|0;d[h>>0]=(g[h>>0]|0)&3;h=(f[k>>2]|0)+((f[o>>2]|0)+3)|0;d[h>>0]=g[h>>0]|0|f[n>>2]}f[o>>2]=(f[o>>2]|0)+4}l=q;return e|0}function Wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=Yf(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,1)|0;l=d;return b|0;
}function Xf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=Yf(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,0)|0;l=d;return b|0}function Yf(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;k=g+8|0;j=g+4|0;i=g;h=g+12|0;f[k>>2]=a;f[j>>2]=b;f[i>>2]=c;d[h>>0]=e&1;b=Sg(f[k>>2]|0,f[j>>2]|0,f[i>>2]|0,9,0,16,16,d[h>>0]&1)|0;l=g;return b|0}function Zf(a,b,c,e,h){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+80|0;i=A+68|0;j=A+76|0;k=A+64|0;m=A+60|0;r=A+56|0;t=A+52|0;x=A+48|0;n=A+44|0;y=A+40|0;p=A+36|0;o=A+32|0;u=A+8|0;v=A+28|0;s=A;z=A+24|0;q=A+20|0;w=A+16|0;f[A+72>>2]=a;f[i>>2]=b;d[j>>0]=c&1;f[k>>2]=e;f[m>>2]=h;f[r>>2]=0;while(1){e=f[r>>2]|0;if(((f[r>>2]|0)+16|0)>>>0>(f[m>>2]|0)>>>0)break;f[t>>2]=(g[(f[k>>2]|0)+e>>0]|0)&31;f[x>>2]=f[26664+(f[t>>2]<<2)>>2];f[n>>2]=5;f[y>>2]=0;while(1){if((f[y>>2]|0)>>>0>=3)break;a:do if((f[x>>2]|0)>>>(f[y>>2]|0)&1){f[p>>2]=(f[n>>2]|0)>>>3;f[o>>2]=f[n>>2]&7;e=u;f[e>>2]=0;f[e+4>>2]=0;f[v>>2]=0;while(1){if((f[v>>2]|0)>>>0>=6)break;c=eh(g[(f[k>>2]|0)+((f[r>>2]|0)+(f[v>>2]|0)+(f[p>>2]|0))>>0]|0|0,0,f[v>>2]<<3|0)|0;e=u;c=hh(f[e>>2]|0,f[e+4>>2]|0,c|0,G|0)|0;e=u;f[e>>2]=c;f[e+4>>2]=G;f[v>>2]=(f[v>>2]|0)+1}c=u;c=dh(f[c>>2]|0,f[c+4>>2]|0,f[o>>2]|0)|0;e=s;f[e>>2]=c;f[e+4>>2]=G;e=s;e=dh(f[e>>2]|0,f[e+4>>2]|0,37)|0;if((e&15|0)==5&0==0?(e=s,e=dh(f[e>>2]|0,f[e+4>>2]|0,9)|0,(e&7|0)==0&0==0):0){e=s;e=dh(f[e>>2]|0,f[e+4>>2]|0,13)|0;f[z>>2]=e&1048575;e=s;e=dh(f[e>>2]|0,f[e+4>>2]|0,36)|0;e=eh(e&1|0,0,20)|0;f[z>>2]=f[z>>2]|e;f[z>>2]=f[z>>2]<<4;if(d[j>>0]&1)f[q>>2]=(f[i>>2]|0)+(f[r>>2]|0)+(f[z>>2]|0);else f[q>>2]=(f[z>>2]|0)-((f[i>>2]|0)+(f[r>>2]|0));f[q>>2]=(f[q>>2]|0)>>>4;b=s;c=f[b+4>>2]&-18;e=s;f[e>>2]=f[b>>2]&8191;f[e+4>>2]=c;e=eh(f[q>>2]&1048575|0,0,13)|0;c=s;b=f[c+4>>2]|G;a=s;f[a>>2]=f[c>>2]|e;f[a+4>>2]=b;a=eh(f[q>>2]&1048576|0,0,16)|0;b=s;e=f[b+4>>2]|G;c=s;f[c>>2]=f[b>>2]|a;f[c+4>>2]=e;c=(1<<f[o>>2])-1|0;e=u;a=f[e+4>>2]&((c|0)<0)<<31>>31;b=u;f[b>>2]=f[e>>2]&c;f[b+4>>2]=a;b=s;b=eh(f[b>>2]|0,f[b+4>>2]|0,f[o>>2]|0)|0;a=u;c=f[a+4>>2]|G;e=u;f[e>>2]=f[a>>2]|b;f[e+4>>2]=c;f[w>>2]=0;while(1){if((f[w>>2]|0)>>>0>=6)break a;e=u;e=dh(f[e>>2]|0,f[e+4>>2]|0,f[w>>2]<<3|0)|0;d[(f[k>>2]|0)+((f[r>>2]|0)+(f[w>>2]|0)+(f[p>>2]|0))>>0]=e;f[w>>2]=(f[w>>2]|0)+1}}}while(0);f[y>>2]=(f[y>>2]|0)+1;f[n>>2]=(f[n>>2]|0)+41}f[r>>2]=(f[r>>2]|0)+16}l=A;return e|0}function $f(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=ag(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,1)|0;l=d;return b|0}function _f(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=ag(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,0)|0;l=d;return b|0}function ag(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;k=g+8|0;j=g+4|0;i=g;h=g+12|0;f[k>>2]=a;f[j>>2]=b;f[i>>2]=c;d[h>>0]=e&1;b=Sg(f[k>>2]|0,f[j>>2]|0,f[i>>2]|0,10,0,4,4,d[h>>0]&1)|0;l=g;return b|0}function bg(a,b,c,e,h){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;i=q+20|0;j=q+28|0;k=q+16|0;m=q+12|0;o=q+8|0;p=q+4|0;n=q;f[q+24>>2]=a;f[i>>2]=b;d[j>>0]=c&1;f[k>>2]=e;f[m>>2]=h;f[o>>2]=0;while(1){e=f[o>>2]|0;if(((f[o>>2]|0)+4|0)>>>0>(f[m>>2]|0)>>>0)break;if((g[(f[k>>2]|0)+(e+3)>>0]|0|0)==235){f[p>>2]=(g[(f[k>>2]|0)+((f[o>>2]|0)+2)>>0]|0)<<16|(g[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]|0)<<8|(g[(f[k>>2]|0)+((f[o>>2]|0)+0)>>0]|0);f[p>>2]=f[p>>2]<<2;if(d[j>>0]&1)f[n>>2]=(f[i>>2]|0)+(f[o>>2]|0)+8+(f[p>>2]|0);else f[n>>2]=(f[p>>2]|0)-((f[i>>2]|0)+(f[o>>2]|0)+8);f[n>>2]=(f[n>>2]|0)>>>2;d[(f[k>>2]|0)+((f[o>>2]|0)+2)>>0]=(f[n>>2]|0)>>>16;d[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]=(f[n>>2]|0)>>>8;d[(f[k>>2]|0)+((f[o>>2]|0)+0)>>0]=f[n>>2]}f[o>>2]=(f[o>>2]|0)+4}l=q;return e|0}function cg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=eg(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,1)|0;l=d;return b|0}function dg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=eg(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,0)|0;l=d;return b|0}function eg(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;k=g+8|0;j=g+4|0;i=g;h=g+12|0;f[k>>2]=a;f[j>>2]=b;f[i>>2]=c;d[h>>0]=e&1;b=Sg(f[k>>2]|0,f[j>>2]|0,f[i>>2]|0,11,0,4,2,d[h>>0]&1)|0;l=g;return b|0}function fg(a,b,c,e,h){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;i=q+20|0;j=q+28|0;k=q+16|0;m=q+12|0;o=q+8|0;p=q+4|0;n=q;f[q+24>>2]=a;f[i>>2]=b;d[j>>0]=c&1;f[k>>2]=e;f[m>>2]=h;f[o>>2]=0;while(1){e=f[o>>2]|0;if(((f[o>>2]|0)+4|0)>>>0>(f[m>>2]|0)>>>0)break;if(((g[(f[k>>2]|0)+(e+1)>>0]|0)&248|0)==240?((g[(f[k>>2]|0)+((f[o>>2]|0)+3)>>0]|0)&248|0)==248:0){f[p>>2]=((g[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]|0)&7)<<19|(g[(f[k>>2]|0)+((f[o>>2]|0)+0)>>0]|0)<<11|((g[(f[k>>2]|0)+((f[o>>2]|0)+3)>>0]|0)&7)<<8|(g[(f[k>>2]|0)+((f[o>>2]|0)+2)>>0]|0);f[p>>2]=f[p>>2]<<1;if(d[j>>0]&1)f[n>>2]=(f[i>>2]|0)+(f[o>>2]|0)+4+(f[p>>2]|0);else f[n>>2]=(f[p>>2]|0)-((f[i>>2]|0)+(f[o>>2]|0)+4);f[n>>2]=(f[n>>2]|0)>>>1;d[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]=240|(f[n>>2]|0)>>>19&7;d[(f[k>>2]|0)+((f[o>>2]|0)+0)>>0]=(f[n>>2]|0)>>>11;d[(f[k>>2]|0)+((f[o>>2]|0)+3)>>0]=248|(f[n>>2]|0)>>>8&7;d[(f[k>>2]|0)+((f[o>>2]|0)+2)>>0]=f[n>>2];f[o>>2]=(f[o>>2]|0)+2}f[o>>2]=(f[o>>2]|0)+2}l=q;return e|0}function gg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=ig(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,1)|0;l=d;return b|0}function hg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=l;l=l+16|0;h=d+8|0;g=d+4|0;e=d;f[h>>2]=a;f[g>>2]=b;f[e>>2]=c;b=ig(f[h>>2]|0,f[g>>2]|0,f[e>>2]|0,0)|0;l=d;return b|0}function ig(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;k=g+8|0;j=g+4|0;i=g;h=g+12|0;f[k>>2]=a;f[j>>2]=b;f[i>>2]=c;d[h>>0]=e&1;b=Sg(f[k>>2]|0,f[j>>2]|0,f[i>>2]|0,12,0,4,4,d[h>>0]&1)|0;l=g;return b|0}function jg(a,b,c,e,h){a=a|0;b=b|0;c=c|0;e=e|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;i=q+20|0;j=q+28|0;k=q+16|0;m=q+12|0;o=q+8|0;p=q+4|0;n=q;f[q+24>>2]=a;f[i>>2]=b;d[j>>0]=c&1;f[k>>2]=e;f[m>>2]=h;f[o>>2]=0;while(1){e=f[o>>2]|0;if(((f[o>>2]|0)+4|0)>>>0>(f[m>>2]|0)>>>0)break;if((g[(f[k>>2]|0)+e>>0]|0|0)==64?((g[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]|0)&192|0)==0:0)e=7;else e=5;if(((e|0)==5?(e=0,(g[(f[k>>2]|0)+(f[o>>2]|0)>>0]|0|0)==127):0)?((g[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]|0)&192|0)==192:0)e=7;if((e|0)==7){f[p>>2]=(g[(f[k>>2]|0)+((f[o>>2]|0)+0)>>0]|0)<<24|(g[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]|0)<<16|(g[(f[k>>2]|0)+((f[o>>2]|0)+2)>>0]|0)<<8|(g[(f[k>>2]|0)+((f[o>>2]|0)+3)>>0]|0);f[p>>2]=f[p>>2]<<2;if(d[j>>0]&1)f[n>>2]=(f[i>>2]|0)+(f[o>>2]|0)+(f[p>>2]|0);else f[n>>2]=(f[p>>2]|0)-((f[i>>2]|0)+(f[o>>2]|0));f[n>>2]=(f[n>>2]|0)>>>2;f[n>>2]=0-((f[n>>2]|0)>>>22&1)<<22&1073741823|f[n>>2]&4194303|1073741824;d[(f[k>>2]|0)+((f[o>>2]|0)+0)>>0]=(f[n>>2]|0)>>>24;d[(f[k>>2]|0)+((f[o>>2]|0)+1)>>0]=(f[n>>2]|0)>>>16;d[(f[k>>2]|0)+((f[o>>2]|0)+2)>>0]=(f[n>>2]|0)>>>8;d[(f[k>>2]|0)+((f[o>>2]|0)+3)>>0]=f[n>>2]}f[o>>2]=(f[o>>2]|0)+4}l=q;return e|0}function kg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;g=l;l=l+112|0;c=g;d=g+100|0;e=g+8|0;f[d>>2]=a;a=e;b=a+92|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(b|0));if(mg(e,0,f[d>>2]|0)|0){b=c;f[b>>2]=-1;f[b+4>>2]=-1;b=c;a=b;a=f[a>>2]|0;b=b+4|0;b=f[b>>2]|0;G=b;l=g;return a|0}else{a=hh(f[e+84>>2]|0,0,f[e+88>>2]|0,0)|0;a=oh(a|0,G|0,4,0)|0;a=hh(a|0,G|0,f[e+4>>2]|0,0)|0;a=hh(a|0,G|0,160,0)|0;b=c;f[b>>2]=a;f[b+4>>2]=G;b=c;a=b;a=f[a>>2]|0;b=b+4|0;b=f[b>>2]|0;G=b;l=g;return a|0}return 0}function lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+112|0;g=o+104|0;h=o+100|0;i=o+96|0;j=o+92|0;k=o+88|0;e=o;m=o+52|0;n=o+48|0;f[h>>2]=a;f[i>>2]=b;f[j>>2]=c;f[k>>2]=d;do if(!(f[f[h>>2]>>2]|0)){a=hb(160,f[i>>2]|0)|0;f[f[h>>2]>>2]=a;if(f[f[h>>2]>>2]|0){f[(f[h>>2]|0)+20>>2]=8;f[(f[h>>2]|0)+24>>2]=11;f[(f[h>>2]|0)+40>>2]=13;f[f[f[h>>2]>>2]>>2]=0;f[(f[f[h>>2]>>2]|0)+4>>2]=0;f[(f[f[h>>2]>>2]|0)+8>>2]=0;f[(f[f[h>>2]>>2]|0)+16>>2]=0;f[(f[f[h>>2]>>2]|0)+16+48>>2]=0;f[(f[f[h>>2]>>2]|0)+16+52>>2]=0;f[(f[f[h>>2]>>2]|0)+16+84>>2]=0;f[(f[f[h>>2]>>2]|0)+16+88>>2]=0;b=(f[f[h>>2]>>2]|0)+112|0;a=e;d=a+48|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(d|0));a=e+8|0;f[a>>2]=-1;f[a+4>>2]=-1;f[e+16>>2]=0;a=b;d=a+48|0;do{f[a>>2]=f[e>>2];a=a+4|0;e=e+4|0}while((a|0)<(d|0));break}f[g>>2]=5;k=f[g>>2]|0;l=o;return k|0}while(0);f[n>>2]=Nh[f[k>>2]&15](f[f[h>>2]>>2]|0,f[i>>2]|0,f[(f[j>>2]|0)+12>>2]|0,m)|0;if(f[n>>2]|0){f[g>>2]=f[n>>2];k=f[g>>2]|0;l=o;return k|0}if(mg((f[f[h>>2]>>2]|0)+16|0,f[i>>2]|0,m)|0){f[g>>2]=8;k=f[g>>2]|0;l=o;return k|0}if(qg((f[f[h>>2]>>2]|0)+16|0,f[i>>2]|0,m)|0){f[g>>2]=5;k=f[g>>2]|0;l=o;return k|0}else{f[g>>2]=lb((f[f[h>>2]>>2]|0)+112|0,f[i>>2]|0,(f[j>>2]|0)+16|0)|0;k=f[g>>2]|0;l=o;return k|0}return 0}function mg(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;o=r+37|0;p=r+32|0;e=r+28|0;g=r+24|0;n=r+20|0;k=r+16|0;h=r+12|0;q=r+36|0;i=r+8|0;j=r+4|0;m=r;f[p>>2]=a;f[e>>2]=b;f[g>>2]=c;if(((f[(f[g>>2]|0)+4>>2]|0)>>>0>=4096?(f[(f[g>>2]|0)+4>>2]|0)>>>0<=1610612736:0)?(f[(f[g>>2]|0)+16>>2]|0)>>>0<=(f[(f[g>>2]|0)+12>>2]|0)>>>0:0){f[(f[p>>2]|0)+8>>2]=(f[f[g>>2]>>2]|0)+(f[(f[g>>2]|0)+4>>2]|0);f[(f[p>>2]|0)+12>>2]=(f[(f[g>>2]|0)+8>>2]|0)+(f[(f[g>>2]|0)+12>>2]|0);f[n>>2]=((f[(f[g>>2]|0)+4>>2]|0)>>>0)/2|0;if((f[n>>2]|0)>>>0>1073741824)f[n>>2]=((f[n>>2]|0)>>>0)/2|0;f[n>>2]=(f[n>>2]|0)+(((((f[f[g>>2]>>2]|0)+(f[(f[g>>2]|0)+12>>2]|0)+(f[(f[g>>2]|0)+8>>2]|0)|0)>>>0)/2|0)+524288);f[k>>2]=f[(f[p>>2]|0)+4>>2];f[(f[p>>2]|0)+4>>2]=(f[(f[p>>2]|0)+8>>2]|0)+(f[n>>2]|0)+(f[(f[p>>2]|0)+12>>2]|0);if((f[f[p>>2]>>2]|0)!=0?(f[k>>2]|0)!=(f[(f[p>>2]|0)+4>>2]|0):0){jb(f[f[p>>2]>>2]|0,f[e>>2]|0);f[f[p>>2]>>2]=0}f[(f[p>>2]|0)+76>>2]=f[(f[g>>2]|0)+12>>2];f[(f[p>>2]|0)+72>>2]=f[(f[g>>2]|0)+16>>2];f[(f[p>>2]|0)+60>>2]=(f[(f[g>>2]|0)+4>>2]|0)+1;switch(f[(f[g>>2]|0)+20>>2]|0){case 3:{f[(f[p>>2]|0)+40>>2]=9;f[(f[p>>2]|0)+44>>2]=12;break}case 20:{f[(f[p>>2]|0)+40>>2]=13;f[(f[p>>2]|0)+44>>2]=16;break}case 18:{f[(f[p>>2]|0)+40>>2]=11;f[(f[p>>2]|0)+44>>2]=14;break}case 19:{f[(f[p>>2]|0)+40>>2]=12;f[(f[p>>2]|0)+44>>2]=15;break}case 4:{f[(f[p>>2]|0)+40>>2]=10;f[(f[p>>2]|0)+44>>2]=13;break}default:{d[o>>0]=1;m=d[o>>0]|0;m=m&1;l=r;return m|0}}f[h>>2]=f[(f[g>>2]|0)+20>>2]&15;if((f[h>>2]|0)>>>0>(f[(f[p>>2]|0)+72>>2]|0)>>>0){d[o>>0]=1;m=d[o>>0]|0;m=m&1;l=r;return m|0}d[q>>0]=(f[(f[g>>2]|0)+20>>2]&16|0)!=0&1;do if((f[h>>2]|0)!=2){f[i>>2]=(f[(f[g>>2]|0)+4>>2]|0)-1;f[i>>2]=f[i>>2]|(f[i>>2]|0)>>>1;f[i>>2]=f[i>>2]|(f[i>>2]|0)>>>2;f[i>>2]=f[i>>2]|(f[i>>2]|0)>>>4;f[i>>2]=f[i>>2]|(f[i>>2]|0)>>>8;f[i>>2]=(f[i>>2]|0)>>>1;f[i>>2]=f[i>>2]|65535;if((f[i>>2]|0)>>>0>16777216)if((f[h>>2]|0)==3){f[i>>2]=16777215;break}else{f[i>>2]=(f[i>>2]|0)>>>1;break}}else f[i>>2]=65535;while(0);f[(f[p>>2]|0)+64>>2]=f[i>>2];f[i>>2]=(f[i>>2]|0)+1;if((f[h>>2]|0)>>>0>2)f[i>>2]=(f[i>>2]|0)+1024;if((f[h>>2]|0)>>>0>3)f[i>>2]=(f[i>>2]|0)+65536;f[j>>2]=f[(f[p>>2]|0)+84>>2];f[m>>2]=f[(f[p>>2]|0)+88>>2];f[(f[p>>2]|0)+84>>2]=f[i>>2];f[(f[p>>2]|0)+88>>2]=f[(f[p>>2]|0)+60>>2];if(d[q>>0]&1){k=(f[p>>2]|0)+88|0;f[k>>2]=f[k>>2]<<1}if(!((f[j>>2]|0)==(f[(f[p>>2]|0)+84>>2]|0)?(f[m>>2]|0)==(f[(f[p>>2]|0)+88>>2]|0):0)){jb(f[(f[p>>2]|0)+48>>2]|0,f[e>>2]|0);f[(f[p>>2]|0)+48>>2]=0;jb(f[(f[p>>2]|0)+52>>2]|0,f[e>>2]|0);f[(f[p>>2]|0)+52>>2]=0}f[(f[p>>2]|0)+68>>2]=f[(f[g>>2]|0)+24>>2];do if(!(f[(f[p>>2]|0)+68>>2]|0)){e=f[(f[p>>2]|0)+72>>2]|0;if(d[q>>0]&1){f[(f[p>>2]|0)+68>>2]=16+((e>>>0)/2|0);break}else{f[(f[p>>2]|0)+68>>2]=4+((e>>>0)/4|0);break}}while(0);d[o>>0]=0;m=d[o>>0]|0;m=m&1;l=r;return m|0}d[o>>0]=1;m=d[o>>0]|0;m=m&1;l=r;return m|0}function ng(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+48|0;t=x+44|0;u=x+40|0;k=x+36|0;m=x+32|0;n=x+28|0;o=x+24|0;p=x+20|0;q=x+16|0;r=x+12|0;s=x+8|0;w=x+4|0;v=x;f[u>>2]=a;f[k>>2]=b;f[m>>2]=c;f[n>>2]=d;f[o>>2]=e;f[p>>2]=g;f[q>>2]=h;f[r>>2]=i;f[s>>2]=j;while(1){if((f[f[q>>2]>>2]|0)>>>0>=(f[r>>2]|0)>>>0){k=10;break}if(!((f[f[n>>2]>>2]|0)>>>0<(f[o>>2]|0)>>>0?1:(f[s>>2]|0)!=0)){k=10;break}if(((f[(f[u>>2]|0)+16+80>>2]|0)==0?(f[(f[u>>2]|0)+16+20>>2]|0)>>>0>=(f[(f[u>>2]|0)+16+28>>2]|0)>>>0:0)?(f[w>>2]=rg(f[u>>2]|0,f[k>>2]|0,f[m>>2]|0,f[n>>2]|0,f[o>>2]|0,f[s>>2]|0)|0,(f[w>>2]|0)!=0):0){k=7;break}f[v>>2]=Ph[f[(f[u>>2]|0)+4>>2]&15](f[f[u>>2]>>2]|0,(f[u>>2]|0)+16|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0)|0;if(f[v>>2]|0){k=9;break}}if((k|0)==7){f[t>>2]=f[w>>2];b=f[t>>2]|0;l=x;return b|0}else if((k|0)==9){f[(f[u>>2]|0)+16+80>>2]=0;f[t>>2]=f[v>>2];b=f[t>>2]|0;l=x;return b|0}else if((k|0)==10){f[t>>2]=0;b=f[t>>2]|0;l=x;return b|0}return 0}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=l;l=l+16|0;c=e+4|0;d=e;f[c>>2]=a;f[d>>2]=b;mb((f[c>>2]|0)+112|0,f[d>>2]|0);jb(f[(f[c>>2]|0)+16+52>>2]|0,f[d>>2]|0);jb(f[(f[c>>2]|0)+16+48>>2]|0,f[d>>2]|0);jb(f[(f[c>>2]|0)+16>>2]|0,f[d>>2]|0);b=f[c>>2]|0;if(f[(f[c>>2]|0)+8>>2]|0){Kh[f[b+8>>2]&31](f[f[c>>2]>>2]|0,f[d>>2]|0);a=f[c>>2]|0;b=f[d>>2]|0;jb(a,b);l=e;return}else{jb(f[b>>2]|0,f[d>>2]|0);a=f[c>>2]|0;b=f[d>>2]|0;jb(a,b);l=e;return}}function pg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;e=k+20|0;g=k+16|0;h=k+12|0;i=k+4|0;j=k;f[g>>2]=a;f[h>>2]=b;f[k+8>>2]=c;f[i>>2]=d;if(!(f[(f[g>>2]|0)+12>>2]|0)){f[e>>2]=11;e=f[e>>2]|0;l=k;return e|0}f[j>>2]=Oh[f[(f[g>>2]|0)+12>>2]&15](f[f[g>>2]>>2]|0,f[i>>2]|0)|0;if(f[j>>2]|0){f[e>>2]=f[j>>2];e=f[e>>2]|0;l=k;return e|0}else{f[e>>2]=nb((f[g>>2]|0)+112|0,f[h>>2]|0,(f[i>>2]|0)+16|0)|0;e=f[e>>2]|0;l=k;return e|0}return 0}function qg(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;g=j+12|0;h=j+8|0;e=j+4|0;i=j;f[h>>2]=a;f[e>>2]=b;f[i>>2]=c;do if(!(f[f[h>>2]>>2]|0)){b=hb((f[(f[h>>2]|0)+4>>2]|0)+0|0,f[e>>2]|0)|0;f[f[h>>2]>>2]=b;if(f[f[h>>2]>>2]|0)break;d[g>>0]=1;b=d[g>>0]|0;b=b&1;l=j;return b|0}while(0);f[(f[h>>2]|0)+16>>2]=f[(f[h>>2]|0)+60>>2];f[(f[h>>2]|0)+20>>2]=0;f[(f[h>>2]|0)+24>>2]=0;f[(f[h>>2]|0)+28>>2]=0;f[(f[h>>2]|0)+32>>2]=0;f[(f[h>>2]|0)+36>>2]=0;if((f[(f[h>>2]|0)+84>>2]|0)>>>0<=1073741823?(f[(f[h>>2]|0)+88>>2]|0)>>>0<=1073741823:0){b=f[h>>2]|0;do if(!(f[(f[h>>2]|0)+48>>2]|0)){b=ib(f[b+84>>2]<<2,f[e>>2]|0)|0;f[(f[h>>2]|0)+48>>2]=b;b=hb(f[(f[h>>2]|0)+88>>2]<<2,f[e>>2]|0)|0;f[(f[h>>2]|0)+52>>2]=b;if((f[(f[h>>2]|0)+48>>2]|0)!=0?(f[(f[h>>2]|0)+52>>2]|0)!=0:0)break;jb(f[(f[h>>2]|0)+48>>2]|0,f[e>>2]|0);f[(f[h>>2]|0)+48>>2]=0;jb(f[(f[h>>2]|0)+52>>2]|0,f[e>>2]|0);f[(f[h>>2]|0)+52>>2]=0;d[g>>0]=1;b=d[g>>0]|0;b=b&1;l=j;return b|0}else ch(f[b+48>>2]|0,0,f[(f[h>>2]|0)+84>>2]<<2|0)|0;while(0);f[(f[h>>2]|0)+56>>2]=0;if((f[(f[i>>2]|0)+28>>2]|0)!=0?(f[(f[i>>2]|0)+32>>2]|0)>>>0>0:0){if((f[(f[i>>2]|0)+32>>2]|0)>>>0<(f[(f[h>>2]|0)+4>>2]|0)>>>0)b=f[(f[i>>2]|0)+32>>2]|0;else b=f[(f[h>>2]|0)+4>>2]|0;f[(f[h>>2]|0)+32>>2]=b;gh(f[f[h>>2]>>2]|0,(f[(f[i>>2]|0)+28>>2]|0)+(f[(f[i>>2]|0)+32>>2]|0)+(0-(f[(f[h>>2]|0)+32>>2]|0))|0,f[(f[h>>2]|0)+32>>2]|0)|0;f[(f[h>>2]|0)+80>>2]=1;Kh[f[(f[h>>2]|0)+44>>2]&31](f[h>>2]|0,f[(f[h>>2]|0)+32>>2]|0)}f[(f[h>>2]|0)+80>>2]=0;d[g>>0]=0;b=d[g>>0]|0;b=b&1;l=j;return b|0}d[g>>0]=1;b=d[g>>0]|0;b=b&1;l=j;return b|0}function rg(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;m=r+32|0;h=r+28|0;i=r+24|0;j=r+20|0;k=r+16|0;n=r+12|0;q=r+8|0;p=r+4|0;o=r;f[m>>2]=a;f[h>>2]=b;f[i>>2]=c;f[j>>2]=d;f[k>>2]=e;f[n>>2]=g;if((f[(f[m>>2]|0)+16+20>>2]|0)>>>0>=((f[(f[m>>2]|0)+16+4>>2]|0)-(f[(f[m>>2]|0)+16+12>>2]|0)|0)>>>0)sg((f[m>>2]|0)+16|0);f[q>>2]=f[(f[m>>2]|0)+16+32>>2];if(!(f[(f[m>>2]|0)+112+20>>2]|0)){kb(f[i>>2]|0,f[j>>2]|0,f[k>>2]|0,f[(f[m>>2]|0)+16>>2]|0,q,f[(f[m>>2]|0)+16+4>>2]|0)|0;if(f[n>>2]|0)h=(f[f[j>>2]>>2]|0)==(f[k>>2]|0);else h=0;f[p>>2]=h?1:0}else f[p>>2]=Jh[f[(f[m>>2]|0)+112+20>>2]&15](f[(f[m>>2]|0)+112>>2]|0,f[h>>2]|0,f[i>>2]|0,f[j>>2]|0,f[k>>2]|0,f[(f[m>>2]|0)+16>>2]|0,q,f[(f[m>>2]|0)+16+4>>2]|0,f[n>>2]|0)|0;f[(f[m>>2]|0)+16+32>>2]=f[q>>2];if((f[p>>2]|0)!=1){if((f[(f[m>>2]|0)+16+32>>2]|0)>>>0>(f[(f[m>>2]|0)+16+12>>2]|0)>>>0)f[(f[m>>2]|0)+16+28>>2]=(f[(f[m>>2]|0)+16+32>>2]|0)-(f[(f[m>>2]|0)+16+12>>2]|0)}else{f[p>>2]=0;f[(f[m>>2]|0)+16+80>>2]=f[n>>2];f[(f[m>>2]|0)+16+28>>2]=f[(f[m>>2]|0)+16+32>>2]}if((f[(f[m>>2]|0)+16+36>>2]|0)>>>0<=0){e=f[p>>2]|0;l=r;return e|0}if((f[(f[m>>2]|0)+16+20>>2]|0)>>>0>=(f[(f[m>>2]|0)+16+28>>2]|0)>>>0){e=f[p>>2]|0;l=r;return e|0}f[o>>2]=f[(f[m>>2]|0)+16+36>>2];f[(f[m>>2]|0)+16+36>>2]=0;e=(f[m>>2]|0)+16+20|0;f[e>>2]=(f[e>>2]|0)-(f[o>>2]|0);Kh[f[(f[m>>2]|0)+16+44>>2]&31]((f[m>>2]|0)+16|0,f[o>>2]|0);e=f[p>>2]|0;l=r;return e|0}function sg(a){a=a|0;var b=0,c=0,d=0,e=0;b=l;l=l+16|0;d=b+8|0;c=b+4|0;e=b;f[d>>2]=a;f[c>>2]=(f[(f[d>>2]|0)+20>>2]|0)-(f[(f[d>>2]|0)+8>>2]|0)&-16;f[e>>2]=(f[(f[d>>2]|0)+32>>2]|0)-(f[c>>2]|0);ih(f[f[d>>2]>>2]|0,(f[f[d>>2]>>2]|0)+(f[c>>2]|0)|0,f[e>>2]|0)|0;a=(f[d>>2]|0)+16|0;f[a>>2]=(f[a>>2]|0)+(f[c>>2]|0);a=(f[d>>2]|0)+20|0;f[a>>2]=(f[a>>2]|0)-(f[c>>2]|0);a=(f[d>>2]|0)+28|0;f[a>>2]=(f[a>>2]|0)-(f[c>>2]|0);a=(f[d>>2]|0)+32|0;f[a>>2]=(f[a>>2]|0)-(f[c>>2]|0);l=b;return}function tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;j=s+44|0;k=s+40|0;m=s+36|0;n=s+32|0;o=s+28|0;p=s+24|0;d=s+20|0;q=s+16|0;r=s+12|0;e=s+8|0;h=s+4|0;i=s;f[o>>2]=a;f[p>>2]=b;f[d>>2]=c;f[q>>2]=Oh[f[(f[o>>2]|0)+40>>2]&15](f[o>>2]|0,f[d>>2]|0)|0;f[r>>2]=0;if((f[q>>2]|0)>>>0>0?(f[r>>2]=f[(f[d>>2]|0)+((f[q>>2]|0)-1<<3)>>2],(f[r>>2]|0)==(f[(f[o>>2]|0)+72>>2]|0)):0){f[e>>2]=(Eg(f[o>>2]|0)|0)+1;if((f[e>>2]|0)>>>0>(f[(f[o>>2]|0)+76>>2]|0)>>>0)f[e>>2]=f[(f[o>>2]|0)+76>>2];f[h>>2]=(Fg(f[o>>2]|0)|0)+-1;f[i>>2]=(f[h>>2]|0)+(0-(f[(f[d>>2]|0)+((f[q>>2]|0)-1<<3)+4>>2]|0))+-1;c=f[i>>2]|0;a=f[r>>2]|0;i=f[e>>2]|0;f[j>>2]=f[h>>2];f[k>>2]=c;f[m>>2]=a;f[n>>2]=i;while(1){if((f[m>>2]|0)>>>0<(f[n>>2]|0)>>>0)d=(g[(f[j>>2]|0)+(f[m>>2]|0)>>0]|0|0)==(g[(f[k>>2]|0)+(f[m>>2]|0)>>0]|0|0);else d=0;b=f[m>>2]|0;if(!d)break;f[m>>2]=b+1}f[r>>2]=b}f[f[p>>2]>>2]=f[q>>2];m=(f[o>>2]|0)+24|0;f[m>>2]=(f[m>>2]|0)+1;l=s;return f[r>>2]|0}function ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+80|0;h=w+64|0;i=w+60|0;j=w+56|0;k=w+52|0;m=w+48|0;n=w+44|0;o=w+40|0;t=w+36|0;p=w+32|0;v=w+28|0;u=w+24|0;e=w+20|0;d=w+16|0;c=w+12|0;r=w+8|0;q=w+4|0;s=w;f[n>>2]=a;f[o>>2]=b;f[t>>2]=Eg(f[n>>2]|0)|0;if((f[(f[n>>2]|0)+72>>2]|0)>>>0>(f[t>>2]|0)>>>0){if((f[t>>2]|0)>>>0<3){Gg(f[n>>2]|0);f[m>>2]=0;m=f[m>>2]|0;l=w;return m|0}}else f[t>>2]=f[(f[n>>2]|0)+72>>2];f[p>>2]=Fg(f[n>>2]|0)|0;f[v>>2]=(f[(f[n>>2]|0)+20>>2]|0)+(f[(f[n>>2]|0)+16>>2]|0);f[u>>2]=0;f[e>>2]=f[1872+((g[f[p>>2]>>0]|0)<<2)>>2]^(g[(f[p>>2]|0)+1>>0]|0);f[d>>2]=f[e>>2]&1023;f[c>>2]=(f[e>>2]^(g[(f[p>>2]|0)+2>>0]|0)<<8)&f[(f[n>>2]|0)+64>>2];f[r>>2]=(f[v>>2]|0)-(f[(f[(f[n>>2]|0)+48>>2]|0)+(f[d>>2]<<2)>>2]|0);f[q>>2]=f[(f[(f[n>>2]|0)+48>>2]|0)+(1024+(f[c>>2]|0)<<2)>>2];f[(f[(f[n>>2]|0)+48>>2]|0)+(f[d>>2]<<2)>>2]=f[v>>2];f[(f[(f[n>>2]|0)+48>>2]|0)+(1024+(f[c>>2]|0)<<2)>>2]=f[v>>2];f[s>>2]=2;if((f[r>>2]|0)>>>0<(f[(f[n>>2]|0)+60>>2]|0)>>>0?(g[(f[p>>2]|0)+(0-(f[r>>2]|0))>>0]|0|0)==(g[f[p>>2]>>0]|0|0):0){b=f[p>>2]|0;a=f[s>>2]|0;e=f[t>>2]|0;f[h>>2]=(f[p>>2]|0)+(0-(f[r>>2]|0));f[i>>2]=b;f[j>>2]=a;f[k>>2]=e;while(1){if((f[j>>2]|0)>>>0<(f[k>>2]|0)>>>0)d=(g[(f[h>>2]|0)+(f[j>>2]|0)>>0]|0|0)==(g[(f[i>>2]|0)+(f[j>>2]|0)>>0]|0|0);else d=0;c=f[j>>2]|0;if(!d)break;f[j>>2]=c+1}f[s>>2]=c;f[f[o>>2]>>2]=f[s>>2];f[(f[o>>2]|0)+4>>2]=(f[r>>2]|0)-1;f[u>>2]=1;if((f[s>>2]|0)==(f[t>>2]|0)){f[(f[(f[n>>2]|0)+52>>2]|0)+(f[(f[n>>2]|0)+56>>2]<<2)>>2]=f[q>>2];Hg(f[n>>2]|0);f[m>>2]=1;m=f[m>>2]|0;l=w;return m|0}}k=Ig(f[t>>2]|0,f[v>>2]|0,f[p>>2]|0,f[q>>2]|0,f[(f[n>>2]|0)+68>>2]|0,f[(f[n>>2]|0)+52>>2]|0,f[(f[n>>2]|0)+56>>2]|0,f[(f[n>>2]|0)+60>>2]|0,(f[o>>2]|0)+(f[u>>2]<<3)|0,f[s>>2]|0)|0;f[u>>2]=(k-(f[o>>2]|0)|0)/8|0;Hg(f[n>>2]|0);f[m>>2]=f[u>>2];m=f[m>>2]|0;l=w;return m|0}function vg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;c=n+28|0;d=n+24|0;e=n+20|0;k=n+16|0;m=n+12|0;i=n+8|0;j=n+4|0;h=n;f[c>>2]=a;f[d>>2]=b;do{a=(Eg(f[c>>2]|0)|0)>>>0<3;b=f[c>>2]|0;if(a)Gg(b);else{f[e>>2]=Fg(b)|0;f[k>>2]=(f[(f[c>>2]|0)+20>>2]|0)+(f[(f[c>>2]|0)+16>>2]|0);f[m>>2]=f[1872+((g[f[e>>2]>>0]|0)<<2)>>2]^(g[(f[e>>2]|0)+1>>0]|0);f[i>>2]=f[m>>2]&1023;f[j>>2]=(f[m>>2]^(g[(f[e>>2]|0)+2>>0]|0)<<8)&f[(f[c>>2]|0)+64>>2];f[h>>2]=f[(f[(f[c>>2]|0)+48>>2]|0)+(1024+(f[j>>2]|0)<<2)>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(f[i>>2]<<2)>>2]=f[k>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(1024+(f[j>>2]|0)<<2)>>2]=f[k>>2];f[(f[(f[c>>2]|0)+52>>2]|0)+(f[(f[c>>2]|0)+56>>2]<<2)>>2]=f[h>>2];Hg(f[c>>2]|0)}a=(f[d>>2]|0)+-1|0;f[d>>2]=a}while((a|0)!=0);l=n;return}function wg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+80|0;k=y+72|0;m=y+68|0;n=y+64|0;o=y+60|0;p=y+56|0;q=y+52|0;r=y+48|0;v=y+44|0;s=y+40|0;x=y+36|0;w=y+32|0;j=y+28|0;e=y+24|0;h=y+20|0;i=y+16|0;d=y+12|0;c=y+8|0;t=y+4|0;u=y;f[q>>2]=a;f[r>>2]=b;f[v>>2]=Eg(f[q>>2]|0)|0;if((f[(f[q>>2]|0)+72>>2]|0)>>>0>(f[v>>2]|0)>>>0){if((f[v>>2]|0)>>>0<4){Gg(f[q>>2]|0);f[p>>2]=0;m=f[p>>2]|0;l=y;return m|0}}else f[v>>2]=f[(f[q>>2]|0)+72>>2];f[s>>2]=Fg(f[q>>2]|0)|0;f[x>>2]=(f[(f[q>>2]|0)+20>>2]|0)+(f[(f[q>>2]|0)+16>>2]|0);f[w>>2]=0;f[j>>2]=f[1872+((g[f[s>>2]>>0]|0)<<2)>>2]^(g[(f[s>>2]|0)+1>>0]|0);f[e>>2]=f[j>>2]&1023;f[h>>2]=(f[j>>2]^(g[(f[s>>2]|0)+2>>0]|0)<<8)&65535;f[i>>2]=(f[j>>2]^(g[(f[s>>2]|0)+2>>0]|0)<<8^f[1872+((g[(f[s>>2]|0)+3>>0]|0)<<2)>>2]<<5)&f[(f[q>>2]|0)+64>>2];f[d>>2]=(f[x>>2]|0)-(f[(f[(f[q>>2]|0)+48>>2]|0)+(f[e>>2]<<2)>>2]|0);f[c>>2]=(f[x>>2]|0)-(f[(f[(f[q>>2]|0)+48>>2]|0)+(1024+(f[h>>2]|0)<<2)>>2]|0);f[t>>2]=f[(f[(f[q>>2]|0)+48>>2]|0)+(66560+(f[i>>2]|0)<<2)>>2];f[(f[(f[q>>2]|0)+48>>2]|0)+(f[e>>2]<<2)>>2]=f[x>>2];f[(f[(f[q>>2]|0)+48>>2]|0)+(1024+(f[h>>2]|0)<<2)>>2]=f[x>>2];f[(f[(f[q>>2]|0)+48>>2]|0)+(66560+(f[i>>2]|0)<<2)>>2]=f[x>>2];f[u>>2]=1;if((f[d>>2]|0)>>>0<(f[(f[q>>2]|0)+60>>2]|0)>>>0?(g[(f[s>>2]|0)+(0-(f[d>>2]|0))>>0]|0|0)==(g[f[s>>2]>>0]|0|0):0){f[u>>2]=2;f[f[r>>2]>>2]=2;f[(f[r>>2]|0)+4>>2]=(f[d>>2]|0)-1;f[w>>2]=1}if(((f[d>>2]|0)!=(f[c>>2]|0)?(f[c>>2]|0)>>>0<(f[(f[q>>2]|0)+60>>2]|0)>>>0:0)?(g[(f[s>>2]|0)+(0-(f[c>>2]|0))>>0]|0|0)==(g[f[s>>2]>>0]|0|0):0){f[u>>2]=3;a=(f[c>>2]|0)-1|0;j=f[w>>2]|0;f[w>>2]=j+1;f[(f[r>>2]|0)+(j<<3)+4>>2]=a;f[d>>2]=f[c>>2]}if(f[w>>2]|0){b=f[s>>2]|0;a=f[u>>2]|0;j=f[v>>2]|0;f[k>>2]=(f[s>>2]|0)+(0-(f[d>>2]|0));f[m>>2]=b;f[n>>2]=a;f[o>>2]=j;while(1){if((f[n>>2]|0)>>>0<(f[o>>2]|0)>>>0)d=(g[(f[k>>2]|0)+(f[n>>2]|0)>>0]|0|0)==(g[(f[m>>2]|0)+(f[n>>2]|0)>>0]|0|0);else d=0;c=f[n>>2]|0;if(!d)break;f[n>>2]=c+1}f[u>>2]=c;f[(f[r>>2]|0)+((f[w>>2]|0)-1<<3)>>2]=f[u>>2];if((f[u>>2]|0)==(f[v>>2]|0)){f[(f[(f[q>>2]|0)+52>>2]|0)+(f[(f[q>>2]|0)+56>>2]<<2)>>2]=f[t>>2];Hg(f[q>>2]|0);f[p>>2]=f[w>>2];m=f[p>>2]|0;l=y;return m|0}}if((f[u>>2]|0)>>>0<3)f[u>>2]=3;m=Ig(f[v>>2]|0,f[x>>2]|0,f[s>>2]|0,f[t>>2]|0,f[(f[q>>2]|0)+68>>2]|0,f[(f[q>>2]|0)+52>>2]|0,f[(f[q>>2]|0)+56>>2]|0,f[(f[q>>2]|0)+60>>2]|0,(f[r>>2]|0)+(f[w>>2]<<3)|0,f[u>>2]|0)|0;f[w>>2]=(m-(f[r>>2]|0)|0)/8|0;Hg(f[q>>2]|0);f[p>>2]=f[w>>2];m=f[p>>2]|0;l=y;return m|0}function xg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;c=o+32|0;d=o+28|0;e=o+24|0;m=o+20|0;n=o+16|0;i=o+12|0;j=o+8|0;k=o+4|0;h=o;f[c>>2]=a;f[d>>2]=b;do{a=(Eg(f[c>>2]|0)|0)>>>0<4;b=f[c>>2]|0;if(a)Gg(b);else{f[e>>2]=Fg(b)|0;f[m>>2]=(f[(f[c>>2]|0)+20>>2]|0)+(f[(f[c>>2]|0)+16>>2]|0);f[n>>2]=f[1872+((g[f[e>>2]>>0]|0)<<2)>>2]^(g[(f[e>>2]|0)+1>>0]|0);f[i>>2]=f[n>>2]&1023;f[j>>2]=(f[n>>2]^(g[(f[e>>2]|0)+2>>0]|0)<<8)&65535;f[k>>2]=(f[n>>2]^(g[(f[e>>2]|0)+2>>0]|0)<<8^f[1872+((g[(f[e>>2]|0)+3>>0]|0)<<2)>>2]<<5)&f[(f[c>>2]|0)+64>>2];f[h>>2]=f[(f[(f[c>>2]|0)+48>>2]|0)+(66560+(f[k>>2]|0)<<2)>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(f[i>>2]<<2)>>2]=f[m>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(1024+(f[j>>2]|0)<<2)>>2]=f[m>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(66560+(f[k>>2]|0)<<2)>>2]=f[m>>2];f[(f[(f[c>>2]|0)+52>>2]|0)+(f[(f[c>>2]|0)+56>>2]<<2)>>2]=f[h>>2];Hg(f[c>>2]|0)}a=(f[d>>2]|0)+-1|0;f[d>>2]=a}while((a|0)!=0);l=o;return}function yg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;c=o+32|0;d=o+28|0;e=o+24|0;k=o+20|0;g=o+16|0;n=o+12|0;m=o+8|0;j=o+4|0;i=o;f[d>>2]=a;f[e>>2]=b;f[k>>2]=Eg(f[d>>2]|0)|0;do if((f[(f[d>>2]|0)+72>>2]|0)>>>0<=(f[k>>2]|0)>>>0)f[k>>2]=f[(f[d>>2]|0)+72>>2];else{if((f[k>>2]|0)>>>0>=2?(f[(f[d>>2]|0)+80>>2]|0)!=1:0)break;Gg(f[d>>2]|0);f[c>>2]=0;a=f[c>>2]|0;l=o;return a|0}while(0);f[g>>2]=Fg(f[d>>2]|0)|0;f[n>>2]=(f[(f[d>>2]|0)+20>>2]|0)+(f[(f[d>>2]|0)+16>>2]|0);f[m>>2]=0;f[j>>2]=h[f[g>>2]>>1];f[i>>2]=f[(f[(f[d>>2]|0)+48>>2]|0)+(f[j>>2]<<2)>>2];f[(f[(f[d>>2]|0)+48>>2]|0)+(f[j>>2]<<2)>>2]=f[n>>2];a=Jg(f[k>>2]|0,f[n>>2]|0,f[g>>2]|0,f[i>>2]|0,f[(f[d>>2]|0)+68>>2]|0,f[(f[d>>2]|0)+52>>2]|0,f[(f[d>>2]|0)+56>>2]|0,f[(f[d>>2]|0)+60>>2]|0,(f[e>>2]|0)+(f[m>>2]<<3)|0,1)|0;f[m>>2]=(a-(f[e>>2]|0)|0)/8|0;Hg(f[d>>2]|0);f[c>>2]=f[m>>2];a=f[c>>2]|0;l=o;return a|0}function zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;c=n+24|0;d=n+20|0;j=n+16|0;e=n+12|0;k=n+8|0;i=n+4|0;g=n;f[c>>2]=a;f[d>>2]=b;do{f[j>>2]=Eg(f[c>>2]|0)|0;do if((f[(f[c>>2]|0)+72>>2]|0)>>>0<=(f[j>>2]|0)>>>0){f[j>>2]=f[(f[c>>2]|0)+72>>2];m=7}else{if((f[j>>2]|0)>>>0>=2?(f[(f[c>>2]|0)+80>>2]|0)!=1:0){m=7;break}Gg(f[c>>2]|0)}while(0);if((m|0)==7){m=0;f[e>>2]=Fg(f[c>>2]|0)|0;f[k>>2]=(f[(f[c>>2]|0)+20>>2]|0)+(f[(f[c>>2]|0)+16>>2]|0);f[i>>2]=h[f[e>>2]>>1];f[g>>2]=f[(f[(f[c>>2]|0)+48>>2]|0)+(f[i>>2]<<2)>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(f[i>>2]<<2)>>2]=f[k>>2];Kg(f[j>>2]|0,f[k>>2]|0,f[e>>2]|0,f[g>>2]|0,f[(f[c>>2]|0)+68>>2]|0,f[(f[c>>2]|0)+52>>2]|0,f[(f[c>>2]|0)+56>>2]|0,f[(f[c>>2]|0)+60>>2]|0);Hg(f[c>>2]|0)}a=(f[d>>2]|0)+-1|0;f[d>>2]=a}while((a|0)!=0);l=n;return}function Ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+80|0;h=w+64|0;i=w+60|0;j=w+56|0;k=w+52|0;m=w+48|0;n=w+44|0;o=w+40|0;t=w+36|0;p=w+32|0;v=w+28|0;u=w+24|0;e=w+20|0;d=w+16|0;c=w+12|0;r=w+8|0;q=w+4|0;s=w;f[n>>2]=a;f[o>>2]=b;f[t>>2]=Eg(f[n>>2]|0)|0;do if((f[(f[n>>2]|0)+72>>2]|0)>>>0<=(f[t>>2]|0)>>>0)f[t>>2]=f[(f[n>>2]|0)+72>>2];else{if((f[t>>2]|0)>>>0>=3?(f[(f[n>>2]|0)+80>>2]|0)!=1:0)break;Gg(f[n>>2]|0);f[m>>2]=0;m=f[m>>2]|0;l=w;return m|0}while(0);f[p>>2]=Fg(f[n>>2]|0)|0;f[v>>2]=(f[(f[n>>2]|0)+20>>2]|0)+(f[(f[n>>2]|0)+16>>2]|0);f[u>>2]=0;f[e>>2]=f[1872+((g[f[p>>2]>>0]|0)<<2)>>2]^(g[(f[p>>2]|0)+1>>0]|0);f[d>>2]=f[e>>2]&1023;f[c>>2]=(f[e>>2]^(g[(f[p>>2]|0)+2>>0]|0)<<8)&f[(f[n>>2]|0)+64>>2];f[r>>2]=(f[v>>2]|0)-(f[(f[(f[n>>2]|0)+48>>2]|0)+(f[d>>2]<<2)>>2]|0);f[q>>2]=f[(f[(f[n>>2]|0)+48>>2]|0)+(1024+(f[c>>2]|0)<<2)>>2];f[(f[(f[n>>2]|0)+48>>2]|0)+(f[d>>2]<<2)>>2]=f[v>>2];f[(f[(f[n>>2]|0)+48>>2]|0)+(1024+(f[c>>2]|0)<<2)>>2]=f[v>>2];f[s>>2]=2;if((f[r>>2]|0)>>>0<(f[(f[n>>2]|0)+60>>2]|0)>>>0?(g[(f[p>>2]|0)+(0-(f[r>>2]|0))>>0]|0|0)==(g[f[p>>2]>>0]|0|0):0){b=(f[p>>2]|0)+(0-(f[r>>2]|0))|0;a=f[s>>2]|0;e=f[t>>2]|0;f[h>>2]=f[p>>2];f[i>>2]=b;f[j>>2]=a;f[k>>2]=e;while(1){if((f[j>>2]|0)>>>0<(f[k>>2]|0)>>>0)d=(g[(f[h>>2]|0)+(f[j>>2]|0)>>0]|0|0)==(g[(f[i>>2]|0)+(f[j>>2]|0)>>0]|0|0);else d=0;c=f[j>>2]|0;if(!d)break;f[j>>2]=c+1}f[s>>2]=c;f[f[o>>2]>>2]=f[s>>2];f[(f[o>>2]|0)+4>>2]=(f[r>>2]|0)-1;f[u>>2]=1;if((f[s>>2]|0)==(f[t>>2]|0)){Kg(f[t>>2]|0,f[v>>2]|0,f[p>>2]|0,f[q>>2]|0,f[(f[n>>2]|0)+68>>2]|0,f[(f[n>>2]|0)+52>>2]|0,f[(f[n>>2]|0)+56>>2]|0,f[(f[n>>2]|0)+60>>2]|0);Hg(f[n>>2]|0);f[m>>2]=1;m=f[m>>2]|0;l=w;return m|0}}k=Jg(f[t>>2]|0,f[v>>2]|0,f[p>>2]|0,f[q>>2]|0,f[(f[n>>2]|0)+68>>2]|0,f[(f[n>>2]|0)+52>>2]|0,f[(f[n>>2]|0)+56>>2]|0,f[(f[n>>2]|0)+60>>2]|0,(f[o>>2]|0)+(f[u>>2]<<3)|0,f[s>>2]|0)|0;f[u>>2]=(k-(f[o>>2]|0)|0)/8|0;Hg(f[n>>2]|0);f[m>>2]=f[u>>2];m=f[m>>2]|0;l=w;return m|0}function Bg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+48|0;c=p+32|0;d=p+28|0;k=p+24|0;e=p+20|0;m=p+16|0;n=p+12|0;i=p+8|0;j=p+4|0;h=p;f[c>>2]=a;f[d>>2]=b;do{f[k>>2]=Eg(f[c>>2]|0)|0;do if((f[(f[c>>2]|0)+72>>2]|0)>>>0<=(f[k>>2]|0)>>>0){f[k>>2]=f[(f[c>>2]|0)+72>>2];o=7}else{if((f[k>>2]|0)>>>0>=3?(f[(f[c>>2]|0)+80>>2]|0)!=1:0){o=7;break}Gg(f[c>>2]|0)}while(0);if((o|0)==7){o=0;f[e>>2]=Fg(f[c>>2]|0)|0;f[m>>2]=(f[(f[c>>2]|0)+20>>2]|0)+(f[(f[c>>2]|0)+16>>2]|0);f[n>>2]=f[1872+((g[f[e>>2]>>0]|0)<<2)>>2]^(g[(f[e>>2]|0)+1>>0]|0);f[i>>2]=f[n>>2]&1023;f[j>>2]=(f[n>>2]^(g[(f[e>>2]|0)+2>>0]|0)<<8)&f[(f[c>>2]|0)+64>>2];f[h>>2]=f[(f[(f[c>>2]|0)+48>>2]|0)+(1024+(f[j>>2]|0)<<2)>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(f[i>>2]<<2)>>2]=f[m>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(1024+(f[j>>2]|0)<<2)>>2]=f[m>>2];Kg(f[k>>2]|0,f[m>>2]|0,f[e>>2]|0,f[h>>2]|0,f[(f[c>>2]|0)+68>>2]|0,f[(f[c>>2]|0)+52>>2]|0,f[(f[c>>2]|0)+56>>2]|0,f[(f[c>>2]|0)+60>>2]|0);Hg(f[c>>2]|0)}a=(f[d>>2]|0)+-1|0;f[d>>2]=a}while((a|0)!=0);l=p;return}function Cg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+80|0;k=y+72|0;m=y+68|0;n=y+64|0;o=y+60|0;p=y+56|0;q=y+52|0;r=y+48|0;v=y+44|0;s=y+40|0;x=y+36|0;w=y+32|0;j=y+28|0;e=y+24|0;h=y+20|0;i=y+16|0;d=y+12|0;c=y+8|0;t=y+4|0;u=y;f[q>>2]=a;f[r>>2]=b;f[v>>2]=Eg(f[q>>2]|0)|0;do if((f[(f[q>>2]|0)+72>>2]|0)>>>0<=(f[v>>2]|0)>>>0)f[v>>2]=f[(f[q>>2]|0)+72>>2];else{if((f[v>>2]|0)>>>0>=4?(f[(f[q>>2]|0)+80>>2]|0)!=1:0)break;Gg(f[q>>2]|0);f[p>>2]=0;m=f[p>>2]|0;l=y;return m|0}while(0);f[s>>2]=Fg(f[q>>2]|0)|0;f[x>>2]=(f[(f[q>>2]|0)+20>>2]|0)+(f[(f[q>>2]|0)+16>>2]|0);f[w>>2]=0;f[j>>2]=f[1872+((g[f[s>>2]>>0]|0)<<2)>>2]^(g[(f[s>>2]|0)+1>>0]|0);f[e>>2]=f[j>>2]&1023;f[h>>2]=(f[j>>2]^(g[(f[s>>2]|0)+2>>0]|0)<<8)&65535;f[i>>2]=(f[j>>2]^(g[(f[s>>2]|0)+2>>0]|0)<<8^f[1872+((g[(f[s>>2]|0)+3>>0]|0)<<2)>>2]<<5)&f[(f[q>>2]|0)+64>>2];f[d>>2]=(f[x>>2]|0)-(f[(f[(f[q>>2]|0)+48>>2]|0)+(f[e>>2]<<2)>>2]|0);f[c>>2]=(f[x>>2]|0)-(f[(f[(f[q>>2]|0)+48>>2]|0)+(1024+(f[h>>2]|0)<<2)>>2]|0);f[t>>2]=f[(f[(f[q>>2]|0)+48>>2]|0)+(66560+(f[i>>2]|0)<<2)>>2];f[(f[(f[q>>2]|0)+48>>2]|0)+(f[e>>2]<<2)>>2]=f[x>>2];f[(f[(f[q>>2]|0)+48>>2]|0)+(1024+(f[h>>2]|0)<<2)>>2]=f[x>>2];f[(f[(f[q>>2]|0)+48>>2]|0)+(66560+(f[i>>2]|0)<<2)>>2]=f[x>>2];f[u>>2]=1;if((f[d>>2]|0)>>>0<(f[(f[q>>2]|0)+60>>2]|0)>>>0?(g[(f[s>>2]|0)+(0-(f[d>>2]|0))>>0]|0|0)==(g[f[s>>2]>>0]|0|0):0){f[u>>2]=2;f[f[r>>2]>>2]=2;f[(f[r>>2]|0)+4>>2]=(f[d>>2]|0)-1;f[w>>2]=1}if(((f[d>>2]|0)!=(f[c>>2]|0)?(f[c>>2]|0)>>>0<(f[(f[q>>2]|0)+60>>2]|0)>>>0:0)?(g[(f[s>>2]|0)+(0-(f[c>>2]|0))>>0]|0|0)==(g[f[s>>2]>>0]|0|0):0){f[u>>2]=3;a=(f[c>>2]|0)-1|0;j=f[w>>2]|0;f[w>>2]=j+1;f[(f[r>>2]|0)+(j<<3)+4>>2]=a;f[d>>2]=f[c>>2]}if(f[w>>2]|0){b=(f[s>>2]|0)+(0-(f[d>>2]|0))|0;a=f[u>>2]|0;j=f[v>>2]|0;f[k>>2]=f[s>>2];f[m>>2]=b;f[n>>2]=a;f[o>>2]=j;while(1){if((f[n>>2]|0)>>>0<(f[o>>2]|0)>>>0)d=(g[(f[k>>2]|0)+(f[n>>2]|0)>>0]|0|0)==(g[(f[m>>2]|0)+(f[n>>2]|0)>>0]|0|0);else d=0;c=f[n>>2]|0;if(!d)break;f[n>>2]=c+1}f[u>>2]=c;f[(f[r>>2]|0)+((f[w>>2]|0)-1<<3)>>2]=f[u>>2];if((f[u>>2]|0)==(f[v>>2]|0)){Kg(f[v>>2]|0,f[x>>2]|0,f[s>>2]|0,f[t>>2]|0,f[(f[q>>2]|0)+68>>2]|0,f[(f[q>>2]|0)+52>>2]|0,f[(f[q>>2]|0)+56>>2]|0,f[(f[q>>2]|0)+60>>2]|0);Hg(f[q>>2]|0);f[p>>2]=f[w>>2];m=f[p>>2]|0;l=y;return m|0}}if((f[u>>2]|0)>>>0<3)f[u>>2]=3;m=Jg(f[v>>2]|0,f[x>>2]|0,f[s>>2]|0,f[t>>2]|0,f[(f[q>>2]|0)+68>>2]|0,f[(f[q>>2]|0)+52>>2]|0,f[(f[q>>2]|0)+56>>2]|0,f[(f[q>>2]|0)+60>>2]|0,(f[r>>2]|0)+(f[w>>2]<<3)|0,f[u>>2]|0)|0;f[w>>2]=(m-(f[r>>2]|0)|0)/8|0;Hg(f[q>>2]|0);f[p>>2]=f[w>>2];m=f[p>>2]|0;l=y;return m|0}function Dg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;c=q+36|0;d=q+32|0;m=q+28|0;e=q+24|0;n=q+20|0;o=q+16|0;i=q+12|0;j=q+8|0;k=q+4|0;h=q;f[c>>2]=a;f[d>>2]=b;do{f[m>>2]=Eg(f[c>>2]|0)|0;do if((f[(f[c>>2]|0)+72>>2]|0)>>>0<=(f[m>>2]|0)>>>0){f[m>>2]=f[(f[c>>2]|0)+72>>2];p=7}else{if((f[m>>2]|0)>>>0>=4?(f[(f[c>>2]|0)+80>>2]|0)!=1:0){p=7;break}Gg(f[c>>2]|0)}while(0);if((p|0)==7){p=0;f[e>>2]=Fg(f[c>>2]|0)|0;f[n>>2]=(f[(f[c>>2]|0)+20>>2]|0)+(f[(f[c>>2]|0)+16>>2]|0);f[o>>2]=f[1872+((g[f[e>>2]>>0]|0)<<2)>>2]^(g[(f[e>>2]|0)+1>>0]|0);f[i>>2]=f[o>>2]&1023;f[j>>2]=(f[o>>2]^(g[(f[e>>2]|0)+2>>0]|0)<<8)&65535;f[k>>2]=(f[o>>2]^(g[(f[e>>2]|0)+2>>0]|0)<<8^f[1872+((g[(f[e>>2]|0)+3>>0]|0)<<2)>>2]<<5)&f[(f[c>>2]|0)+64>>2];f[h>>2]=f[(f[(f[c>>2]|0)+48>>2]|0)+(66560+(f[k>>2]|0)<<2)>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(f[i>>2]<<2)>>2]=f[n>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(1024+(f[j>>2]|0)<<2)>>2]=f[n>>2];f[(f[(f[c>>2]|0)+48>>2]|0)+(66560+(f[k>>2]|0)<<2)>>2]=f[n>>2];
Kg(f[m>>2]|0,f[n>>2]|0,f[e>>2]|0,f[h>>2]|0,f[(f[c>>2]|0)+68>>2]|0,f[(f[c>>2]|0)+52>>2]|0,f[(f[c>>2]|0)+56>>2]|0,f[(f[c>>2]|0)+60>>2]|0);Hg(f[c>>2]|0)}a=(f[d>>2]|0)+-1|0;f[d>>2]=a}while((a|0)!=0);l=q;return}function Eg(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return(f[(f[b>>2]|0)+32>>2]|0)-(f[(f[b>>2]|0)+20>>2]|0)|0}function Fg(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;f[b>>2]=a;l=c;return(f[f[b>>2]>>2]|0)+(f[(f[b>>2]|0)+20>>2]|0)|0}function Gg(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=(f[c>>2]|0)+20|0;f[a>>2]=(f[a>>2]|0)+1;a=(f[c>>2]|0)+36|0;f[a>>2]=(f[a>>2]|0)+1;l=b;return}function Hg(a){a=a|0;var b=0,c=0,d=0;c=l;l=l+16|0;b=c;f[b>>2]=a;d=(f[b>>2]|0)+56|0;a=(f[d>>2]|0)+1|0;f[d>>2]=a;if((a|0)==(f[(f[b>>2]|0)+60>>2]|0))f[(f[b>>2]|0)+56>>2]=0;a=(f[b>>2]|0)+20|0;f[a>>2]=(f[a>>2]|0)+1;if(((f[(f[b>>2]|0)+20>>2]|0)+(f[(f[b>>2]|0)+16>>2]|0)|0)!=-1){l=c;return}Lg(f[b>>2]|0);l=c;return}function Ig(a,b,c,d,e,h,i,j,k,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+80|0;n=F+68|0;o=F+64|0;t=F+60|0;u=F+56|0;E=F+52|0;v=F+48|0;w=F+44|0;x=F+40|0;y=F+36|0;z=F+32|0;p=F+28|0;q=F+24|0;r=F+20|0;D=F+16|0;s=F+12|0;A=F+8|0;C=F+4|0;B=F;f[v>>2]=a;f[w>>2]=b;f[x>>2]=c;f[y>>2]=d;f[z>>2]=e;f[p>>2]=h;f[q>>2]=i;f[r>>2]=j;f[D>>2]=k;f[s>>2]=m;f[(f[p>>2]|0)+(f[q>>2]<<2)>>2]=f[y>>2];while(1){f[A>>2]=(f[w>>2]|0)-(f[y>>2]|0);d=f[z>>2]|0;f[z>>2]=d+-1;if(!d){d=4;break}if((f[A>>2]|0)>>>0>=(f[r>>2]|0)>>>0){d=4;break}f[C>>2]=(f[x>>2]|0)+(0-(f[A>>2]|0));f[y>>2]=f[(f[p>>2]|0)+((f[q>>2]|0)-(f[A>>2]|0)+((f[A>>2]|0)>>>0>(f[q>>2]|0)>>>0?f[r>>2]|0:0)<<2)>>2];if((g[(f[C>>2]|0)+(f[s>>2]|0)>>0]|0|0)!=(g[(f[x>>2]|0)+(f[s>>2]|0)>>0]|0|0))continue;if((g[f[C>>2]>>0]|0|0)!=(g[f[x>>2]>>0]|0|0))continue;c=f[x>>2]|0;d=f[v>>2]|0;f[n>>2]=f[C>>2];f[o>>2]=c;f[t>>2]=1;f[u>>2]=d;while(1){if((f[t>>2]|0)>>>0<(f[u>>2]|0)>>>0)c=(g[(f[n>>2]|0)+(f[t>>2]|0)>>0]|0|0)==(g[(f[o>>2]|0)+(f[t>>2]|0)>>0]|0|0);else c=0;d=f[t>>2]|0;if(!c)break;f[t>>2]=d+1}f[B>>2]=d;if((f[s>>2]|0)>>>0>=(f[B>>2]|0)>>>0)continue;f[s>>2]=f[B>>2];f[f[D>>2]>>2]=f[B>>2];f[(f[D>>2]|0)+4>>2]=(f[A>>2]|0)-1;f[D>>2]=(f[D>>2]|0)+8;if((f[B>>2]|0)==(f[v>>2]|0)){d=14;break}}if((d|0)==4){f[E>>2]=f[D>>2];y=f[E>>2]|0;l=F;return y|0}else if((d|0)==14){f[E>>2]=f[D>>2];y=f[E>>2]|0;l=F;return y|0}return 0}function Jg(a,b,c,d,e,h,i,j,k,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=l;l=l+96|0;n=K+88|0;o=K+84|0;t=K+80|0;u=K+76|0;G=K+72|0;v=K+68|0;w=K+64|0;x=K+60|0;y=K+56|0;z=K+52|0;p=K+48|0;q=K+44|0;r=K+40|0;F=K+36|0;s=K+32|0;I=K+28|0;J=K+24|0;C=K+20|0;D=K+16|0;A=K+12|0;H=K+8|0;E=K+4|0;B=K;f[v>>2]=a;f[w>>2]=b;f[x>>2]=c;f[y>>2]=d;f[z>>2]=e;f[p>>2]=h;f[q>>2]=i;f[r>>2]=j;f[F>>2]=k;f[s>>2]=m;f[I>>2]=(f[p>>2]|0)+(f[q>>2]<<1<<2)+4;f[J>>2]=(f[p>>2]|0)+(f[q>>2]<<1<<2);f[C>>2]=0;f[D>>2]=0;while(1){f[A>>2]=(f[w>>2]|0)-(f[y>>2]|0);d=f[z>>2]|0;f[z>>2]=d+-1;if(!d){d=4;break}if((f[A>>2]|0)>>>0>=(f[r>>2]|0)>>>0){d=4;break}f[H>>2]=(f[p>>2]|0)+((f[q>>2]|0)-(f[A>>2]|0)+((f[A>>2]|0)>>>0>(f[q>>2]|0)>>>0?f[r>>2]|0:0)<<1<<2);f[E>>2]=(f[x>>2]|0)+(0-(f[A>>2]|0));f[B>>2]=(f[C>>2]|0)>>>0<(f[D>>2]|0)>>>0?f[C>>2]|0:f[D>>2]|0;if((g[(f[E>>2]|0)+(f[B>>2]|0)>>0]|0|0)==(g[(f[x>>2]|0)+(f[B>>2]|0)>>0]|0|0)){i=f[x>>2]|0;c=(f[B>>2]|0)+1|0;d=f[v>>2]|0;f[n>>2]=f[E>>2];f[o>>2]=i;f[t>>2]=c;f[u>>2]=d;while(1){if((f[t>>2]|0)>>>0<(f[u>>2]|0)>>>0)d=(g[(f[n>>2]|0)+(f[t>>2]|0)>>0]|0|0)==(g[(f[o>>2]|0)+(f[t>>2]|0)>>0]|0|0);else d=0;c=f[t>>2]|0;if(!d)break;f[t>>2]=c+1}f[B>>2]=c;if((f[s>>2]|0)>>>0<(f[B>>2]|0)>>>0?(f[s>>2]=f[B>>2],f[f[F>>2]>>2]=f[B>>2],f[(f[F>>2]|0)+4>>2]=(f[A>>2]|0)-1,f[F>>2]=(f[F>>2]|0)+8,(f[B>>2]|0)==(f[v>>2]|0)):0){d=13;break}}d=f[y>>2]|0;if((g[(f[E>>2]|0)+(f[B>>2]|0)>>0]|0|0)<(g[(f[x>>2]|0)+(f[B>>2]|0)>>0]|0|0)){f[f[J>>2]>>2]=d;f[J>>2]=(f[H>>2]|0)+4;f[y>>2]=f[f[J>>2]>>2];f[D>>2]=f[B>>2];continue}else{f[f[I>>2]>>2]=d;f[I>>2]=f[H>>2];f[y>>2]=f[f[I>>2]>>2];f[C>>2]=f[B>>2];continue}}if((d|0)==4){f[f[I>>2]>>2]=0;f[f[J>>2]>>2]=0;f[G>>2]=f[F>>2];y=f[G>>2]|0;l=K;return y|0}else if((d|0)==13){f[f[J>>2]>>2]=f[f[H>>2]>>2];f[f[I>>2]>>2]=f[(f[H>>2]|0)+4>>2];f[G>>2]=f[F>>2];y=f[G>>2]|0;l=K;return y|0}return 0}function Kg(a,b,c,d,e,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+80|0;k=F+76|0;m=F+72|0;p=F+68|0;q=F+64|0;r=F+60|0;s=F+56|0;t=F+52|0;u=F+48|0;v=F+44|0;w=F+40|0;n=F+36|0;o=F+32|0;D=F+28|0;E=F+24|0;z=F+20|0;A=F+16|0;x=F+12|0;C=F+8|0;B=F+4|0;y=F;f[r>>2]=a;f[s>>2]=b;f[t>>2]=c;f[u>>2]=d;f[v>>2]=e;f[w>>2]=h;f[n>>2]=i;f[o>>2]=j;f[D>>2]=(f[w>>2]|0)+(f[n>>2]<<1<<2)+4;f[E>>2]=(f[w>>2]|0)+(f[n>>2]<<1<<2);f[z>>2]=0;f[A>>2]=0;while(1){f[x>>2]=(f[s>>2]|0)-(f[u>>2]|0);d=f[v>>2]|0;f[v>>2]=d+-1;if(!d){d=4;break}if((f[x>>2]|0)>>>0>=(f[o>>2]|0)>>>0){d=4;break}f[C>>2]=(f[w>>2]|0)+((f[n>>2]|0)-(f[x>>2]|0)+((f[x>>2]|0)>>>0>(f[n>>2]|0)>>>0?f[o>>2]|0:0)<<1<<2);f[B>>2]=(f[t>>2]|0)+(0-(f[x>>2]|0));f[y>>2]=(f[z>>2]|0)>>>0<(f[A>>2]|0)>>>0?f[z>>2]|0:f[A>>2]|0;if((g[(f[B>>2]|0)+(f[y>>2]|0)>>0]|0|0)==(g[(f[t>>2]|0)+(f[y>>2]|0)>>0]|0|0)){i=f[t>>2]|0;c=(f[y>>2]|0)+1|0;d=f[r>>2]|0;f[k>>2]=f[B>>2];f[m>>2]=i;f[p>>2]=c;f[q>>2]=d;while(1){if((f[p>>2]|0)>>>0<(f[q>>2]|0)>>>0)d=(g[(f[k>>2]|0)+(f[p>>2]|0)>>0]|0|0)==(g[(f[m>>2]|0)+(f[p>>2]|0)>>0]|0|0);else d=0;c=f[p>>2]|0;if(!d)break;f[p>>2]=c+1}f[y>>2]=c;if((f[y>>2]|0)==(f[r>>2]|0)){d=12;break}}d=f[u>>2]|0;if((g[(f[B>>2]|0)+(f[y>>2]|0)>>0]|0|0)<(g[(f[t>>2]|0)+(f[y>>2]|0)>>0]|0|0)){f[f[E>>2]>>2]=d;f[E>>2]=(f[C>>2]|0)+4;f[u>>2]=f[f[E>>2]>>2];f[A>>2]=f[y>>2];continue}else{f[f[D>>2]>>2]=d;f[D>>2]=f[C>>2];f[u>>2]=f[f[D>>2]>>2];f[z>>2]=f[y>>2];continue}}if((d|0)==4){f[f[D>>2]>>2]=0;f[f[E>>2]>>2]=0;l=F;return}else if((d|0)==12){f[f[E>>2]>>2]=f[f[C>>2]>>2];f[f[D>>2]>>2]=f[(f[C>>2]|0)+4>>2];l=F;return}}function Lg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;g=l;l=l+16|0;b=g+12|0;e=g+8|0;c=g+4|0;d=g;f[b>>2]=a;f[e>>2]=-1-(f[(f[b>>2]|0)+60>>2]|0);f[c>>2]=0;while(1){if((f[c>>2]|0)>>>0>=(f[(f[b>>2]|0)+84>>2]|0)>>>0)break;if((f[(f[(f[b>>2]|0)+48>>2]|0)+(f[c>>2]<<2)>>2]|0)>>>0<=(f[e>>2]|0)>>>0)f[(f[(f[b>>2]|0)+48>>2]|0)+(f[c>>2]<<2)>>2]=0;else{a=(f[(f[b>>2]|0)+48>>2]|0)+(f[c>>2]<<2)|0;f[a>>2]=(f[a>>2]|0)-(f[e>>2]|0)}f[c>>2]=(f[c>>2]|0)+1}f[d>>2]=0;while(1){if((f[d>>2]|0)>>>0>=(f[(f[b>>2]|0)+88>>2]|0)>>>0)break;if((f[(f[(f[b>>2]|0)+52>>2]|0)+(f[d>>2]<<2)>>2]|0)>>>0<=(f[e>>2]|0)>>>0)f[(f[(f[b>>2]|0)+52>>2]|0)+(f[d>>2]<<2)>>2]=0;else{c=(f[(f[b>>2]|0)+52>>2]|0)+(f[d>>2]<<2)|0;f[c>>2]=(f[c>>2]|0)-(f[e>>2]|0)}f[d>>2]=(f[d>>2]|0)+1}b=(f[b>>2]|0)+16|0;f[b>>2]=(f[b>>2]|0)-(f[e>>2]|0);l=g;return}function Mg(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+112|0;i=s+108|0;j=s+104|0;k=s+100|0;m=s+96|0;n=s+92|0;h=s+72|0;g=s;p=s+60|0;r=s+56|0;o=s+52|0;q=s+48|0;f[j>>2]=a;f[k>>2]=b;f[m>>2]=c;f[n>>2]=e;do if(!(f[f[j>>2]>>2]|0)){a=hb(4208,f[k>>2]|0)|0;f[f[j>>2]>>2]=a;if(f[f[j>>2]>>2]|0){f[(f[j>>2]|0)+20>>2]=9;f[(f[j>>2]|0)+24>>2]=17;f[f[f[j>>2]>>2]>>2]=0;f[(f[f[j>>2]>>2]|0)+16>>2]=0;c=(f[f[j>>2]>>2]|0)+24|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[c>>2]=f[h>>2];f[c+4>>2]=f[h+4>>2];f[c+8>>2]=f[h+8>>2];f[c+12>>2]=f[h+12>>2];f[c+16>>2]=f[h+16>>2];c=(f[f[j>>2]>>2]|0)+48|0;b=g;h=b+48|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(h|0));b=g+8|0;f[b>>2]=-1;f[b+4>>2]=-1;f[g+16>>2]=0;b=c;h=b+48|0;do{f[b>>2]=f[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(h|0));break}f[i>>2]=5;m=f[i>>2]|0;l=s;return m|0}while(0);f[r>>2]=Nh[f[n>>2]&15]((f[f[j>>2]>>2]|0)+24|0,f[k>>2]|0,f[(f[m>>2]|0)+12>>2]|0,p)|0;if(f[r>>2]|0){f[i>>2]=f[r>>2];m=f[i>>2]|0;l=s;return m|0}if((f[p>>2]|0)>>>0<4096)f[p>>2]=4096;if((f[p>>2]|0)>>>0>4294967280){f[i>>2]=5;m=f[i>>2]|0;l=s;return m|0}f[p>>2]=(f[p>>2]|0)+15&-16;do if((f[(f[f[j>>2]>>2]|0)+16>>2]|0)!=(f[p>>2]|0)){jb(f[f[f[j>>2]>>2]>>2]|0,f[k>>2]|0);a=hb(f[p>>2]|0,f[k>>2]|0)|0;f[f[f[j>>2]>>2]>>2]=a;if(f[f[f[j>>2]>>2]>>2]|0){f[(f[f[j>>2]>>2]|0)+16>>2]=f[p>>2];break}f[i>>2]=5;m=f[i>>2]|0;l=s;return m|0}while(0);Qg(f[f[j>>2]>>2]|0);if((f[p+4>>2]|0)!=0?(f[p+8>>2]|0)>>>0>0:0){f[o>>2]=(f[p+8>>2]|0)>>>0<(f[p>>2]|0)>>>0?f[p+8>>2]|0:f[p>>2]|0;f[q>>2]=(f[p+8>>2]|0)-(f[o>>2]|0);gh(f[f[f[j>>2]>>2]>>2]|0,(f[p+4>>2]|0)+(f[q>>2]|0)|0,f[o>>2]|0)|0;f[(f[f[j>>2]>>2]|0)+4>>2]=f[o>>2];f[(f[f[j>>2]>>2]|0)+8>>2]=f[o>>2]}d[(f[f[j>>2]>>2]|0)+96>>0]=0;d[(f[f[j>>2]>>2]|0)+97>>0]=0;f[(f[f[j>>2]>>2]|0)+100>>2]=0;f[(f[f[j>>2]>>2]|0)+100+4>>2]=0;f[i>>2]=lb((f[f[j>>2]>>2]|0)+48|0,f[k>>2]|0,(f[m>>2]|0)+16|0)|0;m=f[i>>2]|0;l=s;return m|0}function Ng(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;a=hh(4208,0,f[c>>2]|0,0)|0;l=b;return a|0}function Og(a,b,c,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+48|0;u=y+44|0;v=y+40|0;m=y+36|0;n=y+32|0;o=y+28|0;p=y+24|0;q=y+20|0;r=y+16|0;s=y+12|0;t=y+8|0;w=y+4|0;x=y;f[v>>2]=a;f[m>>2]=b;f[n>>2]=c;f[o>>2]=e;f[p>>2]=g;f[q>>2]=h;f[r>>2]=i;f[s>>2]=j;f[t>>2]=k;if(!(f[(f[v>>2]|0)+48+20>>2]|0)){f[u>>2]=Rg(f[v>>2]|0,f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0)|0;m=f[u>>2]|0;l=y;return m|0}a:while(1){if((f[f[r>>2]>>2]|0)>>>0>=(f[s>>2]|0)>>>0){b=24;break}do if(!(d[(f[v>>2]|0)+96>>0]&1)?(f[(f[v>>2]|0)+100>>2]|0)==(f[(f[v>>2]|0)+100+4>>2]|0):0){f[(f[v>>2]|0)+100>>2]=0;f[(f[v>>2]|0)+100+4>>2]=0;f[w>>2]=Jh[f[(f[v>>2]|0)+48+20>>2]&15](f[(f[v>>2]|0)+48>>2]|0,f[m>>2]|0,f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,(f[v>>2]|0)+100+8|0,(f[v>>2]|0)+100+4|0,4096,f[t>>2]|0)|0;if((f[w>>2]|0)==1){d[(f[v>>2]|0)+96>>0]=1;break}if(f[w>>2]|0){b=10;break a}if(!(f[(f[v>>2]|0)+100+4>>2]|0)){b=10;break a}}while(0);k=f[v>>2]|0;if(d[(f[v>>2]|0)+97>>0]&1){b=12;break}f[x>>2]=Rg(k,(f[v>>2]|0)+100+8|0,(f[v>>2]|0)+100|0,f[(f[v>>2]|0)+100+4>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0)|0;if((f[x>>2]|0)==1){d[(f[v>>2]|0)+97>>0]=1;continue}if(f[x>>2]|0){b=20;break}if(!(d[(f[v>>2]|0)+96>>0]&1))continue;if((f[f[r>>2]>>2]|0)>>>0<(f[s>>2]|0)>>>0){b=23;break}}if((b|0)==10){f[u>>2]=f[w>>2];m=f[u>>2]|0;l=y;return m|0}else if((b|0)==12){if(f[k+100+4>>2]|0){f[u>>2]=9;m=f[u>>2]|0;l=y;return m|0}if(d[(f[v>>2]|0)+96>>0]&1){f[u>>2]=1;m=f[u>>2]|0;l=y;return m|0}else{f[u>>2]=0;m=f[u>>2]|0;l=y;return m|0}}else if((b|0)==20){f[u>>2]=f[x>>2];m=f[u>>2]|0;l=y;return m|0}else if((b|0)==23){f[u>>2]=9;m=f[u>>2]|0;l=y;return m|0}else if((b|0)==24){f[u>>2]=0;m=f[u>>2]|0;l=y;return m|0}return 0}function Pg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=l;l=l+16|0;c=e+4|0;d=e;f[c>>2]=a;f[d>>2]=b;mb((f[c>>2]|0)+48|0,f[d>>2]|0);jb(f[f[c>>2]>>2]|0,f[d>>2]|0);b=(f[c>>2]|0)+24|0;if(f[(f[c>>2]|0)+24+16>>2]|0){Kh[f[b+16>>2]&31](f[(f[c>>2]|0)+24>>2]|0,f[d>>2]|0);a=f[c>>2]|0;b=f[d>>2]|0;jb(a,b);l=e;return}else{jb(f[b>>2]|0,f[d>>2]|0);a=f[c>>2]|0;b=f[d>>2]|0;jb(a,b);l=e;return}}function Qg(a){a=a|0;var b=0,c=0;b=l;l=l+16|0;c=b;f[c>>2]=a;f[(f[c>>2]|0)+4>>2]=0;f[(f[c>>2]|0)+8>>2]=0;d[(f[f[c>>2]>>2]|0)+((f[(f[c>>2]|0)+16>>2]|0)-1)>>0]=0;d[(f[c>>2]|0)+20>>0]=0;l=b;return}function Rg(a,b,c,e,g,h,i){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+48|0;t=v+40|0;j=v+36|0;k=v+32|0;m=v+28|0;n=v+24|0;o=v+20|0;p=v+16|0;q=v+12|0;s=v+8|0;u=v+4|0;r=v;f[j>>2]=a;f[k>>2]=b;f[m>>2]=c;f[n>>2]=e;f[o>>2]=g;f[p>>2]=h;f[q>>2]=i;while(1){if((f[(f[j>>2]|0)+4>>2]|0)==(f[(f[j>>2]|0)+16>>2]|0))f[(f[j>>2]|0)+4>>2]=0;f[s>>2]=f[(f[j>>2]|0)+4>>2];if(((f[q>>2]|0)-(f[f[p>>2]>>2]|0)|0)>>>0<((f[(f[j>>2]|0)+16>>2]|0)-(f[(f[j>>2]|0)+4>>2]|0)|0)>>>0)a=(f[q>>2]|0)-(f[f[p>>2]>>2]|0)|0;else a=(f[(f[j>>2]|0)+16>>2]|0)-(f[(f[j>>2]|0)+4>>2]|0)|0;f[(f[j>>2]|0)+12>>2]=(f[(f[j>>2]|0)+4>>2]|0)+a;f[u>>2]=Ph[f[(f[j>>2]|0)+24+4>>2]&15](f[(f[j>>2]|0)+24>>2]|0,f[j>>2]|0,f[k>>2]|0,f[m>>2]|0,f[n>>2]|0)|0;f[r>>2]=(f[(f[j>>2]|0)+4>>2]|0)-(f[s>>2]|0);gh((f[o>>2]|0)+(f[f[p>>2]>>2]|0)|0,(f[f[j>>2]>>2]|0)+(f[s>>2]|0)|0,f[r>>2]|0)|0;i=f[p>>2]|0;f[i>>2]=(f[i>>2]|0)+(f[r>>2]|0);if(d[(f[j>>2]|0)+20>>0]&1){Qg(f[j>>2]|0);if(f[u>>2]|0){a=10;break}if((f[f[p>>2]>>2]|0)==(f[q>>2]|0)){a=10;break}else continue}if(f[u>>2]|0){a=14;break}if((f[f[p>>2]>>2]|0)==(f[q>>2]|0)){a=14;break}if((f[(f[j>>2]|0)+4>>2]|0)>>>0<(f[(f[j>>2]|0)+16>>2]|0)>>>0){a=14;break}}if((a|0)==10){f[t>>2]=f[u>>2];m=f[t>>2]|0;l=v;return m|0}else if((a|0)==14){f[t>>2]=f[u>>2];m=f[t>>2]|0;l=v;return m|0}return 0}function Sg(a,b,c,e,g,h,i,j){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+96|0;m=w+80|0;n=w+76|0;o=w+72|0;p=w+68|0;q=w+64|0;r=w+60|0;s=w+56|0;t=w+52|0;u=w+84|0;k=w;v=w+48|0;f[n>>2]=a;f[o>>2]=b;f[p>>2]=c;f[q>>2]=e;f[r>>2]=g;f[s>>2]=h;f[t>>2]=i;d[u>>0]=j&1;do if(!(f[f[n>>2]>>2]|0)){h=hb(80+(f[s>>2]<<1)|0,f[o>>2]|0)|0;f[f[n>>2]>>2]=h;if(!(f[f[n>>2]>>2]|0)){f[m>>2]=5;m=f[m>>2]|0;l=w;return m|0}f[(f[n>>2]|0)+20>>2]=10;f[(f[n>>2]|0)+24>>2]=18;f[(f[n>>2]|0)+40>>2]=14;e=f[f[n>>2]>>2]|0;b=k;i=b+48|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(i|0));b=k+8|0;f[b>>2]=-1;f[b+4>>2]=-1;f[k+16>>2]=0;b=e;i=b+48|0;do{f[b>>2]=f[k>>2];b=b+4|0;k=k+4|0}while((b|0)<(i|0));f[(f[f[n>>2]>>2]|0)+52>>2]=f[q>>2];f[(f[f[n>>2]>>2]|0)+64>>2]=f[s>>2]<<1;if((f[r>>2]|0)>>>0<=0){f[(f[f[n>>2]>>2]|0)+56>>2]=0;break}h=hb(f[r>>2]|0,f[o>>2]|0)|0;f[(f[f[n>>2]>>2]|0)+56>>2]=h;if(!(f[(f[f[n>>2]>>2]|0)+56>>2]|0)){f[m>>2]=5;m=f[m>>2]|0;l=w;return m|0}}while(0);if(f[(f[p>>2]|0)+12>>2]|0){f[v>>2]=f[(f[p>>2]|0)+12>>2];f[(f[f[n>>2]>>2]|0)+60>>2]=f[f[v>>2]>>2];if(f[(f[f[n>>2]>>2]|0)+60>>2]&(f[t>>2]|0)-1){f[m>>2]=8;m=f[m>>2]|0;l=w;return m|0}}else f[(f[f[n>>2]>>2]|0)+60>>2]=0;d[(f[f[n>>2]>>2]|0)+49>>0]=d[u>>0]&1;d[(f[f[n>>2]>>2]|0)+48>>0]=0;f[(f[f[n>>2]>>2]|0)+68>>2]=0;f[(f[f[n>>2]>>2]|0)+72>>2]=0;f[(f[f[n>>2]>>2]|0)+76>>2]=0;f[m>>2]=lb(f[f[n>>2]>>2]|0,f[o>>2]|0,(f[p>>2]|0)+16|0)|0;m=f[m>>2]|0;l=w;return m|0}function Tg(a,b,c,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+80|0;m=E+68|0;n=E+64|0;o=E+60|0;p=E+56|0;q=E+52|0;r=E+48|0;s=E+44|0;t=E+40|0;u=E+36|0;v=E+32|0;y=E+28|0;w=E+24|0;z=E+20|0;A=E+16|0;C=E+12|0;x=E+8|0;D=E+4|0;B=E;f[n>>2]=a;f[o>>2]=b;f[p>>2]=c;f[q>>2]=e;f[r>>2]=g;f[s>>2]=h;f[t>>2]=i;f[u>>2]=j;f[v>>2]=k;if((f[v>>2]|0)==1){f[m>>2]=8;j=f[m>>2]|0;l=E;return j|0}if((f[(f[n>>2]|0)+68>>2]|0)>>>0<(f[(f[n>>2]|0)+72>>2]|0)>>>0){kb((f[n>>2]|0)+80|0,(f[n>>2]|0)+68|0,f[(f[n>>2]|0)+72>>2]|0,f[s>>2]|0,f[t>>2]|0,f[u>>2]|0)|0;if((f[(f[n>>2]|0)+68>>2]|0)>>>0<(f[(f[n>>2]|0)+72>>2]|0)>>>0){f[m>>2]=0;j=f[m>>2]|0;l=E;return j|0}if(d[(f[n>>2]|0)+48>>0]&1){f[m>>2]=1;j=f[m>>2]|0;l=E;return j|0}}f[(f[n>>2]|0)+72>>2]=0;f[y>>2]=(f[u>>2]|0)-(f[f[t>>2]>>2]|0);f[w>>2]=(f[(f[n>>2]|0)+76>>2]|0)-(f[(f[n>>2]|0)+68>>2]|0);do if((f[w>>2]|0)==0?1:(f[y>>2]|0)>>>0>(f[w>>2]|0)>>>0){f[z>>2]=f[f[t>>2]>>2];gh((f[s>>2]|0)+(f[f[t>>2]>>2]|0)|0,(f[n>>2]|0)+80+(f[(f[n>>2]|0)+68>>2]|0)|0,f[w>>2]|0)|0;j=f[t>>2]|0;f[j>>2]=(f[j>>2]|0)+(f[w>>2]|0);f[A>>2]=Wg(f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0,f[u>>2]|0,f[v>>2]|0)|0;if(f[A>>2]|0){f[m>>2]=f[A>>2];j=f[m>>2]|0;l=E;return j|0}f[C>>2]=(f[f[t>>2]>>2]|0)-(f[z>>2]|0);f[x>>2]=Xg(f[n>>2]|0,(f[s>>2]|0)+(f[z>>2]|0)|0,f[C>>2]|0)|0;f[D>>2]=(f[C>>2]|0)-(f[x>>2]|0);f[(f[n>>2]|0)+68>>2]=0;f[(f[n>>2]|0)+76>>2]=f[D>>2];if(d[(f[n>>2]|0)+48>>0]&1){f[(f[n>>2]|0)+76>>2]=0;break}if((f[D>>2]|0)>>>0>0){j=f[t>>2]|0;f[j>>2]=(f[j>>2]|0)-(f[D>>2]|0);gh((f[n>>2]|0)+80|0,(f[s>>2]|0)+(f[f[t>>2]>>2]|0)|0,f[D>>2]|0)|0}}else if((f[(f[n>>2]|0)+68>>2]|0)>>>0>0){ih((f[n>>2]|0)+80|0,(f[n>>2]|0)+80+(f[(f[n>>2]|0)+68>>2]|0)|0,f[w>>2]|0)|0;j=(f[n>>2]|0)+76|0;f[j>>2]=(f[j>>2]|0)-(f[(f[n>>2]|0)+68>>2]|0);f[(f[n>>2]|0)+68>>2]=0}while(0);if((f[(f[n>>2]|0)+76>>2]|0)>>>0>0){f[B>>2]=Wg(f[n>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,(f[n>>2]|0)+80|0,(f[n>>2]|0)+76|0,f[(f[n>>2]|0)+64>>2]|0,f[v>>2]|0)|0;if(f[B>>2]|0){f[m>>2]=f[B>>2];j=f[m>>2]|0;l=E;return j|0}j=Xg(f[n>>2]|0,(f[n>>2]|0)+80|0,f[(f[n>>2]|0)+76>>2]|0)|0;f[(f[n>>2]|0)+72>>2]=j;if(d[(f[n>>2]|0)+48>>0]&1)f[(f[n>>2]|0)+72>>2]=f[(f[n>>2]|0)+76>>2];kb((f[n>>2]|0)+80|0,(f[n>>2]|0)+68|0,f[(f[n>>2]|0)+72>>2]|0,f[s>>2]|0,f[t>>2]|0,f[u>>2]|0)|0}if(d[(f[n>>2]|0)+48>>0]&1?(f[(f[n>>2]|0)+68>>2]|0)==(f[(f[n>>2]|0)+76>>2]|0):0){f[m>>2]=1;j=f[m>>2]|0;l=E;return j|0}f[m>>2]=0;j=f[m>>2]|0;l=E;return j|0}function Ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=l;l=l+16|0;e=c+4|0;d=c;f[e>>2]=a;f[d>>2]=b;mb(f[e>>2]|0,f[d>>2]|0);jb(f[(f[e>>2]|0)+56>>2]|0,f[d>>2]|0);jb(f[e>>2]|0,f[d>>2]|0);l=c;return}function Vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=l;l=l+16|0;i=e+12|0;h=e+8|0;g=e;f[i>>2]=a;f[h>>2]=b;f[e+4>>2]=c;f[g>>2]=d;b=nb(f[i>>2]|0,f[h>>2]|0,(f[g>>2]|0)+16|0)|0;l=e;return b|0}function Wg(a,b,c,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+48|0;m=x+40|0;n=x+36|0;o=x+32|0;p=x+28|0;q=x+24|0;r=x+20|0;s=x+16|0;t=x+12|0;u=x+8|0;v=x+4|0;w=x;f[n>>2]=a;f[o>>2]=b;f[p>>2]=c;f[q>>2]=e;f[r>>2]=g;f[s>>2]=h;f[t>>2]=i;f[u>>2]=j;f[v>>2]=k;do if(!(f[(f[n>>2]|0)+20>>2]|0)){kb(f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0,f[u>>2]|0)|0;if(d[(f[n>>2]|0)+49>>0]&1&(f[v>>2]|0)==3?(f[f[q>>2]>>2]|0)==(f[r>>2]|0):0)d[(f[n>>2]|0)+48>>0]=1}else{f[w>>2]=Jh[f[(f[n>>2]|0)+20>>2]&15](f[f[n>>2]>>2]|0,f[o>>2]|0,f[p>>2]|0,f[q>>2]|0,f[r>>2]|0,f[s>>2]|0,f[t>>2]|0,f[u>>2]|0,f[v>>2]|0)|0;if((f[w>>2]|0)==1){d[(f[n>>2]|0)+48>>0]=1;break}if(f[w>>2]|0){f[m>>2]=f[w>>2];v=f[m>>2]|0;l=x;return v|0}}while(0);f[m>>2]=0;v=f[m>>2]|0;l=x;return v|0}function Xg(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+12|0;j=g+8|0;i=g+4|0;e=g;f[h>>2]=a;f[j>>2]=b;f[i>>2]=c;f[e>>2]=Ph[f[(f[h>>2]|0)+52>>2]&15](f[(f[h>>2]|0)+56>>2]|0,f[(f[h>>2]|0)+60>>2]|0,d[(f[h>>2]|0)+49>>0]&1,f[j>>2]|0,f[i>>2]|0)|0;b=(f[h>>2]|0)+60|0;f[b>>2]=(f[b>>2]|0)+(f[e>>2]|0);l=g;return f[e>>2]|0}function Yg(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,f=0,g=0;if(!c){a=0;return a|0}else{f=c;e=a}while(1){c=d[e>>0]|0;a=d[b>>0]|0;if(c<<24>>24!=a<<24>>24)break;f=f+-1|0;if(!f){a=0;g=5;break}else{e=e+1|0;b=b+1|0}}if((g|0)==5)return a|0;a=(c&255)-(a&255)|0;return a|0}function Zg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;do if(a>>>0<245){q=a>>>0<11?16:a+11&-8;a=q>>>3;l=f[6698]|0;j=l>>>a;if(j&3){d=(j&1^1)+a|0;e=d<<1;b=26832+(e<<2)|0;e=26832+(e+2<<2)|0;g=f[e>>2]|0;h=g+8|0;i=f[h>>2]|0;do if((b|0)!=(i|0)){if(i>>>0<(f[6702]|0)>>>0)Pa();c=i+12|0;if((f[c>>2]|0)==(g|0)){f[c>>2]=b;f[e>>2]=i;break}else Pa()}else f[6698]=l&~(1<<d);while(0);w=d<<3;f[g+4>>2]=w|3;w=g+(w|4)|0;f[w>>2]=f[w>>2]|1;w=h;return w|0}b=f[6700]|0;if(q>>>0>b>>>0){if(j){e=2<<a;e=j<<a&(e|0-e);e=(e&0-e)+-1|0;a=e>>>12&16;e=e>>>a;d=e>>>5&8;e=e>>>d;c=e>>>2&4;e=e>>>c;g=e>>>1&2;e=e>>>g;h=e>>>1&1;h=(d|a|c|g|h)+(e>>>h)|0;e=h<<1;g=26832+(e<<2)|0;e=26832+(e+2<<2)|0;c=f[e>>2]|0;a=c+8|0;d=f[a>>2]|0;do if((g|0)!=(d|0)){if(d>>>0<(f[6702]|0)>>>0)Pa();i=d+12|0;if((f[i>>2]|0)==(c|0)){f[i>>2]=g;f[e>>2]=d;k=f[6700]|0;break}else Pa()}else{f[6698]=l&~(1<<h);k=b}while(0);w=h<<3;b=w-q|0;f[c+4>>2]=q|3;j=c+q|0;f[c+(q|4)>>2]=b|1;f[c+w>>2]=b;if(k){d=f[6703]|0;g=k>>>3;i=g<<1;e=26832+(i<<2)|0;h=f[6698]|0;g=1<<g;if(h&g){h=26832+(i+2<<2)|0;i=f[h>>2]|0;if(i>>>0<(f[6702]|0)>>>0)Pa();else{m=h;n=i}}else{f[6698]=h|g;m=26832+(i+2<<2)|0;n=e}f[m>>2]=d;f[n+12>>2]=d;f[d+8>>2]=n;f[d+12>>2]=e}f[6700]=b;f[6703]=j;w=a;return w|0}a=f[6699]|0;if(a){h=(a&0-a)+-1|0;v=h>>>12&16;h=h>>>v;u=h>>>5&8;h=h>>>u;w=h>>>2&4;h=h>>>w;i=h>>>1&2;h=h>>>i;g=h>>>1&1;g=f[27096+((u|v|w|i|g)+(h>>>g)<<2)>>2]|0;h=(f[g+4>>2]&-8)-q|0;i=g;while(1){c=f[i+16>>2]|0;if(!c){c=f[i+20>>2]|0;if(!c){l=h;k=g;break}}i=(f[c+4>>2]&-8)-q|0;w=i>>>0<h>>>0;h=w?i:h;i=c;g=w?c:g}a=f[6702]|0;if(k>>>0<a>>>0)Pa();b=k+q|0;if(k>>>0>=b>>>0)Pa();j=f[k+24>>2]|0;g=f[k+12>>2]|0;do if((g|0)==(k|0)){h=k+20|0;i=f[h>>2]|0;if(!i){h=k+16|0;i=f[h>>2]|0;if(!i){d=0;break}}while(1){g=i+20|0;e=f[g>>2]|0;if(e){i=e;h=g;continue}g=i+16|0;e=f[g>>2]|0;if(!e)break;else{i=e;h=g}}if(h>>>0<a>>>0)Pa();else{f[h>>2]=0;d=i;break}}else{e=f[k+8>>2]|0;if(e>>>0<a>>>0)Pa();i=e+12|0;if((f[i>>2]|0)!=(k|0))Pa();h=g+8|0;if((f[h>>2]|0)==(k|0)){f[i>>2]=g;f[h>>2]=e;d=g;break}else Pa()}while(0);do if(j){i=f[k+28>>2]|0;h=27096+(i<<2)|0;if((k|0)==(f[h>>2]|0)){f[h>>2]=d;if(!d){f[6699]=f[6699]&~(1<<i);break}}else{if(j>>>0<(f[6702]|0)>>>0)Pa();i=j+16|0;if((f[i>>2]|0)==(k|0))f[i>>2]=d;else f[j+20>>2]=d;if(!d)break}h=f[6702]|0;if(d>>>0<h>>>0)Pa();f[d+24>>2]=j;i=f[k+16>>2]|0;do if(i)if(i>>>0<h>>>0)Pa();else{f[d+16>>2]=i;f[i+24>>2]=d;break}while(0);i=f[k+20>>2]|0;if(i)if(i>>>0<(f[6702]|0)>>>0)Pa();else{f[d+20>>2]=i;f[i+24>>2]=d;break}}while(0);if(l>>>0<16){w=l+q|0;f[k+4>>2]=w|3;w=k+(w+4)|0;f[w>>2]=f[w>>2]|1}else{f[k+4>>2]=q|3;f[k+(q|4)>>2]=l|1;f[k+(l+q)>>2]=l;c=f[6700]|0;if(c){d=f[6703]|0;g=c>>>3;i=g<<1;e=26832+(i<<2)|0;h=f[6698]|0;g=1<<g;if(h&g){i=26832+(i+2<<2)|0;h=f[i>>2]|0;if(h>>>0<(f[6702]|0)>>>0)Pa();else{p=i;o=h}}else{f[6698]=h|g;p=26832+(i+2<<2)|0;o=e}f[p>>2]=d;f[o+12>>2]=d;f[d+8>>2]=o;f[d+12>>2]=e}f[6700]=l;f[6703]=b}w=k+8|0;return w|0}else z=q}else z=q}else if(a>>>0<=4294967231){a=a+11|0;p=a&-8;k=f[6699]|0;if(k){j=0-p|0;a=a>>>8;if(a)if(p>>>0>16777215)l=31;else{q=(a+1048320|0)>>>16&8;w=a<<q;o=(w+520192|0)>>>16&4;w=w<<o;l=(w+245760|0)>>>16&2;l=14-(o|q|l)+(w<<l>>>15)|0;l=p>>>(l+7|0)&1|l<<1}else l=0;a=f[27096+(l<<2)>>2]|0;a:do if(!a){h=0;a=0;w=86}else{d=j;h=0;c=p<<((l|0)==31?0:25-(l>>>1)|0);b=a;a=0;while(1){g=f[b+4>>2]&-8;j=g-p|0;if(j>>>0<d>>>0)if((g|0)==(p|0)){g=b;a=b;w=90;break a}else a=b;else j=d;w=f[b+20>>2]|0;b=f[b+16+(c>>>31<<2)>>2]|0;h=(w|0)==0|(w|0)==(b|0)?h:w;if(!b){w=86;break}else{d=j;c=c<<1}}}while(0);if((w|0)==86){if((h|0)==0&(a|0)==0){a=2<<l;a=k&(a|0-a);if(!a){z=p;break}a=(a&0-a)+-1|0;n=a>>>12&16;a=a>>>n;m=a>>>5&8;a=a>>>m;o=a>>>2&4;a=a>>>o;q=a>>>1&2;a=a>>>q;h=a>>>1&1;h=f[27096+((m|n|o|q|h)+(a>>>h)<<2)>>2]|0;a=0}if(!h){n=j;q=a}else{g=h;w=90}}if((w|0)==90)while(1){w=0;q=(f[g+4>>2]&-8)-p|0;h=q>>>0<j>>>0;j=h?q:j;a=h?g:a;h=f[g+16>>2]|0;if(h){g=h;w=90;continue}g=f[g+20>>2]|0;if(!g){n=j;q=a;break}else w=90}if((q|0)!=0?n>>>0<((f[6700]|0)-p|0)>>>0:0){a=f[6702]|0;if(q>>>0<a>>>0)Pa();m=q+p|0;if(q>>>0>=m>>>0)Pa();j=f[q+24>>2]|0;g=f[q+12>>2]|0;do if((g|0)==(q|0)){h=q+20|0;i=f[h>>2]|0;if(!i){h=q+16|0;i=f[h>>2]|0;if(!i){s=0;break}}while(1){g=i+20|0;e=f[g>>2]|0;if(e){i=e;h=g;continue}g=i+16|0;e=f[g>>2]|0;if(!e)break;else{i=e;h=g}}if(h>>>0<a>>>0)Pa();else{f[h>>2]=0;s=i;break}}else{e=f[q+8>>2]|0;if(e>>>0<a>>>0)Pa();i=e+12|0;if((f[i>>2]|0)!=(q|0))Pa();h=g+8|0;if((f[h>>2]|0)==(q|0)){f[i>>2]=g;f[h>>2]=e;s=g;break}else Pa()}while(0);do if(j){i=f[q+28>>2]|0;h=27096+(i<<2)|0;if((q|0)==(f[h>>2]|0)){f[h>>2]=s;if(!s){f[6699]=f[6699]&~(1<<i);break}}else{if(j>>>0<(f[6702]|0)>>>0)Pa();i=j+16|0;if((f[i>>2]|0)==(q|0))f[i>>2]=s;else f[j+20>>2]=s;if(!s)break}h=f[6702]|0;if(s>>>0<h>>>0)Pa();f[s+24>>2]=j;i=f[q+16>>2]|0;do if(i)if(i>>>0<h>>>0)Pa();else{f[s+16>>2]=i;f[i+24>>2]=s;break}while(0);i=f[q+20>>2]|0;if(i)if(i>>>0<(f[6702]|0)>>>0)Pa();else{f[s+20>>2]=i;f[i+24>>2]=s;break}}while(0);a:do if(n>>>0>=16){f[q+4>>2]=p|3;f[q+(p|4)>>2]=n|1;f[q+(n+p)>>2]=n;i=n>>>3;if(n>>>0<256){h=i<<1;e=26832+(h<<2)|0;g=f[6698]|0;i=1<<i;if(g&i){i=26832+(h+2<<2)|0;h=f[i>>2]|0;if(h>>>0<(f[6702]|0)>>>0)Pa();else{t=i;u=h}}else{f[6698]=g|i;t=26832+(h+2<<2)|0;u=e}f[t>>2]=m;f[u+12>>2]=m;f[q+(p+8)>>2]=u;f[q+(p+12)>>2]=e;break}c=n>>>8;if(c)if(n>>>0>16777215)e=31;else{v=(c+1048320|0)>>>16&8;w=c<<v;u=(w+520192|0)>>>16&4;w=w<<u;e=(w+245760|0)>>>16&2;e=14-(u|v|e)+(w<<e>>>15)|0;e=n>>>(e+7|0)&1|e<<1}else e=0;i=27096+(e<<2)|0;f[q+(p+28)>>2]=e;f[q+(p+20)>>2]=0;f[q+(p+16)>>2]=0;h=f[6699]|0;g=1<<e;if(!(h&g)){f[6699]=h|g;f[i>>2]=m;f[q+(p+24)>>2]=i;f[q+(p+12)>>2]=m;f[q+(p+8)>>2]=m;break}c=f[i>>2]|0;b:do if((f[c+4>>2]&-8|0)!=(n|0)){h=n<<((e|0)==31?0:25-(e>>>1)|0);while(1){b=c+16+(h>>>31<<2)|0;i=f[b>>2]|0;if(!i)break;if((f[i+4>>2]&-8|0)==(n|0)){z=i;break b}else{h=h<<1;c=i}}if(b>>>0<(f[6702]|0)>>>0)Pa();else{f[b>>2]=m;f[q+(p+24)>>2]=c;f[q+(p+12)>>2]=m;f[q+(p+8)>>2]=m;break a}}else z=c;while(0);c=z+8|0;b=f[c>>2]|0;w=f[6702]|0;if(b>>>0>=w>>>0&z>>>0>=w>>>0){f[b+12>>2]=m;f[c>>2]=m;f[q+(p+8)>>2]=b;f[q+(p+12)>>2]=z;f[q+(p+24)>>2]=0;break}else Pa()}else{w=n+p|0;f[q+4>>2]=w|3;w=q+(w+4)|0;f[w>>2]=f[w>>2]|1}while(0);w=q+8|0;return w|0}else z=p}else z=p}else z=-1;while(0);a=f[6700]|0;if(a>>>0>=z>>>0){b=a-z|0;c=f[6703]|0;if(b>>>0>15){f[6703]=c+z;f[6700]=b;f[c+(z+4)>>2]=b|1;f[c+a>>2]=b;f[c+4>>2]=z|3}else{f[6700]=0;f[6703]=0;f[c+4>>2]=a|3;w=c+(a+4)|0;f[w>>2]=f[w>>2]|1}w=c+8|0;return w|0}a=f[6701]|0;if(a>>>0>z>>>0){v=a-z|0;f[6701]=v;w=f[6704]|0;f[6704]=w+z;f[w+(z+4)>>2]=v|1;f[w+4>>2]=z|3;w=w+8|0;return w|0}do if(!(f[6816]|0)){a=Ca(30)|0;if(!(a+-1&a)){f[6818]=a;f[6817]=a;f[6819]=-1;f[6820]=-1;f[6821]=0;f[6809]=0;f[6816]=(Ra(0)|0)&-16^1431655768;break}else Pa()}while(0);l=z+48|0;c=f[6818]|0;b=z+47|0;d=c+b|0;c=0-c|0;m=d&c;if(m>>>0<=z>>>0){w=0;return w|0}a=f[6808]|0;if((a|0)!=0?(t=f[6806]|0,u=t+m|0,u>>>0<=t>>>0|u>>>0>a>>>0):0){w=0;return w|0}a:do if(!(f[6809]&4)){a=f[6704]|0;b:do if(a){h=27240;while(1){j=f[h>>2]|0;if(j>>>0<=a>>>0?(r=h+4|0,(j+(f[r>>2]|0)|0)>>>0>a>>>0):0){g=h;a=r;break}h=f[h+8>>2]|0;if(!h){w=174;break b}}j=d-(f[6701]|0)&c;if(j>>>0<2147483647){h=za(j|0)|0;u=(h|0)==((f[g>>2]|0)+(f[a>>2]|0)|0);a=u?j:0;if(u){if((h|0)!=(-1|0)){x=h;w=194;break a}}else w=184}else a=0}else w=174;while(0);do if((w|0)==174){g=za(0)|0;if((g|0)!=(-1|0)){a=g;j=f[6817]|0;h=j+-1|0;if(!(h&a))j=m;else j=m-a+(h+a&0-j)|0;a=f[6806]|0;h=a+j|0;if(j>>>0>z>>>0&j>>>0<2147483647){u=f[6808]|0;if((u|0)!=0?h>>>0<=a>>>0|h>>>0>u>>>0:0){a=0;break}h=za(j|0)|0;w=(h|0)==(g|0);a=w?j:0;if(w){x=g;w=194;break a}else w=184}else a=0}else a=0}while(0);b:do if((w|0)==184){g=0-j|0;do if(l>>>0>j>>>0&(j>>>0<2147483647&(h|0)!=(-1|0))?(v=f[6818]|0,v=b-j+v&0-v,v>>>0<2147483647):0)if((za(v|0)|0)==(-1|0)){za(g|0)|0;break b}else{j=v+j|0;break}while(0);if((h|0)!=(-1|0)){x=h;a=j;w=194;break a}}while(0);f[6809]=f[6809]|4;w=191}else{a=0;w=191}while(0);if((((w|0)==191?m>>>0<2147483647:0)?(x=za(m|0)|0,y=za(0)|0,x>>>0<y>>>0&((x|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(A=y-x|0,B=A>>>0>(z+40|0)>>>0,B):0){a=B?A:a;w=194}if((w|0)==194){j=(f[6806]|0)+a|0;f[6806]=j;if(j>>>0>(f[6807]|0)>>>0)f[6807]=j;n=f[6704]|0;a:do if(n){d=27240;do{j=f[d>>2]|0;h=d+4|0;g=f[h>>2]|0;if((x|0)==(j+g|0)){C=j;D=h;E=g;F=d;w=204;break}d=f[d+8>>2]|0}while((d|0)!=0);if(((w|0)==204?(f[F+12>>2]&8|0)==0:0)?n>>>0<x>>>0&n>>>0>=C>>>0:0){f[D>>2]=E+a;w=(f[6701]|0)+a|0;v=n+8|0;v=(v&7|0)==0?0:0-v&7;u=w-v|0;f[6704]=n+v;f[6701]=u;f[n+(v+4)>>2]=u|1;f[n+(w+4)>>2]=40;f[6705]=f[6820];break}j=f[6702]|0;if(x>>>0<j>>>0){f[6702]=x;j=x}h=x+a|0;d=27240;while(1){if((f[d>>2]|0)==(h|0)){g=d;h=d;w=212;break}d=f[d+8>>2]|0;if(!d){g=27240;break}}if((w|0)==212)if(!(f[h+12>>2]&8)){f[g>>2]=x;p=h+4|0;f[p>>2]=(f[p>>2]|0)+a;p=x+8|0;p=(p&7|0)==0?0:0-p&7;k=x+(a+8)|0;k=(k&7|0)==0?0:0-k&7;i=x+(k+a)|0;o=p+z|0;q=x+o|0;m=i-(x+p)-z|0;f[x+(p+4)>>2]=z|3;b:do if((i|0)!=(n|0)){if((i|0)==(f[6703]|0)){w=(f[6700]|0)+m|0;f[6700]=w;f[6703]=q;f[x+(o+4)>>2]=w|1;f[x+(w+o)>>2]=w;break}l=a+4|0;h=f[x+(l+k)>>2]|0;if((h&3|0)==1){b=h&-8;d=h>>>3;c:do if(h>>>0>=256){c=f[x+((k|24)+a)>>2]|0;g=f[x+(a+12+k)>>2]|0;do if((g|0)==(i|0)){e=k|16;g=x+(l+e)|0;h=f[g>>2]|0;if(!h){g=x+(e+a)|0;h=f[g>>2]|0;if(!h){K=0;break}}while(1){e=h+20|0;d=f[e>>2]|0;if(d){h=d;g=e;continue}e=h+16|0;d=f[e>>2]|0;if(!d)break;else{h=d;g=e}}if(g>>>0<j>>>0)Pa();else{f[g>>2]=0;K=h;break}}else{e=f[x+((k|8)+a)>>2]|0;if(e>>>0<j>>>0)Pa();j=e+12|0;if((f[j>>2]|0)!=(i|0))Pa();h=g+8|0;if((f[h>>2]|0)==(i|0)){f[j>>2]=g;f[h>>2]=e;K=g;break}else Pa()}while(0);if(!c)break;j=f[x+(a+28+k)>>2]|0;h=27096+(j<<2)|0;do if((i|0)!=(f[h>>2]|0)){if(c>>>0<(f[6702]|0)>>>0)Pa();j=c+16|0;if((f[j>>2]|0)==(i|0))f[j>>2]=K;else f[c+20>>2]=K;if(!K)break c}else{f[h>>2]=K;if(K)break;f[6699]=f[6699]&~(1<<j);break c}while(0);h=f[6702]|0;if(K>>>0<h>>>0)Pa();f[K+24>>2]=c;j=k|16;i=f[x+(j+a)>>2]|0;do if(i)if(i>>>0<h>>>0)Pa();else{f[K+16>>2]=i;f[i+24>>2]=K;break}while(0);i=f[x+(l+j)>>2]|0;if(!i)break;if(i>>>0<(f[6702]|0)>>>0)Pa();else{f[K+20>>2]=i;f[i+24>>2]=K;break}}else{g=f[x+((k|8)+a)>>2]|0;e=f[x+(a+12+k)>>2]|0;h=26832+(d<<1<<2)|0;do if((g|0)!=(h|0)){if(g>>>0<j>>>0)Pa();if((f[g+12>>2]|0)==(i|0))break;Pa()}while(0);if((e|0)==(g|0)){f[6698]=f[6698]&~(1<<d);break}do if((e|0)==(h|0))G=e+8|0;else{if(e>>>0<j>>>0)Pa();j=e+8|0;if((f[j>>2]|0)==(i|0)){G=j;break}Pa()}while(0);f[g+12>>2]=e;f[G>>2]=g}while(0);i=x+((b|k)+a)|0;j=b+m|0}else j=m;i=i+4|0;f[i>>2]=f[i>>2]&-2;f[x+(o+4)>>2]=j|1;f[x+(j+o)>>2]=j;i=j>>>3;if(j>>>0<256){h=i<<1;e=26832+(h<<2)|0;g=f[6698]|0;i=1<<i;do if(!(g&i)){f[6698]=g|i;L=26832+(h+2<<2)|0;M=e}else{i=26832+(h+2<<2)|0;h=f[i>>2]|0;if(h>>>0>=(f[6702]|0)>>>0){L=i;M=h;break}Pa()}while(0);f[L>>2]=q;f[M+12>>2]=q;f[x+(o+8)>>2]=M;f[x+(o+12)>>2]=e;break}c=j>>>8;do if(!c)e=0;else{if(j>>>0>16777215){e=31;break}v=(c+1048320|0)>>>16&8;w=c<<v;u=(w+520192|0)>>>16&4;w=w<<u;e=(w+245760|0)>>>16&2;e=14-(u|v|e)+(w<<e>>>15)|0;e=j>>>(e+7|0)&1|e<<1}while(0);i=27096+(e<<2)|0;f[x+(o+28)>>2]=e;f[x+(o+20)>>2]=0;f[x+(o+16)>>2]=0;h=f[6699]|0;g=1<<e;if(!(h&g)){f[6699]=h|g;f[i>>2]=q;f[x+(o+24)>>2]=i;f[x+(o+12)>>2]=q;f[x+(o+8)>>2]=q;break}c=f[i>>2]|0;c:do if((f[c+4>>2]&-8|0)!=(j|0)){h=j<<((e|0)==31?0:25-(e>>>1)|0);while(1){b=c+16+(h>>>31<<2)|0;i=f[b>>2]|0;if(!i)break;if((f[i+4>>2]&-8|0)==(j|0)){N=i;break c}else{h=h<<1;c=i}}if(b>>>0<(f[6702]|0)>>>0)Pa();else{f[b>>2]=q;f[x+(o+24)>>2]=c;f[x+(o+12)>>2]=q;f[x+(o+8)>>2]=q;break b}}else N=c;while(0);c=N+8|0;b=f[c>>2]|0;w=f[6702]|0;if(b>>>0>=w>>>0&N>>>0>=w>>>0){f[b+12>>2]=q;f[c>>2]=q;f[x+(o+8)>>2]=b;f[x+(o+12)>>2]=N;f[x+(o+24)>>2]=0;break}else Pa()}else{w=(f[6701]|0)+m|0;f[6701]=w;f[6704]=q;f[x+(o+4)>>2]=w|1}while(0);w=x+(p|8)|0;return w|0}else g=27240;while(1){h=f[g>>2]|0;if(h>>>0<=n>>>0?(i=f[g+4>>2]|0,e=h+i|0,e>>>0>n>>>0):0)break;g=f[g+8>>2]|0}j=h+(i+-39)|0;h=h+(i+-47+((j&7|0)==0?0:0-j&7))|0;j=n+16|0;h=h>>>0<j>>>0?n:h;i=h+8|0;g=x+8|0;g=(g&7|0)==0?0:0-g&7;w=a+-40-g|0;f[6704]=x+g;f[6701]=w;f[x+(g+4)>>2]=w|1;f[x+(a+-36)>>2]=40;f[6705]=f[6820];g=h+4|0;f[g>>2]=27;f[i>>2]=f[6810];f[i+4>>2]=f[6811];f[i+8>>2]=f[6812];f[i+12>>2]=f[6813];f[6810]=x;f[6811]=a;f[6813]=0;f[6812]=i;i=h+28|0;f[i>>2]=7;if((h+32|0)>>>0<e>>>0)do{w=i;i=i+4|0;f[i>>2]=7}while((w+8|0)>>>0<e>>>0);if((h|0)!=(n|0)){e=h-n|0;f[g>>2]=f[g>>2]&-2;f[n+4>>2]=e|1;f[h>>2]=e;i=e>>>3;if(e>>>0<256){h=i<<1;e=26832+(h<<2)|0;g=f[6698]|0;i=1<<i;if(g&i){c=26832+(h+2<<2)|0;b=f[c>>2]|0;if(b>>>0<(f[6702]|0)>>>0)Pa();else{H=c;I=b}}else{f[6698]=g|i;H=26832+(h+2<<2)|0;I=e}f[H>>2]=n;f[I+12>>2]=n;f[n+8>>2]=I;f[n+12>>2]=e;break}c=e>>>8;if(c)if(e>>>0>16777215)h=31;else{v=(c+1048320|0)>>>16&8;w=c<<v;u=(w+520192|0)>>>16&4;w=w<<u;h=(w+245760|0)>>>16&2;h=14-(u|v|h)+(w<<h>>>15)|0;h=e>>>(h+7|0)&1|h<<1}else h=0;i=27096+(h<<2)|0;f[n+28>>2]=h;f[n+20>>2]=0;f[j>>2]=0;c=f[6699]|0;b=1<<h;if(!(c&b)){f[6699]=c|b;f[i>>2]=n;f[n+24>>2]=i;f[n+12>>2]=n;f[n+8>>2]=n;break}c=f[i>>2]|0;b:do if((f[c+4>>2]&-8|0)!=(e|0)){i=e<<((h|0)==31?0:25-(h>>>1)|0);while(1){b=c+16+(i>>>31<<2)|0;d=f[b>>2]|0;if(!d)break;if((f[d+4>>2]&-8|0)==(e|0)){J=d;break b}else{i=i<<1;c=d}}if(b>>>0<(f[6702]|0)>>>0)Pa();else{f[b>>2]=n;f[n+24>>2]=c;f[n+12>>2]=n;f[n+8>>2]=n;break a}}else J=c;while(0);c=J+8|0;b=f[c>>2]|0;w=f[6702]|0;if(b>>>0>=w>>>0&J>>>0>=w>>>0){f[b+12>>2]=n;f[c>>2]=n;f[n+8>>2]=b;f[n+12>>2]=J;f[n+24>>2]=0;break}else Pa()}}else{w=f[6702]|0;if((w|0)==0|x>>>0<w>>>0)f[6702]=x;f[6810]=x;f[6811]=a;f[6813]=0;f[6707]=f[6816];f[6706]=-1;c=0;do{w=c<<1;v=26832+(w<<2)|0;f[26832+(w+3<<2)>>2]=v;f[26832+(w+2<<2)>>2]=v;c=c+1|0}while((c|0)!=32);w=x+8|0;w=(w&7|0)==0?0:0-w&7;v=a+-40-w|0;f[6704]=x+w;f[6701]=v;f[x+(w+4)>>2]=v|1;f[x+(a+-36)>>2]=40;f[6705]=f[6820]}while(0);b=f[6701]|0;if(b>>>0>z>>>0){v=b-z|0;f[6701]=v;w=f[6704]|0;f[6704]=w+z;f[w+(z+4)>>2]=v|1;f[w+4>>2]=z|3;w=w+8|0;return w|0}}f[(La()|0)>>2]=12;w=0;return w|0}function $g(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;g=a+-8|0;h=f[6702]|0;if(g>>>0<h>>>0)Pa();e=f[a+-4>>2]|0;d=e&3;if((d|0)==1)Pa();o=e&-8;q=a+(o+-8)|0;do if(!(e&1)){g=f[g>>2]|0;if(!d)return;i=-8-g|0;l=a+i|0;m=g+o|0;if(l>>>0<h>>>0)Pa();if((l|0)==(f[6703]|0)){g=a+(o+-4)|0;e=f[g>>2]|0;if((e&3|0)!=3){u=l;k=m;break}f[6700]=m;f[g>>2]=e&-2;
f[a+(i+4)>>2]=m|1;f[q>>2]=m;return}c=g>>>3;if(g>>>0<256){d=f[a+(i+8)>>2]|0;e=f[a+(i+12)>>2]|0;g=26832+(c<<1<<2)|0;if((d|0)!=(g|0)){if(d>>>0<h>>>0)Pa();if((f[d+12>>2]|0)!=(l|0))Pa()}if((e|0)==(d|0)){f[6698]=f[6698]&~(1<<c);u=l;k=m;break}if((e|0)!=(g|0)){if(e>>>0<h>>>0)Pa();g=e+8|0;if((f[g>>2]|0)==(l|0))b=g;else Pa()}else b=e+8|0;f[d+12>>2]=e;f[b>>2]=d;u=l;k=m;break}b=f[a+(i+24)>>2]|0;d=f[a+(i+12)>>2]|0;do if((d|0)==(l|0)){e=a+(i+20)|0;g=f[e>>2]|0;if(!g){e=a+(i+16)|0;g=f[e>>2]|0;if(!g){j=0;break}}while(1){d=g+20|0;c=f[d>>2]|0;if(c){g=c;e=d;continue}d=g+16|0;c=f[d>>2]|0;if(!c)break;else{g=c;e=d}}if(e>>>0<h>>>0)Pa();else{f[e>>2]=0;j=g;break}}else{c=f[a+(i+8)>>2]|0;if(c>>>0<h>>>0)Pa();g=c+12|0;if((f[g>>2]|0)!=(l|0))Pa();e=d+8|0;if((f[e>>2]|0)==(l|0)){f[g>>2]=d;f[e>>2]=c;j=d;break}else Pa()}while(0);if(b){g=f[a+(i+28)>>2]|0;e=27096+(g<<2)|0;if((l|0)==(f[e>>2]|0)){f[e>>2]=j;if(!j){f[6699]=f[6699]&~(1<<g);u=l;k=m;break}}else{if(b>>>0<(f[6702]|0)>>>0)Pa();g=b+16|0;if((f[g>>2]|0)==(l|0))f[g>>2]=j;else f[b+20>>2]=j;if(!j){u=l;k=m;break}}e=f[6702]|0;if(j>>>0<e>>>0)Pa();f[j+24>>2]=b;g=f[a+(i+16)>>2]|0;do if(g)if(g>>>0<e>>>0)Pa();else{f[j+16>>2]=g;f[g+24>>2]=j;break}while(0);g=f[a+(i+20)>>2]|0;if(g)if(g>>>0<(f[6702]|0)>>>0)Pa();else{f[j+20>>2]=g;f[g+24>>2]=j;u=l;k=m;break}else{u=l;k=m}}else{u=l;k=m}}else{u=g;k=o}while(0);if(u>>>0>=q>>>0)Pa();g=a+(o+-4)|0;e=f[g>>2]|0;if(!(e&1))Pa();if(!(e&2)){if((q|0)==(f[6704]|0)){l=(f[6701]|0)+k|0;f[6701]=l;f[6704]=u;f[u+4>>2]=l|1;if((u|0)!=(f[6703]|0))return;f[6703]=0;f[6700]=0;return}if((q|0)==(f[6703]|0)){l=(f[6700]|0)+k|0;f[6700]=l;f[6703]=u;f[u+4>>2]=l|1;f[u+l>>2]=l;return}h=(e&-8)+k|0;b=e>>>3;do if(e>>>0>=256){b=f[a+(o+16)>>2]|0;g=f[a+(o|4)>>2]|0;do if((g|0)==(q|0)){e=a+(o+12)|0;g=f[e>>2]|0;if(!g){e=a+(o+8)|0;g=f[e>>2]|0;if(!g){p=0;break}}while(1){d=g+20|0;c=f[d>>2]|0;if(c){g=c;e=d;continue}d=g+16|0;c=f[d>>2]|0;if(!c)break;else{g=c;e=d}}if(e>>>0<(f[6702]|0)>>>0)Pa();else{f[e>>2]=0;p=g;break}}else{e=f[a+o>>2]|0;if(e>>>0<(f[6702]|0)>>>0)Pa();d=e+12|0;if((f[d>>2]|0)!=(q|0))Pa();c=g+8|0;if((f[c>>2]|0)==(q|0)){f[d>>2]=g;f[c>>2]=e;p=g;break}else Pa()}while(0);if(b){g=f[a+(o+20)>>2]|0;e=27096+(g<<2)|0;if((q|0)==(f[e>>2]|0)){f[e>>2]=p;if(!p){f[6699]=f[6699]&~(1<<g);break}}else{if(b>>>0<(f[6702]|0)>>>0)Pa();g=b+16|0;if((f[g>>2]|0)==(q|0))f[g>>2]=p;else f[b+20>>2]=p;if(!p)break}g=f[6702]|0;if(p>>>0<g>>>0)Pa();f[p+24>>2]=b;e=f[a+(o+8)>>2]|0;do if(e)if(e>>>0<g>>>0)Pa();else{f[p+16>>2]=e;f[e+24>>2]=p;break}while(0);c=f[a+(o+12)>>2]|0;if(c)if(c>>>0<(f[6702]|0)>>>0)Pa();else{f[p+20>>2]=c;f[c+24>>2]=p;break}}}else{c=f[a+o>>2]|0;d=f[a+(o|4)>>2]|0;g=26832+(b<<1<<2)|0;if((c|0)!=(g|0)){if(c>>>0<(f[6702]|0)>>>0)Pa();if((f[c+12>>2]|0)!=(q|0))Pa()}if((d|0)==(c|0)){f[6698]=f[6698]&~(1<<b);break}if((d|0)!=(g|0)){if(d>>>0<(f[6702]|0)>>>0)Pa();e=d+8|0;if((f[e>>2]|0)==(q|0))n=e;else Pa()}else n=d+8|0;f[c+12>>2]=d;f[n>>2]=c}while(0);f[u+4>>2]=h|1;f[u+h>>2]=h;if((u|0)==(f[6703]|0)){f[6700]=h;return}else g=h}else{f[g>>2]=e&-2;f[u+4>>2]=k|1;f[u+k>>2]=k;g=k}e=g>>>3;if(g>>>0<256){d=e<<1;g=26832+(d<<2)|0;b=f[6698]|0;c=1<<e;if(b&c){c=26832+(d+2<<2)|0;b=f[c>>2]|0;if(b>>>0<(f[6702]|0)>>>0)Pa();else{r=c;s=b}}else{f[6698]=b|c;r=26832+(d+2<<2)|0;s=g}f[r>>2]=u;f[s+12>>2]=u;f[u+8>>2]=s;f[u+12>>2]=g;return}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{k=(b+1048320|0)>>>16&8;l=b<<k;j=(l+520192|0)>>>16&4;l=l<<j;e=(l+245760|0)>>>16&2;e=14-(j|k|e)+(l<<e>>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;c=27096+(e<<2)|0;f[u+28>>2]=e;f[u+20>>2]=0;f[u+16>>2]=0;b=f[6699]|0;d=1<<e;a:do if(b&d){c=f[c>>2]|0;b:do if((f[c+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){b=c+16+(e>>>31<<2)|0;d=f[b>>2]|0;if(!d)break;if((f[d+4>>2]&-8|0)==(g|0)){t=d;break b}else{e=e<<1;c=d}}if(b>>>0<(f[6702]|0)>>>0)Pa();else{f[b>>2]=u;f[u+24>>2]=c;f[u+12>>2]=u;f[u+8>>2]=u;break a}}else t=c;while(0);b=t+8|0;c=f[b>>2]|0;l=f[6702]|0;if(c>>>0>=l>>>0&t>>>0>=l>>>0){f[c+12>>2]=u;f[b>>2]=u;f[u+8>>2]=c;f[u+12>>2]=t;f[u+24>>2]=0;break}else Pa()}else{f[6699]=b|d;f[c>>2]=u;f[u+24>>2]=c;f[u+12>>2]=u;f[u+8>>2]=u}while(0);l=(f[6706]|0)+-1|0;f[6706]=l;if(!l)b=27248;else return;while(1){b=f[b>>2]|0;if(!b)break;else b=b+8|0}f[6706]=-1;return}function _g(a,b){a=a|0;b=b|0;var c=0;if(a){c=ca(b,a)|0;if((b|a)>>>0>65535)c=((c>>>0)/(a>>>0)|0|0)==(b|0)?c:-1}else c=0;b=Zg(c)|0;if(!b)return b|0;if(!(f[b+-4>>2]&3))return b|0;ch(b|0,0,c|0)|0;return b|0}function ah(){}function bh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(G=b,a-c>>>0|0)|0}function ch(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0;e=a+c|0;if((c|0)>=20){b=b&255;h=a&3;i=b|b<<8|b<<16|b<<24;g=e&~3;if(h){h=a+4-h|0;while((a|0)<(h|0)){d[a>>0]=b;a=a+1|0}}while((a|0)<(g|0)){f[a>>2]=i;a=a+4|0}}while((a|0)<(e|0)){d[a>>0]=b;a=a+1|0}return a-c|0}function dh(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){G=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}G=0;return b>>>c-32|0}function eh(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){G=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}G=a<<c-32;return 0}function fh(a){a=a|0;var b=0;b=a;while(d[b>>0]|0)b=b+1|0;return b-a|0}function gh(a,b,c){a=a|0;b=b|0;c=c|0;var e=0;if((c|0)>=4096)return Aa(a|0,b|0,c|0)|0;e=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return e|0;d[a>>0]=d[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){f[a>>2]=f[b>>2];a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){d[a>>0]=d[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}return e|0}function hh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(G=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function ih(a,b,c){a=a|0;b=b|0;c=c|0;var e=0;if((b|0)<(a|0)&(a|0)<(b+c|0)){e=a;b=b+c|0;a=a+c|0;while((c|0)>0){a=a-1|0;b=b-1|0;c=c-1|0;d[a>>0]=d[b>>0]|0}a=e}else gh(a,b,c)|0;return a|0}function jh(a){a=a|0;var b=0;b=d[p+(a&255)>>0]|0;if((b|0)<8)return b|0;b=d[p+(a>>8&255)>>0]|0;if((b|0)<8)return b+8|0;b=d[p+(a>>16&255)>>0]|0;if((b|0)<8)return b+16|0;return(d[p+(a>>>24)>>0]|0)+24|0}function kh(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){G=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}G=(b|0)<0?-1:0;return b>>c-32|0}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;d=b&65535;c=ca(d,f)|0;e=a>>>16;d=(c>>>16)+(ca(d,e)|0)|0;b=b>>>16;a=ca(b,f)|0;return(G=(d>>>16)+(ca(b,e)|0)+(((d&65535)+a|0)>>>16)|0,d+a<<16|c&65535|0)|0}function mh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=bh(j^a,i^b,j,i)|0;g=G;b=f^j;a=e^i;return bh((rh(h,g,bh(f^c,e^d,f,e)|0,G,0)|0)^b,G^a,b,a)|0}function nh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+8|0;i=e|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=d>>31|((d|0)<0?-1:0)<<1;j=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;b=bh(h^a,g^b,h,g)|0;a=G;rh(b,a,bh(k^c,j^d,k,j)|0,G,i)|0;a=bh(f[i>>2]^h,f[i+4>>2]^g,h,g)|0;b=G;l=e;return(G=b,a)|0}function oh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;a=lh(e,f)|0;c=G;return(G=(ca(b,f)|0)+(ca(d,e)|0)+c|c&0,a|0|0)|0}function ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return rh(a,b,c,d,0)|0}function qh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;g=l;l=l+8|0;e=g|0;rh(a,b,c,d,e)|0;l=g;return(G=f[e+4>>2]|0,f[e>>2]|0)|0}function rh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=a;l=b;m=l;k=c;o=d;i=o;if(!m){g=(e|0)!=0;if(!i){if(g){f[e>>2]=(n>>>0)%(k>>>0);f[e+4>>2]=0}l=0;m=(n>>>0)/(k>>>0)>>>0;return(G=l,m)|0}else{if(!g){l=0;m=0;return(G=l,m)|0}f[e>>2]=a|0;f[e+4>>2]=b&0;l=0;m=0;return(G=l,m)|0}}j=(i|0)==0;do if(k){if(!j){h=(ea(i|0)|0)-(ea(m|0)|0)|0;if(h>>>0<=31){g=h+1|0;l=31-h|0;k=h-31>>31;i=g;j=n>>>(g>>>0)&k|m<<l;k=m>>>(g>>>0)&k;g=0;h=n<<l;break}if(!e){l=0;m=0;return(G=l,m)|0}f[e>>2]=a|0;f[e+4>>2]=l|b&0;l=0;m=0;return(G=l,m)|0}j=k-1|0;if(j&k){h=(ea(k|0)|0)+33-(ea(m|0)|0)|0;p=64-h|0;l=32-h|0;a=l>>31;b=h-32|0;k=b>>31;i=h;j=l-1>>31&m>>>(b>>>0)|(m<<l|n>>>(h>>>0))&k;k=k&m>>>(h>>>0);g=n<<p&a;h=(m<<p|n>>>(b>>>0))&a|n<<l&h-33>>31;break}if(e){f[e>>2]=j&n;f[e+4>>2]=0}if((k|0)==1){l=l|b&0;m=a|0|0;return(G=l,m)|0}else{a=jh(k|0)|0;l=m>>>(a>>>0)|0;m=m<<32-a|n>>>(a>>>0)|0;return(G=l,m)|0}}else{if(j){if(e){f[e>>2]=(m>>>0)%(k>>>0);f[e+4>>2]=0}l=0;m=(m>>>0)/(k>>>0)>>>0;return(G=l,m)|0}if(!n){if(e){f[e>>2]=0;f[e+4>>2]=(m>>>0)%(i>>>0)}l=0;m=(m>>>0)/(i>>>0)>>>0;return(G=l,m)|0}j=i-1|0;if(!(j&i)){if(e){f[e>>2]=a|0;f[e+4>>2]=j&m|b&0}l=0;m=m>>>((jh(i|0)|0)>>>0);return(G=l,m)|0}h=(ea(i|0)|0)-(ea(m|0)|0)|0;if(h>>>0<=30){k=h+1|0;h=31-h|0;i=k;j=m<<h|n>>>(k>>>0);k=m>>>(k>>>0);g=0;h=n<<h;break}if(!e){l=0;m=0;return(G=l,m)|0}f[e>>2]=a|0;f[e+4>>2]=l|b&0;l=0;m=0;return(G=l,m)|0}while(0);if(!i){l=h;i=0;h=0}else{m=c|0|0;l=o|d&0;b=hh(m|0,l|0,-1,-1)|0;a=G;c=h;h=0;do{p=c;c=g>>>31|c<<1;g=h|g<<1;p=j<<1|p>>>31|0;o=j>>>31|k<<1|0;bh(b,a,p,o)|0;n=G;d=n>>31|((n|0)<0?-1:0)<<1;h=d&1;j=bh(p,o,d&m,(((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1)&l)|0;k=G;i=i-1|0}while((i|0)!=0);l=c;i=0}c=0;if(e){f[e>>2]=j;f[e+4>>2]=k}l=(g|0)>>>31|(l|c)<<1|(c<<1|g>>>31)&0|i;m=(g<<1|0>>>31)&-2|h;return(G=l,m)|0}function sh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ih[a&31](b|0,c|0,d|0)|0}function th(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;return Jh[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)|0}function uh(a,b,c){a=a|0;b=b|0;c=c|0;Kh[a&31](b|0,c|0)}function vh(a,b){a=a|0;b=b|0;return Lh[a&7](b|0)|0}function wh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Mh[a&1](b|0,c|0,d|0)}function xh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Nh[a&15](b|0,c|0,d|0,e|0)|0}function yh(a,b,c){a=a|0;b=b|0;c=c|0;return Oh[a&15](b|0,c|0)|0}function zh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ph[a&15](b|0,c|0,d|0,e|0,f|0)|0}function Ah(a,b,c){a=a|0;b=b|0;c=c|0;fa(0);return 0}function Bh(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;fa(1);return 0}function Ch(a,b){a=a|0;b=b|0;fa(2)}function Dh(a){a=a|0;fa(3);return 0}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;fa(4)}function Fh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;fa(5);return 0}function Gh(a,b){a=a|0;b=b|0;fa(6);return 0}function Hh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;fa(7);return 0}var Ih=[Ah,yd,af,Of,Sf,Wf,$f,cg,gg,zf,Le,of,Pf,Tf,Xf,_f,dg,hg,Ff,Hc,Uc,Zc,Ah,Ah,Ah,Ah,Ah,Ah,Ah,Ah,Ah,Ah];var Jh=[Bh,tb,Eb,Ic,Vc,$c,Bf,Hf,ng,Og,Tg,Bh,Bh,Bh,Bh,Bh];var Kh=[Ch,ub,Fb,sc,Jc,Wc,_c,Re,hf,tf,yf,og,vg,xg,zg,Bg,Dg,Pg,Ug,Ch,Ch,Ch,Ch,Ch,Ch,Ch,Ch,Ch,Ch,Ch,Ch,Ch];var Lh=[Dh,zd,bf,df,xf,Oe,pf,Gb];var Mh=[Eh,Se];var Nh=[Fh,Pe,qf,Mf,Gf,sb,vb,Kc,Od,Te,ef,rf,Cf,pg,Vg,Fh];var Oh=[Gh,Bd,cf,Jf,Kf,Af,Rc,id,jf,ug,wg,yg,Ag,Cg,Gh,Gh];var Ph=[Hh,Cb,Hb,Rd,Qe,gf,sf,Rf,Vf,Zf,bg,fg,jg,Hh,Hh,Hh];return{"_i64Subtract":bh,"_free":$g,"_main":gb,"_i64Add":hh,"_memmove":ih,"_llvm_cttz_i32":jh,"_memset":ch,"_malloc":Zg,"_memcpy":gh,"_strlen":fh,"_bitshift64Lshr":dh,"_bitshift64Shl":eh,"runPostSets":ah,"stackAlloc":Za,"stackSave":$a,"stackRestore":_a,"establishStackSpace":ab,"setThrew":bb,"setTempRet0":eb,"getTempRet0":fb,"dynCall_iiii":sh,"dynCall_iiiiiiiiii":th,"dynCall_vii":uh,"dynCall_ii":vh,"dynCall_viii":wh,"dynCall_iiiii":xh,"dynCall_iii":yh,"dynCall_iiiiii":zh}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),runPostSets=Module.runPostSets=asm.runPostSets,_i64Subtract=Module._i64Subtract=asm._i64Subtract,_free=Module._free=asm._free,_main=Module._main=asm._main,_i64Add=Module._i64Add=asm._i64Add,_memmove=Module._memmove=asm._memmove,_llvm_cttz_i32=Module._llvm_cttz_i32=asm._llvm_cttz_i32,_memset=Module._memset=asm._memset,_malloc=Module._malloc=asm._malloc,_memcpy=Module._memcpy=asm._memcpy,_strlen=Module._strlen=asm._strlen,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_iiiiiiiiii=Module.dynCall_iiiiiiiiii=asm.dynCall_iiiiiiiiii,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_iiiii=Module.dynCall_iiiii=asm.dynCall_iiiii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.establishStackSpace=asm.establishStackSpace,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0;var i64Math=function(){function a(a,b,c){null!=a&&("number"==typeof a?this.fromNumber(a,b,c):null==b&&"string"!=typeof a?this.fromString(a,256):this.fromString(a,b))}function b(){return new a(null)}function c(a,b,c,d,e,f){for(;--f>=0;){var g=b*this[a++]+c[d]+e;e=Math.floor(g/67108864),c[d++]=67108863&g}return e}function d(a,b,c,d,e,f){for(var g=32767&b,h=b>>15;--f>=0;){var i=32767&this[a],j=this[a++]>>15,k=h*i+j*g;i=g*i+((32767&k)<<15)+c[d]+(1073741823&e),e=(i>>>30)+(k>>>15)+h*j+(e>>>30),c[d++]=1073741823&i}return e}function e(a,b,c,d,e,f){for(var g=16383&b,h=b>>14;--f>=0;){var i=16383&this[a],j=this[a++]>>14,k=h*i+j*g;i=g*i+((16383&k)<<14)+c[d]+e,e=(i>>28)+(k>>14)+h*j,c[d++]=268435455&i}return e}function f(a){return fa.charAt(a)}function g(a,b){var c=ga[a.charCodeAt(b)];return null==c?-1:c}function h(a){for(var b=this.t-1;b>=0;--b)a[b]=this[b];a.t=this.t,a.s=this.s}function i(a){this.t=1,this.s=0>a?-1:0,a>0?this[0]=a:-1>a?this[0]=a+DV:this.t=0}function j(a){var c=b();return c.fromInt(a),c}function k(b,c){var d;if(16==c)d=4;else if(8==c)d=3;else if(256==c)d=8;else if(2==c)d=1;else if(32==c)d=5;else{if(4!=c)return void this.fromRadix(b,c);d=2}this.t=0,this.s=0;for(var e=b.length,f=!1,h=0;--e>=0;){var i=8==d?255&b[e]:g(b,e);0>i?"-"==b.charAt(e)&&(f=!0):(f=!1,0==h?this[this.t++]=i:h+d>this.DB?(this[this.t-1]|=(i&(1<<this.DB-h)-1)<<h,this[this.t++]=i>>this.DB-h):this[this.t-1]|=i<<h,h+=d,h>=this.DB&&(h-=this.DB))}8==d&&0!=(128&b[0])&&(this.s=-1,h>0&&(this[this.t-1]|=(1<<this.DB-h)-1<<h)),this.clamp(),f&&a.ZERO.subTo(this,this)}function l(){for(var a=this.s&this.DM;this.t>0&&this[this.t-1]==a;)--this.t}function m(a){if(this.s<0)return"-"+this.negate().toString(a);var b;if(16==a)b=4;else if(8==a)b=3;else if(2==a)b=1;else if(32==a)b=5;else{if(4!=a)return this.toRadix(a);b=2}var c,d=(1<<b)-1,e=!1,g="",h=this.t,i=this.DB-h*this.DB%b;if(h-- >0)for(i<this.DB&&(c=this[h]>>i)>0&&(e=!0,g=f(c));h>=0;)b>i?(c=(this[h]&(1<<i)-1)<<b-i,c|=this[--h]>>(i+=this.DB-b)):(c=this[h]>>(i-=b)&d,0>=i&&(i+=this.DB,--h)),c>0&&(e=!0),e&&(g+=f(c));return e?g:"0"}function n(){var c=b();return a.ZERO.subTo(this,c),c}function o(){return this.s<0?this.negate():this}function p(a){var b=this.s-a.s;if(0!=b)return b;var c=this.t;if(b=c-a.t,0!=b)return this.s<0?-b:b;for(;--c>=0;)if(0!=(b=this[c]-a[c]))return b;return 0}function q(a){var b,c=1;return 0!=(b=a>>>16)&&(a=b,c+=16),0!=(b=a>>8)&&(a=b,c+=8),0!=(b=a>>4)&&(a=b,c+=4),0!=(b=a>>2)&&(a=b,c+=2),0!=(b=a>>1)&&(a=b,c+=1),c}function r(){return this.t<=0?0:this.DB*(this.t-1)+q(this[this.t-1]^this.s&this.DM)}function s(a,b){var c;for(c=this.t-1;c>=0;--c)b[c+a]=this[c];for(c=a-1;c>=0;--c)b[c]=0;b.t=this.t+a,b.s=this.s}function t(a,b){for(var c=a;c<this.t;++c)b[c-a]=this[c];b.t=Math.max(this.t-a,0),b.s=this.s}function u(a,b){var c,d=a%this.DB,e=this.DB-d,f=(1<<e)-1,g=Math.floor(a/this.DB),h=this.s<<d&this.DM;for(c=this.t-1;c>=0;--c)b[c+g+1]=this[c]>>e|h,h=(this[c]&f)<<d;for(c=g-1;c>=0;--c)b[c]=0;b[g]=h,b.t=this.t+g+1,b.s=this.s,b.clamp()}function v(a,b){b.s=this.s;var c=Math.floor(a/this.DB);if(c>=this.t)return void(b.t=0);var d=a%this.DB,e=this.DB-d,f=(1<<d)-1;b[0]=this[c]>>d;for(var g=c+1;g<this.t;++g)b[g-c-1]|=(this[g]&f)<<e,b[g-c]=this[g]>>d;d>0&&(b[this.t-c-1]|=(this.s&f)<<e),b.t=this.t-c,b.clamp()}function w(a,b){for(var c=0,d=0,e=Math.min(a.t,this.t);e>c;)d+=this[c]-a[c],b[c++]=d&this.DM,d>>=this.DB;if(a.t<this.t){for(d-=a.s;c<this.t;)d+=this[c],b[c++]=d&this.DM,d>>=this.DB;d+=this.s}else{for(d+=this.s;c<a.t;)d-=a[c],b[c++]=d&this.DM,d>>=this.DB;d-=a.s}b.s=0>d?-1:0,-1>d?b[c++]=this.DV+d:d>0&&(b[c++]=d),b.t=c,b.clamp()}function x(b,c){var d=this.abs(),e=b.abs(),f=d.t;for(c.t=f+e.t;--f>=0;)c[f]=0;for(f=0;f<e.t;++f)c[f+d.t]=d.am(0,e[f],c,f,0,d.t);c.s=0,c.clamp(),this.s!=b.s&&a.ZERO.subTo(c,c)}function y(a){for(var b=this.abs(),c=a.t=2*b.t;--c>=0;)a[c]=0;for(c=0;c<b.t-1;++c){var d=b.am(c,b[c],a,2*c,0,1);(a[c+b.t]+=b.am(c+1,2*b[c],a,2*c+1,d,b.t-c-1))>=b.DV&&(a[c+b.t]-=b.DV,a[c+b.t+1]=1)}a.t>0&&(a[a.t-1]+=b.am(c,b[c],a,2*c,0,1)),a.s=0,a.clamp()}function z(c,d,e){var f=c.abs();if(!(f.t<=0)){var g=this.abs();if(g.t<f.t)return null!=d&&d.fromInt(0),void(null!=e&&this.copyTo(e));null==e&&(e=b());var h=b(),i=this.s,j=c.s,k=this.DB-q(f[f.t-1]);k>0?(f.lShiftTo(k,h),g.lShiftTo(k,e)):(f.copyTo(h),g.copyTo(e));var l=h.t,m=h[l-1];if(0!=m){var n=m*(1<<this.F1)+(l>1?h[l-2]>>this.F2:0),o=this.FV/n,p=(1<<this.F1)/n,r=1<<this.F2,s=e.t,t=s-l,u=null==d?b():d;for(h.dlShiftTo(t,u),e.compareTo(u)>=0&&(e[e.t++]=1,e.subTo(u,e)),a.ONE.dlShiftTo(l,u),u.subTo(h,h);h.t<l;)h[h.t++]=0;for(;--t>=0;){var v=e[--s]==m?this.DM:Math.floor(e[s]*o+(e[s-1]+r)*p);if((e[s]+=h.am(0,v,e,t,0,l))<v)for(h.dlShiftTo(t,u),e.subTo(u,e);e[s]<--v;)e.subTo(u,e)}null!=d&&(e.drShiftTo(l,d),i!=j&&a.ZERO.subTo(d,d)),e.t=l,e.clamp(),k>0&&e.rShiftTo(k,e),0>i&&a.ZERO.subTo(e,e)}}}function A(c){var d=b();return this.abs().divRemTo(c,null,d),this.s<0&&d.compareTo(a.ZERO)>0&&c.subTo(d,d),d}function B(a){this.m=a}function C(a){return a.s<0||a.compareTo(this.m)>=0?a.mod(this.m):a}function D(a){return a}function E(a){a.divRemTo(this.m,null,a)}function F(a,b,c){a.multiplyTo(b,c),this.reduce(c)}function G(a,b){a.squareTo(b),this.reduce(b)}function H(){if(this.t<1)return 0;var a=this[0];if(0==(1&a))return 0;var b=3&a;return b=b*(2-(15&a)*b)&15,b=b*(2-(255&a)*b)&255,b=b*(2-((65535&a)*b&65535))&65535,b=b*(2-a*b%this.DV)%this.DV,b>0?this.DV-b:-b}function I(a){this.m=a,this.mp=a.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<a.DB-15)-1,this.mt2=2*a.t}function J(c){var d=b();return c.abs().dlShiftTo(this.m.t,d),d.divRemTo(this.m,null,d),c.s<0&&d.compareTo(a.ZERO)>0&&this.m.subTo(d,d),d}function K(a){var c=b();return a.copyTo(c),this.reduce(c),c}function L(a){for(;a.t<=this.mt2;)a[a.t++]=0;for(var b=0;b<this.m.t;++b){var c=32767&a[b],d=c*this.mpl+((c*this.mph+(a[b]>>15)*this.mpl&this.um)<<15)&a.DM;for(c=b+this.m.t,a[c]+=this.m.am(0,d,a,b,0,this.m.t);a[c]>=a.DV;)a[c]-=a.DV,a[++c]++}a.clamp(),a.drShiftTo(this.m.t,a),a.compareTo(this.m)>=0&&a.subTo(this.m,a)}function M(a,b){a.squareTo(b),this.reduce(b)}function N(a,b,c){a.multiplyTo(b,c),this.reduce(c)}function O(){return 0==(this.t>0?1&this[0]:this.s)}function P(c,d){if(c>4294967295||1>c)return a.ONE;var e=b(),f=b(),g=d.convert(this),h=q(c)-1;for(g.copyTo(e);--h>=0;)if(d.sqrTo(e,f),(c&1<<h)>0)d.mulTo(f,g,e);else{var i=e;e=f,f=i}return d.revert(e)}function Q(a,b){var c;return c=256>a||b.isEven()?new B(b):new I(b),this.exp(a,c)}function R(b,c){this.fromInt(0),null==c&&(c=10);for(var d=this.chunkSize(c),e=Math.pow(c,d),f=!1,h=0,i=0,j=0;j<b.length;++j){var k=g(b,j);0>k?"-"==b.charAt(j)&&0==this.signum()&&(f=!0):(i=c*i+k,++h>=d&&(this.dMultiply(e),this.dAddOffset(i,0),h=0,i=0))}h>0&&(this.dMultiply(Math.pow(c,h)),this.dAddOffset(i,0)),f&&a.ZERO.subTo(this,this)}function S(a){return Math.floor(Math.LN2*this.DB/Math.log(a))}function T(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1}function U(a){this[this.t]=this.am(0,a-1,this,0,0,this.t),++this.t,this.clamp()}function V(a,b){if(0!=a){for(;this.t<=b;)this[this.t++]=0;for(this[b]+=a;this[b]>=this.DV;)this[b]-=this.DV,++b>=this.t&&(this[this.t++]=0),++this[b]}}function W(a){if(null==a&&(a=10),0==this.signum()||2>a||a>36)return"0";var c=this.chunkSize(a),d=Math.pow(a,c),e=j(d),f=b(),g=b(),h="";for(this.divRemTo(e,f,g);f.signum()>0;)h=(d+g.intValue()).toString(a).substr(1)+h,f.divRemTo(e,f,g);return g.intValue().toString(a)+h}function X(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function Y(a,b){for(var c=0,d=0,e=Math.min(a.t,this.t);e>c;)d+=this[c]+a[c],b[c++]=d&this.DM,d>>=this.DB;if(a.t<this.t){for(d+=a.s;c<this.t;)d+=this[c],b[c++]=d&this.DM,d>>=this.DB;d+=this.s}else{for(d+=this.s;c<a.t;)d+=a[c],b[c++]=d&this.DM,d>>=this.DB;d+=a.s}b.s=0>d?-1:0,d>0?b[c++]=d:-1>d&&(b[c++]=this.DV+d),b.t=c,b.clamp()}var Z={"math":{}};Z.math.Long=function(a,b){this.low_=0|a,this.high_=0|b},Z.math.Long.IntCache_={},Z.math.Long.fromInt=function(a){if(a>=-128&&128>a){var b=Z.math.Long.IntCache_[a];if(b)return b}var c=new Z.math.Long(0|a,0>a?-1:0);return a>=-128&&128>a&&(Z.math.Long.IntCache_[a]=c),c},Z.math.Long.fromNumber=function(a){return isNaN(a)||!isFinite(a)?Z.math.Long.ZERO:a<=-Z.math.Long.TWO_PWR_63_DBL_?Z.math.Long.MIN_VALUE:a+1>=Z.math.Long.TWO_PWR_63_DBL_?Z.math.Long.MAX_VALUE:0>a?Z.math.Long.fromNumber(-a).negate():new Z.math.Long(a%Z.math.Long.TWO_PWR_32_DBL_|0,a/Z.math.Long.TWO_PWR_32_DBL_|0)},Z.math.Long.fromBits=function(a,b){return new Z.math.Long(a,b)},Z.math.Long.fromString=function(a,b){if(0==a.length)throw Error("number format error: empty string");var c=b||10;if(2>c||c>36)throw Error("radix out of range: "+c);if("-"==a.charAt(0))return Z.math.Long.fromString(a.substring(1),c).negate();if(a.indexOf("-")>=0)throw Error('number format error: interior "-" character: '+a);for(var d=Z.math.Long.fromNumber(Math.pow(c,8)),e=Z.math.Long.ZERO,f=0;f<a.length;f+=8){var g=Math.min(8,a.length-f),h=parseInt(a.substring(f,f+g),c);if(8>g){var i=Z.math.Long.fromNumber(Math.pow(c,g));e=e.multiply(i).add(Z.math.Long.fromNumber(h))}else e=e.multiply(d),e=e.add(Z.math.Long.fromNumber(h))}return e},Z.math.Long.TWO_PWR_16_DBL_=65536,Z.math.Long.TWO_PWR_24_DBL_=1<<24,Z.math.Long.TWO_PWR_32_DBL_=Z.math.Long.TWO_PWR_16_DBL_*Z.math.Long.TWO_PWR_16_DBL_,Z.math.Long.TWO_PWR_31_DBL_=Z.math.Long.TWO_PWR_32_DBL_/2,Z.math.Long.TWO_PWR_48_DBL_=Z.math.Long.TWO_PWR_32_DBL_*Z.math.Long.TWO_PWR_16_DBL_,Z.math.Long.TWO_PWR_64_DBL_=Z.math.Long.TWO_PWR_32_DBL_*Z.math.Long.TWO_PWR_32_DBL_,Z.math.Long.TWO_PWR_63_DBL_=Z.math.Long.TWO_PWR_64_DBL_/2,Z.math.Long.ZERO=Z.math.Long.fromInt(0),Z.math.Long.ONE=Z.math.Long.fromInt(1),Z.math.Long.NEG_ONE=Z.math.Long.fromInt(-1),Z.math.Long.MAX_VALUE=Z.math.Long.fromBits(-1,2147483647),Z.math.Long.MIN_VALUE=Z.math.Long.fromBits(0,-2147483648),Z.math.Long.TWO_PWR_24_=Z.math.Long.fromInt(1<<24),Z.math.Long.prototype.toInt=function(){return this.low_},Z.math.Long.prototype.toNumber=function(){return this.high_*Z.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()},Z.math.Long.prototype.toString=function(a){var b=a||10;if(2>b||b>36)throw Error("radix out of range: "+b);if(this.isZero())return"0";if(this.isNegative()){if(this.equals(Z.math.Long.MIN_VALUE)){var c=Z.math.Long.fromNumber(b),d=this.div(c),e=d.multiply(c).subtract(this);return d.toString(b)+e.toInt().toString(b)}return"-"+this.negate().toString(b)}for(var f=Z.math.Long.fromNumber(Math.pow(b,6)),e=this,g="";;){var h=e.div(f),i=e.subtract(h.multiply(f)).toInt(),j=i.toString(b);if(e=h,e.isZero())return j+g;for(;j.length<6;)j="0"+j;g=""+j+g}},Z.math.Long.prototype.getHighBits=function(){return this.high_},Z.math.Long.prototype.getLowBits=function(){return this.low_},Z.math.Long.prototype.getLowBitsUnsigned=function(){return this.low_>=0?this.low_:Z.math.Long.TWO_PWR_32_DBL_+this.low_},Z.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(Z.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var a=0!=this.high_?this.high_:this.low_,b=31;b>0&&0==(a&1<<b);b--);return 0!=this.high_?b+33:b+1},Z.math.Long.prototype.isZero=function(){return 0==this.high_&&0==this.low_},Z.math.Long.prototype.isNegative=function(){return this.high_<0},Z.math.Long.prototype.isOdd=function(){return 1==(1&this.low_)},Z.math.Long.prototype.equals=function(a){return this.high_==a.high_&&this.low_==a.low_},Z.math.Long.prototype.notEquals=function(a){return this.high_!=a.high_||this.low_!=a.low_},Z.math.Long.prototype.lessThan=function(a){return this.compare(a)<0},Z.math.Long.prototype.lessThanOrEqual=function(a){return this.compare(a)<=0},Z.math.Long.prototype.greaterThan=function(a){return this.compare(a)>0},Z.math.Long.prototype.greaterThanOrEqual=function(a){return this.compare(a)>=0},Z.math.Long.prototype.compare=function(a){if(this.equals(a))return 0;var b=this.isNegative(),c=a.isNegative();return b&&!c?-1:!b&&c?1:this.subtract(a).isNegative()?-1:1},Z.math.Long.prototype.negate=function(){return this.equals(Z.math.Long.MIN_VALUE)?Z.math.Long.MIN_VALUE:this.not().add(Z.math.Long.ONE)},Z.math.Long.prototype.add=function(a){var b=this.high_>>>16,c=65535&this.high_,d=this.low_>>>16,e=65535&this.low_,f=a.high_>>>16,g=65535&a.high_,h=a.low_>>>16,i=65535&a.low_,j=0,k=0,l=0,m=0;return m+=e+i,l+=m>>>16,m&=65535,l+=d+h,k+=l>>>16,l&=65535,k+=c+g,j+=k>>>16,k&=65535,j+=b+f,j&=65535,Z.math.Long.fromBits(l<<16|m,j<<16|k)},Z.math.Long.prototype.subtract=function(a){return this.add(a.negate())},Z.math.Long.prototype.multiply=function(a){if(this.isZero())return Z.math.Long.ZERO;if(a.isZero())return Z.math.Long.ZERO;if(this.equals(Z.math.Long.MIN_VALUE))return a.isOdd()?Z.math.Long.MIN_VALUE:Z.math.Long.ZERO;if(a.equals(Z.math.Long.MIN_VALUE))return this.isOdd()?Z.math.Long.MIN_VALUE:Z.math.Long.ZERO;if(this.isNegative())return a.isNegative()?this.negate().multiply(a.negate()):this.negate().multiply(a).negate();if(a.isNegative())return this.multiply(a.negate()).negate();if(this.lessThan(Z.math.Long.TWO_PWR_24_)&&a.lessThan(Z.math.Long.TWO_PWR_24_))return Z.math.Long.fromNumber(this.toNumber()*a.toNumber());var b=this.high_>>>16,c=65535&this.high_,d=this.low_>>>16,e=65535&this.low_,f=a.high_>>>16,g=65535&a.high_,h=a.low_>>>16,i=65535&a.low_,j=0,k=0,l=0,m=0;return m+=e*i,l+=m>>>16,m&=65535,l+=d*i,k+=l>>>16,l&=65535,l+=e*h,k+=l>>>16,l&=65535,k+=c*i,j+=k>>>16,k&=65535,k+=d*h,j+=k>>>16,k&=65535,k+=e*g,j+=k>>>16,k&=65535,j+=b*i+c*h+d*g+e*f,j&=65535,Z.math.Long.fromBits(l<<16|m,j<<16|k)},Z.math.Long.prototype.div=function(a){if(a.isZero())throw Error("division by zero");if(this.isZero())return Z.math.Long.ZERO;if(this.equals(Z.math.Long.MIN_VALUE)){if(a.equals(Z.math.Long.ONE)||a.equals(Z.math.Long.NEG_ONE))return Z.math.Long.MIN_VALUE;if(a.equals(Z.math.Long.MIN_VALUE))return Z.math.Long.ONE;var b=this.shiftRight(1),c=b.div(a).shiftLeft(1);if(c.equals(Z.math.Long.ZERO))return a.isNegative()?Z.math.Long.ONE:Z.math.Long.NEG_ONE;var d=this.subtract(a.multiply(c)),e=c.add(d.div(a));return e}if(a.equals(Z.math.Long.MIN_VALUE))return Z.math.Long.ZERO;if(this.isNegative())return a.isNegative()?this.negate().div(a.negate()):this.negate().div(a).negate();if(a.isNegative())return this.div(a.negate()).negate();for(var f=Z.math.Long.ZERO,d=this;d.greaterThanOrEqual(a);){for(var c=Math.max(1,Math.floor(d.toNumber()/a.toNumber())),g=Math.ceil(Math.log(c)/Math.LN2),h=48>=g?1:Math.pow(2,g-48),i=Z.math.Long.fromNumber(c),j=i.multiply(a);j.isNegative()||j.greaterThan(d);)c-=h,i=Z.math.Long.fromNumber(c),j=i.multiply(a);i.isZero()&&(i=Z.math.Long.ONE),f=f.add(i),d=d.subtract(j)}return f},Z.math.Long.prototype.modulo=function(a){return this.subtract(this.div(a).multiply(a))},Z.math.Long.prototype.not=function(){return Z.math.Long.fromBits(~this.low_,~this.high_)},Z.math.Long.prototype.and=function(a){return Z.math.Long.fromBits(this.low_&a.low_,this.high_&a.high_)},Z.math.Long.prototype.or=function(a){return Z.math.Long.fromBits(this.low_|a.low_,this.high_|a.high_)},Z.math.Long.prototype.xor=function(a){return Z.math.Long.fromBits(this.low_^a.low_,this.high_^a.high_)},Z.math.Long.prototype.shiftLeft=function(a){if(a&=63,0==a)return this;var b=this.low_;if(32>a){var c=this.high_;return Z.math.Long.fromBits(b<<a,c<<a|b>>>32-a)}return Z.math.Long.fromBits(0,b<<a-32)},Z.math.Long.prototype.shiftRight=function(a){if(a&=63,0==a)return this;var b=this.high_;if(32>a){var c=this.low_;return Z.math.Long.fromBits(c>>>a|b<<32-a,b>>a)}return Z.math.Long.fromBits(b>>a-32,b>=0?0:-1)},Z.math.Long.prototype.shiftRightUnsigned=function(a){if(a&=63,0==a)return this;var b=this.high_;if(32>a){var c=this.low_;return Z.math.Long.fromBits(c>>>a|b<<32-a,b>>>a)}return 32==a?Z.math.Long.fromBits(b,0):Z.math.Long.fromBits(b>>>a-32,0)};var $,_={"appName":"Modern Browser"},aa=0xdeadbeefcafe,ba=15715070==(16777215&aa);ba&&"Microsoft Internet Explorer"==_.appName?(a.prototype.am=d,$=30):ba&&"Netscape"!=_.appName?(a.prototype.am=c,$=26):(a.prototype.am=e,$=28),a.prototype.DB=$,a.prototype.DM=(1<<$)-1,a.prototype.DV=1<<$;var ca=52;a.prototype.FV=Math.pow(2,ca),a.prototype.F1=ca-$,a.prototype.F2=2*$-ca;var da,ea,fa="0123456789abcdefghijklmnopqrstuvwxyz",ga=new Array;for(da="0".charCodeAt(0),ea=0;9>=ea;++ea)ga[da++]=ea;for(da="a".charCodeAt(0),ea=10;36>ea;++ea)ga[da++]=ea;for(da="A".charCodeAt(0),ea=10;36>ea;++ea)ga[da++]=ea;B.prototype.convert=C,B.prototype.revert=D,B.prototype.reduce=E,B.prototype.mulTo=F,B.prototype.sqrTo=G,I.prototype.convert=J,I.prototype.revert=K,I.prototype.reduce=L,I.prototype.mulTo=N,I.prototype.sqrTo=M,a.prototype.copyTo=h,a.prototype.fromInt=i,a.prototype.fromString=k,a.prototype.clamp=l,a.prototype.dlShiftTo=s,a.prototype.drShiftTo=t,a.prototype.lShiftTo=u,a.prototype.rShiftTo=v,a.prototype.subTo=w,a.prototype.multiplyTo=x,a.prototype.squareTo=y,a.prototype.divRemTo=z,a.prototype.invDigit=H,a.prototype.isEven=O,a.prototype.exp=P,a.prototype.toString=m,a.prototype.negate=n,a.prototype.abs=o,a.prototype.compareTo=p,a.prototype.bitLength=r,a.prototype.mod=A,a.prototype.modPowInt=Q,a.ZERO=j(0),a.ONE=j(1),a.prototype.fromRadix=R,a.prototype.chunkSize=S,a.prototype.signum=T,a.prototype.dMultiply=U,a.prototype.dAddOffset=V,a.prototype.toRadix=W,a.prototype.intValue=X,a.prototype.addTo=Y;var ha={"abs":function(a,b){var c,d=new Z.math.Long(a,b);c=d.isNegative()?d.negate():d,HEAP32[tempDoublePtr>>2]=c.low_,HEAP32[tempDoublePtr+4>>2]=c.high_},"ensureTemps":function(){ha.ensuredTemps||(ha.ensuredTemps=!0,ha.two32=new a,ha.two32.fromString("4294967296",10),ha.two64=new a,ha.two64.fromString("18446744073709551616",10),ha.temp1=new a,ha.temp2=new a)},"lh2bignum":function(b,c){var d=new a;d.fromString(c.toString(),10);var e=new a;d.multiplyTo(ha.two32,e);var f=new a;f.fromString(b.toString(),10);var g=new a;return f.addTo(e,g),g},"stringify":function(b,c,d){var e=new Z.math.Long(b,c).toString();if(d&&"-"==e[0]){ha.ensureTemps();var f=new a;f.fromString(e,10),e=new a,ha.two64.addTo(f,e),e=e.toString(10)}return e},"fromString":function(b,c,d,e,f){ha.ensureTemps();var g=new a;g.fromString(b,c);var h=new a;h.fromString(d,10);var i=new a;if(i.fromString(e,10),f&&g.compareTo(a.ZERO)<0){var j=new a;g.addTo(ha.two64,j),g=j}var k=!1;g.compareTo(h)<0?(g=h,k=!0):g.compareTo(i)>0&&(g=i,k=!0);var l=Z.math.Long.fromString(g.toString());if(HEAP32[tempDoublePtr>>2]=l.low_,HEAP32[tempDoublePtr+4>>2]=l.high_,k)throw"range error"}};return ha}();ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function a(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=a)},Module.callMain=Module.callMain=function(a){function b(){for(var a=0;3>a;a++)d.push(0)}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"),a=a||[],ensureInitRuntime();var c=a.length+1,d=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];b();for(var e=0;c-1>e;e+=1)d.push(allocate(intArrayFromString(a[e]),"i8",ALLOC_NORMAL)),b();d.push(0),d=allocate(d,"i32",ALLOC_NORMAL),initialStackTop=STACKTOP;try{var f=Module._main(c,d,0);exit(f,!0)}catch(g){if(g instanceof ExitStatus)return;if("SimulateInfiniteLoop"==g)return void(Module.noExitRuntime=!0);throw g&&"object"==typeof g&&g.stack&&Module.printErr("exception thrown: "+[g,g.stack]),g}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit;var abortDecorators=[];if(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;return Module.noInitialRun&&(shouldRunNow=!1),run(),Module["return"]();
}"function"==typeof importScripts&&importScripts("archive.lib.min.js")