diff --git "a/ort/ort.webgpu.bundle.min.mjs" "b/ort/ort.webgpu.bundle.min.mjs" new file mode 100644--- /dev/null +++ "b/ort/ort.webgpu.bundle.min.mjs" @@ -0,0 +1,12 @@ +/*! + * ONNX Runtime Web v1.30.0 + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */ +var Jr=Object.defineProperty;var dc=Object.getOwnPropertyDescriptor;var lc=Object.getOwnPropertyNames;var pc=Object.prototype.hasOwnProperty;var Xr=(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 G=(a,r,s)=>()=>{if(s)throw s[0];try{return a&&(r=a(a=0)),r}catch(f){throw s=[f],f}};var At=(a,r)=>{for(var s in r)Jr(a,s,{get:r[s],enumerable:!0})},mc=(a,r,s,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of lc(r))!pc.call(a,i)&&i!==s&&Jr(a,i,{get:()=>r[i],enumerable:!(f=dc(r,i))||f.enumerable});return a};var Ht=a=>mc(Jr({},"__esModule",{value:!0}),a);var qt,tt,rt,hc,Da,Zr=G(()=>{"use strict";qt=new Map,tt=[],rt=(a,r,s)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let f=qt.get(a);if(f===void 0)qt.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=tt.indexOf(a);i!==-1&&tt.splice(i,1);for(let p=0;p{let r=qt.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}}},Da=async a=>{let r=a.executionProviders||[],s=r.map(g=>typeof g=="string"?g:g.name),f=s.length===0?tt:s,i,p=[],l=new Set;for(let g of f){let w=await hc(g);typeof w=="string"?p.push({name:g,err:w}):(i||(i=w),i===w&&l.add(g))}if(!i)throw new Error(`no available backend found. ERR: ${p.map(g=>`[${g.name}] ${g.err}`).join(", ")}`);for(let{name:g,err:w}of p)s.includes(g)&&console.warn(`removing requested execution provider "${g}" from session options because it is not available: ${w}`);let b=r.filter(g=>l.has(typeof g=="string"?g:g.name));return[i,new Proxy(a,{get:(g,w)=>w==="executionProviders"?b:Reflect.get(g,w)})]}});var Pa=G(()=>{"use strict";Zr()});var Ua,_a=G(()=>{"use strict";Ua="1.30.0"});var Ra,ie,Kr=G(()=>{"use strict";_a();Ra="warning",ie={wasm:{},webgl:{},webgpu:{},versions:{common:Ua},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}`);Ra=a}},get logLevel(){return Ra}};Object.defineProperty(ie,"logLevel",{enumerable:!0})});var ee,Na=G(()=>{"use strict";Kr();ee=ie});var Wa,ka,Fa=G(()=>{"use strict";Wa=(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,p;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(i=a.dims[2],p=a.dims[3]):(i=a.dims[3],p=a.dims[2]);let l=r?.format!==void 0?r.format:"RGB",b=r?.norm,g,w;b===void 0||b.mean===void 0?g=[255,255,255,255]:typeof b.mean=="number"?g=[b.mean,b.mean,b.mean,b.mean]:(g=[b.mean[0],b.mean[1],b.mean[2],0],b.mean[3]!==void 0&&(g[3]=b.mean[3])),b===void 0||b.bias===void 0?w=[0,0,0,0]:typeof b.bias=="number"?w=[b.bias,b.bias,b.bias,b.bias]:(w=[b.bias[0],b.bias[1],b.bias[2],0],b.bias[3]!==void 0&&(w[3]=b.bias[3]));let S=p*i,v=0,T=S,A=S*2,C=-1;l==="RGBA"?(v=0,T=S,A=S*2,C=S*3):l==="RGB"?(v=0,T=S,A=S*2):l==="RBG"&&(v=0,A=S,T=S*2);for(let _=0;_{let s=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),f;if(s!=null){let i,p,l;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(i=a.dims[2],p=a.dims[1],l=a.dims[3]):(i=a.dims[3],p=a.dims[2],l=a.dims[1]);let b=r!==void 0&&r.format!==void 0?r.format:"RGB",g=r?.norm,w,S;g===void 0||g.mean===void 0?w=[255,255,255,255]:typeof g.mean=="number"?w=[g.mean,g.mean,g.mean,g.mean]:(w=[g.mean[0],g.mean[1],g.mean[2],255],g.mean[3]!==void 0&&(w[3]=g.mean[3])),g===void 0||g.bias===void 0?S=[0,0,0,0]:typeof g.bias=="number"?S=[g.bias,g.bias,g.bias,g.bias]:(S=[g.bias[0],g.bias[1],g.bias[2],0],g.bias[3]!==void 0&&(S[3]=g.bias[3]));let v=p*i;if(r!==void 0&&(r.format!==void 0&&l===4&&r.format!=="RGBA"||l===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let T=4,A=0,C=1,_=2,k=3,U=0,M=v,Y=v*2,O=-1;b==="RGBA"?(U=0,M=v,Y=v*2,O=v*3):b==="RGB"?(U=0,M=v,Y=v*2):b==="RBG"&&(U=0,Y=v,M=v*2),f=s.createImageData(i,p);for(let $=0;${"use strict";Yt();Qr=(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},p,l;typeof i.mean=="number"?p=[i.mean,i.mean,i.mean,i.mean]:p=[i.mean[0],i.mean[1],i.mean[2],i.mean[3]??255],typeof i.bias=="number"?l=[i.bias,i.bias,i.bias,i.bias]:l=[i.bias[0],i.bias[1],i.bias[2],i.bias[3]??0];let b=r.format!==void 0?r.format:"RGBA",g=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",w=s*f,S=g==="RGBA"?new Float32Array(w*4):new Float32Array(w*3),v=4,T=0,A=1,C=2,_=3,k=0,U=w,M=w*2,Y=-1;b==="RGB"&&(v=3,T=0,A=1,C=2,_=-1),g==="RGBA"?Y=w*3:g==="RBG"?(k=0,M=w,U=w*2):g==="BGR"&&(M=0,U=w,k=w*2);for(let $=0;${let s=typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement,f=typeof ImageData<"u"&&a instanceof ImageData,i=typeof ImageBitmap<"u"&&a instanceof ImageBitmap,p=typeof a=="string",l,b=r??{},g=()=>{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=S=>typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||S instanceof OffscreenCanvas?S.getContext("2d"):null;if(s){let S=g();S.width=a.width,S.height=a.height;let v=w(S);if(v!=null){let T=a.height,A=a.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(T=r.resizedHeight,A=r.resizedWidth),r!==void 0){if(b=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");b.tensorFormat="RGBA",b.height=T,b.width=A}else b.tensorFormat="RGBA",b.height=T,b.width=A;v.drawImage(a,0,0),l=v.getImageData(0,0,A,T).data}else throw new Error("Can not access image data")}else if(f){let S,v;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(S=r.resizedHeight,v=r.resizedWidth):(S=a.height,v=a.width),r!==void 0&&(b=r),b.format="RGBA",b.height=S,b.width=v,r!==void 0){let T=g();T.width=v,T.height=S;let A=w(T);if(A!=null)A.putImageData(a,0,0),l=A.getImageData(0,0,v,S).data;else throw new Error("Can not access image data")}else l=a.data}else if(i){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let S=g();S.width=a.width,S.height=a.height;let v=w(S);if(v!=null){let T=a.height,A=a.width;return v.drawImage(a,0,0,A,T),l=v.getImageData(0,0,A,T).data,b.height=T,b.width=A,Qr(l,b)}else throw new Error("Can not access image data")}else{if(p)return new Promise((S,v)=>{let T=g(),A=w(T);if(!a||!A)return v();let C=new Image;C.crossOrigin="Anonymous",C.src=a,C.onload=()=>{T.width=C.width,T.height=C.height,A.drawImage(C,0,0,T.width,T.height);let _=A.getImageData(0,0,T.width,T.height);b.height=T.height,b.width=T.width,S(Qr(_.data,b))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(l!==void 0)return Qr(l,b);throw new Error("Input data provided is not supported - aborted tensor creation")},$a=(a,r)=>{let{width:s,height:f,download:i,dispose:p}=r,l=[1,f,s,4];return new ce({location:"texture",type:"float32",texture:a,dims:l,download:i,dispose:p})},za=(a,r)=>{let{dataType:s,dims:f,download:i,dispose:p}=r;return new ce({location:"gpu-buffer",type:s??"float32",gpuBuffer:a,dims:f,download:i,dispose:p})},Va=(a,r)=>{let{dataType:s,dims:f,download:i,dispose:p}=r;return new ce({location:"ml-tensor",type:s??"float32",mlTensor:a,dims:f,download:i,dispose:p})},ja=(a,r,s)=>new ce({location:"cpu-pinned",type:a,data:r,dims:s??[r.length]})});var nt,It,qa,Ya,Ja=G(()=>{"use strict";nt=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"]]),qa=!1,Ya=()=>{if(!qa){qa=!0;let a=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,s=globalThis.Float16Array,f=typeof s<"u"&&s.from;a&&(nt.set("int64",BigInt64Array),It.set(BigInt64Array,"int64")),r&&(nt.set("uint64",BigUint64Array),It.set(BigUint64Array,"uint64")),f?(nt.set("float16",s),It.set(s,"float16")):nt.set("float16",Uint16Array)}}});var Xa,Za,Ka=G(()=>{"use strict";Yt();Xa=a=>{let r=1;for(let s=0;s{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=G(()=>{"use strict";Fa();Ha();Ja();Ka();ce=class{constructor(r,s,f){Ya();let i,p;if(typeof r=="object"&&"location"in r)switch(this.dataLocation=r.location,i=r.type,p=r.dims,r.location){case"cpu-pinned":{let b=nt.get(i);if(!b)throw new TypeError(`unsupported type "${i}" to create tensor from pinned buffer`);if(!(r.data instanceof b))throw new TypeError(`buffer should be of type ${b.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 b,g;if(typeof r=="string")if(i=r,g=f,r==="string"){if(!Array.isArray(s))throw new TypeError("A string tensor's data must be a string array.");b=s}else{let w=nt.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"?b=w.from(s,BigInt):b=w.from(s)}else if(s instanceof w)b=s;else if(s instanceof Uint8ClampedArray)if(r==="uint8")b=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)b=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(g=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",b=r;else if(w==="boolean")i="bool",b=Uint8Array.from(r);else throw new TypeError(`Invalid element type of data array: ${w}.`)}else if(r instanceof Uint8ClampedArray)i="uint8",b=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,b=r}if(g===void 0)g=[b.length];else if(!Array.isArray(g))throw new TypeError("A tensor's dims must be a number array");p=g,this.cpuData=b,this.dataLocation="cpu"}let l=Xa(p);if(this.cpuData&&l!==this.cpuData.length&&!((i==="uint4"||i==="int4")&&Math.ceil(l/2)===this.cpuData.length))throw new Error(`Tensor's size(${l}) does not match data length(${this.cpuData.length}).`);this.type=i,this.dims=p,this.size=l}static async fromImage(r,s){return Ga(r,s)}static fromTexture(r,s){return $a(r,s)}static fromGpuBuffer(r,s){return za(r,s)}static fromMLTensor(r,s){return Va(r,s)}static fromPinnedBuffer(r,s,f){return ja(r,s,f)}toDataURL(r){return Wa(this,r)}toImageData(r){return ka(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 Za(this,r)}}});var Le,en=G(()=>{"use strict";Yt();Le=ce});var Qa,es,ot,at,Ge,$e,tn=G(()=>{"use strict";Kr();Qa=(a,r)=>{(typeof ie.trace>"u"?!ie.wasm.trace:!ie.trace)||console.timeStamp(`${a}::ORT::${r}`)},es=(a,r)=>{let s=new Error().stack?.split(/\r\n|\r|\n/g)||[],f=!1;for(let i=0;i{(typeof ie.trace>"u"?!ie.wasm.trace:!ie.trace)||es("BEGIN",a)},at=a=>{(typeof ie.trace>"u"?!ie.wasm.trace:!ie.trace)||es("END",a)},Ge=a=>{(typeof ie.trace>"u"?!ie.wasm.trace:!ie.trace)||console.time(`ORT::${a}`)},$e=a=>{(typeof ie.trace>"u"?!ie.wasm.trace:!ie.trace)||console.timeEnd(`ORT::${a}`)}});var Jt,ts=G(()=>{"use strict";Zr();en();tn();Jt=class a{constructor(r){this.handler=r}async run(r,s,f){ot(),Ge("InferenceSession.run");let i={},p={};if(typeof r!="object"||r===null||r instanceof Le||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let l=!0;if(typeof s=="object"){if(s===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(s instanceof Le)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.");l=!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)p=f;else if(typeof f<"u")throw new TypeError("'options' must be an object.")}else{let w=!1,S=Object.getOwnPropertyNames(s);for(let v of this.outputNames)if(S.indexOf(v)!==-1){let T=s[v];(T===null||T instanceof Le)&&(w=!0,l=!1,i[v]=T)}if(w){if(typeof f=="object"&&f!==null)p=f;else if(typeof f<"u")throw new TypeError("'options' must be an object.")}else p=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(l)for(let w of this.outputNames)i[w]=null;let b=await this.handler.run(r,i,p),g={};for(let w in b)if(Object.hasOwnProperty.call(b,w)){let S=b[w];S instanceof Le?g[w]=S:g[w]=new Le(S.type,S.data,S.dims)}return $e("InferenceSession.run"),at(),g}async release(){return this.handler.dispose()}static async create(r,s,f,i){ot(),Ge("InferenceSession.create");let p,l={};if(typeof r=="string"){if(p=r,typeof s=="object"&&s!==null)l=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(p=r,typeof s=="object"&&s!==null)l=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 S=r,v=0,T=r.byteLength;if(typeof s=="object"&&s!==null)l=s;else if(typeof s=="number"){if(v=s,!Number.isSafeInteger(v))throw new RangeError("'byteOffset' must be an integer.");if(v<0||v>=S.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${S.byteLength}).`);if(T=r.byteLength-v,typeof f=="number"){if(T=f,!Number.isSafeInteger(T))throw new RangeError("'byteLength' must be an integer.");if(T<=0||v+T>S.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${S.byteLength-v}].`);if(typeof i=="object"&&i!==null)l=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.");p=new Uint8Array(S,v,T)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[b,g]=await Da(l),w=await b.createInferenceSessionHandler(p,g);return $e("InferenceSession.create"),at(),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 bc,rs=G(()=>{"use strict";ts();bc=Jt});var ns=G(()=>{"use strict"});var os=G(()=>{"use strict"});var as=G(()=>{"use strict"});var ss=G(()=>{"use strict"});var rn={};At(rn,{InferenceSession:()=>bc,TRACE:()=>Qa,TRACE_EVENT_BEGIN:()=>Ge,TRACE_EVENT_END:()=>$e,TRACE_FUNC_BEGIN:()=>ot,TRACE_FUNC_END:()=>at,Tensor:()=>Le,env:()=>ee,registerBackend:()=>rt});var ze=G(()=>{"use strict";Pa();Na();rs();en();ns();os();tn();as();ss()});var Xt=G(()=>{"use strict"});var cs={};At(cs,{default:()=>gc});var us,fs,gc,ds=G(()=>{"use strict";nn();Ve();Zt();us="ort-wasm-proxy-worker",fs=globalThis.self?.name===us;fs&&(self.onmessage=a=>{let{type:r,in:s}=a.data;try{switch(r){case"init-wasm":Kt(s.wasm).then(()=>{Qt(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;er(i,f).then(()=>{postMessage({type:r})},p=>{postMessage({type:r,err:p})});break}case"copy-from":{let{buffer:f}=s,i=Lt(f);postMessage({type:r,out:i});break}case"create":{let{model:f,options:i}=s;tr(f,i).then(p=>{postMessage({type:r,out:p})},p=>{postMessage({type:r,err:p})});break}case"release":rr(s),postMessage({type:r});break;case"run":{let{sessionId:f,inputIndices:i,inputs:p,outputIndices:l,options:b}=s;nr(f,i,p,l,new Array(l.length).fill(null),b).then(g=>{g.some(w=>w[3]!=="cpu")?postMessage({type:r,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:r,out:g},ar([...p,...g]))},g=>{postMessage({type:r,err:g})});break}case"end-profiling":or(s),postMessage({type:r});break;default:}}catch(f){postMessage({type:r,err:f})}});gc=fs?null:a=>new Worker(a??ye,{type:"module",name:us})});var ps={};At(ps,{default:()=>yc});async function ls(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.ed||(r.ed=new Map)).set(e,t)},r.unmountExternalData=()=>{delete r.ed,delete r.Te,delete r.Se,delete r.Ue},globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;let p=()=>{let e=t=>(...n)=>{let o=Me;return n=t(...n),Me!=o?new Promise((u,c)=>{Cr={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)),p=void 0};r.asyncInit=()=>{p?.()};var l,b,g=(e,t)=>{throw t},w=import.meta.url,S="";if(s||f){try{S=new URL(".",w).href}catch{}f&&(b=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),l=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 v,T,A,C,_,k,U=console.log.bind(console),M=console.error.bind(console),Y=U,O=M,$=!1,oe=e=>e.startsWith("file://");function d(){ke.buffer!=Z.buffer&&se()}if(i){let e=function(t){try{var n=t.data,o=n.$c;if(o==="load"){let u=[];self.onmessage=c=>u.push(c),k=()=>{postMessage({$c:"loaded"});for(let c of u)e(c);self.onmessage=e};for(let c of n.ue)r[c]&&!r[c].proxy||(r[c]=(...h)=>{postMessage({$c:"callHandler",te:c,args:h})},c=="print"&&(Y=r[c]),c=="printErr"&&(O=r[c]));ke=n.Me,se(),T=n.Ne,wt(),jt()}else if(o==="run"){(function(u){var c=(d(),E)[u+52>>>2>>>0];u=(d(),E)[u+56>>>2>>>0],Fo(c,c-u),D(c)})(n.Xc),zr(n.Xc,0,0,1,0,0),wn(),Br(n.Xc),te||(vo(),te=!0);try{ei(n.ze,n.kd)}catch(u){if(u!="unwind")throw u}}else n.target!=="setimmediate"&&(o==="checkMailbox"?te&&_t():o&&(O(`worker: received unknown command ${o}`),O(n)))}catch(u){throw _o(),u}};var Vc=e,te=!1;self.onunhandledrejection=t=>{throw t.reason||t},self.onmessage=e}var Z,X,De,K,I,E,R,ae,pe,J,ge,ne=!1;function se(){var e=ke.buffer;r.HEAP8=Z=new Int8Array(e),De=new Int16Array(e),r.HEAPU8=X=new Uint8Array(e),K=new Uint16Array(e),r.HEAP32=I=new Int32Array(e),r.HEAPU32=E=new Uint32Array(e),R=new Float32Array(e),ae=new Float64Array(e),pe=new BigInt64Array(e),J=new BigUint64Array(e)}function wr(){ne=!0,i?k():Ne.hc()}function we(e){throw O(e="Aborted("+e+")"),$=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),_?.(e),e}function qe(){return{a:{qa:Af,f:ti,K:ri,k:ni,p:oi,l:ai,fa:si,b:ii,da:ui,gc:An,q:fi,ea:On,Ua:Mn,cc:Cn,ec:Dn,Va:Pn,Sa:Un,La:_n,Ra:Rn,oa:Nn,dc:Wn,ac:kn,Ta:Fn,bc:Gn,_a:ci,Ba:li,Xb:pi,Vb:hi,Aa:gi,O:yi,J:wi,Wb:Ti,ka:Li,Yb:Bi,Oa:Oi,_b:Ci,Ea:Di,Tb:Pi,Ca:Ui,Na:Br,Xa:_i,U:ki,n:Vi,c:Ir,qb:ji,w:Hi,N:qi,A:Yi,j:Ji,o:Jn,rb:Xi,H:Zi,T:Ki,g:Qi,u:eu,m:tu,i:ru,Ia:nu,Ja:ou,Ka:au,Ga:Qn,Ha:eo,Ub:to,ab:iu,Za:cu,Z:du,pb:lu,Da:pu,Ya:uu,X:mu,Wa:hu,$b:bu,G:su,db:gu,_:yu,pa:Ft,Zb:Tu,cb:wu,bb:vu,lb:Uu,z:_u,sa:Ru,ra:Nu,nb:Wu,Y:ku,v:Fu,kb:Gu,jb:$u,ib:zu,mb:Vu,gb:ju,fb:Hu,eb:qu,Pa:po,Qa:mo,fc:vr,W:ho,Fa:bo,ma:go,Ma:yo,la:wo,Fb:fc,va:nc,Gb:uc,wa:rc,E:zf,e:Of,r:Lf,x:If,C:kf,Ib:Qf,ca:Kf,D:Df,xa:ec,aa:oc,ha:Zf,Jb:Xf,Kb:Jf,za:jf,Lb:qf,ya:Yf,Mb:Hf,ua:ic,ba:tc,d:Bf,B:Cf,s:Mf,Eb:cc,t:Uf,y:Gf,F:Pf,I:_f,L:$f,Nb:Vf,R:ac,ia:Wf,$:sc,Pb:Nf,Rb:Rf,Ob:Ff,h:Ju,a:ke,$a:Ye,Hb:Xu,V:Zu,M:Ku,na:Qu,Db:ef,ja:tf,S:rf,Ab:nf,Bb:of,vb:af,wb:sf,P:uf,xb:ff,yb:cf,ta:df,Sb:lf,ob:pf,Q:mf,hb:hf,Cb:bf,sb:gf,tb:wf,ub:Tf,ga:vf,zb:Ef,Qb:Sf}}}async function wt(){function e(o,u){var c=Ne=o.exports;o={};for(let[h,m]of Object.entries(c))typeof m=="function"?(c=Ri(m),o[h]=c):o[h]=m;return Ne=o,Ne=(function(){var h=Ne,m=x=>N=>x(N)>>>0,y=x=>()=>x()>>>0;return(h=Object.assign({},h)).ic=m(h.ic),h.Nc=y(h.Nc),h.Pc=m(h.Pc),h.Bd=(x=>(N,F)=>x(N,F)>>>0)(h.Bd),h.Gd=m(h.Gd),h.Hd=y(h.Hd),h.Ld=m(h.Ld),h})(),gn.push(Ne.sd),To=(o=Ne).ic,vo=o.jc,r._OrtInit=o.kc,r._OrtGetLastError=o.lc,r._OrtCreateSessionOptions=o.mc,r._OrtAppendExecutionProvider=o.nc,r._OrtAddFreeDimensionOverride=o.oc,r._OrtAddSessionConfigEntry=o.pc,r._OrtReleaseSessionOptions=o.qc,r._OrtCreateSession=o.rc,r._OrtReleaseSession=o.sc,r._OrtGetInputOutputCount=o.tc,r._OrtGetInputOutputMetadata=o.uc,r._OrtFree=o.vc,r._OrtCreateTensor=o.wc,r._OrtGetTensorData=o.xc,r._OrtReleaseTensor=o.yc,r._OrtCreateRunOptions=o.zc,r._OrtAddRunConfigEntry=o.Ac,r._OrtReleaseRunOptions=o.Bc,r._OrtCreateBinding=o.Cc,r._OrtBindInput=o.Dc,r._OrtBindOutput=o.Ec,r._OrtClearBoundOutputs=o.Fc,r._OrtReleaseBinding=o.Gc,r._OrtRunWithBinding=o.Hc,r._OrtRun=o.Ic,r._OrtEndProfiling=o.Jc,Eo=r._OrtCreateWebGpuInstance=o.Kc,r._wgpuCreateInstance=o.Lc,Nr=r._OrtGetWebGpuDevice=o.Mc,zt=o.Nc,ve=r._free=o.Oc,Ke=r._malloc=o.Pc,So=r._wgpuBufferRelease=o.Qc,xo=o.Rc,Ao=o.Sc,Io=o.Tc,Lo=o.Uc,Bo=o.Vc,Oo=o.Yc,Mo=o.Zc,Co=o.hd,Do=o.id,Po=o.jd,Wr=o.ld,kr=o.md,Fr=o.nd,Gr=o.od,St=o.pd,$r=o.qd,Uo=o.rd,zr=o.ud,_o=o.vd,Ro=o.wd,No=o.xd,Vr=o.yd,Wo=o.zd,ko=o.Ad,jr=o.Bd,W=o.Cd,xt=o.Dd,Fo=o.Ed,D=o.Fd,Vt=o.Gd,P=o.Hd,Go=o.Id,Hr=o.Jd,$o=o.Kd,zo=o.Ld,Vo=o.Md,qr=o.Nd,jo=o.Od,Ho=o.Pd,qo=o.Qd,Yo=o.Rd,Jo=o.Sd,Xo=o.Td,Zo=o.Ud,Ko=o.Vd,Qo=o.Wd,ea=o.Xd,ta=o.Yd,ra=o.Zd,na=o._d,oa=o.$d,aa=o.ae,sa=o.be,ia=o.ce,ua=o.de,fa=o.fe,ca=o.ge,da=o.he,la=o.ie,pa=o.je,ma=o.ke,ha=o.le,ba=o.me,ga=o.Ae,ya=o.Be,wa=o.Ce,Ta=o.De,va=o.Ee,Ea=o.Fe,Sa=o.Ge,xa=o.He,Aa=o.Ie,Ia=o.Je,La=o.Ke,Ba=o.nf,Oa=o.of,Ma=o.pf,Ca=o.qf,T=u,Ne}var t,n=qe();return r.instantiateWasm?new Promise(o=>{r.instantiateWasm(n,(u,c)=>{o(e(u,c))})}):i?e(new WebAssembly.Instance(T,qe()),T):(ge??=r.locateFile?r.locateFile?r.locateFile("ort-wasm-simd-threaded.asyncify.wasm",S):S+"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=ge;if(!v&&!oe(u))try{var c=fetch(u,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,o)}catch(h){O(`wasm streaming compile failed: ${h}`),O("falling back to ArrayBuffer instantiation")}return(async function(h,m){try{var y=await(async function(x){if(!v)try{var N=await l(x);return new Uint8Array(N)}catch{}if(x==ge&&v)x=new Uint8Array(v);else{if(!b)throw"both async and sync fetching of the wasm failed";x=b(x)}return x})(h);return await WebAssembly.instantiate(y,m)}catch(x){O(`failed to asynchronously prepare wasm: ${x}`),we(x)}})(u,o)})(n),e(t.instance,t.module))}class Tt{name="ExitStatus";constructor(t){this.message=`Program terminated with exit(${t})`,this.status=t}}var Se=e=>{e.terminate(),e.onmessage=()=>{}},xe=[],Be=0,re=null,Q=e=>{We.length==0&&(vn(),Tn(We[0]));var t=We.pop();if(!t)return 6;vt.push(t),Je[e.Xc]=t,t.Xc=e.Xc;var n={$c:"run",ze:e.ye,kd:e.kd,Xc:e.Xc};return t.postMessage(n,e.oe),0},z=0,H=(e,t,...n)=>{var o,u=16*n.length,c=P(),h=Vt(u),m=h>>>3;for(o of n)typeof o=="bigint"?((d(),pe)[m++>>>0]=1n,(d(),pe)[m++>>>0]=o):((d(),pe)[m++>>>0]=0n,(d(),ae)[m++>>>0]=o);return e=Ro(e,0,u,h,t),D(c),e};function Ye(e){if(i)return H(0,1,e);if(A=e,!(0{if(A=e,i)throw Tr(e),"unwind";Ye(e)},We=[],vt=[],gn=[],Je={},yn=e=>{var t=e.Xc;delete Je[t],We.push(e),vt.splice(vt.indexOf(e),1),e.Xc=0,No(t)};function wn(){gn.forEach(e=>e())}var Tn=e=>new Promise(t=>{e.onmessage=u=>{var c=u.data;if(u=c.$c,c.gd&&c.gd!=zt()){var h=Je[c.gd];h?h.postMessage(c,c.oe):O(`Internal error! Worker sent a message "${u}" to target pthread ${c.gd}, but that thread no longer exists!`)}else u==="checkMailbox"?_t():u==="spawnThread"?Q(c):u==="cleanupThread"?me(()=>{yn(Je[c.Le])}):u==="loaded"?(e.loaded=!0,t(e)):c.target==="setimmediate"?e.postMessage(c):u==="uncaughtException"?e.onerror(c.error):u==="callHandler"?r[c.te](...c.args):u&&O(`worker sent an unknown command ${u}`)},e.onerror=u=>{throw O(`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({$c:"load",ue:o,Me:ke,Ne:T})});function vn(){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,ei=(e,t)=>{z=0,e=qr(e,t),0-9007199254740992>e||9007199254740992>>=0);return(d(),Z)[t.ad+12>>>0]==0&&(En(t,!0),Ut--),Sn(t,!1),Pt.push(t),zo(e)}var dt=0,ri=()=>{W(0,0);var e=Pt.pop();Go(e.td),dt=0};function En(e,t){t=t?1:0,(d(),Z)[e.ad+12>>>0]=t}function Sn(e,t){t=t?1:0,(d(),Z)[e.ad+13>>>0]=t}class Er{constructor(t){this.td=t,this.ad=t-24}}var Sr=e=>{var t=dt;if(!t)return xt(0),0;var n=new Er(t);(d(),E)[n.ad+16>>>2>>>0]=t;var o=(d(),E)[n.ad+4>>>2>>>0];if(!o)return xt(0),t;for(var u of e){if(u===0||u===o)break;if($o(u,o,n.ad+16))return xt(u),t}return xt(o),t};function ni(){return Sr([])}function oi(e){return Sr([e>>>0])}function ai(e,t,n,o){return Sr([e>>>0,t>>>0,n>>>0,o>>>0])}var si=()=>{var e=Pt.pop();e||we("no exception to throw");var t=e.td;throw(d(),Z)[e.ad+13>>>0]==0&&(Pt.push(e),Sn(e,!0),En(e,!1),Ut++),Hr(t),dt=t};function ii(e,t,n){var o=new Er(e>>>=0);throw t>>>=0,n>>>=0,(d(),E)[o.ad+16>>>2>>>0]=0,(d(),E)[o.ad+4>>>2>>>0]=t,(d(),E)[o.ad+8>>>2>>>0]=n,Hr(e),Ut++,dt=e}var ui=()=>Ut;function xn(e,t,n,o){return i?H(2,1,e,t,n,o):An(e,t,n,o)}function An(e,t,n,o){if(e>>>=0,t>>>=0,n>>>=0,o>>>=0,!globalThis.SharedArrayBuffer)return 6;var u=[];return i&&u.length===0?xn(e,t,n,o):(e={ye:n,Xc:e,kd:o,oe:u},i?(e.$c="spawnThread",postMessage(e,u),0):Q(e))}function fi(e){throw dt||=e>>>0,dt}var In=globalThis.TextDecoder&&new TextDecoder,Ln=(e,t,n,o)=>{if(n=t+n,o)return n;for(;e[t]&&!(t>=n);)++t;return t},Bn=(e,t=0,n,o)=>{if(16<(n=Ln(e,t>>>=0,n,o))-t&&e.buffer&&In)return In.decode(e.buffer instanceof ArrayBuffer?e.subarray(t,n):e.slice(t,n));for(o="";t(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},lt=(e,t,n)=>(e>>>=0)?Bn((d(),X),e,t,n):"";function On(e,t,n){return i?H(3,1,e,t,n):0}function Mn(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 Un(e,t){if(i)return H(8,1,e,t)}function _n(e,t,n){if(i)return H(9,1,e,t,n)}function Rn(e,t,n,o){if(i)return H(10,1,e,t,n,o)}function Nn(e,t,n,o){if(i)return H(11,1,e,t,n,o)}function Wn(e,t,n,o){if(i)return H(12,1,e,t,n,o)}function kn(e){if(i)return H(13,1,e)}function Fn(e,t){if(i)return H(14,1,e,t)}function Gn(e,t,n){if(i)return H(15,1,e,t,n)}var ci=()=>we(""),Oe=e=>{e>>>=0;for(var t="";;){var n=(d(),X)[e++>>>0];if(!n)return t;t+=String.fromCharCode(n)}},xr={},Ar={},di={},pt=class extends Error{constructor(e){super(e),this.name="BindingError"}};function Pe(e,t,n={}){return(function(o,u,c={}){var h=u.name;if(!o)throw new pt(`type "${h}" must have a positive integer typeid pointer`);if(Ar.hasOwnProperty(o)){if(c.ve)return;throw new pt(`Cannot register type '${h}' twice`)}Ar[o]=u,delete di[o],xr.hasOwnProperty(o)&&(u=xr[o],delete xr[o],u.forEach(m=>m()))})(e,t,n)}var $n=(e,t,n)=>{switch(t){case 1:return n?o=>(d(),Z)[o>>>0]:o=>(d(),X)[o>>>0];case 2:return n?o=>(d(),De)[o>>>1>>>0]:o=>(d(),K)[o>>>1>>>0];case 4:return n?o=>(d(),I)[o>>>2>>>0]:o=>(d(),E)[o>>>2>>>0];case 8:return n?o=>(d(),pe)[o>>>3>>>0]:o=>(d(),J)[o>>>3>>>0];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}};function li(e,t,n,o,u){e>>>=0,n>>>=0,t=Oe(t>>>0);let c=h=>h;if(o=o===0n){let h=8*n;c=m=>BigInt.asUintN(h,m),u=c(u)}Pe(e,{name:t,Wc:c,cd:(h,m)=>(typeof m=="number"&&(m=BigInt(m)),m),bd:$n(t,n,!o),dd:null})}function pi(e,t,n,o){Pe(e>>>=0,{name:t=Oe(t>>>0),Wc:function(u){return!!u},cd:function(u,c){return c?n:o},bd:function(u){return this.Wc((d(),X)[u>>>0])},dd:null})}var zn=[],Xe=[0,1,,1,null,1,!0,1,!1,1];function Ir(e){9<(e>>>=0)&&--Xe[e+1]===0&&(Xe[e]=void 0,zn.push(e))}var Te=e=>{if(!e)throw new pt(`Cannot use deleted val. handle = ${e}`);return Xe[e]},Ae=e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let t=zn.pop()||Xe.length;return Xe[t]=e,Xe[t+1]=1,t}};function Lr(e){return this.Wc((d(),E)[e>>>2>>>0])}var mi={name:"emscripten::val",Wc:e=>{var t=Te(e);return Ir(e),t},cd:(e,t)=>Ae(t),bd:Lr,dd:null};function hi(e){return Pe(e>>>0,mi)}var bi=(e,t)=>{switch(t){case 4:return function(n){return this.Wc((d(),R)[n>>>2>>>0])};case 8:return function(n){return this.Wc((d(),ae)[n>>>3>>>0])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}};function gi(e,t,n){n>>>=0,Pe(e>>>=0,{name:t=Oe(t>>>0),Wc:o=>o,cd:(o,u)=>u,bd:bi(t,n),dd:null})}function yi(e,t,n,o,u){e>>>=0,n>>>=0,t=Oe(t>>>0);let c=m=>m;if(o===0){var h=32-8*n;c=m=>m<>>h,u=c(u)}Pe(e,{name:t,Wc:c,cd:(m,y)=>y,bd:$n(t,n,o!==0),dd:null})}function wi(e,t,n){function o(c){var h=(d(),E)[c>>>2>>>0];return c=(d(),E)[c+4>>>2>>>0],new u((d(),Z).buffer,c,h)}var u=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];Pe(e>>>=0,{name:n=Oe(n>>>0),Wc:o,bd:o},{ve:!0})}var Ue=(e,t,n)=>{var o=(d(),X);if(t>>>=0,0=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=o?t++:2047>=o?t+=2:55296<=o&&57343>=o?(t+=4,++n):t+=3}return t};function Ti(e,t){Pe(e>>>=0,{name:t=Oe(t>>>0),Wc(n){var o=(d(),E)[n>>>2>>>0];return o=lt(n+4,o,!0),ve(n),o},cd(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 pt("Cannot pass non-string to std::string");var c=u?_e(o):o.length,h=Ke(4+c+1),m=h+4;return(d(),E)[h>>>2>>>0]=c,u?Ue(o,m,c+1):(d(),X).set(o,m>>>0),n!==null&&n.push(ve,h),h},bd:Lr,dd(n){ve(n)}})}var Vn=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,vi=(e,t,n)=>{if(e>>>=1,16<(t=Ln((d(),K),e,t/2,n))-e&&Vn)return Vn.decode((d(),K).slice(e,t));for(n="";e>>0];n+=String.fromCharCode(o)}return n},Ei=(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>>1>>>0]=c,t+=2}return(d(),De)[t>>>1>>>0]=0,t-o},Si=e=>2*e.length,xi=(e,t,n)=>{var o="";e>>>=2;for(var u=0;!(u>=t/4);u++){var c=(d(),E)[e+u>>>0];if(!c&&!n)break;o+=String.fromCodePoint(c)}return o},Ai=(e,t,n)=>{if(t>>>=0,n??=2147483647,4>n)return 0;var o=t;n=o+n-4;for(var u=0;u>>2>>>0]=c,(t+=4)+4>n)break}return(d(),I)[t>>>2>>>0]=0,t-o},Ii=e=>{for(var t=0,n=0;n>>=0,t>>>=0,n=Oe(n>>>=0),t===2)var o=vi,u=Ei,c=Si;else o=xi,u=Ai,c=Ii;Pe(e,{name:n,Wc:h=>{var m=(d(),E)[h>>>2>>>0];return m=o(h+4,m*t,!0),ve(h),m},cd:(h,m)=>{if(typeof m!="string")throw new pt(`Cannot pass non-string to C++ string type ${n}`);var y=c(m),x=Ke(4+y+t);return(d(),E)[x>>>2>>>0]=y/t,u(m,x+4,y+t),h!==null&&h.push(ve,x),x},bd:Lr,dd(h){ve(h)}})}function Bi(e,t){Pe(e>>>=0,{we:!0,name:t=Oe(t>>>0),Wc:()=>{},cd:()=>{}})}function Oi(e){zr(e>>>0,!f,1,!s,131072,!1),wn()}var me=e=>{if(!$)try{if(e(),!(0Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Br(e){e>>>=0,Mi||(Atomics.waitAsync((d(),I),e>>>2,e).value.then(_t),e+=128,Atomics.store((d(),I),e>>>2,1))}var _t=()=>me(()=>{var e=zt();e&&(Br(e),ko())});function Ci(e,t){(e>>>=0)==t>>>0?setTimeout(_t):i?postMessage({gd:e,$c:"checkMailbox"}):(e=Je[e])&&e.postMessage({$c:"checkMailbox"})}var Or=[];function Di(e,t,n,o,u){for(t>>>=0,u>>>=0,Or.length=0,n=u>>>3,o=u+o>>>3;n>>0]?(d(),pe)[n++>>>0]:(d(),ae)[n++>>>0],Or.push(c)}return(t?Yr[t]:xf[e])(...Or)}var Pi=()=>{z=0};function Ui(e){e>>>=0,i?postMessage({$c:"cleanupThread",Le:e}):yn(Je[e])}function _i(e){}var Rt=e=>{try{e()}catch(t){we(t)}};function Ri(e){var t=(...n)=>{Nt.push(e);try{return e(...n)}finally{$||(Nt.pop(),Me&&Fe===1&&Nt.length===0&&(Fe=0,z+=1,Rt(Oa),typeof Fibers<"u"&&Fibers.We()))}};return qn.set(e,t),t}var Fe=0,Me=null,jn=0,Nt=[],Mr=new Map,Hn=new Map,qn=new Map,Ni=0,Cr=null,Wi=[],Yn=e=>(function(t){if(!$){if(Fe===0){var n=!1,o=!1;t((u=0)=>{if(!$&&(jn=u,n=!0,o)){Fe=2,Rt(()=>Ma(Me)),typeof MainLoop<"u"&&MainLoop.se&&MainLoop.resume(),u=!1;try{var c=(function(){var y=(d(),I)[Me+8>>>2>>>0];return y=Hn.get(y),y=qn.get(y),--z,y()})()}catch(y){c=y,u=!0}var h=!1;if(!Me){var m=Cr;m&&(Cr=null,(u?m.reject:m.resolve)(c),h=!0)}if(u&&!h)throw c}}),o=!0,n||(Fe=1,Me=(function(){var u=Ke(65548),c=u+12;if((d(),E)[u>>>2>>>0]=c,(d(),E)[u+4>>>2>>>0]=c+65536,c=Nt[0],!Mr.has(c)){var h=Ni++;Mr.set(c,h),Hn.set(h,c)}return c=Mr.get(c),(d(),I)[u+8>>>2>>>0]=c,u})(),typeof MainLoop<"u"&&MainLoop.se&&MainLoop.pause(),Rt(()=>Ba(Me)))}else Fe===2?(Fe=0,Rt(Ca),ve(Me),Me=null,Wi.forEach(me)):we(`invalid state: ${Fe}`);return jn}})(t=>{e().then(t)});function ki(e){return e>>>=0,Yn(async()=>{var t=await Te(e);return Ae(t)})}var Dr=[],Fi=e=>{var t=Dr.length;return Dr.push(e),t},Gi=(e,t)=>{for(var n=Array(e),o=0;o>>2>>>0],h=Ar[c];if(h===void 0)throw e=`parameter ${o}`,c=To(c),t=Oe(c),ve(c),new pt(`${e} has unknown type ${t}`);n[u]=h}return n},$i=(e,t,n)=>{var o=[];return e=e(o,n),o.length&&((d(),E)[t>>>2>>>0]=Ae(o)),e},zi={},Wt=e=>{var t=zi[e];return t===void 0?Oe(e):t};function Vi(e,t,n){var[o,...u]=Gi(e,t>>>0);t=o.cd.bind(o);var c=u.map(y=>y.bd.bind(y));e--;var h={toValue:Te};switch(e=c.map((y,x)=>{var N=`argFromPtr${x}`;return h[N]=y,`${N}(args${x?"+"+8*x:""})`}),n){case 0:var m="toValue(handle)";break;case 2:m="new (toValue(handle))";break;case 3:m="";break;case 1:h.getStringOrSymbol=Wt,m="toValue(handle)[getStringOrSymbol(methodName)]"}return m+=`(${e})`,o.we||(h.toReturnWire=t,h.emval_returnValue=$i,m=`return emval_returnValue(toReturnWire, destructorsRef, ${m})`),m=`return function (handle, methodName, destructorsRef, args) { + ${m} + }`,n=new Function(Object.keys(h),m)(...Object.values(h)),m=`methodCaller<(${u.map(y=>y.name)}) => ${o.name}>`,Fi(Object.defineProperty(n,"name",{value:m}))}function ji(e,t){return t>>>=0,(e=Te(e>>>0))==Te(t)}function Hi(e){return(e>>>=0)?(e=Wt(e),Ae(globalThis[e])):Ae(globalThis)}function qi(e){return e=Wt(e>>>0),Ae(r[e])}function Yi(e,t){return t>>>=0,e=Te(e>>>0),t=Te(t),Ae(e[t])}function Ji(e){9<(e>>>=0)&&(Xe[e+1]+=1)}function Jn(e,t,n,o,u){return Dr[e>>>0](t>>>0,n>>>0,o>>>0,u>>>0)}function Xi(e,t,n,o,u){return Jn(e>>>0,t>>>0,n>>>0,o>>>0,u>>>0)}function Zi(){return Ae([])}function Ki(e){e=Te(e>>>0);for(var t=Array(e.length),n=0;n>>0))}function eu(){return Ae({})}function tu(e){for(var t=Te(e>>>=0);t.length;){var n=t.pop();t.pop()(n)}Ir(e)}function ru(e,t,n){t>>>=0,n>>>=0,e=Te(e>>>0),t=Te(t),n=Te(n),e[t]=n}function nu(e,t){e=ue(e),t>>>=0,e=new Date(1e3*e),(d(),I)[t>>>2>>>0]=e.getUTCSeconds(),(d(),I)[t+4>>>2>>>0]=e.getUTCMinutes(),(d(),I)[t+8>>>2>>>0]=e.getUTCHours(),(d(),I)[t+12>>>2>>>0]=e.getUTCDate(),(d(),I)[t+16>>>2>>>0]=e.getUTCMonth(),(d(),I)[t+20>>>2>>>0]=e.getUTCFullYear()-1900,(d(),I)[t+24>>>2>>>0]=e.getUTCDay(),e=(e.getTime()-Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,(d(),I)[t+28>>>2>>>0]=e}var Xn=e=>e%4==0&&(e%100!=0||e%400==0),Zn=[0,31,60,91,121,152,182,213,244,274,305,335],Kn=[0,31,59,90,120,151,181,212,243,273,304,334];function ou(e,t){e=ue(e),t>>>=0,e=new Date(1e3*e),(d(),I)[t>>>2>>>0]=e.getSeconds(),(d(),I)[t+4>>>2>>>0]=e.getMinutes(),(d(),I)[t+8>>>2>>>0]=e.getHours(),(d(),I)[t+12>>>2>>>0]=e.getDate(),(d(),I)[t+16>>>2>>>0]=e.getMonth(),(d(),I)[t+20>>>2>>>0]=e.getFullYear()-1900,(d(),I)[t+24>>>2>>>0]=e.getDay();var n=(Xn(e.getFullYear())?Zn:Kn)[e.getMonth()]+e.getDate()-1|0;(d(),I)[t+28>>>2>>>0]=n,(d(),I)[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)),(d(),I)[t+32>>>2>>>0]=e}function au(e){e>>>=0;var t=new Date((d(),I)[e+20>>>2>>>0]+1900,(d(),I)[e+16>>>2>>>0],(d(),I)[e+12>>>2>>>0],(d(),I)[e+8>>>2>>>0],(d(),I)[e+4>>>2>>>0],(d(),I)[e>>>2>>>0],0),n=(d(),I)[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?(d(),I)[e+32>>>2>>>0]=+(u!=c&&h==o):0>>2>>>0]=t.getDay(),n=(Xn(t.getFullYear())?Zn:Kn)[t.getMonth()]+t.getDate()-1|0,(d(),I)[e+28>>>2>>>0]=n,(d(),I)[e>>>2>>>0]=t.getSeconds(),(d(),I)[e+4>>>2>>>0]=t.getMinutes(),(d(),I)[e+8>>>2>>>0]=t.getHours(),(d(),I)[e+12>>>2>>>0]=t.getDate(),(d(),I)[e+16>>>2>>>0]=t.getMonth(),(d(),I)[e+20>>>2>>>0]=t.getYear(),e=t.getTime(),BigInt(isNaN(e)?-1:e/1e3)}function Qn(e,t,n,o,u,c,h){return i?H(16,1,e,t,n,o,u,c,h):-52}function eo(e,t,n,o,u,c){if(i)return H(17,1,e,t,n,o,u,c)}var Et={},su=()=>performance.timeOrigin+performance.now();function to(e,t){if(i)return H(18,1,e,t);if(Et[e]&&(clearTimeout(Et[e].id),delete Et[e]),!t)return 0;var n=setTimeout(()=>{delete Et[e],me(()=>Wo(e,performance.timeOrigin+performance.now()))},t);return Et[e]={id:n,Ve:t},0}function iu(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);(d(),E)[e>>>2>>>0]=60*h,(d(),I)[t>>>2>>>0]=+(c!=u),e=(t=m=>{var y=Math.abs(m);return`UTC${0<=m?"-":"+"}${String(Math.floor(y/60)).padStart(2,"0")}${String(y%60).padStart(2,"0")}`})(c),t=t(u),uDate.now(),fu=1;function cu(e,t,n){if(n>>>=0,!(0<=e&&3>=e))return 28;if(e===0)e=Date.now();else{if(!fu)return 52;e=performance.timeOrigin+performance.now()}return e=Math.round(1e6*e),(d(),pe)[n>>>3>>>0]=BigInt(e),0}var Pr=[],ro=(e,t)=>{Pr.length=0;for(var n;n=(d(),X)[e++>>>0];){var o=n!=105;t+=(o&=n!=112)&&t%8?4:0,Pr.push(n==112?(d(),E)[t>>>2>>>0]:n==106?(d(),pe)[t>>>3>>>0]:n==105?(d(),I)[t>>>2>>>0]:(d(),ae)[t>>>3>>>0]),t+=o?8:4}return Pr};function du(e,t,n){return e>>>=0,t=ro(t>>>0,n>>>0),Yr[e](...t)}function lu(e,t,n){return e>>>=0,t=ro(t>>>0,n>>>0),Yr[e](...t)}var pu=()=>{};function mu(e,t){return O(lt(e>>>0,t>>>0))}var hu=()=>{throw z+=1,"unwind"};function bu(){return 4294901760}var gu=()=>1,yu=()=>navigator.hardwareConcurrency,Ze={},no=e=>{var t=_e(e)+1,n=Ke(t);return n&&Ue(e,n,t),n},kt=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},oo=e=>{for(var t of e)(e=kt(t))&&(Ze[e]=t)};function wu(){var e=Error().stack.toString().split(` +`);return e[0]=="Error"&&e.shift(),oo(e),Ze.ee=kt(e[3]),Ze.xe=e,Ze.ee}function Ft(e){if(!(e=Ze[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 ve(Ft.ne??0),Ft.ne=no(e),Ft.ne}function Tu(e){e>>>=0;var t=(d(),X).length;if(e<=t||4294901760=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 vu(e,t,n){if(e>>>=0,t>>>=0,Ze.ee==e)var o=Ze.xe;else(o=Error().stack.toString().split(` +`))[0]=="Error"&&o.shift(),oo(o);for(var u=3;o[u]&&kt(o[u])!=e;)++u;for(e=0;e>>2>>>0]=kt(o[e+u]);return e}var Ce=e=>{var t=_e(e)+1,n=Vt(t);return Ue(e,n,t),n},mt=e=>(d(),E)[e>>>2>>>0]+4294967296*(d(),I)[e+4>>>2>>>0],fe=[],ao=(e,t)=>{fe[e>>>0]=t},Re=[],Gt=[],ht=(e,t)=>{Gt[e]=new Promise(n=>t.finally(()=>n(e)))},B=e=>{if(e)return fe[e>>>0]},Ur=(e,t)=>{for(e=(d(),E)[e>>>2>>>0];e;e=(d(),E)[e>>>2>>>0])t[(d(),I)[e+4>>>2>>>0]](e)},$t=(e,t,n)=>{(d(),E)[e>>>2>>>0]=t,(d(),E)[e+4>>>2>>>0]=n},so=e=>{var t=(d(),E)[e>>>2>>>0];return e=(d(),E)[e+4>>>2>>>0],lt(t,e)},Ie=e=>{var t=(d(),E)[e>>>2>>>0];return e=(d(),E)[e+4>>>2>>>0],t?lt(t,e):e===0?"":void 0},Eu=e=>{var t=Ie(e+4),n=(n=(d(),E)[e+12>>>2>>>0])?B(n):"auto";if(e+=16){var o=B((d(),E)[e+4>>>2>>>0]),u=(d(),E)[e+16>>>2>>>0],c=(d(),E)[e+20>>>2>>>0];if(u){for(var h={},m=0;m>>3>>>0]}u=h}else u=void 0;e={module:o,constants:u,entryPoint:Ie(e+8)}}else e=void 0;return{label:t,layout:n,compute:e}},io=(e,t)=>{function n(c,h,m,y=0){c=e[c]??y,(d(),E)[h+m>>>2>>>0]=c}function o(c,h,m,y=0){h+=m,c=e[c]??y,(d(),E)[h>>>2>>>0]=c,y=(d(),E)[h>>>2>>>0],(d(),E)[h+4>>>2>>>0]=(c-y)/4294967296}var u=(d(),E)[t>>>2>>>0];n("maxTextureDimension1D",t,4),n("maxTextureDimension2D",t,8),n("maxTextureDimension3D",t,12),n("maxTextureArrayLayers",t,16),n("maxBindGroups",t,20),n("maxBindGroupsPlusVertexBuffers",t,24),n("maxBindingsPerBindGroup",t,28),n("maxDynamicUniformBuffersPerPipelineLayout",t,32),n("maxDynamicStorageBuffersPerPipelineLayout",t,36),n("maxSampledTexturesPerShaderStage",t,40),n("maxSamplersPerShaderStage",t,44),n("maxStorageBuffersPerShaderStage",t,48),n("maxStorageTexturesPerShaderStage",t,52),n("maxUniformBuffersPerShaderStage",t,56),n("minUniformBufferOffsetAlignment",t,80),n("minStorageBufferOffsetAlignment",t,84),o("maxUniformBufferBindingSize",t,64),o("maxStorageBufferBindingSize",t,72),n("maxVertexBuffers",t,88),o("maxBufferSize",t,96),n("maxVertexAttributes",t,104),n("maxVertexBufferArrayStride",t,108),n("maxInterStageShaderVariables",t,112),n("maxColorAttachments",t,116),n("maxColorAttachmentBytesPerSample",t,120),n("maxComputeWorkgroupStorageSize",t,124),n("maxComputeInvocationsPerWorkgroup",t,128),n("maxComputeWorkgroupSizeX",t,132),n("maxComputeWorkgroupSizeY",t,136),n("maxComputeWorkgroupSizeZ",t,140),n("maxComputeWorkgroupsPerDimension",t,144),n("maxImmediateSize",t,148),u!==0&&(d(),n("maxStorageBuffersInVertexStage",u,8,e.maxStorageBuffersPerShaderStage),n("maxStorageBuffersInFragmentStage",u,16,e.maxStorageBuffersPerShaderStage),n("maxStorageTexturesInVertexStage",u,12,e.maxStorageTexturesPerShaderStage),n("maxStorageTexturesInFragmentStage",u,20,e.maxStorageTexturesPerShaderStage))},Su=(e,t)=>{(d(),E)[t+52>>>2>>>0]=e.subgroupMinSize,(d(),E)[t+56>>>2>>>0]=e.subgroupMaxSize;var n=no(e.vendor+e.architecture+e.device+e.description),o=_e(e.vendor);$t(t+4,n,o),n+=o,o=_e(e.architecture),$t(t+12,n,o),n+=o,o=_e(e.device),$t(t+20,n,o),n+=o,o=_e(e.description),$t(t+28,n,o),n+=o,(d(),I)[t+36>>>2>>>0]=2,n=e.isFallbackAdapter?3:4,(d(),I)[t+40>>>2>>>0]=n,(d(),E)[t+44>>>2>>>0]=0,(d(),E)[t+48>>>2>>>0]=0,Ur(t,{327739:u=>{let c=0,h=0;if(e.subgroupMatrixConfigs){c=e.subgroupMatrixConfigs.length,h=Ke(20*c);for(let[m,y]of e.subgroupMatrixConfigs.entries()){let x=h+20*m,N=fo.indexOf(y.componentType),F=fo.indexOf(y.resultComponentType);(d(),I)[x>>>2>>>0]=N,(d(),I)[x+4>>>2>>>0]=F,(d(),E)[x+8>>>2>>>0]=y.M,(d(),E)[x+12>>>2>>>0]=y.N,(d(),E)[x+16>>>2>>>0]=y.K}}(d(),E)[u+12>>>2>>>0]=h,(d(),E)[u+8>>>2>>>0]=c}})},xu=[,,"uniform","storage","read-only-storage"],Au=[,"validation","out-of-memory","internal"],Iu=[,"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",22:"texture-component-swizzle",23:"subgroup-size-control",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect",327732:"chromium-experimental-subgroup-matrix"},Lu=[,"low-power","high-performance"],Bu=[,"occlusion","timestamp"],Ou=[,,"filtering","non-filtering","comparison"],Mu=[,,"write-only","read-only","read-write"],fo=[,"f32","f16","u32","i32","u8","i8"],Cu=[,"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"],Du=[,,"float","unfilterable-float","depth","sint","uint"],co=[,"1d","2d","2d-array","cube","cube-array","3d"],Pu={undefined:1,unknown:1,destroyed:2};function Uu(e,t,n,o,u,c){t=ue(t),n=ue(n),o>>>=0,u>>>=0,c>>>=0;var h=B(e>>>0);if(e={},c){var m=(d(),E)[c+12>>>2>>>0];if(m){var y=(d(),E)[c+16>>>2>>>0];e.requiredFeatures=Array.from((d(),E).subarray(y>>>2>>>0,y+4*m>>>2>>>0),L=>uo[L])}if(m=(d(),E)[c+20>>>2>>>0]){let L=function(he,de,Qe,et=!1){de+=Qe,(de=(d(),E)[de>>>2>>>0])==4294967295||et&&de==0||(x[he]=de)},q=function(he,de,Qe){de+=Qe,Qe=(d(),E)[de>>>2>>>0];var et=(d(),E)[de+4>>>2>>>0];Qe==4294967295&&et==4294967295||(x[he]=mt(de))};var N=L,F=q;y=(d(),E)[m>>>2>>>0];var x={};L("maxTextureDimension1D",m,4),L("maxTextureDimension2D",m,8),L("maxTextureDimension3D",m,12),L("maxTextureArrayLayers",m,16),L("maxBindGroups",m,20),L("maxBindGroupsPlusVertexBuffers",m,24),L("maxBindingsPerBindGroup",m,28),L("maxDynamicUniformBuffersPerPipelineLayout",m,32),L("maxDynamicStorageBuffersPerPipelineLayout",m,36),L("maxSampledTexturesPerShaderStage",m,40),L("maxSamplersPerShaderStage",m,44),L("maxStorageBuffersPerShaderStage",m,48),L("maxStorageTexturesPerShaderStage",m,52),L("maxUniformBuffersPerShaderStage",m,56),L("minUniformBufferOffsetAlignment",m,80),L("minStorageBufferOffsetAlignment",m,84),q("maxUniformBufferBindingSize",m,64),q("maxStorageBufferBindingSize",m,72),L("maxVertexBuffers",m,88),q("maxBufferSize",m,96),L("maxVertexAttributes",m,104),L("maxVertexBufferArrayStride",m,108),L("maxInterStageShaderVariables",m,112),L("maxColorAttachments",m,116),L("maxColorAttachmentBytesPerSample",m,120),L("maxComputeWorkgroupStorageSize",m,124),L("maxComputeInvocationsPerWorkgroup",m,128),L("maxComputeWorkgroupSizeX",m,132),L("maxComputeWorkgroupSizeY",m,136),L("maxComputeWorkgroupSizeZ",m,140),L("maxComputeWorkgroupsPerDimension",m,144),L("maxImmediateSize",m,148,!0),y!==0&&(d(),"maxStorageBuffersInVertexStage"in GPUSupportedLimits.prototype&&(L("maxStorageBuffersInVertexStage",y,8),L("maxStorageTexturesInVertexStage",y,12),L("maxStorageBuffersInFragmentStage",y,16),L("maxStorageTexturesInFragmentStage",y,20))),e.requiredLimits=x}(m=(d(),E)[c+24>>>2>>>0])&&(m={label:Ie(m+4)},e.defaultQueue=m),e.label=Ie(c+4)}z+=1,ht(t,h.requestDevice(e).then(L=>{--z,me(()=>{fe[u>>>0]=L.queue,fe[o>>>0]=L,z+=1,ht(n,L.lost.then(q=>{me(()=>{L.onuncapturederror=()=>{};var he=P(),de=Ce(q.message);kr(n,Pu[q.reason],de),D(he)}),--z})),L.onuncapturederror=q=>{var he=5;q.error instanceof GPUValidationError?he=2:q.error instanceof GPUOutOfMemoryError?he=3:q.error instanceof GPUInternalError&&(he=4);var de=P();q=Ce(q.error.message),Uo(o,he,q),D(de)},"adapterInfo"in L||(L.adapterInfo=h.info),$r(t,1,o,0)})},L=>{--z,me(()=>{var q=P(),he=Ce(L.message);$r(t,3,o,he),n&&kr(n,4,he),D(q)})}))}function _u(e){var t=B(e>>>=0),n=Re[e];if(n){for(var o=0;o>>=0;var o=B(e>>>=0);n==4294967295&&(n=void 0);try{var u=o.getMappedRange(t>>>0,n)}catch{return 0}var c=jr(16,u.byteLength);return(d(),X).set(new Uint8Array(u),c>>>0),Re[e].push(()=>ve(c)),c}function Nu(e,t,n){n>>>=0;var o=B(e>>>=0);n==4294967295&&(n=void 0);try{var u=o.getMappedRange(t>>>0,n)}catch{return 0}var c=jr(16,u.byteLength);return(d(),X).fill(0,c,u.byteLength),Re[e].push(()=>{new Uint8Array(u).set((d(),X).subarray(c>>>0,c+u.byteLength>>>0)),ve(c)}),c}function Wu(e,t,n,o,u){e>>>=0,t=ue(t),n=ue(n),u>>>=0;var c=B(e);Re[e]=[],u==4294967295&&(u=void 0),z+=1,ht(t,c.mapAsync(n,o>>>0,u).then(()=>{--z,me(()=>{Fr(t,1,0)})},h=>{--z,me(()=>{P();var m=Ce(h.message);Fr(t,h.name==="AbortError"?4:h.name==="OperationError"?3:0,m),delete Re[e]})}))}function ku(e){var t=B(e>>>=0),n=Re[e];if(n){for(var o=0;o>>0]}function Gu(e,t,n){e>>>=0,t>>>=0,n>>>=0;var o=!!(d(),E)[t+32>>>2>>>0];t={label:Ie(t+4),usage:(d(),E)[t+16>>>2>>>0],size:mt(t+24),mappedAtCreation:o},e=B(e);try{var u=e.createBuffer(t)}catch{return!1}return fe[n>>>0]=u,o&&(Re[n]=[]),!0}function $u(e,t,n,o){e>>>=0,t=ue(t),o>>>=0,n=Eu(n>>>0),e=B(e),z+=1,ht(t,e.createComputePipelineAsync(n).then(u=>{--z,me(()=>{fe[o>>>0]=u,Wr(t,1,o,0)})},u=>{--z,me(()=>{var c=P(),h=Ce(u.message);Wr(t,u.reason==="validation"?3:u.reason==="internal"?4:0,o,h),D(c)})}))}function zu(e,t,n){e>>>=0,t>>>=0,n>>>=0;var o=(d(),E)[t>>>2>>>0],u=(d(),I)[o+4>>>2>>>0];t={label:Ie(t+4),code:""},u===2&&(t.code=so(o+8)),e=B(e).createShaderModule(t),fe[n>>>0]=e}var Vu=e=>{(e=B(e)).onuncapturederror=null,e.destroy()};function ju(e,t){t=ue(t),e=B(e>>>0),z+=1,ht(t,e.popErrorScope().then(n=>{--z,me(()=>{var o=5;n?n instanceof GPUValidationError?o=2:n instanceof GPUOutOfMemoryError?o=3:n instanceof GPUInternalError&&(o=4):o=1;var u=P(),c=n?Ce(n.message):0;Gr(t,1,o,c),D(u)})},n=>{--z,me(()=>{var o=P(),u=Ce(n.message);Gr(t,1,5,u),D(o)})}))}function Hu(e,t,n,o){if(t=ue(t),o>>>=0,n>>>=0){var u={featureLevel:Iu[(d(),I)[n+4>>>2>>>0]],powerPreference:Lu[(d(),I)[n+8>>>2>>>0]],forceFallbackAdapter:!!(d(),E)[n+12>>>2>>>0]};(e=(d(),E)[n>>>2>>>0])!==0&&(d(),u.Ye=!!(d(),E)[e+8>>>2>>>0])}"gpu"in navigator?(z+=1,ht(t,navigator.gpu.requestAdapter(u).then(c=>{--z,me(()=>{if(c)fe[o>>>0]=c,St(t,1,o,0);else{var h=P(),m=Ce("WebGPU not available on this browser (requestAdapter returned null)");St(t,3,o,m),D(h)}})},c=>{--z,me(()=>{var h=P(),m=Ce(c.message);St(t,4,o,m),D(h)})}))):(u=P(),e=Ce("WebGPU not available on this browser (navigator.gpu is not available)"),St(t,3,o,e),D(u))}function qu(e,t,n){return e>>>=0,t>>>=0,n>>>=0,Yn(async()=>{var o=[];if(n){var u=(d(),I)[n>>>2>>>0];o.length=t+1,o[t]=new Promise(m=>setTimeout(m,u,0))}else o.length=t;for(var c=0;c{if(!_r){var e,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"};for(e in Rr)Rr[e]===void 0?delete t[e]:t[e]=Rr[e];var n=[];for(e in t)n.push(`${e}=${t[e]}`);_r=n}return _r};function po(e,t){if(i)return H(19,1,e,t);e>>>=0,t>>>=0;var n,o=0,u=0;for(n of lo()){var c=t+o;(d(),E)[e+u>>>2>>>0]=c,o+=Ue(n,c,1/0)+1,u+=4}return 0}function mo(e,t){if(i)return H(20,1,e,t);e>>>=0,t>>>=0;var n=lo();for(var o of((d(),E)[e>>>2>>>0]=n.length,e=0,n))e+=_e(o)+1;return(d(),E)[t>>>2>>>0]=e,0}function ho(e){return i?H(21,1,e):52}function bo(e,t,n,o,u){return i?H(22,1,e,t,n,o,u):52}function go(e,t,n,o){return i?H(23,1,e,t,n,o):52}function yo(e,t,n,o){return i?H(24,1,e,t,n,o):70}var Yu=[null,[],[]];function wo(e,t,n,o){if(i)return H(25,1,e,t,n,o);t>>>=0,n>>>=0,o>>>=0;for(var u=0,c=0;c>>2>>>0],m=(d(),E)[t+4>>>2>>>0];t+=8;for(var y=0;y>>0],F=Yu[x];N===0||N===10?((x===1?Y:O)(Bn(F)),F.length=0):F.push(N)}u+=m}return(d(),E)[o>>>2>>>0]=u,0}function Ju(e){return e>>>0}function Xu(e,t){return io(B(e>>>0).limits,t>>>0),1}function Zu(e,t){return B(e>>>0).features.has(uo[t])}function Ku(e){return BigInt(B(e>>>0).size)}function Qu(e){return BigInt(B(e>>>0).usage)}function ef(e,t){if(e>>>=0,t>>>=0){var n=Ie(t+4);n={label:n,timestampWrites:t=(t=(d(),E)[t+12>>>2>>>0])!==0?{querySet:B((d(),E)[t+4>>>2>>>0]),beginningOfPassWriteIndex:(d(),E)[t+8>>>2>>>0],endOfPassWriteIndex:(d(),E)[t+12>>>2>>>0]}:void 0}}return t=B(e),e=Bo(0),n=t.beginComputePass(n),fe[e>>>0]=n,e}function tf(e,t,n,o){n=ue(n),(o=ue(o))==-1&&(o=void 0),(e=B(e>>>0)).clearBuffer(B(t>>>0),n,o)}function rf(e,t,n,o,u,c){n=ue(n),u=ue(u),c=ue(c),B(e>>>0).copyBufferToBuffer(B(t>>>0),n,B(o>>>0),u,c)}function nf(e){var t=B(e>>>0);return e=Io(0),t=t.finish(),fe[e>>>0]=t,e}function of(e,t,n,o,u,c){c=ue(c),B(e>>>0).resolveQuerySet(B(t>>>0),n,o,B(u>>>0),c)}function af(e,t,n,o){B(e>>>0).dispatchWorkgroups(t,n,o)}function sf(e,t,n){n=ue(n),B(e>>>0).dispatchWorkgroupsIndirect(B(t>>>0),n)}function uf(e){B(e>>>0).end()}function ff(e,t,n,o,u){o>>>=0,u>>>=0,e=B(e>>>0),n=B(n>>>0),o==0?e.setBindGroup(t,n):e.setBindGroup(t,n,(d(),E),u>>>2,o)}function cf(e,t){B(e>>>0).setPipeline(B(t>>>0))}function df(e,t,n){B(e>>>0).Xe(B(t>>>0),n)}function lf(e,t){function n(u){var c=(d(),E)[u+8>>>2>>>0],h=(d(),E)[u+32>>>2>>>0],m=(d(),E)[u+36>>>2>>>0],y=0;return Ur(u,{14:x=>{y=(d(),E)[x+8>>>2>>>0]}}),c?((h=mt(u+24))==-1&&(h=void 0),c={buffer:B(c),offset:mt(u+16),size:h}):c=B(h||m||y),{binding:(d(),E)[u+4>>>2>>>0],resource:c}}e>>>=0,t={label:Ie((t>>>=0)+4),layout:B((d(),E)[t+12>>>2>>>0]),entries:(function(u,c){for(var h=[],m=0;m>>2>>>0],(d(),E)[t+20>>>2>>>0])},e=B(e);var o=xo(0);return ao(o,e.createBindGroup(t)),o}function pf(e,t){function n(y){var x=(d(),E)[y+4>>>2>>>0];if(x)return{type:xu[x],hasDynamicOffset:!!(d(),E)[y+8>>>2>>>0],minBindingSize:mt(y+16)}}function o(y){if(y=(d(),E)[y+4>>>2>>>0])return{type:Ou[y]}}function u(y){var x=(d(),E)[y+4>>>2>>>0];if(x)return{sampleType:Du[x],viewDimension:co[(d(),I)[y+8>>>2>>>0]],multisampled:!!(d(),E)[y+12>>>2>>>0]}}function c(y){var x=(d(),E)[y+4>>>2>>>0];if(x)return{access:Mu[x],format:Cu[(d(),I)[y+8>>>2>>>0]],viewDimension:co[(d(),I)[y+12>>>2>>>0]]}}function h(y){var x={binding:(d(),E)[y+4>>>2>>>0],visibility:(d(),E)[y+8>>>2>>>0],buffer:n(y+24),sampler:o(y+48),texture:u(y+56),storageTexture:c(y+72)};return Ur(y,{13:()=>{x.externalTexture={}}}),x}e>>>=0,t={label:Ie((t>>>=0)+4),entries:(function(y,x){for(var N=[],F=0;F>>2>>>0],(d(),E)[t+16>>>2>>>0])},e=B(e);var m=Ao(0);return ao(m,e.createBindGroupLayout(t)),m}function mf(e,t){var n;return e>>>=0,(t>>>=0)&&(n={label:Ie(t+4)}),t=B(e),e=Lo(0),n=t.createCommandEncoder(n),fe[e>>>0]=n,e}function hf(e,t){e>>>=0,t>>>=0;for(var n=(d(),E)[t+12>>>2>>>0],o=(d(),E)[t+16>>>2>>>0],u=[],c=0;c>>2>>>0]));return t={label:Ie(t+4),bindGroupLayouts:u,immediateSize:(d(),E)[t+20>>>2>>>0]},n=B(e),e=Oo(0),t=n.createPipelineLayout(t),fe[e>>>0]=t,e}function bf(e,t){e>>>=0,t>>>=0,t={type:Bu[(d(),I)[t+12>>>2>>>0]],count:(d(),E)[t+16>>>2>>>0]};var n=B(e);return e=Mo(0),t=n.createQuerySet(t),fe[e>>>0]=t,e}function gf(e,t){return Su(B(e>>>0).adapterInfo,t>>>0),1}var yf={"core-features-and-limits":1,"depth-clip-control":2,"depth32float-stencil8":3,"texture-compression-bc":4,"texture-compression-bc-sliced-3d":5,"texture-compression-etc2":6,"texture-compression-astc":7,"texture-compression-astc-sliced-3d":8,"timestamp-query":9,"indirect-first-instance":10,"shader-f16":11,"rg11b10ufloat-renderable":12,"bgra8unorm-storage":13,"float32-filterable":14,"float32-blendable":15,"clip-distances":16,"dual-source-blending":17,subgroups:18,"texture-formats-tier1":19,"texture-formats-tier2":20,"primitive-index":21,"texture-component-swizzle":22,"subgroup-size-control":23,"chromium-experimental-unorm16-texture-formats":327692,"chromium-experimental-multi-draw-indirect":327729,"chromium-experimental-subgroup-matrix":327732};function wf(e,t){t>>>=0;var n=B(e>>>0);e=Ke(4*n.features.size);var o=0,u=0;for(let c of n.features)0<=(n=yf[c])&&((d(),I)[e+o>>>2>>>0]=n,o+=4,u++);(d(),E)[t+4>>>2>>>0]=e,(d(),E)[t>>>2>>>0]=u}function Tf(e,t){return io(B(e>>>0).limits,t>>>0),1}function vf(e,t){B(e>>>0).pushErrorScope(Au[t])}function Ef(e,t,n){t>>>=0,n>>>=0,e=B(e>>>0),t=Array.from((d(),I).subarray(n>>>2>>>0,n+4*t>>>2>>>0),o=>B(o)),e.submit(t)}function Sf(e,t,n,o,u){n=ue(n),o>>>=0,u>>>=0,e=B(e>>>0),t=B(t>>>0),o=(d(),X).subarray(o>>>0,o+u>>>0),e.writeBuffer(t,n,o,0,u)}i||(function(){for(var e=r.numThreads-1;e--;)vn();xe.push(async()=>{var t=(async function(){if(!i)return Promise.all(We.map(Tn))})();Be++,await t,--Be==0&&re&&(t=re,re=null,t())})})(),i||(ke=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),se()),r.wasmBinary&&(v=r.wasmBinary),r.stackSave=()=>P(),r.stackRestore=e=>D(e),r.stackAlloc=e=>Vt(e),r.setValue=function(e,t,n="i8"){switch(n.endsWith("*")&&(n="*"),n){case"i1":case"i8":(d(),Z)[e>>>0]=t;break;case"i16":(d(),De)[e>>>1>>>0]=t;break;case"i32":(d(),I)[e>>>2>>>0]=t;break;case"i64":(d(),pe)[e>>>3>>>0]=BigInt(t);break;case"float":(d(),R)[e>>>2>>>0]=t;break;case"double":(d(),ae)[e>>>3>>>0]=t;break;case"*":(d(),E)[e>>>2>>>0]=t;break;default:we(`invalid type for setValue: ${n}`)}},r.getValue=function(e,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":case"i8":return(d(),Z)[e>>>0];case"i16":return(d(),De)[e>>>1>>>0];case"i32":return(d(),I)[e>>>2>>>0];case"i64":return(d(),pe)[e>>>3>>>0];case"float":return(d(),R)[e>>>2>>>0];case"double":return(d(),ae)[e>>>3>>>0];case"*":return(d(),E)[e>>>2>>>0];default:we(`invalid type for getValue: ${t}`)}},r.UTF8ToString=lt,r.stringToUTF8=Ue,r.lengthBytesUTF8=_e;var To,vo,Eo,Nr,zt,ve,Ke,So,xo,Ao,Io,Lo,Bo,Oo,Mo,Co,Do,Po,Wr,kr,Fr,Gr,St,$r,Uo,zr,_o,Ro,No,Vr,Wo,ko,jr,W,xt,Fo,D,Vt,P,Go,Hr,$o,zo,Vo,qr,jo,Ho,qo,Yo,Jo,Xo,Zo,Ko,Qo,ea,ta,ra,na,oa,aa,sa,ia,ua,fa,ca,da,la,pa,ma,ha,ba,ga,ya,wa,Ta,va,Ea,Sa,xa,Aa,Ia,La,Ba,Oa,Ma,Ca,Ne,xf=[Ye,Tr,xn,On,Mn,Cn,Dn,Pn,Un,_n,Rn,Nn,Wn,kn,Fn,Gn,Qn,eo,to,po,mo,ho,bo,go,yo,wo],Yr={1274364:(e,t,n,o,u)=>{if(r===void 0||!r.ed)return 1;if((e=lt(Number(e>>>0))).startsWith("./")&&(e=e.substring(2)),!(e=r.ed.get(e)))return 2;if(t=Number(t>>>0),n=Number(n>>>0),o=Number(o>>>0),t+n>e.byteLength)return 3;try{let c=e.subarray(t,t+n);switch(u){case 0:(d(),X).set(c,o>>>0);break;case 1:r.pe?r.pe(o,c):r.Re(o,c);break;default:return 4}return 0}catch{return 4}},1275188:(e,t,n)=>{r.re(e,(d(),X).subarray(t>>>0,t+n>>>0))},1275252:()=>r.Pe(),1275294:e=>{r.qe(e)},1275331:()=>typeof wasmOffsetConverter<"u"};function Af(){return typeof wasmOffsetConverter<"u"}function If(e,t,n,o){var u=P();try{return Ko(e,t,n,o)}catch(c){if(D(u),c!==c+0)throw c;W(1,0)}}function Lf(e,t,n){var o=P();try{return Jo(e,t,n)}catch(u){if(D(o),u!==u+0)throw u;W(1,0)}}function Bf(e){var t=P();try{jo(e)}catch(n){if(D(t),n!==n+0)throw n;W(1,0)}}function Of(e,t){var n=P();try{return qr(e,t)}catch(o){if(D(n),o!==o+0)throw o;W(1,0)}}function Mf(e,t,n){var o=P();try{Vo(e,t,n)}catch(u){if(D(o),u!==u+0)throw u;W(1,0)}}function Cf(e,t){var n=P();try{Qo(e,t)}catch(o){if(D(n),o!==o+0)throw o;W(1,0)}}function Df(e,t,n,o,u,c,h){var m=P();try{return Yo(e,t,n,o,u,c,h)}catch(y){if(D(m),y!==y+0)throw y;W(1,0)}}function Pf(e,t,n,o,u,c){var h=P();try{Ho(e,t,n,o,u,c)}catch(m){if(D(h),m!==m+0)throw m;W(1,0)}}function Uf(e,t,n,o){var u=P();try{Zo(e,t,n,o)}catch(c){if(D(u),c!==c+0)throw c;W(1,0)}}function _f(e,t,n,o,u,c,h){var m=P();try{ta(e,t,n,o,u,c,h)}catch(y){if(D(m),y!==y+0)throw y;W(1,0)}}function Rf(e,t,n,o,u,c,h){var m=P();try{ra(e,t,n,o,u,c,h)}catch(y){if(D(m),y!==y+0)throw y;W(1,0)}}function Nf(e,t,n,o,u,c,h,m){var y=P();try{la(e,t,n,o,u,c,h,m)}catch(x){if(D(y),x!==x+0)throw x;W(1,0)}}function Wf(e,t,n,o,u,c,h,m,y,x,N,F){var L=P();try{na(e,t,n,o,u,c,h,m,y,x,N,F)}catch(q){if(D(L),q!==q+0)throw q;W(1,0)}}function kf(e,t,n,o,u){var c=P();try{return ea(e,t,n,o,u)}catch(h){if(D(c),h!==h+0)throw h;W(1,0)}}function Ff(e,t,n,o,u,c){var h=P();try{pa(e,t,n,o,u,c)}catch(m){if(D(h),m!==m+0)throw m;W(1,0)}}function Gf(e,t,n,o,u){var c=P();try{qo(e,t,n,o,u)}catch(h){if(D(c),h!==h+0)throw h;W(1,0)}}function $f(e,t,n,o,u,c,h,m){var y=P();try{Xo(e,t,n,o,u,c,h,m)}catch(x){if(D(y),x!==x+0)throw x;W(1,0)}}function zf(e){var t=P();try{return ma(e)}catch(n){if(D(t),n!==n+0)throw n;W(1,0)}}function Vf(e,t,n,o,u,c,h,m,y){var x=P();try{aa(e,t,n,o,u,c,h,m,y)}catch(N){if(D(x),N!==N+0)throw N;W(1,0)}}function jf(e,t,n){var o=P();try{return ha(e,t,n)}catch(u){if(D(o),u!==u+0)throw u;W(1,0)}}function Hf(e,t){var n=P();try{return La(e,t)}catch(o){if(D(n),o!==o+0)throw o;return W(1,0),0n}}function qf(e,t,n,o){var u=P();try{return ba(e,t,n,o)}catch(c){if(D(u),c!==c+0)throw c;W(1,0)}}function Yf(e){var t=P();try{return oa(e)}catch(n){if(D(t),n!==n+0)throw n;return W(1,0),0n}}function Jf(e,t,n,o){var u=P();try{return ga(e,t,n,o)}catch(c){if(D(u),c!==c+0)throw c;W(1,0)}}function Xf(e,t,n,o,u){var c=P();try{return ya(e,t,n,o,u)}catch(h){if(D(c),h!==h+0)throw h;W(1,0)}}function Zf(e,t,n,o,u,c){var h=P();try{return wa(e,t,n,o,u,c)}catch(m){if(D(h),m!==m+0)throw m;W(1,0)}}function Kf(e,t,n,o,u,c){var h=P();try{return ca(e,t,n,o,u,c)}catch(m){if(D(h),m!==m+0)throw m;W(1,0)}}function Qf(e,t,n,o,u,c){var h=P();try{return Ta(e,t,n,o,u,c)}catch(m){if(D(h),m!==m+0)throw m;W(1,0)}}function ec(e,t,n,o,u,c,h,m){var y=P();try{return da(e,t,n,o,u,c,h,m)}catch(x){if(D(y),x!==x+0)throw x;W(1,0)}}function tc(e,t,n,o,u){var c=P();try{return va(e,t,n,o,u)}catch(h){if(D(c),h!==h+0)throw h;return W(1,0),0n}}function rc(e,t,n,o){var u=P();try{return Ea(e,t,n,o)}catch(c){if(D(u),c!==c+0)throw c;W(1,0)}}function nc(e,t,n,o){var u=P();try{return Sa(e,t,n,o)}catch(c){if(D(u),c!==c+0)throw c;W(1,0)}}function oc(e,t,n,o,u,c,h,m,y,x,N,F){var L=P();try{return xa(e,t,n,o,u,c,h,m,y,x,N,F)}catch(q){if(D(L),q!==q+0)throw q;W(1,0)}}function ac(e,t,n,o,u,c,h,m,y,x,N){var F=P();try{Aa(e,t,n,o,u,c,h,m,y,x,N)}catch(L){if(D(F),L!==L+0)throw L;W(1,0)}}function sc(e,t,n,o,u,c,h,m,y,x,N,F,L,q,he,de){var Qe=P();try{Ia(e,t,n,o,u,c,h,m,y,x,N,F,L,q,he,de)}catch(et){if(D(Qe),et!==et+0)throw et;W(1,0)}}function ic(e,t,n){var o=P();try{return ia(e,t,n)}catch(u){if(D(o),u!==u+0)throw u;return W(1,0),0n}}function uc(e,t,n){var o=P();try{return sa(e,t,n)}catch(u){if(D(o),u!==u+0)throw u;W(1,0)}}function fc(e,t,n){var o=P();try{return ua(e,t,n)}catch(u){if(D(o),u!==u+0)throw u;W(1,0)}}function cc(e,t,n,o){var u=P();try{fa(e,t,n,o)}catch(c){if(D(u),c!==c+0)throw c;W(1,0)}}function jt(){if(0{let t=new WeakMap,n,o,u=1;r.webgpuRegisterDevice=m=>{if(o!==void 0)throw Error("another WebGPU EP inference session is being created.");if(m){var y=t.get(m);if(!y){let x=((N,F=0)=>{var L=Po(F);return F=Do(F,L),fe[L>>>0]=N.queue,fe[F>>>0]=N,F})(m,y=Eo());y=[u++,y,x],t.set(m,y)}return n=m,o=y[0],y}n=void 0,o=0};let c=new Map;r.webgpuOnCreateSession=m=>{if(o!==void 0){var y=o;if(o=void 0,m){let x=Nr(y);c.set(m,x),y===0&&e(n??B(x))}n=void 0}},r.webgpuOnReleaseSession=m=>{c.delete(m)};let h=Symbol("gpuBufferMetadata");r.webgpuRegisterBuffer=(m,y,x)=>{if(x)return m[h]=[x,NaN],x;if(x=m[h])return x[1]++,x[0];if((y=c.get(y))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");return y=((N,F=0)=>(N.mapState==="unmapped"||we(),F=Co(F),fe[F>>>0]=N,F))(m,y),m[h]=[y,1],y},r.webgpuUnregisterBuffer=m=>{let y=m[h];if(!y)throw Error("Buffer is not registered");y[1]--,y[1]===0&&(So(y[0]),delete m[h])},r.webgpuGetBuffer=m=>B(m),r.webgpuCreateDownloader=(m,y,x)=>{if((x=c.get(x))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");let N=B(x),F=16*Math.ceil(Number(y)/16);return async()=>{let L=N.createBuffer({size:F,usage:9});try{let q=N.createCommandEncoder();return q.copyBufferToBuffer(m,0,L,0,F),N.queue.submit([q.finish()]),await L.mapAsync(GPUMapMode.READ),L.getMappedRange().slice(0,y)}finally{L.destroy()}}},r.pe=(m,y)=>{var x=y.buffer;let N=y.byteOffset,F=y.byteLength;if(y=16*Math.ceil(Number(F)/16),m=B(m),!n){var L=Nr(o);n=B(L)}let q=(L=n.createBuffer({mappedAtCreation:!0,size:y,usage:6})).getMappedRange();new Uint8Array(q).set(new Uint8Array(x,N,F)),L.unmap(),(x=n.createCommandEncoder()).copyBufferToBuffer(L,0,m,0,y),n.queue.submit([x.finish()]),L.destroy()}},r.webnnInit=e=>{let t=e[0];[r.Pe,r.qe,r.webnnEnsureTensor,r.re,r.webnnDownloadTensor,r.Oe,r.webnnEnableTraceEvent]=e.slice(1),r.webnnReleaseTensorId=r.qe,r.webnnUploadTensor=r.re,r.webnnRegisterMLContext=r.Oe,r.webnnOnRunStart=n=>t.onRunStart(n),r.webnnOnRunEnd=t.onRunEnd.bind(t),r.webnnOnReleaseSession=n=>{t.onReleaseSession(n)},r.webnnCreateMLTensorDownloader=(n,o)=>t.createMLTensorDownloader(n,o),r.webnnRegisterMLTensor=(n,o,u,c)=>t.registerMLTensor(n,o,u,c),r.webnnCreateMLContext=n=>t.createMLContext(n),r.webnnRegisterGraphInput=t.registerGraphInput.bind(t),r.webnnIsGraphInput=t.isGraphInput.bind(t),r.webnnRegisterGraphOutput=t.registerGraphOutput.bind(t),r.webnnIsGraphOutput=t.isGraphOutput.bind(t),r.webnnCreateTemporaryTensor=t.createTemporaryTensor.bind(t),r.webnnIsGraphInputOutputTypeSupported=t.isGraphInputOutputTypeSupported.bind(t)},ne?r:new Promise((e,t)=>{C=e,_=t})}var yc,wc,ms=G(()=>{"use strict";yc=ls,wc=globalThis.self?.name?.startsWith("em-pthread");wc&&ls()});var gs,an,Tc,ye,ys,on,vc,Ec,ws,Sc,hs,Ts,bs,vs,Zt=G(()=>{"use strict";Xt();gs=typeof location>"u"?void 0:location.origin,an=import.meta.url>"file:"&&import.meta.url<"file;",Tc=()=>{if(!!1){if(an){let a=URL;return new URL(new a("ort.webgpu.bundle.min.mjs",import.meta.url).href,gs).href}return import.meta.url}},ye=Tc(),ys=()=>{if(ye&&!ye.startsWith("blob:"))return ye.substring(0,ye.lastIndexOf("/")+1)},on=(a,r)=>{try{let s=r??ye;return(s?new URL(a,s):new URL(a)).origin===gs}catch{return!1}},vc=(a,r)=>{let s=r??ye;try{return(s?new URL(a,s):new URL(a)).href}catch{return}},Ec=(a,r)=>`${r??"./"}${a}`,ws=async a=>{let s=await(await fetch(a,{credentials:"same-origin"})).blob();return URL.createObjectURL(s)},Sc=async a=>(await import(/*webpackIgnore:true*/ /*@vite-ignore*/a)).default,hs=(ds(),Ht(cs)).default,Ts=async()=>{if(!ye)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(on(ye))return[void 0,hs()];let a=await ws(ye);return[a,hs(a)]},bs=(ms(),Ht(ps)).default,vs=async(a,r,s,f)=>{let i=bs&&!(a||r);if(i)if(ye)i=on(ye)||f&&!s;else if(f&&!s)i=!0;else throw new Error("cannot determine the script source URL.");if(i)return[void 0,bs];{let p="ort-wasm-simd-threaded.asyncify.mjs",l=a??vc(p,r),b=!!1&&s&&l&&!on(l,r),g=b?await ws(l):l??Ec(p,r);return[b?g:void 0,await Sc(g)]}}});var sn,un,sr,Es,xc,Ac,Ic,Kt,j,Ve=G(()=>{"use strict";Zt();un=!1,sr=!1,Es=!1,xc=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},Ac=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},Ic=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},Kt=async a=>{if(un)return Promise.resolve();if(sr)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Es)throw new Error("previous call to 'initializeWebAssembly()' failed.");sr=!0;let r=a.initTimeout,s=a.numThreads;if(a.simd!==!1){if(a.simd==="relaxed"){if(!Ic())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!Ac())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let f=xc();s>1&&!f&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+s+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),a.numThreads=s=1);let i=a.wasmPaths,p=typeof i=="string"?i:void 0,l=i?.mjs,b=l?.href??l,g=i?.wasm,w=g?.href??g,S=a.wasmBinary,[v,T]=await vs(b,p,s>1,!!S||!!w),A=!1,C=[];if(r>0&&C.push(new Promise(_=>{setTimeout(()=>{A=!0,_()},r)})),C.push(new Promise((_,k)=>{let U={numThreads:s};if(S)U.wasmBinary=S,U.locateFile=M=>M;else if(w||p)U.locateFile=M=>w??p+M;else if(b&&b.indexOf("blob:")!==0)U.locateFile=M=>new URL(M,b).href;else if(v){let M=ys();M&&(U.locateFile=Y=>M+Y)}T(U).then(M=>{sr=!1,un=!0,sn=M,_(),v&&URL.revokeObjectURL(v)},M=>{sr=!1,Es=!0,k(M)})})),await Promise.race(C),A)throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`)},j=()=>{if(un&&sn)return sn;throw new Error("WebAssembly is not initialized yet.")}});var be,Bt,V,ir=G(()=>{"use strict";Ve();be=(a,r)=>{let s=j(),f=s.lengthBytesUTF8(a)+1,i=s._malloc(f);return s.stringToUTF8(a,i,f),r.push(i),i},Bt=(a,r,s,f)=>{if(typeof a=="object"&&a!==null){if(s.has(a))throw new Error("Circular reference in options");s.add(a)}Object.entries(a).forEach(([i,p])=>{let l=r?r+i:i;if(typeof p=="object")Bt(p,l+".",s,f);else if(typeof p=="string"||typeof p=="number")f(l,p.toString());else if(typeof p=="boolean")f(l,p?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof p}`)})},V=a=>{let r=j(),s=r.stackSave();try{let f=r.PTR_SIZE,i=r.stackAlloc(2*f);r._OrtGetLastError(i,i+f);let p=Number(r.getValue(i,f===4?"i32":"i64")),l=r.getValue(i+f,"*"),b=l?r.UTF8ToString(l):"";throw new Error(`${a} ERROR_CODE: ${p}, ERROR_MESSAGE: ${b}`)}finally{r.stackRestore(s)}}});var Ss,xs=G(()=>{"use strict";Ve();ir();Ss=a=>{let r=j(),s=0,f=[],i=a||{};try{if(a?.logSeverityLevel===void 0)i.logSeverityLevel=2;else if(typeof a.logSeverityLevel!="number"||!Number.isInteger(a.logSeverityLevel)||a.logSeverityLevel<0||a.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${a.logSeverityLevel}`);if(a?.logVerbosityLevel===void 0)i.logVerbosityLevel=0;else if(typeof a.logVerbosityLevel!="number"||!Number.isInteger(a.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${a.logVerbosityLevel}`);a?.terminate===void 0&&(i.terminate=!1);let p=0;return a?.tag!==void 0&&(p=be(a.tag,f)),s=r._OrtCreateRunOptions(i.logSeverityLevel,i.logVerbosityLevel,!!i.terminate,p),s===0&&V("Can't create run options."),a?.extra!==void 0&&Bt(a.extra,"",new WeakSet,(l,b)=>{let g=be(l,f),w=be(b,f);r._OrtAddRunConfigEntry(s,g,w)!==0&&V(`Can't set a run config entry: ${l} - ${b}.`)}),[s,f]}catch(p){throw s!==0&&r._OrtReleaseRunOptions(s),f.forEach(l=>r._free(l)),p}}});var Lc,Bc,Oc,Ot,je,Mc,As,Is=G(()=>{"use strict";Ve();ir();Lc=a=>{switch(a){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"layout":return 3;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${a}`)}},Bc=a=>{switch(a){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${a}`)}},Oc=a=>{a.extra||(a.extra={}),a.extra.session||(a.extra.session={});let r=a.extra.session;r.use_ort_model_bytes_directly||(r.use_ort_model_bytes_directly="1"),a.executionProviders&&a.executionProviders.some(s=>(typeof s=="string"?s:s.name)==="webgpu")&&(a.enableMemPattern=!1)},Ot=(a,r,s,f)=>{let i=be(r,f),p=be(s,f);j()._OrtAddSessionConfigEntry(a,i,p)!==0&&V(`Can't set a session config entry: ${r} - ${s}.`)},je=(a,r,s,f)=>{let i=be(r,f),p=be(s,f);a.push([i,p])},Mc=async(a,r,s)=>{let f=r.executionProviders;for(let i of f){let p=typeof i=="string"?i:i.name,l=[];switch(p){case"webnn":if(p="WEBNN",Ot(a,"session.disable_quant_qdq","1",s),Ot(a,"session.disable_qdq_constant_folding","1",s),typeof i!="string"){let T=i?.deviceType;T&&Ot(a,"deviceType",T,s)}break;case"webgpu":{p="WebGPU";let v;if(typeof i!="string"){let A=i;if(A.device)if(typeof GPUDevice<"u"&&A.device instanceof GPUDevice)v=A.device;else throw new Error("Invalid GPU device set in WebGPU EP options.");let{enableGraphCapture:C}=r;if(typeof C=="boolean"&&C&&je(l,"enableGraphCapture","1",s),typeof A.preferredLayout=="string"&&je(l,"preferredLayout",A.preferredLayout,s),A.forceCpuNodeNames){let _=Array.isArray(A.forceCpuNodeNames)?A.forceCpuNodeNames:[A.forceCpuNodeNames];je(l,"forceCpuNodeNames",_.join(` +`),s)}A.validationMode&&je(l,"validationMode",A.validationMode,s);for(let _ of["storageBufferCacheMode","uniformBufferCacheMode","queryResolveBufferCacheMode","defaultBufferCacheMode"]){let k=A[_];if(k){if(k!=="disabled"&&k!=="lazyRelease"&&k!=="simple"&&k!=="bucket")throw new Error(`${_} must be one of 'disabled', 'lazyRelease', 'simple' or 'bucket': ${k}`);je(l,_,k,s)}}}let T=j().webgpuRegisterDevice(v);if(T){let[A,C,_]=T;je(l,"deviceId",A.toString(),s),je(l,"webgpuInstance",C.toString(),s),je(l,"webgpuDevice",_.toString(),s)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${p}`)}let b=be(p,s),g=l.length,w=0,S=0;if(g>0){w=j()._malloc(g*j().PTR_SIZE),s.push(w),S=j()._malloc(g*j().PTR_SIZE),s.push(S);for(let v=0;v{let r=j(),s=0,f=[],i=a||{};Oc(i);try{let p=Lc(i.graphOptimizationLevel??"all"),l=Bc(i.executionMode??"sequential"),b=typeof i.logId=="string"?be(i.logId,f):0,g=i.logSeverityLevel??2;if(!Number.isInteger(g)||g<0||g>4)throw new Error(`log severity level is not valid: ${g}`);let w=i.logVerbosityLevel??0;if(!Number.isInteger(w)||w<0||w>4)throw new Error(`log verbosity level is not valid: ${w}`);let S=typeof i.optimizedModelFilePath=="string"?be(i.optimizedModelFilePath,f):0;if(s=r._OrtCreateSessionOptions(p,!!i.enableCpuMemArena,!!i.enableMemPattern,l,!!i.enableProfiling,0,b,g,w,S),s===0&&V("Can't create session options."),i.executionProviders&&await Mc(s,i,f),i.enableGraphCapture!==void 0){if(typeof i.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${i.enableGraphCapture}`);Ot(s,"enableGraphCapture",i.enableGraphCapture.toString(),f)}if(i.freeDimensionOverrides)for(let[v,T]of Object.entries(i.freeDimensionOverrides)){if(typeof v!="string")throw new Error(`free dimension override name must be a string: ${v}`);if(typeof T!="number"||!Number.isInteger(T)||T<0)throw new Error(`free dimension override value must be a non-negative integer: ${T}`);let A=be(v,f);r._OrtAddFreeDimensionOverride(s,A,T)!==0&&V(`Can't set a free dimension override: ${v} - ${T}.`)}return i.extra!==void 0&&Bt(i.extra,"",new WeakSet,(v,T)=>{Ot(s,v,T,f)}),[s,f]}catch(p){throw s!==0&&r._OrtReleaseSessionOptions(s)!==0&&V("Can't release session options."),f.forEach(l=>r._free(l)),p}}});var He,ur,bt,it,Mt,fr,cr,fn,ut=G(()=>{"use strict";He=a=>{switch(a){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${a}`)}},ur=a=>{switch(a){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${a}`)}},bt=(a,r)=>{let s=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][a],f=typeof r=="number"?r:r.reduce((i,p)=>i*p,1);return s>0?Math.ceil(f*s):void 0},it=a=>{switch(a){case"float16":return typeof Float16Array<"u"?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${a}`)}},Mt=a=>{switch(a){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${a}`)}},fr=a=>a==="float32"||a==="float16"||a==="int32"||a==="int64"||a==="uint32"||a==="uint8"||a==="bool"||a==="uint4"||a==="int4",cr=a=>a==="float32"||a==="float16"||a==="int32"||a==="int64"||a==="uint32"||a==="uint64"||a==="int8"||a==="uint8"||a==="bool"||a==="uint4"||a==="int4",fn=a=>{switch(a){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${a}`)}}});var Ct,cn=G(()=>{"use strict";Xt();Ct=async a=>{if(typeof a=="string")if(!1)try{let{readFile:r}=Xr("node:fs/promises");return new Uint8Array(await r(a))}catch(r){if(r.code==="ERR_FS_FILE_TOO_LARGE"){let{createReadStream:s}=Xr("node:fs"),f=s(a),i=[];for await(let p of f)i.push(p);return new Uint8Array(Buffer.concat(i))}throw r}else{let r=await fetch(a);if(!r.ok)throw new Error(`failed to load external data file: ${a}`);let s=r.headers.get("Content-Length"),f=s?parseInt(s,10):0;if(f<1073741824)return new Uint8Array(await r.arrayBuffer());{if(!r.body)throw new Error(`failed to load external data file: ${a}, no response body.`);let i=r.body.getReader(),p;try{p=new ArrayBuffer(f)}catch(b){if(b instanceof RangeError){let g=Math.ceil(f/65536);p=new WebAssembly.Memory({initial:g,maximum:g}).buffer}else throw b}let l=0;for(;;){let{done:b,value:g}=await i.read();if(b)break;let w=g.byteLength;new Uint8Array(p,l,w).set(g),l+=w}return new Uint8Array(p,0,f)}}else return a instanceof Blob?new Uint8Array(await a.arrayBuffer()):a instanceof Uint8Array?a:new Uint8Array(a)}});var Ls,Bs=G(()=>{"use strict";ut();Ls=(a,r)=>new(it(r))(a)});var Cc,Dc,Os,Ms,Cs,Pc,le,dn=G(()=>{"use strict";ut();Cc=["V","I","W","E","F"],Dc=(a,r)=>{console.log(`[${Cc[a]},${new Date().toISOString()}]${r}`)},Cs=(a,r)=>{Os=a,Ms=r},Pc=(a,r)=>{let s=Mt(a),f=Mt(Os);s>=f&&Dc(s,typeof r=="function"?r():r)},le=(...a)=>{Ms&&Pc(...a)}});var Ps,Uc,Us,_c,Ds,Rc,_s,dr,lr,ln,Rs,Ns=G(()=>{"use strict";ut();dn();Ps=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),Uc=(a,r)=>{if(r==="int32")return a;let s=Ps.get(r);if(!s)throw new Error(`WebNN backend does not support data type: ${r}`);let f=s/8;if(a.byteLength%f!==0)throw new Error(`Invalid Uint8Array length - must be a multiple of ${f}.`);let i=a.byteLength/f,p=new(it(r))(a.buffer,a.byteOffset,i);switch(r){case"int64":case"uint64":{let l=new Int32Array(i);for(let b=0;b2147483647n||g<-2147483648n)throw new Error("Can not convert int64 data to int32 - value out of range.");l[b]=Number(g)}return new Uint8Array(l.buffer)}case"int8":case"uint8":case"uint32":{if(r==="uint32"&&p.some(b=>b>2147483647))throw new Error("Can not convert uint32 data to int32 - value out of range.");let l=Int32Array.from(p,Number);return new Uint8Array(l.buffer)}default:throw new Error(`Unsupported data conversion from ${r} to 'int32'`)}},Us=(a,r)=>{if(r==="int32")return a;if(a.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (int32).");let s=a.byteLength/4,f=new Int32Array(a.buffer,a.byteOffset,s);switch(r){case"int64":{let i=BigInt64Array.from(f,BigInt);return new Uint8Array(i.buffer)}case"uint64":{if(f.some(p=>p<0))throw new Error("Can not convert int32 data to uin64 - negative value found.");let i=BigUint64Array.from(f,BigInt);return new Uint8Array(i.buffer)}case"int8":{if(f.some(p=>p<-128||p>127))throw new Error("Can not convert int32 data to int8 - value out of range.");let i=Int8Array.from(f,Number);return new Uint8Array(i.buffer)}case"uint8":{if(f.some(i=>i<0||i>255))throw new Error("Can not convert int32 data to uint8 - value out of range.");return Uint8Array.from(f,Number)}case"uint32":{if(f.some(p=>p<0))throw new Error("Can not convert int32 data to uint32 - negative value found.");let i=Uint32Array.from(f,Number);return new Uint8Array(i.buffer)}default:throw new Error(`Unsupported data conversion from 'int32' to ${r}`)}},_c=1,Ds=()=>_c++,Rc=new Map([["int8","int32"],["uint8","int32"],["uint32","int32"],["int64","int32"]]),_s=(a,r)=>{let s=Ps.get(a);if(!s)throw new Error(`WebNN backend does not support data type: ${a}`);return r.length>0?Math.ceil(r.reduce((f,i)=>f*i)*s/8):0},dr=class{constructor(r){this.isDataConverted=!1;let{sessionId:s,context:f,tensor:i,dataType:p,shape:l,fallbackDataType:b}=r;this.sessionId=s,this.mlContext=f,this.mlTensor=i,this.dataType=p,this.tensorShape=l,this.fallbackDataType=b}get tensor(){return this.mlTensor}get type(){return this.dataType}get fallbackType(){return this.fallbackDataType}get shape(){return this.tensorShape}get byteLength(){return _s(this.dataType,this.tensorShape)}destroy(){le("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(r){this.mlContext.writeTensor(this.mlTensor,r)}async read(r){if(this.fallbackDataType){let s=await this.mlContext.readTensor(this.mlTensor),f=Us(new Uint8Array(s),this.dataType);if(r){(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength)).set(f);return}else return new Uint8Array(f).buffer}else return r?this.mlContext.readTensor(this.mlTensor,r):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(r,s,f){return this.mlContext===r&&this.dataType===s&&this.tensorShape.length===f.length&&this.tensorShape.every((i,p)=>i===f[p])}setIsDataConverted(r){this.isDataConverted=r}},lr=class{constructor(r,s){this.tensorManager=r;this.wrapper=s}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(r,s,f,i){let p=this.tensorManager.getMLContext(r),l=this.tensorManager.getMLOpSupportLimits(r),b;if(!l?.input.dataTypes.includes(s)){if(b=Rc.get(s),!b||!l?.input.dataTypes.includes(b))throw new Error(`WebNN backend does not support data type: ${s}`);le("verbose",()=>`[WebNN] TensorIdTracker.ensureTensor: fallback dataType from ${s} to ${b}`)}if(this.wrapper){if(this.wrapper.canReuseTensor(p,s,f))return this.wrapper.tensor;if(i){if(this.wrapper.byteLength!==_s(s,f))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let g=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(r,s,f,g,!0,!0,b),i&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(r){let s=r;if(this.wrapper){if(this.wrapper.fallbackType)if(this.wrapper.fallbackType==="int32")s=Uc(r,this.wrapper.type),this.wrapper.setIsDataConverted(!0);else throw new Error(`Unsupported fallback data type: ${this.wrapper.fallbackType}`);if(r.byteLength===this.wrapper.byteLength){this.wrapper.write(s);return}else le("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor()}this.activeUpload?this.activeUpload.set(s):this.activeUpload=new Uint8Array(s)}async download(r){if(this.activeUpload){let s=this.wrapper?.isDataConverted?Us(this.activeUpload,this.wrapper?.type):this.activeUpload;if(r){r instanceof ArrayBuffer?new Uint8Array(r).set(s):new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(s);return}else return s.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return r?this.wrapper.read(r):this.wrapper.read()}},ln=class{constructor(r){this.backend=r;this.tensorTrackersById=new Map;this.freeTensors=[];this.externalTensors=new Set}getMLContext(r){let s=this.backend.getMLContext(r);if(!s)throw new Error("MLContext not found for session.");return s}getMLOpSupportLimits(r){return this.backend.getMLOpSupportLimits(r)}reserveTensorId(){let r=Ds();return this.tensorTrackersById.set(r,new lr(this)),r}releaseTensorId(r){let s=this.tensorTrackersById.get(r);s&&(this.tensorTrackersById.delete(r),s.tensorWrapper&&this.releaseTensor(s.tensorWrapper))}async ensureTensor(r,s,f,i,p){le("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${s}, dataType: ${f}, shape: ${i}, copyOld: ${p}}`);let l=this.tensorTrackersById.get(s);if(!l)throw new Error("Tensor not found.");return l.ensureTensor(r,f,i,p)}upload(r,s){let f=this.tensorTrackersById.get(r);if(!f)throw new Error("Tensor not found.");f.upload(s)}async download(r,s){le("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${r}, dstBuffer: ${s?.byteLength}}`);let f=this.tensorTrackersById.get(r);if(!f)throw new Error("Tensor not found.");return f.download(s)}releaseTensorsForSession(r){for(let s of this.freeTensors)s.sessionId===r&&s.destroy();this.freeTensors=this.freeTensors.filter(s=>s.sessionId!==r)}registerTensor(r,s,f,i){let p=this.getMLContext(r),l=Ds(),b=new dr({sessionId:r,context:p,tensor:s,dataType:f,shape:i});return this.tensorTrackersById.set(l,new lr(this,b)),this.externalTensors.add(b),l}async getCachedTensor(r,s,f,i,p,l,b){let g=this.getMLContext(r);for(let[S,v]of this.freeTensors.entries())if(v.canReuseTensor(g,s,f)){le("verbose",()=>`[WebNN] Reusing tensor {dataType: ${s}, ${b?`fallbackDataType: ${b},`:""} shape: ${f}`);let T=this.freeTensors.splice(S,1)[0];return T.sessionId=r,T}le("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${s}, ${b?`fallbackDataType: ${b},`:""} shape: ${f}}`);let w=await g.createTensor({dataType:b??s,shape:f,dimensions:f,usage:i,writable:p,readable:l});return new dr({sessionId:r,context:g,tensor:w,dataType:s,shape:f,fallbackDataType:b})}releaseTensor(r){this.externalTensors.has(r)&&this.externalTensors.delete(r),this.freeTensors.push(r)}},Rs=(...a)=>new ln(...a)});var Ws={};At(Ws,{WebNNBackend:()=>pn});var pr,Nc,pn,ks=G(()=>{"use strict";ut();Ve();Bs();Ns();dn();pr=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),Nc=(a,r)=>{if(a===r)return!0;if(a===void 0||r===void 0)return!1;let s=Object.keys(a).sort(),f=Object.keys(r).sort();return s.length===f.length&&s.every((i,p)=>i===f[p]&&a[i]===r[i])},pn=class{constructor(r){this.tensorManager=Rs(this);this.mlContextBySessionId=new Map;this.sessionIdsByMLContext=new Map;this.mlContextCache=[];this.sessionGraphInputs=new Map;this.sessionGraphOutputs=new Map;this.temporaryGraphInputs=[];this.temporaryGraphOutputs=[];this.temporarySessionTensorIds=new Map;this.mlOpSupportLimitsBySessionId=new Map;Cs(r.logLevel,!!r.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(r){le("verbose",()=>`[WebNN] onRunStart {sessionId: ${r}}`),this.activeSessionId=r}onRunEnd(r){le("verbose",()=>`[WebNN] onRunEnd {sessionId: ${r}}`);let s=this.temporarySessionTensorIds.get(r);if(s){for(let f of s)le("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${f}}`),this.tensorManager.releaseTensorId(f);this.temporarySessionTensorIds.delete(r),this.activeSessionId=void 0}}async createMLContext(r){if(r instanceof GPUDevice){let f=this.mlContextCache.findIndex(i=>i.gpuDevice===r);if(f!==-1)return this.mlContextCache[f].mlContext;{let i=await navigator.ml.createContext(r);return this.mlContextCache.push({gpuDevice:r,mlContext:i}),i}}else if(r===void 0){let f=this.mlContextCache.findIndex(i=>i.options===void 0&&i.gpuDevice===void 0);if(f!==-1)return this.mlContextCache[f].mlContext;{let i=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:i}),i}}let s=this.mlContextCache.findIndex(f=>Nc(f.options,r));if(s!==-1)return this.mlContextCache[s].mlContext;{let f=await navigator.ml.createContext(r);return this.mlContextCache.push({options:r,mlContext:f}),f}}registerMLContext(r,s){this.mlContextBySessionId.set(r,s);let f=this.sessionIdsByMLContext.get(s);f||(f=new Set,this.sessionIdsByMLContext.set(s,f)),f.add(r),this.mlOpSupportLimitsBySessionId.has(r)||this.mlOpSupportLimitsBySessionId.set(r,s.opSupportLimits()),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(r,this.temporaryGraphInputs),this.temporaryGraphInputs=[]),this.temporaryGraphOutputs.length>0&&(this.sessionGraphOutputs.set(r,this.temporaryGraphOutputs),this.temporaryGraphOutputs=[])}onReleaseSession(r){this.sessionGraphInputs.delete(r),this.sessionGraphOutputs.delete(r);let s=this.mlContextBySessionId.get(r);if(!s)return;this.tensorManager.releaseTensorsForSession(r),this.mlContextBySessionId.delete(r),this.mlOpSupportLimitsBySessionId.delete(r);let f=this.sessionIdsByMLContext.get(s);if(f.delete(r),f.size===0){this.sessionIdsByMLContext.delete(s);let i=this.mlContextCache.findIndex(p=>p.mlContext===s);i!==-1&&this.mlContextCache.splice(i,1)}}getMLContext(r){return this.mlContextBySessionId.get(r)}getMLOpSupportLimits(r){return this.mlOpSupportLimitsBySessionId.get(r)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(r){le("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${r}}`),this.tensorManager.releaseTensorId(r)}async ensureTensor(r,s,f,i,p){let l=pr.get(f);if(!l)throw new Error(`Unsupported ONNX data type: ${f}`);return this.tensorManager.ensureTensor(r??this.currentSessionId,s,l,i,p)}async createTemporaryTensor(r,s,f){le("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${s}, shape: ${f}}`);let i=pr.get(s);if(!i)throw new Error(`Unsupported ONNX data type: ${s}`);let p=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(r,p,i,f,!1);let l=this.temporarySessionTensorIds.get(r);return l?l.push(p):this.temporarySessionTensorIds.set(r,[p]),p}uploadTensor(r,s){if(!j().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");le("verbose",()=>`[WebNN] uploadTensor {tensorId: ${r}, data: ${s.byteLength}}`),this.tensorManager.upload(r,s)}async downloadTensor(r,s){return this.tensorManager.download(r,s)}createMLTensorDownloader(r,s){return async()=>{let f=await this.tensorManager.download(r);return Ls(f,s)}}registerMLTensor(r,s,f,i){let p=pr.get(f);if(!p)throw new Error(`Unsupported ONNX data type: ${f}`);let l=this.tensorManager.registerTensor(r,s,p,i);return le("verbose",()=>`[WebNN] registerMLTensor {tensor: ${s}, dataType: ${p}, dimensions: ${i}} -> {tensorId: ${l}}`),l}registerGraphInput(r){this.temporaryGraphInputs.push(r)}registerGraphOutput(r){this.temporaryGraphOutputs.push(r)}isGraphInput(r,s){let f=this.sessionGraphInputs.get(r);return f?f.includes(s):!1}isGraphOutput(r,s){let f=this.sessionGraphOutputs.get(r);return f?f.includes(s):!1}isGraphInputOutputTypeSupported(r,s,f=!0){let i=pr.get(He(s)),p=this.mlOpSupportLimitsBySessionId.get(r);return typeof i>"u"?!1:f?!!p?.input.dataTypes.includes(i):!!p?.output.dataTypes.includes(i)}flush(){}}});var Wc,Qt,er,ft,kc,Fs,Lt,tr,rr,Gs,nr,or,ar,nn=G(()=>{"use strict";ze();xs();Is();ut();Ve();ir();cn();Wc=(a,r)=>{j()._OrtInit(a,r)!==0&&V("Can't initialize onnxruntime.")},Qt=async a=>{Wc(a.wasm.numThreads,Mt(a.logLevel))},er=async(a,r)=>{j().asyncInit?.();let s=a.webgpu.adapter;if(r==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");if(s){if(typeof s.limits!="object"||typeof s.features!="object"||typeof s.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let f=a.webgpu.powerPreference;if(f!==void 0&&f!=="low-power"&&f!=="high-performance")throw new Error(`Invalid powerPreference setting: "${f}"`);let i=a.webgpu.forceFallbackAdapter;if(i!==void 0&&typeof i!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${i}"`);if(s=await navigator.gpu.requestAdapter({powerPreference:f,forceFallbackAdapter:i}),!s)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}}if(r==="webnn"&&(typeof navigator>"u"||!navigator.ml))throw new Error("WebNN is not supported in current environment");if(r==="webgpu"&&j().webgpuInit(f=>{a.webgpu.device=f}),r==="webnn"){let f=new(ks(),Ht(Ws)).WebNNBackend(a);j().webnnInit([f,()=>f.reserveTensorId(),i=>f.releaseTensorId(i),async(i,p,l,b,g)=>f.ensureTensor(i,p,l,b,g),(i,p)=>{f.uploadTensor(i,p)},async(i,p)=>f.downloadTensor(i,p),(i,p)=>f.registerMLContext(i,p),!!a.trace])}},ft=new Map,kc=a=>{let r=j(),s=r.stackSave();try{let f=r.PTR_SIZE,i=r.stackAlloc(2*f);r._OrtGetInputOutputCount(a,i,i+f)!==0&&V("Can't get session input/output count.");let l=f===4?"i32":"i64";return[Number(r.getValue(i,l)),Number(r.getValue(i+f,l))]}finally{r.stackRestore(s)}},Fs=(a,r)=>{let s=j(),f=s.stackSave(),i=0;try{let p=s.PTR_SIZE,l=s.stackAlloc(2*p);s._OrtGetInputOutputMetadata(a,r,l,l+p)!==0&&V("Can't get session input/output metadata.");let g=Number(s.getValue(l,"*"));i=Number(s.getValue(l+p,"*"));let w=s.HEAP32[i/4];if(w===0)return[g,0];let S=s.HEAPU32[i/4+1],v=[];for(let T=0;T{let r=j(),s=r._malloc(a.byteLength);if(s===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${a.byteLength}.`);return r.HEAPU8.set(a,s),[s,a.byteLength]},tr=async(a,r)=>{let s,f,i=j();Array.isArray(a)?[s,f]=a:a.buffer===i.HEAPU8.buffer?[s,f]=[a.byteOffset,a.byteLength]:[s,f]=Lt(a);let p=0,l=0,b=0,g=[],w=[],S=[];try{if([l,g]=await As(r),r?.externalData&&i.mountExternalData){let O=[];for(let $ of r.externalData){let oe=typeof $=="string"?$:$.path,d=typeof $=="string"?$:$.data;O.push(Ct(d).then(te=>{i.mountExternalData(oe,te)}))}await Promise.all(O)}for(let O of r?.executionProviders??[])if((typeof O=="string"?O:O.name)==="webnn"){if(i.shouldTransferToMLTensor=!1,typeof O!="string"){let oe=O,d=oe?.context,te=oe?.gpuDevice,Z=oe?.deviceType,X=oe?.powerPreference;d?i.currentContext=d:te?i.currentContext=await i.webnnCreateMLContext(te):i.currentContext=await i.webnnCreateMLContext({deviceType:Z,powerPreference:X})}else i.currentContext=await i.webnnCreateMLContext();break}p=await i._OrtCreateSession(s,f,l),i.webgpuOnCreateSession?.(p),p===0&&V("Can't create a session."),i.jsepOnCreateSession?.(),i.currentContext&&(i.webnnRegisterMLContext(p,i.currentContext),i.currentContext=void 0,i.shouldTransferToMLTensor=!0);let[v,T]=kc(p),A=!!r?.enableGraphCapture,C=[],_=[],k=[],U=[],M=[];for(let O=0;OO==="gpu-buffer"||O==="ml-tensor"||O==="ml-tensor-cpu-output")&&(b=i._OrtCreateBinding(p),b===0&&V("Can't create IO binding."),Y={handle:b,outputPreferredLocations:M,outputPreferredLocationsEncoded:M.map(O=>O==="ml-tensor-cpu-output"?"ml-tensor":O).map(O=>fn(O))}),ft.set(p,[p,w,S,Y,A,!1]),[p,C,_,k,U]}catch(v){throw w.forEach(T=>i._OrtFree(T)),S.forEach(T=>i._OrtFree(T)),b!==0&&i._OrtReleaseBinding(b)!==0&&V("Can't release IO binding."),p!==0&&i._OrtReleaseSession(p)!==0&&V("Can't release session."),v}finally{i._free(s),l!==0&&i._OrtReleaseSessionOptions(l)!==0&&V("Can't release session options."),g.forEach(v=>i._free(v)),i.unmountExternalData?.()}},rr=a=>{let r=j(),s=ft.get(a);if(!s)throw new Error(`cannot release session. invalid session id: ${a}`);let[f,i,p,l,b]=s;l&&(b&&r._OrtClearBoundOutputs(l.handle)!==0&&V("Can't clear bound outputs."),r._OrtReleaseBinding(l.handle)!==0&&V("Can't release IO binding.")),r.jsepOnReleaseSession?.(a),r.webnnOnReleaseSession?.(a),r.webgpuOnReleaseSession?.(a),i.forEach(g=>r._OrtFree(g)),p.forEach(g=>r._OrtFree(g)),r._OrtReleaseSession(f)!==0&&V("Can't release session."),ft.delete(a)},Gs=async(a,r,s,f,i,p,l=!1)=>{if(!a){r.push(0);return}let b=j(),g=b.PTR_SIZE,w=a[0],S=a[1],v=a[3],T=v,A,C;if(w==="string"&&(v==="gpu-buffer"||v==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(l&&v!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${p} when enableGraphCapture is true.`);if(v==="gpu-buffer"){let U=a[2].gpuBuffer;C=bt(He(w),S);{let M=b.webgpuRegisterBuffer;if(!M)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');A=M(U,f)}}else if(v==="ml-tensor"){let U=a[2].mlTensor;C=bt(He(w),S);let M=b.webnnRegisterMLTensor;if(!M)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');A=M(f,U,He(w),S)}else{let U=a[2];if(Array.isArray(U)){C=g*U.length,A=b._malloc(C),s.push(A);for(let M=0;Mb.setValue(k+Y*g,M,g===4?"i32":"i64"));let U=b._OrtCreateTensor(He(w),A,C,k,S.length,fn(T));U===0&&V(`Can't create tensor for input/output. session=${f}, index=${p}.`),r.push(U)}finally{b.stackRestore(_)}},nr=async(a,r,s,f,i,p)=>{let l=j(),b=l.PTR_SIZE,g=ft.get(a);if(!g)throw new Error(`cannot run inference. invalid session id: ${a}`);let w=g[0],S=g[1],v=g[2],T=g[3],A=g[4],C=g[5],_=r.length,k=f.length,U=0,M=[],Y=[],O=[],$=[],oe=[],d=l.stackSave(),te=l.stackAlloc(_*b),Z=l.stackAlloc(_*b),X=l.stackAlloc(k*b),De=l.stackAlloc(k*b);try{[U,M]=Ss(p),Ge("wasm prepareInputOutputTensor");for(let R=0;R<_;R++)await Gs(s[R],Y,$,a,S[r[R]],r[R],A);for(let R=0;Rre*Q,1);ne=ur(qe);let Be=T?.outputPreferredLocations[f[R]];if(ne==="string"){if(Be==="gpu-buffer"||Be==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let re=[];for(let Q=0;Q0){let re=l.webgpuGetBuffer;if(!re)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let Q=re(se),z=bt(qe,xe);if(z===void 0||!fr(ne))throw new Error(`Unsupported data type: ${ne}`);ge=!0;{l.webgpuRegisterBuffer(Q,a,se);let H=l.webgpuCreateDownloader(Q,z,a);I.push([ne,Se,{gpuBuffer:Q,download:async()=>{let Ye=await H();return new(it(ne))(Ye)},dispose:()=>{l._OrtReleaseTensor(ae)!==0&&V("Can't release tensor.")}},"gpu-buffer"])}}else if(Be==="ml-tensor"&&xe>0){let re=l.webnnEnsureTensor,Q=l.webnnIsGraphInputOutputTypeSupported;if(!re||!Q)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(bt(qe,xe)===void 0||!cr(ne))throw new Error(`Unsupported data type: ${ne}`);if(!Q(a,ne,!1))throw new Error(`preferredLocation "ml-tensor" for ${ne} output is not supported by current WebNN Context.`);let H=await re(a,se,qe,Se,!1);ge=!0,I.push([ne,Se,{mlTensor:H,download:l.webnnCreateMLTensorDownloader(se,ne),dispose:()=>{l.webnnReleaseTensorId(se),l._OrtReleaseTensor(ae)}},"ml-tensor"])}else if(Be==="ml-tensor-cpu-output"&&xe>0){let re=l.webnnCreateMLTensorDownloader(se,ne)(),Q=I.length;ge=!0,E.push((async()=>{let z=[Q,await re];return l.webnnReleaseTensorId(se),l._OrtReleaseTensor(ae),z})()),I.push([ne,Se,[],"cpu"])}else{let re=it(ne),Q=new re(xe);new Uint8Array(Q.buffer,Q.byteOffset,Q.byteLength).set(l.HEAPU8.subarray(se,se+Q.byteLength)),I.push([ne,Se,Q,"cpu"])}}finally{l.stackRestore(pe),ne==="string"&&se&&l._free(se),ge||l._OrtReleaseTensor(ae)}}T&&!A&&(l._OrtClearBoundOutputs(T.handle)!==0&&V("Can't clear bound outputs."),ft.set(a,[w,S,v,T,A,!1]));for(let[R,ae]of await Promise.all(E))I[R][2]=ae;return $e("wasm ProcessOutputTensor"),I}finally{l.webnnOnRunEnd?.(w),l.stackRestore(d),s.forEach(K=>{K&&K[3]==="gpu-buffer"&&l.webgpuUnregisterBuffer(K[2].gpuBuffer)}),i.forEach(K=>{K&&K[3]==="gpu-buffer"&&l.webgpuUnregisterBuffer(K[2].gpuBuffer)}),Y.forEach(K=>l._OrtReleaseTensor(K)),O.forEach(K=>l._OrtReleaseTensor(K)),$.forEach(K=>l._free(K)),U!==0&&l._OrtReleaseRunOptions(U),M.forEach(K=>l._free(K))}},or=a=>{let r=j(),s=ft.get(a);if(!s)throw new Error("invalid session id");let f=s[0],i=r._OrtEndProfiling(f);i===0&&V("Can't get an profile file name."),r._OrtFree(i)},ar=a=>{let r=[];for(let s of a){let f=s[2];!Array.isArray(f)&&"buffer"in f&&r.push(f.buffer)}return r}});var ct,Ee,Dt,hr,br,mr,mn,hn,gt,yt,Gc,$s,zs,Vs,js,Hs,qs,Ys,bn=G(()=>{"use strict";ze();nn();Ve();Zt();ct=()=>!!ee.wasm.proxy&&typeof document<"u",Dt=!1,hr=!1,br=!1,hn=new Map,gt=(a,r)=>{let s=hn.get(a);s?s.push(r):hn.set(a,[r])},yt=()=>{if(Dt||!hr||br||!Ee)throw new Error("worker not ready")},Gc=a=>{switch(a.data.type){case"init-wasm":Dt=!1,a.data.err?(br=!0,mn[1](a.data.err)):(hr=!0,mn[0]()),mr&&(URL.revokeObjectURL(mr),mr=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let r=hn.get(a.data.type);a.data.err?r.shift()[1](a.data.err):r.shift()[0](a.data.out);break}default:}},$s=async()=>{if(!hr){if(Dt)throw new Error("multiple calls to 'initWasm()' detected.");if(br)throw new Error("previous call to 'initWasm()' failed.");if(Dt=!0,ct())return new Promise((a,r)=>{Ee?.terminate(),Ts().then(([s,f])=>{try{Ee=f,Ee.onerror=p=>r(p),Ee.onmessage=Gc,mn=[a,r];let i={type:"init-wasm",in:ee};!i.in.wasm.wasmPaths&&(s||an)&&(i.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.asyncify.wasm",import.meta.url).href}),Ee.postMessage(i),mr=s}catch(i){r(i)}},r)});try{await Kt(ee.wasm),await Qt(ee),hr=!0}catch(a){throw br=!0,a}finally{Dt=!1}}},zs=async a=>{if(ct())return yt(),new Promise((r,s)=>{gt("init-ep",[r,s]);let f={type:"init-ep",in:{epName:a,env:ee}};Ee.postMessage(f)});await er(ee,a)},Vs=async a=>ct()?(yt(),new Promise((r,s)=>{gt("copy-from",[r,s]);let f={type:"copy-from",in:{buffer:a}};Ee.postMessage(f,[a.buffer])})):Lt(a),js=async(a,r)=>{if(ct()){if(r?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return yt(),new Promise((s,f)=>{gt("create",[s,f]);let i={type:"create",in:{model:a,options:{...r}}},p=[];a instanceof Uint8Array&&p.push(a.buffer),Ee.postMessage(i,p)})}else return tr(a,r)},Hs=async a=>{if(ct())return yt(),new Promise((r,s)=>{gt("release",[r,s]);let f={type:"release",in:a};Ee.postMessage(f)});rr(a)},qs=async(a,r,s,f,i,p)=>{if(ct()){if(s.some(l=>l[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(i.some(l=>l))throw new Error("pre-allocated output tensor is not supported for proxy.");return yt(),new Promise((l,b)=>{gt("run",[l,b]);let g=s,w={type:"run",in:{sessionId:a,inputIndices:r,inputs:g,outputIndices:f,options:p}};Ee.postMessage(w,ar(g))})}else return nr(a,r,s,f,i,p)},Ys=async a=>{if(ct())return yt(),new Promise((r,s)=>{gt("end-profiling",[r,s]);let f={type:"end-profiling",in:a};Ee.postMessage(f)});or(a)}});var Js,$c,gr,Xs=G(()=>{"use strict";ze();bn();ut();Xt();cn();Js=(a,r)=>{switch(a.location){case"cpu":return[a.type,a.dims,a.data,"cpu"];case"gpu-buffer":return[a.type,a.dims,{gpuBuffer:a.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[a.type,a.dims,{mlTensor:a.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${a.location} for ${r()}`)}},$c=a=>{switch(a[3]){case"cpu":return new Le(a[0],a[2],a[1]);case"gpu-buffer":{let r=a[0];if(!fr(r))throw new Error(`not supported data type: ${r} for deserializing GPU tensor`);let{gpuBuffer:s,download:f,dispose:i}=a[2];return Le.fromGpuBuffer(s,{dataType:r,dims:a[1],download:f,dispose:i})}case"ml-tensor":{let r=a[0];if(!cr(r))throw new Error(`not supported data type: ${r} for deserializing MLTensor tensor`);let{mlTensor:s,download:f,dispose:i}=a[2];return Le.fromMLTensor(s,{dataType:r,dims:a[1],download:f,dispose:i})}default:throw new Error(`invalid data location: ${a[3]}`)}},gr=class{async fetchModelAndCopyToWasmMemory(r){return Vs(await Ct(r))}async loadModel(r,s){ot();let f;typeof r=="string"?f=await this.fetchModelAndCopyToWasmMemory(r):f=r,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await js(f,s),at()}async dispose(){return Hs(this.sessionId)}async run(r,s,f){ot();let i=[],p=[];Object.entries(r).forEach(T=>{let A=T[0],C=T[1],_=this.inputNames.indexOf(A);if(_===-1)throw new Error(`invalid input '${A}'`);i.push(C),p.push(_)});let l=[],b=[];Object.entries(s).forEach(T=>{let A=T[0],C=T[1],_=this.outputNames.indexOf(A);if(_===-1)throw new Error(`invalid output '${A}'`);l.push(C),b.push(_)});let g=i.map((T,A)=>Js(T,()=>`input "${this.inputNames[p[A]]}"`)),w=l.map((T,A)=>T?Js(T,()=>`output "${this.outputNames[b[A]]}"`):null),S=await qs(this.sessionId,p,g,b,w,f),v={};for(let T=0;Tyr,initializeFlags:()=>Zs,wasmBackend:()=>zc});var Zs,yr,zc,Qs=G(()=>{"use strict";ze();bn();Xs();Zs=()=>{(typeof ee.wasm.initTimeout!="number"||ee.wasm.initTimeout<0)&&(ee.wasm.initTimeout=0);let a=ee.wasm.simd;if(typeof a!="boolean"&&a!==void 0&&a!=="fixed"&&a!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${a}". Reset it to \`false\` and ignore SIMD feature checking.`),ee.wasm.simd=!1),typeof ee.wasm.proxy!="boolean"&&(ee.wasm.proxy=!1),typeof ee.wasm.trace!="boolean"&&(ee.wasm.trace=!1),typeof ee.wasm.numThreads!="number"||!Number.isInteger(ee.wasm.numThreads)||ee.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)ee.wasm.numThreads=1;else{let r=typeof navigator>"u"?Xr("node:os").cpus().length:navigator.hardwareConcurrency;ee.wasm.numThreads=Math.min(4,Math.ceil((r||1)/2))}},yr=class{async init(r){Zs(),await $s(),await zs(r)}async createInferenceSessionHandler(r,s){let f=new gr;return await f.loadModel(r,s),f}},zc=new yr});ze();ze();ze();var is="1.30.0";var $l=rn;{let a=(Qs(),Ht(Ks)).wasmBackend;rt("webgpu",a,5),rt("webnn",a,5),rt("cpu",a,10),rt("wasm",a,10)}Object.defineProperty(ee.versions,"web",{value:is,enumerable:!0});export{bc as InferenceSession,Qa as TRACE,Ge as TRACE_EVENT_BEGIN,$e as TRACE_EVENT_END,ot as TRACE_FUNC_BEGIN,at as TRACE_FUNC_END,Le as Tensor,$l as default,ee as env,rt as registerBackend}; +//# sourceMappingURL=ort.webgpu.bundle.min.mjs.map