From f5f767f9079aca75bb96cbc67f948705cc5e32a4 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Mon, 10 Oct 2022 13:04:55 -0500 Subject: [PATCH] Depth buffering implemented Co-authored-by: sigonasr2 --- C++ProjectTemplate | Bin 194856 -> 194856 bytes C++ProjectTemplate.js | 2 +- C++ProjectTemplate.wasm | Bin 301913 -> 326290 bytes High.png => assets/High.png | Bin obj_1.obj => assets/obj_1.obj | 0 main.cpp | 6 +++--- pixelGameEngine.h | 27 +++++++++++++++++++++++---- 7 files changed, 27 insertions(+), 8 deletions(-) rename High.png => assets/High.png (100%) rename obj_1.obj => assets/obj_1.obj (100%) diff --git a/C++ProjectTemplate b/C++ProjectTemplate index c78153dc118f8fdf3118aa29d9e76e7a709d313e..69a46a2473bce72cb67c2545cb7028bdb7b1120a 100755 GIT binary patch delta 90108 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�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�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 diff --git a/C++ProjectTemplate.js b/C++ProjectTemplate.js index 1b053e0..c66f809 100644 --- a/C++ProjectTemplate.js +++ b/C++ProjectTemplate.js @@ -1 +1 @@ -var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{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="C++ProjectTemplate.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={38684:()=>{window.onunload=Module._olc_OnPageUnload},38728:($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 dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}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 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}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;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:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{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="C++ProjectTemplate.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={41820:()=>{window.onunload=Module._olc_OnPageUnload},41864:($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 dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}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 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}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;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/C++ProjectTemplate.wasm b/C++ProjectTemplate.wasm index da925f5a55e76aaf89e2a1d37f70f2d50410cb13..cebc205bdd5e664dabda9341eb9c68eaf40f3a05 100755 GIT binary patch delta 113168 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

WEzh8896t%#*piEIM3^B7`hIiEP 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

    MX3cSY{evsN?2)h0Z|44 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 b44~#AHT-!9@cK6&2-Z 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 Nw>e{}<+sL7|6izzb-Vxo diff --git a/High.png b/assets/High.png similarity index 100% rename from High.png rename to assets/High.png diff --git a/obj_1.obj b/assets/obj_1.obj similarity index 100% rename from obj_1.obj rename to assets/obj_1.obj diff --git a/main.cpp b/main.cpp index a6c763d..1db83b0 100644 --- a/main.cpp +++ b/main.cpp @@ -578,8 +578,8 @@ public: } } - std::sort(vecTrianglesToRaster.begin(),vecTrianglesToRaster.end(),[](triangle&t1,triangle&t2){return (t1.p[0].z+t1.p[1].z+t1.p[2].z)/3.0f>(t2.p[0].z+t2.p[1].z+t2.p[2].z)/3.0f;}); - + //std::sort(vecTrianglesToRaster.begin(),vecTrianglesToRaster.end(),[](triangle&t1,triangle&t2){return (t1.p[0].z+t1.p[1].z+t1.p[2].z)/3.0f>(t2.p[0].z+t2.p[1].z+t2.p[2].z)/3.0f;}); + ClearBuffer(BLACK,true); int triRenderCount=0; for (auto&triToRaster:vecTrianglesToRaster) { @@ -632,7 +632,7 @@ public: {t.uv[0].u,t.uv[0].v}, {t.uv[1].u,t.uv[1].v}, {t.uv[2].u,t.uv[2].v}, - },{{t.uv[0].w,t.uv[1].w,t.uv[2].w}},{{t.col,t.col,t.col}}); + },{t.uv[0].w,t.uv[1].w,t.uv[2].w},{t.p[0].z,t.p[1].z,t.p[2].z},{t.col,t.col,t.col}); /*SetDecalMode(DecalMode::WIREFRAME); DrawPolygonDecal(nullptr,{ {t.p[0].x, t.p[0].y}, diff --git a/pixelGameEngine.h b/pixelGameEngine.h index 24b63ee..d98bd6e 100644 --- a/pixelGameEngine.h +++ b/pixelGameEngine.h @@ -844,6 +844,7 @@ namespace olc std::vector pos; std::vector uv; std::vector w; + std::vector z; std::vector tint; olc::DecalMode mode = olc::DecalMode::NORMAL; olc::DecalStructure structure = olc::DecalStructure::FAN; @@ -1081,7 +1082,7 @@ namespace olc void DrawPolygonDecal(olc::Decal* decal, const std::vector& pos, const std::vector& uv, const olc::Pixel tint = olc::WHITE); void DrawPolygonDecal(olc::Decal* decal, const std::vector& pos, const std::vector& depth, const std::vector& uv, const olc::Pixel tint = olc::WHITE); void DrawPolygonDecal(olc::Decal* decal, const std::vector& pos, const std::vector& uv, const std::vector& tint); - void DrawPolygonDecal(olc::Decal* decal, const std::vector& pos, const std::vector& uv, const std::vector& w,const std::vector &tint); + void DrawPolygonDecal(olc::Decal* decal, const std::vector& pos, const std::vector& uv, const std::vector& w, const std::vector& z,const std::vector &tint); // Draws a line in Decal Space void DrawLineDecal(const olc::vf2d& pos1, const olc::vf2d& pos2, Pixel p = olc::WHITE); @@ -2499,6 +2500,7 @@ namespace olc olc::vf2d uvbr = (source_pos + source_size - olc::vf2d(0.0001f, 0.0001f)) * decal->vUVScale; di.uv = { { uvtl.x, uvtl.y }, { uvtl.x, uvbr.y }, { uvbr.x, uvbr.y }, { uvbr.x, uvtl.y } }; di.w = { 1,1,1,1 }; + di.z = { 0,0,0,0 }; di.mode = nDecalMode; di.structure = nDecalStructure; vLayers[nTargetLayer].vecDecalInstance.push_back(di); @@ -2527,6 +2529,7 @@ namespace olc olc::vf2d uvbr = uvtl + ((source_size) * decal->vUVScale); di.uv = { { uvtl.x, uvtl.y }, { uvtl.x, uvbr.y }, { uvbr.x, uvbr.y }, { uvbr.x, uvtl.y } }; di.w = { 1,1,1,1 }; + di.z = { 0,0,0,0 }; di.mode = nDecalMode; di.structure = nDecalStructure; vLayers[nTargetLayer].vecDecalInstance.push_back(di); @@ -2554,6 +2557,7 @@ namespace olc di.pos = { { vScreenSpacePos.x, vScreenSpacePos.y }, { vScreenSpacePos.x, vScreenSpaceDim.y }, { vScreenSpaceDim.x, vScreenSpaceDim.y }, { vScreenSpaceDim.x, vScreenSpacePos.y } }; di.uv = { { 0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f} }; di.w = { 1, 1, 1, 1 }; + di.z = { 0,0,0,0 }; di.mode = nDecalMode; di.structure = nDecalStructure; vLayers[nTargetLayer].vecDecalInstance.push_back(di); @@ -2574,6 +2578,7 @@ namespace olc di.uv[i] = uv[i]; di.tint[i] = col[i]; di.w[i] = 1.0f; + di.z[i] = 0.0f; } di.mode = nDecalMode; di.structure = nDecalStructure; @@ -2595,13 +2600,14 @@ namespace olc di.uv[i] = uv[i]; di.tint[i] = tint; di.w[i] = 1.0f; + di.z[i] = 0.0f; } di.mode = nDecalMode; di.structure = nDecalStructure; vLayers[nTargetLayer].vecDecalInstance.push_back(di); } - void PixelGameEngine::DrawPolygonDecal(olc::Decal* decal, const std::vector& pos, const std::vector& uv, const std::vector& w,const std::vector &tint) + void PixelGameEngine::DrawPolygonDecal(olc::Decal* decal, const std::vector& pos, const std::vector& uv, const std::vector& w, const std::vector& z,const std::vector &tint) { DecalInstance di; di.decal = decal; @@ -2609,6 +2615,7 @@ namespace olc di.pos.resize(di.points); di.uv.resize(di.points); di.w.resize(di.points); + di.z.resize(di.points); di.tint.resize(di.points); for (uint32_t i = 0; i < di.points; i++) { @@ -2616,6 +2623,7 @@ namespace olc di.uv[i] = uv[i]; di.tint[i] = tint[i]; di.w[i] = w[i]; + di.z[i] = z[i]; } di.mode = nDecalMode; di.structure = nDecalStructure; @@ -2637,6 +2645,7 @@ namespace olc di.uv[i] = uv[i]; di.tint[i] = tint[i]; di.w[i] = 1.0f; + di.z[i] = 0.0f; } di.mode = nDecalMode; di.structure = nDecalStructure; @@ -2658,6 +2667,7 @@ namespace olc di.uv[i] = uv[i]; di.tint[i] = tint; di.w[i] = 1.0f; + di.z[i] = 0.0f; } di.mode = nDecalMode; di.structure = nDecalStructure; @@ -2679,6 +2689,7 @@ namespace olc { di.pos[i] = { pos[i][0], pos[i][1] }; di.w[i] = pos[i][2]; + di.z[i] = pos[i][2]; di.uv[i] = tex[i]; di.tint[i] = col[i]; } @@ -2700,10 +2711,12 @@ namespace olc di.uv[0] = { 0.0f, 0.0f }; di.tint[0] = p; di.w[0] = 1.0f; + di.z[0] = 0.0f; di.pos[1] = { (pos2.x * vInvScreenSize.x) * 2.0f - 1.0f, ((pos2.y * vInvScreenSize.y) * 2.0f - 1.0f) * -1.0f }; di.uv[1] = { 0.0f, 0.0f }; di.tint[1] = p; di.w[1] = 1.0f; + di.z[1] = 0.0f; di.mode = olc::DecalMode::WIREFRAME; vLayers[nTargetLayer].vecDecalInstance.push_back(di); } @@ -2745,6 +2758,7 @@ namespace olc di.pos[i] = di.pos[i] * vInvScreenSize * 2.0f - olc::vf2d(1.0f, 1.0f); di.pos[i].y *= -1.0f; di.w[i] = 1; + di.z[i] = 0; } di.mode = nDecalMode; di.structure = nDecalStructure; @@ -2759,6 +2773,7 @@ namespace olc di.points = 4; di.tint = { tint, tint, tint, tint }; di.w = { 1, 1, 1, 1 }; + di.z = { 0,0,0,0 }; di.pos.resize(4); di.pos[0] = (olc::vf2d(0.0f, 0.0f) - center) * scale; di.pos[1] = (olc::vf2d(0.0f, source_size.y) - center) * scale; @@ -2787,6 +2802,7 @@ namespace olc di.decal = decal; di.tint = { tint, tint, tint, tint }; di.w = { 1, 1, 1, 1 }; + di.z = { 0,0,0,0 }; di.pos.resize(4); di.uv = { { 0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f} }; olc::vf2d center; @@ -2823,6 +2839,7 @@ namespace olc di.decal = decal; di.tint = { tint, tint, tint, tint }; di.w = { 1, 1, 1, 1 }; + di.z = { 0,0,0,0 }; di.pos.resize(4); di.uv = { { 0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f} }; olc::vf2d center; @@ -3966,6 +3983,8 @@ namespace olc } else { + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LESS); if (nDecalMode == DecalMode::WIREFRAME) glBegin(GL_LINE_LOOP); else @@ -3983,14 +4002,14 @@ namespace olc { glColor4ub(decal.tint[n].r, decal.tint[n].g, decal.tint[n].b, decal.tint[n].a); glTexCoord4f(decal.uv[n].x, decal.uv[n].y, 0.0f, decal.w[n]); - glVertex2f(decal.pos[n].x, decal.pos[n].y); + glVertex3f(decal.pos[n].x, decal.pos[n].y, decal.z[n]); } glEnd(); } - //glDisable(GL_DEPTH_TEST); + glDisable(GL_DEPTH_TEST); } uint32_t CreateTexture(const uint32_t width, const uint32_t height, const bool filtered, const bool clamp) override