From 11a1b31a4cf1bb3c911d4b74149bd8a0a8aff77f Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Tue, 5 Oct 2021 14:45:29 -0700 Subject: [PATCH] HDR aware MSAA resolve When supported and enabled, resolve MSAA using an HDR aware filter, which improves anti-aliasing quality. This is only supported with backends that support multi-sampled framebuffer-fetch. Currently, only Metal on iOS and GLES. Update remote ui. --- docs/remote/filament.js | 2 +- docs/remote/filament.wasm | Bin 4666850 -> 4671657 bytes filament/CMakeLists.txt | 1 + .../include/private/backend/DriverAPI.inc | 1 + filament/backend/src/metal/MetalDriver.mm | 4 ++ filament/backend/src/noop/NoopDriver.cpp | 4 ++ filament/backend/src/opengl/OpenGLDriver.cpp | 4 ++ filament/backend/src/vulkan/VulkanDriver.cpp | 4 ++ filament/src/PostProcessManager.cpp | 45 +++++++++++++ filament/src/PostProcessManager.h | 10 ++- filament/src/Renderer.cpp | 34 +++++++++- .../colorGrading/customResolveAsSubpass.mat | 59 ++++++++++++++++++ libs/viewer/src/SimpleViewer.cpp | 3 + 13 files changed, 166 insertions(+), 5 deletions(-) create mode 100644 filament/src/materials/colorGrading/customResolveAsSubpass.mat diff --git a/docs/remote/filament.js b/docs/remote/filament.js index b7545b9e66..73609f81da 100644 --- a/docs/remote/filament.js +++ b/docs/remote/filament.js @@ -6,7 +6,7 @@ var Filament = (function() { function(Filament) { Filament = Filament || {}; -var Module=typeof Filament!=="undefined"?Filament:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}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(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __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();TTY.init();callRuntimeCallbacks(__ATINIT__)}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()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="filament.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["Wb"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Yb"];addOnInit(Module["asm"]["Xb"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={3241624:function(){const options=window.filament_glOptions;const context=window.filament_glContext;const handle=GL.registerContext(context,options);window.filament_contextHandle=handle;GL.makeContextCurrent(handle)},3241838:function(){const handle=window.filament_contextHandle;GL.makeContextCurrent(handle)}};function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(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:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(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:function(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)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,65536);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(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:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(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:function(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:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(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:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(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:function(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:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(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:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(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:function(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(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(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:function(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(function(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:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(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:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";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=function(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);if(typeof Uint8Array!="undefined")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||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(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(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);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>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,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 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var tupleRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}return[]});return[]})}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}destructors.length=0;args.length=argCount;for(var i=1;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.includes("unsigned");registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_array(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){tupleRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),elements:[]}}function __embind_register_value_array_element(rawTupleType,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){tupleRegistrations[rawTupleType].elements.push({getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key])}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_get_heap_max(){return 2147483648}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i>0]=_getentropy.randomDevice()}return 0}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>1;var quadIndexes=new Uint16Array(numIndexes);var i=0,v=0;while(1){quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+1;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v+3;if(i>=numIndexes)break;v+=4}context.GLctx.bufferData(34963,quadIndexes,35044);context.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function getTempVertexBuffer(sizeBytes){var idx=GL.log2ceilLookup(sizeBytes);var ringbuffer=GL.currentContext.tempVertexBuffers1[idx];var nextFreeBufferIndex=GL.currentContext.tempVertexBufferCounters1[idx];GL.currentContext.tempVertexBufferCounters1[idx]=GL.currentContext.tempVertexBufferCounters1[idx]+1&GL.numTempVertexBuffersPerSize-1;var vbo=ringbuffer[nextFreeBufferIndex];if(vbo){return vbo}var prevVBO=GLctx.getParameter(34964);ringbuffer[nextFreeBufferIndex]=GLctx.createBuffer();GLctx.bindBuffer(34962,ringbuffer[nextFreeBufferIndex]);GLctx.bufferData(34962,1<>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},calcBufLength:function calcBufLength(size,type,stride,count){if(stride>0){return count*stride}var typeSize=GL.byteSizeByType[type-GL.byteSizeByTypeRoot];return size*typeSize*count},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function preDrawHandleClientVertexAttribBindings(count){GL.resetBufferBinding=false;for(var i=0;i=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBeginQuery(target,id){GLctx["beginQuery"](target,GL.queries[id])}function _glBindBuffer(target,buffer){if(target==34962){GLctx.currentArrayBufferBinding=buffer}else if(target==34963){GLctx.currentElementArrayBufferBinding=buffer}if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx["bindBufferRange"](target,index,GL.buffers[buffer],offset,ptrsize)}function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _glBindSampler(unit,sampler){GLctx["bindSampler"](unit,GL.samplers[sampler])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao]);var ibo=GLctx.getParameter(34965);GLctx.currentElementArrayBufferBinding=ibo?ibo.name|0:0}function _glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _glBufferData(target,size,data,usage){if(true){if(data){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glBufferSubData(target,offset,size,data){if(true){GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClearBufferfi(x0,x1,x2,x3){GLctx["clearBufferfi"](x0,x1,x2,x3)}function _glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _glClientWaitSync(sync,flags,timeoutLo,timeoutHi){return GLctx.clientWaitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _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;if(id==GLctx.currentArrayBufferBinding)GLctx.currentArrayBufferBinding=0;if(id==GLctx.currentElementArrayBufferBinding)GLctx.currentElementArrayBufferBinding=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _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}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _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}}function _glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=false;GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GL.preDrawHandleClientVertexAttribBindings(first+count);GLctx.drawArrays(mode,first,count);GL.postDrawHandleClientVertexAttribBindings()}var tempFixedLengthArray=[];function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _glDrawElements(mode,count,type,indices){var buf;if(!GLctx.currentElementArrayBufferBinding){var size=GL.calcBufLength(1,type,0,count);buf=GL.getTempIndexBuffer(size);GLctx.bindBuffer(34963,buf);GLctx.bufferSubData(34963,0,HEAPU8.subarray(indices,indices+size));indices=0}GL.preDrawHandleClientVertexAttribBindings(count);GLctx.drawElements(mode,count,type,indices);GL.postDrawHandleClientVertexAttribBindings(count);if(!GLctx.currentElementArrayBufferBinding){GLctx.bindBuffer(34963,null)}}function _glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=true;GLctx.enableVertexAttribArray(index)}function _glEndQuery(x0){GLctx["endQuery"](x0)}function _glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}else{return 0}}function _glFinish(){GLctx["finish"]()}function _glFlush(){GLctx["flush"]()}function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function 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 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3: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 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368: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}}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _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}function _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)}}function _glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _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)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{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}function _glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function 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;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>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}}}}function _glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _glHint(x0,x1){GLctx["hint"](x0,x1)}function _glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateFramebuffer"](target,list)}function _glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function emscriptenWebGLGetBufferBinding(target){switch(target){case 34962:target=34964;break;case 34963:target=34965;break;case 35051:target=35053;break;case 35052:target=35055;break;case 35982:target=35983;break;case 36662:target=36662;break;case 36663:target=36663;break;case 35345:target=35368;break}var buffer=GLctx.getParameter(target);if(buffer)return buffer.name|0;else return 0}function emscriptenWebGLValidateMapBufferTarget(target){switch(target){case 34962:case 34963:case 36662:case 36663:case 35051:case 35052:case 35882:case 35982:case 35345:return true;default:return false}}function _glMapBufferRange(target,offset,length,access){if(access!=26&&access!=10){err("glMapBufferRange is only supported when access is MAP_WRITE|INVALIDATE_BUFFER");return 0}if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glMapBufferRange");return 0}var mem=_malloc(length);if(!mem)return 0;GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)]={offset:offset,length:length,mem:mem,access:access};return mem}function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function webglGetUniformLocation(location){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)}}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _glUnmapBuffer(target){if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glUnmapBuffer");return 0}var buffer=emscriptenWebGLGetBufferBinding(target);var mapping=GL.mappedBuffers[buffer];if(!mapping){GL.recordError(1282);err("buffer was never mapped in glUnmapBuffer");return 0}GL.mappedBuffers[buffer]=null;if(!(mapping.access&16))if(true){GLctx.bufferSubData(target,mapping.offset,HEAPU8,mapping.mem,mapping.length)}else{GLctx.bufferSubData(target,mapping.offset,HEAPU8.subarray(mapping.mem,mapping.mem+mapping.length))}_free(mapping.mem);return 1}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _glVertexAttribIPointer(index,size,type,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=false;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribIPointer(index,size,type,stride,ptr)};return}cb.clientside=false;GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=normalized;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribPointer(index,size,type,normalized,stride,ptr)};return}cb.clientside=false;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _glWaitSync(sync,flags,timeoutLo,timeoutHi){GLctx.waitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _pthread_create(){return 6}function _pthread_join(){return 28}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}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.staticInit();InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));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 asmLibraryArg={"Ha":___sys_fcntl64,"xb":___sys_ioctl,"yb":___sys_open,"x":__embind_finalize_value_array,"u":__embind_finalize_value_object,"lb":__embind_register_bigint,"Bb":__embind_register_bool,"e":__embind_register_class,"k":__embind_register_class_class_function,"o":__embind_register_class_constructor,"a":__embind_register_class_function,"w":__embind_register_class_property,"Ab":__embind_register_emval,"h":__embind_register_enum,"b":__embind_register_enum_value,"Ja":__embind_register_float,"U":__embind_register_function,"D":__embind_register_integer,"z":__embind_register_memory_view,"Ka":__embind_register_std_string,"la":__embind_register_std_wstring,"y":__embind_register_value_array,"f":__embind_register_value_array_element,"v":__embind_register_value_object,"d":__embind_register_value_object_field,"Cb":__embind_register_void,"q":__emval_as,"g":__emval_decref,"r":__emval_get_property,"ja":__emval_incref,"H":__emval_new_cstring,"p":__emval_run_destructors,"s":__emval_take_value,"c":_abort,"qb":_clock_gettime,"Ga":_emscripten_asm_const_int,"vb":_emscripten_get_heap_max,"ob":_emscripten_memcpy_big,"pb":_emscripten_resize_heap,"tb":_environ_get,"ub":_environ_sizes_get,"ka":_fd_close,"zb":_fd_read,"kb":_fd_seek,"Ia":_fd_write,"rb":_getentropy,"i":_glActiveTexture,"R":_glAttachShader,"Ra":_glBeginQuery,"B":_glBindBuffer,"sa":_glBindBufferRange,"m":_glBindFramebuffer,"Pa":_glBindRenderbuffer,"S":_glBindSampler,"l":_glBindTexture,"G":_glBindVertexArray,"Sb":_glBlendEquationSeparate,"Rb":_glBlendFuncSeparate,"qa":_glBlitFramebuffer,"J":_glBufferData,"Y":_glBufferSubData,"Gb":_glClearBufferfi,"E":_glClearBufferfv,"Fb":_glClearBufferiv,"mb":_glClientWaitSync,"V":_glColorMask,"ba":_glCompileShader,"Ma":_glCompressedTexSubImage2D,"La":_glCompressedTexSubImage3D,"za":_glCreateProgram,"da":_glCreateShader,"ma":_glCullFace,"Aa":_glDeleteBuffers,"Q":_glDeleteFramebuffers,"$":_glDeleteProgram,"Za":_glDeleteQueries,"ua":_glDeleteRenderbuffers,"fa":_glDeleteSamplers,"M":_glDeleteShader,"F":_glDeleteSync,"K":_glDeleteTextures,"fb":_glDeleteVertexArrays,"Qb":_glDepthFunc,"Pb":_glDepthMask,"Xa":_glDepthRangef,"_":_glDetachShader,"j":_glDisable,"na":_glDisableVertexAttribArray,"Ta":_glDrawArrays,"Ua":_glDrawBuffers,"Va":_glDrawRangeElements,"C":_glEnable,"pa":_glEnableVertexAttribArray,"Vb":_glEndQuery,"Z":_glFenceSync,"Ca":_glFinish,"Da":_glFlush,"N":_glFramebufferRenderbuffer,"O":_glFramebufferTexture2D,"Qa":_glFramebufferTextureLayer,"Tb":_glFrontFace,"ia":_glGenBuffers,"P":_glGenFramebuffers,"_a":_glGenQueries,"ea":_glGenRenderbuffers,"ga":_glGenSamplers,"I":_glGenTextures,"eb":_glGenVertexArrays,"Ya":_glGenerateMipmap,"ha":_glGetError,"ib":_glGetFloatv,"n":_glGetIntegerv,"ab":_glGetProgramInfoLog,"xa":_glGetProgramiv,"Ub":_glGetQueryObjectuiv,"bb":_glGetShaderInfoLog,"aa":_glGetShaderiv,"T":_glGetString,"jb":_glGetStringi,"db":_glGetUniformBlockIndex,"wa":_glGetUniformLocation,"Sa":_glGetVertexAttribiv,"hb":_glHint,"ta":_glInvalidateFramebuffer,"W":_glIsEnabled,"ya":_glLinkProgram,"Eb":_glMapBufferRange,"gb":_glPixelStorei,"Wa":_glPolygonOffset,"ra":_glReadPixels,"Ib":_glRenderbufferStorage,"Jb":_glRenderbufferStorageMultisample,"Ba":_glSamplerParameterf,"t":_glSamplerParameteri,"Hb":_glScissor,"ca":_glShaderSource,"$a":_glTexParameterf,"A":_glTexParameteri,"Ob":_glTexStorage2D,"Nb":_glTexStorage3D,"Oa":_glTexSubImage2D,"Na":_glTexSubImage3D,"va":_glUniform1i,"cb":_glUniformBlockBinding,"Db":_glUnmapBuffer,"L":_glUseProgram,"Kb":_glVertexAttrib4f,"Lb":_glVertexAttribI4ui,"Mb":_glVertexAttribIPointer,"oa":_glVertexAttribPointer,"X":_glViewport,"nb":_glWaitSync,"Ea":_pthread_create,"wb":_pthread_join,"Fa":_setTempRet0,"sb":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["Xb"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["Zb"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["_b"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["$b"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["ac"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["bc"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["cc"]).apply(null,arguments)};var dynCall_iiij=Module["dynCall_iiij"]=function(){return(dynCall_iiij=Module["dynCall_iiij"]=Module["asm"]["dc"]).apply(null,arguments)};var dynCall_vij=Module["dynCall_vij"]=function(){return(dynCall_vij=Module["dynCall_vij"]=Module["asm"]["ec"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["fc"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["gc"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["hc"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["ic"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["jc"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); +var Module=typeof Filament!=="undefined"?Filament:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}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(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __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();TTY.init();callRuntimeCallbacks(__ATINIT__)}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()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="filament.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["Wb"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Yb"];addOnInit(Module["asm"]["Xb"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={3244616:function(){const options=window.filament_glOptions;const context=window.filament_glContext;const handle=GL.registerContext(context,options);window.filament_contextHandle=handle;GL.makeContextCurrent(handle)},3244830:function(){const handle=window.filament_contextHandle;GL.makeContextCurrent(handle)}};function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(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:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(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:function(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)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,65536);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(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:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(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:function(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:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(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:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(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:function(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:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(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:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(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:function(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(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(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:function(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(function(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:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(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:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";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=function(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);if(typeof Uint8Array!="undefined")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||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(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(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);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>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,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 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var tupleRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}return[]});return[]})}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}destructors.length=0;args.length=argCount;for(var i=1;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.includes("unsigned");registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_array(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){tupleRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),elements:[]}}function __embind_register_value_array_element(rawTupleType,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){tupleRegistrations[rawTupleType].elements.push({getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key])}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_get_heap_max(){return 2147483648}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i>0]=_getentropy.randomDevice()}return 0}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>1;var quadIndexes=new Uint16Array(numIndexes);var i=0,v=0;while(1){quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+1;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v+3;if(i>=numIndexes)break;v+=4}context.GLctx.bufferData(34963,quadIndexes,35044);context.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function getTempVertexBuffer(sizeBytes){var idx=GL.log2ceilLookup(sizeBytes);var ringbuffer=GL.currentContext.tempVertexBuffers1[idx];var nextFreeBufferIndex=GL.currentContext.tempVertexBufferCounters1[idx];GL.currentContext.tempVertexBufferCounters1[idx]=GL.currentContext.tempVertexBufferCounters1[idx]+1&GL.numTempVertexBuffersPerSize-1;var vbo=ringbuffer[nextFreeBufferIndex];if(vbo){return vbo}var prevVBO=GLctx.getParameter(34964);ringbuffer[nextFreeBufferIndex]=GLctx.createBuffer();GLctx.bindBuffer(34962,ringbuffer[nextFreeBufferIndex]);GLctx.bufferData(34962,1<>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},calcBufLength:function calcBufLength(size,type,stride,count){if(stride>0){return count*stride}var typeSize=GL.byteSizeByType[type-GL.byteSizeByTypeRoot];return size*typeSize*count},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function preDrawHandleClientVertexAttribBindings(count){GL.resetBufferBinding=false;for(var i=0;i=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBeginQuery(target,id){GLctx["beginQuery"](target,GL.queries[id])}function _glBindBuffer(target,buffer){if(target==34962){GLctx.currentArrayBufferBinding=buffer}else if(target==34963){GLctx.currentElementArrayBufferBinding=buffer}if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx["bindBufferRange"](target,index,GL.buffers[buffer],offset,ptrsize)}function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _glBindSampler(unit,sampler){GLctx["bindSampler"](unit,GL.samplers[sampler])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao]);var ibo=GLctx.getParameter(34965);GLctx.currentElementArrayBufferBinding=ibo?ibo.name|0:0}function _glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _glBufferData(target,size,data,usage){if(true){if(data){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glBufferSubData(target,offset,size,data){if(true){GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClearBufferfi(x0,x1,x2,x3){GLctx["clearBufferfi"](x0,x1,x2,x3)}function _glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _glClientWaitSync(sync,flags,timeoutLo,timeoutHi){return GLctx.clientWaitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _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;if(id==GLctx.currentArrayBufferBinding)GLctx.currentArrayBufferBinding=0;if(id==GLctx.currentElementArrayBufferBinding)GLctx.currentElementArrayBufferBinding=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _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}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _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}}function _glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=false;GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GL.preDrawHandleClientVertexAttribBindings(first+count);GLctx.drawArrays(mode,first,count);GL.postDrawHandleClientVertexAttribBindings()}var tempFixedLengthArray=[];function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _glDrawElements(mode,count,type,indices){var buf;if(!GLctx.currentElementArrayBufferBinding){var size=GL.calcBufLength(1,type,0,count);buf=GL.getTempIndexBuffer(size);GLctx.bindBuffer(34963,buf);GLctx.bufferSubData(34963,0,HEAPU8.subarray(indices,indices+size));indices=0}GL.preDrawHandleClientVertexAttribBindings(count);GLctx.drawElements(mode,count,type,indices);GL.postDrawHandleClientVertexAttribBindings(count);if(!GLctx.currentElementArrayBufferBinding){GLctx.bindBuffer(34963,null)}}function _glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=true;GLctx.enableVertexAttribArray(index)}function _glEndQuery(x0){GLctx["endQuery"](x0)}function _glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}else{return 0}}function _glFinish(){GLctx["finish"]()}function _glFlush(){GLctx["flush"]()}function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function 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 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3: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 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368: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}}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _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}function _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)}}function _glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _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)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{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}function _glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function 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;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>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}}}}function _glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _glHint(x0,x1){GLctx["hint"](x0,x1)}function _glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateFramebuffer"](target,list)}function _glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function emscriptenWebGLGetBufferBinding(target){switch(target){case 34962:target=34964;break;case 34963:target=34965;break;case 35051:target=35053;break;case 35052:target=35055;break;case 35982:target=35983;break;case 36662:target=36662;break;case 36663:target=36663;break;case 35345:target=35368;break}var buffer=GLctx.getParameter(target);if(buffer)return buffer.name|0;else return 0}function emscriptenWebGLValidateMapBufferTarget(target){switch(target){case 34962:case 34963:case 36662:case 36663:case 35051:case 35052:case 35882:case 35982:case 35345:return true;default:return false}}function _glMapBufferRange(target,offset,length,access){if(access!=26&&access!=10){err("glMapBufferRange is only supported when access is MAP_WRITE|INVALIDATE_BUFFER");return 0}if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glMapBufferRange");return 0}var mem=_malloc(length);if(!mem)return 0;GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)]={offset:offset,length:length,mem:mem,access:access};return mem}function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function webglGetUniformLocation(location){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)}}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _glUnmapBuffer(target){if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glUnmapBuffer");return 0}var buffer=emscriptenWebGLGetBufferBinding(target);var mapping=GL.mappedBuffers[buffer];if(!mapping){GL.recordError(1282);err("buffer was never mapped in glUnmapBuffer");return 0}GL.mappedBuffers[buffer]=null;if(!(mapping.access&16))if(true){GLctx.bufferSubData(target,mapping.offset,HEAPU8,mapping.mem,mapping.length)}else{GLctx.bufferSubData(target,mapping.offset,HEAPU8.subarray(mapping.mem,mapping.mem+mapping.length))}_free(mapping.mem);return 1}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _glVertexAttribIPointer(index,size,type,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=false;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribIPointer(index,size,type,stride,ptr)};return}cb.clientside=false;GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=normalized;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribPointer(index,size,type,normalized,stride,ptr)};return}cb.clientside=false;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _glWaitSync(sync,flags,timeoutLo,timeoutHi){GLctx.waitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _pthread_create(){return 6}function _pthread_join(){return 28}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}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.staticInit();InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));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 asmLibraryArg={"Ha":___sys_fcntl64,"xb":___sys_ioctl,"yb":___sys_open,"x":__embind_finalize_value_array,"u":__embind_finalize_value_object,"lb":__embind_register_bigint,"Bb":__embind_register_bool,"e":__embind_register_class,"k":__embind_register_class_class_function,"o":__embind_register_class_constructor,"a":__embind_register_class_function,"w":__embind_register_class_property,"Ab":__embind_register_emval,"h":__embind_register_enum,"b":__embind_register_enum_value,"Ja":__embind_register_float,"U":__embind_register_function,"D":__embind_register_integer,"z":__embind_register_memory_view,"Ka":__embind_register_std_string,"la":__embind_register_std_wstring,"y":__embind_register_value_array,"f":__embind_register_value_array_element,"v":__embind_register_value_object,"d":__embind_register_value_object_field,"Cb":__embind_register_void,"q":__emval_as,"g":__emval_decref,"r":__emval_get_property,"ja":__emval_incref,"H":__emval_new_cstring,"p":__emval_run_destructors,"s":__emval_take_value,"c":_abort,"qb":_clock_gettime,"Ga":_emscripten_asm_const_int,"vb":_emscripten_get_heap_max,"ob":_emscripten_memcpy_big,"pb":_emscripten_resize_heap,"tb":_environ_get,"ub":_environ_sizes_get,"ka":_fd_close,"zb":_fd_read,"kb":_fd_seek,"Ia":_fd_write,"rb":_getentropy,"i":_glActiveTexture,"R":_glAttachShader,"Ra":_glBeginQuery,"B":_glBindBuffer,"sa":_glBindBufferRange,"m":_glBindFramebuffer,"Pa":_glBindRenderbuffer,"S":_glBindSampler,"l":_glBindTexture,"G":_glBindVertexArray,"Sb":_glBlendEquationSeparate,"Rb":_glBlendFuncSeparate,"qa":_glBlitFramebuffer,"J":_glBufferData,"Y":_glBufferSubData,"Gb":_glClearBufferfi,"E":_glClearBufferfv,"Fb":_glClearBufferiv,"mb":_glClientWaitSync,"V":_glColorMask,"ba":_glCompileShader,"Ma":_glCompressedTexSubImage2D,"La":_glCompressedTexSubImage3D,"za":_glCreateProgram,"da":_glCreateShader,"ma":_glCullFace,"Aa":_glDeleteBuffers,"Q":_glDeleteFramebuffers,"$":_glDeleteProgram,"Za":_glDeleteQueries,"ua":_glDeleteRenderbuffers,"fa":_glDeleteSamplers,"M":_glDeleteShader,"F":_glDeleteSync,"K":_glDeleteTextures,"fb":_glDeleteVertexArrays,"Qb":_glDepthFunc,"Pb":_glDepthMask,"Xa":_glDepthRangef,"_":_glDetachShader,"j":_glDisable,"na":_glDisableVertexAttribArray,"Ta":_glDrawArrays,"Ua":_glDrawBuffers,"Va":_glDrawRangeElements,"C":_glEnable,"pa":_glEnableVertexAttribArray,"Vb":_glEndQuery,"Z":_glFenceSync,"Ca":_glFinish,"Da":_glFlush,"N":_glFramebufferRenderbuffer,"O":_glFramebufferTexture2D,"Qa":_glFramebufferTextureLayer,"Tb":_glFrontFace,"ia":_glGenBuffers,"P":_glGenFramebuffers,"_a":_glGenQueries,"ea":_glGenRenderbuffers,"ga":_glGenSamplers,"I":_glGenTextures,"eb":_glGenVertexArrays,"Ya":_glGenerateMipmap,"ha":_glGetError,"ib":_glGetFloatv,"n":_glGetIntegerv,"ab":_glGetProgramInfoLog,"xa":_glGetProgramiv,"Ub":_glGetQueryObjectuiv,"bb":_glGetShaderInfoLog,"aa":_glGetShaderiv,"T":_glGetString,"jb":_glGetStringi,"db":_glGetUniformBlockIndex,"wa":_glGetUniformLocation,"Sa":_glGetVertexAttribiv,"hb":_glHint,"ta":_glInvalidateFramebuffer,"W":_glIsEnabled,"ya":_glLinkProgram,"Eb":_glMapBufferRange,"gb":_glPixelStorei,"Wa":_glPolygonOffset,"ra":_glReadPixels,"Ib":_glRenderbufferStorage,"Jb":_glRenderbufferStorageMultisample,"Ba":_glSamplerParameterf,"t":_glSamplerParameteri,"Hb":_glScissor,"ca":_glShaderSource,"$a":_glTexParameterf,"A":_glTexParameteri,"Ob":_glTexStorage2D,"Nb":_glTexStorage3D,"Oa":_glTexSubImage2D,"Na":_glTexSubImage3D,"va":_glUniform1i,"cb":_glUniformBlockBinding,"Db":_glUnmapBuffer,"L":_glUseProgram,"Kb":_glVertexAttrib4f,"Lb":_glVertexAttribI4ui,"Mb":_glVertexAttribIPointer,"oa":_glVertexAttribPointer,"X":_glViewport,"nb":_glWaitSync,"Ea":_pthread_create,"wb":_pthread_join,"Fa":_setTempRet0,"sb":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["Xb"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["Zb"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["_b"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["$b"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["ac"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["bc"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["cc"]).apply(null,arguments)};var dynCall_iiij=Module["dynCall_iiij"]=function(){return(dynCall_iiij=Module["dynCall_iiij"]=Module["asm"]["dc"]).apply(null,arguments)};var dynCall_vij=Module["dynCall_vij"]=function(){return(dynCall_vij=Module["dynCall_vij"]=Module["asm"]["ec"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["fc"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["gc"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["hc"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["ic"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["jc"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); return Filament.ready diff --git a/docs/remote/filament.wasm b/docs/remote/filament.wasm index ad2d829b95a014d2000cfb703318ad65f077024f..938a609cd038684b90eee9ca73ebb8853a2c0f20 100755 GIT binary patch delta 203071 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 z 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­d-WZ|#w(OjxmI9FoP5w2DSvp!wa4eeK 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

  • Tfihv( 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 z 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 diff --git a/filament/CMakeLists.txt b/filament/CMakeLists.txt index 8a5139f2a4..46bc744fc2 100644 --- a/filament/CMakeLists.txt +++ b/filament/CMakeLists.txt @@ -176,6 +176,7 @@ set(MATERIAL_SRCS src/materials/fsr/fsr_rcas.mat src/materials/colorGrading/colorGrading.mat src/materials/colorGrading/colorGradingAsSubpass.mat + src/materials/colorGrading/customResolveAsSubpass.mat src/materials/defaultMaterial.mat src/materials/dof/dof.mat src/materials/dof/dofCoc.mat diff --git a/filament/backend/include/private/backend/DriverAPI.inc b/filament/backend/include/private/backend/DriverAPI.inc index 4a425f0f6c..33520778c3 100644 --- a/filament/backend/include/private/backend/DriverAPI.inc +++ b/filament/backend/include/private/backend/DriverAPI.inc @@ -291,6 +291,7 @@ DECL_DRIVER_API_SYNCHRONOUS_0(bool, isTextureSwizzleSupported) DECL_DRIVER_API_SYNCHRONOUS_N(bool, isTextureFormatMipmappable, backend::TextureFormat, format) DECL_DRIVER_API_SYNCHRONOUS_N(bool, isRenderTargetFormatSupported, backend::TextureFormat, format) DECL_DRIVER_API_SYNCHRONOUS_0(bool, isFrameBufferFetchSupported) +DECL_DRIVER_API_SYNCHRONOUS_0(bool, isFrameBufferFetchMultiSampleSupported) DECL_DRIVER_API_SYNCHRONOUS_0(bool, isFrameTimeSupported) DECL_DRIVER_API_SYNCHRONOUS_0(uint8_t, getMaxDrawBuffers) DECL_DRIVER_API_SYNCHRONOUS_0(math::float2, getClipSpaceParams) diff --git a/filament/backend/src/metal/MetalDriver.mm b/filament/backend/src/metal/MetalDriver.mm index 97e553c585..ac30da6bb6 100644 --- a/filament/backend/src/metal/MetalDriver.mm +++ b/filament/backend/src/metal/MetalDriver.mm @@ -657,6 +657,10 @@ bool MetalDriver::isFrameBufferFetchSupported() { #endif } +bool MetalDriver::isFrameBufferFetchMultiSampleSupported() { + return isFrameBufferFetchSupported(); +} + bool MetalDriver::isFrameTimeSupported() { // Frame time is calculated via hard fences, which are only available on iOS 12 and above. if (@available(iOS 12, *)) { diff --git a/filament/backend/src/noop/NoopDriver.cpp b/filament/backend/src/noop/NoopDriver.cpp index 8335cd131f..7ce518587d 100644 --- a/filament/backend/src/noop/NoopDriver.cpp +++ b/filament/backend/src/noop/NoopDriver.cpp @@ -160,6 +160,10 @@ bool NoopDriver::isFrameBufferFetchSupported() { return false; } +bool NoopDriver::isFrameBufferFetchMultiSampleSupported() { + return false; // TODO: add support for MS framebuffer_fetch +} + bool NoopDriver::isFrameTimeSupported() { return true; } diff --git a/filament/backend/src/opengl/OpenGLDriver.cpp b/filament/backend/src/opengl/OpenGLDriver.cpp index 40d2657b0f..122183cfc3 100644 --- a/filament/backend/src/opengl/OpenGLDriver.cpp +++ b/filament/backend/src/opengl/OpenGLDriver.cpp @@ -1553,6 +1553,10 @@ bool OpenGLDriver::isFrameBufferFetchSupported() { return gl.ext.EXT_shader_framebuffer_fetch; } +bool OpenGLDriver::isFrameBufferFetchMultiSampleSupported() { + return isFrameBufferFetchSupported(); +} + bool OpenGLDriver::isFrameTimeSupported() { return mFrameTimeSupported; } diff --git a/filament/backend/src/vulkan/VulkanDriver.cpp b/filament/backend/src/vulkan/VulkanDriver.cpp index 03ccdee49d..18322a772f 100644 --- a/filament/backend/src/vulkan/VulkanDriver.cpp +++ b/filament/backend/src/vulkan/VulkanDriver.cpp @@ -809,6 +809,10 @@ bool VulkanDriver::isFrameBufferFetchSupported() { return true; } +bool VulkanDriver::isFrameBufferFetchMultiSampleSupported() { + return false; +} + bool VulkanDriver::isFrameTimeSupported() { return true; } diff --git a/filament/src/PostProcessManager.cpp b/filament/src/PostProcessManager.cpp index 1ef76e82da..11da379edf 100644 --- a/filament/src/PostProcessManager.cpp +++ b/filament/src/PostProcessManager.cpp @@ -209,6 +209,7 @@ static const MaterialInfo sMaterialList[] = { { "bloomUpsample", MATERIAL(BLOOMUPSAMPLE) }, { "colorGrading", MATERIAL(COLORGRADING) }, { "colorGradingAsSubpass", MATERIAL(COLORGRADINGASSUBPASS) }, + { "customResolveAsSubpass", MATERIAL(CUSTOMRESOLVEASSUBPASS) }, { "dof", MATERIAL(DOF) }, { "dofCoc", MATERIAL(DOFCOC) }, { "dofCombine", MATERIAL(DOFCOMBINE) }, @@ -1914,6 +1915,49 @@ void PostProcessManager::colorGradingSubpass(DriverApi& driver, driver.draw(material.getPipelineState(variant), fullScreenRenderPrimitive); } + +void PostProcessManager::customResolvePrepareSubpass(DriverApi& driver, CustomResolveOp op) noexcept { + auto const& material = getPostProcessMaterial("customResolveAsSubpass"); + FMaterialInstance* mi = material.getMaterialInstance(); + mi->setParameter("direction", op == CustomResolveOp::COMPRESS ? 1.0f : -1.0f), + mi->commit(driver); +} + +void PostProcessManager::customResolveSubpass(DriverApi& driver) noexcept { + FEngine& engine = mEngine; + Handle const& fullScreenRenderPrimitive = engine.getFullScreenRenderPrimitive(); + auto const& material = getPostProcessMaterial("customResolveAsSubpass"); + // the UBO has been set and committed in colorGradingPrepareSubpass() + FMaterialInstance* mi = material.getMaterialInstance(); + mi->use(driver); + driver.nextSubpass(); + driver.draw(material.getPipelineState(), fullScreenRenderPrimitive); +} + +FrameGraphId PostProcessManager::customResolveUncompressPass(FrameGraph& fg, + FrameGraphId inout) noexcept { + struct UncompressData { + FrameGraphId inout; + }; + auto& detonemapPass = fg.addPass("Uncompress Pass", + [&](FrameGraph::Builder& builder, auto& data) { + data.inout = builder.read(inout, FrameGraphTexture::Usage::SUBPASS_INPUT); + data.inout = builder.write(data.inout, FrameGraphTexture::Usage::COLOR_ATTACHMENT); + builder.declareRenderPass("Uncompress target", { + .attachments = { .color = { data.inout }} + }); + }, + [=](FrameGraphResources const& resources, auto const& data, DriverApi& driver) { + customResolvePrepareSubpass(driver, CustomResolveOp::UNCOMPRESS); + auto out = resources.getRenderPassInfo(); + out.params.subpassMask = 1; + driver.beginRenderPass(out.target, out.params); + customResolveSubpass(driver); + driver.endRenderPass(); + }); + return detonemapPass->inout; +} + FrameGraphId PostProcessManager::colorGrading(FrameGraph& fg, FrameGraphId input, FColorGrading const* colorGrading, ColorGradingConfig const& colorGradingConfig, @@ -2625,4 +2669,5 @@ FrameGraphId PostProcessManager::vsmMipmapPass(FrameGraph& fg return depthMipmapPass->in; } + } // namespace filament diff --git a/filament/src/PostProcessManager.h b/filament/src/PostProcessManager.h index c14bdb543e..111d235416 100644 --- a/filament/src/PostProcessManager.h +++ b/filament/src/PostProcessManager.h @@ -50,6 +50,7 @@ class PostProcessManager { public: struct ColorGradingConfig { bool asSubpass{}; + bool customResolve{}; bool translucent{}; bool fxaa{}; bool dithering{}; @@ -107,7 +108,14 @@ public: void colorGradingSubpass(backend::DriverApi& driver, ColorGradingConfig const& colorGradingConfig) noexcept; - // Anti-aliasing + // custom MSAA resolve as subpass + enum class CustomResolveOp { COMPRESS, UNCOMPRESS }; + void customResolvePrepareSubpass(backend::DriverApi& driver, CustomResolveOp op) noexcept; + void customResolveSubpass(backend::DriverApi& driver) noexcept; + FrameGraphId customResolveUncompressPass(FrameGraph& fg, + FrameGraphId inout) noexcept; + + // Anti-aliasing FrameGraphId fxaa(FrameGraph& fg, FrameGraphId input, backend::TextureFormat outFormat, bool translucent) noexcept; diff --git a/filament/src/Renderer.cpp b/filament/src/Renderer.cpp index b0023ef312..61c799d349 100644 --- a/filament/src/Renderer.cpp +++ b/filament/src/Renderer.cpp @@ -385,8 +385,14 @@ void FRenderer::renderJob(ArenaScope& arena, FView& view) { const PostProcessManager::ColorGradingConfig colorGradingConfig{ .asSubpass = hasColorGrading && - msaaSampleCount <= 1 && !bloomOptions.enabled && !dofOptions.enabled && !taaOptions.enabled && + msaaSampleCount <= 1 && + !bloomOptions.enabled && !dofOptions.enabled && !taaOptions.enabled && driver.isFrameBufferFetchSupported(), + .customResolve = + msaaOptions.customResolve && + msaaSampleCount > 1 && + hasColorGrading && + driver.isFrameBufferFetchMultiSampleSupported(), .translucent = needsAlphaChannel, .fxaa = hasFXAA, .dithering = hasDithering, @@ -500,7 +506,11 @@ void FRenderer::renderJob(ArenaScope& arena, FView& view) { ppm.colorGradingPrepareSubpass(driver, colorGrading, colorGradingConfig, vignetteOptions, config.svp.width, config.svp.height); + } else if (colorGradingConfig.customResolve) { + ppm.customResolvePrepareSubpass(driver, + PostProcessManager::CustomResolveOp::COMPRESS); } + // We use a framegraph pass to wait for froxelization to finish (so it can be done // in parallel with .compile() if (jobFroxelize) { @@ -520,9 +530,17 @@ void FRenderer::renderJob(ArenaScope& arena, FView& view) { pass.appendCustomCommand( RenderPass::Pass::BLENDED, RenderPass::CustomCommand::EPILOG, - 0, [&ppm, &driver, colorGradingConfigForColor](){ + 0, [&ppm, &driver, colorGradingConfigForColor]() { ppm.colorGradingSubpass(driver, colorGradingConfigForColor); }); + } if (colorGradingConfig.customResolve) { + // append custom resolve subpass after all other passes + pass.appendCustomCommand( + RenderPass::Pass::BLENDED, + RenderPass::CustomCommand::EPILOG, + 0, [&ppm, &driver]() { + ppm.customResolveSubpass(driver); + }); } // the color pass itself + color-grading as subpass if needed @@ -535,6 +553,14 @@ void FRenderer::renderJob(ArenaScope& arena, FView& view) { colorPassOutput = refractionPass(fg, config, colorGradingConfigForColor, pass, view); } + if (colorGradingConfig.customResolve) { + // TODO: we have to "uncompress" (i.e. detonemap) the color buffer here because it's used + // by many other passes (Bloom, TAA, DoF, etc...). We could make this more + // efficient by using ARM_shader_framebuffer_fetch. We use a load/store (i.e. + // subpass) here because it's more convenient. + colorPassOutput = ppm.customResolveUncompressPass(fg, colorPassOutput); + } + FrameGraphId input = colorPassOutput; fg.addTrivialSideEffectPass("Finish Color Passes", [&view](DriverApi& driver) { // Unbind SSAO sampler, b/c the FrameGraph will delete the texture at the end of the pass. @@ -848,6 +874,8 @@ FrameGraphId FRenderer::colorPass(FrameGraph& fg, const char* }); data.color = builder.read(data.color, FrameGraphTexture::Usage::SUBPASS_INPUT); data.output = builder.write(data.output, FrameGraphTexture::Usage::COLOR_ATTACHMENT); + } else if (colorGradingConfig.customResolve) { + data.color = builder.read(data.color, FrameGraphTexture::Usage::SUBPASS_INPUT); } // We set a "read" constraint on these attachments here because we need to preserve them @@ -903,7 +931,7 @@ FrameGraphId FRenderer::colorPass(FrameGraph& fg, const char* } } - if (colorGradingConfig.asSubpass) { + if (colorGradingConfig.asSubpass || colorGradingConfig.customResolve) { out.params.subpassMask = 1; } passExecutor.execute(resources.getPassName(), out.target, out.params); diff --git a/filament/src/materials/colorGrading/customResolveAsSubpass.mat b/filament/src/materials/colorGrading/customResolveAsSubpass.mat new file mode 100644 index 0000000000..243600346d --- /dev/null +++ b/filament/src/materials/colorGrading/customResolveAsSubpass.mat @@ -0,0 +1,59 @@ +material { + name : customResolveAsSubpass, + parameters : [ + { + // whether to tonemap (compress) or detonemap (uncompress) + // set to +1.0 to tonemap or -1.0 to detonemap + type : float, + name : direction, + precision: low + }, + { + type : subpassInput, + format : float, + precision : medium, + name : colorBuffer, + } + ], + outputs : [ + { + name : tonemappedOutput, + target : color, + type : float4, + location : 0 + } + ], + variables : [ + vertex + ], + depthWrite : false, + depthCulling : false, + domain: postprocess, + framebufferFetch: true +} + +vertex { + void postProcessVertex(inout PostProcessVertexInputs postProcess) { + postProcess.vertex.xy = postProcess.normalizedUV; + } +} + +fragment { + + void dummy(){} + +vec4 resolveFragment() { +#if POST_PROCESS_OPAQUE + return vec4(subpassLoad(materialParams_colorBuffer).rgb, 1.0); +#else + return subpassLoad(materialParams_colorBuffer); +#endif +} + +void postProcess(inout PostProcessInputs postProcess) { + vec4 color = resolveFragment(); + float w = 1.0 / (1.0 + materialParams.direction * max3(color.rgb)); + postProcess.tonemappedOutput = color * w; +} + +} diff --git a/libs/viewer/src/SimpleViewer.cpp b/libs/viewer/src/SimpleViewer.cpp index eecf3dc25c..e491ce0683 100644 --- a/libs/viewer/src/SimpleViewer.cpp +++ b/libs/viewer/src/SimpleViewer.cpp @@ -689,6 +689,9 @@ void SimpleViewer::updateUserInterface() { ImGui::Unindent(); ImGui::Checkbox("MSAA 4x", &mSettings.view.msaa.enabled); + ImGui::Indent(); + ImGui::Checkbox("Custom resolve", &mSettings.view.msaa.customResolve); + ImGui::Unindent(); ImGui::Checkbox("SSAO", &mSettings.view.ssao.enabled); if (ImGui::CollapsingHeader("SSAO Options")) {