1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4451],{15893:(e,t,r)=>{e.exports=r.p+"static/media/ort.webgpu.bundle.min.097419f3.mjs"},24451:(e,t,r)=>{let n;r.r(t),r.d(t,{InferenceSession:()=>k,TRACE:()=>B,TRACE_EVENT_BEGIN:()=>P,TRACE_EVENT_END:()=>$,TRACE_FUNC_BEGIN:()=>L,TRACE_FUNC_END:()=>R,Tensor:()=>U,default:()=>t7,env:()=>d,registerBackend:()=>s});var o,i,s,u,f,l,c,p,d,h,m,g,y,w,b,v,T,E,x,A,C,O,I,S,U,B,M,L,R,P,$,N,k,_=Object.defineProperty,D=Object.getOwnPropertyDescriptor,G=Object.getOwnPropertyNames,W=Object.prototype.hasOwnProperty,F=(n=function(e){if("u">typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')},"u">typeof require?require:"u">typeof Proxy?new Proxy(n,{get:(e,t)=>("u">typeof require?require:e)[t]}):n),V=(e,t)=>()=>(e&&(t=e(e=0)),t),z=(e,t)=>{for(var r in t)_(e,r,{get:t[r],enumerable:!0})},j=e=>((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of G(t))W.call(e,o)||o===r||_(e,o,{get:()=>t[o],enumerable:!(n=D(t,o))||n.enumerable});return e})(_({},"__esModule",{value:!0}),e),H=V(()=>{o=new Map,i=[],s=(e,t,r)=>{if(t&&"function"==typeof t.init&&"function"==typeof t.createInferenceSessionHandler){let n=o.get(e);if(void 0===n)o.set(e,{backend:t,priority:r});else{if(n.priority>r)return;if(n.priority===r&&n.backend!==t)throw Error(`cannot register backend "${e}" using priority ${r}`)}if(r>=0){let t=i.indexOf(e);-1!==t&&i.splice(t,1);for(let t=0;t<i.length;t++)if(o.get(i[t]).priority<=r)return void i.splice(t,0,e);i.push(e)}return}throw TypeError("not a valid backend")},u=async e=>{let t=o.get(e);if(!t)return"backend not found.";if(t.initialized)return t.backend;if(t.aborted)return t.error;{let r=!!t.initPromise;try{return r||(t.initPromise=t.backend.init(e)),await t.initPromise,t.initialized=!0,t.backend}catch(e){return r||(t.error=`${e}`,t.aborted=!0),t.error}finally{delete t.initPromise}}},f=async e=>{let t=e.executionProviders||[],r=t.map(e=>"string"==typeof e?e:e.name),n=0===r.length?i:r,o,s=[],f=new Set;for(let e of n){let t=await u(e);"string"==typeof t?s.push({name:e,err:t}):(o||(o=t),o===t&&f.add(e))}if(!o)throw Error(`no available backend found. ERR: ${s.map(e=>`[${e.name}] ${e.err}`).join(", ")}`);for(let{name:e,err:t}of s)r.includes(e)&&console.warn(`removing requested execution provider "${e}" from session options because it is not available: ${t}`);let l=t.filter(e=>f.has("string"==typeof e?e:e.name));return[o,new Proxy(e,{get:(e,t)=>"executionProviders"===t?l:Reflect.get(e,t)})]}}),q=V(()=>{H()}),Y=V(()=>{l="1.27.0"}),Z=V(()=>{Y(),c="warning",Object.defineProperty(p={wasm:{},webgl:{},webgpu:{},versions:{common:l},set logLevel(a){if(void 0!==a){if("string"!=typeof a||-1===["verbose","info","warning","error","fatal"].indexOf(a))throw Error(`Unsupported logging level: ${a}`);c=a}},get logLevel(){return c}},"logLevel",{enumerable:!0})}),X=V(()=>{Z(),d=p}),Q=V(()=>{h=(e,t)=>{let r="u">typeof document?document.createElement("canvas"):new OffscreenCanvas(1,1);r.width=e.dims[3],r.height=e.dims[2];let n=r.getContext("2d");if(null!=n){let o,i;t?.tensorLayout!==void 0&&"NHWC"===t.tensorLayout?(o=e.dims[2],i=e.dims[3]):(o=e.dims[3],i=e.dims[2]);let s=t?.format!==void 0?t.format:"RGB",u=t?.norm,f,l;void 0===u||void 0===u.mean?f=[255,255,255,255]:"number"==typeof u.mean?f=[u.mean,u.mean,u.mean,u.mean]:(f=[u.mean[0],u.mean[1],u.mean[2],0],void 0!==u.mean[3]&&(f[3]=u.mean[3])),void 0===u||void 0===u.bias?l=[0,0,0,0]:"number"==typeof u.bias?l=[u.bias,u.bias,u.bias,u.bias]:(l=[u.bias[0],u.bias[1],u.bias[2],0],void 0!==u.bias[3]&&(l[3]=u.bias[3]));let c=i*o,p=0,d=c,h=2*c,m=-1;"RGBA"===s?(p=0,d=c,h=2*c,m=3*c):"RGB"===s?(p=0,d=c,h=2*c):"RBG"===s&&(p=0,h=c,d=2*c);for(let t=0;t<i;t++)for(let r=0;r<o;r++)n.fillStyle="rgba("+(e.data[p++]-l[0])*f[0]+","+(e.data[d++]-l[1])*f[1]+","+(e.data[h++]-l[2])*f[2]+","+(-1===m?255:(e.data[m++]-l[3])*f[3])+")",n.fillRect(r,t,1,1);if("toDataURL"in r)return r.toDataURL();throw Error("toDataURL is not supported")}throw Error("Can not access image data")},m=(e,t)=>{let r="u">typeof document?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),n;if(null!=r){let o,i,s;t?.tensorLayout!==void 0&&"NHWC"===t.tensorLayout?(o=e.dims[2],i=e.dims[1],s=e.dims[3]):(o=e.dims[3],i=e.dims[2],s=e.dims[1]);let u=void 0!==t&&void 0!==t.format?t.format:"RGB",f=t?.norm,l,c;void 0===f||void 0===f.mean?l=[255,255,255,255]:"number"==typeof f.mean?l=[f.mean,f.mean,f.mean,f.mean]:(l=[f.mean[0],f.mean[1],f.mean[2],255],void 0!==f.mean[3]&&(l[3]=f.mean[3])),void 0===f||void 0===f.bias?c=[0,0,0,0]:"number"==typeof f.bias?c=[f.bias,f.bias,f.bias,f.bias]:(c=[f.bias[0],f.bias[1],f.bias[2],0],void 0!==f.bias[3]&&(c[3]=f.bias[3]));let p=i*o;if(void 0!==t&&(void 0!==t.format&&4===s&&"RGBA"!==t.format||3===s&&"RGB"!==t.format&&"BGR"!==t.format))throw Error("Tensor format doesn't match input tensor dims");let d=0,h=1,m=2,g=3,y=0,w=p,b=2*p,v=-1;"RGBA"===u?(y=0,w=p,b=2*p,v=3*p):"RGB"===u?(y=0,w=p,b=2*p):"RBG"===u&&(y=0,b=p,w=2*p),n=r.createImageData(o,i);for(let t=0;t<i*o;d+=4,h+=4,m+=4,g+=4,t++)n.data[d]=(e.data[y++]-c[0])*l[0],n.data[h]=(e.data[w++]-c[1])*l[1],n.data[m]=(e.data[b++]-c[2])*l[2],n.data[g]=-1===v?255:(e.data[v++]-c[3])*l[3]}else throw Error("Can not access image data");return n}}),J=V(()=>{et(),g=(e,t)=>{if(void 0===e)throw Error("Image buffer must be defined");if(void 0===t.height||void 0===t.width)throw Error("Image height and width must be defined");if("NHWC"===t.tensorLayout)throw Error("NHWC Tensor layout is not supported yet");let{height:r,width:n}=t,o=t.norm??{mean:255,bias:0},i,s;i="number"==typeof o.mean?[o.mean,o.mean,o.mean,o.mean]:[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],s="number"==typeof o.bias?[o.bias,o.bias,o.bias,o.bias]:[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let u=void 0!==t.format?t.format:"RGBA",f=void 0!==t.tensorFormat&&void 0!==t.tensorFormat?t.tensorFormat:"RGB",l=r*n,c=new Float32Array("RGBA"===f?4*l:3*l),p=4,d=0,h=1,m=2,g=3,y=0,w=l,b=2*l,v=-1;
1"RGB"===u&&(p=3,d=0,h=1,m=2,g=-1),"RGBA"===f?v=3*l:"RBG"===f?(y=0,b=l,w=2*l):"BGR"===f&&(b=0,w=l,y=2*l);for(let t=0;t<l;t++,d+=p,m+=p,h+=p,g+=p)c[y++]=(e[d]+s[0])/i[0],c[w++]=(e[h]+s[1])/i[1],c[b++]=(e[m]+s[2])/i[2],-1!==v&&-1!==g&&(c[v++]=(e[g]+s[3])/i[3]);return"RGBA"===f?new S("float32",c,[1,4,r,n]):new S("float32",c,[1,3,r,n])},y=async(e,t)=>{let r="u">typeof HTMLImageElement&&e instanceof HTMLImageElement,n="u">typeof ImageData&&e instanceof ImageData,o="u">typeof ImageBitmap&&e instanceof ImageBitmap,i="string"==typeof e,s,u=t??{},f=()=>{if("u">typeof document)return document.createElement("canvas");if("u">typeof OffscreenCanvas)return new OffscreenCanvas(1,1);throw Error("Canvas is not supported")},l=e=>"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||e instanceof OffscreenCanvas?e.getContext("2d"):null;if(r){let r=f();r.width=e.width,r.height=e.height;let n=l(r);if(null!=n){let r=e.height,o=e.width;if(void 0!==t&&void 0!==t.resizedHeight&&void 0!==t.resizedWidth&&(r=t.resizedHeight,o=t.resizedWidth),void 0!==t){if(u=t,void 0!==t.tensorFormat)throw Error("Image input config format must be RGBA for HTMLImageElement");u.tensorFormat="RGBA",u.height=r,u.width=o}else u.tensorFormat="RGBA",u.height=r,u.width=o;n.drawImage(e,0,0),s=n.getImageData(0,0,o,r).data}else throw Error("Can not access image data")}else if(n){let r,n;if(void 0!==t&&void 0!==t.resizedWidth&&void 0!==t.resizedHeight?(r=t.resizedHeight,n=t.resizedWidth):(r=e.height,n=e.width),void 0!==t&&(u=t),u.format="RGBA",u.height=r,u.width=n,void 0!==t){let t=f();t.width=n,t.height=r;let o=l(t);if(null!=o)o.putImageData(e,0,0),s=o.getImageData(0,0,n,r).data;else throw Error("Can not access image data")}else s=e.data}else if(o){if(void 0===t)throw Error("Please provide image config with format for Imagebitmap");let r=f();r.width=e.width,r.height=e.height;let n=l(r);if(null!=n){let t=e.height,r=e.width;return n.drawImage(e,0,0,r,t),s=n.getImageData(0,0,r,t).data,u.height=t,u.width=r,g(s,u)}throw Error("Can not access image data")}else{if(i)return new Promise((t,r)=>{let n=f(),o=l(n);if(!e||!o)return r();let i=new Image;i.crossOrigin="Anonymous",i.src=e,i.onload=()=>{n.width=i.width,n.height=i.height,o.drawImage(i,0,0,n.width,n.height);let e=o.getImageData(0,0,n.width,n.height);u.height=n.height,u.width=n.width,t(g(e.data,u))}});throw Error("Input data provided is not supported - aborted tensor creation")}if(void 0!==s)return g(s,u);throw Error("Input data provided is not supported - aborted tensor creation")},w=(e,t)=>{let{width:r,height:n,download:o,dispose:i}=t;return new S({location:"texture",type:"float32",texture:e,dims:[1,n,r,4],download:o,dispose:i})},b=(e,t)=>{let{dataType:r,dims:n,download:o,dispose:i}=t;return new S({location:"gpu-buffer",type:r??"float32",gpuBuffer:e,dims:n,download:o,dispose:i})},v=(e,t)=>{let{dataType:r,dims:n,download:o,dispose:i}=t;return new S({location:"ml-tensor",type:r??"float32",mlTensor:e,dims:n,download:o,dispose:i})},T=(e,t,r)=>new S({location:"cpu-pinned",type:e,data:t,dims:r??[t.length]})}),K=V(()=>{E=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),x=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),A=!1,C=()=>{if(!A){A=!0;let e="u">typeof BigInt64Array&&BigInt64Array.from,t="u">typeof BigUint64Array&&BigUint64Array.from,r=globalThis.Float16Array,n="u">typeof r&&r.from;e&&(E.set("int64",BigInt64Array),x.set(BigInt64Array,"int64")),t&&(E.set("uint64",BigUint64Array),x.set(BigUint64Array,"uint64")),n?(E.set("float16",r),x.set(r,"float16")):E.set("float16",Uint16Array)}}}),ee=V(()=>{et(),O=e=>{let t=1;for(let r=0;r<e.length;r++){let n=e[r];if("number"!=typeof n||!Number.isSafeInteger(n))throw TypeError(`dims[${r}] must be an integer, got: ${n}`);if(n<0)throw RangeError(`dims[${r}] must be a non-negative integer, got: ${n}`);t*=n}return t},I=(e,t)=>{switch(e.location){case"cpu":return new S(e.type,e.data,t);case"cpu-pinned":return new S({location:"cpu-pinned",data:e.data,type:e.type,dims:t});case"texture":return new S({location:"texture",texture:e.texture,type:e.type,dims:t});case"gpu-buffer":return new S({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:t});case"ml-tensor":return new S({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:t});default:throw Error(`tensorReshape: tensor location ${e.location} is not supported`)}}}),et=V(()=>{Q(),J(),K(),ee(),S=class{constructor(e,t,r){let n,o;
1if(C(),"object"==typeof e&&"location"in e)switch(this.dataLocation=e.location,n=e.type,o=e.dims,e.location){case"cpu-pinned":{let t=E.get(n);if(!t)throw TypeError(`unsupported type "${n}" to create tensor from pinned buffer`);if(!(e.data instanceof t))throw TypeError(`buffer should be of type ${t.name}`);this.cpuData=e.data;break}case"texture":if("float32"!==n)throw TypeError(`unsupported type "${n}" to create tensor from texture`);this.gpuTextureData=e.texture,this.downloader=e.download,this.disposer=e.dispose;break;case"gpu-buffer":if("float32"!==n&&"float16"!==n&&"int32"!==n&&"int64"!==n&&"uint32"!==n&&"uint8"!==n&&"bool"!==n&&"uint4"!==n&&"int4"!==n)throw TypeError(`unsupported type "${n}" to create tensor from gpu buffer`);this.gpuBufferData=e.gpuBuffer,this.downloader=e.download,this.disposer=e.dispose;break;case"ml-tensor":if("float32"!==n&&"float16"!==n&&"int32"!==n&&"int64"!==n&&"uint32"!==n&&"uint64"!==n&&"int8"!==n&&"uint8"!==n&&"bool"!==n&&"uint4"!==n&&"int4"!==n)throw TypeError(`unsupported type "${n}" to create tensor from MLTensor`);this.mlTensorData=e.mlTensor,this.downloader=e.download,this.disposer=e.dispose;break;default:throw Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,s;if("string"==typeof e)if(n=e,s=r,"string"===e){if(!Array.isArray(t))throw TypeError("A string tensor's data must be a string array.");i=t}else{let r=E.get(e);if(void 0===r)throw TypeError(`Unsupported tensor type: ${e}.`);if(Array.isArray(t)){if("float16"===e&&r===Uint16Array||"uint4"===e||"int4"===e)throw TypeError(`Creating a ${e} tensor from number array is not supported. Please use ${r.name} as data.`);i="uint64"===e||"int64"===e?r.from(t,BigInt):r.from(t)}else if(t instanceof r)i=t;else if(t instanceof Uint8ClampedArray)if("uint8"===e)i=Uint8Array.from(t);else throw TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if("float16"===e&&t instanceof Uint16Array&&r!==Uint16Array)i=new globalThis.Float16Array(t.buffer,t.byteOffset,t.length);else throw TypeError(`A ${n} tensor's data must be type of ${r}`)}else if(s=t,Array.isArray(e)){if(0===e.length)throw TypeError("Tensor type cannot be inferred from an empty array.");let t=typeof e[0];if("string"===t)n="string",i=e;else if("boolean"===t)n="bool",i=Uint8Array.from(e);else throw TypeError(`Invalid element type of data array: ${t}.`)}else if(e instanceof Uint8ClampedArray)n="uint8",i=Uint8Array.from(e);else{let t=x.get(e.constructor);if(void 0===t)throw TypeError(`Unsupported type for tensor data: ${e.constructor}.`);n=t,i=e}if(void 0===s)s=[i.length];else if(!Array.isArray(s))throw TypeError("A tensor's dims must be a number array");o=s,this.cpuData=i,this.dataLocation="cpu"}let i=O(o);if(this.cpuData&&i!==this.cpuData.length&&("uint4"!==n&&"int4"!==n||Math.ceil(i/2)!==this.cpuData.length))throw Error(`Tensor's size(${i}) does not match data length(${this.cpuData.length}).`);this.type=n,this.dims=o,this.size=i}static async fromImage(e,t){return y(e,t)}static fromTexture(e,t){return w(e,t)}static fromGpuBuffer(e,t){return b(e,t)}static fromMLTensor(e,t){return v(e,t)}static fromPinnedBuffer(e,t,r){return T(e,t,r)}toDataURL(e){return h(this,e)}toImageData(e){return m(this,e)}get data(){if(this.ensureValid(),!this.cpuData)throw 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 Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(e){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 Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let t=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=t,e&&this.disposer&&(this.disposer(),this.disposer=void 0),t}finally{this.isDownloading=!1}default:throw Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw 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("none"===this.dataLocation)throw Error("The tensor is disposed.")}reshape(e){if(this.ensureValid(),this.downloader||this.disposer)throw Error("Cannot reshape a tensor that owns GPU resource.");return I(this,e)}}}),er=V(()=>{et(),U=S}),en=V(()=>{Z(),B=(e,t)=>{(typeof p.trace>"u"?p.wasm.trace:p.trace)&&console.timeStamp(`${e}::ORT::${t}`)},M=(e,t)=>{let r=Error().stack?.split(/\r\n|\r|\n/g)||[],n=!1;for(let o=0;o<r.length;o++){if(n&&!r[o].includes("TRACE_FUNC")){let n=`FUNC_${e}::${r[o].trim().split(" ")[1]}`;t&&(n+=`::${t}`),B("CPU",n);return}r[o].includes("TRACE_FUNC")&&(n=!0)}},L=e=>{(typeof p.trace>"u"?p.wasm.trace:p.trace)&&M("BEGIN",e)},R=e=>{(typeof p.trace>"u"?p.wasm.trace:p.trace)&&M("END",e)},P=e=>{(typeof p.trace>"u"?p.wasm.trace:p.trace)&&console.time(`ORT::${e}`)},$=e=>{(typeof p.trace>"u"?p.wasm.trace:p.trace)&&console.timeEnd(`ORT::${e}`)}}),ea=V(()=>{H(),er(),en(),N=class e{constructor(e){this.handler=e}async run(e,t,r){L(),P("InferenceSession.run");let n={},o={};if("object"!=typeof e||null===e||e instanceof U||Array.isArray(e))throw TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let i=!0;if("object"==typeof t){if(null===t)throw TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof U)throw TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(0===t.length)throw TypeError("'fetches' cannot be an empty array.");for(let e of(i=!1,t)){if("string"!=typeof e)throw TypeError("'fetches' must be a string array or an object.");if(-1===this.outputNames.indexOf(e))throw RangeError(`'fetches' contains invali
1d output name: ${e}.`);n[e]=null}if("object"==typeof r&&null!==r)o=r;else if("u">typeof r)throw TypeError("'options' must be an object.")}else{let e=!1,s=Object.getOwnPropertyNames(t);for(let r of this.outputNames)if(-1!==s.indexOf(r)){let o=t[r];(null===o||o instanceof U)&&(e=!0,i=!1,n[r]=o)}if(e){if("object"==typeof r&&null!==r)o=r;else if("u">typeof r)throw TypeError("'options' must be an object.")}else o=t}}else if("u">typeof t)throw TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let t of this.inputNames)if(typeof e[t]>"u")throw Error(`input '${t}' is missing in 'feeds'.`);if(i)for(let e of this.outputNames)n[e]=null;let s=await this.handler.run(e,n,o),u={};for(let e in s)if(Object.hasOwnProperty.call(s,e)){let t=s[e];t instanceof U?u[e]=t:u[e]=new U(t.type,t.data,t.dims)}return $("InferenceSession.run"),R(),u}async release(){return this.handler.dispose()}static async create(t,r,n,o){L(),P("InferenceSession.create");let i,s={};if("string"==typeof t){if(i=t,"object"==typeof r&&null!==r)s=r;else if("u">typeof r)throw TypeError("'options' must be an object.")}else if(t instanceof Uint8Array){if(i=t,"object"==typeof r&&null!==r)s=r;else if("u">typeof r)throw TypeError("'options' must be an object.")}else if(t instanceof ArrayBuffer||"u">typeof SharedArrayBuffer&&t instanceof SharedArrayBuffer){let e=0,u=t.byteLength;if("object"==typeof r&&null!==r)s=r;else if("number"==typeof r){if(!Number.isSafeInteger(e=r))throw RangeError("'byteOffset' must be an integer.");if(e<0||e>=t.byteLength)throw RangeError(`'byteOffset' is out of range [0, ${t.byteLength}).`);if(u=t.byteLength-e,"number"==typeof n){if(!Number.isSafeInteger(u=n))throw RangeError("'byteLength' must be an integer.");if(u<=0||e+u>t.byteLength)throw RangeError(`'byteLength' is out of range (0, ${t.byteLength-e}].`);if("object"==typeof o&&null!==o)s=o;else if("u">typeof o)throw TypeError("'options' must be an object.")}else if("u">typeof n)throw TypeError("'byteLength' must be a number.")}else if("u">typeof r)throw TypeError("'options' must be an object.");i=new Uint8Array(t,e,u)}else throw TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[u,l]=await f(s),c=await u.createInferenceSessionHandler(i,l);return $("InferenceSession.create"),R(),new e(c)}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}}}),eo=V(()=>{ea(),k=N}),ei=V(()=>{}),es=V(()=>{}),eu=V(()=>{}),ef=V(()=>{}),el={};z(el,{InferenceSession:()=>k,TRACE:()=>B,TRACE_EVENT_BEGIN:()=>P,TRACE_EVENT_END:()=>$,TRACE_FUNC_BEGIN:()=>L,TRACE_FUNC_END:()=>R,Tensor:()=>U,env:()=>d,registerBackend:()=>s});var ec=V(()=>{q(),X(),eo(),er(),ei(),es(),en(),eu(),ef()}),ep=V(()=>{}),ed={};z(ed,{default:()=>em});var eh,em,eg=V(()=>{t0(),tf(),tu(),(eh=globalThis.self?.name==="ort-wasm-proxy-worker")&&(self.onmessage=e=>{let{type:t,in:r}=e.data;try{switch(t){case"init-wasm":e$(r.wasm).then(()=>{tT(r).then(()=>{postMessage({type:t})},e=>{postMessage({type:t,err:e})})},e=>{postMessage({type:t,err:e})});break;case"init-ep":{let{epName:e,env:n}=r;tE(n,e).then(()=>{postMessage({type:t})},e=>{postMessage({type:t,err:e})});break}case"copy-from":{let{buffer:e}=r,n=tC(e);postMessage({type:t,out:n});break}case"create":{let{model:e,options:n}=r;tO(e,n).then(e=>{postMessage({type:t,out:e})},e=>{postMessage({type:t,err:e})});break}case"release":tI(r),postMessage({type:t});break;case"run":{let{sessionId:e,inputIndices:n,inputs:o,outputIndices:i,options:s}=r;tU(e,n,o,i,Array(i.length).fill(null),s).then(e=>{e.some(e=>"cpu"!==e[3])?postMessage({type:t,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:t,out:e},tM([...o,...e]))},e=>{postMessage({type:t,err:e})});break}case"end-profiling":tB(r),postMessage({type:t})}}catch(e){postMessage({type:t,err:e})}}),em=eh?null:e=>new Worker(e??eE,{type:"module",name:"ort-wasm-proxy-worker"})}),ey={};async function ew(e={}){var t=!!globalThis.window,n=!!globalThis.WorkerGlobalScope,o=n&&self.name?.startsWith("em-pthread");e.mountExternalData=(t,r)=>
1{t.startsWith("./")&&(t=t.substring(2)),(e.Vc||(e.Vc=new Map)).set(t,r)},e.unmountExternalData=()=>{delete e.Vc},globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;let i=()=>{let t=e=>(...t)=>{let r=tS;return t=e(...t),tS!=r?new Promise((e,t)=>{t$={resolve:e,reject:t}}):t};(()=>{for(let r of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])e[r]=t(e[r])})(),"u">typeof jsepRunAsync&&(e._OrtRun=jsepRunAsync(e._OrtRun),e._OrtRunWithBinding=jsepRunAsync(e._OrtRunWithBinding)),i=void 0};e.asyncInit=()=>{i?.()};var s,u,f=(e,t)=>{throw t},l="";if(t||n){try{l=new URL(".","file:///opt/buildhome/repo/node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs").href}catch{}n&&(u=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),s=async e=>{if(E(e))return new Promise((t,r)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):r(n.status)},n.onerror=r,n.send(null)});var t=await fetch(e,{credentials:"same-origin"});if(t.ok)return t.arrayBuffer();throw Error(t.status+" : "+t.url)}}var c,p,d,h,m,g,y=console.log.bind(console),w=console.error.bind(console),b=y,v=w,T=!1,E=e=>e.startsWith("file://");function x(){es.buffer!=C.buffer&&k()}if(o){let t=function(r){try{var n,o,i=r.data,s=i.Pc;if("load"===s){let r=[];for(let n of(self.onmessage=e=>r.push(e),g=()=>{for(let e of(postMessage({Pc:"loaded"}),r))t(e);self.onmessage=t},i.ee))e[n]&&!e[n].proxy||(e[n]=(...e)=>{postMessage({Pc:"callHandler",de:n,args:e})},"print"==n&&(b=e[n]),"printErr"==n&&(v=e[n]));es=i.ke,k(),p=i.le,W(),ow()}else if("run"===s){n=i.Oc,o=(x(),B)[n+52>>>2>>>0],n=(x(),B)[n+56>>>2>>>0],n3(o,o-n),n4(o),nq(i.Oc,0,0,1,0,0),ea(),tw(i.Oc),A||(nA(),A=!0);try{eu(i.ie,i.Xc)}catch(e){if("unwind"!=e)throw e}}else"setimmediate"!==i.target&&("checkMailbox"===s?A&&tb():s&&(v(`worker: received unknown command ${s}`),v(i)))}catch(e){throw nY(),e}};var A=!1;self.onunhandledrejection=e=>{throw e.reason||e},self.onmessage=t}var C,O,I,S,U,B,M,L,R,P,$,N=!1;function k(){var t=es.buffer;e.HEAP8=C=new Int8Array(t),I=new Int16Array(t),e.HEAPU8=O=new Uint8Array(t),S=new Uint16Array(t),e.HEAP32=U=new Int32Array(t),e.HEAPU32=B=new Uint32Array(t),M=new Float32Array(t),L=new Float64Array(t),R=new BigInt64Array(t),P=new BigUint64Array(t)}function _(){N=!0,o?g():aF.$b()}function D(e){throw v(e="Aborted("+e+")"),T=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),m?.(e),e}function G(){return{a:{f:ep,J:eh,k:ev,p:eT,l:eE,sa:ex,b:eA,ca:eC,Ja:eI,q:eS,da:eR,Za:eP,Fa:e$,Ha:eN,_a:ek,Xa:e_,Qa:eD,Wa:eG,oa:eW,Ga:eF,Yb:eV,Ya:ez,Zb:ej,db:eH,Da:e0,Tb:e1,Rb:e9,Ca:te,M:tt,I:tr,Sb:to,ja:td,Ub:th,Ta:tm,Wb:tv,Ka:tE,Pb:tx,ka:tA,Sa:tw,ab:tC,U:t_,n:tV,c:e4,rb:tz,w:tj,L:tH,z:tq,j:tY,o:tZ,sb:tX,G:tQ,T:tJ,h:tK,u:t0,m:t1,i:t2,Na:t3,Oa:t5,Pa:t7,La:t9,Ma:re,Qb:rn,eb:ra,cb:ri,Y:rf,qb:rl,la:rc,bb:ro,fb:rp,$a:rd,Xb:rh,N:rr,gb:rm,X:rg,Vb:ry,nb:rN,C:rk,ra:r_,qa:rD,pb:rG,W:rW,v:rF,mb:rV,lb:rz,kb:rj,ob:rH,jb:rq,ib:rY,hb:rZ,Ua:rK,Va:r0,Ia:J,V:r1,na:r2,Ra:r3,ma:r6,Cb:og,xa:ol,Db:om,ya:of,F:a7,e:aY,s:aH,x:aj,B:a4,Fb:oi,ba:oo,D:aQ,za:os,$:oc,ga:oa,Gb:on,Hb:or,Ba:a9,Aa:ot,Ib:oe,wa:oh,aa:ou,d:aq,A:aX,r:aZ,Bb:oy,t:aK,y:a8,H:aJ,E:a0,K:a5,R:op,ia:a3,_:od,Kb:a2,Lb:a1,Jb:a6,g:r8,a:es,Ob:X,Eb:r5,ha:r7,O:r9,pa:ne,Mb:nt,ta:nr,Q:nn,yb:na,zb:no,ua:ni,ea:ns,P:nu,Ea:nf,va:nl,Z:nc,wb:np,_b:nd,S:nh,Ab:nm,tb:ng,ub:nw,vb:nb,fa:nv,xb:nT,Nb:nE}}}async function W(){function t(t,r){let n;var o,i,s,u=aF=t.exports;for(let[e,r]of(t={},Object.entries(u)))"function"==typeof r?(u=function(e){var t=(...t)=>{tB.push(e);try{return e(...t)}finally{T||(tB.pop(),tS&&1===tI&&0===tB.length&&(tI=0,Y+=1,tO(aD),"u">typeof Fibers&&Fibers.De()))}};return tR.set(e,t),t}(r),t[e]=u):t[e]=r;return o=aF=t,i=e=>t=>e(t)>>>0,s=e=>()=>e()>>>0,(o=Object.assign({},o)).ac=i(o.ac),o.Dc=s(o.Dc),o.Fc=i(o.Fc),o.sd=(n=o.sd,(e,t)=>n(e,t)>>>0),o.xd=i(o.xd),o.yd=s(o.yd),o.Cd=i(o.Cd),aF=o,et.push(aF.jd),nx=(t=aF).ac,nA=t.bc,e._OrtInit=t.cc,e._OrtGetLastError=t.dc,e._OrtCreateSessionOptions=t.ec,e._OrtAppendExecutionProvider=t.fc,e._OrtAddFreeDimensionOverride=t.gc,e._OrtAddSessionConfigEntry=t.hc,e._OrtReleaseSessionOptions=t.ic,e._OrtCreateSession=t.jc,e._OrtReleaseSession=t.kc,e._OrtGetInputOutputCount=t.lc,e._OrtGetInputOutputMetadata=t.mc,e._OrtFree=t.nc,e._OrtCreateTensor=t.oc,e._OrtGetTensorData=t.pc,e._OrtReleaseTensor=t.qc,e._OrtCreateRu
1nOptions=t.rc,e._OrtAddRunConfigEntry=t.sc,e._OrtReleaseRunOptions=t.tc,e._OrtCreateBinding=t.uc,e._OrtBindInput=t.vc,e._OrtBindOutput=t.wc,e._OrtClearBoundOutputs=t.xc,e._OrtReleaseBinding=t.yc,e._OrtRunWithBinding=t.zc,e._OrtRun=t.Ac,e._OrtEndProfiling=t.Bc,nC=e._OrtGetWebGpuDevice=t.Cc,nO=t.Dc,nI=e._free=t.Ec,nS=e._malloc=t.Fc,nU=e._wgpuBufferRelease=t.Gc,nB=e._wgpuCreateInstance=t.Hc,nM=t.Ic,nL=t.Jc,nR=t.Kc,nP=t.Lc,n$=t.Mc,nN=t.Qc,nk=t._c,n_=t.$c,nD=t.ad,nG=t.cd,nW=t.dd,nF=t.ed,nV=t.fd,nz=t.gd,nj=t.hd,nH=t.id,nq=t.ld,nY=t.md,nZ=t.nd,nX=t.od,nQ=t.pd,nJ=t.qd,nK=t.rd,n0=t.sd,n1=t.td,n2=t.ud,n3=t.vd,n4=t.wd,n6=t.xd,n8=t.yd,n5=t.zd,n7=t.Ad,n9=t.Bd,ae=t.Cd,at=t.Dd,ar=t.Ed,an=t.Fd,aa=t.Gd,ao=t.Hd,ai=t.Id,as=t.Jd,au=t.Kd,af=t.Ld,al=t.Md,ac=t.Nd,ap=t.Od,ad=t.Pd,ah=t.Qd,am=t.Rd,ag=t.Sd,ay=t.Ud,aw=t.Vd,ab=t.Wd,av=t.Xd,aT=t.Zd,aE=t._d,ax=t.$d,aA=t.ae,aC=t.be,aO=t.ce,aI=t.qe,aS=t.re,aU=t.se,aB=t.te,aM=t.ue,aL=t.ve,aR=t.we,aP=t.xe,a$=t.ye,aN=t.ze,ak=t.Ae,a_=t.$e,aD=t.af,aG=t.bf,aW=t.cf,p=r,aF}var n,i=G();return e.instantiateWasm?new Promise(r=>{e.instantiateWasm(i,(e,n)=>{r(t(e,n))})}):o?t(new WebAssembly.Instance(p,G()),p):($??=e.locateFile?e.locateFile?e.locateFile("ort-wasm-simd-threaded.asyncify.wasm",l):l+"ort-wasm-simd-threaded.asyncify.wasm":new r.U(r(87467)).href,n=await async function(e){if(!c&&!E($))try{var t=fetch($,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(t,e)}catch(e){v(`wasm streaming compile failed: ${e}`),v("falling back to ArrayBuffer instantiation")}return async function(e,t){try{var r=await async function(e){if(!c)try{var t=await s(e);return new Uint8Array(t)}catch{}if(e==$&&c)e=new Uint8Array(c);else{if(!u)throw"both async and sync fetching of the wasm failed";e=u(e)}return e}(e);return await WebAssembly.instantiate(r,t)}catch(e){v(`failed to asynchronously prepare wasm: ${e}`),D(e)}}($,e)}(i),t(n.instance,n.module))}class F{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var V=e=>{e.terminate(),e.onmessage=()=>{}},z=[],j=0,H=null,q=e=>{0==K.length&&(ei(),eo(K[0]));var t=K.pop();if(!t)return 6;ee.push(t),er[e.Oc]=t,t.Oc=e.Oc;var r={Pc:"run",ie:e.he,Xc:e.Xc,Oc:e.Oc};return t.postMessage(r,e.Zc),0},Y=0,Z=(e,t,...r)=>{var n,o=16*r.length,i=n8(),s=n6(o),u=s>>>3;for(n of r)"bigint"==typeof n?((x(),R)[u++>>>0]=1n,(x(),R)[u++>>>0]=n):((x(),R)[u++>>>0]=0n,(x(),L)[u++>>>0]=n);return e=nZ(e,0,o,s,t),n4(i),e};function X(e){if(o)return Z(0,1,e);if(d=e,!(0<Y)){for(var t of ee)V(t);for(t of K)V(t);K=[],ee=[],er={},T=!0}f(0,new F(e))}function Q(e){if(o)return Z(1,0,e);J(e)}var J=e=>{if(d=e,o)throw Q(e),"unwind";X(e)},K=[],ee=[],et=[],er={},en=e=>{var t=e.Oc;delete er[t],K.push(e),ee.splice(ee.indexOf(e),1),e.Oc=0,nX(t)};function ea(){et.forEach(e=>e())}var eo=t=>new Promise(r=>{t.onmessage=n=>{var o=n.data;if(n=o.Pc,o.Wc&&o.Wc!=nO()){var i=er[o.Wc];i?i.postMessage(o,o.Zc):v(`Internal error! Worker sent a message "${n}" to target pthread ${o.Wc}, but that thread no longer exists!`)}else"checkMailbox"===n?tb():"spawnThread"===n?q(o):"cleanupThread"===n?tg(()=>{en(er[o.je])}):"loaded"===n?(t.loaded=!0,r(t)):"setimmediate"===o.target?t.postMessage(o):"uncaughtException"===n?t.onerror(o.error):"callHandler"===n?e[o.de](...o.args):n&&v(`worker sent an unknown command ${n}`)},t.onerror=e=>{throw v(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e};var n,o=[];for(n of[])e.propertyIsEnumerable(n)&&o.push(n);t.postMessage({Pc:"load",ee:o,ke:es,le:p})});function ei(){var e=new Worker((URL,new r.U(r(15893))),{type:"module",workerData:"em-pthread",name:"em-pthread"});K.push(e)}var es,eu=(e,t)=>{Y=0,e=ar(e,t),0<Y?d=e:nQ(e)},ef=[],el=0,ec=e=>-0x20000000000000>e||0x20000000000000<e?NaN:Number(e);function ep(e){var t=new ey(e>>>=0);return 0==(x(),C)[t.Rc+12>>>0]&&(em(t,!0),el--),eg(t,!1),ef.push(t),ae(e)}var ed=0,eh=()=>{n1(0,0);var e=ef.pop();n5(e.Yc),ed=0};function em(e,t){t=+!!t,(x(),C)[e.Rc+12>>>0]=t}function eg(e,t){t=+!!t,(x(),C)[e.Rc+13>>>0]=t}class ey{constructor(e){this.Yc=e,this.Rc=e-24}}var eb=e=>{var t=ed;if(!t)return n2(0),0;var r=new ey(t);(x(),B)[r.Rc+16>>>2>>>0]=t;var n=(x(),B)[r.Rc+4>>>2>>>0];if(!n)return n2(0),t;for(var o of e){if(0===o||o===n)break;if(n9(o,n,r.Rc+16))return n2(o),t}return n2(n),t};function ev(){return eb([])}function eT(e){return eb([e>>>0])}function eE(e,t,r,n){return eb([e>>>0,t>>>0,r>>>0,n>>>0])}var ex=()=>{var e=ef.pop();e||D("no exception to throw");var t=e.Yc;throw 0==(x(),C)[e.Rc+13>>>0]&&(ef.push(e),eg(e,!0),em(e,!1),el++),n7(t),ed=t};function eA(e,t,r){var n=new ey(e>>>=0);throw t>>>=0,r>>>=0,(x(),B)[n.Rc+16>>>2>>>0]=0,(x(),B)[n.Rc+4>>>2>>>0]=t,(x(),B)[n.Rc+8>>>2>>>0]=r,n7(e),el++,ed=e}var eC=()=>el;function eO(e,t,r,n){return o?Z(2,1,e,t,r,n):eI(e,t,r,n)}function eI(e,t,r,n){if(e>>>=0,t>>>=0,r>>>=0,n>>>=0,!globalThis.SharedArrayBuffer)return 6;var i=[];
1return o&&0===i.length?eO(e,t,r,n):(e={he:r,Oc:e,Xc:n,Zc:i},o?(e.Pc="spawnThread",postMessage(e,i),0):q(e))}function eS(e){throw ed||=e>>>0}var eU=globalThis.TextDecoder&&new TextDecoder,eB=(e,t,r,n)=>{if(r=t+r,n)return r;for(;e[t]&&!(t>=r);)++t;return t},eM=(e,t=0,r,n)=>{if(16<(r=eB(e,t>>>=0,r,n))-t&&e.buffer&&eU)return eU.decode(e.buffer instanceof ArrayBuffer?e.subarray(t,r):e.slice(t,r));for(n="";t<r;){var o=e[t++];if(128&o){var i=63&e[t++];if((224&o)==192)n+=String.fromCharCode((31&o)<<6|i);else{var s=63&e[t++];65536>(o=(240&o)==224?(15&o)<<12|i<<6|s:(7&o)<<18|i<<12|s<<6|63&e[t++])?n+=String.fromCharCode(o):(o-=65536,n+=String.fromCharCode(55296|o>>10,56320|1023&o))}}else n+=String.fromCharCode(o)}return n},eL=(e,t,r)=>(e>>>=0)?eM((x(),O),e,t,r):"";function eR(e,t,r){return o?Z(3,1,e,t,r):0}function eP(e,t){if(o)return Z(4,1,e,t)}function e$(e,t){if(o)return Z(5,1,e,t)}function eN(e,t,r){if(o)return Z(6,1,e,t,r)}function ek(e,t,r){return o?Z(7,1,e,t,r):0}function e_(e,t){if(o)return Z(8,1,e,t)}function eD(e,t,r){if(o)return Z(9,1,e,t,r)}function eG(e,t,r,n){if(o)return Z(10,1,e,t,r,n)}function eW(e,t,r,n){if(o)return Z(11,1,e,t,r,n)}function eF(e,t,r,n){if(o)return Z(12,1,e,t,r,n)}function eV(e){if(o)return Z(13,1,e)}function ez(e,t){if(o)return Z(14,1,e,t)}function ej(e,t,r){if(o)return Z(15,1,e,t,r)}var eH=()=>D(""),eq=e=>{e>>>=0;for(var t="";;){var r=(x(),O)[e++>>>0];if(!r)return t;t+=String.fromCharCode(r)}},eY={},eZ={},eX={},eQ=class extends Error{constructor(e){super(e),this.name="BindingError"}};function eJ(e,t,r={}){return function(e,t,r={}){var n=t.name;if(!e)throw new eQ(`type "${n}" must have a positive integer typeid pointer`);if(eZ.hasOwnProperty(e)){if(r.fe)return;throw new eQ(`Cannot register type '${n}' twice`)}eZ[e]=t,delete eX[e],eY.hasOwnProperty(e)&&(t=eY[e],delete eY[e],t.forEach(e=>e()))}(e,t,r)}var eK=(e,t,r)=>{switch(t){case 1:return r?e=>(x(),C)[e>>>0]:e=>(x(),O)[e>>>0];case 2:return r?e=>(x(),I)[e>>>1>>>0]:e=>(x(),S)[e>>>1>>>0];case 4:return r?e=>(x(),U)[e>>>2>>>0]:e=>(x(),B)[e>>>2>>>0];case 8:return r?e=>(x(),R)[e>>>3>>>0]:e=>(x(),P)[e>>>3>>>0];default:throw TypeError(`invalid integer width (${t}): ${e}`)}};function e0(e,t,r,n,o){e>>>=0,r>>>=0,t=eq(t>>>0);let i=e=>e;if(n=0n===n){let e=8*r;o=(i=t=>BigInt.asUintN(e,t))(o)}eJ(e,{name:t,Nc:i,Tc:(e,t)=>("number"==typeof t&&(t=BigInt(t)),t),Sc:eK(t,r,!n),Uc:null})}function e1(e,t,r,n){eJ(e>>>=0,{name:t=eq(t>>>0),Nc:function(e){return!!e},Tc:function(e,t){return t?r:n},Sc:function(e){return this.Nc((x(),O)[e>>>0])},Uc:null})}var e2=[],e3=[0,1,,1,null,1,!0,1,!1,1];function e4(e){9<(e>>>=0)&&0==--e3[e+1]&&(e3[e]=void 0,e2.push(e))}var e6=e=>{if(!e)throw new eQ(`Cannot use deleted val. handle = ${e}`);return e3[e]},e8=e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let t=e2.pop()||e3.length;return e3[t]=e,e3[t+1]=1,t}};function e5(e){return this.Nc((x(),B)[e>>>2>>>0])}var e7={name:"emscripten::val",Nc:e=>{var t=e6(e);return e4(e),t},Tc:(e,t)=>e8(t),Sc:e5,Uc:null};function e9(e){return eJ(e>>>0,e7)}function te(e,t,r){r>>>=0,eJ(e>>>=0,{name:t=eq(t>>>0),Nc:e=>e,Tc:(e,t)=>t,Sc:((e,t)=>{switch(t){case 4:return function(e){return this.Nc((x(),M)[e>>>2>>>0])};case 8:return function(e){return this.Nc((x(),L)[e>>>3>>>0])};default:throw TypeError(`invalid float width (${t}): ${e}`)}})(t,r),Uc:null})}function tt(e,t,r,n,o){e>>>=0,r>>>=0,t=eq(t>>>0);let i=e=>e;if(0===n){var s=32-8*r;o=(i=e=>e<<s>>>s)(o)}eJ(e,{name:t,Nc:i,Tc:(e,t)=>t,Sc:eK(t,r,0!==n),Uc:null})}function tr(e,t,r){function n(e){var t=(x(),B)[e>>>2>>>0];return e=(x(),B)[e+4>>>2>>>0],new o((x(),C).buffer,e,t)}var o=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];eJ(e>>>=0,{name:r=eq(r>>>0),Nc:n,Sc:n},{fe:!0})}var tn=(e,t,r)=>{var n=(x(),O);if(t>>>=0,0<r){var o=t;r=t+r-1;for(var i=0;i<e.length;++i){var s=e.codePointAt(i);if(127>=s){if(t>=r)break;n[t++>>>0]=s}else if(2047>=s){if(t+1>=r)break;n[t++>>>0]=192|s>>6,n[t++>>>0]=128|63&s}else if(65535>=s){if(t+2>=r)break;n[t++>>>0]=224|s>>12,n[t++>>>0]=128|s>>6&63,n[t++>>>0]=128|63&s}else{if(t+3>=r)break;n[t++>>>0]=240|s>>18,n[t++>>>0]=128|s>>12&63,n[t++>>>0]=128|s>>6&63,n[t++>>>0]=128|63&s,i++}}n[t>>>0]=0,e=t-o}else e=0;return e},ta=e=>{for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);127>=n?t++:2047>=n?t+=2:55296<=n&&57343>=n?(t+=4,++r):t+=3}return t};function to(e,t){eJ(e>>>=0,{name:t=eq(t>>>0),Nc(e){var t=(x(),B)[e>>>2>>>0];return t=eL(e+4,t,!0),nI(e),t},Tc(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r="string"==typeof t;if(!(r||ArrayBuffer.isView(t)&&1==t.BYTES_PER_ELEMENT))throw new eQ("Cannot pass non-string to std::string");var n=r?ta(t):t.length,o=nS(4+n+1),i=o+4;return(x(),B)[o>>>2>>>0]=n,r?tn(t,i,n+1):(x(),O).set(t,i>>>0),null!==e&&e.push(nI,o),o},Sc:e5,Uc(e){nI(e)}})}var ti=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,ts=(e,t,r)=>{if(e>>>=1,16<(t=eB((x(),S),e,t/2,r))-e&&ti)return ti.decode((x(),S).slice(e,t));for(r="";e<t;++e)r+=String.fromCharCode((x(),S)[e>>>0]);return r},tu=(e,t,r)=>{if(2>(r??=0x7fffffff))return 0;var n=t;r=(r-=2)<2*e.length?r/2:e.length;for(var o=0;o<r;++o){var i=e.charCodeAt(o);(x(),I)[t>>>1>>>0]=i,t+=2}return(x(),I)[t>>>1>>>0]=0,t-n},tf=e=>2*e.length,tl=(e,t,r)=>{var n="";e>>>=2;
1for(var o=0;!(o>=t/4);o++){var i=(x(),B)[e+o>>>0];if(!i&&!r)break;n+=String.fromCodePoint(i)}return n},tc=(e,t,r)=>{if(t>>>=0,4>(r??=0x7fffffff))return 0;var n=t;r=n+r-4;for(var o=0;o<e.length;++o){var i=e.codePointAt(o);if(65535<i&&o++,(x(),U)[t>>>2>>>0]=i,(t+=4)+4>r)break}return(x(),U)[t>>>2>>>0]=0,t-n},tp=e=>{for(var t=0,r=0;r<e.length;++r)65535<e.codePointAt(r)&&r++,t+=4;return t};function td(e,t,r){if(e>>>=0,t>>>=0,r=eq(r>>>=0),2===t)var n=ts,o=tu,i=tf;else n=tl,o=tc,i=tp;eJ(e,{name:r,Nc:e=>{var r=(x(),B)[e>>>2>>>0];return r=n(e+4,r*t,!0),nI(e),r},Tc:(e,n)=>{if("string"!=typeof n)throw new eQ(`Cannot pass non-string to C++ string type ${r}`);var s=i(n),u=nS(4+s+t);return(x(),B)[u>>>2>>>0]=s/t,o(n,u+4,s+t),null!==e&&e.push(nI,u),u},Sc:e5,Uc(e){nI(e)}})}function th(e,t){eJ(e>>>=0,{ge:!0,name:t=eq(t>>>0),Nc:()=>{},Tc:()=>{}})}function tm(e){nq(e>>>0,!n,1,!t,131072,!1),ea()}var tg=e=>{if(!T)try{if(e(),!(0<Y))try{o?nO()&&nQ(d):J(d)}catch(e){e instanceof F||"unwind"==e||f(0,e)}}catch(e){e instanceof F||"unwind"==e||f(0,e)}},ty=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function tw(e){e>>>=0,ty||(Atomics.waitAsync((x(),U),e>>>2,e).value.then(tb),e+=128,Atomics.store((x(),U),e>>>2,1))}var tb=()=>tg(()=>{var e=nO();e&&(tw(e),nK())});function tv(e,t){(e>>>=0)==t>>>0?setTimeout(tb):o?postMessage({Wc:e,Pc:"checkMailbox"}):(e=er[e])&&e.postMessage({Pc:"checkMailbox"})}var tT=[];function tE(e,t,r,n,o){for(t>>>=0,o>>>=0,tT.length=0,r=o>>>3,n=o+n>>>3;r<n;){var i;i=(x(),R)[r++>>>0]?(x(),R)[r++>>>0]:(x(),L)[r++>>>0],tT.push(i)}return(t?az[t]:aV[e])(...tT)}var tx=()=>{Y=0};function tA(e){e>>>=0,o?postMessage({Pc:"cleanupThread",je:e}):en(er[e])}function tC(e){}var tO=e=>{try{e()}catch(e){D(e)}},tI=0,tS=null,tU=0,tB=[],tM=new Map,tL=new Map,tR=new Map,tP=0,t$=null,tN=[],tk=e=>(function(e){if(!T){if(0===tI){var t=!1,r=!1;e((e=0)=>{if(!T&&(tU=e,t=!0,r)){tI=2,tO(()=>aG(tS)),"u">typeof MainLoop&&MainLoop.Yd&&MainLoop.resume(),e=!1;try{var n,o=(n=(x(),U)[tS+8>>>2>>>0],n=tL.get(n),n=tR.get(n),--Y,n())}catch(t){o=t,e=!0}var i=!1;if(!tS){var s=t$;s&&(t$=null,(e?s.reject:s.resolve)(o),i=!0)}if(e&&!i)throw o}}),r=!0,t||(tI=1,tS=function(){var e=nS(65548),t=e+12;if((x(),B)[e>>>2>>>0]=t,(x(),B)[e+4>>>2>>>0]=t+65536,t=tB[0],!tM.has(t)){var r=tP++;tM.set(t,r),tL.set(r,t)}return t=tM.get(t),(x(),U)[e+8>>>2>>>0]=t,e}(),"u">typeof MainLoop&&MainLoop.Yd&&MainLoop.pause(),tO(()=>a_(tS)))}else 2===tI?(tI=0,tO(aW),nI(tS),tS=null,tN.forEach(tg)):D(`invalid state: ${tI}`);return tU}})(t=>{e().then(t)});function t_(e){return e>>>=0,tk(async()=>e8(await e6(e)))}var tD=[],tG=(e,t,r)=>{var n=[];return e=e(n,r),n.length&&((x(),B)[t>>>2>>>0]=e8(n)),e},tW={},tF=e=>{var t=tW[e];return void 0===t?eq(e):t};function tV(e,t,r){var n,o,[i,...s]=((e,t)=>{for(var r=Array(e),n=0;n<e;++n){var o=n,i=(x(),B)[t+4*n>>>2>>>0],s=eZ[i];if(void 0===s)throw e=`parameter ${n}`,t=eq(i=nx(i)),nI(i),new eQ(`${e} has unknown type ${t}`);r[o]=s}return r})(e,t>>>0);t=i.Tc.bind(i);var u=s.map(e=>e.Sc.bind(e));e--;var f={toValue:e6};switch(e=u.map((e,t)=>{var r=`argFromPtr${t}`;return f[r]=e,`${r}(args${t?"+"+8*t:""})`}),r){case 0:var l="toValue(handle)";break;case 2:l="new (toValue(handle))";break;case 3:l="";break;case 1:f.getStringOrSymbol=tF,l="toValue(handle)[getStringOrSymbol(methodName)]"}return l+=`(${e})`,i.ge||(f.toReturnWire=t,f.emval_returnValue=tG,l=`return emval_returnValue(toReturnWire, destructorsRef, ${l})`),l=`return function (handle, methodName, destructorsRef, args) { 2 ${l} 3 }`,n=Object.defineProperty(r=Function(Object.keys(f),l)(...Object.values(f)),"name",{value:l=`methodCaller<(${s.map(e=>e.name)}) => ${i.name}>`}),o=tD.length,tD.push(n),o}function tz(e,t){return t>>>=0,(e=e6(e>>>0))==e6(t)}function tj(e){return(e>>>=0)?(e=tF(e),e8(globalThis[e])):e8(globalThis)}function tH(t){return e8(e[t=tF(t>>>0)])}function tq(e,t){return t>>>=0,e8((e=e6(e>>>0))[t=e6(t)])}function tY(e){9<(e>>>=0)&&(e3[e+1]+=1)}function tZ(e,t,r,n,o){return tD[e>>>0](t>>>0,r>>>0,n>>>0,o>>>0)}function tX(e,t,r,n,o){return tZ(e>>>0,t>>>0,r>>>0,n>>>0,o>>>0)}function tQ(){return e8([])}function tJ(e){e=e6(e>>>0);for(var t=Array(e.length),r=0;r<e.length;r++)t[r]=e[r];return e8(t)}
3function tK(e){return e8(tF(e>>>0))}function t0(){return e8({})}function t1(e){for(var t=e6(e>>>=0);t.length;){var r=t.pop();t.pop()(r)}e4(e)}function t2(e,t,r){t>>>=0,r>>>=0,e=e6(e>>>0),t=e6(t),r=e6(r),e[t]=r}function t3(e,t){e=ec(e),t>>>=0,e=new Date(1e3*e),(x(),U)[t>>>2>>>0]=e.getUTCSeconds(),(x(),U)[t+4>>>2>>>0]=e.getUTCMinutes(),(x(),U)[t+8>>>2>>>0]=e.getUTCHours(),(x(),U)[t+12>>>2>>>0]=e.getUTCDate(),(x(),U)[t+16>>>2>>>0]=e.getUTCMonth(),(x(),U)[t+20>>>2>>>0]=e.getUTCFullYear()-1900,(x(),U)[t+24>>>2>>>0]=e.getUTCDay(),e=(e.getTime()-Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,(x(),U)[t+28>>>2>>>0]=e}var t4=e=>e%4==0&&(e%100!=0||e%400==0),t6=[0,31,60,91,121,152,182,213,244,274,305,335],t8=[0,31,59,90,120,151,181,212,243,273,304,334];function t5(e,t){e=ec(e),t>>>=0,e=new Date(1e3*e),(x(),U)[t>>>2>>>0]=e.getSeconds(),(x(),U)[t+4>>>2>>>0]=e.getMinutes(),(x(),U)[t+8>>>2>>>0]=e.getHours(),(x(),U)[t+12>>>2>>>0]=e.getDate(),(x(),U)[t+16>>>2>>>0]=e.getMonth(),(x(),U)[t+20>>>2>>>0]=e.getFullYear()-1900,(x(),U)[t+24>>>2>>>0]=e.getDay();var r=(t4(e.getFullYear())?t6:t8)[e.getMonth()]+e.getDate()-1|0;(x(),U)[t+28>>>2>>>0]=r,(x(),U)[t+36>>>2>>>0]=-60*e.getTimezoneOffset(),r=new Date(e.getFullYear(),6,1).getTimezoneOffset();var n=new Date(e.getFullYear(),0,1).getTimezoneOffset();e=0|(r!=n&&e.getTimezoneOffset()==Math.min(n,r)),(x(),U)[t+32>>>2>>>0]=e}function t7(e){e>>>=0;var t=new Date((x(),U)[e+20>>>2>>>0]+1900,(x(),U)[e+16>>>2>>>0],(x(),U)[e+12>>>2>>>0],(x(),U)[e+8>>>2>>>0],(x(),U)[e+4>>>2>>>0],(x(),U)[e>>>2>>>0],0),r=(x(),U)[e+32>>>2>>>0],n=t.getTimezoneOffset(),o=new Date(t.getFullYear(),6,1).getTimezoneOffset(),i=new Date(t.getFullYear(),0,1).getTimezoneOffset(),s=Math.min(i,o);return 0>r?(x(),U)[e+32>>>2>>>0]=+(o!=i&&s==n):0<r!=(s==n)&&(o=Math.max(i,o),t.setTime(t.getTime()+6e4*((0<r?s:o)-n))),(x(),U)[e+24>>>2>>>0]=t.getDay(),r=(t4(t.getFullYear())?t6:t8)[t.getMonth()]+t.getDate()-1|0,(x(),U)[e+28>>>2>>>0]=r,(x(),U)[e>>>2>>>0]=t.getSeconds(),(x(),U)[e+4>>>2>>>0]=t.getMinutes(),(x(),U)[e+8>>>2>>>0]=t.getHours(),(x(),U)[e+12>>>2>>>0]=t.getDate(),(x(),U)[e+16>>>2>>>0]=t.getMonth(),(x(),U)[e+20>>>2>>>0]=t.getYear(),BigInt(isNaN(e=t.getTime())?-1:e/1e3)}function t9(e,t,r,n,i,s,u){return o?Z(16,1,e,t,r,n,i,s,u):-52}function re(e,t,r,n,i,s){if(o)return Z(17,1,e,t,r,n,i,s)}var rt={},rr=()=>performance.timeOrigin+performance.now();function rn(e,t){if(o)return Z(18,1,e,t);if(rt[e]&&(clearTimeout(rt[e].id),delete rt[e]),!t)return 0;var r=setTimeout(()=>{delete rt[e],tg(()=>nJ(e,performance.timeOrigin+performance.now()))},t);return rt[e]={id:r,Ce:t},0}function ra(e,t,r,n){e>>>=0,t>>>=0,r>>>=0,n>>>=0;var o=new Date().getFullYear(),i=new Date(o,0,1).getTimezoneOffset(),s=Math.max(i,o=new Date(o,6,1).getTimezoneOffset());(x(),B)[e>>>2>>>0]=60*s,(x(),U)[t>>>2>>>0]=+(i!=o),e=(t=e=>{var t=Math.abs(e);return`UTC${0<=e?"-":"+"}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`})(i),t=t(o),o<i?(tn(e,r,17),tn(t,n,17)):(tn(e,n,17),tn(t,r,17))}var ro=()=>Date.now();function ri(e,t,r){return(r>>>=0,0<=e&&3>=e)?(e=Math.round(1e6*(e=0===e?Date.now():performance.timeOrigin+performance.now())),(x(),R)[r>>>3>>>0]=BigInt(e),0):28}var rs=[],ru=(e,t)=>{rs.length=0;for(var r;r=(x(),O)[e++>>>0];){var n=105!=r;t+=(n&=112!=r)&&t%8?4:0,rs.push(112==r?(x(),B)[t>>>2>>>0]:106==r?(x(),R)[t>>>3>>>0]:105==r?(x(),U)[t>>>2>>>0]:(x(),L)[t>>>3>>>
30]),t+=n?8:4}return rs};function rf(e,t,r){return e>>>=0,t=ru(t>>>0,r>>>0),az[e](...t)}function rl(e,t,r){return e>>>=0,t=ru(t>>>0,r>>>0),az[e](...t)}var rc=()=>{};function rp(e,t){return v(eL(e>>>0,t>>>0))}var rd=()=>{throw Y+=1,"unwind"};function rh(){return 0xffff0000}var rm=()=>1,rg=()=>navigator.hardwareConcurrency;function ry(e){e>>>=0;var t=(x(),O).length;if(e<=t||0xffff0000<e)return!1;for(var r=1;4>=r;r*=2){var n=t*(1+.2/r);n=Math.min(n,e+0x6000000);e:{n=(Math.min(0xffff0000,65536*Math.ceil(Math.max(e,n)/65536))-es.buffer.byteLength+65535)/65536|0;try{es.grow(n),k();var o=1;break e}catch{}o=void 0}if(o)return!0}return!1}var rw=e=>{var t=ta(e)+1,r=n6(t);return tn(e,r,t),r},rb=(e,t)=>{(x(),B)[e>>>2>>>0]=t;var r=(x(),B)[e>>>2>>>0];(x(),B)[e+4>>>2>>>0]=(t-r)/0x100000000},rv=e=>(x(),B)[e>>>2>>>0]+0x100000000*(x(),U)[e+4>>>2>>>0],rT=[],rE=[],rx=[],rA=(e,t)=>{rx[e]=new Promise(r=>t.finally(()=>r(e)))},rC=e=>{if(e)return rT[e>>>0]},rO=(e,t,r)=>{(x(),B)[e>>>2>>>0]=t,(x(),B)[e+4>>>2>>>0]=r},rI=e=>eL((x(),B)[e>>>2>>>0],e=(x(),B)[e+4>>>2>>>0]),rS=e=>{var t=(x(),B)[e>>>2>>>0];return e=(x(),B)[e+4>>>2>>>0],t?eL(t,e):0===e?"":void 0},rU=(e,t)=>{function r(r,n){r=e[r],(x(),B)[t+n>>>2>>>0]=r}r("maxTextureDimension1D",4),r("maxTextureDimension2D",8),r("maxTextureDimension3D",12),r("maxTextureArrayLayers",16),r("maxBindGroups",20),r("maxBindGroupsPlusVertexBuffers",24),r("maxBindingsPerBindGroup",28),r("maxDynamicUniformBuffersPerPipelineLayout",32),r("maxDynamicStorageBuffersPerPipelineLayout",36),r("maxSampledTexturesPerShaderStage",40),r("maxSamplersPerShaderStage",44),r("maxStorageBuffersPerShaderStage",48),r("maxStorageTexturesPerShaderStage",52),r("maxUniformBuffersPerShaderStage",56),r("minUniformBufferOffsetAlignment",80),r("minStorageBufferOffsetAlignment",84),rb(t+64,e.maxUniformBufferBindingSize),rb(t+72,e.maxStorageBufferBindingSize),r("maxVertexBuffers",88),rb(t+96,e.maxBufferSize),r("maxVertexAttributes",104),r("maxVertexBufferArrayStride",108),r("maxInterStageShaderVariables",112),r("maxColorAttachments",116),r("maxColorAttachmentBytesPerSample",120),r("maxComputeWorkgroupStorageSize",124),r("maxComputeInvocationsPerWorkgroup",128),r("maxComputeWorkgroupSizeX",132),r("maxComputeWorkgroupSizeY",136),r("maxComputeWorkgroupSizeZ",140),r("maxComputeWorkgroupsPerDimension",144),void 0!==e.Be&&r("maxImmediateSize",148)},rB=[,"validation","out-of-memory","internal"],rM=[,"compatibility","core"],rL={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"},rR=[,"low-power","high-performance"],rP=[,"occlusion","timestamp"],r$={undefined:1,unknown:1,destroyed:2};function rN(e,t,r,n,o,i){t=ec(t),r=ec(r),n>>>=0,o>>>=0,i>>>=0;var s=rC(e>>>0);if(e={},i){var u=(x(),B)[i+12>>>2>>>0];if(u){var f=(x(),B)[i+16>>>2>>>0];e.requiredFeatures=Array.from((x(),B).subarray(f>>>2>>>0,f+4*u>>>2>>>0),e=>rL[e])}var l=(x(),B)[i+20>>>2>>>0];if(l){let t=function(e,t,r=!1){t=l+t,0xffffffff==(t=(x(),B)[t>>>2>>>0])||r&&0==t||(c[e]=t)},r=function(e,t){t=l+t;var r=(x(),B)[t>>>2>>>0],n=(x(),B)[t+4>>>2>>>0];0xffffffff==r&&0xffffffff==n||(c[e]=rv(t))};var c={};t("maxTextureDimension1D",4),t("maxTextureDimension2D",8),t("maxTextureDimension3D",12),t("maxTextureArrayLayers",16),t("maxBindGroups",20),t("maxBindGroupsPlusVertexBuffers",24),t("maxDynamicUniformBuffersPerPipelineLayout",32),t("maxDynamicStorageBuffersPerPipelineLayout",36),t("maxSampledTexturesPerShaderStage",40),t("maxSamplersPerShaderStage",44),t("maxStorageBuffersPerShaderStage",48),t("maxStorageTexturesPerShaderStage",52),t("maxUniformBuffersPerShaderStage",56),t("minUniformBufferOffsetAlignment",80),t("minStorageBufferOffsetAlignment",84),r("maxUniformBufferBindingSize",64),r("maxStorageBufferBindingSize",72),t("maxVertexBuffers",88),r("maxBufferSize",96),t("maxVertexAttributes",104),t("maxVertexBufferArrayStride",108),t("maxInterStageShaderVariables",112),t("maxColorAttachments",116),t("maxColorAttachmentBytesPerSample",120),t("maxComputeWorkgroupStorageSize",124),t("maxComputeInvocationsPerWorkgroup",128),t("maxComputeWorkgroupSizeX",132),t("maxComputeWorkgroupSizeY",136),t("maxComputeWorkgroupSizeZ",140),t("maxComputeWorkgroupsPerDimension",144),t("maxImmediateSize",148,!0),e.requiredLimits=c}(u=(x(),B)[i+24>>>2>>>
vendor: 5,344 bytes, line 3
30])&&(u={label:rS(u+4)},e.defaultQueue=u),e.label=rS(i+4)}Y+=1,rA(t,s.requestDevice(e).then(e=>{--Y,tg(()=>{rT[o>>>0]=e.queue,rT[n>>>0]=e,Y+=1,rA(r,e.lost.then(t=>{tg(()=>{e.onuncapturederror=()=>{};var n=n8(),o=rw(t.message);nW(r,r$[t.reason],o),n4(n)}),--Y})),e.onuncapturederror=e=>{var t=5;e.error instanceof GPUValidationError?t=2:e.error instanceof GPUOutOfMemoryError?t=3:e.error instanceof GPUInternalError&&(t=4);var r=n8();e=rw(e.error.message),nH(n,t,e),n4(r)},"adapterInfo"in e||(e.adapterInfo=s.info),nj(t,1,n,0)})},e=>{--Y,tg(()=>{var o=n8(),i=rw(e.message);nj(t,3,n,i),r&&nW(r,4,i),n4(o)})}))}function rk(e){var t=rC(e>>>=0),r=rE[e];if(r){for(var n=0;n<r.length;++n)r[n]();delete rE[e]}t.destroy()}function r_(e,t,r){r>>>=0;var n=rC(e>>>=0);0xffffffff==r&&(r=void 0);try{var o=n.getMappedRange(t>>>0,r)}catch{return 0}var i=n0(16,o.byteLength);return(x(),O).set(new Uint8Array(o),i>>>0),rE[e].push(()=>nI(i)),i}function rD(e,t,r){r>>>=0;var n=rC(e>>>=0);0xffffffff==r&&(r=void 0);try{var o=n.getMappedRange(t>>>0,r)}catch{return 0}var i=n0(16,o.byteLength);return(x(),O).fill(0,i,o.byteLength),rE[e].push(()=>{new Uint8Array(o).set((x(),O).subarray(i>>>0,i+o.byteLength>>>0)),nI(i)}),i}function rG(e,t,r,n,o){e>>>=0,t=ec(t),r=ec(r),o>>>=0;var i=rC(e);rE[e]=[],0xffffffff==o&&(o=void 0),Y+=1,rA(t,i.mapAsync(r,n>>>0,o).then(()=>{--Y,tg(()=>{nF(t,1,0)})},r=>{--Y,tg(()=>{n8();var n=rw(r.message);nF(t,"AbortError"===r.name?4:3*("OperationError"===r.name),n),delete rE[e]})}))}function rW(e){var t=rC(e>>>=0),r=rE[e];if(r){for(var n=0;n<r.length;++n)r[n]();delete rE[e],t.unmap()}}function rF(e){delete rT[e>>>0]}function rV(e,t,r){e>>>=0,t>>>=0,r>>>=0;var n=!!(x(),B)[t+32>>>2>>>0];t={label:rS(t+4),usage:(x(),B)[t+16>>>2>>>0],size:rv(t+24),mappedAtCreation:n},e=rC(e);try{var o=e.createBuffer(t)}catch{return!1}return rT[r>>>0]=o,n&&(rE[r]=[]),!0}function rz(e,t,r,n){e>>>=0,t=ec(t),n>>>=0,r=(e=>{var t=rS(e+4),r=(r=(x(),B)[e+12>>>2>>>0])?rC(r):"auto";if(e+=16){var n=rC((x(),B)[e+4>>>2>>>0]),o=(x(),B)[e+16>>>2>>>0],i=(x(),B)[e+20>>>2>>>0];if(o){for(var s={},u=0;u<o;++u){var f=i+24*u;s[rI(f+4)]=(x(),L)[f+16>>>3>>>0]}o=s}else o=void 0;e={module:n,constants:o,entryPoint:rS(e+8)}}else e=void 0;return{label:t,layout:r,compute:e}})(r>>>0),e=rC(e),Y+=1,rA(t,e.createComputePipelineAsync(r).then(e=>{--Y,tg(()=>{rT[n>>>0]=e,nG(t,1,n,0)})},e=>{--Y,tg(()=>{var r=n8(),o=rw(e.message);nG(t,"validation"===e.reason?3:4*("internal"===e.reason),n,o),n4(r)})}))}function rj(e,t,r){e>>>=0,t>>>=0,r>>>=0;var n=(x(),B)[t>>>2>>>0],o=(x(),U)[n+4>>>2>>>0];t={label:rS(t+4),code:""},2===o&&(t.code=rI(n+8)),e=rC(e).createShaderModule(t),rT[r>>>0]=e}var rH=e=>{(e=rC(e)).onuncapturederror=null,e.destroy()};function rq(e,t){t=ec(t),e=rC(e>>>0),Y+=1,rA(t,e.popErrorScope().then(e=>{--Y,tg(()=>{var r=5;e?e instanceof GPUValidationError?r=2:e instanceof GPUOutOfMemoryError?r=3:e instanceof GPUInternalError&&(r=4):r=1;var n=n8(),o=e?rw(e.message):0;nV(t,1,r,o),n4(n)})},e=>{--Y,tg(()=>{var r=n8(),n=rw(e.message);nV(t,1,5,n),n4(r)})}))}function rY(e,t,r,n){if(t=ec(t),n>>>=0,r>>>=0){var o={featureLevel:rM[(x(),U)[r+4>>>2>>>0]],powerPreference:rR[(x(),U)[r+8>>>2>>>0]],forceFallbackAdapter:!!(x(),B)[r+12>>>2>>>0]};0!==(e=(x(),B)[r>>>2>>>0])&&(x(),o.Fe=!!(x(),B)[e+8>>>2>>>0])}"gpu"in navigator?(Y+=1,rA(t,navigator.gpu.requestAdapter(o).then(e=>{--Y,tg(()=>{if(e)rT[n>>>0]=e,nz(t,1,n,0);else{var r=n8(),o=rw("WebGPU not available on this browser (requestAdapter returned null)");nz(t,3,n,o),n4(r)}})},e=>{--Y,tg(()=>{var r=n8(),o=rw(e.message);nz(t,4,n,o),n4(r)})}))):(o=n8(),e=rw("WebGPU not available on this browser (navigator.gpu is not available)"),nz(t,3,n,e),n4(o))}function rZ(e,t,r){return e>>>=0,t>>>=0,r>>>=0,tk(async()=>{var n=[];if(r){var o=(x(),U)[r>>>2>>>0];n.length=t+1,n[t]=new Promise(e=>setTimeout(e,o,0))}else n.length=t;for(var i=0;i<t;++i){var s=rv(e+8*i);if(!(s in rx))return s;n[i]=rx[s]}return n=await Promise.race(n),delete rx[n],n})}var rX,rQ={},rJ=()=>{if(!rX){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 rQ)void 0===rQ[e]?delete t[e]:t[e]=rQ[e];var r=[];for(e in t)r.push(`${e}=${t[e]}`);rX=r}return rX};function rK(e,t){if(o)return Z(19,1,e,t);e>>>=0,t>>>=0;var r,n=0,i=0;for(r of rJ()){var s=t+n;(x(),B)[e+i>>>2>>>0]=s,n+=tn(r,s,1/0)+1,i+=4}return 0}function r0(e,t){if(o)return Z(20,1,e,t);e>>>=0,t>>>=0;var r=rJ();for(var n of((x(),B)[e>>>2>>>0]=r.length,e=0,r))e+=ta(n)+1;return(x(),B)[t>>>2>>>0]=e,0}function r1(e){return o?Z(21,1,e):52}function r2(e,t,r,n){return o?Z(22,1,e,t,r,n):52}function r3(e,t,r,n){return o?Z(23,1,e,t,r,n):70}var r4=[null,[],[]];function r6(e,t,r,n){if(o)return Z(24,1,e,t,r,n);t>>>=0,r>>>=0,n>>>=0;for(var i=0,s=0;s<r;s++){var u=(x(),B)[t>>>2>>>0],f=(x(),B)[t+4>>>2>>>0];t+=8;for(var l=0;l<f;l++){var c=(x(),O)[u+l>>>0],p=r4[e];0===c||10===c?((1===e?b:v)(eM(p)),p.length=0):p.push(c)}i+=f}return(x(),B)[n>>>2>>>0]=i,0}function r8(e){return e>>>0}function r5(e,t){return rU(rC(e>>>0).limits,t>>>0),1}function r7(e,t){return rC(e>>>0).features.has(rL[t])}function r9(e){return BigInt(rC(e>>>0).size)}function ne(e){return BigInt(rC(e>>>0).usage)}function nt(e,t){if(e>>>=0,t>>>=0){var r=rS(t+4);r={label:r,timestampWrites:t=0!==(t=(x(),B)[t+12>>>2>>>
30])?{querySet:rC((x(),B)[t+4>>>2>>>0]),beginningOfPassWriteIndex:(x(),B)[t+8>>>2>>>0],endOfPassWriteIndex:(x(),B)[t+12>>>2>>>0]}:void 0}}return t=rC(e),e=n$(0),r=t.beginComputePass(r),rT[e>>>0]=r,e}function nr(e,t,r,n){r=ec(r),-1==(n=ec(n))&&(n=void 0),(e=rC(e>>>0)).clearBuffer(rC(t>>>0),r,n)}function nn(e,t,r,n,o,i){r=ec(r),o=ec(o),i=ec(i),rC(e>>>0).copyBufferToBuffer(rC(t>>>0),r,rC(n>>>0),o,i)}function na(e){var t=rC(e>>>0);return e=nR(0),t=t.finish(),rT[e>>>0]=t,e}function no(e,t,r,n,o,i){i=ec(i),rC(e>>>0).resolveQuerySet(rC(t>>>0),r,n,rC(o>>>0),i)}function ni(e,t,r,n){rC(e>>>0).dispatchWorkgroups(t,r,n)}function ns(e,t,r){r=ec(r),rC(e>>>0).dispatchWorkgroupsIndirect(rC(t>>>0),r)}function nu(e){rC(e>>>0).end()}function nf(e,t,r,n,o){n>>>=0,o>>>=0,e=rC(e>>>0),r=rC(r>>>0),0==n?e.setBindGroup(t,r):e.setBindGroup(t,r,(x(),B),o>>>2,n)}function nl(e,t){rC(e>>>0).setPipeline(rC(t>>>0))}function nc(e,t,r){rC(e>>>0).Ee(rC(t>>>0),r)}function np(e,t){var r=rC(e>>>0);return e=nL(0),t=r.getBindGroupLayout(t),rT[e>>>0]=t,e}function nd(e,t){e>>>=0,t={label:rS((t>>>=0)+4),layout:rC((x(),B)[t+12>>>2>>>0]),entries:function(e,t){for(var r=[],n=0;n<e;++n)r.push(function(e){var t=(x(),B)[e+8>>>2>>>0],r=(x(),B)[e+32>>>2>>>0],n=(x(),B)[e+36>>>2>>>0],o=0;return((e,t)=>{for(e=(x(),B)[e>>>2>>>0];e;e=(x(),B)[e>>>2>>>0])t[(x(),U)[e+4>>>2>>>0]](e)})(e,{327681:e=>{o=(x(),B)[e+8>>>2>>>0]}}),t?(-1==(r=rv(e+24))&&(r=void 0),t={buffer:rC(t),offset:rv(e+16),size:r}):t=rC(r||n||o),{binding:(x(),B)[e+4>>>2>>>0],resource:t}}(t+40*n));return r}((x(),B)[t+16>>>2>>>0],(x(),B)[t+20>>>2>>>0])},e=rC(e);var r,n=nM(0);return r=e.createBindGroup(t),rT[n>>>0]=r,n}function nh(e,t){var r;return e>>>=0,(t>>>=0)&&(r={label:rS(t+4)}),t=rC(e),e=nP(0),r=t.createCommandEncoder(r),rT[e>>>0]=r,e}function nm(e,t){e>>>=0,t>>>=0,t={type:rP[(x(),U)[t+12>>>2>>>0]],count:(x(),B)[t+16>>>2>>>0]};var r=rC(e);return e=nN(0),t=r.createQuerySet(t),rT[e>>>0]=t,e}function ng(e,t){e=rC(e>>>0).adapterInfo,t>>>=0,(x(),B)[t+52>>>2>>>0]=e.subgroupMinSize,(x(),B)[t+56>>>2>>>0]=e.subgroupMaxSize;var r=e.vendor+e.architecture+e.device+e.description,n=ta(r)+1,o=nS(n);return o&&tn(r,o,n),rO(t+4,r=o,n=ta(e.vendor)),rO(t+12,r+=n,n=ta(e.architecture)),rO(t+20,r+=n,n=ta(e.device)),rO(t+28,r+n,ta(e.description)),(x(),U)[t+36>>>2>>>0]=2,e=e.isFallbackAdapter?3:4,(x(),U)[t+40>>>2>>>0]=e,(x(),B)[t+44>>>2>>>0]=0,(x(),B)[t+48>>>2>>>0]=0,1}var ny={"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 nw(e,t){t>>>=0;var r=rC(e>>>0);e=nS(4*r.features.size);var n=0,o=0;for(let t of r.features)0<=(r=ny[t])&&((x(),U)[e+n>>>2>>>0]=r,n+=4,o++);(x(),B)[t+4>>>2>>>0]=e,(x(),B)[t>>>2>>>0]=o}function nb(e,t){return rU(rC(e>>>0).limits,t>>>0),1}function nv(e,t){rC(e>>>0).pushErrorScope(rB[t])}function nT(e,t,r){t>>>=0,r>>>=0,e=rC(e>>>0),t=Array.from((x(),U).subarray(r>>>2>>>0,r+4*t>>>2>>>0),e=>rC(e)),e.submit(t)}function nE(e,t,r,n,o){r=ec(r),n>>>=0,o>>>=0,e=rC(e>>>0),t=rC(t>>>0),n=(x(),O).subarray(n>>>0,n+o>>>0),e.writeBuffer(t,r,n,0,o)}o||function(){for(var t=e.numThreads-1;t--;)ei();z.push(async()=>{var e=async function(){if(!o)return Promise.all(K.map(eo))}();j++,await e,0==--j&&H&&(e=H,H=null,e())})}(),o||(es=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),k()),e.wasmBinary&&(c=e.wasmBinary),e.stackSave=()=>n8(),e.stackRestore=e=>n4(e),e.stackAlloc=e=>n6(e),e.setValue=function(e,t,r="i8"){switch(r.endsWith("*")&&(r="*"),r){case"i1":case"i8":(x(),C)[e>>>0]=t;break;case"i16":(x(),I)[e>>>1>>>0]=t;break;case"i32":(x(),U)[e>>>2>>>0]=t;break;case"i64":(x(),R)[e>>>3>>>
vendor: 5,530 bytes, line 3
30]=BigInt(t);break;case"float":(x(),M)[e>>>2>>>0]=t;break;case"double":(x(),L)[e>>>3>>>0]=t;break;case"*":(x(),B)[e>>>2>>>0]=t;break;default:D(`invalid type for setValue: ${r}`)}},e.getValue=function(e,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":case"i8":return(x(),C)[e>>>0];case"i16":return(x(),I)[e>>>1>>>0];case"i32":return(x(),U)[e>>>2>>>0];case"i64":return(x(),R)[e>>>3>>>0];case"float":return(x(),M)[e>>>2>>>0];case"double":return(x(),L)[e>>>3>>>0];case"*":return(x(),B)[e>>>2>>>0];default:D(`invalid type for getValue: ${t}`)}},e.UTF8ToString=eL,e.stringToUTF8=tn,e.lengthBytesUTF8=ta;var nx,nA,nC,nO,nI,nS,nU,nB,nM,nL,nR,nP,n$,nN,nk,n_,nD,nG,nW,nF,nV,nz,nj,nH,nq,nY,nZ,nX,nQ,nJ,nK,n0,n1,n2,n3,n4,n6,n8,n5,n7,n9,ae,at,ar,an,aa,ao,ai,as,au,af,al,ac,ap,ad,ah,am,ag,ay,aw,ab,av,aT,aE,ax,aA,aC,aO,aI,aS,aU,aB,aM,aL,aR,aP,a$,aN,ak,a_,aD,aG,aW,aF,aV=[X,Q,eO,eR,eP,e$,eN,ek,e_,eD,eG,eW,eF,eV,ez,ej,t9,re,rn,rK,r0,r1,r2,r3,r6],az={1028716:(t,r,n,o,i)=>{if(void 0===e||!e.Vc)return 1;if((t=eL(Number(t>>>0))).startsWith("./")&&(t=t.substring(2)),!(t=e.Vc.get(t)))return 2;if(r=Number(r>>>0),n=Number(n>>>0),o=Number(o>>>0),r+n>t.byteLength)return 3;try{let s=t.subarray(r,r+n);switch(i){case 0:(x(),O).set(s,o>>>0);break;case 1:e.bd?e.bd(o,s):e.pe(o,s);break;default:return 4}return 0}catch{return 4}},1029540:(t,r,n)=>{e.Td(t,(x(),O).subarray(r>>>0,r+n>>>0))},1029604:()=>e.ne(),1029646:t=>{e.kd(t)},1029683:()=>"u">typeof wasmOffsetConverter};function aj(e,t,r,n){var o=n8();try{return al(e,t,r,n)}catch(e){if(n4(o),e!==e+0)throw e;n1(1,0)}}function aH(e,t,r){var n=n8();try{return as(e,t,r)}catch(e){if(n4(n),e!==e+0)throw e;n1(1,0)}}function aq(e){var t=n8();try{an(e)}catch(e){if(n4(t),e!==e+0)throw e;n1(1,0)}}function aY(e,t){var r=n8();try{return ar(e,t)}catch(e){if(n4(r),e!==e+0)throw e;n1(1,0)}}function aZ(e,t,r){var n=n8();try{at(e,t,r)}catch(e){if(n4(n),e!==e+0)throw e;n1(1,0)}}function aX(e,t){var r=n8();try{ac(e,t)}catch(e){if(n4(r),e!==e+0)throw e;n1(1,0)}}function aQ(e,t,r,n,o,i,s){var u=n8();try{return ai(e,t,r,n,o,i,s)}catch(e){if(n4(u),e!==e+0)throw e;n1(1,0)}}function aJ(e,t,r,n,o,i){var s=n8();try{aa(e,t,r,n,o,i)}catch(e){if(n4(s),e!==e+0)throw e;n1(1,0)}}function aK(e,t,r,n){var o=n8();try{af(e,t,r,n)}catch(e){if(n4(o),e!==e+0)throw e;n1(1,0)}}function a0(e,t,r,n,o,i,s){var u=n8();try{ad(e,t,r,n,o,i,s)}catch(e){if(n4(u),e!==e+0)throw e;n1(1,0)}}function a1(e,t,r,n,o,i,s){var u=n8();try{ah(e,t,r,n,o,i,s)}catch(e){if(n4(u),e!==e+0)throw e;n1(1,0)}}function a2(e,t,r,n,o,i,s,u){var f=n8();try{ax(e,t,r,n,o,i,s,u)}catch(e){if(n4(f),e!==e+0)throw e;n1(1,0)}}function a3(e,t,r,n,o,i,s,u,f,l,c,p){var d=n8();try{am(e,t,r,n,o,i,s,u,f,l,c,p)}catch(e){if(n4(d),e!==e+0)throw e;n1(1,0)}}function a4(e,t,r,n,o){var i=n8();try{return ap(e,t,r,n,o)}catch(e){if(n4(i),e!==e+0)throw e;n1(1,0)}}function a6(e,t,r,n,o,i){var s=n8();try{aA(e,t,r,n,o,i)}catch(e){if(n4(s),e!==e+0)throw e;n1(1,0)}}function a8(e,t,r,n,o){var i=n8();try{ao(e,t,r,n,o)}catch(e){if(n4(i),e!==e+0)throw e;n1(1,0)}}function a5(e,t,r,n,o,i,s,u){var f=n8();try{au(e,t,r,n,o,i,s,u)}catch(e){if(n4(f),e!==e+0)throw e;n1(1,0)}}function a7(e){var t=n8();try{return aC(e)}catch(e){if(n4(t),e!==e+0)throw e;n1(1,0)}}function a9(e,t,r){var n=n8();try{return aO(e,t,r)}catch(e){if(n4(n),e!==e+0)throw e;n1(1,0)}}function oe(e,t){var r=n8();try{return ak(e,t)}catch(e){if(n4(r),e!==e+0)throw e;return n1(1,0),0n}}function ot(e){var t=n8();try{return ag(e)}catch(e){if(n4(t),e!==e+0)throw e;return n1(1,0),0n}}function or(e,t,r,n){var o=n8();try{return aI(e,t,r,n)}catch(e){if(n4(o),e!==e+0)throw e;n1(1,0)}}function on(e,t,r,n,o){var i=n8();try{return aS(e,t,r,n,o)}catch(e){if(n4(i),e!==e+0)throw e;n1(1,0)}}function oa(e,t,r,n,o,i){var s=n8();try{return aU(e,t,r,n,o,i)}catch(e){if(n4(s),e!==e+0)throw e;n1(1,0)}}function oo(e,t,r,n,o,i){var s=n8();try{return aT(e,t,r,n,o,i)}catch(e){if(n4(s),e!==e+0)throw e;n1(1,0)}}function oi(e,t,r,n,o,i){var s=n8();try{return aB(e,t,r,n,o,i)}catch(e){if(n4(s),e!==e+0)throw e;n1(1,0)}}function os(e,t,r,n,o,i,s,u){var f=n8();try{return aE(e,t,r,n,o,i,s,u)}catch(e){if(n4(f),e!==e+0)throw e;n1(1,0)}}function ou(e,t,r,n,o){var i=n8();try{return aM(e,t,r,n,o)}catch(e){if(n4(i),e!==e+0)throw e;return n1(1,0),0n}}function of(e,t,r,n){var o=n8();try{return aL(e,t,r,n)}catch(e){if(n4(o),e!==e+0)throw e;n1(1,0)}}function ol(e,t,r,n){var o=n8();try{return aR(e,t,r,n)}catch(e){if(n4(o),e!==e+0)throw e;n1(1,0)}}function oc(e,t,r,n,o,i,s,u,f,l,c,p){var d=n8();try{return aP(e,t,r,n,o,i,s,u,f,l,c,p)}catch(e){if(n4(d),e!==e+0)throw e;n1(1,0)}}function op(e,t,r,n,o,i,s,u,f,l,c){var p=n8();try{a$(e,t,r,n,o,i,s,u,f,l,c)}catch(e){if(n4(p),e!==e+0)throw e;n1(1,0)}}function od(e,t,r,n,o,i,s,u,f,l,c,p,d,h,m,g){var y=n8();try{aN(e,t,r,n,o,i,s,u,f,l,c,p,d,h,m,g)}catch(e){if(n4(y),e!==e+0)throw e;n1(1,0)}}function oh(e,t,r){var n=n8();try{return aw(e,t,r)}catch(e){if(n4(n),e!==e+0)throw e;return n1(1,0),0n}}function om(e,t,r){var n=n8();try{return ay(e,t,r)}catch(e){if(n4(n),e!==e+0)throw e;n1(1,0)}}function og(e,t,r){var n=n8();try{return ab(e,t,r)}catch(e){if(n4(n),e!==e+0)throw e;n1(1,0)}}function oy(e,t,r,n){var o=n8();try{av(e,t,r,n)}catch(e){if(n4(o),e!==e+0)throw e;n1(1,0)}}function ow(){if(0<j)H=ow;else if(o)h?.(e),_();else{for(;0<z.length;)z.shift()(e);0<j?H=ow:(e.calledRun=!0,T||(_(),h?.(e)))}}return o||(aF=await W(),ow()),e.PTR_SIZE=4,e.webgpuInit=t=>{let r=new WeakMap,n,o,i=1;e.webgpuRegisterDevice=e=>{if(void 0!==o)throw Error("another WebGPU EP inference session is being created.");
3if(e){var t=r.get(e);if(!t){let n=((e,t=0)=>{var r=nD(t);return t=n_(t,r),rT[r>>>0]=e.queue,rT[t>>>0]=e,t})(e,t=nB(0));t=[i++,t,n],r.set(e,t)}return n=e,o=t[0],t}n=void 0,o=0};let s=new Map;e.webgpuOnCreateSession=e=>{if(void 0!==o){var r=o;if(o=void 0,e){let o=nC(r);s.set(e,o),0===r&&t(n??rC(o))}n=void 0}},e.webgpuOnReleaseSession=e=>{s.delete(e)};let u=Symbol("gpuBufferMetadata");e.webgpuRegisterBuffer=(e,t,r)=>{if(r)return e[u]=[r,NaN],r;if(r=e[u])return r[1]++,r[0];if(void 0===(t=s.get(t)))throw Error("Invalid session handle passed to webgpuRegisterBuffer");return t=((e,t=0)=>("unmapped"===e.mapState||D(),rT[(t=nk(t))>>>0]=e,t))(e,t),e[u]=[t,1],t},e.webgpuUnregisterBuffer=e=>{let t=e[u];if(!t)throw Error("Buffer is not registered");t[1]--,0===t[1]&&(nU(t[0]),delete e[u])},e.webgpuGetBuffer=e=>rC(e),e.webgpuCreateDownloader=(e,t,r)=>{if(void 0===(r=s.get(r)))throw Error("Invalid session handle passed to webgpuRegisterBuffer");let n=rC(r),o=16*Math.ceil(Number(t)/16);return async()=>{let r=n.createBuffer({size:o,usage:9});try{let i=n.createCommandEncoder();return i.copyBufferToBuffer(e,0,r,0,o),n.queue.submit([i.finish()]),await r.mapAsync(GPUMapMode.READ),r.getMappedRange().slice(0,t)}finally{r.destroy()}}},e.bd=(e,t)=>{var r=t.buffer;let i=t.byteOffset,s=t.byteLength;if(t=16*Math.ceil(Number(s)/16),e=rC(e),!n){var u=nC(o);n=rC(u)}new Uint8Array((u=n.createBuffer({mappedAtCreation:!0,size:t,usage:6})).getMappedRange()).set(new Uint8Array(r,i,s)),u.unmap(),(r=n.createCommandEncoder()).copyBufferToBuffer(u,0,e,0,t),n.queue.submit([r.finish()]),u.destroy()}},e.webnnInit=t=>{let r=t[0];[e.ne,e.kd,e.webnnEnsureTensor,e.Td,e.webnnDownloadTensor,e.me,e.webnnEnableTraceEvent]=t.slice(1),e.webnnReleaseTensorId=e.kd,e.webnnUploadTensor=e.Td,e.webnnRegisterMLContext=e.me,e.webnnOnRunStart=e=>r.onRunStart(e),e.webnnOnRunEnd=r.onRunEnd.bind(r),e.webnnOnReleaseSession=e=>{r.onReleaseSession(e)},e.webnnCreateMLTensorDownloader=(e,t)=>r.createMLTensorDownloader(e,t),e.webnnRegisterMLTensor=(e,t,n,o)=>r.registerMLTensor(e,t,n,o),e.webnnCreateMLContext=e=>r.createMLContext(e),e.webnnRegisterMLConstant=(t,n,o,i,s,u)=>r.registerMLConstant(t,n,o,i,s,e.Vc,u),e.webnnRegisterGraphInput=r.registerGraphInput.bind(r),e.webnnIsGraphInput=r.isGraphInput.bind(r),e.webnnRegisterGraphOutput=r.registerGraphOutput.bind(r),e.webnnIsGraphOutput=r.isGraphOutput.bind(r),e.webnnCreateTemporaryTensor=r.createTemporaryTensor.bind(r),e.webnnIsGraphInputOutputTypeSupported=r.isGraphInputOutputTypeSupported.bind(r)},N?e:new Promise((e,t)=>{h=e,m=t})}z(ey,{default:()=>eb});var eb,ev,eT,eE,ex,eA,eC,eO,eI,eS,eU,eB,eM,eL,eR,eP,e$,eN,ek,e_,eD,eG,eW,eF,eV,ez,ej,eH,eq,eY,eZ,eX,eQ,eJ,eK,e0,e1,e2,e3,e4,e6,e8,e5,e7,e9,te,tt,tr,tn,ta,to,ti,ts=V(()=>{eb=ew,globalThis.self?.name?.startsWith("em-pthread")&&ew()}),tu=V(()=>{ep(),ev=typeof location>"u"?void 0:location.origin,eE=(eT=!0,URL,new URL(new r.U(r(15893)).href,ev).href),ex=()=>{if(eE&&!eE.startsWith("blob:"))return eE.substring(0,eE.lastIndexOf("/")+1)},eA=(e,t)=>{try{let r=t??eE;return(r?new URL(e,r):new URL(e)).origin===ev}catch{return!1}},eC=async e=>{let t=await (await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(t)},eO=async e=>(await import(e)).default,eI=(eg(),j(ed)).default,eS=async()=>{if(!eE)throw Error("Failed to load proxy worker: cannot determine the script source URL.");if(eA(eE))return[void 0,eI()];let e=await eC(eE);return[e,eI(e)]},eU=(ts(),j(ey)).default,eB=async(e,t,r,n)=>{let o=eU&&!(e||t);if(o)if(eE)o=eA(eE)||n&&!r;else if(n&&!r)o=!0;else throw Error("cannot determine the script source URL.");if(o)return[void 0,eU];{let n,o,i="ort-wasm-simd-threaded.asyncify.mjs",s=e??((e,t)=>{let r=t??eE;try{return(r?new URL(e,r):new URL(e)).href}catch{return}})(i,t),u=r&&s&&!eA(s,t),f=u?await eC(s):s??(n=i,o=t,`${o??"./"}${n}`);return[u?f:void 0,await eO(f)]}}}),tf=V(()=>{tu(),eL=!1,eR=!1,eP=!1,e$=async e=>{if(eL)return Promise.resolve();if(eR)throw Error("multiple calls to 'initializeWebAssembly()' detected.");if(eP)throw Error("previous call to 'initializeWebAssembly()' failed.");eR=!0;let t=e.initTimeout,r=e.numThreads;if(!1!==e.simd){if("relaxed"===e.simd){if(!(()=>{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}})())throw Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!(()=>{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}})())throw Error("WebAssembly SIMD is not supported in the current environment.")}let n=(()=>
3{if(typeof SharedArrayBuffer>"u")return!1;try{return"u">typeof MessageChannel&&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}})();r>1&&!n&&("u">typeof self&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+r+", 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."),e.numThreads=r=1);let o=e.wasmPaths,i="string"==typeof o?o:void 0,s=o?.mjs,u=s?.href??s,f=o?.wasm,l=f?.href??f,c=e.wasmBinary,[p,d]=await eB(u,i,r>1,!!c||!!l),h=!1,m=[];if(t>0&&m.push(new Promise(e=>{setTimeout(()=>{h=!0,e()},t)})),m.push(new Promise((e,t)=>{let n={numThreads:r};if(c)n.wasmBinary=c,n.locateFile=e=>e;else if(l||i)n.locateFile=e=>l??i+e;else if(u&&0!==u.indexOf("blob:"))n.locateFile=e=>new URL(e,u).href;else if(p){let e=ex();e&&(n.locateFile=t=>e+t)}d(n).then(t=>{eR=!1,eL=!0,eM=t,e(),p&&URL.revokeObjectURL(p)},e=>{eR=!1,eP=!0,t(e)})})),await Promise.race(m),h)throw Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`)},eN=()=>{if(eL&&eM)return eM;throw Error("WebAssembly is not initialized yet.")}}),tl=V(()=>{tf(),ek=(e,t)=>{let r=eN(),n=r.lengthBytesUTF8(e)+1,o=r._malloc(n);return r.stringToUTF8(e,o,n),t.push(o),o},e_=(e,t,r,n)=>{if("object"==typeof e&&null!==e){if(r.has(e))throw Error("Circular reference in options");r.add(e)}Object.entries(e).forEach(([e,o])=>{let i=t?t+e:e;if("object"==typeof o)e_(o,i+".",r,n);else if("string"==typeof o||"number"==typeof o)n(i,o.toString());else if("boolean"==typeof o)n(i,o?"1":"0");else throw Error(`Can't handle extra config type: ${typeof o}`)})},eD=e=>{let t=eN(),r=t.stackSave();try{let r=t.PTR_SIZE,n=t.stackAlloc(2*r);t._OrtGetLastError(n,n+r);let o=Number(t.getValue(n,4===r?"i32":"i64")),i=t.getValue(n+r,"*"),s=i?t.UTF8ToString(i):"";throw Error(`${e} ERROR_CODE: ${o}, ERROR_MESSAGE: ${s}`)}finally{t.stackRestore(r)}}}),tc=V(()=>{tf(),tl(),eG=e=>{let t=eN(),r=0,n=[],o=e||{};try{if(e?.logSeverityLevel===void 0)o.logSeverityLevel=2;else if("number"!=typeof e.logSeverityLevel||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw Error(`log severity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)o.logVerbosityLevel=0;else if("number"!=typeof e.logVerbosityLevel||!Number.isInteger(e.logVerbosityLevel))throw Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(o.terminate=!1);let i=0;return e?.tag!==void 0&&(i=ek(e.tag,n)),r=t._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,i),0===r&&eD("Can't create run options."),e?.extra!==void 0&&e_(e.extra,"",new WeakSet,(e,o)=>{let i=ek(e,n),s=ek(o,n);0!==t._OrtAddRunConfigEntry(r,i,s)&&eD(`Can't set a run config entry: ${e} - ${o}.`)}),[r,n]}catch(e){throw 0!==r&&t._OrtReleaseRunOptions(r),n.forEach(e=>t._free(e)),e}}}),tp=V(()=>{tf(),tl(),eW=(e,t,r,n)=>{let o=ek(t,n),i=ek(r,n);0!==eN()._OrtAddSessionConfigEntry(e,o,i)&&eD(`Can't set a session config entry: ${t} - ${r}.`)},eF=(e,t,r,n)=>{let o=ek(t,n),i=ek(r,n);e.push([o,i])},eV=async(e,t,r)=>{for(let n of t.executionProviders){let o="string"==typeof n?n:n.name,i=[];switch(o){case"webnn":if(o="WEBNN",eW(e,"session.disable_quant_qdq","1",r),eW(e,"session.disable_qdq_constant_folding","1",r),"string"!=typeof n){let t=n?.deviceType;t&&eW(e,"deviceType",t,r)}break;case"webgpu":{let e;if(o="WebGPU","string"!=typeof n){if(n.device)if("u">typeof GPUDevice&&n.device instanceof GPUDevice)e=n.device;else throw Error("Invalid GPU device set in WebGPU EP options.");let{enableGraphCapture:o}=t;"boolean"==typeof o&&o&&eF(i,"enableGraphCapture","1",r),"string"==typeof n.preferredLayout&&eF(i,"preferredLayout",n.preferredLayout,r),n.forceCpuNodeNames&&eF(i,"forceCpuNodeNames",(Array.isArray(n.forceCpuNodeNames)?n.forceCpuNodeNames:[n.forceCpuNodeNames]).join(` 4`),r),n.validationMode&&eF(i,"validationMode",n.validationMode,r)}let s=eN().webgpuRegisterDevice(e);if(s){let[e,t,n]=s;eF(i,"deviceId",e.toString(),r),eF(i,"webgpuInstance",t.toString(),r),eF(i,"webgpuDevice",n.toString(),r)}}break;case"wasm":case"cpu":continue;default:throw Error(`not supported execution provider: ${o}`)}let s=ek(o,r),u=i.length,f=0,l=0;if(u>0){f=eN()._malloc(u*eN().PTR_SIZE),r.push(f),l=eN()._malloc(u*eN().PTR_SIZE),r.push(l);for(let e=0;e<u;e++)eN().setValue(f+e*eN().PTR_SIZE,i[e][0],"*"),eN().setValue(l+e*eN().PTR_SIZE,i[e][1],"*")}await eN()._OrtAppendExecutionProvider(e,s,f,l,u)!==0&&eD(`Can't append execution provider: ${o}.`)}},ez=async e=>{var t;let r,n=eN(),o=0,i=[],s=e||{};(t=s).extra||(t.extra={}),t.extra.session||(t.extra.session={}),(r=t.extra.session).use_ort_model_bytes_directly||(r.use_ort_model_bytes_directly="1"),t.executionProviders&&t.executionProviders.some(e=>("string"==typeof e?e:e.name)==="webgpu")&&(t.enableMemPattern=!1);try{let e=(e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"layout":return 3;case"all":return 99;default:throw Error(`unsupported graph optimization level: ${e}`)}})(s.graphOptimizationLevel??"all"),t=(e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw Error(`unsupported execution mode: ${e}`)}})(s.executionMode??"sequential"),r="string"==typeof s.logId?ek(s.logId,i):0,u=s.logSeverityLevel??2;if(!Number.isInteger(u)||u<0||u>
44)throw Error(`log severity level is not valid: ${u}`);let f=s.logVerbosityLevel??0;if(!Number.isInteger(f)||f<0||f>4)throw Error(`log verbosity level is not valid: ${f}`);let l="string"==typeof s.optimizedModelFilePath?ek(s.optimizedModelFilePath,i):0;if(o=n._OrtCreateSessionOptions(e,!!s.enableCpuMemArena,!!s.enableMemPattern,t,!!s.enableProfiling,0,r,u,f,l),0===o&&eD("Can't create session options."),s.executionProviders&&await eV(o,s,i),void 0!==s.enableGraphCapture){if("boolean"!=typeof s.enableGraphCapture)throw Error(`enableGraphCapture must be a boolean value: ${s.enableGraphCapture}`);eW(o,"enableGraphCapture",s.enableGraphCapture.toString(),i)}if(s.freeDimensionOverrides)for(let[e,t]of Object.entries(s.freeDimensionOverrides)){if("string"!=typeof e)throw Error(`free dimension override name must be a string: ${e}`);if("number"!=typeof t||!Number.isInteger(t)||t<0)throw Error(`free dimension override value must be a non-negative integer: ${t}`);let r=ek(e,i);0!==n._OrtAddFreeDimensionOverride(o,r,t)&&eD(`Can't set a free dimension override: ${e} - ${t}.`)}return void 0!==s.extra&&e_(s.extra,"",new WeakSet,(e,t)=>{eW(o,e,t,i)}),[o,i]}catch(e){throw 0!==o&&0!==n._OrtReleaseSessionOptions(o)&&eD("Can't release session options."),i.forEach(e=>n._free(e)),e}}}),td=V(()=>{ej=e=>{switch(e){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 Error(`unsupported data type: ${e}`)}},eH=e=>{switch(e){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 Error(`unsupported data type: ${e}`)}},eq=(e,t)=>{let r=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],n="number"==typeof t?t:t.reduce((e,t)=>e*t,1);return r>0?Math.ceil(n*r):void 0},eY=e=>{switch(e){case"float16":return"u">typeof Float16Array?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":case"bool":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw Error(`unsupported type: ${e}`)}},eZ=e=>{switch(e){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw Error(`unsupported logging level: ${e}`)}},eX=e=>"float32"===e||"float16"===e||"int32"===e||"int64"===e||"uint32"===e||"uint8"===e||"bool"===e||"uint4"===e||"int4"===e,eQ=e=>"float32"===e||"float16"===e||"int32"===e||"int64"===e||"uint32"===e||"uint64"===e||"int8"===e||"uint8"===e||"bool"===e||"uint4"===e||"int4"===e,eJ=e=>{switch(e){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 Error(`unsupported data location: ${e}`)}}}),th=V(()=>{ep(),eK=async e=>{if("string"!=typeof e)return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e);{let t=await fetch(e);if(!t.ok)throw Error(`failed to load external data file: ${e}`);let r=t.headers.get("Content-Length"),n=r?parseInt(r,10):0;if(n<0x40000000)return new Uint8Array(await t.arrayBuffer());{if(!t.body)throw Error(`failed to load external data file: ${e}, no response body.`);let r=t.body.getReader(),o;try{o=new ArrayBuffer(n)}catch(e){if(e instanceof RangeError){let e=Math.ceil(n/65536);o=new WebAssembly.Memory({initial:e,maximum:e}).buffer}else throw e}let i=0;for(;;){let{done:e,value:t}=await r.read();if(e)break;let n=t.byteLength;new Uint8Array(o,i,n).set(t),i+=n}return new Uint8Array(o,0,n)}}}}),tm=V(()=>{td(),e0=(e,t)=>new(eY(t))(e)}),tg=V(()=>{td(),e1=["V","I","W","E","F"],e4=(e,t)=>{e2=e,e3=t},e6=(...e)=>{e3&&((e,t)=>{var r,n;let o=eZ(e);o>=eZ(e2)&&(r=o,n="function"==typeof t?t():t,console.log(`[${e1[r]},${new Date().toISOString()}]${n}`))})(...e)}}),ty=V(()=>{td(),tg(),e8=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),e5=(e,t)=>{if("int32"===t)return e;let r=e8.get(t);if(!r)throw Error(`WebNN backend does not support data type: ${t}`);let n=r/8;if(e.byteLength%n!=0)throw Error(`Invalid Uint8Array length - must be a multiple of ${n}.`);let o=e.byteLength/n,i=new(eY(t))(e.buffer,e.byteOffset,o);switch(t){case"int64":case"uint64":{let e=new Int32Array(o);for(let t=0;t<o;t++){let r=i[t];if(r>2147483647n||r<-2147483648n)throw Error("Can not convert int64 data to int32 - value out of range.");e[t]=Number(r)}return new Uint8Array(e.buffer)}case"int8":case"uint8":case"uint32":if("uint32"===t&&i.some(e=>e>0x7fffffff))throw Error("Can not convert uint32 data to int32 - value out of range.");return new Uint8Array(Int32Array.from(i,Number).buffer);default:throw Error(`Unsupported data conversion from ${t} to 'int32'`)}},e7=(e,t)=>{if("int32"===t)return e;if(e.byteLength%4!=0)throw Error("Invalid Uint8Array length - must be a multiple of 4 (int32).");let r=e.byteLength/4,n=new Int32Array(e.buffer,e.byteOffset,r);switch(t){case"int64":return new Uint8Array(BigInt64Array.from(n,BigInt).buffer);case"uint64":if(n.some(e=>e<0))throw Error("Can not convert int32 data to uin64 - negative value found.");return new Uint8Array(BigUint64Array.from(n,BigInt).buffer);case"int8":if(n.some(e=>e<-128||e>127))throw Error("Can not convert int32 data to int8 - value out of range.");return new Uint8Array(Int8Array.from(n,Number).buffer);case"uint8":if(n.some(e=>e<0||e>255))throw Error("Can not convert int32 data to uint8 - value out of range.");return Uint8Array.from(n,Number);case"uint32":if(n.some(e=>e<0))throw Error("Can not convert int32 data to uint32 - negative value found.");return new Uint8Array(Uint32Array.from(n,Number).buffer);default:throw Error(`Unsupported data conversion from 'int32' to ${t}`)}},e9=1,te=()=>e9++,tt=new Map([["int8","int32"],["uint8","int32"],["uint32","int32"],["int64","int32"]]),tr=(e,t)=>{let r=e8.get(e);if(!r)throw Error(`WebNN backend does not support data type: ${e}`);return t.length>0?Math.ceil(t.reduce((e,t)=>
4e*t)*r/8):0},tn=class{constructor(e){this.isDataConverted=!1;let{sessionId:t,context:r,tensor:n,dataType:o,shape:i,fallbackDataType:s}=e;this.sessionId=t,this.mlContext=r,this.mlTensor=n,this.dataType=o,this.tensorShape=i,this.fallbackDataType=s}get tensor(){return this.mlTensor}get type(){return this.dataType}get fallbackType(){return this.fallbackDataType}get shape(){return this.tensorShape}get byteLength(){return tr(this.dataType,this.tensorShape)}destroy(){e6("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(e){this.mlContext.writeTensor(this.mlTensor,e)}async read(e){if(!this.fallbackDataType)return e?this.mlContext.readTensor(this.mlTensor,e):this.mlContext.readTensor(this.mlTensor);{let t=e7(new Uint8Array(await this.mlContext.readTensor(this.mlTensor)),this.dataType);return e?void(e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)).set(t):new Uint8Array(t).buffer}}canReuseTensor(e,t,r){return this.mlContext===e&&this.dataType===t&&this.tensorShape.length===r.length&&this.tensorShape.every((e,t)=>e===r[t])}setIsDataConverted(e){this.isDataConverted=e}},ta=class{constructor(e,t){this.tensorManager=e,this.wrapper=t}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(e,t,r,n){let o=this.tensorManager.getMLContext(e),i=this.tensorManager.getMLOpSupportLimits(e),s;if(!i?.input.dataTypes.includes(t)){if(!(s=tt.get(t))||i?.input.dataTypes.includes(s))throw Error(`WebNN backend does not support data type: ${t}`);e6("verbose",()=>`[WebNN] TensorIdTracker.ensureTensor: fallback dataType from ${t} to ${s}`)}if(this.wrapper){if(this.wrapper.canReuseTensor(o,t,r))return this.wrapper.tensor;if(n){if(this.wrapper.byteLength!==tr(t,r))throw Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let u=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(e,t,r,u,!0,!0,s),n&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(e){let t=e;if(this.wrapper){if(this.wrapper.fallbackType)if("int32"===this.wrapper.fallbackType)t=e5(e,this.wrapper.type),this.wrapper.setIsDataConverted(!0);else throw Error(`Unsupported fallback data type: ${this.wrapper.fallbackType}`);if(e.byteLength===this.wrapper.byteLength)return void this.wrapper.write(t);e6("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor()}this.activeUpload?this.activeUpload.set(t):this.activeUpload=new Uint8Array(t)}async download(e){if(this.activeUpload){let t=this.wrapper?.isDataConverted?e7(this.activeUpload,this.wrapper?.type):this.activeUpload;return e?void(e instanceof ArrayBuffer?new Uint8Array(e).set(t):new Uint8Array(e.buffer,e.byteOffset,e.byteLength).set(t)):t.buffer}if(!this.wrapper)throw Error("Tensor has not been created.");return e?this.wrapper.read(e):this.wrapper.read()}},to=class{constructor(e){this.backend=e,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(e){let t=this.backend.getMLContext(e);if(!t)throw Error("MLContext not found for session.");return t}getMLOpSupportLimits(e){return this.backend.getMLOpSupportLimits(e)}reserveTensorId(){let e=te();return this.tensorTrackersById.set(e,new ta(this)),e}releaseTensorId(e){let t=this.tensorTrackersById.get(e);t&&(this.tensorTrackersById.delete(e),t.tensorWrapper&&this.releaseTensor(t.tensorWrapper))}async ensureTensor(e,t,r,n,o){e6("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${t}, dataType: ${r}, shape: ${n}, copyOld: ${o}}`);let i=this.tensorTrackersById.get(t);if(!i)throw Error("Tensor not found.");return i.ensureTensor(e,r,n,o)}upload(e,t){let r=this.tensorTrackersById.get(e);if(!r)throw Error("Tensor not found.");r.upload(t)}async download(e,t){e6("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${e}, dstBuffer: ${t?.byteLength}}`);let r=this.tensorTrackersById.get(e);if(!r)throw Error("Tensor not found.");return r.download(t)}releaseTensorsForSession(e){for(let t of this.freeTensors)t.sessionId===e&&t.destroy();this.freeTensors=this.freeTensors.filter(t=>t.sessionId!==e)}registerTensor(e,t,r,n){let o=this.getMLContext(e),i=te(),s=new tn({sessionId:e,context:o,tensor:t,dataType:r,shape:n});return this.tensorTrackersById.set(i,new ta(this,s)),this.externalTensors.add(s),i}async getCachedTensor(e,t,r,n,o,i,s){let u=this.getMLContext(e);for(let[n,o]of this.freeTensors.entries())if(o.canReuseTensor(u,t,r)){e6("verbose",()=>`[WebNN] Reusing tensor {dataType: ${t}, ${s?`fallbackDataType: ${s},`:""} shape: ${r}`);let o=this.freeTensors.splice(n,1)[0];return o.sessionId=e,o}e6("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${t}, ${s?`fallbackDataType: ${s},`:""} shape: ${r}}`);let f=await u.createTensor({dataType:s??t,shape:r,dimensions:r,usage:n,writable:o,readable:i});return new tn({sessionId:e,context:u,tensor:f,dataType:t,shape:r,fallbackDataType:s})}releaseTensor(e){this.externalTensors.has(e)&&this.externalTensors.delete(e),this.freeTensors.push(e)}},ti=(...e)=>new to(...e)}
4),tw={};z(tw,{WebNNBackend:()=>tv});var tb,tv,tT,tE,tx,tA,tC,tO,tI,tS,tU,tB,tM,tL,tR,tP,t$,tN,tk,t_,tD,tG,tW,tF,tV,tz,tj,tH,tq,tY,tZ,tX,tQ,tJ,tK=V(()=>{td(),tf(),tm(),ty(),tg(),tb=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),tv=class{constructor(e){this.tensorManager=ti(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,e4(e.logLevel,!!e.debug)}get currentSessionId(){if(void 0===this.activeSessionId)throw Error("No active session");return this.activeSessionId}onRunStart(e){e6("verbose",()=>`[WebNN] onRunStart {sessionId: ${e}}`),this.activeSessionId=e}onRunEnd(e){e6("verbose",()=>`[WebNN] onRunEnd {sessionId: ${e}}`);let t=this.temporarySessionTensorIds.get(e);if(t){for(let e of t)e6("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${e}}`),this.tensorManager.releaseTensorId(e);this.temporarySessionTensorIds.delete(e),this.activeSessionId=void 0}}async createMLContext(e){if(e instanceof GPUDevice){let t=this.mlContextCache.findIndex(t=>t.gpuDevice===e);if(-1!==t)return this.mlContextCache[t].mlContext;{let t=await navigator.ml.createContext(e);return this.mlContextCache.push({gpuDevice:e,mlContext:t}),t}}if(void 0===e){let e=this.mlContextCache.findIndex(e=>void 0===e.options&&void 0===e.gpuDevice);if(-1!==e)return this.mlContextCache[e].mlContext;{let e=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:e}),e}}let t=this.mlContextCache.findIndex(t=>((e,t)=>{if(e===t)return!0;if(void 0===e||void 0===t)return!1;let r=Object.keys(e).sort(),n=Object.keys(t).sort();return r.length===n.length&&r.every((r,o)=>r===n[o]&&e[r]===t[r])})(t.options,e));if(-1!==t)return this.mlContextCache[t].mlContext;{let t=await navigator.ml.createContext(e);return this.mlContextCache.push({options:e,mlContext:t}),t}}registerMLContext(e,t){this.mlContextBySessionId.set(e,t);let r=this.sessionIdsByMLContext.get(t);r||(r=new Set,this.sessionIdsByMLContext.set(t,r)),r.add(e),this.mlOpSupportLimitsBySessionId.has(e)||this.mlOpSupportLimitsBySessionId.set(e,t.opSupportLimits()),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(e,this.temporaryGraphInputs),this.temporaryGraphInputs=[]),this.temporaryGraphOutputs.length>0&&(this.sessionGraphOutputs.set(e,this.temporaryGraphOutputs),this.temporaryGraphOutputs=[])}onReleaseSession(e){this.sessionGraphInputs.delete(e),this.sessionGraphOutputs.delete(e);let t=this.mlContextBySessionId.get(e);if(!t)return;this.tensorManager.releaseTensorsForSession(e),this.mlContextBySessionId.delete(e),this.mlOpSupportLimitsBySessionId.delete(e);let r=this.sessionIdsByMLContext.get(t);if(r.delete(e),0===r.size){this.sessionIdsByMLContext.delete(t);let e=this.mlContextCache.findIndex(e=>e.mlContext===t);-1!==e&&this.mlContextCache.splice(e,1)}}getMLContext(e){return this.mlContextBySessionId.get(e)}getMLOpSupportLimits(e){return this.mlOpSupportLimitsBySessionId.get(e)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(e){e6("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${e}}`),this.tensorManager.releaseTensorId(e)}async ensureTensor(e,t,r,n,o){let i=tb.get(r);if(!i)throw Error(`Unsupported ONNX data type: ${r}`);return this.tensorManager.ensureTensor(e??this.currentSessionId,t,i,n,o)}async createTemporaryTensor(e,t,r){e6("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${t}, shape: ${r}}`);let n=tb.get(t);if(!n)throw Error(`Unsupported ONNX data type: ${t}`);let o=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(e,o,n,r,!1);let i=this.temporarySessionTensorIds.get(e);return i?i.push(o):this.temporarySessionTensorIds.set(e,[o]),o}uploadTensor(e,t){if(!eN().shouldTransferToMLTensor)throw Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");e6("verbose",()=>`[WebNN] uploadTensor {tensorId: ${e}, data: ${t.byteLength}}`),this.tensorManager.upload(e,t)}async downloadTensor(e,t){return this.tensorManager.download(e,t)}createMLTensorDownloader(e,t){return async()=>{let r=await this.tensorManager.download(e);return e0(r,t)}}registerMLTensor(e,t,r,n){let o=tb.get(r);if(!o)throw Error(`Unsupported ONNX data type: ${r}`);let i=this.tensorManager.registerTensor(e,t,o,n);return e6("verbose",()=>`[WebNN] registerMLTensor {tensor: ${t}, dataType: ${o}, dimensions: ${n}} -> {tensorId: ${i}}`),i}registerMLConstant(e,t,r,n,o,i,s=!1){if(!i)throw Error("External mounted files are not available.");let u=e;e.startsWith("./")&&(u=e.substring(2));let f=i.get(u);if(!f)throw Error(`File with name ${u} not found in preloaded files.`);if(t+r>f.byteLength)throw Error("Out of bounds: data offset and length exceed the external file data size.");let l=f.slice(t,t+r).buffer,c;switch(o.dataType){case"float32":c=new Float32Array(l);break;case"float16":c="u">typeof Float16Array?new Float16Array(l):new Uint16Array(l);break;case"int32":c=new Int32Array(l);break;case"uint32":c=new Uint32Array(l);break;case"int64":s?(c=new Int32Array(e5(new Uint8Array(l),"int64").buffer),o.dataType="int32"):c=new BigInt64Array(l);break;case"uint64":c=new BigUint64Array(l);break;case"int8":c=new Int8Array(l);break;case"int4":case"uint4":case"uint8":c=new Uint8Array(l);break;default:throw Error(`Unsupported data type: ${o.dataType} in creating WebNN Constant from external data.`)}return e6("verbose",()=>`[WebNN] registerMLConstant {dataType: ${o.dataType}, shape: ${o.shape}}} ${s?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),n.constant(o,c)}registerGraphInput(e){this.temporaryGraphInputs.push(e)}registerGraphOutput(e){this.temporaryGraphOutputs.push(e)}isGraphInput(e,t){let r=this.sessionGraphInputs.get(e);return!!r&&r.includes(t)}isGraphOutput(e,t){let r=this.sessionGraphOutputs.get(e);return!!r&&r.includes(t)}isGraphInputOutputTypeSupported(e,t,r=!0){let n=tb.get(ej(t)),o=this.mlOpSupportLimitsBySessionId.get(e);return!(typeof n>"u")&&(r?!!o?.input.dataTypes.includes(n):!!o?.output.dataTypes.includes(n))}flush(){}}}),t0=V(()=>{ec(),tc(),tp(),td(),tf(),tl(),th(),tT=async e=>{var t,r;t=e.wasm.numThreads,r=eZ(e.logLevel),0!==eN()._OrtInit(t,r)&&eD("Can't initialize onnxruntime.")},tE=async(e,t)=>{eN().asyncInit?.();let r=e.webgpu.adapter;if("webgpu"===t){if(typeof navigator>"u"||!navigator.gpu)throw Error("WebGPU is not supported in current environment");
4if(r){if("object"!=typeof r.limits||"object"!=typeof r.features||"function"!=typeof r.requestDevice)throw Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let t=e.webgpu.powerPreference;if(void 0!==t&&"low-power"!==t&&"high-performance"!==t)throw Error(`Invalid powerPreference setting: "${t}"`);let n=e.webgpu.forceFallbackAdapter;if(void 0!==n&&"boolean"!=typeof n)throw Error(`Invalid forceFallbackAdapter setting: "${n}"`);if(!(r=await navigator.gpu.requestAdapter({powerPreference:t,forceFallbackAdapter:n})))throw Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}}if("webnn"===t&&(typeof navigator>"u"||!navigator.ml))throw Error("WebNN is not supported in current environment");if("webgpu"===t&&eN().webgpuInit(t=>{e.webgpu.device=t}),"webnn"===t){let t=new(tK(),j(tw)).WebNNBackend(e);eN().webnnInit([t,()=>t.reserveTensorId(),e=>t.releaseTensorId(e),async(e,r,n,o,i)=>t.ensureTensor(e,r,n,o,i),(e,r)=>{t.uploadTensor(e,r)},async(e,r)=>t.downloadTensor(e,r),(e,r)=>t.registerMLContext(e,r),!!e.trace])}},tx=new Map,tA=(e,t)=>{let r=eN(),n=r.stackSave(),o=0;try{let n=r.PTR_SIZE,i=r.stackAlloc(2*n);0!==r._OrtGetInputOutputMetadata(e,t,i,i+n)&&eD("Can't get session input/output metadata.");let s=Number(r.getValue(i,"*"));o=Number(r.getValue(i+n,"*"));let u=r.HEAP32[o/4];if(0===u)return[s,0];let f=r.HEAPU32[o/4+1],l=[];for(let e=0;e<f;e++){let t=Number(r.getValue(o+8+e*n,"*"));l.push(0!==t?r.UTF8ToString(t):Number(r.getValue(o+8+(e+f)*n,"*")))}return[s,u,l]}finally{r.stackRestore(n),0!==o&&r._OrtFree(o)}},tC=e=>{let t=eN(),r=t._malloc(e.byteLength);if(0===r)throw Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return t.HEAPU8.set(e,r),[r,e.byteLength]},tO=async(e,t)=>{let r,n,o=eN();Array.isArray(e)?[r,n]=e:e.buffer===o.HEAPU8.buffer?[r,n]=[e.byteOffset,e.byteLength]:[r,n]=tC(e);let i=0,s=0,u=0,f=[],l=[],c=[];try{if([s,f]=await ez(t),t?.externalData&&o.mountExternalData){let e=[];for(let r of t.externalData){let t="string"==typeof r?r:r.path;e.push(eK("string"==typeof r?r:r.data).then(e=>{o.mountExternalData(t,e)}))}await Promise.all(e)}for(let e of t?.executionProviders??[])if(("string"==typeof e?e:e.name)==="webnn"){if(o.shouldTransferToMLTensor=!1,"string"!=typeof e){let t=e?.context,r=e?.gpuDevice,n=e?.deviceType,i=e?.powerPreference;t?o.currentContext=t:r?o.currentContext=await o.webnnCreateMLContext(r):o.currentContext=await o.webnnCreateMLContext({deviceType:n,powerPreference:i})}else o.currentContext=await o.webnnCreateMLContext();break}i=await o._OrtCreateSession(r,n,s),o.webgpuOnCreateSession?.(i),0===i&&eD("Can't create a session."),o.jsepOnCreateSession?.(),o.currentContext&&(o.webnnRegisterMLContext(i,o.currentContext),o.currentContext=void 0,o.shouldTransferToMLTensor=!0);let[e,p]=(e=>{let t=eN(),r=t.stackSave();try{let r=t.PTR_SIZE,n=t.stackAlloc(2*r);0!==t._OrtGetInputOutputCount(e,n,n+r)&&eD("Can't get session input/output count.");let o=4===r?"i32":"i64";return[Number(t.getValue(n,o)),Number(t.getValue(n+r,o))]}finally{t.stackRestore(r)}})(i),d=!!t?.enableGraphCapture,h=[],m=[],g=[],y=[],w=[];for(let t=0;t<e;t++){let[e,r,n]=tA(i,t);0===e&&eD("Can't get an input name."),l.push(e);let s=o.UTF8ToString(e);h.push(s),g.push(0===r?{name:s,isTensor:!1}:{name:s,isTensor:!0,type:eH(r),shape:n})}for(let r=0;r<p;r++){let[n,s,u]=tA(i,r+e);0===n&&eD("Can't get an output name."),c.push(n);let f=o.UTF8ToString(n);m.push(f),y.push(0===s?{name:f,isTensor:!1}:{name:f,isTensor:!0,type:eH(s),shape:u});{if(d&&t?.preferredOutputLocation===void 0){w.push("gpu-buffer");continue}let e="string"==typeof t?.preferredOutputLocation?t.preferredOutputLocation:t?.preferredOutputLocation?.[f]??"cpu",r=o.webnnIsGraphOutput;if("cpu"===e&&r&&r(i,f)){w.push("ml-tensor-cpu-output");continue}if("cpu"!==e&&"cpu-pinned"!==e&&"gpu-buffer"!==e&&"ml-tensor"!==e)throw Error(`Not supported preferred output location: ${e}.`);if(d&&"gpu-buffer"!==e)throw Error(`Not supported preferred output location: ${e}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);w.push(e)}}let b=null;return w.some(e=>"gpu-buffer"===e||"ml-tensor"===e||"ml-tensor-cpu-output"===e)&&(u=o._OrtCreateBinding(i),0===u&&eD("Can't create IO binding."),b={handle:u,outputPreferredLocations:w,outputPreferredLocationsEncoded:w.map(e=>"ml-tensor-cpu-output"===e?"ml-tensor":e).map(e=>eJ(e))}),tx.set(i,[i,l,c,b,d,!1]),[i,h,m,g,y]}
4catch(e){throw l.forEach(e=>o._OrtFree(e)),c.forEach(e=>o._OrtFree(e)),0!==u&&0!==o._OrtReleaseBinding(u)&&eD("Can't release IO binding."),0!==i&&0!==o._OrtReleaseSession(i)&&eD("Can't release session."),e}finally{o._free(r),0!==s&&0!==o._OrtReleaseSessionOptions(s)&&eD("Can't release session options."),f.forEach(e=>o._free(e)),o.unmountExternalData?.()}},tI=e=>{let t=eN(),r=tx.get(e);if(!r)throw Error(`cannot release session. invalid session id: ${e}`);let[n,o,i,s,u]=r;s&&(u&&0!==t._OrtClearBoundOutputs(s.handle)&&eD("Can't clear bound outputs."),0!==t._OrtReleaseBinding(s.handle)&&eD("Can't release IO binding.")),t.jsepOnReleaseSession?.(e),t.webnnOnReleaseSession?.(e),t.webgpuOnReleaseSession?.(e),o.forEach(e=>t._OrtFree(e)),i.forEach(e=>t._OrtFree(e)),0!==t._OrtReleaseSession(n)&&eD("Can't release session."),tx.delete(e)},tS=async(e,t,r,n,o,i,s=!1)=>{if(!e)return void t.push(0);let u=eN(),f=u.PTR_SIZE,l=e[0],c=e[1],p=e[3],d=p,h,m;if("string"===l&&("gpu-buffer"===p||"ml-tensor"===p))throw Error("String tensor is not supported on GPU.");if(s&&"gpu-buffer"!==p)throw Error(`External buffer must be provided for input/output index ${i} when enableGraphCapture is true.`);if("gpu-buffer"===p){let t=e[2].gpuBuffer;m=eq(ej(l),c);{let e=u.webgpuRegisterBuffer;if(!e)throw Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');h=e(t,n)}}else if("ml-tensor"===p){let t=e[2].mlTensor;m=eq(ej(l),c);let r=u.webnnRegisterMLTensor;if(!r)throw Error('Tensor location "ml-tensor" is not supported without using WebNN.');h=r(n,t,ej(l),c)}else{let t=e[2];if(Array.isArray(t)){m=f*t.length,h=u._malloc(m),r.push(h);for(let e=0;e<t.length;e++){if("string"!=typeof t[e])throw TypeError(`tensor data at index ${e} is not a string`);u.setValue(h+e*f,ek(t[e],r),"*")}}else{let e=u.webnnIsGraphInput,i=u.webnnIsGraphOutput;if("string"!==l&&e&&i){let s=u.UTF8ToString(o);if(e(n,s)||i(n,s)){let e=ej(l);m=eq(e,c),d="ml-tensor";let r=u.webnnCreateTemporaryTensor,o=u.webnnUploadTensor;if(!r||!o)throw Error('Tensor location "ml-tensor" is not supported without using WebNN.');let i=await r(n,e,c);o(i,new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),h=i}else m=t.byteLength,h=u._malloc(m),r.push(h),u.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,m),h)}else m=t.byteLength,h=u._malloc(m),r.push(h),u.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,m),h)}}let g=u.stackSave(),y=u.stackAlloc(4*c.length);try{c.forEach((e,t)=>u.setValue(y+t*f,e,4===f?"i32":"i64"));let e=u._OrtCreateTensor(ej(l),h,m,y,c.length,eJ(d));0===e&&eD(`Can't create tensor for input/output. session=${n}, index=${i}.`),t.push(e)}finally{u.stackRestore(g)}},tU=async(e,t,r,n,o,i)=>{let s=eN(),u=s.PTR_SIZE,f=tx.get(e);if(!f)throw Error(`cannot run inference. invalid session id: ${e}`);let l=f[0],c=f[1],p=f[2],d=f[3],h=f[4],m=f[5],g=t.length,y=n.length,w=0,b=[],v=[],T=[],E=[],x=[],A=s.stackSave(),C=s.stackAlloc(g*u),O=s.stackAlloc(g*u),I=s.stackAlloc(y*u),S=s.stackAlloc(y*u);try{let f;[w,b]=eG(i),P("wasm prepareInputOutputTensor");for(let n=0;n<g;n++)await tS(r[n],v,E,e,c[t[n]],t[n],h);for(let t=0;t<y;t++)await tS(o[t],T,E,e,p[n[t]],g+n[t],h);$("wasm prepareInputOutputTensor");for(let e=0;e<g;e++)s.setValue(C+e*u,v[e],"*"),s.setValue(O+e*u,c[t[e]],"*");for(let e=0;e<y;e++)s.setValue(I+e*u,T[e],"*"),s.setValue(S+e*u,p[n[e]],"*");if(d&&!m){let{handle:r,outputPreferredLocations:i,outputPreferredLocationsEncoded:u}=d;if(c.length!==g)throw Error(`input count from feeds (${g}
4) is expected to be always equal to model's input count (${c.length}).`);P("wasm bindInputsOutputs");for(let n=0;n<g;n++){let o=t[n];await s._OrtBindInput(r,c[o],v[n])!==0&&eD(`Can't bind input[${n}] for session=${e}.`)}for(let t=0;t<y;t++){let f=n[t];o[t]?.[3]?(x.push(T[t]),0!==s._OrtBindOutput(r,p[f],T[t],0)&&eD(`Can't bind pre-allocated output[${t}] for session=${e}.`)):0!==s._OrtBindOutput(r,p[f],0,u[f])&&eD(`Can't bind output[${t}] to ${i[t]} for session=${e}.`)}$("wasm bindInputsOutputs"),tx.set(e,[l,c,p,d,h,!0])}s.jsepOnRunStart?.(l),s.webnnOnRunStart?.(l),f=d?await s._OrtRunWithBinding(l,d.handle,y,I,w):await s._OrtRun(l,O,C,g,S,y,I,w),0!==f&&eD("failed to call OrtRun().");let A=[],U=[];P("wasm ProcessOutputTensor");for(let t=0;t<y;t++){let r=Number(s.getValue(I+t*u,"*"));if(r===T[t]||x.includes(T[t])){A.push(o[t]),r!==T[t]&&0!==s._OrtReleaseTensor(r)&&eD("Can't release tensor.");continue}let i=s.stackSave(),f=s.stackAlloc(4*u),l=!1,c,p=0;try{0!==s._OrtGetTensorData(r,f,f+u,f+2*u,f+3*u)&&eD(`Can't access output tensor data on index ${t}.`);let o=4===u?"i32":"i64",i=Number(s.getValue(f,o));p=s.getValue(f+u,"*");let h=s.getValue(f+2*u,"*"),m=Number(s.getValue(f+3*u,o)),g=[];for(let e=0;e<m;e++)g.push(Number(s.getValue(h+e*u,o)));0!==s._OrtFree(h)&&eD("Can't free memory for tensor dims.");let y=g.reduce((e,t)=>e*t,1);c=eH(i);let w=d?.outputPreferredLocations[n[t]];if("string"===c){if("gpu-buffer"===w||"ml-tensor"===w)throw Error("String tensor is not supported on GPU.");let e=[];for(let t=0;t<y;t++){let r=s.getValue(p+t*u,"*"),n=s.getValue(p+(t+1)*u,"*"),o=t===y-1?void 0:n-r;e.push(s.UTF8ToString(r,o))}A.push([c,g,e,"cpu"])}else if("gpu-buffer"===w&&y>0){let t=s.webgpuGetBuffer;if(!t)throw Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let n=t(p),o=eq(i,y);if(void 0===o||!eX(c))throw Error(`Unsupported data type: ${c}`);l=!0;{s.webgpuRegisterBuffer(n,e,p);let t=s.webgpuCreateDownloader(n,o,e);A.push([c,g,{gpuBuffer:n,download:async()=>{let e=await t();return new(eY(c))(e)},dispose:()=>{0!==s._OrtReleaseTensor(r)&&eD("Can't release tensor.")}},"gpu-buffer"])}}else if("ml-tensor"===w&&y>0){let t=s.webnnEnsureTensor,n=s.webnnIsGraphInputOutputTypeSupported;if(!t||!n)throw Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(void 0===eq(i,y)||!eQ(c))throw Error(`Unsupported data type: ${c}`);if(!n(e,c,!1))throw Error(`preferredLocation "ml-tensor" for ${c} output is not supported by current WebNN Context.`);let o=await t(e,p,i,g,!1);l=!0,A.push([c,g,{mlTensor:o,download:s.webnnCreateMLTensorDownloader(p,c),dispose:()=>{s.webnnReleaseTensorId(p),s._OrtReleaseTensor(r)}},"ml-tensor"])}else if("ml-tensor-cpu-output"===w&&y>0){let e=s.webnnCreateMLTensorDownloader(p,c)(),t=A.length;l=!0,U.push((async()=>{let n=[t,await e];return s.webnnReleaseTensorId(p),s._OrtReleaseTensor(r),n})()),A.push([c,g,[],"cpu"])}else{let e=new(eY(c))(y);new Uint8Array(e.buffer,e.byteOffset,e.byteLength).set(s.HEAPU8.subarray(p,p+e.byteLength)),A.push([c,g,e,"cpu"])}}finally{s.stackRestore(i),"string"===c&&p&&s._free(p),l||s._OrtReleaseTensor(r)}}for(let[t,r]of(d&&!h&&(0!==s._OrtClearBoundOutputs(d.handle)&&eD("Can't clear bound outputs."),tx.set(e,[l,c,p,d,h,!1])),await Promise.all(U)))A[t][2]=r;return $("wasm ProcessOutputTensor"),A}finally{s.webnnOnRunEnd?.(l),s.stackRestore(A),r.forEach(e=>{e&&"gpu-buffer"===e[3]&&s.webgpuUnregisterBuffer(e[2].gpuBuffer)}),o.forEach(e=>{e&&"gpu-buffer"===e[3]&&s.webgpuUnregisterBuffer(e[2].gpuBuffer)}),v.forEach(e=>s._OrtReleaseTensor(e)),T.forEach(e=>s._OrtReleaseTensor(e)),E.forEach(e=>s._free(e)),0!==w&&s._OrtReleaseRunOptions(w),b.forEach(e=>s._free(e))}},tB=e=>{let t=eN(),r=tx.get(e);if(!r)throw Error("invalid session id");let n=r[0],o=t._OrtEndProfiling(n);0===o&&eD("Can't get an profile file name."),t._OrtFree(o)},tM=e=>{let t=[];for(let r of e){let e=r[2];!Array.isArray(e)&&"buffer"in e&&t.push(e.buffer)}return t}}),t1=V(()=>{ec(),t0(),tf(),tu(),tL=()=>!!d.wasm.proxy&&"u">typeof document,tP=!1,t$=!1,tN=!1,tD=new Map,tG=(e,t)=>{let r=tD.get(e);r?r.push(t):tD.set(e,[t])},tW=()=>{if(tP||!t$||tN||!tR)throw Error("worker not ready")},tF=e=>{switch(e.data.type){case"init-wasm":tP=!1,e.data.err?(tN=!0,t_[1](e.data.err)):(t$=!0,t_[0]()),tk&&(URL.revokeObjectURL(tk),tk=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let t=tD.get(e.data.type);e.data.err?t.shift()[1](e.data.err):t.shift()[0](e.data.out)}}},tV=async()=>
4{if(!t$){if(tP)throw Error("multiple calls to 'initWasm()' detected.");if(tN)throw Error("previous call to 'initWasm()' failed.");if(tP=!0,tL())return new Promise((e,t)=>{tR?.terminate(),eS().then(([n,o])=>{try{(tR=o).onerror=e=>t(e),tR.onmessage=tF,t_=[e,t];let i={type:"init-wasm",in:d};!i.in.wasm.wasmPaths&&(n||eT)&&(i.in.wasm.wasmPaths={wasm:new r.U(r(87467)).href}),tR.postMessage(i),tk=n}catch(e){t(e)}},t)});try{await e$(d.wasm),await tT(d),t$=!0}catch(e){throw tN=!0,e}finally{tP=!1}}},tz=async e=>{if(tL())return tW(),new Promise((t,r)=>{tG("init-ep",[t,r]);let n={type:"init-ep",in:{epName:e,env:d}};tR.postMessage(n)});await tE(d,e)},tj=async e=>tL()?(tW(),new Promise((t,r)=>{tG("copy-from",[t,r]),tR.postMessage({type:"copy-from",in:{buffer:e}},[e.buffer])})):tC(e),tH=async(e,t)=>{if(!tL())return tO(e,t);if(t?.preferredOutputLocation)throw Error('session option "preferredOutputLocation" is not supported for proxy.');return tW(),new Promise((r,n)=>{tG("create",[r,n]);let o={type:"create",in:{model:e,options:{...t}}},i=[];e instanceof Uint8Array&&i.push(e.buffer),tR.postMessage(o,i)})},tq=async e=>{if(tL())return tW(),new Promise((t,r)=>{tG("release",[t,r]),tR.postMessage({type:"release",in:e})});tI(e)},tY=async(e,t,r,n,o,i)=>{if(!tL())return tU(e,t,r,n,o,i);if(r.some(e=>"cpu"!==e[3]))throw Error("input tensor on GPU is not supported for proxy.");if(o.some(e=>e))throw Error("pre-allocated output tensor is not supported for proxy.");return tW(),new Promise((o,s)=>{tG("run",[o,s]),tR.postMessage({type:"run",in:{sessionId:e,inputIndices:t,inputs:r,outputIndices:n,options:i}},tM(r))})},tZ=async e=>{if(tL())return tW(),new Promise((t,r)=>{tG("end-profiling",[t,r]),tR.postMessage({type:"end-profiling",in:e})});tB(e)}}
4),t2=V(()=>{ec(),t1(),td(),ep(),th(),tX=(e,t)=>{switch(e.location){case"cpu":return[e.type,e.dims,e.data,"cpu"];case"gpu-buffer":return[e.type,e.dims,{gpuBuffer:e.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[e.type,e.dims,{mlTensor:e.mlTensor},"ml-tensor"];default:throw Error(`invalid data location: ${e.location} for ${t()}`)}},tQ=e=>{switch(e[3]){case"cpu":return new U(e[0],e[2],e[1]);case"gpu-buffer":{let t=e[0];if(!eX(t))throw Error(`not supported data type: ${t} for deserializing GPU tensor`);let{gpuBuffer:r,download:n,dispose:o}=e[2];return U.fromGpuBuffer(r,{dataType:t,dims:e[1],download:n,dispose:o})}case"ml-tensor":{let t=e[0];if(!eQ(t))throw Error(`not supported data type: ${t} for deserializing MLTensor tensor`);let{mlTensor:r,download:n,dispose:o}=e[2];return U.fromMLTensor(r,{dataType:t,dims:e[1],download:n,dispose:o})}default:throw Error(`invalid data location: ${e[3]}`)}},tJ=class{async fetchModelAndCopyToWasmMemory(e){return tj(await eK(e))}async loadModel(e,t){let r;L(),r="string"==typeof e?await this.fetchModelAndCopyToWasmMemory(e):e,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await tH(r,t),R()}async dispose(){return tq(this.sessionId)}async run(e,t,r){L();let n=[],o=[];Object.entries(e).forEach(e=>{let t=e[0],r=e[1],i=this.inputNames.indexOf(t);if(-1===i)throw Error(`invalid input '${t}'`);n.push(r),o.push(i)});let i=[],s=[];Object.entries(t).forEach(e=>{let t=e[0],r=e[1],n=this.outputNames.indexOf(t);if(-1===n)throw Error(`invalid output '${t}'`);i.push(r),s.push(n)});let u=n.map((e,t)=>tX(e,()=>`input "${this.inputNames[o[t]]}"`)),f=i.map((e,t)=>e?tX(e,()=>`output "${this.outputNames[s[t]]}"`):null),l=await tY(this.sessionId,o,u,s,f,r),c={};for(let e=0;e<l.length;e++)c[this.outputNames[s[e]]]=i[e]??tQ(l[e]);return R(),c}startProfiling(){}endProfiling(){tZ(this.sessionId)}}}),t3={};z(t3,{OnnxruntimeWebAssemblyBackend:()=>t6,initializeFlags:()=>t4,wasmBackend:()=>t8});var t4,t6,t8,t5=V(()=>{ec(),t1(),t2(),t4=()=>{("number"!=typeof d.wasm.initTimeout||d.wasm.initTimeout<0)&&(d.wasm.initTimeout=0);let e=d.wasm.simd;if("boolean"!=typeof e&&void 0!==e&&"fixed"!==e&&"relaxed"!==e&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${e}". Reset it to \`false\` and ignore SIMD feature checking.`),d.wasm.simd=!1),"boolean"!=typeof d.wasm.proxy&&(d.wasm.proxy=!1),"boolean"!=typeof d.wasm.trace&&(d.wasm.trace=!1),"number"!=typeof d.wasm.numThreads||!Number.isInteger(d.wasm.numThreads)||d.wasm.numThreads<=0)if("u">typeof self&&!self.crossOriginIsolated)d.wasm.numThreads=1;else{let e=typeof navigator>"u"?F("node:os").cpus().length:navigator.hardwareConcurrency;d.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},t8=new(t6=class{async init(e){t4(),await tV(),await tz(e)}async createInferenceSessionHandler(e,t){let r=new tJ;return await r.loadModel(e,t),r}})});ec(),ec(),ec();var t7=el;{let e=(t5(),j(t3)).wasmBackend;s("webgpu",e,5),s("webnn",e,5),s("cpu",e,10),s("wasm",e,10)}Object.defineProperty(d.versions,"web",{value:"1.27.0",enumerable:!0})},87467:(e,t,r)=>{e.exports=r.p+"static/media/ort-wasm-simd-threaded.asyncify.6ee16ac6.wasm"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.