From 965b56dabe0646821f2df63e1e984e7b247501c4 Mon Sep 17 00:00:00 2001 From: Jd-1206 Date: Sat, 26 Oct 2024 17:07:35 -0400 Subject: [PATCH] no way --- public/lib/RSDKv3.js | 19 ++++++++++++------- public/modules/RSDKv3.js | 2 +- public/modules/RSDKv3.wasm | Bin 1349938 -> 1353994 bytes 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/public/lib/RSDKv3.js b/public/lib/RSDKv3.js index 6ed2d77..91dea1d 100644 --- a/public/lib/RSDKv3.js +++ b/public/lib/RSDKv3.js @@ -1,11 +1,16 @@ // Defined for Emscripten.js to call -function RSDK_Init() -{ - // TODO: Custom FS Path, settings - FS.chdir('/FileSystem/RSDKv3') +function RSDK_Init() { + // TODO: Custom FS Path + FS.chdir('/FileSystem/RSDKv3'); + + const storedSettings = localStorage.getItem('settings'); + if (storedSettings) { + const settings = JSON.parse(storedSettings); + + // value, index + // index 0 - plus + _RSDK_Configure(settings.enablePlus, 0); + } - // value, index - // index 0 - plus - _RSDK_Configure(0, 0); _RSDK_Initialize(); } \ No newline at end of file diff --git a/public/modules/RSDKv3.js b/public/modules/RSDKv3.js index e91c4b5..44aca30 100644 --- a/public/modules/RSDKv3.js +++ b/public/modules/RSDKv3.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;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(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,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&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",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[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)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.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 wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];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 HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;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,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="RSDKv3.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(instance=>instance).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["zd"];updateMemoryViews();wasmTable=wasmExports["Bd"];addOnInit(wasmExports["Ad"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={185192:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},185339:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},185573:$0=>{if(typeof Module["SDL2"]==="undefined"){Module["SDL2"]={}}var SDL2=Module["SDL2"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},186066:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},186134:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall("vi",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall("vi",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},187786:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];dynCall("vi",$2,[$3])};SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])},188196:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module["SDL2"];var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c>2]}}},189281:$0=>{var SDL2=Module["SDL2"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?"url("+canvas.toDataURL()+"), auto":"url("+canvas.toDataURL()+") "+hot_x+" "+hot_y+", auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},192911:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},192994:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},193063:()=>window.innerWidth,193093:()=>window.innerHeight};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var listenOnce=(object,event,func)=>{object.addEventListener(event,func,{"once":true})};var autoResumeAudioContext=(ctx,elements)=>{if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state==="suspended")ctx.resume()})}})})};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var 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=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var dynCall=(sig,ptr,args)=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn};var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var 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};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};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_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_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;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var 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);return PATH.normalize(paths.join("/"))},join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);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;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var 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 intArrayFromString(stringy,dontAddNull,length){var len=length>0?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 FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){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}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(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){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(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(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(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(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(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(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(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(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(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(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(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(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{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{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_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_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(FS_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)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>PATH.join2(root,p)}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={"timestamp":stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(e.target.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={"timestamp":cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{"timestamp":stat.mtime,"mode":stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{"timestamp":stat.mtime,"mode":stat.mode,"contents":node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>{callback(null,event.target.result)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=e=>{done(this.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};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(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.split("/").filter(p=>!!p);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},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(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get(){return this.node},set(val){this.node=val}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(val){this.shared.flags=val}},position:{get(){return this.shared.position},set(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}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;i0,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 randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);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.getStreamChecked(fd);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.name="ErrnoError";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,"IDBFS":IDBFS}},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;ithis.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}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(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+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);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}while(FS.streams[arg]){arg++}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.getp();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.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="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:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="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.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=true;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var _abort=()=>{abort("")};var _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 Browser.setImmediate=="undefined"){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);Browser.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,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var 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}}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"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var 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(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){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(){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;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);if(onerror)onerror()};img.src=url};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)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.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(()=>{finish(audio)},1e4)};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)}}},createContext(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:1};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(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(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(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(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(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(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(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(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(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(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){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(){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(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){HEAPU32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};var _eglBindAPI=api=>{if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0};var _eglChooseConfig=(display,attrib_list,configs,config_size,numConfigs)=>EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs);var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{var source="";for(var i=0;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:(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("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(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:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext: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:context=>{if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})},getExtensions(){var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(e=>"GL_"+e));return exts}};var _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){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}};var _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};var _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};var _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};var _eglGetConfigAttrib=(display,config,attribute,value)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}};var _eglGetDisplay=nativeDisplayType=>{EGL.setErrorCode(12288);return 62e3};var _eglGetError=()=>EGL.errorCode;var _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};var _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};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var _eglQueryString=(display,name)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8("Emscripten");break;case 12372:ret=stringToNewUTF8("1.4 Emscripten EGL");break;case 12373:ret=stringToNewUTF8("");break;case 12429:ret=stringToNewUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret};var _eglSwapBuffers=(dpy,surface)=>{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};var _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};var _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 _eglWaitClient=()=>{EGL.setErrorCode(12288);return 1};var _eglWaitGL=_eglWaitClient;var _eglWaitNative=nativeEngineId=>{EGL.setErrorCode(12288);return 1};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var runMainThreadEmAsm=(code,sigPtr,argbuf,sync)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)};var _emscripten_asm_const_int_sync_on_main_thread=(code,sigPtr,argbuf)=>runMainThreadEmAsm(code,sigPtr,argbuf,1);var _emscripten_date_now=()=>Date.now();var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var JSEvents={inEventHandler:0,removeAllEventListeners(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall(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((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var findCanvasEventTarget=target=>findEventTarget(target);var _emscripten_get_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var getCanvasElementSize=target=>withStackSave(()=>{var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size});var _emscripten_set_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0};var setCanvasElementSize=(target,width,height)=>{if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(()=>{var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}};var registerRestoreOldStyle=canvas=>{var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle};var setLetterbox=(element,topBottom,leftRight)=>{element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"};var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var JSEvents_resizeCanvasForFullscreen=(target,strategy)=>{var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight{if(strategy.scaleMode!=0||strategy.canvasResolutionScaleMode!=0){JSEvents_resizeCanvasForFullscreen(target,strategy)}if(target.requestFullscreen){target.requestFullscreen()}else if(target.webkitRequestFullscreen){target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}else{return JSEvents.fullscreenEnabled()?-3:-1}currentFullscreenStrategy=strategy;if(strategy.canvasResizedCallback){getWasmTableEntry(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}return 0};var _emscripten_exit_fullscreen=()=>{if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(JSEvents_requestFullscreen);var d=specialHTMLTargets[1];if(d.exitFullscreen){d.fullscreenElement&&d.exitFullscreen()}else if(d.webkitExitFullscreen){d.webkitFullscreenElement&&d.webkitExitFullscreen()}else{return-1}return 0};var requestPointerLock=target=>{if(target.requestPointerLock){target.requestPointerLock()}else{if(document.body.requestPointerLock){return-3}return-1}return 0};var _emscripten_exit_pointerlock=()=>{JSEvents.removeDeferredCalls(requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else{return-1}return 0};var _emscripten_get_device_pixel_ratio=()=>typeof devicePixelRatio=="number"&&devicePixelRatio||1;var _emscripten_get_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0};var fillGamepadEventData=(eventStruct,e)=>{HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)};var _emscripten_get_gamepad_status=(index,gamepadState)=>{if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0};var _emscripten_get_num_gamepads=()=>JSEvents.lastGamepadState.length;var _emscripten_get_screen_size=(width,height)=>{HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height};function _glActiveTexture(x0){GLctx.activeTexture(x0)}var _emscripten_glActiveTexture=_glActiveTexture;var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glAttachShader=_glAttachShader;var _glBeginQueryEXT=(target,id)=>{GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])};var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;var _glBindAttribLocation=(program,index,name)=>{GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))};var _emscripten_glBindAttribLocation=_glBindAttribLocation;var _glBindBuffer=(target,buffer)=>{GLctx.bindBuffer(target,GL.buffers[buffer])};var _emscripten_glBindBuffer=_glBindBuffer;var _glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])};var _emscripten_glBindFramebuffer=_glBindFramebuffer;var _glBindRenderbuffer=(target,renderbuffer)=>{GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])};var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _emscripten_glBindTexture=_glBindTexture;var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;function _glBlendColor(x0,x1,x2,x3){GLctx.blendColor(x0,x1,x2,x3)}var _emscripten_glBlendColor=_glBlendColor;function _glBlendEquation(x0){GLctx.blendEquation(x0)}var _emscripten_glBlendEquation=_glBlendEquation;function _glBlendEquationSeparate(x0,x1){GLctx.blendEquationSeparate(x0,x1)}var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}var _emscripten_glBlendFunc=_glBlendFunc;function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx.blendFuncSeparate(x0,x1,x2,x3)}var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;var _glBufferData=(target,size,data,usage)=>{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _emscripten_glBufferData=_glBufferData;var _glBufferSubData=(target,offset,size,data)=>{GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))};var _emscripten_glBufferSubData=_glBufferSubData;function _glCheckFramebufferStatus(x0){return GLctx.checkFramebufferStatus(x0)}var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;function _glClear(x0){GLctx.clear(x0)}var _emscripten_glClear=_glClear;function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}var _emscripten_glClearColor=_glClearColor;function _glClearDepthf(x0){GLctx.clearDepth(x0)}var _emscripten_glClearDepthf=_glClearDepthf;function _glClearStencil(x0){GLctx.clearStencil(x0)}var _emscripten_glClearStencil=_glClearStencil;var _glColorMask=(red,green,blue,alpha)=>{GLctx.colorMask(!!red,!!green,!!blue,!!alpha)};var _emscripten_glColorMask=_glColorMask;var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _emscripten_glCompileShader=_glCompileShader;var _glCompressedTexImage2D=(target,level,internalFormat,width,height,border,imageSize,data)=>{GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;var _glCompressedTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,imageSize,data)=>{GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;function _glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;var _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};var _emscripten_glCreateProgram=_glCreateProgram;var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _emscripten_glCreateShader=_glCreateShader;function _glCullFace(x0){GLctx.cullFace(x0)}var _emscripten_glCullFace=_glCullFace;var _glDeleteBuffers=(n,buffers)=>{for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}};var _emscripten_glDeleteBuffers=_glDeleteBuffers;var _glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;var _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};var _emscripten_glDeleteProgram=_glDeleteProgram;var _glDeleteQueriesEXT=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}};var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;var _glDeleteRenderbuffers=(n,renderbuffers)=>{for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}};var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _emscripten_glDeleteShader=_glDeleteShader;var _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}};var _emscripten_glDeleteTextures=_glDeleteTextures;var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;function _glDepthFunc(x0){GLctx.depthFunc(x0)}var _emscripten_glDepthFunc=_glDepthFunc;var _glDepthMask=flag=>{GLctx.depthMask(!!flag)};var _emscripten_glDepthMask=_glDepthMask;function _glDepthRangef(x0,x1){GLctx.depthRange(x0,x1)}var _emscripten_glDepthRangef=_glDepthRangef;var _glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glDetachShader=_glDetachShader;function _glDisable(x0){GLctx.disable(x0)}var _emscripten_glDisable=_glDisable;var _glDisableVertexAttribArray=index=>{GLctx.disableVertexAttribArray(index)};var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _emscripten_glDrawArrays=_glDrawArrays;var _glDrawArraysInstanced=(mode,first,count,primcount)=>{GLctx.drawArraysInstanced(mode,first,count,primcount)};var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var tempFixedLengthArray=[];var _glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)};var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;var _glDrawElements=(mode,count,type,indices)=>{GLctx.drawElements(mode,count,type,indices)};var _emscripten_glDrawElements=_glDrawElements;var _glDrawElementsInstanced=(mode,count,type,indices,primcount)=>{GLctx.drawElementsInstanced(mode,count,type,indices,primcount)};var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;function _glEnable(x0){GLctx.enable(x0)}var _emscripten_glEnable=_glEnable;var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;var _glEndQueryEXT=target=>{GLctx.disjointTimerQueryExt["endQueryEXT"](target)};var _emscripten_glEndQueryEXT=_glEndQueryEXT;function _glFinish(){GLctx.finish()}var _emscripten_glFinish=_glFinish;function _glFlush(){GLctx.flush()}var _emscripten_glFlush=_glFlush;var _glFramebufferRenderbuffer=(target,attachment,renderbuffertarget,renderbuffer)=>{GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])};var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;var _glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;function _glFrontFace(x0){GLctx.frontFace(x0)}var _emscripten_glFrontFace=_glFrontFace;var __glGenObject=(n,buffers,createFunction,objectTable)=>{for(var i=0;i>2]=id}};var _glGenBuffers=(n,buffers)=>{__glGenObject(n,buffers,"createBuffer",GL.buffers)};var _emscripten_glGenBuffers=_glGenBuffers;var _glGenFramebuffers=(n,ids)=>{__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)};var _emscripten_glGenFramebuffers=_glGenFramebuffers;var _glGenQueriesEXT=(n,ids)=>{for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}};var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;var _glGenRenderbuffers=(n,renderbuffers)=>{__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)};var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;var _glGenTextures=(n,textures)=>{__glGenObject(n,textures,"createTexture",GL.textures)};var _emscripten_glGenTextures=_glGenTextures;function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;function _glGenerateMipmap(x0){GLctx.generateMipmap(x0)}var _emscripten_glGenerateMipmap=_glGenerateMipmap;var __glGetActiveAttribOrUniform=(funcName,program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}};var _glGetActiveAttrib=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;var _glGetActiveUniform=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveUniform=_glGetActiveUniform;var _glGetAttachedShaders=(program,maxCount,count,shaders)=>{var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}};var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;var _glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetAttribLocation=_glGetAttribLocation;var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}};var _glGetBooleanv=(name_,p)=>{emscriptenWebGLGet(name_,p,4)};var _emscripten_glGetBooleanv=_glGetBooleanv;var _glGetBufferParameteriv=(target,value,data)=>{if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)};var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;var _glGetError=()=>{var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error};var _emscripten_glGetError=_glGetError;var _glGetFloatv=(name_,p)=>{emscriptenWebGLGet(name_,p,2)};var _emscripten_glGetFloatv=_glGetFloatv;var _glGetFramebufferAttachmentParameteriv=(target,attachment,pname,params)=>{var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result};var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;var _glGetIntegerv=(name_,p)=>{emscriptenWebGLGet(name_,p,0)};var _emscripten_glGetIntegerv=_glGetIntegerv;var _glGetProgramInfoLog=(program,maxLength,length,infoLog)=>{var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _emscripten_glGetProgramiv=_glGetProgramiv;var _glGetQueryObjecti64vEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)};var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;var _glGetQueryObjectivEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;var _glGetQueryivEXT=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)};var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;var _glGetRenderbufferParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)};var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;var _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};var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;var _glGetShaderPrecisionFormat=(shaderType,precisionType,range,precision)=>{var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision};var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;var _glGetShaderSource=(shader,bufSize,length,source)=>{var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderSource=_glGetShaderSource;var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var _emscripten_glGetShaderiv=_glGetShaderiv;var _glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(GL.getExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret};var _emscripten_glGetString=_glGetString;var _glGetTexParameterfv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;var _glGetTexParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}};var emscriptenWebGLGetUniform=(program,location,params,type)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}};var _glGetUniformfv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,2)};var _emscripten_glGetUniformfv=_glGetUniformfv;var _glGetUniformiv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,0)};var _emscripten_glGetUniformiv=_glGetUniformiv;var _glGetVertexAttribPointerv=(index,pname,pointer)=>{if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)};var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;var emscriptenWebGLGetVertexAttrib=(index,pname,params,type)=>{if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}};var _glGetVertexAttribfv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,2)};var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;var _glGetVertexAttribiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,5)};var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;function _glHint(x0,x1){GLctx.hint(x0,x1)}var _emscripten_glHint=_glHint;var _glIsBuffer=buffer=>{var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)};var _emscripten_glIsBuffer=_glIsBuffer;function _glIsEnabled(x0){return GLctx.isEnabled(x0)}var _emscripten_glIsEnabled=_glIsEnabled;var _glIsFramebuffer=framebuffer=>{var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)};var _emscripten_glIsFramebuffer=_glIsFramebuffer;var _glIsProgram=program=>{program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)};var _emscripten_glIsProgram=_glIsProgram;var _glIsQueryEXT=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)};var _emscripten_glIsQueryEXT=_glIsQueryEXT;var _glIsRenderbuffer=renderbuffer=>{var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)};var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;var _glIsShader=shader=>{var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)};var _emscripten_glIsShader=_glIsShader;var _glIsTexture=id=>{var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)};var _emscripten_glIsTexture=_glIsTexture;var _glIsVertexArray=array=>{var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)};var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;function _glLineWidth(x0){GLctx.lineWidth(x0)}var _emscripten_glLineWidth=_glLineWidth;var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _emscripten_glLinkProgram=_glLinkProgram;var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)};var _emscripten_glPixelStorei=_glPixelStorei;function _glPolygonOffset(x0,x1){GLctx.polygonOffset(x0,x1)}var _emscripten_glPolygonOffset=_glPolygonOffset;var _glQueryCounterEXT=(id,target)=>{GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)};var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;var 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};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16};var heapAccessShiftForWebGLHeap=heap=>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)};var _glReadPixels=(x,y,width,height,format,type,pixels)=>{var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)};var _emscripten_glReadPixels=_glReadPixels;var _glReleaseShaderCompiler=()=>{};var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;function _glRenderbufferStorage(x0,x1,x2,x3){GLctx.renderbufferStorage(x0,x1,x2,x3)}var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;var _glSampleCoverage=(value,invert)=>{GLctx.sampleCoverage(value,!!invert)};var _emscripten_glSampleCoverage=_glSampleCoverage;function _glScissor(x0,x1,x2,x3){GLctx.scissor(x0,x1,x2,x3)}var _emscripten_glScissor=_glScissor;var _glShaderBinary=(count,shaders,binaryformat,binary,length)=>{GL.recordError(1280)};var _emscripten_glShaderBinary=_glShaderBinary;var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _emscripten_glShaderSource=_glShaderSource;function _glStencilFunc(x0,x1,x2){GLctx.stencilFunc(x0,x1,x2)}var _emscripten_glStencilFunc=_glStencilFunc;function _glStencilFuncSeparate(x0,x1,x2,x3){GLctx.stencilFuncSeparate(x0,x1,x2,x3)}var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;function _glStencilMask(x0){GLctx.stencilMask(x0)}var _emscripten_glStencilMask=_glStencilMask;function _glStencilMaskSeparate(x0,x1){GLctx.stencilMaskSeparate(x0,x1)}var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;function _glStencilOp(x0,x1,x2){GLctx.stencilOp(x0,x1,x2)}var _emscripten_glStencilOp=_glStencilOp;function _glStencilOpSeparate(x0,x1,x2,x3){GLctx.stencilOpSeparate(x0,x1,x2,x3)}var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)};var _emscripten_glTexImage2D=_glTexImage2D;function _glTexParameterf(x0,x1,x2){GLctx.texParameterf(x0,x1,x2)}var _emscripten_glTexParameterf=_glTexParameterf;var _glTexParameterfv=(target,pname,params)=>{var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)};var _emscripten_glTexParameterfv=_glTexParameterfv;function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}var _emscripten_glTexParameteri=_glTexParameteri;var _glTexParameteriv=(target,pname,params)=>{var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)};var _emscripten_glTexParameteriv=_glTexParameteriv;var _glTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,type,pixels)=>{var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)};var _emscripten_glTexSubImage2D=_glTexSubImage2D;var _glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1f=_glUniform1f;var miniTempWebGLFloatBuffers=[];var _glUniform1fv=(location,count,value)=>{if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1fv=_glUniform1fv;var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1i=_glUniform1i;var miniTempWebGLIntBuffers=[];var _glUniform1iv=(location,count,value)=>{if(count<=288){var view=miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1iv=_glUniform1iv;var _glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2f=_glUniform2f;var _glUniform2fv=(location,count,value)=>{if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2fv=_glUniform2fv;var _glUniform2i=(location,v0,v1)=>{GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2i=_glUniform2i;var _glUniform2iv=(location,count,value)=>{if(count<=144){var view=miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2iv=_glUniform2iv;var _glUniform3f=(location,v0,v1,v2)=>{GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3f=_glUniform3f;var _glUniform3fv=(location,count,value)=>{if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3fv=_glUniform3fv;var _glUniform3i=(location,v0,v1,v2)=>{GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3i=_glUniform3i;var _glUniform3iv=(location,count,value)=>{if(count<=96){var view=miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3iv=_glUniform3iv;var _glUniform4f=(location,v0,v1,v2,v3)=>{GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4f=_glUniform4f;var _glUniform4fv=(location,count,value)=>{if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4fv=_glUniform4fv;var _glUniform4i=(location,v0,v1,v2,v3)=>{GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4i=_glUniform4i;var _glUniform4iv=(location,count,value)=>{if(count<=72){var view=miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4iv=_glUniform4iv;var _glUniformMatrix2fv=(location,count,transpose,value)=>{if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;var _glUniformMatrix3fv=(location,count,transpose,value)=>{if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _emscripten_glUseProgram=_glUseProgram;var _glValidateProgram=program=>{GLctx.validateProgram(GL.programs[program])};var _emscripten_glValidateProgram=_glValidateProgram;function _glVertexAttrib1f(x0,x1){GLctx.vertexAttrib1f(x0,x1)}var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;var _glVertexAttrib1fv=(index,v)=>{GLctx.vertexAttrib1f(index,HEAPF32[v>>2])};var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;function _glVertexAttrib2f(x0,x1,x2){GLctx.vertexAttrib2f(x0,x1,x2)}var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;var _glVertexAttrib2fv=(index,v)=>{GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])};var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;function _glVertexAttrib3f(x0,x1,x2,x3){GLctx.vertexAttrib3f(x0,x1,x2,x3)}var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;var _glVertexAttrib3fv=(index,v)=>{GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])};var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx.vertexAttrib4f(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;var _glVertexAttrib4fv=(index,v)=>{GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])};var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;var _glVertexAttribDivisor=(index,divisor)=>{GLctx.vertexAttribDivisor(index,divisor)};var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}var _emscripten_glViewport=_glViewport;var _emscripten_has_asyncify=()=>0;var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var doRequestFullscreen=(target,strategy)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)};var _emscripten_request_fullscreen_strategy=(target,deferUntilInEventHandler,fullscreenStrategy)=>{var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)};var _emscripten_request_pointerlock=(target,deferUntilInEventHandler)=>{target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)};var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var 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=growMemory(newSize);if(replacement){return true}}return false};var _emscripten_sample_gamepad_data=()=>(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1;var registerBeforeUnloadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString)=>{var beforeUnloadEventHandlerFunc=(e=event)=>{var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_beforeunload_callback_on_thread=(userData,callbackfunc,targetThread)=>{if(typeof onbeforeunload=="undefined")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload")};var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_blur_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);var _emscripten_set_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0};var _emscripten_set_focus_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);var fillFullscreenChangeEventData=eventStruct=>{var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement&&reportedElement.id?reportedElement.id:"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}};var registerFullscreenChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=(e=event)=>{var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_fullscreenchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread)};var registerGamepadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=(e=event)=>{var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_gamepadconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread)};var _emscripten_set_gamepaddisconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread)};var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_keydown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);var _emscripten_set_keypress_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);var _emscripten_set_keyup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)};var 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};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_mousedown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);var _emscripten_set_mouseenter_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread);var _emscripten_set_mouseleave_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread);var _emscripten_set_mousemove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);var _emscripten_set_mouseup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);var fillPointerlockChangeEventData=eventStruct=>{var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement&&pointerLockElement.id?pointerLockElement.id:"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)};var registerPointerlockChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=(e=event)=>{var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_pointerlockchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread)};var registerUiEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=(e=event)=>{if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_resize_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_touchcancel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);var _emscripten_set_touchend_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);var _emscripten_set_touchmove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);var _emscripten_set_touchstart_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);var fillVisibilityChangeEventData=eventStruct=>{var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState};var registerVisibilityChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=(e=event)=>{var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_visibilitychange_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!specialHTMLTargets[1]){return-4}return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread)};var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_wheel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}};var _emscripten_set_window_title=title=>document.title=UTF8ToString(title);var _emscripten_sleep=()=>{throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var 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};var stringToAscii=(str,buffer)=>{for(var i=0;i>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(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.name==="ErrnoError"))throw e;return e.errno}}var 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.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{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.floor(tempDouble/4294967296)>>>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.name==="ErrnoError"))throw e;return e.errno}}var 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;if(typeof offset!=="undefined"){offset+=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.name==="ErrnoError"))throw e;return e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var 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];var 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};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var _strftime=(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[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":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":date=>getWeekBasedYear(date),"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":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":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":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":date=>date.tm_zone,"%%":()=>"%"};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};var _strftime_l=(s,maxsize,format,tm,loc)=>_strftime(s,maxsize,format,tm);var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=(lockPointer,resizeCanvas)=>Browser.requestFullscreen(lockPointer,resizeCanvas);Module["requestAnimationFrame"]=func=>Browser.requestAnimationFrame(func);Module["setCanvasSize"]=(width,height,noUpdates)=>Browser.setCanvasSize(width,height,noUpdates);Module["pauseMainLoop"]=()=>Browser.mainLoop.pause();Module["resumeMainLoop"]=()=>Browser.mainLoop.resume();Module["getUserMedia"]=()=>Browser.getUserMedia();Module["createContext"]=(canvas,useWebGL,setInModule,webGLContextAttributes)=>Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes);var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i+1)}var wasmImports={c:___assert_fail,b:___cxa_throw,L:___syscall_fcntl64,Sa:___syscall_getcwd,Va:___syscall_getdents64,$a:___syscall_ioctl,Qa:___syscall_lstat64,Pa:___syscall_newfstatat,M:___syscall_openat,Ra:___syscall_stat64,ab:__emscripten_get_now_is_monotonic,i:_abort,La:_eglBindAPI,Ac:_eglChooseConfig,ec:_eglCreateContext,Kb:_eglCreateWindowSurface,Vb:_eglDestroyContext,yb:_eglDestroySurface,pc:_eglGetConfigAttrib,O:_eglGetDisplay,Ja:_eglGetError,Wc:_eglInitialize,nb:_eglMakeCurrent,Ka:_eglQueryString,cb:_eglSwapBuffers,Ya:_eglSwapInterval,Lc:_eglTerminate,Ma:_eglWaitGL,Oa:_eglWaitNative,Ha:_emscripten_asm_const_int,a:_emscripten_asm_const_int_sync_on_main_thread,N:_emscripten_date_now,Da:_emscripten_exit_fullscreen,Ga:_emscripten_exit_pointerlock,f:_emscripten_get_device_pixel_ratio,d:_emscripten_get_element_css_size,o:_emscripten_get_gamepad_status,l:_emscripten_get_now,Ba:_emscripten_get_num_gamepads,Ia:_emscripten_get_screen_size,ia:_emscripten_glActiveTexture,ha:_emscripten_glAttachShader,ya:_emscripten_glBeginQueryEXT,ga:_emscripten_glBindAttribLocation,fa:_emscripten_glBindBuffer,ea:_emscripten_glBindFramebuffer,da:_emscripten_glBindRenderbuffer,ca:_emscripten_glBindTexture,qa:_emscripten_glBindVertexArrayOES,ba:_emscripten_glBlendColor,aa:_emscripten_glBlendEquation,$:_emscripten_glBlendEquationSeparate,_:_emscripten_glBlendFunc,Z:_emscripten_glBlendFuncSeparate,Y:_emscripten_glBufferData,X:_emscripten_glBufferSubData,W:_emscripten_glCheckFramebufferStatus,V:_emscripten_glClear,U:_emscripten_glClearColor,T:_emscripten_glClearDepthf,S:_emscripten_glClearStencil,R:_emscripten_glColorMask,Q:_emscripten_glCompileShader,P:_emscripten_glCompressedTexImage2D,yd:_emscripten_glCompressedTexSubImage2D,xd:_emscripten_glCopyTexImage2D,wd:_emscripten_glCopyTexSubImage2D,vd:_emscripten_glCreateProgram,ud:_emscripten_glCreateShader,td:_emscripten_glCullFace,sd:_emscripten_glDeleteBuffers,rd:_emscripten_glDeleteFramebuffers,qd:_emscripten_glDeleteProgram,Aa:_emscripten_glDeleteQueriesEXT,pd:_emscripten_glDeleteRenderbuffers,od:_emscripten_glDeleteShader,nd:_emscripten_glDeleteTextures,pa:_emscripten_glDeleteVertexArraysOES,md:_emscripten_glDepthFunc,ld:_emscripten_glDepthMask,kd:_emscripten_glDepthRangef,jd:_emscripten_glDetachShader,id:_emscripten_glDisable,hd:_emscripten_glDisableVertexAttribArray,gd:_emscripten_glDrawArrays,la:_emscripten_glDrawArraysInstancedANGLE,ma:_emscripten_glDrawBuffersWEBGL,fd:_emscripten_glDrawElements,ka:_emscripten_glDrawElementsInstancedANGLE,ed:_emscripten_glEnable,dd:_emscripten_glEnableVertexAttribArray,xa:_emscripten_glEndQueryEXT,cd:_emscripten_glFinish,bd:_emscripten_glFlush,ad:_emscripten_glFramebufferRenderbuffer,$c:_emscripten_glFramebufferTexture2D,_c:_emscripten_glFrontFace,Zc:_emscripten_glGenBuffers,Xc:_emscripten_glGenFramebuffers,Ca:_emscripten_glGenQueriesEXT,Vc:_emscripten_glGenRenderbuffers,Uc:_emscripten_glGenTextures,oa:_emscripten_glGenVertexArraysOES,Yc:_emscripten_glGenerateMipmap,Tc:_emscripten_glGetActiveAttrib,Sc:_emscripten_glGetActiveUniform,Rc:_emscripten_glGetAttachedShaders,Qc:_emscripten_glGetAttribLocation,Pc:_emscripten_glGetBooleanv,Oc:_emscripten_glGetBufferParameteriv,Nc:_emscripten_glGetError,Mc:_emscripten_glGetFloatv,Kc:_emscripten_glGetFramebufferAttachmentParameteriv,Jc:_emscripten_glGetIntegerv,Hc:_emscripten_glGetProgramInfoLog,Ic:_emscripten_glGetProgramiv,sa:_emscripten_glGetQueryObjecti64vEXT,ua:_emscripten_glGetQueryObjectivEXT,ra:_emscripten_glGetQueryObjectui64vEXT,ta:_emscripten_glGetQueryObjectuivEXT,va:_emscripten_glGetQueryivEXT,Gc:_emscripten_glGetRenderbufferParameteriv,Ec:_emscripten_glGetShaderInfoLog,Dc:_emscripten_glGetShaderPrecisionFormat,Cc:_emscripten_glGetShaderSource,Fc:_emscripten_glGetShaderiv,Bc:_emscripten_glGetString,zc:_emscripten_glGetTexParameterfv,yc:_emscripten_glGetTexParameteriv,vc:_emscripten_glGetUniformLocation,xc:_emscripten_glGetUniformfv,wc:_emscripten_glGetUniformiv,sc:_emscripten_glGetVertexAttribPointerv,uc:_emscripten_glGetVertexAttribfv,tc:_emscripten_glGetVertexAttribiv,rc:_emscripten_glHint,qc:_emscripten_glIsBuffer,oc:_emscripten_glIsEnabled,nc:_emscripten_glIsFramebuffer,mc:_emscripten_glIsProgram,za:_emscripten_glIsQueryEXT,lc:_emscripten_glIsRenderbuffer,kc:_emscripten_glIsShader,jc:_emscripten_glIsTexture,na:_emscripten_glIsVertexArrayOES,ic:_emscripten_glLineWidth,hc:_emscripten_glLinkProgram,gc:_emscripten_glPixelStorei,fc:_emscripten_glPolygonOffset,wa:_emscripten_glQueryCounterEXT,dc:_emscripten_glReadPixels,cc:_emscripten_glReleaseShaderCompiler,bc:_emscripten_glRenderbufferStorage,ac:_emscripten_glSampleCoverage,$b:_emscripten_glScissor,_b:_emscripten_glShaderBinary,Zb:_emscripten_glShaderSource,Yb:_emscripten_glStencilFunc,Xb:_emscripten_glStencilFuncSeparate,Wb:_emscripten_glStencilMask,Ub:_emscripten_glStencilMaskSeparate,Tb:_emscripten_glStencilOp,Sb:_emscripten_glStencilOpSeparate,Rb:_emscripten_glTexImage2D,Qb:_emscripten_glTexParameterf,Pb:_emscripten_glTexParameterfv,Ob:_emscripten_glTexParameteri,Nb:_emscripten_glTexParameteriv,Mb:_emscripten_glTexSubImage2D,Lb:_emscripten_glUniform1f,Jb:_emscripten_glUniform1fv,Ib:_emscripten_glUniform1i,Hb:_emscripten_glUniform1iv,Gb:_emscripten_glUniform2f,Fb:_emscripten_glUniform2fv,Eb:_emscripten_glUniform2i,Db:_emscripten_glUniform2iv,Cb:_emscripten_glUniform3f,Bb:_emscripten_glUniform3fv,Ab:_emscripten_glUniform3i,xb:_emscripten_glUniform3iv,wb:_emscripten_glUniform4f,vb:_emscripten_glUniform4fv,ub:_emscripten_glUniform4i,tb:_emscripten_glUniform4iv,sb:_emscripten_glUniformMatrix2fv,rb:_emscripten_glUniformMatrix3fv,qb:_emscripten_glUniformMatrix4fv,pb:_emscripten_glUseProgram,ob:_emscripten_glValidateProgram,mb:_emscripten_glVertexAttrib1f,lb:_emscripten_glVertexAttrib1fv,kb:_emscripten_glVertexAttrib2f,jb:_emscripten_glVertexAttrib2fv,ib:_emscripten_glVertexAttrib3f,hb:_emscripten_glVertexAttrib3fv,gb:_emscripten_glVertexAttrib4f,fb:_emscripten_glVertexAttrib4fv,ja:_emscripten_glVertexAttribDivisorANGLE,eb:_emscripten_glVertexAttribPointer,db:_emscripten_glViewport,n:_emscripten_has_asyncify,bb:_emscripten_memcpy_js,Ea:_emscripten_request_fullscreen_strategy,K:_emscripten_request_pointerlock,Ua:_emscripten_resize_heap,v:_emscripten_sample_gamepad_data,p:_emscripten_set_beforeunload_callback_on_thread,C:_emscripten_set_blur_callback_on_thread,e:_emscripten_set_canvas_element_size,k:_emscripten_set_element_css_size,D:_emscripten_set_focus_callback_on_thread,s:_emscripten_set_fullscreenchange_callback_on_thread,h:_emscripten_set_gamepadconnected_callback_on_thread,g:_emscripten_set_gamepaddisconnected_callback_on_thread,w:_emscripten_set_keydown_callback_on_thread,t:_emscripten_set_keypress_callback_on_thread,u:_emscripten_set_keyup_callback_on_thread,zb:_emscripten_set_main_loop,I:_emscripten_set_mousedown_callback_on_thread,G:_emscripten_set_mouseenter_callback_on_thread,F:_emscripten_set_mouseleave_callback_on_thread,J:_emscripten_set_mousemove_callback_on_thread,H:_emscripten_set_mouseup_callback_on_thread,x:_emscripten_set_pointerlockchange_callback_on_thread,r:_emscripten_set_resize_callback_on_thread,y:_emscripten_set_touchcancel_callback_on_thread,A:_emscripten_set_touchend_callback_on_thread,z:_emscripten_set_touchmove_callback_on_thread,B:_emscripten_set_touchstart_callback_on_thread,q:_emscripten_set_visibilitychange_callback_on_thread,E:_emscripten_set_wheel_callback_on_thread,Fa:_emscripten_set_window_title,m:_emscripten_sleep,Wa:_environ_get,Xa:_environ_sizes_get,j:_fd_close,_a:_fd_read,Na:_fd_seek,Za:_fd_write,Ta:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["Ad"])();var _malloc=a0=>(_malloc=wasmExports["Cd"])(a0);var _free=a0=>(_free=wasmExports["free"])(a0);var ___errno_location=()=>(___errno_location=wasmExports["Dd"])();var _RSDK_Initialize=Module["_RSDK_Initialize"]=()=>(_RSDK_Initialize=Module["_RSDK_Initialize"]=wasmExports["Ed"])();var _RSDK_Configure=Module["_RSDK_Configure"]=(a0,a1)=>(_RSDK_Configure=Module["_RSDK_Configure"]=wasmExports["Fd"])(a0,a1);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["Gd"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["Hd"])();var stackRestore=a0=>(stackRestore=wasmExports["Id"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["Jd"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["__cxa_increment_exception_refcount"])(a0);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["Kd"])(a0);var dynCall_iiji=Module["dynCall_iiji"]=(a0,a1,a2,a3,a4)=>(dynCall_iiji=Module["dynCall_iiji"]=wasmExports["Ld"])(a0,a1,a2,a3,a4);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["Md"])(a0,a1,a2,a3,a4);var dynCall_ji=Module["dynCall_ji"]=(a0,a1)=>(dynCall_ji=Module["dynCall_ji"]=wasmExports["Nd"])(a0,a1);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["Od"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["Pd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["Qd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){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();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;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(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,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&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",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[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)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.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 wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];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 HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;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,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="RSDKv3.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(instance=>instance).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["zd"];updateMemoryViews();wasmTable=wasmExports["Bd"];addOnInit(wasmExports["Ad"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={185208:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},185355:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},185589:$0=>{if(typeof Module["SDL2"]==="undefined"){Module["SDL2"]={}}var SDL2=Module["SDL2"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},186082:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},186150:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall("vi",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall("vi",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},187802:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];dynCall("vi",$2,[$3])};SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])},188212:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module["SDL2"];var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c>2]}}},189297:$0=>{var SDL2=Module["SDL2"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?"url("+canvas.toDataURL()+"), auto":"url("+canvas.toDataURL()+") "+hot_x+" "+hot_y+", auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},192927:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},193010:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},193079:()=>window.innerWidth,193109:()=>window.innerHeight};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var listenOnce=(object,event,func)=>{object.addEventListener(event,func,{"once":true})};var autoResumeAudioContext=(ctx,elements)=>{if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state==="suspended")ctx.resume()})}})})};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var 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=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var dynCall=(sig,ptr,args)=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn};var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var 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};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};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_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_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;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var 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);return PATH.normalize(paths.join("/"))},join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);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;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var 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 intArrayFromString(stringy,dontAddNull,length){var len=length>0?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 FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){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}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(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){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(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(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(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(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(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(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(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(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(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(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(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(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{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{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_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_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(FS_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)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>PATH.join2(root,p)}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={"timestamp":stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(e.target.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={"timestamp":cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{"timestamp":stat.mtime,"mode":stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{"timestamp":stat.mtime,"mode":stat.mode,"contents":node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>{callback(null,event.target.result)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=e=>{done(this.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};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(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.split("/").filter(p=>!!p);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},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(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get(){return this.node},set(val){this.node=val}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(val){this.shared.flags=val}},position:{get(){return this.shared.position},set(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}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;i0,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 randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);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.getStreamChecked(fd);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.name="ErrnoError";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,"IDBFS":IDBFS}},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;ithis.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}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(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+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);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}while(FS.streams[arg]){arg++}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.getp();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.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="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:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="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.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=true;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var _abort=()=>{abort("")};var _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 Browser.setImmediate=="undefined"){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);Browser.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,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var 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}}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"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var 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(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){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(){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;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);if(onerror)onerror()};img.src=url};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)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.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(()=>{finish(audio)},1e4)};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)}}},createContext(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:1};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(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(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(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(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(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(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(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(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(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(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){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(){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(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){HEAPU32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};var _eglBindAPI=api=>{if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0};var _eglChooseConfig=(display,attrib_list,configs,config_size,numConfigs)=>EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs);var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{var source="";for(var i=0;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:(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("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(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:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext: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:context=>{if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})},getExtensions(){var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(e=>"GL_"+e));return exts}};var _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){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}};var _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};var _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};var _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};var _eglGetConfigAttrib=(display,config,attribute,value)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}};var _eglGetDisplay=nativeDisplayType=>{EGL.setErrorCode(12288);return 62e3};var _eglGetError=()=>EGL.errorCode;var _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};var _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};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var _eglQueryString=(display,name)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8("Emscripten");break;case 12372:ret=stringToNewUTF8("1.4 Emscripten EGL");break;case 12373:ret=stringToNewUTF8("");break;case 12429:ret=stringToNewUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret};var _eglSwapBuffers=(dpy,surface)=>{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};var _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};var _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 _eglWaitClient=()=>{EGL.setErrorCode(12288);return 1};var _eglWaitGL=_eglWaitClient;var _eglWaitNative=nativeEngineId=>{EGL.setErrorCode(12288);return 1};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var runMainThreadEmAsm=(code,sigPtr,argbuf,sync)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)};var _emscripten_asm_const_int_sync_on_main_thread=(code,sigPtr,argbuf)=>runMainThreadEmAsm(code,sigPtr,argbuf,1);var _emscripten_date_now=()=>Date.now();var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var JSEvents={inEventHandler:0,removeAllEventListeners(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall(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((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var findCanvasEventTarget=target=>findEventTarget(target);var _emscripten_get_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var getCanvasElementSize=target=>withStackSave(()=>{var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size});var _emscripten_set_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0};var setCanvasElementSize=(target,width,height)=>{if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(()=>{var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}};var registerRestoreOldStyle=canvas=>{var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle};var setLetterbox=(element,topBottom,leftRight)=>{element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"};var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var JSEvents_resizeCanvasForFullscreen=(target,strategy)=>{var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight{if(strategy.scaleMode!=0||strategy.canvasResolutionScaleMode!=0){JSEvents_resizeCanvasForFullscreen(target,strategy)}if(target.requestFullscreen){target.requestFullscreen()}else if(target.webkitRequestFullscreen){target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}else{return JSEvents.fullscreenEnabled()?-3:-1}currentFullscreenStrategy=strategy;if(strategy.canvasResizedCallback){getWasmTableEntry(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}return 0};var _emscripten_exit_fullscreen=()=>{if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(JSEvents_requestFullscreen);var d=specialHTMLTargets[1];if(d.exitFullscreen){d.fullscreenElement&&d.exitFullscreen()}else if(d.webkitExitFullscreen){d.webkitFullscreenElement&&d.webkitExitFullscreen()}else{return-1}return 0};var requestPointerLock=target=>{if(target.requestPointerLock){target.requestPointerLock()}else{if(document.body.requestPointerLock){return-3}return-1}return 0};var _emscripten_exit_pointerlock=()=>{JSEvents.removeDeferredCalls(requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else{return-1}return 0};var _emscripten_get_device_pixel_ratio=()=>typeof devicePixelRatio=="number"&&devicePixelRatio||1;var _emscripten_get_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0};var fillGamepadEventData=(eventStruct,e)=>{HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)};var _emscripten_get_gamepad_status=(index,gamepadState)=>{if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0};var _emscripten_get_num_gamepads=()=>JSEvents.lastGamepadState.length;var _emscripten_get_screen_size=(width,height)=>{HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height};function _glActiveTexture(x0){GLctx.activeTexture(x0)}var _emscripten_glActiveTexture=_glActiveTexture;var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glAttachShader=_glAttachShader;var _glBeginQueryEXT=(target,id)=>{GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])};var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;var _glBindAttribLocation=(program,index,name)=>{GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))};var _emscripten_glBindAttribLocation=_glBindAttribLocation;var _glBindBuffer=(target,buffer)=>{GLctx.bindBuffer(target,GL.buffers[buffer])};var _emscripten_glBindBuffer=_glBindBuffer;var _glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])};var _emscripten_glBindFramebuffer=_glBindFramebuffer;var _glBindRenderbuffer=(target,renderbuffer)=>{GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])};var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _emscripten_glBindTexture=_glBindTexture;var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;function _glBlendColor(x0,x1,x2,x3){GLctx.blendColor(x0,x1,x2,x3)}var _emscripten_glBlendColor=_glBlendColor;function _glBlendEquation(x0){GLctx.blendEquation(x0)}var _emscripten_glBlendEquation=_glBlendEquation;function _glBlendEquationSeparate(x0,x1){GLctx.blendEquationSeparate(x0,x1)}var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}var _emscripten_glBlendFunc=_glBlendFunc;function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx.blendFuncSeparate(x0,x1,x2,x3)}var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;var _glBufferData=(target,size,data,usage)=>{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _emscripten_glBufferData=_glBufferData;var _glBufferSubData=(target,offset,size,data)=>{GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))};var _emscripten_glBufferSubData=_glBufferSubData;function _glCheckFramebufferStatus(x0){return GLctx.checkFramebufferStatus(x0)}var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;function _glClear(x0){GLctx.clear(x0)}var _emscripten_glClear=_glClear;function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}var _emscripten_glClearColor=_glClearColor;function _glClearDepthf(x0){GLctx.clearDepth(x0)}var _emscripten_glClearDepthf=_glClearDepthf;function _glClearStencil(x0){GLctx.clearStencil(x0)}var _emscripten_glClearStencil=_glClearStencil;var _glColorMask=(red,green,blue,alpha)=>{GLctx.colorMask(!!red,!!green,!!blue,!!alpha)};var _emscripten_glColorMask=_glColorMask;var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _emscripten_glCompileShader=_glCompileShader;var _glCompressedTexImage2D=(target,level,internalFormat,width,height,border,imageSize,data)=>{GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;var _glCompressedTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,imageSize,data)=>{GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;function _glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;var _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};var _emscripten_glCreateProgram=_glCreateProgram;var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _emscripten_glCreateShader=_glCreateShader;function _glCullFace(x0){GLctx.cullFace(x0)}var _emscripten_glCullFace=_glCullFace;var _glDeleteBuffers=(n,buffers)=>{for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}};var _emscripten_glDeleteBuffers=_glDeleteBuffers;var _glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;var _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};var _emscripten_glDeleteProgram=_glDeleteProgram;var _glDeleteQueriesEXT=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}};var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;var _glDeleteRenderbuffers=(n,renderbuffers)=>{for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}};var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _emscripten_glDeleteShader=_glDeleteShader;var _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}};var _emscripten_glDeleteTextures=_glDeleteTextures;var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;function _glDepthFunc(x0){GLctx.depthFunc(x0)}var _emscripten_glDepthFunc=_glDepthFunc;var _glDepthMask=flag=>{GLctx.depthMask(!!flag)};var _emscripten_glDepthMask=_glDepthMask;function _glDepthRangef(x0,x1){GLctx.depthRange(x0,x1)}var _emscripten_glDepthRangef=_glDepthRangef;var _glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glDetachShader=_glDetachShader;function _glDisable(x0){GLctx.disable(x0)}var _emscripten_glDisable=_glDisable;var _glDisableVertexAttribArray=index=>{GLctx.disableVertexAttribArray(index)};var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _emscripten_glDrawArrays=_glDrawArrays;var _glDrawArraysInstanced=(mode,first,count,primcount)=>{GLctx.drawArraysInstanced(mode,first,count,primcount)};var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var tempFixedLengthArray=[];var _glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)};var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;var _glDrawElements=(mode,count,type,indices)=>{GLctx.drawElements(mode,count,type,indices)};var _emscripten_glDrawElements=_glDrawElements;var _glDrawElementsInstanced=(mode,count,type,indices,primcount)=>{GLctx.drawElementsInstanced(mode,count,type,indices,primcount)};var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;function _glEnable(x0){GLctx.enable(x0)}var _emscripten_glEnable=_glEnable;var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;var _glEndQueryEXT=target=>{GLctx.disjointTimerQueryExt["endQueryEXT"](target)};var _emscripten_glEndQueryEXT=_glEndQueryEXT;function _glFinish(){GLctx.finish()}var _emscripten_glFinish=_glFinish;function _glFlush(){GLctx.flush()}var _emscripten_glFlush=_glFlush;var _glFramebufferRenderbuffer=(target,attachment,renderbuffertarget,renderbuffer)=>{GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])};var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;var _glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;function _glFrontFace(x0){GLctx.frontFace(x0)}var _emscripten_glFrontFace=_glFrontFace;var __glGenObject=(n,buffers,createFunction,objectTable)=>{for(var i=0;i>2]=id}};var _glGenBuffers=(n,buffers)=>{__glGenObject(n,buffers,"createBuffer",GL.buffers)};var _emscripten_glGenBuffers=_glGenBuffers;var _glGenFramebuffers=(n,ids)=>{__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)};var _emscripten_glGenFramebuffers=_glGenFramebuffers;var _glGenQueriesEXT=(n,ids)=>{for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}};var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;var _glGenRenderbuffers=(n,renderbuffers)=>{__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)};var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;var _glGenTextures=(n,textures)=>{__glGenObject(n,textures,"createTexture",GL.textures)};var _emscripten_glGenTextures=_glGenTextures;function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;function _glGenerateMipmap(x0){GLctx.generateMipmap(x0)}var _emscripten_glGenerateMipmap=_glGenerateMipmap;var __glGetActiveAttribOrUniform=(funcName,program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}};var _glGetActiveAttrib=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;var _glGetActiveUniform=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveUniform=_glGetActiveUniform;var _glGetAttachedShaders=(program,maxCount,count,shaders)=>{var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}};var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;var _glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetAttribLocation=_glGetAttribLocation;var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}};var _glGetBooleanv=(name_,p)=>{emscriptenWebGLGet(name_,p,4)};var _emscripten_glGetBooleanv=_glGetBooleanv;var _glGetBufferParameteriv=(target,value,data)=>{if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)};var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;var _glGetError=()=>{var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error};var _emscripten_glGetError=_glGetError;var _glGetFloatv=(name_,p)=>{emscriptenWebGLGet(name_,p,2)};var _emscripten_glGetFloatv=_glGetFloatv;var _glGetFramebufferAttachmentParameteriv=(target,attachment,pname,params)=>{var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result};var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;var _glGetIntegerv=(name_,p)=>{emscriptenWebGLGet(name_,p,0)};var _emscripten_glGetIntegerv=_glGetIntegerv;var _glGetProgramInfoLog=(program,maxLength,length,infoLog)=>{var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _emscripten_glGetProgramiv=_glGetProgramiv;var _glGetQueryObjecti64vEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)};var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;var _glGetQueryObjectivEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;var _glGetQueryivEXT=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)};var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;var _glGetRenderbufferParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)};var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;var _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};var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;var _glGetShaderPrecisionFormat=(shaderType,precisionType,range,precision)=>{var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision};var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;var _glGetShaderSource=(shader,bufSize,length,source)=>{var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderSource=_glGetShaderSource;var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var _emscripten_glGetShaderiv=_glGetShaderiv;var _glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(GL.getExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret};var _emscripten_glGetString=_glGetString;var _glGetTexParameterfv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;var _glGetTexParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}};var emscriptenWebGLGetUniform=(program,location,params,type)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}};var _glGetUniformfv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,2)};var _emscripten_glGetUniformfv=_glGetUniformfv;var _glGetUniformiv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,0)};var _emscripten_glGetUniformiv=_glGetUniformiv;var _glGetVertexAttribPointerv=(index,pname,pointer)=>{if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)};var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;var emscriptenWebGLGetVertexAttrib=(index,pname,params,type)=>{if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}};var _glGetVertexAttribfv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,2)};var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;var _glGetVertexAttribiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,5)};var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;function _glHint(x0,x1){GLctx.hint(x0,x1)}var _emscripten_glHint=_glHint;var _glIsBuffer=buffer=>{var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)};var _emscripten_glIsBuffer=_glIsBuffer;function _glIsEnabled(x0){return GLctx.isEnabled(x0)}var _emscripten_glIsEnabled=_glIsEnabled;var _glIsFramebuffer=framebuffer=>{var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)};var _emscripten_glIsFramebuffer=_glIsFramebuffer;var _glIsProgram=program=>{program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)};var _emscripten_glIsProgram=_glIsProgram;var _glIsQueryEXT=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)};var _emscripten_glIsQueryEXT=_glIsQueryEXT;var _glIsRenderbuffer=renderbuffer=>{var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)};var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;var _glIsShader=shader=>{var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)};var _emscripten_glIsShader=_glIsShader;var _glIsTexture=id=>{var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)};var _emscripten_glIsTexture=_glIsTexture;var _glIsVertexArray=array=>{var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)};var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;function _glLineWidth(x0){GLctx.lineWidth(x0)}var _emscripten_glLineWidth=_glLineWidth;var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _emscripten_glLinkProgram=_glLinkProgram;var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)};var _emscripten_glPixelStorei=_glPixelStorei;function _glPolygonOffset(x0,x1){GLctx.polygonOffset(x0,x1)}var _emscripten_glPolygonOffset=_glPolygonOffset;var _glQueryCounterEXT=(id,target)=>{GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)};var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;var 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};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16};var heapAccessShiftForWebGLHeap=heap=>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)};var _glReadPixels=(x,y,width,height,format,type,pixels)=>{var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)};var _emscripten_glReadPixels=_glReadPixels;var _glReleaseShaderCompiler=()=>{};var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;function _glRenderbufferStorage(x0,x1,x2,x3){GLctx.renderbufferStorage(x0,x1,x2,x3)}var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;var _glSampleCoverage=(value,invert)=>{GLctx.sampleCoverage(value,!!invert)};var _emscripten_glSampleCoverage=_glSampleCoverage;function _glScissor(x0,x1,x2,x3){GLctx.scissor(x0,x1,x2,x3)}var _emscripten_glScissor=_glScissor;var _glShaderBinary=(count,shaders,binaryformat,binary,length)=>{GL.recordError(1280)};var _emscripten_glShaderBinary=_glShaderBinary;var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _emscripten_glShaderSource=_glShaderSource;function _glStencilFunc(x0,x1,x2){GLctx.stencilFunc(x0,x1,x2)}var _emscripten_glStencilFunc=_glStencilFunc;function _glStencilFuncSeparate(x0,x1,x2,x3){GLctx.stencilFuncSeparate(x0,x1,x2,x3)}var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;function _glStencilMask(x0){GLctx.stencilMask(x0)}var _emscripten_glStencilMask=_glStencilMask;function _glStencilMaskSeparate(x0,x1){GLctx.stencilMaskSeparate(x0,x1)}var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;function _glStencilOp(x0,x1,x2){GLctx.stencilOp(x0,x1,x2)}var _emscripten_glStencilOp=_glStencilOp;function _glStencilOpSeparate(x0,x1,x2,x3){GLctx.stencilOpSeparate(x0,x1,x2,x3)}var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)};var _emscripten_glTexImage2D=_glTexImage2D;function _glTexParameterf(x0,x1,x2){GLctx.texParameterf(x0,x1,x2)}var _emscripten_glTexParameterf=_glTexParameterf;var _glTexParameterfv=(target,pname,params)=>{var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)};var _emscripten_glTexParameterfv=_glTexParameterfv;function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}var _emscripten_glTexParameteri=_glTexParameteri;var _glTexParameteriv=(target,pname,params)=>{var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)};var _emscripten_glTexParameteriv=_glTexParameteriv;var _glTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,type,pixels)=>{var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)};var _emscripten_glTexSubImage2D=_glTexSubImage2D;var _glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1f=_glUniform1f;var miniTempWebGLFloatBuffers=[];var _glUniform1fv=(location,count,value)=>{if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1fv=_glUniform1fv;var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1i=_glUniform1i;var miniTempWebGLIntBuffers=[];var _glUniform1iv=(location,count,value)=>{if(count<=288){var view=miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1iv=_glUniform1iv;var _glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2f=_glUniform2f;var _glUniform2fv=(location,count,value)=>{if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2fv=_glUniform2fv;var _glUniform2i=(location,v0,v1)=>{GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2i=_glUniform2i;var _glUniform2iv=(location,count,value)=>{if(count<=144){var view=miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2iv=_glUniform2iv;var _glUniform3f=(location,v0,v1,v2)=>{GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3f=_glUniform3f;var _glUniform3fv=(location,count,value)=>{if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3fv=_glUniform3fv;var _glUniform3i=(location,v0,v1,v2)=>{GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3i=_glUniform3i;var _glUniform3iv=(location,count,value)=>{if(count<=96){var view=miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3iv=_glUniform3iv;var _glUniform4f=(location,v0,v1,v2,v3)=>{GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4f=_glUniform4f;var _glUniform4fv=(location,count,value)=>{if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4fv=_glUniform4fv;var _glUniform4i=(location,v0,v1,v2,v3)=>{GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4i=_glUniform4i;var _glUniform4iv=(location,count,value)=>{if(count<=72){var view=miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4iv=_glUniform4iv;var _glUniformMatrix2fv=(location,count,transpose,value)=>{if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;var _glUniformMatrix3fv=(location,count,transpose,value)=>{if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _emscripten_glUseProgram=_glUseProgram;var _glValidateProgram=program=>{GLctx.validateProgram(GL.programs[program])};var _emscripten_glValidateProgram=_glValidateProgram;function _glVertexAttrib1f(x0,x1){GLctx.vertexAttrib1f(x0,x1)}var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;var _glVertexAttrib1fv=(index,v)=>{GLctx.vertexAttrib1f(index,HEAPF32[v>>2])};var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;function _glVertexAttrib2f(x0,x1,x2){GLctx.vertexAttrib2f(x0,x1,x2)}var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;var _glVertexAttrib2fv=(index,v)=>{GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])};var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;function _glVertexAttrib3f(x0,x1,x2,x3){GLctx.vertexAttrib3f(x0,x1,x2,x3)}var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;var _glVertexAttrib3fv=(index,v)=>{GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])};var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx.vertexAttrib4f(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;var _glVertexAttrib4fv=(index,v)=>{GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])};var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;var _glVertexAttribDivisor=(index,divisor)=>{GLctx.vertexAttribDivisor(index,divisor)};var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}var _emscripten_glViewport=_glViewport;var _emscripten_has_asyncify=()=>0;var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var doRequestFullscreen=(target,strategy)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)};var _emscripten_request_fullscreen_strategy=(target,deferUntilInEventHandler,fullscreenStrategy)=>{var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)};var _emscripten_request_pointerlock=(target,deferUntilInEventHandler)=>{target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)};var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var 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=growMemory(newSize);if(replacement){return true}}return false};var _emscripten_sample_gamepad_data=()=>(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1;var registerBeforeUnloadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString)=>{var beforeUnloadEventHandlerFunc=(e=event)=>{var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_beforeunload_callback_on_thread=(userData,callbackfunc,targetThread)=>{if(typeof onbeforeunload=="undefined")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload")};var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_blur_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);var _emscripten_set_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0};var _emscripten_set_focus_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);var fillFullscreenChangeEventData=eventStruct=>{var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement&&reportedElement.id?reportedElement.id:"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}};var registerFullscreenChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=(e=event)=>{var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_fullscreenchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread)};var registerGamepadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=(e=event)=>{var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_gamepadconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread)};var _emscripten_set_gamepaddisconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread)};var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_keydown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);var _emscripten_set_keypress_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);var _emscripten_set_keyup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)};var 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};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_mousedown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);var _emscripten_set_mouseenter_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread);var _emscripten_set_mouseleave_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread);var _emscripten_set_mousemove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);var _emscripten_set_mouseup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);var fillPointerlockChangeEventData=eventStruct=>{var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement&&pointerLockElement.id?pointerLockElement.id:"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)};var registerPointerlockChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=(e=event)=>{var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_pointerlockchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread)};var registerUiEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=(e=event)=>{if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_resize_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_touchcancel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);var _emscripten_set_touchend_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);var _emscripten_set_touchmove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);var _emscripten_set_touchstart_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);var fillVisibilityChangeEventData=eventStruct=>{var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState};var registerVisibilityChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=(e=event)=>{var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_visibilitychange_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!specialHTMLTargets[1]){return-4}return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread)};var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=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};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_wheel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}};var _emscripten_set_window_title=title=>document.title=UTF8ToString(title);var _emscripten_sleep=()=>{throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var 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};var stringToAscii=(str,buffer)=>{for(var i=0;i>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(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.name==="ErrnoError"))throw e;return e.errno}}var 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.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{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.floor(tempDouble/4294967296)>>>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.name==="ErrnoError"))throw e;return e.errno}}var 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;if(typeof offset!=="undefined"){offset+=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.name==="ErrnoError"))throw e;return e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var 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];var 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};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var _strftime=(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[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":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":date=>getWeekBasedYear(date),"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":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":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":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":date=>date.tm_zone,"%%":()=>"%"};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};var _strftime_l=(s,maxsize,format,tm,loc)=>_strftime(s,maxsize,format,tm);var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=(lockPointer,resizeCanvas)=>Browser.requestFullscreen(lockPointer,resizeCanvas);Module["requestAnimationFrame"]=func=>Browser.requestAnimationFrame(func);Module["setCanvasSize"]=(width,height,noUpdates)=>Browser.setCanvasSize(width,height,noUpdates);Module["pauseMainLoop"]=()=>Browser.mainLoop.pause();Module["resumeMainLoop"]=()=>Browser.mainLoop.resume();Module["getUserMedia"]=()=>Browser.getUserMedia();Module["createContext"]=(canvas,useWebGL,setInModule,webGLContextAttributes)=>Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes);var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i+1)}var wasmImports={c:___assert_fail,b:___cxa_throw,L:___syscall_fcntl64,Sa:___syscall_getcwd,Va:___syscall_getdents64,$a:___syscall_ioctl,Qa:___syscall_lstat64,Pa:___syscall_newfstatat,M:___syscall_openat,Ra:___syscall_stat64,ab:__emscripten_get_now_is_monotonic,i:_abort,La:_eglBindAPI,Ac:_eglChooseConfig,ec:_eglCreateContext,Kb:_eglCreateWindowSurface,Vb:_eglDestroyContext,yb:_eglDestroySurface,pc:_eglGetConfigAttrib,O:_eglGetDisplay,Ja:_eglGetError,Wc:_eglInitialize,nb:_eglMakeCurrent,Ka:_eglQueryString,cb:_eglSwapBuffers,Ya:_eglSwapInterval,Lc:_eglTerminate,Ma:_eglWaitGL,Oa:_eglWaitNative,Ha:_emscripten_asm_const_int,a:_emscripten_asm_const_int_sync_on_main_thread,N:_emscripten_date_now,Da:_emscripten_exit_fullscreen,Ga:_emscripten_exit_pointerlock,f:_emscripten_get_device_pixel_ratio,d:_emscripten_get_element_css_size,o:_emscripten_get_gamepad_status,l:_emscripten_get_now,Ba:_emscripten_get_num_gamepads,Ia:_emscripten_get_screen_size,ia:_emscripten_glActiveTexture,ha:_emscripten_glAttachShader,ya:_emscripten_glBeginQueryEXT,ga:_emscripten_glBindAttribLocation,fa:_emscripten_glBindBuffer,ea:_emscripten_glBindFramebuffer,da:_emscripten_glBindRenderbuffer,ca:_emscripten_glBindTexture,qa:_emscripten_glBindVertexArrayOES,ba:_emscripten_glBlendColor,aa:_emscripten_glBlendEquation,$:_emscripten_glBlendEquationSeparate,_:_emscripten_glBlendFunc,Z:_emscripten_glBlendFuncSeparate,Y:_emscripten_glBufferData,X:_emscripten_glBufferSubData,W:_emscripten_glCheckFramebufferStatus,V:_emscripten_glClear,U:_emscripten_glClearColor,T:_emscripten_glClearDepthf,S:_emscripten_glClearStencil,R:_emscripten_glColorMask,Q:_emscripten_glCompileShader,P:_emscripten_glCompressedTexImage2D,yd:_emscripten_glCompressedTexSubImage2D,xd:_emscripten_glCopyTexImage2D,wd:_emscripten_glCopyTexSubImage2D,vd:_emscripten_glCreateProgram,ud:_emscripten_glCreateShader,td:_emscripten_glCullFace,sd:_emscripten_glDeleteBuffers,rd:_emscripten_glDeleteFramebuffers,qd:_emscripten_glDeleteProgram,Aa:_emscripten_glDeleteQueriesEXT,pd:_emscripten_glDeleteRenderbuffers,od:_emscripten_glDeleteShader,nd:_emscripten_glDeleteTextures,pa:_emscripten_glDeleteVertexArraysOES,md:_emscripten_glDepthFunc,ld:_emscripten_glDepthMask,kd:_emscripten_glDepthRangef,jd:_emscripten_glDetachShader,id:_emscripten_glDisable,hd:_emscripten_glDisableVertexAttribArray,gd:_emscripten_glDrawArrays,la:_emscripten_glDrawArraysInstancedANGLE,ma:_emscripten_glDrawBuffersWEBGL,fd:_emscripten_glDrawElements,ka:_emscripten_glDrawElementsInstancedANGLE,ed:_emscripten_glEnable,dd:_emscripten_glEnableVertexAttribArray,xa:_emscripten_glEndQueryEXT,cd:_emscripten_glFinish,bd:_emscripten_glFlush,ad:_emscripten_glFramebufferRenderbuffer,$c:_emscripten_glFramebufferTexture2D,_c:_emscripten_glFrontFace,Zc:_emscripten_glGenBuffers,Xc:_emscripten_glGenFramebuffers,Ca:_emscripten_glGenQueriesEXT,Vc:_emscripten_glGenRenderbuffers,Uc:_emscripten_glGenTextures,oa:_emscripten_glGenVertexArraysOES,Yc:_emscripten_glGenerateMipmap,Tc:_emscripten_glGetActiveAttrib,Sc:_emscripten_glGetActiveUniform,Rc:_emscripten_glGetAttachedShaders,Qc:_emscripten_glGetAttribLocation,Pc:_emscripten_glGetBooleanv,Oc:_emscripten_glGetBufferParameteriv,Nc:_emscripten_glGetError,Mc:_emscripten_glGetFloatv,Kc:_emscripten_glGetFramebufferAttachmentParameteriv,Jc:_emscripten_glGetIntegerv,Hc:_emscripten_glGetProgramInfoLog,Ic:_emscripten_glGetProgramiv,sa:_emscripten_glGetQueryObjecti64vEXT,ua:_emscripten_glGetQueryObjectivEXT,ra:_emscripten_glGetQueryObjectui64vEXT,ta:_emscripten_glGetQueryObjectuivEXT,va:_emscripten_glGetQueryivEXT,Gc:_emscripten_glGetRenderbufferParameteriv,Ec:_emscripten_glGetShaderInfoLog,Dc:_emscripten_glGetShaderPrecisionFormat,Cc:_emscripten_glGetShaderSource,Fc:_emscripten_glGetShaderiv,Bc:_emscripten_glGetString,zc:_emscripten_glGetTexParameterfv,yc:_emscripten_glGetTexParameteriv,vc:_emscripten_glGetUniformLocation,xc:_emscripten_glGetUniformfv,wc:_emscripten_glGetUniformiv,sc:_emscripten_glGetVertexAttribPointerv,uc:_emscripten_glGetVertexAttribfv,tc:_emscripten_glGetVertexAttribiv,rc:_emscripten_glHint,qc:_emscripten_glIsBuffer,oc:_emscripten_glIsEnabled,nc:_emscripten_glIsFramebuffer,mc:_emscripten_glIsProgram,za:_emscripten_glIsQueryEXT,lc:_emscripten_glIsRenderbuffer,kc:_emscripten_glIsShader,jc:_emscripten_glIsTexture,na:_emscripten_glIsVertexArrayOES,ic:_emscripten_glLineWidth,hc:_emscripten_glLinkProgram,gc:_emscripten_glPixelStorei,fc:_emscripten_glPolygonOffset,wa:_emscripten_glQueryCounterEXT,dc:_emscripten_glReadPixels,cc:_emscripten_glReleaseShaderCompiler,bc:_emscripten_glRenderbufferStorage,ac:_emscripten_glSampleCoverage,$b:_emscripten_glScissor,_b:_emscripten_glShaderBinary,Zb:_emscripten_glShaderSource,Yb:_emscripten_glStencilFunc,Xb:_emscripten_glStencilFuncSeparate,Wb:_emscripten_glStencilMask,Ub:_emscripten_glStencilMaskSeparate,Tb:_emscripten_glStencilOp,Sb:_emscripten_glStencilOpSeparate,Rb:_emscripten_glTexImage2D,Qb:_emscripten_glTexParameterf,Pb:_emscripten_glTexParameterfv,Ob:_emscripten_glTexParameteri,Nb:_emscripten_glTexParameteriv,Mb:_emscripten_glTexSubImage2D,Lb:_emscripten_glUniform1f,Jb:_emscripten_glUniform1fv,Ib:_emscripten_glUniform1i,Hb:_emscripten_glUniform1iv,Gb:_emscripten_glUniform2f,Fb:_emscripten_glUniform2fv,Eb:_emscripten_glUniform2i,Db:_emscripten_glUniform2iv,Cb:_emscripten_glUniform3f,Bb:_emscripten_glUniform3fv,Ab:_emscripten_glUniform3i,xb:_emscripten_glUniform3iv,wb:_emscripten_glUniform4f,vb:_emscripten_glUniform4fv,ub:_emscripten_glUniform4i,tb:_emscripten_glUniform4iv,sb:_emscripten_glUniformMatrix2fv,rb:_emscripten_glUniformMatrix3fv,qb:_emscripten_glUniformMatrix4fv,pb:_emscripten_glUseProgram,ob:_emscripten_glValidateProgram,mb:_emscripten_glVertexAttrib1f,lb:_emscripten_glVertexAttrib1fv,kb:_emscripten_glVertexAttrib2f,jb:_emscripten_glVertexAttrib2fv,ib:_emscripten_glVertexAttrib3f,hb:_emscripten_glVertexAttrib3fv,gb:_emscripten_glVertexAttrib4f,fb:_emscripten_glVertexAttrib4fv,ja:_emscripten_glVertexAttribDivisorANGLE,eb:_emscripten_glVertexAttribPointer,db:_emscripten_glViewport,n:_emscripten_has_asyncify,bb:_emscripten_memcpy_js,Ea:_emscripten_request_fullscreen_strategy,K:_emscripten_request_pointerlock,Ua:_emscripten_resize_heap,v:_emscripten_sample_gamepad_data,p:_emscripten_set_beforeunload_callback_on_thread,C:_emscripten_set_blur_callback_on_thread,e:_emscripten_set_canvas_element_size,k:_emscripten_set_element_css_size,D:_emscripten_set_focus_callback_on_thread,s:_emscripten_set_fullscreenchange_callback_on_thread,h:_emscripten_set_gamepadconnected_callback_on_thread,g:_emscripten_set_gamepaddisconnected_callback_on_thread,w:_emscripten_set_keydown_callback_on_thread,t:_emscripten_set_keypress_callback_on_thread,u:_emscripten_set_keyup_callback_on_thread,zb:_emscripten_set_main_loop,I:_emscripten_set_mousedown_callback_on_thread,G:_emscripten_set_mouseenter_callback_on_thread,F:_emscripten_set_mouseleave_callback_on_thread,J:_emscripten_set_mousemove_callback_on_thread,H:_emscripten_set_mouseup_callback_on_thread,x:_emscripten_set_pointerlockchange_callback_on_thread,r:_emscripten_set_resize_callback_on_thread,y:_emscripten_set_touchcancel_callback_on_thread,A:_emscripten_set_touchend_callback_on_thread,z:_emscripten_set_touchmove_callback_on_thread,B:_emscripten_set_touchstart_callback_on_thread,q:_emscripten_set_visibilitychange_callback_on_thread,E:_emscripten_set_wheel_callback_on_thread,Fa:_emscripten_set_window_title,m:_emscripten_sleep,Wa:_environ_get,Xa:_environ_sizes_get,j:_fd_close,_a:_fd_read,Na:_fd_seek,Za:_fd_write,Ta:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["Ad"])();var _malloc=a0=>(_malloc=wasmExports["Cd"])(a0);var _free=a0=>(_free=wasmExports["free"])(a0);var ___errno_location=()=>(___errno_location=wasmExports["Dd"])();var _RSDK_Initialize=Module["_RSDK_Initialize"]=()=>(_RSDK_Initialize=Module["_RSDK_Initialize"]=wasmExports["Ed"])();var _RSDK_Configure=Module["_RSDK_Configure"]=(a0,a1)=>(_RSDK_Configure=Module["_RSDK_Configure"]=wasmExports["Fd"])(a0,a1);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["Gd"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["Hd"])();var stackRestore=a0=>(stackRestore=wasmExports["Id"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["Jd"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["__cxa_increment_exception_refcount"])(a0);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["Kd"])(a0);var dynCall_iiji=Module["dynCall_iiji"]=(a0,a1,a2,a3,a4)=>(dynCall_iiji=Module["dynCall_iiji"]=wasmExports["Ld"])(a0,a1,a2,a3,a4);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["Md"])(a0,a1,a2,a3,a4);var dynCall_ji=Module["dynCall_ji"]=(a0,a1)=>(dynCall_ji=Module["dynCall_ji"]=wasmExports["Nd"])(a0,a1);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["Od"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["Pd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["Qd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){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();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/public/modules/RSDKv3.wasm b/public/modules/RSDKv3.wasm index 96ecc61949b677629a83ecf99442d1730b4f5664..662e5127433dab7ffdffe149ef35bd550380f7ed 100644 GIT binary patch delta 216242 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 z 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 delta 213121 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