UNPKG

onnxruntime-web

Version:

A Javascript library for running ONNX models on browsers

10 lines 114 kB
/*! * ONNX Runtime Web v1.24.3 * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ var qr=Object.defineProperty;var Kf=Object.getOwnPropertyDescriptor;var Qf=Object.getOwnPropertyNames;var ec=Object.prototype.hasOwnProperty;var Jr=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(r,s)=>(typeof require<"u"?require:r)[s]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var F=(a,r)=>()=>(a&&(r=a(a=0)),r);var At=(a,r)=>{for(var s in r)qr(a,s,{get:r[s],enumerable:!0})},tc=(a,r,s,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Qf(r))!ec.call(a,i)&&i!==s&&qr(a,i,{get:()=>r[i],enumerable:!(f=Kf(r,i))||f.enumerable});return a};var Ht=a=>tc(qr({},"__esModule",{value:!0}),a);var jt,Ke,Qe,rc,La,Xr=F(()=>{"use strict";jt=new Map,Ke=[],Qe=(a,r,s)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let f=jt.get(a);if(f===void 0)jt.set(a,{backend:r,priority:s});else{if(f.priority>s)return;if(f.priority===s&&f.backend!==r)throw new Error(`cannot register backend "${a}" using priority ${s}`)}if(s>=0){let i=Ke.indexOf(a);i!==-1&&Ke.splice(i,1);for(let d=0;d<Ke.length;d++)if(jt.get(Ke[d]).priority<=s){Ke.splice(d,0,a);return}Ke.push(a)}return}throw new TypeError("not a valid backend")},rc=async a=>{let r=jt.get(a);if(!r)return"backend not found.";if(r.initialized)return r.backend;if(r.aborted)return r.error;{let s=!!r.initPromise;try{return s||(r.initPromise=r.backend.init(a)),await r.initPromise,r.initialized=!0,r.backend}catch(f){return s||(r.error=`${f}`,r.aborted=!0),r.error}finally{delete r.initPromise}}},La=async a=>{let r=a.executionProviders||[],s=r.map(y=>typeof y=="string"?y:y.name),f=s.length===0?Ke:s,i,d=[],p=new Set;for(let y of f){let w=await rc(y);typeof w=="string"?d.push({name:y,err:w}):(i||(i=w),i===w&&p.add(y))}if(!i)throw new Error(`no available backend found. ERR: ${d.map(y=>`[${y.name}] ${y.err}`).join(", ")}`);for(let{name:y,err:w}of d)s.includes(y)&&console.warn(`removing requested execution provider "${y}" from session options because it is not available: ${w}`);let m=r.filter(y=>p.has(typeof y=="string"?y:y.name));return[i,new Proxy(a,{get:(y,w)=>w==="executionProviders"?m:Reflect.get(y,w)})]}});var Ba=F(()=>{"use strict";Xr()});var Oa,Ma=F(()=>{"use strict";Oa="1.24.3"});var Ua,ue,Zr=F(()=>{"use strict";Ma();Ua="warning",ue={wasm:{},webgl:{},webgpu:{},versions:{common:Oa},set logLevel(a){if(a!==void 0){if(typeof a!="string"||["verbose","info","warning","error","fatal"].indexOf(a)===-1)throw new Error(`Unsupported logging level: ${a}`);Ua=a}},get logLevel(){return Ua}};Object.defineProperty(ue,"logLevel",{enumerable:!0})});var ee,Ca=F(()=>{"use strict";Zr();ee=ue});var Da,Pa,_a=F(()=>{"use strict";Da=(a,r)=>{let s=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);s.width=a.dims[3],s.height=a.dims[2];let f=s.getContext("2d");if(f!=null){let i,d;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(i=a.dims[2],d=a.dims[3]):(i=a.dims[3],d=a.dims[2]);let p=r?.format!==void 0?r.format:"RGB",m=r?.norm,y,w;m===void 0||m.mean===void 0?y=[255,255,255,255]:typeof m.mean=="number"?y=[m.mean,m.mean,m.mean,m.mean]:(y=[m.mean[0],m.mean[1],m.mean[2],0],m.mean[3]!==void 0&&(y[3]=m.mean[3])),m===void 0||m.bias===void 0?w=[0,0,0,0]:typeof m.bias=="number"?w=[m.bias,m.bias,m.bias,m.bias]:(w=[m.bias[0],m.bias[1],m.bias[2],0],m.bias[3]!==void 0&&(w[3]=m.bias[3]));let T=d*i,g=0,v=T,S=T*2,U=-1;p==="RGBA"?(g=0,v=T,S=T*2,U=T*3):p==="RGB"?(g=0,v=T,S=T*2):p==="RBG"&&(g=0,S=T,v=T*2);for(let R=0;R<d;R++)for(let j=0;j<i;j++){let P=(a.data[g++]-w[0])*y[0],M=(a.data[v++]-w[1])*y[1],Y=(a.data[S++]-w[2])*y[2],B=U===-1?255:(a.data[U++]-w[3])*y[3];f.fillStyle="rgba("+P+","+M+","+Y+","+B+")",f.fillRect(j,R,1,1)}if("toDataURL"in s)return s.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},Pa=(a,r)=>{let s=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),f;if(s!=null){let i,d,p;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(i=a.dims[2],d=a.dims[1],p=a.dims[3]):(i=a.dims[3],d=a.dims[2],p=a.dims[1]);let m=r!==void 0&&r.format!==void 0?r.format:"RGB",y=r?.norm,w,T;y===void 0||y.mean===void 0?w=[255,255,255,255]:typeof y.mean=="number"?w=[y.mean,y.mean,y.mean,y.mean]:(w=[y.mean[0],y.mean[1],y.mean[2],255],y.mean[3]!==void 0&&(w[3]=y.mean[3])),y===void 0||y.bias===void 0?T=[0,0,0,0]:typeof y.bias=="number"?T=[y.bias,y.bias,y.bias,y.bias]:(T=[y.bias[0],y.bias[1],y.bias[2],0],y.bias[3]!==void 0&&(T[3]=y.bias[3]));let g=d*i;if(r!==void 0&&(r.format!==void 0&&p===4&&r.format!=="RGBA"||p===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let v=4,S=0,U=1,R=2,j=3,P=0,M=g,Y=g*2,B=-1;m==="RGBA"?(P=0,M=g,Y=g*2,B=g*3):m==="RGB"?(P=0,M=g,Y=g*2):m==="RBG"&&(P=0,Y=g,M=g*2),f=s.createImageData(i,d);for(let G=0;G<d*i;S+=v,U+=v,R+=v,j+=v,G++)f.data[S]=(a.data[P++]-T[0])*w[0],f.data[U]=(a.data[M++]-T[1])*w[1],f.data[R]=(a.data[Y++]-T[2])*w[2],f.data[j]=B===-1?255:(a.data[B++]-T[3])*w[3]}else throw new Error("Can not access image data");return f}});var Kr,Ra,Na,Wa,ka,Fa,Ga=F(()=>{"use strict";Yt();Kr=(a,r)=>{if(a===void 0)throw new Error("Image buffer must be defined");if(r.height===void 0||r.width===void 0)throw new Error("Image height and width must be defined");if(r.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:s,width:f}=r,i=r.norm??{mean:255,bias:0},d,p;typeof i.mean=="number"?d=[i.mean,i.mean,i.mean,i.mean]:d=[i.mean[0],i.mean[1],i.mean[2],i.mean[3]??255],typeof i.bias=="number"?p=[i.bias,i.bias,i.bias,i.bias]:p=[i.bias[0],i.bias[1],i.bias[2],i.bias[3]??0];let m=r.format!==void 0?r.format:"RGBA",y=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",w=s*f,T=y==="RGBA"?new Float32Array(w*4):new Float32Array(w*3),g=4,v=0,S=1,U=2,R=3,j=0,P=w,M=w*2,Y=-1;m==="RGB"&&(g=3,v=0,S=1,U=2,R=-1),y==="RGBA"?Y=w*3:y==="RBG"?(j=0,M=w,P=w*2):y==="BGR"&&(M=0,P=w,j=w*2);for(let G=0;G<w;G++,v+=g,U+=g,S+=g,R+=g)T[j++]=(a[v]+p[0])/d[0],T[P++]=(a[S]+p[1])/d[1],T[M++]=(a[U]+p[2])/d[2],Y!==-1&&R!==-1&&(T[Y++]=(a[R]+p[3])/d[3]);return y==="RGBA"?new ce("float32",T,[1,4,s,f]):new ce("float32",T,[1,3,s,f])},Ra=async(a,r)=>{let s=typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement,f=typeof ImageData<"u"&&a instanceof ImageData,i=typeof ImageBitmap<"u"&&a instanceof ImageBitmap,d=typeof a=="string",p,m=r??{},y=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},w=T=>typeof HTMLCanvasElement<"u"&&T instanceof HTMLCanvasElement||T instanceof OffscreenCanvas?T.getContext("2d"):null;if(s){let T=y();T.width=a.width,T.height=a.height;let g=w(T);if(g!=null){let v=a.height,S=a.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(v=r.resizedHeight,S=r.resizedWidth),r!==void 0){if(m=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");m.tensorFormat="RGBA",m.height=v,m.width=S}else m.tensorFormat="RGBA",m.height=v,m.width=S;g.drawImage(a,0,0),p=g.getImageData(0,0,S,v).data}else throw new Error("Can not access image data")}else if(f){let T,g;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(T=r.resizedHeight,g=r.resizedWidth):(T=a.height,g=a.width),r!==void 0&&(m=r),m.format="RGBA",m.height=T,m.width=g,r!==void 0){let v=y();v.width=g,v.height=T;let S=w(v);if(S!=null)S.putImageData(a,0,0),p=S.getImageData(0,0,g,T).data;else throw new Error("Can not access image data")}else p=a.data}else if(i){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let T=y();T.width=a.width,T.height=a.height;let g=w(T);if(g!=null){let v=a.height,S=a.width;return g.drawImage(a,0,0,S,v),p=g.getImageData(0,0,S,v).data,m.height=v,m.width=S,Kr(p,m)}else throw new Error("Can not access image data")}else{if(d)return new Promise((T,g)=>{let v=y(),S=w(v);if(!a||!S)return g();let U=new Image;U.crossOrigin="Anonymous",U.src=a,U.onload=()=>{v.width=U.width,v.height=U.height,S.drawImage(U,0,0,v.width,v.height);let R=S.getImageData(0,0,v.width,v.height);m.height=v.height,m.width=v.width,T(Kr(R.data,m))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(p!==void 0)return Kr(p,m);throw new Error("Input data provided is not supported - aborted tensor creation")},Na=(a,r)=>{let{width:s,height:f,download:i,dispose:d}=r,p=[1,f,s,4];return new ce({location:"texture",type:"float32",texture:a,dims:p,download:i,dispose:d})},Wa=(a,r)=>{let{dataType:s,dims:f,download:i,dispose:d}=r;return new ce({location:"gpu-buffer",type:s??"float32",gpuBuffer:a,dims:f,download:i,dispose:d})},ka=(a,r)=>{let{dataType:s,dims:f,download:i,dispose:d}=r;return new ce({location:"ml-tensor",type:s??"float32",mlTensor:a,dims:f,download:i,dispose:d})},Fa=(a,r,s)=>new ce({location:"cpu-pinned",type:a,data:r,dims:s??[r.length]})});var et,It,$a,za,Va=F(()=>{"use strict";et=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),It=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),$a=!1,za=()=>{if(!$a){$a=!0;let a=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,s=globalThis.Float16Array,f=typeof s<"u"&&s.from;a&&(et.set("int64",BigInt64Array),It.set(BigInt64Array,"int64")),r&&(et.set("uint64",BigUint64Array),It.set(BigUint64Array,"uint64")),f?(et.set("float16",s),It.set(s,"float16")):et.set("float16",Uint16Array)}}});var Ha,ja,Ya=F(()=>{"use strict";Yt();Ha=a=>{let r=1;for(let s=0;s<a.length;s++){let f=a[s];if(typeof f!="number"||!Number.isSafeInteger(f))throw new TypeError(`dims[${s}] must be an integer, got: ${f}`);if(f<0)throw new RangeError(`dims[${s}] must be a non-negative integer, got: ${f}`);r*=f}return r},ja=(a,r)=>{switch(a.location){case"cpu":return new ce(a.type,a.data,r);case"cpu-pinned":return new ce({location:"cpu-pinned",data:a.data,type:a.type,dims:r});case"texture":return new ce({location:"texture",texture:a.texture,type:a.type,dims:r});case"gpu-buffer":return new ce({location:"gpu-buffer",gpuBuffer:a.gpuBuffer,type:a.type,dims:r});case"ml-tensor":return new ce({location:"ml-tensor",mlTensor:a.mlTensor,type:a.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${a.location} is not supported`)}}});var ce,Yt=F(()=>{"use strict";_a();Ga();Va();Ya();ce=class{constructor(r,s,f){za();let i,d;if(typeof r=="object"&&"location"in r)switch(this.dataLocation=r.location,i=r.type,d=r.dims,r.location){case"cpu-pinned":{let m=et.get(i);if(!m)throw new TypeError(`unsupported type "${i}" to create tensor from pinned buffer`);if(!(r.data instanceof m))throw new TypeError(`buffer should be of type ${m.name}`);this.cpuData=r.data;break}case"texture":{if(i!=="float32")throw new TypeError(`unsupported type "${i}" to create tensor from texture`);this.gpuTextureData=r.texture,this.downloader=r.download,this.disposer=r.dispose;break}case"gpu-buffer":{if(i!=="float32"&&i!=="float16"&&i!=="int32"&&i!=="int64"&&i!=="uint32"&&i!=="uint8"&&i!=="bool"&&i!=="uint4"&&i!=="int4")throw new TypeError(`unsupported type "${i}" to create tensor from gpu buffer`);this.gpuBufferData=r.gpuBuffer,this.downloader=r.download,this.disposer=r.dispose;break}case"ml-tensor":{if(i!=="float32"&&i!=="float16"&&i!=="int32"&&i!=="int64"&&i!=="uint32"&&i!=="uint64"&&i!=="int8"&&i!=="uint8"&&i!=="bool"&&i!=="uint4"&&i!=="int4")throw new TypeError(`unsupported type "${i}" to create tensor from MLTensor`);this.mlTensorData=r.mlTensor,this.downloader=r.download,this.disposer=r.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let m,y;if(typeof r=="string")if(i=r,y=f,r==="string"){if(!Array.isArray(s))throw new TypeError("A string tensor's data must be a string array.");m=s}else{let w=et.get(r);if(w===void 0)throw new TypeError(`Unsupported tensor type: ${r}.`);if(Array.isArray(s)){if(r==="float16"&&w===Uint16Array||r==="uint4"||r==="int4")throw new TypeError(`Creating a ${r} tensor from number array is not supported. Please use ${w.name} as data.`);r==="uint64"||r==="int64"?m=w.from(s,BigInt):m=w.from(s)}else if(s instanceof w)m=s;else if(s instanceof Uint8ClampedArray)if(r==="uint8")m=Uint8Array.from(s);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(r==="float16"&&s instanceof Uint16Array&&w!==Uint16Array)m=new globalThis.Float16Array(s.buffer,s.byteOffset,s.length);else throw new TypeError(`A ${i} tensor's data must be type of ${w}`)}else if(y=s,Array.isArray(r)){if(r.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let w=typeof r[0];if(w==="string")i="string",m=r;else if(w==="boolean")i="bool",m=Uint8Array.from(r);else throw new TypeError(`Invalid element type of data array: ${w}.`)}else if(r instanceof Uint8ClampedArray)i="uint8",m=Uint8Array.from(r);else{let w=It.get(r.constructor);if(w===void 0)throw new TypeError(`Unsupported type for tensor data: ${r.constructor}.`);i=w,m=r}if(y===void 0)y=[m.length];else if(!Array.isArray(y))throw new TypeError("A tensor's dims must be a number array");d=y,this.cpuData=m,this.dataLocation="cpu"}let p=Ha(d);if(this.cpuData&&p!==this.cpuData.length&&!((i==="uint4"||i==="int4")&&Math.ceil(p/2)===this.cpuData.length))throw new Error(`Tensor's size(${p}) does not match data length(${this.cpuData.length}).`);this.type=i,this.dims=d,this.size=p}static async fromImage(r,s){return Ra(r,s)}static fromTexture(r,s){return Na(r,s)}static fromGpuBuffer(r,s){return Wa(r,s)}static fromMLTensor(r,s){return ka(r,s)}static fromPinnedBuffer(r,s,f){return Fa(r,s,f)}toDataURL(r){return Da(this,r)}toImageData(r){return Pa(this,r)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(r){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let s=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=s,r&&this.disposer&&(this.disposer(),this.disposer=void 0),s}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(r){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return ja(this,r)}}});var xe,Qr=F(()=>{"use strict";Yt();xe=ce});var qa,Ja,tt,rt,Ge,$e,en=F(()=>{"use strict";Zr();qa=(a,r)=>{(typeof ue.trace>"u"?!ue.wasm.trace:!ue.trace)||console.timeStamp(`${a}::ORT::${r}`)},Ja=(a,r)=>{let s=new Error().stack?.split(/\r\n|\r|\n/g)||[],f=!1;for(let i=0;i<s.length;i++){if(f&&!s[i].includes("TRACE_FUNC")){let d=`FUNC_${a}::${s[i].trim().split(" ")[1]}`;r&&(d+=`::${r}`),qa("CPU",d);return}s[i].includes("TRACE_FUNC")&&(f=!0)}},tt=a=>{(typeof ue.trace>"u"?!ue.wasm.trace:!ue.trace)||Ja("BEGIN",a)},rt=a=>{(typeof ue.trace>"u"?!ue.wasm.trace:!ue.trace)||Ja("END",a)},Ge=a=>{(typeof ue.trace>"u"?!ue.wasm.trace:!ue.trace)||console.time(`ORT::${a}`)},$e=a=>{(typeof ue.trace>"u"?!ue.wasm.trace:!ue.trace)||console.timeEnd(`ORT::${a}`)}});var qt,Xa=F(()=>{"use strict";Xr();Qr();en();qt=class a{constructor(r){this.handler=r}async run(r,s,f){tt(),Ge("InferenceSession.run");let i={},d={};if(typeof r!="object"||r===null||r instanceof xe||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let p=!0;if(typeof s=="object"){if(s===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(s instanceof xe)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(s)){if(s.length===0)throw new TypeError("'fetches' cannot be an empty array.");p=!1;for(let w of s){if(typeof w!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(w)===-1)throw new RangeError(`'fetches' contains invalid output name: ${w}.`);i[w]=null}if(typeof f=="object"&&f!==null)d=f;else if(typeof f<"u")throw new TypeError("'options' must be an object.")}else{let w=!1,T=Object.getOwnPropertyNames(s);for(let g of this.outputNames)if(T.indexOf(g)!==-1){let v=s[g];(v===null||v instanceof xe)&&(w=!0,p=!1,i[g]=v)}if(w){if(typeof f=="object"&&f!==null)d=f;else if(typeof f<"u")throw new TypeError("'options' must be an object.")}else d=s}}else if(typeof s<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let w of this.inputNames)if(typeof r[w]>"u")throw new Error(`input '${w}' is missing in 'feeds'.`);if(p)for(let w of this.outputNames)i[w]=null;let m=await this.handler.run(r,i,d),y={};for(let w in m)if(Object.hasOwnProperty.call(m,w)){let T=m[w];T instanceof xe?y[w]=T:y[w]=new xe(T.type,T.data,T.dims)}return $e("InferenceSession.run"),rt(),y}async release(){return this.handler.dispose()}static async create(r,s,f,i){tt(),Ge("InferenceSession.create");let d,p={};if(typeof r=="string"){if(d=r,typeof s=="object"&&s!==null)p=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(d=r,typeof s=="object"&&s!==null)p=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer){let T=r,g=0,v=r.byteLength;if(typeof s=="object"&&s!==null)p=s;else if(typeof s=="number"){if(g=s,!Number.isSafeInteger(g))throw new RangeError("'byteOffset' must be an integer.");if(g<0||g>=T.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${T.byteLength}).`);if(v=r.byteLength-g,typeof f=="number"){if(v=f,!Number.isSafeInteger(v))throw new RangeError("'byteLength' must be an integer.");if(v<=0||g+v>T.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${T.byteLength-g}].`);if(typeof i=="object"&&i!==null)p=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(typeof f<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof s<"u")throw new TypeError("'options' must be an object.");d=new Uint8Array(T,g,v)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[m,y]=await La(p),w=await m.createInferenceSessionHandler(d,y);return $e("InferenceSession.create"),rt(),new a(w)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}}});var nc,Za=F(()=>{"use strict";Xa();nc=qt});var Ka=F(()=>{"use strict"});var Qa=F(()=>{"use strict"});var es=F(()=>{"use strict"});var ts=F(()=>{"use strict"});var tn={};At(tn,{InferenceSession:()=>nc,TRACE:()=>qa,TRACE_EVENT_BEGIN:()=>Ge,TRACE_EVENT_END:()=>$e,TRACE_FUNC_BEGIN:()=>tt,TRACE_FUNC_END:()=>rt,Tensor:()=>xe,env:()=>ee,registerBackend:()=>Qe});var ze=F(()=>{"use strict";Ba();Ca();Za();Qr();Ka();Qa();en();es();ts()});var Jt=F(()=>{"use strict"});var as={};At(as,{default:()=>oc});var ns,os,oc,ss=F(()=>{"use strict";rn();Ve();Xt();ns="ort-wasm-proxy-worker",os=globalThis.self?.name===ns;os&&(self.onmessage=a=>{let{type:r,in:s}=a.data;try{switch(r){case"init-wasm":Zt(s.wasm).then(()=>{Kt(s).then(()=>{postMessage({type:r})},f=>{postMessage({type:r,err:f})})},f=>{postMessage({type:r,err:f})});break;case"init-ep":{let{epName:f,env:i}=s;Qt(i,f).then(()=>{postMessage({type:r})},d=>{postMessage({type:r,err:d})});break}case"copy-from":{let{buffer:f}=s,i=xt(f);postMessage({type:r,out:i});break}case"create":{let{model:f,options:i}=s;er(f,i).then(d=>{postMessage({type:r,out:d})},d=>{postMessage({type:r,err:d})});break}case"release":tr(s),postMessage({type:r});break;case"run":{let{sessionId:f,inputIndices:i,inputs:d,outputIndices:p,options:m}=s;rr(f,i,d,p,new Array(p.length).fill(null),m).then(y=>{y.some(w=>w[3]!=="cpu")?postMessage({type:r,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:r,out:y},or([...d,...y]))},y=>{postMessage({type:r,err:y})});break}case"end-profiling":nr(s),postMessage({type:r});break;default:}}catch(f){postMessage({type:r,err:f})}});oc=os?null:a=>new Worker(a??be,{type:"module",name:ns})});var us={};At(us,{default:()=>ac});async function is(a={}){var r=a,s=!!globalThis.window,f=!!globalThis.WorkerGlobalScope,i=f&&self.name?.startsWith("em-pthread");r.mountExternalData=(e,t)=>{e.startsWith("./")&&(e=e.substring(2)),(r.Zc||(r.Zc=new Map)).set(e,t)},r.unmountExternalData=()=>{delete r.Zc},globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,Me:!0}).buffer.constructor;let d=()=>{let e=t=>(...n)=>{let o=Oe;return n=t(...n),Oe!=o?new Promise((u,c)=>{Mr={resolve:u,reject:c}}):n};(()=>{for(let t of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])r[t]=e(r[t])})(),typeof jsepRunAsync<"u"&&(r._OrtRun=jsepRunAsync(r._OrtRun),r._OrtRunWithBinding=jsepRunAsync(r._OrtRunWithBinding)),d=void 0};r.asyncInit=()=>{d?.()};var p,m,y=(e,t)=>{throw t},w=import.meta.url,T="";if(s||f){try{T=new URL(".",w).href}catch{}f&&(m=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),p=async e=>{if(oe(e))return new Promise((n,o)=>{var u=new XMLHttpRequest;u.open("GET",e,!0),u.responseType="arraybuffer",u.onload=()=>{u.status==200||u.status==0&&u.response?n(u.response):o(u.status)},u.onerror=o,u.send(null)});var t=await fetch(e,{credentials:"same-origin"});if(t.ok)return t.arrayBuffer();throw Error(t.status+" : "+t.url)}}var g,v,S,U,R,j,P=console.log.bind(console),M=console.error.bind(console),Y=P,B=M,G=!1,oe=e=>e.startsWith("file://");function l(){ke.buffer!=Z.buffer&&se()}if(i){let e=function(t){try{var n=t.data,o=n.Uc;if(o==="load"){let u=[];self.onmessage=c=>u.push(c),j=()=>{postMessage({Uc:"loaded"});for(let c of u)e(c);self.onmessage=e};for(let c of n.ne)r[c]&&!r[c].proxy||(r[c]=(...h)=>{postMessage({Uc:"callHandler",me:c,args:h})},c=="print"&&(Y=r[c]),c=="printErr"&&(B=r[c]));ke=n.we,se(),v=n.xe,wt(),Vt()}else if(o==="run"){(function(u){var c=(l(),A)[u+52>>>2>>>0];u=(l(),A)[u+56>>>2>>>0],Ro(c,c-u),C(c)})(n.Sc),$r(n.Sc,0,0,1,0,0),Tn(),Lr(n.Sc),ne||(wo(),ne=!0);try{Js(n.te,n.ad)}catch(u){if(u!="unwind")throw u}}else n.target!=="setimmediate"&&(o==="checkMailbox"?ne&&Pt():o&&(B(`worker: received unknown command ${o}`),B(n)))}catch(u){throw Uo(),u}};var Mc=e,ne=!1;self.onunhandledrejection=t=>{throw t.reason||t},self.onmessage=e}var Z,J,Ce,K,x,A,_,ae,le,q,ye,re=!1;function se(){var e=ke.buffer;r.HEAP8=Z=new Int8Array(e),Ce=new Int16Array(e),r.HEAPU8=J=new Uint8Array(e),K=new Uint16Array(e),r.HEAP32=x=new Int32Array(e),r.HEAPU32=A=new Uint32Array(e),_=new Float32Array(e),ae=new Float64Array(e),le=new BigInt64Array(e),q=new BigUint64Array(e)}function wr(){re=!0,i?j():Ne.dc()}function we(e){throw B(e="Aborted("+e+")"),G=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),R?.(e),e}function je(){return{a:{sa:lf,g:Xs,K:Zs,f:Ks,n:Qs,h:ei,wa:ti,b:ri,ea:ni,Ja:xn,p:oi,fa:Mn,Za:Un,$b:Cn,bc:Dn,_a:Pn,Xa:_n,Qa:Rn,Wa:Nn,qa:Wn,ac:kn,Zb:Fn,Ya:Gn,_b:$n,db:ai,Fa:ii,Ub:ui,Sb:ci,Ea:li,P:pi,I:mi,Tb:hi,ma:Ei,Vb:Si,Ta:Ai,Xb:xi,Ka:Li,Pb:Bi,Ha:Oi,Sa:Lr,ab:Mi,W:Pi,r:ki,c:Ir,tb:Fi,y:Gi,N:$i,D:zi,m:Vi,t:Xn,ub:Hi,J:ji,V:Yi,j:qi,u:Ji,q:Xi,l:Zi,Na:Ki,Oa:Qi,Pa:eu,La:eo,Ma:to,Rb:ro,fb:ru,cb:au,$:su,sb:iu,na:uu,bb:nu,Y:fu,$a:cu,Yb:du,G:tu,ib:lu,_:pu,ra:kt,Wb:hu,hb:mu,gb:yu,pb:Su,E:Au,va:Iu,ua:xu,rb:Lu,Z:Bu,w:Ou,ob:Mu,nb:Uu,mb:Cu,qb:Du,lb:Pu,kb:_u,jb:Ru,Ua:co,Va:lo,Ia:Tr,ga:po,pa:mo,Ra:ho,oa:yo,Eb:Jf,za:$f,Fb:qf,Aa:Gf,H:Cf,e:yf,s:mf,x:pf,B:xf,Ib:Wf,L:Of,v:wf,Ba:kf,ca:zf,ja:Nf,Gb:Yf,Hb:jf,Da:Df,Ca:Rf,Kb:Pf,O:Mf,da:Ff,d:bf,A:gf,k:hf,Db:Xf,o:vf,z:If,C:Tf,F:Ef,M:Lf,Lb:Uf,U:Vf,ka:Bf,ba:Hf,Mb:Af,Nb:Sf,R:_f,i:Wu,a:ke,eb:Ye,Jb:ku,la:Fu,Q:Gu,ta:$u,Ob:zu,S:Vu,Ab:Hu,Bb:ju,xa:Yu,ha:qu,T:Ju,Ga:Xu,ya:Zu,aa:Ku,yb:Qu,cc:ef,X:tf,Cb:rf,vb:nf,wb:af,xb:sf,ia:uf,zb:ff,Qb:cf}}}async function wt(){function e(o,u){var c=Ne=o.exports;o={};for(let[h,b]of Object.entries(c))typeof b=="function"?(c=Ui(b),o[h]=c):o[h]=b;return Ne=o,Ne=function(){var h=Ne,b=I=>N=>I(N)>>>0,E=I=>()=>I()>>>0;return(h=Object.assign({},h)).ec=b(h.ec),h.Hc=E(h.Hc),h.Jc=b(h.Jc),h.vd=(I=>(N,W)=>I(N,W)>>>0)(h.vd),h.Ad=b(h.Ad),h.Bd=E(h.Bd),h.Fd=b(h.Fd),h}(),wn.push(Ne.md),bo=(o=Ne).ec,wo=o.fc,r._OrtInit=o.gc,r._OrtGetLastError=o.hc,r._OrtCreateSessionOptions=o.ic,r._OrtAppendExecutionProvider=o.jc,r._OrtAddFreeDimensionOverride=o.kc,r._OrtAddSessionConfigEntry=o.lc,r._OrtReleaseSessionOptions=o.mc,r._OrtCreateSession=o.nc,r._OrtReleaseSession=o.oc,r._OrtGetInputOutputCount=o.pc,r._OrtGetInputOutputMetadata=o.qc,r._OrtFree=o.rc,r._OrtCreateTensor=o.sc,r._OrtGetTensorData=o.tc,r._OrtReleaseTensor=o.uc,r._OrtCreateRunOptions=o.vc,r._OrtAddRunConfigEntry=o.wc,r._OrtReleaseRunOptions=o.xc,r._OrtCreateBinding=o.yc,r._OrtBindInput=o.zc,r._OrtBindOutput=o.Ac,r._OrtClearBoundOutputs=o.Bc,r._OrtReleaseBinding=o.Cc,r._OrtRunWithBinding=o.Dc,r._OrtRun=o.Ec,r._OrtEndProfiling=o.Fc,Rr=r._OrtGetWebGpuDevice=o.Gc,$t=o.Hc,Te=r._free=o.Ic,mt=r._malloc=o.Jc,go=r._wgpuBufferRelease=o.Kc,To=r._wgpuCreateInstance=o.Lc,vo=o.Mc,Eo=o.Nc,So=o.Oc,Ao=o.Pc,Io=o.Qc,xo=o.Tc,Lo=o.bd,Bo=o.cd,Oo=o.dd,Nr=o.fd,Wr=o.gd,kr=o.hd,Fr=o.id,Et=o.jd,Gr=o.kd,Mo=o.ld,$r=o.od,Uo=o.pd,Co=o.qd,Do=o.rd,zr=o.sd,Po=o.td,_o=o.ud,Vr=o.vd,k=o.wd,St=o.xd,Ro=o.yd,C=o.zd,zt=o.Ad,D=o.Bd,No=o.Cd,Hr=o.Dd,Wo=o.Ed,ko=o.Fd,Fo=o.Gd,jr=o.Hd,Go=o.Id,$o=o.Jd,zo=o.Kd,Vo=o.Ld,Ho=o.Md,jo=o.Nd,Yo=o.Od,qo=o.Pd,Jo=o.Qd,Xo=o.Rd,Zo=o.Sd,Ko=o.Td,Qo=o.Ud,ea=o.Vd,ta=o.Wd,ra=o.Yd,na=o.Zd,oa=o._d,aa=o.$d,sa=o.be,ia=o.ce,ua=o.de,fa=o.ee,ca=o.fe,da=o.ge,la=o.qe,pa=o.ve,ma=o.ye,ha=o.ze,ya=o.Ae,ba=o.Be,wa=o.Ce,ga=o.De,Ta=o.Ee,va=o.Fe,Ea=o.Ge,Sa=o.ef,Aa=o.ff,Ia=o.gf,xa=o.hf,v=u,Ne}var t,n=je();return r.instantiateWasm?new Promise(o=>{r.instantiateWasm(n,(u,c)=>{o(e(u,c))})}):i?e(new WebAssembly.Instance(v,je()),v):(ye??=r.locateFile?r.locateFile?r.locateFile("ort-wasm-simd-threaded.asyncify.wasm",T):T+"ort-wasm-simd-threaded.asyncify.wasm":new URL("ort-wasm-simd-threaded.asyncify.wasm",import.meta.url).href,t=await async function(o){var u=ye;if(!g&&!oe(u))try{var c=fetch(u,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,o)}catch(h){B(`wasm streaming compile failed: ${h}`),B("falling back to ArrayBuffer instantiation")}return async function(h,b){try{var E=await async function(I){if(!g)try{var N=await p(I);return new Uint8Array(N)}catch{}if(I==ye&&g)I=new Uint8Array(g);else{if(!m)throw"both async and sync fetching of the wasm failed";I=m(I)}return I}(h);return await WebAssembly.instantiate(E,b)}catch(I){B(`failed to asynchronously prepare wasm: ${I}`),we(I)}}(u,o)}(n),e(t.instance,t.module))}class gt{name="ExitStatus";constructor(t){this.message=`Program terminated with exit(${t})`,this.status=t}}var Se=e=>{e.terminate(),e.onmessage=()=>{}},Ae=[],Le=0,te=null,Q=e=>{We.length==0&&(En(),vn(We[0]));var t=We.pop();if(!t)return 6;Tt.push(t),qe[e.Sc]=t,t.Sc=e.Sc;var n={Uc:"run",te:e.se,ad:e.ad,Sc:e.Sc};return t.postMessage(n,e.he),0},$=0,H=(e,t,...n)=>{var o,u=16*n.length,c=D(),h=zt(u),b=h>>>3;for(o of n)typeof o=="bigint"?((l(),le)[b++>>>0]=1n,(l(),le)[b++>>>0]=o):((l(),le)[b++>>>0]=0n,(l(),ae)[b++>>>0]=o);return e=Co(e,0,u,h,t),C(c),e};function Ye(e){if(i)return H(0,1,e);if(S=e,!(0<$)){for(var t of Tt)Se(t);for(t of We)Se(t);We=[],Tt=[],qe={},G=!0}y(0,new gt(e))}function gr(e){if(i)return H(1,0,e);Tr(e)}var Tr=e=>{if(S=e,i)throw gr(e),"unwind";Ye(e)},We=[],Tt=[],wn=[],qe={},gn=e=>{var t=e.Sc;delete qe[t],We.push(e),Tt.splice(Tt.indexOf(e),1),e.Sc=0,Do(t)};function Tn(){wn.forEach(e=>e())}var vn=e=>new Promise(t=>{e.onmessage=u=>{var c=u.data;if(u=c.Uc,c.$c&&c.$c!=$t()){var h=qe[c.$c];h?h.postMessage(c,c.he):B(`Internal error! Worker sent a message "${u}" to target pthread ${c.$c}, but that thread no longer exists!`)}else u==="checkMailbox"?Pt():u==="spawnThread"?Q(c):u==="cleanupThread"?Dt(()=>{gn(qe[c.ue])}):u==="loaded"?(e.loaded=!0,t(e)):c.target==="setimmediate"?e.postMessage(c):u==="uncaughtException"?e.onerror(c.error):u==="callHandler"?r[c.me](...c.args):u&&B(`worker sent an unknown command ${u}`)},e.onerror=u=>{throw B(`worker sent an error! ${u.filename}:${u.lineno}: ${u.message}`),u};var n,o=[];for(n of[])r.propertyIsEnumerable(n)&&o.push(n);e.postMessage({Uc:"load",ne:o,we:ke,xe:v})});function En(){var e=new Worker((()=>{let t=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new t("ort.webgpu.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});We.push(e)}var ke,Js=(e,t)=>{$=0,e=jr(e,t),0<$?S=e:zr(e)},Ut=[],Ct=0,pe=e=>-9007199254740992>e||9007199254740992<e?NaN:Number(e);function Xs(e){var t=new vr(e>>>=0);return(l(),Z)[t.Vc+12>>>0]==0&&(Sn(t,!0),Ct--),An(t,!1),Ut.push(t),ko(e)}var ft=0,Zs=()=>{k(0,0);var e=Ut.pop();No(e.nd),ft=0};function Sn(e,t){t=t?1:0,(l(),Z)[e.Vc+12>>>0]=t}function An(e,t){t=t?1:0,(l(),Z)[e.Vc+13>>>0]=t}class vr{constructor(t){this.nd=t,this.Vc=t-24}}var Er=e=>{var t=ft;if(!t)return St(0),0;var n=new vr(t);(l(),A)[n.Vc+16>>>2>>>0]=t;var o=(l(),A)[n.Vc+4>>>2>>>0];if(!o)return St(0),t;for(var u of e){if(u===0||u===o)break;if(Wo(u,o,n.Vc+16))return St(u),t}return St(o),t};function Ks(){return Er([])}function Qs(e){return Er([e>>>0])}function ei(e,t,n,o){return Er([e>>>0,t>>>0,n>>>0,o>>>0])}var ti=()=>{var e=Ut.pop();e||we("no exception to throw");var t=e.nd;throw(l(),Z)[e.Vc+13>>>0]==0&&(Ut.push(e),An(e,!0),Sn(e,!1),Ct++),Hr(t),ft=t};function ri(e,t,n){var o=new vr(e>>>=0);throw t>>>=0,n>>>=0,(l(),A)[o.Vc+16>>>2>>>0]=0,(l(),A)[o.Vc+4>>>2>>>0]=t,(l(),A)[o.Vc+8>>>2>>>0]=n,Hr(e),Ct++,ft=e}var ni=()=>Ct;function In(e,t,n,o){return i?H(2,1,e,t,n,o):xn(e,t,n,o)}function xn(e,t,n,o){if(e>>>=0,t>>>=0,n>>>=0,o>>>=0,!globalThis.SharedArrayBuffer)return 6;var u=[];return i&&u.length===0?In(e,t,n,o):(e={se:n,Sc:e,ad:o,he:u},i?(e.Uc="spawnThread",postMessage(e,u),0):Q(e))}function oi(e){throw ft||=e>>>0,ft}var Ln=globalThis.TextDecoder&&new TextDecoder,Bn=(e,t,n,o)=>{if(n=t+n,o)return n;for(;e[t]&&!(t>=n);)++t;return t},On=(e,t=0,n,o)=>{if(16<(n=Bn(e,t>>>=0,n,o))-t&&e.buffer&&Ln)return Ln.decode(e.buffer instanceof ArrayBuffer?e.subarray(t,n):e.slice(t,n));for(o="";t<n;){var u=e[t++];if(128&u){var c=63&e[t++];if((224&u)==192)o+=String.fromCharCode((31&u)<<6|c);else{var h=63&e[t++];65536>(u=(240&u)==224?(15&u)<<12|c<<6|h:(7&u)<<18|c<<12|h<<6|63&e[t++])?o+=String.fromCharCode(u):(u-=65536,o+=String.fromCharCode(55296|u>>10,56320|1023&u))}}else o+=String.fromCharCode(u)}return o},ct=(e,t,n)=>(e>>>=0)?On((l(),J),e,t,n):"";function Mn(e,t,n){return i?H(3,1,e,t,n):0}function Un(e,t){if(i)return H(4,1,e,t)}function Cn(e,t){if(i)return H(5,1,e,t)}function Dn(e,t,n){if(i)return H(6,1,e,t,n)}function Pn(e,t,n){return i?H(7,1,e,t,n):0}function _n(e,t){if(i)return H(8,1,e,t)}function Rn(e,t,n){if(i)return H(9,1,e,t,n)}function Nn(e,t,n,o){if(i)return H(10,1,e,t,n,o)}function Wn(e,t,n,o){if(i)return H(11,1,e,t,n,o)}function kn(e,t,n,o){if(i)return H(12,1,e,t,n,o)}function Fn(e){if(i)return H(13,1,e)}function Gn(e,t){if(i)return H(14,1,e,t)}function $n(e,t,n){if(i)return H(15,1,e,t,n)}var ai=()=>we(""),Be=e=>{e>>>=0;for(var t="";;){var n=(l(),J)[e++>>>0];if(!n)return t;t+=String.fromCharCode(n)}},Sr={},Ar={},si={},dt=class extends Error{constructor(e){super(e),this.name="BindingError"}};function De(e,t,n={}){return function(o,u,c={}){var h=u.name;if(!o)throw new dt(`type "${h}" must have a positive integer typeid pointer`);if(Ar.hasOwnProperty(o)){if(c.oe)return;throw new dt(`Cannot register type '${h}' twice`)}Ar[o]=u,delete si[o],Sr.hasOwnProperty(o)&&(u=Sr[o],delete Sr[o],u.forEach(b=>b()))}(e,t,n)}var zn=(e,t,n)=>{switch(t){case 1:return n?o=>(l(),Z)[o>>>0]:o=>(l(),J)[o>>>0];case 2:return n?o=>(l(),Ce)[o>>>1>>>0]:o=>(l(),K)[o>>>1>>>0];case 4:return n?o=>(l(),x)[o>>>2>>>0]:o=>(l(),A)[o>>>2>>>0];case 8:return n?o=>(l(),le)[o>>>3>>>0]:o=>(l(),q)[o>>>3>>>0];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}};function ii(e,t,n,o,u){e>>>=0,n>>>=0,t=Be(t>>>0);let c=h=>h;if(o=o===0n){let h=8*n;c=b=>BigInt.asUintN(h,b),u=c(u)}De(e,{name:t,Rc:c,Xc:(h,b)=>(typeof b=="number"&&(b=BigInt(b)),b),Wc:zn(t,n,!o),Yc:null})}function ui(e,t,n,o){De(e>>>=0,{name:t=Be(t>>>0),Rc:function(u){return!!u},Xc:function(u,c){return c?n:o},Wc:function(u){return this.Rc((l(),J)[u>>>0])},Yc:null})}var Vn=[],Je=[0,1,,1,null,1,!0,1,!1,1];function Ir(e){9<(e>>>=0)&&--Je[e+1]==0&&(Je[e]=void 0,Vn.push(e))}var ge=e=>{if(!e)throw new dt(`Cannot use deleted val. handle = ${e}`);return Je[e]},Ie=e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let t=Vn.pop()||Je.length;return Je[t]=e,Je[t+1]=1,t}};function xr(e){return this.Rc((l(),A)[e>>>2>>>0])}var fi={name:"emscripten::val",Rc:e=>{var t=ge(e);return Ir(e),t},Xc:(e,t)=>Ie(t),Wc:xr,Yc:null};function ci(e){return De(e>>>0,fi)}var di=(e,t)=>{switch(t){case 4:return function(n){return this.Rc((l(),_)[n>>>2>>>0])};case 8:return function(n){return this.Rc((l(),ae)[n>>>3>>>0])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}};function li(e,t,n){n>>>=0,De(e>>>=0,{name:t=Be(t>>>0),Rc:o=>o,Xc:(o,u)=>u,Wc:di(t,n),Yc:null})}function pi(e,t,n,o,u){e>>>=0,n>>>=0,t=Be(t>>>0);let c=b=>b;if(o===0){var h=32-8*n;c=b=>b<<h>>>h,u=c(u)}De(e,{name:t,Rc:c,Xc:(b,E)=>E,Wc:zn(t,n,o!==0),Yc:null})}function mi(e,t,n){function o(c){var h=(l(),A)[c>>>2>>>0];return c=(l(),A)[c+4>>>2>>>0],new u((l(),Z).buffer,c,h)}var u=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];De(e>>>=0,{name:n=Be(n>>>0),Rc:o,Wc:o},{oe:!0})}var Pe=(e,t,n)=>{var o=(l(),J);if(t>>>=0,0<n){var u=t;n=t+n-1;for(var c=0;c<e.length;++c){var h=e.codePointAt(c);if(127>=h){if(t>=n)break;o[t++>>>0]=h}else if(2047>=h){if(t+1>=n)break;o[t++>>>0]=192|h>>6,o[t++>>>0]=128|63&h}else if(65535>=h){if(t+2>=n)break;o[t++>>>0]=224|h>>12,o[t++>>>0]=128|h>>6&63,o[t++>>>0]=128|63&h}else{if(t+3>=n)break;o[t++>>>0]=240|h>>18,o[t++>>>0]=128|h>>12&63,o[t++>>>0]=128|h>>6&63,o[t++>>>0]=128|63&h,c++}}o[t>>>0]=0,e=t-u}else e=0;return e},_e=e=>{for(var t=0,n=0;n<e.length;++n){var o=e.charCodeAt(n);127>=o?t++:2047>=o?t+=2:55296<=o&&57343>=o?(t+=4,++n):t+=3}return t};function hi(e,t){De(e>>>=0,{name:t=Be(t>>>0),Rc(n){var o=(l(),A)[n>>>2>>>0];return o=ct(n+4,o,!0),Te(n),o},Xc(n,o){o instanceof ArrayBuffer&&(o=new Uint8Array(o));var u=typeof o=="string";if(!(u||ArrayBuffer.isView(o)&&o.BYTES_PER_ELEMENT==1))throw new dt("Cannot pass non-string to std::string");var c=u?_e(o):o.length,h=mt(4+c+1),b=h+4;return(l(),A)[h>>>2>>>0]=c,u?Pe(o,b,c+1):(l(),J).set(o,b>>>0),n!==null&&n.push(Te,h),h},Wc:xr,Yc(n){Te(n)}})}var Hn=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,yi=(e,t,n)=>{if(e>>>=1,16<(t=Bn((l(),K),e,t/2,n))-e&&Hn)return Hn.decode((l(),K).slice(e,t));for(n="";e<t;++e){var o=(l(),K)[e>>>0];n+=String.fromCharCode(o)}return n},bi=(e,t,n)=>{if(n??=2147483647,2>n)return 0;var o=t;n=(n-=2)<2*e.length?n/2:e.length;for(var u=0;u<n;++u){var c=e.charCodeAt(u);(l(),Ce)[t>>>1>>>0]=c,t+=2}return(l(),Ce)[t>>>1>>>0]=0,t-o},wi=e=>2*e.length,gi=(e,t,n)=>{var o="";e>>>=2;for(var u=0;!(u>=t/4);u++){var c=(l(),A)[e+u>>>0];if(!c&&!n)break;o+=String.fromCodePoint(c)}return o},Ti=(e,t,n)=>{if(t>>>=0,n??=2147483647,4>n)return 0;var o=t;n=o+n-4;for(var u=0;u<e.length;++u){var c=e.codePointAt(u);if(65535<c&&u++,(l(),x)[t>>>2>>>0]=c,(t+=4)+4>n)break}return(l(),x)[t>>>2>>>0]=0,t-o},vi=e=>{for(var t=0,n=0;n<e.length;++n)65535<e.codePointAt(n)&&n++,t+=4;return t};function Ei(e,t,n){if(e>>>=0,t>>>=0,n=Be(n>>>=0),t===2)var o=yi,u=bi,c=wi;else o=gi,u=Ti,c=vi;De(e,{name:n,Rc:h=>{var b=(l(),A)[h>>>2>>>0];return b=o(h+4,b*t,!0),Te(h),b},Xc:(h,b)=>{if(typeof b!="string")throw new dt(`Cannot pass non-string to C++ string type ${n}`);var E=c(b),I=mt(4+E+t);return(l(),A)[I>>>2>>>0]=E/t,u(b,I+4,E+t),h!==null&&h.push(Te,I),I},Wc:xr,Yc(h){Te(h)}})}function Si(e,t){De(e>>>=0,{pe:!0,name:t=Be(t>>>0),Rc:()=>{},Xc:()=>{}})}function Ai(e){$r(e>>>0,!f,1,!s,131072,!1),Tn()}var Dt=e=>{if(!G)try{if(e(),!(0<$))try{i?$t()&&zr(S):Tr(S)}catch(t){t instanceof gt||t=="unwind"||y(0,t)}}catch(t){t instanceof gt||t=="unwind"||y(0,t)}},Ii=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Lr(e){e>>>=0,Ii||(Atomics.waitAsync((l(),x),e>>>2,e).value.then(Pt),e+=128,Atomics.store((l(),x),e>>>2,1))}var Pt=()=>Dt(()=>{var e=$t();e&&(Lr(e),_o())});function xi(e,t){(e>>>=0)==t>>>0?setTimeout(Pt):i?postMessage({$c:e,Uc:"checkMailbox"}):(e=qe[e])&&e.postMessage({Uc:"checkMailbox"})}var Br=[];function Li(e,t,n,o,u){for(t>>>=0,u>>>=0,Br.length=0,n=u>>>3,o=u+o>>>3;n<o;){var c;c=(l(),le)[n++>>>0]?(l(),le)[n++>>>0]:(l(),ae)[n++>>>0],Br.push(c)}return(t?Yr[t]:df[e])(...Br)}var Bi=()=>{$=0};function Oi(e){e>>>=0,i?postMessage({Uc:"cleanupThread",ue:e}):gn(qe[e])}function Mi(e){}var _t=e=>{try{e()}catch(t){we(t)}};function Ui(e){var t=(...n)=>{Rt.push(e);try{return e(...n)}finally{G||(Rt.pop(),Oe&&Fe===1&&Rt.length===0&&(Fe=0,$+=1,_t(Aa),typeof Fibers<"u"&&Fibers.Oe()))}};return qn.set(e,t),t}var Fe=0,Oe=null,jn=0,Rt=[],Or=new Map,Yn=new Map,qn=new Map,Ci=0,Mr=null,Di=[],Jn=e=>function(t){if(!G){if(Fe===0){var n=!1,o=!1;t((u=0)=>{if(!G&&(jn=u,n=!0,o)){Fe=2,_t(()=>Ia(Oe)),typeof MainLoop<"u"&&MainLoop.le&&MainLoop.resume(),u=!1;try{var c=function(){var E=(l(),x)[Oe+8>>>2>>>0];return E=Yn.get(E),E=qn.get(E),--$,E()}()}catch(E){c=E,u=!0}var h=!1;if(!Oe){var b=Mr;b&&(Mr=null,(u?b.reject:b.resolve)(c),h=!0)}if(u&&!h)throw c}}),o=!0,n||(Fe=1,Oe=function(){var u=mt(65548),c=u+12;if((l(),A)[u>>>2>>>0]=c,(l(),A)[u+4>>>2>>>0]=c+65536,c=Rt[0],!Or.has(c)){var h=Ci++;Or.set(c,h),Yn.set(h,c)}return c=Or.get(c),(l(),x)[u+8>>>2>>>0]=c,u}(),typeof MainLoop<"u"&&MainLoop.le&&MainLoop.pause(),_t(()=>Sa(Oe)))}else Fe===2?(Fe=0,_t(xa),Te(Oe),Oe=null,Di.forEach(Dt)):we(`invalid state: ${Fe}`);return jn}}(t=>{e().then(t)});function Pi(e){return e>>>=0,Jn(async()=>{var t=await ge(e);return Ie(t)})}var Ur=[],_i=e=>{var t=Ur.length;return Ur.push(e),t},Ri=(e,t)=>{for(var n=Array(e),o=0;o<e;++o){var u=o,c=(l(),A)[t+4*o>>>2>>>0],h=Ar[c];if(h===void 0)throw e=`parameter ${o}`,c=bo(c),t=Be(c),Te(c),new dt(`${e} has unknown type ${t}`);n[u]=h}return n},Ni=(e,t,n)=>{var o=[];return e=e(o,n),o.length&&((l(),A)[t>>>2>>>0]=Ie(o)),e},Wi={},Nt=e=>{var t=Wi[e];return t===void 0?Be(e):t};function ki(e,t,n){var[o,...u]=Ri(e,t>>>0);t=o.Xc.bind(o);var c=u.map(E=>E.Wc.bind(E));e--;var h={toValue:ge};switch(e=c.map((E,I)=>{var N=`argFromPtr${I}`;return h[N]=E,`${N}(args${I?"+"+8*I:""})`}),n){case 0:var b="toValue(handle)";break;case 2:b="new (toValue(handle))";break;case 3:b="";break;case 1:h.getStringOrSymbol=Nt,b="toValue(handle)[getStringOrSymbol(methodName)]"}return b+=`(${e})`,o.pe||(h.toReturnWire=t,h.emval_returnValue=Ni,b=`return emval_returnValue(toReturnWire, destructorsRef, ${b})`),b=`return function (handle, methodName, destructorsRef, args) { ${b} }`,n=new Function(Object.keys(h),b)(...Object.values(h)),b=`methodCaller<(${u.map(E=>E.name)}) => ${o.name}>`,_i(Object.defineProperty(n,"name",{value:b}))}function Fi(e,t){return t>>>=0,(e=ge(e>>>0))==ge(t)}function Gi(e){return(e>>>=0)?(e=Nt(e),Ie(globalThis[e])):Ie(globalThis)}function $i(e){return e=Nt(e>>>0),Ie(r[e])}function zi(e,t){return t>>>=0,e=ge(e>>>0),t=ge(t),Ie(e[t])}function Vi(e){9<(e>>>=0)&&(Je[e+1]+=1)}function Xn(e,t,n,o,u){return Ur[e>>>0](t>>>0,n>>>0,o>>>0,u>>>0)}function Hi(e,t,n,o,u){return Xn(e>>>0,t>>>0,n>>>0,o>>>0,u>>>0)}function ji(){return Ie([])}function Yi(e){e=ge(e>>>0);for(var t=Array(e.length),n=0;n<e.length;n++)t[n]=e[n];return Ie(t)}function qi(e){return Ie(Nt(e>>>0))}function Ji(){return Ie({})}function Xi(e){for(var t=ge(e>>>=0);t.length;){var n=t.pop();t.pop()(n)}Ir(e)}function Zi(e,t,n){t>>>=0,n>>>=0,e=ge(e>>>0),t=ge(t),n=ge(n),e[t]=n}function Ki(e,t){e=pe(e),t>>>=0,e=new Date(1e3*e),(l(),x)[t>>>2>>>0]=e.getUTCSeconds(),(l(),x)[t+4>>>2>>>0]=e.getUTCMinutes(),(l(),x)[t+8>>>2>>>0]=e.getUTCHours(),(l(),x)[t+12>>>2>>>0]=e.getUTCDate(),(l(),x)[t+16>>>2>>>0]=e.getUTCMonth(),(l(),x)[t+20>>>2>>>0]=e.getUTCFullYear()-1900,(l(),x)[t+24>>>2>>>0]=e.getUTCDay(),e=(e.getTime()-Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,(l(),x)[t+28>>>2>>>0]=e}var Zn=e=>e%4==0&&(e%100!=0||e%400==0),Kn=[0,31,60,91,121,152,182,213,244,274,305,335],Qn=[0,31,59,90,120,151,181,212,243,273,304,334];function Qi(e,t){e=pe(e),t>>>=0,e=new Date(1e3*e),(l(),x)[t>>>2>>>0]=e.getSeconds(),(l(),x)[t+4>>>2>>>0]=e.getMinutes(),(l(),x)[t+8>>>2>>>0]=e.getHours(),(l(),x)[t+12>>>2>>>0]=e.getDate(),(l(),x)[t+16>>>2>>>0]=e.getMonth(),(l(),x)[t+20>>>2>>>0]=e.getFullYear()-1900,(l(),x)[t+24>>>2>>>0]=e.getDay();var n=(Zn(e.getFullYear())?Kn:Qn)[e.getMonth()]+e.getDate()-1|0;(l(),x)[t+28>>>2>>>0]=n,(l(),x)[t+36>>>2>>>0]=-60*e.getTimezoneOffset(),n=new Date(e.getFullYear(),6,1).getTimezoneOffset();var o=new Date(e.getFullYear(),0,1).getTimezoneOffset();e=0|(n!=o&&e.getTimezoneOffset()==Math.min(o,n)),(l(),x)[t+32>>>2>>>0]=e}function eu(e){e>>>=0;var t=new Date((l(),x)[e+20>>>2>>>0]+1900,(l(),x)[e+16>>>2>>>0],(l(),x)[e+12>>>2>>>0],(l(),x)[e+8>>>2>>>0],(l(),x)[e+4>>>2>>>0],(l(),x)[e>>>2>>>0],0),n=(l(),x)[e+32>>>2>>>0],o=t.getTimezoneOffset(),u=new Date(t.getFullYear(),6,1).getTimezoneOffset(),c=new Date(t.getFullYear(),0,1).getTimezoneOffset(),h=Math.min(c,u);return 0>n?(l(),x)[e+32>>>2>>>0]=+(u!=c&&h==o):0<n!=(h==o)&&(u=Math.max(c,u),t.setTime(t.getTime()+6e4*((0<n?h:u)-o))),(l(),x)[e+24>>>2>>>0]=t.getDay(),n=(Zn(t.getFullYear())?Kn:Qn)[t.getMonth()]+t.getDate()-1|0,(l(),x)[e+28>>>2>>>0]=n,(l(),x)[e>>>2>>>0]=t.getSeconds(),(l(),x)[e+4>>>2>>>0]=t.getMinutes(),(l(),x)[e+8>>>2>>>0]=t.getHours(),(l(),x)[e+12>>>2>>>0]=t.getDate(),(l(),x)[e+16>>>2>>>0]=t.getMonth(),(l(),x)[e+20>>>2>>>0]=t.getYear(),e=t.getTime(),BigInt(isNaN(e)?-1:e/1e3)}function eo(e,t,n,o,u,c,h){return i?H(16,1,e,t,n,o,u,c,h):-52}function to(e,t,n,o,u,c){if(i)return H(17,1,e,t,n,o,u,c)}var vt={},tu=()=>performance.timeOrigin+performance.now();function ro(e,t){if(i)return H(18,1,e,t);if(vt[e]&&(clearTimeout(vt[e].id),delete vt[e]),!t)return 0;var n=setTimeout(()=>{delete vt[e],Dt(()=>Po(e,performance.timeOrigin+performance.now()))},t);return vt[e]={id:n,Ne:t},0}function ru(e,t,n,o){e>>>=0,t>>>=0,n>>>=0,o>>>=0;var u=new Date().getFullYear(),c=new Date(u,0,1).getTimezoneOffset();u=new Date(u,6,1).getTimezoneOffset();var h=Math.max(c,u);(l(),A)[e>>>2>>>0]=60*h,(l(),x)[t>>>2>>>0]=+(c!=u),e=(t=b=>{var E=Math.abs(b);return`UTC${0<=b?"-":"+"}${String(Math.floor(E/60)).padStart(2,"0")}${String(E%60).padStart(2,"0")}`})(c),t=t(u),u<c?(Pe(e,n,17),Pe(t,o,17)):(Pe(e,o,17),Pe(t,n,17))}var nu=()=>Date.now(),ou=1;function au(e,t,n){if(n>>>=0,!(0<=e&&3>=e))return 28;if(e===0)e=Date.now();else{if(!ou)return 52;e=performance.timeOrigin+performance.now()}return e=Math.round(1e6*e),(l(),le)[n>>>3>>>0]=BigInt(e),0}var Cr=[],no=(e,t)=>{Cr.length=0;for(var n;n=(l(),J)[e++>>>0];){var o=n!=105;t+=(o&=n!=112)&&t%8?4:0,Cr.push(n==112?(l(),A)[t>>>2>>>0]:n==106?(l(),le)[t>>>3>>>0]:n==105?(l(),x)[t>>>2>>>0]:(l(),ae)[t>>>3>>>0]),t+=o?8:4}return Cr};function su(e,t,n){return e>>>=0,t=no(t>>>0,n>>>0),Yr[e](...t)}function iu(e,t,n){return e>>>=0,t=no(t>>>0,n>>>0),Yr[e](...t)}var uu=()=>{};function fu(e,t){return B(ct(e>>>0,t>>>0))}var cu=()=>{throw $+=1,"unwind"};function du(){return 4294901760}var lu=()=>1,pu=()=>navigator.hardwareConcurrency,Xe={},oo=e=>{var t=_e(e)+1,n=mt(t);return n&&Pe(e,n,t),n},Wt=e=>{var t;return(t=/\bwasm-function\[\d+\]:(0x[0-9a-f]+)/.exec(e))?+t[1]:(t=/:(\d+):\d+(?:\)|$)/.exec(e))?2147483648|+t[1]:0},ao=e=>{for(var t of e)(e=Wt(t))&&(Xe[e]=t)};function mu(){var e=Error().stack.toString().split(` `);return e[0]=="Error"&&e.shift(),ao(e),Xe.Xd=Wt(e[3]),Xe.re=e,Xe.Xd}function kt(e){if(!(e=Xe[e>>>0]))return 0;var t;if(t=/^\s+at .*\.wasm\.(.*) \(.*\)$/.exec(e))e=t[1];else if(t=/^\s+at (.*) \(.*\)$/.exec(e))e=t[1];else{if(!(t=/^(.+?)@/.exec(e)))return 0;e=t[1]}return Te(kt.ae??0),kt.ae=oo(e),kt.ae}function hu(e){e>>>=0;var t=(l(),J).length;if(e<=t||4294901760<e)return!1;for(var n=1;4>=n;n*=2){var o=t*(1+.2/n);o=Math.min(o,e+100663296);e:{o=(Math.min(4294901760,65536*Math.ceil(Math.max(e,o)/65536))-ke.buffer.byteLength+65535)/65536|0;try{ke.grow(o),se();var u=1;break e}catch{}u=void 0}if(u)return!0}return!1}function yu(e,t,n){if(e>>>=0,t>>>=0,Xe.Xd==e)var o=Xe.re;else(o=Error().stack.toString().split(` `))[0]=="Error"&&o.shift(),ao(o);for(var u=3;o[u]&&Wt(o[u])!=e;)++u;for(e=0;e<n&&o[e+u];++e)(l(),x)[t+4*e>>>2>>>0]=Wt(o[e+u]);return e}var Me=e=>{var t=_e(e)+1,n=zt(t);return Pe(e,n,t),n},Dr=[],me=(e,t)=>{Dr[e>>>=0]=t},Ue=[],Ft=[],lt=(e,t)=>{Ft[e]=new Promise(n=>t.finally(()=>n(e)))},O=e=>{if(e)return Dr[e>>>0]},Gt=(e,t,n)=>{(l(),A)[e>>>2>>>0]=t,(l(),A)[e+4>>>2>>>0]=n},so=e=>{var t=(l(),A)[e>>>2>>>0];return e=(l(),A)[e+4>>>2>>>0],ct(t,e)},Re=e=>{var t=(l(),A)[e>>>2>>>0];return e=(l(),A)[e+4>>>2>>>0],t?ct(t,e):e===0?"":void 0},bu=e=>{var t=Re(e+4),n=(n=(l(),A)[e+12>>>2>>>0])?O(n):"auto";if(e+=16){var o=O((l(),A)[e+4>>>2>>>0]),u=(l(),A)[e+16>>>2>>>0],c=(l(),A)[e+20>>>2>>>0];if(u){for(var h={},b=0;b<u;++b){var E=c+24*b;h[so(E+4)]=(l(),ae)[E+16>>>3>>>0]}u=h}else u=void 0;e={module:o,constants:u,entryPoint:Re(e+8)}}else e=void 0;return{label:t,layout:n,compute:e}},io=(e,t)=>{function n(u,c){u=e[u],(l(),x)[t+c>>>2>>>0]=u}function o(u,c){u=e[u],(l(),le)[t+c>>>3>>>0]=BigInt(u)}n("maxTextureDimension1D",4),n("maxTextureDimension2D",8),n("maxTextureDimension3D",12),n("maxTextureArrayLayers",16),n("maxBindGroups",20),n("maxBindGroupsPlusVertexBuffers",24),n("maxBindingsPerBindGroup",28),n("maxDynamicUniformBuffersPerPipelineLayout",32),n("maxDynamicStorageBuffersPerPipelineLayout",36),n("maxSampledTexturesPerShaderStage",40),n("maxSamplersPerShaderStage",44),n("maxStorageBuffersPerShaderStage",48),n("maxStorageTexturesPerShaderStage",52),n("maxUniformBuffersPerShaderStage",56),n("minUniformBufferOffsetAlignment",80),n("minStorageBufferOffsetAlignment",84),o("maxUniformBufferBindingSize",64),o("maxStorageBufferBindingSize",72),n("maxVertexBuffers",88),o("maxBufferSize",96),n("maxVertexAttributes",104),n("maxVertexBufferArrayStride",108),n("maxInterStageShaderVariables",112),n("maxColorAttachments",116),n("maxColorAttachmentBytesPerSample",120),n("maxComputeWorkgroupStorageSize",124),n("maxComputeInvocationsPerWorkgroup",128),n("maxComputeWorkgroupSizeX",132),n("maxComputeWorkgroupSizeY",136),n("maxComputeWorkgroupSizeZ",140),n("maxComputeWorkgroupsPerDimension",144),e.Le!==void 0&&n("maxImmediateSize",148)},wu=[,"validation","out-of-memory","internal"],gu=[,"compatibility","core"],uo={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",327692:"chromium-experimental-unorm16-texture-formats",327693:"chromium-experimental-snorm16-texture-formats",327732:"chromium-experimental-multi-draw-indirect"},Tu=[,"low-power","high-performance"],vu=[,"occlusion","timestamp"],Eu={undefined:1,unknown:1,destroyed:2};function Su(e,t,n,o,u,c){t=pe(t),n=pe(n),o>>>=0,u>>>=0,c>>>=0;var h=O(e>>>0);if(e={},c){var b=(l(),A)[c+12>>>2>>>0];if(b){var E=(l(),A)[c+16>>>2>>>0];e.requiredFeatures=Array.from((l(),A).subarray(E>>>2>>>0,E+4*b>>>2>>>0),L=>uo[L])}var I=(l(),A)[c+20>>>2>>>0];if(I){let L=function(ve,ie,Ze=!1){ie=I+ie,(ie=(l(),A)[ie>>>2>>>0])==4294967295||Ze&&ie==0||(N[ve]=ie)},fe=function(ve,ie){ie=I+ie;var Ze=(l(),A)[ie>>>2>>>0],Zf=(l(),A)[ie+4>>>2>>>0];Ze==4294967295&&Zf==4294967295||(N[ve]=4294967296*(l(),A)[ie+4>>>2>>>0]+(l(),A)[ie>>>2>>>0])};var W=L,X=fe,N={};L("maxTextureDimension1D",4),L("maxTextureDimension2D",8),L