var Module=typeof Module!=="undefined"?Module:{};var mrbc=function(bY){bY.preRun.push(function(){bY.FS=D});var al={};var i;for(i in bY){if(bY.hasOwnProperty(i)){al[i]=bY[i]}}var dE=[];var bm="./this.program";var aY=function(dO,dP){throw dP};var dB=false;var dd=false;var bK=false;var b0=false;dB=typeof window==="object";dd=typeof importScripts==="function";bK=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";b0=!dB&&!bK&&!dd;if(bY.ENVIRONMENT){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)")}var Q="";function bV(dO){if(bY.locateFile){return bY.locateFile(dO,Q)}return Q+dO}var c,du,bo,bu;var a6;var V;if(bK){if(dd){Q=require("path").dirname(Q)+"/"}else{Q=__dirname+"/"}c=function a8(dO,dP){if(!a6){a6=require("fs")}if(!V){V=require("path")}dO=V.normalize(dO);return a6.readFileSync(dO,dP?null:"utf8")};bo=function bo(dO){var dP=c(dO,true);if(!dP.buffer){dP=new Uint8Array(dP)}bJ(dP.buffer);return dP};if(process.argv.length>1){bm=process.argv[1].replace(/\\/g,"/")}dE=process.argv.slice(2);if(typeof module!=="undefined"){module.exports=bY}process.on("uncaughtException",function(dO){if(!(dO instanceof cZ)){throw dO}});process.on("unhandledRejection",c3);aY=function(dO){process.exit(dO)};bY.inspect=function(){return"[Emscripten Module object]"}}else{if(b0){if(typeof read!="undefined"){c=function a8(dO){return read(dO)}}bo=function bo(dP){var dO;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(dP))}dO=read(dP,"binary");bJ(typeof dO==="object");return dO};if(typeof scriptArgs!="undefined"){dE=scriptArgs}else{if(typeof arguments!="undefined"){dE=arguments}}if(typeof quit==="function"){aY=function(dO){quit(dO)}}if(typeof print!=="undefined"){if(typeof console==="undefined"){console=({})}console.log=(print);console.warn=console.error=(typeof printErr!=="undefined"?printErr:print)}}else{if(dB||dd){if(dd){Q=self.location.href}else{if(document.currentScript){Q=document.currentScript.src}}if(Q.indexOf("blob:")!==0){Q=Q.substr(0,Q.lastIndexOf("/")+1)}else{Q=""}c=function a8(dO){var dP=new XMLHttpRequest();dP.open("GET",dO,false);dP.send(null);return dP.responseText};if(dd){bo=function bo(dO){var dP=new XMLHttpRequest();dP.open("GET",dO,false);dP.responseType="arraybuffer";dP.send(null);return new Uint8Array((dP.response))}}du=function du(dP,dR,dO){var dS=new XMLHttpRequest();dS.open("GET",dP,true);dS.responseType="arraybuffer";dS.onload=function dQ(){if(dS.status==200||(dS.status==0&&dS.response)){dR(dS.response);return}dO()};dS.onerror=dO;dS.send(null)};bu=function(dO){document.title=dO}}else{throw new Error("environment detection error")}}}var cp=bY.print||console.log.bind(console);var m=bY.printErr||console.warn.bind(console);for(i in al){if(al.hasOwnProperty(i)){bY[i]=al[i]}}al=null;if(bY["arguments"]){dE=bY["arguments"]}if(!Object.getOwnPropertyDescriptor(bY,"arguments")){Object.defineProperty(bY,"arguments",{configurable:true,get:function(){c3("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}if(bY.thisProgram){bm=bY.thisProgram}if(!Object.getOwnPropertyDescriptor(bY,"thisProgram")){Object.defineProperty(bY,"thisProgram",{configurable:true,get:function(){c3("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}if(bY.quit){aY=bY.quit}if(!Object.getOwnPropertyDescriptor(bY,"quit")){Object.defineProperty(bY,"quit",{configurable:true,get:function(){c3("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}bJ(typeof bY.memoryInitializerPrefixURL==="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");bJ(typeof bY.pthreadMainPrefixURL==="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");bJ(typeof bY.cdInitializerPrefixURL==="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");bJ(typeof bY.filePackagePrefixURL==="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");bJ(typeof bY.read==="undefined","Module.read option was removed (modify read_ in JS)");bJ(typeof bY.readAsync==="undefined","Module.readAsync option was removed (modify readAsync in JS)");bJ(typeof bY.readBinary==="undefined","Module.readBinary option was removed (modify readBinary in JS)");bJ(typeof bY.setWindowTitle==="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)");bJ(typeof bY.TOTAL_MEMORY==="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");if(!Object.getOwnPropertyDescriptor(bY,"read")){Object.defineProperty(bY,"read",{configurable:true,get:function(){c3("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}if(!Object.getOwnPropertyDescriptor(bY,"readAsync")){Object.defineProperty(bY,"readAsync",{configurable:true,get:function(){c3("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}if(!Object.getOwnPropertyDescriptor(bY,"readBinary")){Object.defineProperty(bY,"readBinary",{configurable:true,get:function(){c3("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}if(!Object.getOwnPropertyDescriptor(bY,"setWindowTitle")){Object.defineProperty(bY,"setWindowTitle",{configurable:true,get:function(){c3("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}var ca="IDBFS is no longer included by default; build with -lidbfs.js";var dn="PROXYFS is no longer included by default; build with -lproxyfs.js";var cl="WORKERFS is no longer included by default; build with -lworkerfs.js";var bH="NODEFS is no longer included by default; build with -lnodefs.js";var dw=16;function aM(dQ){bJ(cg);var dP=ar[cg>>2];var dO=(dP+dQ+15)&-16;bJ(dO<=dx.length,"failure to dynamicAlloc - memory growth etc. is not supported there, call malloc/sbrk directly");ar[cg>>2]=dO;return dP}function df(dP,dO){if(!dO){dO=dw}return Math.ceil(dP/dO)*dO}function aP(dO){switch(dO){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(dO[dO.length-1]==="*"){return 4}else{if(dO[0]==="i"){var dP=Number(dO.substr(1));bJ(dP%8===0,"getNativeTypeSize invalid bits "+dP+", type "+dO);return dP/8}else{return 0}}}}function cJ(dO){if(!cJ.shown){cJ.shown={}}if(!cJ.shown[dO]){cJ.shown[dO]=1;m(dO)}}function at(dS,d0){if(typeof WebAssembly.Function==="function"){var dW={i:"i32",j:"i64",f:"f32",d:"f64"};var dV={parameters:[],results:d0[0]=="v"?[]:[dW[d0[0]]]};for(var dU=1;dU>>0)))+((+((dQ>>>0)))*4294967296)):((+((dO>>>0)))+((+((dQ|0)))*4294967296))}function o(dP,dQ,dO){if(dO&&dO.length){bJ(dO.length===dP.substring(1).replace(/j/g,"--").length);bJ(("dynCall_"+dP) in bY,"bad function pointer type - no table for sig '"+dP+"'");return bY["dynCall_"+dP].apply(null,[dQ].concat(dO))}else{bJ(dP.length==1);bJ(("dynCall_"+dP) in bY,"bad function pointer type - no table for sig '"+dP+"'");return bY["dynCall_"+dP].call(null,dQ)}}var dA=0;var g=function(dO){dA=dO};var B=function(){return dA};function aJ(dO){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work"}var aC=1024;var dk;if(bY.wasmBinary){dk=bY.wasmBinary}if(!Object.getOwnPropertyDescriptor(bY,"wasmBinary")){Object.defineProperty(bY,"wasmBinary",{configurable:true,get:function(){c3("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}var cq;if(bY.noExitRuntime){cq=bY.noExitRuntime}if(!Object.getOwnPropertyDescriptor(bY,"noExitRuntime")){Object.defineProperty(bY,"noExitRuntime",{configurable:true,get:function(){c3("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}if(typeof WebAssembly!=="object"){c3("no native wasm support detected")}function az(dR,dQ,dP,dO){dP=dP||"i8";if(dP.charAt(dP.length-1)==="*"){dP="i32"}switch(dP){case"i1":dx[((dR)>>0)]=dQ;break;case"i8":dx[((dR)>>0)]=dQ;break;case"i16":a2[((dR)>>1)]=dQ;break;case"i32":ar[((dR)>>2)]=dQ;break;case"i64":(av=[dQ>>>0,(aN=dQ,(+(br(aN)))>=1?(aN>0?((cT((+(O((aN)/4294967296))),4294967295))|0)>>>0:(~~((+(dh((aN-+(((~~(aN)))>>>0))/4294967296)))))>>>0):0)],ar[((dR)>>2)]=av[0],ar[(((dR)+(4))>>2)]=av[1]);break;case"float":aE[((dR)>>2)]=dQ;break;case"double":n[((dR)>>3)]=dQ;break;default:c3("invalid type for setValue: "+dP)}}function ch(dQ,dP,dO){dP=dP||"i8";if(dP.charAt(dP.length-1)==="*"){dP="i32"}switch(dP){case"i1":return dx[((dQ)>>0)];case"i8":return dx[((dQ)>>0)];case"i16":return a2[((dQ)>>1)];case"i32":return ar[((dQ)>>2)];case"i64":return ar[((dQ)>>2)];case"float":return aE[((dQ)>>2)];case"double":return n[((dQ)>>3)];default:c3("invalid type for getValue: "+dP)}return null}var bI;var de=new WebAssembly.Table({initial:336,maximum:336+0,element:"anyfunc"});var di=false;var bL=0;function bJ(dP,dO){if(!dP){c3("Assertion failed: "+dO)}}function X(dP){var dO=bY["_"+dP];bJ(dO,"Cannot call unknown function "+dP+", make sure it is exported");return dO}function J(dU,dX,dT,dY,dO){var dZ={string:function(d3){var d2=0;if(d3!==null&&d3!==undefined&&d3!==0){var d1=(d3.length<<2)+1;d2=bW(d1);q(d3,d2,d1)}return d2},array:function(d1){var d2=bW(d1.length);dv(d1,d2);return d2}};function dW(d1){if(dX==="string"){return dC(d1)}if(dX==="boolean"){return Boolean(d1)}return d1}var dP=X(dU);var dR=[];var d0=0;bJ(dX!=="array",'Return type should not be "array".');if(dY){for(var dS=0;dS>2)]=0}dZ=dW+d1;while(dO>0)]=0}return dW}if(dR==="i8"){if(dU.subarray||dU.slice){bs.set((dU),dW)}else{bs.set(new Uint8Array(dU),dW)}return dW}var dT=0,dY,dX,dQ;while(dT=dS)){++dV}if(dV-dX>16&&dT.subarray&&cK){return cK.decode(dT.subarray(dX,dV))}else{var dW="";while(dX>10),56320|(dO&1023))}}}return dW}function dC(dP,dO){return dP?am(bs,dP,dO):""}function r(dT,dQ,dS,dV){if(!(dV>0)){return 0}var dU=dS;var dP=dS+dV-1;for(var dR=0;dR=55296&&dW<=57343){var dO=dT.charCodeAt(++dR);dW=65536+((dW&1023)<<10)|(dO&1023)}if(dW<=127){if(dS>=dP){break}dQ[dS++]=dW}else{if(dW<=2047){if(dS+1>=dP){break}dQ[dS++]=192|(dW>>6);dQ[dS++]=128|(dW&63)}else{if(dW<=65535){if(dS+2>=dP){break}dQ[dS++]=224|(dW>>12);dQ[dS++]=128|((dW>>6)&63);dQ[dS++]=128|(dW&63)}else{if(dS+3>=dP){break}if(dW>=2097152){cJ("Invalid Unicode code point 0x"+dW.toString(16)+" encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF).")}dQ[dS++]=240|(dW>>18);dQ[dS++]=128|((dW>>12)&63);dQ[dS++]=128|((dW>>6)&63);dQ[dS++]=128|(dW&63)}}}}dQ[dS]=0;return dS-dU}function q(dP,dO,dQ){bJ(typeof dQ=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return r(dP,bs,dO,dQ)}function S(dR){var dO=0;for(var dQ=0;dQ=55296&&dP<=57343){dP=65536+((dP&1023)<<10)|(dR.charCodeAt(++dQ)&1023)}if(dP<=127){++dO}else{if(dP<=2047){dO+=2}else{if(dP<=65535){dO+=3}else{dO+=4}}}}return dO}function ak(dQ){var dP="";while(1){var dO=bs[((dQ++)>>0)];if(!dO){return dP}dP+=String.fromCharCode(dO)}}function ag(dP,dO){return cI(dP,dO,false)}var b2=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function bN(dV,dU){bJ(dV%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");var dQ=dV;var dO=dQ>>1;var dP=dO+dU/2;while(!(dO>=dP)&&cS[dO]){++dO}dQ=dO<<1;if(dQ-dV>32&&b2){return b2.decode(bs.subarray(dV,dQ))}else{var dR=0;var dT="";while(1){var dS=a2[(((dV)+(dR*2))>>1)];if(dS==0||dR==dU/2){return dT}++dR;dT+=String.fromCharCode(dS)}}}function aA(dT,dS,dU){bJ(dS%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!");bJ(typeof dU=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");if(dU===undefined){dU=2147483647}if(dU<2){return 0}dU-=2;var dP=dS;var dO=(dU>1)]=dR;dS+=2}a2[((dS)>>1)]=0;return dS-dP}function b6(dO){return dO.length*2}function bp(dT,dS){bJ(dT%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");var dO=0;var dR="";while(!(dO>=dS/4)){var dQ=ar[(((dT)+(dO*4))>>2)];if(dQ==0){break}++dO;if(dQ>=65536){var dP=dQ-65536;dR+=String.fromCharCode(55296|(dP>>10),56320|(dP&1023))}else{dR+=String.fromCharCode(dQ)}}return dR}function K(dU,dT,dV){bJ(dT%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!");bJ(typeof dV=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");if(dV===undefined){dV=2147483647}if(dV<4){return 0}var dP=dT;var dO=dP+dV-4;for(var dQ=0;dQ=55296&&dR<=57343){var dS=dU.charCodeAt(++dQ);dR=65536+((dR&1023)<<10)|(dS&1023)}ar[((dT)>>2)]=dR;dT+=4;if(dT+4>dO){break}}ar[((dT)>>2)]=0;return dT-dP}function by(dR){var dO=0;for(var dP=0;dP=55296&&dQ<=57343){++dP}dO+=4}return dO}function bM(dQ){var dP=S(dQ)+1;var dO=cN(dP);if(dO){r(dQ,dx,dO,dP)}return dO}function bB(dQ){var dP=S(dQ)+1;var dO=bW(dP);r(dQ,dx,dO,dP);return dO}function c6(dQ,dP,dS){cJ("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var dR,dO;if(dS){dO=dP+S(dQ);dR=dx[dO]}q(dQ,dP,Infinity);if(dS){dx[dO]=dR}}function dv(dP,dO){bJ(dP.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");dx.set(dP,dO)}function cI(dR,dO,dQ){for(var dP=0;dP>0)]=dR.charCodeAt(dP)}if(!dQ){dx[((dO)>>0)]=0}}var a0=16384;var dc=65536;var bU=16777216;function Z(dP,dO){if(dP%dO>0){dP+=dO-(dP%dO)}return dP}var a,dD,dx,bs,a2,cS,ar,b9,aE,n;function ci(dO){dD=dO;bY.HEAP8=dx=new Int8Array(dO);bY.HEAP16=a2=new Int16Array(dO);bY.HEAP32=ar=new Int32Array(dO);bY.HEAPU8=bs=new Uint8Array(dO);bY.HEAPU16=cS=new Uint16Array(dO);bY.HEAPU32=b9=new Uint32Array(dO);bY.HEAPF32=aE=new Float32Array(dO);bY.HEAPF64=n=new Float64Array(dO)}var aR=1024,bt=5322752,da=bt,c1=79872,A=5322752,cg=79712;bJ(bt%16===0,"stack must start aligned");bJ(A%16===0,"heap must start aligned");var y=5242880;if(bY.TOTAL_STACK){bJ(y===bY.TOTAL_STACK,"the stack size can no longer be determined at runtime")}var bE=bY.INITIAL_MEMORY||16777216;if(!Object.getOwnPropertyDescriptor(bY,"INITIAL_MEMORY")){Object.defineProperty(bY,"INITIAL_MEMORY",{configurable:true,get:function(){c3("Module.INITIAL_MEMORY has been replaced with plain INITIAL_INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}bJ(bE>=y,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+bE+"! (TOTAL_STACK="+y+")");bJ(typeof Int32Array!=="undefined"&&typeof Float64Array!=="undefined"&&Int32Array.prototype.subarray!==undefined&&Int32Array.prototype.set!==undefined,"JS engine does not provide full typed array support");if(bY.wasmMemory){bI=bY.wasmMemory}else{bI=new WebAssembly.Memory({initial:bE/dc,maximum:bE/dc})}if(bI){dD=bI.buffer}bE=dD.byteLength;bJ(bE%dc===0);ci(dD);ar[cg>>2]=A;function bi(){bJ((c1&3)==0);b9[(c1>>2)+1]=34821223;b9[(c1>>2)+2]=2310721022;ar[0]=1668509029}function p(){var dP=b9[(c1>>2)+1];var dO=b9[(c1>>2)+2];if(dP!=34821223||dO!=2310721022){c3("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+dO.toString(16)+" "+dP.toString(16))}if(ar[0]!==1668509029){c3("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var dO=new Int16Array(1);var dP=new Int8Array(dO.buffer);dO[0]=25459;if(dP[0]!==115||dP[1]!==99){throw"Runtime error: expected the system to be little-endian!"}})();function ay(dP,dO){c3("Invalid function pointer "+dP+" called with signature '"+dO+"'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this). Build with ASSERTIONS=2 for more info.")}function dJ(dP){while(dP.length>0){var dQ=dP.shift();if(typeof dQ=="function"){dQ(bY);continue}var dO=dQ.func;if(typeof dO==="number"){if(dQ.arg===undefined){bY.dynCall_v(dO)}else{bY.dynCall_vi(dO,dQ.arg)}}else{dO(dQ.arg===undefined?null:dQ.arg)}}}var bD=[];var d=[];var cD=[];var T=[];var ax=[];var cL=false;var v=false;function z(){if(bY.preRun){if(typeof bY.preRun=="function"){bY.preRun=[bY.preRun]}while(bY.preRun.length){I(bY.preRun.shift())}}dJ(bD)}function dN(){p();bJ(!cL);cL=true;if(!bY.noFSInit&&!D.init.initialized){D.init()}ad.init();dJ(d)}function dp(){p();D.ignorePermissions=false;dJ(cD)}function cw(){p();v=true}function aF(){p();if(bY.postRun){if(typeof bY.postRun=="function"){bY.postRun=[bY.postRun]}while(bY.postRun.length){dK(bY.postRun.shift())}}dJ(ax)}function I(dO){bD.unshift(dO)}function cX(dO){d.unshift(dO)}function bP(dO){cD.unshift(dO)}function db(dO){}function dK(dO){ax.unshift(dO)}function l(dP,dO,dQ){if(dP>=0){return dP}return dO<=32?2*Math.abs(1<<(dO-1))+dP:Math.pow(2,dO)+dP}function cR(dQ,dP,dR){if(dQ<=0){return dQ}var dO=dP<=32?Math.abs(1<<(dP-1)):Math.pow(2,dP-1);if(dQ>=dO&&(dP<=32||dQ>dO)){dQ=-2*dO+dQ}return dQ}bJ(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");bJ(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");bJ(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");bJ(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var br=Math.abs;var a5=Math.cos;var cB=Math.sin;var dl=Math.tan;var dI=Math.acos;var aL=Math.asin;var bl=Math.atan;var cd=Math.atan2;var cf=Math.exp;var c5=Math.log;var bz=Math.sqrt;var dh=Math.ceil;var O=Math.floor;var cH=Math.pow;var P=Math.imul;var dz=Math.fround;var bq=Math.round;var cT=Math.min;var be=Math.max;var a7=Math.clz32;var bO=Math.trunc;var aS=0;var cE=null;var aQ=null;var C={};function x(dP){var dO=dP;while(1){if(!C[dP]){return dP}dP=dO+Math.random()}}function cQ(dO){aS++;if(bY.monitorRunDependencies){bY.monitorRunDependencies(aS)}if(dO){bJ(!C[dO]);C[dO]=1;if(cE===null&&typeof setInterval!=="undefined"){cE=setInterval(function(){if(di){clearInterval(cE);cE=null;return}var dP=false;for(var dQ in C){if(!dP){dP=true;m("still waiting on run dependencies:")}m("dependency: "+dQ)}if(dP){m("(end of list)")}},10000)}}else{m("warning: run dependency added without ID")}}function bj(dP){aS--;if(bY.monitorRunDependencies){bY.monitorRunDependencies(aS)}if(dP){bJ(C[dP]);delete C[dP]}else{m("warning: run dependency removed without ID")}if(aS==0){if(cE!==null){clearInterval(cE);cE=null}if(aQ){var dO=aQ;aQ=null;dO()}}}bY.preloadedImages={};bY.preloadedAudios={};function c3(dP){if(bY.onAbort){bY.onAbort(dP)}dP+="";cp(dP);m(dP);di=true;bL=1;var dO="abort("+dP+") at "+G();dP=dO;throw new WebAssembly.RuntimeError(dP)}var cV=null;function F(dP,dO){return String.prototype.startsWith?dP.startsWith(dO):dP.indexOf(dO)===0}var c4="data:application/octet-stream;base64,";function bk(dO){return F(dO,c4)}var aV="file://";function bT(dO){return F(dO,aV)}function ao(dP,dO){return function(){var dQ=dP;var dR=dO;if(!dO){dR=bY.asm}bJ(cL,"native function `"+dQ+"` called before runtime initialization");bJ(!v,"native function `"+dQ+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)");if(!dR[dP]){bJ(dR[dP],"exported native function `"+dQ+"` not found")}return dR[dP].apply(null,arguments)}}var bb="mrbc.wasm";if(!bk(bb)){bb=bV(bb)}function bZ(){try{if(dk){return new Uint8Array(dk)}if(bo){return bo(bb)}else{throw"both async and sync fetching of the wasm failed"}}catch(dO){c3(dO)}}function ai(){if(!dk&&(dB||dd)&&typeof fetch==="function"&&!bT(bb)){return fetch(bb,{credentials:"same-origin"}).then(function(dO){if(!dO.ok){throw"failed to load wasm binary file at '"+bb+"'"}return dO.arrayBuffer()}).catch(function(){return bZ()})}return new Promise(function(dP,dO){dP(bZ())})}function bh(){var dV={env:ck,wasi_snapshot_preview1:ck};function dO(dW,dY){var dX=dW.exports;bY.asm=dX;bj("wasm-instantiate")}cQ("wasm-instantiate");var dU=bY;function dR(dW){bJ(bY===dU,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");dU=null;dO(dW.instance)}function dS(dW){return ai().then(function(dX){return WebAssembly.instantiate(dX,dV)}).then(dW,function(dX){m("failed to asynchronously prepare wasm: "+dX);c3(dX)})}function dQ(){if(!dk&&typeof WebAssembly.instantiateStreaming==="function"&&!bk(bb)&&!bT(bb)&&typeof fetch==="function"){fetch(bb,{credentials:"same-origin"}).then(function(dX){var dW=WebAssembly.instantiateStreaming(dX,dV);return dW.then(dR,function(dY){m("wasm streaming compile failed: "+dY);m("falling back to ArrayBuffer instantiation");return dS(dR)})})}else{return dS(dR)}}if(bY.instantiateWasm){try{var dP=bY.instantiateWasm(dV,dO);return dP}catch(dT){m("Module.instantiateWasm callback failed with error: "+dT);return false}}dQ();return{}}var aN;var av;var W={};d.push({func:function(){bg()}});function bx(dR,dU){aW.mainLoop.timingMode=dR;aW.mainLoop.timingValue=dU;if(!aW.mainLoop.func){console.error("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.");return 1}if(dR==0){aW.mainLoop.scheduler=function dV(){var dX=Math.max(0,aW.mainLoop.tickStartTime+dU-cr())|0;setTimeout(aW.mainLoop.runner,dX)};aW.mainLoop.method="timeout"}else{if(dR==1){aW.mainLoop.scheduler=function dP(){aW.requestAnimationFrame(aW.mainLoop.runner)};aW.mainLoop.method="rAF"}else{if(dR==2){if(typeof setImmediate==="undefined"){var dS=[];var dT="setimmediate";var dW=function(dX){if(dX.data===dT||dX.data.target===dT){dX.stopPropagation();dS.shift()()}};addEventListener("message",dW,true);setImmediate=(function dQ(dX){dS.push(dX);if(dd){if(bY.setImmediates===undefined){bY.setImmediates=[]}bY.setImmediates.push(dX);postMessage({target:dT})}else{postMessage(dT,"*")}})}aW.mainLoop.scheduler=function dO(){setImmediate(aW.mainLoop.runner)};aW.mainLoop.method="immediate"}}}return 0}var cr;if(bK){cr=function(){var dO=process.hrtime();return dO[0]*1000+dO[1]/1000000}}else{if(typeof dateNow!=="undefined"){cr=dateNow}else{cr=function(){return performance.now()}}}function ah(dS,dU,dR,dO,dP){cq=true;bJ(!aW.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.");aW.mainLoop.func=dS;aW.mainLoop.arg=dO;var dQ;if(typeof dO!=="undefined"){dQ=function(){bY.dynCall_vi(dS,dO)}}else{dQ=function(){bY.dynCall_v(dS)}}var dV=aW.mainLoop.currentlyRunningMainloop;aW.mainLoop.runner=function dT(){if(di){return}if(aW.mainLoop.queue.length>0){var dZ=Date.now();var dW=aW.mainLoop.queue.shift();dW.func(dW.arg);if(aW.mainLoop.remainingBlockers){var dY=aW.mainLoop.remainingBlockers;var dX=dY%1==0?dY-1:Math.floor(dY);if(dW.counted){aW.mainLoop.remainingBlockers=dX}else{dX=dX+0.5;aW.mainLoop.remainingBlockers=(8*dY+dX)/9}}console.log('main loop blocker "'+dW.name+'" took '+(Date.now()-dZ)+" ms");aW.mainLoop.updateStatus();if(dV1&&aW.mainLoop.currentFrameNumber%aW.mainLoop.timingValue!=0){aW.mainLoop.scheduler();return}else{if(aW.mainLoop.timingMode==0){aW.mainLoop.tickStartTime=cr()}}if(aW.mainLoop.method==="timeout"&&bY.ctx){cJ("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!");aW.mainLoop.method=""}aW.mainLoop.runIter(dQ);p();if(dV0){bx(0,1000/dU)}else{bx(1,1)}aW.mainLoop.scheduler()}if(dR){throw"unwind"}}var aW={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){aW.mainLoop.scheduler=null;aW.mainLoop.currentlyRunningMainloop++},resume:function(){aW.mainLoop.currentlyRunningMainloop++;var dO=aW.mainLoop.timingMode;var dQ=aW.mainLoop.timingValue;var dP=aW.mainLoop.func;aW.mainLoop.func=null;ah(dP,0,false,aW.mainLoop.arg,true);bx(dO,dQ);aW.mainLoop.scheduler()},updateStatus:function(){if(bY.setStatus){var dQ=bY.statusMessage||"Please wait...";var dO=aW.mainLoop.remainingBlockers;var dP=aW.mainLoop.expectedBlockers;if(dO){if(dO=6){var eh=(ei>>(eb-6))&63;eb-=6;ed+=ec[eh]}}if(eb==2){ed+=ec[(ei&3)<<4];ed+=ef+ef}else{if(eb==4){ed+=ec[(ei&15)<<2];ed+=ef}}return ed}d4.src="data:audio/x-"+dZ.substr(-3)+";base64,"+d9(d0);d8(d4)};d4.src=dY;aW.safeSetTimeout(function(){d8(d4)},10000)}else{return d1()}};bY.preloadPlugins.push(dO);function dQ(){aW.pointerLock=document.pointerLockElement===bY.canvas||document.mozPointerLockElement===bY.canvas||document.webkitPointerLockElement===bY.canvas||document.msPointerLockElement===bY.canvas}var dR=bY.canvas;if(dR){dR.requestPointerLock=dR.requestPointerLock||dR.mozRequestPointerLock||dR.webkitRequestPointerLock||dR.msRequestPointerLock||function(){};dR.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){};dR.exitPointerLock=dR.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",dQ,false);document.addEventListener("mozpointerlockchange",dQ,false);document.addEventListener("webkitpointerlockchange",dQ,false);document.addEventListener("mspointerlockchange",dQ,false);if(bY.elementPointerLock){dR.addEventListener("click",function(dX){if(!aW.pointerLock&&bY.canvas.requestPointerLock){bY.canvas.requestPointerLock();dX.preventDefault()}},false)}}},createContext:function(dR,dU,dO,dT){if(dU&&bY.ctx&&dR==bY.canvas){return bY.ctx}var dQ;var dV;if(dU){var dP={antialias:false,alpha:false,majorVersion:1};if(dT){for(var dS in dT){dP[dS]=dT[dS]}}if(typeof GL!=="undefined"){dV=GL.createContext(dR,dP);if(dV){dQ=GL.getContext(dV).GLctx}}}else{dQ=dR.getContext("2d")}if(!dQ){return null}if(dO){if(!dU){bJ(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it")}bY.ctx=dQ;if(dU){GL.makeContextCurrent(dV)}bY.useWebGL=dU;aW.moduleContextCreatedCallbacks.forEach(function(dW){dW()});aW.init()}return dQ},destroyContext:function(dP,dQ,dO){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(dR,dP){aW.lockPointer=dR;aW.resizeCanvas=dP;if(typeof aW.lockPointer==="undefined"){aW.lockPointer=true}if(typeof aW.resizeCanvas==="undefined"){aW.resizeCanvas=false}var dQ=bY.canvas;function dO(){aW.isFullscreen=false;var dT=dQ.parentNode;if((document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===dT){dQ.exitFullscreen=aW.exitFullscreen;if(aW.lockPointer){dQ.requestPointerLock()}aW.isFullscreen=true;if(aW.resizeCanvas){aW.setFullscreenCanvasSize()}else{aW.updateCanvasDimensions(dQ)}}else{dT.parentNode.insertBefore(dQ,dT);dT.parentNode.removeChild(dT);if(aW.resizeCanvas){aW.setWindowedCanvasSize()}else{aW.updateCanvasDimensions(dQ)}}if(bY.onFullScreen){bY.onFullScreen(aW.isFullscreen)}if(bY.onFullscreen){bY.onFullscreen(aW.isFullscreen)}}if(!aW.fullscreenHandlersInstalled){aW.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",dO,false);document.addEventListener("mozfullscreenchange",dO,false);document.addEventListener("webkitfullscreenchange",dO,false);document.addEventListener("MSFullscreenChange",dO,false)}var dS=document.createElement("div");dQ.parentNode.insertBefore(dS,dQ);dS.appendChild(dQ);dS.requestFullscreen=dS.requestFullscreen||dS.mozRequestFullScreen||dS.msRequestFullscreen||(dS.webkitRequestFullscreen?function(){dS.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(dS.webkitRequestFullScreen?function(){dS.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null);dS.requestFullscreen()},requestFullScreen:function(){c3("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){if(!aW.isFullscreen){return false}var dO=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||(function(){});dO.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(dQ){var dP=Date.now();if(aW.nextRAF===0){aW.nextRAF=dP+1000/60}else{while(dP+2>=aW.nextRAF){aW.nextRAF+=1000/60}}var dO=Math.max(aW.nextRAF-dP,0);setTimeout(dQ,dO)},requestAnimationFrame:function(dP){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(dP);return}var dO=aW.fakeRequestAnimationFrame;dO(dP)},safeCallback:function(dO){return function(){if(!di){return dO.apply(null,arguments)}}},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){aW.allowAsyncCallbacks=false},resumeAsyncCallbacks:function(){aW.allowAsyncCallbacks=true;if(aW.queuedAsyncCallbacks.length>0){var dO=aW.queuedAsyncCallbacks;aW.queuedAsyncCallbacks=[];dO.forEach(function(dP){dP()})}},safeRequestAnimationFrame:function(dO){return aW.requestAnimationFrame(function(){if(di){return}if(aW.allowAsyncCallbacks){dO()}else{aW.queuedAsyncCallbacks.push(dO)}})},safeSetTimeout:function(dO,dP){cq=true;return setTimeout(function(){if(di){return}if(aW.allowAsyncCallbacks){dO()}else{aW.queuedAsyncCallbacks.push(dO)}},dP)},safeSetInterval:function(dO,dP){cq=true;return setInterval(function(){if(di){return}if(aW.allowAsyncCallbacks){dO()}},dP)},getMimetype:function(dO){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[dO.substr(dO.lastIndexOf(".")+1)]},getUserMedia:function(dO){if(!window.getUserMedia){window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia}window.getUserMedia(dO)},getMovementX:function(dO){return dO.movementX||dO.mozMovementX||dO.webkitMovementX||0},getMovementY:function(dO){return dO.movementY||dO.mozMovementY||dO.webkitMovementY||0},getMouseWheelDelta:function(dO){var dP=0;switch(dO.type){case"DOMMouseScroll":dP=dO.detail/3;break;case"mousewheel":dP=dO.wheelDelta/120;break;case"wheel":dP=dO.deltaY;switch(dO.deltaMode){case 0:dP/=100;break;case 1:dP/=3;break;case 2:dP*=80;break;default:throw"unrecognized mouse wheel delta mode: "+dO.deltaMode}break;default:throw"unrecognized mouse wheel event: "+dO.type}return dP},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(dP){if(aW.pointerLock){if(dP.type!="mousemove"&&("mozMovementX" in dP)){aW.mouseMovementX=aW.mouseMovementY=0}else{aW.mouseMovementX=aW.getMovementX(dP);aW.mouseMovementY=aW.getMovementY(dP)}if(typeof SDL!="undefined"){aW.mouseX=SDL.mouseX+aW.mouseMovementX;aW.mouseY=SDL.mouseY+aW.mouseMovementY}else{aW.mouseX+=aW.mouseMovementX;aW.mouseY+=aW.mouseMovementY}}else{var dV=bY.canvas.getBoundingClientRect();var dS=bY.canvas.width;var dO=bY.canvas.height;var d0=((typeof window.scrollX!=="undefined")?window.scrollX:window.pageXOffset);var dY=((typeof window.scrollY!=="undefined")?window.scrollY:window.pageYOffset);bJ((typeof d0!=="undefined")&&(typeof dY!=="undefined"),"Unable to retrieve scroll position, mouse positions likely broken.");if(dP.type==="touchstart"||dP.type==="touchend"||dP.type==="touchmove"){var dT=dP.touch;if(dT===undefined){return}var dR=dT.pageX-(d0+dV.left);var dQ=dT.pageY-(dY+dV.top);dR=dR*(dS/dV.width);dQ=dQ*(dO/dV.height);var dX={x:dR,y:dQ};if(dP.type==="touchstart"){aW.lastTouches[dT.identifier]=dX;aW.touches[dT.identifier]=dX}else{if(dP.type==="touchend"||dP.type==="touchmove"){var dZ=aW.touches[dT.identifier];if(!dZ){dZ=dX}aW.lastTouches[dT.identifier]=dZ;aW.touches[dT.identifier]=dX}}return}var dW=dP.pageX-(d0+dV.left);var dU=dP.pageY-(dY+dV.top);dW=dW*(dS/dV.width);dU=dU*(dO/dV.height);aW.mouseMovementX=dW-aW.mouseX;aW.mouseMovementY=dU-aW.mouseY;aW.mouseX=dW;aW.mouseY=dU}},asyncLoad:function(dP,dS,dO,dQ){var dR=!dQ?x("al "+dP):"";du(dP,function(dT){bJ(dT,'Loading data file "'+dP+'" failed (no arrayBuffer).');dS(new Uint8Array(dT));if(dR){bj(dR)}},function(dT){if(dO){dO()}else{throw'Loading data file "'+dP+'" failed.'}});if(dR){cQ(dR)}},resizeListeners:[],updateResizeListeners:function(){var dO=bY.canvas;aW.resizeListeners.forEach(function(dP){dP(dO.width,dO.height)})},setCanvasSize:function(dR,dP,dO){var dQ=bY.canvas;aW.updateCanvasDimensions(dQ,dR,dP);if(!dO){aW.updateResizeListeners()}},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var dO=b9[((SDL.screen)>>2)];dO=dO|8388608;ar[((SDL.screen)>>2)]=dO}aW.updateCanvasDimensions(bY.canvas);aW.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var dO=b9[((SDL.screen)>>2)];dO=dO&~8388608;ar[((SDL.screen)>>2)]=dO}aW.updateCanvasDimensions(bY.canvas);aW.updateResizeListeners()},updateCanvasDimensions:function(dQ,dT,dP){if(dT&&dP){dQ.widthNative=dT;dQ.heightNative=dP}else{dT=dQ.widthNative;dP=dQ.heightNative}var dO=dT;var dS=dP;if(bY.forcedAspectRatio&&bY.forcedAspectRatio>0){if(dO/dS>2)]=dO;return dO}var au={splitPath:function(dO){var dP=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return dP.exec(dO).slice(1)},normalizeArray:function(dS,dP){var dO=0;for(var dQ=dS.length-1;dQ>=0;dQ--){var dR=dS[dQ];if(dR==="."){dS.splice(dQ,1)}else{if(dR===".."){dS.splice(dQ,1);dO++}else{if(dO){dS.splice(dQ,1);dO--}}}}if(dP){for(;dO;dO--){dS.unshift("..")}}return dS},normalize:function(dQ){var dP=dQ.charAt(0)==="/",dO=dQ.substr(-1)==="/";dQ=au.normalizeArray(dQ.split("/").filter(function(dR){return !!dR}),!dP).join("/");if(!dQ&&!dP){dQ="."}if(dQ&&dO){dQ+="/"}return(dP?"/":"")+dQ},dirname:function(dR){var dO=au.splitPath(dR),dP=dO[0],dQ=dO[1];if(!dP&&!dQ){return"."}if(dQ){dQ=dQ.substr(0,dQ.length-1)}return dP+dQ},basename:function(dP){if(dP==="/"){return"/"}var dO=dP.lastIndexOf("/");if(dO===-1){return dP}return dP.substr(dO+1)},extname:function(dO){return au.splitPath(dO)[3]},join:function(){var dO=Array.prototype.slice.call(arguments,0);return au.normalize(dO.join("/"))},join2:function(dO,dP){return au.normalize(dO+"/"+dP)}};var cc={resolve:function(){var dQ="",dO=false;for(var dP=arguments.length-1;dP>=-1&&!dO;dP--){var dR=(dP>=0)?arguments[dP]:D.cwd();if(typeof dR!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else{if(!dR){return""}}dQ=dR+"/"+dQ;dO=dR.charAt(0)==="/"}dQ=au.normalizeArray(dQ.split("/").filter(function(dS){return !!dS}),!dO).join("/");return((dO?"/":"")+dQ)||"."},relative:function(dU,dV){dU=cc.resolve(dU).substr(1);dV=cc.resolve(dV).substr(1);function dQ(dX){var dZ=0;for(;dZ=0;dY--){if(dX[dY]!==""){break}}if(dZ>dY){return[]}return dX.slice(dZ,dY-dZ+1)}var dT=dQ(dU.split("/"));var dP=dQ(dV.split("/"));var dO=Math.min(dT.length,dP.length);var dW=dO;for(var dS=0;dS0){dO=dP.slice(0,dS).toString("utf-8")}else{dO=null}}else{if(typeof window!="undefined"&&typeof window.prompt=="function"){dO=window.prompt("Input: ");if(dO!==null){dO+="\n"}}else{if(typeof readline=="function"){dO=readline();if(dO!==null){dO+="\n"}}}}if(!dO){return null}dT.input=aq(dO,true)}return dT.input.shift()},put_char:function(dP,dO){if(dO===null||dO===10){cp(am(dP.output,0));dP.output=[]}else{if(dO!=0){dP.output.push(dO)}}},flush:function(dO){if(dO.output&&dO.output.length>0){cp(am(dO.output,0));dO.output=[]}}},default_tty1_ops:{put_char:function(dP,dO){if(dO===null||dO===10){m(am(dP.output,0));dP.output=[]}else{if(dO!=0){dP.output.push(dO)}}},flush:function(dO){if(dO.output&&dO.output.length>0){m(am(dO.output,0));dO.output=[]}}}};var R={ops_table:null,mount:function(dO){return R.createNode(null,"/",16384|511,0)},createNode:function(dQ,dP,dS,dO){if(D.isBlkdev(dS)||D.isFIFO(dS)){throw new D.ErrnoError(63)}if(!R.ops_table){R.ops_table={dir:{node:{getattr:R.node_ops.getattr,setattr:R.node_ops.setattr,lookup:R.node_ops.lookup,mknod:R.node_ops.mknod,rename:R.node_ops.rename,unlink:R.node_ops.unlink,rmdir:R.node_ops.rmdir,readdir:R.node_ops.readdir,symlink:R.node_ops.symlink},stream:{llseek:R.stream_ops.llseek}},file:{node:{getattr:R.node_ops.getattr,setattr:R.node_ops.setattr},stream:{llseek:R.stream_ops.llseek,read:R.stream_ops.read,write:R.stream_ops.write,allocate:R.stream_ops.allocate,mmap:R.stream_ops.mmap,msync:R.stream_ops.msync}},link:{node:{getattr:R.node_ops.getattr,setattr:R.node_ops.setattr,readlink:R.node_ops.readlink},stream:{}},chrdev:{node:{getattr:R.node_ops.getattr,setattr:R.node_ops.setattr},stream:D.chrdev_stream_ops}}}var dR=D.createNode(dQ,dP,dS,dO);if(D.isDir(dR.mode)){dR.node_ops=R.ops_table.dir.node;dR.stream_ops=R.ops_table.dir.stream;dR.contents={}}else{if(D.isFile(dR.mode)){dR.node_ops=R.ops_table.file.node;dR.stream_ops=R.ops_table.file.stream;dR.usedBytes=0;dR.contents=null}else{if(D.isLink(dR.mode)){dR.node_ops=R.ops_table.link.node;dR.stream_ops=R.ops_table.link.stream}else{if(D.isChrdev(dR.mode)){dR.node_ops=R.ops_table.chrdev.node;dR.stream_ops=R.ops_table.chrdev.stream}}}}dR.timestamp=Date.now();if(dQ){dQ.contents[dP]=dR}return dR},getFileDataAsRegularArray:function(dQ){if(dQ.contents&&dQ.contents.subarray){var dO=[];for(var dP=0;dP=dR){return}var dQ=1024*1024;dR=Math.max(dR,(dS*(dS>>0);if(dS!=0){dR=Math.max(dR,256)}var dO=dP.contents;dP.contents=new Uint8Array(dR);if(dP.usedBytes>0){dP.contents.set(dO.subarray(0,dP.usedBytes),0)}return},resizeFileStorage:function(dQ,dP){if(dQ.usedBytes==dP){return}if(dP==0){dQ.contents=null;dQ.usedBytes=0;return}if(!dQ.contents||dQ.contents.subarray){var dO=dQ.contents;dQ.contents=new Uint8Array(dP);if(dO){dQ.contents.set(dO.subarray(0,Math.min(dP,dQ.usedBytes)))}dQ.usedBytes=dP;return}if(!dQ.contents){dQ.contents=[]}if(dQ.contents.length>dP){dQ.contents.length=dP}else{while(dQ.contents.length=dV.node.usedBytes){return 0}var dR=Math.min(dV.node.usedBytes-dO,dT);bJ(dR>=0);if(dR>8&&dS.subarray){dP.set(dS.subarray(dO,dO+dR),dU)}else{for(var dQ=0;dQ0||dT+dQ8){throw new D.ErrnoError(32)}var dS=au.normalizeArray(dZ.split("/").filter(function(d0){return !!d0}),false);var dV=D.root;var dY="/";for(var dT=0;dT40){throw new D.ErrnoError(32)}}}}return{path:dY,node:dV}},getPath:function(dP){var dQ;while(true){if(D.isRoot(dP)){var dO=dP.mount.mountpoint;if(!dQ){return dO}return dO[dO.length-1]!=="/"?dO+"/"+dQ:dO+dQ}dQ=dQ?dP.name+"/"+dQ:dP.name;dP=dP.parent}},hashName:function(dR,dO){var dQ=0;for(var dP=0;dP>>0)%D.nameTable.length},hashAddNode:function(dO){var dP=D.hashName(dO.parent.id,dO.name);dO.name_next=D.nameTable[dP];D.nameTable[dP]=dO},hashRemoveNode:function(dO){var dQ=D.hashName(dO.parent.id,dO.name);if(D.nameTable[dQ]===dO){D.nameTable[dQ]=dO.name_next}else{var dP=D.nameTable[dQ];while(dP){if(dP.name_next===dO){dP.name_next=dO.name_next;break}dP=dP.name_next}}},lookupNode:function(dQ,dP){var dO=D.mayLookup(dQ);if(dO){throw new D.ErrnoError(dO,dQ)}var dS=D.hashName(dQ.id,dP);for(var dR=D.nameTable[dS];dR;dR=dR.name_next){var dT=dR.name;if(dR.parent.id===dQ.id&&dT===dP){return dR}}return D.lookup(dQ,dP)},createNode:function(dQ,dP,dS,dO){var dR=new D.FSNode(dQ,dP,dS,dO);D.hashAddNode(dR);return dR},destroyNode:function(dO){D.hashRemoveNode(dO)},isRoot:function(dO){return dO===dO.parent},isMountpoint:function(dO){return !!dO.mounted},isFile:function(dO){return(dO&61440)===32768},isDir:function(dO){return(dO&61440)===16384},isLink:function(dO){return(dO&61440)===40960},isChrdev:function(dO){return(dO&61440)===8192},isBlkdev:function(dO){return(dO&61440)===24576},isFIFO:function(dO){return(dO&61440)===4096},isSocket:function(dO){return(dO&49152)===49152},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(dP){var dO=D.flagModes[dP];if(typeof dO==="undefined"){throw new Error("Unknown file open mode: "+dP)}return dO},flagsToPermissionString:function(dO){var dP=["r","w","rw"][dO&3];if((dO&512)){dP+="w"}return dP},nodePermissions:function(dP,dO){if(D.ignorePermissions){return 0}if(dO.indexOf("r")!==-1&&!(dP.mode&292)){return 2}else{if(dO.indexOf("w")!==-1&&!(dP.mode&146)){return 2}else{if(dO.indexOf("x")!==-1&&!(dP.mode&73)){return 2}}}return 0},mayLookup:function(dP){var dO=D.nodePermissions(dP,"x");if(dO){return dO}if(!dP.node_ops.lookup){return 2}return 0},mayCreate:function(dP,dO){try{var dQ=D.lookupNode(dP,dO);return 20}catch(dR){}return D.nodePermissions(dP,"wx")},mayDelete:function(dR,dQ,dO){var dS;try{dS=D.lookupNode(dR,dQ)}catch(dT){return dT.errno}var dP=D.nodePermissions(dR,"wx");if(dP){return dP}if(dO){if(!D.isDir(dS.mode)){return 54}if(D.isRoot(dS)||D.getPath(dS)===D.cwd()){return 10}}else{if(D.isDir(dS.mode)){return 31}}return 0},mayOpen:function(dP,dO){if(!dP){return 44}if(D.isLink(dP.mode)){return 32}else{if(D.isDir(dP.mode)){if(D.flagsToPermissionString(dO)!=="r"||(dO&512)){return 31}}}return D.nodePermissions(dP,D.flagsToPermissionString(dO))},MAX_OPEN_FDS:4096,nextfd:function(dQ,dP){dQ=dQ||0;dP=dP||D.MAX_OPEN_FDS;for(var dO=dQ;dO<=dP;dO++){if(!D.streams[dO]){return dO}}throw new D.ErrnoError(33)},getStream:function(dO){return D.streams[dO]},createStream:function(dS,dQ,dP){if(!D.FSStream){D.FSStream=function(){};D.FSStream.prototype={object:{get:function(){return this.node},set:function(dU){this.node=dU}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return(this.flags&1024)}}}}var dT=new D.FSStream();for(var dR in dS){dT[dR]=dS[dR]}dS=dT;var dO=D.nextfd(dQ,dP);dS.fd=dO;D.streams[dO]=dS;return dS},closeStream:function(dO){D.streams[dO]=null},chrdev_stream_ops:{open:function(dP){var dO=D.getDevice(dP.node.rdev);dP.stream_ops=dO.stream_ops;if(dP.stream_ops.open){dP.stream_ops.open(dP)}},llseek:function(){throw new D.ErrnoError(70)}},major:function(dO){return((dO)>>8)},minor:function(dO){return((dO)&255)},makedev:function(dP,dO){return((dP)<<8|(dO))},registerDevice:function(dO,dP){D.devices[dO]={stream_ops:dP}},getDevice:function(dO){return D.devices[dO]},getMounts:function(dP){var dR=[];var dQ=[dP];while(dQ.length){var dO=dQ.pop();dR.push(dO);dQ.push.apply(dQ,dO.mounts)}return dR},syncfs:function(dS,dT){if(typeof(dS)==="function"){dT=dS;dS=false}D.syncFSRequests++;if(D.syncFSRequests>1){m("warning: "+D.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var dQ=D.getMounts(D.root.mount);var dP=0;function dR(dU){bJ(D.syncFSRequests>0);D.syncFSRequests--;return dT(dU)}function dO(dU){if(dU){if(!dO.errored){dO.errored=true;return dR(dU)}return}if(++dP>=dQ.length){dR(null)}}dQ.forEach(function(dU){if(!dU.type.syncfs){return dO(null)}dU.type.syncfs(dU,dS,dO)})},mount:function(dS,dO,dW){if(typeof dS==="string"){throw dS}var dU=dW==="/";var dV=!dW;var dQ;if(dU&&D.root){throw new D.ErrnoError(10)}else{if(!dU&&!dV){var dP=D.lookupPath(dW,{follow_mount:false});dW=dP.path;dQ=dP.node;if(D.isMountpoint(dQ)){throw new D.ErrnoError(10)}if(!D.isDir(dQ.mode)){throw new D.ErrnoError(54)}}}var dT={type:dS,opts:dO,mountpoint:dW,mounts:[]};var dR=dS.mount(dT);dR.mount=dT;dT.root=dR;if(dU){D.root=dR}else{if(dQ){dQ.mounted=dT;if(dQ.mount){dQ.mount.mounts.push(dT)}}}return dR},unmount:function(dQ){var dT=D.lookupPath(dQ,{follow_mount:false});if(!D.isMountpoint(dT.node)){throw new D.ErrnoError(28)}var dS=dT.node;var dP=dS.mounted;var dR=D.getMounts(dP);Object.keys(D.nameTable).forEach(function(dW){var dV=D.nameTable[dW];while(dV){var dU=dV.name_next;if(dR.indexOf(dV.mount)!==-1){D.destroyNode(dV)}dV=dU}});dS.mounted=null;var dO=dS.mount.mounts.indexOf(dP);bJ(dO!==-1);dS.mount.mounts.splice(dO,1)},lookup:function(dP,dO){return dP.node_ops.lookup(dP,dO)},mknod:function(dT,dU,dO){var dS=D.lookupPath(dT,{parent:true});var dR=dS.node;var dQ=au.basename(dT);if(!dQ||dQ==="."||dQ===".."){throw new D.ErrnoError(28)}var dP=D.mayCreate(dR,dQ);if(dP){throw new D.ErrnoError(dP)}if(!dR.node_ops.mknod){throw new D.ErrnoError(63)}return dR.node_ops.mknod(dR,dQ,dU,dO)},create:function(dO,dP){dP=dP!==undefined?dP:438;dP&=4095;dP|=32768;return D.mknod(dO,dP,0)},mkdir:function(dO,dP){dP=dP!==undefined?dP:511;dP&=511|512;dP|=16384;return D.mknod(dO,dP,0)},mkdirTree:function(dR,dT){var dQ=dR.split("/");var dS="";for(var dO=0;dOthis.length-1||d3<0){return undefined}var d5=d3%this.chunkSize;var d4=(d3/this.chunkSize)|0;return this.getter(d4)[d5]};dO.prototype.setDataGetter=function dU(d3){this.getter=d3};dO.prototype.cacheLength=function d2(){var d7=new XMLHttpRequest();d7.open("HEAD",dQ,false);d7.send(null);if(!(d7.status>=200&&d7.status<300||d7.status===304)){throw new Error("Couldn't load "+dQ+". Status: "+d7.status)}var d6=Number(d7.getResponseHeader("Content-length"));var ea;var d5=(ea=d7.getResponseHeader("Accept-Ranges"))&&ea==="bytes";var d3=(ea=d7.getResponseHeader("Content-Encoding"))&&ea==="gzip";var d9=1024*1024;if(!d5){d9=d6}var d4=(function(ed,ec){if(ed>ec){throw new Error("invalid range ("+ed+", "+ec+") or no bytes requested!")}if(ec>d6-1){throw new Error("only "+d6+" bytes available! programmer error!")}var eb=new XMLHttpRequest();eb.open("GET",dQ,false);if(d6!==d9){eb.setRequestHeader("Range","bytes="+ed+"-"+ec)}if(typeof Uint8Array!="undefined"){eb.responseType="arraybuffer"}if(eb.overrideMimeType){eb.overrideMimeType("text/plain; charset=x-user-defined")}eb.send(null);if(!(eb.status>=200&&eb.status<300||eb.status===304)){throw new Error("Couldn't load "+dQ+". Status: "+eb.status)}if(eb.response!==undefined){return new Uint8Array((eb.response||[]))}else{return aq(eb.responseText||"",true)}});var d8=this;d8.setDataGetter(function(ec){var ed=ec*d9;var eb=(ec+1)*d9-1;eb=Math.min(eb,d6-1);if(typeof(d8.chunks[ec])==="undefined"){d8.chunks[ec]=d4(ed,eb)}if(typeof(d8.chunks[ec])==="undefined"){throw new Error("doXHR failed!")}return d8.chunks[ec]});if(d3||!d6){d9=d6=1;d6=this.getter(0).length;d9=d6;cp("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=d6;this._chunkSize=d9;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!dd){throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"}var dZ=new dO();Object.defineProperties(dZ,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var dX={isDevice:false,contents:dZ}}else{var dX={isDevice:false,url:dQ}}var dS=D.createFile(dY,dP,dX,dW,dT);if(dX.contents){dS.contents=dX.contents}else{if(dX.url){dS.contents=null;dS.url=dX.url}}Object.defineProperties(dS,{usedBytes:{get:function(){return this.contents.length}}});var dV={};var d0=Object.keys(dS.stream_ops);d0.forEach(function(d3){var d4=dS.stream_ops[d3];dV[d3]=function d5(){if(!D.forceLoadFile(dS)){throw new D.ErrnoError(29)}return d4.apply(null,arguments)}});dV.read=function d1(ea,d4,d9,d8,d3){if(!D.forceLoadFile(dS)){throw new D.ErrnoError(29)}var d7=ea.node.contents;if(d3>=d7.length){return 0}var d6=Math.min(d7.length-d3,d8);bJ(d6>=0);if(d7.slice){for(var d5=0;d5>2)]=dP.dev;ar[(((dO)+(4))>>2)]=0;ar[(((dO)+(8))>>2)]=dP.ino;ar[(((dO)+(12))>>2)]=dP.mode;ar[(((dO)+(16))>>2)]=dP.nlink;ar[(((dO)+(20))>>2)]=dP.uid;ar[(((dO)+(24))>>2)]=dP.gid;ar[(((dO)+(28))>>2)]=dP.rdev;ar[(((dO)+(32))>>2)]=0;(av=[dP.size>>>0,(aN=dP.size,(+(br(aN)))>=1?(aN>0?((cT((+(O((aN)/4294967296))),4294967295))|0)>>>0:(~~((+(dh((aN-+(((~~(aN)))>>>0))/4294967296)))))>>>0):0)],ar[(((dO)+(40))>>2)]=av[0],ar[(((dO)+(44))>>2)]=av[1]);ar[(((dO)+(48))>>2)]=4096;ar[(((dO)+(52))>>2)]=dP.blocks;ar[(((dO)+(56))>>2)]=(dP.atime.getTime()/1000)|0;ar[(((dO)+(60))>>2)]=0;ar[(((dO)+(64))>>2)]=(dP.mtime.getTime()/1000)|0;ar[(((dO)+(68))>>2)]=0;ar[(((dO)+(72))>>2)]=(dP.ctime.getTime()/1000)|0;ar[(((dO)+(76))>>2)]=0;(av=[dP.ino>>>0,(aN=dP.ino,(+(br(aN)))>=1?(aN>0?((cT((+(O((aN)/4294967296))),4294967295))|0)>>>0:(~~((+(dh((aN-+(((~~(aN)))>>>0))/4294967296)))))>>>0):0)],ar[(((dO)+(80))>>2)]=av[0],ar[(((dO)+(84))>>2)]=av[1]);return 0},doMsync:function(dT,dS,dO,dQ,dR){var dP=bs.slice(dT,dT+dO);D.msync(dS,dP,dR,dO,dQ)},doMkdir:function(dO,dP){dO=au.normalize(dO);if(dO[dO.length-1]==="/"){dO=dO.substr(0,dO.length-1)}D.mkdir(dO,dP,0);return 0},doMknod:function(dP,dQ,dO){switch(dQ&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return -28}D.mknod(dP,dQ,dO);return 0},doReadlink:function(dR,dQ,dT){if(dT<=0){return -28}var dP=D.readlink(dR);var dO=Math.min(dT,S(dP));var dS=dx[dQ+dO];q(dP,dQ,dT+1);dx[dQ+dO]=dS;return dO},doAccess:function(dS,dR){if(dR&~7){return -28}var dP;var dQ=D.lookupPath(dS,{follow:true});dP=dQ.node;if(!dP){return -44}var dO="";if(dR&4){dO+="r"}if(dR&2){dO+="w"}if(dR&1){dO+="x"}if(dO&&D.nodePermissions(dP,dO)){return -2}return 0},doDup:function(dQ,dO,dP){var dR=D.getStream(dP);if(dR){D.close(dR)}return D.open(dQ,dO,0,dP,dP).fd},doReadv:function(dU,dP,dW,dQ){var dT=0;for(var dR=0;dR>2)];var dS=ar[(((dP)+(dR*8+4))>>2)];var dV=D.read(dU,dx,dO,dS,dQ);if(dV<0){return -1}dT+=dV;if(dV>2)];var dS=ar[(((dP)+(dR*8+4))>>2)];var dV=D.write(dU,dx,dO,dS,dQ);if(dV<0){return -1}dT+=dV}return dT},varargs:undefined,get:function(){bJ(bn.varargs!=undefined);bn.varargs+=4;var dO=ar[(((bn.varargs)-(4))>>2)];return dO},getStr:function(dP){var dO=dC(dP);return dO},getStreamFromFD:function(dO){var dP=D.getStream(dO);if(!dP){throw new D.ErrnoError(8)}return dP},get64:function(dO,dP){if(dO>=0){bJ(dP===0)}else{bJ(dP===-1)}return dO}};function aD(dQ,dR,dP){bn.varargs=dP;try{var dU=bn.getStreamFromFD(dQ);switch(dR){case 0:var dO=bn.get();if(dO<0){return -28}var dV;dV=D.open(dU.path,dU.flags,0,dO);return dV.fd;case 1:case 2:return 0;case 3:return dU.flags;case 4:var dO=bn.get();dU.flags|=dO;return 0;case 12:var dO=bn.get();var dT=0;a2[(((dO)+(dT))>>1)]=2;return 0;case 13:case 14:return 0;case 16:case 8:return -28;case 9:cU(28);return -1;default:return -28}}catch(dS){if(typeof D==="undefined"||!(dS instanceof D.ErrnoError)){c3(dS)}return -dS.errno}}function b1(dP,dT,dO){bn.varargs=dO;try{var dS=bn.getStreamFromFD(dP);switch(dT){case 21509:case 21505:if(!dS.tty){return -59}return 0;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:if(!dS.tty){return -59}return 0;case 21519:if(!dS.tty){return -59}var dQ=bn.get();ar[((dQ)>>2)]=0;return 0;case 21520:if(!dS.tty){return -59}return -28;case 21531:var dQ=bn.get();return D.ioctl(dS,dT,dQ);case 21523:if(!dS.tty){return -59}return 0;case 21524:if(!dS.tty){return -59}return 0;default:c3("bad ioctl syscall "+dT)}}catch(dR){if(typeof D==="undefined"||!(dR instanceof D.ErrnoError)){c3(dR)}return -dR.errno}}function h(dS,dO,dP){bn.varargs=dP;try{var dR=bn.getStr(dS);var dU=bn.get();var dT=D.open(dR,dO,dU);return dT.fd}catch(dQ){if(typeof D==="undefined"||!(dQ instanceof D.ErrnoError)){c3(dQ)}return -dQ.errno}}function aG(){c3()}function cP(){return 79712}function dy(dO,dP){bw(dO,dP||1);throw"longjmp"}function c2(dO,dP){dy(dO,dP)}function dG(dP,dQ,dO){bs.copyWithin(dP,dQ,dQ+dO)}function bX(){return bs.length}function a9(dO){c3("Cannot enlarge memory arrays to size "+dO+" bytes (OOM). Either (1) compile with -s INITIAL_MEMORY=X with X higher than the current value "+dx.length+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function bd(dO){dO=dO>>>0;a9(dO)}function ac(dO){dM(dO)}function aw(dO){try{var dQ=bn.getStreamFromFD(dO);D.close(dQ);return 0}catch(dP){if(typeof D==="undefined"||!(dP instanceof D.ErrnoError)){c3(dP)}return dP.errno}}function bf(dR,dO,dQ,dT){try{var dU=bn.getStreamFromFD(dR);var dP=bn.doReadv(dU,dO,dQ);ar[((dT)>>2)]=dP;return 0}catch(dS){if(typeof D==="undefined"||!(dS instanceof D.ErrnoError)){c3(dS)}return dS.errno}}function aI(dP,dT,dV,dQ,dS){try{var dX=bn.getStreamFromFD(dP);var dW=4294967296;var dR=dV*dW+(dT>>>0);var dO=9007199254740992;if(dR<=-dO||dR>=dO){return -61}D.llseek(dX,dR,dQ);(av=[dX.position>>>0,(aN=dX.position,(+(br(aN)))>=1?(aN>0?((cT((+(O((aN)/4294967296))),4294967295))|0)>>>0:(~~((+(dh((aN-+(((~~(aN)))>>>0))/4294967296)))))>>>0):0)],ar[((dS)>>2)]=av[0],ar[(((dS)+(4))>>2)]=av[1]);if(dX.getdents&&dR===0&&dQ===0){dX.getdents=null}return 0}catch(dU){if(typeof D==="undefined"||!(dU instanceof D.ErrnoError)){c3(dU)}return dU.errno}}function dj(dR,dO,dQ,dT){try{var dU=bn.getStreamFromFD(dR);var dP=bn.doWritev(dU,dO,dQ);ar[((dT)>>2)]=dP;return 0}catch(dS){if(typeof D==="undefined"||!(dS instanceof D.ErrnoError)){c3(dS)}return dS.errno}}function cG(){return(B()|0)}function b4(dO){dO=+dO;return dO>=+0?+O(dO+ +0.5):+dh(dO-+0.5)}function cn(dO){g((dO)|0)}bY.requestFullscreen=function ba(dP,dO){aW.requestFullscreen(dP,dO)};bY.requestFullScreen=function U(){aW.requestFullScreen()};bY.requestAnimationFrame=function ds(dO){aW.requestAnimationFrame(dO)};bY.setCanvasSize=function aU(dQ,dP,dO){aW.setCanvasSize(dQ,dP,dO)};bY.pauseMainLoop=function aO(){aW.mainLoop.pause()};bY.resumeMainLoop=function cF(){aW.mainLoop.resume()};bY.getUserMedia=function j(){aW.getUserMedia()};bY.createContext=function a4(dP,dR,dO,dQ){return aW.createContext(dP,dR,dO,dQ)};var cu=function(dQ,dP,dR,dO){if(!dQ){dQ=this}this.parent=dQ;this.mount=dQ.mount;this.mounted=null;this.id=D.nextInode++;this.name=dP;this.mode=dR;this.node_ops={};this.stream_ops={};this.rdev=dO};var b3=292|73;var dm=146;Object.defineProperties(cu.prototype,{read:{get:function(){return(this.mode&b3)===b3},set:function(dO){dO?this.mode|=b3:this.mode&=~b3}},write:{get:function(){return(this.mode&dm)===dm},set:function(dO){dO?this.mode|=dm:this.mode&=~dm}},isFolder:{get:function(){return D.isDir(this.mode)}},isDevice:{get:function(){return D.isChrdev(this.mode)}}});D.FSNode=cu;D.staticInit();bY.FS_createFolder=D.createFolder;bY.FS_createPath=D.createPath;bY.FS_createDataFile=D.createDataFile;bY.FS_createPreloadedFile=D.createPreloadedFile;bY.FS_createLazyFile=D.createLazyFile;bY.FS_createLink=D.createLink;bY.FS_createDevice=D.createDevice;bY.FS_unlink=D.unlink;var a1=true;function aq(dR,dT,dS){var dP=dS>0?dS:S(dR)+1;var dO=new Array(dP);var dQ=r(dR,dO,0,dO.length);if(dT){dO.length=dQ}return dO}function aa(dR){var dO=[];for(var dP=0;dP255){if(a1){bJ(false,"Character code "+dQ+" ("+String.fromCharCode(dQ)+") at offset "+dP+" not in 0x00-0xFF.")}dQ&=255}dO.push(String.fromCharCode(dQ))}return dO.join("")}var s={};var ck={__handle_stack_overflow:aX,__sys_fcntl64:aD,__sys_ioctl:b1,__sys_open:h,abort:aG,emscripten_get_sbrk_ptr:cP,emscripten_longjmp:c2,emscripten_memcpy_big:dG,emscripten_resize_heap:bd,exit:ac,fd_close:aw,fd_read:bf,fd_seek:aI,fd_write:dj,getTempRet0:cG,invoke_ii:cM,invoke_iii:cA,invoke_iiii:aj,invoke_iiiii:a3,invoke_vi:cy,invoke_vii:E,invoke_viii:k,invoke_viiii:cz,invoke_viiiii:L,invoke_viiiiii:bA,invoke_viiiiiii:dr,memory:bI,round:b4,setTempRet0:cn,table:de};var e=bh();var bg=bY.___wasm_call_ctors=ao("__wasm_call_ctors");var b8=bY._main=ao("main");var cY=bY.___errno_location=ao("__errno_location");var cN=bY._malloc=ao("malloc");var cm=bY._testSetjmp=ao("testSetjmp");var bS=bY._saveSetjmp=ao("saveSetjmp");var c0=bY._free=ao("free");var c9=bY._realloc=ao("realloc");var b7=bY._fflush=ao("fflush");var bw=bY._setThrew=ao("setThrew");var aK=bY.stackSave=ao("stackSave");var bQ=bY.stackRestore=ao("stackRestore");var bW=bY.stackAlloc=ao("stackAlloc");var cb=bY.dynCall_vi=ao("dynCall_vi");var ce=bY.dynCall_vii=ao("dynCall_vii");var dg=bY.dynCall_viii=ao("dynCall_viii");var dL=bY.dynCall_viiii=ao("dynCall_viiii");var H=bY.dynCall_viiiii=ao("dynCall_viiiii");var b=bY.dynCall_viiiiii=ao("dynCall_viiiiii");var cO=bY.dynCall_viiiiiii=ao("dynCall_viiiiiii");var ct=bY.dynCall_ii=ao("dynCall_ii");var aB=bY.dynCall_iii=ao("dynCall_iii");var t=bY.dynCall_iiii=ao("dynCall_iiii");var b5=bY.dynCall_iiiii=ao("dynCall_iiiii");var dH=bY.___set_stack_limit=ao("__set_stack_limit");var M=bY.__growWasmMemory=ao("__growWasmMemory");var af=bY.dynCall_jiji=ao("dynCall_jiji");var cC=bY.dynCall_iidiiii=ao("dynCall_iidiiii");function cy(dP,dO){var dQ=aK();try{cb(dP,dO)}catch(dR){bQ(dQ);if(dR!==dR+0&&dR!=="longjmp"){throw dR}bw(1,0)}}function E(dQ,dP,dO){var dR=aK();try{ce(dQ,dP,dO)}catch(dS){bQ(dR);if(dS!==dS+0&&dS!=="longjmp"){throw dS}bw(1,0)}}function aj(dQ,dP,dO,dT){var dR=aK();try{return t(dQ,dP,dO,dT)}catch(dS){bQ(dR);if(dS!==dS+0&&dS!=="longjmp"){throw dS}bw(1,0)}}function cA(dQ,dP,dO){var dR=aK();try{return aB(dQ,dP,dO)}catch(dS){bQ(dR);if(dS!==dS+0&&dS!=="longjmp"){throw dS}bw(1,0)}}function cz(dQ,dP,dO,dU,dT){var dR=aK();try{dL(dQ,dP,dO,dU,dT)}catch(dS){bQ(dR);if(dS!==dS+0&&dS!=="longjmp"){throw dS}bw(1,0)}}function L(dQ,dP,dO,dV,dU,dT){var dR=aK();try{H(dQ,dP,dO,dV,dU,dT)}catch(dS){bQ(dR);if(dS!==dS+0&&dS!=="longjmp"){throw dS}bw(1,0)}}function k(dQ,dP,dO,dT){var dR=aK();try{dg(dQ,dP,dO,dT)}catch(dS){bQ(dR);if(dS!==dS+0&&dS!=="longjmp"){throw dS}bw(1,0)}}function dr(dS,dR,dP,dO,dX,dW,dV,dU){var dQ=aK();try{cO(dS,dR,dP,dO,dX,dW,dV,dU)}catch(dT){bQ(dQ);if(dT!==dT+0&&dT!=="longjmp"){throw dT}bw(1,0)}}function a3(dQ,dP,dO,dU,dT){var dR=aK();try{return b5(dQ,dP,dO,dU,dT)}catch(dS){bQ(dR);if(dS!==dS+0&&dS!=="longjmp"){throw dS}bw(1,0)}}function bA(dS,dR,dP,dO,dW,dV,dU){var dQ=aK();try{b(dS,dR,dP,dO,dW,dV,dU)}catch(dT){bQ(dQ);if(dT!==dT+0&&dT!=="longjmp"){throw dT}bw(1,0)}}function cM(dP,dO){var dQ=aK();try{return ct(dP,dO)}catch(dR){bQ(dQ);if(dR!==dR+0&&dR!=="longjmp"){throw dR}bw(1,0)}}if(!Object.getOwnPropertyDescriptor(bY,"intArrayFromString")){bY.intArrayFromString=function(){c3("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"intArrayToString")){bY.intArrayToString=function(){c3("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"ccall")){bY.ccall=function(){c3("'ccall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"cwrap")){bY.cwrap=function(){c3("'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"setValue")){bY.setValue=function(){c3("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"getValue")){bY.getValue=function(){c3("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"allocate")){bY.allocate=function(){c3("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}bY.getMemory=ap;if(!Object.getOwnPropertyDescriptor(bY,"UTF8ArrayToString")){bY.UTF8ArrayToString=function(){c3("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"UTF8ToString")){bY.UTF8ToString=function(){c3("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stringToUTF8Array")){bY.stringToUTF8Array=function(){c3("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stringToUTF8")){bY.stringToUTF8=function(){c3("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"lengthBytesUTF8")){bY.lengthBytesUTF8=function(){c3("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stackTrace")){bY.stackTrace=function(){c3("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"addOnPreRun")){bY.addOnPreRun=function(){c3("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"addOnInit")){bY.addOnInit=function(){c3("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"addOnPreMain")){bY.addOnPreMain=function(){c3("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"addOnExit")){bY.addOnExit=function(){c3("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"addOnPostRun")){bY.addOnPostRun=function(){c3("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"writeStringToMemory")){bY.writeStringToMemory=function(){c3("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"writeArrayToMemory")){bY.writeArrayToMemory=function(){c3("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"writeAsciiToMemory")){bY.writeAsciiToMemory=function(){c3("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}bY.addRunDependency=cQ;bY.removeRunDependency=bj;bY.FS_createFolder=D.createFolder;bY.FS_createPath=D.createPath;bY.FS_createDataFile=D.createDataFile;bY.FS_createPreloadedFile=D.createPreloadedFile;bY.FS_createLazyFile=D.createLazyFile;bY.FS_createLink=D.createLink;bY.FS_createDevice=D.createDevice;bY.FS_unlink=D.unlink;if(!Object.getOwnPropertyDescriptor(bY,"dynamicAlloc")){bY.dynamicAlloc=function(){c3("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"loadDynamicLibrary")){bY.loadDynamicLibrary=function(){c3("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"loadWebAssemblyModule")){bY.loadWebAssemblyModule=function(){c3("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"getLEB")){bY.getLEB=function(){c3("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"getFunctionTables")){bY.getFunctionTables=function(){c3("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"alignFunctionTables")){bY.alignFunctionTables=function(){c3("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"registerFunctions")){bY.registerFunctions=function(){c3("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"addFunction")){bY.addFunction=function(){c3("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"removeFunction")){bY.removeFunction=function(){c3("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"getFuncWrapper")){bY.getFuncWrapper=function(){c3("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"prettyPrint")){bY.prettyPrint=function(){c3("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"makeBigInt")){bY.makeBigInt=function(){c3("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"dynCall")){bY.dynCall=function(){c3("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"getCompilerSetting")){bY.getCompilerSetting=function(){c3("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"print")){bY.print=function(){c3("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"printErr")){bY.printErr=function(){c3("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"getTempRet0")){bY.getTempRet0=function(){c3("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"setTempRet0")){bY.setTempRet0=function(){c3("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"callMain")){bY.callMain=function(){c3("'callMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"abort")){bY.abort=function(){c3("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stringToNewUTF8")){bY.stringToNewUTF8=function(){c3("'stringToNewUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"abortOnCannotGrowMemory")){bY.abortOnCannotGrowMemory=function(){c3("'abortOnCannotGrowMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"emscripten_realloc_buffer")){bY.emscripten_realloc_buffer=function(){c3("'emscripten_realloc_buffer' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"ENV")){bY.ENV=function(){c3("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"ERRNO_CODES")){bY.ERRNO_CODES=function(){c3("'ERRNO_CODES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"ERRNO_MESSAGES")){bY.ERRNO_MESSAGES=function(){c3("'ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"setErrNo")){bY.setErrNo=function(){c3("'setErrNo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"DNS")){bY.DNS=function(){c3("'DNS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"GAI_ERRNO_MESSAGES")){bY.GAI_ERRNO_MESSAGES=function(){c3("'GAI_ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"Protocols")){bY.Protocols=function(){c3("'Protocols' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"Sockets")){bY.Sockets=function(){c3("'Sockets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"UNWIND_CACHE")){bY.UNWIND_CACHE=function(){c3("'UNWIND_CACHE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"readAsmConstArgs")){bY.readAsmConstArgs=function(){c3("'readAsmConstArgs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"jstoi_q")){bY.jstoi_q=function(){c3("'jstoi_q' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"jstoi_s")){bY.jstoi_s=function(){c3("'jstoi_s' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"listenOnce")){bY.listenOnce=function(){c3("'listenOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"autoResumeAudioContext")){bY.autoResumeAudioContext=function(){c3("'autoResumeAudioContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"abortStackOverflow")){bY.abortStackOverflow=function(){c3("'abortStackOverflow' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"reallyNegative")){bY.reallyNegative=function(){c3("'reallyNegative' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"formatString")){bY.formatString=function(){c3("'formatString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"PATH")){bY.PATH=function(){c3("'PATH' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"PATH_FS")){bY.PATH_FS=function(){c3("'PATH_FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"SYSCALLS")){bY.SYSCALLS=function(){c3("'SYSCALLS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"syscallMmap2")){bY.syscallMmap2=function(){c3("'syscallMmap2' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"syscallMunmap")){bY.syscallMunmap=function(){c3("'syscallMunmap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"JSEvents")){bY.JSEvents=function(){c3("'JSEvents' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"specialHTMLTargets")){bY.specialHTMLTargets=function(){c3("'specialHTMLTargets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"demangle")){bY.demangle=function(){c3("'demangle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"demangleAll")){bY.demangleAll=function(){c3("'demangleAll' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"jsStackTrace")){bY.jsStackTrace=function(){c3("'jsStackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stackTrace")){bY.stackTrace=function(){c3("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"getEnvStrings")){bY.getEnvStrings=function(){c3("'getEnvStrings' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"checkWasiClock")){bY.checkWasiClock=function(){c3("'checkWasiClock' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"writeI53ToI64")){bY.writeI53ToI64=function(){c3("'writeI53ToI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"writeI53ToI64Clamped")){bY.writeI53ToI64Clamped=function(){c3("'writeI53ToI64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"writeI53ToI64Signaling")){bY.writeI53ToI64Signaling=function(){c3("'writeI53ToI64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"writeI53ToU64Clamped")){bY.writeI53ToU64Clamped=function(){c3("'writeI53ToU64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"writeI53ToU64Signaling")){bY.writeI53ToU64Signaling=function(){c3("'writeI53ToU64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"readI53FromI64")){bY.readI53FromI64=function(){c3("'readI53FromI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"readI53FromU64")){bY.readI53FromU64=function(){c3("'readI53FromU64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"convertI32PairToI53")){bY.convertI32PairToI53=function(){c3("'convertI32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"convertU32PairToI53")){bY.convertU32PairToI53=function(){c3("'convertU32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"Browser")){bY.Browser=function(){c3("'Browser' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"FS")){bY.FS=function(){c3("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"MEMFS")){bY.MEMFS=function(){c3("'MEMFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"TTY")){bY.TTY=function(){c3("'TTY' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"PIPEFS")){bY.PIPEFS=function(){c3("'PIPEFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"SOCKFS")){bY.SOCKFS=function(){c3("'SOCKFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"GL")){bY.GL=function(){c3("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"emscriptenWebGLGet")){bY.emscriptenWebGLGet=function(){c3("'emscriptenWebGLGet' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"emscriptenWebGLGetTexPixelData")){bY.emscriptenWebGLGetTexPixelData=function(){c3("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"emscriptenWebGLGetUniform")){bY.emscriptenWebGLGetUniform=function(){c3("'emscriptenWebGLGetUniform' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"emscriptenWebGLGetVertexAttrib")){bY.emscriptenWebGLGetVertexAttrib=function(){c3("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"writeGLArray")){bY.writeGLArray=function(){c3("'writeGLArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"AL")){bY.AL=function(){c3("'AL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"SDL_unicode")){bY.SDL_unicode=function(){c3("'SDL_unicode' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"SDL_ttfContext")){bY.SDL_ttfContext=function(){c3("'SDL_ttfContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"SDL_audio")){bY.SDL_audio=function(){c3("'SDL_audio' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"SDL")){bY.SDL=function(){c3("'SDL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"SDL_gfx")){bY.SDL_gfx=function(){c3("'SDL_gfx' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"GLUT")){bY.GLUT=function(){c3("'GLUT' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"EGL")){bY.EGL=function(){c3("'EGL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"GLFW_Window")){bY.GLFW_Window=function(){c3("'GLFW_Window' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"GLFW")){bY.GLFW=function(){c3("'GLFW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"GLEW")){bY.GLEW=function(){c3("'GLEW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"IDBStore")){bY.IDBStore=function(){c3("'IDBStore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"runAndAbortIfError")){bY.runAndAbortIfError=function(){c3("'runAndAbortIfError' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"warnOnce")){bY.warnOnce=function(){c3("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stackSave")){bY.stackSave=function(){c3("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stackRestore")){bY.stackRestore=function(){c3("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stackAlloc")){bY.stackAlloc=function(){c3("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"AsciiToString")){bY.AsciiToString=function(){c3("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stringToAscii")){bY.stringToAscii=function(){c3("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"UTF16ToString")){bY.UTF16ToString=function(){c3("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stringToUTF16")){bY.stringToUTF16=function(){c3("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"lengthBytesUTF16")){bY.lengthBytesUTF16=function(){c3("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"UTF32ToString")){bY.UTF32ToString=function(){c3("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"stringToUTF32")){bY.stringToUTF32=function(){c3("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"lengthBytesUTF32")){bY.lengthBytesUTF32=function(){c3("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"allocateUTF8")){bY.allocateUTF8=function(){c3("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}if(!Object.getOwnPropertyDescriptor(bY,"allocateUTF8OnStack")){bY.allocateUTF8OnStack=function(){c3("'allocateUTF8OnStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}bY.writeStackCookie=bi;bY.checkStackCookie=p;if(!Object.getOwnPropertyDescriptor(bY,"ALLOC_NORMAL")){Object.defineProperty(bY,"ALLOC_NORMAL",{configurable:true,get:function(){c3("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}})}if(!Object.getOwnPropertyDescriptor(bY,"ALLOC_STACK")){Object.defineProperty(bY,"ALLOC_STACK",{configurable:true,get:function(){c3("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}})}if(!Object.getOwnPropertyDescriptor(bY,"ALLOC_DYNAMIC")){Object.defineProperty(bY,"ALLOC_DYNAMIC",{configurable:true,get:function(){c3("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}})}if(!Object.getOwnPropertyDescriptor(bY,"ALLOC_NONE")){Object.defineProperty(bY,"ALLOC_NONE",{configurable:true,get:function(){c3("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}})}var bC;function cZ(dO){this.name="ExitStatus";this.message="Program terminated with exit("+dO+")";this.status=dO}var c8=false;aQ=function cs(){if(!bC){ab()}if(!bC){aQ=cs}};function bF(dS){bJ(aS==0,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])');bJ(bD.length==0,"cannot call main when preRun functions remain to be called");var dQ=bY._main;dS=dS||[];var dV=dS.length+1;var dO=bW((dV+1)*4);ar[dO>>2]=bB(bm);for(var dT=1;dT>2)+dT]=bB(dS[dT-1])}ar[(dO>>2)+dV]=0;try{bY.___set_stack_limit(c1);var dR=dQ(dV,dO);dM(dR,true)}catch(dU){if(dU instanceof cZ){return}else{if(dU=="unwind"){cq=true;return}else{var dP=dU;if(dU&&typeof dU==="object"&&dU.stack){dP=[dU,dU.stack]}m("exception thrown: "+dP);aY(1,dU)}}}finally{c8=true}}function ab(dO){dO=dO||dE;if(aS>0){return}bi();z();if(aS>0){return}function dP(){if(bC){return}bC=true;bY.calledRun=true;if(di){return}dN();dp();if(bY.onRuntimeInitialized){bY.onRuntimeInitialized()}if(f){bF(dO)}aF()}if(bY.setStatus){bY.setStatus("Running...");setTimeout(function(){setTimeout(function(){bY.setStatus("")},1);dP()},1)}else{dP()}p()}bY.run=ab;function aT(){var dP=cp;var dR=m;var dQ=false;cp=m=function(dT){dQ=true};try{var dO=bY._fflush;if(dO){dO(0)}["stdout","stderr"].forEach(function(dU){var dV=D.analyzePath("/dev/"+dU);if(!dV){return}var dX=dV.object;var dT=dX.rdev;var dW=ad.ttys[dT];if(dW&&dW.output&&dW.output.length){dQ=true}})}catch(dS){}cp=dP;m=dR;if(dQ){cJ("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}}function dM(dP,dO){aT();if(dO&&cq&&dP===0){return}if(cq){if(!dO){var dQ="program exited (with status: "+dP+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";m(dQ)}}else{di=true;bL=dP;cw();if(bY.onExit){bY.onExit(dP)}}aY(dP,new cZ(dP))}if(bY.preInit){if(typeof bY.preInit=="function"){bY.preInit=[bY.preInit]}while(bY.preInit.length>0){bY.preInit.pop()()}}var f=true;if(bY.noInitialRun){f=false}cq=true;ab()};