From 404a891eca5c5a26740922c3d6f547795c0f9bc9 Mon Sep 17 00:00:00 2001 From: Zeqiang Li Date: Wed, 28 Sep 2022 09:40:40 +0800 Subject: [PATCH] update wgpu wasm/js (#298) Co-authored-by: Zeqiang Li --- emscripten/webgpu/webgpu_wasm.js | 2 +- emscripten/webgpu/webgpu_wasm.wasm | Bin 314474 -> 314466 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/emscripten/webgpu/webgpu_wasm.js b/emscripten/webgpu/webgpu_wasm.js index 219ee598..973bfbb9 100644 --- a/emscripten/webgpu/webgpu_wasm.js +++ b/emscripten/webgpu/webgpu_wasm.js @@ -6,7 +6,7 @@ var wasmDevice = (() => { function(wasmDevice) { wasmDevice = wasmDevice || {}; -var Module=typeof wasmDevice!="undefined"?wasmDevice:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;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.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var POINTER_SIZE=4;var tempRet0=0;var setTempRet0=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(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __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;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 addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="webgpu_wasm.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){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)})}}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"]["_a"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ab"];addOnInit(Module["asm"]["$a"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&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{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[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}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{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: "'+fieldName+'"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>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 finalizationRegistry=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 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)}var registeredPointers={};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}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;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 attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.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}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(){}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 "'+embindRepr(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 "'+embindRepr(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.toHandle(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 "'+embindRepr(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 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)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;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])}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);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]=()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){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;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(humanName+' with invalid "this": '+this_)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(humanName+' incompatible with "this" of type '+this_.constructor.name)}if(!this_.$$.ptr){throwBindingError("cannot call emscripten binding method "+humanName+" on deleted object")}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=classType.name+"."+fieldName;var desc={get:function(){throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])}}else{desc.set=v=>{throwBindingError(humanName+" is a read-only property")}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&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{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function embindRepr(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){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}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=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"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 payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+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,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+i]=charCode}}else{for(var i=0;i>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 __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>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_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 requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAPU32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2],"parameter "+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_new_array(){return Emval.toHandle([])}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value}function __emval_take_value(type,arg){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var WebGPU={initManagers:function(){if(WebGPU.mgrDevice)return;function Manager(){this.objects={};this.nextId=1;this.create=function(object,wrapper){wrapper=wrapper||{};var id=this.nextId++;wrapper.refcount=1;wrapper.object=object;this.objects[id]=wrapper;return id};this.get=function(id){if(!id)return undefined;var o=this.objects[id];return o.object};this.reference=function(id){var o=this.objects[id];o.refcount++};this.release=function(id){var o=this.objects[id];o.refcount--;if(o.refcount<=0){delete this.objects[id]}}}WebGPU.mgrSurface=WebGPU.mgrSurface||new Manager;WebGPU.mgrSwapChain=WebGPU.mgrSwapChain||new Manager;WebGPU.mgrAdapter=WebGPU.mgrAdapter||new Manager;WebGPU.mgrDevice=WebGPU.mgrDevice||new Manager;WebGPU.mgrQueue=WebGPU.mgrQueue||new Manager;WebGPU.mgrCommandBuffer=WebGPU.mgrCommandBuffer||new Manager;WebGPU.mgrCommandEncoder=WebGPU.mgrCommandEncoder||new Manager;WebGPU.mgrRenderPassEncoder=WebGPU.mgrRenderPassEncoder||new Manager;WebGPU.mgrComputePassEncoder=WebGPU.mgrComputePassEncoder||new Manager;WebGPU.mgrBindGroup=WebGPU.mgrBindGroup||new Manager;WebGPU.mgrBuffer=WebGPU.mgrBuffer||new Manager;WebGPU.mgrSampler=WebGPU.mgrSampler||new Manager;WebGPU.mgrTexture=WebGPU.mgrTexture||new Manager;WebGPU.mgrTextureView=WebGPU.mgrTextureView||new Manager;WebGPU.mgrQuerySet=WebGPU.mgrQuerySet||new Manager;WebGPU.mgrBindGroupLayout=WebGPU.mgrBindGroupLayout||new Manager;WebGPU.mgrPipelineLayout=WebGPU.mgrPipelineLayout||new Manager;WebGPU.mgrRenderPipeline=WebGPU.mgrRenderPipeline||new Manager;WebGPU.mgrComputePipeline=WebGPU.mgrComputePipeline||new Manager;WebGPU.mgrShaderModule=WebGPU.mgrShaderModule||new Manager;WebGPU.mgrRenderBundleEncoder=WebGPU.mgrRenderBundleEncoder||new Manager;WebGPU.mgrRenderBundle=WebGPU.mgrRenderBundle||new Manager},makeColor:function(ptr){return{"r":HEAPF64[ptr>>3],"g":HEAPF64[ptr+8>>3],"b":HEAPF64[ptr+16>>3],"a":HEAPF64[ptr+24>>3]}},makeExtent3D:function(ptr){return{"width":HEAPU32[ptr>>2],"height":HEAPU32[ptr+4>>2],"depthOrArrayLayers":HEAPU32[ptr+8>>2]}},makeOrigin3D:function(ptr){return{"x":HEAPU32[ptr>>2],"y":HEAPU32[ptr+4>>2],"z":HEAPU32[ptr+8>>2]}},makeImageCopyTexture:function(ptr){return{"texture":WebGPU.mgrTexture.get(HEAPU32[ptr+4>>2]),"mipLevel":HEAPU32[ptr+8>>2],"origin":WebGPU.makeOrigin3D(ptr+12),"aspect":WebGPU.TextureAspect[HEAPU32[ptr+24>>2]]}},makeTextureDataLayout:function(ptr){var bytesPerRow=HEAPU32[ptr+16>>2];var rowsPerImage=HEAPU32[ptr+20>>2];return{"offset":HEAPU32[ptr+4+8>>2]*4294967296+HEAPU32[ptr+8>>2],"bytesPerRow":bytesPerRow===4294967295?undefined:bytesPerRow,"rowsPerImage":rowsPerImage===4294967295?undefined:rowsPerImage}},makeImageCopyBuffer:function(ptr){var layoutPtr=ptr+8;var bufferCopyView=WebGPU.makeTextureDataLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.mgrBuffer.get(HEAPU32[ptr+32>>2]);return bufferCopyView},makePipelineConstants:function(constantCount,constantsPtr){if(!constantCount)return;var constants={};for(var i=0;i>2]);constants[key]=HEAPF64[entryPtr+8>>3]}return constants},makeProgrammableStageDescriptor:function(ptr){if(!ptr)return undefined;return{"module":WebGPU.mgrShaderModule.get(HEAPU32[ptr+4>>2]),"entryPoint":UTF8ToString(HEAPU32[ptr+8>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[ptr+12>>2],HEAPU32[ptr+16>>2])}},DeviceLostReason:{undefined:0,destroyed:1},PreferredFormat:{rgba8unorm:18,bgra8unorm:23},AddressMode:["repeat","mirror-repeat","clamp-to-edge"],BlendFactor:["zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant"],BlendOperation:["add","subtract","reverse-subtract","min","max"],BufferBindingType:[,"uniform","storage","read-only-storage"],CompareFunction:[,"never","less","less-equal","greater","greater-equal","equal","not-equal","always"],CompilationInfoRequestStatus:["success","error","device-lost","unknown"],ComputePassTimestampLocation:["beginning","end"],CullMode:["none","front","back"],ErrorFilter:["validation","out-of-memory"],FeatureName:{0:undefined,1:"depth-clip-control",2:"depth24unorm-stencil8",3:"depth32float-stencil8",4:"timestamp-query",5:"pipeline-statistics-query",6:"texture-compression-bc",7:"texture-compression-etc2",8:"texture-compression-astc",9:"indirect-first-instance",1e3:"depth-clamping"},FilterMode:["nearest","linear"],FrontFace:["ccw","cw"],IndexFormat:[,"uint16","uint32"],LoadOp:[,"clear","load"],PipelineStatisticName:["vertex-shader-invocations","clipper-invocations","clipper-primitives-out","fragment-shader-invocations","compute-shader-invocations"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb"],PrimitiveTopology:["point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:["occlusion","pipeline-statistics","timestamp"],RenderPassTimestampLocation:["beginning","end"],SamplerBindingType:[,"filtering","non-filtering","comparison"],StencilOperation:["keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,"write-only"],StoreOp:[,"store","discard"],TextureAspect:["all","stencil-only","depth-only"],TextureComponentType:["float","sint","uint","depth-comparison"],TextureDimension:["1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth24unorm-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],VertexFormat:[,"uint8x2","uint8x4","sint8x2","sint8x4","unorm8x2","unorm8x4","snorm8x2","snorm8x4","uint16x2","uint16x4","sint16x2","sint16x4","unorm16x2","unorm16x4","snorm16x2","snorm16x4","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4"],VertexStepMode:["vertex","instance"],FeatureNameString2Enum:{undefined:"0","depth-clip-control":"1","depth24unorm-stencil8":"2","depth32float-stencil8":"3","timestamp-query":"4","pipeline-statistics-query":"5","texture-compression-bc":"6","texture-compression-etc2":"7","texture-compression-astc":"8","indirect-first-instance":"9","depth-clamping":"1000"}};function _emscripten_webgpu_get_device(){var device=Module["preinitializedWebGPUDevice"];var deviceWrapper={queueId:WebGPU.mgrQueue.create(device["queue"])};return WebGPU.mgrDevice.create(device,deviceWrapper)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var SYSCALLS={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}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function _setTempRet0(val){setTempRet0(val)}function _wgpuAdapterGetProperties(adapterId,properties){HEAP32[properties+4>>2]=0;HEAP32[properties+8>>2]=0;HEAP32[properties+12>>2]=0;HEAP32[properties+16>>2]=0;HEAP32[properties+20>>2]=3;HEAP32[properties+24>>2]=1}function _wgpuAdapterHasFeature(adapterId,featureEnumValue){var adapter=WebGPU.mgrAdapter.get(adapterId);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}function _wgpuAdapterRelease(id){WebGPU.mgrAdapter.release(id)}function _wgpuBindGroupRelease(id){WebGPU.mgrBindGroup.release(id)}function _wgpuBufferDestroy(bufferId){WebGPU.mgrBuffer.get(bufferId)["destroy"]()}function _wgpuBufferGetMappedRange(bufferId,offset,size){var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(size===0)warnOnce("getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE");size=size>>>0;if(size===4294967295)size=undefined;if(bufferWrapper.mapMode!==2){return 0}var mapped;try{mapped=bufferWrapper.object["getMappedRange"](offset,size)}catch(ex){return 0}var data=_malloc(mapped.byteLength);HEAPU8.fill(0,data,mapped.byteLength);bufferWrapper.onUnmap.push(function(){new Uint8Array(mapped).set(HEAPU8.subarray(data,data+mapped.byteLength));_free(data)});return data}function _wgpuBufferRelease(id){WebGPU.mgrBuffer.release(id)}function _wgpuBufferUnmap(bufferId){var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(!bufferWrapper.onUnmap){return}for(var i=0;i>2]),"queryIndex":HEAPU32[twPtr+4>>2],"location":WebGPU.ComputePassTimestampLocation[HEAPU32[twPtr+8>>2]]}}function makeComputePassTimestampWrites(count,twPtr){var timestampWrites=[];for(var i=0;i>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var timestampWriteCount=HEAPU32[descriptor+8>>2];if(timestampWriteCount){desc["timestampWrites"]=makeComputePassTimestampWrites(timestampWriteCount,HEAPU32[descriptor+12>>2])}}var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrComputePassEncoder.create(commandEncoder["beginComputePass"](desc))}function _wgpuCommandEncoderBeginRenderPass(encoderId,descriptor){function makeColorAttachment(caPtr){var viewPtr=HEAPU32[caPtr>>2];if(viewPtr===0){return undefined}var loadOpInt=HEAPU32[caPtr+8>>2];var storeOpInt=HEAPU32[caPtr+12>>2];var clearValue=WebGPU.makeColor(caPtr+16);return{"view":WebGPU.mgrTextureView.get(viewPtr),"resolveTarget":WebGPU.mgrTextureView.get(HEAPU32[caPtr+4>>2]),"clearValue":clearValue,"loadOp":WebGPU.LoadOp[loadOpInt],"storeOp":WebGPU.StoreOp[storeOpInt]}}function makeColorAttachments(count,caPtr){var attachments=[];for(var i=0;i>2]),"depthClearValue":HEAPF32[dsaPtr+12>>2],"depthLoadOp":WebGPU.LoadOp[HEAPU32[dsaPtr+4>>2]],"depthStoreOp":WebGPU.StoreOp[HEAPU32[dsaPtr+8>>2]],"depthReadOnly":HEAP8[dsaPtr+16>>0]!==0,"stencilClearValue":HEAPU32[dsaPtr+28>>2],"stencilLoadOp":WebGPU.LoadOp[HEAPU32[dsaPtr+20>>2]],"stencilStoreOp":WebGPU.StoreOp[HEAPU32[dsaPtr+24>>2]],"stencilReadOnly":HEAP8[dsaPtr+32>>0]!==0}}function makeRenderPassTimestampWrite(twPtr){return{"querySet":WebGPU.mgrQuerySet.get(HEAPU32[twPtr>>2]),"queryIndex":HEAPU32[twPtr+4>>2],"location":WebGPU.RenderPassTimestampLocation[HEAPU32[twPtr+8>>2]]}}function makeRenderPassTimestampWrites(count,twPtr){var timestampWrites=[];for(var i=0;i>2],HEAPU32[descriptor+12>>2]),"depthStencilAttachment":makeDepthStencilAttachment(HEAPU32[descriptor+16>>2]),"occlusionQuerySet":WebGPU.mgrQuerySet.get(HEAPU32[descriptor+20>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var timestampWriteCount=HEAPU32[descriptor+24>>2];if(timestampWriteCount){desc["timestampWrites"]=makeRenderPassTimestampWrites(timestampWriteCount,HEAPU32[descriptor+28>>2])}return desc}var desc=makeRenderPassDescriptor(descriptor);var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrRenderPassEncoder.create(commandEncoder["beginRenderPass"](desc))}function _wgpuCommandEncoderCopyBufferToBuffer(encoderId,srcId,srcOffset_low,srcOffset_high,dstId,dstOffset_low,dstOffset_high,size_low,size_high){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var src=WebGPU.mgrBuffer.get(srcId);var dst=WebGPU.mgrBuffer.get(dstId);commandEncoder["copyBufferToBuffer"](src,srcOffset_high*4294967296+srcOffset_low,dst,dstOffset_high*4294967296+dstOffset_low,size_high*4294967296+size_low)}function _wgpuCommandEncoderCopyBufferToTexture(encoderId,srcPtr,dstPtr,copySizePtr){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder["copyBufferToTexture"](WebGPU.makeImageCopyBuffer(srcPtr),WebGPU.makeImageCopyTexture(dstPtr),copySize)}function _wgpuCommandEncoderCopyTextureToTexture(encoderId,srcPtr,dstPtr,copySizePtr){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder["copyTextureToTexture"](WebGPU.makeImageCopyTexture(srcPtr),WebGPU.makeImageCopyTexture(dstPtr),copySize)}function _wgpuCommandEncoderFinish(encoderId){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrCommandBuffer.create(commandEncoder["finish"]())}function _wgpuCommandEncoderRelease(id){WebGPU.mgrCommandEncoder.release(id)}function _wgpuComputePassEncoderDispatchWorkgroups(passId,x,y,z){var pass=WebGPU.mgrComputePassEncoder.get(passId);if(pass["dispatchWorkgroups"]){pass["dispatchWorkgroups"](x,y,z)}else{pass["dispatch"](x,y,z)}}function _wgpuComputePassEncoderDispatchWorkgroupsIndirect(passId,indirectBufferId,indirectOffset_low,indirectOffset_high){var indirectBuffer=WebGPU.mgrBuffer.get(indirectBufferId);var indirectOffset=indirectOffset_high*4294967296+indirectOffset_low;var pass=WebGPU.mgrComputePassEncoder.get(passId);if(pass["dispatchWorkgroupsIndirect"]){pass["dispatchWorkgroupsIndirect"](indirectBuffer,indirectOffset)}else{pass["dispatchIndirect"](indirectBuffer,indirectOffset)}}function _wgpuComputePassEncoderEnd(passId){var pass=WebGPU.mgrComputePassEncoder.get(passId);pass["end"]()}function _wgpuComputePassEncoderRelease(id){WebGPU.mgrComputePassEncoder.release(id)}function _wgpuComputePassEncoderSetBindGroup(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr){var pass=WebGPU.mgrComputePassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass["setBindGroup"](groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass["setBindGroup"](groupIndex,group,offsets)}}function _wgpuComputePassEncoderSetPipeline(passId,pipelineId){var pass=WebGPU.mgrComputePassEncoder.get(passId);var pipeline=WebGPU.mgrComputePipeline.get(pipelineId);pass["setPipeline"](pipeline)}function _wgpuComputePipelineRelease(id){WebGPU.mgrComputePipeline.release(id)}function _wgpuDeviceCreateBindGroup(deviceId,descriptor){function makeEntry(entryPtr){var bufferId=HEAPU32[entryPtr+8>>2];var samplerId=HEAPU32[entryPtr+32>>2];var textureViewId=HEAPU32[entryPtr+36>>2];var binding=HEAPU32[entryPtr+4>>2];if(bufferId){var size_low=HEAPU32[entryPtr+24>>2];var size_high=HEAPU32[entryPtr+28>>2];var size=size_high===-1&&size_low===-1?undefined:size_high*4294967296+size_low;return{"binding":binding,"resource":{"buffer":WebGPU.mgrBuffer.get(bufferId),"offset":HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2],"size":size}}}else if(samplerId){return{"binding":binding,"resource":WebGPU.mgrSampler.get(samplerId)}}else{return{"binding":binding,"resource":WebGPU.mgrTextureView.get(textureViewId)}}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2]),"entries":makeEntries(HEAPU32[descriptor+12>>2],HEAPU32[descriptor+16>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroup.create(device["createBindGroup"](desc))}function _wgpuDeviceCreateBindGroupLayout(deviceId,descriptor){function makeBufferEntry(entryPtr){var typeInt=HEAPU32[entryPtr+4>>2];if(!typeInt)return undefined;return{"type":WebGPU.BufferBindingType[typeInt],"hasDynamicOffset":HEAP8[entryPtr+8>>0]!==0,"minBindingSize":HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2]}}function makeSamplerEntry(entryPtr){var typeInt=HEAPU32[entryPtr+4>>2];if(!typeInt)return undefined;return{"type":WebGPU.SamplerBindingType[typeInt]}}function makeTextureEntry(entryPtr){var sampleTypeInt=HEAPU32[entryPtr+4>>2];if(!sampleTypeInt)return undefined;return{"sampleType":WebGPU.TextureSampleType[sampleTypeInt],"viewDimension":WebGPU.TextureViewDimension[HEAPU32[entryPtr+8>>2]],"multisampled":HEAP8[entryPtr+12>>0]!==0}}function makeStorageTextureEntry(entryPtr){var accessInt=HEAPU32[entryPtr+4>>2];if(!accessInt)return undefined;return{"access":WebGPU.StorageTextureAccess[accessInt],"format":WebGPU.TextureFormat[HEAPU32[entryPtr+8>>2]],"viewDimension":WebGPU.TextureViewDimension[HEAPU32[entryPtr+12>>2]]}}function makeEntry(entryPtr){return{"binding":HEAPU32[entryPtr+4>>2],"visibility":HEAPU32[entryPtr+8>>2],"buffer":makeBufferEntry(entryPtr+16),"sampler":makeSamplerEntry(entryPtr+40),"texture":makeTextureEntry(entryPtr+48),"storageTexture":makeStorageTextureEntry(entryPtr+64)}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2],HEAPU32[descriptor+12>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroupLayout.create(device["createBindGroupLayout"](desc))}function _wgpuDeviceCreateBuffer(deviceId,descriptor){var mappedAtCreation=HEAP8[descriptor+24>>0]!==0;var desc={"label":undefined,"usage":HEAPU32[descriptor+8>>2],"size":HEAPU32[descriptor+4+16>>2]*4294967296+HEAPU32[descriptor+16>>2],"mappedAtCreation":mappedAtCreation};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);var bufferWrapper={};var id=WebGPU.mgrBuffer.create(device["createBuffer"](desc),bufferWrapper);if(mappedAtCreation){bufferWrapper.mapMode=2;bufferWrapper.onUnmap=[]}return id}function _wgpuDeviceCreateCommandEncoder(deviceId,descriptor){var desc;if(descriptor){desc={"label":undefined};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrCommandEncoder.create(device["createCommandEncoder"](desc))}function _wgpuDeviceCreateComputePipeline(deviceId,descriptor){var desc={"label":undefined,"layout":WebGPU.mgrPipelineLayout.get(HEAPU32[descriptor+8>>2]),"compute":WebGPU.makeProgrammableStageDescriptor(descriptor+12)};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrComputePipeline.create(device["createComputePipeline"](desc))}function _wgpuDeviceCreatePipelineLayout(deviceId,descriptor){var bglCount=HEAPU32[descriptor+8>>2];var bglPtr=HEAPU32[descriptor+12>>2];var bgls=[];for(var i=0;i>2]))}var desc={"label":undefined,"bindGroupLayouts":bgls};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrPipelineLayout.create(device["createPipelineLayout"](desc))}function _wgpuDeviceCreateRenderPipeline(deviceId,descriptor){function makePrimitiveState(rsPtr){if(!rsPtr)return undefined;return{"topology":WebGPU.PrimitiveTopology[HEAPU32[rsPtr+4>>2]],"stripIndexFormat":WebGPU.IndexFormat[HEAPU32[rsPtr+8>>2]],"frontFace":WebGPU.FrontFace[HEAPU32[rsPtr+12>>2]],"cullMode":WebGPU.CullMode[HEAPU32[rsPtr+16>>2]]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{"operation":WebGPU.BlendOperation[HEAPU32[bdPtr>>2]],"srcFactor":WebGPU.BlendFactor[HEAPU32[bdPtr+4>>2]],"dstFactor":WebGPU.BlendFactor[HEAPU32[bdPtr+8>>2]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{"alpha":makeBlendComponent(bsPtr+12),"color":makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var formatInt=HEAPU32[csPtr+4>>2];return formatInt===0?undefined:{"format":WebGPU.TextureFormat[formatInt],"blend":makeBlendState(HEAPU32[csPtr+8>>2]),"writeMask":HEAPU32[csPtr+12>>2]}}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>2]],"failOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+4>>2]],"depthFailOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+8>>2]],"passOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+12>>2]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{"format":WebGPU.TextureFormat[HEAPU32[dssPtr+4>>2]],"depthWriteEnabled":HEAP8[dssPtr+8>>0]!==0,"depthCompare":WebGPU.CompareFunction[HEAPU32[dssPtr+12>>2]],"stencilFront":makeStencilStateFace(dssPtr+16),"stencilBack":makeStencilStateFace(dssPtr+32),"stencilReadMask":HEAPU32[dssPtr+48>>2],"stencilWriteMask":HEAPU32[dssPtr+52>>2],"depthBias":HEAPU32[dssPtr+56>>2],"depthBiasSlopeScale":HEAPF32[dssPtr+60>>2],"depthBiasClamp":HEAPF32[dssPtr+64>>2]}}function makeVertexAttribute(vaPtr){return{"format":WebGPU.VertexFormat[HEAPU32[vaPtr>>2]],"offset":HEAPU32[vaPtr+4+8>>2]*4294967296+HEAPU32[vaPtr+8>>2],"shaderLocation":HEAPU32[vaPtr+16>>2]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>2]*4294967296+HEAPU32[vbPtr>>2],"stepMode":WebGPU.VertexStepMode[HEAPU32[vbPtr+8>>2]],"attributes":makeVertexAttributes(HEAPU32[vbPtr+12>>2],HEAPU32[vbPtr+16>>2])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>2]),"entryPoint":UTF8ToString(HEAPU32[viPtr+8>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[viPtr+12>>2],HEAPU32[viPtr+16>>2]),"buffers":makeVertexBuffers(HEAPU32[viPtr+20>>2],HEAPU32[viPtr+24>>2])}}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{"count":HEAPU32[msPtr+4>>2],"mask":HEAPU32[msPtr+8>>2],"alphaToCoverageEnabled":HEAP8[msPtr+12>>0]!==0}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;return{"module":WebGPU.mgrShaderModule.get(HEAPU32[fsPtr+4>>2]),"entryPoint":UTF8ToString(HEAPU32[fsPtr+8>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[fsPtr+12>>2],HEAPU32[fsPtr+16>>2]),"targets":makeColorStates(HEAPU32[fsPtr+20>>2],HEAPU32[fsPtr+24>>2])}}var desc={"label":undefined,"layout":WebGPU.mgrPipelineLayout.get(HEAPU32[descriptor+8>>2]),"vertex":makeVertexState(descriptor+12),"primitive":makePrimitiveState(descriptor+40),"depthStencil":makeDepthStencilState(HEAPU32[descriptor+60>>2]),"multisample":makeMultisampleState(descriptor+64),"fragment":makeFragmentState(HEAPU32[descriptor+80>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrRenderPipeline.create(device["createRenderPipeline"](desc))}function _wgpuDeviceCreateSampler(deviceId,descriptor){var desc={"label":undefined,"addressModeU":WebGPU.AddressMode[HEAPU32[descriptor+8>>2]],"addressModeV":WebGPU.AddressMode[HEAPU32[descriptor+12>>2]],"addressModeW":WebGPU.AddressMode[HEAPU32[descriptor+16>>2]],"magFilter":WebGPU.FilterMode[HEAPU32[descriptor+20>>2]],"minFilter":WebGPU.FilterMode[HEAPU32[descriptor+24>>2]],"mipmapFilter":WebGPU.FilterMode[HEAPU32[descriptor+28>>2]],"lodMinClamp":HEAPF32[descriptor+32>>2],"lodMaxClamp":HEAPF32[descriptor+36>>2],"compare":WebGPU.CompareFunction[HEAPU32[descriptor+40>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrSampler.create(device["createSampler"](desc))}function _wgpuDeviceCreateShaderModule(deviceId,descriptor){var nextInChainPtr=HEAPU32[descriptor>>2];var sType=HEAPU32[nextInChainPtr+4>>2];var desc={"label":undefined,"code":""};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);switch(sType){case 5:{var count=HEAPU32[nextInChainPtr+8>>2];var start=HEAPU32[nextInChainPtr+12>>2];desc["code"]=HEAPU32.subarray(start>>2,(start>>2)+count);break}case 6:{var sourcePtr=HEAPU32[nextInChainPtr+8>>2];if(sourcePtr){desc["code"]=UTF8ToString(sourcePtr)}break}}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrShaderModule.create(device["createShaderModule"](desc))}function _wgpuDeviceCreateSwapChain(deviceId,surfaceId,descriptor){var device=WebGPU.mgrDevice.get(deviceId);var context=WebGPU.mgrSurface.get(surfaceId);var canvasSize=[HEAPU32[descriptor+16>>2],HEAPU32[descriptor+20>>2]];if(canvasSize[0]!==0){context["canvas"]["width"]=canvasSize[0]}if(canvasSize[1]!==0){context["canvas"]["height"]=canvasSize[1]}var configuration={"device":device,"format":WebGPU.TextureFormat[HEAPU32[descriptor+12>>2]],"usage":HEAPU32[descriptor+8>>2],"alphaMode":"opaque"};context["configure"](configuration);return WebGPU.mgrSwapChain.create(context)}function _wgpuDeviceCreateTexture(deviceId,descriptor){var desc={"label":undefined,"size":WebGPU.makeExtent3D(descriptor+16),"mipLevelCount":HEAPU32[descriptor+32>>2],"sampleCount":HEAPU32[descriptor+36>>2],"dimension":WebGPU.TextureDimension[HEAPU32[descriptor+12>>2]],"format":WebGPU.TextureFormat[HEAPU32[descriptor+28>>2]],"usage":HEAPU32[descriptor+8>>2]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var viewFormatCount=HEAPU32[descriptor+40>>2];if(viewFormatCount){var viewFormatsPtr=HEAPU32[descriptor+44>>2];desc["viewFormats"]=Array.from(HEAP32.subarray(viewFormatsPtr>>2,(viewFormatsPtr>>2)+viewFormatCount),function(format){return WebGPU.TextureFormat[format]})}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrTexture.create(device["createTexture"](desc))}function _wgpuDeviceGetQueue(deviceId){var queueId=WebGPU.mgrDevice.objects[deviceId].queueId;WebGPU.mgrQueue.reference(queueId);return queueId}function _wgpuDeviceRelease(id){WebGPU.mgrDevice.release(id)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,document,window];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||document.querySelector(target);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _wgpuInstanceCreateSurface(instanceId,descriptor){var nextInChainPtr=HEAPU32[descriptor>>2];var descriptorFromCanvasHTMLSelector=nextInChainPtr;var selectorPtr=HEAPU32[descriptorFromCanvasHTMLSelector+8>>2];var canvas=findCanvasEventTarget(selectorPtr);var context=canvas.getContext("webgpu");if(!context)return 0;var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)context.surfaceLabelWebGPU=UTF8ToString(labelPtr);return WebGPU.mgrSurface.create(context)}function _wgpuInstanceRelease(){}function callUserCallback(func){if(ABORT){return}try{func()}catch(e){handleException(e)}}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function _wgpuInstanceRequestAdapter(instanceId,options,callback,userdata){var opts;if(options){opts={"powerPreference":WebGPU.PowerPreference[HEAPU32[options+8>>2]],"forceFallbackAdapter":HEAP8[options+12>>0]!==0}}if(!("gpu"in navigator)){var messagePtr=allocateUTF8("WebGPU not available on this browser (navigator.gpu is not available)");getWasmTableEntry(callback)(1,0,messagePtr,userdata);_free(messagePtr);return}navigator["gpu"]["requestAdapter"](opts).then(function(adapter){callUserCallback(function(){if(adapter){var adapterId=WebGPU.mgrAdapter.create(adapter);getWasmTableEntry(callback)(0,adapterId,0,userdata)}else{var messagePtr=allocateUTF8("WebGPU not available on this system (requestAdapter returned null)");getWasmTableEntry(callback)(1,0,messagePtr,userdata);_free(messagePtr)}})},function(ex){callUserCallback(function(){var messagePtr=allocateUTF8(ex.message);getWasmTableEntry(callback)(2,0,messagePtr,userdata);_free(messagePtr)})})}function _wgpuPipelineLayoutRelease(id){WebGPU.mgrPipelineLayout.release(id)}function _wgpuQuerySetDestroy(querySetId){WebGPU.mgrQuerySet.get(querySetId)["destroy"]()}function _wgpuQuerySetRelease(id){WebGPU.mgrQuerySet.release(id)}function _wgpuQueueOnSubmittedWorkDone(queueId,signalValue_low,signalValue_high,callback,userdata){var queue=WebGPU.mgrQueue.get(queueId);queue["onSubmittedWorkDone"]().then(function(){callUserCallback(function(){getWasmTableEntry(callback)(0,userdata)})},function(){callUserCallback(function(){getWasmTableEntry(callback)(1,userdata)})})}function _wgpuQueueRelease(id){WebGPU.mgrQueue.release(id)}function _wgpuQueueSubmit(queueId,commandCount,commands){var queue=WebGPU.mgrQueue.get(queueId);var cmds=Array.from(HEAP32.subarray(commands>>2,(commands>>2)+commandCount),function(id){return WebGPU.mgrCommandBuffer.get(id)});queue["submit"](cmds)}function _wgpuQueueWriteBuffer(queueId,bufferId,bufferOffset_low,bufferOffset_high,data,size){var queue=WebGPU.mgrQueue.get(queueId);var buffer=WebGPU.mgrBuffer.get(bufferId);var bufferOffset=bufferOffset_high*4294967296+bufferOffset_low;var subarray=HEAPU8.subarray(data,data+size);queue["writeBuffer"](buffer,bufferOffset,subarray,0,size)}function _wgpuQueueWriteTexture(queueId,destinationPtr,data,dataSize,dataLayoutPtr,writeSizePtr){var queue=WebGPU.mgrQueue.get(queueId);var destination=WebGPU.makeImageCopyTexture(destinationPtr);var dataLayout=WebGPU.makeTextureDataLayout(dataLayoutPtr);var writeSize=WebGPU.makeExtent3D(writeSizePtr);var subarray=HEAPU8.subarray(data,data+dataSize);queue["writeTexture"](destination,subarray,dataLayout,writeSize)}function _wgpuRenderPassEncoderDraw(passId,vertexCount,instanceCount,firstVertex,firstInstance){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["draw"](vertexCount,instanceCount,firstVertex,firstInstance)}function _wgpuRenderPassEncoderDrawIndexed(passId,indexCount,instanceCount,firstIndex,baseVertex,firstInstance){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["drawIndexed"](indexCount,instanceCount,firstIndex,baseVertex,firstInstance)}function _wgpuRenderPassEncoderDrawIndirect(passId,indirectBufferId,indirectOffset_low,indirectOffset_high){var indirectBuffer=WebGPU.mgrBuffer.get(indirectBufferId);var indirectOffset=indirectOffset_high*4294967296+indirectOffset_low;var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["drawIndirect"](indirectBuffer,indirectOffset)}function _wgpuRenderPassEncoderEnd(passId){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["end"]()}function _wgpuRenderPassEncoderRelease(id){WebGPU.mgrRenderPassEncoder.release(id)}function _wgpuRenderPassEncoderSetBindGroup(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass["setBindGroup"](groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass["setBindGroup"](groupIndex,group,offsets)}}function _wgpuRenderPassEncoderSetBlendConstant(passId,colorPtr){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var color=WebGPU.makeColor(colorPtr);pass["setBlendConstant"](color)}function _wgpuRenderPassEncoderSetIndexBuffer(passId,bufferId,format,offset_low,offset_high,size_low,size_high){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var buffer=WebGPU.mgrBuffer.get(bufferId);var offset=offset_high*4294967296+offset_low;var size=size_high===-1&&size_low===-1?undefined:size_high*4294967296+size_low;pass["setIndexBuffer"](buffer,WebGPU.IndexFormat[format],offset,size)}function _wgpuRenderPassEncoderSetPipeline(passId,pipelineId){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var pipeline=WebGPU.mgrRenderPipeline.get(pipelineId);pass["setPipeline"](pipeline)}function _wgpuRenderPassEncoderSetScissorRect(passId,x,y,w,h){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setScissorRect"](x,y,w,h)}function _wgpuRenderPassEncoderSetStencilReference(passId,reference){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setStencilReference"](reference)}function _wgpuRenderPassEncoderSetVertexBuffer(passId,slot,bufferId,offset_low,offset_high,size_low,size_high){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var buffer=WebGPU.mgrBuffer.get(bufferId);var offset=offset_high*4294967296+offset_low;var size=size_high===-1&&size_low===-1?undefined:size_high*4294967296+size_low;pass["setVertexBuffer"](slot,buffer,offset,size)}function _wgpuRenderPassEncoderSetViewport(passId,x,y,w,h,minDepth,maxDepth){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setViewport"](x,y,w,h,minDepth,maxDepth)}function _wgpuRenderPipelineRelease(id){WebGPU.mgrRenderPipeline.release(id)}function _wgpuSamplerRelease(id){WebGPU.mgrSampler.release(id)}function _wgpuShaderModuleRelease(id){WebGPU.mgrShaderModule.release(id)}function _wgpuSurfaceRelease(id){WebGPU.mgrSurface.release(id)}function _wgpuSwapChainGetCurrentTextureView(swapChainId){var context=WebGPU.mgrSwapChain.get(swapChainId);return WebGPU.mgrTextureView.create(context["getCurrentTexture"]()["createView"]())}function _wgpuSwapChainRelease(id){WebGPU.mgrSwapChain.release(id)}function _wgpuTextureCreateView(textureId,descriptor){var desc;if(descriptor){var mipLevelCount=HEAPU32[descriptor+20>>2];var arrayLayerCount=HEAPU32[descriptor+28>>2];desc={"format":WebGPU.TextureFormat[HEAPU32[descriptor+8>>2]],"dimension":WebGPU.TextureViewDimension[HEAPU32[descriptor+12>>2]],"baseMipLevel":HEAPU32[descriptor+16>>2],"mipLevelCount":mipLevelCount===4294967295?undefined:mipLevelCount,"baseArrayLayer":HEAPU32[descriptor+24>>2],"arrayLayerCount":arrayLayerCount===4294967295?undefined:arrayLayerCount,"aspect":WebGPU.TextureAspect[HEAPU32[descriptor+32>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var texture=WebGPU.mgrTexture.get(textureId);return WebGPU.mgrTextureView.create(texture["createView"](desc))}function _wgpuTextureDestroy(textureId){WebGPU.mgrTexture.get(textureId)["destroy"]()}function _wgpuTextureRelease(id){WebGPU.mgrTexture.release(id)}function _wgpuTextureViewRelease(id){WebGPU.mgrTextureView.release(id)}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();WebGPU.initManagers();var asmLibraryArg={"h":__embind_finalize_value_object,"Ta":__embind_register_bigint,"na":__embind_register_bool,"m":__embind_register_class,"K":__embind_register_class_class_function,"q":__embind_register_class_constructor,"c":__embind_register_class_function,"d":__embind_register_class_property,"ma":__embind_register_emval,"Q":__embind_register_float,"s":__embind_register_integer,"r":__embind_register_memory_view,"R":__embind_register_std_string,"D":__embind_register_std_wstring,"i":__embind_register_value_object,"a":__embind_register_value_object_field,"oa":__embind_register_void,"k":__emval_as,"V":__emval_call_void_method,"b":__emval_decref,"W":__emval_get_method_caller,"g":__emval_get_property,"l":__emval_incref,"p":__emval_new_array,"n":__emval_new_cstring,"j":__emval_run_destructors,"o":__emval_set_property,"f":__emval_take_value,"e":_abort,"ka":_emscripten_memcpy_big,"C":_emscripten_resize_heap,"Ba":_emscripten_webgpu_get_device,"ha":_environ_get,"ia":_environ_sizes_get,"ja":_fd_write,"P":_setTempRet0,"Ga":_wgpuAdapterGetProperties,"J":_wgpuAdapterHasFeature,"Da":_wgpuAdapterRelease,"Ha":_wgpuBindGroupRelease,"ca":_wgpuBufferDestroy,"O":_wgpuBufferGetMappedRange,"ba":_wgpuBufferRelease,"B":_wgpuBufferUnmap,"N":_wgpuCommandBufferRelease,"Ja":_wgpuCommandEncoderBeginComputePass,"pa":_wgpuCommandEncoderBeginRenderPass,"Wa":_wgpuCommandEncoderCopyBufferToBuffer,"da":_wgpuCommandEncoderCopyBufferToTexture,"Ka":_wgpuCommandEncoderCopyTextureToTexture,"u":_wgpuCommandEncoderFinish,"x":_wgpuCommandEncoderRelease,"Ia":_wgpuComputePassEncoderDispatchWorkgroups,"Va":_wgpuComputePassEncoderDispatchWorkgroupsIndirect,"ya":_wgpuComputePassEncoderEnd,"wa":_wgpuComputePassEncoderRelease,"Sa":_wgpuComputePassEncoderSetBindGroup,"Ra":_wgpuComputePassEncoderSetPipeline,"S":_wgpuComputePipelineRelease,"M":_wgpuDeviceCreateBindGroup,"L":_wgpuDeviceCreateBindGroupLayout,"v":_wgpuDeviceCreateBuffer,"y":_wgpuDeviceCreateCommandEncoder,"va":_wgpuDeviceCreateComputePipeline,"xa":_wgpuDeviceCreatePipelineLayout,"ua":_wgpuDeviceCreateRenderPipeline,"ta":_wgpuDeviceCreateSampler,"G":_wgpuDeviceCreateShaderModule,"qa":_wgpuDeviceCreateSwapChain,"E":_wgpuDeviceCreateTexture,"Y":_wgpuDeviceGetQueue,"Ca":_wgpuDeviceRelease,"Aa":_wgpuInstanceCreateSurface,"Ea":_wgpuInstanceRelease,"za":_wgpuInstanceRequestAdapter,"U":_wgpuPipelineLayoutRelease,"_":_wgpuQuerySetDestroy,"Z":_wgpuQuerySetRelease,"Ua":_wgpuQueueOnSubmittedWorkDone,"I":_wgpuQueueRelease,"z":_wgpuQueueSubmit,"ga":_wgpuQueueWriteBuffer,"X":_wgpuQueueWriteTexture,"La":_wgpuRenderPassEncoderDraw,"ea":_wgpuRenderPassEncoderDrawIndexed,"Xa":_wgpuRenderPassEncoderDrawIndirect,"la":_wgpuRenderPassEncoderEnd,"Za":_wgpuRenderPassEncoderRelease,"A":_wgpuRenderPassEncoderSetBindGroup,"Pa":_wgpuRenderPassEncoderSetBlendConstant,"Ya":_wgpuRenderPassEncoderSetIndexBuffer,"Qa":_wgpuRenderPassEncoderSetPipeline,"Na":_wgpuRenderPassEncoderSetScissorRect,"Ma":_wgpuRenderPassEncoderSetStencilReference,"fa":_wgpuRenderPassEncoderSetVertexBuffer,"Oa":_wgpuRenderPassEncoderSetViewport,"T":_wgpuRenderPipelineRelease,"sa":_wgpuSamplerRelease,"H":_wgpuShaderModuleRelease,"Fa":_wgpuSurfaceRelease,"F":_wgpuSwapChainGetCurrentTextureView,"ra":_wgpuSwapChainRelease,"w":_wgpuTextureCreateView,"aa":_wgpuTextureDestroy,"$":_wgpuTextureRelease,"t":_wgpuTextureViewRelease};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$a"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["bb"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["cb"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["db"]).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"]["eb"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["fb"]).apply(null,arguments)};var dynCall_viij=Module["dynCall_viij"]=function(){return(dynCall_viij=Module["dynCall_viij"]=Module["asm"]["gb"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["hb"]).apply(null,arguments)};var calledRun;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()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); +var Module=typeof wasmDevice!="undefined"?wasmDevice:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;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.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var POINTER_SIZE=4;var tempRet0=0;var setTempRet0=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(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __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;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 addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="webgpu_wasm.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){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)})}}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"]["_a"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ab"];addOnInit(Module["asm"]["$a"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&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{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[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}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{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: "'+fieldName+'"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>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 finalizationRegistry=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 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)}var registeredPointers={};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}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;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 attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.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}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(){}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 "'+embindRepr(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 "'+embindRepr(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.toHandle(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 "'+embindRepr(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 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)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;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])}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);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]=()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){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;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(humanName+' with invalid "this": '+this_)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(humanName+' incompatible with "this" of type '+this_.constructor.name)}if(!this_.$$.ptr){throwBindingError("cannot call emscripten binding method "+humanName+" on deleted object")}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=classType.name+"."+fieldName;var desc={get:function(){throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])}}else{desc.set=v=>{throwBindingError(humanName+" is a read-only property")}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&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{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function embindRepr(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){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}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=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"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 payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+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,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+i]=charCode}}else{for(var i=0;i>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 __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>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_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 requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAPU32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2],"parameter "+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_new_array(){return Emval.toHandle([])}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value}function __emval_take_value(type,arg){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var WebGPU={initManagers:function(){if(WebGPU.mgrDevice)return;function Manager(){this.objects={};this.nextId=1;this.create=function(object,wrapper){wrapper=wrapper||{};var id=this.nextId++;wrapper.refcount=1;wrapper.object=object;this.objects[id]=wrapper;return id};this.get=function(id){if(!id)return undefined;var o=this.objects[id];return o.object};this.reference=function(id){var o=this.objects[id];o.refcount++};this.release=function(id){var o=this.objects[id];o.refcount--;if(o.refcount<=0){delete this.objects[id]}}}WebGPU.mgrSurface=WebGPU.mgrSurface||new Manager;WebGPU.mgrSwapChain=WebGPU.mgrSwapChain||new Manager;WebGPU.mgrAdapter=WebGPU.mgrAdapter||new Manager;WebGPU.mgrDevice=WebGPU.mgrDevice||new Manager;WebGPU.mgrQueue=WebGPU.mgrQueue||new Manager;WebGPU.mgrCommandBuffer=WebGPU.mgrCommandBuffer||new Manager;WebGPU.mgrCommandEncoder=WebGPU.mgrCommandEncoder||new Manager;WebGPU.mgrRenderPassEncoder=WebGPU.mgrRenderPassEncoder||new Manager;WebGPU.mgrComputePassEncoder=WebGPU.mgrComputePassEncoder||new Manager;WebGPU.mgrBindGroup=WebGPU.mgrBindGroup||new Manager;WebGPU.mgrBuffer=WebGPU.mgrBuffer||new Manager;WebGPU.mgrSampler=WebGPU.mgrSampler||new Manager;WebGPU.mgrTexture=WebGPU.mgrTexture||new Manager;WebGPU.mgrTextureView=WebGPU.mgrTextureView||new Manager;WebGPU.mgrQuerySet=WebGPU.mgrQuerySet||new Manager;WebGPU.mgrBindGroupLayout=WebGPU.mgrBindGroupLayout||new Manager;WebGPU.mgrPipelineLayout=WebGPU.mgrPipelineLayout||new Manager;WebGPU.mgrRenderPipeline=WebGPU.mgrRenderPipeline||new Manager;WebGPU.mgrComputePipeline=WebGPU.mgrComputePipeline||new Manager;WebGPU.mgrShaderModule=WebGPU.mgrShaderModule||new Manager;WebGPU.mgrRenderBundleEncoder=WebGPU.mgrRenderBundleEncoder||new Manager;WebGPU.mgrRenderBundle=WebGPU.mgrRenderBundle||new Manager},makeColor:function(ptr){return{"r":HEAPF64[ptr>>3],"g":HEAPF64[ptr+8>>3],"b":HEAPF64[ptr+16>>3],"a":HEAPF64[ptr+24>>3]}},makeExtent3D:function(ptr){return{"width":HEAPU32[ptr>>2],"height":HEAPU32[ptr+4>>2],"depthOrArrayLayers":HEAPU32[ptr+8>>2]}},makeOrigin3D:function(ptr){return{"x":HEAPU32[ptr>>2],"y":HEAPU32[ptr+4>>2],"z":HEAPU32[ptr+8>>2]}},makeImageCopyTexture:function(ptr){return{"texture":WebGPU.mgrTexture.get(HEAPU32[ptr+4>>2]),"mipLevel":HEAPU32[ptr+8>>2],"origin":WebGPU.makeOrigin3D(ptr+12),"aspect":WebGPU.TextureAspect[HEAPU32[ptr+24>>2]]}},makeTextureDataLayout:function(ptr){var bytesPerRow=HEAPU32[ptr+16>>2];var rowsPerImage=HEAPU32[ptr+20>>2];return{"offset":HEAPU32[ptr+4+8>>2]*4294967296+HEAPU32[ptr+8>>2],"bytesPerRow":bytesPerRow===4294967295?undefined:bytesPerRow,"rowsPerImage":rowsPerImage===4294967295?undefined:rowsPerImage}},makeImageCopyBuffer:function(ptr){var layoutPtr=ptr+8;var bufferCopyView=WebGPU.makeTextureDataLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.mgrBuffer.get(HEAPU32[ptr+32>>2]);return bufferCopyView},makePipelineConstants:function(constantCount,constantsPtr){if(!constantCount)return;var constants={};for(var i=0;i>2]);constants[key]=HEAPF64[entryPtr+8>>3]}return constants},makeProgrammableStageDescriptor:function(ptr){if(!ptr)return undefined;return{"module":WebGPU.mgrShaderModule.get(HEAPU32[ptr+4>>2]),"entryPoint":UTF8ToString(HEAPU32[ptr+8>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[ptr+12>>2],HEAPU32[ptr+16>>2])}},DeviceLostReason:{undefined:0,destroyed:1},PreferredFormat:{rgba8unorm:18,bgra8unorm:23},AddressMode:["repeat","mirror-repeat","clamp-to-edge"],BlendFactor:["zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant"],BlendOperation:["add","subtract","reverse-subtract","min","max"],BufferBindingType:[,"uniform","storage","read-only-storage"],CompareFunction:[,"never","less","less-equal","greater","greater-equal","equal","not-equal","always"],CompilationInfoRequestStatus:["success","error","device-lost","unknown"],ComputePassTimestampLocation:["beginning","end"],CullMode:["none","front","back"],ErrorFilter:["validation","out-of-memory"],FeatureName:{0:undefined,1:"depth-clip-control",2:"depth24unorm-stencil8",3:"depth32float-stencil8",4:"timestamp-query",5:"pipeline-statistics-query",6:"texture-compression-bc",7:"texture-compression-etc2",8:"texture-compression-astc",9:"indirect-first-instance",1e3:"depth-clamping"},FilterMode:["nearest","linear"],FrontFace:["ccw","cw"],IndexFormat:[,"uint16","uint32"],LoadOp:[,"clear","load"],PipelineStatisticName:["vertex-shader-invocations","clipper-invocations","clipper-primitives-out","fragment-shader-invocations","compute-shader-invocations"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb"],PrimitiveTopology:["point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:["occlusion","pipeline-statistics","timestamp"],RenderPassTimestampLocation:["beginning","end"],SamplerBindingType:[,"filtering","non-filtering","comparison"],StencilOperation:["keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,"write-only"],StoreOp:[,"store","discard"],TextureAspect:["all","stencil-only","depth-only"],TextureComponentType:["float","sint","uint","depth-comparison"],TextureDimension:["1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth24unorm-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],VertexFormat:[,"uint8x2","uint8x4","sint8x2","sint8x4","unorm8x2","unorm8x4","snorm8x2","snorm8x4","uint16x2","uint16x4","sint16x2","sint16x4","unorm16x2","unorm16x4","snorm16x2","snorm16x4","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4"],VertexStepMode:["vertex","instance"],FeatureNameString2Enum:{undefined:"0","depth-clip-control":"1","depth24unorm-stencil8":"2","depth32float-stencil8":"3","timestamp-query":"4","pipeline-statistics-query":"5","texture-compression-bc":"6","texture-compression-etc2":"7","texture-compression-astc":"8","indirect-first-instance":"9","depth-clamping":"1000"}};function _emscripten_webgpu_get_device(){var device=Module["preinitializedWebGPUDevice"];var deviceWrapper={queueId:WebGPU.mgrQueue.create(device["queue"])};return WebGPU.mgrDevice.create(device,deviceWrapper)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var SYSCALLS={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}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function _setTempRet0(val){setTempRet0(val)}function _wgpuAdapterGetProperties(adapterId,properties){HEAP32[properties+4>>2]=0;HEAP32[properties+8>>2]=0;HEAP32[properties+12>>2]=0;HEAP32[properties+16>>2]=0;HEAP32[properties+20>>2]=3;HEAP32[properties+24>>2]=1}function _wgpuAdapterHasFeature(adapterId,featureEnumValue){var adapter=WebGPU.mgrAdapter.get(adapterId);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}function _wgpuAdapterRelease(id){WebGPU.mgrAdapter.release(id)}function _wgpuBindGroupRelease(id){WebGPU.mgrBindGroup.release(id)}function _wgpuBufferDestroy(bufferId){WebGPU.mgrBuffer.get(bufferId)["destroy"]()}function _wgpuBufferGetMappedRange(bufferId,offset,size){var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(size===0)warnOnce("getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE");size=size>>>0;if(size===4294967295)size=undefined;if(bufferWrapper.mapMode!==2){return 0}var mapped;try{mapped=bufferWrapper.object["getMappedRange"](offset,size)}catch(ex){return 0}var data=_malloc(mapped.byteLength);HEAPU8.fill(0,data,mapped.byteLength);bufferWrapper.onUnmap.push(function(){new Uint8Array(mapped).set(HEAPU8.subarray(data,data+mapped.byteLength));_free(data)});return data}function _wgpuBufferRelease(id){WebGPU.mgrBuffer.release(id)}function _wgpuBufferUnmap(bufferId){var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(!bufferWrapper.onUnmap){return}for(var i=0;i>2]),"queryIndex":HEAPU32[twPtr+4>>2],"location":WebGPU.ComputePassTimestampLocation[HEAPU32[twPtr+8>>2]]}}function makeComputePassTimestampWrites(count,twPtr){var timestampWrites=[];for(var i=0;i>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var timestampWriteCount=HEAPU32[descriptor+8>>2];if(timestampWriteCount){desc["timestampWrites"]=makeComputePassTimestampWrites(timestampWriteCount,HEAPU32[descriptor+12>>2])}}var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrComputePassEncoder.create(commandEncoder["beginComputePass"](desc))}function _wgpuCommandEncoderBeginRenderPass(encoderId,descriptor){function makeColorAttachment(caPtr){var viewPtr=HEAPU32[caPtr>>2];if(viewPtr===0){return undefined}var loadOpInt=HEAPU32[caPtr+8>>2];var storeOpInt=HEAPU32[caPtr+12>>2];var clearValue=WebGPU.makeColor(caPtr+16);return{"view":WebGPU.mgrTextureView.get(viewPtr),"resolveTarget":WebGPU.mgrTextureView.get(HEAPU32[caPtr+4>>2]),"clearValue":clearValue,"loadOp":WebGPU.LoadOp[loadOpInt],"storeOp":WebGPU.StoreOp[storeOpInt]}}function makeColorAttachments(count,caPtr){var attachments=[];for(var i=0;i>2]),"depthClearValue":HEAPF32[dsaPtr+12>>2],"depthLoadOp":WebGPU.LoadOp[HEAPU32[dsaPtr+4>>2]],"depthStoreOp":WebGPU.StoreOp[HEAPU32[dsaPtr+8>>2]],"depthReadOnly":HEAP8[dsaPtr+16>>0]!==0,"stencilClearValue":HEAPU32[dsaPtr+28>>2],"stencilLoadOp":WebGPU.LoadOp[HEAPU32[dsaPtr+20>>2]],"stencilStoreOp":WebGPU.StoreOp[HEAPU32[dsaPtr+24>>2]],"stencilReadOnly":HEAP8[dsaPtr+32>>0]!==0}}function makeRenderPassTimestampWrite(twPtr){return{"querySet":WebGPU.mgrQuerySet.get(HEAPU32[twPtr>>2]),"queryIndex":HEAPU32[twPtr+4>>2],"location":WebGPU.RenderPassTimestampLocation[HEAPU32[twPtr+8>>2]]}}function makeRenderPassTimestampWrites(count,twPtr){var timestampWrites=[];for(var i=0;i>2],HEAPU32[descriptor+12>>2]),"depthStencilAttachment":makeDepthStencilAttachment(HEAPU32[descriptor+16>>2]),"occlusionQuerySet":WebGPU.mgrQuerySet.get(HEAPU32[descriptor+20>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var timestampWriteCount=HEAPU32[descriptor+24>>2];if(timestampWriteCount){desc["timestampWrites"]=makeRenderPassTimestampWrites(timestampWriteCount,HEAPU32[descriptor+28>>2])}return desc}var desc=makeRenderPassDescriptor(descriptor);var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrRenderPassEncoder.create(commandEncoder["beginRenderPass"](desc))}function _wgpuCommandEncoderCopyBufferToBuffer(encoderId,srcId,srcOffset_low,srcOffset_high,dstId,dstOffset_low,dstOffset_high,size_low,size_high){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var src=WebGPU.mgrBuffer.get(srcId);var dst=WebGPU.mgrBuffer.get(dstId);commandEncoder["copyBufferToBuffer"](src,srcOffset_high*4294967296+srcOffset_low,dst,dstOffset_high*4294967296+dstOffset_low,size_high*4294967296+size_low)}function _wgpuCommandEncoderCopyBufferToTexture(encoderId,srcPtr,dstPtr,copySizePtr){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder["copyBufferToTexture"](WebGPU.makeImageCopyBuffer(srcPtr),WebGPU.makeImageCopyTexture(dstPtr),copySize)}function _wgpuCommandEncoderCopyTextureToTexture(encoderId,srcPtr,dstPtr,copySizePtr){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder["copyTextureToTexture"](WebGPU.makeImageCopyTexture(srcPtr),WebGPU.makeImageCopyTexture(dstPtr),copySize)}function _wgpuCommandEncoderFinish(encoderId){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrCommandBuffer.create(commandEncoder["finish"]())}function _wgpuCommandEncoderRelease(id){WebGPU.mgrCommandEncoder.release(id)}function _wgpuComputePassEncoderDispatchWorkgroups(passId,x,y,z){var pass=WebGPU.mgrComputePassEncoder.get(passId);if(pass["dispatchWorkgroups"]){pass["dispatchWorkgroups"](x,y,z)}else{pass["dispatch"](x,y,z)}}function _wgpuComputePassEncoderDispatchWorkgroupsIndirect(passId,indirectBufferId,indirectOffset_low,indirectOffset_high){var indirectBuffer=WebGPU.mgrBuffer.get(indirectBufferId);var indirectOffset=indirectOffset_high*4294967296+indirectOffset_low;var pass=WebGPU.mgrComputePassEncoder.get(passId);if(pass["dispatchWorkgroupsIndirect"]){pass["dispatchWorkgroupsIndirect"](indirectBuffer,indirectOffset)}else{pass["dispatchIndirect"](indirectBuffer,indirectOffset)}}function _wgpuComputePassEncoderEnd(passId){var pass=WebGPU.mgrComputePassEncoder.get(passId);pass["end"]()}function _wgpuComputePassEncoderRelease(id){WebGPU.mgrComputePassEncoder.release(id)}function _wgpuComputePassEncoderSetBindGroup(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr){var pass=WebGPU.mgrComputePassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass["setBindGroup"](groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass["setBindGroup"](groupIndex,group,offsets)}}function _wgpuComputePassEncoderSetPipeline(passId,pipelineId){var pass=WebGPU.mgrComputePassEncoder.get(passId);var pipeline=WebGPU.mgrComputePipeline.get(pipelineId);pass["setPipeline"](pipeline)}function _wgpuComputePipelineRelease(id){WebGPU.mgrComputePipeline.release(id)}function _wgpuDeviceCreateBindGroup(deviceId,descriptor){function makeEntry(entryPtr){var bufferId=HEAPU32[entryPtr+8>>2];var samplerId=HEAPU32[entryPtr+32>>2];var textureViewId=HEAPU32[entryPtr+36>>2];var binding=HEAPU32[entryPtr+4>>2];if(bufferId){var size_low=HEAPU32[entryPtr+24>>2];var size_high=HEAPU32[entryPtr+28>>2];var size=size_high===-1&&size_low===-1?undefined:size_high*4294967296+size_low;return{"binding":binding,"resource":{"buffer":WebGPU.mgrBuffer.get(bufferId),"offset":HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2],"size":size}}}else if(samplerId){return{"binding":binding,"resource":WebGPU.mgrSampler.get(samplerId)}}else{return{"binding":binding,"resource":WebGPU.mgrTextureView.get(textureViewId)}}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2]),"entries":makeEntries(HEAPU32[descriptor+12>>2],HEAPU32[descriptor+16>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroup.create(device["createBindGroup"](desc))}function _wgpuDeviceCreateBindGroupLayout(deviceId,descriptor){function makeBufferEntry(entryPtr){var typeInt=HEAPU32[entryPtr+4>>2];if(!typeInt)return undefined;return{"type":WebGPU.BufferBindingType[typeInt],"hasDynamicOffset":HEAP8[entryPtr+8>>0]!==0,"minBindingSize":HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2]}}function makeSamplerEntry(entryPtr){var typeInt=HEAPU32[entryPtr+4>>2];if(!typeInt)return undefined;return{"type":WebGPU.SamplerBindingType[typeInt]}}function makeTextureEntry(entryPtr){var sampleTypeInt=HEAPU32[entryPtr+4>>2];if(!sampleTypeInt)return undefined;return{"sampleType":WebGPU.TextureSampleType[sampleTypeInt],"viewDimension":WebGPU.TextureViewDimension[HEAPU32[entryPtr+8>>2]],"multisampled":HEAP8[entryPtr+12>>0]!==0}}function makeStorageTextureEntry(entryPtr){var accessInt=HEAPU32[entryPtr+4>>2];if(!accessInt)return undefined;return{"access":WebGPU.StorageTextureAccess[accessInt],"format":WebGPU.TextureFormat[HEAPU32[entryPtr+8>>2]],"viewDimension":WebGPU.TextureViewDimension[HEAPU32[entryPtr+12>>2]]}}function makeEntry(entryPtr){return{"binding":HEAPU32[entryPtr+4>>2],"visibility":HEAPU32[entryPtr+8>>2],"buffer":makeBufferEntry(entryPtr+16),"sampler":makeSamplerEntry(entryPtr+40),"texture":makeTextureEntry(entryPtr+48),"storageTexture":makeStorageTextureEntry(entryPtr+64)}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2],HEAPU32[descriptor+12>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroupLayout.create(device["createBindGroupLayout"](desc))}function _wgpuDeviceCreateBuffer(deviceId,descriptor){var mappedAtCreation=HEAP8[descriptor+24>>0]!==0;var desc={"label":undefined,"usage":HEAPU32[descriptor+8>>2],"size":HEAPU32[descriptor+4+16>>2]*4294967296+HEAPU32[descriptor+16>>2],"mappedAtCreation":mappedAtCreation};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);var bufferWrapper={};var id=WebGPU.mgrBuffer.create(device["createBuffer"](desc),bufferWrapper);if(mappedAtCreation){bufferWrapper.mapMode=2;bufferWrapper.onUnmap=[]}return id}function _wgpuDeviceCreateCommandEncoder(deviceId,descriptor){var desc;if(descriptor){desc={"label":undefined};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrCommandEncoder.create(device["createCommandEncoder"](desc))}function _wgpuDeviceCreateComputePipeline(deviceId,descriptor){var desc={"label":undefined,"layout":WebGPU.mgrPipelineLayout.get(HEAPU32[descriptor+8>>2]),"compute":WebGPU.makeProgrammableStageDescriptor(descriptor+12)};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrComputePipeline.create(device["createComputePipeline"](desc))}function _wgpuDeviceCreatePipelineLayout(deviceId,descriptor){var bglCount=HEAPU32[descriptor+8>>2];var bglPtr=HEAPU32[descriptor+12>>2];var bgls=[];for(var i=0;i>2]))}var desc={"label":undefined,"bindGroupLayouts":bgls};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrPipelineLayout.create(device["createPipelineLayout"](desc))}function _wgpuDeviceCreateRenderPipeline(deviceId,descriptor){function makePrimitiveState(rsPtr){if(!rsPtr)return undefined;return{"topology":WebGPU.PrimitiveTopology[HEAPU32[rsPtr+4>>2]],"stripIndexFormat":WebGPU.IndexFormat[HEAPU32[rsPtr+8>>2]],"frontFace":WebGPU.FrontFace[HEAPU32[rsPtr+12>>2]],"cullMode":WebGPU.CullMode[HEAPU32[rsPtr+16>>2]]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{"operation":WebGPU.BlendOperation[HEAPU32[bdPtr>>2]],"srcFactor":WebGPU.BlendFactor[HEAPU32[bdPtr+4>>2]],"dstFactor":WebGPU.BlendFactor[HEAPU32[bdPtr+8>>2]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{"alpha":makeBlendComponent(bsPtr+12),"color":makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var formatInt=HEAPU32[csPtr+4>>2];return formatInt===0?undefined:{"format":WebGPU.TextureFormat[formatInt],"blend":makeBlendState(HEAPU32[csPtr+8>>2]),"writeMask":HEAPU32[csPtr+12>>2]}}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>2]],"failOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+4>>2]],"depthFailOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+8>>2]],"passOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+12>>2]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{"format":WebGPU.TextureFormat[HEAPU32[dssPtr+4>>2]],"depthWriteEnabled":HEAP8[dssPtr+8>>0]!==0,"depthCompare":WebGPU.CompareFunction[HEAPU32[dssPtr+12>>2]],"stencilFront":makeStencilStateFace(dssPtr+16),"stencilBack":makeStencilStateFace(dssPtr+32),"stencilReadMask":HEAPU32[dssPtr+48>>2],"stencilWriteMask":HEAPU32[dssPtr+52>>2],"depthBias":HEAPU32[dssPtr+56>>2],"depthBiasSlopeScale":HEAPF32[dssPtr+60>>2],"depthBiasClamp":HEAPF32[dssPtr+64>>2]}}function makeVertexAttribute(vaPtr){return{"format":WebGPU.VertexFormat[HEAPU32[vaPtr>>2]],"offset":HEAPU32[vaPtr+4+8>>2]*4294967296+HEAPU32[vaPtr+8>>2],"shaderLocation":HEAPU32[vaPtr+16>>2]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>2]*4294967296+HEAPU32[vbPtr>>2],"stepMode":WebGPU.VertexStepMode[HEAPU32[vbPtr+8>>2]],"attributes":makeVertexAttributes(HEAPU32[vbPtr+12>>2],HEAPU32[vbPtr+16>>2])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>2]),"entryPoint":UTF8ToString(HEAPU32[viPtr+8>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[viPtr+12>>2],HEAPU32[viPtr+16>>2]),"buffers":makeVertexBuffers(HEAPU32[viPtr+20>>2],HEAPU32[viPtr+24>>2])}}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{"count":HEAPU32[msPtr+4>>2],"mask":HEAPU32[msPtr+8>>2],"alphaToCoverageEnabled":HEAP8[msPtr+12>>0]!==0}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;return{"module":WebGPU.mgrShaderModule.get(HEAPU32[fsPtr+4>>2]),"entryPoint":UTF8ToString(HEAPU32[fsPtr+8>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[fsPtr+12>>2],HEAPU32[fsPtr+16>>2]),"targets":makeColorStates(HEAPU32[fsPtr+20>>2],HEAPU32[fsPtr+24>>2])}}var desc={"label":undefined,"layout":WebGPU.mgrPipelineLayout.get(HEAPU32[descriptor+8>>2]),"vertex":makeVertexState(descriptor+12),"primitive":makePrimitiveState(descriptor+40),"depthStencil":makeDepthStencilState(HEAPU32[descriptor+60>>2]),"multisample":makeMultisampleState(descriptor+64),"fragment":makeFragmentState(HEAPU32[descriptor+80>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrRenderPipeline.create(device["createRenderPipeline"](desc))}function _wgpuDeviceCreateSampler(deviceId,descriptor){var desc={"label":undefined,"addressModeU":WebGPU.AddressMode[HEAPU32[descriptor+8>>2]],"addressModeV":WebGPU.AddressMode[HEAPU32[descriptor+12>>2]],"addressModeW":WebGPU.AddressMode[HEAPU32[descriptor+16>>2]],"magFilter":WebGPU.FilterMode[HEAPU32[descriptor+20>>2]],"minFilter":WebGPU.FilterMode[HEAPU32[descriptor+24>>2]],"mipmapFilter":WebGPU.FilterMode[HEAPU32[descriptor+28>>2]],"lodMinClamp":HEAPF32[descriptor+32>>2],"lodMaxClamp":HEAPF32[descriptor+36>>2],"compare":WebGPU.CompareFunction[HEAPU32[descriptor+40>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrSampler.create(device["createSampler"](desc))}function _wgpuDeviceCreateShaderModule(deviceId,descriptor){var nextInChainPtr=HEAPU32[descriptor>>2];var sType=HEAPU32[nextInChainPtr+4>>2];var desc={"label":undefined,"code":""};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);switch(sType){case 5:{var count=HEAPU32[nextInChainPtr+8>>2];var start=HEAPU32[nextInChainPtr+12>>2];desc["code"]=HEAPU32.subarray(start>>2,(start>>2)+count);break}case 6:{var sourcePtr=HEAPU32[nextInChainPtr+8>>2];if(sourcePtr){desc["code"]=UTF8ToString(sourcePtr)}break}}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrShaderModule.create(device["createShaderModule"](desc))}function _wgpuDeviceCreateSwapChain(deviceId,surfaceId,descriptor){var device=WebGPU.mgrDevice.get(deviceId);var context=WebGPU.mgrSurface.get(surfaceId);var canvasSize=[HEAPU32[descriptor+16>>2],HEAPU32[descriptor+20>>2]];if(canvasSize[0]!==0){context["canvas"]["width"]=canvasSize[0]}if(canvasSize[1]!==0){context["canvas"]["height"]=canvasSize[1]}var configuration={"device":device,"format":WebGPU.TextureFormat[HEAPU32[descriptor+12>>2]],"usage":HEAPU32[descriptor+8>>2],"alphaMode":"opaque"};context["configure"](configuration);return WebGPU.mgrSwapChain.create(context)}function _wgpuDeviceCreateTexture(deviceId,descriptor){var desc={"label":undefined,"size":WebGPU.makeExtent3D(descriptor+16),"mipLevelCount":HEAPU32[descriptor+32>>2],"sampleCount":HEAPU32[descriptor+36>>2],"dimension":WebGPU.TextureDimension[HEAPU32[descriptor+12>>2]],"format":WebGPU.TextureFormat[HEAPU32[descriptor+28>>2]],"usage":HEAPU32[descriptor+8>>2]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var viewFormatCount=HEAPU32[descriptor+40>>2];if(viewFormatCount){var viewFormatsPtr=HEAPU32[descriptor+44>>2];desc["viewFormats"]=Array.from(HEAP32.subarray(viewFormatsPtr>>2,(viewFormatsPtr>>2)+viewFormatCount),function(format){return WebGPU.TextureFormat[format]})}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrTexture.create(device["createTexture"](desc))}function _wgpuDeviceGetQueue(deviceId){var queueId=WebGPU.mgrDevice.objects[deviceId].queueId;WebGPU.mgrQueue.reference(queueId);return queueId}function _wgpuDeviceRelease(id){WebGPU.mgrDevice.release(id)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,document,window];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||document.querySelector(target);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _wgpuInstanceCreateSurface(instanceId,descriptor){var nextInChainPtr=HEAPU32[descriptor>>2];var descriptorFromCanvasHTMLSelector=nextInChainPtr;var selectorPtr=HEAPU32[descriptorFromCanvasHTMLSelector+8>>2];var canvas=findCanvasEventTarget(selectorPtr);var context=canvas.getContext("webgpu");if(!context)return 0;var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)context.surfaceLabelWebGPU=UTF8ToString(labelPtr);return WebGPU.mgrSurface.create(context)}function _wgpuInstanceRelease(){}function callUserCallback(func){if(ABORT){return}try{func()}catch(e){handleException(e)}}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function _wgpuInstanceRequestAdapter(instanceId,options,callback,userdata){var opts;if(options){opts={"powerPreference":WebGPU.PowerPreference[HEAPU32[options+8>>2]],"forceFallbackAdapter":HEAP8[options+12>>0]!==0}}if(!("gpu"in navigator)){var messagePtr=allocateUTF8("WebGPU not available on this browser (navigator.gpu is not available)");getWasmTableEntry(callback)(1,0,messagePtr,userdata);_free(messagePtr);return}navigator["gpu"]["requestAdapter"](opts).then(function(adapter){callUserCallback(function(){if(adapter){var adapterId=WebGPU.mgrAdapter.create(adapter);getWasmTableEntry(callback)(0,adapterId,0,userdata)}else{var messagePtr=allocateUTF8("WebGPU not available on this system (requestAdapter returned null)");getWasmTableEntry(callback)(1,0,messagePtr,userdata);_free(messagePtr)}})},function(ex){callUserCallback(function(){var messagePtr=allocateUTF8(ex.message);getWasmTableEntry(callback)(2,0,messagePtr,userdata);_free(messagePtr)})})}function _wgpuPipelineLayoutRelease(id){WebGPU.mgrPipelineLayout.release(id)}function _wgpuQuerySetDestroy(querySetId){WebGPU.mgrQuerySet.get(querySetId)["destroy"]()}function _wgpuQuerySetRelease(id){WebGPU.mgrQuerySet.release(id)}function _wgpuQueueOnSubmittedWorkDone(queueId,signalValue_low,signalValue_high,callback,userdata){var queue=WebGPU.mgrQueue.get(queueId);queue["onSubmittedWorkDone"]().then(function(){callUserCallback(function(){getWasmTableEntry(callback)(0,userdata)})},function(){callUserCallback(function(){getWasmTableEntry(callback)(1,userdata)})})}function _wgpuQueueRelease(id){WebGPU.mgrQueue.release(id)}function _wgpuQueueSubmit(queueId,commandCount,commands){var queue=WebGPU.mgrQueue.get(queueId);var cmds=Array.from(HEAP32.subarray(commands>>2,(commands>>2)+commandCount),function(id){return WebGPU.mgrCommandBuffer.get(id)});queue["submit"](cmds)}function _wgpuQueueWriteBuffer(queueId,bufferId,bufferOffset_low,bufferOffset_high,data,size){var queue=WebGPU.mgrQueue.get(queueId);var buffer=WebGPU.mgrBuffer.get(bufferId);var bufferOffset=bufferOffset_high*4294967296+bufferOffset_low;var subarray=HEAPU8.subarray(data,data+size);queue["writeBuffer"](buffer,bufferOffset,subarray,0,size)}function _wgpuQueueWriteTexture(queueId,destinationPtr,data,dataSize,dataLayoutPtr,writeSizePtr){var queue=WebGPU.mgrQueue.get(queueId);var destination=WebGPU.makeImageCopyTexture(destinationPtr);var dataLayout=WebGPU.makeTextureDataLayout(dataLayoutPtr);var writeSize=WebGPU.makeExtent3D(writeSizePtr);var subarray=HEAPU8.subarray(data,data+dataSize);queue["writeTexture"](destination,subarray,dataLayout,writeSize)}function _wgpuRenderPassEncoderDraw(passId,vertexCount,instanceCount,firstVertex,firstInstance){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["draw"](vertexCount,instanceCount,firstVertex,firstInstance)}function _wgpuRenderPassEncoderDrawIndexed(passId,indexCount,instanceCount,firstIndex,baseVertex,firstInstance){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["drawIndexed"](indexCount,instanceCount,firstIndex,baseVertex,firstInstance)}function _wgpuRenderPassEncoderDrawIndirect(passId,indirectBufferId,indirectOffset_low,indirectOffset_high){var indirectBuffer=WebGPU.mgrBuffer.get(indirectBufferId);var indirectOffset=indirectOffset_high*4294967296+indirectOffset_low;var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["drawIndirect"](indirectBuffer,indirectOffset)}function _wgpuRenderPassEncoderEnd(passId){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["end"]()}function _wgpuRenderPassEncoderRelease(id){WebGPU.mgrRenderPassEncoder.release(id)}function _wgpuRenderPassEncoderSetBindGroup(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass["setBindGroup"](groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass["setBindGroup"](groupIndex,group,offsets)}}function _wgpuRenderPassEncoderSetBlendConstant(passId,colorPtr){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var color=WebGPU.makeColor(colorPtr);pass["setBlendConstant"](color)}function _wgpuRenderPassEncoderSetIndexBuffer(passId,bufferId,format,offset_low,offset_high,size_low,size_high){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var buffer=WebGPU.mgrBuffer.get(bufferId);var offset=offset_high*4294967296+offset_low;var size=size_high===-1&&size_low===-1?undefined:size_high*4294967296+size_low;pass["setIndexBuffer"](buffer,WebGPU.IndexFormat[format],offset,size)}function _wgpuRenderPassEncoderSetPipeline(passId,pipelineId){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var pipeline=WebGPU.mgrRenderPipeline.get(pipelineId);pass["setPipeline"](pipeline)}function _wgpuRenderPassEncoderSetScissorRect(passId,x,y,w,h){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setScissorRect"](x,y,w,h)}function _wgpuRenderPassEncoderSetStencilReference(passId,reference){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setStencilReference"](reference)}function _wgpuRenderPassEncoderSetVertexBuffer(passId,slot,bufferId,offset_low,offset_high,size_low,size_high){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var buffer=WebGPU.mgrBuffer.get(bufferId);var offset=offset_high*4294967296+offset_low;var size=size_high===-1&&size_low===-1?undefined:size_high*4294967296+size_low;pass["setVertexBuffer"](slot,buffer,offset,size)}function _wgpuRenderPassEncoderSetViewport(passId,x,y,w,h,minDepth,maxDepth){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setViewport"](x,y,w,h,minDepth,maxDepth)}function _wgpuRenderPipelineRelease(id){WebGPU.mgrRenderPipeline.release(id)}function _wgpuSamplerRelease(id){WebGPU.mgrSampler.release(id)}function _wgpuShaderModuleRelease(id){WebGPU.mgrShaderModule.release(id)}function _wgpuSurfaceRelease(id){WebGPU.mgrSurface.release(id)}function _wgpuSwapChainGetCurrentTextureView(swapChainId){var context=WebGPU.mgrSwapChain.get(swapChainId);return WebGPU.mgrTextureView.create(context["getCurrentTexture"]()["createView"]())}function _wgpuSwapChainRelease(id){WebGPU.mgrSwapChain.release(id)}function _wgpuTextureCreateView(textureId,descriptor){var desc;if(descriptor){var mipLevelCount=HEAPU32[descriptor+20>>2];var arrayLayerCount=HEAPU32[descriptor+28>>2];desc={"format":WebGPU.TextureFormat[HEAPU32[descriptor+8>>2]],"dimension":WebGPU.TextureViewDimension[HEAPU32[descriptor+12>>2]],"baseMipLevel":HEAPU32[descriptor+16>>2],"mipLevelCount":mipLevelCount===4294967295?undefined:mipLevelCount,"baseArrayLayer":HEAPU32[descriptor+24>>2],"arrayLayerCount":arrayLayerCount===4294967295?undefined:arrayLayerCount,"aspect":WebGPU.TextureAspect[HEAPU32[descriptor+32>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var texture=WebGPU.mgrTexture.get(textureId);return WebGPU.mgrTextureView.create(texture["createView"](desc))}function _wgpuTextureDestroy(textureId){WebGPU.mgrTexture.get(textureId)["destroy"]()}function _wgpuTextureRelease(id){WebGPU.mgrTexture.release(id)}function _wgpuTextureViewRelease(id){WebGPU.mgrTextureView.release(id)}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();WebGPU.initManagers();var asmLibraryArg={"h":__embind_finalize_value_object,"Ta":__embind_register_bigint,"na":__embind_register_bool,"m":__embind_register_class,"K":__embind_register_class_class_function,"q":__embind_register_class_constructor,"d":__embind_register_class_function,"c":__embind_register_class_property,"ma":__embind_register_emval,"Q":__embind_register_float,"s":__embind_register_integer,"r":__embind_register_memory_view,"R":__embind_register_std_string,"D":__embind_register_std_wstring,"i":__embind_register_value_object,"a":__embind_register_value_object_field,"oa":__embind_register_void,"k":__emval_as,"V":__emval_call_void_method,"b":__emval_decref,"W":__emval_get_method_caller,"g":__emval_get_property,"l":__emval_incref,"p":__emval_new_array,"n":__emval_new_cstring,"j":__emval_run_destructors,"o":__emval_set_property,"f":__emval_take_value,"e":_abort,"ka":_emscripten_memcpy_big,"C":_emscripten_resize_heap,"Ba":_emscripten_webgpu_get_device,"ha":_environ_get,"ia":_environ_sizes_get,"ja":_fd_write,"P":_setTempRet0,"Ga":_wgpuAdapterGetProperties,"J":_wgpuAdapterHasFeature,"Da":_wgpuAdapterRelease,"Ha":_wgpuBindGroupRelease,"ca":_wgpuBufferDestroy,"O":_wgpuBufferGetMappedRange,"ba":_wgpuBufferRelease,"B":_wgpuBufferUnmap,"N":_wgpuCommandBufferRelease,"Ja":_wgpuCommandEncoderBeginComputePass,"pa":_wgpuCommandEncoderBeginRenderPass,"Wa":_wgpuCommandEncoderCopyBufferToBuffer,"da":_wgpuCommandEncoderCopyBufferToTexture,"Ka":_wgpuCommandEncoderCopyTextureToTexture,"u":_wgpuCommandEncoderFinish,"x":_wgpuCommandEncoderRelease,"Ia":_wgpuComputePassEncoderDispatchWorkgroups,"Va":_wgpuComputePassEncoderDispatchWorkgroupsIndirect,"ya":_wgpuComputePassEncoderEnd,"wa":_wgpuComputePassEncoderRelease,"Sa":_wgpuComputePassEncoderSetBindGroup,"Ra":_wgpuComputePassEncoderSetPipeline,"S":_wgpuComputePipelineRelease,"M":_wgpuDeviceCreateBindGroup,"L":_wgpuDeviceCreateBindGroupLayout,"v":_wgpuDeviceCreateBuffer,"y":_wgpuDeviceCreateCommandEncoder,"va":_wgpuDeviceCreateComputePipeline,"xa":_wgpuDeviceCreatePipelineLayout,"ua":_wgpuDeviceCreateRenderPipeline,"ta":_wgpuDeviceCreateSampler,"G":_wgpuDeviceCreateShaderModule,"qa":_wgpuDeviceCreateSwapChain,"E":_wgpuDeviceCreateTexture,"Y":_wgpuDeviceGetQueue,"Ca":_wgpuDeviceRelease,"Aa":_wgpuInstanceCreateSurface,"Ea":_wgpuInstanceRelease,"za":_wgpuInstanceRequestAdapter,"U":_wgpuPipelineLayoutRelease,"_":_wgpuQuerySetDestroy,"Z":_wgpuQuerySetRelease,"Ua":_wgpuQueueOnSubmittedWorkDone,"I":_wgpuQueueRelease,"z":_wgpuQueueSubmit,"ga":_wgpuQueueWriteBuffer,"X":_wgpuQueueWriteTexture,"La":_wgpuRenderPassEncoderDraw,"ea":_wgpuRenderPassEncoderDrawIndexed,"Xa":_wgpuRenderPassEncoderDrawIndirect,"la":_wgpuRenderPassEncoderEnd,"Za":_wgpuRenderPassEncoderRelease,"A":_wgpuRenderPassEncoderSetBindGroup,"Pa":_wgpuRenderPassEncoderSetBlendConstant,"Ya":_wgpuRenderPassEncoderSetIndexBuffer,"Qa":_wgpuRenderPassEncoderSetPipeline,"Na":_wgpuRenderPassEncoderSetScissorRect,"Ma":_wgpuRenderPassEncoderSetStencilReference,"fa":_wgpuRenderPassEncoderSetVertexBuffer,"Oa":_wgpuRenderPassEncoderSetViewport,"T":_wgpuRenderPipelineRelease,"sa":_wgpuSamplerRelease,"H":_wgpuShaderModuleRelease,"Fa":_wgpuSurfaceRelease,"F":_wgpuSwapChainGetCurrentTextureView,"ra":_wgpuSwapChainRelease,"w":_wgpuTextureCreateView,"aa":_wgpuTextureDestroy,"$":_wgpuTextureRelease,"t":_wgpuTextureViewRelease};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$a"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["bb"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["cb"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["db"]).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"]["eb"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["fb"]).apply(null,arguments)};var dynCall_viij=Module["dynCall_viij"]=function(){return(dynCall_viij=Module["dynCall_viij"]=Module["asm"]["gb"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["hb"]).apply(null,arguments)};var calledRun;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()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); return wasmDevice.ready diff --git a/emscripten/webgpu/webgpu_wasm.wasm b/emscripten/webgpu/webgpu_wasm.wasm index c9dde375bc9788ac1c88417e6497b0042a953033..53b3b034f4a1d5a31503ece0d5cee86c0710fc88 100644 GIT binary patch delta 60083 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 aIhfd-rc@#AiOuC&U%UqpdDA^&{{H~#5=s>S delta 60021 zcmbS!3tSb)+4q@UE=E8x-T(m)m_&0imnKmYHF4AC)+TM!w|(0tZJP9&noE>H2dKBaFt%2&2)Q-mAE8 z-nNL5={mZ3H4wbImkmOh#WAA^m?rZNz5m9V&BMK)OY&_c?%qi1kFr+-&}adu#mq@a zcv3Ukg!t#nV9VBKTn3sjm;1>v1o7Gr=4 z5pgJG5a;+#W3)Jy6l1iS?|Rd|hZY067=D53*2$A3BnZC5MW-=PlClLViFitho=C4J zCW-hOt;PGjd$ibsM$x4OEiJ{R{r;p!HfKc`Mdkzj`#e}Q0b?~W0Dt@zV{`+ww+-#DX%YGeZ-k-!#V9KNYyUSR5jp!FIK=$s%7K>bI@NAO<9A+uqHEhu*vd@1B0U(2n9oa0+~05+ynC6 zPrMt4&O)u1F=}n*>?eA4CUzp`+st)OJlNR|Z3N%dCm!))A_)A8z@zMC-l(_JX)e)R z!JqlUlTUuHyox|TREh!(a8*^rGZ}*ct3bgQ@ZrA*ssiebF=9s=?|)#_F5bI1^1p~z zO_dcj`R4W~z0U*$n{*u<^JFpFtBp**!yEl_TxZPXJ6??I9Ao5HMGW+KjEE27B1AaK zi7a{*m=6sd#wyHrh7O6fn2~yzX+!_WD$S%}@AO4);sCvkh(AMz7_VmBymjkV^!Jb> zvSyg`hYe58nnCm!WSsKV5yr!$X+|0o@jJu3IV?#7E@}7!L!qRls5cVBPdL9|?e&n~ zQ1((|j5RwgMI%5eFh>m^kRcOXIzpZ@+{=AvN})~UtQf-s`GsH+Nqh@X5bmdmoIx$w zD98bzT8ZUJ1T1pIU(z)ZVz5m_Cd~qr{RmDGLclQi)nj;{kMqPJ<2~}!-5LhSqufDN?^?rGED8s@o{&aTMJ5?2>eAB73}1FUN`V8*B`l%J-Q&o{MJX=2y?9 z_7P`L8ZY5>ujV>~nq8mY*r9F_LbnJ@w@c5jN_3p(?L>b5OL~;$wGA&+VrVA5n23}$ z|HU;j<F!JiJhj%}{-Q$gj|GPn{1pL9W%6$GePibv6=J?+{)Ju>J z@5pwDs^2`vrWAMoZBS3hxk7g3Op7qq*LsY3(KuIAWs`aA4=+%Te&DUgx*(T}B|X}5 zrsCqi#IV?jPd()E4E4|&Y`pp9U;l(<+mnAQOeh;gs|efj&mGHe{%u)8_9;v_MGQK` zivNCG%WajBRdU0MEHsG7LPHRd^&m5U_m3ZGzHIaJew34suyiuK9weE(*(W`plpR$F}Es2v(>D84r4 z2P~oGBi&{9HplKa#x6_FY;}8Vt0E$BzBHT1El$YZ?*?pA0JCY_vgF#?ZkH}pMD#8Y zy&I3YLvfA*6#qTzL8cX+kxp+sXE_}W!s%$Rr}N9~&b0&MbrQNj=E$CGDAZB+4O;T z6rI=a*FAHg>*VQ4uQpq?MsWuP1!WG3zE-m< zzxO)b(Bnh|rp z-MQqHRrQ;%%=t&xYP#YeYN@#N;N{Qgz0Kx1cXX~hX%Q++eQsXo>INHU&Y!!jbJN#W zwY>QM%==VhC1$S$eG%k?7WBuzuP^YvS!*rukYEq^esW$E_>K0!(qM0Sc}63k7*o9OeDh0&MJ3ow1aw+*=?aW zm8flZbU;OWg~wcRq|b1Ie9`H45HE`t!sDZjdH`o92o*L-6*dbMQi*URQE}L!R6u*B z$K3T*9|6hieOn0h5D@=uA)F;LiCNq8wrsks?2|~!?C1z$t|{;eAq5>#rK%s?kPI3+ zf|w62k_@Ka)>b}8W0FJTLmg;o&apVOCUig*D)9ApTXxoT#6e>2?_o)q{BQ?+%$F8R zJ!f`Am4+s_Ni~b(J7TcbVld;jDwu17l0ivFmY5GONf!fA_K*l%I@fQdsGwNeWWH@t zcgJ-^U0_kSbTSI2%5}mv>PwYP=245feV9>+g+n74VoicLL#4?~E|hYwbV&VaVfqjX zkCPoy(Y^y~CPX_Ri1y6=9%Jd9BHDK%+RYV(sj1Y4xt3`yUv`mTs%%2%-6GHv34#e1 z4l&b~dWRDgb1j@I7zpWrK)N5mobE#U9y!-)xwH`6eh7+6GZnwh-H35N|r2yu|3pG)qtaL!CNd%XagG!3IVwpFU zs4o5v6%6WRRwBp(N6mH+p#mV3l>l7RTc~hIs&LrKN+3+QPZ@DUsQ@AMR#pP!a`J5< zlpTqEAntY$881Q)-vN)&*h%PdRO)d|x`GJP`v^U09(+xD5Z6tnQRGb}>f$>^v=Q|< zQ7K9&q)vEDB%~CAOzemOAPwe)70CiI?siPfA1+QFPCTx672`!>PLdcgMyNE(um=S0 z3;?*Hn=s>)G~={%ClOp`oKa?gLz9e~RKmE7IqNp&oQKcp&XN;|O}tX%yi&wGyTY47 z3|yv$3L!%h3E?u;5n=x7Gw*QGza#EYvRRr52+XVmn`3gcE=V&k%F!ai>^s$XUn2eF z70S8Kys1R38`1$4{98oeCKBX`Gk07J-YAv~+PbOXzU=nU6*=6*V3cFSRplYbXrtHLOJTjZlLUnfYdkHT8 zAqsDYU}EY40yEnHY)lqrj$ugEGgqdjP#f~3eU2FGWXH))fm|7mFymHvQ;CX9 z9ZrRM42)ZkYgxJ0nC=}nF#lQoXz4pVeMP*!5!?o5YYy1S-gZp%RyYOz98$#@<7+w zc}LKkVAFv|vC{0lqpJ>zIp<=Ux$N|;6cV$|nY^=cr&`5qp!n&%U6{FKZG0-hT%kRQ z2F4EU$#P(Z5ylnT?JzPlg=v+?JjR%N#K=#PrsbG(RwfOh_LX;wz@X8eN<#8UFe=kz zYy$${;40O)a+hFWQs~TC-6yT}nB@f=$O|}-7Xl|NFSMG6RwwDGlIiSxadKHI>sN8g z>I7H1Tvym+bpqY&vLiu9gXne{-8wV#{ibN)71CpzvmBi6_R0(^TnV$+aj=6iKiqq`_WL;EvYV+f4VZHHb?iXZ?m|B&daj3I`HZF~Jg5H{Lu~m&huLFKo3WxfanbUO(6-C7p4mfQy>7EoE5Y zBukQ4O2UC8W#?Fu1l>yc9z3G?8Hm6O9>bMr?-2Dkr%R(jeKh_CH0M8V_;H|2zLNS=Ws|vMdrDe~X=xuis`WE0 z?Muwq9Z6dK3^Q;so$W9F-VS8y>`$ydp~KkZxB7ri!>Bd+saJ93&UBVS$_1Q@ouC>^ zs8nhqMF@n;%k218C%oH_ALlH7f2r0SKIhyRSx;JZ*hW^JM!jZ?}@+ zMr`~|W-J+Q#M99w$iRF)E838y@1Qac^{872YJa{xw zD_SO;c&d2C?ikh+Y@tT}3TAwEubA&^NR3^4QWL3d+F+vz2O6+-B#t>SL&?P5;)!^y*S8970o%ugn^;>Qa$OcQtzOn-txMX zwAOVUjz;cAYcyKTvvo;Y?nauMViisTT_dtojR*uTD_*`ol?@|^%j8gyzW=p1g{UrvI8>N>g5p3RTn;(uc1R;G z*i#a~!ex%b!tB$KGQ50`Wln<3;y8%K$v(>*L2q{+2Zqk$S^MnhNhCEV^iuh6g^Hfy z?;nq4Jwb*Cnhr2yv%D*L3LY^3bRso{+FaJ3QP#u0CWJ&v0st-tH~{m=30zHp>N5VU z+xTeW5{0A-PV6o>~LRKBNoCCUfWOag8 zb=dO6>;!N*zUZgSirs(nKBneX37P9;Q5qPn&a+W>6D zXw7^n*hfI>owM>7&BY{BGhbOOAx*s%m$7chI88i`Awfry6lA=Dm}}3aClYm+!{8%_ zdhJ}g(4f-kJ5f>L$ZX9_D@+j#DjiEFDTw)}^XbEg{ch)0&=f@lgBuE{xj^KE5O)KBz~;*9 z$wP>T>k={)Ayou~W+<}8A(=luhKlBw&6uI5I-H^9P4)~uC1xlqFHXDg3`=h~Z^1*? z{Z$t&c*A)!Zbu@kDxQ7u8P>1lvV{&^@#nT$Xwb!qKetsR`w=aDnbv$=EL5w%u`sA( zp{iAXBOq%pr?XVDV^^w?HA)jJ-A{!}P@zj3zh)Y{`V1k+m{>JCW)j4nW3!}B0D(`i zeZ|O>&jn_aPhPp&r(e}5Jj15z&CslsIaX|$U4kN0|hDklUTjQP$DujJs&a)%0E7l>J&NDS6@1Thca@CxcT zPPSX5j4*q*d0(Ku#m?hghYI$KrHNk*F^0rn){KQijA3*{7nocd(2SBhM1EgFtA98aiO{WW|HP#B0?C~ z^|7~bNeV{9Zkc9ONp`EjZu$f4{`A6?9kVO7*{w8p+)UK`rGlTml-zGEB@a}`ClXiF zx&B{6)`)q`FEHj!C9><{-yy?wYegnV5geXSnIIG*GAto-oZE<@2r=qH&Z!Yc^I|7KM4scbqL_CWktYmN_p){oS=`G4huzZmfIxoER>*%) zWR*RT4|0t>i4(!Kirz~cWE>8RW-0vwTdm;kauN{Lp zGqomqc*SvxNoeHcH(E>tz2nHqZ%o$Tk(6!DlX^!_QbdLeAP5)#8O=B?!{xjTmu3+ziA1P!)}a?vxbUNQGVgsv zKKU)Br$dH-i&DUap+=|p%Z#sQthZqIsdK7w@cgyzY(NUJo6_|*?1bkDajioJd%LqC zf`5KT4EQ}gEOl?(e;fXmKL#2PLtWF`Cbd2FKnHLh0Jq0Umzs{qj`7PMz?yF%u0$U& z$~{z=$uFbp5bFBP|J)T23=H;K8(+%ZZkI4H{NkG)Np|`H;$Dug^&7hlgM-y~3h-b}bf{*lKSRp|m zbgBACH`YHUveH%3<(1wnwJ$YJ!p>L9A#`@T=2qsqIJ>11W{RV4d&r6-$;m)`oh&wt z5R)6kgm!UIZf&E1A5J{#oTcYCgs`s!Zc3X0ftJ|1ZXB1l3vS6!_UR_Ok(7e=F_=;l zUT3n}4R}@>oJbJYxqK`^#JQZeC1BnXdG4bk zf0K~$M5dfg9I|vg(M?VOqV!Rbp9vxM+0!)L#NSI~>4JalqhdZ1c_J~OVA;eMft*47 zS3M?20^~_VCeIN6$#_FI-V?GrgYL-F_Kcbd*0@sx-N&LMorSX}TO%(J?Q$uB=rk-q z57QZ%e>aIGb=vZ;+%#Z*fQ-SH5%K5!1tdEYm==N3$-YQIje-HwdGj-#Wq(W57Ox^s`)t)hPEDfkWn8ekb#E;g?}dInK?nDueBJm&a-UAzA4y|<`jzKf7KdK6H!QU6&DZIoT}J~M zEbiG8BbT_HN*wH|mOE!YU*9bOsO!$gX--zlwcpHs%sZTz?C7TM)qPB4akCFhK9NoV z1Zw9lfwFS%>!;GKe&NJSV+}Ld5(XPLOlXeu_|tG!_u(Q4ipZB%#MVsR#Uz7)m9= zkyx>Xk7nq6(t~!y(G*-jQylxR0jW+FdxZ(IkRY^mcM~tWn|TF!X*ZSZ77pOy0 zSJ%tK26@dI;O!*#H%ffW(FNU}f3`+60Ls%A%w}0dLM~}0Z@9k7L zG1TS2&`?(sjtLww6(PeC*?_YxF*=WsTjEv|sU<>IIJgf}6}bV9PkD=({?DUTD$l zY`S>cQkXDn5a^{A{jjaW5li9+57;^!wOVFT%iZ5$@rg=AZYo&RSu7fC5yut1?NQKk zi=>JtEILme$fAUozPc0SDvR7`ksqa(xulcl#)6)?LUupx44i8~?h;u3?}4oMk7-O@ zqyaXYGo+>8V$;+io7;}77`RmN+OTk%YY}ixa8lFpyi$9c*QkIr%3{qS820@NBo~*xM4k|k5+lOCJ)zjW1O7GH)tYL2WAuk zUdoR?#8P`uL-vE1az$vP>3PczHXm+0(d`uM{1ovFI%U#P5!Rd=?a&`K@KpuS>+v_n zre`Yp=mcc)X3!{;kG1LJ6#c~Gpyw1z`gn^Toh9k~=)=~0Nt&Q~Y$lEJ(Sv5_M^=x% z6BT`YxpVoGO*xDHCz5-{Bn4X0U96udR3_UP>DH<gamn}n-URnrn}Zlu3;nK zQUYHc2oKf*P0aA})wGECyF!zuDa2Ntxf52>iLV}DayMS7mnm$z1+cPeBk1IAyx=Wo z3RiU3?fyJlZ+YVSSYcfE`#%ZAe5x?6yZ-)A%uI!G-S(dqikYo2Uk_9f90nFeox*)<>7!ey{TR|YiQm%?5mN~g zsk+i8SKH(>=^$5IgL#YKPgPFs=(e`pgOf&|XSzRhaY6eZen7G20Zz zwFd;>QE~C%-ye+g8<{rSIbG}sg=7GdL69Qno!e>~;`kSPd*EI2?5+r7H%%S?NyILe z8r5i*Q)f?Twp-m-%$yqXIDy5?sRx?Eac_k2m6|!}_8M`Yu!+DT^cw-D(66;af4`!O zsnrZRWxE4*Y*XfVjk;&9cQVJpP-}AcV9E!PHSkAJvZ+pn$su_-9AT`Kx*s9ksRJHi z0A9+s3}KI?Q-kZ)Q3LT8w~nC7aopO#aysb=)?eUU&w?5WXW!{MC2_w2E`#{Fmgh}` zvzO;*1r8guG$R*(Ezm+b`&_8Avr~n$&xeI~vv3*p7wI6gRQmsdaEi0+PQ9pbuEcyv zpzN@elaW}t-P>YgWU#a%&lW&P4gLs9?!7GidPN?tMi}FywymTsb;0Jqxj!_ub>p1N&nF`~2u+|PUR$*KdeO#!l@d|Usj2yk{T?kP)q=}pY576jkM~cHFd6*n&oQ3E4=fhZ^pAh`3 z$8ZwzeIZXmQw2MO6;YUxgJxneEz&R}F{*71xUYk|sHJF^VVoNovO=nj0qc8*<6Zzk z#U!r;md1};6?Mo9+tMX3U?cJUCdq4s9Uq@5Ue{B=tJ&gJ40_jxSb}g4D3OM5jqF)s z_gtxZe%%+DBNueKQdnit`IHeXN^}P~!U%v&moBAt_s>=L(#O%g$m;%uO<(P%!$_-t znN44#==CY+Uv2eYYtz@c=@CY~)xX@Lr><9Y*VF9{b})*-mjO#-<__46Hbw?)F5)j| zE!NifBPc~-g^biq@~}D5XuDGc>=p`G>VUO1-~_FVG`3Q}wlpH<@zA9O?J{7$lmV+! z_?lS3V;k`ZS(8->ONfD7La&oiyxsQ14n-F!AP00x0XuC^R4cmcDg7?nN|z@{gxeFl zZH)9pSq)48^Je@Jl+4>BT~H$rdn1jYwBjqWf;uq6S1zIZB8^(|L_rfA2~XsqU3y}F zJ5S`K2~Qjd^Ta`62{90!C;$hV&vmvZ4k^0uL<#8RiNm%hjwrh8{zbiQrA&rL6~?tA z;h4g#cmPX&1##`7ZBP(#|MR%QxOTyw2*sRK7}u8G#!$>Dg>h}iJspZUqcE=hxJ{v$ zvkK$dcY7`rbKb!?Ileg*b3tKT+ix$1VC1x-QE~^*ih4Om_Am!G2>>h=t( z0GQ(D8!ImOl;@Djh%CaU8e|HaTQ<4uIhL4Cu;Y%6N$z@w|m|y{p?1?jsxLdSkaE+-@7^dTX~MT%Q*#xp;Tiey}ZY z;@w@?kt6l{t&MZN#oH0TrNDik>~+1$+W{^#n@x|R6BhMqbnbbGUI+~9;lT`ram_(a zo^&vI3ggJ3@8QZtSE7qEf0YxqfD;!=R_f%sRKTw3^+mOMj7*>5YI(NaCX7X$a=KPc+QWK zYr+_7X?TRzn-ji^cqXjKgUtX_7%q&Gi}s8HVH43sK(~QT0li45+~HFL!up@Y!sdU* zip2(DkN5f?u=x5cT?UEI;u3gcGS(M4cnFh^zr`IY@fZaKVQ2I-@LT{mGH6MM*daFd z;uEww0=61|g%0*VUH93C+2G9k0j>v7EXy3Q3tNtdGg6EE`=N0&z%6jwG7HSTFR>mO zq$K~Jte3{ik6sfPcV?rEoC=&b@wdD~!8J;7;o}A#5^ln}0e?jufM3MbwLhyA>2t+P*wt+D`odQAJXGyT-8XLaz@@$|(xqi~|23-r zCo#}94|EEmwKjd7qT^l@KAi|UP2_Tmp1NMqUC&WA2umn4(Ibb{7UfRYV~LHSm{x^x zJ(p;Qp||g4sJR|YI2c+&h|}n6WUo8zRM@g)+VSIaT~#o|SBY=|lyb=?nQu1B!_pYIArU1Sm;3AS9gOA zZC3Xq7Cp6I(OtJkkJ=&NTDlVpcbFWrF)~cbYcXbD;x-@t2ufk{wTzDjc{m<9;BZq+o8eF`X1_LET@ClRo|=iy01!bZX0$ z9^}M>&`3+b5|6xS<6}PgC#-h{wY&BFBven|E_eWcb@-D)K6QjpQ;wA3Cm96Rj3)d` zGG;~_v!Exwo-IBs+c?Yqo-DrFY|uA}>14(~`zcF(K4-S|(b=roHYl4)@=<4jO)W*6 zJO$b+GESl1-;yt0d^DcM?Y7Am~7nUx!28OLDi1)p+A4cd zuC&StD3@F1c$7=6awn9FtTOTUJn0!>_@PI0oYVvNG6VE9m^_fr-~BmzkkxYk&)N6c zdVc2TtUvSf?ys`{X1RRgtLz7i^MkLV@dVdj!(kM^pAPl>Kj<)>|MN9An@#0?eu3I( z{_S6Y%M3n^YAyT=IvnT6=#a-d{}P82{9C_d_po{V=Ttk*N6}$2U-V0MH=ECQ5^X-e zLXDev>gzc8`Ezur=I^}@*4O!(*VzxWTTk*XzXCLeKmIEazu>>5!vQ{)4y*Z6qRr+t zbg1Sx=x~Flzkx#ofAI}KX7Uf-U@x<8_&TbM;V0?P$h*FY!+JjWO&}-m*XeMckEOQLw8_Ho z_7-Rtx$iAB&g46(v4LNq#*cXFA5lBQpZ%lg{_Y>ye`_}%<|qCLld5>^Nc0%ZUmFRX zChw z8e4hIJLulRuT!m!r@xEZ7XHG!sO{zN(_snEqeDF}e^;P z8W-`g@3HT}&Ry@Ze$2-&zlWXDmwB&0p>~=-Nr!#>bvn%Aqv+p_B@22AAsX-p{8e$xF#^rN&g1L z7L_`iNi7Pyn`^!l4<0|oHWi`cRhyhOH{zKH67NGnIWh=bBr(rLK}gRBIf|tCQ5Y>8 zu6Z(y9ME?kt6d?uUjfsca$DaP)FzkP`W6AW?`g}FLR9uVZ4LDvRD@3D;H;A>rAh=U zD?k<+oVRgxAdBBHs>x75C{|?yD^Y+>av#G)?8p(8v;rGN+?!Fzv?Hd`?$kh?PE<-m zGSTUZt*j4~i?*^0Q4z}K&V#bzhn2EXlKh~=SkQ&G8&MFkRs^zeaDl=>iGYpsqX4;5 z*)LG}QVn=1YL#lhkDw+DsRADnuNCt$%RN?<>_jb!BC-s8L?D*rM`Q@c3-gzPE;v@AaOi28 zB>-2Tvfozz3@SpWTA@5fp&A7mI${2oHirfj<|#GmQJbyQ7(d_Q(SoiKV*HyF6FA_w z&BO;_qhivA<_5)N9%#arocUHvW}%Q}D>4dXVTvDxHem`Td>$&TwkhjSfhov;h3F|} zf4*V?HD=i?N>M0PYLuW>qSQEuni$MVbQNP%u6V#XpW8gHq9FX%0J4a@Iuyo0-HeAR z@@i~gH43{Yf3!htH*H4ch>GPV)DCX82h&_&Il#BT%CfB%$A@W#Ua%Qv19x2f;0hd& zh00Mol$Q$*85m+eSZJh1E()ZS&}lO0!iNPYRNCQ?k4lB@!)>Stvr5rXrK-du=Ahn1$AvvKd`P zifTk*oG=B79J6`cK;dhlJy^7&QlDYlG8-&}8rci2aL7bKvVa=5Y!-RIEmCUaqBdWt zvD)TQfUY7O0*VLJ_ylC((GnESNgf#(mLgP7D<=C;6KDMj^cB;z425iaSXS9gcA_v^ z_JT20sNJ${xrBec>h0vkZ?;r3da?v0BT1Sr!A;; zqU2SgI6;X*hZAb^ZAM?CAY53jz%aYg0i#wS!H{2u_C5JCr)8ep7Z^g*;2=n6?3Gh3 zDvkD>xn(nMLLd7SZZtTI(ff#GjL)E=u)_|v7F4#`&CM?aj`o@z1euoiiGk_8PU5>&L6)}aV)s<)131tte!olU} zOkponDn*5|Dh(ArB4TqokAe_e2fEZBf@&NvYSlKl63xhI6LL3iU%XZDISJBosR-qt z22=}`NfWUvSMY8{Keftec6dXPGdAxr0JkWUe5hSej25CMEXrMMTLiVTQOS`Op*B7P zAmN;iCK!erAR4i>y;u$P!rR!3f+e4*u^7Iamy-Q@6rLZ@s#K7i}g zV6~ySRt?rX(1ee23hnrV3R$Q)J{p|?kZ_V8h3)DbnTOg|6+nd+1FW(jJRda`MKkUG z@$n9w1fhj4pZpDO7V+5?!dvmC8s0r65oX(`MA=k+$P zCV=Ly7l8`(&861-^(~d0$uJT0trlmg-DR7#-@+*ka;*lTK@Qjn4YJU>Vce!`E5EFn zw;@A}xpZD35XyP^*zhl|qYKd5MLO?eshfvxN}E>M@?IBX8*svVrR~)%2c>$eJsUTm zwp-1HjFYH}EL9WI4fa=A4X_fmjlc=@i=1Y7urZ`|nLxB^AG6F-<|naiZhrR;30CI^`UdeJ_PKy;7`NTUq5v2nXDJFo zser>2ny(frQvP2~NMcfG7yQ(PTCRitdgZKE)Yd6S76Fv6YM-IDKq2>`CZe*!lBr^% z%xVxP%Hm~+KOyK6I*8HRi-KsW2aqPJ>LwmG&HHMD2*oD41*65Hrc{mWj$(*$p>UYz6X`x6?BR4KxwO44VX) zFsA^8ueR7y0;uiSf|(}ce~Znm1bu0C(tlzS7h2536k236t3aV%F)Kr@mY9jq`5HCh z$!c_^g#`U4rfsF-1qW`DykP$UlrE`dUoC1E)Ft~Z)I^{)S$$OqHdqZZLJvxA9^=y@ ztHTr&L{LpaL4;qn-I7HGngPBdT>p}*zyvC_*-To%d&9Uxu3!$Li-@QEBI#Ud6nOZp z2H~JQl0|WwgVs$2ldjJ{J$23y;#~qtjWV(jwW`hJF>(IggQ_^Kmxpjiw^GF&m6bO4 zY7`DjA3;_nYF`OvB&aTg1r)4NEKu2Pvyd6DsR;3}QeH!mmGT;aqE|S*_z^zTYTxHv^rEqoUsr< zu|CLMAw91mzz<5bT9M2~ZI7iavL$L_yo#(|DhLa#2C=-Ix5A$P*;ca*r*d>}wQm5G zqSE{nMK>%wf{F;pDs*tt16*677^AWtFcAnhP!L0V9t9DPXNg2Px`_%R|27hh0 zDyD87(J7c}(7I_f1=Fs)N9bJ83d(5vu0}H|*KPIqXO_6k&)TWirdWf)b(?i=20GNK zB$|y{%~pFR2f)KQqr><-i>X*_&Hz@ZCx^KRRTW7EpIO6Ph}IYxNhhpzTQo-bh?Idy z!u$u57^BRRrAD^`Jqwg7Rj3syHEY`|R_#`72e7^#bceUZYL6t(nhX|HEf2Qo5?T{7BiU--~!iP#~pF5!v{V~ZF&ds4;Vl~{M2!|PdS za8``cihx@}9^M@klgjT%*q|gBtJ?`EbPEvqC*P5P;E)o^+!9J`38iSYR+8D4YiQPv z4|P+VQR$XJ^QPQtaA$^EFw0P5QEkhpab%pYlo^L)oVLnpx!MpS1B%xIXn8^PpT{4cf zmr)ZU1DaP!%^Tco>uk35j^@|p=}KINT(-(;T$@9dly^QRY?s0|YnO1{4RruX9a`6VPm}GfqwXO%&S>sCA1D`vglR+u1i%}3F19k)) z87g*4-7<=786}R4m6p><#`4es=weiah=3Vo)Ihrc+;-HsWmMTRsvQ~2E%%U&MWL?h zV$_Gofa0|sn9=MOk zD|B0((3O$f6e0tPH#jns8EtM6Ew+eOv<|lHD00bI++Idju$>*gAfGx3X)ov+gL20L*Q5)ypLFFRGT`%4M}{>5 zxbNhaQEAJla?H5m64C4uks)$NU5E_WQRB!^BhciQ(O}DHbYy(wk}<|5Lx^Y%5dp=U zMZ@d%)sUQYS*5Pw@ReG_k%?AoI0CNR@k#sKkz48>WGJ4^cTL3@=exQ3ZLR^dT2pza zHLx_zDnkdkt5Fof6`B`V4eps-?iNvMizpK! z2&~2x3E7diIzs-AJjmjrE5<0Yn+ohg8ED`peo#LCBkb%h$D`ul>xG*Y1sV^Z*uW z<(?4*d_0HmpU-~Mxv3U)+7ee29I}AD${th5($f~QMixAz3O3S_BFX3wuzP0K^34lb z_MN`3^pOKJPuCcH&{1f8hX1yJo$Q89JZO*gMh(y&Fp}Rfih{pb#BOTX+x1!@8;--r zh3suMjYlqJZ^vPmB6y^;XX7w>{9jAi1K7E?cqw~%z{F~g7Y4GC@qhPv259wcfEJM! zsg2M^(AGxkq>;~Zc;990y@#>m5lz$@g+|o8v}4z+qa}^unnaNC%Gg-E&^9~5$PKPp z#{R*&ldkD;q-_lTk=njk#PXwJ{d_Z&>xSAcn;X7rbw!V!06I<_wuVJ6SqqS?; zLL7W++3v{GYj==r`FEl8@33CpWnh>x=T3RakeKd%I$1jI{R0Z z?5{3oYnHR|A!Uy@`gYFd5nI_oCno*ki(YU+N$}!U_5|zPSYricHGg~?`&KU}CL67o ztVV&4%GG;yxeK9~YvbGaoNa7~!@1(5g|FjH+t_zIm(v&4DB277h$=SF0XCelfNk7Y z#qR3dwA%vK@MTqO@SU{7HeHX8O4Gc0JoDn!6@ImfOjU91jm|JV&k4v*NwM%|7>5`KBm8)@kzI6x@*UTp#V#iVY;4mA?viZ`(>=nnx(gw@MYToS# z`&oQBz4IiTAzps+@<5dKZCf0^bs;Q?tH*Z8eEzSq>@BV70AJe7UgB>aWvkGZa15Io zD|yZ_b`7=qb3in%BgAXLA2hIw`W;htdg5oX*oYYZ=1JCrk2uBRf^RpnZjm;_3ITtK zKYET8+APXT1q(j^ybw%mSy8aCnf+FSx4T`!j9|IJK`rdt)f=*@D=PM&7m4mZ(+!xf0KxluYPk`qfmtFKM^V}f z%s@6p*7jm2`(NVUOELmM{5;xVO{=-d-|VOLj42$2!AQV#Lc^$jS|YsrgJkVBrq!;N zfSh&WlkC`QzghrvH1JoFwf@1bsoGOaD_JIS%_}S%8i8xn+jM5)DE_Gzbk>-Gh%zvqGNMAA<9yTBt&9^oL;7ZBR7h*#oqs z9x55OiBB~mZDt?gqpDb6zJGug)465070(U9a|5&o8MY6n+^22PeA)cOecBUrOuJw6 zWApXe`?VviJUHtC?e0jnGg$G6c9P-zQuwHLg0Znd^KlJ7uu;yh57Ck{+H$Zh=*jr+ zh|gjjxEHUW;5UHczipIE#j-066<>yN%M*X6QICd?-3{ev;M9OEM+|@_)W3RsDApO3no$YTdvcn zS)z*gt|zp<8T1P!1>K+VJd+XMhOdyJHodzM5r3aigW?y1@rLw$;yZ{-AB?}>DD_1c zM=Lxi`9@(woDq01J_SE+gk8VJ=TyuaO|6wwqz@>qyf6M4qa1CxJVUQ;Mx!W?-bCfx z-Soyz#utK+GlqB+t|vk%%DS;ll&uUkaJLSu-cvb|z`)lpaD7+Q%%eS;=<)Ke-?OWPAdR)a( zv1Cfa7hQ4rIQSi`&#;~RU+*J5R`MC|Yh~R|Z}%X3{#`AAiui9n(6(U#^U$9Wx@G+J zKLfj-|M#D@sop8OfW_M{Sdn1D&?~+;7h{=Wv|wQfCVcsSX+49(|4W;#C715k@6|nN z_#n0{bTSHL;SM9fTmP!vkGQ_;Z`wa_nDsYp5N5&NziGQ7BgK0%e94DekT3X9>k@qb zU)nSli&t#0l8KK>N3!N!GPFLSEstkV+7E8e&{n#z$f11lDD4k8AzT@y-R*RV!kMD~ zXzlHx7zQN9P9x(ZX=P=!%(7PgSVA=miD?nE+QhF)?AGHSPQx6*t3Kk1OLK7hXzjlv z*`naHSy~JmXer2IqTr3idQ1;m=|_w-JYHHP8@|Q*bA4iZqGsS5-#lO(RX9W}5cnb8 z;B{ja9KXrHM-X=$1-xZU7(8=~g5z8*m8SyXz5Y>Q_(Gq;| z%<6A6J2FddNO;K&%%*i(kG?m;&_&l3I=5A#b6YLu4Ohe9O;;2=`?7>*U$)?FEn)D? z76s40Nbo+|MGKvKF$|r1L7^MZN#>2`BpgZbQ?)0Y;cf-5s+Ms4-jjrvRfoY#b}Bf2X-aU%Pf$sCV^tWuew%^^wn{jD zs7k_fE5qPGbXs>_s1l>U{e^putLErH%K^s#Z1CWH-y2<)+>05kue zBxU;g3&P<3g$mxxZ*pACmGhB#+6=6f*~i*r8jgcL)xJx|Q8TrN=(u9GHkYyS{Ks>! zX4=WooWi{yYr}#+o2zYMu9oM6nfcl$XbJXRpp9Ti8E-7qzJtU3h1z3!GcHP`i}J&? zs-LH{!bJ_)%u4uu1zP{UMS(DI*=z+4@b{5a#FdONIA>-U+V59rA1^P^2I#&|EJdn6 z4nx=EDRj#W=}o$%5qdYw2!l6HS8!YbiLuJem2kYpID3(n64yFSLGq?b2wnexV~@U5 z!x(1gD0Jaui7uQh8TR#04uktADR>EgYq9nV9X~)S&omRm!1)stxGYQZ#;=r0+X}Jd zYPY~D8n57)V=ddpTJV<4FnH@21+N+<;rQWH!96YD3xgNlV)jWAzx~RaafZihwMFns zTKPAuy)IR43f+92i8D5SIab2!uZO{#t|>Tve3tvBgL$h&XSRl+bFL~hexX(}FS$Hp zoz}DSWft=^V;M%(EIuhuPwiYGm$3AlVK{y+v`b-&>WbgQc=HI_jnk(ph2PYj#1p$?lDl5_QG_(sL;NZmcc%LeVz77 zT60MlI;%vX+g30>f?|0E@$Tte5eCjFQsAOxjK5D~x=bn(SQdsZSgO#KODroZmq>W& zk}!DXVg+w5u;9%F5?)^r25(-d;CTxyc-{i3`GPQX-h74j&9l(Hd6Iea+%ULru7Wqt zw&0Dk1>9RYI}Bbii{K*N70PtiFW*jgD2QivUQfgbuP6TP7&-1uev56BUuse34`bW- zsnR0*6APaGiG;U(90t$)Si$RO2zU~{Cn3%Y)ic7-wbK>4#I%@~n3gWn!r+Zl6+An~ z)+NW%Wl9)4Yl?ywPO{*IlO)_fDGZ*Ut>6_CEO^BP2``xt1~2uSU3rTeTXBI~dCMbL2Bo(= z?a#*LH$C==slH9Z>)R}Nbz2y`?uLSwUlVYwIah7gyxyW~Vc@b>1rA)1-~jKo1v9y_ zB@A4BNr77~NN@{(lfVrZ!oW?<3Y>FZf^+x^0{hN~fwRsjaAA`K7jjmq_3Z0!3Ipe# zQQ!*xc%}9&z2cPRj*?Sh=(0wI4xA9I^}q=Wo^v7$o_AcqTaWRnTeUtzj?sf?FCJLn zJ{a9HWHGu&+$JkH7S_GwsOp}_N1(T!cSH#5(f3FgIQOsuw;Z(nS-4d@g{9eyFSTD} zl!@DU^pF%8K|Z`kle~XdXt$K0MLn`##A0w8ut+2ldi?#r;$VO`J@w`vY}3-8``@u} zRFKTfIloVgBgP`JLB|4qYnyiOV43r9o00Cq$_k!mMf|yaOQ+Blz9Oi1=YOukB+loP zsxDyH|)`wem9Z+7FH9T9Hfoc&raEKnEj*FMCP z)w>R8kM_u!fd@=9%y<$2__O zk$8GaJ6y1v;GAskiRM#IzoSmS{oH#@>y9#&(i?@qrAfTNgCnvdzKU#s|Y8YF+zn zdS;A_jj}t;adq&!I^?=LjEs%6@w@N4mj;FSZ)ne+m=Y_UCV_;8FpZXP2+4Fz7VRYQSq=%}Fp zTQwBKcYK5P4*Me5(x7R2T%}A5v6NaWxZbE8!0m>^joKo7NGa=-_813@#AO%H`pnU%J8EwZs|9>olziQIH&Hg{Zyz;DeA1mOO&SKW(^W<~d z4{>-G_h7ro{AI9_#p%6`5`O1-?VkWnKCj(%ha?rFb@h4ew`lb?YxgG0+?9r19r$%9 z`fQCC`&jTy>FpS#y5BWx_k63PRHucdI;0iC*w?QtFb_~ajHy?D$8tqX4dCSA}5 zb&<@x(Re66(kSGwU(kAWx7)m(KS;L;<1c8#U{l2figjdob!|03h^n2Xx)0r>Mp z?KvCJIRsF3QR{D8CsK6i(iGNpy`(+)kj30X3Z)Z!v6adjYn@C;7_z_DdV{Kv|NWBo zG~||E((a0cM~xzW^pds~*)-6i@kl)Nk5A%4fyn=2vcN_wz+dSsy;^me$#(irrqI{`i*m z!Oz-6%n8kL#zjr0@;lIi9a&&PCq?9SZ1>8E#|f6rllhsFF3iVW)Y1&x!MuCkCIFtMtT= z#B~Dh5_R?%XRADTtp4|y-gv)6wvW@&QRZKC*8AZZ?BUM(bCGiENhEftV0Q|3s4yd+ z4~o}krO;NQJH!LU^iH65^LC<*L|TTIeiAl#Azt5a?QWrMMoeroqP}%K^iO+>zSw~j z1yZ~>DxRSmwnYXf_tbCP!PW;S^wobH!2-b}{q)ydn_sXM%F^Jad-S|y;zFC5tgTFO zLPjK5;RTvi{q_4@yK9`D!|&6lBARyIrzbF9u<rAJJ5H=sOUwX1>q)(T zu;K~*+m;7Iw{s;vt$!@^$LnyUKRKc^Il>zO{W}|(!5vTQ&udV$*E9OFI)1pEcP-TK z=7)~4PQi)K=>09PkZ(0%H*FGI{<@xxF0VYRCun)K!3!_ze`CDr4ZRO7p>0F;FX+9oZK(AHeME%B-Ig=P^x(gIRUb`;yb43IgRQUX^IhTBp^J3vIt#w@td0xLlW*vyQd=4bT?_>6v0Cw_ z{sEXyd`C}aO~Dbr)=zb0RB-5T^$Dym`6J30;OwoF0U0F&ax)KpsNWy#`g{E?OR-Q< zAN^7P3q;-gqn=C~+l*i94+mcwsjs#KhJsysX%*{&0OKab58kuKI27#WjQwsl=YKGM zo+XFEoG-D7DNB^on(9ui?_Wh^+4~oE#KZK97 zgR4H&za8B{-~?kb^*epzE1f|IiJOEgVJP1Jvm=7SUUxsg~3|9h(b z1in*PI#quWvsIg>zj;4xD)Pkp7|ykxXX9v3RsEER_>b7LX*yP@Ua^2chQ&2SA)h== zPe;EM)Aa8=R47pCEY1^y(Dvt0AF*SYF7)DWX|xAdkFl5-etws!dwWz(wqXE08;5`J zi)%kK_467&srbSSJu5b_U0gZgz75v?bu+MQ{_ z6}c#{Mh#P>Sl1#CP1M80!jVy$=*5(;XmVzl7n4jw<&=}}xAxu#uJ-y`-*?!1uk~AN zuf6u)bME0@eu?zeD&wY+csU#8@$z{OmQ}n1^g6w}&zLbv;c$HRysq9y$NR>c1I@3h z41E0G1I8J7vuN%>*c<$@Q`xEiS zq`IQMFC|5L@q{S^|0Z57;%wMF(%^lCnbK%{W(+N<7WQht!1?@GzK7zQjOcOrE>`6` zGMAqP0&ip3S%zIrk2D!kJMp!y3X9AY*qgCEq~MESFK>6NV))M&$p&^%JoX+pTV z`p-vSX$5}$8c6wyxC}_(TDFESpS2p-B(oHM%$Ta#tOKr(PAFbS?ANHbWHKDV=o%@r zZ$=;0976=V%+_PrE(Y)mM+0bAzJD-2tbX>m(SjF}Ha8oUe$O2}VJ!0-sb5G+vGFTO z{MI7QHd${Qdxw7Ykch=U)dd8;S7WqMz&mm~j(f+LIdpht!MYtc-nAe%JI}T;%e~Tc zw;St5k8lq0vo+u*sQn9@BoB3cj+Na*Mcqd1IF=UUKEr!nN&S)d>5DnR)C?G2n(aZ7 z!029}?O(FYX3L)>zsk;*g#2t=H{j~Qo8-)&gM2bB%C8m^0&O{a-fQ;;9=pOxu`Ul(0PK?yPyJ1sYM5eBOv2z}bc5I&Xx};_Oyv^r4q! zZE$OJxetHFydrm2E=!apoL|oykA6cn?5(sl~*uNdg`Jws7s@zAujSl=sj3bYP{8^-E2 z(-rRG42u7^@yEdobk5MG(ik_1oPI((5P&b(ValM&Z;kgPxE`!h%KuK+>q=CJX1eg5 z@t&+VWERXN(AMvad}#{blEO8&f!!Ccgc}R9v$G1g-+g1|#5V>wEzk^w;du5A_OrPm zW8z6>K@w9jAGHClqY4;H7C$vLXIuU{_lBTN3c-MS>iCZlE{9D!UHp#`DuZ`Hn?{_! zx8i&r-*UjgNkxh{Uov*6IP*LNwVBPAEa)Scmkd1zS<4fhLLtxcYy~Ayrl0sg#;z2T zSK3OWa(^*R8cgO%4DwK`zfc|54OYu+!tYwoXIvadaggl2+GL5fT}+|rLY$W2UXcQ$ zNwjXD$nhCE0XHh7lgbB(Q?m9tuv#c%px7oWUOiVKywo{R`)5mK|C$B~HKrO-WD23Q z0PWf)^aflzHb@l6zLl1uZc?~n@(vbil(c~*Te^VWA0n=ku(J6Ic9!gcLJbv1n$^-Y znjR#s3*bKL0+UV;6JxNVaXE7V!b>Aw6C)=YB+whf#T*XIAn8O05KKj8<}gcZYP!-YU4-Q}y-({VsZa_b6TG%tUfg_fqikd960~tjuoyL5wXq3hre3rADltek=7>|d6@;|g zN#mA^>2!Utm@VD1EmaETW@)gckhV-I)Ie6ctWP1qXF^v2!gP+pMrr?&miL>VG+LYQ z0h1|-+@m$Faz(#Y;HLNYf7&eyj3FFi4Pme>pBILT*)l}Z@!FLNEGS`&2Cula-!j1S z#&NIPSM^WjnYZNTWakxZv6fbRHWe!7${A4y7}Leu$S+KMD_8tCZ&PuIK-zm7Jvvsb z@2@}LcBN24rPqk>*D0+UvntBcTC-kh zH9+QBf4Nqq>{?m3m*OUfNNFWzgR+uuuAYFIBO@1`sjL)3wuwrj_0m@iHdBZxVysDa zI!iYhsXd!^MTN1<-M5KzH=T7C+ImkNi!hV56+%3g?> zyk_}zP?1gE;8H4en{BpQYMLS*l!0obbccwR^`>n>z31cm=C&JUrh2p5VMU`LS6OL- ztS(ng)o<(V0w@43E_hvxK)IeR=>vbid2sR5Tezw>qhmUMuGnh;fL_lmSR&WNH6xq6pU?SbqZ*%yiBu_Z{sQ0AZ>z%jQ8%#{AaZ zO0D*OEEBtF#3Heb_2OhbUI>{&D0#m4L{7wvQkdUG&nyskOVbh;^?<@vP(zxY-5p?g zsCt3eEfJnyDuj(33w5VBAJmTSl!%}*g>aE)k?!6`u#``3IS%wFEBci}o~3}B#YfVs zn1?K{meLK2#bjx*3rwaoDq5`Tta?~`wTxj=(&|7ti&oItB|;q*JIa-w-4sr&rgBj@ z^J^8RD5L=tu~c_%*dq$+HEWhy(A+%=+6);6{4(9kjg+)pM8@%qO|0mj&G8A#vT`%C z3Y_b_i;(pkpko`v4(=nhEsCd=4X;_b-fCWUwNj{u z4C7~mQ1hb^Y^DfG&(vGTeIkD>=fJk_)w^q?Z+$cT>Q@x5mtuD4EiA2G`?QFb z6p1()cN>)y>4{MMs?umRy+zhUC_Sp0(*{}dQQCT+NT-Q+iy6|{4hWgbOxNAkM3~c{ z6v|DTt%UOL6E`zn-Yi?^w@N^mE>KLdjz!vQmU*98h~Ft(236dvW8no$TD?a)@1maj z^!nfZx&lX;Av>)_{j)~pOCr)Ra_koK>7Ek3COY0w_+}ITX{yic_rIy|9gsD?N%6bI zO%!^+R%nBeDS}qrua6Z)|E2A!Tlcso3Bb*YcelPfYXeJJx>HVN8Me}63WtZ74`@p< zZ?UD$2lNhg7Dc8w%KW9aRC-)m`t$+el9nc^F`U@!JH~HxVOzRvjMqa>&R>bJ!EBFb zMf=_|F*=3Ujf;>m#e9usTkBw-yh48V$JmGy3hVCGsky4m8Y8i9 ztFRRT<9eIoA3>i#^st!JzhagE!4zlOAF>7tzWGf)o^c?JBF7_QF)PK(2qm^Cd=0fc zEIyO#N*7ql_`N>s3ckNlQUs;_TAyJy{a)L9P@0N6r4Sx!eng*!&Vgn5`RyJtUE*q6 z6)u>PDzv55f9UfJuww z8)sCrLy-2K;Zyr%&xhKSN`+bexG>a;;(S+W)Io+VyHaeE8?^^)+Ot=Lj9?Y^CHRj@ z8K?6ntke0h_mpxbWa;?SiXXGyL1H8w+N;NP1`tfWX4hV8A{=Q~S^-GA+kLbaRSAc+ zY*gu6i(;y-((AE@TB?M4j@L}x09?gmr|W%HLkW+wMbuLzMy+PP{lC={cjo8h*tRpO zIKa2EmwfTAd%!I~V;B#F&5&lpV&@!ubo(NsH$Ou}{h?=2hV&!Rf?v zJSvdk0=IG%wqwp0SK!PCW1LR}&q?pTDn{SNbrgZk!6UTI2W`s~r94Yp#Y}<7pp>V@=y8m8X%T;V z!7lQQk{!u;x(gPDF|0-#ZHpm451!%u;d5iiwJd1U`fV|)R<_Xu9uFM0(?p*?Eutkf z_q zneAILZme(Fvgs>ln^u|Sa@C-(p1}c-yQ1e~Ho~9V;-~kbZ(&x%Co1H@d{{!he>nZ{ zl*9N{8qbFuZVfMIyp&maC+&Y$j8|QR7tycLckLQ{H-u}REN*8DWgNOe-c@?Ubo2y|LjdED{U zpsgy)G`z?7*<@+jqfJEgo8SWpY%H^E1bqgNX#a0@Bzv?5x6gvK>WRlZ><=kTZySN* zEg^3hT)_ywQSd%I%XlebtYs5tjh%f3 zcGnWrU61cJJZS_z5M*(9)$&!f%BrudlUe_>9`5<(bE;V`Y|dvZyyjlZH9U_0q#t*&DQSWIb1 zVFmoL(n=}H>?!lzxN7M37cdmqN+YvM*vgt0^dfo=ET#^65h!WE{x@ZygGI=<(4Sur zk@68vDvBL6?4aJz^HF5Vq#M8r;m}oUJXa|GhwlAsFhcDWU-W*wO3<{*6gmVSXL1D6*03 zxCkTfAu(XM9maaW)$iP(wk zksA;`{V?(3nh(fUTm`tcX*hoH7jXGPQ43qfP+{UtV+SBbxbDJrw}vzS9^{L0@%9rT zUuy~j*SZz2pfBq131$TiJS<{E*o}Nhc?dFb?C^$l11&f#7UA{1Cl2Fx_ewsX(}zVW zzO8WNi(<-T)@lD7QNc`M;!*u8)b|jshjEqT`ZX?YZ8GJ(C?aKRV*umH#l%O~3P2vk z^%$^8Sw73CjCH%I{O#JsyIu*eY7HlX+1T zQIw8EK5PiUaj@fSTKa`CmhkH@A(KnNco`MGf{Rz1c*nA=?74Y`x$dmYc`#w;r~|{) zPMuy6IggK&Zvg(LR^j)%eBPb0Rbf~*X%+U0XCkLumA@SskeAYqh&_1u5I^M`J(e{p zu{SgQP=iLiB67`#Ult{PxJ3!7$Mah|CDx1R*{s+5&mYrMd_I+)gr~p9)u=D-ZhU@K zFQ#0}CRPK&^uwwZA0M#Qi$fzh;)$38Xh%xtUyZ=$$9m{R+{xm-ySHBzkrUWdsh%T0 zW(o)T;YYBR}Q_ z&!LZ@_Q@3{I_P_tkU?qu2@_GY&=k>fhS@Py*hwayHs@gVFFuwn2VHc)6rn2QdUpMo zgRS(jiO9Cn*QSV+8udS+5koiNV*|e!TG=4NrADyN%=rJtUSrrT>79{%=i10!cSnO-1kd7gu_3jJWoqb;3>oVT(sL#K1F)9@IRtBYz*XM#_(UzV0;&L88CP&cTX98ctVUB{05gt*-}oL|2ZKJ z`SEvB9(+ff_G_oRTExwAz5aF}PS13vMK9kmgYdx)op&O?INq^#?S`VFb?bAs$4{l;Q(}yqRI4FN*RkoO zIj6)T$!_pr*U`RHcx;|d<|+Mpq65)mDy45uiO94sD@C9*;b$9wSEQd1f&N1S@D@BW n!-iqH49B%80xAOEc@Cx@hFvq#0ay<&;h&z$@Z{I