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