From 63440c59964c532e4fb8bc0b9ec3702edb4cf24f Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Tue, 23 Aug 2022 19:38:37 -0500 Subject: [PATCH] Dynamic adjustable window sizes Co-authored-by: sigonasr2 --- MeercaChase | Bin 556056 -> 556056 bytes MeercaChase.cpp | 39 ++++++++++++++++++++------------------- MeercaChase.js | 2 +- MeercaChase.wasm | Bin 314182 -> 314372 bytes 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/MeercaChase b/MeercaChase index e5092b0ef47aa9e9746f119e8b3e1d6d369b6f6e..3003f0484b2493f86bcf81f3b18b2591242d6f30 100755 GIT binary patch delta 108037 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 AUjP6A delta 106372 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 z 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 Yxh}V5_kZZ}dqIE8>}>f;v9r$q4`j&4od5s; diff --git a/MeercaChase.cpp b/MeercaChase.cpp index 3340474..5f73a30 100644 --- a/MeercaChase.cpp +++ b/MeercaChase.cpp @@ -13,6 +13,9 @@ using namespace std; #define DOWN 2 #define LEFT 3 +#define WINDOW_WIDTH 480 +#define WINDOW_HEIGHT 240 + #define TAIL_DISTANCE 4 struct TailData{ @@ -40,12 +43,13 @@ public: olc::Decal*meerca,*negg,*badnegg,*goldennegg,*rainbownegg; const float UPDATE_RATE = 0.016666667f; const int NEGG_BOUNDARY=6; + const int WALL_BOUNDARY=-8; float accumulatedTime = 0.0f; int frameCount=0; int moveSpd=4; int neggType=1; float meercaSpd[2] = {0,0}; - float meercaPos[2] = {240,240}; + float meercaPos[2] = {WINDOW_WIDTH/2,WINDOW_HEIGHT/2}; float scorePos[2] = {-50,-50}; int scoreTransparency=255; int scoreValue=1; @@ -58,15 +62,15 @@ public: void assignNeggRandomPos() { do { - neggPos[0]=(float)rand()/(float)RAND_MAX*(480-NEGG_BOUNDARY*2)+NEGG_BOUNDARY; - neggPos[1]=(float)rand()/(float)RAND_MAX*(480-NEGG_BOUNDARY*2)+NEGG_BOUNDARY; + neggPos[0]=(float)rand()/(float)RAND_MAX*(WINDOW_WIDTH-NEGG_BOUNDARY*2)+NEGG_BOUNDARY; + neggPos[1]=(float)rand()/(float)RAND_MAX*(WINDOW_HEIGHT-NEGG_BOUNDARY*2)+NEGG_BOUNDARY; } while(!positionFree(neggPos)); } void spawnBadNegg() { badNeggs=(float*)realloc(badNeggs,sizeof(float)*(++badNeggCount*2)); do { - badNeggs[badNeggCount*2-2] = (float)rand()/(float)RAND_MAX*(480-NEGG_BOUNDARY*2)+NEGG_BOUNDARY; - badNeggs[badNeggCount*2-1] = (float)rand()/(float)RAND_MAX*(480-NEGG_BOUNDARY*2)+NEGG_BOUNDARY; + badNeggs[badNeggCount*2-2] = (float)rand()/(float)RAND_MAX*(WINDOW_WIDTH-NEGG_BOUNDARY*2)+NEGG_BOUNDARY; + badNeggs[badNeggCount*2-1] = (float)rand()/(float)RAND_MAX*(WINDOW_HEIGHT-NEGG_BOUNDARY*2)+NEGG_BOUNDARY; } while(!positionFree(badNeggs+(badNeggCount*2-2),true)); } boolean positionFree(float*pos) { @@ -103,8 +107,8 @@ public: badNeggCount=0; tailSize=0; score=0; - meercaPos[0]=240; - meercaPos[1]=240; + meercaPos[0]=WINDOW_WIDTH/2; + meercaPos[1]=WINDOW_HEIGHT/2; meercaSpd[0]=0; meercaSpd[1]=0; } @@ -134,19 +138,19 @@ public: if (GetKey(olc::F1).bPressed) { ConsoleShow(olc::F1,false); } - if (GetKey(olc::W).bPressed&&(meercaSpd[0]+meercaSpd[1]==0||meercaSpd[0]!=0)) { + if ((GetKey(olc::W).bPressed||(GetMouse(0).bPressed&&(GetMouseY()-meercaPos[1]<0&&(meercaSpd[0]!=0||abs(GetMouseX()-meercaPos[0])0&&(meercaSpd[1]!=0||abs(GetMouseY()-meercaPos[1])0&&(meercaSpd[0]!=0||abs(GetMouseX()-meercaPos[0])",olc::WHITE,2); - } for (int i=0;i488||meercaPos[1]<-8||meercaPos[1]>488) { + if (meercaPos[0]WINDOW_WIDTH-WALL_BOUNDARY||meercaPos[1]WINDOW_HEIGHT-WALL_BOUNDARY) { init(); } for (int i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var POINTER_SIZE=4;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="MeercaChase.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={41612:()=>{window.onunload=Module._olc_OnPageUnload},41656:($0,$1)=>{Module._olc_EmscriptenShellCss="width: 100%; height: 70vh; margin-left: auto; margin-right: auto;";Module._olc_WindowAspectRatio=$0/$1;Module.canvas.parentNode.addEventListener("resize",function(e){if(e.defaultPrevented){e.stopPropagation();return}var viewWidth=e.detail.width;var viewHeight=e.detail.width/Module._olc_WindowAspectRatio;if(viewHeight>e.detail.height){viewHeight=e.detail.height;viewWidth=e.detail.height*Module._olc_WindowAspectRatio}if(Module.canvas.parentNode.className=="emscripten_border")Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss+" width: "+viewWidth.toString()+"px; height: "+viewHeight.toString()+"px;";Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);if(document.fullscreenElement!=null){var top=(e.detail.height-viewHeight)/2;var left=(e.detail.width-viewWidth)/2;Module.canvas.style.position="fixed";Module.canvas.style.top=top.toString()+"px";Module.canvas.style.left=left.toString()+"px";Module.canvas.style.width="";Module.canvas.style.height=""}Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus();e.stopPropagation()});Module._olc_ResizeCanvas=function(){setTimeout(function(){if(Module.canvas.parentNode.className=="emscripten_border")Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss;Module.canvas.style.cssText="width: 100%; height: 100%; outline: none;";var resizeEvent=new CustomEvent("resize",{detail:{width:Module.canvas.clientWidth,height:Module.canvas.clientHeight},bubbles:true,cancelable:true});Module.canvas.dispatchEvent(resizeEvent)},50)};document.body.style.cssText+=" overscroll-behavior-y: contain;";if(Module.canvas.parentNode.className=="emscripten_border"){document.body.style.margin="0";Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss}Module._olc_ResizeCanvas();var resizeObserver=new ResizeObserver(function(entries){Module._olc_ResizeCanvas()}).observe(Module.canvas.parentNode);var mutationObserver=new MutationObserver(function(mutationsList,observer){for(var i=0;i0){callbacks.shift()(Module)}}function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return()=>{crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return()=>crypto_module["randomBytes"](1)[0]}catch(e){}}return()=>abort("randomDevice")}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){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.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;tempI64=[Math.floor(stat.atime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.atime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAP32[buf+64>>2]=0;tempI64=[Math.floor(stat.mtime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.mtime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAP32[buf+80>>2]=0;tempI64=[Math.floor(stat.ctime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.ctime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAP32[buf+96>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function __emscripten_date_now(){return Date.now()}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function _abort(){abort("")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}function maybeExit(){}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){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=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}function callUserCallback(func){if(ABORT){return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;preloadedAudios[name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},handledByPreloadPlugin:function(byteArray,fullname,finish,onerror){Browser.init();var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:2};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents=="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);__webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readAsmConstArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(ev){var e=ev||event;var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);return 0}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);return 0}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);return 0}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);return 0}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);return 0}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(ev){var e=ev||event;var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(typeof target.onwheel!="undefined"){registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread);return 0}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}var tempRet0=0;function getTempRet0(){return tempRet0}var _getTempRet0=getTempRet0;function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){if(true){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function setTempRet0(val){tempRet0=val}var _setTempRet0=setTempRet0;function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function uleb128Encode(n,target){if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}}function sigToWasmTypes(sig){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64","p":"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i{var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); +var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="MeercaChase.data";var REMOTE_PACKAGE_BASE="MeercaChase.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","assets",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var POINTER_SIZE=4;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="MeercaChase.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={41580:()=>{window.onunload=Module._olc_OnPageUnload},41624:($0,$1)=>{Module._olc_EmscriptenShellCss="width: 100%; height: 70vh; margin-left: auto; margin-right: auto;";Module._olc_WindowAspectRatio=$0/$1;Module.canvas.parentNode.addEventListener("resize",function(e){if(e.defaultPrevented){e.stopPropagation();return}var viewWidth=e.detail.width;var viewHeight=e.detail.width/Module._olc_WindowAspectRatio;if(viewHeight>e.detail.height){viewHeight=e.detail.height;viewWidth=e.detail.height*Module._olc_WindowAspectRatio}if(Module.canvas.parentNode.className=="emscripten_border")Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss+" width: "+viewWidth.toString()+"px; height: "+viewHeight.toString()+"px;";Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);if(document.fullscreenElement!=null){var top=(e.detail.height-viewHeight)/2;var left=(e.detail.width-viewWidth)/2;Module.canvas.style.position="fixed";Module.canvas.style.top=top.toString()+"px";Module.canvas.style.left=left.toString()+"px";Module.canvas.style.width="";Module.canvas.style.height=""}Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus();e.stopPropagation()});Module._olc_ResizeCanvas=function(){setTimeout(function(){if(Module.canvas.parentNode.className=="emscripten_border")Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss;Module.canvas.style.cssText="width: 100%; height: 100%; outline: none;";var resizeEvent=new CustomEvent("resize",{detail:{width:Module.canvas.clientWidth,height:Module.canvas.clientHeight},bubbles:true,cancelable:true});Module.canvas.dispatchEvent(resizeEvent)},50)};document.body.style.cssText+=" overscroll-behavior-y: contain;";if(Module.canvas.parentNode.className=="emscripten_border"){document.body.style.margin="0";Module.canvas.parentNode.style.cssText=Module._olc_EmscriptenShellCss}Module._olc_ResizeCanvas();var resizeObserver=new ResizeObserver(function(entries){Module._olc_ResizeCanvas()}).observe(Module.canvas.parentNode);var mutationObserver=new MutationObserver(function(mutationsList,observer){for(var i=0;i0){callbacks.shift()(Module)}}function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return()=>{crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return()=>crypto_module["randomBytes"](1)[0]}catch(e){}}return()=>abort("randomDevice")}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){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.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;tempI64=[Math.floor(stat.atime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.atime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAP32[buf+64>>2]=0;tempI64=[Math.floor(stat.mtime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.mtime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAP32[buf+80>>2]=0;tempI64=[Math.floor(stat.ctime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.ctime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAP32[buf+96>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function __emscripten_date_now(){return Date.now()}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function _abort(){abort("")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}function maybeExit(){}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){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=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}function callUserCallback(func){if(ABORT){return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;preloadedAudios[name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},handledByPreloadPlugin:function(byteArray,fullname,finish,onerror){Browser.init();var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:2};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents=="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);__webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readAsmConstArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(ev){var e=ev||event;var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);return 0}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);return 0}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);return 0}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);return 0}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);return 0}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(ev){var e=ev||event;var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(typeof target.onwheel!="undefined"){registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread);return 0}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}var tempRet0=0;function getTempRet0(){return tempRet0}var _getTempRet0=getTempRet0;function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){if(true){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function setTempRet0(val){tempRet0=val}var _setTempRet0=setTempRet0;function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function uleb128Encode(n,target){if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}}function sigToWasmTypes(sig){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64","p":"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i{var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/MeercaChase.wasm b/MeercaChase.wasm index 695de2b0148634b080e292e9bfa6874e824f84f0..6c31be3aeb81c15beddbdd400d94905f051dfe58 100755 GIT binary patch delta 31080 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�r8NGb;7j#50cq<9pY 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 F{~u}tY@z@F