diff --git "a/webgpu_bridge/llama_webgpu_core.js" "b/webgpu_bridge/llama_webgpu_core.js" --- "a/webgpu_bridge/llama_webgpu_core.js" +++ "b/webgpu_bridge/llama_webgpu_core.js" @@ -1,2 +1,2 @@ -async function createLlamaWebGpuCoreModule(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&globalThis.name=="em-pthread";var programArgs=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{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=async url=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}var readyPromiseResolve,readyPromiseReject;var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{var msgData=e.data;var cmd=msgData.cmd;if(cmd==1){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:3});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:9,handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd==2){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(cmd==4){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:65536,shared:true})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();wasmExports["bb"]()}function preMain(){}function postRun(){if(ENVIRONMENT_IS_PTHREAD){return}if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("llama_webgpu_core.wasm")}return new URL("llama_webgpu_core.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["qc"]);assignWasmExports(wasmExports);wasmModule=module;return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:2,start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,proxyMode,...callArgs)=>{var bufSize=8*callArgs.length*2;var sp=stackSave();var args=stackAlloc(bufSize);var b=args>>>3;for(var arg of callArgs){if(typeof arg=="bigint"){(growMemViews(),HEAP64)[b++>>>0]=1n;(growMemViews(),HEAP64)[b++>>>0]=arg}else{(growMemViews(),HEAP64)[b++>>>0]=0n;(growMemViews(),HEAPF64)[b++>>>0]=arg}}var rtn=__emscripten_run_js_on_main_thread(funcIndex,emAsmAddr,bufSize,args,proxyMode);stackRestore(sp);return rtn};function _proc_exit(code){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(0,0,1,code);EXITSTATUS=code;if(!keepRuntimeAlive()){PThread.terminateAllThreads();Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))}function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,returnCode);_exit(returnCode)}var exitJS=(status,implicit)=>{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var waitAsyncPolyfilled=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91;var PThread={unusedWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=4;while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency("loading-workers");await pthreadPoolReady;removeRunDependency("loading-workers")})},terminateAllThreads:()=>{for(var worker of Object.values(PThread.pthreads)){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.pthreads={}},terminateRuntime:()=>{PThread.terminateAllThreads();var pthread_ptr=_pthread_self();___set_thread_state(0,0,0,1);if(!waitAsyncPolyfilled){Atomics.notify((growMemViews(),HEAP32),pthread_ptr>>>2)}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e.data;var cmd=d.cmd;if(d.targetThread){var targetWorker=PThread.pthreads[d.targetThread];targetWorker?.postMessage(d);return}if(d==="setimmediate"||d==="_si"){worker.postMessage(d);return}switch(cmd){case 4:checkMailbox();break;case 5:spawnThread(d);break;case 6:callUserCallback(()=>cleanupThread(d.thread));break;case 3:onFinishedLoading(worker);break;case 9:Module[d.handler](...d.args);break;default:if(cmd)err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:1,handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;if(Module["mainScriptUrlOrBlob"]){var pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}worker=new Worker(pthreadMainJs,{type:"module",name:"em-pthread"})}else worker=new Worker(new URL("llama_webgpu_core.js",import.meta.url),{type:"module",name:"em-pthread"});PThread.unusedWorkers.push(worker);return worker},getNewWorker(){if(PThread.unusedWorkers.length==0){var newWorker=PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(newWorker)}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var dynCalls={};function establishStackSpace(pthread_ptr){var stackHigh=(growMemViews(),HEAPU32)[pthread_ptr+48>>>2>>>0];var stackSize=(growMemViews(),HEAPU32)[pthread_ptr+52>>>2>>>0];var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var invokeEntryPoint=(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>dynCall_ii(ptr,a1))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}finish(result)};var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var ___call_sighandler=function(fp,sig){fp>>>=0;return(a1=>dynCall_vi(fp,a1))(sig)};var exceptionCaught=[];var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){ptr>>>=0;var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);return ___cxa_get_exception_ptr(ptr)}var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr)};var findMatchingCatch=args=>{setTempRet0(0);return 0};function ___cxa_find_matching_catch_2(){return findMatchingCatch([])}function ___cxa_find_matching_catch_3(arg0){arg0>>>=0;return findMatchingCatch([arg0])}var ___cxa_rethrow=()=>{if(!exceptionCaught.length){abort("no exception to throw")}var info=exceptionCaught.at(-1);var ptr=info.excPtr;info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++;abort()};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]=type}get_type(){return(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]}set_destructor(destructor){(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]=destructor}get_destructor(){return(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]}set_caught(caught){caught=caught?1:0;(growMemViews(),HEAP8)[this.ptr+12>>>0]=caught}get_caught(){return(growMemViews(),HEAP8)[this.ptr+12>>>0]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;(growMemViews(),HEAP8)[this.ptr+13>>>0]=rethrown}get_rethrown(){return(growMemViews(),HEAP8)[this.ptr+13>>>0]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]=adjustedPtr}get_adjusted_ptr(){return(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]}}function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);uncaughtExceptionCount++;abort()}function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr>>>=0;attr>>>=0;startRoutine>>>=0;arg>>>=0;if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=5;postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function ___resumeException(ptr){ptr>>>=0;abort()}var __abort_js=()=>abort("");function __emscripten_init_main_thread_js(tb){tb>>>=0;var can_block=!ENVIRONMENT_IS_WEB;try{Atomics.wait((growMemViews(),HEAP32),0,0,0);can_block=true}catch(e){}__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,can_block,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr>>>=0;if(!waitAsyncPolyfilled){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr>>>2,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+112;Atomics.store((growMemViews(),HEAP32),waitingAsync>>>2,1)}}var checkMailbox=()=>{var pthread_ptr=_pthread_self();if(!pthread_ptr)return;callUserCallback(()=>{__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()})};function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread>>>=0;currThreadId>>>=0;if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:4})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:4})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,bufSize,args,ctx,ctxArgs){emAsmAddr>>>=0;callingThread>>>=0;args>>>=0;ctx>>>=0;ctxArgs>>>=0;proxiedJSCallArgs.length=0;var b=args>>>3;var end=args+bufSize>>>3;while(b>>0]){arg=(growMemViews(),HEAP64)[b++>>>0]}else{arg=(growMemViews(),HEAPF64)[b++>>>0]}proxiedJSCallArgs.push(arg)}var func=proxiedFunctionTable[funcIndex];PThread.currentProxiedOperationCallerThread=callingThread;var rtn=func(...proxiedJSCallArgs);PThread.currentProxiedOperationCallerThread=0;if(ctx){rtn.then(rtn=>__emscripten_run_js_on_main_thread_done(ctx,ctxArgs,rtn));return}return rtn}var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread>>>=0;if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:6,thread})}function __emscripten_thread_set_strongref(thread){thread>>>=0}var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63;i++}}heap[outIdx>>>0]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU32)[timezone>>>2>>>0]=stdTimezoneOffset*60;(growMemViews(),HEAP32)[daylight>>>2>>>0]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset>>=0;return(growMemViews(),HEAPU8).set(wasmFSPreloadedFiles[index].fileData,buffer>>>0)}var wasmFS$backends={};var wasmFS$JSMemoryRanges={};var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{idx>>>=0;var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{ptr>>>=0;return ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):""};async function __wasmfs_create_fetch_backend_js(backend){backend>>>=0;async function getFileRange(file,offset,len){var url="";var fileUrl_p=__wasmfs_fetch_get_file_url(file);var fileUrl=UTF8ToString(fileUrl_p);var isAbs=fileUrl.indexOf("://")!==-1;if(isAbs){url=fileUrl}else{try{var u=new URL(fileUrl,self.location.origin);url=u.toString()}catch(_e){throw{status:404}}}var chunkSize=__wasmfs_fetch_get_chunk_size(file);offset??=0;len??=chunkSize;if(!(file in wasmFS$JSMemoryRanges)){var fileInfo=await fetch(url,{method:"HEAD",headers:{Range:"bytes=0-"}});if(fileInfo.ok&&fileInfo.headers.has("Content-Length")&&fileInfo.headers.get("Accept-Ranges")=="bytes"&&parseInt(fileInfo.headers.get("Content-Length"),10)>chunkSize*2){var size=parseInt(fileInfo.headers.get("Content-Length"),10);wasmFS$JSMemoryRanges[file]={size,chunks:[],chunkSize};len=Math.min(len,size-offset)}else{var wholeFileReq=await fetch(url);if(!wholeFileReq.ok){throw wholeFileReq}var wholeFileData=new Uint8Array(await wholeFileReq.arrayBuffer());wasmFS$JSMemoryRanges[file]={size:wholeFileData.byteLength,chunks:[wholeFileData],chunkSize:wholeFileData.byteLength};return}}var firstChunk=offset/chunkSize|0;var lastChunk=(offset+len-1)/chunkSize|0;var allPresent=true;var i;for(i=firstChunk;i<=lastChunk;i++){if(!wasmFS$JSMemoryRanges[file].chunks[i]){allPresent=false;break}}if(allPresent){return}var start=firstChunk*chunkSize;var end=(lastChunk+1)*chunkSize;var response=await fetch(url,{headers:{Range:`bytes=${start}-${end-1}`}});if(!response.ok){throw response}var bytes=new Uint8Array(await response["arrayBuffer"]());for(i=firstChunk;i<=lastChunk;i++){wasmFS$JSMemoryRanges[file].chunks[i]=bytes.slice(i*chunkSize-start,(i+1)*chunkSize-start)}}wasmFS$backends[backend]={allocFile:async file=>{},freeFile:async file=>{wasmFS$JSMemoryRanges[file]=undefined},write:async(file,buffer,length,offset)=>{console.error("TODO: file writing in fetch backend? read-only for now")},read:async(file,buffer,length,offset)=>{if(offset<0||length<=0){return 0}try{await getFileRange(file,offset||0,length)}catch(failedResponse){return failedResponse.status===404?-44:-8}var fileInfo=wasmFS$JSMemoryRanges[file];length=Math.min(length,fileInfo.size-offset);if(length<=0){return 0}var chunks=fileInfo.chunks;var chunkSize=fileInfo.chunkSize;var firstChunk=offset/chunkSize|0;var lastChunk=(offset+length-1)/chunkSize|0;var readLength=0;for(var i=firstChunk;i<=lastChunk;i++){var chunk=chunks[i];var start=Math.max(i*chunkSize,offset);var chunkStart=i*chunkSize;var end=Math.min(chunkStart+chunkSize,offset+length);(growMemViews(),HEAPU8).set(chunk.subarray(start-chunkStart,end-chunkStart),buffer+(start-offset)>>>0);readLength=end-offset}return readLength},getSize:async file=>{try{await getFileRange(file,0,0)}catch(failedResponse){return 0}return wasmFS$JSMemoryRanges[file].size}}}var wasmFSPreloadedDirs=[];var __wasmfs_get_num_preloaded_dirs=()=>wasmFSPreloadedDirs.length;var wasmFSPreloadedFiles=[];var wasmFSPreloadingFlushed=false;var __wasmfs_get_num_preloaded_files=()=>{wasmFSPreloadingFlushed=true;return wasmFSPreloadedFiles.length};function __wasmfs_get_preloaded_child_path(index,childNameBuffer){childNameBuffer>>>=0;var s=wasmFSPreloadedDirs[index].childName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,childNameBuffer,len)}var __wasmfs_get_preloaded_file_mode=index=>wasmFSPreloadedFiles[index].mode;function __wasmfs_get_preloaded_file_size(index){return wasmFSPreloadedFiles[index].fileData.length}function __wasmfs_get_preloaded_parent_path(index,parentPathBuffer){parentPathBuffer>>>=0;var s=wasmFSPreloadedDirs[index].parentPath;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,parentPathBuffer,len)}var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};function __wasmfs_get_preloaded_path_name(index,fileNameBuffer){fileNameBuffer>>>=0;var s=wasmFSPreloadedFiles[index].pathName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,fileNameBuffer,len)}function __wasmfs_jsimpl_alloc_file(backend,file){backend>>>=0;file>>>=0;return wasmFS$backends[backend].allocFile(file)}async function __wasmfs_jsimpl_async_alloc_file(ctx,backend,file){ctx>>>=0;backend>>>=0;file>>>=0;await wasmFS$backends[backend].allocFile(file);_emscripten_proxy_finish(ctx)}async function __wasmfs_jsimpl_async_free_file(ctx,backend,file){ctx>>>=0;backend>>>=0;file>>>=0;await wasmFS$backends[backend].freeFile(file);_emscripten_proxy_finish(ctx)}async function __wasmfs_jsimpl_async_get_size(ctx,backend,file,size_p){ctx>>>=0;backend>>>=0;file>>>=0;size_p>>>=0;var size=await wasmFS$backends[backend].getSize(file);(growMemViews(),HEAP64)[size_p>>>3>>>0]=BigInt(size);_emscripten_proxy_finish(ctx)}async function __wasmfs_jsimpl_async_read(ctx,backend,file,buffer,length,offset,result_p){ctx>>>=0;backend>>>=0;file>>>=0;buffer>>>=0;length>>>=0;offset=bigintToI53Checked(offset);result_p>>>=0;var result=await wasmFS$backends[backend].read(file,buffer,length,offset);(growMemViews(),HEAPU32)[result_p>>>2>>>0]=result;_emscripten_proxy_finish(ctx)}async function __wasmfs_jsimpl_async_write(ctx,backend,file,buffer,length,offset,result_p){ctx>>>=0;backend>>>=0;file>>>=0;buffer>>>=0;length>>>=0;offset=bigintToI53Checked(offset);result_p>>>=0;var result=await wasmFS$backends[backend].write(file,buffer,length,offset);(growMemViews(),HEAPU32)[result_p>>>2>>>0]=result;_emscripten_proxy_finish(ctx)}function __wasmfs_jsimpl_free_file(backend,file){backend>>>=0;file>>>=0;return wasmFS$backends[backend].freeFile(file)}function __wasmfs_jsimpl_get_size(backend,file){backend>>>=0;file>>>=0;return wasmFS$backends[backend].getSize(file)}function __wasmfs_jsimpl_read(backend,file,buffer,length,offset){backend>>>=0;file>>>=0;buffer>>>=0;length>>>=0;offset=bigintToI53Checked(offset);if(!wasmFS$backends[backend].read){return-28}return wasmFS$backends[backend].read(file,buffer,length,offset)}function __wasmfs_jsimpl_set_size(backend,file,size){backend>>>=0;file>>>=0;size=bigintToI53Checked(size);return wasmFS$backends[backend].setSize(file,size)}function __wasmfs_jsimpl_write(backend,file,buffer,length,offset){backend>>>=0;file>>>=0;buffer>>>=0;length>>>=0;offset=bigintToI53Checked(offset);if(!wasmFS$backends[backend].write){return-28}return wasmFS$backends[backend].write(file,buffer,length,offset)}var FS_stdin_getChar_buffer=[];var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var __wasmfs_stdin_get_char=()=>{var c=FS_stdin_getChar();if(typeof c==="number"){return c}return-1};var __wasmfs_thread_utils_heartbeat=function(queue){queue>>>=0;var intervalID=setInterval(()=>{if(ABORT){clearInterval(intervalID)}else{_emscripten_proxy_execute_queue(queue)}},50)};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime>>>3>>>0]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};function _emscripten_err(str){str>>>=0;return err(UTF8ToString(str))}var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>4294901760;function _emscripten_get_heap_max(){return getHeapMax()}var _emscripten_has_asyncify=()=>1;var _emscripten_num_logical_cores=()=>navigator["hardwareConcurrency"];function _emscripten_out(str){str>>>=0;return out(UTF8ToString(str))}var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var _emscripten_unwind_to_js_event_loop=()=>{throw"unwind"};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=num;var lower=(growMemViews(),HEAPU32)[ptr>>>2>>>0];(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr>>>2>>>0]+(growMemViews(),HEAP32)[ptr+4>>>2>>>0]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{ptr>>>=0;WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;ptr>>>=0;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState==="unmapped");var bufferPtr=_emwgpuImportBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>dynCall_viii(callback,a1,a2,a3))(type,messagePtr,userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=(growMemViews(),HEAPU32)[root>>>2>>>0];ptr;ptr=(growMemViews(),HEAPU32)[ptr>>>2>>>0]){var sType=(growMemViews(),HEAP32)[ptr+4>>>2>>>0];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=data;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=length},makeStringFromStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];if(!ptr){if(length===0){return""}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr>>>3>>>0],g:(growMemViews(),HEAPF64)[ptr+8>>>3>>>0],b:(growMemViews(),HEAPF64)[ptr+16>>>3>>>0],a:(growMemViews(),HEAPF64)[ptr+24>>>3>>>0]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr>>>2>>>0],height:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],depthOrArrayLayers:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr>>>2>>>0],y:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],z:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr>>>2>>>0]),mipLevel:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],origin:WebGPU.makeOrigin3D(ptr+8),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[ptr+20>>>2>>>0]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0];var rowsPerImage=(growMemViews(),HEAPU32)[ptr+12>>>2>>>0];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+16>>>2>>>0]);return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0],endOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+12>>>2>>>0]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i>>3>>>0]}return constants},makePipelineLayout:layoutPtr=>{if(!layoutPtr)return"auto";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[ptr+16>>>2>>>0],(growMemViews(),HEAPU32)[ptr+20>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+8)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),compute:WebGPU.makeComputeState(descriptor+16)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[psPtr+4>>>2>>>0]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[psPtr+8>>>2>>>0]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[psPtr+12>>>2>>>0]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[psPtr+16>>>2>>>0]],unclippedDepth:!!(growMemViews(),HEAPU32)[psPtr+20>>>2>>>0]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr>>>2>>>0]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+4>>>2>>>0]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+8>>>2>>>0]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[csPtr+4>>>2>>>0]];return format?{format,blend:makeBlendState((growMemViews(),HEAPU32)[csPtr+8>>>2>>>0]),writeMask:(growMemViews(),HEAPU32)[csPtr+16>>>2>>>0]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>>2>>>0]],failOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+4>>>2>>>0]],depthFailOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+8>>>2>>>0]],passOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+12>>>2>>>0]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{format:WebGPU.TextureFormat[(growMemViews(),HEAP32)[dssPtr+4>>>2>>>0]],depthWriteEnabled:!!(growMemViews(),HEAPU32)[dssPtr+8>>>2>>>0],depthCompare:WebGPU.CompareFunction[(growMemViews(),HEAP32)[dssPtr+12>>>2>>>0]],stencilFront:makeStencilStateFace(dssPtr+16),stencilBack:makeStencilStateFace(dssPtr+32),stencilReadMask:(growMemViews(),HEAPU32)[dssPtr+48>>>2>>>0],stencilWriteMask:(growMemViews(),HEAPU32)[dssPtr+52>>>2>>>0],depthBias:(growMemViews(),HEAP32)[dssPtr+56>>>2>>>0],depthBiasSlopeScale:(growMemViews(),HEAPF32)[dssPtr+60>>>2>>>0],depthBiasClamp:(growMemViews(),HEAPF32)[dssPtr+64>>>2>>>0]}}function makeVertexAttribute(vaPtr){return{format:WebGPU.VertexFormat[(growMemViews(),HEAP32)[vaPtr+4>>>2>>>0]],offset:readI53FromI64(vaPtr+8),shaderLocation:(growMemViews(),HEAPU32)[vaPtr+16>>>2>>>0]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>>2>>>0]];var attributeCount=(growMemViews(),HEAPU32)[vbPtr+16>>>2>>>0];if(!stepMode&&!attributeCount){return null}return{arrayStride:readI53FromI64(vbPtr+8),stepMode,attributes:makeVertexAttributes(attributeCount,(growMemViews(),HEAPU32)[vbPtr+20>>>2>>>0])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[viPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+20>>>2>>>0]),buffers:makeVertexBuffers((growMemViews(),HEAPU32)[viPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(viPtr+8)};return desc}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{count:(growMemViews(),HEAPU32)[msPtr+4>>>2>>>0],mask:(growMemViews(),HEAPU32)[msPtr+8>>>2>>>0],alphaToCoverageEnabled:!!(growMemViews(),HEAPU32)[msPtr+12>>>2>>>0]}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[fsPtr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[fsPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+20>>>2>>>0]),targets:makeColorStates((growMemViews(),HEAPU32)[fsPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(fsPtr+8)};return desc}var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),vertex:makeVertexState(descriptor+16),primitive:makePrimitiveState(descriptor+48),depthStencil:makeDepthStencilState((growMemViews(),HEAPU32)[descriptor+72>>>2>>>0]),multisample:makeMultisampleState(descriptor+76),fragment:makeFragmentState((growMemViews(),HEAPU32)[descriptor+92>>>2>>>0])};return desc},fillLimitStruct:(limits,limitsOutPtr)=>{var nextInChainPtr=(growMemViews(),HEAPU32)[limitsOutPtr>>>2>>>0];function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[basePtr+limitOffset>>>2>>>0]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32("maxTextureDimension1D",limitsOutPtr,4);setLimitValueU32("maxTextureDimension2D",limitsOutPtr,8);setLimitValueU32("maxTextureDimension3D",limitsOutPtr,12);setLimitValueU32("maxTextureArrayLayers",limitsOutPtr,16);setLimitValueU32("maxBindGroups",limitsOutPtr,20);setLimitValueU32("maxBindGroupsPlusVertexBuffers",limitsOutPtr,24);setLimitValueU32("maxBindingsPerBindGroup",limitsOutPtr,28);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",limitsOutPtr,32);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",limitsOutPtr,36);setLimitValueU32("maxSampledTexturesPerShaderStage",limitsOutPtr,40);setLimitValueU32("maxSamplersPerShaderStage",limitsOutPtr,44);setLimitValueU32("maxStorageBuffersPerShaderStage",limitsOutPtr,48);setLimitValueU32("maxStorageTexturesPerShaderStage",limitsOutPtr,52);setLimitValueU32("maxUniformBuffersPerShaderStage",limitsOutPtr,56);setLimitValueU32("minUniformBufferOffsetAlignment",limitsOutPtr,80);setLimitValueU32("minStorageBufferOffsetAlignment",limitsOutPtr,84);setLimitValueU64("maxUniformBufferBindingSize",limitsOutPtr,64);setLimitValueU64("maxStorageBufferBindingSize",limitsOutPtr,72);setLimitValueU32("maxVertexBuffers",limitsOutPtr,88);setLimitValueU64("maxBufferSize",limitsOutPtr,96);setLimitValueU32("maxVertexAttributes",limitsOutPtr,104);setLimitValueU32("maxVertexBufferArrayStride",limitsOutPtr,108);setLimitValueU32("maxInterStageShaderVariables",limitsOutPtr,112);setLimitValueU32("maxColorAttachments",limitsOutPtr,116);setLimitValueU32("maxColorAttachmentBytesPerSample",limitsOutPtr,120);setLimitValueU32("maxComputeWorkgroupStorageSize",limitsOutPtr,124);setLimitValueU32("maxComputeInvocationsPerWorkgroup",limitsOutPtr,128);setLimitValueU32("maxComputeWorkgroupSizeX",limitsOutPtr,132);setLimitValueU32("maxComputeWorkgroupSizeY",limitsOutPtr,136);setLimitValueU32("maxComputeWorkgroupSizeZ",limitsOutPtr,140);setLimitValueU32("maxComputeWorkgroupsPerDimension",limitsOutPtr,144);setLimitValueU32("maxImmediateSize",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12,limits.maxStorageTexturesPerShaderStage);setLimitValueU32("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[infoStruct+52>>>2>>>0]=info.subgroupMinSize;(growMemViews(),HEAPU32)[infoStruct+56>>>2>>>0]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+4,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+12,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+20,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+28,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[infoStruct+36>>>2>>>0]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[infoStruct+40>>>2>>>0]=adapterType;(growMemViews(),HEAPU32)[infoStruct+44>>>2>>>0]=0;(growMemViews(),HEAPU32)[infoStruct+48>>>2>>>0]=0},AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],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","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,,"uniform","storage","read-only-storage"],BufferMapState:[,"unmapped","pending","mapped"],CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:[,"success","callback-cancelled"],ComponentSwizzle:[,"0","1","r","g","b","a"],CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],CullMode:[,"none","front","back"],ErrorFilter:[,"validation","out-of-memory","internal"],FeatureLevel:[,"compatibility","core"],FeatureName:{1:"core-features-and-limits",2:"depth-clip-control",3:"depth32float-stencil8",4:"texture-compression-bc",5:"texture-compression-bc-sliced-3d",6:"texture-compression-etc2",7:"texture-compression-astc",8:"texture-compression-astc-sliced-3d",9:"timestamp-query",10:"indirect-first-instance",11:"shader-f16",12:"rg11b10ufloat-renderable",13:"bgra8unorm-storage",14:"float32-filterable",15:"float32-blendable",16:"clip-distances",17:"dual-source-blending",18:"subgroups",19:"texture-formats-tier1",20:"texture-formats-tier2",21:"primitive-index",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],LoadOp:[,"load","clear"],MipmapFilterMode:[,"nearest","linear"],OptionalBool:["false","true"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb","display-p3"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:[,"occlusion","timestamp"],SamplerBindingType:[,,"filtering","non-filtering","comparison"],Status:[,"success","error"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-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"],ToneMappingMode:[,"standard","extended"],VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],VertexStepMode:[,"vertex","instance"],WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1","linear_indexing"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr>>>=0;futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr>>>=0;queuePtr>>>=0;descriptor>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=(growMemViews(),HEAPU32)[descriptor+12>>>2>>>0];if(requiredFeatureCount){var requiredFeaturesPtr=(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0];desc["requiredFeatures"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr>>>2>>>0,requiredFeaturesPtr+requiredFeatureCount*4>>>2>>>0),feature=>WebGPU.FeatureName[feature])}var limitsPtr=(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0];if(limitsPtr){var nextInChainPtr=(growMemViews(),HEAPU32)[limitsPtr>>>2>>>0];var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr>>>2>>>0];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr>>>2>>>0];var limitPart2=(growMemViews(),HEAPU32)[ptr+4>>>2>>>0];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined("maxTextureDimension1D",limitsPtr,4);setLimitU32IfDefined("maxTextureDimension2D",limitsPtr,8);setLimitU32IfDefined("maxTextureDimension3D",limitsPtr,12);setLimitU32IfDefined("maxTextureArrayLayers",limitsPtr,16);setLimitU32IfDefined("maxBindGroups",limitsPtr,20);setLimitU32IfDefined("maxBindGroupsPlusVertexBuffers",limitsPtr,24);setLimitU32IfDefined("maxBindingsPerBindGroup",limitsPtr,28);setLimitU32IfDefined("maxDynamicUniformBuffersPerPipelineLayout",limitsPtr,32);setLimitU32IfDefined("maxDynamicStorageBuffersPerPipelineLayout",limitsPtr,36);setLimitU32IfDefined("maxSampledTexturesPerShaderStage",limitsPtr,40);setLimitU32IfDefined("maxSamplersPerShaderStage",limitsPtr,44);setLimitU32IfDefined("maxStorageBuffersPerShaderStage",limitsPtr,48);setLimitU32IfDefined("maxStorageTexturesPerShaderStage",limitsPtr,52);setLimitU32IfDefined("maxUniformBuffersPerShaderStage",limitsPtr,56);setLimitU32IfDefined("minUniformBufferOffsetAlignment",limitsPtr,80);setLimitU32IfDefined("minStorageBufferOffsetAlignment",limitsPtr,84);setLimitU64IfDefined("maxUniformBufferBindingSize",limitsPtr,64);setLimitU64IfDefined("maxStorageBufferBindingSize",limitsPtr,72);setLimitU32IfDefined("maxVertexBuffers",limitsPtr,88);setLimitU64IfDefined("maxBufferSize",limitsPtr,96);setLimitU32IfDefined("maxVertexAttributes",limitsPtr,104);setLimitU32IfDefined("maxVertexBufferArrayStride",limitsPtr,108);setLimitU32IfDefined("maxInterStageShaderVariables",limitsPtr,112);setLimitU32IfDefined("maxColorAttachments",limitsPtr,116);setLimitU32IfDefined("maxColorAttachmentBytesPerSample",limitsPtr,120);setLimitU32IfDefined("maxComputeWorkgroupStorageSize",limitsPtr,124);setLimitU32IfDefined("maxComputeInvocationsPerWorkgroup",limitsPtr,128);setLimitU32IfDefined("maxComputeWorkgroupSizeX",limitsPtr,132);setLimitU32IfDefined("maxComputeWorkgroupSizeY",limitsPtr,136);setLimitU32IfDefined("maxComputeWorkgroupSizeZ",limitsPtr,140);setLimitU32IfDefined("maxComputeWorkgroupsPerDimension",limitsPtr,144);setLimitU32IfDefined("maxImmediateSize",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;if("maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype){setLimitU32IfDefined("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8);setLimitU32IfDefined("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12);setLimitU32IfDefined("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16);setLimitU32IfDefined("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20)}}desc["requiredLimits"]=requiredLimits}var defaultQueuePtr=(growMemViews(),HEAPU32)[descriptor+24>>>2>>>0];if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+4)};desc["defaultQueue"]=defaultQueueDesc}desc["label"]=WebGPU.makeStringFromOptionalStringView(descriptor+4)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],messagePtr);stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(devicePtr,type,messagePtr);stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,devicePtr,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,devicePtr,messagePtr);if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,messagePtr)}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}};function _emwgpuBufferGetConstMappedRange(bufferPtr,offset,size){bufferPtr>>>=0;offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);if(size==4294967295)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data>>>0);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data}var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr>>>=0;futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==4294967295)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name==="AbortError"?4:ex.name==="OperationError"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,messagePtr);delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i>>=0;delete WebGPU.Internals.jsObjects[ptr]}function _emwgpuDeviceCreateBuffer(devicePtr,descriptor,bufferPtr){devicePtr>>>=0;descriptor>>>=0;bufferPtr>>>=0;var mappedAtCreation=!!(growMemViews(),HEAPU32)[descriptor+32>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),usage:(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],size:readI53FromI64(descriptor+24),mappedAtCreation};var device=WebGPU.getJsObject(devicePtr);var buffer;try{buffer=device.createBuffer(desc)}catch(ex){return false}WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);if(mappedAtCreation){WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[]}return true}function _emwgpuDeviceCreateShaderModule(devicePtr,descriptor,shaderModulePtr){devicePtr>>>=0;descriptor>>>=0;shaderModulePtr>>>=0;var nextInChainPtr=(growMemViews(),HEAPU32)[descriptor>>>2>>>0];var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),code:""};switch(sType){case 2:{desc["code"]=WebGPU.makeStringFromStringView(nextInChainPtr+8);break}}var device=WebGPU.getJsObject(devicePtr);WebGPU.Internals.jsObjectInsert(shaderModulePtr,device.createShaderModule(desc))}var _emwgpuDeviceDestroy=devicePtr=>{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr>>>=0;futureId=bigintToI53Checked(futureId);options>>>=0;adapterPtr>>>=0;var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[options+4>>>2>>>0]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[options+8>>>2>>>0]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[options+12>>>2>>>0]};var nextInChainPtr=(growMemViews(),HEAPU32)[options>>>2>>>0];if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[webxrOptions+8>>>2>>>0]}}if(!("gpu"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (navigator.gpu is not available)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,adapterPtr,0)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (requestAdapter returned null)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,adapterPtr,messagePtr);stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr>>>=0;futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr>>>=0;futureCount>>>=0;timeoutMSPtr>>>=0;return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr>>>2>>>0];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram;var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??"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 _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,__environ,environ_buf);__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU32)[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,penviron_count,penviron_buf_size);penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();(growMemViews(),HEAPU32)[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU32)[penviron_buf_size>>>2>>>0]=bufSize;return 0}var initRandomFill=()=>view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),0);var randomFill=view=>(randomFill=initRandomFill())(view);function _random_get(buffer,size){buffer>>>=0;size>>>=0;return randomFill((growMemViews(),HEAPU8).subarray(buffer>>>0,buffer+size>>>0))}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr>>>=0;info>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr>>>=0;limitsOutPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr>>>=0;var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};function _wgpuCommandEncoderBeginComputePass(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),timestampWrites:WebGPU.makePassTimestampWrites((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0])}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr}function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr>>>=0;srcPtr>>>=0;srcOffset=bigintToI53Checked(srcOffset);dstPtr>>>=0;dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}function _wgpuCommandEncoderFinish(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr}function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr>>>=0;groupPtr>>>=0;dynamicOffsetCount>>>=0;dynamicOffsetsPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr>>>2,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr>>>=0;pipelinePtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}function _wgpuComputePipelineGetBindGroupLayout(pipelinePtr,groupIndex){pipelinePtr>>>=0;var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr}var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;function makeEntry(entryPtr){var bufferPtr=(growMemViews(),HEAPU32)[entryPtr+8>>>2>>>0];var samplerPtr=(growMemViews(),HEAPU32)[entryPtr+32>>>2>>>0];var textureViewPtr=(growMemViews(),HEAPU32)[entryPtr+36>>>2>>>0];var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{14:ptr=>{externalTexturePtr=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+24);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+16),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[entryPtr+4>>>2>>>0],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>>2>>>0]),entries:makeEntries((growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0])};var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateBindGroup(0);WebGPU.Internals.jsObjectInsert(ptr,device.createBindGroup(desc));return ptr};function _wgpuDeviceCreateCommandEncoder(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr}function _wgpuDeviceCreateComputePipeline(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr}function _wgpuInstanceHasWGSLLanguageFeature(instance,featureEnumValue){instance>>>=0;if(!("wgslLanguageFeatures"in navigator.gpu)){return false}return navigator.gpu.wgslLanguageFeatures.has(WebGPU.WGSLLanguageFeatureName[featureEnumValue])}var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr>>>=0;commandCount>>>=0;commands>>>=0;var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP32).subarray(commands>>>2>>>0,commands+commandCount*4>>>2>>>0),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr>>>=0;bufferPtr>>>=0;bufferOffset=bigintToI53Checked(bufferOffset);data>>>=0;size>>>=0;var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data>>>0,data+size>>>0);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var readI53FromU64=ptr=>(growMemViews(),HEAPU32)[ptr>>>2>>>0]+(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]*4294967296;var FS_mknod=(path,mode,dev)=>FS.handleError(withStackSave(()=>{var pathBuffer=stringToUTF8OnStack(path);return __wasmfs_mknod(pathBuffer,mode,dev)}));var FS_create=(path,mode=438)=>{mode&=4095;mode|=32768;return FS_mknod(path,mode,0)};var FS_fileDataToTypedArray=data=>{if(typeof data=="string"){data=intArrayFromString(data,true)}if(!data.subarray){data=new Uint8Array(data)}return data};var FS_writeFile=(path,data)=>{var sp=stackSave();var pathBuffer=stringToUTF8OnStack(path);data=FS_fileDataToTypedArray(data);var len=data.length;var dataBuffer=_malloc(len);(growMemViews(),HEAPU8).set(data,dataBuffer>>>0);var ret=__wasmfs_write_file(pathBuffer,dataBuffer,len);_free(dataBuffer);stackRestore(sp);return ret};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{var pathName=name?parent+"/"+name:parent;var mode=FS_getMode(canRead,canWrite);if(!wasmFSPreloadingFlushed){wasmFSPreloadedFiles.push({pathName,fileData,mode})}else{FS_create(pathName,mode);FS_writeFile(pathName,fileData)}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;iid;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS_modeStringToFlags=str=>{if(typeof str!="string")return str;var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_mkdir=(path,mode=511)=>FS.handleError(withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_mkdir(buffer,mode)}));var FS_mkdirTree=(path,mode)=>{var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS_mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}};var FS_unlink=path=>withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_unlink(buffer)});var wasmFSDevices={};var wasmFSDeviceStreams={};var FS={ErrnoError:class extends Error{name="ErrnoError";message="FS error";constructor(code){super();this.errno=code}},handleError(returnValue){if(returnValue<0){throw new FS.ErrnoError(-returnValue)}return returnValue},createDataFile(parent,name,fileData,canRead,canWrite,canOwn){FS_createDataFile(parent,name,fileData,canRead,canWrite,canOwn)},createPath(parent,path,canRead,canWrite){var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);if(!wasmFSPreloadingFlushed){wasmFSPreloadedDirs.push({parentPath:parent,childName:part})}else{try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}}parent=current}return current},createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){return FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)},async preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish){return FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)},readFile(path,opts={}){opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var buf,length;withStackSave(()=>{var bufPtr=stackAlloc(4);var sizePtr=stackAlloc(4);FS.handleError(-__wasmfs_read_file(stringToUTF8OnStack(path),bufPtr,sizePtr));buf=(growMemViews(),HEAPU32)[bufPtr>>>2>>>0];length=readI53FromI64(sizePtr)});return opts.encoding==="utf8"?UTF8ToString(buf,length):(growMemViews(),HEAPU8).slice(buf,buf+length)},cwd:()=>UTF8ToString(__wasmfs_get_cwd()),analyzePath(path){var exists=!!FS.findObject(path);return{exists,object:{contents:exists?FS.readFile(path):null}}},mkdir:(path,mode)=>FS_mkdir(path,mode),mkdirTree:(path,mode)=>FS_mkdirTree(path,mode),rmdir:path=>FS.handleError(withStackSave(()=>__wasmfs_rmdir(stringToUTF8OnStack(path)))),open:(path,flags,mode=438)=>withStackSave(()=>{flags=FS_modeStringToFlags(flags);var buffer=stringToUTF8OnStack(path);var fd=FS.handleError(__wasmfs_open(buffer,flags,mode));return{fd}}),create:(path,mode)=>FS_create(path,mode),close:stream=>FS.handleError(-__wasmfs_close(stream.fd)),unlink:path=>FS_unlink(path),chdir:path=>withStackSave(()=>__wasmfs_chdir(stringToUTF8OnStack(path))),read(stream,buffer,offset,length,position){var seeking=typeof position!="undefined";var dataBuffer=_malloc(length);var bytesRead;if(seeking){bytesRead=__wasmfs_pread(stream.fd,dataBuffer,length,BigInt(position))}else{bytesRead=__wasmfs_read(stream.fd,dataBuffer,length)}if(bytesRead>0){buffer.set((growMemViews(),HEAPU8).subarray(dataBuffer>>>0,dataBuffer+bytesRead>>>0),offset)}_free(dataBuffer);return FS.handleError(bytesRead)},write(stream,buffer,offset,length,position,canOwn){var seeking=typeof position!="undefined";var dataBuffer=_malloc(length);for(var i=0;i>>0]=buffer[offset+i]}var bytesRead;if(seeking){bytesRead=__wasmfs_pwrite(stream.fd,dataBuffer,length,BigInt(position))}else{bytesRead=__wasmfs_write(stream.fd,dataBuffer,length)}_free(dataBuffer);return FS.handleError(bytesRead)},writeFile:(path,data)=>FS_writeFile(path,data),mmap:(stream,length,offset,prot,flags)=>{var buf=FS.handleError(__wasmfs_mmap(length,prot,flags,stream.fd,BigInt(offset)));return{ptr:buf,allocated:true}},msync:(stream,bufferPtr,offset,length,mmapFlags)=>FS.handleError(__wasmfs_msync(bufferPtr,length,mmapFlags)),munmap:(addr,length)=>FS.handleError(__wasmfs_munmap(addr,length)),symlink:(target,linkpath)=>withStackSave(()=>__wasmfs_symlink(stringToUTF8OnStack(target),stringToUTF8OnStack(linkpath))),readlink(path){return withStackSave(()=>{var bufPtr=stackAlloc(4);FS.handleError(__wasmfs_readlink(stringToUTF8OnStack(path),bufPtr));var readBuffer=(growMemViews(),HEAPU32)[bufPtr>>>2>>>0];return UTF8ToString(readBuffer)})},statBufToObject(statBuf){return{dev:(growMemViews(),HEAPU32)[statBuf>>>2>>>0],mode:(growMemViews(),HEAPU32)[statBuf+4>>>2>>>0],nlink:(growMemViews(),HEAPU32)[statBuf+8>>>2>>>0],uid:(growMemViews(),HEAPU32)[statBuf+12>>>2>>>0],gid:(growMemViews(),HEAPU32)[statBuf+16>>>2>>>0],rdev:(growMemViews(),HEAPU32)[statBuf+20>>>2>>>0],size:readI53FromI64(statBuf+24),blksize:(growMemViews(),HEAP32)[statBuf+32>>>2>>>0],blocks:(growMemViews(),HEAP32)[statBuf+36>>>2>>>0],atime:readI53FromI64(statBuf+40),mtime:readI53FromI64(statBuf+56),ctime:readI53FromI64(statBuf+72),ino:readI53FromU64(statBuf+88)}},stat(path){return withStackSave(()=>{var statBuf=stackAlloc(96);FS.handleError(__wasmfs_stat(stringToUTF8OnStack(path),statBuf));return FS.statBufToObject(statBuf)})},lstat(path){return withStackSave(()=>{var statBuf=stackAlloc(96);FS.handleError(__wasmfs_lstat(stringToUTF8OnStack(path),statBuf));return FS.statBufToObject(statBuf)})},chmod(path,mode){return FS.handleError(withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_chmod(buffer,mode)}))},lchmod(path,mode){return FS.handleError(withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_lchmod(buffer,mode)}))},fchmod(fd,mode){return FS.handleError(__wasmfs_fchmod(fd,mode))},utime:(path,atime,mtime)=>FS.handleError(withStackSave(()=>__wasmfs_utime(stringToUTF8OnStack(path),atime,mtime))),truncate(path,len){return FS.handleError(withStackSave(()=>__wasmfs_truncate(stringToUTF8OnStack(path),BigInt(len))))},ftruncate(fd,len){return FS.handleError(__wasmfs_ftruncate(fd,BigInt(len)))},findObject(path){var result=withStackSave(()=>__wasmfs_identify(stringToUTF8OnStack(path)));if(result==44){return null}return{isFolder:result==31,isDevice:false}},readdir:path=>withStackSave(()=>{var pathBuffer=stringToUTF8OnStack(path);var entries=[];var state=__wasmfs_readdir_start(pathBuffer);if(!state){throw new Error("No such directory")}var entry;while(entry=__wasmfs_readdir_get(state)){entries.push(UTF8ToString(entry))}__wasmfs_readdir_finish(state);return entries}),mount:(type,opts,mountpoint)=>{var backendPointer=type.createBackend(opts);return FS.handleError(withStackSave(()=>__wasmfs_mount(stringToUTF8OnStack(mountpoint),backendPointer)))},unmount:mountpoint=>FS.handleError(withStackSave(()=>_wasmfs_unmount(stringToUTF8OnStack(mountpoint)))),mknod:(path,mode,dev)=>FS_mknod(path,mode,dev),makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){var backendPointer=_wasmfs_create_jsimpl_backend();var definedOps={userRead:ops.read,userWrite:ops.write,allocFile:file=>{wasmFSDeviceStreams[file]={}},freeFile:file=>{wasmFSDeviceStreams[file]=undefined},getSize:file=>{},setSize:(file,size)=>0,read:(file,buffer,length,offset)=>{var bufferArray=(growMemViews(),HEAP8).subarray(buffer>>>0,buffer+length>>>0);try{var bytesRead=definedOps.userRead(wasmFSDeviceStreams[file],bufferArray,0,length,offset)}catch(e){return-e.errno}(growMemViews(),HEAP8).set(bufferArray,buffer>>>0);return bytesRead},write:(file,buffer,length,offset)=>{var bufferArray=(growMemViews(),HEAP8).subarray(buffer>>>0,buffer+length>>>0);try{var bytesWritten=definedOps.userWrite(wasmFSDeviceStreams[file],bufferArray,0,length,offset)}catch(e){return-e.errno}(growMemViews(),HEAP8).set(bufferArray,buffer>>>0);return bytesWritten}};wasmFS$backends[backendPointer]=definedOps;wasmFSDevices[dev]=backendPointer},createDevice(parent,name,input,output){if(typeof parent!="string"){throw new Error("Only string paths are accepted")}var path=PATH.join2(parent,name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i_wasmfs_create_file(stringToUTF8OnStack(path),mode,deviceBackend)))},rename(oldPath,newPath){return FS.handleError(withStackSave(()=>{var oldPathBuffer=stringToUTF8OnStack(oldPath);var newPathBuffer=stringToUTF8OnStack(newPath);return __wasmfs_rename(oldPathBuffer,newPathBuffer)}))},llseek(stream,offset,whence){return FS.handleError(__wasmfs_llseek(stream.fd,BigInt(offset),whence))}};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentFunction(original){var wrapper=(...args)=>{Asyncify.exportCallStack.push(original);try{return original(...args)}finally{if(!ABORT){var top=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}};Asyncify.funcWrappers.set(original,wrapper);return wrapper},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callstackFuncToId:new Map,callStackIdToFunc:new Map,funcWrappers:new Map,callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(func){if(!Asyncify.callstackFuncToId.has(func)){var id=Asyncify.callStackId++;Asyncify.callstackFuncToId.set(func,id);Asyncify.callStackIdToFunc.set(id,func)}return Asyncify.callstackFuncToId.get(func)},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runtimeKeepalivePush();runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve,reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){(growMemViews(),HEAPU32)[ptr>>>2>>>0]=stack;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);(growMemViews(),HEAP32)[ptr+8>>>2>>>0]=rewindId},getDataRewindFunc(ptr){var id=(growMemViews(),HEAP32)[ptr+8>>>2>>>0];var func=Asyncify.callStackIdToFunc.get(id);return func},doRewind(ptr){var original=Asyncify.getDataRewindFunc(ptr);var func=Asyncify.funcWrappers.get(original);runtimeKeepalivePop();return callUserCallback(func)},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync:startAsync=>Asyncify.handleSleep(async wakeUp=>{wakeUp(await startAsync())})};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer>>>0)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="pointer")return ret>>>0;if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i0){Module["preInit"].shift()()}}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["UTF8ToString"]=UTF8ToString;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,_environ_get,_environ_sizes_get];var _llamadart_webgpu_probe,_llamadart_webgpu_supports_pthreads,_llamadart_webgpu_pthread_pool_size,_llamadart_webgpu_backends_json,_llamadart_webgpu_last_error,_llamadart_webgpu_set_log_level,_llamadart_webgpu_load_model,_llamadart_webgpu_load_model_from_url,_wasmfs_create_file,_llamadart_webgpu_mmproj_load,_llamadart_webgpu_mmproj_free,_llamadart_webgpu_mmproj_supports_vision,_llamadart_webgpu_mmproj_supports_audio,_llamadart_webgpu_media_clear_pending,_llamadart_webgpu_media_add_file,_llamadart_webgpu_media_add_encoded,_llamadart_webgpu_media_add_rgb,_llamadart_webgpu_media_add_audio_f32,_llamadart_webgpu_tokenize_to_json,_llamadart_webgpu_last_tokens_json,_llamadart_webgpu_state_save_file,_llamadart_webgpu_state_load_file,_llamadart_webgpu_detokenize_from_json,_llamadart_webgpu_last_detokenized,_llamadart_webgpu_embed_to_json,_llamadart_webgpu_last_embedding_json,_llamadart_webgpu_generate,_llamadart_webgpu_begin_generation,_llamadart_webgpu_next_token,_llamadart_webgpu_last_piece,_llamadart_webgpu_end_generation,_llamadart_webgpu_request_cancel,_llamadart_webgpu_last_output,_llamadart_webgpu_get_context_size,_llamadart_webgpu_model_meta_json,_llamadart_webgpu_shutdown,_main,_malloc,_free,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuImportBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,__emscripten_thread_init,___set_thread_state,__emscripten_thread_crashed,_emscripten_proxy_execute_queue,_emscripten_proxy_finish,__emscripten_run_js_on_main_thread_done,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_check_mailbox,_memalign,_setThrew,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___cxa_decrement_exception_refcount,___cxa_get_exception_ptr,__wasmfs_fetch_get_file_url,__wasmfs_fetch_get_chunk_size,__wasmfs_read_file,__wasmfs_write_file,__wasmfs_mkdir,__wasmfs_rmdir,__wasmfs_open,__wasmfs_mknod,__wasmfs_unlink,__wasmfs_chdir,__wasmfs_symlink,__wasmfs_readlink,__wasmfs_write,__wasmfs_pwrite,__wasmfs_chmod,__wasmfs_fchmod,__wasmfs_lchmod,__wasmfs_llseek,__wasmfs_rename,__wasmfs_read,__wasmfs_pread,__wasmfs_truncate,__wasmfs_ftruncate,__wasmfs_close,__wasmfs_mmap,__wasmfs_msync,__wasmfs_munmap,__wasmfs_utime,__wasmfs_stat,__wasmfs_lstat,__wasmfs_mount,__wasmfs_identify,__wasmfs_readdir_start,__wasmfs_readdir_get,__wasmfs_readdir_finish,__wasmfs_get_cwd,_wasmfs_create_jsimpl_backend,_wasmfs_unmount,dynCall_viii,dynCall_ii,dynCall_vi,dynCall_vii,dynCall_iii,dynCall_ifi,dynCall_viiii,dynCall_viiiii,dynCall_iiii,dynCall_iiiii,dynCall_v,dynCall_viiiiiiiiii,dynCall_dii,dynCall_iiji,dynCall_iiiiii,dynCall_viiiiii,dynCall_iiiji,dynCall_iij,dynCall_iiiiiii,dynCall_iiiiiiiii,dynCall_jii,dynCall_viij,dynCall_viiiiiiii,dynCall_i,dynCall_jiii,dynCall_iiiij,dynCall_ji,dynCall_viijii,dynCall_viijijj,dynCall_jijiii,dynCall_viifffi,dynCall_viiiiiii,dynCall_viji,dynCall_jiji,dynCall_iidiiiii,dynCall_iiiiij,dynCall_iiiiid,dynCall_iiiiijj,dynCall_iiiiiiii,dynCall_iiiiiijj,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_llamadart_webgpu_probe=Module["_llamadart_webgpu_probe"]=wasmExports["cb"];_llamadart_webgpu_supports_pthreads=Module["_llamadart_webgpu_supports_pthreads"]=wasmExports["db"];_llamadart_webgpu_pthread_pool_size=Module["_llamadart_webgpu_pthread_pool_size"]=wasmExports["eb"];_llamadart_webgpu_backends_json=Module["_llamadart_webgpu_backends_json"]=wasmExports["fb"];_llamadart_webgpu_last_error=Module["_llamadart_webgpu_last_error"]=wasmExports["gb"];_llamadart_webgpu_set_log_level=Module["_llamadart_webgpu_set_log_level"]=wasmExports["hb"];_llamadart_webgpu_load_model=Module["_llamadart_webgpu_load_model"]=wasmExports["ib"];_llamadart_webgpu_load_model_from_url=Module["_llamadart_webgpu_load_model_from_url"]=wasmExports["jb"];_wasmfs_create_file=wasmExports["kb"];_llamadart_webgpu_mmproj_load=Module["_llamadart_webgpu_mmproj_load"]=wasmExports["lb"];_llamadart_webgpu_mmproj_free=Module["_llamadart_webgpu_mmproj_free"]=wasmExports["mb"];_llamadart_webgpu_mmproj_supports_vision=Module["_llamadart_webgpu_mmproj_supports_vision"]=wasmExports["nb"];_llamadart_webgpu_mmproj_supports_audio=Module["_llamadart_webgpu_mmproj_supports_audio"]=wasmExports["ob"];_llamadart_webgpu_media_clear_pending=Module["_llamadart_webgpu_media_clear_pending"]=wasmExports["pb"];_llamadart_webgpu_media_add_file=Module["_llamadart_webgpu_media_add_file"]=wasmExports["qb"];_llamadart_webgpu_media_add_encoded=Module["_llamadart_webgpu_media_add_encoded"]=wasmExports["rb"];_llamadart_webgpu_media_add_rgb=Module["_llamadart_webgpu_media_add_rgb"]=wasmExports["sb"];_llamadart_webgpu_media_add_audio_f32=Module["_llamadart_webgpu_media_add_audio_f32"]=wasmExports["tb"];_llamadart_webgpu_tokenize_to_json=Module["_llamadart_webgpu_tokenize_to_json"]=wasmExports["ub"];_llamadart_webgpu_last_tokens_json=Module["_llamadart_webgpu_last_tokens_json"]=wasmExports["vb"];_llamadart_webgpu_state_save_file=Module["_llamadart_webgpu_state_save_file"]=wasmExports["wb"];_llamadart_webgpu_state_load_file=Module["_llamadart_webgpu_state_load_file"]=wasmExports["xb"];_llamadart_webgpu_detokenize_from_json=Module["_llamadart_webgpu_detokenize_from_json"]=wasmExports["yb"];_llamadart_webgpu_last_detokenized=Module["_llamadart_webgpu_last_detokenized"]=wasmExports["zb"];_llamadart_webgpu_embed_to_json=Module["_llamadart_webgpu_embed_to_json"]=wasmExports["Ab"];_llamadart_webgpu_last_embedding_json=Module["_llamadart_webgpu_last_embedding_json"]=wasmExports["Bb"];_llamadart_webgpu_generate=Module["_llamadart_webgpu_generate"]=wasmExports["Cb"];_llamadart_webgpu_begin_generation=Module["_llamadart_webgpu_begin_generation"]=wasmExports["Eb"];_llamadart_webgpu_next_token=Module["_llamadart_webgpu_next_token"]=wasmExports["Fb"];_llamadart_webgpu_last_piece=Module["_llamadart_webgpu_last_piece"]=wasmExports["Gb"];_llamadart_webgpu_end_generation=Module["_llamadart_webgpu_end_generation"]=wasmExports["Hb"];_llamadart_webgpu_request_cancel=Module["_llamadart_webgpu_request_cancel"]=wasmExports["Ib"];_llamadart_webgpu_last_output=Module["_llamadart_webgpu_last_output"]=wasmExports["Jb"];_llamadart_webgpu_get_context_size=Module["_llamadart_webgpu_get_context_size"]=wasmExports["Kb"];_llamadart_webgpu_model_meta_json=Module["_llamadart_webgpu_model_meta_json"]=wasmExports["Lb"];_llamadart_webgpu_shutdown=Module["_llamadart_webgpu_shutdown"]=wasmExports["Mb"];_main=Module["_main"]=wasmExports["Nb"];_malloc=wasmExports["Ob"];_free=wasmExports["Pb"];_emwgpuCreateBindGroup=wasmExports["Qb"];_emwgpuCreateBindGroupLayout=wasmExports["Rb"];_emwgpuCreateCommandBuffer=wasmExports["Sb"];_emwgpuCreateCommandEncoder=wasmExports["Tb"];_emwgpuCreateComputePassEncoder=wasmExports["Ub"];_emwgpuCreateComputePipeline=wasmExports["Vb"];_emwgpuCreateExternalTexture=wasmExports["Wb"];_emwgpuCreatePipelineLayout=wasmExports["Xb"];_emwgpuCreateQuerySet=wasmExports["Yb"];_emwgpuCreateRenderBundle=wasmExports["Zb"];_emwgpuCreateRenderBundleEncoder=wasmExports["_b"];_emwgpuCreateRenderPassEncoder=wasmExports["$b"];_emwgpuCreateRenderPipeline=wasmExports["ac"];_emwgpuCreateSampler=wasmExports["bc"];_emwgpuCreateSurface=wasmExports["cc"];_emwgpuCreateTexture=wasmExports["dc"];_emwgpuCreateTextureView=wasmExports["ec"];_emwgpuCreateAdapter=wasmExports["fc"];_emwgpuImportBuffer=wasmExports["gc"];_emwgpuCreateDevice=wasmExports["hc"];_emwgpuCreateQueue=wasmExports["ic"];_emwgpuCreateShaderModule=wasmExports["jc"];_emwgpuOnDeviceLostCompleted=wasmExports["kc"];_emwgpuOnMapAsyncCompleted=wasmExports["lc"];_emwgpuOnRequestAdapterCompleted=wasmExports["mc"];_emwgpuOnRequestDeviceCompleted=wasmExports["nc"];_emwgpuOnWorkDoneCompleted=wasmExports["oc"];_emwgpuOnUncapturedError=wasmExports["pc"];__emscripten_tls_init=wasmExports["qc"];_pthread_self=wasmExports["rc"];__emscripten_thread_init=wasmExports["sc"];___set_thread_state=wasmExports["tc"];__emscripten_thread_crashed=wasmExports["uc"];_emscripten_proxy_execute_queue=wasmExports["vc"];_emscripten_proxy_finish=wasmExports["wc"];__emscripten_run_js_on_main_thread_done=wasmExports["xc"];__emscripten_run_js_on_main_thread=wasmExports["yc"];__emscripten_thread_free_data=wasmExports["zc"];__emscripten_thread_exit=wasmExports["Ac"];__emscripten_check_mailbox=wasmExports["Bc"];_memalign=wasmExports["Cc"];_setThrew=wasmExports["Dc"];_emscripten_stack_set_limits=wasmExports["Ec"];__emscripten_stack_restore=wasmExports["Fc"];__emscripten_stack_alloc=wasmExports["Gc"];_emscripten_stack_get_current=wasmExports["Hc"];___cxa_decrement_exception_refcount=wasmExports["Ic"];___cxa_get_exception_ptr=wasmExports["Jc"];__wasmfs_fetch_get_file_url=wasmExports["Kc"];__wasmfs_fetch_get_chunk_size=wasmExports["Lc"];__wasmfs_read_file=wasmExports["Mc"];__wasmfs_write_file=wasmExports["Nc"];__wasmfs_mkdir=wasmExports["Oc"];__wasmfs_rmdir=wasmExports["Pc"];__wasmfs_open=wasmExports["Qc"];__wasmfs_mknod=wasmExports["Rc"];__wasmfs_unlink=wasmExports["Sc"];__wasmfs_chdir=wasmExports["Tc"];__wasmfs_symlink=wasmExports["Uc"];__wasmfs_readlink=wasmExports["Vc"];__wasmfs_write=wasmExports["Wc"];__wasmfs_pwrite=wasmExports["Xc"];__wasmfs_chmod=wasmExports["Yc"];__wasmfs_fchmod=wasmExports["Zc"];__wasmfs_lchmod=wasmExports["_c"];__wasmfs_llseek=wasmExports["$c"];__wasmfs_rename=wasmExports["ad"];__wasmfs_read=wasmExports["bd"];__wasmfs_pread=wasmExports["cd"];__wasmfs_truncate=wasmExports["dd"];__wasmfs_ftruncate=wasmExports["ed"];__wasmfs_close=wasmExports["fd"];__wasmfs_mmap=wasmExports["gd"];__wasmfs_msync=wasmExports["hd"];__wasmfs_munmap=wasmExports["id"];__wasmfs_utime=wasmExports["jd"];__wasmfs_stat=wasmExports["kd"];__wasmfs_lstat=wasmExports["ld"];__wasmfs_mount=wasmExports["md"];__wasmfs_identify=wasmExports["nd"];__wasmfs_readdir_start=wasmExports["od"];__wasmfs_readdir_get=wasmExports["pd"];__wasmfs_readdir_finish=wasmExports["qd"];__wasmfs_get_cwd=wasmExports["rd"];_wasmfs_create_jsimpl_backend=wasmExports["sd"];_wasmfs_unmount=wasmExports["td"];dynCall_viii=dynCalls["viii"]=wasmExports["ud"];dynCall_ii=dynCalls["ii"]=wasmExports["vd"];dynCall_vi=dynCalls["vi"]=wasmExports["wd"];dynCall_vii=dynCalls["vii"]=wasmExports["xd"];dynCall_iii=dynCalls["iii"]=wasmExports["yd"];dynCall_ifi=dynCalls["ifi"]=wasmExports["zd"];dynCall_viiii=dynCalls["viiii"]=wasmExports["Ad"];dynCall_viiiii=dynCalls["viiiii"]=wasmExports["Bd"];dynCall_iiii=dynCalls["iiii"]=wasmExports["Cd"];dynCall_iiiii=dynCalls["iiiii"]=wasmExports["Dd"];dynCall_v=dynCalls["v"]=wasmExports["Ed"];dynCall_viiiiiiiiii=dynCalls["viiiiiiiiii"]=wasmExports["Fd"];dynCall_dii=dynCalls["dii"]=wasmExports["Gd"];dynCall_iiji=dynCalls["iiji"]=wasmExports["Hd"];dynCall_iiiiii=dynCalls["iiiiii"]=wasmExports["Id"];dynCall_viiiiii=dynCalls["viiiiii"]=wasmExports["Jd"];dynCall_iiiji=dynCalls["iiiji"]=wasmExports["Kd"];dynCall_iij=dynCalls["iij"]=wasmExports["Ld"];dynCall_iiiiiii=dynCalls["iiiiiii"]=wasmExports["Md"];dynCall_iiiiiiiii=dynCalls["iiiiiiiii"]=wasmExports["Nd"];dynCall_jii=dynCalls["jii"]=wasmExports["Od"];dynCall_viij=dynCalls["viij"]=wasmExports["Pd"];dynCall_viiiiiiii=dynCalls["viiiiiiii"]=wasmExports["Qd"];dynCall_i=dynCalls["i"]=wasmExports["Rd"];dynCall_jiii=dynCalls["jiii"]=wasmExports["Sd"];dynCall_iiiij=dynCalls["iiiij"]=wasmExports["Td"];dynCall_ji=dynCalls["ji"]=wasmExports["Ud"];dynCall_viijii=dynCalls["viijii"]=wasmExports["Vd"];dynCall_viijijj=dynCalls["viijijj"]=wasmExports["Wd"];dynCall_jijiii=dynCalls["jijiii"]=wasmExports["Xd"];dynCall_viifffi=dynCalls["viifffi"]=wasmExports["Yd"];dynCall_viiiiiii=dynCalls["viiiiiii"]=wasmExports["Zd"];dynCall_viji=dynCalls["viji"]=wasmExports["_d"];dynCall_jiji=dynCalls["jiji"]=wasmExports["$d"];dynCall_iidiiiii=dynCalls["iidiiiii"]=wasmExports["ae"];dynCall_iiiiij=dynCalls["iiiiij"]=wasmExports["be"];dynCall_iiiiid=dynCalls["iiiiid"]=wasmExports["ce"];dynCall_iiiiijj=dynCalls["iiiiijj"]=wasmExports["de"];dynCall_iiiiiiii=dynCalls["iiiiiiii"]=wasmExports["ee"];dynCall_iiiiiijj=dynCalls["iiiiiijj"]=wasmExports["fe"];_asyncify_start_unwind=wasmExports["ge"];_asyncify_stop_unwind=wasmExports["he"];_asyncify_start_rewind=wasmExports["ie"];_asyncify_stop_rewind=wasmExports["je"];__indirect_function_table=wasmTable=wasmExports["Db"]}var wasmImports;function assignWasmImports(){wasmImports={Y:___call_sighandler,v:___cxa_begin_catch,y:___cxa_end_catch,b:___cxa_find_matching_catch_2,m:___cxa_find_matching_catch_3,Ca:___cxa_rethrow,k:___cxa_throw,ia:___pthread_create_js,j:___resumeException,pa:__abort_js,ka:__emscripten_init_main_thread_js,da:__emscripten_notify_mailbox_postmessage,D:__emscripten_receive_on_main_thread_js,_:__emscripten_runtime_keepalive_clear,B:__emscripten_thread_cleanup,ja:__emscripten_thread_mailbox_await,na:__emscripten_thread_set_strongref,ba:__tzset_js,N:__wasmfs_copy_preloaded_file_data,S:__wasmfs_create_fetch_backend_js,L:__wasmfs_get_num_preloaded_dirs,M:__wasmfs_get_num_preloaded_files,J:__wasmfs_get_preloaded_child_path,$a:__wasmfs_get_preloaded_file_mode,O:__wasmfs_get_preloaded_file_size,K:__wasmfs_get_preloaded_parent_path,ab:__wasmfs_get_preloaded_path_name,_a:__wasmfs_jsimpl_alloc_file,X:__wasmfs_jsimpl_async_alloc_file,T:__wasmfs_jsimpl_async_free_file,W:__wasmfs_jsimpl_async_get_size,V:__wasmfs_jsimpl_async_read,U:__wasmfs_jsimpl_async_write,I:__wasmfs_jsimpl_free_file,Za:__wasmfs_jsimpl_get_size,Ya:__wasmfs_jsimpl_read,Wa:__wasmfs_jsimpl_set_size,Xa:__wasmfs_jsimpl_write,Q:__wasmfs_stdin_get_char,R:__wasmfs_thread_utils_heartbeat,oa:_clock_time_get,C:_emscripten_check_blocking_allowed,r:_emscripten_date_now,s:_emscripten_err,F:_emscripten_exit_with_live_runtime,ea:_emscripten_get_heap_max,E:_emscripten_get_now,va:_emscripten_has_asyncify,fa:_emscripten_num_logical_cores,P:_emscripten_out,ca:_emscripten_resize_heap,ga:_emscripten_unwind_to_js_event_loop,ua:_emwgpuAdapterRequestDevice,Ba:_emwgpuBufferDestroy,Aa:_emwgpuBufferGetConstMappedRange,za:_emwgpuBufferMapAsync,ya:_emwgpuBufferUnmap,p:_emwgpuDelete,ta:_emwgpuDeviceCreateBuffer,sa:_emwgpuDeviceCreateShaderModule,xa:_emwgpuDeviceDestroy,ra:_emwgpuInstanceRequestAdapter,qa:_emwgpuQueueOnSubmittedWorkDone,wa:_emwgpuWaitAny,la:_environ_get,ma:_environ_sizes_get,ha:_exit,c:invoke_ii,f:invoke_iii,l:invoke_iiii,o:invoke_iiiii,q:invoke_iiiiiii,G:invoke_iiiiiiiii,t:invoke_iiiij,z:invoke_ji,Da:invoke_jii,x:invoke_jiii,La:invoke_jijiii,e:invoke_v,d:invoke_vi,i:invoke_vii,g:invoke_viii,h:invoke_viiii,w:invoke_viiiii,n:invoke_viiiiii,u:invoke_viiiiiii,H:invoke_viijii,Oa:invoke_viijijj,a:wasmMemory,Z:_proc_exit,aa:_random_get,Ua:_wgpuAdapterGetInfo,Va:_wgpuAdapterGetLimits,$:_wgpuAdapterHasFeature,Ra:_wgpuBufferGetSize,Ia:_wgpuCommandEncoderBeginComputePass,Pa:_wgpuCommandEncoderCopyBufferToBuffer,Na:_wgpuCommandEncoderFinish,Fa:_wgpuComputePassEncoderDispatchWorkgroups,Ea:_wgpuComputePassEncoderEnd,Ga:_wgpuComputePassEncoderSetBindGroup,Ha:_wgpuComputePassEncoderSetPipeline,Ka:_wgpuComputePipelineGetBindGroupLayout,Ja:_wgpuDeviceCreateBindGroup,Qa:_wgpuDeviceCreateCommandEncoder,Sa:_wgpuDeviceCreateComputePipeline,Ta:_wgpuInstanceHasWGSLLanguageFeature,Ma:_wgpuQueueSubmit,A:_wgpuQueueWriteBuffer}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_jiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_jiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0);return 0n}}function invoke_iiiij(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0);return 0n}}function invoke_viijijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viijijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_jijiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jijiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0);return 0n}}function invoke_viijii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viijii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return dynCall_jii(index,a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0);return 0n}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;var makeWrapper_ppp=f=>(a0,a1)=>f(a0,a1)>>>0;var makeWrapper_pp____=f=>(a0,a1,a2,a3,a4)=>f(a0,a1,a2,a3,a4)>>>0;var makeWrapper_p_=f=>a0=>f(a0)>>>0;wasmExports["Ob"]=makeWrapper_pp(wasmExports["Ob"]);wasmExports["rc"]=makeWrapper_p(wasmExports["rc"]);wasmExports["emscripten_builtin_memalign"]=makeWrapper_ppp(wasmExports["emscripten_builtin_memalign"]);wasmExports["Cc"]=makeWrapper_ppp(wasmExports["Cc"]);wasmExports["Gc"]=makeWrapper_pp(wasmExports["Gc"]);wasmExports["Hc"]=makeWrapper_p(wasmExports["Hc"]);wasmExports["Jc"]=makeWrapper_pp(wasmExports["Jc"]);wasmExports["gd"]=makeWrapper_pp____(wasmExports["gd"]);wasmExports["rd"]=makeWrapper_p_(wasmExports["rd"]);return wasmExports}function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve?.(Module);initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){wasmExports=await (createWasm());run()}if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})} -;return moduleRtn}export default createLlamaWebGpuCoreModule;var isPthread=globalThis.name=="em-pthread";isPthread&&createLlamaWebGpuCoreModule(); +async function createLlamaWebGpuCoreModule(moduleArg={}){var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&globalThis.name=="em-pthread";var programArgs=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{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=async url=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}function growMemViews(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}}var startWorker;if(ENVIRONMENT_IS_PTHREAD){var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{var msgData=e.data;var cmd=msgData.cmd;if(cmd==1){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);startWorker=()=>{postMessage({cmd:3});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:9,handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModule=msgData.wasmModule;createWasm();run()}else if(cmd==2){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){initializedJS=true}try{invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(cmd==4){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){if(runtimeInitialized)__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}var runtimeInitialized=false;function getMemoryBuffer(){var firefoxMatch=globalThis.navigator?.userAgent?.match(/Firefox\/(\d+)/);if(!firefoxMatch||Number(firefoxMatch[1])>=154){try{var b=wasmMemory.toResizableBuffer();growMemViews=()=>{};return b}catch{}}return wasmMemory.buffer}function updateMemoryViews(){if(HEAP8?.buffer?.growable)return;var b=getMemoryBuffer();HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD){return}{var INITIAL_MEMORY=16777216;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:65536,shared:true})}updateMemoryViews()}function preRun(){var preRun=Module["preRun"];if(preRun){if(typeof preRun=="function")preRun=[preRun];onPreRuns.push(...preRun)}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker();wasmExports["bb"]()}function postRun(){var postRun=Module["postRun"];if(postRun){if(typeof postRun=="function")postRun=[postRun];onPostRuns.push(...postRun)}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("llama_webgpu_core.wasm")}return new URL("llama_webgpu_core.wasm",import.meta.url).href}function getBinarySync(file){if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmExports=applySignatureConversions(wasmExports);registerTLSInit(wasmExports["qc"]);assignWasmExports(wasmExports);wasmModule=module;return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();var instantiateWasm=Module["instantiateWasm"];if(instantiateWasm){return new Promise(resolve=>{instantiateWasm(info,(inst,mod)=>resolve(receiveInstance(inst,mod)))})}if(ENVIRONMENT_IS_PTHREAD){var instance=new WebAssembly.Instance(wasmModule,getWasmImports());return receiveInstance(instance,wasmModule)}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var dependenciesPromise=null;var resolveRunDependencies=async()=>dependenciesPromise;var runDependencies=0;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(!runDependencies){dependenciesPromise.resolve()}};var addRunDependency=id=>{if(!runDependencies){var resolve;dependenciesPromise=new Promise(r=>resolve=r);dependenciesPromise.resolve=resolve}runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:2,start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,proxyMode,...callArgs)=>{var bufSize=8*callArgs.length*2;var sp=stackSave();var args=stackAlloc(bufSize);var b=args>>>3;for(var arg of callArgs){if(typeof arg=="bigint"){(growMemViews(),HEAP64)[b++>>>0]=1n;(growMemViews(),HEAP64)[b++>>>0]=arg}else{(growMemViews(),HEAP64)[b++>>>0]=0n;(growMemViews(),HEAPF64)[b++>>>0]=arg}}var rtn=__emscripten_run_js_on_main_thread(funcIndex,emAsmAddr,bufSize,args,proxyMode);stackRestore(sp);return rtn};function _proc_exit(code){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(0,0,1,code);EXITSTATUS=code;if(!keepRuntimeAlive()){PThread.terminateAllThreads();Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))}function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,returnCode);_exit(returnCode)}var exitJS=(status,implicit)=>{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var waitAsyncPolyfilled=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91;var PThread={unusedWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=4;while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(async()=>{var pthreadPoolReady=PThread.loadWasmModuleToAllWorkers();addRunDependency("loading-workers");await pthreadPoolReady;removeRunDependency("loading-workers")})},terminateAllThreads:()=>{for(var worker of Object.values(PThread.pthreads)){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.pthreads={}},terminateRuntime:()=>{PThread.terminateAllThreads();var pthread_ptr=_pthread_self();___set_thread_state(0,0,0,1);if(!waitAsyncPolyfilled){Atomics.notify((growMemViews(),HEAP32),pthread_ptr>>>2)}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e.data;var cmd=d.cmd;if(d.targetThread){var targetWorker=PThread.pthreads[d.targetThread];targetWorker?.postMessage(d);return}if(d==="setimmediate"||d==="_si"){worker.postMessage(d);return}switch(cmd){case 4:checkMailbox();break;case 5:spawnThread(d);break;case 6:callUserCallback(()=>cleanupThread(d.thread));break;case 3:onFinishedLoading(worker);break;case 9:Module[d.handler](...d.args);break;default:if(cmd)err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:1,handlers,wasmMemory,wasmModule})}),async loadWasmModuleToAllWorkers(){if(ENVIRONMENT_IS_PTHREAD){return}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));return pthreadPoolReady},allocateUnusedWorker(){var worker;worker=new Worker(new URL("llama_webgpu_core.js",import.meta.url),{type:"module",name:"em-pthread"});PThread.unusedWorkers.push(worker);return worker},getNewWorker(){if(PThread.unusedWorkers.length==0){var newWorker=PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(newWorker)}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var dynCalls={};function establishStackSpace(pthread_ptr){var stackHigh=(growMemViews(),HEAPU32)[pthread_ptr+48>>>2>>>0];var stackSize=(growMemViews(),HEAPU32)[pthread_ptr+52>>>2>>>0];var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)}var invokeEntryPoint=(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=(a1=>dynCall_ii(ptr,a1))(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result;return}__emscripten_thread_exit(result)}finish(result)};var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);var wasmMemory;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);var ___call_sighandler=function(fp,sig){fp>>>=0;return(a1=>dynCall_vi(fp,a1))(sig)};var exceptionCaught=[];var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){ptr>>>=0;var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);return ___cxa_get_exception_ptr(ptr)}var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr)};var findMatchingCatch=args=>{setTempRet0(0);return 0};function ___cxa_find_matching_catch_2(){return findMatchingCatch([])}function ___cxa_find_matching_catch_3(arg0){arg0>>>=0;return findMatchingCatch([arg0])}var ___cxa_rethrow=()=>{if(!exceptionCaught.length){abort("no exception to throw")}var info=exceptionCaught.at(-1);var ptr=info.excPtr;info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++;abort()};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]=type}get_type(){return(growMemViews(),HEAPU32)[this.ptr+4>>>2>>>0]}set_destructor(destructor){(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]=destructor}get_destructor(){return(growMemViews(),HEAPU32)[this.ptr+8>>>2>>>0]}set_caught(caught){caught=caught?1:0;(growMemViews(),HEAP8)[this.ptr+12>>>0]=caught}get_caught(){return(growMemViews(),HEAP8)[this.ptr+12>>>0]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;(growMemViews(),HEAP8)[this.ptr+13>>>0]=rethrown}get_rethrown(){return(growMemViews(),HEAP8)[this.ptr+13>>>0]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]=adjustedPtr}get_adjusted_ptr(){return(growMemViews(),HEAPU32)[this.ptr+16>>>2>>>0]}}function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);uncaughtExceptionCount++;abort()}function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>!!globalThis.SharedArrayBuffer;function ___pthread_create_js(pthread_ptr,attr,startRoutine,arg){pthread_ptr>>>=0;attr>>>=0;startRoutine>>>=0;arg>>>=0;if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=5;postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function ___resumeException(ptr){ptr>>>=0;abort()}var __abort_js=()=>abort("");function __emscripten_init_main_thread_js(tb){tb>>>=0;var can_block=!ENVIRONMENT_IS_WEB;try{Atomics.wait((growMemViews(),HEAP32),0,0,0);can_block=true}catch(e){}__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,can_block,65536,false);PThread.threadInitTLS()}var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD){if(_pthread_self())__emscripten_thread_exit(EXITSTATUS);return}_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};function __emscripten_thread_mailbox_await(pthread_ptr){pthread_ptr>>>=0;if(!waitAsyncPolyfilled){var wait=Atomics.waitAsync((growMemViews(),HEAP32),pthread_ptr>>>2,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+112;Atomics.store((growMemViews(),HEAP32),waitingAsync>>>2,1)}}var checkMailbox=()=>{var pthread_ptr=_pthread_self();if(!pthread_ptr)return;callUserCallback(()=>{__emscripten_thread_mailbox_await(pthread_ptr);__emscripten_check_mailbox()})};function __emscripten_notify_mailbox_postmessage(targetThread,currThreadId){targetThread>>>=0;currThreadId>>>=0;if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:4})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:4})}}var proxiedJSCallArgs=[];function __emscripten_receive_on_main_thread_js(funcIndex,emAsmAddr,callingThread,bufSize,args,ctx,ctxArgs){emAsmAddr>>>=0;callingThread>>>=0;args>>>=0;ctx>>>=0;ctxArgs>>>=0;proxiedJSCallArgs.length=0;var b=args>>>3;var end=args+bufSize>>>3;while(b>>0]){arg=(growMemViews(),HEAP64)[b++>>>0]}else{arg=(growMemViews(),HEAPF64)[b++>>>0]}proxiedJSCallArgs.push(arg)}var func=proxiedFunctionTable[funcIndex];PThread.currentProxiedOperationCallerThread=callingThread;var rtn=func(...proxiedJSCallArgs);PThread.currentProxiedOperationCallerThread=0;if(ctx){rtn.then(rtn=>__emscripten_run_js_on_main_thread_done(ctx,ctxArgs,rtn));return}return rtn}var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};function __emscripten_thread_cleanup(thread){thread>>>=0;if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:6,thread})}function __emscripten_thread_set_strongref(thread){thread>>>=0}var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63;i++}}heap[outIdx>>>0]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,(growMemViews(),HEAPU8),outPtr,maxBytesToWrite);var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);(growMemViews(),HEAPU32)[timezone>>>2>>>0]=stdTimezoneOffset*60;(growMemViews(),HEAP32)[daylight>>>2>>>0]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset>>=0;return(growMemViews(),HEAPU8).set(wasmFSPreloadedFiles[index].fileData,buffer>>>0)}var wasmFS$backends={};var wasmFS$JSMemoryRanges={};var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{idx>>>=0;var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{ptr>>>=0;return ptr?UTF8ArrayToString((growMemViews(),HEAPU8),ptr,maxBytesToRead,ignoreNul):""};async function __wasmfs_create_fetch_backend_js(backend){backend>>>=0;async function getFileRange(file,offset,len){var url="";var fileUrl_p=__wasmfs_fetch_get_file_url(file);var fileUrl=UTF8ToString(fileUrl_p);var isAbs=fileUrl.indexOf("://")!==-1;if(isAbs){url=fileUrl}else{try{var u=new URL(fileUrl,self.location.origin);url=u.toString()}catch(_e){throw{status:404}}}var chunkSize=__wasmfs_fetch_get_chunk_size(file);offset??=0;len??=chunkSize;if(!(file in wasmFS$JSMemoryRanges)){var fileInfo=await fetch(url,{method:"HEAD",headers:{Range:"bytes=0-"}});if(fileInfo.ok&&fileInfo.headers.has("Content-Length")&&fileInfo.headers.get("Accept-Ranges")=="bytes"&&parseInt(fileInfo.headers.get("Content-Length"),10)>chunkSize*2){var size=parseInt(fileInfo.headers.get("Content-Length"),10);wasmFS$JSMemoryRanges[file]={size,chunks:[],chunkSize};len=Math.min(len,size-offset)}else{var wholeFileReq=await fetch(url);if(!wholeFileReq.ok){throw wholeFileReq}var wholeFileData=new Uint8Array(await wholeFileReq.arrayBuffer());wasmFS$JSMemoryRanges[file]={size:wholeFileData.byteLength,chunks:[wholeFileData],chunkSize:wholeFileData.byteLength};return}}var firstChunk=offset/chunkSize|0;var lastChunk=(offset+len-1)/chunkSize|0;var allPresent=true;var i;for(i=firstChunk;i<=lastChunk;i++){if(!wasmFS$JSMemoryRanges[file].chunks[i]){allPresent=false;break}}if(allPresent){return}var start=firstChunk*chunkSize;var end=(lastChunk+1)*chunkSize;var response=await fetch(url,{headers:{Range:`bytes=${start}-${end-1}`}});if(!response.ok){throw response}var bytes=new Uint8Array(await response["arrayBuffer"]());for(i=firstChunk;i<=lastChunk;i++){wasmFS$JSMemoryRanges[file].chunks[i]=bytes.slice(i*chunkSize-start,(i+1)*chunkSize-start)}}wasmFS$backends[backend]={allocFile:async file=>{},freeFile:async file=>{wasmFS$JSMemoryRanges[file]=undefined},write:async(file,buffer,length,offset)=>{console.error("TODO: file writing in fetch backend? read-only for now")},read:async(file,buffer,length,offset)=>{if(offset<0||length<=0){return 0}try{await getFileRange(file,offset||0,length)}catch(failedResponse){return failedResponse.status===404?-44:-8}var fileInfo=wasmFS$JSMemoryRanges[file];length=Math.min(length,fileInfo.size-offset);if(length<=0){return 0}var chunks=fileInfo.chunks;var chunkSize=fileInfo.chunkSize;var firstChunk=offset/chunkSize|0;var lastChunk=(offset+length-1)/chunkSize|0;var readLength=0;for(var i=firstChunk;i<=lastChunk;i++){var chunk=chunks[i];var start=Math.max(i*chunkSize,offset);var chunkStart=i*chunkSize;var end=Math.min(chunkStart+chunkSize,offset+length);(growMemViews(),HEAPU8).set(chunk.subarray(start-chunkStart,end-chunkStart),buffer+(start-offset)>>>0);readLength=end-offset}return readLength},getSize:async file=>{try{await getFileRange(file,0,0)}catch(failedResponse){return 0}return wasmFS$JSMemoryRanges[file].size}}}var wasmFSPreloadedDirs=[];var __wasmfs_get_num_preloaded_dirs=()=>wasmFSPreloadedDirs.length;var wasmFSPreloadedFiles=[];var wasmFSPreloadingFlushed=false;var __wasmfs_get_num_preloaded_files=()=>{wasmFSPreloadingFlushed=true;return wasmFSPreloadedFiles.length};function __wasmfs_get_preloaded_child_path(index,childNameBuffer){childNameBuffer>>>=0;var s=wasmFSPreloadedDirs[index].childName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,childNameBuffer,len)}var __wasmfs_get_preloaded_file_mode=index=>wasmFSPreloadedFiles[index].mode;function __wasmfs_get_preloaded_file_size(index){return wasmFSPreloadedFiles[index].fileData.length}function __wasmfs_get_preloaded_parent_path(index,parentPathBuffer){parentPathBuffer>>>=0;var s=wasmFSPreloadedDirs[index].parentPath;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,parentPathBuffer,len)}var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};function __wasmfs_get_preloaded_path_name(index,fileNameBuffer){fileNameBuffer>>>=0;var s=wasmFSPreloadedFiles[index].pathName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,fileNameBuffer,len)}function __wasmfs_jsimpl_alloc_file(backend,file){backend>>>=0;file>>>=0;return wasmFS$backends[backend].allocFile(file)}async function __wasmfs_jsimpl_async_alloc_file(ctx,backend,file){ctx>>>=0;backend>>>=0;file>>>=0;await wasmFS$backends[backend].allocFile(file);_emscripten_proxy_finish(ctx)}async function __wasmfs_jsimpl_async_free_file(ctx,backend,file){ctx>>>=0;backend>>>=0;file>>>=0;await wasmFS$backends[backend].freeFile(file);_emscripten_proxy_finish(ctx)}async function __wasmfs_jsimpl_async_get_size(ctx,backend,file,size_p){ctx>>>=0;backend>>>=0;file>>>=0;size_p>>>=0;var size=await wasmFS$backends[backend].getSize(file);(growMemViews(),HEAP64)[size_p>>>3>>>0]=BigInt(size);_emscripten_proxy_finish(ctx)}async function __wasmfs_jsimpl_async_read(ctx,backend,file,buffer,length,offset,result_p){ctx>>>=0;backend>>>=0;file>>>=0;buffer>>>=0;length>>>=0;offset=bigintToI53Checked(offset);result_p>>>=0;var result=await wasmFS$backends[backend].read(file,buffer,length,offset);(growMemViews(),HEAPU32)[result_p>>>2>>>0]=result;_emscripten_proxy_finish(ctx)}async function __wasmfs_jsimpl_async_write(ctx,backend,file,buffer,length,offset,result_p){ctx>>>=0;backend>>>=0;file>>>=0;buffer>>>=0;length>>>=0;offset=bigintToI53Checked(offset);result_p>>>=0;var result=await wasmFS$backends[backend].write(file,buffer,length,offset);(growMemViews(),HEAPU32)[result_p>>>2>>>0]=result;_emscripten_proxy_finish(ctx)}function __wasmfs_jsimpl_free_file(backend,file){backend>>>=0;file>>>=0;return wasmFS$backends[backend].freeFile(file)}function __wasmfs_jsimpl_get_size(backend,file){backend>>>=0;file>>>=0;return wasmFS$backends[backend].getSize(file)}function __wasmfs_jsimpl_read(backend,file,buffer,length,offset){backend>>>=0;file>>>=0;buffer>>>=0;length>>>=0;offset=bigintToI53Checked(offset);if(!wasmFS$backends[backend].read){return-28}return wasmFS$backends[backend].read(file,buffer,length,offset)}function __wasmfs_jsimpl_set_size(backend,file,size){backend>>>=0;file>>>=0;size=bigintToI53Checked(size);return wasmFS$backends[backend].setSize(file,size)}function __wasmfs_jsimpl_write(backend,file,buffer,length,offset){backend>>>=0;file>>>=0;buffer>>>=0;length>>>=0;offset=bigintToI53Checked(offset);if(!wasmFS$backends[backend].write){return-28}return wasmFS$backends[backend].write(file,buffer,length,offset)}var FS_stdin_getChar_buffer=[];var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var __wasmfs_stdin_get_char=()=>{var c=FS_stdin_getChar();if(typeof c==="number"){return c}return-1};var __wasmfs_thread_utils_heartbeat=function(queue){queue>>>=0;var intervalID=setInterval(()=>{if(ABORT){clearInterval(intervalID)}else{_emscripten_proxy_execute_queue(queue)}},50)};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);(growMemViews(),HEAP64)[ptime>>>3>>>0]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};function _emscripten_err(str){str>>>=0;return err(UTF8ToString(str))}var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>4294901760;function _emscripten_get_heap_max(){return getHeapMax()}var _emscripten_has_asyncify=()=>1;var _emscripten_num_logical_cores=()=>navigator["hardwareConcurrency"];function _emscripten_out(str){str>>>=0;return out(UTF8ToString(str))}var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=(growMemViews(),HEAPU8).length;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var _emscripten_unwind_to_js_event_loop=()=>{throw"unwind"};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var writeI53ToI64=(ptr,num)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=num;var lower=(growMemViews(),HEAPU32)[ptr>>>2>>>0];(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=(num-lower)/4294967296};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var readI53FromI64=ptr=>(growMemViews(),HEAPU32)[ptr>>>2>>>0]+(growMemViews(),HEAP32)[ptr+4>>>2>>>0]*4294967296;var WebGPU={Internals:{jsObjects:[],jsObjectInsert:(ptr,jsObject)=>{ptr>>>=0;WebGPU.Internals.jsObjects[ptr]=jsObject},bufferOnUnmaps:[],futures:[],futureInsert:(futureId,promise)=>{WebGPU.Internals.futures[futureId]=new Promise(resolve=>promise.finally(()=>resolve(futureId)))}},getJsObject:ptr=>{if(!ptr)return undefined;ptr>>>=0;return WebGPU.Internals.jsObjects[ptr]},importJsAdapter:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateAdapter(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroup:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroup(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBindGroupLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateBindGroupLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsBuffer:(buffer,parentPtr=0)=>{assert(buffer.mapState==="unmapped");var bufferPtr=_emwgpuImportBuffer(parentPtr);WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);return bufferPtr},importJsCommandBuffer:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandBuffer(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsCommandEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateCommandEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsComputePipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateComputePipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsDevice:(device,parentPtr=0)=>{var queuePtr=_emwgpuCreateQueue(parentPtr);var devicePtr=_emwgpuCreateDevice(parentPtr,queuePtr);WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);return devicePtr},importJsExternalTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateExternalTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsPipelineLayout:(obj,parentPtr=0)=>{var ptr=_emwgpuCreatePipelineLayout(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQuerySet:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQuerySet(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsQueue:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateQueue(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundle:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundle(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderBundleEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderBundleEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPassEncoder:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPassEncoder(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsRenderPipeline:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateRenderPipeline(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSampler:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSampler(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsShaderModule:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateShaderModule(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsSurface:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateSurface(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTexture:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTexture(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},importJsTextureView:(obj,parentPtr=0)=>{var ptr=_emwgpuCreateTextureView(parentPtr);WebGPU.Internals.jsObjects[ptr]=obj;return ptr},errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);((a1,a2,a3)=>dynCall_viii(callback,a1,a2,a3))(type,messagePtr,userdata);stackRestore(sp)},iterateExtensions:(root,handlers)=>{for(var ptr=(growMemViews(),HEAPU32)[root>>>2>>>0];ptr;ptr=(growMemViews(),HEAPU32)[ptr>>>2>>>0]){var sType=(growMemViews(),HEAP32)[ptr+4>>>2>>>0];var handler=handlers[sType](ptr)}},setStringView:(ptr,data,length)=>{(growMemViews(),HEAPU32)[ptr>>>2>>>0]=data;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=length},makeStringFromStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];return UTF8ToString(ptr,length)},makeStringFromOptionalStringView:stringViewPtr=>{var ptr=(growMemViews(),HEAPU32)[stringViewPtr>>>2>>>0];var length=(growMemViews(),HEAPU32)[stringViewPtr+4>>>2>>>0];if(!ptr){if(length===0){return""}return undefined}return UTF8ToString(ptr,length)},makeColor:ptr=>({r:(growMemViews(),HEAPF64)[ptr>>>3>>>0],g:(growMemViews(),HEAPF64)[ptr+8>>>3>>>0],b:(growMemViews(),HEAPF64)[ptr+16>>>3>>>0],a:(growMemViews(),HEAPF64)[ptr+24>>>3>>>0]}),makeExtent3D:ptr=>({width:(growMemViews(),HEAPU32)[ptr>>>2>>>0],height:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],depthOrArrayLayers:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeOrigin3D:ptr=>({x:(growMemViews(),HEAPU32)[ptr>>>2>>>0],y:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],z:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}),makeTexelCopyTextureInfo:ptr=>({texture:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr>>>2>>>0]),mipLevel:(growMemViews(),HEAPU32)[ptr+4>>>2>>>0],origin:WebGPU.makeOrigin3D(ptr+8),aspect:WebGPU.TextureAspect[(growMemViews(),HEAP32)[ptr+20>>>2>>>0]]}),makeTexelCopyBufferLayout:ptr=>{var bytesPerRow=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0];var rowsPerImage=(growMemViews(),HEAPU32)[ptr+12>>>2>>>0];return{offset:readI53FromI64(ptr),bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeTexelCopyBufferInfo:ptr=>{var layoutPtr=ptr+0;var bufferCopyView=WebGPU.makeTexelCopyBufferLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+16>>>2>>>0]);return bufferCopyView},makePassTimestampWrites:ptr=>{if(ptr===0)return undefined;return{querySet:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),beginningOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+8>>>2>>>0],endOfPassWriteIndex:(growMemViews(),HEAPU32)[ptr+12>>>2>>>0]}},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i>>3>>>0]}return constants},makePipelineLayout:layoutPtr=>{if(!layoutPtr)return"auto";return WebGPU.getJsObject(layoutPtr)},makeComputeState:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[ptr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[ptr+16>>>2>>>0],(growMemViews(),HEAPU32)[ptr+20>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(ptr+8)};return desc},makeComputePipelineDesc:descriptor=>{var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),compute:WebGPU.makeComputeState(descriptor+16)};return desc},makeRenderPipelineDesc:descriptor=>{function makePrimitiveState(psPtr){if(!psPtr)return undefined;return{topology:WebGPU.PrimitiveTopology[(growMemViews(),HEAP32)[psPtr+4>>>2>>>0]],stripIndexFormat:WebGPU.IndexFormat[(growMemViews(),HEAP32)[psPtr+8>>>2>>>0]],frontFace:WebGPU.FrontFace[(growMemViews(),HEAP32)[psPtr+12>>>2>>>0]],cullMode:WebGPU.CullMode[(growMemViews(),HEAP32)[psPtr+16>>>2>>>0]],unclippedDepth:!!(growMemViews(),HEAPU32)[psPtr+20>>>2>>>0]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[(growMemViews(),HEAP32)[bdPtr>>>2>>>0]],srcFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+4>>>2>>>0]],dstFactor:WebGPU.BlendFactor[(growMemViews(),HEAP32)[bdPtr+8>>>2>>>0]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var format=WebGPU.TextureFormat[(growMemViews(),HEAP32)[csPtr+4>>>2>>>0]];return format?{format,blend:makeBlendState((growMemViews(),HEAPU32)[csPtr+8>>>2>>>0]),writeMask:(growMemViews(),HEAPU32)[csPtr+16>>>2>>>0]}:undefined}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>>2>>>0]],failOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+4>>>2>>>0]],depthFailOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+8>>>2>>>0]],passOp:WebGPU.StencilOperation[(growMemViews(),HEAP32)[ssfPtr+12>>>2>>>0]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{format:WebGPU.TextureFormat[(growMemViews(),HEAP32)[dssPtr+4>>>2>>>0]],depthWriteEnabled:!!(growMemViews(),HEAPU32)[dssPtr+8>>>2>>>0],depthCompare:WebGPU.CompareFunction[(growMemViews(),HEAP32)[dssPtr+12>>>2>>>0]],stencilFront:makeStencilStateFace(dssPtr+16),stencilBack:makeStencilStateFace(dssPtr+32),stencilReadMask:(growMemViews(),HEAPU32)[dssPtr+48>>>2>>>0],stencilWriteMask:(growMemViews(),HEAPU32)[dssPtr+52>>>2>>>0],depthBias:(growMemViews(),HEAP32)[dssPtr+56>>>2>>>0],depthBiasSlopeScale:(growMemViews(),HEAPF32)[dssPtr+60>>>2>>>0],depthBiasClamp:(growMemViews(),HEAPF32)[dssPtr+64>>>2>>>0]}}function makeVertexAttribute(vaPtr){return{format:WebGPU.VertexFormat[(growMemViews(),HEAP32)[vaPtr+4>>>2>>>0]],offset:readI53FromI64(vaPtr+8),shaderLocation:(growMemViews(),HEAPU32)[vaPtr+16>>>2>>>0]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>>2>>>0]];var attributeCount=(growMemViews(),HEAPU32)[vbPtr+16>>>2>>>0];if(!stepMode&&!attributeCount){return null}return{arrayStride:readI53FromI64(vbPtr+8),stepMode,attributes:makeVertexAttributes(attributeCount,(growMemViews(),HEAPU32)[vbPtr+20>>>2>>>0])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[viPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+20>>>2>>>0]),buffers:makeVertexBuffers((growMemViews(),HEAPU32)[viPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[viPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(viPtr+8)};return desc}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{count:(growMemViews(),HEAPU32)[msPtr+4>>>2>>>0],mask:(growMemViews(),HEAPU32)[msPtr+8>>>2>>>0],alphaToCoverageEnabled:!!(growMemViews(),HEAPU32)[msPtr+12>>>2>>>0]}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;var desc={module:WebGPU.getJsObject((growMemViews(),HEAPU32)[fsPtr+4>>>2>>>0]),constants:WebGPU.makePipelineConstants((growMemViews(),HEAPU32)[fsPtr+16>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+20>>>2>>>0]),targets:makeColorStates((growMemViews(),HEAPU32)[fsPtr+24>>>2>>>0],(growMemViews(),HEAPU32)[fsPtr+28>>>2>>>0]),entryPoint:WebGPU.makeStringFromOptionalStringView(fsPtr+8)};return desc}var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),layout:WebGPU.makePipelineLayout((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0]),vertex:makeVertexState(descriptor+16),primitive:makePrimitiveState(descriptor+48),depthStencil:makeDepthStencilState((growMemViews(),HEAPU32)[descriptor+72>>>2>>>0]),multisample:makeMultisampleState(descriptor+76),fragment:makeFragmentState((growMemViews(),HEAPU32)[descriptor+92>>>2>>>0])};return desc},fillLimitStruct:(limits,limitsOutPtr)=>{var nextInChainPtr=(growMemViews(),HEAPU32)[limitsOutPtr>>>2>>>0];function setLimitValueU32(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;(growMemViews(),HEAPU32)[basePtr+limitOffset>>>2>>>0]=limitValue}function setLimitValueU64(name,basePtr,limitOffset,fallbackValue=0){var limitValue=limits[name]??fallbackValue;writeI53ToI64(basePtr+limitOffset,limitValue)}setLimitValueU32("maxTextureDimension1D",limitsOutPtr,4);setLimitValueU32("maxTextureDimension2D",limitsOutPtr,8);setLimitValueU32("maxTextureDimension3D",limitsOutPtr,12);setLimitValueU32("maxTextureArrayLayers",limitsOutPtr,16);setLimitValueU32("maxBindGroups",limitsOutPtr,20);setLimitValueU32("maxBindGroupsPlusVertexBuffers",limitsOutPtr,24);setLimitValueU32("maxBindingsPerBindGroup",limitsOutPtr,28);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",limitsOutPtr,32);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",limitsOutPtr,36);setLimitValueU32("maxSampledTexturesPerShaderStage",limitsOutPtr,40);setLimitValueU32("maxSamplersPerShaderStage",limitsOutPtr,44);setLimitValueU32("maxStorageBuffersPerShaderStage",limitsOutPtr,48);setLimitValueU32("maxStorageTexturesPerShaderStage",limitsOutPtr,52);setLimitValueU32("maxUniformBuffersPerShaderStage",limitsOutPtr,56);setLimitValueU32("minUniformBufferOffsetAlignment",limitsOutPtr,80);setLimitValueU32("minStorageBufferOffsetAlignment",limitsOutPtr,84);setLimitValueU64("maxUniformBufferBindingSize",limitsOutPtr,64);setLimitValueU64("maxStorageBufferBindingSize",limitsOutPtr,72);setLimitValueU32("maxVertexBuffers",limitsOutPtr,88);setLimitValueU64("maxBufferSize",limitsOutPtr,96);setLimitValueU32("maxVertexAttributes",limitsOutPtr,104);setLimitValueU32("maxVertexBufferArrayStride",limitsOutPtr,108);setLimitValueU32("maxInterStageShaderVariables",limitsOutPtr,112);setLimitValueU32("maxColorAttachments",limitsOutPtr,116);setLimitValueU32("maxColorAttachmentBytesPerSample",limitsOutPtr,120);setLimitValueU32("maxComputeWorkgroupStorageSize",limitsOutPtr,124);setLimitValueU32("maxComputeInvocationsPerWorkgroup",limitsOutPtr,128);setLimitValueU32("maxComputeWorkgroupSizeX",limitsOutPtr,132);setLimitValueU32("maxComputeWorkgroupSizeY",limitsOutPtr,136);setLimitValueU32("maxComputeWorkgroupSizeZ",limitsOutPtr,140);setLimitValueU32("maxComputeWorkgroupsPerDimension",limitsOutPtr,144);setLimitValueU32("maxImmediateSize",limitsOutPtr,148);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;setLimitValueU32("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16,limits.maxStorageBuffersPerShaderStage);setLimitValueU32("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12,limits.maxStorageTexturesPerShaderStage);setLimitValueU32("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20,limits.maxStorageTexturesPerShaderStage)}},fillAdapterInfoStruct:(info,infoStruct)=>{(growMemViews(),HEAPU32)[infoStruct+52>>>2>>>0]=info.subgroupMinSize;(growMemViews(),HEAPU32)[infoStruct+56>>>2>>>0]=info.subgroupMaxSize;var strs=info.vendor+info.architecture+info.device+info.description;var strPtr=stringToNewUTF8(strs);var vendorLen=lengthBytesUTF8(info.vendor);WebGPU.setStringView(infoStruct+4,strPtr,vendorLen);strPtr+=vendorLen;var architectureLen=lengthBytesUTF8(info.architecture);WebGPU.setStringView(infoStruct+12,strPtr,architectureLen);strPtr+=architectureLen;var deviceLen=lengthBytesUTF8(info.device);WebGPU.setStringView(infoStruct+20,strPtr,deviceLen);strPtr+=deviceLen;var descriptionLen=lengthBytesUTF8(info.description);WebGPU.setStringView(infoStruct+28,strPtr,descriptionLen);strPtr+=descriptionLen;(growMemViews(),HEAP32)[infoStruct+36>>>2>>>0]=2;var adapterType=info.isFallbackAdapter?3:4;(growMemViews(),HEAP32)[infoStruct+40>>>2>>>0]=adapterType;(growMemViews(),HEAPU32)[infoStruct+44>>>2>>>0]=0;(growMemViews(),HEAPU32)[infoStruct+48>>>2>>>0]=0},AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],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","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,,"uniform","storage","read-only-storage"],BufferMapState:[,"unmapped","pending","mapped"],CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:[,"success","callback-cancelled"],ComponentSwizzle:[,"0","1","r","g","b","a"],CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],CullMode:[,"none","front","back"],ErrorFilter:[,"validation","out-of-memory","internal"],FeatureLevel:[,"compatibility","core"],FeatureName:{1:"core-features-and-limits",2:"depth-clip-control",3:"depth32float-stencil8",4:"texture-compression-bc",5:"texture-compression-bc-sliced-3d",6:"texture-compression-etc2",7:"texture-compression-astc",8:"texture-compression-astc-sliced-3d",9:"timestamp-query",10:"indirect-first-instance",11:"shader-f16",12:"rg11b10ufloat-renderable",13:"bgra8unorm-storage",14:"float32-filterable",15:"float32-blendable",16:"clip-distances",17:"dual-source-blending",18:"subgroups",19:"texture-formats-tier1",20:"texture-formats-tier2",21:"primitive-index",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],LoadOp:[,"load","clear"],MipmapFilterMode:[,"nearest","linear"],OptionalBool:["false","true"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb","display-p3"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:[,"occlusion","timestamp"],SamplerBindingType:[,,"filtering","non-filtering","comparison"],Status:[,"success","error"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-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"],ToneMappingMode:[,"standard","extended"],VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],VertexStepMode:[,"vertex","instance"],WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1","linear_indexing"]};var emwgpuStringToInt_DeviceLostReason={undefined:1,unknown:1,destroyed:2};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};function _emwgpuAdapterRequestDevice(adapterPtr,futureId,deviceLostFutureId,devicePtr,queuePtr,descriptor){adapterPtr>>>=0;futureId=bigintToI53Checked(futureId);deviceLostFutureId=bigintToI53Checked(deviceLostFutureId);devicePtr>>>=0;queuePtr>>>=0;descriptor>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);var desc={};if(descriptor){var requiredFeatureCount=(growMemViews(),HEAPU32)[descriptor+12>>>2>>>0];if(requiredFeatureCount){var requiredFeaturesPtr=(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0];desc["requiredFeatures"]=Array.from((growMemViews(),HEAPU32).subarray(requiredFeaturesPtr>>>2>>>0,requiredFeaturesPtr+requiredFeatureCount*4>>>2>>>0),feature=>WebGPU.FeatureName[feature])}var limitsPtr=(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0];if(limitsPtr){var nextInChainPtr=(growMemViews(),HEAPU32)[limitsPtr>>>2>>>0];var requiredLimits={};function setLimitU32IfDefined(name,basePtr,limitOffset,ignoreIfZero=false){var ptr=basePtr+limitOffset;var value=(growMemViews(),HEAPU32)[ptr>>>2>>>0];if(value!=4294967295&&(!ignoreIfZero||value!=0)){requiredLimits[name]=value}}function setLimitU64IfDefined(name,basePtr,limitOffset){var ptr=basePtr+limitOffset;var limitPart1=(growMemViews(),HEAPU32)[ptr>>>2>>>0];var limitPart2=(growMemViews(),HEAPU32)[ptr+4>>>2>>>0];if(limitPart1!=4294967295||limitPart2!=4294967295){requiredLimits[name]=readI53FromI64(ptr)}}setLimitU32IfDefined("maxTextureDimension1D",limitsPtr,4);setLimitU32IfDefined("maxTextureDimension2D",limitsPtr,8);setLimitU32IfDefined("maxTextureDimension3D",limitsPtr,12);setLimitU32IfDefined("maxTextureArrayLayers",limitsPtr,16);setLimitU32IfDefined("maxBindGroups",limitsPtr,20);setLimitU32IfDefined("maxBindGroupsPlusVertexBuffers",limitsPtr,24);setLimitU32IfDefined("maxBindingsPerBindGroup",limitsPtr,28);setLimitU32IfDefined("maxDynamicUniformBuffersPerPipelineLayout",limitsPtr,32);setLimitU32IfDefined("maxDynamicStorageBuffersPerPipelineLayout",limitsPtr,36);setLimitU32IfDefined("maxSampledTexturesPerShaderStage",limitsPtr,40);setLimitU32IfDefined("maxSamplersPerShaderStage",limitsPtr,44);setLimitU32IfDefined("maxStorageBuffersPerShaderStage",limitsPtr,48);setLimitU32IfDefined("maxStorageTexturesPerShaderStage",limitsPtr,52);setLimitU32IfDefined("maxUniformBuffersPerShaderStage",limitsPtr,56);setLimitU32IfDefined("minUniformBufferOffsetAlignment",limitsPtr,80);setLimitU32IfDefined("minStorageBufferOffsetAlignment",limitsPtr,84);setLimitU64IfDefined("maxUniformBufferBindingSize",limitsPtr,64);setLimitU64IfDefined("maxStorageBufferBindingSize",limitsPtr,72);setLimitU32IfDefined("maxVertexBuffers",limitsPtr,88);setLimitU64IfDefined("maxBufferSize",limitsPtr,96);setLimitU32IfDefined("maxVertexAttributes",limitsPtr,104);setLimitU32IfDefined("maxVertexBufferArrayStride",limitsPtr,108);setLimitU32IfDefined("maxInterStageShaderVariables",limitsPtr,112);setLimitU32IfDefined("maxColorAttachments",limitsPtr,116);setLimitU32IfDefined("maxColorAttachmentBytesPerSample",limitsPtr,120);setLimitU32IfDefined("maxComputeWorkgroupStorageSize",limitsPtr,124);setLimitU32IfDefined("maxComputeInvocationsPerWorkgroup",limitsPtr,128);setLimitU32IfDefined("maxComputeWorkgroupSizeX",limitsPtr,132);setLimitU32IfDefined("maxComputeWorkgroupSizeY",limitsPtr,136);setLimitU32IfDefined("maxComputeWorkgroupSizeZ",limitsPtr,140);setLimitU32IfDefined("maxComputeWorkgroupsPerDimension",limitsPtr,144);setLimitU32IfDefined("maxImmediateSize",limitsPtr,148,true);if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var compatibilityModeLimitsPtr=nextInChainPtr;if("maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype){setLimitU32IfDefined("maxStorageBuffersInVertexStage",compatibilityModeLimitsPtr,8);setLimitU32IfDefined("maxStorageTexturesInVertexStage",compatibilityModeLimitsPtr,12);setLimitU32IfDefined("maxStorageBuffersInFragmentStage",compatibilityModeLimitsPtr,16);setLimitU32IfDefined("maxStorageTexturesInFragmentStage",compatibilityModeLimitsPtr,20)}}desc["requiredLimits"]=requiredLimits}var defaultQueuePtr=(growMemViews(),HEAPU32)[descriptor+24>>>2>>>0];if(defaultQueuePtr){var defaultQueueDesc={label:WebGPU.makeStringFromOptionalStringView(defaultQueuePtr+4)};desc["defaultQueue"]=defaultQueueDesc}desc["label"]=WebGPU.makeStringFromOptionalStringView(descriptor+4)}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,adapter.requestDevice(desc).then(device=>{runtimeKeepalivePop();callUserCallback(()=>{WebGPU.Internals.jsObjectInsert(queuePtr,device.queue);WebGPU.Internals.jsObjectInsert(devicePtr,device);WebGPU.Internals.futureInsert(deviceLostFutureId,device.lost.then(info=>{callUserCallback(()=>{device.onuncapturederror=ev=>{};var sp=stackSave();var messagePtr=stringToUTF8OnStack(info.message);_emwgpuOnDeviceLostCompleted(deviceLostFutureId,emwgpuStringToInt_DeviceLostReason[info.reason],messagePtr);stackRestore(sp)})}));device.onuncapturederror=ev=>{var type=5;if(ev.error instanceof GPUValidationError)type=2;else if(ev.error instanceof GPUOutOfMemoryError)type=3;else if(ev.error instanceof GPUInternalError)type=4;var sp=stackSave();var messagePtr=stringToUTF8OnStack(ev.error.message);_emwgpuOnUncapturedError(devicePtr,type,messagePtr);stackRestore(sp)};_emwgpuOnRequestDeviceCompleted(futureId,1,devicePtr,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestDeviceCompleted(futureId,3,devicePtr,messagePtr);if(deviceLostFutureId){_emwgpuOnDeviceLostCompleted(deviceLostFutureId,4,messagePtr)}stackRestore(sp)})}))}function _emwgpuBufferDestroy(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(onUnmap){for(var i=0;i{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}};function _emwgpuBufferGetConstMappedRange(bufferPtr,offset,size){bufferPtr>>>=0;offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);if(size==4294967295)size=undefined;var mapped;try{mapped=buffer.getMappedRange(offset,size)}catch(ex){return 0}var data=_memalign(16,mapped.byteLength);(growMemViews(),HEAPU8).set(new Uint8Array(mapped),data>>>0);WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(()=>_free(data));return data}var _emwgpuBufferMapAsync=function(bufferPtr,futureId,mode,offset,size){bufferPtr>>>=0;futureId=bigintToI53Checked(futureId);mode=bigintToI53Checked(mode);offset>>>=0;size>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[];if(size==4294967295)size=undefined;runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,buffer.mapAsync(mode,offset,size).then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnMapAsyncCompleted(futureId,1,0)})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);var status=ex.name==="AbortError"?4:ex.name==="OperationError"?3:0;_emwgpuOnMapAsyncCompleted(futureId,status,messagePtr);delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]})}))};function _emwgpuBufferUnmap(bufferPtr){bufferPtr>>>=0;var buffer=WebGPU.getJsObject(bufferPtr);var onUnmap=WebGPU.Internals.bufferOnUnmaps[bufferPtr];if(!onUnmap){return}for(var i=0;i>>=0;delete WebGPU.Internals.jsObjects[ptr]}function _emwgpuDeviceCreateBuffer(devicePtr,descriptor,bufferPtr){devicePtr>>>=0;descriptor>>>=0;bufferPtr>>>=0;var mappedAtCreation=!!(growMemViews(),HEAPU32)[descriptor+32>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),usage:(growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],size:readI53FromI64(descriptor+24),mappedAtCreation};var device=WebGPU.getJsObject(devicePtr);var buffer;try{buffer=device.createBuffer(desc)}catch(ex){return false}WebGPU.Internals.jsObjectInsert(bufferPtr,buffer);if(mappedAtCreation){WebGPU.Internals.bufferOnUnmaps[bufferPtr]=[]}return true}function _emwgpuDeviceCreateShaderModule(devicePtr,descriptor,shaderModulePtr){devicePtr>>>=0;descriptor>>>=0;shaderModulePtr>>>=0;var nextInChainPtr=(growMemViews(),HEAPU32)[descriptor>>>2>>>0];var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),code:""};switch(sType){case 2:{desc["code"]=WebGPU.makeStringFromStringView(nextInChainPtr+8);break}}var device=WebGPU.getJsObject(devicePtr);WebGPU.Internals.jsObjectInsert(shaderModulePtr,device.createShaderModule(desc))}var _emwgpuDeviceDestroy=devicePtr=>{const device=WebGPU.getJsObject(devicePtr);device.onuncapturederror=null;device.destroy()};function _emwgpuInstanceRequestAdapter(instancePtr,futureId,options,adapterPtr){instancePtr>>>=0;futureId=bigintToI53Checked(futureId);options>>>=0;adapterPtr>>>=0;var opts;if(options){opts={featureLevel:WebGPU.FeatureLevel[(growMemViews(),HEAP32)[options+4>>>2>>>0]],powerPreference:WebGPU.PowerPreference[(growMemViews(),HEAP32)[options+8>>>2>>>0]],forceFallbackAdapter:!!(growMemViews(),HEAPU32)[options+12>>>2>>>0]};var nextInChainPtr=(growMemViews(),HEAPU32)[options>>>2>>>0];if(nextInChainPtr!==0){var sType=(growMemViews(),HEAP32)[nextInChainPtr+4>>>2>>>0];var webxrOptions=nextInChainPtr;opts.xrCompatible=!!(growMemViews(),HEAPU32)[webxrOptions+8>>>2>>>0]}}if(!("gpu"in navigator)){var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (navigator.gpu is not available)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp);return}runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,navigator.gpu.requestAdapter(opts).then(adapter=>{runtimeKeepalivePop();callUserCallback(()=>{if(adapter){WebGPU.Internals.jsObjectInsert(adapterPtr,adapter);_emwgpuOnRequestAdapterCompleted(futureId,1,adapterPtr,0)}else{var sp=stackSave();var messagePtr=stringToUTF8OnStack("WebGPU not available on this browser (requestAdapter returned null)");_emwgpuOnRequestAdapterCompleted(futureId,3,adapterPtr,messagePtr);stackRestore(sp)}})},ex=>{runtimeKeepalivePop();callUserCallback(()=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(ex.message);_emwgpuOnRequestAdapterCompleted(futureId,4,adapterPtr,messagePtr);stackRestore(sp)})}))}var _emwgpuQueueOnSubmittedWorkDone=function(queuePtr,futureId){queuePtr>>>=0;futureId=bigintToI53Checked(futureId);var queue=WebGPU.getJsObject(queuePtr);runtimeKeepalivePush();WebGPU.Internals.futureInsert(futureId,queue.onSubmittedWorkDone().then(()=>{runtimeKeepalivePop();callUserCallback(()=>{_emwgpuOnWorkDoneCompleted(futureId,1)})}))};var _emwgpuWaitAny=function(futurePtr,futureCount,timeoutMSPtr){futurePtr>>>=0;futureCount>>>=0;timeoutMSPtr>>>=0;return Asyncify.handleAsync(async()=>{var promises=[];if(timeoutMSPtr){var timeoutMS=(growMemViews(),HEAP32)[timeoutMSPtr>>>2>>>0];promises.length=futureCount+1;promises[futureCount]=new Promise(resolve=>setTimeout(resolve,timeoutMS,0))}else{promises.length=futureCount}for(var i=0;ithisProgram;var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??"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 _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,__environ,environ_buf);__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;(growMemViews(),HEAPU32)[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,penviron_count,penviron_buf_size);penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();(growMemViews(),HEAPU32)[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}(growMemViews(),HEAPU32)[penviron_buf_size>>>2>>>0]=bufSize;return 0}var initRandomFill=()=>view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),0);var randomFill=view=>(randomFill=initRandomFill())(view);function _random_get(buffer,size){buffer>>>=0;size>>>=0;return randomFill((growMemViews(),HEAPU8).subarray(buffer>>>0,buffer+size>>>0))}function _wgpuAdapterGetInfo(adapterPtr,info){adapterPtr>>>=0;info>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillAdapterInfoStruct(adapter.info,info);return 1}function _wgpuAdapterGetLimits(adapterPtr,limitsOutPtr){adapterPtr>>>=0;limitsOutPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);WebGPU.fillLimitStruct(adapter.limits,limitsOutPtr);return 1}function _wgpuAdapterHasFeature(adapterPtr,featureEnumValue){adapterPtr>>>=0;var adapter=WebGPU.getJsObject(adapterPtr);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}var _wgpuBufferGetSize=function(bufferPtr){bufferPtr>>>=0;var ret=(()=>{var buffer=WebGPU.getJsObject(bufferPtr);return buffer.size})();return BigInt(ret)};function _wgpuCommandEncoderBeginComputePass(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4),timestampWrites:WebGPU.makePassTimestampWrites((growMemViews(),HEAPU32)[descriptor+12>>>2>>>0])}}var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateComputePassEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.beginComputePass(desc));return ptr}function _wgpuCommandEncoderCopyBufferToBuffer(encoderPtr,srcPtr,srcOffset,dstPtr,dstOffset,size){encoderPtr>>>=0;srcPtr>>>=0;srcOffset=bigintToI53Checked(srcOffset);dstPtr>>>=0;dstOffset=bigintToI53Checked(dstOffset);size=bigintToI53Checked(size);var commandEncoder=WebGPU.getJsObject(encoderPtr);var src=WebGPU.getJsObject(srcPtr);var dst=WebGPU.getJsObject(dstPtr);commandEncoder.copyBufferToBuffer(src,srcOffset,dst,dstOffset,size)}function _wgpuCommandEncoderFinish(encoderPtr,descriptor){encoderPtr>>>=0;descriptor>>>=0;var commandEncoder=WebGPU.getJsObject(encoderPtr);var ptr=_emwgpuCreateCommandBuffer(0);WebGPU.Internals.jsObjectInsert(ptr,commandEncoder.finish());return ptr}function _wgpuComputePassEncoderDispatchWorkgroups(passPtr,x,y,z){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.dispatchWorkgroups(x,y,z)}function _wgpuComputePassEncoderEnd(passPtr){passPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);pass.end()}function _wgpuComputePassEncoderSetBindGroup(passPtr,groupIndex,groupPtr,dynamicOffsetCount,dynamicOffsetsPtr){passPtr>>>=0;groupPtr>>>=0;dynamicOffsetCount>>>=0;dynamicOffsetsPtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var group=WebGPU.getJsObject(groupPtr);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{pass.setBindGroup(groupIndex,group,(growMemViews(),HEAPU32),dynamicOffsetsPtr>>>2,dynamicOffsetCount)}}function _wgpuComputePassEncoderSetPipeline(passPtr,pipelinePtr){passPtr>>>=0;pipelinePtr>>>=0;var pass=WebGPU.getJsObject(passPtr);var pipeline=WebGPU.getJsObject(pipelinePtr);pass.setPipeline(pipeline)}function _wgpuComputePipelineGetBindGroupLayout(pipelinePtr,groupIndex){pipelinePtr>>>=0;var pipeline=WebGPU.getJsObject(pipelinePtr);var ptr=_emwgpuCreateBindGroupLayout(0);WebGPU.Internals.jsObjectInsert(ptr,pipeline.getBindGroupLayout(groupIndex));return ptr}var _wgpuDeviceCreateBindGroup=function(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;function makeEntry(entryPtr){var bufferPtr=(growMemViews(),HEAPU32)[entryPtr+8>>>2>>>0];var samplerPtr=(growMemViews(),HEAPU32)[entryPtr+32>>>2>>>0];var textureViewPtr=(growMemViews(),HEAPU32)[entryPtr+36>>>2>>>0];var externalTexturePtr=0;WebGPU.iterateExtensions(entryPtr,{14:ptr=>{externalTexturePtr=(growMemViews(),HEAPU32)[ptr+8>>>2>>>0]}});var resource;if(bufferPtr){var size=readI53FromI64(entryPtr+24);if(size==-1)size=undefined;resource={buffer:WebGPU.getJsObject(bufferPtr),offset:readI53FromI64(entryPtr+16),size}}else{resource=WebGPU.getJsObject(samplerPtr||textureViewPtr||externalTexturePtr)}return{binding:(growMemViews(),HEAPU32)[entryPtr+4>>>2>>>0],resource}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>>2>>>0]),entries:makeEntries((growMemViews(),HEAPU32)[descriptor+16>>>2>>>0],(growMemViews(),HEAPU32)[descriptor+20>>>2>>>0])};var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateBindGroup(0);WebGPU.Internals.jsObjectInsert(ptr,device.createBindGroup(desc));return ptr};function _wgpuDeviceCreateCommandEncoder(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc;if(descriptor){desc={label:WebGPU.makeStringFromOptionalStringView(descriptor+4)}}var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateCommandEncoder(0);WebGPU.Internals.jsObjectInsert(ptr,device.createCommandEncoder(desc));return ptr}function _wgpuDeviceCreateComputePipeline(devicePtr,descriptor){devicePtr>>>=0;descriptor>>>=0;var desc=WebGPU.makeComputePipelineDesc(descriptor);var device=WebGPU.getJsObject(devicePtr);var ptr=_emwgpuCreateComputePipeline(0);WebGPU.Internals.jsObjectInsert(ptr,device.createComputePipeline(desc));return ptr}function _wgpuInstanceHasWGSLLanguageFeature(instance,featureEnumValue){instance>>>=0;if(!("wgslLanguageFeatures"in navigator.gpu)){return false}return navigator.gpu.wgslLanguageFeatures.has(WebGPU.WGSLLanguageFeatureName[featureEnumValue])}var _wgpuQueueSubmit=function(queuePtr,commandCount,commands){queuePtr>>>=0;commandCount>>>=0;commands>>>=0;var queue=WebGPU.getJsObject(queuePtr);var cmds=Array.from((growMemViews(),HEAP32).subarray(commands>>>2>>>0,commands+commandCount*4>>>2>>>0),id=>WebGPU.getJsObject(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queuePtr,bufferPtr,bufferOffset,data,size){queuePtr>>>=0;bufferPtr>>>=0;bufferOffset=bigintToI53Checked(bufferOffset);data>>>=0;size>>>=0;var queue=WebGPU.getJsObject(queuePtr);var buffer=WebGPU.getJsObject(bufferPtr);var subarray=(growMemViews(),HEAPU8).subarray(data>>>0,data+size>>>0);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var readI53FromU64=ptr=>(growMemViews(),HEAPU32)[ptr>>>2>>>0]+(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]*4294967296;var FS_mknod=(path,mode,dev)=>FS.handleError(withStackSave(()=>{var pathBuffer=stringToUTF8OnStack(path);return __wasmfs_mknod(pathBuffer,mode,dev)}));var FS_create=(path,mode=438)=>{mode&=4095;mode|=32768;return FS_mknod(path,mode,0)};var FS_fileDataToTypedArray=data=>{if(typeof data=="string"){data=intArrayFromString(data,true)}if(!data.subarray){data=new Uint8Array(data)}return data};var FS_writeFile=(path,data)=>{var sp=stackSave();var pathBuffer=stringToUTF8OnStack(path);data=FS_fileDataToTypedArray(data);var len=data.length;var dataBuffer=_malloc(len);(growMemViews(),HEAPU8).set(data,dataBuffer>>>0);var ret=__wasmfs_write_file(pathBuffer,dataBuffer,len);_free(dataBuffer);stackRestore(sp);return ret};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{var pathName=name?parent+"/"+name:parent;var mode=FS_getMode(canRead,canWrite);if(!wasmFSPreloadingFlushed){wasmFSPreloadedFiles.push({pathName,fileData,mode})}else{FS_create(pathName,mode);FS_writeFile(pathName,fileData)}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;iid;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS_modeStringToFlags=str=>{if(typeof str!="string")return str;var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_mkdir=(path,mode=511)=>FS.handleError(withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_mkdir(buffer,mode)}));var FS_mkdirTree=(path,mode)=>{var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS_mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}};var FS_unlink=path=>withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_unlink(buffer)});var wasmFSDevices={};var wasmFSDeviceStreams={};var FS={ErrnoError:class extends Error{name="ErrnoError";message="FS error";constructor(code){super();this.errno=code}},handleError(returnValue){if(returnValue<0){throw new FS.ErrnoError(-returnValue)}return returnValue},createDataFile(parent,name,fileData,canRead,canWrite,canOwn){FS_createDataFile(parent,name,fileData,canRead,canWrite,canOwn)},createPath(parent,path,canRead,canWrite){var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);if(!wasmFSPreloadingFlushed){wasmFSPreloadedDirs.push({parentPath:parent,childName:part})}else{try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}}parent=current}return current},createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){return FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)},async preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish){return FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)},readFile(path,opts={}){opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var buf,length;withStackSave(()=>{var bufPtr=stackAlloc(4);var sizePtr=stackAlloc(4);FS.handleError(-__wasmfs_read_file(stringToUTF8OnStack(path),bufPtr,sizePtr));buf=(growMemViews(),HEAPU32)[bufPtr>>>2>>>0];length=readI53FromI64(sizePtr)});return opts.encoding==="utf8"?UTF8ToString(buf,length):(growMemViews(),HEAPU8).slice(buf,buf+length)},cwd:()=>UTF8ToString(__wasmfs_get_cwd()),analyzePath(path){var exists=!!FS.findObject(path);return{exists,object:{contents:exists?FS.readFile(path):null}}},mkdir:(path,mode)=>FS_mkdir(path,mode),mkdirTree:(path,mode)=>FS_mkdirTree(path,mode),rmdir:path=>FS.handleError(withStackSave(()=>__wasmfs_rmdir(stringToUTF8OnStack(path)))),open:(path,flags,mode=438)=>withStackSave(()=>{flags=FS_modeStringToFlags(flags);var buffer=stringToUTF8OnStack(path);var fd=FS.handleError(__wasmfs_open(buffer,flags,mode));return{fd}}),create:(path,mode)=>FS_create(path,mode),close:stream=>FS.handleError(-__wasmfs_close(stream.fd)),unlink:path=>FS_unlink(path),chdir:path=>withStackSave(()=>__wasmfs_chdir(stringToUTF8OnStack(path))),read(stream,buffer,offset,length,position){var seeking=typeof position!="undefined";var dataBuffer=_malloc(length);var bytesRead;if(seeking){bytesRead=__wasmfs_pread(stream.fd,dataBuffer,length,BigInt(position))}else{bytesRead=__wasmfs_read(stream.fd,dataBuffer,length)}if(bytesRead>0){buffer.set((growMemViews(),HEAPU8).subarray(dataBuffer>>>0,dataBuffer+bytesRead>>>0),offset)}_free(dataBuffer);return FS.handleError(bytesRead)},write(stream,buffer,offset,length,position,canOwn){var seeking=typeof position!="undefined";var dataBuffer=_malloc(length);for(var i=0;i>>0]=buffer[offset+i]}var bytesRead;if(seeking){bytesRead=__wasmfs_pwrite(stream.fd,dataBuffer,length,BigInt(position))}else{bytesRead=__wasmfs_write(stream.fd,dataBuffer,length)}_free(dataBuffer);return FS.handleError(bytesRead)},writeFile:(path,data)=>FS_writeFile(path,data),mmap:(stream,length,offset,prot,flags)=>{var buf=FS.handleError(__wasmfs_mmap(length,prot,flags,stream.fd,BigInt(offset)));return{ptr:buf,allocated:true}},msync:(stream,bufferPtr,offset,length,mmapFlags)=>FS.handleError(__wasmfs_msync(bufferPtr,length,mmapFlags)),munmap:(addr,length)=>FS.handleError(__wasmfs_munmap(addr,length)),symlink:(target,linkpath)=>withStackSave(()=>__wasmfs_symlink(stringToUTF8OnStack(target),stringToUTF8OnStack(linkpath))),readlink(path){return withStackSave(()=>{var bufPtr=stackAlloc(4);FS.handleError(__wasmfs_readlink(stringToUTF8OnStack(path),bufPtr));var readBuffer=(growMemViews(),HEAPU32)[bufPtr>>>2>>>0];return UTF8ToString(readBuffer)})},statBufToObject(statBuf){return{dev:(growMemViews(),HEAPU32)[statBuf>>>2>>>0],mode:(growMemViews(),HEAPU32)[statBuf+4>>>2>>>0],nlink:(growMemViews(),HEAPU32)[statBuf+8>>>2>>>0],uid:(growMemViews(),HEAPU32)[statBuf+12>>>2>>>0],gid:(growMemViews(),HEAPU32)[statBuf+16>>>2>>>0],rdev:(growMemViews(),HEAPU32)[statBuf+20>>>2>>>0],size:readI53FromI64(statBuf+24),blksize:(growMemViews(),HEAP32)[statBuf+32>>>2>>>0],blocks:(growMemViews(),HEAP32)[statBuf+36>>>2>>>0],atime:readI53FromI64(statBuf+40),mtime:readI53FromI64(statBuf+56),ctime:readI53FromI64(statBuf+72),ino:readI53FromU64(statBuf+88)}},stat(path){return withStackSave(()=>{var statBuf=stackAlloc(96);FS.handleError(__wasmfs_stat(stringToUTF8OnStack(path),statBuf));return FS.statBufToObject(statBuf)})},lstat(path){return withStackSave(()=>{var statBuf=stackAlloc(96);FS.handleError(__wasmfs_lstat(stringToUTF8OnStack(path),statBuf));return FS.statBufToObject(statBuf)})},chmod(path,mode){return FS.handleError(withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_chmod(buffer,mode)}))},lchmod(path,mode){return FS.handleError(withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_lchmod(buffer,mode)}))},fchmod(fd,mode){return FS.handleError(__wasmfs_fchmod(fd,mode))},utime:(path,atime,mtime)=>FS.handleError(withStackSave(()=>__wasmfs_utime(stringToUTF8OnStack(path),atime,mtime))),truncate(path,len){return FS.handleError(withStackSave(()=>__wasmfs_truncate(stringToUTF8OnStack(path),BigInt(len))))},ftruncate(fd,len){return FS.handleError(__wasmfs_ftruncate(fd,BigInt(len)))},findObject(path){var result=withStackSave(()=>__wasmfs_identify(stringToUTF8OnStack(path)));if(result==44){return null}return{isFolder:result==31,isDevice:false}},readdir:path=>withStackSave(()=>{var pathBuffer=stringToUTF8OnStack(path);var entries=[];var state=__wasmfs_readdir_start(pathBuffer);if(!state){throw new Error("No such directory")}var entry;while(entry=__wasmfs_readdir_get(state)){entries.push(UTF8ToString(entry))}__wasmfs_readdir_finish(state);return entries}),mount:(type,opts,mountpoint)=>{var backendPointer=type.createBackend(opts);return FS.handleError(withStackSave(()=>__wasmfs_mount(stringToUTF8OnStack(mountpoint),backendPointer)))},unmount:mountpoint=>FS.handleError(withStackSave(()=>_wasmfs_unmount(stringToUTF8OnStack(mountpoint)))),mknod:(path,mode,dev)=>FS_mknod(path,mode,dev),makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){var backendPointer=_wasmfs_create_jsimpl_backend();var definedOps={userRead:ops.read,userWrite:ops.write,allocFile:file=>{wasmFSDeviceStreams[file]={}},freeFile:file=>{wasmFSDeviceStreams[file]=undefined},getSize:file=>{},setSize:(file,size)=>0,read:(file,buffer,length,offset)=>{var bufferArray=(growMemViews(),HEAP8).subarray(buffer>>>0,buffer+length>>>0);try{var bytesRead=definedOps.userRead(wasmFSDeviceStreams[file],bufferArray,0,length,offset)}catch(e){return-e.errno}(growMemViews(),HEAP8).set(bufferArray,buffer>>>0);return bytesRead},write:(file,buffer,length,offset)=>{var bufferArray=(growMemViews(),HEAP8).subarray(buffer>>>0,buffer+length>>>0);try{var bytesWritten=definedOps.userWrite(wasmFSDeviceStreams[file],bufferArray,0,length,offset)}catch(e){return-e.errno}(growMemViews(),HEAP8).set(bufferArray,buffer>>>0);return bytesWritten}};wasmFS$backends[backendPointer]=definedOps;wasmFSDevices[dev]=backendPointer},createDevice(parent,name,input,output){if(typeof parent!="string"){throw new Error("Only string paths are accepted")}var path=PATH.join2(parent,name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i_wasmfs_create_file(stringToUTF8OnStack(path),mode,deviceBackend)))},rename(oldPath,newPath){return FS.handleError(withStackSave(()=>{var oldPathBuffer=stringToUTF8OnStack(oldPath);var newPathBuffer=stringToUTF8OnStack(newPath);return __wasmfs_rename(oldPathBuffer,newPathBuffer)}))},llseek(stream,offset,whence){return FS.handleError(__wasmfs_llseek(stream.fd,BigInt(offset),whence))}};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentFunction(original){var wrapper=(...args)=>{Asyncify.exportCallStack.push(original);try{return original(...args)}finally{if(!ABORT){var top=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}};Asyncify.funcWrappers.set(original,wrapper);return wrapper},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callstackFuncToId:new Map,callStackIdToFunc:new Map,funcWrappers:new Map,callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(func){if(!Asyncify.callstackFuncToId.has(func)){var id=Asyncify.callStackId++;Asyncify.callstackFuncToId.set(func,id);Asyncify.callStackIdToFunc.set(id,func)}return Asyncify.callstackFuncToId.get(func)},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runtimeKeepalivePush();runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve,reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){(growMemViews(),HEAPU32)[ptr>>>2>>>0]=stack;(growMemViews(),HEAPU32)[ptr+4>>>2>>>0]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);(growMemViews(),HEAP32)[ptr+8>>>2>>>0]=rewindId},getDataRewindFunc(ptr){var id=(growMemViews(),HEAP32)[ptr+8>>>2>>>0];var func=Asyncify.callStackIdToFunc.get(id);return func},doRewind(ptr){var original=Asyncify.getDataRewindFunc(ptr);var func=Asyncify.funcWrappers.get(original);runtimeKeepalivePop();return callUserCallback(func)},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync:startAsync=>Asyncify.handleSleep(async wakeUp=>{wakeUp(await startAsync())})};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{(growMemViews(),HEAP8).set(array,buffer>>>0)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="pointer")return ret>>>0;if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i0){preInit.shift()()}}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["UTF8ToString"]=UTF8ToString;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,_environ_get,_environ_sizes_get];var _llamadart_webgpu_probe,_llamadart_webgpu_supports_pthreads,_llamadart_webgpu_pthread_pool_size,_llamadart_webgpu_backends_json,_llamadart_webgpu_last_error,_llamadart_webgpu_set_log_level,_llamadart_webgpu_load_model,_llamadart_webgpu_load_model_from_url,_wasmfs_create_file,_llamadart_webgpu_mmproj_load,_llamadart_webgpu_mmproj_free,_llamadart_webgpu_mmproj_supports_vision,_llamadart_webgpu_mmproj_supports_audio,_llamadart_webgpu_media_clear_pending,_llamadart_webgpu_media_add_file,_llamadart_webgpu_media_add_encoded,_llamadart_webgpu_media_add_rgb,_llamadart_webgpu_media_add_audio_f32,_llamadart_webgpu_tokenize_to_json,_llamadart_webgpu_last_tokens_json,_llamadart_webgpu_state_save_file,_llamadart_webgpu_state_load_file,_llamadart_webgpu_detokenize_from_json,_llamadart_webgpu_last_detokenized,_llamadart_webgpu_embed_to_json,_llamadart_webgpu_last_embedding_json,_llamadart_webgpu_generate,_llamadart_webgpu_begin_generation,_llamadart_webgpu_next_token,_llamadart_webgpu_last_piece,_llamadart_webgpu_end_generation,_llamadart_webgpu_request_cancel,_llamadart_webgpu_last_output,_llamadart_webgpu_get_context_size,_llamadart_webgpu_model_meta_json,_llamadart_webgpu_shutdown,_main,_malloc,_free,_emwgpuCreateBindGroup,_emwgpuCreateBindGroupLayout,_emwgpuCreateCommandBuffer,_emwgpuCreateCommandEncoder,_emwgpuCreateComputePassEncoder,_emwgpuCreateComputePipeline,_emwgpuCreateExternalTexture,_emwgpuCreatePipelineLayout,_emwgpuCreateQuerySet,_emwgpuCreateRenderBundle,_emwgpuCreateRenderBundleEncoder,_emwgpuCreateRenderPassEncoder,_emwgpuCreateRenderPipeline,_emwgpuCreateSampler,_emwgpuCreateSurface,_emwgpuCreateTexture,_emwgpuCreateTextureView,_emwgpuCreateAdapter,_emwgpuImportBuffer,_emwgpuCreateDevice,_emwgpuCreateQueue,_emwgpuCreateShaderModule,_emwgpuOnDeviceLostCompleted,_emwgpuOnMapAsyncCompleted,_emwgpuOnRequestAdapterCompleted,_emwgpuOnRequestDeviceCompleted,_emwgpuOnWorkDoneCompleted,_emwgpuOnUncapturedError,__emscripten_tls_init,_pthread_self,__emscripten_thread_init,___set_thread_state,__emscripten_thread_crashed,_emscripten_proxy_execute_queue,_emscripten_proxy_finish,__emscripten_run_js_on_main_thread_done,__emscripten_run_js_on_main_thread,__emscripten_thread_free_data,__emscripten_thread_exit,__emscripten_check_mailbox,_memalign,_setThrew,_emscripten_stack_set_limits,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___cxa_decrement_exception_refcount,___cxa_get_exception_ptr,__wasmfs_fetch_get_file_url,__wasmfs_fetch_get_chunk_size,__wasmfs_read_file,__wasmfs_write_file,__wasmfs_mkdir,__wasmfs_rmdir,__wasmfs_open,__wasmfs_mknod,__wasmfs_unlink,__wasmfs_chdir,__wasmfs_symlink,__wasmfs_readlink,__wasmfs_write,__wasmfs_pwrite,__wasmfs_chmod,__wasmfs_fchmod,__wasmfs_lchmod,__wasmfs_llseek,__wasmfs_rename,__wasmfs_read,__wasmfs_pread,__wasmfs_truncate,__wasmfs_ftruncate,__wasmfs_close,__wasmfs_mmap,__wasmfs_msync,__wasmfs_munmap,__wasmfs_utime,__wasmfs_stat,__wasmfs_lstat,__wasmfs_mount,__wasmfs_identify,__wasmfs_readdir_start,__wasmfs_readdir_get,__wasmfs_readdir_finish,__wasmfs_get_cwd,_wasmfs_create_jsimpl_backend,_wasmfs_unmount,dynCall_viii,dynCall_ii,dynCall_vi,dynCall_vii,dynCall_iii,dynCall_ifi,dynCall_viiii,dynCall_viiiii,dynCall_iiii,dynCall_iiiii,dynCall_v,dynCall_viiiiiiiiii,dynCall_dii,dynCall_iiji,dynCall_iiiiii,dynCall_viiiiii,dynCall_iiiji,dynCall_iij,dynCall_iiiiiii,dynCall_iiiiiiiii,dynCall_jii,dynCall_viij,dynCall_viiiiiiii,dynCall_i,dynCall_jiii,dynCall_iiiij,dynCall_ji,dynCall_viijii,dynCall_viijijj,dynCall_jijiii,dynCall_viifffi,dynCall_viiiiiii,dynCall_viji,dynCall_jiji,dynCall_iidiiiii,dynCall_iiiiij,dynCall_iiiiid,dynCall_iiiiijj,dynCall_iiiiiiii,dynCall_iiiiiijj,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind,__indirect_function_table,wasmTable;function assignWasmExports(wasmExports){_llamadart_webgpu_probe=Module["_llamadart_webgpu_probe"]=wasmExports["cb"];_llamadart_webgpu_supports_pthreads=Module["_llamadart_webgpu_supports_pthreads"]=wasmExports["db"];_llamadart_webgpu_pthread_pool_size=Module["_llamadart_webgpu_pthread_pool_size"]=wasmExports["eb"];_llamadart_webgpu_backends_json=Module["_llamadart_webgpu_backends_json"]=wasmExports["fb"];_llamadart_webgpu_last_error=Module["_llamadart_webgpu_last_error"]=wasmExports["gb"];_llamadart_webgpu_set_log_level=Module["_llamadart_webgpu_set_log_level"]=wasmExports["hb"];_llamadart_webgpu_load_model=Module["_llamadart_webgpu_load_model"]=wasmExports["ib"];_llamadart_webgpu_load_model_from_url=Module["_llamadart_webgpu_load_model_from_url"]=wasmExports["jb"];_wasmfs_create_file=wasmExports["kb"];_llamadart_webgpu_mmproj_load=Module["_llamadart_webgpu_mmproj_load"]=wasmExports["lb"];_llamadart_webgpu_mmproj_free=Module["_llamadart_webgpu_mmproj_free"]=wasmExports["mb"];_llamadart_webgpu_mmproj_supports_vision=Module["_llamadart_webgpu_mmproj_supports_vision"]=wasmExports["nb"];_llamadart_webgpu_mmproj_supports_audio=Module["_llamadart_webgpu_mmproj_supports_audio"]=wasmExports["ob"];_llamadart_webgpu_media_clear_pending=Module["_llamadart_webgpu_media_clear_pending"]=wasmExports["pb"];_llamadart_webgpu_media_add_file=Module["_llamadart_webgpu_media_add_file"]=wasmExports["qb"];_llamadart_webgpu_media_add_encoded=Module["_llamadart_webgpu_media_add_encoded"]=wasmExports["rb"];_llamadart_webgpu_media_add_rgb=Module["_llamadart_webgpu_media_add_rgb"]=wasmExports["sb"];_llamadart_webgpu_media_add_audio_f32=Module["_llamadart_webgpu_media_add_audio_f32"]=wasmExports["tb"];_llamadart_webgpu_tokenize_to_json=Module["_llamadart_webgpu_tokenize_to_json"]=wasmExports["ub"];_llamadart_webgpu_last_tokens_json=Module["_llamadart_webgpu_last_tokens_json"]=wasmExports["vb"];_llamadart_webgpu_state_save_file=Module["_llamadart_webgpu_state_save_file"]=wasmExports["wb"];_llamadart_webgpu_state_load_file=Module["_llamadart_webgpu_state_load_file"]=wasmExports["xb"];_llamadart_webgpu_detokenize_from_json=Module["_llamadart_webgpu_detokenize_from_json"]=wasmExports["yb"];_llamadart_webgpu_last_detokenized=Module["_llamadart_webgpu_last_detokenized"]=wasmExports["zb"];_llamadart_webgpu_embed_to_json=Module["_llamadart_webgpu_embed_to_json"]=wasmExports["Ab"];_llamadart_webgpu_last_embedding_json=Module["_llamadart_webgpu_last_embedding_json"]=wasmExports["Bb"];_llamadart_webgpu_generate=Module["_llamadart_webgpu_generate"]=wasmExports["Cb"];_llamadart_webgpu_begin_generation=Module["_llamadart_webgpu_begin_generation"]=wasmExports["Eb"];_llamadart_webgpu_next_token=Module["_llamadart_webgpu_next_token"]=wasmExports["Fb"];_llamadart_webgpu_last_piece=Module["_llamadart_webgpu_last_piece"]=wasmExports["Gb"];_llamadart_webgpu_end_generation=Module["_llamadart_webgpu_end_generation"]=wasmExports["Hb"];_llamadart_webgpu_request_cancel=Module["_llamadart_webgpu_request_cancel"]=wasmExports["Ib"];_llamadart_webgpu_last_output=Module["_llamadart_webgpu_last_output"]=wasmExports["Jb"];_llamadart_webgpu_get_context_size=Module["_llamadart_webgpu_get_context_size"]=wasmExports["Kb"];_llamadart_webgpu_model_meta_json=Module["_llamadart_webgpu_model_meta_json"]=wasmExports["Lb"];_llamadart_webgpu_shutdown=Module["_llamadart_webgpu_shutdown"]=wasmExports["Mb"];_main=Module["_main"]=wasmExports["Nb"];_malloc=wasmExports["Ob"];_free=wasmExports["Pb"];_emwgpuCreateBindGroup=wasmExports["Qb"];_emwgpuCreateBindGroupLayout=wasmExports["Rb"];_emwgpuCreateCommandBuffer=wasmExports["Sb"];_emwgpuCreateCommandEncoder=wasmExports["Tb"];_emwgpuCreateComputePassEncoder=wasmExports["Ub"];_emwgpuCreateComputePipeline=wasmExports["Vb"];_emwgpuCreateExternalTexture=wasmExports["Wb"];_emwgpuCreatePipelineLayout=wasmExports["Xb"];_emwgpuCreateQuerySet=wasmExports["Yb"];_emwgpuCreateRenderBundle=wasmExports["Zb"];_emwgpuCreateRenderBundleEncoder=wasmExports["_b"];_emwgpuCreateRenderPassEncoder=wasmExports["$b"];_emwgpuCreateRenderPipeline=wasmExports["ac"];_emwgpuCreateSampler=wasmExports["bc"];_emwgpuCreateSurface=wasmExports["cc"];_emwgpuCreateTexture=wasmExports["dc"];_emwgpuCreateTextureView=wasmExports["ec"];_emwgpuCreateAdapter=wasmExports["fc"];_emwgpuImportBuffer=wasmExports["gc"];_emwgpuCreateDevice=wasmExports["hc"];_emwgpuCreateQueue=wasmExports["ic"];_emwgpuCreateShaderModule=wasmExports["jc"];_emwgpuOnDeviceLostCompleted=wasmExports["kc"];_emwgpuOnMapAsyncCompleted=wasmExports["lc"];_emwgpuOnRequestAdapterCompleted=wasmExports["mc"];_emwgpuOnRequestDeviceCompleted=wasmExports["nc"];_emwgpuOnWorkDoneCompleted=wasmExports["oc"];_emwgpuOnUncapturedError=wasmExports["pc"];__emscripten_tls_init=wasmExports["qc"];_pthread_self=wasmExports["rc"];__emscripten_thread_init=wasmExports["sc"];___set_thread_state=wasmExports["tc"];__emscripten_thread_crashed=wasmExports["uc"];_emscripten_proxy_execute_queue=wasmExports["vc"];_emscripten_proxy_finish=wasmExports["wc"];__emscripten_run_js_on_main_thread_done=wasmExports["xc"];__emscripten_run_js_on_main_thread=wasmExports["yc"];__emscripten_thread_free_data=wasmExports["zc"];__emscripten_thread_exit=wasmExports["Ac"];__emscripten_check_mailbox=wasmExports["Bc"];_memalign=wasmExports["Cc"];_setThrew=wasmExports["Dc"];_emscripten_stack_set_limits=wasmExports["Ec"];__emscripten_stack_restore=wasmExports["Fc"];__emscripten_stack_alloc=wasmExports["Gc"];_emscripten_stack_get_current=wasmExports["Hc"];___cxa_decrement_exception_refcount=wasmExports["Ic"];___cxa_get_exception_ptr=wasmExports["Jc"];__wasmfs_fetch_get_file_url=wasmExports["Kc"];__wasmfs_fetch_get_chunk_size=wasmExports["Lc"];__wasmfs_read_file=wasmExports["Mc"];__wasmfs_write_file=wasmExports["Nc"];__wasmfs_mkdir=wasmExports["Oc"];__wasmfs_rmdir=wasmExports["Pc"];__wasmfs_open=wasmExports["Qc"];__wasmfs_mknod=wasmExports["Rc"];__wasmfs_unlink=wasmExports["Sc"];__wasmfs_chdir=wasmExports["Tc"];__wasmfs_symlink=wasmExports["Uc"];__wasmfs_readlink=wasmExports["Vc"];__wasmfs_write=wasmExports["Wc"];__wasmfs_pwrite=wasmExports["Xc"];__wasmfs_chmod=wasmExports["Yc"];__wasmfs_fchmod=wasmExports["Zc"];__wasmfs_lchmod=wasmExports["_c"];__wasmfs_llseek=wasmExports["$c"];__wasmfs_rename=wasmExports["ad"];__wasmfs_read=wasmExports["bd"];__wasmfs_pread=wasmExports["cd"];__wasmfs_truncate=wasmExports["dd"];__wasmfs_ftruncate=wasmExports["ed"];__wasmfs_close=wasmExports["fd"];__wasmfs_mmap=wasmExports["gd"];__wasmfs_msync=wasmExports["hd"];__wasmfs_munmap=wasmExports["id"];__wasmfs_utime=wasmExports["jd"];__wasmfs_stat=wasmExports["kd"];__wasmfs_lstat=wasmExports["ld"];__wasmfs_mount=wasmExports["md"];__wasmfs_identify=wasmExports["nd"];__wasmfs_readdir_start=wasmExports["od"];__wasmfs_readdir_get=wasmExports["pd"];__wasmfs_readdir_finish=wasmExports["qd"];__wasmfs_get_cwd=wasmExports["rd"];_wasmfs_create_jsimpl_backend=wasmExports["sd"];_wasmfs_unmount=wasmExports["td"];dynCall_viii=dynCalls["viii"]=wasmExports["ud"];dynCall_ii=dynCalls["ii"]=wasmExports["vd"];dynCall_vi=dynCalls["vi"]=wasmExports["wd"];dynCall_vii=dynCalls["vii"]=wasmExports["xd"];dynCall_iii=dynCalls["iii"]=wasmExports["yd"];dynCall_ifi=dynCalls["ifi"]=wasmExports["zd"];dynCall_viiii=dynCalls["viiii"]=wasmExports["Ad"];dynCall_viiiii=dynCalls["viiiii"]=wasmExports["Bd"];dynCall_iiii=dynCalls["iiii"]=wasmExports["Cd"];dynCall_iiiii=dynCalls["iiiii"]=wasmExports["Dd"];dynCall_v=dynCalls["v"]=wasmExports["Ed"];dynCall_viiiiiiiiii=dynCalls["viiiiiiiiii"]=wasmExports["Fd"];dynCall_dii=dynCalls["dii"]=wasmExports["Gd"];dynCall_iiji=dynCalls["iiji"]=wasmExports["Hd"];dynCall_iiiiii=dynCalls["iiiiii"]=wasmExports["Id"];dynCall_viiiiii=dynCalls["viiiiii"]=wasmExports["Jd"];dynCall_iiiji=dynCalls["iiiji"]=wasmExports["Kd"];dynCall_iij=dynCalls["iij"]=wasmExports["Ld"];dynCall_iiiiiii=dynCalls["iiiiiii"]=wasmExports["Md"];dynCall_iiiiiiiii=dynCalls["iiiiiiiii"]=wasmExports["Nd"];dynCall_jii=dynCalls["jii"]=wasmExports["Od"];dynCall_viij=dynCalls["viij"]=wasmExports["Pd"];dynCall_viiiiiiii=dynCalls["viiiiiiii"]=wasmExports["Qd"];dynCall_i=dynCalls["i"]=wasmExports["Rd"];dynCall_jiii=dynCalls["jiii"]=wasmExports["Sd"];dynCall_iiiij=dynCalls["iiiij"]=wasmExports["Td"];dynCall_ji=dynCalls["ji"]=wasmExports["Ud"];dynCall_viijii=dynCalls["viijii"]=wasmExports["Vd"];dynCall_viijijj=dynCalls["viijijj"]=wasmExports["Wd"];dynCall_jijiii=dynCalls["jijiii"]=wasmExports["Xd"];dynCall_viifffi=dynCalls["viifffi"]=wasmExports["Yd"];dynCall_viiiiiii=dynCalls["viiiiiii"]=wasmExports["Zd"];dynCall_viji=dynCalls["viji"]=wasmExports["_d"];dynCall_jiji=dynCalls["jiji"]=wasmExports["$d"];dynCall_iidiiiii=dynCalls["iidiiiii"]=wasmExports["ae"];dynCall_iiiiij=dynCalls["iiiiij"]=wasmExports["be"];dynCall_iiiiid=dynCalls["iiiiid"]=wasmExports["ce"];dynCall_iiiiijj=dynCalls["iiiiijj"]=wasmExports["de"];dynCall_iiiiiiii=dynCalls["iiiiiiii"]=wasmExports["ee"];dynCall_iiiiiijj=dynCalls["iiiiiijj"]=wasmExports["fe"];_asyncify_start_unwind=wasmExports["ge"];_asyncify_stop_unwind=wasmExports["he"];_asyncify_start_rewind=wasmExports["ie"];_asyncify_stop_rewind=wasmExports["je"];__indirect_function_table=wasmTable=wasmExports["Db"]}var wasmImports;function assignWasmImports(){wasmImports={Z:___call_sighandler,u:___cxa_begin_catch,w:___cxa_end_catch,b:___cxa_find_matching_catch_2,m:___cxa_find_matching_catch_3,Da:___cxa_rethrow,i:___cxa_throw,ia:___pthread_create_js,k:___resumeException,qa:__abort_js,ka:__emscripten_init_main_thread_js,da:__emscripten_notify_mailbox_postmessage,C:__emscripten_receive_on_main_thread_js,$:__emscripten_runtime_keepalive_clear,A:__emscripten_thread_cleanup,ja:__emscripten_thread_mailbox_await,na:__emscripten_thread_set_strongref,ba:__tzset_js,P:__wasmfs_copy_preloaded_file_data,T:__wasmfs_create_fetch_backend_js,L:__wasmfs_get_num_preloaded_dirs,M:__wasmfs_get_num_preloaded_files,J:__wasmfs_get_preloaded_child_path,_a:__wasmfs_get_preloaded_file_mode,Q:__wasmfs_get_preloaded_file_size,K:__wasmfs_get_preloaded_parent_path,$a:__wasmfs_get_preloaded_path_name,Za:__wasmfs_jsimpl_alloc_file,Y:__wasmfs_jsimpl_async_alloc_file,U:__wasmfs_jsimpl_async_free_file,X:__wasmfs_jsimpl_async_get_size,W:__wasmfs_jsimpl_async_read,V:__wasmfs_jsimpl_async_write,I:__wasmfs_jsimpl_free_file,Ya:__wasmfs_jsimpl_get_size,Xa:__wasmfs_jsimpl_read,Va:__wasmfs_jsimpl_set_size,Wa:__wasmfs_jsimpl_write,O:__wasmfs_stdin_get_char,R:__wasmfs_thread_utils_heartbeat,oa:_clock_time_get,B:_emscripten_check_blocking_allowed,r:_emscripten_date_now,s:_emscripten_err,E:_emscripten_exit_with_live_runtime,ea:_emscripten_get_heap_max,D:_emscripten_get_now,wa:_emscripten_has_asyncify,fa:_emscripten_num_logical_cores,N:_emscripten_out,ca:_emscripten_resize_heap,ga:_emscripten_unwind_to_js_event_loop,va:_emwgpuAdapterRequestDevice,Ca:_emwgpuBufferDestroy,Ba:_emwgpuBufferGetConstMappedRange,Aa:_emwgpuBufferMapAsync,za:_emwgpuBufferUnmap,p:_emwgpuDelete,ua:_emwgpuDeviceCreateBuffer,ta:_emwgpuDeviceCreateShaderModule,ya:_emwgpuDeviceDestroy,sa:_emwgpuInstanceRequestAdapter,ra:_emwgpuQueueOnSubmittedWorkDone,xa:_emwgpuWaitAny,la:_environ_get,ma:_environ_sizes_get,ha:_exit,c:invoke_ii,f:invoke_iii,l:invoke_iiii,o:invoke_iiiii,q:invoke_iiiiiii,F:invoke_iiiiiiiii,v:invoke_iiiij,y:invoke_ji,Ea:invoke_jii,H:invoke_jiii,Ma:invoke_jijiii,e:invoke_v,d:invoke_vi,j:invoke_vii,g:invoke_viii,h:invoke_viiii,x:invoke_viiiii,n:invoke_viiiiii,t:invoke_viiiiiii,G:invoke_viijii,Pa:invoke_viijijj,a:wasmMemory,_:_proc_exit,aa:_random_get,ab:_wgpuAdapterGetInfo,S:_wgpuAdapterGetLimits,pa:_wgpuAdapterHasFeature,Sa:_wgpuBufferGetSize,Ja:_wgpuCommandEncoderBeginComputePass,Qa:_wgpuCommandEncoderCopyBufferToBuffer,Oa:_wgpuCommandEncoderFinish,Ga:_wgpuComputePassEncoderDispatchWorkgroups,Fa:_wgpuComputePassEncoderEnd,Ha:_wgpuComputePassEncoderSetBindGroup,Ia:_wgpuComputePassEncoderSetPipeline,La:_wgpuComputePipelineGetBindGroupLayout,Ka:_wgpuDeviceCreateBindGroup,Ra:_wgpuDeviceCreateCommandEncoder,Ta:_wgpuDeviceCreateComputePipeline,Ua:_wgpuInstanceHasWGSLLanguageFeature,Na:_wgpuQueueSubmit,z:_wgpuQueueWriteBuffer}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_jiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_jiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0);return 0n}}function invoke_iiiij(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0);return 0n}}function invoke_viijijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viijijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_jijiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jijiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0);return 0n}}function invoke_viijii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viijii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return dynCall_jii(index,a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0);return 0n}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;var makeWrapper_ppp=f=>(a0,a1)=>f(a0,a1)>>>0;var makeWrapper_pp____=f=>(a0,a1,a2,a3,a4)=>f(a0,a1,a2,a3,a4)>>>0;wasmExports["Ob"]=makeWrapper_pp(wasmExports["Ob"]);wasmExports["qc"]=makeWrapper_p(wasmExports["qc"]);wasmExports["rc"]=makeWrapper_p(wasmExports["rc"]);wasmExports["emscripten_builtin_memalign"]=makeWrapper_ppp(wasmExports["emscripten_builtin_memalign"]);wasmExports["Cc"]=makeWrapper_ppp(wasmExports["Cc"]);wasmExports["Gc"]=makeWrapper_pp(wasmExports["Gc"]);wasmExports["Hc"]=makeWrapper_p(wasmExports["Hc"]);wasmExports["Jc"]=makeWrapper_pp(wasmExports["Jc"]);wasmExports["Kc"]=makeWrapper_pp(wasmExports["Kc"]);wasmExports["gd"]=makeWrapper_pp____(wasmExports["gd"]);wasmExports["od"]=makeWrapper_pp(wasmExports["od"]);wasmExports["pd"]=makeWrapper_pp(wasmExports["pd"]);wasmExports["rd"]=makeWrapper_p(wasmExports["rd"]);wasmExports["sd"]=makeWrapper_p(wasmExports["sd"]);wasmExports["wasmfs_create_memory_backend"]=makeWrapper_p(wasmExports["wasmfs_create_memory_backend"]);return wasmExports}function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}async function run(){if(ENVIRONMENT_IS_PTHREAD){initRuntime();return}preRun();if(runDependencies){await resolveRunDependencies()}var setStatus=Module["setStatus"];if(setStatus){setStatus("Running...");await new Promise(resolve=>setTimeout(resolve,1));setTimeout(setStatus,1,"")}if(ABORT)return;initRuntime();Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)callMain();postRun()}var wasmExports;if(!ENVIRONMENT_IS_PTHREAD){wasmExports=await createWasm();await run()} +;return Module}export default createLlamaWebGpuCoreModule;var isPthread=globalThis.name=="em-pthread";isPthread&&createLlamaWebGpuCoreModule();